diff options
Diffstat (limited to 'arm9')
234 files changed, 252980 insertions, 14781 deletions
diff --git a/arm9/Makefile b/arm9/Makefile index bc8c8491..b53a5d3c 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -23,9 +23,9 @@ endif ifeq ($(OS),Windows_NT) EXE := .exe -WINE := +WINE := else -EXE := +EXE := WINE := wine endif @@ -49,16 +49,109 @@ LD_TEMPLATE := ARM9-TS.lcf.template SRC_DIRS := src lib lib/src $(wildcard modules/*/src) ASM_DIRS := asm data files $(wildcard modules/*/asm) -C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) -S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s)) +C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) +CXX_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.cpp)) +S_FILES := $(foreach dir,$(ASM_DIRS),$(wildcard $(dir)/*.s)) + +C_OBJS = $(C_FILES:%.c=$(BUILD_DIR)/%.o) +CXX_OBJS = $(CXX_FILES:%.cpp=$(BUILD_DIR)/%.o) +S_OBJS = $(S_FILES:%.s=$(BUILD_DIR)/%.o) # Object files -O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \ - $(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \ +O_FILES := $(C_OBJS) $(CXX_OBJS) $(S_OBJS) # Overlay modules # FIXME: lcf doesn't like this # BIN_FILES := $(wildcard files/*.__AT_*) +OVERLAYS := \ + MODULE_00 \ + MODULE_01 \ + MODULE_02 \ + MODULE_03 \ + MODULE_04 \ + MODULE_05 \ + MODULE_06 \ + MODULE_07 \ + MODULE_08 \ + MODULE_09 \ + MODULE_10 \ + MODULE_11 \ + MODULE_12 \ + MODULE_13 \ + MODULE_14 \ + MODULE_15 \ + MODULE_16 \ + MODULE_17 \ + MODULE_18 \ + MODULE_19 \ + MODULE_20 \ + MODULE_21 \ + MODULE_22 \ + MODULE_23 \ + MODULE_24 \ + MODULE_25 \ + MODULE_26 \ + MODULE_27 \ + MODULE_28 \ + MODULE_29 \ + MODULE_30 \ + MODULE_31 \ + MODULE_32 \ + MODULE_33 \ + MODULE_34 \ + MODULE_35 \ + MODULE_36 \ + MODULE_37 \ + MODULE_38 \ + MODULE_39 \ + MODULE_40 \ + MODULE_41 \ + MODULE_42 \ + MODULE_43 \ + MODULE_44 \ + MODULE_45 \ + MODULE_46 \ + MODULE_47 \ + MODULE_48 \ + MODULE_49 \ + MODULE_50 \ + MODULE_51 \ + MODULE_52 \ + MODULE_53 \ + MODULE_54 \ + MODULE_55 \ + MODULE_56 \ + MODULE_57 \ + MODULE_58 \ + MODULE_59 \ + MODULE_60 \ + MODULE_61 \ + MODULE_62 \ + MODULE_63 \ + MODULE_64 \ + MODULE_65 \ + MODULE_66 \ + MODULE_67 \ + MODULE_68 \ + MODULE_69 \ + MODULE_70 \ + MODULE_71 \ + MODULE_72 \ + MODULE_73 \ + MODULE_74 \ + MODULE_75 \ + MODULE_76 \ + MODULE_77 \ + MODULE_78 \ + MODULE_79 \ + MODULE_80 \ + MODULE_81 \ + MODULE_82 \ + MODULE_83 \ + MODULE_84 \ + MODULE_85 \ + MODULE_86 \ + .SECONDARY: .DELETE_ON_ERROR: .SECONDEXPANSION: @@ -79,10 +172,10 @@ MWCCARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwccarm.exe MWLDARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwldarm.exe MWASMARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwasmarm.exe MAKELSF := $(WINE) $(TOOLS_DIR)/bin/makelcf.exe -MAKELSF_FLAGS := -DCONST_34=0x34 -DCONST_3F=0x3F AS = $(WINE) $(MWASMARM) CC = $(WINE) $(MWCCARM) +CXX = $(WINE) $(MWCCARM) CPP := cpp -P LD = $(WINE) $(MWLDARM) AR := $(CROSS)ar @@ -92,6 +185,7 @@ OBJCOPY := $(CROSS)objcopy # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o ASFLAGS = -proc arm5te -i .. CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -ir ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int +CXXFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -ir ../include -ir ../include-mw -ir lib/include -interworking -DFS_IMPLEMENT -enum int LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start ####################### Other Tools ######################### @@ -157,24 +251,29 @@ build/src/FUN_020910A4.o: MWCCVERSION = 1.2/sp2p3 ####################### Everything Else ###################### ifeq (,$(NODEP)) -$(BUILD_DIR)/%.o: dep = $(shell $(SCANINC) -I ../include -I ../include-mw -I lib/include $*.[cs]) +$(BUILD_DIR)/%.o: dep = $(shell $(SCANINC) -I ../include -I ../include-mw -I lib/include $(filter $*.c,$(C_FILES)) $(filter $*.cpp,$(CXX_FILES)) $(filter $*.s,$(S_FILES))) else $(BUILD_DIR)/%.o: dep := endif -$(BUILD_DIR)/%.o: %.c $$(dep) +$(C_OBJS): $(BUILD_DIR)/%.o: %.c $$(dep) $(CC) -c $(CFLAGS) -o $@ $< -$(BUILD_DIR)/%.o: %.s $$(dep) +$(CXX_OBJS): $(BUILD_DIR)/%.o: %.cpp $$(dep) + $(CXX) -c $(CXXFLAGS) -o $@ $< + +$(S_OBJS): $(BUILD_DIR)/%.o: %.s $$(dep) $(AS) $(ASFLAGS) -o $@ $< -$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(LD_TEMPLATE) undefined_syms.txt macros.lcf.inc - # $(MAKELSF) $(MAKELSF_FLAGS) $< $(LD_TEMPLATE) $@ +# $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SPEC) $(LD_TEMPLATE) + # $(MAKELSF) $(MAKELSF_FLAGS) $^ $@ + +$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $< $(ROM): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(BIN_FILES) $(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) $(BIN_FILES) - + $(OBJCOPY) --update-section arm9=$@ -j arm9 $(foreach ov,$(OVERLAYS),--update-section $(ov)=$(BUILD_DIR)/$(ov).sbin -j $(ov)) $(ELF) 2>/dev/null # Make sure build directory exists before compiling anything DUMMY != mkdir -p $(ALL_DIRS) diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf index 68347ea4..0f1b6fda 100644 --- a/arm9/arm9.lcf +++ b/arm9/arm9.lcf @@ -1,4 +1,7 @@ -#include "macros.lcf.inc" +/* + * Linker command file for Metrowerks ARM Linker 2.0 + * TODO: Split .rodata, .data, .sbss, .bss sections in source + */ MEMORY { arm9 (RWX) : ORIGIN=0x02000000, LENGTH=0 > arm9.sbin @@ -110,7 +113,6 @@ MEMORY { } SECTIONS { -#include "undefined_syms.txt" .arm9 : { ALIGNALL(4); . = ALIGN(32); SDK_STATIC_START = .; @@ -120,7 +122,6 @@ SECTIONS { crt0.o (.rodata) * (.version) main.o (.text) - FUN_02000DF4.o (.text) unk_02000E0C.o (.text) string_util.o (.text) unk_020023C0.o (.text) @@ -211,8 +212,10 @@ SECTIONS { FS_file.o (.text) FS_rom.o (.text) FS_overlay.o (.text) - libdgt.o (.text) - libcp.o (.text) + DGT_hash1.o (.text) + DGT_hash2.o (.text) + DGT_sha1s_arm4cw.o (.text) + CP_context.o (.text) libspi.o (.text) libpm.o (.text) librtc.o (.text) @@ -259,59 +262,17 @@ SECTIONS { { /* ALIGNALL(4); . = ALIGN(32); */ SDK_STATIC_BSS_START = .; - /* .sbss */ - gBacklightTop = 0x02106FA0; - gBacklightTop_2 = 0x02106FA0; - /* .bss */ - gLoadedOverlays = 0x021C45B0; - gUnknown21C48B8 = 0x021C48B8; - gUnk021C4918 = 0x021C4918; - gUnk021C8C70 = 0x021C8C70; - OSi_IrqCallbackInfo = 0x021D341C; - isInitialized = 0x021D347C; - OSi_StackForDestructor = 0x021D3480; - OSi_RescheduleCount = 0x021D3484; - OSi_ThreadIdCount = 0x021D3488; - OSi_SystemCallbackInSwitchThread = 0x021D348C; - OSi_CurrentThreadPtr = 0x021D3490; - OSi_IsThreadInitialized = 0x021D3494; - OSi_ThreadInfo = 0x021D3498; - OSi_IdleThread = 0x021D34A8; - OSi_LauncherThread = 0x021D3568; - OSi_IdleThreadStack = 0x021D3628; - OSi_Initialized = 0x021D36F0; - OSi_MainExArenaEnabled = 0x021D36F4; - OSiHeapInfo = 0x021D36F8; - OSi_UserExceptionHandler = 0x021D371C; - OSi_UserExceptionHandlerArg = 0x021D3720; - OSi_DebuggerHandler = 0x021D3724; - OSi_ExContext = 0x021D3728; - OSi_TimerReserved = 0x021D37A8; - OSi_UseTick = 0x021D37AC; - OSi_NeedResetTimer = 0x021D37B0; - OSi_TickCounter = 0x021D37B4; - OSi_UseAlarm = 0x021D37BC; - OSi_AlarmQueue = 0x021D37C0; - OSi_UseVAlarm = 0x021D37C8; - OSi_PreviousVCount = 0x021D37CC; - OSi_VFrameCount = 0x021D37D0; - OSi_VAlarmQueue = 0x021D37D4; - OSi_IsInitReset = 0x021D37DC; - OSi_IsResetOccurred = 0x021D37E0; - OSi_vramExclusive = 0x021D37E4; - OSi_vramLockId = 0x021D37E8; - cardi_common = 0x021D55C0; - arc_list = 0x021D53E8; - current_dir_pos = 0x021D53EC; - is_init = 0x021D53F8; - fsi_card_lock_id = 0x021D53FC; - fsi_default_dma_no = 0x021D5400; - fsi_ovt9 = 0x021D5404; - fsi_ovt7 = 0x021D540C; - fsi_arc_rom = 0x021D5414; - __global_destructor_chain = 0x021D74C8; + bss.o (.bss) + FUN_020910A4.o (.bss) + bss_2.o (.bss) + OS_alloc.o (.bss) + bss_3.o (.bss) + FS_archive.o (.bss) + FS_file.o (.bss) + FS_rom.o (.bss) + bss_4.o (.bss) /* . = ALIGN(32); */ - SDK_STATIC_BSS_END = 0x021D74E0; + SDK_STATIC_BSS_END = .; SDK_STATIC_BSS_SIZE = SDK_STATIC_BSS_END - SDK_STATIC_BSS_START; } >> arm9 @@ -322,7 +283,7 @@ SECTIONS { { . = ALIGN(32); SDK_AUTOLOAD.ITCM.START = .; - arm9_itcm.o (.itcm) + arm9_itcm.o (.text) . = ALIGN(32); SDK_AUTOLOAD.ITCM.END = .; SDK_AUTOLOAD.ITCM.SIZE = SDK_AUTOLOAD.ITCM.END - SDK_AUTOLOAD.ITCM.START; @@ -405,260 +366,465 @@ SECTIONS { WRITEW 0; } > binary.STATIC_FOOTER - .MODULE.00 : + .MODULE_00 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_00_ID = 0; + SDK_OVERLAY.MODULE_00.ID = 0; SDK_OVERLAY.MODULE_00.START = .; module_00_dummy.o (.text) + module_00_dummy.o (.rodata) + module_00_dummy.o (.init) + SDK_OVERLAY.MODULE_00.SINIT_START = .; + module_00_dummy.o (.ctor) + module_00_dummy.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_00.SINIT_END = .; + . = ALIGN(32); module_00_dummy.o (.sdata) module_00_dummy.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_00.END = .; SDK_OVERLAY.MODULE_00.SIZE = SDK_OVERLAY.MODULE_00.END - SDK_OVERLAY.MODULE_00.START; } > MODULE_00 - .MODULE.00.bss : + .MODULE_00.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_00.BSS_START = .; - module_00_dummy.o (.sbss) module_00_dummy.o (.bss) + module_00_dummy.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_00.BSS_END = .; SDK_OVERLAY.MODULE_00.BSS_SIZE = SDK_OVERLAY.MODULE_00.BSS_END - SDK_OVERLAY.MODULE_00.BSS_START; } >> MODULE_00 - .MODULE.01 : + .MODULE_01 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_01_ID = 1; + SDK_OVERLAY.MODULE_01.ID = 1; SDK_OVERLAY.MODULE_01.START = .; module_01.o (.text) + module_01.o (.rodata) + module_01.o (.init) + SDK_OVERLAY.MODULE_01.SINIT_START = .; + module_01.o (.ctor) + module_01.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_01.SINIT_END = .; + . = ALIGN(32); module_01.o (.sdata) module_01.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_01.END = .; SDK_OVERLAY.MODULE_01.SIZE = SDK_OVERLAY.MODULE_01.END - SDK_OVERLAY.MODULE_01.START; } > MODULE_01 - .MODULE.01.bss : + .MODULE_01.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_01.BSS_START = .; - module_01.o (.sbss) module_01.o (.bss) + module_01.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_01.BSS_END = .; SDK_OVERLAY.MODULE_01.BSS_SIZE = SDK_OVERLAY.MODULE_01.BSS_END - SDK_OVERLAY.MODULE_01.BSS_START; } >> MODULE_01 - .MODULE.02 : + .MODULE_02 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_02_ID = 2; + SDK_OVERLAY.MODULE_02.ID = 2; SDK_OVERLAY.MODULE_02.START = .; module_02_dummy.o (.text) + module_02_dummy.o (.rodata) + SDK_OVERLAY.MODULE_02.SINIT_START = .; + module_02_dummy.o (.ctor) + module_02_dummy.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_02.SINIT_END = .; + . = ALIGN(32); module_02_dummy.o (.sdata) module_02_dummy.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_02.END = .; SDK_OVERLAY.MODULE_02.SIZE = SDK_OVERLAY.MODULE_02.END - SDK_OVERLAY.MODULE_02.START; } > MODULE_02 - .MODULE.02.bss : + .MODULE_02.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_02.BSS_START = .; - module_02_dummy.o (.sbss) module_02_dummy.o (.bss) + module_02_dummy.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_02.BSS_END = .; SDK_OVERLAY.MODULE_02.BSS_SIZE = SDK_OVERLAY.MODULE_02.BSS_END - SDK_OVERLAY.MODULE_02.BSS_START; } >> MODULE_02 - .MODULE.03 : + .MODULE_03 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_03_ID = 3; + SDK_OVERLAY.MODULE_03.ID = 3; SDK_OVERLAY.MODULE_03.START = .; module_03_dummy.o (.text) + module_03_dummy.o (.rodata) + module_03_dummy.o (.init) + SDK_OVERLAY.MODULE_03.SINIT_START = .; + module_03_dummy.o (.ctor) + module_03_dummy.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_03.SINIT_END = .; + . = ALIGN(32); module_03_dummy.o (.sdata) module_03_dummy.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_03.END = .; SDK_OVERLAY.MODULE_03.SIZE = SDK_OVERLAY.MODULE_03.END - SDK_OVERLAY.MODULE_03.START; } > MODULE_03 - .MODULE.03.bss : + .MODULE_03.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_03.BSS_START = .; - module_03_dummy.o (.sbss) module_03_dummy.o (.bss) + module_03_dummy.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_03.BSS_END = .; SDK_OVERLAY.MODULE_03.BSS_SIZE = SDK_OVERLAY.MODULE_03.BSS_END - SDK_OVERLAY.MODULE_03.BSS_START; } >> MODULE_03 - .MODULE.04 : + .MODULE_04 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_04_ID = 4; + SDK_OVERLAY.MODULE_04.ID = 4; SDK_OVERLAY.MODULE_04.START = .; thumb_04.o (.text) arm_04.o (.text) - thumb_04.o (.sdata) - arm_04.o (.sdata) thumb_04.o (.rodata) arm_04.o (.rodata) + thumb_04.o (.init) + arm_04.o (.init) + SDK_OVERLAY.MODULE_04.SINIT_START = .; + thumb_04.o (.ctor) + arm_04.o (.ctor) + thumb_04.o (.sinit) + arm_04.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_04.SINIT_END = .; + . = ALIGN(32); + thumb_04.o (.sdata) + arm_04.o (.sdata) thumb_04.o (.data) arm_04.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_04.END = .; SDK_OVERLAY.MODULE_04.SIZE = SDK_OVERLAY.MODULE_04.END - SDK_OVERLAY.MODULE_04.START; } > MODULE_04 - .MODULE.04.bss : + .MODULE_04.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_04.BSS_START = .; - thumb_04.o (.sbss) - arm_04.o (.sbss) thumb_04.o (.bss) arm_04.o (.bss) + thumb_04.o (.sbss) + arm_04.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_04.BSS_END = .; SDK_OVERLAY.MODULE_04.BSS_SIZE = SDK_OVERLAY.MODULE_04.BSS_END - SDK_OVERLAY.MODULE_04.BSS_START; } >> MODULE_04 - .MODULE.05 : + .MODULE_05 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_05_ID = 5; + SDK_OVERLAY.MODULE_05.ID = 5; SDK_OVERLAY.MODULE_05.START = .; module_05.o (.text) + module_05.o (.rodata) + module_05.o (.init) + SDK_OVERLAY.MODULE_05.SINIT_START = .; + module_05.o (.ctor) + module_05.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_05.SINIT_END = .; + . = ALIGN(32); module_05.o (.sdata) module_05.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_05.END = .; SDK_OVERLAY.MODULE_05.SIZE = SDK_OVERLAY.MODULE_05.END - SDK_OVERLAY.MODULE_05.START; } > MODULE_05 - .MODULE.05.bss : + .MODULE_05.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_05.BSS_START = .; - module_05.o (.sbss) module_05.o (.bss) + module_05.o (.sbss) SDK_OVERLAY.MODULE_05.BSS_END = .; SDK_OVERLAY.MODULE_05.BSS_SIZE = SDK_OVERLAY.MODULE_05.BSS_END - SDK_OVERLAY.MODULE_05.BSS_START; } >> MODULE_05 - .MODULE.06 : + .MODULE_06 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_06_ID = 6; + SDK_OVERLAY.MODULE_06.ID = 6; SDK_OVERLAY.MODULE_06.START = .; module_06.o (.text) + module_06.o (.rodata) + module_06.o (.init) + SDK_OVERLAY.MODULE_06.SINIT_START = .; + module_06.o (.ctor) + module_06.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_06.SINIT_END = .; + . = ALIGN(32); module_06.o (.sdata) module_06.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_06.END = .; SDK_OVERLAY.MODULE_06.SIZE = SDK_OVERLAY.MODULE_06.END - SDK_OVERLAY.MODULE_06.START; } > MODULE_06 - .MODULE.06.bss : + .MODULE_06.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_06.BSS_START = .; - module_06.o (.sbss) module_06.o (.bss) + module_06.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_06.BSS_END = .; SDK_OVERLAY.MODULE_06.BSS_SIZE = SDK_OVERLAY.MODULE_06.BSS_END - SDK_OVERLAY.MODULE_06.BSS_START; } >> MODULE_06 - .MODULE.07 : + .MODULE_07 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_07_ID = 7; + SDK_OVERLAY.MODULE_07.ID = 7; SDK_OVERLAY.MODULE_07.START = .; module_07.o (.text) + module_07.o (.rodata) + module_07.o (.init) + SDK_OVERLAY.MODULE_07.SINIT_START = .; + module_07.o (.ctor) + module_07.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_07.SINIT_END = .; + . = ALIGN(32); module_07.o (.sdata) module_07.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_07.END = .; SDK_OVERLAY.MODULE_07.SIZE = SDK_OVERLAY.MODULE_07.END - SDK_OVERLAY.MODULE_07.START; } > MODULE_07 - .MODULE.07.bss : + .MODULE_07.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_07.BSS_START = .; - module_07.o (.sbss) module_07.o (.bss) + module_07.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_07.BSS_END = .; SDK_OVERLAY.MODULE_07.BSS_SIZE = SDK_OVERLAY.MODULE_07.BSS_END - SDK_OVERLAY.MODULE_07.BSS_START; } >> MODULE_07 - .MODULE.08 : + .MODULE_08 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_08_ID = 8; + SDK_OVERLAY.MODULE_08.ID = 8; SDK_OVERLAY.MODULE_08.START = .; module_08.o (.text) + module_08.o (.rodata) + module_08.o (.init) + SDK_OVERLAY.MODULE_08.SINIT_START = .; + module_08.o (.ctor) + module_08.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_08.SINIT_END = .; + . = ALIGN(32); module_08.o (.sdata) module_08.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_08.END = .; SDK_OVERLAY.MODULE_08.SIZE = SDK_OVERLAY.MODULE_08.END - SDK_OVERLAY.MODULE_08.START; } > MODULE_08 - .MODULE.08.bss : + .MODULE_08.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_08.BSS_START = .; - module_08.o (.sbss) module_08.o (.bss) + module_08.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_08.BSS_END = .; SDK_OVERLAY.MODULE_08.BSS_SIZE = SDK_OVERLAY.MODULE_08.BSS_END - SDK_OVERLAY.MODULE_08.BSS_START; } >> MODULE_08 - .MODULE.09 : + .MODULE_09 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_09_ID = 9; + SDK_OVERLAY.MODULE_09.ID = 9; SDK_OVERLAY.MODULE_09.START = .; module_09.o (.text) + module_09.o (.rodata) + module_09.o (.init) + SDK_OVERLAY.MODULE_09.SINIT_START = .; + module_09.o (.ctor) + module_09.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_09.SINIT_END = .; + . = ALIGN(32); module_09.o (.sdata) module_09.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_09.END = .; SDK_OVERLAY.MODULE_09.SIZE = SDK_OVERLAY.MODULE_09.END - SDK_OVERLAY.MODULE_09.START; } > MODULE_09 - .MODULE.09.bss : + .MODULE_09.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_09.BSS_START = .; - module_09.o (.sbss) module_09.o (.bss) + module_09.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_09.BSS_END = .; SDK_OVERLAY.MODULE_09.BSS_SIZE = SDK_OVERLAY.MODULE_09.BSS_END - SDK_OVERLAY.MODULE_09.BSS_START; } >> MODULE_09 - .MODULE.10 : + .MODULE_10 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_10_ID = 10; + SDK_OVERLAY.MODULE_10.ID = 10; SDK_OVERLAY.MODULE_10.START = .; module_10_dummy.o (.text) + module_10_dummy.o (.rodata) + module_10_dummy.o (.init) + SDK_OVERLAY.MODULE_10.SINIT_START = .; + module_10_dummy.o (.ctor) + module_10_dummy.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_10.SINIT_END = .; + . = ALIGN(32); module_10_dummy.o (.sdata) module_10_dummy.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_10.END = .; SDK_OVERLAY.MODULE_10.SIZE = SDK_OVERLAY.MODULE_10.END - SDK_OVERLAY.MODULE_10.START; } > MODULE_10 - .MODULE.10.bss : + .MODULE_10.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_10.BSS_START = .; - module_10_dummy.o (.sbss) module_10_dummy.o (.bss) + module_10_dummy.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_10.BSS_END = .; SDK_OVERLAY.MODULE_10.BSS_SIZE = SDK_OVERLAY.MODULE_10.BSS_END - SDK_OVERLAY.MODULE_10.BSS_START; } >> MODULE_10 - .MODULE.11 : + .MODULE_11 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_11_ID = 11; + SDK_OVERLAY.MODULE_11.ID = 11; SDK_OVERLAY.MODULE_11.START = .; module_11.o (.text) + module_11.o (.rodata) + module_11.o (.init) + // SDK_OVERLAY.MODULE_11.SINIT_START = .; + module_11.o (.ctor) + module_11.o (.sinit) + // SDK_OVERLAY.MODULE_11.SINIT_END = .; + // WRITEW 0; + . = ALIGN(32); module_11.o (.sdata) module_11.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_11.END = .; SDK_OVERLAY.MODULE_11.SIZE = SDK_OVERLAY.MODULE_11.END - SDK_OVERLAY.MODULE_11.START; } > MODULE_11 - .MODULE.11.bss : + .MODULE_11.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_11.BSS_START = .; - module_11.o (.sbss) module_11.o (.bss) + module_11.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_11.BSS_END = .; SDK_OVERLAY.MODULE_11.BSS_SIZE = SDK_OVERLAY.MODULE_11.BSS_END - SDK_OVERLAY.MODULE_11.BSS_START; } >> MODULE_11 - .MODULE.12 : + .MODULE_12 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_12_ID = 12; + SDK_OVERLAY.MODULE_12.ID = 12; SDK_OVERLAY.MODULE_12.START = .; module_12.o (.text) + module_12.o (.rodata) + module_12.o (.init) + SDK_OVERLAY.MODULE_12.SINIT_START = .; + module_12.o (.ctor) + module_12.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_12.SINIT_END = .; + . = ALIGN(32); module_12.o (.sdata) module_12.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_12.END = .; SDK_OVERLAY.MODULE_12.SIZE = SDK_OVERLAY.MODULE_12.END - SDK_OVERLAY.MODULE_12.START; } > MODULE_12 - .MODULE.12.bss : + .MODULE_12.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_12.BSS_START = .; - module_12.o (.sbss) module_12.o (.bss) + module_12.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_12.BSS_END = .; SDK_OVERLAY.MODULE_12.BSS_SIZE = SDK_OVERLAY.MODULE_12.BSS_END - SDK_OVERLAY.MODULE_12.BSS_START; } >> MODULE_12 - .MODULE.13 : + .MODULE_13 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_13_ID = 13; + SDK_OVERLAY.MODULE_13.ID = 13; SDK_OVERLAY.MODULE_13.START = .; module_13_init.o (.text) module_13_arm1.o (.text) module_13_thumb.o (.text) module_13_arm2.o (.text) + module_13_init.o (.rodata) + module_13_arm1.o (.rodata) + module_13_thumb.o (.rodata) + module_13_arm2.o (.rodata) + module_13_init.o (.init) + module_13_arm1.o (.init) + module_13_thumb.o (.init) + module_13_arm2.o (.init) + SDK_OVERLAY.MODULE_13.SINIT_START = .; + module_13_init.o (.ctor) + module_13_arm1.o (.ctor) + module_13_thumb.o (.ctor) + module_13_arm2.o (.ctor) + module_13_init.o (.sinit) + module_13_arm1.o (.sinit) + module_13_thumb.o (.sinit) + module_13_arm2.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_13.SINIT_END = .; + . = ALIGN(32); module_13_init.o (.sdata) module_13_arm1.o (.sdata) module_13_thumb.o (.sdata) @@ -667,1407 +833,2423 @@ SECTIONS { module_13_arm1.o (.data) module_13_thumb.o (.data) module_13_arm2.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_13.END = .; SDK_OVERLAY.MODULE_13.SIZE = SDK_OVERLAY.MODULE_13.END - SDK_OVERLAY.MODULE_13.START; } > MODULE_13 - .MODULE.13.bss : + .MODULE_13.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_13.BSS_START = .; - module_13_init.o (.sbss) - module_13_arm1.o (.sbss) - module_13_thumb.o (.sbss) - module_13_arm2.o (.sbss) module_13_init.o (.bss) module_13_arm1.o (.bss) module_13_thumb.o (.bss) module_13_arm2.o (.bss) + module_13_init.o (.sbss) + module_13_arm1.o (.sbss) + module_13_thumb.o (.sbss) + module_13_arm2.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_13.BSS_END = .; SDK_OVERLAY.MODULE_13.BSS_SIZE = SDK_OVERLAY.MODULE_13.BSS_END - SDK_OVERLAY.MODULE_13.BSS_START; } >> MODULE_13 - .MODULE.14 : + .MODULE_14 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_14_ID = 14; + SDK_OVERLAY.MODULE_14.ID = 14; SDK_OVERLAY.MODULE_14.START = .; module_14.o (.text) + module_14.o (.rodata) + module_14.o (.init) + SDK_OVERLAY.MODULE_14.SINIT_START = .; + module_14.o (.ctor) + module_14.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_14.SINIT_END = .; + . = ALIGN(32); module_14.o (.sdata) module_14.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_14.END = .; SDK_OVERLAY.MODULE_14.SIZE = SDK_OVERLAY.MODULE_14.END - SDK_OVERLAY.MODULE_14.START; } > MODULE_14 - .MODULE.14.bss : + .MODULE_14.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_14.BSS_START = .; - module_14.o (.sbss) module_14.o (.bss) + module_14.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_14.BSS_END = .; SDK_OVERLAY.MODULE_14.BSS_SIZE = SDK_OVERLAY.MODULE_14.BSS_END - SDK_OVERLAY.MODULE_14.BSS_START; } >> MODULE_14 - .MODULE.15 : + .MODULE_15 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_15_ID = 15; + SDK_OVERLAY.MODULE_15.ID = 15; SDK_OVERLAY.MODULE_15.START = .; module_15.o (.text) + module_15.o (.rodata) + module_15.o (.init) + SDK_OVERLAY.MODULE_15.SINIT_START = .; + module_15.o (.ctor) + module_15.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_15.SINIT_END = .; + . = ALIGN(32); module_15.o (.sdata) module_15.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_15.END = .; SDK_OVERLAY.MODULE_15.SIZE = SDK_OVERLAY.MODULE_15.END - SDK_OVERLAY.MODULE_15.START; } > MODULE_15 - .MODULE.15.bss : + .MODULE_15.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_15.BSS_START = .; - module_15.o (.sbss) module_15.o (.bss) + module_15.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_15.BSS_END = .; SDK_OVERLAY.MODULE_15.BSS_SIZE = SDK_OVERLAY.MODULE_15.BSS_END - SDK_OVERLAY.MODULE_15.BSS_START; } >> MODULE_15 - .MODULE.16 : + .MODULE_16 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_16_ID = 16; + SDK_OVERLAY.MODULE_16.ID = 16; SDK_OVERLAY.MODULE_16.START = .; module_16.o (.text) + module_16.o (.rodata) + module_16.o (.init) + SDK_OVERLAY.MODULE_16.SINIT_START = .; + module_16.o (.ctor) + module_16.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_16.SINIT_END = .; + . = ALIGN(32); module_16.o (.sdata) module_16.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_16.END = .; SDK_OVERLAY.MODULE_16.SIZE = SDK_OVERLAY.MODULE_16.END - SDK_OVERLAY.MODULE_16.START; } > MODULE_16 - .MODULE.16.bss : + .MODULE_16.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_16.BSS_START = .; - module_16.o (.sbss) module_16.o (.bss) + module_16.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_16.BSS_END = .; SDK_OVERLAY.MODULE_16.BSS_SIZE = SDK_OVERLAY.MODULE_16.BSS_END - SDK_OVERLAY.MODULE_16.BSS_START; } >> MODULE_16 - .MODULE.17 : + .MODULE_17 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_17_ID = 17; + SDK_OVERLAY.MODULE_17.ID = 17; SDK_OVERLAY.MODULE_17.START = .; module_17.o (.text) + module_17.o (.rodata) + module_17.o (.init) + SDK_OVERLAY.MODULE_17.SINIT_START = .; + module_17.o (.ctor) + module_17.o (.init) + WRITEW 0; + SDK_OVERLAY.MODULE_17.SINIT_END = .; + . = ALIGN(32); module_17.o (.sdata) module_17.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_17.END = .; SDK_OVERLAY.MODULE_17.SIZE = SDK_OVERLAY.MODULE_17.END - SDK_OVERLAY.MODULE_17.START; } > MODULE_17 - .MODULE.17.bss : + .MODULE_17.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_17.BSS_START = .; - module_17.o (.sbss) module_17.o (.bss) + module_17.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_17.BSS_END = .; SDK_OVERLAY.MODULE_17.BSS_SIZE = SDK_OVERLAY.MODULE_17.BSS_END - SDK_OVERLAY.MODULE_17.BSS_START; } >> MODULE_17 - .MODULE.18 : + .MODULE_18 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_18_ID = 18; + SDK_OVERLAY.MODULE_18.ID = 18; SDK_OVERLAY.MODULE_18.START = .; module_18.o (.text) + module_18.o (.rodata) + module_18.o (.init) + SDK_OVERLAY.MODULE_18.SINIT_START = .; + module_18.o (.ctor) + module_18.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_18.SINIT_END = .; + . = ALIGN(32); module_18.o (.sdata) module_18.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_18.END = .; SDK_OVERLAY.MODULE_18.SIZE = SDK_OVERLAY.MODULE_18.END - SDK_OVERLAY.MODULE_18.START; } > MODULE_18 - .MODULE.18.bss : + .MODULE_18.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_18.BSS_START = .; - module_18.o (.sbss) module_18.o (.bss) + module_18.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_18.BSS_END = .; SDK_OVERLAY.MODULE_18.BSS_SIZE = SDK_OVERLAY.MODULE_18.BSS_END - SDK_OVERLAY.MODULE_18.BSS_START; } >> MODULE_18 - .MODULE.19 : + .MODULE_19 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_19_ID = 19; + SDK_OVERLAY.MODULE_19.ID = 19; SDK_OVERLAY.MODULE_19.START = .; module_19.o (.text) + module_19.o (.rodata) + module_19.o (.init) + SDK_OVERLAY.MODULE_19.SINIT_START = .; + module_19.o (.ctor) + module_19.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_19.SINIT_END = .; + . = ALIGN(32); module_19.o (.sdata) module_19.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_19.END = .; SDK_OVERLAY.MODULE_19.SIZE = SDK_OVERLAY.MODULE_19.END - SDK_OVERLAY.MODULE_19.START; } > MODULE_19 - .MODULE.19.bss : + .MODULE_19.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_19.BSS_START = .; - module_19.o (.sbss) module_19.o (.bss) + module_19.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_19.BSS_END = .; SDK_OVERLAY.MODULE_19.BSS_SIZE = SDK_OVERLAY.MODULE_19.BSS_END - SDK_OVERLAY.MODULE_19.BSS_START; } >> MODULE_19 - .MODULE.20 : + .MODULE_20 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_20_ID = 20; + SDK_OVERLAY.MODULE_20.ID = 20; SDK_OVERLAY.MODULE_20.START = .; module_20.o (.text) + module_20.o (.rodata) + module_20.o (.init) + SDK_OVERLAY.MODULE_20.SINIT_START = .; + module_20.o (.ctor) + module_20.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_20.SINIT_END = .; + . = ALIGN(32); module_20.o (.sdata) module_20.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_20.END = .; SDK_OVERLAY.MODULE_20.SIZE = SDK_OVERLAY.MODULE_20.END - SDK_OVERLAY.MODULE_20.START; } > MODULE_20 - .MODULE.20.bss : + .MODULE_20.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_20.BSS_START = .; - module_20.o (.sbss) module_20.o (.bss) + module_20.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_20.BSS_END = .; SDK_OVERLAY.MODULE_20.BSS_SIZE = SDK_OVERLAY.MODULE_20.BSS_END - SDK_OVERLAY.MODULE_20.BSS_START; } >> MODULE_20 - .MODULE.21 : + .MODULE_21 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_21_ID = 21; + SDK_OVERLAY.MODULE_21.ID = 21; SDK_OVERLAY.MODULE_21.START = .; module_21.o (.text) + module_21.o (.rodata) + module_21.o (.init) + // SDK_OVERLAY.MODULE_21.SINIT_START = .; + module_21.o (.ctor) + module_21.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_21.SINIT_END = ; + . = ALIGN(32); module_21.o (.sdata) module_21.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_21.END = .; SDK_OVERLAY.MODULE_21.SIZE = SDK_OVERLAY.MODULE_21.END - SDK_OVERLAY.MODULE_21.START; } > MODULE_21 - .MODULE.21.bss : + .MODULE_21.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_21.BSS_START = .; - module_21.o (.sbss) module_21.o (.bss) + module_21.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_21.BSS_END = .; SDK_OVERLAY.MODULE_21.BSS_SIZE = SDK_OVERLAY.MODULE_21.BSS_END - SDK_OVERLAY.MODULE_21.BSS_START; } >> MODULE_21 - .MODULE.22 : + .MODULE_22 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_22_ID = 22; + SDK_OVERLAY.MODULE_22.ID = 22; SDK_OVERLAY.MODULE_22.START = .; module_22.o (.text) + module_22.o (.rodata) + module_22.o (.init) + SDK_OVERLAY.MODULE_22.SINIT_START = .; + module_22.o (.ctor) + module_22.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_22.SINIT_END = .; + . = ALIGN(32); module_22.o (.sdata) module_22.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_22.END = .; SDK_OVERLAY.MODULE_22.SIZE = SDK_OVERLAY.MODULE_22.END - SDK_OVERLAY.MODULE_22.START; } > MODULE_22 - .MODULE.22.bss : + .MODULE_22.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_22.BSS_START = .; - module_22.o (.sbss) module_22.o (.bss) + module_22.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_22.BSS_END = .; SDK_OVERLAY.MODULE_22.BSS_SIZE = SDK_OVERLAY.MODULE_22.BSS_END - SDK_OVERLAY.MODULE_22.BSS_START; } >> MODULE_22 - .MODULE.23 : + .MODULE_23 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_23_ID = 23; + SDK_OVERLAY.MODULE_23.ID = 23; SDK_OVERLAY.MODULE_23.START = .; module_23.o (.text) + module_23.o (.rodata) + module_23.o (.init) + // SDK_OVERLAY.MODULE_23.SINIT_START = .; + module_23.o (.ctor) + module_23.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_23.SINIT_END = .; + . = ALIGN(32); module_23.o (.sdata) module_23.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_23.END = .; SDK_OVERLAY.MODULE_23.SIZE = SDK_OVERLAY.MODULE_23.END - SDK_OVERLAY.MODULE_23.START; } > MODULE_23 - .MODULE.23.bss : + .MODULE_23.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_23.BSS_START = .; - module_23.o (.sbss) module_23.o (.bss) + module_23.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_23.BSS_END = .; SDK_OVERLAY.MODULE_23.BSS_SIZE = SDK_OVERLAY.MODULE_23.BSS_END - SDK_OVERLAY.MODULE_23.BSS_START; } >> MODULE_23 - .MODULE.24 : + .MODULE_24 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_24_ID = 24; + SDK_OVERLAY.MODULE_24.ID = 24; SDK_OVERLAY.MODULE_24.START = .; module_24.o (.text) + module_24.o (.rodata) + module_24.o (.init) + SDK_OVERLAY.MODULE_24.SINIT_START = .; + module_24.o (.ctor) + module_24.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_24.SINIT_END = .; + . = ALIGN(32); module_24.o (.sdata) module_24.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_24.END = .; SDK_OVERLAY.MODULE_24.SIZE = SDK_OVERLAY.MODULE_24.END - SDK_OVERLAY.MODULE_24.START; } > MODULE_24 - .MODULE.24.bss : + .MODULE_24.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_24.BSS_START = .; - module_24.o (.sbss) module_24.o (.bss) + module_24.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_24.BSS_END = .; SDK_OVERLAY.MODULE_24.BSS_SIZE = SDK_OVERLAY.MODULE_24.BSS_END - SDK_OVERLAY.MODULE_24.BSS_START; } >> MODULE_24 - .MODULE.25 : + .MODULE_25 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_25_ID = 25; + SDK_OVERLAY.MODULE_25.ID = 25; SDK_OVERLAY.MODULE_25.START = .; module_25.o (.text) + module_25.o (.rodata) + module_25.o (.init) + SDK_OVERLAY.MODULE_25.SINIT_START = .; + module_25.o (.ctor) + module_25.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_25.SINIT_END = .; + . = ALIGN(32); module_25.o (.sdata) module_25.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_25.END = .; SDK_OVERLAY.MODULE_25.SIZE = SDK_OVERLAY.MODULE_25.END - SDK_OVERLAY.MODULE_25.START; } > MODULE_25 - .MODULE.25.bss : + .MODULE_25.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_25.BSS_START = .; - module_25.o (.sbss) module_25.o (.bss) + module_25.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_25.BSS_END = .; SDK_OVERLAY.MODULE_25.BSS_SIZE = SDK_OVERLAY.MODULE_25.BSS_END - SDK_OVERLAY.MODULE_25.BSS_START; } >> MODULE_25 - .MODULE.26 : + .MODULE_26 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_26_ID = 26; + SDK_OVERLAY.MODULE_26.ID = 26; SDK_OVERLAY.MODULE_26.START = .; module_26.o (.text) + module_26.o (.rodata) + module_26.o (.init) + SDK_OVERLAY.MODULE_26.SINIT_START = .; + module_26.o (.ctor) + module_26.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_26.SINIT_END = .; + . = ALIGN(32); module_26.o (.sdata) module_26.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_26.END = .; SDK_OVERLAY.MODULE_26.SIZE = SDK_OVERLAY.MODULE_26.END - SDK_OVERLAY.MODULE_26.START; } > MODULE_26 - .MODULE.26.bss : + .MODULE_26.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_26.BSS_START = .; - module_26.o (.sbss) module_26.o (.bss) + module_26.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_26.BSS_END = .; SDK_OVERLAY.MODULE_26.BSS_SIZE = SDK_OVERLAY.MODULE_26.BSS_END - SDK_OVERLAY.MODULE_26.BSS_START; } >> MODULE_26 - .MODULE.27 : + .MODULE_27 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_27_ID = 27; + SDK_OVERLAY.MODULE_27.ID = 27; SDK_OVERLAY.MODULE_27.START = .; module_27.o (.text) + module_27.o (.rodata) + module_27.o (.init) + // SDK_OVERLAY.MODULE_27.SINIT_START = .; + module_27.o (.ctor) + module_27.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_27.SINIT_END = .; + . = ALIGN(32); module_27.o (.sdata) module_27.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_27.END = .; SDK_OVERLAY.MODULE_27.SIZE = SDK_OVERLAY.MODULE_27.END - SDK_OVERLAY.MODULE_27.START; } > MODULE_27 - .MODULE.27.bss : + .MODULE_27.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_27.BSS_START = .; - module_27.o (.sbss) module_27.o (.bss) + module_27.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_27.BSS_END = .; SDK_OVERLAY.MODULE_27.BSS_SIZE = SDK_OVERLAY.MODULE_27.BSS_END - SDK_OVERLAY.MODULE_27.BSS_START; } >> MODULE_27 - .MODULE.28 : + .MODULE_28 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_28_ID = 28; + SDK_OVERLAY.MODULE_28.ID = 28; SDK_OVERLAY.MODULE_28.START = .; module_28.o (.text) + module_28.o (.rodata) + module_28.o (.init) + // SDK_OVERLAY.MODULE_28.SINIT_START = .; + module_28.o (.ctor) + module_28.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_28.SINIT_END = .; + . = ALIGN(32); module_28.o (.sdata) module_28.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_28.END = .; SDK_OVERLAY.MODULE_28.SIZE = SDK_OVERLAY.MODULE_28.END - SDK_OVERLAY.MODULE_28.START; } > MODULE_28 - .MODULE.28.bss : + .MODULE_28.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_28.BSS_START = .; - module_28.o (.sbss) module_28.o (.bss) + module_28.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_28.BSS_END = .; SDK_OVERLAY.MODULE_28.BSS_SIZE = SDK_OVERLAY.MODULE_28.BSS_END - SDK_OVERLAY.MODULE_28.BSS_START; } >> MODULE_28 - .MODULE.29 : + .MODULE_29 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_29_ID = 29; + SDK_OVERLAY.MODULE_29.ID = 29; SDK_OVERLAY.MODULE_29.START = .; module_29.o (.text) + module_29.o (.rodata) + module_29.o (.init) + // SDK_OVERLAY.MODULE_29.SINIT_START = .; + module_29.o (.ctor) + module_29.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_29.SINIT_END = .; + . = ALIGN(32); module_29.o (.sdata) module_29.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_29.END = .; SDK_OVERLAY.MODULE_29.SIZE = SDK_OVERLAY.MODULE_29.END - SDK_OVERLAY.MODULE_29.START; } > MODULE_29 - .MODULE.29.bss : + .MODULE_29.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_29.BSS_START = .; - module_29.o (.sbss) module_29.o (.bss) + module_29.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_29.BSS_END = .; SDK_OVERLAY.MODULE_29.BSS_SIZE = SDK_OVERLAY.MODULE_29.BSS_END - SDK_OVERLAY.MODULE_29.BSS_START; } >> MODULE_29 - .MODULE.30 : + .MODULE_30 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_30_ID = 30; + SDK_OVERLAY.MODULE_30.ID = 30; SDK_OVERLAY.MODULE_30.START = .; module_30.o (.text) + module_30.o (.rodata) + module_30.o (.init) + // SDK_OVERLAY.MODULE_30.SINIT_START = .; + module_30.o (.ctor) + module_30.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_30.SINIT_END = .; + . = ALIGN(32); module_30.o (.sdata) module_30.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_30.END = .; SDK_OVERLAY.MODULE_30.SIZE = SDK_OVERLAY.MODULE_30.END - SDK_OVERLAY.MODULE_30.START; } > MODULE_30 - .MODULE.30.bss : + .MODULE_30.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_30.BSS_START = .; - module_30.o (.sbss) module_30.o (.bss) + module_30.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_30.BSS_END = .; SDK_OVERLAY.MODULE_30.BSS_SIZE = SDK_OVERLAY.MODULE_30.BSS_END - SDK_OVERLAY.MODULE_30.BSS_START; } >> MODULE_30 - .MODULE.31 : + .MODULE_31 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_31_ID = 31; + SDK_OVERLAY.MODULE_31.ID = 31; SDK_OVERLAY.MODULE_31.START = .; module_31.o (.text) + module_31.o (.rodata) + module_31.o (.init) + SDK_OVERLAY.MODULE_31.SINIT_START = .; + module_31.o (.ctor) + module_31.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_31.SINIT_END = .; + . = ALIGN(32); module_31.o (.sdata) module_31.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_31.END = .; SDK_OVERLAY.MODULE_31.SIZE = SDK_OVERLAY.MODULE_31.END - SDK_OVERLAY.MODULE_31.START; } > MODULE_31 - .MODULE.31.bss : + .MODULE_31.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_31.BSS_START = .; - module_31.o (.sbss) module_31.o (.bss) + module_31.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_31.BSS_END = .; SDK_OVERLAY.MODULE_31.BSS_SIZE = SDK_OVERLAY.MODULE_31.BSS_END - SDK_OVERLAY.MODULE_31.BSS_START; } >> MODULE_31 - .MODULE.32 : + .MODULE_32 : { + ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_32_ID = 32; + SDK_OVERLAY.MODULE_32.ID = 32; SDK_OVERLAY.MODULE_32.START = .; module_32.o (.text) + module_32.o (.rodata) + module_32.o (.init) + // SDK_OVERLAY.MODULE_32.SINIT_START = .; + module_32.o (.ctor) + module_32.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_32.SINIT_END = .; + . = ALIGN(32); module_32.o (.sdata) module_32.o (.data) + . = ALIGN(32); SDK_OVERLAY.MODULE_32.END = .; SDK_OVERLAY.MODULE_32.SIZE = SDK_OVERLAY.MODULE_32.END - SDK_OVERLAY.MODULE_32.START; } > MODULE_32 - .MODULE.32.bss : + .MODULE_32.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_32.BSS_START = .; - module_32.o (.sbss) module_32.o (.bss) + module_32.o (.sbss) + . = ALIGN(32); SDK_OVERLAY.MODULE_32.BSS_END = .; SDK_OVERLAY.MODULE_32.BSS_SIZE = SDK_OVERLAY.MODULE_32.BSS_END - SDK_OVERLAY.MODULE_32.BSS_START; } >> MODULE_32 - .MODULE.33: { + .MODULE_33 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_33_ID = 33; + SDK_OVERLAY.MODULE_33.ID = 33; SDK_OVERLAY.MODULE_33.START = .; - FILE_28DE00.o (.text) /* 0x289E00 */ + module_33.o (.text) + module_33.o (.rodata) + module_33.o (.init) + SDK_OVERLAY.MODULE_33.SINIT_START = .; + module_33.o (.ctor) + module_33.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_33.SINIT_END = .; + . = ALIGN(32); + module_33.o (.sdata) + module_33.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_33.END = .; SDK_OVERLAY.MODULE_33.SIZE = SDK_OVERLAY.MODULE_33.END - SDK_OVERLAY.MODULE_33.START; } > MODULE_33 - .MODULE.33.bss : + .MODULE_33.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_33.BSS_START = .; - FILE_28DE00.o (.bss) + module_33.o (.bss) + module_33.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_33.BSS_END = .; SDK_OVERLAY.MODULE_33.BSS_SIZE = SDK_OVERLAY.MODULE_33.BSS_END - SDK_OVERLAY.MODULE_33.BSS_START; } >> MODULE_33 - .MODULE.34: { + .MODULE_34 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_34_ID = 34; + SDK_OVERLAY.MODULE_34.ID = 34; SDK_OVERLAY.MODULE_34.START = .; - FILE_28E200.o (.text) /* 0x28A200 */ + module_34.o (.text) + module_34.o (.rodata) + module_34.o (.init) + // SDK_OVERLAY.MODULE_34.SINIT_START = .; + module_34.o (.ctor) + module_34.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_34.SINIT_END = .; + . = ALIGN(32); + module_34.o (.sdata) + module_34.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_34.END = .; SDK_OVERLAY.MODULE_34.SIZE = SDK_OVERLAY.MODULE_34.END - SDK_OVERLAY.MODULE_34.START; } > MODULE_34 - .MODULE.34.bss : + .MODULE_34.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_34.BSS_START = .; - FILE_28E200.o (.bss) + module_34.o (.bss) + module_34.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_34.BSS_END = .; SDK_OVERLAY.MODULE_34.BSS_SIZE = SDK_OVERLAY.MODULE_34.BSS_END - SDK_OVERLAY.MODULE_34.BSS_START; } >> MODULE_34 - .MODULE.35: { + .MODULE_35 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_35_ID = 35; + SDK_OVERLAY.MODULE_35.ID = 35; SDK_OVERLAY.MODULE_35.START = .; - FILE_28E800.o (.text) /* 0x28A800 */ + module_35.o (.text) + module_35.o (.rodata) + module_35.o (.init) + SDK_OVERLAY.MODULE_35.SINIT_START = .; + module_35.o (.ctor) + module_35.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_35.SINIT_END = .; + . = ALIGN(32); + module_35.o (.sdata) + module_35.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_35.END = .; SDK_OVERLAY.MODULE_35.SIZE = SDK_OVERLAY.MODULE_35.END - SDK_OVERLAY.MODULE_35.START; } > MODULE_35 - .MODULE.35.bss : + .MODULE_35.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_35.BSS_START = .; - FILE_28E800.o (.bss) + module_35.o (.bss) + module_35.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_35.BSS_END = .; SDK_OVERLAY.MODULE_35.BSS_SIZE = SDK_OVERLAY.MODULE_35.BSS_END - SDK_OVERLAY.MODULE_35.BSS_START; } >> MODULE_35 - .MODULE.36: { + .MODULE_36 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_36_ID = 36; + SDK_OVERLAY.MODULE_36.ID = 36; SDK_OVERLAY.MODULE_36.START = .; - FILE_28F200.o (.text) /* 0x28B200 */ + module_36.o (.text) + module_36.o (.rodata) + module_36.o (.init) + // SDK_OVERLAY.MODULE_36.SINIT_START = .; + module_36.o (.ctor) + module_36.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_36.SINIT_END = .; + . = ALIGN(32); + module_36.o (.sdata) + module_36.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_36.END = .; SDK_OVERLAY.MODULE_36.SIZE = SDK_OVERLAY.MODULE_36.END - SDK_OVERLAY.MODULE_36.START; } > MODULE_36 - .MODULE.36.bss : + .MODULE_36.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_36.BSS_START = .; - FILE_28F200.o (.bss) + module_36.o (.bss) + module_36.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_36.BSS_END = .; SDK_OVERLAY.MODULE_36.BSS_SIZE = SDK_OVERLAY.MODULE_36.BSS_END - SDK_OVERLAY.MODULE_36.BSS_START; } >> MODULE_36 - .MODULE.37: { + .MODULE_37 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_37_ID = 37; + SDK_OVERLAY.MODULE_37.ID = 37; SDK_OVERLAY.MODULE_37.START = .; - FILE_290000.o (.text) /* 0x28C000 */ + module_37.o (.text) + module_37.o (.rodata) + module_37.o (.init) + SDK_OVERLAY.MODULE_37.SINIT_START = .; + module_37.o (.ctor) + module_37.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_37.SINIT_END = .; + . = ALIGN(32); + module_37.o (.sdata) + module_37.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_37.END = .; SDK_OVERLAY.MODULE_37.SIZE = SDK_OVERLAY.MODULE_37.END - SDK_OVERLAY.MODULE_37.START; } > MODULE_37 - .MODULE.37.bss : + .MODULE_37.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_37.BSS_START = .; - FILE_290000.o (.bss) + module_37.o (.bss) + module_37.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_37.BSS_END = .; SDK_OVERLAY.MODULE_37.BSS_SIZE = SDK_OVERLAY.MODULE_37.BSS_END - SDK_OVERLAY.MODULE_37.BSS_START; } >> MODULE_37 - .MODULE.38: { + .MODULE_38 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_38_ID = 38; + SDK_OVERLAY.MODULE_38.ID = 38; SDK_OVERLAY.MODULE_38.START = .; - FILE_290600.o (.text) /* 0x28C600 */ + module_38.o (.text) + module_38.o (.rodata) + module_38.o (.init) + SDK_OVERLAY.MODULE_38.SINIT_START = .; + module_38.o (.ctor) + module_38.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_38.SINIT_END = .; + . = ALIGN(32); + module_38.o (.sdata) + module_38.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_38.END = .; SDK_OVERLAY.MODULE_38.SIZE = SDK_OVERLAY.MODULE_38.END - SDK_OVERLAY.MODULE_38.START; } > MODULE_38 - .MODULE.38.bss : + .MODULE_38.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_38.BSS_START = .; - FILE_290600.o (.bss) + module_38.o (.bss) + module_38.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_38.BSS_END = .; SDK_OVERLAY.MODULE_38.BSS_SIZE = SDK_OVERLAY.MODULE_38.BSS_END - SDK_OVERLAY.MODULE_38.BSS_START; } >> MODULE_38 - .MODULE.39: { + .MODULE_39 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_39_ID = 39; + SDK_OVERLAY.MODULE_39.ID = 39; SDK_OVERLAY.MODULE_39.START = .; - FILE_291200.o (.text) /* 0x28D200 */ + module_39.o (.text) + module_39.o (.rodata) + module_39.o (.init) + // SDK_OVERLAY.MODULE_39.SINIT_START = .; + module_39.o (.ctor) + module_39.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_39.SINIT_END = .; + . = ALIGN(32); + module_39.o (.sdata) + module_39.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_39.END = .; SDK_OVERLAY.MODULE_39.SIZE = SDK_OVERLAY.MODULE_39.END - SDK_OVERLAY.MODULE_39.START; } > MODULE_39 - .MODULE.39.bss : + .MODULE_39.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_39.BSS_START = .; - FILE_291200.o (.bss) + module_39.o (.bss) + module_39.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_39.BSS_END = .; SDK_OVERLAY.MODULE_39.BSS_SIZE = SDK_OVERLAY.MODULE_39.BSS_END - SDK_OVERLAY.MODULE_39.BSS_START; } >> MODULE_39 - .MODULE.40: { + .MODULE_40 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_40_ID = 40; + SDK_OVERLAY.MODULE_40.ID = 40; SDK_OVERLAY.MODULE_40.START = .; - FILE_292000.o (.text) /* 0x28E000 */ + module_40.o (.text) + module_40.o (.rodata) + module_40.o (.init) + SDK_OVERLAY.MODULE_40.SINIT_START = .; + module_40.o (.ctor) + module_40.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_40.SINIT_END = .; + . = ALIGN(32); + module_40.o (.sdata) + module_40.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_40.END = .; SDK_OVERLAY.MODULE_40.SIZE = SDK_OVERLAY.MODULE_40.END - SDK_OVERLAY.MODULE_40.START; } > MODULE_40 - .MODULE.40.bss : + .MODULE_40.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_40.BSS_START = .; - FILE_292000.o (.bss) + module_40.o (.bss) + module_40.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_40.BSS_END = .; SDK_OVERLAY.MODULE_40.BSS_SIZE = SDK_OVERLAY.MODULE_40.BSS_END - SDK_OVERLAY.MODULE_40.BSS_START; } >> MODULE_40 - .MODULE.41: { + .MODULE_41 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_41_ID = 41; + SDK_OVERLAY.MODULE_41.ID = 41; SDK_OVERLAY.MODULE_41.START = .; - FILE_292E00.o (.text) /* 0x28EE00 */ + module_41.o (.text) + module_41.o (.rodata) + module_41.o (.init) + // SDK_OVERLAY.MODULE_41.SINIT_START = .; + module_41.o (.ctor) + module_41.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_41.SINIT_END = .; + . = ALIGN(32); + module_41.o (.sdata) + module_41.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_41.END = .; SDK_OVERLAY.MODULE_41.SIZE = SDK_OVERLAY.MODULE_41.END - SDK_OVERLAY.MODULE_41.START; } > MODULE_41 - .MODULE.41.bss : + .MODULE_41.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_41.BSS_START = .; - FILE_292E00.o (.bss) + module_41.o (.bss) + module_41.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_41.BSS_END = .; SDK_OVERLAY.MODULE_41.BSS_SIZE = SDK_OVERLAY.MODULE_41.BSS_END - SDK_OVERLAY.MODULE_41.BSS_START; } >> MODULE_41 - .MODULE.42: { + .MODULE_42 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_42_ID = 42; + SDK_OVERLAY.MODULE_42.ID = 42; SDK_OVERLAY.MODULE_42.START = .; - FILE_294000.o (.text) /* 0x290000 */ + module_42.o (.text) + module_42.o (.rodata) + module_42.o (.init) + // SDK_OVERLAY.MODULE_42.SINIT_START = .; + module_42.o (.ctor) + module_42.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_42.SINIT_END = .; + . = ALIGN(32); + module_42.o (.sdata) + module_42.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_42.END = .; SDK_OVERLAY.MODULE_42.SIZE = SDK_OVERLAY.MODULE_42.END - SDK_OVERLAY.MODULE_42.START; } > MODULE_42 - .MODULE.42.bss : + .MODULE_42.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_42.BSS_START = .; - FILE_294000.o (.bss) + module_42.o (.bss) + module_42.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_42.BSS_END = .; SDK_OVERLAY.MODULE_42.BSS_SIZE = SDK_OVERLAY.MODULE_42.BSS_END - SDK_OVERLAY.MODULE_42.BSS_START; } >> MODULE_42 - .MODULE.43: { + .MODULE_43 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_43_ID = 43; + SDK_OVERLAY.MODULE_43.ID = 43; SDK_OVERLAY.MODULE_43.START = .; - FILE_294A00.o (.text) /* 0x290A00 */ + module_43.o (.text) + module_43.o (.rodata) + module_43.o (.init) + // SDK_OVERLAY.MODULE_43.SINIT_START = .; + module_43.o (.ctor) + module_43.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_43.SINIT_END = .; + . = ALIGN(32); + module_43.o (.sdata) + module_43.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_43.END = .; SDK_OVERLAY.MODULE_43.SIZE = SDK_OVERLAY.MODULE_43.END - SDK_OVERLAY.MODULE_43.START; } > MODULE_43 - .MODULE.43.bss : + .MODULE_43.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_43.BSS_START = .; - FILE_294A00.o (.bss) + module_43.o (.bss) + module_43.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_43.BSS_END = .; SDK_OVERLAY.MODULE_43.BSS_SIZE = SDK_OVERLAY.MODULE_43.BSS_END - SDK_OVERLAY.MODULE_43.BSS_START; } >> MODULE_43 - .MODULE.44: { + .MODULE_44 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_44_ID = 44; + SDK_OVERLAY.MODULE_44.ID = 44; SDK_OVERLAY.MODULE_44.START = .; - FILE_295400.o (.text) /* 0x291400 */ + module_44.o (.text) + module_44.o (.rodata) + module_44.o (.init) + // SDK_OVERLAY.MODULE_44.SINIT_START = .; + module_44.o (.ctor) + module_44.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_44.SINIT_END = .; + . = ALIGN(32); + module_44.o (.sdata) + module_44.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_44.END = .; SDK_OVERLAY.MODULE_44.SIZE = SDK_OVERLAY.MODULE_44.END - SDK_OVERLAY.MODULE_44.START; } > MODULE_44 - .MODULE.44.bss : + .MODULE_44.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_44.BSS_START = .; - FILE_295400.o (.bss) + module_44.o (.bss) + module_44.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_44.BSS_END = .; SDK_OVERLAY.MODULE_44.BSS_SIZE = SDK_OVERLAY.MODULE_44.BSS_END - SDK_OVERLAY.MODULE_44.BSS_START; } >> MODULE_44 - .MODULE.45: { + .MODULE_45 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_45_ID = 45; + SDK_OVERLAY.MODULE_45.ID = 45; SDK_OVERLAY.MODULE_45.START = .; - FILE_295A00.o (.text) /* 0x291A00 */ + module_45.o (.text) + module_45.o (.rodata) + module_45.o (.init) + SDK_OVERLAY.MODULE_45.SINIT_START = .; + module_45.o (.ctor) + module_45.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_45.SINIT_END = .; + . = ALIGN(32); + module_45.o (.sdata) + module_45.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_45.END = .; SDK_OVERLAY.MODULE_45.SIZE = SDK_OVERLAY.MODULE_45.END - SDK_OVERLAY.MODULE_45.START; } > MODULE_45 - .MODULE.45.bss : + .MODULE_45.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_45.BSS_START = .; - FILE_295A00.o (.bss) + module_45.o (.bss) + module_45.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_45.BSS_END = .; SDK_OVERLAY.MODULE_45.BSS_SIZE = SDK_OVERLAY.MODULE_45.BSS_END - SDK_OVERLAY.MODULE_45.BSS_START; } >> MODULE_45 - .MODULE.46: { + .MODULE_46 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_46_ID = 46; + SDK_OVERLAY.MODULE_46.ID = 46; SDK_OVERLAY.MODULE_46.START = .; - FILE_296400.o (.text) /* 0x292400 */ + module_46.o (.text) + module_46.o (.rodata) + module_46.o (.init) + SDK_OVERLAY.MODULE_46.SINIT_START = .; + module_46.o (.ctor) + module_46.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_46.SINIT_END = .; + . = ALIGN(32); + module_46.o (.sdata) + module_46.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_46.END = .; SDK_OVERLAY.MODULE_46.SIZE = SDK_OVERLAY.MODULE_46.END - SDK_OVERLAY.MODULE_46.START; } > MODULE_46 - .MODULE.46.bss : + .MODULE_46.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_46.BSS_START = .; - FILE_296400.o (.bss) + module_46.o (.bss) + module_46.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_46.BSS_END = .; SDK_OVERLAY.MODULE_46.BSS_SIZE = SDK_OVERLAY.MODULE_46.BSS_END - SDK_OVERLAY.MODULE_46.BSS_START; } >> MODULE_46 - .MODULE.47: { + .MODULE_47 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_47_ID = 47; + SDK_OVERLAY.MODULE_47.ID = 47; SDK_OVERLAY.MODULE_47.START = .; - FILE_296800.o (.text) /* 0x292800 */ + module_47.o (.text) + module_47.o (.rodata) + module_47.o (.init) + // SDK_OVERLAY.MODULE_47.SINIT_START = .; + module_47.o (.ctor) + module_47.o (.sinit) + // WRITEW 0; + // SDK_OVERLAY.MODULE_47.SINIT_END = .; + . = ALIGN(32); + module_47.o (.sdata) + module_47.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_47.END = .; SDK_OVERLAY.MODULE_47.SIZE = SDK_OVERLAY.MODULE_47.END - SDK_OVERLAY.MODULE_47.START; } > MODULE_47 - .MODULE.47.bss : + .MODULE_47.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_47.BSS_START = .; - FILE_296800.o (.bss) + module_47.o (.bss) + module_47.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_47.BSS_END = .; SDK_OVERLAY.MODULE_47.BSS_SIZE = SDK_OVERLAY.MODULE_47.BSS_END - SDK_OVERLAY.MODULE_47.BSS_START; } >> MODULE_47 - .MODULE.48: { + .MODULE_48 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_48_ID = 48; + SDK_OVERLAY.MODULE_48.ID = 48; SDK_OVERLAY.MODULE_48.START = .; - FILE_297600.o (.text) /* 0x293600 */ + module_48.o (.text) + module_48.o (.rodata) + module_48.o (.init) + SDK_OVERLAY.MODULE_48.SINIT_START = .; + module_48.o (.ctor) + module_48.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_48.SINIT_END = .; + . = ALIGN(32); + module_48.o (.sdata) + module_48.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_48.END = .; SDK_OVERLAY.MODULE_48.SIZE = SDK_OVERLAY.MODULE_48.END - SDK_OVERLAY.MODULE_48.START; } > MODULE_48 - .MODULE.48.bss : + .MODULE_48.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_48.BSS_START = .; - FILE_297600.o (.bss) + module_48.o (.bss) + module_48.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_48.BSS_END = .; SDK_OVERLAY.MODULE_48.BSS_SIZE = SDK_OVERLAY.MODULE_48.BSS_END - SDK_OVERLAY.MODULE_48.BSS_START; } >> MODULE_48 - .MODULE.49: { + .MODULE_49 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_49_ID = 49; + SDK_OVERLAY.MODULE_49.ID = 49; SDK_OVERLAY.MODULE_49.START = .; - FILE_298000.o (.text) /* 0x294000 */ + module_49.o (.text) + module_49.o (.rodata) + module_49.o (.init) + SDK_OVERLAY.MODULE_49.SINIT_START = .; + module_49.o (.ctor) + module_49.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_49.SINIT_END = .; + . = ALIGN(32); + module_49.o (.sdata) + module_49.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_49.END = .; SDK_OVERLAY.MODULE_49.SIZE = SDK_OVERLAY.MODULE_49.END - SDK_OVERLAY.MODULE_49.START; } > MODULE_49 - .MODULE.49.bss : + .MODULE_49.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_49.BSS_START = .; - FILE_298000.o (.bss) + module_49.o (.bss) + module_49.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_49.BSS_END = .; SDK_OVERLAY.MODULE_49.BSS_SIZE = SDK_OVERLAY.MODULE_49.BSS_END - SDK_OVERLAY.MODULE_49.BSS_START; } >> MODULE_49 - .MODULE.50: { + .MODULE_50 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_50_ID = 50; + SDK_OVERLAY.MODULE_50.ID = 50; SDK_OVERLAY.MODULE_50.START = .; - FILE_298600.o (.text) /* 0x294600 */ + module_50.o (.text) + module_50.o (.rodata) + module_50.o (.init) + SDK_OVERLAY.MODULE_50.SINIT_START = .; + module_50.o (.ctor) + module_50.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_50.SINIT_END = .; + . = ALIGN(32); + module_50.o (.sdata) + module_50.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_50.END = .; SDK_OVERLAY.MODULE_50.SIZE = SDK_OVERLAY.MODULE_50.END - SDK_OVERLAY.MODULE_50.START; } > MODULE_50 - .MODULE.50.bss : + .MODULE_50.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_50.BSS_START = .; - FILE_298600.o (.bss) + module_50.o (.bss) + module_50.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_50.BSS_END = .; SDK_OVERLAY.MODULE_50.BSS_SIZE = SDK_OVERLAY.MODULE_50.BSS_END - SDK_OVERLAY.MODULE_50.BSS_START; } >> MODULE_50 - .MODULE.51: { + .MODULE_51 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_51_ID = 51; + SDK_OVERLAY.MODULE_51.ID = 51; SDK_OVERLAY.MODULE_51.START = .; - FILE_298A00.o (.text) /* 0x294A00 */ + module_51.o (.text) + module_51.o (.rodata) + module_51.o (.init) + SDK_OVERLAY.MODULE_51.SINIT_START = .; + module_51.o (.ctor) + module_51.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_51.SINIT_END = .; + . = ALIGN(32); + module_51.o (.sdata) + module_51.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_51.END = .; SDK_OVERLAY.MODULE_51.SIZE = SDK_OVERLAY.MODULE_51.END - SDK_OVERLAY.MODULE_51.START; } > MODULE_51 - .MODULE.51.bss : + .MODULE_51.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_51.BSS_START = .; - FILE_298A00.o (.bss) + module_51.o (.bss) + module_51.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_51.BSS_END = .; SDK_OVERLAY.MODULE_51.BSS_SIZE = SDK_OVERLAY.MODULE_51.BSS_END - SDK_OVERLAY.MODULE_51.BSS_START; } >> MODULE_51 - .MODULE.52: { + .MODULE_52 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_52_ID = 52; + SDK_OVERLAY.MODULE_52.ID = 52; SDK_OVERLAY.MODULE_52.START = .; - FILE_299A00.o (.text) /* 0x295A00 */ + module_52.o (.text) + module_52.o (.rodata) + module_52.o (.init) + SDK_OVERLAY.MODULE_52.SINIT_START = .; + module_52.o (.ctor) + module_52.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_52.SINIT_END = .; + . = ALIGN(32); + module_52.o (.sdata) + module_52.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_52.END = .; SDK_OVERLAY.MODULE_52.SIZE = SDK_OVERLAY.MODULE_52.END - SDK_OVERLAY.MODULE_52.START; } > MODULE_52 - .MODULE.52.bss : + .MODULE_52.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_52.BSS_START = .; - FILE_299A00.o (.bss) + module_52.o (.bss) + module_52.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_52.BSS_END = .; SDK_OVERLAY.MODULE_52.BSS_SIZE = SDK_OVERLAY.MODULE_52.BSS_END - SDK_OVERLAY.MODULE_52.BSS_START; } >> MODULE_52 - .MODULE.53: { + .MODULE_53 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_53_ID = 53; + SDK_OVERLAY.MODULE_53.ID = 53; SDK_OVERLAY.MODULE_53.START = .; - FILE_299E00.o (.text) /* 0x295E00 */ + module_53.o (.text) + module_53.o (.rodata) + module_53.o (.init) + SDK_OVERLAY.MODULE_53.SINIT_START = .; + module_53.o (.ctor) + module_53.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_53.SINIT_END = .; + . = ALIGN(32); + module_53.o (.sdata) + module_53.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_53.END = .; SDK_OVERLAY.MODULE_53.SIZE = SDK_OVERLAY.MODULE_53.END - SDK_OVERLAY.MODULE_53.START; } > MODULE_53 - .MODULE.53.bss : + .MODULE_53.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_53.BSS_START = .; - FILE_299E00.o (.bss) + module_53.o (.bss) + module_53.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_53.BSS_END = .; SDK_OVERLAY.MODULE_53.BSS_SIZE = SDK_OVERLAY.MODULE_53.BSS_END - SDK_OVERLAY.MODULE_53.BSS_START; } >> MODULE_53 - .MODULE.54: { + .MODULE_54 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_54_ID = 54; + SDK_OVERLAY.MODULE_54.ID = 54; SDK_OVERLAY.MODULE_54.START = .; - FILE_29C400.o (.text) /* 0x298400 */ + module_54.o (.text) + module_54.o (.rodata) + module_54.o (.init) + SDK_OVERLAY.MODULE_54.SINIT_START = .; + module_54.o (.ctor) + module_54.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_54.SINIT_END = .; + . = ALIGN(32); + module_54.o (.sdata) + module_54.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_54.END = .; SDK_OVERLAY.MODULE_54.SIZE = SDK_OVERLAY.MODULE_54.END - SDK_OVERLAY.MODULE_54.START; } > MODULE_54 - .MODULE.54.bss : + .MODULE_54.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_54.BSS_START = .; - FILE_29C400.o (.bss) + module_54.o (.bss) + module_54.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_54.BSS_END = .; SDK_OVERLAY.MODULE_54.BSS_SIZE = SDK_OVERLAY.MODULE_54.BSS_END - SDK_OVERLAY.MODULE_54.BSS_START; } >> MODULE_54 - .MODULE.55: { + .MODULE_55 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_55_ID = 55; + SDK_OVERLAY.MODULE_55.ID = 55; SDK_OVERLAY.MODULE_55.START = .; - FILE_29E800.o (.text) /* 0x29A800 */ + module_55.o (.text) + module_55.o (.rodata) + module_55.o (.init) + SDK_OVERLAY.MODULE_55.SINIT_START = .; + module_55.o (.ctor) + module_55.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_55.SINIT_END = .; + . = ALIGN(32); + module_55.o (.sdata) + module_55.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_55.END = .; SDK_OVERLAY.MODULE_55.SIZE = SDK_OVERLAY.MODULE_55.END - SDK_OVERLAY.MODULE_55.START; } > MODULE_55 - .MODULE.55.bss : + .MODULE_55.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_55.BSS_START = .; - FILE_29E800.o (.bss) + module_55.o (.bss) + module_55.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_55.BSS_END = .; SDK_OVERLAY.MODULE_55.BSS_SIZE = SDK_OVERLAY.MODULE_55.BSS_END - SDK_OVERLAY.MODULE_55.BSS_START; } >> MODULE_55 - .MODULE.56: { + .MODULE_56 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_56_ID = 56; + SDK_OVERLAY.MODULE_56.ID = 56; SDK_OVERLAY.MODULE_56.START = .; - FILE_2A1A00.o (.text) /* 0x29DA00 */ + module_56.o (.text) + module_56.o (.rodata) + module_56.o (.init) + SDK_OVERLAY.MODULE_56.SINIT_START = .; + module_56.o (.ctor) + module_56.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_56.SINIT_END = .; + . = ALIGN(32); + module_56.o (.sdata) + module_56.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_56.END = .; SDK_OVERLAY.MODULE_56.SIZE = SDK_OVERLAY.MODULE_56.END - SDK_OVERLAY.MODULE_56.START; } > MODULE_56 - .MODULE.56.bss : + .MODULE_56.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_56.BSS_START = .; - FILE_2A1A00.o (.bss) + module_56.o (.bss) + module_56.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_56.BSS_END = .; SDK_OVERLAY.MODULE_56.BSS_SIZE = SDK_OVERLAY.MODULE_56.BSS_END - SDK_OVERLAY.MODULE_56.BSS_START; } >> MODULE_56 - .MODULE.57: { + .MODULE_57 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_57_ID = 57; + SDK_OVERLAY.MODULE_57.ID = 57; SDK_OVERLAY.MODULE_57.START = .; - FILE_2A6200.o (.text) /* 0x2A2200 */ + module_57.o (.text) + module_57.o (.rodata) + module_57.o (.init) + SDK_OVERLAY.MODULE_57.SINIT_START = .; + module_57.o (.ctor) + module_57.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_57.SINIT_END = .; + . = ALIGN(32); + module_57.o (.sdata) + module_57.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_57.END = .; SDK_OVERLAY.MODULE_57.SIZE = SDK_OVERLAY.MODULE_57.END - SDK_OVERLAY.MODULE_57.START; } > MODULE_57 - .MODULE.57.bss : + .MODULE_57.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_57.BSS_START = .; - FILE_2A6200.o (.bss) + module_57.o (.bss) + module_57.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_57.BSS_END = .; SDK_OVERLAY.MODULE_57.BSS_SIZE = SDK_OVERLAY.MODULE_57.BSS_END - SDK_OVERLAY.MODULE_57.BSS_START; } >> MODULE_57 - .MODULE.58: { + .MODULE_58 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_58_ID = 58; + SDK_OVERLAY.MODULE_58.ID = 58; SDK_OVERLAY.MODULE_58.START = .; - FILE_2A8800.o (.text) /* 0x2A4800 */ + module_58.o (.text) + module_58.o (.rodata) + module_58.o (.init) + SDK_OVERLAY.MODULE_58.SINIT_START = .; + module_58.o (.ctor) + module_58.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_58.SINIT_END = .; + . = ALIGN(32); + module_58.o (.sdata) + module_58.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_58.END = .; SDK_OVERLAY.MODULE_58.SIZE = SDK_OVERLAY.MODULE_58.END - SDK_OVERLAY.MODULE_58.START; } > MODULE_58 - .MODULE.58.bss : + .MODULE_58.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_58.BSS_START = .; - FILE_2A8800.o (.bss) + module_58.o (.bss) + module_58.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_58.BSS_END = .; SDK_OVERLAY.MODULE_58.BSS_SIZE = SDK_OVERLAY.MODULE_58.BSS_END - SDK_OVERLAY.MODULE_58.BSS_START; } >> MODULE_58 - .MODULE.59: { + .MODULE_59 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_59_ID = 59; + SDK_OVERLAY.MODULE_59.ID = 59; SDK_OVERLAY.MODULE_59.START = .; - FILE_2A9E00.o (.text) /* 0x2A5E00 */ + module_59.o (.text) + module_59.o (.rodata) + module_59.o (.init) + SDK_OVERLAY.MODULE_59.SINIT_START = .; + module_59.o (.ctor) + module_59.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_59.SINIT_END = .; + . = ALIGN(32); + module_59.o (.sdata) + module_59.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_59.END = .; SDK_OVERLAY.MODULE_59.SIZE = SDK_OVERLAY.MODULE_59.END - SDK_OVERLAY.MODULE_59.START; } > MODULE_59 - .MODULE.59.bss : + .MODULE_59.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_59.BSS_START = .; - FILE_2A9E00.o (.bss) + module_59.o (.bss) + module_59.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_59.BSS_END = .; SDK_OVERLAY.MODULE_59.BSS_SIZE = SDK_OVERLAY.MODULE_59.BSS_END - SDK_OVERLAY.MODULE_59.BSS_START; } >> MODULE_59 - .MODULE.60: { + .MODULE_60 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_60_ID = 60; + SDK_OVERLAY.MODULE_60.ID = 60; SDK_OVERLAY.MODULE_60.START = .; - FILE_2ACC00.o (.text) /* 0x2A8C00 */ + module_60.o (.text) + module_60.o (.rodata) + module_60.o (.init) + SDK_OVERLAY.MODULE_60.SINIT_START = .; + module_60.o (.ctor) + module_60.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_60.SINIT_END = .; + . = ALIGN(32); + module_60.o (.sdata) + module_60.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_60.END = .; SDK_OVERLAY.MODULE_60.SIZE = SDK_OVERLAY.MODULE_60.END - SDK_OVERLAY.MODULE_60.START; } > MODULE_60 - .MODULE.60.bss : + .MODULE_60.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_60.BSS_START = .; - FILE_2ACC00.o (.bss) + module_60.o (.bss) + module_60.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_60.BSS_END = .; SDK_OVERLAY.MODULE_60.BSS_SIZE = SDK_OVERLAY.MODULE_60.BSS_END - SDK_OVERLAY.MODULE_60.BSS_START; } >> MODULE_60 - .MODULE.61: { + .MODULE_61 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_61_ID = 61; + SDK_OVERLAY.MODULE_61.ID = 61; SDK_OVERLAY.MODULE_61.START = .; - FILE_2ADA00.o (.text) /* 0x2A9A00 */ + module_61.o (.text) + module_61.o (.rodata) + module_61.o (.init) + SDK_OVERLAY.MODULE_61.SINIT_START = .; + module_61.o (.ctor) + module_61.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_61.SINIT_END = .; + . = ALIGN(32); + module_61.o (.sdata) + module_61.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_61.END = .; SDK_OVERLAY.MODULE_61.SIZE = SDK_OVERLAY.MODULE_61.END - SDK_OVERLAY.MODULE_61.START; } > MODULE_61 - .MODULE.61.bss : + .MODULE_61.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_61.BSS_START = .; - FILE_2ADA00.o (.bss) + module_61.o (.bss) + module_61.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_61.BSS_END = .; SDK_OVERLAY.MODULE_61.BSS_SIZE = SDK_OVERLAY.MODULE_61.BSS_END - SDK_OVERLAY.MODULE_61.BSS_START; } >> MODULE_61 - .MODULE.62: { + .MODULE_62 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_62_ID = 62; + SDK_OVERLAY.MODULE_62.ID = 62; SDK_OVERLAY.MODULE_62.START = .; - FILE_2AEC00.o (.text) /* 0x2AAC00 */ + module_62.o (.text) + module_62.o (.rodata) + module_62.o (.init) + SDK_OVERLAY.MODULE_62.SINIT_START = .; + module_62.o (.ctor) + module_62.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_62.SINIT_END = .; + . = ALIGN(32); + module_62.o (.sdata) + module_62.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_62.END = .; SDK_OVERLAY.MODULE_62.SIZE = SDK_OVERLAY.MODULE_62.END - SDK_OVERLAY.MODULE_62.START; } > MODULE_62 - .MODULE.62.bss : + .MODULE_62.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_62.BSS_START = .; - FILE_2AEC00.o (.bss) + module_62.o (.bss) + module_62.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_62.BSS_END = .; SDK_OVERLAY.MODULE_62.BSS_SIZE = SDK_OVERLAY.MODULE_62.BSS_END - SDK_OVERLAY.MODULE_62.BSS_START; } >> MODULE_62 - .MODULE.63: { + .MODULE_63 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_63_ID = 63; + SDK_OVERLAY.MODULE_63.ID = 63; SDK_OVERLAY.MODULE_63.START = .; - FILE_2B2A00.o (.text) /* 0x2AEA00 */ + module_63.o (.text) + module_63.o (.rodata) + module_63.o (.init) + SDK_OVERLAY.MODULE_63.SINIT_START = .; + module_63.o (.ctor) + module_63.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_63.SINIT_END = .; + . = ALIGN(32); + module_63.o (.sdata) + module_63.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_63.END = .; SDK_OVERLAY.MODULE_63.SIZE = SDK_OVERLAY.MODULE_63.END - SDK_OVERLAY.MODULE_63.START; } > MODULE_63 - .MODULE.63.bss : + .MODULE_63.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_63.BSS_START = .; - FILE_2B2A00.o (.bss) + module_63.o (.bss) + module_63.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_63.BSS_END = .; SDK_OVERLAY.MODULE_63.BSS_SIZE = SDK_OVERLAY.MODULE_63.BSS_END - SDK_OVERLAY.MODULE_63.BSS_START; } >> MODULE_63 - .MODULE.64: { + .MODULE_64 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_64_ID = 64; + SDK_OVERLAY.MODULE_64.ID = 64; SDK_OVERLAY.MODULE_64.START = .; - FILE_2B7600.o (.text) /* 0x2B3600 */ + module_64.o (.text) + module_64.o (.rodata) + module_64.o (.init) + SDK_OVERLAY.MODULE_64.SINIT_START = .; + module_64.o (.ctor) + module_64.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_64.SINIT_END = .; + . = ALIGN(32); + module_64.o (.sdata) + module_64.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_64.END = .; SDK_OVERLAY.MODULE_64.SIZE = SDK_OVERLAY.MODULE_64.END - SDK_OVERLAY.MODULE_64.START; } > MODULE_64 - .MODULE.64.bss : + .MODULE_64.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_64.BSS_START = .; - FILE_2B7600.o (.bss) + module_64.o (.bss) + module_64.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_64.BSS_END = .; SDK_OVERLAY.MODULE_64.BSS_SIZE = SDK_OVERLAY.MODULE_64.BSS_END - SDK_OVERLAY.MODULE_64.BSS_START; } >> MODULE_64 - .MODULE.65: { + .MODULE_65 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_65_ID = 65; + SDK_OVERLAY.MODULE_65.ID = 65; SDK_OVERLAY.MODULE_65.START = .; - FILE_2B9400.o (.text) /* 0x2B5400 */ + module_65.o (.text) + module_65.o (.rodata) + module_65.o (.init) + SDK_OVERLAY.MODULE_65.SINIT_START = .; + module_65.o (.ctor) + module_65.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_65.SINIT_END = .; + . = ALIGN(32); + module_65.o (.sdata) + module_65.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_65.END = .; SDK_OVERLAY.MODULE_65.SIZE = SDK_OVERLAY.MODULE_65.END - SDK_OVERLAY.MODULE_65.START; } > MODULE_65 - .MODULE.65.bss : + .MODULE_65.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_65.BSS_START = .; - FILE_2B9400.o (.bss) + module_65.o (.bss) + module_65.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_65.BSS_END = .; SDK_OVERLAY.MODULE_65.BSS_SIZE = SDK_OVERLAY.MODULE_65.BSS_END - SDK_OVERLAY.MODULE_65.BSS_START; } >> MODULE_65 - .MODULE.66: { + .MODULE_66 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_66_ID = 66; + SDK_OVERLAY.MODULE_66.ID = 66; SDK_OVERLAY.MODULE_66.START = .; - FILE_2BC400.o (.text) /* 0x2B8400 */ + module_66.o (.text) + module_66.o (.rodata) + module_66.o (.init) + SDK_OVERLAY.MODULE_66.SINIT_START = .; + module_66.o (.ctor) + module_66.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_66.SINIT_END = .; + . = ALIGN(32); + module_66.o (.sdata) + module_66.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_66.END = .; SDK_OVERLAY.MODULE_66.SIZE = SDK_OVERLAY.MODULE_66.END - SDK_OVERLAY.MODULE_66.START; } > MODULE_66 - .MODULE.66.bss : + .MODULE_66.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_66.BSS_START = .; - FILE_2BC400.o (.bss) + module_66.o (.bss) + module_66.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_66.BSS_END = .; SDK_OVERLAY.MODULE_66.BSS_SIZE = SDK_OVERLAY.MODULE_66.BSS_END - SDK_OVERLAY.MODULE_66.BSS_START; } >> MODULE_66 - .MODULE.67: { + .MODULE_67 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_67_ID = 67; + SDK_OVERLAY.MODULE_67.ID = 67; SDK_OVERLAY.MODULE_67.START = .; - FILE_2BEC00.o (.text) /* 0x2BAC00 */ + module_67.o (.text) + module_67.o (.rodata) + module_67.o (.init) + SDK_OVERLAY.MODULE_67.SINIT_START = .; + module_67.o (.ctor) + module_67.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_67.SINIT_END = .; + . = ALIGN(32); + module_67.o (.sdata) + module_67.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_67.END = .; SDK_OVERLAY.MODULE_67.SIZE = SDK_OVERLAY.MODULE_67.END - SDK_OVERLAY.MODULE_67.START; } > MODULE_67 - .MODULE.67.bss : + .MODULE_67.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_67.BSS_START = .; - FILE_2BEC00.o (.bss) + module_67.o (.bss) + module_67.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_67.BSS_END = .; SDK_OVERLAY.MODULE_67.BSS_SIZE = SDK_OVERLAY.MODULE_67.BSS_END - SDK_OVERLAY.MODULE_67.BSS_START; } >> MODULE_67 - .MODULE.68: { + .MODULE_68 : + { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_68_ID = 68; + SDK_OVERLAY.MODULE_68.ID = 68; SDK_OVERLAY.MODULE_68.START = .; - FILE_2C1200.o (.text) /* 0x2BD200 */ + module_68.o (.text) + module_68.o (.rodata) + module_68.o (.init) + SDK_OVERLAY.MODULE_68.SINIT_START = .; + module_68.o (.ctor) + module_68.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_68.SINIT_END = .; + . = ALIGN(32); + module_68.o (.sdata) + module_68.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_68.END = .; SDK_OVERLAY.MODULE_68.SIZE = SDK_OVERLAY.MODULE_68.END - SDK_OVERLAY.MODULE_68.START; } > MODULE_68 - .MODULE.68.bss : + .MODULE_68.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_68.BSS_START = .; - FILE_2C1200.o (.bss) + module_68.o (.bss) + module_68.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_68.BSS_END = .; SDK_OVERLAY.MODULE_68.BSS_SIZE = SDK_OVERLAY.MODULE_68.BSS_END - SDK_OVERLAY.MODULE_68.BSS_START; } >> MODULE_68 - .MODULE.69: { + .MODULE_69: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_69_ID = 69; + SDK_OVERLAY.MODULE_69.ID = 69; SDK_OVERLAY.MODULE_69.START = .; - FILE_2C2800.o (.text) /* 0x2BE800 */ + module_69.o (.text) + module_69.o (.rodata) + module_69.o (.init) + SDK_OVERLAY.MODULE_69.SINIT_START = .; + module_69.o (.ctor) + module_69.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_69.SINIT_END = .; + . = ALIGN(32); + module_69.o (.sdata) + module_69.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_69.END = .; SDK_OVERLAY.MODULE_69.SIZE = SDK_OVERLAY.MODULE_69.END - SDK_OVERLAY.MODULE_69.START; } > MODULE_69 - .MODULE.69.bss : + .MODULE_69.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_69.BSS_START = .; - FILE_2C2800.o (.bss) + module_69.o (.bss) + module_69.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_69.BSS_END = .; SDK_OVERLAY.MODULE_69.BSS_SIZE = SDK_OVERLAY.MODULE_69.BSS_END - SDK_OVERLAY.MODULE_69.BSS_START; } >> MODULE_69 - .MODULE.70: { + .MODULE_70: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_70_ID = 70; + SDK_OVERLAY.MODULE_70.ID = 70; SDK_OVERLAY.MODULE_70.START = .; - FILE_2C4C00.o (.text) /* 0x2C0C00 */ + module_70.o (.text) + module_70.o (.rodata) + module_70.o (.init) + SDK_OVERLAY.MODULE_70.SINIT_START = .; + module_70.o (.ctor) + module_70.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_70.SINIT_END = .; + . = ALIGN(32); + module_70.o (.sdata) + module_70.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_70.END = .; SDK_OVERLAY.MODULE_70.SIZE = SDK_OVERLAY.MODULE_70.END - SDK_OVERLAY.MODULE_70.START; } > MODULE_70 - .MODULE.70.bss : + .MODULE_70.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_70.BSS_START = .; - FILE_2C4C00.o (.bss) + module_70.o (.bss) + module_70.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_70.BSS_END = .; SDK_OVERLAY.MODULE_70.BSS_SIZE = SDK_OVERLAY.MODULE_70.BSS_END - SDK_OVERLAY.MODULE_70.BSS_START; } >> MODULE_70 - .MODULE.71: { + .MODULE_71: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_71_ID = 71; + SDK_OVERLAY.MODULE_71.ID = 71; SDK_OVERLAY.MODULE_71.START = .; - FILE_2C5C00.o (.text) /* 0x2C1C00 */ + module_71.o (.text) + module_71.o (.rodata) + module_71.o (.init) + SDK_OVERLAY.MODULE_71.SINIT_START = .; + module_71.o (.ctor) + module_71.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_71.SINIT_END = .; + . = ALIGN(32); + module_71.o (.sdata) + module_71.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_71.END = .; SDK_OVERLAY.MODULE_71.SIZE = SDK_OVERLAY.MODULE_71.END - SDK_OVERLAY.MODULE_71.START; } > MODULE_71 - .MODULE.71.bss : + .MODULE_71.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_71.BSS_START = .; - FILE_2C5C00.o (.bss) + module_71.o (.bss) + module_71.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_71.BSS_END = .; SDK_OVERLAY.MODULE_71.BSS_SIZE = SDK_OVERLAY.MODULE_71.BSS_END - SDK_OVERLAY.MODULE_71.BSS_START; } >> MODULE_71 - .MODULE.72: { + .MODULE_72: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_72_ID = 72; + SDK_OVERLAY.MODULE_72.ID = 72; SDK_OVERLAY.MODULE_72.START = .; - FILE_2C9C00.o (.text) /* 0x2C5C00 */ + module_72_dummy.o (.text) + module_72_dummy.o (.rodata) + module_72_dummy.o (.init) + SDK_OVERLAY.MODULE_72.SINIT_START = .; + module_72_dummy.o (.ctor) + module_72_dummy.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_72.SINIT_END = .; + . = ALIGN(32); + module_72_dummy.o (.sdata) + module_72_dummy.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_72.END = .; SDK_OVERLAY.MODULE_72.SIZE = SDK_OVERLAY.MODULE_72.END - SDK_OVERLAY.MODULE_72.START; } > MODULE_72 - .MODULE.72.bss : + .MODULE_72.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_72.BSS_START = .; - FILE_2C9C00.o (.bss) + module_72_dummy.o (.bss) + module_72_dummy.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_72.BSS_END = .; SDK_OVERLAY.MODULE_72.BSS_SIZE = SDK_OVERLAY.MODULE_72.BSS_END - SDK_OVERLAY.MODULE_72.BSS_START; } >> MODULE_72 - .MODULE.73: { + .MODULE_73: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_73_ID = 73; + SDK_OVERLAY.MODULE_73.ID = 73; SDK_OVERLAY.MODULE_73.START = .; - FILE_2C9E00.o (.text) /* 0x2C5E00 */ + module_73.o (.text) + module_73.o (.rodata) + module_73.o (.init) + SDK_OVERLAY.MODULE_73.SINIT_START = .; + module_73.o (.ctor) + module_73.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_73.SINIT_END = .; + . = ALIGN(32); + module_73.o (.sdata) + module_73.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_73.END = .; SDK_OVERLAY.MODULE_73.SIZE = SDK_OVERLAY.MODULE_73.END - SDK_OVERLAY.MODULE_73.START; } > MODULE_73 - .MODULE.73.bss : + .MODULE_73.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_73.BSS_START = .; - FILE_2C9E00.o (.bss) + module_73.o (.bss) + module_73.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_73.BSS_END = .; SDK_OVERLAY.MODULE_73.BSS_SIZE = SDK_OVERLAY.MODULE_73.BSS_END - SDK_OVERLAY.MODULE_73.BSS_START; } >> MODULE_73 - .MODULE.74: { + .MODULE_74: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_74_ID = 74; + SDK_OVERLAY.MODULE_74.ID = 74; SDK_OVERLAY.MODULE_74.START = .; - FILE_2CEA00.o (.text) /* 0x2CAA00 */ + module_74.o (.text) + module_74.o (.rodata) + module_74.o (.init) + SDK_OVERLAY.MODULE_74.SINIT_START = .; + module_74.o (.ctor) + module_74.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_74.SINIT_END = .; + . = ALIGN(32); + module_74.o (.sdata) + module_74.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_74.END = .; SDK_OVERLAY.MODULE_74.SIZE = SDK_OVERLAY.MODULE_74.END - SDK_OVERLAY.MODULE_74.START; } > MODULE_74 - .MODULE.74.bss : + .MODULE_74.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_74.BSS_START = .; - FILE_2CEA00.o (.bss) + module_74.o (.bss) + module_74.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_74.BSS_END = .; SDK_OVERLAY.MODULE_74.BSS_SIZE = SDK_OVERLAY.MODULE_74.BSS_END - SDK_OVERLAY.MODULE_74.BSS_START; } >> MODULE_74 - .MODULE.75: { + .MODULE_75: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_75_ID = 75; + SDK_OVERLAY.MODULE_75.ID = 75; SDK_OVERLAY.MODULE_75.START = .; - FILE_2CFE00.o (.text) /* 0x2CBE00 */ + module_75.o (.text) + module_75.o (.rodata) + module_75.o (.init) + SDK_OVERLAY.MODULE_75.SINIT_START = .; + module_75.o (.ctor) + module_75.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_75.SINIT_END = .; + . = ALIGN(32); + module_75.o (.sdata) + module_75.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_75.END = .; SDK_OVERLAY.MODULE_75.SIZE = SDK_OVERLAY.MODULE_75.END - SDK_OVERLAY.MODULE_75.START; } > MODULE_75 - .MODULE.75.bss : + .MODULE_75.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_75.BSS_START = .; - FILE_2CFE00.o (.bss) + module_75.o (.bss) + module_75.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_75.BSS_END = .; SDK_OVERLAY.MODULE_75.BSS_SIZE = SDK_OVERLAY.MODULE_75.BSS_END - SDK_OVERLAY.MODULE_75.BSS_START; } >> MODULE_75 - .MODULE.76: { + .MODULE_76: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_76_ID = 76; + SDK_OVERLAY.MODULE_76.ID = 76; SDK_OVERLAY.MODULE_76.START = .; - FILE_2D5C00.o (.text) /* 0x2D1C00 */ + module_76.o (.text) + module_76.o (.rodata) + module_76.o (.init) + SDK_OVERLAY.MODULE_76.SINIT_START = .; + module_76.o (.ctor) + module_76.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_76.SINIT_END = .; + . = ALIGN(32); + module_76.o (.sdata) + module_76.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_76.END = .; SDK_OVERLAY.MODULE_76.SIZE = SDK_OVERLAY.MODULE_76.END - SDK_OVERLAY.MODULE_76.START; } > MODULE_76 - .MODULE.76.bss : + .MODULE_76.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_76.BSS_START = .; - FILE_2D5C00.o (.bss) + module_76.o (.bss) + module_76.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_76.BSS_END = .; SDK_OVERLAY.MODULE_76.BSS_SIZE = SDK_OVERLAY.MODULE_76.BSS_END - SDK_OVERLAY.MODULE_76.BSS_START; } >> MODULE_76 - .MODULE.77: { + .MODULE_77: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_77_ID = 77; + SDK_OVERLAY.MODULE_77.ID = 77; SDK_OVERLAY.MODULE_77.START = .; - FILE_2D7C00.o (.text) /* 0x2D3C00 */ + module_77.o (.text) + module_77.o (.rodata) + module_77.o (.init) + SDK_OVERLAY.MODULE_77.SINIT_START = .; + module_77.o (.ctor) + module_77.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_77.SINIT_END = .; + . = ALIGN(32); + module_77.o (.sdata) + module_77.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_77.END = .; SDK_OVERLAY.MODULE_77.SIZE = SDK_OVERLAY.MODULE_77.END - SDK_OVERLAY.MODULE_77.START; } > MODULE_77 - .MODULE.77.bss : + .MODULE_77.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_77.BSS_START = .; - FILE_2D7C00.o (.bss) + module_77.o (.bss) + module_77.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_77.BSS_END = .; SDK_OVERLAY.MODULE_77.BSS_SIZE = SDK_OVERLAY.MODULE_77.BSS_END - SDK_OVERLAY.MODULE_77.BSS_START; } >> MODULE_77 - .MODULE.78: { + .MODULE_78: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_78_ID = 78; + SDK_OVERLAY.MODULE_78.ID = 78; SDK_OVERLAY.MODULE_78.START = .; - FILE_2D9800.o (.text) /* 0x2D5800 */ + module_78.o (.text) + module_78.o (.rodata) + module_78.o (.init) + SDK_OVERLAY.MODULE_78.SINIT_START = .; + module_78.o (.ctor) + module_78.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_78.SINIT_END = .; + . = ALIGN(32); + module_78.o (.sdata) + module_78.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_78.END = .; SDK_OVERLAY.MODULE_78.SIZE = SDK_OVERLAY.MODULE_78.END - SDK_OVERLAY.MODULE_78.START; } > MODULE_78 - .MODULE.78.bss : + .MODULE_78.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_78.BSS_START = .; - FILE_2D9800.o (.bss) + module_78.o (.bss) + module_78.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_78.BSS_END = .; SDK_OVERLAY.MODULE_78.BSS_SIZE = SDK_OVERLAY.MODULE_78.BSS_END - SDK_OVERLAY.MODULE_78.BSS_START; } >> MODULE_78 - .MODULE.79: { + .MODULE_79: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_79_ID = 79; + SDK_OVERLAY.MODULE_79.ID = 79; SDK_OVERLAY.MODULE_79.START = .; - FILE_2D9E00.o (.text) /* 0x2D5E00 */ + module_79_thumb.o (.text) + module_79_arm.o (.text) + module_79_thumb.o (.rodata) + module_79_arm.o (.rodata) + module_79_thumb.o (.init) + module_79_arm.o (.init) + SDK_OVERLAY.MODULE_79.SINIT_START = .; + module_79_thumb.o (.ctor) + module_79_arm.o (.ctor) + module_79_thumb.o (.sinit) + module_79_arm.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_79.SINIT_END = .; + . = ALIGN(32); + module_79_thumb.o (.sdata) + module_79_arm.o (.sdata) + module_79_thumb.o (.data) + module_79_arm.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_79.END = .; SDK_OVERLAY.MODULE_79.SIZE = SDK_OVERLAY.MODULE_79.END - SDK_OVERLAY.MODULE_79.START; } > MODULE_79 - .MODULE.79.bss : + .MODULE_79.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_79.BSS_START = .; - FILE_2D9E00.o (.bss) + module_79_thumb.o (.bss) + module_79_arm.o (.bss) + module_79_thumb.o (.sbss) + module_79_arm.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_79.BSS_END = .; SDK_OVERLAY.MODULE_79.BSS_SIZE = SDK_OVERLAY.MODULE_79.BSS_END - SDK_OVERLAY.MODULE_79.BSS_START; } >> MODULE_79 - .MODULE.80: { + .MODULE_80: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_80_ID = 80; + SDK_OVERLAY.MODULE_80.ID = 80; SDK_OVERLAY.MODULE_80.START = .; - FILE_2DF200.o (.text) /* 0x2DB200 */ + module_80.o (.text) + module_80.o (.rodata) + module_80.o (.init) + SDK_OVERLAY.MODULE_80.SINIT_START = .; + module_80.o (.ctor) + module_80.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_80.SINIT_END = .; + . = ALIGN(32); + module_80.o (.sdata) + module_80.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_80.END = .; SDK_OVERLAY.MODULE_80.SIZE = SDK_OVERLAY.MODULE_80.END - SDK_OVERLAY.MODULE_80.START; } > MODULE_80 - .MODULE.80.bss : + .MODULE_80.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_80.BSS_START = .; - FILE_2DF200.o (.bss) + module_80.o (.bss) + module_80.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_80.BSS_END = .; SDK_OVERLAY.MODULE_80.BSS_SIZE = SDK_OVERLAY.MODULE_80.BSS_END - SDK_OVERLAY.MODULE_80.BSS_START; } >> MODULE_80 - .MODULE.81: { + .MODULE_81: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_81_ID = 81; + SDK_OVERLAY.MODULE_81.ID = 81; SDK_OVERLAY.MODULE_81.START = .; - FILE_2E9A00.o (.text) /* 0x2E5A00 */ + module_81.o (.text) + module_81.o (.rodata) + module_81.o (.init) + SDK_OVERLAY.MODULE_81.SINIT_START = .; + module_81.o (.ctor) + module_81.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_81.SINIT_END = .; + . = ALIGN(32); + module_81.o (.sdata) + module_81.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_81.END = .; SDK_OVERLAY.MODULE_81.SIZE = SDK_OVERLAY.MODULE_81.END - SDK_OVERLAY.MODULE_81.START; } > MODULE_81 - .MODULE.81.bss : + .MODULE_81.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_81.BSS_START = .; - FILE_2E9A00.o (.bss) + module_81.o (.bss) + module_81.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_81.BSS_END = .; SDK_OVERLAY.MODULE_81.BSS_SIZE = SDK_OVERLAY.MODULE_81.BSS_END - SDK_OVERLAY.MODULE_81.BSS_START; } >> MODULE_81 - .MODULE.82: { + .MODULE_82: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_82_ID = 82; + SDK_OVERLAY.MODULE_82.ID = 82; SDK_OVERLAY.MODULE_82.START = .; - FILE_2EF000.o (.text) /* 0x2EB000 */ + module_82.o (.text) + module_82.o (.rodata) + module_82.o (.init) + SDK_OVERLAY.MODULE_82.SINIT_START = .; + module_82.o (.ctor) + module_82.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_82.SINIT_END = .; + . = ALIGN(32); + module_82.o (.sdata) + module_82.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_82.END = .; SDK_OVERLAY.MODULE_82.SIZE = SDK_OVERLAY.MODULE_82.END - SDK_OVERLAY.MODULE_82.START; } > MODULE_82 - .MODULE.82.bss : + .MODULE_82.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_82.BSS_START = .; - FILE_2EF000.o (.bss) + module_82.o (.bss) + module_82.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_82.BSS_END = .; SDK_OVERLAY.MODULE_82.BSS_SIZE = SDK_OVERLAY.MODULE_82.BSS_END - SDK_OVERLAY.MODULE_82.BSS_START; } >> MODULE_82 - .MODULE.83: { + .MODULE_83: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_83_ID = 83; + SDK_OVERLAY.MODULE_83.ID = 83; SDK_OVERLAY.MODULE_83.START = .; - FILE_2F1600.o (.text) /* 0x2ED600 */ + module_83.o (.text) + module_83.o (.rodata) + module_83.o (.init) + SDK_OVERLAY.MODULE_83.SINIT_START = .; + module_83.o (.ctor) + module_83.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_83.SINIT_END = .; + . = ALIGN(32); + module_83.o (.sdata) + module_83.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_83.END = .; SDK_OVERLAY.MODULE_83.SIZE = SDK_OVERLAY.MODULE_83.END - SDK_OVERLAY.MODULE_83.START; } > MODULE_83 - .MODULE.83.bss : + .MODULE_83.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_83.BSS_START = .; - FILE_2F1600.o (.bss) + module_83.o (.bss) + module_83.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_83.BSS_END = .; SDK_OVERLAY.MODULE_83.BSS_SIZE = SDK_OVERLAY.MODULE_83.BSS_END - SDK_OVERLAY.MODULE_83.BSS_START; } >> MODULE_83 - .MODULE.84: { + .MODULE_84: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_84_ID = 84; + SDK_OVERLAY.MODULE_84.ID = 84; SDK_OVERLAY.MODULE_84.START = .; - FILE_2FFA00.o (.text) /* 0x2FBA00 */ + module_84.o (.text) + module_84.o (.rodata) + module_84.o (.init) + SDK_OVERLAY.MODULE_84.SINIT_START = .; + module_84.o (.ctor) + module_84.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_84.SINIT_END = .; + . = ALIGN(32); + module_84.o (.sdata) + module_84.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_84.END = .; SDK_OVERLAY.MODULE_84.SIZE = SDK_OVERLAY.MODULE_84.END - SDK_OVERLAY.MODULE_84.START; } > MODULE_84 - .MODULE.84.bss : + .MODULE_84.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_84.BSS_START = .; - FILE_2FFA00.o (.bss) + module_84.o (.bss) + module_84.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_84.BSS_END = .; SDK_OVERLAY.MODULE_84.BSS_SIZE = SDK_OVERLAY.MODULE_84.BSS_END - SDK_OVERLAY.MODULE_84.BSS_START; } >> MODULE_84 - .MODULE.85: { + .MODULE_85: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_85_ID = 85; + SDK_OVERLAY.MODULE_85.ID = 85; SDK_OVERLAY.MODULE_85.START = .; - FILE_303400.o (.text) /* 0x2FF400 */ + module_85.o (.text) + module_85.o (.rodata) + module_85.o (.init) + SDK_OVERLAY.MODULE_85.SINIT_START = .; + module_85.o (.ctor) + module_85.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_85.SINIT_END = .; + . = ALIGN(32); + module_85.o (.sdata) + module_85.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_85.END = .; SDK_OVERLAY.MODULE_85.SIZE = SDK_OVERLAY.MODULE_85.END - SDK_OVERLAY.MODULE_85.START; } > MODULE_85 - .MODULE.85.bss : + .MODULE_85.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_85.BSS_START = .; - FILE_303400.o (.bss) + module_85.o (.bss) + module_85.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_85.BSS_END = .; SDK_OVERLAY.MODULE_85.BSS_SIZE = SDK_OVERLAY.MODULE_85.BSS_END - SDK_OVERLAY.MODULE_85.BSS_START; } >> MODULE_85 - .MODULE.86: { + .MODULE_86: { ALIGNALL(4); . = ALIGN(32); + SDK_OVERLAY_MODULE_86_ID = 86; + SDK_OVERLAY.MODULE_86.ID = 86; SDK_OVERLAY.MODULE_86.START = .; - FILE_30C600.o (.text) /* 0x308600 */ + module_86.o (.text) + module_86.o (.rodata) + module_86.o (.init) + SDK_OVERLAY.MODULE_86.SINIT_START = .; + module_86.o (.ctor) + module_86.o (.sinit) + WRITEW 0; + SDK_OVERLAY.MODULE_86.SINIT_END = .; + . = ALIGN(32); + module_86.o (.sdata) + module_86.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_86.END = .; SDK_OVERLAY.MODULE_86.SIZE = SDK_OVERLAY.MODULE_86.END - SDK_OVERLAY.MODULE_86.START; } > MODULE_86 - .MODULE.86.bss : + .MODULE_86.bss : { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_86.BSS_START = .; - FILE_30C600.o (.bss) + module_86.o (.bss) + module_86.o (.sbss) . = ALIGN(32); SDK_OVERLAY.MODULE_86.BSS_END = .; SDK_OVERLAY.MODULE_86.BSS_SIZE = SDK_OVERLAY.MODULE_86.BSS_END - SDK_OVERLAY.MODULE_86.BSS_START; @@ -2075,17 +3257,19 @@ SECTIONS { .dummy.MAIN_EX: { - + . = ALIGN(32); } > dummy.MAIN_EX .arena.MAIN: { - + . = ALIGN(32); + SDK_SECTION_ARENA_START = .; } > arena.MAIN .arena.MAIN_EX: { - + . = ALIGN(32); + SDK_SECTION_ARENA_EX_START = .; } > arena.MAIN_EX .arena.ITCM: @@ -2196,95 +3380,795 @@ SECTIONS { } > arm9_defs .arm9_table : { - OVERLAY_TABLE(MODULE_00, 0) - OVERLAY_TABLE(MODULE_01, 1) - OVERLAY_TABLE(MODULE_02, 2) - OVERLAY_TABLE(MODULE_03, 3) - OVERLAY_TABLE(MODULE_04, 4) - OVERLAY_TABLE(MODULE_05, 5) - OVERLAY_TABLE(MODULE_06, 6) - OVERLAY_TABLE(MODULE_07, 7) - OVERLAY_TABLE(MODULE_08, 8) - OVERLAY_TABLE(MODULE_09, 9) - OVERLAY_TABLE(MODULE_10, 10) - OVERLAY_TABLE(MODULE_11, 11) - OVERLAY_TABLE(MODULE_12, 12) - OVERLAY_TABLE(MODULE_13, 13) - OVERLAY_TABLE(MODULE_14, 14) - OVERLAY_TABLE(MODULE_15, 15) - OVERLAY_TABLE(MODULE_16, 16) - OVERLAY_TABLE(MODULE_17, 17) - OVERLAY_TABLE(MODULE_18, 18) - OVERLAY_TABLE(MODULE_19, 19) - OVERLAY_TABLE(MODULE_20, 20) - OVERLAY_TABLE(MODULE_21, 21) - OVERLAY_TABLE(MODULE_22, 22) - OVERLAY_TABLE(MODULE_23, 23) - OVERLAY_TABLE(MODULE_24, 24) - OVERLAY_TABLE(MODULE_25, 25) - OVERLAY_TABLE(MODULE_26, 26) - OVERLAY_TABLE(MODULE_27, 27) - OVERLAY_TABLE(MODULE_28, 28) - OVERLAY_TABLE(MODULE_29, 29) - OVERLAY_TABLE(MODULE_30, 30) - OVERLAY_TABLE(MODULE_31, 31) - OVERLAY_TABLE(MODULE_32, 32) - OVERLAY_TABLE(MODULE_33, 33) - OVERLAY_TABLE(MODULE_34, 34) - OVERLAY_TABLE(MODULE_35, 35) - OVERLAY_TABLE(MODULE_36, 36) - OVERLAY_TABLE(MODULE_37, 37) - OVERLAY_TABLE(MODULE_38, 38) - OVERLAY_TABLE(MODULE_39, 39) - OVERLAY_TABLE(MODULE_40, 40) - OVERLAY_TABLE(MODULE_41, 41) - OVERLAY_TABLE(MODULE_42, 42) - OVERLAY_TABLE(MODULE_43, 43) - OVERLAY_TABLE(MODULE_44, 44) - OVERLAY_TABLE(MODULE_45, 45) - OVERLAY_TABLE(MODULE_46, 46) - OVERLAY_TABLE(MODULE_47, 47) - OVERLAY_TABLE(MODULE_48, 48) - OVERLAY_TABLE(MODULE_49, 49) - OVERLAY_TABLE(MODULE_50, 50) - OVERLAY_TABLE(MODULE_51, 51) - OVERLAY_TABLE(MODULE_52, 52) - OVERLAY_TABLE(MODULE_53, 53) - OVERLAY_TABLE(MODULE_54, 54) - OVERLAY_TABLE(MODULE_55, 55) - OVERLAY_TABLE(MODULE_56, 56) - OVERLAY_TABLE(MODULE_57, 57) - OVERLAY_TABLE(MODULE_58, 58) - OVERLAY_TABLE(MODULE_59, 59) - OVERLAY_TABLE(MODULE_60, 60) - OVERLAY_TABLE(MODULE_61, 61) - OVERLAY_TABLE(MODULE_62, 62) - OVERLAY_TABLE(MODULE_63, 63) - OVERLAY_TABLE(MODULE_64, 64) - OVERLAY_TABLE(MODULE_65, 65) - OVERLAY_TABLE(MODULE_66, 66) - OVERLAY_TABLE(MODULE_67, 67) - OVERLAY_TABLE(MODULE_68, 68) - OVERLAY_TABLE(MODULE_69, 69) - OVERLAY_TABLE(MODULE_70, 70) - OVERLAY_TABLE(MODULE_71, 71) - OVERLAY_TABLE(MODULE_72, 72) - OVERLAY_TABLE(MODULE_73, 73) - OVERLAY_TABLE(MODULE_74, 74) - OVERLAY_TABLE(MODULE_75, 75) - OVERLAY_TABLE(MODULE_76, 76) - OVERLAY_TABLE(MODULE_77, 77) - OVERLAY_TABLE(MODULE_78, 78) - OVERLAY_TABLE(MODULE_79, 79) - OVERLAY_TABLE(MODULE_80, 80) - OVERLAY_TABLE(MODULE_81, 81) - OVERLAY_TABLE(MODULE_82, 82) - OVERLAY_TABLE(MODULE_83, 83) - OVERLAY_TABLE(MODULE_84, 84) - OVERLAY_TABLE(MODULE_85, 85) - OVERLAY_TABLE(MODULE_86, 86) + WRITEW 0; + WRITEW ADDR(.MODULE_00); + WRITEW SDK_OVERLAY.MODULE_00.SIZE; + WRITEW SDK_OVERLAY.MODULE_00.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_00.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_00.SINIT_END; + WRITEW 0; + WRITEW 0; + + WRITEW 1; + WRITEW ADDR(.MODULE_01); + WRITEW SDK_OVERLAY.MODULE_01.SIZE; + WRITEW SDK_OVERLAY.MODULE_01.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_01.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_01.SINIT_END; + WRITEW 1; + WRITEW 0; + + WRITEW 2; + WRITEW ADDR(.MODULE_02); + WRITEW SDK_OVERLAY.MODULE_02.SIZE; + WRITEW SDK_OVERLAY.MODULE_02.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_02.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_02.SINIT_END; + WRITEW 2; + WRITEW 0; + + WRITEW 3; + WRITEW ADDR(.MODULE_03); + WRITEW SDK_OVERLAY.MODULE_03.SIZE; + WRITEW SDK_OVERLAY.MODULE_03.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_03.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_03.SINIT_END; + WRITEW 3; + WRITEW 0; + + WRITEW 4; + WRITEW ADDR(.MODULE_04); + WRITEW SDK_OVERLAY.MODULE_04.SIZE; + WRITEW SDK_OVERLAY.MODULE_04.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_04.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_04.SINIT_END; + WRITEW 4; + WRITEW 0; + + WRITEW 5; + WRITEW ADDR(.MODULE_05); + WRITEW SDK_OVERLAY.MODULE_05.SIZE; + WRITEW SDK_OVERLAY.MODULE_05.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_05.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_05.SINIT_END; + WRITEW 5; + WRITEW 0; + + WRITEW 6; + WRITEW ADDR(.MODULE_06); + WRITEW SDK_OVERLAY.MODULE_06.SIZE; + WRITEW SDK_OVERLAY.MODULE_06.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_06.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_06.SINIT_END; + WRITEW 6; + WRITEW 0; + + WRITEW 7; + WRITEW ADDR(.MODULE_07); + WRITEW SDK_OVERLAY.MODULE_07.SIZE; + WRITEW SDK_OVERLAY.MODULE_07.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_07.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_07.SINIT_END; + WRITEW 7; + WRITEW 0; + + WRITEW 8; + WRITEW ADDR(.MODULE_08); + WRITEW SDK_OVERLAY.MODULE_08.SIZE; + WRITEW SDK_OVERLAY.MODULE_08.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_08.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_08.SINIT_END; + WRITEW 8; + WRITEW 0; + + WRITEW 9; + WRITEW ADDR(.MODULE_09); + WRITEW SDK_OVERLAY.MODULE_09.SIZE; + WRITEW SDK_OVERLAY.MODULE_09.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_09.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_09.SINIT_END; + WRITEW 9; + WRITEW 0; + + WRITEW 10; + WRITEW ADDR(.MODULE_10); + WRITEW SDK_OVERLAY.MODULE_10.SIZE; + WRITEW SDK_OVERLAY.MODULE_10.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_10.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_10.SINIT_END; + WRITEW 10; + WRITEW 0; + + WRITEW 11; + WRITEW ADDR(.MODULE_11); + WRITEW SDK_OVERLAY.MODULE_11.SIZE; + WRITEW SDK_OVERLAY.MODULE_11.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_11.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_11.SINIT_END; + WRITEW 11; + WRITEW 0; + + WRITEW 12; + WRITEW ADDR(.MODULE_12); + WRITEW SDK_OVERLAY.MODULE_12.SIZE; + WRITEW SDK_OVERLAY.MODULE_12.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_12.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_12.SINIT_END; + WRITEW 12; + WRITEW 0; + + WRITEW 13; + WRITEW ADDR(.MODULE_13); + WRITEW SDK_OVERLAY.MODULE_13.SIZE; + WRITEW SDK_OVERLAY.MODULE_13.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_13.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_13.SINIT_END; + WRITEW 13; + WRITEW 0; + + WRITEW 14; + WRITEW ADDR(.MODULE_14); + WRITEW SDK_OVERLAY.MODULE_14.SIZE; + WRITEW SDK_OVERLAY.MODULE_14.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_14.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_14.SINIT_END; + WRITEW 14; + WRITEW 0; + + WRITEW 15; + WRITEW ADDR(.MODULE_15); + WRITEW SDK_OVERLAY.MODULE_15.SIZE; + WRITEW SDK_OVERLAY.MODULE_15.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_15.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_15.SINIT_END; + WRITEW 15; + WRITEW 0; + + WRITEW 16; + WRITEW ADDR(.MODULE_16); + WRITEW SDK_OVERLAY.MODULE_16.SIZE; + WRITEW SDK_OVERLAY.MODULE_16.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_16.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_16.SINIT_END; + WRITEW 16; + WRITEW 0; + + WRITEW 17; + WRITEW ADDR(.MODULE_17); + WRITEW SDK_OVERLAY.MODULE_17.SIZE; + WRITEW SDK_OVERLAY.MODULE_17.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_17.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_17.SINIT_END; + WRITEW 17; + WRITEW 0; + + WRITEW 18; + WRITEW ADDR(.MODULE_18); + WRITEW SDK_OVERLAY.MODULE_18.SIZE; + WRITEW SDK_OVERLAY.MODULE_18.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_18.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_18.SINIT_END; + WRITEW 18; + WRITEW 0; + + WRITEW 19; + WRITEW ADDR(.MODULE_19); + WRITEW SDK_OVERLAY.MODULE_19.SIZE; + WRITEW SDK_OVERLAY.MODULE_19.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_19.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_19.SINIT_END; + WRITEW 19; + WRITEW 0; + + WRITEW 20; + WRITEW ADDR(.MODULE_20); + WRITEW SDK_OVERLAY.MODULE_20.SIZE; + WRITEW SDK_OVERLAY.MODULE_20.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_20.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_20.SINIT_END; + WRITEW 20; + WRITEW 0; + + WRITEW 21; + WRITEW ADDR(.MODULE_21); + WRITEW SDK_OVERLAY.MODULE_21.SIZE; + WRITEW SDK_OVERLAY.MODULE_21.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_21.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_21.SINIT_END; + WRITEW 21; + WRITEW 0; + + WRITEW 22; + WRITEW ADDR(.MODULE_22); + WRITEW SDK_OVERLAY.MODULE_22.SIZE; + WRITEW SDK_OVERLAY.MODULE_22.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_22.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_22.SINIT_END; + WRITEW 22; + WRITEW 0; + + WRITEW 23; + WRITEW ADDR(.MODULE_23); + WRITEW SDK_OVERLAY.MODULE_23.SIZE; + WRITEW SDK_OVERLAY.MODULE_23.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_23.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_23.SINIT_END; + WRITEW 23; + WRITEW 0; + + WRITEW 24; + WRITEW ADDR(.MODULE_24); + WRITEW SDK_OVERLAY.MODULE_24.SIZE; + WRITEW SDK_OVERLAY.MODULE_24.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_24.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_24.SINIT_END; + WRITEW 24; + WRITEW 0; + + WRITEW 25; + WRITEW ADDR(.MODULE_25); + WRITEW SDK_OVERLAY.MODULE_25.SIZE; + WRITEW SDK_OVERLAY.MODULE_25.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_25.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_25.SINIT_END; + WRITEW 25; + WRITEW 0; + + WRITEW 26; + WRITEW ADDR(.MODULE_26); + WRITEW SDK_OVERLAY.MODULE_26.SIZE; + WRITEW SDK_OVERLAY.MODULE_26.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_26.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_26.SINIT_END; + WRITEW 26; + WRITEW 0; + + WRITEW 27; + WRITEW ADDR(.MODULE_27); + WRITEW SDK_OVERLAY.MODULE_27.SIZE; + WRITEW SDK_OVERLAY.MODULE_27.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_27.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_27.SINIT_END; + WRITEW 27; + WRITEW 0; + + WRITEW 28; + WRITEW ADDR(.MODULE_28); + WRITEW SDK_OVERLAY.MODULE_28.SIZE; + WRITEW SDK_OVERLAY.MODULE_28.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_28.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_28.SINIT_END; + WRITEW 28; + WRITEW 0; + + WRITEW 29; + WRITEW ADDR(.MODULE_29); + WRITEW SDK_OVERLAY.MODULE_29.SIZE; + WRITEW SDK_OVERLAY.MODULE_29.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_29.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_29.SINIT_END; + WRITEW 29; + WRITEW 0; + + WRITEW 30; + WRITEW ADDR(.MODULE_30); + WRITEW SDK_OVERLAY.MODULE_30.SIZE; + WRITEW SDK_OVERLAY.MODULE_30.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_30.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_30.SINIT_END; + WRITEW 30; + WRITEW 0; + + WRITEW 31; + WRITEW ADDR(.MODULE_31); + WRITEW SDK_OVERLAY.MODULE_31.SIZE; + WRITEW SDK_OVERLAY.MODULE_31.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_31.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_31.SINIT_END; + WRITEW 31; + WRITEW 0; + + WRITEW 32; + WRITEW ADDR(.MODULE_32); + WRITEW SDK_OVERLAY.MODULE_32.SIZE; + WRITEW SDK_OVERLAY.MODULE_32.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_32.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_32.SINIT_END; + WRITEW 32; + WRITEW 0; + + WRITEW 33; + WRITEW ADDR(.MODULE_33); + WRITEW SDK_OVERLAY.MODULE_33.SIZE; + WRITEW SDK_OVERLAY.MODULE_33.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_33.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_33.SINIT_END; + WRITEW 33; + WRITEW 0; + + WRITEW 34; + WRITEW ADDR(.MODULE_34); + WRITEW SDK_OVERLAY.MODULE_34.SIZE; + WRITEW SDK_OVERLAY.MODULE_34.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_34.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_34.SINIT_END; + WRITEW 34; + WRITEW 0; + + WRITEW 35; + WRITEW ADDR(.MODULE_35); + WRITEW SDK_OVERLAY.MODULE_35.SIZE; + WRITEW SDK_OVERLAY.MODULE_35.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_35.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_35.SINIT_END; + WRITEW 35; + WRITEW 0; + + WRITEW 36; + WRITEW ADDR(.MODULE_36); + WRITEW SDK_OVERLAY.MODULE_36.SIZE; + WRITEW SDK_OVERLAY.MODULE_36.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_36.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_36.SINIT_END; + WRITEW 36; + WRITEW 0; + + WRITEW 37; + WRITEW ADDR(.MODULE_37); + WRITEW SDK_OVERLAY.MODULE_37.SIZE; + WRITEW SDK_OVERLAY.MODULE_37.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_37.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_37.SINIT_END; + WRITEW 37; + WRITEW 0; + + WRITEW 38; + WRITEW ADDR(.MODULE_38); + WRITEW SDK_OVERLAY.MODULE_38.SIZE; + WRITEW SDK_OVERLAY.MODULE_38.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_38.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_38.SINIT_END; + WRITEW 38; + WRITEW 0; + + WRITEW 39; + WRITEW ADDR(.MODULE_39); + WRITEW SDK_OVERLAY.MODULE_39.SIZE; + WRITEW SDK_OVERLAY.MODULE_39.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_39.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_39.SINIT_END; + WRITEW 39; + WRITEW 0; + + WRITEW 40; + WRITEW ADDR(.MODULE_40); + WRITEW SDK_OVERLAY.MODULE_40.SIZE; + WRITEW SDK_OVERLAY.MODULE_40.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_40.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_40.SINIT_END; + WRITEW 40; + WRITEW 0; + + WRITEW 41; + WRITEW ADDR(.MODULE_41); + WRITEW SDK_OVERLAY.MODULE_41.SIZE; + WRITEW SDK_OVERLAY.MODULE_41.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_41.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_41.SINIT_END; + WRITEW 41; + WRITEW 0; + + WRITEW 42; + WRITEW ADDR(.MODULE_42); + WRITEW SDK_OVERLAY.MODULE_42.SIZE; + WRITEW SDK_OVERLAY.MODULE_42.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_42.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_42.SINIT_END; + WRITEW 42; + WRITEW 0; + + WRITEW 43; + WRITEW ADDR(.MODULE_43); + WRITEW SDK_OVERLAY.MODULE_43.SIZE; + WRITEW SDK_OVERLAY.MODULE_43.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_43.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_43.SINIT_END; + WRITEW 43; + WRITEW 0; + + WRITEW 44; + WRITEW ADDR(.MODULE_44); + WRITEW SDK_OVERLAY.MODULE_44.SIZE; + WRITEW SDK_OVERLAY.MODULE_44.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_44.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_44.SINIT_END; + WRITEW 44; + WRITEW 0; + + WRITEW 45; + WRITEW ADDR(.MODULE_45); + WRITEW SDK_OVERLAY.MODULE_45.SIZE; + WRITEW SDK_OVERLAY.MODULE_45.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_45.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_45.SINIT_END; + WRITEW 45; + WRITEW 0; + + WRITEW 46; + WRITEW ADDR(.MODULE_46); + WRITEW SDK_OVERLAY.MODULE_46.SIZE; + WRITEW SDK_OVERLAY.MODULE_46.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_46.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_46.SINIT_END; + WRITEW 46; + WRITEW 0; + + WRITEW 47; + WRITEW ADDR(.MODULE_47); + WRITEW SDK_OVERLAY.MODULE_47.SIZE; + WRITEW SDK_OVERLAY.MODULE_47.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_47.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_47.SINIT_END; + WRITEW 47; + WRITEW 0; + + WRITEW 48; + WRITEW ADDR(.MODULE_48); + WRITEW SDK_OVERLAY.MODULE_48.SIZE; + WRITEW SDK_OVERLAY.MODULE_48.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_48.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_48.SINIT_END; + WRITEW 48; + WRITEW 0; + + WRITEW 49; + WRITEW ADDR(.MODULE_49); + WRITEW SDK_OVERLAY.MODULE_49.SIZE; + WRITEW SDK_OVERLAY.MODULE_49.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_49.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_49.SINIT_END; + WRITEW 49; + WRITEW 0; + + WRITEW 50; + WRITEW ADDR(.MODULE_50); + WRITEW SDK_OVERLAY.MODULE_50.SIZE; + WRITEW SDK_OVERLAY.MODULE_50.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_50.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_50.SINIT_END; + WRITEW 50; + WRITEW 0; + + WRITEW 51; + WRITEW ADDR(.MODULE_51); + WRITEW SDK_OVERLAY.MODULE_51.SIZE; + WRITEW SDK_OVERLAY.MODULE_51.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_51.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_51.SINIT_END; + WRITEW 51; + WRITEW 0; + + WRITEW 52; + WRITEW ADDR(.MODULE_52); + WRITEW SDK_OVERLAY.MODULE_52.SIZE; + WRITEW SDK_OVERLAY.MODULE_52.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_52.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_52.SINIT_END; + WRITEW 52; + WRITEW 0; + + WRITEW 53; + WRITEW ADDR(.MODULE_53); + WRITEW SDK_OVERLAY.MODULE_53.SIZE; + WRITEW SDK_OVERLAY.MODULE_53.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_53.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_53.SINIT_END; + WRITEW 53; + WRITEW 0; + + WRITEW 54; + WRITEW ADDR(.MODULE_54); + WRITEW SDK_OVERLAY.MODULE_54.SIZE; + WRITEW SDK_OVERLAY.MODULE_54.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_54.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_54.SINIT_END; + WRITEW 54; + WRITEW 0; + + WRITEW 55; + WRITEW ADDR(.MODULE_55); + WRITEW SDK_OVERLAY.MODULE_55.SIZE; + WRITEW SDK_OVERLAY.MODULE_55.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_55.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_55.SINIT_END; + WRITEW 55; + WRITEW 0; + + WRITEW 56; + WRITEW ADDR(.MODULE_56); + WRITEW SDK_OVERLAY.MODULE_56.SIZE; + WRITEW SDK_OVERLAY.MODULE_56.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_56.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_56.SINIT_END; + WRITEW 56; + WRITEW 0; + + WRITEW 57; + WRITEW ADDR(.MODULE_57); + WRITEW SDK_OVERLAY.MODULE_57.SIZE; + WRITEW SDK_OVERLAY.MODULE_57.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_57.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_57.SINIT_END; + WRITEW 57; + WRITEW 0; + + WRITEW 58; + WRITEW ADDR(.MODULE_58); + WRITEW SDK_OVERLAY.MODULE_58.SIZE; + WRITEW SDK_OVERLAY.MODULE_58.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_58.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_58.SINIT_END; + WRITEW 58; + WRITEW 0; + + WRITEW 59; + WRITEW ADDR(.MODULE_59); + WRITEW SDK_OVERLAY.MODULE_59.SIZE; + WRITEW SDK_OVERLAY.MODULE_59.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_59.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_59.SINIT_END; + WRITEW 59; + WRITEW 0; + + WRITEW 60; + WRITEW ADDR(.MODULE_60); + WRITEW SDK_OVERLAY.MODULE_60.SIZE; + WRITEW SDK_OVERLAY.MODULE_60.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_60.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_60.SINIT_END; + WRITEW 60; + WRITEW 0; + + WRITEW 61; + WRITEW ADDR(.MODULE_61); + WRITEW SDK_OVERLAY.MODULE_61.SIZE; + WRITEW SDK_OVERLAY.MODULE_61.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_61.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_61.SINIT_END; + WRITEW 61; + WRITEW 0; + + WRITEW 62; + WRITEW ADDR(.MODULE_62); + WRITEW SDK_OVERLAY.MODULE_62.SIZE; + WRITEW SDK_OVERLAY.MODULE_62.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_62.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_62.SINIT_END; + WRITEW 62; + WRITEW 0; + + WRITEW 63; + WRITEW ADDR(.MODULE_63); + WRITEW SDK_OVERLAY.MODULE_63.SIZE; + WRITEW SDK_OVERLAY.MODULE_63.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_63.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_63.SINIT_END; + WRITEW 63; + WRITEW 0; + + WRITEW 64; + WRITEW ADDR(.MODULE_64); + WRITEW SDK_OVERLAY.MODULE_64.SIZE; + WRITEW SDK_OVERLAY.MODULE_64.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_64.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_64.SINIT_END; + WRITEW 64; + WRITEW 0; + + WRITEW 65; + WRITEW ADDR(.MODULE_65); + WRITEW SDK_OVERLAY.MODULE_65.SIZE; + WRITEW SDK_OVERLAY.MODULE_65.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_65.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_65.SINIT_END; + WRITEW 65; + WRITEW 0; + + WRITEW 66; + WRITEW ADDR(.MODULE_66); + WRITEW SDK_OVERLAY.MODULE_66.SIZE; + WRITEW SDK_OVERLAY.MODULE_66.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_66.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_66.SINIT_END; + WRITEW 66; + WRITEW 0; + + WRITEW 67; + WRITEW ADDR(.MODULE_67); + WRITEW SDK_OVERLAY.MODULE_67.SIZE; + WRITEW SDK_OVERLAY.MODULE_67.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_67.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_67.SINIT_END; + WRITEW 67; + WRITEW 0; + + WRITEW 68; + WRITEW ADDR(.MODULE_68); + WRITEW SDK_OVERLAY.MODULE_68.SIZE; + WRITEW SDK_OVERLAY.MODULE_68.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_68.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_68.SINIT_END; + WRITEW 68; + WRITEW 0; + + WRITEW 69; + WRITEW ADDR(.MODULE_69); + WRITEW SDK_OVERLAY.MODULE_69.SIZE; + WRITEW SDK_OVERLAY.MODULE_69.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_69.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_69.SINIT_END; + WRITEW 69; + WRITEW 0; + + WRITEW 70; + WRITEW ADDR(.MODULE_70); + WRITEW SDK_OVERLAY.MODULE_70.SIZE; + WRITEW SDK_OVERLAY.MODULE_70.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_70.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_70.SINIT_END; + WRITEW 70; + WRITEW 0; + + WRITEW 71; + WRITEW ADDR(.MODULE_71); + WRITEW SDK_OVERLAY.MODULE_71.SIZE; + WRITEW SDK_OVERLAY.MODULE_71.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_71.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_71.SINIT_END; + WRITEW 71; + WRITEW 0; + + WRITEW 72; + WRITEW ADDR(.MODULE_72); + WRITEW SDK_OVERLAY.MODULE_72.SIZE; + WRITEW SDK_OVERLAY.MODULE_72.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_72.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_72.SINIT_END; + WRITEW 72; + WRITEW 0; + + WRITEW 73; + WRITEW ADDR(.MODULE_73); + WRITEW SDK_OVERLAY.MODULE_73.SIZE; + WRITEW SDK_OVERLAY.MODULE_73.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_73.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_73.SINIT_END; + WRITEW 73; + WRITEW 0; + + WRITEW 74; + WRITEW ADDR(.MODULE_74); + WRITEW SDK_OVERLAY.MODULE_74.SIZE; + WRITEW SDK_OVERLAY.MODULE_74.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_74.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_74.SINIT_END; + WRITEW 74; + WRITEW 0; + + WRITEW 75; + WRITEW ADDR(.MODULE_75); + WRITEW SDK_OVERLAY.MODULE_75.SIZE; + WRITEW SDK_OVERLAY.MODULE_75.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_75.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_75.SINIT_END; + WRITEW 75; + WRITEW 0; + + WRITEW 76; + WRITEW ADDR(.MODULE_76); + WRITEW SDK_OVERLAY.MODULE_76.SIZE; + WRITEW SDK_OVERLAY.MODULE_76.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_76.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_76.SINIT_END; + WRITEW 76; + WRITEW 0; + + WRITEW 77; + WRITEW ADDR(.MODULE_77); + WRITEW SDK_OVERLAY.MODULE_77.SIZE; + WRITEW SDK_OVERLAY.MODULE_77.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_77.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_77.SINIT_END; + WRITEW 77; + WRITEW 0; + + WRITEW 78; + WRITEW ADDR(.MODULE_78); + WRITEW SDK_OVERLAY.MODULE_78.SIZE; + WRITEW SDK_OVERLAY.MODULE_78.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_78.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_78.SINIT_END; + WRITEW 78; + WRITEW 0; + + WRITEW 79; + WRITEW ADDR(.MODULE_79); + WRITEW SDK_OVERLAY.MODULE_79.SIZE; + WRITEW SDK_OVERLAY.MODULE_79.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_79.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_79.SINIT_END; + WRITEW 79; + WRITEW 0; + + WRITEW 80; + WRITEW ADDR(.MODULE_80); + WRITEW SDK_OVERLAY.MODULE_80.SIZE; + WRITEW SDK_OVERLAY.MODULE_80.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_80.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_80.SINIT_END; + WRITEW 80; + WRITEW 0; + + WRITEW 81; + WRITEW ADDR(.MODULE_81); + WRITEW SDK_OVERLAY.MODULE_81.SIZE; + WRITEW SDK_OVERLAY.MODULE_81.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_81.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_81.SINIT_END; + WRITEW 81; + WRITEW 0; + + WRITEW 82; + WRITEW ADDR(.MODULE_82); + WRITEW SDK_OVERLAY.MODULE_82.SIZE; + WRITEW SDK_OVERLAY.MODULE_82.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_82.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_82.SINIT_END; + WRITEW 82; + WRITEW 0; + + WRITEW 83; + WRITEW ADDR(.MODULE_83); + WRITEW SDK_OVERLAY.MODULE_83.SIZE; + WRITEW SDK_OVERLAY.MODULE_83.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_83.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_83.SINIT_END; + WRITEW 83; + WRITEW 0; + + WRITEW 84; + WRITEW ADDR(.MODULE_84); + WRITEW SDK_OVERLAY.MODULE_84.SIZE; + WRITEW SDK_OVERLAY.MODULE_84.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_84.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_84.SINIT_END; + WRITEW 84; + WRITEW 0; + + WRITEW 85; + WRITEW ADDR(.MODULE_85); + WRITEW SDK_OVERLAY.MODULE_85.SIZE; + WRITEW SDK_OVERLAY.MODULE_85.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_85.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_85.SINIT_END; + WRITEW 85; + WRITEW 0; + + WRITEW 86; + WRITEW ADDR(.MODULE_86); + WRITEW SDK_OVERLAY.MODULE_86.SIZE; + WRITEW SDK_OVERLAY.MODULE_86.BSS_SIZE; + WRITEW SDK_OVERLAY.MODULE_86.SINIT_START; + WRITEW SDK_OVERLAY.MODULE_86.SINIT_END; + WRITEW 86; + WRITEW 0; + } > arm9_table + SDK_MAIN_ARENA_LO = SDK_SECTION_ARENA_START; + SDK_IRQ_STACKSIZE = 1024; + SDK_SYS_STACKSIZE = 0; + .binary.MODULE_FILES: { WRITES ("arm9.sbin"); diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index a0f6e04f..49e17956 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -2,110 +2,112 @@ Static arm9 { Address 0x02000000 - Object main.o - Object FUN_02000DF4.o - Object unk_02000E0C.o - Object rom2.o - Object string_util.o - Object unk_020023C0.o - Object filesystem.o - Object unk_02006864.o - Object script.o - Object unk_02038C78.o - Object scrcmd.o - Object unk_02046030.o - Object unk_0208AC14.o - Object FUN_020910A4.o - Object unk_020910EC.o - Object unk_020AF030.o - Object FX_mtx22.o - Object FX_mtx33.o - Object FX_mtx43.o - Object FX_mtx44.o - Object FX_cp.o - Object FX_vec.o - Object FX_atan.o - Object FX.o - Object GX.o - Object GX_state.o - Object GX_vramcnt.o - Object GX_bgcnt.o - Object GX_g2.o - Object GX_g3b.o - Object GX_g3imm.o - Object GX_g3x.o - Object GX_g3_util.o - Object GX_load2d.o - Object GX_load3d.o - Object GX_g3.o - Object GX_asm.o - Object OS_irqHandler.o - Object OS_irqTable.o - Object OS_interrupt.o - Object OS_spinLock.o - Object OS_printf.o - Object OS_thread.o - Object OS_context.o - Object OS_emulator.o - Object OS_message.o - Object OS_mutex.o - Object OS_cache.o - Object OS_init.o - Object OS_arena.o - Object OS_alloc.o - Object OS_tcm.o - Object OS_protectionUnit.o - Object OS_protectionRegion.o - Object OS_exception.o - Object OS_timer.o - Object OS_tick.o - Object OS_alarm.o - Object OS_valarm.o - Object OS_system.o - Object OS_reset.o - Object OS_ownerInfo.o - Object OS_vramExclusive.o - Object OS_entropy.o - Object OS_terminate_proc.o - Object MI_wram.o - Object MI_dma.o - Object MI_dma_hblank.o - Object MI_dma_gxcommand.o - Object MI_memory.o - Object MI_swap.o - Object MI_uncompress.o - Object MI_dma_card.o - Object MI_init.o - Object SND_interface.o - Object SND_main.o - Object SND_command.o - Object SND_alarm.o - Object SND_work.o - Object SND_util.o - Object SND_bank.o - Object PXI_init.o - Object PXI_fifo.o - Object rom2_2.o - Object FS_command.o - Object FS_command_default.o - Object FS_archive.o - Object FS_file.o - Object FS_rom.o - Object FS_overlay.o - Object libdgt.o - Object libcp.o - Object libspi.o - Object libpm.o - Object librtc.o - Object libcard.o - Object libwm.o - Object libctrdg.o - Object libmath.o - Object libstd.o - Object libc.o - Object rom2_3.o - Object libmwcc.o - Object rom2_4.o + Object main.o + Object FUN_02000DF4.o + Object unk_02000E0C.o + Object rom2.o + Object string_util.o + Object unk_020023C0.o + Object filesystem.o + Object unk_02006864.o + Object script.o + Object unk_02038C78.o + Object scrcmd.o + Object unk_02046030.o + Object unk_0208AC14.o + Object FUN_020910A4.o + Object unk_020910EC.o + Object unk_020AF030.o + Object FX_mtx22.o + Object FX_mtx33.o + Object FX_mtx43.o + Object FX_mtx44.o + Object FX_cp.o + Object FX_vec.o + Object FX_atan.o + Object FX.o + Object GX.o + Object GX_state.o + Object GX_vramcnt.o + Object GX_bgcnt.o + Object GX_g2.o + Object GX_g3b.o + Object GX_g3imm.o + Object GX_g3x.o + Object GX_g3_util.o + Object GX_load2d.o + Object GX_load3d.o + Object GX_g3.o + Object GX_asm.o + Object OS_irqHandler.o + Object OS_irqTable.o + Object OS_interrupt.o + Object OS_spinLock.o + Object OS_printf.o + Object OS_thread.o + Object OS_context.o + Object OS_emulator.o + Object OS_message.o + Object OS_mutex.o + Object OS_cache.o + Object OS_init.o + Object OS_arena.o + Object OS_alloc.o + Object OS_tcm.o + Object OS_protectionUnit.o + Object OS_protectionRegion.o + Object OS_exception.o + Object OS_timer.o + Object OS_tick.o + Object OS_alarm.o + Object OS_valarm.o + Object OS_system.o + Object OS_reset.o + Object OS_ownerInfo.o + Object OS_vramExclusive.o + Object OS_entropy.o + Object OS_terminate_proc.o + Object MI_wram.o + Object MI_dma.o + Object MI_dma_hblank.o + Object MI_dma_gxcommand.o + Object MI_memory.o + Object MI_swap.o + Object MI_uncompress.o + Object MI_dma_card.o + Object MI_init.o + Object SND_interface.o + Object SND_main.o + Object SND_command.o + Object SND_alarm.o + Object SND_work.o + Object SND_util.o + Object SND_bank.o + Object PXI_init.o + Object PXI_fifo.o + Object rom2_2.o + Object FS_command.o + Object FS_command_default.o + Object FS_archive.o + Object FS_file.o + Object FS_rom.o + Object FS_overlay.o + Object DGT_hash1.o + Object DGT_hash2.o + Object DGT_sha1s_arm4cw.o + Object libcp.o + Object libspi.o + Object libpm.o + Object librtc.o + Object libcard.o + Object libwm.o + Object libctrdg.o + Object libmath.o + Object libstd.o + Object libc.o + Object rom2_3.o + Object libmwcc.o + Object rom2_4.o } Autoload ITCM @@ -297,270 +299,270 @@ Overlay MODULE_32 Overlay MODULE_33 { Address 0x02254840 - Object FILE_28DE00.o + Object module_33.o } Overlay MODULE_34 { Address 0x02254840 - Object FILE_28E200.o + Object module_34.o } Overlay MODULE_35 { Address 0x02254840 - Object FILE_28E800.o + Object module_35.o } Overlay MODULE_36 { Address 0x02254840 - Object FILE_28F200.o + Object module_36.o } Overlay MODULE_37 { Address 0x02254840 - Object FILE_290000.o + Object module_37.o } Overlay MODULE_38 { Address 0x02254840 - Object FILE_290600.o + Object module_38.o } Overlay MODULE_39 { Address 0x02254840 - Object FILE_291200.o + Object module_39.o } Overlay MODULE_40 { Address 0x02254840 - Object FILE_292000.o + Object module_40.o } Overlay MODULE_41 { Address 0x02254840 - Object FILE_292E00.o + Object module_41.o } Overlay MODULE_42 { Address 0x02254840 - Object FILE_294000.o + Object module_42.o } Overlay MODULE_43 { Address 0x02254840 - Object FILE_294A00.o + Object module_43.o } Overlay MODULE_44 { Address 0x02254840 - Object FILE_295400.o + Object module_44.o } Overlay MODULE_45 { Address 0x02254840 - Object FILE_295A00.o + Object module_45.o } Overlay MODULE_46 { Address 0x02254840 - Object FILE_296400.o + Object module_46.o } Overlay MODULE_47 { Address 0x02254840 - Object FILE_296800.o + Object module_47.o } Overlay MODULE_48 { Address 0x02254840 - Object FILE_297600.o + Object module_48.o } Overlay MODULE_49 { Address 0x02254840 - Object FILE_298000.o + Object module_49.o } Overlay MODULE_50 { Address 0x02254840 - Object FILE_298600.o + Object module_50.o } Overlay MODULE_51 { Address 0x02254840 - Object FILE_298A00.o + Object module_51.o } Overlay MODULE_52 { Address 0x021D74E0 - Object FILE_299A00.o + Object module_52.o } Overlay MODULE_53 { Address 0x021D74E0 - Object FILE_299E00.o + Object module_53.o } Overlay MODULE_54 { Address 0x021D74E0 - Object FILE_29C400.o + Object module_54.o } Overlay MODULE_55 { Address 0x021D74E0 - Object FILE_29E800.o + Object module_55.o } Overlay MODULE_56 { Address 0x02211E60 - Object FILE_2A1A00.o + Object module_56.o } Overlay MODULE_57 { Address 0x021D74E0 - Object FILE_2A6200.o + Object module_57.o } Overlay MODULE_58 { Address 0x021D9A20 - Object FILE_2A8800.o + Object module_58.o } Overlay MODULE_59 { Address 0x021D74E0 - Object FILE_2A9E00.o + Object module_59.o } Overlay MODULE_60 { Address 0x021D74E0 - Object FILE_2ACC00.o + Object module_60.o } Overlay MODULE_61 { Address 0x021D74E0 - Object FILE_2ADA00.o + Object module_61.o } Overlay MODULE_62 { Address 0x0222D5C0 - Object FILE_2AEC00.o + Object module_62.o } Overlay MODULE_63 { Address 0x021D74E0 - Object FILE_2B2A00.o + Object module_63.o } Overlay MODULE_64 { Address 0x021D74E0 - Object FILE_2B7600.o + Object module_64.o } Overlay MODULE_65 { Address 0x021D74E0 - Object FILE_2B9400.o + Object module_65.o } Overlay MODULE_66 { Address 0x021D74E0 - Object FILE_2BC400.o + Object module_66.o } Overlay MODULE_67 { Address 0x021D74E0 - Object FILE_2BEC00.o + Object module_67.o } Overlay MODULE_68 { Address 0x021D74E0 - Object FILE_2C1200.o + Object module_68.o } Overlay MODULE_69 { Address 0x0222D5C0 - Object FILE_2C2800.o + Object module_69.o } Overlay MODULE_70 { Address 0x021D74E0 - Object FILE_2C4C00.o + Object module_70.o } Overlay MODULE_71 { Address 0x0222D5C0 - Object FILE_2C5C00.o + Object module_71.o } Overlay MODULE_72 { Address 0x021D74E0 - Object FILE_2C9C00.o + Object module_72.o } Overlay MODULE_73 { Address 0x021D74E0 - Object FILE_2C9E00.o + Object module_73.o } Overlay MODULE_74 { Address 0x021D74E0 - Object FILE_2CEA00.o + Object module_74.o } Overlay MODULE_75 { Address 0x021E6BA0 - Object FILE_2CFE00.o + Object module_75.o } Overlay MODULE_76 { Address 0x021D74E0 - Object FILE_2D5C00.o + Object module_76.o } Overlay MODULE_77 { Address 0x021D74E0 - Object FILE_2D7C00.o + Object module_77.o } Overlay MODULE_78 { Address 0x021D74E0 - Object FILE_2D9800.o + Object module_78.o } Overlay MODULE_79 { Address 0x02211E60 - Object FILE_2D9E00.o + Object module_79.o } Overlay MODULE_80 { Address 0x0222D5C0 - Object FILE_2DF200.o + Object module_80.o } Overlay MODULE_81 { Address 0x02237E40 - Object FILE_2E9A00.o + Object module_81.o } Overlay MODULE_82 { Address 0x0222D5C0 - Object FILE_2EF000.o + Object module_82.o } Overlay MODULE_83 { Address 0x0222D5C0 - Object FILE_2F1600.o + Object module_83.o } Overlay MODULE_84 { Address 0x021D74E0 - Object FILE_2FFA00.o + Object module_84.o } Overlay MODULE_85 { Address 0x021D74E0 - Object FILE_303400.o + Object module_85.o } Overlay MODULE_86 { Address 0x021D74E0 - Object FILE_30C600.o + Object module_86.o } diff --git a/arm9/asm/libcp.s b/arm9/asm/CP_context.s index c756e8e2..c756e8e2 100644 --- a/arm9/asm/libcp.s +++ b/arm9/asm/CP_context.s diff --git a/arm9/asm/DGT_hash1.s b/arm9/asm/DGT_hash1.s new file mode 100644 index 00000000..a9d6778d --- /dev/null +++ b/arm9/asm/DGT_hash1.s @@ -0,0 +1,404 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + arm_func_start ProcessBlock +ProcessBlock: ; 0x020D2798 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + add r3, r0, #0x18 + ldr r5, [r0, #0x0] + ldr r4, [r0, #0x4] + ldr lr, [r0, #0x8] + ldr r12, [r0, #0xc] + ldr r2, _020D2B78 ; =0x02106900 + mov r8, r3 + mov r7, #0x0 +_020D27C0: + mvn r1, r4 + and r6, r4, lr + and r1, r1, r12 + orr r1, r6, r1 + ldr r6, [r8, #0x0] + add r1, r5, r1 + ldr r5, [r2, #0x0] + add r1, r6, r1 + add r5, r5, r1 + mov r1, r5, lsl #0x7 + orr r1, r1, r5, lsr #0x19 + add r5, r4, r1 + mvn r1, r5 + and r6, r5, r4 + and r1, r1, lr + orr r1, r6, r1 + ldr r6, [r8, #0x4] + add r1, r12, r1 + ldr r9, [r2, #0x4] + add r1, r6, r1 + add r6, r9, r1 + mov r1, r6, lsl #0xc + orr r1, r1, r6, lsr #0x14 + add r12, r5, r1 + mvn r1, r12 + and r6, r12, r5 + and r1, r1, r4 + orr r6, r6, r1 + add r1, r8, #0xc + ldr r9, [r8, #0x8] + add r6, lr, r6 + add r6, r9, r6 + ldr r9, [r2, #0x8] + ldr r1, [r1, #0x0] + add r10, r9, r6 + add r6, r2, #0xc + ldr r6, [r6, #0x0] + mov r9, r10, lsl #0x11 + orr r9, r9, r10, lsr #0xf + add lr, r12, r9 + add r2, r2, #0x10 + add r8, r8, #0x10 + and r10, lr, r12 + mvn r9, lr + and r9, r9, r5 + orr r9, r10, r9 + add r4, r4, r9 + add r1, r1, r4 + add r4, r6, r1 + mov r1, r4, lsl #0x16 + orr r1, r1, r4, lsr #0xa + add r4, lr, r1 + add r7, r7, #0x1 + cmp r7, #0x4 + blt _020D27C0 + ldr r6, _020D2B7C ; =0x02106840 + mov r1, #0x0 +_020D28A4: + mvn r7, r12 + ldr r9, [r6, #0x0] + and r8, r4, r12 + and r7, lr, r7 + orr r7, r8, r7 + ldr r8, [r3, r9, lsl #0x2] + add r5, r5, r7 + ldr r7, [r2, #0x0] + add r5, r8, r5 + add r7, r7, r5 + mov r5, r7, lsl #0x5 + orr r5, r5, r7, lsr #0x1b + add r5, r4, r5 + mvn r8, lr + ldr r7, [r6, #0x4] + and r9, r5, lr + and r8, r4, r8 + orr r10, r9, r8 + mvn r8, r4 + ldr r9, [r6, #0x8] + ldr r11, [r3, r7, lsl #0x2] + add r7, r12, r10 + add r10, r11, r7 + add r7, r6, #0xc + ldr r9, [r3, r9, lsl #0x2] + and r8, r5, r8 + ldr r7, [r7, #0x0] + ldr r11, [r2, #0x4] + ldr r7, [r3, r7, lsl #0x2] + add r11, r11, r10 + mov r10, r11, lsl #0x9 + orr r10, r10, r11, lsr #0x17 + add r12, r5, r10 + ldr r10, [r2, #0x8] + and r11, r12, r4 + orr r8, r11, r8 + add r8, lr, r8 + add r8, r9, r8 + add r10, r10, r8 + add r8, r2, #0xc + ldr r8, [r8, #0x0] + mov r9, r10, lsl #0xe + orr r9, r9, r10, lsr #0x12 + add lr, r12, r9 + add r2, r2, #0x10 + add r6, r6, #0x10 + and r10, lr, r5 + mvn r9, r5 + and r9, r12, r9 + orr r9, r10, r9 + add r4, r4, r9 + add r4, r7, r4 + add r7, r8, r4 + mov r4, r7, lsl #0x14 + orr r4, r4, r7, lsr #0xc + add r4, lr, r4 + add r1, r1, #0x1 + cmp r1, #0x4 + blt _020D28A4 + mov r7, #0x0 +_020D2994: + ldr r8, [r6, #0x0] + eor r1, r4, lr + eor r1, r12, r1 + add r1, r5, r1 + ldr r8, [r3, r8, lsl #0x2] + ldr r5, [r2, #0x0] + add r1, r8, r1 + add r5, r5, r1 + mov r1, r5, lsl #0x4 + orr r1, r1, r5, lsr #0x1c + add r5, r4, r1 + ldr r8, [r6, #0x4] + eor r1, r5, r4 + eor r1, lr, r1 + ldr r8, [r3, r8, lsl #0x2] + add r1, r12, r1 + ldr r9, [r6, #0x8] + ldr r10, [r2, #0x4] + add r1, r8, r1 + add r8, r10, r1 + mov r1, r8, lsl #0xb + orr r1, r1, r8, lsr #0x15 + add r12, r5, r1 + eor r8, r12, r5 + eor r8, r4, r8 + ldr r9, [r3, r9, lsl #0x2] + add r8, lr, r8 + add r9, r9, r8 + ldr r10, [r2, #0x8] + add r1, r2, #0xc + ldr r8, [r6, #0xc] + add r10, r10, r9 + ldr r9, [r3, r8, lsl #0x2] + mov r8, r10, lsl #0x10 + orr r8, r8, r10, lsr #0x10 + add lr, r12, r8 + eor r8, lr, r12 + eor r8, r5, r8 + add r4, r4, r8 + add r7, r7, #0x1 + ldr r1, [r1, #0x0] + add r4, r9, r4 + add r4, r1, r4 + mov r1, r4, lsl #0x17 + orr r1, r1, r4, lsr #0x9 + add r2, r2, #0x10 + add r6, r6, #0x10 + add r4, lr, r1 + cmp r7, #0x4 + blt _020D2994 + mov r10, #0x0 +_020D2A60: + mvn r1, r12 + ldr r7, [r6, #0x0] + orr r1, r4, r1 + eor r1, lr, r1 + ldr r7, [r3, r7, lsl #0x2] + add r1, r5, r1 + ldr r5, [r2, #0x0] + add r1, r7, r1 + add r5, r5, r1 + mov r1, r5, lsl #0x6 + orr r1, r1, r5, lsr #0x1a + add r5, r4, r1 + mvn r1, lr + ldr r7, [r6, #0x4] + orr r1, r5, r1 + eor r1, r4, r1 + ldr r8, [r6, #0x8] + ldr r7, [r3, r7, lsl #0x2] + add r1, r12, r1 + ldr r9, [r2, #0x4] + add r1, r7, r1 + add r9, r9, r1 + mov r7, r9, lsl #0xa + add r1, r6, #0xc + orr r9, r7, r9, lsr #0x16 + ldr r1, [r1, #0x0] + add r7, r2, #0xc + add r12, r5, r9 + ldr r8, [r3, r8, lsl #0x2] + ldr r7, [r7, #0x0] + ldr r1, [r3, r1, lsl #0x2] + ldr r9, [r2, #0x8] + mvn r11, r4 + orr r11, r12, r11 + eor r11, r5, r11 + add r11, lr, r11 + add r8, r8, r11 + add r9, r9, r8 + mov r8, r9, lsl #0xf + orr r8, r8, r9, lsr #0x11 + add lr, r12, r8 + add r2, r2, #0x10 + add r6, r6, #0x10 + mvn r8, r5 + orr r8, lr, r8 + eor r8, r12, r8 + add r4, r4, r8 + add r1, r1, r4 + add r4, r7, r1 + mov r1, r4, lsl #0x15 + orr r1, r1, r4, lsr #0xb + add r4, lr, r1 + add r10, r10, #0x1 + cmp r10, #0x4 + blt _020D2A60 + ldr r1, [r0, #0x0] + add r1, r1, r5 + str r1, [r0, #0x0] + ldr r1, [r0, #0x4] + add r1, r1, r4 + str r1, [r0, #0x4] + ldr r1, [r0, #0x8] + add r1, r1, lr + str r1, [r0, #0x8] + ldr r1, [r0, #0xc] + add r1, r1, r12 + str r1, [r0, #0xc] + add sp, sp, #0x4 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020D2B78: .word Unk_02106900 ; = 0x02106900 +_020D2B7C: .word Unk_02106840 ; = 0x02106840 + + arm_func_start DGT_Hash1GetDigest_R +DGT_Hash1GetDigest_R: ; 0x020D2B80 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r1 + ldr r1, [r6, #0x14] + ldr r3, [r6, #0x10] + mov r7, r0 + mov r4, r1, lsl #0x3 + ldr r1, _020D2C40 ; =0x0210683C + mov r0, r6 + mov r2, #0x1 + orr r4, r4, r3, lsr #0x1d + mov r5, r3, lsl #0x3 + bl DGT_Hash1SetSource + ldr r0, [r6, #0x10] + mov r1, #0x0 + and r3, r0, #0x3f + rsb r2, r3, #0x40 + cmp r2, #0x8 + bhs _020D2BE8 + add r0, r6, #0x18 + add r0, r0, r3 + bl MI_CpuFill8 + mov r0, r6 + bl ProcessBlock + mov r3, #0x0 + mov r2, #0x40 +_020D2BE8: + cmp r2, #0x8 + bls _020D2C04 + add r0, r6, #0x18 + add r0, r0, r3 + sub r2, r2, #0x8 + mov r1, #0x0 + bl MI_CpuFill8 +_020D2C04: + str r5, [r6, #0x50] + mov r0, r6 + str r4, [r6, #0x54] + bl ProcessBlock + mov r0, r6 + mov r1, r7 + mov r2, #0x10 + bl MI_CpuCopy8 + mov r0, r6 + mov r1, #0x0 + mov r2, #0x58 + bl MI_CpuFill8 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020D2C40: .word Unk_0210683C ; = 0x0210683C + + arm_func_start DGT_Hash1SetSource +DGT_Hash1SetSource: ; 0x020D2C44 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r8, r0 + add r12, r8, #0x10 + ldr r4, [r8, #0x10] + mov r6, r2 + and r3, r4, #0x3f + ldr r0, [r12, #0x4] + adds r4, r4, r6 + str r4, [r8, #0x10] + adc r0, r0, #0x0 + rsb r5, r3, #0x40 + mov r7, r1 + str r0, [r12, #0x4] + cmp r5, r6 + bls _020D2CB0 + cmp r6, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + add r1, r8, #0x18 + mov r0, r7 + add r1, r1, r3 + bl MI_CpuCopy8 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr +_020D2CB0: + add r1, r8, #0x18 + mov r0, r7 + mov r2, r5 + add r1, r1, r3 + bl MI_CpuCopy8 + mov r0, r8 + bl ProcessBlock + sub r6, r6, r5 + mov r4, r6, lsr #0x6 + cmp r4, #0x0 + add r9, r7, r5 + ble _020D2D10 + add r7, r8, #0x18 + mov r5, #0x40 +_020D2CE8: + mov r0, r9 + mov r1, r7 + mov r2, r5 + bl MI_CpuCopy8 + mov r0, r8 + add r9, r9, #0x40 + bl ProcessBlock + sub r4, r4, #0x1 + cmp r4, #0x0 + bgt _020D2CE8 +_020D2D10: + ands r2, r6, #0x3f + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + mov r0, r9 + add r1, r8, #0x18 + bl MI_CpuCopy8 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start DGT_Hash1Reset +DGT_Hash1Reset: ; 0x020D2D38 + ldr r2, _020D2D68 ; =0x67452301 + ldr r1, _020D2D6C ; =0xEFCDAB89 + str r2, [r0, #0x0] + ldr r2, _020D2D70 ; =0x98BADCFE + str r1, [r0, #0x4] + ldr r1, _020D2D74 ; =0x10325476 + str r2, [r0, #0x8] + str r1, [r0, #0xc] + mov r1, #0x0 + str r1, [r0, #0x10] + str r1, [r0, #0x14] + bx lr + .balign 4 +_020D2D68: .word 0x67452301 +_020D2D6C: .word 0xEFCDAB89 +_020D2D70: .word 0x98BADCFE +_020D2D74: .word 0x10325476 diff --git a/arm9/asm/DGT_hash2.s b/arm9/asm/DGT_hash2.s new file mode 100644 index 00000000..614d700d --- /dev/null +++ b/arm9/asm/DGT_hash2.s @@ -0,0 +1,443 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + arm_func_start DGT_Hash2CalcHmac +DGT_Hash2CalcHmac: ; 0x020D2D78 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0xa0 + ldr lr, _020D2E00 ; =0x02106A04 + add r12, sp, #0x1c + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + mov r4, r12 + ldmia lr!, {r0-r3} + stmia r12!, {r0-r3} + ldmia lr, {r0-r2} + stmia r12, {r0-r2} + add lr, sp, #0x38 + add r12, sp, #0x8 + str lr, [sp, #0x24] + ldr lr, _020D2E04 ; =DGT_Hash2Reset + str r12, [sp, #0x28] + ldr ip, _020D2E08 ; =DGT_Hash2SetSource + str lr, [sp, #0x2c] + ldr lr, _020D2E0C ; =DGT_Hash2GetDigest + str r12, [sp, #0x30] + ldr r12, [sp, #0xb8] + str lr, [sp, #0x34] + str r12, [sp, #0x0] + mov r3, r5 + mov r0, r8 + mov r1, r7 + mov r2, r6 + str r4, [sp, #0x4] + bl DGTi_Hash2CalcHmac + add sp, sp, #0xa0 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020D2E00: .word Unk_02106A04 ; = 0x02106A04 +_020D2E04: .word DGT_Hash2Reset +_020D2E08: .word DGT_Hash2SetSource +_020D2E0C: .word DGT_Hash2GetDigest + + arm_func_start DGT_Hash2GetDigest +DGT_Hash2GetDigest: ; 0x020D2E10 + stmdb sp!, {r0-r3} + stmdb sp!, {r4-r6,lr} + ldr r0, [sp, #0x10] + mov r6, r1 + ldr r3, [r0, #0x1c] + add r5, r0, #0x20 + ands r1, r3, #0x3 + mov r0, r3, asr #0x2 + moveq r1, #0x0 + streq r1, [r5, r0, lsl #0x2] + ldr r2, [sp, #0x10] + mov r1, #0x80 + add r4, r2, #0x20 + strb r1, [r4, r3] + add r3, r3, #0x1 + ands r1, r3, #0x3 + beq _020D2E68 + mov r2, #0x0 +_020D2E58: + strb r2, [r4, r3] + add r3, r3, #0x1 + ands r1, r3, #0x3 + bne _020D2E58 +_020D2E68: + ldr r1, [sp, #0x10] + add r0, r0, #0x1 + ldr r1, [r1, #0x1c] + cmp r1, #0x38 + blt _020D2EB4 + cmp r0, #0x10 + bge _020D2E98 + mov r1, #0x0 +_020D2E88: + str r1, [r5, r0, lsl #0x2] + add r0, r0, #0x1 + cmp r0, #0x10 + blt _020D2E88 +_020D2E98: + ldr r1, _020D3008 ; =0x02106A00 + ldr r0, [sp, #0x10] + ldr r3, [r1, #0x0] + mov r1, r5 + mov r2, #0x40 + blx r3 + mov r0, #0x0 +_020D2EB4: + cmp r0, #0xe + bge _020D2ED0 + mov r1, #0x0 +_020D2EC0: + str r1, [r5, r0, lsl #0x2] + add r0, r0, #0x1 + cmp r0, #0xe + blt _020D2EC0 +_020D2ED0: + ldr r0, [sp, #0x10] + mov r1, r5 + ldr r2, [r0, #0x14] + ldr r3, _020D3008 ; =0x02106A00 + strb r2, [r4, #0x3f] + mov r0, r2, lsr #0x8 + strb r0, [r4, #0x3e] + mov r0, r2, lsr #0x10 + strb r0, [r4, #0x3d] + mov r0, r2, lsr #0x18 + strb r0, [r4, #0x3c] + ldr r0, [sp, #0x10] + mov r2, #0x40 + ldr r5, [r0, #0x18] + strb r5, [r4, #0x3b] + mov r0, r5, lsr #0x8 + strb r0, [r4, #0x3a] + mov r0, r5, lsr #0x10 + strb r0, [r4, #0x39] + mov r0, r5, lsr #0x18 + strb r0, [r4, #0x38] + ldr r0, [sp, #0x10] + ldr r3, [r3, #0x0] + blx r3 + ldr r0, [sp, #0x10] + add r1, sp, #0x10 + ldr r3, [r0, #0x0] + mov r0, #0x0 + mov r2, r3, lsr #0x18 + strb r2, [r6, #0x0] + mov r2, r3, lsr #0x10 + strb r2, [r6, #0x1] + mov r2, r3, lsr #0x8 + strb r2, [r6, #0x2] + strb r3, [r6, #0x3] + ldr r3, [sp, #0x10] + mov r2, #0x4 + ldr r4, [r3, #0x4] + mov r3, r4, lsr #0x18 + strb r3, [r6, #0x4] + mov r3, r4, lsr #0x10 + strb r3, [r6, #0x5] + mov r3, r4, lsr #0x8 + strb r3, [r6, #0x6] + strb r4, [r6, #0x7] + ldr r3, [sp, #0x10] + ldr r4, [r3, #0x8] + mov r3, r4, lsr #0x18 + strb r3, [r6, #0x8] + mov r3, r4, lsr #0x10 + strb r3, [r6, #0x9] + mov r3, r4, lsr #0x8 + strb r3, [r6, #0xa] + strb r4, [r6, #0xb] + ldr r3, [sp, #0x10] + ldr r4, [r3, #0xc] + mov r3, r4, lsr #0x18 + strb r3, [r6, #0xc] + mov r3, r4, lsr #0x10 + strb r3, [r6, #0xd] + mov r3, r4, lsr #0x8 + strb r3, [r6, #0xe] + strb r4, [r6, #0xf] + ldr r3, [sp, #0x10] + ldr r4, [r3, #0x10] + mov r3, r4, lsr #0x18 + strb r3, [r6, #0x10] + mov r3, r4, lsr #0x10 + strb r3, [r6, #0x11] + mov r3, r4, lsr #0x8 + strb r3, [r6, #0x12] + strb r4, [r6, #0x13] + ldr r3, [sp, #0x10] + str r0, [r3, #0x1c] + bl MIi_CpuClear32 + ldmia sp!, {r4-r6,lr} + add sp, sp, #0x10 + bx lr + .balign 4 +_020D3008: .word Unk_02106A00 ; = 0x02106A00 + + arm_func_start DGT_Hash2SetSource +DGT_Hash2SetSource: ; 0x020D300C + stmdb sp!, {r4-r8,lr} + mov r8, r0 + movs r6, r2 + mov r7, r1 + add r5, r8, #0x20 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r0, [r8, #0x14] + add r1, r0, r6, lsl #0x3 + cmp r1, r0 + ldrcc r0, [r8, #0x18] + addcc r0, r0, #0x1 + strcc r0, [r8, #0x18] + ldr r0, [r8, #0x18] + add r0, r0, r6, lsr #0x1d + str r0, [r8, #0x18] + str r1, [r8, #0x14] + ldr r1, [r8, #0x1c] + cmp r1, #0x0 + beq _020D30CC + add r0, r1, r6 + cmp r0, #0x40 + blo _020D30A8 + rsb r4, r1, #0x40 + mov r0, r7 + mov r2, r4 + add r1, r5, r1 + bl MI_CpuCopy8 + ldr r1, _020D3164 ; =0x02106A00 + mov r0, r8 + ldr r3, [r1, #0x0] + mov r1, r5 + mov r2, #0x40 + sub r6, r6, r4 + add r7, r7, r4 + blx r3 + mov r0, #0x0 + str r0, [r8, #0x1c] + b _020D30CC +_020D30A8: + mov r0, r7 + mov r2, r6 + add r1, r5, r1 + bl MI_CpuCopy8 + ldr r0, [r8, #0x1c] + add r0, r0, r6 + str r0, [r8, #0x1c] + ldmia sp!, {r4-r8,lr} + bx lr +_020D30CC: + cmp r6, #0x40 + blo _020D313C + bic r4, r6, #0x3f + sub r6, r6, r4 + ands r0, r7, #0x3 + bne _020D3104 + ldr r1, _020D3164 ; =0x02106A00 + mov r0, r8 + ldr r3, [r1, #0x0] + mov r1, r7 + mov r2, r4 + blx r3 + add r7, r7, r4 + b _020D313C +_020D3104: + mov r0, r7 + mov r1, r5 + mov r2, #0x40 + bl MI_CpuCopy8 + ldr r1, _020D3164 ; =0x02106A00 + mov r0, r8 + ldr r3, [r1, #0x0] + mov r1, r5 + mov r2, #0x40 + add r7, r7, #0x40 + blx r3 + sub r4, r4, #0x40 + cmp r4, #0x0 + bgt _020D3104 +_020D313C: + str r6, [r8, #0x1c] + cmp r6, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r0, r7 + mov r1, r5 + mov r2, r6 + bl MI_CpuCopy8 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020D3164: .word Unk_02106A00 ; = 0x02106A00 + + arm_func_start DGT_Hash2Reset +DGT_Hash2Reset: ; 0x020D3168 + ldr r1, _020D31A4 ; =0x67452301 + ldr r2, _020D31A8 ; =0xEFCDAB89 + str r1, [r0, #0x0] + ldr r1, _020D31AC ; =0x98BADCFE + str r2, [r0, #0x4] + ldr r2, _020D31B0 ; =0x10325476 + str r1, [r0, #0x8] + ldr r1, _020D31B4 ; =0xC3D2E1F0 + str r2, [r0, #0xc] + str r1, [r0, #0x10] + mov r1, #0x0 + str r1, [r0, #0x14] + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + bx lr + .balign 4 +_020D31A4: .word 0x67452301 +_020D31A8: .word 0xEFCDAB89 +_020D31AC: .word 0x98BADCFE +_020D31B0: .word 0x10325476 +_020D31B4: .word 0xC3D2E1F0 + + arm_func_start DGTi_Hash2CalcHmac +DGTi_Hash2CalcHmac: ; 0x020D31B8 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0xc4 + ldr r5, [sp, #0xe0] + ldr r4, [sp, #0xe4] + movs r9, r0 + mov r8, r1 + mov r7, r2 + mov r6, r3 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r8, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r7, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r6, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r5, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r4, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + ldr r0, [r4, #0x4] + cmp r5, r0 + ble _020D3278 + ldr r0, [r4, #0x8] + ldr r1, [r4, #0x10] + blx r1 + ldr r0, [r4, #0x8] + ldr r3, [r4, #0x14] + mov r1, r6 + mov r2, r5 + blx r3 + ldr r0, [r4, #0x8] + ldr r2, [r4, #0x18] + add r1, sp, #0x0 + blx r2 + ldr r5, [r4, #0x0] + add r6, sp, #0x0 +_020D3278: + cmp r5, #0x0 + mov r0, #0x0 + ble _020D32A0 + add r2, sp, #0x40 +_020D3288: + ldrb r1, [r6, r0] + add r0, r0, #0x1 + cmp r0, r5 + eor r1, r1, #0x36 + strb r1, [r2], #0x1 + blt _020D3288 +_020D32A0: + ldr r1, [r4, #0x4] + cmp r0, r1 + bge _020D32CC + add r1, sp, #0x40 + add r3, r1, r0 + mov r2, #0x36 +_020D32B8: + strb r2, [r3], #0x1 + ldr r1, [r4, #0x4] + add r0, r0, #0x1 + cmp r0, r1 + blt _020D32B8 +_020D32CC: + ldr r0, [r4, #0x8] + ldr r1, [r4, #0x10] + blx r1 + ldr r0, [r4, #0x8] + ldr r2, [r4, #0x4] + ldr r3, [r4, #0x14] + add r1, sp, #0x40 + blx r3 + ldr r0, [r4, #0x8] + ldr r3, [r4, #0x14] + mov r1, r8 + mov r2, r7 + blx r3 + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r4, #0x18] + blx r2 + cmp r5, #0x0 + mov r2, #0x0 + ble _020D3338 + add r1, sp, #0x80 +_020D3320: + ldrb r0, [r6, r2] + add r2, r2, #0x1 + cmp r2, r5 + eor r0, r0, #0x5c + strb r0, [r1], #0x1 + blt _020D3320 +_020D3338: + ldr r0, [r4, #0x4] + cmp r2, r0 + bge _020D3364 + add r0, sp, #0x80 + add r3, r0, r2 + mov r1, #0x5c +_020D3350: + strb r1, [r3], #0x1 + ldr r0, [r4, #0x4] + add r2, r2, #0x1 + cmp r2, r0 + blt _020D3350 +_020D3364: + ldr r0, [r4, #0x8] + ldr r1, [r4, #0x10] + blx r1 + ldr r0, [r4, #0x8] + ldr r2, [r4, #0x4] + ldr r3, [r4, #0x14] + add r1, sp, #0x80 + blx r3 + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r4, #0x0] + ldr r3, [r4, #0x14] + blx r3 + ldr r0, [r4, #0x8] + ldr r2, [r4, #0x18] + mov r1, r9 + blx r2 + add sp, sp, #0xc4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 diff --git a/arm9/asm/DGT_sha1s_arm4cw.s b/arm9/asm/DGT_sha1s_arm4cw.s new file mode 100644 index 00000000..1f110a72 --- /dev/null +++ b/arm9/asm/DGT_sha1s_arm4cw.s @@ -0,0 +1,179 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + +_020D33B4: .word 0x00FF00FF +_020D33B8: .word 0x5A827999 +_020D33BC: .word 0x6ED9EBA1 +_020D33C0: .word 0x8F1BBCDC +_020D33C4: .word 0xCA62C1D6 + + arm_func_start DGTi_hash2_arm4_small +DGTi_hash2_arm4_small: ; 0x020D33C8 + stmdb sp!, {r4-r12,lr} + ldmia r0, {r3,r9-r12} + sub sp, sp, #0x84 + str r2, [sp, #0x80] +_020D33D8: + ldr r8, _020D33B8 ; =0x5A827999 + ldr r7, _020D33B4 ; =0x00FF00FF + mov r6, sp + mov r5, #0x0 +_020D33E8: + ldr r4, [r1], #0x4 + add r2, r8, r12 + add r2, r2, r3, ror #0x1B + and lr, r4, r7 + and r4, r7, r4, ror #0x18 + orr r4, r4, lr, ror #0x8 + str r4, [r6, #0x40] + str r4, [r6], #0x4 + add r2, r2, r4 + eor r4, r10, r11 + and r4, r4, r9 + eor r4, r4, r11 + add r2, r2, r4 + mov r9, r9, ror #0x2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r5, r5, #0x4 + cmp r5, #0x40 + blt _020D33E8 + mov r7, #0x0 + mov r6, sp +_020D3448: + ldr r2, [r6, #0x0] + ldr r5, [r6, #0x8] + ldr r4, [r6, #0x20] + ldr lr, [r6, #0x34] + eor r2, r2, r5 + eor r4, r4, lr + eor r2, r2, r4 + mov r2, r2, ror #0x1F + str r2, [r6, #0x40] + str r2, [r6], #0x4 + add r2, r2, r12 + add r2, r2, r8 + add r2, r2, r3, ror #0x1B + eor r4, r10, r11 + and r4, r4, r9 + eor r4, r4, r11 + add r2, r2, r4 + mov r9, r9, ror #0x2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r7, r7, #0x4 + cmp r7, #0x10 + blt _020D3448 + ldr r8, _020D33BC ; =0x6ED9EBA1 + mov r7, #0x0 +_020D34B8: + ldr r2, [r6, #0x0] + ldr r4, [r6, #0x8] + ldr lr, [r6, #0x20] + ldr r5, [r6, #0x34] + eor r2, r2, r4 + eor lr, lr, r5 + eor r2, r2, lr + mov r2, r2, ror #0x1F + str r2, [r6, #0x40] + str r2, [r6], #0x4 + add r2, r2, r12 + add r2, r2, r8 + add r2, r2, r3, ror #0x1B + eor lr, r9, r10 + eor lr, lr, r11 + add r2, r2, lr + mov r9, r9, ror #0x2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r7, r7, #0x1 + cmp r7, #0xc + moveq r6, sp + cmp r7, #0x14 + blt _020D34B8 + ldr r8, _020D33C0 ; =0x8F1BBCDC + mov r7, #0x0 +_020D352C: + ldr r2, [r6, #0x0] + ldr lr, [r6, #0x8] + ldr r5, [r6, #0x20] + ldr r4, [r6, #0x34] + eor r2, r2, lr + eor r5, r5, r4 + eor r2, r2, r5 + mov r2, r2, ror #0x1F + str r2, [r6, #0x40] + str r2, [r6], #0x4 + add r2, r2, r12 + add r2, r2, r8 + add r2, r2, r3, ror #0x1B + orr r5, r9, r10 + and r5, r5, r11 + and r4, r9, r10 + orr r5, r5, r4 + add r2, r2, r5 + mov r9, r9, ror #0x2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r7, r7, #0x1 + cmp r7, #0x8 + moveq r6, sp + cmp r7, #0x14 + blt _020D352C + ldr r8, _020D33C4 ; =0xCA62C1D6 + mov r7, #0x0 +_020D35A8: + ldr r2, [r6, #0x0] + ldr r5, [r6, #0x8] + ldr r4, [r6, #0x20] + ldr lr, [r6, #0x34] + eor r2, r2, r5 + eor r4, r4, lr + eor r2, r2, r4 + mov r2, r2, ror #0x1F + str r2, [r6, #0x40] + str r2, [r6], #0x4 + add r2, r2, r12 + add r2, r2, r8 + add r2, r2, r3, ror #0x1B + eor r4, r9, r10 + eor r4, r4, r11 + add r2, r2, r4 + mov r9, r9, ror #0x2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r7, r7, #0x1 + cmp r7, #0x4 + moveq r6, sp + cmp r7, #0x14 + blt _020D35A8 + ldmia r0, {r2,r4,r6-r7,lr} + add r3, r3, r2 + add r9, r9, r4 + add r10, r10, r6 + add r11, r11, r7 + add r12, r12, lr + stmia r0, {r3,r9-r12} + ldr lr, [sp, #0x80] + subs lr, lr, #0x40 + str lr, [sp, #0x80] + bgt _020D33D8 + add sp, sp, #0x84 + ldmia sp!, {r4-r12,pc} diff --git a/arm9/asm/OS_interrupt_asm.s b/arm9/asm/OS_interrupt_asm.s index ea17cf8d..7fdc1ccc 100644 --- a/arm9/asm/OS_interrupt_asm.s +++ b/arm9/asm/OS_interrupt_asm.s @@ -93,26 +93,3 @@ OS_SetIrqMask: ; 0x020C9E94 .balign 4 _020C9EC0: .word 0x04000208 _020C9EC4: .word 0x04000210 - - arm_func_start OSi_EnterTimerCallback -OSi_EnterTimerCallback: ; 0x020C9EC8 - stmdb sp!, {r4,lr} - mov r3, #0xc - mul r4, r0, r3 - ldr ip, _020C9F08 ; =0x021D344C - add r0, r0, #0x3 - mov r3, #0x1 - mov r0, r3, lsl r0 - ldr r3, _020C9F0C ; =0x021D3454 - str r1, [r12, r4] - str r2, [r3, r4] - bl OS_EnableIrqMask - ldr r0, _020C9F10 ; =0x021D3450 - mov r1, #0x1 - str r1, [r0, r4] - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020C9F08: .word OSi_IrqCallbackInfo+0x30 -_020C9F0C: .word OSi_IrqCallbackInfo+0x38 -_020C9F10: .word OSi_IrqCallbackInfo+0x34 diff --git a/arm9/asm/OS_printf.s b/arm9/asm/OS_printf.s deleted file mode 100644 index f5175955..00000000 --- a/arm9/asm/OS_printf.s +++ /dev/null @@ -1,757 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - arm_func_start OS_VSNPrintf -OS_VSNPrintf: ; 0x020CA49C - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x64 - mov r9, r2 - str r1, [sp, #0x54] - str r0, [sp, #0x5c] - str r0, [sp, #0x58] - ldrsb r0, [r9, #0x0] - str r1, [sp, #0x0] - mov r11, r3 - cmp r0, #0x0 - beq _020CAD18 - mov r0, #0xa - str r0, [sp, #0xc] - mov r0, #0x0 - str r0, [sp, #0x4] - mov r0, #0x20 - str r0, [sp, #0x1c] - mov r0, #0x30 - str r0, [sp, #0x20] - mvn r0, #0x0 - str r0, [sp, #0x8] - mov r0, #0x57 - str r0, [sp, #0x10] - mov r0, #0x8 - str r0, [sp, #0x14] - mov r0, #0x37 - str r0, [sp, #0x18] - mov r0, #0x10 - str r0, [sp, #0x24] - mov r0, #0x1 - str r0, [sp, #0x28] - mov r0, #0x2b - str r0, [sp, #0x34] - mov r0, #0x2d - str r0, [sp, #0x30] - mov r0, #0x2 - str r0, [sp, #0x2c] -_020CA530: - ldrsb r1, [r9, #0x0] - and r0, r1, #0xff - eor r0, r0, #0x20 - sub r0, r0, #0xa1 - cmp r0, #0x3c - bhs _020CA56C - add r0, sp, #0x54 - bl string_put_char - ldrsb r1, [r9, #0x1]! - cmp r1, #0x0 - beq _020CAD0C - add r0, sp, #0x54 - add r9, r9, #0x1 - bl string_put_char - b _020CAD0C -_020CA56C: - cmp r1, #0x25 - beq _020CA584 - add r0, sp, #0x54 - add r9, r9, #0x1 - bl string_put_char - b _020CAD0C -_020CA584: - ldr r6, [sp, #0x4] - ldr r5, [sp, #0x8] - ldr r2, [sp, #0xc] - ldr r0, [sp, #0x10] - mov r10, r6 - mov r3, r9 -_020CA59C: - ldrsb r4, [r9, #0x1]! - cmp r4, #0x20 - bgt _020CA5B4 - cmp r4, #0x20 - beq _020CA5F4 - b _020CA60C -_020CA5B4: - cmp r4, #0x30 - bgt _020CA60C - cmp r4, #0x2b - blt _020CA60C - cmp r4, #0x2b - beq _020CA5E0 - cmp r4, #0x2d - beq _020CA5FC - cmp r4, #0x30 - beq _020CA604 - b _020CA60C -_020CA5E0: - ldrsb r1, [r9, #-0x1] - cmp r1, #0x20 - bne _020CA60C - orr r6, r6, #0x2 - b _020CA59C -_020CA5F4: - orr r6, r6, #0x1 - b _020CA59C -_020CA5FC: - orr r6, r6, #0x8 - b _020CA59C -_020CA604: - orr r6, r6, #0x10 - b _020CA59C -_020CA60C: - cmp r4, #0x2a - bne _020CA640 - add r11, r11, #0x4 - ldr r10, [r11, #-0x4] - add r9, r9, #0x1 - cmp r10, #0x0 - rsblt r10, r10, #0x0 - orrlt r6, r6, #0x8 - b _020CA654 -_020CA630: - ldrsb r4, [r9], #0x1 - mov r1, #0xa - mla r1, r10, r1, r4 - sub r10, r1, #0x30 -_020CA640: - ldrsb r1, [r9, #0x0] - cmp r1, #0x30 - blt _020CA654 - cmp r1, #0x39 - ble _020CA630 -_020CA654: - ldrsb r1, [r9, #0x0] - cmp r1, #0x2e - bne _020CA6AC - ldrsb r1, [r9, #0x1]! - ldr r5, [sp, #0x4] - cmp r1, #0x2a - bne _020CA698 - add r11, r11, #0x4 - ldr r5, [r11, #-0x4] - add r9, r9, #0x1 - cmp r5, #0x0 - ldrlt r5, [sp, #0x8] - b _020CA6AC -_020CA688: - ldrsb r4, [r9], #0x1 - mov r1, #0xa - mla r1, r5, r1, r4 - sub r5, r1, #0x30 -_020CA698: - ldrsb r1, [r9, #0x0] - cmp r1, #0x30 - blt _020CA6AC - cmp r1, #0x39 - ble _020CA688 -_020CA6AC: - ldrsb r1, [r9, #0x0] - cmp r1, #0x68 - beq _020CA6C4 - cmp r1, #0x6c - beq _020CA6DC - b _020CA6F0 -_020CA6C4: - ldrsb r1, [r9, #0x1]! - cmp r1, #0x68 - orrne r6, r6, #0x40 - addeq r9, r9, #0x1 - orreq r6, r6, #0x100 - b _020CA6F0 -_020CA6DC: - ldrsb r1, [r9, #0x1]! - cmp r1, #0x6c - orrne r6, r6, #0x20 - addeq r9, r9, #0x1 - orreq r6, r6, #0x80 -_020CA6F0: - ldrsb r1, [r9, #0x0] - cmp r1, #0x69 - bgt _020CA740 - cmp r1, #0x63 - blt _020CA720 - cmp r1, #0x63 - beq _020CA7B4 - cmp r1, #0x64 - beq _020CA96C - cmp r1, #0x69 - beq _020CA96C - b _020CA950 -_020CA720: - cmp r1, #0x25 - bgt _020CA734 - cmp r1, #0x25 - beq _020CA934 - b _020CA950 -_020CA734: - cmp r1, #0x58 - beq _020CA7A0 - b _020CA950 -_020CA740: - cmp r1, #0x6e - bgt _020CA754 - cmp r1, #0x6e - beq _020CA8DC - b _020CA950 -_020CA754: - sub r1, r1, #0x6f - cmp r1, #0x9 - addls pc, pc, r1, lsl #0x2 - b _020CA950 -_020CA764: - b _020CA78C - b _020CA7A8 - b _020CA950 - b _020CA950 - b _020CA828 - b _020CA950 - b _020CA798 - b _020CA950 - b _020CA950 - b _020CA964 -_020CA78C: - ldr r2, [sp, #0x14] - orr r6, r6, #0x1000 - b _020CA96C -_020CA798: - orr r6, r6, #0x1000 - b _020CA96C -_020CA7A0: - ldr r0, [sp, #0x18] - b _020CA964 -_020CA7A8: - orr r6, r6, #0x4 - ldr r5, [sp, #0x14] - b _020CA964 -_020CA7B4: - cmp r5, #0x0 - bge _020CA950 - ands r0, r6, #0x8 - add r11, r11, #0x4 - ldr r4, [r11, #-0x4] - beq _020CA7F0 - mov r0, r4, lsl #0x18 - mov r1, r0, asr #0x18 - add r0, sp, #0x54 - bl string_put_char - ldr r1, [sp, #0x1c] - sub r2, r10, #0x1 - add r0, sp, #0x54 - bl string_fill_char - b _020CA820 -_020CA7F0: - ands r0, r6, #0x10 - ldrne r0, [sp, #0x20] - sub r2, r10, #0x1 - ldreq r0, [sp, #0x1c] - mov r0, r0, lsl #0x18 - mov r1, r0, asr #0x18 - add r0, sp, #0x54 - bl string_fill_char - mov r0, r4, lsl #0x18 - mov r1, r0, asr #0x18 - add r0, sp, #0x54 - bl string_put_char -_020CA820: - add r9, r9, #0x1 - b _020CAD0C -_020CA828: - add fp, fp, #0x4 - cmp r5, #0x0 - ldr r7, [sp, #0x4] - ldr r4, [fp, #-0x4] - bge _020CA860 - ldrsb r0, [r4] - cmp r0, #0x0 - beq _020CA874 -_020CA848: - add r7, r7, #0x1 - ldrsb r0, [r4, r7] - cmp r0, #0x0 - bne _020CA848 - b _020CA874 -_020CA85C: - add r7, r7, #0x1 -_020CA860: - cmp r7, r5 - bge _020CA874 - ldrsb r0, [r4, r7] - cmp r0, #0x0 - bne _020CA85C -_020CA874: - ands r0, r6, #0x8 - sub sl, sl, r7 - beq _020CA8A4 - mov r1, r4 - mov r2, r7 - add r0, sp, #0x54 - bl string_put_string - ldr r1, [sp, #0x1C] - mov r2, sl - add r0, sp, #0x54 - bl string_fill_char - b _020CA8D4 -_020CA8A4: - ands r0, r6, #0x10 - ldrne r0, [sp, #0x20] - mov r2, sl - ldreq r0, [sp, #0x1C] - mov r0, r0, lsl #0x18 - mov r1, r0, asr #0x18 - add r0, sp, #0x54 - bl string_fill_char - mov r1, r4 - mov r2, r7 - add r0, sp, #0x54 - bl string_put_string -_020CA8D4: - add r9, r9, #0x1 - b _020CAD0C -_020CA8DC: - ands r0, r6, #0x100 - ldr r1, [sp, #0x58] - ldr r0, [sp, #0x5c] - sub r2, r1, r0 - bne _020CA92C - ands r0, r6, #0x40 - addne r11, r11, #0x4 - ldrne r0, [r11, #-0x4] - strneh r2, [r0, #0x0] - bne _020CA92C - ands r0, r6, #0x80 - addeq r11, r11, #0x4 - ldreq r0, [r11, #-0x4] - streq r2, [r0, #0x0] - beq _020CA92C - add r11, r11, #0x4 - ldr r0, [r11, #-0x4] - mov r1, r2, asr #0x1f - str r2, [r0, #0x0] - str r1, [r0, #0x4] -_020CA92C: - add r9, r9, #0x1 - b _020CAD0C -_020CA934: - add r0, r3, #0x1 - cmp r0, r9 - bne _020CA950 - add r0, sp, #0x54 - add r9, r9, #0x1 - bl string_put_char - b _020CAD0C -_020CA950: - add r0, sp, #0x54 - mov r1, r3 - sub r2, r9, r3 - bl string_put_string - b _020CAD0C -_020CA964: - ldr r2, [sp, #0x24] - orr r6, r6, #0x1000 -_020CA96C: - ands r1, r6, #0x8 - bicne r6, r6, #0x10 - cmp r5, #0x0 - bicge r6, r6, #0x10 - ldrlt r5, [sp, #0x28] - ldr r7, [sp, #0x4] - ands r1, r6, #0x1000 - beq _020CAA20 - ands r1, r6, #0x100 - addne r11, r11, #0x4 - ldrneb r4, [r11, #-0x4] - movne r1, #0x0 - bne _020CA9D0 - ands r1, r6, #0x40 - addne r11, r11, #0x4 - ldrneh r4, [r11, #-0x4] - movne r1, #0x0 - bne _020CA9D0 - ands r1, r6, #0x80 - addne r11, r11, #0x8 - ldrne r1, [r11, #-0x4] - ldrne r4, [r11, #-0x8] - addeq r11, r11, #0x4 - ldreq r4, [r11, #-0x4] - moveq r1, #0x0 -_020CA9D0: - bic r6, r6, #0x3 - ands r3, r6, #0x4 - beq _020CAAD8 - cmp r2, #0x10 - bne _020CAA0C - mov r3, #0x0 - cmp r1, r3 - cmpeq r4, r3 - beq _020CAAD8 - ldr r3, [sp, #0x20] - ldr r7, [sp, #0x2c] - strb r3, [sp, #0x39] - add r3, r0, #0x21 - strb r3, [sp, #0x38] - b _020CAAD8 -_020CAA0C: - cmp r2, #0x8 - ldreq r3, [sp, #0x20] - ldreq r7, [sp, #0x28] - streqb r3, [sp, #0x38] - b _020CAAD8 -_020CAA20: - ands r1, r6, #0x100 - addne r11, r11, #0x4 - ldrnesb r4, [r11, #-0x4] - movne r1, r4, asr #0x1f - bne _020CAA64 - ands r1, r6, #0x40 - addne r11, r11, #0x4 - ldrnesh r4, [r11, #-0x4] - movne r1, r4, asr #0x1f - bne _020CAA64 - ands r1, r6, #0x80 - addne r11, r11, #0x8 - ldrne r4, [r11, #-0x8] - ldrne r1, [r11, #-0x4] - addeq r11, r11, #0x4 - ldreq r4, [r11, #-0x4] - moveq r1, r4, asr #0x1f -_020CAA64: - mov r3, #0x0 - and r8, r3, #0x0 - cmp r8, r3 - and r8, r1, #0x80000000 - cmpeq r8, r3 - beq _020CAAA0 - ldr r7, [sp, #0x30] - mvn r4, r4 - strb r7, [sp, #0x38] - mvn r7, r1 - mov r1, #0x1 - adds r4, r4, r1 - adc r1, r7, r3 - ldr r7, [sp, #0x28] - b _020CAAD8 -_020CAAA0: - cmp r1, r3 - cmpeq r4, r3 - bne _020CAAB4 - cmp r5, #0x0 - beq _020CAAD8 -_020CAAB4: - ands r3, r6, #0x2 - ldrne r3, [sp, #0x34] - ldrne r7, [sp, #0x28] - strneb r3, [sp, #0x38] - bne _020CAAD8 - ands r3, r6, #0x1 - ldrne r3, [sp, #0x1c] - ldrne r7, [sp, #0x28] - strneb r3, [sp, #0x38] -_020CAAD8: - cmp r2, #0x8 - ldr r8, [sp, #0x4] - beq _020CAAF8 - cmp r2, #0xa - beq _020CAB40 - cmp r2, #0x10 - beq _020CABDC - b _020CAC28 -_020CAAF8: - mov r0, #0x0 - cmp r1, r0 - cmpeq r4, r0 - beq _020CAC28 -_020CAB08: - and r0, r4, #0x7 - add r3, r0, #0x30 - add r0, sp, #0x3a - strb r3, [r0, r8] - mov r4, r4, lsr #0x3 - mov r2, #0x0 - mov r0, r1, lsr #0x3 - orr r4, r4, r1, lsl #0x1d - cmp r0, r2 - cmpeq r4, r2 - mov r1, r0 - add r8, r8, #0x1 - bne _020CAB08 - b _020CAC28 -_020CAB40: - mov r0, #0x0 - cmp r0, r0 - cmpeq r1, r0 - bne _020CAB8C - cmp r4, #0x0 - beq _020CAC28 -_020CAB58: - ldr r0, _020CAD60 ; =0xCCCCCCCD - umull r1, r0, r4, r0 - movs r0, r0, lsr #0x3 - mov r1, #0xa - mul r1, r0, r1 - sub r1, r4, r1 - mov r4, r0 - add r1, r1, #0x30 - add r0, sp, #0x3a - strb r1, [r0, r8] - add r8, r8, #0x1 - bne _020CAB58 - b _020CAC28 -_020CAB8C: - cmp r1, r0 - cmpeq r4, r0 - beq _020CAC28 -_020CAB98: - ldr r2, [sp, #0xc] - ldr r3, [sp, #0x4] - mov r0, r4 - bl _ll_udiv - mov r3, #0xa - umull r3, r12, r0, r3 - subs r3, r4, r3 - mov r2, #0x0 - add r4, r3, #0x30 - add r3, sp, #0x3a - strb r4, [r3, r8] - cmp r1, r2 - cmpeq r0, r2 - mov r4, r0 - add r8, r8, #0x1 - bne _020CAB98 - b _020CAC28 -_020CABDC: - mov r2, #0x0 - cmp r1, r2 - cmpeq r4, r2 - beq _020CAC28 -_020CABEC: - and r3, r4, #0xf - cmp r3, #0xa - mov r4, r4, lsr #0x4 - addlt r3, r3, #0x30 - mov r2, r1, lsr #0x4 - orr r4, r4, r1, lsl #0x1c - mov r1, r2 - addge r3, r3, r0 - add r2, sp, #0x3a - strb r3, [r2, r8] - mov r2, #0x0 - cmp r1, r2 - add r8, r8, #0x1 - cmpeq r4, r2 - bne _020CABEC -_020CAC28: - cmp r7, #0x0 - ble _020CAC4C - ldrsb r0, [sp, #0x38] - cmp r0, #0x30 - ldreq r1, [sp, #0x20] - addeq r0, sp, #0x3a - streqb r1, [r0, r8] - ldreq r7, [sp, #0x4] - addeq r8, r8, #0x1 -_020CAC4C: - sub r5, r5, r8 - ands r0, r6, #0x10 - beq _020CAC68 - sub r0, r10, r8 - sub r0, r0, r7 - cmp r5, r0 - movlt r5, r0 -_020CAC68: - cmp r5, #0x0 - subgt r10, r10, r5 - add r0, r7, r8 - ands r6, r6, #0x8 - sub r10, r10, r0 - bne _020CAC90 - ldr r1, [sp, #0x1c] - add r0, sp, #0x54 - mov r2, r10 - bl string_fill_char -_020CAC90: - cmp r7, #0x0 - ble _020CACB8 - add r0, sp, #0x38 - add r4, r0, r7 -_020CACA0: - ldrsb r1, [r4, #-0x1]! - sub r7, r7, #0x1 - add r0, sp, #0x54 - bl string_put_char -_020CACB0: - cmp r7, #0x0 - bgt _020CACA0 -_020CACB8: - ldr r1, [sp, #0x20] - mov r2, r5 - add r0, sp, #0x54 - bl string_fill_char -_020CACC8: - cmp r8, #0x0 - ble _020CACF0 - add r0, sp, #0x3A - add r4, r0, r8 -_020CACD8: - ldrsb r1, [r4, #-0x1]! - sub r8, r8, #0x1 - add r0, sp, #0x54 - bl string_put_char - cmp r8, #0x0 - bgt _020CACD8 -_020CACF0: - cmp r6, #0x0 - beq _020CAD08 - ldr r1, [sp, #0x1C] - mov r2, sl - add r0, sp, #0x54 - bl string_fill_char -_020CAD08: - add r9, r9, #0x1 -_020CAD0C: - ldrsb r0, [r9, #0x0] - cmp r0, #0x0 - bne _020CA530 -_020CAD18: - ldr r0, [sp, #0x54] - cmp r0, #0x0 - ldrne r0, [sp, #0x58] - movne r1, #0x0 - strneb r1, [r0, #0x0] - bne _020CAD48 - ldr r0, [sp, #0x0] - cmp r0, #0x0 - ldrne r1, [sp, #0x5c] - movne r2, #0x0 - addne r0, r1, r0 - strneb r2, [r0, #-0x1] -_020CAD48: - ldr r1, [sp, #0x58] - ldr r0, [sp, #0x5c] - sub r0, r1, r0 - add sp, sp, #0x64 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020CAD60: .word 0xCCCCCCCD - - arm_func_start OS_SNPrintf -OS_SNPrintf: ; 0x020CAD64 - stmdb sp!, {r0-r3} - stmdb sp!, {lr} - sub sp, sp, #0x4 - add r3, sp, #0x10 - bic r3, r3, #0x3 - ldr r2, [sp, #0x10] - add r3, r3, #0x4 - bl OS_VSNPrintf - add sp, sp, #0x4 - ldmia sp!, {lr} - add sp, sp, #0x10 - bx lr - - arm_func_start OS_VSPrintf -OS_VSPrintf: ; 0x020CAD94 - ldr ip, _020CADA8 ; =OS_VSNPrintf - mov r3, r2 - mov r2, r1 - mvn r1, #0x80000000 - bx r12 - .balign 4 -_020CADA8: .word OS_VSNPrintf - - arm_func_start OS_SPrintf -OS_SPrintf: ; 0x020CADAC - stmdb sp!, {r0-r3} - stmdb sp!, {lr} - sub sp, sp, #0x4 - add r2, sp, #0xc - bic r2, r2, #0x3 - ldr r1, [sp, #0xc] - add r2, r2, #0x4 - bl OS_VSPrintf - add sp, sp, #0x4 - ldmia sp!, {lr} - add sp, sp, #0x10 - bx lr - - arm_func_start string_put_string -string_put_string: ; 0x020CADDC - stmdb sp!, {r4,lr} - cmp r2, #0x0 - ldmleia sp!, {r4,lr} - bxle lr - ldr lr, [r0, #0x0] - mov r4, #0x0 - cmp lr, r2 - movhi lr, r2 - cmp lr, #0x0 - bls _020CAE1C -_020CAE04: - ldrsb r12, [r1, r4] - ldr r3, [r0, #0x4] - strb r12, [r3, r4] - add r4, r4, #0x1 - cmp r4, lr - blo _020CAE04 -_020CAE1C: - ldr r1, [r0, #0x0] - sub r1, r1, lr - str r1, [r0, #0x0] - ldr r1, [r0, #0x4] - add r1, r1, r2 - str r1, [r0, #0x4] - ldmia sp!, {r4,lr} - bx lr - - arm_func_start string_fill_char -string_fill_char: - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r2, #0x0 - addle sp, sp, #0x4 - ldmleia sp!, {lr} - bxle lr - ldr r12, [r0, #0x0] - mov lr, #0x0 - cmp r12, r2 - movhi r12, r2 - cmp r12, #0x0 - bls _020CAE80 -_020CAE6C: - ldr r3, [r0, #0x4] - strb r1, [r3, lr] - add lr, lr, #0x1 - cmp lr, r12 - blo _020CAE6C -_020CAE80: - ldr r1, [r0, #0x0] - sub r1, r1, r12 - str r1, [r0, #0x0] - ldr r1, [r0, #0x4] - add r1, r1, r2 - str r1, [r0, #0x4] - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start string_put_char -string_put_char: - ldr r2, [r0, #0x0] - cmp r2, #0x0 - ldrne r2, [r0, #0x4] - strneb r1, [r2, #0x0] - ldrne r1, [r0, #0x0] - subne r1, r1, #0x1 - strne r1, [r0, #0x0] - ldr r1, [r0, #0x4] - add r1, r1, #0x1 - str r1, [r0, #0x4] - bx lr diff --git a/arm9/asm/OS_spinLock.s b/arm9/asm/OS_spinLock.s index 36ab2cf5..3137a69b 100644 --- a/arm9/asm/OS_spinLock.s +++ b/arm9/asm/OS_spinLock.s @@ -272,7 +272,7 @@ FUN_020CA358: ; 0x020CA358 mov r4, #0x400 _020CA380: mov r0, r4 - blx SVC_WaitByLoop + bl SVC_WaitByLoop mov r0, r8 mov r1, r7 mov r2, r6 @@ -307,7 +307,7 @@ OS_InitLock: ; 0x020CA3AC mov r4, #0x400 _020CA3FC: mov r0, r4 - blx SVC_WaitByLoop + bl SVC_WaitByLoop ldrh r0, [r5, #0x6] cmp r0, #0x0 bne _020CA3FC diff --git a/arm9/asm/arm9_itcm.s b/arm9/asm/arm9_itcm.s index 79c0de28..7db3d194 100644 --- a/arm9/asm/arm9_itcm.s +++ b/arm9/asm/arm9_itcm.s @@ -1,6 +1,6 @@ .include "asm/macros.inc" .include "global.inc" - .section .itcm + .section .text ; OS arm_func_start OS_IrqHandler @@ -125,7 +125,7 @@ _01FF81A8: .word OSi_ThreadInfo _01FF81AC: .word CP_SaveContext _01FF81B0: .word CP_RestoreContext - .section .itcm + .section .text arm_func_start OSi_DoBoot OSi_DoBoot: ; 0x01FF81B4 mov ip, #0x04000000 diff --git a/arm9/asm/crt0.s b/arm9/asm/crt0.s index 05a91b28..65084858 100644 --- a/arm9/asm/crt0.s +++ b/arm9/asm/crt0.s @@ -73,7 +73,7 @@ _020008C4: bl _fp_init bl NitroStartUp bl __call_static_initializers - ldr r1, _02000934 ; =0x02000C55 + ldr r1, _02000934 ; =NitroMain ldr lr, _02000938 ; =0xFFFF0000 tst sp, #4 subne sp, sp, #4 diff --git a/arm9/asm/filesystem.s b/arm9/asm/filesystem.s index 75af021d..a52f38b9 100644 --- a/arm9/asm/filesystem.s +++ b/arm9/asm/filesystem.s @@ -18,31 +18,31 @@ ReadNARCFile: ; 0x02006314 add r0, sp, #0x18
add r5, r2, #0x0
str r3, [sp, #0x4]
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x18
add r1, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, sp, #0x18
mov r1, #0xc
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r4, [sp, #0x14]
add r0, sp, #0x18
add r1, r4, #0x4
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0x8
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x8
ldrh r0, [r0, #0x0]
cmp r0, r5
@@ -54,26 +54,26 @@ _0200637A: add r6, r4, r0
add r0, sp, #0x18
add r1, r6, #0x4
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r4, #0xc
lsl r1, r5, #0x3
add r0, sp, #0x18
add r1, r4, r1
mov r2, #0x0
ldr r7, [sp, #0x14]
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x10
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0xc
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r2, r6, r7
ldr r1, [sp, #0x10]
add r2, #0x8
@@ -82,7 +82,7 @@ _0200637A: add r0, sp, #0x18
add r1, r1, r2
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r0, [sp, #0x78]
cmp r0, #0x0
bne _020063D6
@@ -98,9 +98,9 @@ _020063E0: ldr r1, [sp, #0x0]
ldr r2, [sp, #0x14]
add r0, sp, #0x18
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
- blx FS_CloseFile
+ bl FS_CloseFile
add sp, #0x60
pop {r3-r7, pc}
@@ -119,31 +119,31 @@ LoadFileIntoMemory: ; 0x020063F4 add r0, sp, #0x18
str r2, [sp, #0x0]
str r3, [sp, #0x4]
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x18
add r1, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, sp, #0x18
mov r1, #0xc
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r4, [sp, #0x14]
add r0, sp, #0x18
add r1, r4, #0x4
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0x8
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x8
ldrh r0, [r0, #0x0]
cmp r0, r5
@@ -155,26 +155,26 @@ _0200645A: add r6, r4, r0
add r0, sp, #0x18
add r1, r6, #0x4
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r4, #0xc
lsl r1, r5, #0x3
add r0, sp, #0x18
add r1, r4, r1
mov r2, #0x0
ldr r7, [sp, #0x14]
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x10
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0xc
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r2, r6, r7
ldr r1, [sp, #0x10]
add r2, #0x8
@@ -183,7 +183,7 @@ _0200645A: add r0, sp, #0x18
add r1, r1, r2
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r0, [sp, #0x78]
cmp r0, #0x0
bne _020064B6
@@ -212,9 +212,9 @@ _020064D8: ldr r2, [sp, #0x14]
add r0, sp, #0x18
add r1, r4, #0x0
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
- blx FS_CloseFile
+ bl FS_CloseFile
add r0, r4, #0x0
add sp, #0x60
pop {r3-r7, pc}
@@ -329,33 +329,33 @@ LoadFromNARC_7: ; 0x020065A4 add r0, sp, #0x0
strh r1, [r0, #0x0]
add r0, sp, #0x10
- blx FS_InitFile
+ bl FS_InitFile
ldr r1, _0200666C ; =0x021058A0
lsl r2, r4, #0x2
ldr r1, [r1, r2]
add r0, sp, #0x10
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, sp, #0x10
mov r1, #0xc
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0xc
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r4, [sp, #0xc]
add r0, sp, #0x10
add r1, r4, #0x4
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0xc
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x10
add r1, sp, #0x0
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x0
ldrh r0, [r0, #0x0]
cmp r0, r5
@@ -367,33 +367,33 @@ _0200660A: add r6, r4, r0
add r0, sp, #0x10
add r1, r6, #0x4
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0xc
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r4, #0xc
lsl r1, r5, #0x3
add r0, sp, #0x10
add r1, r4, r1
mov r2, #0x0
ldr r7, [sp, #0xc]
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0x8
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x10
add r1, sp, #0x4
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r2, r6, r7
ldr r1, [sp, #0x8]
add r2, #0x8
add r1, r2, r1
add r0, sp, #0x10
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r1, [sp, #0x4]
ldr r0, [sp, #0x8]
sub r0, r1, r0
@@ -418,46 +418,46 @@ FUN_02006670: ; 0x02006670 beq _020066EC
mov r1, #0x0
str r1, [r4, #0x48]
- blx FS_InitFile
+ bl FS_InitFile
ldr r1, _020066F0 ; =0x021058A0
lsl r2, r5, #0x2
ldr r1, [r1, r2]
add r0, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, r4, #0x0
mov r1, #0xc
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r1, r4, #0x0
add r0, r4, #0x0
add r1, #0x48
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r1, [r4, #0x48]
add r0, r4, #0x0
add r1, r1, #0x4
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r4, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r1, r4, #0x0
add r0, r4, #0x0
add r1, #0x50
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r1, [r4, #0x48]
ldr r0, [sp, #0x0]
mov r2, #0x0
add r5, r1, r0
add r0, r4, #0x0
add r1, r5, #0x4
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r4, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r0, [sp, #0x0]
add r0, r5, r0
str r0, [r4, #0x4c]
@@ -471,7 +471,7 @@ _020066F0: .word 0x021058A0 FUN_020066F4: ; 0x020066F4
push {r4, lr}
add r4, r0, #0x0
- blx FS_CloseFile
+ bl FS_CloseFile
add r0, r4, #0x0
bl FUN_02016A18
pop {r4, pc}
@@ -495,22 +495,22 @@ _0200671A: add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x4
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r2, [r5, #0x4c]
ldr r1, [sp, #0x4]
add r2, #0x8
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r2, [sp, #0x0]
ldr r1, [sp, #0x4]
add r0, r6, #0x0
@@ -523,7 +523,7 @@ _0200671A: add r0, r5, #0x0
add r1, r4, #0x0
sub r2, r3, r2
- blx FS_ReadFile
+ bl FS_ReadFile
_0200676C:
add r0, r4, #0x0
add sp, #0x8
@@ -549,28 +549,28 @@ _0200678A: add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x4
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r2, [r5, #0x4c]
ldr r1, [sp, #0x4]
add r2, #0x8
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r3, [sp, #0x0]
ldr r2, [sp, #0x4]
add r0, r5, #0x0
add r1, r6, #0x0
sub r2, r3, r2
- blx FS_ReadFile
+ bl FS_ReadFile
add sp, #0x8
pop {r4-r6, pc}
@@ -592,15 +592,15 @@ _020067E4: add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x4
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r1, [sp, #0x0]
ldr r0, [sp, #0x4]
sub r0, r1, r0
@@ -627,11 +627,11 @@ _0200682A: add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r2, [r5, #0x4c]
ldr r1, [sp, #0x0]
add r2, #0x8
@@ -639,10 +639,10 @@ _0200682A: add r0, r5, #0x0
add r1, r6, r1
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r1, [sp, #0x18]
add r0, r5, #0x0
add r2, r7, #0x0
- blx FS_ReadFile
+ bl FS_ReadFile
pop {r3-r7, pc}
.balign 4
diff --git a/arm9/asm/libcard.s b/arm9/asm/libcard.s index 959c6f64..1eb74e0d 100644 --- a/arm9/asm/libcard.s +++ b/arm9/asm/libcard.s @@ -1637,7 +1637,7 @@ _020D7BEC: ; 0x020D7BEC mov r4, #0x0 _020D7C04: mov r0, r6 - blx SVC_WaitByLoop + bl SVC_WaitByLoop mov r0, r5 mov r1, r7 mov r2, r4 diff --git a/arm9/asm/libctrdg.s b/arm9/asm/libctrdg.s index 301ea233..6d8cf4a5 100644 --- a/arm9/asm/libctrdg.s +++ b/arm9/asm/libctrdg.s @@ -333,7 +333,7 @@ _020DB520: ; 0x020DB520 mov r4, #0x0 _020DB53C: mov r0, r6 - blx SVC_WaitByLoop + bl SVC_WaitByLoop mov r0, r5 mov r1, r7 mov r2, r4 @@ -389,7 +389,7 @@ _020DB5DC: ; 0x020DB5DC ldr r0, [r6, #0x4] bl OS_RestoreInterrupts mov r0, r4 - blx SVC_WaitByLoop + bl SVC_WaitByLoop b _020DB5A8 _020DB600: ; 0x020DB600 add sp, sp, #0x4 @@ -666,7 +666,7 @@ CTRDGi_InitCommon: ; 0x020DB938 ldr r2, _020DB974 ; =0x05000001 add r0, sp, #0x0 str r3, [sp, #0x0] - blx FUN_020002FE + bl FUN_020002FE bl OS_GetLockID ldr r1, _020DB970 ; =0x021D6944 strh r0, [r1, #0x2] @@ -872,7 +872,7 @@ _020DBBDC: mov r7, #0x1 _020DBC1C: mov r0, r7 - blx SVC_WaitByLoop + bl SVC_WaitByLoop ldrh r0, [r5, #0x0] cmp r0, #0x1 bne _020DBC1C diff --git a/arm9/asm/libdgt.s b/arm9/asm/libdgt.s deleted file mode 100644 index 02a3293f..00000000 --- a/arm9/asm/libdgt.s +++ /dev/null @@ -1,1017 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .text - - arm_func_start ProcessBlock -ProcessBlock: ; 0x020D2798 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - add r3, r0, #0x18 - ldr r5, [r0, #0x0] - ldr r4, [r0, #0x4] - ldr lr, [r0, #0x8] - ldr r12, [r0, #0xc] - ldr r2, _020D2B78 ; =0x02106900 - mov r8, r3 - mov r7, #0x0 -_020D27C0: - mvn r1, r4 - and r6, r4, lr - and r1, r1, r12 - orr r1, r6, r1 - ldr r6, [r8, #0x0] - add r1, r5, r1 - ldr r5, [r2, #0x0] - add r1, r6, r1 - add r5, r5, r1 - mov r1, r5, lsl #0x7 - orr r1, r1, r5, lsr #0x19 - add r5, r4, r1 - mvn r1, r5 - and r6, r5, r4 - and r1, r1, lr - orr r1, r6, r1 - ldr r6, [r8, #0x4] - add r1, r12, r1 - ldr r9, [r2, #0x4] - add r1, r6, r1 - add r6, r9, r1 - mov r1, r6, lsl #0xc - orr r1, r1, r6, lsr #0x14 - add r12, r5, r1 - mvn r1, r12 - and r6, r12, r5 - and r1, r1, r4 - orr r6, r6, r1 - add r1, r8, #0xc - ldr r9, [r8, #0x8] - add r6, lr, r6 - add r6, r9, r6 - ldr r9, [r2, #0x8] - ldr r1, [r1, #0x0] - add r10, r9, r6 - add r6, r2, #0xc - ldr r6, [r6, #0x0] - mov r9, r10, lsl #0x11 - orr r9, r9, r10, lsr #0xf - add lr, r12, r9 - add r2, r2, #0x10 - add r8, r8, #0x10 - and r10, lr, r12 - mvn r9, lr - and r9, r9, r5 - orr r9, r10, r9 - add r4, r4, r9 - add r1, r1, r4 - add r4, r6, r1 - mov r1, r4, lsl #0x16 - orr r1, r1, r4, lsr #0xa - add r4, lr, r1 - add r7, r7, #0x1 - cmp r7, #0x4 - blt _020D27C0 - ldr r6, _020D2B7C ; =0x02106840 - mov r1, #0x0 -_020D28A4: - mvn r7, r12 - ldr r9, [r6, #0x0] - and r8, r4, r12 - and r7, lr, r7 - orr r7, r8, r7 - ldr r8, [r3, r9, lsl #0x2] - add r5, r5, r7 - ldr r7, [r2, #0x0] - add r5, r8, r5 - add r7, r7, r5 - mov r5, r7, lsl #0x5 - orr r5, r5, r7, lsr #0x1b - add r5, r4, r5 - mvn r8, lr - ldr r7, [r6, #0x4] - and r9, r5, lr - and r8, r4, r8 - orr r10, r9, r8 - mvn r8, r4 - ldr r9, [r6, #0x8] - ldr r11, [r3, r7, lsl #0x2] - add r7, r12, r10 - add r10, r11, r7 - add r7, r6, #0xc - ldr r9, [r3, r9, lsl #0x2] - and r8, r5, r8 - ldr r7, [r7, #0x0] - ldr r11, [r2, #0x4] - ldr r7, [r3, r7, lsl #0x2] - add r11, r11, r10 - mov r10, r11, lsl #0x9 - orr r10, r10, r11, lsr #0x17 - add r12, r5, r10 - ldr r10, [r2, #0x8] - and r11, r12, r4 - orr r8, r11, r8 - add r8, lr, r8 - add r8, r9, r8 - add r10, r10, r8 - add r8, r2, #0xc - ldr r8, [r8, #0x0] - mov r9, r10, lsl #0xe - orr r9, r9, r10, lsr #0x12 - add lr, r12, r9 - add r2, r2, #0x10 - add r6, r6, #0x10 - and r10, lr, r5 - mvn r9, r5 - and r9, r12, r9 - orr r9, r10, r9 - add r4, r4, r9 - add r4, r7, r4 - add r7, r8, r4 - mov r4, r7, lsl #0x14 - orr r4, r4, r7, lsr #0xc - add r4, lr, r4 - add r1, r1, #0x1 - cmp r1, #0x4 - blt _020D28A4 - mov r7, #0x0 -_020D2994: - ldr r8, [r6, #0x0] - eor r1, r4, lr - eor r1, r12, r1 - add r1, r5, r1 - ldr r8, [r3, r8, lsl #0x2] - ldr r5, [r2, #0x0] - add r1, r8, r1 - add r5, r5, r1 - mov r1, r5, lsl #0x4 - orr r1, r1, r5, lsr #0x1c - add r5, r4, r1 - ldr r8, [r6, #0x4] - eor r1, r5, r4 - eor r1, lr, r1 - ldr r8, [r3, r8, lsl #0x2] - add r1, r12, r1 - ldr r9, [r6, #0x8] - ldr r10, [r2, #0x4] - add r1, r8, r1 - add r8, r10, r1 - mov r1, r8, lsl #0xb - orr r1, r1, r8, lsr #0x15 - add r12, r5, r1 - eor r8, r12, r5 - eor r8, r4, r8 - ldr r9, [r3, r9, lsl #0x2] - add r8, lr, r8 - add r9, r9, r8 - ldr r10, [r2, #0x8] - add r1, r2, #0xc - ldr r8, [r6, #0xc] - add r10, r10, r9 - ldr r9, [r3, r8, lsl #0x2] - mov r8, r10, lsl #0x10 - orr r8, r8, r10, lsr #0x10 - add lr, r12, r8 - eor r8, lr, r12 - eor r8, r5, r8 - add r4, r4, r8 - add r7, r7, #0x1 - ldr r1, [r1, #0x0] - add r4, r9, r4 - add r4, r1, r4 - mov r1, r4, lsl #0x17 - orr r1, r1, r4, lsr #0x9 - add r2, r2, #0x10 - add r6, r6, #0x10 - add r4, lr, r1 - cmp r7, #0x4 - blt _020D2994 - mov r10, #0x0 -_020D2A60: - mvn r1, r12 - ldr r7, [r6, #0x0] - orr r1, r4, r1 - eor r1, lr, r1 - ldr r7, [r3, r7, lsl #0x2] - add r1, r5, r1 - ldr r5, [r2, #0x0] - add r1, r7, r1 - add r5, r5, r1 - mov r1, r5, lsl #0x6 - orr r1, r1, r5, lsr #0x1a - add r5, r4, r1 - mvn r1, lr - ldr r7, [r6, #0x4] - orr r1, r5, r1 - eor r1, r4, r1 - ldr r8, [r6, #0x8] - ldr r7, [r3, r7, lsl #0x2] - add r1, r12, r1 - ldr r9, [r2, #0x4] - add r1, r7, r1 - add r9, r9, r1 - mov r7, r9, lsl #0xa - add r1, r6, #0xc - orr r9, r7, r9, lsr #0x16 - ldr r1, [r1, #0x0] - add r7, r2, #0xc - add r12, r5, r9 - ldr r8, [r3, r8, lsl #0x2] - ldr r7, [r7, #0x0] - ldr r1, [r3, r1, lsl #0x2] - ldr r9, [r2, #0x8] - mvn r11, r4 - orr r11, r12, r11 - eor r11, r5, r11 - add r11, lr, r11 - add r8, r8, r11 - add r9, r9, r8 - mov r8, r9, lsl #0xf - orr r8, r8, r9, lsr #0x11 - add lr, r12, r8 - add r2, r2, #0x10 - add r6, r6, #0x10 - mvn r8, r5 - orr r8, lr, r8 - eor r8, r12, r8 - add r4, r4, r8 - add r1, r1, r4 - add r4, r7, r1 - mov r1, r4, lsl #0x15 - orr r1, r1, r4, lsr #0xb - add r4, lr, r1 - add r10, r10, #0x1 - cmp r10, #0x4 - blt _020D2A60 - ldr r1, [r0, #0x0] - add r1, r1, r5 - str r1, [r0, #0x0] - ldr r1, [r0, #0x4] - add r1, r1, r4 - str r1, [r0, #0x4] - ldr r1, [r0, #0x8] - add r1, r1, lr - str r1, [r0, #0x8] - ldr r1, [r0, #0xc] - add r1, r1, r12 - str r1, [r0, #0xc] - add sp, sp, #0x4 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020D2B78: .word Unk_02106900 ; = 0x02106900 -_020D2B7C: .word Unk_02106840 ; = 0x02106840 - - arm_func_start DGT_Hash1GetDigest_R -DGT_Hash1GetDigest_R: ; 0x020D2B80 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r6, r1 - ldr r1, [r6, #0x14] - ldr r3, [r6, #0x10] - mov r7, r0 - mov r4, r1, lsl #0x3 - ldr r1, _020D2C40 ; =0x0210683C - mov r0, r6 - mov r2, #0x1 - orr r4, r4, r3, lsr #0x1d - mov r5, r3, lsl #0x3 - bl DGT_Hash1SetSource - ldr r0, [r6, #0x10] - mov r1, #0x0 - and r3, r0, #0x3f - rsb r2, r3, #0x40 - cmp r2, #0x8 - bhs _020D2BE8 - add r0, r6, #0x18 - add r0, r0, r3 - bl MI_CpuFill8 - mov r0, r6 - bl ProcessBlock - mov r3, #0x0 - mov r2, #0x40 -_020D2BE8: - cmp r2, #0x8 - bls _020D2C04 - add r0, r6, #0x18 - add r0, r0, r3 - sub r2, r2, #0x8 - mov r1, #0x0 - bl MI_CpuFill8 -_020D2C04: - str r5, [r6, #0x50] - mov r0, r6 - str r4, [r6, #0x54] - bl ProcessBlock - mov r0, r6 - mov r1, r7 - mov r2, #0x10 - bl MI_CpuCopy8 - mov r0, r6 - mov r1, #0x0 - mov r2, #0x58 - bl MI_CpuFill8 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_020D2C40: .word Unk_0210683C ; = 0x0210683C - - arm_func_start DGT_Hash1SetSource -DGT_Hash1SetSource: ; 0x020D2C44 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r8, r0 - add r12, r8, #0x10 - ldr r4, [r8, #0x10] - mov r6, r2 - and r3, r4, #0x3f - ldr r0, [r12, #0x4] - adds r4, r4, r6 - str r4, [r8, #0x10] - adc r0, r0, #0x0 - rsb r5, r3, #0x40 - mov r7, r1 - str r0, [r12, #0x4] - cmp r5, r6 - bls _020D2CB0 - cmp r6, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - add r1, r8, #0x18 - mov r0, r7 - add r1, r1, r3 - bl MI_CpuCopy8 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr -_020D2CB0: - add r1, r8, #0x18 - mov r0, r7 - mov r2, r5 - add r1, r1, r3 - bl MI_CpuCopy8 - mov r0, r8 - bl ProcessBlock - sub r6, r6, r5 - mov r4, r6, lsr #0x6 - cmp r4, #0x0 - add r9, r7, r5 - ble _020D2D10 - add r7, r8, #0x18 - mov r5, #0x40 -_020D2CE8: - mov r0, r9 - mov r1, r7 - mov r2, r5 - bl MI_CpuCopy8 - mov r0, r8 - add r9, r9, #0x40 - bl ProcessBlock - sub r4, r4, #0x1 - cmp r4, #0x0 - bgt _020D2CE8 -_020D2D10: - ands r2, r6, #0x3f - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - mov r0, r9 - add r1, r8, #0x18 - bl MI_CpuCopy8 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start DGT_Hash1Reset -DGT_Hash1Reset: ; 0x020D2D38 - ldr r2, _020D2D68 ; =0x67452301 - ldr r1, _020D2D6C ; =0xEFCDAB89 - str r2, [r0, #0x0] - ldr r2, _020D2D70 ; =0x98BADCFE - str r1, [r0, #0x4] - ldr r1, _020D2D74 ; =0x10325476 - str r2, [r0, #0x8] - str r1, [r0, #0xc] - mov r1, #0x0 - str r1, [r0, #0x10] - str r1, [r0, #0x14] - bx lr - .balign 4 -_020D2D68: .word 0x67452301 -_020D2D6C: .word 0xEFCDAB89 -_020D2D70: .word 0x98BADCFE -_020D2D74: .word 0x10325476 - - arm_func_start DGT_Hash2CalcHmac -DGT_Hash2CalcHmac: ; 0x020D2D78 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0xa0 - ldr lr, _020D2E00 ; =0x02106A04 - add r12, sp, #0x1c - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, r3 - mov r4, r12 - ldmia lr!, {r0-r3} - stmia r12!, {r0-r3} - ldmia lr, {r0-r2} - stmia r12, {r0-r2} - add lr, sp, #0x38 - add r12, sp, #0x8 - str lr, [sp, #0x24] - ldr lr, _020D2E04 ; =MATH_SHA1Init - str r12, [sp, #0x28] - ldr ip, _020D2E08 ; =MATH_SHA1Update - str lr, [sp, #0x2c] - ldr lr, _020D2E0C ; =MATH_SHA1GetHash - str r12, [sp, #0x30] - ldr r12, [sp, #0xb8] - str lr, [sp, #0x34] - str r12, [sp, #0x0] - mov r3, r5 - mov r0, r8 - mov r1, r7 - mov r2, r6 - str r4, [sp, #0x4] - bl MATHi_CalcHMAC - add sp, sp, #0xa0 - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_020D2E00: .word Unk_02106A04 ; = 0x02106A04 -_020D2E04: .word MATH_SHA1Init -_020D2E08: .word MATH_SHA1Update -_020D2E0C: .word MATH_SHA1GetHash - - arm_func_start MATH_SHA1GetHash -MATH_SHA1GetHash: ; 0x020D2E10 - stmdb sp!, {r0-r3} - stmdb sp!, {r4-r6,lr} - ldr r0, [sp, #0x10] - mov r6, r1 - ldr r3, [r0, #0x1c] - add r5, r0, #0x20 - ands r1, r3, #0x3 - mov r0, r3, asr #0x2 - moveq r1, #0x0 - streq r1, [r5, r0, lsl #0x2] - ldr r2, [sp, #0x10] - mov r1, #0x80 - add r4, r2, #0x20 - strb r1, [r4, r3] - add r3, r3, #0x1 - ands r1, r3, #0x3 - beq _020D2E68 - mov r2, #0x0 -_020D2E58: - strb r2, [r4, r3] - add r3, r3, #0x1 - ands r1, r3, #0x3 - bne _020D2E58 -_020D2E68: - ldr r1, [sp, #0x10] - add r0, r0, #0x1 - ldr r1, [r1, #0x1c] - cmp r1, #0x38 - blt _020D2EB4 - cmp r0, #0x10 - bge _020D2E98 - mov r1, #0x0 -_020D2E88: - str r1, [r5, r0, lsl #0x2] - add r0, r0, #0x1 - cmp r0, #0x10 - blt _020D2E88 -_020D2E98: - ldr r1, _020D3008 ; =0x02106A00 - ldr r0, [sp, #0x10] - ldr r3, [r1, #0x0] - mov r1, r5 - mov r2, #0x40 - blx r3 - mov r0, #0x0 -_020D2EB4: - cmp r0, #0xe - bge _020D2ED0 - mov r1, #0x0 -_020D2EC0: - str r1, [r5, r0, lsl #0x2] - add r0, r0, #0x1 - cmp r0, #0xe - blt _020D2EC0 -_020D2ED0: - ldr r0, [sp, #0x10] - mov r1, r5 - ldr r2, [r0, #0x14] - ldr r3, _020D3008 ; =0x02106A00 - strb r2, [r4, #0x3f] - mov r0, r2, lsr #0x8 - strb r0, [r4, #0x3e] - mov r0, r2, lsr #0x10 - strb r0, [r4, #0x3d] - mov r0, r2, lsr #0x18 - strb r0, [r4, #0x3c] - ldr r0, [sp, #0x10] - mov r2, #0x40 - ldr r5, [r0, #0x18] - strb r5, [r4, #0x3b] - mov r0, r5, lsr #0x8 - strb r0, [r4, #0x3a] - mov r0, r5, lsr #0x10 - strb r0, [r4, #0x39] - mov r0, r5, lsr #0x18 - strb r0, [r4, #0x38] - ldr r0, [sp, #0x10] - ldr r3, [r3, #0x0] - blx r3 - ldr r0, [sp, #0x10] - add r1, sp, #0x10 - ldr r3, [r0, #0x0] - mov r0, #0x0 - mov r2, r3, lsr #0x18 - strb r2, [r6, #0x0] - mov r2, r3, lsr #0x10 - strb r2, [r6, #0x1] - mov r2, r3, lsr #0x8 - strb r2, [r6, #0x2] - strb r3, [r6, #0x3] - ldr r3, [sp, #0x10] - mov r2, #0x4 - ldr r4, [r3, #0x4] - mov r3, r4, lsr #0x18 - strb r3, [r6, #0x4] - mov r3, r4, lsr #0x10 - strb r3, [r6, #0x5] - mov r3, r4, lsr #0x8 - strb r3, [r6, #0x6] - strb r4, [r6, #0x7] - ldr r3, [sp, #0x10] - ldr r4, [r3, #0x8] - mov r3, r4, lsr #0x18 - strb r3, [r6, #0x8] - mov r3, r4, lsr #0x10 - strb r3, [r6, #0x9] - mov r3, r4, lsr #0x8 - strb r3, [r6, #0xa] - strb r4, [r6, #0xb] - ldr r3, [sp, #0x10] - ldr r4, [r3, #0xc] - mov r3, r4, lsr #0x18 - strb r3, [r6, #0xc] - mov r3, r4, lsr #0x10 - strb r3, [r6, #0xd] - mov r3, r4, lsr #0x8 - strb r3, [r6, #0xe] - strb r4, [r6, #0xf] - ldr r3, [sp, #0x10] - ldr r4, [r3, #0x10] - mov r3, r4, lsr #0x18 - strb r3, [r6, #0x10] - mov r3, r4, lsr #0x10 - strb r3, [r6, #0x11] - mov r3, r4, lsr #0x8 - strb r3, [r6, #0x12] - strb r4, [r6, #0x13] - ldr r3, [sp, #0x10] - str r0, [r3, #0x1c] - bl MIi_CpuClear32 - ldmia sp!, {r4-r6,lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_020D3008: .word Unk_02106A00 ; = 0x02106A00 - - arm_func_start MATH_SHA1Update -MATH_SHA1Update: ; 0x020D300C - stmdb sp!, {r4-r8,lr} - mov r8, r0 - movs r6, r2 - mov r7, r1 - add r5, r8, #0x20 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - ldr r0, [r8, #0x14] - add r1, r0, r6, lsl #0x3 - cmp r1, r0 - ldrcc r0, [r8, #0x18] - addcc r0, r0, #0x1 - strcc r0, [r8, #0x18] - ldr r0, [r8, #0x18] - add r0, r0, r6, lsr #0x1d - str r0, [r8, #0x18] - str r1, [r8, #0x14] - ldr r1, [r8, #0x1c] - cmp r1, #0x0 - beq _020D30CC - add r0, r1, r6 - cmp r0, #0x40 - blo _020D30A8 - rsb r4, r1, #0x40 - mov r0, r7 - mov r2, r4 - add r1, r5, r1 - bl MI_CpuCopy8 - ldr r1, _020D3164 ; =0x02106A00 - mov r0, r8 - ldr r3, [r1, #0x0] - mov r1, r5 - mov r2, #0x40 - sub r6, r6, r4 - add r7, r7, r4 - blx r3 - mov r0, #0x0 - str r0, [r8, #0x1c] - b _020D30CC -_020D30A8: - mov r0, r7 - mov r2, r6 - add r1, r5, r1 - bl MI_CpuCopy8 - ldr r0, [r8, #0x1c] - add r0, r0, r6 - str r0, [r8, #0x1c] - ldmia sp!, {r4-r8,lr} - bx lr -_020D30CC: - cmp r6, #0x40 - blo _020D313C - bic r4, r6, #0x3f - sub r6, r6, r4 - ands r0, r7, #0x3 - bne _020D3104 - ldr r1, _020D3164 ; =0x02106A00 - mov r0, r8 - ldr r3, [r1, #0x0] - mov r1, r7 - mov r2, r4 - blx r3 - add r7, r7, r4 - b _020D313C -_020D3104: - mov r0, r7 - mov r1, r5 - mov r2, #0x40 - bl MI_CpuCopy8 - ldr r1, _020D3164 ; =0x02106A00 - mov r0, r8 - ldr r3, [r1, #0x0] - mov r1, r5 - mov r2, #0x40 - add r7, r7, #0x40 - blx r3 - sub r4, r4, #0x40 - cmp r4, #0x0 - bgt _020D3104 -_020D313C: - str r6, [r8, #0x1c] - cmp r6, #0x0 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - mov r0, r7 - mov r1, r5 - mov r2, r6 - bl MI_CpuCopy8 - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_020D3164: .word Unk_02106A00 ; = 0x02106A00 - - arm_func_start MATH_SHA1Init -MATH_SHA1Init: ; 0x020D3168 - ldr r1, _020D31A4 ; =0x67452301 - ldr r2, _020D31A8 ; =0xEFCDAB89 - str r1, [r0, #0x0] - ldr r1, _020D31AC ; =0x98BADCFE - str r2, [r0, #0x4] - ldr r2, _020D31B0 ; =0x10325476 - str r1, [r0, #0x8] - ldr r1, _020D31B4 ; =0xC3D2E1F0 - str r2, [r0, #0xc] - str r1, [r0, #0x10] - mov r1, #0x0 - str r1, [r0, #0x14] - str r1, [r0, #0x18] - str r1, [r0, #0x1c] - bx lr - .balign 4 -_020D31A4: .word 0x67452301 -_020D31A8: .word 0xEFCDAB89 -_020D31AC: .word 0x98BADCFE -_020D31B0: .word 0x10325476 -_020D31B4: .word 0xC3D2E1F0 - - arm_func_start MATHi_CalcHMAC -MATHi_CalcHMAC: ; 0x020D31B8 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0xc4 - ldr r5, [sp, #0xe0] - ldr r4, [sp, #0xe4] - movs r9, r0 - mov r8, r1 - mov r7, r2 - mov r6, r3 - addeq sp, sp, #0xc4 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - cmp r8, #0x0 - addeq sp, sp, #0xc4 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - cmp r7, #0x0 - addeq sp, sp, #0xc4 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - cmp r6, #0x0 - addeq sp, sp, #0xc4 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - cmp r5, #0x0 - addeq sp, sp, #0xc4 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - cmp r4, #0x0 - addeq sp, sp, #0xc4 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - ldr r0, [r4, #0x4] - cmp r5, r0 - ble _020D3278 - ldr r0, [r4, #0x8] - ldr r1, [r4, #0x10] - blx r1 - ldr r0, [r4, #0x8] - ldr r3, [r4, #0x14] - mov r1, r6 - mov r2, r5 - blx r3 - ldr r0, [r4, #0x8] - ldr r2, [r4, #0x18] - add r1, sp, #0x0 - blx r2 - ldr r5, [r4, #0x0] - add r6, sp, #0x0 -_020D3278: - cmp r5, #0x0 - mov r0, #0x0 - ble _020D32A0 - add r2, sp, #0x40 -_020D3288: - ldrb r1, [r6, r0] - add r0, r0, #0x1 - cmp r0, r5 - eor r1, r1, #0x36 - strb r1, [r2], #0x1 - blt _020D3288 -_020D32A0: - ldr r1, [r4, #0x4] - cmp r0, r1 - bge _020D32CC - add r1, sp, #0x40 - add r3, r1, r0 - mov r2, #0x36 -_020D32B8: - strb r2, [r3], #0x1 - ldr r1, [r4, #0x4] - add r0, r0, #0x1 - cmp r0, r1 - blt _020D32B8 -_020D32CC: - ldr r0, [r4, #0x8] - ldr r1, [r4, #0x10] - blx r1 - ldr r0, [r4, #0x8] - ldr r2, [r4, #0x4] - ldr r3, [r4, #0x14] - add r1, sp, #0x40 - blx r3 - ldr r0, [r4, #0x8] - ldr r3, [r4, #0x14] - mov r1, r8 - mov r2, r7 - blx r3 - ldr r0, [r4, #0x8] - ldr r1, [r4, #0xc] - ldr r2, [r4, #0x18] - blx r2 - cmp r5, #0x0 - mov r2, #0x0 - ble _020D3338 - add r1, sp, #0x80 -_020D3320: - ldrb r0, [r6, r2] - add r2, r2, #0x1 - cmp r2, r5 - eor r0, r0, #0x5c - strb r0, [r1], #0x1 - blt _020D3320 -_020D3338: - ldr r0, [r4, #0x4] - cmp r2, r0 - bge _020D3364 - add r0, sp, #0x80 - add r3, r0, r2 - mov r1, #0x5c -_020D3350: - strb r1, [r3], #0x1 - ldr r0, [r4, #0x4] - add r2, r2, #0x1 - cmp r2, r0 - blt _020D3350 -_020D3364: - ldr r0, [r4, #0x8] - ldr r1, [r4, #0x10] - blx r1 - ldr r0, [r4, #0x8] - ldr r2, [r4, #0x4] - ldr r3, [r4, #0x14] - add r1, sp, #0x80 - blx r3 - ldr r0, [r4, #0x8] - ldr r1, [r4, #0xc] - ldr r2, [r4, #0x0] - ldr r3, [r4, #0x14] - blx r3 - ldr r0, [r4, #0x8] - ldr r2, [r4, #0x18] - mov r1, r9 - blx r2 - add sp, sp, #0xc4 - ldmia sp!, {r4-r9,lr} - bx lr - .balign 4 -_020D33B4: .word 0x00FF00FF -_020D33B8: .word 0x5A827999 -_020D33BC: .word 0x6ED9EBA1 -_020D33C0: .word 0x8F1BBCDC -_020D33C4: .word 0xCA62C1D6 - - arm_func_start DGTi_hash2_arm4_small -DGTi_hash2_arm4_small: ; 0x020D33C8 - stmdb sp!, {r4-r12,lr} - ldmia r0, {r3,r9-r12} - sub sp, sp, #0x84 - str r2, [sp, #0x80] -_020D33D8: - ldr r8, _020D33B8 ; =0x5A827999 - ldr r7, _020D33B4 ; =0x00FF00FF - mov r6, sp - mov r5, #0x0 -_020D33E8: - ldr r4, [r1], #0x4 - add r2, r8, r12 - add r2, r2, r3, ror #0x1B - and lr, r4, r7 - and r4, r7, r4, ror #0x18 - orr r4, r4, lr, ror #0x8 - str r4, [r6, #0x40] - str r4, [r6], #0x4 - add r2, r2, r4 - eor r4, r10, r11 - and r4, r4, r9 - eor r4, r4, r11 - add r2, r2, r4 - mov r9, r9, ror #0x2 - mov r12, r11 - mov r11, r10 - mov r10, r9 - mov r9, r3 - mov r3, r2 - add r5, r5, #0x4 - cmp r5, #0x40 - blt _020D33E8 - mov r7, #0x0 - mov r6, sp -_020D3448: - ldr r2, [r6, #0x0] - ldr r5, [r6, #0x8] - ldr r4, [r6, #0x20] - ldr lr, [r6, #0x34] - eor r2, r2, r5 - eor r4, r4, lr - eor r2, r2, r4 - mov r2, r2, ror #0x1F - str r2, [r6, #0x40] - str r2, [r6], #0x4 - add r2, r2, r12 - add r2, r2, r8 - add r2, r2, r3, ror #0x1B - eor r4, r10, r11 - and r4, r4, r9 - eor r4, r4, r11 - add r2, r2, r4 - mov r9, r9, ror #0x2 - mov r12, r11 - mov r11, r10 - mov r10, r9 - mov r9, r3 - mov r3, r2 - add r7, r7, #0x4 - cmp r7, #0x10 - blt _020D3448 - ldr r8, _020D33BC ; =0x6ED9EBA1 - mov r7, #0x0 -_020D34B8: - ldr r2, [r6, #0x0] - ldr r4, [r6, #0x8] - ldr lr, [r6, #0x20] - ldr r5, [r6, #0x34] - eor r2, r2, r4 - eor lr, lr, r5 - eor r2, r2, lr - mov r2, r2, ror #0x1F - str r2, [r6, #0x40] - str r2, [r6], #0x4 - add r2, r2, r12 - add r2, r2, r8 - add r2, r2, r3, ror #0x1B - eor lr, r9, r10 - eor lr, lr, r11 - add r2, r2, lr - mov r9, r9, ror #0x2 - mov r12, r11 - mov r11, r10 - mov r10, r9 - mov r9, r3 - mov r3, r2 - add r7, r7, #0x1 - cmp r7, #0xc - moveq r6, sp - cmp r7, #0x14 - blt _020D34B8 - ldr r8, _020D33C0 ; =0x8F1BBCDC - mov r7, #0x0 -_020D352C: - ldr r2, [r6, #0x0] - ldr lr, [r6, #0x8] - ldr r5, [r6, #0x20] - ldr r4, [r6, #0x34] - eor r2, r2, lr - eor r5, r5, r4 - eor r2, r2, r5 - mov r2, r2, ror #0x1F - str r2, [r6, #0x40] - str r2, [r6], #0x4 - add r2, r2, r12 - add r2, r2, r8 - add r2, r2, r3, ror #0x1B - orr r5, r9, r10 - and r5, r5, r11 - and r4, r9, r10 - orr r5, r5, r4 - add r2, r2, r5 - mov r9, r9, ror #0x2 - mov r12, r11 - mov r11, r10 - mov r10, r9 - mov r9, r3 - mov r3, r2 - add r7, r7, #0x1 - cmp r7, #0x8 - moveq r6, sp - cmp r7, #0x14 - blt _020D352C - ldr r8, _020D33C4 ; =0xCA62C1D6 - mov r7, #0x0 -_020D35A8: - ldr r2, [r6, #0x0] - ldr r5, [r6, #0x8] - ldr r4, [r6, #0x20] - ldr lr, [r6, #0x34] - eor r2, r2, r5 - eor r4, r4, lr - eor r2, r2, r4 - mov r2, r2, ror #0x1F - str r2, [r6, #0x40] - str r2, [r6], #0x4 - add r2, r2, r12 - add r2, r2, r8 - add r2, r2, r3, ror #0x1B - eor r4, r9, r10 - eor r4, r4, r11 - add r2, r2, r4 - mov r9, r9, ror #0x2 - mov r12, r11 - mov r11, r10 - mov r10, r9 - mov r9, r3 - mov r3, r2 - add r7, r7, #0x1 - cmp r7, #0x4 - moveq r6, sp - cmp r7, #0x14 - blt _020D35A8 - ldmia r0, {r2,r4,r6-r7,lr} - add r3, r3, r2 - add r9, r9, r4 - add r10, r10, r6 - add r11, r11, r7 - add r12, r12, lr - stmia r0, {r3,r9-r12} - ldr lr, [sp, #0x80] - subs lr, lr, #0x40 - str lr, [sp, #0x80] - bgt _020D33D8 - add sp, sp, #0x84 - ldmia sp!, {r4-r12,pc} diff --git a/arm9/asm/libmath.s b/arm9/asm/libmath.s index 02dcfbcf..e841f5da 100644 --- a/arm9/asm/libmath.s +++ b/arm9/asm/libmath.s @@ -32,16 +32,16 @@ MATH_CalcSHA1: ; 0x020DDCA0 add r0, sp, #0x0 mov r5, r1 mov r4, r2 - bl MATH_SHA1Init + bl DGT_Hash2Reset _020DDCBC: ; 0x020DDCBC add r0, sp, #0x0 mov r1, r5 mov r2, r4 - bl MATH_SHA1Update + bl DGT_Hash2SetSource _020DDCCC: ; 0x020DDCCC add r0, sp, #0x0 mov r1, r6 - bl MATH_SHA1GetHash + bl DGT_Hash2GetDigest add sp, sp, #0x68 ldmia sp!, {r4-r6,lr} bx lr diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s index d75850de..dfda1697 100644 --- a/arm9/asm/scrcmd.s +++ b/arm9/asm/scrcmd.s @@ -898,7 +898,7 @@ FUN_0203A038: ; 0x0203A038 str r1, [r0, #0x8]
ldrb r2, [r2, #0x0]
ldr r1, [r0, #0x78]
- bl FUN_021E2C24
+ bl MOD05_021E2C24
mov r0, #0x0
pop {r3, pc}
@@ -930,7 +930,7 @@ FUN_0203A04C: ; 0x0203A04C add r0, r4, #0x0
add r1, r5, #0x0
add r2, r6, #0x0
- bl FUN_021E2C24
+ bl MOD05_021E2C24
add r0, r5, #0x0
bl FUN_0200A8B8
mov r0, #0x0
@@ -968,7 +968,7 @@ FUN_0203A098: ; 0x0203A098 add r1, r5, #0x0
add r2, r6, #0x0
mov r3, #0x1
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
add r0, r5, #0x0
bl FUN_0200A8B8
ldr r1, _0203A0F8 ; =FUN_0203A2F0
@@ -1004,7 +1004,7 @@ FUN_0203A0FC: ; 0x0203A0FC add r1, r4, #0x0
add r2, r6, #0x0
add r3, r7, #0x0
- bl FUN_021E2C58
+ bl MOD05_021E2C58
mov r0, #0x0
add sp, #0x8
pop {r3-r7, pc}
@@ -1034,7 +1034,7 @@ FUN_0203A13C: ; 0x0203A13C add r1, r4, #0x0
add r2, r6, #0x0
add r3, r7, #0x0
- bl FUN_021E2C58
+ bl MOD05_021E2C58
ldr r1, _0203A184 ; =FUN_0203A2F0
add r0, r5, #0x0
bl SetupNativeScript
@@ -1085,7 +1085,7 @@ _0203A1AA: add r0, r5, #0x0
add r1, r6, #0x0
mov r3, #0x1
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
add r0, r6, #0x0
bl FUN_0200A8B8
b _0203A1F4
@@ -1097,7 +1097,7 @@ _0203A1E2: str r2, [sp, #0x4]
ldrh r2, [r4, #0x2]
ldrh r3, [r4, #0x4]
- bl FUN_021E2C58
+ bl MOD05_021E2C58
_0203A1F4:
ldr r1, _0203A20C ; =FUN_0203A2F0
add r0, r5, #0x0
@@ -1143,7 +1143,7 @@ FUN_0203A210: ; 0x0203A210 str r0, [sp, #0x0]
ldr r0, [r6, #0xc]
add r1, r7, #0x0
- bl FUN_02244210
+ bl MOD06_02244210
add r6, r0, #0x0
add r2, sp, #0x4
ldrb r2, [r2, #0x0]
@@ -1153,7 +1153,7 @@ FUN_0203A210: ; 0x0203A210 lsl r2, r2, #0x18
lsr r2, r2, #0x18
mov r3, #0x1
- bl FUN_021E2CBC
+ bl MOD05_021E2CBC
add r0, r6, #0x0
bl FUN_0200AB18
ldr r1, _0203A284 ; =FUN_0203A2F0
@@ -1174,7 +1174,7 @@ FUN_0203A288: ; 0x0203A288 add r4, r0, #0x0
add r0, sp, #0x4
add r1, r5, #0x0
- bl FUN_021E2BB8
+ bl MOD05_021E2BB8
mov r1, #0x3
add r0, sp, #0x4
strb r1, [r0, #0x2]
@@ -1184,7 +1184,7 @@ FUN_0203A288: ; 0x0203A288 add r0, r5, #0x0
add r2, r4, #0x0
mov r3, #0x0
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
ldr r1, _0203A2C0 ; =FUN_0203A2F0
add r0, r5, #0x0
bl SetupNativeScript
@@ -1207,7 +1207,7 @@ FUN_0203A2C4: ; 0x0203A2C4 str r1, [sp, #0x0]
ldrb r2, [r2, #0x0]
ldr r1, [r4, #0x78]
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
ldr r1, _0203A2EC ; =FUN_0203A2F0
add r0, r4, #0x0
bl SetupNativeScript
@@ -1247,7 +1247,7 @@ FUN_0203A304: ; 0x0203A304 add r0, r4, #0x0
lsr r2, r2, #0x18
mov r3, #0x1
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
ldr r1, _0203A33C ; =FUN_0203A2F0
add r0, r4, #0x0
bl SetupNativeScript
@@ -1271,7 +1271,7 @@ FUN_0203A340: ; 0x0203A340 add r4, r0, #0x0
add r0, sp, #0x4
add r1, r5, #0x0
- bl FUN_021E2BB8
+ bl MOD05_021E2BB8
lsl r2, r4, #0x18
mov r3, #0x1
add r0, sp, #0x4
@@ -1281,7 +1281,7 @@ FUN_0203A340: ; 0x0203A340 ldr r1, [r5, #0x78]
add r0, r5, #0x0
lsr r2, r2, #0x18
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
ldr r1, _0203A384 ; =FUN_0203A2F0
add r0, r5, #0x0
bl SetupNativeScript
@@ -1309,7 +1309,7 @@ FUN_0203A388: ; 0x0203A388 ldr r1, [r4, #0x78]
add r0, r4, #0x0
lsr r2, r2, #0x18
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
ldr r1, _0203A3C0 ; =FUN_0203A2F0
add r0, r4, #0x0
bl SetupNativeScript
@@ -1337,7 +1337,7 @@ FUN_0203A3C4: ; 0x0203A3C4 ldr r1, [r4, #0x78]
add r0, r4, #0x0
mov r3, #0x1
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
ldr r1, _0203A3FC ; =FUN_0203A2F0
add r0, r4, #0x0
bl SetupNativeScript
@@ -1365,12 +1365,12 @@ FUN_0203A400: ; 0x0203A400 add r0, r5, #0x0
add r2, r4, #0x0
mov r3, #0x1
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
b _0203A448
_0203A428:
add r0, sp, #0x4
add r1, r5, #0x0
- bl FUN_021E2BB8
+ bl MOD05_021E2BB8
mov r1, #0x1
add r0, sp, #0x4
strb r1, [r0, #0x0]
@@ -1381,7 +1381,7 @@ _0203A428: add r0, r5, #0x0
add r2, r4, #0x0
mov r3, #0x0
- bl FUN_021E2BD0
+ bl MOD05_021E2BD0
_0203A448:
ldr r1, _0203A458 ; =FUN_0203A2F0
add r0, r5, #0x0
@@ -1854,12 +1854,12 @@ _0203A7E0: ldr r0, [r4, #0x60]
ldr r1, [sp, #0x10]
add r2, r6, #0x0
- bl FUN_021E8128
+ bl MOD05_021E8128
ldr r0, [r4, #0x60]
mov r1, #0x1
- bl FUN_021E8130
+ bl MOD05_021E8130
add r0, r4, #0x0
- bl FUN_021E8158
+ bl MOD05_021E8158
ldr r2, [sp, #0x18]
ldr r0, [r5, #0x78]
ldr r1, [sp, #0xc]
@@ -1872,7 +1872,7 @@ _0203A7E0: ldr r2, [r2, #0x0]
bl FUN_0200B7B8
ldr r0, [r4, #0x60]
- bl FUN_021E8140
+ bl MOD05_021E8140
mov r3, #0x0
str r3, [sp, #0x0]
str r3, [sp, #0x4]
@@ -1899,10 +1899,10 @@ FUN_0203A830: ; 0x0203A830 add r2, r0, #0x0
ldr r0, [r4, #0x60]
add r1, r5, #0x0
- bl FUN_021E8128
+ bl MOD05_021E8128
ldr r0, [r4, #0x60]
mov r1, #0x1
- bl FUN_021E8130
+ bl MOD05_021E8130
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
@@ -1918,7 +1918,7 @@ FUN_0203A85C: ; 0x0203A85C str r1, [r0, #0x8]
ldrb r1, [r2, #0x0]
ldr r0, [r3, #0x60]
- bl FUN_021E8130
+ bl MOD05_021E8130
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -1930,7 +1930,7 @@ FUN_0203A878: ; 0x0203A878 add r0, #0x80
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x60]
- bl FUN_021E8148
+ bl MOD05_021E8148
cmp r0, #0x1
bne _0203A88E
mov r0, #0x0
@@ -1950,7 +1950,7 @@ FUN_0203A8A0: ; 0x0203A8A0 add r0, #0x80
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x60]
- bl FUN_021E8148
+ bl MOD05_021E8148
cmp r0, #0x1
bne _0203A8B4
mov r0, #0x1
@@ -2000,7 +2000,7 @@ FUN_0203A8B8: ; 0x0203A8B8 ldr r2, [r6, #0x0]
bl FUN_0200B7B8
ldr r0, [r4, #0x60]
- bl FUN_021E8140
+ bl MOD05_021E8140
add r4, r0, #0x0
add r0, r5, #0x0
add r0, #0x80
@@ -2042,7 +2042,7 @@ FUN_0203A94C: ; 0x0203A94C bl FUN_020394B8
add r4, r0, #0x0
ldr r0, [r5, #0x60]
- bl FUN_021E8144
+ bl MOD05_021E8144
ldrb r0, [r6, #0x0]
ldr r5, _0203A9E8 ; =0x0000FFFF
bl FUN_020546C8
@@ -2376,7 +2376,7 @@ FUN_0203AB8C: ; 0x0203AB8C ldr r1, [sp, #0x18]
ldr r2, [sp, #0x14]
add r0, r6, #0x0
- bl FUN_021E1BF8
+ bl MOD05_021E1BF8
ldr r1, [sp, #0x1c]
str r0, [r1, #0x0]
ldr r0, [sp, #0x24]
@@ -2441,7 +2441,7 @@ FUN_0203AC14: ; 0x0203AC14 ldr r1, [sp, #0x18]
ldr r2, [sp, #0x14]
add r0, r6, #0x0
- bl FUN_021E1BF8
+ bl MOD05_021E1BF8
ldr r1, [sp, #0x1c]
str r0, [r1, #0x0]
ldr r0, [sp, #0x24]
@@ -2467,7 +2467,7 @@ FUN_0203AC9C: ; 0x0203AC9C str r2, [r4, #0x8]
ldrb r2, [r3, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021E1C4C
+ bl MOD05_021E1C4C
mov r0, #0x0
pop {r4, pc}
.balign 4
@@ -2498,7 +2498,7 @@ FUN_0203ACC4: ; 0x0203ACC4 add r2, r0, #0x0
ldr r0, [r4, #0x0]
add r1, r6, #0x0
- bl FUN_021E1C4C
+ bl MOD05_021E1C4C
mov r0, #0x0
pop {r4-r6, pc}
.balign 4
@@ -2512,7 +2512,7 @@ FUN_0203AD08: ; 0x0203AD08 mov r1, #0x0
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E1C54
+ bl MOD05_021E1C54
ldr r1, _0203AD28 ; =FUN_0203AD2C
add r0, r4, #0x0
bl SetupNativeScript
@@ -2552,7 +2552,7 @@ FUN_0203AD54: ; 0x0203AD54 mov r1, #0x0
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E1C54
+ bl MOD05_021E1C54
ldr r1, _0203AD74 ; =FUN_0203AD78
add r0, r4, #0x0
bl SetupNativeScript
@@ -2588,7 +2588,7 @@ FUN_0203AD78: ; 0x0203AD78 mov r0, #0x8
strh r0, [r4, #0x0]
ldr r0, [r6, #0x0]
- bl FUN_021E1ECC
+ bl MOD05_021E1ECC
mov r0, #0x1
pop {r4-r6, pc}
_0203ADB8:
@@ -2655,7 +2655,7 @@ FUN_0203ADC4: ; 0x0203ADC4 ldr r1, [sp, #0x18]
ldr r2, [sp, #0x14]
add r0, r6, #0x0
- bl FUN_021E1F34
+ bl MOD05_021E1F34
ldr r1, [sp, #0x1c]
str r0, [r1, #0x0]
ldr r0, [sp, #0x24]
@@ -2720,7 +2720,7 @@ FUN_0203AE4C: ; 0x0203AE4C ldr r1, [sp, #0x18]
ldr r2, [sp, #0x14]
add r0, r6, #0x0
- bl FUN_021E1F34
+ bl MOD05_021E1F34
ldr r1, [sp, #0x1c]
str r0, [r1, #0x0]
ldr r0, [sp, #0x24]
@@ -2769,7 +2769,7 @@ FUN_0203AED4: ; 0x0203AED4 lsr r1, r1, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_021E1F58
+ bl MOD05_021E1F58
mov r0, #0x0
pop {r3-r7, pc}
@@ -2782,7 +2782,7 @@ FUN_0203AF34: ; 0x0203AF34 mov r1, #0x0
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E1F60
+ bl MOD05_021E1F60
ldr r1, _0203AF54 ; =FUN_0203AD2C
add r0, r4, #0x0
bl SetupNativeScript
@@ -2804,7 +2804,7 @@ FUN_0203AF58: ; 0x0203AF58 str r1, [r4, #0x8]
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021E26CC
+ bl MOD05_021E26CC
ldr r1, _0203AF80 ; =FUN_0203AD2C
add r0, r4, #0x0
bl SetupNativeScript
@@ -2826,7 +2826,7 @@ FUN_0203AF84: ; 0x0203AF84 str r1, [r4, #0x8]
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021E2B80
+ bl MOD05_021E2B80
mov r0, #0x1
pop {r4, pc}
@@ -2843,7 +2843,7 @@ FUN_0203AFA4: ; 0x0203AFA4 str r1, [r4, #0x8]
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021E2B9C
+ bl MOD05_021E2B9C
mov r0, #0x1
pop {r4, pc}
@@ -3479,7 +3479,7 @@ FUN_0203B468: ; 0x0203B468 ldr r1, [r1, #0x0]
add r4, r0, #0x0
ldr r1, [r1, #0x24]
- bl FUN_021EF5E0
+ bl MOD05_021EF5E0
add r5, #0x80
ldr r1, [r5, #0x0]
add r0, r4, #0x0
@@ -3512,7 +3512,7 @@ FUN_0203B500: ; 0x0203B500 ldr r1, [r1, #0x0]
add r4, r0, #0x0
ldr r1, [r1, #0x24]
- bl FUN_021EF5E0
+ bl MOD05_021EF5E0
add r5, #0x80
ldr r1, [r5, #0x0]
add r0, r4, #0x0
@@ -3540,7 +3540,7 @@ FUN_0203B544: ; 0x0203B544 pop {r3-r5, pc}
_0203B568:
add r1, r4, #0x0
- bl FUN_021F1EC0
+ bl MOD05_021F1EC0
mov r0, #0x0
pop {r3-r5, pc}
.balign 4
@@ -3669,56 +3669,56 @@ FUN_0203B640: ; 0x0203B640 cmp r7, #0x0
beq _0203B696
lsl r0, r7, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0203B6A4
_0203B696:
lsl r0, r7, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0203B6A4:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x0]
cmp r6, #0x0
beq _0203B6C0
lsl r0, r6, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0203B6CE
_0203B6C0:
lsl r0, r6, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0203B6CE:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x4]
cmp r4, #0x0
beq _0203B6EA
lsl r0, r4, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0203B6F8
_0203B6EA:
lsl r0, r4, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0203B6F8:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x8]
add r0, r5, #0x0
add r0, #0x80
@@ -4254,7 +4254,7 @@ FUN_0203BB34: ; 0x0203BB34 ldr r0, [r5, #0x0]
ldr r1, [r4, #0x0]
add r2, r7, #0x0
- bl FUN_021E1858
+ bl MOD05_021E1858
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -4446,7 +4446,7 @@ FUN_0203BCBC: ; 0x0203BCBC push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_021F02C4
+ bl MOD05_021F02C4
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -4723,7 +4723,7 @@ FUN_0203BECC: ; 0x0203BECC add r2, r0, #0x0
ldr r0, [r5, #0x74]
ldr r1, [r4, #0x0]
- bl FUN_021E1374
+ bl MOD05_021E1374
mov r0, #0x1
pop {r4-r6, pc}
.balign 4
@@ -4741,7 +4741,7 @@ FUN_0203BF00: ; 0x0203BF00 beq _0203BF1C
add r4, #0x80
ldr r0, [r4, #0x0]
- bl FUN_021E1994
+ bl MOD05_021E1994
_0203BF1C:
mov r0, #0x0
pop {r4, pc}
@@ -5134,7 +5134,7 @@ FUN_0203C200: ; 0x0203C200 mov r2, #0x8
str r0, [r6, #0x0]
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [sp, #0x0]
strh r7, [r4, #0x4]
strh r0, [r4, #0x6]
@@ -5889,7 +5889,7 @@ FUN_0203C844: ; 0x0203C844 add r1, r0, #0x0
ldr r0, [r5, #0x74]
add r2, r4, #0x0
- bl FUN_021E6990
+ bl MOD05_021E6990
mov r0, #0x1
pop {r3-r5, pc}
@@ -5918,7 +5918,7 @@ FUN_0203C874: ; 0x0203C874 add r1, r0, #0x0
ldr r0, [r5, #0x74]
add r2, r4, #0x0
- bl FUN_021E6410
+ bl MOD05_021E6410
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
@@ -5942,7 +5942,7 @@ FUN_0203C8B4: ; 0x0203C8B4 add r1, r0, #0x0
ldr r0, [r5, #0x74]
add r2, r4, #0x0
- bl FUN_021E6BF4
+ bl MOD05_021E6BF4
mov r0, #0x1
pop {r3-r5, pc}
@@ -5999,7 +5999,7 @@ FUN_0203C930: ; 0x0203C930 ldr r0, [r4, #0x0]
ldr r0, [r0, #0x4]
ldr r0, [r0, #0xc]
- bl FUN_021DC174
+ bl MOD05_021DC174
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
@@ -6022,7 +6022,7 @@ FUN_0203C960: ; 0x0203C960 ldr r0, [r4, #0x0]
ldr r0, [r0, #0x4]
ldr r0, [r0, #0xc]
- bl FUN_021DC174
+ bl MOD05_021DC174
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
@@ -6063,7 +6063,7 @@ FUN_0203C990: ; 0x0203C990 ldr r0, [r0, #0x0]
mov r1, #0x0
add r2, r6, #0x0
- bl FUN_0224666C
+ bl MOD06_0224666C
str r0, [r4, #0x0]
ldr r1, _0203C9F4 ; =FUN_0203C9F8
add r0, r5, #0x0
@@ -6082,11 +6082,11 @@ FUN_0203C9F8: ; 0x0203C9F8 bl FUN_02039438
add r4, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_022466A0
+ bl MOD06_022466A0
cmp r0, #0x1
bne _0203CA1A
ldr r0, [r4, #0x0]
- bl FUN_022466AC
+ bl MOD06_022466AC
mov r0, #0x1
pop {r4, pc}
_0203CA1A:
@@ -6098,7 +6098,7 @@ _0203CA1A: FUN_0203CA20: ; 0x0203CA20
push {r3, lr}
ldr r0, [r0, #0x74]
- bl FUN_021E7030
+ bl MOD05_021E7030
mov r0, #0x1
pop {r3, pc}
@@ -6156,11 +6156,11 @@ FUN_0203CA5C: ; 0x0203CA5C ldr r0, [r0, #0x0]
mov r1, #0x2
ldr r0, [r0, #0x38]
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
add r4, #0x80
ldr r0, [r4, #0x0]
ldr r0, [r0, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
b _0203CAE4
_0203CAA4:
add r0, r4, #0x0
@@ -6168,12 +6168,12 @@ _0203CAA4: ldr r0, [r0, #0x0]
mov r1, #0x1
ldr r0, [r0, #0x38]
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
add r0, r4, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
add r0, r4, #0x0
add r0, #0x80
ldr r0, [r0, #0x0]
@@ -6202,7 +6202,7 @@ FUN_0203CAE8: ; 0x0203CAE8 ldr r0, [r0, #0x0]
mov r1, #0x2
ldr r0, [r0, #0x38]
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
add r4, #0x80
mov r1, #0x12
ldr r0, [r4, #0x0]
@@ -6264,7 +6264,7 @@ FUN_0203CB60: ; 0x0203CB60 add r0, #0x80
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
mov r0, #0x0
pop {r3, pc}
@@ -6297,7 +6297,7 @@ FUN_0203CB70: ; 0x0203CB70 bl FUN_0202A990
add r1, r6, #0x0
add r2, r4, #0x0
- bl FUN_02245910
+ bl MOD06_02245910
mov r0, #0x0
pop {r4-r6, pc}
.balign 4
@@ -6429,7 +6429,7 @@ FUN_0203CC88: ; 0x0203CC88 ldr r3, [sp, #0x4]
add r0, r4, #0x0
add r1, r7, #0x0
- bl FUN_02240790
+ bl MOD06_02240790
ldr r1, _0203CCF4 ; =FUN_0203CCF8
add r0, r5, #0x0
str r6, [r5, #0x64]
@@ -6451,7 +6451,7 @@ FUN_0203CCF8: ; 0x0203CCF8 lsr r1, r1, #0x10
bl FUN_020394B8
add r4, r0, #0x0
- bl FUN_022407DC
+ bl MOD06_022407DC
cmp r0, #0x0
bne _0203CD18
mov r0, #0x0
@@ -6500,7 +6500,7 @@ FUN_0203CD20: ; 0x0203CD20 ldr r3, [sp, #0x4]
add r0, r4, #0x0
add r1, r7, #0x0
- bl FUN_022407F8
+ bl MOD06_022407F8
ldr r1, _0203CD8C ; =FUN_0203CD90
add r0, r5, #0x0
str r6, [r5, #0x64]
@@ -6522,7 +6522,7 @@ FUN_0203CD90: ; 0x0203CD90 lsr r1, r1, #0x10
bl FUN_020394B8
add r4, r0, #0x0
- bl FUN_02240844
+ bl MOD06_02240844
cmp r0, #0x0
bne _0203CDB0
mov r0, #0x0
@@ -6653,7 +6653,7 @@ FUN_0203CE8C: ; 0x0203CE8C bl FUN_02034E30
bl FUN_02034DD0
ldr r0, [r0, #0x0]
- bl FUN_021E2608
+ bl MOD05_021E2608
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -6688,7 +6688,7 @@ FUN_0203CEBC: ; 0x0203CEBC str r0, [sp, #0x0]
ldr r0, [sp, #0x4]
add r2, r4, #0x0
- bl FUN_021E2464
+ bl MOD05_021E2464
mov r0, #0x0
add sp, #0x8
pop {r3-r7, pc}
@@ -6971,7 +6971,7 @@ FUN_0203D140: ; 0x0203D140 push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_021F4DC8
+ bl MOD05_021F4DC8
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -6990,7 +6990,7 @@ FUN_0203D150: ; 0x0203D150 bl FUN_020394B8
add r5, r0, #0x0
add r0, r4, #0x0
- bl FUN_021F4D80
+ bl MOD05_021F4D80
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -7016,7 +7016,7 @@ FUN_0203D194: ; 0x0203D194 push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_021F4E7C
+ bl MOD05_021F4E7C
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -7094,7 +7094,7 @@ FUN_0203D214: ; 0x0203D214 bl FUN_020394B8
add r5, r0, #0x0
add r0, r4, #0x0
- bl FUN_021E85FC
+ bl MOD05_021E85FC
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -7104,7 +7104,7 @@ FUN_0203D214: ; 0x0203D214 FUN_0203D23C: ; 0x0203D23C
push {r3, lr}
ldr r0, [r0, #0x74]
- bl FUN_021E3424
+ bl MOD05_021E3424
mov r0, #0x1
pop {r3, pc}
@@ -8277,7 +8277,7 @@ FUN_0203DB88: ; 0x0203DB88 _0203DBC6:
add r0, r5, #0x0
add r1, r4, #0x0
- bl FUN_021F1EC0
+ bl MOD05_021F1EC0
mov r0, #0x0
pop {r4-r6, pc}
.balign 4
@@ -8340,7 +8340,7 @@ FUN_0203DC00: ; 0x0203DC00 ldr r0, [r5, #0x0]
add r1, r7, r1
add r2, r2, r4
- bl FUN_021DAE40
+ bl MOD05_021DAE40
mov r0, #0x0
pop {r3-r7, pc}
.balign 4
@@ -8354,7 +8354,7 @@ FUN_0203DC58: ; 0x0203DC58 add r0, #0x80
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021DAF78
+ bl MOD05_021DAF78
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -8368,7 +8368,7 @@ FUN_0203DC70: ; 0x0203DC70 add r0, #0x80
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021DAF98
+ bl MOD05_021DAF98
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -8382,7 +8382,7 @@ FUN_0203DC88: ; 0x0203DC88 add r0, #0x80
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021DAED4
+ bl MOD05_021DAED4
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -8396,7 +8396,7 @@ FUN_0203DCA0: ; 0x0203DCA0 add r0, #0x80
ldrb r1, [r2, #0x0]
ldr r0, [r0, #0x0]
- bl FUN_021DAF28
+ bl MOD05_021DAF28
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -8416,7 +8416,7 @@ FUN_0203DCC8: ; 0x0203DCC8 push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_02241230
+ bl MOD06_02241230
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -8436,7 +8436,7 @@ FUN_0203DCE8: ; 0x0203DCE8 push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_02241914
+ bl MOD06_02241914
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -8488,7 +8488,7 @@ FUN_0203DD34: ; 0x0203DD34 str r1, [r0, #0x8]
ldrb r1, [r2, #0x0]
add r0, r3, #0x0
- bl FUN_02242A38
+ bl MOD06_02242A38
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -8536,7 +8536,7 @@ FUN_0203DD60: ; 0x0203DD60 add r2, r0, #0x0
ldr r1, [r1, #0x0]
add r0, r7, #0x0
- bl FUN_0224CA54
+ bl MOD18_0224CA54
str r0, [r4, #0x0]
ldr r1, _0203DDBC ; =FUN_0203DDC0
add r0, r5, #0x0
@@ -8564,7 +8564,7 @@ FUN_0203DDC0: ; 0x0203DDC0 bl FUN_020394B8
add r5, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_0224CA2C
+ bl MOD18_0224CA2C
strh r0, [r5, #0x0]
ldrh r1, [r5, #0x0]
ldr r0, _0203DDFC ; =0x0000FFFE
@@ -8594,7 +8594,7 @@ FUN_0203DE00: ; 0x0203DE00 add r0, #0x80
ldr r0, [r0, #0x0]
bl FUN_020394F0
- bl FUN_0224CA58
+ bl MOD06_0224CA58
strb r0, [r4, #0x0]
ldr r1, _0203DE34 ; =FUN_0203DE38
add r0, r5, #0x0
@@ -8618,7 +8618,7 @@ FUN_0203DE38: ; 0x0203DE38 thumb_func_start FUN_0203DE4C
FUN_0203DE4C: ; 0x0203DE4C
push {r3, lr}
- bl FUN_0224CA94
+ bl MOD11_0224CA94
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -8638,7 +8638,7 @@ FUN_0203DE58: ; 0x0203DE58 bl FUN_020394F0
add r1, r0, #0x0
add r0, r5, #0x0
- bl FUN_0224CAA0
+ bl MOD18_0224CAA0
mov r0, #0x0
pop {r3-r5, pc}
.balign 4
@@ -8658,7 +8658,7 @@ FUN_0203DE80: ; 0x0203DE80 bl FUN_020394F0
add r1, r0, #0x0
add r0, r5, #0x0
- bl FUN_0224CAB4
+ bl MOD18_0224CAB4
mov r0, #0x0
pop {r3-r5, pc}
.balign 4
@@ -8673,7 +8673,7 @@ FUN_0203DEA8: ; 0x0203DEA8 mov r1, #0x1
ldr r0, [r0, #0x74]
add r2, r1, #0x0
- bl FUN_02242BE0
+ bl MOD06_02242BE0
mov r0, #0x1
add sp, #0x8
pop {r3, pc}
@@ -8812,7 +8812,7 @@ FUN_0203DFA8: ; 0x0203DFA8 add r5, r0, #0x0
bl FUN_0201B9EC
add r1, r5, #0x0
- blx _s32_div_f
+ bl _s32_div_f
strh r1, [r4, #0x0]
mov r0, #0x1
pop {r3-r5, pc}
@@ -8837,7 +8837,7 @@ FUN_0203DFE0: ; 0x0203DFE0 add r5, r0, #0x0
bl FUN_0201B9EC
add r1, r5, #0x0
- blx _s32_div_f
+ bl _s32_div_f
strh r1, [r4, #0x0]
mov r0, #0x1
pop {r3-r5, pc}
@@ -8864,7 +8864,7 @@ FUN_0203E018: ; 0x0203E018 bl FUN_020394F0
add r1, r0, #0x0
add r0, r4, #0x0
- bl FUN_021F3A18
+ bl MOD05_021F3A18
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -8884,7 +8884,7 @@ FUN_0203E054: ; 0x0203E054 bl FUN_020394F0
add r1, r0, #0x0
add r0, r5, #0x0
- bl FUN_021F3AB4
+ bl MOD05_021F3AB4
mov r0, #0x0
pop {r3-r5, pc}
@@ -8922,7 +8922,7 @@ FUN_0203E078: ; 0x0203E078 add r0, r4, #0x0
lsr r1, r1, #0x18
lsr r2, r2, #0x18
- bl FUN_021F3B7C
+ bl MOD05_021F3B7C
mov r0, #0x0
pop {r3-r7, pc}
@@ -8960,7 +8960,7 @@ FUN_0203E0CC: ; 0x0203E0CC add r0, r4, #0x0
lsr r1, r1, #0x18
lsr r2, r2, #0x18
- bl FUN_021F3B4C
+ bl MOD05_021F3B4C
mov r0, #0x0
pop {r3-r7, pc}
@@ -9394,7 +9394,7 @@ FUN_0203E4A0: ; 0x0203E4A0 add r0, #0x80
ldr r0, [r0, #0x0]
ldr r0, [r0, #0xc]
- bl FUN_0224CBB0
+ bl MOD06_0224CBB0
mov r0, #0x0
pop {r3, pc}
@@ -9412,7 +9412,7 @@ FUN_0203E4B0: ; 0x0203E4B0 add r4, r0, #0x0
ldr r0, [r5, #0x0]
ldr r0, [r0, #0xc]
- bl FUN_0224CC24
+ bl MOD06_0224CC24
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -9642,7 +9642,7 @@ FUN_0203E684: ; 0x0203E684 add r6, r0, #0x0
ldr r0, [r5, #0x0]
add r1, r4, #0x0
- bl FUN_022456E8
+ bl MOD06_022456E8
strh r0, [r6, #0x0]
mov r0, #0x1
pop {r4-r6, pc}
@@ -9680,7 +9680,7 @@ FUN_0203E6C4: ; 0x0203E6C4 ldrh r1, [r4, #0x0]
ldr r0, [r5, #0x0]
add r2, r6, #0x0
- bl FUN_0224525C
+ bl MOD06_0224525C
mov r0, #0x1
pop {r4-r6, pc}
@@ -9701,7 +9701,7 @@ FUN_0203E6FC: ; 0x0203E6FC add r4, r0, #0x0
ldr r0, [r5, #0x0]
add r1, r6, #0x0
- bl FUN_02245340
+ bl MOD06_02245340
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r4-r6, pc}
@@ -9765,7 +9765,7 @@ FUN_0203E774: ; 0x0203E774 add r4, r0, #0x0
bl FUN_0201B9EC
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r6, r0, #0x10
ldr r0, [sp, #0x0]
@@ -9885,7 +9885,7 @@ FUN_0203E870: ; 0x0203E870 str r0, [r5, #0x8]
ldrb r1, [r1, #0x0]
mov r0, #0xb
- bl FUN_0224884C
+ bl MOD06_0224884C
str r0, [r4, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -9907,7 +9907,7 @@ FUN_0203E894: ; 0x0203E894 bl FUN_020394B8
add r5, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_022488EC
+ bl MOD06_022488EC
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -9930,7 +9930,7 @@ FUN_0203E8C4: ; 0x0203E8C4 bl FUN_020394B8
add r5, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_022488F4
+ bl MOD06_022488F4
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -9969,7 +9969,7 @@ FUN_0203E928: ; 0x0203E928 mov r1, #0x14
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_022488CC
+ bl MOD06_022488CC
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -10144,7 +10144,7 @@ FUN_0203EA90: ; 0x0203EA90 bl FUN_020394B8
add r1, r0, #0x0
ldr r0, [r4, #0x74]
- bl FUN_022411F4
+ bl MOD06_022411F4
mov r0, #0x1
pop {r4, pc}
@@ -10187,10 +10187,10 @@ FUN_0203EAB0: ; 0x0203EAB0 lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r5, #0x0
- bl FUN_021F61E8
+ bl MOD05_021F61E8
strh r0, [r4, #0x0]
add r0, r5, #0x0
- bl FUN_021F61DC
+ bl MOD05_021F61DC
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -10211,7 +10211,7 @@ FUN_0203EB20: ; 0x0203EB20 lsl r1, r1, #0x18
ldr r0, [r4, #0x0]
lsr r1, r1, #0x18
- bl FUN_0224C27C
+ bl MOD06_0224C27C
mov r0, #0x1
pop {r4, pc}
.balign 4
@@ -10241,7 +10241,7 @@ FUN_0203EB48: ; 0x0203EB48 ldr r0, [r5, #0x0]
lsr r1, r1, #0x18
lsr r2, r2, #0x18
- bl FUN_0224C520
+ bl MOD06_0224C520
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
@@ -10349,7 +10349,7 @@ FUN_0203EBE4: ; 0x0203EBE4 ldr r2, [sp, #0x8]
ldr r3, [sp, #0xc]
add r1, r7, #0x0
- bl FUN_0224D14C
+ bl MOD06_0224D14C
add r5, r0, #0x0
mov r0, #0x0
mvn r0, r0
@@ -10415,7 +10415,7 @@ FUN_0203ECD8: ; 0x0203ECD8 str r1, [r0, #0x8]
ldrb r1, [r2, #0x0]
add r0, r3, #0x0
- bl FUN_0224C678
+ bl MOD06_0224C678
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -10431,7 +10431,7 @@ FUN_0203ECF4: ; 0x0203ECF4 str r1, [r0, #0x8]
ldrb r1, [r2, #0x0]
add r0, r3, #0x0
- bl FUN_0224C6E8
+ bl MOD06_0224C6E8
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -10447,7 +10447,7 @@ FUN_0203ED10: ; 0x0203ED10 str r1, [r0, #0x8]
ldrb r1, [r2, #0x0]
add r0, r3, #0x0
- bl FUN_0224C6F4
+ bl MOD06_0224C6F4
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -10521,7 +10521,7 @@ FUN_0203EDA4: ; 0x0203EDA4 add r5, #0x80
str r0, [r4, #0x0]
ldr r0, [r5, #0x0]
- bl FUN_021E7184
+ bl MOD05_021E7184
str r0, [r4, #0x0]
mov r0, #0x1
pop {r3-r5, pc}
@@ -10535,7 +10535,7 @@ FUN_0203EDC8: ; 0x0203EDC8 mov r1, #0x16
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E71E8
+ bl MOD05_021E71E8
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -10555,7 +10555,7 @@ FUN_0203EDE0: ; 0x0203EDE0 lsl r1, r1, #0x18
ldr r0, [r4, #0x0]
lsr r1, r1, #0x18
- bl FUN_0224E554
+ bl MOD06_0224E554
mov r0, #0x1
pop {r4, pc}
.balign 4
@@ -10611,7 +10611,7 @@ FUN_0203EE58: ; 0x0203EE58 push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_0224E764
+ bl MOD06_0224E764
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -10621,7 +10621,7 @@ FUN_0203EE68: ; 0x0203EE68 push {r3, lr}
add r0, #0x80
ldr r0, [r0, #0x0]
- bl FUN_0224E7C4
+ bl MOD06_0224E7C4
mov r0, #0x1
pop {r3, pc}
.balign 4
@@ -11059,7 +11059,7 @@ _0203F1E0: _0203F1F8:
bl FUN_0201B9EC
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
mov r4, #0x0
add r2, sp, #0x4
_0203F206:
@@ -11485,7 +11485,7 @@ _0203F54C: _0203F556:
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0x19
bge _0203F568
ldr r7, _0203F5CC ; =0x0000010D
@@ -11493,7 +11493,7 @@ _0203F556: _0203F568:
bl FUN_0201B9EC
mov r1, #0x6
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r1, r0, #0x10
mov r0, #0x6
@@ -11900,7 +11900,7 @@ FUN_0203F880: ; 0x0203F880 _0203F8A2:
bl FUN_0201B9EC
mov r1, #0x65
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
cmp r0, r4
@@ -11945,17 +11945,17 @@ FUN_0203F8C0: ; 0x0203F8C0 _0203F8FC:
mov r2, #0x0
mov r3, #0x20
- bl FUN_0224F12C
+ bl MOD06_0224F12C
b _0203F91E
_0203F906:
mov r2, #0x1
mov r3, #0x20
- bl FUN_0224F12C
+ bl MOD06_0224F12C
b _0203F91E
_0203F910:
mov r2, #0x2
mov r3, #0x20
- bl FUN_0224F12C
+ bl MOD06_0224F12C
b _0203F91E
_0203F91A:
bl ErrorHandling
@@ -12002,13 +12002,13 @@ FUN_0203F954: ; 0x0203F954 add r4, #0x80
ldr r0, [r4, #0x0]
ldr r0, [r0, #0x10]
- bl FUN_02239944
+ bl MOD06_02239944
b _0203F982
_0203F978:
add r4, #0x80
ldr r0, [r4, #0x0]
ldr r0, [r0, #0x10]
- bl FUN_02239AAC
+ bl MOD06_02239AAC
_0203F982:
mov r0, #0x1
pop {r4, pc}
@@ -12389,9 +12389,9 @@ FUN_0203FC80: ; 0x0203FC80 add r0, r5, #0x0
mov r1, #0x4
mov r2, #0x3
- bl FUN_021E8588
+ bl MOD05_021E8588
str r0, [r4, #0x0]
- bl FUN_021E84F4
+ bl MOD05_021E84F4
_0203FCAA:
mov r0, #0x0
pop {r3-r5, pc}
@@ -12411,9 +12411,9 @@ FUN_0203FCB0: ; 0x0203FCB0 cmp r0, #0x0
bne _0203FCD6
ldr r0, [r4, #0x0]
- bl FUN_021E856C
+ bl MOD05_021E856C
ldr r0, [r4, #0x0]
- bl FUN_021E85E4
+ bl MOD05_021E85E4
_0203FCD6:
mov r0, #0x0
pop {r3-r5, pc}
@@ -12535,7 +12535,7 @@ _0203FD8E: ldr r0, [r7, #0x74]
add r7, #0x80
ldr r1, [r7, #0x0]
- bl FUN_0223D3D0
+ bl MOD06_0223D3D0
mov r0, #0x1
add sp, #0x84
pop {r4-r7, pc}
@@ -12574,7 +12574,7 @@ _0203FDE6: ldr r2, [r2, r3]
ldr r1, [r4, #0x0]
mov r3, #0x0
- bl FUN_0223D3D0
+ bl MOD06_0223D3D0
mov r0, #0x1
add sp, #0x4
pop {r3-r4, pc}
@@ -12609,7 +12609,7 @@ _0203FE2A: ldr r2, [r2, r3]
ldr r1, [r4, #0x0]
mov r3, #0x1
- bl FUN_0223D3D0
+ bl MOD06_0223D3D0
mov r0, #0x1
add sp, #0x4
pop {r3-r4, pc}
@@ -12637,7 +12637,7 @@ FUN_0203FE48: ; 0x0203FE48 ldr r2, [r2, r3]
ldr r1, [r4, #0x0]
mov r3, #0x2
- bl FUN_0223D3D0
+ bl MOD06_0223D3D0
mov r0, #0x1
add sp, #0x4
pop {r3-r4, pc}
@@ -13575,7 +13575,7 @@ FUN_02040638: ; 0x02040638 ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
ldr r0, [r0, #0x1c]
- bl FUN_021F4608
+ bl MOD05_021F4608
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -13587,7 +13587,7 @@ FUN_0204064C: ; 0x0204064C ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
ldr r0, [r0, #0x1c]
- bl FUN_021F45E8
+ bl MOD05_021F45E8
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -13646,7 +13646,7 @@ _020406BA: FUN_020406C0: ; 0x020406C0
push {r3, lr}
ldr r0, [r0, #0x74]
- bl FUN_0224D3E8
+ bl MOD06_0224D3E8
mov r0, #0x1
pop {r3, pc}
@@ -13994,11 +13994,11 @@ FUN_02040964: ; 0x02040964 bl FUN_020394F0
add r5, r0, #0x0
mov r1, #0x1e
- blx _s32_div_f
+ bl _s32_div_f
add r7, r0, #0x0
add r0, r5, #0x0
mov r1, #0x1e
- blx _s32_div_f
+ bl _s32_div_f
add r2, r1, #0x0
ldr r0, [sp, #0x0]
add r1, r7, #0x0
@@ -15183,14 +15183,14 @@ FUN_02041354: ; 0x02041354 _02041360:
add r0, r5, #0x0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
str r1, [sp, #0x0]
str r0, [sp, #0x4]
add r0, r4, #0x0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x8]
@@ -15199,12 +15199,12 @@ _02041360: bne _020413AC
add r0, r5, #0x0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r4, #0x0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r6, #0x1
@@ -16556,7 +16556,7 @@ _02041E68: add r4, #0x80
add r5, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_02248CD0
+ bl MOD06_02248CD0
strh r0, [r5, #0x0]
b _02041FD2
_02041E88:
@@ -16584,7 +16584,7 @@ _02041E88: strh r0, [r5, #0x0]
ldr r0, [r4, #0x0]
add r1, r7, #0x0
- bl FUN_02249038
+ bl MOD06_02249038
strh r0, [r6, #0x0]
b _02041FD2
_02041ECA:
@@ -16623,12 +16623,12 @@ _02041ECA: ldr r1, [r5, #0x0]
add r2, r6, #0x0
add r3, r7, #0x0
- bl FUN_022490A0
+ bl MOD06_022490A0
b _02041FD2
_02041F24:
add r4, #0x80
ldr r0, [r4, #0x0]
- bl FUN_02248CC0
+ bl MOD06_02248CC0
b _02041FD2
_02041F2E:
add r0, r4, #0x0
@@ -16652,7 +16652,7 @@ _02041F2E: add r4, #0x80
strh r0, [r5, #0x0]
ldr r0, [r4, #0x0]
- bl FUN_022491FC
+ bl MOD06_022491FC
strh r0, [r6, #0x0]
b _02041FD2
_02041F68:
@@ -16684,7 +16684,7 @@ _02041F68: ldr r0, [r4, #0x0]
add r1, r6, #0x0
add r2, r7, #0x0
- bl FUN_02248F70
+ bl MOD06_02248F70
strh r0, [r5, #0x0]
b _02041FD2
_02041FB4:
@@ -16698,7 +16698,7 @@ _02041FB4: add r4, #0x80
add r5, r0, #0x0
ldr r0, [r4, #0x0]
- bl FUN_02248FE0
+ bl MOD06_02248FE0
strh r0, [r5, #0x0]
_02041FD2:
mov r0, #0x0
@@ -17053,7 +17053,7 @@ FUN_020422A8: ; 0x020422A8 ldr r0, [r0, #0x4]
add r4, r1, #0x0
ldr r0, [r0, #0x14]
- bl FUN_02252538
+ bl MOD20_02252538
add r2, r0, #0x0
add r0, r4, #0x0
mov r1, #0x0
@@ -17145,7 +17145,7 @@ FUN_02042354: ; 0x02042354 add r0, #0x80
ldr r0, [r0, #0x0]
add r0, #0xa8
- bl FUN_022434BC
+ bl MOD06_022434BC
mov r0, #0x0
pop {r3, pc}
@@ -17164,7 +17164,7 @@ FUN_02042364: ; 0x02042364 bl FUN_020377AC
add r1, r4, #0x0
add r2, r6, #0x0
- bl FUN_022434D0
+ bl MOD06_022434D0
add r5, #0x80
ldr r1, [r5, #0x0]
add r1, #0xa8
@@ -17180,7 +17180,7 @@ FUN_02042394: ; 0x02042394 ldr r0, [r0, #0x0]
add r0, #0xa8
ldr r0, [r0, #0x0]
- bl FUN_02243694
+ bl MOD06_02243694
add r4, #0x80
ldr r1, [r4, #0x0]
mov r0, #0x0
@@ -17333,7 +17333,7 @@ _02042406: ; jump table (using 16-bit offset) .short _020426E6 - _02042406 - 2; case 100
_020424D0:
add r0, r6, #0x0
- bl FUN_0224312C
+ bl MOD06_0224312C
strh r0, [r4, #0x0]
b _020426FA
_020424DA:
@@ -17341,76 +17341,76 @@ _020424DA: bne _020424EA
ldrb r0, [r5, #0xe]
ldr r1, [r1, #0xc]
- bl FUN_022432E4
+ bl MOD06_022432E4
strh r0, [r4, #0x0]
b _020426FA
_020424EA:
ldr r1, [r1, #0xc]
add r0, r6, #0x0
- bl FUN_022432E4
+ bl MOD06_022432E4
strh r0, [r4, #0x0]
b _020426FA
_020424F6:
- bl FUN_0224339C
+ bl MOD06_0224339C
b _020426FA
_020424FC:
ldr r0, [r1, #0xc]
bl FUN_0202A8CC
- bl FUN_022433A8
+ bl MOD06_022433A8
b _020426FA
_02042508:
ldr r0, [r1, #0xc]
bl FUN_0202A8CC
- bl FUN_022433B0
+ bl MOD06_022433B0
strh r0, [r4, #0x0]
b _020426FA
_02042516:
add r0, r1, #0x0
- bl FUN_022433B8
+ bl MOD06_022433B8
b _020426FA
_0204251E:
add r0, r1, #0x0
- bl FUN_022433F8
+ bl MOD06_022433F8
b _020426FA
_02042526:
ldr r0, [r1, #0xc]
add r1, r6, #0x0
- bl FUN_02243408
+ bl MOD06_02243408
strh r0, [r4, #0x0]
b _020426FA
_02042532:
ldr r1, [r1, #0xc]
mov r0, #0x0
mov r2, #0x2
- bl FUN_02243E74
+ bl MOD06_02243E74
strh r0, [r4, #0x0]
b _020426FA
_02042540:
mov r0, #0x0
ldr r1, [r1, #0xc]
add r2, r0, #0x0
- bl FUN_02243E74
+ bl MOD06_02243E74
strh r0, [r4, #0x0]
b _020426FA
_0204254E:
ldr r0, [r1, #0xc]
lsl r1, r6, #0x18
lsr r1, r1, #0x18
- bl FUN_02243428
+ bl MOD06_02243428
b _020426FA
_0204255A:
ldr r0, [r1, #0xc]
- bl FUN_02243448
+ bl MOD06_02243448
strh r0, [r4, #0x0]
b _020426FA
_02042564:
ldr r0, [r1, #0xc]
- bl FUN_0224345C
+ bl MOD06_0224345C
strh r0, [r4, #0x0]
b _020426FA
_0204256E:
ldr r0, [r1, #0xc]
- bl FUN_022434AC
+ bl MOD06_022434AC
strh r0, [r4, #0x0]
b _020426FA
_02042578:
@@ -17429,7 +17429,7 @@ _0204258A: add r2, r0, #0x0
ldr r1, [r7, #0x74]
add r0, r5, #0x0
- bl FUN_022436C8
+ bl MOD06_022436C8
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
@@ -17442,60 +17442,60 @@ _020425A2: add r1, r0, #0x0
ldr r2, [r2, #0xc]
add r0, r5, #0x0
- bl FUN_022436E8
+ bl MOD06_022436E8
strh r0, [r4, #0x0]
b _020426FA
_020425BC:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243780
+ bl MOD06_02243780
strh r0, [r4, #0x0]
b _020426FA
_020425C8:
add r0, r5, #0x0
- bl FUN_022438DC
+ bl MOD06_022438DC
strh r0, [r4, #0x0]
b _020426FA
_020425D2:
add r0, r5, #0x0
- bl FUN_022438E0
+ bl MOD06_022438E0
strh r0, [r4, #0x0]
b _020426FA
_020425DC:
add r0, r5, #0x0
- bl FUN_022438FC
+ bl MOD06_022438FC
strh r0, [r4, #0x0]
b _020426FA
_020425E6:
add r0, r5, #0x0
- bl FUN_02243920
+ bl MOD06_02243920
strh r0, [r4, #0x0]
b _020426FA
_020425F0:
add r0, r5, #0x0
- bl FUN_022439F8
+ bl MOD06_022439F8
b _020426FA
_020425F8:
add r0, r5, #0x0
- bl FUN_02243AD8
+ bl MOD06_02243AD8
b _020426FA
_02042600:
add r0, r5, #0x0
- bl FUN_02243BA8
+ bl MOD06_02243BA8
b _020426FA
_02042608:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243C5C
+ bl MOD06_02243C5C
b _020426FA
_02042612:
add r0, r5, #0x0
- bl FUN_02243D3C
+ bl MOD06_02243D3C
b _020426FA
_0204261A:
add r0, r5, #0x0
add r1, r6, #0x0
- bl FUN_02243DA0
+ bl MOD06_02243DA0
strh r0, [r4, #0x0]
b _020426FA
_02042626:
@@ -17507,45 +17507,45 @@ _02042626: ldr r0, [r7, #0x0]
add r1, r5, #0x0
ldr r0, [r0, #0x10]
- bl FUN_02243DB8
+ bl MOD06_02243DB8
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
_02042642:
add r0, r5, #0x0
- bl FUN_02243DC0
+ bl MOD06_02243DC0
strh r0, [r4, #0x0]
b _020426FA
_0204264C:
add r0, r5, #0x0
add r1, r6, #0x0
- bl FUN_02243DC4
+ bl MOD06_02243DC4
b _020426FA
_02042656:
add r0, r5, #0x0
- bl FUN_02243DD8
+ bl MOD06_02243DD8
strh r0, [r4, #0x0]
b _020426FA
_02042660:
add r0, r5, #0x0
- bl FUN_02243DE0
+ bl MOD06_02243DE0
strh r0, [r4, #0x0]
b _020426FA
_0204266A:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243E34
+ bl MOD06_02243E34
b _020426FA
_02042674:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243F18
+ bl MOD06_02243F18
strh r0, [r4, #0x0]
b _020426FA
_02042680:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243F50
+ bl MOD06_02243F50
strh r0, [r4, #0x0]
b _020426FA
_0204268C:
@@ -17568,7 +17568,7 @@ _020426A0: _020426AA:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243838
+ bl MOD06_02243838
b _020426FA
_020426B4:
add r0, r5, r6
@@ -17580,7 +17580,7 @@ _020426BE: ldr r1, [r1, #0xc]
add r0, r5, #0x0
mov r2, #0x1
- bl FUN_02243E74
+ bl MOD06_02243E74
strh r0, [r4, #0x0]
b _020426FA
_020426CC:
@@ -17593,7 +17593,7 @@ _020426CC: _020426DA:
ldr r1, [r1, #0xc]
add r0, r5, #0x0
- bl FUN_02243F9C
+ bl MOD06_02243F9C
strh r0, [r4, #0x0]
b _020426FA
_020426E6:
@@ -17741,7 +17741,7 @@ FUN_020427D0: ; 0x020427D0 ldr r0, _0204285C ; =0x00000884
mov r2, #0x46
add r0, r6, r0
- blx MI_CpuFill8
+ bl MI_CpuFill8
cmp r4, #0x0
beq _0204281E
cmp r4, #0x1
@@ -17756,14 +17756,14 @@ _0204281E: add r0, #0xa8
ldr r0, [r0, #0x0]
ldr r1, [r1, #0xc]
- bl FUN_022446FC
+ bl MOD06_022446FC
b _0204284C
_02042830:
add r5, #0x80
ldr r0, [r5, #0x0]
add r0, #0xa8
ldr r0, [r0, #0x0]
- bl FUN_02244758
+ bl MOD06_02244758
b _0204284C
_0204283E:
add r5, #0x80
@@ -17771,7 +17771,7 @@ _0204283E: add r1, r7, #0x0
add r0, #0xa8
ldr r0, [r0, #0x0]
- bl FUN_02244770
+ bl MOD06_02244770
_0204284C:
bl FUN_02031190
ldr r1, _02042860 ; =0x0000083E
@@ -17924,7 +17924,7 @@ FUN_02042950: ; 0x02042950 ldr r0, [r5, #0x0]
add r1, r6, #0x0
add r2, r4, #0x0
- bl FUN_021E2A70
+ bl MOD05_021E2A70
str r0, [r7, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -17937,7 +17937,7 @@ FUN_02042980: ; 0x02042980 mov r1, #0x26
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E29B4
+ bl MOD05_021E29B4
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -17954,7 +17954,7 @@ FUN_02042998: ; 0x02042998 add r4, #0x80
ldr r0, [r4, #0x0]
ldr r1, [r1, #0x0]
- bl FUN_021E2AD4
+ bl MOD05_021E2AD4
mov r0, #0x0
pop {r4, pc}
.balign 4
@@ -18698,7 +18698,7 @@ FUN_02042F6C: ; 0x02042F6C add r2, r7, #0x0
bl FUN_020671BC
add r6, r0, #0x0
- blx OS_GetTick
+ bl OS_GetTick
bl FUN_0201BA10
add r1, r0, #0x0
ldr r0, [sp, #0x14]
@@ -20033,7 +20033,7 @@ FUN_02043A44: ; 0x02043A44 ldr r0, [r4, #0x0]
lsr r1, r1, #0x18
lsr r2, r2, #0x18
- bl FUN_021E2950
+ bl MOD05_021E2950
str r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -20046,7 +20046,7 @@ FUN_02043A94: ; 0x02043A94 mov r1, #0x26
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E29B4
+ bl MOD05_021E29B4
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -20063,7 +20063,7 @@ FUN_02043AAC: ; 0x02043AAC add r4, #0x80
ldr r0, [r4, #0x0]
ldr r1, [r1, #0x0]
- bl FUN_021E29C8
+ bl MOD05_021E29C8
mov r0, #0x0
pop {r4, pc}
.balign 4
@@ -20423,7 +20423,7 @@ FUN_02043D78: ; 0x02043D78 ldr r0, [r4, #0x0]
lsr r1, r1, #0x18
lsr r2, r2, #0x18
- bl FUN_021E27E8
+ bl MOD05_021E27E8
str r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -20436,7 +20436,7 @@ FUN_02043DC8: ; 0x02043DC8 mov r1, #0x27
bl FUN_02039438
ldr r0, [r0, #0x0]
- bl FUN_021E288C
+ bl MOD05_021E288C
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -20453,7 +20453,7 @@ FUN_02043DE0: ; 0x02043DE0 add r4, #0x80
ldr r0, [r4, #0x0]
ldr r1, [r1, #0x0]
- bl FUN_021E28A0
+ bl MOD05_021E28A0
mov r0, #0x0
pop {r4, pc}
.balign 4
@@ -20470,7 +20470,7 @@ FUN_02043E00: ; 0x02043E00 add r0, r5, #0x0
bl FUN_02023D58
ldr r1, [r4, #0x0]
- bl FUN_021ED4E0
+ bl MOD05_021ED4E0
mov r0, #0x0
pop {r3-r5, pc}
@@ -20491,7 +20491,7 @@ FUN_02043E20: ; 0x02043E20 add r0, r4, #0x0
mov r1, #0x8
bl FUN_02022610
- bl FUN_021ED5EC
+ bl MOD05_021ED5EC
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -20505,7 +20505,7 @@ FUN_02043E50: ; 0x02043E50 mov r1, #0x8
ldr r0, [r0, #0xc]
bl FUN_02022610
- bl FUN_021ECD64
+ bl MOD05_021ECD64
mov r0, #0x0
pop {r3, pc}
.balign 4
@@ -20530,7 +20530,7 @@ FUN_02043E68: ; 0x02043E68 add r2, r0, #0x0
add r0, r6, #0x0
add r1, r5, #0x0
- bl FUN_021ED0CC
+ bl MOD05_021ED0CC
mov r0, #0x0
pop {r4-r6, pc}
@@ -20570,7 +20570,7 @@ FUN_02043E9C: ; 0x02043E9C ldr r1, [r7, #0x0]
add r2, r6, #0x0
lsr r3, r3, #0x18
- bl FUN_021EC71C
+ bl MOD05_021EC71C
ldr r1, [sp, #0x0]
strh r0, [r1, #0x0]
mov r0, #0x0
@@ -20609,7 +20609,7 @@ FUN_02043EFC: ; 0x02043EFC lsl r1, r4, #0x18
ldr r2, [r7, #0x0]
lsr r1, r1, #0x18
- bl FUN_021EC854
+ bl MOD05_021EC854
strh r0, [r6, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -20645,7 +20645,7 @@ FUN_02043F50: ; 0x02043F50 bl FUN_02022610
ldr r2, [r6, #0x0]
add r1, r5, #0x0
- bl FUN_021EC864
+ bl MOD05_021EC864
strh r0, [r7, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -20682,7 +20682,7 @@ FUN_02043FA0: ; 0x02043FA0 bl FUN_0206BB1C
ldr r2, [r6, #0x0]
add r1, r7, #0x0
- bl FUN_021ED5C4
+ bl MOD05_021ED5C4
strh r0, [r4, #0x0]
mov r0, #0x0
pop {r3-r7, pc}
@@ -20713,7 +20713,7 @@ FUN_02043FF4: ; 0x02043FF4 add r0, r4, #0x0
lsr r1, r1, #0x18
add r3, r5, #0x0
- bl FUN_021EC57C
+ bl MOD05_021EC57C
mov r0, #0x0
pop {r4-r6, pc}
.balign 4
@@ -20775,7 +20775,7 @@ FUN_02044034: ; 0x02044034 lsr r1, r1, #0x18
lsr r2, r2, #0x18
lsr r3, r3, #0x18
- bl FUN_021ED52C
+ bl MOD05_021ED52C
mov r0, #0x0
add sp, #0x10
pop {r3-r7, pc}
@@ -20797,7 +20797,7 @@ FUN_020440C0: ; 0x020440C0 add r0, r4, #0x0
mov r1, #0x8
bl FUN_02022610
- bl FUN_021ED644
+ bl MOD05_021ED644
strh r0, [r5, #0x0]
mov r0, #0x0
pop {r3-r5, pc}
@@ -20914,7 +20914,7 @@ FUN_02044198: ; 0x02044198 add r5, r0, #0x0
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
cmp r0, #0xf
@@ -21263,7 +21263,7 @@ FUN_02044414: ; 0x02044414 add r0, r4, #0x0
mov r2, #0x1
add r3, r7, #0x0
- bl FUN_021ECF14
+ bl MOD05_021ECF14
add r0, r6, #0x0
add r1, r4, #0x0
bl FUN_0206B900
@@ -21824,7 +21824,7 @@ FUN_020448D4: ; 0x020448D4 mov r0, #0x96
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0204495A:
diff --git a/arm9/asm/secure.s b/arm9/asm/secure.s index 632f43bc..f97ccac8 100644 --- a/arm9/asm/secure.s +++ b/arm9/asm/secure.s @@ -3,7 +3,14 @@ .section .text -.incbin "baserom.nds", 0x4000, 0x19E +.incbin "baserom.nds", 0x4000, 0xC8 + non_word_aligned_thumb_func_start SVC_GetCRC16 +SVC_GetCRC16: ; 0x020000C8 + swi 14 + bx lr + thumb_func_end SVC_GetCRC16 + +.incbin "baserom.nds", 0x40CC, 0xD2 non_word_aligned_thumb_func_start SVC_Sqrt SVC_Sqrt: ; 0x0200019E diff --git a/arm9/asm/unk_02000E0C.s b/arm9/asm/unk_02000E0C.s index 9c67c9fd..15275ac8 100644 --- a/arm9/asm/unk_02000E0C.s +++ b/arm9/asm/unk_02000E0C.s @@ -2,337 +2,8 @@ .include "global.inc" .text - - thumb_func_start FUN_02000E0C -FUN_02000E0C: ; 0x02000E0C - push {r3, lr} - ldr r0, _02000E74 ; =0x02106FA0 - ldr r1, [r0, #0xc] - cmp r1, #0x0 - bne _02000E4A - ldr r1, [r0, #0x14] - cmp r1, #0x0 - beq _02000E70 - mov r1, #0x0 - ldr r0, [r0, #0x10] - mvn r1, r1 - cmp r0, r1 - beq _02000E2C - mov r1, #0x0 - bl HandleLoadOverlay -_02000E2C: - ldr r0, _02000E74 ; =0x02106FA0 - mov r2, #0x0 - ldr r1, [r0, #0x10] - str r1, [r0, #0x8] - ldr r0, [r0, #0x14] - ldr r1, _02000E78 ; =0x02106FB8 - bl FUN_02006234 - ldr r1, _02000E74 ; =0x02106FA0 - str r0, [r1, #0xc] - mov r0, #0x0 - mvn r0, r0 - str r0, [r1, #0x10] - mov r0, #0x0 - str r0, [r1, #0x14] -_02000E4A: - ldr r0, _02000E74 ; =0x02106FA0 - ldr r0, [r0, #0xc] - bl FUN_02006290 - cmp r0, #0x0 - beq _02000E70 - ldr r0, _02000E74 ; =0x02106FA0 - ldr r0, [r0, #0xc] - bl FUN_02006260 - ldr r0, _02000E74 ; =0x02106FA0 - mov r1, #0x0 - str r1, [r0, #0xc] - ldr r0, [r0, #0x8] - sub r1, r1, #0x1 - cmp r0, r1 - beq _02000E70 - bl UnloadOverlayByID -_02000E70: - pop {r3, pc} - nop -_02000E74: .word 0x02106FA0 -_02000E78: .word 0x02106FB8 - - thumb_func_start FUN_02000E7C -FUN_02000E7C: ; 0x02000E7C - push {r3-r5, lr} - add r5, r0, #0x0 - ldr r0, _02000E98 ; =0x02106FA0 - add r4, r1, #0x0 - ldr r0, [r0, #0x14] - cmp r0, #0x0 - beq _02000E8E - bl ErrorHandling -_02000E8E: - ldr r0, _02000E98 ; =0x02106FA0 - str r5, [r0, #0x10] - str r4, [r0, #0x14] - pop {r3-r5, pc} - nop -_02000E98: .word 0x02106FA0 - - thumb_func_start FUN_02000E9C -FUN_02000E9C: ; 0x02000E9C - push {r3, lr} - bl FUN_0202FB80 - mov r0, #0x1 - add r1, r0, #0x0 - blx OS_WaitIrq - ldr r0, _02000EC4 ; =0x021C48B8 - ldr r1, [r0, #0x2c] - add r1, r1, #0x1 - str r1, [r0, #0x2c] - mov r1, #0x0 - str r1, [r0, #0x30] - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _02000EC0 - ldr r0, [r0, #0x4] - blx r1 -_02000EC0: - pop {r3, pc} - nop -_02000EC4: .word 0x021C48B8 - - thumb_func_start FUN_02000EC8 -FUN_02000EC8: ; 0x02000EC8 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02033678 - cmp r0, #0x0 - beq _02000EE2 - blx CARD_TryWaitBackupAsync - cmp r0, #0x1 - bne _02000EE2 - add r0, r4, #0x0 - blx OS_ResetSystem -_02000EE2: - bl FUN_02000E9C - pop {r4, pc} - - thumb_func_start FUN_02000EE8 -FUN_02000EE8: ; 0x02000EE8 - push {r3, lr} - bl FUN_020335B8 - add r1, r0, #0x0 - cmp r1, #0x1 - beq _02000EFE - cmp r1, #0x2 - beq _02000F06 - cmp r1, #0x3 - beq _02000F0E - pop {r3, pc} -_02000EFE: - mov r0, #0x1 - bl FUN_02000F4C - pop {r3, pc} -_02000F06: - mov r0, #0x0 - bl FUN_02000F4C - pop {r3, pc} -_02000F0E: - mov r0, #0x1 - bl FUN_02000F4C - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02000F18 -FUN_02000F18: ; 0x02000F18 - push {r4, lr} - ldr r1, _02000F48 ; =0x00007FFF - add r4, r0, #0x0 - mov r0, #0x0 - bl FUN_0200E3A0 - ldr r1, _02000F48 ; =0x00007FFF - mov r0, #0x1 - bl FUN_0200E3A0 - bl FUN_02032DAC - cmp r0, #0x0 - beq _02000F3C - bl FUN_020225F8 - bl FUN_0202287C -_02000F3C: - bl FUN_02000FE8 - add r0, r4, #0x0 - bl FUN_02000EC8 - b _02000F3C - .balign 4 -_02000F48: .word 0x00007FFF - - thumb_func_start FUN_02000F4C -FUN_02000F4C: ; 0x02000F4C - push {r4-r6, lr} - add r6, r0, #0x0 - cmp r1, #0x3 - bne _02000F60 - mov r0, #0x0 - mov r1, #0x3 - add r2, r0, #0x0 - bl FUN_02033F70 - b _02000F7A -_02000F60: - cmp r6, #0x0 - bne _02000F70 - mov r0, #0x0 - mov r1, #0x2 - add r2, r0, #0x0 - bl FUN_02033F70 - b _02000F7A -_02000F70: - mov r0, #0x0 - add r1, r0, #0x0 - add r2, r0, #0x0 - bl FUN_02033F70 -_02000F7A: - bl FUN_02032DAC - ldr r5, _02000FA0 ; =0x021C48B8 - mov r4, #0x1 -_02000F82: - bl FUN_02000FE8 - bl FUN_02016464 - ldr r0, [r5, #0x48] - tst r0, r4 - bne _02000F96 - bl FUN_02000E9C - b _02000F82 -_02000F96: - add r0, r6, #0x0 - bl FUN_02000F18 - pop {r4-r6, pc} - nop -_02000FA0: .word 0x021C48B8 - - thumb_func_start FUN_02000FA4 -FUN_02000FA4: ; 0x02000FA4 - push {r4-r5, lr} - sub sp, #0x1c - add r0, sp, #0xc - add r1, sp, #0x0 - bl FUN_0201265C - ldr r0, _02000FE4 ; =0x021C48B8 - ldr r3, [sp, #0x10] - ldr r4, [r0, #0x2c] - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x8] - ldr r5, [sp, #0x14] - add r0, r1, r0 - lsl r2, r0, #0x18 - ldr r0, [sp, #0x0] - lsl r3, r3, #0x8 - lsl r1, r0, #0x10 - mul r3, r5 - ldr r0, [sp, #0xc] - lsl r3, r3, #0x10 - add r0, r0, r3 - add r0, r1, r0 - add r5, r2, r0 - add r0, r4, r5 - bl FUN_0201BA1C - add r0, r4, r5 - bl FUN_0201B9E0 - add sp, #0x1c - pop {r4-r5, pc} - nop -_02000FE4: .word 0x021C48B8 - - thumb_func_start FUN_02000FE8 -FUN_02000FE8: ; 0x02000FE8 - push {r3-r7, lr} - sub sp, #0x8 - ldr r0, _0200109C ; =0x027FFFA8 - ldrh r1, [r0, #0x0] - mov r0, #0x2 - lsl r0, r0, #0xe - and r0, r1 - asr r0, r0, #0xf - beq _0200107E - ldr r0, _020010A0 ; =0x021C4918 - ldrb r0, [r0, #0x7] - cmp r0, #0x0 - bne _02001064 - bl FUN_0201CE04 - blx CTRDG_IsPulledOut - cmp r0, #0x1 - bne _02001014 - ldr r0, _020010A4 ; =0x02106FA0 - mov r1, #0x1 - str r1, [r0, #0x4] -_02001014: - ldr r6, _020010A4 ; =0x02106FA0 - mov r0, #0xc - ldr r1, [r6, #0x4] - ldr r4, _0200109C ; =0x027FFFA8 - mov r2, #0x10 - add r5, r0, #0x0 - ldr r7, _020010A0 ; =0x021C4918 - orr r5, r2 -_02001024: - ldrb r2, [r7, #0x6] - mov r0, #0xc - cmp r2, #0x0 - beq _02001032 - cmp r1, #0x0 - bne _02001032 - add r0, r5, #0x0 -_02001032: - mov r1, #0x0 - add r2, r1, #0x0 - blx PM_GoSleepMode - blx CARD_IsPulledOut - cmp r0, #0x0 - beq _02001048 - blx PM_ForceToPowerOff - b _0200105C -_02001048: - ldrh r1, [r4, #0x0] - mov r0, #0x2 - lsl r0, r0, #0xe - and r0, r1 - asr r0, r0, #0xf - beq _0200105C - mov r0, #0x1 - str r0, [r6, #0x4] - add r1, r0, #0x0 - b _02001024 -_0200105C: - bl FUN_0201CDD0 - add sp, #0x8 - pop {r3-r7, pc} -_02001064: - add r0, sp, #0x4 - add r1, sp, #0x0 - blx PM_GetBackLight - ldr r0, [sp, #0x4] - cmp r0, #0x1 - bne _02001096 - mov r0, #0x2 - mov r1, #0x0 - blx PM_SetBackLight - add sp, #0x8 - pop {r3-r7, pc} -_0200107E: - add r0, sp, #0x4 - add r1, sp, #0x0 - blx PM_GetBackLight - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bne _02001096 - ldr r1, _020010A4 ; =0x02106FA0 - mov r0, #0x2 - ldr r1, [r1, #0x0] - blx PM_SetBackLight -_02001096: - add sp, #0x8 - pop {r3-r7, pc} - nop -_0200109C: .word 0x027FFFA8 -_020010A0: .word 0x021C4918 -_020010A4: .word 0x02106FA0 + .extern FUN_02000E9C + .extern FUN_02000EC8 thumb_func_start FUN_020010A8 FUN_020010A8: ; 0x020010A8 @@ -2291,7 +1962,7 @@ _02001ECE: ldrb r4, [r5, #0x15] add r1, r6, #0x0 add r0, r4, #0x0 - blx _s32_div_f + bl _s32_div_f cmp r1, #0x0 bne _02001EF2 ldrb r0, [r5, #0xb] @@ -2323,7 +1994,7 @@ _02001F08: ldrb r6, [r5, #0x15] sub r4, r1, #0x1 add r0, r6, #0x0 - blx _s32_div_f + bl _s32_div_f cmp r4, r1 bne _02001F2A ldrb r0, [r5, #0xb] @@ -2393,7 +2064,7 @@ _02001F72: mov r0, #0x0 pop {r4-r6, pc} _02001F8A: - blx _s32_div_f + bl _s32_div_f lsl r0, r1, #0x18 asr r2, r0, #0x18 b _02001F9A @@ -2563,7 +2234,7 @@ FUN_020020B0: ; 0x020020B0 ldrb r1, [r5, #0xa] add r0, r7, #0x0 add r6, r2, #0x0 - blx _s32_div_f + bl _s32_div_f ldrb r2, [r5, #0x19] ldrb r1, [r5, #0x16] lsl r2, r2, #0x1 @@ -2572,7 +2243,7 @@ FUN_020020B0: ; 0x020020B0 strb r1, [r4, #0x0] ldrb r1, [r5, #0xa] add r0, r7, #0x0 - blx _s32_div_f + bl _s32_div_f ldrb r2, [r5, #0xb] ldrb r3, [r5, #0x1a] ldrb r0, [r5, #0x18] diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s index 0e8dfbdf..3295bcc9 100644 --- a/arm9/asm/unk_020023C0.s +++ b/arm9/asm/unk_020023C0.s @@ -1631,7 +1631,7 @@ FUN_02002FD0: ; 0x02002FD0 mov r1, #0x0 lsl r2, r2, #0x4 add r4, r0, #0x0 - blx MI_CpuFill8 + bl MI_CpuFill8 add r0, r4, #0x0 pop {r4, pc} .balign 4 @@ -1710,13 +1710,13 @@ FUN_02003054: ; 0x02003054 lsl r4, r3, #0x1 add r1, r1, r4 add r2, r7, #0x0 - blx MIi_CpuCopy16 + bl MIi_CpuCopy16 add r1, r5, r6 ldr r1, [r1, #0x4] ldr r0, [sp, #0x0] add r1, r1, r4 add r2, r7, #0x0 - blx MIi_CpuCopy16 + bl MIi_CpuCopy16 pop {r3-r7, pc} .balign 4 @@ -1876,7 +1876,7 @@ _0200319A: lsl r0, r0, #0x1 add r0, r1, r0 ldr r1, [sp, #0x14] - blx MIi_CpuCopy16 + bl MIi_CpuCopy16 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} @@ -1904,7 +1904,7 @@ FUN_020031B8: ; 0x020031B8 ldr r1, [r5, r6] add r0, r0, r4 add r1, r1, r7 - blx MIi_CpuCopy16 + bl MIi_CpuCopy16 ldr r0, [sp, #0x4] add r1, r5, r6 ldr r0, [r5, r0] @@ -1912,7 +1912,7 @@ FUN_020031B8: ; 0x020031B8 ldr r2, [sp, #0x0] add r0, r0, r4 add r1, r1, r7 - blx MIi_CpuCopy16 + bl MIi_CpuCopy16 add sp, #0x8 pop {r3-r7, pc} .balign 4 @@ -2156,7 +2156,7 @@ FUN_020033A4: ; 0x020033A4 cmp r2, #0x0 bge _020033D4 add r0, r2, #0x0 - blx abs + bl abs add r0, r0, #0x2 ldrh r1, [r5, #0x6] mov r2, #0xf @@ -2659,7 +2659,7 @@ _02003750: _02003770: ldr r0, [r4, #0x4] ldr r1, [r4, #0x8] - blx DC_FlushRange + bl DC_FlushRange cmp r5, #0xd bls _0200377E _0200377C: @@ -2690,109 +2690,109 @@ _020037A6: ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 - blx GX_LoadBGPltt + bl GX_LoadBGPltt b _020038A4 _020037B2: ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 - blx GXS_LoadBGPltt + bl GXS_LoadBGPltt b _020038A4 _020037BE: ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 - blx GX_LoadOBJPltt + bl GX_LoadOBJPltt b _020038A4 _020037CA: ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 - blx GXS_LoadOBJPltt + bl GXS_LoadOBJPltt b _020038A4 _020037D6: - blx GX_BeginLoadBGExtPltt + bl GX_BeginLoadBGExtPltt ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 - blx GX_LoadBGExtPltt - blx GX_EndLoadBGExtPltt + bl GX_LoadBGExtPltt + bl GX_EndLoadBGExtPltt b _020038A4 _020037EA: - blx GX_BeginLoadBGExtPltt + bl GX_BeginLoadBGExtPltt ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] add r1, r7, #0x0 - blx GX_LoadBGExtPltt - blx GX_EndLoadBGExtPltt + bl GX_LoadBGExtPltt + bl GX_EndLoadBGExtPltt b _020038A4 _020037FE: - blx GX_BeginLoadBGExtPltt + bl GX_BeginLoadBGExtPltt mov r1, #0x1 ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] lsl r1, r1, #0xe - blx GX_LoadBGExtPltt - blx GX_EndLoadBGExtPltt + bl GX_LoadBGExtPltt + bl GX_EndLoadBGExtPltt b _020038A4 _02003814: - blx GX_BeginLoadBGExtPltt + bl GX_BeginLoadBGExtPltt mov r1, #0x6 ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] lsl r1, r1, #0xc - blx GX_LoadBGExtPltt - blx GX_EndLoadBGExtPltt + bl GX_LoadBGExtPltt + bl GX_EndLoadBGExtPltt b _020038A4 _0200382A: - blx GXS_BeginLoadBGExtPltt + bl GXS_BeginLoadBGExtPltt ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 - blx GXS_LoadBGExtPltt - blx GXS_EndLoadBGExtPltt + bl GXS_LoadBGExtPltt + bl GXS_EndLoadBGExtPltt b _020038A4 _0200383E: - blx GXS_BeginLoadBGExtPltt + bl GXS_BeginLoadBGExtPltt ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] add r1, r7, #0x0 - blx GXS_LoadBGExtPltt - blx GXS_EndLoadBGExtPltt + bl GXS_LoadBGExtPltt + bl GXS_EndLoadBGExtPltt b _020038A4 _02003852: - blx GXS_BeginLoadBGExtPltt + bl GXS_BeginLoadBGExtPltt mov r1, #0x1 ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] lsl r1, r1, #0xe - blx GXS_LoadBGExtPltt - blx GXS_EndLoadBGExtPltt + bl GXS_LoadBGExtPltt + bl GXS_EndLoadBGExtPltt b _020038A4 _02003868: - blx GXS_BeginLoadBGExtPltt + bl GXS_BeginLoadBGExtPltt mov r1, #0x6 ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] lsl r1, r1, #0xc - blx GXS_LoadBGExtPltt - blx GXS_EndLoadBGExtPltt + bl GXS_LoadBGExtPltt + bl GXS_EndLoadBGExtPltt b _020038A4 _0200387E: - blx GX_BeginLoadOBJExtPltt + bl GX_BeginLoadOBJExtPltt ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 - blx GX_LoadOBJExtPltt - blx GX_EndLoadOBJExtPltt + bl GX_LoadOBJExtPltt + bl GX_EndLoadOBJExtPltt b _020038A4 _02003892: - blx GXS_BeginLoadOBJExtPltt + bl GXS_BeginLoadOBJExtPltt ldr r0, [r4, #0x4] ldr r2, [r4, #0x8] mov r1, #0x0 - blx GXS_LoadOBJExtPltt - blx GXS_EndLoadOBJExtPltt + bl GXS_LoadOBJExtPltt + bl GXS_EndLoadOBJExtPltt _020038A4: add r5, r5, #0x1 add r4, #0x14 @@ -2887,7 +2887,7 @@ _0200393A: ldr r0, [sp, #0x0] sub r2, r2, r5 lsl r2, r2, #0x1 - blx MIi_CpuClear16 + bl MIi_CpuClear16 _02003952: cmp r7, #0x0 beq _0200395A @@ -2902,7 +2902,7 @@ _0200395A: ldr r0, [sp, #0x0] sub r2, r2, r5 lsl r2, r2, #0x1 - blx MIi_CpuClear16 + bl MIi_CpuClear16 _0200396E: add sp, #0x8 pop {r3-r7, pc} @@ -3216,14 +3216,14 @@ FUN_02003B98: ; 0x02003B98 add r6, r1, #0x0 bl FUN_02003D30 add r4, r0, #0x0 - blx FUN_020C01D0 + bl FUN_020C01D0 bl FUN_020040C8 add r0, r4, #0x0 bl FUN_02004064 add r0, r4, #0x0 ldr r1, _02003C00 ; =0x000BBC00 add r0, #0x94 - blx FUN_020C2A94 + bl FUN_020C2A94 add r1, r4, #0x0 add r1, #0x90 str r0, [r1, #0x0] @@ -3233,11 +3233,11 @@ FUN_02003B98: ; 0x02003B98 ldr r2, [r2, #0x0] add r0, r4, #0x0 mov r3, #0x0 - blx FUN_020C26F8 + bl FUN_020C26F8 add r0, r4, #0x0 add r0, #0x90 ldr r0, [r0, #0x0] - blx FUN_020C39CC + bl FUN_020C39CC add r0, r4, #0x0 bl FUN_02004088 add r0, r4, #0x0 @@ -3276,7 +3276,7 @@ _02003C2C: bl FUN_02003C40 _02003C30: bl FUN_02005CFC - blx FUN_020C01A0 + bl FUN_020C01A0 pop {r4, pc} nop _02003C3C: .word 0x000BCD00 @@ -3672,7 +3672,7 @@ FUN_02003F3C: ; 0x02003F3C bl FUN_02003D30 add r0, #0x90 ldr r0, [r0, #0x0] - blx FUN_020C290C + bl FUN_020C290C add r4, r0, #0x0 mov r0, #0x0 mvn r0, r0 @@ -3695,7 +3695,7 @@ FUN_02003F64: ; 0x02003F64 add r0, #0x90 ldr r0, [r0, #0x0] add r1, r4, #0x0 - blx FUN_020C2828 + bl FUN_020C2828 pop {r4, pc} thumb_func_start FUN_02003F78 @@ -3707,7 +3707,7 @@ FUN_02003F78: ; 0x02003F78 add r1, #0x90 ldr r1, [r1, #0x0] add r0, r4, #0x0 - blx FUN_020C36A8 + bl FUN_020C36A8 pop {r4, pc} .balign 4 @@ -3720,7 +3720,7 @@ FUN_02003F90: ; 0x02003F90 add r1, #0x90 ldr r1, [r1, #0x0] add r0, r4, #0x0 - blx FUN_020C3674 + bl FUN_020C3674 pop {r4, pc} .balign 4 @@ -3735,7 +3735,7 @@ FUN_02003FA8: ; 0x02003FA8 ldr r2, [r2, #0x0] add r0, r5, #0x0 add r1, r4, #0x0 - blx FUN_020C35E0 + bl FUN_020C35E0 pop {r3-r5, pc} .balign 4 @@ -3748,7 +3748,7 @@ FUN_02003FC4: ; 0x02003FC4 add r1, #0x90 ldr r1, [r1, #0x0] add r0, r4, #0x0 - blx FUN_020C360C + bl FUN_020C360C pop {r4, pc} .balign 4 @@ -3761,7 +3761,7 @@ FUN_02003FDC: ; 0x02003FDC add r1, #0x90 ldr r1, [r1, #0x0] add r0, r4, #0x0 - blx FUN_020C3640 + bl FUN_020C3640 pop {r4, pc} .balign 4 @@ -3840,7 +3840,7 @@ FUN_02004064: ; 0x02004064 ldr r2, _02004080 ; =0x000BCD60 mov r1, #0x0 add r4, r0, #0x0 - blx Call_FillMemWithValue + bl Call_FillMemWithValue ldr r0, _02004084 ; =0x000BCD1C mov r1, #0x0 _02004074: @@ -3862,7 +3862,7 @@ FUN_02004088: ; 0x02004088 add r5, r0, r1 _02004090: add r0, r5, #0x0 - blx FUN_020C0F80 + bl FUN_020C0F80 add r4, r4, #0x1 add r5, r5, #0x4 cmp r4, #0x9 @@ -3891,11 +3891,11 @@ _020040C4: .word 0x000BCD20 thumb_func_start FUN_020040C8 FUN_020040C8: ; 0x020040C8 push {r3, lr} - blx MIC_Init + bl MIC_Init mov r0, #0x1 - blx PM_SetAmp + bl PM_SetAmp mov r0, #0x2 - blx PM_SetAmpGain + bl PM_SetAmpGain pop {r3, pc} thumb_func_start FUN_020040DC @@ -3903,10 +3903,10 @@ FUN_020040DC: ; 0x020040DC push {r3, lr} mov r0, #0x7 mov r1, #0x0 - blx FUN_020C1040 + bl FUN_020C1040 mov r0, #0x7 bl FUN_02003FF4 - blx FUN_020C0F68 + bl FUN_020C0F68 pop {r3, pc} .balign 4 @@ -4814,7 +4814,7 @@ _02004800: add r0, r4, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 - blx FUN_020C0F8C + bl FUN_020C0F8C strb r5, [r6, #0x0] _0200480E: pop {r4-r6, pc} @@ -4840,7 +4840,7 @@ FUN_02004828: ; 0x02004828 bl FUN_02003FF4 add r1, r5, #0x0 add r2, r4, #0x0 - blx FUN_020C0EF4 + bl FUN_020C0EF4 pop {r3-r5, pc} thumb_func_start FUN_0200483C @@ -4856,7 +4856,7 @@ _02004844: _0200484A: bl FUN_02003FF4 add r1, r4, #0x0 - blx FUN_020C0F30 + bl FUN_020C0F30 pop {r4, pc} .balign 4 @@ -4864,7 +4864,7 @@ _0200484A: FUN_02004858: ; 0x02004858 push {r3-r5, lr} add r5, r1, #0x0 - blx FUN_020C23FC + bl FUN_020C23FC cmp r5, #0x1 beq _02004868 cmp r5, #0x8 @@ -4882,7 +4882,7 @@ _02004872: bne _0200488A add r0, r4, #0x0 mov r1, #0x5 - blx _s32_div_f + bl _s32_div_f add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0200483C @@ -4910,7 +4910,7 @@ FUN_020048A0: ; 0x020048A0 add r1, r5, #0x0 add r3, r2, #0x0 str r4, [sp, #0x0] - blx FUN_020C3910 + bl FUN_020C3910 pop {r3-r5, pc} .balign 4 @@ -4922,7 +4922,7 @@ FUN_020048BC: ; 0x020048BC bl ErrorHandling _020048C6: add r0, r4, #0x0 - blx FUN_020C0F50 + bl FUN_020C0F50 pop {r4, pc} .balign 4 @@ -4934,7 +4934,7 @@ FUN_020048D0: ; 0x020048D0 mov r0, #0xff pop {r3, pc} _020048DA: - blx FUN_020C23FC + bl FUN_020C23FC cmp r0, #0x0 bne _020048E6 mov r0, #0xff @@ -4955,13 +4955,13 @@ _020048F0: .word FUN_020C0E14 FUN_020048F4: ; 0x020048F4 push {r3, lr} bl FUN_02004900 - blx FUN_020C22D0 + bl FUN_020C22D0 pop {r3, pc} thumb_func_start FUN_02004900 FUN_02004900: ; 0x02004900 push {r3, lr} - blx FUN_020C23FC + bl FUN_020C23FC cmp r0, #0x0 bne _0200490E mov r0, #0x0 @@ -4982,13 +4982,13 @@ _02004918: .word MIC_StartAutoSampling FUN_0200491C: ; 0x0200491C push {r3, lr} bl FUN_02003D30 - blx MIC_StopAutoSampling + bl MIC_StopAutoSampling pop {r3, pc} thumb_func_start FUN_02004928 FUN_02004928: ; 0x02004928 push {r3, lr} - blx MIC_DoSamplingAsync + bl MIC_DoSamplingAsync pop {r3, pc} thumb_func_start FUN_02004930 @@ -5058,7 +5058,7 @@ _020049A8: bl FUN_02003D38 add r4, r0, #0x0 add r0, r5, #0x0 - blx FUN_020C0688 + bl FUN_020C0688 str r0, [r4, #0x0] cmp r0, #0x0 bne _020049CA @@ -5079,7 +5079,7 @@ _020049D6: bl FUN_02003D38 add r6, r0, #0x0 add r0, r5, #0x0 - blx FUN_020C0688 + bl FUN_020C0688 str r0, [r6, #0x0] cmp r0, #0x0 bne _020049F4 @@ -5122,7 +5122,7 @@ _02004A2A: add r0, r5, #0x0 bl FUN_02004930 ldr r0, [r0, #0x0] - blx FUN_020C0670 + bl FUN_020C0670 mov r0, #0x0 strb r0, [r6, #0x0] pop {r4-r6, pc} @@ -5136,7 +5136,7 @@ _02004A4C: add r0, r5, #0x0 bl FUN_02004930 ldr r0, [r0, #0x0] - blx FUN_020C0670 + bl FUN_020C0670 mov r0, #0x0 strb r0, [r4, #0x0] pop {r4-r6, pc} @@ -5168,7 +5168,7 @@ FUN_02004A6C: ; 0x02004A6C ldr r2, [r3, #0x8] ldr r0, [r0, #0x0] ldr r3, [r3, #0xc] - blx FUN_020C054C + bl FUN_020C054C add r5, r0, #0x0 bne _02004AA4 add r0, r4, #0x0 @@ -5184,7 +5184,7 @@ FUN_02004AAC: ; 0x02004AAC push {r3, lr} bl FUN_02004930 ldr r0, [r0, #0x0] - blx FUN_020C0510 + bl FUN_020C0510 pop {r3, pc} .balign 4 @@ -5193,7 +5193,7 @@ FUN_02004ABC: ; 0x02004ABC push {r3, lr} bl FUN_02004930 ldr r0, [r0, #0x0] - blx FUN_020C03B8 + bl FUN_020C03B8 pop {r3, pc} .balign 4 @@ -5208,7 +5208,7 @@ _02004AD6: bl FUN_02004930 ldr r0, [r0, #0x0] add r1, r4, #0x0 - blx FUN_020C041C + bl FUN_020C041C pop {r4, pc} thumb_func_start FUN_02004AE4 @@ -5218,7 +5218,7 @@ FUN_02004AE4: ; 0x02004AE4 bl FUN_02004930 ldr r0, [r0, #0x0] add r1, r4, #0x0 - blx FUN_020C044C + bl FUN_020C044C pop {r4, pc} .balign 4 @@ -5235,17 +5235,17 @@ FUN_02004AF8: ; 0x02004AF8 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x5 - blx _s32_div_f + bl _s32_div_f add r1, r0, #0x0 ldr r0, [r4, #0x0] - blx FUN_020C04DC + bl FUN_020C04DC pop {r3-r5, pc} _02004B20: add r0, r4, #0x0 bl FUN_02004930 ldr r0, [r0, #0x0] add r1, r5, #0x0 - blx FUN_020C04DC + bl FUN_020C04DC pop {r3-r5, pc} thumb_func_start FUN_02004B30 @@ -5267,7 +5267,7 @@ FUN_02004B30: ; 0x02004B30 bl ErrorHandling _02004B54: add r0, r6, #0x0 - blx FUN_020C226C + bl FUN_020C226C add r7, r0, #0x0 bne _02004B68 bl ErrorHandling @@ -5278,7 +5278,7 @@ _02004B68: ldr r0, [r7, #0x0] lsl r0, r0, #0x8 lsr r0, r0, #0x8 - blx FUN_020C217C + bl FUN_020C217C add r6, r0, #0x0 bne _02004B80 bl ErrorHandling @@ -5301,14 +5301,14 @@ _02004B80: _02004B9C: mov r1, #0x0 add r2, r6, #0x0 - blx Call_FillMemWithValue + bl Call_FillMemWithValue ldr r0, [r7, #0x0] ldr r1, [r4, #0x0] lsl r0, r0, #0x8 lsr r0, r0, #0x8 add r2, r6, #0x0 mov r3, #0x0 - blx FUN_020C2104 + bl FUN_020C2104 mov r1, #0x0 mvn r1, r1 cmp r0, r1 @@ -5429,7 +5429,7 @@ FUN_02004C80: ; 0x02004C80 mov r2, #0x0 lsl r3, r3, #0x6 str r4, [sp, #0x0] - blx FUN_020C1FF0 + bl FUN_020C1FF0 add sp, #0x4 pop {r3-r4, pc} @@ -5456,7 +5456,7 @@ FUN_02004CB4: ; 0x02004CB4 bl FUN_02003D38 mov r1, #0x0 mov r2, #0x1c - blx MI_CpuFill8 + bl MI_CpuFill8 mov r0, #0x3 bl FUN_02003D38 add r4, r0, #0x0 @@ -5471,7 +5471,7 @@ FUN_02004CB4: ; 0x02004CB4 ldr r3, _02004CF8 ; =0x000055F0 add r0, r4, #0x0 mov r2, #0x0 - blx FUN_020C1EA4 + bl FUN_020C1EA4 add sp, #0xc pop {r3-r4, pc} nop @@ -5511,7 +5511,7 @@ FUN_02004D20: ; 0x02004D20 bl FUN_02003FF4 add r1, r5, #0x0 add r2, r4, #0x0 - blx FUN_020C0EA4 + bl FUN_020C0EA4 pop {r3-r5, pc} thumb_func_start FUN_02004D34 @@ -5534,14 +5534,14 @@ FUN_02004D4C: ; 0x02004D4C bl FUN_02003FF4 add r1, r5, #0x0 add r2, r4, #0x0 - blx FUN_020C0E7C + bl FUN_020C0E7C pop {r3-r5, pc} thumb_func_start FUN_02004D60 FUN_02004D60: ; 0x02004D60 push {r4, lr} add r4, r0, #0x0 - blx FUN_020C0174 + bl FUN_020C0174 ldr r0, _02004D70 ; =0x021C3DD8 str r4, [r0, #0x0] pop {r4, pc} @@ -5758,7 +5758,7 @@ FUN_02004ED0: ; 0x02004ED0 _02004EF0: mov r0, #0x1 _02004EF2: - blx FUN_020C226C + bl FUN_020C226C cmp r0, #0x0 bne _02004F02 bl ErrorHandling @@ -5768,7 +5768,7 @@ _02004F02: ldr r0, [r0, #0x0] lsl r0, r0, #0x8 lsr r0, r0, #0x8 - blx FUN_020C20DC + bl FUN_020C20DC cmp r0, #0x0 bne _02004F18 bl ErrorHandling @@ -5776,7 +5776,7 @@ _02004F02: pop {r3-r5, pc} _02004F18: mov r1, #0x0 - blx SND_GetWaveDataAddress + bl SND_GetWaveDataAddress str r0, [r4, #0x0] pop {r3-r5, pc} nop @@ -5794,11 +5794,11 @@ FUN_02004F28: ; 0x02004F28 add r0, r6, #0x0 lsl r1, r1, #0x8 ldr r5, [r5, #0x8] - blx _s32_div_f + bl _s32_div_f lsl r1, r0, #0x1 bpl _02004F50 mov r0, #0x20 - blx _s32_div_f + bl _s32_div_f neg r0, r0 b _02004F5A _02004F50: @@ -5820,7 +5820,7 @@ _02004F62: FUN_02004F64: ; 0x02004F64 push {r3, lr} bl FUN_02003FF4 - blx FUN_020C0DD4 + bl FUN_020C0DD4 pop {r3, pc} thumb_func_start FUN_02004F70 @@ -6043,7 +6043,7 @@ _020050D8: blt _020050D8 _020050E6: add r1, r2, #0x0 - blx _s32_div_f + bl _s32_div_f ldr r1, [sp, #0x8] strh r0, [r1, #0x0] mov r0, #0x0 @@ -6060,7 +6060,7 @@ _020050FA: cmp r2, r1 blt _020050FA _02005108: - blx _s32_div_f + bl _s32_div_f ldr r1, [sp, #0x4] sub r4, r4, #0x1 strh r0, [r1, #0x0] @@ -6097,10 +6097,10 @@ _02005130: _0200514A: ldr r1, [sp, #0x0] add r0, r5, #0x0 - blx DC_FlushRange + bl DC_FlushRange ldr r1, [sp, #0x0] add r0, r6, #0x0 - blx DC_FlushRange + bl DC_FlushRange _0200515A: add sp, #0x30 pop {r3-r7, pc} @@ -6188,7 +6188,7 @@ FUN_020051F4: ; 0x020051F4 add r4, r0, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 - blx FUN_020C3980 + bl FUN_020C3980 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 @@ -6266,7 +6266,7 @@ FUN_02005288: ; 0x02005288 add r0, r4, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 - blx FUN_020C3980 + bl FUN_020C3980 pop {r3-r5, pc} .balign 4 @@ -6299,7 +6299,7 @@ FUN_020052B8: ; 0x020052B8 add r0, r6, #0x0 add r3, r1, #0x0 str r5, [sp, #0x0] - blx FUN_020C3910 + bl FUN_020C3910 add sp, #0x4 pop {r3-r6, pc} .balign 4 @@ -6328,7 +6328,7 @@ _0200532A: mov r0, #0x7 bl FUN_02003FF4 add r1, r5, #0x0 - blx FUN_020C3980 + bl FUN_020C3980 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_02004110 @@ -6341,14 +6341,14 @@ _0200532A: FUN_02005350: ; 0x02005350 push {r4, lr} add r4, r0, #0x0 - blx FUN_020C0FDC + bl FUN_020C0FDC add r0, r4, #0x0 bl FUN_020048D0 cmp r0, #0xff beq _0200536E bl FUN_02004018 bl FUN_02003FF4 - blx FUN_020C0F68 + bl FUN_020C0F68 _0200536E: bl FUN_02005374 pop {r4, pc} @@ -6446,7 +6446,7 @@ FUN_0200541C: ; 0x0200541C bl FUN_02003D38 add r4, r0, #0x0 mov r0, #0x0 - blx FUN_020C0F9C + bl FUN_020C0F9C ldrb r0, [r5, #0x0] cmp r0, #0x1 bne _02005440 @@ -6475,7 +6475,7 @@ FUN_02005454: ; 0x02005454 mov r0, #0x7 bl FUN_02003FF4 mov r1, #0x0 - blx FUN_020C10A4 + bl FUN_020C10A4 bl FUN_02005374 mov r5, #0x0 add r4, r5, #0x0 @@ -6527,7 +6527,7 @@ FUN_020054C8: ; 0x020054C8 add r4, r0, #0x0 bl FUN_02003FF4 add r1, r5, #0x0 - blx FUN_020C3980 + bl FUN_020C3980 add r6, r0, #0x0 add r0, r5, #0x0 add r1, r4, #0x0 @@ -6549,7 +6549,7 @@ FUN_020054F8: ; 0x020054F8 add r4, r1, #0x0 bl FUN_02003FF4 add r1, r4, #0x0 - blx FUN_020C10A4 + bl FUN_020C10A4 pop {r4, pc} thumb_func_start FUN_02005508 @@ -6587,7 +6587,7 @@ FUN_02005530: ; 0x02005530 bl FUN_02003FF4 add r1, r5, #0x0 add r2, r4, #0x0 - blx FUN_020C0E7C + bl FUN_020C0E7C pop {r3-r5, pc} thumb_func_start FUN_0200554C @@ -6604,7 +6604,7 @@ _0200555C: bl FUN_02003FF4 add r1, r7, #0x0 add r2, r6, #0x0 - blx FUN_020C0E7C + bl FUN_020C0E7C add r5, r5, #0x1 cmp r5, #0x4 blt _0200555C @@ -6659,7 +6659,7 @@ _020055BC: sub r1, r1, #0x3 add r2, r5, #0x0 add r3, r1, #0x0 - blx FUN_020C3910 + bl FUN_020C3910 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x1 @@ -6673,7 +6673,7 @@ _020055E8: sub r1, r1, #0x3 add r2, r5, #0x0 add r3, r1, #0x0 - blx FUN_020C3910 + bl FUN_020C3910 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x8 @@ -6701,11 +6701,11 @@ FUN_02005614: ; 0x02005614 mov r0, #0x1 bl FUN_02003FF4 add r1, r5, #0x0 - blx FUN_020C10A4 + bl FUN_020C10A4 mov r0, #0x8 bl FUN_02003FF4 add r1, r5, #0x0 - blx FUN_020C10A4 + bl FUN_020C10A4 ldrb r0, [r6, #0x0] cmp r0, #0x1 bne _02005658 @@ -7415,7 +7415,7 @@ _02005C48: mov r0, #0x2 bl FUN_02003FF4 add r1, r5, #0x0 - blx FUN_020C3980 + bl FUN_020C3980 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x2 @@ -7455,7 +7455,7 @@ FUN_02005CA0: ; 0x02005CA0 mov r0, #0x2 bl FUN_02003FF4 add r1, r4, #0x0 - blx FUN_020C10A4 + bl FUN_020C10A4 mov r0, #0x6 bl FUN_02004748 bl FUN_02003F64 diff --git a/arm9/asm/unk_020061E8.s b/arm9/asm/unk_020061E8.s index 3b8df8d6..a3c6d702 100644 --- a/arm9/asm/unk_020061E8.s +++ b/arm9/asm/unk_020061E8.s @@ -19,7 +19,7 @@ FUN_020061E8: ; 0x020061E8 _02006202: mov r1, #0x0 add r2, r5, #0x0 - blx Call_FillMemWithValue + bl Call_FillMemWithValue b _0200620E _0200620C: mov r4, #0x0 diff --git a/arm9/asm/unk_02006864.s b/arm9/asm/unk_02006864.s index bcbdc275..008599ed 100644 --- a/arm9/asm/unk_02006864.s +++ b/arm9/asm/unk_02006864.s @@ -5096,13 +5096,13 @@ _02008DD8: .word 0x0001FE00 thumb_func_start FUN_02008DDC
FUN_02008DDC: ; 0x02008DDC
- ldr r3, _02008DE8 ; =0x0201E069
+ ldr r3, _02008DE8 ; =FUN_0201E068
add r1, r0, #0x0
mov r0, #0x3
lsl r0, r0, #0xe
bx r3
nop
-_02008DE8: .word 0x0201E069
+_02008DE8: .word FUN_0201E068
thumb_func_start FUN_02008DEC
FUN_02008DEC: ; 0x02008DEC
@@ -12523,11 +12523,11 @@ _0200C5A4: .word FUN_020201E4 thumb_func_start FUN_0200C5A8
FUN_0200C5A8: ; 0x0200C5A8
- ldr r3, _0200C5B0 ; =0x0200C59D
+ ldr r3, _0200C5B0 ; =FUN_0200C59C
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C5B0: .word 0x0200C59D
+_0200C5B0: .word FUN_0200C59C
thumb_func_start FUN_0200C5B4
FUN_0200C5B4: ; 0x0200C5B4
@@ -12607,11 +12607,11 @@ _0200C618: .word FUN_02020208 thumb_func_start FUN_0200C61C
FUN_0200C61C: ; 0x0200C61C
- ldr r3, _0200C624 ; =0x0200C615
+ ldr r3, _0200C624 ; =FUN_0200C614
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C624: .word 0x0200C615
+_0200C624: .word FUN_0200C614
thumb_func_start FUN_0200C628
FUN_0200C628: ; 0x0200C628
@@ -12707,11 +12707,11 @@ _0200C6A0: .word FUN_02020238 thumb_func_start FUN_0200C6A4
FUN_0200C6A4: ; 0x0200C6A4
- ldr r3, _0200C6AC ; =0x02020241
+ ldr r3, _0200C6AC ; =FUN_02020240
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C6AC: .word 0x02020241
+_0200C6AC: .word FUN_02020240
thumb_func_start FUN_0200C6B0
FUN_0200C6B0: ; 0x0200C6B0
@@ -12949,11 +12949,11 @@ _0200C83C: .word FUN_020200EC thumb_func_start FUN_0200C840
FUN_0200C840: ; 0x0200C840
- ldr r3, _0200C848 ; =0x0200C839
+ ldr r3, _0200C848 ; =FUN_0200C838
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C848: .word 0x0200C839
+_0200C848: .word FUN_0200C838
thumb_func_start FUN_0200C84C
FUN_0200C84C: ; 0x0200C84C
@@ -13057,11 +13057,11 @@ FUN_0200C8DC: ; 0x0200C8DC thumb_func_start FUN_0200C8F8
FUN_0200C8F8: ; 0x0200C8F8
- ldr r3, _0200C900 ; =0x02020359
+ ldr r3, _0200C900 ; =FUN_02020358
ldr r0, [r0, #0x0]
bx r3
nop
-_0200C900: .word 0x02020359
+_0200C900: .word FUN_02020358
thumb_func_start FUN_0200C904
FUN_0200C904: ; 0x0200C904
@@ -15571,7 +15571,7 @@ _0200DD10: ldr r0, [r4, r0]
bl FUN_0200C3DC
add r0, r4, #0x0
- bl FUN_021D99F8
+ bl MOD05_021D99F8
add r0, r5, #0x0
bl FUN_0200621C
pop {r3-r5, pc}
@@ -15656,7 +15656,7 @@ FUN_0200DDAC: ; 0x0200DDAC add r1, r2, #0x0
add r0, r6, #0x0
mov r2, #0x1
- bl FUN_021D959C
+ bl MOD05_021D959C
add sp, #0x18
pop {r4-r6, pc}
.balign 4
@@ -15675,21 +15675,21 @@ FUN_0200DDD8: ; 0x0200DDD8 mov r1, #0x26
mov r3, #0x0
add r4, r0, #0x0
- bl FUN_021D967C
+ bl MOD05_021D967C
ldr r0, _0200DE2C ; =0x00015CD5
mov r1, #0x26
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r2, #0x2f
mov r3, #0x0
- bl FUN_021D96F4
+ bl MOD05_021D96F4
ldr r0, _0200DE2C ; =0x00015CD5
mov r1, #0x26
str r0, [sp, #0x0]
add r0, r4, #0x0
mov r2, #0x2e
mov r3, #0x0
- bl FUN_021D9708
+ bl MOD05_021D9708
mov r0, #0x1
str r0, [sp, #0x0]
ldr r0, _0200DE2C ; =0x00015CD5
@@ -15698,7 +15698,7 @@ FUN_0200DDD8: ; 0x0200DDD8 add r0, r4, #0x0
mov r2, #0x30
mov r3, #0x0
- bl FUN_021D971C
+ bl MOD05_021D971C
add sp, #0xc
pop {r3-r4, pc}
nop
@@ -15730,7 +15730,7 @@ _0200DE40: strh r1, [r0, #0x2]
add r0, r4, #0x0
add r1, sp, #0x0
- bl FUN_021D9820
+ bl MOD05_021D9820
mov r1, #0x59
lsl r1, r1, #0x2
str r0, [r4, r1]
@@ -31039,11 +31039,11 @@ _02014F24: .word FUN_02014F08 thumb_func_start FUN_02014F28
FUN_02014F28: ; 0x02014F28
- ldr r3, _02014F30 ; =0x02014F1D
+ ldr r3, _02014F30 ; =FUN_02014F1C
mov r1, #0x1
bx r3
nop
-_02014F30: .word 0x02014F1D
+_02014F30: .word FUN_02014F1C
thumb_func_start FUN_02014F34
FUN_02014F34: ; 0x02014F34
@@ -47117,21 +47117,21 @@ _0201C4F0: .word 0xFFFF0000 thumb_func_start FUN_0201C4F4
FUN_0201C4F4: ; 0x0201C4F4
- ldr r3, _0201C4FC ; =0x0201C50D
+ ldr r3, _0201C4FC ; =FUN_0201C50C
ldr r0, [r0, #0x4]
ldrb r1, [r1, #0x0]
bx r3
.balign 4
-_0201C4FC: .word 0x0201C50D
+_0201C4FC: .word FUN_0201C50C
thumb_func_start FUN_0201C500
FUN_0201C500: ; 0x0201C500
- ldr r3, _0201C508 ; =0x0201C541
+ ldr r3, _0201C508 ; =FUN_0201C540
ldr r0, [r0, #0x4]
ldrb r1, [r1, #0x1]
bx r3
.balign 4
-_0201C508: .word 0x0201C541
+_0201C508: .word FUN_0201C540
thumb_func_start FUN_0201C50C
FUN_0201C50C: ; 0x0201C50C
@@ -66319,11 +66319,11 @@ _02024EBC: .word FUN_02022610 thumb_func_start FUN_02024EC0
FUN_02024EC0: ; 0x02024EC0
- ldr r3, _02024EC8 ; =0x02022635
+ ldr r3, _02024EC8 ; =FUN_02022634
mov r1, #0xa
bx r3
nop
-_02024EC8: .word 0x02022635
+_02024EC8: .word FUN_02022634
thumb_func_start FUN_02024ECC
FUN_02024ECC: ; 0x02024ECC
@@ -70860,9 +70860,9 @@ FUN_02026D34: ; 0x02026D34 add r0, r4, #0x0
add r1, sp, #0x4
add r2, sp, #0x8
- bl FUN_021DB858
+ bl MOD17_021DB858
add r0, r4, #0x0
- bl FUN_021DB7E8
+ bl MOD17_021DB7E8
add r4, r0, #0x0
mov r0, #0x1
ldr r1, [sp, #0x4]
@@ -90692,7 +90692,7 @@ FUN_0202FA5C: ; 0x0202FA5C bl FUN_02033534
cmp r0, #0x13
blt _0202FA78
- bl FUN_021D83C0
+ bl MOD04_021D83C0
mov r4, #0x1
b _0202FA82
_0202FA78:
@@ -90997,7 +90997,7 @@ FUN_0202FCCC: ; 0x0202FCCC cmp r1, #0x0
beq _0202FCF8
mov r1, #0x26
- bl FUN_021D78FC
+ bl MOD04_021D78FC
cmp r0, #0x0
bne _0202FCFA
_0202FCF8:
@@ -91079,7 +91079,7 @@ _0202FD90: ldr r0, _0202FE14 ; =0x021C59F4
mov r1, #0x26
ldr r0, [r0, #0x4]
- bl FUN_021D78FC
+ bl MOD04_021D78FC
cmp r0, #0x0
beq _0202FE10
ldr r0, _0202FE20 ; =0x02105D58
@@ -91458,7 +91458,7 @@ FUN_02030074: ; 0x02030074 lsl r0, r0, #0x2
add r0, r1, r0
mov r1, #0x4c
- bl FUN_021D79B4
+ bl MOD04_021D79B4
cmp r0, #0x0
beq _020300DC
ldr r0, _02030228 ; =0x021C59F4
@@ -91552,7 +91552,7 @@ _02030150: lsl r0, r0, #0x2
add r0, r1, r0
mov r1, #0x4c
- bl FUN_021D79B4
+ bl MOD04_021D79B4
cmp r0, #0x0
beq _02030224
ldr r0, _02030230 ; =0x02105D58
@@ -93257,7 +93257,7 @@ _02030E8C: ldrb r0, [r1, r0]
cmp r0, #0x0
beq _02030EBC
- bl FUN_021D8018
+ bl MOD04_021D8018
mov r1, #0x0
mvn r1, r1
cmp r0, r1
@@ -93669,7 +93669,7 @@ FUN_02031190: ; 0x02031190 bl FUN_02033534
cmp r0, #0x13
blt _020311B4
- bl FUN_021D8018
+ bl MOD04_021D8018
mov r1, #0x0
mvn r1, r1
cmp r0, r1
@@ -93997,7 +93997,7 @@ FUN_020313EC: ; 0x020313EC mov r0, #0x0
pop {r3, pc}
_020313FA:
- bl FUN_021D8624
+ bl MOD04_021D8624
pop {r3, pc}
thumb_func_start FUN_02031400
@@ -95240,7 +95240,7 @@ _02031CEE: bl FUN_02033590
cmp r0, #0x0
beq _02031D04
- bl FUN_021DDB08
+ bl MOD04_021DDB08
mov r1, #0x3
sub r0, r1, r0
bl FUN_02033EEC
@@ -97388,7 +97388,7 @@ _02032DBE: lsr r0, r0, #0x18
cmp r0, #0x1
bhi _02032DD4
- bl FUN_021D83C0
+ bl MOD04_021D83C0
mov r0, #0x1
pop {r3, pc}
_02032DD4:
@@ -97482,7 +97482,7 @@ FUN_02032E8C: ; 0x02032E8C thumb_func_start FUN_02032E90
FUN_02032E90: ; 0x02032E90
push {r3, lr}
- bl FUN_021D7F8C
+ bl MOD04_021D7F8C
cmp r0, #0x0
bge _02032EA2
ldr r0, _02032EA4 ; =FUN_02032E8C
@@ -97508,7 +97508,7 @@ FUN_02032EB0: ; 0x02032EB0 push {r3, lr}
mov r0, #0x1
bl FUN_020313A0
- bl FUN_021D7F8C
+ bl MOD04_021D7F8C
cmp r0, #0xa
blt _02032ECA
ldr r0, _02032F0C ; =FUN_02032EAC
@@ -97573,7 +97573,7 @@ _02032F30: .word 0x021C5A00 FUN_02032F34: ; 0x02032F34
push {r3, lr}
mov r0, #0x0
- bl FUN_021D7800
+ bl MOD04_021D7800
cmp r0, #0xa
blt _02032F4A
ldr r0, _02032F88 ; =FUN_02032EAC
@@ -97620,7 +97620,7 @@ _02032F94: .word FUN_02032EA8 FUN_02032F98: ; 0x02032F98
push {r3, lr}
mov r0, #0x1
- bl FUN_021D7800
+ bl MOD04_021D7800
cmp r0, #0x0
bge _02032FB2
bl FUN_02032F20
@@ -97633,7 +97633,7 @@ _02032FB2: ldr r0, [r0, #0x0]
add r0, #0x42
ldrb r0, [r0, #0x0]
- bl FUN_021D8494
+ bl MOD04_021D8494
cmp r0, #0x0
beq _02032FCE
bl FUN_0202FC60
@@ -97653,7 +97653,7 @@ FUN_02032FDC: ; 0x02032FDC add r4, r0, #0x0
ldr r0, _02032FFC ; =FUN_020303BC
ldr r1, _02033000 ; =FUN_02030238
- bl FUN_021D77C4
+ bl MOD04_021D77C4
ldr r0, _02033004 ; =0x021C5A00
mov r1, #0x0
ldr r0, [r0, #0x0]
@@ -97719,10 +97719,10 @@ FUN_02033060: ; 0x02033060 push {r3, lr}
ldr r0, _02033090 ; =FUN_020303BC
ldr r1, _02033094 ; =FUN_02030238
- bl FUN_021D77C4
+ bl MOD04_021D77C4
mov r0, #0x0
mvn r0, r0
- bl FUN_021D8494
+ bl MOD04_021D8494
cmp r0, #0x0
beq _0203308C
ldr r0, _02033098 ; =0x021C5A00
@@ -97751,16 +97751,16 @@ FUN_020330A0: ; 0x020330A0 ldr r0, [r0, #0x0]
add r0, #0x41
ldrb r0, [r0, #0x0]
- bl FUN_021D82BC
+ bl MOD04_021D82BC
cmp r0, #0x0
beq _020330C6
- bl FUN_021D836C
+ bl MOD04_021D836C
ldr r0, _020330DC ; =FUN_02033060
mov r1, #0x0
bl FUN_02031D20
pop {r3, pc}
_020330C6:
- bl FUN_021D7F8C
+ bl MOD04_021D7F8C
cmp r0, #0x0
bge _020330D6
ldr r0, _020330E0 ; =FUN_02032E8C
@@ -97873,15 +97873,15 @@ FUN_0203318C: ; 0x0203318C mov r0, #0x0
bl FUN_020313A0
mov r0, #0x0
- bl FUN_021D82BC
+ bl MOD04_021D82BC
cmp r0, #0x0
beq _020331AA
- bl FUN_021D836C
+ bl MOD04_021D836C
ldr r0, _020331BC ; =FUN_02032440
mov r1, #0x0
bl FUN_02031D20
_020331AA:
- bl FUN_021D7F8C
+ bl MOD04_021D7F8C
cmp r0, #0x0
bge _020331BA
ldr r0, _020331C0 ; =FUN_02032E8C
@@ -98149,10 +98149,10 @@ _020333AA: bne _020333C8
add r0, sp, #0x4
add r1, sp, #0x0
- bl FUN_021DD718
+ bl MOD04_021DD718
cmp r0, #0x0
beq _020333E4
- bl FUN_021DD6F0
+ bl MOD04_021DD6F0
add sp, #0x8
mov r0, #0x1
pop {r3, pc}
@@ -98161,7 +98161,7 @@ _020333C8: bne _020333E4
add r0, sp, #0x4
add r1, sp, #0x0
- bl FUN_021DD718
+ bl MOD04_021DD718
cmp r0, #0x0
beq _020333E4
ldr r0, [sp, #0x0]
@@ -98180,7 +98180,7 @@ _020333EC: .word 0x021C5A00 thumb_func_start FUN_020333F0
FUN_020333F0: ; 0x020333F0
push {r3, lr}
- bl FUN_021D76AC
+ bl MOD04_021D76AC
cmp r0, #0x0
bge _02033408
bl FUN_02032F20
@@ -98222,7 +98222,7 @@ FUN_0203341C: ; 0x0203341C ldr r0, [r0, #0x28]
bl MOD05_021D74E0
ldr r0, _02033464 ; =FUN_020335D0
- bl FUN_021D83A8
+ bl MOD04_021D83A8
bl FUN_0202FA10
ldr r0, _02033468 ; =FUN_020333F0
mov r1, #0x0
@@ -102476,7 +102476,7 @@ _02035398: add r0, r6, #0x0
bl FUN_02035734
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0xe
strh r0, [r4, #0x2a]
b _02035484
@@ -102486,7 +102486,7 @@ _020353C0: cmp r0, #0x0
beq _02035484
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x9
strh r0, [r4, #0x2a]
b _02035484
@@ -102511,7 +102511,7 @@ _020353F6: ldr r0, [r5, #0x34]
bl FUN_02058780
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0xb
strh r0, [r4, #0x2a]
b _02035484
@@ -103217,7 +103217,7 @@ FUN_020359B8: ; 0x020359B8 add r0, #0x38
mov r2, #0x8
mov r3, #0xb
- bl FUN_021D959C
+ bl MOD05_021D959C
mov r0, #0x2
str r0, [sp, #0x0]
mov r0, #0x1
@@ -103229,7 +103229,7 @@ FUN_020359B8: ; 0x020359B8 mov r2, #0x5
add r0, #0x38
mov r3, #0x0
- bl FUN_021D967C
+ bl MOD05_021D967C
ldr r0, _02035B64 ; =0x000034D8
mov r1, #0x42
str r0, [sp, #0x0]
@@ -103237,7 +103237,7 @@ FUN_020359B8: ; 0x020359B8 mov r2, #0x1
add r0, #0x38
mov r3, #0x0
- bl FUN_021D96F4
+ bl MOD05_021D96F4
ldr r0, _02035B64 ; =0x000034D8
mov r2, #0x0
str r0, [sp, #0x0]
@@ -103245,7 +103245,7 @@ FUN_020359B8: ; 0x020359B8 mov r1, #0x42
add r0, #0x38
add r3, r2, #0x0
- bl FUN_021D9708
+ bl MOD05_021D9708
mov r0, #0x1
str r0, [sp, #0x0]
ldr r0, _02035B64 ; =0x000034D8
@@ -103255,11 +103255,11 @@ FUN_020359B8: ; 0x020359B8 mov r2, #0x2
add r0, #0x38
mov r3, #0x0
- bl FUN_021D971C
+ bl MOD05_021D971C
ldr r0, [sp, #0xc]
ldr r1, _02035B68 ; =0x020F2B14
add r0, #0x38
- bl FUN_021D9820
+ bl MOD05_021D9820
mov r2, #0x67
ldr r1, [sp, #0xc]
lsl r2, r2, #0x2
@@ -103276,7 +103276,7 @@ FUN_020359B8: ; 0x020359B8 mov r2, #0x4
add r0, #0x38
mov r3, #0x0
- bl FUN_021D96F4
+ bl MOD05_021D96F4
ldr r0, _02035B6C ; =0x000034D9
mov r1, #0x42
str r0, [sp, #0x0]
@@ -103284,7 +103284,7 @@ FUN_020359B8: ; 0x020359B8 mov r2, #0x3
add r0, #0x38
mov r3, #0x0
- bl FUN_021D9708
+ bl MOD05_021D9708
mov r0, #0x1
str r0, [sp, #0x0]
ldr r0, _02035B6C ; =0x000034D9
@@ -103294,7 +103294,7 @@ FUN_020359B8: ; 0x020359B8 mov r2, #0x6
add r0, #0x38
mov r3, #0x0
- bl FUN_021D971C
+ bl MOD05_021D971C
ldr r0, [sp, #0x14]
mov r4, #0x0
cmp r0, #0x0
@@ -103352,7 +103352,7 @@ _02035AF2: ldr r0, [sp, #0xc]
add r1, sp, #0x68
add r0, #0x38
- bl FUN_021D9820
+ bl MOD05_021D9820
mov r1, #0x1a
lsl r1, r1, #0x4
add r2, sp, #0x5c
@@ -103437,7 +103437,7 @@ _02035B90: _02035BA6:
add r5, #0x38
add r0, r5, #0x0
- bl FUN_021D99F8
+ bl MOD05_021D99F8
pop {r3-r7, pc}
thumb_func_start FUN_02035BB0
@@ -103629,7 +103629,7 @@ FUN_02035D10: ; 0x02035D10 bl FUN_0204652C
add r4, r0, #0x0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x72
ldr r1, _02035D30 ; =FUN_02035D34
lsl r0, r0, #0x2
@@ -103736,7 +103736,7 @@ FUN_02035DF8: ; 0x02035DF8 bl FUN_0204652C
add r4, r0, #0x0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x72
ldr r1, _02035E18 ; =FUN_02035E1C
lsl r0, r0, #0x2
@@ -104266,7 +104266,7 @@ FUN_02036284: ; 0x02036284 bl FUN_0204652C
add r4, r0, #0x0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x72
ldr r1, _020362A4 ; =FUN_020362A8
lsl r0, r0, #0x2
@@ -104561,7 +104561,7 @@ FUN_02036510: ; 0x02036510 bl FUN_0204652C
add r4, r0, #0x0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x72
ldr r1, _02036530 ; =FUN_02036534
lsl r0, r0, #0x2
@@ -104740,7 +104740,7 @@ FUN_02036684: ; 0x02036684 bl FUN_0204652C
add r4, r0, #0x0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x72
ldr r1, _020366A4 ; =FUN_020366A8
lsl r0, r0, #0x2
@@ -104801,7 +104801,7 @@ FUN_02036700: ; 0x02036700 bl FUN_0204652C
add r4, r0, #0x0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x72
ldr r1, _02036720 ; =FUN_02036724
lsl r0, r0, #0x2
@@ -106308,17 +106308,17 @@ _0203732E: FUN_02037334: ; 0x02037334
push {r3, lr}
bl FUN_020374B0
- ldr r0, _02037348 ; =0x0000003F
+ ldr r0, _02037348 ; =SDK_OVERLAY_MODULE_63_ID
ldr r1, _0203734C ; =0x021DBAB8
bl FUN_02000E7C
mov r0, #0x1
pop {r3, pc}
nop
-_02037348: .word 0x0000003F
+_02037348: .word SDK_OVERLAY_MODULE_63_ID
_0203734C: .word 0x021DBAB8
- thumb_func_start FUN_02037350
-FUN_02037350: ; 0x02037350
+ thumb_func_start LoadOverlay_MODULE_05
+LoadOverlay_MODULE_05: ; 0x02037350
push {r4, lr}
add r4, r0, #0x0
ldr r0, [r4, #0x0]
@@ -106333,7 +106333,7 @@ _02037360: beq _0203736C
bl ErrorHandling
_0203736C:
- ldr r0, _0203738C ; =0x00000005
+ ldr r0, _0203738C ; =SDK_OVERLAY_MODULE_05_ID
mov r1, #0x2
bl HandleLoadOverlay
mov r1, #0x0
@@ -106348,7 +106348,7 @@ _0203736C: str r0, [r1, #0x0]
pop {r4, pc}
.balign 4
-_0203738C: .word 0x00000005
+_0203738C: .word SDK_OVERLAY_MODULE_05_ID
_02037390: .word 0x021F64C8
thumb_func_start FUN_02037394
@@ -106564,7 +106564,7 @@ FUN_02037524: ; 0x02037524 mov r1, #0x0
add r0, r4, #0x0
add r2, r1, #0x0
- bl FUN_021EFA9C
+ bl MOD05_021EFA9C
_02037546:
ldr r0, [r4, #0x0]
ldr r1, [r0, #0x0]
@@ -106575,7 +106575,7 @@ _02037546: ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _0203756E
- ldr r0, _02037590 ; =0x00000005
+ ldr r0, _02037590 ; =SDK_OVERLAY_MODULE_05_ID
bl UnloadOverlayByID
b _0203756E
_02037562:
@@ -106604,7 +106604,7 @@ _0203758C: mov r0, #0x0
pop {r4, pc}
.balign 4
-_02037590: .word 0x00000005
+_02037590: .word SDK_OVERLAY_MODULE_05_ID
thumb_func_start FUN_02037594
FUN_02037594: ; 0x02037594
@@ -106637,7 +106637,7 @@ _020375B4: add r1, r4, #0x0
lsr r2, r2, #0x10
lsr r3, r3, #0x10
- bl FUN_021D8164
+ bl MOD05_021D8164
_020375D4:
ldr r0, [r4, #0x1c]
ldr r2, [r4, #0x6c]
@@ -106669,7 +106669,7 @@ _020375FC: beq _02037610
add r0, sp, #0x8
add r1, r4, #0x0
- bl FUN_021D85FC
+ bl MOD05_021D85FC
_02037610:
add r0, r4, #0x0
add r1, r5, #0x0
@@ -106684,7 +106684,7 @@ _0203761C: beq _02037638
add r0, sp, #0x8
add r1, r4, #0x0
- bl FUN_021D865C
+ bl MOD04_021D865C
cmp r0, #0x1
bne _0203763A
mov r5, #0x0
@@ -106704,7 +106704,7 @@ _02037646: _0203764C:
add r0, sp, #0x8
add r1, r4, #0x0
- bl FUN_021D8758
+ bl MOD05_021D8758
cmp r0, #0x1
beq _02037754
add r3, sp, #0x8
@@ -106724,21 +106724,21 @@ _02037672: beq _02037754
add r0, sp, #0x8
add r1, r4, #0x0
- bl FUN_021D8820
+ bl MOD05_021D8820
cmp r0, #0x1
bne _020376A6
ldr r0, [r4, #0x4]
ldr r0, [r0, #0x8]
- bl FUN_021E32F0
+ bl MOD05_021E32F0
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_021E81BC
+ bl MOD05_021E81BC
ldr r0, [r4, #0x38]
- bl FUN_021E7138
+ bl MOD05_021E7138
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x1
- bl FUN_021EFA9C
+ bl MOD05_021EFA9C
add sp, #0x10
pop {r3-r5, pc}
_020376A6:
@@ -106749,13 +106749,13 @@ _020376A6: beq _020376B8
ldr r0, [r4, #0x4]
ldr r0, [r0, #0x8]
- bl FUN_021E32F0
+ bl MOD05_021E32F0
_020376B8:
mov r5, #0x0
bl FUN_02037790
cmp r0, #0x0
beq _020376C8
- bl FUN_02252534
+ bl MOD20_02252534
add r5, r0, #0x0
_020376C8:
add r3, sp, #0x8
@@ -106775,23 +106775,23 @@ _020376E2: beq _02037754
add r0, sp, #0x8
add r1, r4, #0x0
- bl FUN_021D8320
+ bl MOD05_021D8320
cmp r0, #0x1
bne _0203771C
ldr r0, [r4, #0x4]
ldr r0, [r0, #0x8]
- bl FUN_021E32F0
+ bl MOD05_021E32F0
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_021E81BC
+ bl MOD05_021E81BC
ldr r0, [r4, #0x38]
bl FUN_02055B14
ldr r0, [r4, #0x38]
- bl FUN_021E7138
+ bl MOD05_021E7138
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x1
- bl FUN_021EFA9C
+ bl MOD05_021EFA9C
add sp, #0x10
pop {r3-r5, pc}
_0203771C:
@@ -106802,13 +106802,13 @@ _0203771C: beq _0203772E
ldr r0, [r4, #0x4]
ldr r0, [r0, #0x8]
- bl FUN_021E32F0
+ bl MOD05_021E32F0
_0203772E:
mov r5, #0x0
bl FUN_02037790
cmp r0, #0x0
beq _0203773E
- bl FUN_02252534
+ bl MOD20_02252534
add r5, r0, #0x0
_0203773E:
add r3, sp, #0x8
@@ -106923,7 +106923,7 @@ FUN_020377F0: ; 0x020377F0 thumb_func_start FUN_020377F4
FUN_020377F4: ; 0x020377F4
push {r3, lr}
- bl FUN_0222D5C0
+ bl MOD11_0222D5C0
cmp r0, #0x0
beq _02037802
mov r0, #0x1
@@ -109041,7 +109041,7 @@ FUN_020388B4: ; 0x020388B4 add r4, r0, #0x0
ldr r0, [r4, #0xc]
bl FUN_0206BB1C
- bl FUN_021ED49C
+ bl MOD05_021ED49C
add r5, r0, #0x0
bne _020388CC
bl ErrorHandling
@@ -109269,11 +109269,11 @@ FUN_02038AB0: ; 0x02038AB0 push {r4, lr}
bl FUN_0204652C
add r4, r0, #0x0
- bl FUN_0224D79C
+ bl MOD06_0224D79C
cmp r0, #0x1
bne _02038ACA
add r0, r4, #0x0
- bl FUN_0224D76C
+ bl MOD06_0224D76C
mov r0, #0x1
pop {r4, pc}
_02038ACA:
@@ -109290,7 +109290,7 @@ FUN_02038AD0: ; 0x02038AD0 ldr r1, [r2, #0xc]
ldr r2, [r2, #0x8]
mov r0, #0x4
- bl FUN_0224D70C
+ bl MOD06_0224D70C
add r2, r0, #0x0
ldr r1, _02038AF0 ; =FUN_02038AB0
add r0, r4, #0x0
diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s index 785e5b48..dadbc8aa 100644 --- a/arm9/asm/unk_02038C78.s +++ b/arm9/asm/unk_02038C78.s @@ -224,7 +224,7 @@ _02038E32: add r0, r4, #0x0
mov r1, #0x0
mov r2, #0xdc
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, _02038E44 ; =0x0003643F
str r0, [r4, #0x0]
add r0, r4, #0x0
@@ -1187,7 +1187,7 @@ FUN_02039564: ; 0x02039564 bl FUN_02046380
mov r1, #0x0
mov r2, #0x40
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
pop {r4, pc}
.balign 4
@@ -1540,14 +1540,14 @@ _020397EC: sub r1, r0, r1
mov r0, #0x7
sub r0, r0, r1
- blx abs
+ bl abs
strh r0, [r5, #0x0]
ldr r1, [r4, #0x8]
ldr r0, [sp, #0x14]
sub r1, r0, r1
mov r0, #0x7
sub r0, r0, r1
- blx abs
+ bl abs
strh r0, [r5, #0x2]
add r5, r5, #0x6
add r6, r6, #0x1
diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s index 872e976a..874a600a 100644 --- a/arm9/asm/unk_02046030.s +++ b/arm9/asm/unk_02046030.s @@ -597,10 +597,10 @@ _02046496: thumb_func_start FUN_0204649C
FUN_0204649C: ; 0x0204649C
- ldr r3, _020464A0 ; =FUN_02037350
+ ldr r3, _020464A0 ; =LoadOverlay_MODULE_05
bx r3
.balign 4
-_020464A0: .word FUN_02037350
+_020464A0: .word LoadOverlay_MODULE_05
thumb_func_start FUN_020464A4
FUN_020464A4: ; 0x020464A4
@@ -1231,7 +1231,7 @@ FUN_02046948: ; 0x02046948 bl FUN_02046528
add r1, r0, #0x0
add r0, r4, #0x0
- bl FUN_02244558
+ bl MOD06_02244558
add r4, r0, #0x0
bl FUN_020475A0
add r6, r0, #0x0
@@ -1507,7 +1507,7 @@ _02046BA0: _02046BAE:
ldr r1, [r4, #0x10]
add r0, r5, #0x0
- bl FUN_02248724
+ bl MOD06_02248724
add r0, r6, #0x0
bl FUN_0204B00C
ldr r0, [r4, #0x0]
@@ -1769,7 +1769,7 @@ FUN_02046DB4: ; 0x02046DB4 str r1, [r4, r0]
add r0, r5, #0x0
add r1, r4, #0x0
- bl FUN_0223CCDC
+ bl MOD06_0223CCDC
ldr r0, [r5, #0xc]
bl FUN_02029FC8
mov r1, #0x7
@@ -1811,7 +1811,7 @@ FUN_02046E18: ; 0x02046E18 add r0, r5, #0x0
add r1, r7, #0x0
add r3, r4, #0x0
- bl FUN_0223CD7C
+ bl MOD06_0223CD7C
ldr r0, [sp, #0x20]
cmp r0, #0x0
beq _02046E60
@@ -1991,7 +1991,7 @@ FUN_02046FA0: ; 0x02046FA0 add r1, r6, #0x0
add r2, r7, #0x0
add r3, r4, #0x0
- bl FUN_0223CD7C
+ bl MOD06_0223CD7C
mov r0, #0x63
mov r1, #0x1
lsl r0, r0, #0x2
@@ -2691,7 +2691,7 @@ _0204756A: cmp r0, r1
bne _0204757C
add r0, r4, #0x0
- bl FUN_021E495C
+ bl MOD05_021E495C
_0204757C:
pop {r3-r5, pc}
nop
@@ -2910,7 +2910,7 @@ FUN_020476CC: ; 0x020476CC mov r1, #0x0
lsl r2, r2, #0x2
add r7, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r1, #0x63
str r4, [r7, #0x0]
mov r0, #0x0
@@ -2926,7 +2926,7 @@ _020476FA: add r1, r4, #0x0
mov r2, #0x34
str r0, [r6, #0x18]
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r0, [sp, #0x0]
add r6, r6, #0x4
add r0, r0, #0x1
@@ -3034,7 +3034,7 @@ _02047774: add r0, r2, #0x4
add r0, r7, r0
mov r2, #0xc
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r7, #0x0
pop {r3-r7, pc}
@@ -4191,7 +4191,7 @@ _0204817A: add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x24
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x0
str r0, [r4, #0x0]
str r5, [r4, #0x4]
@@ -4788,7 +4788,7 @@ _02048666: mov r0, #0x4
bl FUN_020168D0
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
add sp, #0xc
mov r0, #0x1
pop {r4-r7, pc}
@@ -5889,7 +5889,7 @@ _02048F9A: str r1, [r6, #0x0]
add r0, r4, #0x0
add r2, r6, #0x0
- bl FUN_021E7750
+ bl MOD05_021E7750
ldr r0, [r5, #0x0]
add r0, r0, #0x1
str r0, [r5, #0x0]
@@ -6460,7 +6460,7 @@ _02049408: str r0, [r4, #0x0]
b _0204942C
_02049416:
- bl FUN_021E331C
+ bl MOD05_021E331C
add r0, r5, #0x0
bl FUN_02049430
ldr r0, [r4, #0x0]
@@ -6494,7 +6494,7 @@ _02049452: bl FUN_020553E8
add r1, r0, #0x0
add r0, r5, #0x0
- bl FUN_022483BC
+ bl MOD06_022483BC
str r0, [r4, #0x4]
ldr r1, _02049470 ; =FUN_02049474
add r0, r6, #0x0
@@ -6510,11 +6510,11 @@ FUN_02049474: ; 0x02049474 bl FUN_0204652C
add r4, r0, #0x0
ldr r0, [r4, #0x4]
- bl FUN_022483E0
+ bl MOD06_022483E0
cmp r0, #0x1
bne _02049490
ldr r0, [r4, #0x4]
- bl FUN_022483EC
+ bl MOD06_022483EC
mov r0, #0x1
pop {r4, pc}
_02049490:
@@ -6710,7 +6710,7 @@ _020495F0: b _02049616
_020495FE:
add r0, r6, #0x0
- bl FUN_021E331C
+ bl MOD05_021E331C
add r0, r5, #0x0
bl FUN_0204961C
ldr r0, [r4, #0x0]
@@ -6744,7 +6744,7 @@ _0204963E: ldr r2, [r6, #0x4]
add r0, r4, #0x0
mov r1, #0x4
- bl FUN_0224C8C8
+ bl MOD06_0224C8C8
add r2, r0, #0x0
ldr r1, _02049654 ; =0x0224C8E9
add r0, r5, #0x0
@@ -6785,7 +6785,7 @@ _0204968E: add r0, r7, #0x0
mov r1, #0x1
add r2, r4, #0x4
- bl FUN_021E7750
+ bl MOD05_021E7750
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
@@ -6829,7 +6829,7 @@ _020496EA: str r1, [r4, #0x4]
add r0, r7, #0x0
add r2, r4, #0x4
- bl FUN_021E7750
+ bl MOD05_021E7750
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
@@ -6863,7 +6863,7 @@ FUN_02049718: ; 0x02049718 mov r1, #0x0
mov r2, #0x1c
add r7, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0x38]
bl FUN_020552F8
mov r1, #0x0
@@ -7152,9 +7152,9 @@ _02049976: add r0, r5, #0x0
mov r1, #0xb
mov r2, #0x3
- bl FUN_021E8588
+ bl MOD05_021E8588
str r0, [r4, #0x20]
- bl FUN_021E84F4
+ bl MOD05_021E84F4
add r3, r4, #0x0
mov r2, #0x0
ldr r1, _02049AC4 ; =0x000007D5
@@ -7176,9 +7176,9 @@ _020499A2: b _02049AB2
_020499B2:
ldr r0, [r4, #0x20]
- bl FUN_021E856C
+ bl MOD05_021E856C
ldr r0, [r4, #0x20]
- bl FUN_021E85E4
+ bl MOD05_021E85E4
ldrh r0, [r4, #0x1c]
cmp r0, #0x0
bne _020499CA
@@ -7225,7 +7225,7 @@ _02049A06: _02049A14:
mov r0, #0x1
str r0, [r5, #0x6c]
- ldr r0, _02049AC8 ; =0x00000012
+ ldr r0, _02049AC8 ; =SDK_OVERLAY_MODULE_18_ID
mov r1, #0x2
bl HandleLoadOverlay
add r0, r5, #0x0
@@ -7265,7 +7265,7 @@ _02049A64: beq _02049AB2
bl FUN_0204FCA0
add r0, r5, #0x0
- bl FUN_02244824
+ bl MOD18_02244824
mov r1, #0x0
str r0, [r5, #0x68]
mov r0, #0x2
@@ -7285,7 +7285,7 @@ _02049A96: cmp r0, #0x0
beq _02049AB2
mov r0, #0x1
- bl FUN_02247970
+ bl MOD18_02247970
add r0, r4, #0x0
bl FUN_02016A18
add sp, #0x8
@@ -7300,7 +7300,7 @@ _02049AB8: .word 0x000003D9 _02049ABC: .word 0x020F46D8
_02049AC0: .word 0x000007F2
_02049AC4: .word 0x000007D5
-_02049AC8: .word 0x00000012
+_02049AC8: .word SDK_OVERLAY_MODULE_18_ID
thumb_func_start FUN_02049ACC
FUN_02049ACC: ; 0x02049ACC
@@ -7332,10 +7332,10 @@ _02049AF2: ; jump table (using 16-bit offset) .short _02049BD2 - _02049AF2 - 2; case 7
_02049B02:
mov r0, #0x0
- bl FUN_02247970
+ bl MOD18_02247970
bl FUN_0204FCD8
ldr r0, [r5, #0x68]
- bl FUN_0224484C
+ bl MOD18_0224484C
mov r0, #0x2
str r0, [sp, #0x0]
mov r0, #0x1e
@@ -7386,7 +7386,7 @@ _02049B68: _02049B76:
mov r0, #0x0
str r0, [r5, #0x6c]
- ldr r0, _02049BE4 ; =0x00000012
+ ldr r0, _02049BE4 ; =SDK_OVERLAY_MODULE_18_ID
bl UnloadOverlayByID
ldr r0, [r4, #0x14]
mov r2, #0x1
@@ -7435,7 +7435,7 @@ _02049BDC: add sp, #0x8
pop {r4-r6, pc}
nop
-_02049BE4: .word 0x00000012
+_02049BE4: .word SDK_OVERLAY_MODULE_18_ID
thumb_func_start FUN_02049BE8
FUN_02049BE8: ; 0x02049BE8
@@ -7614,7 +7614,7 @@ _02049D30: add r0, r7, #0x0
mov r1, #0x1
add r2, r5, #0x4
- bl FUN_021E7750
+ bl MOD05_021E7750
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
@@ -7675,7 +7675,7 @@ FUN_02049D9C: ; 0x02049D9C add r6, r0, #0x0
mov r1, #0x0
mov r2, #0x1c
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r2, r6, #0x0
ldmia r4!, {r0-r1}
add r2, #0x8
@@ -7768,7 +7768,7 @@ _02049E74: str r1, [r5, #0x4]
add r0, r7, #0x0
add r2, r5, #0x4
- bl FUN_021E7750
+ bl MOD05_021E7750
ldr r0, [r4, #0x0]
add r0, r0, #0x1
str r0, [r4, #0x0]
@@ -7806,7 +7806,7 @@ FUN_02049EA4: ; 0x02049EA4 mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r7, #0x0
add r1, r5, #0x0
bl FUN_02048CB0
@@ -8074,7 +8074,7 @@ FUN_0204A0C8: ; 0x0204A0C8 add r0, r4, #0x0
add r1, r5, #0x0
add r2, r7, #0x0
- bl FUN_021ECF14
+ bl MOD05_021ECF14
add r0, r6, #0x0
add r1, r4, #0x0
bl FUN_0206B900
@@ -8608,7 +8608,7 @@ FUN_0204A4A4: ; 0x0204A4A4 ldr r2, [r2, #0x0]
add r0, r7, #0x0
add r3, sp, #0x28
- bl FUN_021F4520
+ bl MOD05_021F4520
str r0, [sp, #0x20]
lsr r0, r7, #0x5
str r0, [sp, #0x18]
@@ -8632,7 +8632,7 @@ FUN_0204A4A4: ; 0x0204A4A4 mul r0, r1
ldr r1, [sp, #0xc]
add r0, r7, r0
- bl FUN_021EF620
+ bl MOD05_021EF620
ldr r2, [sp, #0x14]
add r1, r0, #0x0
add r3, r2, #0x0
@@ -8641,7 +8641,7 @@ FUN_0204A4A4: ; 0x0204A4A4 mul r3, r0
ldr r0, [sp, #0x18]
add r0, r0, r3
- bl FUN_021EF654
+ bl MOD05_021EF654
add r1, r0, #0x0
cmp r1, #0x3
bls _0204A53C
@@ -8651,14 +8651,14 @@ _0204A53C: lsl r1, r1, #0x18
ldr r0, [sp, #0x8]
lsr r1, r1, #0x18
- bl FUN_021EF8C8
+ bl MOD05_021EF8C8
add r3, r0, #0x0
add r0, sp, #0x30
str r0, [sp, #0x0]
ldr r0, [sp, #0x4]
ldr r1, [sp, #0x2c]
ldr r2, [sp, #0x34]
- bl FUN_021F3DA4
+ bl MOD05_021F3DA4
add r4, r0, #0x0
_0204A558:
ldr r0, [sp, #0x20]
@@ -8668,7 +8668,7 @@ _0204A558: add r5, #0x9c
ldrb r0, [r0, #0x0]
ldr r1, [r5, #0x0]
- bl FUN_021F4568
+ bl MOD05_021F4568
add r5, r0, #0x0
cmp r4, #0x0
beq _0204A59E
@@ -8731,7 +8731,7 @@ FUN_0204A5C0: ; 0x0204A5C0 asr r1, r1, #0x10
asr r2, r2, #0x10
mov r3, #0x0
- bl FUN_021EF844
+ bl MOD05_021EF844
ldr r1, [sp, #0x8]
cmp r1, #0x0
beq _0204A5EE
@@ -8758,7 +8758,7 @@ FUN_0204A5F4: ; 0x0204A5F4 add r3, sp, #0x0
add r5, r1, #0x0
add r6, r2, #0x0
- bl FUN_021EF844
+ bl MOD05_021EF844
cmp r0, #0x0
bne _0204A612
mov r0, #0xff
@@ -8769,7 +8769,7 @@ _0204A612: add r1, sp, #0x0
ldrb r1, [r1, #0x0]
add r0, r7, #0x0
- bl FUN_021EF8DC
+ bl MOD05_021EF8DC
lsr r2, r5, #0x1f
lsl r1, r5, #0x1b
sub r1, r1, r2
@@ -9114,7 +9114,7 @@ FUN_0204A87C: ; 0x0204A87C add r4, r2, #0x0
add r0, sp, #0x0
add r1, r3, #0x0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r1, [sp, #0x0]
ldr r0, [r4, #0x0]
ldr r2, [sp, #0x8]
@@ -9159,11 +9159,11 @@ _0204A8D4: ldr r0, [sp, #0x8]
ldr r1, [r1, #0x24]
add r2, sp, #0xc
- bl FUN_021EF604
+ bl MOD05_021EF604
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x8]
ldr r0, [r0, #0x24]
- bl FUN_021EF824
+ bl MOD05_021EF824
add r4, r0, #0x0
ldr r0, [sp, #0x0]
ldr r0, [r0, #0x28]
@@ -9176,7 +9176,7 @@ _0204A8D4: _0204A900:
ldr r0, [sp, #0xc]
add r1, r5, #0x0
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
add r1, r7, #0x0
add r2, sp, #0x10
add r4, r0, #0x0
@@ -9184,7 +9184,7 @@ _0204A900: cmp r0, #0x0
beq _0204A92E
add r0, r4, #0x0
- bl FUN_021E7EC4
+ bl MOD05_021E7EC4
cmp r0, r6
bne _0204A92E
ldr r0, [sp, #0x4]
@@ -9227,11 +9227,11 @@ _0204A95C: ldr r0, [sp, #0x8]
ldr r1, [r1, #0x24]
add r2, sp, #0xc
- bl FUN_021EF604
+ bl MOD05_021EF604
ldr r0, [sp, #0x0]
ldr r1, [sp, #0x8]
ldr r0, [r0, #0x24]
- bl FUN_021EF824
+ bl MOD05_021EF824
add r6, r0, #0x0
ldr r0, [sp, #0x0]
ldr r0, [r0, #0x28]
@@ -9244,7 +9244,7 @@ _0204A95C: _0204A988:
ldr r0, [sp, #0xc]
add r1, r6, #0x0
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
ldr r1, [sp, #0x4]
add r2, sp, #0x10
add r7, r0, #0x0
@@ -9252,7 +9252,7 @@ _0204A988: cmp r0, #0x0
beq _0204A9D2
add r0, r7, #0x0
- bl FUN_021E7EC4
+ bl MOD05_021E7EC4
mov r1, #0x0
cmp r4, #0x0
bls _0204A9D2
@@ -9311,14 +9311,14 @@ _0204A9FE: add r0, r7, #0x0
ldr r1, [r1, #0x24]
add r2, sp, #0xc
- bl FUN_021EF604
+ bl MOD05_021EF604
mov r4, #0x0
_0204AA0C:
ldr r0, [sp, #0xc]
add r1, r4, #0x0
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
add r6, r0, #0x0
- bl FUN_021E7EC4
+ bl MOD05_021E7EC4
cmp r0, r5
bne _0204AA40
ldr r0, [sp, #0x4]
@@ -9332,7 +9332,7 @@ _0204AA26: ldr r0, [sp, #0x0]
add r1, r7, #0x0
ldr r0, [r0, #0x24]
- bl FUN_021EF824
+ bl MOD05_021EF824
ldr r1, [sp, #0x8]
str r0, [r1, #0x0]
_0204AA3A:
@@ -9370,14 +9370,14 @@ _0204AA6C: ldr r0, [sp, #0x8]
ldr r1, [r1, #0x24]
add r2, sp, #0xc
- bl FUN_021EF604
+ bl MOD05_021EF604
mov r6, #0x0
_0204AA7A:
ldr r0, [sp, #0xc]
add r1, r6, #0x0
- bl FUN_021E7ED0
+ bl MOD05_021E7ED0
add r7, r0, #0x0
- bl FUN_021E7EC4
+ bl MOD05_021E7EC4
mov r1, #0x0
cmp r4, #0x0
bls _0204AAB6
@@ -9432,7 +9432,7 @@ FUN_0204AAD4: ; 0x0204AAD4 add r5, r0, #0x0
add r6, r1, #0x0
str r2, [r4, #0x8]
- blx _s32_div_f
+ bl _s32_div_f
lsl r1, r1, #0x10
lsr r1, r1, #0x10
ldr r0, [r4, #0x0]
@@ -9441,7 +9441,7 @@ FUN_0204AAD4: ; 0x0204AAD4 str r0, [r4, #0x0]
add r0, r5, #0x0
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
ldr r1, [r4, #0x8]
@@ -9890,7 +9890,7 @@ _0204AE28: ldr r0, [r4, #0x0]
mov r1, #0x6
add r0, r0, #0x1
- blx _s32_div_f
+ bl _s32_div_f
str r1, [r4, #0x0]
_0204AE58:
pop {r4, pc}
@@ -9933,7 +9933,7 @@ _0204AE74: ldr r0, [r4, #0x0]
mov r1, #0x6
add r0, r0, #0x1
- blx _s32_div_f
+ bl _s32_div_f
str r1, [r4, #0x0]
_0204AEA6:
pop {r4, pc}
@@ -9957,7 +9957,7 @@ _0204AEC6: ldr r0, [r4, #0x8]
add r1, r5, #0x0
add r2, r4, #0x4
- bl FUN_021E3444
+ bl MOD05_021E3444
ldr r1, [r4, #0xc]
mov r0, #0x5
lsl r1, r1, #0x10
@@ -10221,7 +10221,7 @@ _0204B0C0: str r0, [r4, #0x0]
b _0204B0E4
_0204B0CE:
- bl FUN_021E331C
+ bl MOD05_021E331C
add r0, r5, #0x0
bl FUN_0204B00C
ldr r0, [r4, #0x0]
@@ -10279,7 +10279,7 @@ FUN_0204B130: ; 0x0204B130 add r6, r0, #0x0
add r5, r1, #0x0
add r0, r2, #0x0
- blx RTC_ConvertDateToDay
+ bl RTC_ConvertDateToDay
ldr r1, [r5, #0x20]
add r4, r0, #0x0
cmp r4, r1
@@ -10306,13 +10306,13 @@ FUN_0204B158: ; 0x0204B158 add r5, r1, #0x0
add r0, r4, #0x0
add r1, r6, #0x0
- blx RTC_ConvertDateTimeToSecond
+ bl RTC_ConvertDateTimeToSecond
str r1, [sp, #0x8]
add r1, r5, #0x0
add r7, r0, #0x0
add r0, r5, #0x4
add r1, #0x14
- blx RTC_ConvertDateTimeToSecond
+ bl RTC_ConvertDateTimeToSecond
add r2, r1, #0x0
sub r1, r7, r0
ldr r1, [sp, #0x8]
@@ -10337,7 +10337,7 @@ _0204B19C: mov r2, #0x3c
mov r3, #0x0
str r1, [sp, #0x8]
- blx _ll_sdiv
+ bl _ll_sdiv
add r7, r0, #0x0
cmp r7, #0x0
ble _0204B1D8
@@ -10505,7 +10505,7 @@ FUN_0204B2F0: ; 0x0204B2F0 ldr r3, [r3, #0x28]
add r0, r5, #0x0
add r1, r4, #0x0
- blx RTC_ConvertSecondToDateTime
+ bl RTC_ConvertSecondToDateTime
pop {r3-r5, pc}
thumb_func_start FUN_0204B30C
@@ -10520,7 +10520,7 @@ FUN_0204B30C: ; 0x0204B30C ldr r3, [r3, #0x30]
add r0, r5, #0x0
add r1, r4, #0x0
- blx RTC_ConvertSecondToDateTime
+ bl RTC_ConvertSecondToDateTime
pop {r3-r5, pc}
thumb_func_start FUN_0204B328
@@ -10600,7 +10600,7 @@ FUN_0204B388: ; 0x0204B388 add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x64
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r6, [r4, #0x0]
add r0, r6, #0x0
bl FUN_02025128
@@ -10661,7 +10661,7 @@ FUN_0204B410: ; 0x0204B410 add r5, r1, #0x0
add r0, r4, #0x0
mov r1, #0x11
- bl FUN_021E4C54
+ bl MOD05_021E4C54
add r1, r0, #0x0
ldr r0, [r5, #0x0]
bl FUN_02016998
@@ -10669,7 +10669,7 @@ FUN_0204B410: ; 0x0204B410 ldr r2, [r5, #0x60]
add r0, r4, #0x0
mov r1, #0x11
- bl FUN_021E4C60
+ bl MOD05_021E4C60
add r0, r5, #0x0
add r1, r5, #0x0
add r5, #0x60
@@ -10681,11 +10681,11 @@ FUN_0204B410: ; 0x0204B410 thumb_func_start FUN_0204B444
FUN_0204B444: ; 0x0204B444
- ldr r3, _0204B44C ; =0x021E4C01
+ ldr r3, _0204B44C ; =MOD05_021E4C00
ldr r0, [r0, #0x60]
bx r3
nop
-_0204B44C: .word 0x021E4C01
+_0204B44C: .word MOD05_021E4C00
thumb_func_start FUN_0204B450
FUN_0204B450: ; 0x0204B450
@@ -10700,7 +10700,7 @@ FUN_0204B450: ; 0x0204B450 ldr r0, [r3, #0x0]
str r0, [r2, #0x0]
add r0, sp, #0x0
- blx MTX_Identity33_
+ bl MTX_Identity33_
ldr r0, [r5, #0x4]
add r1, r4, #0x0
ldr r0, [r0, #0x18]
@@ -11203,9 +11203,9 @@ _0204B83E: ; jump table (using 16-bit offset) _0204B848:
ldr r0, [r5, #0x38]
mov r1, #0x10
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
ldr r0, [r5, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
ldr r0, [r5, #0x38]
bl FUN_020553A0
bl FUN_02058914
@@ -11392,9 +11392,9 @@ FUN_0204B9CC: ; 0x0204B9CC bl FUN_02055648
add r1, r0, #0x0
ldr r0, [r4, #0x38]
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
ldr r0, [r4, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
pop {r4, pc}
.balign 4
@@ -11405,7 +11405,7 @@ FUN_0204B9EC: ; 0x0204B9EC add r4, r0, #0x0
mov r0, #0x0
mov r2, #0x4c
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r1, _0204BA14 ; =0x021C5A1C
add r0, r4, #0x0
bl FUN_0204BB20
@@ -11519,11 +11519,11 @@ _0204BAD0: .word 0x021C5A1C thumb_func_start FUN_0204BAD4
FUN_0204BAD4: ; 0x0204BAD4
- ldr r3, _0204BADC ; =0x0204BE11
+ ldr r3, _0204BADC ; =FUN_0204BE10
ldr r0, _0204BAE0 ; =0x021C5A1C
bx r3
nop
-_0204BADC: .word 0x0204BE11
+_0204BADC: .word FUN_0204BE10
_0204BAE0: .word 0x021C5A1C
thumb_func_start FUN_0204BAE4
@@ -11651,7 +11651,7 @@ FUN_0204BBC4: ; 0x0204BBC4 add r4, r0, #0x0
bl FUN_0201B9EC
ldr r1, _0204BBE4 ; =0x0000199A
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0xa
@@ -11780,13 +11780,13 @@ _0204BCA4: lsl r1, r1, #0x10
ldr r0, _0204BD14 ; =0x0000FFFF
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r4, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
add r6, #0x14
lsr r4, r0, #0x10
@@ -12410,7 +12410,7 @@ FUN_0204C0D4: ; 0x0204C0D4 beq _0204C0E6
add r0, #0x2a
mov r2, #0x78
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_0204C0E6:
pop {r3, pc}
@@ -12422,7 +12422,7 @@ FUN_0204C0E8: ; 0x0204C0E8 add r1, r4, #0x0
add r1, #0x2a
mov r2, #0x78
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldrb r1, [r4, #0x0]
mov r0, #0x4
orr r0, r1
@@ -12581,7 +12581,7 @@ FUN_0204C1F4: ; 0x0204C1F4 _0204C214:
ldr r0, [r5, #0x4]
ldr r0, [r0, #0x1c]
- bl FUN_021F4608
+ bl MOD05_021F4608
ldr r0, [r4, #0x14]
str r0, [sp, #0x0]
ldr r0, [r4, #0x18]
@@ -12603,7 +12603,7 @@ _0204C23C: beq _0204C258
ldr r0, [r5, #0x4]
ldr r0, [r0, #0x1c]
- bl FUN_021F45E8
+ bl MOD05_021F45E8
add r0, r4, #0x0
bl FUN_02016A18
add sp, #0xc
@@ -12843,7 +12843,7 @@ _0204C41E: add r0, r7, #0x0
bl FUN_0204AD8C
add r0, r7, #0x0
- bl FUN_021E331C
+ bl MOD05_021E331C
mov r0, #0x0
str r0, [r4, #0x4]
ldr r1, [r4, #0x20]
@@ -12925,7 +12925,7 @@ _0204C4C8: ; jump table (using 16-bit offset) .short _0204C510 - _0204C4C8 - 2; case 2
.short _0204C51E - _0204C4C8 - 2; case 3
_0204C4D0:
- bl FUN_021DA5B8
+ bl MOD05_021DA5B8
str r0, [r4, #0x1c]
ldr r0, [r5, #0x38]
bl FUN_02055320
@@ -12935,7 +12935,7 @@ _0204C4D0: add r1, r0, #0x0
ldr r2, [r4, #0x1c]
add r0, r6, #0x0
- bl FUN_021DA5D0
+ bl MOD05_021DA5D0
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -12943,11 +12943,11 @@ _0204C4D0: _0204C4F6:
ldr r1, [r4, #0x1c]
add r0, r5, #0x0
- bl FUN_021DA5D8
+ bl MOD05_021DA5D8
cmp r0, #0x0
beq _0204C522
ldr r0, [r4, #0x1c]
- bl FUN_021DA5C8
+ bl MOD05_021DA5C8
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -12985,7 +12985,7 @@ FUN_0204C528: ; 0x0204C528 beq _0204C598
b _0204C59C
_0204C54A:
- bl FUN_021DA5B8
+ bl MOD05_021DA5B8
str r0, [r4, #0x1c]
ldr r0, [r5, #0x38]
bl FUN_02055320
@@ -12995,7 +12995,7 @@ _0204C54A: add r1, r0, #0x0
ldr r2, [r4, #0x1c]
add r0, r6, #0x0
- bl FUN_021DA5D0
+ bl MOD05_021DA5D0
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -13009,11 +13009,11 @@ _0204C570: add r0, r5, #0x0
add r1, r6, #0x0
lsr r2, r2, #0x18
- bl FUN_021DAC70
+ bl MOD05_021DAC70
cmp r0, #0x0
beq _0204C59C
ldr r0, [r4, #0x1c]
- bl FUN_021DA5C8
+ bl MOD05_021DA5C8
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -13089,7 +13089,7 @@ _0204C61C: ldr r0, _0204C640 ; =0x00000603
bl FUN_020054C8
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -13124,7 +13124,7 @@ FUN_0204C644: ; 0x0204C644 beq _0204C67E
b _0204C682
_0204C668:
- bl FUN_021DB030
+ bl MOD05_021DB030
add r2, r0, #0x0
ldr r1, _0204C688 ; =0x021DB1D1
add r0, r5, #0x0
@@ -13160,7 +13160,7 @@ FUN_0204C68C: ; 0x0204C68C beq _0204C6C6
b _0204C6CA
_0204C6B0:
- bl FUN_021DB030
+ bl MOD05_021DB030
add r2, r0, #0x0
ldr r1, _0204C6D0 ; =0x021DB145
add r0, r5, #0x0
@@ -13224,7 +13224,7 @@ _0204C700: str r0, [r5, #0x4]
b _0204C798
_0204C736:
- bl FUN_021DB030
+ bl MOD05_021DB030
add r2, r0, #0x0
ldr r1, _0204C79C ; =0x021DB251
add r0, r6, #0x0
@@ -13233,7 +13233,7 @@ _0204C736: str r0, [r5, #0x4]
b _0204C798
_0204C74A:
- bl FUN_021DA5B8
+ bl MOD05_021DA5B8
str r0, [r5, #0x1c]
ldr r0, [r4, #0x38]
bl FUN_02055320
@@ -13243,7 +13243,7 @@ _0204C74A: add r1, r0, #0x0
ldr r2, [r5, #0x1c]
add r0, r6, #0x0
- bl FUN_021DA5D0
+ bl MOD05_021DA5D0
ldr r0, [r5, #0x4]
add r0, r0, #0x1
str r0, [r5, #0x4]
@@ -13252,11 +13252,11 @@ _0204C770: ldr r5, [r5, #0x1c]
add r0, r4, #0x0
add r1, r5, #0x0
- bl FUN_021DA7B4
+ bl MOD05_021DA7B4
cmp r0, #0x0
beq _0204C798
add r0, r5, #0x0
- bl FUN_021DA5C8
+ bl MOD05_021DA5C8
ldr r0, [r4, #0x38]
bl FUN_020553A0
mov r1, #0x0
@@ -13314,7 +13314,7 @@ _0204C7BE: bl FUN_020463EC
b _0204C818
_0204C7FE:
- bl FUN_021DB030
+ bl MOD05_021DB030
add r2, r0, #0x0
ldr r1, _0204C820 ; =0x021DB381
add r0, r6, #0x0
@@ -13351,7 +13351,7 @@ FUN_0204C824: ; 0x0204C824 beq _0204C894
b _0204C898
_0204C846:
- bl FUN_021DA5B8
+ bl MOD05_021DA5B8
str r0, [r4, #0x1c]
ldr r0, [r5, #0x38]
bl FUN_02055320
@@ -13361,7 +13361,7 @@ _0204C846: add r1, r0, #0x0
ldr r2, [r4, #0x1c]
add r0, r6, #0x0
- bl FUN_021DA5D0
+ bl MOD05_021DA5D0
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -13375,11 +13375,11 @@ _0204C86C: add r0, r5, #0x0
add r1, r6, #0x0
lsr r2, r2, #0x18
- bl FUN_021DAAA4
+ bl MOD05_021DAAA4
cmp r0, #0x0
beq _0204C898
ldr r0, [r4, #0x1c]
- bl FUN_021DA5C8
+ bl MOD05_021DA5C8
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -13416,7 +13416,7 @@ _0204C8C0: ; jump table (using 16-bit offset) .short _0204C932 - _0204C8C0 - 2; case 3
_0204C8C8:
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
ldr r0, [r5, #0x38]
bl FUN_020553A0
add r6, r0, #0x0
@@ -13489,7 +13489,7 @@ FUN_0204C93C: ; 0x0204C93C beq _0204C976
b _0204C97A
_0204C960:
- bl FUN_021DB030
+ bl MOD05_021DB030
add r2, r0, #0x0
ldr r1, _0204C980 ; =0x021DB041
add r0, r5, #0x0
@@ -13740,7 +13740,7 @@ _0204CB32: str r0, [r1, #0x0]
mov r1, #0x0
lsl r2, r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
_0204CB40:
ldr r1, _0204CC34 ; =0x021C5A68
ldr r0, _0204CC38 ; =0x000002BE
@@ -13751,7 +13751,7 @@ _0204CB40: cmp r5, #0x0
str r2, [r0, #0x4]
beq _0204CB6C
- bl FUN_02244D1C
+ bl MOD18_02244D1C
add r1, r0, #0x0
mov r0, #0xf
bl FUN_02016998
@@ -13760,7 +13760,7 @@ _0204CB40: str r0, [r2, #0x4]
ldr r0, [r1, #0x0]
ldr r0, [r0, #0x4]
- bl FUN_02244D20
+ bl MOD18_02244D20
_0204CB6C:
ldr r0, _0204CC34 ; =0x021C5A68
ldr r7, _0204CC3C ; =0x0000FFFF
@@ -14005,7 +14005,7 @@ _0204CD2C: ldr r0, [r0, #0x4]
cmp r0, #0x0
beq _0204CD60
- bl FUN_02244D3C
+ bl MOD18_02244D3C
ldr r0, _0204CD70 ; =0x021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
@@ -14831,7 +14831,7 @@ _0204D3B2: cmp r0, #0x0
beq _0204D3DC
add r0, r5, #0x0
- bl FUN_0223E4D4
+ bl MOD18_0223E4D4
_0204D3DC:
ldr r0, _0204D430 ; =0x021C5A68
ldr r1, _0204D438 ; =0x000002BE
@@ -14856,7 +14856,7 @@ _0204D3DC: ldrh r1, [r1, #0x0]
ldrh r3, [r3, #0x0]
mov r2, #0x0
- bl FUN_021E5B30
+ bl MOD05_021E5B30
_0204D40E:
ldr r0, _0204D430 ; =0x021C5A68
mov r1, #0x1
@@ -14894,7 +14894,7 @@ FUN_0204D43C: ; 0x0204D43C add r0, #0x5a
mov r1, #0x0
mov r2, #0x8
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl FUN_0204CD78
ldr r0, _0204D4CC ; =0x021C5A68
@@ -14995,7 +14995,7 @@ FUN_0204D4F0: ; 0x0204D4F0 ldr r0, [r0, #0x4]
cmp r0, #0x0
beq _0204D52A
- bl FUN_02244D58
+ bl MOD18_02244D58
b _0204D52A
_0204D524:
add r0, r4, #0x0
@@ -15020,7 +15020,7 @@ _0204D536: cmp r0, #0x0
bne _0204D556
add r0, r5, #0x0
- bl FUN_02245358
+ bl MOD18_02245358
_0204D556:
add r5, r5, #0x1
cmp r5, #0x8
@@ -15057,7 +15057,7 @@ _0204D58A: cmp r0, #0x0
beq _0204D5A0
add r0, r5, #0x0
- bl FUN_02247614
+ bl MOD18_02247614
_0204D5A0:
lsl r0, r5, #0x10
lsr r0, r0, #0x10
@@ -15091,9 +15091,9 @@ _0204D5C6: cmp r0, #0x0
beq _0204D5F0
add r0, r5, #0x0
- bl FUN_0223EB8C
+ bl MOD18_0223EB8C
add r0, r5, #0x0
- bl FUN_0223CB08
+ bl MOD18_0223CB08
_0204D5F0:
strb r5, [r6, #0x0]
ldr r3, [r4, #0x0]
@@ -15384,7 +15384,7 @@ _0204D7F6: beq _0204D812
add r0, r5, #0x0
add r1, r6, #0x0
- bl FUN_02246F1C
+ bl MOD18_02246F1C
cmp r0, #0x0
bne _0204D812
mov r0, #0x1
@@ -15411,8 +15411,8 @@ FUN_0204D830: ; 0x0204D830 ldr r0, [r0, #0x4]
cmp r0, #0x0
beq _0204D852
- bl FUN_02244D40
- bl FUN_02244DA0
+ bl MOD18_02244D40
+ bl MOD18_02244DA0
cmp r0, #0x0
bne _0204D84E
mov r0, #0x1
@@ -15500,7 +15500,7 @@ _0204D8AA: cmp r0, #0x0
beq _0204D8E0
add r1, r5, #0x0
- bl FUN_02244D40
+ bl MOD18_02244D40
str r0, [sp, #0x4]
_0204D8E0:
ldr r1, [r6, #0x0]
@@ -15509,7 +15509,7 @@ _0204D8E0: cmp r0, #0x0
beq _0204D8F4
add r0, r5, #0x0
- bl FUN_02245F4C
+ bl MOD18_02245F4C
cmp r0, #0x0
bne _0204D976
_0204D8F4:
@@ -15536,7 +15536,7 @@ _0204D90A: cmp r0, #0x0
beq _0204D93C
add r0, r5, #0x0
- bl FUN_0223F8D8
+ bl MOD18_0223F8D8
cmp r0, #0x0
bne _0204D976
add r0, r5, #0x0
@@ -15544,14 +15544,14 @@ _0204D90A: cmp r0, #0x0
bne _0204D93C
add r0, r5, #0x0
- bl FUN_02247544
+ bl MOD06_02247544
cmp r0, #0x0
bne _0204D976
_0204D93C:
ldr r0, [sp, #0x4]
cmp r0, #0x0
beq _0204D94A
- bl FUN_02244DB0
+ bl MOD06_02244DB0
cmp r0, #0x0
beq _0204D976
_0204D94A:
@@ -15693,7 +15693,7 @@ _0204DA44: ldr r1, [sp, #0xc]
ldr r2, [sp, #0x8]
add r0, r5, #0x0
- bl FUN_0224566C
+ bl MOD18_0224566C
cmp r0, #0x1
beq _0204DAE2
_0204DA66:
@@ -15756,7 +15756,7 @@ _0204DA8E: add r0, r5, #0x0
add r2, sp, #0x14
mov r3, #0x0
- bl FUN_0224089C
+ bl MOD18_0224089C
_0204DAE2:
ldr r0, [sp, #0x0]
add r5, r5, #0x1
@@ -15889,7 +15889,7 @@ FUN_0204DBCC: ; 0x0204DBCC cmp r0, #0x0
beq _0204DC14
add r0, r4, #0x0
- bl FUN_0223E554
+ bl MOD18_0223E554
ldr r0, _0204DC28 ; =0x021C5A68
ldr r3, [r0, #0x0]
ldr r0, _0204DC30 ; =0x000002BD
@@ -15905,7 +15905,7 @@ FUN_0204DBCC: ; 0x0204DBCC ldrh r1, [r1, #0x0]
ldrh r3, [r3, #0x0]
mov r2, #0x0
- bl FUN_021E5B30
+ bl MOD05_021E5B30
_0204DC14:
mov r1, #0x0
add r0, r4, #0x0
@@ -16246,10 +16246,10 @@ _0204DE98: b _0204DEEC
_0204DEC2:
ldr r0, [sp, #0x10]
- blx abs
+ bl abs
add r6, r0, #0x0
add r0, r7, #0x0
- blx abs
+ bl abs
cmp r6, r0
ble _0204DEE2
ldr r0, [sp, #0x10]
@@ -16269,9 +16269,9 @@ _0204DEEA: mov r6, #0x80
_0204DEEC:
add r0, r7, #0x0
- blx abs
+ bl abs
ldr r0, [sp, #0x10]
- blx abs
+ bl abs
ldrb r3, [r5, #0x5]
add r0, r4, #0x0
add r1, r6, #0x0
@@ -16566,7 +16566,7 @@ _0204E124: add r0, r5, #0x0
add r2, sp, #0x4
mov r3, #0x0
- bl FUN_0224089C
+ bl MOD18_0224089C
add sp, #0x8
mov r0, #0x1
pop {r3-r7, pc}
@@ -16813,11 +16813,11 @@ FUN_0204E2E0: ; 0x0204E2E0 thumb_func_start FUN_0204E2F0
FUN_0204E2F0: ; 0x0204E2F0
- ldr r3, _0204E2F8 ; =0x0223E4BD
+ ldr r3, _0204E2F8 ; =MOD18_0223E4BC
ldrb r0, [r2, #0x0]
bx r3
nop
-_0204E2F8: .word 0x0223E4BD
+_0204E2F8: .word MOD18_0223E4BC
thumb_func_start FUN_0204E2FC
FUN_0204E2FC: ; 0x0204E2FC
@@ -17428,9 +17428,9 @@ FUN_0204E758: ; 0x0204E758 ldr r0, [r0, #0x0]
add r1, r2, #0x0
ldr r0, [r0, #0x4]
- bl FUN_02244D40
+ bl MOD18_02244D40
add r1, r4, #0x0
- bl FUN_02244D98
+ bl MOD18_02244D98
pop {r4, pc}
nop
_0204E774: .word 0x021C5A68
@@ -17442,9 +17442,9 @@ FUN_0204E778: ; 0x0204E778 ldr r0, _0204E790 ; =0x021C5A68
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x4]
- bl FUN_02244D40
+ bl MOD18_02244D40
mov r1, #0x0
- bl FUN_02244D98
+ bl MOD18_02244D98
pop {r3, pc}
nop
_0204E790: .word 0x021C5A68
@@ -17500,7 +17500,7 @@ FUN_0204E7CC: ; 0x0204E7CC ldrh r3, [r4, #0x2]
ldr r0, [r0, #0x54]
mov r2, #0x0
- bl FUN_021E5B30
+ bl MOD05_021E5B30
_0204E7FA:
strh r6, [r4, #0x0]
ldr r0, [sp, #0x0]
@@ -17528,7 +17528,7 @@ _0204E81A: ldrh r1, [r4, #0x0]
ldrh r3, [r4, #0x2]
mov r2, #0x0
- bl FUN_021E5B30
+ bl MOD05_021E5B30
_0204E832:
ldr r0, _0204E848 ; =0x021C5A68
ldr r1, [r0, #0x0]
@@ -17664,7 +17664,7 @@ FUN_0204E8FC: ; 0x0204E8FC ldr r1, [r1, #0x0]
ldr r0, _0204E968 ; =FUN_0204D308
ldr r1, [r1, #0x54]
- bl FUN_022494C8
+ bl MOD18_022494C8
pop {r4, pc}
_0204E936:
ldrb r0, [r4, #0x0]
@@ -17686,7 +17686,7 @@ _0204E936: ldr r1, [r1, #0x0]
ldr r0, _0204E968 ; =FUN_0204D308
ldr r1, [r1, #0x54]
- bl FUN_0224A7C8
+ bl MOD06_0224A7C8
_0204E962:
pop {r4, pc}
.balign 4
@@ -17716,11 +17716,11 @@ _0204E988: cmp r1, r0
bne _0204E9AA
bl FUN_0204F7E4
- bl FUN_0223D638
+ bl MOD18_0223D638
ldr r3, _0204EAD0 ; =FUN_0204E2AC
mov r1, #0x48
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
_0204E9AA:
ldrb r0, [r5, #0x0]
cmp r0, #0x1
@@ -17741,7 +17741,7 @@ _0204E9B8: ldr r2, [r2, #0x0]
ldr r1, _0204EAD4 ; =FUN_0204D308
ldr r2, [r2, #0x54]
- bl FUN_02247A34
+ bl MOD18_02247A34
ldr r0, _0204EACC ; =0x021C5A68
ldrb r4, [r5, #0x1]
ldr r2, [r0, #0x0]
@@ -17831,7 +17831,7 @@ _0204EA7C: ldr r2, [r2, #0x0]
add r0, r4, #0x0
ldr r2, [r2, #0x54]
- bl FUN_02248DF8
+ bl MOD18_02248DF8
_0204EA9A:
ldrb r0, [r5, #0x0]
cmp r0, #0x2
@@ -17841,18 +17841,18 @@ _0204EA9A: cmp r1, r0
bne _0204EABC
bl FUN_0204F7E4
- bl FUN_0223D638
+ bl MOD18_0223D638
ldr r3, _0204EAD0 ; =FUN_0204E2AC
mov r1, #0x2
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
_0204EABC:
ldrb r0, [r5, #0x0]
cmp r0, #0x1
bne _0204EACA
ldrb r0, [r5, #0x1]
ldrb r1, [r5, #0x2]
- bl FUN_0223E4A8
+ bl MOD18_0223E4A8
_0204EACA:
pop {r4-r6, pc}
.balign 4
@@ -18548,7 +18548,7 @@ _0204F004: bne _0204F01E
add r0, r1, #0x0
bl FUN_020553A0
- bl FUN_021E5970
+ bl MOD05_021E5970
ldr r1, _0204F06C ; =0x021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x2
@@ -18568,7 +18568,7 @@ _0204F02C: bne _0204F068
add r0, r1, #0x0
bl FUN_020553A0
- bl FUN_021E57D4
+ bl MOD05_021E57D4
ldr r1, _0204F06C ; =0x021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x2
@@ -18581,7 +18581,7 @@ _0204F048: bne _0204F068
add r0, r1, #0x0
bl FUN_020553A0
- bl FUN_021E5614
+ bl MOD05_021E5614
ldr r1, _0204F06C ; =0x021C5A68
ldr r2, [r1, #0x0]
lsl r1, r4, #0x2
@@ -18689,8 +18689,8 @@ FUN_0204F108: ; 0x0204F108 push {r3, lr}
bl FUN_02031190
bl FUN_0204F0A8
- bl FUN_0223D648
- bl FUN_0224DD94
+ bl MOD18_0223D648
+ bl MOD18_0224DD94
mov r0, #0x4
bl FUN_0204F774
pop {r3, pc}
@@ -18848,18 +18848,18 @@ FUN_0204F23C: ; 0x0204F23C sub sp, #0x8
add r5, r0, #0x0
add r4, r1, #0x0
- bl FUN_0223E6B8
+ bl MOD18_0223E6B8
mov r0, #0x0
bl FUN_0204D628
mov r0, #0x4
bl FUN_0204F74C
- bl FUN_0223D648
+ bl MOD18_0223D648
add r6, r0, #0x0
ldrb r0, [r5, #0x1]
bl FUN_0202DFA4
add r1, r0, #0x0
add r0, r6, #0x0
- bl FUN_0224DDB8
+ bl MOD18_0224DDB8
cmp r4, #0x0
beq _0204F29C
bl FUN_02031190
@@ -18873,18 +18873,18 @@ FUN_0204F23C: ; 0x0204F23C bl FUN_0204F0A8
bl FUN_02031190
bl FUN_0204F074
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F2CC ; =FUN_0204F108
mov r1, #0xa
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
b _0204F2AA
_0204F29C:
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F2CC ; =FUN_0204F108
mov r1, #0xb
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
_0204F2AA:
mov r0, #0xff
str r0, [sp, #0x0]
@@ -18965,11 +18965,11 @@ _0204F346: b _0204F5DA
_0204F348:
bl FUN_0204F7E4
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F5E4 ; =FUN_0204E2B4
mov r1, #0x2
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
mov r0, #0xff
str r0, [sp, #0x0]
mov r3, #0x0
@@ -19033,11 +19033,11 @@ _0204F3AC: add r0, r4, #0x0
bl FUN_02026C00
bl FUN_0204F7E4
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F5EC ; =FUN_0204E2AC
mov r1, #0xd
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
ldr r0, _0204F5F0 ; =0x00000625
bl FUN_020054C8
b _0204F410
@@ -19052,7 +19052,7 @@ _0204F3FC: bl FUN_0204F23C
_0204F410:
ldrb r0, [r5, #0x1]
- bl FUN_022472AC
+ bl MOD18_022472AC
add sp, #0xc
pop {r4-r5, pc}
_0204F41A:
@@ -19069,18 +19069,18 @@ _0204F41A: bl FUN_02026970
mov r0, #0x1
bl FUN_0204F74C
- bl FUN_0223D648
+ bl MOD18_0223D648
add r4, r0, #0x0
ldrb r0, [r5, #0x2]
bl FUN_0202DFA4
add r1, r0, #0x0
add r0, r4, #0x0
- bl FUN_0224DDB8
- bl FUN_0223D648
+ bl MOD18_0224DDB8
+ bl MOD18_0223D648
ldr r3, _0204F5F4 ; =FUN_0204E2D4
mov r1, #0xc
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
ldr r0, _0204F5F8 ; =0x00000425
bl FUN_0200521C
ldr r0, _0204F5F0 ; =0x00000625
@@ -19098,7 +19098,7 @@ _0204F46C: _0204F480:
ldrb r0, [r5, #0x1]
ldrb r1, [r5, #0x2]
- bl FUN_02247294
+ bl MOD18_02247294
add sp, #0xc
pop {r4-r5, pc}
_0204F48C:
@@ -19108,11 +19108,11 @@ _0204F48C: bne _0204F4B8
mov r0, #0x2
bl FUN_0204F74C
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F5FC ; =FUN_0204E2BC
mov r1, #0x6
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
add sp, #0xc
pop {r4-r5, pc}
_0204F4AE:
@@ -19125,11 +19125,11 @@ _0204F4B8: _0204F4BA:
mov r0, #0x20
bl FUN_0204F74C
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F600 ; =FUN_0204E2C8
mov r1, #0x5
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
add sp, #0xc
pop {r4-r5, pc}
_0204F4D2:
@@ -19194,11 +19194,11 @@ _0204F54A: ldrb r1, [r1, #0x0]
cmp r1, r0
bne _0204F572
- bl FUN_0223D648
+ bl MOD18_0223D648
ldr r3, _0204F5EC ; =FUN_0204E2AC
mov r1, #0x7
mov r2, #0x1
- bl FUN_0224DCB8
+ bl MOD18_0224DCB8
b _0204F57A
_0204F572:
mov r0, #0x60
@@ -19569,7 +19569,7 @@ FUN_0204F80C: ; 0x0204F80C pop {r3, pc}
_0204F832:
bl FUN_02031190
- bl FUN_0223E734
+ bl MOD12_0223E734
cmp r0, #0x0
beq _0204F84C
bl FUN_0204F7FC
@@ -19598,7 +19598,7 @@ FUN_0204F858: ; 0x0204F858 cmp r0, #0x0
beq _0204F880
bl FUN_02031190
- bl FUN_0223E734
+ bl MOD12_0223E734
cmp r0, #0x0
bne _0204F880
mov r0, #0x0
@@ -20040,7 +20040,7 @@ FUN_0204FBB0: ; 0x0204FBB0 mov r2, #0x48
str r0, [r1, #0x0]
mov r1, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0204FC08 ; =0x021C5A6C
mov r1, #0x32
ldr r0, [r0, #0x0]
@@ -20157,7 +20157,7 @@ FUN_0204FCA0: ; 0x0204FCA0 ldr r0, _0204FCD0 ; =0x021C5A6C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x18]
- bl FUN_0223E060
+ bl MOD18_0223E060
ldr r0, _0204FCD4 ; =FUN_020500A4
mov r1, #0x0
bl FUN_02050094
@@ -20199,7 +20199,7 @@ FUN_0204FD08: ; 0x0204FD08 bl FUN_0202EDD8
cmp r0, #0x0
bne _0204FD1E
- bl FUN_02245F1C
+ bl MOD18_02245F1C
ldr r0, _0204FD20 ; =FUN_020500A4
mov r1, #0x0
bl FUN_02050094
@@ -20673,12 +20673,12 @@ _020500B6: ldr r0, _02050108 ; =0x021C5A6C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x18]
- bl FUN_0223E1E0
+ bl MOD18_0223E1E0
bl FUN_0202DBE0
mov r0, #0x0
bl FUN_0204D168
- bl FUN_0223EF7C
- bl FUN_02245FA0
+ bl MOD18_0223EF7C
+ bl MOD06_02245FA0
ldr r0, _02050108 ; =0x021C5A6C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x18]
@@ -20748,7 +20748,7 @@ _02050164: .word FUN_02050168 thumb_func_start FUN_02050168
FUN_02050168: ; 0x02050168
push {r3, lr}
- bl FUN_0223DFB4
+ bl MOD06_0223DFB4
bl FUN_0204F80C
bl FUN_020318C4
cmp r0, #0x0
@@ -20756,7 +20756,7 @@ FUN_02050168: ; 0x02050168 bl FUN_02031190
cmp r0, #0x0
bne _02050190
- bl FUN_02245324
+ bl MOD18_02245324
ldr r0, _0205019C ; =FUN_0205024C
mov r1, #0x3c
bl FUN_02050094
@@ -20817,17 +20817,17 @@ _020501DC: cmp r0, r1
bne _0205023C
_02050202:
- bl FUN_0223E6B8
+ bl MOD18_0223E6B8
mov r0, #0x0
bl FUN_0204D040
mov r0, #0x0
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- bl FUN_022408FC
+ bl MOD18_022408FC
mov r0, #0x0
mov r1, #0x1
- bl FUN_0223FCE8
+ bl MOD18_0223FCE8
mov r0, #0x0
bl FUN_0202DE78
mov r0, #0x0
@@ -20848,7 +20848,7 @@ _02050248: .word FUN_02050350 thumb_func_start FUN_0205024C
FUN_0205024C: ; 0x0205024C
push {r3, lr}
- bl FUN_0223DFB4
+ bl MOD06_0223DFB4
ldr r0, _020502A0 ; =0x021C5A6C
ldr r1, [r0, #0x0]
ldrh r0, [r1, #0x3c]
@@ -20866,7 +20866,7 @@ _02050260: cmp r0, #0x0
bne _0205029E
_02050272:
- bl FUN_0223E6B8
+ bl MOD18_0223E6B8
cmp r0, #0x0
beq _0205027E
bl FUN_0204F7FC
@@ -20876,8 +20876,8 @@ _0205027E: mov r0, #0x0
bl FUN_0204D168
bl FUN_0204F930
- bl FUN_02245FA0
- bl FUN_0223E7FC
+ bl MOD06_02245FA0
+ bl MOD18_0223E7FC
ldr r0, _020502A8 ; =FUN_020502AC
mov r1, #0x0
bl FUN_02050094
@@ -20891,7 +20891,7 @@ _020502A8: .word FUN_020502AC thumb_func_start FUN_020502AC
FUN_020502AC: ; 0x020502AC
push {r3, lr}
- bl FUN_0223DFB4
+ bl MOD06_0223DFB4
ldr r0, _02050314 ; =0x021C5A6C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x18]
@@ -20913,15 +20913,15 @@ FUN_020502AC: ; 0x020502AC bne _02050310
_020502E2:
mov r0, #0x0
- bl FUN_02245358
+ bl MOD18_02245358
bl FUN_0204F90C
- bl FUN_02247808
+ bl MOD06_02247808
mov r0, #0x2b
bl FUN_020311DC
bl FUN_02031190
mov r1, #0x1
- bl FUN_0223FCE8
- bl FUN_0223E6B8
+ bl MOD18_0223FCE8
+ bl MOD18_0223E6B8
bl FUN_020318B4
ldr r0, _02050318 ; =FUN_02050458
mov r1, #0x0
@@ -20945,15 +20945,15 @@ _0205032C: .word FUN_02050330 thumb_func_start FUN_02050330
FUN_02050330: ; 0x02050330
- ldr r3, _02050334 ; =FUN_0223DFB4
+ ldr r3, _02050334 ; =MOD06_0223DFB4
bx r3
.balign 4
-_02050334: .word FUN_0223DFB4 + 1
+_02050334: .word MOD06_0223DFB4
thumb_func_start FUN_02050338
FUN_02050338: ; 0x02050338
push {r3, lr}
- bl FUN_02245F1C
+ bl MOD18_02245F1C
bl FUN_0204CC9C
ldr r0, _0205034C ; =FUN_020502AC
mov r1, #0x0
@@ -20971,7 +20971,7 @@ FUN_02050350: ; 0x02050350 cmp r0, #0x9
bne _02050364
bl FUN_0202DBE0
- bl FUN_0223E7FC
+ bl MOD18_0223E7FC
_02050364:
ldr r0, _020503A8 ; =0x021C5A6C
ldr r0, [r0, #0x0]
@@ -21014,7 +21014,7 @@ FUN_020503B4: ; 0x020503B4 bl FUN_0204FB00
cmp r0, #0x0
beq _020503CC
- bl FUN_0223EF7C
+ bl MOD18_0223EF7C
ldr r0, _020503E8 ; =FUN_020503F0
mov r1, #0x0
bl FUN_02050094
@@ -21039,13 +21039,13 @@ _020503EC: .word 0x021C5A6C thumb_func_start FUN_020503F0
FUN_020503F0: ; 0x020503F0
push {r3, lr}
- bl FUN_0223F4D8
+ bl MOD18_0223F4D8
cmp r0, #0x0
beq _02050412
ldr r0, _02050418 ; =0x02105E94
bl FUN_0204FBAC
- bl FUN_0223F4F4
- bl FUN_02245FA0
+ bl MOD18_0223F4F4
+ bl MOD06_02245FA0
ldr r0, _0205041C ; =FUN_02050420
mov r1, #0x0
bl FUN_02050094
@@ -21060,12 +21060,12 @@ _0205041C: .word FUN_02050420 thumb_func_start FUN_02050420
FUN_02050420: ; 0x02050420
push {r3, lr}
- bl FUN_022461A4
+ bl MOD18_022461A4
cmp r0, #0x0
beq _0205044A
ldr r0, _02050450 ; =0x02105EB0
bl FUN_0204FBAC
- bl FUN_022461B8
+ bl MOD18_022461B8
mov r0, #0x1
bl FUN_0204D168
mov r0, #0x1f
@@ -21148,10 +21148,10 @@ _020504CC: .word FUN_020500A4 thumb_func_start FUN_020504D0
FUN_020504D0: ; 0x020504D0
- ldr r3, _020504D4 ; =FUN_0223DFB4
+ ldr r3, _020504D4 ; =MOD06_0223DFB4
bx r3
.balign 4
-_020504D4: .word FUN_0223DFB4 + 1
+_020504D4: .word MOD06_0223DFB4
thumb_func_start FUN_020504D8
FUN_020504D8: ; 0x020504D8
@@ -21162,12 +21162,12 @@ FUN_020504D8: ; 0x020504D8 ldr r0, _02050508 ; =0x021C5A6C
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x18]
- bl FUN_0223E1E0
+ bl MOD18_0223E1E0
bl FUN_0202DBE0
mov r0, #0x0
bl FUN_0204D168
- bl FUN_0223EF7C
- bl FUN_02245FA0
+ bl MOD18_0223EF7C
+ bl MOD06_02245FA0
ldr r0, _0205050C ; =FUN_020504D0
mov r1, #0x0
bl FUN_02050094
@@ -21182,13 +21182,13 @@ FUN_02050510: ; 0x02050510 push {r3, lr}
bl FUN_02031190
mov r1, #0x1
- bl FUN_0223FCE8
+ bl MOD18_0223FCE8
bl FUN_02031190
mov r1, #0x1
- bl FUN_02247728
- bl FUN_0223CACC
+ bl MOD18_02247728
+ bl MOD18_0223CACC
bl FUN_0204CEF8
- bl FUN_0223E6B8
+ bl MOD18_0223E6B8
bl FUN_02031880
bl FUN_0204FB28
ldr r0, _02050544 ; =FUN_020504A4
@@ -21201,7 +21201,7 @@ _02050544: .word FUN_020504A4 thumb_func_start FUN_02050548
FUN_02050548: ; 0x02050548
push {r3, lr}
- bl FUN_0223DFB4
+ bl MOD06_0223DFB4
bl FUN_0204F80C
ldr r0, _02050574 ; =0x021C5A6C
ldr r0, [r0, #0x0]
@@ -21235,15 +21235,15 @@ _02050588: .word FUN_0205058C thumb_func_start FUN_0205058C
FUN_0205058C: ; 0x0205058C
- ldr r3, _02050590 ; =0x02247831
+ ldr r3, _02050590 ; =MOD18_02247830
bx r3
.balign 4
-_02050590: .word 0x02247831
+_02050590: .word MOD18_02247830
thumb_func_start FUN_02050594
FUN_02050594: ; 0x02050594
push {r3, lr}
- bl FUN_02245F1C
+ bl MOD18_02245F1C
bl FUN_0204CC9C
bl FUN_0202EE44
cmp r0, #0x0
@@ -21252,9 +21252,9 @@ FUN_02050594: ; 0x02050594 cmp r0, #0x0
beq _020505CC
_020505AE:
- bl FUN_022452A4
+ bl MOD18_022452A4
bl FUN_0204CEF8
- bl FUN_0223E6B8
+ bl MOD18_0223E6B8
bl FUN_02031880
bl FUN_0204FB28
ldr r0, _020505D8 ; =FUN_020504A4
@@ -21289,7 +21289,7 @@ FUN_020505F4: ; 0x020505F4 thumb_func_start FUN_020505F8
FUN_020505F8: ; 0x020505F8
push {r3, lr}
- bl FUN_02245F1C
+ bl MOD18_02245F1C
bl FUN_0204CC9C
ldr r0, _0205060C ; =FUN_02050168
mov r1, #0x0
@@ -21317,7 +21317,7 @@ FUN_02050624: ; 0x02050624 thumb_func_start FUN_02050628
FUN_02050628: ; 0x02050628
push {r3, lr}
- bl FUN_02245F1C
+ bl MOD18_02245F1C
bl FUN_0204CC9C
ldr r0, _0205063C ; =FUN_020504D0
mov r1, #0x0
@@ -21333,7 +21333,7 @@ FUN_02050640: ; 0x02050640 bl FUN_02030E7C
cmp r0, #0x0
beq _0205065E
- bl FUN_02240834
+ bl MOD06_02240834
bl FUN_0202DBE0
ldr r0, _02050660 ; =FUN_02050664
mov r1, #0x0
@@ -21354,7 +21354,7 @@ FUN_02050668: ; 0x02050668 bl FUN_0202E4C8
cmp r0, #0x0
beq _0205067E
- bl FUN_022407CC
+ bl MOD06_022407CC
ldr r0, _02050680 ; =FUN_02050684
mov r1, #0x0
bl FUN_02050094
@@ -22247,7 +22247,7 @@ FUN_02050D54: ; 0x02050D54 strh r0, [r1, #0x3c]
pop {r3, pc}
_02050D66:
- bl FUN_0223E1A4
+ bl MOD18_0223E1A4
bl FUN_02031860
mov r0, #0x21
bl FUN_020168D0
@@ -22329,7 +22329,7 @@ _02050E02: mov r0, #0x0
pop {r3, pc}
_02050E06:
- bl FUN_0223E2AC
+ bl MOD18_0223E2AC
pop {r3, pc}
.balign 4
_02050E0C: .word 0x021C5A6C
@@ -22345,7 +22345,7 @@ FUN_02050E10: ; 0x02050E10 ldrb r0, [r0, #0x0]
cmp r0, #0x0
beq _02050E26
- bl FUN_0223E118
+ bl MOD18_0223E118
_02050E26:
pop {r3, pc}
.balign 4
@@ -22362,7 +22362,7 @@ FUN_02050E2C: ; 0x02050E2C ldrb r0, [r0, #0x0]
cmp r0, #0x0
beq _02050E42
- bl FUN_0223E154
+ bl MOD18_0223E154
_02050E42:
pop {r3, pc}
.balign 4
@@ -22383,7 +22383,7 @@ FUN_02050E48: ; 0x02050E48 mov r1, #0x0
mov r2, #0x30
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0xc]
bl FUN_020238F4
add r1, r0, #0x0
@@ -22438,7 +22438,7 @@ FUN_02050ED4: ; 0x02050ED4 mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0x24]
ldr r0, [r0, #0xc]
bl LoadPlayerDataAddress
@@ -22564,7 +22564,7 @@ _02050FDA: add r0, #0x2c
add r1, #0x3d
mov r2, #0x6
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, [r4, #0x4]
add r0, #0x22
ldrb r0, [r0, #0x0]
@@ -22628,7 +22628,7 @@ FUN_0205104C: ; 0x0205104C cmp r0, #0x0
beq _02051066
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
bl FUN_0204CC9C
mov r0, #0x1
pop {r3, pc}
@@ -22921,7 +22921,7 @@ _02051288: b _020517B8
_0205129C:
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0xe
str r0, [r4, #0x34]
b _020517B8
@@ -23392,7 +23392,7 @@ _02051642: b _020517B8
_0205167A:
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x21
str r0, [r4, #0x34]
b _020517B8
@@ -23654,7 +23654,7 @@ _0205188E: add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x8c
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
mov r1, #0x5
add r0, #0x43
@@ -23840,7 +23840,7 @@ _02051A16: bl FUN_0206B9B0
add r1, r4, #0x0
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r5, r5, #0x1
add r4, r4, r6
cmp r5, #0x3
@@ -24002,7 +24002,7 @@ FUN_02051B1C: ; 0x02051B1C mul r2, r4
add r1, r3, r2
add r2, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, [r6, #0x50]
mov r1, #0x3
bl FUN_0206B8CC
@@ -24562,7 +24562,7 @@ _02051F7C: add r0, #0x8
bl FUN_02019178
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
ldr r0, [r4, #0x28]
add r0, r0, #0x1
str r0, [r4, #0x28]
@@ -24605,7 +24605,7 @@ _0205200C: cmp r0, #0x0
bne _0205203A
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
bl FUN_0204CC9C
ldr r0, [r4, #0x28]
add r0, r0, #0x1
@@ -24746,7 +24746,7 @@ _0205211E: mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
str r0, [r4, #0x10]
mov r0, #0x28
@@ -26131,7 +26131,7 @@ FUN_02052B74: ; 0x02052B74 add r0, sp, #0x0
mov r1, #0x0
mov r2, #0x20
- blx MI_CpuFill8
+ bl MI_CpuFill8
cmp r4, #0xb
bhi _02052BFA
add r0, r4, r4
@@ -26593,7 +26593,7 @@ FUN_02052EE8: ; 0x02052EE8 ldr r2, _02052F58 ; =0x000004E8
mov r0, #0x0
add r1, r4, #0x0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r0, #0x4e
str r5, [r4, #0x0]
mov r1, #0x1
@@ -27251,7 +27251,7 @@ _020533CC: cmp r0, #0x1
bne _0205342A
add r0, r4, #0x0
- bl FUN_02249668
+ bl MOD06_02249668
str r0, [r5, #0x14]
b _02053438
_0205342A:
@@ -27259,7 +27259,7 @@ _0205342A: blo _02053438
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_02249668
+ bl MOD06_02249668
str r0, [r5, #0x14]
_02053438:
mov r0, #0x0
@@ -27306,7 +27306,7 @@ FUN_02053478: ; 0x02053478 cmp r0, #0x0
bne _0205349C
add r0, r1, #0x0
- bl FUN_021EDA48
+ bl MOD05_021EDA48
str r0, [r4, #0x10]
mov r0, #0x1e
strh r0, [r4, #0x6]
@@ -27408,7 +27408,7 @@ _02053524: bne _02053566
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_02249668
+ bl MOD06_02249668
str r0, [r5, #0x14]
b _02053574
_02053566:
@@ -27416,7 +27416,7 @@ _02053566: blo _02053574
add r0, r4, #0x0
mov r1, #0x2
- bl FUN_02249668
+ bl MOD06_02249668
str r0, [r5, #0x14]
_02053574:
mov r0, #0x0
@@ -30706,7 +30706,7 @@ FUN_02054C14: ; 0x02054C14 push {r4, lr}
mov r1, #0xa
add r4, r0, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C26
mov r0, #0x1
@@ -30714,7 +30714,7 @@ FUN_02054C14: ; 0x02054C14 _02054C26:
add r0, r4, #0x0
mov r1, #0x64
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C36
mov r0, #0x2
@@ -30723,7 +30723,7 @@ _02054C36: mov r1, #0xfa
add r0, r4, #0x0
lsl r1, r1, #0x2
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C48
mov r0, #0x3
@@ -30731,7 +30731,7 @@ _02054C36: _02054C48:
ldr r1, _02054C9C ; =0x00002710
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C58
mov r0, #0x4
@@ -30739,7 +30739,7 @@ _02054C48: _02054C58:
ldr r1, _02054CA0 ; =0x000186A0
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C68
mov r0, #0x5
@@ -30747,7 +30747,7 @@ _02054C58: _02054C68:
ldr r1, _02054CA4 ; =0x000F4240
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C78
mov r0, #0x6
@@ -30755,7 +30755,7 @@ _02054C68: _02054C78:
ldr r1, _02054CA8 ; =0x00989680
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C88
mov r0, #0x7
@@ -30763,7 +30763,7 @@ _02054C78: _02054C88:
ldr r1, _02054CAC ; =0x05F5E100
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C98
mov r0, #0x8
@@ -31092,7 +31092,7 @@ FUN_02054EA0: ; 0x02054EA0 asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -31108,7 +31108,7 @@ FUN_02054EA0: ; 0x02054EA0 asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -31171,46 +31171,46 @@ FUN_02054F50: ; 0x02054F50 mov r1, #0x0
mov r2, #0x14
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, sp, #0x8
ldrh r0, [r0, #0x10]
cmp r0, #0x0
beq _02054F8A
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _02054F98
_02054F8A:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_02054F98:
- blx _ffix
+ bl _ffix
str r0, [r4, #0x4]
add r0, sp, #0x8
ldrh r0, [r0, #0x14]
cmp r0, #0x0
beq _02054FB8
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _02054FC6
_02054FB8:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_02054FC6:
- blx _ffix
+ bl _ffix
str r0, [r4, #0x8]
strh r6, [r4, #0xc]
strh r7, [r4, #0x10]
@@ -31274,7 +31274,7 @@ FUN_0205502C: ; 0x0205502C add r4, r0, #0x0
mov r1, #0x0
mov r2, #0xc
- blx MI_CpuFill8
+ bl MI_CpuFill8
strh r6, [r4, #0x4]
strh r7, [r4, #0x6]
str r5, [r4, #0x0]
@@ -31373,7 +31373,7 @@ _02055118: add r0, r4, #0x0
bl FUN_02058578
add r0, r5, #0x0
- bl FUN_021EDBC8
+ bl MOD05_021EDBC8
add r0, r5, #0x0
bl FUN_020553C4
cmp r0, #0x2
@@ -31392,7 +31392,7 @@ _02055118: add r0, r4, #0x0
add r1, r6, #0x0
add r2, r7, #0x0
- bl FUN_0224ABAC
+ bl MOD06_0224ABAC
add r1, r0, #0x0
add r0, r5, #0x0
bl FUN_02055450
@@ -31430,7 +31430,7 @@ _0205518E: add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x3c
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
@@ -32477,14 +32477,14 @@ _02055812: add r2, r6, #0x0
bl FUN_02055900
add r0, r5, #0x0
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_02055BD4
cmp r0, #0x1
bne _0205584E
add r0, r5, #0x0
- bl FUN_021E7138
+ bl MOD05_021E7138
pop {r3-r7, pc}
_0205584E:
add r0, r5, #0x0
@@ -32497,14 +32497,14 @@ _0205584E: cmp r0, #0x0
beq _0205586C
add r0, r5, #0x0
- bl FUN_021E7138
+ bl MOD05_021E7138
b _02055878
_0205586C:
ldr r0, [sp, #0x1c]
cmp r0, #0x1
bne _02055878
add r0, r5, #0x0
- bl FUN_021E70F0
+ bl MOD05_021E70F0
_02055878:
add r0, sp, #0x8
ldrh r0, [r0, #0x10]
@@ -36009,7 +36009,7 @@ _02057430: bl FUN_020583A0
add r1, r0, #0x0
ldr r0, [sp, #0x0]
- bl FUN_021F2AF4
+ bl MOD05_021F2AF4
add sp, #0x8
pop {r3-r7, pc}
.balign 4
@@ -36030,7 +36030,7 @@ _0205745A: add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x4a
lsl r0, r0, #0x2
add r6, r4, #0x0
@@ -36045,7 +36045,7 @@ _0205747E: add r0, r4, #0x0
mov r1, #0x0
add r2, r6, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_020583B4
@@ -36489,7 +36489,7 @@ _02057846: add r0, r5, #0x0
mov r1, #0x0
mul r2, r4
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
_02057856:
add sp, #0x8
pop {r3-r7, pc}
@@ -36889,7 +36889,7 @@ _02057BD4: ldr r2, [sp, #0x4]
add r0, r6, #0x0
add r1, r4, #0x0
- blx memcpy
+ bl memcpy
mov r0, #0xb
mov r1, #0x14
bl FUN_020169D8
@@ -37619,7 +37619,7 @@ FUN_020581B4: ; 0x020581B4 bl FUN_02058544
add r0, r4, #0x0
mov r1, #0x0
- bl FUN_021F2E0C
+ bl MOD05_021F2E0C
add r0, r4, #0x0
bl FUN_02058884
cmp r0, #0x0
@@ -37812,7 +37812,7 @@ FUN_02058348: ; 0x02058348 cmp r0, #0x1
bne _0205835E
add r0, r4, #0x0
- bl FUN_021F1D8C
+ bl MOD05_021F1D8C
_0205835E:
pop {r4, pc}
@@ -38313,7 +38313,7 @@ _0205859A: mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38337,7 +38337,7 @@ _020585C2: mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38361,7 +38361,7 @@ _020585EA: mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38385,7 +38385,7 @@ _02058612: mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -40122,7 +40122,7 @@ FUN_02059064: ; 0x02059064 lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0x0
- bl FUN_021F1DC8
+ bl MOD05_021F1DC8
add r7, r0, #0x0
add r0, r5, #0x0
add r1, r6, #0x0
@@ -40185,7 +40185,7 @@ FUN_020590F4: ; 0x020590F4 lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0x0
- bl FUN_021F1DC8
+ bl MOD05_021F1DC8
add r7, r0, #0x0
add r0, r5, #0x0
add r1, r6, #0x0
@@ -40263,7 +40263,7 @@ FUN_020591A8: ; 0x020591A8 lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0x0
- bl FUN_021F1DC8
+ bl MOD05_021F1DC8
add r7, r0, #0x0
add r0, r5, #0x0
add r1, r6, #0x0
@@ -40311,7 +40311,7 @@ FUN_02059214: ; 0x02059214 lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0x0
- bl FUN_021F1DC8
+ bl MOD05_021F1DC8
add r7, r0, #0x0
add r0, r5, #0x0
add r1, r6, #0x0
@@ -40364,7 +40364,7 @@ FUN_0205928C: ; 0x0205928C lsl r0, r0, #0x18
lsr r4, r0, #0x18
add r0, r5, #0x0
- bl FUN_021F1DC8
+ bl MOD05_021F1DC8
add r7, r0, #0x0
add r0, r5, #0x0
add r1, r6, #0x0
@@ -40539,7 +40539,7 @@ FUN_0205941C: ; 0x0205941C bne _02059432
add r0, r4, #0x0
mov r1, #0x0
- bl FUN_0224B568
+ bl MOD06_0224B568
_02059432:
pop {r4, pc}
@@ -40553,7 +40553,7 @@ FUN_02059434: ; 0x02059434 bne _0205944A
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_0224B568
+ bl MOD06_0224B568
_0205944A:
pop {r4, pc}
@@ -40577,13 +40577,13 @@ FUN_0205944C: ; 0x0205944C cmp r0, #0x1
bne _02059478
add r0, r5, #0x0
- bl FUN_02249E6C
+ bl MOD06_02249E6C
pop {r4-r6, pc}
_02059478:
cmp r0, #0x2
bne _020594BC
add r0, r5, #0x0
- bl FUN_02249E78
+ bl MOD06_02249E78
pop {r4-r6, pc}
_02059484:
add r0, r4, #0x0
@@ -40600,7 +40600,7 @@ _02059484: beq _020594AA
_020594A2:
add r0, r5, #0x0
- bl FUN_02249E90
+ bl MOD06_02249E90
pop {r4-r6, pc}
_020594AA:
add r0, r5, #0x0
@@ -40609,7 +40609,7 @@ _020594AA: cmp r0, #0x1
bne _020594BC
add r0, r5, #0x0
- bl FUN_02249E84
+ bl MOD06_02249E84
_020594BC:
pop {r4-r6, pc}
.balign 4
@@ -40628,7 +40628,7 @@ FUN_020594C0: ; 0x020594C0 bne _020594F2
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_0224B9E0
+ bl MOD06_0224B9E0
add r0, r4, #0x0
mov r1, #0x1
bl FUN_020589E4
@@ -40716,7 +40716,7 @@ _02059584: cmp r0, #0x0
bne _020595A2
add r0, r5, #0x0
- bl FUN_02249508
+ bl MOD06_02249508
mov r1, #0x2
add r0, r5, #0x0
lsl r1, r1, #0xe
@@ -40816,7 +40816,7 @@ FUN_0205962C: ; 0x0205962C cmp r0, #0x1
beq _02059674
add r0, r5, #0x0
- bl FUN_0224BBEC
+ bl MOD06_0224BBEC
_02059674:
pop {r3-r5, pc}
.balign 4
@@ -40831,7 +40831,7 @@ FUN_02059678: ; 0x02059678 bne _0205968E
add r0, r4, #0x0
mov r1, #0x0
- bl FUN_0224BD90
+ bl MOD06_0224BD90
_0205968E:
pop {r4, pc}
@@ -40845,7 +40845,7 @@ FUN_02059690: ; 0x02059690 bne _020596A6
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_0224BD90
+ bl MOD06_0224BD90
_020596A6:
pop {r4, pc}
@@ -40859,7 +40859,7 @@ FUN_020596A8: ; 0x020596A8 bne _020596BE
add r0, r4, #0x0
mov r1, #0x0
- bl FUN_0224C038
+ bl MOD06_0224C038
_020596BE:
pop {r4, pc}
@@ -40873,7 +40873,7 @@ FUN_020596C0: ; 0x020596C0 bne _020596D6
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_0224C038
+ bl MOD06_0224C038
_020596D6:
pop {r4, pc}
@@ -40897,7 +40897,7 @@ FUN_020596D8: ; 0x020596D8 add r0, r5, #0x0
add r1, r4, #0x0
add r2, r6, #0x0
- bl FUN_0224B124
+ bl MOD06_0224B124
_02059708:
pop {r4-r6, pc}
.balign 4
@@ -40922,7 +40922,7 @@ FUN_0205970C: ; 0x0205970C add r0, r5, #0x0
add r1, r4, #0x0
add r2, r6, #0x0
- bl FUN_0224B124
+ bl MOD06_0224B124
_0205973C:
pop {r4-r6, pc}
.balign 4
@@ -40947,7 +40947,7 @@ FUN_02059740: ; 0x02059740 add r0, r5, #0x0
add r1, r4, #0x0
add r2, r6, #0x0
- bl FUN_0224B2C4
+ bl MOD06_0224B2C4
_02059770:
pop {r4-r6, pc}
.balign 4
@@ -40972,7 +40972,7 @@ FUN_02059774: ; 0x02059774 add r0, r5, #0x0
add r1, r4, #0x0
add r2, r6, #0x0
- bl FUN_0224B2C4
+ bl MOD06_0224B2C4
_020597A4:
pop {r4-r6, pc}
.balign 4
@@ -41012,12 +41012,12 @@ _020597DE: bne _020597FA
add r0, r5, #0x0
mov r1, #0x0
- bl FUN_022497E8
+ bl MOD06_022497E8
pop {r4-r6, pc}
_020597FA:
add r0, r5, #0x0
mov r1, #0x1
- bl FUN_022497E8
+ bl MOD06_022497E8
_02059802:
pop {r4-r6, pc}
@@ -43565,7 +43565,7 @@ FUN_0205AAB0: ; 0x0205AAB0 bl FUN_0205AA90
add r1, r0, #0x0
add r0, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x2
ldr r0, [r5, r0]
pop {r4-r6, pc}
@@ -43584,7 +43584,7 @@ FUN_0205AAD4: ; 0x0205AAD4 bl FUN_0205AA90
add r1, r0, #0x0
add r0, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x2
ldr r0, [r4, r0]
pop {r4-r6, pc}
@@ -45936,7 +45936,7 @@ FUN_0205BB90: ; 0x0205BB90 add r0, r5, #0x0
add r1, r6, #0x0
mov r2, #0x1
- bl FUN_021E7AC0
+ bl MOD05_021E7AC0
str r0, [r4, #0x4]
add r0, r5, #0x0
bl FUN_02058700
@@ -45949,7 +45949,7 @@ FUN_0205BBB4: ; 0x0205BBB4 bl FUN_02058600
add r4, r0, #0x0
ldr r0, [r4, #0x4]
- bl FUN_021E799C
+ bl MOD05_021E799C
cmp r0, #0x1
bne _0205BBD8
ldr r0, [r4, #0x4]
@@ -46273,7 +46273,7 @@ _0205BDFE: add r0, r4, #0x0
bl FUN_02058B94
add r0, r4, #0x0
- bl FUN_0224D2E0
+ bl MOD06_0224D2E0
ldr r1, _0205BE34 ; =0x00010004
add r0, r4, #0x0
bl FUN_02058410
@@ -47060,7 +47060,7 @@ FUN_0205C3B0: ; 0x0205C3B0 mov r1, #0x0
str r1, [r0, #0x4]
add r0, r4, #0x0
- bl FUN_0224A310
+ bl MOD06_0224A310
pop {r4, pc}
nop
_0205C3CC: .word 0x0000FFFF
@@ -47080,7 +47080,7 @@ FUN_0205C3D0: ; 0x0205C3D0 bl FUN_0204B5FC
add r6, r0, #0x0
add r0, r5, #0x0
- bl FUN_021F2E28
+ bl MOD05_021F2E28
cmp r0, #0x1
beq _0205C488
ldr r0, [r4, #0x4]
@@ -47090,7 +47090,7 @@ FUN_0205C3D0: ; 0x0205C3D0 ldr r2, [r4, #0x0]
add r0, r5, #0x0
add r1, #0x8
- bl FUN_021F2094
+ bl MOD05_021F2094
add r0, r5, #0x0
bl FUN_02058738
add r1, r5, #0x0
@@ -47105,13 +47105,13 @@ FUN_0205C3D0: ; 0x0205C3D0 cmp r0, #0x0
beq _0205C432
add r0, r5, #0x0
- bl FUN_0224A528
+ bl MOD06_0224A528
_0205C432:
add r1, r4, #0x0
ldr r2, [r4, #0x0]
add r0, r5, #0x0
add r1, #0x8
- bl FUN_021F1F78
+ bl MOD05_021F1F78
b _0205C450
_0205C440:
cmp r0, #0x0
@@ -47120,23 +47120,23 @@ _0205C440: cmp r0, #0x0
bne _0205C450
add r0, r5, #0x0
- bl FUN_0224A528
+ bl MOD06_0224A528
_0205C450:
mov r0, #0x0
strh r0, [r7, #0x2]
_0205C454:
add r0, r5, #0x0
str r6, [r4, #0x4]
- bl FUN_021F2E28
+ bl MOD05_021F2E28
cmp r0, #0x1
beq _0205C488
ldr r1, [r4, #0x8]
cmp r1, #0x0
beq _0205C488
add r0, r5, #0x0
- bl FUN_021F2F48
+ bl MOD05_021F2F48
add r0, r5, #0x0
- bl FUN_021F1DFC
+ bl MOD05_021F1DFC
cmp r0, #0x0
bne _0205C480
mov r1, #0x1
@@ -47146,7 +47146,7 @@ _0205C454: _0205C480:
ldr r1, [r4, #0x8]
add r0, r5, #0x0
- bl FUN_021F2F6C
+ bl MOD05_021F2F6C
_0205C488:
pop {r3-r7, pc}
nop
@@ -47162,7 +47162,7 @@ FUN_0205C490: ; 0x0205C490 ldr r2, [r2, #0x0]
add r0, r4, #0x0
add r1, #0x8
- bl FUN_021F2094
+ bl MOD05_021F2094
pop {r4, pc}
thumb_func_start FUN_0205C4A8
@@ -47176,13 +47176,13 @@ FUN_0205C4A8: ; 0x0205C4A8 beq _0205C4C0
add r1, r4, #0x0
add r1, #0xc
- bl FUN_021F20D8
+ bl MOD05_021F20D8
_0205C4C0:
add r1, r4, #0x0
ldr r2, [r4, #0x0]
add r0, r5, #0x0
add r1, #0x8
- bl FUN_021F2094
+ bl MOD05_021F2094
mov r1, #0x2
add r0, r5, #0x0
lsl r1, r1, #0x14
@@ -47196,7 +47196,7 @@ FUN_0205C4D8: ; 0x0205C4D8 bl FUN_02058628
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_021F2E28
+ bl MOD05_021F2E28
cmp r0, #0x1
beq _0205C536
ldr r0, [r4, #0x8]
@@ -47209,7 +47209,7 @@ FUN_0205C4D8: ; 0x0205C4D8 add r1, r4, #0x0
add r0, r5, #0x0
add r1, #0x8
- bl FUN_021F1F78
+ bl MOD05_021F1F78
b _0205C510
_0205C506:
mov r1, #0x2
@@ -47218,17 +47218,17 @@ _0205C506: bl FUN_02058418
_0205C510:
add r0, r5, #0x0
- bl FUN_0224A310
+ bl MOD06_0224A310
_0205C516:
ldr r0, [r4, #0x8]
cmp r0, #0x0
beq _0205C536
add r1, r4, #0x0
add r1, #0xc
- bl FUN_021F20F8
+ bl MOD05_021F20F8
ldr r1, [r4, #0x8]
add r0, r5, #0x0
- bl FUN_021F2F48
+ bl MOD05_021F2F48
mov r1, #0x2
add r0, r5, #0x0
lsl r1, r1, #0x14
@@ -47960,7 +47960,7 @@ _0205CA9A: add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x2c
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [sp, #0x0]
str r7, [r4, #0x8]
str r0, [r4, #0xc]
@@ -48052,7 +48052,7 @@ FUN_0205CB30: ; 0x0205CB30 _0205CB44:
ldr r0, [r4, #0x24]
ldr r1, [r4, #0x8]
- bl FUN_021F1EC0
+ bl MOD05_021F1EC0
add r0, r5, #0x0
mov r1, #0x40
bl FUN_02058410
@@ -48154,7 +48154,7 @@ FUN_0205CBF8: ; 0x0205CBF8 mov r1, #0x0
ldr r0, [r4, #0x24]
add r2, r1, #0x0
- bl FUN_021E7AC0
+ bl MOD05_021E7AC0
str r0, [r4, #0x20]
mov r0, #0x6
str r0, [r4, #0x0]
@@ -48166,7 +48166,7 @@ FUN_0205CC10: ; 0x0205CC10 push {r4, lr}
add r4, r0, #0x0
ldr r0, [r4, #0x20]
- bl FUN_021E799C
+ bl MOD05_021E799C
cmp r0, #0x1
bne _0205CC28
ldr r0, [r4, #0x20]
@@ -48724,7 +48724,7 @@ FUN_0205D024: ; 0x0205D024 mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -49024,9 +49024,9 @@ _0205D296: bl FUN_02058914
ldr r0, [r4, #0x38]
mov r1, #0x1
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
ldr r0, [r4, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
add r0, r4, #0x0
mov r1, #0x0
bl FUN_0204AB20
@@ -49054,9 +49054,9 @@ _0205D2D6: bl FUN_02058914
ldr r0, [r4, #0x38]
mov r1, #0x2
- bl FUN_021E5FD8
+ bl MOD05_021E5FD8
ldr r0, [r4, #0x38]
- bl FUN_021E5FE0
+ bl MOD05_021E5FE0
add r4, #0x90
ldr r0, [r4, #0x0]
bl FUN_0205DD40
@@ -49207,7 +49207,7 @@ FUN_0205D400: ; 0x0205D400 mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -49566,7 +49566,7 @@ FUN_0205D6BC: ; 0x0205D6BC add r4, r0, #0x0
add r0, r6, #0x0
bl FUN_0204649C
- bl FUN_021F57EC
+ bl MOD05_021F57EC
str r0, [sp, #0x0]
ldr r1, [sp, #0x0]
mov r0, #0xb
@@ -49574,7 +49574,7 @@ FUN_0205D6BC: ; 0x0205D6BC ldr r2, [sp, #0x0]
mov r1, #0x0
add r7, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x72
ldr r1, _0205D710 ; =0x021F57F1
lsl r0, r0, #0x2
@@ -49646,7 +49646,7 @@ FUN_0205D74C: ; 0x0205D74C add r0, r5, #0x0
mov r1, #0xb
mov r2, #0x0
- bl FUN_021F5C44
+ bl MOD05_021F5C44
mov r1, #0x7e
lsl r1, r1, #0x2
str r0, [r4, r1]
@@ -49663,7 +49663,7 @@ FUN_0205D788: ; 0x0205D788 ldr r0, [r4, #0x0]
mov r1, #0x4
mov r2, #0x0
- bl FUN_021F5C44
+ bl MOD05_021F5C44
add r2, r0, #0x0
ldr r0, [r4, #0x0]
ldr r1, _0205D7A4 ; =0x021F5C71
@@ -49692,7 +49692,7 @@ FUN_0205D7A8: ; 0x0205D7A8 add r0, r5, #0x0
mov r1, #0xb
mov r2, #0x1
- bl FUN_021F5C44
+ bl MOD05_021F5C44
mov r1, #0x7e
lsl r1, r1, #0x2
str r0, [r4, r1]
@@ -49709,7 +49709,7 @@ FUN_0205D7E4: ; 0x0205D7E4 ldr r0, [r4, #0x0]
mov r1, #0x4
mov r2, #0x1
- bl FUN_021F5C44
+ bl MOD05_021F5C44
add r2, r0, #0x0
ldr r0, [r4, #0x0]
ldr r1, _0205D800 ; =0x021F5C71
@@ -49738,7 +49738,7 @@ FUN_0205D804: ; 0x0205D804 add r0, r5, #0x0
mov r1, #0xb
mov r2, #0x2
- bl FUN_021F5C44
+ bl MOD05_021F5C44
mov r1, #0x7e
lsl r1, r1, #0x2
str r0, [r4, r1]
@@ -49755,7 +49755,7 @@ FUN_0205D840: ; 0x0205D840 ldr r0, [r4, #0x0]
mov r1, #0x4
mov r2, #0x2
- bl FUN_021F5C44
+ bl MOD05_021F5C44
add r2, r0, #0x0
ldr r0, [r4, #0x0]
ldr r1, _0205D85C ; =0x021F5C71
@@ -49938,7 +49938,7 @@ FUN_0205D9A8: ; 0x0205D9A8 mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -50049,7 +50049,7 @@ FUN_0205DAAC: ; 0x0205DAAC add r4, r0, #0x0
bl FUN_02046528
mov r1, #0xb
- bl FUN_0224C700
+ bl MOD06_0224C700
add r2, r0, #0x0
ldr r1, _0205DAC8 ; =0x0224C721
add r0, r4, #0x0
@@ -50170,7 +50170,7 @@ _0205DB9C: add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x2c
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
str r5, [r4, #0x0]
ldr r0, [sp, #0x0]
add r1, r4, #0x4
@@ -50269,7 +50269,7 @@ _0205DC68: ldr r0, [r5, #0x34]
bl FUN_02058780
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x1
add r4, #0x2a
strb r0, [r4, #0x0]
@@ -50317,7 +50317,7 @@ _0205DCC4: ldr r0, [r5, #0x34]
bl FUN_02058780
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x4
add r4, #0x2a
strb r0, [r4, #0x0]
@@ -50392,7 +50392,7 @@ FUN_0205DD40: ; 0x0205DD40 add r0, #0x1c
mov r2, #0xa0
str r1, [r4, #0x18]
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r3, #0x0
add r2, r3, #0x0
mov r0, #0x28
@@ -50453,13 +50453,13 @@ _0205DDCA: add r6, r0, #0x0
ldr r0, _0205DED0 ; =0x0000FFFF
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r6, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r6, r0, #0x10
cmp r6, r4
@@ -50475,13 +50475,13 @@ _0205DDF2: lsr r6, r0, #0x18
add r0, r6, #0x0
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bne _0205DE1C
add r0, r6, #0x0
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r5, r1
add r0, r5, #0x0
b _0205DE5C
@@ -50490,7 +50490,7 @@ _0205DE1C: bne _0205DE30
add r0, r6, #0x0
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r0, r5, r4
add r1, r5, r1
sub r0, r0, #0x1
@@ -50603,7 +50603,7 @@ _0205DEE0: bl FUN_0201B9EC
mov r1, #0x29
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r7, r0, #0x10
cmp r7, #0x64
@@ -50659,7 +50659,7 @@ _0205DF4C: beq _0205DF6E
add r0, r5, #0x0
mov r3, #0x2
- bl FUN_0224B818
+ bl MOD06_0224B818
str r0, [r4, #0x34]
b _0205DF90
_0205DF6E:
@@ -50668,13 +50668,13 @@ _0205DF6E: bne _0205DF80
add r0, r5, #0x0
mov r3, #0x0
- bl FUN_0224B818
+ bl MOD06_0224B818
str r0, [r4, #0x34]
b _0205DF90
_0205DF80:
add r0, r5, #0x0
mov r3, #0x1
- bl FUN_0224B818
+ bl MOD06_0224B818
str r0, [r4, #0x34]
b _0205DF90
_0205DF8C:
@@ -50701,7 +50701,7 @@ _0205DFA4: ldr r0, [r5, #0x34]
cmp r0, #0x0
beq _0205DFCA
- bl FUN_0224B86C
+ bl MOD06_0224B86C
cmp r0, #0x0
beq _0205DFD0
ldr r0, [r5, #0x34]
@@ -51041,7 +51041,7 @@ FUN_0205E1F0: ; 0x0205E1F0 ldr r2, [r5, #0x8]
lsl r1, r1, #0x2
strh r2, [r4, r1]
- bl FUN_02245844
+ bl MOD06_02245844
add r0, r5, #0x0
add r0, #0xd0
ldrb r0, [r0, #0x0]
@@ -51150,7 +51150,7 @@ _0205E2DC: bl FUN_0201B9EC
mov r1, #0x29
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x64
@@ -51325,13 +51325,13 @@ _0205E43C: lsl r1, r5, #0x10
ldr r0, _0205E47C ; =0x0000FFFF
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r4, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
lsl r0, r5, #0x10
@@ -52131,7 +52131,7 @@ FUN_0205EA64: ; 0x0205EA64 bl FUN_0205EB20
cmp r0, #0x0
beq _0205EA72
- bl FUN_021E4DE4
+ bl MOD05_021E4DE4
_0205EA72:
pop {r3, pc}
@@ -52174,7 +52174,7 @@ FUN_0205EAB0: ; 0x0205EAB0 cmp r1, #0x0
bne _0205EACA
ldrb r1, [r4, #0x1]
- bl FUN_0224CECC
+ bl MOD06_0224CECC
add r1, r0, #0x0
add r0, r5, #0x0
bl FUN_0205EB14
@@ -52206,7 +52206,7 @@ FUN_0205EAE0: ; 0x0205EAE0 bne _0205EB0E
ldrb r1, [r4, #0x1]
add r0, r5, #0x0
- bl FUN_0224CECC
+ bl MOD06_0224CECC
add r1, r0, #0x0
add r0, r5, #0x0
bl FUN_0205EB14
@@ -52260,12 +52260,12 @@ FUN_0205EB38: ; 0x0205EB38 add r7, r0, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r7, #0x0
add r1, sp, #0xc
mov r2, #0x2
mov r3, #0xb
- bl FUN_021D959C
+ bl MOD05_021D959C
mov r0, #0x2
str r0, [sp, #0x0]
mov r0, #0x1
@@ -52276,21 +52276,21 @@ FUN_0205EB38: ; 0x0205EB38 add r0, r7, #0x0
mov r1, #0x55
add r3, r2, #0x0
- bl FUN_021D967C
+ bl MOD05_021D967C
ldr r0, _0205EBE4 ; =0x000034D8
mov r1, #0x55
str r0, [sp, #0x0]
add r0, r7, #0x0
mov r2, #0x2
mov r3, #0x0
- bl FUN_021D96F4
+ bl MOD05_021D96F4
ldr r0, _0205EBE4 ; =0x000034D8
mov r1, #0x55
str r0, [sp, #0x0]
add r0, r7, #0x0
mov r2, #0x3
mov r3, #0x0
- bl FUN_021D9708
+ bl MOD05_021D9708
mov r2, #0x1
ldr r0, _0205EBE4 ; =0x000034D8
str r2, [sp, #0x0]
@@ -52298,14 +52298,14 @@ FUN_0205EB38: ; 0x0205EB38 add r0, r7, #0x0
mov r1, #0x55
mov r3, #0x0
- bl FUN_021D971C
+ bl MOD05_021D971C
ldr r4, _0205EBE8 ; =0x020F73C8
mov r6, #0x0
add r5, r7, #0x0
_0205EBC0:
add r0, r7, #0x0
add r1, r4, #0x0
- bl FUN_021D9820
+ bl MOD05_021D9820
mov r1, #0x59
lsl r1, r1, #0x2
str r0, [r5, r1]
@@ -52341,7 +52341,7 @@ _0205EC02: cmp r4, #0x2
blt _0205EBF8
add r0, r7, #0x0
- bl FUN_021D99F8
+ bl MOD05_021D99F8
add r0, r7, #0x0
bl FUN_02016A18
pop {r3-r7, pc}
@@ -53787,7 +53787,7 @@ FUN_0205F668: ; 0x0205F668 add r4, r0, #0x0
bl FUN_0201B9EC
mov r1, #0x62
- blx _s32_div_f
+ bl _s32_div_f
add r1, r1, #0x2
lsl r1, r1, #0x10
add r0, r4, #0x0
@@ -53977,7 +53977,7 @@ FUN_0205F7A0: ; 0x0205F7A0 add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x6
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [sp, #0x0]
ldr r0, [r0, #0x38]
bl FUN_02055320
@@ -54024,7 +54024,7 @@ _0205F812: ldr r0, [r0, #0x0]
mov r1, #0x6
add r0, r0, #0x4
- blx _s32_div_f
+ bl _s32_div_f
mov r6, #0x0
add r4, r5, #0x0
_0205F83E:
@@ -54046,7 +54046,7 @@ _0205F85A: strh r0, [r4, #0x28]
add r0, r1, #0x5
mov r1, #0x6
- blx _s32_div_f
+ bl _s32_div_f
add r6, r6, #0x1
add r4, #0xc
cmp r6, #0x5
@@ -54109,10 +54109,10 @@ FUN_0205F8CC: ; 0x0205F8CC bl FUN_020462AC
str r0, [sp, #0x0]
add r0, sp, #0x28
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x28
add r1, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
cmp r0, #0x0
bne _0205F8F8
bl ErrorHandling
@@ -54122,7 +54122,7 @@ _0205F8F8: add r0, sp, #0x28
add r1, sp, #0x24
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
cmp r0, #0x0
bge _0205F90A
bl ErrorHandling
@@ -54133,7 +54133,7 @@ _0205F90A: mov r1, #0x0
mov r2, #0x4
add r6, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, [sp, #0x24]
ldr r0, _0205FA28 ; =0x0000013A
mov r4, #0x0
@@ -54162,7 +54162,7 @@ _0205F94C: add r0, sp, #0x28
add r1, r6, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldrb r0, [r6, #0x0]
cmp r0, #0x1
beq _0205F962
@@ -54263,7 +54263,7 @@ _0205FA0E: blt _0205F94C
_0205FA16:
add r0, sp, #0x28
- blx FS_CloseFile
+ bl FS_CloseFile
add r0, r6, #0x0
bl FUN_02016A18
add sp, #0x70
@@ -54283,7 +54283,7 @@ FUN_0205FA2C: ; 0x0205FA2C mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r6, #0x0
bl LoadPlayerDataAddress
str r0, [r4, #0xc]
@@ -54390,7 +54390,7 @@ _0205FB0C: add r0, #0x2c
add r1, #0xe
mov r2, #0x6
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0x0
add r0, #0x22
ldrb r0, [r0, #0x0]
@@ -54416,7 +54416,7 @@ FUN_0205FB34: ; 0x0205FB34 mov r1, #0x0
mov r2, #0x30
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl LoadPlayerDataAddress
str r0, [r4, #0x4]
@@ -54554,7 +54554,7 @@ FUN_0205FC50: ; 0x0205FC50 add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x18
- blx MI_CpuFill8
+ bl MI_CpuFill8
strb r6, [r4, #0x8]
strb r7, [r4, #0x9]
add r0, sp, #0x8
@@ -54673,7 +54673,7 @@ FUN_0205FD38: ; 0x0205FD38 add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x18
- blx MI_CpuFill8
+ bl MI_CpuFill8
strh r5, [r4, #0x12]
strh r7, [r4, #0x14]
ldr r0, [sp, #0x0]
@@ -54719,19 +54719,19 @@ _0205FD96: _0205FDB0:
add r0, r6, #0x0
add r1, r7, #0x0
- bl FUN_02244660
+ bl MOD06_02244660
strh r0, [r4, #0x0]
b _0205FDD2
_0205FDBC:
add r0, r6, #0x0
add r1, r7, #0x0
- bl FUN_022446BC
+ bl MOD06_022446BC
strh r0, [r4, #0x0]
b _0205FDD2
_0205FDC8:
add r0, r6, #0x0
add r1, r7, #0x0
- bl FUN_022446E0
+ bl MOD06_022446E0
strh r0, [r4, #0x0]
_0205FDD2:
add r0, r5, #0x0
@@ -54752,7 +54752,7 @@ FUN_0205FDDC: ; 0x0205FDDC add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
strh r5, [r4, #0x0]
strh r6, [r4, #0x2]
ldr r0, [r7, #0x10]
@@ -55197,11 +55197,11 @@ FUN_0206015C: ; 0x0206015C bl FUN_020169D8
add r4, r0, #0x0
mov r0, #0xb
- bl FUN_02244DB0
+ bl MOD06_02244DB0
str r0, [r4, #0x0]
mov r0, #0xb
add r1, r5, #0x0
- bl FUN_02245114
+ bl MOD06_02245114
str r0, [r4, #0x4]
mov r0, #0x0
strb r0, [r4, #0xc]
@@ -55251,9 +55251,9 @@ _020601CE: bl FUN_0206367C
ldrb r0, [r4, #0xd]
ldr r1, [r4, #0x4]
- bl FUN_02245198
+ bl MOD06_02245198
ldr r0, [r4, #0x4]
- bl FUN_022451F0
+ bl MOD06_022451F0
str r0, [r4, #0x8]
add r0, r5, #0x0
bl FUN_0204AFC8
@@ -55302,16 +55302,16 @@ _02060232: cmp r1, #0x5
bhi _02060290
add r0, r6, #0x0
- bl FUN_02245088
+ bl MOD06_02245088
add r6, r0, #0x0
add r0, r7, #0x0
mov r1, #0x1
bl FUN_0205889C
ldr r0, [r4, #0x0]
add r1, r6, #0x0
- bl FUN_02244DC4
+ bl MOD06_02244DC4
ldr r0, [r4, #0x0]
- bl FUN_02244EF8
+ bl MOD06_02244EF8
mov r0, #0x0
strb r0, [r4, #0xe]
ldr r0, _02060338 ; =0x00000679
@@ -55355,9 +55355,9 @@ _020602A2: _020602B8:
ldrb r0, [r4, #0xd]
ldr r1, [r4, #0x4]
- bl FUN_02245198
+ bl MOD06_02245198
ldr r0, [r4, #0x4]
- bl FUN_022451F0
+ bl MOD06_022451F0
str r0, [r4, #0x8]
ldr r0, _02060338 ; =0x00000679
bl FUN_020054C8
@@ -55379,17 +55379,17 @@ _020602B8: b _02060332
_020602F0:
ldr r0, [r4, #0x0]
- bl FUN_02244F18
+ bl MOD06_02244F18
mov r0, #0x7
strb r0, [r4, #0xc]
b _02060332
_020602FC:
ldr r0, [r4, #0x0]
- bl FUN_02244F24
+ bl MOD06_02244F24
cmp r0, #0x0
beq _02060332
ldr r0, [r4, #0x0]
- bl FUN_02244F2C
+ bl MOD06_02244F2C
mov r0, #0x1
strb r0, [r4, #0xc]
b _02060332
@@ -55398,9 +55398,9 @@ _02060312: mov r1, #0x0
bl FUN_0206367C
ldr r0, [r4, #0x4]
- bl FUN_02245190
+ bl MOD06_02245190
ldr r0, [r4, #0x0]
- bl FUN_02244DBC
+ bl MOD06_02244DBC
add r0, r4, #0x0
bl FUN_02016A18
add sp, #0x10
@@ -55722,7 +55722,7 @@ FUN_02060588: ; 0x02060588 _0206059C:
bl FUN_0201B9EC
ldr r1, _020605D4 ; =0x000008D4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0x1d
@@ -55796,13 +55796,13 @@ _02060630: add r6, r0, #0x0
ldr r0, _02060684 ; =0x0000FFFF
add r1, r5, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r6, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r6, r0, #0x10
cmp r6, r5
@@ -55903,11 +55903,11 @@ _02060704: ldr r1, [r4, #0x0]
ldr r2, [r4, #0x8]
add r0, r6, #0x0
- bl FUN_0224891C
+ bl MOD06_0224891C
ldr r1, [r4, #0x0]
ldr r2, [r4, #0x8]
add r0, r6, #0x0
- bl FUN_022488FC
+ bl MOD06_022488FC
ldr r0, [r4, #0x4]
add r0, r0, #0x1
str r0, [r4, #0x4]
@@ -55975,7 +55975,7 @@ FUN_02060790: ; 0x02060790 mov r1, #0x0
mov r2, #0x2c
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x0
str r0, [r4, #0x4]
str r5, [r4, #0x0]
@@ -56277,23 +56277,23 @@ _020609EC: ldr r0, [r5, #0x50]
mov r1, #0x1
mov r2, #0x0
- bl FUN_021DA4EC
+ bl MOD05_021DA4EC
ldr r0, [r5, #0x50]
mov r1, #0x2
mov r2, #0x0
- bl FUN_021DA4EC
+ bl MOD05_021DA4EC
ldr r0, _02060B08 ; =0x000006DE
bl FUN_020054C8
b _02060B00
_02060A2C:
ldr r0, [r5, #0x50]
mov r1, #0x1
- bl FUN_021DA58C
+ bl MOD05_021DA58C
cmp r0, #0x0
beq _02060B00
ldr r0, [r5, #0x50]
mov r1, #0x2
- bl FUN_021DA58C
+ bl MOD05_021DA58C
cmp r0, #0x0
beq _02060B00
cmp r6, #0x0
@@ -56339,11 +56339,11 @@ _02060A8A: ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
mov r2, #0x1
- bl FUN_021DA54C
+ bl MOD05_021DA54C
ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
mov r2, #0x2
- bl FUN_021DA54C
+ bl MOD05_021DA54C
_02060AA8:
add r0, r6, #0x0
bl FUN_0204AF3C
@@ -56401,7 +56401,7 @@ FUN_02060B0C: ; 0x02060B0C add r4, r0, #0x0
ldr r1, [r4, #0x30]
add r0, sp, #0x0
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldrb r0, [r4, #0x1]
cmp r0, #0x3
bhi _02060B7C
@@ -56481,7 +56481,7 @@ _02060B86: _02060BA6:
ldr r0, [r4, #0x30]
add r1, sp, #0x0
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
ldr r1, [r4, #0x14]
ldr r0, [r4, #0x7c]
add r1, r1, r0
@@ -56539,9 +56539,9 @@ _02060BF6: beq _02060C6A
ldr r1, [r5, #0x2c]
add r0, r4, #0x0
- bl FUN_021F4BD0
+ bl MOD05_021F4BD0
ldr r0, [r0, #0x0]
- blx FUN_020BC13C
+ bl FUN_020BC13C
ldrh r1, [r0, #0xe]
add r2, sp, #0x20
mov r3, #0x0
@@ -56557,10 +56557,10 @@ _02060BF6: bl ErrorHandling
_02060C38:
ldr r0, [sp, #0x20]
- bl FUN_021E7EC8
+ bl MOD05_021E7EC8
str r0, [sp, #0x1c]
ldr r0, [r5, #0x2c]
- bl FUN_021F4C88
+ bl MOD05_021F4C88
ldr r1, [sp, #0x1c]
add r2, sp, #0x24
str r1, [sp, #0x0]
@@ -56576,7 +56576,7 @@ _02060C38: ldr r0, [r5, #0x4c]
ldr r1, [r5, #0x50]
add r3, r4, #0x0
- bl FUN_021DA464
+ bl MOD05_021DA464
b _02060C6E
_02060C6A:
bl ErrorHandling
@@ -56665,7 +56665,7 @@ FUN_02060CF8: ; 0x02060CF8 push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B6C
+ bl MOD06_02248B6C
add r4, r0, #0x0
cmp r4, #0x0
ble _02060D0E
@@ -56781,13 +56781,13 @@ FUN_02060DCC: ; 0x02060DCC add r5, r0, #0x0
add r0, r6, #0x0
add r4, r1, #0x0
- bl FUN_02248B5C
+ bl MOD06_02248B5C
add r7, r0, #0x0
add r0, r6, #0x0
- bl FUN_02248B54
+ bl MOD06_02248B54
str r0, [sp, #0x8]
add r0, r6, #0x0
- bl FUN_02248B58
+ bl MOD06_02248B58
str r0, [sp, #0x0]
mov r0, #0x1
str r0, [sp, #0x4]
@@ -57077,7 +57077,7 @@ FUN_02061008: ; 0x02061008 mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x24
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
pop {r4, pc}
@@ -57098,7 +57098,7 @@ FUN_02061028: ; 0x02061028 add r1, r5, #0x0
mov r2, #0x24
add r7, r3, #0x0
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
str r6, [r5, #0x0]
add r0, r5, #0x0
add r2, r5, #0x0
@@ -57205,7 +57205,7 @@ FUN_020610F8: ; 0x020610F8 add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldrb r0, [r4, #0xb]
cmp r0, #0x0
@@ -57287,7 +57287,7 @@ FUN_020611A8: ; 0x020611A8 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57321,7 +57321,7 @@ FUN_020611E8: ; 0x020611E8 bl FUN_02024DA0
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r1, r0, #0x0
ldrh r1, [r1, #0x6]
add r0, r4, #0x0
@@ -57364,7 +57364,7 @@ FUN_0206123C: ; 0x0206123C add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57400,7 +57400,7 @@ FUN_02061288: ; 0x02061288 push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r4, #0x8]
cmp r0, #0x0
@@ -57426,7 +57426,7 @@ FUN_020612AC: ; 0x020612AC mov r0, #0x0
add r1, sp, #0x0
mov r2, #0x28
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r6, #0x0
mov r1, #0x1
mov r2, #0x0
@@ -57467,10 +57467,10 @@ FUN_02061304: ; 0x02061304 add r4, r2, #0x0
add r0, r4, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r6, r0, #0x0
add r0, r4, #0x0
- bl FUN_02248B58
+ bl MOD06_02248B58
str r0, [sp, #0x0]
mov r1, #0x1
add r0, r5, #0x0
@@ -57494,10 +57494,10 @@ FUN_0206133C: ; 0x0206133C add r4, r2, #0x0
add r0, r4, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r6, r0, #0x0
add r0, r4, #0x0
- bl FUN_02248B58
+ bl MOD06_02248B58
str r0, [sp, #0x0]
mov r1, #0x1
add r0, r5, #0x0
@@ -57541,7 +57541,7 @@ FUN_0206139C: ; 0x0206139C add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldrh r2, [r4, #0x2]
add r0, r5, #0x0
@@ -57593,7 +57593,7 @@ FUN_02061404: ; 0x02061404 add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldrh r2, [r4, #0x6]
add r0, r5, #0x0
@@ -57622,7 +57622,7 @@ FUN_02061444: ; 0x02061444 push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -57666,7 +57666,7 @@ FUN_02061498: ; 0x02061498 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57692,7 +57692,7 @@ FUN_02061498: ; 0x02061498 bl FUN_02060D90
bl FUN_0201B9EC
ldr r1, _020614F8 ; =0x00003334
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x5
@@ -57714,7 +57714,7 @@ FUN_020614FC: ; 0x020614FC bl FUN_02024DA0
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r1, r0, #0x0
ldrh r1, [r1, #0x0]
add r0, r4, #0x0
@@ -57743,7 +57743,7 @@ FUN_02061534: ; 0x02061534 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57805,7 +57805,7 @@ FUN_020615B0: ; 0x020615B0 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57841,7 +57841,7 @@ FUN_020615F8: ; 0x020615F8 bl FUN_02024DA0
add r4, r0, #0x0
add r0, r5, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r1, r0, #0x0
ldrh r1, [r1, #0x0]
add r0, r4, #0x0
@@ -57881,7 +57881,7 @@ FUN_02061648: ; 0x02061648 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57910,7 +57910,7 @@ FUN_02061688: ; 0x02061688 push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -57963,7 +57963,7 @@ FUN_020616E8: ; 0x020616E8 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -57993,7 +57993,7 @@ FUN_02061728: ; 0x02061728 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58014,7 +58014,7 @@ FUN_02061750: ; 0x02061750 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58051,7 +58051,7 @@ FUN_02061798: ; 0x02061798 strb r2, [r0, #0x6]
bl FUN_0201BA60
mov r1, #0x3
- blx _u32_div_f
+ bl _u32_div_f
add r0, sp, #0x4
strb r1, [r0, #0x5]
add r0, sp, #0x8
@@ -58079,7 +58079,7 @@ FUN_020617D8: ; 0x020617D8 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58100,7 +58100,7 @@ FUN_020617D8: ; 0x020617D8 bl FUN_02060E70
bl FUN_0201B9EC
ldr r1, _02061830 ; =0x00005556
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x3
@@ -58119,7 +58119,7 @@ FUN_02061834: ; 0x02061834 push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -58147,7 +58147,7 @@ FUN_02061868: ; 0x02061868 add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
bl FUN_02023924
ldr r1, [r4, #0x0]
@@ -58261,7 +58261,7 @@ FUN_0206193C: ; 0x0206193C add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58301,7 +58301,7 @@ FUN_02061990: ; 0x02061990 push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -58351,7 +58351,7 @@ FUN_020619F0: ; 0x020619F0 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58371,13 +58371,13 @@ FUN_020619F0: ; 0x020619F0 lsl r0, r0, #0x2
mul r0, r1
mov r1, #0xfe
- blx _u32_div_f
+ bl _u32_div_f
add r0, r0, #0x5
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
mov r1, #0xa
add r4, r0, #0x0
- blx _u32_div_f
+ bl _u32_div_f
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -58389,7 +58389,7 @@ FUN_020619F0: ; 0x020619F0 bl FUN_0200AD38
add r0, r4, #0x0
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
mov r0, #0x0
add r2, r1, #0x0
str r0, [sp, #0x0]
@@ -58407,7 +58407,7 @@ FUN_02061A70: ; 0x02061A70 push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -58444,7 +58444,7 @@ FUN_02061AB0: ; 0x02061AB0 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58502,7 +58502,7 @@ FUN_02061B24: ; 0x02061B24 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58550,7 +58550,7 @@ FUN_02061B80: ; 0x02061B80 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58615,7 +58615,7 @@ FUN_02061C00: ; 0x02061C00 add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
mov r1, #0x0
add r4, r0, #0x0
str r1, [sp, #0x0]
@@ -58698,7 +58698,7 @@ FUN_02061CA8: ; 0x02061CA8 add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldrb r0, [r4, #0x5]
cmp r0, #0x0
@@ -58760,7 +58760,7 @@ FUN_02061D30: ; 0x02061D30 push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -58777,7 +58777,7 @@ FUN_02061D4C: ; 0x02061D4C ldr r0, [r5, #0x4]
add r4, r1, #0x0
ldr r0, [r0, #0x14]
- bl FUN_02252538
+ bl MOD20_02252538
str r0, [sp, #0x0]
add r0, sp, #0x0
strh r4, [r0, #0x4]
@@ -58796,7 +58796,7 @@ FUN_02061D74: ; 0x02061D74 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58852,7 +58852,7 @@ FUN_02061DE4: ; 0x02061DE4 add r6, r2, #0x0
add r0, r6, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldrb r0, [r4, #0x5]
mov r1, #0x0
@@ -58907,7 +58907,7 @@ FUN_02061E60: ; 0x02061E60 push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -58945,7 +58945,7 @@ FUN_02061EAC: ; 0x02061EAC add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -58967,7 +58967,7 @@ FUN_02061EDC: ; 0x02061EDC push {r3-r5, lr}
add r5, r0, #0x0
add r0, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_02024DA0
@@ -58994,7 +58994,7 @@ FUN_02061F0C: ; 0x02061F0C add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -59037,7 +59037,7 @@ FUN_02061F60: ; 0x02061F60 add r7, r2, #0x0
add r0, r7, #0x0
add r5, r1, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r6, r0, #0x0
ldrb r4, [r6, #0x1]
add r0, r5, #0x0
@@ -59120,7 +59120,7 @@ FUN_02061FF8: ; 0x02061FF8 add r6, r2, #0x0
add r5, r1, #0x0
add r0, r6, #0x0
- bl FUN_02248B60
+ bl MOD06_02248B60
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x0
@@ -59220,7 +59220,7 @@ _020620BE: ble _020620D0
bl FUN_0201BA60
add r1, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
add r5, r1, #0x0
b _020620D2
_020620D0:
@@ -59255,7 +59255,7 @@ _02062100: bl FUN_0201B9EC
mov r1, #0xf1
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x11
@@ -59313,7 +59313,7 @@ FUN_02062170: ; 0x02062170 add r7, r1, #0x0
bl FUN_0201B9EC
ldr r1, _02062234 ; =0x00003334
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x5
@@ -59436,7 +59436,7 @@ FUN_02062240: ; 0x02062240 add r1, sp, #0x0
add r1, #0x2
add r2, sp, #0x0
- bl FUN_02245910
+ bl MOD06_02245910
add r0, sp, #0x0
ldrh r0, [r0, #0x2]
bl FUN_02034824
@@ -59499,7 +59499,7 @@ FUN_020622C4: ; 0x020622C4 bl FUN_0201B9EC
mov r1, #0xf1
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0x11
@@ -59513,7 +59513,7 @@ _020622E6: bl FUN_0201B9EC
mov r1, #0xf1
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x11
@@ -59625,13 +59625,13 @@ _020623B0: lsl r1, r4, #0x10
ldr r0, _020623F0 ; =0x0000FFFF
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r5, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
lsl r0, r4, #0x10
@@ -59745,13 +59745,13 @@ _0206249E: add r5, r0, #0x0
ldr r0, _02062504 ; =0x0000FFFF
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r5, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, r4
@@ -59827,7 +59827,7 @@ FUN_0206252C: ; 0x0206252C ble _02062552
bl FUN_0201BA60
add r1, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
add r5, r1, #0x0
b _02062554
_02062552:
@@ -59925,16 +59925,16 @@ FUN_020625EC: ; 0x020625EC mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x50
str r0, [r4, #0x0]
ldr r0, [sp, #0x0]
mov r1, #0x3
- blx _s32_div_f
+ bl _s32_div_f
strb r1, [r4, #0x16]
ldr r0, [sp, #0x0]
mov r1, #0x3
- blx _s32_div_f
+ bl _s32_div_f
strb r0, [r4, #0x17]
ldrb r0, [r4, #0x16]
bl FUN_0202B870
@@ -60047,7 +60047,7 @@ _020626FE: add r0, r4, #0x0
mov r1, #0x0
lsl r2, r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl FUN_020168D0
mov r0, #0xc
@@ -60511,7 +60511,7 @@ FUN_02062A70: ; 0x02062A70 mov r2, #0x3c
mov r1, #0x0
mul r2, r3
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldrb r1, [r4, #0x16]
ldr r2, [r4, #0x0]
add r0, r5, #0x0
@@ -61110,7 +61110,7 @@ FUN_02062F3C: ; 0x02062F3C ldr r3, [r6, #0x0]
add r0, r6, r0
mov r2, #0x2
- bl FUN_021D959C
+ bl MOD05_021D959C
mov r0, #0x3
str r0, [sp, #0x0]
mov r0, #0x1
@@ -61123,7 +61123,7 @@ FUN_02062F3C: ; 0x02062F3C add r0, r6, r0
mov r1, #0x82
add r3, r2, #0x0
- bl FUN_021D967C
+ bl MOD05_021D967C
ldr r0, _02062FF4 ; =0x000034D8
mov r1, #0x82
str r0, [sp, #0x0]
@@ -61132,7 +61132,7 @@ FUN_02062F3C: ; 0x02062F3C add r0, r6, r0
mov r2, #0x2
mov r3, #0x0
- bl FUN_021D96F4
+ bl MOD05_021D96F4
ldr r0, _02062FF4 ; =0x000034D8
mov r1, #0x82
str r0, [sp, #0x0]
@@ -61141,7 +61141,7 @@ FUN_02062F3C: ; 0x02062F3C add r0, r6, r0
mov r2, #0x3
mov r3, #0x0
- bl FUN_021D9708
+ bl MOD05_021D9708
mov r2, #0x1
ldr r0, _02062FF4 ; =0x000034D8
str r2, [sp, #0x0]
@@ -61151,7 +61151,7 @@ FUN_02062F3C: ; 0x02062F3C add r0, r6, r0
mov r1, #0x82
mov r3, #0x0
- bl FUN_021D971C
+ bl MOD05_021D971C
ldr r4, _02062FF8 ; =0x020F7C7C
mov r7, #0x0
add r5, r6, #0x0
@@ -61160,7 +61160,7 @@ _02062FC4: lsl r0, r0, #0x2
add r0, r6, r0
add r1, r4, #0x0
- bl FUN_021D9820
+ bl MOD05_021D9820
mov r1, #0xa6
lsl r1, r1, #0x2
str r0, [r5, r1]
@@ -61201,7 +61201,7 @@ _02063012: mov r0, #0x4d
lsl r0, r0, #0x2
add r0, r7, r0
- bl FUN_021D99F8
+ bl MOD05_021D99F8
pop {r3-r7, pc}
.balign 4
@@ -61269,7 +61269,7 @@ _02063094: ldr r0, _02063164 ; =0x020F7C2C
add r1, #0xa0
mov r2, #0x20
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r1, r5, #0x0
add r0, r5, #0x0
add r1, #0xd4
@@ -62277,7 +62277,7 @@ _020638DA: ldr r0, [r4, #0x0]
ldr r2, [r4, #0x10]
mov r1, #0x1
- bl FUN_0224666C
+ bl MOD06_0224666C
str r0, [r4, #0x14]
ldr r0, [r4, #0x4]
add r0, r0, #0x1
@@ -62285,11 +62285,11 @@ _020638DA: b _02063942
_020638F8:
ldr r0, [r4, #0x14]
- bl FUN_022466A0
+ bl MOD06_022466A0
cmp r0, #0x0
beq _02063942
ldr r0, [r4, #0x14]
- bl FUN_022466AC
+ bl MOD06_022466AC
mov r1, #0xa
mov r2, #0xc
ldrh r0, [r4, #0x8]
@@ -62405,7 +62405,7 @@ _020639B6: ldr r0, [r5, #0x38]
add r1, r7, #0x0
add r2, r6, #0x0
- bl FUN_021E643C
+ bl MOD05_021E643C
cmp r0, #0x0
beq _020639FE
ldrh r1, [r4, #0xc]
@@ -62417,7 +62417,7 @@ _020639FE: bl FUN_020552F8
add r1, r0, #0x0
add r0, r6, #0x0
- bl FUN_021E69BC
+ bl MOD05_021E69BC
cmp r0, #0x0
beq _02063A18
ldrh r1, [r4, #0xc]
@@ -63398,7 +63398,7 @@ FUN_02064174: ; 0x02064174 ldr r1, [r4, #0x0]
add r0, r6, #0x0
mov r2, #0x4
- bl FUN_0224CB30
+ bl MOD06_0224CB30
add r6, r0, #0x0
add r0, r4, #0x0
bl FUN_02016A18
@@ -63490,7 +63490,7 @@ FUN_02064230: ; 0x02064230 ldr r1, [r6, #0x0]
add r0, r4, #0x0
mov r2, #0xb
- bl FUN_0224CA88
+ bl MOD06_0224CA88
ldr r1, [r4, #0x1c]
add r7, r0, #0x0
ldr r1, [r1, #0x0]
@@ -63987,7 +63987,7 @@ _02064622: add r0, r4, #0x0
mov r1, #0x0
add r2, r5, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
@@ -64007,7 +64007,7 @@ FUN_02064640: ; 0x02064640 mov r1, #0x0
mov r2, #0xc8
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r1, _02064680 ; =FUN_0206478C
add r0, r4, #0x0
bl FUN_020646B8
@@ -64166,7 +64166,7 @@ FUN_0206473C: ; 0x0206473C bl FUN_02064738
mov r1, #0x0
add r2, r4, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
pop {r4, pc}
.balign 4
@@ -64297,12 +64297,12 @@ FUN_020647A4: ; 0x020647A4 ldr r0, [r0, #0x0]
ldr r1, [r4, #0x2c]
mov r3, r12
- bl FUN_021E7FBC
+ bl MOD05_021E7FBC
add r0, r4, #0x0
add r0, #0xa0
ldr r0, [r0, #0x0]
ldr r1, _02064864 ; =0x00000102
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
str r0, [sp, #0x14]
b _0206482C
_0206480A:
@@ -64324,11 +64324,11 @@ _0206480A: _0206482C:
ldr r1, [sp, #0x14]
add r0, sp, #0x18
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r0, [sp, #0x14]
add r1, sp, #0x18
str r5, [sp, #0x1c]
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
mov r0, #0x2
str r0, [sp, #0x0]
str r5, [sp, #0x4]
@@ -64339,7 +64339,7 @@ _0206482C: ldr r1, [r6, #0x8]
ldr r2, [r6, #0xc]
mov r0, #0x0
- bl FUN_021F44D8
+ bl MOD05_021F44D8
add sp, #0x30
pop {r3-r7, pc}
nop
@@ -64671,7 +64671,7 @@ _02064AB4: add r0, #0xa0
ldr r0, [r0, #0x0]
ldr r1, _02064B64 ; =0x00000102
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
str r0, [sp, #0xc]
b _02064AEC
_02064ACA:
@@ -64693,7 +64693,7 @@ _02064ACA: _02064AEC:
ldr r1, [sp, #0xc]
add r0, sp, #0x10
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
ldr r0, [r4, #0xc]
cmp r0, #0x0
bne _02064AFE
@@ -64721,7 +64721,7 @@ _02064B1C: bl FUN_02055540
ldr r0, [sp, #0xc]
add r1, sp, #0x10
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _02064B5C
_02064B2E:
add r2, r5, #0x0
@@ -64729,7 +64729,7 @@ _02064B2E: ldr r1, [r4, #0x4]
ldr r2, [r2, #0x0]
mov r0, #0x0
- bl FUN_021F4594
+ bl MOD05_021F4594
ldr r0, [r5, #0x38]
mov r1, #0x1
bl FUN_0205557C
@@ -64795,7 +64795,7 @@ _02064BB4: add r0, #0xa0
ldr r0, [r0, #0x0]
ldr r1, _02064C58 ; =0x00000102
- bl FUN_021E7ED8
+ bl MOD05_021E7ED8
str r0, [sp, #0xc]
b _02064BEC
_02064BCA:
@@ -64817,7 +64817,7 @@ _02064BCA: _02064BEC:
ldr r1, [sp, #0xc]
add r0, sp, #0x10
- bl FUN_021E7EA0
+ bl MOD05_021E7EA0
mov r0, #0x1
ldr r1, [sp, #0x14]
lsl r0, r0, #0xc
@@ -64838,7 +64838,7 @@ _02064C12: bl FUN_02055540
ldr r0, [sp, #0xc]
add r1, sp, #0x10
- bl FUN_021E7EB0
+ bl MOD05_021E7EB0
b _02064C52
_02064C24:
add r2, r5, #0x0
@@ -64846,7 +64846,7 @@ _02064C24: ldr r1, [r4, #0x4]
ldr r2, [r2, #0x0]
mov r0, #0x0
- bl FUN_021F4594
+ bl MOD05_021F4594
ldr r0, [r5, #0x38]
mov r1, #0x1
bl FUN_0205557C
@@ -65347,7 +65347,7 @@ FUN_02065054: ; 0x02065054 ldr r2, _0206506C ; =0x0000066C
mov r1, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
nop
@@ -65640,7 +65640,7 @@ _02065290: ldr r0, [sp, #0x10]
add r1, r4, #0x0
lsl r2, r2, #0x8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r3-r5, pc}
.balign 4
_020652A0: .word 0x000F423F
@@ -65828,7 +65828,7 @@ FUN_020653EC: ; 0x020653EC mov r1, #0x0
lsl r2, r2, #0x2
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
str r6, [r4, #0x4]
bl FUN_020377AC
@@ -66796,7 +66796,7 @@ _02065B9E: ldr r0, _02065CE4 ; =0x020F7E8C
add r1, r5, r1
mov r2, #0x20
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r1, #0x5d
lsl r1, r1, #0x2
add r0, r1, #0x0
@@ -67096,7 +67096,7 @@ _02065E14: ldr r0, _02065ED0 ; =0x020F7E8C
add r1, r5, r1
mov r2, #0x20
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x5d
lsl r0, r0, #0x2
add r1, r0, #0x0
@@ -67807,7 +67807,7 @@ FUN_020663D4: ; 0x020663D4 add r0, r4, r0
mov r1, #0x0
mov r2, #0x10
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x17
mov r1, #0x0
lsl r0, r0, #0x4
@@ -68077,12 +68077,12 @@ _020665E6: lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x5a
- bl FUN_0224C678
+ bl MOD06_0224C678
mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r4, r0]
mov r1, #0x5a
- bl FUN_0224C6E8
+ bl MOD06_0224C6E8
ldrh r0, [r4, #0x12]
add r0, r0, #0x1
strh r0, [r4, #0x12]
@@ -68093,7 +68093,7 @@ _02066614: ldr r0, [r4, r0]
mov r1, #0x5a
ldr r0, [r0, #0x50]
- bl FUN_021DA58C
+ bl MOD05_021DA58C
cmp r0, #0x0
beq _0206662E
mov r0, #0x0
@@ -68114,7 +68114,7 @@ FUN_02066634: ; 0x02066634 add r4, r1, #0x0
ldr r0, [r5, r0]
mov r1, #0x5a
- bl FUN_021DAF98
+ bl MOD05_021DAF98
cmp r4, #0x0
bne _02066652
add r0, r5, #0x0
@@ -68148,7 +68148,7 @@ _02066676: mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r5, r0]
@@ -68387,13 +68387,13 @@ FUN_02066840: ; 0x02066840 add r0, r7, #0x0
mov r1, #0x0
mov r2, #0xe4
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
bl FUN_0202398C
add r1, r7, #0x0
add r1, #0xa8
mov r2, #0x10
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0x0
bl FUN_020239BC
add r1, r7, #0x0
@@ -68460,7 +68460,7 @@ _020668FC: ldr r1, [sp, #0x8]
mov r2, #0x8
add r1, r1, r5
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r4, r4, #0x1
add r5, #0x8
cmp r4, #0x3
@@ -68471,7 +68471,7 @@ _020668FC: add r1, r7, #0x0
add r1, #0xc0
mov r2, #0x8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, [sp, #0x0]
cmp r0, #0x0
bne _02066956
@@ -68517,7 +68517,7 @@ FUN_02066978: ; 0x02066978 mov r0, #0x0
add r1, r4, #0x0
mov r2, #0xec
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
ldrh r2, [r4, #0x6]
add r0, #0x8
@@ -68537,7 +68537,7 @@ FUN_020669A0: ; 0x020669A0 mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x88
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
ldrh r2, [r4, #0x6]
add r0, #0x8
@@ -68747,7 +68747,7 @@ FUN_02066ACC: ; 0x02066ACC mov r0, #0x0
add r1, sp, #0x14
mov r2, #0x18
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r5, #0x0
mov r1, #0xaa
add r2, sp, #0x14
@@ -69083,7 +69083,7 @@ _02066DF4: orr r0, r1
orr r0, r2
mov r1, #0x1c
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r1, #0x10
lsr r5, r0, #0x10
add r0, r4, #0x0
@@ -69137,7 +69137,7 @@ FUN_02066E74: ; 0x02066E74 cmp r5, #0x0
bne _02066EA0
mov r1, #0x19
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x1
mov r0, #0x19
mul r0, r1
@@ -69312,7 +69312,7 @@ _02066FFC: add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r4, r0
add r0, #0xa
_0206701E:
@@ -69334,7 +69334,7 @@ _0206701E: add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x4c]
add r0, r5, #0x0
@@ -69362,7 +69362,7 @@ _0206701E: add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x48]
add r0, r5, #0x0
@@ -69390,7 +69390,7 @@ _0206701E: add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x44]
add r0, r5, #0x0
@@ -69418,7 +69418,7 @@ _0206701E: add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x40]
add r0, r5, #0x0
@@ -69446,7 +69446,7 @@ _0206701E: add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x3c]
add r0, r5, #0x0
@@ -70060,7 +70060,7 @@ _020675AA: sub r2, #0x19
add r1, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
ldr r2, [r5, #0x1c]
add r3, r4, #0x0
and r3, r1
@@ -70156,7 +70156,7 @@ _02067654: sub r2, #0x4e
add r1, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
ldr r2, [r6, #0x14]
add r3, r4, #0x0
and r3, r1
@@ -70255,7 +70255,7 @@ _02067706: sub r2, #0x7a
add r1, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
ldr r3, [r7, #0x18]
ldr r2, [r7, #0x1c]
and r3, r0
@@ -71020,7 +71020,7 @@ _02067C98: sub r2, #0x19
add r0, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
cmp r4, #0x0
beq _02067CB6
ldr r1, [r7, #0x1c]
@@ -71158,7 +71158,7 @@ _02067D94: sub r2, #0x4e
add r0, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
cmp r4, #0x0
beq _02067DB2
ldr r1, [r5, #0x14]
@@ -71288,7 +71288,7 @@ _02067E8A: sub r2, #0x7a
add r0, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
cmp r4, #0x0
beq _02067EB2
add r4, r6, #0x0
@@ -72436,7 +72436,7 @@ FUN_02068698: ; 0x02068698 mov r0, #0x64
mul r0, r1
sub r1, r6, r4
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3-r7, pc}
@@ -72652,7 +72652,7 @@ FUN_0206885C: ; 0x0206885C FUN_02068884: ; 0x02068884
push {r3, lr}
mov r1, #0x19
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r1, #0x18
lsr r0, r0, #0x18
pop {r3, pc}
@@ -72686,7 +72686,7 @@ _020688A2: lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r1, r0, #0x10
b _020688E0
@@ -72696,7 +72696,7 @@ _020688CE: lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r1, r0, #0x10
_020688E0:
@@ -72798,7 +72798,7 @@ _02068994: mov r0, #0x96
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
asr r4, r0, #0x18
_020689AA:
@@ -73726,7 +73726,7 @@ FUN_02069010: ; 0x02069010 add r0, sp, #0xc
add r1, r4, #0x0
mov r2, #0x14
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add sp, #0x20
pop {r3-r5, pc}
.balign 4
@@ -74006,7 +74006,7 @@ _02069216: ldr r0, [sp, #0x1c]
mov r1, #0xa
ldr r4, [sp, #0x18]
- blx _s32_div_f
+ bl _s32_div_f
str r1, [sp, #0x8]
_02069246:
ldrh r0, [r4, #0x0]
@@ -74438,20 +74438,20 @@ FUN_02069558: ; 0x02069558 bl ErrorHandling
_0206956E:
add r0, sp, #0x4
- blx FS_InitFile
+ bl FS_InitFile
ldr r1, _020695A4 ; =0x02105FC8
add r0, sp, #0x4
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, sp, #0x4
lsl r1, r4, #0x1
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x4
add r1, sp, #0x0
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x4
- blx FS_CloseFile
+ bl FS_CloseFile
add r0, sp, #0x0
ldrh r0, [r0, #0x0]
add sp, #0x4c
@@ -75115,7 +75115,7 @@ _02069A8E: mov r0, #0x0
add r1, sp, #0x4
mov r2, #0x18
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
mov r1, #0xaa
add r2, sp, #0x4
@@ -75347,7 +75347,7 @@ FUN_02069C4C: ; 0x02069C4C _02069C70:
bl FUN_0201B9EC
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r0, r5, #0x0
add r7, r1, #0x0
bl FUN_0206B9B0
@@ -75529,7 +75529,7 @@ FUN_02069DC8: ; 0x02069DC8 add r7, r0, #0x0
bl FUN_0201B9EC
mov r1, #0x3
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0x0
bne _02069E70
mov r4, #0x0
@@ -75917,7 +75917,7 @@ FUN_0206A094: ; 0x0206A094 bne _0206A12E
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r4, r1, #0x0
add r0, r5, #0x0
mov r1, #0x5
@@ -77385,7 +77385,7 @@ FUN_0206AA84: ; 0x0206AA84 add r1, sp, #0x0
add r1, #0x1
mov r2, #0x18
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
mov r1, #0xa1
add r2, sp, #0x0
@@ -77479,7 +77479,7 @@ _0206AB3A: mul r0, r4
mul r0, r5
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r4, r0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
@@ -77970,7 +77970,7 @@ _0206AECE: mov r0, #0x1f
mul r0, r1
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
add r3, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]
@@ -78054,7 +78054,7 @@ _0206AF76: mov r0, #0x1f
mul r0, r1
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
add r3, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]
@@ -78147,7 +78147,7 @@ _0206B030: mov r0, #0x1f
mul r0, r1
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
add r3, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]
@@ -78231,7 +78231,7 @@ _0206B0DA: mov r0, #0x1f
mul r0, r1
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
add r3, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]
@@ -79377,7 +79377,7 @@ _0206B8DA: add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x4
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r4, #0x0
str r4, [r5, #0x4]
str r6, [r5, #0x0]
@@ -80144,7 +80144,7 @@ FUN_0206BE48: ; 0x0206BE48 add r0, sp, #0x30
mov r1, #0x0
mov r2, #0xc
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [sp, #0x20]
mov r7, #0x0
cmp r0, #0x0
@@ -80325,10 +80325,10 @@ FUN_0206BF90: ; 0x0206BF90 strb r0, [r6, #0x4]
add r0, r5, #0x0
add r1, r4, #0x4
- bl FUN_02231344
+ bl MOD11_02231344
add r0, r5, #0x0
add r1, r6, #0x4
- bl FUN_02231350
+ bl MOD11_02231350
ldr r0, _0206BFE8 ; =FUN_0206C550
add r1, r4, #0x0
mov r2, #0x0
@@ -80511,13 +80511,13 @@ FUN_0206C0C8: ; 0x0206C0C8 bl FUN_02016998
add r6, r0, #0x0
ldr r0, [sp, #0x0]
- bl FUN_022300D4
+ bl MOD11_022300D4
add r5, r0, #0x0
ldr r0, [sp, #0x0]
- bl FUN_022300F4
+ bl MOD11_022300F4
add r4, r0, #0x0
ldr r0, [sp, #0x0]
- bl FUN_02230100
+ bl MOD11_02230100
mov r12, r0
add r0, sp, #0x10
ldrh r3, [r4, #0x0]
@@ -80577,13 +80577,13 @@ FUN_0206C154: ; 0x0206C154 add r0, r3, #0x0
add r5, r1, #0x0
add r6, r2, #0x0
- bl FUN_022300DC
+ bl MOD11_022300DC
add r7, r0, #0x0
ldr r0, [sp, #0x0]
- bl FUN_02230118
+ bl MOD11_02230118
add r4, r0, #0x0
ldr r0, [sp, #0x0]
- bl FUN_02230124
+ bl MOD11_02230124
ldrh r1, [r4, #0x0]
add r2, r1, r5
add r3, r2, #0x1
@@ -81135,16 +81135,16 @@ FUN_0206C550: ; 0x0206C550 add r5, r1, #0x0
str r0, [sp, #0x0]
ldr r0, [r5, #0x0]
- bl FUN_022300D4
+ bl MOD11_022300D4
add r6, r0, #0x0
ldr r0, [r5, #0x0]
- bl FUN_022300E8
+ bl MOD11_022300E8
add r4, r0, #0x0
ldr r0, [r5, #0x0]
- bl FUN_022300F4
+ bl MOD11_022300F4
str r0, [sp, #0x4]
ldr r0, [r5, #0x0]
- bl FUN_02230100
+ bl MOD11_02230100
add r7, r0, #0x0
ldrb r0, [r5, #0x4]
cmp r0, #0x0
@@ -81203,16 +81203,16 @@ FUN_0206C5DC: ; 0x0206C5DC add r5, r1, #0x0
str r0, [sp, #0x0]
ldr r0, [r5, #0x0]
- bl FUN_022300DC
+ bl MOD11_022300DC
add r6, r0, #0x0
ldr r0, [r5, #0x0]
- bl FUN_0223010C
+ bl MOD11_0223010C
add r4, r0, #0x0
ldr r0, [r5, #0x0]
- bl FUN_02230118
+ bl MOD11_02230118
add r7, r0, #0x0
ldr r0, [r5, #0x0]
- bl FUN_02230124
+ bl MOD11_02230124
ldrb r1, [r5, #0x4]
cmp r1, #0x0
beq _0206C60A
@@ -81233,7 +81233,7 @@ _0206C61E: ldrh r1, [r4, #0x0]
ldr r0, [r5, #0x0]
add r1, r6, r1
- bl FUN_022567E0
+ bl MOD11_022567E0
ldrh r0, [r4, #0x0]
add r1, r0, #0x2
ldrb r2, [r6, r1]
@@ -81259,13 +81259,13 @@ FUN_0206C64C: ; 0x0206C64C add r4, r3, #0x0
add r0, r4, #0x0
mov r1, #0xff
- bl FUN_0223135C
+ bl MOD11_0223135C
add r0, r4, #0x0
mov r1, #0xff
- bl FUN_02231368
+ bl MOD11_02231368
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_02231374
+ bl MOD11_02231374
pop {r4, pc}
.balign 4
@@ -81362,21 +81362,21 @@ FUN_0206C700: ; 0x0206C700 mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x80
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
bl FUN_020222F0
str r0, [sp, #0x1c]
bl FUN_020222E8
add r1, r0, #0x0
ldr r2, [sp, #0x1c]
mov r0, #0x0
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
bl FUN_02022300
str r0, [sp, #0x20]
bl FUN_020222F8
add r1, r0, #0x0
ldr r2, [sp, #0x20]
mov r0, #0x0
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
ldr r0, [sp, #0x14]
str r6, [r4, #0x24]
mov r1, #0x5
@@ -81497,7 +81497,7 @@ FUN_0206C700: ; 0x0206C700 ldr r1, [r4, #0x3c]
mov r0, #0x0
mov r2, #0x30
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r1, [sp, #0x38]
ldr r0, [r4, #0x3c]
str r1, [r0, #0x2c]
@@ -83490,7 +83490,7 @@ _0206D8EA: mov r0, #0x0
add r1, sp, #0x8
mov r2, #0x18
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r5, #0x0
mov r1, #0xaa
add r2, sp, #0x8
@@ -83559,25 +83559,25 @@ _0206D9C6: mov r0, #0x0
lsl r1, r1, #0x18
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x62
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x19
mov r2, #0x1
mov r0, #0x0
lsl r1, r1, #0x16
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x66
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r6, _0206DC2C ; =0x020F8328
add r3, sp, #0x2c
add r2, r3, #0x0
@@ -84084,14 +84084,14 @@ FUN_0206DE4C: ; 0x0206DE4C mov r1, #0x0
mov r2, #0xe
mov r3, #0xb
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
mov r0, #0x8
str r0, [sp, #0x0]
ldr r0, _0206DE74 ; =0x04001050
mov r1, #0x0
mov r2, #0xe
mov r3, #0x7
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_0206DE70: .word 0x04000050
@@ -84155,13 +84155,13 @@ FUN_0206DE94: ; 0x0206DE94 add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- blx G3X_SetFog
+ bl G3X_SetFog
mov r0, #0x0
ldr r2, _0206DF0C ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
- blx G3X_SetClearColor
+ bl G3X_SetClearColor
ldr r1, _0206DF10 ; =0xBFFF0000
ldr r0, _0206DF14 ; =0x04000580
str r1, [r0, #0x0]
@@ -84214,7 +84214,7 @@ FUN_0206DF58: ; 0x0206DF58 cmp r0, #0x0
ble _0206DF6E
bl FUN_020222AC
- blx FUN_020B02C8
+ bl FUN_020B02C8
_0206DF6E:
bl FUN_02013388
mov r0, #0x1
@@ -84720,7 +84720,7 @@ FUN_0206E2F0: ; 0x0206E2F0 mov r1, #0x0
mov r2, #0x78
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -86830,7 +86830,7 @@ FUN_0206F164: ; 0x0206F164 mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x24
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
add r0, r4, #0x0
pop {r4, pc}
@@ -87124,9 +87124,9 @@ _0206F34A: bl FUN_0201681C
bl FUN_02088878
mov r0, #0x36
- bl FUN_02211E60
+ bl MOD07_02211E60
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
b _0206F380
_0206F366:
ldr r0, [r4, #0x0]
@@ -87157,14 +87157,14 @@ FUN_0206F38C: ; 0x0206F38C mov r1, #0x0
mov r2, #0x10
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0xb
mov r1, #0xc
bl FUN_020169D8
mov r1, #0x0
mov r2, #0xc
str r0, [r4, #0x0]
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -88362,7 +88362,7 @@ FUN_0206FD24: ; 0x0206FD24 bl LoadFromNarc_2
add r1, sp, #0x10
add r4, r0, #0x0
- blx FUN_020B0138
+ bl FUN_020B0138
ldr r2, [sp, #0x10]
mov r0, #0x3
ldr r1, [r2, #0xc]
@@ -88378,7 +88378,7 @@ FUN_0206FD24: ; 0x0206FD24 add r0, r5, r0
add r1, #0x60
lsl r2, r2, #0x8
- blx memcpy
+ bl memcpy
mov r0, #0xc
add r1, r4, #0x0
bl FUN_02016A8C
@@ -88490,7 +88490,7 @@ FUN_0206FE74: ; 0x0206FE74 ldr r2, _0206FF50 ; =0x00000B38
mov r1, #0x0
add r6, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
bl FUN_0200628C
ldr r1, _0206FF54 ; =0x000005A4
@@ -93292,7 +93292,7 @@ FUN_020724D4: ; 0x020724D4 bl LoadFromNarc_2
add r1, sp, #0xc
str r0, [sp, #0x8]
- blx FUN_020B0180
+ bl FUN_020B0180
ldr r0, [sp, #0xc]
mov r4, #0x0
str r0, [sp, #0x4]
@@ -93303,14 +93303,14 @@ _020724FE: ldr r1, [sp, #0x0]
add r0, r5, #0x0
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r1, r4, #0x6
lsl r2, r1, #0x6
ldr r1, [sp, #0x4]
add r0, r6, #0x0
add r1, r1, r2
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r1, r4, #0x0
add r1, #0xc
lsl r2, r1, #0x6
@@ -93318,7 +93318,7 @@ _020724FE: add r0, r7, #0x0
add r1, r1, r2
mov r2, #0x20
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x0]
add r4, r4, #0x1
add r0, #0x40
@@ -97348,13 +97348,13 @@ _02074638: ldr r1, [sp, #0x14]
add r0, r0, r5
add r1, r1, r7
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x10]
add r0, r0, r5
add r1, r1, r7
mov r2, #0x20
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x4]
mov r2, #0x20
add r0, r0, r4
@@ -97366,13 +97366,13 @@ _02074638: ldr r1, [sp, #0x14]
add r0, r0, r5
add r1, r1, r7
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x24]
ldr r1, [sp, #0x10]
add r0, r0, r5
add r1, r1, r7
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -99044,7 +99044,7 @@ FUN_020753B4: ; 0x020753B4 ldr r0, _020754AC ; =0x00000708
ldrh r0, [r1, r0]
mov r1, #0x5
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, _020754B0 ; =0x00000B28
strh r0, [r4, r1]
sub r0, r1, #0x3
@@ -102727,7 +102727,7 @@ _020772FE: mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x12
bl FUN_02016B94
mov r1, #0x16
@@ -102890,7 +102890,7 @@ FUN_020774B8: ; 0x020774B8 ldr r1, _020774E8 ; =0x000057E0
add r6, r3, #0x0
lsl r2, r2, #0x8
- blx GX_LoadOBJ
+ bl GX_LoadOBJ
ldr r4, [r4, #0xc]
add r0, r5, #0x0
add r1, r6, #0x0
@@ -102900,7 +102900,7 @@ FUN_020774B8: ; 0x020774B8 add r0, r4, r0
mov r1, #0xc0
mov r2, #0x20
- blx GX_LoadOBJPltt
+ bl GX_LoadOBJPltt
pop {r4-r6, pc}
nop
_020774E8: .word 0x000057E0
@@ -103279,7 +103279,7 @@ FUN_020777D4: ; 0x020777D4 bne _020777FE
bl FUN_0201B9EC
mov r1, #0x12
- blx _s32_div_f
+ bl _s32_div_f
mov r0, #0x17
lsl r0, r0, #0x4
ldr r0, [r5, r0]
@@ -103291,7 +103291,7 @@ _020777FE: bne _0207781A
bl FUN_0201B9EC
mov r1, #0x12
- blx _s32_div_f
+ bl _s32_div_f
mov r0, #0x17
lsl r0, r0, #0x4
ldr r0, [r5, r0]
@@ -103949,7 +103949,7 @@ _02077D88: mov r0, #0x1
add r1, #0xd8
mov r2, #0x40
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
ldr r0, [r4, #0x0]
cmp r0, #0x1
bne _02077DCE
@@ -104394,7 +104394,7 @@ FUN_02078140: ; 0x02078140 push {r4-r7, lr}
sub sp, #0x14
add r5, r0, #0x0
- blx FUN_020B0FC0
+ bl FUN_020B0FC0
mov r0, #0x0
str r0, [sp, #0x0]
mov r1, #0x80
@@ -104516,7 +104516,7 @@ _0207818C: mov r1, #0x2
ldr r0, [r5, r0]
lsl r1, r1, #0x8
- blx DC_FlushRange
+ bl DC_FlushRange
bl FUN_0206B888
add r1, r0, #0x0
mov r0, #0x13
@@ -104529,7 +104529,7 @@ _0207818C: add r0, r1, #0x4
ldr r0, [r5, r0]
mov r1, #0x80
- blx DC_FlushRange
+ bl DC_FlushRange
_02078272:
mov r3, #0x1
str r3, [sp, #0x0]
@@ -106027,7 +106027,7 @@ _02078E52: add r0, sp, #0x0
mov r1, #0x3a
mov r2, #0x2
- blx GX_LoadOBJPltt
+ bl GX_LoadOBJPltt
pop {r3, pc}
thumb_func_start FUN_02078E7C
@@ -106197,7 +106197,7 @@ FUN_02078FA0: ; 0x02078FA0 bl FUN_02078F7C
mov r1, #0x2
lsl r1, r1, #0xa
- blx DC_FlushRange
+ bl DC_FlushRange
add r7, r6, #0x0
mov r4, #0x0
add r7, #0x30
@@ -106213,14 +106213,14 @@ _02078FD0: mov r1, #0x1
add r0, r5, #0x0
lsl r1, r1, #0x8
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r1, _02079070 ; =0x020F9D28
mov r2, #0x1
ldrb r1, [r1, r4]
add r0, r5, #0x0
lsl r2, r2, #0x8
lsl r1, r1, #0x5
- blx GXS_LoadOBJ
+ bl GXS_LoadOBJ
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -106253,14 +106253,14 @@ _02079012: bl FUN_02078F7C
mov r1, #0x80
add r7, r0, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r1, _02079078 ; =0x020F9D40
lsl r2, r5, #0x2
ldr r1, [r1, r2]
add r0, r7, #0x0
lsl r1, r1, #0x5
mov r2, #0x80
- blx GXS_LoadOBJ
+ bl GXS_LoadOBJ
add r0, r5, #0x1
lsl r0, r0, #0x10
lsr r5, r0, #0x10
@@ -106854,7 +106854,7 @@ _02079470: mov r1, #0x0
mov r2, #0x7
str r3, [sp, #0x0]
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
mov r0, #0xd3
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -107543,7 +107543,7 @@ FUN_02079A0C: ; 0x02079A0C push {r4, lr}
add r4, r0, #0x0
mul r0, r2
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bne _02079A22
@@ -107566,7 +107566,7 @@ FUN_02079A24: ; 0x02079A24 pop {r4, pc}
_02079A36:
mov r1, #0x5
- blx _u32_div_f
+ bl _u32_div_f
cmp r4, r0
bls _02079A44
mov r0, #0x2
@@ -107767,7 +107767,7 @@ FUN_02079B60: ; 0x02079B60 _02079B9A:
add r0, r7, #0x0
add r1, sp, #0x10
- blx FUN_020B0088
+ bl FUN_020B0088
cmp r4, #0x0
bne _02079BAE
ldr r0, [sp, #0x10]
@@ -107789,7 +107789,7 @@ _02079BAE: _02079BC6:
add r0, r7, #0x0
add r1, sp, #0xc
- blx FUN_020B0180
+ bl FUN_020B0180
cmp r4, #0x0
bne _02079BDA
ldr r0, [sp, #0xc]
@@ -107825,7 +107825,7 @@ _02079BF8: _02079C10:
add r0, r7, #0x0
add r1, sp, #0x8
- blx FUN_020B0138
+ bl FUN_020B0138
cmp r4, #0x0
bne _02079C24
ldr r0, [sp, #0x8]
@@ -107866,7 +107866,7 @@ FUN_02079C40: ; 0x02079C40 bl FUN_02006774
add r0, r4, #0x0
add r1, r7, #0x0
- blx FUN_020B0180
+ bl FUN_020B0180
add r0, r4, #0x0
pop {r3-r7, pc}
@@ -107924,7 +107924,7 @@ FUN_02079C7C: ; 0x02079C7C ldr r2, _02079DAC ; =0x0000069C
mov r1, #0x0
add r5, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
bl FUN_0200628C
mov r1, #0x93
@@ -108459,7 +108459,7 @@ FUN_0207A188: ; 0x0207A188 mov r1, #0x1
mov r2, #0x1e
mov r3, #0x17
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_0207A19C: .word 0x04000050
@@ -110574,7 +110574,7 @@ _0207B256: bl LoadFromNarc_2
add r1, sp, #0xc
add r4, r0, #0x0
- blx FUN_020B0180
+ bl FUN_020B0180
mov r3, #0x0
str r3, [sp, #0x0]
mov r0, #0x20
@@ -111980,7 +111980,7 @@ FUN_0207BD84: ; 0x0207BD84 bl FUN_0206AB18
bl FUN_02083114
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
asr r6, r0, #0x18
mov r4, #0x0
@@ -113920,7 +113920,7 @@ _0207CD3E: mov r1, #0xa
ldrb r0, [r4, r0]
add r0, r0, #0x1
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, _0207CE44 ; =0x00000693
strb r1, [r4, r0]
b _0207CDE8
@@ -114375,7 +114375,7 @@ FUN_0207D0C8: ; 0x0207D0C8 lsl r0, r1, #0x10
mov r1, #0x4b
lsl r1, r1, #0x2
- blx _u32_div_f
+ bl _u32_div_f
lsr r0, r0, #0x10
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -114390,7 +114390,7 @@ _0207D0EE: lsl r0, r1, #0x10
mov r1, #0x4b
lsl r1, r1, #0x2
- blx _u32_div_f
+ bl _u32_div_f
lsr r0, r0, #0x10
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -118028,9 +118028,9 @@ _0207EF68: .word 0x0001020F FUN_0207EF6C: ; 0x0207EF6C
push {r3-r4, lr}
sub sp, #0x4
- blx FUN_020BB7F4
- blx G3X_Init
- blx G3X_InitMtxStack
+ bl FUN_020BB7F4
+ bl G3X_Init
+ bl G3X_InitMtxStack
ldr r0, _0207EFEC ; =0x04000060
ldr r1, _0207EFF0 ; =0xFFFFCFFD
ldrh r2, [r0, #0x0]
@@ -118060,13 +118060,13 @@ FUN_0207EF6C: ; 0x0207EF6C add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- blx G3X_SetFog
+ bl G3X_SetFog
mov r0, #0x0
ldr r2, _0207EFF8 ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
- blx G3X_SetClearColor
+ bl G3X_SetClearColor
ldr r1, _0207EFFC ; =0x04000540
mov r0, #0x0
str r0, [r1, #0x0]
@@ -118112,16 +118112,16 @@ FUN_0207F008: ; 0x0207F008 mov r0, #0x2
str r0, [r2, #0x0]
str r3, [r1, #0x0]
- blx FUN_020B849C
+ bl FUN_020B849C
mov r0, #0xb7
lsl r0, r0, #0x2
add r0, r4, r0
bl FUN_0207F108
- blx FUN_020B849C
+ bl FUN_020B849C
add r0, r4, #0x0
bl FUN_0207F1A4
_0207F046:
- blx FUN_020B02C8
+ bl FUN_020B02C8
mov r0, #0xae
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -118682,43 +118682,43 @@ FUN_0207F48C: ; 0x0207F48C add r6, r2, #0x0
sub r7, r1, r0
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
mov r1, #0x0
- blx _fgr
+ bl _fgr
bls _0207F4E0
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
- blx _ffix
+ bl _fadd
+ bl _ffix
b _0207F506
_0207F4E0:
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
- blx _ffix
+ bl _fsub
+ bl _ffix
_0207F506:
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -118728,43 +118728,43 @@ _0207F506: ldrsh r0, [r5, r0]
sub r7, r1, r0
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
mov r1, #0x0
- blx _fgr
+ bl _fgr
bls _0207F558
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
- blx _ffix
+ bl _fadd
+ bl _ffix
b _0207F57E
_0207F558:
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
- blx _ffix
+ bl _fsub
+ bl _ffix
_0207F57E:
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -118774,43 +118774,43 @@ _0207F57E: ldrsh r0, [r5, r0]
sub r4, r1, r0
add r0, r4, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
mov r1, #0x0
- blx _fgr
+ bl _fgr
bls _0207F5D0
add r0, r4, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
- blx _ffix
+ bl _fadd
+ bl _ffix
b _0207F5F6
_0207F5D0:
add r0, r4, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
- blx _ffix
+ bl _fsub
+ bl _ffix
_0207F5F6:
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -120608,7 +120608,7 @@ FUN_0208048C: ; 0x0208048C add r2, r1, #0x0
bl FUN_020671BC
mov r1, #0x6
- blx _u32_div_f
+ bl _u32_div_f
cmp r1, #0x5
bhi _02080510
add r0, r1, r1
@@ -120819,7 +120819,7 @@ _0208064C: add r0, r7, #0x0
_02080654:
mov r1, #0x5
- blx _s32_div_f
+ bl _s32_div_f
mov r2, #0xa
add r6, r5, #0x0
mul r6, r2
@@ -121550,7 +121550,7 @@ FUN_02080C38: ; 0x02080C38 mov r1, #0x0
mov r2, #0x8
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, _02080C5C ; =FUN_02080C60
add r0, r5, #0x0
add r2, r4, #0x0
@@ -121774,7 +121774,7 @@ FUN_02080E0C: ; 0x02080E0C mov r1, #0x0
mov r2, #0x8
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _02080E50 ; =0x00000121
str r6, [r4, #0x0]
ldrb r0, [r6, r0]
@@ -122275,7 +122275,7 @@ FUN_020811D8: ; 0x020811D8 ldr r2, _02081204 ; =0x000019C4
mov r1, #0x0
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _02081208 ; =0x00000123
mov r1, #0x0
strb r1, [r4, r0]
@@ -122790,7 +122790,7 @@ FUN_020815D0: ; 0x020815D0 mov r1, #0x0
mov r2, #0x28
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _02081658 ; =0x00000123
ldrb r1, [r5, r0]
lsl r1, r1, #0x2
@@ -123406,7 +123406,7 @@ _02081A8A: ldr r1, _02081D30 ; =0x00000585
ldr r0, [r4, r0]
add r1, r4, r1
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0xc
bl FUN_02031588
ldr r0, _02081D2C ; =0x00000584
@@ -124765,7 +124765,7 @@ _02082456: mov r1, #0x0
mov r2, #0x10
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r6, #0x0
bl FUN_020832E4
strb r0, [r4, #0xc]
@@ -125393,7 +125393,7 @@ _0208292A: mov r1, #0x0
bl LoadFromNARC_7
mov r1, #0x30
- blx _u32_div_f
+ bl _u32_div_f
str r0, [sp, #0x24]
ldr r1, [sp, #0x24]
add r0, r5, #0x0
@@ -125553,7 +125553,7 @@ _02082A5A: ldr r0, [sp, #0x4]
bl FUN_02082878
ldr r1, [sp, #0x10]
- blx _s32_div_f
+ bl _s32_div_f
mov r3, #0x0
cmp r6, #0x0
ble _02082AA2
@@ -125597,7 +125597,7 @@ _02082AB0: ldr r0, [sp, #0x4]
bl FUN_02082878
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r2, r0, #0x10
ldrb r3, [r5, r2]
@@ -125658,7 +125658,7 @@ _02082B16: ldr r0, [sp, #0x4]
bl FUN_02082878
ldr r1, [sp, #0x8]
- blx _s32_div_f
+ bl _s32_div_f
add r0, r4, r1
lsl r0, r0, #0x10
lsr r2, r0, #0x10
@@ -126341,7 +126341,7 @@ _02083058: ldr r0, [sp, #0x4]
bl FUN_02082878
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r1, r0, #0x10
ldr r0, [sp, #0x10]
@@ -126929,7 +126929,7 @@ FUN_02083454: ; 0x02083454 _02083464:
bl FUN_0201B9EC
mov r1, #0xc
- blx _s32_div_f
+ bl _s32_div_f
add sp, #0xc
add r0, r1, #0x0
pop {r4-r5, pc}
@@ -126937,7 +126937,7 @@ _02083474: add r0, sp, #0x0
add r1, r4, #0x0
mov r2, #0xc
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r1, #0x2
add r0, sp, #0x0
strb r1, [r0, #0x0]
@@ -126974,7 +126974,7 @@ _020834A6: _020834BE:
bl FUN_0201B9EC
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r0, sp, #0x0
ldrb r0, [r0, r1]
add sp, #0xc
@@ -127090,7 +127090,7 @@ _02083578: add r1, r2, r1
ldr r0, [sp, #0x0]
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x1
strb r0, [r7, r5]
pop {r3-r7, pc}
@@ -127105,11 +127105,11 @@ FUN_020835A0: ; 0x020835A0 mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r3, r0]
- ldr r3, _020835AC ; =0x0223D1CD
+ ldr r3, _020835AC ; =MOD12_0223D1CC
add r1, r2, #0x0
bx r3
.balign 4
-_020835AC: .word 0x0223D1CD
+_020835AC: .word MOD12_0223D1CC
thumb_func_start FUN_020835B0
FUN_020835B0: ; 0x020835B0
@@ -127125,7 +127125,7 @@ FUN_020835B0: ; 0x020835B0 lsl r1, r6, #0x8
add r1, r2, r1
add r2, r5, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r2, _02083628 ; =0x00000584
ldrb r0, [r4, r2]
add r0, r0, #0x1
@@ -127247,7 +127247,7 @@ FUN_02083694: ; 0x02083694 add r0, r5, #0x0
lsl r1, r1, #0x2
ldr r1, [r4, r1]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _020836B8 ; =0x00000584
ldrb r1, [r4, r0]
add r1, r1, #0x1
@@ -127270,7 +127270,7 @@ FUN_020836BC: ; 0x020836BC add r0, r7, #0x0
add r1, r5, #0x0
add r2, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x1b
add r1, r5, #0x0
add r2, r4, #0x1
@@ -127304,7 +127304,7 @@ _02083710: ldr r1, [r4, #0x0]
add r0, r0, r5
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r7, r7, #0x1
add r4, r4, #0x4
add r5, r5, r6
@@ -127341,7 +127341,7 @@ _02083758: ldr r0, [r5, #0x0]
add r1, r1, r4
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r7, r7, #0x1
add r4, r4, r6
add r5, r5, #0x4
@@ -127376,7 +127376,7 @@ FUN_0208378C: ; 0x0208378C add r5, #0x10
mul r3, r2
add r1, r5, r3
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _020837B0 ; =0x00000584
ldrb r1, [r4, r0]
add r1, r1, #0x1
@@ -127397,7 +127397,7 @@ FUN_020837B4: ; 0x020837B4 add r0, r6, #0x0
add r1, r4, #0x0
mov r2, #0x30
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0x0
add r0, #0x30
strb r5, [r0, #0x0]
@@ -127432,7 +127432,7 @@ _02083802: add r0, r6, r0
add r1, r5, #0x0
add r2, r7, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r4, r4, #0x1
add r5, #0x8
cmp r4, #0x3
@@ -127467,7 +127467,7 @@ _02083848: add r0, r5, #0x0
add r1, r6, r1
add r2, r7, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r4, r4, #0x1
add r5, #0x8
cmp r4, #0x3
@@ -127532,7 +127532,7 @@ FUN_020838B4: ; 0x020838B4 add r0, sp, #0x0
add r1, r4, #0x4
mov r2, #0x10
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
strb r5, [r4, #0x0]
mov r0, #0x10
strb r0, [r4, #0x1]
@@ -127569,7 +127569,7 @@ FUN_02083904: ; 0x02083904 add r1, r4, r1
add r1, #0xf8
ldr r1, [r1, #0x0]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _0208392C ; =0x00000584
ldrb r1, [r4, r0]
add r1, r1, #0x1
@@ -127592,7 +127592,7 @@ FUN_02083930: ; 0x02083930 add r0, r7, #0x0
add r1, r5, #0x0
add r2, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x20
add r1, r5, #0x0
add r2, r4, #0x1
@@ -127635,7 +127635,7 @@ _02083992: ldr r1, [r1, #0x0]
add r0, r0, r5
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r7, r7, #0x1
add r4, r4, #0x4
add r5, r5, r6
@@ -127678,7 +127678,7 @@ _020839E8: ldr r0, [r5, #0x0]
add r1, r1, r4
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r7, r7, #0x1
add r4, r4, r6
add r5, r5, #0x4
@@ -127708,7 +127708,7 @@ FUN_02083A1C: ; 0x02083A1C add r0, r2, #0x0
add r1, r3, r1
add r2, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r4, pc}
nop
_02083A30: .word 0x000019A0
@@ -127796,7 +127796,7 @@ FUN_02083AA8: ; 0x02083AA8 mov r1, #0x57
lsl r1, r1, #0x2
ldr r1, [r3, r1]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _02083AD0 ; =0x00000584
ldrb r1, [r4, r0]
add r1, r1, #0x1
@@ -127820,7 +127820,7 @@ FUN_02083AD4: ; 0x02083AD4 add r0, r6, #0x0
add r1, r4, #0x0
add r2, r5, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_02083AF4:
mov r0, #0x24
add r1, r4, #0x0
@@ -127879,7 +127879,7 @@ FUN_02083B48: ; 0x02083B48 add r0, r6, #0x0
add r1, r4, #0x0
mov r2, #0x6
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x25
add r1, r4, #0x0
mov r2, #0x7
@@ -127939,7 +127939,7 @@ FUN_02083BAC: ; 0x02083BAC ldr r0, [r4, r0]
add r1, r6, #0x0
lsl r2, r2, #0x4
- blx memcpy
+ bl memcpy
ldr r0, [r4, #0x58]
add r0, r0, #0x1
str r0, [r4, #0x58]
@@ -127956,21 +127956,21 @@ FUN_02083BAC: ; 0x02083BAC add r0, r4, #0x0
mov r1, #0x1b
mov r2, #0x0
- bl FUN_0222F440
+ bl MOD70_0222F440
b _02083C14
_02083BF6:
bl FUN_02031190
ldr r1, _02083C20 ; =0x00002218
ldr r2, [r4, #0x50]
ldr r1, [r4, r1]
- bl FUN_0222F480
+ bl MOD70_0222F480
b _02083C14
_02083C06:
bl FUN_02031190
ldr r1, _02083C20 ; =0x00002218
ldr r2, [r4, #0x50]
ldr r1, [r4, r1]
- bl FUN_0222F480
+ bl MOD70_0222F480
_02083C14:
ldr r0, [r4, #0x50]
add r0, r0, #0x1
@@ -128115,7 +128115,7 @@ FUN_02083CD8: ; 0x02083CD8 add r0, r6, #0x0
add r1, r3, r1
sub r2, r2, #0x4
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
mov r0, #0x4
str r0, [r4, #0x54]
mov r0, #0x0
@@ -128205,14 +128205,14 @@ FUN_02083D5C: ; 0x02083D5C mov r2, #0x19
add r0, r5, #0x0
lsl r2, r2, #0x4
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
b _02083D9C
_02083D90:
add r2, r4, r2
add r1, r2, r1
add r0, r5, #0x0
sub r2, r3, #0x4
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
_02083D9C:
mov r1, #0xb5
ldr r0, _02083DE8 ; =0x000043D0
@@ -128221,7 +128221,7 @@ _02083D9C: ldr r1, [r4, r1]
add r0, r4, r0
lsl r2, r2, #0x6
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
mov r0, #0xb2
lsl r0, r0, #0x2
add r0, r4, r0
@@ -128316,13 +128316,13 @@ FUN_02083E4C: ; 0x02083E4C add r0, r4, #0x0
mov r1, #0x3
mov r2, #0x0
- bl FUN_021D8B64
+ bl MOD53_021D8B64
ldr r1, _02083E8C ; =0x000043D0
mov r2, #0xe1
mov r0, #0x0
add r1, r4, r1
lsl r2, r2, #0x6
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
bl FUN_02031190
cmp r0, #0x0
bne _02083E8A
@@ -128381,14 +128381,14 @@ _02083ED0: ldr r1, [r4, r1]
cmp r1, r0
bne _02083EFE
- bl FUN_021D917C
+ bl MOD53_021D917C
mov r1, #0xc6
lsl r1, r1, #0x2
ldr r1, [r4, r1]
cmp r1, r0
bne _02083EFE
bl FUN_0202CB8C
- blx MATH_CountPopulation
+ bl MATH_CountPopulation
mov r1, #0xc6
lsl r1, r1, #0x2
ldr r1, [r4, r1]
@@ -128437,7 +128437,7 @@ _02083F3C: add r0, r4, #0x0
mov r1, #0x9
add r2, r6, #0x0
- bl FUN_021D8B64
+ bl MOD53_021D8B64
add sp, #0x4
pop {r3-r6, pc}
_02083F5A:
@@ -128447,14 +128447,14 @@ _02083F5A: ldrb r2, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0x8
- bl FUN_021D8B64
+ bl MOD53_021D8B64
add sp, #0x4
pop {r3-r6, pc}
_02083F6E:
ldrb r2, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0x15
- bl FUN_021D8B64
+ bl MOD53_021D8B64
_02083F78:
add sp, #0x4
pop {r3-r6, pc}
@@ -128474,7 +128474,7 @@ FUN_02083F88: ; 0x02083F88 add r4, r3, #0x0
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_021D8B64
+ bl MOD53_021D8B64
bl FUN_02031190
cmp r0, #0x0
bne _02083FB6
@@ -128514,7 +128514,7 @@ FUN_02083FC4: ; 0x02083FC4 add r0, r4, #0x0
mov r1, #0xf
mov r2, #0x0
- bl FUN_021D8B64
+ bl MOD53_021D8B64
_02083FDA:
pop {r4, pc}
@@ -128577,7 +128577,7 @@ FUN_0208402C: ; 0x0208402C add r0, r1, r0
ldr r1, _02084078 ; =0x00007C10
add r1, r5, r1
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
ldr r0, _02084078 ; =0x00007C10
mov r2, #0x0
add r1, r2, #0x0
@@ -128674,12 +128674,12 @@ FUN_020840CC: ; 0x020840CC add r0, r4, #0x0
bl FUN_02084270
add r0, r4, #0x0
- bl FUN_021D844C
+ bl MOD54_021D844C
lsl r2, r5, #0x18
add r0, r4, #0x0
mov r1, #0x19
lsr r2, r2, #0x18
- bl FUN_021D88E4
+ bl MOD54_021D88E4
mov r0, #0x1
add r1, r0, #0x0
bl FUN_020334E8
@@ -128693,12 +128693,12 @@ _02084110: .word 0x00000658 thumb_func_start FUN_02084114
FUN_02084114: ; 0x02084114
add r0, r3, #0x0
- ldr r3, _02084120 ; =FUN_021D88E4
+ ldr r3, _02084120 ; =MOD54_021D88E4
mov r1, #0x2
mov r2, #0x0
bx r3
nop
-_02084120: .word FUN_021D88E4 + 1
+_02084120: .word MOD54_021D88E4
thumb_func_start FUN_02084124
FUN_02084124: ; 0x02084124
@@ -128736,13 +128736,13 @@ _0208415E: ldr r1, [r4, r1]
cmp r1, r0
bne _02084186
- bl FUN_021D8C24
+ bl MOD54_021D8C24
ldr r1, _02084208 ; =0x00004A48
ldr r1, [r4, r1]
cmp r1, r0
bne _02084186
bl FUN_0202CB8C
- blx MATH_CountPopulation
+ bl MATH_CountPopulation
ldr r1, _02084208 ; =0x00004A48
ldr r2, [r4, r1]
cmp r2, r0
@@ -128792,7 +128792,7 @@ _020841C8: add r0, r4, #0x0
mov r1, #0x8
add r2, r6, #0x0
- bl FUN_021D88E4
+ bl MOD54_021D88E4
add sp, #0x4
pop {r3-r6, pc}
_020841E6:
@@ -128802,14 +128802,14 @@ _020841E6: ldrb r2, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0x7
- bl FUN_021D88E4
+ bl MOD54_021D88E4
add sp, #0x4
pop {r3-r6, pc}
_020841FA:
ldrb r2, [r5, #0x0]
add r0, r4, #0x0
mov r1, #0x13
- bl FUN_021D88E4
+ bl MOD54_021D88E4
_02084204:
add sp, #0x4
pop {r3-r6, pc}
@@ -128824,7 +128824,7 @@ FUN_02084210: ; 0x02084210 add r4, r3, #0x0
add r0, r4, #0x0
mov r1, #0x1
- bl FUN_021D89CC
+ bl MOD54_021D89CC
bl FUN_02031190
cmp r0, #0x0
bne _0208422E
@@ -128855,7 +128855,7 @@ FUN_02084238: ; 0x02084238 add r0, r4, #0x0
mov r1, #0xd
mov r2, #0x0
- bl FUN_021D88E4
+ bl MOD54_021D88E4
_0208424E:
pop {r4, pc}
@@ -130682,7 +130682,7 @@ _020850BE: mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x18]
_020850EC:
add r0, r5, #0x0
@@ -131327,7 +131327,7 @@ FUN_020854E0: ; 0x020854E0 mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [sp, #0x0]
strb r0, [r4, #0xf]
ldr r0, [sp, #0x4]
@@ -131365,7 +131365,7 @@ FUN_02085538: ; 0x02085538 mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
strh r0, [r4, #0x0]
str r5, [r4, #0x8]
@@ -131395,7 +131395,7 @@ FUN_02085578: ; 0x02085578 mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
strh r0, [r4, #0x0]
str r5, [r4, #0x10]
@@ -131422,7 +131422,7 @@ FUN_020855B0: ; 0x020855B0 mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
strh r0, [r4, #0x0]
add r0, r7, #0x0
@@ -131582,7 +131582,7 @@ FUN_020856F0: ; 0x020856F0 mov r1, #0x0
mov r2, #0x34
add r6, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
strh r0, [r6, #0x0]
add r0, r4, #0x0
@@ -131720,7 +131720,7 @@ FUN_020857F8: ; 0x020857F8 mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r1, #0x28
str r1, [r4, #0x0]
ldr r0, [r5, #0x14]
@@ -131937,8 +131937,8 @@ FUN_020859C0: ; 0x020859C0 lsl r2, r2, #0x12
bl FUN_0201681C
mov r0, #0x35
- bl FUN_02230F3C
- bl FUN_0222F7E0
+ bl MOD62_02230F3C
+ bl MOD62_0222F7E0
ldr r1, _02085BA0 ; =0x0000042C
add r0, r5, #0x0
mov r2, #0x35
@@ -131946,8 +131946,8 @@ FUN_020859C0: ; 0x020859C0 ldr r2, _02085BA0 ; =0x0000042C
mov r1, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
- bl FUN_0222E2BC
+ bl Call_FillMemWithValue
+ bl MOD62_0222E2BC
mov r1, #0x23
lsl r1, r1, #0x4
str r0, [r4, r1]
@@ -132083,8 +132083,8 @@ _02085A9A: add r0, r4, #0x0
add r0, #0xe4
ldr r0, [r0, #0x0]
- bl FUN_02230F80
- bl FUN_0222E360
+ bl MOD62_02230F80
+ bl MOD62_0222E360
mov r0, #0x35
bl FUN_02006D98
mov r1, #0x69
@@ -132108,7 +132108,7 @@ _02085A9A: ldr r0, [r0, #0x0]
ldr r1, [r1, #0x0]
add r2, r5, #0x0
- bl FUN_0222ED34
+ bl MOD62_0222ED34
add r0, r4, #0x0
add r1, r4, #0x0
add r0, #0xe4
@@ -132116,20 +132116,20 @@ _02085A9A: ldr r0, [r0, #0x0]
ldr r1, [r1, #0x0]
add r2, r5, #0x0
- bl FUN_0222EDBC
+ bl MOD62_0222EDBC
add r0, r4, #0x0
add r0, #0xd4
- bl FUN_0222E7E8
+ bl MOD62_0222E7E8
bl FUN_0201CC08
mov r0, #0x4
bl FUN_0201CC24
add r0, r4, #0x0
- bl FUN_022300E4
+ bl MOD62_022300E4
ldr r0, _02085BAC ; =0x022310CD
add r1, r4, #0x0
bl FUN_02015F10
add r0, r4, #0x0
- bl FUN_0222DD1C
+ bl MOD62_0222DD1C
mov r1, #0x0
mov r0, #0x3b
add r2, r1, #0x0
@@ -132164,7 +132164,7 @@ _02085BCA: str r0, [r5, #0x0]
b _02085C02
_02085BD8:
- bl FUN_0222F990
+ bl MOD12_0222F990
cmp r0, #0x0
bne _02085BE6
mov r0, #0x2
@@ -132175,7 +132175,7 @@ _02085BE6: lsl r0, r0, #0x2
ldr r0, [r4, r0]
bl FUN_02006ED4
- bl FUN_0222E3A0
+ bl MOD62_0222E3A0
b _02085C02
_02085BF6:
bl FUN_0200E308
@@ -132292,7 +132292,7 @@ FUN_02085C08: ; 0x02085C08 ldr r0, [r4, r0]
bl FUN_02016A18
add r0, r4, #0x0
- bl FUN_0222DAEC
+ bl MOD62_0222DAEC
mov r0, #0x73
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -132306,29 +132306,29 @@ FUN_02085C08: ; 0x02085C08 ldr r0, [r4, r0]
bl FUN_02014C28
add r0, r4, #0x0
- bl FUN_0222DD38
+ bl MOD62_0222DD38
add r0, r4, #0x0
add r0, #0xd4
- bl FUN_0222E874
+ bl MOD62_0222E874
bl FUN_0201C29C
mov r0, #0x23
lsl r0, r0, #0x4
ldr r0, [r4, r0]
bl FUN_020223BC
mov r0, #0x35
- bl FUN_02230F70
+ bl MOD62_02230F70
add r0, r5, #0x0
bl FUN_0200627C
bl FUN_0201CD04
mov r0, #0x35
bl FUN_020168D0
- ldr r0, _02085D68 ; =0x00000008
+ ldr r0, _02085D68 ; =SDK_OVERLAY_MODULE_08_ID
bl UnloadOverlayByID
mov r0, #0x1
pop {r3-r5, pc}
nop
_02085D64: .word 0x00000428
-_02085D68: .word 0x00000008
+_02085D68: .word SDK_OVERLAY_MODULE_08_ID
thumb_func_start FUN_02085D6C
FUN_02085D6C: ; 0x02085D6C
@@ -132596,7 +132596,7 @@ _02085F5E: mov r1, #0x0
mov r2, #0x30
str r0, [r4, #0x8]
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
bl LoadPlayerDataAddress
ldr r1, [r4, #0x8]
@@ -132609,7 +132609,7 @@ _02085F5E: mov r1, #0x0
mov r2, #0x40
str r0, [r4, #0xc]
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r1, _02085FA8 ; =FUN_02085DA4
add r0, r6, #0x0
add r2, r4, #0x0
@@ -132752,7 +132752,7 @@ FUN_02086084: ; 0x02086084 mov r1, #0x0
mov r2, #0x80
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
bl FUN_0200628C
str r0, [r4, #0x0]
@@ -132974,7 +132974,7 @@ _020862A0: ; jump table (using 16-bit offset) _020862AE:
ldr r0, [r4, #0xc]
mov r1, #0xb
- bl FUN_021ED940
+ bl MOD05_021ED940
add r0, r5, #0x0
bl FUN_0204AF3C
ldr r0, [r4, #0x0]
@@ -133167,14 +133167,14 @@ FUN_0208643C: ; 0x0208643C mov r1, #0x0
mov r2, #0xe
mov r3, #0xb
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
mov r0, #0x8
str r0, [sp, #0x0]
ldr r0, _02086464 ; =0x04001050
mov r1, #0x0
mov r2, #0xe
mov r3, #0x7
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_02086460: .word 0x04000050
@@ -133239,13 +133239,13 @@ FUN_02086488: ; 0x02086488 add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- blx G3X_SetFog
+ bl G3X_SetFog
mov r0, #0x0
ldr r2, _02086500 ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
- blx G3X_SetClearColor
+ bl G3X_SetClearColor
ldr r1, _02086504 ; =0xBFFF0000
ldr r0, _02086508 ; =0x04000580
str r1, [r0, #0x0]
@@ -133311,25 +133311,25 @@ _0208655C: mov r0, #0x0
lsl r1, r1, #0x18
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x62
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x19
mov r2, #0x1
mov r0, #0x0
lsl r1, r1, #0x16
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x66
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r5, _02086654 ; =0x020FCE24
add r3, sp, #0x1c
add r2, r3, #0x0
@@ -133444,7 +133444,7 @@ FUN_02086698: ; 0x02086698 cmp r0, #0x0
ble _020866AE
bl FUN_020222AC
- blx FUN_020B02C8
+ bl FUN_020B02C8
_020866AE:
bl FUN_02013388
mov r0, #0x1
@@ -134325,7 +134325,7 @@ _02086DB4: bl FUN_0200C82C
mov r0, #0x0
add r1, r7, #0x0
- blx _feq
+ bl _feq
beq _02086DD2
ldr r0, [r6, #0x6c]
ldr r2, [sp, #0x0]
@@ -136295,7 +136295,7 @@ FUN_02087D00: ; 0x02087D00 mov r1, #0x0
lsl r2, r2, #0x2
add r7, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
bl FUN_02028048
str r0, [r7, #0x8]
@@ -136454,7 +136454,7 @@ FUN_02087E40: ; 0x02087E40 mov r1, #0x0
mov r2, #0x18
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x2c
str r0, [r4, #0x0]
str r5, [r4, #0xc]
@@ -136620,7 +136620,7 @@ _02087F86: mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0xc]
mov r1, #0x0
ldr r0, [r0, #0x10]
@@ -136761,7 +136761,7 @@ FUN_020880A0: ; 0x020880A0 mov r1, #0x0
mov r2, #0xc
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, [r5, #0xc]
ldrb r0, [r1, #0x1]
lsl r0, r0, #0x3
@@ -136992,22 +136992,22 @@ _0208826A: cmp r0, #0x5
beq _020882B8
ldrb r0, [r4, r0]
- blx _ffltu
+ bl _ffltu
add r1, r0, #0x0
ldr r0, _02088318 ; =0x3F8CCCCD
- blx _fmul
- blx _ffixu
+ bl _fmul
+ bl _ffixu
ldr r1, [sp, #0x4]
strb r0, [r4, r1]
add r4, sp, #0x8
ldr r0, [sp, #0x0]
add r4, #0x1
ldrb r0, [r4, r0]
- blx _ffltu
+ bl _ffltu
add r1, r0, #0x0
ldr r0, _0208831C ; =0x3F666666
- blx _fmul
- blx _ffixu
+ bl _fmul
+ bl _ffixu
ldr r1, [sp, #0x0]
strb r0, [r4, r1]
_020882B8:
@@ -137075,7 +137075,7 @@ FUN_02088320: ; 0x02088320 mov r1, #0x0
lsl r2, r2, #0x2
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r6, [r4, #0x0]
cmp r5, #0x10
bls _0208834A
@@ -137104,7 +137104,7 @@ FUN_02088360: ; 0x02088360 add r0, r4, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
bl FUN_02016A18
pop {r4, pc}
@@ -137199,7 +137199,7 @@ _02088402: ldr r0, [r0, r2]
mov r1, #0x0
mov r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
add sp, #0xc
pop {r4-r7, pc}
.balign 4
@@ -137272,7 +137272,7 @@ _020884B4: str r0, [sp, #0x38]
mov r1, #0x0
mov r2, #0x8
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, [sp, #0x3c]
ldr r0, [sp, #0x38]
strh r1, [r0, #0x0]
@@ -137365,59 +137365,59 @@ _020884D8: str r0, [sp, #0x44]
beq _02088596
lsl r0, r7, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _020885A4
_02088596:
lsl r0, r7, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_020885A4:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x48]
ldr r0, [sp, #0x30]
cmp r0, #0x0
beq _020885C2
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _020885D0
_020885C2:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_020885D0:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x4c]
add r0, sp, #0x78
ldrh r0, [r0, #0x10]
cmp r0, #0x0
beq _020885F0
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _020885FE
_020885F0:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_020885FE:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x50]
cmp r6, #0x2
bne _02088612
@@ -137758,40 +137758,40 @@ FUN_02088854: ; 0x02088854 thumb_func_start FUN_02088858
FUN_02088858: ; 0x02088858
ldr r3, _02088860 ; =HandleLoadOverlay
- ldr r0, _02088864 ; =0x00000004
+ ldr r0, _02088864 ; =SDK_OVERLAY_MODULE_04_ID
mov r1, #0x2
bx r3
.balign 4
_02088860: .word HandleLoadOverlay
-_02088864: .word 0x00000004
+_02088864: .word SDK_OVERLAY_MODULE_04_ID
thumb_func_start FUN_02088868
FUN_02088868: ; 0x02088868
ldr r3, _02088870 ; =UnloadOverlayByID
- ldr r0, _02088874 ; =0x00000004
+ ldr r0, _02088874 ; =SDK_OVERLAY_MODULE_04_ID
bx r3
nop
_02088870: .word UnloadOverlayByID
-_02088874: .word 0x00000004
+_02088874: .word SDK_OVERLAY_MODULE_04_ID
thumb_func_start FUN_02088878
FUN_02088878: ; 0x02088878
ldr r3, _02088880 ; =HandleLoadOverlay
- ldr r0, _02088884 ; =0x0000000D
+ ldr r0, _02088884 ; =SDK_OVERLAY_MODULE_13_ID
mov r1, #0x2
bx r3
.balign 4
_02088880: .word HandleLoadOverlay
-_02088884: .word 0x0000000D
+_02088884: .word SDK_OVERLAY_MODULE_13_ID
thumb_func_start FUN_02088888
FUN_02088888: ; 0x02088888
ldr r3, _02088890 ; =UnloadOverlayByID
- ldr r0, _02088894 ; =0x0000000D
+ ldr r0, _02088894 ; =SDK_OVERLAY_MODULE_13_ID
bx r3
nop
_02088890: .word UnloadOverlayByID
-_02088894: .word 0x0000000D
+_02088894: .word SDK_OVERLAY_MODULE_13_ID
thumb_func_start FUN_02088898
FUN_02088898: ; 0x02088898
@@ -137800,32 +137800,32 @@ FUN_02088898: ; 0x02088898 bl FUN_02088858
bl FUN_02088878
add r0, r4, #0x0
- bl FUN_02211E60
+ bl MOD07_02211E60
bl FUN_02088888
bl FUN_02088868
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
pop {r4, pc}
.balign 4
thumb_func_start FUN_020888BC
FUN_020888BC: ; 0x020888BC
ldr r3, _020888C4 ; =HandleLoadOverlay
- ldr r0, _020888C8 ; =0x0000004F
+ ldr r0, _020888C8 ; =SDK_OVERLAY_MODULE_79_ID
mov r1, #0x2
bx r3
.balign 4
_020888C4: .word HandleLoadOverlay
-_020888C8: .word 0x0000004F
+_020888C8: .word SDK_OVERLAY_MODULE_79_ID
thumb_func_start FUN_020888CC
FUN_020888CC: ; 0x020888CC
ldr r3, _020888D4 ; =UnloadOverlayByID
- ldr r0, _020888D8 ; =0x0000004F
+ ldr r0, _020888D8 ; =SDK_OVERLAY_MODULE_79_ID
bx r3
nop
_020888D4: .word UnloadOverlayByID
-_020888D8: .word 0x0000004F
+_020888D8: .word SDK_OVERLAY_MODULE_79_ID
thumb_func_start FUN_020888DC
FUN_020888DC: ; 0x020888DC
@@ -137844,7 +137844,7 @@ FUN_020888DC: ; 0x020888DC mov r0, #0x31
bl FUN_020168D0
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
mov r0, #0x1
pop {r4, pc}
.balign 4
@@ -137861,7 +137861,7 @@ FUN_0208890C: ; 0x0208890C add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x20
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r5, [r4, #0xc]
add r0, r5, #0x0
bl FUN_02028048
@@ -137950,7 +137950,7 @@ FUN_020889B0: ; 0x020889B0 mov r1, #0x0
mov r2, #0x24
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x37
str r0, [r4, #0x0]
str r5, [r4, #0x10]
@@ -138050,7 +138050,7 @@ FUN_02088A78: ; 0x02088A78 add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x24
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl FUN_0200627C
add r0, r6, #0x0
@@ -138221,7 +138221,7 @@ _02088BBA: add r2, r0, #0x0
ldr r1, [r4, #0x18]
add r0, r5, #0x0
- blx memcpy
+ bl memcpy
ldr r0, [r4, #0x18]
bl FUN_02016A18
mov r0, #0x0
@@ -139359,7 +139359,7 @@ FUN_020893F0: ; 0x020893F0 bhs _0208940A
add r0, r1, #0x0
ldr r1, _02089410 ; =0x021C5C58
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
ldr r0, _02089414 ; =0x02106154
str r4, [r0, #0x0]
pop {r4, pc}
@@ -139382,7 +139382,7 @@ FUN_02089418: ; 0x02089418 cmp r0, r3
bne _02089438
ldr r0, _02089440 ; =0x021C5C58
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
mov r0, #0x1
pop {r3, pc}
_02089434:
@@ -139404,7 +139404,7 @@ FUN_02089444: ; 0x02089444 bhs _0208945E
add r0, r1, #0x0
ldr r1, _02089464 ; =0x021C5C58
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
ldr r0, _02089468 ; =0x02106154
str r4, [r0, #0x0]
pop {r4, pc}
@@ -139427,7 +139427,7 @@ FUN_0208946C: ; 0x0208946C cmp r0, r3
bne _0208948C
ldr r0, _02089494 ; =0x021C5C58
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
mov r0, #0x1
pop {r3, pc}
_02089488:
@@ -139455,7 +139455,7 @@ FUN_02089498: ; 0x02089498 mov r1, #0x0
mov r2, #0x38
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x58
str r0, [r4, #0x0]
mov r0, #0x0
@@ -139604,7 +139604,7 @@ FUN_020895F0: ; 0x020895F0 add r0, r4, #0x0
bl FUN_020168D0
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
mov r0, #0x1
pop {r3-r5, pc}
@@ -140031,7 +140031,7 @@ FUN_02089960: ; 0x02089960 mov r1, #0x0
mov r2, #0x3c
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x58
str r0, [r4, #0x0]
mov r0, #0x0
@@ -140127,13 +140127,13 @@ FUN_02089A40: ; 0x02089A40 bl FUN_0200627C
add r0, r4, #0x0
bl FUN_020168D0
- ldr r0, _02089A64 ; =0x00000053
+ ldr r0, _02089A64 ; =SDK_OVERLAY_MODULE_83_ID
ldr r1, _02089A68 ; =0x0223A360
bl FUN_02000E7C
mov r0, #0x1
pop {r3-r5, pc}
nop
-_02089A64: .word 0x00000053
+_02089A64: .word SDK_OVERLAY_MODULE_83_ID
_02089A68: .word 0x0223A360
thumb_func_start FUN_02089A6C
@@ -140667,7 +140667,7 @@ _02089EE4: bl FUN_02000FE8
add r0, r4, #0x0
add r1, r4, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _02089EE4
nop
_02089EF4: .word 0xFFFFE0FF
@@ -140828,7 +140828,7 @@ _0208A078: bl FUN_02000FE8
add r0, r4, #0x0
add r1, r4, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _0208A078
nop
_0208A088: .word 0xFFFFE0FF
@@ -140997,7 +140997,7 @@ _0208A21A: bl FUN_02000FE8
add r0, r4, #0x0
add r1, r4, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _0208A21A
.balign 4
_0208A228: .word 0xFFFFE0FF
@@ -141083,7 +141083,7 @@ FUN_0208A2C4: ; 0x0208A2C4 cmp r0, #0x0
beq _0208A2F6
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
ldr r1, _0208A2F8 ; =0x0223D4AD
add r0, r5, #0x0
add r2, r4, #0x0
@@ -141406,7 +141406,7 @@ _0208A566: cmp r0, #0x0
beq _0208A5B0
mov r0, #0x0
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x5
str r0, [r4, #0x54]
b _0208A6C8
@@ -141447,7 +141447,7 @@ _0208A5BE: cmp r0, #0x0
beq _0208A6C8
mov r0, #0x1
- bl FUN_021D7CA4
+ bl MOD05_021D7CA4
mov r0, #0x8
str r0, [r4, #0x54]
b _0208A6C8
@@ -141956,15 +141956,15 @@ _0208A9C6: mov r1, #0x1
str r1, [r0, #0x0]
mov r0, #0x0
- blx OS_GetInitArenaHi
+ bl OS_GetInitArenaHi
add r1, r0, #0x0
mov r0, #0x0
- blx OS_SetArenaHi
+ bl OS_SetArenaHi
mov r0, #0x0
- blx OS_GetInitArenaLo
+ bl OS_GetInitArenaLo
add r1, r0, #0x0
mov r0, #0x0
- blx OS_SetArenaLo
+ bl OS_SetArenaLo
mov r1, #0x1
ldr r0, _0208ABCC ; =0x020FF4A4
add r2, r1, #0x0
@@ -141977,12 +141977,12 @@ _0208A9C6: mov r1, #0x0
bl FUN_0200E3A0
mov r0, #0x1
- blx OS_DisableIrqMask
+ bl OS_DisableIrqMask
ldr r1, _0208ABD0 ; =FUN_0208A998
mov r0, #0x1
- blx OS_SetIrqFunction
+ bl OS_SetIrqFunction
mov r0, #0x1
- blx OS_EnableIrqMask
+ bl OS_EnableIrqMask
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F10
@@ -142122,7 +142122,7 @@ _0208AB58: bne _0208AB72
add r0, r4, #0x0
add r1, r4, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _0208AB58
_0208AB72:
ldr r5, _0208AC04 ; =0x04000130
@@ -142143,7 +142143,7 @@ _0208AB7A: bne _0208AB9C
mov r0, #0x1
add r1, r0, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _0208AB7A
_0208AB9C:
ldr r1, _0208AC10 ; =0x00007FFF
@@ -142159,7 +142159,7 @@ _0208AB9C: ldr r0, [sp, #0x10]
bl FUN_02016A18
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
_0208ABC4:
add sp, #0x24
pop {r4-r7, pc}
diff --git a/arm9/asm/unk_0208AC14.s b/arm9/asm/unk_0208AC14.s index e2ac3396..38ad538a 100644 --- a/arm9/asm/unk_0208AC14.s +++ b/arm9/asm/unk_0208AC14.s @@ -1950,7 +1950,7 @@ _0208C778: _0208C79C: add r0, sp, #0x60 mov r3, r2 - blx MTX_Scale43_ + bl MTX_Scale43_ add r0, sp, #0x30 add r1, sp, #0x60 add r2, sp, #0x0 @@ -2253,7 +2253,7 @@ _0208CBF4: _0208CC18: add r0, sp, #0x60 mov r3, r2 - blx MTX_Scale43_ + bl MTX_Scale43_ add r0, sp, #0x60 add r1, sp, #0x30 add r2, sp, #0x0 @@ -2479,7 +2479,7 @@ _0208CF4C: _0208CF70: add r0, sp, #0x60 mov r3, r2 - blx MTX_Scale43_ + bl MTX_Scale43_ add r0, sp, #0x30 add r1, sp, #0x60 add r2, sp, #0x0 @@ -2703,7 +2703,7 @@ _0208D29C: _0208D2C0: add r0, sp, #0x60 mov r3, r2 - blx MTX_Scale43_ + bl MTX_Scale43_ add r0, sp, #0x60 add r1, sp, #0x30 add r2, sp, #0x0 @@ -6273,7 +6273,7 @@ _020907AC: mov r2, r1, lsl #0x1 ldrsh r1, [r3, r12] ldrsh r2, [r3, r2] - blx MTX_RotX33_ + bl MTX_RotX33_ b _02090838 _020907DC: ldrh r1, [r0, #0x0] @@ -6286,7 +6286,7 @@ _020907DC: mov r2, r1, lsl #0x1 ldrsh r1, [r3, r12] ldrsh r2, [r3, r2] - blx MTX_RotY33_ + bl MTX_RotY33_ b _02090838 _0209080C: ldrh r1, [r0, #0x0] @@ -6299,7 +6299,7 @@ _0209080C: mov r2, r1, lsl #0x1 ldrsh r1, [r3, r12] ldrsh r2, [r3, r2] - blx MTX_RotZ33_ + bl MTX_RotZ33_ _02090838: add r0, r4, #0x8 add r1, sp, #0x0 @@ -6894,37 +6894,3 @@ _02091030: .word 0x04000243 _02091034: .word FUN_02090BBC _02091038: .word FUN_02090BB8 _0209103C: .word 0x021C8C68 - - arm_func_start FUN_02091040 -FUN_02091040: ; 0x02091040 - ldr r3, _02091054 ; =0x021C8C70 - ldr r2, _02091058 ; =0x021C8C74 - str r0, [r3, #0x0] - str r1, [r2, #0x0] - bx lr - .balign 4 -_02091054: .word 0x021C8C70 -_02091058: .word 0x021C8C74 - - arm_func_start FUN_0209105C -FUN_0209105C: ; 0x0209105C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _020910A0 ; =0x021C8C74 - mov r2, r0 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - beq _02091088 - blx r1 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_02091088: - mov r0, #0x0 - mvn r1, #0x0 - bl OS_FreeToHeap - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020910A0: .word 0x021C8C74 diff --git a/arm9/asm/unk_020910EC.s b/arm9/asm/unk_020910EC.s index 2108f3de..88bd5a14 100644 --- a/arm9/asm/unk_020910EC.s +++ b/arm9/asm/unk_020910EC.s @@ -4877,7 +4877,7 @@ _02095460: cmp r0, #0x1 beq _02095488 mov r0, r4 - blx SVC_WaitByLoop + bl SVC_WaitByLoop b _02095460 _02095488: mov r0, #0x1 @@ -4943,7 +4943,7 @@ _0209552C: ldmeqia sp!, {r4-r8,pc} _02095548: ; 0x02095548 mov r0, r4 - blx SVC_WaitByLoop + bl SVC_WaitByLoop b _0209552C _02095554: ; 0x02095554 ldmia sp!, {r4-r8,pc} @@ -4984,7 +4984,7 @@ _020955B0: cmp r0, #0x1 beq _020955D8 mov r0, r7 - blx SVC_WaitByLoop + bl SVC_WaitByLoop b _020955B0 _020955D8: mov r0, r4 @@ -5341,7 +5341,7 @@ _02095A74: b _0209574C _02095A7C: ldr r0, [sp, #0xbc] - blx SVC_WaitByLoop + bl SVC_WaitByLoop b _0209574C _02095A88: add sp, sp, #0xc4 @@ -29496,7 +29496,7 @@ _020AA144: ldr r2, [r6, #0x0] str r3, [r7, #0x8cc] and r0, r0, #0xff - bl FUN_021EAE90 + bl MOD04_021EAE90 ldr r0, [r7, #0x8cc] cmp r0, #0x0 bne _020AA1A0 @@ -32194,7 +32194,7 @@ FUN_020AC554: _020AC57C: ldrb r0, [r0, #0x4] mov r2, #0x10 - bl FUN_021EB044 + bl MOD04_021EB044 _020AC588: ; 0x020AC588 cmp r0, #0x0 addeq sp, sp, #0x4 @@ -32274,7 +32274,7 @@ _020AC654: mov r1, r10 mov r2, r6 strb r8, [r10, #0x9] - bl FUN_021EB044 + bl MOD04_021EB044 _020AC68C: ; 0x020AC68C cmp r0, #0x0 addne r9, r9, #0x1 diff --git a/arm9/asm/unk_020AF030.s b/arm9/asm/unk_020AF030.s index 3851b8c7..a107adc3 100644 --- a/arm9/asm/unk_020AF030.s +++ b/arm9/asm/unk_020AF030.s @@ -13216,7 +13216,7 @@ _020BA188: str r1, [sp, #0x0] ldrsh r1, [r5, #0x2] str r1, [sp, #0x4] - blx MI_Zero36B + bl MI_Zero36B ldrh r0, [r4, #0x0] add r1, r6, r11, lsl #0x2 add r5, r5, #0x4 @@ -17209,7 +17209,7 @@ FUN_020BD850: ; 0x020BD850 mov r5, r2, asr #0x4 ldrsh r7, [r1, #0x0] ldrsh r6, [r1, #0x2] - blx MI_Zero36B + bl MI_Zero36B ldrh r0, [r4, #0x0] add r1, r8, r5, lsl #0x2 ands r0, r0, #0x100 diff --git a/arm9/data/bss.s b/arm9/data/bss.s new file mode 100644 index 00000000..84594abc --- /dev/null +++ b/arm9/data/bss.s @@ -0,0 +1,681 @@ + .section .bss + + .global UNK_02106FA0 + .global gBacklightTop + .global gBacklightTop_2 +UNK_02106FA0: ; 0x02106FA0 +gBacklightTop: ; 0x02106FA0 +gBacklightTop_2: ; 0x02106FA0 + .space 0x18 + + .global UNK_02106FB8 +UNK_02106FB8: ; 0x02106FB8 + .space 0xc + + .global UNK_02106FC4 +UNK_02106FC4: ; 0x02106FC4 + .space 0x4 + + .global UNK_02106FC8 +UNK_02106FC8: ; 0x02106FC8 + .space 0x4 + + .global UNK_02106FCC +UNK_02106FCC: ; 0x02106FCC + .space 0xa4 + + .global UNK_02107070 +UNK_02107070: ; 0x02107070 + .space 0x8 + + .global UNK_02107078 +UNK_02107078: ; 0x02107078 + .space 0x688 + + .global UNK_02107700 +UNK_02107700: ; 0x02107700 + .space 0x24 + + .global UNK_02107724 +UNK_02107724: ; 0x02107724 + .space 0x891e + + .global UNK_02110042 +UNK_02110042: ; 0x02110042 + .space 0xc0 + + .global UNK_02110102 +UNK_02110102: ; 0x02110102 + .space 0x1d9 + + .global UNK_021102DB +UNK_021102DB: ; 0x021102DB + .space 0xc27 + + .global UNK_02110F02 +UNK_02110F02: ; 0x02110F02 + .space 0x6906 + + .global UNK_02117808 +UNK_02117808: ; 0x02117808 + .space 0x883b + + .global UNK_02120043 +UNK_02120043: ; 0x02120043 + .space 0xe4 + + .global UNK_02120127 +UNK_02120127: ; 0x02120127 + .space 0x47 + + .global UNK_0212016E +UNK_0212016E: ; 0x0212016E + .space 0xa0 + + .global UNK_0212020E +UNK_0212020E: ; 0x0212020E + .space 0x3 + + .global UNK_02120211 +UNK_02120211: ; 0x02120211 + .space 0x1632 + + .global UNK_02121843 +UNK_02121843: ; 0x02121843 + .space 0x26 + + .global UNK_02121869 +UNK_02121869: ; 0x02121869 + .space 0xc2 + + .global UNK_0212192B +UNK_0212192B: ; 0x0212192B + .space 0x2d6 + + .global UNK_02121C01 +UNK_02121C01: ; 0x02121C01 + .space 0x1d + + .global UNK_02121C1E +UNK_02121C1E: ; 0x02121C1E + .space 0x1b + + .global UNK_02121C39 +UNK_02121C39: ; 0x02121C39 + .space 0x4c7 + + .global UNK_02122100 +UNK_02122100: ; 0x02122100 + .space 0x3 + + .global UNK_02122103 +UNK_02122103: ; 0x02122103 + .space 0xff + + .global UNK_02122202 +UNK_02122202: ; 0x02122202 + .space 0x1 + + .global UNK_02122203 +UNK_02122203: ; 0x02122203 + .space 0xc + + .global UNK_0212220F +UNK_0212220F: ; 0x0212220F + .space 0x30 + + .global UNK_0212223F +UNK_0212223F: ; 0x0212223F + .space 0xf21 + + .global UNK_02123160 +UNK_02123160: ; 0x02123160 + .space 0x26c8 + + .global UNK_02125828 +UNK_02125828: ; 0x02125828 + .space 0x39 + + .global UNK_02125861 +UNK_02125861: ; 0x02125861 + .space 0x10df + + .global UNK_02126940 +UNK_02126940: ; 0x02126940 + .space 0xec9 + + .global UNK_02127809 +UNK_02127809: ; 0x02127809 + .space 0xd7 + + .global UNK_021278E0 +UNK_021278E0: ; 0x021278E0 + .space 0x1821 + + .global UNK_02129101 +UNK_02129101: ; 0x02129101 + .space 0x2 + + .global UNK_02129103 +UNK_02129103: ; 0x02129103 + .space 0x6f41 + + .global UNK_02130044 +UNK_02130044: ; 0x02130044 + .space 0xed + + .global UNK_02130131 +UNK_02130131: ; 0x02130131 + .space 0x243 + + .global UNK_02130374 +UNK_02130374: ; 0x02130374 + .space 0xfcd1 + + .global UNK_02140045 +UNK_02140045: ; 0x02140045 + .space 0xe3 + + .global UNK_02140128 +UNK_02140128: ; 0x02140128 + .space 0xeb + + .global UNK_02140213 +UNK_02140213: ; 0x02140213 + .space 0x14b + + .global UNK_0214035E +UNK_0214035E: ; 0x0214035E + .space 0xfce8 + + .global UNK_02150046 +UNK_02150046: ; 0x02150046 + .space 0x252 + + .global UNK_02150298 +UNK_02150298: ; 0x02150298 + .space 0xd45 + + .global UNK_02150FDD +UNK_02150FDD: ; 0x02150FDD + .space 0xe046 + + .global UNK_0215F023 +UNK_0215F023: ; 0x0215F023 + .space 0x1024 + + .global UNK_02160047 +UNK_02160047: ; 0x02160047 + .space 0xe2 + + .global UNK_02160129 +UNK_02160129: ; 0x02160129 + .space 0x1d + + .global UNK_02160146 +UNK_02160146: ; 0x02160146 + .space 0xd0 + + .global UNK_02160216 +UNK_02160216: ; 0x02160216 + .space 0x42 + + .global UNK_02160258 +UNK_02160258: ; 0x02160258 + .space 0x4237 + + .global UNK_0216448F +UNK_0216448F: ; 0x0216448F + .space 0xbbb9 + + .global UNK_02170048 +UNK_02170048: ; 0x02170048 + .space 0x2ce + + .global UNK_02170316 +UNK_02170316: ; 0x02170316 + .space 0xfd33 + + .global UNK_02180049 +UNK_02180049: ; 0x02180049 + .space 0xe2 + + .global UNK_0218012B +UNK_0218012B: ; 0x0218012B + .space 0x2d1 + + .global UNK_021803FC +UNK_021803FC: ; 0x021803FC + .space 0x3c05 + + .global UNK_02184001 +UNK_02184001: ; 0x02184001 + .space 0xc049 + + .global UNK_0219004A +UNK_0219004A: ; 0x0219004A + .space 0x31e + + .global UNK_02190368 +UNK_02190368: ; 0x02190368 + .space 0x173 + + .global UNK_021904DB +UNK_021904DB: ; 0x021904DB + .space 0xfb70 + + .global UNK_021A004B +UNK_021A004B: ; 0x021A004B + .space 0xe1 + + .global UNK_021A012C +UNK_021A012C: ; 0x021A012C + .space 0xcc + + .global UNK_021A01F8 +UNK_021A01F8: ; 0x021A01F8 + .space 0x1a + + .global UNK_021A0212 +UNK_021A0212: ; 0x021A0212 + .space 0x2 + + .global UNK_021A0214 +UNK_021A0214: ; 0x021A0214 + .space 0x2 + + .global UNK_021A0216 +UNK_021A0216: ; 0x021A0216 + .space 0x2a + + .global UNK_021A0240 +UNK_021A0240: ; 0x021A0240 + .space 0xfe0c + + .global UNK_021B004C +UNK_021B004C: ; 0x021B004C + .space 0x18c + + .global UNK_021B01D8 +UNK_021B01D8: ; 0x021B01D8 + .space 0x61 + + .global UNK_021B0239 +UNK_021B0239: ; 0x021B0239 + .space 0xda3 + + .global UNK_021B0FDC +UNK_021B0FDC: ; 0x021B0FDC + .space 0xc29 + + .global UNK_021B1C05 +UNK_021B1C05: ; 0x021B1C05 + .space 0x6fe + + .global UNK_021B2303 +UNK_021B2303: ; 0x021B2303 + .space 0xfc + + .global UNK_021B23FF +UNK_021B23FF: ; 0x021B23FF + .space 0x2516 + + .global UNK_021B4915 +UNK_021B4915: ; 0x021B4915 + .space 0x1ef0 + + .global UNK_021B6805 +UNK_021B6805: ; 0x021B6805 + .space 0x29fc + + .global UNK_021B9201 +UNK_021B9201: ; 0x021B9201 + .space 0x5ff + + .global UNK_021B9800 +UNK_021B9800: ; 0x021B9800 + .space 0x5824 + + .global UNK_021BF024 +UNK_021BF024: ; 0x021BF024 + .space 0x1029 + + .global UNK_021C004D +UNK_021C004D: ; 0x021C004D + .space 0xe0 + + .global UNK_021C012D +UNK_021C012D: ; 0x021C012D + .space 0xd7 + + .global UNK_021C0204 +UNK_021C0204: ; 0x021C0204 + .space 0x2 + + .global UNK_021C0206 +UNK_021C0206: ; 0x021C0206 + .space 0x33a + + .global UNK_021C0540 +UNK_021C0540: ; 0x021C0540 + .space 0x3898 + + .global UNK_021C3DD8 +UNK_021C3DD8: ; 0x021C3DD8 + .space 0x8 + + .global UNK_021C3DE0 +UNK_021C3DE0: ; 0x021C3DE0 + .space 0x7d0 + + .global gLoadedOverlays +gLoadedOverlays: ; 0x021C45B0 + .space 0x40 + + .global UNK_021C45F0 +UNK_021C45F0: ; 0x021C45F0 + .space 0x40 + + .global UNK_021C4630 +UNK_021C4630: ; 0x021C4630 + .space 0x40 + + .global UNK_021C4670 +UNK_021C4670: ; 0x021C4670 + .space 0x4 + + .global UNK_021C4674 +UNK_021C4674: ; 0x021C4674 + .space 0x20 + + .global UNK_021C4694 +UNK_021C4694: ; 0x021C4694 + .space 0x20 + + .global UNK_021C46B4 +UNK_021C46B4: ; 0x021C46B4 + .space 0x4 + + .global UNK_021C46B8 +UNK_021C46B8: ; 0x021C46B8 + .space 0x4 + + .global UNK_021C46BC +UNK_021C46BC: ; 0x021C46BC + .space 0xc + + .global UNK_021C46C8 +UNK_021C46C8: ; 0x021C46C8 + .space 0x30 + + .global UNK_021C46F8 +UNK_021C46F8: ; 0x021C46F8 + .space 0x30 + + .global UNK_021C4728 +UNK_021C4728: ; 0x021C4728 + .space 0x18 + + .global UNK_021C4740 +UNK_021C4740: ; 0x021C4740 + .space 0xb4 + + .global UNK_021C47F4 +UNK_021C47F4: ; 0x021C47F4 + .space 0x14 + + .global UNK_021C4808 +UNK_021C4808: ; 0x021C4808 + .space 0x10 + + .global UNK_021C4818 +UNK_021C4818: ; 0x021C4818 + .space 0x10 + + .global UNK_021C4828 +UNK_021C4828: ; 0x021C4828 + .space 0x28 + + .global UNK_021C4850 +UNK_021C4850: ; 0x021C4850 + .space 0x8 + + .global UNK_021C4858 +UNK_021C4858: ; 0x021C4858 + .space 0x40 + + .global UNK_021C4898 +UNK_021C4898: ; 0x021C4898 + .space 0x20 + + .global gUnknown21C48B8 +gUnknown21C48B8: ; 0x021C48B8 + .space 0x40 + + .global UNK_021C48F8 +UNK_021C48F8: ; 0x021C48F8 + .space 0x20 + + .global gUnk021C4918 +gUnk021C4918: ; 0x021C4918 + .space 0x10 + + .global UNK_021C4928 +UNK_021C4928: ; 0x021C4928 + .space 0x4 + + .global UNK_021C492C +UNK_021C492C: ; 0x021C492C + .space 0x3f4 + + .global UNK_021C4D20 +UNK_021C4D20: ; 0x021C4D20 + .space 0x8 + + .global UNK_021C4D28 +UNK_021C4D28: ; 0x021C4D28 + .space 0x1c + + .global UNK_021C4D44 +UNK_021C4D44: ; 0x021C4D44 + .space 0x4 + + .global UNK_021C4D48 +UNK_021C4D48: ; 0x021C4D48 + .space 0x4 + + .global UNK_021C4D4C +UNK_021C4D4C: ; 0x021C4D4C + .space 0x4 + + .global UNK_021C4D50 +UNK_021C4D50: ; 0x021C4D50 + .space 0x5f8 + + .global UNK_021C5348 +UNK_021C5348: ; 0x021C5348 + .space 0x380 + + .global UNK_021C56C8 +UNK_021C56C8: ; 0x021C56C8 + .space 0x44 + + .global UNK_021C570C +UNK_021C570C: ; 0x021C570C + .space 0x8 + + .global UNK_021C5714 +UNK_021C5714: ; 0x021C5714 + .space 0x20 + + .global UNK_021C5734 +UNK_021C5734: ; 0x021C5734 + .space 0x200 + + .global UNK_021C5934 +UNK_021C5934: ; 0x021C5934 + .space 0x4 + + .global UNK_021C5938 +UNK_021C5938: ; 0x021C5938 + .space 0xc + + .global UNK_021C5944 +UNK_021C5944: ; 0x021C5944 + .space 0x34 + + .global UNK_021C5978 +UNK_021C5978: ; 0x021C5978 + .space 0x1c + + .global UNK_021C5994 +UNK_021C5994: ; 0x021C5994 + .space 0x4 + + .global UNK_021C5998 +UNK_021C5998: ; 0x021C5998 + .space 0x4 + + .global UNK_021C599C +UNK_021C599C: ; 0x021C599C + .space 0x8 + + .global UNK_021C59A4 +UNK_021C59A4: ; 0x021C59A4 + .space 0x4 + + .global UNK_021C59A8 +UNK_021C59A8: ; 0x021C59A8 + .space 0x8 + + .global UNK_021C59B0 +UNK_021C59B0: ; 0x021C59B0 + .space 0xc + + .global UNK_021C59BC +UNK_021C59BC: ; 0x021C59BC + .space 0xc + + .global UNK_021C59C8 +UNK_021C59C8: ; 0x021C59C8 + .space 0x8 + + .global UNK_021C59D0 +UNK_021C59D0: ; 0x021C59D0 + .space 0x4 + + .global UNK_021C59D4 +UNK_021C59D4: ; 0x021C59D4 + .space 0x4 + + .global UNK_021C59D8 +UNK_021C59D8: ; 0x021C59D8 + .space 0x8 + + .global UNK_021C59E0 +UNK_021C59E0: ; 0x021C59E0 + .space 0x4 + + .global UNK_021C59E4 +UNK_021C59E4: ; 0x021C59E4 + .space 0x4 + + .global UNK_021C59E8 +UNK_021C59E8: ; 0x021C59E8 + .space 0xc + + .global UNK_021C59F4 +UNK_021C59F4: ; 0x021C59F4 + .space 0x8 + + .global UNK_021C59FC +UNK_021C59FC: ; 0x021C59FC + .space 0x4 + + .global UNK_021C5A00 +UNK_021C5A00: ; 0x021C5A00 + .space 0x4 + + .global UNK_021C5A04 +UNK_021C5A04: ; 0x021C5A04 + .space 0x4 + + .global UNK_021C5A08 +UNK_021C5A08: ; 0x021C5A08 + .space 0x4 + + .global UNK_021C5A0C +UNK_021C5A0C: ; 0x021C5A0C + .space 0x4 + + .global UNK_021C5A10 +UNK_021C5A10: ; 0x021C5A10 + .space 0x4 + + .global UNK_021C5A14 +UNK_021C5A14: ; 0x021C5A14 + .space 0x8 + + .global UNK_021C5A1C +UNK_021C5A1C: ; 0x021C5A1C + .space 0x4c + + .global UNK_021C5A68 +UNK_021C5A68: ; 0x021C5A68 + .space 0x4 + + .global UNK_021C5A6C +UNK_021C5A6C: ; 0x021C5A6C + .space 0x4 + + .global UNK_021C5A70 +UNK_021C5A70: ; 0x021C5A70 + .space 0xc + + .global UNK_021C5A7C +UNK_021C5A7C: ; 0x021C5A7C + .space 0x40 + + .global UNK_021C5ABC +UNK_021C5ABC: ; 0x021C5ABC + .space 0x4 + + .global UNK_021C5AC0 +UNK_021C5AC0: ; 0x021C5AC0 + .space 0x4 + + .global UNK_021C5AC4 +UNK_021C5AC4: ; 0x021C5AC4 + .space 0x190 + + .global UNK_021C5C54 +UNK_021C5C54: ; 0x021C5C54 + .space 0x4 + + .global UNK_021C5C58 +UNK_021C5C58: ; 0x021C5C58 + .space 0x3000 + + .global UNK_021C8C58 +UNK_021C8C58: ; 0x021C8C58 + .space 0x4 + + .global UNK_021C8C5C +UNK_021C8C5C: ; 0x021C8C5C + .space 0x4 + + .global UNK_021C8C60 +UNK_021C8C60: ; 0x021C8C60 + .space 0x4 + + .global UNK_021C8C64 +UNK_021C8C64: ; 0x021C8C64 + .space 0x4 + + .global UNK_021C8C68 +UNK_021C8C68: ; 0x021C8C68 + .space 0x4 + + .global UNK_021C8C6C +UNK_021C8C6C: ; 0x021C8C6C + .space 0x4 diff --git a/arm9/data/bss_2.s b/arm9/data/bss_2.s new file mode 100644 index 00000000..5c9d538b --- /dev/null +++ b/arm9/data/bss_2.s @@ -0,0 +1,1133 @@ + .section .bss + + .global UNK_021C8C78 +UNK_021C8C78: ; 0x021C8C78 + .space 0x4 + + .global UNK_021C8C7C +UNK_021C8C7C: ; 0x021C8C7C + .space 0x4 + + .global UNK_021C8C80 +UNK_021C8C80: ; 0x021C8C80 + .space 0x4 + + .global UNK_021C8C84 +UNK_021C8C84: ; 0x021C8C84 + .space 0x5 + + .global UNK_021C8C89 +UNK_021C8C89: ; 0x021C8C89 + .space 0x1 + + .global UNK_021C8C8A +UNK_021C8C8A: ; 0x021C8C8A + .space 0x4 + + .global UNK_021C8C8E +UNK_021C8C8E: ; 0x021C8C8E + .space 0x2 + + .global UNK_021C8C90 +UNK_021C8C90: ; 0x021C8C90 + .space 0x10 + + .global UNK_021C8CA0 +UNK_021C8CA0: ; 0x021C8CA0 + .space 0x20 + + .global UNK_021C8CC0 +UNK_021C8CC0: ; 0x021C8CC0 + .space 0x4 + + .global UNK_021C8CC4 +UNK_021C8CC4: ; 0x021C8CC4 + .space 0x4 + + .global UNK_021C8CC8 +UNK_021C8CC8: ; 0x021C8CC8 + .space 0x4 + + .global UNK_021C8CCC +UNK_021C8CCC: ; 0x021C8CCC + .space 0x4 + + .global UNK_021C8CD0 +UNK_021C8CD0: ; 0x021C8CD0 + .space 0x4 + + .global UNK_021C8CD4 +UNK_021C8CD4: ; 0x021C8CD4 + .space 0x30 + + .global UNK_021C8D04 +UNK_021C8D04: ; 0x021C8D04 + .space 0x4 + + .global UNK_021C8D08 +UNK_021C8D08: ; 0x021C8D08 + .space 0x20 + + .global UNK_021C8D28 +UNK_021C8D28: ; 0x021C8D28 + .space 0x8 + + .global UNK_021C8D30 +UNK_021C8D30: ; 0x021C8D30 + .space 0x4 + + .global UNK_021C8D34 +UNK_021C8D34: ; 0x021C8D34 + .space 0x4 + + .global UNK_021C8D38 +UNK_021C8D38: ; 0x021C8D38 + .space 0x4 + + .global UNK_021C8D3C +UNK_021C8D3C: ; 0x021C8D3C + .space 0x4 + + .global UNK_021C8D40 +UNK_021C8D40: ; 0x021C8D40 + .space 0x4 + + .global UNK_021C8D44 +UNK_021C8D44: ; 0x021C8D44 + .space 0x8 + + .global UNK_021C8D4C +UNK_021C8D4C: ; 0x021C8D4C + .space 0x10 + + .global UNK_021C8D5C +UNK_021C8D5C: ; 0x021C8D5C + .space 0x10 + + .global UNK_021C8D6C +UNK_021C8D6C: ; 0x021C8D6C + .space 0x38 + + .global UNK_021C8DA4 +UNK_021C8DA4: ; 0x021C8DA4 + .space 0x104 + + .global UNK_021C8EA8 +UNK_021C8EA8: ; 0x021C8EA8 + .space 0x4 + + .global UNK_021C8EAC +UNK_021C8EAC: ; 0x021C8EAC + .space 0x4 + + .global UNK_021C8EB0 +UNK_021C8EB0: ; 0x021C8EB0 + .space 0x4 + + .global UNK_021C8EB4 +UNK_021C8EB4: ; 0x021C8EB4 + .space 0x4 + + .global UNK_021C8EB8 +UNK_021C8EB8: ; 0x021C8EB8 + .space 0x4 + + .global UNK_021C8EBC +UNK_021C8EBC: ; 0x021C8EBC + .space 0x4 + + .global UNK_021C8EC0 +UNK_021C8EC0: ; 0x021C8EC0 + .space 0x4 + + .global UNK_021C8EC4 +UNK_021C8EC4: ; 0x021C8EC4 + .space 0x4 + + .global UNK_021C8EC8 +UNK_021C8EC8: ; 0x021C8EC8 + .space 0x4 + + .global UNK_021C8ECC +UNK_021C8ECC: ; 0x021C8ECC + .space 0x4 + + .global UNK_021C8ED0 +UNK_021C8ED0: ; 0x021C8ED0 + .space 0x4 + + .global UNK_021C8ED4 +UNK_021C8ED4: ; 0x021C8ED4 + .space 0x4 + + .global UNK_021C8ED8 +UNK_021C8ED8: ; 0x021C8ED8 + .space 0x4 + + .global UNK_021C8EDC +UNK_021C8EDC: ; 0x021C8EDC + .space 0x4 + + .global UNK_021C8EE0 +UNK_021C8EE0: ; 0x021C8EE0 + .space 0x4 + + .global UNK_021C8EE4 +UNK_021C8EE4: ; 0x021C8EE4 + .space 0x4 + + .global UNK_021C8EE8 +UNK_021C8EE8: ; 0x021C8EE8 + .space 0x4 + + .global UNK_021C8EEC +UNK_021C8EEC: ; 0x021C8EEC + .space 0x4 + + .global UNK_021C8EF0 +UNK_021C8EF0: ; 0x021C8EF0 + .space 0x4 + + .global UNK_021C8EF4 +UNK_021C8EF4: ; 0x021C8EF4 + .space 0x4 + + .global UNK_021C8EF8 +UNK_021C8EF8: ; 0x021C8EF8 + .space 0x4 + + .global UNK_021C8EFC +UNK_021C8EFC: ; 0x021C8EFC + .space 0x4 + + .global UNK_021C8F00 +UNK_021C8F00: ; 0x021C8F00 + .space 0x4 + + .global UNK_021C8F04 +UNK_021C8F04: ; 0x021C8F04 + .space 0x4 + + .global UNK_021C8F08 +UNK_021C8F08: ; 0x021C8F08 + .space 0x4 + + .global UNK_021C8F0C +UNK_021C8F0C: ; 0x021C8F0C + .space 0x4 + + .global UNK_021C8F10 +UNK_021C8F10: ; 0x021C8F10 + .space 0x4 + + .global UNK_021C8F14 +UNK_021C8F14: ; 0x021C8F14 + .space 0x8 + + .global UNK_021C8F1C +UNK_021C8F1C: ; 0x021C8F1C + .space 0x8 + + .global UNK_021C8F24 +UNK_021C8F24: ; 0x021C8F24 + .space 0x3a + + .global UNK_021C8F5E +UNK_021C8F5E: ; 0x021C8F5E + .space 0x1a + + .global UNK_021C8F78 +UNK_021C8F78: ; 0x021C8F78 + .space 0xa + + .global UNK_021C8F82 +UNK_021C8F82: ; 0x021C8F82 + .space 0x56 + + .global UNK_021C8FD8 +UNK_021C8FD8: ; 0x021C8FD8 + .space 0x64 + + .global UNK_021C903C +UNK_021C903C: ; 0x021C903C + .space 0x64 + + .global UNK_021C90A0 +UNK_021C90A0: ; 0x021C90A0 + .space 0xc0 + + .global UNK_021C9160 +UNK_021C9160: ; 0x021C9160 + .space 0xc0 + + .global UNK_021C9220 +UNK_021C9220: ; 0x021C9220 + .space 0x2a + + .global UNK_021C924A +UNK_021C924A: ; 0x021C924A + .space 0x156 + + .global UNK_021C93A0 +UNK_021C93A0: ; 0x021C93A0 + .space 0x180 + + .global UNK_021C9520 +UNK_021C9520: ; 0x021C9520 + .space 0x9c0 + + .global UNK_021C9EE0 +UNK_021C9EE0: ; 0x021C9EE0 + .space 0x800 + + .global UNK_021CA6E0 +UNK_021CA6E0: ; 0x021CA6E0 + .space 0x4 + + .global UNK_021CA6E4 +UNK_021CA6E4: ; 0x021CA6E4 + .space 0x4 + + .global UNK_021CA6E8 +UNK_021CA6E8: ; 0x021CA6E8 + .space 0x13 + + .global UNK_021CA6FB +UNK_021CA6FB: ; 0x021CA6FB + .space 0x1 + + .global UNK_021CA6FC +UNK_021CA6FC: ; 0x021CA6FC + .space 0x170 + + .global UNK_021CA86C +UNK_021CA86C: ; 0x021CA86C + .space 0x4 + + .global UNK_021CA870 +UNK_021CA870: ; 0x021CA870 + .space 0x4 + + .global UNK_021CA874 +UNK_021CA874: ; 0x021CA874 + .space 0x8 + + .global UNK_021CA87C +UNK_021CA87C: ; 0x021CA87C + .space 0x20 + + .global UNK_021CA89C +UNK_021CA89C: ; 0x021CA89C + .space 0x4 + + .global UNK_021CA8A0 +UNK_021CA8A0: ; 0x021CA8A0 + .space 0x10 + + .global UNK_021CA8B0 +UNK_021CA8B0: ; 0x021CA8B0 + .space 0x4 + + .global UNK_021CA8B4 +UNK_021CA8B4: ; 0x021CA8B4 + .space 0x4 + + .global UNK_021CA8B8 +UNK_021CA8B8: ; 0x021CA8B8 + .space 0x4 + + .global UNK_021CA8BC +UNK_021CA8BC: ; 0x021CA8BC + .space 0x4 + + .global UNK_021CA8C0 +UNK_021CA8C0: ; 0x021CA8C0 + .space 0x4 + + .global UNK_021CA8C4 +UNK_021CA8C4: ; 0x021CA8C4 + .space 0x4 + + .global UNK_021CA8C8 +UNK_021CA8C8: ; 0x021CA8C8 + .space 0x4 + + .global UNK_021CA8CC +UNK_021CA8CC: ; 0x021CA8CC + .space 0x4 + + .global UNK_021CA8D0 +UNK_021CA8D0: ; 0x021CA8D0 + .space 0x4 + + .global UNK_021CA8D4 +UNK_021CA8D4: ; 0x021CA8D4 + .space 0x4 + + .global UNK_021CA8D8 +UNK_021CA8D8: ; 0x021CA8D8 + .space 0x4 + + .global UNK_021CA8DC +UNK_021CA8DC: ; 0x021CA8DC + .space 0xc + + .global UNK_021CA8E8 +UNK_021CA8E8: ; 0x021CA8E8 + .space 0x1bc + + .global UNK_021CAAA4 +UNK_021CAAA4: ; 0x021CAAA4 + .space 0x45c + + .global UNK_021CAF00 +UNK_021CAF00: ; 0x021CAF00 + .space 0x8d8 + + .global UNK_021CB7D8 +UNK_021CB7D8: ; 0x021CB7D8 + .space 0x4 + + .global UNK_021CB7DC +UNK_021CB7DC: ; 0x021CB7DC + .space 0x4 + + .global UNK_021CB7E0 +UNK_021CB7E0: ; 0x021CB7E0 + .space 0xc + + .global UNK_021CB7EC +UNK_021CB7EC: ; 0x021CB7EC + .space 0x4 + + .global UNK_021CB7F0 +UNK_021CB7F0: ; 0x021CB7F0 + .space 0xc + + .global UNK_021CB7FC +UNK_021CB7FC: ; 0x021CB7FC + .space 0xc + + .global UNK_021CB808 +UNK_021CB808: ; 0x021CB808 + .space 0xc + + .global UNK_021CB814 +UNK_021CB814: ; 0x021CB814 + .space 0x4 + + .global UNK_021CB818 +UNK_021CB818: ; 0x021CB818 + .space 0x4 + + .global UNK_021CB81C +UNK_021CB81C: ; 0x021CB81C + .space 0x8 + + .global UNK_021CB824 +UNK_021CB824: ; 0x021CB824 + .space 0x14 + + .global UNK_021CB838 +UNK_021CB838: ; 0x021CB838 + .space 0x18 + + .global UNK_021CB850 +UNK_021CB850: ; 0x021CB850 + .space 0x18 + + .global UNK_021CB868 +UNK_021CB868: ; 0x021CB868 + .space 0x4 + + .global UNK_021CB86C +UNK_021CB86C: ; 0x021CB86C + .space 0x4 + + .global UNK_021CB870 +UNK_021CB870: ; 0x021CB870 + .space 0x4 + + .global UNK_021CB874 +UNK_021CB874: ; 0x021CB874 + .space 0x4 + + .global UNK_021CB878 +UNK_021CB878: ; 0x021CB878 + .space 0x4 + + .global UNK_021CB87C +UNK_021CB87C: ; 0x021CB87C + .space 0x4 + + .global UNK_021CB880 +UNK_021CB880: ; 0x021CB880 + .space 0x10 + + .global UNK_021CB890 +UNK_021CB890: ; 0x021CB890 + .space 0x4 + + .global UNK_021CB894 +UNK_021CB894: ; 0x021CB894 + .space 0x4 + + .global UNK_021CB898 +UNK_021CB898: ; 0x021CB898 + .space 0x4 + + .global UNK_021CB89C +UNK_021CB89C: ; 0x021CB89C + .space 0x4 + + .global UNK_021CB8A0 +UNK_021CB8A0: ; 0x021CB8A0 + .space 0x4 + + .global UNK_021CB8A4 +UNK_021CB8A4: ; 0x021CB8A4 + .space 0x18 + + .global UNK_021CB8BC +UNK_021CB8BC: ; 0x021CB8BC + .space 0x18 + + .global UNK_021CB8D4 +UNK_021CB8D4: ; 0x021CB8D4 + .space 0x440 + + .global UNK_021CBD14 +UNK_021CBD14: ; 0x021CBD14 + .space 0x1000 + + .global UNK_021CCD14 +UNK_021CCD14: ; 0x021CCD14 + .space 0x4 + + .global UNK_021CCD18 +UNK_021CCD18: ; 0x021CCD18 + .space 0x4 + + .global UNK_021CCD1C +UNK_021CCD1C: ; 0x021CCD1C + .space 0x4 + + .global UNK_021CCD20 +UNK_021CCD20: ; 0x021CCD20 + .space 0x18 + + .global UNK_021CCD38 +UNK_021CCD38: ; 0x021CCD38 + .space 0x4 + + .global UNK_021CCD3C +UNK_021CCD3C: ; 0x021CCD3C + .space 0xc + + .global UNK_021CCD48 +UNK_021CCD48: ; 0x021CCD48 + .space 0x4 + + .global UNK_021CCD4C +UNK_021CCD4C: ; 0x021CCD4C + .space 0xc + + .global UNK_021CCD58 +UNK_021CCD58: ; 0x021CCD58 + .space 0x14 + + .global UNK_021CCD6C +UNK_021CCD6C: ; 0x021CCD6C + .space 0x4 + + .global UNK_021CCD70 +UNK_021CCD70: ; 0x021CCD70 + .space 0x4 + + .global UNK_021CCD74 +UNK_021CCD74: ; 0x021CCD74 + .space 0x14 + + .global UNK_021CCD88 +UNK_021CCD88: ; 0x021CCD88 + .space 0x4 + + .global UNK_021CCD8C +UNK_021CCD8C: ; 0x021CCD8C + .space 0x10 + + .global UNK_021CCD9C +UNK_021CCD9C: ; 0x021CCD9C + .space 0x4 + + .global UNK_021CCDA0 +UNK_021CCDA0: ; 0x021CCDA0 + .space 0x100 + + .global UNK_021CCEA0 +UNK_021CCEA0: ; 0x021CCEA0 + .space 0x400 + + .global UNK_021CD2A0 +UNK_021CD2A0: ; 0x021CD2A0 + .space 0x40 + + .global UNK_021CD2E0 +UNK_021CD2E0: ; 0x021CD2E0 + .space 0x100 + + .global UNK_021CD3E0 +UNK_021CD3E0: ; 0x021CD3E0 + .space 0x400 + + .global UNK_021CD7E0 +UNK_021CD7E0: ; 0x021CD7E0 + .space 0x40 + + .global UNK_021CD820 +UNK_021CD820: ; 0x021CD820 + .space 0x100 + + .global UNK_021CD920 +UNK_021CD920: ; 0x021CD920 + .space 0x400 + + .global UNK_021CDD20 +UNK_021CDD20: ; 0x021CDD20 + .space 0x40 + + .global UNK_021CDD60 +UNK_021CDD60: ; 0x021CDD60 + .space 0x4 + + .global UNK_021CDD64 +UNK_021CDD64: ; 0x021CDD64 + .space 0x4 + + .global UNK_021CDD68 +UNK_021CDD68: ; 0x021CDD68 + .space 0x4 + + .global UNK_021CDD6C +UNK_021CDD6C: ; 0x021CDD6C + .space 0x4 + + .global UNK_021CDD70 +UNK_021CDD70: ; 0x021CDD70 + .space 0x4 + + .global UNK_021CDD74 +UNK_021CDD74: ; 0x021CDD74 + .space 0x80 + + .global UNK_021CDDF4 +UNK_021CDDF4: ; 0x021CDDF4 + .space 0x4 + + .global UNK_021CDDF8 +UNK_021CDDF8: ; 0x021CDDF8 + .space 0xfc + + .global UNK_021CDEF4 +UNK_021CDEF4: ; 0x021CDEF4 + .space 0x10 + + .global UNK_021CDF04 +UNK_021CDF04: ; 0x021CDF04 + .space 0x4 + + .global UNK_021CDF08 +UNK_021CDF08: ; 0x021CDF08 + .space 0x2ec + + .global UNK_021CE1F4 +UNK_021CE1F4: ; 0x021CE1F4 + .space 0x300 + + .global UNK_021CE4F4 +UNK_021CE4F4: ; 0x021CE4F4 + .space 0x400 + + .global UNK_021CE8F4 +UNK_021CE8F4: ; 0x021CE8F4 + .space 0x4 + + .global UNK_021CE8F8 +UNK_021CE8F8: ; 0x021CE8F8 + .space 0x404 + + .global UNK_021CECFC +UNK_021CECFC: ; 0x021CECFC + .space 0x4 + + .global UNK_021CED00 +UNK_021CED00: ; 0x021CED00 + .space 0x4 + + .global UNK_021CED04 +UNK_021CED04: ; 0x021CED04 + .space 0x4 + + .global UNK_021CED08 +UNK_021CED08: ; 0x021CED08 + .space 0x4 + + .global UNK_021CED0C +UNK_021CED0C: ; 0x021CED0C + .space 0x4 + + .global UNK_021CED10 +UNK_021CED10: ; 0x021CED10 + .space 0x4 + + .global UNK_021CED14 +UNK_021CED14: ; 0x021CED14 + .space 0x4 + + .global UNK_021CED18 +UNK_021CED18: ; 0x021CED18 + .space 0x8 + + .global UNK_021CED20 +UNK_021CED20: ; 0x021CED20 + .space 0x44 + + .global UNK_021CED64 +UNK_021CED64: ; 0x021CED64 + .space 0x34 + + .global UNK_021CED98 +UNK_021CED98: ; 0x021CED98 + .space 0x28 + + .global UNK_021CEDC0 +UNK_021CEDC0: ; 0x021CEDC0 + .space 0x14 + + .global UNK_021CEDD4 +UNK_021CEDD4: ; 0x021CEDD4 + .space 0x24 + + .global UNK_021CEDF8 +UNK_021CEDF8: ; 0x021CEDF8 + .space 0xc + + .global UNK_021CEE04 +UNK_021CEE04: ; 0x021CEE04 + .space 0x14 + + .global UNK_021CEE18 +UNK_021CEE18: ; 0x021CEE18 + .space 0x30 + + .global UNK_021CEE48 +UNK_021CEE48: ; 0x021CEE48 + .space 0x30 + + .global UNK_021CEE78 +UNK_021CEE78: ; 0x021CEE78 + .space 0xe0 + + .global UNK_021CEF58 +UNK_021CEF58: ; 0x021CEF58 + .space 0xc + + .global UNK_021CEF64 +UNK_021CEF64: ; 0x021CEF64 + .space 0xc + + .global UNK_021CEF70 +UNK_021CEF70: ; 0x021CEF70 + .space 0xc + + .global UNK_021CEF7C +UNK_021CEF7C: ; 0x021CEF7C + .space 0x4 + + .global UNK_021CEF80 +UNK_021CEF80: ; 0x021CEF80 + .space 0xe00 + + .global UNK_021CFD80 +UNK_021CFD80: ; 0x021CFD80 + .space 0x4 + + .global UNK_021CFD84 +UNK_021CFD84: ; 0x021CFD84 + .space 0x4 + + .global UNK_021CFD88 +UNK_021CFD88: ; 0x021CFD88 + .space 0x4 + + .global UNK_021CFD8C +UNK_021CFD8C: ; 0x021CFD8C + .space 0x4 + + .global UNK_021CFD90 +UNK_021CFD90: ; 0x021CFD90 + .space 0x4 + + .global UNK_021CFD94 +UNK_021CFD94: ; 0x021CFD94 + .space 0x2ba + + .global UNK_021D004E +UNK_021D004E: ; 0x021D004E + .space 0x332 + + .global UNK_021D0380 +UNK_021D0380: ; 0x021D0380 + .space 0x40 + + .global UNK_021D03C0 +UNK_021D03C0: ; 0x021D03C0 + .space 0xb42 + + .global UNK_021D0F02 +UNK_021D0F02: ; 0x021D0F02 + .space 0xd7e + + .global UNK_021D1C80 +UNK_021D1C80: ; 0x021D1C80 + .space 0x4 + + .global UNK_021D1C84 +UNK_021D1C84: ; 0x021D1C84 + .space 0x4 + + .global UNK_021D1C88 +UNK_021D1C88: ; 0x021D1C88 + .space 0x4 + + .global UNK_021D1C8C +UNK_021D1C8C: ; 0x021D1C8C + .space 0x4 + + .global UNK_021D1C90 +UNK_021D1C90: ; 0x021D1C90 + .space 0x4 + + .global UNK_021D1C94 +UNK_021D1C94: ; 0x021D1C94 + .space 0x4 + + .global UNK_021D1C98 +UNK_021D1C98: ; 0x021D1C98 + .space 0xc + + .global UNK_021D1CA4 +UNK_021D1CA4: ; 0x021D1CA4 + .space 0xc + + .global UNK_021D1CB0 +UNK_021D1CB0: ; 0x021D1CB0 + .space 0x4 + + .global UNK_021D1CB4 +UNK_021D1CB4: ; 0x021D1CB4 + .space 0x4 + + .global UNK_021D1CB8 +UNK_021D1CB8: ; 0x021D1CB8 + .space 0x4 + + .global UNK_021D1CBC +UNK_021D1CBC: ; 0x021D1CBC + .space 0x140 + + .global UNK_021D1DFC +UNK_021D1DFC: ; 0x021D1DFC + .space 0xc + + .global UNK_021D1E08 +UNK_021D1E08: ; 0x021D1E08 + .space 0xc + + .global UNK_021D1E14 +UNK_021D1E14: ; 0x021D1E14 + .space 0x440 + + .global UNK_021D2254 +UNK_021D2254: ; 0x021D2254 + .space 0x8 + + .global UNK_021D225C +UNK_021D225C: ; 0x021D225C + .space 0x10 + + .global UNK_021D226C +UNK_021D226C: ; 0x021D226C + .space 0x4 + + .global UNK_021D2270 +UNK_021D2270: ; 0x021D2270 + .space 0x4 + + .global UNK_021D2274 +UNK_021D2274: ; 0x021D2274 + .space 0x460 + + .global UNK_021D26D4 +UNK_021D26D4: ; 0x021D26D4 + .space 0x4 + + .global UNK_021D26D8 +UNK_021D26D8: ; 0x021D26D8 + .space 0xc + + .global UNK_021D26E4 +UNK_021D26E4: ; 0x021D26E4 + .space 0x40 + + .global UNK_021D2724 +UNK_021D2724: ; 0x021D2724 + .space 0x80 + + .global UNK_021D27A4 +UNK_021D27A4: ; 0x021D27A4 + .space 0x4 + + .global UNK_021D27A8 +UNK_021D27A8: ; 0x021D27A8 + .space 0x4 + + .global UNK_021D27AC +UNK_021D27AC: ; 0x021D27AC + .space 0x20 + + .global UNK_021D27CC +UNK_021D27CC: ; 0x021D27CC + .space 0x54 + + .global UNK_021D2820 +UNK_021D2820: ; 0x021D2820 + .space 0xa0 + + .global UNK_021D28C0 +UNK_021D28C0: ; 0x021D28C0 + .space 0x4 + + .global UNK_021D28C4 +UNK_021D28C4: ; 0x021D28C4 + .space 0x3c + + .global UNK_021D2900 +UNK_021D2900: ; 0x021D2900 + .space 0x4 + + .global UNK_021D2904 +UNK_021D2904: ; 0x021D2904 + .space 0x4d4 + + .global UNK_021D2DD8 +UNK_021D2DD8: ; 0x021D2DD8 + .space 0x18 + + .global UNK_021D2DF0 +UNK_021D2DF0: ; 0x021D2DF0 + .space 0xc + + .global UNK_021D2DFC +UNK_021D2DFC: ; 0x021D2DFC + .space 0x5c0 + + .global UNK_021D33BC +UNK_021D33BC: ; 0x021D33BC + .space 0x4 + + .global UNK_021D33C0 +UNK_021D33C0: ; 0x021D33C0 + .space 0x4 + + .global UNK_021D33C4 +UNK_021D33C4: ; 0x021D33C4 + .space 0x2 + + .global UNK_021D33C6 +UNK_021D33C6: ; 0x021D33C6 + .space 0x2 + + .global UNK_021D33C8 +UNK_021D33C8: ; 0x021D33C8 + .space 0x2 + + .global UNK_021D33CA +UNK_021D33CA: ; 0x021D33CA + .space 0x2 + + .global UNK_021D33CC +UNK_021D33CC: ; 0x021D33CC + .space 0x2 + + .global UNK_021D33CE +UNK_021D33CE: ; 0x021D33CE + .space 0x2 + + .global UNK_021D33D0 +UNK_021D33D0: ; 0x021D33D0 + .space 0x2 + + .global UNK_021D33D2 +UNK_021D33D2: ; 0x021D33D2 + .space 0x2 + + .global UNK_021D33D4 +UNK_021D33D4: ; 0x021D33D4 + .space 0x2 + + .global UNK_021D33D6 +UNK_021D33D6: ; 0x021D33D6 + .space 0x2 + + .global UNK_021D33D8 +UNK_021D33D8: ; 0x021D33D8 + .space 0x2 + + .global UNK_021D33DA +UNK_021D33DA: ; 0x021D33DA + .space 0x2 + + .global UNK_021D33DC +UNK_021D33DC: ; 0x021D33DC + .space 0x4 + + .global UNK_021D33E0 +UNK_021D33E0: ; 0x021D33E0 + .space 0x4 + + .global UNK_021D33E4 +UNK_021D33E4: ; 0x021D33E4 + .space 0x4 + + .global UNK_021D33E8 +UNK_021D33E8: ; 0x021D33E8 + .space 0x4 + + .global UNK_021D33EC +UNK_021D33EC: ; 0x021D33EC + .space 0x4 + + .global UNK_021D33F0 +UNK_021D33F0: ; 0x021D33F0 + .space 0x4 + + .global UNK_021D33F4 +UNK_021D33F4: ; 0x021D33F4 + .space 0x4 + + .global UNK_021D33F8 +UNK_021D33F8: ; 0x021D33F8 + .space 0x4 + + .global UNK_021D33FC +UNK_021D33FC: ; 0x021D33FC + .space 0x4 + + .global UNK_021D3400 +UNK_021D3400: ; 0x021D3400 + .space 0x4 + + .global UNK_021D3404 +UNK_021D3404: ; 0x021D3404 + .space 0x4 + + .global UNK_021D3408 +UNK_021D3408: ; 0x021D3408 + .space 0x4 + + .global UNK_021D340C +UNK_021D340C: ; 0x021D340C + .space 0x4 + + .global UNK_021D3410 +UNK_021D3410: ; 0x021D3410 + .space 0x4 + + .global UNK_021D3414 +UNK_021D3414: ; 0x021D3414 + .space 0x4 + + .global UNK_021D3418 +UNK_021D3418: ; 0x021D3418 + .space 0x4 + + .global OSi_IrqCallbackInfo +OSi_IrqCallbackInfo: ; 0x021D341C + .space 0x4 + + .global UNK_021D3420 +UNK_021D3420: ; 0x021D3420 + .space 0x4 + + .global UNK_021D3424 +UNK_021D3424: ; 0x021D3424 + .space 0x28 + + .global UNK_021D344C +UNK_021D344C: ; 0x021D344C + .space 0x4 + + .global UNK_021D3450 +UNK_021D3450: ; 0x021D3450 + .space 0x4 + + .global UNK_021D3454 +UNK_021D3454: ; 0x021D3454 + .space 0x28 + + .global isInitialized +isInitialized: ; 0x021D347C + .space 0x4 + + .global OSi_StackForDestructor +OSi_StackForDestructor: ; 0x021D3480 + .space 0x4 + + .global OSi_RescheduleCount +OSi_RescheduleCount: ; 0x021D3484 + .space 0x4 + + .global OSi_ThreadIdCount +OSi_ThreadIdCount: ; 0x021D3488 + .space 0x4 + + .global OSi_SystemCallbackInSwitchThread +OSi_SystemCallbackInSwitchThread: ; 0x021D348C + .space 0x4 + + .global OSi_CurrentThreadPtr +OSi_CurrentThreadPtr: ; 0x021D3490 + .space 0x4 + + .global OSi_IsThreadInitialized +OSi_IsThreadInitialized: ; 0x021D3494 + .space 0x4 + + .global OSi_ThreadInfo +OSi_ThreadInfo: ; 0x021D3498 + .space 0x4 + + .global UNK_021D349C +UNK_021D349C: ; 0x021D349C + .space 0xc + + .global OSi_IdleThread +OSi_IdleThread: ; 0x021D34A8 + .space 0xc0 + + .global OSi_LauncherThread +OSi_LauncherThread: ; 0x021D3568 + .space 0xC0 + + .global OSi_IdleThreadStack +OSi_IdleThreadStack: ; 0x021D3628 + .space 0xC8 + + .global OSi_Initialized +OSi_Initialized: ; 0x021D36F0 + .space 0x4 + + .global OSi_MainExArenaEnabled +OSi_MainExArenaEnabled: ; 0x021D36F4 + .space 0x4 diff --git a/arm9/data/bss_3.s b/arm9/data/bss_3.s new file mode 100644 index 00000000..438d87f1 --- /dev/null +++ b/arm9/data/bss_3.s @@ -0,0 +1,157 @@ + .section .bss + + .global OSi_UserExceptionHandler +OSi_UserExceptionHandler: ; 0x021D371C + .space 0x4 + + .global OSi_UserExceptionHandlerArg +OSi_UserExceptionHandlerArg: ; 0x021D3720 + .space 0x4 + + .global OSi_DebuggerHandler +OSi_DebuggerHandler: ; 0x021D3724 + .space 0x4 + + .global OSi_ExContext +OSi_ExContext: ; 0x021D3728 + .space 0x80 + + .global OSi_TimerReserved +OSi_TimerReserved: ; 0x021D37A8 + .space 0x4 + + .global OSi_UseTick +OSi_UseTick: ; 0x021D37AC + .space 0x4 + + .global OSi_NeedResetTimer +OSi_NeedResetTimer: ; 0x021D37B0 + .space 0x4 + + .global OSi_TickCounter +OSi_TickCounter: ; 0x021D37B4 + .space 0x8 + + .global OSi_UseAlarm +OSi_UseAlarm: ; 0x021D37BC + .space 0x4 + + .global OSi_AlarmQueue +OSi_AlarmQueue: ; 0x021D37C0 + .space 0x8 + + .global OSi_UseVAlarm +OSi_UseVAlarm: ; 0x021D37C8 + .space 0x4 + + .global OSi_PreviousVCount +OSi_PreviousVCount: ; 0x021D37CC + .space 0x4 + + .global OSi_VFrameCount +OSi_VFrameCount: ; 0x021D37D0 + .space 0x4 + + .global OSi_VAlarmQueue +OSi_VAlarmQueue: ; 0x021D37D4 + .space 0x8 + + .global OSi_IsInitReset +OSi_IsInitReset: ; 0x021D37DC + .space 0x4 + + .global OSi_IsResetOccurred +OSi_IsResetOccurred: ; 0x021D37E0 + .space 0x4 + + .global OSi_vramExclusive +OSi_vramExclusive: ; 0x021D37E4 + .space 0x4 + + .global OSi_vramLockId +OSi_vramLockId: ; 0x021D37E8 + .space 0x14 + + .global UNK_021D37FC +UNK_021D37FC: ; 0x021D37FC + .space 0x20 + + .global UNK_021D381C +UNK_021D381C: ; 0x021D381C + .space 0x4 + + .global UNK_021D3820 +UNK_021D3820: ; 0x021D3820 + .space 0x18 + + .global UNK_021D3838 +UNK_021D3838: ; 0x021D3838 + .space 0x4 + + .global UNK_021D383C +UNK_021D383C: ; 0x021D383C + .space 0x4 + + .global UNK_021D3840 +UNK_021D3840: ; 0x021D3840 + .space 0x4 + + .global UNK_021D3844 +UNK_021D3844: ; 0x021D3844 + .space 0x4 + + .global UNK_021D3848 +UNK_021D3848: ; 0x021D3848 + .space 0x4 + + .global UNK_021D384C +UNK_021D384C: ; 0x021D384C + .space 0x4 + + .global UNK_021D3850 +UNK_021D3850: ; 0x021D3850 + .space 0x4 + + .global UNK_021D3854 +UNK_021D3854: ; 0x021D3854 + .space 0x4 + + .global UNK_021D3858 +UNK_021D3858: ; 0x021D3858 + .space 0x4 + + .global UNK_021D385C +UNK_021D385C: ; 0x021D385C + .space 0x24 + + .global UNK_021D3880 +UNK_021D3880: ; 0x021D3880 + .space 0x280 + + .global UNK_021D3B00 +UNK_021D3B00: ; 0x021D3B00 + .space 0x1000 + + .global UNK_021D4B00 +UNK_021D4B00: ; 0x021D4B00 + .space 0x7e8 + + .global UNK_021D52E8 +UNK_021D52E8: ; 0x021D52E8 + .space 0x18 + + .global UNK_021D5300 +UNK_021D5300: ; 0x021D5300 + .space 0x60 + + .global UNK_021D5360 +UNK_021D5360: ; 0x021D5360 + .space 0x4 + + .global UNK_021D5364 +UNK_021D5364: ; 0x021D5364 + .space 0x4 + + .global UNK_021D5368 +UNK_021D5368: ; 0x021D5368 + .space 0x80 diff --git a/arm9/data/bss_4.s b/arm9/data/bss_4.s new file mode 100644 index 00000000..76961150 --- /dev/null +++ b/arm9/data/bss_4.s @@ -0,0 +1,297 @@ + .section .bss + + .global UNK_021D5470 +UNK_021D5470: ; 0x021D5470 + .space 0x4 + + .global UNK_021D5474 +UNK_021D5474: ; 0x021D5474 + .space 0x18 + + .global UNK_021D548C +UNK_021D548C: ; 0x021D548C + .space 0x20 + + .global UNK_021D54AC +UNK_021D54AC: ; 0x021D54AC + .space 0x4 + + .global UNK_021D54B0 +UNK_021D54B0: ; 0x021D54B0 + .space 0x1c + + .global UNK_021D54CC +UNK_021D54CC: ; 0x021D54CC + .space 0x4 + + .global UNK_021D54D0 +UNK_021D54D0: ; 0x021D54D0 + .space 0x4 + + .global UNK_021D54D4 +UNK_021D54D4: ; 0x021D54D4 + .space 0x4 + + .global UNK_021D54D8 +UNK_021D54D8: ; 0x021D54D8 + .space 0x4 + + .global UNK_021D54DC +UNK_021D54DC: ; 0x021D54DC + .space 0x4 + + .global UNK_021D54E0 +UNK_021D54E0: ; 0x021D54E0 + .space 0x4 + + .global UNK_021D54E4 +UNK_021D54E4: ; 0x021D54E4 + .space 0x10 + + .global UNK_021D54F4 +UNK_021D54F4: ; 0x021D54F4 + .space 0x18 + + .global UNK_021D550C +UNK_021D550C: ; 0x021D550C + .space 0x4 + + .global UNK_021D5510 +UNK_021D5510: ; 0x021D5510 + .space 0x24 + + .global UNK_021D5534 +UNK_021D5534: ; 0x021D5534 + .space 0x4 + + .global UNK_021D5538 +UNK_021D5538: ; 0x021D5538 + .space 0x24 + + .global UNK_021D555C +UNK_021D555C: ; 0x021D555C + .space 0x4 + + .global UNK_021D5560 +UNK_021D5560: ; 0x021D5560 + .space 0x60 + + .global cardi_common +cardi_common: ; 0x021D55C0 + .space 0x620 + + .global UNK_021D5BE0 +UNK_021D5BE0: ; 0x021D5BE0 + .space 0x20 + + .global UNK_021D5C00 +UNK_021D5C00: ; 0x021D5C00 + .space 0x220 + + .global UNK_021D5E20 +UNK_021D5E20: ; 0x021D5E20 + .space 0x4 + + .global UNK_021D5E24 +UNK_021D5E24: ; 0x021D5E24 + .space 0x4 + + .global UNK_021D5E28 +UNK_021D5E28: ; 0x021D5E28 + .space 0x4 + + .global UNK_021D5E2C +UNK_021D5E2C: ; 0x021D5E2C + .space 0x4 + + .global UNK_021D5E30 +UNK_021D5E30: ; 0x021D5E30 + .space 0x20 + + .global UNK_021D5E50 +UNK_021D5E50: ; 0x021D5E50 + .space 0x28 + + .global UNK_021D5E78 +UNK_021D5E78: ; 0x021D5E78 + .space 0x14 + + .global UNK_021D5E8C +UNK_021D5E8C: ; 0x021D5E8C + .space 0x10 + + .global UNK_021D5E9C +UNK_021D5E9C: ; 0x021D5E9C + .space 0x24 + + .global UNK_021D5EC0 +UNK_021D5EC0: ; 0x021D5EC0 + .space 0xa00 + + .global UNK_021D68C0 +UNK_021D68C0: ; 0x021D68C0 + .space 0x80 + + .global UNK_021D6940 +UNK_021D6940: ; 0x021D6940 + .space 0x4 + + .global UNK_021D6944 +UNK_021D6944: ; 0x021D6944 + .space 0x4 + + .global UNK_021D6948 +UNK_021D6948: ; 0x021D6948 + .space 0x4 + + .global UNK_021D694C +UNK_021D694C: ; 0x021D694C + .space 0x4 + + .global UNK_021D6950 +UNK_021D6950: ; 0x021D6950 + .space 0x4 + + .global UNK_021D6954 +UNK_021D6954: ; 0x021D6954 + .space 0x4 + + .global UNK_021D6958 +UNK_021D6958: ; 0x021D6958 + .space 0x8 + + .global UNK_021D6960 +UNK_021D6960: ; 0x021D6960 + .space 0x4 + + .global UNK_021D6964 +UNK_021D6964: ; 0x021D6964 + .space 0xbc + + .global UNK_021D6A20 +UNK_021D6A20: ; 0x021D6A20 + .space 0xe8 + + .global UNK_021D6B08 +UNK_021D6B08: ; 0x021D6B08 + .space 0x4 + + .global UNK_021D6B0C +UNK_021D6B0C: ; 0x021D6B0C + .space 0x4 + + .global UNK_021D6B10 +UNK_021D6B10: ; 0x021D6B10 + .space 0x4 + + .global UNK_021D6B14 +UNK_021D6B14: ; 0x021D6B14 + .space 0x4 + + .global UNK_021D6B18 +UNK_021D6B18: ; 0x021D6B18 + .space 0x4 + + .global UNK_021D6B1C +UNK_021D6B1C: ; 0x021D6B1C + .space 0x4 + + .global UNK_021D6B20 +UNK_021D6B20: ; 0x021D6B20 + .space 0x4 + + .global UNK_021D6B24 +UNK_021D6B24: ; 0x021D6B24 + .space 0x4 + + .global UNK_021D6B28 +UNK_021D6B28: ; 0x021D6B28 + .space 0x4 + + .global UNK_021D6B2C +UNK_021D6B2C: ; 0x021D6B2C + .space 0x4 + + .global UNK_021D6B30 +UNK_021D6B30: ; 0x021D6B30 + .space 0x4 + + .global UNK_021D6B34 +UNK_021D6B34: ; 0x021D6B34 + .space 0x4 + + .global UNK_021D6B38 +UNK_021D6B38: ; 0x021D6B38 + .space 0x4 + + .global UNK_021D6B3C +UNK_021D6B3C: ; 0x021D6B3C + .space 0x8 + + .global UNK_021D6B44 +UNK_021D6B44: ; 0x021D6B44 + .space 0x8 + + .global UNK_021D6B4C +UNK_021D6B4C: ; 0x021D6B4C + .space 0x4 + + .global UNK_021D6B50 +UNK_021D6B50: ; 0x021D6B50 + .space 0x4 + + .global UNK_021D6B54 +UNK_021D6B54: ; 0x021D6B54 + .space 0x424 + + .global UNK_021D6F78 +UNK_021D6F78: ; 0x021D6F78 + .space 0x10 + + .global UNK_021D6F88 +UNK_021D6F88: ; 0x021D6F88 + .space 0x100 + + .global UNK_021D7088 +UNK_021D7088: ; 0x021D7088 + .space 0x24 + + .global UNK_021D70AC +UNK_021D70AC: ; 0x021D70AC + .space 0x24 + + .global UNK_021D70D0 +UNK_021D70D0: ; 0x021D70D0 + .space 0x48 + + .global UNK_021D7118 +UNK_021D7118: ; 0x021D7118 + .space 0x60 + + .global UNK_021D7178 +UNK_021D7178: ; 0x021D7178 + .space 0x30 + + .global UNK_021D71A8 +UNK_021D71A8: ; 0x021D71A8 + .space 0x100 + + .global UNK_021D72A8 +UNK_021D72A8: ; 0x021D72A8 + .space 0x100 + + .global UNK_021D73A8 +UNK_021D73A8: ; 0x021D73A8 + .space 0x100 + + .global UNK_021D74A8 +UNK_021D74A8: ; 0x021D74A8 + .space 0x4 + + .global UNK_021D74AC +UNK_021D74AC: ; 0x021D74AC + .space 0x1c + + .global __global_destructor_chain +__global_destructor_chain: ; 0x021D74C8 + .space 0x18 diff --git a/arm9/data/rom2.s b/arm9/data/rom2.s index 9650cc4c..15b44a64 100644 --- a/arm9/data/rom2.s +++ b/arm9/data/rom2.s @@ -4,4 +4,44 @@ .section .rodata -.incbin "baserom.nds", 0xF0710, 0x3F8 ; this does not seem to be code + ; 0x020EC710 + .global UNK_020EC710 +UNK_020EC710: ; 0x020EC710 + .incbin "baserom.nds", 0xf0710, 0x8 + + .global UNK_020EC718 +UNK_020EC718: ; 0x020EC718 + .incbin "baserom.nds", 0xf0718, 0x8 + + .global UNK_020EC720 +UNK_020EC720: ; 0x020EC720 + .incbin "baserom.nds", 0xf0720, 0x8 + + .global UNK_020EC728 +UNK_020EC728: ; 0x020EC728 + .incbin "baserom.nds", 0xf0728, 0x8 + + .global UNK_020EC730 +UNK_020EC730: ; 0x020EC730 + .incbin "baserom.nds", 0xf0730, 0x8 + + .global UNK_020EC738 +UNK_020EC738: ; 0x020EC738 + .incbin "baserom.nds", 0xf0738, 0x8 + + .global UNK_020EC740 +UNK_020EC740: ; 0x020EC740 + .incbin "baserom.nds", 0xf0740, 0x380 + + .global UNK_020ECAC0 +UNK_020ECAC0: ; 0x020ECAC0 + .incbin "baserom.nds", 0xf0ac0, 0x4 + + .global UNK_020ECAC4 +UNK_020ECAC4: ; 0x020ECAC4 + .incbin "baserom.nds", 0xf0ac4, 0x4 + + .global UNK_020ECAC8 +UNK_020ECAC8: ; 0x020ECAC8 + .incbin "baserom.nds", 0xf0ac8, 0x40 + diff --git a/arm9/data/rom2_2.s b/arm9/data/rom2_2.s index c5624b8e..396d68dc 100644 --- a/arm9/data/rom2_2.s +++ b/arm9/data/rom2_2.s @@ -5,7 +5,1037 @@ .section .rodata -.incbin "baserom.nds", 0xF0B50, 0x6A0C + .global UNK_020ECB50 +UNK_020ECB50: ; 0x020ECB50 + .incbin "baserom.nds", 0xf0b50, 0x4 + + .global UNK_020ECB54 +UNK_020ECB54: ; 0x020ECB54 + .incbin "baserom.nds", 0xf0b54, 0x2 + + .global UNK_020ECB56 +UNK_020ECB56: ; 0x020ECB56 + .incbin "baserom.nds", 0xf0b56, 0xe + + .global UNK_020ECB64 +UNK_020ECB64: ; 0x020ECB64 + .incbin "baserom.nds", 0xf0b64, 0x1 + + .global UNK_020ECB65 +UNK_020ECB65: ; 0x020ECB65 + .incbin "baserom.nds", 0xf0b65, 0x1 + + .global UNK_020ECB66 +UNK_020ECB66: ; 0x020ECB66 + .incbin "baserom.nds", 0xf0b66, 0x1 + + .global UNK_020ECB67 +UNK_020ECB67: ; 0x020ECB67 + .incbin "baserom.nds", 0xf0b67, 0x1 + + .global UNK_020ECB68 +UNK_020ECB68: ; 0x020ECB68 + .incbin "baserom.nds", 0xf0b68, 0x1 + + .global UNK_020ECB69 +UNK_020ECB69: ; 0x020ECB69 + .incbin "baserom.nds", 0xf0b69, 0x1 + + .global UNK_020ECB6A +UNK_020ECB6A: ; 0x020ECB6A + .incbin "baserom.nds", 0xf0b6a, 0x1 + + .global UNK_020ECB6B +UNK_020ECB6B: ; 0x020ECB6B + .incbin "baserom.nds", 0xf0b6b, 0x21 + + .global UNK_020ECB8C +UNK_020ECB8C: ; 0x020ECB8C + .incbin "baserom.nds", 0xf0b8c, 0xc + + .global UNK_020ECB98 +UNK_020ECB98: ; 0x020ECB98 + .incbin "baserom.nds", 0xf0b98, 0x8 + + .global UNK_020ECBA0 +UNK_020ECBA0: ; 0x020ECBA0 + .incbin "baserom.nds", 0xf0ba0, 0x8 + + .global UNK_020ECBA8 +UNK_020ECBA8: ; 0x020ECBA8 + .incbin "baserom.nds", 0xf0ba8, 0x8 + + .global UNK_020ECBB0 +UNK_020ECBB0: ; 0x020ECBB0 + .incbin "baserom.nds", 0xf0bb0, 0x20 + + .global UNK_020ECBD0 +UNK_020ECBD0: ; 0x020ECBD0 + .incbin "baserom.nds", 0xf0bd0, 0x40 + + .global UNK_020ECC10 +UNK_020ECC10: ; 0x020ECC10 + .incbin "baserom.nds", 0xf0c10, 0x68 + + .global UNK_020ECC78 +UNK_020ECC78: ; 0x020ECC78 + .incbin "baserom.nds", 0xf0c78, 0x6a + + .global UNK_020ECCE2 +UNK_020ECCE2: ; 0x020ECCE2 + .incbin "baserom.nds", 0xf0ce2, 0x6a + + .global UNK_020ECD4C +UNK_020ECD4C: ; 0x020ECD4C + .incbin "baserom.nds", 0xf0d4c, 0x80 + + .global UNK_020ECDCC +UNK_020ECDCC: ; 0x020ECDCC + .incbin "baserom.nds", 0xf0dcc, 0x98 + + .global UNK_020ECE64 +UNK_020ECE64: ; 0x020ECE64 + .incbin "baserom.nds", 0xf0e64, 0x8 + + .global UNK_020ECE6C +UNK_020ECE6C: ; 0x020ECE6C + .incbin "baserom.nds", 0xf0e6c, 0x2 + + .global UNK_020ECE6E +UNK_020ECE6E: ; 0x020ECE6E + .incbin "baserom.nds", 0xf0e6e, 0x1a + + .global UNK_020ECE88 +UNK_020ECE88: ; 0x020ECE88 + .incbin "baserom.nds", 0xf0e88, 0x10 + + .global UNK_020ECE98 +UNK_020ECE98: ; 0x020ECE98 + .incbin "baserom.nds", 0xf0e98, 0x10 + + .global UNK_020ECEA8 +UNK_020ECEA8: ; 0x020ECEA8 + .incbin "baserom.nds", 0xf0ea8, 0x18 + + .global UNK_020ECEC0 +UNK_020ECEC0: ; 0x020ECEC0 + .incbin "baserom.nds", 0xf0ec0, 0x34 + + .global UNK_020ECEF4 +UNK_020ECEF4: ; 0x020ECEF4 + .incbin "baserom.nds", 0xf0ef4, 0xa8 + + .global UNK_020ECF9C +UNK_020ECF9C: ; 0x020ECF9C + .incbin "baserom.nds", 0xf0f9c, 0x3 + + .global UNK_020ECF9F +UNK_020ECF9F: ; 0x020ECF9F + .incbin "baserom.nds", 0xf0f9f, 0x3 + + .global UNK_020ECFA2 +UNK_020ECFA2: ; 0x020ECFA2 + .incbin "baserom.nds", 0xf0fa2, 0x3 + + .global UNK_020ECFA5 +UNK_020ECFA5: ; 0x020ECFA5 + .incbin "baserom.nds", 0xf0fa5, 0x3 + + .global UNK_020ECFA8 +UNK_020ECFA8: ; 0x020ECFA8 + .incbin "baserom.nds", 0xf0fa8, 0x6 + + .global UNK_020ECFAE +UNK_020ECFAE: ; 0x020ECFAE + .incbin "baserom.nds", 0xf0fae, 0x6 + + .global UNK_020ECFB4 +UNK_020ECFB4: ; 0x020ECFB4 + .incbin "baserom.nds", 0xf0fb4, 0x6 + + .global UNK_020ECFBA +UNK_020ECFBA: ; 0x020ECFBA + .incbin "baserom.nds", 0xf0fba, 0x6 + + .global UNK_020ECFC0 +UNK_020ECFC0: ; 0x020ECFC0 + .incbin "baserom.nds", 0xf0fc0, 0x6 + + .global UNK_020ECFC6 +UNK_020ECFC6: ; 0x020ECFC6 + .incbin "baserom.nds", 0xf0fc6, 0x6 + + .global UNK_020ECFCC +UNK_020ECFCC: ; 0x020ECFCC + .incbin "baserom.nds", 0xf0fcc, 0x9 + + .global UNK_020ECFD5 +UNK_020ECFD5: ; 0x020ECFD5 + .incbin "baserom.nds", 0xf0fd5, 0xb + + .global UNK_020ECFE0 +UNK_020ECFE0: ; 0x020ECFE0 + .incbin "baserom.nds", 0xf0fe0, 0xc + + .global UNK_020ECFEC +UNK_020ECFEC: ; 0x020ECFEC + .incbin "baserom.nds", 0xf0fec, 0xc + + .global UNK_020ECFF8 +UNK_020ECFF8: ; 0x020ECFF8 + .incbin "baserom.nds", 0xf0ff8, 0xc + + .global UNK_020ED004 +UNK_020ED004: ; 0x020ED004 + .incbin "baserom.nds", 0xf1004, 0xc + + .global UNK_020ED010 +UNK_020ED010: ; 0x020ED010 + .incbin "baserom.nds", 0xf1010, 0xc + + .global UNK_020ED01C +UNK_020ED01C: ; 0x020ED01C + .incbin "baserom.nds", 0xf101c, 0xc + + .global UNK_020ED028 +UNK_020ED028: ; 0x020ED028 + .incbin "baserom.nds", 0xf1028, 0xc + + .global UNK_020ED034 +UNK_020ED034: ; 0x020ED034 + .incbin "baserom.nds", 0xf1034, 0xc + + .global UNK_020ED040 +UNK_020ED040: ; 0x020ED040 + .incbin "baserom.nds", 0xf1040, 0x10 + + .global UNK_020ED050 +UNK_020ED050: ; 0x020ED050 + .incbin "baserom.nds", 0xf1050, 0x10 + + .global UNK_020ED060 +UNK_020ED060: ; 0x020ED060 + .incbin "baserom.nds", 0xf1060, 0x10 + + .global UNK_020ED070 +UNK_020ED070: ; 0x020ED070 + .incbin "baserom.nds", 0xf1070, 0x10 + + .global UNK_020ED080 +UNK_020ED080: ; 0x020ED080 + .incbin "baserom.nds", 0xf1080, 0x10 + + .global UNK_020ED090 +UNK_020ED090: ; 0x020ED090 + .incbin "baserom.nds", 0xf1090, 0x10 + + .global UNK_020ED0A0 +UNK_020ED0A0: ; 0x020ED0A0 + .incbin "baserom.nds", 0xf10a0, 0x24 + + .global UNK_020ED0C4 +UNK_020ED0C4: ; 0x020ED0C4 + .incbin "baserom.nds", 0xf10c4, 0x24 + + .global UNK_020ED0E8 +UNK_020ED0E8: ; 0x020ED0E8 + .incbin "baserom.nds", 0xf10e8, 0x24 + + .global UNK_020ED10C +UNK_020ED10C: ; 0x020ED10C + .incbin "baserom.nds", 0xf110c, 0x24 + + .global UNK_020ED130 +UNK_020ED130: ; 0x020ED130 + .incbin "baserom.nds", 0xf1130, 0x24 + + .global UNK_020ED154 +UNK_020ED154: ; 0x020ED154 + .incbin "baserom.nds", 0xf1154, 0x24 + + .global UNK_020ED178 +UNK_020ED178: ; 0x020ED178 + .incbin "baserom.nds", 0xf1178, 0x24 + + .global UNK_020ED19C +UNK_020ED19C: ; 0x020ED19C + .incbin "baserom.nds", 0xf119c, 0x24 + + .global UNK_020ED1C0 +UNK_020ED1C0: ; 0x020ED1C0 + .incbin "baserom.nds", 0xf11c0, 0x24 + + .global UNK_020ED1E4 +UNK_020ED1E4: ; 0x020ED1E4 + .incbin "baserom.nds", 0xf11e4, 0x24 + + .global UNK_020ED208 +UNK_020ED208: ; 0x020ED208 + .incbin "baserom.nds", 0xf1208, 0x24 + + .global UNK_020ED22C +UNK_020ED22C: ; 0x020ED22C + .incbin "baserom.nds", 0xf122c, 0x24 + + .global UNK_020ED250 +UNK_020ED250: ; 0x020ED250 + .incbin "baserom.nds", 0xf1250, 0x24 + + .global UNK_020ED274 +UNK_020ED274: ; 0x020ED274 + .incbin "baserom.nds", 0xf1274, 0x24 + + .global UNK_020ED298 +UNK_020ED298: ; 0x020ED298 + .incbin "baserom.nds", 0xf1298, 0x40 + + .global UNK_020ED2D8 +UNK_020ED2D8: ; 0x020ED2D8 + .incbin "baserom.nds", 0xf12d8, 0x40 + + .global UNK_020ED318 +UNK_020ED318: ; 0x020ED318 + .incbin "baserom.nds", 0xf1318, 0x40 + + .global UNK_020ED358 +UNK_020ED358: ; 0x020ED358 + .incbin "baserom.nds", 0xf1358, 0x40 + + .global UNK_020ED398 +UNK_020ED398: ; 0x020ED398 + .incbin "baserom.nds", 0xf1398, 0x1 + + .global UNK_020ED399 +UNK_020ED399: ; 0x020ED399 + .incbin "baserom.nds", 0xf1399, 0x17 + + .global UNK_020ED3B0 +UNK_020ED3B0: ; 0x020ED3B0 + .incbin "baserom.nds", 0xf13b0, 0x8 + + .global UNK_020ED3B8 +UNK_020ED3B8: ; 0x020ED3B8 + .incbin "baserom.nds", 0xf13b8, 0x10 + + .global UNK_020ED3C8 +UNK_020ED3C8: ; 0x020ED3C8 + .incbin "baserom.nds", 0xf13c8, 0x10 + + .global UNK_020ED3D8 +UNK_020ED3D8: ; 0x020ED3D8 + .incbin "baserom.nds", 0xf13d8, 0x60 + + .global UNK_020ED438 +UNK_020ED438: ; 0x020ED438 + .incbin "baserom.nds", 0xf1438, 0x60 + + .global UNK_020ED498 +UNK_020ED498: ; 0x020ED498 + .incbin "baserom.nds", 0xf1498, 0xc + + .global UNK_020ED4A4 +UNK_020ED4A4: ; 0x020ED4A4 + .incbin "baserom.nds", 0xf14a4, 0xe + + .global UNK_020ED4B2 +UNK_020ED4B2: ; 0x020ED4B2 + .incbin "baserom.nds", 0xf14b2, 0x1a + + .global UNK_020ED4CC +UNK_020ED4CC: ; 0x020ED4CC + .incbin "baserom.nds", 0xf14cc, 0x18 + + .global UNK_020ED4E4 +UNK_020ED4E4: ; 0x020ED4E4 + .incbin "baserom.nds", 0xf14e4, 0xc + + .global UNK_020ED4F0 +UNK_020ED4F0: ; 0x020ED4F0 + .incbin "baserom.nds", 0xf14f0, 0xc + + .global UNK_020ED4FC +UNK_020ED4FC: ; 0x020ED4FC + .incbin "baserom.nds", 0xf14fc, 0xc + + .global UNK_020ED508 +UNK_020ED508: ; 0x020ED508 + .incbin "baserom.nds", 0xf1508, 0x40 + + .global UNK_020ED548 +UNK_020ED548: ; 0x020ED548 + .incbin "baserom.nds", 0xf1548, 0x4 + + .global UNK_020ED54C +UNK_020ED54C: ; 0x020ED54C + .incbin "baserom.nds", 0xf154c, 0xa + + .global UNK_020ED556 +UNK_020ED556: ; 0x020ED556 + .incbin "baserom.nds", 0xf1556, 0x1 + + .global UNK_020ED557 +UNK_020ED557: ; 0x020ED557 + .incbin "baserom.nds", 0xf1557, 0x1 + + .global UNK_020ED558 +UNK_020ED558: ; 0x020ED558 + .incbin "baserom.nds", 0xf1558, 0x2 + + .global UNK_020ED55A +UNK_020ED55A: ; 0x020ED55A + .incbin "baserom.nds", 0xf155a, 0x2 + + .global UNK_020ED55C +UNK_020ED55C: ; 0x020ED55C + .incbin "baserom.nds", 0xf155c, 0x2 + + .global UNK_020ED55E +UNK_020ED55E: ; 0x020ED55E + .incbin "baserom.nds", 0xf155e, 0x22 + + .global UNK_020ED580 +UNK_020ED580: ; 0x020ED580 + .incbin "baserom.nds", 0xf1580, 0x4 + + .global UNK_020ED584 +UNK_020ED584: ; 0x020ED584 + .incbin "baserom.nds", 0xf1584, 0x4 + + .global UNK_020ED588 +UNK_020ED588: ; 0x020ED588 + .incbin "baserom.nds", 0xf1588, 0x4 + + .global UNK_020ED58C +UNK_020ED58C: ; 0x020ED58C + .incbin "baserom.nds", 0xf158c, 0x4 + + .global UNK_020ED590 +UNK_020ED590: ; 0x020ED590 + .incbin "baserom.nds", 0xf1590, 0x4 + + .global UNK_020ED594 +UNK_020ED594: ; 0x020ED594 + .incbin "baserom.nds", 0xf1594, 0x4 + + .global UNK_020ED598 +UNK_020ED598: ; 0x020ED598 + .incbin "baserom.nds", 0xf1598, 0x4 + + .global UNK_020ED59C +UNK_020ED59C: ; 0x020ED59C + .incbin "baserom.nds", 0xf159c, 0x4 + + .global UNK_020ED5A0 +UNK_020ED5A0: ; 0x020ED5A0 + .incbin "baserom.nds", 0xf15a0, 0x4 + + .global UNK_020ED5A4 +UNK_020ED5A4: ; 0x020ED5A4 + .incbin "baserom.nds", 0xf15a4, 0x4 + + .global UNK_020ED5A8 +UNK_020ED5A8: ; 0x020ED5A8 + .incbin "baserom.nds", 0xf15a8, 0x4 + + .global UNK_020ED5AC +UNK_020ED5AC: ; 0x020ED5AC + .incbin "baserom.nds", 0xf15ac, 0x8 + + .global UNK_020ED5B4 +UNK_020ED5B4: ; 0x020ED5B4 + .incbin "baserom.nds", 0xf15b4, 0x1 + + .global UNK_020ED5B5 +UNK_020ED5B5: ; 0x020ED5B5 + .incbin "baserom.nds", 0xf15b5, 0xb + + .global UNK_020ED5C0 +UNK_020ED5C0: ; 0x020ED5C0 + .incbin "baserom.nds", 0xf15c0, 0x16 + + .global UNK_020ED5D6 +UNK_020ED5D6: ; 0x020ED5D6 + .incbin "baserom.nds", 0xf15d6, 0x16 + + .global UNK_020ED5EC +UNK_020ED5EC: ; 0x020ED5EC + .incbin "baserom.nds", 0xf15ec, 0x4 + + .global UNK_020ED5F0 +UNK_020ED5F0: ; 0x020ED5F0 + .incbin "baserom.nds", 0xf15f0, 0x5c + + .global UNK_020ED64C +UNK_020ED64C: ; 0x020ED64C + .incbin "baserom.nds", 0xf164c, 0x1c + + .global UNK_020ED668 +UNK_020ED668: ; 0x020ED668 + .incbin "baserom.nds", 0xf1668, 0x4 + + .global UNK_020ED66C +UNK_020ED66C: ; 0x020ED66C + .incbin "baserom.nds", 0xf166c, 0x4 + + .global UNK_020ED670 +UNK_020ED670: ; 0x020ED670 + .incbin "baserom.nds", 0xf1670, 0x34 + + .global UNK_020ED6A4 +UNK_020ED6A4: ; 0x020ED6A4 + .incbin "baserom.nds", 0xf16a4, 0x88 + + .global UNK_020ED72C +UNK_020ED72C: ; 0x020ED72C + .incbin "baserom.nds", 0xf172c, 0x8 + + .global UNK_020ED734 +UNK_020ED734: ; 0x020ED734 + .incbin "baserom.nds", 0xf1734, 0x3dc + + .global UNK_020EDB10 +UNK_020EDB10: ; 0x020EDB10 + .incbin "baserom.nds", 0xf1b10, 0x20 + + .global UNK_020EDB30 +UNK_020EDB30: ; 0x020EDB30 + .incbin "baserom.nds", 0xf1b30, 0x8 + + .global UNK_020EDB38 +UNK_020EDB38: ; 0x020EDB38 + .incbin "baserom.nds", 0xf1b38, 0xc + + .global UNK_020EDB44 +UNK_020EDB44: ; 0x020EDB44 + .incbin "baserom.nds", 0xf1b44, 0xc + + .global UNK_020EDB50 +UNK_020EDB50: ; 0x020EDB50 + .incbin "baserom.nds", 0xf1b50, 0xc + + .global UNK_020EDB5C +UNK_020EDB5C: ; 0x020EDB5C + .incbin "baserom.nds", 0xf1b5c, 0xc + + .global UNK_020EDB68 +UNK_020EDB68: ; 0x020EDB68 + .incbin "baserom.nds", 0xf1b68, 0xc + + .global UNK_020EDB74 +UNK_020EDB74: ; 0x020EDB74 + .incbin "baserom.nds", 0xf1b74, 0x10a + + .global UNK_020EDC7E +UNK_020EDC7E: ; 0x020EDC7E + .incbin "baserom.nds", 0xf1c7e, 0x2d2 + + .global UNK_020EDF50 +UNK_020EDF50: ; 0x020EDF50 + .incbin "baserom.nds", 0xf1f50, 0x708 + + .global UNK_020EE658 +UNK_020EE658: ; 0x020EE658 + .incbin "baserom.nds", 0xf2658, 0x8 + + .global UNK_020EE660 +UNK_020EE660: ; 0x020EE660 + .incbin "baserom.nds", 0xf2660, 0x8 + + .global UNK_020EE668 +UNK_020EE668: ; 0x020EE668 + .incbin "baserom.nds", 0xf2668, 0x4 + + .global UNK_020EE66C +UNK_020EE66C: ; 0x020EE66C + .incbin "baserom.nds", 0xf266c, 0x8 + + .global UNK_020EE674 +UNK_020EE674: ; 0x020EE674 + .incbin "baserom.nds", 0xf2674, 0x8 + + .global UNK_020EE67C +UNK_020EE67C: ; 0x020EE67C + .incbin "baserom.nds", 0xf267c, 0x14 + + .global UNK_020EE690 +UNK_020EE690: ; 0x020EE690 + .incbin "baserom.nds", 0xf2690, 0x10 + + .global UNK_020EE6A0 +UNK_020EE6A0: ; 0x020EE6A0 + .incbin "baserom.nds", 0xf26a0, 0x2c + + .global UNK_020EE6CC +UNK_020EE6CC: ; 0x020EE6CC + .incbin "baserom.nds", 0xf26cc, 0x8 + + .global UNK_020EE6D4 +UNK_020EE6D4: ; 0x020EE6D4 + .incbin "baserom.nds", 0xf26d4, 0x4 + + .global UNK_020EE6D8 +UNK_020EE6D8: ; 0x020EE6D8 + .incbin "baserom.nds", 0xf26d8, 0x4 + + .global UNK_020EE6DC +UNK_020EE6DC: ; 0x020EE6DC + .incbin "baserom.nds", 0xf26dc, 0x4 + + .global UNK_020EE6E0 +UNK_020EE6E0: ; 0x020EE6E0 + .incbin "baserom.nds", 0xf26e0, 0x20 + + .global UNK_020EE700 +UNK_020EE700: ; 0x020EE700 + .incbin "baserom.nds", 0xf2700, 0x242 + + .global UNK_020EE942 +UNK_020EE942: ; 0x020EE942 + .incbin "baserom.nds", 0xf2942, 0x16 + + .global UNK_020EE958 +UNK_020EE958: ; 0x020EE958 + .incbin "baserom.nds", 0xf2958, 0xc + + .global UNK_020EE964 +UNK_020EE964: ; 0x020EE964 + .incbin "baserom.nds", 0xf2964, 0x6 + + .global UNK_020EE96A +UNK_020EE96A: ; 0x020EE96A + .incbin "baserom.nds", 0xf296a, 0x3a + + .global UNK_020EE9A4 +UNK_020EE9A4: ; 0x020EE9A4 + .incbin "baserom.nds", 0xf29a4, 0x4 + + .global UNK_020EE9A8 +UNK_020EE9A8: ; 0x020EE9A8 + .incbin "baserom.nds", 0xf29a8, 0xd4 + + .global UNK_020EEA7C +UNK_020EEA7C: ; 0x020EEA7C + .incbin "baserom.nds", 0xf2a7c, 0x4c + + .global UNK_020EEAC8 +UNK_020EEAC8: ; 0x020EEAC8 + .incbin "baserom.nds", 0xf2ac8, 0x1 + + .global UNK_020EEAC9 +UNK_020EEAC9: ; 0x020EEAC9 + .incbin "baserom.nds", 0xf2ac9, 0x7 + + .global UNK_020EEAD0 +UNK_020EEAD0: ; 0x020EEAD0 + .incbin "baserom.nds", 0xf2ad0, 0x34 + + .global UNK_020EEB04 +UNK_020EEB04: ; 0x020EEB04 + .incbin "baserom.nds", 0xf2b04, 0x1a + + .global UNK_020EEB1E +UNK_020EEB1E: ; 0x020EEB1E + .incbin "baserom.nds", 0xf2b1e, 0x1a + + .global UNK_020EEB38 +UNK_020EEB38: ; 0x020EEB38 + .incbin "baserom.nds", 0xf2b38, 0x4 + + .global UNK_020EEB3C +UNK_020EEB3C: ; 0x020EEB3C + .incbin "baserom.nds", 0xf2b3c, 0x4 + + .global UNK_020EEB40 +UNK_020EEB40: ; 0x020EEB40 + .incbin "baserom.nds", 0xf2b40, 0x100 + + .global UNK_020EEC40 +UNK_020EEC40: ; 0x020EEC40 + .incbin "baserom.nds", 0xf2c40, 0x8 + + .global UNK_020EEC48 +UNK_020EEC48: ; 0x020EEC48 + .incbin "baserom.nds", 0xf2c48, 0x8 + + .global UNK_020EEC50 +UNK_020EEC50: ; 0x020EEC50 + .incbin "baserom.nds", 0xf2c50, 0xc + + .global UNK_020EEC5C +UNK_020EEC5C: ; 0x020EEC5C + .incbin "baserom.nds", 0xf2c5c, 0xc + + .global UNK_020EEC68 +UNK_020EEC68: ; 0x020EEC68 + .incbin "baserom.nds", 0xf2c68, 0x8 + + .global UNK_020EEC70 +UNK_020EEC70: ; 0x020EEC70 + .incbin "baserom.nds", 0xf2c70, 0x8 + + .global UNK_020EEC78 +UNK_020EEC78: ; 0x020EEC78 + .incbin "baserom.nds", 0xf2c78, 0x8 + + .global UNK_020EEC80 +UNK_020EEC80: ; 0x020EEC80 + .incbin "baserom.nds", 0xf2c80, 0x8 + + .global UNK_020EEC88 +UNK_020EEC88: ; 0x020EEC88 + .incbin "baserom.nds", 0xf2c88, 0x14 + + .global UNK_020EEC9C +UNK_020EEC9C: ; 0x020EEC9C + .incbin "baserom.nds", 0xf2c9c, 0x8 + + .global UNK_020EECA4 +UNK_020EECA4: ; 0x020EECA4 + .incbin "baserom.nds", 0xf2ca4, 0x10 + + .global UNK_020EECB4 +UNK_020EECB4: ; 0x020EECB4 + .incbin "baserom.nds", 0xf2cb4, 0x1c + + .global UNK_020EECD0 +UNK_020EECD0: ; 0x020EECD0 + .incbin "baserom.nds", 0xf2cd0, 0x28 + + .global UNK_020EECF8 +UNK_020EECF8: ; 0x020EECF8 + .incbin "baserom.nds", 0xf2cf8, 0x8 + + .global UNK_020EED00 +UNK_020EED00: ; 0x020EED00 + .incbin "baserom.nds", 0xf2d00, 0x10 + + .global UNK_020EED10 +UNK_020EED10: ; 0x020EED10 + .incbin "baserom.nds", 0xf2d10, 0x1c + + .global UNK_020EED2C +UNK_020EED2C: ; 0x020EED2C + .incbin "baserom.nds", 0xf2d2c, 0x28 + + .global UNK_020EED54 +UNK_020EED54: ; 0x020EED54 + .incbin "baserom.nds", 0xf2d54, 0x24 + + .global UNK_020EED78 +UNK_020EED78: ; 0x020EED78 + .incbin "baserom.nds", 0xf2d78, 0x44 + + .global UNK_020EEDBC +UNK_020EEDBC: ; 0x020EEDBC + .incbin "baserom.nds", 0xf2dbc, 0x1 + + .global UNK_020EEDBD +UNK_020EEDBD: ; 0x020EEDBD + .incbin "baserom.nds", 0xf2dbd, 0x1 + + .global UNK_020EEDBE +UNK_020EEDBE: ; 0x020EEDBE + .incbin "baserom.nds", 0xf2dbe, 0x2 + + .global UNK_020EEDC0 +UNK_020EEDC0: ; 0x020EEDC0 + .incbin "baserom.nds", 0xf2dc0, 0x2 + + .global UNK_020EEDC2 +UNK_020EEDC2: ; 0x020EEDC2 + .incbin "baserom.nds", 0xf2dc2, 0x2 + + .global UNK_020EEDC4 +UNK_020EEDC4: ; 0x020EEDC4 + .incbin "baserom.nds", 0xf2dc4, 0x2 + + .global UNK_020EEDC6 +UNK_020EEDC6: ; 0x020EEDC6 + .incbin "baserom.nds", 0xf2dc6, 0x2 + + .global UNK_020EEDC8 +UNK_020EEDC8: ; 0x020EEDC8 + .incbin "baserom.nds", 0xf2dc8, 0x2 + + .global UNK_020EEDCA +UNK_020EEDCA: ; 0x020EEDCA + .incbin "baserom.nds", 0xf2dca, 0x2 + + .global UNK_020EEDCC +UNK_020EEDCC: ; 0x020EEDCC + .incbin "baserom.nds", 0xf2dcc, 0x2 + + .global UNK_020EEDCE +UNK_020EEDCE: ; 0x020EEDCE + .incbin "baserom.nds", 0xf2dce, 0x2 + + .global UNK_020EEDD0 +UNK_020EEDD0: ; 0x020EEDD0 + .incbin "baserom.nds", 0xf2dd0, 0x1 + + .global UNK_020EEDD1 +UNK_020EEDD1: ; 0x020EEDD1 + .incbin "baserom.nds", 0xf2dd1, 0x1 + + .global UNK_020EEDD2 +UNK_020EEDD2: ; 0x020EEDD2 + .incbin "baserom.nds", 0xf2dd2, 0x250 + + .global UNK_020EF022 +UNK_020EF022: ; 0x020EF022 + .incbin "baserom.nds", 0xf3022, 0x101e + + .global UNK_020F0040 +UNK_020F0040: ; 0x020F0040 + .incbin "baserom.nds", 0xf4040, 0x62 + + .global UNK_020F00A2 +UNK_020F00A2: ; 0x020F00A2 + .incbin "baserom.nds", 0xf40a2, 0x5e + + .global UNK_020F0100 +UNK_020F0100: ; 0x020F0100 + .incbin "baserom.nds", 0xf4100, 0x1ca + + .global UNK_020F02CA +UNK_020F02CA: ; 0x020F02CA + .incbin "baserom.nds", 0xf42ca, 0x93f + + .global UNK_020F0C09 +UNK_020F0C09: ; 0x020F0C09 + .incbin "baserom.nds", 0xf4c09, 0x161b + + .global UNK_020F2224 +UNK_020F2224: ; 0x020F2224 + .incbin "baserom.nds", 0xf6224, 0x2 + + .global UNK_020F2226 +UNK_020F2226: ; 0x020F2226 + .incbin "baserom.nds", 0xf6226, 0x2 + + .global UNK_020F2228 +UNK_020F2228: ; 0x020F2228 + .incbin "baserom.nds", 0xf6228, 0x2 + + .global UNK_020F222A +UNK_020F222A: ; 0x020F222A + .incbin "baserom.nds", 0xf622a, 0x2 + + .global UNK_020F222C +UNK_020F222C: ; 0x020F222C + .incbin "baserom.nds", 0xf622c, 0x2 + + .global UNK_020F222E +UNK_020F222E: ; 0x020F222E + .incbin "baserom.nds", 0xf622e, 0x4 + + .global UNK_020F2232 +UNK_020F2232: ; 0x020F2232 + .incbin "baserom.nds", 0xf6232, 0x132 + + .global UNK_020F2364 +UNK_020F2364: ; 0x020F2364 + .incbin "baserom.nds", 0xf6364, 0x728 + + .global UNK_020F2A8C +UNK_020F2A8C: ; 0x020F2A8C + .incbin "baserom.nds", 0xf6a8c, 0x4 + + .global UNK_020F2A90 +UNK_020F2A90: ; 0x020F2A90 + .incbin "baserom.nds", 0xf6a90, 0xc + + .global UNK_020F2A9C +UNK_020F2A9C: ; 0x020F2A9C + .incbin "baserom.nds", 0xf6a9c, 0xc + + .global UNK_020F2AA8 +UNK_020F2AA8: ; 0x020F2AA8 + .incbin "baserom.nds", 0xf6aa8, 0xc + + .global UNK_020F2AB4 +UNK_020F2AB4: ; 0x020F2AB4 + .incbin "baserom.nds", 0xf6ab4, 0x18 + + .global UNK_020F2ACC +UNK_020F2ACC: ; 0x020F2ACC + .incbin "baserom.nds", 0xf6acc, 0x4 + + .global UNK_020F2AD0 +UNK_020F2AD0: ; 0x020F2AD0 + .incbin "baserom.nds", 0xf6ad0, 0x44 + + .global UNK_020F2B14 +UNK_020F2B14: ; 0x020F2B14 + .incbin "baserom.nds", 0xf6b14, 0x34 + + .global UNK_020F2B48 +UNK_020F2B48: ; 0x020F2B48 + .incbin "baserom.nds", 0xf6b48, 0x54 + + .global UNK_020F2B9C +UNK_020F2B9C: ; 0x020F2B9C + .incbin "baserom.nds", 0xf6b9c, 0x14 + + .global UNK_020F2BB0 +UNK_020F2BB0: ; 0x020F2BB0 + .incbin "baserom.nds", 0xf6bb0, 0x14 + + .global UNK_020F2BC4 +UNK_020F2BC4: ; 0x020F2BC4 + .incbin "baserom.nds", 0xf6bc4, 0x4 + + .global UNK_020F2BC8 +UNK_020F2BC8: ; 0x020F2BC8 + .incbin "baserom.nds", 0xf6bc8, 0x4 + + .global UNK_020F2BCC +UNK_020F2BCC: ; 0x020F2BCC + .incbin "baserom.nds", 0xf6bcc, 0x4 + + .global UNK_020F2BD0 +UNK_020F2BD0: ; 0x020F2BD0 + .incbin "baserom.nds", 0xf6bd0, 0xc + + .global UNK_020F2BDC +UNK_020F2BDC: ; 0x020F2BDC + .incbin "baserom.nds", 0xf6bdc, 0xc + + .global UNK_020F2BE8 +UNK_020F2BE8: ; 0x020F2BE8 + .incbin "baserom.nds", 0xf6be8, 0xc + + .global UNK_020F2BF4 +UNK_020F2BF4: ; 0x020F2BF4 + .incbin "baserom.nds", 0xf6bf4, 0x10 + + .global UNK_020F2C04 +UNK_020F2C04: ; 0x020F2C04 + .incbin "baserom.nds", 0xf6c04, 0x10 + + .global UNK_020F2C14 +UNK_020F2C14: ; 0x020F2C14 + .incbin "baserom.nds", 0xf6c14, 0x10 + + .global UNK_020F2C24 +UNK_020F2C24: ; 0x020F2C24 + .incbin "baserom.nds", 0xf6c24, 0x10 + + .global UNK_020F2C34 +UNK_020F2C34: ; 0x020F2C34 + .incbin "baserom.nds", 0xf6c34, 0x10 + + .global UNK_020F2C44 +UNK_020F2C44: ; 0x020F2C44 + .incbin "baserom.nds", 0xf6c44, 0x10 + + .global UNK_020F2C54 +UNK_020F2C54: ; 0x020F2C54 + .incbin "baserom.nds", 0xf6c54, 0x10 + + .global UNK_020F2C64 +UNK_020F2C64: ; 0x020F2C64 + .incbin "baserom.nds", 0xf6c64, 0x10 + + .global UNK_020F2C74 +UNK_020F2C74: ; 0x020F2C74 + .incbin "baserom.nds", 0xf6c74, 0x10 + + .global UNK_020F2C84 +UNK_020F2C84: ; 0x020F2C84 + .incbin "baserom.nds", 0xf6c84, 0x10 + + .global UNK_020F2C94 +UNK_020F2C94: ; 0x020F2C94 + .incbin "baserom.nds", 0xf6c94, 0x10 + + .global UNK_020F2CA4 +UNK_020F2CA4: ; 0x020F2CA4 + .incbin "baserom.nds", 0xf6ca4, 0x10 + + .global UNK_020F2CB4 +UNK_020F2CB4: ; 0x020F2CB4 + .incbin "baserom.nds", 0xf6cb4, 0x10 + + .global UNK_020F2CC4 +UNK_020F2CC4: ; 0x020F2CC4 + .incbin "baserom.nds", 0xf6cc4, 0x10 + + .global UNK_020F2CD4 +UNK_020F2CD4: ; 0x020F2CD4 + .incbin "baserom.nds", 0xf6cd4, 0x10 + + .global UNK_020F2CE4 +UNK_020F2CE4: ; 0x020F2CE4 + .incbin "baserom.nds", 0xf6ce4, 0x10 + + .global UNK_020F2CF4 +UNK_020F2CF4: ; 0x020F2CF4 + .incbin "baserom.nds", 0xf6cf4, 0x10 + + .global UNK_020F2D04 +UNK_020F2D04: ; 0x020F2D04 + .incbin "baserom.nds", 0xf6d04, 0x10 + + .global UNK_020F2D14 +UNK_020F2D14: ; 0x020F2D14 + .incbin "baserom.nds", 0xf6d14, 0x10 + + .global UNK_020F2D24 +UNK_020F2D24: ; 0x020F2D24 + .incbin "baserom.nds", 0xf6d24, 0x20 + + .global UNK_020F2D44 +UNK_020F2D44: ; 0x020F2D44 + .incbin "baserom.nds", 0xf6d44, 0x10 + + .global UNK_020F2D54 +UNK_020F2D54: ; 0x020F2D54 + .incbin "baserom.nds", 0xf6d54, 0x10 + + .global UNK_020F2D64 +UNK_020F2D64: ; 0x020F2D64 + .incbin "baserom.nds", 0xf6d64, 0x10 + + .global UNK_020F2D74 +UNK_020F2D74: ; 0x020F2D74 + .incbin "baserom.nds", 0xf6d74, 0x10 + + .global UNK_020F2D84 +UNK_020F2D84: ; 0x020F2D84 + .incbin "baserom.nds", 0xf6d84, 0x10 + + .global UNK_020F2D94 +UNK_020F2D94: ; 0x020F2D94 + .incbin "baserom.nds", 0xf6d94, 0x10 + + .global UNK_020F2DA4 +UNK_020F2DA4: ; 0x020F2DA4 + .incbin "baserom.nds", 0xf6da4, 0x10 + + .global UNK_020F2DB4 +UNK_020F2DB4: ; 0x020F2DB4 + .incbin "baserom.nds", 0xf6db4, 0x728 + + .global UNK_020F34DC +UNK_020F34DC: ; 0x020F34DC + .incbin "baserom.nds", 0xf74dc, 0x4 + + .global UNK_020F34E0 +UNK_020F34E0: ; 0x020F34E0 + .incbin "baserom.nds", 0xf74e0, 0x8 + + .global UNK_020F34E8 +UNK_020F34E8: ; 0x020F34E8 + .incbin "baserom.nds", 0xf74e8, 0x14 + + .global UNK_020F34FC +UNK_020F34FC: ; 0x020F34FC + .incbin "baserom.nds", 0xf74fc, 0x3c + + .global UNK_020F3538 +UNK_020F3538: ; 0x020F3538 + .incbin "baserom.nds", 0xf7538, 0x24 .global gScriptCmdTable gScriptCmdTable: ; 0x020F355C @@ -731,4 +1761,3340 @@ gScriptCmdTable: ; 0x020F355C .word FUN_0203AF84 .word FUN_0203AFA4 - .incbin "baserom.nds", 0xF80A0, 0xFEE0 + ; 0x020F40A0 + + .global UNK_020F40A0 +UNK_020F40A0: ; 0x020F40A0 + .incbin "baserom.nds", 0xf80a0, 0x6 + + .global UNK_020F40A6 +UNK_020F40A6: ; 0x020F40A6 + .incbin "baserom.nds", 0xf80a6, 0x6 + + .global UNK_020F40AC +UNK_020F40AC: ; 0x020F40AC + .incbin "baserom.nds", 0xf80ac, 0x8 + + .global UNK_020F40B4 +UNK_020F40B4: ; 0x020F40B4 + .incbin "baserom.nds", 0xf80b4, 0x8 + + .global UNK_020F40BC +UNK_020F40BC: ; 0x020F40BC + .incbin "baserom.nds", 0xf80bc, 0xa + + .global UNK_020F40C6 +UNK_020F40C6: ; 0x020F40C6 + .incbin "baserom.nds", 0xf80c6, 0xa + + .global UNK_020F40D0 +UNK_020F40D0: ; 0x020F40D0 + .incbin "baserom.nds", 0xf80d0, 0xa + + .global UNK_020F40DA +UNK_020F40DA: ; 0x020F40DA + .incbin "baserom.nds", 0xf80da, 0xa + + .global UNK_020F40E4 +UNK_020F40E4: ; 0x020F40E4 + .incbin "baserom.nds", 0xf80e4, 0xa + + .global UNK_020F40EE +UNK_020F40EE: ; 0x020F40EE + .incbin "baserom.nds", 0xf80ee, 0xa + + .global UNK_020F40F8 +UNK_020F40F8: ; 0x020F40F8 + .incbin "baserom.nds", 0xf80f8, 0xa + + .global UNK_020F4102 +UNK_020F4102: ; 0x020F4102 + .incbin "baserom.nds", 0xf8102, 0xa + + .global UNK_020F410C +UNK_020F410C: ; 0x020F410C + .incbin "baserom.nds", 0xf810c, 0xc + + .global UNK_020F4118 +UNK_020F4118: ; 0x020F4118 + .incbin "baserom.nds", 0xf8118, 0xe + + .global UNK_020F4126 +UNK_020F4126: ; 0x020F4126 + .incbin "baserom.nds", 0xf8126, 0xe + + .global UNK_020F4134 +UNK_020F4134: ; 0x020F4134 + .incbin "baserom.nds", 0xf8134, 0xe + + .global UNK_020F4142 +UNK_020F4142: ; 0x020F4142 + .incbin "baserom.nds", 0xf8142, 0x10 + + .global UNK_020F4152 +UNK_020F4152: ; 0x020F4152 + .incbin "baserom.nds", 0xf8152, 0x10 + + .global UNK_020F4162 +UNK_020F4162: ; 0x020F4162 + .incbin "baserom.nds", 0xf8162, 0x10 + + .global UNK_020F4172 +UNK_020F4172: ; 0x020F4172 + .incbin "baserom.nds", 0xf8172, 0x10 + + .global UNK_020F4182 +UNK_020F4182: ; 0x020F4182 + .incbin "baserom.nds", 0xf8182, 0x10 + + .global UNK_020F4192 +UNK_020F4192: ; 0x020F4192 + .incbin "baserom.nds", 0xf8192, 0x10 + + .global UNK_020F41A2 +UNK_020F41A2: ; 0x020F41A2 + .incbin "baserom.nds", 0xf81a2, 0x10 + + .global UNK_020F41B2 +UNK_020F41B2: ; 0x020F41B2 + .incbin "baserom.nds", 0xf81b2, 0x10 + + .global UNK_020F41C2 +UNK_020F41C2: ; 0x020F41C2 + .incbin "baserom.nds", 0xf81c2, 0x12 + + .global UNK_020F41D4 +UNK_020F41D4: ; 0x020F41D4 + .incbin "baserom.nds", 0xf81d4, 0x12 + + .global UNK_020F41E6 +UNK_020F41E6: ; 0x020F41E6 + .incbin "baserom.nds", 0xf81e6, 0x18 + + .global UNK_020F41FE +UNK_020F41FE: ; 0x020F41FE + .incbin "baserom.nds", 0xf81fe, 0x1a + + .global UNK_020F4218 +UNK_020F4218: ; 0x020F4218 + .incbin "baserom.nds", 0xf8218, 0x4c + + .global UNK_020F4264 +UNK_020F4264: ; 0x020F4264 + .incbin "baserom.nds", 0xf8264, 0x4 + + .global UNK_020F4268 +UNK_020F4268: ; 0x020F4268 + .incbin "baserom.nds", 0xf8268, 0x4 + + .global UNK_020F426C +UNK_020F426C: ; 0x020F426C + .incbin "baserom.nds", 0xf826c, 0x4 + + .global UNK_020F4270 +UNK_020F4270: ; 0x020F4270 + .incbin "baserom.nds", 0xf8270, 0xc4 + + .global UNK_020F4334 +UNK_020F4334: ; 0x020F4334 + .incbin "baserom.nds", 0xf8334, 0xa + + .global UNK_020F433E +UNK_020F433E: ; 0x020F433E + .incbin "baserom.nds", 0xf833e, 0x2 + + .global UNK_020F4340 +UNK_020F4340: ; 0x020F4340 + .incbin "baserom.nds", 0xf8340, 0xa4 + + .global UNK_020F43E4 +UNK_020F43E4: ; 0x020F43E4 + .incbin "baserom.nds", 0xf83e4, 0xb0 + + .global UNK_020F4494 +UNK_020F4494: ; 0x020F4494 + .incbin "baserom.nds", 0xf8494, 0x78 + + .global UNK_020F450C +UNK_020F450C: ; 0x020F450C + .incbin "baserom.nds", 0xf850c, 0x2 + + .global UNK_020F450E +UNK_020F450E: ; 0x020F450E + .incbin "baserom.nds", 0xf850e, 0x1a + + .global UNK_020F4528 +UNK_020F4528: ; 0x020F4528 + .incbin "baserom.nds", 0xf8528, 0x2 + + .global UNK_020F452A +UNK_020F452A: ; 0x020F452A + .incbin "baserom.nds", 0xf852a, 0x4a + + .global UNK_020F4574 +UNK_020F4574: ; 0x020F4574 + .incbin "baserom.nds", 0xf8574, 0x8 + + .global UNK_020F457C +UNK_020F457C: ; 0x020F457C + .incbin "baserom.nds", 0xf857c, 0x2 + + .global UNK_020F457E +UNK_020F457E: ; 0x020F457E + .incbin "baserom.nds", 0xf857e, 0x7a + + .global UNK_020F45F8 +UNK_020F45F8: ; 0x020F45F8 + .incbin "baserom.nds", 0xf85f8, 0x30 + + .global UNK_020F4628 +UNK_020F4628: ; 0x020F4628 + .incbin "baserom.nds", 0xf8628, 0x8 + + .global UNK_020F4630 +UNK_020F4630: ; 0x020F4630 + .incbin "baserom.nds", 0xf8630, 0x10 + + .global UNK_020F4640 +UNK_020F4640: ; 0x020F4640 + .incbin "baserom.nds", 0xf8640, 0x1c + + .global UNK_020F465C +UNK_020F465C: ; 0x020F465C + .incbin "baserom.nds", 0xf865c, 0x28 + + .global UNK_020F4684 +UNK_020F4684: ; 0x020F4684 + .incbin "baserom.nds", 0xf8684, 0x10 + + .global UNK_020F4694 +UNK_020F4694: ; 0x020F4694 + .incbin "baserom.nds", 0xf8694, 0x1c + + .global UNK_020F46B0 +UNK_020F46B0: ; 0x020F46B0 + .incbin "baserom.nds", 0xf86b0, 0x28 + + .global UNK_020F46D8 +UNK_020F46D8: ; 0x020F46D8 + .incbin "baserom.nds", 0xf86d8, 0x8 + + .global UNK_020F46E0 +UNK_020F46E0: ; 0x020F46E0 + .incbin "baserom.nds", 0xf86e0, 0x28 + + .global UNK_020F4708 +UNK_020F4708: ; 0x020F4708 + .incbin "baserom.nds", 0xf8708, 0x8 + + .global UNK_020F4710 +UNK_020F4710: ; 0x020F4710 + .incbin "baserom.nds", 0xf8710, 0x8 + + .global UNK_020F4718 +UNK_020F4718: ; 0x020F4718 + .incbin "baserom.nds", 0xf8718, 0x2 + + .global UNK_020F471A +UNK_020F471A: ; 0x020F471A + .incbin "baserom.nds", 0xf871a, 0x136 + + .global UNK_020F4850 +UNK_020F4850: ; 0x020F4850 + .incbin "baserom.nds", 0xf8850, 0x8 + + .global UNK_020F4858 +UNK_020F4858: ; 0x020F4858 + .incbin "baserom.nds", 0xf8858, 0x8 + + .global UNK_020F4860 +UNK_020F4860: ; 0x020F4860 + .incbin "baserom.nds", 0xf8860, 0xc + + .global UNK_020F486C +UNK_020F486C: ; 0x020F486C + .incbin "baserom.nds", 0xf886c, 0xc + + .global UNK_020F4878 +UNK_020F4878: ; 0x020F4878 + .incbin "baserom.nds", 0xf8878, 0x1c + + .global UNK_020F4894 +UNK_020F4894: ; 0x020F4894 + .incbin "baserom.nds", 0xf8894, 0x1c + + .global UNK_020F48B0 +UNK_020F48B0: ; 0x020F48B0 + .incbin "baserom.nds", 0xf88b0, 0x1c + + .global UNK_020F48CC +UNK_020F48CC: ; 0x020F48CC + .incbin "baserom.nds", 0xf88cc, 0x1 + + .global UNK_020F48CD +UNK_020F48CD: ; 0x020F48CD + .incbin "baserom.nds", 0xf88cd, 0xa + + .global UNK_020F48D7 +UNK_020F48D7: ; 0x020F48D7 + .incbin "baserom.nds", 0xf88d7, 0x1 + + .global UNK_020F48D8 +UNK_020F48D8: ; 0x020F48D8 + .incbin "baserom.nds", 0xf88d8, 0x1 + + .global UNK_020F48D9 +UNK_020F48D9: ; 0x020F48D9 + .incbin "baserom.nds", 0xf88d9, 0x3 + + .global UNK_020F48DC +UNK_020F48DC: ; 0x020F48DC + .incbin "baserom.nds", 0xf88dc, 0x4 + + .global UNK_020F48E0 +UNK_020F48E0: ; 0x020F48E0 + .incbin "baserom.nds", 0xf88e0, 0x4 + + .global UNK_020F48E4 +UNK_020F48E4: ; 0x020F48E4 + .incbin "baserom.nds", 0xf88e4, 0x1 + + .global UNK_020F48E5 +UNK_020F48E5: ; 0x020F48E5 + .incbin "baserom.nds", 0xf88e5, 0x15f + + .global UNK_020F4A44 +UNK_020F4A44: ; 0x020F4A44 + .incbin "baserom.nds", 0xf8a44, 0xdbc + + .global UNK_020F5800 +UNK_020F5800: ; 0x020F5800 + .incbin "baserom.nds", 0xf9800, 0x8 + + .global UNK_020F5808 +UNK_020F5808: ; 0x020F5808 + .incbin "baserom.nds", 0xf9808, 0xc + + .global UNK_020F5814 +UNK_020F5814: ; 0x020F5814 + .incbin "baserom.nds", 0xf9814, 0x10 + + .global UNK_020F5824 +UNK_020F5824: ; 0x020F5824 + .incbin "baserom.nds", 0xf9824, 0x14 + + .global UNK_020F5838 +UNK_020F5838: ; 0x020F5838 + .incbin "baserom.nds", 0xf9838, 0x10 + + .global UNK_020F5848 +UNK_020F5848: ; 0x020F5848 + .incbin "baserom.nds", 0xf9848, 0x38 + + .global UNK_020F5880 +UNK_020F5880: ; 0x020F5880 + .incbin "baserom.nds", 0xf9880, 0xc + + .global UNK_020F588C +UNK_020F588C: ; 0x020F588C + .incbin "baserom.nds", 0xf988c, 0x8 + + .global UNK_020F5894 +UNK_020F5894: ; 0x020F5894 + .incbin "baserom.nds", 0xf9894, 0x8 + + .global UNK_020F589C +UNK_020F589C: ; 0x020F589C + .incbin "baserom.nds", 0xf989c, 0x8 + + .global UNK_020F58A4 +UNK_020F58A4: ; 0x020F58A4 + .incbin "baserom.nds", 0xf98a4, 0x8 + + .global UNK_020F58AC +UNK_020F58AC: ; 0x020F58AC + .incbin "baserom.nds", 0xf98ac, 0x8 + + .global UNK_020F58B4 +UNK_020F58B4: ; 0x020F58B4 + .incbin "baserom.nds", 0xf98b4, 0x10 + + .global UNK_020F58C4 +UNK_020F58C4: ; 0x020F58C4 + .incbin "baserom.nds", 0xf98c4, 0x10 + + .global UNK_020F58D4 +UNK_020F58D4: ; 0x020F58D4 + .incbin "baserom.nds", 0xf98d4, 0x14 + + .global UNK_020F58E8 +UNK_020F58E8: ; 0x020F58E8 + .incbin "baserom.nds", 0xf98e8, 0x18 + + .global UNK_020F5900 +UNK_020F5900: ; 0x020F5900 + .incbin "baserom.nds", 0xf9900, 0x18 + + .global UNK_020F5918 +UNK_020F5918: ; 0x020F5918 + .incbin "baserom.nds", 0xf9918, 0x18 + + .global UNK_020F5930 +UNK_020F5930: ; 0x020F5930 + .incbin "baserom.nds", 0xf9930, 0x18 + + .global UNK_020F5948 +UNK_020F5948: ; 0x020F5948 + .incbin "baserom.nds", 0xf9948, 0x1c + + .global UNK_020F5964 +UNK_020F5964: ; 0x020F5964 + .incbin "baserom.nds", 0xf9964, 0x20 + + .global UNK_020F5984 +UNK_020F5984: ; 0x020F5984 + .incbin "baserom.nds", 0xf9984, 0x20 + + .global UNK_020F59A4 +UNK_020F59A4: ; 0x020F59A4 + .incbin "baserom.nds", 0xf99a4, 0x20 + + .global UNK_020F59C4 +UNK_020F59C4: ; 0x020F59C4 + .incbin "baserom.nds", 0xf99c4, 0x18 + + .global UNK_020F59DC +UNK_020F59DC: ; 0x020F59DC + .incbin "baserom.nds", 0xf99dc, 0x38 + + .global UNK_020F5A14 +UNK_020F5A14: ; 0x020F5A14 + .incbin "baserom.nds", 0xf9a14, 0x30 + + .global UNK_020F5A44 +UNK_020F5A44: ; 0x020F5A44 + .incbin "baserom.nds", 0xf9a44, 0x30 + + .global UNK_020F5A74 +UNK_020F5A74: ; 0x020F5A74 + .incbin "baserom.nds", 0xf9a74, 0x50 + + .global UNK_020F5AC4 +UNK_020F5AC4: ; 0x020F5AC4 + .incbin "baserom.nds", 0xf9ac4, 0x80 + + .global UNK_020F5B44 +UNK_020F5B44: ; 0x020F5B44 + .incbin "baserom.nds", 0xf9b44, 0x4 + + .global UNK_020F5B48 +UNK_020F5B48: ; 0x020F5B48 + .incbin "baserom.nds", 0xf9b48, 0x4 + + .global UNK_020F5B4C +UNK_020F5B4C: ; 0x020F5B4C + .incbin "baserom.nds", 0xf9b4c, 0xb8 + + .global UNK_020F5C04 +UNK_020F5C04: ; 0x020F5C04 + .incbin "baserom.nds", 0xf9c04, 0x4 + + .global UNK_020F5C08 +UNK_020F5C08: ; 0x020F5C08 + .incbin "baserom.nds", 0xf9c08, 0xc + + .global UNK_020F5C14 +UNK_020F5C14: ; 0x020F5C14 + .incbin "baserom.nds", 0xf9c14, 0x100 + + .global UNK_020F5D14 +UNK_020F5D14: ; 0x020F5D14 + .incbin "baserom.nds", 0xf9d14, 0x8 + + .global UNK_020F5D1C +UNK_020F5D1C: ; 0x020F5D1C + .incbin "baserom.nds", 0xf9d1c, 0x18 + + .global UNK_020F5D34 +UNK_020F5D34: ; 0x020F5D34 + .incbin "baserom.nds", 0xf9d34, 0x4 + + .global UNK_020F5D38 +UNK_020F5D38: ; 0x020F5D38 + .incbin "baserom.nds", 0xf9d38, 0x24 + + .global UNK_020F5D5C +UNK_020F5D5C: ; 0x020F5D5C + .incbin "baserom.nds", 0xf9d5c, 0x10 + + .global UNK_020F5D6C +UNK_020F5D6C: ; 0x020F5D6C + .incbin "baserom.nds", 0xf9d6c, 0x10 + + .global UNK_020F5D7C +UNK_020F5D7C: ; 0x020F5D7C + .incbin "baserom.nds", 0xf9d7c, 0x10 + + .global UNK_020F5D8C +UNK_020F5D8C: ; 0x020F5D8C + .incbin "baserom.nds", 0xf9d8c, 0x10 + + .global UNK_020F5D9C +UNK_020F5D9C: ; 0x020F5D9C + .incbin "baserom.nds", 0xf9d9c, 0x10 + + .global UNK_020F5DAC +UNK_020F5DAC: ; 0x020F5DAC + .incbin "baserom.nds", 0xf9dac, 0x10 + + .global UNK_020F5DBC +UNK_020F5DBC: ; 0x020F5DBC + .incbin "baserom.nds", 0xf9dbc, 0x10 + + .global UNK_020F5DCC +UNK_020F5DCC: ; 0x020F5DCC + .incbin "baserom.nds", 0xf9dcc, 0x10 + + .global UNK_020F5DDC +UNK_020F5DDC: ; 0x020F5DDC + .incbin "baserom.nds", 0xf9ddc, 0x10 + + .global UNK_020F5DEC +UNK_020F5DEC: ; 0x020F5DEC + .incbin "baserom.nds", 0xf9dec, 0x10 + + .global UNK_020F5DFC +UNK_020F5DFC: ; 0x020F5DFC + .incbin "baserom.nds", 0xf9dfc, 0x10 + + .global UNK_020F5E0C +UNK_020F5E0C: ; 0x020F5E0C + .incbin "baserom.nds", 0xf9e0c, 0x10 + + .global UNK_020F5E1C +UNK_020F5E1C: ; 0x020F5E1C + .incbin "baserom.nds", 0xf9e1c, 0x10 + + .global UNK_020F5E2C +UNK_020F5E2C: ; 0x020F5E2C + .incbin "baserom.nds", 0xf9e2c, 0x10 + + .global UNK_020F5E3C +UNK_020F5E3C: ; 0x020F5E3C + .incbin "baserom.nds", 0xf9e3c, 0x10 + + .global UNK_020F5E4C +UNK_020F5E4C: ; 0x020F5E4C + .incbin "baserom.nds", 0xf9e4c, 0x10 + + .global UNK_020F5E5C +UNK_020F5E5C: ; 0x020F5E5C + .incbin "baserom.nds", 0xf9e5c, 0x10 + + .global UNK_020F5E6C +UNK_020F5E6C: ; 0x020F5E6C + .incbin "baserom.nds", 0xf9e6c, 0x10 + + .global UNK_020F5E7C +UNK_020F5E7C: ; 0x020F5E7C + .incbin "baserom.nds", 0xf9e7c, 0x10 + + .global UNK_020F5E8C +UNK_020F5E8C: ; 0x020F5E8C + .incbin "baserom.nds", 0xf9e8c, 0x10 + + .global UNK_020F5E9C +UNK_020F5E9C: ; 0x020F5E9C + .incbin "baserom.nds", 0xf9e9c, 0x10 + + .global UNK_020F5EAC +UNK_020F5EAC: ; 0x020F5EAC + .incbin "baserom.nds", 0xf9eac, 0x10 + + .global UNK_020F5EBC +UNK_020F5EBC: ; 0x020F5EBC + .incbin "baserom.nds", 0xf9ebc, 0x14 + + .global UNK_020F5ED0 +UNK_020F5ED0: ; 0x020F5ED0 + .incbin "baserom.nds", 0xf9ed0, 0x14 + + .global UNK_020F5EE4 +UNK_020F5EE4: ; 0x020F5EE4 + .incbin "baserom.nds", 0xf9ee4, 0x14 + + .global UNK_020F5EF8 +UNK_020F5EF8: ; 0x020F5EF8 + .incbin "baserom.nds", 0xf9ef8, 0x14 + + .global UNK_020F5F0C +UNK_020F5F0C: ; 0x020F5F0C + .incbin "baserom.nds", 0xf9f0c, 0x14 + + .global UNK_020F5F20 +UNK_020F5F20: ; 0x020F5F20 + .incbin "baserom.nds", 0xf9f20, 0x14 + + .global UNK_020F5F34 +UNK_020F5F34: ; 0x020F5F34 + .incbin "baserom.nds", 0xf9f34, 0x14 + + .global UNK_020F5F48 +UNK_020F5F48: ; 0x020F5F48 + .incbin "baserom.nds", 0xf9f48, 0x14 + + .global UNK_020F5F5C +UNK_020F5F5C: ; 0x020F5F5C + .incbin "baserom.nds", 0xf9f5c, 0x14 + + .global UNK_020F5F70 +UNK_020F5F70: ; 0x020F5F70 + .incbin "baserom.nds", 0xf9f70, 0x14 + + .global UNK_020F5F84 +UNK_020F5F84: ; 0x020F5F84 + .incbin "baserom.nds", 0xf9f84, 0x14 + + .global UNK_020F5F98 +UNK_020F5F98: ; 0x020F5F98 + .incbin "baserom.nds", 0xf9f98, 0x14 + + .global UNK_020F5FAC +UNK_020F5FAC: ; 0x020F5FAC + .incbin "baserom.nds", 0xf9fac, 0x14 + + .global UNK_020F5FC0 +UNK_020F5FC0: ; 0x020F5FC0 + .incbin "baserom.nds", 0xf9fc0, 0x14 + + .global UNK_020F5FD4 +UNK_020F5FD4: ; 0x020F5FD4 + .incbin "baserom.nds", 0xf9fd4, 0x14 + + .global UNK_020F5FE8 +UNK_020F5FE8: ; 0x020F5FE8 + .incbin "baserom.nds", 0xf9fe8, 0x14 + + .global UNK_020F5FFC +UNK_020F5FFC: ; 0x020F5FFC + .incbin "baserom.nds", 0xf9ffc, 0x14 + + .global UNK_020F6010 +UNK_020F6010: ; 0x020F6010 + .incbin "baserom.nds", 0xfa010, 0x14 + + .global UNK_020F6024 +UNK_020F6024: ; 0x020F6024 + .incbin "baserom.nds", 0xfa024, 0x14 + + .global UNK_020F6038 +UNK_020F6038: ; 0x020F6038 + .incbin "baserom.nds", 0xfa038, 0x14 + + .global UNK_020F604C +UNK_020F604C: ; 0x020F604C + .incbin "baserom.nds", 0xfa04c, 0x14 + + .global UNK_020F6060 +UNK_020F6060: ; 0x020F6060 + .incbin "baserom.nds", 0xfa060, 0x14 + + .global UNK_020F6074 +UNK_020F6074: ; 0x020F6074 + .incbin "baserom.nds", 0xfa074, 0x14 + + .global UNK_020F6088 +UNK_020F6088: ; 0x020F6088 + .incbin "baserom.nds", 0xfa088, 0x14 + + .global UNK_020F609C +UNK_020F609C: ; 0x020F609C + .incbin "baserom.nds", 0xfa09c, 0x14 + + .global UNK_020F60B0 +UNK_020F60B0: ; 0x020F60B0 + .incbin "baserom.nds", 0xfa0b0, 0x14 + + .global UNK_020F60C4 +UNK_020F60C4: ; 0x020F60C4 + .incbin "baserom.nds", 0xfa0c4, 0x14 + + .global UNK_020F60D8 +UNK_020F60D8: ; 0x020F60D8 + .incbin "baserom.nds", 0xfa0d8, 0x14 + + .global UNK_020F60EC +UNK_020F60EC: ; 0x020F60EC + .incbin "baserom.nds", 0xfa0ec, 0x14 + + .global UNK_020F6100 +UNK_020F6100: ; 0x020F6100 + .incbin "baserom.nds", 0xfa100, 0x14 + + .global UNK_020F6114 +UNK_020F6114: ; 0x020F6114 + .incbin "baserom.nds", 0xfa114, 0x14 + + .global UNK_020F6128 +UNK_020F6128: ; 0x020F6128 + .incbin "baserom.nds", 0xfa128, 0x14 + + .global UNK_020F613C +UNK_020F613C: ; 0x020F613C + .incbin "baserom.nds", 0xfa13c, 0x14 + + .global UNK_020F6150 +UNK_020F6150: ; 0x020F6150 + .incbin "baserom.nds", 0xfa150, 0x14 + + .global UNK_020F6164 +UNK_020F6164: ; 0x020F6164 + .incbin "baserom.nds", 0xfa164, 0x14 + + .global UNK_020F6178 +UNK_020F6178: ; 0x020F6178 + .incbin "baserom.nds", 0xfa178, 0x14 + + .global UNK_020F618C +UNK_020F618C: ; 0x020F618C + .incbin "baserom.nds", 0xfa18c, 0x14 + + .global UNK_020F61A0 +UNK_020F61A0: ; 0x020F61A0 + .incbin "baserom.nds", 0xfa1a0, 0x14 + + .global UNK_020F61B4 +UNK_020F61B4: ; 0x020F61B4 + .incbin "baserom.nds", 0xfa1b4, 0x14 + + .global UNK_020F61C8 +UNK_020F61C8: ; 0x020F61C8 + .incbin "baserom.nds", 0xfa1c8, 0x14 + + .global UNK_020F61DC +UNK_020F61DC: ; 0x020F61DC + .incbin "baserom.nds", 0xfa1dc, 0x14 + + .global UNK_020F61F0 +UNK_020F61F0: ; 0x020F61F0 + .incbin "baserom.nds", 0xfa1f0, 0x14 + + .global UNK_020F6204 +UNK_020F6204: ; 0x020F6204 + .incbin "baserom.nds", 0xfa204, 0x14 + + .global UNK_020F6218 +UNK_020F6218: ; 0x020F6218 + .incbin "baserom.nds", 0xfa218, 0x14 + + .global UNK_020F622C +UNK_020F622C: ; 0x020F622C + .incbin "baserom.nds", 0xfa22c, 0x14 + + .global UNK_020F6240 +UNK_020F6240: ; 0x020F6240 + .incbin "baserom.nds", 0xfa240, 0x14 + + .global UNK_020F6254 +UNK_020F6254: ; 0x020F6254 + .incbin "baserom.nds", 0xfa254, 0x14 + + .global UNK_020F6268 +UNK_020F6268: ; 0x020F6268 + .incbin "baserom.nds", 0xfa268, 0x14 + + .global UNK_020F627C +UNK_020F627C: ; 0x020F627C + .incbin "baserom.nds", 0xfa27c, 0x14 + + .global UNK_020F6290 +UNK_020F6290: ; 0x020F6290 + .incbin "baserom.nds", 0xfa290, 0x14 + + .global UNK_020F62A4 +UNK_020F62A4: ; 0x020F62A4 + .incbin "baserom.nds", 0xfa2a4, 0x14 + + .global UNK_020F62B8 +UNK_020F62B8: ; 0x020F62B8 + .incbin "baserom.nds", 0xfa2b8, 0x14 + + .global UNK_020F62CC +UNK_020F62CC: ; 0x020F62CC + .incbin "baserom.nds", 0xfa2cc, 0x14 + + .global UNK_020F62E0 +UNK_020F62E0: ; 0x020F62E0 + .incbin "baserom.nds", 0xfa2e0, 0x14 + + .global UNK_020F62F4 +UNK_020F62F4: ; 0x020F62F4 + .incbin "baserom.nds", 0xfa2f4, 0x14 + + .global UNK_020F6308 +UNK_020F6308: ; 0x020F6308 + .incbin "baserom.nds", 0xfa308, 0x5c + + .global UNK_020F6364 +UNK_020F6364: ; 0x020F6364 + .incbin "baserom.nds", 0xfa364, 0xdc + + .global UNK_020F6440 +UNK_020F6440: ; 0x020F6440 + .incbin "baserom.nds", 0xfa440, 0x1a4 + + .global UNK_020F65E4 +UNK_020F65E4: ; 0x020F65E4 + .incbin "baserom.nds", 0xfa5e4, 0xc + + .global UNK_020F65F0 +UNK_020F65F0: ; 0x020F65F0 + .incbin "baserom.nds", 0xfa5f0, 0xc + + .global UNK_020F65FC +UNK_020F65FC: ; 0x020F65FC + .incbin "baserom.nds", 0xfa5fc, 0xc + + .global UNK_020F6608 +UNK_020F6608: ; 0x020F6608 + .incbin "baserom.nds", 0xfa608, 0xc + + .global UNK_020F6614 +UNK_020F6614: ; 0x020F6614 + .incbin "baserom.nds", 0xfa614, 0xc + + .global UNK_020F6620 +UNK_020F6620: ; 0x020F6620 + .incbin "baserom.nds", 0xfa620, 0x10 + + .global UNK_020F6630 +UNK_020F6630: ; 0x020F6630 + .incbin "baserom.nds", 0xfa630, 0x10 + + .global UNK_020F6640 +UNK_020F6640: ; 0x020F6640 + .incbin "baserom.nds", 0xfa640, 0x10 + + .global UNK_020F6650 +UNK_020F6650: ; 0x020F6650 + .incbin "baserom.nds", 0xfa650, 0x10 + + .global UNK_020F6660 +UNK_020F6660: ; 0x020F6660 + .incbin "baserom.nds", 0xfa660, 0x10 + + .global UNK_020F6670 +UNK_020F6670: ; 0x020F6670 + .incbin "baserom.nds", 0xfa670, 0x8 + + .global UNK_020F6678 +UNK_020F6678: ; 0x020F6678 + .incbin "baserom.nds", 0xfa678, 0xc + + .global UNK_020F6684 +UNK_020F6684: ; 0x020F6684 + .incbin "baserom.nds", 0xfa684, 0xc + + .global UNK_020F6690 +UNK_020F6690: ; 0x020F6690 + .incbin "baserom.nds", 0xfa690, 0xc + + .global UNK_020F669C +UNK_020F669C: ; 0x020F669C + .incbin "baserom.nds", 0xfa69c, 0xc + + .global UNK_020F66A8 +UNK_020F66A8: ; 0x020F66A8 + .incbin "baserom.nds", 0xfa6a8, 0xc + + .global UNK_020F66B4 +UNK_020F66B4: ; 0x020F66B4 + .incbin "baserom.nds", 0xfa6b4, 0xc + + .global UNK_020F66C0 +UNK_020F66C0: ; 0x020F66C0 + .incbin "baserom.nds", 0xfa6c0, 0xc + + .global UNK_020F66CC +UNK_020F66CC: ; 0x020F66CC + .incbin "baserom.nds", 0xfa6cc, 0xc + + .global UNK_020F66D8 +UNK_020F66D8: ; 0x020F66D8 + .incbin "baserom.nds", 0xfa6d8, 0xc + + .global UNK_020F66E4 +UNK_020F66E4: ; 0x020F66E4 + .incbin "baserom.nds", 0xfa6e4, 0x10 + + .global UNK_020F66F4 +UNK_020F66F4: ; 0x020F66F4 + .incbin "baserom.nds", 0xfa6f4, 0x10 + + .global UNK_020F6704 +UNK_020F6704: ; 0x020F6704 + .incbin "baserom.nds", 0xfa704, 0x10 + + .global UNK_020F6714 +UNK_020F6714: ; 0x020F6714 + .incbin "baserom.nds", 0xfa714, 0x10 + + .global UNK_020F6724 +UNK_020F6724: ; 0x020F6724 + .incbin "baserom.nds", 0xfa724, 0x10 + + .global UNK_020F6734 +UNK_020F6734: ; 0x020F6734 + .incbin "baserom.nds", 0xfa734, 0x10 + + .global UNK_020F6744 +UNK_020F6744: ; 0x020F6744 + .incbin "baserom.nds", 0xfa744, 0x10 + + .global UNK_020F6754 +UNK_020F6754: ; 0x020F6754 + .incbin "baserom.nds", 0xfa754, 0x10 + + .global UNK_020F6764 +UNK_020F6764: ; 0x020F6764 + .incbin "baserom.nds", 0xfa764, 0x10 + + .global UNK_020F6774 +UNK_020F6774: ; 0x020F6774 + .incbin "baserom.nds", 0xfa774, 0x10 + + .global UNK_020F6784 +UNK_020F6784: ; 0x020F6784 + .incbin "baserom.nds", 0xfa784, 0x10 + + .global UNK_020F6794 +UNK_020F6794: ; 0x020F6794 + .incbin "baserom.nds", 0xfa794, 0x10 + + .global UNK_020F67A4 +UNK_020F67A4: ; 0x020F67A4 + .incbin "baserom.nds", 0xfa7a4, 0x10 + + .global UNK_020F67B4 +UNK_020F67B4: ; 0x020F67B4 + .incbin "baserom.nds", 0xfa7b4, 0x10 + + .global UNK_020F67C4 +UNK_020F67C4: ; 0x020F67C4 + .incbin "baserom.nds", 0xfa7c4, 0x10 + + .global UNK_020F67D4 +UNK_020F67D4: ; 0x020F67D4 + .incbin "baserom.nds", 0xfa7d4, 0x10 + + .global UNK_020F67E4 +UNK_020F67E4: ; 0x020F67E4 + .incbin "baserom.nds", 0xfa7e4, 0x10 + + .global UNK_020F67F4 +UNK_020F67F4: ; 0x020F67F4 + .incbin "baserom.nds", 0xfa7f4, 0x10 + + .global UNK_020F6804 +UNK_020F6804: ; 0x020F6804 + .incbin "baserom.nds", 0xfa804, 0x10 + + .global UNK_020F6814 +UNK_020F6814: ; 0x020F6814 + .incbin "baserom.nds", 0xfa814, 0x10 + + .global UNK_020F6824 +UNK_020F6824: ; 0x020F6824 + .incbin "baserom.nds", 0xfa824, 0x10 + + .global UNK_020F6834 +UNK_020F6834: ; 0x020F6834 + .incbin "baserom.nds", 0xfa834, 0x10 + + .global UNK_020F6844 +UNK_020F6844: ; 0x020F6844 + .incbin "baserom.nds", 0xfa844, 0x10 + + .global UNK_020F6854 +UNK_020F6854: ; 0x020F6854 + .incbin "baserom.nds", 0xfa854, 0x10 + + .global UNK_020F6864 +UNK_020F6864: ; 0x020F6864 + .incbin "baserom.nds", 0xfa864, 0x10 + + .global UNK_020F6874 +UNK_020F6874: ; 0x020F6874 + .incbin "baserom.nds", 0xfa874, 0x10 + + .global UNK_020F6884 +UNK_020F6884: ; 0x020F6884 + .incbin "baserom.nds", 0xfa884, 0x10 + + .global UNK_020F6894 +UNK_020F6894: ; 0x020F6894 + .incbin "baserom.nds", 0xfa894, 0x10 + + .global UNK_020F68A4 +UNK_020F68A4: ; 0x020F68A4 + .incbin "baserom.nds", 0xfa8a4, 0x10 + + .global UNK_020F68B4 +UNK_020F68B4: ; 0x020F68B4 + .incbin "baserom.nds", 0xfa8b4, 0x10 + + .global UNK_020F68C4 +UNK_020F68C4: ; 0x020F68C4 + .incbin "baserom.nds", 0xfa8c4, 0x14 + + .global UNK_020F68D8 +UNK_020F68D8: ; 0x020F68D8 + .incbin "baserom.nds", 0xfa8d8, 0x14 + + .global UNK_020F68EC +UNK_020F68EC: ; 0x020F68EC + .incbin "baserom.nds", 0xfa8ec, 0x14 + + .global UNK_020F6900 +UNK_020F6900: ; 0x020F6900 + .incbin "baserom.nds", 0xfa900, 0x14 + + .global UNK_020F6914 +UNK_020F6914: ; 0x020F6914 + .incbin "baserom.nds", 0xfa914, 0x14 + + .global UNK_020F6928 +UNK_020F6928: ; 0x020F6928 + .incbin "baserom.nds", 0xfa928, 0x14 + + .global UNK_020F693C +UNK_020F693C: ; 0x020F693C + .incbin "baserom.nds", 0xfa93c, 0x14 + + .global UNK_020F6950 +UNK_020F6950: ; 0x020F6950 + .incbin "baserom.nds", 0xfa950, 0x14 + + .global UNK_020F6964 +UNK_020F6964: ; 0x020F6964 + .incbin "baserom.nds", 0xfa964, 0x20 + + .global UNK_020F6984 +UNK_020F6984: ; 0x020F6984 + .incbin "baserom.nds", 0xfa984, 0x38 + + .global UNK_020F69BC +UNK_020F69BC: ; 0x020F69BC + .incbin "baserom.nds", 0xfa9bc, 0x140 + + .global UNK_020F6AFC +UNK_020F6AFC: ; 0x020F6AFC + .incbin "baserom.nds", 0xfaafc, 0x8 + + .global UNK_020F6B04 +UNK_020F6B04: ; 0x020F6B04 + .incbin "baserom.nds", 0xfab04, 0x8 + + .global UNK_020F6B0C +UNK_020F6B0C: ; 0x020F6B0C + .incbin "baserom.nds", 0xfab0c, 0x8 + + .global UNK_020F6B14 +UNK_020F6B14: ; 0x020F6B14 + .incbin "baserom.nds", 0xfab14, 0x8 + + .global UNK_020F6B1C +UNK_020F6B1C: ; 0x020F6B1C + .incbin "baserom.nds", 0xfab1c, 0x8 + + .global UNK_020F6B24 +UNK_020F6B24: ; 0x020F6B24 + .incbin "baserom.nds", 0xfab24, 0x8 + + .global UNK_020F6B2C +UNK_020F6B2C: ; 0x020F6B2C + .incbin "baserom.nds", 0xfab2c, 0x8 + + .global UNK_020F6B34 +UNK_020F6B34: ; 0x020F6B34 + .incbin "baserom.nds", 0xfab34, 0x8 + + .global UNK_020F6B3C +UNK_020F6B3C: ; 0x020F6B3C + .incbin "baserom.nds", 0xfab3c, 0x8 + + .global UNK_020F6B44 +UNK_020F6B44: ; 0x020F6B44 + .incbin "baserom.nds", 0xfab44, 0x8 + + .global UNK_020F6B4C +UNK_020F6B4C: ; 0x020F6B4C + .incbin "baserom.nds", 0xfab4c, 0xc + + .global UNK_020F6B58 +UNK_020F6B58: ; 0x020F6B58 + .incbin "baserom.nds", 0xfab58, 0xc + + .global UNK_020F6B64 +UNK_020F6B64: ; 0x020F6B64 + .incbin "baserom.nds", 0xfab64, 0xc + + .global UNK_020F6B70 +UNK_020F6B70: ; 0x020F6B70 + .incbin "baserom.nds", 0xfab70, 0xc + + .global UNK_020F6B7C +UNK_020F6B7C: ; 0x020F6B7C + .incbin "baserom.nds", 0xfab7c, 0xc + + .global UNK_020F6B88 +UNK_020F6B88: ; 0x020F6B88 + .incbin "baserom.nds", 0xfab88, 0xc + + .global UNK_020F6B94 +UNK_020F6B94: ; 0x020F6B94 + .incbin "baserom.nds", 0xfab94, 0xc + + .global UNK_020F6BA0 +UNK_020F6BA0: ; 0x020F6BA0 + .incbin "baserom.nds", 0xfaba0, 0xc + + .global UNK_020F6BAC +UNK_020F6BAC: ; 0x020F6BAC + .incbin "baserom.nds", 0xfabac, 0xc + + .global UNK_020F6BB8 +UNK_020F6BB8: ; 0x020F6BB8 + .incbin "baserom.nds", 0xfabb8, 0xc + + .global UNK_020F6BC4 +UNK_020F6BC4: ; 0x020F6BC4 + .incbin "baserom.nds", 0xfabc4, 0xc + + .global UNK_020F6BD0 +UNK_020F6BD0: ; 0x020F6BD0 + .incbin "baserom.nds", 0xfabd0, 0xc + + .global UNK_020F6BDC +UNK_020F6BDC: ; 0x020F6BDC + .incbin "baserom.nds", 0xfabdc, 0xc + + .global UNK_020F6BE8 +UNK_020F6BE8: ; 0x020F6BE8 + .incbin "baserom.nds", 0xfabe8, 0xc + + .global UNK_020F6BF4 +UNK_020F6BF4: ; 0x020F6BF4 + .incbin "baserom.nds", 0xfabf4, 0xc + + .global UNK_020F6C00 +UNK_020F6C00: ; 0x020F6C00 + .incbin "baserom.nds", 0xfac00, 0xc + + .global UNK_020F6C0C +UNK_020F6C0C: ; 0x020F6C0C + .incbin "baserom.nds", 0xfac0c, 0xc + + .global UNK_020F6C18 +UNK_020F6C18: ; 0x020F6C18 + .incbin "baserom.nds", 0xfac18, 0xc + + .global UNK_020F6C24 +UNK_020F6C24: ; 0x020F6C24 + .incbin "baserom.nds", 0xfac24, 0xc + + .global UNK_020F6C30 +UNK_020F6C30: ; 0x020F6C30 + .incbin "baserom.nds", 0xfac30, 0xc + + .global UNK_020F6C3C +UNK_020F6C3C: ; 0x020F6C3C + .incbin "baserom.nds", 0xfac3c, 0xc + + .global UNK_020F6C48 +UNK_020F6C48: ; 0x020F6C48 + .incbin "baserom.nds", 0xfac48, 0xc + + .global UNK_020F6C54 +UNK_020F6C54: ; 0x020F6C54 + .incbin "baserom.nds", 0xfac54, 0x18 + + .global UNK_020F6C6C +UNK_020F6C6C: ; 0x020F6C6C + .incbin "baserom.nds", 0xfac6c, 0x18 + + .global UNK_020F6C84 +UNK_020F6C84: ; 0x020F6C84 + .incbin "baserom.nds", 0xfac84, 0x1c + + .global UNK_020F6CA0 +UNK_020F6CA0: ; 0x020F6CA0 + .incbin "baserom.nds", 0xfaca0, 0x40 + + .global UNK_020F6CE0 +UNK_020F6CE0: ; 0x020F6CE0 + .incbin "baserom.nds", 0xface0, 0x40 + + .global UNK_020F6D20 +UNK_020F6D20: ; 0x020F6D20 + .incbin "baserom.nds", 0xfad20, 0x40 + + .global UNK_020F6D60 +UNK_020F6D60: ; 0x020F6D60 + .incbin "baserom.nds", 0xfad60, 0xc + + .global UNK_020F6D6C +UNK_020F6D6C: ; 0x020F6D6C + .incbin "baserom.nds", 0xfad6c, 0xc + + .global UNK_020F6D78 +UNK_020F6D78: ; 0x020F6D78 + .incbin "baserom.nds", 0xfad78, 0xc + + .global UNK_020F6D84 +UNK_020F6D84: ; 0x020F6D84 + .incbin "baserom.nds", 0xfad84, 0xc + + .global UNK_020F6D90 +UNK_020F6D90: ; 0x020F6D90 + .incbin "baserom.nds", 0xfad90, 0xc + + .global UNK_020F6D9C +UNK_020F6D9C: ; 0x020F6D9C + .incbin "baserom.nds", 0xfad9c, 0xc + + .global UNK_020F6DA8 +UNK_020F6DA8: ; 0x020F6DA8 + .incbin "baserom.nds", 0xfada8, 0xc + + .global UNK_020F6DB4 +UNK_020F6DB4: ; 0x020F6DB4 + .incbin "baserom.nds", 0xfadb4, 0xc + + .global UNK_020F6DC0 +UNK_020F6DC0: ; 0x020F6DC0 + .incbin "baserom.nds", 0xfadc0, 0xc + + .global UNK_020F6DCC +UNK_020F6DCC: ; 0x020F6DCC + .incbin "baserom.nds", 0xfadcc, 0xc + + .global UNK_020F6DD8 +UNK_020F6DD8: ; 0x020F6DD8 + .incbin "baserom.nds", 0xfadd8, 0xc + + .global UNK_020F6DE4 +UNK_020F6DE4: ; 0x020F6DE4 + .incbin "baserom.nds", 0xfade4, 0xc + + .global UNK_020F6DF0 +UNK_020F6DF0: ; 0x020F6DF0 + .incbin "baserom.nds", 0xfadf0, 0xc + + .global UNK_020F6DFC +UNK_020F6DFC: ; 0x020F6DFC + .incbin "baserom.nds", 0xfadfc, 0xc + + .global UNK_020F6E08 +UNK_020F6E08: ; 0x020F6E08 + .incbin "baserom.nds", 0xfae08, 0xc + + .global UNK_020F6E14 +UNK_020F6E14: ; 0x020F6E14 + .incbin "baserom.nds", 0xfae14, 0xc + + .global UNK_020F6E20 +UNK_020F6E20: ; 0x020F6E20 + .incbin "baserom.nds", 0xfae20, 0xc + + .global UNK_020F6E2C +UNK_020F6E2C: ; 0x020F6E2C + .incbin "baserom.nds", 0xfae2c, 0xc + + .global UNK_020F6E38 +UNK_020F6E38: ; 0x020F6E38 + .incbin "baserom.nds", 0xfae38, 0xc + + .global UNK_020F6E44 +UNK_020F6E44: ; 0x020F6E44 + .incbin "baserom.nds", 0xfae44, 0xc + + .global UNK_020F6E50 +UNK_020F6E50: ; 0x020F6E50 + .incbin "baserom.nds", 0xfae50, 0xc + + .global UNK_020F6E5C +UNK_020F6E5C: ; 0x020F6E5C + .incbin "baserom.nds", 0xfae5c, 0xc + + .global UNK_020F6E68 +UNK_020F6E68: ; 0x020F6E68 + .incbin "baserom.nds", 0xfae68, 0xc + + .global UNK_020F6E74 +UNK_020F6E74: ; 0x020F6E74 + .incbin "baserom.nds", 0xfae74, 0xc + + .global UNK_020F6E80 +UNK_020F6E80: ; 0x020F6E80 + .incbin "baserom.nds", 0xfae80, 0xc + + .global UNK_020F6E8C +UNK_020F6E8C: ; 0x020F6E8C + .incbin "baserom.nds", 0xfae8c, 0xc + + .global UNK_020F6E98 +UNK_020F6E98: ; 0x020F6E98 + .incbin "baserom.nds", 0xfae98, 0xc + + .global UNK_020F6EA4 +UNK_020F6EA4: ; 0x020F6EA4 + .incbin "baserom.nds", 0xfaea4, 0xc + + .global UNK_020F6EB0 +UNK_020F6EB0: ; 0x020F6EB0 + .incbin "baserom.nds", 0xfaeb0, 0xc + + .global UNK_020F6EBC +UNK_020F6EBC: ; 0x020F6EBC + .incbin "baserom.nds", 0xfaebc, 0xc + + .global UNK_020F6EC8 +UNK_020F6EC8: ; 0x020F6EC8 + .incbin "baserom.nds", 0xfaec8, 0xc + + .global UNK_020F6ED4 +UNK_020F6ED4: ; 0x020F6ED4 + .incbin "baserom.nds", 0xfaed4, 0xc + + .global UNK_020F6EE0 +UNK_020F6EE0: ; 0x020F6EE0 + .incbin "baserom.nds", 0xfaee0, 0xc + + .global UNK_020F6EEC +UNK_020F6EEC: ; 0x020F6EEC + .incbin "baserom.nds", 0xfaeec, 0xc + + .global UNK_020F6EF8 +UNK_020F6EF8: ; 0x020F6EF8 + .incbin "baserom.nds", 0xfaef8, 0xc + + .global UNK_020F6F04 +UNK_020F6F04: ; 0x020F6F04 + .incbin "baserom.nds", 0xfaf04, 0xc + + .global UNK_020F6F10 +UNK_020F6F10: ; 0x020F6F10 + .incbin "baserom.nds", 0xfaf10, 0xc + + .global UNK_020F6F1C +UNK_020F6F1C: ; 0x020F6F1C + .incbin "baserom.nds", 0xfaf1c, 0xc + + .global UNK_020F6F28 +UNK_020F6F28: ; 0x020F6F28 + .incbin "baserom.nds", 0xfaf28, 0xc + + .global UNK_020F6F34 +UNK_020F6F34: ; 0x020F6F34 + .incbin "baserom.nds", 0xfaf34, 0xc + + .global UNK_020F6F40 +UNK_020F6F40: ; 0x020F6F40 + .incbin "baserom.nds", 0xfaf40, 0xc + + .global UNK_020F6F4C +UNK_020F6F4C: ; 0x020F6F4C + .incbin "baserom.nds", 0xfaf4c, 0xc + + .global UNK_020F6F58 +UNK_020F6F58: ; 0x020F6F58 + .incbin "baserom.nds", 0xfaf58, 0xc + + .global UNK_020F6F64 +UNK_020F6F64: ; 0x020F6F64 + .incbin "baserom.nds", 0xfaf64, 0xc + + .global UNK_020F6F70 +UNK_020F6F70: ; 0x020F6F70 + .incbin "baserom.nds", 0xfaf70, 0xc + + .global UNK_020F6F7C +UNK_020F6F7C: ; 0x020F6F7C + .incbin "baserom.nds", 0xfaf7c, 0xc + + .global UNK_020F6F88 +UNK_020F6F88: ; 0x020F6F88 + .incbin "baserom.nds", 0xfaf88, 0xc + + .global UNK_020F6F94 +UNK_020F6F94: ; 0x020F6F94 + .incbin "baserom.nds", 0xfaf94, 0xc + + .global UNK_020F6FA0 +UNK_020F6FA0: ; 0x020F6FA0 + .incbin "baserom.nds", 0xfafa0, 0xc + + .global UNK_020F6FAC +UNK_020F6FAC: ; 0x020F6FAC + .incbin "baserom.nds", 0xfafac, 0xc + + .global UNK_020F6FB8 +UNK_020F6FB8: ; 0x020F6FB8 + .incbin "baserom.nds", 0xfafb8, 0xc + + .global UNK_020F6FC4 +UNK_020F6FC4: ; 0x020F6FC4 + .incbin "baserom.nds", 0xfafc4, 0xc + + .global UNK_020F6FD0 +UNK_020F6FD0: ; 0x020F6FD0 + .incbin "baserom.nds", 0xfafd0, 0xc + + .global UNK_020F6FDC +UNK_020F6FDC: ; 0x020F6FDC + .incbin "baserom.nds", 0xfafdc, 0xc + + .global UNK_020F6FE8 +UNK_020F6FE8: ; 0x020F6FE8 + .incbin "baserom.nds", 0xfafe8, 0xc + + .global UNK_020F6FF4 +UNK_020F6FF4: ; 0x020F6FF4 + .incbin "baserom.nds", 0xfaff4, 0xc + + .global UNK_020F7000 +UNK_020F7000: ; 0x020F7000 + .incbin "baserom.nds", 0xfb000, 0xc + + .global UNK_020F700C +UNK_020F700C: ; 0x020F700C + .incbin "baserom.nds", 0xfb00c, 0xc + + .global UNK_020F7018 +UNK_020F7018: ; 0x020F7018 + .incbin "baserom.nds", 0xfb018, 0xc + + .global UNK_020F7024 +UNK_020F7024: ; 0x020F7024 + .incbin "baserom.nds", 0xfb024, 0xc + + .global UNK_020F7030 +UNK_020F7030: ; 0x020F7030 + .incbin "baserom.nds", 0xfb030, 0xc + + .global UNK_020F703C +UNK_020F703C: ; 0x020F703C + .incbin "baserom.nds", 0xfb03c, 0xc + + .global UNK_020F7048 +UNK_020F7048: ; 0x020F7048 + .incbin "baserom.nds", 0xfb048, 0xc + + .global UNK_020F7054 +UNK_020F7054: ; 0x020F7054 + .incbin "baserom.nds", 0xfb054, 0xc + + .global UNK_020F7060 +UNK_020F7060: ; 0x020F7060 + .incbin "baserom.nds", 0xfb060, 0xc + + .global UNK_020F706C +UNK_020F706C: ; 0x020F706C + .incbin "baserom.nds", 0xfb06c, 0xc + + .global UNK_020F7078 +UNK_020F7078: ; 0x020F7078 + .incbin "baserom.nds", 0xfb078, 0xc + + .global UNK_020F7084 +UNK_020F7084: ; 0x020F7084 + .incbin "baserom.nds", 0xfb084, 0xc + + .global UNK_020F7090 +UNK_020F7090: ; 0x020F7090 + .incbin "baserom.nds", 0xfb090, 0xc + + .global UNK_020F709C +UNK_020F709C: ; 0x020F709C + .incbin "baserom.nds", 0xfb09c, 0xc + + .global UNK_020F70A8 +UNK_020F70A8: ; 0x020F70A8 + .incbin "baserom.nds", 0xfb0a8, 0xc + + .global UNK_020F70B4 +UNK_020F70B4: ; 0x020F70B4 + .incbin "baserom.nds", 0xfb0b4, 0xc + + .global UNK_020F70C0 +UNK_020F70C0: ; 0x020F70C0 + .incbin "baserom.nds", 0xfb0c0, 0xc + + .global UNK_020F70CC +UNK_020F70CC: ; 0x020F70CC + .incbin "baserom.nds", 0xfb0cc, 0xc + + .global UNK_020F70D8 +UNK_020F70D8: ; 0x020F70D8 + .incbin "baserom.nds", 0xfb0d8, 0x10 + + .global UNK_020F70E8 +UNK_020F70E8: ; 0x020F70E8 + .incbin "baserom.nds", 0xfb0e8, 0x10 + + .global UNK_020F70F8 +UNK_020F70F8: ; 0x020F70F8 + .incbin "baserom.nds", 0xfb0f8, 0x20 + + .global UNK_020F7118 +UNK_020F7118: ; 0x020F7118 + .incbin "baserom.nds", 0xfb118, 0x30 + + .global UNK_020F7148 +UNK_020F7148: ; 0x020F7148 + .incbin "baserom.nds", 0xfb148, 0x30 + + .global UNK_020F7178 +UNK_020F7178: ; 0x020F7178 + .incbin "baserom.nds", 0xfb178, 0x30 + + .global UNK_020F71A8 +UNK_020F71A8: ; 0x020F71A8 + .incbin "baserom.nds", 0xfb1a8, 0x10 + + .global UNK_020F71B8 +UNK_020F71B8: ; 0x020F71B8 + .incbin "baserom.nds", 0xfb1b8, 0x48 + + .global UNK_020F7200 +UNK_020F7200: ; 0x020F7200 + .incbin "baserom.nds", 0xfb200, 0x20 + + .global UNK_020F7220 +UNK_020F7220: ; 0x020F7220 + .incbin "baserom.nds", 0xfb220, 0x20 + + .global UNK_020F7240 +UNK_020F7240: ; 0x020F7240 + .incbin "baserom.nds", 0xfb240, 0x20 + + .global UNK_020F7260 +UNK_020F7260: ; 0x020F7260 + .incbin "baserom.nds", 0xfb260, 0x4 + + .global UNK_020F7264 +UNK_020F7264: ; 0x020F7264 + .incbin "baserom.nds", 0xfb264, 0x4 + + .global UNK_020F7268 +UNK_020F7268: ; 0x020F7268 + .incbin "baserom.nds", 0xfb268, 0x10c + + .global UNK_020F7374 +UNK_020F7374: ; 0x020F7374 + .incbin "baserom.nds", 0xfb374, 0xc + + .global UNK_020F7380 +UNK_020F7380: ; 0x020F7380 + .incbin "baserom.nds", 0xfb380, 0x8 + + .global UNK_020F7388 +UNK_020F7388: ; 0x020F7388 + .incbin "baserom.nds", 0xfb388, 0x8 + + .global UNK_020F7390 +UNK_020F7390: ; 0x020F7390 + .incbin "baserom.nds", 0xfb390, 0x8 + + .global UNK_020F7398 +UNK_020F7398: ; 0x020F7398 + .incbin "baserom.nds", 0xfb398, 0xc + + .global UNK_020F73A4 +UNK_020F73A4: ; 0x020F73A4 + .incbin "baserom.nds", 0xfb3a4, 0xc + + .global UNK_020F73B0 +UNK_020F73B0: ; 0x020F73B0 + .incbin "baserom.nds", 0xfb3b0, 0x18 + + .global UNK_020F73C8 +UNK_020F73C8: ; 0x020F73C8 + .incbin "baserom.nds", 0xfb3c8, 0x68 + + .global UNK_020F7430 +UNK_020F7430: ; 0x020F7430 + .incbin "baserom.nds", 0xfb430, 0x6 + + .global UNK_020F7436 +UNK_020F7436: ; 0x020F7436 + .incbin "baserom.nds", 0xfb436, 0xa + + .global UNK_020F7440 +UNK_020F7440: ; 0x020F7440 + .incbin "baserom.nds", 0xfb440, 0x14 + + .global UNK_020F7454 +UNK_020F7454: ; 0x020F7454 + .incbin "baserom.nds", 0xfb454, 0xc + + .global UNK_020F7460 +UNK_020F7460: ; 0x020F7460 + .incbin "baserom.nds", 0xfb460, 0x74 + + .global UNK_020F74D4 +UNK_020F74D4: ; 0x020F74D4 + .incbin "baserom.nds", 0xfb4d4, 0x15c + + .global UNK_020F7630 +UNK_020F7630: ; 0x020F7630 + .incbin "baserom.nds", 0xfb630, 0x10 + + .global UNK_020F7640 +UNK_020F7640: ; 0x020F7640 + .incbin "baserom.nds", 0xfb640, 0x10 + + .global UNK_020F7650 +UNK_020F7650: ; 0x020F7650 + .incbin "baserom.nds", 0xfb650, 0x8 + + .global UNK_020F7658 +UNK_020F7658: ; 0x020F7658 + .incbin "baserom.nds", 0xfb658, 0x24 + + .global UNK_020F767C +UNK_020F767C: ; 0x020F767C + .incbin "baserom.nds", 0xfb67c, 0x30 + + .global UNK_020F76AC +UNK_020F76AC: ; 0x020F76AC + .incbin "baserom.nds", 0xfb6ac, 0x48 + + .global UNK_020F76F4 +UNK_020F76F4: ; 0x020F76F4 + .incbin "baserom.nds", 0xfb6f4, 0x68 + + .global UNK_020F775C +UNK_020F775C: ; 0x020F775C + .incbin "baserom.nds", 0xfb75c, 0x88 + + .global UNK_020F77E4 +UNK_020F77E4: ; 0x020F77E4 + .incbin "baserom.nds", 0xfb7e4, 0xc0 + + .global UNK_020F78A4 +UNK_020F78A4: ; 0x020F78A4 + .incbin "baserom.nds", 0xfb8a4, 0x2 + + .global UNK_020F78A6 +UNK_020F78A6: ; 0x020F78A6 + .incbin "baserom.nds", 0xfb8a6, 0x148 + + .global UNK_020F79EE +UNK_020F79EE: ; 0x020F79EE + .incbin "baserom.nds", 0xfb9ee, 0x1da + + .global UNK_020F7BC8 +UNK_020F7BC8: ; 0x020F7BC8 + .incbin "baserom.nds", 0xfbbc8, 0x8 + + .global UNK_020F7BD0 +UNK_020F7BD0: ; 0x020F7BD0 + .incbin "baserom.nds", 0xfbbd0, 0xc + + .global UNK_020F7BDC +UNK_020F7BDC: ; 0x020F7BDC + .incbin "baserom.nds", 0xfbbdc, 0x18 + + .global UNK_020F7BF4 +UNK_020F7BF4: ; 0x020F7BF4 + .incbin "baserom.nds", 0xfbbf4, 0x18 + + .global UNK_020F7C0C +UNK_020F7C0C: ; 0x020F7C0C + .incbin "baserom.nds", 0xfbc0c, 0x20 + + .global UNK_020F7C2C +UNK_020F7C2C: ; 0x020F7C2C + .incbin "baserom.nds", 0xfbc2c, 0x20 + + .global UNK_020F7C4C +UNK_020F7C4C: ; 0x020F7C4C + .incbin "baserom.nds", 0xfbc4c, 0x30 + + .global UNK_020F7C7C +UNK_020F7C7C: ; 0x020F7C7C + .incbin "baserom.nds", 0xfbc7c, 0x68 + + .global UNK_020F7CE4 +UNK_020F7CE4: ; 0x020F7CE4 + .incbin "baserom.nds", 0xfbce4, 0x4 + + .global UNK_020F7CE8 +UNK_020F7CE8: ; 0x020F7CE8 + .incbin "baserom.nds", 0xfbce8, 0x64 + + .global UNK_020F7D4C +UNK_020F7D4C: ; 0x020F7D4C + .incbin "baserom.nds", 0xfbd4c, 0x18 + + .global UNK_020F7D64 +UNK_020F7D64: ; 0x020F7D64 + .incbin "baserom.nds", 0xfbd64, 0xc + + .global UNK_020F7D70 +UNK_020F7D70: ; 0x020F7D70 + .incbin "baserom.nds", 0xfbd70, 0x4 + + .global UNK_020F7D74 +UNK_020F7D74: ; 0x020F7D74 + .incbin "baserom.nds", 0xfbd74, 0xc + + .global UNK_020F7D80 +UNK_020F7D80: ; 0x020F7D80 + .incbin "baserom.nds", 0xfbd80, 0x4 + + .global UNK_020F7D84 +UNK_020F7D84: ; 0x020F7D84 + .incbin "baserom.nds", 0xfbd84, 0xc4 + + .global UNK_020F7E48 +UNK_020F7E48: ; 0x020F7E48 + .incbin "baserom.nds", 0xfbe48, 0xc + + .global UNK_020F7E54 +UNK_020F7E54: ; 0x020F7E54 + .incbin "baserom.nds", 0xfbe54, 0x18 + + .global UNK_020F7E6C +UNK_020F7E6C: ; 0x020F7E6C + .incbin "baserom.nds", 0xfbe6c, 0x8 + + .global UNK_020F7E74 +UNK_020F7E74: ; 0x020F7E74 + .incbin "baserom.nds", 0xfbe74, 0x8 + + .global UNK_020F7E7C +UNK_020F7E7C: ; 0x020F7E7C + .incbin "baserom.nds", 0xfbe7c, 0x8 + + .global UNK_020F7E84 +UNK_020F7E84: ; 0x020F7E84 + .incbin "baserom.nds", 0xfbe84, 0x8 + + .global UNK_020F7E8C +UNK_020F7E8C: ; 0x020F7E8C + .incbin "baserom.nds", 0xfbe8c, 0x20 + + .global UNK_020F7EAC +UNK_020F7EAC: ; 0x020F7EAC + .incbin "baserom.nds", 0xfbeac, 0x20 + + .global UNK_020F7ECC +UNK_020F7ECC: ; 0x020F7ECC + .incbin "baserom.nds", 0xfbecc, 0x2 + + .global UNK_020F7ECE +UNK_020F7ECE: ; 0x020F7ECE + .incbin "baserom.nds", 0xfbece, 0x6 + + .global UNK_020F7ED4 +UNK_020F7ED4: ; 0x020F7ED4 + .incbin "baserom.nds", 0xfbed4, 0x1e + + .global UNK_020F7EF2 +UNK_020F7EF2: ; 0x020F7EF2 + .incbin "baserom.nds", 0xfbef2, 0x24 + + .global UNK_020F7F16 +UNK_020F7F16: ; 0x020F7F16 + .incbin "baserom.nds", 0xfbf16, 0x7d + + .global UNK_020F7F93 +UNK_020F7F93: ; 0x020F7F93 + .incbin "baserom.nds", 0xfbf93, 0x7d + + .global UNK_020F8010 +UNK_020F8010: ; 0x020F8010 + .incbin "baserom.nds", 0xfc010, 0x64 + + .global UNK_020F8074 +UNK_020F8074: ; 0x020F8074 + .incbin "baserom.nds", 0xfc074, 0x218 + + .global UNK_020F828C +UNK_020F828C: ; 0x020F828C + .incbin "baserom.nds", 0xfc28c, 0x90 + + .global UNK_020F831C +UNK_020F831C: ; 0x020F831C + .incbin "baserom.nds", 0xfc31c, 0x4 + + .global UNK_020F8320 +UNK_020F8320: ; 0x020F8320 + .incbin "baserom.nds", 0xfc320, 0x8 + + .global UNK_020F8328 +UNK_020F8328: ; 0x020F8328 + .incbin "baserom.nds", 0xfc328, 0x10 + + .global UNK_020F8338 +UNK_020F8338: ; 0x020F8338 + .incbin "baserom.nds", 0xfc338, 0x1c + + .global UNK_020F8354 +UNK_020F8354: ; 0x020F8354 + .incbin "baserom.nds", 0xfc354, 0x28 + + .global UNK_020F837C +UNK_020F837C: ; 0x020F837C + .incbin "baserom.nds", 0xfc37c, 0x54 + + .global UNK_020F83D0 +UNK_020F83D0: ; 0x020F83D0 + .incbin "baserom.nds", 0xfc3d0, 0x4 + + .global UNK_020F83D4 +UNK_020F83D4: ; 0x020F83D4 + .incbin "baserom.nds", 0xfc3d4, 0xc + + .global UNK_020F83E0 +UNK_020F83E0: ; 0x020F83E0 + .incbin "baserom.nds", 0xfc3e0, 0x5c + + .global UNK_020F843C +UNK_020F843C: ; 0x020F843C + .incbin "baserom.nds", 0xfc43c, 0x18 + + .global UNK_020F8454 +UNK_020F8454: ; 0x020F8454 + .incbin "baserom.nds", 0xfc454, 0x18 + + .global UNK_020F846C +UNK_020F846C: ; 0x020F846C + .incbin "baserom.nds", 0xfc46c, 0x80 + + .global UNK_020F84EC +UNK_020F84EC: ; 0x020F84EC + .incbin "baserom.nds", 0xfc4ec, 0xc8 + + .global UNK_020F85B4 +UNK_020F85B4: ; 0x020F85B4 + .incbin "baserom.nds", 0xfc5b4, 0x2 + + .global UNK_020F85B6 +UNK_020F85B6: ; 0x020F85B6 + .incbin "baserom.nds", 0xfc5b6, 0x2 + + .global UNK_020F85B8 +UNK_020F85B8: ; 0x020F85B8 + .incbin "baserom.nds", 0xfc5b8, 0x2 + + .global UNK_020F85BA +UNK_020F85BA: ; 0x020F85BA + .incbin "baserom.nds", 0xfc5ba, 0xe82 + + .global UNK_020F943C +UNK_020F943C: ; 0x020F943C + .incbin "baserom.nds", 0xfd43c, 0x10 + + .global UNK_020F944C +UNK_020F944C: ; 0x020F944C + .incbin "baserom.nds", 0xfd44c, 0x1 + + .global UNK_020F944D +UNK_020F944D: ; 0x020F944D + .incbin "baserom.nds", 0xfd44d, 0xb + + .global UNK_020F9458 +UNK_020F9458: ; 0x020F9458 + .incbin "baserom.nds", 0xfd458, 0x10 + + .global UNK_020F9468 +UNK_020F9468: ; 0x020F9468 + .incbin "baserom.nds", 0xfd468, 0x18 + + .global UNK_020F9480 +UNK_020F9480: ; 0x020F9480 + .incbin "baserom.nds", 0xfd480, 0x1c + + .global UNK_020F949C +UNK_020F949C: ; 0x020F949C + .incbin "baserom.nds", 0xfd49c, 0x1c + + .global UNK_020F94B8 +UNK_020F94B8: ; 0x020F94B8 + .incbin "baserom.nds", 0xfd4b8, 0x1c + + .global UNK_020F94D4 +UNK_020F94D4: ; 0x020F94D4 + .incbin "baserom.nds", 0xfd4d4, 0x1c + + .global UNK_020F94F0 +UNK_020F94F0: ; 0x020F94F0 + .incbin "baserom.nds", 0xfd4f0, 0x1c + + .global UNK_020F950C +UNK_020F950C: ; 0x020F950C + .incbin "baserom.nds", 0xfd50c, 0x1c + + .global UNK_020F9528 +UNK_020F9528: ; 0x020F9528 + .incbin "baserom.nds", 0xfd528, 0x1c + + .global UNK_020F9544 +UNK_020F9544: ; 0x020F9544 + .incbin "baserom.nds", 0xfd544, 0x20 + + .global UNK_020F9564 +UNK_020F9564: ; 0x020F9564 + .incbin "baserom.nds", 0xfd564, 0x28 + + .global UNK_020F958C +UNK_020F958C: ; 0x020F958C + .incbin "baserom.nds", 0xfd58c, 0x40 + + .global UNK_020F95CC +UNK_020F95CC: ; 0x020F95CC + .incbin "baserom.nds", 0xfd5cc, 0x40 + + .global UNK_020F960C +UNK_020F960C: ; 0x020F960C + .incbin "baserom.nds", 0xfd60c, 0x40 + + .global UNK_020F964C +UNK_020F964C: ; 0x020F964C + .incbin "baserom.nds", 0xfd64c, 0x48 + + .global UNK_020F9694 +UNK_020F9694: ; 0x020F9694 + .incbin "baserom.nds", 0xfd694, 0x48 + + .global UNK_020F96DC +UNK_020F96DC: ; 0x020F96DC + .incbin "baserom.nds", 0xfd6dc, 0x10 + + .global UNK_020F96EC +UNK_020F96EC: ; 0x020F96EC + .incbin "baserom.nds", 0xfd6ec, 0x8 + + .global UNK_020F96F4 +UNK_020F96F4: ; 0x020F96F4 + .incbin "baserom.nds", 0xfd6f4, 0x30 + + .global UNK_020F9724 +UNK_020F9724: ; 0x020F9724 + .incbin "baserom.nds", 0xfd724, 0x8 + + .global UNK_020F972C +UNK_020F972C: ; 0x020F972C + .incbin "baserom.nds", 0xfd72c, 0x8 + + .global UNK_020F9734 +UNK_020F9734: ; 0x020F9734 + .incbin "baserom.nds", 0xfd734, 0x8 + + .global UNK_020F973C +UNK_020F973C: ; 0x020F973C + .incbin "baserom.nds", 0xfd73c, 0x8 + + .global UNK_020F9744 +UNK_020F9744: ; 0x020F9744 + .incbin "baserom.nds", 0xfd744, 0x8 + + .global UNK_020F974C +UNK_020F974C: ; 0x020F974C + .incbin "baserom.nds", 0xfd74c, 0x8 + + .global UNK_020F9754 +UNK_020F9754: ; 0x020F9754 + .incbin "baserom.nds", 0xfd754, 0x8 + + .global UNK_020F975C +UNK_020F975C: ; 0x020F975C + .incbin "baserom.nds", 0xfd75c, 0x50 + + .global UNK_020F97AC +UNK_020F97AC: ; 0x020F97AC + .incbin "baserom.nds", 0xfd7ac, 0x50 + + .global UNK_020F97FC +UNK_020F97FC: ; 0x020F97FC + .incbin "baserom.nds", 0xfd7fc, 0xc8 + + .global UNK_020F98C4 +UNK_020F98C4: ; 0x020F98C4 + .incbin "baserom.nds", 0xfd8c4, 0x14 + + .global UNK_020F98D8 +UNK_020F98D8: ; 0x020F98D8 + .incbin "baserom.nds", 0xfd8d8, 0x1c + + .global UNK_020F98F4 +UNK_020F98F4: ; 0x020F98F4 + .incbin "baserom.nds", 0xfd8f4, 0x20 + + .global UNK_020F9914 +UNK_020F9914: ; 0x020F9914 + .incbin "baserom.nds", 0xfd914, 0x28 + + .global UNK_020F993C +UNK_020F993C: ; 0x020F993C + .incbin "baserom.nds", 0xfd93c, 0x28 + + .global UNK_020F9964 +UNK_020F9964: ; 0x020F9964 + .incbin "baserom.nds", 0xfd964, 0x28 + + .global UNK_020F998C +UNK_020F998C: ; 0x020F998C + .incbin "baserom.nds", 0xfd98c, 0x2f8 + + .global UNK_020F9C84 +UNK_020F9C84: ; 0x020F9C84 + .incbin "baserom.nds", 0xfdc84, 0x28 + + .global UNK_020F9CAC +UNK_020F9CAC: ; 0x020F9CAC + .incbin "baserom.nds", 0xfdcac, 0x7c + + .global UNK_020F9D28 +UNK_020F9D28: ; 0x020F9D28 + .incbin "baserom.nds", 0xfdd28, 0x4 + + .global UNK_020F9D2C +UNK_020F9D2C: ; 0x020F9D2C + .incbin "baserom.nds", 0xfdd2c, 0x4 + + .global UNK_020F9D30 +UNK_020F9D30: ; 0x020F9D30 + .incbin "baserom.nds", 0xfdd30, 0x8 + + .global UNK_020F9D38 +UNK_020F9D38: ; 0x020F9D38 + .incbin "baserom.nds", 0xfdd38, 0x8 + + .global UNK_020F9D40 +UNK_020F9D40: ; 0x020F9D40 + .incbin "baserom.nds", 0xfdd40, 0xc + + .global UNK_020F9D4C +UNK_020F9D4C: ; 0x020F9D4C + .incbin "baserom.nds", 0xfdd4c, 0x10 + + .global UNK_020F9D5C +UNK_020F9D5C: ; 0x020F9D5C + .incbin "baserom.nds", 0xfdd5c, 0x10 + + .global UNK_020F9D6C +UNK_020F9D6C: ; 0x020F9D6C + .incbin "baserom.nds", 0xfdd6c, 0x3e + + .global UNK_020F9DAA +UNK_020F9DAA: ; 0x020F9DAA + .incbin "baserom.nds", 0xfddaa, 0x1a + + .global UNK_020F9DC4 +UNK_020F9DC4: ; 0x020F9DC4 + .incbin "baserom.nds", 0xfddc4, 0x1a + + .global UNK_020F9DDE +UNK_020F9DDE: ; 0x020F9DDE + .incbin "baserom.nds", 0xfddde, 0x1e + + .global UNK_020F9DFC +UNK_020F9DFC: ; 0x020F9DFC + .incbin "baserom.nds", 0xfddfc, 0x1c + + .global UNK_020F9E18 +UNK_020F9E18: ; 0x020F9E18 + .incbin "baserom.nds", 0xfde18, 0x1c + + .global UNK_020F9E34 +UNK_020F9E34: ; 0x020F9E34 + .incbin "baserom.nds", 0xfde34, 0x1c + + .global UNK_020F9E50 +UNK_020F9E50: ; 0x020F9E50 + .incbin "baserom.nds", 0xfde50, 0x1c + + .global UNK_020F9E6C +UNK_020F9E6C: ; 0x020F9E6C + .incbin "baserom.nds", 0xfde6c, 0x1c + + .global UNK_020F9E88 +UNK_020F9E88: ; 0x020F9E88 + .incbin "baserom.nds", 0xfde88, 0x1c + + .global UNK_020F9EA4 +UNK_020F9EA4: ; 0x020F9EA4 + .incbin "baserom.nds", 0xfdea4, 0x1c + + .global UNK_020F9EC0 +UNK_020F9EC0: ; 0x020F9EC0 + .incbin "baserom.nds", 0xfdec0, 0x1c + + .global UNK_020F9EDC +UNK_020F9EDC: ; 0x020F9EDC + .incbin "baserom.nds", 0xfdedc, 0x1c + + .global UNK_020F9EF8 +UNK_020F9EF8: ; 0x020F9EF8 + .incbin "baserom.nds", 0xfdef8, 0x1c + + .global UNK_020F9F14 +UNK_020F9F14: ; 0x020F9F14 + .incbin "baserom.nds", 0xfdf14, 0x1c + + .global UNK_020F9F30 +UNK_020F9F30: ; 0x020F9F30 + .incbin "baserom.nds", 0xfdf30, 0x1c + + .global UNK_020F9F4C +UNK_020F9F4C: ; 0x020F9F4C + .incbin "baserom.nds", 0xfdf4c, 0x1c + + .global UNK_020F9F68 +UNK_020F9F68: ; 0x020F9F68 + .incbin "baserom.nds", 0xfdf68, 0x1c + + .global UNK_020F9F84 +UNK_020F9F84: ; 0x020F9F84 + .incbin "baserom.nds", 0xfdf84, 0x1c + + .global UNK_020F9FA0 +UNK_020F9FA0: ; 0x020F9FA0 + .incbin "baserom.nds", 0xfdfa0, 0x1c + + .global UNK_020F9FBC +UNK_020F9FBC: ; 0x020F9FBC + .incbin "baserom.nds", 0xfdfbc, 0x1c + + .global UNK_020F9FD8 +UNK_020F9FD8: ; 0x020F9FD8 + .incbin "baserom.nds", 0xfdfd8, 0x1c + + .global UNK_020F9FF4 +UNK_020F9FF4: ; 0x020F9FF4 + .incbin "baserom.nds", 0xfdff4, 0x1c + + .global UNK_020FA010 +UNK_020FA010: ; 0x020FA010 + .incbin "baserom.nds", 0xfe010, 0x1c + + .global UNK_020FA02C +UNK_020FA02C: ; 0x020FA02C + .incbin "baserom.nds", 0xfe02c, 0x1c + + .global UNK_020FA048 +UNK_020FA048: ; 0x020FA048 + .incbin "baserom.nds", 0xfe048, 0x1c + + .global UNK_020FA064 +UNK_020FA064: ; 0x020FA064 + .incbin "baserom.nds", 0xfe064, 0x3c + + .global UNK_020FA0A0 +UNK_020FA0A0: ; 0x020FA0A0 + .incbin "baserom.nds", 0xfe0a0, 0x20 + + .global UNK_020FA0C0 +UNK_020FA0C0: ; 0x020FA0C0 + .incbin "baserom.nds", 0xfe0c0, 0x24 + + .global UNK_020FA0E4 +UNK_020FA0E4: ; 0x020FA0E4 + .incbin "baserom.nds", 0xfe0e4, 0x24 + + .global UNK_020FA108 +UNK_020FA108: ; 0x020FA108 + .incbin "baserom.nds", 0xfe108, 0x24 + + .global UNK_020FA12C +UNK_020FA12C: ; 0x020FA12C + .incbin "baserom.nds", 0xfe12c, 0x28 + + .global UNK_020FA154 +UNK_020FA154: ; 0x020FA154 + .incbin "baserom.nds", 0xfe154, 0x4 + + .global UNK_020FA158 +UNK_020FA158: ; 0x020FA158 + .incbin "baserom.nds", 0xfe158, 0x24 + + .global UNK_020FA17C +UNK_020FA17C: ; 0x020FA17C + .incbin "baserom.nds", 0xfe17c, 0x2 + + .global UNK_020FA17E +UNK_020FA17E: ; 0x020FA17E + .incbin "baserom.nds", 0xfe17e, 0x26 + + .global UNK_020FA1A4 +UNK_020FA1A4: ; 0x020FA1A4 + .incbin "baserom.nds", 0xfe1a4, 0x2 + + .global UNK_020FA1A6 +UNK_020FA1A6: ; 0x020FA1A6 + .incbin "baserom.nds", 0xfe1a6, 0x2e + + .global UNK_020FA1D4 +UNK_020FA1D4: ; 0x020FA1D4 + .incbin "baserom.nds", 0xfe1d4, 0x4 + + .global UNK_020FA1D8 +UNK_020FA1D8: ; 0x020FA1D8 + .incbin "baserom.nds", 0xfe1d8, 0x4 + + .global UNK_020FA1DC +UNK_020FA1DC: ; 0x020FA1DC + .incbin "baserom.nds", 0xfe1dc, 0x48 + + .global UNK_020FA224 +UNK_020FA224: ; 0x020FA224 + .incbin "baserom.nds", 0xfe224, 0x40 + + .global UNK_020FA264 +UNK_020FA264: ; 0x020FA264 + .incbin "baserom.nds", 0xfe264, 0x1aa + + .global UNK_020FA40E +UNK_020FA40E: ; 0x020FA40E + .incbin "baserom.nds", 0xfe40e, 0x1ee + + .global UNK_020FA5FC +UNK_020FA5FC: ; 0x020FA5FC + .incbin "baserom.nds", 0xfe5fc, 0x10 + + .global UNK_020FA60C +UNK_020FA60C: ; 0x020FA60C + .incbin "baserom.nds", 0xfe60c, 0x18 + + .global UNK_020FA624 +UNK_020FA624: ; 0x020FA624 + .incbin "baserom.nds", 0xfe624, 0x10 + + .global UNK_020FA634 +UNK_020FA634: ; 0x020FA634 + .incbin "baserom.nds", 0xfe634, 0x1c + + .global UNK_020FA650 +UNK_020FA650: ; 0x020FA650 + .incbin "baserom.nds", 0xfe650, 0x1c + + .global UNK_020FA66C +UNK_020FA66C: ; 0x020FA66C + .incbin "baserom.nds", 0xfe66c, 0x1c + + .global UNK_020FA688 +UNK_020FA688: ; 0x020FA688 + .incbin "baserom.nds", 0xfe688, 0x1c + + .global UNK_020FA6A4 +UNK_020FA6A4: ; 0x020FA6A4 + .incbin "baserom.nds", 0xfe6a4, 0x1c + + .global UNK_020FA6C0 +UNK_020FA6C0: ; 0x020FA6C0 + .incbin "baserom.nds", 0xfe6c0, 0x28 + + .global UNK_020FA6E8 +UNK_020FA6E8: ; 0x020FA6E8 + .incbin "baserom.nds", 0xfe6e8, 0x10 + + .global UNK_020FA6F8 +UNK_020FA6F8: ; 0x020FA6F8 + .incbin "baserom.nds", 0xfe6f8, 0x14 + + .global UNK_020FA70C +UNK_020FA70C: ; 0x020FA70C + .incbin "baserom.nds", 0xfe70c, 0x14 + + .global UNK_020FA720 +UNK_020FA720: ; 0x020FA720 + .incbin "baserom.nds", 0xfe720, 0x1c + + .global UNK_020FA73C +UNK_020FA73C: ; 0x020FA73C + .incbin "baserom.nds", 0xfe73c, 0x20 + + .global UNK_020FA75C +UNK_020FA75C: ; 0x020FA75C + .incbin "baserom.nds", 0xfe75c, 0x8 + + .global UNK_020FA764 +UNK_020FA764: ; 0x020FA764 + .incbin "baserom.nds", 0xfe764, 0x8 + + .global UNK_020FA76C +UNK_020FA76C: ; 0x020FA76C + .incbin "baserom.nds", 0xfe76c, 0x8 + + .global UNK_020FA774 +UNK_020FA774: ; 0x020FA774 + .incbin "baserom.nds", 0xfe774, 0x8 + + .global UNK_020FA77C +UNK_020FA77C: ; 0x020FA77C + .incbin "baserom.nds", 0xfe77c, 0x8 + + .global UNK_020FA784 +UNK_020FA784: ; 0x020FA784 + .incbin "baserom.nds", 0xfe784, 0xc08 + + .global UNK_020FB38C +UNK_020FB38C: ; 0x020FB38C + .incbin "baserom.nds", 0xff38c, 0x8 + + .global UNK_020FB394 +UNK_020FB394: ; 0x020FB394 + .incbin "baserom.nds", 0xff394, 0x18 + + .global UNK_020FB3AC +UNK_020FB3AC: ; 0x020FB3AC + .incbin "baserom.nds", 0xff3ac, 0x20 + + .global UNK_020FB3CC +UNK_020FB3CC: ; 0x020FB3CC + .incbin "baserom.nds", 0xff3cc, 0x30 + + .global UNK_020FB3FC +UNK_020FB3FC: ; 0x020FB3FC + .incbin "baserom.nds", 0xff3fc, 0x30 + + .global UNK_020FB42C +UNK_020FB42C: ; 0x020FB42C + .incbin "baserom.nds", 0xff42c, 0x40 + + .global UNK_020FB46C +UNK_020FB46C: ; 0x020FB46C + .incbin "baserom.nds", 0xff46c, 0x40 + + .global UNK_020FB4AC +UNK_020FB4AC: ; 0x020FB4AC + .incbin "baserom.nds", 0xff4ac, 0x120 + + .global UNK_020FB5CC +UNK_020FB5CC: ; 0x020FB5CC + .incbin "baserom.nds", 0xff5cc, 0xc + + .global UNK_020FB5D8 +UNK_020FB5D8: ; 0x020FB5D8 + .incbin "baserom.nds", 0xff5d8, 0x12 + + .global UNK_020FB5EA +UNK_020FB5EA: ; 0x020FB5EA + .incbin "baserom.nds", 0xff5ea, 0x12 + + .global UNK_020FB5FC +UNK_020FB5FC: ; 0x020FB5FC + .incbin "baserom.nds", 0xff5fc, 0x10 + + .global UNK_020FB60C +UNK_020FB60C: ; 0x020FB60C + .incbin "baserom.nds", 0xff60c, 0x2 + + .global UNK_020FB60E +UNK_020FB60E: ; 0x020FB60E + .incbin "baserom.nds", 0xff60e, 0x12 + + .global UNK_020FB620 +UNK_020FB620: ; 0x020FB620 + .incbin "baserom.nds", 0xff620, 0x12 + + .global UNK_020FB632 +UNK_020FB632: ; 0x020FB632 + .incbin "baserom.nds", 0xff632, 0x12 + + .global UNK_020FB644 +UNK_020FB644: ; 0x020FB644 + .incbin "baserom.nds", 0xff644, 0x8 + + .global UNK_020FB64C +UNK_020FB64C: ; 0x020FB64C + .incbin "baserom.nds", 0xff64c, 0xa + + .global UNK_020FB656 +UNK_020FB656: ; 0x020FB656 + .incbin "baserom.nds", 0xff656, 0x12 + + .global UNK_020FB668 +UNK_020FB668: ; 0x020FB668 + .incbin "baserom.nds", 0xff668, 0x12 + + .global UNK_020FB67A +UNK_020FB67A: ; 0x020FB67A + .incbin "baserom.nds", 0xff67a, 0x12 + + .global UNK_020FB68C +UNK_020FB68C: ; 0x020FB68C + .incbin "baserom.nds", 0xff68c, 0x12 + + .global UNK_020FB69E +UNK_020FB69E: ; 0x020FB69E + .incbin "baserom.nds", 0xff69e, 0x12 + + .global UNK_020FB6B0 +UNK_020FB6B0: ; 0x020FB6B0 + .incbin "baserom.nds", 0xff6b0, 0x12 + + .global UNK_020FB6C2 +UNK_020FB6C2: ; 0x020FB6C2 + .incbin "baserom.nds", 0xff6c2, 0x12 + + .global UNK_020FB6D4 +UNK_020FB6D4: ; 0x020FB6D4 + .incbin "baserom.nds", 0xff6d4, 0x12 + + .global UNK_020FB6E6 +UNK_020FB6E6: ; 0x020FB6E6 + .incbin "baserom.nds", 0xff6e6, 0x12 + + .global UNK_020FB6F8 +UNK_020FB6F8: ; 0x020FB6F8 + .incbin "baserom.nds", 0xff6f8, 0xc + + .global UNK_020FB704 +UNK_020FB704: ; 0x020FB704 + .incbin "baserom.nds", 0xff704, 0xc + + .global UNK_020FB710 +UNK_020FB710: ; 0x020FB710 + .incbin "baserom.nds", 0xff710, 0x18 + + .global UNK_020FB728 +UNK_020FB728: ; 0x020FB728 + .incbin "baserom.nds", 0xff728, 0x18 + + .global UNK_020FB740 +UNK_020FB740: ; 0x020FB740 + .incbin "baserom.nds", 0xff740, 0x24 + + .global UNK_020FB764 +UNK_020FB764: ; 0x020FB764 + .incbin "baserom.nds", 0xff764, 0x24 + + .global UNK_020FB788 +UNK_020FB788: ; 0x020FB788 + .incbin "baserom.nds", 0xff788, 0x4 + + .global UNK_020FB78C +UNK_020FB78C: ; 0x020FB78C + .incbin "baserom.nds", 0xff78c, 0x2 + + .global UNK_020FB78E +UNK_020FB78E: ; 0x020FB78E + .incbin "baserom.nds", 0xff78e, 0x2 + + .global UNK_020FB790 +UNK_020FB790: ; 0x020FB790 + .incbin "baserom.nds", 0xff790, 0x2 + + .global UNK_020FB792 +UNK_020FB792: ; 0x020FB792 + .incbin "baserom.nds", 0xff792, 0x3b6 + + .global UNK_020FBB48 +UNK_020FBB48: ; 0x020FBB48 + .incbin "baserom.nds", 0xffb48, 0xc + + .global UNK_020FBB54 +UNK_020FBB54: ; 0x020FBB54 + .incbin "baserom.nds", 0xffb54, 0x3c + + .global UNK_020FBB90 +UNK_020FBB90: ; 0x020FBB90 + .incbin "baserom.nds", 0xffb90, 0x8 + + .global UNK_020FBB98 +UNK_020FBB98: ; 0x020FBB98 + .incbin "baserom.nds", 0xffb98, 0x8 + + .global UNK_020FBBA0 +UNK_020FBBA0: ; 0x020FBBA0 + .incbin "baserom.nds", 0xffba0, 0xc + + .global UNK_020FBBAC +UNK_020FBBAC: ; 0x020FBBAC + .incbin "baserom.nds", 0xffbac, 0xc + + .global UNK_020FBBB8 +UNK_020FBBB8: ; 0x020FBBB8 + .incbin "baserom.nds", 0xffbb8, 0x10 + + .global UNK_020FBBC8 +UNK_020FBBC8: ; 0x020FBBC8 + .incbin "baserom.nds", 0xffbc8, 0x10 + + .global UNK_020FBBD8 +UNK_020FBBD8: ; 0x020FBBD8 + .incbin "baserom.nds", 0xffbd8, 0x10 + + .global UNK_020FBBE8 +UNK_020FBBE8: ; 0x020FBBE8 + .incbin "baserom.nds", 0xffbe8, 0x10 + + .global UNK_020FBBF8 +UNK_020FBBF8: ; 0x020FBBF8 + .incbin "baserom.nds", 0xffbf8, 0x10 + + .global UNK_020FBC08 +UNK_020FBC08: ; 0x020FBC08 + .incbin "baserom.nds", 0xffc08, 0x10 + + .global UNK_020FBC18 +UNK_020FBC18: ; 0x020FBC18 + .incbin "baserom.nds", 0xffc18, 0x50 + + .global UNK_020FBC68 +UNK_020FBC68: ; 0x020FBC68 + .incbin "baserom.nds", 0xffc68, 0x2 + + .global UNK_020FBC6A +UNK_020FBC6A: ; 0x020FBC6A + .incbin "baserom.nds", 0xffc6a, 0x2 + + .global UNK_020FBC6C +UNK_020FBC6C: ; 0x020FBC6C + .incbin "baserom.nds", 0xffc6c, 0x2 + + .global UNK_020FBC6E +UNK_020FBC6E: ; 0x020FBC6E + .incbin "baserom.nds", 0xffc6e, 0x2 + + .global UNK_020FBC70 +UNK_020FBC70: ; 0x020FBC70 + .incbin "baserom.nds", 0xffc70, 0x2 + + .global UNK_020FBC72 +UNK_020FBC72: ; 0x020FBC72 + .incbin "baserom.nds", 0xffc72, 0x2 + + .global UNK_020FBC74 +UNK_020FBC74: ; 0x020FBC74 + .incbin "baserom.nds", 0xffc74, 0x2 + + .global UNK_020FBC76 +UNK_020FBC76: ; 0x020FBC76 + .incbin "baserom.nds", 0xffc76, 0x2 + + .global UNK_020FBC78 +UNK_020FBC78: ; 0x020FBC78 + .incbin "baserom.nds", 0xffc78, 0x2 + + .global UNK_020FBC7A +UNK_020FBC7A: ; 0x020FBC7A + .incbin "baserom.nds", 0xffc7a, 0x2 + + .global UNK_020FBC7C +UNK_020FBC7C: ; 0x020FBC7C + .incbin "baserom.nds", 0xffc7c, 0x2 + + .global UNK_020FBC7E +UNK_020FBC7E: ; 0x020FBC7E + .incbin "baserom.nds", 0xffc7e, 0x2 + + .global UNK_020FBC80 +UNK_020FBC80: ; 0x020FBC80 + .incbin "baserom.nds", 0xffc80, 0x258 + + .global UNK_020FBED8 +UNK_020FBED8: ; 0x020FBED8 + .incbin "baserom.nds", 0xffed8, 0xc0 + + .global UNK_020FBF98 +UNK_020FBF98: ; 0x020FBF98 + .incbin "baserom.nds", 0xfff98, 0x84 + + .global UNK_020FC01C +UNK_020FC01C: ; 0x020FC01C + .incbin "baserom.nds", 0x10001c, 0x510 + + .global UNK_020FC52C +UNK_020FC52C: ; 0x020FC52C + .incbin "baserom.nds", 0x10052c, 0x510 + + .global UNK_020FCA3C +UNK_020FCA3C: ; 0x020FCA3C + .incbin "baserom.nds", 0x100a3c, 0x6c + + .global UNK_020FCAA8 +UNK_020FCAA8: ; 0x020FCAA8 + .incbin "baserom.nds", 0x100aa8, 0x10 + + .global UNK_020FCAB8 +UNK_020FCAB8: ; 0x020FCAB8 + .incbin "baserom.nds", 0x100ab8, 0x10 + + .global UNK_020FCAC8 +UNK_020FCAC8: ; 0x020FCAC8 + .incbin "baserom.nds", 0x100ac8, 0x10 + + .global UNK_020FCAD8 +UNK_020FCAD8: ; 0x020FCAD8 + .incbin "baserom.nds", 0x100ad8, 0x10 + + .global UNK_020FCAE8 +UNK_020FCAE8: ; 0x020FCAE8 + .incbin "baserom.nds", 0x100ae8, 0x2 + + .global UNK_020FCAEA +UNK_020FCAEA: ; 0x020FCAEA + .incbin "baserom.nds", 0x100aea, 0x2 + + .global UNK_020FCAEC +UNK_020FCAEC: ; 0x020FCAEC + .incbin "baserom.nds", 0x100aec, 0x1 + + .global UNK_020FCAED +UNK_020FCAED: ; 0x020FCAED + .incbin "baserom.nds", 0x100aed, 0x1 + + .global UNK_020FCAEE +UNK_020FCAEE: ; 0x020FCAEE + .incbin "baserom.nds", 0x100aee, 0x2 + + .global UNK_020FCAF0 +UNK_020FCAF0: ; 0x020FCAF0 + .incbin "baserom.nds", 0x100af0, 0x324 + + .global UNK_020FCE14 +UNK_020FCE14: ; 0x020FCE14 + .incbin "baserom.nds", 0x100e14, 0x10 + + .global UNK_020FCE24 +UNK_020FCE24: ; 0x020FCE24 + .incbin "baserom.nds", 0x100e24, 0x10 + + .global UNK_020FCE34 +UNK_020FCE34: ; 0x020FCE34 + .incbin "baserom.nds", 0x100e34, 0x14 + + .global UNK_020FCE48 +UNK_020FCE48: ; 0x020FCE48 + .incbin "baserom.nds", 0x100e48, 0x18 + + .global UNK_020FCE60 +UNK_020FCE60: ; 0x020FCE60 + .incbin "baserom.nds", 0x100e60, 0x1c + + .global UNK_020FCE7C +UNK_020FCE7C: ; 0x020FCE7C + .incbin "baserom.nds", 0x100e7c, 0x20 + + .global UNK_020FCE9C +UNK_020FCE9C: ; 0x020FCE9C + .incbin "baserom.nds", 0x100e9c, 0x20 + + .global UNK_020FCEBC +UNK_020FCEBC: ; 0x020FCEBC + .incbin "baserom.nds", 0x100ebc, 0x28 + + .global UNK_020FCEE4 +UNK_020FCEE4: ; 0x020FCEE4 + .incbin "baserom.nds", 0x100ee4, 0x50 + + .global UNK_020FCF34 +UNK_020FCF34: ; 0x020FCF34 + .incbin "baserom.nds", 0x100f34, 0x50 + + .global UNK_020FCF84 +UNK_020FCF84: ; 0x020FCF84 + .incbin "baserom.nds", 0x100f84, 0x54 + + .global UNK_020FCFD8 +UNK_020FCFD8: ; 0x020FCFD8 + .incbin "baserom.nds", 0x100fd8, 0xa0 + + .global UNK_020FD078 +UNK_020FD078: ; 0x020FD078 + .incbin "baserom.nds", 0x101078, 0xa0 + + .global UNK_020FD118 +UNK_020FD118: ; 0x020FD118 + .incbin "baserom.nds", 0x101118, 0x8 + + .global UNK_020FD120 +UNK_020FD120: ; 0x020FD120 + .incbin "baserom.nds", 0x101120, 0x1c + + .global UNK_020FD13C +UNK_020FD13C: ; 0x020FD13C + .incbin "baserom.nds", 0x10113c, 0x18 + + .global UNK_020FD154 +UNK_020FD154: ; 0x020FD154 + .incbin "baserom.nds", 0x101154, 0x4 + + .global UNK_020FD158 +UNK_020FD158: ; 0x020FD158 + .incbin "baserom.nds", 0x101158, 0x4 + + .global UNK_020FD15C +UNK_020FD15C: ; 0x020FD15C + .incbin "baserom.nds", 0x10115c, 0x10 + + .global UNK_020FD16C +UNK_020FD16C: ; 0x020FD16C + .incbin "baserom.nds", 0x10116c, 0x10 + + .global UNK_020FD17C +UNK_020FD17C: ; 0x020FD17C + .incbin "baserom.nds", 0x10117c, 0x1 + + .global UNK_020FD17D +UNK_020FD17D: ; 0x020FD17D + .incbin "baserom.nds", 0x10117d, 0x33 + + .global UNK_020FD1B0 +UNK_020FD1B0: ; 0x020FD1B0 + .incbin "baserom.nds", 0x1011b0, 0x10 + + .global UNK_020FD1C0 +UNK_020FD1C0: ; 0x020FD1C0 + .incbin "baserom.nds", 0x1011c0, 0x4 + + .global UNK_020FD1C4 +UNK_020FD1C4: ; 0x020FD1C4 + .incbin "baserom.nds", 0x1011c4, 0x520 + + .global UNK_020FD6E4 +UNK_020FD6E4: ; 0x020FD6E4 + .incbin "baserom.nds", 0x1016e4, 0x10 + + .global UNK_020FD6F4 +UNK_020FD6F4: ; 0x020FD6F4 + .incbin "baserom.nds", 0x1016f4, 0x4 + + .global UNK_020FD6F8 +UNK_020FD6F8: ; 0x020FD6F8 + .incbin "baserom.nds", 0x1016f8, 0x10 + + .global UNK_020FD708 +UNK_020FD708: ; 0x020FD708 + .incbin "baserom.nds", 0x101708, 0x10 + + .global UNK_020FD718 +UNK_020FD718: ; 0x020FD718 + .incbin "baserom.nds", 0x101718, 0x10 + + .global UNK_020FD728 +UNK_020FD728: ; 0x020FD728 + .incbin "baserom.nds", 0x101728, 0x8 + + .global UNK_020FD730 +UNK_020FD730: ; 0x020FD730 + .incbin "baserom.nds", 0x101730, 0x8 + + .global UNK_020FD738 +UNK_020FD738: ; 0x020FD738 + .incbin "baserom.nds", 0x101738, 0x8 + + .global UNK_020FD740 +UNK_020FD740: ; 0x020FD740 + .incbin "baserom.nds", 0x101740, 0xc + + .global UNK_020FD74C +UNK_020FD74C: ; 0x020FD74C + .incbin "baserom.nds", 0x10174c, 0x10 + + .global UNK_020FD75C +UNK_020FD75C: ; 0x020FD75C + .incbin "baserom.nds", 0x10175c, 0x10 + + .global UNK_020FD76C +UNK_020FD76C: ; 0x020FD76C + .incbin "baserom.nds", 0x10176c, 0x10 + + .global UNK_020FD77C +UNK_020FD77C: ; 0x020FD77C + .incbin "baserom.nds", 0x10177c, 0x14 + + .global UNK_020FD790 +UNK_020FD790: ; 0x020FD790 + .incbin "baserom.nds", 0x101790, 0x14 + + .global UNK_020FD7A4 +UNK_020FD7A4: ; 0x020FD7A4 + .incbin "baserom.nds", 0x1017a4, 0x14 + + .global UNK_020FD7B8 +UNK_020FD7B8: ; 0x020FD7B8 + .incbin "baserom.nds", 0x1017b8, 0x18 + + .global UNK_020FD7D0 +UNK_020FD7D0: ; 0x020FD7D0 + .incbin "baserom.nds", 0x1017d0, 0x18 + + .global UNK_020FD7E8 +UNK_020FD7E8: ; 0x020FD7E8 + .incbin "baserom.nds", 0x1017e8, 0x18 + + .global UNK_020FD800 +UNK_020FD800: ; 0x020FD800 + .incbin "baserom.nds", 0x101800, 0x1c + + .global UNK_020FD81C +UNK_020FD81C: ; 0x020FD81C + .incbin "baserom.nds", 0x10181c, 0x20 + + .global UNK_020FD83C +UNK_020FD83C: ; 0x020FD83C + .incbin "baserom.nds", 0x10183c, 0x24 + + .global UNK_020FD860 +UNK_020FD860: ; 0x020FD860 + .incbin "baserom.nds", 0x101860, 0x34 + + .global UNK_020FD894 +UNK_020FD894: ; 0x020FD894 + .incbin "baserom.nds", 0x101894, 0x34 + + .global UNK_020FD8C8 +UNK_020FD8C8: ; 0x020FD8C8 + .incbin "baserom.nds", 0x1018c8, 0x1 + + .global UNK_020FD8C9 +UNK_020FD8C9: ; 0x020FD8C9 + .incbin "baserom.nds", 0x1018c9, 0x1 + + .global UNK_020FD8CA +UNK_020FD8CA: ; 0x020FD8CA + .incbin "baserom.nds", 0x1018ca, 0x2 + + .global UNK_020FD8CC +UNK_020FD8CC: ; 0x020FD8CC + .incbin "baserom.nds", 0x1018cc, 0x4 + + .global UNK_020FD8D0 +UNK_020FD8D0: ; 0x020FD8D0 + .incbin "baserom.nds", 0x1018d0, 0xdc + + .global UNK_020FD9AC +UNK_020FD9AC: ; 0x020FD9AC + .incbin "baserom.nds", 0x1019ac, 0xec + + .global UNK_020FDA98 +UNK_020FDA98: ; 0x020FDA98 + .incbin "baserom.nds", 0x101a98, 0x4 + + .global UNK_020FDA9C +UNK_020FDA9C: ; 0x020FDA9C + .incbin "baserom.nds", 0x101a9c, 0x6 + + .global UNK_020FDAA2 +UNK_020FDAA2: ; 0x020FDAA2 + .incbin "baserom.nds", 0x101aa2, 0xc + + .global UNK_020FDAAE +UNK_020FDAAE: ; 0x020FDAAE + .incbin "baserom.nds", 0x101aae, 0xe + + .global UNK_020FDABC +UNK_020FDABC: ; 0x020FDABC + .incbin "baserom.nds", 0x101abc, 0x10 + + .global UNK_020FDACC +UNK_020FDACC: ; 0x020FDACC + .incbin "baserom.nds", 0x101acc, 0x1c + + .global UNK_020FDAE8 +UNK_020FDAE8: ; 0x020FDAE8 + .incbin "baserom.nds", 0x101ae8, 0x22 + + .global UNK_020FDB0A +UNK_020FDB0A: ; 0x020FDB0A + .incbin "baserom.nds", 0x101b0a, 0x2e + + .global UNK_020FDB38 +UNK_020FDB38: ; 0x020FDB38 + .incbin "baserom.nds", 0x101b38, 0x30 + + .global UNK_020FDB68 +UNK_020FDB68: ; 0x020FDB68 + .incbin "baserom.nds", 0x101b68, 0x32 + + .global UNK_020FDB9A +UNK_020FDB9A: ; 0x020FDB9A + .incbin "baserom.nds", 0x101b9a, 0x34 + + .global UNK_020FDBCE +UNK_020FDBCE: ; 0x020FDBCE + .incbin "baserom.nds", 0x101bce, 0x42 + + .global UNK_020FDC10 +UNK_020FDC10: ; 0x020FDC10 + .incbin "baserom.nds", 0x101c10, 0x44 + + .global UNK_020FDC54 +UNK_020FDC54: ; 0x020FDC54 + .incbin "baserom.nds", 0x101c54, 0x48 + + .global UNK_020FDC9C +UNK_020FDC9C: ; 0x020FDC9C + .incbin "baserom.nds", 0x101c9c, 0x4e + + .global UNK_020FDCEA +UNK_020FDCEA: ; 0x020FDCEA + .incbin "baserom.nds", 0x101cea, 0x52 + + .global UNK_020FDD3C +UNK_020FDD3C: ; 0x020FDD3C + .incbin "baserom.nds", 0x101d3c, 0x54 + + .global UNK_020FDD90 +UNK_020FDD90: ; 0x020FDD90 + .incbin "baserom.nds", 0x101d90, 0x60 + + .global UNK_020FDDF0 +UNK_020FDDF0: ; 0x020FDDF0 + .incbin "baserom.nds", 0x101df0, 0x6c + + .global UNK_020FDE5C +UNK_020FDE5C: ; 0x020FDE5C + .incbin "baserom.nds", 0x101e5c, 0x74 + + .global UNK_020FDED0 +UNK_020FDED0: ; 0x020FDED0 + .incbin "baserom.nds", 0x101ed0, 0x78 + + .global UNK_020FDF48 +UNK_020FDF48: ; 0x020FDF48 + .incbin "baserom.nds", 0x101f48, 0x88 + + .global UNK_020FDFD0 +UNK_020FDFD0: ; 0x020FDFD0 + .incbin "baserom.nds", 0x101fd0, 0x8c + + .global UNK_020FE05C +UNK_020FE05C: ; 0x020FE05C + .incbin "baserom.nds", 0x10205c, 0x90 + + .global UNK_020FE0EC +UNK_020FE0EC: ; 0x020FE0EC + .incbin "baserom.nds", 0x1020ec, 0x90 + + .global UNK_020FE17C +UNK_020FE17C: ; 0x020FE17C + .incbin "baserom.nds", 0x10217c, 0x90 + + .global UNK_020FE20C +UNK_020FE20C: ; 0x020FE20C + .incbin "baserom.nds", 0x10220c, 0x9a + + .global UNK_020FE2A6 +UNK_020FE2A6: ; 0x020FE2A6 + .incbin "baserom.nds", 0x1022a6, 0x9a + + .global UNK_020FE340 +UNK_020FE340: ; 0x020FE340 + .incbin "baserom.nds", 0x102340, 0xa0 + + .global UNK_020FE3E0 +UNK_020FE3E0: ; 0x020FE3E0 + .incbin "baserom.nds", 0x1023e0, 0xa8 + + .global UNK_020FE488 +UNK_020FE488: ; 0x020FE488 + .incbin "baserom.nds", 0x102488, 0xbc + + .global UNK_020FE544 +UNK_020FE544: ; 0x020FE544 + .incbin "baserom.nds", 0x102544, 0xce + + .global UNK_020FE612 +UNK_020FE612: ; 0x020FE612 + .incbin "baserom.nds", 0x102612, 0xd2 + + .global UNK_020FE6E4 +UNK_020FE6E4: ; 0x020FE6E4 + .incbin "baserom.nds", 0x1026e4, 0xd4 + + .global UNK_020FE7B8 +UNK_020FE7B8: ; 0x020FE7B8 + .incbin "baserom.nds", 0x1027b8, 0xea + + .global UNK_020FE8A2 +UNK_020FE8A2: ; 0x020FE8A2 + .incbin "baserom.nds", 0x1028a2, 0x116 + + .global UNK_020FE9B8 +UNK_020FE9B8: ; 0x020FE9B8 + .incbin "baserom.nds", 0x1029b8, 0x1c0 + + .global UNK_020FEB78 +UNK_020FEB78: ; 0x020FEB78 + .incbin "baserom.nds", 0x102b78, 0x1c0 + + .global UNK_020FED38 +UNK_020FED38: ; 0x020FED38 + .incbin "baserom.nds", 0x102d38, 0x1d8 + + .global UNK_020FEF10 +UNK_020FEF10: ; 0x020FEF10 + .incbin "baserom.nds", 0x102f10, 0x1e4 + + .global UNK_020FF0F4 +UNK_020FF0F4: ; 0x020FF0F4 + .incbin "baserom.nds", 0x1030f4, 0x208 + + .global UNK_020FF2FC +UNK_020FF2FC: ; 0x020FF2FC + .incbin "baserom.nds", 0x1032fc, 0x8 + + .global UNK_020FF304 +UNK_020FF304: ; 0x020FF304 + .incbin "baserom.nds", 0x103304, 0x8 + + .global UNK_020FF30C +UNK_020FF30C: ; 0x020FF30C + .incbin "baserom.nds", 0x10330c, 0x8 + + .global UNK_020FF314 +UNK_020FF314: ; 0x020FF314 + .incbin "baserom.nds", 0x103314, 0x10 + + .global UNK_020FF324 +UNK_020FF324: ; 0x020FF324 + .incbin "baserom.nds", 0x103324, 0x1c + + .global UNK_020FF340 +UNK_020FF340: ; 0x020FF340 + .incbin "baserom.nds", 0x103340, 0x38 + + .global UNK_020FF378 +UNK_020FF378: ; 0x020FF378 + .incbin "baserom.nds", 0x103378, 0x8 + + .global UNK_020FF380 +UNK_020FF380: ; 0x020FF380 + .incbin "baserom.nds", 0x103380, 0x10 + + .global UNK_020FF390 +UNK_020FF390: ; 0x020FF390 + .incbin "baserom.nds", 0x103390, 0x1c + + .global UNK_020FF3AC +UNK_020FF3AC: ; 0x020FF3AC + .incbin "baserom.nds", 0x1033ac, 0x38 + + .global UNK_020FF3E4 +UNK_020FF3E4: ; 0x020FF3E4 + .incbin "baserom.nds", 0x1033e4, 0x8 + + .global UNK_020FF3EC +UNK_020FF3EC: ; 0x020FF3EC + .incbin "baserom.nds", 0x1033ec, 0x10 + + .global UNK_020FF3FC +UNK_020FF3FC: ; 0x020FF3FC + .incbin "baserom.nds", 0x1033fc, 0x1c + + .global UNK_020FF418 +UNK_020FF418: ; 0x020FF418 + .incbin "baserom.nds", 0x103418, 0x28 + + .global UNK_020FF440 +UNK_020FF440: ; 0x020FF440 + .incbin "baserom.nds", 0x103440, 0x8 + + .global UNK_020FF448 +UNK_020FF448: ; 0x020FF448 + .incbin "baserom.nds", 0x103448, 0x10 + + .global UNK_020FF458 +UNK_020FF458: ; 0x020FF458 + .incbin "baserom.nds", 0x103458, 0x1c + + .global UNK_020FF474 +UNK_020FF474: ; 0x020FF474 + .incbin "baserom.nds", 0x103474, 0x28 + + .global UNK_020FF49C +UNK_020FF49C: ; 0x020FF49C + .incbin "baserom.nds", 0x10349c, 0x8 + + .global UNK_020FF4A4 +UNK_020FF4A4: ; 0x020FF4A4 + .incbin "baserom.nds", 0x1034a4, 0x8 + + .global UNK_020FF4AC +UNK_020FF4AC: ; 0x020FF4AC + .incbin "baserom.nds", 0x1034ac, 0x10 + + .global UNK_020FF4BC +UNK_020FF4BC: ; 0x020FF4BC + .incbin "baserom.nds", 0x1034bc, 0x1c + + .global UNK_020FF4D8 +UNK_020FF4D8: ; 0x020FF4D8 + .incbin "baserom.nds", 0x1034d8, 0x28 + + .global UNK_020FF500 +UNK_020FF500: ; 0x020FF500 + .incbin "baserom.nds", 0x103500, 0xc + + .global UNK_020FF50C +UNK_020FF50C: ; 0x020FF50C + .incbin "baserom.nds", 0x10350c, 0xc + + .global UNK_020FF518 +UNK_020FF518: ; 0x020FF518 + .incbin "baserom.nds", 0x103518, 0xc + + .global UNK_020FF524 +UNK_020FF524: ; 0x020FF524 + .incbin "baserom.nds", 0x103524, 0x10 + + .global UNK_020FF534 +UNK_020FF534: ; 0x020FF534 + .incbin "baserom.nds", 0x103534, 0x20 + + .global UNK_020FF554 +UNK_020FF554: ; 0x020FF554 + .incbin "baserom.nds", 0x103554, 0x10 + + .global UNK_020FF564 +UNK_020FF564: ; 0x020FF564 + .incbin "baserom.nds", 0x103564, 0x8 + + .global UNK_020FF56C +UNK_020FF56C: ; 0x020FF56C + .incbin "baserom.nds", 0x10356c, 0x4 + + .global UNK_020FF570 +UNK_020FF570: ; 0x020FF570 + .incbin "baserom.nds", 0x103570, 0x2 + + .global UNK_020FF572 +UNK_020FF572: ; 0x020FF572 + .incbin "baserom.nds", 0x103572, 0x1 + + .global UNK_020FF573 +UNK_020FF573: ; 0x020FF573 + .incbin "baserom.nds", 0x103573, 0x1 + + .global UNK_020FF574 +UNK_020FF574: ; 0x020FF574 + .incbin "baserom.nds", 0x103574, 0x4 + + .global UNK_020FF578 +UNK_020FF578: ; 0x020FF578 + .incbin "baserom.nds", 0x103578, 0x8 + + .global UNK_020FF580 +UNK_020FF580: ; 0x020FF580 + .incbin "baserom.nds", 0x103580, 0x10 + + .global UNK_020FF590 +UNK_020FF590: ; 0x020FF590 + .incbin "baserom.nds", 0x103590, 0x8 + + .global UNK_020FF598 +UNK_020FF598: ; 0x020FF598 + .incbin "baserom.nds", 0x103598, 0x20 + + .global UNK_020FF5B8 +UNK_020FF5B8: ; 0x020FF5B8 + .incbin "baserom.nds", 0x1035b8, 0x4 + + .global UNK_020FF5BC +UNK_020FF5BC: ; 0x020FF5BC + .incbin "baserom.nds", 0x1035bc, 0x8 + + .global UNK_020FF5C4 +UNK_020FF5C4: ; 0x020FF5C4 + .incbin "baserom.nds", 0x1035c4, 0x10 + + .global UNK_020FF5D4 +UNK_020FF5D4: ; 0x020FF5D4 + .incbin "baserom.nds", 0x1035d4, 0xb4 + + .global UNK_020FF688 +UNK_020FF688: ; 0x020FF688 + .incbin "baserom.nds", 0x103688, 0x1 + + .global UNK_020FF689 +UNK_020FF689: ; 0x020FF689 + .incbin "baserom.nds", 0x103689, 0xb + + .global UNK_020FF694 +UNK_020FF694: ; 0x020FF694 + .incbin "baserom.nds", 0x103694, 0x18 + + .global UNK_020FF6AC +UNK_020FF6AC: ; 0x020FF6AC + .incbin "baserom.nds", 0x1036ac, 0x8 + + .global UNK_020FF6B4 +UNK_020FF6B4: ; 0x020FF6B4 + .incbin "baserom.nds", 0x1036b4, 0x8 + + .global UNK_020FF6BC +UNK_020FF6BC: ; 0x020FF6BC + .incbin "baserom.nds", 0x1036bc, 0x44 + + .global UNK_020FF700 +UNK_020FF700: ; 0x020FF700 + .incbin "baserom.nds", 0x103700, 0x44 + + .global UNK_020FF744 +UNK_020FF744: ; 0x020FF744 + .incbin "baserom.nds", 0x103744, 0x44 + + .global UNK_020FF788 +UNK_020FF788: ; 0x020FF788 + .incbin "baserom.nds", 0x103788, 0x44 + + .global UNK_020FF7CC +UNK_020FF7CC: ; 0x020FF7CC + .incbin "baserom.nds", 0x1037cc, 0x8 + + .global UNK_020FF7D4 +UNK_020FF7D4: ; 0x020FF7D4 + .incbin "baserom.nds", 0x1037d4, 0x90 + + .global UNK_020FF864 +UNK_020FF864: ; 0x020FF864 + .incbin "baserom.nds", 0x103864, 0x30 + + .global UNK_020FF894 +UNK_020FF894: ; 0x020FF894 + .incbin "baserom.nds", 0x103894, 0x18 + + .global UNK_020FF8AC +UNK_020FF8AC: ; 0x020FF8AC + .incbin "baserom.nds", 0x1038ac, 0x18 + + .global UNK_020FF8C4 +UNK_020FF8C4: ; 0x020FF8C4 + .incbin "baserom.nds", 0x1038c4, 0xc + + .global UNK_020FF8D0 +UNK_020FF8D0: ; 0x020FF8D0 + .incbin "baserom.nds", 0x1038d0, 0x8 + + .global UNK_020FF8D8 +UNK_020FF8D8: ; 0x020FF8D8 + .incbin "baserom.nds", 0x1038d8, 0x20 + + .global UNK_020FF8F8 +UNK_020FF8F8: ; 0x020FF8F8 + .incbin "baserom.nds", 0x1038f8, 0x30 + + .global UNK_020FF928 +UNK_020FF928: ; 0x020FF928 + .incbin "baserom.nds", 0x103928, 0x30 + + .global UNK_020FF958 +UNK_020FF958: ; 0x020FF958 + .incbin "baserom.nds", 0x103958, 0x18 + + .global UNK_020FF970 +UNK_020FF970: ; 0x020FF970 + .incbin "baserom.nds", 0x103970, 0x20 + + .global UNK_020FF990 +UNK_020FF990: ; 0x020FF990 + .incbin "baserom.nds", 0x103990, 0x40 + + .global UNK_020FF9D0 +UNK_020FF9D0: ; 0x020FF9D0 + .incbin "baserom.nds", 0x1039d0, 0x20 + + .global UNK_020FF9F0 +UNK_020FF9F0: ; 0x020FF9F0 + .incbin "baserom.nds", 0x1039f0, 0x1 + + .global UNK_020FF9F1 +UNK_020FF9F1: ; 0x020FF9F1 + .incbin "baserom.nds", 0x1039f1, 0x1 + + .global UNK_020FF9F2 +UNK_020FF9F2: ; 0x020FF9F2 + .incbin "baserom.nds", 0x1039f2, 0x1 + + .global UNK_020FF9F3 +UNK_020FF9F3: ; 0x020FF9F3 + .incbin "baserom.nds", 0x1039f3, 0x21 + + .global UNK_020FFA14 +UNK_020FFA14: ; 0x020FFA14 + .incbin "baserom.nds", 0x103a14, 0x1 + + .global UNK_020FFA15 +UNK_020FFA15: ; 0x020FFA15 + .incbin "baserom.nds", 0x103a15, 0x1 + + .global UNK_020FFA16 +UNK_020FFA16: ; 0x020FFA16 + .incbin "baserom.nds", 0x103a16, 0x1 + + .global UNK_020FFA17 +UNK_020FFA17: ; 0x020FFA17 + .incbin "baserom.nds", 0x103a17, 0x21 + + .global UNK_020FFA38 +UNK_020FFA38: ; 0x020FFA38 + .incbin "baserom.nds", 0x103a38, 0x609 + + .global UNK_02100041 +UNK_02100041: ; 0x02100041 + .incbin "baserom.nds", 0x104041, 0xe5 + + .global UNK_02100126 +UNK_02100126: ; 0x02100126 + .incbin "baserom.nds", 0x104126, 0xe8 + + .global UNK_0210020E +UNK_0210020E: ; 0x0210020E + .incbin "baserom.nds", 0x10420e, 0x1 + + .global UNK_0210020F +UNK_0210020F: ; 0x0210020F + .incbin "baserom.nds", 0x10420f, 0xdf2 + + .global UNK_02101001 +UNK_02101001: ; 0x02101001 + .incbin "baserom.nds", 0x105001, 0x1 + + .global UNK_02101002 +UNK_02101002: ; 0x02101002 + .incbin "baserom.nds", 0x105002, 0xfff + + .global UNK_02102001 +UNK_02102001: ; 0x02102001 + .incbin "baserom.nds", 0x106001, 0x1000 + + .global UNK_02103001 +UNK_02103001: ; 0x02103001 + .incbin "baserom.nds", 0x107001, 0xa37 + + .global FX_AtanTable_ +FX_AtanTable_: ; 0x02103A38 + .incbin "baserom.nds", 0x107a38, 0x104 + + .global UNK_02103B3C +UNK_02103B3C: ; 0x02103B3C + .incbin "baserom.nds", 0x107b3c, 0x10 + + .global UNK_02103B4C +UNK_02103B4C: ; 0x02103B4C + .incbin "baserom.nds", 0x107b4c, 0x2 + + .global UNK_02103B4E +UNK_02103B4E: ; 0x02103B4E + .incbin "baserom.nds", 0x107b4e, 0x2 + + .global UNK_02103B50 +UNK_02103B50: ; 0x02103B50 + .incbin "baserom.nds", 0x107b50, 0x5c + + .global UNK_02103BAC +UNK_02103BAC: ; 0x02103BAC + .incbin "baserom.nds", 0x107bac, 0x100 + + .global UNK_02103CAC +UNK_02103CAC: ; 0x02103CAC + .incbin "baserom.nds", 0x107cac, 0x2d4 diff --git a/arm9/data/rom2_3.s b/arm9/data/rom2_3.s index 14ce7502..a86431af 100644 --- a/arm9/data/rom2_3.s +++ b/arm9/data/rom2_3.s @@ -6,7 +6,1368 @@ .section .rodata /* 0x02103FE4 */ - .incbin "baserom.nds", 0x107FE4, 0x790 + + .global UNK_02103FE4 +UNK_02103FE4: ; 0x02103FE4 + .incbin "baserom.nds", 0x107fe4, 0x4 + + .global UNK_02103FE8 +UNK_02103FE8: ; 0x02103FE8 + .incbin "baserom.nds", 0x107fe8, 0xc + + .global UNK_02103FF4 +UNK_02103FF4: ; 0x02103FF4 + .incbin "baserom.nds", 0x107ff4, 0x10 + + .global UNK_02104004 +UNK_02104004: ; 0x02104004 + .incbin "baserom.nds", 0x108004, 0x8 + + .global UNK_0210400C +UNK_0210400C: ; 0x0210400C + .incbin "baserom.nds", 0x10800c, 0x3c + + .global UNK_02104048 +UNK_02104048: ; 0x02104048 + .incbin "baserom.nds", 0x108048, 0x3c + + .global UNK_02104084 +UNK_02104084: ; 0x02104084 + .incbin "baserom.nds", 0x108084, 0x8 + + .global UNK_0210408C +UNK_0210408C: ; 0x0210408C + .incbin "baserom.nds", 0x10808c, 0x3c + + .global UNK_021040C8 +UNK_021040C8: ; 0x021040C8 + .incbin "baserom.nds", 0x1080c8, 0x8 + + .global UNK_021040D0 +UNK_021040D0: ; 0x021040D0 + .incbin "baserom.nds", 0x1080d0, 0x3c + + .global UNK_0210410C +UNK_0210410C: ; 0x0210410C + .incbin "baserom.nds", 0x10810c, 0x3c + + .global UNK_02104148 +UNK_02104148: ; 0x02104148 + .incbin "baserom.nds", 0x108148, 0x8 + + .global UNK_02104150 +UNK_02104150: ; 0x02104150 + .incbin "baserom.nds", 0x108150, 0x3c + + .global UNK_0210418C +UNK_0210418C: ; 0x0210418C + .incbin "baserom.nds", 0x10818c, 0x3c + + .global UNK_021041C8 +UNK_021041C8: ; 0x021041C8 + .incbin "baserom.nds", 0x1081c8, 0x8 + + .global UNK_021041D0 +UNK_021041D0: ; 0x021041D0 + .incbin "baserom.nds", 0x1081d0, 0x3c + + .global UNK_0210420C +UNK_0210420C: ; 0x0210420C + .incbin "baserom.nds", 0x10820c, 0x80 + + .global UNK_0210428C +UNK_0210428C: ; 0x0210428C + .incbin "baserom.nds", 0x10828c, 0x80 + + .global UNK_0210430C +UNK_0210430C: ; 0x0210430C + .incbin "baserom.nds", 0x10830c, 0x100 + + .global UNK_0210440C +UNK_0210440C: ; 0x0210440C + .incbin "baserom.nds", 0x10840c, 0x28 + + .global UNK_02104434 +UNK_02104434: ; 0x02104434 + .incbin "baserom.nds", 0x108434, 0x5 + + .global UNK_02104439 +UNK_02104439: ; 0x02104439 + .incbin "baserom.nds", 0x108439, 0x10b + + .global UNK_02104544 +UNK_02104544: ; 0x02104544 + .incbin "baserom.nds", 0x108544, 0x200 + + .global UNK_02104744 +UNK_02104744: ; 0x02104744 + .incbin "baserom.nds", 0x108744, 0x10 + + .global UNK_02104754 +UNK_02104754: ; 0x02104754 + .incbin "baserom.nds", 0x108754, 0x10 + + .global UNK_02104764 +UNK_02104764: ; 0x02104764 + .incbin "baserom.nds", 0x108764, 0x10 .section .data - .incbin "baserom.nds", 0x108780, 0x20ac + ; 0x02104780 + .global UNK_02104780 +UNK_02104780: ; 0x02104780 + .incbin "baserom.nds", 0x108780, 0x1c + + .global UNK_0210479C +UNK_0210479C: ; 0x0210479C + .incbin "baserom.nds", 0x10879c, 0xc + + .global UNK_021047A8 +UNK_021047A8: ; 0x021047A8 + .incbin "baserom.nds", 0x1087a8, 0x10 + + .global UNK_021047B8 +UNK_021047B8: ; 0x021047B8 + .incbin "baserom.nds", 0x1087b8, 0x10 + + .global UNK_021047C8 +UNK_021047C8: ; 0x021047C8 + .incbin "baserom.nds", 0x1087c8, 0x14 + + .global UNK_021047DC +UNK_021047DC: ; 0x021047DC + .incbin "baserom.nds", 0x1087dc, 0x14 + + .global UNK_021047F0 +UNK_021047F0: ; 0x021047F0 + .incbin "baserom.nds", 0x1087f0, 0x14 + + .global UNK_02104804 +UNK_02104804: ; 0x02104804 + .incbin "baserom.nds", 0x108804, 0x14 + + .global UNK_02104818 +UNK_02104818: ; 0x02104818 + .incbin "baserom.nds", 0x108818, 0x14 + + .global UNK_0210482C +UNK_0210482C: ; 0x0210482C + .incbin "baserom.nds", 0x10882c, 0x14 + + .global UNK_02104840 +UNK_02104840: ; 0x02104840 + .incbin "baserom.nds", 0x108840, 0x14 + + .global UNK_02104854 +UNK_02104854: ; 0x02104854 + .incbin "baserom.nds", 0x108854, 0x14 + + .global UNK_02104868 +UNK_02104868: ; 0x02104868 + .incbin "baserom.nds", 0x108868, 0x14 + + .global UNK_0210487C +UNK_0210487C: ; 0x0210487C + .incbin "baserom.nds", 0x10887c, 0x14 + + .global UNK_02104890 +UNK_02104890: ; 0x02104890 + .incbin "baserom.nds", 0x108890, 0x14 + + .global UNK_021048A4 +UNK_021048A4: ; 0x021048A4 + .incbin "baserom.nds", 0x1088a4, 0x14 + + .global UNK_021048B8 +UNK_021048B8: ; 0x021048B8 + .incbin "baserom.nds", 0x1088b8, 0x14 + + .global UNK_021048CC +UNK_021048CC: ; 0x021048CC + .incbin "baserom.nds", 0x1088cc, 0x14 + + .global UNK_021048E0 +UNK_021048E0: ; 0x021048E0 + .incbin "baserom.nds", 0x1088e0, 0x14 + + .global UNK_021048F4 +UNK_021048F4: ; 0x021048F4 + .incbin "baserom.nds", 0x1088f4, 0x14 + + .global UNK_02104908 +UNK_02104908: ; 0x02104908 + .incbin "baserom.nds", 0x108908, 0x14 + + .global UNK_0210491C +UNK_0210491C: ; 0x0210491C + .incbin "baserom.nds", 0x10891c, 0x14 + + .global UNK_02104930 +UNK_02104930: ; 0x02104930 + .incbin "baserom.nds", 0x108930, 0x14 + + .global UNK_02104944 +UNK_02104944: ; 0x02104944 + .incbin "baserom.nds", 0x108944, 0x14 + + .global UNK_02104958 +UNK_02104958: ; 0x02104958 + .incbin "baserom.nds", 0x108958, 0x18 + + .global UNK_02104970 +UNK_02104970: ; 0x02104970 + .incbin "baserom.nds", 0x108970, 0x18 + + .global UNK_02104988 +UNK_02104988: ; 0x02104988 + .incbin "baserom.nds", 0x108988, 0x18 + + .global UNK_021049A0 +UNK_021049A0: ; 0x021049A0 + .incbin "baserom.nds", 0x1089a0, 0x18 + + .global UNK_021049B8 +UNK_021049B8: ; 0x021049B8 + .incbin "baserom.nds", 0x1089b8, 0x18 + + .global UNK_021049D0 +UNK_021049D0: ; 0x021049D0 + .incbin "baserom.nds", 0x1089d0, 0x18 + + .global UNK_021049E8 +UNK_021049E8: ; 0x021049E8 + .incbin "baserom.nds", 0x1089e8, 0x18 + + .global UNK_02104A00 +UNK_02104A00: ; 0x02104A00 + .incbin "baserom.nds", 0x108a00, 0x18 + + .global UNK_02104A18 +UNK_02104A18: ; 0x02104A18 + .incbin "baserom.nds", 0x108a18, 0x18 + + .global UNK_02104A30 +UNK_02104A30: ; 0x02104A30 + .incbin "baserom.nds", 0x108a30, 0x18 + + .global UNK_02104A48 +UNK_02104A48: ; 0x02104A48 + .incbin "baserom.nds", 0x108a48, 0x18 + + .global UNK_02104A60 +UNK_02104A60: ; 0x02104A60 + .incbin "baserom.nds", 0x108a60, 0x18 + + .global UNK_02104A78 +UNK_02104A78: ; 0x02104A78 + .incbin "baserom.nds", 0x108a78, 0x18 + + .global UNK_02104A90 +UNK_02104A90: ; 0x02104A90 + .incbin "baserom.nds", 0x108a90, 0x18 + + .global UNK_02104AA8 +UNK_02104AA8: ; 0x02104AA8 + .incbin "baserom.nds", 0x108aa8, 0x18 + + .global UNK_02104AC0 +UNK_02104AC0: ; 0x02104AC0 + .incbin "baserom.nds", 0x108ac0, 0x18 + + .global UNK_02104AD8 +UNK_02104AD8: ; 0x02104AD8 + .incbin "baserom.nds", 0x108ad8, 0x18 + + .global UNK_02104AF0 +UNK_02104AF0: ; 0x02104AF0 + .incbin "baserom.nds", 0x108af0, 0x18 + + .global UNK_02104B08 +UNK_02104B08: ; 0x02104B08 + .incbin "baserom.nds", 0x108b08, 0x18 + + .global UNK_02104B20 +UNK_02104B20: ; 0x02104B20 + .incbin "baserom.nds", 0x108b20, 0x18 + + .global UNK_02104B38 +UNK_02104B38: ; 0x02104B38 + .incbin "baserom.nds", 0x108b38, 0x18 + + .global UNK_02104B50 +UNK_02104B50: ; 0x02104B50 + .incbin "baserom.nds", 0x108b50, 0x18 + + .global UNK_02104B68 +UNK_02104B68: ; 0x02104B68 + .incbin "baserom.nds", 0x108b68, 0x18 + + .global UNK_02104B80 +UNK_02104B80: ; 0x02104B80 + .incbin "baserom.nds", 0x108b80, 0x18 + + .global UNK_02104B98 +UNK_02104B98: ; 0x02104B98 + .incbin "baserom.nds", 0x108b98, 0x18 + + .global UNK_02104BB0 +UNK_02104BB0: ; 0x02104BB0 + .incbin "baserom.nds", 0x108bb0, 0x18 + + .global UNK_02104BC8 +UNK_02104BC8: ; 0x02104BC8 + .incbin "baserom.nds", 0x108bc8, 0x18 + + .global UNK_02104BE0 +UNK_02104BE0: ; 0x02104BE0 + .incbin "baserom.nds", 0x108be0, 0x18 + + .global UNK_02104BF8 +UNK_02104BF8: ; 0x02104BF8 + .incbin "baserom.nds", 0x108bf8, 0x18 + + .global UNK_02104C10 +UNK_02104C10: ; 0x02104C10 + .incbin "baserom.nds", 0x108c10, 0x18 + + .global UNK_02104C28 +UNK_02104C28: ; 0x02104C28 + .incbin "baserom.nds", 0x108c28, 0x18 + + .global UNK_02104C40 +UNK_02104C40: ; 0x02104C40 + .incbin "baserom.nds", 0x108c40, 0x18 + + .global UNK_02104C58 +UNK_02104C58: ; 0x02104C58 + .incbin "baserom.nds", 0x108c58, 0x18 + + .global UNK_02104C70 +UNK_02104C70: ; 0x02104C70 + .incbin "baserom.nds", 0x108c70, 0x18 + + .global UNK_02104C88 +UNK_02104C88: ; 0x02104C88 + .incbin "baserom.nds", 0x108c88, 0x18 + + .global UNK_02104CA0 +UNK_02104CA0: ; 0x02104CA0 + .incbin "baserom.nds", 0x108ca0, 0x18 + + .global UNK_02104CB8 +UNK_02104CB8: ; 0x02104CB8 + .incbin "baserom.nds", 0x108cb8, 0x18 + + .global UNK_02104CD0 +UNK_02104CD0: ; 0x02104CD0 + .incbin "baserom.nds", 0x108cd0, 0x18 + + .global UNK_02104CE8 +UNK_02104CE8: ; 0x02104CE8 + .incbin "baserom.nds", 0x108ce8, 0x18 + + .global UNK_02104D00 +UNK_02104D00: ; 0x02104D00 + .incbin "baserom.nds", 0x108d00, 0x18 + + .global UNK_02104D18 +UNK_02104D18: ; 0x02104D18 + .incbin "baserom.nds", 0x108d18, 0x1c + + .global UNK_02104D34 +UNK_02104D34: ; 0x02104D34 + .incbin "baserom.nds", 0x108d34, 0x1c + + .global UNK_02104D50 +UNK_02104D50: ; 0x02104D50 + .incbin "baserom.nds", 0x108d50, 0x1c + + .global UNK_02104D6C +UNK_02104D6C: ; 0x02104D6C + .incbin "baserom.nds", 0x108d6c, 0x1c + + .global UNK_02104D88 +UNK_02104D88: ; 0x02104D88 + .incbin "baserom.nds", 0x108d88, 0x1c + + .global UNK_02104DA4 +UNK_02104DA4: ; 0x02104DA4 + .incbin "baserom.nds", 0x108da4, 0x1c + + .global UNK_02104DC0 +UNK_02104DC0: ; 0x02104DC0 + .incbin "baserom.nds", 0x108dc0, 0x1c + + .global UNK_02104DDC +UNK_02104DDC: ; 0x02104DDC + .incbin "baserom.nds", 0x108ddc, 0x1c + + .global UNK_02104DF8 +UNK_02104DF8: ; 0x02104DF8 + .incbin "baserom.nds", 0x108df8, 0x1c + + .global UNK_02104E14 +UNK_02104E14: ; 0x02104E14 + .incbin "baserom.nds", 0x108e14, 0x1c + + .global UNK_02104E30 +UNK_02104E30: ; 0x02104E30 + .incbin "baserom.nds", 0x108e30, 0x1c + + .global UNK_02104E4C +UNK_02104E4C: ; 0x02104E4C + .incbin "baserom.nds", 0x108e4c, 0x1c + + .global UNK_02104E68 +UNK_02104E68: ; 0x02104E68 + .incbin "baserom.nds", 0x108e68, 0x1c + + .global UNK_02104E84 +UNK_02104E84: ; 0x02104E84 + .incbin "baserom.nds", 0x108e84, 0x1c + + .global UNK_02104EA0 +UNK_02104EA0: ; 0x02104EA0 + .incbin "baserom.nds", 0x108ea0, 0x1c + + .global UNK_02104EBC +UNK_02104EBC: ; 0x02104EBC + .incbin "baserom.nds", 0x108ebc, 0x1c + + .global UNK_02104ED8 +UNK_02104ED8: ; 0x02104ED8 + .incbin "baserom.nds", 0x108ed8, 0x1c + + .global UNK_02104EF4 +UNK_02104EF4: ; 0x02104EF4 + .incbin "baserom.nds", 0x108ef4, 0x1c + + .global UNK_02104F10 +UNK_02104F10: ; 0x02104F10 + .incbin "baserom.nds", 0x108f10, 0x1c + + .global UNK_02104F2C +UNK_02104F2C: ; 0x02104F2C + .incbin "baserom.nds", 0x108f2c, 0x1c + + .global UNK_02104F48 +UNK_02104F48: ; 0x02104F48 + .incbin "baserom.nds", 0x108f48, 0x1c + + .global UNK_02104F64 +UNK_02104F64: ; 0x02104F64 + .incbin "baserom.nds", 0x108f64, 0x1c + + .global UNK_02104F80 +UNK_02104F80: ; 0x02104F80 + .incbin "baserom.nds", 0x108f80, 0x20 + + .global UNK_02104FA0 +UNK_02104FA0: ; 0x02104FA0 + .incbin "baserom.nds", 0x108fa0, 0x20 + + .global UNK_02104FC0 +UNK_02104FC0: ; 0x02104FC0 + .incbin "baserom.nds", 0x108fc0, 0x20 + + .global UNK_02104FE0 +UNK_02104FE0: ; 0x02104FE0 + .incbin "baserom.nds", 0x108fe0, 0x20 + + .global UNK_02105000 +UNK_02105000: ; 0x02105000 + .incbin "baserom.nds", 0x109000, 0x20 + + .global UNK_02105020 +UNK_02105020: ; 0x02105020 + .incbin "baserom.nds", 0x109020, 0x20 + + .global UNK_02105040 +UNK_02105040: ; 0x02105040 + .incbin "baserom.nds", 0x109040, 0x20 + + .global UNK_02105060 +UNK_02105060: ; 0x02105060 + .incbin "baserom.nds", 0x109060, 0x20 + + .global UNK_02105080 +UNK_02105080: ; 0x02105080 + .incbin "baserom.nds", 0x109080, 0x20 + + .global UNK_021050A0 +UNK_021050A0: ; 0x021050A0 + .incbin "baserom.nds", 0x1090a0, 0x20 + + .global UNK_021050C0 +UNK_021050C0: ; 0x021050C0 + .incbin "baserom.nds", 0x1090c0, 0x20 + + .global UNK_021050E0 +UNK_021050E0: ; 0x021050E0 + .incbin "baserom.nds", 0x1090e0, 0x20 + + .global UNK_02105100 +UNK_02105100: ; 0x02105100 + .incbin "baserom.nds", 0x109100, 0x20 + + .global UNK_02105120 +UNK_02105120: ; 0x02105120 + .incbin "baserom.nds", 0x109120, 0x20 + + .global UNK_02105140 +UNK_02105140: ; 0x02105140 + .incbin "baserom.nds", 0x109140, 0x20 + + .global UNK_02105160 +UNK_02105160: ; 0x02105160 + .incbin "baserom.nds", 0x109160, 0x20 + + .global UNK_02105180 +UNK_02105180: ; 0x02105180 + .incbin "baserom.nds", 0x109180, 0x20 + + .global UNK_021051A0 +UNK_021051A0: ; 0x021051A0 + .incbin "baserom.nds", 0x1091a0, 0x20 + + .global UNK_021051C0 +UNK_021051C0: ; 0x021051C0 + .incbin "baserom.nds", 0x1091c0, 0x20 + + .global UNK_021051E0 +UNK_021051E0: ; 0x021051E0 + .incbin "baserom.nds", 0x1091e0, 0x20 + + .global UNK_02105200 +UNK_02105200: ; 0x02105200 + .incbin "baserom.nds", 0x109200, 0x20 + + .global UNK_02105220 +UNK_02105220: ; 0x02105220 + .incbin "baserom.nds", 0x109220, 0x20 + + .global UNK_02105240 +UNK_02105240: ; 0x02105240 + .incbin "baserom.nds", 0x109240, 0x20 + + .global UNK_02105260 +UNK_02105260: ; 0x02105260 + .incbin "baserom.nds", 0x109260, 0x20 + + .global UNK_02105280 +UNK_02105280: ; 0x02105280 + .incbin "baserom.nds", 0x109280, 0x20 + + .global UNK_021052A0 +UNK_021052A0: ; 0x021052A0 + .incbin "baserom.nds", 0x1092a0, 0x24 + + .global UNK_021052C4 +UNK_021052C4: ; 0x021052C4 + .incbin "baserom.nds", 0x1092c4, 0x24 + + .global UNK_021052E8 +UNK_021052E8: ; 0x021052E8 + .incbin "baserom.nds", 0x1092e8, 0x24 + + .global UNK_0210530C +UNK_0210530C: ; 0x0210530C + .incbin "baserom.nds", 0x10930c, 0x24 + + .global UNK_02105330 +UNK_02105330: ; 0x02105330 + .incbin "baserom.nds", 0x109330, 0x24 + + .global UNK_02105354 +UNK_02105354: ; 0x02105354 + .incbin "baserom.nds", 0x109354, 0x24 + + .global UNK_02105378 +UNK_02105378: ; 0x02105378 + .incbin "baserom.nds", 0x109378, 0x24 + + .global UNK_0210539C +UNK_0210539C: ; 0x0210539C + .incbin "baserom.nds", 0x10939c, 0x24 + + .global UNK_021053C0 +UNK_021053C0: ; 0x021053C0 + .incbin "baserom.nds", 0x1093c0, 0x24 + + .global UNK_021053E4 +UNK_021053E4: ; 0x021053E4 + .incbin "baserom.nds", 0x1093e4, 0x24 + + .global UNK_02105408 +UNK_02105408: ; 0x02105408 + .incbin "baserom.nds", 0x109408, 0x24 + + .global UNK_0210542C +UNK_0210542C: ; 0x0210542C + .incbin "baserom.nds", 0x10942c, 0x28 + + .global UNK_02105454 +UNK_02105454: ; 0x02105454 + .incbin "baserom.nds", 0x109454, 0x28 + + .global UNK_0210547C +UNK_0210547C: ; 0x0210547C + .incbin "baserom.nds", 0x10947c, 0x28 + + .global UNK_021054A4 +UNK_021054A4: ; 0x021054A4 + .incbin "baserom.nds", 0x1094a4, 0x28 + + .global UNK_021054CC +UNK_021054CC: ; 0x021054CC + .incbin "baserom.nds", 0x1094cc, 0x28 + + .global UNK_021054F4 +UNK_021054F4: ; 0x021054F4 + .incbin "baserom.nds", 0x1094f4, 0x28 + + .global UNK_0210551C +UNK_0210551C: ; 0x0210551C + .incbin "baserom.nds", 0x10951c, 0x28 + + .global UNK_02105544 +UNK_02105544: ; 0x02105544 + .incbin "baserom.nds", 0x109544, 0x28 + + .global UNK_0210556C +UNK_0210556C: ; 0x0210556C + .incbin "baserom.nds", 0x10956c, 0x28 + + .global UNK_02105594 +UNK_02105594: ; 0x02105594 + .incbin "baserom.nds", 0x109594, 0x28 + + .global UNK_021055BC +UNK_021055BC: ; 0x021055BC + .incbin "baserom.nds", 0x1095bc, 0x2c + + .global UNK_021055E8 +UNK_021055E8: ; 0x021055E8 + .incbin "baserom.nds", 0x1095e8, 0x2c + + .global UNK_02105614 +UNK_02105614: ; 0x02105614 + .incbin "baserom.nds", 0x109614, 0x2c + + .global UNK_02105640 +UNK_02105640: ; 0x02105640 + .incbin "baserom.nds", 0x109640, 0x2c + + .global UNK_0210566C +UNK_0210566C: ; 0x0210566C + .incbin "baserom.nds", 0x10966c, 0x2c + + .global UNK_02105698 +UNK_02105698: ; 0x02105698 + .incbin "baserom.nds", 0x109698, 0x30 + + .global UNK_021056C8 +UNK_021056C8: ; 0x021056C8 + .incbin "baserom.nds", 0x1096c8, 0x30 + + .global UNK_021056F8 +UNK_021056F8: ; 0x021056F8 + .incbin "baserom.nds", 0x1096f8, 0x30 + + .global UNK_02105728 +UNK_02105728: ; 0x02105728 + .incbin "baserom.nds", 0x109728, 0x34 + + .global UNK_0210575C +UNK_0210575C: ; 0x0210575C + .incbin "baserom.nds", 0x10975c, 0x34 + + .global UNK_02105790 +UNK_02105790: ; 0x02105790 + .incbin "baserom.nds", 0x109790, 0x34 + + .global UNK_021057C4 +UNK_021057C4: ; 0x021057C4 + .incbin "baserom.nds", 0x1097c4, 0x34 + + .global UNK_021057F8 +UNK_021057F8: ; 0x021057F8 + .incbin "baserom.nds", 0x1097f8, 0x38 + + .global UNK_02105830 +UNK_02105830: ; 0x02105830 + .incbin "baserom.nds", 0x109830, 0x38 + + .global UNK_02105868 +UNK_02105868: ; 0x02105868 + .incbin "baserom.nds", 0x109868, 0x38 + + .global UNK_021058A0 +UNK_021058A0: ; 0x021058A0 + .incbin "baserom.nds", 0x1098a0, 0x248 + + .global UNK_02105AE8 +UNK_02105AE8: ; 0x02105AE8 + .incbin "baserom.nds", 0x109ae8, 0x10 + + .global UNK_02105AF8 +UNK_02105AF8: ; 0x02105AF8 + .incbin "baserom.nds", 0x109af8, 0x8 + + .global UNK_02105B00 +UNK_02105B00: ; 0x02105B00 + .incbin "baserom.nds", 0x109b00, 0x8 + + .global UNK_02105B08 +UNK_02105B08: ; 0x02105B08 + .incbin "baserom.nds", 0x109b08, 0x8 + + .global UNK_02105B10 +UNK_02105B10: ; 0x02105B10 + .incbin "baserom.nds", 0x109b10, 0x8 + + .global UNK_02105B18 +UNK_02105B18: ; 0x02105B18 + .incbin "baserom.nds", 0x109b18, 0x8 + + .global UNK_02105B20 +UNK_02105B20: ; 0x02105B20 + .incbin "baserom.nds", 0x109b20, 0x8 + + .global UNK_02105B28 +UNK_02105B28: ; 0x02105B28 + .incbin "baserom.nds", 0x109b28, 0x8 + + .global UNK_02105B30 +UNK_02105B30: ; 0x02105B30 + .incbin "baserom.nds", 0x109b30, 0x8 + + .global UNK_02105B38 +UNK_02105B38: ; 0x02105B38 + .incbin "baserom.nds", 0x109b38, 0x8 + + .global UNK_02105B40 +UNK_02105B40: ; 0x02105B40 + .incbin "baserom.nds", 0x109b40, 0x8 + + .global UNK_02105B48 +UNK_02105B48: ; 0x02105B48 + .incbin "baserom.nds", 0x109b48, 0x30 + + .global UNK_02105B78 +UNK_02105B78: ; 0x02105B78 + .incbin "baserom.nds", 0x109b78, 0x30 + + .global UNK_02105BA8 +UNK_02105BA8: ; 0x02105BA8 + .incbin "baserom.nds", 0x109ba8, 0x4 + + .global UNK_02105BAC +UNK_02105BAC: ; 0x02105BAC + .incbin "baserom.nds", 0x109bac, 0x8 + + .global UNK_02105BB4 +UNK_02105BB4: ; 0x02105BB4 + .incbin "baserom.nds", 0x109bb4, 0x4 + + .global UNK_02105BB8 +UNK_02105BB8: ; 0x02105BB8 + .incbin "baserom.nds", 0x109bb8, 0x4 + + .global UNK_02105BBC +UNK_02105BBC: ; 0x02105BBC + .incbin "baserom.nds", 0x109bbc, 0x18 + + .global UNK_02105BD4 +UNK_02105BD4: ; 0x02105BD4 + .incbin "baserom.nds", 0x109bd4, 0xa0 + + .global UNK_02105C74 +UNK_02105C74: ; 0x02105C74 + .incbin "baserom.nds", 0x109c74, 0x64 + + .global UNK_02105CD8 +UNK_02105CD8: ; 0x02105CD8 + .incbin "baserom.nds", 0x109cd8, 0x7c + + .global UNK_02105D54 +UNK_02105D54: ; 0x02105D54 + .incbin "baserom.nds", 0x109d54, 0x4 + + .global UNK_02105D58 +UNK_02105D58: ; 0x02105D58 + .incbin "baserom.nds", 0x109d58, 0x4 + + .global UNK_02105D5C +UNK_02105D5C: ; 0x02105D5C + .incbin "baserom.nds", 0x109d5c, 0x8 + + .global UNK_02105D64 +UNK_02105D64: ; 0x02105D64 + .incbin "baserom.nds", 0x109d64, 0x1 + + .global UNK_02105D65 +UNK_02105D65: ; 0x02105D65 + .incbin "baserom.nds", 0x109d65, 0x7 + + .global UNK_02105D6C +UNK_02105D6C: ; 0x02105D6C + .incbin "baserom.nds", 0x109d6c, 0x1 + + .global UNK_02105D6D +UNK_02105D6D: ; 0x02105D6D + .incbin "baserom.nds", 0x109d6d, 0x7 + + .global UNK_02105D74 +UNK_02105D74: ; 0x02105D74 + .incbin "baserom.nds", 0x109d74, 0x14 + + .global UNK_02105D88 +UNK_02105D88: ; 0x02105D88 + .incbin "baserom.nds", 0x109d88, 0x10 + + .global UNK_02105D98 +UNK_02105D98: ; 0x02105D98 + .incbin "baserom.nds", 0x109d98, 0x10 + + .global UNK_02105DA8 +UNK_02105DA8: ; 0x02105DA8 + .incbin "baserom.nds", 0x109da8, 0x10 + + .global UNK_02105DB8 +UNK_02105DB8: ; 0x02105DB8 + .incbin "baserom.nds", 0x109db8, 0x4 + + .global UNK_02105DBC +UNK_02105DBC: ; 0x02105DBC + .incbin "baserom.nds", 0x109dbc, 0x10 + + .global UNK_02105DCC +UNK_02105DCC: ; 0x02105DCC + .incbin "baserom.nds", 0x109dcc, 0x10 + + .global UNK_02105DDC +UNK_02105DDC: ; 0x02105DDC + .incbin "baserom.nds", 0x109ddc, 0x10 + + .global UNK_02105DEC +UNK_02105DEC: ; 0x02105DEC + .incbin "baserom.nds", 0x109dec, 0x8 + + .global UNK_02105DF4 +UNK_02105DF4: ; 0x02105DF4 + .incbin "baserom.nds", 0x109df4, 0x1c + + .global UNK_02105E10 +UNK_02105E10: ; 0x02105E10 + .incbin "baserom.nds", 0x109e10, 0x4c + + .global UNK_02105E5C +UNK_02105E5C: ; 0x02105E5C + .incbin "baserom.nds", 0x109e5c, 0x8 + + .global UNK_02105E64 +UNK_02105E64: ; 0x02105E64 + .incbin "baserom.nds", 0x109e64, 0x10 + + .global UNK_02105E74 +UNK_02105E74: ; 0x02105E74 + .incbin "baserom.nds", 0x109e74, 0xc + + .global UNK_02105E80 +UNK_02105E80: ; 0x02105E80 + .incbin "baserom.nds", 0x109e80, 0x14 + + .global UNK_02105E94 +UNK_02105E94: ; 0x02105E94 + .incbin "baserom.nds", 0x109e94, 0x1c + + .global UNK_02105EB0 +UNK_02105EB0: ; 0x02105EB0 + .incbin "baserom.nds", 0x109eb0, 0x18 + + .global UNK_02105EC8 +UNK_02105EC8: ; 0x02105EC8 + .incbin "baserom.nds", 0x109ec8, 0x8 + + .global UNK_02105ED0 +UNK_02105ED0: ; 0x02105ED0 + .incbin "baserom.nds", 0x109ed0, 0x8 + + .global UNK_02105ED8 +UNK_02105ED8: ; 0x02105ED8 + .incbin "baserom.nds", 0x109ed8, 0x1c + + .global UNK_02105EF4 +UNK_02105EF4: ; 0x02105EF4 + .incbin "baserom.nds", 0x109ef4, 0x1c + + .global UNK_02105F10 +UNK_02105F10: ; 0x02105F10 + .incbin "baserom.nds", 0x109f10, 0x1c + + .global UNK_02105F2C +UNK_02105F2C: ; 0x02105F2C + .incbin "baserom.nds", 0x109f2c, 0x1c + + .global UNK_02105F48 +UNK_02105F48: ; 0x02105F48 + .incbin "baserom.nds", 0x109f48, 0x1c + + .global UNK_02105F64 +UNK_02105F64: ; 0x02105F64 + .incbin "baserom.nds", 0x109f64, 0x1c + + .global UNK_02105F80 +UNK_02105F80: ; 0x02105F80 + .incbin "baserom.nds", 0x109f80, 0x1c + + .global UNK_02105F9C +UNK_02105F9C: ; 0x02105F9C + .incbin "baserom.nds", 0x109f9c, 0xc + + .global UNK_02105FA8 +UNK_02105FA8: ; 0x02105FA8 + .incbin "baserom.nds", 0x109fa8, 0x14 + + .global UNK_02105FBC +UNK_02105FBC: ; 0x02105FBC + .incbin "baserom.nds", 0x109fbc, 0xc + + .global UNK_02105FC8 +UNK_02105FC8: ; 0x02105FC8 + .incbin "baserom.nds", 0x109fc8, 0x1c + + .global UNK_02105FE4 +UNK_02105FE4: ; 0x02105FE4 + .incbin "baserom.nds", 0x109fe4, 0x14 + + .global UNK_02105FF8 +UNK_02105FF8: ; 0x02105FF8 + .incbin "baserom.nds", 0x109ff8, 0x18 + + .global UNK_02106010 +UNK_02106010: ; 0x02106010 + .incbin "baserom.nds", 0x10a010, 0x18 + + .global UNK_02106028 +UNK_02106028: ; 0x02106028 + .incbin "baserom.nds", 0x10a028, 0x18 + + .global UNK_02106040 +UNK_02106040: ; 0x02106040 + .incbin "baserom.nds", 0x10a040, 0x18 + + .global UNK_02106058 +UNK_02106058: ; 0x02106058 + .incbin "baserom.nds", 0x10a058, 0x14 + + .global UNK_0210606C +UNK_0210606C: ; 0x0210606C + .incbin "baserom.nds", 0x10a06c, 0x64 + + .global UNK_021060D0 +UNK_021060D0: ; 0x021060D0 + .incbin "baserom.nds", 0x10a0d0, 0x14 + + .global UNK_021060E4 +UNK_021060E4: ; 0x021060E4 + .incbin "baserom.nds", 0x10a0e4, 0x14 + + .global UNK_021060F8 +UNK_021060F8: ; 0x021060F8 + .incbin "baserom.nds", 0x10a0f8, 0x14 + + .global UNK_0210610C +UNK_0210610C: ; 0x0210610C + .incbin "baserom.nds", 0x10a10c, 0x18 + + .global UNK_02106124 +UNK_02106124: ; 0x02106124 + .incbin "baserom.nds", 0x10a124, 0x18 + + .global UNK_0210613C +UNK_0210613C: ; 0x0210613C + .incbin "baserom.nds", 0x10a13c, 0xc + + .global UNK_02106148 +UNK_02106148: ; 0x02106148 + .incbin "baserom.nds", 0x10a148, 0xc + + .global UNK_02106154 +UNK_02106154: ; 0x02106154 + .incbin "baserom.nds", 0x10a154, 0x4 + + .global UNK_02106158 +UNK_02106158: ; 0x02106158 + .incbin "baserom.nds", 0x10a158, 0x8 + + .global UNK_02106160 +UNK_02106160: ; 0x02106160 + .incbin "baserom.nds", 0x10a160, 0x8 + + .global UNK_02106168 +UNK_02106168: ; 0x02106168 + .incbin "baserom.nds", 0x10a168, 0x8 + + .global UNK_02106170 +UNK_02106170: ; 0x02106170 + .incbin "baserom.nds", 0x10a170, 0x1c + + .global UNK_0210618C +UNK_0210618C: ; 0x0210618C + .incbin "baserom.nds", 0x10a18c, 0x10 + + .global UNK_0210619C +UNK_0210619C: ; 0x0210619C + .incbin "baserom.nds", 0x10a19c, 0x24 + + .global UNK_021061C0 +UNK_021061C0: ; 0x021061C0 + .incbin "baserom.nds", 0x10a1c0, 0x4 + + .global UNK_021061C4 +UNK_021061C4: ; 0x021061C4 + .incbin "baserom.nds", 0x10a1c4, 0x18 + + .global UNK_021061DC +UNK_021061DC: ; 0x021061DC + .incbin "baserom.nds", 0x10a1dc, 0x18 + + .global UNK_021061F4 +UNK_021061F4: ; 0x021061F4 + .incbin "baserom.nds", 0x10a1f4, 0x18 + + .global UNK_0210620C +UNK_0210620C: ; 0x0210620C + .incbin "baserom.nds", 0x10a20c, 0xc + + .global UNK_02106218 +UNK_02106218: ; 0x02106218 + .incbin "baserom.nds", 0x10a218, 0x4 + + .global UNK_0210621C +UNK_0210621C: ; 0x0210621C + .incbin "baserom.nds", 0x10a21c, 0x8 + + .global UNK_02106224 +UNK_02106224: ; 0x02106224 + .incbin "baserom.nds", 0x10a224, 0xc + + .global UNK_02106230 +UNK_02106230: ; 0x02106230 + .incbin "baserom.nds", 0x10a230, 0xc + + .global UNK_0210623C +UNK_0210623C: ; 0x0210623C + .incbin "baserom.nds", 0x10a23c, 0x4 + + .global UNK_02106240 +UNK_02106240: ; 0x02106240 + .incbin "baserom.nds", 0x10a240, 0x4 + + .global UNK_02106244 +UNK_02106244: ; 0x02106244 + .incbin "baserom.nds", 0x10a244, 0x4 + + .global UNK_02106248 +UNK_02106248: ; 0x02106248 + .incbin "baserom.nds", 0x10a248, 0x4 + + .global UNK_0210624C +UNK_0210624C: ; 0x0210624C + .incbin "baserom.nds", 0x10a24c, 0x8 + + .global UNK_02106254 +UNK_02106254: ; 0x02106254 + .incbin "baserom.nds", 0x10a254, 0xc + + .global UNK_02106260 +UNK_02106260: ; 0x02106260 + .incbin "baserom.nds", 0x10a260, 0xc + + .global UNK_0210626C +UNK_0210626C: ; 0x0210626C + .incbin "baserom.nds", 0x10a26c, 0xc + + .global UNK_02106278 +UNK_02106278: ; 0x02106278 + .incbin "baserom.nds", 0x10a278, 0x18 + + .global UNK_02106290 +UNK_02106290: ; 0x02106290 + .incbin "baserom.nds", 0x10a290, 0x8 + + .global UNK_02106298 +UNK_02106298: ; 0x02106298 + .incbin "baserom.nds", 0x10a298, 0x8 + + .global UNK_021062A0 +UNK_021062A0: ; 0x021062A0 + .incbin "baserom.nds", 0x10a2a0, 0x4 + + .global UNK_021062A4 +UNK_021062A4: ; 0x021062A4 + .incbin "baserom.nds", 0x10a2a4, 0x4 + + .global UNK_021062A8 +UNK_021062A8: ; 0x021062A8 + .incbin "baserom.nds", 0x10a2a8, 0x4 + + .global UNK_021062AC +UNK_021062AC: ; 0x021062AC + .incbin "baserom.nds", 0x10a2ac, 0x40 + + .global UNK_021062EC +UNK_021062EC: ; 0x021062EC + .incbin "baserom.nds", 0x10a2ec, 0x40 + + .global UNK_0210632C +UNK_0210632C: ; 0x0210632C + .incbin "baserom.nds", 0x10a32c, 0x100 + + .global UNK_0210642C +UNK_0210642C: ; 0x0210642C + .incbin "baserom.nds", 0x10a42c, 0x1 + + .global UNK_0210642D +UNK_0210642D: ; 0x0210642D + .incbin "baserom.nds", 0x10a42d, 0x3f + + .global UNK_0210646C +UNK_0210646C: ; 0x0210646C + .incbin "baserom.nds", 0x10a46c, 0x4 + + .global UNK_02106470 +UNK_02106470: ; 0x02106470 + .incbin "baserom.nds", 0x10a470, 0x20 + + .global UNK_02106490 +UNK_02106490: ; 0x02106490 + .incbin "baserom.nds", 0x10a490, 0x8 + + .global UNK_02106498 +UNK_02106498: ; 0x02106498 + .incbin "baserom.nds", 0x10a498, 0x10 + + .global UNK_021064A8 +UNK_021064A8: ; 0x021064A8 + .incbin "baserom.nds", 0x10a4a8, 0x10 + + .global UNK_021064B8 +UNK_021064B8: ; 0x021064B8 + .incbin "baserom.nds", 0x10a4b8, 0x4 + + .global UNK_021064BC +UNK_021064BC: ; 0x021064BC + .incbin "baserom.nds", 0x10a4bc, 0x4 + + .global UNK_021064C0 +UNK_021064C0: ; 0x021064C0 + .incbin "baserom.nds", 0x10a4c0, 0x4 + + .global UNK_021064C4 +UNK_021064C4: ; 0x021064C4 + .incbin "baserom.nds", 0x10a4c4, 0x4 + + .global UNK_021064C8 +UNK_021064C8: ; 0x021064C8 + .incbin "baserom.nds", 0x10a4c8, 0x8 + + .global UNK_021064D0 +UNK_021064D0: ; 0x021064D0 + .incbin "baserom.nds", 0x10a4d0, 0x14 + + .global UNK_021064E4 +UNK_021064E4: ; 0x021064E4 + .incbin "baserom.nds", 0x10a4e4, 0x18 + + .global UNK_021064FC +UNK_021064FC: ; 0x021064FC + .incbin "baserom.nds", 0x10a4fc, 0x18 + + .global UNK_02106514 +UNK_02106514: ; 0x02106514 + .incbin "baserom.nds", 0x10a514, 0x18 + + .global UNK_0210652C +UNK_0210652C: ; 0x0210652C + .incbin "baserom.nds", 0x10a52c, 0x18 + + .global UNK_02106544 +UNK_02106544: ; 0x02106544 + .incbin "baserom.nds", 0x10a544, 0x18 + + .global UNK_0210655C +UNK_0210655C: ; 0x0210655C + .incbin "baserom.nds", 0x10a55c, 0x14 + + .global UNK_02106570 +UNK_02106570: ; 0x02106570 + .incbin "baserom.nds", 0x10a570, 0x4 + + .global UNK_02106574 +UNK_02106574: ; 0x02106574 + .incbin "baserom.nds", 0x10a574, 0x4 + + .global UNK_02106578 +UNK_02106578: ; 0x02106578 + .incbin "baserom.nds", 0x10a578, 0x18 + + .global UNK_02106590 +UNK_02106590: ; 0x02106590 + .incbin "baserom.nds", 0x10a590, 0x4 + + .global UNK_02106594 +UNK_02106594: ; 0x02106594 + .incbin "baserom.nds", 0x10a594, 0x4 + + .global UNK_02106598 +UNK_02106598: ; 0x02106598 + .incbin "baserom.nds", 0x10a598, 0x4 + + .global UNK_0210659C +UNK_0210659C: ; 0x0210659C + .incbin "baserom.nds", 0x10a59c, 0x4 + + .global UNK_021065A0 +UNK_021065A0: ; 0x021065A0 + .incbin "baserom.nds", 0x10a5a0, 0x4 + + .global UNK_021065A4 +UNK_021065A4: ; 0x021065A4 + .incbin "baserom.nds", 0x10a5a4, 0x4 + + .global UNK_021065A8 +UNK_021065A8: ; 0x021065A8 + .incbin "baserom.nds", 0x10a5a8, 0x4 + + .global UNK_021065AC +UNK_021065AC: ; 0x021065AC + .incbin "baserom.nds", 0x10a5ac, 0x4 + + .global UNK_021065B0 +UNK_021065B0: ; 0x021065B0 + .incbin "baserom.nds", 0x10a5b0, 0x4 + + .global UNK_021065B4 +UNK_021065B4: ; 0x021065B4 + .incbin "baserom.nds", 0x10a5b4, 0x4 + + .global UNK_021065B8 +UNK_021065B8: ; 0x021065B8 + .incbin "baserom.nds", 0x10a5b8, 0x4 + + .global UNK_021065BC +UNK_021065BC: ; 0x021065BC + .incbin "baserom.nds", 0x10a5bc, 0x4c + + .global UNK_02106608 +UNK_02106608: ; 0x02106608 + .incbin "baserom.nds", 0x10a608, 0xc + + .global UNK_02106614 +UNK_02106614: ; 0x02106614 + .incbin "baserom.nds", 0x10a614, 0xc + + .global UNK_02106620 +UNK_02106620: ; 0x02106620 + .incbin "baserom.nds", 0x10a620, 0x10 + + .global UNK_02106630 +UNK_02106630: ; 0x02106630 + .incbin "baserom.nds", 0x10a630, 0x4 + + .global UNK_02106634 +UNK_02106634: ; 0x02106634 + .incbin "baserom.nds", 0x10a634, 0x4 + + .global UNK_02106638 +UNK_02106638: ; 0x02106638 + .incbin "baserom.nds", 0x10a638, 0x4 + + .global UNK_0210663C +UNK_0210663C: ; 0x0210663C + .incbin "baserom.nds", 0x10a63c, 0x4 + + .global UNK_02106640 +UNK_02106640: ; 0x02106640 + .incbin "baserom.nds", 0x10a640, 0x10 + + .global UNK_02106650 +UNK_02106650: ; 0x02106650 + .incbin "baserom.nds", 0x10a650, 0x10 + + .global UNK_02106660 +UNK_02106660: ; 0x02106660 + .incbin "baserom.nds", 0x10a660, 0x40 + + .global UNK_021066A0 +UNK_021066A0: ; 0x021066A0 + .incbin "baserom.nds", 0x10a6a0, 0x4 + + .global UNK_021066A4 +UNK_021066A4: ; 0x021066A4 + .incbin "baserom.nds", 0x10a6a4, 0x8 + + .global UNK_021066AC +UNK_021066AC: ; 0x021066AC + .incbin "baserom.nds", 0x10a6ac, 0x24 + + .global UNK_021066D0 +UNK_021066D0: ; 0x021066D0 + .incbin "baserom.nds", 0x10a6d0, 0xc + + .global UNK_021066DC +UNK_021066DC: ; 0x021066DC + .incbin "baserom.nds", 0x10a6dc, 0xc + + .global UNK_021066E8 +UNK_021066E8: ; 0x021066E8 + .incbin "baserom.nds", 0x10a6e8, 0x4 + + .global UNK_021066EC +UNK_021066EC: ; 0x021066EC + .incbin "baserom.nds", 0x10a6ec, 0x8 + + .global UNK_021066F4 +UNK_021066F4: ; 0x021066F4 + .incbin "baserom.nds", 0x10a6f4, 0x24 + + .global UNK_02106718 +UNK_02106718: ; 0x02106718 + .incbin "baserom.nds", 0x10a718, 0xc + + .global UNK_02106724 +UNK_02106724: ; 0x02106724 + .incbin "baserom.nds", 0x10a724, 0xc + + .global UNK_02106730 +UNK_02106730: ; 0x02106730 + .incbin "baserom.nds", 0x10a730, 0x80 + + .global UNK_021067B0 +UNK_021067B0: ; 0x021067B0 + .incbin "baserom.nds", 0x10a7b0, 0x20 + + .global UNK_021067D0 +UNK_021067D0: ; 0x021067D0 + .incbin "baserom.nds", 0x10a7d0, 0x20 + + .global UNK_021067F0 +UNK_021067F0: ; 0x021067F0 + .incbin "baserom.nds", 0x10a7f0, 0x20 + + .global UNK_02106810 +UNK_02106810: ; 0x02106810 + .incbin "baserom.nds", 0x10a810, 0x4 + + .global UNK_02106814 +UNK_02106814: ; 0x02106814 + .incbin "baserom.nds", 0x10a814, 0x4 + + .global OSi_IrqCallbackInfoIndex +OSi_IrqCallbackInfoIndex: ; 0x02106818 + .incbin "baserom.nds", 0x10A818, 0x10 + .global OSi_ConsoleTypeCache +OSi_ConsoleTypeCache: ; 0x02106828 + .incbin "baserom.nds", 0x10A828, 0x4 diff --git a/arm9/data/rom2_4.s b/arm9/data/rom2_4.s index c543924a..5fb7a3d6 100644 --- a/arm9/data/rom2_4.s +++ b/arm9/data/rom2_4.s @@ -6,4 +6,308 @@ .section .data /* 0x0210683C */ - .incbin "baserom.nds", 0x10a83C, 0x764 + .global Unk_0210683C +Unk_0210683C: ; 0x0210683C + .incbin "baserom.nds", 0x10A83C, 0x4 + + .global Unk_02106840 +Unk_02106840: ; 0x02106840 + .incbin "baserom.nds", 0x10A840, 0xC0 + + .global Unk_02106900 +Unk_02106900: ; 0x02106900 + .incbin "baserom.nds", 0x10A900, 0x100 + + .global Unk_02106A00 +Unk_02106A00: ; 0x02106A00 + .incbin "baserom.nds", 0x10AA00, 0x4 + + .global Unk_02106A04 +Unk_02106A04: ; 0x02106A04 + .incbin "baserom.nds", 0x10aa04, 0x18 + + .global UNK_02106A1C +UNK_02106A1C: ; 0x02106A1C + .incbin "baserom.nds", 0x10aa1c, 0x4 + + .global UNK_02106A20 +UNK_02106A20: ; 0x02106A20 + .incbin "baserom.nds", 0x10aa20, 0x30 + + .global UNK_02106A50 +UNK_02106A50: ; 0x02106A50 + .incbin "baserom.nds", 0x10aa50, 0x4 + + .global UNK_02106A54 +UNK_02106A54: ; 0x02106A54 + .incbin "baserom.nds", 0x10aa54, 0x4 + + .global UNK_02106A58 +UNK_02106A58: ; 0x02106A58 + .incbin "baserom.nds", 0x10aa58, 0x4c + + .global UNK_02106AA4 +UNK_02106AA4: ; 0x02106AA4 + .incbin "baserom.nds", 0x10aaa4, 0x4c + + .global UNK_02106AF0 +UNK_02106AF0: ; 0x02106AF0 + .incbin "baserom.nds", 0x10aaf0, 0x4c + + .global UNK_02106B3C +UNK_02106B3C: ; 0x02106B3C + .incbin "baserom.nds", 0x10ab3c, 0x38 + + .global UNK_02106B74 +UNK_02106B74: ; 0x02106B74 + .incbin "baserom.nds", 0x10ab74, 0x4 + + .global UNK_02106B78 +UNK_02106B78: ; 0x02106B78 + .incbin "baserom.nds", 0x10ab78, 0x4 + + .global UNK_02106B7C +UNK_02106B7C: ; 0x02106B7C + .incbin "baserom.nds", 0x10ab7c, 0x8 + + .global UNK_02106B84 +UNK_02106B84: ; 0x02106B84 + .incbin "baserom.nds", 0x10ab84, 0x4 + + .global UNK_02106B88 +UNK_02106B88: ; 0x02106B88 + .incbin "baserom.nds", 0x10ab88, 0x4 + + .global UNK_02106B8C +UNK_02106B8C: ; 0x02106B8C + .incbin "baserom.nds", 0x10ab8c, 0x8 + + .global UNK_02106B94 +UNK_02106B94: ; 0x02106B94 + .incbin "baserom.nds", 0x10ab94, 0x8 + + .global UNK_02106B9C +UNK_02106B9C: ; 0x02106B9C + .incbin "baserom.nds", 0x10ab9c, 0x10 + + .global UNK_02106BAC +UNK_02106BAC: ; 0x02106BAC + .incbin "baserom.nds", 0x10abac, 0x20 + + .global UNK_02106BCC +UNK_02106BCC: ; 0x02106BCC + .incbin "baserom.nds", 0x10abcc, 0xc0 + + .global UNK_02106C8C +UNK_02106C8C: ; 0x02106C8C + .incbin "baserom.nds", 0x10ac8c, 0xc + + .global UNK_02106C98 +UNK_02106C98: ; 0x02106C98 + .incbin "baserom.nds", 0x10ac98, 0xc + + .global UNK_02106CA4 +UNK_02106CA4: ; 0x02106CA4 + .incbin "baserom.nds", 0x10aca4, 0xc + + .global UNK_02106CB0 +UNK_02106CB0: ; 0x02106CB0 + .incbin "baserom.nds", 0x10acb0, 0x10 + + .global UNK_02106CC0 +UNK_02106CC0: ; 0x02106CC0 + .incbin "baserom.nds", 0x10acc0, 0x58 + + .global UNK_02106D18 +UNK_02106D18: ; 0x02106D18 + .incbin "baserom.nds", 0x10ad18, 0x88 + + .global UNK_02106DA0 +UNK_02106DA0: ; 0x02106DA0 + .incbin "baserom.nds", 0x10ada0, 0x8 + + .global UNK_02106DA8 +UNK_02106DA8: ; 0x02106DA8 + .incbin "baserom.nds", 0x10ada8, 0x8 + + .global UNK_02106DB0 +UNK_02106DB0: ; 0x02106DB0 + .incbin "baserom.nds", 0x10adb0, 0x8 + + .global UNK_02106DB8 +UNK_02106DB8: ; 0x02106DB8 + .incbin "baserom.nds", 0x10adb8, 0x4 + + .global UNK_02106DBC +UNK_02106DBC: ; 0x02106DBC + .incbin "baserom.nds", 0x10adbc, 0x4 + + .global UNK_02106DC0 +UNK_02106DC0: ; 0x02106DC0 + .incbin "baserom.nds", 0x10adc0, 0x8 + + .global UNK_02106DC8 +UNK_02106DC8: ; 0x02106DC8 + .incbin "baserom.nds", 0x10adc8, 0x8 + + .global UNK_02106DD0 +UNK_02106DD0: ; 0x02106DD0 + .incbin "baserom.nds", 0x10add0, 0x4 + + .global UNK_02106DD4 +UNK_02106DD4: ; 0x02106DD4 + .incbin "baserom.nds", 0x10add4, 0x4 + + .global UNK_02106DD8 +UNK_02106DD8: ; 0x02106DD8 + .incbin "baserom.nds", 0x10add8, 0x4 + + .global UNK_02106DDC +UNK_02106DDC: ; 0x02106DDC + .incbin "baserom.nds", 0x10addc, 0x4 + + .global UNK_02106DE0 +UNK_02106DE0: ; 0x02106DE0 + .incbin "baserom.nds", 0x10ade0, 0x4 + + .global UNK_02106DE4 +UNK_02106DE4: ; 0x02106DE4 + .incbin "baserom.nds", 0x10ade4, 0xc + + .global UNK_02106DF0 +UNK_02106DF0: ; 0x02106DF0 + .incbin "baserom.nds", 0x10adf0, 0xc + + .global UNK_02106DFC +UNK_02106DFC: ; 0x02106DFC + .incbin "baserom.nds", 0x10adfc, 0xc + + .global UNK_02106E08 +UNK_02106E08: ; 0x02106E08 + .incbin "baserom.nds", 0x10ae08, 0x8 + + .global UNK_02106E10 +UNK_02106E10: ; 0x02106E10 + .incbin "baserom.nds", 0x10ae10, 0x8 + + .global UNK_02106E18 +UNK_02106E18: ; 0x02106E18 + .incbin "baserom.nds", 0x10ae18, 0xc + + .global UNK_02106E24 +UNK_02106E24: ; 0x02106E24 + .incbin "baserom.nds", 0x10ae24, 0xc + + .global UNK_02106E30 +UNK_02106E30: ; 0x02106E30 + .incbin "baserom.nds", 0x10ae30, 0x8 + + .global UNK_02106E38 +UNK_02106E38: ; 0x02106E38 + .incbin "baserom.nds", 0x10ae38, 0x8 + + .global UNK_02106E40 +UNK_02106E40: ; 0x02106E40 + .incbin "baserom.nds", 0x10ae40, 0x4 + + .global UNK_02106E44 +UNK_02106E44: ; 0x02106E44 + .incbin "baserom.nds", 0x10ae44, 0x4 + + .global UNK_02106E48 +UNK_02106E48: ; 0x02106E48 + .incbin "baserom.nds", 0x10ae48, 0x40 + + .global UNK_02106E88 +UNK_02106E88: ; 0x02106E88 + .incbin "baserom.nds", 0x10ae88, 0x30 + + .global UNK_02106EB8 +UNK_02106EB8: ; 0x02106EB8 + .incbin "baserom.nds", 0x10aeb8, 0x28 + + .global UNK_02106EE0 +UNK_02106EE0: ; 0x02106EE0 + .incbin "baserom.nds", 0x10aee0, 0x18 + + .global UNK_02106EF8 +UNK_02106EF8: ; 0x02106EF8 + .incbin "baserom.nds", 0x10aef8, 0x10 + + .global UNK_02106F08 +UNK_02106F08: ; 0x02106F08 + .incbin "baserom.nds", 0x10af08, 0x8 + + .global UNK_02106F10 +UNK_02106F10: ; 0x02106F10 + .incbin "baserom.nds", 0x10af10, 0x8 + + .global UNK_02106F18 +UNK_02106F18: ; 0x02106F18 + .incbin "baserom.nds", 0x10af18, 0x8 + + .global UNK_02106F20 +UNK_02106F20: ; 0x02106F20 + .incbin "baserom.nds", 0x10af20, 0x8 + + .global UNK_02106F28 +UNK_02106F28: ; 0x02106F28 + .incbin "baserom.nds", 0x10af28, 0x4 + + .global UNK_02106F2C +UNK_02106F2C: ; 0x02106F2C + .incbin "baserom.nds", 0x10af2c, 0x4 + + .global UNK_02106F30 +UNK_02106F30: ; 0x02106F30 + .incbin "baserom.nds", 0x10af30, 0x4 + + .global UNK_02106F34 +UNK_02106F34: ; 0x02106F34 + .incbin "baserom.nds", 0x10af34, 0x4 + + .global UNK_02106F38 +UNK_02106F38: ; 0x02106F38 + .incbin "baserom.nds", 0x10af38, 0x4 + + .global UNK_02106F3C +UNK_02106F3C: ; 0x02106F3C + .incbin "baserom.nds", 0x10af3c, 0x4 + + .global UNK_02106F40 +UNK_02106F40: ; 0x02106F40 + .incbin "baserom.nds", 0x10af40, 0x4 + + .global UNK_02106F44 +UNK_02106F44: ; 0x02106F44 + .incbin "baserom.nds", 0x10af44, 0x4 + + .global UNK_02106F48 +UNK_02106F48: ; 0x02106F48 + .incbin "baserom.nds", 0x10af48, 0x4 + + .global UNK_02106F4C +UNK_02106F4C: ; 0x02106F4C + .incbin "baserom.nds", 0x10af4c, 0x4 + + .global UNK_02106F50 +UNK_02106F50: ; 0x02106F50 + .incbin "baserom.nds", 0x10af50, 0x4 + + .global UNK_02106F54 +UNK_02106F54: ; 0x02106F54 + .incbin "baserom.nds", 0x10af54, 0x4 + + .global UNK_02106F58 +UNK_02106F58: ; 0x02106F58 + .incbin "baserom.nds", 0x10af58, 0x4 + + .global UNK_02106F5C +UNK_02106F5C: ; 0x02106F5C + .incbin "baserom.nds", 0x10af5c, 0x28 + + .global SDK_OVERLAY_DIGEST +SDK_OVERLAY_DIGEST: ; 0x02106F84 + .global SDK_OVERLAY_DIGEST_END +SDK_OVERLAY_DIGEST_END: + .incbin "baserom.nds", 0x10af84, 0x1C diff --git a/arm9/files/FILE_10C400.s b/arm9/files/FILE_10C400.s deleted file mode 100644 index 254620ef..00000000 --- a/arm9/files/FILE_10C400.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x10C400, 0x20 - diff --git a/arm9/files/FILE_10C600.s b/arm9/files/FILE_10C600.s deleted file mode 100644 index cc95b047..00000000 --- a/arm9/files/FILE_10C600.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x10C600, 0x20 - diff --git a/arm9/files/FILE_10C800.s b/arm9/files/FILE_10C800.s deleted file mode 100644 index 74fe3237..00000000 --- a/arm9/files/FILE_10C800.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x10C800, 0x20 - diff --git a/arm9/files/FILE_10CA00.s b/arm9/files/FILE_10CA00.s deleted file mode 100644 index ecff1f01..00000000 --- a/arm9/files/FILE_10CA00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x10CA00, 0x20 - diff --git a/arm9/files/FILE_10CC00.s b/arm9/files/FILE_10CC00.s deleted file mode 100644 index b2a71be1..00000000 --- a/arm9/files/FILE_10CC00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x10CC00, 0x386E0 - diff --git a/arm9/files/FILE_145400.s b/arm9/files/FILE_145400.s deleted file mode 100644 index 69b7e8af..00000000 --- a/arm9/files/FILE_145400.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x145400, 0x261A0 - diff --git a/arm9/files/FILE_16B600.s b/arm9/files/FILE_16B600.s deleted file mode 100644 index a6fe3459..00000000 --- a/arm9/files/FILE_16B600.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x16B600, 0x18D80 - diff --git a/arm9/files/FILE_184400.s b/arm9/files/FILE_184400.s deleted file mode 100644 index ebfbae38..00000000 --- a/arm9/files/FILE_184400.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x184400, 0x32E0 - diff --git a/arm9/files/FILE_187800.s b/arm9/files/FILE_187800.s deleted file mode 100644 index dc6a9524..00000000 --- a/arm9/files/FILE_187800.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x187800, 0x1B760 - diff --git a/arm9/files/FILE_1A3000.s b/arm9/files/FILE_1A3000.s deleted file mode 100644 index e9931349..00000000 --- a/arm9/files/FILE_1A3000.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x1A3000, 0xA1A0 - diff --git a/arm9/files/FILE_1AD200.s b/arm9/files/FILE_1AD200.s deleted file mode 100644 index ab9aa578..00000000 --- a/arm9/files/FILE_1AD200.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x1AD200, 0x20 - diff --git a/arm9/files/FILE_1AD400.s b/arm9/files/FILE_1AD400.s deleted file mode 100644 index f4cbb321..00000000 --- a/arm9/files/FILE_1AD400.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x1AD400, 0x329E0 - diff --git a/arm9/files/FILE_1DFE00.s b/arm9/files/FILE_1DFE00.s deleted file mode 100644 index edd9bbad..00000000 --- a/arm9/files/FILE_1DFE00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x1DFE00, 0x19260 - diff --git a/arm9/files/FILE_1F9200.s b/arm9/files/FILE_1F9200.s deleted file mode 100644 index 4cc1228a..00000000 --- a/arm9/files/FILE_1F9200.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x1F9200, 0x2EBE0 - diff --git a/arm9/files/FILE_227E00.s b/arm9/files/FILE_227E00.s deleted file mode 100644 index 103ad10a..00000000 --- a/arm9/files/FILE_227E00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x227E00, 0xF520 - diff --git a/arm9/files/FILE_237400.s b/arm9/files/FILE_237400.s deleted file mode 100644 index a912c8e4..00000000 --- a/arm9/files/FILE_237400.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x237400, 0x4680 - diff --git a/arm9/files/FILE_23BC00.s b/arm9/files/FILE_23BC00.s deleted file mode 100644 index ee3f7e21..00000000 --- a/arm9/files/FILE_23BC00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x23BC00, 0x28500 - diff --git a/arm9/files/FILE_264200.s b/arm9/files/FILE_264200.s deleted file mode 100644 index d4a20793..00000000 --- a/arm9/files/FILE_264200.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x264200, 0x6E80 - diff --git a/arm9/files/FILE_26B200.s b/arm9/files/FILE_26B200.s deleted file mode 100644 index 66491b3a..00000000 --- a/arm9/files/FILE_26B200.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x26B200, 0x17CE0 - diff --git a/arm9/files/FILE_283000.s b/arm9/files/FILE_283000.s deleted file mode 100644 index 09f585cf..00000000 --- a/arm9/files/FILE_283000.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x283000, 0x100 - diff --git a/arm9/files/FILE_283200.s b/arm9/files/FILE_283200.s deleted file mode 100644 index 68180b84..00000000 --- a/arm9/files/FILE_283200.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x283200, 0x2400 - diff --git a/arm9/files/FILE_285600.s b/arm9/files/FILE_285600.s deleted file mode 100644 index ca6a17ed..00000000 --- a/arm9/files/FILE_285600.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x285600, 0x5C0 - diff --git a/arm9/files/FILE_285C00.s b/arm9/files/FILE_285C00.s deleted file mode 100644 index 62f45299..00000000 --- a/arm9/files/FILE_285C00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x285C00, 0xF00 - diff --git a/arm9/files/FILE_286C00.s b/arm9/files/FILE_286C00.s deleted file mode 100644 index 65aaf12c..00000000 --- a/arm9/files/FILE_286C00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x286C00, 0x1900 - diff --git a/arm9/files/FILE_288600.s b/arm9/files/FILE_288600.s deleted file mode 100644 index 57c96796..00000000 --- a/arm9/files/FILE_288600.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x288600, 0x9A0 - diff --git a/arm9/files/FILE_289000.s b/arm9/files/FILE_289000.s deleted file mode 100644 index eeffd74a..00000000 --- a/arm9/files/FILE_289000.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x289000, 0x560 - diff --git a/arm9/files/FILE_289600.s b/arm9/files/FILE_289600.s deleted file mode 100644 index 2a60cc62..00000000 --- a/arm9/files/FILE_289600.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x289600, 0x800 - diff --git a/arm9/files/FILE_289E00.s b/arm9/files/FILE_289E00.s deleted file mode 100644 index f133baff..00000000 --- a/arm9/files/FILE_289E00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x289E00, 0xBA0 - diff --git a/arm9/files/FILE_28AA00.s b/arm9/files/FILE_28AA00.s deleted file mode 100644 index 4fa54cf0..00000000 --- a/arm9/files/FILE_28AA00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x28AA00, 0x1780 - diff --git a/arm9/files/FILE_28C200.s b/arm9/files/FILE_28C200.s deleted file mode 100644 index ae636e3f..00000000 --- a/arm9/files/FILE_28C200.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x28C200, 0x900 - diff --git a/arm9/files/FILE_28CC00.s b/arm9/files/FILE_28CC00.s deleted file mode 100644 index 1382f7cf..00000000 --- a/arm9/files/FILE_28CC00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x28CC00, 0x600 - diff --git a/arm9/files/FILE_28D200.s b/arm9/files/FILE_28D200.s deleted file mode 100644 index 8639f01a..00000000 --- a/arm9/files/FILE_28D200.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x28D200, 0x600 - diff --git a/arm9/files/FILE_28D800.s b/arm9/files/FILE_28D800.s deleted file mode 100644 index 01333fec..00000000 --- a/arm9/files/FILE_28D800.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x28D800, 0x4A0 - diff --git a/arm9/files/FILE_28DE00.s b/arm9/files/FILE_28DE00.s deleted file mode 100644 index d75cd7de..00000000 --- a/arm9/files/FILE_28DE00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x28DE00, 0x320 - diff --git a/arm9/files/FILE_28E200.s b/arm9/files/FILE_28E200.s deleted file mode 100644 index 78a01f74..00000000 --- a/arm9/files/FILE_28E200.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x28E200, 0x4C0 - diff --git a/arm9/files/FILE_28E800.s b/arm9/files/FILE_28E800.s deleted file mode 100644 index 37f22bb0..00000000 --- a/arm9/files/FILE_28E800.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x28E800, 0x9A0 - diff --git a/arm9/files/FILE_28F200.s b/arm9/files/FILE_28F200.s deleted file mode 100644 index 7fbec89b..00000000 --- a/arm9/files/FILE_28F200.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x28F200, 0xCC0 - diff --git a/arm9/files/FILE_290000.s b/arm9/files/FILE_290000.s deleted file mode 100644 index 63a6e035..00000000 --- a/arm9/files/FILE_290000.s +++ /dev/null @@ -1,5 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x290000, 0x560 - .section .bss - .space 0x20 diff --git a/arm9/files/FILE_290600.s b/arm9/files/FILE_290600.s deleted file mode 100644 index 35fec2fd..00000000 --- a/arm9/files/FILE_290600.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x290600, 0xB40 - diff --git a/arm9/files/FILE_291200.s b/arm9/files/FILE_291200.s deleted file mode 100644 index 9055004d..00000000 --- a/arm9/files/FILE_291200.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x291200, 0xCC0 - diff --git a/arm9/files/FILE_292000.s b/arm9/files/FILE_292000.s deleted file mode 100644 index 27028058..00000000 --- a/arm9/files/FILE_292000.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x292000, 0xC60 - diff --git a/arm9/files/FILE_292E00.s b/arm9/files/FILE_292E00.s deleted file mode 100644 index f0c68d4e..00000000 --- a/arm9/files/FILE_292E00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x292E00, 0x1140 - diff --git a/arm9/files/FILE_294000.s b/arm9/files/FILE_294000.s deleted file mode 100644 index 920669f6..00000000 --- a/arm9/files/FILE_294000.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x294000, 0x900 - diff --git a/arm9/files/FILE_294A00.s b/arm9/files/FILE_294A00.s deleted file mode 100644 index ce644972..00000000 --- a/arm9/files/FILE_294A00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x294A00, 0x9C0 - diff --git a/arm9/files/FILE_295400.s b/arm9/files/FILE_295400.s deleted file mode 100644 index 7bc87c21..00000000 --- a/arm9/files/FILE_295400.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x295400, 0x4A0 - diff --git a/arm9/files/FILE_295A00.s b/arm9/files/FILE_295A00.s deleted file mode 100644 index 25378684..00000000 --- a/arm9/files/FILE_295A00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x295A00, 0x940 - diff --git a/arm9/files/FILE_296400.s b/arm9/files/FILE_296400.s deleted file mode 100644 index 1f9defa1..00000000 --- a/arm9/files/FILE_296400.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x296400, 0x320 - diff --git a/arm9/files/FILE_296800.s b/arm9/files/FILE_296800.s deleted file mode 100644 index 256bd99d..00000000 --- a/arm9/files/FILE_296800.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x296800, 0xCA0 - diff --git a/arm9/files/FILE_297600.s b/arm9/files/FILE_297600.s deleted file mode 100644 index 664db335..00000000 --- a/arm9/files/FILE_297600.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x297600, 0x8A0 - diff --git a/arm9/files/FILE_298000.s b/arm9/files/FILE_298000.s deleted file mode 100644 index b7181b03..00000000 --- a/arm9/files/FILE_298000.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x298000, 0x600 - diff --git a/arm9/files/FILE_298600.s b/arm9/files/FILE_298600.s deleted file mode 100644 index 2a12d4fc..00000000 --- a/arm9/files/FILE_298600.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x298600, 0x320 - diff --git a/arm9/files/FILE_298A00.s b/arm9/files/FILE_298A00.s deleted file mode 100644 index 796aa1a3..00000000 --- a/arm9/files/FILE_298A00.s +++ /dev/null @@ -1,5 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x298A00, 0xFC0 - .section .bss - .space 0x20 diff --git a/arm9/files/FILE_299A00.s b/arm9/files/FILE_299A00.s deleted file mode 100644 index 07724718..00000000 --- a/arm9/files/FILE_299A00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x299A00, 0x400 - diff --git a/arm9/files/FILE_299E00.s b/arm9/files/FILE_299E00.s deleted file mode 100644 index 4de78184..00000000 --- a/arm9/files/FILE_299E00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x299E00, 0x2480 - diff --git a/arm9/files/FILE_29C400.s b/arm9/files/FILE_29C400.s deleted file mode 100644 index 51f17874..00000000 --- a/arm9/files/FILE_29C400.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x29C400, 0x2380 - diff --git a/arm9/files/FILE_29E800.s b/arm9/files/FILE_29E800.s deleted file mode 100644 index 658eb523..00000000 --- a/arm9/files/FILE_29E800.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x29E800, 0x3040 - diff --git a/arm9/files/FILE_2A1A00.s b/arm9/files/FILE_2A1A00.s deleted file mode 100644 index f1bae30a..00000000 --- a/arm9/files/FILE_2A1A00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2A1A00, 0x47A0 - diff --git a/arm9/files/FILE_2A6200.s b/arm9/files/FILE_2A6200.s deleted file mode 100644 index 868864db..00000000 --- a/arm9/files/FILE_2A6200.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2A6200, 0x2540 - diff --git a/arm9/files/FILE_2A8800.s b/arm9/files/FILE_2A8800.s deleted file mode 100644 index 5c379955..00000000 --- a/arm9/files/FILE_2A8800.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2A8800, 0x15A0 - diff --git a/arm9/files/FILE_2A9E00.s b/arm9/files/FILE_2A9E00.s deleted file mode 100644 index e89790e3..00000000 --- a/arm9/files/FILE_2A9E00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2A9E00, 0x2C20 - diff --git a/arm9/files/FILE_2ACC00.s b/arm9/files/FILE_2ACC00.s deleted file mode 100644 index 1b79ca62..00000000 --- a/arm9/files/FILE_2ACC00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2ACC00, 0xD00 - diff --git a/arm9/files/FILE_2ADA00.s b/arm9/files/FILE_2ADA00.s deleted file mode 100644 index 820b4821..00000000 --- a/arm9/files/FILE_2ADA00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2ADA00, 0x1080 - diff --git a/arm9/files/FILE_2AEC00.s b/arm9/files/FILE_2AEC00.s deleted file mode 100644 index 0a0062ff..00000000 --- a/arm9/files/FILE_2AEC00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2AEC00, 0x3DE0 - diff --git a/arm9/files/FILE_2B2A00.s b/arm9/files/FILE_2B2A00.s deleted file mode 100644 index c7542e17..00000000 --- a/arm9/files/FILE_2B2A00.s +++ /dev/null @@ -1,6 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2B2A00, 0x4AC0 - .section .bss - .space 0x20 - diff --git a/arm9/files/FILE_2B7600.s b/arm9/files/FILE_2B7600.s deleted file mode 100644 index f0f81a80..00000000 --- a/arm9/files/FILE_2B7600.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2B7600, 0x1C40 - diff --git a/arm9/files/FILE_2B9400.s b/arm9/files/FILE_2B9400.s deleted file mode 100644 index e7245019..00000000 --- a/arm9/files/FILE_2B9400.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2B9400, 0x3000 - diff --git a/arm9/files/FILE_2BC400.s b/arm9/files/FILE_2BC400.s deleted file mode 100644 index eb62b3a8..00000000 --- a/arm9/files/FILE_2BC400.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2BC400, 0x2660 - diff --git a/arm9/files/FILE_2BEC00.s b/arm9/files/FILE_2BEC00.s deleted file mode 100644 index 8042a682..00000000 --- a/arm9/files/FILE_2BEC00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2BEC00, 0x2440 - diff --git a/arm9/files/FILE_2C1200.s b/arm9/files/FILE_2C1200.s deleted file mode 100644 index 332f0c01..00000000 --- a/arm9/files/FILE_2C1200.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2C1200, 0x1600 - diff --git a/arm9/files/FILE_2C2800.s b/arm9/files/FILE_2C2800.s deleted file mode 100644 index 6e38ff10..00000000 --- a/arm9/files/FILE_2C2800.s +++ /dev/null @@ -1,6 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2C2800, 0x23A0 - .section .bss - .space 0x20 - diff --git a/arm9/files/FILE_2C4C00.s b/arm9/files/FILE_2C4C00.s deleted file mode 100644 index 6764e3f8..00000000 --- a/arm9/files/FILE_2C4C00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2C4C00, 0xE20 - diff --git a/arm9/files/FILE_2C5C00.s b/arm9/files/FILE_2C5C00.s deleted file mode 100644 index d98bfcf3..00000000 --- a/arm9/files/FILE_2C5C00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2C5C00, 0x3EC0 - diff --git a/arm9/files/FILE_2C9C00.s b/arm9/files/FILE_2C9C00.s deleted file mode 100644 index 77531a9c..00000000 --- a/arm9/files/FILE_2C9C00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2C9C00, 0x20 - diff --git a/arm9/files/FILE_2C9E00.s b/arm9/files/FILE_2C9E00.s deleted file mode 100644 index 1da6375d..00000000 --- a/arm9/files/FILE_2C9E00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2C9E00, 0x4AE0 - diff --git a/arm9/files/FILE_2CEA00.s b/arm9/files/FILE_2CEA00.s deleted file mode 100644 index f1e5beab..00000000 --- a/arm9/files/FILE_2CEA00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2CEA00, 0x1220 - diff --git a/arm9/files/FILE_2CFE00.s b/arm9/files/FILE_2CFE00.s deleted file mode 100644 index ae6d4e43..00000000 --- a/arm9/files/FILE_2CFE00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2CFE00, 0x5DE0 - diff --git a/arm9/files/FILE_2D5C00.s b/arm9/files/FILE_2D5C00.s deleted file mode 100644 index 250d2a37..00000000 --- a/arm9/files/FILE_2D5C00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2D5C00, 0x1E20 - diff --git a/arm9/files/FILE_2D7C00.s b/arm9/files/FILE_2D7C00.s deleted file mode 100644 index 293a4962..00000000 --- a/arm9/files/FILE_2D7C00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2D7C00, 0x1BE0 - diff --git a/arm9/files/FILE_2D9800.s b/arm9/files/FILE_2D9800.s deleted file mode 100644 index 0c21e6e4..00000000 --- a/arm9/files/FILE_2D9800.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2D9800, 0x460 - diff --git a/arm9/files/FILE_2D9E00.s b/arm9/files/FILE_2D9E00.s deleted file mode 100644 index a358769d..00000000 --- a/arm9/files/FILE_2D9E00.s +++ /dev/null @@ -1,5 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2D9E00, 0x52C0 - .section .bss - .space 0x40 diff --git a/arm9/files/FILE_2DF200.s b/arm9/files/FILE_2DF200.s deleted file mode 100644 index 93f5cfda..00000000 --- a/arm9/files/FILE_2DF200.s +++ /dev/null @@ -1,6 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2DF200, 0xA720 - .section .bss - .space 0x160 - diff --git a/arm9/files/FILE_2E9A00.s b/arm9/files/FILE_2E9A00.s deleted file mode 100644 index 1b03c961..00000000 --- a/arm9/files/FILE_2E9A00.s +++ /dev/null @@ -1,5 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2E9A00, 0x5580 - .section .bss - .space 0xa0 diff --git a/arm9/files/FILE_2EF000.s b/arm9/files/FILE_2EF000.s deleted file mode 100644 index e29ca1e0..00000000 --- a/arm9/files/FILE_2EF000.s +++ /dev/null @@ -1,6 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2EF000, 0x2540 - .section .bss - .space 0x120 - diff --git a/arm9/files/FILE_2F1600.s b/arm9/files/FILE_2F1600.s deleted file mode 100644 index 7669a577..00000000 --- a/arm9/files/FILE_2F1600.s +++ /dev/null @@ -1,5 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2F1600, 0xE2A0 - .section .bss - .space 0x1980 diff --git a/arm9/files/FILE_2FFA00.s b/arm9/files/FILE_2FFA00.s deleted file mode 100644 index 9e8819b8..00000000 --- a/arm9/files/FILE_2FFA00.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x2FFA00, 0x3920 - diff --git a/arm9/files/FILE_303400.s b/arm9/files/FILE_303400.s deleted file mode 100644 index 52f17ff8..00000000 --- a/arm9/files/FILE_303400.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x303400, 0x9100 - diff --git a/arm9/files/FILE_30C600.s b/arm9/files/FILE_30C600.s deleted file mode 100644 index faf88157..00000000 --- a/arm9/files/FILE_30C600.s +++ /dev/null @@ -1,4 +0,0 @@ - .include "asm/macros.inc" - .section .text - .incbin "baserom.nds", 0x30C600, 0x820 - diff --git a/arm9/global.inc b/arm9/global.inc index 508f71de..e418ef78 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -28,6 +28,9 @@ .extern DGT_Hash1GetDigest_R
.extern DGT_Hash1Reset
.extern DGT_Hash1SetSource
+.extern DGT_Hash2GetDigest
+.extern DGT_Hash2Reset
+.extern DGT_Hash2SetSource
.extern DGTi_hash2_arm4_small
.extern ErrorHandling
.extern FS_CloseFile
@@ -165,6 +168,8 @@ .extern FUN_02006930
.extern FUN_02006BB0
.extern FUN_02006C08
+.extern FUN_02006C30
+.extern FUN_02006C5C
.extern FUN_02006C98
.extern FUN_02006D98
.extern FUN_02006ED4
@@ -180,6 +185,8 @@ .extern FUN_02007E68
.extern FUN_02007E98
.extern FUN_02007F20
+.extern FUN_02008010
+.extern FUN_02008030
.extern FUN_020080D0
.extern FUN_020081C4
.extern FUN_02008AA4
@@ -352,7 +359,9 @@ .extern FUN_0200E3A0
.extern FUN_0200E3BC
.extern FUN_02011B20
+.extern FUN_02012400
.extern FUN_02012420
+.extern FUN_02012530
.extern FUN_0201259C
.extern FUN_020125D4
.extern FUN_0201265C
@@ -465,6 +474,7 @@ .extern FUN_020191A4
.extern FUN_020191D0
.extern FUN_02019220
+.extern FUN_02019270
.extern FUN_02019548
.extern FUN_02019570
.extern FUN_0201958C
@@ -537,6 +547,7 @@ .extern FUN_0201EB70
.extern FUN_0201EB8C
.extern FUN_0201EBA4
+.extern FUN_0201EC58
.extern FUN_0201EC68
.extern FUN_0201EC88
.extern FUN_0201EC94
@@ -565,6 +576,7 @@ .extern FUN_0202022C
.extern FUN_02020248
.extern FUN_02020310
+.extern FUN_02020334
.extern FUN_02020354
.extern FUN_02020388
.extern FUN_02020398
@@ -584,6 +596,8 @@ .extern FUN_02021A74
.extern FUN_02021CE0
.extern FUN_02021D3C
+.extern FUN_02021D5C
+.extern FUN_02021D9C
.extern FUN_02021E28
.extern FUN_02021EF0
.extern FUN_02021F2C
@@ -1119,7 +1133,7 @@ .extern FUN_02036D94
.extern FUN_02036DD4
.extern FUN_02037024
-.extern FUN_02037350
+.extern LoadOverlay_MODULE_05
.extern FUN_02037394
.extern FUN_0203739C
.extern FUN_020373AC
@@ -2224,6 +2238,7 @@ .extern FUN_020672BC
.extern FUN_02067830
.extern FUN_02068678
+.extern FUN_020687C0
.extern FUN_02068854
.extern FUN_020689E0
.extern FUN_02068AAC
@@ -2506,6 +2521,7 @@ .extern FUN_020AEB70
.extern FUN_020AEC7C
.extern FUN_020AEC98
+.extern FUN_020AEDF4
.extern FUN_020AEE40
.extern FUN_020AEEB8
.extern FUN_020AEF1C
@@ -2542,6 +2558,7 @@ .extern FUN_020B19C4
.extern FUN_020B19DC
.extern FUN_020B1A14
+.extern FUN_020B1A1C
.extern FUN_020B1A24
.extern FUN_020B1EA4
.extern FUN_020B1EC4
@@ -2634,6 +2651,39 @@ .extern FUN_020C1F54
.extern FUN_020C1FA4
.extern FUN_020C1FF0
+.extern FUN_02013EA8
+.extern FUN_02013EC4
+.extern FUN_0200A06C
+.extern FUN_0200BC14
+.extern FUN_02014518
+.extern FUN_0200D7A0
+.extern FUN_0202008C
+.extern FUN_0200B10C
+.extern FUN_0200B430
+.extern FUN_0200B468
+.extern FUN_02029584
+.extern FUN_02029960
+.extern FUN_02085224
+.extern FUN_02085274
+.extern FUN_02085310
+.extern FUN_020345A8
+.extern FUN_020345DC
+.extern FUN_020345F0
+.extern FUN_02079C40
+.extern FUN_02014564
+.extern FUN_02014588
+.extern FUN_02020198
+.extern FUN_02079B60
+.extern FUN_020881D0
+.extern FUN_02088320
+.extern FUN_02088360
+.extern FUN_02088484
+.extern FUN_02088490
+.extern FUN_02088660
+.extern FUN_02088694
+.extern FUN_02013ED8
+.extern FUN_02013EE0
+.extern FUN_0201EC58
.extern FUN_020C20DC
.extern FUN_020C2104
.extern FUN_020C217C
@@ -2650,530 +2700,567 @@ .extern FUN_020C3674
.extern FUN_020C36A8
.extern FUN_020C3910
+.extern FUN_02020C14
.extern FUN_020C3980
.extern FUN_020C39CC
.extern FUN_020C6034
.extern FUN_020C605C
+.extern FUN_02037790
+.extern FUN_0204BF94
+.extern FUN_0204BF9C
+.extern FUN_0204BFB0
+.extern FUN_0204C080
+.extern FUN_0204C0A4
+.extern FUN_020252B8
+.extern FUN_0204BF58
+.extern FUN_0204BFF0
+.extern FUN_0204C02C
+.extern FUN_0204C064
+.extern FUN_0202F0DC
+.extern FUN_02032BD0
+.extern FUN_02032C0C
+.extern FUN_02032C28
+.extern FUN_02034984
+.extern FUN_0204C158
+.extern FUN_0204C174
+.extern MOD06_022457A8
+.extern MOD06_022457CC
+.extern MOD06_022457F8
+.extern MOD06_02245824
+.extern MOD06_0224582C
+.extern MOD20_02253F6C
+.extern MOD20_02254420
+.extern MOD20_02254460
+.extern MOD20_02254488
+.extern MOD20_022542C0
+.extern MOD05_021EC464
+.extern MOD05_021ED9B4
+.extern MOD05_021EC7B4
+.extern MOD20_02253A04
+.extern MOD20_02253FAC
+.extern MOD20_02253FB4
+.extern MOD20_02252BB8
.extern MOD05_021D74E0
-.extern FUN_021D7660
-.extern FUN_021D76AC
-.extern FUN_021D77C4
-.extern FUN_021D77E0
-.extern FUN_021D7800
-.extern FUN_021D78FC
-.extern FUN_021D79B4
-.extern FUN_021D7A7C
-.extern FUN_021D7B14
-.extern FUN_021D7B48
-.extern FUN_021D7B6C
-.extern FUN_021D7B70
-.extern FUN_021D7BBC
-.extern FUN_021D7BC0
-.extern FUN_021D7C30
-.extern FUN_021D7C4C
-.extern FUN_021D7CA4
-.extern FUN_021D7D68
-.extern FUN_021D7DA8
-.extern FUN_021D7DEC
-.extern FUN_021D7E18
-.extern FUN_021D7F20
-.extern FUN_021D7F8C
-.extern FUN_021D8018
-.extern FUN_021D8044
-.extern FUN_021D8058
-.extern FUN_021D8164
-.extern FUN_021D82BC
-.extern FUN_021D8320
-.extern FUN_021D836C
-.extern FUN_021D83A8
-.extern FUN_021D83C0
-.extern FUN_021D83F0
-.extern FUN_021D844C
-.extern FUN_021D8494
-.extern FUN_021D8558
-.extern FUN_021D8590
-.extern FUN_021D85A0
-.extern FUN_021D85B4
-.extern FUN_021D85FC
-.extern FUN_021D8624
-.extern FUN_021D865C
-.extern FUN_021D868C
-.extern FUN_021D872C
-.extern FUN_021D8730
-.extern FUN_021D8758
-.extern FUN_021D87D0
-.extern FUN_021D8818
-.extern FUN_021D8820
-.extern FUN_021D8860
-.extern FUN_021D88E4
-.extern FUN_021D8910
-.extern FUN_021D8944
-.extern FUN_021D89CC
-.extern FUN_021D8A54
-.extern FUN_021D8A7C
-.extern FUN_021D8B64
-.extern FUN_021D8BF0
-.extern FUN_021D8C08
-.extern FUN_021D8C24
-.extern FUN_021D8C58
-.extern FUN_021D8C6C
-.extern FUN_021D8CC8
-.extern FUN_021D8CF0
-.extern FUN_021D8D04
-.extern FUN_021D8F08
-.extern FUN_021D917C
-.extern FUN_021D959C
-.extern FUN_021D967C
-.extern FUN_021D96F4
-.extern FUN_021D9708
-.extern FUN_021D971C
-.extern FUN_021D9820
-.extern FUN_021D99F8
-.extern FUN_021D9C2C
-.extern FUN_021D9F78
-.extern FUN_021DA2F4
-.extern FUN_021DA334
-.extern FUN_021DA388
-.extern FUN_021DA3DC
-.extern FUN_021DA464
-.extern FUN_021DA4EC
-.extern FUN_021DA54C
-.extern FUN_021DA58C
-.extern FUN_021DA5B8
-.extern FUN_021DA5C8
-.extern FUN_021DA5D0
-.extern FUN_021DA5D8
-.extern FUN_021DA7B4
-.extern FUN_021DAAA4
-.extern FUN_021DAB68
-.extern FUN_021DAC70
-.extern FUN_021DAE40
-.extern FUN_021DAED4
-.extern FUN_021DAF28
-.extern FUN_021DAF78
-.extern FUN_021DAF98
-.extern FUN_021DB030
-.extern FUN_021DB7E8
-.extern FUN_021DB858
-.extern FUN_021DC174
-.extern FUN_021DCA84
-.extern FUN_021DD6F0
-.extern FUN_021DD718
-.extern FUN_021DD968
-.extern FUN_021DDB08
-.extern FUN_021DDBBC
-.extern FUN_021DDC1C
-.extern FUN_021DDCE8
-.extern FUN_021DDD7C
-.extern FUN_021DDDCC
-.extern FUN_021DDE7C
-.extern FUN_021DDEE0
-.extern FUN_021DF95C
-.extern FUN_021DF978
-.extern FUN_021DFA40
-.extern FUN_021DFAF8
-.extern FUN_021DFB20
-.extern FUN_021DFD18
-.extern FUN_021DFDBC
-.extern FUN_021DFE64
-.extern FUN_021DFF74
-.extern FUN_021E0200
-.extern FUN_021E0374
-.extern FUN_021E1374
-.extern FUN_021E1858
-.extern FUN_021E1994
-.extern FUN_021E1BF8
-.extern FUN_021E1C4C
-.extern FUN_021E1C54
-.extern FUN_021E1ECC
-.extern FUN_021E1F34
-.extern FUN_021E1F58
-.extern FUN_021E1F60
-.extern FUN_021E242C
-.extern FUN_021E2454
-.extern FUN_021E2464
-.extern FUN_021E2578
-.extern FUN_021E2608
-.extern FUN_021E26CC
-.extern FUN_021E27E8
-.extern FUN_021E288C
-.extern FUN_021E28A0
-.extern FUN_021E2950
-.extern FUN_021E29B4
-.extern FUN_021E29C8
-.extern FUN_021E2A70
-.extern FUN_021E2AD4
-.extern FUN_021E2B80
-.extern FUN_021E2B9C
-.extern FUN_021E2BB8
-.extern FUN_021E2BD0
-.extern FUN_021E2C24
-.extern FUN_021E2C58
-.extern FUN_021E2CBC
-.extern FUN_021E32F0
-.extern FUN_021E331C
-.extern FUN_021E3424
-.extern FUN_021E3444
-.extern FUN_021E495C
-.extern FUN_021E4C54
-.extern FUN_021E4C60
-.extern FUN_021E4DE4
-.extern FUN_021E5614
-.extern FUN_021E57D4
-.extern FUN_021E5970
-.extern FUN_021E5B30
-.extern FUN_021E5FD8
-.extern FUN_021E5FE0
-.extern FUN_021E6410
-.extern FUN_021E643C
-.extern FUN_021E6990
-.extern FUN_021E69BC
-.extern FUN_021E6BF4
-.extern FUN_021E7030
-.extern FUN_021E70F0
-.extern FUN_021E7138
-.extern FUN_021E7184
-.extern FUN_021E71E8
-.extern FUN_021E7750
-.extern FUN_021E799C
-.extern FUN_021E7AC0
-.extern FUN_021E7EA0
-.extern FUN_021E7EB0
-.extern FUN_021E7EC4
-.extern FUN_021E7EC8
-.extern FUN_021E7ED0
-.extern FUN_021E7ED8
-.extern FUN_021E7FBC
-.extern FUN_021E8128
-.extern FUN_021E8130
-.extern FUN_021E8140
-.extern FUN_021E8144
-.extern FUN_021E8148
-.extern FUN_021E8158
-.extern FUN_021E81BC
-.extern FUN_021E84F4
-.extern FUN_021E856C
-.extern FUN_021E8588
-.extern FUN_021E85E4
-.extern FUN_021E85FC
-.extern FUN_021EA530
-.extern FUN_021EACF8
-.extern FUN_021EADD8
-.extern FUN_021EADF8
-.extern FUN_021EAE18
-.extern FUN_021EAE38
-.extern FUN_021EAE90
-.extern FUN_021EB044
-.extern FUN_021EB0FC
-.extern FUN_021EC57C
-.extern FUN_021EC71C
-.extern FUN_021EC854
-.extern FUN_021EC864
-.extern FUN_021ECD64
-.extern FUN_021ECF14
-.extern FUN_021ED0CC
-.extern FUN_021ED49C
-.extern FUN_021ED4E0
-.extern FUN_021ED52C
-.extern FUN_021ED5C4
-.extern FUN_021ED5EC
-.extern FUN_021ED644
-.extern FUN_021ED940
-.extern FUN_021EDA48
-.extern FUN_021EDBC8
-.extern FUN_021EF5E0
-.extern FUN_021EF604
-.extern FUN_021EF620
-.extern FUN_021EF654
-.extern FUN_021EF824
-.extern FUN_021EF844
-.extern FUN_021EF8C8
-.extern FUN_021EF8DC
-.extern FUN_021EFA9C
-.extern FUN_021F02C4
-.extern FUN_021F1D8C
-.extern FUN_021F1DC8
-.extern FUN_021F1DFC
-.extern FUN_021F1EC0
-.extern FUN_021F1F78
-.extern FUN_021F2094
-.extern FUN_021F20D8
-.extern FUN_021F20F8
-.extern FUN_021F2AF4
-.extern FUN_021F2E0C
-.extern FUN_021F2E28
-.extern FUN_021F2F48
-.extern FUN_021F2F6C
-.extern FUN_021F3A18
-.extern FUN_021F3AB4
-.extern FUN_021F3B4C
-.extern FUN_021F3B7C
-.extern FUN_021F3DA4
-.extern FUN_021F44D8
-.extern FUN_021F4520
-.extern FUN_021F4568
-.extern FUN_021F4594
-.extern FUN_021F45E8
-.extern FUN_021F4608
-.extern FUN_021F4BD0
-.extern FUN_021F4C88
-.extern FUN_021F4D80
-.extern FUN_021F4DC8
-.extern FUN_021F4E7C
-.extern FUN_021F57EC
-.extern FUN_021F5C44
-.extern FUN_021F61DC
-.extern FUN_021F61E8
-.extern FUN_02211E60
-.extern FUN_02213B08
-.extern FUN_02213D80
-.extern FUN_02213DBC
-.extern FUN_02213E24
-.extern FUN_0222D5C0
-.extern FUN_0222DAEC
-.extern FUN_0222DD1C
-.extern FUN_0222DD38
-.extern FUN_0222E2BC
-.extern FUN_0222E360
-.extern FUN_0222E3A0
-.extern FUN_0222E7E8
-.extern FUN_0222E874
-.extern FUN_0222ED34
-.extern FUN_0222EDBC
-.extern FUN_0222F440
-.extern FUN_0222F480
-.extern FUN_0222F7E0
-.extern FUN_0222F990
-.extern FUN_022300D4
-.extern FUN_022300DC
-.extern FUN_022300E4
-.extern FUN_022300E8
-.extern FUN_022300F4
-.extern FUN_02230100
-.extern FUN_0223010C
-.extern FUN_02230118
-.extern FUN_02230124
-.extern FUN_02230F3C
-.extern FUN_02230F70
-.extern FUN_02230F80
-.extern FUN_02231344
-.extern FUN_02231350
-.extern FUN_0223135C
-.extern FUN_02231368
-.extern FUN_02231374
-.extern FUN_02239944
-.extern FUN_02239AAC
-.extern FUN_0223CACC
-.extern FUN_0223CB08
-.extern FUN_0223CCDC
-.extern FUN_0223CD7C
-.extern FUN_0223D3D0
-.extern FUN_0223D638
-.extern FUN_0223D648
-.extern FUN_0223DFB4
-.extern FUN_0223E060
-.extern FUN_0223E118
-.extern FUN_0223E154
-.extern FUN_0223E1A4
-.extern FUN_0223E1E0
-.extern FUN_0223E2AC
-.extern FUN_0223E4A8
-.extern FUN_0223E4D4
-.extern FUN_0223E554
-.extern FUN_0223E6B8
-.extern FUN_0223E734
-.extern FUN_0223E7FC
-.extern FUN_0223EB8C
-.extern FUN_0223EF7C
-.extern FUN_0223F4D8
-.extern FUN_0223F4F4
-.extern FUN_0223F8D8
-.extern FUN_0223FCE8
-.extern FUN_02240790
-.extern FUN_022407CC
-.extern FUN_022407DC
-.extern FUN_022407F8
-.extern FUN_02240834
-.extern FUN_02240844
-.extern FUN_0224089C
-.extern FUN_022408FC
-.extern FUN_022411F4
-.extern FUN_02241230
-.extern FUN_02241914
-.extern FUN_02242A38
-.extern FUN_02242BE0
-.extern FUN_0224312C
-.extern FUN_022432E4
-.extern FUN_0224339C
-.extern FUN_022433A8
-.extern FUN_022433B0
-.extern FUN_022433B8
-.extern FUN_022433F8
-.extern FUN_02243408
-.extern FUN_02243428
-.extern FUN_02243448
-.extern FUN_0224345C
-.extern FUN_022434AC
-.extern FUN_022434BC
-.extern FUN_022434D0
-.extern FUN_02243694
-.extern FUN_022436C8
-.extern FUN_022436E8
-.extern FUN_02243780
-.extern FUN_02243838
-.extern FUN_022438DC
-.extern FUN_022438E0
-.extern FUN_022438FC
-.extern FUN_02243920
-.extern FUN_022439F8
-.extern FUN_02243AD8
-.extern FUN_02243BA8
-.extern FUN_02243C5C
-.extern FUN_02243D3C
-.extern FUN_02243DA0
-.extern FUN_02243DB8
-.extern FUN_02243DC0
-.extern FUN_02243DC4
-.extern FUN_02243DD8
-.extern FUN_02243DE0
-.extern FUN_02243E34
-.extern FUN_02243E74
-.extern FUN_02243F18
-.extern FUN_02243F50
-.extern FUN_02243F9C
-.extern FUN_02244210
-.extern FUN_02244558
-.extern FUN_02244660
-.extern FUN_022446BC
-.extern FUN_022446E0
-.extern FUN_022446FC
-.extern FUN_02244758
-.extern FUN_02244770
-.extern FUN_02244824
-.extern FUN_0224484C
-.extern FUN_02244D1C
-.extern FUN_02244D20
-.extern FUN_02244D3C
-.extern FUN_02244D40
-.extern FUN_02244D58
-.extern FUN_02244D98
-.extern FUN_02244DA0
-.extern FUN_02244DB0
-.extern FUN_02244DBC
-.extern FUN_02244DC4
-.extern FUN_02244EF8
-.extern FUN_02244F18
-.extern FUN_02244F24
-.extern FUN_02244F2C
-.extern FUN_02245088
-.extern FUN_02245114
-.extern FUN_02245190
-.extern FUN_02245198
-.extern FUN_022451F0
-.extern FUN_0224525C
-.extern FUN_022452A4
-.extern FUN_02245324
-.extern FUN_02245340
-.extern FUN_02245358
-.extern FUN_0224566C
-.extern FUN_022456E8
-.extern FUN_02245844
-.extern FUN_02245910
-.extern FUN_02245F1C
-.extern FUN_02245F4C
-.extern FUN_02245FA0
-.extern FUN_022461A4
-.extern FUN_022461B8
-.extern FUN_0224666C
-.extern FUN_022466A0
-.extern FUN_022466AC
-.extern FUN_02246F1C
-.extern FUN_02247294
-.extern FUN_022472AC
-.extern FUN_02247544
-.extern FUN_02247614
-.extern FUN_02247728
-.extern FUN_02247808
-.extern FUN_02247970
-.extern FUN_02247A34
-.extern FUN_022483BC
-.extern FUN_022483E0
-.extern FUN_022483EC
-.extern FUN_02248724
-.extern FUN_0224884C
-.extern FUN_022488CC
-.extern FUN_022488EC
-.extern FUN_022488F4
-.extern FUN_022488FC
-.extern FUN_0224891C
-.extern FUN_02248B54
-.extern FUN_02248B58
-.extern FUN_02248B5C
-.extern FUN_02248B60
-.extern FUN_02248B6C
-.extern FUN_02248CC0
-.extern FUN_02248CD0
-.extern FUN_02248DF8
-.extern FUN_02248F70
-.extern FUN_02248FE0
-.extern FUN_02249038
-.extern FUN_022490A0
-.extern FUN_022491FC
-.extern FUN_022494C8
-.extern FUN_02249508
-.extern FUN_02249668
-.extern FUN_022497E8
-.extern FUN_02249E6C
-.extern FUN_02249E78
-.extern FUN_02249E84
-.extern FUN_02249E90
-.extern FUN_0224A310
-.extern FUN_0224A528
-.extern FUN_0224A7C8
-.extern FUN_0224ABAC
-.extern FUN_0224B124
-.extern FUN_0224B2C4
-.extern FUN_0224B568
-.extern FUN_0224B818
-.extern FUN_0224B86C
-.extern FUN_0224B9E0
-.extern FUN_0224BBEC
-.extern FUN_0224BD90
-.extern FUN_0224C038
-.extern FUN_0224C27C
-.extern FUN_0224C520
-.extern FUN_0224C678
-.extern FUN_0224C6E8
-.extern FUN_0224C6F4
-.extern FUN_0224C700
-.extern FUN_0224C8C8
-.extern FUN_0224CA2C
-.extern FUN_0224CA54
-.extern FUN_0224CA58
-.extern FUN_0224CA88
-.extern FUN_0224CA94
-.extern FUN_0224CAA0
-.extern FUN_0224CAB4
-.extern FUN_0224CB30
-.extern FUN_0224CBB0
-.extern FUN_0224CC24
-.extern FUN_0224CECC
-.extern FUN_0224D14C
-.extern FUN_0224D2E0
-.extern FUN_0224D3E8
-.extern FUN_0224D70C
-.extern FUN_0224D76C
-.extern FUN_0224D79C
-.extern FUN_0224DCB8
-.extern FUN_0224DD94
-.extern FUN_0224DDB8
-.extern FUN_0224E554
-.extern FUN_0224E764
-.extern FUN_0224E7C4
-.extern FUN_0224F12C
-.extern FUN_02252534
-.extern FUN_02252538
-.extern FUN_022567E0
+.extern MOD04_021D7660
+.extern MOD04_021D76AC
+.extern MOD04_021D77C4
+.extern MOD04_021D77E0
+.extern MOD04_021D7800
+.extern MOD04_021D78FC
+.extern MOD04_021D79B4
+.extern MOD04_021D7A7C
+.extern MOD04_021D7B14
+.extern MOD04_021D7B48
+.extern MOD04_021D7B6C
+.extern MOD04_021D7B70
+.extern MOD04_021D7BBC
+.extern MOD04_021D7BC0
+.extern MOD04_021D7C30
+.extern MOD04_021D7C4C
+.extern MOD05_021D7CA4
+.extern MOD04_021D7D68
+.extern MOD04_021D7DA8
+.extern MOD04_021D7DEC
+.extern MOD04_021D7E18
+.extern MOD04_021D7F20
+.extern MOD04_021D7F8C
+.extern MOD04_021D8018
+.extern MOD04_021D8044
+.extern MOD04_021D8058
+.extern MOD05_021D8164
+.extern MOD04_021D82BC
+.extern MOD05_021D8320
+.extern MOD04_021D836C
+.extern MOD04_021D83A8
+.extern MOD04_021D83C0
+.extern MOD04_021D83F0
+.extern MOD54_021D844C
+.extern MOD04_021D8494
+.extern MOD04_021D8558
+.extern MOD04_021D8590
+.extern MOD04_021D85A0
+.extern MOD04_021D85B4
+.extern MOD05_021D85FC
+.extern MOD04_021D8624
+.extern MOD04_021D865C
+.extern MOD04_021D868C
+.extern MOD04_021D872C
+.extern MOD04_021D8730
+.extern MOD05_021D8758
+.extern MOD04_021D87D0
+.extern MOD04_021D8818
+.extern MOD05_021D8820
+.extern MOD04_021D8860
+.extern MOD54_021D88E4
+.extern MOD04_021D8910
+.extern MOD04_021D8944
+.extern MOD54_021D89CC
+.extern MOD04_021D8A54
+.extern MOD04_021D8A7C
+.extern MOD53_021D8B64
+.extern MOD04_021D8BF0
+.extern MOD04_021D8C08
+.extern MOD54_021D8C24
+.extern MOD04_021D8C58
+.extern MOD04_021D8C6C
+.extern MOD04_021D8CC8
+.extern MOD04_021D8CF0
+.extern MOD04_021D8D04
+.extern MOD04_021D8F08
+.extern MOD53_021D917C
+.extern MOD05_021D959C
+.extern MOD05_021D967C
+.extern MOD05_021D96F4
+.extern MOD05_021D9708
+.extern MOD05_021D971C
+.extern MOD05_021D9820
+.extern MOD05_021D99F8
+.extern MOD04_021D9C2C
+.extern MOD04_021D9F78
+.extern MOD04_021DA2F4
+.extern MOD04_021DA334
+.extern MOD04_021DA388
+.extern MOD04_021DA3DC
+.extern MOD05_021DA464
+.extern MOD05_021DA4EC
+.extern MOD05_021DA54C
+.extern MOD05_021DA58C
+.extern MOD05_021DA5B8
+.extern MOD05_021DA5C8
+.extern MOD05_021DA5D0
+.extern MOD05_021DA5D8
+.extern MOD05_021DA7B4
+.extern MOD05_021DAAA4
+.extern MOD04_021DAB68
+.extern MOD05_021DAC70
+.extern MOD05_021DAE40
+.extern MOD05_021DAED4
+.extern MOD05_021DAF28
+.extern MOD05_021DAF78
+.extern MOD05_021DAF98
+.extern MOD05_021DB030
+.extern MOD17_021DB7E8
+.extern MOD17_021DB858
+.extern MOD05_021DC174
+.extern MOD04_021DCA84
+.extern MOD04_021DD6F0
+.extern MOD04_021DD718
+.extern MOD04_021DD968
+.extern MOD04_021DDB08
+.extern MOD04_021DDBBC
+.extern MOD04_021DDC1C
+.extern MOD04_021DDCE8
+.extern MOD04_021DDD7C
+.extern MOD04_021DDDCC
+.extern MOD04_021DDE7C
+.extern MOD04_021DDEE0
+.extern MOD04_021DF95C
+.extern MOD04_021DF978
+.extern MOD04_021DFA40
+.extern MOD04_021DFAF8
+.extern MOD04_021DFB20
+.extern MOD04_021DFD18
+.extern MOD04_021DFDBC
+.extern MOD04_021DFE64
+.extern MOD04_021DFF74
+.extern MOD04_021E0200
+.extern MOD04_021E0374
+.extern MOD05_021E1374
+.extern MOD05_021E1858
+.extern MOD05_021E1994
+.extern MOD05_021E1BF8
+.extern MOD05_021E1C4C
+.extern MOD05_021E1C54
+.extern MOD05_021E1ECC
+.extern MOD05_021E1F34
+.extern MOD05_021E1F58
+.extern MOD05_021E1F60
+.extern MOD04_021E242C
+.extern MOD04_021E2454
+.extern MOD05_021E2464
+.extern MOD04_021E2578
+.extern MOD05_021E2608
+.extern MOD05_021E26CC
+.extern MOD05_021E27E8
+.extern MOD05_021E288C
+.extern MOD05_021E28A0
+.extern MOD05_021E2950
+.extern MOD05_021E29B4
+.extern MOD05_021E29C8
+.extern MOD05_021E2A70
+.extern MOD05_021E2AD4
+.extern MOD05_021E2B80
+.extern MOD05_021E2B9C
+.extern MOD05_021E2BB8
+.extern MOD05_021E2BD0
+.extern MOD05_021E2C24
+.extern MOD05_021E2C58
+.extern MOD05_021E2CBC
+.extern MOD05_021E32F0
+.extern MOD05_021E331C
+.extern MOD05_021E3424
+.extern MOD05_021E3444
+.extern MOD05_021E495C
+.extern MOD05_021E4C54
+.extern MOD05_021E4C60
+.extern MOD05_021E4DE4
+.extern MOD05_021E5614
+.extern MOD05_021E57D4
+.extern MOD05_021E5970
+.extern MOD05_021E5B30
+.extern MOD05_021E5FD8
+.extern MOD05_021E5FE0
+.extern MOD05_021E6410
+.extern MOD05_021E643C
+.extern MOD05_021E6990
+.extern MOD05_021E69BC
+.extern MOD05_021E6BF4
+.extern MOD05_021E7030
+.extern MOD05_021E70F0
+.extern MOD05_021E7138
+.extern MOD05_021E7184
+.extern MOD05_021E71E8
+.extern MOD05_021E7750
+.extern MOD05_021E799C
+.extern MOD05_021E7AC0
+.extern MOD05_021E7EA0
+.extern MOD05_021E7EB0
+.extern MOD05_021E7EC4
+.extern MOD05_021E7EC8
+.extern MOD05_021E7ED0
+.extern MOD05_021E7ED8
+.extern MOD05_021E7FBC
+.extern MOD05_021E8128
+.extern MOD05_021E8130
+.extern MOD05_021E8140
+.extern MOD05_021E8144
+.extern MOD05_021E8148
+.extern MOD05_021E8158
+.extern MOD05_021E81BC
+.extern MOD05_021E84F4
+.extern MOD05_021E856C
+.extern MOD05_021E8588
+.extern MOD05_021E85E4
+.extern MOD05_021E85FC
+.extern MOD04_021EA530
+.extern MOD04_021EACF8
+.extern MOD04_021EADD8
+.extern MOD04_021EADF8
+.extern MOD04_021EAE18
+.extern MOD04_021EAE38
+.extern MOD04_021EAE90
+.extern MOD04_021EB044
+.extern MOD04_021EB0FC
+.extern MOD05_021EC57C
+.extern MOD05_021EC71C
+.extern MOD05_021EC854
+.extern MOD05_021EC864
+.extern MOD05_021ECD64
+.extern MOD05_021ECF14
+.extern MOD05_021ED0CC
+.extern MOD05_021ED49C
+.extern MOD05_021ED4E0
+.extern MOD05_021ED52C
+.extern MOD05_021ED5C4
+.extern MOD05_021ED5EC
+.extern MOD05_021ED644
+.extern MOD05_021ED940
+.extern MOD05_021EDA48
+.extern MOD05_021EDBC8
+.extern MOD05_021EF5E0
+.extern MOD05_021EF604
+.extern MOD05_021EF620
+.extern MOD05_021EF654
+.extern MOD05_021EF824
+.extern MOD05_021EF844
+.extern MOD05_021EF8C8
+.extern MOD05_021EF8DC
+.extern MOD05_021EFA9C
+.extern MOD05_021F02C4
+.extern MOD05_021F1D8C
+.extern MOD05_021F1DC8
+.extern MOD05_021F1DFC
+.extern MOD05_021F1EC0
+.extern MOD05_021F1F78
+.extern MOD05_021F2094
+.extern MOD05_021F20D8
+.extern MOD05_021F20F8
+.extern MOD05_021F2AF4
+.extern MOD05_021F2E0C
+.extern MOD05_021F2E28
+.extern MOD05_021F2F48
+.extern MOD05_021F2F6C
+.extern MOD05_021F3A18
+.extern MOD05_021F3AB4
+.extern MOD05_021F3B4C
+.extern MOD05_021F3B7C
+.extern MOD05_021F3DA4
+.extern MOD05_021F44D8
+.extern MOD05_021F4520
+.extern MOD05_021F4568
+.extern MOD05_021F4594
+.extern MOD05_021F45E8
+.extern MOD05_021F4608
+.extern MOD05_021F4BD0
+.extern MOD05_021F4C88
+.extern MOD05_021F4D80
+.extern MOD05_021F4DC8
+.extern MOD05_021F4E7C
+.extern MOD05_021F57EC
+.extern MOD05_021F5C44
+.extern MOD05_021F61DC
+.extern MOD05_021F61E8
+.extern MOD07_02211E60
+.extern MOD79_02213B08
+.extern MOD79_02213D80
+.extern MOD79_02213DBC
+.extern MOD79_02213E24
+.extern MOD11_0222D5C0
+.extern MOD62_0222DAEC
+.extern MOD62_0222DD1C
+.extern MOD62_0222DD38
+.extern MOD62_0222E2BC
+.extern MOD62_0222E360
+.extern MOD62_0222E3A0
+.extern MOD62_0222E7E8
+.extern MOD62_0222E874
+.extern MOD69_0222EC60
+.extern MOD62_0222ED34
+.extern MOD62_0222EDBC
+.extern MOD70_0222F440
+.extern MOD70_0222F480
+.extern MOD62_0222F7E0
+.extern MOD12_0222F990
+.extern MOD11_022300D4
+.extern MOD11_022300DC
+.extern MOD62_022300E4
+.extern MOD11_022300E8
+.extern MOD11_022300F4
+.extern MOD11_02230100
+.extern MOD11_0223010C
+.extern MOD11_02230118
+.extern MOD11_02230124
+.extern MOD62_02230F3C
+.extern MOD62_02230F70
+.extern MOD62_02230F80
+.extern MOD11_02231344
+.extern MOD11_02231350
+.extern MOD11_0223135C
+.extern MOD11_02231368
+.extern MOD11_02231374
+.extern MOD06_02239944
+.extern MOD06_02239AAC
+.extern MOD18_0223CACC
+.extern MOD18_0223CB08
+.extern MOD06_0223CCDC
+.extern MOD06_0223CD7C
+.extern MOD06_0223D3D0
+.extern MOD18_0223D638
+.extern MOD18_0223D648
+.extern MOD06_0223DFB4
+.extern MOD18_0223E060
+.extern MOD18_0223E118
+.extern MOD18_0223E154
+.extern MOD18_0223E1A4
+.extern MOD18_0223E1E0
+.extern MOD18_0223E2AC
+.extern MOD18_0223E4A8
+.extern MOD18_0223E4D4
+.extern MOD18_0223E554
+.extern MOD18_0223E6B8
+.extern MOD12_0223E734
+.extern MOD18_0223E7FC
+.extern MOD18_0223EB8C
+.extern MOD18_0223EF7C
+.extern MOD18_0223F4D8
+.extern MOD18_0223F4F4
+.extern MOD18_0223F8D8
+.extern MOD18_0223FCE8
+.extern MOD06_02240790
+.extern MOD06_022407CC
+.extern MOD06_022407DC
+.extern MOD06_022407F8
+.extern MOD06_02240834
+.extern MOD06_02240844
+.extern MOD18_0224089C
+.extern MOD18_022408FC
+.extern MOD06_022411F4
+.extern MOD06_02241230
+.extern MOD06_02241914
+.extern MOD06_02242A38
+.extern MOD06_02242BE0
+.extern MOD06_0224312C
+.extern MOD06_022432E4
+.extern MOD06_0224339C
+.extern MOD06_022433A8
+.extern MOD06_022433B0
+.extern MOD06_022433B8
+.extern MOD06_022433F8
+.extern MOD06_02243408
+.extern MOD06_02243428
+.extern MOD06_02243448
+.extern MOD06_0224345C
+.extern MOD06_022434AC
+.extern MOD06_022434BC
+.extern MOD06_022434D0
+.extern MOD06_02243694
+.extern MOD06_022436C8
+.extern MOD06_022436E8
+.extern MOD06_02243780
+.extern MOD06_02243838
+.extern MOD06_022438DC
+.extern MOD06_022438E0
+.extern MOD06_022438FC
+.extern MOD06_02243920
+.extern MOD06_022439F8
+.extern MOD06_02243AD8
+.extern MOD06_02243BA8
+.extern MOD06_02243C5C
+.extern MOD06_02243D3C
+.extern MOD06_02243DA0
+.extern MOD06_02243DB8
+.extern MOD06_02243DC0
+.extern MOD06_02243DC4
+.extern MOD06_02243DD8
+.extern MOD06_02243DE0
+.extern MOD06_02243E34
+.extern MOD06_02243E74
+.extern MOD06_02243F18
+.extern MOD06_02243F50
+.extern MOD06_02243F9C
+.extern MOD06_02244210
+.extern MOD06_02244558
+.extern MOD06_02244660
+.extern MOD06_022446BC
+.extern MOD06_022446E0
+.extern MOD06_022446FC
+.extern MOD06_02244758
+.extern MOD06_02244770
+.extern MOD18_02244824
+.extern MOD18_0224484C
+.extern MOD18_02244D1C
+.extern MOD18_02244D20
+.extern MOD18_02244D3C
+.extern MOD18_02244D40
+.extern MOD18_02244D58
+.extern MOD18_02244D98
+.extern MOD18_02244DA0
+.extern MOD06_02244DB0
+.extern MOD06_02244DBC
+.extern MOD06_02244DC4
+.extern MOD06_02244EF8
+.extern MOD06_02244F18
+.extern MOD06_02244F24
+.extern MOD06_02244F2C
+.extern MOD06_02245088
+.extern MOD06_02245114
+.extern MOD06_02245190
+.extern MOD06_02245198
+.extern MOD06_022451F0
+.extern MOD06_0224525C
+.extern MOD18_022452A4
+.extern MOD18_02245324
+.extern MOD06_02245340
+.extern MOD18_02245358
+.extern MOD18_0224566C
+.extern MOD06_022456E8
+.extern MOD06_02245844
+.extern MOD06_02245910
+.extern MOD18_02245F1C
+.extern MOD18_02245F4C
+.extern MOD06_02245FA0
+.extern MOD18_022461A4
+.extern MOD18_022461B8
+.extern MOD06_0224666C
+.extern MOD06_022466A0
+.extern MOD06_022466AC
+.extern MOD18_02246F1C
+.extern MOD18_02247294
+.extern MOD18_022472AC
+.extern MOD06_02247544
+.extern MOD18_02247614
+.extern MOD18_02247728
+.extern MOD06_02247808
+.extern MOD18_02247970
+.extern MOD18_02247A34
+.extern MOD06_022483BC
+.extern MOD06_022483E0
+.extern MOD06_022483EC
+.extern MOD06_02248724
+.extern MOD06_0224884C
+.extern MOD06_022488CC
+.extern MOD06_022488EC
+.extern MOD06_022488F4
+.extern MOD06_022488FC
+.extern MOD06_0224891C
+.extern MOD06_02248B54
+.extern MOD06_02248B58
+.extern MOD06_02248B5C
+.extern MOD06_02248B60
+.extern MOD06_02248B6C
+.extern MOD06_02248CC0
+.extern MOD06_02248CD0
+.extern MOD18_02248DF8
+.extern MOD06_02248F70
+.extern MOD06_02248FE0
+.extern MOD06_02249038
+.extern MOD06_022490A0
+.extern MOD06_022491FC
+.extern MOD18_022494C8
+.extern MOD06_02249508
+.extern MOD06_02249668
+.extern MOD06_022497E8
+.extern MOD06_02249E6C
+.extern MOD06_02249E78
+.extern MOD06_02249E84
+.extern MOD06_02249E90
+.extern MOD06_0224A310
+.extern MOD06_0224A528
+.extern MOD06_0224A7C8
+.extern MOD06_0224ABAC
+.extern MOD06_0224B124
+.extern MOD06_0224B2C4
+.extern MOD06_0224B568
+.extern MOD06_0224B818
+.extern MOD06_0224B86C
+.extern MOD06_0224B9E0
+.extern MOD06_0224BBEC
+.extern MOD06_0224BD90
+.extern MOD06_0224C038
+.extern MOD06_0224C27C
+.extern MOD06_0224C520
+.extern MOD06_0224C678
+.extern MOD06_0224C6E8
+.extern MOD06_0224C6F4
+.extern MOD06_0224C700
+.extern MOD06_0224C8C8
+.extern MOD18_0224CA2C
+.extern MOD18_0224CA54
+.extern MOD06_0224CA58
+.extern MOD06_0224CA88
+.extern MOD11_0224CA94
+.extern MOD18_0224CAA0
+.extern MOD18_0224CAB4
+.extern MOD06_0224CB30
+.extern MOD06_0224CBB0
+.extern MOD06_0224CC24
+.extern MOD06_0224CECC
+.extern MOD06_0224D14C
+.extern MOD06_0224D2E0
+.extern MOD06_0224D3E8
+.extern MOD06_0224D70C
+.extern MOD06_0224D76C
+.extern MOD06_0224D79C
+.extern MOD18_0224DCB8
+.extern MOD18_0224DD94
+.extern MOD18_0224DDB8
+.extern MOD06_0224E554
+.extern MOD06_0224E764
+.extern MOD06_0224E7C4
+.extern MOD06_0224F12C
+.extern MOD20_02252534
+.extern MOD20_02252538
+.extern MOD11_022567E0
.extern FX_Atan2
.extern FX_AtanTable_
.extern FX_Div
@@ -3203,6 +3290,19 @@ .extern G2x_SetBGyAffine_
.extern G2x_SetBlendAlpha_
.extern G2x_SetBlendBrightness_
+.extern G3B_Begin
+.extern G3B_Color
+.extern G3B_End
+.extern G3B_LightColor
+.extern G3B_LightVector
+.extern G3B_LoadMtx44
+.extern G3B_MaterialColorDiffAmb
+.extern G3B_MaterialColorSpecEmi
+.extern G3B_Normal
+.extern G3B_PolygonAttr
+.extern G3B_PopMtx
+.extern G3B_PushMtx
+.extern G3B_Vtx
.extern G3X_GetBoxTestResult
.extern G3X_GetClipMtx
.extern G3X_GetVectorMtx
@@ -3211,6 +3311,8 @@ .extern G3X_ResetMtxStack
.extern G3X_SetClearColor
.extern G3X_SetFog
+.extern G3_BeginMakeDL
+.extern G3_EndMakeDL
.extern G3_LoadMtx43
.extern G3_MultMtx33
.extern G3_MultMtx43
@@ -3322,14 +3424,11 @@ .extern MATH_MD5GetHash
.extern MATH_MD5Init
.extern MATH_MD5Update
-.extern MATH_SHA1GetHash
-.extern MATH_SHA1Init
-.extern MATH_SHA1Update
.extern MATHi_CRC16InitTable
.extern MATHi_CRC16InitTableRev
.extern MATHi_CRC32InitTableRev
.extern MATHi_CRC8InitTable
-.extern MATHi_CalcHMAC
+.extern DGTi_Hash2CalcHmac
.extern MIC_DoSamplingAsync
.extern MIC_GetLastSamplingAddress
.extern MIC_Init
@@ -3349,6 +3448,7 @@ .extern MI_HBlankDmaCopy16
.extern MI_HBlankDmaCopy32
.extern MI_Init
+.extern MI_SendGXCommand
.extern MI_SendGXCommandAsync
.extern MI_SendGXCommandAsyncFast
.extern MI_SetWramBank
@@ -3385,12 +3485,16 @@ .extern MTX_MultVec43
.extern MTX_Rot22_
.extern MTX_RotX33_
+.extern MTX_RotX44_
.extern MTX_RotY33_
+.extern MTX_RotY44_
.extern MTX_RotZ33_
+.extern MTX_RotZ44_
.extern MTX_Scale43_
.extern MTX_ScaleApply22
.extern MTX_ScaleApply33
.extern MTX_ScaleApply43
+.extern MTX_TransApply44
.extern NitroMain
.extern OS_AllocFromArenaHi
.extern OS_AllocFromArenaLo
@@ -3685,6 +3789,7 @@ .extern VEC_Add
.extern VEC_CrossProduct
.extern VEC_DotProduct
+.extern VEC_Fx16Add
.extern VEC_Fx16CrossProduct
.extern VEC_Fx16DotProduct
.extern VEC_Fx16Normalize
@@ -3819,9 +3924,9 @@ .extern wcslen
.extern FUN_0200CA98
.extern FUN_020C5D8C
-.extern FUN_021D7A20
-.extern FUN_021D7A28
-.extern FUN_021E8648
+.extern MOD05_021D7A20
+.extern MOD05_021D7A28
+.extern MOD05_021E8648
.extern GX_GetBankForBGExtPltt
.extern GX_GetBankForBGExtPltt_2
.extern GX_GetBankForSubOBJ
@@ -4261,40 +4366,40 @@ .extern FUN_020BBC34
.extern FUN_020BC094
.extern FUN_020BC4C8
-.extern FUN_0223BA04
-.extern FUN_0223BE70
-.extern FUN_0223C08C
-.extern FUN_0223CDB8
-.extern FUN_0223D8F4
-.extern FUN_0223DC98
-.extern FUN_0223DCB4
-.extern FUN_0223DCD0
-.extern FUN_0223E2C4
-.extern FUN_0223E2DC
-.extern FUN_02242404
-.extern FUN_022426AC
-.extern FUN_02249B7C
-.extern FUN_0224A130
-.extern FUN_0224A6B8
-.extern FUN_0224A6FC
-.extern FUN_0224A8D4
-.extern FUN_0224AA40
-.extern FUN_0224ADF8
-.extern FUN_0224AEE8
-.extern FUN_0224AF68
-.extern FUN_0224ED94
-.extern FUN_0224EDA8
-.extern FUN_0224F0BC
-.extern FUN_0224F0D0
-.extern FUN_02252440
-.extern FUN_02252448
-.extern FUN_022524BC
-.extern FUN_022524D0
-.extern FUN_022524DC
-.extern FUN_022524F4
-.extern FUN_02252504
-.extern FUN_02254A68
-.extern FUN_02254AB8
+.extern MOD06_0223BA04
+.extern MOD06_0223BE70
+.extern MOD06_0223C08C
+.extern MOD06_0223CDB8
+.extern MOD18_0223D8F4
+.extern MOD18_0223DC98
+.extern MOD18_0223DCB4
+.extern MOD18_0223DCD0
+.extern MOD18_0223E2C4
+.extern MOD18_0223E2DC
+.extern MOD06_02242404
+.extern MOD06_022426AC
+.extern MOD06_02249B7C
+.extern MOD06_0224A130
+.extern MOD06_0224A6B8
+.extern MOD06_0224A6FC
+.extern MOD06_0224A8D4
+.extern MOD06_0224AA40
+.extern MOD06_0224ADF8
+.extern MOD06_0224AEE8
+.extern MOD06_0224AF68
+.extern MOD06_0224ED94
+.extern MOD06_0224EDA8
+.extern MOD06_0224F0BC
+.extern MOD06_0224F0D0
+.extern MOD19_02252440
+.extern MOD20_02252448
+.extern MOD20_022524BC
+.extern MOD20_022524D0
+.extern MOD20_022524DC
+.extern MOD19_022524F4
+.extern MOD19_02252504
+.extern MOD51_02254A68
+.extern MOD51_02254AB8
.extern FX_Atan
.extern G3X_SetEdgeColorTable
.extern G3X_SetFogTable
@@ -4336,7 +4441,7 @@ .extern FUN_02055648
.extern FUN_02058544
.extern FUN_02061208
-.extern FUN_0223BD14
+.extern MOD06_0223BD14
.extern FUN_02001328
.extern FUN_020021EC
.extern FUN_020090FC
@@ -4516,83 +4621,83 @@ .extern FUN_02089368
.extern FUN_02089394
.extern FUN_020BC02C
-.extern FUN_021D80E4
-.extern FUN_021D9320
-.extern FUN_021D94B4
-.extern FUN_021D9510
-.extern FUN_021DA03C
-.extern FUN_021DA080
-.extern FUN_021DA0DC
-.extern FUN_021DA0E0
-.extern FUN_021DA0E8
-.extern FUN_021DA118
-.extern FUN_021DA138
-.extern FUN_021DA1A0
-.extern FUN_021DA1A4
-.extern FUN_021DA1A8
-.extern FUN_021DA20C
-.extern FUN_021DA4BC
-.extern FUN_021DB44C
-.extern FUN_021DB4B0
-.extern FUN_021DB52C
-.extern FUN_021DB53C
-.extern FUN_021DBA40
-.extern FUN_021DBA78
-.extern FUN_021DBAA0
-.extern FUN_021E4BE8
-.extern FUN_021E4C00
-.extern FUN_021E4C08
-.extern FUN_021E4C20
-.extern FUN_021E4C24
-.extern FUN_021E4C6C
-.extern FUN_021E4DC4
-.extern FUN_021E4E90
-.extern FUN_021E4EE4
-.extern FUN_021E4EFC
-.extern FUN_021E506C
-.extern FUN_021E5078
-.extern FUN_021E5094
-.extern FUN_021E50A0
-.extern FUN_021E50AC
-.extern FUN_021E50C8
-.extern FUN_021E50D4
-.extern FUN_021E5114
-.extern FUN_021E5198
-.extern FUN_021E51EC
-.extern FUN_021E5224
-.extern FUN_021E5260
-.extern FUN_021E5294
-.extern FUN_021E7C80
-.extern FUN_021E7E9C
-.extern FUN_021E7EC0
-.extern FUN_021E7ECC
-.extern FUN_021E7EEC
-.extern FUN_021E8698
-.extern FUN_021F0514
-.extern FUN_021F1C1C
-.extern FUN_021F1C30
-.extern FUN_021F1E64
-.extern FUN_021F220C
-.extern FUN_021F51D0
-.extern FUN_021F522C
-.extern FUN_021F5268
-.extern FUN_021F52C8
-.extern FUN_021F531C
-.extern FUN_021F5348
-.extern FUN_021F5358
-.extern FUN_021F5384
-.extern FUN_021F53BC
-.extern FUN_021F53F8
-.extern FUN_021F5400
-.extern FUN_021F5424
-.extern FUN_021F5430
-.extern FUN_021F54CC
-.extern FUN_021F54D0
-.extern FUN_021F54D8
-.extern FUN_021F61F4
-.extern FUN_021F6234
-.extern FUN_021F6240
-.extern FUN_021F6254
+.extern MOD05_021D80E4
+.extern MOD05_021D9320
+.extern MOD05_021D94B4
+.extern MOD05_021D9510
+.extern MOD05_021DA03C
+.extern MOD05_021DA080
+.extern MOD05_021DA0DC
+.extern MOD05_021DA0E0
+.extern MOD05_021DA0E8
+.extern MOD05_021DA118
+.extern MOD05_021DA138
+.extern MOD05_021DA1A0
+.extern MOD05_021DA1A4
+.extern MOD05_021DA1A8
+.extern MOD05_021DA20C
+.extern MOD05_021DA4BC
+.extern MOD05_021DB44C
+.extern MOD05_021DB4B0
+.extern MOD05_021DB52C
+.extern MOD05_021DB53C
+.extern MOD05_021DBA40
+.extern MOD05_021DBA78
+.extern MOD05_021DBAA0
+.extern MOD05_021E4BE8
+.extern MOD05_021E4C00
+.extern MOD05_021E4C08
+.extern MOD05_021E4C20
+.extern MOD05_021E4C24
+.extern MOD05_021E4C6C
+.extern MOD05_021E4DC4
+.extern MOD05_021E4E90
+.extern MOD05_021E4EE4
+.extern MOD05_021E4EFC
+.extern MOD05_021E506C
+.extern MOD05_021E5078
+.extern MOD05_021E5094
+.extern MOD05_021E50A0
+.extern MOD05_021E50AC
+.extern MOD05_021E50C8
+.extern MOD05_021E50D4
+.extern MOD05_021E5114
+.extern MOD05_021E5198
+.extern MOD05_021E51EC
+.extern MOD05_021E5224
+.extern MOD05_021E5260
+.extern MOD05_021E5294
+.extern MOD05_021E7C80
+.extern MOD05_021E7E9C
+.extern MOD05_021E7EC0
+.extern MOD05_021E7ECC
+.extern MOD05_021E7EEC
+.extern MOD05_021E8698
+.extern MOD05_021F0514
+.extern MOD05_021F1C1C
+.extern MOD05_021F1C30
+.extern MOD05_021F1E64
+.extern MOD05_021F220C
+.extern MOD05_021F51D0
+.extern MOD05_021F522C
+.extern MOD05_021F5268
+.extern MOD05_021F52C8
+.extern MOD05_021F531C
+.extern MOD05_021F5348
+.extern MOD05_021F5358
+.extern MOD05_021F5384
+.extern MOD05_021F53BC
+.extern MOD05_021F53F8
+.extern MOD05_021F5400
+.extern MOD05_021F5424
+.extern MOD05_021F5430
+.extern MOD05_021F54CC
+.extern MOD05_021F54D0
+.extern MOD05_021F54D8
+.extern MOD05_021F61F4
+.extern MOD05_021F6234
+.extern MOD05_021F6240
+.extern MOD05_021F6254
.extern FUN_020031B8
.extern FUN_02003204
.extern FUN_020039E8
@@ -4657,14 +4762,14 @@ .extern FUN_02069FB0
.extern FUN_02085FF4
.extern FUN_02086018
-.extern FUN_02230078
-.extern FUN_02230080
-.extern FUN_022300CC
-.extern FUN_022312D0
-.extern FUN_02231504
-.extern FUN_02231534
-.extern FUN_02231678
-.extern FUN_02233560
+.extern MOD11_02230078
+.extern MOD11_02230080
+.extern MOD11_022300CC
+.extern MOD11_022312D0
+.extern MOD11_02231504
+.extern MOD11_02231534
+.extern MOD11_02231678
+.extern MOD12_02233560
.extern FX_Modf
.extern FUN_02002F40
.extern FUN_0200B144
@@ -4709,36 +4814,36 @@ .extern FUN_0207C2D0
.extern FUN_02083114
.extern FUN_0208315C
-.extern FUN_0222FF68
-.extern FUN_0222FF74
-.extern FUN_0222FF78
-.extern FUN_0222FF88
-.extern FUN_02230014
-.extern FUN_02230188
-.extern FUN_02230214
-.extern FUN_02230218
-.extern FUN_02230260
-.extern FUN_02230290
-.extern FUN_022302BC
-.extern FUN_02230370
-.extern FUN_02230E44
-.extern FUN_02230E54
-.extern FUN_02231238
-.extern FUN_0224C474
-.extern FUN_0225D3EC
-.extern FUN_0225D45C
-.extern FUN_0225D484
-.extern FUN_0225D508
-.extern FUN_0225D5DC
-.extern FUN_0225D648
-.extern FUN_0225D6A4
-.extern FUN_0225D714
-.extern FUN_0225D73C
-.extern FUN_0225D7B8
-.extern FUN_0225D800
-.extern FUN_0225D80C
-.extern FUN_0225D820
-.extern FUN_0225D824
+.extern MOD11_0222FF68
+.extern MOD11_0222FF74
+.extern MOD11_0222FF78
+.extern MOD11_0222FF88
+.extern MOD11_02230014
+.extern MOD11_02230188
+.extern MOD11_02230214
+.extern MOD11_02230218
+.extern MOD11_02230260
+.extern MOD11_02230290
+.extern MOD11_022302BC
+.extern MOD11_02230370
+.extern MOD11_02230E44
+.extern MOD11_02230E54
+.extern MOD11_02231238
+.extern MOD11_0224C474
+.extern MOD11_0225D3EC
+.extern MOD11_0225D45C
+.extern MOD11_0225D484
+.extern MOD11_0225D508
+.extern MOD11_0225D5DC
+.extern MOD11_0225D648
+.extern MOD11_0225D6A4
+.extern MOD11_0225D714
+.extern MOD11_0225D73C
+.extern MOD11_0225D7B8
+.extern MOD11_0225D800
+.extern MOD11_0225D80C
+.extern MOD11_0225D820
+.extern MOD11_0225D824
.extern FUN_02002BD4
.extern FUN_02002BE4
.extern FUN_02002BF4
@@ -4847,30 +4952,30 @@ .extern FUN_020799E8
.extern FUN_02079A24
.extern FUN_02087B78
-.extern FUN_021EEF0C
-.extern FUN_021EEF68
-.extern FUN_021EEF84
-.extern FUN_021EEF98
-.extern FUN_021EEF9C
-.extern FUN_021EFBF4
-.extern FUN_021EFD8C
-.extern FUN_021F45A4
-.extern FUN_021F4698
-.extern FUN_021F4A30
-.extern FUN_02211E7C
-.extern FUN_02211F5C
-.extern FUN_02212024
-.extern FUN_02212048
-.extern FUN_02212384
-.extern FUN_022123A0
-.extern FUN_022123B0
-.extern FUN_022156C0
-.extern FUN_0221590C
-.extern FUN_02215918
-.extern FUN_0221594C
-.extern FUN_02215988
-.extern FUN_02215A44
-.extern FUN_022186F0
+.extern MOD16_021EEF0C
+.extern MOD05_021EEF68
+.extern MOD16_021EEF84
+.extern MOD16_021EEF98
+.extern MOD05_021EEF9C
+.extern MOD16_021EFBF4
+.extern MOD16_021EFD8C
+.extern MOD16_021F45A4
+.extern MOD16_021F4698
+.extern MOD16_021F4A30
+.extern MOD08_02211E7C
+.extern MOD08_02211F5C
+.extern MOD08_02212024
+.extern MOD08_02212048
+.extern MOD08_02212384
+.extern MOD08_022123A0
+.extern MOD08_022123B0
+.extern MOD08_022156C0
+.extern MOD08_0221590C
+.extern MOD08_02215918
+.extern MOD08_0221594C
+.extern MOD08_02215988
+.extern MOD08_02215A44
+.extern MOD09_022186F0
.extern FX_ModS32
.extern MOD08_02228218
.extern MOD08_02228524
@@ -4929,19 +5034,19 @@ .extern FUN_0208336C
.extern FUN_020833D4
.extern FUN_02083404
-.extern FUN_021DD4F4
-.extern FUN_021DD518
-.extern FUN_021DD540
-.extern FUN_021DD58C
-.extern FUN_021DD594
-.extern FUN_021DD59C
-.extern FUN_021DD604
-.extern FUN_021DD60C
-.extern FUN_021DD620
-.extern FUN_021DD678
-.extern FUN_021DD6B8
-.extern FUN_021DD6CC
-.extern FUN_02211FF0
+.extern MOD17_021DD4F4
+.extern MOD17_021DD518
+.extern MOD17_021DD540
+.extern MOD17_021DD58C
+.extern MOD17_021DD594
+.extern MOD17_021DD59C
+.extern MOD17_021DD604
+.extern MOD05_021DD60C
+.extern MOD17_021DD620
+.extern MOD17_021DD678
+.extern MOD17_021DD6B8
+.extern MOD17_021DD6CC
+.extern MOD08_02211FF0
.extern FUN_0202E49C
.extern MOD08_02228574
.extern MOD08_0222A6C8
@@ -5025,11 +5130,11 @@ .extern FS_LoadArchiveTables
.extern FS_UnloadArchive
.extern FS_ReleaseArchiveName
-.extern FUN_021EB9A4
-.extern FUN_021EB9D8
-.extern FUN_021EBAE8
-.extern FUN_021EBB80
-.extern FUN_021EBC60
+.extern MOD04_021EB9A4
+.extern MOD04_021EB9D8
+.extern MOD04_021EBAE8
+.extern MOD04_021EBB80
+.extern MOD04_021EBC60
.extern FUN_020051EC
.extern FUN_02006D18
.extern FUN_020081A8
@@ -5409,7 +5514,6 @@ .extern FUN_02006C88
.extern FUN_02020A6C
.extern FUN_02012690
-.extern MOD20_02252978
.extern FUN_02020BF4
.extern FUN_02020BFC
.extern FUN_020893F0
@@ -5417,6 +5521,8 @@ .extern FUN_02069B60
.extern FUN_02089444
.extern FUN_0208946C
+.extern MOD20_02252978
+.extern MOD20_02253AA4
.extern MOD20_02252B68
.extern MOD20_02252C08
.extern MOD20_02253794
@@ -5530,6 +5636,375 @@ .extern FUN_02083298
.extern FUN_02083A34
.extern FUN_02083A7C
+.extern FUN_020254F0
+.extern FUN_020254F8
+.extern FUN_0202EF70
+.extern FUN_02052CF0
+.extern FUN_02015E3C
+.extern FUN_020226FC
+.extern FUN_020227DC
+.extern FUN_020237A0
+.extern FUN_020237CC
+.extern FUN_020237FC
+.extern FUN_02023840
+.extern FUN_020238A4
+.extern FUN_020239B8
+.extern FUN_02023A14
+.extern FUN_02024F9C
+.extern FUN_020250C4
+.extern FUN_020377E0
+.extern FUN_0206007C
+.extern FUN_0201CD38
+.extern FUN_020294A8
+.extern FUN_0202EEB0
+.extern MOD08_02217E80
+.extern MOD08_02217ECC
+.extern MOD08_02217F08
+.extern MOD08_0222A02C
+.extern FUN_0200C6D8
+.extern FUN_02029CA4
+.extern FUN_02029CF4
+.extern FUN_02029CF8
+.extern FUN_02029D40
+.extern FUN_02029D84
+.extern FUN_02085D9C
+.extern FUN_02085FAC
+.extern FUN_02031370
+.extern FUN_02016B44
+.extern FUN_02017BD0
+.extern FUN_0201ED5C
+.extern FUN_0201EE2C
+.extern FUN_0201EFB4
+.extern FUN_0201F05C
+.extern FUN_0200A064
+.extern FUN_0200C918
+.extern FUN_02031388
+.extern FUN_02052F8C
+.extern FUN_02083D48
+.extern FUN_02026FE0
+.extern FUN_02027D7C
+.extern FUN_0202888C
+.extern FUN_020288AC
+.extern FUN_020013C8
+.extern FUN_02001538
+.extern FUN_02004828
+.extern FUN_0200DC24
+.extern FUN_0201291C
+.extern FUN_020281E8
+.extern FUN_0202858C
+.extern FUN_020285D0
+.extern FUN_0202DB14
+.extern FUN_0202DBA4
+.extern FUN_02032FDC
+.extern FUN_0203300C
+.extern FUN_02033128
+.extern FUN_02033138
+.extern FUN_02033154
+.extern FUN_02033180
+.extern FUN_020331C4
+.extern FUN_020331E8
+.extern FUN_02033208
+.extern FUN_0203323C
+.extern FUN_02033250
+.extern FUN_0203346C
+.extern FUN_020334DC
+.extern FUN_02088858
+.extern FUN_02088868
+.extern FUN_02006874
+.extern FUN_0200AF88
+.extern FUN_0200AFBC
+.extern FUN_02013840
+.extern FUN_02013EFC
+.extern FUN_02013F00
+.extern FUN_0201C78C
+.extern FUN_02024648
+.extern FUN_02024674
+.extern FUN_020247A4
+.extern FUN_02024828
+.extern FUN_0202489C
+.extern FUN_0202490C
+.extern FUN_02024930
+.extern FUN_02024970
+.extern FUN_02024CC4
+.extern FUN_02025E20
+.extern FUN_02025FFC
+.extern FUN_020260EC
+.extern FUN_0202A398
+.extern FUN_0202B5D8
+.extern FUN_0202B9EC
+.extern FUN_02031258
+.extern FUN_02046948
+.extern FUN_0204E178
+.extern FUN_02050E10
+.extern FUN_02050E2C
+.extern FUN_020556C8
+.extern FUN_0205E49C
+.extern FUN_0206EA54
+.extern FUN_02085410
+.extern FUN_02085414
+.extern FUN_02087A38
+.extern FUN_0202B1F0
+.extern FUN_0202B250
+.extern FUN_0202B29C
+.extern FUN_0202B31C
+.extern FUN_020124B4
+.extern FUN_020166A8
+.extern FUN_020166B8
+.extern FUN_0202945C
+.extern FUN_0202E288
+.extern FUN_0206AA84
+.extern FUN_0206B8A4
+.extern FUN_02083B84
+.extern FUN_02083D10
+.extern FUN_0200904C
+.extern FUN_02013F04
+.extern FUN_0201CBEC
+.extern FUN_02027E30
+.extern FUN_02027E94
+.extern FUN_02029520
+.extern FUN_0202A878
+.extern FUN_02060FAC
+.extern FUN_020842D0
+.extern FUN_020842D8
+.extern FUN_02001354
+.extern FUN_0200145C
+.extern FUN_02001464
+.extern FUN_02001DDC
+.extern FUN_02001E60
+.extern FUN_020021CC
+.extern FUN_02018878
+.extern FUN_020209A8
+.extern FUN_020209F4
+.extern FUN_0205D51C
+.extern FUN_0206E164
+.extern FUN_0206E3F8
+.extern FUN_0206E51C
+.extern FUN_0206E5B4
+.extern FUN_0206EB0C
+.extern FUN_0206EBC4
+.extern FUN_0206EBCC
+.extern FUN_0206EE20
+.extern FUN_0206EF10
+.extern FUN_0206F18C
+.extern FUN_0206F19C
+.extern FUN_02085284
+.extern MOD05_021F54E0
+.extern MOD06_0224C24C
+.extern MOD12_0223D1CC
+.extern MOD18_0223E4BC
+.extern MOD18_02247830
+.extern MOD04_021D80E0
+.extern MOD04_021D83D4
+.extern MOD04_021D8478
+.extern MOD04_021D8480
+.extern MOD04_021D853C
+.extern MOD04_021D861C
+.extern MOD04_021D8640
+.extern MOD04_021D8678
+.extern FUN_02029B08
+.extern MOD04_021EB550
+.extern MOD04_021DD904
+.extern MOD04_021DD944
+.extern MOD04_021EB3B8
+.extern MOD04_021EB524
+.extern MOD04_021EB59C
+.extern MOD04_021EF820
+.extern strncat
+.extern fclose
+.extern fread
+.extern fseek
+.extern ftell
+.extern MOD04_021DD82C
+.extern MOD04_021DD844
+.extern MOD04_021DD860
+.extern MOD04_021EEFA8
+.extern MOD04_021EEFFC
+.extern MOD04_021EF06C
+.extern MOD04_021EF074
+.extern MOD04_021EF0E4
+.extern MOD04_021EFB28
+.extern MOD04_021EFB38
+.extern MOD04_021EFC24
+.extern MOD04_021EFC78
+.extern MOD04_021EFCE4
+.extern MOD04_021EFD80
+.extern MOD04_021EFD9C
+.extern MOD04_021EFDB8
+.extern MOD04_021EFF5C
+.extern MOD04_021F0130
+.extern MOD04_021F017C
+.extern MOD04_021F0208
+.extern MOD04_021F024C
+.extern MOD04_021F0250
+.extern MOD04_021F025C
+.extern rewind
+.extern strspn
+.extern FUN_0200B84C
+.extern FUN_02022840
+.extern FUN_02022854
+.extern FUN_02023830
+.extern FUN_02023834
+.extern FUN_02023A6C
+.extern FUN_02023A74
+.extern FUN_0202952C
+.extern FUN_0202ABDC
+.extern FUN_0202ABE4
+.extern FUN_0202ABEC
+.extern FUN_0202ABF8
+.extern FUN_0202AC08
+.extern FUN_0202AC10
+.extern FUN_0202AC18
+.extern FUN_0202E4F0
+.extern FUN_02033288
+.extern FUN_020332DC
+.extern FUN_020335E0
+.extern FUN_020337C8
+.extern FUN_02033EEC
+.extern FUN_0206B384
+.extern FUN_020888BC
+.extern FUN_020888CC
+.extern FUN_0200CA7C
+.extern FUN_02033F04
+.extern FUN_02068E1C
+.extern FUN_0202A524
+.extern FUN_0202A60C
+.extern FUN_0202A6B4
+.extern FUN_0202A754
+.extern FUN_0202A784
+.extern FUN_0202A838
+.extern MOD79_022122E4
+.extern MOD79_02212308
+.extern MOD79_022123A8
+.extern MOD79_02212474
+.extern MOD79_02212480
+.extern FUN_02015D88
+.extern FUN_02016444
+.extern FUN_02016454
+.extern FUN_0201AB1C
+.extern FUN_0201AB20
+.extern FUN_020224D8
+.extern FUN_0202251C
+.extern FUN_02023820
+.extern FUN_0202AC28
+.extern FUN_0202AC64
+.extern FUN_0202AC98
+.extern FUN_0202AD08
+.extern FUN_0202ADC8
+.extern FUN_0202ADF0
+.extern FUN_0202AE0C
+.extern FUN_0202AE4C
+.extern FUN_0202AE70
+.extern FUN_0202AE90
+.extern FUN_0202AEF4
+.extern FUN_0202AF24
+.extern FUN_0202AF50
+.extern FUN_0202AF60
+.extern FUN_0202BF7C
+.extern FUN_0202BF90
+.extern FUN_0202C028
+.extern FUN_0202C060
+.extern FUN_0202C094
+.extern FUN_0202C0B8
+.extern FUN_0202F10C
+.extern FUN_0202F124
+.extern FUN_02031C74
+.extern FUN_02031CA8
+.extern FUN_02032D44
+.extern FUN_02032D80
+.extern FUN_02032D9C
+.extern FUN_02033310
+.extern FUN_02033364
+.extern FUN_02068800
+.extern FUN_0206E6D8
+.extern FUN_02089F24
+.extern SetCustomAllocator
+.extern FUN_02008D04
+.extern FUN_02024DAC
+.extern FUN_020910EC
+.extern FUN_0209521C
+.extern FUN_020952AC
+.extern FUN_02009CDC
+.extern FUN_0201C348
+.extern CTRDG_CpuCopy16
+.extern CTRDG_CpuCopy32
+.extern CTRDG_CpuCopy8
+.extern CTRDG_Enable
+.extern CTRDG_GetAgbGameCode
+.extern CTRDG_GetAgbMakerCode
+.extern CTRDG_IdentifyAgbBackup
+.extern CTRDG_IsAgbCartridge
+.extern CTRDG_Read32
+.extern CTRDG_ReadAgbFlash
+.extern CTRDG_TerminateForPulledOut
+.extern CTRDG_WriteAndVerifyAgbFlashAsync
+.extern SVC_GetCRC16
+.extern MOD04_021DE330
+.extern MOD04_021DDB40
+.extern MOD04_021DDF40
+.extern MOD04_021DE2D0
+.extern MOD04_021DE308
+.extern MOD04_021DE364
+.extern MOD04_021DE3AC
+.extern MOD04_021DE3D0
+.extern MOD04_021DE404
+.extern MOD04_021DE45C
+.extern RTC_ConvertDayToDate
+.extern MOD04_021DD808
+.extern MOD04_021DD984
+.extern MOD04_021DD9DC
+.extern MOD04_021DDF4C
+.extern MOD04_021DE05C
+.extern MOD04_021DE1F8
+.extern MOD56_0221244C
+.extern MOD79_022122E4
+.extern MOD79_02212308
+.extern MOD79_022123A8
+.extern MOD79_02212474
+.extern MOD79_02212480
+.extern FUN_02029B40
+.extern FUN_02029C00
+.extern FUN_02088D1C
+.extern FUN_02088D20
+.extern FUN_02088D4C
+.extern FUN_02088D68
+.extern FUN_02088D84
+.extern FUN_02088DA0
+.extern FUN_02088DBC
+.extern FUN_020294F4
+.extern FUN_02021C38
+.extern FUN_0202822C
+.extern FUN_020282E8
+.extern FUN_020283C0
+.extern FUN_020283E8
+.extern FUN_02033918
+.extern FUN_02096D68
+.extern FUN_02096E24
+.extern FUN_0202B390
+.extern FUN_0202B3F8
+.extern FUN_0202BCF4
+.extern FUN_020328E4
+.extern FUN_020336C0
+.extern FUN_020336C8
+.extern FUN_020536C8
+.extern FUN_02053708
+.extern FUN_02066840
+.extern FUN_02084098
+.extern FUN_020048A0
+.extern FUN_020048BC
+.extern FUN_02014630
+.extern FUN_02024EF4
+.extern FUN_02004D60
+.extern FUN_020181EC
+.extern FUN_02024FD8
+.extern FUN_02024FE0
+.extern FUN_02025010
+.extern FUN_02025018
+.extern FUN_02025034
+.extern FUN_02025048
+.extern FUN_02025050
+.extern FUN_02025064
+.extern FUN_0202506C
+.extern FUN_0202508C
.extern SDK_OVERLAY_MODULE_00_ID
.extern SDK_OVERLAY_MODULE_01_ID
.extern SDK_OVERLAY_MODULE_02_ID
diff --git a/arm9/lib/include/CARD_backup.h b/arm9/lib/include/CARD_backup.h new file mode 100644 index 00000000..de594beb --- /dev/null +++ b/arm9/lib/include/CARD_backup.h @@ -0,0 +1,6 @@ +#ifndef NITRO_CARD_BACKUP_H_ +#define NITRO_CARD_BACKUP_H_ + +BOOL CARD_TryWaitBackupAsync(void); + +#endif //NITRO_CARD_BACKUP_H_ diff --git a/arm9/lib/include/CTRDG_common.h b/arm9/lib/include/CTRDG_common.h new file mode 100644 index 00000000..c83602b8 --- /dev/null +++ b/arm9/lib/include/CTRDG_common.h @@ -0,0 +1,6 @@ +#ifndef NITRO_CTRDG_COMMON_H_ +#define NITRO_CTRDG_COMMON_H_ + +BOOL CTRDG_IsPulledOut(void); + +#endif //NITRO_CTRDG_COMMON_H_ diff --git a/arm9/lib/include/FS_overlay.h b/arm9/lib/include/FS_overlay.h index 6025d04a..14c7ce66 100644 --- a/arm9/lib/include/FS_overlay.h +++ b/arm9/lib/include/FS_overlay.h @@ -1,6 +1,10 @@ #ifndef NITRO_FS_OVERLAY_H_ #define NITRO_FS_OVERLAY_H_ +#if defined(__cplusplus) +extern "C" { +#endif + #include "nitro.h" #include "MI_exMemory.h" #include "FS_file.h" @@ -8,7 +12,10 @@ typedef u32 FSOverlayID; -typedef void (*FSOverlayInitFunc) (void); +#define FS_EXTERN_OVERLAY(name) extern u32 SDK_OVERLAY_ ## name ## _ID[1] +#define FS_OVERLAY_ID(name) ((u32)&(SDK_OVERLAY_ ## name ## _ID)) + +typedef void (*FSOverlayInitFunc)(void); typedef struct FSOverlayInfoHeader { @@ -19,8 +26,8 @@ typedef struct FSOverlayInfoHeader FSOverlayInitFunc *sinit_init; FSOverlayInitFunc *sinit_init_end; u32 file_id; - u32 compressed:24; - u32 flag:8; + u32 compressed: 24; + u32 flag: 8; } FSOverlayInfoHeader; typedef struct FSOverlayInfo @@ -30,26 +37,35 @@ typedef struct FSOverlayInfo CARDRomRegion file_pos; } FSOverlayInfo; -static inline u8 *const FS_GetOverlayAddress(FSOverlayInfo * p_ovi) +static inline u8 *const FS_GetOverlayAddress(FSOverlayInfo *p_ovi) { return p_ovi->header.ram_address; } -static inline u32 const FS_GetOverlayImageSize(FSOverlayInfo * p_ovi) +static inline u32 const FS_GetOverlayImageSize(FSOverlayInfo *p_ovi) { return p_ovi->header.ram_size; } -static inline u32 const FS_GetOverlayTotalSize(FSOverlayInfo * p_ovi) +static inline u32 const FS_GetOverlayTotalSize(FSOverlayInfo *p_ovi) { return p_ovi->header.ram_size + p_ovi->header.bss_size; } BOOL FS_LoadOverlayInfo(FSOverlayInfo *p_ovi, MIProcessor target, FSOverlayID id); + BOOL FS_LoadOverlay(MIProcessor target, FSOverlayID id); + BOOL FS_UnloadOverlay(MIProcessor target, FSOverlayID id); + BOOL FS_LoadOverlayImage(FSOverlayInfo *p_ovi); + void FS_StartOverlay(FSOverlayInfo *p_ovi); + BOOL FS_LoadOverlayImageAsync(FSOverlayInfo *p_ovi, FSFile *p_file); +#if defined(__cplusplus) +}; +#endif + #endif //NITRO_FS_OVERLAY_H_ diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/include/OS_interrupt.h index b8425b4e..21ce2ea0 100644 --- a/arm9/lib/include/OS_interrupt.h +++ b/arm9/lib/include/OS_interrupt.h @@ -19,11 +19,12 @@ typedef struct typedef u32 OSIrqMask; extern OSIrqFunction OS_IRQTable[]; -extern OSIrqCallbackInfo OSi_IrqCallbackInfo[7+1]; +extern OSIrqCallbackInfo OSi_IrqCallbackInfo[8]; void OS_InitIrqTable(); void OS_SetIrqFunction(OSIrqMask intrBit, OSIrqFunction function); OSIrqFunction OS_GetIrqFunction(OSIrqMask intrBit); void OSi_EnterDmaCallback(u32 dmaNo, void (*callback) (void *), void *arg); +void OSi_EnterTimerCallback(u32 timerNo, void (*callback) (void *), void *arg); #endif //POKEDIAMOND_OS_INTERRUPT_H diff --git a/arm9/lib/include/OS_printf.h b/arm9/lib/include/OS_printf.h index 7c02252b..7c2e09b4 100644 --- a/arm9/lib/include/OS_printf.h +++ b/arm9/lib/include/OS_printf.h @@ -5,4 +5,11 @@ #define OS_TPanic(...) OS_Terminate() #define OS_TWarning(...) ((void)0) +#include "types.h" + +s32 OS_SPrintf(s8 *buffer, const s8 *format, ...); +s32 OS_VSPrintf(s8 *buffer, const s8 *format, void *args); +s32 OS_SNPrintf(s8 *buffer, s32 bufsz, const s8 *format, ...); +s32 OS_VSNPrintf(s8 *buffer, s32 bufsz, const s8 *format, void *args); + #endif //NITRO_OS_PRINTF_H_ diff --git a/arm9/lib/include/PAD_pad.h b/arm9/lib/include/PAD_pad.h new file mode 100644 index 00000000..0cb8a6f0 --- /dev/null +++ b/arm9/lib/include/PAD_pad.h @@ -0,0 +1,38 @@ +#ifndef NITRO_PAD_PAD_H_ +#define NITRO_PAD_PAD_H_ + + +//================================================================================ +// BUTTONS + +//---- masked value +#define PAD_PLUS_KEY_MASK 0x00f0 // mask : cross keys +#define PAD_BUTTON_MASK 0x2f0f // mask : buttons +#define PAD_DEBUG_BUTTON_MASK 0x2000 // mask : debug button +#define PAD_ALL_MASK 0x2fff // mask : all buttons +#define PAD_RCNTPORT_MASK 0x2c00 // mask : factors ARM7 can read from RCNT register +#define PAD_KEYPORT_MASK 0x03ff // mask : factors ARM7/9 can read from KEY register + +#define PAD_DETECT_FOLD_MASK 0x8000 // mask : folding + +//---- button and key +#define PAD_BUTTON_A 0x0001 // A +#define PAD_BUTTON_B 0x0002 // B +#define PAD_BUTTON_SELECT 0x0004 // SELECT +#define PAD_BUTTON_START 0x0008 // START +#define PAD_KEY_RIGHT 0x0010 // RIGHT of cross key +#define PAD_KEY_LEFT 0x0020 // LEFT of cross key +#define PAD_KEY_UP 0x0040 // UP of cross key +#define PAD_KEY_DOWN 0x0080 // DOWN of cross key +#define PAD_BUTTON_R 0x0100 // R +#define PAD_BUTTON_L 0x0200 // L +#define PAD_BUTTON_X 0x0400 // X +#define PAD_BUTTON_Y 0x0800 // Y +#define PAD_BUTTON_DEBUG 0x2000 // Debug button + +static inline BOOL PAD_DetectFold(void) +{ + return (BOOL)((*(vu16 *)HW_BUTTON_XY_BUF & PAD_DETECT_FOLD_MASK) >> 15); +} + +#endif //NITRO_PAD_PAD_H_ diff --git a/arm9/lib/include/SPI_pm.h b/arm9/lib/include/SPI_pm.h new file mode 100644 index 00000000..b5063ed8 --- /dev/null +++ b/arm9/lib/include/SPI_pm.h @@ -0,0 +1,38 @@ +#ifndef NITRO_SPI_PM_H_ +#define NITRO_SPI_PM_H_ + +ENUMS_ALWAYS_INT_ON + +#define PM_TRIGGER_KEY (1 << 0) +#define PM_TRIGGER_RTC_ALARM (1 << 1) +#define PM_TRIGGER_COVER_OPEN (1 << 2) +#define PM_TRIGGER_CARD (1 << 3) +#define PM_TRIGGER_CARTRIDGE (1 << 4) +typedef u32 PMWakeUpTrigger; + +#define PM_PAD_LOGIC_OR (0 << REG_PAD_KEYCNT_LOGIC_SHIFT) +#define PM_PAD_LOGIC_AND (1 << REG_PAD_KEYCNT_LOGIC_SHIFT) +typedef u32 PMLogic; + +typedef enum +{ + PM_BACKLIGHT_OFF = 0, + PM_BACKLIGHT_ON = 1 +} PMBackLightSwitch; + +typedef enum +{ + PM_LCD_TOP = 0, + PM_LCD_BOTTOM = 1, + PM_LCD_ALL = 2 +} +PMLCDTarget; + +void PM_GetBackLight(PMBackLightSwitch * top, PMBackLightSwitch * bottom); +void PM_GoSleepMode(PMWakeUpTrigger trigger, PMLogic logic, u16 keyPattern); +u32 PM_SetBackLight(PMLCDTarget target, PMBackLightSwitch status); +void PM_ForceToPowerOff(void); + +ENUMS_ALWAYS_INT_RESET + +#endif //NITRO_SPI_PM_H_ diff --git a/arm9/lib/include/gx.h b/arm9/lib/include/gx.h index c4be4deb..5abc2693 100644 --- a/arm9/lib/include/gx.h +++ b/arm9/lib/include/gx.h @@ -22,7 +22,6 @@ void MIi_CpuClear32(u32, void *, u32); //Todos before PR //TODO: Add defines for GX commands, add structs/unions for HW registers -//TODO: Add ARM_FUNC attributes #define HW_REG_DIV_NUMER 0x04000290 #define HW_REG_DIV_DENOM 0x04000298 diff --git a/arm9/lib/include/registers.h b/arm9/lib/include/registers.h index 45b36334..598ba3f9 100644 --- a/arm9/lib/include/registers.h +++ b/arm9/lib/include/registers.h @@ -7,49 +7,472 @@ #include "types.h" -#define HW_REG_BASE 0x04000000 -#define REG_VCOUNT_OFFSET 0x006 -#define REG_VCOUNT_ADDR (HW_REG_BASE + REG_VCOUNT_OFFSET) -#define reg_GX_VCOUNT (*(REGType16v *)REG_VCOUNT_ADDR) - -#define REG_KEYINPUT_OFFSET 0x130 -#define REG_KEYINPUT_ADDR (HW_REG_BASE + REG_KEYINPUT_OFFSET) -#define reg_PAD_KEYINPUT (*(REGType16v *)REG_KEYINPUT_ADDR) - -#define REG_DIVCNT_OFFSET 0x280 -#define REG_DIVCNT_ADDR (HW_REG_BASE + REG_DIVCNT_OFFSET) -#define reg_CP_DIVCNT (*(REGType16v *)REG_DIVCNT_ADDR) - -#define REG_DIV_NUMER_OFFSET 0x290 -#define REG_DIV_NUMER_ADDR (HW_REG_BASE + REG_DIV_NUMER_OFFSET) -#define reg_CP_DIV_NUMER (*(REGType64v *)REG_DIV_NUMER_ADDR) - -#define REG_DIV_DENOM_OFFSET 0x298 -#define REG_DIV_DENOM_ADDR (HW_REG_BASE + REG_DIV_DENOM_OFFSET) -#define reg_CP_DIV_DENOM (*(REGType64v *)REG_DIV_DENOM_ADDR) - -#define REG_DIV_RESULT_OFFSET 0x2A0 -#define REG_DIV_RESULT_ADDR (HW_REG_BASE + REG_DIV_RESULT_OFFSET) -#define reg_CP_DIV_RESULT (*(REGType64v *)REG_DIV_RESULT_ADDR) - -#define REG_DIVREM_RESULT_OFFSET 0x2A8 -#define REG_DIVREM_RESULT_ADDR (HW_REG_BASE + REG_DIVREM_RESULT_OFFSET) -#define reg_CP_DIVREM_RESULT (*(REGType64v *)REG_DIVREM_RESULT_ADDR) - -#define REG_SQRTCNT_OFFSET 0x2B0 -#define REG_SQRTCNT_ADDR (HW_REG_BASE + REG_SQRTCNT_OFFSET) -#define reg_CP_SQRTCNT (*(REGType16v *)REG_SQRTCNT_ADDR) - -#define REG_SQRT_RESULT_OFFSET 0x2B4 -#define REG_SQRT_RESULT_ADDR (HW_REG_BASE + REG_SQRT_RESULT_OFFSET) -#define reg_CP_SQRT_RESULT (*(REGType32v *)REG_SQRT_RESULT_ADDR) - -#define REG_SQRT_PARAM_OFFSET 0x2B8 -#define REG_SQRT_PARAM_ADDR (HW_REG_BASE + REG_SQRT_PARAM_OFFSET) -#define reg_CP_SQRT_PARAM (*(REGType64v *)REG_SQRT_PARAM_ADDR) - -#define REG_GXSTAT_OFFSET 0x600 -#define REG_GXSTAT_ADDR (HW_REG_BASE + REG_GXSTAT_OFFSET) -#define reg_G3X_GXSTAT (*(REGType32v *)REG_GXSTAT_ADDR) +#define reg_GX_DISPCNT (*(REGType32v *)0x4000000) +#define reg_GX_DISPSTAT (*(REGType16v *)0x4000004) +#define reg_GX_VCOUNT (*(REGType16v *)0x4000006) + +#define reg_G2_BG0CNT (*(REGType16v *)0x4000008) +#define reg_G2_BG1CNT (*(REGType16v *)0x400000a) +#define reg_G2_BG2CNT (*(REGType16v *)0x400000c) +#define reg_G2_BG3CNT (*(REGType16v *)0x400000e) +#define reg_G2_BG0OFS (*(REGType32v *)0x4000010) +#define reg_G2_BG0HOFS (*(REGType16v *)0x4000010) +#define reg_G2_BG0VOFS (*(REGType16v *)0x4000012) +#define reg_G2_BG1OFS (*(REGType32v *)0x4000014) +#define reg_G2_BG1HOFS (*(REGType16v *)0x4000014) +#define reg_G2_BG1VOFS (*(REGType16v *)0x4000016) +#define reg_G2_BG2OFS (*(REGType32v *)0x4000018) +#define reg_G2_BG2HOFS (*(REGType16v *)0x4000018) +#define reg_G2_BG2VOFS (*(REGType16v *)0x400001a) +#define reg_G2_BG3OFS (*(REGType32v *)0x400001c) +#define reg_G2_BG3HOFS (*(REGType16v *)0x400001c) +#define reg_G2_BG3VOFS (*(REGType16v *)0x400001e) +#define reg_G2_BG2PA (*(REGType16v *)0x4000020) +#define reg_G2_BG2PB (*(REGType16v *)0x4000022) +#define reg_G2_BG2PC (*(REGType16v *)0x4000024) +#define reg_G2_BG2PD (*(REGType16v *)0x4000026) +#define reg_G2_BG2X (*(REGType32v *)0x4000028) +#define reg_G2_BG2Y (*(REGType32v *)0x400002c) +#define reg_G2_BG3PA (*(REGType16v *)0x4000030) +#define reg_G2_BG3PB (*(REGType16v *)0x4000032) +#define reg_G2_BG3PC (*(REGType16v *)0x4000034) +#define reg_G2_BG3PD (*(REGType16v *)0x4000036) +#define reg_G2_BG3X (*(REGType32v *)0x4000038) +#define reg_G2_BG3Y (*(REGType32v *)0x400003c) +#define reg_G2_WIN0H (*(REGType16v *)0x4000040) +#define reg_G2_WIN1H (*(REGType16v *)0x4000042) +#define reg_G2_WIN0V (*(REGType16v *)0x4000044) +#define reg_G2_WIN1V (*(REGType16v *)0x4000046) +#define reg_G2_WININ (*(REGType16v *)0x4000048) +#define reg_G2_WINOUT (*(REGType16v *)0x400004a) +#define reg_G2_MOSAIC (*(REGType16v *)0x400004c) +#define reg_G2_BLDCNT (*(REGType16v *)0x4000050) +#define reg_G2_BLDALPHA (*(REGType16v *)0x4000052) +#define reg_G2_BLDY (*(REGType16v *)0x4000054) + +#define reg_G3X_DISP3DCNT (*(REGType16v *)0x4000060) + +#define reg_GX_DISPCAPCNT (*(REGType32v *)0x4000064) +#define reg_GX_DISP_MMEM_FIFO (*(REGType32v *)0x4000068) +#define reg_GX_DISP_MMEM_FIFO_L (*(REGType16v *)0x4000068) +#define reg_GX_DISP_MMEM_FIFO_H (*(REGType16v *)0x400006a) +#define reg_GX_MASTER_BRIGHT (*(REGType16v *)0x400006c) +#define reg_GX_TVOUTCNT (*(REGType16v *)0x4000070) + +#define reg_MI_DMA0SAD (*(REGType32v *)0x40000b0) +#define reg_MI_DMA0DAD (*(REGType32v *)0x40000b4) +#define reg_MI_DMA0CNT (*(REGType32v *)0x40000b8) +#define reg_MI_DMA1SAD (*(REGType32v *)0x40000bc) +#define reg_MI_DMA1DAD (*(REGType32v *)0x40000c0) +#define reg_MI_DMA1CNT (*(REGType32v *)0x40000c4) +#define reg_MI_DMA2SAD (*(REGType32v *)0x40000c8) +#define reg_MI_DMA2DAD (*(REGType32v *)0x40000cc) +#define reg_MI_DMA2CNT (*(REGType32v *)0x40000d0) +#define reg_MI_DMA3SAD (*(REGType32v *)0x40000d4) +#define reg_MI_DMA3DAD (*(REGType32v *)0x40000d8) +#define reg_MI_DMA3CNT (*(REGType32v *)0x40000dc) +#define reg_MI_DMA0_CLR_DATA (*(REGType32v *)0x40000e0) +#define reg_MI_DMA1_CLR_DATA (*(REGType32v *)0x40000e4) +#define reg_MI_DMA2_CLR_DATA (*(REGType32v *)0x40000e8) +#define reg_MI_DMA3_CLR_DATA (*(REGType32v *)0x40000ec) + +#define reg_OS_TM0CNT_L (*(REGType16v *)0x4000100) +#define reg_OS_TM0CNT_H (*(REGType16v *)0x4000102) +#define reg_OS_TM1CNT_L (*(REGType16v *)0x4000104) +#define reg_OS_TM1CNT_H (*(REGType16v *)0x4000106) +#define reg_OS_TM2CNT_L (*(REGType16v *)0x4000108) +#define reg_OS_TM2CNT_H (*(REGType16v *)0x400010a) +#define reg_OS_TM3CNT_L (*(REGType16v *)0x400010c) +#define reg_OS_TM3CNT_H (*(REGType16v *)0x400010e) + +#define reg_EXI_SIODATA32 (*(REGType32v *)0x4000120) +#define reg_EXI_SIOCNT (*(REGType16v *)0x4000128) +#define reg_EXI_SIOSEL (*(REGType32v *)0x400012c) + +#define reg_PAD_KEYINPUT (*(REGType16v *)0x4000130) +#define reg_PAD_KEYCNT (*(REGType16v *)0x4000132) + +#define reg_PXI_SUBPINTF (*(REGType16v *)0x4000180) +#define reg_PXI_SUBP_FIFO_CNT (*(REGType16v *)0x4000184) +#define reg_PXI_SEND_FIFO (*(REGType32v *)0x4000188) + +#define reg_MI_MCCNT0 (*(REGType16v *)0x40001a0) +#define reg_MI_MCD0 (*(REGType16v *)0x40001a2) +#define reg_MI_MCCNT1 (*(REGType32v *)0x40001a4) +#define reg_MI_MCCMD0 (*(REGType32v *)0x40001a8) +#define reg_MI_MCCMD1 (*(REGType32v *)0x40001ac) +#define reg_MI_EXMEMCNT (*(REGType16v *)0x4000204) + +#define reg_OS_IME (*(REGType16v *)0x4000208) +#define reg_OS_IE (*(REGType32v *)0x4000210) +#define reg_OS_IF (*(REGType32v *)0x4000214) +#define reg_OS_PAUSE (*(REGType16v *)0x4000300) + +#define reg_GX_VRAMCNT (*(REGType32v *)0x4000240) +#define reg_GX_VRAMCNT_A (*(REGType8v *)0x4000240) +#define reg_GX_VRAMCNT_B (*(REGType8v *)0x4000241) +#define reg_GX_VRAMCNT_C (*(REGType8v *)0x4000242) +#define reg_GX_VRAMCNT_D (*(REGType8v *)0x4000243) +#define reg_GX_WVRAMCNT (*(REGType32v *)0x4000244) +#define reg_GX_VRAMCNT_E (*(REGType8v *)0x4000244) +#define reg_GX_VRAMCNT_F (*(REGType8v *)0x4000245) +#define reg_GX_VRAMCNT_G (*(REGType8v *)0x4000246) +#define reg_GX_VRAMCNT_WRAM (*(REGType8v *)0x4000247) +#define reg_GX_VRAM_HI_CNT (*(REGType16v *)0x4000248) +#define reg_GX_VRAMCNT_H (*(REGType8v *)0x4000248) +#define reg_GX_VRAMCNT_I (*(REGType8v *)0x4000249) + +#define reg_CP_DIVCNT (*(REGType16v *)0x4000280) +#define reg_CP_DIV_NUMER (*(REGType64v *)0x4000290) +#define reg_CP_DIV_NUMER_L (*(REGType32v *)0x4000290) +#define reg_CP_DIV_NUMER_H (*(REGType32v *)0x4000294) +#define reg_CP_DIV_DENOM (*(REGType64v *)0x4000298) +#define reg_CP_DIV_DENOM_L (*(REGType32v *)0x4000298) +#define reg_CP_DIV_DENOM_H (*(REGType32v *)0x400029c) +#define reg_CP_DIV_RESULT (*(REGType64v *)0x40002A0) +#define reg_CP_DIV_RESULT_L (*(REGType32v *)0x40002A0) +#define reg_CP_DIV_RESULT_H (*(REGType32v *)0x40002A4) +#define reg_CP_DIVREM_RESULT (*(REGType64v *)0x40002A8) +#define reg_CP_DIVREM_RESULT_L (*(REGType32v *)0x40002A8) +#define reg_CP_DIVREM_RESULT_H (*(REGType32v *)0x40002Ac) +#define reg_CP_SQRTCNT (*(REGType16v *)0x40002B0) +#define reg_CP_SQRT_RESULT (*(REGType32v *)0x40002B4) +#define reg_CP_SQRT_PARAM (*(REGType64v *)0x40002B8) +#define reg_CP_SQRT_PARAM_L (*(REGType32v *)0x40002B8) +#define reg_CP_SQRT_PARAM_H (*(REGType32v *)0x40002Bc) + +#define reg_GX_POWCNT (*(REGType16v *)0x4000304) + +#define reg_G3X_RDLINES_COUNT (*(const REGType16v *)0x4000320) +#define reg_G3X_EDGE_COLOR_0 (*(REGType32v *)0x4000330) +#define reg_G3X_EDGE_COLOR_0_L (*(REGType16v *)0x4000330) +#define reg_G3X_EDGE_COLOR_0_H (*(REGType16v *)0x4000332) +#define reg_G3X_EDGE_COLOR_1 (*(REGType32v *)0x4000334) +#define reg_G3X_EDGE_COLOR_1_L (*(REGType16v *)0x4000334) +#define reg_G3X_EDGE_COLOR_1_H (*(REGType16v *)0x4000336) +#define reg_G3X_EDGE_COLOR_2 (*(REGType32v *)0x4000338) +#define reg_G3X_EDGE_COLOR_2_L (*(REGType16v *)0x4000338) +#define reg_G3X_EDGE_COLOR_2_H (*(REGType16v *)0x400033a) +#define reg_G3X_EDGE_COLOR_3 (*(REGType32v *)0x400033c) +#define reg_G3X_EDGE_COLOR_3_L (*(REGType16v *)0x400033c) +#define reg_G3X_EDGE_COLOR_3_H (*(REGType16v *)0x400033e) +#define reg_G3X_ALPHA_TEST_REF (*(REGType16v *)0x4000340) +#define reg_G3X_CLEAR_COLOR (*(REGType32v *)0x4000350) +#define reg_G3X_CLEAR_DEPTH (*(REGType16v *)0x4000354) +#define reg_G3X_CLRIMAGE_OFFSET (*(REGType16v *)0x4000356) +#define reg_G3X_FOG_COLOR (*(REGType32v *)0x4000358) +#define reg_G3X_FOG_OFFSET (*(REGType16v *)0x400035c) +#define reg_G3X_FOG_TABLE_0 (*(REGType32v *)0x4000360) +#define reg_G3X_FOG_TABLE_0_L (*(REGType16v *)0x4000360) +#define reg_G3X_FOG_TABLE_0_H (*(REGType16v *)0x4000362) +#define reg_G3X_FOG_TABLE_1 (*(REGType32v *)0x4000364) +#define reg_G3X_FOG_TABLE_1_L (*(REGType16v *)0x4000364) +#define reg_G3X_FOG_TABLE_1_H (*(REGType16v *)0x4000366) +#define reg_G3X_FOG_TABLE_2 (*(REGType32v *)0x4000368) +#define reg_G3X_FOG_TABLE_2_L (*(REGType16v *)0x4000368) +#define reg_G3X_FOG_TABLE_2_H (*(REGType16v *)0x400036a) +#define reg_G3X_FOG_TABLE_3 (*(REGType32v *)0x400036c) +#define reg_G3X_FOG_TABLE_3_L (*(REGType16v *)0x400036c) +#define reg_G3X_FOG_TABLE_3_H (*(REGType16v *)0x400036e) +#define reg_G3X_FOG_TABLE_4 (*(REGType32v *)0x4000370) +#define reg_G3X_FOG_TABLE_4_L (*(REGType16v *)0x4000370) +#define reg_G3X_FOG_TABLE_4_H (*(REGType16v *)0x4000372) +#define reg_G3X_FOG_TABLE_5 (*(REGType32v *)0x4000374) +#define reg_G3X_FOG_TABLE_5_L (*(REGType16v *)0x4000374) +#define reg_G3X_FOG_TABLE_5_H (*(REGType16v *)0x4000376) +#define reg_G3X_FOG_TABLE_6 (*(REGType32v *)0x4000378) +#define reg_G3X_FOG_TABLE_6_L (*(REGType16v *)0x4000378) +#define reg_G3X_FOG_TABLE_6_H (*(REGType16v *)0x400037a) +#define reg_G3X_FOG_TABLE_7 (*(REGType32v *)0x400037c) +#define reg_G3X_FOG_TABLE_7_L (*(REGType16v *)0x400037c) +#define reg_G3X_FOG_TABLE_7_H (*(REGType16v *)0x400037e) +#define reg_G3X_TOON_TABLE_0 (*(REGType32v *)0x4000380) +#define reg_G3X_TOON_TABLE_0_L (*(REGType16v *)0x4000380) +#define reg_G3X_TOON_TABLE_0_H (*(REGType16v *)0x4000382) +#define reg_G3X_TOON_TABLE_1 (*(REGType32v *)0x4000384) +#define reg_G3X_TOON_TABLE_1_L (*(REGType16v *)0x4000384) +#define reg_G3X_TOON_TABLE_1_H (*(REGType16v *)0x4000386) +#define reg_G3X_TOON_TABLE_2 (*(REGType32v *)0x4000388) +#define reg_G3X_TOON_TABLE_2_L (*(REGType16v *)0x4000388) +#define reg_G3X_TOON_TABLE_2_H (*(REGType16v *)0x400038a) +#define reg_G3X_TOON_TABLE_3 (*(REGType32v *)0x400038c) +#define reg_G3X_TOON_TABLE_3_L (*(REGType16v *)0x400038c) +#define reg_G3X_TOON_TABLE_3_H (*(REGType16v *)0x400038e) +#define reg_G3X_TOON_TABLE_4 (*(REGType32v *)0x4000390) +#define reg_G3X_TOON_TABLE_4_L (*(REGType16v *)0x4000390) +#define reg_G3X_TOON_TABLE_4_H (*(REGType16v *)0x4000392) +#define reg_G3X_TOON_TABLE_5 (*(REGType32v *)0x4000394) +#define reg_G3X_TOON_TABLE_5_L (*(REGType16v *)0x4000394) +#define reg_G3X_TOON_TABLE_5_H (*(REGType16v *)0x4000396) +#define reg_G3X_TOON_TABLE_7 (*(REGType32v *)0x400039c) +#define reg_G3X_TOON_TABLE_7_L (*(REGType16v *)0x400039c) +#define reg_G3X_TOON_TABLE_7_H (*(REGType16v *)0x400039e) +#define reg_G3X_TOON_TABLE_8 (*(REGType32v *)0x40003a0) +#define reg_G3X_TOON_TABLE_8_L (*(REGType16v *)0x40003a0) +#define reg_G3X_TOON_TABLE_8_H (*(REGType16v *)0x40003a2) +#define reg_G3X_TOON_TABLE_9 (*(REGType32v *)0x40003a4) +#define reg_G3X_TOON_TABLE_9_L (*(REGType16v *)0x40003a4) +#define reg_G3X_TOON_TABLE_9_H (*(REGType16v *)0x40003a6) +#define reg_G3X_TOON_TABLE_10 (*(REGType32v *)0x40003a8) +#define reg_G3X_TOON_TABLE_10_L (*(REGType16v *)0x40003a8) +#define reg_G3X_TOON_TABLE_10_H (*(REGType16v *)0x40003aa) +#define reg_G3X_TOON_TABLE_11 (*(REGType32v *)0x40003ac) +#define reg_G3X_TOON_TABLE_11_L (*(REGType16v *)0x40003ac) +#define reg_G3X_TOON_TABLE_11_H (*(REGType16v *)0x40003ae) +#define reg_G3X_TOON_TABLE_12 (*(REGType32v *)0x40003b0) +#define reg_G3X_TOON_TABLE_12_L (*(REGType16v *)0x40003b0) +#define reg_G3X_TOON_TABLE_12_H (*(REGType16v *)0x40003b2) +#define reg_G3X_TOON_TABLE_13 (*(REGType32v *)0x40003b4) +#define reg_G3X_TOON_TABLE_13_L (*(REGType16v *)0x40003b4) +#define reg_G3X_TOON_TABLE_13_H (*(REGType16v *)0x40003b6) +#define reg_G3X_TOON_TABLE_14 (*(REGType32v *)0x40003b8) +#define reg_G3X_TOON_TABLE_14_L (*(REGType16v *)0x40003b8) +#define reg_G3X_TOON_TABLE_14_H (*(REGType16v *)0x40003ba) +#define reg_G3X_TOON_TABLE_15 (*(REGType32v *)0x40003bc) +#define reg_G3X_TOON_TABLE_15_L (*(REGType16v *)0x40003bc) +#define reg_G3X_TOON_TABLE_15_H (*(REGType16v *)0x40003be) +#define reg_G3X_GXFIFO (*(REGType32v *)0x4000400) + +#define reg_G3_MTX_MODE (*(REGType32v *)0x4000440) +#define reg_G3_MTX_PUSH (*(REGType32v *)0x4000444) +#define reg_G3_MTX_POP (*(REGType32v *)0x4000448) +#define reg_G3_MTX_STORE (*(REGType32v *)0x400044c) +#define reg_G3_MTX_RESTORE (*(REGType32v *)0x4000450) +#define reg_G3_MTX_IDENTITY (*(REGType32v *)0x4000454) +#define reg_G3_MTX_LOAD_4x4 (*(REGType32v *)0x4000458) +#define reg_G3_MTX_LOAD_4x3 (*(REGType32v *)0x400045c) +#define reg_G3_MTX_MULT_4x4 (*(REGType32v *)0x4000460) +#define reg_G3_MTX_MULT_4x3 (*(REGType32v *)0x4000464) +#define reg_G3_MTX_MULT_3x3 (*(REGType32v *)0x4000468) +#define reg_G3_MTX_SCALE (*(REGType32v *)0x400046c) +#define reg_G3_MTX_TRANS (*(REGType32v *)0x4000470) +#define reg_G3_COLOR (*(REGType32v *)0x4000480) +#define reg_G3_NORMAL (*(REGType32v *)0x4000484) +#define reg_G3_TEXCOORD (*(REGType32v *)0x4000488) +#define reg_G3_VTX_16 (*(REGType32v *)0x400048c) +#define reg_G3_VTX_10 (*(REGType32v *)0x4000490) +#define reg_G3_VTX_XY (*(REGType32v *)0x4000494) +#define reg_G3_VTX_XZ (*(REGType32v *)0x4000498) +#define reg_G3_VTX_YZ (*(REGType32v *)0x400049c) +#define reg_G3_VTX_DIFF (*(REGType32v *)0x40004a0) +#define reg_G3_POLYGON_ATTR (*(REGType32v *)0x40004a4) +#define reg_G3_TEXIMAGE_PARAM (*(REGType32v *)0x40004a8) +#define reg_G3_TEXPLTT_BASE (*(REGType32v *)0x40004ac) +#define reg_G3_DIF_AMB (*(REGType32v *)0x40004c0) +#define reg_G3_SPE_EMI (*(REGType32v *)0x40004c4) +#define reg_G3_LIGHT_VECTOR (*(REGType32v *)0x40004c8) +#define reg_G3_LIGHT_COLOR (*(REGType32v *)0x40004cc) +#define reg_G3_SHININESS (*(REGType32v *)0x40004d0) +#define reg_G3_BEGIN_VTXS (*(REGType32v *)0x4000500) +#define reg_G3_END_VTXS (*(REGType32v *)0x4000504) +#define reg_G3_SWAP_BUFFERS (*(REGType32v *)0x4000540) +#define reg_G3_VIEWPORT (*(REGType32v *)0x4000580) +#define reg_G3_BOX_TEST (*(REGType32v *)0x40005c0) +#define reg_G3_POS_TEST (*(REGType32v *)0x40005c4) +#define reg_G3_VEC_TEST (*(REGType32v *)0x40005c8) + +#define reg_G3X_GXSTAT (*(REGType32v *)0x4000600) +#define reg_G3X_LISTRAM_COUNT (*(REGType16v *)0x4000604) +#define reg_G3X_VTXRAM_COUNT (*(REGType16v *)0x4000606) +#define reg_G3X_DISP_1DOT_DEPTH (*(REGType16v *)0x4000610) +#define reg_G3X_POS_RESULT_X (*(const REGType32v *)0x4000620) +#define reg_G3X_POS_RESULT_Y (*(const REGType32v *)0x4000624) +#define reg_G3X_POS_RESULT_Z (*(const REGType32v *)0x4000628) +#define reg_G3X_POS_RESULT_W (*(const REGType32v *)0x400062c) +#define reg_G3X_VEC_RESULT_X (*(const REGType16v *)0x4000630) +#define reg_G3X_VEC_RESULT_Y (*(const REGType16v *)0x4000632) +#define reg_G3X_VEC_RESULT_Z (*(const REGType16v *)0x4000634) +#define reg_G3X_CLIPMTX_RESULT_0 (*(const REGType32v *)0x4000640) +#define reg_G3X_CLIPMTX_RESULT_1 (*(const REGType32v *)0x4000644) +#define reg_G3X_CLIPMTX_RESULT_2 (*(const REGType32v *)0x4000648) +#define reg_G3X_CLIPMTX_RESULT_3 (*(const REGType32v *)0x400064c) +#define reg_G3X_CLIPMTX_RESULT_4 (*(const REGType32v *)0x4000650) +#define reg_G3X_CLIPMTX_RESULT_5 (*(const REGType32v *)0x4000654) +#define reg_G3X_CLIPMTX_RESULT_6 (*(const REGType32v *)0x4000658) +#define reg_G3X_CLIPMTX_RESULT_7 (*(const REGType32v *)0x400065c) +#define reg_G3X_CLIPMTX_RESULT_8 (*(const REGType32v *)0x4000660) +#define reg_G3X_CLIPMTX_RESULT_9 (*(const REGType32v *)0x4000664) +#define reg_G3X_CLIPMTX_RESULT_10 (*(const REGType32v *)0x4000668) +#define reg_G3X_CLIPMTX_RESULT_11 (*(const REGType32v *)0x400066c) +#define reg_G3X_CLIPMTX_RESULT_12 (*(const REGType32v *)0x4000670) +#define reg_G3X_CLIPMTX_RESULT_13 (*(const REGType32v *)0x4000674) +#define reg_G3X_CLIPMTX_RESULT_14 (*(const REGType32v *)0x4000678) +#define reg_G3X_CLIPMTX_RESULT_15 (*(const REGType32v *)0x400067c) +#define reg_G3X_VECMTX_RESULT_0 (*(const REGType32v *)0x4000680) +#define reg_G3X_VECMTX_RESULT_1 (*(const REGType32v *)0x4000684) +#define reg_G3X_VECMTX_RESULT_2 (*(const REGType32v *)0x4000688) +#define reg_G3X_VECMTX_RESULT_3 (*(const REGType32v *)0x400068c) +#define reg_G3X_VECMTX_RESULT_4 (*(const REGType32v *)0x4000690) +#define reg_G3X_VECMTX_RESULT_5 (*(const REGType32v *)0x4000694) +#define reg_G3X_VECMTX_RESULT_6 (*(const REGType32v *)0x4000698) +#define reg_G3X_VECMTX_RESULT_7 (*(const REGType32v *)0x400069c) +#define reg_G3X_VECMTX_RESULT_8 (*(const REGType32v *)0x40006a0) + +#define reg_GXS_DB_DISPCNT (*(REGType32v *)0x4001000) + +#define reg_G2S_DB_BG0CNT (*(REGType16v *)0x4001008) +#define reg_G2S_DB_BG1CNT (*(REGType16v *)0x400100a) +#define reg_G2S_DB_BG2CNT (*(REGType16v *)0x400100c) +#define reg_G2S_DB_BG3CNT (*(REGType16v *)0x400100e) +#define reg_G2S_DB_BG0OFS (*(REGType32v *)0x4001010) +#define reg_G2S_DB_BG0HOFS (*(REGType16v *)0x4001010) +#define reg_G2S_DB_BG0VOFS (*(REGType16v *)0x4001012) +#define reg_G2S_DB_BG1OFS (*(REGType32v *)0x4001014) +#define reg_G2S_DB_BG1HOFS (*(REGType16v *)0x4001014) +#define reg_G2S_DB_BG1VOFS (*(REGType16v *)0x4001016) +#define reg_G2S_DB_BG2OFS (*(REGType32v *)0x4001018) +#define reg_G2S_DB_BG2HOFS (*(REGType16v *)0x4001018) +#define reg_G2S_DB_BG2VOFS (*(REGType16v *)0x400101a) +#define reg_G2S_DB_BG3OFS (*(REGType32v *)0x400101c) +#define reg_G2S_DB_BG3HOFS (*(REGType16v *)0x400101c) +#define reg_G2S_DB_BG3VOFS (*(REGType16v *)0x400101e) +#define reg_G2S_DB_BG2PA (*(REGType16v *)0x4001020) +#define reg_G2S_DB_BG2PB (*(REGType16v *)0x4001022) +#define reg_G2S_DB_BG2PC (*(REGType16v *)0x4001024) +#define reg_G2S_DB_BG2PD (*(REGType16v *)0x4001026) +#define reg_G2S_DB_BG2X (*(REGType32v *)0x4001028) +#define reg_G2S_DB_BG2Y (*(REGType32v *)0x400102c) +#define reg_G2S_DB_BG3PA (*(REGType16v *)0x4001030) +#define reg_G2S_DB_BG3PB (*(REGType16v *)0x4001032) +#define reg_G2S_DB_BG3PC (*(REGType16v *)0x4001034) +#define reg_G2S_DB_BG3PD (*(REGType16v *)0x4001036) +#define reg_G2S_DB_BG3X (*(REGType32v *)0x4001038) +#define reg_G2S_DB_BG3Y (*(REGType32v *)0x400103c) +#define reg_G2S_DB_WIN0H (*(REGType16v *)0x4001040) +#define reg_G2S_DB_WIN1H (*(REGType16v *)0x4001042) +#define reg_G2S_DB_WIN0V (*(REGType16v *)0x4001044) +#define reg_G2S_DB_WIN1V (*(REGType16v *)0x4001046) +#define reg_G2S_DB_WININ (*(REGType16v *)0x4001048) +#define reg_G2S_DB_WINOUT (*(REGType16v *)0x400104a) +#define reg_G2S_DB_MOSAIC (*(REGType16v *)0x400104c) +#define reg_G2S_DB_BLDCNT (*(REGType16v *)0x4001050) +#define reg_G2S_DB_BLDALPHA (*(REGType16v *)0x4001052) +#define reg_G2S_DB_BLDY (*(REGType16v *)0x4001054) + +#define reg_GXS_DB_MASTER_BRIGHT (*(REGType16v *)0x400106c) + +#define reg_PXI_RECV_FIFO (*(REGType32v *)0x4100000) + +#define reg_MI_MCD1 (*(REGType32v *)0x4100010) + +#define REG_PAD_KEYINPUT_L_SHIFT 9 +#define REG_PAD_KEYINPUT_L_SIZE 1 +#define REG_PAD_KEYINPUT_L_MASK 0x0200 + +#define REG_PAD_KEYINPUT_R_SHIFT 8 +#define REG_PAD_KEYINPUT_R_SIZE 1 +#define REG_PAD_KEYINPUT_R_MASK 0x0100 + +#define REG_PAD_KEYINPUT_DOWN_SHIFT 7 +#define REG_PAD_KEYINPUT_DOWN_SIZE 1 +#define REG_PAD_KEYINPUT_DOWN_MASK 0x0080 + +#define REG_PAD_KEYINPUT_UP_SHIFT 6 +#define REG_PAD_KEYINPUT_UP_SIZE 1 +#define REG_PAD_KEYINPUT_UP_MASK 0x0040 + +#define REG_PAD_KEYINPUT_LEFT_SHIFT 5 +#define REG_PAD_KEYINPUT_LEFT_SIZE 1 +#define REG_PAD_KEYINPUT_LEFT_MASK 0x0020 + +#define REG_PAD_KEYINPUT_RIGHT_SHIFT 4 +#define REG_PAD_KEYINPUT_RIGHT_SIZE 1 +#define REG_PAD_KEYINPUT_RIGHT_MASK 0x0010 + +#define REG_PAD_KEYINPUT_START_SHIFT 3 +#define REG_PAD_KEYINPUT_START_SIZE 1 +#define REG_PAD_KEYINPUT_START_MASK 0x0008 + +#define REG_PAD_KEYINPUT_SEL_SHIFT 2 +#define REG_PAD_KEYINPUT_SEL_SIZE 1 +#define REG_PAD_KEYINPUT_SEL_MASK 0x0004 + +#define REG_PAD_KEYINPUT_B_SHIFT 1 +#define REG_PAD_KEYINPUT_B_SIZE 1 +#define REG_PAD_KEYINPUT_B_MASK 0x0002 + +#define REG_PAD_KEYINPUT_A_SHIFT 0 +#define REG_PAD_KEYINPUT_A_SIZE 1 +#define REG_PAD_KEYINPUT_A_MASK 0x0001 + +#ifndef SDK_ASM +#define REG_PAD_KEYINPUT_FIELD( l, r, down, up, left, right, start, sel, b, a ) \ + (u16)( \ + ((u32)(l) << REG_PAD_KEYINPUT_L_SHIFT) | \ + ((u32)(r) << REG_PAD_KEYINPUT_R_SHIFT) | \ + ((u32)(down) << REG_PAD_KEYINPUT_DOWN_SHIFT) | \ + ((u32)(up) << REG_PAD_KEYINPUT_UP_SHIFT) | \ + ((u32)(left) << REG_PAD_KEYINPUT_LEFT_SHIFT) | \ + ((u32)(right) << REG_PAD_KEYINPUT_RIGHT_SHIFT) | \ + ((u32)(start) << REG_PAD_KEYINPUT_START_SHIFT) | \ + ((u32)(sel) << REG_PAD_KEYINPUT_SEL_SHIFT) | \ + ((u32)(b) << REG_PAD_KEYINPUT_B_SHIFT) | \ + ((u32)(a) << REG_PAD_KEYINPUT_A_SHIFT)) +#endif + +#define REG_PAD_KEYCNT_LOGIC_SHIFT 15 +#define REG_PAD_KEYCNT_LOGIC_SIZE 1 +#define REG_PAD_KEYCNT_LOGIC_MASK 0x8000 + +#define REG_PAD_KEYCNT_INTR_SHIFT 14 +#define REG_PAD_KEYCNT_INTR_SIZE 1 +#define REG_PAD_KEYCNT_INTR_MASK 0x4000 + +#define REG_PAD_KEYCNT_L_SHIFT 9 +#define REG_PAD_KEYCNT_L_SIZE 1 +#define REG_PAD_KEYCNT_L_MASK 0x0200 + +#define REG_PAD_KEYCNT_R_SHIFT 8 +#define REG_PAD_KEYCNT_R_SIZE 1 +#define REG_PAD_KEYCNT_R_MASK 0x0100 + +#define REG_PAD_KEYCNT_DOWN_SHIFT 7 +#define REG_PAD_KEYCNT_DOWN_SIZE 1 +#define REG_PAD_KEYCNT_DOWN_MASK 0x0080 + +#define REG_PAD_KEYCNT_UP_SHIFT 6 +#define REG_PAD_KEYCNT_UP_SIZE 1 +#define REG_PAD_KEYCNT_UP_MASK 0x0040 + +#define REG_PAD_KEYCNT_LEFT_SHIFT 5 +#define REG_PAD_KEYCNT_LEFT_SIZE 1 +#define REG_PAD_KEYCNT_LEFT_MASK 0x0020 + +#define REG_PAD_KEYCNT_RIGHT_SHIFT 4 +#define REG_PAD_KEYCNT_RIGHT_SIZE 1 +#define REG_PAD_KEYCNT_RIGHT_MASK 0x0010 + +#define REG_PAD_KEYCNT_START_SHIFT 3 +#define REG_PAD_KEYCNT_START_SIZE 1 +#define REG_PAD_KEYCNT_START_MASK 0x0008 + +#define REG_PAD_KEYCNT_SEL_SHIFT 2 +#define REG_PAD_KEYCNT_SEL_SIZE 1 +#define REG_PAD_KEYCNT_SEL_MASK 0x0004 + +#define REG_PAD_KEYCNT_B_SHIFT 1 +#define REG_PAD_KEYCNT_B_SIZE 1 +#define REG_PAD_KEYCNT_B_MASK 0x0002 + +#define REG_PAD_KEYCNT_A_SHIFT 0 +#define REG_PAD_KEYCNT_A_SIZE 1 +#define REG_PAD_KEYCNT_A_MASK 0x0001 + +#ifndef SDK_ASM +#define REG_PAD_KEYCNT_FIELD( logic, intr, l, r, down, up, left, right, start, sel, b, a ) \ + (u16)( \ + ((u32)(logic) << REG_PAD_KEYCNT_LOGIC_SHIFT) | \ + ((u32)(intr) << REG_PAD_KEYCNT_INTR_SHIFT) | \ + ((u32)(l) << REG_PAD_KEYCNT_L_SHIFT) | \ + ((u32)(r) << REG_PAD_KEYCNT_R_SHIFT) | \ + ((u32)(down) << REG_PAD_KEYCNT_DOWN_SHIFT) | \ + ((u32)(up) << REG_PAD_KEYCNT_UP_SHIFT) | \ + ((u32)(left) << REG_PAD_KEYCNT_LEFT_SHIFT) | \ + ((u32)(right) << REG_PAD_KEYCNT_RIGHT_SHIFT) | \ + ((u32)(start) << REG_PAD_KEYCNT_START_SHIFT) | \ + ((u32)(sel) << REG_PAD_KEYCNT_SEL_SHIFT) | \ + ((u32)(b) << REG_PAD_KEYCNT_B_SHIFT) | \ + ((u32)(a) << REG_PAD_KEYCNT_A_SHIFT)) +#endif #endif //POKEDIAMOND_REGISTERS_H diff --git a/arm9/lib/src/FS_rom.c b/arm9/lib/src/FS_rom.c index 32f66c10..4160e3b1 100644 --- a/arm9/lib/src/FS_rom.c +++ b/arm9/lib/src/FS_rom.c @@ -7,7 +7,11 @@ #include "MB_mb.h" #include "OS_printf.h" -u32 fsi_default_dma_no; +static u32 fsi_default_dma_no; +s32 fsi_card_lock_id; +CARDRomRegion fsi_ovt9; +CARDRomRegion fsi_ovt7; +FSArchive fsi_arc_rom; ARM_FUNC void FSi_OnRomReadDone(void * p_arc) { diff --git a/arm9/lib/src/FX_cp.c b/arm9/lib/src/FX_cp.c index 08443dc8..3b6e6c96 100644 --- a/arm9/lib/src/FX_cp.c +++ b/arm9/lib/src/FX_cp.c @@ -55,16 +55,16 @@ ARM_FUNC void FX_DivAsync(fx32 numerator, fx32 denominator){ ARM_FUNC fx32 FX_DivS32(fx32 numerator, fx32 denominator){ reg_CP_DIVCNT = 0x0; - *(REGType32 *)REG_DIV_NUMER_ADDR = (u32)numerator; //32bit write for some reason + *(REGType32v *)®_CP_DIV_NUMER = (u32)numerator; //32bit write for some reason reg_CP_DIV_DENOM = (u32)denominator; while (reg_CP_DIVCNT & 0x8000); - return *(REGType32 *)REG_DIV_RESULT_ADDR; + return *(REGType32v *)®_CP_DIV_RESULT; } ARM_FUNC fx32 FX_ModS32(fx32 num, fx32 mod){ reg_CP_DIVCNT = 0x0; - *(REGType32 *)REG_DIV_NUMER_ADDR = (u32)num; //32bit write for some reason + *(REGType32v *)®_CP_DIV_NUMER = (u32)num; //32bit write for some reason reg_CP_DIV_DENOM = (u32)mod; while (reg_CP_DIVCNT & 0x8000); - return *(REGType32 *)REG_DIVREM_RESULT_ADDR; + return *(REGType32v *)®_CP_DIVREM_RESULT; } diff --git a/arm9/lib/src/OS_interrupt.c b/arm9/lib/src/OS_interrupt.c index f7a6d005..1fb43821 100644 --- a/arm9/lib/src/OS_interrupt.c +++ b/arm9/lib/src/OS_interrupt.c @@ -77,3 +77,13 @@ ARM_FUNC void OSi_EnterDmaCallback(u32 dmaNo, void (*callback) (void *), void *a OSi_IrqCallbackInfo[dmaNo].enable = OS_EnableIrqMask(mask) & mask; } + +ARM_FUNC void OSi_EnterTimerCallback(u32 timerNo, void (*callback) (void *), void *arg) +{ + OSIrqMask mask = 1UL << (timerNo + 3); + OSi_IrqCallbackInfo[timerNo + 4].func = callback; + OSi_IrqCallbackInfo[timerNo + 4].arg = arg; + + (void)OS_EnableIrqMask(mask); + OSi_IrqCallbackInfo[timerNo + 4].enable = TRUE; +} diff --git a/arm9/lib/src/OS_printf.c b/arm9/lib/src/OS_printf.c new file mode 100644 index 00000000..ba484df8 --- /dev/null +++ b/arm9/lib/src/OS_printf.c @@ -0,0 +1,1248 @@ +#include "global.h" +#include "OS_printf.h" + +struct printfStr +{ + s32 spaceLeft; + s8 *stringEnd; + s8 *stringStart; +}; + +void string_put_char(struct printfStr *dest, s8 value); +void string_fill_char(struct printfStr *dest, s8 value, s32 count); +void string_put_string(struct printfStr *dest, const s8 *src, s32 count); + + +#ifndef NONMATCHING +// c definition is at the bottom of the file +u64 _ll_udiv(u64 a, u64 b); + +ARM_FUNC asm s32 OS_VSNPrintf(s8 *buffer, s32 bufsz, const s8 *format, void *args) +{ + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x64 + mov r9, r2 + str r1, [sp, #0x54] + str r0, [sp, #0x5c] + str r0, [sp, #0x58] + ldrsb r0, [r9, #0x0] + str r1, [sp, #0x0] + mov r11, r3 + cmp r0, #0x0 + beq _020CAD18 + mov r0, #0xa + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x4] + mov r0, #0x20 + str r0, [sp, #0x1c] + mov r0, #0x30 + str r0, [sp, #0x20] + mvn r0, #0x0 + str r0, [sp, #0x8] + mov r0, #0x57 + str r0, [sp, #0x10] + mov r0, #0x8 + str r0, [sp, #0x14] + mov r0, #0x37 + str r0, [sp, #0x18] + mov r0, #0x10 + str r0, [sp, #0x24] + mov r0, #0x1 + str r0, [sp, #0x28] + mov r0, #0x2b + str r0, [sp, #0x34] + mov r0, #0x2d + str r0, [sp, #0x30] + mov r0, #0x2 + str r0, [sp, #0x2c] +_020CA530: + ldrsb r1, [r9, #0x0] + and r0, r1, #0xff + eor r0, r0, #0x20 + sub r0, r0, #0xa1 + cmp r0, #0x3c + bhs _020CA56C + add r0, sp, #0x54 + bl string_put_char + ldrsb r1, [r9, #0x1]! + cmp r1, #0x0 + beq _020CAD0C + add r0, sp, #0x54 + add r9, r9, #0x1 + bl string_put_char + b _020CAD0C +_020CA56C: + cmp r1, #0x25 + beq _020CA584 + add r0, sp, #0x54 + add r9, r9, #0x1 + bl string_put_char + b _020CAD0C +_020CA584: + ldr r6, [sp, #0x4] + ldr r5, [sp, #0x8] + ldr r2, [sp, #0xc] + ldr r0, [sp, #0x10] + mov r10, r6 + mov r3, r9 +_020CA59C: + ldrsb r4, [r9, #0x1]! + cmp r4, #0x20 + bgt _020CA5B4 + cmp r4, #0x20 + beq _020CA5F4 + b _020CA60C +_020CA5B4: + cmp r4, #0x30 + bgt _020CA60C + cmp r4, #0x2b + blt _020CA60C + cmp r4, #0x2b + beq _020CA5E0 + cmp r4, #0x2d + beq _020CA5FC + cmp r4, #0x30 + beq _020CA604 + b _020CA60C +_020CA5E0: + ldrsb r1, [r9, #-0x1] + cmp r1, #0x20 + bne _020CA60C + orr r6, r6, #0x2 + b _020CA59C +_020CA5F4: + orr r6, r6, #0x1 + b _020CA59C +_020CA5FC: + orr r6, r6, #0x8 + b _020CA59C +_020CA604: + orr r6, r6, #0x10 + b _020CA59C +_020CA60C: + cmp r4, #0x2a + bne _020CA640 + add r11, r11, #0x4 + ldr r10, [r11, #-0x4] + add r9, r9, #0x1 + cmp r10, #0x0 + rsblt r10, r10, #0x0 + orrlt r6, r6, #0x8 + b _020CA654 +_020CA630: + ldrsb r4, [r9], #0x1 + mov r1, #0xa + mla r1, r10, r1, r4 + sub r10, r1, #0x30 +_020CA640: + ldrsb r1, [r9, #0x0] + cmp r1, #0x30 + blt _020CA654 + cmp r1, #0x39 + ble _020CA630 +_020CA654: + ldrsb r1, [r9, #0x0] + cmp r1, #0x2e + bne _020CA6AC + ldrsb r1, [r9, #0x1]! + ldr r5, [sp, #0x4] + cmp r1, #0x2a + bne _020CA698 + add r11, r11, #0x4 + ldr r5, [r11, #-0x4] + add r9, r9, #0x1 + cmp r5, #0x0 + ldrlt r5, [sp, #0x8] + b _020CA6AC +_020CA688: + ldrsb r4, [r9], #0x1 + mov r1, #0xa + mla r1, r5, r1, r4 + sub r5, r1, #0x30 +_020CA698: + ldrsb r1, [r9, #0x0] + cmp r1, #0x30 + blt _020CA6AC + cmp r1, #0x39 + ble _020CA688 +_020CA6AC: + ldrsb r1, [r9, #0x0] + cmp r1, #0x68 + beq _020CA6C4 + cmp r1, #0x6c + beq _020CA6DC + b _020CA6F0 +_020CA6C4: // h + ldrsb r1, [r9, #0x1]! + cmp r1, #0x68 + orrne r6, r6, #0x40 + addeq r9, r9, #0x1 + orreq r6, r6, #0x100 + b _020CA6F0 +_020CA6DC: // l + ldrsb r1, [r9, #0x1]! + cmp r1, #0x6c + orrne r6, r6, #0x20 + addeq r9, r9, #0x1 + orreq r6, r6, #0x80 +_020CA6F0: + ldrsb r1, [r9, #0x0] + cmp r1, #0x69 + bgt _020CA740 + cmp r1, #0x63 + blt _020CA720 + cmp r1, #0x63 + beq _020CA7B4 + cmp r1, #0x64 + beq _020CA96C + cmp r1, #0x69 + beq _020CA96C + b _020CA950 +_020CA720: + cmp r1, #0x25 + bgt _020CA734 + cmp r1, #0x25 + beq _020CA934 + b _020CA950 +_020CA734: + cmp r1, #0x58 + beq _020CA7A0 + b _020CA950 +_020CA740: + cmp r1, #0x6e + bgt _020CA754 + cmp r1, #0x6e + beq _020CA8DC + b _020CA950 +_020CA754: + sub r1, r1, #0x6f + cmp r1, #0x9 + addls pc, pc, r1, lsl #0x2 + b _020CA950 +_020CA764: + b _020CA78C + b _020CA7A8 + b _020CA950 + b _020CA950 + b _020CA828 + b _020CA950 + b _020CA798 + b _020CA950 + b _020CA950 + b _020CA964 +_020CA78C: + ldr r2, [sp, #0x14] + orr r6, r6, #0x1000 + b _020CA96C +_020CA798: + orr r6, r6, #0x1000 + b _020CA96C +_020CA7A0: + ldr r0, [sp, #0x18] + b _020CA964 +_020CA7A8: + orr r6, r6, #0x4 + ldr r5, [sp, #0x14] + b _020CA964 +_020CA7B4: + cmp r5, #0x0 + bge _020CA950 + ands r0, r6, #0x8 + add r11, r11, #0x4 + ldr r4, [r11, #-0x4] + beq _020CA7F0 + mov r0, r4, lsl #0x18 + mov r1, r0, asr #0x18 + add r0, sp, #0x54 + bl string_put_char + ldr r1, [sp, #0x1c] + sub r2, r10, #0x1 + add r0, sp, #0x54 + bl string_fill_char + b _020CA820 +_020CA7F0: + ands r0, r6, #0x10 + ldrne r0, [sp, #0x20] + sub r2, r10, #0x1 + ldreq r0, [sp, #0x1c] + mov r0, r0, lsl #0x18 + mov r1, r0, asr #0x18 + add r0, sp, #0x54 + bl string_fill_char + mov r0, r4, lsl #0x18 + mov r1, r0, asr #0x18 + add r0, sp, #0x54 + bl string_put_char +_020CA820: + add r9, r9, #0x1 + b _020CAD0C +_020CA828: + add r11, r11, #0x4 + cmp r5, #0x0 + ldr r7, [sp, #0x4] + ldr r4, [r11, #-0x4] + bge _020CA860 + ldrsb r0, [r4] + cmp r0, #0x0 + beq _020CA874 +_020CA848: + add r7, r7, #0x1 + ldrsb r0, [r4, r7] + cmp r0, #0x0 + bne _020CA848 + b _020CA874 +_020CA85C: + add r7, r7, #0x1 +_020CA860: + cmp r7, r5 + bge _020CA874 + ldrsb r0, [r4, r7] + cmp r0, #0x0 + bne _020CA85C +_020CA874: + ands r0, r6, #0x8 + sub r10, r10, r7 + beq _020CA8A4 + mov r1, r4 + mov r2, r7 + add r0, sp, #0x54 + bl string_put_string + ldr r1, [sp, #0x1C] + mov r2, r10 + add r0, sp, #0x54 + bl string_fill_char + b _020CA8D4 +_020CA8A4: + ands r0, r6, #0x10 + ldrne r0, [sp, #0x20] + mov r2, r10 + ldreq r0, [sp, #0x1C] + mov r0, r0, lsl #0x18 + mov r1, r0, asr #0x18 + add r0, sp, #0x54 + bl string_fill_char + mov r1, r4 + mov r2, r7 + add r0, sp, #0x54 + bl string_put_string +_020CA8D4: + add r9, r9, #0x1 + b _020CAD0C +_020CA8DC: + ands r0, r6, #0x100 + ldr r1, [sp, #0x58] + ldr r0, [sp, #0x5c] + sub r2, r1, r0 + bne _020CA92C + ands r0, r6, #0x40 + addne r11, r11, #0x4 + ldrne r0, [r11, #-0x4] + strneh r2, [r0, #0x0] + bne _020CA92C + ands r0, r6, #0x80 + addeq r11, r11, #0x4 + ldreq r0, [r11, #-0x4] + streq r2, [r0, #0x0] + beq _020CA92C + add r11, r11, #0x4 + ldr r0, [r11, #-0x4] + mov r1, r2, asr #0x1f + str r2, [r0, #0x0] + str r1, [r0, #0x4] +_020CA92C: + add r9, r9, #0x1 + b _020CAD0C +_020CA934: + add r0, r3, #0x1 + cmp r0, r9 + bne _020CA950 + add r0, sp, #0x54 + add r9, r9, #0x1 + bl string_put_char + b _020CAD0C +_020CA950: + add r0, sp, #0x54 + mov r1, r3 + sub r2, r9, r3 + bl string_put_string + b _020CAD0C +_020CA964: + ldr r2, [sp, #0x24] + orr r6, r6, #0x1000 +_020CA96C: + ands r1, r6, #0x8 + bicne r6, r6, #0x10 + cmp r5, #0x0 + bicge r6, r6, #0x10 + ldrlt r5, [sp, #0x28] + ldr r7, [sp, #0x4] + ands r1, r6, #0x1000 + beq _020CAA20 + ands r1, r6, #0x100 + addne r11, r11, #0x4 + ldrneb r4, [r11, #-0x4] + movne r1, #0x0 + bne _020CA9D0 + ands r1, r6, #0x40 + addne r11, r11, #0x4 + ldrneh r4, [r11, #-0x4] + movne r1, #0x0 + bne _020CA9D0 + ands r1, r6, #0x80 + addne r11, r11, #0x8 + ldrne r1, [r11, #-0x4] + ldrne r4, [r11, #-0x8] + addeq r11, r11, #0x4 + ldreq r4, [r11, #-0x4] + moveq r1, #0x0 +_020CA9D0: + bic r6, r6, #0x3 + ands r3, r6, #0x4 + beq _020CAAD8 + cmp r2, #0x10 + bne _020CAA0C + mov r3, #0x0 + cmp r1, r3 + cmpeq r4, r3 + beq _020CAAD8 + ldr r3, [sp, #0x20] + ldr r7, [sp, #0x2c] + strb r3, [sp, #0x39] + add r3, r0, #0x21 + strb r3, [sp, #0x38] + b _020CAAD8 +_020CAA0C: + cmp r2, #0x8 + ldreq r3, [sp, #0x20] + ldreq r7, [sp, #0x28] + streqb r3, [sp, #0x38] + b _020CAAD8 +_020CAA20: + ands r1, r6, #0x100 + addne r11, r11, #0x4 + ldrnesb r4, [r11, #-0x4] + movne r1, r4, asr #0x1f + bne _020CAA64 + ands r1, r6, #0x40 + addne r11, r11, #0x4 + ldrnesh r4, [r11, #-0x4] + movne r1, r4, asr #0x1f + bne _020CAA64 + ands r1, r6, #0x80 + addne r11, r11, #0x8 + ldrne r4, [r11, #-0x8] + ldrne r1, [r11, #-0x4] + addeq r11, r11, #0x4 + ldreq r4, [r11, #-0x4] + moveq r1, r4, asr #0x1f +_020CAA64: + mov r3, #0x0 + and r8, r3, #0x0 + cmp r8, r3 + and r8, r1, #0x80000000 + cmpeq r8, r3 + beq _020CAAA0 + ldr r7, [sp, #0x30] + mvn r4, r4 + strb r7, [sp, #0x38] + mvn r7, r1 + mov r1, #0x1 + adds r4, r4, r1 + adc r1, r7, r3 + ldr r7, [sp, #0x28] + b _020CAAD8 +_020CAAA0: + cmp r1, r3 + cmpeq r4, r3 + bne _020CAAB4 + cmp r5, #0x0 + beq _020CAAD8 +_020CAAB4: + ands r3, r6, #0x2 + ldrne r3, [sp, #0x34] + ldrne r7, [sp, #0x28] + strneb r3, [sp, #0x38] + bne _020CAAD8 + ands r3, r6, #0x1 + ldrne r3, [sp, #0x1c] + ldrne r7, [sp, #0x28] + strneb r3, [sp, #0x38] +_020CAAD8: + cmp r2, #0x8 + ldr r8, [sp, #0x4] + beq _020CAAF8 + cmp r2, #0xa + beq _020CAB40 + cmp r2, #0x10 + beq _020CABDC + b _020CAC28 +_020CAAF8: + mov r0, #0x0 + cmp r1, r0 + cmpeq r4, r0 + beq _020CAC28 +_020CAB08: + and r0, r4, #0x7 + add r3, r0, #0x30 + add r0, sp, #0x3a + strb r3, [r0, r8] + mov r4, r4, lsr #0x3 + mov r2, #0x0 + mov r0, r1, lsr #0x3 + orr r4, r4, r1, lsl #0x1d + cmp r0, r2 + cmpeq r4, r2 + mov r1, r0 + add r8, r8, #0x1 + bne _020CAB08 + b _020CAC28 +_020CAB40: + mov r0, #0x0 + cmp r0, r0 + cmpeq r1, r0 + bne _020CAB8C + cmp r4, #0x0 + beq _020CAC28 +_020CAB58: + ldr r0, =0xCCCCCCCD + umull r1, r0, r4, r0 + movs r0, r0, lsr #0x3 + mov r1, #0xa + mul r1, r0, r1 + sub r1, r4, r1 + mov r4, r0 + add r1, r1, #0x30 + add r0, sp, #0x3a + strb r1, [r0, r8] + add r8, r8, #0x1 + bne _020CAB58 + b _020CAC28 +_020CAB8C: + cmp r1, r0 + cmpeq r4, r0 + beq _020CAC28 +_020CAB98: + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x4] + mov r0, r4 + bl _ll_udiv + mov r3, #0xa + umull r3, r12, r0, r3 + subs r3, r4, r3 + mov r2, #0x0 + add r4, r3, #0x30 + add r3, sp, #0x3a + strb r4, [r3, r8] + cmp r1, r2 + cmpeq r0, r2 + mov r4, r0 + add r8, r8, #0x1 + bne _020CAB98 + b _020CAC28 +_020CABDC: + mov r2, #0x0 + cmp r1, r2 + cmpeq r4, r2 + beq _020CAC28 +_020CABEC: + and r3, r4, #0xf + cmp r3, #0xa + mov r4, r4, lsr #0x4 + addlt r3, r3, #0x30 + mov r2, r1, lsr #0x4 + orr r4, r4, r1, lsl #0x1c + mov r1, r2 + addge r3, r3, r0 + add r2, sp, #0x3a + strb r3, [r2, r8] + mov r2, #0x0 + cmp r1, r2 + add r8, r8, #0x1 + cmpeq r4, r2 + bne _020CABEC +_020CAC28: + cmp r7, #0x0 + ble _020CAC4C + ldrsb r0, [sp, #0x38] + cmp r0, #0x30 + ldreq r1, [sp, #0x20] + addeq r0, sp, #0x3a + streqb r1, [r0, r8] + ldreq r7, [sp, #0x4] + addeq r8, r8, #0x1 +_020CAC4C: + sub r5, r5, r8 + ands r0, r6, #0x10 + beq _020CAC68 + sub r0, r10, r8 + sub r0, r0, r7 + cmp r5, r0 + movlt r5, r0 +_020CAC68: + cmp r5, #0x0 + subgt r10, r10, r5 + add r0, r7, r8 + ands r6, r6, #0x8 + sub r10, r10, r0 + bne _020CAC90 + ldr r1, [sp, #0x1c] + add r0, sp, #0x54 + mov r2, r10 + bl string_fill_char +_020CAC90: + cmp r7, #0x0 + ble _020CACB8 + add r0, sp, #0x38 + add r4, r0, r7 +_020CACA0: + ldrsb r1, [r4, #-0x1]! + sub r7, r7, #0x1 + add r0, sp, #0x54 + bl string_put_char +_020CACB0: + cmp r7, #0x0 + bgt _020CACA0 +_020CACB8: + ldr r1, [sp, #0x20] + mov r2, r5 + add r0, sp, #0x54 + bl string_fill_char + cmp r8, #0x0 + ble _020CACF0 + add r0, sp, #0x3A + add r4, r0, r8 +_020CACD8: + ldrsb r1, [r4, #-0x1]! + sub r8, r8, #0x1 + add r0, sp, #0x54 + bl string_put_char + cmp r8, #0x0 + bgt _020CACD8 +_020CACF0: + cmp r6, #0x0 + beq _020CAD08 + ldr r1, [sp, #0x1C] + mov r2, r10 + add r0, sp, #0x54 + bl string_fill_char +_020CAD08: + add r9, r9, #0x1 +_020CAD0C: + ldrsb r0, [r9, #0x0] + cmp r0, #0x0 + bne _020CA530 +_020CAD18: + ldr r0, [sp, #0x54] + cmp r0, #0x0 + ldrne r0, [sp, #0x58] + movne r1, #0x0 + strneb r1, [r0, #0x0] + bne _020CAD48 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + ldrne r1, [sp, #0x5c] + movne r2, #0x0 + addne r0, r1, r0 + strneb r2, [r0, #-0x1] +_020CAD48: + ldr r1, [sp, #0x58] + ldr r0, [sp, #0x5c] + sub r0, r1, r0 + add sp, sp, #0x64 + ldmia sp!, {r4-r11,lr} + bx lr +} +#endif + +ARM_FUNC void string_put_char(struct printfStr *dest, s8 value) +{ + if (dest->spaceLeft != 0) + { + dest->stringEnd[0] = value; + dest->spaceLeft--; + } + dest->stringEnd++; +} + +ARM_FUNC void string_fill_char(struct printfStr *dest, s8 value, s32 count) +{ + if (count <= 0) + return; + + u32 written = 0; + u32 spaceLeft = (u32)dest->spaceLeft; + u32 toWrite = spaceLeft > (u32)count ? count : spaceLeft; + + while (written < toWrite) + { + dest->stringEnd[written] = value; + written++; + } + + dest->spaceLeft -= toWrite; + dest->stringEnd += count; // this is wrong but matching... +} + +ARM_FUNC void string_put_string(struct printfStr *dest, const s8 *src, s32 count) +{ + if (count <= 0) + return; + + u32 written = 0; + u32 spaceLeft = (u32)dest->spaceLeft; + u32 toWrite = spaceLeft > (u32)count ? count : spaceLeft; + + while (written < toWrite) + { + dest->stringEnd[written] = src[written]; + written++; + } + + dest->spaceLeft -= toWrite; + dest->stringEnd += count; // this is wrong but matching... +} + +ARM_FUNC s32 OS_SPrintf(s8 *buffer, const s8 *format, ...) +{ + void *args = (void *)((u32 *)((u32)&format & ~0x3) + 1); // hack since mwccarm doesn't have <stdarg.h> apparently + return OS_VSPrintf(buffer, format, args); +} + +ARM_FUNC s32 OS_VSPrintf(s8 *buffer, const s8 *format, void *args) +{ + return OS_VSNPrintf(buffer, 0x7FFFFFFF, format, args); +} + +ARM_FUNC s32 OS_SNPrintf(s8 *buffer, s32 bufsz, const s8 *format, ...) +{ + void *args = (void *)((u32 *)((u32)&format & ~0x3) + 1); // hack since mwccarm doesn't have <stdarg.h> apparently + return OS_VSNPrintf(buffer, bufsz, format, args); +} + +#ifdef NONMATCHING + +struct Unk +{ + s32 unk00; + s32 unk04; + s32 unk08; + s32 unk0C; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; + s32 unk24; + s32 unk28; + s32 unk2C; + s32 unk30; + s32 unk34; + s8 unk38; + s8 unk39; + s8 unk3A; + // not sure about this struct's size or even if it's a single struct +}; + +#define va_arg(list, ty) *(ty *)((u32 *)(list = (void *)((u32 *)(list) + 1)) - 1) +#define va_arg_64(list, sgn) *((sgn##64 *)(list = (void *)((sgn##64 *)(list) + 1)) - 1) + +ARM_FUNC s32 OS_VSNPrintf(s8 *buffer, s32 bufsz, const s8 *format, void *args) +{ + struct printfStr str; + struct Unk unk; + str.spaceLeft = bufsz; + str.stringStart = buffer; + str.stringEnd = buffer; + + if (*format != 0) + { + // these assignments are likely wrong + unk.unk04 = 0; + unk.unk0C = 10; + unk.unk1C = 32; + unk.unk20 = 48; + unk.unk08 = 0; + unk.unk10 = 87; + unk.unk14 = 8; + unk.unk18 = 55; + unk.unk24 = 16; + unk.unk28 = 1; + unk.unk34 = 43; + unk.unk30 = 45; + unk.unk2C = 2; + + + do + { + s8 c = *format; + u32 x = (u8)c; + + // matches: + // binary range (hex range) [dec range] + // 1000 0001-1001 1111 (0x81-0x9F) [129-159] + // 1110 0000-1111 1100 (0xE0-0xFC) [224-252] + if ((x ^ 0x20) - 0xa1 < 0x3c) + { + string_put_char(&str, c); + c = *(++format); + if (c != 0) + { + format++; + string_put_char(&str, c); + } + } + else if (c != '%') + { + format++; + string_put_char(&str, c); + } + else + { + s32 flags = unk.unk04; + s32 r5 = unk.unk08; + s32 r2 = unk.unk0C; + s32 r0 = unk.unk10; + s32 r10 = flags; + const s8 *r3 = format; + s8 r4; + while (1) + { + r4 = *(++format); + switch (r4) + { + case '+': + c = *(format - 1); + if (c == ' ') + goto post_padding; + flags |= 0x2; + break; + case ' ': + flags |= 0x1; + break; + case '-': + flags |= 0x8; + break; + case '0': + flags |= 0x10; + break; + default: + goto post_padding; + } + } + post_padding: + if (r4 == '*') + { + u32 v = va_arg(args, u32); + format++; + if (v < 0) + { + r10 = -r10; + flags |= 0x8; + } + } + else + { + for (c = *format; c >= '0' && c <= '9'; c = *format) + { + s8 d = *(format++); + r10 = (r10 * 10 + d) - '0'; + } + } + + c = *format; + if (c == '.') + { + c = *(++format); + r5 = unk.unk04; + if (c == '*') + { + u32 v = va_arg(args, u32); + format++; + if (v < 0) + { + r5 = unk.unk08; + } + } + for (c = *format; c >= '0' && c <= '9'; c = *format) + { + s8 d = *(format++); + r5 = (r5 * 10 + d) - '0'; + } + } + + c = *format; + switch (c) + { + case 'h': + c = *format++; + if (c != 'h') + { + flags |= 0x40; + format++; + flags |= 0x100; + } + break; + case 'l': + c = *format++; + if (c != 'l') + { + flags |= 0x20; + format++; + flags |= 0x80; + } + break; + } + + c = *format; + switch (c) + { + case 'o': + r2 = unk.unk14; + flags |= 0x1000; + break; + case 'u': + flags |= 0x1000; + break; + case 'X': + r0 = unk.unk18; + goto case_x; + case 'p': + flags |= 0x4; + r5 = unk.unk14; + case 'c': + if ((s32)r5 < 0) + { + r0 = flags & 0x8; + u32 v = va_arg(args, u32); + if (r0) + { + string_put_char(&str, (s8)v); + string_fill_char(&str, (s8)unk.unk1C, r10 - 1); + } + else + { + r0 = flags & 0x10; + if (r0) + r0 = unk.unk20; + else + r0 = unk.unk1C; + string_fill_char(&str, (s8)r0, r10 - 1); + string_put_char(&str, (s8)v); + } + format++; + } + break; + case 's': + { + s8 *v = *(((s8 **)args)++); + s32 count = unk.unk04; + if (r5 < 0) + { + while (v[count] != 0) + { + count++; + } + } + else + { + while (count < r5 && v[count] != 0) + { + count++; + } + } + r0 = flags & 0x8; + r10 = r10 - count; + if (r0) + { + string_put_string(&str, v, count); + string_fill_char(&str, (s8)unk.unk1C, r10); + } + else + { + r0 = flags & 0x10; + if (r0) + r0 = unk.unk20; + else + r0 = unk.unk1C; + string_fill_char(&str, (s8)r0, r10 - 1); + string_put_string(&str, v, count); + } + format++; + break; + } + case 'n': + { + r0 = flags & 0x100; + s32 count = str.stringEnd - str.stringStart; + if (!r0) + { + if (flags & 0x40) + { + s16 *v = va_arg(args, s16 *); + *v = (s16)count; + } + else if (flags & 0x80) + { + s64 *v = va_arg(args, s64 *); + *v = count; + } + else + { + s64 *v = va_arg(args, s64 *); + *v = count; + } + } + format++; + } + case '%': + if (r3 + 1 == format) + { + format++; + string_put_char(&str, c); + break; + } + else + { + string_put_string(&str, r3, format - r3); + break; + } + case 'x': + case_x: + r2 = unk.unk24; + flags |= 0x1000; + case 'd': + case 'i': + if (flags & 0x8) + { + flags = flags & ~0x10; + } + if (r5 >= 0) + { + flags = flags & ~0x10; + } + else + { + r5 = unk.unk28; + } + s32 r7 = unk.unk04; + u64 value; + if (flags & 0x1000) + { + if (flags & 0x100) + { + value = va_arg(args, u8); + } + else if (flags & 0x40) + { + value = va_arg(args, u16); + } + else if (flags & 0x80) + { + value = va_arg_64(args, u); + } + else + { + value = va_arg(args, u32); + } + flags = flags & ~0x3; + if (flags & 0x4) + { + if (r2 == 0x10) + { + if (value != 0) + { + s32 something = unk.unk20; + s32 somethingElse = unk.unk2C; + unk.unk39 = (s8)something; + unk.unk38 = (s8)(something + 0x21); + // 0x21 could be 'a'-'A'+1 + } + } + else + { + if (r2 == 0x8) + { + s32 something = unk.unk20; + r7 = unk.unk28; + unk.unk38 = (s8)(something); + } + } + } + } + else + { + if (flags & 0x100) + { + s32 x = (s32)va_arg(args, s8); + value = (u64)x; + } + else if (flags & 0x40) + { + s32 x = (s32)va_arg(args, s16); + value = (u64)x; + } + else if (flags & 0x80) + { + s64 dWord = va_arg_64(args, s); + value = (u64)dWord; + } + else + { + s32 x = va_arg(args, s32); + value = (u64)value; + } + + if (value & 0x8000000000000000) + { + unk.unk38 = (s8)unk.unk30; + value = ~value + 1; + r7 = unk.unk28; + } + else + { + if (value || r5) + { + if (flags & 0x2) + { + r7 = unk.unk28; + unk.unk38 = (s8)unk.unk34; + } + else if (flags & 0x1) + { + r7 = unk.unk28; + unk.unk38 = (s8)unk.unk1C; + } + } + } + s32 r8 = flags; + switch (r2) + { + case 8: + while (value != 0) + { + u32 octDig = ((u32)value & 0x7) + '0'; + s8 *p = &unk.unk3A; + p[r8] = (s8)octDig; + value = value >> 3; + r8++; + } + break; + case 10: + if (value >> 32 == 0) + { + u32 v = (u32)value; + while (v) + { + u32 div10 = v / 10; + u32 dig = v - div10; + v = div10; + s8 *p = &unk.unk3A; + p[r8] = (s8)dig; + r8++; + } + } + else + { + while (value) + { + u64 div10 = value / 10; + u32 dig = (u32)(value - div10); + value = div10; + s8 *p = &unk.unk3A; + p[r8] = (s8)dig; + r8++; + } + } + break; + case 16: + while (value != 0) + { + u32 hexDig = ((u32)value & 0xf); + value = value >> 4; + if (hexDig < 10) + hexDig = hexDig + '0'; + else + hexDig = hexDig + r0; + s8 *p = &unk.unk3A; + p[r8] = (s8)hexDig; + r8++; + } + break; + } + if (r7 > 0) + { + if (unk.unk38 == '0') + { + s8 *p = &unk.unk3A; + p[r8] = (s8)unk.unk20; + r7 = flags; + r8++; + } + r5 = r5 - r8; + if (flags & 0x10) + { + if (r5 < r10 - r8 - r7) + { + r5 = r10 - r8 - r7; + } + } + if (r5 > 0) + { + r10 = r10 - r5; + } + + r10 = r10 - (r7 + r8); + flags = flags & 0x8; + if (!flags) + { + string_fill_char(&str, (s8)unk.unk1C, r10); + } + s8 *x = &unk.unk38 + r7; + while (r7 > 0) + { + s8 ch = *(x--); + r7--; + string_put_char(&str, ch); + } + string_fill_char(&str, (s8)unk.unk20, r5); + x = &unk.unk3A + r8; + while (r8 > 0) + { + s8 ch = *(x--); + r8--; + string_put_char(&str, ch); + } + if (flags) + { + string_fill_char(&str, (s8)unk.unk1C, r10); + } + } + } + format++; + break; + } + if (str.spaceLeft != 0) + { + *str.stringEnd = 0; + } + else if (unk.unk00 != 0) + { + *(str.stringStart + unk.unk00 - 1) = 0; + } + } + } while (*format != 0); + } + + if (str.spaceLeft != 0) + { + *str.stringEnd = 0; + } + else if (unk.unk00 != 0) + { + str.stringStart[unk.unk00] = 0; + } + return str.stringEnd - str.stringStart; +} + +#endif diff --git a/arm9/macros.lcf.inc b/arm9/macros.lcf.inc deleted file mode 100644 index f58c2432..00000000 --- a/arm9/macros.lcf.inc +++ /dev/null @@ -1,9 +0,0 @@ -#define OVERLAY_TABLE(module, number) \ -WRITEW number; \ -WRITEW SDK_OVERLAY_##module##_START; \ -WRITEW SDK_OVERLAY_##module##_SIZE; \ -WRITEW SDK_OVERLAY_##module##_BSSSIZE; \ -WRITEW SDK_OVERLAY_##module##_STATIC_INIT_START; \ -WRITEW SDK_OVERLAY_##module##_STATIC_INIT_END; \ -WRITEW number; \ -WRITEW 0; diff --git a/arm9/modules/00/asm/module_00_dummy.s b/arm9/modules/00/asm/module_00_dummy.s index e8a42167..8b137891 100644 --- a/arm9/modules/00/asm/module_00_dummy.s +++ b/arm9/modules/00/asm/module_00_dummy.s @@ -1,2 +1 @@ - .section .data - .space 32 + diff --git a/arm9/modules/01/src/module_01.c b/arm9/modules/01/src/module_01.c deleted file mode 100644 index ae2e9d1f..00000000 --- a/arm9/modules/01/src/module_01.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "global.h" - -u32 UNK_021D7500[8]; - -THUMB_FUNC void MOD01_021D74E0(void) -{ - UNK_021D7500[1]++; -} - -THUMB_FUNC void (*UNK_021D74F0[4])(void) = { - MOD01_021D74E0 -}; diff --git a/arm9/modules/01/src/module_01.cpp b/arm9/modules/01/src/module_01.cpp new file mode 100644 index 00000000..9da5f8d5 --- /dev/null +++ b/arm9/modules/01/src/module_01.cpp @@ -0,0 +1,11 @@ +#include "global.h" +#include "FS_overlay.h" + +class Unk021D7500 { + u32 unk0; + u32 unk4; +public: + THUMB_FUNC Unk021D7500() { unk4++; } +}; + +static Unk021D7500 UNK_021D7500; diff --git a/arm9/modules/02/asm/module_02_dummy.s b/arm9/modules/02/asm/module_02_dummy.s index e8a42167..8b137891 100644 --- a/arm9/modules/02/asm/module_02_dummy.s +++ b/arm9/modules/02/asm/module_02_dummy.s @@ -1,2 +1 @@ - .section .data - .space 32 + diff --git a/arm9/modules/03/asm/module_03_dummy.s b/arm9/modules/03/asm/module_03_dummy.s index e8a42167..8b137891 100644 --- a/arm9/modules/03/asm/module_03_dummy.s +++ b/arm9/modules/03/asm/module_03_dummy.s @@ -1,2 +1 @@ - .section .data - .space 32 + diff --git a/arm9/modules/04/asm/arm_04.s b/arm9/modules/04/asm/arm_04.s index 8d1d699b..eb42dcb1 100644 --- a/arm9/modules/04/asm/arm_04.s +++ b/arm9/modules/04/asm/arm_04.s @@ -3,8 +3,8 @@ .section .text .balign 4, 0 - arm_func_start FUN_021D8D18 -FUN_021D8D18: ; 0x021D8D18 + arm_func_start MOD04_021D8D18 +MOD04_021D8D18: ; 0x021D8D18 stmdb sp!, {r4, lr} ldr r2, _021D8D58 ; =0x02210468 ldr r1, _021D8D5C ; =0x000013D8 @@ -25,8 +25,8 @@ FUN_021D8D18: ; 0x021D8D18 _021D8D58: .word 0x02210468 _021D8D5C: .word 0x000013D8 - arm_func_start FUN_021D8D60 -FUN_021D8D60: ; 0x021D8D60 + arm_func_start MOD04_021D8D60 +MOD04_021D8D60: ; 0x021D8D60 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x98 ldr r4, _021D8EE0 ; =0x0221046C @@ -45,7 +45,7 @@ FUN_021D8D60: ; 0x021D8D60 ldr r1, _021D8EE8 ; =0x0220BF04 ldr r2, _021D8EE4 ; =0x0220BEF8 mov r0, r5 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 beq _021D8E18 add sp, sp, #0x98 @@ -58,7 +58,7 @@ _021D8DC0: ldr r1, _021D8EE8 ; =0x0220BF04 ldr r2, _021D8EEC ; =0x0220BF0C mov r0, r5 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x98 movne r0, #8 @@ -69,7 +69,7 @@ _021D8DC0: ldr r1, _021D8EF0 ; =0x0220BF14 mov r0, r5 mov r2, r6 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x98 movne r0, #8 @@ -77,7 +77,7 @@ _021D8DC0: _021D8E18: ldr r1, _021D8EE0 ; =0x0221046C add r0, sp, #0 - bl FUN_021D9F78 + bl MOD04_021D9F78 cmp r0, #0 addeq sp, sp, #0x98 moveq r0, #5 @@ -86,7 +86,7 @@ _021D8E18: add r1, sp, #0 ldr r2, [r0] mov r0, r5 - bl FUN_021D9C2C + bl MOD04_021D9C2C cmp r0, #0 addeq sp, sp, #0x98 moveq r0, #8 @@ -101,7 +101,7 @@ _021D8E18: ldr r1, _021D8F00 ; =0x0220BF20 ldr r2, _021D8EFC ; =0x0220BF1C mov r0, r5 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x98 movne r0, #8 @@ -118,7 +118,7 @@ _021D8E94: mov r0, r5 mov r2, r4 mov r3, r3, lsl #1 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x98 movne r0, #8 @@ -139,8 +139,8 @@ _021D8EFC: .word 0x0220BF1C _021D8F00: .word 0x0220BF20 _021D8F04: .word 0x0220BF28 - arm_func_start FUN_021D8F08 -FUN_021D8F08: ; 0x021D8F08 + arm_func_start MOD04_021D8F08 +MOD04_021D8F08: ; 0x021D8F08 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _021D91BC ; =0x02210468 @@ -150,11 +150,11 @@ FUN_021D8F08: ; 0x021D8F08 add r0, r0, #0x1000 ldr r0, [r0, #0x314] ldr r1, _021D91C0 ; =0x0220BF34 - bl FUN_021DA388 + bl MOD04_021DA388 str r0, [sp] cmp r0, #0 beq _021D8F40 - bl FUN_021DCA84 + bl MOD04_021DCA84 _021D8F40: ldr r0, _021D91BC ; =0x02210468 mov r2, #0 @@ -165,7 +165,7 @@ _021D8F40: add r0, r1, #0x1000 ldr r0, [r0, #0x314] ldr r1, _021D91C8 ; =0x0220BF3C - bl FUN_021DA388 + bl MOD04_021DA388 bl atol ldr r1, _021D91C4 ; =0x021D74A8 ldr r1, [r1] @@ -200,7 +200,7 @@ _021D8FC8: ldr r0, [r0, #0x314] add r2, r3, r2 mov r3, #4 - bl FUN_021DA334 + bl MOD04_021DA334 cmp r0, #0 bgt _021D9014 ldr r0, _021D91BC ; =0x02210468 @@ -266,7 +266,7 @@ _021D9014: add r0, r2, #0x1000 ldr r0, [r0, #0x314] add r2, r2, r5 - bl FUN_021DA334 + bl MOD04_021DA334 ldr r0, _021D91BC ; =0x02210468 ldr r2, _021D91EC ; =0x0000101F ldr r3, [r0] @@ -275,7 +275,7 @@ _021D9014: add r2, r3, r2 ldr r0, [r0, #0x314] mov r3, #0x33 - bl FUN_021DA334 + bl MOD04_021DA334 ldr r0, _021D91BC ; =0x02210468 ldr r2, _021D91F4 ; =0x0000117F ldr r3, [r0] @@ -284,7 +284,7 @@ _021D9014: add r2, r3, r2 ldr r0, [r0, #0x314] mov r3, #9 - bl FUN_021DA334 + bl MOD04_021DA334 ldr r0, _021D91BC ; =0x02210468 ldr r2, _021D91FC ; =0x00001010 ldr r3, [r0] @@ -293,7 +293,7 @@ _021D9014: add r2, r3, r2 ldr r0, [r0, #0x314] mov r3, #0xf - bl FUN_021DA334 + bl MOD04_021DA334 ldr r0, _021D91BC ; =0x02210468 ldr r2, _021D9204 ; =0x00001188 ldr r3, [r0] @@ -302,7 +302,7 @@ _021D9014: add r2, r3, r2 ldr r0, [r0, #0x314] mov r3, #0x41 - bl FUN_021DA2F4 + bl MOD04_021DA2F4 ldr r0, _021D91BC ; =0x02210468 mov r1, #0 ldr r0, [r0] @@ -342,8 +342,8 @@ _021D9204: .word 0x00001188 _021D9208: .word 0x0220BF7C _021D920C: .word 0x02210464 - arm_func_start FUN_021D9210 -FUN_021D9210: ; 0x021D9210 + arm_func_start MOD04_021D9210 +MOD04_021D9210: ; 0x021D9210 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _021D93F4 ; =0x02210468 @@ -353,7 +353,7 @@ FUN_021D9210: ; 0x021D9210 ldr r0, [r2, #0x314] ldr r5, [r2, #0x20c] ldr r4, [r2, #0x210] - bl FUN_021DA3DC + bl MOD04_021DA3DC cmp r0, #1 beq _021D9260 ldr r0, _021D93F4 ; =0x02210468 @@ -365,7 +365,7 @@ FUN_021D9210: ; 0x021D9210 mov r0, #0xe ldmia sp!, {r4, r5, pc} _021D9260: - bl FUN_021D8F08 + bl MOD04_021D8F08 cmp r0, #0 addne sp, sp, #4 movne r0, #0xe @@ -485,8 +485,8 @@ _021D940C: .word 0x0220BF98 _021D9410: .word 0x00004E88 _021D9414: .word 0x00004E8C - arm_func_start FUN_021D9418 -FUN_021D9418: ; 0x021D9418 + arm_func_start MOD04_021D9418 +MOD04_021D9418: ; 0x021D9418 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x14 mov sb, #0 @@ -528,7 +528,7 @@ _021D9470: cmp r0, #7 bne _021D94C0 mov r0, #0x14 - bl FUN_021D8D18 + bl MOD04_021D8D18 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021D94C0: @@ -537,19 +537,19 @@ _021D94C0: cmp r0, #2 bne _021D94E0 mov r0, #9 - bl FUN_021D8D18 + bl MOD04_021D8D18 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021D94E0: cmp r0, #3 bne _021D94F8 mov r0, #0xb - bl FUN_021D8D18 + bl MOD04_021D8D18 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021D94F8: mov r0, #0xd - bl FUN_021D8D18 + bl MOD04_021D8D18 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021D9508: @@ -558,7 +558,7 @@ _021D9508: str r0, [sp] b _021D9598 _021D9518: - bl FUN_021D9210 + bl MOD04_021D9210 cmp r0, #0x10 beq _021D9544 cmp r0, #0x11 @@ -566,14 +566,14 @@ _021D9518: cmp r0, #0x15 bne _021D9578 mov r0, #0x15 - bl FUN_021D8D18 + bl MOD04_021D8D18 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021D9544: cmp sb, #2 ble _021D955C mov r0, #0x10 - bl FUN_021D8D18 + bl MOD04_021D8D18 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021D955C: @@ -582,13 +582,13 @@ _021D955C: str r0, [sp] b _021D9598 _021D956C: - bl FUN_021D8D18 + bl MOD04_021D8D18 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021D9578: cmp sb, #2 blt _021D958C - bl FUN_021D8D18 + bl MOD04_021D8D18 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021D958C: @@ -627,7 +627,7 @@ _021D95D4: add r0, r1, r0 bl OS_UnlockMutex mov r0, #0x14 - bl FUN_021D8D18 + bl MOD04_021D8D18 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021D961C: @@ -651,12 +651,12 @@ _021D965C: ldr r0, [r5] add r0, r0, #0x1000 ldr r0, [r0, #0x314] - bl FUN_021DAE4C + bl MOD04_021DAE4C ldr r0, [r5] add r0, r0, r4 bl OS_LockMutex ldr r0, [sp] - bl FUN_021D96EC + bl MOD04_021D96EC ldr r1, [r5] add r1, r1, #0x1000 str r0, [r1, #4] @@ -678,8 +678,8 @@ _021D96C0: bl OS_UnlockMutex b _021D9448 - arm_func_start FUN_021D96CC -FUN_021D96CC: ; 0x021D96CC + arm_func_start MOD04_021D96CC +MOD04_021D96CC: ; 0x021D96CC add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 @@ -690,8 +690,8 @@ _021D96E0: .word 0x000013D8 _021D96E4: .word 0x00001B34 _021D96E8: .word 0x00004E84 - arm_func_start FUN_021D96EC -FUN_021D96EC: ; 0x021D96EC + arm_func_start MOD04_021D96EC +MOD04_021D96EC: ; 0x021D96EC stmdb sp!, {r4, lr} ldr r1, _021D97E0 ; =0x0220BEB4 mov r4, r0 @@ -711,7 +711,7 @@ FUN_021D96EC: ; 0x021D96EC ldr r2, [r0, #0x210] str r2, [r1, #0x10] ldr r0, [r0, #0x314] - bl FUN_021DB608 + bl MOD04_021DB608 cmp r0, #0 movne r0, #4 ldmneia sp!, {r4, pc} @@ -727,7 +727,7 @@ _021D9758: ldr r0, [r0, #0x314] add r1, r3, #0x1200 add r2, r3, r2 - bl FUN_021D8D60 + bl MOD04_021D8D60 ldr r2, _021D97E8 ; =0x02210468 ldr r1, [r2] add r1, r1, #0x1000 @@ -739,7 +739,7 @@ _021D9758: movne r0, #4 ldmneia sp!, {r4, pc} ldr r0, [r0, #0x314] - bl FUN_021DB570 + bl MOD04_021DB570 cmp r0, #0 movne r0, #4 ldmneia sp!, {r4, pc} @@ -751,7 +751,7 @@ _021D9758: sub r1, r0, #1 add r0, r2, #0x1000 ldr r0, [r0, #0x314] - bl FUN_021DB4A4 + bl MOD04_021DB4A4 mov r0, #0 ldmia sp!, {r4, pc} .align 2, 0 @@ -762,8 +762,8 @@ _021D97EC: .word 0x0221046C _021D97F0: .word 0x000011CC _021D97F4: .word 0x021D3498 - arm_func_start FUN_021D97F8 -FUN_021D97F8: ; 0x021D97F8 + arm_func_start MOD04_021D97F8 +MOD04_021D97F8: ; 0x021D97F8 stmdb sp!, {r4, lr} ldr r1, _021D9874 ; =0x02210468 mov r4, r0 @@ -806,8 +806,8 @@ _021D9880: .word 0x00007530 _021D9884: .word 0x00005206 _021D9888: .word 0x00004E84 - arm_func_start FUN_021D988C -FUN_021D988C: ; 0x021D988C + arm_func_start MOD04_021D988C +MOD04_021D988C: ; 0x021D988C stmdb sp!, {r4, lr} ldr r0, _021D98D4 ; =0x02210468 ldr r1, [r0] @@ -830,8 +830,8 @@ FUN_021D988C: ; 0x021D988C _021D98D4: .word 0x02210468 _021D98D8: .word 0x000013D8 - arm_func_start FUN_021D98DC -FUN_021D98DC: ; 0x021D98DC + arm_func_start MOD04_021D98DC +MOD04_021D98DC: ; 0x021D98DC stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021D9914 ; =0x02210468 @@ -850,8 +850,8 @@ FUN_021D98DC: ; 0x021D98DC _021D9914: .word 0x02210468 _021D9918: .word 0x00001318 - arm_func_start FUN_021D991C -FUN_021D991C: ; 0x021D991C + arm_func_start MOD04_021D991C +MOD04_021D991C: ; 0x021D991C stmdb sp!, {r4, lr} ldr r0, _021D996C ; =0x02210468 ldr r0, [r0] @@ -862,7 +862,7 @@ FUN_021D991C: ; 0x021D991C ldr r4, [r1, #0x210] cmp r0, #0 beq _021D9948 - bl FUN_021DAE4C + bl MOD04_021DAE4C _021D9948: ldr r1, _021D996C ; =0x02210468 ldr r0, _021D9970 ; =0x0220BFC4 @@ -877,8 +877,8 @@ _021D9948: _021D996C: .word 0x02210468 _021D9970: .word 0x0220BFC4 - arm_func_start FUN_021D9974 -FUN_021D9974: ; 0x021D9974 + arm_func_start MOD04_021D9974 +MOD04_021D9974: ; 0x021D9974 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021D9A0C ; =0x02210468 @@ -904,7 +904,7 @@ FUN_021D9974: ; 0x021D9974 ldr r0, [r0, #0x314] cmp r0, #0 beq _021D99DC - bl FUN_021DB440 + bl MOD04_021DB440 _021D99DC: ldr r0, _021D9A0C ; =0x02210468 ldr r1, [r0] @@ -923,8 +923,8 @@ _021D9A0C: .word 0x02210468 _021D9A10: .word 0x000013D8 _021D9A14: .word 0x00001318 - arm_func_start FUN_021D9A18 -FUN_021D9A18: ; 0x021D9A18 + arm_func_start MOD04_021D9A18 +MOD04_021D9A18: ; 0x021D9A18 stmdb sp!, {lr} sub sp, sp, #0xc ldr r1, _021D9ABC ; =0x02210468 @@ -953,7 +953,7 @@ _021D9A74: ldr r0, _021D9AC4 ; =0x00001318 ldr lr, [r2] mov r3, #0x1000 - ldr r1, _021D9AC8 ; =FUN_021D9418 + ldr r1, _021D9AC8 ; =MOD04_021D9418 str r3, [sp] mov ip, #0x10 add r0, lr, r0 @@ -971,10 +971,10 @@ _021D9A74: _021D9ABC: .word 0x02210468 _021D9AC0: .word 0x000013D8 _021D9AC4: .word 0x00001318 -_021D9AC8: .word FUN_021D9418 +_021D9AC8: .word MOD04_021D9418 - arm_func_start FUN_021D9ACC -FUN_021D9ACC: ; 0x021D9ACC + arm_func_start MOD04_021D9ACC +MOD04_021D9ACC: ; 0x021D9ACC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r2, _021D9BFC ; =0x02210468 @@ -1034,7 +1034,7 @@ _021D9B7C: ldr r1, [r1] add r1, r1, #0x1000 strb r2, [r1, #0x20b] - bl FUN_021D96EC + bl MOD04_021D96EC ldr r2, _021D9BFC ; =0x02210468 ldr r1, [r2] add r1, r1, #0x1000 @@ -1048,7 +1048,7 @@ _021D9B7C: ldr r0, _021D9C18 ; =0x02210460 mov r1, #0 str r1, [r0] - bl FUN_021D9A18 + bl MOD04_021D9A18 mov r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} @@ -1062,16 +1062,16 @@ _021D9C10: .word 0x00004E84 _021D9C14: .word 0x000011CC _021D9C18: .word 0x02210460 - arm_func_start FUN_021D9C1C -FUN_021D9C1C: ; 0x021D9C1C + arm_func_start MOD04_021D9C1C +MOD04_021D9C1C: ; 0x021D9C1C ldr r1, _021D9C28 ; =0x0220BEB4 str r0, [r1] bx lr .align 2, 0 _021D9C28: .word 0x0220BEB4 - arm_func_start FUN_021D9C2C -FUN_021D9C2C: ; 0x021D9C2C + arm_func_start MOD04_021D9C2C +MOD04_021D9C2C: ; 0x021D9C2C stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x28 mov r4, r2 @@ -1090,7 +1090,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F34 ; =0x0220BFF0 mov r0, r6 add r2, sp, #4 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1101,7 +1101,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F38 ; =0x0220BFF8 mov r0, r6 mov r2, r5 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1112,7 +1112,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F3C ; =0x0220C000 mov r0, r6 add r2, r5, #0xe - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1123,7 +1123,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F40 ; =0x0220C008 mov r0, r6 add r2, r5, #0x41 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1134,7 +1134,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F44 ; =0x0220C010 mov r0, r6 add r2, r5, #0x6f - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1145,7 +1145,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F48 ; =0x0220C018 mov r0, r6 add r2, r5, #0x15 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1156,7 +1156,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F4C ; =0x0220C020 mov r0, r6 add r2, r5, #0x1a - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1167,7 +1167,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F50 ; =0x0220C028 mov r0, r6 add r2, r5, #0x1d - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1178,7 +1178,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F54 ; =0x0220C030 mov r0, r6 add r2, r5, #0x1f - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1189,7 +1189,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F58 ; =0x0220C038 mov r0, r6 add r2, r5, #0x2c - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1200,7 +1200,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F5C ; =0x0220C040 mov r0, r6 add r2, r5, #0x2f - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1211,7 +1211,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F60 ; =0x0220C048 mov r0, r6 add r2, r5, #0x34 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1223,7 +1223,7 @@ FUN_021D9C2C: ; 0x021D9C2C mov r0, r6 add r2, r5, #0x7e mov r3, r3, lsl #1 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1236,7 +1236,7 @@ FUN_021D9C2C: ; 0x021D9C2C ldr r1, _021D9F68 ; =0x0220C058 mov r0, r6 add r2, r5, #0x4e - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1252,7 +1252,7 @@ _021D9ED0: ldr r1, _021D9F70 ; =0x0220C078 add r2, sp, #4 mov r0, r6 - bl FUN_021DAC98 + bl MOD04_021DAC98 cmp r0, #0 addne sp, sp, #0x28 movne r0, #0 @@ -1260,7 +1260,7 @@ _021D9ED0: ldr r1, _021D9F74 ; =0x0220C084 mov r0, r6 add r2, r5, #0x15 - bl FUN_021DAC98 + bl MOD04_021DAC98 cmp r0, #0 moveq r0, #1 movne r0, #0 @@ -1286,8 +1286,8 @@ _021D9F6C: .word 0x0220C060 _021D9F70: .word 0x0220C078 _021D9F74: .word 0x0220C084 - arm_func_start FUN_021D9F78 -FUN_021D9F78: ; 0x021D9F78 + arm_func_start MOD04_021D9F78 +MOD04_021D9F78: ; 0x021D9F78 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x8c mov r6, r1 @@ -1435,7 +1435,7 @@ _021DA180: cmp r6, #6 add r7, r7, #2 blt _021DA180 - bl FUN_021EBAB8 + bl MOD04_021EBAB8 mov r3, r0 ldr r2, _021DA234 ; =0x0220C0D4 add r0, r4, #0x6f @@ -1456,7 +1456,7 @@ _021DA180: _021DA1E8: mov r0, r5 add r1, r4, #0x72 - bl FUN_021EE5F4 + bl MOD04_021EE5F4 mov r0, r5 add r1, r4, #0x4e mov r2, #0x20 @@ -1476,8 +1476,8 @@ _021DA22C: .word 0x0220C0AC _021DA230: .word 0x0220C0B8 _021DA234: .word 0x0220C0D4 - arm_func_start FUN_021DA238 -FUN_021DA238: ; 0x021DA238 + arm_func_start MOD04_021DA238 +MOD04_021DA238: ; 0x021DA238 stmdb sp!, {r4, lr} sub sp, sp, #0x18 mov r4, r0 @@ -1485,12 +1485,12 @@ FUN_021DA238: ; 0x021DA238 bl FUN_02095EC8 add r1, sp, #0 mov r0, r4 - bl FUN_021D9F78 + bl MOD04_021D9F78 add sp, sp, #0x18 ldmia sp!, {r4, pc} - arm_func_start FUN_021DA260 -FUN_021DA260: ; 0x021DA260 + arm_func_start MOD04_021DA260 +MOD04_021DA260: ; 0x021DA260 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 add r0, r0, #0x1000 @@ -1533,12 +1533,12 @@ _021DA2D8: _021DA2EC: .word 0x0220C110 _021DA2F0: .word 0x0220C12C - arm_func_start FUN_021DA2F4 -FUN_021DA2F4: ; 0x021DA2F4 + arm_func_start MOD04_021DA2F4 +MOD04_021DA2F4: ; 0x021DA2F4 stmdb sp!, {r4, r5, r6, lr} mov r6, r2 mov r5, r3 - bl FUN_021DA388 + bl MOD04_021DA388 movs r4, r0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} @@ -1552,12 +1552,12 @@ FUN_021DA2F4: ; 0x021DA2F4 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021DA334 -FUN_021DA334: ; 0x021DA334 + arm_func_start MOD04_021DA334 +MOD04_021DA334: ; 0x021DA334 stmdb sp!, {r4, r5, r6, lr} mov r6, r2 mov r5, r3 - bl FUN_021DA388 + bl MOD04_021DA388 movs r4, r0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} @@ -1566,7 +1566,7 @@ FUN_021DA334: ; 0x021DA334 mov r0, r4 mov r2, r6 mov r3, r5 - bl FUN_021DD36C + bl MOD04_021DD36C mvn r1, #0 cmp r0, r1 ldmeqia sp!, {r4, r5, r6, pc} @@ -1576,8 +1576,8 @@ FUN_021DA334: ; 0x021DA334 strb r1, [r6, r0] ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021DA388 -FUN_021DA388: ; 0x021DA388 + arm_func_start MOD04_021DA388 +MOD04_021DA388: ; 0x021DA388 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 @@ -1602,8 +1602,8 @@ _021DA3D4: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021DA3DC -FUN_021DA3DC: ; 0x021DA3DC + arm_func_start MOD04_021DA3DC +MOD04_021DA3DC: ; 0x021DA3DC stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x14 ldr r2, _021DA668 ; =0x00001A34 @@ -1648,7 +1648,7 @@ FUN_021DA3DC: ; 0x021DA3DC mov r0, fp mov r3, r8 strb r5, [r8, #3] - bl FUN_021DA68C + bl MOD04_021DA68C cmp r0, #1 addne sp, sp, #0x14 strneb r7, [r8, #3] @@ -1699,7 +1699,7 @@ _021DA4FC: strb r6, [r5] add r1, sp, #8 mov r3, r8 - bl FUN_021DA68C + bl MOD04_021DA68C cmp r0, #1 strneb sl, [r7] addne sp, sp, #0x14 @@ -1752,7 +1752,7 @@ _021DA5F4: add r1, sp, #8 mov r3, sb strneb r5, [r6] - bl FUN_021DA68C + bl MOD04_021DA68C cmp r0, #1 beq _021DA634 strb r7, [sl] @@ -1787,8 +1787,8 @@ _021DA680: .word 0x0220C168 _021DA684: .word 0x0220C16C _021DA688: .word 0x0220C170 - arm_func_start FUN_021DA68C -FUN_021DA68C: ; 0x021DA68C + arm_func_start MOD04_021DA68C +MOD04_021DA68C: ; 0x021DA68C stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r1 ldr r4, [r8, #8] @@ -1881,8 +1881,8 @@ _021DA7DC: .word 0x0220C194 _021DA7E0: .word 0x0220C1B4 _021DA7E4: .word 0x0220C1D0 - arm_func_start FUN_021DA7E8 -FUN_021DA7E8: ; 0x021DA7E8 + arm_func_start MOD04_021DA7E8 +MOD04_021DA7E8: ; 0x021DA7E8 stmdb sp!, {r4, r5, r6, lr} mov r6, r1 mov r5, r0 @@ -1978,8 +1978,8 @@ _021DA944: .word 0x000001BB _021DA948: .word 0x0220C200 _021DA94C: .word 0x0220C204 - arm_func_start FUN_021DA950 -FUN_021DA950: ; 0x021DA950 + arm_func_start MOD04_021DA950 +MOD04_021DA950: ; 0x021DA950 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 add r0, r0, #0x1000 @@ -2030,8 +2030,8 @@ FUN_021DA950: ; 0x021DA950 _021DAA08: .word 0x0220C208 _021DAA0C: .word 0x0220C218 - arm_func_start FUN_021DAA10 -FUN_021DAA10: ; 0x021DAA10 + arm_func_start MOD04_021DAA10 +MOD04_021DAA10: ; 0x021DAA10 stmdb sp!, {r4, lr} mov r4, r1 ldr r1, [r4] @@ -2051,8 +2051,8 @@ _021DAA38: .align 2, 0 _021DAA4C: .word 0x0220C218 - arm_func_start FUN_021DAA50 -FUN_021DAA50: ; 0x021DAA50 + arm_func_start MOD04_021DAA50 +MOD04_021DAA50: ; 0x021DAA50 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r5, r2 @@ -2083,14 +2083,14 @@ FUN_021DAA50: ; 0x021DAA50 .align 2, 0 _021DAABC: .word 0x0220C22C - arm_func_start FUN_021DAAC0 -FUN_021DAAC0: ; 0x021DAAC0 + arm_func_start MOD04_021DAAC0 +MOD04_021DAAC0: ; 0x021DAAC0 ands r1, r0, #0x8000 bicne r0, r0, #0x8000 bx lr - arm_func_start FUN_021DAACC -FUN_021DAACC: ; 0x021DAACC + arm_func_start MOD04_021DAACC +MOD04_021DAACC: ; 0x021DAACC stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r2, _021DAB60 ; =0x000019F4 @@ -2109,7 +2109,7 @@ FUN_021DAACC: ; 0x021DAACC mov r0, r7 mov r1, r4 add r2, r2, #1 - bl FUN_021DA950 + bl MOD04_021DA950 cmp r0, #0 addeq sp, sp, #4 moveq r0, #1 @@ -2133,8 +2133,8 @@ _021DAB34: _021DAB60: .word 0x000019F4 _021DAB64: .word 0x0220C240 - arm_func_start FUN_021DAB68 -FUN_021DAB68: ; 0x021DAB68 + arm_func_start MOD04_021DAB68 +MOD04_021DAB68: ; 0x021DAB68 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 mov sl, r0 @@ -2156,7 +2156,7 @@ FUN_021DAB68: ; 0x021DAB68 mov r1, r7 mov r3, r2 str fp, [r5, #0x9f0] - bl FUN_021DD4FC + bl MOD04_021DD4FC mov r5, r0 mov r0, r6 bl strlen @@ -2175,7 +2175,7 @@ FUN_021DAB68: ; 0x021DAB68 mov r0, sl mov r1, r4 add r2, r2, #1 - bl FUN_021DA950 + bl MOD04_021DA950 cmp r0, #0 addeq sp, sp, #4 moveq r0, #1 @@ -2196,7 +2196,7 @@ _021DAC28: mov r0, r8 sub r3, r3, r2 sub r3, r3, #1 - bl FUN_021DD4FC + bl MOD04_021DD4FC cmp r0, #0 addlt sp, sp, #4 movlt r0, #1 @@ -2214,8 +2214,8 @@ _021DAC8C: .word 0x000019F4 _021DAC90: .word 0x0220C244 _021DAC94: .word 0x0220C248 - arm_func_start FUN_021DAC98 -FUN_021DAC98: ; 0x021DAC98 + arm_func_start MOD04_021DAC98 +MOD04_021DAC98: ; 0x021DAC98 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov r6, r2 @@ -2244,7 +2244,7 @@ FUN_021DAC98: ; 0x021DAC98 mov r0, r8 mov r1, r5 add r2, r2, #1 - bl FUN_021DA950 + bl MOD04_021DA950 cmp r0, #0 addeq sp, sp, #4 moveq r0, #1 @@ -2279,8 +2279,8 @@ _021DAD7C: .word 0x000019F4 _021DAD80: .word 0x0220C250 _021DAD84: .word 0x0220C148 - arm_func_start FUN_021DAD88 -FUN_021DAD88: ; 0x021DAD88 + arm_func_start MOD04_021DAD88 +MOD04_021DAD88: ; 0x021DAD88 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 mov r7, r0 @@ -2308,7 +2308,7 @@ FUN_021DAD88: ; 0x021DAD88 add r2, r1, #0x400 add r1, r7, r0 mov r0, r7 - bl FUN_021DAA50 + bl MOD04_021DAA50 cmp r0, #1 addne sp, sp, #8 movne r0, #1 @@ -2332,8 +2332,8 @@ _021DAE40: .word 0x000019F4 _021DAE44: .word 0x0220C25C _021DAE48: .word 0x0220C2B0 - arm_func_start FUN_021DAE4C -FUN_021DAE4C: ; 0x021DAE4C + arm_func_start MOD04_021DAE4C +MOD04_021DAE4C: ; 0x021DAE4C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r5, r0 @@ -2344,15 +2344,15 @@ FUN_021DAE4C: ; 0x021DAE4C ldr r1, _021DAF00 ; =0x00001A34 mov r2, #0x20 add r1, r5, r1 - bl FUN_021DA260 + bl MOD04_021DA260 ldr r1, _021DAF04 ; =0x00001A04 mov r0, r5 add r1, r5, r1 - bl FUN_021DAA10 + bl MOD04_021DAA10 ldr r1, _021DAF08 ; =0x000019F4 mov r0, r5 add r1, r5, r1 - bl FUN_021DAA10 + bl MOD04_021DAA10 add r0, r5, #0x1000 ldr r1, [r0, #0x9c8] cmp r1, #0 @@ -2389,8 +2389,8 @@ _021DAF0C: .word 0x0220C2D0 _021DAF10: .word 0x0220C2E8 _021DAF14: .word 0x00001C10 - arm_func_start FUN_021DAF18 -FUN_021DAF18: ; 0x021DAF18 + arm_func_start MOD04_021DAF18 +MOD04_021DAF18: ; 0x021DAF18 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc mov sl, r0 @@ -2406,9 +2406,9 @@ FUN_021DAF18: ; 0x021DAF18 add r7, sl, r2 mov r5, #0 ldrle fp, _021DB230 ; =0x0000EA60 - bl FUN_021DB35C + bl MOD04_021DB35C mov r0, sl - bl FUN_021DB348 + bl MOD04_021DB348 movs r4, r0 addeq r0, sl, #0x1000 moveq r1, #2 @@ -2424,7 +2424,7 @@ FUN_021DAF18: ; 0x021DAF18 mov r1, #0 mov r2, #0x830 bl MI_CpuFill8 - ldr r1, _021DB234 ; =FUN_021DAAC0 + ldr r1, _021DB234 ; =MOD04_021DAAC0 add r0, sl, #0x1000 str r1, [r6, #0x810] ldr r1, [r0, #0x124] @@ -2467,7 +2467,7 @@ _021DB004: ble _021DB20C bl FUN_0209BF4C mov r0, sl - bl FUN_021DB3B8 + bl MOD04_021DB3B8 cmp r0, #0 addeq r0, sl, #0x1000 moveq r1, #7 @@ -2535,7 +2535,7 @@ _021DB088: b _021DB150 _021DB144: mov r0, sl - bl FUN_021DB248 + bl MOD04_021DB248 mov r5, r0 _021DB150: ldr r0, [sp, #8] @@ -2572,7 +2572,7 @@ _021DB188: strhi r1, [r0, #0x20] bhi _021DB20C mov r0, sl - bl FUN_021DB3B8 + bl MOD04_021DB3B8 cmp r0, #0 bne _021DB088 add r0, sl, #0x1000 @@ -2601,14 +2601,14 @@ _021DB224: .word 0x00001134 _021DB228: .word 0x00001198 _021DB22C: .word 0x00001A04 _021DB230: .word 0x0000EA60 -_021DB234: .word FUN_021DAAC0 +_021DB234: .word MOD04_021DAAC0 _021DB238: .word 0x0220C0E4 _021DB23C: .word 0x021C8F04 _021DB240: .word 0x00001A14 _021DB244: .word 0x000082EA - arm_func_start FUN_021DB248 -FUN_021DB248: ; 0x021DB248 + arm_func_start MOD04_021DB248 +MOD04_021DB248: ; 0x021DB248 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, r0 @@ -2675,8 +2675,8 @@ _021DB33C: .word 0x00001A14 _021DB340: .word 0x0220C300 _021DB344: .word 0x0220C164 - arm_func_start FUN_021DB348 -FUN_021DB348: ; 0x021DB348 + arm_func_start MOD04_021DB348 +MOD04_021DB348: ; 0x021DB348 ldr ip, _021DB358 ; =0x0209AB80 add r0, r0, #0x1000 ldr r0, [r0, #0x124] @@ -2684,8 +2684,8 @@ FUN_021DB348: ; 0x021DB348 .align 2, 0 _021DB358: .word 0x0209AB80 - arm_func_start FUN_021DB35C -FUN_021DB35C: ; 0x021DB35C + arm_func_start MOD04_021DB35C +MOD04_021DB35C: ; 0x021DB35C stmdb sp!, {r4, lr} ldr r1, _021DB3AC ; =0x00001134 mov r4, r0 @@ -2711,8 +2711,8 @@ _021DB3AC: .word 0x00001134 _021DB3B0: .word 0x00000B68 _021DB3B4: .word 0x000005EA - arm_func_start FUN_021DB3B8 -FUN_021DB3B8: ; 0x021DB3B8 + arm_func_start MOD04_021DB3B8 +MOD04_021DB3B8: ; 0x021DB3B8 stmdb sp!, {r4, lr} mov r4, r0 add r0, r4, #0x1000 @@ -2751,8 +2751,8 @@ _021DB41C: _021DB438: .word 0x000019D0 _021DB43C: .word 0x00001BF4 - arm_func_start FUN_021DB440 -FUN_021DB440: ; 0x021DB440 + arm_func_start MOD04_021DB440 +MOD04_021DB440: ; 0x021DB440 stmdb sp!, {r4, lr} mov r4, r0 add r0, r4, #0x1000 @@ -2780,8 +2780,8 @@ FUN_021DB440: ; 0x021DB440 _021DB49C: .word 0x00001BF4 _021DB4A0: .word 0x00001B34 - arm_func_start FUN_021DB4A4 -FUN_021DB4A4: ; 0x021DB4A4 + arm_func_start MOD04_021DB4A4 +MOD04_021DB4A4: ; 0x021DB4A4 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc ldr r3, _021DB55C ; =0x00001BF4 @@ -2818,7 +2818,7 @@ _021DB524: ldr r0, _021DB568 ; =0x00001B34 mov r1, #0x1000 str r1, [sp] - ldr r1, _021DB56C ; =FUN_021DAF18 + ldr r1, _021DB56C ; =MOD04_021DAF18 mov r2, r5 add r0, r5, r0 add r3, r5, #0x1000 @@ -2834,16 +2834,16 @@ _021DB55C: .word 0x00001BF4 _021DB560: .word 0x00001A14 _021DB564: .word 0x02210480 _021DB568: .word 0x00001B34 -_021DB56C: .word FUN_021DAF18 +_021DB56C: .word MOD04_021DAF18 - arm_func_start FUN_021DB570 -FUN_021DB570: ; 0x021DB570 + arm_func_start MOD04_021DB570 +MOD04_021DB570: ; 0x021DB570 stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r1, _021DB5F4 ; =0x0220C314 ldr r2, _021DB5F8 ; =0x0220C320 mov r4, r0 - bl FUN_021DAC98 + bl MOD04_021DAC98 cmp r0, #0 addne sp, sp, #8 movne r0, #1 @@ -2863,7 +2863,7 @@ FUN_021DB570: ; 0x021DB570 ldr r1, _021DB604 ; =0x0220C32C add r2, sp, #0 mov r0, r4 - bl FUN_021DAC98 + bl MOD04_021DAC98 cmp r0, #0 addne sp, sp, #8 movne r0, #1 @@ -2879,8 +2879,8 @@ _021DB5FC: .word 0x0220C148 _021DB600: .word 0x0220C328 _021DB604: .word 0x0220C32C - arm_func_start FUN_021DB608 -FUN_021DB608: ; 0x021DB608 + arm_func_start MOD04_021DB608 +MOD04_021DB608: ; 0x021DB608 stmdb sp!, {r4, r5, r6, lr} mov r5, r1 ldr r2, _021DB714 ; =0x00001C10 @@ -2923,7 +2923,7 @@ FUN_021DB608: ; 0x021DB608 ldr r2, [r2, #0xc] mov r0, r6 add r1, r6, r1 - bl FUN_021DAA50 + bl MOD04_021DAA50 cmp r0, #0 addeq r1, r6, #0x1000 moveq r0, #1 @@ -2931,14 +2931,14 @@ FUN_021DB608: ; 0x021DB608 ldmeqia sp!, {r4, r5, r6, pc} ldr r1, [r5] mov r0, r6 - bl FUN_021DA7E8 + bl MOD04_021DA7E8 cmp r0, #0 addeq r1, r6, #0x1000 moveq r0, #1 streq r0, [r1, #0x20] ldmeqia sp!, {r4, r5, r6, pc} mov r0, r6 - bl FUN_021DAD88 + bl MOD04_021DAD88 add r1, r6, #0x1000 str r0, [r1, #0x20] ldr r0, [r1, #0x20] @@ -2957,8 +2957,8 @@ _021DB724: .word 0x0220C354 _021DB728: .word 0x000005EA _021DB72C: .word 0x00001A04 - arm_func_start FUN_021DB730 -FUN_021DB730: ; 0x021DB730 + arm_func_start MOD04_021DB730 +MOD04_021DB730: ; 0x021DB730 stmdb sp!, {r4, lr} ldr r2, _021DB770 ; =0x02210484 ldr r1, _021DB774 ; =0x000011DC @@ -2979,8 +2979,8 @@ FUN_021DB730: ; 0x021DB730 _021DB770: .word 0x02210484 _021DB774: .word 0x000011DC - arm_func_start FUN_021DB778 -FUN_021DB778: ; 0x021DB778 + arm_func_start MOD04_021DB778 +MOD04_021DB778: ; 0x021DB778 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x2d4 ldr r5, _021DC670 ; =0x02210484 @@ -3046,25 +3046,25 @@ _021DB830: str r0, [r1, #4] ldr r0, [r4] ldr r1, _021DC678 ; =0x02210494 - bl FUN_021DB608 + bl MOD04_021DB608 cmp r0, #0 beq _021DB89C ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #1 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DB89C: ldr r0, [r4] - bl FUN_021DB570 + bl MOD04_021DB570 cmp r0, #0 beq _021DB8C4 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #1 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DB8C4: ldr r0, _021DC684 ; =0x021D3498 @@ -3072,7 +3072,7 @@ _021DB8C4: bl OS_GetThreadPriority sub r1, r0, #1 ldr r0, [r4] - bl FUN_021DB4A4 + bl MOD04_021DB4A4 ldr r1, [r4] add r0, r1, #0x1000 ldr r0, [r0, #0xba0] @@ -3099,25 +3099,25 @@ _021DB91C: _021DB930: ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #3 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DB948: ldr r1, [sp, #0x1c] - bl FUN_021DA3DC + bl MOD04_021DA3DC cmp r0, #1 beq _021DB970 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #2 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DB970: ldr r0, [r4] ldr r1, _021DC68C ; =0x0220C418 - bl FUN_021DA388 + bl MOD04_021DA388 bl atol mov sl, r0 ldr r0, _021DC690 ; =0x021D74A8 @@ -3125,7 +3125,7 @@ _021DB970: cmp r0, #0x22 bne _021DB9A0 mov r0, #2 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DB9A0: cmp sl, #0xc8 @@ -3144,7 +3144,7 @@ _021DB9A0: mvn r2, #5 str r2, [r0, #4] ldr r0, [r1] - bl FUN_021DAE4C + bl MOD04_021DAE4C ldr r2, _021DC678 ; =0x02210494 ldr r0, _021DC69C ; =0x0220BEB4 ldr r3, _021DC67C ; =0x00004E20 @@ -3166,33 +3166,33 @@ _021DB9A0: ldr r0, _021DC674 ; =0x02210490 ldr r1, _021DC678 ; =0x02210494 ldr r0, [r0] - bl FUN_021DB608 + bl MOD04_021DB608 cmp r0, #0 beq _021DBA5C ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #1 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBA5C: add r0, sp, #0x240 - bl FUN_021DA238 + bl MOD04_021DA238 cmp r0, #0 beq _021DBA88 ldr r0, _021DC674 ; =0x02210490 add r1, sp, #0x240 ldr r0, [r0] mov r2, #1 - bl FUN_021D9C2C + bl MOD04_021D9C2C cmp r0, #0 bne _021DBAA0 _021DBA88: ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #8 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBAA0: ldr r0, _021DC674 ; =0x02210490 @@ -3200,7 +3200,7 @@ _021DBAA0: ldr r0, [r0] ldr r2, _021DC6A8 ; =0x0220C44C mov r3, #7 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 bne _021DBAF8 ldr r0, _021DC670 ; =0x02210484 @@ -3214,15 +3214,15 @@ _021DBAA0: ldr r0, [r1] ldr r1, _021DC6AC ; =0x0220C454 mov r2, r4 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 beq _021DBB10 _021DBAF8: ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #8 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBB10: ldr r1, _021DC670 ; =0x02210484 @@ -3239,14 +3239,14 @@ _021DBB10: add r0, r0, #0x1000 str r2, [r0, #0x118] ldr r0, [r1] - bl FUN_021DB570 + bl MOD04_021DB570 cmp r0, #0 beq _021DBB6C ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #1 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBB6C: ldr r0, _021DC684 ; =0x021D3498 @@ -3255,7 +3255,7 @@ _021DBB6C: ldr r2, _021DC674 ; =0x02210490 sub r1, r0, #1 ldr r0, [r2] - bl FUN_021DB4A4 + bl MOD04_021DB4A4 ldr r0, _021DC674 ; =0x02210490 ldr r1, [r0] add r0, r1, #0x1000 @@ -3284,14 +3284,14 @@ _021DBBD0: _021DBBE4: ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #3 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBBFC: - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #7 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBC0C: ldr r0, [r4] @@ -3299,9 +3299,9 @@ _021DBC0C: ldr fp, [r1, #0xa04] cmp fp, #0 bne _021DBC30 - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #2 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBC30: mov r0, fp @@ -3320,9 +3320,9 @@ _021DBC30: bne _021DBC80 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #4 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBC80: mov r0, fp @@ -3335,13 +3335,13 @@ _021DBC80: _021DBC9C: ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #0xa - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBCB4: ldr r0, [r4] - bl FUN_021DAE4C + bl MOD04_021DAE4C add r0, sp, #0x68 bl FUN_02095EC8 ldr r2, [sp, #0x68] @@ -3367,18 +3367,18 @@ _021DBCB4: str fp, [r2, #0x40] ldr r3, [r3, #0x10c] str r3, [r2, #0x44] - bl FUN_021D9ACC + bl MOD04_021D9ACC cmp r0, #0 beq _021DBD38 mov r0, #5 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBD38: - bl FUN_021D98DC - bl FUN_021D988C + bl MOD04_021D98DC + bl MOD04_021D988C cmp r0, #0x15 beq _021DBDE8 - bl FUN_021D988C + bl MOD04_021D988C cmp r0, #9 bne _021DBD6C ldr r0, _021DC670 ; =0x02210484 @@ -3389,7 +3389,7 @@ _021DBD38: b _021DBDD8 _021DBD6C: add r0, sp, #0x7c - bl FUN_021D97F8 + bl MOD04_021D97F8 ldr r0, _021DC6BC ; =0x02210488 ldr r0, [r0] cmp r0, #1 @@ -3398,7 +3398,7 @@ _021DBD6C: ldr r0, _021DC6C0 ; =0xFFFFA4FA cmp r1, r0 beq _021DBDA0 - bl FUN_021D988C + bl MOD04_021D988C cmp r0, #0xb bne _021DBDC4 _021DBDA0: @@ -3407,9 +3407,9 @@ _021DBDA0: ldr r0, [r0] add r0, r0, #0x1000 str r1, [r0, #4] - bl FUN_021D991C + bl MOD04_021D991C mov r0, #0xb - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBDC4: ldr r0, _021DC670 ; =0x02210484 @@ -3418,12 +3418,12 @@ _021DBDC4: add r0, r0, #0x1000 str r1, [r0, #4] _021DBDD8: - bl FUN_021D991C + bl MOD04_021D991C mov r0, #6 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBDE8: - bl FUN_021D991C + bl MOD04_021D991C _021DBDEC: cmp sl, #0xc8 bne _021DBE14 @@ -3433,7 +3433,7 @@ _021DBDEC: mov r0, #0xb add r1, r1, #0x1000 str r2, [r1, #4] - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBE14: ldr r0, [r5] @@ -3460,39 +3460,39 @@ _021DBE14: ldr r1, _021DC678 ; =0x02210494 strne r6, [r0, #0x14] ldr r0, [r4] - bl FUN_021DB608 + bl MOD04_021DB608 cmp r0, #0 beq _021DBE98 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #1 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBE98: add r0, sp, #0x240 - bl FUN_021DA238 + bl MOD04_021DA238 cmp r0, #0 beq _021DBEC0 ldr r0, [r4] add r1, sp, #0x240 mov r2, r6 - bl FUN_021D9C2C + bl MOD04_021D9C2C cmp r0, #0 bne _021DBED8 _021DBEC0: ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #8 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBED8: ldr r0, [r4] ldr r1, _021DC6A4 ; =0x0220C444 ldr r2, _021DC6C8 ; =0x0220C484 ldr r3, [sp, #0x30] - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 bne _021DBF24 ldr r0, [r5] @@ -3504,15 +3504,15 @@ _021DBED8: ldr r0, [r4] ldr r1, _021DC6CC ; =0x0220C48C mov r2, sl - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 beq _021DBF3C _021DBF24: ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #8 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBF3C: ldr r1, [r5] @@ -3526,14 +3526,14 @@ _021DBF3C: ldr r0, [sp, #0x38] str r0, [r1, #0x114] ldr r0, [r4] - bl FUN_021DB570 + bl MOD04_021DB570 cmp r0, #0 beq _021DBF8C ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #1 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DBF8C: ldr r0, _021DC684 ; =0x021D3498 @@ -3541,7 +3541,7 @@ _021DBF8C: bl OS_GetThreadPriority sub r1, r0, #1 ldr r0, [r4] - bl FUN_021DB4A4 + bl MOD04_021DB4A4 ldr r1, [r4] add r0, r1, #0x1000 ldr r0, [r0, #0xba0] @@ -3562,7 +3562,7 @@ _021DBFC4: beq _021DC058 b _021DC040 _021DBFEC: - bl FUN_021DAE4C + bl MOD04_021DAE4C ldr r0, _021DC6BC ; =0x02210488 ldr r0, [r0] cmp r0, #1 @@ -3573,11 +3573,11 @@ _021DBFEC: mov r0, #0xb add r1, r1, #0x1000 str r2, [r1, #4] - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC020: mov r0, #3 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC02C: ldr r0, _021DC670 ; =0x02210484 @@ -3588,25 +3588,25 @@ _021DC02C: _021DC040: ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #3 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC058: ldr r1, [sp, #0x3c] - bl FUN_021DA3DC + bl MOD04_021DA3DC cmp r0, #1 beq _021DC080 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #2 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC080: ldr r0, [r4] ldr r1, _021DC68C ; =0x0220C418 - bl FUN_021DA388 + bl MOD04_021DA388 bl atol mov sl, r0 ldr r0, _021DC690 ; =0x021D74A8 @@ -3615,16 +3615,16 @@ _021DC080: bne _021DC0BC ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #2 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC0BC: cmp sl, #0xc8 beq _021DC118 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C ldr r0, _021DC6BC ; =0x02210488 ldr r0, [r0] cmp r0, #1 @@ -3638,25 +3638,25 @@ _021DC0BC: mov r0, #0xb add r1, r1, #0x1000 str r2, [r1, #4] - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC10C: mov r0, #2 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC118: ldr r0, [r4] ldr r1, _021DC6D4 ; =0x0220C494 ldr r3, [sp, #0x40] add r2, sp, #0x64 - bl FUN_021DA334 + bl MOD04_021DA334 cmp r0, #0 bgt _021DC14C ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #9 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC14C: add r0, sp, #0x64 @@ -3667,9 +3667,9 @@ _021DC14C: bne _021DC17C ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #9 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC17C: ldr r1, _021DC6BC ; =0x02210488 @@ -3684,53 +3684,53 @@ _021DC17C: mov r0, #0xb add r1, r1, #0x1000 str r2, [r1, #4] - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC1B4: cmp r0, #0x64 blt _021DC1D4 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #6 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC1D4: ldr r2, [sp, #0x44] ldr r0, [r4] ldr r1, _021DC6D8 ; =0x0220C4A0 mov r3, r2 - bl FUN_021DA334 + bl MOD04_021DA334 mov fp, r0 cmp fp, #0 bgt _021DC20C ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #9 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC20C: ldr r2, [sp, #0x48] ldr r0, [r4] ldr r1, _021DC6DC ; =0x0220C4A4 mov r3, r2 - bl FUN_021DA334 + bl MOD04_021DA334 str r0, [sp, #4] cmp r0, #0 bgt _021DC244 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #9 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC244: ldr r2, [sp, #0x4c] ldr r0, [r4] ldr r1, _021DC6E0 ; =0x0220C4AC mov r3, r2 - bl FUN_021DA334 + bl MOD04_021DA334 mov sl, r0 ldr r0, _021DC6E4 ; =0x0220C3CC add r1, fp, #1 @@ -3740,9 +3740,9 @@ _021DC244: bne _021DC28C ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #4 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC28C: ldr r1, [sp, #4] @@ -3753,9 +3753,9 @@ _021DC28C: bne _021DC2BC ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #4 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC2BC: cmp sl, #0 @@ -3768,23 +3768,23 @@ _021DC2BC: bne _021DC2F4 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #4 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC2F4: ldr r0, [r4] ldr r1, _021DC6D8 ; =0x0220C4A0 ldr r2, [sp] add r3, fp, #1 - bl FUN_021DA334 + bl MOD04_021DA334 cmp r0, #0 bge _021DC328 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #9 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC328: ldr r1, [sp, #4] @@ -3795,14 +3795,14 @@ _021DC328: ldr r0, [r4] ldr r1, _021DC6DC ; =0x0220C4A4 mov r2, r7 - bl FUN_021DA334 + bl MOD04_021DA334 cmp r0, #0 bge _021DC36C ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #9 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC36C: ldr r1, [sp, #0x54] @@ -3814,14 +3814,14 @@ _021DC36C: ldr r1, _021DC6E0 ; =0x0220C4AC ldr r2, [sp, #8] add r3, sl, #1 - bl FUN_021DA334 + bl MOD04_021DA334 cmp r0, #0 bge _021DC3B4 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #9 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC3B4: ldr r2, [sp, #0x58] @@ -3835,9 +3835,9 @@ _021DC3B4: bne _021DC3F0 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #9 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC3F0: mov r1, #0x3e8 @@ -3847,7 +3847,7 @@ _021DC3F0: movgt fp, r0 _021DC404: ldr r0, [r4] - bl FUN_021DAE4C + bl MOD04_021DAE4C ldr r0, [r5] ldr r1, _021DC678 ; =0x02210494 add r2, r0, #0x1000 @@ -3865,37 +3865,37 @@ _021DC404: ldr r2, _021DC6F4 ; =0x0001D4C0 str r2, [r0, #0x18] ldr r0, [r4] - bl FUN_021DB608 + bl MOD04_021DB608 cmp r0, #0 beq _021DC474 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #1 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC474: ldr r0, [r4] mov r1, r7 - bl FUN_021DAACC + bl MOD04_021DAACC cmp r0, #0 beq _021DC4A0 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #8 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC4A0: ldr r0, [r4] - bl FUN_021DB570 + bl MOD04_021DB570 cmp r0, #0 beq _021DC4C8 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #1 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC4C8: ldr r0, _021DC684 ; =0x021D3498 @@ -3903,7 +3903,7 @@ _021DC4C8: bl OS_GetThreadPriority sub r1, r0, #1 ldr r0, [r4] - bl FUN_021DB4A4 + bl MOD04_021DB4A4 ldr r1, [r4] add r0, r1, #0x1000 ldr r0, [r0, #0xba0] @@ -3930,20 +3930,20 @@ _021DC520: _021DC534: ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #3 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC54C: mov r1, r6 - bl FUN_021DA3DC + bl MOD04_021DA3DC cmp r0, #1 beq _021DC574 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #2 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC574: ldr r0, [r4] @@ -3951,9 +3951,9 @@ _021DC574: ldr sl, [r1, #0xa04] cmp sl, #0 bne _021DC598 - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #2 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC598: mov r0, sl @@ -3972,9 +3972,9 @@ _021DC598: bne _021DC5E8 ldr r0, _021DC674 ; =0x02210490 ldr r0, [r0] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, #4 - bl FUN_021DB730 + bl MOD04_021DB730 b _021DC614 _021DC5E8: mov r0, sl @@ -3984,7 +3984,7 @@ _021DC5E8: mov r1, sl bl strncpy ldr r0, [r4] - bl FUN_021DAE4C + bl MOD04_021DAE4C mov r0, fp bl OS_Sleep b _021DB830 @@ -4054,8 +4054,8 @@ _021DC6FC: .word 0x0220C4B4 _021DC700: .word 0x0220C4C0 _021DC704: .word 0x0220C4CC - arm_func_start FUN_021DC708 -FUN_021DC708: ; 0x021DC708 + arm_func_start MOD04_021DC708 +MOD04_021DC708: ; 0x021DC708 stmdb sp!, {lr} sub sp, sp, #0xc ldr r0, _021DC788 ; =0x02210484 @@ -4075,7 +4075,7 @@ _021DC740: ldr r0, _021DC78C ; =0x0000111C ldr r2, [r1] mov r3, #0x1000 - ldr r1, _021DC790 ; =FUN_021DB778 + ldr r1, _021DC790 ; =MOD04_021DB778 str r3, [sp] mov ip, #0x10 add r0, r2, r0 @@ -4092,10 +4092,10 @@ _021DC740: .align 2, 0 _021DC788: .word 0x02210484 _021DC78C: .word 0x0000111C -_021DC790: .word FUN_021DB778 +_021DC790: .word MOD04_021DB778 - arm_func_start FUN_021DC794 -FUN_021DC794: ; 0x021DC794 + arm_func_start MOD04_021DC794 +MOD04_021DC794: ; 0x021DC794 ldr r0, _021DC7A8 ; =0x02210484 ldr r0, [r0] add r0, r0, #0x1000 @@ -4104,8 +4104,8 @@ FUN_021DC794: ; 0x021DC794 .align 2, 0 _021DC7A8: .word 0x02210484 - arm_func_start FUN_021DC7AC -FUN_021DC7AC: ; 0x021DC7AC + arm_func_start MOD04_021DC7AC +MOD04_021DC7AC: ; 0x021DC7AC stmdb sp!, {r4, lr} ldr r1, _021DC7E8 ; =0x02210484 ldr r0, _021DC7EC ; =0x000011DC @@ -4125,8 +4125,8 @@ FUN_021DC7AC: ; 0x021DC7AC _021DC7E8: .word 0x02210484 _021DC7EC: .word 0x000011DC - arm_func_start FUN_021DC7F0 -FUN_021DC7F0: ; 0x021DC7F0 + arm_func_start MOD04_021DC7F0 +MOD04_021DC7F0: ; 0x021DC7F0 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021DC864 ; =0x02210484 @@ -4138,9 +4138,9 @@ FUN_021DC7F0: ; 0x021DC7F0 ldr r0, [r0] cmp r0, #0 beq _021DC820 - bl FUN_021DB440 + bl MOD04_021DB440 _021DC820: - bl FUN_021D9974 + bl MOD04_021D9974 ldr r0, _021DC864 ; =0x02210484 ldr r1, [r0] add r0, r1, #0x1000 @@ -4163,8 +4163,8 @@ _021DC864: .word 0x02210484 _021DC868: .word 0x02210490 _021DC86C: .word 0x0000111C - arm_func_start FUN_021DC870 -FUN_021DC870: ; 0x021DC870 + arm_func_start MOD04_021DC870 +MOD04_021DC870: ; 0x021DC870 stmdb sp!, {r4, lr} ldr r1, _021DC958 ; =0x02210484 ldr r0, _021DC95C ; =0x02210490 @@ -4174,7 +4174,7 @@ FUN_021DC870: ; 0x021DC870 cmp r0, #0 ldr r4, [r1, #0x10c] beq _021DC8B8 - bl FUN_021DAE4C + bl MOD04_021DAE4C ldr r1, _021DC95C ; =0x02210490 ldr r0, _021DC960 ; =0x0220C4D8 ldr r1, [r1] @@ -4184,7 +4184,7 @@ FUN_021DC870: ; 0x021DC870 mov r1, #0 str r1, [r0] _021DC8B8: - bl FUN_021D991C + bl MOD04_021D991C ldr r0, _021DC958 ; =0x02210484 ldr r0, [r0] cmp r0, #0 @@ -4234,8 +4234,8 @@ _021DC964: .word 0x0220C3B0 _021DC968: .word 0x0220C464 _021DC96C: .word 0x0220C4E8 - arm_func_start FUN_021DC970 -FUN_021DC970: ; 0x021DC970 + arm_func_start MOD04_021DC970 +MOD04_021DC970: ; 0x021DC970 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r1, _021DCA5C ; =0x02210484 @@ -4291,7 +4291,7 @@ FUN_021DC970: ; 0x021DC970 add r0, r2, r0 str r3, [r1] bl OS_InitMutex - bl FUN_021DC708 + bl MOD04_021DC708 mov r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} @@ -4307,8 +4307,8 @@ _021DCA78: .word 0x00001C10 _021DCA7C: .word 0x000011DC _021DCA80: .word 0x0221048C - arm_func_start FUN_021DCA84 -FUN_021DCA84: ; 0x021DCA84 + arm_func_start MOD04_021DCA84 +MOD04_021DCA84: ; 0x021DCA84 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x40 mov r6, r0 @@ -4459,8 +4459,8 @@ _021DCCBC: .word 0x0220C550 _021DCCC0: .word 0x022104FC _021DCCC4: .word 0x022104F8 - arm_func_start FUN_021DCCC8 -FUN_021DCCC8: ; 0x021DCCC8 + arm_func_start MOD04_021DCCC8 +MOD04_021DCCC8: ; 0x021DCCC8 stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r0, _021DCED4 ; =0x02210504 @@ -4468,31 +4468,31 @@ FUN_021DCCC8: ; 0x021DCCC8 ldr r0, [r0] add r4, r0, #8 mov r0, r4 - bl FUN_021DA3DC + bl MOD04_021DA3DC cmp r0, #0 bne _021DCD08 ldr r1, _021DCED8 ; =0xFFFF9DF3 mov r0, #0x10 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #8 mov r0, #0 ldmia sp!, {r4, pc} _021DCD08: ldr r1, _021DCEDC ; =0x0220C5A0 mov r0, r4 - bl FUN_021DA388 + bl MOD04_021DA388 cmp r0, #0 beq _021DCD20 - bl FUN_021DCA84 + bl MOD04_021DCA84 _021DCD20: ldr r1, _021DCEE0 ; =0x0220C5A8 mov r0, r4 - bl FUN_021DA388 + bl MOD04_021DA388 cmp r0, #0 bne _021DCD4C ldr r1, _021DCED8 ; =0xFFFF9DF3 mov r0, #0x10 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #8 mov r0, #0 ldmia sp!, {r4, pc} @@ -4505,7 +4505,7 @@ _021DCD4C: bne _021DCD7C ldr r1, _021DCED8 ; =0xFFFF9DF3 mov r0, #0x10 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #8 mov r0, #0 ldmia sp!, {r4, pc} @@ -4515,7 +4515,7 @@ _021DCD7C: ldr r1, _021DCEE8 ; =0xFFFF9E58 mov r0, #0x10 sub r1, r1, r2 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #8 mov r0, #0 ldmia sp!, {r4, pc} @@ -4524,12 +4524,12 @@ _021DCDA0: add r2, sp, #0 mov r0, r4 mov r3, #4 - bl FUN_021DA334 + bl MOD04_021DA334 cmp r0, #0 bgt _021DCDD4 ldr r1, _021DCED8 ; =0xFFFF9DF3 mov r0, #0x10 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #8 mov r0, #0 ldmia sp!, {r4, pc} @@ -4543,7 +4543,7 @@ _021DCDD4: bne _021DCE08 ldr r1, _021DCED8 ; =0xFFFF9DF3 mov r0, #0x10 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #8 mov r0, #0 ldmia sp!, {r4, pc} @@ -4553,7 +4553,7 @@ _021DCE08: ldr r1, _021DCEF0 ; =0xFFFFA240 mov r0, #0x10 sub r1, r1, r2 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #8 mov r0, #0 ldmia sp!, {r4, pc} @@ -4566,7 +4566,7 @@ _021DCE2C: ldr r2, [r2, #0xc18] mov r3, #0x40 add r2, r2, #4 - bl FUN_021DA334 + bl MOD04_021DA334 ldr r0, _021DCED4 ; =0x02210504 ldr r1, _021DCEF8 ; =0x0220C5C8 ldr r2, [r0] @@ -4575,12 +4575,12 @@ _021DCE2C: ldr r2, [r2, #0xc18] mov r3, #0x12c add r2, r2, #0x45 - bl FUN_021DA334 + bl MOD04_021DA334 ldr r1, _021DCEFC ; =0x0220C5D8 add r2, sp, #0 mov r0, r4 mov r3, #1 - bl FUN_021DA334 + bl MOD04_021DA334 ldrsb r0, [sp] cmp r0, #0x59 bne _021DCEB0 @@ -4615,8 +4615,8 @@ _021DCEF4: .word 0x0220C5C0 _021DCEF8: .word 0x0220C5C8 _021DCEFC: .word 0x0220C5D8 - arm_func_start FUN_021DCF00 -FUN_021DCF00: ; 0x021DCF00 + arm_func_start MOD04_021DCF00 +MOD04_021DCF00: ; 0x021DCF00 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021DCFF0 ; =0x02210504 @@ -4644,13 +4644,13 @@ FUN_021DCF00: ; 0x021DCF00 beq _021DCFB0 cmp r0, #8 bne _021DCFC4 - bl FUN_021DCCC8 + bl MOD04_021DCCC8 cmp r0, #0 bne _021DCF94 ldr r0, _021DCFF0 ; =0x02210504 ldr r0, [r0] add r0, r0, #8 - bl FUN_021DAE4C + bl MOD04_021DAE4C add sp, sp, #4 mov r0, #4 ldmfd sp!, {pc} @@ -4658,22 +4658,22 @@ _021DCF94: ldr r0, _021DCFF0 ; =0x02210504 ldr r0, [r0] add r0, r0, #8 - bl FUN_021DAE4C + bl MOD04_021DAE4C add sp, sp, #4 mov r0, #3 ldmfd sp!, {pc} _021DCFB0: add r0, r1, #8 - bl FUN_021DAE4C + bl MOD04_021DAE4C add sp, sp, #4 mov r0, #5 ldmfd sp!, {pc} _021DCFC4: add r0, r1, #8 - bl FUN_021DAE4C + bl MOD04_021DAE4C ldr r1, _021DCFF8 ; =0xFFFFA1DB mov r0, #0x11 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #4 mov r0, #4 ldmfd sp!, {pc} @@ -4686,8 +4686,8 @@ _021DCFF0: .word 0x02210504 _021DCFF4: .word 0x00001B3C _021DCFF8: .word 0xFFFFA1DB - arm_func_start FUN_021DCFFC -FUN_021DCFFC: ; 0x021DCFFC + arm_func_start MOD04_021DCFFC +MOD04_021DCFFC: ; 0x021DCFFC stmdb sp!, {r4, r5, lr} sub sp, sp, #0xb4 ldr r2, _021DD244 ; =0x02210504 @@ -4736,18 +4736,18 @@ _021DD058: add r1, sp, #0 add r0, r4, #8 str r2, [sp, #0x18] - bl FUN_021DB608 + bl MOD04_021DB608 cmp r0, #0 beq _021DD0DC ldr r1, _021DD258 ; =0xFFFFA1DC mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #0xb4 mov r0, #0 ldmia sp!, {r4, r5, pc} _021DD0DC: add r0, sp, #0x1c - bl FUN_021DA238 + bl MOD04_021DA238 cmp r0, #0 beq _021DD10C ldr r0, _021DD244 ; =0x02210504 @@ -4755,17 +4755,17 @@ _021DD0DC: ldr r0, [r0] mov r2, #0 add r0, r0, #8 - bl FUN_021D9C2C + bl MOD04_021D9C2C cmp r0, #0 bne _021DD134 _021DD10C: ldr r0, _021DD244 ; =0x02210504 ldr r0, [r0] add r0, r0, #8 - bl FUN_021DAE4C + bl MOD04_021DAE4C ldr r1, _021DD258 ; =0xFFFFA1DC mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #0xb4 mov r0, #0 ldmia sp!, {r4, r5, pc} @@ -4776,7 +4776,7 @@ _021DD134: ldr r2, _021DD260 ; =0x0220C60C add r0, r0, #8 mov r3, #6 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 bne _021DD17C ldr r0, _021DD244 ; =0x02210504 @@ -4785,17 +4785,17 @@ _021DD134: mov r2, r5 add r0, r0, #8 mov r3, #4 - bl FUN_021DAB68 + bl MOD04_021DAB68 cmp r0, #0 beq _021DD1A4 _021DD17C: ldr r0, _021DD244 ; =0x02210504 ldr r0, [r0] add r0, r0, #8 - bl FUN_021DAE4C + bl MOD04_021DAE4C ldr r1, _021DD258 ; =0xFFFFA1DC mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #0xb4 mov r0, #0 ldmia sp!, {r4, r5, pc} @@ -4803,16 +4803,16 @@ _021DD1A4: ldr r0, _021DD244 ; =0x02210504 ldr r0, [r0] add r0, r0, #8 - bl FUN_021DB570 + bl MOD04_021DB570 cmp r0, #0 beq _021DD1E4 ldr r0, _021DD244 ; =0x02210504 ldr r0, [r0] add r0, r0, #8 - bl FUN_021DAE4C + bl MOD04_021DAE4C ldr r1, _021DD258 ; =0xFFFFA1DC mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #0xb4 mov r0, #0 ldmia sp!, {r4, r5, pc} @@ -4824,7 +4824,7 @@ _021DD1E4: ldr r2, [r1] sub r1, r0, #1 add r0, r2, #8 - bl FUN_021DB4A4 + bl MOD04_021DB4A4 ldr r0, _021DD244 ; =0x02210504 ldr r1, [r0] add r0, r1, #0x1000 @@ -4834,10 +4834,10 @@ _021DD1E4: movne r0, #1 ldmneia sp!, {r4, r5, pc} add r0, r1, #8 - bl FUN_021DAE4C + bl MOD04_021DAE4C ldr r1, _021DD258 ; =0xFFFFA1DC mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 mov r0, #0 add sp, sp, #0xb4 ldmia sp!, {r4, r5, pc} @@ -4853,8 +4853,8 @@ _021DD260: .word 0x0220C60C _021DD264: .word 0x0220C614 _021DD268: .word 0x021D3498 - arm_func_start FUN_021DD26C -FUN_021DD26C: ; 0x021DD26C + arm_func_start MOD04_021DD26C +MOD04_021DD26C: ; 0x021DD26C stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021DD2BC ; =0x02210504 @@ -4863,7 +4863,7 @@ FUN_021DD26C: ; 0x021DD26C addeq sp, sp, #4 ldmeqia sp!, {pc} add r0, r0, #8 - bl FUN_021DAE4C + bl MOD04_021DAE4C ldr r1, _021DD2BC ; =0x02210504 ldr r0, _021DD2C0 ; =0x0220C618 ldr r1, [r1] @@ -4879,8 +4879,8 @@ FUN_021DD26C: ; 0x021DD26C _021DD2BC: .word 0x02210504 _021DD2C0: .word 0x0220C618 - arm_func_start FUN_021DD2C4 -FUN_021DD2C4: ; 0x021DD2C4 + arm_func_start MOD04_021DD2C4 +MOD04_021DD2C4: ; 0x021DD2C4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r2, _021DD35C ; =0x02210504 @@ -4891,7 +4891,7 @@ FUN_021DD2C4: ; 0x021DD2C4 beq _021DD2FC ldr r1, _021DD360 ; =0xFFFFA1DC mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, pc} @@ -4905,7 +4905,7 @@ _021DD2FC: bne _021DD330 ldr r1, _021DD360 ; =0xFFFFA1DC mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, pc} @@ -4927,8 +4927,8 @@ _021DD360: .word 0xFFFFA1DC _021DD364: .word 0x0220C628 _021DD368: .word 0x00001C1C - arm_func_start FUN_021DD36C -FUN_021DD36C: ; 0x021DD36C + arm_func_start MOD04_021DD36C +MOD04_021DD36C: ; 0x021DD36C stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 ands r4, r1, #3 @@ -5039,8 +5039,8 @@ _021DD4F0: add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} - arm_func_start FUN_021DD4FC -FUN_021DD4FC: ; 0x021DD4FC + arm_func_start MOD04_021DD4FC +MOD04_021DD4FC: ; 0x021DD4FC stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc ldr r4, _021DD69C ; =0xAAAAAAAB @@ -5157,8 +5157,8 @@ _021DD6A4: .word 0x2AAAAAAB _021DD6A8: .word 0x00000006 _021DD6AC: .word 0x0220C638 - arm_func_start FUN_021DD6B0 -FUN_021DD6B0: ; 0x021DD6B0 + arm_func_start MOD04_021DD6B0 +MOD04_021DD6B0: ; 0x021DD6B0 ldr r3, _021DD6CC ; =0x02210508 ldr r2, [r3] cmp r2, #9 @@ -5170,8 +5170,8 @@ FUN_021DD6B0: ; 0x021DD6B0 _021DD6CC: .word 0x02210508 _021DD6D0: .word 0x0221050C - arm_func_start FUN_021DD6D4 -FUN_021DD6D4: ; 0x021DD6D4 + arm_func_start MOD04_021DD6D4 +MOD04_021DD6D4: ; 0x021DD6D4 ldr r0, _021DD6EC ; =0x02210508 ldr r0, [r0] cmp r0, #0 @@ -5181,8 +5181,8 @@ FUN_021DD6D4: ; 0x021DD6D4 .align 2, 0 _021DD6EC: .word 0x02210508 - arm_func_start FUN_021DD6F0 -FUN_021DD6F0: ; 0x021DD6F0 + arm_func_start MOD04_021DD6F0 +MOD04_021DD6F0: ; 0x021DD6F0 ldr r1, _021DD710 ; =0x02210508 ldr r0, [r1] cmp r0, #9 @@ -5195,8 +5195,8 @@ FUN_021DD6F0: ; 0x021DD6F0 _021DD710: .word 0x02210508 _021DD714: .word 0x0221050C - arm_func_start FUN_021DD718 -FUN_021DD718: ; 0x021DD718 + arm_func_start MOD04_021DD718 +MOD04_021DD718: ; 0x021DD718 cmp r0, #0 ldrne r2, _021DD800 ; =0x0221050C ldrne r2, [r2] @@ -5270,8 +5270,8 @@ _021DD7F4: _021DD800: .word 0x0221050C _021DD804: .word 0x02210508 - arm_func_start FUN_021DD808 -FUN_021DD808: ; 0x021DD808 + arm_func_start MOD04_021DD808 +MOD04_021DD808: ; 0x021DD808 cmp r0, #0 ldrne r1, _021DD824 ; =0x0221050C ldrne r1, [r1] @@ -5283,38 +5283,38 @@ FUN_021DD808: ; 0x021DD808 _021DD824: .word 0x0221050C _021DD828: .word 0x02210508 - arm_func_start FUN_021DD82C -FUN_021DD82C: ; 0x021DD82C - ldr ip, _021DD840 ; =FUN_021DD904 + arm_func_start MOD04_021DD82C +MOD04_021DD82C: ; 0x021DD82C + ldr ip, _021DD840 ; =MOD04_021DD904 mov r1, r0 mov r0, #5 mov r2, #0 bx ip .align 2, 0 -_021DD840: .word FUN_021DD904 +_021DD840: .word MOD04_021DD904 - arm_func_start FUN_021DD844 -FUN_021DD844: ; 0x021DD844 - ldr ip, _021DD85C ; =FUN_021DD8E8 + arm_func_start MOD04_021DD844 +MOD04_021DD844: ; 0x021DD844 + ldr ip, _021DD85C ; =MOD04_021DD8E8 mov r2, r1 mov r1, r0 mov r3, r2 mov r0, #5 bx ip .align 2, 0 -_021DD85C: .word FUN_021DD8E8 +_021DD85C: .word MOD04_021DD8E8 - arm_func_start FUN_021DD860 -FUN_021DD860: ; 0x021DD860 - ldr ip, _021DD870 ; =FUN_021DD944 + arm_func_start MOD04_021DD860 +MOD04_021DD860: ; 0x021DD860 + ldr ip, _021DD870 ; =MOD04_021DD944 mov r1, r0 mov r0, #5 bx ip .align 2, 0 -_021DD870: .word FUN_021DD944 +_021DD870: .word MOD04_021DD944 - arm_func_start FUN_021DD874 -FUN_021DD874: ; 0x021DD874 + arm_func_start MOD04_021DD874 +MOD04_021DD874: ; 0x021DD874 stmdb sp!, {r4, r5, r6, r7, r8, lr} ldr ip, _021DD8E0 ; =0x02210514 mov r4, r2 @@ -5347,18 +5347,18 @@ _021DD8D8: _021DD8E0: .word 0x02210514 _021DD8E4: .word 0x02210510 - arm_func_start FUN_021DD8E8 -FUN_021DD8E8: ; 0x021DD8E8 + arm_func_start MOD04_021DD8E8 +MOD04_021DD8E8: ; 0x021DD8E8 stmdb sp!, {lr} sub sp, sp, #4 mov ip, #0x20 str ip, [sp] - bl FUN_021DD874 + bl MOD04_021DD874 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021DD904 -FUN_021DD904: ; 0x021DD904 + arm_func_start MOD04_021DD904 +MOD04_021DD904: ; 0x021DD904 stmdb sp!, {lr} sub sp, sp, #4 ldr r3, _021DD920 ; =0x02210510 @@ -5369,8 +5369,8 @@ FUN_021DD904: ; 0x021DD904 .align 2, 0 _021DD920: .word 0x02210510 - arm_func_start FUN_021DD924 -FUN_021DD924: ; 0x021DD924 + arm_func_start MOD04_021DD924 +MOD04_021DD924: ; 0x021DD924 stmdb sp!, {lr} sub sp, sp, #4 ldr r3, _021DD940 ; =0x02210514 @@ -5381,8 +5381,8 @@ FUN_021DD924: ; 0x021DD924 .align 2, 0 _021DD940: .word 0x02210514 - arm_func_start FUN_021DD944 -FUN_021DD944: ; 0x021DD944 + arm_func_start MOD04_021DD944 +MOD04_021DD944: ; 0x021DD944 stmdb sp!, {lr} sub sp, sp, #4 ldr r3, _021DD964 ; =0x02210514 @@ -5394,8 +5394,8 @@ FUN_021DD944: ; 0x021DD944 .align 2, 0 _021DD964: .word 0x02210514 - arm_func_start FUN_021DD968 -FUN_021DD968: ; 0x021DD968 + arm_func_start MOD04_021DD968 +MOD04_021DD968: ; 0x021DD968 ldr r3, _021DD97C ; =0x02210514 ldr r2, _021DD980 ; =0x02210510 str r0, [r3] @@ -5405,23 +5405,23 @@ FUN_021DD968: ; 0x021DD968 _021DD97C: .word 0x02210514 _021DD980: .word 0x02210510 - arm_func_start FUN_021DD984 -FUN_021DD984: ; 0x021DD984 + arm_func_start MOD04_021DD984 +MOD04_021DD984: ; 0x021DD984 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021DDCE8 - bl FUN_021DDB14 + bl MOD04_021DDCE8 + bl MOD04_021DDB14 cmp r0, #0 beq _021DD9CC - bl FUN_021EBAB8 + bl MOD04_021EBAB8 mov r2, r0 cmp r2, #0x63 ldr r1, _021DD9D8 ; =0xFFFF2D10 movhi r2, #0x63 mov r0, #8 sub r1, r1, r2 - bl FUN_021DD6B0 - bl FUN_021DDBBC + bl MOD04_021DD6B0 + bl MOD04_021DDBBC add sp, sp, #4 mov r0, #1 ldmfd sp!, {pc} @@ -5432,8 +5432,8 @@ _021DD9CC: .align 2, 0 _021DD9D8: .word 0xFFFF2D10 - arm_func_start FUN_021DD9DC -FUN_021DD9DC: ; 0x021DD9DC + arm_func_start MOD04_021DD9DC +MOD04_021DD9DC: ; 0x021DD9DC stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x18 mov r1, #0 @@ -5442,12 +5442,12 @@ FUN_021DD9DC: ; 0x021DD9DC bl MI_CpuFill8 mov r0, #0xff str r0, [r4, #4] - bl FUN_021DDC1C + bl MOD04_021DDC1C cmp r0, #4 addne sp, sp, #0x18 movne r0, #0 ldmneia sp!, {r4, r5, r6, pc} - bl FUN_021EBAB8 + bl MOD04_021EBAB8 str r0, [r4] bl OS_DisableInterrupts mov r6, r0 @@ -5497,7 +5497,7 @@ _021DDAB0: mov r2, #0x10 bl MI_CpuFill8 add r0, sp, #2 - bl FUN_021EBA28 + bl MOD04_021EBA28 cmp r0, #1 bne _021DDAFC ldrb r1, [sp, #8] @@ -5514,15 +5514,15 @@ _021DDAFC: add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021DDB08 -FUN_021DDB08: ; 0x021DDB08 + arm_func_start MOD04_021DDB08 +MOD04_021DDB08: ; 0x021DDB08 ldr ip, _021DDB10 ; =0x020A8B28 bx ip .align 2, 0 _021DDB10: .word 0x020A8B28 - arm_func_start FUN_021DDB14 -FUN_021DDB14: ; 0x021DDB14 + arm_func_start MOD04_021DDB14 +MOD04_021DDB14: ; 0x021DDB14 ldr r0, _021DDB3C ; =0x02210518 ldr r0, [r0] cmp r0, #0 @@ -5537,8 +5537,8 @@ _021DDB34: .align 2, 0 _021DDB3C: .word 0x02210518 - arm_func_start FUN_021DDB40 -FUN_021DDB40: ; 0x021DDB40 + arm_func_start MOD04_021DDB40 +MOD04_021DDB40: ; 0x021DDB40 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021DDBB8 ; =0x02210518 @@ -5560,7 +5560,7 @@ FUN_021DDB40: ; 0x021DDB40 ldmeqia sp!, {pc} mov r0, #5 strh r0, [r2, #4] - bl FUN_021EB9D8 + bl MOD04_021EB9D8 cmp r0, #0 ldrne r0, _021DDBB8 ; =0x02210518 movne r1, #0 @@ -5572,8 +5572,8 @@ FUN_021DDB40: ; 0x021DDB40 .align 2, 0 _021DDBB8: .word 0x02210518 - arm_func_start FUN_021DDBBC -FUN_021DDBBC: ; 0x021DDBBC + arm_func_start MOD04_021DDBBC +MOD04_021DDBBC: ; 0x021DDBBC stmdb sp!, {r4, lr} ldr r0, _021DDC18 ; =0x02210518 ldr r1, [r0] @@ -5584,14 +5584,14 @@ FUN_021DDBBC: ; 0x021DDBBC moveq r1, #0 streq r1, [r0] ldmeqia sp!, {r4, pc} - bl FUN_021EB9D8 + bl MOD04_021EB9D8 cmp r0, #0 bne _021DDC08 mov r4, #0xa _021DDBF4: mov r0, r4 bl OS_Sleep - bl FUN_021EB9D8 + bl MOD04_021EB9D8 cmp r0, #0 beq _021DDBF4 _021DDC08: @@ -5602,8 +5602,8 @@ _021DDC08: .align 2, 0 _021DDC18: .word 0x02210518 - arm_func_start FUN_021DDC1C -FUN_021DDC1C: ; 0x021DDC1C + arm_func_start MOD04_021DDC1C +MOD04_021DDC1C: ; 0x021DDC1C stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021DDCE4 ; =0x02210518 @@ -5616,7 +5616,7 @@ FUN_021DDC1C: ; 0x021DDC1C cmp r0, #1 addeq sp, sp, #4 ldmeqia sp!, {pc} - bl FUN_021EBAE8 + bl MOD04_021EBAE8 mov r1, r0 cmp r1, #5 bne _021DDC80 @@ -5637,7 +5637,7 @@ _021DDC80: blt _021DDCB8 sub r1, r1, #0x2bc mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 ldr r1, _021DDCE4 ; =0x02210518 mov r0, #8 ldr r1, [r1] @@ -5646,7 +5646,7 @@ _021DDC80: ldmfd sp!, {pc} _021DDCB8: mov r0, #5 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 ldr r1, _021DDCE4 ; =0x02210518 mov r0, #7 ldr r1, [r1] @@ -5660,8 +5660,8 @@ _021DDCD8: .align 2, 0 _021DDCE4: .word 0x02210518 - arm_func_start FUN_021DDCE8 -FUN_021DDCE8: ; 0x021DDCE8 + arm_func_start MOD04_021DDCE8 +MOD04_021DDCE8: ; 0x021DDCE8 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021DDD78 ; =0x02210518 @@ -5672,7 +5672,7 @@ FUN_021DDCE8: ; 0x021DDCE8 ldrh r0, [r1, #4] cmp r0, #2 bne _021DDD28 - bl FUN_021EBB80 + bl MOD04_021EBB80 ldr r1, _021DDD78 ; =0x02210518 add sp, sp, #4 ldr r1, [r1] @@ -5702,8 +5702,8 @@ _021DDD28: .align 2, 0 _021DDD78: .word 0x02210518 - arm_func_start FUN_021DDD7C -FUN_021DDD7C: ; 0x021DDD7C + arm_func_start MOD04_021DDD7C +MOD04_021DDD7C: ; 0x021DDD7C stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021DDDC8 ; =0x02210518 @@ -5719,15 +5719,15 @@ FUN_021DDD7C: ; 0x021DDD7C ldmeqia sp!, {pc} mov r0, #3 strh r0, [r1, #4] - bl FUN_021DDC1C + bl MOD04_021DDC1C mov r0, #1 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _021DDDC8: .word 0x02210518 - arm_func_start FUN_021DDDCC -FUN_021DDDCC: ; 0x021DDDCC + arm_func_start MOD04_021DDDCC +MOD04_021DDDCC: ; 0x021DDDCC stmdb sp!, {lr} sub sp, sp, #0xc ldr r0, _021DDE70 ; =0x02210518 @@ -5743,9 +5743,9 @@ FUN_021DDDCC: ; 0x021DDDCC mov r2, #0xc bl MI_CpuFill8 ldr r0, _021DDE70 ; =0x02210518 - ldr r3, _021DDE74 ; =FUN_021DD944 + ldr r3, _021DDE74 ; =MOD04_021DD944 ldr lr, [r0] - ldr r2, _021DDE78 ; =FUN_021DD904 + ldr r2, _021DDE78 ; =MOD04_021DD904 ldrh ip, [lr, #8] add r0, sp, #0 mov r1, #2 @@ -5755,28 +5755,28 @@ FUN_021DDDCC: ; 0x021DDDCC str r3, [sp] str r2, [sp, #4] strh r1, [lr, #4] - bl FUN_021EBC60 + bl MOD04_021EBC60 cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {pc} mov r0, #9 mvn r1, #5 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #0xc ldmfd sp!, {pc} _021DDE5C: mov r0, #9 mvn r1, #3 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #0xc ldmfd sp!, {pc} .align 2, 0 _021DDE70: .word 0x02210518 -_021DDE74: .word FUN_021DD944 -_021DDE78: .word FUN_021DD904 +_021DDE74: .word MOD04_021DD944 +_021DDE78: .word MOD04_021DD904 - arm_func_start FUN_021DDE7C -FUN_021DDE7C: ; 0x021DDE7C + arm_func_start MOD04_021DDE7C +MOD04_021DDE7C: ; 0x021DDE7C stmdb sp!, {lr} sub sp, sp, #4 cmp r0, #0 @@ -5789,17 +5789,17 @@ FUN_021DDE7C: ; 0x021DDE7C ldmfd sp!, {pc} _021DDEA4: ldr r0, _021DDED4 ; =0x0220D280 - bl FUN_021D9C1C + bl MOD04_021D9C1C add sp, sp, #4 ldmfd sp!, {pc} _021DDEB4: ldr r0, _021DDED8 ; =0x0220D2A8 - bl FUN_021D9C1C + bl MOD04_021D9C1C add sp, sp, #4 ldmfd sp!, {pc} _021DDEC4: ldr r0, _021DDEDC ; =0x0220D2CC - bl FUN_021D9C1C + bl MOD04_021D9C1C add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 @@ -5807,8 +5807,8 @@ _021DDED4: .word 0x0220D280 _021DDED8: .word 0x0220D2A8 _021DDEDC: .word 0x0220D2CC - arm_func_start FUN_021DDEE0 -FUN_021DDEE0: ; 0x021DDEE0 + arm_func_start MOD04_021DDEE0 +MOD04_021DDEE0: ; 0x021DDEE0 stmdb sp!, {r4, r5, r6, lr} ldr r2, _021DDF3C ; =0x02210518 mov r6, r0 @@ -5828,22 +5828,22 @@ FUN_021DDEE0: ; 0x021DDEE0 ldr r1, _021DDF3C ; =0x02210518 strh r0, [r6, #6] str r6, [r1] - bl FUN_021DDE7C + bl MOD04_021DDE7C mov r0, r4 bl FUN_020A374C ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021DDF3C: .word 0x02210518 - arm_func_start FUN_021DDF40 -FUN_021DDF40: ; 0x021DDF40 - ldr ip, _021DDF48 ; =FUN_021D9974 + arm_func_start MOD04_021DDF40 +MOD04_021DDF40: ; 0x021DDF40 + ldr ip, _021DDF48 ; =MOD04_021D9974 bx ip .align 2, 0 -_021DDF48: .word FUN_021D9974 +_021DDF48: .word MOD04_021D9974 - arm_func_start FUN_021DDF4C -FUN_021DDF4C: ; 0x021DDF4C + arm_func_start MOD04_021DDF4C +MOD04_021DDF4C: ; 0x021DDF4C stmdb sp!, {lr} sub sp, sp, #0x1c4 ldr r0, _021DE054 ; =0x0221051C @@ -5858,7 +5858,7 @@ FUN_021DDF4C: ; 0x021DDF4C addeq sp, sp, #0x1c4 moveq r0, #1 ldmeqia sp!, {pc} - bl FUN_021D988C + bl MOD04_021D988C cmp r0, #0 beq _021DDFA4 cmp r0, #0x14 @@ -5871,12 +5871,12 @@ _021DDFA4: mov r0, #2 ldmfd sp!, {pc} _021DDFB0: - bl FUN_021D991C + bl MOD04_021D991C ldr r0, _021DE054 ; =0x0221051C ldr r2, _021DE058 ; =0x00001E1C ldr r1, [r0] mov r0, #4 - bl FUN_021DD904 + bl MOD04_021DD904 ldr r0, _021DE054 ; =0x0221051C mov r1, #0 str r1, [r0] @@ -5884,12 +5884,12 @@ _021DDFB0: mov r0, #3 ldmfd sp!, {pc} _021DDFE0: - bl FUN_021D991C + bl MOD04_021D991C ldr r0, _021DE054 ; =0x0221051C ldr r2, _021DE058 ; =0x00001E1C ldr r1, [r0] mov r0, #4 - bl FUN_021DD904 + bl MOD04_021DD904 ldr r0, _021DE054 ; =0x0221051C mov r1, #0 str r1, [r0] @@ -5898,19 +5898,19 @@ _021DDFE0: ldmfd sp!, {pc} _021DE010: add r0, sp, #0 - bl FUN_021D97F8 - bl FUN_021D991C + bl MOD04_021D97F8 + bl MOD04_021D991C ldr r0, _021DE054 ; =0x0221051C ldr r2, _021DE058 ; =0x00001E1C ldr r1, [r0] mov r0, #4 - bl FUN_021DD904 + bl MOD04_021DD904 ldr r1, [sp] ldr r2, _021DE054 ; =0x0221051C mov r3, #0 mov r0, #2 str r3, [r2] - bl FUN_021DD6B0 + bl MOD04_021DD6B0 mov r0, #4 add sp, sp, #0x1c4 ldmfd sp!, {pc} @@ -5918,8 +5918,8 @@ _021DE010: _021DE054: .word 0x0221051C _021DE058: .word 0x00001E1C - arm_func_start FUN_021DE05C -FUN_021DE05C: ; 0x021DE05C + arm_func_start MOD04_021DE05C +MOD04_021DE05C: ; 0x021DE05C stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021DE130 ; =0x0221051C @@ -5930,14 +5930,14 @@ FUN_021DE05C: ; 0x021DE05C _021DE078: ldr r1, _021DE134 ; =0x00001E1C mov r0, #4 - bl FUN_021DD944 + bl MOD04_021DD944 ldr r1, _021DE130 ; =0x0221051C cmp r0, #0 str r0, [r1] bne _021DE0AC ldr r1, _021DE138 ; =0xFFFFB17C mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #4 mov r0, #0 ldmfd sp!, {pc} @@ -5953,9 +5953,9 @@ _021DE0AC: mov r2, #9 bl MI_CpuCopy8 ldr r1, _021DE130 ; =0x0221051C - ldr r2, _021DE144 ; =FUN_021DD944 + ldr r2, _021DE144 ; =MOD04_021DD944 ldr r0, [r1] - ldr r3, _021DE148 ; =FUN_021DD904 + ldr r3, _021DE148 ; =MOD04_021DD904 add r0, r0, #0x1000 str r2, [r0, #0xc50] ldr r0, [r1] @@ -5964,14 +5964,14 @@ _021DE0AC: str r3, [r0, #0xc54] ldr r1, [r1] add r0, r1, r2 - bl FUN_021D9ACC + bl MOD04_021D9ACC cmp r0, #0 addeq sp, sp, #4 moveq r0, #1 ldmeqia sp!, {pc} ldr r1, _021DE138 ; =0xFFFFB17C mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 mov r0, #0 add sp, sp, #4 ldmfd sp!, {pc} @@ -5981,32 +5981,32 @@ _021DE134: .word 0x00001E1C _021DE138: .word 0xFFFFB17C _021DE13C: .word 0x00001C44 _021DE140: .word 0x0220D2EC -_021DE144: .word FUN_021DD944 -_021DE148: .word FUN_021DD904 +_021DE144: .word MOD04_021DD944 +_021DE148: .word MOD04_021DD904 _021DE14C: .word 0x00001C10 - arm_func_start FUN_021DE150 -FUN_021DE150: ; 0x021DE150 + arm_func_start MOD04_021DE150 +MOD04_021DE150: ; 0x021DE150 stmdb sp!, {r4, lr} - bl FUN_021DCF00 + bl MOD04_021DCF00 mov r4, r0 sub r0, r4, #3 cmp r0, #2 bhi _021DE16C - bl FUN_021DD26C + bl MOD04_021DD26C _021DE16C: mov r0, r4 ldmia sp!, {r4, pc} - arm_func_start FUN_021DE174 -FUN_021DE174: ; 0x021DE174 + arm_func_start MOD04_021DE174 +MOD04_021DE174: ; 0x021DE174 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 - ldr r0, _021DE1EC ; =FUN_021DD944 - ldr r1, _021DE1F0 ; =FUN_021DD904 - bl FUN_021DD2C4 + ldr r0, _021DE1EC ; =MOD04_021DD944 + ldr r1, _021DE1F0 ; =MOD04_021DD904 + bl MOD04_021DD2C4 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 @@ -6017,28 +6017,28 @@ FUN_021DE174: ; 0x021DE174 bne _021DE1C0 ldr r0, _021DE1F4 ; =0x0220D2F0 mov r1, r4 - bl FUN_021DCFFC + bl MOD04_021DCFFC b _021DE1CC _021DE1C0: mov r0, r5 mov r1, r4 - bl FUN_021DCFFC + bl MOD04_021DCFFC _021DE1CC: cmp r0, #0 addne sp, sp, #4 movne r0, #1 ldmneia sp!, {r4, r5, pc} - bl FUN_021DD26C + bl MOD04_021DD26C mov r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 -_021DE1EC: .word FUN_021DD944 -_021DE1F0: .word FUN_021DD904 +_021DE1EC: .word MOD04_021DD944 +_021DE1F0: .word MOD04_021DD904 _021DE1F4: .word 0x0220D2F0 - arm_func_start FUN_021DE1F8 -FUN_021DE1F8: ; 0x021DE1F8 + arm_func_start MOD04_021DE1F8 +MOD04_021DE1F8: ; 0x021DE1F8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r2, _021DE2C4 ; =0x022104F8 @@ -6099,56 +6099,59 @@ _021DE2C4: .word 0x022104F8 _021DE2C8: .word 0x022104FC _021DE2CC: .word 0xBC19137F - arm_func_start FUN_021DE2D0 -FUN_021DE2D0: ; 0x021DE2D0 + arm_func_start MOD04_021DE2D0 +MOD04_021DE2D0: ; 0x021DE2D0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 addne sp, sp, #4 movne r0, #0 ldmneia sp!, {r4, r5, pc} mov r0, r5 mov r1, r4 - bl FUN_02207330 + bl MOD04_02207330 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021DE308 -FUN_021DE308: ; 0x021DE308 + arm_func_start MOD04_021DE308 +MOD04_021DE308: ; 0x021DE308 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 addne sp, sp, #4 movne r0, #0 ldmneia sp!, {pc} - bl FUN_02207158 + bl MOD04_02207158 add sp, sp, #4 ldmfd sp!, {pc} + + arm_func_start MOD04_021DE330 +MOD04_021DE330: ; 0x021DE330 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 mov r4, r2 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 movne r0, #0 ldmneia sp!, {r4, r5, r6, pc} mov r0, r6 mov r1, r5 mov r2, r4 - bl FUN_0220733C + bl MOD04_0220733C ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021DE364 -FUN_021DE364: ; 0x021DE364 + arm_func_start MOD04_021DE364 +MOD04_021DE364: ; 0x021DE364 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 mov r4, r2 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 movne r0, #0 ldmneia sp!, {r4, r5, r6, pc} @@ -6160,39 +6163,39 @@ FUN_021DE364: ; 0x021DE364 mov r0, r6 mov r1, r5 mov r2, r4 - bl FUN_022074EC + bl MOD04_022074EC ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021DE3AC -FUN_021DE3AC: ; 0x021DE3AC + arm_func_start MOD04_021DE3AC +MOD04_021DE3AC: ; 0x021DE3AC stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 movne r0, #0 ldmneia sp!, {r4, pc} mov r0, r4 - bl FUN_022077A8 + bl MOD04_022077A8 ldmia sp!, {r4, pc} - arm_func_start FUN_021DE3D0 -FUN_021DE3D0: ; 0x021DE3D0 + arm_func_start MOD04_021DE3D0 +MOD04_021DE3D0: ; 0x021DE3D0 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 mov r4, r2 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 movne r0, #0 ldmneia sp!, {r4, r5, r6, pc} mov r0, r6 mov r1, r5 mov r2, r4 - bl FUN_022069DC + bl MOD04_022069DC ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021DE404 -FUN_021DE404: ; 0x021DE404 + arm_func_start MOD04_021DE404 +MOD04_021DE404: ; 0x021DE404 stmdb sp!, {lr} sub sp, sp, #4 ldr r1, _021DE454 ; =0x02210520 @@ -6206,34 +6209,34 @@ FUN_021DE404: ; 0x021DE404 ldr r0, [r0, #0x48] cmp r0, #0 bne _021DE440 - bl FUN_021DE730 + bl MOD04_021DE730 b _021DE448 _021DE440: - ldr r0, _021DE458 ; =FUN_021DE730 - bl FUN_02206E6C + ldr r0, _021DE458 ; =MOD04_021DE730 + bl MOD04_02206E6C _021DE448: mov r0, #1 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _021DE454: .word 0x02210520 -_021DE458: .word FUN_021DE730 +_021DE458: .word MOD04_021DE730 - arm_func_start FUN_021DE45C -FUN_021DE45C: ; 0x021DE45C + arm_func_start MOD04_021DE45C +MOD04_021DE45C: ; 0x021DE45C stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r6, r0 mov r5, r1 mov r4, r2 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 addne sp, sp, #8 movne r0, #0 ldmneia sp!, {r4, r5, r6, pc} mov r0, #0xa80 mov r1, #0x20 - bl FUN_021DE884 + bl MOD04_021DE884 ldr r2, _021DE568 ; =0x02210520 mov r1, #0 str r0, [r2] @@ -6259,12 +6262,12 @@ FUN_021DE45C: ; 0x021DE45C ldr r0, _021DE56C ; =0x0220D2F8 ldr r1, [r1] add r1, r1, #0x4c - bl FUN_021DE174 + bl MOD04_021DE174 cmp r0, #0 bne _021DE520 ldr r0, _021DE568 ; =0x02210520 ldr r0, [r0] - bl FUN_021DE86C + bl MOD04_021DE86C ldr r1, _021DE568 ; =0x02210520 mov r0, #0 str r0, [r1] @@ -6274,7 +6277,7 @@ _021DE520: ldr r0, _021DE568 ; =0x02210520 mov r2, #0x800 ldr r0, [r0] - ldr r1, _021DE570 ; =FUN_021DE574 + ldr r1, _021DE570 ; =MOD04_021DE574 add r0, r0, #0x9c0 mov r3, r0 str r2, [sp] @@ -6292,10 +6295,10 @@ _021DE520: .align 2, 0 _021DE568: .word 0x02210520 _021DE56C: .word 0x0220D2F8 -_021DE570: .word FUN_021DE574 +_021DE570: .word MOD04_021DE574 - arm_func_start FUN_021DE574 -FUN_021DE574: ; 0x021DE574 + arm_func_start MOD04_021DE574 +MOD04_021DE574: ; 0x021DE574 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x2a4 mov r7, #0 @@ -6303,7 +6306,7 @@ FUN_021DE574: ; 0x021DE574 mvn r5, #0 mov r4, #0x64 _021DE58C: - bl FUN_021DE150 + bl MOD04_021DE150 cmp r0, #3 bne _021DE6AC ldr r0, _021DE718 ; =0x02210520 @@ -6319,7 +6322,7 @@ _021DE58C: mov r0, #0 mov r1, #8 mvn r2, #0 - bl FUN_021DE774 + bl MOD04_021DE774 add sp, sp, #0x2a4 ldmia sp!, {r4, r5, r6, r7, pc} _021DE5D8: @@ -6336,35 +6339,35 @@ _021DE5D8: add r2, sp, #0x110 add r0, r4, #0x91 mov r3, #0x190 - bl FUN_021DD4FC + bl MOD04_021DD4FC cmp r0, #0 bge _021DE630 mov r0, #0 mov r1, #8 mvn r2, #0 - bl FUN_021DE774 + bl MOD04_021DE774 add sp, sp, #0x2a4 ldmia sp!, {r4, r5, r6, r7, pc} _021DE630: ldr r0, _021DE718 ; =0x02210520 - ldr r4, _021DE724 ; =FUN_021DE774 + ldr r4, _021DE724 ; =MOD04_021DE774 ldr r2, [r0] - ldr r0, _021DE728 ; =FUN_021DE884 + ldr r0, _021DE728 ; =MOD04_021DE884 add r1, r2, #8 str r1, [sp] add r1, r2, #0x28 str r1, [sp, #4] - ldr r1, _021DE72C ; =FUN_021DE86C + ldr r1, _021DE72C ; =MOD04_021DE86C add r2, sp, #0x10 add r3, sp, #0x110 str r4, [sp, #8] - bl FUN_02206EFC + bl MOD04_02206EFC cmp r0, #0 bne _021DE684 mov r0, #0 mov r1, #8 mvn r2, #0 - bl FUN_021DE774 + bl MOD04_021DE774 add sp, sp, #0x2a4 ldmia sp!, {r4, r5, r6, r7, pc} _021DE684: @@ -6375,17 +6378,17 @@ _021DE684: mov r1, r0 mvn r2, #0 str r4, [r3, #0x48] - bl FUN_021DE774 + bl MOD04_021DE774 add sp, sp, #0x2a4 ldmia sp!, {r4, r5, r6, r7, pc} _021DE6AC: cmp r0, #4 bne _021DE6EC add r0, sp, #0xc - bl FUN_021DD808 + bl MOD04_021DD808 ldr r1, [sp, #0xc] mov r0, #0xe - bl FUN_021DD6B0 + bl MOD04_021DD6B0 ldr r1, _021DE718 ; =0x02210520 mov r0, #0 ldr r2, [r1] @@ -6401,26 +6404,26 @@ _021DE6EC: mov r0, r7 mov r1, r6 mov r2, r5 - bl FUN_021DE774 + bl MOD04_021DE774 _021DE704: mov r0, r4 bl OS_Sleep b _021DE58C - arm_func_start FUN_021DE710 -FUN_021DE710: ; 0x021DE710 + arm_func_start MOD04_021DE710 +MOD04_021DE710: ; 0x021DE710 add sp, sp, #0x2a4 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021DE718: .word 0x02210520 _021DE71C: .word 0x0220D300 _021DE720: .word 0x0220D314 -_021DE724: .word FUN_021DE774 -_021DE728: .word FUN_021DE884 -_021DE72C: .word FUN_021DE86C +_021DE724: .word MOD04_021DE774 +_021DE728: .word MOD04_021DE884 +_021DE72C: .word MOD04_021DE86C - arm_func_start FUN_021DE730 -FUN_021DE730: ; 0x021DE730 + arm_func_start MOD04_021DE730 +MOD04_021DE730: ; 0x021DE730 stmdb sp!, {r4, lr} ldr r0, _021DE770 ; =0x02210520 ldr r0, [r0] @@ -6429,7 +6432,7 @@ FUN_021DE730: ; 0x021DE730 ldr r0, _021DE770 ; =0x02210520 ldr r0, [r0] ldr r4, [r0, #4] - bl FUN_021DE86C + bl MOD04_021DE86C ldr r0, _021DE770 ; =0x02210520 mov r1, #0 str r1, [r0] @@ -6440,8 +6443,8 @@ FUN_021DE730: ; 0x021DE730 .align 2, 0 _021DE770: .word 0x02210520 - arm_func_start FUN_021DE774 -FUN_021DE774: ; 0x021DE774 + arm_func_start MOD04_021DE774 +MOD04_021DE774: ; 0x021DE774 stmdb sp!, {r4, r5, r6, lr} movs r5, r1 mov r6, r0 @@ -6469,7 +6472,7 @@ _021DE7A8: ; jump table _021DE7CC: ldr r1, _021DE858 ; =0xFFFF86E7 mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 b _021DE834 _021DE7DC: bl OS_Terminate @@ -6477,18 +6480,18 @@ _021DE7DC: _021DE7E4: ldr r1, _021DE85C ; =0xFFFF86D4 mov r0, #0xf - bl FUN_021DD6B0 + bl MOD04_021DD6B0 b _021DE834 _021DE7F4: ldr r1, _021DE860 ; =0xFFFF86CA mov r0, #0xe - bl FUN_021DD6B0 + bl MOD04_021DD6B0 b _021DE834 _021DE804: ldr r1, _021DE864 ; =0xFFFF86E8 mov r0, #0xe sub r1, r1, r4 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 b _021DE834 _021DE818: bl OS_Terminate @@ -6496,7 +6499,7 @@ _021DE818: _021DE820: ldr r1, _021DE868 ; =0xFFFF86DF mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 b _021DE834 _021DE830: bl OS_Terminate @@ -6517,28 +6520,28 @@ _021DE860: .word 0xFFFF86CA _021DE864: .word 0xFFFF86E8 _021DE868: .word 0xFFFF86DF - arm_func_start FUN_021DE86C -FUN_021DE86C: ; 0x021DE86C - ldr ip, _021DE880 ; =FUN_021DD904 + arm_func_start MOD04_021DE86C +MOD04_021DE86C: ; 0x021DE86C + ldr ip, _021DE880 ; =MOD04_021DD904 mov r1, r0 mov r0, #6 mov r2, #0 bx ip .align 2, 0 -_021DE880: .word FUN_021DD904 +_021DE880: .word MOD04_021DD904 - arm_func_start FUN_021DE884 -FUN_021DE884: ; 0x021DE884 - ldr ip, _021DE898 ; =FUN_021DD924 + arm_func_start MOD04_021DE884 +MOD04_021DE884: ; 0x021DE884 + ldr ip, _021DE898 ; =MOD04_021DD924 mov r2, r1 mov r1, r0 mov r0, #6 bx ip .align 2, 0 -_021DE898: .word FUN_021DD924 +_021DE898: .word MOD04_021DD924 - arm_func_start FUN_021DE89C -FUN_021DE89C: ; 0x021DE89C + arm_func_start MOD04_021DE89C +MOD04_021DE89C: ; 0x021DE89C ldrh r1, [r0] mov r2, #0 cmp r1, #0 @@ -6553,8 +6556,8 @@ _021DE8C0: mov r0, r2 bx lr - arm_func_start FUN_021DE8C8 -FUN_021DE8C8: ; 0x021DE8C8 + arm_func_start MOD04_021DE8C8 +MOD04_021DE8C8: ; 0x021DE8C8 stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r2, _021DE9E4 ; =0x02210524 @@ -6633,8 +6636,8 @@ _021DE9E8: .word 0x6C078965 _021DE9EC: .word 0x5D588B65 _021DE9F0: .word 0x00269EC3 - arm_func_start FUN_021DE9F4 -FUN_021DE9F4: ; 0x021DE9F4 + arm_func_start MOD04_021DE9F4 +MOD04_021DE9F4: ; 0x021DE9F4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 movs r4, r1 @@ -6710,8 +6713,8 @@ _021DEAE8: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_021DEB0C -FUN_021DEB0C: ; 0x021DEB0C + arm_func_start MOD04_021DEB0C +MOD04_021DEB0C: ; 0x021DEB0C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, r2 @@ -6725,14 +6728,14 @@ FUN_021DEB0C: ; 0x021DEB0C mov r0, r7 mov r1, r6 mov r3, r4 - bl FUN_021DEB54 + bl MOD04_021DEB54 mov r0, r5 bl strlen add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_021DEB54 -FUN_021DEB54: ; 0x021DEB54 + arm_func_start MOD04_021DEB54 +MOD04_021DEB54: ; 0x021DEB54 stmdb sp!, {r4, lr} sub sp, sp, #0x10 str r0, [sp] @@ -6750,17 +6753,17 @@ FUN_021DEB54: ; 0x021DEB54 .align 2, 0 _021DEB8C: .word 0x0220D328 - arm_func_start FUN_021DEB90 -FUN_021DEB90: ; 0x021DEB90 + arm_func_start MOD04_021DEB90 +MOD04_021DEB90: ; 0x021DEB90 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021FD43C - bl FUN_021EFB28 + bl MOD04_021FD43C + bl MOD04_021EFB28 ldr r2, _021DEBCC ; =0x02210540 ldr r1, _021DEBD0 ; =0xFFFE8515 str r0, [r2] mov r0, #9 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 ldr r0, _021DEBD4 ; =0x0221053C mov r1, #0 ldr r0, [r0] @@ -6772,22 +6775,22 @@ _021DEBCC: .word 0x02210540 _021DEBD0: .word 0xFFFE8515 _021DEBD4: .word 0x0221053C - arm_func_start FUN_021DEBD8 -FUN_021DEBD8: ; 0x021DEBD8 - ldr ip, _021DEBE0 ; =FUN_021EAC1C + arm_func_start MOD04_021DEBD8 +MOD04_021DEBD8: ; 0x021DEBD8 + ldr ip, _021DEBE0 ; =MOD04_021EAC1C bx ip .align 2, 0 -_021DEBE0: .word FUN_021EAC1C +_021DEBE0: .word MOD04_021EAC1C - arm_func_start FUN_021DEBE4 -FUN_021DEBE4: ; 0x021DEBE4 + arm_func_start MOD04_021DEBE4 +MOD04_021DEBE4: ; 0x021DEBE4 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc mov r7, #0 mov fp, r0 mov sb, r1 mov sl, r7 - bl FUN_021E852C + bl MOD04_021E852C cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -6814,7 +6817,7 @@ _021DEC48: cmp r4, #0 bne _021DED00 mov r0, fp - bl FUN_021FD3C4 + bl MOD04_021FD3C4 movs r7, r0 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -6827,7 +6830,7 @@ _021DEC48: ands r0, r1, r0 mov r0, r8 moveq r5, #0 - bl FUN_021EA9D8 + bl MOD04_021EA9D8 ldr r0, _021DEF54 ; =0x0221053C ldr r1, [r0] ldrb r0, [r1, #0x369] @@ -6845,7 +6848,7 @@ _021DECBC: mov sl, #1 _021DECC0: mov r0, r8 - bl FUN_021DF56C + bl MOD04_021DF56C ldr r1, _021DEF54 ; =0x0221053C ldrb r7, [r7] ldr r2, _021DEF58 ; =0x02210544 @@ -6878,16 +6881,16 @@ _021DED00: cmp r4, #0 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - bl FUN_021E85D4 + bl MOD04_021E85D4 mov r0, r7 - bl FUN_021E8A50 + bl MOD04_021E8A50 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021DED58: mov r0, r4 mov r1, r6 mov r2, r7 - bl FUN_021E8A74 + bl MOD04_021E8A74 cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -6895,7 +6898,7 @@ _021DED58: beq _021DED90 mov r0, r4 mov r1, r6 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021DED90: @@ -6928,7 +6931,7 @@ _021DEDBC: ldrb r1, [r0, #0x361] add r0, r1, #1 add r1, r1, #3 - bl FUN_021E8830 + bl MOD04_021E8830 _021DEE04: ldr r0, _021DEF54 ; =0x0221053C ldr r1, [r0] @@ -6938,7 +6941,7 @@ _021DEE04: ldrb r0, [r1, #0x2d] cmp r0, #0 bne _021DEE2C - bl FUN_021E85D4 + bl MOD04_021E85D4 b _021DEE68 _021DEE2C: ldrb r0, [r1, #0x361] @@ -6947,7 +6950,7 @@ _021DEE2C: ldr r1, _021DEF5C ; =0x0220D334 mov r0, #1 mov r2, #0 - bl FUN_021E1E30 + bl MOD04_021E1E30 b _021DEE68 _021DEE4C: ldrb r0, [r1, #0x361] @@ -6956,7 +6959,7 @@ _021DEE4C: ldr r1, _021DEF5C ; =0x0220D334 mov r0, #1 mov r2, #0 - bl FUN_021E1E30 + bl MOD04_021E1E30 _021DEE68: ldr r0, _021DEF54 ; =0x0221053C ldr r1, [r0] @@ -6973,7 +6976,7 @@ _021DEE88: strb r1, [r2, #0x36a] ldr r0, [r0] ldr r0, [r0, #0x364] - bl FUN_02202308 + bl MOD04_02202308 _021DEEA4: ldr r0, _021DEF54 ; =0x0221053C ldr r6, [r0] @@ -6986,7 +6989,7 @@ _021DEEA4: moveq r5, #1 mov r0, r7 movne r5, #0 - bl FUN_021E1F18 + bl MOD04_021E1F18 str r0, [sp] ldr r1, [r6, #0x94] ldr r0, _021DEF54 ; =0x0221053C @@ -7013,10 +7016,10 @@ _021DEF24: cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - bl FUN_02200D6C - bl FUN_021E8DC0 + bl MOD04_02200D6C + bl MOD04_021E8DC0 mov r0, #3 - bl FUN_021DF5CC + bl MOD04_021DF5CC add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 @@ -7026,15 +7029,15 @@ _021DEF54: .word 0x0221053C _021DEF58: .word 0x02210544 _021DEF5C: .word 0x0220D334 - arm_func_start FUN_021DEF60 -FUN_021DEF60: ; 0x021DEF60 - ldr ip, _021DEF68 ; =FUN_021EAC5C + arm_func_start MOD04_021DEF60 +MOD04_021DEF60: ; 0x021DEF60 + ldr ip, _021DEF68 ; =MOD04_021EAC5C bx ip .align 2, 0 -_021DEF68: .word FUN_021EAC5C +_021DEF68: .word MOD04_021EAC5C - arm_func_start FUN_021DEF6C -FUN_021DEF6C: ; 0x021DEF6C + arm_func_start MOD04_021DEF6C +MOD04_021DEF6C: ; 0x021DEF6C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc add r4, sp, #0 @@ -7054,7 +7057,7 @@ FUN_021DEF6C: ; 0x021DEF6C strb r3, [r4, #0xb] ldr r4, [r5, #8] mov r6, r0 - bl FUN_021E2068 + bl MOD04_021E2068 cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, pc} @@ -7120,7 +7123,7 @@ _021DF0A8: add r2, r4, r0 ldr r1, [r5] mov r0, r6 - bl FUN_021E8EF4 + bl MOD04_021E8EF4 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 @@ -7128,8 +7131,8 @@ _021DF0C8: .word 0x0220D338 _021DF0CC: .word 0x0220D340 _021DF0D0: .word 0x0221053C - arm_func_start FUN_021DF0D4 -FUN_021DF0D4: ; 0x021DF0D4 + arm_func_start MOD04_021DF0D4 +MOD04_021DF0D4: ; 0x021DF0D4 stmdb sp!, {lr} sub sp, sp, #4 ldr r1, [r1, #4] @@ -7146,7 +7149,7 @@ FUN_021DF0D4: ; 0x021DF0D4 addeq sp, sp, #4 ldmeqia sp!, {pc} mov r0, #3 - bl FUN_021DF414 + bl MOD04_021DF414 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 @@ -7154,8 +7157,8 @@ _021DF120: .word 0x00000603 _021DF124: .word 0x00000901 _021DF128: .word 0x00000B01 - arm_func_start FUN_021DF12C -FUN_021DF12C: ; 0x021DF12C + arm_func_start MOD04_021DF12C +MOD04_021DF12C: ; 0x021DF12C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc movs r7, r0 @@ -7170,15 +7173,15 @@ FUN_021DF12C: ; 0x021DF12C ldr r0, [r0, #0x4f4] cmp r0, #0 bne _021DF1D8 - bl FUN_021E8DC0 + bl MOD04_021E8DC0 mov r0, #3 - bl FUN_021DF5CC + bl MOD04_021DF5CC b _021DF1D8 _021DF174: cmp r7, #0 bne _021DF1D8 mov r0, #6 - bl FUN_021DF5CC + bl MOD04_021DF5CC ldr r1, _021DF2AC ; =0x0221053C mov r0, #0 ldr r3, [r1] @@ -7209,11 +7212,11 @@ _021DF1D8: ldrb r1, [r2, #0x361] add r0, r2, r0 add r1, r1, #1 - bl FUN_021DF530 + bl MOD04_021DF530 ldr r1, _021DF2AC ; =0x0221053C ldr r1, [r1] str r0, [r1, #0x644] - bl FUN_021E8780 + bl MOD04_021E8780 ldr r0, _021DF2AC ; =0x0221053C ldr r1, [r0] ldrb r0, [r1, #0x369] @@ -7256,15 +7259,15 @@ _021DF26C: addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, pc} mov r0, #3 - bl FUN_021DF5CC + bl MOD04_021DF5CC add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021DF2AC: .word 0x0221053C _021DF2B0: .word 0x00000624 - arm_func_start FUN_021DF2B4 -FUN_021DF2B4: ; 0x021DF2B4 + arm_func_start MOD04_021DF2B4 +MOD04_021DF2B4: ; 0x021DF2B4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r2, _021DF300 ; =0x0221053C @@ -7274,7 +7277,7 @@ FUN_021DF2B4: ; 0x021DF2B4 ldr r0, [r0, #0x28] cmp r0, #4 beq _021DF2DC - bl FUN_021DF5CC + bl MOD04_021DF5CC _021DF2DC: ldr r1, _021DF300 ; =0x0221053C mov r0, r5 @@ -7288,8 +7291,8 @@ _021DF2DC: .align 2, 0 _021DF300: .word 0x0221053C - arm_func_start FUN_021DF304 -FUN_021DF304: ; 0x021DF304 + arm_func_start MOD04_021DF304 +MOD04_021DF304: ; 0x021DF304 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r5, r0 @@ -7299,12 +7302,12 @@ FUN_021DF304: ; 0x021DF304 mov r0, #3 ldr r1, [r1] str r4, [r1, #0x64] - bl FUN_021DF5CC - bl FUN_021E1ED4 + bl MOD04_021DF5CC + bl MOD04_021E1ED4 b _021DF33C _021DF334: mov r0, #0 - bl FUN_021DF5CC + bl MOD04_021DF5CC _021DF33C: ldr r0, _021DF36C ; =0x0221053C ldr r0, [r0] @@ -7321,8 +7324,8 @@ _021DF33C: .align 2, 0 _021DF36C: .word 0x0221053C - arm_func_start FUN_021DF370 -FUN_021DF370: ; 0x021DF370 + arm_func_start MOD04_021DF370 +MOD04_021DF370: ; 0x021DF370 stmdb sp!, {r4, lr} movs r4, r0 moveq r0, #0 @@ -7368,15 +7371,15 @@ _021DF3F4: beq _021DF408 ldr r1, _021DF410 ; =0xFFFEFA48 add r1, r2, r1 - bl FUN_021E0EAC + bl MOD04_021E0EAC _021DF408: mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 _021DF410: .word 0xFFFEFA48 - arm_func_start FUN_021DF414 -FUN_021DF414: ; 0x021DF414 + arm_func_start MOD04_021DF414 +MOD04_021DF414: ; 0x021DF414 stmdb sp!, {r4, r5, r6, lr} movs r6, r0 moveq r0, #0 @@ -7424,7 +7427,7 @@ _021DF4A0: mov r0, r4 add r5, r5, r1 mov r1, r5 - bl FUN_021E0EAC + bl MOD04_021E0EAC b _021DF508 _021DF4B8: ldr r1, [r1, #0x9c] @@ -7434,14 +7437,14 @@ _021DF4B8: bge _021DF508 mov r0, r4 mov r1, r5 - bl FUN_021E0EAC + bl MOD04_021E0EAC b _021DF508 _021DF4DC: ldr r1, _021DF524 ; =0xFFFEC398 mov r0, r4 add r5, r5, r1 mov r1, r5 - bl FUN_021E8E08 + bl MOD04_021E8E08 b _021DF508 _021DF4F4: ldr r0, _021DF528 ; =0xFFFEEAA8 @@ -7453,7 +7456,7 @@ _021DF500: _021DF508: mov r0, r4 mov r1, r5 - bl FUN_021E2114 + bl MOD04_021E2114 mov r0, r6 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 @@ -7463,8 +7466,8 @@ _021DF524: .word 0xFFFEC398 _021DF528: .word 0xFFFEEAA8 _021DF52C: .word 0xFFFE9C88 - arm_func_start FUN_021DF530 -FUN_021DF530: ; 0x021DF530 + arm_func_start MOD04_021DF530 +MOD04_021DF530: ; 0x021DF530 stmdb sp!, {lr} sub sp, sp, #4 mov lr, #0 @@ -7483,13 +7486,13 @@ _021DF560: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021DF56C -FUN_021DF56C: ; 0x021DF56C + arm_func_start MOD04_021DF56C +MOD04_021DF56C: ; 0x021DF56C stmdb sp!, {r4, lr} sub sp, sp, #8 mov r4, r0 add r0, sp, #0 - bl FUN_021E874C + bl MOD04_021E874C mov r1, r0 cmp r1, #0 mov r0, #0 @@ -7508,12 +7511,12 @@ _021DF5B0: addeq sp, sp, #8 moveq r0, #0 ldmeqia sp!, {r4, pc} - bl FUN_021E8830 + bl MOD04_021E8830 add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_start FUN_021DF5CC -FUN_021DF5CC: ; 0x021DF5CC + arm_func_start MOD04_021DF5CC +MOD04_021DF5CC: ; 0x021DF5CC ldr r1, _021DF5E8 ; =0x0221053C ldr r3, [r1] ldr r2, [r3, #0x24] @@ -7524,12 +7527,12 @@ FUN_021DF5CC: ; 0x021DF5CC .align 2, 0 _021DF5E8: .word 0x0221053C - arm_func_start FUN_021DF5EC -FUN_021DF5EC: ; 0x021DF5EC + arm_func_start MOD04_021DF5EC +MOD04_021DF5EC: ; 0x021DF5EC bx lr - arm_func_start FUN_021DF5F0 -FUN_021DF5F0: ; 0x021DF5F0 + arm_func_start MOD04_021DF5F0 +MOD04_021DF5F0: ; 0x021DF5F0 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, #0 @@ -7538,7 +7541,7 @@ _021DF600: ldr r0, [r4, r5, lsl #2] cmp r0, #0 beq _021DF620 - bl FUN_021FD3C4 + bl MOD04_021FD3C4 ldrb r0, [r0, #1] cmp r6, r0 moveq r0, #1 @@ -7552,16 +7555,16 @@ _021DF620: .align 2, 0 _021DF634: .word 0x02210544 - arm_func_start FUN_021DF638 -FUN_021DF638: ; 0x021DF638 + arm_func_start MOD04_021DF638 +MOD04_021DF638: ; 0x021DF638 ldr r1, _021DF644 ; =0x022105C4 add r0, r1, r0, lsl #3 bx lr .align 2, 0 _021DF644: .word 0x022105C4 - arm_func_start FUN_021DF648 -FUN_021DF648: ; 0x021DF648 + arm_func_start MOD04_021DF648 +MOD04_021DF648: ; 0x021DF648 stmdb sp!, {lr} sub sp, sp, #4 cmp r1, #0 @@ -7587,24 +7590,24 @@ _021DF684: ldr r0, [r0] add r0, r0, ip ldrb r0, [r0, #0x624] - bl FUN_021DF760 - bl FUN_021DF730 - bl FUN_021DF6BC + bl MOD04_021DF760 + bl MOD04_021DF730 + bl MOD04_021DF6BC add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _021DF6B8: .word 0x0221053C - arm_func_start FUN_021DF6BC -FUN_021DF6BC: ; 0x021DF6BC + arm_func_start MOD04_021DF6BC +MOD04_021DF6BC: ; 0x021DF6BC ldr r1, _021DF6C8 ; =0x02210544 add r0, r1, r0, lsl #2 bx lr .align 2, 0 _021DF6C8: .word 0x02210544 - arm_func_start FUN_021DF6CC -FUN_021DF6CC: ; 0x021DF6CC + arm_func_start MOD04_021DF6CC +MOD04_021DF6CC: ; 0x021DF6CC stmdb sp!, {lr} sub sp, sp, #4 ldr r1, _021DF6FC ; =0x02210544 @@ -7621,8 +7624,8 @@ FUN_021DF6CC: ; 0x021DF6CC _021DF6FC: .word 0x02210544 _021DF700: .word 0x022105C4 - arm_func_start FUN_021DF704 -FUN_021DF704: ; 0x021DF704 + arm_func_start MOD04_021DF704 +MOD04_021DF704: ; 0x021DF704 ldr r2, _021DF72C ; =0x02210544 mov r0, #0 _021DF70C: @@ -7637,26 +7640,26 @@ _021DF70C: .align 2, 0 _021DF72C: .word 0x02210544 - arm_func_start FUN_021DF730 -FUN_021DF730: ; 0x021DF730 + arm_func_start MOD04_021DF730 +MOD04_021DF730: ; 0x021DF730 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021FD3C4 + bl MOD04_021FD3C4 ldrb r0, [r0] add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021DF748 -FUN_021DF748: ; 0x021DF748 + arm_func_start MOD04_021DF748 +MOD04_021DF748: ; 0x021DF748 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021FD3C4 + bl MOD04_021FD3C4 ldrb r0, [r0, #1] add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021DF760 -FUN_021DF760: ; 0x021DF760 + arm_func_start MOD04_021DF760 +MOD04_021DF760: ; 0x021DF760 stmdb sp!, {r4, r5, r6, lr} ldr r1, _021DF7BC ; =0x0221053C mov r6, r0 @@ -7670,7 +7673,7 @@ _021DF784: ldr r0, [r4, r5, lsl #2] cmp r0, #0 beq _021DF7A8 - bl FUN_021FD3C4 + bl MOD04_021FD3C4 ldrb r0, [r0, #1] cmp r6, r0 ldreq r0, _021DF7C0 ; =0x02210544 @@ -7686,8 +7689,8 @@ _021DF7A8: _021DF7BC: .word 0x0221053C _021DF7C0: .word 0x02210544 - arm_func_start FUN_021DF7C4 -FUN_021DF7C4: ; 0x021DF7C4 + arm_func_start MOD04_021DF7C4 +MOD04_021DF7C4: ; 0x021DF7C4 stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r0, _021DF87C ; =0x0221053C @@ -7698,7 +7701,7 @@ FUN_021DF7C4: ; 0x021DF7C4 movne r0, #0 ldmneia sp!, {r4, pc} mov r0, #0x4000 - bl FUN_021DE8C8 + bl MOD04_021DE8C8 add r0, r0, #0xc000 mov r1, r0, lsl #0x10 ldr r3, _021DF87C ; =0x0221053C @@ -7706,42 +7709,42 @@ FUN_021DF7C4: ; 0x021DF7C4 mov r2, r0 mov r1, r1, lsr #0x10 ldr r4, [r3] - bl FUN_021FFEB0 - ldr r1, _021DF880 ; =FUN_021DEB90 + bl MOD04_021FFEB0 + ldr r1, _021DF880 ; =MOD04_021DEB90 ldr r2, _021DF87C ; =0x0221053C str r1, [sp] mov r1, r0 ldr r0, [r2] ldr r2, [r4, #0x14] ldr r3, [r4, #0x18] - bl FUN_021FD71C + bl MOD04_021FD71C mov r4, r0 - bl FUN_021DF370 + bl MOD04_021DF370 cmp r0, #0 addne sp, sp, #8 movne r0, r4 ldmneia sp!, {r4, pc} ldr r0, _021DF87C ; =0x0221053C - ldr r1, _021DF884 ; =FUN_021E9204 + ldr r1, _021DF884 ; =MOD04_021E9204 ldr r0, [r0] ldr r0, [r0] - bl FUN_021FD6C8 + bl MOD04_021FD6C8 ldr r0, _021DF87C ; =0x0221053C - ldr r1, _021DF888 ; =FUN_021E9464 + ldr r1, _021DF888 ; =MOD04_021E9464 ldr r0, [r0] ldr r0, [r0] - bl FUN_021FD434 + bl MOD04_021FD434 mov r0, r4 add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 _021DF87C: .word 0x0221053C -_021DF880: .word FUN_021DEB90 -_021DF884: .word FUN_021E9204 -_021DF888: .word FUN_021E9464 +_021DF880: .word MOD04_021DEB90 +_021DF884: .word MOD04_021E9204 +_021DF888: .word MOD04_021E9464 - arm_func_start FUN_021DF88C -FUN_021DF88C: ; 0x021DF88C + arm_func_start MOD04_021DF88C +MOD04_021DF88C: ; 0x021DF88C ldr r0, _021DF8A4 ; =0x0221053C ldr r0, [r0] cmp r0, #0 @@ -7751,8 +7754,8 @@ FUN_021DF88C: ; 0x021DF88C .align 2, 0 _021DF8A4: .word 0x0221053C - arm_func_start FUN_021DF8A8 -FUN_021DF8A8: ; 0x021DF8A8 + arm_func_start MOD04_021DF8A8 +MOD04_021DF8A8: ; 0x021DF8A8 stmdb sp!, {lr} sub sp, sp, #4 ldr r1, _021DF8F0 ; =0x0221053C @@ -7768,14 +7771,14 @@ FUN_021DF8A8: ; 0x021DF8A8 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {pc} - bl FUN_021DF5F0 + bl MOD04_021DF5F0 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _021DF8F0: .word 0x0221053C - arm_func_start FUN_021DF8F4 -FUN_021DF8F4: ; 0x021DF8F4 + arm_func_start MOD04_021DF8F4 +MOD04_021DF8F4: ; 0x021DF8F4 stmdb sp!, {lr} sub sp, sp, #4 ldr r2, _021DF954 ; =0x0221053C @@ -7795,19 +7798,19 @@ FUN_021DF8F4: ; 0x021DF8F4 cmp r1, #3 bne _021DF948 _021DF93C: - bl FUN_021E86A4 + bl MOD04_021E86A4 add sp, sp, #4 ldmfd sp!, {pc} _021DF948: - bl FUN_021E874C + bl MOD04_021E874C add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _021DF954: .word 0x0221053C _021DF958: .word 0x00000624 - arm_func_start FUN_021DF95C -FUN_021DF95C: ; 0x021DF95C + arm_func_start MOD04_021DF95C +MOD04_021DF95C: ; 0x021DF95C ldr r0, _021DF974 ; =0x0221053C ldr r0, [r0] cmp r0, #0 @@ -7817,8 +7820,8 @@ FUN_021DF95C: ; 0x021DF95C .align 2, 0 _021DF974: .word 0x0221053C - arm_func_start FUN_021DF978 -FUN_021DF978: ; 0x021DF978 + arm_func_start MOD04_021DF978 +MOD04_021DF978: ; 0x021DF978 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021DF9D0 ; =0x0221053C @@ -7834,27 +7837,27 @@ FUN_021DF978: ; 0x021DF978 cmp r0, #3 bne _021DF9C0 _021DF9B0: - bl FUN_021E87D8 + bl MOD04_021E87D8 add sp, sp, #4 add r0, r0, #1 ldmfd sp!, {pc} _021DF9C0: - bl FUN_021E8804 + bl MOD04_021E8804 add r0, r0, #1 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _021DF9D0: .word 0x0221053C - arm_func_start FUN_021DF9D4 -FUN_021DF9D4: ; 0x021DF9D4 + arm_func_start MOD04_021DF9D4 +MOD04_021DF9D4: ; 0x021DF9D4 stmdb sp!, {r4, lr} ldr r1, _021DFA3C ; =0x0221053C mov r4, r0 ldr r0, [r1] cmp r0, #0 beq _021DFA14 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 bne _021DFA14 ldr r0, _021DFA3C ; =0x0221053C @@ -7869,25 +7872,25 @@ _021DFA14: ldmia sp!, {r4, pc} _021DFA1C: mov r0, r4 - bl FUN_021DF760 + bl MOD04_021DF760 cmp r0, #0 mvneq r0, #1 ldmeqia sp!, {r4, pc} - bl FUN_021FD488 + bl MOD04_021FD488 mov r0, #0 ldmia sp!, {r4, pc} .align 2, 0 _021DFA3C: .word 0x0221053C - arm_func_start FUN_021DFA40 -FUN_021DFA40: ; 0x021DFA40 + arm_func_start MOD04_021DFA40 +MOD04_021DFA40: ; 0x021DFA40 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021DFAF0 ; =0x0221053C ldr r0, [r0] cmp r0, #0 beq _021DFA80 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 bne _021DFA80 ldr r0, _021DFAF0 ; =0x0221053C @@ -7908,10 +7911,10 @@ _021DFA8C: ldr r1, _021DFAF4 ; =0x0220D334 mov r0, #1 mov r2, #0 - bl FUN_021E1E30 - bl FUN_02200D6C + bl MOD04_021E1E30 + bl MOD04_02200D6C mov r0, #3 - bl FUN_021DF5CC + bl MOD04_021DF5CC add sp, sp, #4 mov r0, #1 ldmfd sp!, {pc} @@ -7921,7 +7924,7 @@ _021DFAC0: strb r1, [r2, #0x2d] ldr r0, [r0] ldr r0, [r0] - bl FUN_021FD45C + bl MOD04_021FD45C ldr r1, _021DFAF0 ; =0x0221053C mov r0, #0 ldr r1, [r1] @@ -7932,8 +7935,8 @@ _021DFAC0: _021DFAF0: .word 0x0221053C _021DFAF4: .word 0x0220D334 - arm_func_start FUN_021DFAF8 -FUN_021DFAF8: ; 0x021DFAF8 + arm_func_start MOD04_021DFAF8 +MOD04_021DFAF8: ; 0x021DFAF8 ldr r2, _021DFB1C ; =0x0221053C ldr r3, [r2] cmp r3, #0 @@ -7946,8 +7949,8 @@ FUN_021DFAF8: ; 0x021DFAF8 .align 2, 0 _021DFB1C: .word 0x0221053C - arm_func_start FUN_021DFB20 -FUN_021DFB20: ; 0x021DFB20 + arm_func_start MOD04_021DFB20 +MOD04_021DFB20: ; 0x021DFB20 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x224 mvn ip, #0 @@ -7956,7 +7959,7 @@ FUN_021DFB20: ; 0x021DFB20 mov r4, r2 mov r5, r3 str ip, [sp, #8] - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 bne _021DFB60 ldr r0, _021DFD04 ; =0x0221053C @@ -7969,23 +7972,23 @@ _021DFB60: mov r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} _021DFB6C: - bl FUN_021DF6CC + bl MOD04_021DF6CC ldr r1, _021DFD04 ; =0x0221053C mov r0, #5 ldr r2, [r1] str r6, [r2, #0x88] ldr r1, [r1] str r4, [r1, #0x8c] - bl FUN_021DF5CC + bl MOD04_021DF5CC mov r0, r7 - bl FUN_021E1F84 + bl MOD04_021E1F84 movs r4, r0 beq _021DFBB8 ldr r0, _021DFD04 ; =0x0221053C mov r1, r4 ldr r0, [r0] add r0, r0, #0x1c - bl FUN_021F05F4 + bl MOD04_021F05F4 cmp r0, #0 bne _021DFBC0 _021DFBB8: @@ -7997,13 +8000,13 @@ _021DFBC0: ldr r0, [r0] mov r1, r4 add r0, r0, #0x1c - bl FUN_021F0664 + bl MOD04_021F0664 ldr r0, _021DFD04 ; =0x0221053C ldr r1, [sp, #8] ldr r0, [r0] add r2, sp, #0x10 add r0, r0, #0x1c - bl FUN_021F06E4 + bl MOD04_021F06E4 ldr r0, [sp, #0x14] cmp r0, #6 movne r5, #0xb @@ -8014,7 +8017,7 @@ _021DFBC0: add r2, sp, #0x18 mov r3, #0x2f strb r6, [sp, #0xc] - bl FUN_021DE9F4 + bl MOD04_021DE9F4 add r0, sp, #0xc mov r1, #0 mov r2, #0xa @@ -8024,7 +8027,7 @@ _021DFBC0: add r1, sp, #0xc add r2, sp, #0x18 mov r3, #0x2f - bl FUN_021DE9F4 + bl MOD04_021DE9F4 add r0, sp, #0xc mov r1, #0 mov r2, #0xa @@ -8034,19 +8037,19 @@ _021DFBC0: moveq r5, #0xd beq _021DFC8C ldr r6, [sp, #0x238] - ldr r1, _021DFD10 ; =FUN_021DF12C + ldr r1, _021DFD10 ; =MOD04_021DF12C mov r0, r4 mov r3, r5 mov r2, #0 str r6, [sp] - bl FUN_021E9FD0 + bl MOD04_021E9FD0 add sp, sp, #0x224 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} _021DFC8C: mov r0, r5 mov r1, #0 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 ldr r0, _021DFD04 ; =0x0221053C mov r1, #0 ldr r4, [r0] @@ -8066,11 +8069,11 @@ _021DFC8C: cmp r0, #5 bne _021DFCF8 mov r0, #3 - bl FUN_021DF5CC + bl MOD04_021DF5CC ldr r1, _021DFD14 ; =0x0220D334 mov r0, #1 mov r2, #0 - bl FUN_021E1E30 + bl MOD04_021E1E30 _021DFCF8: mov r0, #1 add sp, sp, #0x224 @@ -8079,18 +8082,18 @@ _021DFCF8: _021DFD04: .word 0x0221053C _021DFD08: .word 0x0220D344 _021DFD0C: .word 0x0220D348 -_021DFD10: .word FUN_021DF12C +_021DFD10: .word MOD04_021DF12C _021DFD14: .word 0x0220D334 - arm_func_start FUN_021DFD18 -FUN_021DFD18: ; 0x021DFD18 + arm_func_start MOD04_021DFD18 +MOD04_021DFD18: ; 0x021DFD18 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 mov r5, r2 mov r4, r3 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 bne _021DFD50 ldr r0, _021DFDB4 ; =0x0221053C @@ -8103,7 +8106,7 @@ _021DFD50: mov r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} _021DFD5C: - bl FUN_021DF6CC + bl MOD04_021DF6CC ldr r1, _021DFDB4 ; =0x0221053C mov r2, #0 ldr r3, [r1] @@ -8113,30 +8116,30 @@ _021DFD5C: str r5, [r3, #0x8c] ldr r1, [r1] strb r2, [r1, #0x2c] - bl FUN_021DF5CC + bl MOD04_021DF5CC sub r0, r7, #1 ldr r5, [sp, #0x18] - ldr r1, _021DFDB8 ; =FUN_021DF12C + ldr r1, _021DFDB8 ; =MOD04_021DF12C mov r3, r4 and r0, r0, #0xff mov r2, #0 str r5, [sp] - bl FUN_021EA138 + bl MOD04_021EA138 mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021DFDB4: .word 0x0221053C -_021DFDB8: .word FUN_021DF12C +_021DFDB8: .word MOD04_021DF12C - arm_func_start FUN_021DFDBC -FUN_021DFDBC: ; 0x021DFDBC + arm_func_start MOD04_021DFDBC +MOD04_021DFDBC: ; 0x021DFDBC stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x10 mov r6, r1 mov r5, r2 mov r4, r3 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 bne _021DFDF8 ldr r0, _021DFE5C ; =0x0221053C @@ -8155,7 +8158,7 @@ _021DFE04: ldr r1, [r0] mov r0, #4 str r5, [r1, #0x7c] - bl FUN_021DF5CC + bl MOD04_021DF5CC ldr r0, _021DFE5C ; =0x0221053C ldr r1, [sp, #0x20] ldr r3, [r0] @@ -8164,28 +8167,28 @@ _021DFE04: str r1, [sp, #4] ldr r4, [sp, #0x28] str r0, [sp, #8] - ldr r2, _021DFE60 ; =FUN_021DF2B4 + ldr r2, _021DFE60 ; =MOD04_021DF2B4 add r0, r3, #0xe0 add r1, r3, #0x1e0 mov r3, #0 str r4, [sp, #0xc] - bl FUN_021E2174 + bl MOD04_021E2174 mov r0, #1 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021DFE5C: .word 0x0221053C -_021DFE60: .word FUN_021DF2B4 +_021DFE60: .word MOD04_021DF2B4 - arm_func_start FUN_021DFE64 -FUN_021DFE64: ; 0x021DFE64 + arm_func_start MOD04_021DFE64 +MOD04_021DFE64: ; 0x021DFE64 stmdb sp!, {r4, r5, r6, lr} movs r4, r0 mov r6, r2 mov r5, r3 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 bne _021DFE9C ldr r0, _021DFF6C ; =0x0221053C @@ -8215,12 +8218,12 @@ _021DFECC: mov r2, #0x34 bl MIi_CpuClear16 mov r0, r4 - bl FUN_021DE89C + bl MOD04_021DE89C cmp r0, #0x19 movhi r5, #0x19 bhi _021DFF00 mov r0, r4 - bl FUN_021DE89C + bl MOD04_021DE89C mov r5, r0 _021DFF00: ldr r1, _021DFF6C ; =0x0221053C @@ -8235,35 +8238,35 @@ _021DFF18: ldr r0, [r0] add r0, r0, r5, lsl #1 strh r1, [r0, #0x2e] - bl FUN_021DDC1C + bl MOD04_021DDC1C cmp r0, #4 beq _021DFF4C ldr r1, _021DFF70 ; =0xFFFF1596 mov r0, #2 - bl FUN_021E0EAC + bl MOD04_021E0EAC mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _021DFF4C: mov r0, #1 - bl FUN_021DF5CC + bl MOD04_021DF5CC ldr r0, _021DFF6C ; =0x0221053C ldr r0, [r0] ldr r0, [r0, #0x68] - bl FUN_021EE898 + bl MOD04_021EE898 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021DFF6C: .word 0x0221053C _021DFF70: .word 0xFFFF1596 - arm_func_start FUN_021DFF74 -FUN_021DFF74: ; 0x021DFF74 + arm_func_start MOD04_021DFF74 +MOD04_021DFF74: ; 0x021DFF74 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021DD984 + bl MOD04_021DD984 cmp r0, #0 beq _021DFF8C - bl FUN_021DF5EC + bl MOD04_021DF5EC _021DFF8C: ldr r0, _021E01E4 ; =0x0221053C ldr r0, [r0] @@ -8274,7 +8277,7 @@ _021DFF8C: cmp r0, #0 addeq sp, sp, #4 ldmeqia sp!, {pc} - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} @@ -8293,7 +8296,7 @@ _021DFFD8: ; jump table b _021E013C ; case 5 b _021E014C ; case 6 _021DFFF4: - bl FUN_021EE6A0 + bl MOD04_021EE6A0 cmp r0, #1 beq _021E0014 cmp r0, #2 @@ -8307,87 +8310,87 @@ _021E0014: ldr r0, [r0] ldr r1, [r0, #0xa0] add r0, r0, #0x1c - bl FUN_021F0F94 - bl FUN_021DF414 + bl MOD04_021F0F94 + bl MOD04_021DF414 cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} ldr r0, _021E01E4 ; =0x0221053C mov r1, #0 ldr r0, [r0] - ldr r2, _021E01E8 ; =FUN_021DF0D4 + ldr r2, _021E01E8 ; =MOD04_021DF0D4 mov r3, r1 add r0, r0, #0x1c - bl FUN_021F0EB0 - bl FUN_021DF414 + bl MOD04_021F0EB0 + bl MOD04_021DF414 cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} ldr r0, _021E01E4 ; =0x0221053C - ldr r2, _021E01EC ; =FUN_021DEF6C + ldr r2, _021E01EC ; =MOD04_021DEF6C ldr r0, [r0] mov r1, #3 add r0, r0, #0x1c mov r3, #0 - bl FUN_021F0EB0 - bl FUN_021DF414 + bl MOD04_021F0EB0 + bl MOD04_021DF414 cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} ldr r0, _021E01E4 ; =0x0221053C - ldr r2, _021E01F0 ; =FUN_021E20C8 + ldr r2, _021E01F0 ; =MOD04_021E20C8 ldr r0, [r0] mov r1, #1 add r0, r0, #0x1c mov r3, #0 - bl FUN_021F0EB0 - bl FUN_021DF414 + bl MOD04_021F0EB0 + bl MOD04_021DF414 cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} ldr r0, _021E01E4 ; =0x0221053C - ldr r2, _021E01F4 ; =FUN_021E1FE4 + ldr r2, _021E01F4 ; =MOD04_021E1FE4 ldr r0, [r0] mov r1, #2 add r0, r0, #0x1c mov r3, #0 - bl FUN_021F0EB0 - bl FUN_021DF414 + bl MOD04_021F0EB0 + bl MOD04_021DF414 cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} mov r0, #2 - bl FUN_021DF5CC - bl FUN_021E1034 + bl MOD04_021DF5CC + bl MOD04_021E1034 b _021E0194 _021E00FC: ldr r1, _021E01F8 ; =0xFFFFB172 mov r0, #3 - bl FUN_021E0EAC + bl MOD04_021E0EAC add sp, sp, #4 ldmfd sp!, {pc} _021E0110: ldr r1, _021E01FC ; =0xFFFFB17B mov r0, #4 - bl FUN_021E0EAC + bl MOD04_021E0EAC add sp, sp, #4 ldmfd sp!, {pc} _021E0124: - bl FUN_021E0F1C + bl MOD04_021E0F1C b _021E0194 _021E012C: - bl FUN_021E2228 + bl MOD04_021E2228 mov r0, #0 - bl FUN_021E9568 + bl MOD04_021E9568 b _021E0194 _021E013C: mov r0, #1 - bl FUN_021E9568 - bl FUN_021E2228 + bl MOD04_021E9568 + bl MOD04_021E2228 b _021E0194 _021E014C: - bl FUN_021EAA64 - bl FUN_021E2228 + bl MOD04_021EAA64 + bl MOD04_021E2228 ldr r0, _021E01E4 ; =0x0221053C ldr r1, [r0] ldrb r0, [r1, #0x369] @@ -8398,14 +8401,14 @@ _021E014C: bne _021E0180 _021E0174: mov r0, #1 - bl FUN_021E9568 + bl MOD04_021E9568 b _021E0194 _021E0180: ldr r0, [r1] cmp r0, #0 beq _021E0194 mov r0, #0 - bl FUN_021E9568 + bl MOD04_021E9568 _021E0194: ldr r0, _021E01E4 ; =0x0221053C ldr r1, [r0] @@ -8416,7 +8419,7 @@ _021E0194: ldr r0, [r1, #0x364] cmp r0, #0 beq _021E01CC - bl FUN_02202280 + bl MOD04_02202280 ldr r0, _021E01E4 ; =0x0221053C mov r1, #0 ldr r0, [r0] @@ -8430,15 +8433,15 @@ _021E01CC: ldmfd sp!, {pc} .align 2, 0 _021E01E4: .word 0x0221053C -_021E01E8: .word FUN_021DF0D4 -_021E01EC: .word FUN_021DEF6C -_021E01F0: .word FUN_021E20C8 -_021E01F4: .word FUN_021E1FE4 +_021E01E8: .word MOD04_021DF0D4 +_021E01EC: .word MOD04_021DEF6C +_021E01F0: .word MOD04_021E20C8 +_021E01F4: .word MOD04_021E1FE4 _021E01F8: .word 0xFFFFB172 _021E01FC: .word 0xFFFFB17B - arm_func_start FUN_021E0200 -FUN_021E0200: ; 0x021E0200 + arm_func_start MOD04_021E0200 +MOD04_021E0200: ; 0x021E0200 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021E0370 ; =0x0221053C @@ -8449,7 +8452,7 @@ FUN_021E0200: ; 0x021E0200 ldr r0, [r0, #0x364] cmp r0, #0 beq _021E023C - bl FUN_02202280 + bl MOD04_02202280 ldr r0, _021E0370 ; =0x0221053C mov r1, #0 ldr r0, [r0] @@ -8463,14 +8466,14 @@ _021E023C: ldr r0, [r0, #0x438] cmp r0, #0 beq _021E0270 - bl FUN_02203E80 + bl MOD04_02203E80 ldr r0, _021E0370 ; =0x0221053C mov r1, #0 ldr r0, [r0] str r1, [r0, #0x438] _021E0270: - bl FUN_02200D6C - bl FUN_021FBE7C + bl MOD04_02200D6C + bl MOD04_021FBE7C ldr r0, _021E0370 ; =0x0221053C ldr ip, [r0] ldr r0, [ip, #0x1c] @@ -8480,51 +8483,51 @@ _021E0270: mov r2, r1 mov r3, r1 add r0, ip, #0x1c - bl FUN_021F0EB0 + bl MOD04_021F0EB0 ldr r0, _021E0370 ; =0x0221053C mov r2, #0 ldr r0, [r0] mov r3, r2 add r0, r0, #0x1c mov r1, #3 - bl FUN_021F0EB0 + bl MOD04_021F0EB0 ldr r0, _021E0370 ; =0x0221053C mov r2, #0 ldr r0, [r0] mov r3, r2 add r0, r0, #0x1c mov r1, #1 - bl FUN_021F0EB0 + bl MOD04_021F0EB0 ldr r0, _021E0370 ; =0x0221053C mov r2, #0 ldr r0, [r0] mov r1, #2 add r0, r0, #0x1c mov r3, r2 - bl FUN_021F0EB0 + bl MOD04_021F0EB0 ldr r0, _021E0370 ; =0x0221053C ldr r0, [r0] add r0, r0, #0x1c - bl FUN_021F0F18 + bl MOD04_021F0F18 ldr r0, _021E0370 ; =0x0221053C ldr r0, [r0] add r0, r0, #0x1c - bl FUN_021F0F64 + bl MOD04_021F0F64 mov r1, #0 ldr r0, _021E0370 ; =0x0221053C ldr r0, [r0] str r1, [r0, #0x1c] _021E0324: - bl FUN_021E0E48 - bl FUN_021E1D90 - bl FUN_021E854C - bl FUN_021EA9C4 + bl MOD04_021E0E48 + bl MOD04_021E1D90 + bl MOD04_021E854C + bl MOD04_021EA9C4 ldr r0, _021E0370 ; =0x0221053C ldr r0, [r0] ldr r0, [r0] cmp r0, #0 beq _021E035C - bl FUN_021FD704 + bl MOD04_021FD704 ldr r0, _021E0370 ; =0x0221053C mov r1, #0 ldr r0, [r0] @@ -8538,8 +8541,8 @@ _021E035C: .align 2, 0 _021E0370: .word 0x0221053C - arm_func_start FUN_021E0374 -FUN_021E0374: ; 0x021E0374 + arm_func_start MOD04_021E0374 +MOD04_021E0374: ; 0x021E0374 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x10 ldr ip, _021E05D8 ; =0x0221053C @@ -8547,22 +8550,22 @@ FUN_021E0374: ; 0x021E0374 mov r5, r2 mov r4, r3 str r0, [ip] - bl FUN_021DD6F0 + bl MOD04_021DD6F0 ldr r0, _021E05D8 ; =0x0221053C mov r2, #0 ldr r1, [r0] - ldr r3, _021E05DC ; =FUN_021E8F80 + ldr r3, _021E05DC ; =MOD04_021E8F80 str r2, [r1] ldr r1, [r0] - ldr r2, _021E05E0 ; =FUN_021DEF60 + ldr r2, _021E05E0 ; =MOD04_021DEF60 str r3, [r1, #4] ldr r1, [r0] ldr ip, [sp, #0x24] str r2, [r1, #8] cmp ip, #0 ldr r2, [r0] - ldr r3, _021E05E4 ; =FUN_021DEBE4 - ldr r1, _021E05E8 ; =FUN_021DEBD8 + ldr r3, _021E05E4 ; =MOD04_021DEBE4 + ldr r1, _021E05E8 ; =MOD04_021DEBD8 str r3, [r2, #0xc] ldr r0, [r0] ldr r3, [sp, #0x28] @@ -8617,12 +8620,12 @@ FUN_021E0374: ; 0x021E0374 str r0, [r2, #0x90] ldr r1, [r1] str r0, [r1, #0x94] - bl FUN_021DF6CC + bl MOD04_021DF6CC ldr r0, _021E05D8 ; =0x0221053C mov r3, r5 ldr r2, [r0] ldr r1, [r6, #0x24] - ldr r0, _021E05F4 ; =FUN_021DF304 + ldr r0, _021E05F4 ; =MOD04_021DF304 str r1, [sp] add r1, r2, #0x2e str r1, [sp, #4] @@ -8632,7 +8635,7 @@ FUN_021E0374: ; 0x021E0374 mov r1, r6 add r2, r2, #0x1c str r5, [sp, #0xc] - bl FUN_021E1074 + bl MOD04_021E1074 ldr r0, _021E05D8 ; =0x0221053C ldr r2, [sp, #0x30] ldr r5, [r0] @@ -8641,7 +8644,7 @@ FUN_021E0374: ; 0x021E0374 add r0, r5, #0x2f8 add r1, r5, #0x1c add r2, r5, #0x2e - bl FUN_021E234C + bl MOD04_021E234C ldr r0, _021E05D8 ; =0x0221053C ldr r1, _021E05EC ; =0x02210F94 ldr r2, [r0] @@ -8655,12 +8658,12 @@ FUN_021E0374: ; 0x021E0374 add r0, r2, #0x354 add r1, r2, #0x1c add r3, r2, #4 - bl FUN_021EA368 + bl MOD04_021EA368 ldr r1, _021E05D8 ; =0x0221053C ldr r0, _021E05F8 ; =0x000007D8 ldr r1, [r1] add r0, r1, r0 - bl FUN_021EACB4 + bl MOD04_021EACB4 mov r0, r4 bl strlen cmp r0, #0x100 @@ -8697,17 +8700,17 @@ _021E05B4: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021E05D8: .word 0x0221053C -_021E05DC: .word FUN_021E8F80 -_021E05E0: .word FUN_021DEF60 -_021E05E4: .word FUN_021DEBE4 -_021E05E8: .word FUN_021DEBD8 +_021E05DC: .word MOD04_021E8F80 +_021E05E0: .word MOD04_021DEF60 +_021E05E4: .word MOD04_021DEBE4 +_021E05E8: .word MOD04_021DEBD8 _021E05EC: .word 0x02210F94 _021E05F0: .word 0x02211094 -_021E05F4: .word FUN_021DF304 +_021E05F4: .word MOD04_021DF304 _021E05F8: .word 0x000007D8 - arm_func_start FUN_021E05FC -FUN_021E05FC: ; 0x021E05FC + arm_func_start MOD04_021E05FC +MOD04_021E05FC: ; 0x021E05FC ldr r0, _021E0624 ; =0x022106C8 ldr r0, [r0] cmp r0, #0 @@ -8722,8 +8725,8 @@ _021E061C: .align 2, 0 _021E0624: .word 0x022106C8 - arm_func_start FUN_021E0628 -FUN_021E0628: ; 0x021E0628 + arm_func_start MOD04_021E0628 +MOD04_021E0628: ; 0x021E0628 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x4c mov r4, r1 @@ -8748,15 +8751,15 @@ FUN_021E0628: ; 0x021E0628 ldr r1, _021E07D0 ; =0x00000705 add r2, sp, #8 mov r0, r5 - bl FUN_021F0B30 - bl FUN_021E0DB0 + bl MOD04_021F0B30 + bl MOD04_021E0DB0 cmp r0, #0 addne sp, sp, #0x4c ldmneia sp!, {r4, r5, pc} ldr r0, _021E07CC ; =0x022106C8 mov r3, #4 ldr r1, [r0] - ldr r0, _021E07D4 ; =FUN_021E0628 + ldr r0, _021E07D4 ; =MOD04_021E0628 str r3, [r1, #4] mov r2, #0 str r0, [sp] @@ -8764,16 +8767,16 @@ FUN_021E0628: ; 0x021E0628 ldr r1, [r4, #4] mov r0, r5 mov r3, r2 - bl FUN_021F0B9C - bl FUN_021E0DB0 + bl MOD04_021F0B9C + bl MOD04_021E0DB0 add sp, sp, #0x4c cmp r0, #0 ldmia sp!, {r4, r5, pc} _021E06DC: - bl FUN_021F0D54 - ldr r0, _021E07D8 ; =FUN_021E0C80 + bl MOD04_021F0D54 + ldr r0, _021E07D8 ; =MOD04_021E0C80 mov r1, #0 - bl FUN_021E0A00 + bl MOD04_021E0A00 ldr r0, _021E07CC ; =0x022106C8 mov r1, #1 ldr r0, [r0] @@ -8807,7 +8810,7 @@ _021E0704: add r1, r1, #0x3c bl FUN_02096EC0 mov r0, r5 - bl FUN_021F0D54 + bl MOD04_021F0D54 ldr r0, _021E07CC ; =0x022106C8 ldr r1, _021E07DC ; =0x022106C4 ldr r4, [r0] @@ -8820,35 +8823,35 @@ _021E0704: add sp, sp, #0x4c ldmia sp!, {r4, r5, pc} _021E079C: - ldr r0, _021E07D4 ; =FUN_021E0628 + ldr r0, _021E07D4 ; =MOD04_021E0628 mov r2, #0 str r0, [sp] str r2, [sp, #4] ldr r1, [r4, #4] mov r0, r5 mov r3, r2 - bl FUN_021F0B9C - bl FUN_021E0DB0 + bl MOD04_021F0B9C + bl MOD04_021E0DB0 cmp r0, #0 add sp, sp, #0x4c ldmia sp!, {r4, r5, pc} .align 2, 0 _021E07CC: .word 0x022106C8 _021E07D0: .word 0x00000705 -_021E07D4: .word FUN_021E0628 -_021E07D8: .word FUN_021E0C80 +_021E07D4: .word MOD04_021E0628 +_021E07D8: .word MOD04_021E0C80 _021E07DC: .word 0x022106C4 _021E07E0: .word 0x022106CC - arm_func_start FUN_021E07E4 -FUN_021E07E4: ; 0x021E07E4 + arm_func_start MOD04_021E07E4 +MOD04_021E07E4: ; 0x021E07E4 stmdb sp!, {lr} sub sp, sp, #0x3d4 - bl FUN_021D988C + bl MOD04_021D988C cmp r0, #0x15 bne _021E08BC add r0, sp, #0 - bl FUN_021D97F8 + bl MOD04_021D97F8 ldr r0, _021E09DC ; =0x022106C8 add r1, sp, #0x4a ldr r0, [r0] @@ -8860,13 +8863,13 @@ FUN_021E07E4: ; 0x021E07E4 add r1, r1, #0x77 add r0, r0, #0x148 bl strcpy - bl FUN_021D991C + bl MOD04_021D991C ldr r1, _021E09DC ; =0x022106C8 mov r0, #0 ldr r1, [r1] mov r2, r0 ldr r1, [r1, #0x24] - bl FUN_021DD904 + bl MOD04_021DD904 ldr r0, _021E09DC ; =0x022106C8 mov r2, #0 ldr r1, [r0] @@ -8889,16 +8892,16 @@ FUN_021E07E4: ; 0x021E07E4 ldmfd sp!, {pc} _021E0898: ldr r0, _021E09DC ; =0x022106C8 - ldr r2, _021E09E8 ; =FUN_021E0C98 + ldr r2, _021E09E8 ; =MOD04_021E0C98 ldr r1, [r0] mov r3, #3 add r0, r1, #0x48 add r1, r1, #0x148 - bl FUN_021E0BE0 + bl MOD04_021E0BE0 add sp, sp, #0x3d4 ldmfd sp!, {pc} _021E08BC: - bl FUN_021D988C + bl MOD04_021D988C cmp r0, #0 addeq sp, sp, #0x3d4 ldmeqia sp!, {pc} @@ -8920,25 +8923,25 @@ _021E08BC: cmpeq r0, r2 bls _021E0958 add r0, sp, #0x1c4 - bl FUN_021D97F8 - bl FUN_021D991C + bl MOD04_021D97F8 + bl MOD04_021D991C ldr r1, _021E09DC ; =0x022106C8 mov r0, #0 ldr r1, [r1] mov r2, r0 ldr r1, [r1, #0x24] - bl FUN_021DD904 + bl MOD04_021DD904 ldr r0, _021E09DC ; =0x022106C8 mov r2, #0 ldr r1, [r0] mov r0, #2 str r2, [r1, #0x24] ldr r1, [sp, #0x1c4] - bl FUN_021E0EAC + bl MOD04_021E0EAC add sp, sp, #0x3d4 ldmfd sp!, {pc} _021E0958: - bl FUN_021D991C + bl MOD04_021D991C add r0, sp, #0x388 mov r1, #0 mov r2, #0x48 @@ -8946,7 +8949,7 @@ _021E0958: ldr r0, _021E09DC ; =0x022106C8 ldr r0, [r0] ldr r0, [r0, #0x10] - bl FUN_021DE89C + bl MOD04_021DE89C ldr r1, _021E09DC ; =0x022106C8 mov r2, r0, lsl #1 ldr r1, [r1] @@ -8960,30 +8963,30 @@ _021E0958: add r0, sp, #0x3bc add r1, r2, r1 bl strcpy - ldr r2, _021E09F8 ; =FUN_021DD944 + ldr r2, _021E09F8 ; =MOD04_021DD944 ldr r0, _021E09DC ; =0x022106C8 str r2, [sp, #0x3c8] - ldr r2, _021E09FC ; =FUN_021DD904 + ldr r2, _021E09FC ; =MOD04_021DD904 ldr r1, [r0] str r2, [sp, #0x3cc] ldr r1, [r1, #0x24] add r0, sp, #0x388 - bl FUN_021D9ACC + bl MOD04_021D9ACC add sp, sp, #0x3d4 ldmfd sp!, {pc} .align 2, 0 _021E09DC: .word 0x022106C8 _021E09E0: .word 0x022106C4 _021E09E4: .word 0x022106CC -_021E09E8: .word FUN_021E0C98 +_021E09E8: .word MOD04_021E0C98 _021E09EC: .word 0x000082EA _021E09F0: .word 0x00002710 _021E09F4: .word 0x00000251 -_021E09F8: .word FUN_021DD944 -_021E09FC: .word FUN_021DD904 +_021E09F8: .word MOD04_021DD944 +_021E09FC: .word MOD04_021DD904 - arm_func_start FUN_021E0A00 -FUN_021E0A00: ; 0x021E0A00 + arm_func_start MOD04_021E0A00 +MOD04_021E0A00: ; 0x021E0A00 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x4c mov r5, r0 @@ -9063,7 +9066,7 @@ _021E0B1C: ldr r0, _021E0BB8 ; =0x022106C8 ldr r0, [r0] ldr r0, [r0, #0x10] - bl FUN_021DE89C + bl MOD04_021DE89C ldr r1, _021E0BB8 ; =0x022106C8 mov r2, r0, lsl #1 ldr r1, [r1] @@ -9077,14 +9080,14 @@ _021E0B1C: add r0, sp, #0x34 add r1, r2, r1 bl strcpy - ldr r4, _021E0BD4 ; =FUN_021DD944 - ldr r3, _021E0BD8 ; =FUN_021DD904 + ldr r4, _021E0BD4 ; =MOD04_021DD944 + ldr r3, _021E0BD8 ; =MOD04_021DD904 ldr r1, _021E0BDC ; =0x00001C10 mov r0, #0 mov r2, #4 str r4, [sp, #0x40] str r3, [sp, #0x44] - bl FUN_021DD924 + bl MOD04_021DD924 ldr r1, _021E0BB8 ; =0x022106C8 mov r4, r0 ldr r0, [r1] @@ -9096,7 +9099,7 @@ _021E0B1C: str r1, [r2, #0x2c] mov r1, r4 add r0, sp, #0 - bl FUN_021D9ACC + bl MOD04_021D9ACC add sp, sp, #0x4c ldmia sp!, {r4, r5, pc} .align 2, 0 @@ -9107,12 +9110,12 @@ _021E0BC4: .word 0x6C078965 _021E0BC8: .word 0x5D588B65 _021E0BCC: .word 0x00269EC3 _021E0BD0: .word 0x00000251 -_021E0BD4: .word FUN_021DD944 -_021E0BD8: .word FUN_021DD904 +_021E0BD4: .word MOD04_021DD944 +_021E0BD8: .word MOD04_021DD904 _021E0BDC: .word 0x00001C10 - arm_func_start FUN_021E0BE0 -FUN_021E0BE0: ; 0x021E0BE0 + arm_func_start MOD04_021E0BE0 +MOD04_021E0BE0: ; 0x021E0BE0 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x10 ldr r4, _021E0C7C ; =0x022106C8 @@ -9144,8 +9147,8 @@ FUN_021E0BE0: ; 0x021E0BE0 ldr r0, [r2] add r1, r2, #0x48 add r2, r2, #0x148 - bl FUN_021F0D8C - bl FUN_021E0DB0 + bl MOD04_021F0D8C + bl MOD04_021E0DB0 cmp r0, #0 ldreq r0, _021E0C7C ; =0x022106C8 ldreq r0, [r0] @@ -9155,18 +9158,18 @@ FUN_021E0BE0: ; 0x021E0BE0 .align 2, 0 _021E0C7C: .word 0x022106C8 - arm_func_start FUN_021E0C80 -FUN_021E0C80: ; 0x021E0C80 - ldr ip, _021E0C90 ; =FUN_021E0BE0 - ldr r2, _021E0C94 ; =FUN_021E0C98 + arm_func_start MOD04_021E0C80 +MOD04_021E0C80: ; 0x021E0C80 + ldr ip, _021E0C90 ; =MOD04_021E0BE0 + ldr r2, _021E0C94 ; =MOD04_021E0C98 mov r3, #2 bx ip .align 2, 0 -_021E0C90: .word FUN_021E0BE0 -_021E0C94: .word FUN_021E0C98 +_021E0C90: .word MOD04_021E0BE0 +_021E0C94: .word MOD04_021E0C98 - arm_func_start FUN_021E0C98 -FUN_021E0C98: ; 0x021E0C98 + arm_func_start MOD04_021E0C98 +MOD04_021E0C98: ; 0x021E0C98 stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r3, _021E0DA0 ; =0x022106C8 @@ -9190,8 +9193,8 @@ FUN_021E0C98: ; 0x021E0C98 mov r3, #5 mov r0, #1 str r3, [ip, #4] - bl FUN_021E1E30 - bl FUN_021E0DB0 + bl MOD04_021E1E30 + bl MOD04_021E0DB0 cmp r0, #0 addne sp, sp, #8 ldmneia sp!, {r4, pc} @@ -9202,48 +9205,48 @@ FUN_021E0C98: ; 0x021E0C98 ldr r2, [r3, #0x18] ldr r3, [r3, #0x14] blx r3 - bl FUN_021DF7C4 + bl MOD04_021DF7C4 cmp r0, #0 addne sp, sp, #8 ldmneia sp!, {r4, pc} ldr r0, [r4, #4] - bl FUN_021EA1E0 + bl MOD04_021EA1E0 add sp, sp, #8 cmp r0, #0 ldmia sp!, {r4, pc} _021E0D48: ldr r1, _021E0DA8 ; =0xFFFF15A0 mov r0, #6 - bl FUN_021E0EAC + bl MOD04_021E0EAC add sp, sp, #8 ldmia sp!, {r4, pc} _021E0D5C: cmp r1, #3 addne sp, sp, #8 ldmneia sp!, {r4, pc} - ldr r1, _021E0DAC ; =FUN_021E0628 + ldr r1, _021E0DAC ; =MOD04_021E0628 mov r3, r2 str r1, [sp] str r2, [sp, #4] ldr r1, [r4, #4] - bl FUN_021F0B9C - bl FUN_021E0DB0 + bl MOD04_021F0B9C + bl MOD04_021E0DB0 add sp, sp, #8 cmp r0, #0 ldmia sp!, {r4, pc} _021E0D90: mov r0, r1 - bl FUN_021E0DB0 + bl MOD04_021E0DB0 add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 _021E0DA0: .word 0x022106C8 _021E0DA4: .word 0x0220D34C _021E0DA8: .word 0xFFFF15A0 -_021E0DAC: .word FUN_021E0628 +_021E0DAC: .word MOD04_021E0628 - arm_func_start FUN_021E0DB0 -FUN_021E0DB0: ; 0x021E0DB0 + arm_func_start MOD04_021E0DB0 +MOD04_021E0DB0: ; 0x021E0DB0 stmdb sp!, {r4, lr} movs r4, r0 moveq r0, #0 @@ -9275,14 +9278,14 @@ _021E0E04: _021E0E0C: ldr r1, _021E0E20 ; =0xFFFF11B8 add r1, r2, r1 - bl FUN_021E0EAC + bl MOD04_021E0EAC mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 _021E0E20: .word 0xFFFF11B8 - arm_func_start FUN_021E0E24 -FUN_021E0E24: ; 0x021E0E24 + arm_func_start MOD04_021E0E24 +MOD04_021E0E24: ; 0x021E0E24 ldr r0, _021E0E44 ; =0x022106C8 ldr r2, [r0] cmp r2, #0 @@ -9294,8 +9297,8 @@ FUN_021E0E24: ; 0x021E0E24 .align 2, 0 _021E0E44: .word 0x022106C8 - arm_func_start FUN_021E0E48 -FUN_021E0E48: ; 0x021E0E48 + arm_func_start MOD04_021E0E48 +MOD04_021E0E48: ; 0x021E0E48 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021E0EA8 ; =0x022106C8 @@ -9303,14 +9306,14 @@ FUN_021E0E48: ; 0x021E0E48 ldr r0, [r0, #0x24] cmp r0, #0 beq _021E0E94 - bl FUN_021D9974 - bl FUN_021D991C + bl MOD04_021D9974 + bl MOD04_021D991C ldr r1, _021E0EA8 ; =0x022106C8 mov r0, #0 ldr r1, [r1] mov r2, r0 ldr r1, [r1, #0x24] - bl FUN_021DD904 + bl MOD04_021DD904 ldr r0, _021E0EA8 ; =0x022106C8 mov r1, #0 ldr r0, [r0] @@ -9324,8 +9327,8 @@ _021E0E94: .align 2, 0 _021E0EA8: .word 0x022106C8 - arm_func_start FUN_021E0EAC -FUN_021E0EAC: ; 0x021E0EAC + arm_func_start MOD04_021E0EAC +MOD04_021E0EAC: ; 0x021E0EAC stmdb sp!, {r4, lr} ldr r2, _021E0EFC ; =0x022106C8 mov r4, r0 @@ -9334,7 +9337,7 @@ FUN_021E0EAC: ; 0x021E0EAC ldmeqia sp!, {r4, pc} cmp r4, #0 ldmeqia sp!, {r4, pc} - bl FUN_021DD6B0 + bl MOD04_021DD6B0 ldr r0, _021E0EFC ; =0x022106C8 ldr r0, [r0] ldr r3, [r0, #0x14] @@ -9345,13 +9348,13 @@ FUN_021E0EAC: ; 0x021E0EAC mov r1, #0 blx r3 _021E0EF4: - bl FUN_021E0E24 + bl MOD04_021E0E24 ldmia sp!, {r4, pc} .align 2, 0 _021E0EFC: .word 0x022106C8 - arm_func_start FUN_021E0F00 -FUN_021E0F00: ; 0x021E0F00 + arm_func_start MOD04_021E0F00 +MOD04_021E0F00: ; 0x021E0F00 ldr r0, _021E0F18 ; =0x022106C8 ldr r0, [r0] cmp r0, #0 @@ -9361,8 +9364,8 @@ FUN_021E0F00: ; 0x021E0F00 .align 2, 0 _021E0F18: .word 0x022106C8 - arm_func_start FUN_021E0F1C -FUN_021E0F1C: ; 0x021E0F1C + arm_func_start MOD04_021E0F1C +MOD04_021E0F1C: ; 0x021E0F1C stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021E1024 ; =0x022106C8 @@ -9370,7 +9373,7 @@ FUN_021E0F1C: ; 0x021E0F1C cmp r0, #0 addeq sp, sp, #4 ldmeqia sp!, {pc} - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} @@ -9388,7 +9391,7 @@ _021E0F60: ; jump table b _021E0F84 ; case 4 b _021E101C ; case 5 _021E0F78: - bl FUN_021E07E4 + bl MOD04_021E07E4 add sp, sp, #4 ldmfd sp!, {pc} _021E0F84: @@ -9398,7 +9401,7 @@ _021E0F84: ldr r1, [r0] cmp r1, #0 beq _021E0FA0 - bl FUN_021F0F18 + bl MOD04_021F0F18 _021E0FA0: ldr r0, _021E1024 ; =0x022106C8 ldr r0, [r0] @@ -9426,7 +9429,7 @@ _021E0FA0: ldmlsia sp!, {pc} ldr r1, _021E1030 ; =0xFFFF1172 mov r0, #6 - bl FUN_021E0EAC + bl MOD04_021E0EAC ldr r0, _021E1024 ; =0x022106C8 mov r1, #0 ldr r0, [r0] @@ -9440,13 +9443,13 @@ _021E1028: .word 0x000082EA _021E102C: .word 0x0000EA60 _021E1030: .word 0xFFFF1172 - arm_func_start FUN_021E1034 -FUN_021E1034: ; 0x021E1034 + arm_func_start MOD04_021E1034 +MOD04_021E1034: ; 0x021E1034 stmdb sp!, {lr} sub sp, sp, #4 - ldr r0, _021E106C ; =FUN_021E0C80 + ldr r0, _021E106C ; =MOD04_021E0C80 mov r1, #0 - bl FUN_021E0A00 + bl MOD04_021E0A00 ldr r0, _021E1070 ; =0x022106C8 mov r3, #1 ldr r2, [r0] @@ -9457,11 +9460,11 @@ FUN_021E1034: ; 0x021E1034 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 -_021E106C: .word FUN_021E0C80 +_021E106C: .word MOD04_021E0C80 _021E1070: .word 0x022106C8 - arm_func_start FUN_021E1074 -FUN_021E1074: ; 0x021E1074 + arm_func_start MOD04_021E1074 +MOD04_021E1074: ; 0x021E1074 stmdb sp!, {r4, r5, r6, lr} ldr ip, _021E10F4 ; =0x022106C8 mov r6, r1 @@ -9497,8 +9500,8 @@ FUN_021E1074: ; 0x021E1074 .align 2, 0 _021E10F4: .word 0x022106C8 - arm_func_start FUN_021E10F8 -FUN_021E10F8: ; 0x021E10F8 + arm_func_start MOD04_021E10F8 +MOD04_021E10F8: ; 0x021E10F8 ldr r0, _021E1108 ; =0x022106D0 ldr r0, [r0] ldr r0, [r0, #0x20] @@ -9506,8 +9509,8 @@ FUN_021E10F8: ; 0x021E10F8 .align 2, 0 _021E1108: .word 0x022106D0 - arm_func_start FUN_021E110C -FUN_021E110C: ; 0x021E110C + arm_func_start MOD04_021E110C +MOD04_021E110C: ; 0x021E110C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x24 mov sl, r1 @@ -9534,7 +9537,7 @@ _021E115C: bl FUN_02097484 cmp r0, #1 bne _021E11C8 - bl FUN_021E0F00 + bl MOD04_021E0F00 ldr r1, [r4] add r2, sp, #8 ldr r1, [r1, #0x18] @@ -9578,7 +9581,7 @@ _021E11F8: streq fp, [sp] beq _021E125C ldr r6, [sl, #4] - bl FUN_021E0F00 + bl MOD04_021E0F00 ldr r1, [r4] ldr r1, [r1, #0x18] add r1, r1, r7 @@ -9608,11 +9611,11 @@ _021E1274: ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} ldr r0, [r2, #0x18] ldr r2, [sl, #4] - bl FUN_021E17F0 + bl MOD04_021E17F0 ldr r1, [sp] cmp r1, #0 beq _021E129C - bl FUN_021E1DA4 + bl MOD04_021E1DA4 _021E129C: ldr r0, _021E12B4 ; =0x022106D0 mov r1, #1 @@ -9623,8 +9626,8 @@ _021E129C: .align 2, 0 _021E12B4: .word 0x022106D0 - arm_func_start FUN_021E12B8 -FUN_021E12B8: ; 0x021E12B8 + arm_func_start MOD04_021E12B8 +MOD04_021E12B8: ; 0x021E12B8 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x1c mov sb, r1 @@ -9650,7 +9653,7 @@ _021E1304: bl FUN_02097484 cmp r0, #1 bne _021E136C - bl FUN_021E0F00 + bl MOD04_021E0F00 ldr r1, [r4] add r2, sp, #4 ldr r1, [r1, #0x18] @@ -9663,7 +9666,7 @@ _021E1304: bne _021E13CC ldr r1, [sb, #4] mov r0, sl - bl FUN_021F0944 + bl MOD04_021F0944 ldr r0, [r4] ldr r1, [sb, #4] ldr r0, [r0, #0x18] @@ -9686,7 +9689,7 @@ _021E136C: bne _021E13CC _021E139C: ldr r6, [sb, #4] - bl FUN_021E0F00 + bl MOD04_021E0F00 ldr r1, [r4] ldr r1, [r1, #0x18] add r1, r1, r7 @@ -9695,7 +9698,7 @@ _021E139C: bne _021E13CC mov r0, sl mov r1, r6 - bl FUN_021F0944 + bl MOD04_021F0944 mov fp, r5 _021E13CC: ldr r1, [r4] @@ -9708,20 +9711,20 @@ _021E13E4: cmp fp, #0 beq _021E13FC ldr r0, [sb, #4] - bl FUN_021E17BC + bl MOD04_021E17BC add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021E13FC: ldr r1, [sb, #4] mov r0, sl - bl FUN_021F0864 + bl MOD04_021F0864 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _021E1410: .word 0x022106D0 - arm_func_start FUN_021E1414 -FUN_021E1414: ; 0x021E1414 + arm_func_start MOD04_021E1414 +MOD04_021E1414: ; 0x021E1414 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 mov sb, r1 @@ -9761,7 +9764,7 @@ _021E1498: ldr r0, [r0, #0x18] ldr r2, [r1, r4] mov r1, r8 - bl FUN_021E1900 + bl MOD04_021E1900 cmp r0, #0 beq _021E14E8 ldr r0, _021E1670 ; =0x022106D0 @@ -9794,14 +9797,14 @@ _021E1514: mov r0, sl ldr r1, [r1, r7] mov r2, fp - bl FUN_021F0664 - bl FUN_021E1678 + bl MOD04_021F0664 + bl MOD04_021E1678 ldr r0, [sp] cmp r0, r4 bne _021E1548 ldr r0, [sb, #0xc] ldr r0, [r0, r7] - bl FUN_021E17BC + bl MOD04_021E17BC b _021E15B0 _021E1548: ldr r0, _021E1670 ; =0x022106D0 @@ -9817,7 +9820,7 @@ _021E1548: add r0, r0, r6 bl FUN_02097414 mov r0, r8 - bl FUN_021E1DA4 + bl MOD04_021E1DA4 ldr r0, _021E1670 ; =0x022106D0 mov r2, #1 ldr r4, [r0] @@ -9855,7 +9858,7 @@ _021E15FC: ldr r0, [sb] cmp r0, #0 beq _021E1618 - bl FUN_021E1678 + bl MOD04_021E1678 add sp, sp, #4 cmp r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -9887,8 +9890,8 @@ _021E1648: _021E1670: .word 0x022106D0 _021E1674: .word 0x00000601 - arm_func_start FUN_021E1678 -FUN_021E1678: ; 0x021E1678 + arm_func_start MOD04_021E1678 +MOD04_021E1678: ; 0x021E1678 stmdb sp!, {r4, lr} movs r4, r0 moveq r0, #0 @@ -9920,14 +9923,14 @@ _021E16CC: _021E16D4: ldr r1, _021E16E8 ; =0xFFFEEAA8 add r1, r2, r1 - bl FUN_021E2114 + bl MOD04_021E2114 mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 _021E16E8: .word 0xFFFEEAA8 - arm_func_start FUN_021E16EC -FUN_021E16EC: ; 0x021E16EC + arm_func_start MOD04_021E16EC +MOD04_021E16EC: ; 0x021E16EC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r2, _021E17B8 ; =0x022106D0 @@ -9938,7 +9941,7 @@ FUN_021E16EC: ; 0x021E16EC str r3, [sp] cmp r2, #0 beq _021E1720 - bl FUN_021E05FC + bl MOD04_021E05FC cmp r0, #0 bne _021E172C _021E1720: @@ -9946,7 +9949,7 @@ _021E1720: mov r0, #0 ldmia sp!, {r4, r5, pc} _021E172C: - bl FUN_021E0F00 + bl MOD04_021E0F00 mov r1, r5 bl FUN_02096DA0 mov r5, r0 @@ -9957,7 +9960,7 @@ _021E172C: ldr r0, [r0] mov r1, r5 ldr r0, [r0, #4] - bl FUN_021F0664 + bl MOD04_021F0664 cmp r0, #0 addne sp, sp, #4 movne r0, #0 @@ -9978,7 +9981,7 @@ _021E1790: mov r2, r4 ldr r0, [r0] ldr r0, [r0, #4] - bl FUN_021F06E4 + bl MOD04_021F06E4 cmp r0, #0 movne r0, #0 moveq r0, #1 @@ -9987,25 +9990,25 @@ _021E1790: .align 2, 0 _021E17B8: .word 0x022106D0 - arm_func_start FUN_021E17BC -FUN_021E17BC: ; 0x021E17BC + arm_func_start MOD04_021E17BC +MOD04_021E17BC: ; 0x021E17BC stmdb sp!, {r4, lr} ldr r2, _021E17E8 ; =0x022106D0 mov r1, r0 ldr r0, [r2] ldr r2, _021E17EC ; =0x0220D350 ldr r0, [r0, #4] - bl FUN_021F09B0 + bl MOD04_021F09B0 mov r4, r0 - bl FUN_021E1678 + bl MOD04_021E1678 mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 _021E17E8: .word 0x022106D0 _021E17EC: .word 0x0220D350 - arm_func_start FUN_021E17F0 -FUN_021E17F0: ; 0x021E17F0 + arm_func_start MOD04_021E17F0 +MOD04_021E17F0: ; 0x021E17F0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc mov sl, r1 @@ -10022,7 +10025,7 @@ FUN_021E17F0: ; 0x021E17F0 str r0, [sp, #8] _021E1828: mov r0, r8 - bl FUN_021E1F84 + bl MOD04_021E1F84 movs sb, r0 beq _021E18DC ldr r0, [sp] @@ -10035,7 +10038,7 @@ _021E1828: mla r4, r7, r0, fp _021E1858: mov r0, r7 - bl FUN_021E1F84 + bl MOD04_021E1F84 cmp sb, r0 bne _021E18CC mov r0, r6 @@ -10060,7 +10063,7 @@ _021E18AC: mov r0, fp mov r1, r7 mov r2, r8 - bl FUN_021E19B8 + bl MOD04_021E19B8 ldr r0, _021E18FC ; =0x022106D0 ldr r1, [r0] ldr r0, [sp, #8] @@ -10083,8 +10086,8 @@ _021E18F0: .align 2, 0 _021E18FC: .word 0x022106D0 - arm_func_start FUN_021E1900 -FUN_021E1900: ; 0x021E1900 + arm_func_start MOD04_021E1900 +MOD04_021E1900: ; 0x021E1900 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r6, r1 @@ -10095,7 +10098,7 @@ FUN_021E1900: ; 0x021E1900 ble _021E19A8 _021E1920: mov r0, r4 - bl FUN_021E1F84 + bl MOD04_021E1F84 cmp r0, #0 beq _021E199C cmp r0, r5 @@ -10113,13 +10116,13 @@ _021E1920: mov r0, r7 mov r1, r4 mov r2, r6 - bl FUN_021E19B8 + bl MOD04_021E19B8 b _021E1984 _021E1974: mov r0, r7 mov r1, r6 mov r2, r4 - bl FUN_021E19B8 + bl MOD04_021E19B8 _021E1984: ldr r1, _021E19B4 ; =0x022106D0 mov r0, #1 @@ -10138,8 +10141,8 @@ _021E19A8: .align 2, 0 _021E19B4: .word 0x022106D0 - arm_func_start FUN_021E19B8 -FUN_021E19B8: ; 0x021E19B8 + arm_func_start MOD04_021E19B8 +MOD04_021E19B8: ; 0x021E19B8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r3, _021E1A1C ; =0x022106D0 @@ -10168,8 +10171,8 @@ FUN_021E19B8: ; 0x021E19B8 .align 2, 0 _021E1A1C: .word 0x022106D0 - arm_func_start FUN_021E1A20 -FUN_021E1A20: ; 0x021E1A20 + arm_func_start MOD04_021E1A20 +MOD04_021E1A20: ; 0x021E1A20 stmdb sp!, {lr} sub sp, sp, #4 ldr r1, _021E1A5C ; =0x022106D0 @@ -10188,8 +10191,8 @@ FUN_021E1A20: ; 0x021E1A20 .align 2, 0 _021E1A5C: .word 0x022106D0 - arm_func_start FUN_021E1A60 -FUN_021E1A60: ; 0x021E1A60 + arm_func_start MOD04_021E1A60 +MOD04_021E1A60: ; 0x021E1A60 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x24c ldr r2, _021E1CC4 ; =0x022106D0 @@ -10201,8 +10204,8 @@ FUN_021E1A60: ; 0x021E1A60 bne _021E1B8C ldr r0, [r2, #4] add r1, sp, #0x18 - bl FUN_021F0828 - bl FUN_021E1678 + bl MOD04_021F0828 + bl MOD04_021E1678 ldr r0, [sp, #0x18] mov fp, #0 str fp, [sp, #0x1c] @@ -10216,14 +10219,14 @@ _021E1AB4: ldr r1, [sp, #0x1c] ldr r0, [r0, #4] add r2, sp, #0x38 - bl FUN_021F06E4 - bl FUN_021E1678 + bl MOD04_021F06E4 + bl MOD04_021E1678 mov r4, fp cmp r5, #0 ble _021E1B30 _021E1AD8: mov r0, r4 - bl FUN_021E1F84 + bl MOD04_021E1F84 ldr r1, [sp, #0x38] cmp r1, r0 bne _021E1B24 @@ -10251,8 +10254,8 @@ _021E1B30: ldr r0, [r8] ldr r1, [sp, #0x38] ldr r0, [r0, #4] - bl FUN_021F0580 - bl FUN_021E1678 + bl MOD04_021F0580 + bl MOD04_021E1678 ldr r1, [sp, #0x18] ldr r0, [sp, #0x1c] sub r1, r1, #1 @@ -10282,37 +10285,37 @@ _021E1B8C: mov r8, #0xc mvn sb, #0 _021E1BB0: - bl FUN_021E1F84 + bl MOD04_021E1F84 movs r7, r0 beq _021E1C08 ldr r1, [sl] mov r0, r6 ldrb r1, [r1, #0x1c] mov r2, r7 - bl FUN_021E1900 + bl MOD04_021E1900 cmp r0, #0 bne _021E1C9C ldr r0, [sl] mov r1, r7 ldr r0, [r0, #4] mov r2, r4 - bl FUN_021F0664 - bl FUN_021E1678 + bl MOD04_021F0664 + bl MOD04_021E1678 ldr r0, [sp, #0x1c] cmp r0, sb bne _021E1C9C mov r0, r7 - bl FUN_021E17BC + bl MOD04_021E17BC b _021E1C9C _021E1C08: - bl FUN_021E0F00 + bl MOD04_021E0F00 ldr r1, [sl] ldrb r2, [r1, #0x1c] mla r1, r2, r8, r6 bl FUN_02096DA0 cmp r0, sb bne _021E1C9C - bl FUN_021E0F00 + bl MOD04_021E0F00 ldr r2, _021E1CC4 ; =0x022106D0 mov r1, #0xc ldr r3, [r2] @@ -10327,7 +10330,7 @@ _021E1C08: str r1, [sp] str r2, [sp, #4] str r1, [sp, #8] - ldr r0, _021E1CC8 ; =FUN_021E1414 + ldr r0, _021E1CC8 ; =MOD04_021E1414 str r1, [sp, #0xc] str r0, [sp, #0x10] ldrb r0, [r4, #0x1c] @@ -10335,7 +10338,7 @@ _021E1C08: mov r3, r1 str r0, [sp, #0x14] ldr r0, [r4, #4] - bl FUN_021F0C84 + bl MOD04_021F0C84 ldr r0, _021E1CC4 ; =0x022106D0 mov r1, #2 ldr r0, [r0] @@ -10355,10 +10358,10 @@ _021E1C9C: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _021E1CC4: .word 0x022106D0 -_021E1CC8: .word FUN_021E1414 +_021E1CC8: .word MOD04_021E1414 - arm_func_start FUN_021E1CCC -FUN_021E1CCC: ; 0x021E1CCC + arm_func_start MOD04_021E1CCC +MOD04_021E1CCC: ; 0x021E1CCC ldr r0, _021E1CF8 ; =0x022106D0 ldr r1, [r0] cmp r1, #0 @@ -10373,8 +10376,8 @@ FUN_021E1CCC: ; 0x021E1CCC .align 2, 0 _021E1CF8: .word 0x022106D0 - arm_func_start FUN_021E1CFC -FUN_021E1CFC: ; 0x021E1CFC + arm_func_start MOD04_021E1CFC +MOD04_021E1CFC: ; 0x021E1CFC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _021E1D88 ; =0x022106D0 @@ -10400,7 +10403,7 @@ FUN_021E1CFC: ; 0x021E1CFC str r1, [r4, #8] ldr r0, [r0] ldr r0, [r0, #4] - bl FUN_021F0F18 + bl MOD04_021F0F18 mov r5, r0 bl OS_GetTick ldr r2, _021E1D88 ; =0x022106D0 @@ -10415,8 +10418,8 @@ _021E1D7C: _021E1D88: .word 0x022106D0 _021E1D8C: .word 0x000082EA - arm_func_start FUN_021E1D90 -FUN_021E1D90: ; 0x021E1D90 + arm_func_start MOD04_021E1D90 +MOD04_021E1D90: ; 0x021E1D90 ldr r0, _021E1DA0 ; =0x022106D0 mov r1, #0 str r1, [r0] @@ -10424,8 +10427,8 @@ FUN_021E1D90: ; 0x021E1D90 .align 2, 0 _021E1DA0: .word 0x022106D0 - arm_func_start FUN_021E1DA4 -FUN_021E1DA4: ; 0x021E1DA4 + arm_func_start MOD04_021E1DA4 +MOD04_021E1DA4: ; 0x021E1DA4 stmdb sp!, {r4, lr} sub sp, sp, #0x210 ldr r1, _021E1E2C ; =0x022106D0 @@ -10450,7 +10453,7 @@ _021E1DD8: mov r0, #0xc mla r0, r4, r0, r1 add r1, sp, #0x108 - bl FUN_021E26B8 + bl MOD04_021E26B8 ldr r2, _021E1E2C ; =0x022106D0 mov r1, r0 ldr r0, [r2] @@ -10464,8 +10467,8 @@ _021E1DD8: .align 2, 0 _021E1E2C: .word 0x022106D0 - arm_func_start FUN_021E1E30 -FUN_021E1E30: ; 0x021E1E30 + arm_func_start MOD04_021E1E30 +MOD04_021E1E30: ; 0x021E1E30 stmdb sp!, {r4, r5, r6, lr} ldr r3, _021E1ED0 ; =0x022106D0 mov r6, r0 @@ -10474,7 +10477,7 @@ FUN_021E1E30: ; 0x021E1E30 mov r4, r2 cmp r0, #0 beq _021E1E5C - bl FUN_021E05FC + bl MOD04_021E05FC cmp r0, #0 bne _021E1E64 _021E1E5C: @@ -10506,13 +10509,13 @@ _021E1E64: mov r3, r4 ldr r0, [r0] ldr r0, [r0, #4] - bl FUN_021F034C + bl MOD04_021F034C ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021E1ED0: .word 0x022106D0 - arm_func_start FUN_021E1ED4 -FUN_021E1ED4: ; 0x021E1ED4 + arm_func_start MOD04_021E1ED4 +MOD04_021E1ED4: ; 0x021E1ED4 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021E1F14 ; =0x022106D0 @@ -10532,8 +10535,8 @@ FUN_021E1ED4: ; 0x021E1ED4 .align 2, 0 _021E1F14: .word 0x022106D0 - arm_func_start FUN_021E1F18 -FUN_021E1F18: ; 0x021E1F18 + arm_func_start MOD04_021E1F18 +MOD04_021E1F18: ; 0x021E1F18 stmdb sp!, {r4, r5, r6, lr} ldr r4, _021E1F80 ; =0x022106D0 mov r6, r0 @@ -10552,7 +10555,7 @@ _021E1F40: ble _021E1F78 _021E1F50: mov r0, r5 - bl FUN_021E1F84 + bl MOD04_021E1F84 cmp r6, r0 moveq r0, r5 ldmeqia sp!, {r4, r5, r6, pc} @@ -10567,8 +10570,8 @@ _021E1F78: .align 2, 0 _021E1F80: .word 0x022106D0 - arm_func_start FUN_021E1F84 -FUN_021E1F84: ; 0x021E1F84 + arm_func_start MOD04_021E1F84 +MOD04_021E1F84: ; 0x021E1F84 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r1, _021E1FE0 ; =0x022106D0 @@ -10579,7 +10582,7 @@ FUN_021E1F84: ; 0x021E1F84 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {r4, r5, pc} - bl FUN_021E0F00 + bl MOD04_021E0F00 mov r1, #0xc mla r1, r5, r1, r4 bl FUN_02096DA0 @@ -10596,8 +10599,8 @@ _021E1FD4: .align 2, 0 _021E1FE0: .word 0x022106D0 - arm_func_start FUN_021E1FE4 -FUN_021E1FE4: ; 0x021E1FE4 + arm_func_start MOD04_021E1FE4 +MOD04_021E1FE4: ; 0x021E1FE4 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x210 ldr r2, _021E2064 ; =0x022106D0 @@ -10609,7 +10612,7 @@ FUN_021E1FE4: ; 0x021E1FE4 addeq sp, sp, #0x210 ldmeqia sp!, {r4, r5, r6, pc} ldr r0, [r5] - bl FUN_021E1F18 + bl MOD04_021E1F18 mov r4, r0 mvn r0, #0 cmp r4, r0 @@ -10618,7 +10621,7 @@ FUN_021E1FE4: ; 0x021E1FE4 ldr r1, [r5, #8] add r2, sp, #0 mov r0, r6 - bl FUN_021F06E4 + bl MOD04_021F06E4 ldr r0, _021E2064 ; =0x022106D0 ldr r1, [sp, #4] ldr r0, [r0] @@ -10633,8 +10636,8 @@ FUN_021E1FE4: ; 0x021E1FE4 .align 2, 0 _021E2064: .word 0x022106D0 - arm_func_start FUN_021E2068 -FUN_021E2068: ; 0x021E2068 + arm_func_start MOD04_021E2068 +MOD04_021E2068: ; 0x021E2068 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc mov r4, r1 @@ -10646,23 +10649,23 @@ FUN_021E2068: ; 0x021E2068 addne sp, sp, #0xc movne r0, #0 ldmneia sp!, {r4, r5, pc} - ldr r0, _021E20C4 ; =FUN_021E110C + ldr r0, _021E20C4 ; =MOD04_021E110C mov r2, #0 str r0, [sp] str r2, [sp, #4] ldr r1, [r4] mov r0, r5 mov r3, r2 - bl FUN_021F0B9C + bl MOD04_021F0B9C mov r0, #1 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} .align 2, 0 _021E20C0: .word 0x0220D354 -_021E20C4: .word FUN_021E110C +_021E20C4: .word MOD04_021E110C - arm_func_start FUN_021E20C8 -FUN_021E20C8: ; 0x021E20C8 + arm_func_start MOD04_021E20C8 +MOD04_021E20C8: ; 0x021E20C8 stmdb sp!, {lr} sub sp, sp, #0xc ldr r2, _021E210C ; =0x022106D0 @@ -10671,21 +10674,21 @@ FUN_021E20C8: ; 0x021E20C8 cmp r2, #0 addeq sp, sp, #0xc ldmeqia sp!, {pc} - ldr r3, _021E2110 ; =FUN_021E12B8 + ldr r3, _021E2110 ; =MOD04_021E12B8 mov r2, #0 str r3, [sp] str r2, [sp, #4] ldr r1, [r1] mov r3, r2 - bl FUN_021F0B9C + bl MOD04_021F0B9C add sp, sp, #0xc ldmfd sp!, {pc} .align 2, 0 _021E210C: .word 0x022106D0 -_021E2110: .word FUN_021E12B8 +_021E2110: .word MOD04_021E12B8 - arm_func_start FUN_021E2114 -FUN_021E2114: ; 0x021E2114 + arm_func_start MOD04_021E2114 +MOD04_021E2114: ; 0x021E2114 stmdb sp!, {r4, lr} ldr r2, _021E2170 ; =0x022106D0 mov r4, r0 @@ -10694,7 +10697,7 @@ FUN_021E2114: ; 0x021E2114 ldmeqia sp!, {r4, pc} cmp r4, #0 ldmeqia sp!, {r4, pc} - bl FUN_021DD6B0 + bl MOD04_021DD6B0 ldr r0, _021E2170 ; =0x022106D0 ldr r3, [r0] ldr r0, [r3] @@ -10708,13 +10711,13 @@ FUN_021E2114: ; 0x021E2114 mov r0, r4 blx r3 _021E2168: - bl FUN_021E1CCC + bl MOD04_021E1CCC ldmia sp!, {r4, pc} .align 2, 0 _021E2170: .word 0x022106D0 - arm_func_start FUN_021E2174 -FUN_021E2174: ; 0x021E2174 + arm_func_start MOD04_021E2174 +MOD04_021E2174: ; 0x021E2174 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _021E2224 ; =0x022106D0 @@ -10762,8 +10765,8 @@ FUN_021E2174: ; 0x021E2174 .align 2, 0 _021E2224: .word 0x022106D0 - arm_func_start FUN_021E2228 -FUN_021E2228: ; 0x021E2228 + arm_func_start MOD04_021E2228 +MOD04_021E2228: ; 0x021E2228 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021E2348 ; =0x022106D0 @@ -10775,18 +10778,18 @@ FUN_021E2228: ; 0x021E2228 cmp r0, #0 addeq sp, sp, #4 ldmeqia sp!, {pc} - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} - bl FUN_021E10F8 + bl MOD04_021E10F8 cmp r0, #0 bne _021E227C - bl FUN_021FBE5C + bl MOD04_021FBE5C cmp r0, #0 beq _021E2280 _021E227C: - bl FUN_021FBD00 + bl MOD04_021FBD00 _021E2280: ldr r0, _021E2348 ; =0x022106D0 ldr r0, [r0] @@ -10796,7 +10799,7 @@ _021E2280: ldr r0, [r0] cmp r0, #0 beq _021E231C - bl FUN_021E1CFC + bl MOD04_021E1CFC cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} @@ -10814,7 +10817,7 @@ _021E2280: cmp r2, #1 bhi _021E22EC ldr r1, [r3, #0x14] - bl FUN_021E1A60 + bl MOD04_021E1A60 _021E22EC: ldr r0, _021E2348 ; =0x022106D0 ldr r3, [r0] @@ -10837,14 +10840,14 @@ _021E231C: ldmloia sp!, {pc} mov r0, #0 strb r0, [r1, #0x1f] - bl FUN_021E1A20 + bl MOD04_021E1A20 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _021E2348: .word 0x022106D0 - arm_func_start FUN_021E234C -FUN_021E234C: ; 0x021E234C + arm_func_start MOD04_021E234C +MOD04_021E234C: ; 0x021E234C stmdb sp!, {r4, lr} ldr lr, _021E2428 ; =0x022106D0 mov ip, #0 @@ -10903,8 +10906,8 @@ FUN_021E234C: ; 0x021E234C .align 2, 0 _021E2428: .word 0x022106D0 - arm_func_start FUN_021E242C -FUN_021E242C: ; 0x021E242C + arm_func_start MOD04_021E242C +MOD04_021E242C: ; 0x021E242C ldr r2, _021E2450 ; =0x022106D0 ldr r3, [r2] cmp r3, #0 @@ -10917,8 +10920,8 @@ FUN_021E242C: ; 0x021E242C .align 2, 0 _021E2450: .word 0x022106D0 - arm_func_start FUN_021E2454 -FUN_021E2454: ; 0x021E2454 + arm_func_start MOD04_021E2454 +MOD04_021E2454: ; 0x021E2454 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x104 ldr r2, _021E24DC ; =0x022106D0 @@ -10927,7 +10930,7 @@ FUN_021E2454: ; 0x021E2454 mov r4, r1 cmp r0, #0 beq _021E2480 - bl FUN_021E05FC + bl MOD04_021E05FC cmp r0, #0 bne _021E248C _021E2480: @@ -10939,7 +10942,7 @@ _021E248C: mov r0, r5 mov r1, r4 mov r3, #0xff - bl FUN_021DD4FC + bl MOD04_021DD4FC mvn r3, #0 cmp r0, r3 addeq sp, sp, #0x104 @@ -10949,7 +10952,7 @@ _021E248C: mov r1, #0 strb r1, [r2, r0] mov r0, r3 - bl FUN_021E1E30 + bl MOD04_021E1E30 cmp r0, #0 moveq r0, #1 movne r0, #0 @@ -10958,14 +10961,14 @@ _021E248C: .align 2, 0 _021E24DC: .word 0x022106D0 - arm_func_start FUN_021E24E0 -FUN_021E24E0: ; 0x021E24E0 + arm_func_start MOD04_021E24E0 +MOD04_021E24E0: ; 0x021E24E0 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x100 mov r6, r3 add r3, sp, #0 ldr r4, [sp, #0x110] - bl FUN_021E259C + bl MOD04_021E259C movs r5, r0 mvneq r1, #0 addeq sp, sp, #0x100 @@ -10977,7 +10980,7 @@ FUN_021E24E0: ; 0x021E24E0 mov r1, r0 add r0, sp, #0 mov r3, r2 - bl FUN_021DD36C + bl MOD04_021DD36C str r0, [r4] cmp r6, #0 beq _021E2544 @@ -10996,32 +10999,32 @@ _021E2550: add r0, sp, #0 mov r2, r6 mov r3, r4 - bl FUN_021DD36C + bl MOD04_021DD36C mov r0, r5 add sp, sp, #0x100 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021E2578 -FUN_021E2578: ; 0x021E2578 + arm_func_start MOD04_021E2578 +MOD04_021E2578: ; 0x021E2578 stmdb sp!, {lr} sub sp, sp, #4 mov r3, r1 mov r1, #0 str r2, [sp] mov r2, r1 - bl FUN_021E24E0 + bl MOD04_021E24E0 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021E259C -FUN_021E259C: ; 0x021E259C + arm_func_start MOD04_021E259C +MOD04_021E259C: ; 0x021E259C stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x218 mov r6, r1 add r1, sp, #4 mov r4, r2 mov r5, r3 - bl FUN_021E16EC + bl MOD04_021E16EC cmp r0, #0 beq _021E268C ldr r0, [sp, #8] @@ -11033,7 +11036,7 @@ FUN_021E259C: ; 0x021E259C add r1, sp, #0 add r2, sp, #0xc mov r3, #0x2f - bl FUN_021DE9F4 + bl MOD04_021DE9F4 cmp r0, #0 movle r0, #0 strleb r0, [r6] @@ -11050,7 +11053,7 @@ _021E260C: add r1, sp, #0 add r2, sp, #0xc mov r3, #0x2f - bl FUN_021DE9F4 + bl MOD04_021DE9F4 cmp r0, #0 movle r0, #0 strleb r0, [r4] @@ -11093,18 +11096,18 @@ _021E268C: _021E26B0: .word 0x0220D38C _021E26B4: .word 0x0220D390 - arm_func_start FUN_021E26B8 -FUN_021E26B8: ; 0x021E26B8 - ldr ip, _021E26CC ; =FUN_021E259C + arm_func_start MOD04_021E26B8 +MOD04_021E26B8: ; 0x021E26B8 + ldr ip, _021E26CC ; =MOD04_021E259C mov r3, r1 mov r1, #0 mov r2, r1 bx ip .align 2, 0 -_021E26CC: .word FUN_021E259C +_021E26CC: .word MOD04_021E259C - arm_func_start FUN_021E26D0 -FUN_021E26D0: ; 0x021E26D0 + arm_func_start MOD04_021E26D0 +MOD04_021E26D0: ; 0x021E26D0 ldr r1, _021E26E0 ; =0x022106D8 ldr r1, [r1] str r0, [r1, #0x1a0] @@ -11112,51 +11115,51 @@ FUN_021E26D0: ; 0x021E26D0 .align 2, 0 _021E26E0: .word 0x022106D8 - arm_func_start FUN_021E26E4 -FUN_021E26E4: ; 0x021E26E4 + arm_func_start MOD04_021E26E4 +MOD04_021E26E4: ; 0x021E26E4 ldr r0, _021E26F0 ; =0x022106D8 ldr r0, [r0] bx lr .align 2, 0 _021E26F0: .word 0x022106D8 - arm_func_start FUN_021E26F4 -FUN_021E26F4: ; 0x021E26F4 + arm_func_start MOD04_021E26F4 +MOD04_021E26F4: ; 0x021E26F4 ldr r1, _021E2700 ; =0x022106D8 str r0, [r1] bx lr .align 2, 0 _021E2700: .word 0x022106D8 - arm_func_start FUN_021E2704 -FUN_021E2704: ; 0x021E2704 + arm_func_start MOD04_021E2704 +MOD04_021E2704: ; 0x021E2704 stmdb sp!, {lr} sub sp, sp, #4 cmp r0, #0 addne sp, sp, #4 movne r0, #1 ldmneia sp!, {pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 beq _021E273C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x17d] add r1, r1, #1 strb r1, [r0, #0x17d] _021E273C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 beq _021E275C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x17d] cmp r0, #5 blo _021E2774 _021E275C: ldr r1, _021E2780 ; =0xFFFEAE6C mov r0, #6 - bl FUN_021E8E08 + bl MOD04_021E8E08 add sp, sp, #4 mov r0, #0 ldmfd sp!, {pc} @@ -11167,18 +11170,18 @@ _021E2774: .align 2, 0 _021E2780: .word 0xFFFEAE6C - arm_func_start FUN_021E2784 -FUN_021E2784: ; 0x021E2784 + arm_func_start MOD04_021E2784 +MOD04_021E2784: ; 0x021E2784 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x20 mov r5, r0 mov r6, r2 mov r4, r3 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #6 beq _021E27BC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xb addne sp, sp, #0x20 @@ -11191,21 +11194,21 @@ _021E27BC: bne _021E29B8 mov r0, #0 str r0, [r4, #8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x14] add r1, r1, #1 strb r1, [r0, #0x14] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r4] ldrb r5, [r0, #0x14] cmp r1, #0 beq _021E2950 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r6, #4] add r0, r0, r5, lsl #2 str r1, [r0, #0x210] ldrh r4, [r6, #2] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r2, r4, asr #8 mov r1, r4, lsl #8 add r0, r0, r5, lsl #1 @@ -11214,41 +11217,41 @@ _021E27BC: orr r1, r2, r1 add r0, r0, #0x200 strh r1, [r0, #0x90] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x17c] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x180] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x184] str r1, [r0, #0x188] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xb bne _021E2878 mov r0, #0xc - bl FUN_021E26D0 + bl MOD04_021E26D0 b _021E2880 _021E2878: mov r0, #7 - bl FUN_021E26D0 + bl MOD04_021E26D0 _021E2880: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0xc] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r3, [r0, #0x200] ldr r2, _021E2B58 ; =0x0220D394 add r0, sp, #0x10 mov r1, #0xc bl OS_SNPrintf - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r6, r5, lsl #2 mov r2, r0 ldr r0, [r1, #0x210] @@ -11256,9 +11259,9 @@ _021E2880: add r1, r1, #0x200 ldrh r1, [r1, #0x90] mov r2, #0 - bl FUN_021FFEB0 + bl MOD04_021FFEB0 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mvn r1, #0 str r1, [sp] ldr r3, _021E2B5C ; =0x00001388 @@ -11271,20 +11274,20 @@ _021E2880: ldr r0, [r4, #4] add r3, sp, #0x10 ldr r0, [r0] - bl FUN_021FD52C + bl MOD04_021FD52C cmp r0, #1 bne _021E2928 - bl FUN_021E36B0 + bl MOD04_021E36B0 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, pc} _021E2928: cmp r0, #0 addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r5, lsl #2 ldr r0, [r0, #0xf4] - bl FUN_021E59D4 + bl MOD04_021E59D4 add sp, sp, #0x20 cmp r0, #0 ldmia sp!, {r4, r5, r6, pc} @@ -11292,12 +11295,12 @@ _021E2950: cmp r6, #0 beq _021E2994 sub r4, r5, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r6, #4] add r0, r0, r4, lsl #2 str r1, [r0, #0x210] ldrh r5, [r6, #2] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r2, r5, asr #8 mov r1, r5, lsl #8 add r0, r0, r4, lsl #1 @@ -11307,13 +11310,13 @@ _021E2950: add r0, r0, #0x200 strh r1, [r0, #0x90] _021E2994: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0x18c] mov r0, #7 str r1, [r4, #0x190] - bl FUN_021E26D0 + bl MOD04_021E26D0 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, pc} _021E29B8: @@ -11322,7 +11325,7 @@ _021E29B8: addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, pc} mov r0, r5 - bl FUN_021E3754 + bl MOD04_021E3754 mov r6, r0 cmp r6, #2 beq _021E29E8 @@ -11343,17 +11346,17 @@ _021E29E8: _021E2A10: mov r0, #0 str r0, [r4, #8] - bl FUN_021E2704 + bl MOD04_021E2704 cmp r0, #0 addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r4, r0, lsl #2 ldr r0, [r0, #0xf4] - bl FUN_021E5908 + bl MOD04_021E5908 add sp, sp, #0x20 cmp r0, #0 ldmia sp!, {r4, r5, r6, pc} @@ -11362,13 +11365,13 @@ _021E2A50: mov r0, r4 add r1, r1, #1 strb r1, [r4, #1] - bl FUN_021E7A44 - bl FUN_021E37A4 + bl MOD04_021E7A44 + bl MOD04_021E37A4 add sp, sp, #0x20 cmp r0, #0 ldmia sp!, {r4, r5, r6, pc} _021E2A74: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 bl OS_GetTick str r0, [r5, #0x184] @@ -11378,7 +11381,7 @@ _021E2A74: cmp r6, #2 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x17c] cmp r0, #1 addlo sp, sp, #0x20 @@ -11386,46 +11389,46 @@ _021E2A74: _021E2AB0: mov r0, #0 str r0, [r4, #8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 beq _021E2AD8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 bne _021E2AF0 _021E2AD8: mov r0, #1 - bl FUN_021E2704 + bl MOD04_021E2704 cmp r0, #0 bne _021E2B04 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, pc} _021E2AF0: mov r0, #0 - bl FUN_021E2704 + bl MOD04_021E2704 cmp r0, #0 addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, pc} _021E2B04: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x17c] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x180] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x184] str r1, [r0, #0x188] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r0, #1 add r0, r4, r0, lsl #2 ldr r0, [r0, #0xf4] - bl FUN_021E59D4 + bl MOD04_021E59D4 cmp r0, #0 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, pc} @@ -11433,29 +11436,29 @@ _021E2B04: _021E2B58: .word 0x0220D394 _021E2B5C: .word 0x00001388 - arm_func_start FUN_021E2B60 -FUN_021E2B60: ; 0x021E2B60 + arm_func_start MOD04_021E2B60 +MOD04_021E2B60: ; 0x021E2B60 bx lr - arm_func_start FUN_021E2B64 -FUN_021E2B64: ; 0x021E2B64 + arm_func_start MOD04_021E2B64 +MOD04_021E2B64: ; 0x021E2B64 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x9c mov sl, r0 mov sb, r1 mov r8, #0 - bl FUN_021DF88C + bl MOD04_021DF88C cmp r0, #5 beq _021E2BB8 - bl FUN_021DF88C + bl MOD04_021DF88C cmp r0, #6 addne sp, sp, #0x9c ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 beq _021E2BB8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 addne sp, sp, #0x9c @@ -11497,7 +11500,7 @@ _021E2BD8: ldrh r3, [sp, #0x12] ldr r1, [sp, #0x18] ldr r2, [sp, #0x14] - bl FUN_021E6730 + bl MOD04_021E6730 cmp r0, #0 addeq sp, sp, #0x9c ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -11512,85 +11515,85 @@ _021E2BD8: .align 2, 0 _021E2C74: .word 0x0220D398 - arm_func_start FUN_021E2C78 -FUN_021E2C78: ; 0x021E2C78 + arm_func_start MOD04_021E2C78 +MOD04_021E2C78: ; 0x021E2C78 stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #1 bne _021E2C9C mov r0, #6 - bl FUN_021E26D0 + bl MOD04_021E26D0 b _021E2CBC _021E2C9C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #6 beq _021E2CBC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xb ldmneia sp!, {r4, pc} _021E2CBC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x180] cmp r4, r0 bne _021E2CE0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x17c] add r1, r1, #1 strb r1, [r0, #0x17c] b _021E2CF4 _021E2CE0: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x17c] - bl FUN_021E26E4 + bl MOD04_021E26E4 str r4, [r0, #0x180] _021E2CF4: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r2, #0 str r2, [r0, #0x184] str r2, [r0, #0x188] mov r1, r4 mov r0, #1 - bl FUN_021E7B04 - bl FUN_021E37A4 + bl MOD04_021E7B04 + bl MOD04_021E37A4 cmp r0, #0 ldmneia sp!, {r4, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0xff strb r1, [r0, #0x3cc] ldmia sp!, {r4, pc} - arm_func_start FUN_021E2D2C -FUN_021E2D2C: ; 0x021E2D2C + arm_func_start MOD04_021E2D2C +MOD04_021E2D2C: ; 0x021E2D2C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 str r5, [r0, #0x1c] - bl FUN_021E26E4 + bl MOD04_021E26E4 strh r4, [r0, #0x1a] add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021E2D54 -FUN_021E2D54: ; 0x021E2D54 - ldr ip, _021E2D5C ; =FUN_021E3800 + arm_func_start MOD04_021E2D54 +MOD04_021E2D54: ; 0x021E2D54 + ldr ip, _021E2D5C ; =MOD04_021E3800 bx ip .align 2, 0 -_021E2D5C: .word FUN_021E3800 +_021E2D5C: .word MOD04_021E3800 - arm_func_start FUN_021E2D60 -FUN_021E2D60: ; 0x021E2D60 + arm_func_start MOD04_021E2D60 +MOD04_021E2D60: ; 0x021E2D60 mov r0, #0 bx lr - arm_func_start FUN_021E2D68 -FUN_021E2D68: ; 0x021E2D68 + arm_func_start MOD04_021E2D68 +MOD04_021E2D68: ; 0x021E2D68 stmdb sp!, {r4, r5, r6, lr} mov r6, r1 cmp r0, #0 @@ -11602,25 +11605,25 @@ FUN_021E2D68: ; 0x021E2D68 _021E2D88: mov r0, r6 mov r1, #8 - bl FUN_02202254 + bl MOD04_02202254 mov r0, r6 mov r1, #0xa - bl FUN_02202254 + bl MOD04_02202254 mov r0, r6 mov r1, #0x32 - bl FUN_02202254 + bl MOD04_02202254 mov r0, r6 mov r1, #0x33 - bl FUN_02202254 + bl MOD04_02202254 mov r0, r6 mov r1, #0x34 - bl FUN_02202254 + bl MOD04_02202254 mov r0, r6 mov r1, #0x35 - bl FUN_02202254 + bl MOD04_02202254 mov r0, r6 mov r1, #0x36 - bl FUN_02202254 + bl MOD04_02202254 ldr r4, _021E2E0C ; =0x02210704 mov r5, #0 _021E2DE4: @@ -11628,7 +11631,7 @@ _021E2DE4: cmp r1, #0 beq _021E2DF8 mov r0, r6 - bl FUN_02202254 + bl MOD04_02202254 _021E2DF8: add r5, r5, #1 cmp r5, #0x9a @@ -11638,16 +11641,16 @@ _021E2DF8: .align 2, 0 _021E2E0C: .word 0x02210704 - arm_func_start FUN_021E2E10 -FUN_021E2E10: ; 0x021E2E10 + arm_func_start MOD04_021E2E10 +MOD04_021E2E10: ; 0x021E2E10 bx lr - arm_func_start FUN_021E2E14 -FUN_021E2E14: ; 0x021E2E14 + arm_func_start MOD04_021E2E14 +MOD04_021E2E14: ; 0x021E2E14 bx lr - arm_func_start FUN_021E2E18 -FUN_021E2E18: ; 0x021E2E18 + arm_func_start MOD04_021E2E18 +MOD04_021E2E18: ; 0x021E2E18 stmdb sp!, {r4, lr} mov r4, r1 cmp r0, #0x32 @@ -11674,44 +11677,44 @@ _021E2E64: ; jump table b _021E2ED8 ; case 2 b _021E2EE8 ; case 3 _021E2E74: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x14] mov r0, r4 - bl FUN_02202220 + bl MOD04_02202220 ldmia sp!, {r4, pc} _021E2E88: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x16] mov r0, r4 - bl FUN_02202220 + bl MOD04_02202220 ldmia sp!, {r4, pc} _021E2E9C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x200] mov r0, r4 - bl FUN_02202220 + bl MOD04_02202220 ldmia sp!, {r4, pc} _021E2EB0: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x15] mov r0, r4 - bl FUN_02202220 + bl MOD04_02202220 ldmia sp!, {r4, pc} _021E2EC4: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x20] mov r0, r4 - bl FUN_02202220 + bl MOD04_02202220 ldmia sp!, {r4, pc} _021E2ED8: mov r0, r4 mov r1, #3 - bl FUN_02202220 + bl MOD04_02202220 ldmia sp!, {r4, pc} _021E2EE8: mov r0, r4 mov r1, #1 - bl FUN_02202220 + bl MOD04_02202220 ldmia sp!, {r4, pc} _021E2EF8: subs r1, r0, #0x64 @@ -11731,76 +11734,76 @@ _021E2EF8: ldr r1, _021E2F64 ; =0x0221070C mov r0, r4 ldr r1, [r1, r2] - bl FUN_022021C0 + bl MOD04_022021C0 ldmia sp!, {r4, pc} _021E2F44: ldr r1, _021E2F64 ; =0x0221070C mov r0, r4 ldr r1, [r1, r2] ldr r1, [r1] - bl FUN_02202220 + bl MOD04_02202220 ldmia sp!, {r4, pc} .align 2, 0 _021E2F5C: .word 0x02210704 _021E2F60: .word 0x02210705 _021E2F64: .word 0x0221070C - arm_func_start FUN_021E2F68 -FUN_021E2F68: ; 0x021E2F68 + arm_func_start MOD04_021E2F68 +MOD04_021E2F68: ; 0x021E2F68 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x1c mov r8, #0 mov r7, r8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r0, #1 addle sp, sp, #0x1c ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} mov sb, r8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r0, #0 ble _021E2FF8 ldr r4, _021E30D8 ; =0x0220BAC4 ldr r6, _021E30DC ; =0x0220D3A0 mvn r5, #0 _021E2FB4: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] mov r1, sb - bl FUN_02203BF4 + bl MOD04_02203BF4 mov r1, r6 mov r2, r5 - bl FUN_0220394C + bl MOD04_0220394C cmp r0, r8 movgt r8, r0 ldr r0, [r4, sb, lsl #2] add sb, sb, #1 add r7, r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp sb, r0 blt _021E2FB4 _021E2FF8: mov r0, #0x64 - bl FUN_021DE8C8 + bl MOD04_021DE8C8 mov sb, r0 mov r6, #0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r0, #0 ble _021E3090 add r5, sp, #0 mov fp, r6 mov r4, #0x64 _021E3028: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203BE4 + bl MOD04_02203BE4 sub r0, r0, #1 cmp r6, r0 beq _021E3090 @@ -11819,45 +11822,45 @@ _021E3028: cmp sb, r0 blo _021E3090 add r6, r6, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r6, r0 blt _021E3028 _021E3090: mvn r0, #0x80000000 cmp r8, r0 addlt r8, r8, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] mov r1, r6 - bl FUN_02203BF4 + bl MOD04_02203BF4 ldr r1, _021E30DC ; =0x0220D3A0 mov r2, r8 - bl FUN_02203A48 - bl FUN_021E26E4 + bl MOD04_02203A48 + bl MOD04_021E26E4 mov r1, #0 ldr r0, [r0, #0xe4] ldr r2, _021E30DC ; =0x0220D3A0 mov r3, r1 - bl FUN_02203BD4 + bl MOD04_02203BD4 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _021E30D8: .word 0x0220BAC4 _021E30DC: .word 0x0220D3A0 - arm_func_start FUN_021E30E0 -FUN_021E30E0: ; 0x021E30E0 + arm_func_start MOD04_021E30E0 +MOD04_021E30E0: ; 0x021E30E0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc mov r1, #0 str r1, [sp, #4] str r0, [sp] mov r8, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r0, #0 ble _021E3268 mov r0, #0x80 @@ -11866,42 +11869,42 @@ FUN_021E30E0: ; 0x021E30E0 str r0, [sp, #8] mov fp, #0x100 _021E3120: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] mov r1, r8 - bl FUN_02203BF4 + bl MOD04_02203BF4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E31BC ldr r1, _021E32D4 ; =0x0220D3AC mov r0, r6 mov r2, r5 - bl FUN_0220394C + bl MOD04_0220394C mov sb, r0 mov sl, r5 mov r7, r4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E31B4 _021E3170: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r7, lsl #2 ldr r0, [r0, #0xf4] cmp sb, r0 bne _021E31A0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] mov r1, r6 - bl FUN_02203C50 + bl MOD04_02203C50 mov sl, r4 sub r8, r8, #1 b _021E31B4 _021E31A0: add r7, r7, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r7, r0 ble _021E3170 @@ -11909,13 +11912,13 @@ _021E31B4: cmp sl, #0 bne _021E3250 _021E31BC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x474] cmp r0, #0 beq _021E3238 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x478] ldr r2, [r7, #0x474] mov r0, r8 @@ -11927,56 +11930,56 @@ _021E31BC: cmp r7, r0 movgt r7, r0 mov r0, fp - bl FUN_021DE8C8 + bl MOD04_021DE8C8 orr r2, r0, r7, lsl #8 ldr r1, _021E32DC ; =0x0220D3A0 mov r0, r6 - bl FUN_02203A48 + bl MOD04_02203A48 b _021E3250 _021E321C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] mov r1, r6 - bl FUN_02203C50 + bl MOD04_02203C50 str r4, [sp, #4] sub r8, r8, #1 b _021E3250 _021E3238: ldr r0, [sp, #8] - bl FUN_021DE8C8 + bl MOD04_021DE8C8 mov r2, r0 ldr r1, _021E32DC ; =0x0220D3A0 mov r0, r6 - bl FUN_02203A48 + bl MOD04_02203A48 _021E3250: add r8, r8, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r8, r0 blt _021E3120 _021E3268: ldr r0, [sp] cmp r0, #0 beq _021E32A0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r0, #0 beq _021E32A0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 ldr r0, [r0, #0xe4] ldr r2, _021E32DC ; =0x0220D3A0 mov r3, r1 - bl FUN_02203BD4 + bl MOD04_02203BD4 _021E32A0: ldr r0, [sp, #4] cmp r0, #0 beq _021E32C8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r0, #0 addeq sp, sp, #0xc moveq r0, #0 @@ -11990,12 +11993,12 @@ _021E32D4: .word 0x0220D3AC _021E32D8: .word 0x007FFFFF _021E32DC: .word 0x0220D3A0 - arm_func_start FUN_021E32E0 -FUN_021E32E0: ; 0x021E32E0 + arm_func_start MOD04_021E32E0 +MOD04_021E32E0: ; 0x021E32E0 bx lr - arm_func_start FUN_021E32E4 -FUN_021E32E4: ; 0x021E32E4 + arm_func_start MOD04_021E32E4 +MOD04_021E32E4: ; 0x021E32E4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r6, r0 @@ -12008,34 +12011,34 @@ FUN_021E32E4: ; 0x021E32E4 ldmia sp!, {r4, r5, r6, r7, pc} _021E330C: mov r0, r2 - bl FUN_021E32E0 + bl MOD04_021E32E0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} _021E331C: mov r5, #0 - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r0, #0 ble _021E336C _021E332C: mov r0, r6 mov r1, r5 - bl FUN_02203BF4 + bl MOD04_02203BF4 mov r4, r0 - bl FUN_021E3F98 + bl MOD04_021E3F98 cmp r0, #0 bne _021E3358 mov r0, r6 mov r1, r4 - bl FUN_02203C50 + bl MOD04_02203C50 sub r5, r5, #1 _021E3358: mov r0, r6 add r5, r5, #1 - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r5, r0 blt _021E332C _021E336C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #2 beq _021E3394 @@ -12048,64 +12051,64 @@ _021E336C: _021E3394: mov r0, r6 mov r5, #0 - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r0, #0 ble _021E3424 _021E33A8: mov r0, r6 mov r1, r5 - bl FUN_02203BF4 + bl MOD04_02203BF4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1c] cmp r0, #0 beq _021E3410 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 mov r0, r4 - bl FUN_02203908 + bl MOD04_02203908 ldr r1, [r7, #0x1c] cmp r1, r0 bne _021E3410 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrh r0, [r0, #0x1a] cmp r0, #0 beq _021E3410 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 mov r0, r4 - bl FUN_022038E4 + bl MOD04_022038E4 ldrh r1, [r7, #0x1a] cmp r1, r0 beq _021E3424 _021E3410: mov r0, r6 add r5, r5, #1 - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r5, r0 blt _021E33A8 _021E3424: mov r0, r6 - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r5, r0 bge _021E3464 mov r0, #3 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x204] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x204] - bl FUN_021E7E5C - bl FUN_021E38E8 + bl MOD04_021E7E5C + bl MOD04_021E38E8 add sp, sp, #4 cmp r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} _021E3464: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #2 str r1, [r0, #0xe8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0xec] @@ -12114,31 +12117,31 @@ _021E3464: ldmia sp!, {r4, r5, r6, r7, pc} _021E348C: mov r0, #1 - bl FUN_021E30E0 - bl FUN_021E2F68 + bl MOD04_021E30E0 + bl MOD04_021E2F68 mov r0, r6 - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r0, #0 beq _021E34E0 mov r0, #0 mov r1, r0 - bl FUN_021E6038 - bl FUN_021E61EC + bl MOD04_021E6038 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {r4, r5, r6, r7, pc} mov r0, #4 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0xe8] add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} _021E34E0: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #2 str r1, [r0, #0xe8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0xec] @@ -12147,25 +12150,25 @@ _021E34E0: ldmia sp!, {r4, r5, r6, r7, pc} _021E3508: mov r0, r6 - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r0, #0 beq _021E3580 mov r4, #0 _021E351C: mov r0, r6 mov r1, r4 - bl FUN_02203BF4 + bl MOD04_02203BF4 mov r5, r0 - bl FUN_02203908 + bl MOD04_02203908 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1b8] cmp r7, r0 bne _021E3564 mov r0, r5 - bl FUN_022038E4 + bl MOD04_022038E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x100 ldrh r0, [r0, #0xb4] cmp r7, r0 @@ -12173,84 +12176,84 @@ _021E351C: _021E3564: mov r0, r6 mov r1, r5 - bl FUN_02203C50 + bl MOD04_02203C50 mov r0, r6 - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r0, #0 bne _021E351C _021E3580: mov r0, r6 - bl FUN_02203BE4 + bl MOD04_02203BE4 cmp r0, #0 beq _021E3684 mov r0, r6 mov r1, #0 - bl FUN_02203BF4 + bl MOD04_02203BF4 ldr r1, _021E36AC ; =0x0220D3AC mov r2, #0 - bl FUN_0220394C + bl MOD04_0220394C mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E3650 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] cmp r4, r0 bne _021E3650 mov r0, #0 - bl FUN_021E30E0 + bl MOD04_021E30E0 cmp r0, #0 beq _021E3604 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 beq _021E3650 - bl FUN_021E5824 - bl FUN_021E61EC + bl MOD04_021E5824 + bl MOD04_021E61EC cmp r0, #0 beq _021E3650 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} _021E3604: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] - bl FUN_021E5BF0 - bl FUN_021E61EC + bl MOD04_021E5BF0 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {r4, r5, r6, r7, pc} mov r0, #4 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 mov r1, r0 mov r0, #0 ldr r2, [r1, #0xf4] mov r1, r0 - bl FUN_021E5D30 - bl FUN_021E61EC + bl MOD04_021E5D30 + bl MOD04_021E61EC add sp, sp, #4 cmp r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} _021E3650: mov r0, #6 - bl FUN_021E26D0 + bl MOD04_021E26D0 mov r0, r6 mov r1, #0 - bl FUN_02203BF4 + bl MOD04_02203BF4 mov r2, r0 mov r0, #0 mov r1, r0 - bl FUN_021E7B04 - bl FUN_021E37A4 + bl MOD04_021E7B04 + bl MOD04_021E37A4 add sp, sp, #4 cmp r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} _021E3684: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #2 str r1, [r0, #0xe8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0xec] @@ -12260,8 +12263,8 @@ _021E3684: .align 2, 0 _021E36AC: .word 0x0220D3AC - arm_func_start FUN_021E36B0 -FUN_021E36B0: ; 0x021E36B0 + arm_func_start MOD04_021E36B0 +MOD04_021E36B0: ; 0x021E36B0 stmdb sp!, {r4, lr} movs r4, r0 moveq r0, #0 @@ -12307,15 +12310,15 @@ _021E3734: beq _021E3748 ldr r1, _021E3750 ; =0xFFFEAC28 add r1, r2, r1 - bl FUN_021E8E08 + bl MOD04_021E8E08 _021E3748: mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 _021E3750: .word 0xFFFEAC28 - arm_func_start FUN_021E3754 -FUN_021E3754: ; 0x021E3754 + arm_func_start MOD04_021E3754 +MOD04_021E3754: ; 0x021E3754 stmdb sp!, {r4, lr} movs r4, r0 moveq r0, #0 @@ -12335,15 +12338,15 @@ _021E3788: movs r0, #6 beq _021E3798 ldr r1, _021E37A0 ; =0xFFFEB007 - bl FUN_021E8E08 + bl MOD04_021E8E08 _021E3798: mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 _021E37A0: .word 0xFFFEB007 - arm_func_start FUN_021E37A4 -FUN_021E37A4: ; 0x021E37A4 + arm_func_start MOD04_021E37A4 +MOD04_021E37A4: ; 0x021E37A4 stmdb sp!, {r4, lr} movs r4, r0 moveq r0, #0 @@ -12366,14 +12369,14 @@ _021E37E0: _021E37E8: ldr r1, _021E37FC ; =0xFFFEB010 add r1, r2, r1 - bl FUN_021E8E08 + bl MOD04_021E8E08 mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 _021E37FC: .word 0xFFFEB010 - arm_func_start FUN_021E3800 -FUN_021E3800: ; 0x021E3800 + arm_func_start MOD04_021E3800 +MOD04_021E3800: ; 0x021E3800 stmdb sp!, {r4, r5, r6, lr} movs r6, r0 moveq r0, #0 @@ -12408,7 +12411,7 @@ _021E3864: mov r4, #6 mvn r5, #0x13 _021E386C: - bl FUN_021DF88C + bl MOD04_021DF88C cmp r0, #2 beq _021E388C cmp r0, #4 @@ -12419,25 +12422,25 @@ _021E386C: _021E388C: mov r0, r4 sub r1, r5, #0xfa00 - bl FUN_021E0EAC + bl MOD04_021E0EAC b _021E38D4 _021E389C: ldr r1, _021E38DC ; =0xFFFEDEF0 mov r0, r4 add r1, r5, r1 - bl FUN_021E2114 + bl MOD04_021E2114 b _021E38D4 _021E38B0: ldr r1, _021E38E0 ; =0xFFFEB7E0 mov r0, r4 add r1, r5, r1 - bl FUN_021E8E08 + bl MOD04_021E8E08 b _021E38D4 _021E38C4: ldr r1, _021E38E4 ; =0xFFFE90D0 mov r0, r4 add r1, r5, r1 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 _021E38D4: mov r0, r6 ldmia sp!, {r4, r5, r6, pc} @@ -12446,8 +12449,8 @@ _021E38DC: .word 0xFFFEDEF0 _021E38E0: .word 0xFFFEB7E0 _021E38E4: .word 0xFFFE90D0 - arm_func_start FUN_021E38E8 -FUN_021E38E8: ; 0x021E38E8 + arm_func_start MOD04_021E38E8 +MOD04_021E38E8: ; 0x021E38E8 stmdb sp!, {r4, lr} movs r4, r0 moveq r0, #0 @@ -12489,14 +12492,14 @@ _021E395C: _021E3964: ldr r1, _021E3978 ; =0xFFFEB3F8 add r1, r2, r1 - bl FUN_021E8E08 + bl MOD04_021E8E08 mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 _021E3978: .word 0xFFFEB3F8 - arm_func_start FUN_021E397C -FUN_021E397C: ; 0x021E397C + arm_func_start MOD04_021E397C +MOD04_021E397C: ; 0x021E397C stmdb sp!, {r4, lr} movs r4, r0 moveq r0, #0 @@ -12528,14 +12531,14 @@ _021E39D0: _021E39D8: ldr r1, _021E39EC ; =0xFFFEC398 add r1, r2, r1 - bl FUN_021E8E08 + bl MOD04_021E8E08 mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 _021E39EC: .word 0xFFFEC398 - arm_func_start FUN_021E39F0 -FUN_021E39F0: ; 0x021E39F0 + arm_func_start MOD04_021E39F0 +MOD04_021E39F0: ; 0x021E39F0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #8 ldr r0, _021E3E1C ; =0x022106D4 @@ -12547,22 +12550,22 @@ FUN_021E39F0: ; 0x021E39F0 cmp r0, #0 addeq sp, sp, #8 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 addeq sp, sp, #8 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 addeq sp, sp, #8 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0x13 bne _021E3C58 mov r0, #0 - bl FUN_021E3EC4 + bl MOD04_021E3EC4 ldr r1, _021E3E1C ; =0x022106D4 ldr r5, [r1] ldr r1, [r5, #8] @@ -12571,19 +12574,19 @@ FUN_021E39F0: ; 0x021E39F0 ldr r1, [r5, #0xc] cmp r1, r0 bne _021E3AB8 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] strb r0, [r4, #0x16] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0xd] mov r0, #0 sub r1, r1, #1 strb r1, [r4, #0x1a4] - bl FUN_021E51C0 + bl MOD04_021E51C0 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E3AB8: @@ -12592,16 +12595,16 @@ _021E3AB8: str r1, [r5, #0x1c] mov r0, #0 str r0, [r5, #8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E3B0C mov r0, #3 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 mov r1, #2 str r1, [r0, #0xe8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0xec] @@ -12610,11 +12613,11 @@ _021E3AB8: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E3B0C: mov r0, #4 - bl FUN_021E26D0 + bl MOD04_021E26D0 mov r1, #0 mov r2, r1 mov r0, #1 - bl FUN_021E5D30 + bl MOD04_021E5D30 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E3B2C: @@ -12639,15 +12642,15 @@ _021E3B2C: cmp r4, #5 bls _021E3B98 mov r0, #1 - bl FUN_021E3E28 - bl FUN_021E4B40 + bl MOD04_021E3E28 + bl MOD04_021E4B40 mov r0, #1 - bl FUN_021E4CF8 + bl MOD04_021E4CF8 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E3B98: mov r7, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E3C3C @@ -12656,7 +12659,7 @@ _021E3B98: mov r4, #0x11 mov r6, r7 _021E3BBC: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r7 ldrb r0, [r0, #0x2d0] ldr r1, [r8] @@ -12664,11 +12667,11 @@ _021E3BBC: ldr r1, [r1, #8] ands r0, r1, r0 bne _021E3C28 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sl, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sb, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 str r5, [sp] str r5, [sp, #4] add r0, r0, r7, lsl #1 @@ -12678,14 +12681,14 @@ _021E3BBC: ldr r1, [r1, #0xf4] ldr r2, [r2, #0x24] mov r0, r4 - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #8 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E3C28: add r7, r7, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r7, r0 ble _021E3BBC @@ -12698,11 +12701,11 @@ _021E3C3C: strb r0, [r1, #2] ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E3C58: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #4 beq _021E3C7C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #3 addne sp, sp, #8 @@ -12710,7 +12713,7 @@ _021E3C58: _021E3C7C: ldr r0, _021E3E1C ; =0x022106D4 ldr r4, [r0] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r4, #1] ldrb r2, [r0, #0xd] sub r0, r1, #1 @@ -12761,33 +12764,33 @@ _021E3CF0: addlo sp, sp, #8 ldmloia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E3D48: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x204] cmp r0, #0 beq _021E3D74 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x204] - bl FUN_021E5BF0 - bl FUN_021E61EC + bl MOD04_021E5BF0 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #8 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E3D74: mov r0, #0x13 - bl FUN_021E26D0 + bl MOD04_021E26D0 mov r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E3DF8 mov r6, #0 mov r5, #0x11 _021E3D98: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r8, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 str r6, [sp] str r6, [sp, #4] add r0, r0, r4, lsl #1 @@ -12797,13 +12800,13 @@ _021E3D98: ldr r1, [r1, #0xf4] ldr r2, [r2, #0x24] mov r0, r5 - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #8 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} add r4, r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r4, r0 ble _021E3D98 @@ -12822,8 +12825,8 @@ _021E3E1C: .word 0x022106D4 _021E3E20: .word 0x000082EA _021E3E24: .word 0x00001770 - arm_func_start FUN_021E3E28 -FUN_021E3E28: ; 0x021E3E28 + arm_func_start MOD04_021E3E28 +MOD04_021E3E28: ; 0x021E3E28 stmdb sp!, {r4, lr} ldr r1, _021E3E98 ; =0x022106D4 mov r4, r0 @@ -12855,43 +12858,43 @@ FUN_021E3E28: ; 0x021E3E28 .align 2, 0 _021E3E98: .word 0x022106D4 - arm_func_start FUN_021E3E9C -FUN_021E3E9C: ; 0x021E3E9C + arm_func_start MOD04_021E3E9C +MOD04_021E3E9C: ; 0x021E3E9C stmdb sp!, {r4, lr} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1ad] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0x1f8] str r1, [r4, #0x1fc] ldmia sp!, {r4, pc} - arm_func_start FUN_021E3EC4 -FUN_021E3EC4: ; 0x021E3EC4 + arm_func_start MOD04_021E3EC4 +MOD04_021E3EC4: ; 0x021E3EC4 stmdb sp!, {r4, r5, r6, lr} cmp r0, #0 mov r6, #0 beq _021E3EE4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x2f0] bic r0, r0, #1 ldmia sp!, {r4, r5, r6, pc} _021E3EE4: mov r5, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E3F20 mov r4, r5 _021E3EFC: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r5 ldrb r0, [r0, #0x2d0] add r5, r5, #1 orr r6, r6, r4, lsl r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r5, r0 ble _021E3EFC @@ -12899,32 +12902,32 @@ _021E3F20: mov r0, r6 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021E3F28 -FUN_021E3F28: ; 0x021E3F28 + arm_func_start MOD04_021E3F28 +MOD04_021E3F28: ; 0x021E3F28 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 cmp r1, #0 moveq r4, #1 mov r5, r0 movne r4, #0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r4, r0 bgt _021E3F8C _021E3F50: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4, lsl #2 ldr r0, [r0, #0xf4] cmp r5, r0 bne _021E3F78 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4 add sp, sp, #4 ldrb r0, [r0, #0x2d0] ldmia sp!, {r4, r5, pc} _021E3F78: add r4, r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r4, r0 ble _021E3F50 @@ -12933,41 +12936,41 @@ _021E3F8C: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021E3F98 -FUN_021E3F98: ; 0x021E3F98 + arm_func_start MOD04_021E3F98 +MOD04_021E3F98: ; 0x021E3F98 stmdb sp!, {r4, lr} ldr r1, _021E405C ; =0x0220D3B4 mvn r2, #0 mov r4, r0 - bl FUN_0220394C + bl MOD04_0220394C mvn r2, #0 cmp r0, r2 moveq r0, #0 ldmeqia sp!, {r4, pc} ldr r1, _021E4060 ; =0x0220D3C0 mov r0, r4 - bl FUN_0220394C + bl MOD04_0220394C mvn r2, #0 cmp r0, r2 moveq r0, #0 ldmeqia sp!, {r4, pc} ldr r1, _021E4064 ; =0x0220D3CC mov r0, r4 - bl FUN_0220394C + bl MOD04_0220394C mvn r2, #0 cmp r0, r2 moveq r0, #0 ldmeqia sp!, {r4, pc} ldr r1, _021E4068 ; =0x0220D3D8 mov r0, r4 - bl FUN_0220394C + bl MOD04_0220394C mvn r1, #0 cmp r0, r1 bne _021E4028 ldr r1, _021E4068 ; =0x0220D3D8 mov r0, r4 mov r2, #0 - bl FUN_0220394C + bl MOD04_0220394C cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} @@ -12975,7 +12978,7 @@ _021E4028: ldr r1, _021E406C ; =0x0220D3E4 mov r0, r4 mvn r2, #0 - bl FUN_0220394C + bl MOD04_0220394C mvn r1, #0 cmp r0, r1 moveq r0, #0 @@ -12983,7 +12986,7 @@ _021E4028: ldr r1, _021E4070 ; =0x0220D3AC mov r0, r4 mov r2, #0 - bl FUN_0220394C + bl MOD04_0220394C ldmia sp!, {r4, pc} .align 2, 0 _021E405C: .word 0x0220D3B4 @@ -12993,27 +12996,27 @@ _021E4068: .word 0x0220D3D8 _021E406C: .word 0x0220D3E4 _021E4070: .word 0x0220D3AC - arm_func_start FUN_021E4074 -FUN_021E4074: ; 0x021E4074 + arm_func_start MOD04_021E4074 +MOD04_021E4074: ; 0x021E4074 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x2fc] cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {r4, r5, pc} mov r4, #0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x344] cmp r0, #0 ble _021E40E8 _021E40AC: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4 ldrb r0, [r0, #0x304] - bl FUN_021E1F84 + bl MOD04_021E1F84 cmp r0, #0 ble _021E40D4 cmp r0, r5 @@ -13022,7 +13025,7 @@ _021E40AC: ldmeqia sp!, {r4, r5, pc} _021E40D4: add r4, r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x344] cmp r4, r0 blt _021E40AC @@ -13031,30 +13034,30 @@ _021E40E8: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021E40F4 -FUN_021E40F4: ; 0x021E40F4 + arm_func_start MOD04_021E40F4 +MOD04_021E40F4: ; 0x021E40F4 stmdb sp!, {r4, r5, r6, lr} mov r6, #0 mov r4, r6 _021E4100: mov r5, r4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] cmp r0, #0 blt _021E413C _021E4114: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r5 ldrb r0, [r0, #0x2d0] cmp r6, r0 beq _021E413C add r5, r5, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] cmp r5, r0 ble _021E4114 _021E413C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] cmp r5, r0 bgt _021E415C @@ -13066,8 +13069,8 @@ _021E415C: mov r0, r6 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021E4164 -FUN_021E4164: ; 0x021E4164 + arm_func_start MOD04_021E4164 +MOD04_021E4164: ; 0x021E4164 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r6, _021E41BC ; =0x02210704 @@ -13080,7 +13083,7 @@ _021E417C: beq _021E4194 mov r0, r5 mov r2, r4 - bl FUN_021DD904 + bl MOD04_021DD904 _021E4194: add r7, r7, #1 cmp r7, #0x9a @@ -13096,19 +13099,19 @@ _021E4194: _021E41BC: .word 0x02210704 _021E41C0: .word 0x00000738 - arm_func_start FUN_021E41C4 -FUN_021E41C4: ; 0x021E41C4 + arm_func_start MOD04_021E41C4 +MOD04_021E41C4: ; 0x021E41C4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #8 beq _021E41FC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xe beq _021E41FC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xf bne _021E4240 @@ -13116,7 +13119,7 @@ _021E41FC: bl OS_GetTick mov r4, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x1e8] ldr r0, [r0, #0x1ec] subs r3, r4, r1 @@ -13135,7 +13138,7 @@ _021E4240: mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} _021E424C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #8 beq _021E4270 @@ -13149,10 +13152,10 @@ _021E4270: cmp r5, #0 cmpeq r4, r0 bls _021E43CC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] mov r1, #0xe - bl FUN_021E4604 + bl MOD04_021E4604 cmp r0, #0 bne _021E43CC add sp, sp, #4 @@ -13163,29 +13166,29 @@ _021E42A4: cmp r5, #0 cmpeq r4, r0 bls _021E43CC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x1ac] add r1, r1, #1 strb r1, [r0, #0x1ac] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1ac] cmp r0, #5 bls _021E4330 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1d8] - bl FUN_021E4A00 + bl MOD04_021E4A00 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 beq _021E4324 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1ac] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0x1e8] @@ -13193,51 +13196,51 @@ _021E42A4: b _021E43CC _021E4324: mov r0, #2 - bl FUN_021E4CF8 + bl MOD04_021E4CF8 b _021E43CC _021E4330: mov r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E43CC mov r5, #0xd mov r6, r4 _021E434C: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4 ldrb r0, [r0, #0x2d0] ldr r1, [r7, #0x1d8] mov r0, r6,lsl r0 ands r0, r1, r0 bne _021E4394 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4, lsl #2 ldr r0, [r0, #0xf4] mov r1, r5 - bl FUN_021E4604 + bl MOD04_021E4604 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, pc} _021E4394: add r4, r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r4, r0 ble _021E434C b _021E43CC _021E43AC: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x100 ldrh r0, [r0, #0xb2] cmp r5, r0, asr #31 cmpeq r4, r0 bls _021E43CC mov r0, #2 - bl FUN_021E4CF8 + bl MOD04_021E4CF8 _021E43CC: mov r0, #1 add sp, sp, #4 @@ -13246,13 +13249,13 @@ _021E43CC: _021E43D8: .word 0x000082EA _021E43DC: .word 0x00001770 - arm_func_start FUN_021E43E0 -FUN_021E43E0: ; 0x021E43E0 + arm_func_start MOD04_021E43E0 +MOD04_021E43E0: ; 0x021E43E0 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 mov r4, r2 - bl FUN_021DF88C + bl MOD04_021DF88C cmp r0, #6 movne r0, #1 ldmneia sp!, {r4, r5, r6, pc} @@ -13264,31 +13267,31 @@ FUN_021E43E0: ; 0x021E43E0 beq _021E45E0 b _021E45F8 _021E441C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #8 beq _021E443C mov r0, #8 - bl FUN_021E26D0 + bl MOD04_021E26D0 mov r0, r4 - bl FUN_021E4B78 + bl MOD04_021E4B78 _021E443C: mov r0, r6 mov r1, #0xe - bl FUN_021E4604 + bl MOD04_021E4604 cmp r0, #0 bne _021E45F8 mov r0, #0 ldmia sp!, {r4, r5, r6, pc} _021E4458: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xe bne _021E45C4 bl OS_GetTick mov r4, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x1e8] ldr r0, [r0, #0x1ec] subs r3, r4, r1 @@ -13305,7 +13308,7 @@ _021E4458: orr r2, r2, r1, lsl #31 cmpeq r2, #0x12c bls _021E4524 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x1e8] ldr r0, [r0, #0x1ec] subs r3, r4, r1 @@ -13323,82 +13326,82 @@ _021E4458: mvn r2, #0 adds r5, r3, r0 adc r4, r2, r1, lsr #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x100 ldrh r0, [r0, #0xb2] cmp r4, r0, asr #31 cmpeq r5, r0 bls _021E4524 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x100 strh r5, [r0, #0xb2] _021E4524: mov r0, r6 mov r1, #0 - bl FUN_021E3F28 + bl MOD04_021E3F28 mov r4, r0 cmp r4, #0xff beq _021E4550 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r2, [r0, #0x1d8] mov r1, #1 orr r1, r2, r1, lsl r4 str r1, [r0, #0x1d8] _021E4550: mov r0, #1 - bl FUN_021E3EC4 + bl MOD04_021E3EC4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1d8] cmp r4, r0 bne _021E45F8 mov r5, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E45B8 mov r4, #0xf _021E4584: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r5, lsl #2 ldr r0, [r0, #0xf4] mov r1, r4 - bl FUN_021E4604 + bl MOD04_021E4604 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} add r5, r5, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r5, r0 ble _021E4584 _021E45B8: mov r0, #0xf - bl FUN_021E26D0 + bl MOD04_021E26D0 b _021E45F8 _021E45C4: mov r0, r6 mov r1, #0xf - bl FUN_021E4604 + bl MOD04_021E4604 cmp r0, #0 bne _021E45F8 mov r0, #0 ldmia sp!, {r4, r5, r6, pc} _021E45E0: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #8 bne _021E45F8 mov r0, #2 - bl FUN_021E4CF8 + bl MOD04_021E4CF8 _021E45F8: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021E4600: .word 0x000082EA - arm_func_start FUN_021E4604 -FUN_021E4604: ; 0x021E4604 + arm_func_start MOD04_021E4604 +MOD04_021E4604: ; 0x021E4604 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x10 mov r5, r1 @@ -13406,7 +13409,7 @@ FUN_021E4604: ; 0x021E4604 mov r6, r0 movne r4, #0 bne _021E4630 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20c] mov r4, #1 str r0, [sp, #8] @@ -13418,13 +13421,13 @@ _021E4630: mov r1, r6 mov r3, r2 str r4, [sp, #4] - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #0x10 movne r0, #0 ldmneia sp!, {r4, r5, r6, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0x1e8] @@ -13433,19 +13436,19 @@ _021E4630: add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021E4684 -FUN_021E4684: ; 0x021E4684 + arm_func_start MOD04_021E4684 +MOD04_021E4684: ; 0x021E4684 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #9 beq _021E46BC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0x10 beq _021E46BC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0x11 bne _021E4700 @@ -13453,7 +13456,7 @@ _021E46BC: bl OS_GetTick mov r4, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x1e0] ldr r0, [r0, #0x1e4] subs r3, r4, r1 @@ -13472,7 +13475,7 @@ _021E4700: mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} _021E470C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #9 beq _021E4730 @@ -13486,82 +13489,82 @@ _021E4730: cmp r5, #0 cmpeq r4, r0 bls _021E48FC - bl FUN_021DF88C + bl MOD04_021DF88C cmp r0, #5 bne _021E477C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1ad] cmp r0, #5 blo _021E477C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] - bl FUN_021E5908 + bl MOD04_021E5908 cmp r0, #0 bne _021E48FC add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} _021E477C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x1ad] add r1, r1, #1 strb r1, [r0, #0x1ad] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x2d0] mov r1, #3 - bl FUN_021E4910 + bl MOD04_021E4910 b _021E48FC _021E47A0: ldr r0, _021E490C ; =0x00001770 cmp r5, #0 cmpeq r4, r0 bls _021E48FC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x1ab] add r1, r1, #1 strb r1, [r0, #0x1ab] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1ab] cmp r0, #5 bls _021E4870 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 beq _021E47F0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E4800 _021E47F0: - bl FUN_021E4B40 + bl MOD04_021E4B40 mov r0, #1 - bl FUN_021E4CF8 + bl MOD04_021E4CF8 b _021E48FC _021E4800: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1d4] - bl FUN_021E4A00 + bl MOD04_021E4A00 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 beq _021E4850 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1ab] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0x1e0] str r1, [r4, #0x1e4] b _021E48FC _021E4850: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20c] - bl FUN_021E59D4 + bl MOD04_021E59D4 cmp r0, #0 bne _021E48FC add sp, sp, #4 @@ -13569,43 +13572,43 @@ _021E4850: ldmia sp!, {r4, r5, r6, r7, pc} _021E4870: mov r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E48FC mov r5, #2 mov r6, r4 _021E488C: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4 ldrb r0, [r0, #0x2d0] ldr r1, [r7, #0x1d4] mov r0, r6,lsl r0 ands r0, r1, r0 bne _021E48C4 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4 ldrb r0, [r0, #0x2d0] mov r1, r5 - bl FUN_021E4910 + bl MOD04_021E4910 _021E48C4: add r4, r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r4, r0 ble _021E488C b _021E48FC _021E48DC: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x100 ldrh r0, [r0, #0xb0] cmp r5, r0, asr #31 cmpeq r4, r0 bls _021E48FC mov r0, #4 - bl FUN_021E51C0 + bl MOD04_021E51C0 _021E48FC: mov r0, #1 add sp, sp, #4 @@ -13614,8 +13617,8 @@ _021E48FC: _021E4908: .word 0x000082EA _021E490C: .word 0x00001770 - arm_func_start FUN_021E4910 -FUN_021E4910: ; 0x021E4910 + arm_func_start MOD04_021E4910 +MOD04_021E4910: ; 0x021E4910 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r4, r1 @@ -13626,9 +13629,9 @@ FUN_021E4910: ; 0x021E4910 beq _021E49AC b _021E49D0 _021E4934: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r6, r0 ldrb r0, [r0, #0x2d0] @@ -13638,12 +13641,12 @@ _021E4934: streqb r0, [sp] movne r0, #0 strneb r0, [sp] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blo _021E49D0 _021E4974: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r6 ldrb r0, [r0, #0x2d0] cmp r5, r0 @@ -13652,17 +13655,17 @@ _021E4974: beq _021E49D0 add r0, r6, #1 and r6, r0, #0xff - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r6, r0 bls _021E4974 b _021E49D0 _021E49AC: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x100 ldrh r0, [r0, #0xb0] strb r0, [sp] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x100 ldrh r0, [r0, #0xb0] mov r0, r0, asr #8 @@ -13672,8 +13675,8 @@ _021E49D0: mov r0, r4 mov r1, r5 mov r3, #4 - bl FUN_021EAF20 - bl FUN_021E26E4 + bl MOD04_021EAF20 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0x1e0] @@ -13681,15 +13684,15 @@ _021E49D0: add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021E4A00 -FUN_021E4A00: ; 0x021E4A00 + arm_func_start MOD04_021E4A00 +MOD04_021E4A00: ; 0x021E4A00 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0x108 mov sb, #0 mov sl, r0 mov r8, sb mov r7, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E4A8C @@ -13697,27 +13700,27 @@ FUN_021E4A00: ; 0x021E4A00 add r5, sp, #0x88 mov r6, r7 _021E4A34: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r7 ldrb r0, [r0, #0x2d0] mov r0, r6,lsl r0 ands r0, sl, r0 beq _021E4A64 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r7, lsl #2 ldr r0, [r0, #0xf4] str r0, [r5, r8, lsl #2] add r8, r8, #1 b _021E4A78 _021E4A64: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r7, lsl #2 ldr r0, [r0, #0xf4] str r0, [r4, sb, lsl #2] add sb, sb, #1 _021E4A78: add r7, r7, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r7, r0 ble _021E4A34 @@ -13736,8 +13739,8 @@ _021E4AA8: mov r0, r6 mov r2, r4 mov r3, r4 - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #0x108 movne r0, #0 @@ -13746,7 +13749,7 @@ _021E4AA8: cmp sl, r8 blt _021E4AA8 _021E4AE4: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #2 strb r1, [r0, #0x1a8] cmp sb, #0 @@ -13757,180 +13760,180 @@ _021E4AE4: _021E4B04: ldr r0, [r5, r6, lsl #2] mov r1, r4 - bl FUN_021E3F28 + bl MOD04_021E3F28 cmp r0, #0xff beq _021E4B1C - bl FUN_021DF9D4 + bl MOD04_021DF9D4 _021E4B1C: add r6, r6, #1 cmp r6, sb blt _021E4B04 _021E4B28: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a8] mov r0, #1 add sp, sp, #0x108 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_start FUN_021E4B40 -FUN_021E4B40: ; 0x021E4B40 + arm_func_start MOD04_021E4B40 +MOD04_021E4B40: ; 0x021E4B40 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #2 strb r1, [r0, #0x1a8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD45C - bl FUN_021E26E4 + bl MOD04_021FD45C + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a8] add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021E4B78 -FUN_021E4B78: ; 0x021E4B78 + arm_func_start MOD04_021E4B78 +MOD04_021E4B78: ; 0x021E4B78 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 str r5, [r0, #0x20c] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0xd] mov r0, r5 add r1, r1, #1 - bl FUN_021DF648 + bl MOD04_021DF648 movs r4, r0 beq _021E4BD4 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #2 strb r1, [r0, #0x1a8] ldr r0, [r4] - bl FUN_021FD488 - bl FUN_021E26E4 + bl MOD04_021FD488 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a8] add sp, sp, #4 mov r0, #1 ldmia sp!, {r4, r5, pc} _021E4BD4: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0xd] mov r0, r5 add r1, r1, #1 - bl FUN_021E89EC + bl MOD04_021E89EC mov r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021E4BF4 -FUN_021E4BF4: ; 0x021E4BF4 + arm_func_start MOD04_021E4BF4 +MOD04_021E4BF4: ; 0x021E4BF4 stmdb sp!, {r4, lr} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x17] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x20] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x208] cmp r0, #0 beq _021E4CA4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E4C64 mov r0, #3 - bl FUN_021E26D0 + bl MOD04_021E26D0 mov r0, #0 - bl FUN_021E7E5C + bl MOD04_021E7E5C mov r4, r0 - bl FUN_021E38E8 + bl MOD04_021E38E8 cmp r0, #0 beq _021E4CAC mov r0, r4 ldmia sp!, {r4, pc} _021E4C64: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E4CAC mov r0, #4 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 ldr r0, [r0, #0x208] mov r1, #0 - bl FUN_021E6038 + bl MOD04_021E6038 mov r4, r0 - bl FUN_021E61EC + bl MOD04_021E61EC cmp r0, #0 beq _021E4CAC mov r0, r4 ldmia sp!, {r4, pc} _021E4CA4: mov r0, #1 - bl FUN_021E4CF8 + bl MOD04_021E4CF8 _021E4CAC: mov r0, #0 ldmia sp!, {r4, pc} - arm_func_start FUN_021E4CB4 -FUN_021E4CB4: ; 0x021E4CB4 + arm_func_start MOD04_021E4CB4 +MOD04_021E4CB4: ; 0x021E4CB4 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 addeq sp, sp, #4 ldmeqia sp!, {pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 addeq sp, sp, #4 ldmeqia sp!, {pc} - bl FUN_021E4B40 + bl MOD04_021E4B40 mov r0, #1 - bl FUN_021E4CF8 + bl MOD04_021E4CF8 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021E4CF8 -FUN_021E4CF8: ; 0x021E4CF8 + arm_func_start MOD04_021E4CF8 +MOD04_021E4CF8: ; 0x021E4CF8 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 movs r4, r0 bne _021E4D14 - bl FUN_021E4ED4 + bl MOD04_021E4ED4 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} _021E4D14: - bl FUN_021E8174 - bl FUN_021E26E4 + bl MOD04_021E8174 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 beq _021E4D38 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 bne _021E4D94 _021E4D38: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20c] cmp r0, #0 moveq r6, #1 movne r6, #0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20c] - bl FUN_021E1F18 + bl MOD04_021E1F18 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 str r4, [sp] ldr r1, [r0, #0x468] mov r0, #0 @@ -13943,7 +13946,7 @@ _021E4D38: add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} _021E4D94: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E4DC8 @@ -13951,13 +13954,13 @@ _021E4D94: addne sp, sp, #8 ldmneia sp!, {r4, r5, r6, pc} mov r0, #0 - bl FUN_021E7E5C - bl FUN_021E38E8 + bl MOD04_021E7E5C + bl MOD04_021E38E8 add sp, sp, #8 cmp r0, #0 ldmia sp!, {r4, r5, r6, pc} _021E4DC8: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 addne sp, sp, #8 @@ -13968,40 +13971,40 @@ _021E4DC8: mov r0, #0 mov r1, r0 mov r2, r0 - bl FUN_021E5D30 + bl MOD04_021E5D30 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021E4E00 -FUN_021E4E00: ; 0x021E4E00 + arm_func_start MOD04_021E4E00 +MOD04_021E4E00: ; 0x021E4E00 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc mov r4, #0 str r4, [sp, #8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x17] cmp r0, #0 beq _021E4EC8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20] cmp r0, #0 beq _021E4EC8 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r5, #0x20] ldr r0, [r0, #0x200] cmp r1, r0 beq _021E4EC8 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r2, sp, #8 mov r1, #1 str r2, [sp] @@ -14016,12 +14019,12 @@ FUN_021E4E00: ; 0x021E4E00 ldrh r3, [r3, #0xa4] ldr r2, [r2, #0x24] mov r0, #0xc - bl FUN_021E7884 + bl MOD04_021E7884 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x17] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x20] _021E4EC8: @@ -14029,42 +14032,42 @@ _021E4EC8: add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_021E4ED4 -FUN_021E4ED4: ; 0x021E4ED4 + arm_func_start MOD04_021E4ED4 +MOD04_021E4ED4: ; 0x021E4ED4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc ldr r1, _021E4F90 ; =0x0220D3F0 mov r0, #1 mov r2, #0 - bl FUN_021E1E30 - bl FUN_021E397C + bl MOD04_021E1E30 + bl MOD04_021E397C cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E8034 - bl FUN_021E26E4 + bl MOD04_021E8034 + bl MOD04_021E26E4 ldr r0, [r0, #0x20c] cmp r0, #0 movne r6, #1 bne _021E4F28 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 moveq r6, #1 movne r6, #0 _021E4F28: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20c] cmp r0, #0 moveq r7, #1 movne r7, #0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20c] - bl FUN_021E1F18 + bl MOD04_021E1F18 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 str r4, [sp] ldr r1, [r0, #0x468] mov r2, r7 @@ -14074,7 +14077,7 @@ _021E4F28: mov r0, #0 mov r1, #1 blx ip - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a9] add sp, sp, #0xc @@ -14082,133 +14085,133 @@ _021E4F28: .align 2, 0 _021E4F90: .word 0x0220D3F0 - arm_func_start FUN_021E4F94 -FUN_021E4F94: ; 0x021E4F94 + arm_func_start MOD04_021E4F94 +MOD04_021E4F94: ; 0x021E4F94 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x20c] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #2 bne _021E4FC4 - bl FUN_021E4ED4 + bl MOD04_021E4ED4 add sp, sp, #4 ldmfd sp!, {pc} _021E4FC4: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #1 strb r1, [r0, #0x1a9] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 bne _021E5038 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #1 strb r1, [r0, #0x1a9] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 beq _021E5010 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD45C + bl MOD04_021FD45C b _021E502C _021E5010: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] - bl FUN_021E5BF0 - bl FUN_021E61EC + bl MOD04_021E5BF0 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} _021E502C: - bl FUN_021E4ED4 + bl MOD04_021E4ED4 add sp, sp, #4 ldmfd sp!, {pc} _021E5038: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #4 beq _021E5098 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #5 beq _021E5098 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #6 beq _021E5098 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #7 beq _021E5098 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xb beq _021E5098 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xc bne _021E50D8 _021E5098: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x204] cmp r0, #0 beq _021E50C4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] - bl FUN_021E5BF0 - bl FUN_021E61EC + bl MOD04_021E5BF0 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} _021E50C4: - bl FUN_021E4E00 - bl FUN_021E61EC + bl MOD04_021E4E00 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} _021E50D8: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x19c] cmp r0, #0 beq _021E5100 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x19c] - bl FUN_022006B4 - bl FUN_021E26E4 + bl MOD04_022006B4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x19c] _021E5100: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 beq _021E512C - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #1 strb r1, [r0, #0x1a9] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD45C + bl MOD04_021FD45C _021E512C: - bl FUN_021E4ED4 + bl MOD04_021E4ED4 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021E5138 -FUN_021E5138: ; 0x021E5138 + arm_func_start MOD04_021E5138 +MOD04_021E5138: ; 0x021E5138 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a6] cmp r0, #0 beq _021E5168 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #4 moveq r0, #1 @@ -14219,15 +14222,15 @@ _021E5168: bls _021E51B8 _021E5174: ldr r0, [r6, r4, lsl #2] - bl FUN_021E4074 + bl MOD04_021E4074 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a6] cmp r0, #0 beq _021E51AC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #1 moveq r0, #1 @@ -14240,8 +14243,8 @@ _021E51B8: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021E51C0 -FUN_021E51C0: ; 0x021E51C0 + arm_func_start MOD04_021E51C0 +MOD04_021E51C0: ; 0x021E51C0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0x20 cmp r0, #4 @@ -14256,47 +14259,47 @@ _021E51DC: ; jump table b _021E569C ; case 3 b _021E56BC ; case 4 _021E51F0: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] ldrb r1, [r6, #0x1a4] sub r0, r0, #1 cmp r1, r0 bge _021E52B0 mov r0, #0xd - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a4] add r0, r0, #1 add r0, r5, r0, lsl #2 ldr r0, [r0, #0xf4] str r0, [sp, #8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a4] add r0, r0, #1 str r0, [sp, #0xc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a4] add r0, r0, #1 add r0, r5, r0 ldrb r0, [r0, #0x2d0] str r0, [sp, #0x10] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a4] add r0, r0, #1 add r0, r5, r0, lsl #2 ldr r0, [r0, #0x24] str r0, [sp, #0x14] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a4] mov r5, #5 add r0, r0, #1 @@ -14305,92 +14308,92 @@ _021E51F0: str r0, [sp, #0x18] b _021E54FC _021E52B0: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, r4 strb r1, [r0, #0x17] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, r4 str r1, [r0, #0x20] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - bl FUN_02202308 - bl FUN_021E26E4 + bl MOD04_02202308 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E52F0 mov r0, r5 - bl FUN_021E26D0 + bl MOD04_021E26D0 b _021E5314 _021E52F0: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E530C mov r0, #4 - bl FUN_021E26D0 + bl MOD04_021E26D0 b _021E5314 _021E530C: mov r0, #0xa - bl FUN_021E26D0 + bl MOD04_021E26D0 _021E5314: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a4] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 beq _021E534C - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r6, #0xd] ldrb r0, [r0, #0x16] cmp r1, r0 bne _021E53FC _021E534C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 bne _021E5384 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r6, r0, lsl #2 ldr r0, [r0, #0xf4] str r0, [r7, #0x20c] b _021E53A4 _021E5384: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x20c] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x200] str r0, [r6, #0xf4] _021E53A4: mov r0, #0x10 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1d4] mov r7, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E54EC mov r6, #2 _021E53D0: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r7 ldrb r0, [r0, #0x2d0] mov r1, r6 - bl FUN_021E4910 + bl MOD04_021E4910 add r7, r7, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r7, r0 ble _021E53D0 @@ -14398,54 +14401,54 @@ _021E53D0: _021E53FC: mov r0, #0 str r0, [sp, #8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] str r0, [sp, #0xc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r6, r0 ldrb r0, [r0, #0x2d0] str r0, [sp, #0x10] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E5460 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #2 str r1, [r0, #0xe8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 bl OS_GetTick str r0, [r6, #0xec] str r1, [r6, #0xf0] b _021E54EC _021E5460: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E54EC mov r1, #0 mov r2, r1 mov r0, #1 - bl FUN_021E5D30 - bl FUN_021E26E4 + bl MOD04_021E5D30 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a6] cmp r0, #0 bne _021E54EC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #2 blo _021E54EC - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r8, r0 mov r0, #0 - bl FUN_021E3EC4 + bl MOD04_021E3EC4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] mov r1, #1 ldr r2, [r8, #0x1dc] @@ -14455,29 +14458,29 @@ _021E5460: and r0, r6, r0 cmp r2, r0 beq _021E54EC - bl FUN_021E4CB4 + bl MOD04_021E4CB4 b _021E57E8 _021E54EC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 movne r4, #1 _021E54FC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0x10 beq _021E57E8 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sl, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sb, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r8, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, sp, #8 str r1, [sp] str r5, [sp, #4] @@ -14492,27 +14495,27 @@ _021E54FC: ldr r1, [r5, #0xf4] ldr r2, [r2, #0x24] mov r0, #8 - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x3cd] b _021E57E8 _021E5594: mov r0, #1 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 bne _021E55D0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r4, r0, lsl #2 ldr r0, [r0, #0xf4] @@ -14522,39 +14525,39 @@ _021E55D0: b _021E57E8 _021E55D8: mov r0, #1 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 beq _021E5600 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E5620 _021E5600: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #1 strb r1, [r0, #0x17] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x200] str r0, [r5, #0x20] _021E5620: - bl FUN_021E3E9C - bl FUN_021E26E4 + bl MOD04_021E3E9C + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 bls _021E57E8 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r8, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r3, r8, #0xf4 ldrb r2, [r0, #0xd] mov r1, #1 @@ -14566,43 +14569,43 @@ _021E5620: ldr r1, [r7, #0xf4] ldr r2, [r6, #0x24] ldrh r3, [r5, #0xa4] - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 beq _021E57E8 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E569C: mov r0, #1 - bl FUN_021E26D0 - bl FUN_021E3E9C - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E3E9C + bl MOD04_021E26E4 mov r1, r4 str r1, [r0, #0x20c] mov r4, #1 b _021E57E8 _021E56BC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 beq _021E56DC ldr r1, _021E581C ; =0x0220D3F0 mov r0, #2 mov r2, r4 - bl FUN_021E1E30 + bl MOD04_021E1E30 _021E56DC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20c] cmp r0, #0 moveq r7, #1 movne r7, #0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20c] - bl FUN_021E1F18 + bl MOD04_021E1F18 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 str r5, [sp] ldr r1, [r0, #0x468] mov r0, #0 @@ -14612,36 +14615,36 @@ _021E56DC: mov r1, r0 mov r3, r0 blx r5 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 beq _021E5750 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E5758 _021E5750: - bl FUN_021E8034 + bl MOD04_021E8034 b _021E57DC _021E5758: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] cmp r0, #0 beq _021E5780 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203E80 - bl FUN_021E26E4 + bl MOD04_02203E80 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0xe4] _021E5780: - bl FUN_02200D6C - bl FUN_021E26E4 + bl MOD04_02200D6C + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 bne _021E57C8 - bl FUN_021E85D4 - bl FUN_021E397C + bl MOD04_021E85D4 + bl MOD04_021E397C cmp r0, #0 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} @@ -14651,57 +14654,57 @@ _021E5780: moveq r1, #1 streqb r1, [r0, #1] mov r0, #0xa - bl FUN_021E26D0 + bl MOD04_021E26D0 b _021E57D0 _021E57C8: mov r0, #1 - bl FUN_021E26D0 + bl MOD04_021E26D0 _021E57D0: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x20c] _021E57DC: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a9] _021E57E8: cmp r4, #0 addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 addeq sp, sp, #0x20 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203C04 + bl MOD04_02203C04 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 _021E581C: .word 0x0220D3F0 _021E5820: .word 0x022106DC - arm_func_start FUN_021E5824 -FUN_021E5824: ; 0x021E5824 + arm_func_start MOD04_021E5824 +MOD04_021E5824: ; 0x021E5824 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0xc mov r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E58BC mov r5, #0xa _021E5844: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sb, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r8, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r6, #0x348 str r1, [sp] ldr ip, [r0, #0x348] @@ -14714,88 +14717,88 @@ _021E5844: ldr r1, [r1, #0xf4] ldr r2, [r2, #0x24] mov r0, r5 - bl FUN_021E7884 + bl MOD04_021E7884 cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc} add r4, r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r4, r0 ble _021E5844 _021E58BC: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x17] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x20] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #1 strb r1, [r0, #0x1a8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD45C - bl FUN_021E26E4 + bl MOD04_021FD45C + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a8] mov r0, r1 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} - arm_func_start FUN_021E5908 -FUN_021E5908: ; 0x021E5908 + arm_func_start MOD04_021E5908 +MOD04_021E5908: ; 0x021E5908 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 bne _021E5950 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 beq _021E5938 - bl FUN_021E4B40 + bl MOD04_021E4B40 _021E5938: ldr r1, _021E59D0 ; =0xFFFEC5D2 mov r0, #6 - bl FUN_021E8E08 + bl MOD04_021E8E08 add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, pc} _021E5950: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] strb r0, [r5, #0x14] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x208] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x19c] cmp r0, #0 beq _021E5998 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x19c] - bl FUN_022006B4 - bl FUN_021E26E4 + bl MOD04_022006B4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x19c] _021E5998: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 beq _021E59B0 - bl FUN_021E4CB4 + bl MOD04_021E4CB4 b _021E59C4 _021E59B0: mov r0, #4 - bl FUN_021E26D0 + bl MOD04_021E26D0 mov r0, #0 - bl FUN_021E5C44 + bl MOD04_021E5C44 mov r4, r0 _021E59C4: mov r0, r4 @@ -14804,17 +14807,17 @@ _021E59C4: .align 2, 0 _021E59D0: .word 0xFFFEC5D2 - arm_func_start FUN_021E59D4 -FUN_021E59D4: ; 0x021E59D4 + arm_func_start MOD04_021E59D4 +MOD04_021E59D4: ; 0x021E59D4 stmdb sp!, {r4, r5, r6, lr} mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x17] cmp r0, #0 beq _021E5A0C - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r4, #0x20] ldr r0, [r0, #0x200] cmp r1, r0 @@ -14825,142 +14828,142 @@ _021E5A0C: _021E5A10: cmp r4, #0 beq _021E5A3C - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x17] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x20] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - bl FUN_02202308 + bl MOD04_02202308 _021E5A3C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0x1f bhs _021E5A6C - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] mov r1, #0 add r0, r0, #1 add r0, r6, r0, lsl #2 str r1, [r0, #0xf4] _021E5A6C: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0xff strb r1, [r0, #0x3cc] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x19c] cmp r0, #0 beq _021E5AA0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x19c] - bl FUN_022006B4 - bl FUN_021E26E4 + bl MOD04_022006B4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x19c] _021E5AA0: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] strb r0, [r6, #0x14] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x204] cmp r4, #0 bne _021E5AE0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 beq _021E5BE8 - bl FUN_021E4CB4 + bl MOD04_021E4CB4 b _021E5BE8 _021E5AE0: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E5B1C mov r0, #3 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 mov r1, #2 str r1, [r0, #0xe8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0xec] str r1, [r4, #0xf0] b _021E5BE8 _021E5B1C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E5B48 mov r0, #4 - bl FUN_021E26D0 + bl MOD04_021E26D0 mov r1, #0 mov r2, r1 mov r0, #1 - bl FUN_021E5D30 + bl MOD04_021E5D30 b _021E5BE8 _021E5B48: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 bne _021E5BE8 mov r0, #0xe - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1d8] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0x100 mov r2, #0 mov r0, r5 strh r2, [r1, #0xb2] - bl FUN_021E4B78 + bl MOD04_021E4B78 mov r5, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E5BD0 mov r4, #0xd _021E5B9C: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r5, lsl #2 ldr r0, [r0, #0xf4] mov r1, r4 - bl FUN_021E4604 + bl MOD04_021E4604 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} add r5, r5, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r5, r0 ble _021E5B9C _021E5BD0: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 bne _021E5BE8 mov r0, #2 - bl FUN_021E4CF8 + bl MOD04_021E4CF8 _021E5BE8: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021E5BF0 -FUN_021E5BF0: ; 0x021E5BF0 + arm_func_start MOD04_021E5BF0 +MOD04_021E5BF0: ; 0x021E5BF0 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -14968,71 +14971,71 @@ FUN_021E5BF0: ; 0x021E5BF0 ldr r2, [r4, #0x24] mov r1, r5 mov r0, #5 - bl FUN_021E7884 + bl MOD04_021E7884 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x204] mov r0, r4 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021E5C44 -FUN_021E5C44: ; 0x021E5C44 + arm_func_start MOD04_021E5C44 +MOD04_021E5C44: ; 0x021E5C44 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x208] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x204] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a7] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0x1cc] str r1, [r4, #0x1d0] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E5CC0 mov r0, #3 - bl FUN_021E26D0 + bl MOD04_021E26D0 mov r0, #0 - bl FUN_021E7E5C - bl FUN_021E38E8 + bl MOD04_021E7E5C + bl MOD04_021E38E8 cmp r0, #0 beq _021E5D20 add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, pc} _021E5CC0: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E5CF8 mov r0, #0 mov r1, r0 mov r2, r5 - bl FUN_021E5D30 - bl FUN_021E61EC + bl MOD04_021E5D30 + bl MOD04_021E61EC cmp r0, #0 beq _021E5D20 add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, pc} _021E5CF8: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 bne _021E5D20 ldr r1, _021E5D2C ; =0xFFFEC5E6 mov r0, #6 - bl FUN_021E8E08 + bl MOD04_021E8E08 add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, pc} @@ -15043,22 +15046,22 @@ _021E5D20: .align 2, 0 _021E5D2C: .word 0xFFFEC5E6 - arm_func_start FUN_021E5D30 -FUN_021E5D30: ; 0x021E5D30 + arm_func_start MOD04_021E5D30 +MOD04_021E5D30: ; 0x021E5D30 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x23c movs r4, r1 str r0, [sp] str r2, [sp, #4] beq _021E5D58 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a5] str r0, [sp, #0xc] b _021E5D90 _021E5D58: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x344] ldrb r1, [r5, #0x1a5] sub r0, r0, #1 @@ -15066,7 +15069,7 @@ _021E5D58: movge r0, #0 strge r0, [sp, #0xc] bge _021E5D90 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a5] add r0, r0, #1 str r0, [sp, #0xc] @@ -15087,36 +15090,36 @@ _021E5DB4: cmp sb, #0 beq _021E5DFC _021E5DC8: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x1a5] add r1, r1, #1 strb r1, [r0, #0x1a5] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r6, #0x1a5] ldr r0, [r0, #0x344] cmp r1, r0 blt _021E5DFC - bl FUN_021E26E4 + bl MOD04_021E26E4 strb r8, [r0, #0x1a5] _021E5DFC: cmp sb, #0 beq _021E5E50 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x1a5] ldr r0, [sp, #0xc] cmp r0, r1 bne _021E5E50 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, _021E6028 ; =0x00000BB8 str r1, [r0, #0x1c8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0x1cc] str r1, [r4, #0x1d0] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1bc] add sp, sp, #0x23c @@ -15124,13 +15127,13 @@ _021E5DFC: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021E5E50: mov sb, r7 - bl FUN_021E0F00 + bl MOD04_021E0F00 mov fp, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sl, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, r0 ldrb r2, [r1, #0x1a5] ldr r3, [sl, #0x2fc] @@ -15145,11 +15148,11 @@ _021E5E50: mvn r0, #0 cmp sl, r0 beq _021E5DB4 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov fp, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r2, [r6, #0x2fc] ldrb r1, [r0, #0x1a5] mov r0, #0xc @@ -15160,37 +15163,37 @@ _021E5E50: cmp r0, #0 beq _021E5DB4 mov r6, r7 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E5F1C _021E5EF4: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r6, lsl #2 ldr r0, [r0, #0xf4] cmp sl, r0 beq _021E5F1C add r6, r6, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r6, r0 ble _021E5EF4 _021E5F1C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r6, r0 ble _021E5DB4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0] mov r1, sl add r2, sp, #0x18 - bl FUN_021F0664 + bl MOD04_021F0664 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0] ldr r1, [sp, #0x18] add r2, sp, #0x28 - bl FUN_021F06E4 + bl MOD04_021F06E4 orrs r0, r6, r0 bne _021E5DB4 ldr r0, [sp, #0x2c] @@ -15200,19 +15203,19 @@ _021E5F1C: add r1, sp, #0x1c add r2, sp, #0x30 mov r3, r5 - bl FUN_021DE9F4 + bl MOD04_021DE9F4 mov r6, r0 ldr r0, _021E6030 ; =0x0220D3F8 add r1, sp, #0x12 add r2, sp, #0x30 mov r3, r5 - bl FUN_021DE9F4 + bl MOD04_021DE9F4 mov fp, r0 ldr r0, _021E6034 ; =0x0220D3FC add r1, sp, #0x10 add r2, sp, #0x30 mov r3, r5 - bl FUN_021DE9F4 + bl MOD04_021DE9F4 cmp r6, #0 ble _021E5DB4 cmp fp, #0 @@ -15230,7 +15233,7 @@ _021E5F1C: mov r2, r4 bl strtoul mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x16] cmp r6, r0 bne _021E5DB4 @@ -15240,7 +15243,7 @@ _021E5F1C: streq r0, [sp] ldr r1, [sp] mov r0, sl - bl FUN_021E6038 + bl MOD04_021E6038 add sp, sp, #0x23c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 @@ -15249,109 +15252,109 @@ _021E602C: .word 0x0220D3F4 _021E6030: .word 0x0220D3F8 _021E6034: .word 0x0220D3FC - arm_func_start FUN_021E6038 -FUN_021E6038: ; 0x021E6038 + arm_func_start MOD04_021E6038 +MOD04_021E6038: ; 0x021E6038 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x14 mov r5, r0 cmp r1, #0 bne _021E606C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1c] cmp r0, #0 bne _021E60A0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrh r0, [r0, #0x1a] cmp r0, #0 bne _021E60A0 _021E606C: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #1 str r1, [r0, #0x1bc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0x1c0] str r1, [r4, #0x1c4] - bl FUN_021E26E4 + bl MOD04_021E26E4 str r5, [r0, #0xf4] add sp, sp, #0x14 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} _021E60A0: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E6124 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] mov r1, #0 - bl FUN_02203BF4 + bl MOD04_02203BF4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 ldr r1, _021E61E4 ; =0x0220D3AC mov r0, r6 mov r2, #0 - bl FUN_0220394C + bl MOD04_0220394C str r0, [r4, #0xf4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 mov r0, r6 - bl FUN_02203908 + bl MOD04_02203908 str r0, [r4, #0x24] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 mov r0, r6 - bl FUN_022038E4 + bl MOD04_022038E4 strh r0, [r4, #0xa4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] mov r4, #1 str r0, [r6, #0x204] b _021E6160 _021E6124: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E613C - bl FUN_021E26E4 + bl MOD04_021E26E4 str r5, [r0, #0xf4] _021E613C: - bl FUN_021E26E4 + bl MOD04_021E26E4 str r5, [r0, #0x204] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1c] str r0, [sp, #0xc] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrh r0, [r0, #0x1a] mov r4, #3 str r0, [sp, #0x10] _021E6160: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, _021E61E8 ; =0x00001770 str r1, [r0, #0x1c8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 bl OS_GetTick str r0, [r6, #0x1cc] str r1, [r6, #0x1d0] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1bc] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x208] cmp r0, #0 movne r7, #0xb moveq r7, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] str r0, [sp, #8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r2, sp, #8 str r2, [sp] mov r3, r0 @@ -15360,31 +15363,31 @@ _021E6160: ldr r2, [r6, #0x24] mov r1, r5 mov r0, r7 - bl FUN_021E7884 + bl MOD04_021E7884 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021E61E4: .word 0x0220D3AC _021E61E8: .word 0x00001770 - arm_func_start FUN_021E61EC -FUN_021E61EC: ; 0x021E61EC + arm_func_start MOD04_021E61EC +MOD04_021E61EC: ; 0x021E61EC stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E6210 mov r0, r4 - bl FUN_021E38E8 + bl MOD04_021E38E8 ldmia sp!, {r4, pc} _021E6210: mov r0, r4 - bl FUN_021E397C + bl MOD04_021E397C ldmia sp!, {r4, pc} - arm_func_start FUN_021E621C -FUN_021E621C: ; 0x021E621C + arm_func_start MOD04_021E621C +MOD04_021E621C: ; 0x021E621C stmdb sp!, {r4, r5, r6, lr} mov r5, r1 ldr r1, [r5] @@ -15392,101 +15395,101 @@ FUN_021E621C: ; 0x021E621C add r4, r1, #2 cmp r4, #2 bls _021E6250 - bl FUN_021E26E4 + bl MOD04_021E26E4 sub r2, r4, #2 add r1, r0, #0x350 add r0, r5, #4 mov r2, r2, lsl #2 bl MIi_CpuCopy32 _021E6250: - bl FUN_021E26E4 + bl MOD04_021E26E4 sub r1, r4, #1 str r1, [r0, #0x348] - bl FUN_021E26E4 + bl MOD04_021E26E4 str r6, [r0, #0x34c] ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021E6268 -FUN_021E6268: ; 0x021E6268 + arm_func_start MOD04_021E6268 +MOD04_021E6268: ; 0x021E6268 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x14 mov r6, r0 mov r5, r1 mov r4, r2 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x17] cmp r0, #0 beq _021E62A4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20] cmp r6, r0 addeq sp, sp, #0x14 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} _021E62A4: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #1 strb r1, [r0, #0x17] - bl FUN_021E26E4 + bl MOD04_021E26E4 str r6, [r0, #0x20] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1bc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1c8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - bl FUN_02202308 - bl FUN_021E26E4 + bl MOD04_02202308 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x204] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] add r0, r0, #1 add r0, r7, r0, lsl #2 str r6, [r0, #0xf4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] add r0, r0, #1 add r0, r7, r0, lsl #2 str r5, [r0, #0x24] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] add r0, r0, #1 add r0, r7, r0, lsl #1 strh r4, [r0, #0xa4] - bl FUN_021E26E4 + bl MOD04_021E26E4 str r5, [r0, #0x1b8] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x100 strh r4, [r0, #0xb4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E40F4 + bl MOD04_021E40F4 ldrb r1, [r4, #0x14] add r1, r1, #1 add r1, r5, r1 strb r0, [r1, #0x2d0] str r6, [sp, #8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] mov r7, #1 add r0, r0, #1 add r0, r4, r0 ldrb r0, [r0, #0x2d0] str r0, [sp, #0xc] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] cmp r0, #1 blt _021E6414 @@ -15494,11 +15497,11 @@ _021E62A4: mov r5, #2 mov r4, #7 _021E63B8: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sb, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r8, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 str r6, [sp] str r5, [sp, #4] add r0, r0, r7, lsl #1 @@ -15508,30 +15511,30 @@ _021E63B8: ldr r1, [r1, #0xf4] ldr r2, [r2, #0x24] mov r0, r4 - bl FUN_021E7884 + bl MOD04_021E7884 cmp r0, #0 addne sp, sp, #0x14 ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc} add r7, r7, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] cmp r7, r0 ble _021E63B8 _021E6414: mov r0, #1 - bl FUN_021E3E28 + bl MOD04_021E3E28 mov r0, #0 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} - arm_func_start FUN_021E6428 -FUN_021E6428: ; 0x021E6428 + arm_func_start MOD04_021E6428 +MOD04_021E6428: ; 0x021E6428 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r7, r0 mov r6, r1 mov r5, r2 mov r8, r3 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 beq _021E6490 @@ -15541,86 +15544,86 @@ FUN_021E6428: ; 0x021E6428 beq _021E6670 b _021E6724 _021E6460: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0] mov r1, r7 - bl FUN_021F05F4 + bl MOD04_021F05F4 cmp r0, #0 moveq r4, #0xff beq _021E6724 mov r0, r7 - bl FUN_021E4074 + bl MOD04_021E4074 cmp r0, #0 moveq r4, #3 beq _021E6724 _021E6490: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r8, r0 bne _021E64F8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a9] cmp r0, #0 bne _021E64F8 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r4, #0x14] ldrb r0, [r0, #0x16] cmp r1, r0 beq _021E64F8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x17] cmp r0, #0 beq _021E655C - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r4, #0x20] ldr r0, [r0, #0x200] cmp r1, r0 bne _021E655C _021E64F8: mov r4, #3 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E6724 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] ldr r0, [r0, #0xb4] cmp r0, #0 bne _021E6724 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x17] cmp r0, #0 beq _021E6724 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r5, #0x20] ldr r0, [r0, #0x200] cmp r1, r0 bne _021E6724 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - bl FUN_02202308 + bl MOD04_02202308 b _021E6724 _021E655C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #3 beq _021E657C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #4 bne _021E65AC _021E657C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1c] cmp r0, #0 bne _021E659C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrh r0, [r0, #0x1a] cmp r0, #0 beq _021E65AC @@ -15633,22 +15636,22 @@ _021E65AC: mov r4, #4 b _021E6724 _021E65B4: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x204] cmp r0, #0 beq _021E6668 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x204] cmp r7, r0 bne _021E6610 ldr r0, [sp, #0x18] cmp r0, #0 bne _021E6600 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x200] cmp r0, r7 bge _021E6608 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x208] cmp r7, r0 beq _021E6608 @@ -15662,19 +15665,19 @@ _021E6610: ldr r0, [sp, #0x18] cmp r0, #0 bne _021E663C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x200] cmp r0, r7 bge _021E6660 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x208] cmp r0, #0 bne _021E6660 _021E663C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x204] - bl FUN_021E5BF0 - bl FUN_021E61EC + bl MOD04_021E5BF0 + bl MOD04_021E61EC cmp r0, #0 movne r0, #0xff ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -15687,18 +15690,18 @@ _021E6668: mov r4, #2 b _021E6724 _021E6670: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0] mov r1, r7 - bl FUN_021F05F4 + bl MOD04_021F05F4 cmp r0, #0 moveq r4, #0xff beq _021E6724 cmp r8, #3 bne _021E66B0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r4, #0x14] ldrb r0, [r0, #0x16] cmp r1, r0 @@ -15716,15 +15719,15 @@ _021E66B8: moveq r4, #0x13 beq _021E6724 _021E66D8: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xa bne _021E6718 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1c] cmp r0, #0 bne _021E6708 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrh r0, [r0, #0x1a] cmp r0, #0 beq _021E6718 @@ -15744,8 +15747,8 @@ _021E6724: .align 2, 0 _021E672C: .word 0x022106DC - arm_func_start FUN_021E6730 -FUN_021E6730: ; 0x021E6730 + arm_func_start MOD04_021E6730 +MOD04_021E6730: ; 0x021E6730 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0x118 mov sb, r0 @@ -15755,10 +15758,10 @@ FUN_021E6730: ; 0x021E6730 ldr r6, [sp, #0x138] ldr r5, [sp, #0x13c] mov r4, #0 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 beq _021E6770 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0 bne _021E677C @@ -15767,18 +15770,18 @@ _021E6770: mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E677C: - bl FUN_021DF88C + bl MOD04_021DF88C cmp r0, #5 bne _021E67AC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #1 bne _021E67AC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] cmp r8, r0 bne _021E67AC - bl FUN_021E3E9C + bl MOD04_021E3E9C _021E67AC: cmp sb, #0x40 bgt _021E684C @@ -15825,7 +15828,7 @@ _021E684C: cmp sb, #0x41 b _021E7608 _021E6854: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 ldrne r0, [r6, #8] @@ -15840,89 +15843,89 @@ _021E6854: mov r0, r8 mov r1, r7 mov r2, sl - bl FUN_021E6428 + bl MOD04_021E6428 mov r5, r0 cmp r5, #2 bne _021E6994 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1dc] mov r0, r8 mov r1, r7 mov r2, sl - bl FUN_021E6268 - bl FUN_021E61EC + bl MOD04_021E6268 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #0x118 movne r0, #0 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 bne _021E6918 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x46c] cmp r0, #0 beq _021E6918 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 mov r0, r8 - bl FUN_021E1F18 + bl MOD04_021E1F18 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x470] ldr r2, [r6, #0x46c] mov r0, r4 blx r2 _021E6918: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] mov r4, #1 str r0, [sp, #0x14] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] cmp r0, #1 blt _021E6960 add r6, sp, #0x14 _021E693C: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4, lsl #2 ldr r0, [r0, #0xf4] str r0, [r6, r4, lsl #2] add r4, r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] cmp r4, r0 ble _021E693C _021E6960: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x1c] add r0, sp, #0x14 str r1, [r0, r4, lsl #2] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrh r2, [r0, #0x1a] add r3, r4, #1 add r1, sp, #0x14 mov r0, #0xb str r2, [r1, r3, lsl #2] add r4, r4, #2 - bl FUN_021E26D0 + bl MOD04_021E26D0 b _021E69E0 _021E6994: cmp r5, #3 bne _021E69E0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x16] cmp r0, #0 beq _021E69E0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r6, #0x14] ldrb r0, [r0, #0x16] cmp r1, r0 bne _021E69E0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 moveq r0, #0x10 @@ -15938,76 +15941,76 @@ _021E69E0: mov r2, r7 mov r3, sl str r4, [sp, #4] - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 beq _021E7608 add sp, sp, #0x118 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E6A20: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #4 bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x204] cmp r8, r0 bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x208] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a7] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1c8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1bc] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r6] add r1, r6, r1, lsl #2 ldr r1, [r1, #4] str r1, [r0, #0x24] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r6] add r1, r6, r1, lsl #2 ldr r1, [r1, #8] strh r1, [r0, #0xa4] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r6] add r1, r6, r1, lsl #2 ldr r1, [r1, #4] str r1, [r0, #0x1b8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r6] add r0, r0, #0x100 add r1, r6, r1, lsl #2 ldr r1, [r1, #8] strh r1, [r0, #0xb4] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E6B4C ldr r1, [r6] add r0, r6, #4 - bl FUN_021E5138 + bl MOD04_021E5138 cmp r0, #0 beq _021E6B08 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 beq _021E6B4C mov r0, r8 mov r1, r6 - bl FUN_021E621C + bl MOD04_021E621C b _021E6B4C _021E6B08: mov r0, r8 - bl FUN_021E5BF0 - bl FUN_021E61EC + bl MOD04_021E5BF0 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #0x118 movne r0, #0 @@ -16015,43 +16018,43 @@ _021E6B08: mov r0, #0 mov r1, r0 mov r2, r8 - bl FUN_021E5D30 - bl FUN_021E61EC + bl MOD04_021E5D30 + bl MOD04_021E61EC cmp r0, #0 beq _021E7608 add sp, sp, #0x118 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E6B4C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E6BD0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 beq _021E6B90 mov r0, r8 mov r1, r6 - bl FUN_021E621C - bl FUN_021E5824 - bl FUN_021E61EC + bl MOD04_021E621C + bl MOD04_021E5824 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #0x118 movne r0, #0 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E6B90: mov r0, #6 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] mov r1, #0 - bl FUN_02203BF4 + bl MOD04_02203BF4 mov r2, r0 mov r0, #0 mov r1, r0 - bl FUN_021E7B04 - bl FUN_021E37A4 + bl MOD04_021E7B04 + bl MOD04_021E37A4 cmp r0, #0 beq _021E7608 add sp, sp, #0x118 @@ -16059,21 +16062,21 @@ _021E6B90: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E6BD0: mov r0, #5 - bl FUN_021E26D0 + bl MOD04_021E26D0 mov r0, r8 - bl FUN_021E7E5C - bl FUN_021E38E8 + bl MOD04_021E7E5C + bl MOD04_021E38E8 cmp r0, #0 beq _021E7608 add sp, sp, #0x118 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E6BF8: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #4 bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x204] cmp r8, r0 bne _021E7608 @@ -16084,121 +16087,121 @@ _021E6BF8: bne _021E6C44 mov r0, #0xd mov r1, #0 - bl FUN_021E8E08 + bl MOD04_021E8E08 add sp, sp, #0x118 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E6C44: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x204] - bl FUN_021E5C44 + bl MOD04_021E5C44 add sp, sp, #0x118 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E6C58: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #4 bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x204] cmp r8, r0 bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0x1cc] str r1, [r4, #0x1d0] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x208] cmp r0, #0 beq _021E6CAC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a7] cmp r0, #0x10 blo _021E6CBC _021E6CAC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 bne _021E6D00 _021E6CBC: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #1 str r1, [r0, #0x1bc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0x1c0] str r1, [r4, #0x1c4] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 beq _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x1a7] add r1, r1, #1 strb r1, [r0, #0x1a7] b _021E7608 _021E6D00: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x208] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a7] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E6D54 mov r0, #3 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 mov r1, #1 str r1, [r0, #0xe8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0xec] str r1, [r4, #0xf0] b _021E7608 _021E6D54: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E7608 mov r1, #0 mov r2, r1 mov r0, #1 - bl FUN_021E5D30 + bl MOD04_021E5D30 b _021E7608 _021E6D78: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x17] cmp r0, #0 beq _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20] cmp r8, r0 bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 bne _021E6DD8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 bne _021E6DD8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf8] cmp r8, r0 bne _021E6DD8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD45C + bl MOD04_021FD45C _021E6DD8: mov r0, r8 - bl FUN_021E59D4 + bl MOD04_021E59D4 cmp r0, #0 bne _021E7608 add sp, sp, #0x118 @@ -16209,43 +16212,43 @@ _021E6DF4: ldr r4, [r6] mov r0, r0, lsl #0x10 mov r5, r0, lsr #0x10 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #1 bne _021E6E20 mov r0, #6 - bl FUN_021E26D0 + bl MOD04_021E26D0 b _021E6E50 _021E6E20: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #6 beq _021E6E40 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xb bne _021E7608 _021E6E40: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20] cmp r8, r0 bne _021E7608 _021E6E50: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0xff strb r1, [r0, #0x3cc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r0, #1 add r0, r6, r0, lsl #2 ldr r0, [r0, #0xf4] cmp r8, r0 beq _021E6E9C - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r0, #1 add r0, r6, r0, lsl #2 @@ -16258,31 +16261,31 @@ _021E6E9C: orr r0, r1, r0 str r4, [sp, #0x10] strh r0, [sp, #0xe] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #1 strb r1, [r0, #0x194] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD43C + bl MOD04_021FD43C mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r3, r0, #0x194 mov r1, r4 mov r0, #0 add r2, sp, #0xc - bl FUN_021E2784 - bl FUN_021E26E4 + bl MOD04_021E2784 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x18c] str r1, [r0, #0x190] b _021E7608 _021E6F04: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #1 bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] cmp r8, r0 bne _021E7608 @@ -16290,16 +16293,16 @@ _021E6F04: str r0, [sp, #8] ldr r0, [r6, #4] and r4, r0, #0xff - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E6F98 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a6] cmp r0, #0 bne _021E6F98 ldr r0, [sp, #8] - bl FUN_021E4074 + bl MOD04_021E4074 str r0, [sp, #0x14] add r0, sp, #0x14 str r0, [sp] @@ -16309,52 +16312,52 @@ _021E6F04: mov r3, sl mov r0, #0x20 str r5, [sp, #4] - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #0x118 movne r0, #0 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E6F98: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] ldr r1, [sp, #8] add r0, r0, #1 add r0, r5, r0, lsl #2 str r1, [r0, #0xf4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] add r0, r0, #1 add r0, r5, r0 strb r4, [r0, #0x2d0] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - bl FUN_02202308 - bl FUN_021E26E4 + bl MOD04_02202308 + bl MOD04_021E26E4 ldr r0, [r0, #0x46c] cmp r0, #0 beq _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 ldr r0, [sp, #8] - bl FUN_021E1F18 + bl MOD04_021E1F18 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x470] ldr r2, [r5, #0x46c] mov r0, r4 blx r2 b _021E7608 _021E701C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #1 bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] cmp r8, r0 bne _021E7608 @@ -16364,36 +16367,36 @@ _021E701C: bne _021E7084 ldr r5, [r6, #4] ldr r4, [r6, #8] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r5, r0 strb r4, [r0, #0x2d0] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r2, [r0, #0x200] add r1, r4, r5, lsl #2 mov r0, #3 str r2, [r1, #0xf4] - bl FUN_021E51C0 + bl MOD04_021E51C0 b _021E7608 _021E7084: ldr r0, [r6, #8] ldr r4, [r6, #4] and r5, r0, #0xff - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4, lsl #2 ldr r1, [sp, #8] ldr r0, [r0, #0xf4] cmp r1, r0 bne _021E7104 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] sub r0, r0, #1 cmp r4, r0 bne _021E7104 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, sp, #8 str r1, [sp] mov r1, #1 @@ -16402,60 +16405,60 @@ _021E7084: ldr r2, [r4, #0x24] mov r1, r8 mov r0, #9 - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 beq _021E7608 add sp, sp, #0x118 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E7104: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [sp, #8] add r0, r0, r4, lsl #2 str r1, [r0, #0xf4] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r4, r0 strb r5, [r0, #0x2d0] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r6, #0xc] add r0, r0, r4, lsl #2 str r1, [r0, #0x24] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r6, #0x10] add r0, r0, r4, lsl #1 strh r1, [r0, #0xa4] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r6, #0xc] str r1, [r0, #0x1b8] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0x100 ldr r2, [r6, #0x10] mov r0, #5 strh r2, [r1, #0xb4] - bl FUN_021E26D0 + bl MOD04_021E26D0 ldr r0, [sp, #8] - bl FUN_021E7E5C - bl FUN_021E38E8 + bl MOD04_021E7E5C + bl MOD04_021E38E8 cmp r0, #0 addne sp, sp, #0x118 movne r0, #0 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1c8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1bc] b _021E7608 _021E719C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xd bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a4] ldr r1, [r6] add r0, r0, #1 @@ -16463,105 +16466,105 @@ _021E719C: ldr r0, [r0, #0xf4] cmp r1, r0 bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x1a4] add r1, r1, #1 strb r1, [r0, #0x1a4] mov r0, #0 - bl FUN_021E51C0 + bl MOD04_021E51C0 b _021E7608 _021E71F0: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #1 beq _021E7210 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0x12 bne _021E7608 _021E7210: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 beq _021E7234 ldr r1, [r6] add r0, r6, #4 - bl FUN_021E5138 + bl MOD04_021E5138 cmp r0, #0 beq _021E7250 _021E7234: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r6, #4] str r1, [r0, #0x208] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a7] b _021E725C _021E7250: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x208] _021E725C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 beq _021E7280 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD45C + bl MOD04_021FD45C b _021E7608 _021E7280: - bl FUN_021E4BF4 + bl MOD04_021E4BF4 cmp r0, #0 beq _021E7608 add sp, sp, #0x118 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E7298: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] cmp r8, r0 bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 beq _021E72C8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E72E4 _021E72C8: mov r0, r8 - bl FUN_021E5908 + bl MOD04_021E5908 cmp r0, #0 bne _021E7608 add sp, sp, #0x118 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E72E4: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 str r8, [r0, #0x20c] - bl FUN_021E4B40 + bl MOD04_021E4B40 mov r0, #0 - bl FUN_021E4CF8 + bl MOD04_021E4CF8 b _021E7608 _021E730C: ldr r2, [r6] mov r0, r8 mov r1, sb - bl FUN_021E43E0 + bl MOD04_021E43E0 cmp r0, #0 bne _021E7608 add sp, sp, #0x118 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E7330: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] cmp r8, r0 addne sp, sp, #0x118 @@ -16574,10 +16577,10 @@ _021E7330: _021E7358: ldr r0, [r6, r7, lsl #2] mov r1, r4 - bl FUN_021E3F28 + bl MOD04_021E3F28 cmp r0, #0xff beq _021E7370 - bl FUN_021DF9D4 + bl MOD04_021DF9D4 _021E7370: add r7, r7, #1 cmp r7, r5 @@ -16620,21 +16623,21 @@ _021E73E8: mov r3, sl mov r0, #0x12 str r4, [sp, #4] - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 beq _021E7608 add sp, sp, #0x118 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E7424: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0x13 bne _021E7608 mov r0, r8 mov r1, #0 - bl FUN_021E3F28 + bl MOD04_021E3F28 cmp r0, #0xff beq _021E7608 ldr r1, _021E7614 ; =0x022106D4 @@ -16654,26 +16657,26 @@ _021E7424: _021E7480: mov r0, #0xc mov r1, #0 - bl FUN_021E8E08 + bl MOD04_021E8E08 add sp, sp, #0x118 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E7498: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E7608 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a6] cmp r0, #0 bne _021E7608 mov r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E7608 _021E74CC: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4, lsl #2 ldr r0, [r0, #0xf4] cmp r8, r0 @@ -16681,41 +16684,41 @@ _021E74CC: ldr r0, [r6] cmp r0, #0 bne _021E7554 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xb beq _021E750C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xc bne _021E7524 _021E750C: - bl FUN_021E4E00 - bl FUN_021E61EC + bl MOD04_021E4E00 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #0x118 movne r0, #0 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E7524: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x19c] cmp r0, #0 beq _021E754C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x19c] - bl FUN_022006B4 - bl FUN_021E26E4 + bl MOD04_022006B4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x19c] _021E754C: - bl FUN_021E4CB4 + bl MOD04_021E4CB4 b _021E7608 _021E7554: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 mov r0, r8 mov r1, #0 - bl FUN_021E3F28 + bl MOD04_021E3F28 ldr r2, [r4, #0x1dc] mov r1, #1 orr r0, r2, r1, lsl r0 @@ -16723,19 +16726,19 @@ _021E7554: b _021E7608 _021E757C: add r4, r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r4, r0 ble _021E74CC b _021E7608 _021E7594: mov r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E7608 _021E75A8: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4, lsl #2 ldr r0, [r0, #0xf4] cmp r8, r0 @@ -16747,8 +16750,8 @@ _021E75A8: mov r3, sl mov r0, #0x41 str r4, [sp, #4] - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 beq _021E7608 add sp, sp, #0x118 @@ -16756,7 +16759,7 @@ _021E75A8: ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021E75F4: add r4, r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r4, r0 ble _021E75A8 @@ -16768,8 +16771,8 @@ _021E7608: _021E7614: .word 0x022106D4 _021E7618: .word 0x000082EA - arm_func_start FUN_021E761C -FUN_021E761C: ; 0x021E761C + arm_func_start MOD04_021E761C +MOD04_021E761C: ; 0x021E761C stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov sb, r1 @@ -16816,8 +16819,8 @@ _021E767C: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} - arm_func_start FUN_021E76C8 -FUN_021E76C8: ; 0x021E76C8 + arm_func_start MOD04_021E76C8 +MOD04_021E76C8: ; 0x021E76C8 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x208 mov r7, r0 @@ -16854,7 +16857,7 @@ _021E7748: add r2, sp, #8 mov r0, r7 mov r1, r5 - bl FUN_021F02B8 + bl MOD04_021F02B8 add sp, sp, #0x208 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 @@ -16862,8 +16865,8 @@ _021E7760: .word 0x0220D410 _021E7764: .word 0x0220D400 _021E7768: .word 0x0220D408 - arm_func_start FUN_021E776C -FUN_021E776C: ; 0x021E776C + arm_func_start MOD04_021E776C +MOD04_021E776C: ; 0x021E776C stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x9c mov r5, r0 @@ -16899,24 +16902,24 @@ _021E77AC: str r1, [sp, #8] strb r5, [sp, #0xc] strb r0, [sp, #0xd] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrh r0, [r0, #0x1a] strh r0, [sp, #0xe] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1c] str r0, [sp, #0x10] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x200] mov r6, #0 str r0, [sp, #0x14] mov r4, r6 _021E781C: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 mov r0, r8 mov r1, r4 mov r2, r4 - bl FUN_021FFEB0 + bl MOD04_021FFEB0 mov r1, r0 ldrb r0, [sp, #0xd] mov r2, r7 @@ -16924,7 +16927,7 @@ _021E781C: add r0, r0, #0x14 str r0, [sp] ldr r0, [r5, #0xe4] - bl FUN_02203CC4 + bl MOD04_02203CC4 cmp r0, #0 addeq sp, sp, #0x9c ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} @@ -16939,8 +16942,8 @@ _021E781C: .align 2, 0 _021E7880: .word 0x0220D398 - arm_func_start FUN_021E7884 -FUN_021E7884: ; 0x021E7884 + arm_func_start MOD04_021E7884 +MOD04_021E7884: ; 0x021E7884 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x224 mov fp, r0 @@ -16950,15 +16953,15 @@ FUN_021E7884: ; 0x021E7884 ldr sl, [sp, #0x248] ldr sb, [sp, #0x24c] mov r8, #0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 beq _021E78E0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 beq _021E78D8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a6] cmp r0, #0 beq _021E7900 @@ -16971,7 +16974,7 @@ _021E78E0: mov r0, fp mov r3, sl str sb, [sp] - bl FUN_021E776C + bl MOD04_021E776C mov r4, r0 b _021E79A0 _021E7900: @@ -17010,12 +17013,12 @@ _021E7978: add r0, sp, #0x20 mov r1, #0 strb r1, [r0, r8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0] ldr r2, [sp, #4] add r3, sp, #0x20 mov r1, fp - bl FUN_021E76C8 + bl MOD04_021E76C8 mov r4, r0 _021E79A0: cmp fp, #2 @@ -17027,21 +17030,21 @@ _021E79A0: cmp r0, #1 bhi _021E7A30 _021E79C0: - bl FUN_021E26E4 + bl MOD04_021E26E4 strb fp, [r0, #0x3cc] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0x300 ldr r0, [sp, #0xc] strh r0, [r1, #0xce] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [sp, #8] str r1, [r0, #0x3d0] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [sp, #4] str r1, [r0, #0x454] - bl FUN_021E26E4 + bl MOD04_021E26E4 str sb, [r0, #0x458] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 bl OS_GetTick str r0, [r5, #0x45c] @@ -17050,7 +17053,7 @@ _021E79C0: beq _021E7A30 cmp sb, #0 beq _021E7A30 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0x3d4 mov r0, sl mov r2, sb, lsl #2 @@ -17063,45 +17066,45 @@ _021E7A30: _021E7A3C: .word 0x0220D394 _021E7A40: .word 0x0220D414 - arm_func_start FUN_021E7A44 -FUN_021E7A44: ; 0x021E7A44 + arm_func_start MOD04_021E7A44 +MOD04_021E7A44: ; 0x021E7A44 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc mov r7, r0 ldrb r0, [r7] cmp r0, #0 bne _021E7A9C - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 mov r1, #0 ldr r0, [r7, #4] mov r2, r1 - bl FUN_021FFEB0 + bl MOD04_021FFEB0 mov r1, r0 ldrh r2, [r7, #2] ldr r0, [r4, #0xe4] ldr r3, [r7, #8] - bl FUN_02203C7C - bl FUN_021E38E8 + bl MOD04_02203C7C + bl MOD04_021E38E8 cmp r0, #0 addne sp, sp, #0xc movne r0, #2 ldmneia sp!, {r4, r5, r6, r7, pc} _021E7A9C: - ldr r5, _021E7AFC ; =FUN_021E2784 - ldr r4, _021E7B00 ; =FUN_021E2B60 + ldr r5, _021E7AFC ; =MOD04_021E2784 + ldr r4, _021E7B00 ; =MOD04_021E2B60 mov r6, #0 _021E7AA8: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD43C + bl MOD04_021FD43C str r5, [sp] str r7, [sp, #4] ldrb r2, [r7] ldr r1, [r7, #8] mov r3, r4 - bl FUN_022006EC + bl MOD04_022006EC cmp r0, #0 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, r6, r7, pc} @@ -17114,24 +17117,24 @@ _021E7AA8: add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 -_021E7AFC: .word FUN_021E2784 -_021E7B00: .word FUN_021E2B60 +_021E7AFC: .word MOD04_021E2784 +_021E7B00: .word MOD04_021E2B60 - arm_func_start FUN_021E7B04 -FUN_021E7B04: ; 0x021E7B04 + arm_func_start MOD04_021E7B04 +MOD04_021E7B04: ; 0x021E7B04 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x14 mov r4, r0 mov r8, r1 mov r7, r2 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r4, #0 ldrb r6, [r0, #0x14] mov r4, #0 bne _021E7D48 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0x100 ldr r2, [r5, #0x200] ldr r0, _021E7DEC ; =0x0000FFFF @@ -17139,28 +17142,28 @@ FUN_021E7B04: ; 0x021E7B04 and r2, r2, r0 mov r0, r7 orr r8, r2, r1, lsl #16 - bl FUN_022038C4 + bl MOD04_022038C4 cmp r0, #0 beq _021E7BC0 mov r0, r7 - bl FUN_02203908 + bl MOD04_02203908 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203BCC + bl MOD04_02203BCC cmp r5, r0 movne r5, #1 bne _021E7C48 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 mov r0, r7 - bl FUN_022038BC + bl MOD04_022038BC add r1, r5, r6, lsl #2 str r0, [r1, #0x210] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 mov r0, r7 - bl FUN_02203898 + bl MOD04_02203898 add r1, r5, r6, lsl #1 add r1, r1, #0x200 strh r0, [r1, #0x90] @@ -17190,16 +17193,16 @@ _021E7C08: mov r5, #1 b _021E7C48 _021E7C10: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 mov r0, r7 - bl FUN_02203908 + bl MOD04_02203908 add r1, r5, r6, lsl #2 str r0, [r1, #0x210] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 mov r0, r7 - bl FUN_022038E4 + bl MOD04_022038E4 add r1, r5, r6, lsl #1 add r1, r1, #0x200 strh r0, [r1, #0x90] @@ -17207,30 +17210,30 @@ _021E7C10: _021E7C48: cmp r5, #0 beq _021E7C74 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 mov r0, #0x10000 - bl FUN_021DE8C8 + bl MOD04_021DE8C8 add r1, r6, #0x100 strh r0, [r1, #0x7e] - bl FUN_021E26E4 + bl MOD04_021E26E4 str r8, [r0, #0x19c] b _021E7D00 _021E7C74: bl FUN_0209A60C str r0, [sp, #8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD454 + bl MOD04_021FD454 str r0, [sp, #0xc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sb, r0 mov r0, r7 - bl FUN_02203908 + bl MOD04_02203908 mov r8, r0 mov r0, r7 - bl FUN_022038E4 + bl MOD04_022038E4 add r1, sb, r6, lsl #2 add r6, sp, #8 mov r3, r0 @@ -17240,75 +17243,75 @@ _021E7C74: ldr r1, [r1, #0xf4] mov r2, r8 mov r0, #6 - bl FUN_021E7884 + bl MOD04_021E7884 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 cmp r6, #0 strb r1, [r0, #0x3cd] addne sp, sp, #0x14 movne r0, #2 ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x19c] _021E7D00: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x194] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x195] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 mov r0, r7 - bl FUN_022038E4 + bl MOD04_022038E4 add r1, r6, #0x100 strh r0, [r1, #0x96] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 mov r0, r7 - bl FUN_02203908 + bl MOD04_02203908 str r0, [r6, #0x198] b _021E7D88 _021E7D48: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #1 strb r1, [r0, #0x194] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, r4 strb r1, [r0, #0x195] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x100 mov r1, r4 strh r1, [r0, #0x96] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, r4 str r1, [r0, #0x198] - bl FUN_021E26E4 + bl MOD04_021E26E4 str r8, [r0, #0x19c] mov r5, #1 _021E7D88: cmp r5, #0 beq _021E7DA4 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x194 - bl FUN_021E7A44 + bl MOD04_021E7A44 mov r4, r0 b _021E7DE0 _021E7DA4: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD43C + bl MOD04_021FD43C mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r3, r0, #0x194 mov r0, #0 mov r1, r5 mov r2, r0 - bl FUN_021E2784 - bl FUN_021E26E4 + bl MOD04_021E2784 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x18c] str r1, [r0, #0x190] @@ -17320,8 +17323,8 @@ _021E7DE0: _021E7DEC: .word 0x0000FFFF _021E7DF0: .word 0x0000A8C0 - arm_func_start FUN_021E7DF4 -FUN_021E7DF4: ; 0x021E7DF4 + arm_func_start MOD04_021E7DF4 +MOD04_021E7DF4: ; 0x021E7DF4 stmdb sp!, {lr} sub sp, sp, #0x24 mov lr, #3 @@ -17350,8 +17353,8 @@ _021E7E50: .word 0x0220D3D8 _021E7E54: .word 0x0220D418 _021E7E58: .word 0x0220D3E4 - arm_func_start FUN_021E7E5C -FUN_021E7E5C: ; 0x021E7E5C + arm_func_start MOD04_021E7E5C +MOD04_021E7E5C: ; 0x021E7E5C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0x1b0 mov r7, #8 @@ -17370,11 +17373,11 @@ FUN_021E7E5C: ; 0x021E7E5C strb r1, [sp, #0x112] mov r5, r0 mov r4, #7 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 beq _021E7EC4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E7EF4 @@ -17393,7 +17396,7 @@ _021E7ED4: cmp r3, #0x9a blt _021E7ED4 _021E7EF4: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #5 addls pc, pc, r0, lsl #2 @@ -17406,20 +17409,20 @@ _021E7F08: ; jump table b _021E7F8C ; case 4 b _021E7F8C ; case 5 _021E7F20: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x208] cmp r0, #0 bne _021E7F84 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r6, #0x200] ldrb r2, [r5, #0x16] ldrb r3, [r0, #0x15] add r0, sp, #0xc - bl FUN_021E7DF4 + bl MOD04_021E7DF4 ldr r0, _021E8024 ; =0x022106E0 ldr r5, [r0] cmp r5, #0 @@ -17432,7 +17435,7 @@ _021E7F20: bl OS_SNPrintf b _021E7FAC _021E7F84: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r5, [r0, #0x208] _021E7F8C: ldr r2, _021E802C ; =0x0220D47C @@ -17441,12 +17444,12 @@ _021E7F8C: mov r1, #0x100 str r5, [sp] bl OS_SNPrintf - bl FUN_021E26E4 + bl MOD04_021E26E4 str r5, [r0, #0x204] _021E7FAC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203C04 + bl MOD04_02203C04 mov sl, #0 add sb, sp, #0xc add r5, sp, #0x10c @@ -17454,7 +17457,7 @@ _021E7FAC: mov r8, #6 mov r7, #1 _021E7FD0: - bl FUN_021E26E4 + bl MOD04_021E26E4 str r4, [sp] str sb, [sp, #4] str r8, [sp, #8] @@ -17462,7 +17465,7 @@ _021E7FD0: mov r1, r7 mov r2, r6 mov r3, r5 - bl FUN_02203D1C + bl MOD04_02203D1C cmp r0, #0 addeq sp, sp, #0x1b0 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} @@ -17481,41 +17484,41 @@ _021E8028: .word 0x0220D470 _021E802C: .word 0x0220D47C _021E8030: .word 0x0220D3AC - arm_func_start FUN_021E8034 -FUN_021E8034: ; 0x021E8034 + arm_func_start MOD04_021E8034 +MOD04_021E8034: ; 0x021E8034 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 addeq sp, sp, #4 ldmeqia sp!, {pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] cmp r0, #0 beq _021E8074 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203E80 - bl FUN_021E26E4 + bl MOD04_02203E80 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0xe4] _021E8074: - bl FUN_02200D6C + bl MOD04_02200D6C mov r0, #0 - bl FUN_021E26D0 + bl MOD04_021E26D0 ldr r0, _021E80C0 ; =0x022106E0 ldr r1, [r0] cmp r1, #0 beq _021E80A8 mov r0, #4 mov r2, #0 - bl FUN_021DD904 + bl MOD04_021DD904 ldr r0, _021E80C0 ; =0x022106E0 mov r1, #0 str r1, [r0] _021E80A8: - bl FUN_021E4164 - bl FUN_021E26E4 + bl MOD04_021E4164 + bl MOD04_021E26E4 mov r1, #1 strb r1, [r0, #0x18] add sp, sp, #4 @@ -17523,8 +17526,8 @@ _021E80A8: .align 2, 0 _021E80C0: .word 0x022106E0 - arm_func_start FUN_021E80C4 -FUN_021E80C4: ; 0x021E80C4 + arm_func_start MOD04_021E80C4 +MOD04_021E80C4: ; 0x021E80C4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 @@ -17532,36 +17535,36 @@ FUN_021E80C4: ; 0x021E80C4 mov r6, r1 mov r5, r2 mov r4, r3 - bl FUN_021E8174 - bl FUN_021E26E4 + bl MOD04_021E8174 + bl MOD04_021E26E4 strb r7, [r0, #0x15] - bl FUN_021E26E4 + bl MOD04_021E26E4 strb r6, [r0, #0x16] - bl FUN_021E26E4 + bl MOD04_021E26E4 str r5, [r0, #0x464] - bl FUN_021E26E4 + bl MOD04_021E26E4 str r4, [r0, #0x468] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x17d] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x2d0] mov r0, #0x32 ldr r1, _021E8160 ; =0x0220D3AC - bl FUN_0220277C + bl MOD04_0220277C mov r0, #0x33 ldr r1, _021E8164 ; =0x0220D3CC - bl FUN_0220277C + bl MOD04_0220277C mov r0, #0x34 ldr r1, _021E8168 ; =0x0220D3D8 - bl FUN_0220277C + bl MOD04_0220277C mov r0, #0x35 ldr r1, _021E816C ; =0x0220D3E4 - bl FUN_0220277C + bl MOD04_0220277C mov r0, #0x36 ldr r1, _021E8170 ; =0x0220D3A0 - bl FUN_0220277C + bl MOD04_0220277C add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 @@ -17571,287 +17574,287 @@ _021E8168: .word 0x0220D3D8 _021E816C: .word 0x0220D3E4 _021E8170: .word 0x0220D3A0 - arm_func_start FUN_021E8174 -FUN_021E8174: ; 0x021E8174 + arm_func_start MOD04_021E8174 +MOD04_021E8174: ; 0x021E8174 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0xc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x17c] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 mov r0, #0x10000 - bl FUN_021DE8C8 + bl MOD04_021DE8C8 add r1, r5, #0x100 strh r0, [r1, #0x7e] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x180] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x184] str r1, [r0, #0x188] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x18c] str r1, [r0, #0x190] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a9] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1aa] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1ab] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1ac] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a7] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 add r0, r0, #0x100 strh r1, [r0, #0xb2] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 add r0, r0, #0x100 strh r1, [r0, #0xb4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1b8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1e0] str r1, [r0, #0x1e4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1f0] str r1, [r0, #0x1f4] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0x3cc mov r0, #0 mov r2, #0x98 bl MIi_CpuClear32 cmp r4, #2 bne _021E82F0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] strb r0, [r4, #0x14] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 bne _021E82CC mov r0, #1 - bl FUN_021E26D0 + bl MOD04_021E26D0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} _021E82CC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 addne sp, sp, #4 ldmneia sp!, {r4, r5, pc} mov r0, #0xa - bl FUN_021E26D0 + bl MOD04_021E26D0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} _021E82F0: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0xd] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0xe] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x14] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x17] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x20] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0xe8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a5] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 add r0, r0, #0x100 strh r1, [r0, #0xb0] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1bc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1c0] str r1, [r0, #0x1c4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1c8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1cc] str r1, [r0, #0x1d0] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1d4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x204] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x208] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x2f0] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0x24 mov r0, #0 mov r2, #0x80 bl MIi_CpuClear32 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0xa4 mov r0, #0 mov r2, #0x40 bl MIi_CpuClear16 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0xf4 mov r0, #0 mov r2, #0x80 bl MIi_CpuClear32 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0x194 mov r0, #0 mov r2, #0xc bl MIi_CpuClear32 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0x210 mov r0, #0 mov r2, #0x80 bl MIi_CpuClear32 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0x290 mov r0, #0 mov r2, #0x40 bl MIi_CpuClear16 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x2d0 mov r1, #0 mov r2, #0x20 bl MI_CpuFill8 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, #0x348 mov r0, #0 mov r2, #0x84 bl MIi_CpuClear32 cmp r4, #1 bne _021E84A8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E8484 mov r0, #3 - bl FUN_021E26D0 + bl MOD04_021E26D0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} _021E8484: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 addne sp, sp, #4 ldmneia sp!, {r4, r5, pc} mov r0, #4 - bl FUN_021E26D0 + bl MOD04_021E26D0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} _021E84A8: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x15] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x16] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x18] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x20c] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1a6] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1ae] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1ad] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1f8] str r1, [r0, #0x1fc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x46c] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x470] add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021E852C -FUN_021E852C: ; 0x021E852C + arm_func_start MOD04_021E852C +MOD04_021E852C: ; 0x021E852C stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 moveq r0, #1 movne r0, #0 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021E854C -FUN_021E854C: ; 0x021E854C + arm_func_start MOD04_021E854C +MOD04_021E854C: ; 0x021E854C stmdb sp!, {lr} sub sp, sp, #4 mov r0, #0 - bl FUN_021E26F4 + bl MOD04_021E26F4 ldr r0, _021E85C8 ; =0x022106E0 ldr r1, [r0] cmp r1, #0 beq _021E8584 mov r0, #4 mov r2, #0 - bl FUN_021DD904 + bl MOD04_021DD904 ldr r0, _021E85C8 ; =0x022106E0 mov r1, #0 str r1, [r0] _021E8584: - bl FUN_021E4164 + bl MOD04_021E4164 ldr r0, _021E85CC ; =0x022106D4 ldr r1, [r0] cmp r1, #0 beq _021E85B0 mov r0, #4 mov r2, #0 - bl FUN_021DD904 + bl MOD04_021DD904 ldr r0, _021E85CC ; =0x022106D4 mov r1, #0 str r1, [r0] @@ -17867,17 +17870,17 @@ _021E85C8: .word 0x022106E0 _021E85CC: .word 0x022106D4 _021E85D0: .word 0x022106DC - arm_func_start FUN_021E85D4 -FUN_021E85D4: ; 0x021E85D4 + arm_func_start MOD04_021E85D4 +MOD04_021E85D4: ; 0x021E85D4 stmdb sp!, {lr} sub sp, sp, #0x2c - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 addne sp, sp, #0x2c movne r0, #0 ldmneia sp!, {pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x16] ldr r2, _021E8694 ; =0x0220D394 add r0, sp, #0 @@ -17888,8 +17891,8 @@ FUN_021E85D4: ; 0x021E85D4 add r1, sp, #0 add r2, sp, #0xc mov r3, #0x2f - bl FUN_021DEB54 - bl FUN_021E26E4 + bl MOD04_021DEB54 + bl MOD04_021E26E4 ldrb r2, [r0, #0xd] add r0, sp, #0 mov r1, #0xc @@ -17900,7 +17903,7 @@ FUN_021E85D4: ; 0x021E85D4 add r1, sp, #0 add r2, sp, #0xc mov r3, #0x2f - bl FUN_021DEB0C + bl MOD04_021DEB0C ldr r2, _021E8694 ; =0x0220D394 add r0, sp, #0 mov r1, #0xc @@ -17910,11 +17913,11 @@ FUN_021E85D4: ; 0x021E85D4 add r1, sp, #0 add r2, sp, #0xc mov r3, #0x2f - bl FUN_021DEB0C + bl MOD04_021DEB0C mov r0, #6 add r1, sp, #0xc mov r2, #0 - bl FUN_021E1E30 + bl MOD04_021E1E30 add sp, sp, #0x2c ldmfd sp!, {pc} .align 2, 0 @@ -17923,11 +17926,11 @@ _021E8698: .word 0x0220D484 _021E869C: .word 0x0220D488 _021E86A0: .word 0x0220D3F4 - arm_func_start FUN_021E86A4 -FUN_021E86A4: ; 0x021E86A4 + arm_func_start MOD04_021E86A4 +MOD04_021E86A4: ; 0x021E86A4 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, pc} @@ -17936,65 +17939,65 @@ FUN_021E86A4: ; 0x021E86A4 mov r2, #0x20 bl MI_CpuFill8 mov r6, #0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xe] cmp r0, #0 blt _021E8730 ldr r5, _021E8748 ; =0x022106E4 mov r4, #1 _021E86E8: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r8, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r6 ldrb r0, [r0, #0x2d0] ldr r1, [r8, #0x2f0] mov r0, r4,lsl r0 ands r0, r1, r0 beq _021E8730 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r6 ldrb r0, [r0, #0x2d0] add r6, r6, #1 strb r0, [r5], #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xe] cmp r6, r0 ble _021E86E8 _021E8730: ldr r0, _021E8748 ; =0x022106E4 str r0, [r7] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xe] add r0, r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021E8748: .word 0x022106E4 - arm_func_start FUN_021E874C -FUN_021E874C: ; 0x021E874C + arm_func_start MOD04_021E874C +MOD04_021E874C: ; 0x021E874C stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x2d0 str r0, [r4] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r0, #1 ldmia sp!, {r4, pc} - arm_func_start FUN_021E8780 -FUN_021E8780: ; 0x021E8780 + arm_func_start MOD04_021E8780 +MOD04_021E8780: ; 0x021E8780 stmdb sp!, {r4, r5, r6, lr} mvn r6, #0 mov r5, #0 mov r4, #1 _021E8790: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, r4,lsl r5 ldr r0, [r0, #0x2f0] add r5, r5, #1 @@ -18005,60 +18008,60 @@ _021E8790: mvn r0, #0 cmp r6, r0 bne _021E87CC - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0xe] ldmia sp!, {r4, r5, r6, pc} _021E87CC: - bl FUN_021E26E4 + bl MOD04_021E26E4 strb r6, [r0, #0xe] ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021E87D8 -FUN_021E87D8: ; 0x021E87D8 + arm_func_start MOD04_021E87D8 +MOD04_021E87D8: ; 0x021E87D8 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xe] add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021E8804 -FUN_021E8804: ; 0x021E8804 + arm_func_start MOD04_021E8804 +MOD04_021E8804: ; 0x021E8804 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021E8830 -FUN_021E8830: ; 0x021E8830 + arm_func_start MOD04_021E8830 +MOD04_021E8830: ; 0x021E8830 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 mov sb, r0 mov r8, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, sb, lsl #2 ldr fp, [r0, #0xf4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, sb ldrb r0, [r0, #0x2d0] mov r1, #1 @@ -18066,7 +18069,7 @@ FUN_021E8830: ; 0x021E8830 mvn r0, r1, lsl r0 and r0, r2, r0 str r0, [r4, #0x2f0] - bl FUN_021E8780 + bl MOD04_021E8780 sub r0, r8, #1 cmp sb, r0 bge _021E8970 @@ -18078,46 +18081,46 @@ FUN_021E8830: ; 0x021E8830 _021E88AC: add r4, sb, r7 add r5, r4, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sl, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r5, lsl #2 ldr r1, [r0, #0x24] add r0, sl, r4, lsl #2 str r1, [r0, #0x24] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sl, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r5, lsl #1 ldrh r1, [r0, #0xa4] add r0, sl, r4, lsl #1 strh r1, [r0, #0xa4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sl, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, sl, r4, lsl #2 add r0, r0, r5, lsl #2 ldr r0, [r0, #0xf4] str r0, [r1, #0xf4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sl, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, sl, r4, lsl #2 add r0, r0, r5, lsl #2 ldr r0, [r0, #0x210] str r0, [r1, #0x210] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sl, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, sl, r4, lsl #1 add r1, r1, #0x200 add r0, r0, r5, lsl #1 add r0, r0, #0x200 ldrh r0, [r0, #0x90] strh r0, [r1, #0x90] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sl, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r0, r5 add r0, sl, r4 ldrb r1, [r1, #0x2d0] @@ -18129,28 +18132,28 @@ _021E8970: cmp r8, #0 ble _021E89E0 sub r4, r8, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4, lsl #2 mov r1, #0 str r1, [r0, #0x24] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4, lsl #1 mov r1, #0 strh r1, [r0, #0xa4] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4, lsl #2 mov r1, #0 str r1, [r0, #0xf4] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4, lsl #2 mov r1, #0 str r1, [r0, #0x210] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4, lsl #1 add r0, r0, #0x200 mov r1, #0 strh r1, [r0, #0x90] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4 mov r1, #0 strb r1, [r0, #0x2d0] @@ -18159,12 +18162,12 @@ _021E89E0: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_021E89EC -FUN_021E89EC: ; 0x021E89EC + arm_func_start MOD04_021E89EC +MOD04_021E89EC: ; 0x021E89EC stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} @@ -18172,14 +18175,14 @@ FUN_021E89EC: ; 0x021E89EC mov r4, #0 ble _021E8A48 _021E8A14: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r4, lsl #2 ldr r0, [r0, #0xf4] cmp r6, r0 bne _021E8A3C mov r0, r4 mov r1, r5 - bl FUN_021E8830 + bl MOD04_021E8830 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _021E8A3C: @@ -18190,30 +18193,30 @@ _021E8A48: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021E8A50 -FUN_021E8A50: ; 0x021E8A50 + arm_func_start MOD04_021E8A50 +MOD04_021E8A50: ; 0x021E8A50 stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a8] cmp r0, #2 ldmeqia sp!, {r4, pc} mov r0, r4 - bl FUN_021E59D4 + bl MOD04_021E59D4 ldmia sp!, {r4, pc} - arm_func_start FUN_021E8A74 -FUN_021E8A74: ; 0x021E8A74 + arm_func_start MOD04_021E8A74 +MOD04_021E8A74: ; 0x021E8A74 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 - bl FUN_021DF88C + bl MOD04_021DF88C cmp r0, #5 addne sp, sp, #4 movne r0, #0 ldmneia sp!, {r4, r5, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 addeq sp, sp, #4 @@ -18224,23 +18227,23 @@ FUN_021E8A74: ; 0x021E8A74 ldr r1, _021E8C00 ; =0xFFFEC780 mov r0, r5 add r1, r4, r1 - bl FUN_021E8E08 + bl MOD04_021E8E08 add sp, sp, #4 mov r0, #1 ldmia sp!, {r4, r5, pc} _021E8AD4: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x2d0] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a9] cmp r0, #1 beq _021E8B10 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a8] cmp r0, #1 beq _021E8B10 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a8] cmp r0, #2 bne _021E8B1C @@ -18249,57 +18252,57 @@ _021E8B10: mov r0, #1 ldmia sp!, {r4, r5, pc} _021E8B1C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x19c] cmp r0, #0 beq _021E8B44 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x19c] - bl FUN_022006B4 - bl FUN_021E26E4 + bl MOD04_022006B4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x19c] _021E8B44: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 beq _021E8B84 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a8] cmp r0, #0 bne _021E8BF4 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #3 strb r1, [r0, #0x1a8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD45C + bl MOD04_021FD45C b _021E8BF4 _021E8B84: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 bne _021E8BA4 ldr r1, _021E8C04 ; =0xFFFEC5D2 mov r0, #6 - bl FUN_021E8E08 + bl MOD04_021E8E08 b _021E8BF4 _021E8BA4: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x208] cmp r0, #0 beq _021E8BBC - bl FUN_021E4BF4 + bl MOD04_021E4BF4 b _021E8BF4 _021E8BBC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #1 bne _021E8BEC mov r0, #0x12 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick str r0, [r4, #0x1f0] @@ -18307,7 +18310,7 @@ _021E8BBC: b _021E8BF4 _021E8BEC: mov r0, #1 - bl FUN_021E4CF8 + bl MOD04_021E4CF8 _021E8BF4: mov r0, #1 add sp, sp, #4 @@ -18316,8 +18319,8 @@ _021E8BF4: _021E8C00: .word 0xFFFEC780 _021E8C04: .word 0xFFFEC5D2 - arm_func_start FUN_021E8C08 -FUN_021E8C08: ; 0x021E8C08 + arm_func_start MOD04_021E8C08 +MOD04_021E8C08: ; 0x021E8C08 stmdb sp!, {r4, r5, r6, lr} mov r5, r0 mov r4, r2 @@ -18329,59 +18332,59 @@ FUN_021E8C08: ; 0x021E8C08 beq _021E8DA4 ldmia sp!, {r4, r5, r6, pc} _021E8C30: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #1 bne _021E8CCC ldrb r0, [r4] cmp r0, #1 bne _021E8C58 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x20c] _021E8C58: ldrb r6, [r4, #1] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r4, #2] add r0, r0, r6 strb r1, [r0, #0x2d0] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x200] add r0, r4, r6, lsl #2 str r1, [r0, #0xf4] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 beq _021E8CA4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #1 bne _021E8CB8 _021E8CA4: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] strb r0, [r4, #0x16] _021E8CB8: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1ad] mov r0, #9 - bl FUN_021E26D0 + bl MOD04_021E26D0 _021E8CCC: mov r0, r5 mov r1, #3 - bl FUN_021E4910 + bl MOD04_021E4910 ldmia sp!, {r4, r5, r6, pc} _021E8CDC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0x10 bne _021E8D94 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r2, [r0, #0x1d4] mov r1, #1 orr r1, r2, r1, lsl r5 @@ -18389,116 +18392,116 @@ _021E8CDC: ldrb r1, [r4] ldrb r0, [r4, #1] orr r4, r1, r0, lsl #8 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x100 ldrh r0, [r0, #0xb0] cmp r4, r0 ble _021E8D2C - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x100 strh r4, [r0, #0xb0] _021E8D2C: mov r0, #0 - bl FUN_021E3EC4 + bl MOD04_021E3EC4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1d4] cmp r4, r0 ldmneia sp!, {r4, r5, r6, pc} mov r5, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #1 blt _021E8D88 mov r4, #4 _021E8D60: - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, r5 ldrb r0, [r0, #0x2d0] mov r1, r4 - bl FUN_021E4910 + bl MOD04_021E4910 add r5, r5, #1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r5, r0 ble _021E8D60 _021E8D88: mov r0, #0x11 - bl FUN_021E26D0 + bl MOD04_021E26D0 ldmia sp!, {r4, r5, r6, pc} _021E8D94: mov r0, r5 mov r1, #4 - bl FUN_021E4910 + bl MOD04_021E4910 ldmia sp!, {r4, r5, r6, pc} _021E8DA4: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #9 ldmneia sp!, {r4, r5, r6, pc} mov r0, #4 - bl FUN_021E51C0 + bl MOD04_021E51C0 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021E8DC0 -FUN_021E8DC0: ; 0x021E8DC0 + arm_func_start MOD04_021E8DC0 +MOD04_021E8DC0: ; 0x021E8DC0 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 addeq sp, sp, #4 ldmeqia sp!, {pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x14] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x16] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - bl FUN_02202308 + bl MOD04_02202308 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021E8E08 -FUN_021E8E08: ; 0x021E8E08 + arm_func_start MOD04_021E8E08 +MOD04_021E8E08: ; 0x021E8E08 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 mov r4, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 addeq sp, sp, #8 ldmeqia sp!, {r4, r5, r6, r7, r8, pc} cmp r4, #0 addeq sp, sp, #8 ldmeqia sp!, {r4, r5, r6, r7, r8, pc} - bl FUN_021E4B40 + bl MOD04_021E4B40 mov r0, r4 mov r1, r5 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 ldr r1, _021E8EC8 ; =0x0220D3F0 mov r0, #1 mov r2, #0 - bl FUN_021E1E30 - bl FUN_021E26E4 + bl MOD04_021E1E30 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 moveq r7, #1 movne r7, #0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20c] cmp r0, #0 moveq r8, #1 movne r8, #0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x20c] - bl FUN_021E1F18 + bl MOD04_021E1F18 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 str r5, [sp] ldr r1, [r0, #0x468] mov r0, r4 @@ -18508,27 +18511,27 @@ FUN_021E8E08: ; 0x021E8E08 mov r3, r7 mov r1, #0 blx r4 - bl FUN_021E8034 + bl MOD04_021E8034 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021E8EC8: .word 0x0220D3F0 - arm_func_start FUN_021E8ECC -FUN_021E8ECC: ; 0x021E8ECC + arm_func_start MOD04_021E8ECC +MOD04_021E8ECC: ; 0x021E8ECC stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0xff strb r1, [r0, #0x3cc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x3cd] add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021E8EF4 -FUN_021E8EF4: ; 0x021E8EF4 + arm_func_start MOD04_021E8EF4 +MOD04_021E8EF4: ; 0x021E8EF4 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x21c mov fp, r2 @@ -18544,7 +18547,7 @@ _021E8F20: mov r0, sb mov r1, r8 mov r2, sl - bl FUN_021E761C + bl MOD04_021E761C cmp r0, r4 beq _021E8F58 mov r0, sb @@ -18563,25 +18566,25 @@ _021E8F58: mov r2, #0 ldr r1, [sp, #8] mov r3, r2 - bl FUN_021E6730 + bl MOD04_021E6730 add sp, sp, #0x21c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_021E8F80 -FUN_021E8F80: ; 0x021E8F80 + arm_func_start MOD04_021E8F80 +MOD04_021E8F80: ; 0x021E8F80 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x1c mov r6, r0 mov r4, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 addeq sp, sp, #0x1c ldmeqia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #7 beq _021E8FC4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xc addne sp, sp, #0x1c @@ -18594,42 +18597,42 @@ _021E8FC4: ldmeqia sp!, {r4, r5, r6, r7, pc} cmp r4, #6 bne _021E9114 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0xc] add r1, r1, #1 strb r1, [r0, #0xc] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xc] cmp r0, #5 bls _021E9030 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0xc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] add r0, r4, r0, lsl #2 ldr r0, [r0, #0xf4] - bl FUN_021E59D4 + bl MOD04_021E59D4 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} _021E9030: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r3, [r0, #0x200] ldr r2, _021E91F8 ; =0x0220D394 add r0, sp, #0x10 mov r1, #0xc bl OS_SNPrintf - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r2, [r6, #0x14] ldrb r1, [r0, #0x14] add r0, r7, r2, lsl #2 @@ -18638,9 +18641,9 @@ _021E9030: ldrh r1, [r1, #0x90] ldr r0, [r0, #0x210] mov r2, #0 - bl FUN_021FFEB0 + bl MOD04_021FFEB0 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mvn r1, #0 str r1, [sp] ldr r3, _021E91FC ; =0x00001388 @@ -18653,57 +18656,57 @@ _021E9030: ldr r0, [r4, #4] add r3, sp, #0x10 ldr r0, [r0] - bl FUN_021FD52C + bl MOD04_021FD52C cmp r0, #1 bne _021E90E0 - bl FUN_021E36B0 + bl MOD04_021E36B0 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} _021E90E0: cmp r0, #0 addeq sp, sp, #0x1c ldmeqia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x14] add r0, r4, r0, lsl #2 ldr r0, [r0, #0xf4] - bl FUN_021E59D4 + bl MOD04_021E59D4 add sp, sp, #0x1c cmp r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} _021E9114: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r0, #1 add r0, r4, r0, lsl #2 ldr r0, [r0, #0xf4] - bl FUN_021E59D4 + bl MOD04_021E59D4 add sp, sp, #0x1c cmp r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} _021E9140: - bl FUN_021DF704 + bl MOD04_021DF704 mov r5, r0 mvn r1, #0 cmp r5, r1 bne _021E9168 ldr r1, _021E9200 ; =0xFFFEABC4 mov r0, #6 - bl FUN_021E8E08 + bl MOD04_021E8E08 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} _021E9168: - bl FUN_021DF6BC + bl MOD04_021DF6BC mov r4, r0 mov r0, r5 - bl FUN_021DF638 + bl MOD04_021DF638 str r6, [r4] mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r2, [r0, #0xd] mov r1, #0 add r2, r2, #1 @@ -18711,27 +18714,27 @@ _021E9168: strb r5, [r4] strh r1, [r4, #2] str r1, [r4, #4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r2, [r0, #0xd] mov r0, r6 mov r1, r4 add r2, r5, r2 ldrb r2, [r2, #0x2d0] strb r2, [r4, #1] - bl FUN_021FD3F8 - bl FUN_021E26E4 + bl MOD04_021FD3F8 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xc bne _021E91E8 mov r0, #0 - bl FUN_021E51C0 + bl MOD04_021E51C0 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} _021E91E8: mov r0, #1 - bl FUN_021E51C0 + bl MOD04_021E51C0 add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 @@ -18739,21 +18742,21 @@ _021E91F8: .word 0x0220D394 _021E91FC: .word 0x00001388 _021E9200: .word 0xFFFEABC4 - arm_func_start FUN_021E9204 -FUN_021E9204: ; 0x021E9204 + arm_func_start MOD04_021E9204 +MOD04_021E9204: ; 0x021E9204 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov r8, r1 mov r7, r2 mov r6, r3 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 beq _021E9244 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #7 bne _021E9244 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a9] cmp r0, #0 beq _021E925C @@ -18761,35 +18764,35 @@ _021E9244: ldr r1, _021E944C ; =0x0220D48C mov r0, r8 mvn r2, #0 - bl FUN_021FD6B0 + bl MOD04_021FD6B0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} _021E925C: - bl FUN_021DF704 + bl MOD04_021DF704 mov r5, r0 mvn r2, #0 cmp r5, r2 bne _021E9290 ldr r1, _021E9450 ; =0x0220D498 mov r0, r8 - bl FUN_021FD6B0 + bl MOD04_021FD6B0 ldr r1, _021E9454 ; =0xFFFEABC4 mov r0, #6 - bl FUN_021E8E08 + bl MOD04_021E8E08 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} _021E9290: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r4, r0, lsl #2 ldr r0, [r0, #0x210] cmp r7, r0 bne _021E92D4 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r4, r0, lsl #1 add r0, r0, #0x200 @@ -18805,23 +18808,23 @@ _021E92D4: mov r2, #0xa bl strtoul mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sb, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, sb, r0, lsl #2 ldr r0, [r0, #0xf4] cmp r4, r0 bne _021E934C - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r4, r0, lsl #2 str r7, [r0, #0x210] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r4, r0, lsl #1 add r0, r0, #0x200 @@ -18831,28 +18834,28 @@ _021E934C: ldr r1, _021E9458 ; =0x0220D4A4 mov r0, r8 mvn r2, #0 - bl FUN_021FD6B0 + bl MOD04_021FD6B0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} _021E9364: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x18c] str r1, [r0, #0x190] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #8] mov r0, r8 - bl FUN_021FD6BC + bl MOD04_021FD6BC cmp r0, #0 bne _021E93A0 ldr r1, _021E945C ; =0xFFFEC5E6 mov r0, #6 - bl FUN_021E8E08 + bl MOD04_021E8E08 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} _021E93A0: - bl FUN_021E8ECC - bl FUN_021E26E4 + bl MOD04_021E8ECC + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] cmp r0, #0 bne _021E93D4 @@ -18861,25 +18864,25 @@ _021E93A0: mov r4, r1, asr #1 cmp r4, r0 movge r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x100 strh r4, [r0, #0xb0] _021E93D4: mov r0, r5 - bl FUN_021DF6BC + bl MOD04_021DF6BC mov r4, r0 mov r0, r5 - bl FUN_021DF638 + bl MOD04_021DF638 str r8, [r4] mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0xd] add r1, r1, #1 strb r1, [r0, #0xd] strb r5, [r4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0xd] mov r0, r8 mov r2, #0 @@ -18890,9 +18893,9 @@ _021E93D4: strb r3, [r4, #1] strh r2, [r4, #2] str r2, [r4, #4] - bl FUN_021FD3F8 + bl MOD04_021FD3F8 mov r0, #2 - bl FUN_021E51C0 + bl MOD04_021E51C0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 @@ -18903,8 +18906,8 @@ _021E9458: .word 0x0220D4A4 _021E945C: .word 0xFFFEC5E6 _021E9460: .word 0x0000FFFF - arm_func_start FUN_021E9464 -FUN_021E9464: ; 0x021E9464 + arm_func_start MOD04_021E9464 +MOD04_021E9464: ; 0x021E9464 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 ldr r0, [sp, #0x18] @@ -18943,16 +18946,16 @@ _021E94E4: cmp r5, #0x5c bne _021E9518 _021E94EC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] cmp r0, #0 beq _021E9558 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] ldr r2, [sp, #0x18] add r3, sp, #0 mov r1, r4 - bl FUN_022011A8 + bl MOD04_022011A8 b _021E9558 _021E9518: ldr r1, _021E9564 ; =0x0220F018 @@ -18964,7 +18967,7 @@ _021E9518: ldr r1, [sp, #0x18] add r2, sp, #0 mov r0, r4 - bl FUN_021FFF78 + bl MOD04_021FFF78 b _021E9558 _021E9544: cmp r5, #0xfe @@ -18979,47 +18982,47 @@ _021E9558: .align 2, 0 _021E9564: .word 0x0220F018 - arm_func_start FUN_021E9568 -FUN_021E9568: ; 0x021E9568 + arm_func_start MOD04_021E9568 +MOD04_021E9568: ; 0x021E9568 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, r6, r7, pc} - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, pc} cmp r4, #0 bne _021E95E4 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] cmp r0, #0 beq _021E95B8 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - bl FUN_02202534 + bl MOD04_02202534 _021E95B8: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] cmp r0, #0 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD6D4 + bl MOD04_021FD6D4 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} _021E95E4: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xd addls pc, pc, r0, lsl #2 @@ -19040,16 +19043,16 @@ _021E960C: ; jump table b _021E9D04 ; case 12 b _021E9AEC ; case 13 _021E9644: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1c8] cmp r0, #0 beq _021E9730 bl OS_GetTick mov r6, r0 mov r7, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 ldr r1, [r5, #0x1cc] ldr r0, [r5, #0x1d0] @@ -19065,55 +19068,55 @@ _021E9644: ldr r1, [r4, #0x1c8] cmpeq r0, r1 bls _021E9730 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1c8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #3 bne _021E971C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x1aa] add r1, r1, #1 strb r1, [r0, #0x1aa] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1aa] cmp r0, #5 bls _021E96F8 ldr r1, _021E9EFC ; =0xFFFEC5D2 mov r0, #6 - bl FUN_021E8E08 + bl MOD04_021E8E08 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} _021E96F8: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] mov r1, #0 - bl FUN_021E6038 - bl FUN_021E61EC + bl MOD04_021E6038 + bl MOD04_021E61EC cmp r0, #0 beq _021E9730 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} _021E971C: mov r0, #0 - bl FUN_021E5C44 + bl MOD04_021E5C44 cmp r0, #0 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, r6, r7, pc} _021E9730: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1bc] cmp r0, #0 beq _021E9D04 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0xd] ldr r0, _021E9F00 ; =0x00000BB8 mla r5, r1, r0, r0 bl OS_GetTick mov r4, r0 mov r6, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x1c0] ldr r0, [r0, #0x1c4] subs r2, r4, r1 @@ -19127,31 +19130,31 @@ _021E9730: cmp r1, #0 cmpeq r0, r5 blo _021E9D04 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] mov r1, #0 - bl FUN_021E6038 - bl FUN_021E61EC + bl MOD04_021E6038 + bl MOD04_021E61EC cmp r0, #0 beq _021E9D04 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} _021E97B8: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe8] cmp r0, #0 ble _021E9D04 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #3 bne _021E97EC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0xd] ldr r0, _021E9F00 ; =0x00000BB8 mla r5, r1, r0, r0 b _021E9800 _021E97EC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe8] cmp r0, #1 moveq r5, #0x3e8 @@ -19160,7 +19163,7 @@ _021E9800: bl OS_GetTick mov r4, r0 mov r6, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0xec] ldr r0, [r0, #0xf0] subs r3, r4, r1 @@ -19174,19 +19177,19 @@ _021E9800: cmp r1, #0 cmpeq r0, r5 bls _021E9D04 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x204] - bl FUN_021E7E5C - bl FUN_021E38E8 + bl MOD04_021E7E5C + bl MOD04_021E38E8 cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0xe8] b _021E9D04 _021E9870: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r2, [r0, #0x18c] ldr r1, [r0, #0x190] mov r0, #0 @@ -19196,7 +19199,7 @@ _021E9870: bl OS_GetTick mov r4, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x18c] ldr r0, [r0, #0x190] subs r3, r4, r1 @@ -19211,26 +19214,26 @@ _021E9870: cmp r1, #0 cmpeq r0, r2 bls _021E9D04 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x18c] str r1, [r0, #0x190] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] - bl FUN_021E5908 + bl MOD04_021E5908 cmp r0, #0 bne _021E9D04 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} _021E9900: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x3cc] cmp r0, #6 bne _021E9D04 bl OS_GetTick mov r4, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x45c] ldr r0, [r0, #0x460] subs r3, r4, r1 @@ -19245,32 +19248,32 @@ _021E9900: cmp r1, #0 cmpeq r0, r2 bls _021E9D04 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x3cd] add r1, r1, #1 strb r1, [r0, #0x3cd] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x3cd] cmp r0, #5 bls _021E9998 - bl FUN_021E8ECC - bl FUN_021E26E4 + bl MOD04_021E8ECC + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] - bl FUN_021E5908 + bl MOD04_021E5908 cmp r0, #0 bne _021E9D04 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} _021E9998: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r4, #0x3d4 str r1, [sp] add r3, r5, #0x300 @@ -19280,25 +19283,25 @@ _021E9998: ldr r1, [r7, #0x454] ldr r2, [r6, #0x3d0] ldrh r3, [r3, #0xce] - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 beq _021E9D04 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} _021E99F8: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x3cc] cmp r0, #2 bne _021E9D04 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 bne _021E9A60 bl OS_GetTick mov r4, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x45c] ldr r0, [r0, #0x460] subs r3, r4, r1 @@ -19314,14 +19317,14 @@ _021E99F8: cmpeq r0, r2 bhi _021E9AB8 _021E9A60: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 beq _021E9D04 bl OS_GetTick mov r4, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x45c] ldr r0, [r0, #0x460] subs r3, r4, r1 @@ -19337,28 +19340,28 @@ _021E9A60: cmpeq r0, r2 bls _021E9D04 _021E9AB8: - bl FUN_021E8ECC - bl FUN_021E26E4 + bl MOD04_021E8ECC + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r0, #1 add r0, r4, r0, lsl #2 ldr r0, [r0, #0xf4] - bl FUN_021E59D4 + bl MOD04_021E59D4 cmp r0, #0 bne _021E9D04 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} _021E9AEC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x3cc] cmp r0, #8 bne _021E9D04 bl OS_GetTick mov r4, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x45c] ldr r0, [r0, #0x460] subs r3, r4, r1 @@ -19373,43 +19376,43 @@ _021E9AEC: cmp r1, #0 cmpeq r0, r2 bls _021E9D04 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x3cd] add r1, r1, #1 strb r1, [r0, #0x3cd] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x3cd] cmp r0, #0 beq _021E9BAC - bl FUN_021E8ECC - bl FUN_021E26E4 + bl MOD04_021E8ECC + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #2 bne _021E9BA4 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] add r0, r4, r0, lsl #2 ldr r0, [r0, #0xf4] - bl FUN_021E59D4 + bl MOD04_021E59D4 cmp r0, #0 bne _021E9D04 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} _021E9BA4: - bl FUN_021E4CB4 + bl MOD04_021E4CB4 b _021E9D04 _021E9BAC: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 add r1, r4, #0x3d4 str r1, [sp] add r3, r5, #0x300 @@ -19419,20 +19422,20 @@ _021E9BAC: ldr r1, [r7, #0x454] ldr r2, [r6, #0x3d0] ldrh r3, [r3, #0xce] - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 beq _021E9D04 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} _021E9C0C: - bl FUN_021DF88C + bl MOD04_021DF88C cmp r0, #5 bne _021E9D04 bl OS_GetTick mov r4, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x1f8] ldr r0, [r0, #0x1fc] subs r3, r4, r1 @@ -19447,23 +19450,23 @@ _021E9C0C: cmp r1, #0 cmpeq r0, r2 bls _021E9D04 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1ad] cmp r0, #5 blo _021E9C8C - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] - bl FUN_021E5908 + bl MOD04_021E5908 cmp r0, #0 bne _021E9D04 add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, pc} _021E9C8C: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [sp] str r1, [sp, #4] @@ -19471,16 +19474,16 @@ _021E9C8C: ldr r1, [r5, #0xf4] ldr r2, [r4, #0x24] mov r0, #0x40 - bl FUN_021E7884 - bl FUN_021E61EC + bl MOD04_021E7884 + bl MOD04_021E61EC cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r1, [r0, #0x1ad] add r1, r1, #1 strb r1, [r0, #0x1ad] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 bl OS_GetTick ldr r2, _021E9F14 ; =0xFF403B3A @@ -19490,16 +19493,16 @@ _021E9C8C: adc r0, r1, r3 str r0, [r4, #0x1fc] _021E9D04: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xb beq _021E9D24 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #6 bne _021E9DA0 _021E9D24: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r2, [r0, #0x184] ldr r1, [r0, #0x188] mov r0, #0 @@ -19509,7 +19512,7 @@ _021E9D24: bl OS_GetTick mov r4, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x184] ldr r0, [r0, #0x188] subs r3, r4, r1 @@ -19524,42 +19527,42 @@ _021E9D24: cmp r1, #0 cmpeq r0, r2 bls _021E9DA0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 add r3, r0, #0x194 mov r2, r1 mov r0, #1 - bl FUN_021E2784 + bl MOD04_021E2784 _021E9DA0: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] cmp r0, #0 beq _021E9DBC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] - bl FUN_02203C38 + bl MOD04_02203C38 _021E9DBC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - bl FUN_021E9F1C - bl FUN_02200468 - bl FUN_021E26E4 + bl MOD04_021E9F1C + bl MOD04_02200468 + bl MOD04_021E26E4 ldr r0, [r0, #4] cmp r0, #0 beq _021E9DEC - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD6D4 + bl MOD04_021FD6D4 _021E9DEC: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0x12 bne _021E9E54 bl OS_GetTick mov r4, r0 mov r5, r1 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [r0, #0x1f0] ldr r0, [r0, #0x1f4] subs r3, r4, r1 @@ -19574,47 +19577,47 @@ _021E9DEC: cmp r1, #0 cmpeq r0, r2 bls _021E9E54 - bl FUN_021E4BF4 + bl MOD04_021E4BF4 cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, pc} _021E9E54: - bl FUN_021E4684 + bl MOD04_021E4684 cmp r0, #0 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E41C4 + bl MOD04_021E41C4 cmp r0, #0 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E39F0 - bl FUN_021E26E4 + bl MOD04_021E39F0 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1ae] cmp r0, #0 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xa addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0xd] strb r0, [r4, #0x16] - bl FUN_021E85D4 - bl FUN_021E26E4 + bl MOD04_021E85D4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1ae] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x47c] cmp r0, #0 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, r6, r7, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x480] ldr r1, [r4, #0x47c] blx r1 @@ -19631,16 +19634,16 @@ _021E9F10: .word 0x00007530 _021E9F14: .word 0xFF403B3A _021E9F18: .word 0x00002710 - arm_func_start FUN_021E9F1C -FUN_021E9F1C: ; 0x021E9F1C + arm_func_start MOD04_021E9F1C +MOD04_021E9F1C: ; 0x021E9F1C stmdb sp!, {r4, lr} movs r4, r0 ldmeqia sp!, {r4, pc} - bl FUN_02202534 + bl MOD04_02202534 ldr r0, [r4, #0xb4] cmp r0, #0 ldmneia sp!, {r4, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x15] cmp r0, #0 beq _021E9F5C @@ -19650,7 +19653,7 @@ FUN_021E9F1C: ; 0x021E9F1C beq _021E9FB0 ldmia sp!, {r4, pc} _021E9F5C: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xb addls pc, pc, r0, lsl #2 @@ -19669,22 +19672,22 @@ _021E9F70: ; jump table ldmia sp!, {r4, pc} ; case 10 b _021E9FA0 ; case 11 _021E9FA0: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - bl FUN_02202308 + bl MOD04_02202308 ldmia sp!, {r4, pc} _021E9FB0: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x1a0] cmp r0, #0xb ldmneia sp!, {r4, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - bl FUN_02202308 + bl MOD04_02202308 ldmia sp!, {r4, pc} - arm_func_start FUN_021E9FD0 -FUN_021E9FD0: ; 0x021E9FD0 + arm_func_start MOD04_021E9FD0 +MOD04_021E9FD0: ; 0x021E9FD0 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x18 mov r5, r2 @@ -19694,35 +19697,35 @@ FUN_021E9FD0: ; 0x021E9FD0 mov r3, r5 mov r0, #3 mov r1, #0 - bl FUN_021E80C4 - bl FUN_021E26E4 + bl MOD04_021E80C4 + bl MOD04_021E26E4 str r4, [r0, #0x46c] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [sp, #0x28] str r1, [r0, #0x470] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #1 strb r1, [r0, #0x17] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x200] str r0, [r4, #0x20] - bl FUN_021E26E4 + bl MOD04_021E26E4 str r6, [r0, #0xf4] mov r0, #4 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] cmp r0, #0 bne _021EA0A4 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r5, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r2, r0 mov r0, #0x14 str r0, [sp] @@ -19730,21 +19733,21 @@ FUN_021E9FD0: ; 0x021E9FD0 str r0, [sp, #4] mov r3, #0 str r3, [sp, #8] - ldr r0, _021EA130 ; =FUN_021E32E4 + ldr r0, _021EA130 ; =MOD04_021E32E4 str r0, [sp, #0xc] str r3, [sp, #0x10] ldr r0, [r5, #0x2f4] ldr r1, [r4, #0x2f4] ldr r2, [r2, #0x2f8] - bl FUN_02203EA4 + bl MOD04_02203EA4 str r0, [r6, #0xe4] _021EA0A4: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xe4] cmp r0, #0 bne _021EA0C8 mov r0, #5 - bl FUN_021E38E8 + bl MOD04_021E38E8 cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r4, r5, r6, pc} @@ -19752,36 +19755,36 @@ _021EA0C8: ldr r1, _021EA134 ; =0x0220D3F0 mov r0, #5 mov r2, #0 - bl FUN_021E1E30 - bl FUN_021E397C + bl MOD04_021E1E30 + bl MOD04_021E397C cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r4, r5, r6, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] cmp r0, #0 bne _021EA110 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x200] - bl FUN_021EA1E0 + bl MOD04_021EA1E0 cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r4, r5, r6, pc} _021EA110: - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0xf4] mov r1, #0 - bl FUN_021E6038 - bl FUN_021E61EC + bl MOD04_021E6038 + bl MOD04_021E61EC cmp r0, #0 add sp, sp, #0x18 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 -_021EA130: .word FUN_021E32E4 +_021EA130: .word MOD04_021E32E4 _021EA134: .word 0x0220D3F0 - arm_func_start FUN_021EA138 -FUN_021EA138: ; 0x021EA138 + arm_func_start MOD04_021EA138 +MOD04_021EA138: ; 0x021EA138 stmdb sp!, {r4, lr} mov lr, r1 mov ip, r2 @@ -19790,96 +19793,96 @@ FUN_021EA138: ; 0x021EA138 mov r2, lr mov r3, ip mov r0, #2 - bl FUN_021E80C4 - bl FUN_021E26E4 + bl MOD04_021E80C4 + bl MOD04_021E26E4 str r4, [r0, #0x46c] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [sp, #8] str r1, [r0, #0x470] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x200] str r0, [r4, #0xf4] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #1 str r1, [r0, #0x2f0] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r2, #0 strb r2, [r0, #0xe] ldr r1, _021EA1DC ; =0x022106DC mov r0, #0xa strb r2, [r1, #1] - bl FUN_021E26D0 - bl FUN_021E85D4 - bl FUN_021E397C + bl MOD04_021E26D0 + bl MOD04_021E85D4 + bl MOD04_021E397C cmp r0, #0 ldmneia sp!, {r4, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] cmp r0, #0 ldmneia sp!, {r4, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x200] - bl FUN_021EA1E0 + bl MOD04_021EA1E0 ldmia sp!, {r4, pc} .align 2, 0 _021EA1DC: .word 0x022106DC - arm_func_start FUN_021EA1E0 -FUN_021EA1E0: ; 0x021EA1E0 + arm_func_start MOD04_021EA1E0 +MOD04_021EA1E0: ; 0x021EA1E0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x2c mov r4, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] cmp r0, #0 addne sp, sp, #0x2c movne r0, #0 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 str r4, [r0, #0x200] mov sl, #0 - ldr fp, _021EA344 ; =FUN_021E2E18 + ldr fp, _021EA344 ; =MOD04_021E2E18 mov r4, sl mov r5, #1 _021EA21C: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov sb, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD43C + bl MOD04_021FD43C mov r8, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #4] ldr r0, [r0] - bl FUN_021FD454 + bl MOD04_021FD454 mov r7, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r6, r0 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r3, [r0, #0x2f8] mov r1, r8 str r3, [sp] str r5, [sp, #4] str r5, [sp, #8] - ldr r3, _021EA348 ; =FUN_021E2E14 + ldr r3, _021EA348 ; =MOD04_021E2E14 str fp, [sp, #0xc] str r3, [sp, #0x10] - ldr r3, _021EA34C ; =FUN_021E2E10 + ldr r3, _021EA34C ; =MOD04_021E2E10 mov r2, r7 str r3, [sp, #0x14] - ldr r3, _021EA350 ; =FUN_021E2D68 + ldr r3, _021EA350 ; =MOD04_021E2D68 add r0, sb, #0x10 str r3, [sp, #0x18] - ldr r3, _021EA354 ; =FUN_021E2D60 + ldr r3, _021EA354 ; =MOD04_021E2D60 str r3, [sp, #0x1c] - ldr r3, _021EA358 ; =FUN_021E2D54 + ldr r3, _021EA358 ; =MOD04_021E2D54 str r3, [sp, #0x20] str r4, [sp, #0x24] ldr r3, [r6, #0x2f4] - bl FUN_022025B0 + bl MOD04_022025B0 movs r6, r0 beq _021EA2E4 cmp r6, #3 @@ -19888,7 +19891,7 @@ _021EA21C: bne _021EA2D8 _021EA2C4: mov r0, r6 - bl FUN_021E3800 + bl MOD04_021E3800 add sp, sp, #0x2c mov r0, r6 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -19897,152 +19900,152 @@ _021EA2D8: cmp sl, #5 blt _021EA21C _021EA2E4: - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1c] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strh r1, [r0, #0x1a] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - ldr r1, _021EA35C ; =FUN_021E2D2C - bl FUN_02202568 - bl FUN_021E26E4 + ldr r1, _021EA35C ; =MOD04_021E2D2C + bl MOD04_02202568 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - ldr r1, _021EA360 ; =FUN_021E2C78 - bl FUN_02202598 - bl FUN_021E26E4 + ldr r1, _021EA360 ; =MOD04_021E2C78 + bl MOD04_02202598 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - ldr r1, _021EA364 ; =FUN_021E2B64 - bl FUN_02202580 - bl FUN_021E26E4 + ldr r1, _021EA364 ; =MOD04_021E2B64 + bl MOD04_02202580 + bl MOD04_021E26E4 ldr r0, [r0, #0x10] - bl FUN_02202308 + bl MOD04_02202308 mov r0, r6 add sp, sp, #0x2c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 -_021EA344: .word FUN_021E2E18 -_021EA348: .word FUN_021E2E14 -_021EA34C: .word FUN_021E2E10 -_021EA350: .word FUN_021E2D68 -_021EA354: .word FUN_021E2D60 -_021EA358: .word FUN_021E2D54 -_021EA35C: .word FUN_021E2D2C -_021EA360: .word FUN_021E2C78 -_021EA364: .word FUN_021E2B64 - - arm_func_start FUN_021EA368 -FUN_021EA368: ; 0x021EA368 +_021EA344: .word MOD04_021E2E18 +_021EA348: .word MOD04_021E2E14 +_021EA34C: .word MOD04_021E2E10 +_021EA350: .word MOD04_021E2D68 +_021EA354: .word MOD04_021E2D60 +_021EA358: .word MOD04_021E2D54 +_021EA35C: .word MOD04_021E2D2C +_021EA360: .word MOD04_021E2C78 +_021EA364: .word MOD04_021E2B64 + + arm_func_start MOD04_021EA368 +MOD04_021EA368: ; 0x021EA368 stmdb sp!, {r4, r5, r6, lr} mov r6, r1 mov r5, r2 mov r4, r3 - bl FUN_021E26F4 - bl FUN_021E26E4 + bl MOD04_021E26F4 + bl MOD04_021E26E4 str r6, [r0] - bl FUN_021E26E4 + bl MOD04_021E26E4 str r5, [r0, #4] - bl FUN_021E26E4 + bl MOD04_021E26E4 str r4, [r0, #8] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x10] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1c] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strh r1, [r0, #0x1a] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0xe4] mov r0, r1 - bl FUN_021E26D0 - bl FUN_021E26E4 + bl MOD04_021E26D0 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0xf] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x19] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 strb r1, [r0, #0x1af] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 add r0, r0, #0x100 strh r1, [r0, #0xb6] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x1dc] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x200] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [sp, #0x10] str r1, [r0, #0x2f4] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [sp, #0x14] str r1, [r0, #0x2f8] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [sp, #0x18] str r1, [r0, #0x2fc] - bl FUN_021E26E4 + bl MOD04_021E26E4 ldr r1, [sp, #0x1c] str r1, [r0, #0x300] - bl FUN_021E26E4 + bl MOD04_021E26E4 add r0, r0, #0x304 mov r1, #0 mov r2, #0x40 bl MI_CpuFill8 - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x344] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x464] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x468] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x474] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x478] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x47c] - bl FUN_021E26E4 + bl MOD04_021E26E4 mov r1, #0 str r1, [r0, #0x480] - bl FUN_021E4164 + bl MOD04_021E4164 ldr r1, _021EA4D0 ; =0x022106DC mov r0, #0 strb r0, [r1] strb r0, [r1, #1] strh r0, [r1, #2] - bl FUN_021E8174 + bl MOD04_021E8174 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EA4D0: .word 0x022106DC - arm_func_start FUN_021EA4D4 -FUN_021EA4D4: ; 0x021EA4D4 + arm_func_start MOD04_021EA4D4 +MOD04_021EA4D4: ; 0x021EA4D4 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 addne sp, sp, #4 movne r0, #0 ldmneia sp!, {pc} - bl FUN_021E26E4 + bl MOD04_021E26E4 cmp r0, #0 beq _021EA518 - bl FUN_021DF88C + bl MOD04_021DF88C cmp r0, #5 bne _021EA518 - bl FUN_021E26E4 + bl MOD04_021E26E4 ldrb r0, [r0, #0x1a9] cmp r0, #0 beq _021EA524 @@ -20055,26 +20058,26 @@ _021EA524: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EA530 -FUN_021EA530: ; 0x021EA530 + arm_func_start MOD04_021EA530 +MOD04_021EA530: ; 0x021EA530 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021EA4D4 + bl MOD04_021EA4D4 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {pc} - bl FUN_021E4F94 + bl MOD04_021E4F94 mov r0, #1 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EA55C -FUN_021EA55C: ; 0x021EA55C + arm_func_start MOD04_021EA55C +MOD04_021EA55C: ; 0x021EA55C stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021DF760 - bl FUN_021FD444 + bl MOD04_021DF760 + bl MOD04_021FD444 ldr r1, _021EA584 ; =0xFFFFFDF9 add r0, r0, r1 cmp r0, #0 @@ -20084,13 +20087,13 @@ FUN_021EA55C: ; 0x021EA55C .align 2, 0 _021EA584: .word 0xFFFFFDF9 - arm_func_start FUN_021EA588 -FUN_021EA588: ; 0x021EA588 + arm_func_start MOD04_021EA588 +MOD04_021EA588: ; 0x021EA588 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 - bl FUN_021EA9AC + bl MOD04_021EA9AC ldrb r1, [r0, #0x1e] strb r1, [r0, #0x1d] ldrh r1, [r0, #0x22] @@ -20104,12 +20107,12 @@ FUN_021EA588: ; 0x021EA588 _021EA5C4: mov r0, r5 mov r2, r4 - bl FUN_021E8C08 + bl MOD04_021E8C08 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EA5D8 -FUN_021EA5D8: ; 0x021EA5D8 + arm_func_start MOD04_021EA5D8 +MOD04_021EA5D8: ; 0x021EA5D8 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r3, _021EA6D0 ; =0x02210E3C @@ -20119,7 +20122,7 @@ FUN_021EA5D8: ; 0x021EA5D8 mla r4, r7, r3, r4 mov r6, r1 mov r5, r2 - bl FUN_021EA974 + bl MOD04_021EA974 cmp r0, #2 bne _021EA644 ldr r3, [r4, #0x10] @@ -20129,7 +20132,7 @@ FUN_021EA5D8: ; 0x021EA5D8 ble _021EA630 ldr r1, _021EA6D4 ; =0xFFFE82AC mov r0, #6 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} _021EA630: @@ -20179,8 +20182,8 @@ _021EA694: _021EA6D0: .word 0x02210E3C _021EA6D4: .word 0xFFFE82AC - arm_func_start FUN_021EA6D8 -FUN_021EA6D8: ; 0x021EA6D8 + arm_func_start MOD04_021EA6D8 +MOD04_021EA6D8: ; 0x021EA6D8 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc ldr r4, _021EA79C ; =0x02210E3C @@ -20189,10 +20192,10 @@ FUN_021EA6D8: ; 0x021EA6D8 mov r7, r1 mla r5, r0, r3, r4 mov r6, r2 - bl FUN_021EA974 + bl MOD04_021EA974 strb r0, [r5, #0x1e] mov r0, r7 - bl FUN_021EAD6C + bl MOD04_021EAD6C mov r4, r0 cmp r4, #4 addls pc, pc, r4, lsl #2 @@ -20238,13 +20241,13 @@ _021EA790: .align 2, 0 _021EA79C: .word 0x02210E3C - arm_func_start FUN_021EA7A0 -FUN_021EA7A0: ; 0x021EA7A0 + arm_func_start MOD04_021EA7A0 +MOD04_021EA7A0: ; 0x021EA7A0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r1 mov r6, r2 - bl FUN_021DF748 + bl MOD04_021DF748 ldr r1, _021EA854 ; =0x02210E3C mov r4, r0 ldr r1, [r1] @@ -20289,14 +20292,14 @@ _021EA818: .align 2, 0 _021EA854: .word 0x02210E3C - arm_func_start FUN_021EA858 -FUN_021EA858: ; 0x021EA858 + arm_func_start MOD04_021EA858 +MOD04_021EA858: ; 0x021EA858 stmdb sp!, {r4, r5, r6, lr} mov r6, r1 mov r5, r2 - bl FUN_021DF748 + bl MOD04_021DF748 mov r4, r0 - bl FUN_021EA974 + bl MOD04_021EA974 cmp r0, #4 addls pc, pc, r0, lsl #2 b _021EA934 @@ -20308,7 +20311,7 @@ _021EA87C: ; jump table b _021EA8F8 ; case 4 _021EA890: mov r0, r6 - bl FUN_021EAD6C + bl MOD04_021EAD6C cmp r0, #2 ldmloia sp!, {r4, r5, r6, pc} cmp r0, #4 @@ -20316,25 +20319,25 @@ _021EA890: mov r0, r4 mov r1, r6 mov r2, r5 - bl FUN_021EA6D8 + bl MOD04_021EA6D8 ldmia sp!, {r4, r5, r6, pc} _021EA8BC: mov r0, r4 mov r1, r6 mov r2, r5 - bl FUN_021EA6D8 + bl MOD04_021EA6D8 ldmia sp!, {r4, r5, r6, pc} _021EA8D0: mov r0, r4 mov r1, r6 mov r2, r5 - bl FUN_021EA5D8 + bl MOD04_021EA5D8 ldmia sp!, {r4, r5, r6, pc} _021EA8E4: mov r0, r4 mov r1, r6 mov r2, r5 - bl FUN_021EA588 + bl MOD04_021EA588 ldmia sp!, {r4, r5, r6, pc} _021EA8F8: mov r0, #0x30 @@ -20355,27 +20358,27 @@ _021EA8F8: _021EA934: ldr r1, _021EA948 ; =0xFFFE82B6 mov r0, #6 - bl FUN_021DD6B0 + bl MOD04_021DD6B0 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EA944: .word 0x02210E3C _021EA948: .word 0xFFFE82B6 - arm_func_start FUN_021EA94C -FUN_021EA94C: ; 0x021EA94C + arm_func_start MOD04_021EA94C +MOD04_021EA94C: ; 0x021EA94C stmdb sp!, {r4, r5, r6, lr} mov r6, r1 mov r5, r2 mov r4, r3 - bl FUN_021DF760 + bl MOD04_021DF760 mov r1, r6 mov r2, r5 mov r3, r4 - bl FUN_021FD498 + bl MOD04_021FD498 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021EA974 -FUN_021EA974: ; 0x021EA974 + arm_func_start MOD04_021EA974 +MOD04_021EA974: ; 0x021EA974 ldr r2, _021EA98C ; =0x02210E3C mov r1, #0x30 ldr r2, [r2] @@ -20385,8 +20388,8 @@ FUN_021EA974: ; 0x021EA974 .align 2, 0 _021EA98C: .word 0x02210E3C - arm_func_start FUN_021EA990 -FUN_021EA990: ; 0x021EA990 + arm_func_start MOD04_021EA990 +MOD04_021EA990: ; 0x021EA990 ldr r2, _021EA9A8 ; =0x02210E3C mov r1, #0x30 ldr r2, [r2] @@ -20396,8 +20399,8 @@ FUN_021EA990: ; 0x021EA990 .align 2, 0 _021EA9A8: .word 0x02210E3C - arm_func_start FUN_021EA9AC -FUN_021EA9AC: ; 0x021EA9AC + arm_func_start MOD04_021EA9AC +MOD04_021EA9AC: ; 0x021EA9AC ldr r2, _021EA9C0 ; =0x02210E3C mov r1, #0x30 ldr r2, [r2] @@ -20406,8 +20409,8 @@ FUN_021EA9AC: ; 0x021EA9AC .align 2, 0 _021EA9C0: .word 0x02210E3C - arm_func_start FUN_021EA9C4 -FUN_021EA9C4: ; 0x021EA9C4 + arm_func_start MOD04_021EA9C4 +MOD04_021EA9C4: ; 0x021EA9C4 ldr r0, _021EA9D4 ; =0x02210E3C mov r1, #0 str r1, [r0] @@ -20415,8 +20418,8 @@ FUN_021EA9C4: ; 0x021EA9C4 .align 2, 0 _021EA9D4: .word 0x02210E3C - arm_func_start FUN_021EA9D8 -FUN_021EA9D8: ; 0x021EA9D8 + arm_func_start MOD04_021EA9D8 +MOD04_021EA9D8: ; 0x021EA9D8 ldr r2, _021EAA60 ; =0x02210E3C ldr r3, [r2] cmp r3, #0 @@ -20454,8 +20457,8 @@ FUN_021EA9D8: ; 0x021EA9D8 .align 2, 0 _021EAA60: .word 0x02210E3C - arm_func_start FUN_021EAA64 -FUN_021EAA64: ; 0x021EAA64 + arm_func_start MOD04_021EAA64 +MOD04_021EAA64: ; 0x021EAA64 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc ldr r0, _021EAC14 ; =0x02210E3C @@ -20464,7 +20467,7 @@ FUN_021EAA64: ; 0x021EAA64 addeq sp, sp, #0xc ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} add r0, sp, #8 - bl FUN_021DF8F4 + bl MOD04_021DF8F4 mov sb, r0 cmp sb, #0 mov r8, #0 @@ -20478,11 +20481,11 @@ _021EAAAC: ldr r0, [sp, #8] ldrb r7, [r0, r8] mov r0, r7 - bl FUN_021DF8A8 + bl MOD04_021DF8A8 cmp r0, #0 beq _021EAB44 mov r0, r7 - bl FUN_021EA9AC + bl MOD04_021EA9AC ldr r1, [r4] mov r6, r0 ldr r0, [r1, #0x608] @@ -20514,15 +20517,15 @@ _021EAAAC: str r5, [r6, #0x24] str sl, [r6, #0x28] _021EAB44: - bl FUN_021DF95C + bl MOD04_021DF95C cmp r7, r0 beq _021EAC00 mov r0, r7 - bl FUN_021EA990 + bl MOD04_021EA990 cmp r0, #1 bne _021EAC00 mov r0, r7 - bl FUN_021EA9AC + bl MOD04_021EA9AC mov r5, r0 ldr r0, [r4] ldr r2, [r5, #0x14] @@ -20533,7 +20536,7 @@ _021EAB44: cmp r0, r6 movle r6, r0 mov r0, r7 - bl FUN_021EA55C + bl MOD04_021EA55C cmp r0, r6 blt _021EAC00 ldr r3, [r5] @@ -20542,7 +20545,7 @@ _021EAB44: mov r2, r6 add r1, r3, r1 mov r3, fp - bl FUN_021EA94C + bl MOD04_021EA94C ldr r0, [r5, #0xc] add r0, r0, r6 str r0, [r5, #0xc] @@ -20571,8 +20574,8 @@ _021EAC00: _021EAC14: .word 0x02210E3C _021EAC18: .word 0x000082EA - arm_func_start FUN_021EAC1C -FUN_021EAC1C: ; 0x021EAC1C + arm_func_start MOD04_021EAC1C +MOD04_021EAC1C: ; 0x021EAC1C stmdb sp!, {r4, lr} ldr r2, _021EAC58 ; =0x02210E3C mov r4, r1 @@ -20580,7 +20583,7 @@ FUN_021EAC1C: ; 0x021EAC1C ldr r1, [r1, #0x60c] cmp r1, #0 ldmeqia sp!, {r4, pc} - bl FUN_021DF748 + bl MOD04_021DF748 ldr r2, _021EAC58 ; =0x02210E3C mov r1, r0 ldr r2, [r2] @@ -20591,8 +20594,8 @@ FUN_021EAC1C: ; 0x021EAC1C .align 2, 0 _021EAC58: .word 0x02210E3C - arm_func_start FUN_021EAC5C -FUN_021EAC5C: ; 0x021EAC5C + arm_func_start MOD04_021EAC5C +MOD04_021EAC5C: ; 0x021EAC5C stmdb sp!, {lr} sub sp, sp, #4 ldr ip, _021EACB0 ; =0x02210E3C @@ -20608,18 +20611,18 @@ FUN_021EAC5C: ; 0x021EAC5C ldmeqia sp!, {pc} cmp r3, #0 beq _021EACA4 - bl FUN_021EA858 + bl MOD04_021EA858 add sp, sp, #4 ldmfd sp!, {pc} _021EACA4: - bl FUN_021EA7A0 + bl MOD04_021EA7A0 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _021EACB0: .word 0x02210E3C - arm_func_start FUN_021EACB4 -FUN_021EACB4: ; 0x021EACB4 + arm_func_start MOD04_021EACB4 +MOD04_021EACB4: ; 0x021EACB4 stmdb sp!, {lr} sub sp, sp, #4 ldr r3, _021EACEC ; =0x02210E3C @@ -20639,8 +20642,8 @@ _021EACEC: .word 0x02210E3C _021EACF0: .word 0x00000614 _021EACF4: .word 0x000005B9 - arm_func_start FUN_021EACF8 -FUN_021EACF8: ; 0x021EACF8 + arm_func_start MOD04_021EACF8 +MOD04_021EACF8: ; 0x021EACF8 stmdb sp!, {r4, lr} ldr r2, _021EAD40 ; =0x02210E3C ldr r3, [r2] @@ -20662,8 +20665,8 @@ FUN_021EACF8: ; 0x021EACF8 .align 2, 0 _021EAD40: .word 0x02210E3C - arm_func_start FUN_021EAD44 -FUN_021EAD44: ; 0x021EAD44 + arm_func_start MOD04_021EAD44 +MOD04_021EAD44: ; 0x021EAD44 cmp r0, #2 beq _021EAD5C cmp r0, #3 @@ -20677,8 +20680,8 @@ _021EAD64: mov r0, #8 bx lr - arm_func_start FUN_021EAD6C -FUN_021EAD6C: ; 0x021EAD6C + arm_func_start MOD04_021EAD6C +MOD04_021EAD6C: ; 0x021EAD6C stmdb sp!, {lr} sub sp, sp, #0xc add r1, sp, #0 @@ -20696,8 +20699,8 @@ FUN_021EAD6C: ; 0x021EAD6C .align 2, 0 _021EADA4: .word 0x0220D4BC - arm_func_start FUN_021EADA8 -FUN_021EADA8: ; 0x021EADA8 + arm_func_start MOD04_021EADA8 +MOD04_021EADA8: ; 0x021EADA8 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 @@ -20712,8 +20715,8 @@ FUN_021EADA8: ; 0x021EADA8 .align 2, 0 _021EADD4: .word 0x0220D4BC - arm_func_start FUN_021EADD8 -FUN_021EADD8: ; 0x021EADD8 + arm_func_start MOD04_021EADD8 +MOD04_021EADD8: ; 0x021EADD8 ldr r1, _021EADF4 ; =0x02210E3C ldr r1, [r1] cmp r1, #0 @@ -20724,8 +20727,8 @@ FUN_021EADD8: ; 0x021EADD8 .align 2, 0 _021EADF4: .word 0x02210E3C - arm_func_start FUN_021EADF8 -FUN_021EADF8: ; 0x021EADF8 + arm_func_start MOD04_021EADF8 +MOD04_021EADF8: ; 0x021EADF8 ldr r1, _021EAE14 ; =0x02210E3C ldr r1, [r1] cmp r1, #0 @@ -20736,8 +20739,8 @@ FUN_021EADF8: ; 0x021EADF8 .align 2, 0 _021EAE14: .word 0x02210E3C - arm_func_start FUN_021EAE18 -FUN_021EAE18: ; 0x021EAE18 + arm_func_start MOD04_021EAE18 +MOD04_021EAE18: ; 0x021EAE18 ldr r1, _021EAE34 ; =0x02210E3C ldr r1, [r1] cmp r1, #0 @@ -20748,17 +20751,17 @@ FUN_021EAE18: ; 0x021EAE18 .align 2, 0 _021EAE34: .word 0x02210E3C - arm_func_start FUN_021EAE38 -FUN_021EAE38: ; 0x021EAE38 + arm_func_start MOD04_021EAE38 +MOD04_021EAE38: ; 0x021EAE38 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 mov r5, r2 - bl FUN_021EA9AC + bl MOD04_021EA9AC mov r4, r0 mov r0, r7 - bl FUN_021EA974 + bl MOD04_021EA974 cmp r0, #2 addeq sp, sp, #4 moveq r0, #0 @@ -20773,18 +20776,18 @@ FUN_021EAE38: ; 0x021EAE38 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_021EAE90 -FUN_021EAE90: ; 0x021EAE90 + arm_func_start MOD04_021EAE90 +MOD04_021EAE90: ; 0x021EAE90 stmdb sp!, {r4, r5, r6, lr} mov r5, r0 mov r6, r1 mov r4, r2 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 movne r0, #0 ldmneia sp!, {r4, r5, r6, pc} mov r0, r5 - bl FUN_021DF8A8 + bl MOD04_021DF8A8 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} @@ -20799,7 +20802,7 @@ FUN_021EAE90: ; 0x021EAE90 mov r1, r6 mov r2, r4 mov r3, #0 - bl FUN_021EA94C + bl MOD04_021EA94C ldr r0, _021EAF1C ; =0x02210E3C ldr r0, [r0] ldr r2, [r0, #0x600] @@ -20814,8 +20817,8 @@ _021EAF14: .align 2, 0 _021EAF1C: .word 0x02210E3C - arm_func_start FUN_021EAF20 -FUN_021EAF20: ; 0x021EAF20 + arm_func_start MOD04_021EAF20 +MOD04_021EAF20: ; 0x021EAF20 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0xc mov r7, r1 @@ -20823,11 +20826,11 @@ FUN_021EAF20: ; 0x021EAF20 mov r0, r7 mov r6, r2 mov r5, r3 - bl FUN_021EA9AC + bl MOD04_021EA9AC mov r4, r0 mov r0, r7 mov r1, r8 - bl FUN_021EB06C + bl MOD04_021EB06C cmp r0, #0 addeq sp, sp, #0xc moveq r0, #0 @@ -20841,12 +20844,12 @@ FUN_021EAF20: ; 0x021EAF20 mov r1, r8 mov r2, r5 str r5, [r4, #0x14] - bl FUN_021EADA8 + bl MOD04_021EADA8 add r1, sp, #0 mov r0, r7 mov r2, #8 mov r3, #1 - bl FUN_021EA94C + bl MOD04_021EA94C ldr r0, _021EB040 ; =0x02210E3C ldr r0, [r0] add r0, r0, #0x600 @@ -20854,7 +20857,7 @@ FUN_021EAF20: ; 0x021EAF20 mov r0, r7 cmp r5, sb movle sb, r5 - bl FUN_021EA55C + bl MOD04_021EA55C cmp sb, r0 addgt sp, sp, #0xc movgt r0, #1 @@ -20863,7 +20866,7 @@ FUN_021EAF20: ; 0x021EAF20 mov r1, r6 mov r2, sb mov r3, #1 - bl FUN_021EA94C + bl MOD04_021EA94C ldr r0, [r4, #0xc] add r0, r0, sb str r0, [r4, #0xc] @@ -20892,8 +20895,8 @@ _021EB034: .align 2, 0 _021EB040: .word 0x02210E3C - arm_func_start FUN_021EB044 -FUN_021EB044: ; 0x021EB044 + arm_func_start MOD04_021EB044 +MOD04_021EB044: ; 0x021EB044 stmdb sp!, {lr} sub sp, sp, #4 mov ip, r1 @@ -20901,28 +20904,28 @@ FUN_021EB044: ; 0x021EB044 mov r1, r0 mov r2, ip mov r0, #1 - bl FUN_021EAF20 + bl MOD04_021EAF20 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EB06C -FUN_021EB06C: ; 0x021EB06C + arm_func_start MOD04_021EB06C +MOD04_021EB06C: ; 0x021EB06C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 mov r5, r1 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 bne _021EB0B0 cmp r5, #1 bne _021EB0A0 mov r0, r4 - bl FUN_021DF8A8 + bl MOD04_021DF8A8 cmp r0, #0 beq _021EB0B0 _021EB0A0: mov r0, r4 - bl FUN_021DF5F0 + bl MOD04_021DF5F0 cmp r0, #0 bne _021EB0BC _021EB0B0: @@ -20931,32 +20934,32 @@ _021EB0B0: ldmia sp!, {r4, r5, pc} _021EB0BC: mov r0, r4 - bl FUN_021EA990 + bl MOD04_021EA990 cmp r0, #1 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {r4, r5, pc} mov r0, r4 - bl FUN_021EA55C + bl MOD04_021EA55C mov r4, r0 mov r0, r5 - bl FUN_021EAD44 + bl MOD04_021EAD44 cmp r4, r0 movge r0, #1 movlt r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EB0FC -FUN_021EB0FC: ; 0x021EB0FC - ldr ip, _021EB108 ; =FUN_021EB06C + arm_func_start MOD04_021EB0FC +MOD04_021EB0FC: ; 0x021EB0FC + ldr ip, _021EB108 ; =MOD04_021EB06C mov r1, #1 bx ip .align 2, 0 -_021EB108: .word FUN_021EB06C +_021EB108: .word MOD04_021EB06C - arm_func_start FUN_021EB10C -FUN_021EB10C: ; 0x021EB10C + arm_func_start MOD04_021EB10C +MOD04_021EB10C: ; 0x021EB10C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r0, _021EB178 ; =0x02210E40 @@ -20973,12 +20976,12 @@ _021EB12C: beq _021EB14C mov r0, r5 mov r2, r4 - bl FUN_021DD904 + bl MOD04_021DD904 _021EB14C: mov r0, r5 mov r1, r6 mov r2, r4 - bl FUN_021DD904 + bl MOD04_021DD904 cmp r7, #0 bne _021EB12C _021EB164: @@ -20990,8 +20993,8 @@ _021EB164: .align 2, 0 _021EB178: .word 0x02210E40 - arm_func_start FUN_021EB17C -FUN_021EB17C: ; 0x021EB17C + arm_func_start MOD04_021EB17C +MOD04_021EB17C: ; 0x021EB17C stmdb sp!, {r4, lr} ldr r1, _021EB1FC ; =0x02210E40 ldr r1, [r1] @@ -21002,7 +21005,7 @@ FUN_021EB17C: ; 0x021EB17C mov r0, #4 mov r2, #0 ldr r4, [r1, #0x18] - bl FUN_021DD904 + bl MOD04_021DD904 ldr r0, _021EB1FC ; =0x02210E40 str r4, [r0] ldmia sp!, {r4, pc} @@ -21020,7 +21023,7 @@ _021EB1C0: mov r2, #0 str r3, [r1, #0x18] mov r1, ip - bl FUN_021DD904 + bl MOD04_021DD904 ldmia sp!, {r4, pc} _021EB1EC: ldr r2, [r2, #0x18] @@ -21030,13 +21033,13 @@ _021EB1EC: .align 2, 0 _021EB1FC: .word 0x02210E40 - arm_func_start FUN_021EB200 -FUN_021EB200: ; 0x021EB200 + arm_func_start MOD04_021EB200 +MOD04_021EB200: ; 0x021EB200 stmdb sp!, {r4, lr} mov r4, r0 mov r0, #4 mov r1, #0x1c - bl FUN_021DD944 + bl MOD04_021DD944 movs ip, r0 moveq r0, #0 ldmeqia sp!, {r4, pc} @@ -21057,8 +21060,8 @@ FUN_021EB200: ; 0x021EB200 .align 2, 0 _021EB258: .word 0x02210E40 - arm_func_start FUN_021EB25C -FUN_021EB25C: ; 0x021EB25C + arm_func_start MOD04_021EB25C +MOD04_021EB25C: ; 0x021EB25C stmdb sp!, {r4, lr} movs r4, r0 mov r0, #7 @@ -21155,7 +21158,7 @@ _021EB388: ldr r2, _021EB3B4 ; =0xFFFFFC72 add r1, r1, r2 _021EB390: - bl FUN_021DD6B0 + bl MOD04_021DD6B0 mov r0, r4 ldmia sp!, {r4, pc} .align 2, 0 @@ -21167,14 +21170,14 @@ _021EB3AC: .word 0xFFFFFC9A _021EB3B0: .word 0xFFFFFC86 _021EB3B4: .word 0xFFFFFC72 - arm_func_start FUN_021EB3B8 -FUN_021EB3B8: ; 0x021EB3B8 + arm_func_start MOD04_021EB3B8 +MOD04_021EB3B8: ; 0x021EB3B8 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x14 mov r5, r0 mov r7, r1 mov r6, r2 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 addne sp, sp, #0x14 mvnne r0, #7 @@ -21186,11 +21189,11 @@ FUN_021EB3B8: ; 0x021EB3B8 str r7, [sp, #4] str r2, [sp, #8] str r1, [sp, #0xc] - bl FUN_021EB200 + bl MOD04_021EB200 movs r4, r0 bne _021EB430 mvn r0, #4 - bl FUN_021EB25C + bl MOD04_021EB25C mov r0, #0 mov r1, r0 mov r3, r6 @@ -21200,31 +21203,31 @@ FUN_021EB3B8: ; 0x021EB3B8 mvn r0, #4 ldmia sp!, {r4, r5, r6, r7, pc} _021EB430: - ldr r2, _021EB47C ; =FUN_021EB480 + ldr r2, _021EB47C ; =MOD04_021EB480 mov r0, r5 mov r3, r4 mov r1, #0 - bl FUN_02213D80 + bl MOD79_02213D80 movs r5, r0 bpl _021EB46C - bl FUN_021EB25C + bl MOD04_021EB25C mov r0, #0 mov r1, r0 mov r2, r5 mov r3, r6 blx r7 mov r0, r4 - bl FUN_021EB17C + bl MOD04_021EB17C _021EB46C: mov r0, r5 str r5, [r4, #0x14] add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 -_021EB47C: .word FUN_021EB480 +_021EB47C: .word MOD04_021EB480 - arm_func_start FUN_021EB480 -FUN_021EB480: ; 0x021EB480 + arm_func_start MOD04_021EB480 +MOD04_021EB480: ; 0x021EB480 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r6, [sp, #0x18] @@ -21243,7 +21246,7 @@ FUN_021EB480: ; 0x021EB480 b _021EB4DC _021EB4C0: mov r0, r7 - bl FUN_021EB25C + bl MOD04_021EB25C mov r0, #0 ldr r3, [r6] mov r1, r0 @@ -21261,29 +21264,32 @@ _021EB4EC: beq _021EB508 mov r0, #4 mov r2, #0 - bl FUN_021DD904 + bl MOD04_021DD904 _021EB508: mov r0, r6 - bl FUN_021EB17C + bl MOD04_021EB17C cmp r4, #0 movne r0, #1 moveq r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_021EB524 -FUN_021EB524: ; 0x021EB524 + arm_func_start MOD04_021EB524 +MOD04_021EB524: ; 0x021EB524 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021DD6D4 + bl MOD04_021DD6D4 cmp r0, #0 addne sp, sp, #4 movne r0, #0 ldmneia sp!, {pc} - bl FUN_02213B08 + bl MOD79_02213B08 mov r0, #1 add sp, sp, #4 ldmfd sp!, {pc} + + arm_func_start MOD04_021EB550 +MOD04_021EB550: stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021EB598 ; =0x02210E44 @@ -21292,13 +21298,13 @@ FUN_021EB524: ; 0x021EB524 addle sp, sp, #4 movle r0, #1 ldmleia sp!, {pc} - bl FUN_02213DBC + bl MOD79_02213DBC ldr r0, _021EB598 ; =0x02210E44 ldr r1, [r0] subs r1, r1, #1 str r1, [r0] bne _021EB58C - bl FUN_021EB10C + bl MOD04_021EB10C _021EB58C: mov r0, #1 add sp, sp, #4 @@ -21306,11 +21312,11 @@ _021EB58C: .align 2, 0 _021EB598: .word 0x02210E44 - arm_func_start FUN_021EB59C -FUN_021EB59C: ; 0x021EB59C + arm_func_start MOD04_021EB59C +MOD04_021EB59C: ; 0x021EB59C stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_02213E24 + bl MOD79_02213E24 ldr r1, _021EB5C4 ; =0x02210E44 mov r0, #1 ldr r2, [r1] @@ -21321,8 +21327,8 @@ FUN_021EB59C: ; 0x021EB59C .align 2, 0 _021EB5C4: .word 0x02210E44 - arm_func_start FUN_021EB5C8 -FUN_021EB5C8: ; 0x021EB5C8 + arm_func_start MOD04_021EB5C8 +MOD04_021EB5C8: ; 0x021EB5C8 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} ldr r1, _021EB660 ; =0x02210E48 ldr r0, _021EB664 ; =0x00000474 @@ -21368,20 +21374,20 @@ _021EB658: _021EB660: .word 0x02210E48 _021EB664: .word 0x00000474 - arm_func_start FUN_021EB668 -FUN_021EB668: ; 0x021EB668 + arm_func_start MOD04_021EB668 +MOD04_021EB668: ; 0x021EB668 stmdb sp!, {lr} sub sp, sp, #4 ldr r1, _021EB6A0 ; =0x02210E54 mov r0, #8 ldr r1, [r1] mov r2, #0xc - bl FUN_021EB910 + bl MOD04_021EB910 ldr r0, _021EB6A4 ; =0x02210E48 ldr r2, _021EB6A8 ; =0x00000D18 ldr r1, [r0] mov r0, #0x10 - bl FUN_021EB910 + bl MOD04_021EB910 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 @@ -21389,18 +21395,18 @@ _021EB6A0: .word 0x02210E54 _021EB6A4: .word 0x02210E48 _021EB6A8: .word 0x00000D18 - arm_func_start FUN_021EB6AC -FUN_021EB6AC: ; 0x021EB6AC + arm_func_start MOD04_021EB6AC +MOD04_021EB6AC: ; 0x021EB6AC cmp r0, #2 subhi r0, r0, #3 andhi r0, r0, #0xff bx lr - arm_func_start FUN_021EB6BC -FUN_021EB6BC: ; 0x021EB6BC + arm_func_start MOD04_021EB6BC +MOD04_021EB6BC: ; 0x021EB6BC stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021EB6AC + bl MOD04_021EB6AC ldr r1, _021EB6DC ; =0x02210E58 ldr r1, [r1] strb r0, [r1, #0x17] @@ -21409,8 +21415,8 @@ FUN_021EB6BC: ; 0x021EB6BC .align 2, 0 _021EB6DC: .word 0x02210E58 - arm_func_start FUN_021EB6E0 -FUN_021EB6E0: ; 0x021EB6E0 + arm_func_start MOD04_021EB6E0 +MOD04_021EB6E0: ; 0x021EB6E0 ldr r0, _021EB6F0 ; =0x02210E58 ldr r0, [r0] ldr r0, [r0, #0xc] @@ -21418,22 +21424,22 @@ FUN_021EB6E0: ; 0x021EB6E0 .align 2, 0 _021EB6F0: .word 0x02210E58 - arm_func_start FUN_021EB6F4 -FUN_021EB6F4: ; 0x021EB6F4 + arm_func_start MOD04_021EB6F4 +MOD04_021EB6F4: ; 0x021EB6F4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r0, #1 - bl FUN_021EB798 + bl MOD04_021EB798 mov r4, r0 str r5, [r4, #0xc] - bl FUN_021EB720 + bl MOD04_021EB720 strb r0, [r4, #0xa] add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EB720 -FUN_021EB720: ; 0x021EB720 + arm_func_start MOD04_021EB720 +MOD04_021EB720: ; 0x021EB720 ldr r0, _021EB730 ; =0x02210E58 ldr r0, [r0] ldrb r0, [r0, #9] @@ -21441,15 +21447,15 @@ FUN_021EB720: ; 0x021EB720 .align 2, 0 _021EB730: .word 0x02210E58 - arm_func_start FUN_021EB734 -FUN_021EB734: ; 0x021EB734 + arm_func_start MOD04_021EB734 +MOD04_021EB734: ; 0x021EB734 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r0, #1 - bl FUN_021EB798 + bl MOD04_021EB798 mov r5, r0 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 mov r4, r0 strb r6, [r5, #9] cmp r6, #0x10 @@ -21461,7 +21467,7 @@ FUN_021EB734: ; 0x021EB734 cmp r6, #7 ldmlsia sp!, {r4, r5, r6, pc} ldrb r0, [r4, #0xd0d] - bl FUN_021EB6AC + bl MOD04_021EB6AC strb r0, [r5, #0x15] ldrb r0, [r4, #0xd13] add r0, r4, r0, lsl #2 @@ -21469,8 +21475,8 @@ FUN_021EB734: ; 0x021EB734 strb r0, [r5, #0x14] ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021EB798 -FUN_021EB798: ; 0x021EB798 + arm_func_start MOD04_021EB798 +MOD04_021EB798: ; 0x021EB798 ands r1, r0, #1 ldrne r0, _021EB7EC ; =0x02210E58 ldrne r0, [r0] @@ -21499,17 +21505,17 @@ _021EB7F4: .word 0x02210E50 _021EB7F8: .word 0x02210E54 _021EB7FC: .word 0x02210E48 - arm_func_start FUN_021EB800 -FUN_021EB800: ; 0x021EB800 + arm_func_start MOD04_021EB800 +MOD04_021EB800: ; 0x021EB800 stmdb sp!, {r4, lr} mov r0, #1 - bl FUN_021EB798 + bl MOD04_021EB798 mov r4, r0 ldrb r0, [r4, #8] ands r0, r0, #0x10 beq _021EB844 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 ldrb r3, [r4, #8] mov r1, r0 ldr r2, _021EB90C ; =0x00000D18 @@ -21523,7 +21529,7 @@ _021EB844: ands r0, r0, #8 beq _021EB878 mov r0, #8 - bl FUN_021EB798 + bl MOD04_021EB798 ldrb r2, [r4, #8] mov r1, r0 mov r0, #8 @@ -21537,7 +21543,7 @@ _021EB878: ands r0, r0, #4 beq _021EB8AC mov r0, #4 - bl FUN_021EB798 + bl MOD04_021EB798 ldrb r2, [r4, #8] mov r1, r0 mov r0, #4 @@ -21551,7 +21557,7 @@ _021EB8AC: ands r0, r0, #2 beq _021EB8E0 mov r0, #2 - bl FUN_021EB798 + bl MOD04_021EB798 ldrb r2, [r4, #8] mov r1, r0 mov r0, #2 @@ -21575,14 +21581,14 @@ _021EB8E0: .align 2, 0 _021EB90C: .word 0x00000D18 - arm_func_start FUN_021EB910 -FUN_021EB910: ; 0x021EB910 + arm_func_start MOD04_021EB910 +MOD04_021EB910: ; 0x021EB910 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r0, #1 mov r5, r1 mov r4, r2 - bl FUN_021EB798 + bl MOD04_021EB798 ldrb r2, [r0, #8] ands r1, r2, r6 ldmeqia sp!, {r4, r5, r6, pc} @@ -21596,14 +21602,14 @@ FUN_021EB910: ; 0x021EB910 blx r3 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021EB958 -FUN_021EB958: ; 0x021EB958 + arm_func_start MOD04_021EB958 +MOD04_021EB958: ; 0x021EB958 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r0, #1 mov r4, r1 - bl FUN_021EB798 + bl MOD04_021EB798 ldrb r1, [r0, #8] ands r2, r1, r5 addne sp, sp, #4 @@ -21618,14 +21624,14 @@ FUN_021EB958: ; 0x021EB958 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EB9A4 -FUN_021EB9A4: ; 0x021EB9A4 + arm_func_start MOD04_021EB9A4 +MOD04_021EB9A4: ; 0x021EB9A4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r0, #0x10 mov r4, r1 - bl FUN_021EB798 + bl MOD04_021EB798 mov r1, r0 mov r0, r4 add r1, r1, r5, lsl #8 @@ -21634,11 +21640,11 @@ FUN_021EB9A4: ; 0x021EB9A4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EB9D8 -FUN_021EB9D8: ; 0x021EB9D8 + arm_func_start MOD04_021EB9D8 +MOD04_021EB9D8: ; 0x021EB9D8 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021EB720 + bl MOD04_021EB720 strb r0, [sp] ldrb r0, [sp] cmp r0, #0 @@ -21646,27 +21652,27 @@ FUN_021EB9D8: ; 0x021EB9D8 cmp r0, #0x12 bne _021EBA0C _021EB9FC: - bl FUN_021EB800 + bl MOD04_021EB800 add sp, sp, #4 mov r0, #1 ldmfd sp!, {pc} _021EBA0C: add r0, sp, #0 - bl FUN_021ECB38 + bl MOD04_021ECB38 ldrb r0, [sp] - bl FUN_021EB734 + bl MOD04_021EB734 mov r0, #0 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EBA28 -FUN_021EBA28: ; 0x021EBA28 + arm_func_start MOD04_021EBA28 +MOD04_021EBA28: ; 0x021EBA28 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r0, #1 - bl FUN_021EB798 + bl MOD04_021EB798 mov r5, r0 - bl FUN_021EB720 + bl MOD04_021EB720 cmp r0, #0xa blo _021EBAB0 cmp r0, #0x10 @@ -21692,7 +21698,7 @@ FUN_021EBA28: ; 0x021EBA28 bl DC_InvalidateRange mov r0, r4 add r1, r6, #6 - bl FUN_021EE5F4 + bl MOD04_021EE5F4 _021EBAA8: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} @@ -21700,11 +21706,11 @@ _021EBAB0: mov r0, #0 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021EBAB8 -FUN_021EBAB8: ; 0x021EBAB8 + arm_func_start MOD04_021EBAB8 +MOD04_021EBAB8: ; 0x021EBAB8 stmdb sp!, {r4, lr} mov r4, #0xff - bl FUN_021EB720 + bl MOD04_021EB720 cmp r0, #0xa blo _021EBADC cmp r0, #0x10 @@ -21717,11 +21723,11 @@ _021EBADC: .align 2, 0 _021EBAE4: .word 0x02210E58 - arm_func_start FUN_021EBAE8 -FUN_021EBAE8: ; 0x021EBAE8 + arm_func_start MOD04_021EBAE8 +MOD04_021EBAE8: ; 0x021EBAE8 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021EB720 + bl MOD04_021EB720 cmp r0, #1 addls sp, sp, #4 movls r0, #0 @@ -21754,19 +21760,19 @@ FUN_021EBAE8: ; 0x021EBAE8 addeq sp, sp, #4 moveq r0, #4 ldmeqia sp!, {pc} - bl FUN_021ECD54 + bl MOD04_021ECD54 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EBB80 -FUN_021EBB80: ; 0x021EBB80 + arm_func_start MOD04_021EBB80 +MOD04_021EBB80: ; 0x021EBB80 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 - bl FUN_021EB720 + bl MOD04_021EB720 mov r5, r0 cmp r5, #1 bne _021EBBA4 - bl FUN_021EDB44 + bl MOD04_021EDB44 mov r5, r0 b _021EBC18 _021EBBA4: @@ -21774,43 +21780,43 @@ _021EBBA4: bhs _021EBBCC bl OS_DisableInterrupts mov r4, r0 - bl FUN_021EDA70 + bl MOD04_021EDA70 mov r5, r0 - bl FUN_021EB734 + bl MOD04_021EB734 mov r0, r4 bl OS_RestoreInterrupts b _021EBC18 _021EBBCC: cmp r5, #9 bhs _021EBBE0 - bl FUN_021ECA08 + bl MOD04_021ECA08 mov r5, r0 b _021EBC18 _021EBBE0: cmp r5, #0xa bhs _021EBBF4 - bl FUN_021ED218 + bl MOD04_021ED218 mov r5, r0 b _021EBC18 _021EBBF4: cmp r5, #0x10 bhs _021EBC08 - bl FUN_021EDFBC + bl MOD04_021EDFBC mov r5, r0 b _021EBC18 _021EBC08: cmp r5, #0x11 bne _021EBC18 - bl FUN_021ECDA8 + bl MOD04_021ECDA8 mov r5, r0 _021EBC18: mov r0, r5 - bl FUN_021EB734 + bl MOD04_021EB734 cmp r5, #0x10 bne _021EBC40 - bl FUN_021EB5C8 + bl MOD04_021EB5C8 mov r4, r0 - bl FUN_021EB668 + bl MOD04_021EB668 add sp, sp, #4 mov r0, r4 ldmia sp!, {r4, r5, pc} @@ -21819,13 +21825,13 @@ _021EBC40: addne sp, sp, #4 movne r0, #0 ldmneia sp!, {r4, r5, pc} - bl FUN_021EB668 + bl MOD04_021EB668 mvn r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EBC60 -FUN_021EBC60: ; 0x021EBC60 + arm_func_start MOD04_021EBC60 +MOD04_021EBC60: ; 0x021EBC60 stmdb sp!, {r4, lr} mov r4, r0 ldr r2, [r4] @@ -21850,22 +21856,22 @@ FUN_021EBC60: ; 0x021EBC60 strb r2, [r3, #0x16] mov r0, #0x10 strb r2, [r3, #8] - bl FUN_021EB958 + bl MOD04_021EB958 ldr r2, _021EBE10 ; =0x02210E48 mov r1, #0x2300 str r0, [r2] mov r0, #2 - bl FUN_021EB958 + bl MOD04_021EB958 ldr r2, _021EBE14 ; =0x02210E4C mov r1, #0x58 str r0, [r2] mov r0, #4 - bl FUN_021EB958 + bl MOD04_021EB958 ldr r2, _021EBE18 ; =0x02210E50 mov r1, #0xc str r0, [r2] mov r0, #8 - bl FUN_021EB958 + bl MOD04_021EB958 ldr r2, _021EBE1C ; =0x02210E54 ldr r1, _021EBE10 ; =0x02210E48 str r0, [r2] @@ -21928,7 +21934,7 @@ FUN_021EBC60: ; 0x021EBC60 cmp r0, #4 blt _021EBE00 _021EBDF4: - bl FUN_021EB800 + bl MOD04_021EB800 mov r0, #0 ldmia sp!, {r4, pc} _021EBE00: @@ -21942,8 +21948,8 @@ _021EBE14: .word 0x02210E4C _021EBE18: .word 0x02210E50 _021EBE1C: .word 0x02210E54 - arm_func_start FUN_021EBE20 -FUN_021EBE20: ; 0x021EBE20 + arm_func_start MOD04_021EBE20 +MOD04_021EBE20: ; 0x021EBE20 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xcc ldr r2, _021EBF1C ; =0x00000444 @@ -22012,8 +22018,8 @@ _021EBEF0: .align 2, 0 _021EBF1C: .word 0x00000444 - arm_func_start FUN_021EBF20 -FUN_021EBF20: ; 0x021EBF20 + arm_func_start MOD04_021EBF20 +MOD04_021EBF20: ; 0x021EBF20 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldrh r4, [r1, #2] @@ -22049,8 +22055,8 @@ _021EBF84: .align 2, 0 _021EBF9C: .word 0x00000444 - arm_func_start FUN_021EBFA0 -FUN_021EBFA0: ; 0x021EBFA0 + arm_func_start MOD04_021EBFA0 +MOD04_021EBFA0: ; 0x021EBFA0 stmdb sp!, {lr} sub sp, sp, #4 ldr lr, _021EC004 ; =0x0000046C @@ -22079,8 +22085,8 @@ FUN_021EBFA0: ; 0x021EBFA0 .align 2, 0 _021EC004: .word 0x0000046C - arm_func_start FUN_021EC008 -FUN_021EC008: ; 0x021EC008 + arm_func_start MOD04_021EC008 +MOD04_021EC008: ; 0x021EC008 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r6, r3 ldrb r3, [r6, #0xd12] @@ -22127,7 +22133,7 @@ _021EC0A0: bne _021EC0D0 mov r3, r6 and r0, r0, #0xff - bl FUN_021EBFA0 + bl MOD04_021EBFA0 ldrb r0, [r6, #0xd12] mov r4, #0xa cmp r0, #0xa @@ -22137,22 +22143,22 @@ _021EC0A0: _021EC0D0: mov r0, r4 mov r3, r6 - bl FUN_021EBF20 + bl MOD04_021EBF20 _021EC0DC: mov r0, r4 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021EC0E4: .word 0x00000474 - arm_func_start FUN_021EC0E8 -FUN_021EC0E8: ; 0x021EC0E8 + arm_func_start MOD04_021EC0E8 +MOD04_021EC0E8: ; 0x021EC0E8 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} mov r4, r0 ldrh r2, [r4, #0xa] mov sl, r1 cmp r2, #0x20 bne _021EC10C - bl FUN_021EC210 + bl MOD04_021EC210 cmp r0, #0 ldmgtia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021EC10C: @@ -22190,8 +22196,8 @@ _021EC174: .align 2, 0 _021EC17C: .word 0x0000047C - arm_func_start FUN_021EC180 -FUN_021EC180: ; 0x021EC180 + arm_func_start MOD04_021EC180 +MOD04_021EC180: ; 0x021EC180 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov r6, r0 @@ -22200,7 +22206,7 @@ FUN_021EC180: ; 0x021EC180 mov r4, r2 cmp r3, #0x20 bne _021EC1B0 - bl FUN_021EC210 + bl MOD04_021EC210 cmp r0, #0 addgt sp, sp, #4 ldmgtia sp!, {r4, r5, r6, r7, r8, sb, pc} @@ -22233,13 +22239,13 @@ _021EC204: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} - arm_func_start FUN_021EC210 -FUN_021EC210: ; 0x021EC210 + arm_func_start MOD04_021EC210 +MOD04_021EC210: ; 0x021EC210 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 mov r4, r0 ldrb r0, [r4, #0xd0c] mov r0, r0, lsl #0x1c @@ -22255,7 +22261,7 @@ _021EC240: cmp r0, #1 bne _021EC270 add r0, r5, #0xc - bl FUN_021EE5C8 + bl MOD04_021EE5C8 cmp r0, #1 addeq sp, sp, #4 moveq r0, #6 @@ -22275,7 +22281,7 @@ _021EC288: cmp r0, #1 bne _021EC2B8 add r0, r5, #0xc - bl FUN_021EE668 + bl MOD04_021EE668 cmp r0, #1 addeq sp, sp, #4 moveq r0, #7 @@ -22285,20 +22291,20 @@ _021EC2B8: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EC2C4 -FUN_021EC2C4: ; 0x021EC2C4 + arm_func_start MOD04_021EC2C4 +MOD04_021EC2C4: ; 0x021EC2C4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r0, #0x10 mvn r6, #0 - bl FUN_021EB798 + bl MOD04_021EB798 mov r4, r0 mov r0, #1 - bl FUN_021EB798 + bl MOD04_021EB798 mov r1, #1 strb r1, [r0, #0xb] - bl FUN_021EB720 + bl MOD04_021EB720 cmp r0, #3 beq _021EC314 cmp r0, #4 @@ -22317,7 +22323,7 @@ _021EC314: bne _021EC33C _021EC330: ldrh r0, [r7, #0x36] - bl FUN_021EDA3C + bl MOD04_021EDA3C b _021EC418 _021EC33C: cmp r1, #1 @@ -22326,18 +22332,18 @@ _021EC33C: bne _021EC36C _021EC34C: ldrh r0, [r7, #0x36] - bl FUN_021EDA3C + bl MOD04_021EDA3C ldrb r1, [r4, #0xd10] mov r0, r7 add r2, r4, #0x300 - bl FUN_021EC180 + bl MOD04_021EC180 mov r6, r0 b _021EC418 _021EC36C: ldrb r1, [r4, #0xd10] mov r0, r7 add r2, r4, #0x300 - bl FUN_021EC180 + bl MOD04_021EC180 mov r6, r0 b _021EC418 _021EC384: @@ -22350,7 +22356,7 @@ _021EC384: mov r1, r4 sub r2, r2, #1 and r5, r2, #0xff - bl FUN_021EC0E8 + bl MOD04_021EC0E8 movs r6, r0 bmi _021EC418 ldr r0, _021EC448 ; =0x00000447 @@ -22368,7 +22374,7 @@ _021EC3D0: mov r0, r7 mov r1, #1 ldrb r5, [r4, #0xd11] - bl FUN_021EC180 + bl MOD04_021EC180 movs r6, r0 bmi _021EC418 ldrb r1, [r4, #0xd0f] @@ -22387,20 +22393,20 @@ _021EC418: mov r1, r7 mov r2, r5 mov r3, r4 - bl FUN_021EC008 + bl MOD04_021EC008 mov r1, r4 - bl FUN_021EBE20 + bl MOD04_021EBE20 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021EC448: .word 0x00000447 - arm_func_start FUN_021EC44C -FUN_021EC44C: ; 0x021EC44C + arm_func_start MOD04_021EC44C +MOD04_021EC44C: ; 0x021EC44C stmdb sp!, {r4, lr} mov r4, r0 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 ldrsh r1, [r4] cmp r1, #5 bne _021EC4C4 @@ -22435,11 +22441,11 @@ _021EC4C4: cmp r1, #7 ldmneia sp!, {r4, pc} ldr r0, [r4, #4] - bl FUN_021EC2C4 + bl MOD04_021EC2C4 ldmia sp!, {r4, pc} - arm_func_start FUN_021EC4D8 -FUN_021EC4D8: ; 0x021EC4D8 + arm_func_start MOD04_021EC4D8 +MOD04_021EC4D8: ; 0x021EC4D8 stmdb sp!, {r4, lr} mov r4, r2 cmp r1, #9 @@ -22493,7 +22499,7 @@ _021EC56C: mov r0, #0xc0 mla r0, r2, r0, r1 add r1, r4, #2 - bl FUN_021EE5B8 + bl MOD04_021EE5B8 b _021EC5B8 _021EC594: mov r1, #2 @@ -22504,7 +22510,7 @@ _021EC594: mov r0, #0xc0 mla r0, r2, r0, r1 add r1, r4, #2 - bl FUN_021EE640 + bl MOD04_021EE640 _021EC5B8: ldrb r0, [r4] cmp r0, #0 @@ -22514,8 +22520,8 @@ _021EC5B8: .align 2, 0 _021EC5CC: .word 0x0000047C - arm_func_start FUN_021EC5D0 -FUN_021EC5D0: ; 0x021EC5D0 + arm_func_start MOD04_021EC5D0 +MOD04_021EC5D0: ; 0x021EC5D0 ldrb r0, [r0, #0xd0b] mov r0, r0, lsl #0x1c mov r0, r0, lsr #0x1e @@ -22524,8 +22530,8 @@ FUN_021EC5D0: ; 0x021EC5D0 movne r0, #0x80000 bx lr - arm_func_start FUN_021EC5EC -FUN_021EC5EC: ; 0x021EC5EC + arm_func_start MOD04_021EC5EC +MOD04_021EC5EC: ; 0x021EC5EC ldrb r0, [r0, #0xd0b] mov r0, r0, lsl #0x1e mov r0, r0, lsr #0x1e @@ -22534,8 +22540,8 @@ FUN_021EC5EC: ; 0x021EC5EC movne r0, #0x20000 bx lr - arm_func_start FUN_021EC608 -FUN_021EC608: ; 0x021EC608 + arm_func_start MOD04_021EC608 +MOD04_021EC608: ; 0x021EC608 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 mov sl, r0 @@ -22554,7 +22560,7 @@ FUN_021EC608: ; 0x021EC608 cmp r0, #0x20 bne _021EC66C mov r0, sb - bl FUN_021EC210 + bl MOD04_021EC210 cmp r0, #0 str r0, [sp] movle r0, #0 @@ -22565,7 +22571,7 @@ _021EC66C: cmp r0, #8 bne _021EC690 mov r0, sb - bl FUN_021ED12C + bl MOD04_021ED12C cmp r0, #0 str r0, [sp] moveq r0, #0 @@ -22654,8 +22660,8 @@ _021EC79C: .align 2, 0 _021EC7AC: .word 0x00000D0C - arm_func_start FUN_021EC7B0 -FUN_021EC7B0: ; 0x021EC7B0 + arm_func_start MOD04_021EC7B0 +MOD04_021EC7B0: ; 0x021EC7B0 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 bl FUN_020A71F8 @@ -22666,7 +22672,7 @@ FUN_021EC7B0: ; 0x021EC7B0 cmp r0, #3 bne _021EC8BC mov r0, r6 - bl FUN_021EC5EC + bl MOD04_021EC5EC ldrb r1, [r6, #0xd15] mov r4, r0 add r0, r1, #1 @@ -22719,7 +22725,7 @@ _021EC888: streqb r0, [r6, #0xd0b] _021EC898: mov r0, r6 - bl FUN_021EC5D0 + bl MOD04_021EC5D0 mov r2, r0 ldr r1, _021EC8E8 ; =0x00000CB8 mov r0, r5 @@ -22743,8 +22749,8 @@ _021EC8E0: .align 2, 0 _021EC8E8: .word 0x00000CB8 - arm_func_start FUN_021EC8EC -FUN_021EC8EC: ; 0x021EC8EC + arm_func_start MOD04_021EC8EC +MOD04_021EC8EC: ; 0x021EC8EC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -22752,7 +22758,7 @@ FUN_021EC8EC: ; 0x021EC8EC add r3, r5, #0x470 mov r1, #0xc0 mla r4, r2, r1, r3 - bl FUN_021EC608 + bl MOD04_021EC608 ldr r1, _021ECA04 ; =0x00000CB8 strb r0, [r5, #0xd0d] add r0, r5, r1 @@ -22763,7 +22769,7 @@ FUN_021EC8EC: ; 0x021EC8EC ldrb r1, [r5, #0xd0d] mov r0, r5 add r2, r5, r2 - bl FUN_021EC4D8 + bl MOD04_021EC4D8 cmp r0, #0 beq _021EC9B0 ldrb r0, [r5, #0xd0b] @@ -22821,31 +22827,31 @@ _021EC9EC: .align 2, 0 _021ECA04: .word 0x00000CB8 - arm_func_start FUN_021ECA08 -FUN_021ECA08: ; 0x021ECA08 + arm_func_start MOD04_021ECA08 +MOD04_021ECA08: ; 0x021ECA08 stmdb sp!, {r4, lr} - bl FUN_021EB720 + bl MOD04_021EB720 mov r4, r0 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 cmp r4, #7 beq _021ECA30 cmp r4, #8 beq _021ECA3C b _021ECA44 _021ECA30: - bl FUN_021EC8EC + bl MOD04_021EC8EC mov r4, r0 b _021ECA44 _021ECA3C: - bl FUN_021EC7B0 + bl MOD04_021EC7B0 mov r4, r0 _021ECA44: mov r0, r4 ldmia sp!, {r4, pc} - arm_func_start FUN_021ECA4C -FUN_021ECA4C: ; 0x021ECA4C + arm_func_start MOD04_021ECA4C +MOD04_021ECA4C: ; 0x021ECA4C stmdb sp!, {lr} sub sp, sp, #4 bl FUN_02099A94 @@ -22868,8 +22874,8 @@ _021ECA8C: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021ECA98 -FUN_021ECA98: ; 0x021ECA98 + arm_func_start MOD04_021ECA98 +MOD04_021ECA98: ; 0x021ECA98 stmdb sp!, {lr} sub sp, sp, #4 bl FUN_020A71F8 @@ -22911,7 +22917,7 @@ _021ECB10: b _021ECB2C _021ECB18: mov r0, #0 - bl FUN_021EB6F4 + bl MOD04_021EB6F4 add sp, sp, #4 mvn r0, #0 ldmfd sp!, {pc} @@ -22920,14 +22926,14 @@ _021ECB2C: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021ECB38 -FUN_021ECB38: ; 0x021ECB38 + arm_func_start MOD04_021ECB38 +MOD04_021ECB38: ; 0x021ECB38 stmdb sp!, {r4, lr} mov r4, r0 ldrb r0, [r4] cmp r0, #0xa bhi _021ECB80 - bl FUN_021ECA98 + bl MOD04_021ECA98 cmp r0, #1 moveq r0, #0 streqb r0, [r4] @@ -22943,15 +22949,15 @@ FUN_021ECB38: ; 0x021ECB38 _021ECB80: cmp r0, #0xe bne _021ECB9C - bl FUN_021DC7F0 - bl FUN_021DC870 + bl MOD04_021DC7F0 + bl MOD04_021DC870 mov r0, #0xc strb r0, [r4] b _021ECBB4 _021ECB9C: cmp r0, #0x12 bhs _021ECBB4 - bl FUN_021ECA4C + bl MOD04_021ECA4C cmp r0, #1 moveq r0, #0xa streqb r0, [r4] @@ -22959,8 +22965,8 @@ _021ECBB4: mov r0, #0 ldmia sp!, {r4, pc} - arm_func_start FUN_021ECBBC -FUN_021ECBBC: ; 0x021ECBBC + arm_func_start MOD04_021ECBBC +MOD04_021ECBBC: ; 0x021ECBBC ldrb r1, [r0, #0x16] cmp r1, #0xa bhs _021ECC04 @@ -23041,8 +23047,8 @@ _021ECCE0: .word 0xFFFF30F8 _021ECCE4: .word 0xFFFF3094 _021ECCE8: .word 0xFFFF3030 - arm_func_start FUN_021ECCEC -FUN_021ECCEC: ; 0x021ECCEC + arm_func_start MOD04_021ECCEC +MOD04_021ECCEC: ; 0x021ECCEC ldrb r0, [r0, #0xb] cmp r0, #0 ldreq r0, _021ECD00 ; =0xFFFF3C4D @@ -23052,13 +23058,13 @@ FUN_021ECCEC: ; 0x021ECCEC _021ECD00: .word 0xFFFF3C4D _021ECD04: .word 0xFFFF3865 - arm_func_start FUN_021ECD08 -FUN_021ECD08: ; 0x021ECD08 + arm_func_start MOD04_021ECD08 +MOD04_021ECD08: ; 0x021ECD08 mvn r0, #5 bx lr - arm_func_start FUN_021ECD10 -FUN_021ECD10: ; 0x021ECD10 + arm_func_start MOD04_021ECD10 +MOD04_021ECD10: ; 0x021ECD10 cmp r0, #3 addls pc, pc, r0, lsl #2 b _021ECD4C @@ -23083,49 +23089,49 @@ _021ECD4C: mov r0, #0 bx lr - arm_func_start FUN_021ECD54 -FUN_021ECD54: ; 0x021ECD54 + arm_func_start MOD04_021ECD54 +MOD04_021ECD54: ; 0x021ECD54 stmdb sp!, {r4, lr} mov r0, #1 - bl FUN_021EB798 + bl MOD04_021EB798 mov r4, r0 - bl FUN_021EB6E0 + bl MOD04_021EB6E0 cmp r0, #4 bge _021ECD78 - bl FUN_021ECD10 + bl MOD04_021ECD10 ldmia sp!, {r4, pc} _021ECD78: cmp r0, #5 bge _021ECD88 - bl FUN_021ECD08 + bl MOD04_021ECD08 ldmia sp!, {r4, pc} _021ECD88: cmp r0, #5 bne _021ECD9C mov r0, r4 - bl FUN_021ECCEC + bl MOD04_021ECCEC ldmia sp!, {r4, pc} _021ECD9C: mov r0, r4 - bl FUN_021ECBBC + bl MOD04_021ECBBC ldmia sp!, {r4, pc} - arm_func_start FUN_021ECDA8 -FUN_021ECDA8: ; 0x021ECDA8 + arm_func_start MOD04_021ECDA8 +MOD04_021ECDA8: ; 0x021ECDA8 stmdb sp!, {lr} sub sp, sp, #4 mov r0, #1 - bl FUN_021EB798 + bl MOD04_021EB798 add r0, r0, #0xa - bl FUN_021ECB38 + bl MOD04_021ECB38 cmp r0, #1 moveq r0, #0x12 movne r0, #0x11 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021ECDD4 -FUN_021ECDD4: ; 0x021ECDD4 + arm_func_start MOD04_021ECDD4 +MOD04_021ECDD4: ; 0x021ECDD4 ldrb r2, [r0, #0xd12] mov r3, #0 mov ip, r3 @@ -23146,8 +23152,8 @@ _021ECE10: mov r0, r3 bx lr - arm_func_start FUN_021ECE18 -FUN_021ECE18: ; 0x021ECE18 + arm_func_start MOD04_021ECE18 +MOD04_021ECE18: ; 0x021ECE18 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldrb r1, [r0, #0xd12] @@ -23192,8 +23198,8 @@ _021ECEA0: .align 2, 0 _021ECEAC: .word 0x00000447 - arm_func_start FUN_021ECEB0 -FUN_021ECEB0: ; 0x021ECEB0 + arm_func_start MOD04_021ECEB0 +MOD04_021ECEB0: ; 0x021ECEB0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} mov r5, #0 mov r4, r0 @@ -23272,12 +23278,12 @@ _021ECFB0: mov r0, r5 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_start FUN_021ECFC8 -FUN_021ECFC8: ; 0x021ECFC8 + arm_func_start MOD04_021ECFC8 +MOD04_021ECFC8: ; 0x021ECFC8 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 add r4, r6, #0x300 - bl FUN_021ECEB0 + bl MOD04_021ECEB0 ldrb r1, [r6, #0xd0c] mov r5, r0 mov r0, #0x24 @@ -23344,13 +23350,13 @@ _021ED0B4: .word 0x0220D4C0 _021ED0B8: .word 0x0220BADC _021ED0BC: .word 0x0220BAEC - arm_func_start FUN_021ED0C0 -FUN_021ED0C0: ; 0x021ED0C0 + arm_func_start MOD04_021ED0C0 +MOD04_021ED0C0: ; 0x021ED0C0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 add r4, r5, #0x300 - bl FUN_021ECEB0 + bl MOD04_021ECEB0 ldrb r1, [r5, #0xd0c] mov r5, r0 mov r0, #0x24 @@ -23377,12 +23383,12 @@ _021ED11C: .align 2, 0 _021ED128: .word 0x0220BAE4 - arm_func_start FUN_021ED12C -FUN_021ED12C: ; 0x021ED12C + arm_func_start MOD04_021ED12C +MOD04_021ED12C: ; 0x021ED12C stmdb sp!, {r4, lr} mov r4, r0 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 ldrb r0, [r0, #0xd0c] mov r0, r0, lsl #0x1c movs r0, r0, lsr #0x1c @@ -23403,13 +23409,13 @@ _021ED170: .align 2, 0 _021ED178: .word 0x0220BAE4 - arm_func_start FUN_021ED17C -FUN_021ED17C: ; 0x021ED17C + arm_func_start MOD04_021ED17C +MOD04_021ED17C: ; 0x021ED17C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 mov r4, r0 cmp r5, #0 beq _021ED1B0 @@ -23424,14 +23430,14 @@ _021ED1B0: mov r2, #0x144 bl MIi_CpuClear32 mov r0, r4 - bl FUN_021ED0C0 + bl MOD04_021ED0C0 strb r0, [r4, #0xd10] b _021ED20C _021ED1D0: - bl FUN_021ECE18 + bl MOD04_021ECE18 strb r0, [r4, #0xd10] mov r0, r4 - bl FUN_021ECDD4 + bl MOD04_021ECDD4 strb r0, [r4, #0xd0f] b _021ED20C _021ED1E8: @@ -23442,19 +23448,19 @@ _021ED1E8: mov r1, #0 mov r0, r4 strb r1, [r4, #0xd0f] - bl FUN_021ECFC8 + bl MOD04_021ECFC8 strb r0, [r4, #0xd10] _021ED20C: ldrb r0, [r4, #0xd10] add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021ED218 -FUN_021ED218: ; 0x021ED218 + arm_func_start MOD04_021ED218 +MOD04_021ED218: ; 0x021ED218 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 mov r4, r0 mov r5, #9 bl FUN_020A71F8 @@ -23494,7 +23500,7 @@ _021ED2A4: cmp r5, #5 bhi _021ED2F0 mov r0, r5 - bl FUN_021ED8D4 + bl MOD04_021ED8D4 b _021ED2F0 _021ED2C0: bl FUN_020A7820 @@ -23505,20 +23511,20 @@ _021ED2C8: _021ED2D0: bl FUN_020A722C mov r0, #4 - bl FUN_021EB6F4 + bl MOD04_021EB6F4 mov r5, #0x11 b _021ED2F0 _021ED2E4: mov r0, #0 - bl FUN_021EB6F4 + bl MOD04_021EB6F4 mov r5, #0x11 _021ED2F0: mov r0, r5 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021ED2FC -FUN_021ED2FC: ; 0x021ED2FC + arm_func_start MOD04_021ED2FC +MOD04_021ED2FC: ; 0x021ED2FC stmdb sp!, {lr} sub sp, sp, #4 ldr ip, _021ED324 ; =0x0220BAF8 @@ -23532,8 +23538,8 @@ FUN_021ED2FC: ; 0x021ED2FC .align 2, 0 _021ED324: .word 0x0220BAF8 - arm_func_start FUN_021ED328 -FUN_021ED328: ; 0x021ED328 + arm_func_start MOD04_021ED328 +MOD04_021ED328: ; 0x021ED328 stmdb sp!, {r4, lr} mov r4, r0 add r0, r4, #0xd00 @@ -23541,11 +23547,11 @@ FUN_021ED328: ; 0x021ED328 cmp r0, #0 beq _021ED364 mov r0, #2 - bl FUN_021ED17C + bl MOD04_021ED17C cmp r0, #0 beq _021ED364 mov r0, #0 - bl FUN_021ED9D0 + bl MOD04_021ED9D0 strb r0, [r4, #0xd11] mov r0, #5 ldmia sp!, {r4, pc} @@ -23557,11 +23563,11 @@ _021ED364: movhs r0, #6 ldmhsia sp!, {r4, pc} mov r0, r4 - bl FUN_021ED798 + bl MOD04_021ED798 ldmia sp!, {r4, pc} - arm_func_start FUN_021ED388 -FUN_021ED388: ; 0x021ED388 + arm_func_start MOD04_021ED388 +MOD04_021ED388: ; 0x021ED388 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r1 @@ -23591,11 +23597,11 @@ _021ED3D8: cmp r2, #0 bne _021ED3FC mov r0, #5 - bl FUN_021EB6F4 + bl MOD04_021EB6F4 b _021ED404 _021ED3FC: mov r0, #6 - bl FUN_021EB6F4 + bl MOD04_021EB6F4 _021ED404: add sp, sp, #4 mov r0, #0x11 @@ -23625,8 +23631,8 @@ _021ED448: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021ED468 -FUN_021ED468: ; 0x021ED468 + arm_func_start MOD04_021ED468 +MOD04_021ED468: ; 0x021ED468 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r1 @@ -23648,12 +23654,12 @@ _021ED494: beq _021ED4D4 _021ED4B0: mov r0, #1 - bl FUN_021ED17C + bl MOD04_021ED17C cmp r0, #0 movne r4, #4 bne _021ED524 mov r0, r5 - bl FUN_021ED328 + bl MOD04_021ED328 mov r4, r0 b _021ED524 _021ED4D4: @@ -23663,11 +23669,11 @@ _021ED4D4: cmp r1, #1 movhs r4, #6 bhs _021ED524 - bl FUN_021ED798 + bl MOD04_021ED798 mov r4, r0 b _021ED524 _021ED4F8: - bl FUN_021ED328 + bl MOD04_021ED328 mov r4, r0 b _021ED524 _021ED504: @@ -23677,17 +23683,17 @@ _021ED504: cmp r1, #1 movhs r4, #6 bhs _021ED524 - bl FUN_021ED798 + bl MOD04_021ED798 mov r4, r0 _021ED524: mov r0, r4 - bl FUN_021ED8D4 + bl MOD04_021ED8D4 mov r0, r4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021ED538 -FUN_021ED538: ; 0x021ED538 + arm_func_start MOD04_021ED538 +MOD04_021ED538: ; 0x021ED538 stmdb sp!, {r4, lr} mov r4, r0 bl OS_GetTick @@ -23733,7 +23739,7 @@ _021ED598: strb r1, [r4, #0xd15] strb r0, [r4, #0xd0f] ldrb r0, [r4, #0xd15] - bl FUN_021ED9D0 + bl MOD04_021ED9D0 strb r0, [r4, #0xd11] _021ED5F0: add r0, r4, #0xd00 @@ -23744,7 +23750,7 @@ _021ED5F0: mov r0, r4 mov r1, #5 strb r2, [r4, #0xd15] - bl FUN_021ED468 + bl MOD04_021ED468 ldmia sp!, {r4, pc} _021ED618: bl OS_GetTick @@ -23758,7 +23764,7 @@ _021ED618: ldrsb r2, [r2, #0x11] ldr r0, _021ED654 ; =0x020FF590 mov r3, #0x300000 - bl FUN_021ED2FC + bl MOD04_021ED2FC _021ED648: mov r0, #5 ldmia sp!, {r4, pc} @@ -23766,8 +23772,8 @@ _021ED648: _021ED650: .word 0x000082EA _021ED654: .word 0x020FF590 - arm_func_start FUN_021ED658 -FUN_021ED658: ; 0x021ED658 + arm_func_start MOD04_021ED658 +MOD04_021ED658: ; 0x021ED658 stmdb sp!, {r4, lr} mov r4, r0 bl OS_GetTick @@ -23824,7 +23830,7 @@ _021ED714: mov r0, r4 mov r1, #4 strb r2, [r4, #0xd0f] - bl FUN_021ED468 + bl MOD04_021ED468 ldmia sp!, {r4, pc} _021ED734: bl OS_GetTick @@ -23844,7 +23850,7 @@ _021ED734: add r1, r1, ip sub r2, r2, #1 mov r3, #0x300000 - bl FUN_021ED2FC + bl MOD04_021ED2FC _021ED77C: mov r0, #4 ldmia sp!, {r4, pc} @@ -23855,8 +23861,8 @@ _021ED78C: .word 0x00000D0F _021ED790: .word 0x00000474 _021ED794: .word 0x0000047C - arm_func_start FUN_021ED798 -FUN_021ED798: ; 0x021ED798 + arm_func_start MOD04_021ED798 +MOD04_021ED798: ; 0x021ED798 stmdb sp!, {r4, lr} mov r4, r0 mov r0, #0 @@ -23870,14 +23876,14 @@ FUN_021ED798: ; 0x021ED798 and r1, r1, #0xf orr r1, r2, r1, lsl #4 strb r1, [r4, #0xd0b] - bl FUN_021ED17C + bl MOD04_021ED17C mov r0, #1 strb r0, [r4, #0xd11] mov r0, #3 ldmia sp!, {r4, pc} - arm_func_start FUN_021ED7E0 -FUN_021ED7E0: ; 0x021ED7E0 + arm_func_start MOD04_021ED7E0 +MOD04_021ED7E0: ; 0x021ED7E0 stmdb sp!, {r4, lr} mov r4, r0 bl OS_GetTick @@ -23903,7 +23909,7 @@ FUN_021ED7E0: ; 0x021ED7E0 blt _021ED84C mov r0, r4 mov r1, #3 - bl FUN_021ED468 + bl MOD04_021ED468 ldmia sp!, {r4, pc} _021ED84C: bl OS_GetTick @@ -23914,7 +23920,7 @@ _021ED84C: ldr r0, _021ED87C ; =0x020FF590 ldr r1, _021ED880 ; =0x020FF598 mov r3, #0x200000 - bl FUN_021ED2FC + bl MOD04_021ED2FC _021ED870: mov r0, #3 ldmia sp!, {r4, pc} @@ -23923,8 +23929,8 @@ _021ED878: .word 0x000082EA _021ED87C: .word 0x020FF590 _021ED880: .word 0x020FF598 - arm_func_start FUN_021ED884 -FUN_021ED884: ; 0x021ED884 + arm_func_start MOD04_021ED884 +MOD04_021ED884: ; 0x021ED884 stmdb sp!, {r4, lr} mov r4, r0 bl OS_GetTick @@ -23940,20 +23946,20 @@ FUN_021ED884: ; 0x021ED884 ldr r0, _021ED8CC ; =0x020FF590 ldr r1, _021ED8D0 ; =0x020FF598 mov r3, #0x200000 - bl FUN_021ED2FC + bl MOD04_021ED2FC mov r0, #3 ldmia sp!, {r4, pc} .align 2, 0 _021ED8CC: .word 0x020FF590 _021ED8D0: .word 0x020FF598 - arm_func_start FUN_021ED8D4 -FUN_021ED8D4: ; 0x021ED8D4 + arm_func_start MOD04_021ED8D4 +MOD04_021ED8D4: ; 0x021ED8D4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 mov r4, r0 cmp r5, #3 beq _021ED90C @@ -23972,7 +23978,7 @@ _021ED90C: ldr r0, _021ED9C0 ; =0x020FF590 ldr r1, _021ED9C4 ; =0x020FF598 mov r3, #0x200000 - bl FUN_021ED2FC + bl MOD04_021ED2FC add sp, sp, #4 ldmia sp!, {r4, r5, pc} _021ED938: @@ -23993,7 +23999,7 @@ _021ED938: add r1, r1, ip sub r2, r2, #1 mov r3, #0x300000 - bl FUN_021ED2FC + bl MOD04_021ED2FC add sp, sp, #4 ldmia sp!, {r4, r5, pc} _021ED988: @@ -24008,7 +24014,7 @@ _021ED988: ldrsb r2, [r2, #0x11] ldr r0, _021ED9C0 ; =0x020FF590 mov r3, #0x300000 - bl FUN_021ED2FC + bl MOD04_021ED2FC add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 @@ -24017,12 +24023,12 @@ _021ED9C4: .word 0x020FF598 _021ED9C8: .word 0x00000474 _021ED9CC: .word 0x0000047C - arm_func_start FUN_021ED9D0 -FUN_021ED9D0: ; 0x021ED9D0 + arm_func_start MOD04_021ED9D0 +MOD04_021ED9D0: ; 0x021ED9D0 stmdb sp!, {r4, lr} mov r4, r0 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 add r0, r0, #0xd00 ldrh r2, [r0, #0x16] cmp r2, #0 @@ -24049,12 +24055,12 @@ _021EDA24: mvn r0, #0 ldmia sp!, {r4, pc} - arm_func_start FUN_021EDA3C -FUN_021EDA3C: ; 0x021EDA3C + arm_func_start MOD04_021EDA3C +MOD04_021EDA3C: ; 0x021EDA3C stmdb sp!, {r4, lr} mov r4, r0 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 add r0, r0, #0xd00 cmp r4, #0xd movhi r4, #0xd @@ -24065,14 +24071,14 @@ FUN_021EDA3C: ; 0x021EDA3C strh r1, [r0, #0x16] ldmia sp!, {r4, pc} - arm_func_start FUN_021EDA70 -FUN_021EDA70: ; 0x021EDA70 + arm_func_start MOD04_021EDA70 +MOD04_021EDA70: ; 0x021EDA70 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 mov r5, r0 - bl FUN_021EB720 + bl MOD04_021EB720 mov r4, r0 bl FUN_020A71F8 cmp r4, #2 @@ -24080,7 +24086,7 @@ FUN_021EDA70: ; 0x021EDA70 cmp r0, #3 bne _021EDAB0 mov r0, r5 - bl FUN_021ED884 + bl MOD04_021ED884 mov r4, r0 b _021EDB38 _021EDAB0: @@ -24088,7 +24094,7 @@ _021EDAB0: bne _021EDACC mov r0, r5 mov r1, r4 - bl FUN_021ED388 + bl MOD04_021ED388 mov r4, r0 b _021EDB38 _021EDACC: @@ -24099,42 +24105,42 @@ _021EDACC: _021EDADC: mov r0, r5 mov r1, r4 - bl FUN_021ED388 + bl MOD04_021ED388 mov r4, r0 cmp r4, #7 beq _021EDB38 cmp r4, #3 bne _021EDB0C mov r0, r5 - bl FUN_021ED7E0 + bl MOD04_021ED7E0 mov r4, r0 b _021EDB38 _021EDB0C: cmp r4, #4 bne _021EDB24 mov r0, r5 - bl FUN_021ED658 + bl MOD04_021ED658 mov r4, r0 b _021EDB38 _021EDB24: cmp r4, #5 bne _021EDB38 mov r0, r5 - bl FUN_021ED538 + bl MOD04_021ED538 mov r4, r0 _021EDB38: mov r0, r4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EDB44 -FUN_021EDB44: ; 0x021EDB44 + arm_func_start MOD04_021EDB44 +MOD04_021EDB44: ; 0x021EDB44 stmdb sp!, {r4, lr} sub sp, sp, #0x10 bl FUN_020A71F8 mov r4, r0 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 cmp r4, #1 bne _021EDBB0 ldrb r1, [r0, #0xd0a] @@ -24143,8 +24149,8 @@ FUN_021EDB44: ; 0x021EDB44 str r0, [sp, #4] str r0, [sp, #8] str r0, [sp, #0xc] - bl FUN_021ED17C - ldr r1, _021EDBC8 ; =FUN_021EC44C + bl MOD04_021ED17C + ldr r1, _021EDBC8 ; =MOD04_021EC44C add r0, sp, #0 bl FUN_020A7BD4 cmp r0, #1 @@ -24153,7 +24159,7 @@ FUN_021EDB44: ; 0x021EDB44 blt _021EDBBC _021EDB9C: mov r0, #1 - bl FUN_021EB6F4 + bl MOD04_021EB6F4 add sp, sp, #0x10 mov r0, #0x11 ldmia sp!, {r4, pc} @@ -24166,10 +24172,10 @@ _021EDBBC: add sp, sp, #0x10 ldmia sp!, {r4, pc} .align 2, 0 -_021EDBC8: .word FUN_021EC44C +_021EDBC8: .word MOD04_021EC44C - arm_func_start FUN_021EDBCC -FUN_021EDBCC: ; 0x021EDBCC + arm_func_start MOD04_021EDBCC +MOD04_021EDBCC: ; 0x021EDBCC stmdb sp!, {r4, lr} sub sp, sp, #8 mov r4, r0 @@ -24177,7 +24183,7 @@ FUN_021EDBCC: ; 0x021EDBCC cmp r0, #6 addhs sp, sp, #8 ldmhsia sp!, {r4, pc} - bl FUN_021EB6AC + bl MOD04_021EB6AC add r4, r4, r0, lsl #8 ldrb r0, [r4, #0xc0] ldrb r2, [r4, #0xc8] @@ -24194,10 +24200,10 @@ FUN_021EDBCC: ; 0x021EDBCC addeq sp, sp, #8 ldmeqia sp!, {r4, pc} add r0, r4, #0xc8 - bl FUN_021EDCA8 + bl MOD04_021EDCA8 str r0, [sp] add r0, r4, #0xcc - bl FUN_021EDCA8 + bl MOD04_021EDCA8 str r0, [sp, #4] add r0, sp, #0 add r1, sp, #4 @@ -24205,8 +24211,8 @@ FUN_021EDBCC: ; 0x021EDBCC add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_start FUN_021EDC54 -FUN_021EDC54: ; 0x021EDC54 + arm_func_start MOD04_021EDC54 +MOD04_021EDC54: ; 0x021EDC54 rsb r0, r0, #0x20 cmp r0, #0 mvn r3, #0 @@ -24231,8 +24237,8 @@ _021EDC78: orr r0, r1, r0 bx lr - arm_func_start FUN_021EDCA8 -FUN_021EDCA8: ; 0x021EDCA8 + arm_func_start MOD04_021EDCA8 +MOD04_021EDCA8: ; 0x021EDCA8 ldrb r1, [r0] ldrb r2, [r0, #1] mov r3, #0 @@ -24255,8 +24261,8 @@ FUN_021EDCA8: ; 0x021EDCA8 orr r0, r1, r0 bx lr - arm_func_start FUN_021EDCFC -FUN_021EDCFC: ; 0x021EDCFC + arm_func_start MOD04_021EDCFC +MOD04_021EDCFC: ; 0x021EDCFC stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r4, r2 @@ -24272,7 +24278,7 @@ FUN_021EDCFC: ; 0x021EDCFC ldrb r0, [r5, #0xd0d] cmp r0, #6 ldmhsia sp!, {r4, r5, r6, pc} - bl FUN_021EB6AC + bl MOD04_021EB6AC add r5, r5, r0, lsl #8 ldrb r0, [r5, #0xc0] cmp r0, #0 @@ -24280,19 +24286,19 @@ FUN_021EDCFC: ; 0x021EDCFC mov r0, #0 str r0, [r4, #0xc] add r0, r5, #0xc0 - bl FUN_021EDCA8 + bl MOD04_021EDCA8 str r0, [r4, #0x10] ldrb r0, [r5, #0xd0] - bl FUN_021EDC54 + bl MOD04_021EDC54 str r0, [r4, #0x14] add r0, r5, #0xc4 - bl FUN_021EDCA8 + bl MOD04_021EDCA8 str r0, [r4, #0x18] add r0, r5, #0xc8 - bl FUN_021EDCA8 + bl MOD04_021EDCA8 str r0, [r4, #0x1c] add r0, r5, #0xcc - bl FUN_021EDCA8 + bl MOD04_021EDCA8 str r0, [r4, #0x20] ldmia sp!, {r4, r5, r6, pc} _021EDD94: @@ -24308,8 +24314,8 @@ _021EDD94: .align 2, 0 _021EDDB8: .word 0x0220BB2C - arm_func_start FUN_021EDDBC -FUN_021EDDBC: ; 0x021EDDBC + arm_func_start MOD04_021EDDBC +MOD04_021EDDBC: ; 0x021EDDBC stmdb sp!, {lr} sub sp, sp, #4 bl FUN_02099A94 @@ -24332,35 +24338,35 @@ _021EDDFC: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EDE08 -FUN_021EDE08: ; 0x021EDE08 + arm_func_start MOD04_021EDE08 +MOD04_021EDE08: ; 0x021EDE08 stmdb sp!, {lr} sub sp, sp, #4 ldrb r0, [r0, #0xd0d] - bl FUN_021EB6BC + bl MOD04_021EB6BC mov r0, #0x10 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EDE24 -FUN_021EDE24: ; 0x021EDE24 + arm_func_start MOD04_021EDE24 +MOD04_021EDE24: ; 0x021EDE24 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r0, #1 - bl FUN_021EB798 + bl MOD04_021EB798 mov r4, r0 - bl FUN_021DC7AC + bl MOD04_021DC7AC movs r5, r0 beq _021EDE88 ldrb r0, [r6, #0xd0d] - bl FUN_021EB6AC + bl MOD04_021EB6AC ldrb r1, [r4, #0x15] cmp r1, r0 bne _021EDE60 - bl FUN_021DC794 + bl MOD04_021DC794 str r0, [r4, #0x10] _021EDE60: - bl FUN_021DC870 + bl MOD04_021DC870 cmp r5, #0xb moveq r0, #0xf ldmeqia sp!, {r4, r5, r6, pc} @@ -24374,32 +24380,32 @@ _021EDE88: mov r0, #0xe ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021EDE90 -FUN_021EDE90: ; 0x021EDE90 + arm_func_start MOD04_021EDE90 +MOD04_021EDE90: ; 0x021EDE90 stmdb sp!, {lr} sub sp, sp, #4 mov r0, #8 - bl FUN_021EB798 - bl FUN_021DC970 + bl MOD04_021EB798 + bl MOD04_021DC970 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0xe ldmeqia sp!, {pc} mov r0, #3 - bl FUN_021EB6F4 + bl MOD04_021EB6F4 mov r0, #0x11 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EDEC8 -FUN_021EDEC8: ; 0x021EDEC8 + arm_func_start MOD04_021EDEC8 +MOD04_021EDEC8: ; 0x021EDEC8 stmdb sp!, {r4, lr} mov r4, r0 bl FUN_0209A60C cmp r0, #0 beq _021EDF00 mov r0, r4 - bl FUN_021EDBCC + bl MOD04_021EDBCC ldrb r0, [r4, #0xd0c] mov r0, r0, lsl #0x1a mov r0, r0, lsr #0x1e @@ -24432,20 +24438,20 @@ _021EDF00: .align 2, 0 _021EDF54: .word 0x01FF6210 - arm_func_start FUN_021EDF58 -FUN_021EDF58: ; 0x021EDF58 + arm_func_start MOD04_021EDF58 +MOD04_021EDF58: ; 0x021EDF58 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r0, #1 - bl FUN_021EB798 + bl MOD04_021EB798 mov r5, r0 mov r0, #4 - bl FUN_021EB798 + bl MOD04_021EB798 mov r4, r0 mov r0, r5 mov r1, r6 mov r2, r4 - bl FUN_021EDCFC + bl MOD04_021EDCFC ldr r1, _021EDFB8 ; =0x021C8CC4 mov r2, #4 mov r0, r4 @@ -24455,20 +24461,20 @@ FUN_021EDF58: ; 0x021EDF58 moveq r0, #0xc ldmeqia sp!, {r4, r5, r6, pc} mov r0, #2 - bl FUN_021EB6F4 + bl MOD04_021EB6F4 mov r0, #0x11 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EDFB8: .word 0x021C8CC4 - arm_func_start FUN_021EDFBC -FUN_021EDFBC: ; 0x021EDFBC + arm_func_start MOD04_021EDFBC +MOD04_021EDFBC: ; 0x021EDFBC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 - bl FUN_021EB720 + bl MOD04_021EB720 mov r5, r0 mov r0, #0x10 - bl FUN_021EB798 + bl MOD04_021EB798 mov r4, r0 bl FUN_020A71F8 cmp r0, #9 @@ -24486,30 +24492,30 @@ _021EDFF4: ; jump table b _021EE048 ; case 5 _021EE00C: mov r0, r4 - bl FUN_021EDF58 + bl MOD04_021EDF58 mov r5, r0 b _021EE0B4 _021EE01C: mov r0, r4 - bl FUN_021EDEC8 + bl MOD04_021EDEC8 mov r5, r0 b _021EE0B4 _021EE02C: - bl FUN_021EDE90 + bl MOD04_021EDE90 mov r5, r0 b _021EE0B4 _021EE038: mov r0, r4 - bl FUN_021EDE24 + bl MOD04_021EDE24 mov r5, r0 b _021EE0B4 _021EE048: mov r0, r4 - bl FUN_021EDE08 + bl MOD04_021EDE08 mov r5, r0 b _021EE0B4 _021EE058: - bl FUN_021EDDBC + bl MOD04_021EDDBC mov r5, r0 b _021EE0B4 _021EE064: @@ -24520,16 +24526,16 @@ _021EE064: cmp r5, #0xf bne _021EE0A0 mov r0, r4 - bl FUN_021EDE08 + bl MOD04_021EDE08 mov r5, r0 b _021EE0B4 _021EE08C: - bl FUN_021EDDBC + bl MOD04_021EDDBC mov r5, r0 b _021EE0B4 _021EE098: - bl FUN_021DC7F0 - bl FUN_021DC870 + bl MOD04_021DC7F0 + bl MOD04_021DC870 _021EE0A0: ldrb r0, [r4, #0xd13] mov r1, #2 @@ -24541,8 +24547,8 @@ _021EE0B4: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EE0C0 -FUN_021EE0C0: ; 0x021EE0C0 + arm_func_start MOD04_021EE0C0 +MOD04_021EE0C0: ; 0x021EE0C0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x1c mov r4, #3 @@ -24574,7 +24580,7 @@ _021EE120: _021EE128: add r0, r7, r6 ldrb r0, [sl, r0] - bl FUN_021EE234 + bl MOD04_021EE234 rsb r2, r6, #3 mov r1, #6 mul r1, r2, r1 @@ -24612,7 +24618,7 @@ _021EE1B0: ldr r0, [sp] add r0, r0, r4 ldrb r0, [sl, r0] - bl FUN_021EE234 + bl MOD04_021EE234 rsb r1, r4, #3 mul r2, r1, r6 orr r5, r5, r0, lsl r2 @@ -24646,8 +24652,8 @@ _021EE228: add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_021EE234 -FUN_021EE234: ; 0x021EE234 + arm_func_start MOD04_021EE234 +MOD04_021EE234: ; 0x021EE234 cmp r0, #0x41 blo _021EE248 cmp r0, #0x5a @@ -24680,8 +24686,8 @@ _021EE278: rsb r0, r0, #0 bx lr - arm_func_start FUN_021EE2A4 -FUN_021EE2A4: ; 0x021EE2A4 + arm_func_start MOD04_021EE2A4 +MOD04_021EE2A4: ; 0x021EE2A4 stmdb sp!, {r4, lr} sub sp, sp, #0x10 mov r4, r1 @@ -24805,8 +24811,8 @@ _021EE460: .word 0x0220BB84 _021EE464: .word 0x0220D4E0 _021EE468: .word 0x0220BB94 - arm_func_start FUN_021EE46C -FUN_021EE46C: ; 0x021EE46C + arm_func_start MOD04_021EE46C +MOD04_021EE46C: ; 0x021EE46C stmdb sp!, {r4, r5, lr} sub sp, sp, #0x6c mov r5, r0 @@ -24827,8 +24833,8 @@ FUN_021EE46C: ; 0x021EE46C add sp, sp, #0x6c ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EE4B8 -FUN_021EE4B8: ; 0x021EE4B8 + arm_func_start MOD04_021EE4B8 +MOD04_021EE4B8: ; 0x021EE4B8 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x1c ldr lr, _021EE5AC ; =0x0220BBA4 @@ -24845,7 +24851,7 @@ _021EE4D0: mov r1, r4 mov r2, #0x20 mov r3, #0x18 - bl FUN_021EE0C0 + bl MOD04_021EE0C0 mov r3, #0 ldr r0, _021EE5B0 ; =0x0220D4E4 _021EE500: @@ -24901,16 +24907,16 @@ _021EE5AC: .word 0x0220BBA4 _021EE5B0: .word 0x0220D4E4 _021EE5B4: .word 0x0220D4D8 - arm_func_start FUN_021EE5B8 -FUN_021EE5B8: ; 0x021EE5B8 - ldr ip, _021EE5C4 ; =FUN_021EE2A4 + arm_func_start MOD04_021EE5B8 +MOD04_021EE5B8: ; 0x021EE5B8 + ldr ip, _021EE5C4 ; =MOD04_021EE2A4 add r0, r0, #0xc bx ip .align 2, 0 -_021EE5C4: .word FUN_021EE2A4 +_021EE5C4: .word MOD04_021EE2A4 - arm_func_start FUN_021EE5C8 -FUN_021EE5C8: ; 0x021EE5C8 + arm_func_start MOD04_021EE5C8 +MOD04_021EE5C8: ; 0x021EE5C8 stmdb sp!, {lr} sub sp, sp, #4 ldr r1, _021EE5F0 ; =0x0220D540 @@ -24924,13 +24930,13 @@ FUN_021EE5C8: ; 0x021EE5C8 .align 2, 0 _021EE5F0: .word 0x0220D540 - arm_func_start FUN_021EE5F4 -FUN_021EE5F4: ; 0x021EE5F4 + arm_func_start MOD04_021EE5F4 +MOD04_021EE5F4: ; 0x021EE5F4 stmdb sp!, {r4, lr} sub sp, sp, #0x18 mov r4, r1 add r1, sp, #0 - bl FUN_021EE4B8 + bl MOD04_021EE4B8 ldr r1, _021EE63C ; =0x0220D54C add r0, sp, #0 mov r2, #8 @@ -24947,25 +24953,25 @@ FUN_021EE5F4: ; 0x021EE5F4 .align 2, 0 _021EE63C: .word 0x0220D54C - arm_func_start FUN_021EE640 -FUN_021EE640: ; 0x021EE640 + arm_func_start MOD04_021EE640 +MOD04_021EE640: ; 0x021EE640 stmdb sp!, {r4, lr} sub sp, sp, #0x18 mov r4, r1 add r1, sp, #0 - bl FUN_021EE4B8 + bl MOD04_021EE4B8 add r0, sp, #0 mov r1, r4 - bl FUN_021EE46C + bl MOD04_021EE46C add sp, sp, #0x18 ldmia sp!, {r4, pc} - arm_func_start FUN_021EE668 -FUN_021EE668: ; 0x021EE668 + arm_func_start MOD04_021EE668 +MOD04_021EE668: ; 0x021EE668 stmdb sp!, {lr} sub sp, sp, #0x1c add r1, sp, #0 - bl FUN_021EE4B8 + bl MOD04_021EE4B8 ldr r1, _021EE69C ; =0x0220D54C add r0, sp, #0 mov r2, #8 @@ -24978,8 +24984,8 @@ FUN_021EE668: ; 0x021EE668 .align 2, 0 _021EE69C: .word 0x0220D54C - arm_func_start FUN_021EE6A0 -FUN_021EE6A0: ; 0x021EE6A0 + arm_func_start MOD04_021EE6A0 +MOD04_021EE6A0: ; 0x021EE6A0 stmdb sp!, {lr} sub sp, sp, #0x5c ldr r0, _021EE7D4 ; =0x02210EE0 @@ -24993,7 +24999,7 @@ FUN_021EE6A0: ; 0x021EE6A0 streq r0, [r1] addeq sp, sp, #0x5c ldmeqia sp!, {pc} - bl FUN_021EFF2C + bl MOD04_021EFF2C cmp r0, #0 beq _021EE774 add r0, sp, #8 @@ -25005,17 +25011,17 @@ FUN_021EE6A0: ; 0x021EE6A0 ldr r0, [r0] mov r2, #0x40 mov r3, #0 - bl FUN_021EFC40 + bl MOD04_021EFC40 mov r1, r0 add r0, sp, #0x18 add r2, sp, #8 add r3, sp, #0x14 - bl FUN_021EE7DC + bl MOD04_021EE7DC cmp r0, #0 bne _021EE774 ldr r0, _021EE7D4 ; =0x02210EE0 ldr r0, [r0] - bl FUN_021EFD9C + bl MOD04_021EFD9C ldr r1, [sp, #0x14] ands r0, r1, #1 ldrne r0, _021EE7D8 ; =0x02210E5C @@ -25035,7 +25041,7 @@ _021EE764: ldr r0, [r0] ldmfd sp!, {pc} _021EE774: - bl FUN_021F025C + bl MOD04_021F025C ldr r1, _021EE7D4 ; =0x02210EE0 ldr r2, [r1, #0x50] add r2, r2, #0x7d0 @@ -25045,14 +25051,14 @@ _021EE774: cmp r0, #1 bne _021EE7B4 ldr r0, [r1] - bl FUN_021EFD9C + bl MOD04_021EFD9C ldr r1, _021EE7D8 ; =0x02210E5C mov r0, #1 str r0, [r1] add sp, sp, #0x5c ldmfd sp!, {pc} _021EE7B4: - bl FUN_021EE990 + bl MOD04_021EE990 ldr r0, _021EE7D4 ; =0x02210EE0 ldr r1, [r0, #0x54] add r1, r1, #1 @@ -25065,8 +25071,8 @@ _021EE7C8: _021EE7D4: .word 0x02210EE0 _021EE7D8: .word 0x02210E5C - arm_func_start FUN_021EE7DC -FUN_021EE7DC: ; 0x021EE7DC + arm_func_start MOD04_021EE7DC +MOD04_021EE7DC: ; 0x021EE7DC stmdb sp!, {r4, r5, r6, lr} mov r5, r0 cmp r1, #7 @@ -25116,8 +25122,8 @@ _021EE88C: .word 0x02210EE8 _021EE890: .word 0x02210EE0 _021EE894: .word 0x0220D558 - arm_func_start FUN_021EE898 -FUN_021EE898: ; 0x021EE898 + arm_func_start MOD04_021EE898 +MOD04_021EE898: ; 0x021EE898 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x44 mov r4, r0 @@ -25127,7 +25133,7 @@ FUN_021EE898: ; 0x021EE898 ldr r0, _021EE978 ; =0x02210EE0 mvn r1, #0 str r1, [r0] - bl FUN_021F024C + bl MOD04_021F024C ldr r0, _021EE97C ; =0x02210E60 ldrsb r5, [r0] cmp r5, #0 @@ -25142,14 +25148,14 @@ _021EE8E0: ldr r1, _021EE984 ; =0x00006CFC ldr r2, _021EE988 ; =0x02210EE4 addeq r0, sp, #0 - bl FUN_021EE9E0 + bl MOD04_021EE9E0 cmp r0, #0 addeq sp, sp, #0x44 ldmeqia sp!, {r4, r5, pc} mov r0, #2 mov r1, r0 mov r2, #0 - bl FUN_021EFDB8 + bl MOD04_021EFDB8 ldr r2, _021EE978 ; =0x02210EE0 mvn r1, #0 cmp r0, r1 @@ -25168,7 +25174,7 @@ _021EE8E0: ldr r0, _021EE978 ; =0x02210EE0 add r1, r5, #6 str r1, [r0, #0x4c] - bl FUN_021EE990 + bl MOD04_021EE990 ldr r0, _021EE978 ; =0x02210EE0 mov r1, #0 str r1, [r0, #0x54] @@ -25183,8 +25189,8 @@ _021EE984: .word 0x00006CFC _021EE988: .word 0x02210EE4 _021EE98C: .word 0x02210EF1 - arm_func_start FUN_021EE990 -FUN_021EE990: ; 0x021EE990 + arm_func_start MOD04_021EE990 +MOD04_021EE990: ; 0x021EE990 stmdb sp!, {lr} sub sp, sp, #0xc ldr r1, _021EE9D4 ; =0x02210EE4 @@ -25196,8 +25202,8 @@ FUN_021EE990: ; 0x021EE990 ldr r2, [r1, #0x4c] ldr r1, _021EE9DC ; =0x02210EEC mov r3, #0 - bl FUN_021EFBD4 - bl FUN_021F025C + bl MOD04_021EFBD4 + bl MOD04_021F025C ldr r1, _021EE9D8 ; =0x02210EE0 str r0, [r1, #0x50] add sp, sp, #0xc @@ -25207,8 +25213,8 @@ _021EE9D4: .word 0x02210EE4 _021EE9D8: .word 0x02210EE0 _021EE9DC: .word 0x02210EEC - arm_func_start FUN_021EE9E0 -FUN_021EE9E0: ; 0x021EE9E0 + arm_func_start MOD04_021EE9E0 +MOD04_021EE9E0: ; 0x021EE9E0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r1, r1, lsl #0x10 @@ -25223,7 +25229,7 @@ FUN_021EE9E0: ; 0x021EE9E0 orr r1, r2, r1 strh r1, [r4, #2] mov r5, r0 - bl FUN_021EFB38 + bl MOD04_021EFB38 str r0, [r4, #4] ldr r1, [r4, #4] mvn r0, #0 @@ -25244,8 +25250,8 @@ _021EEA58: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EEA64 -FUN_021EEA64: ; 0x021EEA64 + arm_func_start MOD04_021EEA64 +MOD04_021EEA64: ; 0x021EEA64 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 ldr r7, [sp, #0x2c] @@ -25276,8 +25282,8 @@ _021EEAC4: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_021EEAD0 -FUN_021EEAD0: ; 0x021EEAD0 + arm_func_start MOD04_021EEAD0 +MOD04_021EEAD0: ; 0x021EEAD0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} mov r8, r2 mov sl, r0 @@ -25303,26 +25309,26 @@ _021EEB20: mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_start FUN_021EEB28 -FUN_021EEB28: ; 0x021EEB28 + arm_func_start MOD04_021EEB28 +MOD04_021EEB28: ; 0x021EEB28 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 - bl FUN_021EF06C + bl MOD04_021EF06C subs r4, r0, #1 addmi sp, sp, #4 ldmmiia sp!, {r4, r5, pc} _021EEB44: mov r0, r5 mov r1, r4 - bl FUN_021EED84 + bl MOD04_021EED84 subs r4, r4, #1 bpl _021EEB44 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EEB60 -FUN_021EEB60: ; 0x021EEB60 + arm_func_start MOD04_021EEB60 +MOD04_021EEB60: ; 0x021EEB60 stmdb sp!, {r4, r5, r6, r7, r8, lr} movs r7, r1 mov r8, r0 @@ -25340,7 +25346,7 @@ _021EEB88: _021EEB94: mov r0, r8 mov r1, r5 - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r1, r6 mov r4, r0 blx r7 @@ -25357,8 +25363,8 @@ _021EEBC8: .word 0x0220D580 _021EEBCC: .word 0x0220D584 _021EEBD0: .word 0x00000121 - arm_func_start FUN_021EEBD4 -FUN_021EEBD4: ; 0x021EEBD4 + arm_func_start MOD04_021EEBD4 +MOD04_021EEBD4: ; 0x021EEBD4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 movs r6, r1 @@ -25378,7 +25384,7 @@ _021EEC00: _021EEC10: mov r0, r7 mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r1, r5 blx r6 subs r4, r4, #1 @@ -25389,8 +25395,8 @@ _021EEC10: _021EEC34: .word 0x0220D580 _021EEC38: .word 0x0220D584 - arm_func_start FUN_021EEC3C -FUN_021EEC3C: ; 0x021EEC3C + arm_func_start MOD04_021EEC3C +MOD04_021EEC3C: ; 0x021EEC3C stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x10 mov ip, #1 @@ -25412,7 +25418,7 @@ _021EEC78: cmp r1, #0 beq _021EECB0 mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC add r1, sp, #8 str r5, [sp] str r1, [sp, #4] @@ -25420,17 +25426,17 @@ _021EEC78: ldr r3, [r7, #8] mov r0, r6 sub r2, r8, r4 - bl FUN_021EEA64 + bl MOD04_021EEA64 b _021EECD0 _021EECB0: mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC str r5, [sp] mov r1, r0 ldr r3, [r7, #8] mov r0, r6 sub r2, r8, r4 - bl FUN_021EEAD0 + bl MOD04_021EEAD0 _021EECD0: cmp r0, #0 beq _021EECFC @@ -25448,8 +25454,8 @@ _021EECFC: add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, pc} - arm_func_start FUN_021EED08 -FUN_021EED08: ; 0x021EED08 + arm_func_start MOD04_021EED08 +MOD04_021EED08: ; 0x021EED08 ldr ip, _021EED24 ; =0x020E1888 mov r2, r0 mov r3, r1 @@ -25460,8 +25466,8 @@ FUN_021EED08: ; 0x021EED08 .align 2, 0 _021EED24: .word 0x020E1888 - arm_func_start FUN_021EED28 -FUN_021EED28: ; 0x021EED28 + arm_func_start MOD04_021EED28 +MOD04_021EED28: ; 0x021EED28 stmdb sp!, {r4, r5, r6, lr} movs r4, r2 mov r6, r0 @@ -25479,18 +25485,18 @@ _021EED48: _021EED5C: mov r0, r6 mov r1, r4 - bl FUN_021EF240 + bl MOD04_021EF240 mov r0, r6 mov r1, r5 mov r2, r4 - bl FUN_021EF1B8 + bl MOD04_021EF1B8 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EED7C: .word 0x0220D590 _021EED80: .word 0x0220D584 - arm_func_start FUN_021EED84 -FUN_021EED84: ; 0x021EED84 + arm_func_start MOD04_021EED84 +MOD04_021EED84: ; 0x021EED84 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r4, r1 @@ -25508,18 +25514,18 @@ _021EEDA4: _021EEDB8: mov r0, r5 mov r1, r4 - bl FUN_021EF240 + bl MOD04_021EF240 mov r0, r5 mov r1, r4 - bl FUN_021EEDE0 + bl MOD04_021EEDE0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 _021EEDD8: .word 0x0220D590 _021EEDDC: .word 0x0220D584 - arm_func_start FUN_021EEDE0 -FUN_021EEDE0: ; 0x021EEDE0 + arm_func_start MOD04_021EEDE0 +MOD04_021EEDE0: ; 0x021EEDE0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 movs r7, r1 @@ -25541,11 +25547,11 @@ _021EEE14: bge _021EEE58 mov r0, r4 mov r1, r7 - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r5, r0 mov r0, r4 add r1, r7, #1 - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r1, r0 ldr r3, [r4, #8] sub r0, r6, r7 @@ -25562,8 +25568,8 @@ _021EEE58: _021EEE6C: .word 0x0220D590 _021EEE70: .word 0x0220D584 - arm_func_start FUN_021EEE74 -FUN_021EEE74: ; 0x021EEE74 + arm_func_start MOD04_021EEE74 +MOD04_021EEE74: ; 0x021EEE74 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x10 movs r4, r2 @@ -25583,7 +25589,7 @@ _021EEEA0: ldr r2, [r6] ldr r3, [r6, #8] mov r0, r5 - bl FUN_021EEA64 + bl MOD04_021EEA64 ldr r2, [r6, #0x14] ldr r1, [r6, #8] sub r0, r0, r2 @@ -25591,15 +25597,15 @@ _021EEEA0: mov r2, r0 mov r0, r6 mov r1, r5 - bl FUN_021EEEF0 + bl MOD04_021EEEF0 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EEEE8: .word 0x0220D5B0 _021EEEEC: .word 0x0220D584 - arm_func_start FUN_021EEEF0 -FUN_021EEEF0: ; 0x021EEEF0 + arm_func_start MOD04_021EEEF0 +MOD04_021EEEF0: ; 0x021EEEF0 stmdb sp!, {r4, r5, r6, r7, r8, lr} movs r4, r2 mov r6, r0 @@ -25620,7 +25626,7 @@ _021EEF24: cmp r1, r0 bne _021EEF3C mov r0, r6 - bl FUN_021EF1E4 + bl MOD04_021EF1E4 _021EEF3C: ldr r0, [r6] add r0, r0, #1 @@ -25631,11 +25637,11 @@ _021EEF3C: bge _021EEF8C mov r0, r6 add r1, r4, #1 - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r7, r0 mov r0, r6 mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r1, r0 ldr r3, [r6, #8] sub r0, r8, r4 @@ -25646,14 +25652,14 @@ _021EEF8C: mov r0, r6 mov r1, r5 mov r2, r4 - bl FUN_021EF1B8 + bl MOD04_021EF1B8 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021EEFA0: .word 0x0220D5BC _021EEFA4: .word 0x0220D584 - arm_func_start FUN_021EEFA8 -FUN_021EEFA8: ; 0x021EEFA8 + arm_func_start MOD04_021EEFA8 +MOD04_021EEFA8: ; 0x021EEFA8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r5, r0 @@ -25671,15 +25677,15 @@ _021EEFD0: ldr r2, [r5] mov r0, r5 mov r1, r4 - bl FUN_021EEEF0 + bl MOD04_021EEEF0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 _021EEFF4: .word 0x0220D5DC _021EEFF8: .word 0x0220D584 - arm_func_start FUN_021EEFFC -FUN_021EEFFC: ; 0x021EEFFC + arm_func_start MOD04_021EEFFC +MOD04_021EEFFC: ; 0x021EEFFC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r4, r1 @@ -25714,13 +25720,13 @@ _021EF050: _021EF064: .word 0x0220D590 _021EF068: .word 0x0220D584 - arm_func_start FUN_021EF06C -FUN_021EF06C: ; 0x021EF06C + arm_func_start MOD04_021EF06C +MOD04_021EF06C: ; 0x021EF06C ldr r0, [r0] bx lr - arm_func_start FUN_021EF074 -FUN_021EF074: ; 0x021EF074 + arm_func_start MOD04_021EF074 +MOD04_021EF074: ; 0x021EF074 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r5, r0 @@ -25738,31 +25744,31 @@ _021EF098: _021EF0A8: mov r0, r5 mov r1, r4 - bl FUN_021EF240 + bl MOD04_021EF240 ldr r0, [r5] add r4, r4, #1 cmp r4, r0 blt _021EF0A8 _021EF0C4: ldr r0, [r5, #0x14] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, r5 - bl FUN_021DD82C + bl MOD04_021DD82C add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 _021EF0DC: .word 0x0220D5DC _021EF0E0: .word 0x0220D584 - arm_func_start FUN_021EF0E4 -FUN_021EF0E4: ; 0x021EF0E4 + arm_func_start MOD04_021EF0E4 +MOD04_021EF0E4: ; 0x021EF0E4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r0, #0x18 mov r6, r1 mov r5, r2 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 bne _021EF11C ldr r0, _021EF1A8 ; =0x0220D5DC @@ -25792,7 +25798,7 @@ _021EF138: beq _021EF198 ldr r0, [r4, #8] mul r0, r1, r0 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [r4, #0x14] ldr r0, [r4, #0x14] cmp r0, #0 @@ -25815,22 +25821,22 @@ _021EF1AC: .word 0x0220D584 _021EF1B0: .word 0x0220D5E4 _021EF1B4: .word 0x0220D5F0 - arm_func_start FUN_021EF1B8 -FUN_021EF1B8: ; 0x021EF1B8 + arm_func_start MOD04_021EF1B8 +MOD04_021EF1B8: ; 0x021EF1B8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r1 mov r5, r0 mov r1, r2 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r2, [r5, #8] mov r1, r4 bl memcpy add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EF1E4 -FUN_021EF1E4: ; 0x021EF1E4 + arm_func_start MOD04_021EF1E4 +MOD04_021EF1E4: ; 0x021EF1E4 stmdb sp!, {r4, lr} mov r4, r0 ldr r1, [r4, #4] @@ -25841,7 +25847,7 @@ FUN_021EF1E4: ; 0x021EF1E4 ldr r1, [r4, #8] ldr r0, [r4, #0x14] mul r1, r2, r1 - bl FUN_021DD844 + bl MOD04_021DD844 str r0, [r4, #0x14] ldr r0, [r4, #0x14] cmp r0, #0 @@ -25856,20 +25862,20 @@ FUN_021EF1E4: ; 0x021EF1E4 _021EF238: .word 0x0220D5F0 _021EF23C: .word 0x0220D584 - arm_func_start FUN_021EF240 -FUN_021EF240: ; 0x021EF240 + arm_func_start MOD04_021EF240 +MOD04_021EF240: ; 0x021EF240 stmdb sp!, {r4, lr} mov r4, r0 ldr r2, [r4, #0x10] cmp r2, #0 ldmeqia sp!, {r4, pc} - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r1, [r4, #0x10] blx r1 ldmia sp!, {r4, pc} - arm_func_start FUN_021EF264 -FUN_021EF264: ; 0x021EF264 + arm_func_start MOD04_021EF264 +MOD04_021EF264: ; 0x021EF264 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 movs r6, r1 @@ -25891,7 +25897,7 @@ _021EF2A0: mov r1, r6 ldr r0, [r0, r4, lsl #2] mov r2, r5 - bl FUN_021EEB60 + bl MOD04_021EEB60 cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {r4, r5, r6, r7, pc} @@ -25907,8 +25913,8 @@ _021EF2D0: _021EF2DC: .word 0x0220D5FC _021EF2E0: .word 0x0220D600 - arm_func_start FUN_021EF2E4 -FUN_021EF2E4: ; 0x021EF2E4 + arm_func_start MOD04_021EF2E4 +MOD04_021EF2E4: ; 0x021EF2E4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 movs r6, r1 @@ -25931,7 +25937,7 @@ _021EF324: mov r1, r6 ldr r0, [r0, r4, lsl #2] mov r2, r5 - bl FUN_021EEBD4 + bl MOD04_021EEBD4 ldr r0, [r7, #4] add r4, r4, #1 cmp r4, r0 @@ -25942,8 +25948,8 @@ _021EF324: _021EF350: .word 0x0220D5FC _021EF354: .word 0x0220D600 - arm_func_start FUN_021EF358 -FUN_021EF358: ; 0x021EF358 + arm_func_start MOD04_021EF358 +MOD04_021EF358: ; 0x021EF358 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 movs r6, r0 @@ -25970,7 +25976,7 @@ _021EF380: ldr r0, [r1, r4, lsl #2] ldr r2, [r6, #0x10] mov r1, r5 - bl FUN_021EEC3C + bl MOD04_021EEC3C mov r1, r0 mvn r0, #0 cmp r1, r0 @@ -25979,15 +25985,15 @@ _021EF380: ldmeqia sp!, {r4, r5, r6, pc} ldr r0, [r6] ldr r0, [r0, r4, lsl #2] - bl FUN_021EEFFC + bl MOD04_021EEFFC add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EF3EC: .word 0x0220D60C _021EF3F0: .word 0x0220D600 - arm_func_start FUN_021EF3F4 -FUN_021EF3F4: ; 0x021EF3F4 + arm_func_start MOD04_021EF3F4 +MOD04_021EF3F4: ; 0x021EF3F4 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 movs r6, r0 @@ -26014,7 +26020,7 @@ _021EF41C: ldr r0, [r1, r4, lsl #2] ldr r2, [r6, #0x10] mov r1, r5 - bl FUN_021EEC3C + bl MOD04_021EEC3C mov r1, r0 mvn r0, #0 cmp r1, r0 @@ -26023,7 +26029,7 @@ _021EF41C: ldmeqia sp!, {r4, r5, r6, pc} ldr r0, [r6] ldr r0, [r0, r4, lsl #2] - bl FUN_021EED84 + bl MOD04_021EED84 mov r0, #1 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} @@ -26031,8 +26037,8 @@ _021EF41C: _021EF48C: .word 0x0220D60C _021EF490: .word 0x0220D600 - arm_func_start FUN_021EF494 -FUN_021EF494: ; 0x021EF494 + arm_func_start MOD04_021EF494 +MOD04_021EF494: ; 0x021EF494 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 movs r6, r0 @@ -26058,7 +26064,7 @@ _021EF4BC: ldr r0, [r1, r4, lsl #2] ldr r2, [r6, #0x10] mov r1, r5 - bl FUN_021EEC3C + bl MOD04_021EEC3C mov r2, r0 mvn r0, #0 cmp r2, r0 @@ -26066,22 +26072,22 @@ _021EF4BC: ldr r0, [r6] mov r1, r5 ldr r0, [r0, r4, lsl #2] - bl FUN_021EEFA8 + bl MOD04_021EEFA8 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} _021EF520: ldr r0, [r6] mov r1, r5 ldr r0, [r0, r4, lsl #2] - bl FUN_021EED28 + bl MOD04_021EED28 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021EF538: .word 0x0220D60C _021EF53C: .word 0x0220D600 - arm_func_start FUN_021EF540 -FUN_021EF540: ; 0x021EF540 + arm_func_start MOD04_021EF540 +MOD04_021EF540: ; 0x021EF540 stmdb sp!, {r4, r5, r6, lr} movs r6, r0 mov r4, #0 @@ -26102,7 +26108,7 @@ _021EF564: _021EF580: ldr r0, [r6] ldr r0, [r0, r5, lsl #2] - bl FUN_021EF06C + bl MOD04_021EF06C ldr r1, [r6, #4] add r5, r5, #1 cmp r5, r1 @@ -26115,8 +26121,8 @@ _021EF5A0: _021EF5A8: .word 0x0220D60C _021EF5AC: .word 0x0220D600 - arm_func_start FUN_021EF5B0 -FUN_021EF5B0: ; 0x021EF5B0 + arm_func_start MOD04_021EF5B0 +MOD04_021EF5B0: ; 0x021EF5B0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r5, r0 @@ -26137,24 +26143,24 @@ _021EF5D4: _021EF5F0: ldr r0, [r5] ldr r0, [r0, r4, lsl #2] - bl FUN_021EF074 + bl MOD04_021EF074 ldr r0, [r5, #4] add r4, r4, #1 cmp r4, r0 blt _021EF5F0 _021EF60C: ldr r0, [r5] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, r5 - bl FUN_021DD82C + bl MOD04_021DD82C add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 _021EF624: .word 0x0220D60C _021EF628: .word 0x0220D600 - arm_func_start FUN_021EF62C -FUN_021EF62C: ; 0x021EF62C + arm_func_start MOD04_021EF62C +MOD04_021EF62C: ; 0x021EF62C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} movs r7, r3 mov sl, r0 @@ -26194,7 +26200,7 @@ _021EF698: bl __msl_assertion_failed _021EF6B4: mov r0, #0x14 - bl FUN_021DD860 + bl MOD04_021DD860 movs r5, r0 bne _021EF6D8 ldr r0, _021EF764 ; =0x0220D60C @@ -26204,7 +26210,7 @@ _021EF6B4: bl __msl_assertion_failed _021EF6D8: mov r0, sb, lsl #2 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [r5] ldr r0, [r5] cmp r0, #0 @@ -26222,7 +26228,7 @@ _021EF710: mov r0, sl mov r1, r8 mov r2, r6 - bl FUN_021EF0E4 + bl MOD04_021EF0E4 ldr r1, [r5] str r0, [r1, r4, lsl #2] add r4, r4, #1 @@ -26245,8 +26251,8 @@ _021EF760: .word 0x0220D630 _021EF764: .word 0x0220D60C _021EF768: .word 0x0220D63C - arm_func_start FUN_021EF76C -FUN_021EF76C: ; 0x021EF76C + arm_func_start MOD04_021EF76C +MOD04_021EF76C: ; 0x021EF76C stmdb sp!, {lr} sub sp, sp, #0xc ldr ip, [sp, #0x10] @@ -26254,12 +26260,12 @@ FUN_021EF76C: ; 0x021EF76C mov r3, r2 mov r2, #4 str ip, [sp, #4] - bl FUN_021EF62C + bl MOD04_021EF62C add sp, sp, #0xc ldmfd sp!, {pc} - arm_func_start FUN_021EF794 -FUN_021EF794: ; 0x021EF794 + arm_func_start MOD04_021EF794 +MOD04_021EF794: ; 0x021EF794 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x68 mov r6, r0 @@ -26276,12 +26282,12 @@ FUN_021EF794: ; 0x021EF794 bl FUN_020A8BA4 add r0, sp, #0 mov r1, r4 - bl FUN_021EF7E0 + bl MOD04_021EF7E0 add sp, sp, #0x68 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021EF7E0 -FUN_021EF7E0: ; 0x021EF7E0 + arm_func_start MOD04_021EF7E0 +MOD04_021EF7E0: ; 0x021EF7E0 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r6, #0 mov r8, r0 @@ -26301,8 +26307,8 @@ _021EF7F8: .align 2, 0 _021EF81C: .word 0x0220D64C - arm_func_start FUN_021EF820 -FUN_021EF820: ; 0x021EF820 + arm_func_start MOD04_021EF820 +MOD04_021EF820: ; 0x021EF820 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} mov r7, r1 mov r6, r2 @@ -26332,7 +26338,7 @@ _021EF86C: movlt r2, r6 mov r0, sl mov r1, r7 - bl FUN_021EF95C + bl MOD04_021EF95C sub sb, sb, #3 cmp sb, #0 add r7, r7, #4 @@ -26393,8 +26399,8 @@ _021EF950: .word 0x0220BBC4 _021EF954: .word 0x55555556 _021EF958: .word 0x00000003 - arm_func_start FUN_021EF95C -FUN_021EF95C: ; 0x021EF95C + arm_func_start MOD04_021EF95C +MOD04_021EF95C: ; 0x021EF95C stmdb sp!, {lr} sub sp, sp, #4 cmp r2, #0 @@ -26440,23 +26446,23 @@ _021EF9AC: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EF9FC -FUN_021EF9FC: ; 0x021EF9FC + arm_func_start MOD04_021EF9FC +MOD04_021EF9FC: ; 0x021EF9FC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 subs r4, r1, r5 addeq sp, sp, #4 ldmeqia sp!, {r4, r5, pc} - bl FUN_021EFA48 + bl MOD04_021EFA48 mov r1, r4 bl _s32_div_f add r0, r1, r5 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EFA2C -FUN_021EFA2C: ; 0x021EFA2C + arm_func_start MOD04_021EFA2C +MOD04_021EFA2C: ; 0x021EFA2C cmp r0, #0 bicne r1, r0, #0x80000000 ldr r0, _021EFA44 ; =0x0220D654 @@ -26466,13 +26472,13 @@ FUN_021EFA2C: ; 0x021EFA2C .align 2, 0 _021EFA44: .word 0x0220D654 - arm_func_start FUN_021EFA48 -FUN_021EFA48: ; 0x021EFA48 + arm_func_start MOD04_021EFA48 +MOD04_021EFA48: ; 0x021EFA48 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021EFA6C ; =0x0220D654 ldr r0, [r0] - bl FUN_021EFA70 + bl MOD04_021EFA70 ldr r1, _021EFA6C ; =0x0220D654 str r0, [r1] add sp, sp, #4 @@ -26480,8 +26486,8 @@ FUN_021EFA48: ; 0x021EFA48 .align 2, 0 _021EFA6C: .word 0x0220D654 - arm_func_start FUN_021EFA70 -FUN_021EFA70: ; 0x021EFA70 + arm_func_start MOD04_021EFA70 +MOD04_021EFA70: ; 0x021EFA70 ldr r1, _021EFABC ; =0x0000FFFF ldr r2, _021EFAC0 ; =0x000041A7 mov r3, r0, lsr #0x10 @@ -26506,8 +26512,8 @@ _021EFABC: .word 0x0000FFFF _021EFAC0: .word 0x000041A7 _021EFAC4: .word 0x00007FFF - arm_func_start FUN_021EFAC8 -FUN_021EFAC8: ; 0x021EFAC8 + arm_func_start MOD04_021EFAC8 +MOD04_021EFAC8: ; 0x021EFAC8 stmdb sp!, {r4, lr} mov r4, r0 bl OS_IsTickAvailable @@ -26535,16 +26541,16 @@ _021EFB1C: .word 0x0220D678 _021EFB20: .word 0x00000667 _021EFB24: .word 0x01FF6210 - arm_func_start FUN_021EFB28 -FUN_021EFB28: ; 0x021EFB28 + arm_func_start MOD04_021EFB28 +MOD04_021EFB28: ; 0x021EFB28 ldr r0, _021EFB34 ; =0x02210F3C ldr r0, [r0] bx lr .align 2, 0 _021EFB34: .word 0x02210F3C - arm_func_start FUN_021EFB38 -FUN_021EFB38: ; 0x021EFB38 + arm_func_start MOD04_021EFB38 +MOD04_021EFB38: ; 0x021EFB38 stmdb sp!, {lr} sub sp, sp, #4 add r1, sp, #0 @@ -26555,8 +26561,8 @@ FUN_021EFB38: ; 0x021EFB38 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EFB5C -FUN_021EFB5C: ; 0x021EFB5C + arm_func_start MOD04_021EFB5C +MOD04_021EFB5C: ; 0x021EFB5C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r2 @@ -26567,21 +26573,21 @@ FUN_021EFB5C: ; 0x021EFB5C ldrb r2, [r5] mvn r1, #0 str r2, [r4] - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EFB90 -FUN_021EFB90: ; 0x021EFB90 - ldr ip, _021EFBA0 ; =FUN_021EFDD4 + arm_func_start MOD04_021EFB90 +MOD04_021EFB90: ; 0x021EFB90 + ldr ip, _021EFBA0 ; =MOD04_021EFDD4 mov r0, #0 mvn r1, #0 bx ip .align 2, 0 -_021EFBA0: .word FUN_021EFDD4 +_021EFBA0: .word MOD04_021EFDD4 - arm_func_start FUN_021EFBA4 -FUN_021EFBA4: ; 0x021EFBA4 + arm_func_start MOD04_021EFBA4 +MOD04_021EFBA4: ; 0x021EFBA4 stmdb sp!, {lr} sub sp, sp, #4 ldr r1, [sp, #8] @@ -26591,12 +26597,12 @@ FUN_021EFBA4: ; 0x021EFBA4 bl MI_CpuFill8 mov r0, #0 mvn r1, #0 - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EFBD4 -FUN_021EFBD4: ; 0x021EFBD4 + arm_func_start MOD04_021EFBD4 +MOD04_021EFBD4: ; 0x021EFBD4 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x10 ldr r5, [sp, #0x20] @@ -26615,22 +26621,22 @@ _021EFBE8: str ip, [sp] bl FUN_0209A7D0 mvn r1, #0 - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021EFC24 -FUN_021EFC24: ; 0x021EFC24 + arm_func_start MOD04_021EFC24 +MOD04_021EFC24: ; 0x021EFC24 stmdb sp!, {lr} sub sp, sp, #4 bl FUN_0209A858 mvn r1, #0 - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EFC40 -FUN_021EFC40: ; 0x021EFC40 + arm_func_start MOD04_021EFC40 +MOD04_021EFC40: ; 0x021EFC40 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r4, [sp, #0x14] @@ -26642,22 +26648,22 @@ FUN_021EFC40: ; 0x021EFC40 ldrb r2, [r5] mvn r1, #0 str r2, [r4] - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EFC78 -FUN_021EFC78: ; 0x021EFC78 + arm_func_start MOD04_021EFC78 +MOD04_021EFC78: ; 0x021EFC78 stmdb sp!, {lr} sub sp, sp, #4 bl FUN_0209A91C mvn r1, #0 - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EFC94 -FUN_021EFC94: ; 0x021EFC94 + arm_func_start MOD04_021EFC94 +MOD04_021EFC94: ; 0x021EFC94 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r2 @@ -26668,22 +26674,22 @@ FUN_021EFC94: ; 0x021EFC94 ldrb r2, [r5] mvn r1, #0 str r2, [r4] - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021EFCC8 -FUN_021EFCC8: ; 0x021EFCC8 + arm_func_start MOD04_021EFCC8 +MOD04_021EFCC8: ; 0x021EFCC8 stmdb sp!, {lr} sub sp, sp, #4 bl FUN_0209A588 mvn r1, #0 - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EFCE4 -FUN_021EFCE4: ; 0x021EFCE4 + arm_func_start MOD04_021EFCE4 +MOD04_021EFCE4: ; 0x021EFCE4 stmdb sp!, {r4, lr} sub sp, sp, #8 add r4, sp, #0 @@ -26699,12 +26705,12 @@ _021EFCF4: strb r2, [sp] bl FUN_0209A944 mvn r1, #0 - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_start FUN_021EFD28 -FUN_021EFD28: ; 0x021EFD28 + arm_func_start MOD04_021EFD28 +MOD04_021EFD28: ; 0x021EFD28 stmdb sp!, {r4, lr} sub sp, sp, #8 ldrh r3, [r1, #2] @@ -26725,42 +26731,42 @@ _021EFD4C: strb r2, [sp] bl FUN_0209A9A4 mvn r1, #0 - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_start FUN_021EFD80 -FUN_021EFD80: ; 0x021EFD80 + arm_func_start MOD04_021EFD80 +MOD04_021EFD80: ; 0x021EFD80 stmdb sp!, {lr} sub sp, sp, #4 bl thunk_FUN_020995dc mvn r1, #0 - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EFD9C -FUN_021EFD9C: ; 0x021EFD9C + arm_func_start MOD04_021EFD9C +MOD04_021EFD9C: ; 0x021EFD9C stmdb sp!, {lr} sub sp, sp, #4 bl thunk_FUN_0209996c mvn r1, #0 - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EFDB8 -FUN_021EFDB8: ; 0x021EFDB8 + arm_func_start MOD04_021EFDB8 +MOD04_021EFDB8: ; 0x021EFDB8 stmdb sp!, {lr} sub sp, sp, #4 bl FUN_0209A9D0 mvn r1, #0 - bl FUN_021EFDD4 + bl MOD04_021EFDD4 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EFDD4 -FUN_021EFDD4: ; 0x021EFDD4 + arm_func_start MOD04_021EFDD4 +MOD04_021EFDD4: ; 0x021EFDD4 cmp r0, #0 ldrlt r2, _021EFDE8 ; =0x02210F3C strlt r0, [r2] @@ -26769,8 +26775,8 @@ FUN_021EFDD4: ; 0x021EFDD4 .align 2, 0 _021EFDE8: .word 0x02210F3C - arm_func_start FUN_021EFDEC -FUN_021EFDEC: ; 0x021EFDEC + arm_func_start MOD04_021EFDEC +MOD04_021EFDEC: ; 0x021EFDEC ldr r3, [r0] mov r1, r3, lsr #0x18 mov r0, r3, lsr #8 @@ -26807,8 +26813,8 @@ _021EFE68: mov r0, #0 bx lr - arm_func_start FUN_021EFE70 -FUN_021EFE70: ; 0x021EFE70 + arm_func_start MOD04_021EFE70 +MOD04_021EFE70: ; 0x021EFE70 stmdb sp!, {r4, lr} ldr r4, _021EFEE8 ; =0x0220D684 ldr r1, _021EFEEC ; =0x02210F40 @@ -26846,38 +26852,38 @@ _021EFEF0: .word 0x02210F38 _021EFEF4: .word 0x02210F64 _021EFEF8: .word 0x02210F50 - arm_func_start FUN_021EFEFC -FUN_021EFEFC: ; 0x021EFEFC + arm_func_start MOD04_021EFEFC +MOD04_021EFEFC: ; 0x021EFEFC stmdb sp!, {lr} sub sp, sp, #4 mov r1, #0 add r2, sp, #0 mov r3, r1 str r1, [sp] - bl FUN_021EFF5C + bl MOD04_021EFF5C cmp r0, #1 ldreq r0, [sp] movne r0, #0 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EFF2C -FUN_021EFF2C: ; 0x021EFF2C + arm_func_start MOD04_021EFF2C +MOD04_021EFF2C: ; 0x021EFF2C stmdb sp!, {lr} sub sp, sp, #4 mov r2, #0 add r1, sp, #0 mov r3, r2 str r2, [sp] - bl FUN_021EFF5C + bl MOD04_021EFF5C cmp r0, #1 ldreq r0, [sp] movne r0, #0 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021EFF5C -FUN_021EFF5C: ; 0x021EFF5C + arm_func_start MOD04_021EFF5C +MOD04_021EFF5C: ; 0x021EFF5C stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 movs r6, r1 @@ -26946,8 +26952,8 @@ _021F0044: add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021F0054 -FUN_021F0054: ; 0x021F0054 + arm_func_start MOD04_021F0054 +MOD04_021F0054: ; 0x021F0054 stmdb sp!, {lr} sub sp, sp, #0xc mov r1, #4 @@ -26957,7 +26963,7 @@ FUN_021F0054: ; 0x021F0054 ldr r2, _021F0098 ; =0x00001001 add r3, sp, #4 str ip, [sp] - bl FUN_021EFBA4 + bl MOD04_021EFBA4 mvn r1, #0 cmp r0, r1 ldrne r1, [sp, #4] @@ -26968,8 +26974,8 @@ FUN_021F0054: ; 0x021F0054 _021F0094: .word 0x0000FFFF _021F0098: .word 0x00001001 - arm_func_start FUN_021F009C -FUN_021F009C: ; 0x021F009C + arm_func_start MOD04_021F009C +MOD04_021F009C: ; 0x021F009C stmdb sp!, {lr} sub sp, sp, #0xc mov r1, #4 @@ -26979,7 +26985,7 @@ FUN_021F009C: ; 0x021F009C ldr r2, _021F00E0 ; =0x00001002 add r3, sp, #4 str ip, [sp] - bl FUN_021EFBA4 + bl MOD04_021EFBA4 mvn r1, #0 cmp r0, r1 ldrne r1, [sp, #4] @@ -26990,8 +26996,8 @@ FUN_021F009C: ; 0x021F009C _021F00DC: .word 0x0000FFFF _021F00E0: .word 0x00001002 - arm_func_start FUN_021F00E4 -FUN_021F00E4: ; 0x021F00E4 + arm_func_start MOD04_021F00E4 +MOD04_021F00E4: ; 0x021F00E4 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {lr} sub sp, sp, #4 @@ -27000,7 +27006,7 @@ FUN_021F00E4: ; 0x021F00E4 ldr r2, _021F012C ; =0x00001001 add r3, sp, #0xc str ip, [sp] - bl FUN_021EFB90 + bl MOD04_021EFB90 mvn r1, #0 cmp r0, r1 movne r0, #1 @@ -27013,8 +27019,8 @@ FUN_021F00E4: ; 0x021F00E4 _021F0128: .word 0x0000FFFF _021F012C: .word 0x00001001 - arm_func_start FUN_021F0130 -FUN_021F0130: ; 0x021F0130 + arm_func_start MOD04_021F0130 +MOD04_021F0130: ; 0x021F0130 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {lr} sub sp, sp, #4 @@ -27023,7 +27029,7 @@ FUN_021F0130: ; 0x021F0130 ldr r2, _021F0178 ; =0x00001002 add r3, sp, #0xc str ip, [sp] - bl FUN_021EFB90 + bl MOD04_021EFB90 mvn r1, #0 cmp r0, r1 movne r0, #1 @@ -27036,8 +27042,8 @@ FUN_021F0130: ; 0x021F0130 _021F0174: .word 0x0000FFFF _021F0178: .word 0x00001002 - arm_func_start FUN_021F017C -FUN_021F017C: ; 0x021F017C + arm_func_start MOD04_021F017C +MOD04_021F017C: ; 0x021F017C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r1 @@ -27057,8 +27063,8 @@ FUN_021F017C: ; 0x021F017C add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021F01C4 -FUN_021F01C4: ; 0x021F01C4 + arm_func_start MOD04_021F01C4 +MOD04_021F01C4: ; 0x021F01C4 ldrsb r3, [r0] mov r2, r0 cmp r3, #0 @@ -27081,8 +27087,8 @@ _021F01FC: .align 2, 0 _021F0204: .word 0x0210420C - arm_func_start FUN_021F0208 -FUN_021F0208: ; 0x021F0208 + arm_func_start MOD04_021F0208 +MOD04_021F0208: ; 0x021F0208 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r5, r0 @@ -27091,7 +27097,7 @@ FUN_021F0208: ; 0x021F0208 ldmeqia sp!, {r4, r5, pc} bl strlen add r0, r0, #1 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 beq _021F023C mov r1, r5 @@ -27101,23 +27107,23 @@ _021F023C: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021F0248 -FUN_021F0248: ; 0x021F0248 + arm_func_start MOD04_021F0248 +MOD04_021F0248: ; 0x021F0248 bx lr - arm_func_start FUN_021F024C -FUN_021F024C: ; 0x021F024C + arm_func_start MOD04_021F024C +MOD04_021F024C: ; 0x021F024C bx lr - arm_func_start FUN_021F0250 -FUN_021F0250: ; 0x021F0250 + arm_func_start MOD04_021F0250 +MOD04_021F0250: ; 0x021F0250 ldr ip, _021F0258 ; =0x020CAFC0 bx ip .align 2, 0 _021F0258: .word 0x020CAFC0 - arm_func_start FUN_021F025C -FUN_021F025C: ; 0x021F025C + arm_func_start MOD04_021F025C +MOD04_021F025C: ; 0x021F025C stmdb sp!, {lr} sub sp, sp, #4 bl OS_IsTickAvailable @@ -27144,8 +27150,8 @@ _021F02AC: .word 0x0220D678 _021F02B0: .word 0x00000109 _021F02B4: .word 0x000082EA - arm_func_start FUN_021F02B8 -FUN_021F02B8: ; 0x021F02B8 + arm_func_start MOD04_021F02B8 +MOD04_021F02B8: ; 0x021F02B8 stmdb sp!, {lr} sub sp, sp, #4 mov r3, r2 @@ -27168,7 +27174,7 @@ _021F02E4: cmp r2, #4 bne _021F0318 ldr r1, _021F0344 ; =0x0220D690 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #4 mov r0, #2 ldmfd sp!, {pc} @@ -27176,21 +27182,21 @@ _021F0318: cmp r3, #0 bne _021F0334 ldr r1, _021F0348 ; =0x0220D6E4 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #4 mov r0, #2 ldmfd sp!, {pc} _021F0334: mov r2, #1 - bl FUN_021F1A64 + bl MOD04_021F1A64 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _021F0344: .word 0x0220D690 _021F0348: .word 0x0220D6E4 - arm_func_start FUN_021F034C -FUN_021F034C: ; 0x021F034C + arm_func_start MOD04_021F034C +MOD04_021F034C: ; 0x021F034C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x204 movs r7, r0 @@ -27214,7 +27220,7 @@ _021F037C: cmp r1, #4 bne _021F03B0 ldr r1, _021F0560 ; =0x0220D690 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x204 mov r0, #2 ldmia sp!, {r4, r5, r6, r7, pc} @@ -27222,7 +27228,7 @@ _021F03B0: cmp r2, #0 bne _021F03CC ldr r1, _021F0564 ; =0x0220D6F8 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x204 mov r0, #2 ldmia sp!, {r4, r5, r6, r7, pc} @@ -27230,7 +27236,7 @@ _021F03CC: cmp r5, #0 bne _021F03E8 ldr r1, _021F0568 ; =0x0220D710 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x204 mov r0, #2 ldmia sp!, {r4, r5, r6, r7, pc} @@ -27238,7 +27244,7 @@ _021F03E8: mov r1, r2 add r0, sp, #0 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldrsb r0, [sp] cmp r0, #0 beq _021F0424 @@ -27255,7 +27261,7 @@ _021F0424: add r0, sp, #0x100 mov r1, r5 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC add r0, sp, #0x100 ldrsb r0, [r0] cmp r0, #0 @@ -27290,47 +27296,47 @@ _021F04A0: add r0, r4, #0x218 mov r2, #0x100 str r6, [r4, #0x214] - bl FUN_021FB3DC + bl MOD04_021FB3DC add r1, sp, #0x100 add r0, r4, #0x318 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r2, _021F056C ; =0x0220D728 mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r7 mov r2, r6 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F0570 ; =0x0220D6C0 mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x198] mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F0574 ; =0x0220D734 mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r7 add r1, r4, #0x1f4 add r2, sp, #0 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F0578 ; =0x0220D744 mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r7 add r1, r4, #0x1f4 add r2, sp, #0x100 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F057C ; =0x0220D6CC mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, #0 add sp, sp, #0x204 ldmia sp!, {r4, r5, r6, r7, pc} @@ -27344,8 +27350,8 @@ _021F0574: .word 0x0220D734 _021F0578: .word 0x0220D744 _021F057C: .word 0x0220D6CC - arm_func_start FUN_021F0580 -FUN_021F0580: ; 0x021F0580 + arm_func_start MOD04_021F0580 +MOD04_021F0580: ; 0x021F0580 stmdb sp!, {lr} sub sp, sp, #4 cmp r0, #0 @@ -27367,12 +27373,12 @@ _021F05A8: cmp r2, #4 bne _021F05DC ldr r1, _021F05F0 ; =0x0220D690 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #4 mov r0, #2 ldmfd sp!, {pc} _021F05DC: - bl FUN_021F17B0 + bl MOD04_021F17B0 cmp r0, #0 moveq r0, #0 add sp, sp, #4 @@ -27380,8 +27386,8 @@ _021F05DC: .align 2, 0 _021F05F0: .word 0x0220D690 - arm_func_start FUN_021F05F4 -FUN_021F05F4: ; 0x021F05F4 + arm_func_start MOD04_021F05F4 +MOD04_021F05F4: ; 0x021F05F4 stmdb sp!, {lr} sub sp, sp, #4 cmp r0, #0 @@ -27400,7 +27406,7 @@ _021F061C: movne r0, #0 ldmneia sp!, {pc} add r2, sp, #0 - bl FUN_021F85E8 + bl MOD04_021F85E8 cmp r0, #0 beq _021F0658 ldr r0, [sp] @@ -27414,8 +27420,8 @@ _021F0658: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021F0664 -FUN_021F0664: ; 0x021F0664 + arm_func_start MOD04_021F0664 +MOD04_021F0664: ; 0x021F0664 stmdb sp!, {r4, lr} sub sp, sp, #8 mov r4, r2 @@ -27436,7 +27442,7 @@ _021F0690: strne r0, [r4] ldmneia sp!, {r4, pc} add r2, sp, #0 - bl FUN_021F85E8 + bl MOD04_021F85E8 cmp r0, #0 beq _021F06D0 ldr r0, [sp] @@ -27453,8 +27459,8 @@ _021F06D8: add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_start FUN_021F06E4 -FUN_021F06E4: ; 0x021F06E4 + arm_func_start MOD04_021F06E4 +MOD04_021F06E4: ; 0x021F06E4 stmdb sp!, {r4, r5, r6, lr} movs r5, r0 mov r4, r2 @@ -27479,7 +27485,7 @@ _021F072C: cmp r4, #0 bne _021F0744 ldr r1, _021F0814 ; =0x0220D750 - bl FUN_021FAEEC + bl MOD04_021FAEEC mov r0, #2 ldmia sp!, {r4, r5, r6, pc} _021F0744: @@ -27491,16 +27497,16 @@ _021F0744: _021F0758: ldr r1, _021F0818 ; =0x0220D760 mov r0, r5 - bl FUN_021FAEEC + bl MOD04_021FAEEC mov r0, #2 ldmia sp!, {r4, r5, r6, pc} _021F076C: - bl FUN_021F8430 + bl MOD04_021F8430 movs r6, r0 bne _021F078C ldr r1, _021F0818 ; =0x0220D760 mov r0, r5 - bl FUN_021FAEEC + bl MOD04_021FAEEC mov r0, #2 ldmia sp!, {r4, r5, r6, pc} _021F078C: @@ -27524,7 +27530,7 @@ _021F07AC: beq _021F07DC add r0, r4, #8 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F07DC: ldr r1, [r5, #0xc] cmp r1, #0 @@ -27533,7 +27539,7 @@ _021F07DC: beq _021F07FC add r0, r4, #0x108 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F07FC: ldr r1, [r5, #0x10] mov r0, #0 @@ -27548,8 +27554,8 @@ _021F081C: .word 0x0220D770 _021F0820: .word 0x0220D77C _021F0824: .word 0x000005CF - arm_func_start FUN_021F0828 -FUN_021F0828: ; 0x021F0828 + arm_func_start MOD04_021F0828 +MOD04_021F0828: ; 0x021F0828 cmp r0, #0 beq _021F083C ldr r2, [r0] @@ -27568,8 +27574,8 @@ _021F0844: streq r2, [r1] bx lr - arm_func_start FUN_021F0864 -FUN_021F0864: ; 0x021F0864 + arm_func_start MOD04_021F0864 +MOD04_021F0864: ; 0x021F0864 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r4, r0 @@ -27591,13 +27597,13 @@ _021F088C: cmp r2, #4 bne _021F08C0 ldr r1, _021F0940 ; =0x0220D690 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #4 mov r0, #2 ldmia sp!, {r4, r5, pc} _021F08C0: add r2, sp, #0 - bl FUN_021F85E8 + bl MOD04_021F85E8 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 @@ -27614,17 +27620,17 @@ _021F08C0: cmp r0, #0 bgt _021F0934 ldr r0, [r1, #0x10] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [sp] mov r1, #0 str r1, [r0, #0x10] ldr r0, [sp] - bl FUN_021F83EC + bl MOD04_021F83EC cmp r0, #0 beq _021F0934 ldr r1, [sp] mov r0, r4 - bl FUN_021F85A0 + bl MOD04_021F85A0 _021F0934: mov r0, #0 add sp, sp, #4 @@ -27632,8 +27638,8 @@ _021F0934: .align 2, 0 _021F0940: .word 0x0220D690 - arm_func_start FUN_021F0944 -FUN_021F0944: ; 0x021F0944 + arm_func_start MOD04_021F0944 +MOD04_021F0944: ; 0x021F0944 stmdb sp!, {lr} sub sp, sp, #4 cmp r0, #0 @@ -27655,19 +27661,19 @@ _021F096C: cmp r2, #4 bne _021F09A0 ldr r1, _021F09AC ; =0x0220D690 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #4 mov r0, #2 ldmfd sp!, {pc} _021F09A0: - bl FUN_021F1984 + bl MOD04_021F1984 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _021F09AC: .word 0x0220D690 - arm_func_start FUN_021F09B0 -FUN_021F09B0: ; 0x021F09B0 + arm_func_start MOD04_021F09B0 +MOD04_021F09B0: ; 0x021F09B0 stmdb sp!, {r4, r5, r6, lr} ldr ip, _021F0B0C ; =0x00000408 sub sp, sp, ip @@ -27693,7 +27699,7 @@ _021F09E4: cmp r1, #4 bne _021F0A20 ldr r1, _021F0B10 ; =0x0220D690 - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F0B0C ; =0x00000408 mov r0, #2 add sp, sp, ip @@ -27702,7 +27708,7 @@ _021F0A20: cmp r2, #0 bne _021F0A40 ldr r1, _021F0B14 ; =0x0220D784 - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F0B0C ; =0x00000408 mov r0, #2 add sp, sp, ip @@ -27711,7 +27717,7 @@ _021F0A40: mov r1, r2 ldr r2, _021F0B18 ; =0x00000401 add r0, sp, #0 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldrsb r0, [sp] cmp r0, #0 beq _021F0A7C @@ -27728,35 +27734,35 @@ _021F0A7C: ldr r2, _021F0B1C ; =0x0220D794 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F0B20 ; =0x0220D6C0 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x198] mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F0B24 ; =0x0220D7A0 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r2, r5 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F0B28 ; =0x0220D7B0 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r6 add r1, r4, #0x1f4 add r2, sp, #0 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F0B2C ; =0x0220D6CC mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, #0 ldr ip, _021F0B0C ; =0x00000408 add sp, sp, ip @@ -27772,8 +27778,8 @@ _021F0B24: .word 0x0220D7A0 _021F0B28: .word 0x0220D7B0 _021F0B2C: .word 0x0220D6CC - arm_func_start FUN_021F0B30 -FUN_021F0B30: ; 0x021F0B30 + arm_func_start MOD04_021F0B30 +MOD04_021F0B30: ; 0x021F0B30 stmdb sp!, {lr} sub sp, sp, #4 cmp r0, #0 @@ -27795,19 +27801,19 @@ _021F0B58: cmp r3, #4 bne _021F0B8C ldr r1, _021F0B98 ; =0x0220D690 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #4 mov r0, #2 ldmfd sp!, {pc} _021F0B8C: - bl FUN_021F50B8 + bl MOD04_021F50B8 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _021F0B98: .word 0x0220D690 - arm_func_start FUN_021F0B9C -FUN_021F0B9C: ; 0x021F0B9C + arm_func_start MOD04_021F0B9C +MOD04_021F0B9C: ; 0x021F0B9C stmdb sp!, {r4, r5, lr} sub sp, sp, #0x20c movs r5, r0 @@ -27826,7 +27832,7 @@ _021F0BCC: cmp lr, #0 bne _021F0BEC ldr r1, _021F0C7C ; =0x0220D6D4 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x20c mov r0, #2 ldmia sp!, {r4, r5, pc} @@ -27859,7 +27865,7 @@ _021F0C44: cmp ip, #4 bne _021F0C64 ldr r1, _021F0C80 ; =0x0220D690 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x20c mov r0, #2 ldmia sp!, {r4, r5, pc} @@ -27867,15 +27873,15 @@ _021F0C64: ldr ip, [sp, #0x21c] str lr, [sp] str ip, [sp, #4] - bl FUN_021F4E64 + bl MOD04_021F4E64 add sp, sp, #0x20c ldmia sp!, {r4, r5, pc} .align 2, 0 _021F0C7C: .word 0x0220D6D4 _021F0C80: .word 0x0220D690 - arm_func_start FUN_021F0C84 -FUN_021F0C84: ; 0x021F0C84 + arm_func_start MOD04_021F0C84 +MOD04_021F0C84: ; 0x021F0C84 stmdb sp!, {r4, lr} sub sp, sp, #0x30 cmp r0, #0 @@ -27892,7 +27898,7 @@ _021F0CAC: cmp ip, #0 bne _021F0CCC ldr r1, _021F0D4C ; =0x0220D6D4 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x30 mov r0, #2 ldmia sp!, {r4, pc} @@ -27927,15 +27933,15 @@ _021F0D0C: ldr lr, [sp, #0x4c] str ip, [sp, #0x14] str lr, [sp, #0x18] - bl FUN_021FA770 + bl MOD04_021FA770 add sp, sp, #0x30 ldmia sp!, {r4, pc} .align 2, 0 _021F0D4C: .word 0x0220D6D4 _021F0D50: .word 0x00000601 - arm_func_start FUN_021F0D54 -FUN_021F0D54: ; 0x021F0D54 + arm_func_start MOD04_021F0D54 +MOD04_021F0D54: ; 0x021F0D54 stmdb sp!, {r4, lr} movs r4, r0 ldmeqia sp!, {r4, pc} @@ -27946,13 +27952,13 @@ FUN_021F0D54: ; 0x021F0D54 cmp r1, #0 ldmneia sp!, {r4, pc} mov r1, #1 - bl FUN_021F35F4 + bl MOD04_021F35F4 mov r0, r4 - bl FUN_021F14C0 + bl MOD04_021F14C0 ldmia sp!, {r4, pc} - arm_func_start FUN_021F0D8C -FUN_021F0D8C: ; 0x021F0D8C + arm_func_start MOD04_021F0D8C +MOD04_021F0D8C: ; 0x021F0D8C stmdb sp!, {r4, lr} sub sp, sp, #0x48 movs lr, r0 @@ -27989,7 +27995,7 @@ _021F0DF4: cmp r4, #0 bne _021F0E14 ldr r1, _021F0EA8 ; =0x0220D6D4 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x48 mov r0, #2 ldmia sp!, {r4, pc} @@ -28029,15 +28035,15 @@ _021F0E5C: mov r2, lr mov r3, lr str ip, [sp, #0x20] - bl FUN_021F4670 + bl MOD04_021F4670 add sp, sp, #0x48 ldmia sp!, {r4, pc} .align 2, 0 _021F0EA8: .word 0x0220D6D4 _021F0EAC: .word 0x0220D7BC - arm_func_start FUN_021F0EB0 -FUN_021F0EB0: ; 0x021F0EB0 + arm_func_start MOD04_021F0EB0 +MOD04_021F0EB0: ; 0x021F0EB0 stmdb sp!, {lr} sub sp, sp, #4 cmp r0, #0 @@ -28056,7 +28062,7 @@ _021F0ED8: blt _021F0EFC _021F0EE8: ldr r1, _021F0F14 ; =0x0220D7C0 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #4 mov r0, #2 ldmfd sp!, {pc} @@ -28070,8 +28076,8 @@ _021F0EFC: .align 2, 0 _021F0F14: .word 0x0220D7C0 - arm_func_start FUN_021F0F18 -FUN_021F0F18: ; 0x021F0F18 + arm_func_start MOD04_021F0F18 +MOD04_021F0F18: ; 0x021F0F18 stmdb sp!, {lr} sub sp, sp, #4 cmp r0, #0 @@ -28090,12 +28096,12 @@ _021F0F40: movne r0, #0 ldmneia sp!, {pc} mov r1, #0 - bl FUN_021F0FD4 + bl MOD04_021F0FD4 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021F0F64 -FUN_021F0F64: ; 0x021F0F64 + arm_func_start MOD04_021F0F64 +MOD04_021F0F64: ; 0x021F0F64 stmdb sp!, {lr} sub sp, sp, #4 cmp r0, #0 @@ -28105,12 +28111,12 @@ FUN_021F0F64: ; 0x021F0F64 cmp r1, #0 addeq sp, sp, #4 ldmeqia sp!, {pc} - bl FUN_021F1620 + bl MOD04_021F1620 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021F0F94 -FUN_021F0F94: ; 0x021F0F94 + arm_func_start MOD04_021F0F94 +MOD04_021F0F94: ; 0x021F0F94 stmdb sp!, {lr} sub sp, sp, #4 ldr r3, _021F0FD0 ; =0x02210E5C @@ -28123,14 +28129,14 @@ FUN_021F0F94: ; 0x021F0F94 addeq sp, sp, #4 moveq r0, #2 ldmeqia sp!, {pc} - bl FUN_021F1668 + bl MOD04_021F1668 add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _021F0FD0: .word 0x02210E5C - arm_func_start FUN_021F0FD4 -FUN_021F0FD4: ; 0x021F0FD4 + arm_func_start MOD04_021F0FD4 +MOD04_021F0FD4: ; 0x021F0FD4 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 mov sl, r0 @@ -28154,7 +28160,7 @@ _021F100C: mov fp, #0xa _021F1024: mov r0, sl - bl FUN_021F3880 + bl MOD04_021F3880 movs r6, r0 bne _021F104C cmp sb, #0 @@ -28169,7 +28175,7 @@ _021F1050: cmp r8, #0 beq _021F1060 mov r0, fp - bl FUN_021F0250 + bl MOD04_021F0250 _021F1060: cmp r8, #0 bne _021F1024 @@ -28178,7 +28184,7 @@ _021F1060: add r1, sp, #0 mov r0, sl mov r2, #1 - bl FUN_021F6C38 + bl MOD04_021F6C38 cmp r0, #0 ldrne r0, [sp] movne r1, #4 @@ -28197,19 +28203,19 @@ _021F10A8: cmp r6, #0 bne _021F10CC mov r0, sl - bl FUN_021F1190 + bl MOD04_021F1190 mov r6, r0 _021F10CC: cmp r6, #0 bne _021F10E0 mov r0, sl - bl FUN_021F775C + bl MOD04_021F775C mov r6, r0 _021F10E0: cmp r6, #0 bne _021F10F4 mov r0, sl - bl FUN_021F8974 + bl MOD04_021F8974 mov r6, r0 _021F10F4: ldr r1, [r7, #0x424] @@ -28223,12 +28229,12 @@ _021F1104: streq r0, [sp] beq _021F1134 mov r0, sl - bl FUN_021F6E44 + bl MOD04_021F6E44 ldr r1, [sp] mov r0, sl ldr r2, [r1, #0x20] str r2, [sp] - bl FUN_021F6C84 + bl MOD04_021F6C84 _021F1134: ldr r1, [sp] cmp r1, #0 @@ -28236,7 +28242,7 @@ _021F1134: _021F1140: mov r0, sl mov r1, sb - bl FUN_021F3170 + bl MOD04_021F3170 cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -28245,7 +28251,7 @@ _021F1140: beq _021F1170 mov r0, sl mov r1, #0 - bl FUN_021F35F4 + bl MOD04_021F35F4 _021F1170: mov r0, r6 add sp, sp, #4 @@ -28257,8 +28263,8 @@ _021F1184: .word 0x000001B5 _021F1188: .word 0x0220D8D0 _021F118C: .word 0x000001DB - arm_func_start FUN_021F1190 -FUN_021F1190: ; 0x021F1190 + arm_func_start MOD04_021F1190 +MOD04_021F1190: ; 0x021F1190 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x1c mov fp, #0 @@ -28276,7 +28282,7 @@ FUN_021F1190: ; 0x021F1190 _021F11C8: mov r0, r5 add r1, r4, #0x1f4 - bl FUN_021F5DF8 + bl MOD04_021F5DF8 ldr r0, _021F1494 ; =0x0220D8D4 str sl, [sp] str r0, [sp, #4] @@ -28284,7 +28290,7 @@ _021F11C8: mov r0, r5 add r2, r4, #0x1f4 add r3, sp, #0x18 - bl FUN_021F28AC + bl MOD04_021F28AC cmp r0, #0 addne sp, sp, #0x1c ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -28296,7 +28302,7 @@ _021F11C8: ldr r1, [r4, #0x1d4] mov r0, r5 add r3, sp, #0x14 - bl FUN_021F2A2C + bl MOD04_021F2A2C cmp r0, #0 beq _021F1264 cmp r0, #3 @@ -28305,11 +28311,11 @@ _021F11C8: ldr r2, _021F1498 ; =0x0220D8D8 mov r0, r5 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r5 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x1c mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -28324,7 +28330,7 @@ _021F1278: ldr r1, _021F14A0 ; =0x0220D90C ldr r2, [r4, #0x1dc] mov r0, r5 - bl FUN_021FB3D0 + bl MOD04_021FB3D0 ldr r0, [r4, #0x1dc] sub r1, r7, r0 str r1, [sp, #0x14] @@ -28339,12 +28345,12 @@ _021F1278: ldr r1, [r4, #0x1f0] ldr r0, [r4, #0x1ec] add r1, r1, #1 - bl FUN_021DD844 + bl MOD04_021DD844 cmp r0, #0 bne _021F12E8 ldr r1, _021F14A4 ; =0x0220D918 mov r0, r5 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x1c mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -28378,19 +28384,19 @@ _021F12EC: mov r0, r5 add r1, sp, #0x10 mov r2, r7 - bl FUN_021F6C38 + bl MOD04_021F6C38 cmp r0, #0 bne _021F1378 ldr r1, _021F14AC ; =0x0220D930 mov r2, r7 mov r0, r5 - bl FUN_021FB3D0 + bl MOD04_021FB3D0 b _021F1414 _021F1378: mov r0, r5 ldr r1, [sp, #0x10] ldr r2, [r4, #0x1ec] - bl FUN_021F6B50 + bl MOD04_021F6B50 cmp r0, #0 beq _021F1414 add sp, sp, #0x1c @@ -28399,7 +28405,7 @@ _021F1398: mov r1, r7 mov r0, r5 mov r2, sl - bl FUN_021FB2F8 + bl MOD04_021FB2F8 cmp r0, #0 addne sp, sp, #0x1c movne r0, #4 @@ -28413,7 +28419,7 @@ _021F1398: bne _021F13F0 mov r1, r7 mov r0, r5 - bl FUN_021F1C48 + bl MOD04_021F1C48 cmp r0, #0 beq _021F1414 add sp, sp, #0x1c @@ -28427,7 +28433,7 @@ _021F13F0: beq _021F1414 ldr r1, _021F14B8 ; =0x0220D968 mov r0, r5 - bl FUN_021FB3D0 + bl MOD04_021FB3D0 _021F1414: ldr r0, [r4, #0x1dc] ldr r1, _021F149C ; =0x0220D904 @@ -28443,21 +28449,21 @@ _021F1428: mov r0, r5 mov r1, #7 str r3, [r4, #0x1d8] - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r5 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x1c mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021F1468: mov r0, r5 - bl FUN_021F6BF8 + bl MOD04_021F6BF8 movs r7, r0 beq _021F1480 mov r0, r6 - bl FUN_021F0250 + bl MOD04_021F0250 _021F1480: cmp r7, #0 bne _021F11C8 @@ -28477,8 +28483,8 @@ _021F14B4: .word 0x0220D960 _021F14B8: .word 0x0220D968 _021F14BC: .word 0x0220D998 - arm_func_start FUN_021F14C0 -FUN_021F14C0: ; 0x021F14C0 + arm_func_start MOD04_021F14C0 +MOD04_021F14C0: ; 0x021F14C0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -28494,13 +28500,13 @@ FUN_021F14C0: ; 0x021F14C0 str r1, [r4, #0x1e8] str r1, [r4, #0x1e0] ldr r0, [r4, #0x1dc] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x1dc] str r0, [r4, #0x1dc] str r0, [r4, #0x1f0] ldr r0, [r4, #0x1ec] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x1ec] str r0, [r4, #0x1ec] @@ -28508,7 +28514,7 @@ FUN_021F14C0: ; 0x021F14C0 str r0, [r4, #0x200] str r0, [r4, #0x1f8] ldr r0, [r4, #0x1f4] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x1f4] str r0, [r4, #0x1f4] @@ -28516,7 +28522,7 @@ FUN_021F14C0: ; 0x021F14C0 str r0, [r4, #0x44c] str r0, [r4, #0x444] ldr r0, [r4, #0x440] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x440] str r0, [r4, #0x440] @@ -28524,7 +28530,7 @@ FUN_021F14C0: ; 0x021F14C0 str r0, [r4, #0x45c] str r0, [r4, #0x454] ldr r0, [r4, #0x450] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x450] str r0, [r4, #0x450] @@ -28537,17 +28543,17 @@ FUN_021F14C0: ; 0x021F14C0 beq _021F15B4 _021F15A0: mov r0, r5 - bl FUN_021F6C84 + bl MOD04_021F6C84 ldr r1, [r4, #0x424] cmp r1, #0 bne _021F15A0 _021F15B4: mov r2, #0 str r2, [r4, #0x424] - ldr r1, _021F1600 ; =FUN_021F1604 + ldr r1, _021F1600 ; =MOD04_021F1604 mov r0, r5 str r2, [r4, #0x430] - bl FUN_021F848C + bl MOD04_021F848C mov r0, #0 str r0, [r4, #0x19c] str r0, [r4, #0x1a0] @@ -28562,10 +28568,10 @@ _021F15B4: add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 -_021F1600: .word FUN_021F1604 +_021F1600: .word MOD04_021F1604 - arm_func_start FUN_021F1604 -FUN_021F1604: ; 0x021F1604 + arm_func_start MOD04_021F1604 +MOD04_021F1604: ; 0x021F1604 mov r0, #0 str r0, [r1, #8] str r0, [r1, #0x10] @@ -28574,29 +28580,29 @@ FUN_021F1604: ; 0x021F1604 mov r0, #1 bx lr - arm_func_start FUN_021F1620 -FUN_021F1620: ; 0x021F1620 + arm_func_start MOD04_021F1620 +MOD04_021F1620: ; 0x021F1620 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 ldr r4, [r5] mov r1, #1 - bl FUN_021F35F4 + bl MOD04_021F35F4 ldr r0, [r4, #0x460] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x460] ldr r0, [r4, #0x428] - bl FUN_021EF5B0 + bl MOD04_021EF5B0 mov r0, r4 - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r5] add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021F1668 -FUN_021F1668: ; 0x021F1668 + arm_func_start MOD04_021F1668 +MOD04_021F1668: ; 0x021F1668 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r6, r0 @@ -28605,7 +28611,7 @@ FUN_021F1668: ; 0x021F1668 mov r0, #0x490 mov r5, r1 mov r4, r2 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [sp] cmp r0, #0 addeq sp, sp, #8 @@ -28633,11 +28639,11 @@ FUN_021F1668: ; 0x021F1668 str r5, [r1, #0x46c] ldr r1, [sp] str r4, [r1, #0x470] - bl FUN_021F8870 + bl MOD04_021F8870 cmp r0, #0 bne _021F1720 ldr r0, [sp] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [sp] add sp, sp, #8 @@ -28662,19 +28668,19 @@ _021F1730: ldr r1, _021F17AC ; =0x0220D9C0 add r0, sp, #0 str r3, [r2, #0x460] - bl FUN_021FB3D0 + bl MOD04_021FB3D0 add r0, sp, #0 - bl FUN_021F14C0 + bl MOD04_021F14C0 movs r4, r0 beq _021F178C add r0, sp, #0 - bl FUN_021F1620 + bl MOD04_021F1620 add sp, sp, #8 mov r0, r4 ldmia sp!, {r4, r5, r6, pc} _021F178C: - bl FUN_021F024C - bl FUN_021F025C + bl MOD04_021F024C + bl MOD04_021F025C bl srand ldr r1, [sp] mov r0, #0 @@ -28684,19 +28690,19 @@ _021F178C: .align 2, 0 _021F17AC: .word 0x0220D9C0 - arm_func_start FUN_021F17B0 -FUN_021F17B0: ; 0x021F17B0 + arm_func_start MOD04_021F17B0 +MOD04_021F17B0: ; 0x021F17B0 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r6, r0 add r2, sp, #0 ldr r5, [r6] - bl FUN_021F85E8 + bl MOD04_021F85E8 cmp r0, #0 bne _021F17E8 ldr r1, _021F1938 ; =0x0220D9E4 mov r0, r6 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #8 mov r0, #2 ldmia sp!, {r4, r5, r6, pc} @@ -28704,28 +28710,28 @@ _021F17E8: ldr r2, _021F193C ; =0x0220D9F8 mov r0, r6 add r1, r5, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F1940 ; =0x0220DA04 mov r0, r6 add r1, r5, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r5, #0x198] mov r0, r6 add r1, r5, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F1944 ; =0x0220DA10 mov r0, r6 add r1, r5, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r6 add r1, r5, #0x1f4 ldr r2, [sp] ldr r2, [r2] - bl FUN_021F2F64 + bl MOD04_021F2F64 mov r0, r6 add r1, r5, #0x1f4 ldr r2, _021F1948 ; =0x0220DA20 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r0, [sp] ldr r0, [r0, #8] cmp r0, #0 @@ -28742,7 +28748,7 @@ _021F187C: ldr r0, [sp] ldr r0, [r0, #8] ldr r0, [r0, #8] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [sp] mov r1, #0 ldr r0, [r0, #8] @@ -28750,24 +28756,24 @@ _021F187C: ldr r0, [sp] ldr r0, [r0, #8] ldr r0, [r0, #0xc] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [sp] mov r1, #0 ldr r0, [r0, #8] str r1, [r0, #0xc] ldr r0, [sp] ldr r0, [r0, #8] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [sp] mov r1, #0 str r1, [r0, #8] ldr r0, [sp] - bl FUN_021F83EC + bl MOD04_021F83EC cmp r0, #0 beq _021F18F0 ldr r1, [sp] mov r0, r6 - bl FUN_021F85A0 + bl MOD04_021F85A0 _021F18F0: ldr r0, [r5, #0x430] sub r0, r0, #1 @@ -28781,10 +28787,10 @@ _021F18F0: mov r3, #0x204 bl __msl_assertion_failed _021F191C: - ldr r1, _021F195C ; =FUN_021F1960 + ldr r1, _021F195C ; =MOD04_021F1960 mov r0, r6 mov r2, r4 - bl FUN_021F848C + bl MOD04_021F848C _021F192C: mov r0, #0 add sp, sp, #8 @@ -28799,10 +28805,10 @@ _021F194C: .word 0x0220DA28 _021F1950: .word 0x0220DA34 _021F1954: .word 0x000001FD _021F1958: .word 0x0220DA40 -_021F195C: .word FUN_021F1960 +_021F195C: .word MOD04_021F1960 - arm_func_start FUN_021F1960 -FUN_021F1960: ; 0x021F1960 + arm_func_start MOD04_021F1960 +MOD04_021F1960: ; 0x021F1960 ldr r1, [r1, #8] cmp r1, #0 beq _021F197C @@ -28814,19 +28820,19 @@ _021F197C: mov r0, #1 bx lr - arm_func_start FUN_021F1984 -FUN_021F1984: ; 0x021F1984 + arm_func_start MOD04_021F1984 +MOD04_021F1984: ; 0x021F1984 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 add r2, sp, #0 ldr r5, [r4] - bl FUN_021F85E8 + bl MOD04_021F85E8 cmp r0, #0 bne _021F19BC ldr r1, _021F1A60 ; =0x0220D9E4 mov r0, r4 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #4 mov r0, #2 ldmia sp!, {r4, r5, pc} @@ -28837,13 +28843,13 @@ _021F19BC: bne _021F19E4 ldr r1, _021F1A60 ; =0x0220D9E4 mov r0, r4 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #4 mov r0, #2 ldmia sp!, {r4, r5, pc} _021F19E4: mov r0, r4 - bl FUN_021F265C + bl MOD04_021F265C cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {r4, r5, pc} @@ -28859,17 +28865,17 @@ _021F19E4: cmp r0, #0 bgt _021F1A54 ldr r0, [r1, #0x10] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [sp] mov r1, #0 str r1, [r0, #0x10] ldr r0, [sp] - bl FUN_021F83EC + bl MOD04_021F83EC cmp r0, #0 beq _021F1A54 ldr r1, [sp] mov r0, r4 - bl FUN_021F85A0 + bl MOD04_021F85A0 _021F1A54: mov r0, #0 add sp, sp, #4 @@ -28877,21 +28883,21 @@ _021F1A54: .align 2, 0 _021F1A60: .word 0x0220D9E4 - arm_func_start FUN_021F1A64 -FUN_021F1A64: ; 0x021F1A64 + arm_func_start MOD04_021F1A64 +MOD04_021F1A64: ; 0x021F1A64 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 mov r7, r0 mov r6, r1 mov r5, r2 mov r4, r3 - bl FUN_021F7720 + bl MOD04_021F7720 movs r8, r0 bne _021F1B3C add r2, sp, #0 mov r0, r7 mov r1, r6 - bl FUN_021F85E8 + bl MOD04_021F85E8 cmp r0, #0 beq _021F1ABC ldr r0, [sp] @@ -28906,14 +28912,14 @@ _021F1ABC: mov r1, r6 mov r2, r5 mov r3, r4 - bl FUN_021F1B60 + bl MOD04_021F1B60 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} _021F1AD8: mov r0, r7 mov r1, r6 mov r2, #1 - bl FUN_021F7674 + bl MOD04_021F7674 movs r8, r0 addeq sp, sp, #8 moveq r0, #1 @@ -28924,7 +28930,7 @@ _021F1AD8: bne _021F1B24 mov r0, r7 mov r1, r8 - bl FUN_021F7610 + bl MOD04_021F7610 cmp r0, #0 beq _021F1B3C add sp, sp, #8 @@ -28932,7 +28938,7 @@ _021F1AD8: _021F1B24: mov r0, r7 mov r1, r8 - bl FUN_021F7478 + bl MOD04_021F7478 cmp r0, #0 addne sp, sp, #8 ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -28941,14 +28947,14 @@ _021F1B3C: mov r1, r8 mov r2, r5 mov r3, r4 - bl FUN_021F72EC + bl MOD04_021F72EC cmp r0, #0 moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} - arm_func_start FUN_021F1B60 -FUN_021F1B60: ; 0x021F1B60 + arm_func_start MOD04_021F1B60 +MOD04_021F1B60: ; 0x021F1B60 stmdb sp!, {r4, r5, r6, r7, lr} ldr ip, _021F1C2C ; =0x00000DB4 sub sp, sp, ip @@ -28959,43 +28965,43 @@ FUN_021F1B60: ; 0x021F1B60 add r0, sp, #0 mov r1, r3 ldr r4, [r7] - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r2, _021F1C34 ; =0x0220DA6C mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r7 mov r2, r5 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F1C38 ; =0x0220DA04 mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x198] mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F1C3C ; =0x0220DA74 mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r2, r6 mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F1C40 ; =0x0220DA78 mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r7 add r1, r4, #0x1f4 add r2, sp, #0 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F1C44 ; =0x0220DA20 mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, #0 ldr ip, _021F1C2C ; =0x00000DB4 add sp, sp, ip @@ -29009,8 +29015,8 @@ _021F1C3C: .word 0x0220DA74 _021F1C40: .word 0x0220DA78 _021F1C44: .word 0x0220DA20 - arm_func_start FUN_021F1C48 -FUN_021F1C48: ; 0x021F1C48 + arm_func_start MOD04_021F1C48 +MOD04_021F1C48: ; 0x021F1C48 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} ldr ip, _021F2618 ; =0x0000113C sub sp, sp, ip @@ -29021,17 +29027,17 @@ FUN_021F1C48: ; 0x021F1C48 mov r0, r4 mov r3, #0x1000 ldr r6, [sl] - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F1CAC ldr r2, _021F2620 ; =0x0220DA80 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F2618 ; =0x0000113C mov r0, #3 add sp, sp, ip @@ -29044,17 +29050,17 @@ _021F1CAC: add r2, sp, #0x38 mov r0, r4 mov r3, #0x1000 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F1D04 ldr r2, _021F2620 ; =0x0220DA80 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F2618 ; =0x0000113C mov r0, #3 add sp, sp, ip @@ -29067,7 +29073,7 @@ _021F1D04: add r2, sp, #0x38 mov r0, r4 mov r3, #0x1000 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 beq _021F1D3C add r0, sp, #0x38 @@ -29076,7 +29082,7 @@ _021F1D04: b _021F1D48 _021F1D3C: mov r0, #0 - bl FUN_021EFAC8 + bl MOD04_021EFAC8 mov sb, r0 _021F1D48: cmp r5, #0x64 @@ -29110,12 +29116,12 @@ _021F1DA0: str r0, [sp, #0xc] beq _021F2608 mov r0, #0xc - bl FUN_021DD860 + bl MOD04_021DD860 movs r5, r0 bne _021F1DE4 ldr r1, _021F262C ; =0x0220DABC mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F2618 ; =0x0000113C mov r0, #1 add sp, sp, ip @@ -29125,17 +29131,17 @@ _021F1DE4: add r2, sp, #0x38 mov r0, r4 mov r3, #0x1000 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F1E30 ldr r2, _021F2620 ; =0x0220DA80 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F2618 ; =0x0000113C mov r0, #3 add sp, sp, ip @@ -29144,14 +29150,14 @@ _021F1E30: add r0, sp, #0x38 bl strlen add r0, r0, #1 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [r5, #8] ldr r0, [r5, #8] cmp r0, #0 bne _021F1E6C ldr r1, _021F262C ; =0x0220DABC mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F2618 ; =0x0000113C mov r0, #1 add sp, sp, ip @@ -29169,7 +29175,7 @@ _021F1E6C: mov r0, sl mov r3, r5 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021F2608 ldr ip, _021F2618 ; =0x0000113C @@ -29178,12 +29184,12 @@ _021F1E6C: _021F1EB4: mov r0, sl mov r1, r8 - bl FUN_021F8624 + bl MOD04_021F8624 movs r5, r0 bne _021F1EE4 ldr r1, _021F262C ; =0x0220DABC mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F2618 ; =0x0000113C mov r0, #1 add sp, sp, ip @@ -29193,17 +29199,17 @@ _021F1EE4: add r2, sp, #0x38 mov r0, r4 mov r3, #0x1000 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F1F30 ldr r2, _021F2620 ; =0x0220DA80 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F2618 ; =0x0000113C mov r0, #3 add sp, sp, ip @@ -29217,11 +29223,11 @@ _021F1F30: ldr r2, _021F2620 ; =0x0220DA80 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F2618 ; =0x0000113C mov r0, #3 add sp, sp, ip @@ -29236,22 +29242,22 @@ _021F1F74: ldr r2, _021F2620 ; =0x0220DA80 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F2618 ; =0x0000113C mov r0, #3 add sp, sp, ip ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021F1FBC: ldr r0, [r5, #0x10] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r5, #0x10] add r0, r4, #8 - bl FUN_021F0208 + bl MOD04_021F0208 str r0, [r5, #0x10] ldr r0, [r5, #0x14] add r0, r0, #1 @@ -29263,12 +29269,12 @@ _021F1FBC: str r0, [sp, #0x24] beq _021F2608 ldr r0, _021F2638 ; =0x0000040C - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 bne _021F2028 ldr r1, _021F262C ; =0x0220DABC mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F2618 ; =0x0000113C mov r0, #1 add sp, sp, ip @@ -29277,7 +29283,7 @@ _021F2028: ldr r2, _021F263C ; =0x00000401 add r1, sp, #0x38 add r0, r4, #8 - bl FUN_021FB3DC + bl MOD04_021FB3DC str r8, [r4] str sb, [r4, #4] mov r0, #0 @@ -29288,7 +29294,7 @@ _021F2028: mov r0, sl mov r3, r4 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021F2608 ldr ip, _021F2618 ; =0x0000113C @@ -29297,12 +29303,12 @@ _021F2028: _021F2078: mov r0, sl mov r1, r8 - bl FUN_021F8624 + bl MOD04_021F8624 movs r5, r0 bne _021F20A8 ldr r1, _021F262C ; =0x0220DABC mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F2618 ; =0x0000113C mov r0, #1 add sp, sp, ip @@ -29312,14 +29318,14 @@ _021F20A8: cmp r0, #0 bne _021F211C mov r0, #0x18 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [r5, #8] ldr r2, [r5, #8] cmp r2, #0 bne _021F20E8 ldr r1, _021F262C ; =0x0220DABC mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F2618 ; =0x0000113C mov r0, #1 add sp, sp, ip @@ -29345,17 +29351,17 @@ _021F211C: mov r0, r4 mov r3, #0x1000 ldr r7, [r5, #8] - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F216C ldr r2, _021F2620 ; =0x0220DA80 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F2618 ; =0x0000113C mov r0, #3 add sp, sp, ip @@ -29365,17 +29371,17 @@ _021F216C: add r0, sp, #0x38 add r2, sp, #0x28 mov r3, #0x10 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F21B8 ldr r2, _021F2620 ; =0x0220DA80 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F2618 ; =0x0000113C mov r0, #3 add sp, sp, ip @@ -29385,7 +29391,7 @@ _021F21B8: bl atol str r0, [r7, #4] ldr r0, [r7, #8] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 add r2, sp, #0x1000 str r0, [r7, #8] @@ -29393,7 +29399,7 @@ _021F21B8: add r0, sp, #0x38 add r2, r2, #0x38 mov r3, #0x100 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 addeq r0, sp, #0x1000 moveq r1, #0 @@ -29401,21 +29407,21 @@ _021F21B8: streqb r1, [r0, #0x30] add r0, sp, #0x1000 add r0, r0, #0x38 - bl FUN_021F0208 + bl MOD04_021F0208 str r0, [r7, #8] ldr r0, [r7, #8] cmp r0, #0 bne _021F2238 ldr r1, _021F262C ; =0x0220DABC mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F2618 ; =0x0000113C mov r0, #1 add sp, sp, ip ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021F2238: ldr r0, [r7, #0xc] - bl FUN_021DD82C + bl MOD04_021DD82C add r2, sp, #0x1000 mov r4, #0 ldr r1, _021F2648 ; =0x0220DAE4 @@ -29423,7 +29429,7 @@ _021F2238: add r2, r2, #0x38 mov r3, #0x100 str r4, [r7, #0xc] - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 addeq r0, sp, #0x1000 moveq r1, r4 @@ -29431,14 +29437,14 @@ _021F2238: streqb r1, [r0, #0x30] add r0, sp, #0x1000 add r0, r0, #0x38 - bl FUN_021F0208 + bl MOD04_021F0208 str r0, [r7, #0xc] ldr r0, [r7, #0xc] cmp r0, #0 bne _021F22AC ldr r1, _021F262C ; =0x0220DABC mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F2618 ; =0x0000113C mov r0, #1 add sp, sp, ip @@ -29448,7 +29454,7 @@ _021F22AC: add r0, sp, #0x38 add r2, sp, #0x28 mov r3, #0x10 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [r7, #0x10] @@ -29481,7 +29487,7 @@ _021F232C: add r0, sp, #0x38 add r2, sp, #0x28 mov r3, #0x10 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [r7, #0x14] @@ -29506,12 +29512,12 @@ _021F2380: str r0, [sp, #0x1c] beq _021F2608 mov r0, #0xc - bl FUN_021DD860 + bl MOD04_021DD860 movs r3, r0 bne _021F23C4 ldr r1, _021F262C ; =0x0220DABC mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F2618 ; =0x0000113C mov r0, #1 add sp, sp, ip @@ -29528,7 +29534,7 @@ _021F23C4: add r1, sp, #0x18 mov r0, sl ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021F2608 ldr ip, _021F2618 ; =0x0000113C @@ -29539,17 +29545,17 @@ _021F2408: add r2, sp, #0x38 mov r0, r4 mov r3, #0x1000 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F2454 ldr r2, _021F2620 ; =0x0220DA80 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F2618 ; =0x0000113C mov r0, #3 add sp, sp, ip @@ -29563,11 +29569,11 @@ _021F2454: ldr r2, _021F2620 ; =0x0220DA80 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F2618 ; =0x0000113C mov r0, #3 add sp, sp, ip @@ -29579,11 +29585,11 @@ _021F2498: ldr r2, _021F2620 ; =0x0220DA80 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F2618 ; =0x0000113C mov r0, #3 add sp, sp, ip @@ -29605,7 +29611,7 @@ _021F24D4: add r0, r0, #0x38 add r1, r1, #3 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F2518: ldr r1, [r6, #0x1c4] ldr r0, [r6, #0x1c8] @@ -29614,12 +29620,12 @@ _021F2518: str r0, [sp, #0x14] beq _021F2608 mov r0, #0x108 - bl FUN_021DD860 + bl MOD04_021DD860 movs r5, r0 bne _021F255C ldr r1, _021F262C ; =0x0220DABC mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F2618 ; =0x0000113C mov r0, #1 add sp, sp, ip @@ -29638,7 +29644,7 @@ _021F255C: mov r0, sl mov r3, r5 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021F2608 ldr ip, _021F2618 ; =0x0000113C @@ -29649,17 +29655,17 @@ _021F25A8: add r2, sp, #0x38 mov r0, r4 mov r3, #0x1000 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F25F4 ldr r2, _021F2620 ; =0x0220DA80 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F2618 ; =0x0000113C mov r0, #3 add sp, sp, ip @@ -29669,7 +29675,7 @@ _021F25F4: mov r0, sl mov r1, r8 mov r2, #0x67 - bl FUN_021F1A64 + bl MOD04_021F1A64 _021F2608: mov r0, #0 ldr ip, _021F2618 ; =0x0000113C @@ -29694,43 +29700,43 @@ _021F2650: .word 0x0220DAF4 _021F2654: .word 0x0220DAF8 _021F2658: .word 0x0220DAFC - arm_func_start FUN_021F265C -FUN_021F265C: ; 0x021F265C + arm_func_start MOD04_021F265C +MOD04_021F265C: ; 0x021F265C stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r4, [r6] ldr r2, _021F26F0 ; =0x0220DB00 mov r5, r1 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F26F4 ; =0x0220DA04 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x198] mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F26F8 ; =0x0220DB0C mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r6 add r1, r4, #0x1f4 ldr r2, [r5] - bl FUN_021F2F64 + bl MOD04_021F2F64 mov r0, r6 add r1, r4, #0x1f4 ldr r2, _021F26FC ; =0x0220DB1C - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r5, #0x10] mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r6 add r1, r4, #0x1f4 ldr r2, _021F2700 ; =0x0220DA20 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, #0 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 @@ -29740,8 +29746,8 @@ _021F26F8: .word 0x0220DB0C _021F26FC: .word 0x0220DB1C _021F2700: .word 0x0220DA20 - arm_func_start FUN_021F2704 -FUN_021F2704: ; 0x021F2704 + arm_func_start MOD04_021F2704 +MOD04_021F2704: ; 0x021F2704 stmdb sp!, {r4, lr} movs r4, r1 beq _021F2728 @@ -29773,8 +29779,8 @@ _021F2758: str r0, [r4, #0xc] ldmia sp!, {r4, pc} - arm_func_start FUN_021F2770 -FUN_021F2770: ; 0x021F2770 + arm_func_start MOD04_021F2770 +MOD04_021F2770: ; 0x021F2770 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x14 mov r5, r2 @@ -29805,7 +29811,7 @@ FUN_021F2770: ; 0x021F2770 ldr r1, _021F28A4 ; =0x0220DB2C add r2, sp, #0 mov r3, #0x10 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 addeq sp, sp, #0x14 moveq r0, #3 @@ -29817,7 +29823,7 @@ FUN_021F2770: ; 0x021F2770 ldr r1, _021F28A8 ; =0x0220DB30 add r2, sp, #0 mov r3, #0x10 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 addeq sp, sp, #0x14 moveq r0, #3 @@ -29858,8 +29864,8 @@ _021F28A0: .word 0x0220DB24 _021F28A4: .word 0x0220DB2C _021F28A8: .word 0x0220DB30 - arm_func_start FUN_021F28AC -FUN_021F28AC: ; 0x021F28AC + arm_func_start MOD04_021F28AC +MOD04_021F28AC: ; 0x021F28AC stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x1c mov sl, r0 @@ -29895,7 +29901,7 @@ _021F2908: mov r3, r6 add r2, r5, r2 str r8, [sp, #8] - bl FUN_021F2E68 + bl MOD04_021F2E68 cmp r0, #0 addne sp, sp, #0x1c ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -29966,8 +29972,8 @@ _021F2A20: .word 0x0220DB68 _021F2A24: .word 0x000001DF _021F2A28: .word 0x0220DB74 - arm_func_start FUN_021F2A2C -FUN_021F2A2C: ; 0x021F2A2C + arm_func_start MOD04_021F2A2C +MOD04_021F2A2C: ; 0x021F2A2C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x14 mov fp, r0 @@ -30029,12 +30035,12 @@ _021F2AF4: mov r7, r0 add r1, r0, #1 mov r0, sb - bl FUN_021DD844 + bl MOD04_021DD844 movs sb, r0 bne _021F2B30 ldr r1, _021F2C48 ; =0x0220DBD4 mov r0, fp - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x14 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -30043,13 +30049,13 @@ _021F2B30: mov r0, sl add r1, sb, r8 sub r2, r7, r8 - bl FUN_021EFC78 + bl MOD04_021EFC78 mov r6, r0 mvn r0, #0 cmp r6, r0 bne _021F2B98 mov r0, sl - bl FUN_021EFB28 + bl MOD04_021EFB28 mvn r1, #5 cmp r0, r1 beq _021F2BBC @@ -30061,7 +30067,7 @@ _021F2B30: beq _021F2BBC ldr r1, _021F2C4C ; =0x0220DBE4 mov r0, fp - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x14 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -30074,7 +30080,7 @@ _021F2B98: ldr r2, [sp, #0x3c] mov r0, fp ldr r4, [sp, #0xc] - bl FUN_021FB3D0 + bl MOD04_021FB3D0 _021F2BBC: ldr r0, [sp, #0x10] strb r0, [sb, r8] @@ -30092,7 +30098,7 @@ _021F2BE0: ldr r2, [sp, #0x3c] mov r0, fp mov r3, r5 - bl FUN_021FB3D0 + bl MOD04_021FB3D0 _021F2BFC: ldr r0, [sp] ldr r1, [sp, #0x38] @@ -30119,8 +30125,8 @@ _021F2C4C: .word 0x0220DBE4 _021F2C50: .word 0x0220DC10 _021F2C54: .word 0x0220DC34 - arm_func_start FUN_021F2C58 -FUN_021F2C58: ; 0x021F2C58 + arm_func_start MOD04_021F2C58 +MOD04_021F2C58: ; 0x021F2C58 stmdb sp!, {r4, r5, r6, lr} mov r4, r2 mov r6, r0 @@ -30131,11 +30137,11 @@ FUN_021F2C58: ; 0x021F2C58 mov r0, r6 mov r1, r5 mov r2, r4 - bl FUN_021F2C88 + bl MOD04_021F2C88 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021F2C88 -FUN_021F2C88: ; 0x021F2C88 + arm_func_start MOD04_021F2C88 +MOD04_021F2C88: ; 0x021F2C88 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x14 mov sb, r1 @@ -30161,7 +30167,7 @@ _021F2CC0: subs r0, r1, r0 bne _021F2D4C ldr r0, [sb, #0x38] - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 bne _021F2D4C ldr fp, _021F2D88 ; =0x0220DC70 @@ -30175,7 +30181,7 @@ _021F2D00: mov r0, sl mov r3, r7 add r2, r8, r6 - bl FUN_021F2E68 + bl MOD04_021F2E68 cmp r0, #0 addne sp, sp, #0x14 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -30194,7 +30200,7 @@ _021F2D4C: mov r3, r7 add r1, sb, #0x28 add r2, r8, r6 - bl FUN_021F2FCC + bl MOD04_021F2FCC cmp r0, #0 addne sp, sp, #0x14 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -30207,8 +30213,8 @@ _021F2D80: .word 0x0220DC4C _021F2D84: .word 0x0220DB50 _021F2D88: .word 0x0220DC70 - arm_func_start FUN_021F2D8C -FUN_021F2D8C: ; 0x021F2D8C + arm_func_start MOD04_021F2D8C +MOD04_021F2D8C: ; 0x021F2D8C stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, lr} sub sp, sp, #0x14 @@ -30228,7 +30234,7 @@ _021F2DC0: subs r0, r1, r0 bne _021F2E3C ldr r0, [r4, #0x38] - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 bne _021F2E3C add r0, sp, #0xc @@ -30241,7 +30247,7 @@ _021F2DC0: add r2, sp, #0x28 mov r0, r5 mov r3, #1 - bl FUN_021F2E68 + bl MOD04_021F2E68 cmp r0, #0 addne sp, sp, #0x14 ldmneia sp!, {r4, r5, lr} @@ -30258,7 +30264,7 @@ _021F2E3C: ldrsb r2, [sp, #0x28] mov r0, r5 add r1, r4, #0x28 - bl FUN_021F30D4 + bl MOD04_021F30D4 add sp, sp, #0x14 ldmia sp!, {r4, r5, lr} add sp, sp, #0x10 @@ -30268,8 +30274,8 @@ _021F2E5C: .word 0x0220DC4C _021F2E60: .word 0x0220DB50 _021F2E64: .word 0x0220DC70 - arm_func_start FUN_021F2E68 -FUN_021F2E68: ; 0x021F2E68 + arm_func_start MOD04_021F2E68 +MOD04_021F2E68: ; 0x021F2E68 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r1 mov r7, r0 @@ -30280,12 +30286,12 @@ FUN_021F2E68: ; 0x021F2E68 ldr r6, [sp, #0x18] ldr r5, [sp, #0x1c] ldr r4, [sp, #0x20] - bl FUN_021EFC24 + bl MOD04_021EFC24 mvn r1, #0 cmp r0, r1 bne _021F2F20 mov r0, r8 - bl FUN_021EFB28 + bl MOD04_021EFB28 mvn r1, #5 cmp r0, r1 beq _021F2F10 @@ -30306,11 +30312,11 @@ _021F2EE8: ldr r2, _021F2F5C ; =0x0220DC74 mov r0, r7 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r7 mov r1, #3 mov r2, #0 - bl FUN_021F3500 + bl MOD04_021F3500 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} _021F2F10: @@ -30327,7 +30333,7 @@ _021F2F20: ldr r1, _021F2F60 ; =0x0220DC9C mov r0, r7 mov r2, r4 - bl FUN_021FB3D0 + bl MOD04_021FB3D0 mov r0, #0 str r0, [r5] mov r0, #1 @@ -30339,8 +30345,8 @@ _021F2F54: _021F2F5C: .word 0x0220DC74 _021F2F60: .word 0x0220DC9C - arm_func_start FUN_021F2F64 -FUN_021F2F64: ; 0x021F2F64 + arm_func_start MOD04_021F2F64 +MOD04_021F2F64: ; 0x021F2F64 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x14 mov r4, r1 @@ -30351,14 +30357,14 @@ FUN_021F2F64: ; 0x021F2F64 add r2, sp, #0 mov r0, r5 mov r1, r4 - bl FUN_021F2F9C + bl MOD04_021F2F9C add sp, sp, #0x14 ldmia sp!, {r4, r5, pc} .align 2, 0 _021F2F98: .word 0x0220DC48 - arm_func_start FUN_021F2F9C -FUN_021F2F9C: ; 0x021F2F9C + arm_func_start MOD04_021F2F9C +MOD04_021F2F9C: ; 0x021F2F9C stmdb sp!, {r4, r5, r6, lr} mov r4, r2 mov r6, r0 @@ -30369,11 +30375,11 @@ FUN_021F2F9C: ; 0x021F2F9C mov r0, r6 mov r1, r5 mov r2, r4 - bl FUN_021F2FCC + bl MOD04_021F2FCC ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021F2FCC -FUN_021F2FCC: ; 0x021F2FCC + arm_func_start MOD04_021F2FCC +MOD04_021F2FCC: ; 0x021F2FCC stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} movs r8, r2 mov sl, r0 @@ -30417,12 +30423,12 @@ _021F3030: add r5, r5, r0 mov r0, r4 add r1, r5, #1 - bl FUN_021DD844 + bl MOD04_021DD844 movs r4, r0 bne _021F308C ldr r1, _021F30D0 ; =0x0220DBD4 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021F308C: @@ -30446,8 +30452,8 @@ _021F30C8: .word 0x0220DCD0 _021F30CC: .word 0x0220DB38 _021F30D0: .word 0x0220DBD4 - arm_func_start FUN_021F30D4 -FUN_021F30D4: ; 0x021F30D4 + arm_func_start MOD04_021F30D4 +MOD04_021F30D4: ; 0x021F30D4 stmdb sp!, {r4, r5, r6, r7, r8, lr} movs r4, r1 mov r8, r0 @@ -30466,12 +30472,12 @@ _021F30FC: bne _021F3138 add r5, r5, #0x800 add r1, r5, #1 - bl FUN_021DD844 + bl MOD04_021DD844 cmp r0, #0 bne _021F3138 ldr r1, _021F316C ; =0x0220DBD4 mov r0, r8 - bl FUN_021FAEEC + bl MOD04_021FAEEC mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, pc} _021F3138: @@ -30491,8 +30497,8 @@ _021F3164: .word 0x0220DB38 _021F3168: .word 0x0220DB50 _021F316C: .word 0x0220DBD4 - arm_func_start FUN_021F3170 -FUN_021F3170: ; 0x021F3170 + arm_func_start MOD04_021F3170 +MOD04_021F3170: ; 0x021F3170 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} mov sl, r0 movs sb, r1 @@ -30521,7 +30527,7 @@ _021F31C0: moveq r7, r4 cmp r6, r1 moveq r6, r5 - bl FUN_021F3260 + bl MOD04_021F3260 b _021F31E4 _021F31E0: mov r5, r1 @@ -30552,7 +30558,7 @@ _021F3224: _021F3234: ldr r5, [r1, #0x14] mov r0, sl - bl FUN_021F3260 + bl MOD04_021F3260 mov r1, r5 cmp r5, #0 bne _021F3234 @@ -30564,8 +30570,8 @@ _021F3258: mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_start FUN_021F3260 -FUN_021F3260: ; 0x021F3260 + arm_func_start MOD04_021F3260 +MOD04_021F3260: ; 0x021F3260 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r7, r1 ldr r1, [r7] @@ -30597,7 +30603,7 @@ _021F32AC: bne _021F32E8 ldr r0, [r7, #8] ldr r0, [r0, #8] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r7, #8] mov r1, #0 str r1, [r0, #8] @@ -30615,12 +30621,12 @@ _021F32E8: _021F330C: ldr r0, [r5, #0x3c] ldr r0, [r0, r6, lsl #2] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r5, #0x3c] str r4, [r0, r6, lsl #2] ldr r0, [r5, #0x40] ldr r0, [r0, r6, lsl #2] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r5, #0x40] str r8, [r0, r6, lsl #2] ldr r0, [r5, #0x38] @@ -30629,11 +30635,11 @@ _021F330C: blt _021F330C _021F3344: ldr r0, [r5, #0x3c] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r5, #0x3c] ldr r0, [r5, #0x40] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r5, #0x40] b _021F342C @@ -30642,7 +30648,7 @@ _021F3368: bne _021F3388 ldr r4, [r7, #8] ldr r0, [r4, #0xc] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0xc] b _021F342C @@ -30653,7 +30659,7 @@ _021F3388: ldr r0, [r4, #0x10] cmp r0, #0 beq _021F342C - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x10] b _021F342C @@ -30664,7 +30670,7 @@ _021F33B0: ldr r0, [r4, #8] cmp r0, #0 beq _021F342C - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #8] b _021F342C @@ -30680,7 +30686,7 @@ _021F33D8: _021F33F8: ldr r0, [r4, #8] ldr r0, [r0, r5, lsl #2] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r4, #8] str r6, [r0, r5, lsl #2] ldr r0, [r4, #4] @@ -30689,36 +30695,36 @@ _021F33F8: blt _021F33F8 _021F341C: ldr r0, [r4, #8] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #8] _021F342C: ldr r0, [r7, #8] - bl FUN_021DD82C + bl MOD04_021DD82C mov r1, #0 mov r0, r7 str r1, [r7, #8] - bl FUN_021DD82C + bl MOD04_021DD82C ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021F3448: .word 0x0220DCE0 _021F344C: .word 0x0220DD00 _021F3450: .word 0x0220DD10 - arm_func_start FUN_021F3454 -FUN_021F3454: ; 0x021F3454 + arm_func_start MOD04_021F3454 +MOD04_021F3454: ; 0x021F3454 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r0, #0x18 mov r5, r3 ldr r4, [r6] - bl FUN_021DD860 + bl MOD04_021DD860 cmp r0, #0 bne _021F3494 ldr r1, _021F34FC ; =0x0220DD24 mov r0, r6 - bl FUN_021FAEEC + bl MOD04_021FAEEC mov r0, #1 ldmia sp!, {r4, r5, r6, lr} add sp, sp, #0x10 @@ -30753,8 +30759,8 @@ _021F3494: .align 2, 0 _021F34FC: .word 0x0220DD24 - arm_func_start FUN_021F3500 -FUN_021F3500: ; 0x021F3500 + arm_func_start MOD04_021F3500 +MOD04_021F3500: ; 0x021F3500 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x14 mov r4, r0 @@ -30798,7 +30804,7 @@ _021F3574: addeq sp, sp, #0x14 ldmeqia sp!, {r4, r5, r6, r7, pc} mov r0, #0x10 - bl FUN_021DD860 + bl MOD04_021DD860 movs r3, r0 strne r7, [r3] strne r6, [r3, #0xc] @@ -30812,7 +30818,7 @@ _021F3574: str r0, [sp, #4] mov r0, r4 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 @@ -30821,8 +30827,8 @@ _021F35E8: .word 0x0220DD00 _021F35EC: .word 0x0220DD48 _021F35F0: .word 0x0220DD60 - arm_func_start FUN_021F35F4 -FUN_021F35F4: ; 0x021F35F4 + arm_func_start MOD04_021F35F4 +MOD04_021F35F4: ; 0x021F35F4 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x10 mov r5, r0 @@ -30839,15 +30845,15 @@ FUN_021F35F4: ; 0x021F35F4 bne _021F3658 ldr r2, _021F37A8 ; =0x0220DDD0 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x198] mov r0, r5 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F37AC ; =0x0220DDE4 mov r0, r5 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C _021F3658: mov r1, #1 ldr r0, _021F37B0 ; =0x0220DDEC @@ -30857,15 +30863,15 @@ _021F3658: add r3, sp, #8 mov r0, r5 add r2, r4, #0x1f4 - bl FUN_021F28AC + bl MOD04_021F28AC ldr r0, [r4, #0x1d4] mvn r1, #0 cmp r0, r1 beq _021F36A4 mov r1, #2 - bl FUN_021EFD80 + bl MOD04_021EFD80 ldr r0, [r4, #0x1d4] - bl FUN_021EFD9C + bl MOD04_021EFD9C mvn r0, #0 str r0, [r4, #0x1d4] _021F36A4: @@ -30874,9 +30880,9 @@ _021F36A4: cmp r0, r1 beq _021F36CC mov r1, #2 - bl FUN_021EFD80 + bl MOD04_021EFD80 ldr r0, [r4, #0x204] - bl FUN_021EFD9C + bl MOD04_021EFD9C mvn r0, #0 str r0, [r4, #0x204] _021F36CC: @@ -30887,23 +30893,23 @@ _021F36CC: str r0, [r4, #0x1a0] _021F36E0: ldr r0, [r4, #0x1dc] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x1dc] ldr r0, [r4, #0x1ec] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x1ec] ldr r0, [r4, #0x1f4] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x1f4] ldr r0, [r4, #0x440] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x440] ldr r0, [r4, #0x450] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x450] ldr r1, [r4, #0x424] @@ -30911,7 +30917,7 @@ _021F36E0: beq _021F3750 _021F373C: mov r0, r5 - bl FUN_021F6C84 + bl MOD04_021F6C84 ldr r1, [r4, #0x424] cmp r1, #0 bne _021F373C @@ -30925,18 +30931,18 @@ _021F3764: mov r1, r6 ldr r6, [r6, #0x3c] mov r0, r5 - bl FUN_021F79E0 + bl MOD04_021F79E0 cmp r6, #0 bne _021F3764 _021F377C: mov r6, #0 str r6, [r4, #0x434] - ldr r4, _021F37B4 ; =FUN_021F37B8 + ldr r4, _021F37B4 ; =MOD04_021F37B8 _021F3788: mov r0, r5 mov r1, r4 mov r2, r6 - bl FUN_021F848C + bl MOD04_021F848C cmp r0, #0 beq _021F3788 add sp, sp, #0x10 @@ -30945,10 +30951,10 @@ _021F3788: _021F37A8: .word 0x0220DDD0 _021F37AC: .word 0x0220DDE4 _021F37B0: .word 0x0220DDEC -_021F37B4: .word FUN_021F37B8 +_021F37B4: .word MOD04_021F37B8 - arm_func_start FUN_021F37B8 -FUN_021F37B8: ; 0x021F37B8 + arm_func_start MOD04_021F37B8 +MOD04_021F37B8: ; 0x021F37B8 stmdb sp!, {r4, r5, r6, lr} mov r5, r1 ldr r1, [r5, #8] @@ -30960,27 +30966,27 @@ FUN_021F37B8: ; 0x021F37B8 cmp r0, #0 bne _021F381C ldr r0, [r1, #8] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r5, #8] mov r1, #0 str r1, [r0, #8] ldr r0, [r5, #8] ldr r0, [r0, #0xc] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r5, #8] mov r1, #0 str r1, [r0, #0xc] ldr r0, [r5, #8] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r5, #8] _021F381C: ldr r0, [r5, #0x10] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r5, #0x10] ldr r0, [r5, #0x18] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r5, #0x18] str r0, [r5, #0x14] @@ -30996,22 +31002,22 @@ _021F381C: _021F3864: mov r0, r6 mov r1, r5 - bl FUN_021F85A0 + bl MOD04_021F85A0 mov r0, #0 ldmia sp!, {r4, r5, r6, pc} _021F3878: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021F3880 -FUN_021F3880: ; 0x021F3880 + arm_func_start MOD04_021F3880 +MOD04_021F3880: ; 0x021F3880 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 ldr r4, [r5] add r2, sp, #0 ldr r1, [r4, #0x1d4] - bl FUN_021FB0FC + bl MOD04_021FB0FC cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {r4, r5, pc} @@ -31021,11 +31027,11 @@ FUN_021F3880: ; 0x021F3880 ldr r1, _021F3920 ; =0x00000107 ldr r2, _021F3924 ; =0x0220DDF0 mov r0, r5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r5 mov r1, #4 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #4 mov r0, #4 ldmia sp!, {r4, r5, pc} @@ -31054,8 +31060,8 @@ _021F3928: .word 0x0220DE18 _021F392C: .word 0x0220DE30 _021F3930: .word 0x000002EF - arm_func_start FUN_021F3934 -FUN_021F3934: ; 0x021F3934 + arm_func_start MOD04_021F3934 +MOD04_021F3934: ; 0x021F3934 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x2a0 mov r6, r2 @@ -31064,7 +31070,7 @@ FUN_021F3934: ; 0x021F3934 mov r1, r6 mov r2, #0 ldr r5, [r8] - bl FUN_021FB2F8 + bl MOD04_021FB2F8 cmp r0, #0 beq _021F3A34 ldr r2, [r5, #0x418] @@ -31075,7 +31081,7 @@ FUN_021F3934: ; 0x021F3934 cmp r1, #0 beq _021F3994 mov r0, r8 - bl FUN_021F85B4 + bl MOD04_021F85B4 mov r0, #0 str r0, [r5, #0x19c] str r0, [r5, #0x1a0] @@ -31088,7 +31094,7 @@ _021F3994: add r2, sp, #0x4e mov r0, r6 mov r3, #0x200 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 beq _021F39C8 add r0, sp, #0x4e @@ -31103,11 +31109,11 @@ _021F39C8: ldr r1, [r5, #0x418] mov r0, r8 mov r2, r5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #4 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #4 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31115,11 +31121,11 @@ _021F3A08: ldr r1, [r5, #0x418] mov r0, r8 mov r2, r5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #4 mov r2, #0 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #4 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31143,11 +31149,11 @@ _021F3A58: ldr r2, _021F3FD4 ; =0x0220DE58 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31156,17 +31162,17 @@ _021F3A9C: mov r0, r6 mov r2, r4 mov r3, #0x80 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F3AE4 ldr r2, _021F3FD4 ; =0x0220DE58 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31176,7 +31182,7 @@ _021F3AE4: beq _021F3B14 mov r0, r8 mov r1, r4 - bl FUN_021F401C + bl MOD04_021F401C cmp r0, #0 addne sp, sp, #0x2a0 ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -31186,7 +31192,7 @@ _021F3AE4: _021F3B14: mov r0, r8 mov r1, r4 - bl FUN_021F42B8 + bl MOD04_021F42B8 cmp r0, #0 addne sp, sp, #0x2a0 ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -31203,11 +31209,11 @@ _021F3B38: ldr r2, _021F3FD4 ; =0x0220DE58 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31216,17 +31222,17 @@ _021F3B7C: add r2, sp, #0x4e mov r0, r6 mov r3, #0x200 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F3BC4 ldr r2, _021F3FE4 ; =0x0220DEA8 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31238,17 +31244,17 @@ _021F3BC4: add r2, sp, #0x4e mov r0, r6 mov r3, #0x200 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F3C18 ldr r2, _021F3FE4 ; =0x0220DEA8 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31258,7 +31264,7 @@ _021F3C18: str r0, [r5, #0x1a0] mov r0, r8 mov r1, r4 - bl FUN_021F42B8 + bl MOD04_021F42B8 cmp r0, #0 addne sp, sp, #0x2a0 ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -31275,11 +31281,11 @@ _021F3C48: ldr r2, _021F3FD4 ; =0x0220DE58 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31288,17 +31294,17 @@ _021F3C8C: add r2, sp, #0x4e mov r0, r6 mov r3, #0x200 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F3CD4 ldr r2, _021F3FE4 ; =0x0220DEA8 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31310,17 +31316,17 @@ _021F3CD4: add r2, sp, #0x4e mov r0, r6 mov r3, #0x200 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F3D28 ldr r2, _021F3FE4 ; =0x0220DEA8 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31332,17 +31338,17 @@ _021F3D28: add r2, sp, #0x4e mov r0, r6 mov r3, #0x200 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F3D7C ldr r2, _021F3FE4 ; =0x0220DEA8 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31354,7 +31360,7 @@ _021F3D7C: add r2, sp, #0x39 mov r0, r6 mov r3, #0x15 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 ldr r2, _021F3FF8 ; =0x00000474 cmp r0, #0 moveq r0, #0 @@ -31363,7 +31369,7 @@ _021F3D7C: mov r0, r6 add r2, r5, r2 mov r3, #0x19 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streqb r0, [r5, #0x474] @@ -31401,22 +31407,22 @@ _021F3E14: mov r1, r0 add r0, sp, #0x4e add r2, sp, #0x18 - bl FUN_021EF794 + bl MOD04_021EF794 ldr r1, _021F4010 ; =0x0220DF5C mov r0, r6 add r2, sp, #0x4e mov r3, #0x200 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F3E9C ldr r2, _021F3FE4 ; =0x0220DEA8 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31430,11 +31436,11 @@ _021F3E9C: ldr r2, _021F4014 ; =0x0220DF64 mov r0, r8 mov r1, #0x108 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x2a0 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31444,7 +31450,7 @@ _021F3EE0: beq _021F3F08 ldr r1, [r5, #0x1a0] mov r0, r8 - bl FUN_021F8624 + bl MOD04_021F8624 ldr r1, [r5, #0x1a0] str r1, [r0] ldr r1, [r5, #0x19c] @@ -31459,12 +31465,12 @@ _021F3F08: str r0, [sp, #0x14] beq _021F3FA8 mov r0, #0x20 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 bne _021F3F50 ldr r1, _021F4018 ; =0x0220DF84 mov r0, r8 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x2a0 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31479,7 +31485,7 @@ _021F3F50: add r1, sp, #0x39 add r0, r4, #8 mov r2, #0x15 - bl FUN_021FB3DC + bl MOD04_021FB3DC str r7, [sp] mov r0, #0 str r0, [sp, #4] @@ -31487,14 +31493,14 @@ _021F3F50: mov r0, r8 mov r3, r4 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 addne sp, sp, #0x2a0 ldmneia sp!, {r4, r5, r6, r7, r8, pc} _021F3FA8: mov r0, r8 mov r1, r7 - bl FUN_021F6C84 + bl MOD04_021F6C84 _021F3FB4: mov r0, #0 add sp, sp, #0x2a0 @@ -31524,8 +31530,8 @@ _021F4010: .word 0x0220DF5C _021F4014: .word 0x0220DF64 _021F4018: .word 0x0220DF84 - arm_func_start FUN_021F401C -FUN_021F401C: ; 0x021F401C + arm_func_start MOD04_021F401C +MOD04_021F401C: ; 0x021F401C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xec mov fp, r0 @@ -31536,7 +31542,7 @@ FUN_021F401C: ; 0x021F401C bl strlen mov sb, r0 ldr r0, _021F427C ; =0x79707367 - bl FUN_021EFA2C + bl MOD04_021EFA2C cmp sb, #0 mov sl, #0 bls _021F4090 @@ -31546,7 +31552,7 @@ FUN_021F401C: ; 0x021F401C _021F4060: mov r0, r7 mov r1, r6 - bl FUN_021EF9FC + bl MOD04_021EF9FC add r1, r4, sl add r1, r1, #0x100 add sl, sl, #1 @@ -31563,68 +31569,68 @@ _021F4090: mov r2, sb mov r3, #1 strb r6, [r0, sl] - bl FUN_021EF820 + bl MOD04_021EF820 ldr r2, _021F4280 ; =0x0220DF94 mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F4284 ; =0x0220DFA0 mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, fp add r1, r4, #0x1f4 add r2, r4, #0x144 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F4288 ; =0x0220DFA8 mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, fp add r1, r4, #0x1f4 add r2, r4, #0x110 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F428C ; =0x0220DFB0 mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, fp add r1, r4, #0x1f4 add r2, sp, #0x1f - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F4290 ; =0x0220DFC0 mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x46c] mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F4294 ; =0x0220DFCC mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F4298 ; =0x02210EA0 mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F429C ; =0x0220DFD8 mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x470] mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F42A0 ; =0x0220DEF8 mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F42A4 ; =0x0000012F mov r0, fp add r1, r4, #0x1f4 add r2, r4, r2 - bl FUN_021F2F9C + bl MOD04_021F2F9C add r0, r5, #0x200 ldrsb r0, [r0, #0xc2] cmp r0, #0 @@ -31634,7 +31640,7 @@ _021F4090: bl strlen mov sl, r0 ldr r0, _021F427C ; =0x79707367 - bl FUN_021EFA2C + bl MOD04_021EFA2C cmp sl, #0 mov r8, r6 bls _021F4210 @@ -31644,7 +31650,7 @@ _021F4090: _021F41E0: mov r0, r7 mov r1, r6 - bl FUN_021EF9FC + bl MOD04_021EF9FC add r1, r5, r8 add r1, r1, #0x200 add r8, r8, #1 @@ -31661,24 +31667,24 @@ _021F4210: mov r2, sl mov r3, #1 strb r5, [r0, r8] - bl FUN_021EF820 + bl MOD04_021EF820 ldr r2, _021F42AC ; =0x0220DFE8 mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C add r2, sp, #0x8d mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C _021F424C: ldr r2, _021F42B0 ; =0x0220DFF4 mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F42B4 ; =0x0220DDE4 mov r0, fp add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, #0 add sp, sp, #0xec ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -31700,8 +31706,8 @@ _021F42AC: .word 0x0220DFE8 _021F42B0: .word 0x0220DFF4 _021F42B4: .word 0x0220DDE4 - arm_func_start FUN_021F42B8 -FUN_021F42B8: ; 0x021F42B8 + arm_func_start MOD04_021F42B8 +MOD04_021F42B8: ; 0x021F42B8 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x28c mov r5, r1 @@ -31709,7 +31715,7 @@ FUN_021F42B8: ; 0x021F42B8 add r0, r5, #0x80 mov r1, #0x20 ldr r4, [r6] - bl FUN_021F4C48 + bl MOD04_021F4C48 add r0, r5, #0x100 ldrsb r0, [r0, #0xc2] cmp r0, #0 @@ -31722,7 +31728,7 @@ FUN_021F42B8: ; 0x021F42B8 mov r1, r0 mov r0, r7 add r2, r5, #0xa1 - bl FUN_021EF794 + bl MOD04_021EF794 ldrsb r0, [r5, #0xc2] cmp r0, #0 addne r0, r5, #0xc2 @@ -31757,7 +31763,7 @@ _021F4354: mov r1, r0 add r0, sp, #0x35 add r2, sp, #0x14 - bl FUN_021EF794 + bl MOD04_021EF794 ldr r0, [r4, #0x100] cmp r0, #0 beq _021F43D0 @@ -31765,7 +31771,7 @@ _021F4354: mov r0, r6 add r1, r4, #0x110 add r2, r4, #0x144 - bl FUN_021F84F4 + bl MOD04_021F84F4 ldr r0, [sp, #0x10] cmp r0, #0 ldrne r0, [r0, #4] @@ -31777,26 +31783,26 @@ _021F43D0: ldr r2, _021F462C ; =0x0220DFFC mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F4630 ; =0x0220DE88 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r6 add r1, r4, #0x1f4 add r2, r5, #0x80 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldrsb r0, [r5, #0xc2] cmp r0, #0 beq _021F4430 ldr r2, _021F4634 ; =0x0220E004 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r6 add r1, r4, #0x1f4 add r2, r5, #0xc2 - bl FUN_021F2F9C + bl MOD04_021F2F9C b _021F44A8 _021F4430: add r0, r4, #0x100 @@ -31806,30 +31812,30 @@ _021F4430: ldr r2, _021F4638 ; =0x0220DEF8 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F461C ; =0x0000012F mov r0, r6 add r1, r4, #0x1f4 add r2, r4, r2 - bl FUN_021F2F9C + bl MOD04_021F2F9C b _021F44A8 _021F4468: ldr r2, _021F463C ; =0x0220E010 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r6 add r1, r4, #0x1f4 add r2, r4, #0x110 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F4640 ; =0x0220E018 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r6 add r1, r4, #0x1f4 add r2, r4, #0x144 - bl FUN_021F2F9C + bl MOD04_021F2F9C _021F44A8: ldr r0, [r4, #0x19c] cmp r0, #0 @@ -31837,11 +31843,11 @@ _021F44A8: ldr r2, _021F4644 ; =0x0220DE9C mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x19c] mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 _021F44D4: ldr r0, [r4, #0x1a0] cmp r0, #0 @@ -31849,32 +31855,32 @@ _021F44D4: ldr r2, _021F4648 ; =0x0220DED8 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x1a0] mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 _021F4500: ldr r2, _021F464C ; =0x0220E01C mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C add r2, sp, #0x14 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r0, [r4, #0x10c] cmp r0, #1 bne _021F453C ldr r2, _021F4650 ; =0x0220E028 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C _021F453C: ldr r2, _021F4654 ; =0x0220E034 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r1, [r4, #0x208] mov r0, r6 mov r1, r1, lsl #0x10 @@ -31889,39 +31895,39 @@ _021F453C: mov r2, r1, lsl #0x10 add r1, r4, #0x1f4 mov r2, r2, asr #0x10 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F4658 ; =0x0220DFC0 mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x46c] mov r0, r6 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 mov r0, r6 add r1, r4, #0x1f4 ldr r2, _021F465C ; =0x0220DFCC - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r6 add r1, r4, #0x1f4 ldr r2, _021F4660 ; =0x02210EA0 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r6 add r1, r4, #0x1f4 ldr r2, _021F4664 ; =0x0220DFD8 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r6 add r1, r4, #0x1f4 ldr r2, [r4, #0x470] - bl FUN_021F2F64 + bl MOD04_021F2F64 mov r0, r6 add r1, r4, #0x1f4 ldr r2, _021F4668 ; =0x0220DFF4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r6 add r1, r4, #0x1f4 ldr r2, _021F466C ; =0x0220DDE4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, #0 add sp, sp, #0x28c ldmia sp!, {r4, r5, r6, r7, pc} @@ -31950,8 +31956,8 @@ _021F4664: .word 0x0220DFD8 _021F4668: .word 0x0220DFF4 _021F466C: .word 0x0220DDE4 - arm_func_start FUN_021F4670 -FUN_021F4670: ; 0x021F4670 + arm_func_start MOD04_021F4670 +MOD04_021F4670: ; 0x021F4670 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x10 mov r8, r0 @@ -31962,7 +31968,7 @@ FUN_021F4670: ; 0x021F4670 mov r5, r3 cmp r1, #4 bne _021F46A8 - bl FUN_021F14C0 + bl MOD04_021F14C0 cmp r0, #0 addne sp, sp, #0x10 ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -31972,7 +31978,7 @@ _021F46A8: beq _021F46CC ldr r1, _021F48AC ; =0x0220E03C mov r0, r8 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x10 mov r0, #2 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -31992,7 +31998,7 @@ _021F46EC: _021F46F8: ldr r1, _021F48B0 ; =0x0220E050 mov r0, r8 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x10 mov r0, #2 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -32002,30 +32008,30 @@ _021F4710: add r0, r4, #0x110 mov r2, #0x1f str r3, [r4, #0x10c] - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r0, _021F48B4 ; =0x0000012F mov r1, r6 add r0, r4, r0 mov r2, #0x15 - bl FUN_021FB3DC + bl MOD04_021FB3DC mov r1, r5 add r0, r4, #0x144 mov r2, #0x33 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r0, _021F48B8 ; =0x00000177 ldr r1, [sp, #0x28] add r0, r4, r0 mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC add r0, r4, #0x144 - bl FUN_021F01C4 + bl MOD04_021F01C4 mov r0, #0x308 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 bne _021F4790 ldr r1, _021F48BC ; =0x0220DF84 mov r0, r8 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x10 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -32045,12 +32051,12 @@ _021F4790: beq _021F47E4 add r0, r4, #0xc2 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r0, _021F48C0 ; =0x000001C2 ldr r1, [sp, #0x30] add r0, r4, r0 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F47E4: ldr r1, [sp, #0x34] cmp r1, #0 @@ -32058,7 +32064,7 @@ _021F47E4: ldr r0, _021F48C4 ; =0x000002C2 mov r2, #0x41 add r0, r4, r0 - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F4800: ldr r1, [sp, #0x40] ldr r0, [sp, #0x44] @@ -32070,23 +32076,23 @@ _021F4800: mov r2, r4 mov r1, #0 str r5, [sp, #8] - bl FUN_021F6D8C + bl MOD04_021F6D8C cmp r0, #0 addne sp, sp, #0x10 ldmneia sp!, {r4, r5, r6, r7, r8, pc} ldr r1, [sp, #0xc] mov r0, r8 - bl FUN_021F48C8 + bl MOD04_021F48C8 movs r4, r0 beq _021F4878 ldr r1, [sp, #0xc] mov r0, r8 str r4, [r1, #0x1c] ldr r1, [sp, #0xc] - bl FUN_021F6E44 + bl MOD04_021F6E44 mov r0, r8 mov r1, #0 - bl FUN_021F35F4 + bl MOD04_021F35F4 add sp, sp, #0x10 mov r0, r4 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -32097,7 +32103,7 @@ _021F4878: beq _021F48A0 ldr r1, [r1, #0x18] mov r0, r8 - bl FUN_021F0FD4 + bl MOD04_021F0FD4 cmp r0, #0 addne sp, sp, #0x10 ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -32114,8 +32120,8 @@ _021F48BC: .word 0x0220DF84 _021F48C0: .word 0x000001C2 _021F48C4: .word 0x000002C2 - arm_func_start FUN_021F48C8 -FUN_021F48C8: ; 0x021F48C8 + arm_func_start MOD04_021F48C8 +MOD04_021F48C8: ; 0x021F48C8 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x10 mov r6, r0 @@ -32127,7 +32133,7 @@ FUN_021F48C8: ; 0x021F48C8 mov r0, #2 mov r1, #1 mov r2, #0 - bl FUN_021EFDB8 + bl MOD04_021EFDB8 str r0, [r4, #0x204] ldr r0, [r4, #0x204] mvn r1, #0 @@ -32136,27 +32142,27 @@ FUN_021F48C8: ; 0x021F48C8 ldr r2, _021F4C1C ; =0x0220E064 mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x10 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} _021F4938: mov r1, #0 - bl FUN_021F017C + bl MOD04_021F017C cmp r0, #0 bne _021F4974 ldr r2, _021F4C20 ; =0x0220E08C mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x10 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} @@ -32169,36 +32175,36 @@ _021F4974: strb r0, [sp, #1] ldr r0, [r4, #0x204] mov r2, #8 - bl FUN_021EFD28 + bl MOD04_021EFD28 mvn r1, #0 cmp r0, r1 bne _021F49D0 ldr r2, _021F4C24 ; =0x0220E0C0 mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x10 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} _021F49D0: ldr r0, [r4, #0x204] mov r1, #5 - bl FUN_021EFCC8 + bl MOD04_021EFCC8 mvn r1, #0 cmp r0, r1 bne _021F4A14 ldr r2, _021F4C28 ; =0x0220E0E8 mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x10 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} @@ -32208,18 +32214,18 @@ _021F4A14: ldr r0, [r4, #0x204] add r1, sp, #0 add r2, sp, #8 - bl FUN_021EFB5C + bl MOD04_021EFB5C mvn r1, #0 cmp r0, r1 bne _021F4A64 ldr r2, _021F4C2C ; =0x0220E114 mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x10 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} @@ -32236,7 +32242,7 @@ _021F4A80: mov r0, #2 mov r1, #1 mov r2, #0 - bl FUN_021EFDB8 + bl MOD04_021EFDB8 str r0, [r4, #0x1d4] ldr r0, [r4, #0x1d4] mvn r1, #0 @@ -32245,27 +32251,27 @@ _021F4A80: ldr r2, _021F4C1C ; =0x0220E064 mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x10 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} _021F4AD0: mov r1, #0 - bl FUN_021F017C + bl MOD04_021F017C cmp r0, #0 bne _021F4B0C ldr r2, _021F4C20 ; =0x0220E08C mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x10 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} @@ -32277,11 +32283,11 @@ _021F4B0C: ldr r2, _021F4C34 ; =0x0220E144 mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x10 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} @@ -32308,12 +32314,12 @@ _021F4B88: strh r0, [sp, #2] ldr r0, [r4, #0x1d4] mov r2, #8 - bl FUN_021EFCE4 + bl MOD04_021EFCE4 mvn r1, #0 cmp r0, r1 bne _021F4C04 ldr r0, [r4, #0x1d4] - bl FUN_021EFB28 + bl MOD04_021EFB28 mvn r1, #5 cmp r0, r1 beq _021F4C04 @@ -32326,11 +32332,11 @@ _021F4B88: ldr r2, _021F4C44 ; =0x0220E198 mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x10 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} @@ -32354,8 +32360,8 @@ _021F4C3C: .word 0x0220DE30 _021F4C40: .word 0x0000CC74 _021F4C44: .word 0x0220E198 - arm_func_start FUN_021F4C48 -FUN_021F4C48: ; 0x021F4C48 + arm_func_start MOD04_021F4C48 +MOD04_021F4C48: ; 0x021F4C48 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov r8, r1 @@ -32389,62 +32395,62 @@ _021F4CB0: .word 0x0220E1C0 _021F4CB4: .word 0x08421085 _021F4CB8: .word 0x0000003E - arm_func_start FUN_021F4CBC -FUN_021F4CBC: ; 0x021F4CBC + arm_func_start MOD04_021F4CBC +MOD04_021F4CBC: ; 0x021F4CBC stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #0xc] cmp r0, #0 ldmeqia sp!, {r4, pc} ldr r0, [r0] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r4, #0xc] mov r1, #0 str r1, [r0] ldr r0, [r4, #0xc] ldr r0, [r0, #4] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r4, #0xc] mov r1, #0 str r1, [r0, #4] ldr r0, [r4, #0xc] ldr r0, [r0, #8] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r4, #0xc] mov r1, #0 str r1, [r0, #8] ldr r0, [r4, #0xc] ldr r0, [r0, #0xc] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r4, #0xc] mov r1, #0 str r1, [r0, #0xc] ldr r0, [r4, #0xc] ldr r0, [r0, #0x10] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r4, #0xc] mov r1, #0 str r1, [r0, #0x10] ldr r0, [r4, #0xc] ldr r0, [r0, #0x14] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r4, #0xc] mov r1, #0 str r1, [r0, #0x14] ldr r0, [r4, #0xc] ldr r0, [r0, #0xc8] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r4, #0xc] mov r1, #0 str r1, [r0, #0xc8] ldr r0, [r4, #0xc] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0xc] ldmia sp!, {r4, pc} - arm_func_start FUN_021F4D88 -FUN_021F4D88: ; 0x021F4D88 + arm_func_start MOD04_021F4D88 +MOD04_021F4D88: ; 0x021F4D88 stmdb sp!, {r4, r5, r6, lr} ldr r0, [r0] mov r5, r1 @@ -32454,9 +32460,9 @@ FUN_021F4D88: ; 0x021F4D88 moveq r0, #1 ldmeqia sp!, {r4, r5, r6, pc} mov r0, r5 - bl FUN_021F4CBC + bl MOD04_021F4CBC mov r0, #0xf0 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [r5, #0xc] ldr r6, [r5, #0xc] cmp r6, #0 @@ -32469,31 +32475,31 @@ _021F4DD0: subs ip, ip, #1 bne _021F4DD0 ldr r0, [r4] - bl FUN_021F0208 + bl MOD04_021F0208 ldr r1, [r5, #0xc] str r0, [r1] ldr r0, [r4, #4] - bl FUN_021F0208 + bl MOD04_021F0208 ldr r1, [r5, #0xc] str r0, [r1, #4] ldr r0, [r4, #8] - bl FUN_021F0208 + bl MOD04_021F0208 ldr r1, [r5, #0xc] str r0, [r1, #8] ldr r0, [r4, #0xc] - bl FUN_021F0208 + bl MOD04_021F0208 ldr r1, [r5, #0xc] str r0, [r1, #0xc] ldr r0, [r4, #0x10] - bl FUN_021F0208 + bl MOD04_021F0208 ldr r1, [r5, #0xc] str r0, [r1, #0x10] ldr r0, [r4, #0x14] - bl FUN_021F0208 + bl MOD04_021F0208 ldr r1, [r5, #0xc] str r0, [r1, #0x14] ldr r0, [r4, #0xc8] - bl FUN_021F0208 + bl MOD04_021F0208 ldr r1, [r5, #0xc] str r0, [r1, #0xc8] _021F4E50: @@ -32503,8 +32509,8 @@ _021F4E50: moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021F4E64 -FUN_021F4E64: ; 0x021F4E64 + arm_func_start MOD04_021F4E64 +MOD04_021F4E64: ; 0x021F4E64 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x20 mov r8, r0 @@ -32526,7 +32532,7 @@ FUN_021F4E64: ; 0x021F4E64 add r2, sp, #0xc mov r0, r8 mov r1, r7 - bl FUN_021F85E8 + bl MOD04_021F85E8 cmp r0, #0 beq _021F4F94 ldr r0, [sp, #0xc] @@ -32534,12 +32540,12 @@ FUN_021F4E64: ; 0x021F4E64 cmp r0, #0 beq _021F4F94 mov r0, #0x204 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 bne _021F4EFC ldr r1, _021F5014 ; =0x0220E200 mov r0, r8 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x20 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -32547,7 +32553,7 @@ _021F4EFC: ldr r0, [sp, #0xc] mov r1, r4 ldr r0, [r0, #0xc] - bl FUN_021F66D4 + bl MOD04_021F66D4 mov r2, #0 str r2, [r4] str r7, [r4, #4] @@ -32561,7 +32567,7 @@ _021F4EFC: mov r0, r8 mov r1, #2 str r7, [sp, #8] - bl FUN_021F6D8C + bl MOD04_021F6D8C cmp r0, #0 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -32574,13 +32580,13 @@ _021F4EFC: mov r0, r8 mov r3, r4 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, r7, r8, pc} ldr r1, [sp, #0x10] mov r0, r8 - bl FUN_021F6C84 + bl MOD04_021F6C84 b _021F4FE8 _021F4F94: str r6, [sp] @@ -32591,7 +32597,7 @@ _021F4F94: mov r1, #2 mov r2, #0 str r4, [sp, #8] - bl FUN_021F6D8C + bl MOD04_021F6D8C cmp r0, #0 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -32600,7 +32606,7 @@ _021F4F94: ldr r5, [r1, #0x18] mov r1, r7 mov r2, r5 - bl FUN_021F5018 + bl MOD04_021F5018 cmp r0, #0 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -32609,7 +32615,7 @@ _021F4FE8: beq _021F5008 mov r0, r8 mov r1, r5 - bl FUN_021F0FD4 + bl MOD04_021F0FD4 cmp r0, #0 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -32620,8 +32626,8 @@ _021F5008: .align 2, 0 _021F5014: .word 0x0220E200 - arm_func_start FUN_021F5018 -FUN_021F5018: ; 0x021F5018 + arm_func_start MOD04_021F5018 +MOD04_021F5018: ; 0x021F5018 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 @@ -32630,31 +32636,31 @@ FUN_021F5018: ; 0x021F5018 mov r6, r1 ldr r2, _021F50A8 ; =0x0220E210 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x198] mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F50AC ; =0x0220E228 mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r2, r6 mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 mov r0, r7 add r1, r4, #0x1f4 ldr r2, _021F50B0 ; =0x0220E234 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r2, r5 mov r0, r7 add r1, r4, #0x1f4 - bl FUN_021F2F64 + bl MOD04_021F2F64 mov r0, r7 add r1, r4, #0x1f4 ldr r2, _021F50B4 ; =0x0220E23C - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} @@ -32664,8 +32670,8 @@ _021F50AC: .word 0x0220E228 _021F50B0: .word 0x0220E234 _021F50B4: .word 0x0220E23C - arm_func_start FUN_021F50B8 -FUN_021F50B8: ; 0x021F50B8 + arm_func_start MOD04_021F50B8 +MOD04_021F50B8: ; 0x021F50B8 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x100 mov r6, r0 @@ -32673,7 +32679,7 @@ FUN_021F50B8: ; 0x021F50B8 ldr r4, [r6] bne _021F50E4 ldr r1, _021F5810 ; =0x0220E264 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x100 mov r0, #2 ldmia sp!, {r4, r5, r6, pc} @@ -32719,7 +32725,7 @@ _021F5170: cmp r1, #0 bne _021F5190 ldr r1, _021F5810 ; =0x0220E264 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x100 mov r0, #2 ldmia sp!, {r4, r5, r6, pc} @@ -32727,15 +32733,15 @@ _021F5190: add r0, sp, #0 mov r1, r5 mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC add r1, sp, #0 add r0, r4, #0x110 mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5814 ; =0x0220E274 add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32745,7 +32751,7 @@ _021F51D0: cmp r1, #0 bne _021F51F0 ldr r1, _021F5810 ; =0x0220E264 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x100 mov r0, #2 ldmia sp!, {r4, r5, r6, pc} @@ -32753,16 +32759,16 @@ _021F51F0: add r0, sp, #0 mov r1, r5 mov r2, #0x15 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r0, _021F5818 ; =0x0000012F add r1, sp, #0 add r0, r4, r0 mov r2, #0x15 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F581C ; =0x0220E27C add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32772,7 +32778,7 @@ _021F5234: cmp r1, #0 bne _021F5254 ldr r1, _021F5810 ; =0x0220E264 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x100 mov r0, #2 ldmia sp!, {r4, r5, r6, pc} @@ -32780,17 +32786,17 @@ _021F5254: add r0, sp, #0 mov r1, r5 mov r2, #0x33 - bl FUN_021FB3DC + bl MOD04_021FB3DC add r0, sp, #0 - bl FUN_021F01C4 + bl MOD04_021F01C4 add r1, sp, #0 add r0, r4, #0x144 mov r2, #0x33 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5820 ; =0x0220E28C add r2, sp, #0 mov r0, r6 - bl FUN_021F5D78 + bl MOD04_021F5D78 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32800,7 +32806,7 @@ _021F529C: cmp r1, #0 bne _021F52BC ldr r1, _021F5810 ; =0x0220E264 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x100 mov r0, #2 ldmia sp!, {r4, r5, r6, pc} @@ -32808,16 +32814,16 @@ _021F52BC: add r0, sp, #0 mov r1, r5 mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r0, _021F5824 ; =0x00000177 add r1, sp, #0 add r0, r4, r0 mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5828 ; =0x0220E294 add r2, sp, #0 mov r0, r6 - bl FUN_021F5D78 + bl MOD04_021F5D78 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32826,11 +32832,11 @@ _021F5300: add r0, sp, #0 mov r1, r5 mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F582C ; =0x0220E2A0 add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32839,11 +32845,11 @@ _021F5330: add r0, sp, #0 mov r1, r5 mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5830 ; =0x0220E2AC add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32852,11 +32858,11 @@ _021F5360: add r0, sp, #0 mov r1, r5 mov r2, #0x4c - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5834 ; =0x0220E2B8 add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32865,11 +32871,11 @@ _021F5390: add r0, sp, #0 mov r1, r5 mov r2, #0xb - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5838 ; =0x0220E2C4 add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32881,7 +32887,7 @@ _021F53C0: beq _021F53E8 ldr r1, _021F583C ; =0x0220E2D0 mov r0, r6 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x100 mov r0, #2 ldmia sp!, {r4, r5, r6, pc} @@ -32889,11 +32895,11 @@ _021F53E8: add r0, sp, #0 mov r1, r5 mov r2, #3 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5840 ; =0x0220E2E8 add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32939,7 +32945,7 @@ _021F549C: ldr r1, _021F5854 ; =0x0220E304 add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32948,11 +32954,11 @@ _021F54BC: add r0, sp, #0 mov r1, r5 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5858 ; =0x0220E30C add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32963,7 +32969,7 @@ _021F54EC: mov r2, r0 ldr r1, _021F585C ; =0x0000070D mov r0, r6 - bl FUN_021F58A0 + bl MOD04_021F58A0 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32974,7 +32980,7 @@ _021F5514: mov r2, r0 ldr r1, _021F5860 ; =0x0000070E mov r0, r6 - bl FUN_021F58A0 + bl MOD04_021F58A0 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32983,11 +32989,11 @@ _021F553C: add r0, sp, #0 mov r1, r5 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5864 ; =0x0220E318 add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -32998,7 +33004,7 @@ _021F556C: mov r2, r0 mov r0, r6 mov r1, #0x710 - bl FUN_021F58A0 + bl MOD04_021F58A0 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33007,11 +33013,11 @@ _021F5594: add r0, sp, #0 mov r1, r5 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5868 ; =0x0220E32C add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33022,7 +33028,7 @@ _021F55C4: mov r2, r0 ldr r1, _021F586C ; =0x00000712 mov r0, r6 - bl FUN_021F58A0 + bl MOD04_021F58A0 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33033,7 +33039,7 @@ _021F55EC: mov r2, r0 ldr r1, _021F5870 ; =0x00000714 mov r0, r6 - bl FUN_021F58A0 + bl MOD04_021F58A0 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33044,7 +33050,7 @@ _021F5614: mov r2, r0 ldr r1, _021F5874 ; =0x00000715 mov r0, r6 - bl FUN_021F58A0 + bl MOD04_021F58A0 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33053,11 +33059,11 @@ _021F563C: add r0, sp, #0 mov r1, r5 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5878 ; =0x0220E340 add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33066,11 +33072,11 @@ _021F566C: add r0, sp, #0 mov r1, r5 mov r2, #0x33 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F587C ; =0x0220E34C add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33079,11 +33085,11 @@ _021F569C: add r0, sp, #0 mov r1, r5 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5880 ; =0x0220E354 add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33092,11 +33098,11 @@ _021F56CC: add r0, sp, #0 mov r1, r5 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5884 ; =0x0220E35C add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33105,11 +33111,11 @@ _021F56FC: add r0, sp, #0 mov r1, r5 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5888 ; =0x0220E364 add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33118,11 +33124,11 @@ _021F572C: add r0, sp, #0 mov r1, r5 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F588C ; =0x0220E36C add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33131,11 +33137,11 @@ _021F575C: add r0, sp, #0 mov r1, r5 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5890 ; =0x0220E374 add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33144,11 +33150,11 @@ _021F578C: add r0, sp, #0 mov r1, r5 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5894 ; =0x0220E37C add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33157,11 +33163,11 @@ _021F57BC: add r0, sp, #0 mov r1, r5 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r1, _021F5898 ; =0x0220E384 add r2, sp, #0 mov r0, r6 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5804 add sp, sp, #0x100 @@ -33169,7 +33175,7 @@ _021F57BC: _021F57EC: ldr r1, _021F589C ; =0x0220E248 mov r0, r6 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x100 mov r0, #2 ldmia sp!, {r4, r5, r6, pc} @@ -33215,8 +33221,8 @@ _021F5894: .word 0x0220E37C _021F5898: .word 0x0220E384 _021F589C: .word 0x0220E248 - arm_func_start FUN_021F58A0 -FUN_021F58A0: ; 0x021F58A0 + arm_func_start MOD04_021F58A0 +MOD04_021F58A0: ; 0x021F58A0 stmdb sp!, {r4, lr} sub sp, sp, #0x10 ldr r3, _021F5D08 ; =0x00000706 @@ -33255,7 +33261,7 @@ _021F5924: cmp r2, #0 bge _021F5940 ldr r1, _021F5D0C ; =0x0220E38C - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x10 mov r0, #2 ldmia sp!, {r4, pc} @@ -33266,7 +33272,7 @@ _021F5940: ldr r1, _021F5D14 ; =0x0220E2C4 add r2, sp, #0 mov r0, r4 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33284,7 +33290,7 @@ _021F596C: _021F5990: ldr r1, _021F5D20 ; =0x0220E304 ldr r2, _021F5D24 ; =0x0220E2F8 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33292,7 +33298,7 @@ _021F5990: _021F59AC: ldr r1, _021F5D20 ; =0x0220E304 ldr r2, _021F5D28 ; =0x0220E2FC - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33300,14 +33306,14 @@ _021F59AC: _021F59C8: ldr r1, _021F5D20 ; =0x0220E304 ldr r2, _021F5D2C ; =0x0220E300 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 ldmia sp!, {r4, pc} _021F59E4: ldr r1, _021F5D30 ; =0x0220E3A0 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x10 mov r0, #2 ldmia sp!, {r4, pc} @@ -33318,7 +33324,7 @@ _021F59F8: ldr r1, _021F5D34 ; =0x0220E30C add r2, sp, #0 mov r0, r4 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33330,7 +33336,7 @@ _021F5A24: ldr r1, _021F5D38 ; =0x0220E3B0 add r2, sp, #0 mov r0, r4 - bl FUN_021F5D78 + bl MOD04_021F5D78 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33342,7 +33348,7 @@ _021F5A50: ldr r1, _021F5D3C ; =0x0220E3C0 add r2, sp, #0 mov r0, r4 - bl FUN_021F5D78 + bl MOD04_021F5D78 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33357,7 +33363,7 @@ _021F5A7C: ldr r1, _021F5D40 ; =0x0220E3CC add r2, sp, #0 mov r0, r4 - bl FUN_021F5D78 + bl MOD04_021F5D78 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33372,7 +33378,7 @@ _021F5AB4: ldr r1, _021F5D44 ; =0x0220E3D8 add r2, sp, #0 mov r0, r4 - bl FUN_021F5D78 + bl MOD04_021F5D78 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33387,7 +33393,7 @@ _021F5AEC: ldr r1, _021F5D48 ; =0x0220E3E8 add r2, sp, #0 mov r0, r4 - bl FUN_021F5D78 + bl MOD04_021F5D78 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33399,7 +33405,7 @@ _021F5B24: ldr r1, _021F5D4C ; =0x0220E3F8 add r2, sp, #0 mov r0, r4 - bl FUN_021F5D78 + bl MOD04_021F5D78 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33411,7 +33417,7 @@ _021F5B50: ldr r1, _021F5D50 ; =0x0220E408 add r2, sp, #0 mov r0, r4 - bl FUN_021F5D78 + bl MOD04_021F5D78 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33425,7 +33431,7 @@ _021F5B7C: ldr r1, _021F5D54 ; =0x0220E41C add r2, sp, #0 mov r0, r4 - bl FUN_021F5D78 + bl MOD04_021F5D78 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33437,7 +33443,7 @@ _021F5BB0: ldr r1, _021F5D58 ; =0x0220E354 add r2, sp, #0 mov r0, r4 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33449,7 +33455,7 @@ _021F5BDC: ldr r1, _021F5D5C ; =0x0220E35C add r2, sp, #0 mov r0, r4 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33461,7 +33467,7 @@ _021F5C08: ldr r1, _021F5D60 ; =0x0220E364 add r2, sp, #0 mov r0, r4 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33473,7 +33479,7 @@ _021F5C34: ldr r1, _021F5D64 ; =0x0220E36C add r2, sp, #0 mov r0, r4 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33485,7 +33491,7 @@ _021F5C60: ldr r1, _021F5D68 ; =0x0220E374 add r2, sp, #0 mov r0, r4 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33497,7 +33503,7 @@ _021F5C8C: ldr r1, _021F5D6C ; =0x0220E37C add r2, sp, #0 mov r0, r4 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33509,7 +33515,7 @@ _021F5CB8: ldr r1, _021F5D70 ; =0x0220E384 add r2, sp, #0 mov r0, r4 - bl FUN_021F5DB8 + bl MOD04_021F5DB8 cmp r0, #0 beq _021F5CFC add sp, sp, #0x10 @@ -33517,7 +33523,7 @@ _021F5CB8: _021F5CE4: ldr r1, _021F5D74 ; =0x0220E248 mov r0, r4 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x10 mov r0, #2 ldmia sp!, {r4, pc} @@ -33555,46 +33561,46 @@ _021F5D6C: .word 0x0220E37C _021F5D70: .word 0x0220E384 _021F5D74: .word 0x0220E248 - arm_func_start FUN_021F5D78 -FUN_021F5D78: ; 0x021F5D78 + arm_func_start MOD04_021F5D78 +MOD04_021F5D78: ; 0x021F5D78 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r4, [r6] mov r5, r2 mov r2, r1 add r1, r4, #0x450 - bl FUN_021F2F9C + bl MOD04_021F2F9C cmp r0, #0 ldmneia sp!, {r4, r5, r6, pc} mov r0, r6 mov r2, r5 add r1, r4, #0x450 - bl FUN_021F2F9C + bl MOD04_021F2F9C cmp r0, #0 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021F5DB8 -FUN_021F5DB8: ; 0x021F5DB8 + arm_func_start MOD04_021F5DB8 +MOD04_021F5DB8: ; 0x021F5DB8 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r4, [r6] mov r5, r2 mov r2, r1 add r1, r4, #0x440 - bl FUN_021F2F9C + bl MOD04_021F2F9C cmp r0, #0 ldmneia sp!, {r4, r5, r6, pc} mov r0, r6 mov r2, r5 add r1, r4, #0x440 - bl FUN_021F2F9C + bl MOD04_021F2F9C cmp r0, #0 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021F5DF8 -FUN_021F5DF8: ; 0x021F5DF8 + arm_func_start MOD04_021F5DF8 +MOD04_021F5DF8: ; 0x021F5DF8 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r4, [r6] @@ -33603,19 +33609,19 @@ FUN_021F5DF8: ; 0x021F5DF8 cmp r2, #0 ble _021F5E54 ldr r2, _021F5EB0 ; =0x0220E42C - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x198] mov r0, r6 mov r1, r5 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, [r4, #0x440] mov r0, r6 mov r1, r5 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F5EB4 ; =0x0220E23C mov r0, r6 mov r1, r5 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, #0 str r0, [r4, #0x448] _021F5E54: @@ -33625,19 +33631,19 @@ _021F5E54: ldr r2, _021F5EB8 ; =0x0220E444 mov r0, r6 mov r1, r5 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r4, #0x198] mov r0, r6 mov r1, r5 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, [r4, #0x450] mov r0, r6 mov r1, r5 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F5EB4 ; =0x0220E23C mov r0, r6 mov r1, r5 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, #0 str r0, [r4, #0x458] _021F5EA8: @@ -33648,8 +33654,8 @@ _021F5EB0: .word 0x0220E42C _021F5EB4: .word 0x0220E23C _021F5EB8: .word 0x0220E444 - arm_func_start FUN_021F5EBC -FUN_021F5EBC: ; 0x021F5EBC + arm_func_start MOD04_021F5EBC +MOD04_021F5EBC: ; 0x021F5EBC stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x26c mov r4, r2 @@ -33658,7 +33664,7 @@ FUN_021F5EBC: ; 0x021F5EBC mov r1, r4 mov r2, #1 ldr r8, [sl] - bl FUN_021FB2F8 + bl MOD04_021FB2F8 cmp r0, #0 addne sp, sp, #0x26c movne r0, #4 @@ -33672,11 +33678,11 @@ FUN_021F5EBC: ; 0x021F5EBC ldr r2, _021F664C ; =0x0220E460 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x26c mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -33685,17 +33691,17 @@ _021F5F34: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F5F7C ldr r2, _021F664C ; =0x0220E460 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x26c mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -33714,7 +33720,7 @@ _021F5FA4: add r2, sp, #8 mov r0, sl mov r1, sb - bl FUN_021F85E8 + bl MOD04_021F85E8 mov r0, #0 add r6, sp, #0x12c mov r1, r0 @@ -33744,7 +33750,7 @@ _021F5FCC: mov r3, #0x1f str r2, [sp, #0x12c] str r5, [sp, #0x1f4] - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 ldreq r0, [sp, #0x12c] moveq r1, #0 @@ -33753,7 +33759,7 @@ _021F5FCC: ldr r1, _021F6664 ; =0x0220E27C mov r0, r4 mov r3, #0x15 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 ldreq r0, [sp, #0x130] moveq r1, #0 @@ -33762,7 +33768,7 @@ _021F5FCC: ldr r1, _021F6668 ; =0x0220E28C mov r0, r4 mov r3, #0x33 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 ldreq r0, [sp, #0x134] moveq r1, #0 @@ -33771,7 +33777,7 @@ _021F5FCC: ldr r1, _021F666C ; =0x0220E2A0 mov r0, r4 mov r3, #0x1f - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 ldreq r0, [sp, #0x138] moveq r1, #0 @@ -33780,7 +33786,7 @@ _021F5FCC: ldr r1, _021F6670 ; =0x0220E2AC mov r0, r4 mov r3, #0x1f - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 ldreq r0, [sp, #0x13c] moveq r1, #0 @@ -33789,7 +33795,7 @@ _021F5FCC: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 mvneq r0, #0 streq r0, [sp, #0x144] @@ -33802,7 +33808,7 @@ _021F60F8: ldr r1, _021F6678 ; =0x0220E2B8 mov r0, r4 mov r3, #0x4c - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 ldreq r0, [sp, #0x140] moveq r1, #0 @@ -33811,7 +33817,7 @@ _021F60F8: add r2, sp, #0x148 mov r0, r4 mov r3, #0xb - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 add r2, sp, #0x100 @@ -33820,7 +33826,7 @@ _021F60F8: add r2, r2, #0x53 mov r0, r4 mov r3, #3 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streqb r0, [sp, #0x153] @@ -33828,7 +33834,7 @@ _021F60F8: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [sp, #0x158] @@ -33842,7 +33848,7 @@ _021F6194: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [sp, #0x15c] @@ -33856,7 +33862,7 @@ _021F61C8: add r2, sp, #0x160 mov r0, r4 mov r3, #0x80 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streqb r0, [sp, #0x160] @@ -33864,7 +33870,7 @@ _021F61C8: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [sp, #0x1e0] @@ -33879,7 +33885,7 @@ _021F61C8: add r3, sp, #0x1e4 mov r0, sl str r5, [sp] - bl FUN_021F68D8 + bl MOD04_021F68D8 cmp r0, #0 addne sp, sp, #0x26c ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -33888,7 +33894,7 @@ _021F6244: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 ldreq r0, _021F6698 ; =0x00000502 streq r0, [sp, #0x1ec] @@ -33908,7 +33914,7 @@ _021F6290: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 mvneq r0, #0 streq r0, [sp, #0x1f0] @@ -33921,7 +33927,7 @@ _021F62C0: ldr r1, _021F66A4 ; =0x0220E34C mov r0, r4 mov r3, #0x33 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 ldreq r0, [sp, #0x1f4] moveq r1, #0 @@ -33930,7 +33936,7 @@ _021F62C0: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [sp, #0x1f8] @@ -33943,7 +33949,7 @@ _021F6314: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [sp, #0x1fc] @@ -33956,7 +33962,7 @@ _021F6344: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [sp, #0x200] @@ -33969,7 +33975,7 @@ _021F6374: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [sp, #0x204] @@ -33982,7 +33988,7 @@ _021F63A4: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [sp, #0x208] @@ -33995,7 +34001,7 @@ _021F63D4: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [sp, #0x20c] @@ -34008,7 +34014,7 @@ _021F6404: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [sp, #0x210] @@ -34021,7 +34027,7 @@ _021F6434: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [sp, #0x214] @@ -34034,7 +34040,7 @@ _021F6464: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streq r0, [sp, #0x218] @@ -34047,17 +34053,17 @@ _021F6494: add r2, sp, #0x14 mov r0, r4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F64DC ldr r2, _021F664C ; =0x0220E460 mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x26c mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -34080,7 +34086,7 @@ _021F64F4: bne _021F6528 mov r0, sl mov r1, sb - bl FUN_021F8624 + bl MOD04_021F8624 str r0, [sp, #8] _021F6528: mov r6, r4 @@ -34098,19 +34104,19 @@ _021F653C: beq _021F6564 mov r0, sl mov r1, sb - bl FUN_021F8624 + bl MOD04_021F8624 str r0, [sp, #8] _021F6564: cmp r6, #0 beq _021F6594 ldr r0, [sp, #8] ldr r0, [r0, #0x18] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r1, [sp, #8] mov r2, #0 add r0, sp, #0x14 str r2, [r1, #0x18] - bl FUN_021F0208 + bl MOD04_021F0208 ldr r1, [sp, #8] str r0, [r1, #0x18] _021F6594: @@ -34120,7 +34126,7 @@ _021F6594: ldr r1, [sp, #8] add r2, sp, #0x12c mov r0, sl - bl FUN_021F4D88 + bl MOD04_021F4D88 _021F65B0: ldr r1, [fp, #0xc] ldr r0, [fp, #0x10] @@ -34129,19 +34135,19 @@ _021F65B0: str r0, [sp, #0x10] beq _021F6630 mov r0, #0x204 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 bne _021F65F0 ldr r1, _021F66D0 ; =0x0220E200 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x26c mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021F65F0: add r0, sp, #0x12c mov r1, r4 - bl FUN_021F66D4 + bl MOD04_021F66D4 mov r0, #0 str r0, [r4] str sb, [r4, #4] @@ -34151,14 +34157,14 @@ _021F65F0: mov r0, sl mov r3, r4 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 addne sp, sp, #0x26c ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021F6630: mov r0, sl mov r1, fp - bl FUN_021F6C84 + bl MOD04_021F6C84 mov r0, #0 add sp, sp, #0x26c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -34199,8 +34205,8 @@ _021F66C8: .word 0x0220E4D4 _021F66CC: .word 0x0220E4DC _021F66D0: .word 0x0220E200 - arm_func_start FUN_021F66D4 -FUN_021F66D4: ; 0x021F66D4 + arm_func_start MOD04_021F66D4 +MOD04_021F66D4: ; 0x021F66D4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -34212,7 +34218,7 @@ FUN_021F66D4: ; 0x021F66D4 beq _021F6704 add r0, r4, #8 mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F6704: ldr r1, [r5, #4] cmp r1, #0 @@ -34221,7 +34227,7 @@ _021F6704: beq _021F6724 add r0, r4, #0x27 mov r2, #0x15 - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F6724: ldr r1, [r5, #8] cmp r1, #0 @@ -34230,7 +34236,7 @@ _021F6724: beq _021F6744 add r0, r4, #0x3c mov r2, #0x33 - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F6744: ldr r1, [r5, #0xc] cmp r1, #0 @@ -34239,7 +34245,7 @@ _021F6744: beq _021F6764 add r0, r4, #0x6f mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F6764: ldr r1, [r5, #0x10] cmp r1, #0 @@ -34248,7 +34254,7 @@ _021F6764: beq _021F6784 add r0, r4, #0x8e mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F6784: ldr r1, [r5, #0x14] cmp r1, #0 @@ -34257,19 +34263,19 @@ _021F6784: beq _021F67A4 add r0, r4, #0xad mov r2, #0x4c - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F67A4: ldr r3, [r5, #0x18] add r0, r4, #0x100 add r1, r5, #0x1c mov r2, #0xb str r3, [r4, #0xfc] - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r0, _021F68D4 ; =0x0000010B add r1, r5, #0x27 add r0, r4, r0 mov r2, #3 - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r0, [r5, #0x2c] adds r1, r5, #0x34 str r0, [r4, #0x110] @@ -34280,7 +34286,7 @@ _021F67A4: beq _021F67FC add r0, r4, #0x118 mov r2, #0x80 - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F67FC: ldr r0, [r5, #0xb4] str r0, [r4, #0x198] @@ -34299,7 +34305,7 @@ _021F67FC: beq _021F6844 add r0, r4, #0x1ac mov r2, #0x33 - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F6844: ldr r0, [r5, #0x18] str r0, [r4, #0xfc] @@ -34340,8 +34346,8 @@ _021F6844: .align 2, 0 _021F68D4: .word 0x0000010B - arm_func_start FUN_021F68D8 -FUN_021F68D8: ; 0x021F68D8 + arm_func_start MOD04_021F68D8 +MOD04_021F68D8: ; 0x021F68D8 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 ldr ip, _021F6978 ; =0x0000FFFF @@ -34356,7 +34362,7 @@ FUN_021F68D8: ; 0x021F68D8 mov r1, r6 mov r2, r5 mov r8, r3 - bl FUN_021F6988 + bl MOD04_021F6988 cmp r0, #0 bne _021F6930 ldr r0, _021F697C ; =0x0220E4E4 @@ -34368,7 +34374,7 @@ _021F6930: mov r0, r7 mov r1, r6 mov r2, r5 - bl FUN_021F6988 + bl MOD04_021F6988 cmp r0, #0 strne r7, [sb] ldrne r0, [sp, #0x20] @@ -34379,7 +34385,7 @@ _021F6930: ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc} ldr r1, _021F6984 ; =0x0220E4FC mov r0, r4 - bl FUN_021FAEEC + bl MOD04_021FAEEC mov r0, #2 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} @@ -34389,8 +34395,8 @@ _021F697C: .word 0x0220E4E4 _021F6980: .word 0x0220E4A0 _021F6984: .word 0x0220E4FC - arm_func_start FUN_021F6988 -FUN_021F6988: ; 0x021F6988 + arm_func_start MOD04_021F6988 +MOD04_021F6988: ; 0x021F6988 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 cmp r0, #0 @@ -34521,8 +34527,8 @@ _021F6B44: .word 0x00000190 _021F6B48: .word 0x0000076C _021F6B4C: .word 0x0000081F - arm_func_start FUN_021F6B50 -FUN_021F6B50: ; 0x021F6B50 + arm_func_start MOD04_021F6B50 +MOD04_021F6B50: ; 0x021F6B50 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r1 @@ -34538,25 +34544,25 @@ _021F6B70: ; jump table b _021F6BB4 ; case 3 b _021F6BA8 ; case 4 _021F6B84: - bl FUN_021F3934 + bl MOD04_021F3934 mov r4, r0 b _021F6BD4 _021F6B90: - bl FUN_021F8710 + bl MOD04_021F8710 mov r4, r0 b _021F6BD4 _021F6B9C: - bl FUN_021F5EBC + bl MOD04_021F5EBC mov r4, r0 b _021F6BD4 _021F6BA8: - bl FUN_021FADE8 + bl MOD04_021FADE8 mov r4, r0 b _021F6BD4 _021F6BB4: ldr r1, _021F6BE8 ; =0x0220E50C mov r2, r3 - bl FUN_021FB3D0 + bl MOD04_021FB3D0 ldr r0, _021F6BEC ; =0x0220E554 ldr r1, _021F6BF0 ; =0x0220E558 ldr r3, _021F6BF4 ; =0x00000146 @@ -34574,8 +34580,8 @@ _021F6BEC: .word 0x0220E554 _021F6BF0: .word 0x0220E558 _021F6BF4: .word 0x00000146 - arm_func_start FUN_021F6BF8 -FUN_021F6BF8: ; 0x021F6BF8 + arm_func_start MOD04_021F6BF8 +MOD04_021F6BF8: ; 0x021F6BF8 ldr r0, [r0] ldr r1, [r0, #0x424] cmp r1, #0 @@ -34596,8 +34602,8 @@ _021F6C30: mov r0, #0 bx lr - arm_func_start FUN_021F6C38 -FUN_021F6C38: ; 0x021F6C38 + arm_func_start MOD04_021F6C38 +MOD04_021F6C38: ; 0x021F6C38 ldr r0, [r0] ldr r3, [r0, #0x424] cmp r3, #0 @@ -34621,8 +34627,8 @@ _021F6C70: mov r0, #0 bx lr - arm_func_start FUN_021F6C84 -FUN_021F6C84: ; 0x021F6C84 + arm_func_start MOD04_021F6C84 +MOD04_021F6C84: ; 0x021F6C84 stmdb sp!, {lr} sub sp, sp, #4 ldr ip, [r0] @@ -34639,7 +34645,7 @@ _021F6CA4: streq r2, [ip, #0x424] ldrne r2, [r1, #0x20] strne r2, [r3, #0x20] - bl FUN_021F6CE4 + bl MOD04_021F6CE4 add sp, sp, #4 ldmfd sp!, {pc} _021F6CCC: @@ -34650,8 +34656,8 @@ _021F6CCC: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021F6CE4 -FUN_021F6CE4: ; 0x021F6CE4 + arm_func_start MOD04_021F6CE4 +MOD04_021F6CE4: ; 0x021F6CE4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r1 @@ -34674,32 +34680,32 @@ FUN_021F6CE4: ; 0x021F6CE4 _021F6D30: ldr r0, [r4, #4] mov r1, #2 - bl FUN_021EFD80 + bl MOD04_021EFD80 ldr r0, [r4, #4] - bl FUN_021EFD9C + bl MOD04_021EFD9C ldr r0, [r4, #0x18] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x18] ldr r0, [r4, #8] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #8] _021F6D64: ldr r0, [r5, #4] - bl FUN_021DD82C + bl MOD04_021DD82C mov r1, #0 mov r0, r5 str r1, [r5, #4] - bl FUN_021DD82C + bl MOD04_021DD82C add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 _021F6D84: .word 0x0220E568 _021F6D88: .word 0x0220E558 - arm_func_start FUN_021F6D8C -FUN_021F6D8C: ; 0x021F6D8C + arm_func_start MOD04_021F6D8C +MOD04_021F6D8C: ; 0x021F6D8C stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r0 mov r0, #0x24 @@ -34707,12 +34713,12 @@ FUN_021F6D8C: ; 0x021F6D8C mov r6, r2 mov r5, r3 ldr r4, [r8] - bl FUN_021DD860 + bl MOD04_021DD860 cmp r0, #0 bne _021F6DC8 ldr r1, _021F6E40 ; =0x0220E588 mov r0, r8 - bl FUN_021FAEEC + bl MOD04_021FAEEC mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, pc} _021F6DC8: @@ -34750,8 +34756,8 @@ _021F6E10: .align 2, 0 _021F6E40: .word 0x0220E588 - arm_func_start FUN_021F6E44 -FUN_021F6E44: ; 0x021F6E44 + arm_func_start MOD04_021F6E44 +MOD04_021F6E44: ; 0x021F6E44 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x14 movs r7, r0 @@ -34799,12 +34805,12 @@ _021F6ED4: ; jump table b _021F70DC ; case 4 _021F6EE8: mov r0, #0x20 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 bne _021F6F10 ldr r1, _021F7178 ; =0x0220E588 mov r0, r7 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x14 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} @@ -34828,19 +34834,19 @@ _021F6F10: add r1, sp, #8 mov r0, r7 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021F715C add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, pc} _021F6F70: mov r0, #8 - bl FUN_021DD860 + bl MOD04_021DD860 movs r3, r0 bne _021F6F98 ldr r1, _021F7178 ; =0x0220E588 mov r0, r7 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x14 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} @@ -34861,19 +34867,19 @@ _021F6F98: str r2, [sp, #4] mov r0, r7 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021F715C add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, pc} _021F6FEC: mov r0, #0x204 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 bne _021F7014 ldr r1, _021F7178 ; =0x0220E588 mov r0, r7 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x14 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} @@ -34890,19 +34896,19 @@ _021F7014: mov r0, r7 mov r3, r4 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021F715C add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, pc} _021F7058: mov r0, #0x10 - bl FUN_021DD860 + bl MOD04_021DD860 movs r3, r0 bne _021F7080 ldr r1, _021F7178 ; =0x0220E588 mov r0, r7 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x14 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} @@ -34926,19 +34932,19 @@ _021F708C: add r1, sp, #8 mov r0, r7 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021F715C add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, pc} _021F70DC: mov r0, #4 - bl FUN_021DD860 + bl MOD04_021DD860 movs r3, r0 bne _021F7104 ldr r1, _021F7178 ; =0x0220E588 mov r0, r7 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x14 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} @@ -34955,7 +34961,7 @@ _021F7104: str r2, [sp, #4] mov r0, r7 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021F715C add sp, sp, #0x14 @@ -34979,8 +34985,8 @@ _021F7178: .word 0x0220E588 _021F717C: .word 0x00000201 _021F7180: .word 0x0220E554 - arm_func_start FUN_021F7184 -FUN_021F7184: ; 0x021F7184 + arm_func_start MOD04_021F7184 +MOD04_021F7184: ; 0x021F7184 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x24 movs r6, r1 @@ -35010,7 +35016,7 @@ _021F71D4: add r2, sp, #0 mov r0, r7 mov r1, r6 - bl FUN_021F2C58 + bl MOD04_021F2C58 cmp r0, #0 addne sp, sp, #0x24 ldmneia sp!, {r4, r5, r6, r7, pc} @@ -35018,19 +35024,19 @@ _021F71D4: mov r1, r6 mov r2, r5 mov r3, r4 - bl FUN_021F2C88 + bl MOD04_021F2C88 cmp r0, #0 addne sp, sp, #0x24 ldmneia sp!, {r4, r5, r6, r7, pc} mov r0, r7 mov r1, r6 mov r2, #0 - bl FUN_021F2D8C + bl MOD04_021F2D8C cmp r0, #0 addne sp, sp, #0x24 ldmneia sp!, {r4, r5, r6, r7, pc} mov r0, #0 - bl FUN_021EFAC8 + bl MOD04_021EFAC8 add r0, r0, #0x12c str r0, [r6, #0x10] mov r0, #0 @@ -35043,8 +35049,8 @@ _021F7260: .word 0x00000389 _021F7264: .word 0x0220E5F0 _021F7268: .word 0x0220E5F4 - arm_func_start FUN_021F726C -FUN_021F726C: ; 0x021F726C + arm_func_start MOD04_021F726C +MOD04_021F726C: ; 0x021F726C stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x4c mov sb, r0 @@ -35071,7 +35077,7 @@ _021F72A8: add r2, sp, #8 mov r0, sb mov r1, r8 - bl FUN_021F2C58 + bl MOD04_021F2C58 add sp, sp, #0x4c ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 @@ -35080,8 +35086,8 @@ _021F72E0: .word 0x0220E5E4 _021F72E4: .word 0x00000376 _021F72E8: .word 0x0220E610 - arm_func_start FUN_021F72EC -FUN_021F72EC: ; 0x021F72EC + arm_func_start MOD04_021F72EC +MOD04_021F72EC: ; 0x021F72EC stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x18 movs r7, r1 @@ -35117,35 +35123,35 @@ _021F7338: ldr r2, _021F746C ; =0x0220E634 mov r0, r8 str r6, [sp, #0x10] - bl FUN_021F2F9C + bl MOD04_021F2F9C cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r4, r5, r6, r7, r8, pc} add r1, sp, #0 mov r0, r8 mov r2, r6 - bl FUN_021F2F64 + bl MOD04_021F2F64 cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r4, r5, r6, r7, r8, pc} ldr r2, _021F7470 ; =0x0220E638 add r1, sp, #0 mov r0, r8 - bl FUN_021F2F9C + bl MOD04_021F2F9C cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r4, r5, r6, r7, r8, pc} add r1, sp, #0 mov r0, r8 mov r2, r4 - bl FUN_021F2F64 + bl MOD04_021F2F64 cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r4, r5, r6, r7, r8, pc} ldr r2, _021F7474 ; =0x0220E640 add r1, sp, #0 mov r0, r8 - bl FUN_021F2F9C + bl MOD04_021F2F9C cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -35155,22 +35161,22 @@ _021F7338: mov r2, r5 mov r3, r4 str ip, [sp, #0x14] - bl FUN_021F2FCC + bl MOD04_021F2FCC cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r4, r5, r6, r7, r8, pc} add r1, sp, #0 mov r0, r8 mov r2, #0 - bl FUN_021F30D4 + bl MOD04_021F30D4 cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r4, r5, r6, r7, r8, pc} ldr r0, [r7, #0x38] add r1, sp, #0 - bl FUN_021EEFA8 + bl MOD04_021EEFA8 mov r0, #0 - bl FUN_021EFAC8 + bl MOD04_021EFAC8 add r0, r0, #0x12c str r0, [r7, #0x10] mov r0, #0 @@ -35185,20 +35191,20 @@ _021F746C: .word 0x0220E634 _021F7470: .word 0x0220E638 _021F7474: .word 0x0220E640 - arm_func_start FUN_021F7478 -FUN_021F7478: ; 0x021F7478 + arm_func_start MOD04_021F7478 +MOD04_021F7478: ; 0x021F7478 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc mov r4, r1 ldr r1, [r4, #0xc] add r2, sp, #8 mov r5, r0 - bl FUN_021F85E8 + bl MOD04_021F85E8 cmp r0, #0 bne _021F74B4 ldr r1, _021F7600 ; =0x0220E648 mov r0, r5 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0xc mov r0, #3 ldmia sp!, {r4, r5, pc} @@ -35206,7 +35212,7 @@ _021F74B4: mov r0, #2 mov r1, #1 mov r2, #0 - bl FUN_021EFDB8 + bl MOD04_021EFDB8 str r0, [r4, #8] ldr r0, [r4, #8] mvn r1, #0 @@ -35215,33 +35221,33 @@ _021F74B4: ldr r2, _021F7604 ; =0x0220E664 mov r0, r5 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r5 mov r1, #3 mov r2, #0 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0xc mov r0, #3 ldmia sp!, {r4, r5, pc} _021F7504: mov r1, #0 - bl FUN_021F017C + bl MOD04_021F017C cmp r0, #0 bne _021F7540 ldr r2, _021F7608 ; =0x0220E68C mov r0, r5 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r5 mov r1, #3 mov r2, #0 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0xc mov r0, #3 ldmia sp!, {r4, r5, pc} _021F7540: ldr r0, [r4, #8] - bl FUN_021F7854 + bl MOD04_021F7854 add r1, sp, #0 mov r0, #0 str r0, [r1] @@ -35257,12 +35263,12 @@ _021F7540: ldr r0, [r0, #0x14] strh r0, [sp, #2] ldr r0, [r4, #8] - bl FUN_021EFCE4 + bl MOD04_021EFCE4 mvn r1, #0 cmp r0, r1 bne _021F75EC ldr r0, [r4, #8] - bl FUN_021EFB28 + bl MOD04_021EFB28 mvn r1, #5 cmp r0, r1 beq _021F75EC @@ -35275,11 +35281,11 @@ _021F7540: ldr r2, _021F760C ; =0x0220E6C0 mov r0, r5 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r5 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0xc mov r0, #3 ldmia sp!, {r4, r5, pc} @@ -35295,8 +35301,8 @@ _021F7604: .word 0x0220E664 _021F7608: .word 0x0220E68C _021F760C: .word 0x0220E6C0 - arm_func_start FUN_021F7610 -FUN_021F7610: ; 0x021F7610 + arm_func_start MOD04_021F7610 +MOD04_021F7610: ; 0x021F7610 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x14 mov r2, #0 @@ -35307,7 +35313,7 @@ FUN_021F7610: ; 0x021F7610 mov r1, #2 mov r5, r0 str r2, [sp, #8] - bl FUN_021F6D8C + bl MOD04_021F6D8C cmp r0, #0 addne sp, sp, #0x14 ldmneia sp!, {r4, r5, pc} @@ -35315,7 +35321,7 @@ FUN_021F7610: ; 0x021F7610 ldr r1, [r4, #0xc] ldr r2, [r0, #0x18] mov r0, r5 - bl FUN_021F5018 + bl MOD04_021F5018 cmp r0, #0 moveq r0, #0x65 streq r0, [r4] @@ -35323,15 +35329,15 @@ FUN_021F7610: ; 0x021F7610 add sp, sp, #0x14 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021F7674 -FUN_021F7674: ; 0x021F7674 + arm_func_start MOD04_021F7674 +MOD04_021F7674: ; 0x021F7674 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r5, [r0] mov r0, #0x40 mov r7, r1 mov r6, r2 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 addeq sp, sp, #4 moveq r0, #0 @@ -35346,35 +35352,35 @@ FUN_021F7674: ; 0x021F7674 str r0, [r4, #8] mov r0, #0 str r7, [r4, #0xc] - bl FUN_021EFAC8 + bl MOD04_021EFAC8 add r0, r0, #0x12c str r0, [r4, #0x10] ldr r3, [r5, #0x434] - ldr r2, _021F7700 ; =FUN_021F7704 + ldr r2, _021F7700 ; =MOD04_021F7704 mov r0, #0x18 mov r1, #0 str r3, [r4, #0x3c] - bl FUN_021EF0E4 + bl MOD04_021EF0E4 str r0, [r4, #0x38] mov r0, r4 str r4, [r5, #0x434] add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 -_021F7700: .word FUN_021F7704 +_021F7700: .word MOD04_021F7704 - arm_func_start FUN_021F7704 -FUN_021F7704: ; 0x021F7704 + arm_func_start MOD04_021F7704 +MOD04_021F7704: ; 0x021F7704 stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4] ldmia sp!, {r4, pc} - arm_func_start FUN_021F7720 -FUN_021F7720: ; 0x021F7720 + arm_func_start MOD04_021F7720 +MOD04_021F7720: ; 0x021F7720 ldr r0, [r0] ldr r0, [r0, #0x434] cmp r0, #0 @@ -35394,8 +35400,8 @@ _021F7754: mov r0, #0 bx lr - arm_func_start FUN_021F775C -FUN_021F775C: ; 0x021F775C + arm_func_start MOD04_021F775C +MOD04_021F775C: ; 0x021F775C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r4, r0 @@ -35404,20 +35410,20 @@ FUN_021F775C: ; 0x021F775C ldr r0, [r7, #0x204] cmp r0, r1 beq _021F77E8 - bl FUN_021EFF2C + bl MOD04_021EFF2C cmp r0, #0 beq _021F77E8 mov r1, #0 ldr r0, [r7, #0x204] mov r2, r1 - bl FUN_021EFC94 + bl MOD04_021EFC94 mov r6, r0 mvn r1, #0 cmp r6, r1 beq _021F77E8 mov r0, r4 mov r2, #0 - bl FUN_021F7674 + bl MOD04_021F7674 movs r5, r0 beq _021F77E0 mov r0, #0x68 @@ -35425,13 +35431,13 @@ FUN_021F775C: ; 0x021F775C mov r0, r6 str r6, [r5, #8] mov r1, #0 - bl FUN_021F017C + bl MOD04_021F017C ldr r0, [r5, #8] - bl FUN_021F7854 + bl MOD04_021F7854 b _021F77E8 _021F77E0: mov r0, r6 - bl FUN_021EFD9C + bl MOD04_021EFD9C _021F77E8: ldr r6, [r7, #0x434] cmp r6, #0 @@ -35441,21 +35447,21 @@ _021F77F8: mov r0, r4 mov r1, r6 ldr r7, [r6, #0x3c] - bl FUN_021F7A40 + bl MOD04_021F7A40 ldr r1, [r6] cmp r1, #0x6a beq _021F7830 cmp r0, #0 bne _021F7830 mov r0, r5 - bl FUN_021EFAC8 + bl MOD04_021EFAC8 ldr r1, [r6, #0x10] cmp r0, r1 ble _021F783C _021F7830: mov r0, r4 mov r1, r6 - bl FUN_021F78CC + bl MOD04_021F78CC _021F783C: mov r6, r7 cmp r7, #0 @@ -35465,41 +35471,41 @@ _021F7848: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_021F7854 -FUN_021F7854: ; 0x021F7854 + arm_func_start MOD04_021F7854 +MOD04_021F7854: ; 0x021F7854 stmdb sp!, {r4, lr} mov r4, r0 mov r1, #0x4000 - bl FUN_021F0130 + bl MOD04_021F0130 mov r0, r4 mov r1, #0x8000 - bl FUN_021F0130 + bl MOD04_021F0130 mov r0, r4 mov r1, #0x10000 - bl FUN_021F0130 + bl MOD04_021F0130 mov r0, r4 mov r1, #0x20000 - bl FUN_021F0130 + bl MOD04_021F0130 mov r0, r4 mov r1, #0x40000 - bl FUN_021F0130 + bl MOD04_021F0130 mov r0, r4 mov r1, #0x4000 - bl FUN_021F00E4 + bl MOD04_021F00E4 mov r0, r4 mov r1, #0x8000 - bl FUN_021F00E4 + bl MOD04_021F00E4 mov r0, r4 mov r1, #0x10000 - bl FUN_021F00E4 + bl MOD04_021F00E4 mov r0, r4 - bl FUN_021F009C + bl MOD04_021F009C mov r0, r4 - bl FUN_021F0054 + bl MOD04_021F0054 ldmia sp!, {r4, pc} - arm_func_start FUN_021F78CC -FUN_021F78CC: ; 0x021F78CC + arm_func_start MOD04_021F78CC +MOD04_021F78CC: ; 0x021F78CC stmdb sp!, {r4, r5, r6, lr} mov r5, r0 movs r4, r1 @@ -35529,7 +35535,7 @@ _021F7914: bl __msl_assertion_failed ldr r1, _021F79DC ; =0x0220E6EC mov r0, r5 - bl FUN_021FB3D0 + bl MOD04_021FB3D0 ldmia sp!, {r4, r5, r6, pc} _021F7940: mov r1, r0 @@ -35541,14 +35547,14 @@ _021F7950: str r0, [r1, #0x3c] _021F7958: ldr r0, [r4, #0x38] - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 beq _021F79B8 mov r6, #0 _021F796C: ldr r0, [r4, #0x38] mov r1, r6 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r2, [r0, #0x10] cmp r2, #0x64 bge _021F799C @@ -35557,19 +35563,19 @@ _021F796C: ldr r1, [r4, #0xc] mov r0, r5 add r3, ip, r3 - bl FUN_021F1B60 + bl MOD04_021F1B60 _021F799C: ldr r0, [r4, #0x38] mov r1, r6 - bl FUN_021EED84 + bl MOD04_021EED84 ldr r0, [r4, #0x38] - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 bne _021F796C _021F79B8: mov r0, r5 mov r1, r4 - bl FUN_021F79E0 + bl MOD04_021F79E0 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _021F79C8: .word 0x0220E5D4 @@ -35579,36 +35585,36 @@ _021F79D4: .word 0x0220E6E8 _021F79D8: .word 0x00000225 _021F79DC: .word 0x0220E6EC - arm_func_start FUN_021F79E0 -FUN_021F79E0: ; 0x021F79E0 + arm_func_start MOD04_021F79E0 +MOD04_021F79E0: ; 0x021F79E0 stmdb sp!, {r4, lr} mov r4, r1 ldr r0, [r4, #8] mov r1, #2 - bl FUN_021EFD80 + bl MOD04_021EFD80 ldr r0, [r4, #8] - bl FUN_021EFD9C + bl MOD04_021EFD9C ldr r0, [r4, #0x18] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x18] ldr r0, [r4, #0x28] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x28] ldr r0, [r4, #0x38] cmp r0, #0 beq _021F7A34 - bl FUN_021EF074 + bl MOD04_021EF074 mov r0, #0 str r0, [r4, #0x38] _021F7A34: mov r0, r4 - bl FUN_021DD82C + bl MOD04_021DD82C ldmia sp!, {r4, pc} - arm_func_start FUN_021F7A40 -FUN_021F7A40: ; 0x021F7A40 + arm_func_start MOD04_021F7A40 +MOD04_021F7A40: ; 0x021F7A40 stmdb sp!, {r4, r5, r6, lr} mov r5, r1 ldr r1, [r5] @@ -35630,13 +35636,13 @@ _021F7A70: beq _021F7A9C mov r0, r6 mov r1, r5 - bl FUN_021F8088 + bl MOD04_021F8088 mov r4, r0 b _021F7AAC _021F7A9C: mov r0, r6 mov r1, r5 - bl FUN_021F7E3C + bl MOD04_021F7E3C mov r4, r0 _021F7AAC: cmp r4, #0 @@ -35646,7 +35652,7 @@ _021F7AAC: bne _021F7AD0 mov r0, r6 mov r1, r5 - bl FUN_021F7AE4 + bl MOD04_021F7AE4 mov r4, r0 _021F7AD0: mov r0, r4 @@ -35656,8 +35662,8 @@ _021F7AD8: .word 0x0220E710 _021F7ADC: .word 0x0220E5E4 _021F7AE0: .word 0x000001D9 - arm_func_start FUN_021F7AE4 -FUN_021F7AE4: ; 0x021F7AE4 + arm_func_start MOD04_021F7AE4 +MOD04_021F7AE4: ; 0x021F7AE4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x24 mov r6, r1 @@ -35673,7 +35679,7 @@ FUN_021F7AE4: ; 0x021F7AE4 str r1, [sp, #4] ldr r1, [r6, #8] add r2, r6, #0x28 - bl FUN_021F28AC + bl MOD04_021F28AC ldr r1, [sp, #0xc] cmp r1, #0 bne _021F7B38 @@ -35691,7 +35697,7 @@ _021F7B4C: bne _021F7B84 mov r0, r7 mov r1, r6 - bl FUN_021F7D6C + bl MOD04_021F7D6C cmp r0, #0 addne sp, sp, #0x24 ldmneia sp!, {r4, r5, r6, r7, pc} @@ -35709,7 +35715,7 @@ _021F7B84: add r3, sp, #8 mov r0, r7 add r2, r6, #0x18 - bl FUN_021F2A2C + bl MOD04_021F2A2C cmp r0, #0 movne r0, #0x6a strne r0, [r6] @@ -35720,7 +35726,7 @@ _021F7B84: cmp r0, #0 ble _021F7BDC mov r0, #0 - bl FUN_021EFAC8 + bl MOD04_021EFAC8 add r0, r0, #0x12c str r0, [r6, #0x10] _021F7BDC: @@ -35730,7 +35736,7 @@ _021F7BDC: mov r0, r7 add r1, r6, #0x18 str r4, [sp] - bl FUN_021F2770 + bl MOD04_021F2770 cmp r0, #0 addne sp, sp, #0x24 ldmneia sp!, {r4, r5, r6, r7, pc} @@ -35768,12 +35774,12 @@ _021F7C64: str r0, [sp, #0x14] beq _021F7D2C mov r0, #0xc - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 bne _021F7CA4 ldr r1, _021F7D64 ; =0x0220E73C mov r0, r7 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x24 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} @@ -35781,10 +35787,10 @@ _021F7CA4: ldr r0, [r6, #0xc] str r0, [r4] ldr r0, [sp, #0x18] - bl FUN_021F0208 + bl MOD04_021F0208 str r0, [r4, #8] mov r0, #0 - bl FUN_021EFAC8 + bl MOD04_021EFAC8 str r0, [r4, #4] mov r0, #0 str r0, [sp] @@ -35794,7 +35800,7 @@ _021F7CA4: mov r0, r7 mov r3, r4 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021F7D2C add sp, sp, #0x24 @@ -35804,7 +35810,7 @@ _021F7CF8: ldr r3, _021F7D68 ; =0x0220E74C mov r0, r7 mov r2, #0x67 - bl FUN_021F1A64 + bl MOD04_021F1A64 b _021F7D2C _021F7D10: str r1, [sp] @@ -35813,11 +35819,11 @@ _021F7D10: str r1, [sp, #4] ldr r3, [r6, #0x18] mov r1, r6 - bl FUN_021FACC0 + bl MOD04_021FACC0 _021F7D2C: mov r0, r7 add r1, r6, #0x18 - bl FUN_021F2704 + bl MOD04_021F2704 _021F7D38: ldr r0, [sp, #0x18] cmp r0, #0 @@ -35834,8 +35840,8 @@ _021F7D60: .word 0x0220E738 _021F7D64: .word 0x0220E73C _021F7D68: .word 0x0220E74C - arm_func_start FUN_021F7D6C -FUN_021F7D6C: ; 0x021F7D6C + arm_func_start MOD04_021F7D6C +MOD04_021F7D6C: ; 0x021F7D6C stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0xc mov r8, r1 @@ -35846,7 +35852,7 @@ FUN_021F7D6C: ; 0x021F7D6C movne r0, #0 ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc} ldr r0, [r8, #0x38] - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 beq _021F7E2C ldr r5, _021F7E38 ; =0x0220E738 @@ -35855,7 +35861,7 @@ FUN_021F7D6C: ; 0x021F7D6C _021F7DAC: ldr r0, [r8, #0x38] mov r1, r7 - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r6, r0 str r7, [sp] str r5, [sp, #4] @@ -35863,7 +35869,7 @@ _021F7DAC: mov r0, sb mov r2, r6 mov r3, r4 - bl FUN_021F28AC + bl MOD04_021F28AC ldr r1, [sp, #8] cmp r1, #0 bne _021F7DEC @@ -35882,9 +35888,9 @@ _021F7E00: bne _021F7E2C ldr r0, [r8, #0x38] mov r1, r7 - bl FUN_021EED84 + bl MOD04_021EED84 ldr r0, [r8, #0x38] - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 bne _021F7DAC _021F7E2C: @@ -35894,8 +35900,8 @@ _021F7E2C: .align 2, 0 _021F7E38: .word 0x0220E738 - arm_func_start FUN_021F7E3C -FUN_021F7E3C: ; 0x021F7E3C + arm_func_start MOD04_021F7E3C +MOD04_021F7E3C: ; 0x021F7E3C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x184 mov r5, r1 @@ -35918,7 +35924,7 @@ _021F7E70: add r3, sp, #8 mov r0, r6 add r2, r5, #0x18 - bl FUN_021F2A2C + bl MOD04_021F2A2C cmp r0, #0 addne sp, sp, #0x184 ldmneia sp!, {r4, r5, r6, r7, pc} @@ -35947,7 +35953,7 @@ _021F7E70: add r2, sp, #0x10 mov r0, r7 mov r3, #0x10 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0x6a streq r0, [r5] @@ -35961,7 +35967,7 @@ _021F7E70: ldr r1, _021F8070 ; =0x0220E788 add r2, sp, #0x20 mov r3, #0x1f - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0x6a streq r0, [r5] @@ -35972,7 +35978,7 @@ _021F7E70: ldr r1, _021F8074 ; =0x0220E790 add r2, sp, #0x3f mov r3, #0x21 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0x6a streq r0, [r5] @@ -35991,7 +35997,7 @@ _021F7E70: mov r1, r0 add r0, sp, #0x81 add r2, sp, #0x60 - bl FUN_021EF794 + bl MOD04_021EF794 add r0, sp, #0x3f add r1, sp, #0x60 bl strcmp @@ -36000,11 +36006,11 @@ _021F7E70: ldr r2, _021F8080 ; =0x0220E7A0 mov r0, r6 add r1, r5, #0x28 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F8064 ; =0x0220E770 mov r0, r6 add r1, r5, #0x28 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, #0x6a str r0, [r5] add sp, sp, #0x184 @@ -36014,11 +36020,11 @@ _021F8000: ldr r2, _021F8084 ; =0x0220E7A8 mov r0, r6 add r1, r5, #0x28 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F8064 ; =0x0220E770 mov r0, r6 add r1, r5, #0x28 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, #0x69 str r0, [r5] str r7, [r5, #0xc] @@ -36050,8 +36056,8 @@ _021F807C: .word 0x0220E798 _021F8080: .word 0x0220E7A0 _021F8084: .word 0x0220E7A8 - arm_func_start FUN_021F8088 -FUN_021F8088: ; 0x021F8088 + arm_func_start MOD04_021F8088 +MOD04_021F8088: ; 0x021F8088 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x1c mov r6, r1 @@ -36068,7 +36074,7 @@ _021F80B0: ; jump table b _021F80D4 ; case 2 b _021F8258 ; case 3 _021F80C0: - bl FUN_021F7478 + bl MOD04_021F7478 cmp r0, #0 beq _021F8360 add sp, sp, #0x1c @@ -36076,7 +36082,7 @@ _021F80C0: _021F80D4: ldr r1, [r6, #8] add r2, sp, #8 - bl FUN_021FB0FC + bl MOD04_021FB0FC cmp r0, #0 addne sp, sp, #0x1c ldmneia sp!, {r4, r5, r6, r7, pc} @@ -36085,7 +36091,7 @@ _021F80D4: bne _021F8110 ldr r1, _021F83B8 ; =0x0220E648 mov r0, r7 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x1c mov r0, #3 ldmia sp!, {r4, r5, r6, r7, pc} @@ -36096,12 +36102,12 @@ _021F8110: add r2, sp, #0x14 mov r0, r7 mov r4, #1 - bl FUN_021F85E8 + bl MOD04_021F85E8 cmp r0, #0 bne _021F814C ldr r1, _021F83B8 ; =0x0220E648 mov r0, r7 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x1c mov r0, #3 ldmia sp!, {r4, r5, r6, r7, pc} @@ -36109,36 +36115,36 @@ _021F814C: ldr r2, _021F83BC ; =0x0220E778 mov r0, r7 add r1, r6, #0x28 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F83C0 ; =0x0220E780 mov r0, r7 add r1, r6, #0x28 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [r5, #0x1a0] mov r0, r7 add r1, r6, #0x28 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F83C4 ; =0x0220E788 mov r0, r7 add r1, r6, #0x28 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r7 add r1, r6, #0x28 add r2, r5, #0x110 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r7 add r1, r6, #0x28 ldr r2, _021F83C8 ; =0x0220E790 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r7 add r1, r6, #0x28 ldr r2, [sp, #0x14] ldr r2, [r2, #0x18] - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, r7 add r1, r6, #0x28 ldr r2, _021F83CC ; =0x0220E770 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r3, [r5, #0x434] cmp r3, #0 beq _021F8210 @@ -36162,17 +36168,17 @@ _021F8210: beq _021F824C ldr r0, [sp, #0x14] ldr r0, [r0, #0x18] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [sp, #0x14] mov r1, #0 str r1, [r0, #0x18] ldr r0, [sp, #0x14] - bl FUN_021F83EC + bl MOD04_021F83EC cmp r0, #0 beq _021F824C ldr r1, [sp, #0x14] mov r0, r7 - bl FUN_021F85A0 + bl MOD04_021F85A0 _021F824C: mov r0, #0x68 str r0, [r6] @@ -36185,7 +36191,7 @@ _021F8258: str r1, [sp, #4] ldr r1, [r6, #8] add r2, r6, #0x18 - bl FUN_021F2A2C + bl MOD04_021F2A2C cmp r0, #0 addne sp, sp, #0x1c ldmneia sp!, {r4, r5, r6, r7, pc} @@ -36211,14 +36217,14 @@ _021F8258: ble _021F82EC ldr r1, _021F83D8 ; =0x0220E7B0 mov r0, r7 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x1c mov r0, #3 ldmia sp!, {r4, r5, r6, r7, pc} _021F82EC: mov r0, r7 mov r1, r6 - bl FUN_021F7610 + bl MOD04_021F7610 cmp r0, #0 beq _021F8338 add sp, sp, #0x1c @@ -36232,7 +36238,7 @@ _021F8308: beq _021F8338 ldr r1, _021F83E0 ; =0x0220E7D4 mov r0, r7 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x1c mov r0, #3 ldmia sp!, {r4, r5, r6, r7, pc} @@ -36260,7 +36266,7 @@ _021F8360: add r3, sp, #0x10 mov r0, r7 add r2, r6, #0x28 - bl FUN_021F28AC + bl MOD04_021F28AC ldr r1, [sp, #0x10] cmp r1, #0 bne _021F83A4 @@ -36288,8 +36294,8 @@ _021F83E0: .word 0x0220E7D4 _021F83E4: .word 0x0220E6E8 _021F83E8: .word 0x0220E5E4 - arm_func_start FUN_021F83EC -FUN_021F83EC: ; 0x021F83EC + arm_func_start MOD04_021F83EC +MOD04_021F83EC: ; 0x021F83EC cmp r0, #0 beq _021F8428 ldr r1, [r0, #0xc] @@ -36309,24 +36315,24 @@ _021F8428: mov r0, #0 bx lr - arm_func_start FUN_021F8430 -FUN_021F8430: ; 0x021F8430 + arm_func_start MOD04_021F8430 +MOD04_021F8430: ; 0x021F8430 stmdb sp!, {lr} sub sp, sp, #0xc str r1, [sp] mov r3, #0 - ldr r1, _021F845C ; =FUN_021F8460 + ldr r1, _021F845C ; =MOD04_021F8460 add r2, sp, #0 str r3, [sp, #4] - bl FUN_021F848C + bl MOD04_021F848C ldr r0, [sp, #4] add sp, sp, #0xc ldmfd sp!, {pc} .align 2, 0 -_021F845C: .word FUN_021F8460 +_021F845C: .word MOD04_021F8460 - arm_func_start FUN_021F8460 -FUN_021F8460: ; 0x021F8460 + arm_func_start MOD04_021F8460 +MOD04_021F8460: ; 0x021F8460 ldr r0, [r1, #8] cmp r0, #0 beq _021F8484 @@ -36340,8 +36346,8 @@ _021F8484: mov r0, #1 bx lr - arm_func_start FUN_021F848C -FUN_021F848C: ; 0x021F848C + arm_func_start MOD04_021F848C +MOD04_021F848C: ; 0x021F848C stmdb sp!, {lr} sub sp, sp, #0xc ldr r3, [r0] @@ -36349,19 +36355,19 @@ FUN_021F848C: ; 0x021F848C str r2, [sp, #8] str r0, [sp] ldr r0, [r3, #0x428] - ldr r1, _021F84C8 ; =FUN_021F84CC + ldr r1, _021F84C8 ; =MOD04_021F84CC add r2, sp, #0 - bl FUN_021EF264 + bl MOD04_021EF264 cmp r0, #0 moveq r0, #1 movne r0, #0 add sp, sp, #0xc ldmfd sp!, {pc} .align 2, 0 -_021F84C8: .word FUN_021F84CC +_021F84C8: .word MOD04_021F84CC - arm_func_start FUN_021F84CC -FUN_021F84CC: ; 0x021F84CC + arm_func_start MOD04_021F84CC +MOD04_021F84CC: ; 0x021F84CC stmdb sp!, {lr} sub sp, sp, #4 mov ip, r0 @@ -36373,19 +36379,19 @@ FUN_021F84CC: ; 0x021F84CC add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021F84F4 -FUN_021F84F4: ; 0x021F84F4 + arm_func_start MOD04_021F84F4 +MOD04_021F84F4: ; 0x021F84F4 stmdb sp!, {r4, lr} sub sp, sp, #0x10 str r1, [sp] mov ip, #0 str r2, [sp, #4] mov r4, r3 - ldr r1, _021F853C ; =FUN_021F8540 + ldr r1, _021F853C ; =MOD04_021F8540 add r2, sp, #0 str ip, [sp, #0xc] str r4, [sp, #8] - bl FUN_021F848C + bl MOD04_021F848C ldr r0, [sp, #0xc] cmp r0, #0 moveq r0, #0 @@ -36394,10 +36400,10 @@ FUN_021F84F4: ; 0x021F84F4 add sp, sp, #0x10 ldmia sp!, {r4, pc} .align 2, 0 -_021F853C: .word FUN_021F8540 +_021F853C: .word MOD04_021F8540 - arm_func_start FUN_021F8540 -FUN_021F8540: ; 0x021F8540 + arm_func_start MOD04_021F8540 +MOD04_021F8540: ; 0x021F8540 stmdb sp!, {r4, r5, r6, lr} mov r6, r1 ldr r4, [r6, #0xc] @@ -36424,33 +36430,33 @@ _021F8598: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021F85A0 -FUN_021F85A0: ; 0x021F85A0 + arm_func_start MOD04_021F85A0 +MOD04_021F85A0: ; 0x021F85A0 ldr r0, [r0] - ldr ip, _021F85B0 ; =FUN_021EF3F4 + ldr ip, _021F85B0 ; =MOD04_021EF3F4 ldr r0, [r0, #0x428] bx ip .align 2, 0 -_021F85B0: .word FUN_021EF3F4 +_021F85B0: .word MOD04_021EF3F4 - arm_func_start FUN_021F85B4 -FUN_021F85B4: ; 0x021F85B4 + arm_func_start MOD04_021F85B4 +MOD04_021F85B4: ; 0x021F85B4 stmdb sp!, {r4, lr} sub sp, sp, #8 add r2, sp, #0 ldr r4, [r0] - bl FUN_021F85E8 + bl MOD04_021F85E8 cmp r0, #0 addeq sp, sp, #8 ldmeqia sp!, {r4, pc} ldr r0, [r4, #0x428] ldr r1, [sp] - bl FUN_021EF3F4 + bl MOD04_021EF3F4 add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_start FUN_021F85E8 -FUN_021F85E8: ; 0x021F85E8 + arm_func_start MOD04_021F85E8 +MOD04_021F85E8: ; 0x021F85E8 stmdb sp!, {r4, lr} sub sp, sp, #0x20 ldr r0, [r0] @@ -36458,7 +36464,7 @@ FUN_021F85E8: ; 0x021F85E8 str r1, [sp] ldr r0, [r0, #0x428] add r1, sp, #0 - bl FUN_021EF358 + bl MOD04_021EF358 cmp r4, #0 strne r0, [r4] cmp r0, #0 @@ -36467,8 +36473,8 @@ FUN_021F85E8: ; 0x021F85E8 add sp, sp, #0x20 ldmia sp!, {r4, pc} - arm_func_start FUN_021F8624 -FUN_021F8624: ; 0x021F8624 + arm_func_start MOD04_021F8624 +MOD04_021F8624: ; 0x021F8624 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x20 mov r5, r0 @@ -36491,7 +36497,7 @@ _021F865C: add r2, sp, #0 mov r0, r5 mov r1, r4 - bl FUN_021F85E8 + bl MOD04_021F85E8 cmp r0, #0 ldrne r0, [sp] addne sp, sp, #0x20 @@ -36512,14 +36518,14 @@ _021F865C: str r0, [sp, #0x1c] str r0, [sp, #0x18] ldr r0, [r6] - bl FUN_021EF494 + bl MOD04_021EF494 ldr r0, [r6, #4] add r2, sp, #0 add r3, r0, #1 mov r0, r5 mov r1, r4 str r3, [r6, #4] - bl FUN_021F85E8 + bl MOD04_021F85E8 cmp r0, #0 ldrne r0, [sp] moveq r0, #0 @@ -36531,8 +36537,8 @@ _021F8704: .word 0x0220E7F4 _021F8708: .word 0x0220E7FC _021F870C: .word 0x000002B5 - arm_func_start FUN_021F8710 -FUN_021F8710: ; 0x021F8710 + arm_func_start MOD04_021F8710 +MOD04_021F8710: ; 0x021F8710 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x20 mov r6, r2 @@ -36540,7 +36546,7 @@ FUN_021F8710: ; 0x021F8710 mov r1, r6 mov r2, #1 mov r5, r0 - bl FUN_021FB2F8 + bl MOD04_021FB2F8 cmp r0, #0 addne sp, sp, #0x20 movne r0, #4 @@ -36554,11 +36560,11 @@ FUN_021F8710: ; 0x021F8710 ldr r2, _021F8864 ; =0x0220E814 mov r0, r5 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r5 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x20 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} @@ -36567,17 +36573,17 @@ _021F8784: add r2, sp, #0x10 mov r0, r6 mov r3, #0x10 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F87CC ldr r2, _021F8864 ; =0x0220E814 mov r0, r5 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r5 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x20 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} @@ -36592,12 +36598,12 @@ _021F87CC: cmp r2, #0 beq _021F8848 mov r0, #8 - bl FUN_021DD860 + bl MOD04_021DD860 movs r3, r0 bne _021F8818 ldr r1, _021F886C ; =0x0220E850 mov r0, r5 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x20 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} @@ -36610,14 +36616,14 @@ _021F8818: add r1, sp, #8 mov r0, r5 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, pc} _021F8848: mov r0, r5 mov r1, r4 - bl FUN_021F6C84 + bl MOD04_021F6C84 mov r0, #0 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, pc} @@ -36627,21 +36633,21 @@ _021F8864: .word 0x0220E814 _021F8868: .word 0x0220E844 _021F886C: .word 0x0220E850 - arm_func_start FUN_021F8870 -FUN_021F8870: ; 0x021F8870 + arm_func_start MOD04_021F8870 +MOD04_021F8870: ; 0x021F8870 stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r4, [r0] mov r1, #0 str r1, [r4, #0x430] str r1, [r4, #0x42c] - ldr r0, _021F88C0 ; =FUN_021F88CC - ldr r2, _021F88C4 ; =FUN_021F8958 + ldr r0, _021F88C0 ; =MOD04_021F88CC + ldr r2, _021F88C4 ; =MOD04_021F8958 str r0, [sp] - ldr r3, _021F88C8 ; =FUN_021F8948 + ldr r3, _021F88C8 ; =MOD04_021F8948 mov r0, #0x1c mov r1, #4 - bl FUN_021EF76C + bl MOD04_021EF76C str r0, [r4, #0x428] ldr r0, [r4, #0x428] cmp r0, #0 @@ -36650,54 +36656,54 @@ FUN_021F8870: ; 0x021F8870 add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 -_021F88C0: .word FUN_021F88CC -_021F88C4: .word FUN_021F8958 -_021F88C8: .word FUN_021F8948 +_021F88C0: .word MOD04_021F88CC +_021F88C4: .word MOD04_021F8958 +_021F88C8: .word MOD04_021F8948 - arm_func_start FUN_021F88CC -FUN_021F88CC: ; 0x021F88CC + arm_func_start MOD04_021F88CC +MOD04_021F88CC: ; 0x021F88CC stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #8] cmp r0, #0 beq _021F891C ldr r0, [r0, #8] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r4, #8] mov r1, #0 str r1, [r0, #8] ldr r0, [r4, #8] ldr r0, [r0, #0xc] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [r4, #8] mov r1, #0 str r1, [r0, #0xc] ldr r0, [r4, #8] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #8] _021F891C: mov r0, r4 - bl FUN_021F4CBC + bl MOD04_021F4CBC ldr r0, [r4, #0x10] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x10] ldr r0, [r4, #0x18] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r4, #0x18] ldmia sp!, {r4, pc} - arm_func_start FUN_021F8948 -FUN_021F8948: ; 0x021F8948 + arm_func_start MOD04_021F8948 +MOD04_021F8948: ; 0x021F8948 ldr r2, [r0] ldr r0, [r1] sub r0, r2, r0 bx lr - arm_func_start FUN_021F8958 -FUN_021F8958: ; 0x021F8958 + arm_func_start MOD04_021F8958 +MOD04_021F8958: ; 0x021F8958 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, [r0] @@ -36706,8 +36712,8 @@ FUN_021F8958: ; 0x021F8958 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021F8974 -FUN_021F8974: ; 0x021F8974 + arm_func_start MOD04_021F8974 +MOD04_021F8974: ; 0x021F8974 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 mov sl, r0 @@ -36717,12 +36723,12 @@ FUN_021F8974: ; 0x021F8974 cmp r0, #0 ble _021F8AB4 mov r0, r0, lsl #2 - bl FUN_021DD860 + bl MOD04_021DD860 movs r8, r0 bne _021F89BC ldr r1, _021F8AC0 ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #4 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -36768,7 +36774,7 @@ _021F8A38: _021F8A44: ldr r1, [r8, r4, lsl #2] mov r0, sl - bl FUN_021F8AD0 + bl MOD04_021F8AD0 cmp r0, #0 ldrne r1, [r8, r4, lsl #2] add r4, r4, #1 @@ -36790,14 +36796,14 @@ _021F8A78: beq _021F8AA0 ldr r1, [r8, r1] mov r0, sl - bl FUN_021F6C84 + bl MOD04_021F6C84 _021F8AA0: add r4, r4, #1 cmp r4, r6 blt _021F8A78 _021F8AAC: mov r0, r8 - bl FUN_021DD82C + bl MOD04_021DD82C _021F8AB4: mov r0, #0 add sp, sp, #4 @@ -36808,8 +36814,8 @@ _021F8AC4: .word 0x0220E8B0 _021F8AC8: .word 0x0220E8D0 _021F8ACC: .word 0x00000563 - arm_func_start FUN_021F8AD0 -FUN_021F8AD0: ; 0x021F8AD0 + arm_func_start MOD04_021F8AD0 +MOD04_021F8AD0: ; 0x021F8AD0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} ldr ip, _021F99B4 ; =0x000004EC sub sp, sp, ip @@ -36832,7 +36838,7 @@ _021F8B04: add r3, sp, #0xa0 mov r0, sl add r2, sb, #0x18 - bl FUN_021F28AC + bl MOD04_021F28AC cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -36844,7 +36850,7 @@ _021F8B04: ldr r1, [sb, #4] add r2, sp, #0x8c mov r0, sl - bl FUN_021FB0FC + bl MOD04_021FB0FC cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -36855,11 +36861,11 @@ _021F8B04: ldr r1, _021F99BC ; =0x00000D01 ldr r2, _021F99C0 ; =0x0220E8E0 mov r0, sl - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #4 mov r2, #0 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #4 add sp, sp, ip @@ -36873,45 +36879,45 @@ _021F8BA4: ldr r2, _021F99C4 ; =0x0220E90C mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F99C8 ; =0x0220E918 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r0, [sp, #0x24] add r1, sb, #0x18 ldr r2, [r0, #0x198] mov r0, sl - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F99CC ; =0x0220E924 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [sp, #0x24] mov r0, sl ldr r2, [r2, #0x1a0] add r1, sb, #0x18 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F99D0 ; =0x0220E930 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [sp, #0x24] mov r0, sl ldr r2, [r2, #0x470] add r1, sb, #0x18 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldrsb r0, [sb, #0x28] cmp r0, #0 beq _021F8C60 ldr r2, _021F99D4 ; =0x0220E940 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0x28 - bl FUN_021F2F9C + bl MOD04_021F2F9C _021F8C60: ldrsb r0, [sb, #0x47] cmp r0, #0 @@ -36919,11 +36925,11 @@ _021F8C60: ldr r2, _021F99D8 ; =0x0220E948 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0x47 - bl FUN_021F2F9C + bl MOD04_021F2F9C _021F8C8C: ldrsb r0, [sb, #0x5c] cmp r0, #0 @@ -36931,11 +36937,11 @@ _021F8C8C: ldr r2, _021F99DC ; =0x0220E958 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0x5c - bl FUN_021F2F9C + bl MOD04_021F2F9C _021F8CB8: ldrsb r0, [sb, #0x8f] cmp r0, #0 @@ -36943,11 +36949,11 @@ _021F8CB8: ldr r2, _021F99E0 ; =0x0220E960 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0x8f - bl FUN_021F2F9C + bl MOD04_021F2F9C _021F8CE4: ldrsb r0, [sb, #0xae] cmp r0, #0 @@ -36955,11 +36961,11 @@ _021F8CE4: ldr r2, _021F99E4 ; =0x0220E96C mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0xae - bl FUN_021F2F9C + bl MOD04_021F2F9C _021F8D10: ldr r0, [sb, #0x130] cmp r0, #0 @@ -36967,11 +36973,11 @@ _021F8D10: ldr r2, _021F99E8 ; =0x0220E978 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [sb, #0x130] mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F64 + bl MOD04_021F2F64 _021F8D3C: ldr r0, [sb, #0x134] cmp r0, #0 @@ -36979,11 +36985,11 @@ _021F8D3C: ldr r2, _021F99EC ; =0x0220E984 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [sb, #0x134] mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F64 + bl MOD04_021F2F64 b _021F9134 _021F8D6C: cmp r0, #2 @@ -36991,15 +36997,15 @@ _021F8D6C: ldr r2, _021F99F0 ; =0x0220E98C mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F99DC ; =0x0220E958 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0x5c - bl FUN_021F2F9C + bl MOD04_021F2F9C b _021F9134 _021F8DA8: cmp r0, #3 @@ -37007,32 +37013,32 @@ _021F8DA8: ldr r2, _021F99F4 ; =0x0220E994 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F99DC ; =0x0220E958 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0x5c - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F99F8 ; =0x0220E99C mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0xcd - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F99D0 ; =0x0220E930 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [sp, #0x24] mov r0, sl ldr r2, [r2, #0x470] add r1, sb, #0x18 - bl FUN_021F2F64 + bl MOD04_021F2F64 b _021F9134 _021F8E28: cmp r0, #4 @@ -37040,33 +37046,33 @@ _021F8E28: ldr r2, _021F99FC ; =0x0220E9A4 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F99C8 ; =0x0220E918 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r0, [sp, #0x24] add r1, sb, #0x18 ldr r2, [r0, #0x198] mov r0, sl - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F99CC ; =0x0220E924 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [sp, #0x24] mov r0, sl ldr r2, [r2, #0x1a0] add r1, sb, #0x18 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F9A00 ; =0x0220E9B0 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [sb, #0x138] mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F64 + bl MOD04_021F2F64 b _021F9134 _021F8EAC: cmp r0, #5 @@ -37074,31 +37080,31 @@ _021F8EAC: ldr r2, _021F9A04 ; =0x0220E9BC mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F99D4 ; =0x0220E940 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0x28 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 ldr r2, _021F99DC ; =0x0220E958 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0x5c - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 ldr r2, _021F99F8 ; =0x0220E99C - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0xcd - bl FUN_021F2F9C + bl MOD04_021F2F9C b _021F9134 _021F8F28: cmp r0, #6 @@ -37106,68 +37112,68 @@ _021F8F28: ldr r2, _021F9A08 ; =0x0220E9C4 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F99D4 ; =0x0220E940 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0x28 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F99DC ; =0x0220E958 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0x5c - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F99F8 ; =0x0220E99C mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0xcd - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F9A0C ; =0x0220E9D0 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [sp, #0x24] mov r0, sl ldr r2, [r2, #0x46c] add r1, sb, #0x18 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F99D0 ; =0x0220E930 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [sp, #0x24] mov r0, sl ldr r2, [r2, #0x470] add r1, sb, #0x18 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F99D8 ; =0x0220E948 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0x47 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldrsb r0, [sb, #0xec] cmp r0, #0 beq _021F9134 ldr r2, _021F9A10 ; =0x0220E9DC mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0xec - bl FUN_021F2F9C + bl MOD04_021F2F9C b _021F9134 _021F9038: cmp r0, #7 @@ -37175,34 +37181,34 @@ _021F9038: ldr r2, _021F9A14 ; =0x0220E9E4 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F99C8 ; =0x0220E918 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r0, [sp, #0x24] add r1, sb, #0x18 ldr r2, [r0, #0x198] mov r0, sl - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F99CC ; =0x0220E924 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [sp, #0x24] mov r0, sl ldr r2, [r2, #0x1a0] add r1, sb, #0x18 - bl FUN_021F2F64 + bl MOD04_021F2F64 ldr r2, _021F99D0 ; =0x0220E930 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [sp, #0x24] mov r0, sl ldr r2, [r2, #0x470] add r1, sb, #0x18 - bl FUN_021F2F64 + bl MOD04_021F2F64 b _021F9134 _021F90C0: cmp r0, #8 @@ -37210,24 +37216,24 @@ _021F90C0: ldr r2, _021F9A18 ; =0x0220E9F0 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F9A1C ; =0x0220EA00 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C mov r0, sl add r1, sb, #0x18 add r2, sb, #0x47 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F99D0 ; =0x0220E930 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, [sp, #0x24] mov r0, sl ldr r2, [r2, #0x470] add r1, sb, #0x18 - bl FUN_021F2F64 + bl MOD04_021F2F64 b _021F9134 _021F9120: ldr r0, _021F9A20 ; =0x0220EA10 @@ -37239,15 +37245,15 @@ _021F9134: ldr r2, _021F9A2C ; =0x0220EA14 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F9A30 ; =0x02210EA0 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r2, _021F9A34 ; =0x0220EA20 mov r0, sl add r1, sb, #0x18 - bl FUN_021F2F9C + bl MOD04_021F2F9C ldr r0, [sp, #0x1c] mov r1, #4 str r1, [r0, #0x14] @@ -37263,7 +37269,7 @@ _021F9174: add r3, sp, #0x9c mov r0, sl add r2, sb, #8 - bl FUN_021F2A2C + bl MOD04_021F2A2C cmp r0, #0 beq _021F91E8 cmp r0, #3 @@ -37273,11 +37279,11 @@ _021F9174: ldr r1, _021F99BC ; =0x00000D01 ldr r2, _021F9A38 ; =0x0220EA28 mov r0, sl - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #0 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -37296,7 +37302,7 @@ _021F91E8: ldr r1, [sb, #8] mov r0, sl mov r2, #1 - bl FUN_021FB2F8 + bl MOD04_021FB2F8 cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC movne r0, #1 @@ -37337,7 +37343,7 @@ _021F92A8: mov r0, sl add r2, sp, #0x90 mov r3, r5 - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -37352,7 +37358,7 @@ _021F92A8: mov r0, sl add r2, sp, #0x90 mov r3, r5 - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -37384,13 +37390,13 @@ _021F9344: mov r1, #0xac mul r1, r2, r1 str r2, [sp, #0xe0] - bl FUN_021DD844 + bl MOD04_021DD844 movs r8, r0 str r8, [sp, #0xe8] bne _021F939C ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -37416,7 +37422,7 @@ _021F93D0: ldr r1, [sb, #8] add r2, sp, #0x90 mov r3, r5 - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -37429,7 +37435,7 @@ _021F93D0: add r0, r7, #4 mov r1, r6 mov r2, r4 - bl FUN_021FB3DC + bl MOD04_021FB3DC b _021F94F4 _021F9424: ldr r1, _021F9A54 ; =0x0220EA70 @@ -37440,7 +37446,7 @@ _021F9424: ldr r2, [sp, #0x4c] add r0, r7, #0x23 mov r1, r6 - bl FUN_021FB3DC + bl MOD04_021FB3DC b _021F94F4 _021F944C: ldr r1, _021F9A58 ; =0x0220EA7C @@ -37451,7 +37457,7 @@ _021F944C: add r0, r7, #0x38 mov r1, r6 mov r2, r4 - bl FUN_021FB3DC + bl MOD04_021FB3DC b _021F94F4 _021F9474: ldr r1, _021F9A5C ; =0x0220EA88 @@ -37462,7 +37468,7 @@ _021F9474: add r0, r7, #0x57 mov r1, r6 mov r2, r4 - bl FUN_021FB3DC + bl MOD04_021FB3DC b _021F94F4 _021F949C: ldr r1, _021F9A60 ; =0x0220EA94 @@ -37473,7 +37479,7 @@ _021F949C: ldr r2, [sp, #0x50] add r0, r7, #0x76 mov r1, r6 - bl FUN_021FB3DC + bl MOD04_021FB3DC b _021F94F4 _021F94C4: ldr r1, _021F9A48 ; =0x0220EA64 @@ -37497,11 +37503,11 @@ _021F9500: ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -37550,14 +37556,14 @@ _021F9568: ldr r4, [sp, #0x1c] ldr r4, [r4, #0x10] str r4, [sp, #0x18] - bl FUN_021FA770 + bl MOD04_021FA770 cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021F95EC: ldr r0, [sp, #0xe8] - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [sp, #0xe8] b _021FA6F8 @@ -37577,7 +37583,7 @@ _021F9600: add r2, sp, #0x90 add r3, sp, #0xec mov r0, sl - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -37590,23 +37596,23 @@ _021F9600: ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021F9694: mov r0, #0x3c - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 bne _021F96C0 ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -37617,7 +37623,7 @@ _021F96C0: add r0, r4, #4 add r1, sb, #0x5c mov r2, #0x33 - bl FUN_021FB3DC + bl MOD04_021FB3DC add r0, sp, #0x28c ldrsb r0, [r0, #0x60] add r1, sp, #0xd4 @@ -37633,7 +37639,7 @@ _021F96C0: str r0, [sp, #4] mov r0, sl ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021FA6F8 ldr ip, _021F99B4 ; =0x000004EC @@ -37650,12 +37656,12 @@ _021F972C: str r0, [sp, #0xd0] beq _021FA6F8 mov r0, #0x44 - bl FUN_021DD860 + bl MOD04_021DD860 movs r8, r0 bne _021F977C ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -37676,7 +37682,7 @@ _021F977C: add r2, sp, #0x90 add r3, sp, #0xec mov r0, sl - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -37689,11 +37695,11 @@ _021F977C: ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -37712,7 +37718,7 @@ _021F982C: mov r0, sl add r2, sp, #0x90 mov r3, r6 - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -37726,12 +37732,12 @@ _021F982C: ldr r1, [r8, #0x38] add r1, r1, #1 mov r1, r1, lsl #2 - bl FUN_021DD844 + bl MOD04_021DD844 cmp r0, #0 bne _021F98A0 ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -37739,12 +37745,12 @@ _021F982C: _021F98A0: str r0, [r8, #0x3c] mov r0, r5 - bl FUN_021DD860 + bl MOD04_021DD860 cmp r0, #0 bne _021F98D0 ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -37758,7 +37764,7 @@ _021F98D0: ldr r0, [r8, #0x38] mov r2, r5 ldr r0, [r3, r0, lsl #2] - bl FUN_021FB3DC + bl MOD04_021FB3DC ldr r0, [r8, #0x38] add r0, r0, #1 str r0, [r8, #0x38] @@ -37774,12 +37780,12 @@ _021F9904: ble _021F9ABC mov r1, r0, lsl #2 ldr r0, [r8, #0x40] - bl FUN_021DD844 + bl MOD04_021DD844 cmp r0, #0 bne _021F9954 ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -37787,12 +37793,12 @@ _021F9904: _021F9954: str r0, [r8, #0x40] mov r0, r4 - bl FUN_021DD860 + bl MOD04_021DD860 cmp r0, #0 bne _021F9984 ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -37808,7 +37814,7 @@ _021F9984: mov r2, r4 sub r0, r0, #1 ldr r0, [r3, r0, lsl #2] - bl FUN_021FB3DC + bl MOD04_021FB3DC b _021F9ABC .align 2, 0 _021F99B4: .word 0x000004EC @@ -37869,11 +37875,11 @@ _021F9A74: ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -37889,7 +37895,7 @@ _021F9ABC: mov r0, sl mov r3, r8 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021FA6F8 ldr ip, _021F99B4 ; =0x000004EC @@ -37906,13 +37912,13 @@ _021F9AFC: str r0, [sp, #0xc8] beq _021FA6F8 mov r0, #0x10 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [sp, #0x28] cmp r0, #0 bne _021F9B50 ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -37946,7 +37952,7 @@ _021F9BA8: mov r0, sl add r2, sp, #0x90 mov r3, r4 - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -37972,7 +37978,7 @@ _021F9BA8: ldr r0, [r0, #0xc] ldr r3, [r1, #8] mul r1, r3, r2 - bl FUN_021DD844 + bl MOD04_021DD844 ldr r1, [sp, #0x28] str r0, [r1, #0xc] mov r0, r1 @@ -37981,7 +37987,7 @@ _021F9BA8: bne _021F9C5C ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -38008,7 +38014,7 @@ _021F9C94: ldr r1, [sb, #8] add r2, sp, #0x90 mov r3, r4 - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -38021,7 +38027,7 @@ _021F9C94: ldr r2, [sp, #0x64] add r0, r8, #0x28 mov r1, r5 - bl FUN_021FB3DC + bl MOD04_021FB3DC b _021F9D0C _021F9CE8: ldr r1, _021F9A50 ; =0x0220EA68 @@ -38032,7 +38038,7 @@ _021F9CE8: ldr r2, [sp, #0x68] add r0, r8, #4 mov r1, r5 - bl FUN_021FB3DC + bl MOD04_021FB3DC _021F9D0C: ldr r1, _021FA738 ; =0x0220EAE8 mov r0, r4 @@ -38065,11 +38071,11 @@ _021F9D6C: ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -38086,7 +38092,7 @@ _021F9D9C: add r1, sp, #0xc4 mov r0, sl ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021FA6F8 ldr ip, _021F99B4 ; =0x000004EC @@ -38108,7 +38114,7 @@ _021F9DE0: add r2, sp, #0x90 add r3, sp, #0xec mov r0, sl - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -38121,11 +38127,11 @@ _021F9DE0: ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -38142,17 +38148,17 @@ _021F9E74: ldr r1, _021FA740 ; =0x0220EAF8 add r2, sp, #0x2ec mov r3, #0x200 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021F9EDC ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -38163,12 +38169,12 @@ _021F9EDC: mov r4, r0 _021F9EE8: mov r0, #8 - bl FUN_021DD860 + bl MOD04_021DD860 movs r3, r0 bne _021F9F14 ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -38183,7 +38189,7 @@ _021F9F14: add r1, sp, #0xbc mov r0, sl ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021FA6F8 ldr ip, _021F99B4 ; =0x000004EC @@ -38205,7 +38211,7 @@ _021F9F50: add r2, sp, #0x90 add r3, sp, #0xec mov r0, sl - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -38218,11 +38224,11 @@ _021F9F50: ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -38237,7 +38243,7 @@ _021F9FE4: ldr r0, [sb, #8] add r2, sp, #0x2ec mov r3, #0x200 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 bne _021FA054 cmp r5, #0 @@ -38245,11 +38251,11 @@ _021F9FE4: ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -38263,12 +38269,12 @@ _021FA054: mov r4, r0 _021FA060: mov r0, #8 - bl FUN_021DD860 + bl MOD04_021DD860 movs r3, r0 bne _021FA08C ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -38283,7 +38289,7 @@ _021FA08C: add r1, sp, #0xb4 mov r0, sl ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021FA6F8 ldr ip, _021F99B4 ; =0x000004EC @@ -38300,13 +38306,13 @@ _021FA0C8: str r0, [sp, #0xb0] beq _021FA6F8 mov r0, #0xc - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [sp, #0x2c] cmp r0, #0 bne _021FA11C ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -38322,7 +38328,7 @@ _021FA11C: add r2, sp, #0x90 add r3, sp, #0xec mov r0, sl - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -38335,11 +38341,11 @@ _021FA11C: ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -38368,7 +38374,7 @@ _021FA1E0: mov r0, sl add r2, sp, #0x90 mov r3, r5 - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -38392,12 +38398,12 @@ _021FA1E0: add r2, r2, #1 mul r1, r2, r1 ldr r0, [r0, #8] - bl FUN_021DD844 + bl MOD04_021DD844 cmp r0, #0 bne _021FA27C ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -38431,7 +38437,7 @@ _021FA2D0: ldr r1, [sb, #8] add r2, sp, #0x90 mov r3, r5 - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -38444,7 +38450,7 @@ _021FA2D0: add r0, r8, #4 mov r1, r6 mov r2, r4 - bl FUN_021FB3DC + bl MOD04_021FB3DC b _021FA3F4 _021FA324: ldr r1, _021F9A54 ; =0x0220EA70 @@ -38455,7 +38461,7 @@ _021FA324: ldr r2, [sp, #0x7c] add r0, r8, #0x23 mov r1, r6 - bl FUN_021FB3DC + bl MOD04_021FB3DC b _021FA3F4 _021FA34C: ldr r1, _021FA754 ; =0x0220EB18 @@ -38466,7 +38472,7 @@ _021FA34C: add r0, r8, #0x38 mov r1, r6 mov r2, r4 - bl FUN_021FB3DC + bl MOD04_021FB3DC b _021FA3F4 _021FA374: ldr r1, _021FA758 ; =0x0220EB20 @@ -38477,7 +38483,7 @@ _021FA374: add r0, r8, #0x57 mov r1, r6 mov r2, r4 - bl FUN_021FB3DC + bl MOD04_021FB3DC b _021FA3F4 _021FA39C: ldr r1, _021F9A60 ; =0x0220EA94 @@ -38488,7 +38494,7 @@ _021FA39C: ldr r2, [sp, #0x80] add r0, r8, #0x76 mov r1, r6 - bl FUN_021FB3DC + bl MOD04_021FB3DC b _021FA3F4 _021FA3C4: ldr r1, _021FA750 ; =0x0220EB14 @@ -38512,11 +38518,11 @@ _021FA400: ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -38533,7 +38539,7 @@ _021FA430: add r1, sp, #0xac mov r0, sl ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021FA6F8 ldr ip, _021F99B4 ; =0x000004EC @@ -38551,12 +38557,12 @@ _021FA474: beq _021FA6F8 mov r0, #0xc mov r8, #0 - bl FUN_021DD860 + bl MOD04_021DD860 movs r7, r0 bne _021FA4C8 ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -38572,7 +38578,7 @@ _021FA4C8: add r2, sp, #0x90 add r3, sp, #0xec mov r0, sl - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -38585,11 +38591,11 @@ _021FA4C8: ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -38600,14 +38606,14 @@ _021FA548: str r0, [r7, #4] ldr r0, [r7, #4] mov r0, r0, lsl #2 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [r7, #8] ldr r0, [r7, #8] cmp r0, #0 bne _021FA58C ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -38626,7 +38632,7 @@ _021FA5A8: mov r0, sl add r2, sp, #0x90 mov r3, r5 - bl FUN_021FAF2C + bl MOD04_021FAF2C cmp r0, #0 ldrne ip, _021F99B4 ; =0x000004EC addne sp, sp, ip @@ -38637,7 +38643,7 @@ _021FA5A8: cmp r0, #0 bne _021FA634 mov r0, r4 - bl FUN_021DD860 + bl MOD04_021DD860 ldr r1, [r7, #8] str r0, [r1, r8, lsl #2] ldr r0, [r7, #8] @@ -38646,7 +38652,7 @@ _021FA5A8: bne _021FA620 ldr r1, _021F9A4C ; =0x0220E8A0 mov r0, sl - bl FUN_021FAEEC + bl MOD04_021FAEEC ldr ip, _021F99B4 ; =0x000004EC mov r0, #1 add sp, sp, ip @@ -38654,7 +38660,7 @@ _021FA5A8: _021FA620: mov r1, fp mov r2, r4 - bl FUN_021FB3DC + bl MOD04_021FB3DC add r8, r8, #1 b _021FA6A4 _021FA634: @@ -38679,11 +38685,11 @@ _021FA674: ldr r2, _021F9A64 ; =0x0220EA9C mov r0, sl mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, sl mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 ldr ip, _021F99B4 ; =0x000004EC mov r0, #3 add sp, sp, ip @@ -38699,7 +38705,7 @@ _021FA6A4: mov r0, sl mov r3, r7 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 beq _021FA6F8 ldr ip, _021F99B4 ; =0x000004EC @@ -38719,7 +38725,7 @@ _021FA704: cmp r4, #0 beq _021FA714 mov r0, #0xa - bl FUN_021F0250 + bl MOD04_021F0250 _021FA714: cmp r4, #0 bne _021F8B04 @@ -38746,8 +38752,8 @@ _021FA764: .word 0x0220EB34 _021FA768: .word 0x00000515 _021FA76C: .word 0x0000052A - arm_func_start FUN_021FA770 -FUN_021FA770: ; 0x021FA770 + arm_func_start MOD04_021FA770 +MOD04_021FA770: ; 0x021FA770 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0xc movs r8, r1 @@ -38790,7 +38796,7 @@ _021FA7DC: _021FA7FC: ldr r1, _021FA958 ; =0x0220EB54 mov r0, sb - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0xc mov r0, #2 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} @@ -38798,7 +38804,7 @@ _021FA814: add r1, sp, #4 mov r0, sb mov r2, #1 - bl FUN_021FA9F0 + bl MOD04_021FA9F0 cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc} @@ -38811,7 +38817,7 @@ _021FA814: mov r1, r8 add r0, r0, #0x28 mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC _021FA858: cmp r7, #0 ldreq r0, [sp, #4] @@ -38822,7 +38828,7 @@ _021FA858: mov r1, r7 add r0, r0, #0x47 mov r2, #0x15 - bl FUN_021FB3DC + bl MOD04_021FB3DC _021FA880: cmp r6, #0 ldreq r0, [sp, #4] @@ -38833,11 +38839,11 @@ _021FA880: mov r1, r6 add r0, r0, #0x5c mov r2, #0x33 - bl FUN_021FB3DC + bl MOD04_021FB3DC _021FA8A8: ldr r0, [sp, #4] add r0, r0, #0x5c - bl FUN_021F01C4 + bl MOD04_021F01C4 cmp r5, #0 ldreq r0, [sp, #4] moveq r1, #0 @@ -38847,7 +38853,7 @@ _021FA8A8: mov r1, r5 add r0, r0, #0x8f mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC _021FA8DC: cmp r4, #0 ldreq r0, [sp, #4] @@ -38858,7 +38864,7 @@ _021FA8DC: mov r1, r4 add r0, r0, #0xae mov r2, #0x1f - bl FUN_021FB3DC + bl MOD04_021FB3DC _021FA904: ldr r0, [sp, #0x34] ldr r2, [sp, #0x30] @@ -38876,7 +38882,7 @@ _021FA904: ldr r2, [sp, #0x38] ldr r3, [sp, #0x3c] mov r0, sb - bl FUN_021FA95C + bl MOD04_021FA95C cmp r0, #0 moveq r0, #0 add sp, sp, #0xc @@ -38884,8 +38890,8 @@ _021FA904: .align 2, 0 _021FA958: .word 0x0220EB54 - arm_func_start FUN_021FA95C -FUN_021FA95C: ; 0x021FA95C + arm_func_start MOD04_021FA95C +MOD04_021FA95C: ; 0x021FA95C stmdb sp!, {r4, r5, lr} sub sp, sp, #0x14 mov r5, r0 @@ -38900,13 +38906,13 @@ FUN_021FA95C: ; 0x021FA95C add r3, sp, #0xc mov r1, #3 str ip, [sp, #8] - bl FUN_021F6D8C + bl MOD04_021F6D8C cmp r0, #0 addne sp, sp, #0x14 ldmneia sp!, {r4, r5, pc} ldr r1, [sp, #0xc] mov r0, r5 - bl FUN_021FAAB4 + bl MOD04_021FAAB4 cmp r0, #0 addne sp, sp, #0x14 ldmneia sp!, {r4, r5, pc} @@ -38916,7 +38922,7 @@ FUN_021FA95C: ; 0x021FA95C beq _021FA9E4 ldr r1, [r1, #0x18] mov r0, r5 - bl FUN_021F0FD4 + bl MOD04_021F0FD4 cmp r0, #0 addne sp, sp, #0x14 ldmneia sp!, {r4, r5, pc} @@ -38925,20 +38931,20 @@ _021FA9E4: add sp, sp, #0x14 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021FA9F0 -FUN_021FA9F0: ; 0x021FA9F0 + arm_func_start MOD04_021FA9F0 +MOD04_021FA9F0: ; 0x021FA9F0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r6, r0 mov r0, #0x144 mov r5, r1 mov r7, r2 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 bne _021FAA2C ldr r1, _021FAAB0 ; =0x0220E8A0 mov r0, r6 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #4 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} @@ -38960,7 +38966,7 @@ _021FAA2C: str r0, [r4, #0x1c] ldr r0, [r4, #0x1c] add r0, r0, #1 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [r4, #0x18] ldr r0, [r4, #0x18] cmp r0, #0 @@ -38972,15 +38978,15 @@ _021FAA2C: ldmneia sp!, {r4, r5, r6, r7, pc} ldr r1, _021FAAB0 ; =0x0220E8A0 mov r0, r6 - bl FUN_021FAEEC + bl MOD04_021FAEEC mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021FAAB0: .word 0x0220E8A0 - arm_func_start FUN_021FAAB4 -FUN_021FAAB4: ; 0x021FAAB4 + arm_func_start MOD04_021FAAB4 +MOD04_021FAAB4: ; 0x021FAAB4 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r5, r1 @@ -38990,14 +38996,14 @@ FUN_021FAAB4: ; 0x021FAAB4 ldr r1, [r4, #0xc] mov r6, r0 add r0, r1, #1 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [r4, #8] ldr r0, [r4, #8] cmp r0, #0 bne _021FAB04 ldr r1, _021FAC9C ; =0x0220E8A0 mov r0, r6 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #8 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} @@ -39005,7 +39011,7 @@ _021FAB04: mov r0, #2 mov r1, #1 mov r2, #0 - bl FUN_021EFDB8 + bl MOD04_021EFDB8 str r0, [r4, #4] ldr r0, [r4, #4] mvn r1, #0 @@ -39014,27 +39020,27 @@ _021FAB04: ldr r2, _021FACA0 ; =0x0220EB68 mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #8 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} _021FAB54: mov r1, #0 - bl FUN_021F017C + bl MOD04_021F017C cmp r0, #0 bne _021FAB90 ldr r2, _021FACA4 ; =0x0220EB90 mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #8 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} @@ -39046,11 +39052,11 @@ _021FAB90: ldr r2, _021FACAC ; =0x0220EBC4 mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #8 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} @@ -39077,12 +39083,12 @@ _021FAC0C: strh r0, [sp, #2] ldr r0, [r4, #4] mov r2, #8 - bl FUN_021EFCE4 + bl MOD04_021EFCE4 mvn r1, #0 cmp r0, r1 bne _021FAC88 ldr r0, [r4, #4] - bl FUN_021EFB28 + bl MOD04_021EFB28 mvn r1, #5 cmp r0, r1 beq _021FAC88 @@ -39095,11 +39101,11 @@ _021FAC0C: ldr r2, _021FACBC ; =0x0220EC14 mov r0, r6 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #8 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} @@ -39120,8 +39126,8 @@ _021FACB4: .word 0x0220E8D0 _021FACB8: .word 0x0000CD74 _021FACBC: .word 0x0220EC14 - arm_func_start FUN_021FACC0 -FUN_021FACC0: ; 0x021FACC0 + arm_func_start MOD04_021FACC0 +MOD04_021FACC0: ; 0x021FACC0 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x54 mov r4, r1 @@ -39130,7 +39136,7 @@ FUN_021FACC0: ; 0x021FACC0 ldr r1, _021FAD3C ; =0x0220EC3C add r2, sp, #4 mov r3, #0x40 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 addeq sp, sp, #0x54 ldmeqia sp!, {r4, r5, pc} @@ -39150,15 +39156,15 @@ FUN_021FACC0: ; 0x021FACC0 mov r2, r4 mov r3, #2 str ip, [sp] - bl FUN_021FAD44 + bl MOD04_021FAD44 add sp, sp, #0x54 ldmia sp!, {r4, r5, pc} .align 2, 0 _021FAD3C: .word 0x0220EC3C _021FAD40: .word 0x0220EC44 - arm_func_start FUN_021FAD44 -FUN_021FAD44: ; 0x021FAD44 + arm_func_start MOD04_021FAD44 +MOD04_021FAD44: ; 0x021FAD44 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x20 ldr ip, [sp, #0x30] @@ -39173,7 +39179,7 @@ FUN_021FAD44: ; 0x021FAD44 mov r1, r5 mov r3, lr mov r2, #0xc9 - bl FUN_021F726C + bl MOD04_021F726C cmp r0, #0 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, pc} @@ -39185,7 +39191,7 @@ FUN_021FAD44: ; 0x021FAD44 add r2, sp, #0 mov r0, r6 mov r1, r5 - bl FUN_021F2C58 + bl MOD04_021F2C58 cmp r0, #0 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, pc} @@ -39193,7 +39199,7 @@ FUN_021FAD44: ; 0x021FAD44 mov r0, r6 mov r1, r5 mvn r3, #0 - bl FUN_021F7184 + bl MOD04_021F7184 cmp r0, #0 moveq r0, #0 add sp, sp, #0x20 @@ -39202,8 +39208,8 @@ FUN_021FAD44: ; 0x021FAD44 _021FADE0: .word 0x0220EC50 _021FADE4: .word 0x0220EC54 - arm_func_start FUN_021FADE8 -FUN_021FADE8: ; 0x021FADE8 + arm_func_start MOD04_021FADE8 +MOD04_021FADE8: ; 0x021FADE8 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x10 mov r4, r2 @@ -39211,7 +39217,7 @@ FUN_021FADE8: ; 0x021FADE8 mov r1, r4 mov r2, #1 mov r6, r0 - bl FUN_021FB2F8 + bl MOD04_021FB2F8 cmp r0, #0 addne sp, sp, #0x10 movne r0, #4 @@ -39225,11 +39231,11 @@ FUN_021FADE8: ; 0x021FADE8 ldr r2, _021FAEE4 ; =0x0220EC74 mov r0, r6 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r6 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0x10 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} @@ -39241,12 +39247,12 @@ _021FAE5C: str r0, [sp, #0xc] beq _021FAEC8 mov r0, #4 - bl FUN_021DD860 + bl MOD04_021DD860 movs r3, r0 bne _021FAE9C ldr r1, _021FAEE8 ; =0x0220ECA4 mov r0, r6 - bl FUN_021FAEEC + bl MOD04_021FAEEC add sp, sp, #0x10 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} @@ -39258,14 +39264,14 @@ _021FAE9C: add r1, sp, #8 mov r0, r6 ldmia r1, {r1, r2} - bl FUN_021F3454 + bl MOD04_021F3454 cmp r0, #0 addne sp, sp, #0x10 ldmneia sp!, {r4, r5, r6, pc} _021FAEC8: mov r0, r6 mov r1, r5 - bl FUN_021F6C84 + bl MOD04_021F6C84 mov r0, #0 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} @@ -39274,17 +39280,17 @@ _021FAEE0: .word 0x0220EC6C _021FAEE4: .word 0x0220EC74 _021FAEE8: .word 0x0220ECA4 - arm_func_start FUN_021FAEEC -FUN_021FAEEC: ; 0x021FAEEC - ldr ip, _021FAEFC ; =FUN_021FB3DC + arm_func_start MOD04_021FAEEC +MOD04_021FAEEC: ; 0x021FAEEC + ldr ip, _021FAEFC ; =MOD04_021FB3DC ldr r0, [r0] mov r2, #0x100 bx ip .align 2, 0 -_021FAEFC: .word FUN_021FB3DC +_021FAEFC: .word MOD04_021FB3DC - arm_func_start FUN_021FAF00 -FUN_021FAF00: ; 0x021FAF00 + arm_func_start MOD04_021FAF00 +MOD04_021FAF00: ; 0x021FAF00 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r4, [r0] @@ -39292,13 +39298,13 @@ FUN_021FAF00: ; 0x021FAF00 mov r1, r2 mov r0, r4 mov r2, #0x100 - bl FUN_021FB3DC + bl MOD04_021FB3DC str r5, [r4, #0x418] add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021FAF2C -FUN_021FAF2C: ; 0x021FAF2C + arm_func_start MOD04_021FAF2C +MOD04_021FAF2C: ; 0x021FAF2C stmdb sp!, {r4, r5, r6, r7, r8, lr} movs r7, r1 mov r8, r0 @@ -39336,11 +39342,11 @@ _021FAF94: ldr r2, _021FB0F4 ; =0x0220ECF0 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} _021FAFD0: @@ -39356,11 +39362,11 @@ _021FAFE8: ldr r2, _021FB0F4 ; =0x0220ECF0 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} _021FB018: @@ -39369,11 +39375,11 @@ _021FB018: ldr r2, _021FB0F4 ; =0x0220ECF0 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} _021FB048: @@ -39393,11 +39399,11 @@ _021FB06C: ldr r2, _021FB0F4 ; =0x0220ECF0 mov r0, r8 mov r1, #1 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r8 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 mov r0, #3 ldmia sp!, {r4, r5, r6, r7, r8, pc} _021FB09C: @@ -39429,8 +39435,8 @@ _021FB0F0: .word 0x0000019B _021FB0F4: .word 0x0220ECF0 _021FB0F8: .word 0x000001FF - arm_func_start FUN_021FB0FC -FUN_021FB0FC: ; 0x021FB0FC + arm_func_start MOD04_021FB0FC +MOD04_021FB0FC: ; 0x021FB0FC stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc mov ip, #0 @@ -39442,21 +39448,21 @@ FUN_021FB0FC: ; 0x021FB0FC mov r1, ip str ip, [sp] str ip, [sp, #4] - bl FUN_021EFF5C + bl MOD04_021EFF5C mvn r1, #0 cmp r0, r1 bne _021FB170 ldr r1, _021FB1E0 ; =0x0220ED00 mov r0, r5 - bl FUN_021FB3D0 + bl MOD04_021FB3D0 ldr r2, _021FB1E4 ; =0x0220ED14 mov r0, r5 mov r1, #5 - bl FUN_021FAF00 + bl MOD04_021FAF00 mov r0, r5 mov r1, #3 mov r2, #1 - bl FUN_021F3500 + bl MOD04_021F3500 add sp, sp, #0xc mov r0, #3 ldmia sp!, {r4, r5, pc} @@ -39468,7 +39474,7 @@ _021FB170: beq _021FB1A4 ldr r1, _021FB1E8 ; =0x0220ED4C mov r0, r5 - bl FUN_021FB3D0 + bl MOD04_021FB3D0 mov r0, #4 str r0, [r4] add sp, sp, #0xc @@ -39480,7 +39486,7 @@ _021FB1A4: beq _021FB1D0 ldr r1, _021FB1EC ; =0x0220ED64 mov r0, r5 - bl FUN_021FB3D0 + bl MOD04_021FB3D0 mov r0, #3 str r0, [r4] add sp, sp, #0xc @@ -39497,8 +39503,8 @@ _021FB1E4: .word 0x0220ED14 _021FB1E8: .word 0x0220ED4C _021FB1EC: .word 0x0220ED64 - arm_func_start FUN_021FB1F0 -FUN_021FB1F0: ; 0x021FB1F0 + arm_func_start MOD04_021FB1F0 +MOD04_021FB1F0: ; 0x021FB1F0 stmdb sp!, {r4, r5, r6, r7, r8, lr} movs r5, r0 mov r8, r1 @@ -39574,8 +39580,8 @@ _021FB2EC: .word 0x0220ECE0 _021FB2F0: .word 0x0000010F _021FB2F4: .word 0x0220ED8C - arm_func_start FUN_021FB2F8 -FUN_021FB2F8: ; 0x021FB2F8 + arm_func_start MOD04_021FB2F8 +MOD04_021FB2F8: ; 0x021FB2F8 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x14 mov r6, r1 @@ -39592,7 +39598,7 @@ FUN_021FB2F8: ; 0x021FB2F8 add r2, sp, #0 mov r0, r6 mov r3, #0x10 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 beq _021FB350 add r0, sp, #0 @@ -39603,7 +39609,7 @@ _021FB350: mov r0, r6 mov r2, r4 mov r3, #0x100 - bl FUN_021FB1F0 + bl MOD04_021FB1F0 cmp r0, #0 moveq r0, #0 streqb r0, [r4] @@ -39620,7 +39626,7 @@ _021FB350: moveq r2, #0 mov r0, r7 mov r1, #4 - bl FUN_021F3500 + bl MOD04_021F3500 _021FB3A8: add sp, sp, #0x14 mov r0, #1 @@ -39635,14 +39641,14 @@ _021FB3C4: .word 0x0220ED9C _021FB3C8: .word 0x0220EDA4 _021FB3CC: .word 0x0220EDB0 - arm_func_start FUN_021FB3D0 -FUN_021FB3D0: ; 0x021FB3D0 + arm_func_start MOD04_021FB3D0 +MOD04_021FB3D0: ; 0x021FB3D0 stmdb sp!, {r0, r1, r2, r3} add sp, sp, #0x10 bx lr - arm_func_start FUN_021FB3DC -FUN_021FB3DC: ; 0x021FB3DC + arm_func_start MOD04_021FB3DC +MOD04_021FB3DC: ; 0x021FB3DC stmdb sp!, {r4, r5, r6, lr} movs r6, r0 mov r5, r1 @@ -39675,8 +39681,8 @@ _021FB440: .word 0x0220EDB8 _021FB444: .word 0x0220ECC4 _021FB448: .word 0x0220EDC8 - arm_func_start FUN_021FB44C -FUN_021FB44C: ; 0x021FB44C + arm_func_start MOD04_021FB44C +MOD04_021FB44C: ; 0x021FB44C stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x24 ldr r0, _021FB520 ; =0x02210F84 @@ -39684,7 +39690,7 @@ FUN_021FB44C: ; 0x021FB44C cmp r0, #0 addeq sp, sp, #0x24 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} - bl FUN_021EF06C + bl MOD04_021EF06C subs r4, r0, #1 bmi _021FB500 ldr r5, _021FB524 ; =0x0220BBC8 @@ -39716,19 +39722,19 @@ _021FB4B8: mov r0, r8 mov r1, r7 str sb, [r5] - bl FUN_021FBCB8 + bl MOD04_021FBCB8 mov r0, r4 mov r1, r6 mov r2, r6 mov r3, r8 str r6, [sp] - bl FUN_021FB530 + bl MOD04_021FB530 subs r4, r4, #1 bpl _021FB4AC _021FB500: ldr r0, _021FB520 ; =0x02210F84 ldr r0, [r0] - bl FUN_021EF074 + bl MOD04_021EF074 ldr r0, _021FB520 ; =0x02210F84 mov r1, #0 str r1, [r0] @@ -39740,8 +39746,8 @@ _021FB524: .word 0x0220BBC8 _021FB528: .word 0x0220EDEC _021FB52C: .word 0x0220EDD8 - arm_func_start FUN_021FB530 -FUN_021FB530: ; 0x021FB530 + arm_func_start MOD04_021FB530 +MOD04_021FB530: ; 0x021FB530 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x14 movs r7, r0 @@ -39752,14 +39758,14 @@ FUN_021FB530: ; 0x021FB530 ldmmiia sp!, {r4, r5, r6, r7, pc} ldr r0, _021FB650 ; =0x02210F84 ldr r0, [r0] - bl FUN_021EF06C + bl MOD04_021EF06C cmp r7, r0 addge sp, sp, #0x14 ldmgeia sp!, {r4, r5, r6, r7, pc} ldr r0, _021FB650 ; =0x02210F84 mov r1, r7 ldr r0, [r0] - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r3, r0 ldr ip, [r3, #0x18] cmp ip, #0 @@ -39817,19 +39823,19 @@ _021FB638: ldr r0, _021FB650 ; =0x02210F84 mov r1, r7 ldr r0, [r0] - bl FUN_021EED84 + bl MOD04_021EED84 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _021FB650: .word 0x02210F84 - arm_func_start FUN_021FB654 -FUN_021FB654: ; 0x021FB654 + arm_func_start MOD04_021FB654 +MOD04_021FB654: ; 0x021FB654 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} mov sb, r1 mov sl, r0 mov r7, sb - bl FUN_021FBB3C + bl MOD04_021FBB3C mov r8, r0 ldr r5, _021FB6D4 ; =0x0220EDDC ldr r4, _021FB6D8 ; =0x0220EDD8 @@ -39839,10 +39845,10 @@ _021FB678: mov r0, sl mov r1, r6 str r5, [r4] - bl FUN_021FBCB8 + bl MOD04_021FBCB8 mov r0, sl mov r1, r6 - bl FUN_021FB6DC + bl MOD04_021FB6DC add r0, r6, #7 sub sb, sb, r0 cmp sb, #0 @@ -39850,7 +39856,7 @@ _021FB678: ble _021FB6BC mov r0, sl mov r1, sb - bl FUN_021FBB3C + bl MOD04_021FBB3C mov r8, r0 _021FB6BC: cmp sb, #0 @@ -39864,8 +39870,8 @@ _021FB6CC: _021FB6D4: .word 0x0220EDDC _021FB6D8: .word 0x0220EDD8 - arm_func_start FUN_021FB6DC -FUN_021FB6DC: ; 0x021FB6DC + arm_func_start MOD04_021FB6DC +MOD04_021FB6DC: ; 0x021FB6DC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r1 @@ -39879,7 +39885,7 @@ FUN_021FB6DC: ; 0x021FB6DC bne _021FB71C mov r0, r5 mov r1, r4 - bl FUN_021FBA00 + bl MOD04_021FBA00 add sp, sp, #4 ldmia sp!, {r4, r5, pc} _021FB71C: @@ -39891,7 +39897,7 @@ _021FB71C: bne _021FB748 mov r0, r5 mov r1, r4 - bl FUN_021FB968 + bl MOD04_021FB968 add sp, sp, #4 ldmia sp!, {r4, r5, pc} _021FB748: @@ -39903,7 +39909,7 @@ _021FB748: bne _021FB774 mov r0, r5 mov r1, r4 - bl FUN_021FB968 + bl MOD04_021FB968 add sp, sp, #4 ldmia sp!, {r4, r5, pc} _021FB774: @@ -39915,7 +39921,7 @@ _021FB774: bne _021FB7A0 mov r0, r5 mov r1, r4 - bl FUN_021FB884 + bl MOD04_021FB884 add sp, sp, #4 ldmia sp!, {r4, r5, pc} _021FB7A0: @@ -39928,7 +39934,7 @@ _021FB7A0: ldmneia sp!, {r4, r5, pc} mov r0, r5 mov r1, r4 - bl FUN_021FB7E0 + bl MOD04_021FB7E0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 @@ -39937,34 +39943,34 @@ _021FB7D4: .word 0x0220EE08 _021FB7D8: .word 0x0220EE14 _021FB7DC: .word 0x0220EE20 - arm_func_start FUN_021FB7E0 -FUN_021FB7E0: ; 0x021FB7E0 + arm_func_start MOD04_021FB7E0 +MOD04_021FB7E0: ; 0x021FB7E0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r1, _021FB874 ; =0x0220EE2C mov r7, r0 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r6, r0 ldr r1, _021FB878 ; =0x0220EE34 mov r0, r7 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r5, r0 ldr r1, _021FB87C ; =0x0220EE38 mov r0, r7 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r4, r0 ldr r1, _021FB880 ; =0x0220EE3C mov r0, r7 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r1, r4 mov r4, r0 mov r2, r5 mov r0, #2 - bl FUN_021FBAB0 + bl MOD04_021FBAB0 mvn r1, #0 cmp r0, r1 addeq sp, sp, #4 @@ -39973,7 +39979,7 @@ FUN_021FB7E0: ; 0x021FB7E0 mov r1, r6 mov r2, r4 str r3, [sp] - bl FUN_021FB530 + bl MOD04_021FB530 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 @@ -39982,34 +39988,34 @@ _021FB878: .word 0x0220EE34 _021FB87C: .word 0x0220EE38 _021FB880: .word 0x0220EE3C - arm_func_start FUN_021FB884 -FUN_021FB884: ; 0x021FB884 + arm_func_start MOD04_021FB884 +MOD04_021FB884: ; 0x021FB884 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 ldr r1, _021FB94C ; =0x0220EE40 mov r4, r0 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r7, r0 ldr r1, _021FB950 ; =0x0220EE38 mov r0, r4 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r6, r0 ldr r1, _021FB954 ; =0x0220EE34 mov r0, r4 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r5, r0 ldr r1, _021FB958 ; =0x0220EE3C mov r0, r4 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r2, r5 mov r5, r0 mov r1, r6 mov r0, #1 - bl FUN_021FBAB0 + bl MOD04_021FBAB0 mov r8, r0 mvn r0, #0 cmp r8, r0 @@ -40017,7 +40023,7 @@ FUN_021FB884: ; 0x021FB884 ldmeqia sp!, {r4, r5, r6, r7, r8, pc} ldr r1, _021FB95C ; =0x0220EE48 mov r0, r4 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r6, r0 ldr r1, _021FB960 ; =0x0220EE50 @@ -40031,7 +40037,7 @@ FUN_021FB884: ; 0x021FB884 mov r1, r7 mov r2, r5 str r6, [sp] - bl FUN_021FB530 + bl MOD04_021FB530 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 @@ -40043,23 +40049,23 @@ _021FB95C: .word 0x0220EE48 _021FB960: .word 0x0220EE50 _021FB964: .word 0x0220EE58 - arm_func_start FUN_021FB968 -FUN_021FB968: ; 0x021FB968 + arm_func_start MOD04_021FB968 +MOD04_021FB968: ; 0x021FB968 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r1, _021FB9F4 ; =0x0220EE5C mov r5, r0 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r4, r0 ldr r1, _021FB9F8 ; =0x0220EE38 mov r0, r5 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r1, r0 mov r0, #3 mov r2, #0 - bl FUN_021FBAB0 + bl MOD04_021FBAB0 mov r5, r0 mvn r0, #0 cmp r5, r0 @@ -40068,7 +40074,7 @@ FUN_021FB968: ; 0x021FB968 ldr r0, _021FB9FC ; =0x02210F84 mov r1, r5 ldr r0, [r0] - bl FUN_021EEFFC + bl MOD04_021EEFFC cmp r4, #0 movgt r1, #1 mov r2, #0 @@ -40077,7 +40083,7 @@ FUN_021FB968: ; 0x021FB968 mov r0, r5 mov r3, r2 str r2, [sp] - bl FUN_021FB530 + bl MOD04_021FB530 add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 @@ -40085,28 +40091,28 @@ _021FB9F4: .word 0x0220EE5C _021FB9F8: .word 0x0220EE38 _021FB9FC: .word 0x02210F84 - arm_func_start FUN_021FBA00 -FUN_021FBA00: ; 0x021FBA00 + arm_func_start MOD04_021FBA00 +MOD04_021FBA00: ; 0x021FBA00 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 ldr r1, _021FBAA0 ; =0x0220EE64 mov r6, r0 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r5, r0 ldr r1, _021FBAA4 ; =0x0220EE38 mov r0, r6 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 bl atol mov r4, r0 ldr r1, _021FBAA8 ; =0x0220EE6C mov r0, r6 - bl FUN_021FBBC8 + bl MOD04_021FBBC8 mov r1, r4 mov r4, r0 mov r0, #0 mov r2, r0 - bl FUN_021FBAB0 + bl MOD04_021FBAB0 mov r6, r0 mvn r0, #0 cmp r6, r0 @@ -40115,7 +40121,7 @@ FUN_021FBA00: ; 0x021FBA00 ldr r0, _021FBAAC ; =0x02210F84 mov r1, r6 ldr r0, [r0] - bl FUN_021EEFFC + bl MOD04_021EEFFC cmp r5, #0 movgt r1, #1 str r5, [r0, #8] @@ -40124,7 +40130,7 @@ FUN_021FBA00: ; 0x021FBA00 mov r0, r6 mov r3, r4 str r2, [sp] - bl FUN_021FB530 + bl MOD04_021FB530 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 @@ -40133,8 +40139,8 @@ _021FBAA4: .word 0x0220EE38 _021FBAA8: .word 0x0220EE6C _021FBAAC: .word 0x02210F84 - arm_func_start FUN_021FBAB0 -FUN_021FBAB0: ; 0x021FBAB0 + arm_func_start MOD04_021FBAB0 +MOD04_021FBAB0: ; 0x021FBAB0 stmdb sp!, {r4, r5, r6, r7, r8, lr} ldr r3, _021FBB38 ; =0x02210F84 mov r7, r0 @@ -40145,14 +40151,14 @@ FUN_021FBAB0: ; 0x021FBAB0 mvneq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, pc} mov r4, #0 - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 ble _021FBB30 ldr r8, _021FBB38 ; =0x02210F84 _021FBAE8: ldr r0, [r8] mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r1, [r0] cmp r1, r7 bne _021FBB1C @@ -40166,7 +40172,7 @@ _021FBAE8: _021FBB1C: ldr r0, [r8] add r4, r4, #1 - bl FUN_021EF06C + bl MOD04_021EF06C cmp r4, r0 blt _021FBAE8 _021FBB30: @@ -40175,8 +40181,8 @@ _021FBB30: .align 2, 0 _021FBB38: .word 0x02210F84 - arm_func_start FUN_021FBB3C -FUN_021FBB3C: ; 0x021FBB3C + arm_func_start MOD04_021FBB3C +MOD04_021FBB3C: ; 0x021FBB3C sub r2, r1, #6 mov r3, r0 cmp r2, #0 @@ -40213,18 +40219,18 @@ _021FBBB4: mov r0, #0 bx lr - arm_func_start FUN_021FBBBC -FUN_021FBBBC: ; 0x021FBBBC - ldr ip, _021FBBC4 ; =FUN_021EFF2C + arm_func_start MOD04_021FBBBC +MOD04_021FBBBC: ; 0x021FBBBC + ldr ip, _021FBBC4 ; =MOD04_021EFF2C bx ip .align 2, 0 -_021FBBC4: .word FUN_021EFF2C +_021FBBC4: .word MOD04_021EFF2C - arm_func_start FUN_021FBBC8 -FUN_021FBBC8: ; 0x021FBBC8 + arm_func_start MOD04_021FBBC8 +MOD04_021FBBC8: ; 0x021FBBC8 stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_021FBBE8 + bl MOD04_021FBBE8 cmp r0, #0 ldreq r0, _021FBBE4 ; =0x0220EE58 add sp, sp, #4 @@ -40232,8 +40238,8 @@ FUN_021FBBC8: ; 0x021FBBC8 .align 2, 0 _021FBBE4: .word 0x0220EE58 - arm_func_start FUN_021FBBE8 -FUN_021FBBE8: ; 0x021FBBE8 + arm_func_start MOD04_021FBBE8 +MOD04_021FBBE8: ; 0x021FBBE8 stmdb sp!, {r4, lr} sub sp, sp, #0x100 ldr lr, _021FBCA8 ; =0x0220BBD8 @@ -40292,8 +40298,8 @@ _021FBCAC: .word 0x02210F8C _021FBCB0: .word 0x0220EE74 _021FBCB4: .word 0x02211194 - arm_func_start FUN_021FBCB8 -FUN_021FBCB8: ; 0x021FBCB8 + arm_func_start MOD04_021FBCB8 +MOD04_021FBCB8: ; 0x021FBCB8 stmdb sp!, {r4, lr} ldr r2, _021FBCFC ; =0x0220EDD8 mov r4, #0 @@ -40315,8 +40321,8 @@ _021FBCD0: .align 2, 0 _021FBCFC: .word 0x0220EDD8 - arm_func_start FUN_021FBD00 -FUN_021FBD00: ; 0x021FBD00 + arm_func_start MOD04_021FBD00 +MOD04_021FBD00: ; 0x021FBD00 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} ldr r0, _021FBE48 ; =0x0220EDD4 mvn r1, #0 @@ -40329,7 +40335,7 @@ FUN_021FBD00: ; 0x021FBD00 cmp r1, #5 movne r0, #0 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - bl FUN_021FBBBC + bl MOD04_021FBBBC cmp r0, #0 beq _021FBE2C ldr r8, _021FBE50 ; =0x02210F80 @@ -40351,7 +40357,7 @@ _021FBD54: ldr r1, [sl] ldr r0, [r8] add r1, r1, #1 - bl FUN_021DD844 + bl MOD04_021DD844 str r0, [r8] cmp r0, #0 moveq r0, #0 @@ -40364,10 +40370,10 @@ _021FBD98: mov r3, r5 add r1, r1, r4 sub r2, r2, r4 - bl FUN_021EFC78 + bl MOD04_021EFC78 cmp r0, #0 bgt _021FBDCC - bl FUN_021FBE7C + bl MOD04_021FBE7C mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _021FBDCC: @@ -40378,7 +40384,7 @@ _021FBDCC: strb r5, [r1, r0] ldr r0, [r8] ldr r1, [sb] - bl FUN_021FB654 + bl MOD04_021FB654 ldr r1, [sb] mov r4, r0 cmp r4, r1 @@ -40393,7 +40399,7 @@ _021FBDCC: str r0, [sb] _021FBE1C: ldr r0, [r7] - bl FUN_021FBBBC + bl MOD04_021FBBBC cmp r0, #0 bne _021FBD54 _021FBE2C: @@ -40411,8 +40417,8 @@ _021FBE50: .word 0x02210F80 _021FBE54: .word 0x02210F90 _021FBE58: .word 0x02210F7C - arm_func_start FUN_021FBE5C -FUN_021FBE5C: ; 0x021FBE5C + arm_func_start MOD04_021FBE5C +MOD04_021FBE5C: ; 0x021FBE5C ldr r1, _021FBE78 ; =0x0220EDD4 mvn r0, #0 ldr r1, [r1] @@ -40423,8 +40429,8 @@ FUN_021FBE5C: ; 0x021FBE5C .align 2, 0 _021FBE78: .word 0x0220EDD4 - arm_func_start FUN_021FBE7C -FUN_021FBE7C: ; 0x021FBE7C + arm_func_start MOD04_021FBE7C +MOD04_021FBE7C: ; 0x021FBE7C stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _021FBEF8 ; =0x0220EDD4 @@ -40433,21 +40439,21 @@ FUN_021FBE7C: ; 0x021FBE7C cmp r0, r1 beq _021FBEAC mov r1, #2 - bl FUN_021EFD80 + bl MOD04_021EFD80 ldr r0, _021FBEF8 ; =0x0220EDD4 ldr r0, [r0] - bl FUN_021EFD9C + bl MOD04_021EFD9C _021FBEAC: ldr r0, _021FBEF8 ; =0x0220EDD4 mvn r1, #0 str r1, [r0] - bl FUN_021FB44C + bl MOD04_021FB44C ldr r0, _021FBEFC ; =0x02210F80 ldr r0, [r0] cmp r0, #0 addeq sp, sp, #4 ldmeqia sp!, {pc} - bl FUN_021DD82C + bl MOD04_021DD82C ldr r2, _021FBEFC ; =0x02210F80 mov r3, #0 ldr r1, _021FBF00 ; =0x02210F90 @@ -40463,8 +40469,8 @@ _021FBEFC: .word 0x02210F80 _021FBF00: .word 0x02210F90 _021FBF04: .word 0x02210F7C - arm_func_start FUN_021FBF08 -FUN_021FBF08: ; 0x021FBF08 + arm_func_start MOD04_021FBF08 +MOD04_021FBF08: ; 0x021FBF08 mov ip, #0 _021FBF0C: cmp ip, #0 @@ -40483,8 +40489,8 @@ _021FBF30: mov r0, #1 bx lr - arm_func_start FUN_021FBF44 -FUN_021FBF44: ; 0x021FBF44 + arm_func_start MOD04_021FBF44 +MOD04_021FBF44: ; 0x021FBF44 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 mov r5, r0 @@ -40493,7 +40499,7 @@ FUN_021FBF44: ; 0x021FBF44 bl strlen mov r8, r0 mov r0, r4 - bl FUN_021FC1BC + bl MOD04_021FC1BC mov sl, #0 mov fp, r0 mov r7, sl @@ -40572,8 +40578,8 @@ _021FC070: .word 0x2C0B02C1 _021FC074: .word 0x0000005D _021FC078: .word 0x00004647 - arm_func_start FUN_021FC07C -FUN_021FC07C: ; 0x021FC07C + arm_func_start MOD04_021FC07C +MOD04_021FC07C: ; 0x021FC07C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 movs sl, r0 @@ -40584,7 +40590,7 @@ FUN_021FC07C: ; 0x021FC07C mov r3, #0x2b bl __msl_assertion_failed _021FC0A0: - bl FUN_021F025C + bl MOD04_021F025C bl srand bl rand ldr r1, _021FC1B4 ; =0x2C0B02C1 @@ -40661,8 +40667,8 @@ _021FC1B0: .word 0x0220EEA4 _021FC1B4: .word 0x2C0B02C1 _021FC1B8: .word 0x0000005D - arm_func_start FUN_021FC1BC -FUN_021FC1BC: ; 0x021FC1BC + arm_func_start MOD04_021FC1BC +MOD04_021FC1BC: ; 0x021FC1BC stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 ldrb r4, [r0] @@ -40711,8 +40717,8 @@ _021FC250: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} - arm_func_start FUN_021FC268 -FUN_021FC268: ; 0x021FC268 + arm_func_start MOD04_021FC268 +MOD04_021FC268: ; 0x021FC268 stmdb sp!, {r4, r5, r6, lr} mov r5, r1 mvn r1, #0 @@ -40756,8 +40762,8 @@ _021FC2F8: .word 0x0220EEB0 _021FC2FC: .word 0x0220EEC8 _021FC300: .word 0x0220EED4 - arm_func_start FUN_021FC304 -FUN_021FC304: ; 0x021FC304 + arm_func_start MOD04_021FC304 +MOD04_021FC304: ; 0x021FC304 stmdb sp!, {r4, r5, r6, lr} movs r5, r1 mov r6, r0 @@ -40797,8 +40803,8 @@ _021FC360: _021FC388: .word 0x0220EEF8 _021FC38C: .word 0x0220EEC8 - arm_func_start FUN_021FC390 -FUN_021FC390: ; 0x021FC390 + arm_func_start MOD04_021FC390 +MOD04_021FC390: ; 0x021FC390 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -40831,8 +40837,8 @@ _021FC3C8: _021FC3FC: .word 0x0220EF1C _021FC400: .word 0x0220EEC8 - arm_func_start FUN_021FC404 -FUN_021FC404: ; 0x021FC404 + arm_func_start MOD04_021FC404 +MOD04_021FC404: ; 0x021FC404 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -40858,21 +40864,21 @@ _021FC438: _021FC454: .word 0x0220EF40 _021FC458: .word 0x0220EEC8 - arm_func_start FUN_021FC45C -FUN_021FC45C: ; 0x021FC45C + arm_func_start MOD04_021FC45C +MOD04_021FC45C: ; 0x021FC45C ldr r1, [r0, #4] ldr r0, [r0, #8] sub r0, r1, r0 bx lr - arm_func_start FUN_021FC46C -FUN_021FC46C: ; 0x021FC46C + arm_func_start MOD04_021FC46C +MOD04_021FC46C: ; 0x021FC46C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r1 mov r5, r0 mov r0, r4 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [r5] ldr r0, [r5] cmp r0, #0 @@ -40882,8 +40888,8 @@ FUN_021FC46C: ; 0x021FC46C add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021FC4A4 -FUN_021FC4A4: ; 0x021FC4A4 + arm_func_start MOD04_021FC4A4 +MOD04_021FC4A4: ; 0x021FC4A4 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 ldr r4, [sp, #0x24] @@ -40939,7 +40945,7 @@ _021FC51C: cmp r0, #0 bne _021FC584 mov r0, r8 - bl FUN_021FF9CC + bl MOD04_021FF9CC add sp, sp, #8 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -40952,8 +40958,8 @@ _021FC590: .word 0x0220EF5C _021FC594: .word 0x0220EF64 _021FC598: .word 0x00000197 - arm_func_start FUN_021FC59C -FUN_021FC59C: ; 0x021FC59C + arm_func_start MOD04_021FC59C +MOD04_021FC59C: ; 0x021FC59C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc movs r7, r0 @@ -41022,7 +41028,7 @@ _021FC620: cmp r0, #0 bne _021FC6B0 mov r0, r7 - bl FUN_021FF9CC + bl MOD04_021FF9CC add sp, sp, #0xc mov r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} @@ -41034,8 +41040,8 @@ _021FC6B0: _021FC6BC: .word 0x0220EF5C _021FC6C0: .word 0x0220EF64 - arm_func_start FUN_021FC6C4 -FUN_021FC6C4: ; 0x021FC6C4 + arm_func_start MOD04_021FC6C4 +MOD04_021FC6C4: ; 0x021FC6C4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 movs r7, r0 @@ -41055,7 +41061,7 @@ _021FC6F4: ldmeqia sp!, {r4, r5, r6, r7, pc} ldr r0, [r7, #0x9c] mov r1, r6 - bl FUN_021EEFFC + bl MOD04_021EEFFC movs lr, r0 addeq sp, sp, #4 moveq r0, #1 @@ -41097,7 +41103,7 @@ _021FC738: ldr r1, [r0, #0x1c] cmp r1, #0 bne _021FC7BC - bl FUN_021FF9CC + bl MOD04_021FF9CC add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} @@ -41110,8 +41116,8 @@ _021FC7C8: .word 0x0220EF74 _021FC7CC: .word 0x0220EF64 _021FC7D0: .word 0x0000012D - arm_func_start FUN_021FC7D4 -FUN_021FC7D4: ; 0x021FC7D4 + arm_func_start MOD04_021FC7D4 +MOD04_021FC7D4: ; 0x021FC7D4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 movs r7, r0 @@ -41131,7 +41137,7 @@ _021FC804: ldmeqia sp!, {r4, r5, r6, r7, pc} ldr r0, [r7, #0x98] mov r1, r6 - bl FUN_021EEFFC + bl MOD04_021EEFFC movs lr, r0 addeq sp, sp, #4 moveq r0, #1 @@ -41173,7 +41179,7 @@ _021FC848: ldr r1, [r0, #0x1c] cmp r1, #0 bne _021FC8CC - bl FUN_021FF9CC + bl MOD04_021FF9CC add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} @@ -41186,8 +41192,8 @@ _021FC8D8: .word 0x0220EF74 _021FC8DC: .word 0x0220EF64 _021FC8E0: .word 0x00000101 - arm_func_start FUN_021FC8E4 -FUN_021FC8E4: ; 0x021FC8E4 + arm_func_start MOD04_021FC8E4 +MOD04_021FC8E4: ; 0x021FC8E4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r4, r0 @@ -41233,7 +41239,7 @@ _021FC90C: ldr r1, [r0, #0x1c] cmp r1, #0 bne _021FC9A4 - bl FUN_021FF9CC + bl MOD04_021FF9CC add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, pc} @@ -41245,8 +41251,8 @@ _021FC9A4: _021FC9B0: .word 0x0220EF74 _021FC9B4: .word 0x0220EF64 - arm_func_start FUN_021FC9B8 -FUN_021FC9B8: ; 0x021FC9B8 + arm_func_start MOD04_021FC9B8 +MOD04_021FC9B8: ; 0x021FC9B8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r4, r0 @@ -41292,7 +41298,7 @@ _021FC9E0: ldr r1, [r0, #0x1c] cmp r1, #0 bne _021FCA78 - bl FUN_021FF9CC + bl MOD04_021FF9CC add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, pc} @@ -41304,8 +41310,8 @@ _021FCA78: _021FCA84: .word 0x0220EF74 _021FCA88: .word 0x0220EF64 - arm_func_start FUN_021FCA8C -FUN_021FCA8C: ; 0x021FCA8C + arm_func_start MOD04_021FCA8C +MOD04_021FCA8C: ; 0x021FCA8C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 movs r7, r0 @@ -41363,7 +41369,7 @@ _021FCAF8: ldr r1, [r0, #0x1c] cmp r1, #0 bne _021FCB74 - bl FUN_021FF9CC + bl MOD04_021FF9CC add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} @@ -41375,8 +41381,8 @@ _021FCB74: _021FCB80: .word 0x0220EF74 _021FCB84: .word 0x0220EF64 - arm_func_start FUN_021FCB88 -FUN_021FCB88: ; 0x021FCB88 + arm_func_start MOD04_021FCB88 +MOD04_021FCB88: ; 0x021FCB88 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 movs r7, r0 @@ -41435,7 +41441,7 @@ _021FCBF8: ldr r1, [r0, #0x1c] cmp r1, #0 bne _021FCC74 - bl FUN_021FF9CC + bl MOD04_021FF9CC add sp, sp, #4 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} @@ -41447,8 +41453,8 @@ _021FCC74: _021FCC80: .word 0x0220EF74 _021FCC84: .word 0x0220EF64 - arm_func_start FUN_021FCC88 -FUN_021FCC88: ; 0x021FCC88 + arm_func_start MOD04_021FCC88 +MOD04_021FCC88: ; 0x021FCC88 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc movs r7, r0 @@ -41521,7 +41527,7 @@ _021FCD14: cmp r0, #0 bne _021FCDA0 mov r0, r7 - bl FUN_021FF9CC + bl MOD04_021FF9CC add sp, sp, #0xc mov r0, #0 ldmia sp!, {r4, r5, r6, r7, pc} @@ -41533,8 +41539,8 @@ _021FCDA0: _021FCDAC: .word 0x0220EF80 _021FCDB0: .word 0x0220EF64 - arm_func_start FUN_021FCDB4 -FUN_021FCDB4: ; 0x021FCDB4 + arm_func_start MOD04_021FCDB4 +MOD04_021FCDB4: ; 0x021FCDB4 stmdb sp!, {r4, lr} movs r4, r0 bne _021FCDD4 @@ -41567,7 +41573,7 @@ _021FCDD4: cmp r0, #0 bne _021FCE3C mov r0, r4 - bl FUN_021FF9CC + bl MOD04_021FF9CC mov r0, #0 ldmia sp!, {r4, pc} _021FCE3C: @@ -41577,51 +41583,51 @@ _021FCE3C: _021FCE44: .word 0x0220EF5C _021FCE48: .word 0x0220EF64 - arm_func_start FUN_021FCE4C -FUN_021FCE4C: ; 0x021FCE4C + arm_func_start MOD04_021FCE4C +MOD04_021FCE4C: ; 0x021FCE4C stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #0x38] cmp r0, #0 beq _021FCE64 - bl FUN_021DD82C + bl MOD04_021DD82C _021FCE64: ldr r0, [r4, #0x44] cmp r0, #0 beq _021FCE74 - bl FUN_021DD82C + bl MOD04_021DD82C _021FCE74: ldr r0, [r4, #0x50] cmp r0, #0 beq _021FCE84 - bl FUN_021DD82C + bl MOD04_021DD82C _021FCE84: ldr r0, [r4, #0x5c] cmp r0, #0 beq _021FCE94 - bl FUN_021EF074 + bl MOD04_021EF074 _021FCE94: ldr r0, [r4, #0x60] cmp r0, #0 beq _021FCEA4 - bl FUN_021EF074 + bl MOD04_021EF074 _021FCEA4: ldr r0, [r4, #0x98] cmp r0, #0 beq _021FCEB4 - bl FUN_021EF074 + bl MOD04_021EF074 _021FCEB4: ldr r0, [r4, #0x9c] cmp r0, #0 beq _021FCEC4 - bl FUN_021EF074 + bl MOD04_021EF074 _021FCEC4: mov r0, r4 - bl FUN_021DD82C + bl MOD04_021DD82C ldmia sp!, {r4, pc} - arm_func_start FUN_021FCED0 -FUN_021FCED0: ; 0x021FCED0 + arm_func_start MOD04_021FCED0 +MOD04_021FCED0: ; 0x021FCED0 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {lr} sub sp, sp, #4 @@ -41638,19 +41644,19 @@ FUN_021FCED0: ; 0x021FCED0 add r1, sp, #8 ldr r0, [r0, #8] ldr r0, [r0, #0xc] - bl FUN_021EF3F4 + bl MOD04_021EF3F4 ldr r0, [sp, #8] add r1, sp, #8 ldr r0, [r0, #8] ldr r0, [r0, #0x10] - bl FUN_021EEFA8 + bl MOD04_021EEFA8 add sp, sp, #4 ldmia sp!, {lr} add sp, sp, #0x10 bx lr - arm_func_start FUN_021FCF38 -FUN_021FCF38: ; 0x021FCF38 + arm_func_start MOD04_021FCF38 +MOD04_021FCF38: ; 0x021FCF38 stmdb sp!, {r4, lr} mov r4, r0 cmp r1, #0 @@ -41658,57 +41664,57 @@ FUN_021FCF38: ; 0x021FCF38 ldr r1, [r4, #0xc] cmp r1, #7 ldmgeia sp!, {r4, pc} - bl FUN_021FCED0 + bl MOD04_021FCED0 mov r0, r4 - bl FUN_021FD828 + bl MOD04_021FD828 mov r0, r4 mov r1, #0 - bl FUN_021FC9B8 + bl MOD04_021FC9B8 mov r0, r4 - bl FUN_021FF6BC + bl MOD04_021FF6BC ldmia sp!, {r4, pc} _021FCF78: mov r1, #6 str r1, [r4, #0xc] - bl FUN_021FDA74 + bl MOD04_021FDA74 ldmia sp!, {r4, pc} - arm_func_start FUN_021FCF88 -FUN_021FCF88: ; 0x021FCF88 + arm_func_start MOD04_021FCF88 +MOD04_021FCF88: ; 0x021FCF88 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 - bl FUN_021FD108 + bl MOD04_021FD108 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {r4, r5, pc} mov r0, r5 mov r1, r4 - bl FUN_021FD004 + bl MOD04_021FD004 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {r4, r5, pc} mov r0, r5 mov r1, r4 - bl FUN_021FD090 + bl MOD04_021FD090 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 ldmeqia sp!, {r4, r5, pc} mov r0, r5 mov r1, r4 - bl FUN_021FD044 + bl MOD04_021FD044 cmp r0, #0 movne r0, #1 moveq r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021FD004 -FUN_021FD004: ; 0x021FD004 + arm_func_start MOD04_021FD004 +MOD04_021FD004: ; 0x021FD004 stmdb sp!, {lr} sub sp, sp, #4 ldr r3, [r0, #0x88] @@ -41716,7 +41722,7 @@ FUN_021FD004: ; 0x021FD004 sub r1, r1, r3 cmp r1, r2 bls _021FD034 - bl FUN_021FDA18 + bl MOD04_021FDA18 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 @@ -41728,8 +41734,8 @@ _021FD034: .align 2, 0 _021FD040: .word 0x00007530 - arm_func_start FUN_021FD044 -FUN_021FD044: ; 0x021FD044 + arm_func_start MOD04_021FD044 +MOD04_021FD044: ; 0x021FD044 stmdb sp!, {lr} sub sp, sp, #4 ldr r2, [r0, #0x90] @@ -41741,7 +41747,7 @@ FUN_021FD044: ; 0x021FD044 sub r1, r1, r2 cmp r1, #0x64 bls _021FD084 - bl FUN_021FD8E4 + bl MOD04_021FD8E4 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 @@ -41751,14 +41757,14 @@ _021FD084: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021FD090 -FUN_021FD090: ; 0x021FD090 + arm_func_start MOD04_021FD090 +MOD04_021FD090: ; 0x021FD090 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 ldr r0, [r7, #0x60] mov r6, r1 - bl FUN_021EF06C + bl MOD04_021EF06C mov r4, r0 cmp r4, #0 mov r5, #0 @@ -41766,14 +41772,14 @@ FUN_021FD090: ; 0x021FD090 _021FD0B8: ldr r0, [r7, #0x60] mov r1, r5 - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r1, r0 ldr r0, [r1, #0xc] sub r0, r6, r0 cmp r0, #0x3e8 bls _021FD0F0 mov r0, r7 - bl FUN_021FD760 + bl MOD04_021FD760 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 @@ -41787,8 +41793,8 @@ _021FD0FC: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_021FD108 -FUN_021FD108: ; 0x021FD108 + arm_func_start MOD04_021FD108 +MOD04_021FD108: ; 0x021FD108 stmdb sp!, {r4, lr} mov r4, r0 ldr r2, [r4, #0xc] @@ -41818,14 +41824,14 @@ _021FD168: cmp r3, #0 beq _021FD1A0 mov r0, r4 - bl FUN_021FD828 + bl MOD04_021FD828 mov r0, r4 - bl FUN_021FCED0 + bl MOD04_021FCED0 mov r2, #0 mov r0, r4 mov r3, r2 mov r1, #6 - bl FUN_021FCB88 + bl MOD04_021FCB88 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} @@ -41835,8 +41841,8 @@ _021FD1A0: .align 2, 0 _021FD1A8: .word 0x0000EA60 - arm_func_start FUN_021FD1AC -FUN_021FD1AC: ; 0x021FD1AC + arm_func_start MOD04_021FD1AC +MOD04_021FD1AC: ; 0x021FD1AC stmdb sp!, {r4, lr} sub sp, sp, #8 mov r4, r0 @@ -41845,19 +41851,19 @@ FUN_021FD1AC: ; 0x021FD1AC ldrh r2, [r4, #4] ldr r0, [r4, #8] ldr r1, [r4] - bl FUN_021FF50C + bl MOD04_021FF50C cmp r0, #0 addeq sp, sp, #8 moveq r0, #0 ldmeqia sp!, {r4, pc} - bl FUN_021F025C + bl MOD04_021F025C str r0, [r4, #0x88] mov r0, #1 add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_start FUN_021FD1F4 -FUN_021FD1F4: ; 0x021FD1F4 + arm_func_start MOD04_021FD1F4 +MOD04_021FD1F4: ; 0x021FD1F4 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, lr} mov r4, r0 @@ -41870,19 +41876,19 @@ FUN_021FD1F4: ; 0x021FD1F4 bxne lr add r0, sp, #0xc add r1, sp, #0x10 - bl FUN_021FFCDC + bl MOD04_021FFCDC ldr r1, [sp, #0xc] ldr r2, [sp, #0x10] mov r0, r4 - bl FUN_021FDAD0 + bl MOD04_021FDAD0 mov r0, #6 str r0, [r4, #0xc] ldmia sp!, {r4, lr} add sp, sp, #0x10 bx lr - arm_func_start FUN_021FD24C -FUN_021FD24C: ; 0x021FD24C + arm_func_start MOD04_021FD24C +MOD04_021FD24C: ; 0x021FD24C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -41900,7 +41906,7 @@ FUN_021FD24C: ; 0x021FD24C addne sp, sp, #4 movne r0, r2 ldmneia sp!, {r4, r5, pc} - bl FUN_021FDB44 + bl MOD04_021FDB44 mov r0, #5 cmp r4, #0 str r0, [r5, #0xc] @@ -41911,8 +41917,8 @@ FUN_021FD24C: ; 0x021FD24C add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021FD2B8 -FUN_021FD2B8: ; 0x021FD2B8 + arm_func_start MOD04_021FD2B8 +MOD04_021FD2B8: ; 0x021FD2B8 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, lr} sub sp, sp, #0x24 @@ -41920,11 +41926,11 @@ FUN_021FD2B8: ; 0x021FD2B8 add r0, sp, #0x34 add r1, sp, #0x38 mov r4, r3 - bl FUN_021FFCDC + bl MOD04_021FFCDC ldr r0, [sp, #0x38] cmp r0, #0 ble _021FD31C - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [r5, #0x38] ldr r0, [r5, #0x38] cmp r0, #0 @@ -41944,13 +41950,13 @@ _021FD31C: ldmneia r4, {r0, r1, r2, r3} stmneia ip, {r0, r1, r2, r3} add r0, sp, #0 - bl FUN_021FC07C + bl MOD04_021FC07C add r1, sp, #0 add r0, r5, #0x68 - bl FUN_021FBF44 + bl MOD04_021FBF44 add r1, sp, #0 mov r0, r5 - bl FUN_021FDCB4 + bl MOD04_021FDCB4 mov r0, #0 str r0, [r5, #0xc] add sp, sp, #0x24 @@ -41958,11 +41964,11 @@ _021FD31C: add sp, sp, #0x10 bx lr - arm_func_start FUN_021FD364 -FUN_021FD364: ; 0x021FD364 + arm_func_start MOD04_021FD364 +MOD04_021FD364: ; 0x021FD364 stmdb sp!, {r4, lr} mov r4, r1 - bl FUN_021FF790 + bl MOD04_021FF790 cmp r0, #0 ldmneia sp!, {r4, pc} ldr r0, [r4] @@ -41973,11 +41979,11 @@ FUN_021FD364: ; 0x021FD364 str r0, [r1, #0x10] ldmia sp!, {r4, pc} - arm_func_start FUN_021FD394 -FUN_021FD394: ; 0x021FD394 + arm_func_start MOD04_021FD394 +MOD04_021FD394: ; 0x021FD394 stmdb sp!, {r4, lr} mov r4, r1 - bl FUN_021FF790 + bl MOD04_021FF790 cmp r0, #0 ldmneia sp!, {r4, pc} ldr r1, [r4] @@ -41988,8 +41994,8 @@ FUN_021FD394: ; 0x021FD394 str r2, [r1, #0x10] ldmia sp!, {r4, pc} - arm_func_start FUN_021FD3C4 -FUN_021FD3C4: ; 0x021FD3C4 + arm_func_start MOD04_021FD3C4 +MOD04_021FD3C4: ; 0x021FD3C4 stmdb sp!, {r4, lr} movs r4, r0 bne _021FD3E4 @@ -42006,8 +42012,8 @@ _021FD3EC: .word 0x0220EF98 _021FD3F0: .word 0x0220EFA4 _021FD3F4: .word 0x000001A3 - arm_func_start FUN_021FD3F8 -FUN_021FD3F8: ; 0x021FD3F8 + arm_func_start MOD04_021FD3F8 +MOD04_021FD3F8: ; 0x021FD3F8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r5, r0 @@ -42026,57 +42032,57 @@ _021FD420: _021FD42C: .word 0x0220EF98 _021FD430: .word 0x0220EFA4 - arm_func_start FUN_021FD434 -FUN_021FD434: ; 0x021FD434 + arm_func_start MOD04_021FD434 +MOD04_021FD434: ; 0x021FD434 str r1, [r0, #0x30] bx lr - arm_func_start FUN_021FD43C -FUN_021FD43C: ; 0x021FD43C + arm_func_start MOD04_021FD43C +MOD04_021FD43C: ; 0x021FD43C ldr r0, [r0] bx lr - arm_func_start FUN_021FD444 -FUN_021FD444: ; 0x021FD444 + arm_func_start MOD04_021FD444 +MOD04_021FD444: ; 0x021FD444 ldr r1, [r0, #0x54] ldr r0, [r0, #0x58] sub r0, r1, r0 bx lr - arm_func_start FUN_021FD454 -FUN_021FD454: ; 0x021FD454 + arm_func_start MOD04_021FD454 +MOD04_021FD454: ; 0x021FD454 ldrh r0, [r0, #8] bx lr - arm_func_start FUN_021FD45C -FUN_021FD45C: ; 0x021FD45C - ldr ip, _021FD470 ; =FUN_021EF2E4 + arm_func_start MOD04_021FD45C +MOD04_021FD45C: ; 0x021FD45C + ldr ip, _021FD470 ; =MOD04_021EF2E4 ldr r0, [r0, #0xc] - ldr r1, _021FD474 ; =FUN_021FD478 + ldr r1, _021FD474 ; =MOD04_021FD478 mov r2, #0 bx ip .align 2, 0 -_021FD470: .word FUN_021EF2E4 -_021FD474: .word FUN_021FD478 +_021FD470: .word MOD04_021EF2E4 +_021FD474: .word MOD04_021FD478 - arm_func_start FUN_021FD478 -FUN_021FD478: ; 0x021FD478 - ldr ip, _021FD484 ; =FUN_021FD488 + arm_func_start MOD04_021FD478 +MOD04_021FD478: ; 0x021FD478 + ldr ip, _021FD484 ; =MOD04_021FD488 ldr r0, [r0] bx ip .align 2, 0 -_021FD484: .word FUN_021FD488 +_021FD484: .word MOD04_021FD488 - arm_func_start FUN_021FD488 -FUN_021FD488: ; 0x021FD488 - ldr ip, _021FD494 ; =FUN_021FCF38 + arm_func_start MOD04_021FD488 +MOD04_021FD488: ; 0x021FD488 + ldr ip, _021FD494 ; =MOD04_021FCF38 mov r1, #1 bx ip .align 2, 0 -_021FD494: .word FUN_021FCF38 +_021FD494: .word MOD04_021FCF38 - arm_func_start FUN_021FD498 -FUN_021FD498: ; 0x021FD498 + arm_func_start MOD04_021FD498 +MOD04_021FD498: ; 0x021FD498 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, lr} sub sp, sp, #4 @@ -42090,9 +42096,9 @@ FUN_021FD498: ; 0x021FD498 bxne lr add r0, sp, #0x14 add r1, sp, #0x18 - bl FUN_021FFCDC + bl MOD04_021FFCDC ldr r0, [r5, #0x98] - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 beq _021FD508 str r4, [sp] @@ -42100,7 +42106,7 @@ FUN_021FD498: ; 0x021FD498 ldr r3, [sp, #0x18] mov r0, r5 mov r1, #0 - bl FUN_021FC7D4 + bl MOD04_021FC7D4 add sp, sp, #4 ldmia sp!, {r4, r5, lr} add sp, sp, #0x10 @@ -42110,14 +42116,14 @@ _021FD508: ldr r2, [sp, #0x18] mov r0, r5 mov r3, r4 - bl FUN_021FD738 + bl MOD04_021FD738 add sp, sp, #4 ldmia sp!, {r4, r5, lr} add sp, sp, #0x10 bx lr - arm_func_start FUN_021FD52C -FUN_021FD52C: ; 0x021FD52C + arm_func_start MOD04_021FD52C +MOD04_021FD52C: ; 0x021FD52C stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x10 mov r6, r0 @@ -42126,7 +42132,7 @@ FUN_021FD52C: ; 0x021FD52C add r1, sp, #8 add r2, sp, #0 mov r4, r3 - bl FUN_021FFD28 + bl MOD04_021FFD28 cmp r0, #0 beq _021FD570 ldr r2, [sp, #8] @@ -42158,7 +42164,7 @@ _021FD57C: ldmeqia sp!, {r4, r5, r6, r7, r8, pc} add r1, sp, #4 mov r0, r6 - bl FUN_021FD394 + bl MOD04_021FD394 cmp r0, #0 addne sp, sp, #0x10 ldmneia sp!, {r4, r5, r6, r7, r8, pc} @@ -42169,11 +42175,11 @@ _021FD57C: ldr r0, [sp, #4] ldr r3, [sp, #0x30] mov r1, r4 - bl FUN_021FD2B8 + bl MOD04_021FD2B8 movs r4, r0 beq _021FD610 ldr r0, [sp, #4] - bl FUN_021FF6BC + bl MOD04_021FF6BC add sp, sp, #0x10 mov r0, r4 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -42196,7 +42202,7 @@ _021FD634: mov r7, #1 _021FD64C: mov r0, r6 - bl FUN_021FD6D4 + bl MOD04_021FD6D4 ldr r0, [sp, #4] ldr r0, [r0, #0xc] cmp r0, #5 @@ -42205,7 +42211,7 @@ _021FD64C: cmp r8, #0 bne _021FD678 mov r0, r7 - bl FUN_021F0250 + bl MOD04_021F0250 _021FD678: cmp r8, #0 beq _021FD64C @@ -42222,77 +42228,77 @@ _021FD678: add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, pc} - arm_func_start FUN_021FD6B0 -FUN_021FD6B0: ; 0x021FD6B0 - ldr ip, _021FD6B8 ; =FUN_021FD1F4 + arm_func_start MOD04_021FD6B0 +MOD04_021FD6B0: ; 0x021FD6B0 + ldr ip, _021FD6B8 ; =MOD04_021FD1F4 bx ip .align 2, 0 -_021FD6B8: .word FUN_021FD1F4 +_021FD6B8: .word MOD04_021FD1F4 - arm_func_start FUN_021FD6BC -FUN_021FD6BC: ; 0x021FD6BC - ldr ip, _021FD6C4 ; =FUN_021FD24C + arm_func_start MOD04_021FD6BC +MOD04_021FD6BC: ; 0x021FD6BC + ldr ip, _021FD6C4 ; =MOD04_021FD24C bx ip .align 2, 0 -_021FD6C4: .word FUN_021FD24C +_021FD6C4: .word MOD04_021FD24C - arm_func_start FUN_021FD6C8 -FUN_021FD6C8: ; 0x021FD6C8 - ldr ip, _021FD6D0 ; =FUN_021FF9C4 + arm_func_start MOD04_021FD6C8 +MOD04_021FD6C8: ; 0x021FD6C8 + ldr ip, _021FD6D0 ; =MOD04_021FF9C4 bx ip .align 2, 0 -_021FD6D0: .word FUN_021FF9C4 +_021FD6D0: .word MOD04_021FF9C4 - arm_func_start FUN_021FD6D4 -FUN_021FD6D4: ; 0x021FD6D4 + arm_func_start MOD04_021FD6D4 +MOD04_021FD6D4: ; 0x021FD6D4 stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_021FDF60 + bl MOD04_021FDF60 cmp r0, #0 ldmeqia sp!, {r4, pc} mov r0, r4 - bl FUN_021FF470 + bl MOD04_021FF470 cmp r0, #0 ldmeqia sp!, {r4, pc} mov r0, r4 - bl FUN_021FF42C + bl MOD04_021FF42C ldmia sp!, {r4, pc} - arm_func_start FUN_021FD704 -FUN_021FD704: ; 0x021FD704 + arm_func_start MOD04_021FD704 +MOD04_021FD704: ; 0x021FD704 stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_021FD45C + bl MOD04_021FD45C mov r0, r4 - bl FUN_021FF9CC + bl MOD04_021FF9CC ldmia sp!, {r4, pc} - arm_func_start FUN_021FD71C -FUN_021FD71C: ; 0x021FD71C + arm_func_start MOD04_021FD71C +MOD04_021FD71C: ; 0x021FD71C stmdb sp!, {lr} sub sp, sp, #4 ldr ip, [sp, #8] str ip, [sp] - bl FUN_021FFA10 + bl MOD04_021FFA10 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021FD738 -FUN_021FD738: ; 0x021FD738 + arm_func_start MOD04_021FD738 +MOD04_021FD738: ; 0x021FD738 stmdb sp!, {lr} sub sp, sp, #4 cmp r3, #0 beq _021FD754 - bl FUN_021FDD24 + bl MOD04_021FDD24 add sp, sp, #4 ldmfd sp!, {pc} _021FD754: - bl FUN_021FD94C + bl MOD04_021FD94C add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021FD760 -FUN_021FD760: ; 0x021FD760 + arm_func_start MOD04_021FD760 +MOD04_021FD760: ; 0x021FD760 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 @@ -42301,13 +42307,13 @@ FUN_021FD760: ; 0x021FD760 ldrh r2, [r4, #0x66] ldr r0, [r4, #0x50] add r1, r1, #5 - bl FUN_021FF3BC + bl MOD04_021FF3BC ldr r3, [r4, #0x50] ldr r1, [r5] ldr r2, [r5, #4] mov r0, r4 add r1, r3, r1 - bl FUN_021FD1AC + bl MOD04_021FD1AC cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 @@ -42325,8 +42331,8 @@ FUN_021FD760: ; 0x021FD760 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021FD7DC -FUN_021FD7DC: ; 0x021FD7DC + arm_func_start MOD04_021FD7DC +MOD04_021FD7DC: ; 0x021FD7DC stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc ldr r4, _021FD824 ; =0x0220EFB0 @@ -42339,7 +42345,7 @@ FUN_021FD7DC: ; 0x021FD7DC strb r4, [r3, #1] strb lr, [sp, #6] str ip, [sp] - bl FUN_021FF50C + bl MOD04_021FF50C cmp r0, #0 movne r0, #1 moveq r0, #0 @@ -42348,28 +42354,28 @@ FUN_021FD7DC: ; 0x021FD7DC .align 2, 0 _021FD824: .word 0x0220EFB0 - arm_func_start FUN_021FD828 -FUN_021FD828: ; 0x021FD828 - ldr ip, _021FD840 ; =FUN_021FD7DC + arm_func_start MOD04_021FD828 +MOD04_021FD828: ; 0x021FD828 + ldr ip, _021FD840 ; =MOD04_021FD7DC mov r1, r0 ldrh r2, [r1, #4] ldr r0, [r1, #8] ldr r1, [r1] bx ip .align 2, 0 -_021FD840: .word FUN_021FD7DC +_021FD840: .word MOD04_021FD7DC - arm_func_start FUN_021FD844 -FUN_021FD844: ; 0x021FD844 - ldr ip, _021FD854 ; =FUN_021FD1AC + arm_func_start MOD04_021FD844 +MOD04_021FD844: ; 0x021FD844 + ldr ip, _021FD854 ; =MOD04_021FD1AC mov r3, #0x67 strb r3, [r1, #2] bx ip .align 2, 0 -_021FD854: .word FUN_021FD1AC +_021FD854: .word MOD04_021FD1AC - arm_func_start FUN_021FD858 -FUN_021FD858: ; 0x021FD858 + arm_func_start MOD04_021FD858 +MOD04_021FD858: ; 0x021FD858 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc ldr r3, _021FD8E0 ; =0x0220EFB0 @@ -42386,20 +42392,20 @@ FUN_021FD858: ; 0x021FD858 mov r5, #0 mov r1, #3 strb r3, [sp, #2] - bl FUN_021FF3BC + bl MOD04_021FF3BC cmp r7, r6 add r5, r5, #5 beq _021FD8BC add r0, sp, #0 mov r1, r5 mov r2, r6 - bl FUN_021FF3BC + bl MOD04_021FF3BC add r5, r5, #2 _021FD8BC: add r1, sp, #0 mov r0, r4 mov r2, r5 - bl FUN_021FD1AC + bl MOD04_021FD1AC cmp r0, #0 moveq r0, #0 movne r0, #1 @@ -42408,8 +42414,8 @@ _021FD8BC: .align 2, 0 _021FD8E0: .word 0x0220EFB0 - arm_func_start FUN_021FD8E4 -FUN_021FD8E4: ; 0x021FD8E4 + arm_func_start MOD04_021FD8E4 +MOD04_021FD8E4: ; 0x021FD8E4 stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r1, _021FD948 ; =0x0220EFB0 @@ -42423,11 +42429,11 @@ FUN_021FD8E4: ; 0x021FD8E4 strb r1, [sp, #2] ldrh r2, [r4, #0x66] mov r1, #3 - bl FUN_021FF3BC + bl MOD04_021FF3BC add r1, sp, #0 mov r0, r4 mov r2, #5 - bl FUN_021FD1AC + bl MOD04_021FD1AC cmp r0, #0 moveq r0, #0 movne r0, #0 @@ -42438,8 +42444,8 @@ FUN_021FD8E4: ; 0x021FD8E4 .align 2, 0 _021FD948: .word 0x0220EFB0 - arm_func_start FUN_021FD94C -FUN_021FD94C: ; 0x021FD94C + arm_func_start MOD04_021FD94C +MOD04_021FD94C: ; 0x021FD94C stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r6, r2 mov r8, r0 @@ -42456,7 +42462,7 @@ _021FD97C: mov r0, r8 mov r1, r7 mov r2, r6 - bl FUN_021FD1AC + bl MOD04_021FD1AC cmp r0, #0 moveq r0, #0 movne r0, #1 @@ -42464,7 +42470,7 @@ _021FD97C: _021FD99C: add r5, r6, #2 add r0, r8, #0x50 - bl FUN_021FC45C + bl MOD04_021FC45C cmp r0, r5 movlt r0, #1 ldmltia sp!, {r4, r5, r6, r7, r8, pc} @@ -42474,36 +42480,36 @@ _021FD99C: add r0, r8, #0x50 mov r2, #2 add r4, ip, r3 - bl FUN_021FC304 + bl MOD04_021FC304 mov r1, r7 mov r2, r6 add r0, r8, #0x50 - bl FUN_021FC304 + bl MOD04_021FC304 mov r0, r8 mov r1, r4 mov r2, r5 - bl FUN_021FD1AC + bl MOD04_021FD1AC cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, pc} mov r2, r5 add r0, r8, #0x50 mvn r1, #0 - bl FUN_021FC268 + bl MOD04_021FC268 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _021FDA14: .word 0x0220EFB0 - arm_func_start FUN_021FDA18 -FUN_021FDA18: ; 0x021FDA18 + arm_func_start MOD04_021FDA18 +MOD04_021FDA18: ; 0x021FDA18 stmdb sp!, {r4, lr} sub sp, sp, #8 mov r1, #7 add r3, sp, #0 mov r2, r1 mov r4, r0 - bl FUN_021FDE18 + bl MOD04_021FDE18 cmp r0, #0 addeq sp, sp, #8 moveq r0, #0 @@ -42514,22 +42520,22 @@ FUN_021FDA18: ; 0x021FDA18 movne r0, #1 ldmneia sp!, {r4, pc} mov r0, r4 - bl FUN_021FDD98 + bl MOD04_021FDD98 cmp r0, #0 movne r0, #1 moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_start FUN_021FDA74 -FUN_021FDA74: ; 0x021FDA74 + arm_func_start MOD04_021FDA74 +MOD04_021FDA74: ; 0x021FDA74 stmdb sp!, {r4, lr} sub sp, sp, #8 add r3, sp, #0 mov r1, #6 mov r2, #7 mov r4, r0 - bl FUN_021FDE18 + bl MOD04_021FDE18 cmp r0, #0 addeq sp, sp, #8 moveq r0, #0 @@ -42540,15 +42546,15 @@ FUN_021FDA74: ; 0x021FDA74 movne r0, #1 ldmneia sp!, {r4, pc} mov r0, r4 - bl FUN_021FDD98 + bl MOD04_021FDD98 cmp r0, #0 movne r0, #1 moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_start FUN_021FDAD0 -FUN_021FDAD0: ; 0x021FDAD0 + arm_func_start MOD04_021FDAD0 +MOD04_021FDAD0: ; 0x021FDAD0 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r4, r2 @@ -42557,7 +42563,7 @@ FUN_021FDAD0: ; 0x021FDAD0 add r2, r4, #7 mov r1, #5 mov r6, r0 - bl FUN_021FDE18 + bl MOD04_021FDE18 cmp r0, #0 addeq sp, sp, #8 moveq r0, #0 @@ -42570,24 +42576,24 @@ FUN_021FDAD0: ; 0x021FDAD0 mov r1, r5 mov r2, r4 add r0, r6, #0x50 - bl FUN_021FC304 + bl MOD04_021FC304 mov r0, r6 - bl FUN_021FDD98 + bl MOD04_021FDD98 cmp r0, #0 movne r0, #1 moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021FDB44 -FUN_021FDB44: ; 0x021FDB44 + arm_func_start MOD04_021FDB44 +MOD04_021FDB44: ; 0x021FDB44 stmdb sp!, {r4, lr} sub sp, sp, #8 add r3, sp, #0 mov r1, #4 mov r2, #7 mov r4, r0 - bl FUN_021FDE18 + bl MOD04_021FDE18 cmp r0, #0 addeq sp, sp, #8 moveq r0, #0 @@ -42598,15 +42604,15 @@ FUN_021FDB44: ; 0x021FDB44 movne r0, #1 ldmneia sp!, {r4, pc} mov r0, r4 - bl FUN_021FDD98 + bl MOD04_021FDD98 cmp r0, #0 movne r0, #1 moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_start FUN_021FDBA0 -FUN_021FDBA0: ; 0x021FDBA0 + arm_func_start MOD04_021FDBA0 +MOD04_021FDBA0: ; 0x021FDBA0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r4, r3 @@ -42616,7 +42622,7 @@ FUN_021FDBA0: ; 0x021FDBA0 add r2, r4, #0x27 mov r1, #3 mov r7, r0 - bl FUN_021FDE18 + bl MOD04_021FDE18 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 @@ -42629,21 +42635,21 @@ FUN_021FDBA0: ; 0x021FDBA0 mov r1, r6 add r0, r7, #0x50 mov r2, #0x20 - bl FUN_021FC304 + bl MOD04_021FC304 mov r1, r5 mov r2, r4 add r0, r7, #0x50 - bl FUN_021FC304 + bl MOD04_021FC304 mov r0, r7 - bl FUN_021FDD98 + bl MOD04_021FDD98 cmp r0, #0 movne r0, #1 moveq r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_021FDC28 -FUN_021FDC28: ; 0x021FDC28 + arm_func_start MOD04_021FDC28 +MOD04_021FDC28: ; 0x021FDC28 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r5, r1 @@ -42652,7 +42658,7 @@ FUN_021FDC28: ; 0x021FDC28 mov r1, #2 mov r2, #0x47 mov r6, r0 - bl FUN_021FDE18 + bl MOD04_021FDE18 cmp r0, #0 addeq sp, sp, #8 moveq r0, #0 @@ -42665,13 +42671,13 @@ FUN_021FDC28: ; 0x021FDC28 mov r1, r5 add r0, r6, #0x50 mov r2, #0x20 - bl FUN_021FC304 + bl MOD04_021FC304 mov r1, r4 add r0, r6, #0x50 mov r2, #0x20 - bl FUN_021FC304 + bl MOD04_021FC304 mov r0, r6 - bl FUN_021FDD98 + bl MOD04_021FDD98 cmp r0, #0 ldrne r1, [r6, #0x88] moveq r0, #0 @@ -42680,8 +42686,8 @@ FUN_021FDC28: ; 0x021FDC28 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021FDCB4 -FUN_021FDCB4: ; 0x021FDCB4 + arm_func_start MOD04_021FDCB4 +MOD04_021FDCB4: ; 0x021FDCB4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r1 @@ -42689,7 +42695,7 @@ FUN_021FDCB4: ; 0x021FDCB4 mov r1, #1 mov r2, #0x27 mov r5, r0 - bl FUN_021FDE18 + bl MOD04_021FDE18 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 @@ -42702,17 +42708,17 @@ FUN_021FDCB4: ; 0x021FDCB4 mov r1, r4 add r0, r5, #0x50 mov r2, #0x20 - bl FUN_021FC304 + bl MOD04_021FC304 mov r0, r5 - bl FUN_021FDD98 + bl MOD04_021FDD98 cmp r0, #0 movne r0, #1 moveq r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021FDD24 -FUN_021FDD24: ; 0x021FDD24 + arm_func_start MOD04_021FDD24 +MOD04_021FDD24: ; 0x021FDD24 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r4, r2 @@ -42721,7 +42727,7 @@ FUN_021FDD24: ; 0x021FDD24 add r2, r4, #7 mov r1, #0 mov r6, r0 - bl FUN_021FDE18 + bl MOD04_021FDE18 cmp r0, #0 addeq sp, sp, #8 moveq r0, #0 @@ -42734,22 +42740,22 @@ FUN_021FDD24: ; 0x021FDD24 mov r1, r5 mov r2, r4 add r0, r6, #0x50 - bl FUN_021FC304 + bl MOD04_021FC304 mov r0, r6 - bl FUN_021FDD98 + bl MOD04_021FDD98 cmp r0, #0 movne r0, #1 moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021FDD98 -FUN_021FDD98: ; 0x021FDD98 + arm_func_start MOD04_021FDD98 +MOD04_021FDD98: ; 0x021FDD98 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 ldr r0, [r5, #0x60] - bl FUN_021EF06C + bl MOD04_021EF06C mov r4, r0 cmp r4, #0 bgt _021FDDCC @@ -42761,13 +42767,13 @@ FUN_021FDD98: ; 0x021FDD98 _021FDDCC: ldr r0, [r5, #0x60] sub r1, r4, #1 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r3, [r5, #0x50] ldr r1, [r0] ldr r2, [r0, #4] mov r0, r5 add r1, r3, r1 - bl FUN_021FD1AC + bl MOD04_021FD1AC cmp r0, #0 moveq r0, #0 movne r0, #0 @@ -42780,8 +42786,8 @@ _021FDE0C: .word 0x0220EFBC _021FDE10: .word 0x0220EFC4 _021FDE14: .word 0x00000475 - arm_func_start FUN_021FDE18 -FUN_021FDE18: ; 0x021FDE18 + arm_func_start MOD04_021FDE18 +MOD04_021FDE18: ; 0x021FDE18 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 @@ -42789,11 +42795,11 @@ FUN_021FDE18: ; 0x021FDE18 add r0, r7, #0x50 mov r6, r1 mov r4, r3 - bl FUN_021FC45C + bl MOD04_021FC45C cmp r0, r5 bge _021FDE60 mov r0, r7 - bl FUN_021FF2D8 + bl MOD04_021FF2D8 cmp r0, #0 moveq r0, #0 movne r0, #1 @@ -42804,11 +42810,11 @@ _021FDE60: ldrh r1, [r7, #0x64] mov r0, r7 mov r2, r5 - bl FUN_021FDEEC + bl MOD04_021FDEEC cmp r0, #0 bne _021FDE98 mov r0, r7 - bl FUN_021FF2D8 + bl MOD04_021FF2D8 cmp r0, #0 moveq r0, #0 movne r0, #1 @@ -42819,18 +42825,18 @@ _021FDE98: ldr r1, _021FDEE8 ; =0x0220EFB0 add r0, r7, #0x50 mov r2, #2 - bl FUN_021FC304 + bl MOD04_021FC304 add r0, r7, #0x50 and r1, r6, #0xff - bl FUN_021FC404 + bl MOD04_021FC404 ldrh r1, [r7, #0x64] add r0, r7, #0x50 add r2, r1, #1 strh r2, [r7, #0x64] - bl FUN_021FC390 + bl MOD04_021FC390 ldrh r1, [r7, #0x66] add r0, r7, #0x50 - bl FUN_021FC390 + bl MOD04_021FC390 mov r0, #0 str r0, [r4] mov r0, #1 @@ -42839,8 +42845,8 @@ _021FDE98: .align 2, 0 _021FDEE8: .word 0x0220EFB0 - arm_func_start FUN_021FDEEC -FUN_021FDEEC: ; 0x021FDEEC + arm_func_start MOD04_021FDEEC +MOD04_021FDEEC: ; 0x021FDEEC stmdb sp!, {r4, r5, lr} sub sp, sp, #0x14 add r4, sp, #0 @@ -42854,16 +42860,16 @@ FUN_021FDEEC: ; 0x021FDEEC str r0, [sp] str r2, [sp, #4] strh r1, [sp, #8] - bl FUN_021F025C + bl MOD04_021F025C str r0, [sp, #0xc] ldr r0, [r5, #0x60] - bl FUN_021EF06C + bl MOD04_021EF06C mov r4, r0 ldr r0, [r5, #0x60] add r1, sp, #0 - bl FUN_021EEFA8 + bl MOD04_021EEFA8 ldr r0, [r5, #0x60] - bl FUN_021EF06C + bl MOD04_021EF06C add r1, r4, #1 cmp r1, r0 moveq r0, #1 @@ -42871,14 +42877,14 @@ FUN_021FDEEC: ; 0x021FDEEC add sp, sp, #0x14 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021FDF60 -FUN_021FDF60: ; 0x021FDF60 + arm_func_start MOD04_021FDF60 +MOD04_021FDF60: ; 0x021FDF60 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} ldr ip, _021FE0AC ; =0x000005F4 sub sp, sp, ip mov sl, r0 ldr r0, [sl] - bl FUN_021EFF2C + bl MOD04_021EFF2C cmp r0, #0 beq _021FE09C ldr fp, _021FE0B0 ; =0x000005DC @@ -42896,13 +42902,13 @@ _021FDF9C: mov r1, r6 mov r2, fp mov r3, r5 - bl FUN_021EFC40 + bl MOD04_021EFC40 mov r2, r0 mvn r0, #0 cmp r2, r0 bne _021FE044 ldr r0, [sl] - bl FUN_021EFB28 + bl MOD04_021EFB28 cmp r0, r4 bne _021FE020 ldrh r2, [sp, #0xa] @@ -42915,7 +42921,7 @@ _021FDF9C: orr r2, r3, r2 mov r2, r2, lsl #0x10 mov r2, r2, lsr #0x10 - bl FUN_021FE0B4 + bl MOD04_021FE0B4 cmp r0, #0 bne _021FE08C ldr ip, _021FE0AC ; =0x000005F4 @@ -42927,7 +42933,7 @@ _021FE020: cmp r0, r1 beq _021FE08C mov r0, sl - bl FUN_021FF3F0 + bl MOD04_021FF3F0 ldr ip, _021FE0AC ; =0x000005F4 mov r0, #0 add sp, sp, ip @@ -42945,7 +42951,7 @@ _021FE044: mov r3, r3, lsr #0x10 str r3, [sp] ldr r3, [sp, #0xc] - bl FUN_021FE1B4 + bl MOD04_021FE1B4 cmp r0, #0 ldreq ip, _021FE0AC ; =0x000005F4 moveq r0, #0 @@ -42953,7 +42959,7 @@ _021FE044: ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _021FE08C: ldr r0, [sl] - bl FUN_021EFF2C + bl MOD04_021EFF2C cmp r0, #0 bne _021FDF9C _021FE09C: @@ -42965,14 +42971,14 @@ _021FE09C: _021FE0AC: .word 0x000005F4 _021FE0B0: .word 0x000005DC - arm_func_start FUN_021FE0B4 -FUN_021FE0B4: ; 0x021FE0B4 + arm_func_start MOD04_021FE0B4 +MOD04_021FE0B4: ; 0x021FE0B4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x14 mov r7, r0 mov r6, r1 mov r5, r2 - bl FUN_021FFC3C + bl MOD04_021FFC3C ldr r1, [r7, #0x2c] mov r4, r0 cmp r1, #0 @@ -42987,7 +42993,7 @@ FUN_021FE0B4: ; 0x021FE0B4 mov r2, r6 mov r3, r5 str ip, [sp, #0xc] - bl FUN_021FC59C + bl MOD04_021FC59C cmp r0, #0 addeq sp, sp, #0x14 moveq r0, #0 @@ -43003,7 +43009,7 @@ _021FE118: ldr r0, [r4, #0x20] cmp r0, #0 beq _021FE158 - bl FUN_021F025C + bl MOD04_021F025C ldr r2, [r4, #0x1c] ldr r1, [r4, #0x20] sub r0, r0, r2 @@ -43017,7 +43023,7 @@ _021FE164: mov r0, r4 mov r1, #6 mov r2, #1 - bl FUN_021FF318 + bl MOD04_021FF318 cmp r0, #0 bne _021FE1A8 add sp, sp, #0x14 @@ -43027,7 +43033,7 @@ _021FE188: mov r0, r4 mov r1, #2 mov r2, #1 - bl FUN_021FF318 + bl MOD04_021FF318 cmp r0, #0 addeq sp, sp, #0x14 moveq r0, #0 @@ -43037,8 +43043,8 @@ _021FE1A8: add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_021FE1B4 -FUN_021FE1B4: ; 0x021FE1B4 + arm_func_start MOD04_021FE1B4 +MOD04_021FE1B4: ; 0x021FE1B4 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x1c ldr r5, [sp, #0x38] @@ -43048,7 +43054,7 @@ FUN_021FE1B4: ; 0x021FE1B4 mov r1, r6 mov r2, r5 mov sb, r0 - bl FUN_021FFC3C + bl MOD04_021FFC3C str r0, [sp, #0x10] ldr r0, [sb, #0x2c] cmp r0, #0 @@ -43062,7 +43068,7 @@ FUN_021FE1B4: ; 0x021FE1B4 mov r0, sb mov r2, r6 mov r3, r5 - bl FUN_021FC59C + bl MOD04_021FC59C cmp r0, #0 addeq sp, sp, #0x1c moveq r0, #0 @@ -43090,7 +43096,7 @@ _021FE24C: mov r2, r5 mov r3, r8 str ip, [sp, #4] - bl FUN_021FC4A4 + bl MOD04_021FC4A4 cmp r0, #0 addeq sp, sp, #0x1c moveq r0, #0 @@ -43115,7 +43121,7 @@ _021FE2C4: mov r0, sb mov r1, r6 mov r2, r5 - bl FUN_021FD7DC + bl MOD04_021FD7DC cmp r0, #0 addeq sp, sp, #0x1c moveq r0, #0 @@ -43134,7 +43140,7 @@ _021FE2F0: mov r0, sb mov r2, r6 mov r3, r5 - bl FUN_021FD364 + bl MOD04_021FD364 cmp r0, #0 beq _021FE354 cmp r0, #5 @@ -43142,7 +43148,7 @@ _021FE2F0: mov r0, sb mov r1, r6 mov r2, r5 - bl FUN_021FD7DC + bl MOD04_021FD7DC cmp r0, #0 addeq sp, sp, #0x1c moveq r0, #0 @@ -43163,7 +43169,7 @@ _021FE354: beq _021FE390 _021FE378: mov r0, r5 - bl FUN_021FD828 + bl MOD04_021FD828 cmp r0, #0 addeq sp, sp, #0x1c moveq r0, #0 @@ -43191,7 +43197,7 @@ _021FE3CC: mov r0, r5 mov r1, r8 mov r2, r7 - bl FUN_021FF134 + bl MOD04_021FF134 cmp r0, #0 movne r0, #1 add sp, sp, #0x1c @@ -43202,7 +43208,7 @@ _021FE3F8: cmp r1, #0 bge _021FE420 mov r0, r5 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 add sp, sp, #0x1c @@ -43214,7 +43220,7 @@ _021FE420: mov r0, r5 mov r2, r8 mov r3, r7 - bl FUN_021FE780 + bl MOD04_021FE780 cmp r0, #0 movne r0, #1 add sp, sp, #0x1c @@ -43224,7 +43230,7 @@ _021FE44C: mov r0, r5 mov r2, r8 mov r3, r7 - bl FUN_021FE474 + bl MOD04_021FE474 cmp r0, #0 movne r0, #1 moveq r0, #0 @@ -43233,8 +43239,8 @@ _021FE44C: .align 2, 0 _021FE470: .word 0x0220EFB0 - arm_func_start FUN_021FE474 -FUN_021FE474: ; 0x021FE474 + arm_func_start MOD04_021FE474 +MOD04_021FE474: ; 0x021FE474 stmdb sp!, {lr} sub sp, sp, #4 cmp r1, #0x64 @@ -43243,7 +43249,7 @@ FUN_021FE474: ; 0x021FE474 bne _021FE4AC mov r1, lr mov r2, ip - bl FUN_021FE734 + bl MOD04_021FE734 cmp r0, #0 bne _021FE540 add sp, sp, #4 @@ -43254,7 +43260,7 @@ _021FE4AC: bne _021FE4D4 mov r1, lr mov r2, ip - bl FUN_021FE648 + bl MOD04_021FE648 cmp r0, #0 bne _021FE540 add sp, sp, #4 @@ -43265,7 +43271,7 @@ _021FE4D4: bne _021FE4FC mov r1, r2 mov r2, r3 - bl FUN_021FE63C + bl MOD04_021FE63C cmp r0, #0 bne _021FE540 add sp, sp, #4 @@ -43276,7 +43282,7 @@ _021FE4FC: bne _021FE524 mov r1, lr mov r2, ip - bl FUN_021FE590 + bl MOD04_021FE590 cmp r0, #0 bne _021FE540 add sp, sp, #4 @@ -43285,7 +43291,7 @@ _021FE4FC: _021FE524: cmp r1, #0x68 bne _021FE540 - bl FUN_021FE54C + bl MOD04_021FE54C cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 @@ -43295,8 +43301,8 @@ _021FE540: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021FE54C -FUN_021FE54C: ; 0x021FE54C + arm_func_start MOD04_021FE54C +MOD04_021FE54C: ; 0x021FE54C stmdb sp!, {lr} sub sp, sp, #4 ldr r1, [r0, #0xc] @@ -43308,15 +43314,15 @@ FUN_021FE54C: ; 0x021FE54C moveq r2, #0 movne r2, #1 mov r1, #2 - bl FUN_021FF318 + bl MOD04_021FF318 cmp r0, #0 moveq r0, #0 movne r0, #1 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021FE590 -FUN_021FE590: ; 0x021FE590 + arm_func_start MOD04_021FE590 +MOD04_021FE590: ; 0x021FE590 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 @@ -43348,12 +43354,12 @@ FUN_021FE590: ; 0x021FE590 ldrb r0, [r2, #3] strb r1, [r3, #2] strb r0, [r3, #3] - bl FUN_021F025C + bl MOD04_021F025C mov r2, r0 ldr r1, [sp] mov r0, r4 sub r1, r2, r1 - bl FUN_021FC8E4 + bl MOD04_021FC8E4 cmp r0, #0 movne r0, #1 moveq r0, #0 @@ -43362,15 +43368,15 @@ FUN_021FE590: ; 0x021FE590 .align 2, 0 _021FE638: .word 0x0220EFB4 - arm_func_start FUN_021FE63C -FUN_021FE63C: ; 0x021FE63C - ldr ip, _021FE644 ; =FUN_021FD844 + arm_func_start MOD04_021FE63C +MOD04_021FE63C: ; 0x021FE63C + ldr ip, _021FE644 ; =MOD04_021FD844 bx ip .align 2, 0 -_021FE644: .word FUN_021FD844 +_021FE644: .word MOD04_021FD844 - arm_func_start FUN_021FE648 -FUN_021FE648: ; 0x021FE648 + arm_func_start MOD04_021FE648 +MOD04_021FE648: ; 0x021FE648 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov r6, r1 @@ -43378,7 +43384,7 @@ FUN_021FE648: ; 0x021FE648 mov r0, r6 mov r1, #0 mov r5, r2 - bl FUN_021FF3D0 + bl MOD04_021FF3D0 mov sb, r0 cmp r5, #2 moveq r8, sb @@ -43387,12 +43393,12 @@ FUN_021FE648: ; 0x021FE648 bne _021FE694 mov r0, r6 mov r1, #2 - bl FUN_021FF3D0 + bl MOD04_021FF3D0 mov r8, r0 b _021FE6B0 _021FE694: mov r0, r4 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 add sp, sp, #4 @@ -43400,7 +43406,7 @@ _021FE694: ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} _021FE6B0: ldr r0, [r4, #0x60] - bl FUN_021EF06C + bl MOD04_021EF06C mov r7, r0 cmp r7, #0 mov r6, #0 @@ -43408,21 +43414,21 @@ _021FE6B0: _021FE6C8: ldr r0, [r4, #0x60] mov r1, r6 - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r5, r0 ldrh r0, [r5, #8] mov r1, sb - bl FUN_021FF3AC + bl MOD04_021FF3AC cmp r0, #0 blt _021FE71C ldrh r0, [r5, #8] mov r1, r8 - bl FUN_021FF3AC + bl MOD04_021FF3AC cmp r0, #0 bgt _021FE71C mov r0, r4 mov r1, r5 - bl FUN_021FD760 + bl MOD04_021FD760 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 @@ -43436,13 +43442,13 @@ _021FE728: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} - arm_func_start FUN_021FE734 -FUN_021FE734: ; 0x021FE734 + arm_func_start MOD04_021FE734 +MOD04_021FE734: ; 0x021FE734 stmdb sp!, {r4, lr} mov r4, r0 cmp r2, #2 beq _021FE758 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 moveq r0, #0 @@ -43450,17 +43456,17 @@ FUN_021FE734: ; 0x021FE734 _021FE758: mov r0, r1 mov r1, #0 - bl FUN_021FF3D0 + bl MOD04_021FF3D0 mov r1, r0 mov r0, r4 - bl FUN_021FF1C8 + bl MOD04_021FF1C8 cmp r0, #0 movne r0, #1 moveq r0, #0 ldmia sp!, {r4, pc} - arm_func_start FUN_021FE780 -FUN_021FE780: ; 0x021FE780 + arm_func_start MOD04_021FE780 +MOD04_021FE780: ; 0x021FE780 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x10 mov r6, r3 @@ -43469,7 +43475,7 @@ FUN_021FE780: ; 0x021FE780 mov r7, r2 cmp r6, #7 bge _021FE7B8 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 add sp, sp, #0x10 @@ -43478,14 +43484,14 @@ FUN_021FE780: ; 0x021FE780 _021FE7B8: mov r0, r7 mov r1, #3 - bl FUN_021FF3D0 + bl MOD04_021FF3D0 mov r5, r0 mov r0, r7 mov r1, #5 - bl FUN_021FF3D0 + bl MOD04_021FF3D0 mov r1, r0 mov r0, r4 - bl FUN_021FF1C8 + bl MOD04_021FF1C8 cmp r0, #0 addeq sp, sp, #0x10 moveq r0, #0 @@ -43494,18 +43500,18 @@ _021FE7B8: cmp r5, r1 bne _021FE844 mov r0, r4 - bl FUN_021FE8CC + bl MOD04_021FE8CC mov r0, r4 mov r1, r8 add r2, r7, #7 sub r3, r6, #7 - bl FUN_021FEBD0 + bl MOD04_021FEBD0 cmp r0, #0 addeq sp, sp, #0x10 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, pc} mov r0, r4 - bl FUN_021FE8F4 + bl MOD04_021FE8F4 cmp r0, #0 movne r0, #1 add sp, sp, #0x10 @@ -43513,11 +43519,11 @@ _021FE7B8: ldmia sp!, {r4, r5, r6, r7, r8, pc} _021FE844: mov r0, r5 - bl FUN_021FF3AC + bl MOD04_021FF3AC cmp r0, #0 bge _021FE868 mov r0, r4 - bl FUN_021FE8CC + bl MOD04_021FE8CC add sp, sp, #0x10 mov r0, #1 ldmia sp!, {r4, r5, r6, r7, r8, pc} @@ -43530,7 +43536,7 @@ _021FE868: mov r2, r5 add r3, r7, #7 str ip, [sp, #4] - bl FUN_021FEA0C + bl MOD04_021FEA0C cmp r0, #0 addeq sp, sp, #0x10 moveq r0, #0 @@ -43539,7 +43545,7 @@ _021FE868: cmp r0, #0 beq _021FE8C0 mov r0, r4 - bl FUN_021FF2D8 + bl MOD04_021FF2D8 cmp r0, #0 addeq sp, sp, #0x10 moveq r0, #0 @@ -43549,8 +43555,8 @@ _021FE8C0: add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, pc} - arm_func_start FUN_021FE8CC -FUN_021FE8CC: ; 0x021FE8CC + arm_func_start MOD04_021FE8CC +MOD04_021FE8CC: ; 0x021FE8CC stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #0x90] @@ -43558,23 +43564,23 @@ FUN_021FE8CC: ; 0x021FE8CC ldmneia sp!, {r4, pc} mov r0, #1 str r0, [r4, #0x90] - bl FUN_021F025C + bl MOD04_021F025C str r0, [r4, #0x94] ldmia sp!, {r4, pc} - arm_func_start FUN_021FE8F4 -FUN_021FE8F4: ; 0x021FE8F4 + arm_func_start MOD04_021FE8F4 +MOD04_021FE8F4: ; 0x021FE8F4 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 _021FE8FC: ldr r0, [r6, #0x5c] - bl FUN_021EF06C + bl MOD04_021EF06C subs r5, r0, #1 bmi _021FE970 _021FE90C: ldr r0, [r6, #0x5c] mov r1, r5 - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r4, r0 ldrh r1, [r4, #0xc] ldrh r0, [r6, #0x66] @@ -43586,14 +43592,14 @@ _021FE90C: ldr r3, [r4, #4] mov r0, r6 add r2, ip, r2 - bl FUN_021FEBD0 + bl MOD04_021FEBD0 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} mov r0, r6 mov r1, r4 mov r2, r5 - bl FUN_021FE978 + bl MOD04_021FE978 b _021FE8FC _021FE968: subs r5, r5, #1 @@ -43602,8 +43608,8 @@ _021FE970: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021FE978 -FUN_021FE978: ; 0x021FE978 + arm_func_start MOD04_021FE978 +MOD04_021FE978: ; 0x021FE978 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov sb, r0 @@ -43612,9 +43618,9 @@ FUN_021FE978: ; 0x021FE978 ldr r6, [r1, #4] mov r1, r2 mov r8, #0 - bl FUN_021EED84 + bl MOD04_021EED84 ldr r0, [sb, #0x5c] - bl FUN_021EF06C + bl MOD04_021EF06C mov r5, r0 cmp r5, #0 mov r4, r8 @@ -43622,7 +43628,7 @@ FUN_021FE978: ; 0x021FE978 _021FE9B4: ldr r0, [sb, #0x5c] mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r1, [r0] cmp r1, r7 ble _021FE9E8 @@ -43641,12 +43647,12 @@ _021FE9F4: mov r1, r7 mov r2, r6 add r0, sb, #0x44 - bl FUN_021FC268 + bl MOD04_021FC268 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} - arm_func_start FUN_021FEA0C -FUN_021FEA0C: ; 0x021FEA0C + arm_func_start MOD04_021FEA0C +MOD04_021FEA0C: ; 0x021FEA0C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0x10 mov sb, r0 @@ -43655,7 +43661,7 @@ FUN_021FEA0C: ; 0x021FEA0C mov r7, r2 mov r6, r3 ldr r5, [sp, #0x34] - bl FUN_021EF06C + bl MOD04_021EF06C mov r4, r0 cmp r4, #0 mov sl, #0 @@ -43663,7 +43669,7 @@ FUN_021FEA0C: ; 0x021FEA0C _021FEA40: ldr r0, [sb, #0x5c] mov r1, sl - bl FUN_021EEFFC + bl MOD04_021EEFFC ldrh r0, [r0, #0xc] cmp r0, r7 moveq r0, #0 @@ -43672,7 +43678,7 @@ _021FEA40: moveq r0, #1 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} mov r1, r7 - bl FUN_021FF3AC + bl MOD04_021FF3AC cmp r0, #0 bgt _021FEA84 add sl, sl, #1 @@ -43680,7 +43686,7 @@ _021FEA40: blt _021FEA40 _021FEA84: add r0, sb, #0x44 - bl FUN_021FC45C + bl MOD04_021FC45C ldr r2, [sp, #0x30] cmp r0, r2 movlt r0, #1 @@ -43694,10 +43700,10 @@ _021FEA84: strh r7, [sp, #0xc] str r0, [sp] ldr r0, [sb, #0x5c] - ldr r2, _021FEBB8 ; =FUN_021FEBBC - bl FUN_021EEE74 + ldr r2, _021FEBB8 ; =MOD04_021FEBBC + bl MOD04_021EEE74 ldr r0, [sb, #0x5c] - bl FUN_021EF06C + bl MOD04_021EF06C add r1, r4, #1 cmp r1, r0 movne r0, #1 @@ -43707,7 +43713,7 @@ _021FEA84: ldr r2, [sp, #0x30] mov r1, r6 add r0, sb, #0x44 - bl FUN_021FC304 + bl MOD04_021FC304 cmp r4, #0 bne _021FEB2C sub r0, r7, #1 @@ -43715,7 +43721,7 @@ _021FEA84: ldrh r1, [sb, #0x66] mov r0, sb mov r2, r2, lsr #0x10 - bl FUN_021FD858 + bl MOD04_021FD858 cmp r0, #0 bne _021FEBA4 add sp, sp, #0x10 @@ -43724,17 +43730,17 @@ _021FEA84: _021FEB2C: ldr r0, [sb, #0x5c] mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldrh r0, [r0, #0xc] cmp r0, r7 bne _021FEBA4 ldr r0, [sb, #0x5c] sub r1, r4, #1 - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r4, r0 ldrh r1, [r4, #0xc] mov r0, r7 - bl FUN_021FF3AC + bl MOD04_021FF3AC mov r0, r0, lsl #0x10 mov r0, r0, lsr #0x10 cmp r0, #1 @@ -43747,7 +43753,7 @@ _021FEB2C: mov r0, sb mov r1, r1, lsr #0x10 mov r2, r2, lsr #0x10 - bl FUN_021FD858 + bl MOD04_021FD858 cmp r0, #0 addeq sp, sp, #0x10 moveq r0, #0 @@ -43759,19 +43765,19 @@ _021FEBA4: add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 -_021FEBB8: .word FUN_021FEBBC +_021FEBB8: .word MOD04_021FEBBC - arm_func_start FUN_021FEBBC -FUN_021FEBBC: ; 0x021FEBBC - ldr ip, _021FEBCC ; =FUN_021FF3AC + arm_func_start MOD04_021FEBBC +MOD04_021FEBBC: ; 0x021FEBBC + ldr ip, _021FEBCC ; =MOD04_021FF3AC ldrh r0, [r0, #0xc] ldrh r1, [r1, #0xc] bx ip .align 2, 0 -_021FEBCC: .word FUN_021FF3AC +_021FEBCC: .word MOD04_021FF3AC - arm_func_start FUN_021FEBD0 -FUN_021FEBD0: ; 0x021FEBD0 + arm_func_start MOD04_021FEBD0 +MOD04_021FEBD0: ; 0x021FEBD0 stmdb sp!, {lr} sub sp, sp, #4 ldrh ip, [r0, #0x66] @@ -43781,7 +43787,7 @@ FUN_021FEBD0: ; 0x021FEBD0 bne _021FEC0C mov r1, r2 mov r2, r3 - bl FUN_021FF084 + bl MOD04_021FF084 cmp r0, #0 bne _021FECE8 add sp, sp, #4 @@ -43792,7 +43798,7 @@ _021FEC0C: bne _021FEC34 mov r1, r2 mov r2, r3 - bl FUN_021FEFEC + bl MOD04_021FEFEC cmp r0, #0 bne _021FECE8 add sp, sp, #4 @@ -43803,7 +43809,7 @@ _021FEC34: bne _021FEC5C mov r1, r2 mov r2, r3 - bl FUN_021FEF10 + bl MOD04_021FEF10 cmp r0, #0 bne _021FECE8 add sp, sp, #4 @@ -43814,7 +43820,7 @@ _021FEC5C: bne _021FEC84 mov r1, r2 mov r2, r3 - bl FUN_021FEDFC + bl MOD04_021FEDFC cmp r0, #0 bne _021FECE8 add sp, sp, #4 @@ -43823,7 +43829,7 @@ _021FEC5C: _021FEC84: cmp r1, #4 bne _021FECA4 - bl FUN_021FEDA4 + bl MOD04_021FEDA4 cmp r0, #0 bne _021FECE8 add sp, sp, #4 @@ -43834,7 +43840,7 @@ _021FECA4: bne _021FECCC mov r1, r2 mov r2, r3 - bl FUN_021FED38 + bl MOD04_021FED38 cmp r0, #0 bne _021FECE8 add sp, sp, #4 @@ -43843,7 +43849,7 @@ _021FECA4: _021FECCC: cmp r1, #6 bne _021FECE8 - bl FUN_021FECF4 + bl MOD04_021FECF4 cmp r0, #0 addeq sp, sp, #4 moveq r0, #0 @@ -43853,11 +43859,11 @@ _021FECE8: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021FECF4 -FUN_021FECF4: ; 0x021FECF4 + arm_func_start MOD04_021FECF4 +MOD04_021FECF4: ; 0x021FECF4 stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_021FD828 + bl MOD04_021FD828 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} @@ -43867,14 +43873,14 @@ FUN_021FECF4: ; 0x021FECF4 moveq r2, #0 movne r2, #1 mov r0, r4 - bl FUN_021FF318 + bl MOD04_021FF318 cmp r0, #0 moveq r0, #0 movne r0, #1 ldmia sp!, {r4, pc} - arm_func_start FUN_021FED38 -FUN_021FED38: ; 0x021FED38 + arm_func_start MOD04_021FED38 +MOD04_021FED38: ; 0x021FED38 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r3, [r6, #0xc] @@ -43882,15 +43888,15 @@ FUN_021FED38: ; 0x021FED38 mov r4, r2 cmp r3, #1 beq _021FED68 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} _021FED68: - bl FUN_021FCED0 + bl MOD04_021FCED0 mov r0, r6 - bl FUN_021FD828 + bl MOD04_021FD828 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} @@ -43898,20 +43904,20 @@ _021FED68: mov r2, r5 mov r3, r4 mov r1, #2 - bl FUN_021FCB88 + bl MOD04_021FCB88 cmp r0, #0 movne r0, #1 moveq r0, #0 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021FEDA4 -FUN_021FEDA4: ; 0x021FEDA4 + arm_func_start MOD04_021FEDA4 +MOD04_021FEDA4: ; 0x021FEDA4 stmdb sp!, {lr} sub sp, sp, #4 ldr r1, [r0, #0xc] cmp r1, #1 beq _021FEDD0 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 add sp, sp, #4 @@ -43923,15 +43929,15 @@ _021FEDD0: mov r2, r1 mov r3, r1 str ip, [r0, #0xc] - bl FUN_021FCB88 + bl MOD04_021FCB88 cmp r0, #0 movne r0, #1 moveq r0, #0 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021FEDFC -FUN_021FEDFC: ; 0x021FEDFC + arm_func_start MOD04_021FEDFC +MOD04_021FEDFC: ; 0x021FEDFC stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x10 mov r6, r0 @@ -43940,7 +43946,7 @@ FUN_021FEDFC: ; 0x021FEDFC mov r4, r2 cmp r3, #3 beq _021FEE34 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 add sp, sp, #0x10 @@ -43949,7 +43955,7 @@ FUN_021FEDFC: ; 0x021FEDFC _021FEE34: cmp r4, #0x20 bge _021FEE54 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 add sp, sp, #0x10 @@ -43958,11 +43964,11 @@ _021FEE34: _021FEE54: mov r0, r5 add r1, r6, #0x68 - bl FUN_021FBF08 + bl MOD04_021FBF08 cmp r0, #0 bne _021FEE84 mov r0, r6 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 add sp, sp, #0x10 @@ -43974,20 +43980,20 @@ _021FEE84: cmp r0, #0 bne _021FEEC0 mov r0, r6 - bl FUN_021FD828 + bl MOD04_021FD828 cmp r0, #0 addeq sp, sp, #0x10 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} mov r0, r6 - bl FUN_021FCED0 + bl MOD04_021FCED0 add sp, sp, #0x10 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _021FEEC0: mov r0, #4 str r0, [r6, #0xc] - bl FUN_021F025C + bl MOD04_021F025C ldr r2, [r6, #0x8c] add r1, r5, #0x20 sub r0, r0, r2 @@ -43999,15 +44005,15 @@ _021FEEC0: ldr r0, [r6, #8] ldr r2, [r6] mov r1, r6 - bl FUN_021FCC88 + bl MOD04_021FCC88 cmp r0, #0 movne r0, #1 moveq r0, #0 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021FEF10 -FUN_021FEF10: ; 0x021FEF10 + arm_func_start MOD04_021FEF10 +MOD04_021FEF10: ; 0x021FEF10 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x24 mov r5, r0 @@ -44015,7 +44021,7 @@ FUN_021FEF10: ; 0x021FEF10 mov r4, r1 cmp r3, #0 beq _021FEF44 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 add sp, sp, #0x24 @@ -44024,7 +44030,7 @@ FUN_021FEF10: ; 0x021FEF10 _021FEF44: cmp r2, #0x40 bge _021FEF64 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 add sp, sp, #0x24 @@ -44033,11 +44039,11 @@ _021FEF44: _021FEF64: mov r0, r4 add r1, r5, #0x68 - bl FUN_021FBF08 + bl MOD04_021FBF08 cmp r0, #0 bne _021FEF94 mov r0, r5 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 add sp, sp, #0x24 @@ -44046,12 +44052,12 @@ _021FEF64: _021FEF94: add r0, sp, #0 add r1, r4, #0x20 - bl FUN_021FBF44 + bl MOD04_021FBF44 ldr r2, [r5, #0x38] ldr r3, [r5, #0x3c] add r1, sp, #0 mov r0, r5 - bl FUN_021FDBA0 + bl MOD04_021FDBA0 cmp r0, #0 addeq sp, sp, #0x24 moveq r0, #0 @@ -44059,7 +44065,7 @@ _021FEF94: ldr r0, [r5, #0x38] cmp r0, #0 beq _021FEFDC - bl FUN_021DD82C + bl MOD04_021DD82C mov r0, #0 str r0, [r5, #0x38] _021FEFDC: @@ -44068,15 +44074,15 @@ _021FEFDC: add sp, sp, #0x24 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021FEFEC -FUN_021FEFEC: ; 0x021FEFEC + arm_func_start MOD04_021FEFEC +MOD04_021FEFEC: ; 0x021FEFEC stmdb sp!, {r4, lr} sub sp, sp, #0x40 mov r4, r0 ldr r3, [r4, #0xc] cmp r3, #2 beq _021FF01C - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 add sp, sp, #0x40 @@ -44085,7 +44091,7 @@ FUN_021FEFEC: ; 0x021FEFEC _021FF01C: cmp r2, #0x20 bge _021FF03C - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 movne r0, #1 add sp, sp, #0x40 @@ -44093,16 +44099,16 @@ _021FF01C: ldmia sp!, {r4, pc} _021FF03C: add r0, sp, #0 - bl FUN_021FBF44 + bl MOD04_021FBF44 add r0, sp, #0x20 - bl FUN_021FC07C + bl MOD04_021FC07C add r1, sp, #0x20 add r0, r4, #0x68 - bl FUN_021FBF44 + bl MOD04_021FBF44 add r1, sp, #0 add r2, sp, #0x20 mov r0, r4 - bl FUN_021FDC28 + bl MOD04_021FDC28 cmp r0, #0 moveq r0, #0 movne r0, #3 @@ -44111,8 +44117,8 @@ _021FF03C: add sp, sp, #0x40 ldmia sp!, {r4, pc} - arm_func_start FUN_021FF084 -FUN_021FF084: ; 0x021FF084 + arm_func_start MOD04_021FF084 +MOD04_021FF084: ; 0x021FF084 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r6, r0 @@ -44123,7 +44129,7 @@ FUN_021FF084: ; 0x021FF084 beq _021FF0C4 cmp r3, #6 beq _021FF0C4 - bl FUN_021FF304 + bl MOD04_021FF304 cmp r0, #0 bne _021FF128 add sp, sp, #8 @@ -44131,7 +44137,7 @@ FUN_021FF084: ; 0x021FF084 ldmia sp!, {r4, r5, r6, pc} _021FF0C4: ldr r0, [r6, #0x9c] - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 beq _021FF104 mov ip, #1 @@ -44140,7 +44146,7 @@ _021FF0C4: mov r3, r4 mov r1, #0 str ip, [sp] - bl FUN_021FC6C4 + bl MOD04_021FC6C4 cmp r0, #0 movne r0, #1 add sp, sp, #8 @@ -44151,7 +44157,7 @@ _021FF104: mov r1, r5 mov r2, r4 mov r3, #1 - bl FUN_021FCA8C + bl MOD04_021FCA8C cmp r0, #0 addeq sp, sp, #8 moveq r0, #0 @@ -44161,8 +44167,8 @@ _021FF128: add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021FF134 -FUN_021FF134: ; 0x021FF134 + arm_func_start MOD04_021FF134 +MOD04_021FF134: ; 0x021FF134 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r6, r0 @@ -44177,7 +44183,7 @@ FUN_021FF134: ; 0x021FF134 ldmneia sp!, {r4, r5, r6, pc} _021FF164: ldr r0, [r6, #0x9c] - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 beq _021FF1A0 mov r1, #0 @@ -44185,7 +44191,7 @@ _021FF164: mov r2, r5 mov r3, r4 str r1, [sp] - bl FUN_021FC6C4 + bl MOD04_021FC6C4 cmp r0, #0 movne r0, #1 add sp, sp, #8 @@ -44196,21 +44202,21 @@ _021FF1A0: mov r1, r5 mov r2, r4 mov r3, #0 - bl FUN_021FCA8C + bl MOD04_021FCA8C cmp r0, #0 movne r0, #1 moveq r0, #0 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021FF1C8 -FUN_021FF1C8: ; 0x021FF1C8 + arm_func_start MOD04_021FF1C8 +MOD04_021FF1C8: ; 0x021FF1C8 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r4, r0 ldr r0, [r4, #0x60] mov r7, r1 - bl FUN_021EF06C + bl MOD04_021EF06C movs r6, r0 addeq sp, sp, #4 moveq r0, #1 @@ -44221,10 +44227,10 @@ FUN_021FF1C8: ; 0x021FF1C8 _021FF1FC: ldr r0, [r4, #0x60] mov r1, r5 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldrh r0, [r0, #8] mov r1, r7 - bl FUN_021FF3AC + bl MOD04_021FF3AC cmp r0, #0 bge _021FF228 add r5, r5, #1 @@ -44241,13 +44247,13 @@ _021FF228: _021FF244: ldr r0, [r4, #0x60] mov r1, r5 - bl FUN_021EED84 + bl MOD04_021EED84 cmp r5, #0 sub r5, r5, #1 bne _021FF244 _021FF25C: ldr r0, [r4, #0x60] - bl FUN_021EF06C + bl MOD04_021EF06C movs r6, r0 moveq r0, #0 streq r0, [r4, #0x58] @@ -44256,7 +44262,7 @@ _021FF25C: ldmeqia sp!, {r4, r5, r6, r7, pc} ldr r0, [r4, #0x60] mov r1, #0 - bl FUN_021EEFFC + bl MOD04_021EEFFC cmp r6, #0 ldr r7, [r0] mov r5, #0 @@ -44264,7 +44270,7 @@ _021FF25C: _021FF298: ldr r0, [r4, #0x60] mov r1, r5 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r1, [r0] add r5, r5, #1 sub r1, r1, r7 @@ -44275,36 +44281,36 @@ _021FF2BC: mov r2, r7 add r0, r4, #0x50 mov r1, #0 - bl FUN_021FC268 + bl MOD04_021FC268 mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_021FF2D8 -FUN_021FF2D8: ; 0x021FF2D8 + arm_func_start MOD04_021FF2D8 +MOD04_021FF2D8: ; 0x021FF2D8 stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_021FD828 + bl MOD04_021FD828 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} mov r0, r4 mov r1, #1 mov r2, #4 - bl FUN_021FF318 + bl MOD04_021FF318 ldmia sp!, {r4, pc} - arm_func_start FUN_021FF304 -FUN_021FF304: ; 0x021FF304 - ldr ip, _021FF314 ; =FUN_021FF318 + arm_func_start MOD04_021FF304 +MOD04_021FF304: ; 0x021FF304 + ldr ip, _021FF314 ; =MOD04_021FF318 mov r1, #7 mov r2, #2 bx ip .align 2, 0 -_021FF314: .word FUN_021FF318 +_021FF314: .word MOD04_021FF318 - arm_func_start FUN_021FF318 -FUN_021FF318: ; 0x021FF318 + arm_func_start MOD04_021FF318 +MOD04_021FF318: ; 0x021FF318 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r3, [r6, #0xc] @@ -44315,12 +44321,12 @@ FUN_021FF318: ; 0x021FF318 ldr r1, [r6, #0x10] cmp r1, #0 beq _021FF368 - bl FUN_021FCED0 + bl MOD04_021FCED0 mov r2, #0 mov r0, r6 mov r1, r5 mov r3, r2 - bl FUN_021FCB88 + bl MOD04_021FCB88 cmp r0, #0 bne _021FF3A4 mov r0, #0 @@ -44330,15 +44336,15 @@ _021FF368: moveq r0, #1 streq r0, [r6, #0x14] mov r0, r6 - bl FUN_021FCED0 + bl MOD04_021FCED0 b _021FF3A4 _021FF380: cmp r3, #7 beq _021FF3A4 - bl FUN_021FCED0 + bl MOD04_021FCED0 mov r0, r6 mov r1, r4 - bl FUN_021FC9B8 + bl MOD04_021FC9B8 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} @@ -44346,23 +44352,23 @@ _021FF3A4: mov r0, #1 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_021FF3AC -FUN_021FF3AC: ; 0x021FF3AC + arm_func_start MOD04_021FF3AC +MOD04_021FF3AC: ; 0x021FF3AC sub r0, r0, r1 mov r0, r0, lsl #0x10 mov r0, r0, asr #0x10 bx lr - arm_func_start FUN_021FF3BC -FUN_021FF3BC: ; 0x021FF3BC + arm_func_start MOD04_021FF3BC +MOD04_021FF3BC: ; 0x021FF3BC mov r3, r2, asr #8 strb r3, [r0, r1] add r1, r1, #1 strb r2, [r0, r1] bx lr - arm_func_start FUN_021FF3D0 -FUN_021FF3D0: ; 0x021FF3D0 + arm_func_start MOD04_021FF3D0 +MOD04_021FF3D0: ; 0x021FF3D0 ldrb r2, [r0, r1] add r1, r1, #1 ldrb r1, [r0, r1] @@ -44372,8 +44378,8 @@ FUN_021FF3D0: ; 0x021FF3D0 orr r0, r1, r0, lsr #16 bx lr - arm_func_start FUN_021FF3F0 -FUN_021FF3F0: ; 0x021FF3F0 + arm_func_start MOD04_021FF3F0 +MOD04_021FF3F0: ; 0x021FF3F0 stmdb sp!, {r4, lr} mov r4, r0 ldr r1, [r4, #0x18] @@ -44381,57 +44387,57 @@ FUN_021FF3F0: ; 0x021FF3F0 ldmneia sp!, {r4, pc} mov r1, #1 str r1, [r4, #0x18] - bl FUN_021FD45C + bl MOD04_021FD45C mov r0, r4 - bl FUN_021FCDB4 + bl MOD04_021FCDB4 cmp r0, #0 ldmeqia sp!, {r4, pc} mov r0, r4 - bl FUN_021FF9CC + bl MOD04_021FF9CC ldmia sp!, {r4, pc} - arm_func_start FUN_021FF42C -FUN_021FF42C: ; 0x021FF42C + arm_func_start MOD04_021FF42C +MOD04_021FF42C: ; 0x021FF42C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 ldr r0, [r5, #0x10] - bl FUN_021EF06C + bl MOD04_021EF06C subs r4, r0, #1 addmi sp, sp, #4 ldmmiia sp!, {r4, r5, pc} _021FF44C: ldr r0, [r5, #0x10] mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r0, [r0] - bl FUN_021FF6BC + bl MOD04_021FF6BC subs r4, r4, #1 bpl _021FF44C add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_021FF470 -FUN_021FF470: ; 0x021FF470 + arm_func_start MOD04_021FF470 +MOD04_021FF470: ; 0x021FF470 stmdb sp!, {r4, lr} sub sp, sp, #8 mov r4, r0 - bl FUN_021F025C + bl MOD04_021F025C str r0, [sp] ldr r0, [r4, #0xc] - ldr r1, _021FF4A8 ; =FUN_021FF4AC + ldr r1, _021FF4A8 ; =MOD04_021FF4AC add r2, sp, #0 - bl FUN_021EF264 + bl MOD04_021EF264 cmp r0, #0 moveq r0, #1 movne r0, #0 add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 -_021FF4A8: .word FUN_021FF4AC +_021FF4A8: .word MOD04_021FF4AC - arm_func_start FUN_021FF4AC -FUN_021FF4AC: ; 0x021FF4AC + arm_func_start MOD04_021FF4AC +MOD04_021FF4AC: ; 0x021FF4AC stmdb sp!, {r4, lr} ldr r4, [r0] ldr r1, [r1] @@ -44439,7 +44445,7 @@ FUN_021FF4AC: ; 0x021FF4AC cmp r0, #7 beq _021FF4D8 mov r0, r4 - bl FUN_021FCF88 + bl MOD04_021FCF88 cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, pc} @@ -44454,13 +44460,13 @@ _021FF4D8: cmp r0, #0 bne _021FF504 mov r0, r4 - bl FUN_021FF6BC + bl MOD04_021FF6BC _021FF504: mov r0, #1 ldmia sp!, {r4, pc} - arm_func_start FUN_021FF50C -FUN_021FF50C: ; 0x021FF50C + arm_func_start MOD04_021FF50C +MOD04_021FF50C: ; 0x021FF50C stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x18 @@ -44469,9 +44475,9 @@ FUN_021FF50C: ; 0x021FF50C add r0, sp, #0x34 add r1, sp, #0x38 mov r4, r2 - bl FUN_021FFCDC + bl MOD04_021FFCDC ldr r0, [r6] - bl FUN_021EFEFC + bl MOD04_021EFEFC cmp r0, #0 addeq sp, sp, #0x18 moveq r0, #1 @@ -44497,19 +44503,19 @@ FUN_021FF50C: ; 0x021FF50C ldr r0, [r6] ldr r1, [sp, #0x34] ldr r2, [sp, #0x38] - bl FUN_021EFBD4 + bl MOD04_021EFBD4 mvn r1, #0 cmp r0, r1 bne _021FF640 ldr r0, [r6] - bl FUN_021EFB28 + bl MOD04_021EFB28 mvn r1, #0xe cmp r0, r1 bne _021FF5EC mov r0, r6 mov r1, r5 mov r2, r4 - bl FUN_021FE0B4 + bl MOD04_021FE0B4 cmp r0, #0 bne _021FF6A8 add sp, sp, #0x18 @@ -44535,7 +44541,7 @@ _021FF618: cmp r0, r1 beq _021FF6A8 mov r0, r6 - bl FUN_021FF3F0 + bl MOD04_021FF3F0 add sp, sp, #0x18 mov r0, #0 ldmia sp!, {r4, r5, r6, lr} @@ -44548,7 +44554,7 @@ _021FF640: mov r0, r6 mov r1, r5 mov r2, r4 - bl FUN_021FFC3C + bl MOD04_021FFC3C mov r1, #0 str r1, [sp] ldr r2, [sp, #0x34] @@ -44561,7 +44567,7 @@ _021FF640: str ip, [sp, #8] mov r4, #1 str r4, [sp, #0xc] - bl FUN_021FC59C + bl MOD04_021FC59C cmp r0, #0 addeq sp, sp, #0x18 moveq r0, #0 @@ -44575,8 +44581,8 @@ _021FF6A8: add sp, sp, #0x10 bx lr - arm_func_start FUN_021FF6BC -FUN_021FF6BC: ; 0x021FF6BC + arm_func_start MOD04_021FF6BC +MOD04_021FF6BC: ; 0x021FF6BC stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, r6, lr} ldr r1, [sp, #0x10] @@ -44595,7 +44601,7 @@ FUN_021FF6BC: ; 0x021FF6BC bne _021FF774 ldr r0, [r1, #8] ldr r0, [r0, #0x10] - bl FUN_021EF06C + bl MOD04_021EF06C mov r6, r0 mov r5, #0 cmp r6, #0 @@ -44607,14 +44613,14 @@ _021FF720: mov r1, r5 ldr r0, [r4, #8] ldr r0, [r0, #0x10] - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r0, [r0] cmp r4, r0 bne _021FF75C ldr r0, [r4, #8] mov r1, r5 ldr r0, [r0, #0x10] - bl FUN_021EED84 + bl MOD04_021EED84 ldmia sp!, {r4, r5, r6, lr} add sp, sp, #0x10 bx lr @@ -44629,13 +44635,13 @@ _021FF774: ldr r0, [r1, #8] add r1, sp, #0x10 ldr r0, [r0, #0xc] - bl FUN_021EF3F4 + bl MOD04_021EF3F4 ldmia sp!, {r4, r5, r6, lr} add sp, sp, #0x10 bx lr - arm_func_start FUN_021FF790 -FUN_021FF790: ; 0x021FF790 + arm_func_start MOD04_021FF790 +MOD04_021FF790: ; 0x021FF790 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r4, r3 @@ -44646,12 +44652,12 @@ FUN_021FF790: ; 0x021FF790 mov r2, r4 mov r7, r0 str r3, [sp] - bl FUN_021FFC3C + bl MOD04_021FFC3C cmp r0, #0 addne sp, sp, #4 movne r0, #5 ldmneia sp!, {r4, r5, r6, r7, pc} - bl FUN_021FF9B4 + bl MOD04_021FF9B4 str r0, [sp] cmp r0, #0 beq _021FF930 @@ -44664,7 +44670,7 @@ FUN_021FF790: ; 0x021FF790 strh r4, [r0, #4] ldr r0, [sp] str r7, [r0, #8] - bl FUN_021F025C + bl MOD04_021F025C ldr r2, [sp] mov r1, #0 str r0, [r2, #0x1c] @@ -44678,19 +44684,19 @@ FUN_021FF790: ; 0x021FF790 ldr r0, [sp] ldr r1, [r7, #0x3c] add r0, r0, #0x44 - bl FUN_021FC46C + bl MOD04_021FC46C cmp r0, #0 beq _021FF930 ldr r0, [sp] ldr r1, [r7, #0x38] add r0, r0, #0x50 - bl FUN_021FC46C + bl MOD04_021FC46C cmp r0, #0 beq _021FF930 mov r0, #0x10 mov r1, #0x40 mov r2, #0 - bl FUN_021EF0E4 + bl MOD04_021EF0E4 ldr r1, [sp] str r0, [r1, #0x5c] ldr r0, [sp] @@ -44700,7 +44706,7 @@ FUN_021FF790: ; 0x021FF790 mov r0, #0x10 mov r1, #0x40 mov r2, #0 - bl FUN_021EF0E4 + bl MOD04_021EF0E4 ldr r1, [sp] str r0, [r1, #0x60] ldr r0, [sp] @@ -44710,7 +44716,7 @@ FUN_021FF790: ; 0x021FF790 mov r0, #4 mov r1, #2 mov r2, #0 - bl FUN_021EF0E4 + bl MOD04_021EF0E4 ldr r1, [sp] str r0, [r1, #0x98] ldr r0, [sp] @@ -44720,7 +44726,7 @@ FUN_021FF790: ; 0x021FF790 mov r0, #4 mov r1, #2 mov r2, #0 - bl FUN_021EF0E4 + bl MOD04_021EF0E4 ldr r1, [sp] str r0, [r1, #0x9c] ldr r0, [sp] @@ -44729,11 +44735,11 @@ FUN_021FF790: ; 0x021FF790 beq _021FF930 ldr r0, [r7, #0xc] add r1, sp, #0 - bl FUN_021EF494 + bl MOD04_021EF494 mov r0, r7 mov r1, r5 mov r2, r4 - bl FUN_021FFC3C + bl MOD04_021FFC3C str r0, [r6] ldr r0, [r6] cmp r0, #0 @@ -44745,56 +44751,56 @@ _021FF930: cmp r0, #0 beq _021FF9A8 ldr r0, [r0, #0x44] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [sp] ldr r0, [r0, #0x50] - bl FUN_021DD82C + bl MOD04_021DD82C ldr r0, [sp] ldr r0, [r0, #0x5c] cmp r0, #0 beq _021FF964 - bl FUN_021EF074 + bl MOD04_021EF074 _021FF964: ldr r0, [sp] ldr r0, [r0, #0x60] cmp r0, #0 beq _021FF978 - bl FUN_021EF074 + bl MOD04_021EF074 _021FF978: ldr r0, [sp] ldr r0, [r0, #0x98] cmp r0, #0 beq _021FF98C - bl FUN_021EF074 + bl MOD04_021EF074 _021FF98C: ldr r0, [sp] ldr r0, [r0, #0x9c] cmp r0, #0 beq _021FF9A0 - bl FUN_021EF074 + bl MOD04_021EF074 _021FF9A0: ldr r0, [sp] - bl FUN_021DD82C + bl MOD04_021DD82C _021FF9A8: mov r0, #1 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_021FF9B4 -FUN_021FF9B4: ; 0x021FF9B4 - ldr ip, _021FF9C0 ; =FUN_021DD860 + arm_func_start MOD04_021FF9B4 +MOD04_021FF9B4: ; 0x021FF9B4 + ldr ip, _021FF9C0 ; =MOD04_021DD860 mov r0, #0xa0 bx ip .align 2, 0 -_021FF9C0: .word FUN_021DD860 +_021FF9C0: .word MOD04_021DD860 - arm_func_start FUN_021FF9C4 -FUN_021FF9C4: ; 0x021FF9C4 + arm_func_start MOD04_021FF9C4 +MOD04_021FF9C4: ; 0x021FF9C4 str r1, [r0, #0x20] bx lr - arm_func_start FUN_021FF9CC -FUN_021FF9CC: ; 0x021FF9CC + arm_func_start MOD04_021FF9CC +MOD04_021FF9CC: ; 0x021FF9CC stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #0x1c] @@ -44803,25 +44809,25 @@ FUN_021FF9CC: ; 0x021FF9CC strne r0, [r4, #0x14] ldmneia sp!, {r4, pc} ldr r0, [r4] - bl FUN_021EFD9C + bl MOD04_021EFD9C ldr r0, [r4, #0xc] - bl FUN_021EF5B0 + bl MOD04_021EF5B0 ldr r0, [r4, #0x10] - bl FUN_021EF074 + bl MOD04_021EF074 mov r0, r4 - bl FUN_021DD82C - bl FUN_021F0248 + bl MOD04_021DD82C + bl MOD04_021F0248 ldmia sp!, {r4, pc} - arm_func_start FUN_021FFA10 -FUN_021FFA10: ; 0x021FFA10 + arm_func_start MOD04_021FFA10 +MOD04_021FFA10: ; 0x021FFA10 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x1c mov r4, r1 mov r6, r3 mov r5, r0 mov r7, r2 - bl FUN_021F024C + bl MOD04_021F024C cmp r6, #0 moveq r6, #0x10000 cmp r7, #0 @@ -44829,13 +44835,13 @@ FUN_021FFA10: ; 0x021FFA10 add r2, sp, #8 mov r0, r4 moveq r7, #0x10000 - bl FUN_021FFD28 + bl MOD04_021FFD28 cmp r0, #0 addeq sp, sp, #0x1c moveq r0, #4 ldmeqia sp!, {r4, r5, r6, r7, pc} mov r0, #0x44 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 addeq sp, sp, #0x1c moveq r0, #1 @@ -44848,22 +44854,22 @@ FUN_021FFA10: ; 0x021FFA10 str r6, [r4, #0x3c] ldr r1, [sp, #0x30] str r7, [r4, #0x38] - ldr r0, _021FFC30 ; =FUN_021FFC84 + ldr r0, _021FFC30 ; =MOD04_021FFC84 str r1, [r4, #0x24] str r0, [sp] mov r0, #0 - ldr r3, _021FFC34 ; =FUN_021FFCB4 + ldr r3, _021FFC34 ; =MOD04_021FFCB4 str r0, [sp, #4] mov r0, #4 mov r1, #0x20 mov r2, #2 - bl FUN_021EF62C + bl MOD04_021EF62C str r0, [r4, #0xc] ldr r0, [r4, #0xc] cmp r0, #0 bne _021FFAE0 mov r0, r4 - bl FUN_021DD82C + bl MOD04_021DD82C add sp, sp, #0x1c mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} @@ -44871,15 +44877,15 @@ _021FFAE0: mov r0, #4 ldr r2, _021FFC38 ; =0x021FFC74 mov r1, r0 - bl FUN_021EF0E4 + bl MOD04_021EF0E4 str r0, [r4, #0x10] ldr r0, [r4, #0x10] cmp r0, #0 bne _021FFB1C ldr r0, [r4, #0xc] - bl FUN_021EF5B0 + bl MOD04_021EF5B0 mov r0, r4 - bl FUN_021DD82C + bl MOD04_021DD82C add sp, sp, #0x1c mov r0, #1 ldmia sp!, {r4, r5, r6, r7, pc} @@ -44887,18 +44893,18 @@ _021FFB1C: mov r0, #2 mov r1, r0 mov r2, #0 - bl FUN_021EFDB8 + bl MOD04_021EFDB8 str r0, [r4] ldr r1, [r4] mvn r0, #0 cmp r1, r0 bne _021FFB64 ldr r0, [r4, #0xc] - bl FUN_021EF5B0 + bl MOD04_021EF5B0 ldr r0, [r4, #0x10] - bl FUN_021EF074 + bl MOD04_021EF074 mov r0, r4 - bl FUN_021DD82C + bl MOD04_021DD82C add sp, sp, #0x1c mov r0, #3 ldmia sp!, {r4, r5, r6, r7, pc} @@ -44920,18 +44926,18 @@ _021FFB64: strh r0, [sp, #0xe] ldr r0, [r4] mov r2, #8 - bl FUN_021EFD28 + bl MOD04_021EFD28 mvn r1, #0 cmp r0, r1 bne _021FFBE4 ldr r0, [r4] - bl FUN_021EFD9C + bl MOD04_021EFD9C ldr r0, [r4, #0xc] - bl FUN_021EF5B0 + bl MOD04_021EF5B0 ldr r0, [r4, #0x10] - bl FUN_021EF074 + bl MOD04_021EF074 mov r0, r4 - bl FUN_021DD82C + bl MOD04_021DD82C add sp, sp, #0x1c mov r0, #3 ldmia sp!, {r4, r5, r6, r7, pc} @@ -44941,7 +44947,7 @@ _021FFBE4: ldr r0, [r4] add r1, sp, #0xc add r2, sp, #0x18 - bl FUN_021EFB5C + bl MOD04_021EFB5C ldr r1, [sp, #0x10] mov r0, #0 str r1, [r4, #4] @@ -44956,12 +44962,12 @@ _021FFBE4: add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 -_021FFC30: .word FUN_021FFC84 -_021FFC34: .word FUN_021FFCB4 +_021FFC30: .word MOD04_021FFC84 +_021FFC34: .word MOD04_021FFCB4 _021FFC38: .word 0x021FFC74 - arm_func_start FUN_021FFC3C -FUN_021FFC3C: ; 0x021FFC3C + arm_func_start MOD04_021FFC3C +MOD04_021FFC3C: ; 0x021FFC3C stmdb sp!, {lr} sub sp, sp, #0xa4 add r3, sp, #4 @@ -44970,20 +44976,20 @@ FUN_021FFC3C: ; 0x021FFC3C str r3, [sp] ldr r0, [r0, #0xc] add r1, sp, #0 - bl FUN_021EF358 + bl MOD04_021EF358 cmp r0, #0 ldrne r0, [r0] moveq r0, #0 add sp, sp, #0xa4 ldmfd sp!, {pc} - ldr ip, _021FFC80 ; =FUN_021FCE4C + ldr ip, _021FFC80 ; =MOD04_021FCE4C ldr r0, [r0] bx ip .align 2, 0 -_021FFC80: .word FUN_021FCE4C +_021FFC80: .word MOD04_021FCE4C - arm_func_start FUN_021FFC84 -FUN_021FFC84: ; 0x021FFC84 + arm_func_start MOD04_021FFC84 +MOD04_021FFC84: ; 0x021FFC84 ldr r3, [r0] ldr r2, [r1] ldr r0, [r3] @@ -44997,8 +45003,8 @@ FUN_021FFC84: ; 0x021FFC84 moveq r0, r0, asr #0x10 bx lr - arm_func_start FUN_021FFCB4 -FUN_021FFCB4: ; 0x021FFCB4 + arm_func_start MOD04_021FFCB4 +MOD04_021FFCB4: ; 0x021FFCB4 stmdb sp!, {lr} sub sp, sp, #4 ldr r2, [r0] @@ -45010,8 +45016,8 @@ FUN_021FFCB4: ; 0x021FFCB4 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_021FFCDC -FUN_021FFCDC: ; 0x021FFCDC + arm_func_start MOD04_021FFCDC +MOD04_021FFCDC: ; 0x021FFCDC stmdb sp!, {r4, lr} ldr r2, [r0] mov r4, r1 @@ -45033,8 +45039,8 @@ FUN_021FFCDC: ; 0x021FFCDC .align 2, 0 _021FFD24: .word 0x0220EFD4 - arm_func_start FUN_021FFD28 -FUN_021FFD28: ; 0x021FFD28 + arm_func_start MOD04_021FFD28 +MOD04_021FFD28: ; 0x021FFD28 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x104 movs r8, r0 @@ -45120,7 +45126,7 @@ _021FFE40: cmp r8, #0 beq _021FFE84 mov r0, r8 - bl FUN_021EFB38 + bl MOD04_021EFB38 mov r5, r0 mvn r0, #0 cmp r5, r0 @@ -45148,8 +45154,8 @@ _021FFEA4: .word 0x0220EFF8 _021FFEA8: .word 0x0210430C _021FFEAC: .word 0x0000FFFF - arm_func_start FUN_021FFEB0 -FUN_021FFEB0: ; 0x021FFEB0 + arm_func_start MOD04_021FFEB0 +MOD04_021FFEB0: ; 0x021FFEB0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 movs r5, r2 @@ -45206,14 +45212,14 @@ _021FFF6C: .word 0x0220F008 _021FFF70: .word 0x0220F010 _021FFF74: .word 0x0220F014 - arm_func_start FUN_021FFF78 -FUN_021FFF78: ; 0x021FFF78 + arm_func_start MOD04_021FFF78 +MOD04_021FFF78: ; 0x021FFF78 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x2c mov r6, r0 mov r7, r1 mov r5, r2 - bl FUN_02200D40 + bl MOD04_02200D40 cmp r0, #0 addeq sp, sp, #0x2c ldmeqia sp!, {r4, r5, r6, r7, pc} @@ -45247,7 +45253,7 @@ _021FFFC4: and r1, r3, #0xff000000 orr r0, r2, r0 orr r0, r1, r0 - bl FUN_02200ED4 + bl MOD04_02200ED4 cmp r0, #0 addeq sp, sp, #0x2c ldmeqia sp!, {r4, r5, r6, r7, pc} @@ -45255,13 +45261,13 @@ _021FFFC4: bne _02200038 add r1, sp, #0 mov r2, r5 - bl FUN_022002CC + bl MOD04_022002CC add sp, sp, #0x2c ldmia sp!, {r4, r5, r6, r7, pc} _02200038: add r1, sp, #0 mov r2, r5 - bl FUN_022001E4 + bl MOD04_022001E4 add sp, sp, #0x2c ldmia sp!, {r4, r5, r6, r7, pc} _0220004C: @@ -45291,18 +45297,18 @@ _02200060: and r1, r3, #0xff000000 orr r0, r2, r0 orr r0, r1, r0 - bl FUN_02200ED4 + bl MOD04_02200ED4 cmp r0, #0 addeq sp, sp, #0x2c ldmeqia sp!, {r4, r5, r6, r7, pc} add r1, sp, #0x14 mov r2, r5 - bl FUN_022000D4 + bl MOD04_022000D4 add sp, sp, #0x2c ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_022000D4 -FUN_022000D4: ; 0x022000D4 + arm_func_start MOD04_022000D4 +MOD04_022000D4: ; 0x022000D4 stmdb sp!, {r4, lr} sub sp, sp, #8 mov r3, r1 @@ -45345,7 +45351,7 @@ _02200100: _0220016C: mov r0, #1 str r0, [r4, #0x10] - bl FUN_021F025C + bl MOD04_021F025C ldr r1, _022001E0 ; =0x00002710 add r0, r0, r1 str r0, [r4, #0x28] @@ -45370,14 +45376,14 @@ _0220019C: ldr r1, [r2, #4] ldr r0, [r4] mov r2, ip, lsr #0x10 - bl FUN_02200CEC + bl MOD04_02200CEC add sp, sp, #8 ldmia sp!, {r4, pc} .align 2, 0 _022001E0: .word 0x00002710 - arm_func_start FUN_022001E4 -FUN_022001E4: ; 0x022001E4 + arm_func_start MOD04_022001E4 +MOD04_022001E4: ; 0x022001E4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -45400,7 +45406,7 @@ FUN_022001E4: ; 0x022001E4 ldrb r2, [r1, #0x12] cmp r2, #0 bne _02200248 - bl FUN_022008D8 + bl MOD04_022008D8 add sp, sp, #4 ldmia sp!, {r4, r5, pc} _02200248: @@ -45410,11 +45416,11 @@ _02200248: ldrb r1, [r5, #0x33] cmp r1, #0 bne _02200264 - bl FUN_022008D8 + bl MOD04_022008D8 _02200264: mov r0, #3 str r0, [r5, #0x10] - bl FUN_021F025C + bl MOD04_021F025C ldr r1, _022002C8 ; =0x00001388 mvn r2, #0 add r0, r0, r1 @@ -45435,14 +45441,14 @@ _022002AC: cmp r1, #0 addne sp, sp, #4 ldmneia sp!, {r4, r5, pc} - bl FUN_022008D8 + bl MOD04_022008D8 add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 _022002C8: .word 0x00001388 - arm_func_start FUN_022002CC -FUN_022002CC: ; 0x022002CC + arm_func_start MOD04_022002CC +MOD04_022002CC: ; 0x022002CC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r1 @@ -45451,7 +45457,7 @@ FUN_022002CC: ; 0x022002CC cmp r1, #0 bne _022002F0 mov r1, r2 - bl FUN_0220039C + bl MOD04_0220039C _022002F0: ldr r0, [r4, #0x10] cmp r0, #2 @@ -45473,7 +45479,7 @@ _02200324: mov r2, #0 blx ip ldr r0, [r4, #8] - bl FUN_022006B4 + bl MOD04_022006B4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} _02200348: @@ -45495,12 +45501,12 @@ _02200348: ldr r2, [r4, #0x34] blx r2 mov r0, r4 - bl FUN_022008D8 + bl MOD04_022008D8 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_0220039C -FUN_0220039C: ; 0x0220039C + arm_func_start MOD04_0220039C +MOD04_0220039C: ; 0x0220039C stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x20 ldr r6, _02200464 ; =0x0220F018 @@ -45548,14 +45554,14 @@ FUN_0220039C: ; 0x0220039C ldr r0, [r0] ldr r1, [r1, #4] mov r2, r2, lsr #0x10 - bl FUN_02200CEC + bl MOD04_02200CEC add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _02200464: .word 0x0220F018 - arm_func_start FUN_02200468 -FUN_02200468: ; 0x02200468 + arm_func_start MOD04_02200468 +MOD04_02200468: ; 0x02200468 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _022004B8 ; =0x022113D4 @@ -45563,7 +45569,7 @@ FUN_02200468: ; 0x02200468 cmp r0, #0 addeq sp, sp, #4 ldmeqia sp!, {r4, r5, pc} - bl FUN_021EF06C + bl MOD04_021EF06C subs r5, r0, #1 addmi sp, sp, #4 ldmmiia sp!, {r4, r5, pc} @@ -45571,8 +45577,8 @@ FUN_02200468: ; 0x02200468 _02200498: ldr r0, [r4] mov r1, r5 - bl FUN_021EEFFC - bl FUN_022004BC + bl MOD04_021EEFFC + bl MOD04_022004BC subs r5, r5, #1 bpl _02200498 add sp, sp, #4 @@ -45580,8 +45586,8 @@ _02200498: .align 2, 0 _022004B8: .word 0x022113D4 - arm_func_start FUN_022004BC -FUN_022004BC: ; 0x022004BC + arm_func_start MOD04_022004BC +MOD04_022004BC: ; 0x022004BC stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0x20 mov r1, #8 @@ -45590,7 +45596,7 @@ FUN_022004BC: ; 0x022004BC ldr r1, [sb, #0x10] cmp r1, #4 bne _022004E8 - bl FUN_02200DA4 + bl MOD04_02200DA4 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} _022004E8: @@ -45604,7 +45610,7 @@ _022004E8: mov r5, #0x200 mov r4, #0 _0220050C: - bl FUN_021EFF2C + bl MOD04_021EFF2C cmp r0, #0 beq _02200564 str r8, [sp] @@ -45613,13 +45619,13 @@ _0220050C: mov r1, r6 mov r2, r5 mov r3, r4 - bl FUN_021EFC40 + bl MOD04_021EFC40 mov r1, r0 cmp r1, sl beq _02200564 mov r0, r6 mov r2, r8 - bl FUN_021FFF78 + bl MOD04_021FFF78 ldr r0, [sb, #0x10] cmp r0, #4 beq _02200564 @@ -45633,7 +45639,7 @@ _02200564: cmp r0, #2 bne _022005E4 _02200578: - bl FUN_021F025C + bl MOD04_021F025C ldr r1, [sb, #0x28] cmp r0, r1 bls _022005E4 @@ -45648,7 +45654,7 @@ _02200578: mov r2, #0 blx r4 ldr r0, [sb, #8] - bl FUN_022006B4 + bl MOD04_022006B4 b _022005E4 _022005BC: add r0, r1, #1 @@ -45657,16 +45663,16 @@ _022005BC: cmp r0, #0 bne _022005DC mov r0, sb - bl FUN_022009F8 + bl MOD04_022009F8 b _022005E4 _022005DC: mov r0, sb - bl FUN_022008D8 + bl MOD04_022008D8 _022005E4: ldr r0, [sb, #0x10] cmp r0, #3 bne _02200664 - bl FUN_021F025C + bl MOD04_021F025C ldr r1, [sb, #0x28] cmp r0, r1 bls _02200664 @@ -45695,13 +45701,13 @@ _022005E4: str r0, [sb] _0220065C: ldr r0, [sb, #8] - bl FUN_022006B4 + bl MOD04_022006B4 _02200664: ldr r0, [sb, #0x10] cmp r0, #1 addne sp, sp, #0x20 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - bl FUN_021F025C + bl MOD04_021F025C ldr r1, [sb, #0x28] cmp r0, r1 addls sp, sp, #0x20 @@ -45713,23 +45719,23 @@ _02200664: mov r2, #0 blx r4 ldr r0, [sb, #8] - bl FUN_022006B4 + bl MOD04_022006B4 add sp, sp, #0x20 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 _022006B0: .word 0x022113D8 - arm_func_start FUN_022006B4 -FUN_022006B4: ; 0x022006B4 + arm_func_start MOD04_022006B4 +MOD04_022006B4: ; 0x022006B4 stmdb sp!, {r4, lr} - bl FUN_02200ED4 + bl MOD04_02200ED4 movs r4, r0 ldmeqia sp!, {r4, pc} ldr r0, [r4] mvn r1, #0 cmp r0, r1 beq _022006D8 - bl FUN_021EFD9C + bl MOD04_021EFD9C _022006D8: mvn r0, #0 str r0, [r4] @@ -45737,8 +45743,8 @@ _022006D8: str r0, [r4, #0x10] ldmia sp!, {r4, pc} - arm_func_start FUN_022006EC -FUN_022006EC: ; 0x022006EC + arm_func_start MOD04_022006EC +MOD04_022006EC: ; 0x022006EC stmdb sp!, {r4, r5, r6, r7, r8, lr} ldr ip, _022007B4 ; =0x02210E5C mov r8, r0 @@ -45749,11 +45755,11 @@ FUN_022006EC: ; 0x022006EC mov r5, r3 movne r0, #2 ldmneia sp!, {r4, r5, r6, r7, r8, pc} - bl FUN_022007B8 + bl MOD04_022007B8 cmp r0, #0 moveq r0, #3 ldmeqia sp!, {r4, r5, r6, r7, r8, pc} - bl FUN_02200E0C + bl MOD04_02200E0C movs r4, r0 moveq r0, #1 ldmeqia sp!, {r4, r5, r6, r7, r8, pc} @@ -45768,7 +45774,7 @@ FUN_022006EC: ; 0x022006EC mov r1, r0 str r2, [r4, #0x3c] mov r2, #0 - bl FUN_021EFDB8 + bl MOD04_021EFDB8 str r0, [r4] mov r0, #0 str r0, [r4, #0x20] @@ -45782,19 +45788,19 @@ FUN_022006EC: ; 0x022006EC cmp r1, r0 bne _022007A4 mov r0, r4 - bl FUN_02200DA4 + bl MOD04_02200DA4 mov r0, #2 ldmia sp!, {r4, r5, r6, r7, r8, pc} _022007A4: mov r0, r4 - bl FUN_022009F8 + bl MOD04_022009F8 mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _022007B4: .word 0x02210E5C - arm_func_start FUN_022007B8 -FUN_022007B8: ; 0x022007B8 + arm_func_start MOD04_022007B8 +MOD04_022007B8: ; 0x022007B8 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _02200848 ; =0x022113D0 @@ -45804,7 +45810,7 @@ FUN_022007B8: ; 0x022007B8 ldr r0, _0220084C ; =0x022113C8 ldr r1, _02200850 ; =0x0220F020 ldr r0, [r0] - bl FUN_02200860 + bl MOD04_02200860 ldr r1, _02200848 ; =0x022113D0 str r0, [r1] _022007E8: @@ -45815,7 +45821,7 @@ _022007E8: ldr r0, _02200858 ; =0x022113C4 ldr r1, _0220085C ; =0x0220F03C ldr r0, [r0] - bl FUN_02200860 + bl MOD04_02200860 ldr r1, _02200854 ; =0x022113CC str r0, [r1] _02200810: @@ -45843,8 +45849,8 @@ _02200854: .word 0x022113CC _02200858: .word 0x022113C4 _0220085C: .word 0x0220F03C - arm_func_start FUN_02200860 -FUN_02200860: ; 0x02200860 + arm_func_start MOD04_02200860 +MOD04_02200860: ; 0x02200860 stmdb sp!, {lr} sub sp, sp, #0x84 cmp r0, #0 @@ -45857,18 +45863,18 @@ FUN_02200860: ; 0x02200860 bl snprintf add r0, sp, #4 _0220088C: - bl FUN_022008A0 + bl MOD04_022008A0 add sp, sp, #0x84 ldmfd sp!, {pc} .align 2, 0 _02200898: .word 0x0220F058 _0220089C: .word 0x02210EA0 - arm_func_start FUN_022008A0 -FUN_022008A0: ; 0x022008A0 + arm_func_start MOD04_022008A0 +MOD04_022008A0: ; 0x022008A0 stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_021EFB38 + bl MOD04_021EFB38 mvn r1, #0 cmp r0, r1 ldmneia sp!, {r4, pc} @@ -45881,8 +45887,8 @@ FUN_022008A0: ; 0x022008A0 ldrne r0, [r0] ldmia sp!, {r4, pc} - arm_func_start FUN_022008D8 -FUN_022008D8: ; 0x022008D8 + arm_func_start MOD04_022008D8 +MOD04_022008D8: ; 0x022008D8 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x1c ldr lr, _022009F4 ; =0x0220F018 @@ -45942,8 +45948,8 @@ FUN_022008D8: ; 0x022008D8 str r1, [sp] ldrh r2, [r4, #0x30] ldr r1, [r4, #0x2c] - bl FUN_02200CEC - bl FUN_021F025C + bl MOD04_02200CEC + bl MOD04_021F025C add r0, r0, #0x2bc str r0, [r4, #0x28] mov r0, #0xc @@ -45957,8 +45963,8 @@ FUN_022008D8: ; 0x022008D8 .align 2, 0 _022009F4: .word 0x0220F018 - arm_func_start FUN_022009F8 -FUN_022009F8: ; 0x022009F8 + arm_func_start MOD04_022009F8 +MOD04_022009F8: ; 0x022009F8 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x60 ldr r7, _02200C30 ; =0x0220F018 @@ -46000,13 +46006,13 @@ FUN_022009F8: ; 0x022009F8 cmp r2, r0 movne r1, #1 strb r1, [r5, #0xe] - bl FUN_02200C78 + bl MOD04_02200C78 mov r7, r0 - bl FUN_02200C78 + bl MOD04_02200C78 mov r8, r0 - bl FUN_02200C78 + bl MOD04_02200C78 mov r4, r0 - bl FUN_02200C78 + bl MOD04_02200C78 mov r2, #0 mov r1, r7, lsl #0x18 and r7, r1, #0xff000000 @@ -46048,7 +46054,7 @@ FUN_022009F8: ; 0x022009F8 ldr r1, [r1] ldr r2, _02200C3C ; =0x00006CFD mov r3, r5 - bl FUN_02200CEC + bl MOD04_02200CEC _02200B60: ldr r0, [r6, #0x18] cmp r0, #0 @@ -46061,7 +46067,7 @@ _02200B60: ldr r1, [r1] ldr r2, _02200C3C ; =0x00006CFD mov r3, r5 - bl FUN_02200CEC + bl MOD04_02200CEC _02200B90: ldrb r0, [r5, #0xe] cmp r0, #0 @@ -46070,10 +46076,10 @@ _02200B90: cmp r0, #0 ldrne r0, [r6, #4] ldreq r0, [r6] - bl FUN_02200C44 + bl MOD04_02200C44 mov r7, r0 mov r0, r8 - bl FUN_02200C44 + bl MOD04_02200C44 mov r1, r7, asr #8 mov r0, r0, lsl #8 and r1, r1, #0xff @@ -46095,9 +46101,9 @@ _02200B90: ldr r1, [r1] ldr r2, _02200C3C ; =0x00006CFD mov r3, r5 - bl FUN_02200CEC + bl MOD04_02200CEC _02200C14: - bl FUN_021F025C + bl MOD04_021F025C add r0, r0, #0x1f4 str r0, [r6, #0x28] mov r0, #0x1e @@ -46111,15 +46117,15 @@ _02200C38: .word 0x022113D0 _02200C3C: .word 0x00006CFD _02200C40: .word 0x022113CC - arm_func_start FUN_02200C44 -FUN_02200C44: ; 0x02200C44 + arm_func_start MOD04_02200C44 +MOD04_02200C44: ; 0x02200C44 stmdb sp!, {lr} sub sp, sp, #0xc mov r3, #8 add r1, sp, #0 add r2, sp, #8 str r3, [sp, #8] - bl FUN_021EFB5C + bl MOD04_021EFB5C mvn r1, #0 cmp r0, r1 moveq r0, #0 @@ -46127,12 +46133,12 @@ FUN_02200C44: ; 0x02200C44 add sp, sp, #0xc ldmfd sp!, {pc} - arm_func_start FUN_02200C78 -FUN_02200C78: ; 0x02200C78 + arm_func_start MOD04_02200C78 +MOD04_02200C78: ; 0x02200C78 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, #0 - bl FUN_021EFE70 + bl MOD04_021EFE70 movs r6, r0 addeq sp, sp, #4 moveq r0, r5 @@ -46148,7 +46154,7 @@ _02200CA0: cmp r1, r4 beq _02200CD4 mov r5, r1 - bl FUN_021EFDEC + bl MOD04_021EFDEC cmp r0, #0 addne sp, sp, #4 movne r0, r5 @@ -46163,8 +46169,8 @@ _02200CDC: .align 2, 0 _02200CE8: .word 0x0100007F - arm_func_start FUN_02200CEC -FUN_02200CEC: ; 0x02200CEC + arm_func_start MOD04_02200CEC +MOD04_02200CEC: ; 0x02200CEC stmdb sp!, {lr} sub sp, sp, #0x14 mov ip, r2, asr #8 @@ -46183,12 +46189,12 @@ FUN_02200CEC: ; 0x02200CEC ldr r2, [sp, #0x18] mov r3, #0 str ip, [sp, #4] - bl FUN_021EFBD4 + bl MOD04_021EFBD4 add sp, sp, #0x14 ldmfd sp!, {pc} - arm_func_start FUN_02200D40 -FUN_02200D40: ; 0x02200D40 + arm_func_start MOD04_02200D40 +MOD04_02200D40: ; 0x02200D40 stmdb sp!, {lr} sub sp, sp, #4 ldr r1, _02200D68 ; =0x0220F018 @@ -46202,8 +46208,8 @@ FUN_02200D40: ; 0x02200D40 .align 2, 0 _02200D68: .word 0x0220F018 - arm_func_start FUN_02200D6C -FUN_02200D6C: ; 0x02200D6C + arm_func_start MOD04_02200D6C +MOD04_02200D6C: ; 0x02200D6C stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _02200DA0 ; =0x022113D4 @@ -46211,7 +46217,7 @@ FUN_02200D6C: ; 0x02200D6C cmp r0, #0 addeq sp, sp, #4 ldmeqia sp!, {pc} - bl FUN_021EF074 + bl MOD04_021EF074 ldr r0, _02200DA0 ; =0x022113D4 mov r1, #0 str r1, [r0] @@ -46220,40 +46226,40 @@ FUN_02200D6C: ; 0x02200D6C .align 2, 0 _02200DA0: .word 0x022113D4 - arm_func_start FUN_02200DA4 -FUN_02200DA4: ; 0x02200DA4 + arm_func_start MOD04_02200DA4 +MOD04_02200DA4: ; 0x02200DA4 stmdb sp!, {r4, r5, r6, lr} ldr r1, _02200E08 ; =0x022113D4 mov r6, r0 ldr r0, [r1] mov r5, #0 - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 ldmleia sp!, {r4, r5, r6, pc} ldr r4, _02200E08 ; =0x022113D4 _02200DC8: ldr r0, [r4] mov r1, r5 - bl FUN_021EEFFC + bl MOD04_021EEFFC cmp r6, r0 bne _02200DF0 ldr r0, _02200E08 ; =0x022113D4 mov r1, r5 ldr r0, [r0] - bl FUN_021EEDE0 + bl MOD04_021EEDE0 ldmia sp!, {r4, r5, r6, pc} _02200DF0: ldr r0, [r4] add r5, r5, #1 - bl FUN_021EF06C + bl MOD04_021EF06C cmp r5, r0 blt _02200DC8 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _02200E08: .word 0x022113D4 - arm_func_start FUN_02200E0C -FUN_02200E0C: ; 0x02200E0C + arm_func_start MOD04_02200E0C +MOD04_02200E0C: ; 0x02200E0C stmdb sp!, {lr} sub sp, sp, #0x44 mov r0, #0 @@ -46271,39 +46277,39 @@ FUN_02200E0C: ; 0x02200E0C ldr r0, [r0] cmp r0, #0 bne _02200E68 - ldr r2, _02200EA0 ; =FUN_02200EA4 + ldr r2, _02200EA0 ; =MOD04_02200EA4 mov r0, #0x40 mov r1, #4 - bl FUN_021EF0E4 + bl MOD04_021EF0E4 ldr r1, _02200E9C ; =0x022113D4 str r0, [r1] _02200E68: ldr r0, _02200E9C ; =0x022113D4 add r1, sp, #0 ldr r0, [r0] - bl FUN_021EEFA8 + bl MOD04_021EEFA8 ldr r0, _02200E9C ; =0x022113D4 ldr r0, [r0] - bl FUN_021EF06C + bl MOD04_021EF06C ldr r2, _02200E9C ; =0x022113D4 sub r1, r0, #1 ldr r0, [r2] - bl FUN_021EEFFC + bl MOD04_021EEFFC add sp, sp, #0x44 ldmfd sp!, {pc} .align 2, 0 _02200E9C: .word 0x022113D4 -_02200EA0: .word FUN_02200EA4 +_02200EA0: .word MOD04_02200EA4 - arm_func_start FUN_02200EA4 -FUN_02200EA4: ; 0x02200EA4 + arm_func_start MOD04_02200EA4 +MOD04_02200EA4: ; 0x02200EA4 stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4] mvn r1, #0 cmp r0, r1 beq _02200EC0 - bl FUN_021EFD9C + bl MOD04_021EFD9C _02200EC0: mvn r0, #0 str r0, [r4] @@ -46311,8 +46317,8 @@ _02200EC0: str r0, [r4, #0x10] ldmia sp!, {r4, pc} - arm_func_start FUN_02200ED4 -FUN_02200ED4: ; 0x02200ED4 + arm_func_start MOD04_02200ED4 +MOD04_02200ED4: ; 0x02200ED4 stmdb sp!, {r4, r5, r6, lr} ldr r1, _02200F38 ; =0x022113D4 mov r6, r0 @@ -46321,20 +46327,20 @@ FUN_02200ED4: ; 0x02200ED4 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} mov r5, #0 - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 ble _02200F30 ldr r4, _02200F38 ; =0x022113D4 _02200F04: ldr r0, [r4] mov r1, r5 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r1, [r0, #8] cmp r1, r6 ldmeqia sp!, {r4, r5, r6, pc} ldr r0, [r4] add r5, r5, #1 - bl FUN_021EF06C + bl MOD04_021EF06C cmp r5, r0 blt _02200F04 _02200F30: @@ -46343,8 +46349,8 @@ _02200F30: .align 2, 0 _02200F38: .word 0x022113D4 - arm_func_start FUN_02200F3C -FUN_02200F3C: ; 0x02200F3C + arm_func_start MOD04_02200F3C +MOD04_02200F3C: ; 0x02200F3C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} ldr ip, _02201120 ; =0x0000082C sub sp, sp, ip @@ -46355,7 +46361,7 @@ FUN_02200F3C: ; 0x02200F3C add r2, sl, #0x84 mov r1, #3 str r3, [sp, #0x824] - bl FUN_02201DCC + bl MOD04_02201DCC ldr r4, _02201124 ; =0x022115D8 mov r8, #0 ldr r0, [r4] @@ -46372,13 +46378,13 @@ _02200F8C: bl sprintf mov r0, r6 mov r1, r7 - bl FUN_022021C0 + bl MOD04_022021C0 add r0, r5, r8, lsl #2 ldmia r0, {r0} bl FUN_0209A27C mov r1, r0 mov r0, r6 - bl FUN_022021C0 + bl MOD04_022021C0 add r8, r8, #1 ldr r0, [r4] cmp r8, r0 @@ -46386,50 +46392,50 @@ _02200F8C: _02200FD0: ldr r1, _02201130 ; =0x0220F180 add r0, sp, #0x24 - bl FUN_022021C0 + bl MOD04_022021C0 ldr r1, [sl, #0xc0] add r0, sp, #0x24 - bl FUN_02202220 + bl MOD04_02202220 ldr r1, _02201134 ; =0x0220F18C add r0, sp, #0x24 - bl FUN_022021C0 + bl MOD04_022021C0 ldr r0, [sl, #0xc8] cmp r0, #0 ldrne r1, _02201138 ; =0x0220F194 add r0, sp, #0x24 ldreq r1, _0220113C ; =0x0220F198 - bl FUN_022021C0 + bl MOD04_022021C0 cmp sb, #0 beq _0220102C ldr r1, _02201140 ; =0x0220F19C add r0, sp, #0x24 - bl FUN_022021C0 + bl MOD04_022021C0 add r0, sp, #0x24 mov r1, sb - bl FUN_02202220 + bl MOD04_02202220 _0220102C: ldr r1, _02201144 ; =0x0220F1AC add r0, sp, #0x24 - bl FUN_022021C0 + bl MOD04_022021C0 add r0, sp, #0x24 add r1, sl, #4 - bl FUN_022021C0 + bl MOD04_022021C0 ldr r0, [sl, #0xa8] cmp r0, #0 beq _02201084 ldr r1, _02201148 ; =0x0220F1B8 add r0, sp, #0x24 - bl FUN_022021C0 + bl MOD04_022021C0 ldr r1, [sl, #0x104] add r0, sp, #0x24 - bl FUN_02202220 + bl MOD04_02202220 ldr r1, _0220114C ; =0x0220F1C4 add r0, sp, #0x24 - bl FUN_022021C0 + bl MOD04_022021C0 add r0, sl, #0x100 ldrh r1, [r0, #8] add r0, sp, #0x24 - bl FUN_02202220 + bl MOD04_02202220 _02201084: cmp sb, #2 beq _022010B4 @@ -46441,7 +46447,7 @@ _02201084: add r1, sp, #0x24 mov r0, sl str r3, [sp, #0xc] - bl FUN_022019B4 + bl MOD04_022019B4 b _022010D4 _022010B4: ldr r2, [sp, #0x824] @@ -46461,8 +46467,8 @@ _022010D4: ldr r2, [sp, #0x824] add r1, sp, #0x24 mov r3, #0 - bl FUN_021EFBD4 - bl FUN_021F025C + bl MOD04_021EFBD4 + bl MOD04_021F025C str r0, [sl, #0xac] ldr r0, [sl, #0xac] cmp sb, #0 @@ -46486,8 +46492,8 @@ _02201144: .word 0x0220F1AC _02201148: .word 0x0220F1B8 _0220114C: .word 0x0220F1C4 - arm_func_start FUN_02201150 -FUN_02201150: ; 0x02201150 + arm_func_start MOD04_02201150 +MOD04_02201150: ; 0x02201150 stmdb sp!, {r4, lr} sub sp, sp, #0x810 mov r4, r0 @@ -46496,7 +46502,7 @@ FUN_02201150: ; 0x02201150 add r2, r4, #0x84 mov r1, #8 str r3, [sp, #0x808] - bl FUN_02201DCC + bl MOD04_02201DCC add r0, r4, #0xcc str r0, [sp] mov r0, #8 @@ -46505,14 +46511,14 @@ FUN_02201150: ; 0x02201150 ldr r2, [sp, #0x808] add r1, sp, #8 mov r3, #0 - bl FUN_021EFBD4 - bl FUN_021F025C + bl MOD04_021EFBD4 + bl MOD04_021F025C str r0, [r4, #0xb0] add sp, sp, #0x810 ldmia sp!, {r4, pc} - arm_func_start FUN_022011A8 -FUN_022011A8: ; 0x022011A8 + arm_func_start MOD04_022011A8 +MOD04_022011A8: ; 0x022011A8 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} ldr ip, _02201504 ; =0x00000814 sub sp, sp, ip @@ -46543,7 +46549,7 @@ _0220120C: bne _0220124C add r1, sp, #0xc mov r0, r8 - bl FUN_022016A8 + bl MOD04_022016A8 str r6, [sp] mov r0, #8 str r0, [sp, #4] @@ -46551,7 +46557,7 @@ _0220120C: ldr r2, [sp, #0x80c] add r1, sp, #0xc mov r3, #0 - bl FUN_021EFBD4 + bl MOD04_021EFBD4 ldr ip, _02201504 ; =0x00000814 add sp, sp, ip ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} @@ -46581,7 +46587,7 @@ _0220124C: mov r1, sb mov r2, r5 sub r7, r7, #7 - bl FUN_02201DCC + bl MOD04_02201DCC cmp sb, #8 addls pc, pc, sb, lsl #2 b _022014CC @@ -46600,7 +46606,7 @@ _022012E4: mov r0, r8 mov r2, r4 mov r3, r7 - bl FUN_022018F0 + bl MOD04_022018F0 b _022014D8 _022012FC: cmp r7, #0xd @@ -46611,13 +46617,13 @@ _022012FC: add r1, r4, r7 mov r0, r8 sub r1, r1, #0xd - bl FUN_02201C70 + bl MOD04_02201C70 _02201320: add r1, sp, #0xc mov r0, r8 mov r2, r4 mov r3, r7 - bl FUN_02201D2C + bl MOD04_02201D2C b _022014D8 _02201338: ldr r0, [sp, #0x80c] @@ -46717,13 +46723,13 @@ _02201400: strb r2, [r3, #2] strb r1, [r3, #3] ldr r1, [sp, #8] - bl FUN_0220150C + bl MOD04_0220150C cmp r0, #0 bne _022014D8 mov r0, r8 add r1, r4, #4 sub r2, r7, #4 - bl FUN_0220157C + bl MOD04_0220157C b _022014D8 _022014CC: ldr ip, _02201504 ; =0x00000814 @@ -46737,7 +46743,7 @@ _022014D8: ldr r2, [sp, #0x80c] add r1, sp, #0xc mov r3, #0 - bl FUN_021EFBD4 + bl MOD04_021EFBD4 ldr ip, _02201504 ; =0x00000814 add sp, sp, ip ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} @@ -46745,8 +46751,8 @@ _022014D8: _02201504: .word 0x00000814 _02201508: .word 0x0220F060 - arm_func_start FUN_0220150C -FUN_0220150C: ; 0x0220150C + arm_func_start MOD04_0220150C +MOD04_0220150C: ; 0x0220150C stmdb sp!, {r4, lr} mov r3, #0 _02201514: @@ -46778,8 +46784,8 @@ _02201514: _02201574: .word 0x66666667 _02201578: .word 0x0000000A - arm_func_start FUN_0220157C -FUN_0220157C: ; 0x0220157C + arm_func_start MOD04_0220157C +MOD04_0220157C: ; 0x0220157C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0xc ldr ip, _022016A4 ; =0x0220BCD8 @@ -46861,8 +46867,8 @@ _0220167C: .align 2, 0 _022016A4: .word 0x0220BCD8 - arm_func_start FUN_022016A8 -FUN_022016A8: ; 0x022016A8 + arm_func_start MOD04_022016A8 +MOD04_022016A8: ; 0x022016A8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r1 @@ -46872,18 +46878,18 @@ FUN_022016A8: ; 0x022016A8 mov r3, #0x5c mov r2, #0 strb r3, [r4] - bl FUN_02201714 + bl MOD04_02201714 mov r0, r5 mov r1, r4 mov r2, #1 - bl FUN_02201714 + bl MOD04_02201714 mov r0, r5 mov r1, r4 mov r2, #2 - bl FUN_02201714 + bl MOD04_02201714 ldr r1, _02201710 ; =0x0220F1D0 mov r0, r4 - bl FUN_022021C0 + bl MOD04_022021C0 ldr r0, [r4, #0x800] sub r0, r0, #1 str r0, [r4, #0x800] @@ -46892,8 +46898,8 @@ FUN_022016A8: ; 0x022016A8 .align 2, 0 _02201710: .word 0x0220F1D0 - arm_func_start FUN_02201714 -FUN_02201714: ; 0x02201714 + arm_func_start MOD04_02201714 +MOD04_02201714: ; 0x02201714 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x194 mov r8, r2 @@ -46936,7 +46942,7 @@ _02201790: bne _02201804 mov r1, fp mov r0, sb - bl FUN_022021C0 + bl MOD04_022021C0 ldr r0, [sb, #0x800] mov r1, sb sub r0, r0, #1 @@ -46951,7 +46957,7 @@ _02201790: bne _022017F4 ldr r1, _022018E8 ; =0x0220F1EC mov r0, sb - bl FUN_022021C0 + bl MOD04_022021C0 _022017F4: ldr r0, [sb, #0x800] sub r0, r0, #1 @@ -46970,7 +46976,7 @@ _02201814: bl sprintf mov r0, sb add r1, sp, #0xc - bl FUN_022021C0 + bl MOD04_022021C0 ldr r0, [sb, #0x800] cmp r8, #1 sub r0, r0, #1 @@ -46999,7 +47005,7 @@ _02201888: bne _022018A0 ldr r1, _022018E8 ; =0x0220F1EC mov r0, sb - bl FUN_022021C0 + bl MOD04_022021C0 _022018A0: ldr r0, [sb, #0x800] add r7, r7, #1 @@ -47024,8 +47030,8 @@ _022018E4: .word 0x0220F1E4 _022018E8: .word 0x0220F1EC _022018EC: .word 0x0220F1F0 - arm_func_start FUN_022018F0 -FUN_022018F0: ; 0x022018F0 + arm_func_start MOD04_022018F0 +MOD04_022018F0: ; 0x022018F0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x14 mov r4, #0 @@ -47075,12 +47081,12 @@ _02201984: mov r2, r7 mov r3, r4 str ip, [sp, #0xc] - bl FUN_022019B4 + bl MOD04_022019B4 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_022019B4 -FUN_022019B4: ; 0x022019B4 + arm_func_start MOD04_022019B4 +MOD04_022019B4: ; 0x022019B4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 str r3, [sp] @@ -47088,26 +47094,26 @@ FUN_022019B4: ; 0x022019B4 mov r2, #0 mov r5, r0 mov r4, r1 - bl FUN_02201A14 + bl MOD04_02201A14 ldr ip, [sp, #0x14] ldr r3, [sp, #0x10] mov r0, r5 mov r1, r4 mov r2, #1 str ip, [sp] - bl FUN_02201A14 + bl MOD04_02201A14 ldr r0, [sp, #0x1c] ldr r3, [sp, #0x18] str r0, [sp] mov r0, r5 mov r1, r4 mov r2, #2 - bl FUN_02201A14 + bl MOD04_02201A14 add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_02201A14 -FUN_02201A14: ; 0x02201A14 + arm_func_start MOD04_02201A14 +MOD04_02201A14: ; 0x02201A14 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x114 movs fp, r3 @@ -47175,7 +47181,7 @@ _02201B00: mov r0, sb cmp r1, #0 moveq r1, fp - bl FUN_022021C0 + bl MOD04_022021C0 cmp r8, #0 bne _02201B50 ldrb r0, [r5] @@ -47189,7 +47195,7 @@ _02201B00: bne _02201B50 ldr r1, _02201C6C ; =0x0220F1EC mov r0, sb - bl FUN_022021C0 + bl MOD04_022021C0 _02201B50: ldr r0, [sp, #0x10c] add r7, r7, #1 @@ -47257,7 +47263,7 @@ _02201C28: bne _02201C40 ldr r1, _02201C6C ; =0x0220F1EC mov r0, sb - bl FUN_022021C0 + bl MOD04_022021C0 _02201C40: add r5, r5, #1 cmp r5, fp @@ -47274,8 +47280,8 @@ _02201C64: .word 0x0220F1E4 _02201C68: .word 0x0220F3A8 _02201C6C: .word 0x0220F1EC - arm_func_start FUN_02201C70 -FUN_02201C70: ; 0x02201C70 + arm_func_start MOD04_02201C70 +MOD04_02201C70: ; 0x02201C70 stmdb sp!, {r4, lr} sub sp, sp, #8 mov r4, r0 @@ -47326,8 +47332,8 @@ _02201D04: .align 2, 0 _02201D28: .word 0x0220F1F8 - arm_func_start FUN_02201D2C -FUN_02201D2C: ; 0x02201D2C + arm_func_start MOD04_02201D2C +MOD04_02201D2C: ; 0x02201D2C stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x48 mov r5, r3 @@ -47353,12 +47359,12 @@ FUN_02201D2C: ; 0x02201D2C add r2, sp, #0 add r0, r6, #0x44 sub r3, r5, #1 - bl FUN_02201E0C + bl MOD04_02201E0C ldr r2, [r4, #0x800] sub r1, r5, #1 add r0, sp, #0 add r2, r4, r2 - bl FUN_02201F50 + bl MOD04_02201F50 ldr r0, [r4, #0x800] add r0, r4, r0 bl strlen @@ -47369,8 +47375,8 @@ FUN_02201D2C: ; 0x02201D2C add sp, sp, #0x48 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_02201DCC -FUN_02201DCC: ; 0x02201DCC + arm_func_start MOD04_02201DCC +MOD04_02201DCC: ; 0x02201DCC stmdb sp!, {lr} sub sp, sp, #4 strb r1, [r0] @@ -47388,8 +47394,8 @@ FUN_02201DCC: ; 0x02201DCC add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_02201E0C -FUN_02201E0C: ; 0x02201E0C + arm_func_start MOD04_02201E0C +MOD04_02201E0C: ; 0x02201E0C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x104 str r1, [sp] @@ -47425,7 +47431,7 @@ _02201E58: and r7, r1, #0xff mov r0, r5 add r1, fp, r6 - bl FUN_0220206C + bl MOD04_0220206C add r0, r4, #1 mov r0, r0, lsl #0x10 mov r4, r0, asr #0x10 @@ -47455,7 +47461,7 @@ _02201EC8: add r1, r2, r1, ror #24 and r5, r1, #0xff add r1, r4, r5 - bl FUN_0220206C + bl MOD04_0220206C ldrb r2, [r4, r6] ldrb r1, [r4, r5] add r3, r7, #1 @@ -47475,8 +47481,8 @@ _02201EC8: add sp, sp, #0x104 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_02201F50 -FUN_02201F50: ; 0x02201F50 + arm_func_start MOD04_02201F50 +MOD04_02201F50: ; 0x02201F50 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc mov sb, r1 @@ -47520,7 +47526,7 @@ _02201F84: strb r0, [sp, #0xa] _02201FEC: ldrb r0, [r6] - bl FUN_02202020 + bl MOD04_02202020 add r5, r5, #1 cmp r5, #3 strb r0, [r8], #1 @@ -47534,8 +47540,8 @@ _02202010: add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_02202020 -FUN_02202020: ; 0x02202020 + arm_func_start MOD04_02202020 +MOD04_02202020: ; 0x02202020 cmp r0, #0x1a addlo r0, r0, #0x41 andlo r0, r0, #0xff @@ -47556,16 +47562,16 @@ FUN_02202020: ; 0x02202020 movne r0, #0 bx lr - arm_func_start FUN_0220206C -FUN_0220206C: ; 0x0220206C + arm_func_start MOD04_0220206C +MOD04_0220206C: ; 0x0220206C ldrb r3, [r0] ldrb r2, [r1] strb r2, [r0] strb r3, [r1] bx lr - arm_func_start FUN_02202080 -FUN_02202080: ; 0x02202080 + arm_func_start MOD04_02202080 +MOD04_02202080: ; 0x02202080 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r1, r1, lsl #0x10 @@ -47584,7 +47590,7 @@ FUN_02202080: ; 0x02202080 mov r5, r3 streq r4, [r6, #4] beq _022020D0 - bl FUN_021EFB38 + bl MOD04_021EFB38 str r0, [r6, #4] _022020D0: ldr r1, [r6, #4] @@ -47615,11 +47621,11 @@ _0220211C: .align 2, 0 _02202130: .word 0x0220F204 - arm_func_start FUN_02202134 -FUN_02202134: ; 0x02202134 + arm_func_start MOD04_02202134 +MOD04_02202134: ; 0x02202134 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 - bl FUN_021EFE70 + bl MOD04_021EFE70 cmp r0, #0 addeq sp, sp, #4 ldmeqia sp!, {r4, r5, pc} @@ -47655,8 +47661,8 @@ _0220215C: _022021B8: .word 0x022115D8 _022021BC: .word 0x022115DC - arm_func_start FUN_022021C0 -FUN_022021C0: ; 0x022021C0 + arm_func_start MOD04_022021C0 +MOD04_022021C0: ; 0x022021C0 stmdb sp!, {r4, r5, r6, lr} mov r6, r1 mov r4, r0 @@ -47682,8 +47688,8 @@ FUN_022021C0: ; 0x022021C0 strb r1, [r4, r0] ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_02202220 -FUN_02202220: ; 0x02202220 + arm_func_start MOD04_02202220 +MOD04_02202220: ; 0x02202220 stmdb sp!, {r4, lr} sub sp, sp, #0x18 mov r2, r1 @@ -47693,14 +47699,14 @@ FUN_02202220: ; 0x02202220 bl sprintf add r1, sp, #0 mov r0, r4 - bl FUN_022021C0 + bl MOD04_022021C0 add sp, sp, #0x18 ldmia sp!, {r4, pc} .align 2, 0 _02202250: .word 0x0220F214 - arm_func_start FUN_02202254 -FUN_02202254: ; 0x02202254 + arm_func_start MOD04_02202254 +MOD04_02202254: ; 0x02202254 ldr r3, [r0, #0x100] cmp r3, #0xfe bxge lr @@ -47713,8 +47719,8 @@ FUN_02202254: ; 0x02202254 strb r1, [r0, r3] bx lr - arm_func_start FUN_02202280 -FUN_02202280: ; 0x02202280 + arm_func_start MOD04_02202280 +MOD04_02202280: ; 0x02202280 stmdb sp!, {r4, lr} movs r4, r0 ldreq r0, _02202300 ; =0x0220F060 @@ -47724,7 +47730,7 @@ FUN_02202280: ; 0x02202280 beq _022022A8 mov r0, r4 mov r1, #2 - bl FUN_02200F3C + bl MOD04_02200F3C _022022A8: ldr r0, [r4] mvn r1, #0 @@ -47733,7 +47739,7 @@ _022022A8: ldr r1, [r4, #0xc4] cmp r1, #0 beq _022022C8 - bl FUN_021EFD9C + bl MOD04_021EFD9C _022022C8: mvn r0, #0 str r0, [r4] @@ -47742,20 +47748,20 @@ _022022C8: ldr r0, [r4, #0xc4] cmp r0, #0 beq _022022E8 - bl FUN_021F0248 + bl MOD04_021F0248 _022022E8: ldr r0, _02202304 ; =0x0220F064 cmp r4, r0 ldmeqia sp!, {r4, pc} mov r0, r4 - bl FUN_021DD82C + bl MOD04_021DD82C ldmia sp!, {r4, pc} .align 2, 0 _02202300: .word 0x0220F060 _02202304: .word 0x0220F064 - arm_func_start FUN_02202308 -FUN_02202308: ; 0x02202308 + arm_func_start MOD04_02202308 +MOD04_02202308: ; 0x02202308 stmdb sp!, {r4, lr} movs r4, r0 ldreq r0, _0220235C ; =0x0220F060 @@ -47763,7 +47769,7 @@ FUN_02202308: ; 0x02202308 ldr r0, [r4, #0xbc] cmp r0, #0 ldmeqia sp!, {r4, pc} - bl FUN_021F025C + bl MOD04_021F025C ldr r2, [r4, #0xac] ldr r1, _02202360 ; =0x00002710 sub r0, r0, r2 @@ -47773,7 +47779,7 @@ FUN_02202308: ; 0x02202308 ldmloia sp!, {r4, pc} mov r0, r4 mov r1, #1 - bl FUN_02200F3C + bl MOD04_02200F3C mov r0, #0 str r0, [r4, #0xb4] ldmia sp!, {r4, pc} @@ -47781,12 +47787,12 @@ FUN_02202308: ; 0x02202308 _0220235C: .word 0x0220F060 _02202360: .word 0x00002710 - arm_func_start FUN_02202364 -FUN_02202364: ; 0x02202364 + arm_func_start MOD04_02202364 +MOD04_02202364: ; 0x02202364 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 - bl FUN_021F025C + bl MOD04_021F025C ldr r2, [r5] mvn r1, #0 cmp r2, r1 @@ -47815,7 +47821,7 @@ FUN_02202364: ; 0x02202364 _022023D8: mov r0, r5 mov r1, #3 - bl FUN_02200F3C + bl MOD04_02200F3C ldr r0, [r5, #0xb8] add r0, r0, #1 str r0, [r5, #0xb8] @@ -47831,7 +47837,7 @@ _022023F4: bls _02202424 mov r0, r5 mov r1, #1 - bl FUN_02200F3C + bl MOD04_02200F3C b _02202454 _02202424: ldr r2, [r5, #0xac] @@ -47846,7 +47852,7 @@ _02202424: _02202448: mov r0, r5 mov r1, #0 - bl FUN_02200F3C + bl MOD04_02200F3C _02202454: ldr r1, [r5, #0xb0] ldr r0, _02202488 ; =0x00004E20 @@ -47855,7 +47861,7 @@ _02202454: addls sp, sp, #4 ldmlsia sp!, {r4, r5, pc} mov r0, r5 - bl FUN_02201150 + bl MOD04_02201150 add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 @@ -47864,8 +47870,8 @@ _02202480: .word 0x0220F218 _02202484: .word 0x0000EA60 _02202488: .word 0x00004E20 - arm_func_start FUN_0220248C -FUN_0220248C: ; 0x0220248C + arm_func_start MOD04_0220248C +MOD04_0220248C: ; 0x0220248C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0x18 mov r1, #8 @@ -47876,7 +47882,7 @@ FUN_0220248C: ; 0x0220248C addeq sp, sp, #0x18 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} ldr r0, [r4] - bl FUN_021EFF2C + bl MOD04_021EFF2C cmp r0, #0 addeq sp, sp, #0x18 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} @@ -47893,7 +47899,7 @@ _022024DC: mov r1, r8 mov r2, r7 mov r3, r6 - bl FUN_021EFC40 + bl MOD04_021EFC40 mov r2, r0 cmp r2, r5 beq _02202518 @@ -47901,10 +47907,10 @@ _022024DC: mov r1, r8 mov r3, sl strb r6, [r8, r2] - bl FUN_022011A8 + bl MOD04_022011A8 _02202518: ldr r0, [r4] - bl FUN_021EFF2C + bl MOD04_021EFF2C cmp r0, #0 bne _022024DC add sp, sp, #0x18 @@ -47912,8 +47918,8 @@ _02202518: .align 2, 0 _02202530: .word 0x02211630 - arm_func_start FUN_02202534 -FUN_02202534: ; 0x02202534 + arm_func_start MOD04_02202534 +MOD04_02202534: ; 0x02202534 stmdb sp!, {r4, lr} movs r4, r0 ldreq r0, _02202564 ; =0x0220F060 @@ -47922,16 +47928,16 @@ FUN_02202534: ; 0x02202534 cmp r0, #0 beq _02202558 mov r0, r4 - bl FUN_02202364 + bl MOD04_02202364 _02202558: mov r0, r4 - bl FUN_0220248C + bl MOD04_0220248C ldmia sp!, {r4, pc} .align 2, 0 _02202564: .word 0x0220F060 - arm_func_start FUN_02202568 -FUN_02202568: ; 0x02202568 + arm_func_start MOD04_02202568 +MOD04_02202568: ; 0x02202568 cmp r0, #0 ldreq r0, _0220257C ; =0x0220F060 ldreq r0, [r0] @@ -47940,8 +47946,8 @@ FUN_02202568: ; 0x02202568 .align 2, 0 _0220257C: .word 0x0220F060 - arm_func_start FUN_02202580 -FUN_02202580: ; 0x02202580 + arm_func_start MOD04_02202580 +MOD04_02202580: ; 0x02202580 cmp r0, #0 ldreq r0, _02202594 ; =0x0220F060 ldreq r0, [r0] @@ -47950,8 +47956,8 @@ FUN_02202580: ; 0x02202580 .align 2, 0 _02202594: .word 0x0220F060 - arm_func_start FUN_02202598 -FUN_02202598: ; 0x02202598 + arm_func_start MOD04_02202598 +MOD04_02202598: ; 0x02202598 cmp r0, #0 ldreq r0, _022025AC ; =0x0220F060 ldreq r0, [r0] @@ -47960,8 +47966,8 @@ FUN_02202598: ; 0x02202598 .align 2, 0 _022025AC: .word 0x0220F060 - arm_func_start FUN_022025B0 -FUN_022025B0: ; 0x022025B0 + arm_func_start MOD04_022025B0 +MOD04_022025B0: ; 0x022025B0 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x40 movs r5, r0 @@ -47971,11 +47977,11 @@ FUN_022025B0: ; 0x022025B0 ldreq r5, _02202760 ; =0x0220F064 beq _022025E0 mov r0, #0x110 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [r5] ldr r5, [r5] _022025E0: - bl FUN_021F025C + bl MOD04_021F025C bl srand mov r1, r7 add r0, r5, #4 @@ -48047,7 +48053,7 @@ _022026CC: ldr r0, [r0] cmp r0, #0 bne _022026FC - bl FUN_02202134 + bl MOD04_02202134 _022026FC: ldr r0, [sp, #0x5c] cmp r0, #0 @@ -48067,7 +48073,7 @@ _02202728: addeq r0, sp, #0 add r2, r5, #0xcc mov r3, #0 - bl FUN_02202080 + bl MOD04_02202080 b _0220274C _02202748: mov r0, #1 @@ -48086,8 +48092,8 @@ _02202770: .word 0x022115F0 _02202774: .word 0x0220F250 _02202778: .word 0x00006CFC - arm_func_start FUN_0220277C -FUN_0220277C: ; 0x0220277C + arm_func_start MOD04_0220277C +MOD04_0220277C: ; 0x0220277C cmp r0, #0x32 bxlt lr cmp r0, #0xfe @@ -48098,8 +48104,8 @@ FUN_0220277C: ; 0x0220277C .align 2, 0 _02202798: .word 0x0220F3A8 - arm_func_start FUN_0220279C -FUN_0220279C: ; 0x0220279C + arm_func_start MOD04_0220279C +MOD04_0220279C: ; 0x0220279C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, r2 @@ -48112,7 +48118,7 @@ FUN_0220279C: ; 0x0220279C _022027C0: ldrb r1, [r6, r4] mov r0, r7 - bl FUN_022027E4 + bl MOD04_022027E4 strb r0, [r6, r4] add r4, r4, #1 cmp r4, r5 @@ -48120,8 +48126,8 @@ _022027C0: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_022027E4 -FUN_022027E4: ; 0x022027E4 + arm_func_start MOD04_022027E4 +MOD04_022027E4: ; 0x022027E4 stmdb sp!, {r4, lr} ldrb r4, [r0, #0x100] add r2, r4, #1 @@ -48174,8 +48180,8 @@ FUN_022027E4: ; 0x022027E4 ldrb r0, [r0, #0x103] ldmia sp!, {r4, pc} - arm_func_start FUN_022028B0 -FUN_022028B0: ; 0x022028B0 + arm_func_start MOD04_022028B0 +MOD04_022028B0: ; 0x022028B0 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x14 mov r7, r2 @@ -48183,7 +48189,7 @@ FUN_022028B0: ; 0x022028B0 mov r8, r1 cmp r7, #1 bhs _022028D8 - bl FUN_02202978 + bl MOD04_02202978 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} _022028D8: @@ -48206,7 +48212,7 @@ _02202904: mov r2, r8 mov r3, r7 str r4, [sp, #4] - bl FUN_022029C0 + bl MOD04_022029C0 ldrb r2, [sb, r6] ldrb r1, [sb, r0] strb r1, [sb, r6] @@ -48230,8 +48236,8 @@ _02202904: add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} - arm_func_start FUN_02202978 -FUN_02202978: ; 0x02202978 + arm_func_start MOD04_02202978 +MOD04_02202978: ; 0x02202978 mov r1, #1 strb r1, [r0, #0x100] mov r1, #3 @@ -48252,8 +48258,8 @@ _022029A8: blt _022029A8 bx lr - arm_func_start FUN_022029C0 -FUN_022029C0: ; 0x022029C0 + arm_func_start MOD04_022029C0 +MOD04_022029C0: ; 0x022029C0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 ldr r8, [sp, #0x28] @@ -48307,25 +48313,25 @@ _02202A6C: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_02202A80 -FUN_02202A80: ; 0x02202A80 + arm_func_start MOD04_02202A80 +MOD04_02202A80: ; 0x02202A80 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 add r0, r5, #8 mov r4, r1 - bl FUN_022032AC + bl MOD04_022032AC cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {r4, r5, pc} mov r1, r4 add r0, r5, #0x14 - bl FUN_022032AC + bl MOD04_022032AC add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_02202AB8 -FUN_02202AB8: ; 0x02202AB8 + arm_func_start MOD04_02202AB8 +MOD04_02202AB8: ; 0x02202AB8 ldr r3, [r0, #0x40] cmp r3, #0x14 addlt r2, r3, #1 @@ -48334,22 +48340,22 @@ FUN_02202AB8: ; 0x02202AB8 strltb r1, [r0, #0x2c] bx lr - arm_func_start FUN_02202AD4 -FUN_02202AD4: ; 0x02202AD4 + arm_func_start MOD04_02202AD4 +MOD04_02202AD4: ; 0x02202AD4 stmdb sp!, {r4, lr} mov r4, r0 ldr r1, [r4, #0x10] cmp r1, #0 ldmeqia sp!, {r4, pc} mov r1, #0 - bl FUN_02202C14 + bl MOD04_02202C14 mov r0, r4 - bl FUN_02202B84 + bl MOD04_02202B84 ldr r0, [r4, #0x1c] cmp r0, #0 ble _02202B0C mov r0, r4 - bl FUN_02202B34 + bl MOD04_02202B34 _02202B0C: ldr r0, [r4, #0x10] cmp r0, #0 @@ -48362,8 +48368,8 @@ _02202B0C: blx ip ldmia sp!, {r4, pc} - arm_func_start FUN_02202B34 -FUN_02202B34: ; 0x02202B34 + arm_func_start MOD04_02202B34 +MOD04_02202B34: ; 0x02202B34 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -48371,10 +48377,10 @@ FUN_02202B34: ; 0x02202B34 b _02202B5C _02202B48: mov r0, r4 - bl FUN_02203318 + bl MOD04_02203318 mov r1, r0 mov r0, r5 - bl FUN_022030C0 + bl MOD04_022030C0 _02202B5C: ldr r1, [r5, #0x10] ldr r0, [r5, #4] @@ -48387,11 +48393,11 @@ _02202B5C: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_02202B84 -FUN_02202B84: ; 0x02202B84 + arm_func_start MOD04_02202B84 +MOD04_02202B84: ; 0x02202B84 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r6, r0 - bl FUN_021F025C + bl MOD04_021F025C ldr r3, [r6, #8] mov r5, r0 cmp r3, #0 @@ -48420,7 +48426,7 @@ _02202BAC: ldr ip, [r6, #0x44] blx ip mov r0, r7 - bl FUN_02203318 + bl MOD04_02203318 ldr r3, [r6, #8] cmp r3, #0 bne _02202BAC @@ -48428,8 +48434,8 @@ _02202BAC: .align 2, 0 _02202C10: .word 0x000009C4 - arm_func_start FUN_02202C14 -FUN_02202C14: ; 0x02202C14 + arm_func_start MOD04_02202C14 +MOD04_02202C14: ; 0x02202C14 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} ldr ip, _02202DB0 ; =0x00000814 sub sp, sp, ip @@ -48440,7 +48446,7 @@ FUN_02202C14: ; 0x02202C14 ldrne r8, [sl, #0x24] ldreq r8, [sl, #0x20] mov r0, r8 - bl FUN_021EFF2C + bl MOD04_021EFF2C cmp r0, #0 ldreq ip, _02202DB0 ; =0x00000814 addeq sp, sp, ip @@ -48456,7 +48462,7 @@ _02202C5C: mov r1, r5 mov r3, r4 str r6, [sp, #4] - bl FUN_021EFC40 + bl MOD04_021EFC40 mov r7, r0 mvn r0, #0 cmp r7, r0 @@ -48509,7 +48515,7 @@ _02202D24: mov r1, r6 mov r2, r5 mov r3, r7 - bl FUN_02202DB8 + bl MOD04_02202DB8 cmp r0, #0 beq _02202D88 b _02202D94 @@ -48521,14 +48527,14 @@ _02202D4C: mov r1, r6 mov r2, r5 mov r3, r7 - bl FUN_02202E68 + bl MOD04_02202E68 b _02202D94 _02202D70: mov r0, sl mov r1, r6 mov r2, r5 mov r3, r7 - bl FUN_02202DC0 + bl MOD04_02202DC0 b _02202D94 _02202D88: ldr r6, [r6, #0x20] @@ -48536,7 +48542,7 @@ _02202D88: bne _02202CA4 _02202D94: mov r0, r8 - bl FUN_021EFF2C + bl MOD04_021EFF2C cmp r0, #0 bne _02202C5C ldr ip, _02202DB0 ; =0x00000814 @@ -48546,13 +48552,13 @@ _02202D94: _02202DB0: .word 0x00000814 _02202DB4: .word 0x000007FF - arm_func_start FUN_02202DB8 -FUN_02202DB8: ; 0x02202DB8 + arm_func_start MOD04_02202DB8 +MOD04_02202DB8: ; 0x02202DB8 mov r0, #1 bx lr - arm_func_start FUN_02202DC0 -FUN_02202DC0: ; 0x02202DC0 + arm_func_start MOD04_02202DC0 +MOD04_02202DC0: ; 0x02202DC0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r4, r1 @@ -48566,7 +48572,7 @@ FUN_02202DC0: ; 0x02202DC0 moveq r6, #0 mov r0, r4 mov r1, r7 - bl FUN_02203738 + bl MOD04_02203738 cmp r6, #0 addeq sp, sp, #4 ldmeqia sp!, {r4, r5, r6, r7, pc} @@ -48579,13 +48585,13 @@ FUN_02202DC0: ; 0x02202DC0 ldrb r0, [r4, #0x14] and r0, r0, #0xf3 strb r0, [r4, #0x14] - bl FUN_021F025C + bl MOD04_021F025C ldr r2, [r4, #0x1c] mov r1, r4 sub r0, r0, r2 str r0, [r4, #0x1c] add r0, r5, #8 - bl FUN_022032AC + bl MOD04_022032AC ldr r3, [r5, #0x48] ldr ip, [r5, #0x44] mov r0, r5 @@ -48597,8 +48603,8 @@ FUN_02202DC0: ; 0x02202DC0 .align 2, 0 _02202E64: .word 0x0220F7A0 - arm_func_start FUN_02202E68 -FUN_02202E68: ; 0x02202E68 + arm_func_start MOD04_02202E68 +MOD04_02202E68: ; 0x02202E68 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} mov r8, r2 ldrsb r2, [r8] @@ -48620,7 +48626,7 @@ FUN_02202E68: ; 0x02202E68 _02202EB0: mov r0, r8 mov r1, r7 - bl FUN_02206378 + bl MOD04_02206378 movs r5, r0 bmi _02202EF4 add r0, sl, r6 @@ -48628,7 +48634,7 @@ _02202EB0: mov r0, sb mov r2, r8 ldr r1, [r4, r1, lsl #2] - bl FUN_02203A80 + bl MOD04_02203A80 ldr r0, [sl, #0x40] add r6, r6, #1 cmp r6, r0 @@ -48644,7 +48650,7 @@ _02202F04: mov r0, sb mov r1, r8 mov r2, r7 - bl FUN_02203554 + bl MOD04_02203554 ldrb r0, [sb, #0x14] orr r0, r0, #0x43 strb r0, [sb, #0x14] @@ -48652,13 +48658,13 @@ _02202F20: ldrb r0, [sb, #0x14] and r0, r0, #0xf3 strb r0, [sb, #0x14] - bl FUN_021F025C + bl MOD04_021F025C ldr r2, [sb, #0x1c] mov r1, sb sub r0, r0, r2 str r0, [sb, #0x1c] add r0, sl, #8 - bl FUN_022032AC + bl MOD04_022032AC ldr r3, [sl, #0x48] ldr r4, [sl, #0x44] mov r0, sl @@ -48669,8 +48675,8 @@ _02202F20: .align 2, 0 _02202F64: .word 0x0220F3A8 - arm_func_start FUN_02202F68 -FUN_02202F68: ; 0x02202F68 + arm_func_start MOD04_02202F68 +MOD04_02202F68: ; 0x02202F68 stmdb sp!, {lr} sub sp, sp, #4 ldrb ip, [r1, #0x14] @@ -48695,53 +48701,53 @@ _02202FB4: ldr r3, [r0, #4] cmp ip, r3 bge _02202FD0 - bl FUN_022030C0 + bl MOD04_022030C0 add sp, sp, #4 ldmfd sp!, {pc} _02202FD0: cmp r2, #0 beq _02202FE8 add r0, r0, #0x14 - bl FUN_02203350 + bl MOD04_02203350 add sp, sp, #4 ldmfd sp!, {pc} _02202FE8: add r0, r0, #0x14 - bl FUN_02203378 + bl MOD04_02203378 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_02202FF8 -FUN_02202FF8: ; 0x02202FF8 + arm_func_start MOD04_02202FF8 +MOD04_02202FF8: ; 0x02202FF8 stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #0x20] - bl FUN_021EFD9C + bl MOD04_021EFD9C mvn r1, #0 add r0, r4, #0x14 str r1, [r4, #0x20] - bl FUN_02203294 + bl MOD04_02203294 add r0, r4, #8 - bl FUN_02203294 + bl MOD04_02203294 ldmia sp!, {r4, pc} - arm_func_start FUN_02203024 -FUN_02203024: ; 0x02203024 + arm_func_start MOD04_02203024 +MOD04_02203024: ; 0x02203024 stmdb sp!, {r4, lr} mov r4, r0 add r0, r4, #0x14 - bl FUN_02203294 + bl MOD04_02203294 add r0, r4, #8 - bl FUN_02203294 + bl MOD04_02203294 ldmia sp!, {r4, pc} - arm_func_start FUN_02203040 -FUN_02203040: ; 0x02203040 + arm_func_start MOD04_02203040 +MOD04_02203040: ; 0x02203040 str r1, [r0, #0x28] bx lr - arm_func_start FUN_02203048 -FUN_02203048: ; 0x02203048 + arm_func_start MOD04_02203048 +MOD04_02203048: ; 0x02203048 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 @@ -48753,7 +48759,7 @@ FUN_02203048: ; 0x02203048 cmp r0, #1 ldmneia sp!, {r4, r5, r6, pc} _02203070: - bl FUN_021F024C + bl MOD04_021F024C str r4, [r6] mov r0, #2 str r5, [r6, #4] @@ -48765,25 +48771,25 @@ _02203070: str r1, [r6, #0x48] mov r1, r0 str r2, [r6, #0x28] - bl FUN_021EFDB8 + bl MOD04_021EFDB8 str r0, [r6, #0x20] add r0, r6, #0x14 - bl FUN_02203294 + bl MOD04_02203294 add r0, r6, #8 - bl FUN_02203294 + bl MOD04_02203294 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _022030BC: .word 0x02210E5C - arm_func_start FUN_022030C0 -FUN_022030C0: ; 0x022030C0 + arm_func_start MOD04_022030C0 +MOD04_022030C0: ; 0x022030C0 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x114 mov r5, r0 mov r4, r1 add r0, r5, #8 - bl FUN_02203378 - bl FUN_021F025C + bl MOD04_02203378 + bl MOD04_021F025C str r0, [r4, #0x1c] mov r0, #2 strb r0, [sp, #9] @@ -48899,15 +48905,15 @@ _02203264: ldr r0, [r5, #0x20] add r1, sp, #0x10 mov r3, #0 - bl FUN_021EFBD4 + bl MOD04_021EFBD4 add sp, sp, #0x114 ldmia sp!, {r4, r5, pc} .align 2, 0 _0220328C: .word 0x0220F7A8 _02203290: .word 0x0220F7B8 - arm_func_start FUN_02203294 -FUN_02203294: ; 0x02203294 + arm_func_start MOD04_02203294 +MOD04_02203294: ; 0x02203294 mov r2, #0 str r2, [r0, #4] ldr r1, [r0, #4] @@ -48915,8 +48921,8 @@ FUN_02203294: ; 0x02203294 str r2, [r0, #8] bx lr - arm_func_start FUN_022032AC -FUN_022032AC: ; 0x022032AC + arm_func_start MOD04_022032AC +MOD04_022032AC: ; 0x022032AC ldr r3, [r0] mov r2, #0 cmp r3, #0 @@ -48948,8 +48954,8 @@ _02203310: mov r0, #0 bx lr - arm_func_start FUN_02203318 -FUN_02203318: ; 0x02203318 + arm_func_start MOD04_02203318 +MOD04_02203318: ; 0x02203318 ldr r2, [r0] cmp r2, #0 beq _02203348 @@ -48966,8 +48972,8 @@ _02203348: mov r0, r2 bx lr - arm_func_start FUN_02203350 -FUN_02203350: ; 0x02203350 + arm_func_start MOD04_02203350 +MOD04_02203350: ; 0x02203350 ldr r2, [r0] str r2, [r1, #0x20] str r1, [r0] @@ -48979,8 +48985,8 @@ FUN_02203350: ; 0x02203350 str r1, [r0, #8] bx lr - arm_func_start FUN_02203378 -FUN_02203378: ; 0x02203378 + arm_func_start MOD04_02203378 +MOD04_02203378: ; 0x02203378 ldr r2, [r0, #4] cmp r2, #0 strne r1, [r2, #0x20] @@ -48995,8 +49001,8 @@ FUN_02203378: ; 0x02203378 str r1, [r0, #8] bx lr - arm_func_start FUN_022033AC -FUN_022033AC: ; 0x022033AC + arm_func_start MOD04_022033AC +MOD04_022033AC: ; 0x022033AC ldr r1, _022033C4 ; =0x02211738 ldr r1, [r1] cmp r0, r1 @@ -49006,59 +49012,59 @@ FUN_022033AC: ; 0x022033AC .align 2, 0 _022033C4: .word 0x02211738 - arm_func_start FUN_022033C8 -FUN_022033C8: ; 0x022033C8 + arm_func_start MOD04_022033C8 +MOD04_022033C8: ; 0x022033C8 ldrb r0, [r0, #0x14] bx lr - arm_func_start FUN_022033D0 -FUN_022033D0: ; 0x022033D0 + arm_func_start MOD04_022033D0 +MOD04_022033D0: ; 0x022033D0 strb r1, [r0, #0x14] bx lr - arm_func_start FUN_022033D8 -FUN_022033D8: ; 0x022033D8 + arm_func_start MOD04_022033D8 +MOD04_022033D8: ; 0x022033D8 str r1, [r0, #0x10] bx lr - arm_func_start FUN_022033E0 -FUN_022033E0: ; 0x022033E0 + arm_func_start MOD04_022033E0 +MOD04_022033E0: ; 0x022033E0 str r1, [r0, #8] strh r2, [r0, #0xc] bx lr - arm_func_start FUN_022033EC -FUN_022033EC: ; 0x022033EC + arm_func_start MOD04_022033EC +MOD04_022033EC: ; 0x022033EC strb r1, [r0, #0x15] bx lr - arm_func_start FUN_022033F4 -FUN_022033F4: ; 0x022033F4 + arm_func_start MOD04_022033F4 +MOD04_022033F4: ; 0x022033F4 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r0, #0x24 mov r6, r1 mov r5, r2 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 addeq sp, sp, #8 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} - ldr r0, _02203498 ; =FUN_022034AC - ldr r2, _0220349C ; =FUN_022034D0 + ldr r0, _02203498 ; =MOD04_022034AC + ldr r2, _0220349C ; =MOD04_022034D0 str r0, [sp] mov r0, #8 - ldr r3, _022034A0 ; =FUN_022034C0 + ldr r3, _022034A0 ; =MOD04_022034C0 mov r1, r0 str r2, [sp, #4] mov r2, #4 - bl FUN_021EF62C + bl MOD04_021EF62C str r0, [r4, #0x18] ldr r0, [r4, #0x18] cmp r0, #0 bne _02203464 mov r0, r4 - bl FUN_021DD82C + bl MOD04_021DD82C add sp, sp, #8 mov r0, #0 ldmia sp!, {r4, r5, r6, pc} @@ -49077,17 +49083,17 @@ _02203464: add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} .align 2, 0 -_02203498: .word FUN_022034AC -_0220349C: .word FUN_022034D0 -_022034A0: .word FUN_022034C0 +_02203498: .word MOD04_022034AC +_0220349C: .word MOD04_022034D0 +_022034A0: .word MOD04_022034C0 - arm_func_start FUN_022034A4 -FUN_022034A4: ; 0x022034A4 + arm_func_start MOD04_022034A4 +MOD04_022034A4: ; 0x022034A4 ldr r0, [r0, #0x1c] bx lr - arm_func_start FUN_022034AC -FUN_022034AC: ; 0x022034AC + arm_func_start MOD04_022034AC +MOD04_022034AC: ; 0x022034AC ldr ip, _022034BC ; =0x020E9B38 ldr r0, [r0] ldr r1, [r1] @@ -49095,28 +49101,28 @@ FUN_022034AC: ; 0x022034AC .align 2, 0 _022034BC: .word 0x020E9B38 - arm_func_start FUN_022034C0 -FUN_022034C0: ; 0x022034C0 - ldr ip, _022034CC ; =FUN_022034F4 + arm_func_start MOD04_022034C0 +MOD04_022034C0: ; 0x022034C0 + ldr ip, _022034CC ; =MOD04_022034F4 ldr r0, [r0] bx ip .align 2, 0 -_022034CC: .word FUN_022034F4 +_022034CC: .word MOD04_022034F4 - arm_func_start FUN_022034D0 -FUN_022034D0: ; 0x022034D0 + arm_func_start MOD04_022034D0 +MOD04_022034D0: ; 0x022034D0 stmdb sp!, {r4, lr} mov r4, r0 ldr r1, [r4] mov r0, #0 - bl FUN_022063A8 + bl MOD04_022063A8 ldr r1, [r4, #4] mov r0, #0 - bl FUN_022063A8 + bl MOD04_022063A8 ldmia sp!, {r4, pc} - arm_func_start FUN_022034F4 -FUN_022034F4: ; 0x022034F4 + arm_func_start MOD04_022034F4 +MOD04_022034F4: ; 0x022034F4 stmdb sp!, {lr} sub sp, sp, #4 ldrsb lr, [r0] @@ -49146,8 +49152,8 @@ _02203538: _0220354C: .word 0x0210420C _02203550: .word 0x9CCF9319 - arm_func_start FUN_02203554 -FUN_02203554: ; 0x02203554 + arm_func_start MOD04_02203554 +MOD04_02203554: ; 0x02203554 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x9c mov sl, r1 @@ -49159,7 +49165,7 @@ FUN_02203554: ; 0x02203554 _02203574: mov r0, sl mov r1, sb - bl FUN_02206378 + bl MOD04_02206378 cmp r0, #0 addlt sp, sp, #0x9c ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -49168,7 +49174,7 @@ _02203574: add sl, sl, r0 mov r0, sl mov r1, sb - bl FUN_02206378 + bl MOD04_02206378 cmp r0, #0 addlt sp, sp, #0x9c ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -49177,7 +49183,7 @@ _02203574: add sl, sl, r0 sub sb, sb, r0 mov r0, fp - bl FUN_02203A80 + bl MOD04_02203A80 ldrsb r0, [sl] cmp r0, #0 bne _02203574 @@ -49215,7 +49221,7 @@ _022035F0: _02203648: mov r0, sl mov r1, sb - bl FUN_02206378 + bl MOD04_02206378 cmp r0, #0 addlt sp, sp, #0x9c ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -49242,7 +49248,7 @@ _02203698: _022036A8: mov r0, sl mov r1, sb - bl FUN_02206378 + bl MOD04_02206378 movs r4, r0 addmi sp, sp, #0x9c ldmmiia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -49254,7 +49260,7 @@ _022036A8: mov r0, fp add r1, sp, #0x16 mov r2, sl - bl FUN_02203A80 + bl MOD04_02203A80 mov r0, r5 add sl, sl, r4 sub sb, sb, r4 @@ -49280,14 +49286,14 @@ _02203718: .align 2, 0 _02203734: .word 0x0220F7D4 - arm_func_start FUN_02203738 -FUN_02203738: ; 0x02203738 + arm_func_start MOD04_02203738 +MOD04_02203738: ; 0x02203738 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov sb, r0 add r0, r1, #1 mov r1, #0x5c - bl FUN_022037BC + bl MOD04_022037BC movs r8, r0 addeq sp, sp, #4 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} @@ -49297,21 +49303,21 @@ FUN_02203738: ; 0x02203738 _02203768: mov r0, r6 mov r1, r5 - bl FUN_022037BC + bl MOD04_022037BC movs r7, r0 mov r0, r8 moveq r7, r4 - bl FUN_02203828 + bl MOD04_02203828 cmp r0, #0 beq _0220379C mov r0, sb mov r1, r8 mov r2, r7 - bl FUN_02203A80 + bl MOD04_02203A80 _0220379C: mov r0, r6 mov r1, r5 - bl FUN_022037BC + bl MOD04_022037BC movs r8, r0 bne _02203768 add sp, sp, #4 @@ -49319,8 +49325,8 @@ _0220379C: .align 2, 0 _022037B8: .word 0x0220F7DC - arm_func_start FUN_022037BC -FUN_022037BC: ; 0x022037BC + arm_func_start MOD04_022037BC +MOD04_022037BC: ; 0x022037BC cmp r0, #0 ldrne r2, _02203824 ; =0x02211730 strne r0, [r2] @@ -49353,8 +49359,8 @@ _022037F8: .align 2, 0 _02203824: .word 0x02211730 - arm_func_start FUN_02203828 -FUN_02203828: ; 0x02203828 + arm_func_start MOD04_02203828 +MOD04_02203828: ; 0x02203828 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 ldr r1, _02203884 ; =0x0220BCE0 @@ -49382,18 +49388,18 @@ _02203850: .align 2, 0 _02203884: .word 0x0220BCE0 - arm_func_start FUN_02203888 -FUN_02203888: ; 0x02203888 + arm_func_start MOD04_02203888 +MOD04_02203888: ; 0x02203888 ldr r0, [r0, #0x20] bx lr - arm_func_start FUN_02203890 -FUN_02203890: ; 0x02203890 + arm_func_start MOD04_02203890 +MOD04_02203890: ; 0x02203890 str r1, [r0, #0x20] bx lr - arm_func_start FUN_02203898 -FUN_02203898: ; 0x02203898 + arm_func_start MOD04_02203898 +MOD04_02203898: ; 0x02203898 ldrh r0, [r0, #0xc] mov r1, r0, asr #8 mov r0, r0, lsl #8 @@ -49404,13 +49410,13 @@ FUN_02203898: ; 0x02203898 mov r0, r0, lsr #0x10 bx lr - arm_func_start FUN_022038BC -FUN_022038BC: ; 0x022038BC + arm_func_start MOD04_022038BC +MOD04_022038BC: ; 0x022038BC ldr r0, [r0, #8] bx lr - arm_func_start FUN_022038C4 -FUN_022038C4: ; 0x022038C4 + arm_func_start MOD04_022038C4 +MOD04_022038C4: ; 0x022038C4 ldrb r0, [r0, #0x15] and r0, r0, #2 cmp r0, #2 @@ -49418,13 +49424,13 @@ FUN_022038C4: ; 0x022038C4 movne r0, #0 bx lr - arm_func_start FUN_022038DC -FUN_022038DC: ; 0x022038DC + arm_func_start MOD04_022038DC +MOD04_022038DC: ; 0x022038DC ldrh r0, [r0, #4] bx lr - arm_func_start FUN_022038E4 -FUN_022038E4: ; 0x022038E4 + arm_func_start MOD04_022038E4 +MOD04_022038E4: ; 0x022038E4 ldrh r0, [r0, #4] mov r1, r0, asr #8 mov r0, r0, lsl #8 @@ -49435,19 +49441,19 @@ FUN_022038E4: ; 0x022038E4 mov r0, r0, lsr #0x10 bx lr - arm_func_start FUN_02203908 -FUN_02203908: ; 0x02203908 + arm_func_start MOD04_02203908 +MOD04_02203908: ; 0x02203908 ldr r0, [r0] bx lr - arm_func_start FUN_02203910 -FUN_02203910: ; 0x02203910 + arm_func_start MOD04_02203910 +MOD04_02203910: ; 0x02203910 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r2 mov r2, #0 mov r4, r3 - bl FUN_022039E0 + bl MOD04_022039E0 cmp r0, #0 beq _0220393C bl atod @@ -49459,8 +49465,8 @@ _0220393C: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_0220394C -FUN_0220394C: ; 0x0220394C + arm_func_start MOD04_0220394C +MOD04_0220394C: ; 0x0220394C stmdb sp!, {r4, r5, r6, lr} mov r5, r1 mov r6, r0 @@ -49471,13 +49477,13 @@ FUN_0220394C: ; 0x0220394C cmp r0, #0 bne _0220397C mov r0, r6 - bl FUN_022034A4 + bl MOD04_022034A4 ldmia sp!, {r4, r5, r6, pc} _0220397C: mov r0, r6 mov r1, r5 mov r2, #0 - bl FUN_022039E0 + bl MOD04_022039E0 cmp r0, #0 beq _022039C8 ldrb r2, [r0] @@ -49506,8 +49512,8 @@ _022039D0: _022039D8: .word 0x0220F7E0 _022039DC: .word 0x0210430C - arm_func_start FUN_022039E0 -FUN_022039E0: ; 0x022039E0 + arm_func_start MOD04_022039E0 +MOD04_022039E0: ; 0x022039E0 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 movs r6, r0 @@ -49527,7 +49533,7 @@ _02203A0C: str r5, [sp] ldr r0, [r6, #0x18] add r1, sp, #0 - bl FUN_021EF358 + bl MOD04_021EF358 cmp r0, #0 ldrne r4, [r0, #4] mov r0, r4 @@ -49537,8 +49543,8 @@ _02203A0C: _02203A40: .word 0x0220F7E8 _02203A44: .word 0x0220F7F0 - arm_func_start FUN_02203A48 -FUN_02203A48: ; 0x02203A48 + arm_func_start MOD04_02203A48 +MOD04_02203A48: ; 0x02203A48 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x14 mov r4, r1 @@ -49549,45 +49555,45 @@ FUN_02203A48: ; 0x02203A48 add r2, sp, #0 mov r0, r5 mov r1, r4 - bl FUN_02203A80 + bl MOD04_02203A80 add sp, sp, #0x14 ldmia sp!, {r4, r5, pc} .align 2, 0 _02203A7C: .word 0x0220F7FC - arm_func_start FUN_02203A80 -FUN_02203A80: ; 0x02203A80 + arm_func_start MOD04_02203A80 +MOD04_02203A80: ; 0x02203A80 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc mov r5, r0 mov r4, r2 mov r0, #0 - bl FUN_02206428 + bl MOD04_02206428 str r0, [sp] mov r1, r4 mov r0, #0 - bl FUN_02206428 + bl MOD04_02206428 str r0, [sp, #4] ldr r0, [r5, #0x18] add r1, sp, #0 - bl FUN_021EF494 + bl MOD04_021EF494 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} - arm_func_start FUN_02203AC0 -FUN_02203AC0: ; 0x02203AC0 + arm_func_start MOD04_02203AC0 +MOD04_02203AC0: ; 0x02203AC0 stmdb sp!, {r4, lr} ldr r4, [r0] ldr r0, [r4, #0x18] - bl FUN_021EF5B0 + bl MOD04_021EF5B0 mov r1, #0 mov r0, r4 str r1, [r4, #0x18] - bl FUN_021DD82C + bl MOD04_021DD82C ldmia sp!, {r4, pc} - arm_func_start FUN_02203AE4 -FUN_02203AE4: ; 0x02203AE4 + arm_func_start MOD04_02203AE4 +MOD04_02203AE4: ; 0x02203AE4 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _02203B30 ; =0x02211734 @@ -49595,13 +49601,13 @@ FUN_02203AE4: ; 0x02203AE4 cmp r0, #0 addeq sp, sp, #4 ldmeqia sp!, {pc} - bl FUN_021EF540 + bl MOD04_021EF540 cmp r0, #0 addne sp, sp, #4 ldmneia sp!, {pc} ldr r0, _02203B30 ; =0x02211734 ldr r0, [r0] - bl FUN_021EF5B0 + bl MOD04_021EF5B0 ldr r0, _02203B30 ; =0x02211734 mov r1, #0 str r1, [r0] @@ -49610,23 +49616,23 @@ FUN_02203AE4: ; 0x02203AE4 .align 2, 0 _02203B30: .word 0x02211734 - arm_func_start FUN_02203B34 -FUN_02203B34: ; 0x02203B34 + arm_func_start MOD04_02203B34 +MOD04_02203B34: ; 0x02203B34 stmdb sp!, {lr} sub sp, sp, #0xc ldr r0, _02203B88 ; =0x02211734 ldr r0, [r0] cmp r0, #0 bne _02203B78 - ldr r0, _02203B8C ; =FUN_02203BA8 - ldr ip, _02203B90 ; =FUN_02203B98 + ldr r0, _02203B8C ; =MOD04_02203BA8 + ldr ip, _02203B90 ; =MOD04_02203B98 str r0, [sp] - ldr r3, _02203B94 ; =FUN_02203BBC + ldr r3, _02203B94 ; =MOD04_02203BBC mov r0, #8 mov r1, #0x64 mov r2, #2 str ip, [sp, #4] - bl FUN_021EF62C + bl MOD04_021EF62C ldr r1, _02203B88 ; =0x02211734 str r0, [r1] _02203B78: @@ -49636,20 +49642,20 @@ _02203B78: ldmfd sp!, {pc} .align 2, 0 _02203B88: .word 0x02211734 -_02203B8C: .word FUN_02203BA8 -_02203B90: .word FUN_02203B98 -_02203B94: .word FUN_02203BBC +_02203B8C: .word MOD04_02203BA8 +_02203B90: .word MOD04_02203B98 +_02203B94: .word MOD04_02203BBC - arm_func_start FUN_02203B98 -FUN_02203B98: ; 0x02203B98 - ldr ip, _02203BA4 ; =FUN_021DD82C + arm_func_start MOD04_02203B98 +MOD04_02203B98: ; 0x02203B98 + ldr ip, _02203BA4 ; =MOD04_021DD82C ldr r0, [r0] bx ip .align 2, 0 -_02203BA4: .word FUN_021DD82C +_02203BA4: .word MOD04_021DD82C - arm_func_start FUN_02203BA8 -FUN_02203BA8: ; 0x02203BA8 + arm_func_start MOD04_02203BA8 +MOD04_02203BA8: ; 0x02203BA8 ldr ip, _02203BB8 ; =0x020E9B38 ldr r0, [r0] ldr r1, [r1] @@ -49657,93 +49663,93 @@ FUN_02203BA8: ; 0x02203BA8 .align 2, 0 _02203BB8: .word 0x020E9B38 - arm_func_start FUN_02203BBC -FUN_02203BBC: ; 0x02203BBC - ldr ip, _02203BC8 ; =FUN_022034F4 + arm_func_start MOD04_02203BBC +MOD04_02203BBC: ; 0x02203BBC + ldr ip, _02203BC8 ; =MOD04_022034F4 ldr r0, [r0] bx ip .align 2, 0 -_02203BC8: .word FUN_022034F4 +_02203BC8: .word MOD04_022034F4 - arm_func_start FUN_02203BCC -FUN_02203BCC: ; 0x02203BCC + arm_func_start MOD04_02203BCC +MOD04_02203BCC: ; 0x02203BCC ldr r0, [r0, #0x4ec] bx lr - arm_func_start FUN_02203BD4 -FUN_02203BD4: ; 0x02203BD4 - ldr ip, _02203BE0 ; =FUN_02206740 + arm_func_start MOD04_02203BD4 +MOD04_02203BD4: ; 0x02203BD4 + ldr ip, _02203BE0 ; =MOD04_02206740 add r0, r0, #0x4c bx ip .align 2, 0 -_02203BE0: .word FUN_02206740 +_02203BE0: .word MOD04_02206740 - arm_func_start FUN_02203BE4 -FUN_02203BE4: ; 0x02203BE4 + arm_func_start MOD04_02203BE4 +MOD04_02203BE4: ; 0x02203BE4 ldr ip, _02203BF0 ; =0x0220658C add r0, r0, #0x4c bx ip .align 2, 0 _02203BF0: .word 0x0220658C - arm_func_start FUN_02203BF4 -FUN_02203BF4: ; 0x02203BF4 - ldr ip, _02203C00 ; =FUN_02206570 + arm_func_start MOD04_02203BF4 +MOD04_02203BF4: ; 0x02203BF4 + ldr ip, _02203C00 ; =MOD04_02206570 add r0, r0, #0x4c bx ip .align 2, 0 -_02203C00: .word FUN_02206570 +_02203C00: .word MOD04_02206570 - arm_func_start FUN_02203C04 -FUN_02203C04: ; 0x02203C04 + arm_func_start MOD04_02203C04 +MOD04_02203C04: ; 0x02203C04 stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_02203C1C + bl MOD04_02203C1C add r0, r4, #0x4c - bl FUN_022064BC + bl MOD04_022064BC ldmia sp!, {r4, pc} - arm_func_start FUN_02203C1C -FUN_02203C1C: ; 0x02203C1C + arm_func_start MOD04_02203C1C +MOD04_02203C1C: ; 0x02203C1C stmdb sp!, {r4, lr} mov r4, r0 add r0, r4, #0x4c - bl FUN_02205994 + bl MOD04_02205994 mov r0, r4 - bl FUN_02203024 + bl MOD04_02203024 ldmia sp!, {r4, pc} - arm_func_start FUN_02203C38 -FUN_02203C38: ; 0x02203C38 + arm_func_start MOD04_02203C38 +MOD04_02203C38: ; 0x02203C38 stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_02202AD4 + bl MOD04_02202AD4 add r0, r4, #0x4c - bl FUN_022041FC + bl MOD04_022041FC ldmia sp!, {r4, pc} - arm_func_start FUN_02203C50 -FUN_02203C50: ; 0x02203C50 + arm_func_start MOD04_02203C50 +MOD04_02203C50: ; 0x02203C50 stmdb sp!, {r4, lr} mov r4, r0 add r0, r4, #0x4c - bl FUN_022066A4 + bl MOD04_022066A4 mov r1, r0 mvn r0, #0 cmp r1, r0 ldmeqia sp!, {r4, pc} add r0, r4, #0x4c - bl FUN_0220659C + bl MOD04_0220659C ldmia sp!, {r4, pc} - arm_func_start FUN_02203C7C -FUN_02203C7C: ; 0x02203C7C + arm_func_start MOD04_02203C7C +MOD04_02203C7C: ; 0x02203C7C stmdb sp!, {r4, r5, r6, lr} mov r5, r0 mov r6, r2 mov r0, r1 mov r4, r3 - bl FUN_021EFB38 + bl MOD04_021EFB38 mov r3, r6, asr #8 mov r2, r6, lsl #8 mov r1, r0 @@ -49754,18 +49760,18 @@ FUN_02203C7C: ; 0x02203C7C mov r3, r4 add r0, r5, #0x4c mov r2, r2, lsr #0x10 - bl FUN_02204380 + bl MOD04_02204380 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_02203CC4 -FUN_02203CC4: ; 0x02203CC4 + arm_func_start MOD04_02203CC4 +MOD04_02203CC4: ; 0x02203CC4 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r5, r0 mov r6, r2 mov r0, r1 mov r4, r3 - bl FUN_021EFB38 + bl MOD04_021EFB38 mov r3, r6, asr #8 mov r2, r6, lsl #8 ldr ip, [sp, #0x18] @@ -49778,12 +49784,12 @@ FUN_02203CC4: ; 0x02203CC4 mov r3, r4 add r0, r5, #0x4c mov r2, r2, lsr #0x10 - bl FUN_02204438 + bl MOD04_02204438 add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_02203D1C -FUN_02203D1C: ; 0x02203D1C + arm_func_start MOD04_02203D1C +MOD04_02203D1C: ; 0x02203D1C stmdb sp!, {lr} sub sp, sp, #0x14 ldr lr, [sp, #0x18] @@ -49794,12 +49800,12 @@ FUN_02203D1C: ; 0x02203D1C ldr ip, [sp, #0x20] str lr, [sp, #8] str ip, [sp, #0xc] - bl FUN_02203D50 + bl MOD04_02203D50 add sp, sp, #0x14 ldmfd sp!, {pc} - arm_func_start FUN_02203D50 -FUN_02203D50: ; 0x02203D50 + arm_func_start MOD04_02203D50 +MOD04_02203D50: ; 0x02203D50 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x10c ldr r8, [sp, #0x130] @@ -49841,7 +49847,7 @@ _02203DA8: add r7, r7, r0 ldrb r1, [r4] mov r0, sl - bl FUN_02202AB8 + bl MOD04_02202AB8 add r6, r6, #1 cmp r6, r8 blt _02203DA8 @@ -49852,7 +49858,7 @@ _02203DFC: add r1, sp, #8 add r0, sl, #0x4c str r4, [sp] - bl FUN_02205AB4 + bl MOD04_02205AB4 cmp r0, #0 addne sp, sp, #0x10c ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -49864,9 +49870,9 @@ _02203DFC: b _02203E4C _02203E3C: mov r0, r4 - bl FUN_021F0250 + bl MOD04_021F0250 mov r0, sl - bl FUN_02203C38 + bl MOD04_02203C38 _02203E4C: ldr r1, [sl, #0x4c] cmp r1, #3 @@ -49883,20 +49889,20 @@ _02203E4C: _02203E78: .word 0x0220F3A8 _02203E7C: .word 0x0220F800 - arm_func_start FUN_02203E80 -FUN_02203E80: ; 0x02203E80 + arm_func_start MOD04_02203E80 +MOD04_02203E80: ; 0x02203E80 stmdb sp!, {r4, lr} mov r4, r0 add r0, r4, #0x4c - bl FUN_0220595C + bl MOD04_0220595C mov r0, r4 - bl FUN_02202FF8 + bl MOD04_02202FF8 mov r0, r4 - bl FUN_021DD82C + bl MOD04_021DD82C ldmia sp!, {r4, pc} - arm_func_start FUN_02203EA4 -FUN_02203EA4: ; 0x02203EA4 + arm_func_start MOD04_02203EA4 +MOD04_02203EA4: ; 0x02203EA4 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x10 ldr r4, [sp, #0x30] @@ -49914,7 +49920,7 @@ FUN_02203EA4: ; 0x02203EA4 ldmneia sp!, {r4, r5, r6, r7, r8, pc} _02203EE0: ldr r0, _02203F6C ; =0x00000638 - bl FUN_021DD860 + bl MOD04_021DD860 movs r4, r0 addeq sp, sp, #0x10 moveq r0, #0 @@ -49927,7 +49933,7 @@ _02203EE0: str r0, [r4, #0x624] ldr r1, [sp, #0x30] str r5, [sp] - ldr r0, _02203F70 ; =FUN_02204028 + ldr r0, _02203F70 ; =MOD04_02204028 str r1, [sp, #4] str r0, [sp, #8] mov r1, r8 @@ -49935,26 +49941,26 @@ _02203EE0: mov r3, r6 add r0, r4, #0x4c str r4, [sp, #0xc] - bl FUN_02206248 - ldr r0, _02203F74 ; =FUN_02203F78 + bl MOD04_02206248 + ldr r0, _02203F74 ; =MOD04_02203F78 ldr r1, [sp, #0x28] str r0, [sp] ldr r2, [sp, #0x2c] ldr r3, [sp, #0x30] mov r0, r4 str r4, [sp, #4] - bl FUN_02203048 + bl MOD04_02203048 mov r0, r4 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _02203F68: .word 0x02210E5C _02203F6C: .word 0x00000638 -_02203F70: .word FUN_02204028 -_02203F74: .word FUN_02203F78 +_02203F70: .word MOD04_02204028 +_02203F74: .word MOD04_02203F78 - arm_func_start FUN_02203F78 -FUN_02203F78: ; 0x02203F78 + arm_func_start MOD04_02203F78 +MOD04_02203F78: ; 0x02203F78 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r2 @@ -50004,8 +50010,8 @@ _02203FE8: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_02204028 -FUN_02204028: ; 0x02204028 + arm_func_start MOD04_02204028 +MOD04_02204028: ; 0x02204028 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r2 @@ -50059,7 +50065,7 @@ _022040D4: mov r0, r4 mov r1, r5 mov r2, #0 - bl FUN_02202F68 + bl MOD04_02202F68 b _022041C8 _022040E8: ldrb r0, [r5, #0x14] @@ -50084,7 +50090,7 @@ _02204124: beq _0220413C mov r0, r4 mov r1, r5 - bl FUN_02202A80 + bl MOD04_02202A80 _0220413C: ldr r3, [r4, #0x634] ldr ip, [r4, #0x630] @@ -50097,10 +50103,10 @@ _02204158: ldr r1, [r4, #0x620] cmp r1, #0 beq _02204168 - bl FUN_02205994 + bl MOD04_02205994 _02204168: ldr r0, [r6, #4] - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 beq _02204184 ldr r0, [r4, #0x10] @@ -50125,7 +50131,7 @@ _022041A0: _022041BC: ldr r1, [r4, #0x4ec] mov r0, r4 - bl FUN_02203040 + bl MOD04_02203040 _022041C8: cmp r5, #0 ldmeqia sp!, {r4, r5, r6, pc} @@ -50141,11 +50147,11 @@ _022041C8: streq r0, [r4, #0x628] ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_022041FC -FUN_022041FC: ; 0x022041FC + arm_func_start MOD04_022041FC +MOD04_022041FC: ; 0x022041FC stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_02206514 + bl MOD04_02206514 ldr r0, [r4] cmp r0, #3 addls pc, pc, r0, lsl #2 @@ -50157,18 +50163,18 @@ _02204218: ; jump table b _02204228 ; case 3 _02204228: mov r0, r4 - bl FUN_02204560 + bl MOD04_02204560 ldmia sp!, {r4, pc} _02204234: mov r0, r4 - bl FUN_02204248 + bl MOD04_02204248 ldmia sp!, {r4, pc} _02204240: mov r0, #0 ldmia sp!, {r4, pc} - arm_func_start FUN_02204248 -FUN_02204248: ; 0x02204248 + arm_func_start MOD04_02204248 +MOD04_02204248: ; 0x02204248 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} ldr ip, _02204374 ; =0x000005F4 sub sp, sp, ip @@ -50176,7 +50182,7 @@ FUN_02204248: ; 0x02204248 mov sl, r0 str r1, [sp, #0x10] ldr r0, [sl, #0x4b0] - bl FUN_021EFF2C + bl MOD04_021EFF2C cmp r0, #0 beq _0220431C add sb, sp, #8 @@ -50192,22 +50198,22 @@ _02204288: ldr r2, _02204378 ; =0x000005DB mov r1, fp mov r3, r7 - bl FUN_021EFC40 + bl MOD04_021EFC40 mvn r1, #0 cmp r0, r1 beq _0220430C ldrh r2, [sp, #0xa] ldr r1, [sp, #0xc] mov r0, sl - bl FUN_02206628 + bl MOD04_02206628 cmp r0, r4 bne _0220430C ldrh r2, [sp, #0xa] ldr r1, [sp, #0xc] mov r0, sl - bl FUN_022033F4 + bl MOD04_022033F4 mov r6, r0 - bl FUN_022033AC + bl MOD04_022033AC cmp r0, #0 ldrne ip, _02204374 ; =0x000005F4 movne r0, #5 @@ -50215,23 +50221,23 @@ _02204288: ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} mov r0, r6 mov r1, r5 - bl FUN_022033EC + bl MOD04_022033EC mov r0, sl mov r1, r6 - bl FUN_02206704 + bl MOD04_02206704 _0220430C: ldr r0, [sl, #0x4b0] - bl FUN_021EFF2C + bl MOD04_021EFF2C cmp r0, #0 bne _02204288 _0220431C: - bl FUN_021F025C + bl MOD04_021F025C ldr r1, [sl, #0x4b4] sub r0, r0, r1 cmp r0, #0x7d0 bls _02204364 ldr r0, [sl, #0x4b0] - bl FUN_021EFD9C + bl MOD04_021EFD9C mvn r0, #0 str r0, [sl, #0x4b0] mov r0, #1 @@ -50253,8 +50259,8 @@ _02204374: .word 0x000005F4 _02204378: .word 0x000005DB _0220437C: .word 0x02211738 - arm_func_start FUN_02204380 -FUN_02204380: ; 0x02204380 + arm_func_start MOD04_02204380 +MOD04_02204380: ; 0x02204380 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0x10 @@ -50296,14 +50302,14 @@ FUN_02204380: ; 0x02204380 strb r6, [r7, #2] strb r5, [r7, #3] str r4, [sp] - bl FUN_02204438 + bl MOD04_02204438 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, lr} add sp, sp, #0x10 bx lr - arm_func_start FUN_02204438 -FUN_02204438: ; 0x02204438 + arm_func_start MOD04_02204438 +MOD04_02204438: ; 0x02204438 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #0x18 @@ -50316,7 +50322,7 @@ FUN_02204438: ; 0x02204438 mov r2, r1 mov r3, #2 str r1, [sp] - bl FUN_02205AB4 + bl MOD04_02205AB4 _0220446C: ldr r0, [r5] cmp r0, #1 @@ -50361,7 +50367,7 @@ _0220446C: mov r2, #9 strb ip, [lr] strb r3, [lr, #1] - bl FUN_02205D28 + bl MOD04_02205D28 cmp r0, #0 addne sp, sp, #0x18 ldmneia sp!, {r4, r5, r6, lr} @@ -50371,7 +50377,7 @@ _0220446C: ldr r2, [sp, #0x38] mov r1, r4 mov r3, #0 - bl FUN_021EFC24 + bl MOD04_021EFC24 cmp r0, #0 movlt r0, #3 movge r0, #0 @@ -50380,12 +50386,12 @@ _0220446C: add sp, sp, #0x10 bx lr - arm_func_start FUN_02204560 -FUN_02204560: ; 0x02204560 + arm_func_start MOD04_02204560 +MOD04_02204560: ; 0x02204560 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, [r6, #0x4b0] - bl FUN_021EFF2C + bl MOD04_021EFF2C cmp r0, #0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, pc} @@ -50395,12 +50401,12 @@ FUN_02204560: ; 0x02204560 add r1, r1, r4 rsb r2, r4, #0x1000 mov r3, #0 - bl FUN_021EFC78 + bl MOD04_021EFC78 add r1, r0, #1 cmp r1, #1 bhi _022045B4 mov r0, r6 - bl FUN_02206184 + bl MOD04_02206184 mov r0, #3 ldmia sp!, {r4, r5, r6, pc} _022045B4: @@ -50421,13 +50427,13 @@ _022045DC: add r1, r1, r4 add r0, r6, r0 sub r2, r2, r4 - bl FUN_0220279C + bl MOD04_0220279C _022045F8: ldr r0, [r6] cmp r0, #3 bne _02204610 mov r0, r6 - bl FUN_02204DF0 + bl MOD04_02204DF0 mov r5, r0 _02204610: cmp r5, #0 @@ -50440,7 +50446,7 @@ _02204610: cmp r0, #0 ble _02204640 mov r0, r6 - bl FUN_0220464C + bl MOD04_0220464C ldmia sp!, {r4, r5, r6, pc} _02204640: mov r0, #0 @@ -50448,8 +50454,8 @@ _02204640: .align 2, 0 _02204648: .word 0x000004BC - arm_func_start FUN_0220464C -FUN_0220464C: ; 0x0220464C + arm_func_start MOD04_0220464C +MOD04_0220464C: ; 0x0220464C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 mov sb, r0 @@ -50502,20 +50508,20 @@ _02204704: mov r0, sb add r1, r1, #3 sub r2, r2, #3 - bl FUN_02204D10 + bl MOD04_02204D10 mov r8, r0 b _02204798 _0220471C: mov r0, sb add r1, r1, #3 sub r2, r2, #3 - bl FUN_02204828 + bl MOD04_02204828 mov r8, r0 b _02204798 _02204734: ldr r0, [sb, #0x4b0] mov r3, r6 - bl FUN_021EFC24 + bl MOD04_021EFC24 cmp r0, #0 bgt _02204798 add sp, sp, #4 @@ -50525,21 +50531,21 @@ _02204754: mov r0, sb add r1, r1, #3 sub r2, r2, #3 - bl FUN_02204920 + bl MOD04_02204920 mov r8, r0 b _02204798 _0220476C: mov r0, sb add r1, r1, #3 sub r2, r2, #3 - bl FUN_022049B0 + bl MOD04_022049B0 mov r8, r0 b _02204798 _02204784: mov r0, sb add r1, r1, #3 sub r2, r2, #3 - bl FUN_02204B40 + bl MOD04_02204B40 mov r8, r0 _02204798: ldrh r0, [sp] @@ -50574,7 +50580,7 @@ _02204800: cmp r8, #0 beq _02204810 mov r0, sb - bl FUN_02206184 + bl MOD04_02206184 _02204810: mov r0, r8 add sp, sp, #4 @@ -50584,8 +50590,8 @@ _0220481C: .word 0x0220F818 _02204820: .word 0x0220F830 _02204824: .word 0x000005B4 - arm_func_start FUN_02204828 -FUN_02204828: ; 0x02204828 + arm_func_start MOD04_02204828 +MOD04_02204828: ; 0x02204828 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x10 mov r6, r2 @@ -50598,11 +50604,11 @@ FUN_02204828: ; 0x02204828 add r4, sp, #4 add r3, sp, #8 str r4, [sp] - bl FUN_02205650 + bl MOD04_02205650 ldrh r2, [sp, #4] ldr r1, [sp, #8] mov r0, r8 - bl FUN_02206628 + bl MOD04_02206628 mov r4, r0 mvn r0, #0 cmp r4, r0 @@ -50610,9 +50616,9 @@ FUN_02204828: ; 0x02204828 ldrh r2, [sp, #4] ldr r1, [sp, #8] mov r0, r8 - bl FUN_022033F4 + bl MOD04_022033F4 mov r5, r0 - bl FUN_022033AC + bl MOD04_022033AC cmp r0, #0 beq _022048B8 add sp, sp, #0x10 @@ -50621,7 +50627,7 @@ FUN_02204828: ; 0x02204828 _022048A8: mov r0, r8 mov r1, r4 - bl FUN_02206570 + bl MOD04_02206570 mov r5, r0 _022048B8: mov ip, #0 @@ -50630,7 +50636,7 @@ _022048B8: mov r2, r7 mov r3, r6 str ip, [sp] - bl FUN_02205378 + bl MOD04_02205378 cmp r0, #0 addlt sp, sp, #0x10 movlt r0, #4 @@ -50640,7 +50646,7 @@ _022048B8: bne _022048FC mov r0, r8 mov r1, r5 - bl FUN_02206704 + bl MOD04_02206704 _022048FC: ldr r3, [r8, #0x494] ldr r4, [r8, #0x488] @@ -50652,8 +50658,8 @@ _022048FC: add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, pc} - arm_func_start FUN_02204920 -FUN_02204920: ; 0x02204920 + arm_func_start MOD04_02204920 +MOD04_02204920: ; 0x02204920 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc cmp r2, #6 @@ -50678,7 +50684,7 @@ FUN_02204920: ; 0x02204920 strb r1, [ip, #1] ldrh r2, [sp] ldr r1, [sp, #4] - bl FUN_02206628 + bl MOD04_02206628 mov r1, r0 mvn r0, #0 cmp r1, r0 @@ -50686,13 +50692,13 @@ FUN_02204920: ; 0x02204920 moveq r0, #0 ldmeqia sp!, {r4, r5, pc} mov r0, r4 - bl FUN_0220659C + bl MOD04_0220659C mov r0, #0 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} - arm_func_start FUN_022049B0 -FUN_022049B0: ; 0x022049B0 + arm_func_start MOD04_022049B0 +MOD04_022049B0: ; 0x022049B0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x54 mov r8, r2 @@ -50719,7 +50725,7 @@ FUN_022049B0: ; 0x022049B0 strb r1, [r3, #1] ldrh r2, [sp, #8] ldr r1, [sp, #0x10] - bl FUN_02206628 + bl MOD04_02206628 mov r1, r0 mvn r0, #0 cmp r1, r0 @@ -50727,7 +50733,7 @@ FUN_022049B0: ; 0x022049B0 moveq r0, #0 ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} mov r0, sl - bl FUN_02206570 + bl MOD04_02206570 add r3, sb, #6 ldrb r2, [sb, #6] ldrb r1, [r3, #1] @@ -50764,7 +50770,7 @@ _02204AB8: blt _02204AFC mov r0, sb mov r1, r8 - bl FUN_02206378 + bl MOD04_02206378 cmp r0, r4 addeq sp, sp, #0x54 moveq r0, #4 @@ -50797,8 +50803,8 @@ _02204AFC: add sp, sp, #0x54 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_02204B40 -FUN_02204B40: ; 0x02204B40 + arm_func_start MOD04_02204B40 +MOD04_02204B40: ; 0x02204B40 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x24 mov r7, r2 @@ -50824,7 +50830,7 @@ _02204B94: mov r0, r8 mov r1, r7 mov fp, r8 - bl FUN_02206378 + bl MOD04_02206378 mvn r1, #0 cmp r0, r1 addeq sp, sp, #0x24 @@ -50876,7 +50882,7 @@ _02204B94: orr r2, r3, r2 orr r2, sl, r2 str r2, [sp, #0x1c] - bl FUN_02206378 + bl MOD04_02206378 mov sl, r0 mvn r0, #0 cmp sl, r0 @@ -50919,8 +50925,8 @@ _02204D04: add sp, sp, #0x24 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_02204D10 -FUN_02204D10: ; 0x02204D10 + arm_func_start MOD04_02204D10 +MOD04_02204D10: ; 0x02204D10 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc mov sl, r0 @@ -50931,12 +50937,12 @@ FUN_02204D10: ; 0x02204D10 sub r8, r8, #1 ldrb r6, [sb], #1 beq _02204D3C - bl FUN_022059F8 + bl MOD04_022059F8 _02204D3C: mov r1, r6 mov r0, #8 mov r2, #0 - bl FUN_021EF0E4 + bl MOD04_021EF0E4 str r0, [sl, #8] ldr r0, [sl, #8] cmp r0, #0 @@ -50955,7 +50961,7 @@ _02204D78: ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} add r0, sb, #1 sub r1, r8, #1 - bl FUN_02206378 + bl MOD04_02206378 mov r5, r0 cmp r5, r4 addeq sp, sp, #0xc @@ -50965,11 +50971,11 @@ _02204D78: mov r0, sl add r1, sb, #1 str r2, [sp, #4] - bl FUN_02206428 + bl MOD04_02206428 str r0, [sp] ldr r0, [sl, #8] mov r1, fp - bl FUN_021EEFA8 + bl MOD04_021EEFA8 add r0, r5, #1 add r7, r7, #1 cmp r7, r6 @@ -50981,8 +50987,8 @@ _02204DE4: add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_02204DF0 -FUN_02204DF0: ; 0x02204DF0 + arm_func_start MOD04_02204DF0 +MOD04_02204DF0: ; 0x02204DF0 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0xc mov r8, r0 @@ -51013,7 +51019,7 @@ _02204E28: cmp r6, r4 blt _022051D0 add r1, r7, r3 - bl FUN_022058B0 + bl MOD04_022058B0 ldr r0, _02205224 ; =0x000004BC add r7, r7, r4 sub r6, r6, r4 @@ -51022,7 +51028,7 @@ _02204E28: mov r2, r6 add r0, r8, r0 str r3, [r8, #0x5c8] - bl FUN_0220279C + bl MOD04_0220279C _02204E88: cmp r6, #6 blt _022051D0 @@ -51056,13 +51062,13 @@ _02204E88: bne _02204F4C add r0, r7, #6 sub r1, r6, #6 - bl FUN_02206378 + bl MOD04_02206378 mvn r1, #0 cmp r0, r1 beq _022051D0 mov r0, r8 add r1, r7, #6 - bl FUN_02205240 + bl MOD04_02205240 ldr r0, _02205228 ; =0x02211738 ldr r3, [r8, #0x494] ldr r2, [r0] @@ -51107,7 +51113,7 @@ _02204F98: mov r2, #0 str r1, [r8, #0x484] ldr r1, [r8, #0x484] - bl FUN_021EF0E4 + bl MOD04_021EF0E4 str r0, [r8, #8] ldr r0, [r8, #8] cmp r0, #0 @@ -51118,7 +51124,7 @@ _02204F98: sub r6, r6, #1 _02204FE8: ldr r0, [r8, #8] - bl FUN_021EF06C + bl MOD04_021EF06C ldr r1, [r8, #0x484] cmp r1, r0 ble _02205068 @@ -51129,7 +51135,7 @@ _02205004: blt _02205068 add r0, r7, #1 sub r1, r6, #1 - bl FUN_02206378 + bl MOD04_02206378 mov sb, r0 cmp sb, r4 beq _02205068 @@ -51137,22 +51143,22 @@ _02205004: mov r0, r8 add r1, r7, #1 str r2, [sp, #4] - bl FUN_02206428 + bl MOD04_02206428 str r0, [sp] ldr r0, [r8, #8] mov r1, r5 - bl FUN_021EEFA8 + bl MOD04_021EEFA8 add r1, sb, #1 ldr r0, [r8, #8] add r7, r7, r1 sub r6, r6, r1 - bl FUN_021EF06C + bl MOD04_021EF06C ldr r1, [r8, #0x484] cmp r1, r0 bgt _02205004 _02205068: ldr r0, [r8, #8] - bl FUN_021EF06C + bl MOD04_021EF06C ldr r1, [r8, #0x484] cmp r1, r0 bgt _022051D0 @@ -51183,13 +51189,13 @@ _022050BC: _022050D4: mov r0, r7 mov r1, r6 - bl FUN_02206378 + bl MOD04_02206378 mov r5, r0 cmp r5, sb beq _02205128 mov r0, r8 mov r1, r7 - bl FUN_02206428 + bl MOD04_02206428 ldr r1, [r4] ldr r2, [r8, #0x480] add r1, r1, #1 @@ -51219,7 +51225,7 @@ _02205154: mov r0, r8 mov r1, r7 mov r2, r6 - bl FUN_02205248 + bl MOD04_02205248 cmp r0, r5 addeq sp, sp, #0xc moveq r0, #5 @@ -51281,13 +51287,13 @@ _02205234: .word 0x0220F840 _02205238: .word 0x0220F830 _0220523C: .word 0x000004AF - arm_func_start FUN_02205240 -FUN_02205240: ; 0x02205240 + arm_func_start MOD04_02205240 +MOD04_02205240: ; 0x02205240 str r1, [r0, #0x4ac] bx lr - arm_func_start FUN_02205248 -FUN_02205248: ; 0x02205248 + arm_func_start MOD04_02205248 +MOD04_02205248: ; 0x02205248 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x10 mov r4, r2 @@ -51299,7 +51305,7 @@ FUN_02205248: ; 0x02205248 ldmltia sp!, {r4, r5, r6, r7, r8, pc} ldrb r7, [r5] mov r0, r7 - bl FUN_02205884 + bl MOD04_02205884 mov r8, r0 cmp r4, r8 addlt sp, sp, #0x10 @@ -51310,7 +51316,7 @@ FUN_02205248: ; 0x02205248 mov r0, r6 add r1, r5, r8 sub r2, r4, r8 - bl FUN_022056DC + bl MOD04_022056DC cmp r0, #0 addeq sp, sp, #0x10 moveq r0, #0 @@ -51320,7 +51326,7 @@ _022052B4: beq _022052D8 add r0, r5, r8 sub r1, r4, r8 - bl FUN_022057EC + bl MOD04_022057EC cmp r0, #0 addeq sp, sp, #0x10 moveq r0, #0 @@ -51340,13 +51346,13 @@ _022052D8: mov r1, r5 mov r2, r4 str r7, [sp] - bl FUN_02205650 + bl MOD04_02205650 ldrh r2, [sp, #4] ldr r1, [sp, #8] mov r0, r6 - bl FUN_022033F4 + bl MOD04_022033F4 mov r7, r0 - bl FUN_022033AC + bl MOD04_022033AC cmp r0, #0 addne sp, sp, #0x10 mvnne r0, #1 @@ -51357,19 +51363,19 @@ _022052D8: mov r2, r5 mov r3, r4 str ip, [sp] - bl FUN_02205378 + bl MOD04_02205378 mov r4, r0 mov r0, r6 mov r1, r7 - bl FUN_02206704 + bl MOD04_02206704 mov r0, r4 add sp, sp, #0x10 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _02205374: .word 0x0220F84C - arm_func_start FUN_02205378 -FUN_02205378: ; 0x02205378 + arm_func_start MOD04_02205378 +MOD04_02205378: ; 0x02205378 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x14 mov r8, r2 @@ -51382,7 +51388,7 @@ FUN_02205378: ; 0x02205378 mov r1, r2 str r7, [sp] ldr r6, [sp, #0x38] - bl FUN_022033EC + bl MOD04_022033EC ldr r0, [sp, #4] add r8, r8, #5 ands r0, r0, #0x10 @@ -51423,7 +51429,7 @@ _02205438: ldrh r2, [sp, #0xa] ldr r1, [sp, #0xc] mov r0, sb - bl FUN_022033E0 + bl MOD04_022033E0 ldr r0, [sp, #4] ands r0, r0, #8 beq _0220548C @@ -51440,13 +51446,13 @@ _02205438: strb r2, [r3, #2] strb r1, [r3, #3] ldr r1, [sp, #0xc] - bl FUN_022033D8 + bl MOD04_022033D8 _0220548C: ldr r0, [sp, #4] ands r0, r0, #0x40 beq _022055C4 ldr r0, [sl, #8] - bl FUN_021EF06C + bl MOD04_021EF06C mov r5, r0 cmp r5, #0 mov r4, #0 @@ -51455,7 +51461,7 @@ _0220548C: _022054B4: ldr r0, [sl, #8] mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC mov r1, r0 ldr r0, [r1, #4] cmp r0, #0 @@ -51469,7 +51475,7 @@ _022054E4: ldrb r2, [r8] ldr r1, [r1] mov r0, sb - bl FUN_02203A48 + bl MOD04_02203A48 add r8, r8, #1 sub r7, r7, #1 b _022055A0 @@ -51489,7 +51495,7 @@ _02205500: orr r2, r2, r3 mov r2, r2, lsl #0x10 mov r2, r2, lsr #0x10 - bl FUN_02203A48 + bl MOD04_02203A48 add r8, r8, #2 sub r7, r7, #2 b _022055A0 @@ -51503,7 +51509,7 @@ _0220554C: ldr r1, [r1] mov r0, sb mov r2, r8 - bl FUN_02203A80 + bl MOD04_02203A80 mov r0, r8 bl strlen add r0, r0, #1 @@ -51515,18 +51521,18 @@ _0220558C: ldr r1, [r1] ldr r2, [r0, #0x84] mov r0, sb - bl FUN_02203A80 + bl MOD04_02203A80 _022055A0: add r4, r4, #1 cmp r4, r5 blt _022054B4 _022055AC: mov r0, sb - bl FUN_022033C8 + bl MOD04_022033C8 orr r1, r0, #1 mov r0, sb and r1, r1, #0xff - bl FUN_022033D0 + bl MOD04_022033D0 _022055C4: ldr r0, [sp, #4] ands r0, r0, #0x80 @@ -51542,7 +51548,7 @@ _022055D4: mov r1, r4 mov r2, r8 sub r7, r7, r3 - bl FUN_02203A80 + bl MOD04_02203A80 mov r0, r8 bl strlen add r0, r0, #1 @@ -51557,19 +51563,19 @@ _02205610: _02205624: mov r0, sb sub r7, r7, #1 - bl FUN_022033C8 + bl MOD04_022033C8 orr r1, r0, #2 mov r0, sb and r1, r1, #0xff - bl FUN_022033D0 + bl MOD04_022033D0 _02205640: ldr r0, [sp] sub r0, r0, r7 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_02205650 -FUN_02205650: ; 0x02205650 + arm_func_start MOD04_02205650 +MOD04_02205650: ; 0x02205650 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 cmp r2, #5 @@ -51607,15 +51613,15 @@ _022056C4: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_022056DC -FUN_022056DC: ; 0x022056DC + arm_func_start MOD04_022056DC +MOD04_022056DC: ; 0x022056DC stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov r8, r0 ldr r0, [r8, #8] mov r7, r1 mov r6, r2 - bl FUN_021EF06C + bl MOD04_021EF06C mov r5, r0 cmp r5, #0 mov r4, #0 @@ -51624,7 +51630,7 @@ FUN_022056DC: ; 0x022056DC _0220570C: ldr r0, [r8, #8] mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r0, [r0, #4] cmp r0, #0 beq _02205750 @@ -51652,7 +51658,7 @@ _02205750: bne _022057B8 mov r0, r7 mov r1, r6 - bl FUN_02206378 + bl MOD04_02206378 cmp r0, sb addeq sp, sp, #4 moveq r0, #0 @@ -51686,8 +51692,8 @@ _022057E0: .word 0x0220F854 _022057E4: .word 0x0220F830 _022057E8: .word 0x00000317 - arm_func_start FUN_022057EC -FUN_022057EC: ; 0x022057EC + arm_func_start MOD04_022057EC +MOD04_022057EC: ; 0x022057EC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -51696,7 +51702,7 @@ FUN_022057EC: ; 0x022057EC _02205800: mov r0, r5 mov r1, r4 - bl FUN_02206378 + bl MOD04_02206378 cmp r0, #0 addlt sp, sp, #4 movlt r0, #0 @@ -51705,7 +51711,7 @@ _02205800: add r5, r5, r0 mov r0, r5 mov r1, r4 - bl FUN_02206378 + bl MOD04_02206378 cmp r0, #0 addlt sp, sp, #4 movlt r0, #0 @@ -51730,8 +51736,8 @@ _0220585C: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_02205884 -FUN_02205884: ; 0x02205884 + arm_func_start MOD04_02205884 +MOD04_02205884: ; 0x02205884 mov r2, #5 ands r1, r0, #2 addne r2, r2, #4 @@ -51744,8 +51750,8 @@ FUN_02205884: ; 0x02205884 mov r0, r2 bx lr - arm_func_start FUN_022058B0 -FUN_022058B0: ; 0x022058B0 + arm_func_start MOD04_022058B0 +MOD04_022058B0: ; 0x022058B0 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov sb, r0 @@ -51787,38 +51793,38 @@ _0220593C: add r1, sb, #0x74 add r0, sb, r0 mov r2, #8 - bl FUN_022028B0 + bl MOD04_022028B0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} .align 2, 0 _02205958: .word 0x000004BC - arm_func_start FUN_0220595C -FUN_0220595C: ; 0x0220595C + arm_func_start MOD04_0220595C +MOD04_0220595C: ; 0x0220595C stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_02205994 + bl MOD04_02205994 mov r0, r4 - bl FUN_022064BC + bl MOD04_022064BC mov r0, r4 - bl FUN_02203AE4 + bl MOD04_02203AE4 ldr r0, [r4, #4] cmp r0, #0 beq _02205988 - bl FUN_021EF074 + bl MOD04_021EF074 _02205988: mov r0, #0 str r0, [r4, #4] ldmia sp!, {r4, pc} - arm_func_start FUN_02205994 -FUN_02205994: ; 0x02205994 + arm_func_start MOD04_02205994 +MOD04_02205994: ; 0x02205994 stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #0x7c] cmp r0, #0 beq _022059AC - bl FUN_021DD82C + bl MOD04_021DD82C _022059AC: mov r0, #0 str r0, [r4, #0x7c] @@ -51827,22 +51833,22 @@ _022059AC: mvn r1, #0 cmp r0, r1 beq _022059CC - bl FUN_021EFD9C + bl MOD04_021EFD9C _022059CC: mvn r1, #0 mov r0, r4 str r1, [r4, #0x4b0] mov r1, #1 str r1, [r4] - bl FUN_022059F8 + bl MOD04_022059F8 mvn r1, #0 mov r0, r4 str r1, [r4, #0x484] - bl FUN_02205A68 + bl MOD04_02205A68 ldmia sp!, {r4, pc} - arm_func_start FUN_022059F8 -FUN_022059F8: ; 0x022059F8 + arm_func_start MOD04_022059F8 +MOD04_022059F8: ; 0x022059F8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -51851,31 +51857,31 @@ FUN_022059F8: ; 0x022059F8 addeq sp, sp, #4 ldmeqia sp!, {r4, r5, pc} mov r4, #0 - bl FUN_021EF06C + bl MOD04_021EF06C cmp r0, #0 ble _02205A50 _02205A24: ldr r0, [r5, #8] mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r1, [r0] mov r0, r5 - bl FUN_022063A8 + bl MOD04_022063A8 ldr r0, [r5, #8] add r4, r4, #1 - bl FUN_021EF06C + bl MOD04_021EF06C cmp r4, r0 blt _02205A24 _02205A50: ldr r0, [r5, #8] - bl FUN_021EF074 + bl MOD04_021EF074 mov r0, #0 str r0, [r5, #8] add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_02205A68 -FUN_02205A68: ; 0x02205A68 + arm_func_start MOD04_02205A68 +MOD04_02205A68: ; 0x02205A68 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -51887,7 +51893,7 @@ _02205A84: add r0, r5, r4, lsl #2 ldr r1, [r0, #0x84] mov r0, r5 - bl FUN_022063A8 + bl MOD04_022063A8 ldr r0, [r5, #0x480] add r4, r4, #1 cmp r4, r0 @@ -51898,8 +51904,8 @@ _02205AA4: add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_02205AB4 -FUN_02205AB4: ; 0x02205AB4 + arm_func_start MOD04_02205AB4 +MOD04_02205AB4: ; 0x02205AB4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #0x30c mov r5, r0 @@ -51932,13 +51938,13 @@ _02205AEC: movhi r0, #6 ldmhiia sp!, {r4, r5, r6, r7, pc} mov r0, r5 - bl FUN_02205FF0 + bl MOD04_02205FF0 cmp r0, #0 addne sp, sp, #0x30c ldmneia sp!, {r4, r5, r6, r7, pc} mov r0, r5 str r4, [r5, #0x5c4] - bl FUN_02205DCC + bl MOD04_02205DCC add r3, sp, #0xe mov ip, #2 add r0, sp, #8 @@ -51946,40 +51952,40 @@ _02205AEC: mov r1, #0 str ip, [sp, #4] str r3, [sp, #8] - bl FUN_02205F74 + bl MOD04_02205F74 add r0, sp, #8 add r2, sp, #4 mov r1, #1 - bl FUN_02205F74 + bl MOD04_02205F74 add r0, sp, #8 mov r1, #3 add r2, sp, #4 - bl FUN_02205F74 + bl MOD04_02205F74 ldr r1, [r5, #0x4b8] add r0, sp, #8 add r2, sp, #4 - bl FUN_02205F18 + bl MOD04_02205F18 add r0, sp, #8 add r1, r5, #0xc add r2, sp, #4 - bl FUN_02205F98 + bl MOD04_02205F98 add r0, sp, #8 add r1, r5, #0x30 add r2, sp, #4 - bl FUN_02205F98 + bl MOD04_02205F98 add r0, sp, #8 add r1, r5, #0x74 mov r2, #8 add r3, sp, #4 - bl FUN_02205EE4 + bl MOD04_02205EE4 mov r1, r6 add r0, sp, #8 add r2, sp, #4 - bl FUN_02205F98 + bl MOD04_02205F98 mov r1, r7 add r0, sp, #8 add r2, sp, #4 - bl FUN_02205F98 + bl MOD04_02205F98 mov r1, r4, lsl #0x18 and ip, r1, #0xff000000 mov r1, r4, lsl #8 @@ -51993,14 +51999,14 @@ _02205AEC: add r0, sp, #8 orr r1, ip, r1 add r2, sp, #4 - bl FUN_02205F18 + bl MOD04_02205F18 ldr r0, [r5, #0x5c4] ands r0, r0, #8 beq _02205C44 ldr r1, [r5, #0x4a4] add r0, sp, #8 add r2, sp, #4 - bl FUN_02205F18 + bl MOD04_02205F18 _02205C44: ldr r0, [r5, #0x5c4] ands r0, r0, #0x80 @@ -52008,7 +52014,7 @@ _02205C44: ldr r1, [sp, #0x320] add r0, sp, #8 add r2, sp, #4 - bl FUN_02205F18 + bl MOD04_02205F18 _02205C60: ldr r0, [sp, #4] add r1, sp, #0 @@ -52028,11 +52034,11 @@ _02205C60: strb r0, [r1, #1] ldr r0, [r5, #0x4b0] ldr r2, [sp, #4] - bl FUN_021EFC24 + bl MOD04_021EFC24 cmp r0, #0 bgt _02205CC8 mov r0, r5 - bl FUN_02205994 + bl MOD04_02205994 add sp, sp, #0x30c mov r0, #3 ldmia sp!, {r4, r5, r6, r7, pc} @@ -52045,7 +52051,7 @@ _02205CC8: cmp r0, #0 bne _02205D0C mov r0, #0x1000 - bl FUN_021DD860 + bl MOD04_021DD860 str r0, [r5, #0x7c] ldr r0, [r5, #0x7c] cmp r0, #0 @@ -52064,8 +52070,8 @@ _02205D1C: .word 0x0220F830 _02205D20: .word 0x0000020A _02205D24: .word 0x0220F878 - arm_func_start FUN_02205D28 -FUN_02205D28: ; 0x02205D28 + arm_func_start MOD04_02205D28 +MOD04_02205D28: ; 0x02205D28 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 mov sl, r0 @@ -52080,24 +52086,24 @@ _02205D48: mov r2, r8 mov r3, r5 sub r6, r6, #1 - bl FUN_021EFC24 + bl MOD04_021EFC24 mov r7, r0 cmp r7, #0 bgt _02205DB8 cmp r6, #0 blt _02205DB8 mov r0, sl - bl FUN_02205994 + bl MOD04_02205994 mov r0, sl mov r1, r5 mov r2, r5 mov r3, r4 str r5, [sp] - bl FUN_02205AB4 + bl MOD04_02205AB4 movs fp, r0 beq _02205DB0 mov r0, sl - bl FUN_02206184 + bl MOD04_02206184 add sp, sp, #4 mov r0, fp ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -52111,8 +52117,8 @@ _02205DB8: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_02205DCC -FUN_02205DCC: ; 0x02205DCC + arm_func_start MOD04_02205DCC +MOD04_02205DCC: ; 0x02205DCC stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 mov sl, r0 @@ -52189,8 +52195,8 @@ _02205EC8: _02205EDC: .word 0x2C0B02C1 _02205EE0: .word 0x0000005D - arm_func_start FUN_02205EE4 -FUN_02205EE4: ; 0x02205EE4 + arm_func_start MOD04_02205EE4 +MOD04_02205EE4: ; 0x02205EE4 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, [r6] @@ -52205,8 +52211,8 @@ FUN_02205EE4: ; 0x02205EE4 str r0, [r6] ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_02205F18 -FUN_02205F18: ; 0x02205F18 + arm_func_start MOD04_02205F18 +MOD04_02205F18: ; 0x02205F18 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {lr} sub sp, sp, #4 @@ -52231,8 +52237,8 @@ FUN_02205F18: ; 0x02205F18 add sp, sp, #0x10 bx lr - arm_func_start FUN_02205F74 -FUN_02205F74: ; 0x02205F74 + arm_func_start MOD04_02205F74 +MOD04_02205F74: ; 0x02205F74 ldr r3, [r0] strb r1, [r3] ldr r1, [r2] @@ -52243,8 +52249,8 @@ FUN_02205F74: ; 0x02205F74 str r1, [r0] bx lr - arm_func_start FUN_02205F98 -FUN_02205F98: ; 0x02205F98 + arm_func_start MOD04_02205F98 +MOD04_02205F98: ; 0x02205F98 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 movs r7, r1 @@ -52269,14 +52275,14 @@ FUN_02205F98: ; 0x02205F98 .align 2, 0 _02205FEC: .word 0x0220F878 - arm_func_start FUN_02205FF0 -FUN_02205FF0: ; 0x02205FF0 + arm_func_start MOD04_02205FF0 +MOD04_02205FF0: ; 0x02205FF0 stmdb sp!, {r4, lr} sub sp, sp, #0x88 mov r4, r0 add r0, r4, #0xc mov r1, #0x14 - bl FUN_02206124 + bl MOD04_02206124 ldr r1, _02206118 ; =0x0221173C mov r3, r0 ldr r1, [r1] @@ -52296,7 +52302,7 @@ _02206038: add r0, sp, #8 strb r2, [sp, #1] strh r1, [sp, #2] - bl FUN_021EFB38 + bl MOD04_021EFB38 mvn r1, #0 str r0, [sp, #4] cmp r0, r1 @@ -52326,7 +52332,7 @@ _022060A4: mov r0, #2 mov r1, #1 mov r2, #0 - bl FUN_021EFDB8 + bl MOD04_021EFDB8 str r0, [r4, #0x4b0] ldr r0, [r4, #0x4b0] mvn r1, #0 @@ -52337,13 +52343,13 @@ _022060A4: _022060E0: add r1, sp, #0 mov r2, #8 - bl FUN_021EFCE4 + bl MOD04_021EFCE4 cmp r0, #0 addeq sp, sp, #0x88 moveq r0, #0 ldmeqia sp!, {r4, pc} ldr r0, [r4, #0x4b0] - bl FUN_021EFD9C + bl MOD04_021EFD9C mvn r0, #0 str r0, [r4, #0x4b0] mov r0, #3 @@ -52354,8 +52360,8 @@ _02206118: .word 0x0221173C _0220611C: .word 0x0220F87C _02206120: .word 0x0000EE70 - arm_func_start FUN_02206124 -FUN_02206124: ; 0x02206124 + arm_func_start MOD04_02206124 +MOD04_02206124: ; 0x02206124 stmdb sp!, {lr} sub sp, sp, #4 ldrsb lr, [r0] @@ -52385,8 +52391,8 @@ _02206168: _0220617C: .word 0x0210420C _02206180: .word 0x9CCF9319 - arm_func_start FUN_02206184 -FUN_02206184: ; 0x02206184 + arm_func_start MOD04_02206184 +MOD04_02206184: ; 0x02206184 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r4, r0 @@ -52415,7 +52421,7 @@ FUN_02206184: ; 0x02206184 mov r1, r0 mov r0, r4 add r1, r7, r1 - bl FUN_02205240 + bl MOD04_02205240 ldr r0, _02206244 ; =0x02211738 ldr r3, [r4, #0x494] ldr r2, [r0] @@ -52432,15 +52438,15 @@ _02206214: mov r1, #4 blx ip mov r0, r4 - bl FUN_02205994 + bl MOD04_02205994 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 _02206240: .word 0x0220F804 _02206244: .word 0x02211738 - arm_func_start FUN_02206248 -FUN_02206248: ; 0x02206248 + arm_func_start MOD04_02206248 +MOD04_02206248: ; 0x02206248 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 movs r7, r0 @@ -52466,9 +52472,9 @@ _02206298: mov r1, #1 mov r0, r7 str r1, [r7] - bl FUN_02206494 + bl MOD04_02206494 mov r0, r7 - bl FUN_02203B34 + bl MOD04_02203B34 mov r1, r6 add r0, r7, #0xc bl strcpy @@ -52506,12 +52512,12 @@ _022062FC: str r3, [r7, #0x4a4] mov r0, r7 str r2, [r7, #0x4b8] - bl FUN_02205240 + bl MOD04_02205240 mov r0, #0 str r0, [r7, #0x5cc] - bl FUN_021F025C + bl MOD04_021F025C bl srand - bl FUN_021F024C + bl MOD04_021F024C add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} .align 2, 0 @@ -52522,8 +52528,8 @@ _0220636C: .word 0x0220F8A8 _02206370: .word 0x00000132 _02206374: .word 0x0220F878 - arm_func_start FUN_02206378 -FUN_02206378: ; 0x02206378 + arm_func_start MOD04_02206378 +MOD04_02206378: ; 0x02206378 cmp r1, #0 mov r3, #0 ble _022063A0 @@ -52539,15 +52545,15 @@ _022063A0: mvn r0, #0 bx lr - arm_func_start FUN_022063A8 -FUN_022063A8: ; 0x022063A8 + arm_func_start MOD04_022063A8 +MOD04_022063A8: ; 0x022063A8 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc mov r5, r0 str r1, [sp] - bl FUN_02203B34 + bl MOD04_02203B34 add r1, sp, #0 - bl FUN_021EF358 + bl MOD04_021EF358 movs r4, r0 bne _022063E0 ldr r0, _02206420 ; =0x0220F8BC @@ -52567,25 +52573,25 @@ _022063E0: addne sp, sp, #0xc ldmneia sp!, {r4, r5, pc} mov r0, r5 - bl FUN_02203B34 + bl MOD04_02203B34 add r1, sp, #0 - bl FUN_021EF3F4 + bl MOD04_021EF3F4 add sp, sp, #0xc ldmia sp!, {r4, r5, pc} .align 2, 0 _02206420: .word 0x0220F8BC _02206424: .word 0x0220F830 - arm_func_start FUN_02206428 -FUN_02206428: ; 0x02206428 + arm_func_start MOD04_02206428 +MOD04_02206428: ; 0x02206428 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc mov r4, r1 mov r5, r0 str r4, [sp] - bl FUN_02203B34 + bl MOD04_02203B34 add r1, sp, #0 - bl FUN_021EF358 + bl MOD04_021EF358 cmp r0, #0 ldrne r1, [r0, #4] addne sp, sp, #0xc @@ -52594,37 +52600,37 @@ FUN_02206428: ; 0x02206428 ldrne r0, [r0] ldmneia sp!, {r4, r5, pc} mov r0, r4 - bl FUN_021F0208 + bl MOD04_021F0208 str r0, [sp] mov r1, #1 mov r0, r5 str r1, [sp, #4] - bl FUN_02203B34 + bl MOD04_02203B34 add r1, sp, #0 - bl FUN_021EF494 + bl MOD04_021EF494 ldr r0, [sp] add sp, sp, #0xc ldmia sp!, {r4, r5, pc} - arm_func_start FUN_02206494 -FUN_02206494: ; 0x02206494 + arm_func_start MOD04_02206494 +MOD04_02206494: ; 0x02206494 stmdb sp!, {r4, lr} mov r4, r0 mov r0, #4 mov r1, #0x64 mov r2, #0 - bl FUN_021EF0E4 + bl MOD04_021EF0E4 str r0, [r4, #4] mov r0, #0 str r0, [r4, #0x5d0] ldmia sp!, {r4, pc} - arm_func_start FUN_022064BC -FUN_022064BC: ; 0x022064BC + arm_func_start MOD04_022064BC +MOD04_022064BC: ; 0x022064BC stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, [r6, #4] - bl FUN_021EF06C + bl MOD04_021EF06C mov r4, r0 cmp r4, #0 mov r5, #0 @@ -52632,22 +52638,22 @@ FUN_022064BC: ; 0x022064BC _022064DC: ldr r0, [r6, #4] mov r1, r5 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r1, [r0] mov r0, r6 - bl FUN_022065E8 + bl MOD04_022065E8 add r5, r5, #1 cmp r5, r4 blt _022064DC _02206500: ldr r0, [r6, #4] - bl FUN_021EEB28 + bl MOD04_021EEB28 mov r0, r6 - bl FUN_02206514 + bl MOD04_02206514 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_02206514 -FUN_02206514: ; 0x02206514 + arm_func_start MOD04_02206514 +MOD04_02206514: ; 0x02206514 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r6, r0 @@ -52661,10 +52667,10 @@ FUN_02206514: ; 0x02206514 add r4, sp, #0 _02206540: ldr r0, [sp] - bl FUN_02203888 + bl MOD04_02203888 mov r5, r0 mov r0, r4 - bl FUN_02203AC0 + bl MOD04_02203AC0 str r5, [sp] cmp r5, #0 bne _02206540 @@ -52674,28 +52680,28 @@ _02206560: add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_02206570 -FUN_02206570: ; 0x02206570 + arm_func_start MOD04_02206570 +MOD04_02206570: ; 0x02206570 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, [r0, #4] - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r0, [r0] add sp, sp, #4 ldmfd sp!, {pc} - ldr ip, _02206598 ; =FUN_021EF06C + ldr ip, _02206598 ; =MOD04_021EF06C ldr r0, [r0, #4] bx ip .align 2, 0 -_02206598: .word FUN_021EF06C +_02206598: .word MOD04_021EF06C - arm_func_start FUN_0220659C -FUN_0220659C: ; 0x0220659C + arm_func_start MOD04_0220659C +MOD04_0220659C: ; 0x0220659C stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, [r6, #4] mov r5, r1 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r4, [r0] ldr r3, [r6, #0x494] ldr ip, [r6, #0x488] @@ -52705,14 +52711,14 @@ FUN_0220659C: ; 0x0220659C blx ip ldr r0, [r6, #4] mov r1, r5 - bl FUN_021EED84 + bl MOD04_021EED84 mov r0, r6 mov r1, r4 - bl FUN_022065E8 + bl MOD04_022065E8 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_022065E8 -FUN_022065E8: ; 0x022065E8 + arm_func_start MOD04_022065E8 +MOD04_022065E8: ; 0x022065E8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -52722,25 +52728,25 @@ FUN_022065E8: ; 0x022065E8 bne _02206614 mov r0, r4 mov r1, #0 - bl FUN_02203890 + bl MOD04_02203890 b _0220661C _02206614: mov r0, r4 - bl FUN_02203890 + bl MOD04_02203890 _0220661C: str r4, [r5, #0x5d0] add sp, sp, #4 ldmia sp!, {r4, r5, pc} - arm_func_start FUN_02206628 -FUN_02206628: ; 0x02206628 + arm_func_start MOD04_02206628 +MOD04_02206628: ; 0x02206628 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov sb, r0 ldr r0, [sb, #4] mov r8, r1 mov r7, r2 - bl FUN_021EF06C + bl MOD04_021EF06C mov r6, r0 cmp r6, #0 mov r4, #0 @@ -52748,14 +52754,14 @@ FUN_02206628: ; 0x02206628 _02206654: ldr r0, [sb, #4] mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r5, [r0] mov r0, r5 - bl FUN_02203908 + bl MOD04_02203908 cmp r8, r0 bne _0220668C mov r0, r5 - bl FUN_022038DC + bl MOD04_022038DC cmp r7, r0 addeq sp, sp, #4 moveq r0, r4 @@ -52769,14 +52775,14 @@ _02206698: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} - arm_func_start FUN_022066A4 -FUN_022066A4: ; 0x022066A4 + arm_func_start MOD04_022066A4 +MOD04_022066A4: ; 0x022066A4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 ldr r0, [r7, #4] mov r6, r1 - bl FUN_021EF06C + bl MOD04_021EF06C mov r5, r0 cmp r5, #0 mov r4, #0 @@ -52784,7 +52790,7 @@ FUN_022066A4: ; 0x022066A4 _022066CC: ldr r0, [r7, #4] mov r1, r4 - bl FUN_021EEFFC + bl MOD04_021EEFFC ldr r0, [r0] cmp r6, r0 addeq sp, sp, #4 @@ -52798,14 +52804,14 @@ _022066F8: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} - arm_func_start FUN_02206704 -FUN_02206704: ; 0x02206704 + arm_func_start MOD04_02206704 +MOD04_02206704: ; 0x02206704 stmdb sp!, {r0, r1, r2, r3} stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #4] add r1, sp, #0xc - bl FUN_021EEFA8 + bl MOD04_021EEFA8 ldr r2, [sp, #0xc] ldr r3, [r4, #0x494] ldr ip, [r4, #0x488] @@ -52816,8 +52822,8 @@ FUN_02206704: ; 0x02206704 add sp, sp, #0x10 bx lr - arm_func_start FUN_02206740 -FUN_02206740: ; 0x02206740 + arm_func_start MOD04_02206740 +MOD04_02206740: ; 0x02206740 cmp r3, #3 addls pc, pc, r3, lsl #2 b _0220677C @@ -52827,38 +52833,38 @@ _0220674C: ; jump table b _0220676C ; case 2 b _02206774 ; case 3 _0220675C: - ldr r3, _022067A0 ; =FUN_02206978 + ldr r3, _022067A0 ; =MOD04_02206978 b _02206780 _02206764: - ldr r3, _022067A4 ; =FUN_02206898 + ldr r3, _022067A4 ; =MOD04_02206898 b _02206780 _0220676C: - ldr r3, _022067A8 ; =FUN_02206828 + ldr r3, _022067A8 ; =MOD04_02206828 b _02206780 _02206774: - ldr r3, _022067AC ; =FUN_022067B8 + ldr r3, _022067AC ; =MOD04_022067B8 b _02206780 _0220677C: - ldr r3, _022067AC ; =FUN_022067B8 + ldr r3, _022067AC ; =MOD04_022067B8 _02206780: str r2, [r0, #0x498] str r1, [r0, #0x49c] ldr r2, _022067B0 ; =0x02211740 - ldr ip, _022067B4 ; =FUN_021EED08 + ldr ip, _022067B4 ; =MOD04_021EED08 str r0, [r2] mov r1, r3 ldr r0, [r0, #4] bx ip .align 2, 0 -_022067A0: .word FUN_02206978 -_022067A4: .word FUN_02206898 -_022067A8: .word FUN_02206828 -_022067AC: .word FUN_022067B8 +_022067A0: .word MOD04_02206978 +_022067A4: .word MOD04_02206898 +_022067A8: .word MOD04_02206828 +_022067AC: .word MOD04_022067B8 _022067B0: .word 0x02211740 -_022067B4: .word FUN_021EED08 +_022067B4: .word MOD04_021EED08 - arm_func_start FUN_022067B8 -FUN_022067B8: ; 0x022067B8 + arm_func_start MOD04_022067B8 +MOD04_022067B8: ; 0x022067B8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r2, _02206820 ; =0x02211740 @@ -52867,14 +52873,14 @@ FUN_022067B8: ; 0x022067B8 ldr r0, [r0] ldr r1, [r1, #0x498] ldr r2, _02206824 ; =0x0220F878 - bl FUN_022039E0 + bl MOD04_022039E0 ldr r1, _02206820 ; =0x02211740 mov r4, r0 ldr r1, [r1] ldr r0, [r5] ldr r1, [r1, #0x498] ldr r2, _02206824 ; =0x0220F878 - bl FUN_022039E0 + bl MOD04_022039E0 mov r1, r0 mov r0, r4 bl strnicmp @@ -52889,8 +52895,8 @@ FUN_022067B8: ; 0x022067B8 _02206820: .word 0x02211740 _02206824: .word 0x0220F878 - arm_func_start FUN_02206828 -FUN_02206828: ; 0x02206828 + arm_func_start MOD04_02206828 +MOD04_02206828: ; 0x02206828 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r2, _02206890 ; =0x02211740 @@ -52899,14 +52905,14 @@ FUN_02206828: ; 0x02206828 ldr r0, [r0] ldr r1, [r1, #0x498] ldr r2, _02206894 ; =0x0220F878 - bl FUN_022039E0 + bl MOD04_022039E0 ldr r1, _02206890 ; =0x02211740 mov r4, r0 ldr r1, [r1] ldr r0, [r5] ldr r1, [r1, #0x498] ldr r2, _02206894 ; =0x0220F878 - bl FUN_022039E0 + bl MOD04_022039E0 mov r1, r0 mov r0, r4 bl strcmp @@ -52921,8 +52927,8 @@ FUN_02206828: ; 0x02206828 _02206890: .word 0x02211740 _02206894: .word 0x0220F878 - arm_func_start FUN_02206898 -FUN_02206898: ; 0x02206898 + arm_func_start MOD04_02206898 +MOD04_02206898: ; 0x02206898 stmdb sp!, {r4, r5, r6, lr} ldr r3, _02206974 ; =0x02211740 mov r2, #0 @@ -52931,7 +52937,7 @@ FUN_02206898: ; 0x02206898 ldr r0, [r0] ldr r1, [r3, #0x498] mov r3, r2 - bl FUN_02203910 + bl MOD04_02203910 ldr r3, _02206974 ; =0x02211740 mov r2, #0 mov r4, r0 @@ -52940,7 +52946,7 @@ FUN_02206898: ; 0x02206898 ldr r1, [r0, #0x498] mov r0, r5 mov r3, r2 - bl FUN_02203910 + bl MOD04_02203910 mov r2, r0 mov r3, r1 mov r0, r4 @@ -52982,8 +52988,8 @@ _0220692C: .align 2, 0 _02206974: .word 0x02211740 - arm_func_start FUN_02206978 -FUN_02206978: ; 0x02206978 + arm_func_start MOD04_02206978 +MOD04_02206978: ; 0x02206978 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r2, _022069D8 ; =0x02211740 @@ -52992,14 +52998,14 @@ FUN_02206978: ; 0x02206978 ldr r5, [r1] ldr r1, [r2, #0x498] mov r2, #0 - bl FUN_0220394C + bl MOD04_0220394C ldr r1, _022069D8 ; =0x02211740 mov r4, r0 ldr r1, [r1] mov r0, r5 ldr r1, [r1, #0x498] mov r2, #0 - bl FUN_0220394C + bl MOD04_0220394C ldr r1, _022069D8 ; =0x02211740 sub r0, r4, r0 ldr r1, [r1] @@ -53011,40 +53017,40 @@ FUN_02206978: ; 0x02206978 .align 2, 0 _022069D8: .word 0x02211740 - arm_func_start FUN_022069DC -FUN_022069DC: ; 0x022069DC + arm_func_start MOD04_022069DC +MOD04_022069DC: ; 0x022069DC stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 mov r4, r2 - bl FUN_02208364 - bl FUN_02206B14 + bl MOD04_02208364 + bl MOD04_02206B14 mov r1, r6 mov r0, #0 - bl FUN_02206A4C + bl MOD04_02206A4C cmp r0, #0 beq _02206A3C mov r1, r5 mov r0, #1 - bl FUN_02206A4C + bl MOD04_02206A4C cmp r0, #0 beq _02206A3C mov r1, r4 mov r0, #2 - bl FUN_02206A4C + bl MOD04_02206A4C cmp r0, #0 beq _02206A3C - bl FUN_02208350 + bl MOD04_02208350 mov r0, #1 ldmia sp!, {r4, r5, r6, pc} _02206A3C: - bl FUN_02206B14 - bl FUN_02208350 + bl MOD04_02206B14 + bl MOD04_02208350 mov r0, #0 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_02206A4C -FUN_02206A4C: ; 0x02206A4C + arm_func_start MOD04_02206A4C +MOD04_02206A4C: ; 0x02206A4C stmdb sp!, {r4, r5, r6, lr} mov r6, r1 ldrsb r1, [r6] @@ -53052,7 +53058,7 @@ FUN_02206A4C: ; 0x02206A4C cmp r1, #0 beq _02206B00 mov r0, r6 - bl FUN_022083D4 + bl MOD04_022083D4 cmp r0, #0xa ldrgt r0, _02206B08 ; =0x02211760 movgt r1, #7 @@ -53060,7 +53066,7 @@ FUN_02206A4C: ; 0x02206A4C movgt r0, #0 ldmgtia sp!, {r4, r5, r6, pc} mov r0, r6 - bl FUN_022083D4 + bl MOD04_022083D4 mov r5, r0 cmp r5, #0xa ldrgt r0, _02206B08 ; =0x02211760 @@ -53068,7 +53074,7 @@ FUN_02206A4C: ; 0x02206A4C strgt r1, [r0] movgt r0, #0 ldmgtia sp!, {r4, r5, r6, pc} - bl FUN_02206DA4 + bl MOD04_02206DA4 ldr r1, _02206B0C ; =0x02211750 add r0, r0, #1 ldr r2, [r1] @@ -53085,7 +53091,7 @@ FUN_02206A4C: ; 0x02206A4C ldmeqia sp!, {r4, r5, r6, pc} mov r1, r6 mov r2, r5 - bl FUN_02206C98 + bl MOD04_02206C98 ldr r1, _02206B10 ; =0x02211778 mov r2, #0 ldr r1, [r1, r4, lsl #2] @@ -53098,8 +53104,8 @@ _02206B08: .word 0x02211760 _02206B0C: .word 0x02211750 _02206B10: .word 0x02211778 - arm_func_start FUN_02206B14 -FUN_02206B14: ; 0x02206B14 + arm_func_start MOD04_02206B14 +MOD04_02206B14: ; 0x02206B14 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, #0 @@ -53123,8 +53129,8 @@ _02206B44: _02206B58: .word 0x02211764 _02206B5C: .word 0x02211778 - arm_func_start FUN_02206B60 -FUN_02206B60: ; 0x02206B60 + arm_func_start MOD04_02206B60 +MOD04_02206B60: ; 0x02206B60 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc mov sl, r0 @@ -53133,7 +53139,7 @@ FUN_02206B60: ; 0x02206B60 mov r2, #4 mov r5, #0 mov sb, r1 - bl FUN_02206E28 + bl MOD04_02206E28 mov r7, r5 mov r6, r0 mov r4, r7 @@ -53145,13 +53151,13 @@ _02206B9C: strb r4, [sp, #8] strb r4, [sp, #9] strb r4, [sp, #0xa] - bl FUN_02206DD0 + bl MOD04_02206DD0 movs r7, r0 bmi _02206C20 ldrb r0, [sp, #5] mov r1, r7, lsl #2 strb r1, [sp, #8] - bl FUN_02206DD0 + bl MOD04_02206DD0 movs r7, r0 bmi _02206C20 ldrsb r2, [sp, #8] @@ -53160,7 +53166,7 @@ _02206B9C: strb r1, [sp, #9] orr r1, r2, r7, asr #4 strb r1, [sp, #8] - bl FUN_02206DD0 + bl MOD04_02206DD0 movs r7, r0 bmi _02206C20 ldrsb r2, [sp, #9] @@ -53169,7 +53175,7 @@ _02206B9C: strb r1, [sp, #0xa] orr r1, r2, r7, asr #2 strb r1, [sp, #9] - bl FUN_02206DD0 + bl MOD04_02206DD0 movs r7, r0 ldrplsb r0, [sp, #0xa] orrpl r0, r0, r7 @@ -53196,7 +53202,7 @@ _02206C48: add r0, sp, #4 mov r1, sb mov r2, fp - bl FUN_02206E28 + bl MOD04_02206E28 mov r6, r0 _02206C74: cmp r6, #0 @@ -53210,8 +53216,8 @@ _02206C84: add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_02206C98 -FUN_02206C98: ; 0x02206C98 + arm_func_start MOD04_02206C98 +MOD04_02206C98: ; 0x02206C98 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 mov r8, r2 @@ -53222,7 +53228,7 @@ FUN_02206C98: ; 0x02206C98 add r0, sp, #0 mov r1, sb mov r7, #0 - bl FUN_02206E28 + bl MOD04_02206E28 cmp r0, #0 ble _02206D8C ldr r5, _02206DA0 ; =0x0220BCE8 @@ -53271,7 +53277,7 @@ _02206CDC: movle r2, r8 add r0, sp, #0 mov r1, sb - bl FUN_02206E28 + bl MOD04_02206E28 cmp r0, #0 bgt _02206CDC _02206D8C: @@ -53283,8 +53289,8 @@ _02206D8C: .align 2, 0 _02206DA0: .word 0x0220BCE8 - arm_func_start FUN_02206DA4 -FUN_02206DA4: ; 0x02206DA4 + arm_func_start MOD04_02206DA4 +MOD04_02206DA4: ; 0x02206DA4 ldr r1, _02206DBC ; =0x55555556 add r2, r0, #2 smull r0, r3, r1, r2 @@ -53294,15 +53300,15 @@ FUN_02206DA4: ; 0x02206DA4 .align 2, 0 _02206DBC: .word 0x55555556 - arm_func_start FUN_02206DC0 -FUN_02206DC0: ; 0x02206DC0 + arm_func_start MOD04_02206DC0 +MOD04_02206DC0: ; 0x02206DC0 mov r1, r0, asr #2 mov r0, #3 mul r0, r1, r0 bx lr - arm_func_start FUN_02206DD0 -FUN_02206DD0: ; 0x02206DD0 + arm_func_start MOD04_02206DD0 +MOD04_02206DD0: ; 0x02206DD0 cmp r0, #0x41 blo _02206DE4 cmp r0, #0x5a @@ -53329,8 +53335,8 @@ _02206E0C: mvnne r0, #0 bx lr - arm_func_start FUN_02206E28 -FUN_02206E28: ; 0x02206E28 + arm_func_start MOD04_02206E28 +MOD04_02206E28: ; 0x02206E28 stmdb sp!, {r4, lr} mov lr, #0 mov r4, lr @@ -53351,29 +53357,29 @@ _02206E64: mov r0, lr ldmia sp!, {r4, pc} - arm_func_start FUN_02206E6C -FUN_02206E6C: ; 0x02206E6C + arm_func_start MOD04_02206E6C +MOD04_02206E6C: ; 0x02206E6C ldr r1, _02206E8C ; =0x02211744 ldr r2, _02206E90 ; =0x02211758 str r0, [r1] mov r1, #0 - ldr ip, _02206E94 ; =FUN_02208570 - ldr r0, _02206E98 ; =FUN_02206E9C + ldr ip, _02206E94 ; =MOD04_02208570 + ldr r0, _02206E98 ; =MOD04_02206E9C str r1, [r2] bx ip .align 2, 0 _02206E8C: .word 0x02211744 _02206E90: .word 0x02211758 -_02206E94: .word FUN_02208570 -_02206E98: .word FUN_02206E9C +_02206E94: .word MOD04_02208570 +_02206E98: .word MOD04_02206E9C - arm_func_start FUN_02206E9C -FUN_02206E9C: ; 0x02206E9C + arm_func_start MOD04_02206E9C +MOD04_02206E9C: ; 0x02206E9C stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_02206B14 - bl FUN_02208378 - bl FUN_0220831C + bl MOD04_02206B14 + bl MOD04_02208378 + bl MOD04_0220831C ldr r0, _02206EEC ; =0x0221174C ldr r1, _02206EF0 ; =0x02211764 ldr r0, [r0] @@ -53395,8 +53401,8 @@ _02206EF0: .word 0x02211764 _02206EF4: .word 0x02211754 _02206EF8: .word 0x02211744 - arm_func_start FUN_02206EFC -FUN_02206EFC: ; 0x02206EFC + arm_func_start MOD04_02206EFC +MOD04_02206EFC: ; 0x02206EFC stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 mov r7, r0 @@ -53427,17 +53433,17 @@ FUN_02206EFC: ; 0x02206EFC str sb, [ip] str r1, [sl] str r1, [fp] - bl FUN_02208228 + bl MOD04_02208228 ldr r0, _022070F8 ; =0x022117CC - bl FUN_02207194 + bl MOD04_02207194 mov r0, r5 - bl FUN_0220710C + bl MOD04_0220710C mov r1, fp cmp r0, #0 str r0, [r1] beq _02207080 mov r0, r4 - bl FUN_0220710C + bl MOD04_0220710C mov r1, sl cmp r0, #0 str r0, [r1] @@ -53445,31 +53451,31 @@ FUN_02206EFC: ; 0x02206EFC ldr r1, [sp, #0x28] ldr r0, _022070FC ; =0x0221176C mov r2, #4 - bl FUN_02206C98 + bl MOD04_02206C98 ldr r1, _022070FC ; =0x0221176C mov r2, #0 strb r2, [r1, r0] ldr r1, [sp, #0x2c] ldr r0, _02207100 ; =0x022117B0 mov r2, #0x10 - bl FUN_02206C98 + bl MOD04_02206C98 ldr r1, _02207100 ; =0x022117B0 mov r2, #0 strb r2, [r1, r0] - bl FUN_02208320 + bl MOD04_02208320 cmp r0, #0 beq _02207040 - bl FUN_0220837C + bl MOD04_0220837C cmp r0, #0 beq _02207040 mov r0, r7 mov r1, r6 mov r2, #0xa - bl FUN_022085B8 + bl MOD04_022085B8 cmp r0, #0 beq _0220703C ldr r0, _02207104 ; =0x02211798 - bl FUN_0220724C + bl MOD04_0220724C ldr r2, _022070E4 ; =0x02211748 ldr r1, _02207108 ; =0x02211758 str r0, [r2] @@ -53478,7 +53484,7 @@ FUN_02206EFC: ; 0x02206EFC add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} _0220703C: - bl FUN_02208378 + bl MOD04_02208378 _02207040: ldr r0, _022070E8 ; =0x0221174C ldr r1, _022070D8 ; =0x02211764 @@ -53536,11 +53542,11 @@ _02207100: .word 0x022117B0 _02207104: .word 0x02211798 _02207108: .word 0x02211758 - arm_func_start FUN_0220710C -FUN_0220710C: ; 0x0220710C + arm_func_start MOD04_0220710C +MOD04_0220710C: ; 0x0220710C stmdb sp!, {r4, r5, r6, lr} mov r6, r0 - bl FUN_022083D4 + bl MOD04_022083D4 ldr r1, _02207154 ; =0x02211750 mov r4, r0 ldr r2, [r1] @@ -53551,7 +53557,7 @@ FUN_0220710C: ; 0x0220710C beq _0220714C mov r1, r6 mov r2, r4 - bl FUN_0220839C + bl MOD04_0220839C mov r0, #0 strb r0, [r5, r4] _0220714C: @@ -53560,28 +53566,28 @@ _0220714C: .align 2, 0 _02207154: .word 0x02211750 - arm_func_start FUN_02207158 -FUN_02207158: ; 0x02207158 + arm_func_start MOD04_02207158 +MOD04_02207158: ; 0x02207158 stmdb sp!, {r4, lr} - bl FUN_022082D4 + bl MOD04_022082D4 cmp r0, #0 bne _02207184 - bl FUN_02208364 + bl MOD04_02208364 ldr r0, _02207190 ; =0x02211768 ldr r4, [r0] - bl FUN_02208350 + bl MOD04_02208350 mov r0, r4 - bl FUN_02209218 + bl MOD04_02209218 ldmia sp!, {r4, pc} _02207184: - bl FUN_022082A0 + bl MOD04_022082A0 mov r0, #0 ldmia sp!, {r4, pc} .align 2, 0 _02207190: .word 0x02211768 - arm_func_start FUN_02207194 -FUN_02207194: ; 0x02207194 + arm_func_start MOD04_02207194 +MOD04_02207194: ; 0x02207194 stmdb sp!, {lr} sub sp, sp, #4 ldr r2, _022071BC ; =0x0220F9B0 @@ -53595,15 +53601,15 @@ FUN_02207194: ; 0x02207194 .align 2, 0 _022071BC: .word 0x0220F9B0 - arm_func_start FUN_022071C0 -FUN_022071C0: ; 0x022071C0 + arm_func_start MOD04_022071C0 +MOD04_022071C0: ; 0x022071C0 stmdb sp!, {r4, r5, lr} sub sp, sp, #0x24 mov r5, r0 mov r4, r1 add r0, sp, #0 mov r1, #0x14 - bl FUN_022083B4 + bl MOD04_022083B4 add r0, sp, #0 bl FUN_02095EC8 ldr r1, [sp] @@ -53615,7 +53621,7 @@ FUN_022071C0: ; 0x022071C0 ldmeqia sp!, {r4, r5, pc} add r0, sp, #0x14 mov r3, #0xd - bl FUN_0220844C + bl MOD04_0220844C cmp r0, #0 addlt sp, sp, #0x24 movlt r0, #0 @@ -53623,19 +53629,19 @@ FUN_022071C0: ; 0x022071C0 add r1, sp, #0x14 mov r0, r4 mov r2, #0xd - bl FUN_02206C98 + bl MOD04_02206C98 ldr r1, _02207248 ; =0x027FFE0C mov r0, r5 mov r2, #4 - bl FUN_02206C98 + bl MOD04_02206C98 mov r0, #1 add sp, sp, #0x24 ldmia sp!, {r4, r5, pc} .align 2, 0 _02207248: .word 0x027FFE0C - arm_func_start FUN_0220724C -FUN_0220724C: ; 0x0220724C + arm_func_start MOD04_0220724C +MOD04_0220724C: ; 0x0220724C stmdb sp!, {r4, lr} sub sp, sp, #0x10 ldr ip, _02207324 ; =0x0220BD2C @@ -53652,7 +53658,7 @@ _02207264: ldrb r1, [ip] ldr r0, _02207328 ; =0x022117F0 strb r1, [r3] - bl FUN_021DD9DC + bl MOD04_021DD9DC cmp r0, #0 beq _02207318 ldr r0, _02207328 ; =0x022117F0 @@ -53662,7 +53668,7 @@ _02207264: cmp r1, #0xa blt _022072B8 add r0, sp, #0 - bl FUN_02208558 + bl MOD04_02208558 b _022072CC _022072B8: cmp r1, #0 @@ -53682,12 +53688,12 @@ _022072CC: add r0, sp, #4 mov r2, #9 strb r3, [sp, #3] - bl FUN_0220839C + bl MOD04_0220839C _022072FC: add r1, sp, #0 mov r0, r4 mov r2, #0xd - bl FUN_02206C98 + bl MOD04_02206C98 add sp, sp, #0x10 mov r0, #1 ldmia sp!, {r4, pc} @@ -53700,15 +53706,15 @@ _02207324: .word 0x0220BD2C _02207328: .word 0x022117F0 _0220732C: .word 0x022117F8 - arm_func_start FUN_02207330 -FUN_02207330: ; 0x02207330 - ldr ip, _02207338 ; =FUN_0220B55C + arm_func_start MOD04_02207330 +MOD04_02207330: ; 0x02207330 + ldr ip, _02207338 ; =MOD04_0220B55C bx ip .align 2, 0 -_02207338: .word FUN_0220B55C +_02207338: .word MOD04_0220B55C - arm_func_start FUN_0220733C -FUN_0220733C: ; 0x0220733C + arm_func_start MOD04_0220733C +MOD04_0220733C: ; 0x0220733C stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #0x10 mov r8, r0 @@ -53721,7 +53727,7 @@ FUN_0220733C: ; 0x0220733C addlo sp, sp, #0x10 movlo r0, #0 ldmloia sp!, {r4, r5, r6, r7, r8, pc} - bl FUN_022083D4 + bl MOD04_022083D4 mov r5, r0 cmp r5, #0x20 ldrgt r0, _022074D8 ; =0x02211760 @@ -53733,7 +53739,7 @@ FUN_0220733C: ; 0x0220733C cmp r5, #0 movle r6, #0 ble _022073A4 - bl FUN_02206DA4 + bl MOD04_02206DA4 mov r6, r0 _022073A4: ldr r1, _022074DC ; =0x02211750 @@ -53754,7 +53760,7 @@ _022073A4: add r1, sp, #8 mov r3, r7 str ip, [sp] - bl FUN_0220788C + bl MOD04_0220788C cmp r0, #0 bne _02207414 ldr r1, _022074E4 ; =0x02211764 @@ -53770,13 +53776,13 @@ _02207414: mov r0, r4 mov r1, r8 mov r2, r5 - bl FUN_02206C98 + bl MOD04_02206C98 mov r1, #0 strb r1, [r4, r0] ldr r0, [sp, #8] ldr r1, _022074E8 ; =0x0220F9CC mov r2, r4 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _022074A4 _0220744C: @@ -53790,7 +53796,7 @@ _0220744C: str r1, [r0, #0x14] ldr r0, [sp, #4] ldr r1, [sp, #8] - bl FUN_0220781C + bl MOD04_0220781C cmp r0, #0 addne sp, sp, #0x10 movne r0, #1 @@ -53805,7 +53811,7 @@ _0220744C: _022074A4: ldr r0, [sp, #4] ldr r1, [sp, #8] - bl FUN_02207BB4 + bl MOD04_02207BB4 ldr r1, _022074E4 ; =0x02211764 mov r0, r4 ldr r1, [r1] @@ -53823,8 +53829,8 @@ _022074E0: .word 0x0220BD54 _022074E4: .word 0x02211764 _022074E8: .word 0x0220F9CC - arm_func_start FUN_022074EC -FUN_022074EC: ; 0x022074EC + arm_func_start MOD04_022074EC +MOD04_022074EC: ; 0x022074EC stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #0x18 mov r7, r2 @@ -53847,9 +53853,9 @@ FUN_022074EC: ; 0x022074EC ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} add r0, sp, #0xc mov r1, r4 - bl FUN_02208558 + bl MOD04_02208558 mov sb, r0 - bl FUN_02206DA4 + bl MOD04_02206DA4 ldr r1, _02207790 ; =0x02211750 add r0, r0, #1 ldr r2, [r1] @@ -53870,14 +53876,14 @@ FUN_022074EC: ; 0x022074EC _02207594: add r1, sp, #0xc mov r2, sb - bl FUN_02206C98 + bl MOD04_02206C98 mov r1, #0 strb r1, [r4, r0] add r0, sp, #0xc mov r1, r7 - bl FUN_02208558 + bl MOD04_02208558 mov sb, r0 - bl FUN_02206DA4 + bl MOD04_02206DA4 ldr r1, _02207790 ; =0x02211750 add r0, r0, #1 ldr r2, [r1] @@ -53902,7 +53908,7 @@ _02207594: _02207610: add r1, sp, #0xc mov r2, sb - bl FUN_02206C98 + bl MOD04_02206C98 mov r1, #0 strb r1, [sl, r0] ldr r2, _0220779C ; =0x0220BD3C @@ -53910,7 +53916,7 @@ _02207610: add r1, sp, #8 mov r3, r5 str r6, [sp] - bl FUN_0220788C + bl MOD04_0220788C cmp r0, #0 bne _02207680 ldr r1, _02207798 ; =0x02211764 @@ -53932,13 +53938,13 @@ _02207680: ldr r0, [sp, #8] ldr r1, _022077A0 ; =0x0220F9D8 mov r2, r4 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _0220773C ldr r0, [sp, #8] ldr r1, _022077A4 ; =0x0220F9E0 mov r2, sl - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _0220773C ldr r0, [sp, #4] @@ -53956,7 +53962,7 @@ _02207680: str r5, [r0, #0x18] ldr r0, [sp, #4] ldr r1, [sp, #8] - bl FUN_0220781C + bl MOD04_0220781C cmp r0, #0 addne sp, sp, #0x18 movne r0, #1 @@ -53991,7 +53997,7 @@ _0220773C: blx r1 ldr r0, [sp, #4] ldr r1, [sp, #8] - bl FUN_02207BB4 + bl MOD04_02207BB4 ldr r0, _02207794 ; =0x02211760 mov r1, #1 str r1, [r0] @@ -54006,8 +54012,8 @@ _0220779C: .word 0x0220BD3C _022077A0: .word 0x0220F9D8 _022077A4: .word 0x0220F9E0 - arm_func_start FUN_022077A8 -FUN_022077A8: ; 0x022077A8 + arm_func_start MOD04_022077A8 +MOD04_022077A8: ; 0x022077A8 stmdb sp!, {r4, lr} sub sp, sp, #0x10 ldr r2, _02207814 ; =0x0220BD48 @@ -54017,7 +54023,7 @@ FUN_022077A8: ; 0x022077A8 add r0, sp, #4 add r1, sp, #8 str ip, [sp] - bl FUN_0220788C + bl MOD04_0220788C cmp r0, #0 addeq sp, sp, #0x10 moveq r0, #0 @@ -54029,7 +54035,7 @@ FUN_022077A8: ; 0x022077A8 str r4, [r0, #0x10] ldr r0, [sp, #4] ldr r1, [sp, #8] - bl FUN_0220781C + bl MOD04_0220781C cmp r0, #0 movne r0, #1 moveq r0, #0 @@ -54039,20 +54045,20 @@ FUN_022077A8: ; 0x022077A8 _02207814: .word 0x0220BD48 _02207818: .word 0x02211850 - arm_func_start FUN_0220781C -FUN_0220781C: ; 0x0220781C + arm_func_start MOD04_0220781C +MOD04_0220781C: ; 0x0220781C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r1 mov r5, r0 - bl FUN_02208364 + bl MOD04_02208364 mov r0, r4 - bl FUN_022092A0 + bl MOD04_022092A0 str r0, [r5] ldr r1, [r5] ldr r0, _02207884 ; =0x02211768 str r1, [r0] - bl FUN_02208350 + bl MOD04_02208350 ldr r0, [r5] cmp r0, #0 addge sp, sp, #4 @@ -54060,7 +54066,7 @@ FUN_0220781C: ; 0x0220781C ldmgeia sp!, {r4, r5, pc} mov r0, r5 mov r1, r4 - bl FUN_02207BB4 + bl MOD04_02207BB4 ldr r0, _02207888 ; =0x02211760 mov r1, #3 str r1, [r0] @@ -54071,8 +54077,8 @@ FUN_0220781C: ; 0x0220781C _02207884: .word 0x02211768 _02207888: .word 0x02211760 - arm_func_start FUN_0220788C -FUN_0220788C: ; 0x0220788C + arm_func_start MOD04_0220788C +MOD04_0220788C: ; 0x0220788C stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 mov r8, r0 @@ -54081,7 +54087,7 @@ FUN_0220788C: ; 0x0220788C ldr r1, _02207B44 ; =0x02211838 mov r6, r2 mov r4, r3 - bl FUN_022071C0 + bl MOD04_022071C0 cmp r0, #0 ldreq r0, _02207B48 ; =0x02211760 moveq r1, #8 @@ -54106,7 +54112,7 @@ FUN_0220788C: ; 0x0220788C ldr r0, [r0] str r0, [r5, #8] str r1, [r5, #0xc] - bl FUN_022082D4 + bl MOD04_022082D4 cmp r0, #0 bne _02207944 ldr r1, _02207B54 ; =0x02211764 @@ -54120,7 +54126,7 @@ FUN_0220788C: ; 0x0220788C mov r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, pc} _02207944: - ldr r1, _02207B58 ; =FUN_02207BE0 + ldr r1, _02207B58 ; =MOD04_02207BE0 ldr r0, _02207B5C ; =0x02211754 str r1, [sp] str r5, [sp, #4] @@ -54128,10 +54134,10 @@ _02207944: ldr r3, [sp, #0x20] mov r2, r4 mov r1, #1 - bl FUN_02209438 + bl MOD04_02209438 movs r4, r0 bne _0220799C - bl FUN_022082A0 + bl MOD04_022082A0 ldr r1, _02207B54 ; =0x02211764 mov r0, r5 ldr r1, [r1] @@ -54147,56 +54153,56 @@ _0220799C: str r5, [r8] mov r2, #1 str r4, [r7] - bl FUN_022086D4 + bl MOD04_022086D4 cmp r0, #0 beq _02207B1C ldr r1, _02207B64 ; =0x0220F9E4 ldr r2, _02207B68 ; =0x022117CC mov r0, r4 - bl FUN_02208764 + bl MOD04_02208764 cmp r0, #0 beq _02207B1C ldr r1, _02207B6C ; =0x0220F9F0 ldr r2, _02207B70 ; =0x0221176C mov r0, r4 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _02207B1C ldr r1, _02207B74 ; =0x0220F9F8 ldr r2, _02207B40 ; =0x0221182C mov r0, r4 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _02207B1C ldr r1, _02207B78 ; =0x0220FA04 ldr r2, _02207B7C ; =0x022117B0 mov r0, r4 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _02207B1C ldr r0, _02207B80 ; =0x0221174C ldr r1, _02207B84 ; =0x0220FA0C ldr r2, [r0] mov r0, r4 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _02207B1C ldr r1, _02207B88 ; =0x0220FA14 ldr r2, _02207B44 ; =0x02211838 mov r0, r4 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _02207B1C ldr r1, _02207B8C ; =0x0220FA1C ldr r2, _02207B90 ; =0x02211784 mov r0, r4 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _02207B1C ldr r1, _02207B94 ; =0x0220FA24 mov r0, r4 mov r2, r6 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _02207B1C ldr r0, _02207B98 ; =0x02211778 @@ -54205,7 +54211,7 @@ _0220799C: beq _02207AA0 ldr r1, _02207B9C ; =0x0220FA2C mov r0, r4 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _02207B1C _02207AA0: @@ -54215,7 +54221,7 @@ _02207AA0: beq _02207AC4 ldr r1, _02207BA0 ; =0x0220FA34 mov r0, r4 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _02207B1C _02207AC4: @@ -54225,7 +54231,7 @@ _02207AC4: beq _02207AE8 ldr r1, _02207BA4 ; =0x0220FA3C mov r0, r4 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _02207B1C _02207AE8: @@ -54236,7 +54242,7 @@ _02207AE8: ldr r1, _02207BAC ; =0x0220FA44 ldr r2, _02207BB0 ; =0x02211798 mov r0, r4 - bl FUN_022086F0 + bl MOD04_022086F0 cmp r0, #0 beq _02207B1C _02207B10: @@ -54246,7 +54252,7 @@ _02207B10: _02207B1C: mov r0, r5 mov r1, r4 - bl FUN_02207BB4 + bl MOD04_02207BB4 ldr r0, _02207B48 ; =0x02211760 mov r1, #1 str r1, [r0] @@ -54260,7 +54266,7 @@ _02207B48: .word 0x02211760 _02207B4C: .word 0x02211750 _02207B50: .word 0x0221175C _02207B54: .word 0x02211764 -_02207B58: .word FUN_02207BE0 +_02207B58: .word MOD04_02207BE0 _02207B5C: .word 0x02211754 _02207B60: .word 0x0220F9C8 _02207B64: .word 0x0220F9E4 @@ -54284,13 +54290,13 @@ _02207BA8: .word 0x02211748 _02207BAC: .word 0x0220FA44 _02207BB0: .word 0x02211798 - arm_func_start FUN_02207BB4 -FUN_02207BB4: ; 0x02207BB4 + arm_func_start MOD04_02207BB4 +MOD04_02207BB4: ; 0x02207BB4 stmdb sp!, {r4, lr} mov r4, r0 mov r0, r1 - bl FUN_02209410 - bl FUN_022082A0 + bl MOD04_02209410 + bl MOD04_022082A0 ldr r1, _02207BDC ; =0x02211764 mov r0, r4 ldr r1, [r1] @@ -54299,8 +54305,8 @@ FUN_02207BB4: ; 0x02207BB4 .align 2, 0 _02207BDC: .word 0x02211764 - arm_func_start FUN_02207BE0 -FUN_02207BE0: ; 0x02207BE0 + arm_func_start MOD04_02207BE0 +MOD04_02207BE0: ; 0x02207BE0 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x1c mov sl, r2 @@ -54323,20 +54329,20 @@ _02207C28: ldr r1, _02207F04 ; =0x0220FA4C ldr r0, [sp] add r2, sp, #0x10 - bl FUN_02209A98 + bl MOD04_02209A98 cmp r0, #3 movne r4, #3 bne _02207E1C ldr r0, [sp, #0x10] mov r1, #3 - bl FUN_02208564 + bl MOD04_02208564 ldr r1, _02207F08 ; =0x0000012E cmp r0, r1 bne _02207D80 ldr r0, [sp] add r1, sp, #0x14 mov sb, #0 - bl FUN_02209A68 + bl MOD04_02209A68 movs r8, r0 movmi r4, #3 bmi _02207E1C @@ -54368,7 +54374,7 @@ _02207CBC: add r0, r1, r3 ldr r1, _02207F0C ; =0x0220FA5C mov r2, r6 - bl FUN_022083C8 + bl MOD04_022083C8 cmp r0, #0 moveq sb, r5 movne sb, r4 @@ -54399,12 +54405,12 @@ _02207D24: bne _02207D6C add r0, sp, #0x18 add r1, r3, r1 - bl FUN_02206B60 + bl MOD04_02206B60 mov r1, r0 add r0, sp, #0x18 mov r2, #0 strb r2, [r0, r1] - bl FUN_02208564 + bl MOD04_02208564 str r0, [sp, #0xc] b _02207D6C _02207D64: @@ -54435,7 +54441,7 @@ _02207D98: _02207DB4: ldr r0, [sp] mov r1, sl - bl FUN_02207F1C + bl MOD04_02207F1C cmp r0, #0 movne r4, #0 moveq r4, #3 @@ -54443,7 +54449,7 @@ _02207DB4: _02207DD0: ldr r0, [sp] mov r1, sl - bl FUN_02207F9C + bl MOD04_02207F9C cmp r0, #0 movne r4, #0 moveq r4, #3 @@ -54451,7 +54457,7 @@ _02207DD0: _02207DEC: ldr r0, [sp] mov r1, sl - bl FUN_02207F70 + bl MOD04_02207F70 cmp r0, #0 movne r4, #0 moveq r4, #3 @@ -54498,18 +54504,18 @@ _02207E7C: ldr r1, [r1] blx r1 _02207E8C: - bl FUN_02208364 + bl MOD04_02208364 ldr r0, _02207F14 ; =0x02211768 mvn r1, #0 str r1, [r0] - bl FUN_02208350 + bl MOD04_02208350 ldr r0, [sp] - bl FUN_02209CC4 + bl MOD04_02209CC4 ldr r1, _02207F10 ; =0x02211764 mov r0, sl ldr r1, [r1] blx r1 - bl FUN_022082A0 + bl MOD04_022082A0 cmp r4, #0 ldrne r0, _02207F18 ; =0x02211760 strne r4, [r0] @@ -54526,7 +54532,7 @@ _02207EE8: cmp r0, #0 addeq sp, sp, #0x1c ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - bl FUN_0220828C + bl MOD04_0220828C add sp, sp, #0x1c ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 @@ -54537,17 +54543,17 @@ _02207F10: .word 0x02211764 _02207F14: .word 0x02211768 _02207F18: .word 0x02211760 - arm_func_start FUN_02207F1C -FUN_02207F1C: ; 0x02207F1C + arm_func_start MOD04_02207F1C +MOD04_02207F1C: ; 0x02207F1C stmdb sp!, {r4, lr} sub sp, sp, #8 mov r4, r1 add r1, sp, #0 - bl FUN_02209A68 + bl MOD04_02209A68 movs r1, r0 bmi _02207F64 ldr r0, [sp] - bl FUN_02208564 + bl MOD04_02208564 ldr r1, [r4, #0x10] add sp, sp, #8 str r0, [r1] @@ -54562,13 +54568,13 @@ _02207F64: add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_start FUN_02207F70 -FUN_02207F70: ; 0x02207F70 + arm_func_start MOD04_02207F70 +MOD04_02207F70: ; 0x02207F70 stmdb sp!, {r4, lr} sub sp, sp, #8 mov r4, r1 add r1, sp, #0 - bl FUN_02209A68 + bl MOD04_02209A68 ldr r1, [r4, #0x14] cmp r0, r1 moveq r0, #1 @@ -54576,8 +54582,8 @@ FUN_02207F70: ; 0x02207F70 add sp, sp, #8 ldmia sp!, {r4, pc} - arm_func_start FUN_02207F9C -FUN_02207F9C: ; 0x02207F9C + arm_func_start MOD04_02207F9C +MOD04_02207F9C: ; 0x02207F9C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x24 ldr r2, [r1, #0x14] @@ -54589,11 +54595,11 @@ FUN_02207F9C: ; 0x02207F9C mov r2, #0 ldr r0, [r0, #0x10] str r2, [sp, #4] - bl FUN_022083B4 + bl MOD04_022083B4 ldr r1, _02208224 ; =0x0220FA68 add r2, sp, #0x1c mov r0, r4 - bl FUN_02209A98 + bl MOD04_02209A98 cmp r0, #0 ble _02208008 ldr r1, [sp, #0x1c] @@ -54608,7 +54614,7 @@ FUN_02207F9C: ; 0x02207F9C _02208008: add r1, sp, #0x18 mov r0, r4 - bl FUN_02209A68 + bl MOD04_02209A68 mov sb, r0 cmp sb, #0 ble _02208218 @@ -54656,7 +54662,7 @@ _02208088: cmp r1, #8 bgt _02208218 add r0, r0, r6 - bl FUN_02208564 + bl MOD04_02208564 cmp r0, #0 blt _02208218 str r0, [r5, #0xac] @@ -54686,19 +54692,19 @@ _0220811C: bhs _02208218 add r1, r0, r6 mov r0, r5 - bl FUN_0220839C + bl MOD04_0220839C b _022081D8 _02208138: sub r4, r8, r6 mov r0, r4 - bl FUN_02206DC0 + bl MOD04_02206DC0 cmp r0, #0x64 bhs _02208218 mov r2, r4 add r0, r5, #0x22 ldr r1, [sp, #0x18] add r1, r1, r6 - bl FUN_02206B60 + bl MOD04_02206B60 b _022081D8 _02208164: sub r2, r8, r6 @@ -54706,7 +54712,7 @@ _02208164: bhs _02208218 add r1, r0, r6 add r0, r5, #0x88 - bl FUN_0220839C + bl MOD04_0220839C b _022081D8 _02208180: sub r2, r8, r6 @@ -54714,7 +54720,7 @@ _02208180: bhs _02208218 add r1, r0, r6 add r0, r5, #0x93 - bl FUN_0220839C + bl MOD04_0220839C b _022081D8 _0220819C: sub r2, r8, r6 @@ -54722,14 +54728,14 @@ _0220819C: bhs _02208218 add r1, r0, r6 add r0, r5, #0x9e - bl FUN_0220839C + bl MOD04_0220839C b _022081D8 _022081B8: sub r1, r8, r6 cmp r1, #8 bgt _02208218 add r0, r0, r6 - bl FUN_02208564 + bl MOD04_02208564 cmp r0, #0 blt _02208218 str r0, [r5, #0xac] @@ -54760,8 +54766,8 @@ _02208218: .align 2, 0 _02208224: .word 0x0220FA68 - arm_func_start FUN_02208228 -FUN_02208228: ; 0x02208228 + arm_func_start MOD04_02208228 +MOD04_02208228: ; 0x02208228 stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #0x14 mov sb, r0 @@ -54776,7 +54782,7 @@ _02208250: ldrb r1, [r7] mov r2, r4 add r0, r5, r6 - bl FUN_022083E0 + bl MOD04_022083E0 add r8, r8, #1 cmp r8, #6 add r7, r7, #1 @@ -54785,12 +54791,12 @@ _02208250: add r1, sp, #6 mov r0, sb mov r2, #0xc - bl FUN_02206C98 + bl MOD04_02206C98 add sp, sp, #0x14 ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} - arm_func_start FUN_0220828C -FUN_0220828C: ; 0x0220828C + arm_func_start MOD04_0220828C +MOD04_0220828C: ; 0x0220828C ldr ip, _0220829C ; =0x020CBDC4 mov r1, #0 mov r2, r1 @@ -54798,8 +54804,8 @@ FUN_0220828C: ; 0x0220828C .align 2, 0 _0220829C: .word 0x020CBDC4 - arm_func_start FUN_022082A0 -FUN_022082A0: ; 0x022082A0 + arm_func_start MOD04_022082A0 +MOD04_022082A0: ; 0x022082A0 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _022082CC ; =0x022118D4 @@ -54815,8 +54821,8 @@ FUN_022082A0: ; 0x022082A0 _022082CC: .word 0x022118D4 _022082D0: .word 0x022118D0 - arm_func_start FUN_022082D4 -FUN_022082D4: ; 0x022082D4 + arm_func_start MOD04_022082D4 +MOD04_022082D4: ; 0x022082D4 stmdb sp!, {r4, lr} ldr r0, _02208314 ; =0x022118D4 bl OS_LockMutex @@ -54837,12 +54843,12 @@ FUN_022082D4: ; 0x022082D4 _02208314: .word 0x022118D4 _02208318: .word 0x022118D0 - arm_func_start FUN_0220831C -FUN_0220831C: ; 0x0220831C + arm_func_start MOD04_0220831C +MOD04_0220831C: ; 0x0220831C bx lr - arm_func_start FUN_02208320 -FUN_02208320: ; 0x02208320 + arm_func_start MOD04_02208320 +MOD04_02208320: ; 0x02208320 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _02208348 ; =0x022118D4 @@ -54857,8 +54863,8 @@ FUN_02208320: ; 0x02208320 _02208348: .word 0x022118D4 _0220834C: .word 0x022118D0 - arm_func_start FUN_02208350 -FUN_02208350: ; 0x02208350 + arm_func_start MOD04_02208350 +MOD04_02208350: ; 0x02208350 ldr ip, _0220835C ; =0x020CBFA0 ldr r0, _02208360 ; =0x022118EC bx ip @@ -54866,8 +54872,8 @@ FUN_02208350: ; 0x02208350 _0220835C: .word 0x020CBFA0 _02208360: .word 0x022118EC - arm_func_start FUN_02208364 -FUN_02208364: ; 0x02208364 + arm_func_start MOD04_02208364 +MOD04_02208364: ; 0x02208364 ldr ip, _02208370 ; =0x020CC010 ldr r0, _02208374 ; =0x022118EC bx ip @@ -54875,12 +54881,12 @@ FUN_02208364: ; 0x02208364 _02208370: .word 0x020CC010 _02208374: .word 0x022118EC - arm_func_start FUN_02208378 -FUN_02208378: ; 0x02208378 + arm_func_start MOD04_02208378 +MOD04_02208378: ; 0x02208378 bx lr - arm_func_start FUN_0220837C -FUN_0220837C: ; 0x0220837C + arm_func_start MOD04_0220837C +MOD04_0220837C: ; 0x0220837C stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _02208398 ; =0x022118EC @@ -54891,8 +54897,8 @@ FUN_0220837C: ; 0x0220837C .align 2, 0 _02208398: .word 0x022118EC - arm_func_start FUN_0220839C -FUN_0220839C: ; 0x0220839C + arm_func_start MOD04_0220839C +MOD04_0220839C: ; 0x0220839C ldr ip, _022083B0 ; =0x020CE3E0 mov r3, r0 mov r0, r1 @@ -54901,8 +54907,8 @@ FUN_0220839C: ; 0x0220839C .align 2, 0 _022083B0: .word 0x020CE3E0 - arm_func_start FUN_022083B4 -FUN_022083B4: ; 0x022083B4 + arm_func_start MOD04_022083B4 +MOD04_022083B4: ; 0x022083B4 ldr ip, _022083C4 ; =0x020CE34C mov r2, r1 mov r1, #0 @@ -54910,22 +54916,22 @@ FUN_022083B4: ; 0x022083B4 .align 2, 0 _022083C4: .word 0x020CE34C - arm_func_start FUN_022083C8 -FUN_022083C8: ; 0x022083C8 + arm_func_start MOD04_022083C8 +MOD04_022083C8: ; 0x022083C8 ldr ip, _022083D0 ; =0x020DE03C bx ip .align 2, 0 _022083D0: .word 0x020DE03C - arm_func_start FUN_022083D4 -FUN_022083D4: ; 0x022083D4 + arm_func_start MOD04_022083D4 +MOD04_022083D4: ; 0x022083D4 ldr ip, _022083DC ; =0x020DE0BC bx ip .align 2, 0 _022083DC: .word 0x020DE0BC - arm_func_start FUN_022083E0 -FUN_022083E0: ; 0x022083E0 + arm_func_start MOD04_022083E0 +MOD04_022083E0: ; 0x022083E0 stmdb sp!, {lr} sub sp, sp, #4 cmp r2, #8 @@ -54956,8 +54962,8 @@ _02208440: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_0220844C -FUN_0220844C: ; 0x0220844C + arm_func_start MOD04_0220844C +MOD04_0220844C: ; 0x0220844C stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc ldr r4, _02208554 ; =0x0220BD64 @@ -55031,32 +55037,32 @@ _02208530: .align 2, 0 _02208554: .word 0x0220BD64 - arm_func_start FUN_02208558 -FUN_02208558: ; 0x02208558 - ldr ip, _02208560 ; =FUN_0220B788 + arm_func_start MOD04_02208558 +MOD04_02208558: ; 0x02208558 + ldr ip, _02208560 ; =MOD04_0220B788 bx ip .align 2, 0 -_02208560: .word FUN_0220B788 +_02208560: .word MOD04_0220B788 - arm_func_start FUN_02208564 -FUN_02208564: ; 0x02208564 - ldr ip, _0220856C ; =FUN_0220B844 + arm_func_start MOD04_02208564 +MOD04_02208564: ; 0x02208564 + ldr ip, _0220856C ; =MOD04_0220B844 bx ip .align 2, 0 -_0220856C: .word FUN_0220B844 +_0220856C: .word MOD04_0220B844 - arm_func_start FUN_02208570 -FUN_02208570: ; 0x02208570 + arm_func_start MOD04_02208570 +MOD04_02208570: ; 0x02208570 stmdb sp!, {r4, lr} mov r4, r0 - bl FUN_022091BC - bl FUN_02208C24 + bl MOD04_022091BC + bl MOD04_02208C24 ldr r0, _022085AC ; =0x0221191C ldr r1, _022085B0 ; =0x02211904 ldr r0, [r0] ldr r1, [r1] blx r1 - bl FUN_02208CF4 + bl MOD04_02208CF4 ldr r0, _022085B4 ; =0x02211920 mov r1, #0 str r1, [r0] @@ -55067,8 +55073,8 @@ _022085AC: .word 0x0221191C _022085B0: .word 0x02211904 _022085B4: .word 0x02211920 - arm_func_start FUN_022085B8 -FUN_022085B8: ; 0x022085B8 + arm_func_start MOD04_022085B8 +MOD04_022085B8: ; 0x022085B8 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r3, _022086B0 ; =0x02211908 @@ -55087,7 +55093,7 @@ FUN_022085B8: ; 0x022085B8 str r7, [lr] str r7, [ip] str r7, [r3] - bl FUN_02208CF8 + bl MOD04_02208CF8 cmp r0, #0 ldreq r0, _022086B0 ; =0x02211908 moveq r1, #9 @@ -55107,13 +55113,13 @@ FUN_022085B8: ; 0x022085B8 ldr r0, _022086B0 ; =0x02211908 mov r1, #1 str r1, [r0] - bl FUN_02208CF4 + bl MOD04_02208CF4 add sp, sp, #4 mov r0, r7 ldmia sp!, {r4, r5, r6, r7, pc} _02208660: mov r0, r4 - bl FUN_02208C54 + bl MOD04_02208C54 cmp r0, #0 ldrne r1, _022086D0 ; =0x02211920 movne r0, #1 @@ -55128,7 +55134,7 @@ _02208660: mov r3, #9 str r3, [r1] blx r2 - bl FUN_02208CF4 + bl MOD04_02208CF4 mov r0, r7 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, pc} @@ -55143,8 +55149,8 @@ _022086C8: .word 0x02211918 _022086CC: .word 0x0221191C _022086D0: .word 0x02211920 - arm_func_start FUN_022086D4 -FUN_022086D4: ; 0x022086D4 + arm_func_start MOD04_022086D4 +MOD04_022086D4: ; 0x022086D4 ldr r3, [r0] cmp r3, #0 movne r0, #0 @@ -55153,8 +55159,8 @@ FUN_022086D4: ; 0x022086D4 moveq r0, #1 bx lr - arm_func_start FUN_022086F0 -FUN_022086F0: ; 0x022086F0 + arm_func_start MOD04_022086F0 +MOD04_022086F0: ; 0x022086F0 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r0 ldr r0, [r8] @@ -55165,19 +55171,19 @@ FUN_022086F0: ; 0x022086F0 movne r0, r5 ldmneia sp!, {r4, r5, r6, r7, r8, pc} mov r0, r6 - bl FUN_02209FBC + bl MOD04_02209FBC mov r4, r0 mov r0, r8 mov r1, r6 mov r2, r4 - bl FUN_02208794 + bl MOD04_02208794 cmp r0, #0 beq _0220875C mov r1, r7 mov r2, r6 add r0, r8, #0x38 mov r3, #0x18 - bl FUN_022088CC + bl MOD04_022088CC movs r5, r0 ldrne r0, [r8, #0x38] ldrne r0, [r0] @@ -55186,8 +55192,8 @@ _0220875C: mov r0, r5 ldmia sp!, {r4, r5, r6, r7, r8, pc} - arm_func_start FUN_02208764 -FUN_02208764: ; 0x02208764 + arm_func_start MOD04_02208764 +MOD04_02208764: ; 0x02208764 stmdb sp!, {lr} sub sp, sp, #4 ldr r3, [r0] @@ -55197,12 +55203,12 @@ FUN_02208764: ; 0x02208764 ldmneia sp!, {pc} add r0, r0, #0x34 mov r3, #0x18 - bl FUN_022088CC + bl MOD04_022088CC add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_02208794 -FUN_02208794: ; 0x02208794 + arm_func_start MOD04_02208794 +MOD04_02208794: ; 0x02208794 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 str r0, [sp] @@ -55213,7 +55219,7 @@ FUN_02208794: ; 0x02208794 mov r1, sb add r2, r2, #0x46 mov r3, #0x12 - bl FUN_0220B604 + bl MOD04_0220B604 cmp r0, #0 addlt sp, sp, #4 movlt r0, #1 @@ -55229,7 +55235,7 @@ _022087E4: ldrsb r8, [r6, #0x44] _022087F0: and r0, r8, #0xff - bl FUN_02208854 + bl MOD04_02208854 mov r8, r0 strb r8, [r6, #0x44] ldrsb r0, [r7] @@ -55239,7 +55245,7 @@ _022087F0: mov r1, sb mov r2, r5 mov r3, r4 - bl FUN_0220B604 + bl MOD04_0220B604 cmp r0, #0 bge _022087F0 add sp, sp, #4 @@ -55256,8 +55262,8 @@ _02208834: .align 2, 0 _02208850: .word 0x0220BDF7 - arm_func_start FUN_02208854 -FUN_02208854: ; 0x02208854 + arm_func_start MOD04_02208854 +MOD04_02208854: ; 0x02208854 add r0, r0, #1 and r0, r0, #0xff cmp r0, #0x7b @@ -55273,8 +55279,8 @@ _0220887C: mov r0, r0, asr #0x18 bx lr - arm_func_start FUN_02208888 -FUN_02208888: ; 0x02208888 + arm_func_start MOD04_02208888 +MOD04_02208888: ; 0x02208888 ldr r3, [r0] cmp r3, #0 beq _022088C4 @@ -55294,8 +55300,8 @@ _022088C4: mov r0, r3 bx lr - arm_func_start FUN_022088CC -FUN_022088CC: ; 0x022088CC + arm_func_start MOD04_022088CC +MOD04_022088CC: ; 0x022088CC stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} mov sb, r0 ldr sl, [sb] @@ -55308,7 +55314,7 @@ FUN_022088CC: ; 0x022088CC ldr r1, [sl, #8] mov r0, r8 mov r4, sl - bl FUN_0220B704 + bl MOD04_0220B704 cmp r0, #0 beq _02208944 ldr r4, [sl, #4] @@ -55318,7 +55324,7 @@ FUN_022088CC: ; 0x022088CC _02208918: ldr r1, [r4, #8] mov r0, r8 - bl FUN_0220B704 + bl MOD04_0220B704 cmp r0, #0 moveq r5, #1 beq _02208948 @@ -55371,17 +55377,17 @@ _022089D0: _022089D8: .word 0x02211924 _022089DC: .word 0x02211908 - arm_func_start FUN_022089E0 -FUN_022089E0: ; 0x022089E0 - ldr ip, _022089EC ; =FUN_02208888 + arm_func_start MOD04_022089E0 +MOD04_022089E0: ; 0x022089E0 + ldr ip, _022089EC ; =MOD04_02208888 ldr r0, _022089F0 ; =0x02211910 bx ip .align 2, 0 -_022089EC: .word FUN_02208888 +_022089EC: .word MOD04_02208888 _022089F0: .word 0x02211910 - arm_func_start FUN_022089F4 -FUN_022089F4: ; 0x022089F4 + arm_func_start MOD04_022089F4 +MOD04_022089F4: ; 0x022089F4 stmdb sp!, {r4, lr} ldr r4, _02208A20 ; =0x02211910 ldr r0, [r4] @@ -55389,7 +55395,7 @@ FUN_022089F4: ; 0x022089F4 ldmeqia sp!, {r4, pc} _02208A08: ldr r0, [r0, #8] - bl FUN_02208A24 + bl MOD04_02208A24 ldr r0, [r4] cmp r0, #0 bne _02208A08 @@ -55397,12 +55403,12 @@ _02208A08: .align 2, 0 _02208A20: .word 0x02211910 - arm_func_start FUN_02208A24 -FUN_02208A24: ; 0x02208A24 + arm_func_start MOD04_02208A24 +MOD04_02208A24: ; 0x02208A24 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, #0 - bl FUN_02208AD0 + bl MOD04_02208AD0 movs r4, r0 beq _02208ABC ldr r0, _02208AC8 ; =0x02211910 @@ -55429,7 +55435,7 @@ _02208A84: ldr r7, [r0, #0x3c] ldr r6, [r0, #0x30] ldr r5, [r0, #0x2c] - bl FUN_02209338 + bl MOD04_02209338 ldr r1, _02208ACC ; =0x02211904 mov r0, r4 ldr r1, [r1] @@ -55447,8 +55453,8 @@ _02208ABC: _02208AC8: .word 0x02211910 _02208ACC: .word 0x02211904 - arm_func_start FUN_02208AD0 -FUN_02208AD0: ; 0x02208AD0 + arm_func_start MOD04_02208AD0 +MOD04_02208AD0: ; 0x02208AD0 ldr r1, _02208B24 ; =0x02211910 mov ip, #0 ldr r3, [r1] @@ -55475,8 +55481,8 @@ _02208B1C: .align 2, 0 _02208B24: .word 0x02211910 - arm_func_start FUN_02208B28 -FUN_02208B28: ; 0x02208B28 + arm_func_start MOD04_02208B28 +MOD04_02208B28: ; 0x02208B28 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r1, _02208BD8 ; =0x02211924 @@ -55528,8 +55534,8 @@ _02208BD8: .word 0x02211924 _02208BDC: .word 0x02211910 _02208BE0: .word 0x0221190C - arm_func_start FUN_02208BE4 -FUN_02208BE4: ; 0x02208BE4 + arm_func_start MOD04_02208BE4 +MOD04_02208BE4: ; 0x02208BE4 ldr ip, _02208BF8 ; =0x020CBDC4 mov r1, #0 ldr r0, _02208BFC ; =0x02211944 @@ -55539,8 +55545,8 @@ FUN_02208BE4: ; 0x02208BE4 _02208BF8: .word 0x020CBDC4 _02208BFC: .word 0x02211944 - arm_func_start FUN_02208C00 -FUN_02208C00: ; 0x02208C00 + arm_func_start MOD04_02208C00 +MOD04_02208C00: ; 0x02208C00 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _02208C20 ; =0x02211944 @@ -55552,14 +55558,14 @@ FUN_02208C00: ; 0x02208C00 .align 2, 0 _02208C20: .word 0x02211944 - arm_func_start FUN_02208C24 -FUN_02208C24: ; 0x02208C24 + arm_func_start MOD04_02208C24 +MOD04_02208C24: ; 0x02208C24 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _02208C4C ; =0x02211918 mov r1, #1 str r1, [r0] - bl FUN_02208BE4 + bl MOD04_02208BE4 ldr r0, _02208C50 ; =0x02211964 bl OS_JoinThread add sp, sp, #4 @@ -55568,8 +55574,8 @@ FUN_02208C24: ; 0x02208C24 _02208C4C: .word 0x02211918 _02208C50: .word 0x02211964 - arm_func_start FUN_02208C54 -FUN_02208C54: ; 0x02208C54 + arm_func_start MOD04_02208C54 +MOD04_02208C54: ; 0x02208C54 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc mov r5, r0 @@ -55586,7 +55592,7 @@ FUN_02208C54: ; 0x02208C54 mov r0, #0x2000 str r0, [sp] ldr r0, _02208CC4 ; =0x02211964 - ldr r1, _02208CC8 ; =FUN_0220A044 + ldr r1, _02208CC8 ; =MOD04_0220A044 add r3, r4, #0x2000 mov r2, #0 str r5, [sp, #4] @@ -55600,10 +55606,10 @@ FUN_02208C54: ; 0x02208C54 _02208CBC: .word 0x02211944 _02208CC0: .word 0x02211928 _02208CC4: .word 0x02211964 -_02208CC8: .word FUN_0220A044 +_02208CC8: .word MOD04_0220A044 - arm_func_start FUN_02208CCC -FUN_02208CCC: ; 0x02208CCC + arm_func_start MOD04_02208CCC +MOD04_02208CCC: ; 0x02208CCC ldr ip, _02208CD8 ; =0x020CBFA0 ldr r0, _02208CDC ; =0x0221192C bx ip @@ -55611,8 +55617,8 @@ FUN_02208CCC: ; 0x02208CCC _02208CD8: .word 0x020CBFA0 _02208CDC: .word 0x0221192C - arm_func_start FUN_02208CE0 -FUN_02208CE0: ; 0x02208CE0 + arm_func_start MOD04_02208CE0 +MOD04_02208CE0: ; 0x02208CE0 ldr ip, _02208CEC ; =0x020CC010 ldr r0, _02208CF0 ; =0x0221192C bx ip @@ -55620,12 +55626,12 @@ FUN_02208CE0: ; 0x02208CE0 _02208CEC: .word 0x020CC010 _02208CF0: .word 0x0221192C - arm_func_start FUN_02208CF4 -FUN_02208CF4: ; 0x02208CF4 + arm_func_start MOD04_02208CF4 +MOD04_02208CF4: ; 0x02208CF4 bx lr - arm_func_start FUN_02208CF8 -FUN_02208CF8: ; 0x02208CF8 + arm_func_start MOD04_02208CF8 +MOD04_02208CF8: ; 0x02208CF8 stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _02208D14 ; =0x0221192C @@ -55636,8 +55642,8 @@ FUN_02208CF8: ; 0x02208CF8 .align 2, 0 _02208D14: .word 0x0221192C - arm_func_start FUN_02208D18 -FUN_02208D18: ; 0x02208D18 + arm_func_start MOD04_02208D18 +MOD04_02208D18: ; 0x02208D18 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 mov r8, r0 @@ -55647,7 +55653,7 @@ FUN_02208D18: ; 0x02208D18 mov r0, r4 mov r1, r6 mov r5, r3 - bl FUN_02208DB8 + bl MOD04_02208DB8 cmp r0, #0 addne sp, sp, #8 ldrne r0, _02208D84 ; =0xFFFFFC15 @@ -55662,14 +55668,14 @@ FUN_02208D18: ; 0x02208D18 mov r0, r8 mov r1, r7 add r2, r2, r6 - bl FUN_02209DB4 + bl MOD04_02209DB4 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _02208D84: .word 0xFFFFFC15 - arm_func_start FUN_02208D88 -FUN_02208D88: ; 0x02208D88 + arm_func_start MOD04_02208D88 +MOD04_02208D88: ; 0x02208D88 stmdb sp!, {lr} sub sp, sp, #4 ldr ip, [r0, #0x30] @@ -55679,20 +55685,20 @@ FUN_02208D88: ; 0x02208D88 ldr r3, [ip, #0xc] add r2, r2, lr sub r3, r3, lr - bl FUN_02209DB4 + bl MOD04_02209DB4 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_02208DB8 -FUN_02208DB8: ; 0x02208DB8 + arm_func_start MOD04_02208DB8 +MOD04_02208DB8: ; 0x02208DB8 ldr r0, [r0, #0xc] cmp r0, r1 movls r0, #1 movhi r0, #0 bx lr - arm_func_start FUN_02208DCC -FUN_02208DCC: ; 0x02208DCC + arm_func_start MOD04_02208DCC +MOD04_02208DCC: ; 0x02208DCC stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} sub sp, sp, #4 mov r4, r0 @@ -55714,7 +55720,7 @@ FUN_02208DCC: ; 0x02208DCC mov r0, r8 mov r2, r5 add r1, r1, r7 - bl FUN_02209F90 + bl MOD04_02209F90 add r7, r7, r5 sub r6, r6, r5 add r8, r8, r5 @@ -55745,7 +55751,7 @@ _02208E70: mov r0, r8 mov r2, r4 add r1, r1, r7 - bl FUN_02209F90 + bl MOD04_02209F90 add r0, r7, r4 and r7, r0, sb subs r6, r6, r4 @@ -55763,8 +55769,8 @@ _02208EB4: .align 2, 0 _02208EC0: .word 0x000001FF - arm_func_start FUN_02208EC4 -FUN_02208EC4: ; 0x02208EC4 + arm_func_start MOD04_02208EC4 +MOD04_02208EC4: ; 0x02208EC4 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc mov sb, r1 @@ -55776,11 +55782,11 @@ FUN_02208EC4: ; 0x02208EC4 bge _02208F98 add r2, sp, #0 add r3, sp, #4 - bl FUN_02209158 + bl MOD04_02209158 add r1, sp, #0 add r2, sp, #4 mov r0, sl - bl FUN_022090E4 + bl MOD04_022090E4 sub r6, r4, #1 mov r4, #1 add fp, sp, #0 @@ -55803,7 +55809,7 @@ _02208F44: mov r0, sl mov r1, fp add r2, sp, #4 - bl FUN_022090E4 + bl MOD04_022090E4 add sb, sb, #1 add r8, r8, #1 _02208F5C: @@ -55829,8 +55835,8 @@ _02208F98: add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_02208FA4 -FUN_02208FA4: ; 0x02208FA4 + arm_func_start MOD04_02208FA4 +MOD04_02208FA4: ; 0x02208FA4 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 mov r7, r1 @@ -55840,7 +55846,7 @@ FUN_02208FA4: ; 0x02208FA4 bge _02209008 add r2, sp, #0 add r3, sp, #4 - bl FUN_02209158 + bl MOD04_02209158 cmp r7, r6 bge _02209008 add r5, sp, #0 @@ -55849,7 +55855,7 @@ _02208FDC: mov r0, r8 mov r1, r5 mov r2, r4 - bl FUN_022090E4 + bl MOD04_022090E4 cmp r0, #0x20 addne sp, sp, #8 movne r0, r7 @@ -55862,8 +55868,8 @@ _02209008: add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, pc} - arm_func_start FUN_02209014 -FUN_02209014: ; 0x02209014 + arm_func_start MOD04_02209014 +MOD04_02209014: ; 0x02209014 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc movs r7, r3 @@ -55879,7 +55885,7 @@ FUN_02209014: ; 0x02209014 add r3, sp, #4 mov r0, sl mov r1, sb - bl FUN_02209158 + bl MOD04_02209158 cmp sb, r8 bge _022090D8 add fp, sp, #0 @@ -55889,7 +55895,7 @@ _02209068: mov r0, sl mov r1, fp add r2, sp, #4 - bl FUN_022090E4 + bl MOD04_022090E4 cmp r0, #0x3a bne _02209094 cmp r7, #0 @@ -55923,8 +55929,8 @@ _022090D8: add sp, sp, #0xc ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - arm_func_start FUN_022090E4 -FUN_022090E4: ; 0x022090E4 + arm_func_start MOD04_022090E4 +MOD04_022090E4: ; 0x022090E4 ldr r3, [r1] cmp r3, #0 bne _02209120 @@ -55957,8 +55963,8 @@ _0220913C: ldrsb r0, [r0, #4] bx lr - arm_func_start FUN_02209158 -FUN_02209158: ; 0x02209158 + arm_func_start MOD04_02209158 +MOD04_02209158: ; 0x02209158 stmdb sp!, {lr} sub sp, sp, #4 cmp r1, #0x400 @@ -55988,11 +55994,11 @@ _0220919C: .align 2, 0 _022091B8: .word 0x000001FF - arm_func_start FUN_022091BC -FUN_022091BC: ; 0x022091BC + arm_func_start MOD04_022091BC +MOD04_022091BC: ; 0x022091BC stmdb sp!, {lr} sub sp, sp, #4 - bl FUN_02208CE0 + bl MOD04_02208CE0 ldr r0, _02209214 ; =0x02211914 ldr r2, [r0] cmp r2, #0 @@ -56007,22 +56013,22 @@ FUN_022091BC: ; 0x022091BC ldr r1, [r0] ldr r0, [r1, #0xc] ldr r1, [r1, #0x10] - bl FUN_02209D40 + bl MOD04_02209D40 _02209204: - bl FUN_022089F4 - bl FUN_02208CCC + bl MOD04_022089F4 + bl MOD04_02208CCC add sp, sp, #4 ldmfd sp!, {pc} .align 2, 0 _02209214: .word 0x02211914 - arm_func_start FUN_02209218 -FUN_02209218: ; 0x02209218 + arm_func_start MOD04_02209218 +MOD04_02209218: ; 0x02209218 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 mov r5, #0 - bl FUN_02208CE0 + bl MOD04_02208CE0 ldr r0, _0220929C ; =0x02211914 ldr r2, [r0] cmp r2, #0 @@ -56040,24 +56046,24 @@ FUN_02209218: ; 0x02209218 ldr r1, [r0] ldr r0, [r1, #0xc] ldr r1, [r1, #0x10] - bl FUN_02209D40 + bl MOD04_02209D40 mov r5, #1 _02209278: cmp r5, #0 bne _0220928C mov r0, r4 - bl FUN_02208A24 + bl MOD04_02208A24 mov r5, r0 _0220928C: - bl FUN_02208CCC + bl MOD04_02208CCC mov r0, r5 add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 _0220929C: .word 0x02211914 - arm_func_start FUN_022092A0 -FUN_022092A0: ; 0x022092A0 + arm_func_start MOD04_022092A0 +MOD04_022092A0: ; 0x022092A0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -56081,9 +56087,9 @@ FUN_022092A0: ; 0x022092A0 mvneq r0, #0 ldmeqia sp!, {r4, r5, pc} _022092F8: - bl FUN_02208CE0 + bl MOD04_02208CE0 mov r0, r5 - bl FUN_02208B28 + bl MOD04_02208B28 movs r4, r0 ldrmi r0, _02209334 ; =0x02211908 movmi r1, #1 @@ -56091,23 +56097,23 @@ _022092F8: bmi _02209324 mov r0, #1 str r0, [r5] - bl FUN_02208BE4 + bl MOD04_02208BE4 _02209324: - bl FUN_02208CCC + bl MOD04_02208CCC mov r0, r4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 _02209334: .word 0x02211908 - arm_func_start FUN_02209338 -FUN_02209338: ; 0x02209338 + arm_func_start MOD04_02209338 +MOD04_02209338: ; 0x02209338 stmdb sp!, {r4, lr} mov r4, r0 ldr r0, [r4, #0x34] - bl FUN_022093B0 + bl MOD04_022093B0 ldr r0, [r4, #0x38] - bl FUN_022093B0 + bl MOD04_022093B0 ldr r0, [r4, #0x20] cmp r0, #0 beq _02209384 @@ -56136,8 +56142,8 @@ _02209384: .align 2, 0 _022093AC: .word 0x02211904 - arm_func_start FUN_022093B0 -FUN_022093B0: ; 0x022093B0 + arm_func_start MOD04_022093B0 +MOD04_022093B0: ; 0x022093B0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 movs r7, r0 @@ -56167,8 +56173,8 @@ _022093FC: .align 2, 0 _0220940C: .word 0x02211904 - arm_func_start FUN_02209410 -FUN_02209410: ; 0x02209410 + arm_func_start MOD04_02209410 +MOD04_02209410: ; 0x02209410 stmdb sp!, {r4, lr} ldr r1, _02209434 ; =0x02211904 mov r4, r0 @@ -56176,13 +56182,13 @@ FUN_02209410: ; 0x02209410 ldr r1, [r1] blx r1 mov r0, r4 - bl FUN_02209338 + bl MOD04_02209338 ldmia sp!, {r4, pc} .align 2, 0 _02209434: .word 0x02211904 - arm_func_start FUN_02209438 -FUN_02209438: ; 0x02209438 + arm_func_start MOD04_02209438 +MOD04_02209438: ; 0x02209438 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0xc mov fp, r0 @@ -56216,7 +56222,7 @@ _02209478: streq r1, [r0] beq _02209918 mov r1, #0x58 - bl FUN_02209FA8 + bl MOD04_02209FA8 ldr r1, _022099A4 ; =0x02211924 mov r0, #0x420 ldr r2, [r1] @@ -56230,13 +56236,13 @@ _02209478: streq r1, [r0] beq _02209918 mov r1, #0x420 - bl FUN_02209FA8 + bl MOD04_02209FA8 ldr r1, [r7, #0x30] mov r0, fp str r5, [r1, #0x18] ldr r1, [r7, #0x30] str r4, [r1, #0xc] - bl FUN_02209FBC + bl MOD04_02209FBC mov r4, r0 cmp r4, #7 ldrle r0, _022099A0 ; =0x02211908 @@ -56249,13 +56255,13 @@ _02209478: mov r0, fp mov r2, sl str r3, [r7, #0x28] - bl FUN_02209FC8 + bl MOD04_02209FC8 cmp r0, #0 beq _02209580 ldr r1, _022099AC ; =0x0220FA80 mov r0, fp mov r2, #8 - bl FUN_02209FC8 + bl MOD04_02209FC8 cmp r0, #0 ldrne r0, _022099A0 ; =0x02211908 movne r1, #4 @@ -56289,7 +56295,7 @@ _022095B4: sub r0, sb, #1 mov r1, r4 add r0, r8, r0 - bl FUN_0220B8E4 + bl MOD04_0220B8E4 mov r0, r0, lsl #0x18 movs r0, r0, asr #0x18 ldrmi r0, _022099A0 ; =0x02211908 @@ -56337,7 +56343,7 @@ _0220962C: beq _02209918 mov r1, fp mov r2, sl - bl FUN_02209F90 + bl MOD04_02209F90 mov r6, #0 ldr r0, [sp, #4] mov sb, r6 @@ -56356,7 +56362,7 @@ _022096AC: sub r0, r6, #1 mov r1, fp add r0, r8, r0 - bl FUN_0220B8E4 + bl MOD04_0220B8E4 mov r0, r0, lsl #0x18 mov r3, r0, asr #0x18 add r1, sl, sb @@ -56447,7 +56453,7 @@ _022097E4: ldr r1, [r7, #0x10] add r0, r0, r2 sub r1, r1, r2 - bl FUN_0220B688 + bl MOD04_0220B688 cmp r0, #0 ldrlt r0, [r7, #0x28] blt _02209834 @@ -56480,7 +56486,7 @@ _02209840: streq r1, [r0] beq _02209918 mov r1, #0x830 - bl FUN_02209FA8 + bl MOD04_02209FA8 ldr r1, _022099A4 ; =0x02211924 add r0, r4, #1 ldr r2, [r1] @@ -56498,7 +56504,7 @@ _02209840: ldr r1, [r7, #0x24] mov r2, r4 add r1, r1, sl - bl FUN_02209F90 + bl MOD04_02209F90 ldr r0, [r7, #0x20] mov r1, #0 ldr r0, [r0, #0x800] @@ -56507,7 +56513,7 @@ _022098E4: ldr r1, _022099B8 ; =0x0220BDE4 add r0, r7, #0x44 mov r2, #0x14 - bl FUN_02209F90 + bl MOD04_02209F90 ldr r0, [sp, #0x34] ldr r1, [sp, #0x30] str r0, [r7, #0x2c] @@ -56567,8 +56573,8 @@ _022099B4: .word 0x0000FFFF _022099B8: .word 0x0220BDE4 _022099BC: .word 0x02211904 - arm_func_start FUN_022099C0 -FUN_022099C0: ; 0x022099C0 + arm_func_start MOD04_022099C0 +MOD04_022099C0: ; 0x022099C0 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r5, r0 @@ -56613,8 +56619,8 @@ _02209A54: add sp, sp, #8 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_02209A68 -FUN_02209A68: ; 0x02209A68 + arm_func_start MOD04_02209A68 +MOD04_02209A68: ; 0x02209A68 ldr r2, [r0, #8] cmp r2, #0 beq _02209A80 @@ -56630,8 +56636,8 @@ _02209A88: ldr r0, [r0, #4] bx lr - arm_func_start FUN_02209A98 -FUN_02209A98: ; 0x02209A98 + arm_func_start MOD04_02209A98 +MOD04_02209A98: ; 0x02209A98 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 @@ -56654,7 +56660,7 @@ _02209AE0: add r2, sp, #0 mov r0, r7 mov r1, r6 - bl FUN_02209BB8 + bl MOD04_02209BB8 movs r4, r0 bmi _02209B44 ldr r1, _02209BB0 ; =0x02211924 @@ -56670,7 +56676,7 @@ _02209AE0: ldr r2, [sp] mov r0, r7 mov r3, r4 - bl FUN_02208DCC + bl MOD04_02208DCC ldr r1, [r7, #0x14] add sp, sp, #4 mov r0, r4 @@ -56679,7 +56685,7 @@ _02209AE0: _02209B44: ldr r0, _02209BB4 ; =0x0220FA8C mov r1, r6 - bl FUN_0220A038 + bl MOD04_0220A038 cmp r0, #0 addne sp, sp, #4 mvnne r0, #0 @@ -56697,7 +56703,7 @@ _02209B44: mov r0, r7 mov r2, #9 mov r3, #3 - bl FUN_02208DCC + bl MOD04_02208DCC ldr r1, [r7, #0x14] mov r0, #3 str r1, [r5] @@ -56708,8 +56714,8 @@ _02209BAC: .word 0x02211904 _02209BB0: .word 0x02211924 _02209BB4: .word 0x0220FA8C - arm_func_start FUN_02209BB8 -FUN_02209BB8: ; 0x02209BB8 + arm_func_start MOD04_02209BB8 +MOD04_02209BB8: ; 0x02209BB8 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #8 mov r5, r0 @@ -56718,7 +56724,7 @@ FUN_02209BB8: ; 0x02209BB8 ldr r2, [r5] add r3, sp, #4 mov r1, #0xc - bl FUN_02209014 + bl MOD04_02209014 mov sb, r0 cmp sb, #0 ble _02209CB8 @@ -56729,7 +56735,7 @@ _02209BF0: mov r0, r5 mov r1, sb mov r3, r7 - bl FUN_02209014 + bl MOD04_02209014 ldr r2, [sp, #4] mov r8, r0 cmp r2, #0 @@ -56738,7 +56744,7 @@ _02209BF0: mov r1, sb mov r3, sl str r6, [sp] - bl FUN_02208EC4 + bl MOD04_02208EC4 cmp r0, #0 bne _02209CAC ldr r1, [sp, #4] @@ -56749,7 +56755,7 @@ _02209BF0: ldr r2, [r5] mov r0, r5 mov r3, #0 - bl FUN_02209014 + bl MOD04_02209014 cmp r0, #0 ldrle r6, [r5] ble _02209C74 @@ -56763,7 +56769,7 @@ _02209C74: mov r0, r5 mov r2, r6 add r1, r1, #1 - bl FUN_02208FA4 + bl MOD04_02208FA4 cmp r0, #0 movlt r0, r6 str r0, [r4] @@ -56783,8 +56789,8 @@ _02209CB8: add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_start FUN_02209CC4 -FUN_02209CC4: ; 0x02209CC4 + arm_func_start MOD04_02209CC4 +MOD04_02209CC4: ; 0x02209CC4 stmdb sp!, {r4, r5, r6, lr} mov r4, r0 ldr r0, [r4, #0x1c] @@ -56822,8 +56828,8 @@ _02209D28: .align 2, 0 _02209D3C: .word 0x02211904 - arm_func_start FUN_02209D40 -FUN_02209D40: ; 0x02209D40 + arm_func_start MOD04_02209D40 +MOD04_02209D40: ; 0x02209D40 stmdb sp!, {lr} sub sp, sp, #4 cmp r1, #0 @@ -56835,8 +56841,8 @@ FUN_02209D40: ; 0x02209D40 add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_02209D68 -FUN_02209D68: ; 0x02209D68 + arm_func_start MOD04_02209D68 +MOD04_02209D68: ; 0x02209D68 stmdb sp!, {r4, lr} mov r4, r0 mov r0, r1 @@ -56858,8 +56864,8 @@ FUN_02209D68: ; 0x02209D68 .align 2, 0 _02209DB0: .word 0xFFFFFC16 - arm_func_start FUN_02209DB4 -FUN_02209DB4: ; 0x02209DB4 + arm_func_start MOD04_02209DB4 +MOD04_02209DB4: ; 0x02209DB4 stmdb sp!, {r4, lr} mov r4, r0 mov r0, r1 @@ -56881,8 +56887,8 @@ FUN_02209DB4: ; 0x02209DB4 .align 2, 0 _02209DFC: .word 0xFFFFFC16 - arm_func_start FUN_02209E00 -FUN_02209E00: ; 0x02209E00 + arm_func_start MOD04_02209E00 +MOD04_02209E00: ; 0x02209E00 stmdb sp!, {r4, r5, lr} sub sp, sp, #0xc mov r3, r3, lsl #0x10 @@ -56917,8 +56923,8 @@ _02209E6C: .align 2, 0 _02209E78: .word 0xFFFFFC16 - arm_func_start FUN_02209E7C -FUN_02209E7C: ; 0x02209E7C + arm_func_start MOD04_02209E7C +MOD04_02209E7C: ; 0x02209E7C stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r1 mov r0, r8 @@ -56945,8 +56951,8 @@ _02209EB4: .align 2, 0 _02209ED0: .word 0x00002710 - arm_func_start FUN_02209ED4 -FUN_02209ED4: ; 0x02209ED4 + arm_func_start MOD04_02209ED4 +MOD04_02209ED4: ; 0x02209ED4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -56959,10 +56965,10 @@ FUN_02209ED4: ; 0x02209ED4 ldr r0, [r5, #8] cmp r0, #0 beq _02209F4C - bl FUN_02209F5C + bl MOD04_02209F5C ldr r1, [r5, #0x1c] ldr r0, [r5, #0x20] - ldr r2, _02209F58 ; =FUN_02209F84 + ldr r2, _02209F58 ; =MOD04_02209F84 str r1, [r0, #0x814] ldr r3, [r5, #0x18] ldr r1, [r5, #0x20] @@ -56982,10 +56988,10 @@ _02209F4C: add sp, sp, #4 ldmia sp!, {r4, r5, pc} .align 2, 0 -_02209F58: .word FUN_02209F84 +_02209F58: .word MOD04_02209F84 - arm_func_start FUN_02209F5C -FUN_02209F5C: ; 0x02209F5C + arm_func_start MOD04_02209F5C +MOD04_02209F5C: ; 0x02209F5C stmdb sp!, {lr} sub sp, sp, #4 ldr r0, _02209F80 ; =0x02211A24 @@ -56998,14 +57004,14 @@ FUN_02209F5C: ; 0x02209F5C .align 2, 0 _02209F80: .word 0x02211A24 - arm_func_start FUN_02209F84 -FUN_02209F84: ; 0x02209F84 + arm_func_start MOD04_02209F84 +MOD04_02209F84: ; 0x02209F84 ands r1, r0, #0x8000 bicne r0, r0, #0x8000 bx lr - arm_func_start FUN_02209F90 -FUN_02209F90: ; 0x02209F90 + arm_func_start MOD04_02209F90 +MOD04_02209F90: ; 0x02209F90 ldr ip, _02209FA4 ; =0x020CE3E0 mov r3, r0 mov r0, r1 @@ -57014,8 +57020,8 @@ FUN_02209F90: ; 0x02209F90 .align 2, 0 _02209FA4: .word 0x020CE3E0 - arm_func_start FUN_02209FA8 -FUN_02209FA8: ; 0x02209FA8 + arm_func_start MOD04_02209FA8 +MOD04_02209FA8: ; 0x02209FA8 ldr ip, _02209FB8 ; =0x020CE34C mov r2, r1 mov r1, #0 @@ -57023,15 +57029,15 @@ FUN_02209FA8: ; 0x02209FA8 .align 2, 0 _02209FB8: .word 0x020CE34C - arm_func_start FUN_02209FBC -FUN_02209FBC: ; 0x02209FBC + arm_func_start MOD04_02209FBC +MOD04_02209FBC: ; 0x02209FBC ldr ip, _02209FC4 ; =0x020DE0BC bx ip .align 2, 0 _02209FC4: .word 0x020DE0BC - arm_func_start FUN_02209FC8 -FUN_02209FC8: ; 0x02209FC8 + arm_func_start MOD04_02209FC8 +MOD04_02209FC8: ; 0x02209FC8 cmp r2, #0 ble _0220A030 _02209FD0: @@ -57067,15 +57073,15 @@ _0220A030: mov r0, r2 bx lr - arm_func_start FUN_0220A038 -FUN_0220A038: ; 0x0220A038 + arm_func_start MOD04_0220A038 +MOD04_0220A038: ; 0x0220A038 ldr ip, _0220A040 ; =0x020DE090 bx ip .align 2, 0 _0220A040: .word 0x020DE090 - arm_func_start FUN_0220A044 -FUN_0220A044: ; 0x0220A044 + arm_func_start MOD04_0220A044 +MOD04_0220A044: ; 0x0220A044 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x124 mov r0, #0 @@ -57179,18 +57185,18 @@ FUN_0220A044: ; 0x0220A044 str r0, [sp, #0xfc] str r0, [sp, #0x104] _0220A1DC: - bl FUN_02208CE0 - bl FUN_022089E0 + bl MOD04_02208CE0 + bl MOD04_022089E0 cmp r0, #0 ldrne sb, [r0, #8] ldrne r4, [r0, #0xc] ldrne r1, _0220B000 ; =0x02211914 ldreq sb, [sp, #0x20] strne r0, [r1] - bl FUN_02208CCC + bl MOD04_02208CCC cmp sb, #0 bge _0220A210 - bl FUN_02208C00 + bl MOD04_02208C00 b _0220B3E8 _0220A210: ldr fp, [r4, #0x30] @@ -57198,7 +57204,7 @@ _0220A210: cmp r0, #0 bne _0220B348 mov r0, r4 - bl FUN_022099C0 + bl MOD04_022099C0 str r0, [sp, #0xc] cmp r0, #0 ldreq r0, [sp, #0x24] @@ -57233,7 +57239,7 @@ _0220A284: blt _0220A2C8 mov r1, r5 mov r0, r4 - bl FUN_02209E7C + bl MOD04_02209E7C cmp r0, #0 ldrlt r0, [sp, #0x34] ldr r5, [sp, #0x38] @@ -57243,16 +57249,16 @@ _0220A284: bne _0220B348 _0220A2C8: mov r0, r4 - bl FUN_02209ED4 + bl MOD04_02209ED4 movs r5, r0 ldrmi r0, [sp, #0x3c] strmi r0, [sp, #4] bmi _0220B348 - bl FUN_02208CE0 + bl MOD04_02208CE0 ldr r0, _0220B000 ; =0x02211914 ldr r0, [r0] str r5, [r0, #0x10] - bl FUN_02208CCC + bl MOD04_02208CCC ldr r0, [r4, #4] cmp r0, #0 bne _0220B348 @@ -57260,7 +57266,7 @@ _0220A2C8: ldr r3, [r4, #0x28] mov r0, r4 mov r1, r5 - bl FUN_02209E00 + bl MOD04_02209E00 cmp r0, #0 ldrge r0, [sp, #0x2c] strge r0, [sp, #8] @@ -57268,12 +57274,12 @@ _0220A2C8: strlt r0, [sp, #8] b _0220A344 _0220A32C: - bl FUN_02209F5C - bl FUN_02208CE0 + bl MOD04_02209F5C + bl MOD04_02208CE0 ldr r0, _0220B000 ; =0x02211914 ldr r0, [r0] str r5, [r0, #0x10] - bl FUN_02208CCC + bl MOD04_02208CCC _0220A344: ldr r0, [r4, #4] cmp r0, #0 @@ -57287,7 +57293,7 @@ _0220A344: str r0, [sp, #0x108] str r0, [sp, #8] ldr r0, [r4, #0x24] - bl FUN_02209FBC + bl MOD04_02209FBC mov sb, r0 ldr r0, [sp, #0x34] str r0, [sp, #4] @@ -57306,7 +57312,7 @@ _0220A3A4: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57319,7 +57325,7 @@ _0220A3D4: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57332,7 +57338,7 @@ _0220A404: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57349,7 +57355,7 @@ _0220A430: mov r2, r8 ldr r3, [r4, #0x24] add r3, r3, sl - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57362,7 +57368,7 @@ _0220A474: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57374,7 +57380,7 @@ _0220A4A0: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57390,7 +57396,7 @@ _0220A4A0: ldr r0, [sp, #0x58] str r0, [sp] mov r0, r4 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57405,7 +57411,7 @@ _0220A4A0: mov r2, r8 ldr r3, [r4, #0x24] add r3, r3, sb - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57416,18 +57422,18 @@ _0220A548: mov r1, r5 mov r2, r8 str r7, [sp] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 beq _0220A284 add r0, r4, #0x34 - bl FUN_02208888 + bl MOD04_02208888 movs sb, r0 beq _0220A660 _0220A580: ldr r0, [sb, #8] - bl FUN_02209FBC + bl MOD04_02209FBC cmp r0, #0 beq _0220A5B8 str r0, [sp] @@ -57435,7 +57441,7 @@ _0220A580: mov r1, r5 mov r2, r8 ldr r3, [sb, #8] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57446,13 +57452,13 @@ _0220A5B8: mov r1, r5 mov r2, r8 str r7, [sp] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 beq _0220A284 ldr r0, [sb, #0xc] - bl FUN_02209FBC + bl MOD04_02209FBC cmp r0, #0 beq _0220A618 str r0, [sp] @@ -57460,7 +57466,7 @@ _0220A5B8: mov r1, r5 mov r2, r8 ldr r3, [sb, #0xc] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57471,7 +57477,7 @@ _0220A618: mov r1, r5 mov r2, r8 str r7, [sp] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57481,7 +57487,7 @@ _0220A618: ldr r1, [r1] blx r1 add r0, r4, #0x34 - bl FUN_02208888 + bl MOD04_02208888 movs sb, r0 bne _0220A580 _0220A660: @@ -57516,7 +57522,7 @@ _0220A6B4: _0220A6C8: ldr r0, [sb, #8] add sl, sl, #0x16 - bl FUN_02209FBC + bl MOD04_02209FBC add r0, r0, #0x29 add sl, sl, r0 ldr r0, [sb, #0x14] @@ -57541,7 +57547,7 @@ _0220A714: mov r1, r5 mov r2, r8 add sl, sl, #0x18 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57552,7 +57558,7 @@ _0220A714: mov r0, r4 mov r2, r8 add r3, r4, #0x46 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57562,7 +57568,7 @@ _0220A714: mov r1, r5 mov r2, r8 str r7, [sp] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57573,11 +57579,11 @@ _0220A79C: beq _0220A7E0 _0220A7A4: ldr r0, [sb, #8] - bl FUN_0220BA58 + bl MOD04_0220BA58 add r0, sl, r0 add sl, r0, #1 ldr r0, [sb, #0xc] - bl FUN_0220BA58 + bl MOD04_0220BA58 add sl, sl, r0 ldr r0, [r4, #0x38] ldr r0, [r0] @@ -57594,7 +57600,7 @@ _0220A7E0: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57606,14 +57612,14 @@ _0220A80C: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 beq _0220A284 mov r1, sl mov r0, r6 - bl FUN_0220B788 + bl MOD04_0220B788 str r0, [sp, #0x10c] cmp r0, #0 beq _0220A878 @@ -57622,7 +57628,7 @@ _0220A80C: mov r1, r5 mov r2, r8 mov r3, r6 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57633,7 +57639,7 @@ _0220A878: mov r1, r5 mov r2, r8 str r7, [sp] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57644,7 +57650,7 @@ _0220A8A0: mov r1, r5 mov r2, r8 str r7, [sp] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57665,7 +57671,7 @@ _0220A8EC: mov r0, r4 mov r2, r8 add r3, r4, #0x44 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57675,7 +57681,7 @@ _0220A8EC: mov r1, r5 mov r2, r8 str r7, [sp] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57686,13 +57692,13 @@ _0220A8EC: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 beq _0220A284 ldr r0, [sb, #8] - bl FUN_02209FBC + bl MOD04_02209FBC cmp r0, #0 beq _0220A9A4 str r0, [sp] @@ -57700,7 +57706,7 @@ _0220A8EC: mov r1, r5 mov r2, r8 ldr r3, [sb, #8] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57712,7 +57718,7 @@ _0220A9A4: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57726,7 +57732,7 @@ _0220A9A4: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57737,7 +57743,7 @@ _0220AA08: mov r1, r5 mov r2, r8 str r7, [sp] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57750,7 +57756,7 @@ _0220AA08: mov r1, r5 mov r2, r8 ldr r3, [sb, #0xc] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57761,7 +57767,7 @@ _0220AA64: mov r1, r5 mov r2, r8 str r7, [sp] - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57780,7 +57786,7 @@ _0220AAA8: mov r0, r4 mov r2, r8 add r3, r4, #0x44 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57791,7 +57797,7 @@ _0220AAA8: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57810,7 +57816,7 @@ _0220AB10: _0220AB24: ldrsb r1, [r1, sb] mov r0, r6 - bl FUN_0220B9CC + bl MOD04_0220B9CC str r0, [sp, #0x10c] cmp r0, #0 beq _0220AB64 @@ -57819,7 +57825,7 @@ _0220AB24: mov r1, r5 mov r2, r8 mov r3, r6 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57837,7 +57843,7 @@ _0220AB78: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57850,7 +57856,7 @@ _0220AB78: _0220ABB8: ldrsb r1, [r1, sb] mov r0, r6 - bl FUN_0220B9CC + bl MOD04_0220B9CC str r0, [sp, #0x10c] cmp r0, #0 beq _0220ABF8 @@ -57859,7 +57865,7 @@ _0220ABB8: mov r1, r5 mov r2, r8 mov r3, r6 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57881,7 +57887,7 @@ _0220AC0C: mov r0, r4 mov r1, r5 mov r2, r8 - bl FUN_0220B490 + bl MOD04_0220B490 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57898,7 +57904,7 @@ _0220AC54: str r0, [sp] mov r0, r4 mov r1, r5 - bl FUN_02209D68 + bl MOD04_02209D68 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -57929,7 +57935,7 @@ _0220ACB4: ldr r3, [sp, #0x2c] mov r0, r4 mov r1, r5 - bl FUN_02209DB4 + bl MOD04_02209DB4 ldr r3, [sp, #0x108] add r1, fp, r3 ldrsb r2, [r1, #0x20] @@ -57973,7 +57979,7 @@ _0220AD6C: mov r0, r4 mov r1, r5 add r2, r2, sl - bl FUN_02209DB4 + bl MOD04_02209DB4 add r1, sb, sl ldrsb r2, [r1, #4] ldr r1, [sp, #0x108] @@ -58015,13 +58021,13 @@ _0220ADA0: ldr r2, [sp, #0x9c] ldr r3, [sp, #0xa0] mov r0, fp - bl FUN_02208DCC + bl MOD04_02208DCC cmp r0, #0 beq _0220B348 ldr r0, _0220B04C ; =0x02211A44 ldr r1, _0220B058 ; =0x0220FB60 ldr r2, [sp, #0x44] - bl FUN_02209FC8 + bl MOD04_02209FC8 cmp r0, #0 bne _0220B348 ldr r0, _0220B04C ; =0x02211A44 @@ -58030,20 +58036,20 @@ _0220ADA0: bne _0220B348 ldr r0, _0220B05C ; =0x02211A4D ldr r1, [sp, #0x3c] - bl FUN_0220B844 + bl MOD04_0220B844 cmp r0, #0 blt _0220B348 ldr r1, [sp, #0xa4] ldr r2, [fp] mov r0, fp add r3, sp, #0x110 - bl FUN_02209014 + bl MOD04_02209014 cmp r0, #0 blt _0220B348 ldr r1, _0220B060 ; =0x0220FB68 mov r0, fp add r2, sp, #0x10c - bl FUN_02209BB8 + bl MOD04_02209BB8 movs sb, r0 ldreq r0, [sp, #0xa8] streq r0, [sp, #4] @@ -58056,12 +58062,12 @@ _0220ADA0: ldr r2, [sp, #0x10c] mov r0, fp mov r3, sb - bl FUN_02208DCC + bl MOD04_02208DCC cmp r0, #0 beq _0220B348 ldr r0, _0220B04C ; =0x02211A44 mov r1, sb - bl FUN_0220B844 + bl MOD04_0220B844 movs sb, r0 bmi _0220B348 str sb, [r4, #0x14] @@ -58078,7 +58084,7 @@ _0220AF00: ldr r1, _0220B064 ; =0x0220FB78 mov r0, fp add r2, sp, #0x10c - bl FUN_02209BB8 + bl MOD04_02209BB8 str r0, [sp, #8] cmp r0, #0 beq _0220B348 @@ -58095,7 +58101,7 @@ _0220AF00: ldr r3, _0220B068 ; =0x0220FB84 mov r0, fp add r2, r1, r2 - bl FUN_02208EC4 + bl MOD04_02208EC4 cmp r0, #0 ldreq r0, [sp, #0x2c] streq r0, [sp, #8] @@ -58109,7 +58115,7 @@ _0220AF88: ldr r1, _0220B06C ; =0x0220FB90 mov r0, fp add r2, sp, #0x10c - bl FUN_02209BB8 + bl MOD04_02209BB8 movs r2, r0 beq _0220B348 cmp r2, #0x400 @@ -58123,7 +58129,7 @@ _0220AF88: str r3, [sp] ldr r3, _0220B070 ; =0x0220FBA4 add r2, r1, r2 - bl FUN_02208EC4 + bl MOD04_02208EC4 cmp r0, #0 ldreq r1, [sp, #0x2c] ldrne r1, [sp, #0xcc] @@ -58175,7 +58181,7 @@ _0220B074: ldr r2, [fp, #4] mov r0, r4 mov r3, sb - bl FUN_02208D18 + bl MOD04_02208D18 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -58189,7 +58195,7 @@ _0220B0B0: ble _0220B0CC mov r0, fp ldr r1, [fp, #4] - bl FUN_02208DB8 + bl MOD04_02208DB8 cmp r0, #0 beq _0220B074 _0220B0CC: @@ -58197,7 +58203,7 @@ _0220B0CC: beq _0220B0F8 ldr r1, [fp, #4] mov r0, fp - bl FUN_02208DB8 + bl MOD04_02208DB8 cmp r0, #0 ldrne r0, [sp, #0x58] strne r0, [sp, #4] @@ -58227,7 +58233,7 @@ _0220B124: mov r0, r4 mov r1, r5 add r2, r2, sb - bl FUN_02209DB4 + bl MOD04_02209DB4 cmp r0, #0 blt _0220B348 ldr r2, [sp, #0x108] @@ -58253,7 +58259,7 @@ _0220B18C: str r2, [sp, #0x10c] mov r0, r4 mov r1, r5 - bl FUN_0220B404 + bl MOD04_0220B404 cmp r0, #0 ble _0220B348 _0220B1B4: @@ -58261,7 +58267,7 @@ _0220B1B4: cmp r1, #0 beq _0220B348 ldr r0, _0220B04C ; =0x02211A44 - bl FUN_0220B8E4 + bl MOD04_0220B8E4 str r0, [sp, #0x1c] cmp r0, #0 bge _0220B1EC @@ -58290,7 +58296,7 @@ _0220B214: ldr r2, [fp, #4] mov r0, r4 mov r1, r5 - bl FUN_02208D18 + bl MOD04_02208D18 cmp r0, #0 ble _0220B348 ldr r1, [sp, #0x1c] @@ -58306,7 +58312,7 @@ _0220B214: mov r0, r4 mov r1, r5 mov r3, r7 - bl FUN_02209DB4 + bl MOD04_02209DB4 cmp r0, #0 ble _0220B348 _0220B278: @@ -58317,14 +58323,14 @@ _0220B278: _0220B288: mov r0, r4 mov r1, r5 - bl FUN_0220B404 + bl MOD04_0220B404 ldr r0, [sp, #0xec] str r0, [sp, #4] b _0220B348 _0220B2A0: mov r0, fp ldr r1, [fp, #4] - bl FUN_02208DB8 + bl MOD04_02208DB8 cmp r0, #0 bne _0220B348 _0220B2B4: @@ -58332,7 +58338,7 @@ _0220B2B4: ldr r3, [sp, #0xf0] mov r0, r4 mov r1, r5 - bl FUN_02208D88 + bl MOD04_02208D88 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -58344,7 +58350,7 @@ _0220B2B4: str r0, [fp, #4] mov r0, fp ldr r1, [fp, #4] - bl FUN_02208DB8 + bl MOD04_02208DB8 cmp r0, #0 beq _0220B334 ldr r0, [sp, #0xf8] @@ -58353,7 +58359,7 @@ _0220B2B4: ldr r3, [sp, #0x2c] mov r0, r4 mov r1, r5 - bl FUN_02209DB4 + bl MOD04_02209DB4 cmp r0, #0 blt _0220B348 cmp r0, #0 @@ -58363,11 +58369,11 @@ _0220B2B4: _0220B334: mov r0, fp ldr r1, [fp, #4] - bl FUN_02208DB8 + bl MOD04_02208DB8 cmp r0, #0 beq _0220B2B4 _0220B348: - bl FUN_02208CE0 + bl MOD04_02208CE0 ldr r0, _0220B000 ; =0x02211914 ldr r1, _0220B024 ; =0x02211904 ldr r0, [r0] @@ -58376,7 +58382,7 @@ _0220B348: ldr r1, [sp, #0xfc] ldr r0, _0220B000 ; =0x02211914 str r1, [r0] - bl FUN_02208CCC + bl MOD04_02208CCC ldr r0, [r4, #4] cmp r0, #0 ldrne r0, [sp, #0x50] @@ -58385,7 +58391,7 @@ _0220B348: blt _0220B3A4 mov r1, r5 mov r0, r4 - bl FUN_02209E7C + bl MOD04_02209E7C cmp r0, #0 ldrlt r0, [sp, #0x34] ldr r5, [sp, #0x100] @@ -58403,7 +58409,7 @@ _0220B3A4: ldr sl, [r4, #0x2c] mov r0, r4 ldr sb, [r4, #0x3c] - bl FUN_02209338 + bl MOD04_02209338 ldr r0, [sp, #4] mov r1, fp mov r2, sl @@ -58418,8 +58424,8 @@ _0220B3E8: .align 2, 0 _0220B400: .word 0x02211908 - arm_func_start FUN_0220B404 -FUN_0220B404: ; 0x0220B404 + arm_func_start MOD04_0220B404 +MOD04_0220B404: ; 0x0220B404 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} sub sp, sp, #8 mov r7, #0 @@ -58437,7 +58443,7 @@ _0220B434: mov r1, sb mov r3, r5 str r6, [sp] - bl FUN_02209DB4 + bl MOD04_02209DB4 cmp r0, #0 addle sp, sp, #8 ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} @@ -58458,8 +58464,8 @@ _0220B45C: add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - arm_func_start FUN_0220B490 -FUN_0220B490: ; 0x0220B490 + arm_func_start MOD04_0220B490 +MOD04_0220B490: ; 0x0220B490 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #4 ldr r7, [sp, #0x28] @@ -58485,7 +58491,7 @@ _0220B4BC: mov r1, r8 mov r2, r6 add r0, r0, r3 - bl FUN_02209F90 + bl MOD04_02209F90 ldr r0, [sb] add r8, r8, r6 add r0, r0, r6 @@ -58499,7 +58505,7 @@ _0220B4BC: mov r1, fp mov r3, r4 str r5, [sp] - bl FUN_02209D68 + bl MOD04_02209D68 cmp r0, #0 addle sp, sp, #4 ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} @@ -58516,8 +58522,8 @@ _0220B54C: .align 2, 0 _0220B558: .word 0x02211A44 - arm_func_start FUN_0220B55C -FUN_0220B55C: ; 0x0220B55C + arm_func_start MOD04_0220B55C +MOD04_0220B55C: ; 0x0220B55C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 @@ -58525,7 +58531,7 @@ FUN_0220B55C: ; 0x0220B55C mov r4, r1 str r0, [r5] str r0, [r4] - bl FUN_02208CE0 + bl MOD04_02208CE0 ldr r1, _0220B5FC ; =0x02211914 ldr r2, [r1] cmp r2, #0 @@ -58557,7 +58563,7 @@ _0220B5D8: movne r4, #1 moveq r4, #0 _0220B5EC: - bl FUN_02208CCC + bl MOD04_02208CCC mov r0, r4 add sp, sp, #4 ldmia sp!, {r4, r5, pc} @@ -58565,8 +58571,8 @@ _0220B5EC: _0220B5FC: .word 0x02211914 _0220B600: .word 0x02211910 - arm_func_start FUN_0220B604 -FUN_0220B604: ; 0x0220B604 + arm_func_start MOD04_0220B604 +MOD04_0220B604: ; 0x0220B604 stmdb sp!, {r4, r5, r6, r7, r8, lr} cmp r1, r3 mvnlt r0, #0 @@ -58606,8 +58612,8 @@ _0220B680: mvn r0, #0 ldmia sp!, {r4, r5, r6, r7, r8, pc} - arm_func_start FUN_0220B688 -FUN_0220B688: ; 0x0220B688 + arm_func_start MOD04_0220B688 +MOD04_0220B688: ; 0x0220B688 stmdb sp!, {lr} sub sp, sp, #4 mov ip, #0 @@ -58643,8 +58649,8 @@ _0220B6F0: add sp, sp, #4 ldmfd sp!, {pc} - arm_func_start FUN_0220B704 -FUN_0220B704: ; 0x0220B704 + arm_func_start MOD04_0220B704 +MOD04_0220B704: ; 0x0220B704 stmdb sp!, {r4, lr} mov r2, #1 mov r3, #0 @@ -58685,8 +58691,8 @@ _0220B76C: mvn r0, #0 ldmia sp!, {r4, pc} - arm_func_start FUN_0220B788 -FUN_0220B788: ; 0x0220B788 + arm_func_start MOD04_0220B788 +MOD04_0220B788: ; 0x0220B788 stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} sub sp, sp, #0x24 ldr r6, _0220B840 ; =0x0220BE70 @@ -58739,8 +58745,8 @@ _0220B81C: .align 2, 0 _0220B840: .word 0x0220BE70 - arm_func_start FUN_0220B844 -FUN_0220B844: ; 0x0220B844 + arm_func_start MOD04_0220B844 +MOD04_0220B844: ; 0x0220B844 stmdb sp!, {r4, r5, r6, lr} cmp r1, #0xa mvngt r0, #0 @@ -58789,8 +58795,8 @@ _0220B8DC: mov r0, r5 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_0220B8E4 -FUN_0220B8E4: ; 0x0220B8E4 + arm_func_start MOD04_0220B8E4 +MOD04_0220B8E4: ; 0x0220B8E4 stmdb sp!, {r4, r5, r6, lr} cmp r1, #8 mvngt r0, #0 @@ -58859,8 +58865,8 @@ _0220B9C4: mov r0, r4 ldmia sp!, {r4, r5, r6, pc} - arm_func_start FUN_0220B9CC -FUN_0220B9CC: ; 0x0220B9CC + arm_func_start MOD04_0220B9CC +MOD04_0220B9CC: ; 0x0220B9CC cmp r1, #0x20 moveq r1, #0x2b streqb r1, [r0] @@ -58901,8 +58907,8 @@ _0220BA1C: mov r0, #3 bx lr - arm_func_start FUN_0220BA58 -FUN_0220BA58: ; 0x0220BA58 + arm_func_start MOD04_0220BA58 +MOD04_0220BA58: ; 0x0220BA58 ldrsb r1, [r0], #1 mov r2, #0 cmp r1, #0 @@ -58938,9 +58944,12 @@ _0220BAB8: mov r0, r2 bx lr - .section .data + .section .rodata ; 0x0220BAC0 - .incbin "baserom.nds", 0x1411e0, 0x4100 + .incbin "baserom.nds", 0x1411e0, 0x3D4 + + .section .data + .incbin "baserom.nds", 0x1415C0, 0x3D20 .section .bss ; 0x0220FBC0 diff --git a/arm9/modules/04/asm/thumb_04.s b/arm9/modules/04/asm/thumb_04.s index 51ee9793..fd1f2483 100644 --- a/arm9/modules/04/asm/thumb_04.s +++ b/arm9/modules/04/asm/thumb_04.s @@ -154,7 +154,7 @@ _021D7608: strb r4, [r3, r1] cmp r0, #0x20 blt _021D7608 - bl FUN_021D85B4 + bl MOD04_021D85B4 ldr r0, _021D7644 ; =0x0220FBC0 ldr r1, [r0] ldr r0, _021D7658 ; =0x00001EF0 @@ -186,8 +186,8 @@ _021D7654: .word 0x00001F08 _021D7658: .word 0x00001EF0 _021D765C: .word 0x00001F38 - thumb_func_start FUN_021D7660 -FUN_021D7660: ; 0x021D7660 + thumb_func_start MOD04_021D7660 +MOD04_021D7660: ; 0x021D7660 push {r3, lr} ldr r0, _021D76A0 ; =0x0220FBC0 ldr r1, [r0] @@ -214,15 +214,15 @@ FUN_021D7660: ; 0x021D7660 str r1, [r0, #4] str r1, [r0] _021D7698: - bl FUN_021DD6F0 + bl MOD04_021DD6F0 pop {r3, pc} nop _021D76A0: .word 0x0220FBC0 _021D76A4: .word 0x00001F08 _021D76A8: .word 0x00001F54 - thumb_func_start FUN_021D76AC -FUN_021D76AC: ; 0x021D76AC + thumb_func_start MOD04_021D76AC +MOD04_021D76AC: ; 0x021D76AC push {lr} sub sp, #0x64 ldr r0, _021D779C ; =0x0220FBC0 @@ -244,9 +244,9 @@ _021D76C8: ; jump table .short _021D7784 - _021D76C8 - 2 ; case 3 .short _021D778A - _021D76C8 - 2 ; case 4 _021D76D2: - ldr r0, _021D77A4 ; =FUN_021D7DA8 - ldr r1, _021D77A8 ; =FUN_021D7DEC - bl FUN_021DD968 + ldr r0, _021D77A4 ; =MOD04_021D7DA8 + ldr r1, _021D77A8 ; =MOD04_021D7DEC + bl MOD04_021DD968 ldr r0, _021D779C ; =0x0220FBC0 mov r2, #1 ldr r1, [r0] @@ -254,10 +254,10 @@ _021D76D2: mov r3, #0x14 add r0, r1, r0 mov r1, #2 - bl FUN_021DDEE0 + bl MOD04_021DDEE0 mov r0, #2 - bl FUN_021DDE7C - bl FUN_021DDDCC + bl MOD04_021DDE7C + bl MOD04_021DDDCC ldr r1, _021D779C ; =0x0220FBC0 ldr r0, _021D77A0 ; =0x00001F44 ldr r2, [r1] @@ -268,10 +268,10 @@ _021D76D2: add r0, #0x14 str r2, [r1, r0] _021D7708: - bl FUN_021DDD7C + bl MOD04_021DDD7C cmp r0, #0 beq _021D7730 - bl FUN_021DDC1C + bl MOD04_021DDC1C cmp r0, #4 bne _021D7724 ldr r0, _021D779C ; =0x0220FBC0 @@ -288,10 +288,10 @@ _021D7724: str r2, [r1, r0] b _021D7736 _021D7730: - bl FUN_021DDCE8 + bl MOD04_021DDCE8 b _021D7794 _021D7736: - bl FUN_021D7E18 + bl MOD04_021D7E18 cmp r0, #0 blt _021D7798 ldr r0, _021D779C ; =0x0220FBC0 @@ -313,46 +313,46 @@ _021D7736: add r0, r1, r0 ldr r1, [r1, r2] ldr r2, _021D77BC ; =0x000029E7 - bl FUN_021E0374 + bl MOD04_021E0374 add r0, sp, #0x14 bl OS_GetOwnerInfo mov r1, #0 - ldr r2, _021D77C0 ; =FUN_021D7A7C + ldr r2, _021D77C0 ; =MOD04_021D7A7C add r0, sp, #0x18 add r3, r1, #0 - bl FUN_021DFE64 + bl MOD04_021DFE64 ldr r0, _021D779C ; =0x0220FBC0 mov r2, #3 ldr r1, [r0] ldr r0, _021D77A0 ; =0x00001F44 str r2, [r1, r0] _021D7784: - bl FUN_021DFF74 + bl MOD04_021DFF74 b _021D7794 _021D778A: - bl FUN_021DFF74 + bl MOD04_021DFF74 add sp, #0x64 mov r0, #1 pop {pc} _021D7794: - bl FUN_021D7E18 + bl MOD04_021D7E18 _021D7798: add sp, #0x64 pop {pc} .align 2, 0 _021D779C: .word 0x0220FBC0 _021D77A0: .word 0x00001F44 -_021D77A4: .word FUN_021D7DA8 -_021D77A8: .word FUN_021D7DEC +_021D77A4: .word MOD04_021D7DA8 +_021D77A8: .word MOD04_021D7DEC _021D77AC: .word 0x00001EF4 _021D77B0: .word 0x0220BEA0 _021D77B4: .word 0x0220BEAC _021D77B8: .word 0x00001EF0 _021D77BC: .word 0x000029E7 -_021D77C0: .word FUN_021D7A7C +_021D77C0: .word MOD04_021D7A7C - thumb_func_start FUN_021D77C4 -FUN_021D77C4: ; 0x021D77C4 + thumb_func_start MOD04_021D77C4 +MOD04_021D77C4: ; 0x021D77C4 push {r3, r4} ldr r3, _021D77D8 ; =0x0220FBC0 ldr r2, _021D77DC ; =0x00001F0C @@ -367,8 +367,8 @@ FUN_021D77C4: ; 0x021D77C4 _021D77D8: .word 0x0220FBC0 _021D77DC: .word 0x00001F0C - thumb_func_start FUN_021D77E0 -FUN_021D77E0: ; 0x021D77E0 + thumb_func_start MOD04_021D77E0 +MOD04_021D77E0: ; 0x021D77E0 ldr r0, _021D77F8 ; =0x0220FBC0 ldr r2, [r0] ldr r0, _021D77FC ; =0x00001F44 @@ -386,8 +386,8 @@ _021D77F2: _021D77F8: .word 0x0220FBC0 _021D77FC: .word 0x00001F44 - thumb_func_start FUN_021D7800 -FUN_021D7800: ; 0x021D7800 + thumb_func_start MOD04_021D7800 +MOD04_021D7800: ; 0x021D7800 push {r3, r4, r5, lr} ldr r2, _021D78EC ; =0x0220FBC0 ldr r1, _021D78F0 ; =0x00001F44 @@ -444,24 +444,24 @@ _021D783A: _021D7864: cmp r3, #0 bne _021D786E - bl FUN_021EA530 + bl MOD04_021EA530 b _021D78E4 _021D786E: - bl FUN_021DFA40 + bl MOD04_021DFA40 cmp r0, #1 bne _021D787C - bl FUN_021D77E0 + bl MOD04_021D77E0 b _021D78E4 _021D787C: cmp r0, #0 beq _021D78E4 - bl FUN_021D77E0 + bl MOD04_021D77E0 b _021D78E4 _021D7886: mov r0, #1 add r1, #0x40 strh r0, [r4, r1] - bl FUN_021D8058 + bl MOD04_021D8058 ldr r0, _021D78EC ; =0x0220FBC0 ldr r2, [r0] ldr r0, _021D78F8 ; =0x00001F68 @@ -506,10 +506,10 @@ _021D78C4: mov r0, #3 pop {r3, r4, r5, pc} _021D78DE: - bl FUN_021D7E18 + bl MOD04_021D7E18 pop {r3, r4, r5, pc} _021D78E4: - bl FUN_021D7F8C + bl MOD04_021D7F8C pop {r3, r4, r5, pc} nop _021D78EC: .word 0x0220FBC0 @@ -517,8 +517,8 @@ _021D78F0: .word 0x00001F44 _021D78F4: .word 0x00001F48 _021D78F8: .word 0x00001F68 - thumb_func_start FUN_021D78FC -FUN_021D78FC: ; 0x021D78FC + thumb_func_start MOD04_021D78FC +MOD04_021D78FC: ; 0x021D78FC push {r4, r5, r6, lr} add r5, r0, #0 mov r0, #1 @@ -529,7 +529,7 @@ FUN_021D78FC: ; 0x021D78FC mov r0, #0 pop {r4, r5, r6, pc} _021D790E: - bl FUN_021DF95C + bl MOD04_021DF95C cmp r0, #0 bne _021D7930 ldr r0, _021D79A0 ; =0x0220FBC0 @@ -554,7 +554,7 @@ _021D7930: cmp r0, #0 bne _021D7946 mov r0, #0 - bl FUN_021EB0FC + bl MOD04_021EB0FC cmp r0, #0 bne _021D794A _021D7946: @@ -599,7 +599,7 @@ _021D794A: add r1, r2, r1 mov r0, #0 add r2, r4, #4 - bl FUN_021EB044 + bl MOD04_021EB044 mov r0, #1 pop {r4, r5, r6, pc} .align 2, 0 @@ -609,8 +609,8 @@ _021D79A8: .word 0x00001F4C _021D79AC: .word 0x00001F78 _021D79B0: .word 0x00001002 - thumb_func_start FUN_021D79B4 -FUN_021D79B4: ; 0x021D79B4 + thumb_func_start MOD04_021D79B4 +MOD04_021D79B4: ; 0x021D79B4 push {r4, r5, r6, lr} add r5, r0, #0 mov r0, #1 @@ -621,7 +621,7 @@ FUN_021D79B4: ; 0x021D79B4 mov r0, #0 pop {r4, r5, r6, pc} _021D79C6: - bl FUN_021DF95C + bl MOD04_021DF95C cmp r0, #0 beq _021D79D2 mov r0, #0 @@ -634,7 +634,7 @@ _021D79D2: cmp r0, #0 bne _021D79E8 mov r0, #1 - bl FUN_021EB0FC + bl MOD04_021EB0FC cmp r0, #0 bne _021D79EC _021D79E8: @@ -678,7 +678,7 @@ _021D79EC: lsl r1, r0, #0xc add r1, r2, r1 add r2, r4, #4 - bl FUN_021EB044 + bl MOD04_021EB044 cmp r0, #0 bne _021D7A4C ldr r1, _021D7A68 ; =0x0220FBC0 @@ -709,8 +709,8 @@ _021D7A70: .word 0x00001F78 _021D7A74: .word 0x00001002 _021D7A78: .word 0x00001F10 - thumb_func_start FUN_021D7A7C -FUN_021D7A7C: ; 0x021D7A7C + thumb_func_start MOD04_021D7A7C +MOD04_021D7A7C: ; 0x021D7A7C push {r4, r5, lr} sub sp, #0xc add r5, r0, #0 @@ -737,18 +737,18 @@ FUN_021D7A7C: ; 0x021D7A7C _021D7AB0: cmp r5, #0 bne _021D7AE8 - ldr r0, _021D7B00 ; =FUN_021D7B70 + ldr r0, _021D7B00 ; =MOD04_021D7B70 str r4, [sp] str r0, [sp, #4] ldr r2, _021D7AF8 ; =0x0220FBC0 str r4, [sp, #8] ldr r3, [r2] ldr r2, _021D7AFC ; =0x00001EF0 - ldr r1, _021D7B04 ; =FUN_021D7B48 + ldr r1, _021D7B04 ; =MOD04_021D7B48 ldr r2, [r3, r2] - ldr r3, _021D7B08 ; =FUN_021D7B6C + ldr r3, _021D7B08 ; =MOD04_021D7B6C mov r0, #0 - bl FUN_021DFDBC + bl MOD04_021DFDBC cmp r0, #0 bne _021D7ADC mov r0, #1 @@ -756,9 +756,9 @@ _021D7AB0: add sp, #0xc pop {r4, r5, pc} _021D7ADC: - ldr r0, _021D7B0C ; =FUN_021D7BBC + ldr r0, _021D7B0C ; =MOD04_021D7BBC mov r1, #0 - bl FUN_021E242C + bl MOD04_021E242C add sp, #0xc pop {r4, r5, pc} _021D7AE8: @@ -772,14 +772,14 @@ _021D7AE8: nop _021D7AF8: .word 0x0220FBC0 _021D7AFC: .word 0x00001EF0 -_021D7B00: .word FUN_021D7B70 -_021D7B04: .word FUN_021D7B48 -_021D7B08: .word FUN_021D7B6C -_021D7B0C: .word FUN_021D7BBC +_021D7B00: .word MOD04_021D7B70 +_021D7B04: .word MOD04_021D7B48 +_021D7B08: .word MOD04_021D7B6C +_021D7B0C: .word MOD04_021D7BBC _021D7B10: .word 0x00001F44 - thumb_func_start FUN_021D7B14 -FUN_021D7B14: ; 0x021D7B14 + thumb_func_start MOD04_021D7B14 +MOD04_021D7B14: ; 0x021D7B14 push {r3, lr} ldr r0, _021D7B3C ; =0x0220FBC0 ldr r1, [r0] @@ -787,7 +787,7 @@ FUN_021D7B14: ; 0x021D7B14 ldr r0, [r1, r0] cmp r0, #0 beq _021D7B3A - bl FUN_021DFA40 + bl MOD04_021DFA40 ldr r1, _021D7B3C ; =0x0220FBC0 mov r3, #0 ldr r2, [r1] @@ -805,8 +805,8 @@ _021D7B3C: .word 0x0220FBC0 _021D7B40: .word 0x00001F70 _021D7B44: .word 0x00001F60 - thumb_func_start FUN_021D7B48 -FUN_021D7B48: ; 0x021D7B48 + thumb_func_start MOD04_021D7B48 +MOD04_021D7B48: ; 0x021D7B48 cmp r0, #0 bne _021D7B58 ldr r0, _021D7B64 ; =0x0220FBC0 @@ -826,13 +826,13 @@ _021D7B58: _021D7B64: .word 0x0220FBC0 _021D7B68: .word 0x00001F44 - thumb_func_start FUN_021D7B6C -FUN_021D7B6C: ; 0x021D7B6C + thumb_func_start MOD04_021D7B6C +MOD04_021D7B6C: ; 0x021D7B6C bx lr .align 2, 0 - thumb_func_start FUN_021D7B70 -FUN_021D7B70: ; 0x021D7B70 + thumb_func_start MOD04_021D7B70 +MOD04_021D7B70: ; 0x021D7B70 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D7BB8 ; =0x0220FBC0 @@ -866,20 +866,20 @@ FUN_021D7B70: ; 0x021D7B70 nop _021D7BB8: .word 0x0220FBC0 - thumb_func_start FUN_021D7BBC -FUN_021D7BBC: ; 0x021D7BBC + thumb_func_start MOD04_021D7BBC +MOD04_021D7BBC: ; 0x021D7BBC bx lr .align 2, 0 - thumb_func_start FUN_021D7BC0 -FUN_021D7BC0: ; 0x021D7BC0 + thumb_func_start MOD04_021D7BC0 +MOD04_021D7BC0: ; 0x021D7BC0 push {r3, lr} ldr r0, _021D7C1C ; =0x0220FBC0 mov r2, #7 ldr r1, [r0] ldr r0, _021D7C20 ; =0x00001F44 str r2, [r1, r0] - bl FUN_021DF95C + bl MOD04_021DF95C cmp r0, #0 bne _021D7BDA mov r2, #1 @@ -900,7 +900,7 @@ _021D7BDE: ldr r0, [r1, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 - bl FUN_021EAE38 + bl MOD04_021EAE38 ldr r0, _021D7C1C ; =0x0220FBC0 ldr r1, [r0] ldr r0, _021D7C24 ; =0x00001F50 @@ -908,7 +908,7 @@ _021D7BDE: ldr r1, _021D7C28 ; =0x00002710 lsl r0, r0, #0x18 lsr r0, r0, #0x18 - bl FUN_021EACF8 + bl MOD04_021EACF8 ldr r1, _021D7C1C ; =0x0220FBC0 ldr r0, _021D7C2C ; =0x00001F70 ldr r2, [r1] @@ -925,8 +925,8 @@ _021D7C24: .word 0x00001F50 _021D7C28: .word 0x00002710 _021D7C2C: .word 0x00001F70 - thumb_func_start FUN_021D7C30 -FUN_021D7C30: ; 0x021D7C30 + thumb_func_start MOD04_021D7C30 +MOD04_021D7C30: ; 0x021D7C30 ldr r1, _021D7C44 ; =0x0220FBC0 ldr r0, _021D7C48 ; =0x00001F4C ldr r2, [r1] @@ -940,8 +940,8 @@ FUN_021D7C30: ; 0x021D7C30 _021D7C44: .word 0x0220FBC0 _021D7C48: .word 0x00001F4C - thumb_func_start FUN_021D7C4C -FUN_021D7C4C: ; 0x021D7C4C + thumb_func_start MOD04_021D7C4C +MOD04_021D7C4C: ; 0x021D7C4C push {r3, r4, r5, r6, r7, lr} sub sp, #8 str r0, [sp] @@ -997,7 +997,7 @@ _021D7CA0: strb r6, [r5, r2] b _021D7CE4 _021D7CB4: - bl FUN_021D8A54 + bl MOD04_021D8A54 cmp r0, #0 bne _021D7D4E mov r0, #1 @@ -1030,14 +1030,14 @@ _021D7CE4: mov r2, #4 sub r6, r1, #4 add r1, r6, #0 - bl FUN_021D7DA8 + bl MOD04_021D7DA8 add r5, r0, #0 beq _021D7D4E add r0, r4, #4 add r1, r5, #0 add r2, r6, #0 bl MI_CpuCopy8 - bl FUN_021DF95C + bl MOD04_021DF95C cmp r0, #0 bne _021D7D2A ldr r0, _021D7D54 ; =0x0220FBC0 @@ -1072,7 +1072,7 @@ _021D7D44: mov r0, #0 add r1, r5, #0 add r2, r6, #0 - bl FUN_021D7DEC + bl MOD04_021D7DEC _021D7D4E: add sp, #8 pop {r3, r4, r5, r6, r7, pc} @@ -1083,12 +1083,12 @@ _021D7D5C: .word 0x00001F84 _021D7D60: .word 0x00001F0C _021D7D64: .word 0x00001F10 - thumb_func_start FUN_021D7D68 -FUN_021D7D68: ; 0x021D7D68 + thumb_func_start MOD04_021D7D68 +MOD04_021D7D68: ; 0x021D7D68 push {r3, lr} cmp r0, #0 bne _021D7D9A - bl FUN_021DF978 + bl MOD04_021DF978 cmp r0, #1 bne _021D7D9A ldr r0, _021D7D9C ; =0x0220FBC0 @@ -1109,7 +1109,7 @@ _021D7D88: ldr r0, [r1, r0] cmp r0, #0 beq _021D7D9A - bl FUN_021D8C6C + bl MOD04_021D8C6C _021D7D9A: pop {r3, pc} .align 2, 0 @@ -1117,8 +1117,8 @@ _021D7D9C: .word 0x0220FBC0 _021D7DA0: .word 0x00001F44 _021D7DA4: .word 0x00001F58 - thumb_func_start FUN_021D7DA8 -FUN_021D7DA8: ; 0x021D7DA8 + thumb_func_start MOD04_021D7DA8 +MOD04_021D7DA8: ; 0x021D7DA8 push {r4, r5, r6, lr} add r5, r1, #0 add r6, r2, #0 @@ -1148,8 +1148,8 @@ _021D7DD8: _021D7DE4: .word 0x0220FBC0 _021D7DE8: .word 0x00001F08 - thumb_func_start FUN_021D7DEC -FUN_021D7DEC: ; 0x021D7DEC + thumb_func_start MOD04_021D7DEC +MOD04_021D7DEC: ; 0x021D7DEC push {r3, r4, r5, lr} add r5, r1, #0 beq _021D7E0C @@ -1169,13 +1169,13 @@ _021D7E0C: _021D7E10: .word 0x0220FBC0 _021D7E14: .word 0x00001F08 - thumb_func_start FUN_021D7E18 -FUN_021D7E18: ; 0x021D7E18 + thumb_func_start MOD04_021D7E18 +MOD04_021D7E18: ; 0x021D7E18 push {r4, lr} sub sp, #8 add r0, sp, #4 add r1, sp, #0 - bl FUN_021DD718 + bl MOD04_021DD718 add r4, r0, #0 beq _021D7EFA ldr r0, [sp] @@ -1197,7 +1197,7 @@ _021D7E3A: ; jump table .short _021D7E66 - _021D7E3A - 2 ; case 6 .short _021D7ECE - _021D7E3A - 2 ; case 7 _021D7E4A: - bl FUN_021DD6F0 + bl MOD04_021DD6F0 cmp r4, #0xa blt _021D7E58 add sp, #8 @@ -1246,11 +1246,11 @@ _021D7E82: ; jump table .short _021D7EA6 - _021D7E82 - 2 ; case 16 .short _021D7EA6 - _021D7E82 - 2 ; case 17 _021D7EA6: - bl FUN_021E0200 + bl MOD04_021E0200 _021D7EAA: - bl FUN_021DDBBC + bl MOD04_021DDBBC _021D7EAE: - bl FUN_021DD6F0 + bl MOD04_021DD6F0 _021D7EB2: ldr r0, _021D7F14 ; =0x0220FBC0 ldr r2, [r0] @@ -1312,8 +1312,8 @@ _021D7F14: .word 0x0220FBC0 _021D7F18: .word 0x00001F44 _021D7F1C: .word 0x00001F82 - thumb_func_start FUN_021D7F20 -FUN_021D7F20: ; 0x021D7F20 + thumb_func_start MOD04_021D7F20 +MOD04_021D7F20: ; 0x021D7F20 push {r3, r4, r5, lr} ldr r0, _021D7F80 ; =0x0220FBC0 ldr r1, [r0] @@ -1321,12 +1321,12 @@ FUN_021D7F20: ; 0x021D7F20 ldr r0, [r1, r0] cmp r0, #0 bne _021D7F7E - bl FUN_021DF95C + bl MOD04_021DF95C mov r1, #1 sub r0, r1, r0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 - bl FUN_021EB0FC + bl MOD04_021EB0FC cmp r0, #0 beq _021D7F7E ldr r4, _021D7F80 ; =0x0220FBC0 @@ -1352,7 +1352,7 @@ FUN_021D7F20: ; 0x021D7F20 lsl r0, r0, #0x18 lsr r0, r0, #0x18 mov r2, #4 - bl FUN_021EB044 + bl MOD04_021EB044 add r0, r4, #0 ldr r1, [r0] ldr r0, _021D7F88 ; =0x00001F74 @@ -1365,11 +1365,11 @@ _021D7F80: .word 0x0220FBC0 _021D7F84: .word 0x00001F4C _021D7F88: .word 0x00001F74 - thumb_func_start FUN_021D7F8C -FUN_021D7F8C: ; 0x021D7F8C + thumb_func_start MOD04_021D7F8C +MOD04_021D7F8C: ; 0x021D7F8C push {r3, r4, r5, lr} - bl FUN_021DFF74 - bl FUN_021D83F0 + bl MOD04_021DFF74 + bl MOD04_021D83F0 ldr r0, _021D800C ; =0x0220FBC0 ldr r1, _021D8010 ; =0x00001F58 ldr r2, [r0] @@ -1385,12 +1385,12 @@ FUN_021D7F8C: ; 0x021D7F8C ldr r0, [r2, r1] cmp r0, #1 bne _021D7FBA - bl FUN_021D8D04 + bl MOD04_021D8D04 b _021D7FBE _021D7FBA: - bl FUN_021D8CF0 + bl MOD04_021D8CF0 _021D7FBE: - bl FUN_021D8944 + bl MOD04_021D8944 _021D7FC2: ldr r4, _021D800C ; =0x0220FBC0 ldr r3, _021D8014 ; =0x00001F44 @@ -1425,17 +1425,17 @@ _021D7FDA: ldr r0, [r0, r3] cmp r0, #0 bne _021D8004 - bl FUN_021D7F20 + bl MOD04_021D7F20 _021D8004: - bl FUN_021D7E18 + bl MOD04_021D7E18 pop {r3, r4, r5, pc} nop _021D800C: .word 0x0220FBC0 _021D8010: .word 0x00001F58 _021D8014: .word 0x00001F44 - thumb_func_start FUN_021D8018 -FUN_021D8018: ; 0x021D8018 + thumb_func_start MOD04_021D8018 +MOD04_021D8018: ; 0x021D8018 push {r3, lr} ldr r0, _021D803C ; =0x0220FBC0 ldr r1, [r0] @@ -1448,7 +1448,7 @@ FUN_021D8018: ; 0x021D8018 cmp r0, #0xf bne _021D8034 _021D802E: - bl FUN_021DF95C + bl MOD04_021DF95C pop {r3, pc} _021D8034: mov r0, #0 @@ -1458,8 +1458,8 @@ _021D8034: _021D803C: .word 0x0220FBC0 _021D8040: .word 0x00001F44 - thumb_func_start FUN_021D8044 -FUN_021D8044: ; 0x021D8044 + thumb_func_start MOD04_021D8044 +MOD04_021D8044: ; 0x021D8044 ldr r0, _021D8050 ; =0x0220FBC0 mov r2, #0 ldr r1, [r0] @@ -1470,8 +1470,8 @@ FUN_021D8044: ; 0x021D8044 _021D8050: .word 0x0220FBC0 _021D8054: .word 0x00001F58 - thumb_func_start FUN_021D8058 -FUN_021D8058: ; 0x021D8058 + thumb_func_start MOD04_021D8058 +MOD04_021D8058: ; 0x021D8058 push {r3, lr} ldr r0, _021D80CC ; =0x0220FBC0 ldr r2, _021D80D0 ; =0x00001F6C @@ -1496,34 +1496,34 @@ _021D807E: sub r2, #0x18 ldr r0, [r0, r2] mov r1, #1 - bl FUN_021D8A7C + bl MOD04_021D8A7C b _021D80B8 _021D808A: sub r2, #0x18 ldr r0, [r0, r2] mov r1, #2 - bl FUN_021D8A7C + bl MOD04_021D8A7C b _021D80B8 _021D8096: sub r2, #0x18 ldr r0, [r0, r2] mov r1, #3 - bl FUN_021D8A7C + bl MOD04_021D8A7C b _021D80B8 _021D80A2: sub r2, #0x18 ldr r0, [r0, r2] mov r1, #4 - bl FUN_021D8A7C + bl MOD04_021D8A7C b _021D80B8 _021D80AE: ldr r1, _021D80D4 ; =0x00001F54 ldr r0, [r0, r1] mov r1, #4 - bl FUN_021D8A7C + bl MOD04_021D8A7C _021D80B8: - ldr r0, _021D80D8 ; =FUN_021D8044 - bl FUN_021D8C58 + ldr r0, _021D80D8 ; =MOD04_021D8044 + bl MOD04_021D8C58 ldr r0, _021D80CC ; =0x0220FBC0 mov r2, #1 ldr r1, [r0] @@ -1534,11 +1534,11 @@ _021D80B8: _021D80CC: .word 0x0220FBC0 _021D80D0: .word 0x00001F6C _021D80D4: .word 0x00001F54 -_021D80D8: .word FUN_021D8044 +_021D80D8: .word MOD04_021D8044 _021D80DC: .word 0x00001F58 - thumb_func_start FUN_021D80E0 -FUN_021D80E0: ; 0x021D80E0 + thumb_func_start MOD04_021D80E0 +MOD04_021D80E0: ; 0x021D80E0 push {r3, r4, r5, lr} mov r1, #0x64 add r5, r0, #0 @@ -1789,8 +1789,8 @@ _021D82B0: .word 0x0000EA60 _021D82B4: .word 0x0001869F _021D82B8: .word 0x00002710 - thumb_func_start FUN_021D82BC -FUN_021D82BC: ; 0x021D82BC + thumb_func_start MOD04_021D82BC +MOD04_021D82BC: ; 0x021D82BC push {r3, lr} cmp r0, #0 bne _021D8346 @@ -1830,7 +1830,7 @@ _021D82FE: ldr r0, [r0, r2] cmp r0, #0 beq _021D8316 - bl FUN_021D8C08 + bl MOD04_021D8C08 ldr r0, _021D8364 ; =0x0220FBC0 mov r2, #0xf ldr r1, [r0] @@ -1838,7 +1838,7 @@ _021D82FE: str r2, [r1, r0] b _021D835E _021D8316: - bl FUN_021DFA40 + bl MOD04_021DFA40 ldr r0, _021D8364 ; =0x0220FBC0 mov r2, #0x10 ldr r1, [r0] @@ -1851,7 +1851,7 @@ _021D8328: ldr r0, [r0, r2] cmp r0, #0 bne _021D835E - bl FUN_021DFA40 + bl MOD04_021DFA40 ldr r0, _021D8364 ; =0x0220FBC0 mov r2, #0x10 ldr r1, [r0] @@ -1883,8 +1883,8 @@ _021D835E: _021D8364: .word 0x0220FBC0 _021D8368: .word 0x00001F44 - thumb_func_start FUN_021D836C -FUN_021D836C: ; 0x021D836C + thumb_func_start MOD04_021D836C +MOD04_021D836C: ; 0x021D836C push {r3, r4} ldr r2, _021D83A0 ; =0x0220FBC0 ldr r1, _021D83A4 ; =0x00001F44 @@ -1915,8 +1915,8 @@ _021D8398: _021D83A0: .word 0x0220FBC0 _021D83A4: .word 0x00001F44 - thumb_func_start FUN_021D83A8 -FUN_021D83A8: ; 0x021D83A8 + thumb_func_start MOD04_021D83A8 +MOD04_021D83A8: ; 0x021D83A8 ldr r1, _021D83B8 ; =0x0220FBC0 ldr r2, [r1] cmp r2, #0 @@ -1929,17 +1929,17 @@ _021D83B4: _021D83B8: .word 0x0220FBC0 _021D83BC: .word 0x00001F14 - thumb_func_start FUN_021D83C0 -FUN_021D83C0: ; 0x021D83C0 + thumb_func_start MOD04_021D83C0 +MOD04_021D83C0: ; 0x021D83C0 push {r3, lr} - bl FUN_021E0200 - bl FUN_021DDBBC - bl FUN_021D8C6C - bl FUN_021D7660 + bl MOD04_021E0200 + bl MOD04_021DDBBC + bl MOD04_021D8C6C + bl MOD04_021D7660 pop {r3, pc} - thumb_func_start FUN_021D83D4 -FUN_021D83D4: ; 0x021D83D4 + thumb_func_start MOD04_021D83D4 +MOD04_021D83D4: ; 0x021D83D4 push {r3, r4} ldr r3, _021D83E8 ; =0x0220FBC0 ldr r2, _021D83EC ; =0x00001F38 @@ -1954,8 +1954,8 @@ FUN_021D83D4: ; 0x021D83D4 _021D83E8: .word 0x0220FBC0 _021D83EC: .word 0x00001F38 - thumb_func_start FUN_021D83F0 -FUN_021D83F0: ; 0x021D83F0 + thumb_func_start MOD04_021D83F0 +MOD04_021D83F0: ; 0x021D83F0 push {r3, r4, r5, r6, r7, lr} ldr r6, _021D8468 ; =0x0220FBC0 ldr r0, _021D846C ; =0x00001F38 @@ -1995,7 +1995,7 @@ _021D8400: mul r3, r5 add r1, r1, r3 add r2, sp, #0 - bl FUN_021E2578 + bl MOD04_021E2578 ldr r1, [r6] add r2, r1, r5 ldr r1, _021D8474 ; =0x00001F18 @@ -2022,15 +2022,15 @@ _021D846C: .word 0x00001F38 _021D8470: .word 0x00001F3C _021D8474: .word 0x00001F18 - thumb_func_start FUN_021D8478 -FUN_021D8478: ; 0x021D8478 - ldr r3, _021D847C ; =FUN_021E2454 + thumb_func_start MOD04_021D8478 +MOD04_021D8478: ; 0x021D8478 + ldr r3, _021D847C ; =MOD04_021E2454 bx r3 .align 2, 0 -_021D847C: .word FUN_021E2454 +_021D847C: .word MOD04_021E2454 - thumb_func_start FUN_021D8480 -FUN_021D8480: ; 0x021D8480 + thumb_func_start MOD04_021D8480 +MOD04_021D8480: ; 0x021D8480 ldr r1, _021D848C ; =0x0220FBC0 ldr r1, [r1] add r1, r1, r0 @@ -2041,8 +2041,8 @@ FUN_021D8480: ; 0x021D8480 _021D848C: .word 0x0220FBC0 _021D8490: .word 0x00001F18 - thumb_func_start FUN_021D8494 -FUN_021D8494: ; 0x021D8494 + thumb_func_start MOD04_021D8494 +MOD04_021D8494: ; 0x021D8494 push {r3, lr} ldr r1, _021D8510 ; =0x0220FBC0 ldr r3, [r1] @@ -2057,21 +2057,21 @@ _021D84A6: str r0, [r3, r1] cmp r0, #0 bge _021D84C2 - ldr r1, _021D8518 ; =FUN_021D8558 + ldr r1, _021D8518 ; =MOD04_021D8558 mov r2, #0 - ldr r3, _021D851C ; =FUN_021D85A0 + ldr r3, _021D851C ; =MOD04_021D85A0 mov r0, #2 str r2, [sp] - bl FUN_021DFD18 + bl MOD04_021DFD18 mov r2, #1 ldr r0, _021D8510 ; =0x0220FBC0 b _021D84D2 _021D84C2: - ldr r1, _021D8520 ; =FUN_021D8590 + ldr r1, _021D8520 ; =MOD04_021D8590 mov r2, #0 - ldr r3, _021D851C ; =FUN_021D85A0 + ldr r3, _021D851C ; =MOD04_021D85A0 str r2, [sp] - bl FUN_021DFB20 + bl MOD04_021DFB20 ldr r0, _021D8510 ; =0x0220FBC0 mov r2, #2 _021D84D2: @@ -2083,15 +2083,15 @@ _021D84D2: ldr r1, [r0] ldr r0, _021D8514 ; =0x00001F44 str r2, [r1, r0] - ldr r0, _021D8528 ; =FUN_021D7C30 - bl FUN_021EAE18 - ldr r0, _021D852C ; =FUN_021D7C4C - bl FUN_021EADF8 - ldr r0, _021D8530 ; =FUN_021D7D68 + ldr r0, _021D8528 ; =MOD04_021D7C30 + bl MOD04_021EAE18 + ldr r0, _021D852C ; =MOD04_021D7C4C + bl MOD04_021EADF8 + ldr r0, _021D8530 ; =MOD04_021D7D68 mov r1, #0 - bl FUN_021DFAF8 - ldr r0, _021D8534 ; =FUN_021D7B14 - bl FUN_021EADD8 + bl MOD04_021DFAF8 + ldr r0, _021D8534 ; =MOD04_021D7B14 + bl MOD04_021EADD8 ldr r1, _021D8510 ; =0x0220FBC0 ldr r0, _021D8538 ; =0x00001F4C ldr r2, [r1] @@ -2105,18 +2105,18 @@ _021D84D2: .align 2, 0 _021D8510: .word 0x0220FBC0 _021D8514: .word 0x00001F44 -_021D8518: .word FUN_021D8558 -_021D851C: .word FUN_021D85A0 -_021D8520: .word FUN_021D8590 +_021D8518: .word MOD04_021D8558 +_021D851C: .word MOD04_021D85A0 +_021D8520: .word MOD04_021D8590 _021D8524: .word 0x00001F48 -_021D8528: .word FUN_021D7C30 -_021D852C: .word FUN_021D7C4C -_021D8530: .word FUN_021D7D68 -_021D8534: .word FUN_021D7B14 +_021D8528: .word MOD04_021D7C30 +_021D852C: .word MOD04_021D7C4C +_021D8530: .word MOD04_021D7D68 +_021D8534: .word MOD04_021D7B14 _021D8538: .word 0x00001F4C - thumb_func_start FUN_021D853C -FUN_021D853C: ; 0x021D853C + thumb_func_start MOD04_021D853C +MOD04_021D853C: ; 0x021D853C ldr r0, _021D8550 ; =0x0220FBC0 ldr r1, [r0] cmp r1, #0 @@ -2132,8 +2132,8 @@ _021D854A: _021D8550: .word 0x0220FBC0 _021D8554: .word 0x00001F5C - thumb_func_start FUN_021D8558 -FUN_021D8558: ; 0x021D8558 + thumb_func_start MOD04_021D8558 +MOD04_021D8558: ; 0x021D8558 push {r3, lr} cmp r0, #0 bne _021D8582 @@ -2144,7 +2144,7 @@ FUN_021D8558: ; 0x021D8558 ldr r1, [r0] ldr r0, _021D8588 ; =0x00001F5C str r2, [r1, r0] - bl FUN_021D7BC0 + bl MOD04_021D7BC0 pop {r3, pc} _021D8572: cmp r2, #0 @@ -2162,19 +2162,19 @@ _021D8584: .word 0x0220FBC0 _021D8588: .word 0x00001F5C _021D858C: .word 0x00001F60 - thumb_func_start FUN_021D8590 -FUN_021D8590: ; 0x021D8590 + thumb_func_start MOD04_021D8590 +MOD04_021D8590: ; 0x021D8590 push {r3, lr} cmp r0, #0 bne _021D859E cmp r1, #0 bne _021D859E - bl FUN_021D7BC0 + bl MOD04_021D7BC0 _021D859E: pop {r3, pc} - thumb_func_start FUN_021D85A0 -FUN_021D85A0: ; 0x021D85A0 + thumb_func_start MOD04_021D85A0 +MOD04_021D85A0: ; 0x021D85A0 ldr r1, _021D85AC ; =0x0220FBC0 ldr r2, [r1] ldr r1, _021D85B0 ; =0x00001F60 @@ -2184,8 +2184,8 @@ FUN_021D85A0: ; 0x021D85A0 _021D85AC: .word 0x0220FBC0 _021D85B0: .word 0x00001F60 - thumb_func_start FUN_021D85B4 -FUN_021D85B4: ; 0x021D85B4 + thumb_func_start MOD04_021D85B4 +MOD04_021D85B4: ; 0x021D85B4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 ldr r0, _021D8614 ; =0x0220FBC0 @@ -2236,15 +2236,15 @@ _021D85F0: _021D8614: .word 0x0220FBC0 _021D8618: .word 0x00001EF0 - thumb_func_start FUN_021D861C -FUN_021D861C: ; 0x021D861C - ldr r3, _021D8620 ; =FUN_021D8CC8 + thumb_func_start MOD04_021D861C +MOD04_021D861C: ; 0x021D861C + ldr r3, _021D8620 ; =MOD04_021D8CC8 bx r3 .align 2, 0 -_021D8620: .word FUN_021D8CC8 +_021D8620: .word MOD04_021D8CC8 - thumb_func_start FUN_021D8624 -FUN_021D8624: ; 0x021D8624 + thumb_func_start MOD04_021D8624 +MOD04_021D8624: ; 0x021D8624 ldr r0, _021D8638 ; =0x0220FBC0 ldr r1, [r0] cmp r1, #0 @@ -2259,8 +2259,8 @@ _021D8632: _021D8638: .word 0x0220FBC0 _021D863C: .word 0x00001F68 - thumb_func_start FUN_021D8640 -FUN_021D8640: ; 0x021D8640 + thumb_func_start MOD04_021D8640 +MOD04_021D8640: ; 0x021D8640 ldr r0, _021D8654 ; =0x0220FBC0 ldr r1, [r0] cmp r1, #0 @@ -2275,8 +2275,8 @@ _021D864E: _021D8654: .word 0x0220FBC0 _021D8658: .word 0x00001F60 - thumb_func_start FUN_021D865C -FUN_021D865C: ; 0x021D865C + thumb_func_start MOD04_021D865C +MOD04_021D865C: ; 0x021D865C ldr r0, _021D8670 ; =0x0220FBC0 ldr r2, [r0] cmp r2, #0 @@ -2291,8 +2291,8 @@ _021D866C: _021D8670: .word 0x0220FBC0 _021D8674: .word 0x00001F60 - thumb_func_start FUN_021D8678 -FUN_021D8678: ; 0x021D8678 + thumb_func_start MOD04_021D8678 +MOD04_021D8678: ; 0x021D8678 ldr r1, _021D8684 ; =0x0220FBC0 ldr r2, [r1] ldr r1, _021D8688 ; =0x00001F68 @@ -2302,8 +2302,8 @@ FUN_021D8678: ; 0x021D8678 _021D8684: .word 0x0220FBC0 _021D8688: .word 0x00001F68 - thumb_func_start FUN_021D868C -FUN_021D868C: ; 0x021D868C + thumb_func_start MOD04_021D868C +MOD04_021D868C: ; 0x021D868C push {r3, r4, r5, lr} bl MIC_Init bl PM_Init @@ -2373,13 +2373,13 @@ _021D8720: .word 0x00003598 _021D8724: .word 0x000035B8 _021D8728: .word 0x00003504 - thumb_func_start FUN_021D872C -FUN_021D872C: ; 0x021D872C + thumb_func_start MOD04_021D872C +MOD04_021D872C: ; 0x021D872C bx lr .align 2, 0 - thumb_func_start FUN_021D8730 -FUN_021D8730: ; 0x021D8730 + thumb_func_start MOD04_021D8730 +MOD04_021D8730: ; 0x021D8730 push {r4, r5, r6, lr} add r6, r2, #0 add r5, r3, #0 @@ -2400,7 +2400,7 @@ _021D8748: beq _021D876A add r0, r0, #3 add r0, r2, r0 - ldr r1, _021D87C0 ; =FUN_021D872C + ldr r1, _021D87C0 ; =MOD04_021D872C mov r2, #0 bl MIC_StartAutoSamplingAsync ldr r0, _021D87B8 ; =0x0220FBC8 @@ -2451,13 +2451,13 @@ _021D87A2: .align 2, 0 _021D87B8: .word 0x0220FBC8 _021D87BC: .word 0x00003565 -_021D87C0: .word FUN_021D872C +_021D87C0: .word MOD04_021D872C _021D87C4: .word 0x027FFFA8 _021D87C8: .word 0x000034FC _021D87CC: .word 0x00003564 - thumb_func_start FUN_021D87D0 -FUN_021D87D0: ; 0x021D87D0 + thumb_func_start MOD04_021D87D0 +MOD04_021D87D0: ; 0x021D87D0 push {r4, lr} ldr r1, _021D8810 ; =0x0220FBC8 ldr r2, [r1, #4] @@ -2493,8 +2493,8 @@ _021D880A: _021D8810: .word 0x0220FBC8 _021D8814: .word 0x00003560 - thumb_func_start FUN_021D8818 -FUN_021D8818: ; 0x021D8818 + thumb_func_start MOD04_021D8818 +MOD04_021D8818: ; 0x021D8818 push {r3, lr} ldr r0, _021D8858 ; =0x0220FBC8 ldr r1, [r0, #4] @@ -2531,8 +2531,8 @@ _021D8852: _021D8858: .word 0x0220FBC8 _021D885C: .word 0x00003560 - thumb_func_start FUN_021D8860 -FUN_021D8860: ; 0x021D8860 + thumb_func_start MOD04_021D8860 +MOD04_021D8860: ; 0x021D8860 push {r4, lr} add r4, r2, #0 cmp r1, #0xc @@ -2578,20 +2578,20 @@ _021D88AE: mov r1, #0 bl FUN_020ACAB0 add r0, r4, #0 - bl FUN_021D8910 - bl FUN_021D8C6C + bl MOD04_021D8910 + bl MOD04_021D8C6C pop {r4, pc} _021D88C2: add r0, r4, #0 - bl FUN_021D8910 - bl FUN_021D8C6C + bl MOD04_021D8910 + bl MOD04_021D8C6C pop {r4, pc} _021D88CE: add r0, r4, #0 mov r1, #4 bl FUN_020ACAB0 add r0, r4, #0 - bl FUN_021D8910 + bl MOD04_021D8910 pop {r4, pc} _021D88DE: add r0, r4, #0 @@ -2606,11 +2606,11 @@ _021D88DE: pop {r4, pc} _021D88F4: add r0, r4, #0 - bl FUN_021D8910 + bl MOD04_021D8910 pop {r4, pc} _021D88FC: add r0, r4, #0 - bl FUN_021D8910 + bl MOD04_021D8910 _021D8902: pop {r4, pc} .align 2, 0 @@ -2618,8 +2618,8 @@ _021D8904: .word 0x0220FBC8 _021D8908: .word 0x00003560 _021D890C: .word 0x000034F8 - thumb_func_start FUN_021D8910 -FUN_021D8910: ; 0x021D8910 + thumb_func_start MOD04_021D8910 +MOD04_021D8910: ; 0x021D8910 push {r4, lr} ldr r1, _021D893C ; =0x0220FBC8 add r4, r0, #0 @@ -2644,8 +2644,8 @@ _021D8936: _021D893C: .word 0x0220FBC8 _021D8940: .word 0x00003560 - thumb_func_start FUN_021D8944 -FUN_021D8944: ; 0x021D8944 + thumb_func_start MOD04_021D8944 +MOD04_021D8944: ; 0x021D8944 push {r4, r5, r6, lr} bl OS_GetTick add r4, r0, #0 @@ -2743,11 +2743,11 @@ _021D89EC: cmp r0, #2 pop {r4, r5, r6, pc} _021D8A00: - bl FUN_021D8018 + bl MOD04_021D8018 cmp r0, #0 bne _021D8A1E mov r0, #1 - bl FUN_021D87D0 + bl MOD04_021D87D0 cmp r0, #0 beq _021D8A3A ldr r0, _021D8A3C ; =0x0220FBC8 @@ -2757,11 +2757,11 @@ _021D8A00: str r2, [r1, r0] pop {r4, r5, r6, pc} _021D8A1E: - bl FUN_021D8018 + bl MOD04_021D8018 cmp r0, #1 bne _021D8A3A mov r0, #0 - bl FUN_021D8818 + bl MOD04_021D8818 cmp r0, #0 beq _021D8A3A ldr r0, _021D8A3C ; =0x0220FBC8 @@ -2779,8 +2779,8 @@ _021D8A48: .word 0xFFFFD8F0 _021D8A4C: .word 0x0000358C _021D8A50: .word 0x000034F8 - thumb_func_start FUN_021D8A54 -FUN_021D8A54: ; 0x021D8A54 + thumb_func_start MOD04_021D8A54 +MOD04_021D8A54: ; 0x021D8A54 push {r3, lr} ldr r3, _021D8A78 ; =0x0220FBC8 ldr r3, [r3, #4] @@ -2802,8 +2802,8 @@ _021D8A72: nop _021D8A78: .word 0x0220FBC8 - thumb_func_start FUN_021D8A7C -FUN_021D8A7C: ; 0x021D8A7C + thumb_func_start MOD04_021D8A7C +MOD04_021D8A7C: ; 0x021D8A7C push {r4, r5, r6, r7, lr} sub sp, #0x34 ldr r2, _021D8BC8 ; =0x0220BAC0 @@ -2840,7 +2840,7 @@ FUN_021D8A7C: ; 0x021D8A7C mov r3, #0 sub r1, #0x3c str r3, [r0, r1] - bl FUN_021D868C + bl MOD04_021D868C _021D8ACA: ldr r5, _021D8BCC ; =0x0220FBC8 mov r7, #0x11 @@ -2898,7 +2898,7 @@ _021D8ACA: str r0, [sp] mov r0, #2 str r0, [sp, #4] - ldr r0, _021D8BE0 ; =FUN_021D8730 + ldr r0, _021D8BE0 ; =MOD04_021D8730 add r1, r5, #0 str r0, [sp, #8] mov r0, #0xd3 @@ -2932,10 +2932,10 @@ _021D8ACA: str r0, [sp, #0x14] mov r0, #2 str r0, [sp, #0x18] - bl FUN_021D8018 + bl MOD04_021D8018 add r1, sp, #0x10 strb r0, [r1, #0x10] - ldr r0, _021D8BE8 ; =FUN_021D8860 + ldr r0, _021D8BE8 ; =MOD04_021D8860 str r0, [sp, #0x2c] add r0, r5, #0 str r0, [sp, #0x30] @@ -2955,7 +2955,7 @@ _021D8ACA: str r2, [r1, r0] add r0, r4, #0 bl FUN_020AA7A0 - bl FUN_021D8BF0 + bl MOD04_021D8BF0 mov r0, #1 bl FUN_020AA760 add sp, #0x34 @@ -2967,13 +2967,13 @@ _021D8BD0: .word 0x000035DC _021D8BD4: .word 0x0220FBE0 _021D8BD8: .word 0x00003568 _021D8BDC: .word 0x00003504 -_021D8BE0: .word FUN_021D8730 +_021D8BE0: .word MOD04_021D8730 _021D8BE4: .word 0x000034F8 -_021D8BE8: .word FUN_021D8860 +_021D8BE8: .word MOD04_021D8860 _021D8BEC: .word 0x000034FC - thumb_func_start FUN_021D8BF0 -FUN_021D8BF0: ; 0x021D8BF0 + thumb_func_start MOD04_021D8BF0 +MOD04_021D8BF0: ; 0x021D8BF0 ldr r0, _021D8BFC ; =0x0220FBC8 ldr r3, _021D8C00 ; =0x020C1458 ldr r1, [r0, #4] @@ -2985,8 +2985,8 @@ _021D8BFC: .word 0x0220FBC8 _021D8C00: .word 0x020C1458 _021D8C04: .word 0x00003504 - thumb_func_start FUN_021D8C08 -FUN_021D8C08: ; 0x021D8C08 + thumb_func_start MOD04_021D8C08 +MOD04_021D8C08: ; 0x021D8C08 push {r3, lr} ldr r0, _021D8C50 ; =0x0220FBC8 ldr r1, _021D8C54 ; =0x00003560 @@ -2999,7 +2999,7 @@ FUN_021D8C08: ; 0x021D8C08 cmp r1, #0 bne _021D8C24 _021D8C1E: - bl FUN_021D8C6C + bl MOD04_021D8C6C pop {r3, pc} _021D8C24: cmp r1, #1 @@ -3008,7 +3008,7 @@ _021D8C24: bl FUN_020ACBA0 cmp r0, #0 beq _021D8C38 - bl FUN_021D8C6C + bl MOD04_021D8C6C pop {r3, pc} _021D8C38: ldr r0, _021D8C50 ; =0x0220FBC8 @@ -3019,15 +3019,15 @@ _021D8C38: bl FUN_020ACBA0 cmp r0, #0 beq _021D8C4E - bl FUN_021D8C6C + bl MOD04_021D8C6C _021D8C4E: pop {r3, pc} .align 2, 0 _021D8C50: .word 0x0220FBC8 _021D8C54: .word 0x00003560 - thumb_func_start FUN_021D8C58 -FUN_021D8C58: ; 0x021D8C58 + thumb_func_start MOD04_021D8C58 +MOD04_021D8C58: ; 0x021D8C58 ldr r1, _021D8C64 ; =0x0220FBC8 ldr r2, [r1, #4] ldr r1, _021D8C68 ; =0x000034C4 @@ -3037,8 +3037,8 @@ FUN_021D8C58: ; 0x021D8C58 _021D8C64: .word 0x0220FBC8 _021D8C68: .word 0x000034C4 - thumb_func_start FUN_021D8C6C -FUN_021D8C6C: ; 0x021D8C6C + thumb_func_start MOD04_021D8C6C +MOD04_021D8C6C: ; 0x021D8C6C push {r4, lr} ldr r0, _021D8CBC ; =0x0220FBC8 ldr r1, [r0] @@ -3080,8 +3080,8 @@ _021D8CBC: .word 0x0220FBC8 _021D8CC0: .word 0x000034C4 _021D8CC4: .word 0x00003504 - thumb_func_start FUN_021D8CC8 -FUN_021D8CC8: ; 0x021D8CC8 + thumb_func_start MOD04_021D8CC8 +MOD04_021D8CC8: ; 0x021D8CC8 push {r3, lr} sub sp, #0x10 ldr r0, _021D8CEC ; =0x0220FBC8 @@ -3103,8 +3103,8 @@ _021D8CE6: .align 2, 0 _021D8CEC: .word 0x0220FBC8 - thumb_func_start FUN_021D8CF0 -FUN_021D8CF0: ; 0x021D8CF0 + thumb_func_start MOD04_021D8CF0 +MOD04_021D8CF0: ; 0x021D8CF0 ldr r0, _021D8CFC ; =0x0220FBC8 mov r2, #1 ldr r1, [r0, #4] @@ -3115,8 +3115,8 @@ FUN_021D8CF0: ; 0x021D8CF0 _021D8CFC: .word 0x0220FBC8 _021D8D00: .word 0x000034FC - thumb_func_start FUN_021D8D04 -FUN_021D8D04: ; 0x021D8D04 + thumb_func_start MOD04_021D8D04 +MOD04_021D8D04: ; 0x021D8D04 ldr r0, _021D8D10 ; =0x0220FBC8 mov r2, #0 ldr r1, [r0, #4] diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s index 085ce35d..3cefdc1e 100644 --- a/arm9/modules/05/asm/module_05.s +++ b/arm9/modules/05/asm/module_05.s @@ -744,10 +744,10 @@ MOD05_021D7B38: ; 0x021D7B38 thumb_func_start MOD05_021D7B5C MOD05_021D7B5C: ; 0x021D7B5C - ldr r3, _021D7B60 ; =0x02009FA1 + ldr r3, _021D7B60 ; =FUN_02009FA0 bx r3 .balign 4, 0 -_021D7B60: .word 0x02009FA1 +_021D7B60: .word FUN_02009FA0 thumb_func_start MOD05_021D7B64 MOD05_021D7B64: ; 0x021D7B64 @@ -1207,10 +1207,10 @@ MOD05_021D7F40: ; 0x021D7F40 thumb_func_start MOD05_021D7F44 MOD05_021D7F44: ; 0x021D7F44 - ldr r3, _021D7F48 ; =0x02016A19 + ldr r3, _021D7F48 ; =FUN_02016A18 bx r3 .balign 4, 0 -_021D7F48: .word 0x02016A19 +_021D7F48: .word FUN_02016A18 thumb_func_start MOD05_021D7F4C MOD05_021D7F4C: ; 0x021D7F4C @@ -1278,11 +1278,11 @@ _021D7FBC: thumb_func_start MOD05_021D7FD0 MOD05_021D7FD0: ; 0x021D7FD0 - ldr r3, _021D7FD8 ; =0x0201B5CD + ldr r3, _021D7FD8 ; =FUN_0201B5CC ldr r0, [r0, #0x10] bx r3 nop -_021D7FD8: .word 0x0201B5CD +_021D7FD8: .word FUN_0201B5CC thumb_func_start MOD05_021D7FDC MOD05_021D7FDC: ; 0x021D7FDC @@ -2091,24 +2091,24 @@ _021D862C: mov r0, #0 pop {r4, pc} _021D8630: - bl FUN_0223DCB4 + bl MOD18_0223DCB4 ldrh r0, [r4] lsl r1, r0, #0x1f lsr r1, r1, #0x1f beq _021D8646 mov r0, #0 - bl FUN_0223DCD0 + bl MOD18_0223DCD0 mov r0, #0 pop {r4, pc} _021D8646: lsl r0, r0, #0x1d lsr r0, r0, #0x1f beq _021D8654 - bl FUN_0223DC98 + bl MOD18_0223DC98 mov r0, #0 pop {r4, pc} _021D8654: - bl FUN_0223D8F4 + bl MOD18_0223D8F4 mov r0, #0 pop {r4, pc} @@ -2508,7 +2508,7 @@ _021D8998: cmp r0, #0 beq _021D89B4 add r0, r4, #0 - bl FUN_0223BA04 + bl MOD06_0223BA04 cmp r0, #1 bne _021D89B4 add sp, #8 @@ -2535,7 +2535,7 @@ MOD05_021D89BC: ; 0x021D89BC mov r0, #0 pop {r4, r5, r6, pc} _021D89D4: - bl FUN_022426AC + bl MOD06_022426AC cmp r0, #0 beq _021D89E2 add sp, #0x28 @@ -2932,7 +2932,7 @@ _021D8D20: .word 0x0000FFFF MOD05_021D8D24: ; 0x021D8D24 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 - bl FUN_02242404 + bl MOD06_02242404 cmp r0, #0 beq _021D8D34 mov r0, #1 @@ -3238,12 +3238,12 @@ MOD05_021D8F90: ; 0x021D8F90 thumb_func_start MOD05_021D8F9C MOD05_021D8F9C: ; 0x021D8F9C - ldr r3, _021D8FA4 ; =0x0224C24D + ldr r3, _021D8FA4 ; =MOD06_0224C24C add r1, r0, #0 ldr r0, [r1, #0xc] bx r3 .balign 4, 0 -_021D8FA4: .word 0x0224C24D +_021D8FA4: .word MOD06_0224C24C thumb_func_start MOD05_021D8FA8 MOD05_021D8FA8: ; 0x021D8FA8 @@ -5724,11 +5724,11 @@ _021DA21A: MOD05_021DA220: ; 0x021DA220 mov r1, #0xad lsl r1, r1, #2 - ldr r3, _021DA22C ; =0x02006875 + ldr r3, _021DA22C ; =FUN_02006874 ldr r0, [r0, r1] bx r3 nop -_021DA22C: .word 0x02006875 +_021DA22C: .word FUN_02006874 thumb_func_start MOD05_021DA230 MOD05_021DA230: ; 0x021DA230 @@ -6243,10 +6243,10 @@ MOD05_021DA5B8: ; 0x021DA5B8 thumb_func_start MOD05_021DA5C8 MOD05_021DA5C8: ; 0x021DA5C8 - ldr r3, _021DA5CC ; =0x02016A19 + ldr r3, _021DA5CC ; =FUN_02016A18 bx r3 .balign 4, 0 -_021DA5CC: .word 0x02016A19 +_021DA5CC: .word FUN_02016A18 thumb_func_start MOD05_021DA5D0 MOD05_021DA5D0: ; 0x021DA5D0 @@ -9476,10 +9476,10 @@ _021DBE94: .word MOD05_021EFAAC thumb_func_start MOD05_021DBE98 MOD05_021DBE98: ; 0x021DBE98 - ldr r3, _021DBE9C ; =0x02050E2D + ldr r3, _021DBE9C ; =FUN_02050E2C bx r3 .balign 4, 0 -_021DBE9C: .word 0x02050E2D +_021DBE9C: .word FUN_02050E2C thumb_func_start MOD05_021DBEA0 MOD05_021DBEA0: ; 0x021DBEA0 @@ -9489,7 +9489,7 @@ MOD05_021DBEA0: ; 0x021DBEA0 mov r1, #2 bl HandleLoadOverlay add r0, r4, #0 - bl FUN_02254A68 + bl MOD51_02254A68 add r4, #0x80 str r0, [r4] pop {r4, pc} @@ -9505,17 +9505,17 @@ _021DBEC0: .word MOD05_021EFB14 thumb_func_start MOD05_021DBEC4 MOD05_021DBEC4: ; 0x021DBEC4 - ldr r3, _021DBEC8 ; =0x02050E11 + ldr r3, _021DBEC8 ; =FUN_02050E10 bx r3 .balign 4, 0 -_021DBEC8: .word 0x02050E11 +_021DBEC8: .word FUN_02050E10 thumb_func_start MOD05_021DBECC MOD05_021DBECC: ; 0x021DBECC push {r3, lr} add r0, #0x80 ldr r0, [r0] - bl FUN_02254AB8 + bl MOD51_02254AB8 ldr r0, _021DBEE0 ; =SDK_OVERLAY_MODULE_51_ID bl UnloadOverlayByID pop {r3, pc} @@ -10288,12 +10288,12 @@ _021DC470: .word MOD05_021DC474 thumb_func_start MOD05_021DC474 MOD05_021DC474: ; 0x021DC474 - ldr r3, _021DC47C ; =0x0201FDED + ldr r3, _021DC47C ; =FUN_0201FDEC add r1, #0xf4 ldr r0, [r1] bx r3 .balign 4, 0 -_021DC47C: .word 0x0201FDED +_021DC47C: .word FUN_0201FDEC thumb_func_start MOD05_021DC480 MOD05_021DC480: ; 0x021DC480 @@ -20312,13 +20312,13 @@ _021E127E: thumb_func_start MOD05_021E1290 MOD05_021E1290: ; 0x021E1290 - ldr r3, _021E129C ; =0x0200CA99 + ldr r3, _021E129C ; =FUN_0200CA98 add r1, r0, #0 ldr r0, _021E12A0 ; =MOD05_021E12A4 mov r2, #0x80 bx r3 nop -_021E129C: .word 0x0200CA99 +_021E129C: .word FUN_0200CA98 _021E12A0: .word MOD05_021E12A4 thumb_func_start MOD05_021E12A4 @@ -21231,10 +21231,10 @@ _021E1986: thumb_func_start MOD05_021E198C MOD05_021E198C: ; 0x021E198C - ldr r3, _021E1990 ; =0x02058E91 + ldr r3, _021E1990 ; =FUN_02058E90 bx r3 .balign 4, 0 -_021E1990: .word 0x02058E91 +_021E1990: .word FUN_02058E90 thumb_func_start MOD05_021E1994 MOD05_021E1994: ; 0x021E1994 @@ -24563,14 +24563,14 @@ _021E3388: cmp r0, #0 beq _021E3414 ldr r0, [r5, #8] - bl FUN_022524F4 + bl MOD19_022524F4 ldr r0, [r4] add r0, r0, #1 str r0, [r4] b _021E3414 _021E33A0: ldr r0, [r5, #8] - bl FUN_02252504 + bl MOD19_02252504 cmp r0, #0 beq _021E3414 ldr r0, [r5, #0xc] @@ -24591,7 +24591,7 @@ _021E33A0: ldr r3, [r5, #8] add r0, r5, #0 add r1, #0x14 - bl FUN_02252448 + bl MOD20_02252448 ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -25672,14 +25672,14 @@ _021E3BFC: .word 0xFFFF1FFF thumb_func_start MOD05_021E3C00 MOD05_021E3C00: ; 0x021E3C00 - ldr r3, _021E3C0C ; =0x0200CA99 + ldr r3, _021E3C0C ; =FUN_0200CA98 mov r2, #1 add r1, r0, #0 ldr r0, _021E3C10 ; =MOD05_021E3C14 lsl r2, r2, #0xa bx r3 .balign 4, 0 -_021E3C0C: .word 0x0200CA99 +_021E3C0C: .word FUN_0200CA98 _021E3C10: .word MOD05_021E3C14 thumb_func_start MOD05_021E3C14 @@ -26334,10 +26334,10 @@ MOD05_021E4140: ; 0x021E4140 thumb_func_start MOD05_021E4158 MOD05_021E4158: ; 0x021E4158 - ldr r3, _021E415C ; =0x02016A19 + ldr r3, _021E415C ; =FUN_02016A18 bx r3 .balign 4, 0 -_021E415C: .word 0x02016A19 +_021E415C: .word FUN_02016A18 thumb_func_start MOD05_021E4160 MOD05_021E4160: ; 0x021E4160 @@ -26452,10 +26452,10 @@ MOD05_021E4220: ; 0x021E4220 thumb_func_start MOD05_021E4238 MOD05_021E4238: ; 0x021E4238 - ldr r3, _021E423C ; =0x02016A19 + ldr r3, _021E423C ; =FUN_02016A18 bx r3 .balign 4, 0 -_021E423C: .word 0x02016A19 +_021E423C: .word FUN_02016A18 thumb_func_start MOD05_021E4240 MOD05_021E4240: ; 0x021E4240 @@ -26859,10 +26859,10 @@ _021E452A: thumb_func_start MOD05_021E4534 MOD05_021E4534: ; 0x021E4534 - ldr r3, _021E4538 ; =0x02016A19 + ldr r3, _021E4538 ; =FUN_02016A18 bx r3 .balign 4, 0 -_021E4538: .word 0x02016A19 +_021E4538: .word FUN_02016A18 thumb_func_start MOD05_021E453C MOD05_021E453C: ; 0x021E453C @@ -27610,14 +27610,14 @@ _021E4ACC: .word 0x0400006C thumb_func_start MOD05_021E4AD0 MOD05_021E4AD0: ; 0x021E4AD0 - ldr r3, _021E4ADC ; =0x0200CA99 + ldr r3, _021E4ADC ; =FUN_0200CA98 mov r2, #1 add r1, r0, #0 ldr r0, _021E4AE0 ; =MOD05_021E4AB8 lsl r2, r2, #0xa bx r3 .balign 4, 0 -_021E4ADC: .word 0x0200CA99 +_021E4ADC: .word FUN_0200CA98 _021E4AE0: .word MOD05_021E4AB8 thumb_func_start MOD05_021E4AE4 @@ -27772,10 +27772,10 @@ MOD05_021E4BE8: ; 0x021E4BE8 thumb_func_start MOD05_021E4C00 MOD05_021E4C00: ; 0x021E4C00 - ldr r3, _021E4C04 ; =0x02016A19 + ldr r3, _021E4C04 ; =FUN_02016A18 bx r3 .balign 4, 0 -_021E4C04: .word 0x02016A19 +_021E4C04: .word FUN_02016A18 thumb_func_start MOD05_021E4C08 MOD05_021E4C08: ; 0x021E4C08 @@ -27822,27 +27822,27 @@ MOD05_021E4C34: ; 0x021E4C34 thumb_func_start MOD05_021E4C48 MOD05_021E4C48: ; 0x021E4C48 - ldr r3, _021E4C50 ; =0x020066F5 + ldr r3, _021E4C50 ; =FUN_020066F4 ldr r0, [r0, #0x20] bx r3 nop -_021E4C50: .word 0x020066F5 +_021E4C50: .word FUN_020066F4 thumb_func_start MOD05_021E4C54 MOD05_021E4C54: ; 0x021E4C54 - ldr r3, _021E4C5C ; =0x020067D1 + ldr r3, _021E4C5C ; =FUN_020067D0 ldr r0, [r0, #0x20] bx r3 nop -_021E4C5C: .word 0x020067D1 +_021E4C5C: .word FUN_020067D0 thumb_func_start MOD05_021E4C60 MOD05_021E4C60: ; 0x021E4C60 - ldr r3, _021E4C68 ; =0x02006775 + ldr r3, _021E4C68 ; =FUN_02006774 ldr r0, [r0, #0x20] bx r3 nop -_021E4C68: .word 0x02006775 +_021E4C68: .word FUN_02006774 thumb_func_start MOD05_021E4C6C MOD05_021E4C6C: ; 0x021E4C6C @@ -28079,10 +28079,10 @@ _021E4DDE: thumb_func_start MOD05_021E4DE4 MOD05_021E4DE4: ; 0x021E4DE4 - ldr r3, _021E4DE8 ; =0x02064521 + ldr r3, _021E4DE8 ; =FUN_02064520 bx r3 .balign 4, 0 -_021E4DE8: .word 0x02064521 +_021E4DE8: .word FUN_02064520 thumb_func_start MOD05_021E4DEC MOD05_021E4DEC: ; 0x021E4DEC @@ -28513,11 +28513,11 @@ _021E5106: thumb_func_start MOD05_021E5114 MOD05_021E5114: ; 0x021E5114 ldr r0, [r0, #0x28] - ldr r3, _021E511C ; =0x02020FF1 + ldr r3, _021E511C ; =FUN_02020FF0 ldr r0, [r0, #0x18] bx r3 .balign 4, 0 -_021E511C: .word 0x02020FF1 +_021E511C: .word FUN_02020FF0 thumb_func_start MOD05_021E5120 MOD05_021E5120: ; 0x021E5120 @@ -30435,10 +30435,10 @@ _021E5FD4: .word MOD05_021F5430 thumb_func_start MOD05_021E5FD8 MOD05_021E5FD8: ; 0x021E5FD8 - ldr r3, _021E5FDC ; =0x020553D5 + ldr r3, _021E5FDC ; =FUN_020553D4 bx r3 .balign 4, 0 -_021E5FDC: .word 0x020553D5 +_021E5FDC: .word FUN_020553D4 thumb_func_start MOD05_021E5FE0 MOD05_021E5FE0: ; 0x021E5FE0 @@ -30566,7 +30566,7 @@ _021E60D2: add r0, r6, #0 add r2, r1, #0 add r3, r4, #0 - bl FUN_0224ABAC + bl MOD06_0224ABAC add r1, r0, #0 add r0, r5, #0 bl FUN_02055450 @@ -30576,11 +30576,11 @@ _021E60D2: thumb_func_start MOD05_021E610C MOD05_021E610C: ; 0x021E610C - ldr r3, _021E6114 ; =0x020556C9 + ldr r3, _021E6114 ; =FUN_020556C8 mov r1, #1 bx r3 nop -_021E6114: .word 0x020556C9 +_021E6114: .word FUN_020556C8 thumb_func_start MOD05_021E6118 MOD05_021E6118: ; 0x021E6118 @@ -31119,7 +31119,7 @@ _021E6514: ldr r3, [r4, #4] add r1, r5, r6 add r2, r7, r2 - bl FUN_0224ABAC + bl MOD06_0224ABAC str r0, [r4, #0x28] ldr r0, [r4, #0x20] ldr r1, [r4, #0x28] @@ -31175,7 +31175,7 @@ _021E65AC: bl FUN_0205AE50 ldr r0, [r4, #0x28] mov r1, #1 - bl FUN_0224ADF8 + bl MOD06_0224ADF8 ldr r0, [r4, #0x20] bl FUN_020553E8 add r1, r0, #0 @@ -31297,7 +31297,7 @@ _021E668C: bl FUN_0205ADDC ldr r0, [r4, #0x14] mov r1, #0 - bl FUN_0224ADF8 + bl MOD06_0224ADF8 ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -31509,7 +31509,7 @@ _021E682A: bl FUN_02046528 add r1, sp, #8 str r0, [sp, #4] - bl FUN_0223C08C + bl MOD06_0223C08C cmp r0, #1 bne _021E68A2 ldr r0, [r4, #0xc] @@ -31776,10 +31776,10 @@ MOD05_021E6A58: ; 0x021E6A58 ldr r3, [r5, #4] add r1, r4, r6 add r2, r7, r2 - bl FUN_0224AEE8 + bl MOD06_0224AEE8 str r0, [r5, #0x18] ldr r0, [r5, #0xc] - bl FUN_0224F0BC + bl MOD06_0224F0BC str r0, [r5, #0x2c] ldr r0, _021E6AA8 ; =0x00000627 bl FUN_020054C8 @@ -31825,7 +31825,7 @@ MOD05_021E6AD4: ; 0x021E6AD4 add r0, r0, #1 str r0, [r4] ldr r0, [r4, #0x18] - bl FUN_0224AF68 + bl MOD06_0224AF68 _021E6AF0: mov r0, #0 pop {r4, pc} @@ -31891,9 +31891,9 @@ _021E6B54: add r0, r0, #1 str r0, [r5] ldr r0, [r5, #0x18] - bl FUN_0224AF68 + bl MOD06_0224AF68 ldr r0, [r5, #0x2c] - bl FUN_0224F0D0 + bl MOD06_0224F0D0 mov r0, #0 str r0, [r5, #0x2c] pop {r3, r4, r5, pc} @@ -32151,7 +32151,7 @@ _021E6D36: ldr r0, [r3] str r0, [r2] ldr r0, [r5, #0x34] - bl FUN_0224ED94 + bl MOD06_0224ED94 str r0, [r5, #0x50] ldr r0, [r5] add r0, r0, #1 @@ -32257,7 +32257,7 @@ _021E6E1E: ldr r0, [r4, #0x3c] bl FUN_02059C60 ldr r0, [r4, #0x50] - bl FUN_0224EDA8 + bl MOD06_0224EDA8 mov r0, #1 add sp, #0xc pop {r3, r4, pc} @@ -32384,7 +32384,7 @@ _021E6F06: ldr r0, [r3] str r0, [r2] ldr r0, [r5, #0x34] - bl FUN_0224ED94 + bl MOD06_0224ED94 str r0, [r5, #0x50] ldr r0, [r5] add r0, r0, #1 @@ -32503,7 +32503,7 @@ _021E7004: ldr r0, [r4, #0x3c] bl FUN_02059C60 ldr r0, [r4, #0x50] - bl FUN_0224EDA8 + bl MOD06_0224EDA8 mov r0, #1 add sp, #0xc pop {r3, r4, pc} @@ -32762,7 +32762,7 @@ MOD05_021E723C: ; 0x021E723C ldr r2, [r4, #8] ldr r3, [r4, #4] mov r1, #0 - bl FUN_0224666C + bl MOD06_0224666C str r0, [r4, #0xc] pop {r4, pc} .balign 4, 0 @@ -32772,11 +32772,11 @@ MOD05_021E7250: ; 0x021E7250 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0xc] - bl FUN_022466A0 + bl MOD06_022466A0 cmp r0, #1 bne _021E7268 ldr r0, [r4, #0xc] - bl FUN_022466AC + bl MOD06_022466AC mov r0, #1 pop {r4, pc} _021E7268: @@ -32839,12 +32839,12 @@ _021E72CC: thumb_func_start MOD05_021E72DC MOD05_021E72DC: ; 0x021E72DC - ldr r3, _021E72E4 ; =0x02016A8D + ldr r3, _021E72E4 ; =FUN_02016A8C add r1, r0, #0 mov r0, #4 bx r3 .balign 4, 0 -_021E72E4: .word 0x02016A8D +_021E72E4: .word FUN_02016A8C thumb_func_start MOD05_021E72E8 MOD05_021E72E8: ; 0x021E72E8 @@ -33116,12 +33116,12 @@ _021E74E8: thumb_func_start MOD05_021E74F8 MOD05_021E74F8: ; 0x021E74F8 - ldr r3, _021E7500 ; =0x02016A8D + ldr r3, _021E7500 ; =FUN_02016A8C add r1, r0, #0 mov r0, #4 bx r3 .balign 4, 0 -_021E7500: .word 0x02016A8D +_021E7500: .word FUN_02016A8C thumb_func_start MOD05_021E7504 MOD05_021E7504: ; 0x021E7504 @@ -33157,12 +33157,12 @@ _021E7532: str r0, [r1, #0x10] _021E7536: ldr r0, [r1] - ldr r3, _021E7540 ; =0x02055305 + ldr r3, _021E7540 ; =FUN_02055304 ldr r0, [r0, #0x38] ldr r1, [r1, #0x10] bx r3 .balign 4, 0 -_021E7540: .word 0x02055305 +_021E7540: .word FUN_02055304 thumb_func_start MOD05_021E7544 MOD05_021E7544: ; 0x021E7544 @@ -34048,10 +34048,10 @@ MOD05_021E7C00: ; 0x021E7C00 thumb_func_start MOD05_021E7C14 MOD05_021E7C14: ; 0x021E7C14 - ldr r3, _021E7C18 ; =0x02016A19 + ldr r3, _021E7C18 ; =FUN_02016A18 bx r3 .balign 4, 0 -_021E7C18: .word 0x02016A19 +_021E7C18: .word FUN_02016A18 thumb_func_start MOD05_021E7C1C MOD05_021E7C1C: ; 0x021E7C1C @@ -36434,14 +36434,14 @@ _021E8E50: .word 0x04000010 thumb_func_start MOD05_021E8E54 MOD05_021E8E54: ; 0x021E8E54 - ldr r3, _021E8E60 ; =0x0200CA61 + ldr r3, _021E8E60 ; =FUN_0200CA60 mov r2, #1 add r1, r0, #0 ldr r0, _021E8E64 ; =MOD05_021E8E68 lsl r2, r2, #0xa bx r3 .balign 4, 0 -_021E8E60: .word 0x0200CA61 +_021E8E60: .word FUN_0200CA60 _021E8E64: .word MOD05_021E8E68 thumb_func_start MOD05_021E8E68 @@ -45836,11 +45836,11 @@ MOD05_021EDA98: ; 0x021EDA98 thumb_func_start MOD05_021EDAE8 MOD05_021EDAE8: ; 0x021EDAE8 - ldr r3, _021EDAF0 ; =0x0201F745 + ldr r3, _021EDAF0 ; =FUN_0201F744 ldr r0, [r1, #0x20] bx r3 nop -_021EDAF0: .word 0x0201F745 +_021EDAF0: .word FUN_0201F744 thumb_func_start MOD05_021EDAF4 MOD05_021EDAF4: ; 0x021EDAF4 @@ -50062,7 +50062,7 @@ MOD05_021EFA9C: ; 0x021EFA9C ldr r0, [r0, #0x14] cmp r0, #0 beq _021EFAAA - bl FUN_022524DC + bl MOD20_022524DC _021EFAAA: pop {r3, pc} @@ -50096,7 +50096,7 @@ MOD05_021EFAAC: ; 0x021EFAAC ldr r3, [r5, #8] add r0, r5, #0 add r1, #0x14 - bl FUN_02252448 + bl MOD20_02252448 add sp, #4 pop {r3, r4, r5, r6, pc} _021EFAF8: @@ -50104,7 +50104,7 @@ _021EFAF8: mov r1, #2 bl HandleLoadOverlay ldr r0, [r5, #8] - bl FUN_02252440 + bl MOD19_02252440 add sp, #4 pop {r3, r4, r5, r6, pc} nop @@ -50131,11 +50131,11 @@ MOD05_021EFB14: ; 0x021EFB14 bne _021EFB46 ldr r0, [r5, #4] ldr r0, [r0, #0x14] - bl FUN_022524BC + bl MOD20_022524BC pop {r4, r5, r6, pc} _021EFB46: ldr r0, [r5, #8] - bl FUN_022524F4 + bl MOD19_022524F4 pop {r4, r5, r6, pc} .balign 4, 0 @@ -50159,7 +50159,7 @@ MOD05_021EFB50: ; 0x021EFB50 bne _021EFB94 ldr r0, [r5, #4] ldr r0, [r0, #0x14] - bl FUN_022524D0 + bl MOD20_022524D0 cmp r0, #0 beq _021EFBA8 ldr r0, [r5, #4] @@ -50171,7 +50171,7 @@ MOD05_021EFB50: ; 0x021EFB50 pop {r4, r5, r6, pc} _021EFB94: ldr r0, [r5, #8] - bl FUN_02252504 + bl MOD19_02252504 cmp r0, #0 beq _021EFBA8 ldr r0, _021EFBB0 ; =SDK_OVERLAY_MODULE_19_ID @@ -50193,24 +50193,24 @@ MOD05_021EFBB4: ; 0x021EFBB4 mov r1, #2 bl HandleLoadOverlay ldr r0, [r4, #8] - bl FUN_02252440 + bl MOD19_02252440 pop {r4, pc} .balign 4, 0 _021EFBC8: .word SDK_OVERLAY_MODULE_19_ID thumb_func_start MOD05_021EFBCC MOD05_021EFBCC: ; 0x021EFBCC - ldr r3, _021EFBD4 ; =FUN_022524F4 + ldr r3, _021EFBD4 ; =MOD19_022524F4 ldr r0, [r0, #8] bx r3 nop -_021EFBD4: .word FUN_022524F4 + 1 +_021EFBD4: .word MOD19_022524F4 thumb_func_start MOD05_021EFBD8 MOD05_021EFBD8: ; 0x021EFBD8 push {r3, lr} ldr r0, [r0, #8] - bl FUN_02252504 + bl MOD19_02252504 cmp r0, #0 beq _021EFBEE ldr r0, _021EFBF4 ; =SDK_OVERLAY_MODULE_19_ID @@ -53980,7 +53980,7 @@ MOD05_021F19E4: ; 0x021F19E4 bl FUN_02058604 add r4, r0, #0 add r0, r5, #0 - bl FUN_0224A130 + bl MOD06_0224A130 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 @@ -53993,7 +53993,7 @@ MOD05_021F19FC: ; 0x021F19FC bl FUN_02058604 add r4, r0, #0 add r0, r5, #0 - bl FUN_0224A6B8 + bl MOD06_0224A6B8 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 @@ -54006,7 +54006,7 @@ MOD05_021F1A14: ; 0x021F1A14 bl FUN_02058604 add r4, r0, #0 add r0, r5, #0 - bl FUN_0224A8D4 + bl MOD06_0224A8D4 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 @@ -54019,7 +54019,7 @@ MOD05_021F1A2C: ; 0x021F1A2C bl FUN_02058604 add r4, r0, #0 add r0, r5, #0 - bl FUN_0224AA40 + bl MOD06_0224AA40 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 @@ -54069,7 +54069,7 @@ MOD05_021F1A78: ; 0x021F1A78 bl ErrorHandling _021F1A8C: add r0, r5, #0 - bl FUN_0224A130 + bl MOD06_0224A130 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 @@ -54086,7 +54086,7 @@ MOD05_021F1A98: ; 0x021F1A98 bl ErrorHandling _021F1AAC: add r0, r5, #0 - bl FUN_0224A6B8 + bl MOD06_0224A6B8 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 @@ -54103,7 +54103,7 @@ MOD05_021F1AB8: ; 0x021F1AB8 bl ErrorHandling _021F1ACC: add r0, r5, #0 - bl FUN_0224A8D4 + bl MOD06_0224A8D4 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 @@ -54120,7 +54120,7 @@ MOD05_021F1AD8: ; 0x021F1AD8 bl ErrorHandling _021F1AEC: add r0, r5, #0 - bl FUN_0224AA40 + bl MOD06_0224AA40 str r0, [r4] pop {r3, r4, r5, pc} .balign 4, 0 @@ -54131,7 +54131,7 @@ MOD05_021F1AF8: ; 0x021F1AF8 bl FUN_02058628 add r4, r0, #0 ldr r0, [r4] - bl FUN_0224A6FC + bl MOD06_0224A6FC mov r0, #0 str r0, [r4] pop {r4, pc} @@ -54282,10 +54282,10 @@ _021F1C18: .word MOD05_021F1CA4 thumb_func_start MOD05_021F1C1C MOD05_021F1C1C: ; 0x021F1C1C - ldr r3, _021F1C20 ; =0x02058629 + ldr r3, _021F1C20 ; =FUN_02058628 bx r3 .balign 4, 0 -_021F1C20: .word 0x02058629 +_021F1C20: .word FUN_02058628 thumb_func_start MOD05_021F1C24 MOD05_021F1C24: ; 0x021F1C24 @@ -56743,10 +56743,10 @@ MOD05_021F2E40: ; 0x021F2E40 thumb_func_start MOD05_021F2E68 MOD05_021F2E68: ; 0x021F2E68 - ldr r3, _021F2E6C ; =0x0201F23D + ldr r3, _021F2E6C ; =FUN_0201F23C bx r3 .balign 4, 0 -_021F2E6C: .word 0x0201F23D +_021F2E6C: .word FUN_0201F23C thumb_func_start MOD05_021F2E70 MOD05_021F2E70: ; 0x021F2E70 @@ -57801,7 +57801,7 @@ _021F3658: ldr r2, [r5, #0x24] add r1, #0x28 add r3, sp, #0x1c - bl FUN_02249B7C + bl MOD06_02249B7C str r0, [r5, #0x54] _021F367A: add r0, r7, #0 @@ -57964,12 +57964,12 @@ _021F37C2: thumb_func_start MOD05_021F37D0 MOD05_021F37D0: ; 0x021F37D0 - ldr r3, _021F37D8 ; =0x02016A8D + ldr r3, _021F37D8 ; =FUN_02016A8C add r1, r0, #0 ldr r0, [r1] bx r3 .balign 4, 0 -_021F37D8: .word 0x02016A8D +_021F37D8: .word FUN_02016A8C thumb_func_start MOD05_021F37DC MOD05_021F37DC: ; 0x021F37DC @@ -59235,13 +59235,13 @@ _021F4180: thumb_func_start MOD05_021F4184 MOD05_021F4184: ; 0x021F4184 - ldr r3, _021F4190 ; =0x02006865 + ldr r3, _021F4190 ; =FUN_02006864 add r2, r1, #0 mov r1, #0x1c ldr r2, [r2] bx r3 nop -_021F4190: .word 0x02006865 +_021F4190: .word FUN_02006864 thumb_func_start MOD05_021F4194 MOD05_021F4194: ; 0x021F4194 @@ -59250,10 +59250,10 @@ MOD05_021F4194: ; 0x021F4194 mov r1, #0xc mul r1, r2 ldr r2, [r3, #0x10] - ldr r3, _021F41A4 ; =0x02006865 + ldr r3, _021F41A4 ; =FUN_02006864 bx r3 nop -_021F41A4: .word 0x02006865 +_021F41A4: .word FUN_02006864 thumb_func_start MOD05_021F41A8 MOD05_021F41A8: ; 0x021F41A8 @@ -59262,10 +59262,10 @@ MOD05_021F41A8: ; 0x021F41A8 mov r1, #0xc mul r1, r2 ldr r2, [r3, #0x14] - ldr r3, _021F41B8 ; =0x02006865 + ldr r3, _021F41B8 ; =FUN_02006864 bx r3 nop -_021F41B8: .word 0x02006865 +_021F41B8: .word FUN_02006864 thumb_func_start MOD05_021F41BC MOD05_021F41BC: ; 0x021F41BC @@ -59274,41 +59274,41 @@ MOD05_021F41BC: ; 0x021F41BC mov r1, #0xc mul r1, r2 ldr r2, [r3, #4] - ldr r3, _021F41CC ; =0x02006865 + ldr r3, _021F41CC ; =FUN_02006864 bx r3 nop -_021F41CC: .word 0x02006865 +_021F41CC: .word FUN_02006864 thumb_func_start MOD05_021F41D0 MOD05_021F41D0: ; 0x021F41D0 add r3, r1, #0 ldr r1, [r2, #0xc] ldr r2, [r3, #8] - ldr r3, _021F41DC ; =0x02006865 + ldr r3, _021F41DC ; =FUN_02006864 lsl r1, r1, #2 bx r3 .balign 4, 0 -_021F41DC: .word 0x02006865 +_021F41DC: .word FUN_02006864 thumb_func_start MOD05_021F41E0 MOD05_021F41E0: ; 0x021F41E0 add r3, r1, #0 ldr r1, [r2, #0x14] ldr r2, [r3, #0xc] - ldr r3, _021F41EC ; =0x02006865 + ldr r3, _021F41EC ; =FUN_02006864 bx r3 nop -_021F41EC: .word 0x02006865 +_021F41EC: .word FUN_02006864 thumb_func_start MOD05_021F41F0 MOD05_021F41F0: ; 0x021F41F0 add r3, r1, #0 ldr r1, [r2, #0x10] ldr r2, [r3, #0x18] - ldr r3, _021F41FC ; =0x02006865 + ldr r3, _021F41FC ; =FUN_02006864 bx r3 nop -_021F41FC: .word 0x02006865 +_021F41FC: .word FUN_02006864 thumb_func_start MOD05_021F4200 MOD05_021F4200: ; 0x021F4200 @@ -60336,12 +60336,12 @@ MOD05_021F491C: ; 0x021F491C thumb_func_start MOD05_021F4968 MOD05_021F4968: ; 0x021F4968 ldr r2, [r1, #0x14] - ldr r3, _021F4974 ; =0x02016B45 + ldr r3, _021F4974 ; =FUN_02016B44 add r1, r1, r2 sub r1, r1, r0 bx r3 nop -_021F4974: .word 0x02016B45 +_021F4974: .word FUN_02016B44 thumb_func_start MOD05_021F4978 MOD05_021F4978: ; 0x021F4978 @@ -62106,21 +62106,21 @@ _021F5696: thumb_func_start MOD05_021F569C MOD05_021F569C: ; 0x021F569C - ldr r3, _021F56A4 ; =0x02017FE5 + ldr r3, _021F56A4 ; =FUN_02017FE4 mov r0, #2 mov r1, #0 bx r3 .balign 4, 0 -_021F56A4: .word 0x02017FE5 +_021F56A4: .word FUN_02017FE4 thumb_func_start MOD05_021F56A8 MOD05_021F56A8: ; 0x021F56A8 - ldr r3, _021F56B0 ; =0x02017FE5 + ldr r3, _021F56B0 ; =FUN_02017FE4 mov r0, #2 ldr r1, _021F56B4 ; =0x00007FFF bx r3 .balign 4, 0 -_021F56B0: .word 0x02017FE5 +_021F56B0: .word FUN_02017FE4 _021F56B4: .word 0x00007FFF thumb_func_start MOD05_021F56B8 @@ -62383,7 +62383,7 @@ _021F5888: bl FUN_0204A6E0 add r1, r0, #0 add r0, r5, #0 - bl FUN_0223CDB8 + bl MOD06_0223CDB8 cmp r0, #0 beq _021F58CE mov r0, #6 @@ -62433,7 +62433,7 @@ _021F5914: _021F5924: add r0, r5, #0 add r1, r6, #0 - bl FUN_0223BE70 + bl MOD06_0223BE70 cmp r0, #0 bne _021F5980 bl ErrorHandling @@ -62710,10 +62710,10 @@ _021F5B30: thumb_func_start MOD05_021F5B34 MOD05_021F5B34: ; 0x021F5B34 - ldr r3, _021F5B38 ; =0x02016A19 + ldr r3, _021F5B38 ; =FUN_02016A18 bx r3 .balign 4, 0 -_021F5B38: .word 0x02016A19 +_021F5B38: .word FUN_02016A18 thumb_func_start MOD05_021F5B3C MOD05_021F5B3C: ; 0x021F5B3C @@ -62797,9 +62797,9 @@ MOD05_021F5B9C: ; 0x021F5B9C bl FUN_02050DF0 add r7, r0, #0 beq _021F5C40 - bl FUN_0223E2C4 + bl MOD18_0223E2C4 add r6, r0, #0 - bl FUN_0223E2DC + bl MOD18_0223E2DC lsl r1, r6, #0x15 lsl r0, r0, #0x15 mov r4, #0 @@ -62917,7 +62917,7 @@ _021F5C8E: ldr r1, [r5, #0xc] add r0, r4, #0 add r2, #0x10 - bl FUN_0223BD14 + bl MOD06_0223BD14 str r0, [r5, #8] ldr r1, [r5, #0xc] ldr r2, [r5, #8] @@ -63791,13 +63791,13 @@ _021F62F2: thumb_func_start MOD05_021F62FC MOD05_021F62FC: ; 0x021F62FC - ldr r3, _021F6308 ; =0x0201EFE1 + ldr r3, _021F6308 ; =FUN_0201EFE0 add r1, r0, #0 ldr r0, [r1, #0x20] ldr r1, [r1, #0x30] bx r3 nop -_021F6308: .word 0x0201EFE1 +_021F6308: .word FUN_0201EFE0 thumb_func_start MOD05_021F630C MOD05_021F630C: ; 0x021F630C @@ -63909,7 +63909,7 @@ _021F63CC: ldr r0, [sp] ldr r2, [r6] mov r1, #0 - bl FUN_0224666C + bl MOD06_0224666C str r0, [r5] ldr r0, [r4] add r0, r0, #1 @@ -63917,11 +63917,11 @@ _021F63CC: b _021F6424 _021F63EA: ldr r0, [r5] - bl FUN_022466A0 + bl MOD06_022466A0 cmp r0, #0 beq _021F6424 ldr r0, [r5] - bl FUN_022466AC + bl MOD06_022466AC ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -63948,9 +63948,13 @@ _021F6424: .align 2, 0 _021F6428: .word MOD05_021F57F0 - .section .data + .section .rodata ; 0x021F642C - .incbin "baserom.nds", 0x16434c, 0x7254 + .incbin "baserom.nds", 0x16434c, 0x6d9c + + .section .data + ; 0x021FD1E0 + .incbin "baserom.nds", 0x16b100, 0x4A0 .section .bss ; 0x021FD680 diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s index ac7d6b48..a7ddd5a6 100644 --- a/arm9/modules/06/asm/module_06.s +++ b/arm9/modules/06/asm/module_06.s @@ -180,26 +180,26 @@ _022397F0: .word 0x0224F1D8 thumb_func_start MOD06_022397F4 MOD06_022397F4: ; 0x022397F4 - ldr r3, _02239800 ; =0x0200CA99 + ldr r3, _02239800 ; =FUN_0200CA98 mov r2, #1 add r1, r0, #0 ldr r0, _02239804 ; =MOD06_0223981C lsl r2, r2, #0xa bx r3 .align 2, 0 -_02239800: .word 0x0200CA99 +_02239800: .word FUN_0200CA98 _02239804: .word MOD06_0223981C thumb_func_start MOD06_02239808 MOD06_02239808: ; 0x02239808 - ldr r3, _02239814 ; =0x0200CA99 + ldr r3, _02239814 ; =FUN_0200CA98 mov r2, #1 add r1, r0, #0 ldr r0, _02239818 ; =MOD06_02239840 lsl r2, r2, #0xa bx r3 .align 2, 0 -_02239814: .word 0x0200CA99 +_02239814: .word FUN_0200CA98 _02239818: .word MOD06_02239840 thumb_func_start MOD06_0223981C @@ -238,15 +238,15 @@ MOD06_02239840: ; 0x02239840 thumb_func_start MOD06_02239864 MOD06_02239864: ; 0x02239864 - ldr r3, _02239868 ; =0x021D7A29 + ldr r3, _02239868 ; =MOD05_021D7A28 bx r3 .align 2, 0 -_02239868: .word 0x021D7A29 +_02239868: .word MOD05_021D7A28 thumb_func_start MOD06_0223986C MOD06_0223986C: ; 0x0223986C push {r3, lr} - bl FUN_021D7A20 + bl MOD05_021D7A20 mov r0, #1 add r1, r0, #0 bl FUN_0201E6E4 @@ -271,7 +271,7 @@ _0223988A: add r0, sp, #0 str r3, [sp, #0x20] str r2, [sp, #0x24] - bl FUN_021E8648 + bl MOD05_021E8648 add sp, #0x2c pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -279,14 +279,14 @@ _022398A4: .word 0x0224F21C thumb_func_start MOD06_022398A8 MOD06_022398A8: ; 0x022398A8 - ldr r3, _022398B4 ; =0x0200CA99 + ldr r3, _022398B4 ; =FUN_0200CA98 mov r2, #1 add r1, r0, #0 ldr r0, _022398B8 ; =MOD06_022398BC lsl r2, r2, #0xa bx r3 .align 2, 0 -_022398B4: .word 0x0200CA99 +_022398B4: .word FUN_0200CA98 _022398B8: .word MOD06_022398BC thumb_func_start MOD06_022398BC @@ -298,7 +298,7 @@ MOD06_022398BC: ; 0x022398BC mov r1, #1 mov r2, #0 add r3, r1, #0 - bl FUN_021E8698 + bl MOD05_021E8698 add r0, r4, #0 bl FUN_0200CAB4 pop {r4, pc} @@ -822,25 +822,25 @@ _02239CE4: thumb_func_start MOD06_02239CE8 MOD06_02239CE8: ; 0x02239CE8 ldr r0, [r0, #4] - ldr r3, _02239CF4 ; =0x021D8025 + ldr r3, _02239CF4 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _02239CF8 ; =0x0224F1C0 bx r3 nop -_02239CF4: .word 0x021D8025 +_02239CF4: .word MOD05_021D8024 _02239CF8: .word 0x0224F1C0 thumb_func_start MOD06_02239CFC MOD06_02239CFC: ; 0x02239CFC - ldr r3, _02239D00 ; =0x021D80A5 + ldr r3, _02239D00 ; =MOD05_021D80A4 bx r3 .align 2, 0 -_02239D00: .word 0x021D80A5 +_02239D00: .word MOD05_021D80A4 thumb_func_start MOD06_02239D04 MOD06_02239D04: ; 0x02239D04 push {r3, lr} - bl FUN_021D80E4 + bl MOD05_021D80E4 ldr r0, [r0] cmp r0, #0xb bne _02239D14 @@ -1170,20 +1170,20 @@ _02239F60: .word MOD06_0223B340 thumb_func_start MOD06_02239F64 MOD06_02239F64: ; 0x02239F64 ldr r0, [r0, #4] - ldr r3, _02239F70 ; =0x021D8025 + ldr r3, _02239F70 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _02239F74 ; =0x0224F190 bx r3 nop -_02239F70: .word 0x021D8025 +_02239F70: .word MOD05_021D8024 _02239F74: .word 0x0224F190 thumb_func_start MOD06_02239F78 MOD06_02239F78: ; 0x02239F78 - ldr r3, _02239F7C ; =0x021D80A5 + ldr r3, _02239F7C ; =MOD05_021D80A4 bx r3 .align 2, 0 -_02239F7C: .word 0x021D80A5 +_02239F7C: .word MOD05_021D80A4 thumb_func_start MOD06_02239F80 MOD06_02239F80: ; 0x02239F80 @@ -1291,10 +1291,10 @@ MOD06_0223A020: ; 0x0223A020 bl FUN_0201EC94 add r0, r5, #0 add r0, #0x48 - bl FUN_021DB4B0 + bl MOD05_021DB4B0 ldr r0, [r5, #0x40] mov r1, #2 - bl FUN_021DB44C + bl MOD05_021DB44C str r0, [r5, #0x48] mov r0, #4 bl MOD06_0223B574 @@ -1365,10 +1365,10 @@ MOD06_0223A0D4: ; 0x0223A0D4 bl FUN_0201EC94 add r0, r5, #0 add r0, #0x48 - bl FUN_021DB4B0 + bl MOD05_021DB4B0 ldr r0, [r5, #0x40] mov r1, #2 - bl FUN_021DB44C + bl MOD05_021DB44C str r0, [r5, #0x48] mov r0, #4 bl MOD06_0223B574 @@ -1437,7 +1437,7 @@ MOD06_0223A1B0: ; 0x0223A1B0 MOD06_0223A1C4: ; 0x0223A1C4 lsl r2, r1, #2 ldr r1, _0223A1D8 ; =0x0224F174 - ldr r3, _0223A1DC ; =0x021D8025 + ldr r3, _0223A1DC ; =MOD05_021D8024 ldr r2, [r1, r2] ldr r1, _0223A1E0 ; =0x02252240 str r2, [r1, #8] @@ -1447,7 +1447,7 @@ MOD06_0223A1C4: ; 0x0223A1C4 bx r3 .align 2, 0 _0223A1D8: .word 0x0224F174 -_0223A1DC: .word 0x021D8025 +_0223A1DC: .word MOD05_021D8024 _0223A1E0: .word 0x02252240 _0223A1E4: .word 0x02252240 @@ -1585,25 +1585,25 @@ _0223A2E4: .word MOD06_0223A828 thumb_func_start MOD06_0223A2E8 MOD06_0223A2E8: ; 0x0223A2E8 ldr r0, [r0, #4] - ldr r3, _0223A2F4 ; =0x021D8025 + ldr r3, _0223A2F4 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _0223A2F8 ; =0x0224F1A8 bx r3 nop -_0223A2F4: .word 0x021D8025 +_0223A2F4: .word MOD05_021D8024 _0223A2F8: .word 0x0224F1A8 thumb_func_start MOD06_0223A2FC MOD06_0223A2FC: ; 0x0223A2FC - ldr r3, _0223A300 ; =0x021D80A5 + ldr r3, _0223A300 ; =MOD05_021D80A4 bx r3 .align 2, 0 -_0223A300: .word 0x021D80A5 +_0223A300: .word MOD05_021D80A4 thumb_func_start MOD06_0223A304 MOD06_0223A304: ; 0x0223A304 push {r3, lr} - bl FUN_021D80E4 + bl MOD05_021D80E4 mov r1, #3 str r1, [r0] pop {r3, pc} @@ -1611,7 +1611,7 @@ MOD06_0223A304: ; 0x0223A304 thumb_func_start MOD06_0223A310 MOD06_0223A310: ; 0x0223A310 push {r3, lr} - bl FUN_021D80E4 + bl MOD05_021D80E4 ldr r0, [r0] pop {r3, pc} .align 2, 0 @@ -1696,15 +1696,15 @@ _0223A370: thumb_func_start MOD06_0223A39C MOD06_0223A39C: ; 0x0223A39C push {r3, lr} - bl FUN_021F5268 + bl MOD05_021F5268 pop {r3, pc} thumb_func_start MOD06_0223A3A4 MOD06_0223A3A4: ; 0x0223A3A4 - ldr r3, _0223A3A8 ; =0x021F52C9 + ldr r3, _0223A3A8 ; =MOD05_021F52C8 bx r3 .align 2, 0 -_0223A3A8: .word 0x021F52C9 +_0223A3A8: .word MOD05_021F52C8 thumb_func_start MOD06_0223A3AC MOD06_0223A3AC: ; 0x0223A3AC @@ -1714,95 +1714,95 @@ MOD06_0223A3AC: ; 0x0223A3AC str r4, [sp] ldr r4, [sp, #0x14] str r4, [sp, #4] - bl FUN_021F531C + bl MOD05_021F531C add sp, #8 pop {r4, pc} thumb_func_start MOD06_0223A3C0 MOD06_0223A3C0: ; 0x0223A3C0 - ldr r3, _0223A3C4 ; =0x021F5359 + ldr r3, _0223A3C4 ; =MOD05_021F5358 bx r3 .align 2, 0 -_0223A3C4: .word 0x021F5359 +_0223A3C4: .word MOD05_021F5358 thumb_func_start MOD06_0223A3C8 MOD06_0223A3C8: ; 0x0223A3C8 - ldr r3, _0223A3D0 ; =0x021F5385 + ldr r3, _0223A3D0 ; =MOD05_021F5384 mov r1, #1 lsl r1, r1, #0xc bx r3 .align 2, 0 -_0223A3D0: .word 0x021F5385 +_0223A3D0: .word MOD05_021F5384 thumb_func_start MOD06_0223A3D4 MOD06_0223A3D4: ; 0x0223A3D4 - ldr r3, _0223A3D8 ; =0x021F5385 + ldr r3, _0223A3D8 ; =MOD05_021F5384 bx r3 .align 2, 0 -_0223A3D8: .word 0x021F5385 +_0223A3D8: .word MOD05_021F5384 thumb_func_start MOD06_0223A3DC MOD06_0223A3DC: ; 0x0223A3DC - ldr r3, _0223A3E4 ; =0x021F53BD + ldr r3, _0223A3E4 ; =MOD05_021F53BC mov r1, #1 lsl r1, r1, #0xc bx r3 .align 2, 0 -_0223A3E4: .word 0x021F53BD +_0223A3E4: .word MOD05_021F53BC thumb_func_start MOD06_0223A3E8 MOD06_0223A3E8: ; 0x0223A3E8 - ldr r3, _0223A3EC ; =0x021F53F9 + ldr r3, _0223A3EC ; =MOD05_021F53F8 bx r3 .align 2, 0 -_0223A3EC: .word 0x021F53F9 +_0223A3EC: .word MOD05_021F53F8 thumb_func_start MOD06_0223A3F0 MOD06_0223A3F0: ; 0x0223A3F0 - ldr r3, _0223A3F4 ; =0x021F5401 + ldr r3, _0223A3F4 ; =MOD05_021F5400 bx r3 .align 2, 0 -_0223A3F4: .word 0x021F5401 +_0223A3F4: .word MOD05_021F5400 thumb_func_start MOD06_0223A3F8 MOD06_0223A3F8: ; 0x0223A3F8 - ldr r3, _0223A3FC ; =0x021F5425 + ldr r3, _0223A3FC ; =MOD05_021F5424 bx r3 .align 2, 0 -_0223A3FC: .word 0x021F5425 +_0223A3FC: .word MOD05_021F5424 thumb_func_start MOD06_0223A400 MOD06_0223A400: ; 0x0223A400 - ldr r3, _0223A404 ; =0x021F5431 + ldr r3, _0223A404 ; =MOD05_021F5430 bx r3 .align 2, 0 -_0223A404: .word 0x021F5431 +_0223A404: .word MOD05_021F5430 thumb_func_start MOD06_0223A408 MOD06_0223A408: ; 0x0223A408 - ldr r3, _0223A40C ; =0x021F54CD + ldr r3, _0223A40C ; =MOD05_021F54CC bx r3 .align 2, 0 -_0223A40C: .word 0x021F54CD +_0223A40C: .word MOD05_021F54CC thumb_func_start MOD06_0223A410 MOD06_0223A410: ; 0x0223A410 push {r3, lr} - bl FUN_021F54D0 + bl MOD05_021F54D0 pop {r3, pc} thumb_func_start MOD06_0223A418 MOD06_0223A418: ; 0x0223A418 push {r3, lr} - bl FUN_021F54D8 + bl MOD05_021F54D8 pop {r3, pc} thumb_func_start MOD06_0223A420 MOD06_0223A420: ; 0x0223A420 - ldr r3, _0223A424 ; =0x021F54E1 + ldr r3, _0223A424 ; =MOD05_021F54E0 bx r3 .align 2, 0 -_0223A424: .word 0x021F54E1 +_0223A424: .word MOD05_021F54E0 thumb_func_start MOD06_0223A428 MOD06_0223A428: ; 0x0223A428 @@ -2335,7 +2335,7 @@ MOD06_0223A800: ; 0x0223A800 mov r2, #0 lsl r0, r0, #4 str r2, [r1, r0] - ldr r3, _0223A818 ; =0x0200CA45 + ldr r3, _0223A818 ; =FUN_0200CA44 mov r2, #4 sub r0, r0, #4 str r2, [r1, r0] @@ -2343,7 +2343,7 @@ MOD06_0223A800: ; 0x0223A800 lsl r2, r2, #8 bx r3 .align 2, 0 -_0223A818: .word 0x0200CA45 +_0223A818: .word FUN_0200CA44 _0223A81C: .word MOD06_0223A944 thumb_func_start MOD06_0223A820 @@ -3245,8 +3245,8 @@ _0223AEE0: MOD06_0223AEE8: ; 0x0223AEE8 push {r3, lr} ldr r0, [r0] - bl FUN_021F1C1C - bl FUN_021F1C30 + bl MOD05_021F1C1C + bl MOD05_021F1C30 pop {r3, pc} .align 2, 0 @@ -4371,10 +4371,10 @@ _0223B72C: thumb_func_start MOD06_0223B73C MOD06_0223B73C: ; 0x0223B73C - ldr r3, _0223B740 ; =0x02016A19 + ldr r3, _0223B740 ; =FUN_02016A18 bx r3 .align 2, 0 -_0223B740: .word 0x02016A19 +_0223B740: .word FUN_02016A18 thumb_func_start MOD06_0223B744 MOD06_0223B744: ; 0x0223B744 @@ -4388,12 +4388,12 @@ MOD06_0223B744: ; 0x0223B744 str r1, [r0, #0x10] str r2, [r0, #0x14] ldr r0, [r0] - ldr r3, _0223B764 ; =0x021DB52D + ldr r3, _0223B764 ; =MOD05_021DB52C ldr r0, [r0, #0x48] bx r3 nop _0223B760: .word 0x0224F248 -_0223B764: .word 0x021DB52D +_0223B764: .word MOD05_021DB52C thumb_func_start MOD06_0223B768 MOD06_0223B768: ; 0x0223B768 @@ -4441,7 +4441,7 @@ _0223B7AE: add r0, r1, r0 ldr r1, [r4] ldr r1, [r1, #0x40] - bl FUN_021DB53C + bl MOD05_021DB53C pop {r3, r4, r5, pc} _0223B7C0: ldr r0, [r4, #0xc] @@ -4468,7 +4468,7 @@ _0223B7C0: ldr r2, [r4, #4] ldr r1, [r1, #0x40] add r0, r2, r0 - bl FUN_021DB53C + bl MOD05_021DB53C pop {r3, r4, r5, pc} _0223B7F6: ldr r0, [r4, #0xc] @@ -4477,7 +4477,7 @@ _0223B7F6: ldr r0, [r4] mov r1, #1 ldr r0, [r0, #0x48] - bl FUN_021DB52C + bl MOD05_021DB52C ldr r0, [r4, #0x14] add r0, r0, #1 str r0, [r4, #0x14] @@ -7113,7 +7113,7 @@ MOD06_0223CCDC: ; 0x0223CCDC sub sp, #0x24 add r5, r0, #0 add r4, r1, #0 - bl FUN_021F51D0 + bl MOD05_021F51D0 str r0, [sp, #8] ldr r0, [r5, #0xc] bl FUN_0206BB1C @@ -7161,7 +7161,7 @@ _0223CD46: mov r7, #0xf _0223CD4C: add r0, r5, #0 - bl FUN_021F522C + bl MOD05_021F522C mov r1, #0x63 lsl r1, r1, #2 ldr r2, [r4, r1] @@ -10913,7 +10913,7 @@ MOD06_0223EB90: ; 0x0223EB90 add r0, #0x94 mov r2, #4 mov r3, #0xb - bl FUN_021D9320 + bl MOD05_021D9320 add r7, r5, #0 ldr r4, _0223EBD0 ; =0x0224F3DC mov r6, #0 @@ -10921,7 +10921,7 @@ MOD06_0223EB90: ; 0x0223EB90 _0223EBA8: add r0, r7, #0 add r1, r4, #0 - bl FUN_021D9510 + bl MOD05_021D9510 mov r1, #0x7e lsl r1, r1, #2 str r0, [r5, r1] @@ -10955,7 +10955,7 @@ _0223EBE0: blo _0223EBE0 add r7, #0x94 add r0, r7, #0 - bl FUN_021D94B4 + bl MOD05_021D94B4 pop {r3, r4, r5, r6, r7, pc} thumb_func_start MOD06_0223EBF8 @@ -11061,18 +11061,18 @@ _0223ECC4: .word 0x00000241 MOD06_0223ECC8: ; 0x0223ECC8 mov r2, #2 lsl r2, r2, #8 - ldr r3, _0223ECD4 ; =0x0200C665 + ldr r3, _0223ECD4 ; =FUN_0200C664 ldr r0, [r0, r2] bx r3 nop -_0223ECD4: .word 0x0200C665 +_0223ECD4: .word FUN_0200C664 thumb_func_start MOD06_0223ECD8 MOD06_0223ECD8: ; 0x0223ECD8 push {r4, lr} mov r0, #0 add r4, r1, #0 - bl FUN_021D7CA4 + bl MOD05_021D7CA4 ldr r0, _0223ECEC ; =0x0000022F mov r1, #0xf strb r1, [r4, r0] @@ -12486,10 +12486,10 @@ MOD06_0223F89C: ; 0x0223F89C thumb_func_start MOD06_0223F8B4 MOD06_0223F8B4: ; 0x0223F8B4 - ldr r3, _0223F8B8 ; =0x02050025 + ldr r3, _0223F8B8 ; =FUN_02050024 bx r3 .align 2, 0 -_0223F8B8: .word 0x02050025 +_0223F8B8: .word FUN_02050024 thumb_func_start MOD06_0223F8BC MOD06_0223F8BC: ; 0x0223F8BC @@ -14240,26 +14240,26 @@ _0224074C: .word 0x02252420 thumb_func_start MOD06_02240750 MOD06_02240750: ; 0x02240750 ldr r0, _0224075C ; =0x02252420 - ldr r3, _02240760 ; =0x02031259 + ldr r3, _02240760 ; =FUN_02031258 ldr r0, [r0] add r0, #0x91 ldrb r0, [r0] bx r3 .align 2, 0 _0224075C: .word 0x02252420 -_02240760: .word 0x02031259 +_02240760: .word FUN_02031258 thumb_func_start MOD06_02240764 MOD06_02240764: ; 0x02240764 ldr r0, _02240770 ; =0x02252420 - ldr r3, _02240774 ; =0x02031249 + ldr r3, _02240774 ; =FUN_02031248 ldr r0, [r0] add r0, #0x91 ldrb r0, [r0] bx r3 .align 2, 0 _02240770: .word 0x02252420 -_02240774: .word 0x02031249 +_02240774: .word FUN_02031248 thumb_func_start MOD06_02240778 MOD06_02240778: ; 0x02240778 @@ -15765,36 +15765,36 @@ _02241376: _02241386: ldr r1, [r4, #0x4c] mov r0, #1 - bl FUN_021DA03C + bl MOD05_021DA03C add r6, r0, #0 ldr r1, [r4, #0x4c] mov r0, #2 - bl FUN_021DA03C + bl MOD05_021DA03C add r7, r0, #0 ldr r1, [r4, #0x4c] mov r0, #3 - bl FUN_021DA03C + bl MOD05_021DA03C str r0, [sp] add r0, r6, #0 - bl FUN_021DA20C + bl MOD05_021DA20C cmp r0, #0 beq _0224141E add r0, r7, #0 - bl FUN_021DA20C + bl MOD05_021DA20C cmp r0, #0 beq _0224141E ldr r0, [sp] - bl FUN_021DA20C + bl MOD05_021DA20C cmp r0, #0 beq _0224141E add r4, #0xa0 ldr r0, [r4] mov r1, #0xf2 - bl FUN_021E7ED8 + bl MOD05_021E7ED8 add r4, r0, #0 add r0, sp, #4 add r1, r4, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 mov r0, #1 ldr r1, [sp, #8] lsl r0, r0, #0xc @@ -15810,14 +15810,14 @@ _02241386: _022413EE: add r0, r4, #0 add r1, sp, #4 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 b _0224141E _022413F8: add r4, #0x9c mov r0, #0 ldr r2, [r4] add r1, r0, #0 - bl FUN_021F4594 + bl MOD05_021F4594 ldr r0, _02241424 ; =0x0000065A mov r1, #0 bl FUN_020054F0 @@ -15876,35 +15876,35 @@ _0224145C: _0224146C: ldr r1, [r4, #0x4c] mov r0, #1 - bl FUN_021DA03C + bl MOD05_021DA03C add r6, r0, #0 ldr r1, [r4, #0x4c] mov r0, #2 - bl FUN_021DA03C + bl MOD05_021DA03C add r7, r0, #0 ldr r1, [r4, #0x4c] mov r0, #3 - bl FUN_021DA03C + bl MOD05_021DA03C str r0, [sp] add r0, r6, #0 - bl FUN_021DA20C + bl MOD05_021DA20C cmp r0, #0 beq _02241580 add r0, r7, #0 - bl FUN_021DA20C + bl MOD05_021DA20C cmp r0, #0 beq _02241580 ldr r0, [sp] - bl FUN_021DA20C + bl MOD05_021DA20C cmp r0, #0 beq _02241580 add r4, #0xa0 ldr r0, [r4] mov r1, #0xf2 - bl FUN_021E7ED8 + bl MOD05_021E7ED8 add r1, r0, #0 add r0, sp, #0x1c - bl FUN_021E7EA0 + bl MOD05_021E7EA0 ldr r1, [sp, #0x20] cmp r1, #0 bne _022414C6 @@ -15935,11 +15935,11 @@ _022414EC: add r4, #0xa0 ldr r0, [r4] mov r1, #0xf2 - bl FUN_021E7ED8 + bl MOD05_021E7ED8 add r4, r0, #0 add r0, sp, #0x10 add r1, r4, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 mov r0, #1 ldr r1, [sp, #0x14] lsl r0, r0, #0xc @@ -15955,17 +15955,17 @@ _022414EC: _02241518: add r0, r4, #0 add r1, sp, #0x10 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 b _02241580 _02241522: add r4, #0xa0 ldr r0, [r4] mov r1, #0xf2 - bl FUN_021E7ED8 + bl MOD05_021E7ED8 add r4, r0, #0 add r0, sp, #4 add r1, r4, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 mov r0, #1 ldr r1, [sp, #8] lsl r0, r0, #0xc @@ -15981,7 +15981,7 @@ _02241522: _0224154E: add r0, r4, #0 add r1, sp, #4 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 b _02241580 _02241558: add r4, #0x9c @@ -15989,7 +15989,7 @@ _02241558: ldr r2, [r4] mov r0, #0 lsl r1, r1, #0x10 - bl FUN_021F4594 + bl MOD05_021F4594 ldr r0, _02241588 ; =0x0000065A mov r1, #0 bl FUN_020054F0 @@ -16044,36 +16044,36 @@ _022415BA: _022415CA: ldr r1, [r4, #0x4c] mov r0, #1 - bl FUN_021DA03C + bl MOD05_021DA03C add r6, r0, #0 ldr r1, [r4, #0x4c] mov r0, #2 - bl FUN_021DA03C + bl MOD05_021DA03C add r7, r0, #0 ldr r1, [r4, #0x4c] mov r0, #3 - bl FUN_021DA03C + bl MOD05_021DA03C str r0, [sp] add r0, r6, #0 - bl FUN_021DA20C + bl MOD05_021DA20C cmp r0, #0 beq _02241666 add r0, r7, #0 - bl FUN_021DA20C + bl MOD05_021DA20C cmp r0, #0 beq _02241666 ldr r0, [sp] - bl FUN_021DA20C + bl MOD05_021DA20C cmp r0, #0 beq _02241666 add r4, #0xa0 ldr r0, [r4] mov r1, #0xf2 - bl FUN_021E7ED8 + bl MOD05_021E7ED8 add r4, r0, #0 add r0, sp, #4 add r1, r4, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 mov r0, #1 ldr r1, [sp, #8] lsl r0, r0, #0xc @@ -16090,7 +16090,7 @@ _022415CA: _02241634: add r0, r4, #0 add r1, sp, #4 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 b _02241666 _0224163E: add r4, #0x9c @@ -16098,7 +16098,7 @@ _0224163E: ldr r2, [r4] mov r0, #0 lsl r1, r1, #0x12 - bl FUN_021F4594 + bl MOD05_021F4594 ldr r0, _0224166C ; =0x0000065A mov r1, #0 bl FUN_020054F0 @@ -16144,7 +16144,7 @@ MOD06_02241670: ; 0x02241670 add r0, #0xa0 ldr r0, [r0] ldr r1, [r4, #0x2c] - bl FUN_021E7FBC + bl MOD05_021E7FBC mov r0, #0x26 str r0, [sp] mov r0, #0 @@ -16156,7 +16156,7 @@ MOD06_02241670: ; 0x02241670 str r1, [sp, #8] mov r1, #1 mov r3, #0x19 - bl FUN_021F44D8 + bl MOD05_021F44D8 ldrb r0, [r5] cmp r0, #0 beq _022416D4 @@ -16196,75 +16196,75 @@ _02241702: add r0, #0xa0 ldr r0, [r0] mov r1, #0xf2 - bl FUN_021E7ED8 + bl MOD05_021E7ED8 str r0, [sp, #0x10] ldr r1, [sp, #0x10] add r0, sp, #0x14 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 ldr r0, [sp, #0x10] add r1, sp, #0x14 str r5, [sp, #0x18] - bl FUN_021E7EB0 + bl MOD05_021E7EB0 add r2, r4, #0 add r2, #0x9c ldr r2, [r2] mov r0, #0 add r1, r5, #0 - bl FUN_021F4594 + bl MOD05_021F4594 ldr r2, [r4, #0x4c] mov r0, #0xef mov r1, #0 - bl FUN_021DA080 + bl MOD05_021DA080 add r5, r0, #0 mov r1, #1 - bl FUN_021DA1A8 + bl MOD05_021DA1A8 add r0, r5, #0 add r1, r6, #0 - bl FUN_021DA1A0 + bl MOD05_021DA1A0 add r0, r5, #0 mov r1, #1 - bl FUN_021DA1A4 + bl MOD05_021DA1A4 add r0, r5, #0 mov r1, #1 - bl FUN_021DA0DC + bl MOD05_021DA0DC add r0, r5, #0 - bl FUN_021DA138 + bl MOD05_021DA138 ldr r2, [r4, #0x4c] mov r0, #0xf0 mov r1, #0 - bl FUN_021DA080 + bl MOD05_021DA080 add r5, r0, #0 mov r1, #2 - bl FUN_021DA1A8 + bl MOD05_021DA1A8 add r0, r5, #0 add r1, r7, #0 - bl FUN_021DA1A0 + bl MOD05_021DA1A0 add r0, r5, #0 mov r1, #1 - bl FUN_021DA1A4 + bl MOD05_021DA1A4 add r0, r5, #0 mov r1, #1 - bl FUN_021DA0DC + bl MOD05_021DA0DC add r0, r5, #0 - bl FUN_021DA138 + bl MOD05_021DA138 ldr r2, [r4, #0x4c] mov r0, #0xf1 mov r1, #0 - bl FUN_021DA080 + bl MOD05_021DA080 mov r1, #3 add r4, r0, #0 - bl FUN_021DA1A8 + bl MOD05_021DA1A8 ldr r1, [sp, #0xc] add r0, r4, #0 - bl FUN_021DA1A0 + bl MOD05_021DA1A0 add r0, r4, #0 mov r1, #1 - bl FUN_021DA1A4 + bl MOD05_021DA1A4 add r0, r4, #0 mov r1, #1 - bl FUN_021DA0DC + bl MOD05_021DA0DC add r0, r4, #0 - bl FUN_021DA138 + bl MOD05_021DA138 add sp, #0x2c pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -16299,43 +16299,43 @@ _022417F0: _022417F4: add r0, r6, #0 add r1, r7, #0 - bl FUN_021DA03C + bl MOD05_021DA03C add r6, r0, #0 mov r1, #0 - bl FUN_021DA1A0 + bl MOD05_021DA1A0 add r0, r6, #0 - bl FUN_021DA118 + bl MOD05_021DA118 add r0, r6, #0 mov r1, #0 - bl FUN_021DA0DC + bl MOD05_021DA0DC add r0, r6, #0 - bl FUN_021DA0E0 + bl MOD05_021DA0E0 add r0, r4, #0 add r1, r7, #0 - bl FUN_021DA03C + bl MOD05_021DA03C add r4, r0, #0 mov r1, #1 - bl FUN_021DA1A0 + bl MOD05_021DA1A0 add r0, r4, #0 - bl FUN_021DA118 + bl MOD05_021DA118 add r0, r4, #0 mov r1, #0 - bl FUN_021DA0DC + bl MOD05_021DA0DC add r0, r4, #0 - bl FUN_021DA0E0 + bl MOD05_021DA0E0 add r0, r5, #0 add r1, r7, #0 - bl FUN_021DA03C + bl MOD05_021DA03C add r4, r0, #0 mov r1, #1 - bl FUN_021DA1A0 + bl MOD05_021DA1A0 add r0, r4, #0 - bl FUN_021DA118 + bl MOD05_021DA118 add r0, r4, #0 mov r1, #0 - bl FUN_021DA0DC + bl MOD05_021DA0DC add r0, r4, #0 - bl FUN_021DA0E0 + bl MOD05_021DA0E0 ldr r0, _02241868 ; =0x0000065A bl FUN_020054C8 pop {r3, r4, r5, r6, r7, pc} @@ -16368,7 +16368,7 @@ MOD06_0224186C: ; 0x0224186C add r0, #0xa0 ldr r0, [r0] ldr r1, [r5, #0x2c] - bl FUN_021E7FBC + bl MOD05_021E7FBC mov r0, #2 str r0, [sp] mov r0, #0 @@ -16380,7 +16380,7 @@ MOD06_0224186C: ; 0x0224186C str r1, [sp, #8] mov r1, #8 mov r3, #3 - bl FUN_021F44D8 + bl MOD05_021F44D8 ldrb r0, [r4] cmp r0, #0 beq _022418CC @@ -16402,20 +16402,20 @@ _022418DC: add r0, #0xa0 ldr r0, [r0] ldr r1, _02241910 ; =0x00000102 - bl FUN_021E7ED8 + bl MOD05_021E7ED8 add r6, r0, #0 add r0, sp, #0xc add r1, r6, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 add r0, r6, #0 add r1, sp, #0xc str r4, [sp, #0x10] - bl FUN_021E7EB0 + bl MOD05_021E7EB0 add r5, #0x9c ldr r2, [r5] mov r0, #0 add r1, r4, #0 - bl FUN_021F4594 + bl MOD05_021F4594 add sp, #0x24 pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -16504,11 +16504,11 @@ _022419B8: add r0, #0xa0 ldr r0, [r0] ldr r1, _02241A3C ; =0x00000102 - bl FUN_021E7ED8 + bl MOD05_021E7ED8 add r6, r0, #0 add r0, sp, #0 add r1, r6, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 mov r0, #1 ldr r1, [sp, #4] lsl r0, r0, #0xc @@ -16531,7 +16531,7 @@ _022419F0: bl FUN_02055540 add r0, r6, #0 add r1, sp, #0 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 b _02241A32 _02241A02: add r2, r5, #0 @@ -16540,7 +16540,7 @@ _02241A02: ldr r2, [r2] mov r0, #0 lsl r1, r1, #0x10 - bl FUN_021F4594 + bl MOD05_021F4594 ldr r0, [r5, #0x38] mov r1, #1 bl FUN_0205557C @@ -16603,11 +16603,11 @@ _02241A88: add r0, #0xa0 ldr r0, [r0] ldr r1, _02241B08 ; =0x00000102 - bl FUN_021E7ED8 + bl MOD05_021E7ED8 add r6, r0, #0 add r0, sp, #0 add r1, r6, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 mov r0, #1 ldr r1, [sp, #4] lsl r0, r0, #0xc @@ -16628,7 +16628,7 @@ _02241ABC: bl FUN_02055540 add r0, r6, #0 add r1, sp, #0 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 b _02241AFC _02241ACE: add r2, r5, #0 @@ -16636,7 +16636,7 @@ _02241ACE: mov r0, #0 ldr r2, [r2] add r1, r0, #0 - bl FUN_021F4594 + bl MOD05_021F4594 ldr r0, [r5, #0x38] mov r1, #1 bl FUN_0205557C @@ -16677,9 +16677,9 @@ _02241B1A: add r0, #0xa0 ldrb r1, [r1] ldr r0, [r0] - bl FUN_021E7ED0 + bl MOD05_021E7ED0 add r1, r7, #0 - bl FUN_021E7EC0 + bl MOD05_021E7EC0 _02241B36: add r4, r4, #1 cmp r4, #0x18 @@ -16990,7 +16990,7 @@ MOD06_02241D90: ; 0x02241D90 lsl r1, r1, #0x18 ldr r0, [r0] lsr r1, r1, #0x18 - bl FUN_021E7ED0 + bl MOD05_021E7ED0 str r0, [sp] ldr r0, [r5] ldr r1, [r5, #8] @@ -16998,7 +16998,7 @@ MOD06_02241D90: ; 0x02241D90 lsl r1, r1, #0x18 ldr r0, [r0] lsr r1, r1, #0x18 - bl FUN_021E7ED0 + bl MOD05_021E7ED0 add r7, r0, #0 ldr r0, [r5] ldr r1, [r5, #0xc] @@ -17006,7 +17006,7 @@ MOD06_02241D90: ; 0x02241D90 lsl r1, r1, #0x18 ldr r0, [r0] lsr r1, r1, #0x18 - bl FUN_021E7ED0 + bl MOD05_021E7ED0 add r6, r0, #0 mov r0, #1 lsl r0, r0, #0x10 @@ -17014,7 +17014,7 @@ MOD06_02241D90: ; 0x02241D90 blt _02241DE8 ldr r0, [sp] mov r1, #0 - bl FUN_021E7EC0 + bl MOD05_021E7EC0 add r0, r5, #0 mov r1, #0 mov r2, #1 @@ -17023,7 +17023,7 @@ MOD06_02241D90: ; 0x02241D90 _02241DE8: ldr r0, [sp] mov r1, #1 - bl FUN_021E7EC0 + bl MOD05_021E7EC0 mov r1, #1 add r0, r5, #0 add r2, r1, #0 @@ -17035,7 +17035,7 @@ _02241DFA: blt _02241E16 add r0, r7, #0 mov r1, #0 - bl FUN_021E7EC0 + bl MOD05_021E7EC0 add r0, r5, #0 mov r1, #0 mov r2, #2 @@ -17044,7 +17044,7 @@ _02241DFA: _02241E16: add r0, r7, #0 mov r1, #1 - bl FUN_021E7EC0 + bl MOD05_021E7EC0 add r0, r5, #0 mov r1, #1 mov r2, #2 @@ -17056,7 +17056,7 @@ _02241E28: blt _02241E44 add r0, r6, #0 mov r1, #0 - bl FUN_021E7EC0 + bl MOD05_021E7EC0 add r0, r5, #0 mov r1, #0 mov r2, #3 @@ -17065,7 +17065,7 @@ _02241E28: _02241E44: add r0, r6, #0 mov r1, #1 - bl FUN_021E7EC0 + bl MOD05_021E7EC0 add r0, r5, #0 mov r1, #1 mov r2, #3 @@ -17118,11 +17118,11 @@ _02241EA0: add r1, #0x28 ldrb r1, [r1] ldr r0, [r0] - bl FUN_021E7ED0 + bl MOD05_021E7ED0 add r7, r0, #0 add r0, sp, #0 add r1, r7, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 add r0, r5, #0 add r0, #0xf0 ldr r0, [r0] @@ -17183,7 +17183,7 @@ _02241F2E: bl FUN_02055540 add r0, r7, #0 add r1, sp, #0 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 ldr r1, [sp, #4] add r0, r5, #0 bl MOD06_02241D90 @@ -17267,11 +17267,11 @@ _02241FD8: add r1, #0x28 ldrb r1, [r1] ldr r0, [r0] - bl FUN_021E7ED0 + bl MOD05_021E7ED0 str r0, [sp] ldr r1, [sp] add r0, sp, #0x10 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 ldr r0, [r7, #0x38] add r1, sp, #4 bl FUN_02055350 @@ -17332,7 +17332,7 @@ _0224206E: _02242072: ldr r0, [sp] add r1, sp, #0x10 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 b _022420BC _0224207C: bl FUN_0205AD98 @@ -17427,11 +17427,11 @@ _02242128: add r1, #0x28 ldrb r1, [r1] ldr r0, [r0] - bl FUN_021E7ED0 + bl MOD05_021E7ED0 str r0, [sp] ldr r1, [sp] add r0, sp, #0x10 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 ldr r0, [r6, #0x38] add r1, sp, #4 bl FUN_02055350 @@ -17492,7 +17492,7 @@ _022421BE: _022421C2: ldr r0, [sp] add r1, sp, #0x10 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 b _02242214 _022421CC: bl FUN_0205AD98 @@ -17573,7 +17573,7 @@ MOD06_02242224: ; 0x02242224 ldr r0, [r0] ldr r1, [r6, #0x2c] lsl r2, r2, #2 - bl FUN_021E7FBC + bl MOD05_021E7FBC ldr r1, [sp, #0x14] ldr r2, _022423F0 ; =0x0000012D str r0, [r1, #4] @@ -17589,7 +17589,7 @@ MOD06_02242224: ; 0x02242224 add r0, #0xa0 ldr r0, [r0] ldr r1, [r6, #0x2c] - bl FUN_021E7FBC + bl MOD05_021E7FBC ldr r1, [sp, #0x14] ldr r2, _022423F4 ; =0x0000012E str r0, [r1, #8] @@ -17605,7 +17605,7 @@ MOD06_02242224: ; 0x02242224 add r0, #0xa0 ldr r0, [r0] ldr r1, [r6, #0x2c] - bl FUN_021E7FBC + bl MOD05_021E7FBC ldr r1, [sp, #0x14] ldr r4, _022423F8 ; =0x0224FA80 str r0, [r1, #0xc] @@ -17695,7 +17695,7 @@ _02242342: ldr r0, [r0] ldr r1, [r6, #0x2c] ldr r2, [r4] - bl FUN_021E7FBC + bl MOD05_021E7FBC ldr r1, [sp, #8] add r7, r7, #1 add r1, #0x28 @@ -17731,13 +17731,13 @@ _02242342: ldr r0, [r6, #0x44] mov r2, #1 mov r3, #0 - bl FUN_021DBA40 + bl MOD05_021DBA40 mov r1, #0 mov r2, #0 ldr r0, [r6, #0x44] mvn r1, r1 add r3, r2, #0 - bl FUN_021DBA78 + bl MOD05_021DBA78 mov r0, #0 add r1, r0, #0 add r2, sp, #0x18 @@ -17750,7 +17750,7 @@ _022423D4: blt _022423D4 ldr r0, [r6, #0x44] add r1, sp, #0x18 - bl FUN_021DBAA0 + bl MOD05_021DBAA0 add sp, #0x5c pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -18076,7 +18076,7 @@ _02242648: add r0, #0xa0 ldr r0, [r0] ldr r2, [r5] - bl FUN_021E7FBC + bl MOD05_021E7FBC ldr r1, [sp, #0xc] add r4, r4, #1 strb r0, [r1, #4] @@ -18241,11 +18241,11 @@ _022427A4: ldr r0, [r6] add r1, r5, r1 ldrb r1, [r1, #4] - bl FUN_021E7ED0 + bl MOD05_021E7ED0 add r6, r0, #0 add r0, sp, #0 add r1, r6, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 ldr r0, [r5, #0x24] cmp r0, #4 bne _022427DC @@ -18283,7 +18283,7 @@ _022427FA: _022427FE: add r0, r6, #0 add r1, sp, #0 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 b _0224283A _02242808: ldr r0, [r6, #0x38] @@ -18493,7 +18493,7 @@ _02242966: ldr r0, [r0] ldr r1, [r5, #0x2c] ldr r2, [r4] - bl FUN_021E7FBC + bl MOD05_021E7FBC ldr r1, [sp, #0x10] add r7, #8 add r1, r1, r6 @@ -18732,8 +18732,8 @@ _02242B56: add r0, #0xa0 ldrb r1, [r1, #4] ldr r0, [r0] - bl FUN_021E7ED0 - bl FUN_021E7E9C + bl MOD05_021E7ED0 + bl MOD05_021E7E9C ldrb r1, [r4, #0x11] lsl r2, r1, #2 ldr r1, _02242BDC ; =0x0224F798 @@ -19828,17 +19828,17 @@ _022433A4: .word 0x020CD3B4 thumb_func_start MOD06_022433A8 MOD06_022433A8: ; 0x022433A8 - ldr r3, _022433AC ; =0x0202A1E5 + ldr r3, _022433AC ; =FUN_0202A1E4 bx r3 .align 2, 0 -_022433AC: .word 0x0202A1E5 +_022433AC: .word FUN_0202A1E4 thumb_func_start MOD06_022433B0 MOD06_022433B0: ; 0x022433B0 - ldr r3, _022433B4 ; =0x0202A399 + ldr r3, _022433B4 ; =FUN_0202A398 bx r3 .align 2, 0 -_022433B4: .word 0x0202A399 +_022433B4: .word FUN_0202A398 thumb_func_start MOD06_022433B8 MOD06_022433B8: ; 0x022433B8 @@ -21125,10 +21125,10 @@ _02243DB4: .word MOD06_022442C4 thumb_func_start MOD06_02243DB8 MOD06_02243DB8: ; 0x02243DB8 - ldr r3, _02243DBC ; =0x02046949 + ldr r3, _02243DBC ; =FUN_02046948 bx r3 .align 2, 0 -_02243DBC: .word 0x02046949 +_02243DBC: .word FUN_02046948 thumb_func_start MOD06_02243DC0 MOD06_02243DC0: ; 0x02243DC0 @@ -23104,20 +23104,20 @@ MOD06_02244CE8: ; 0x02244CE8 add r3, r0, #0 add r2, r1, #0 add r1, r3, #0 - ldr r3, _02244CF4 ; =0x0200650D + ldr r3, _02244CF4 ; =LoadFromNarc_2 mov r0, #0x86 bx r3 .align 2, 0 -_02244CF4: .word 0x0200650D +_02244CF4: .word LoadFromNarc_2 thumb_func_start MOD06_02244CF8 MOD06_02244CF8: ; 0x02244CF8 - ldr r3, _02244D00 ; =0x020064F1 + ldr r3, _02244D00 ; =LoadFromNARC add r2, r1, #0 mov r1, #0x87 bx r3 .align 2, 0 -_02244D00: .word 0x020064F1 +_02244D00: .word LoadFromNARC thumb_func_start MOD06_02244D04 MOD06_02244D04: ; 0x02244D04 @@ -23207,19 +23207,19 @@ _02244DA4: thumb_func_start MOD06_02244DB0 MOD06_02244DB0: ; 0x02244DB0 - ldr r3, _02244DB8 ; =0x020169D9 + ldr r3, _02244DB8 ; =FUN_020169D8 mov r1, #0x17 lsl r1, r1, #4 bx r3 .align 2, 0 -_02244DB8: .word 0x020169D9 +_02244DB8: .word FUN_020169D8 thumb_func_start MOD06_02244DBC MOD06_02244DBC: ; 0x02244DBC - ldr r3, _02244DC0 ; =0x02016A19 + ldr r3, _02244DC0 ; =FUN_02016A18 bx r3 .align 2, 0 -_02244DC0: .word 0x02016A19 +_02244DC0: .word FUN_02016A18 thumb_func_start MOD06_02244DC4 MOD06_02244DC4: ; 0x02244DC4 @@ -23376,14 +23376,14 @@ MOD06_02244EF8: ; 0x02244EF8 mov r2, #1 lsl r0, r0, #2 str r2, [r1, r0] - ldr r3, _02244F10 ; =0x0200CA45 + ldr r3, _02244F10 ; =FUN_0200CA44 mov r2, #0 add r0, r0, #4 str r2, [r1, r0] ldr r0, _02244F14 ; =MOD06_02244F64 bx r3 nop -_02244F10: .word 0x0200CA45 +_02244F10: .word FUN_0200CA44 _02244F14: .word MOD06_02244F64 thumb_func_start MOD06_02244F18 @@ -23688,10 +23688,10 @@ _0224518C: .word 0x0000071D thumb_func_start MOD06_02245190 MOD06_02245190: ; 0x02245190 - ldr r3, _02245194 ; =0x02016A19 + ldr r3, _02245194 ; =FUN_02016A18 bx r3 .align 2, 0 -_02245194: .word 0x02016A19 +_02245194: .word FUN_02016A18 thumb_func_start MOD06_02245198 MOD06_02245198: ; 0x02245198 @@ -23794,7 +23794,7 @@ _0224523A: ldr r0, [r0] ldr r1, [r4, #0x2c] add r3, sp, #8 - bl FUN_021E7FBC + bl MOD05_021E7FBC add sp, #0x14 pop {r3, r4, pc} nop @@ -23968,12 +23968,12 @@ _02245392: add r0, #0xa0 ldr r0, [r0] ldr r1, _02245470 ; =0x000001DB - bl FUN_021E7ED8 - bl FUN_021E7EC8 + bl MOD05_021E7ED8 + bl MOD05_021E7EC8 add r7, r0, #0 ldr r0, _02245470 ; =0x000001DB ldr r1, [r5, #0x2c] - bl FUN_021F4BD0 + bl MOD05_021F4BD0 ldr r0, [r0] bl FUN_020BC13C ldrh r1, [r0, #0xe] @@ -23981,7 +23981,7 @@ _02245392: ldr r1, [r1, #0xc] add r6, r0, r1 ldr r0, [r5, #0x2c] - bl FUN_021F4C88 + bl MOD05_021F4C88 str r7, [sp] str r6, [sp, #4] str r0, [sp, #8] @@ -23995,11 +23995,11 @@ _02245392: ldr r1, [r5, #0x50] mov r2, #0x10 add r3, #0xdc - bl FUN_021DA464 + bl MOD05_021DA464 ldr r0, [r5, #0x50] mov r1, #0x10 mov r2, #0 - bl FUN_021DA4EC + bl MOD05_021DA4EC ldrb r0, [r4, #5] add r0, r0, #1 strb r0, [r4, #5] @@ -24028,11 +24028,11 @@ _02245414: add r0, #0xa0 ldr r0, [r0] ldr r1, _02245470 ; =0x000001DB - bl FUN_021E7ED8 + bl MOD05_021E7ED8 add r6, r0, #0 add r0, sp, #0x18 add r1, r6, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 add r0, r5, #0 add r2, r4, #0 ldr r5, [r4] @@ -24048,13 +24048,13 @@ _02245414: _02245442: add r0, r6, #0 add r1, sp, #0x18 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 b _02245468 _0224544C: ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] mov r2, #0x10 - bl FUN_021DA54C + bl MOD05_021DA54C ldrb r0, [r4, #5] add r0, r0, #1 strb r0, [r4, #5] @@ -24562,10 +24562,10 @@ _02245808: thumb_func_start MOD06_02245824 MOD06_02245824: ; 0x02245824 - ldr r3, _02245828 ; =0x0205E49D + ldr r3, _02245828 ; =FUN_0205E49C bx r3 .align 2, 0 -_02245828: .word 0x0205E49D +_02245828: .word FUN_0205E49C thumb_func_start MOD06_0224582C MOD06_0224582C: ; 0x0224582C @@ -25614,7 +25614,7 @@ _02245FE4: ldr r0, [r4, #0x70] cmp r0, #0 beq _02245FEE - bl FUN_021F6240 + bl MOD05_021F6240 _02245FEE: add r0, r5, #0 bl FUN_02064520 @@ -25623,11 +25623,11 @@ _02245FEE: thumb_func_start MOD06_02245FF8 MOD06_02245FF8: ; 0x02245FF8 - ldr r3, _02246000 ; =0x0201FFC9 + ldr r3, _02246000 ; =FUN_0201FFC8 ldr r0, [r1, #0x68] bx r3 nop -_02246000: .word 0x0201FFC9 +_02246000: .word FUN_0201FFC8 thumb_func_start MOD06_02246004 MOD06_02246004: ; 0x02246004 @@ -25773,12 +25773,12 @@ MOD06_02246034: ; 0x02246034 str r0, [r4, #0x6c] ldr r0, [r4, #0x5c] mov r1, #4 - bl FUN_021F61F4 + bl MOD05_021F61F4 ldr r2, _02246194 ; =0xFFF88000 mov r1, #1 mov r3, #0xc str r0, [r4, #0x70] - bl FUN_021F6254 + bl MOD05_021F6254 add r1, sp, #0xc mov r0, #0 str r0, [r1] @@ -25961,7 +25961,7 @@ MOD06_0224629C: ; 0x0224629C mov r1, #2 mov r2, #0 mov r3, #0xc - bl FUN_021F6254 + bl MOD05_021F6254 mov r0, #1 lsl r0, r0, #0xa str r0, [r4, #0x50] @@ -26372,7 +26372,7 @@ _022465DC: cmp r0, #0xf ble _022465FA ldr r0, [r4, #0x70] - bl FUN_021F6234 + bl MOD05_021F6234 cmp r0, #1 bne _022465FA mov r0, #0 @@ -26394,12 +26394,12 @@ MOD06_02246600: ; 0x02246600 thumb_func_start MOD06_02246604 MOD06_02246604: ; 0x02246604 - ldr r3, _0224660C ; =0x02006671 + ldr r3, _0224660C ; =FUN_02006670 mov r0, #0x61 mov r1, #4 bx r3 .align 2, 0 -_0224660C: .word 0x02006671 +_0224660C: .word FUN_02006670 thumb_func_start MOD06_02246610 MOD06_02246610: ; 0x02246610 @@ -26514,10 +26514,10 @@ MOD06_022466C0: ; 0x022466C0 thumb_func_start MOD06_022466E0 MOD06_022466E0: ; 0x022466E0 - ldr r3, _022466E4 ; =0x02016A19 + ldr r3, _022466E4 ; =FUN_02016A18 bx r3 .align 2, 0 -_022466E4: .word 0x02016A19 +_022466E4: .word FUN_02016A18 thumb_func_start MOD06_022466E8 MOD06_022466E8: ; 0x022466E8 @@ -27751,12 +27751,12 @@ _02247008: .word 0x04000008 thumb_func_start MOD06_0224700C MOD06_0224700C: ; 0x0224700C - ldr r3, _02247014 ; =0x02006671 + ldr r3, _02247014 ; =FUN_02006670 mov r0, #0x61 mov r1, #4 bx r3 .align 2, 0 -_02247014: .word 0x02006671 +_02247014: .word FUN_02006670 thumb_func_start MOD06_02247018 MOD06_02247018: ; 0x02247018 @@ -28514,11 +28514,11 @@ MOD06_022475A4: ; 0x022475A4 thumb_func_start MOD06_02247610 MOD06_02247610: ; 0x02247610 - ldr r3, _02247618 ; =0x02018745 + ldr r3, _02247618 ; =FUN_02018744 mov r1, #3 bx r3 nop -_02247618: .word 0x02018745 +_02247618: .word FUN_02018744 thumb_func_start MOD06_0224761C MOD06_0224761C: ; 0x0224761C @@ -28718,14 +28718,14 @@ _02247778: .word 0x0400004A thumb_func_start MOD06_0224777C MOD06_0224777C: ; 0x0224777C - ldr r3, _02247788 ; =0x02068B69 + ldr r3, _02247788 ; =FUN_02068B68 add r2, r0, #0 add r0, r1, #0 ldr r1, [r2, #0x5c] mov r2, #2 bx r3 .align 2, 0 -_02247788: .word 0x02068B69 +_02247788: .word FUN_02068B68 thumb_func_start MOD06_0224778C MOD06_0224778C: ; 0x0224778C @@ -28769,10 +28769,10 @@ MOD06_022477D4: ; 0x022477D4 add r2, r1, #0 ldrh r0, [r3] ldrh r1, [r3, #4] - ldr r3, _022477E0 ; =0x02012471 + ldr r3, _022477E0 ; =FUN_02012470 bx r3 .align 2, 0 -_022477E0: .word 0x02012471 +_022477E0: .word FUN_02012470 thumb_func_start MOD06_022477E4 MOD06_022477E4: ; 0x022477E4 @@ -29127,11 +29127,11 @@ MOD06_02247A54: ; 0x02247A54 thumb_func_start MOD06_02247A9C MOD06_02247A9C: ; 0x02247A9C - ldr r3, _02247AA4 ; =0x0201FFC9 + ldr r3, _02247AA4 ; =FUN_0201FFC8 ldr r0, [r1, #8] bx r3 nop -_02247AA4: .word 0x0201FFC9 +_02247AA4: .word FUN_0201FFC8 thumb_func_start MOD06_02247AA8 MOD06_02247AA8: ; 0x02247AA8 @@ -29258,7 +29258,7 @@ _02247B8A: ldr r0, [r5, #0x64] cmp r0, #0 beq _02247B94 - bl FUN_021F6240 + bl MOD05_021F6240 _02247B94: mov r0, #0x7b lsl r0, r0, #2 @@ -29290,11 +29290,11 @@ MOD06_02247BA0: ; 0x02247BA0 thumb_func_start MOD06_02247BCC MOD06_02247BCC: ; 0x02247BCC - ldr r3, _02247BD4 ; =0x0201FFC9 + ldr r3, _02247BD4 ; =FUN_0201FFC8 ldr r0, [r1, #0x58] bx r3 nop -_02247BD4: .word 0x0201FFC9 +_02247BD4: .word FUN_0201FFC8 thumb_func_start MOD06_02247BD8 MOD06_02247BD8: ; 0x02247BD8 @@ -29670,12 +29670,12 @@ MOD06_02247DC4: ; 0x02247DC4 str r0, [r5, #0x1c] ldr r0, [r5, #0x60] mov r1, #4 - bl FUN_021F61F4 + bl MOD05_021F61F4 ldr r2, _02247F28 ; =0xFFF88000 add r1, r7, #0 mov r3, #0xc str r0, [r4, #0x64] - bl FUN_021F6254 + bl MOD05_021F6254 add r1, sp, #0xc mov r0, #0 str r0, [r1] @@ -29927,7 +29927,7 @@ MOD06_022480A0: ; 0x022480A0 mov r1, #2 mov r2, #0 mov r3, #0xc - bl FUN_021F6254 + bl MOD05_021F6254 mov r1, #1 lsl r1, r1, #8 str r1, [r5, #0x50] @@ -31249,12 +31249,12 @@ MOD06_02248B20: ; 0x02248B20 thumb_func_start MOD06_02248B24 MOD06_02248B24: ; 0x02248B24 - ldr r3, _02248B2C ; =0x02002269 + ldr r3, _02248B2C ; =StringCopyN add r0, r0, #4 mov r2, #8 bx r3 .align 2, 0 -_02248B2C: .word 0x02002269 +_02248B2C: .word StringCopyN thumb_func_start MOD06_02248B30 MOD06_02248B30: ; 0x02248B30 @@ -31296,11 +31296,11 @@ MOD06_02248B5C: ; 0x02248B5C thumb_func_start MOD06_02248B60 MOD06_02248B60: ; 0x02248B60 - ldr r3, _02248B68 ; =0x0202B5D9 + ldr r3, _02248B68 ; =FUN_0202B5D8 ldr r0, [r0, #0x14] bx r3 nop -_02248B68: .word 0x0202B5D9 +_02248B68: .word FUN_0202B5D8 thumb_func_start MOD06_02248B6C MOD06_02248B6C: ; 0x02248B6C @@ -31450,10 +31450,10 @@ _02248CA4: thumb_func_start MOD06_02248CB8 MOD06_02248CB8: ; 0x02248CB8 - ldr r3, _02248CBC ; =0x02016A19 + ldr r3, _02248CBC ; =FUN_02016A18 bx r3 .align 2, 0 -_02248CBC: .word 0x02016A19 +_02248CBC: .word FUN_02016A18 thumb_func_start MOD06_02248CC0 MOD06_02248CC0: ; 0x02248CC0 @@ -32280,7 +32280,7 @@ MOD06_022492B0: ; 0x022492B0 lsl r1, r1, #2 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4, #0x20] bl MOD06_02249460 @@ -32298,7 +32298,7 @@ MOD06_022492D4: ; 0x022492D4 add r0, r4, #0 bl MOD06_022494C0 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} .align 2, 0 @@ -32307,7 +32307,7 @@ MOD06_022492EC: ; 0x022492EC push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0x20] - bl FUN_021E4C20 + bl MOD05_021E4C20 ldr r0, [r0, #0x34] bl FUN_0205839C sub r2, r0, #1 @@ -32321,11 +32321,11 @@ _0224930C: .word MOD06_02249388 thumb_func_start MOD06_02249310 MOD06_02249310: ; 0x02249310 - ldr r3, _02249318 ; =0x0200CAB5 + ldr r3, _02249318 ; =FUN_0200CAB4 ldr r0, [r0, #0x24] bx r3 nop -_02249318: .word 0x0200CAB5 +_02249318: .word FUN_0200CAB4 thumb_func_start MOD06_0224931C MOD06_0224931C: ; 0x0224931C @@ -32515,7 +32515,7 @@ MOD06_02249460: ; 0x02249460 mov r1, #0x11 mov r2, #0 add r3, #0x28 - bl FUN_021E51EC + bl MOD05_021E51EC mov r0, #0x4a lsl r0, r0, #2 add r1, r4, r0 @@ -32528,7 +32528,7 @@ MOD06_02249460: ; 0x02249460 mov r1, #0x12 mov r2, #0 add r3, #0x7c - bl FUN_021E51EC + bl MOD05_021E51EC mov r0, #0x4b lsl r0, r0, #2 add r1, r4, r0 @@ -32541,7 +32541,7 @@ MOD06_02249460: ; 0x02249460 mov r1, #0x13 mov r2, #0 add r3, r4, #0 - bl FUN_021E51EC + bl MOD05_021E51EC add sp, #8 pop {r4, pc} .align 2, 0 @@ -32553,15 +32553,15 @@ MOD06_022494C0: ; 0x022494C0 mov r0, #0x13 lsl r0, r0, #4 ldr r0, [r4, r0] - bl FUN_021E4C00 + bl MOD05_021E4C00 mov r0, #0x4d lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_021E4C00 + bl MOD05_021E4C00 mov r0, #0x4e lsl r0, r0, #2 ldr r0, [r4, r0] - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_022494E4 @@ -32588,11 +32588,11 @@ MOD06_02249508: ; 0x02249508 push {r3, r4, r5, lr} sub sp, #0x20 add r5, r0, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 add r4, r0, #0 mov r1, #0 str r4, [sp, #0x14] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x18] add r0, r5, #0 add r1, sp, #8 @@ -32608,7 +32608,7 @@ MOD06_02249508: ; 0x02249508 add r0, r4, #0 add r2, sp, #8 mov r3, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x20 pop {r3, r4, r5, pc} nop @@ -32670,7 +32670,7 @@ MOD06_0224959C: ; 0x0224959C cmp r0, #0 bne _022495C0 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0xc pop {r3, r4, r5, r6, pc} _022495C0: @@ -32680,7 +32680,7 @@ _022495C0: cmp r0, #0 beq _022495D6 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0xc pop {r3, r4, r5, r6, pc} _022495D6: @@ -32763,11 +32763,11 @@ MOD06_02249668: ; 0x02249668 sub sp, #0x20 add r5, r0, #0 add r4, r1, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 add r6, r0, #0 mov r1, #0 str r6, [sp, #0x14] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x18] add r0, r5, #0 add r1, sp, #8 @@ -32783,7 +32783,7 @@ MOD06_02249668: ; 0x02249668 add r0, r6, #0 add r2, sp, #8 add r3, r4, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x20 pop {r4, r5, r6, pc} .align 2, 0 @@ -32804,7 +32804,7 @@ MOD06_022496AC: ; 0x022496AC cmp r0, #0 bne _022496D0 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0xc pop {r3, r4, r5, r6, pc} _022496D0: @@ -32920,7 +32920,7 @@ MOD06_022497A0: ; 0x022497A0 mov r1, #4 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_022497CC @@ -32934,27 +32934,27 @@ MOD06_022497BC: ; 0x022497BC add r4, r0, #0 bl MOD06_022497DC add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_022497CC MOD06_022497CC: ; 0x022497CC - ldr r3, _022497D8 ; =0x021E5079 + ldr r3, _022497D8 ; =MOD05_021E5078 ldr r0, [r0] mov r1, #2 mov r2, #0x14 bx r3 nop -_022497D8: .word 0x021E5079 +_022497D8: .word MOD05_021E5078 thumb_func_start MOD06_022497DC MOD06_022497DC: ; 0x022497DC - ldr r3, _022497E4 ; =0x021E50A1 + ldr r3, _022497E4 ; =MOD05_021E50A0 ldr r0, [r0] mov r1, #2 bx r3 .align 2, 0 -_022497E4: .word 0x021E50A1 +_022497E4: .word MOD05_021E50A0 thumb_func_start MOD06_022497E8 MOD06_022497E8: ; 0x022497E8 @@ -32965,10 +32965,10 @@ MOD06_022497E8: ; 0x022497E8 bl FUN_02058738 str r0, [sp, #8] add r0, r5, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 mov r1, #1 str r0, [sp, #0xc] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x10] add r0, r5, #0 add r1, sp, #0x18 @@ -32984,7 +32984,7 @@ MOD06_022497E8: ; 0x022497E8 ldr r1, _02249830 ; =0x02251958 add r2, sp, #0x18 add r3, r4, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x24 pop {r4, r5, pc} nop @@ -33087,7 +33087,7 @@ _022498DE: bne _02249906 _022498FC: add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0xc pop {r4, r5, r6, r7, pc} _02249906: @@ -33163,7 +33163,7 @@ _02249976: bne _0224999E _02249994: add r0, r6, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0xc pop {r4, r5, r6, r7, pc} _0224999E: @@ -33193,7 +33193,7 @@ _022499BE: add r1, #0x28 bl FUN_0201F7F0 ldr r0, [r5, #0x20] - bl FUN_021F0514 + bl MOD05_021F0514 add r4, r0, #0 bl FUN_0201F844 add r1, r0, #0 @@ -33271,16 +33271,16 @@ MOD06_02249A68: ; 0x02249A68 bl FUN_02058578 ldr r1, [r4, #8] add r2, sp, #0 - bl FUN_021F220C + bl MOD05_021F220C cmp r0, #0 beq _02249AAE ldr r0, [r4, #0x20] - bl FUN_021F2E28 + bl MOD05_021F2E28 cmp r0, #1 beq _02249AAE ldr r0, [r4, #0x18] mov r1, #2 - bl FUN_021E5094 + bl MOD05_021E5094 str r0, [sp] add r0, r5, #0 add r1, sp, #0x28 @@ -33288,7 +33288,7 @@ MOD06_02249A68: ; 0x02249A68 ldr r0, [r4, #0x18] add r1, sp, #0 add r2, sp, #0x28 - bl FUN_021E4E90 + bl MOD05_021E4E90 str r0, [r4, #0x24] mov r0, #1 str r0, [r4, #0xc] @@ -33314,7 +33314,7 @@ _02249AC4: bne _02249AC4 ldr r0, [r4, #8] mov r1, #2 - bl FUN_021E5094 + bl MOD05_021E5094 str r0, [sp] add r0, r5, #0 add r1, sp, #0x28 @@ -33322,7 +33322,7 @@ _02249AC4: ldr r0, [r4, #8] add r1, sp, #0 add r2, sp, #0x28 - bl FUN_021E4E90 + bl MOD05_021E4E90 str r0, [r4, #0x3c] ldr r5, [r4, #0x38] add r0, r5, #0 @@ -33401,12 +33401,12 @@ MOD06_02249B7C: ; 0x02249B7C add r4, r1, #0 add r6, r2, #0 add r7, r3, #0 - bl FUN_021E4C20 + bl MOD05_021E4C20 str r0, [sp, #8] add r0, r5, #0 mov r1, #1 str r5, [sp, #0xc] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x10] add r3, sp, #0x14 mov r2, #5 @@ -33424,7 +33424,7 @@ _02249B9E: ldr r3, [sp, #0x58] add r0, r5, #0 add r2, r7, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x40 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 @@ -33477,11 +33477,11 @@ _02249BD6: thumb_func_start MOD06_02249C24 MOD06_02249C24: ; 0x02249C24 - ldr r3, _02249C2C ; =0x0201F745 + ldr r3, _02249C2C ; =FUN_0201F744 ldr r0, [r1, #0x3c] bx r3 nop -_02249C2C: .word 0x0201F745 +_02249C2C: .word FUN_0201F744 thumb_func_start MOD06_02249C30 MOD06_02249C30: ; 0x02249C30 @@ -33545,7 +33545,7 @@ MOD06_02249C98: ; 0x02249C98 ldr r1, _02249CB4 ; =0x00000734 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_02249CC8 @@ -33560,7 +33560,7 @@ MOD06_02249CB8: ; 0x02249CB8 add r4, r0, #0 bl MOD06_02249D60 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_02249CC8 @@ -33601,14 +33601,14 @@ _02249CFC: ldr r0, [r5] ldr r1, [r1] mov r2, #0 - bl FUN_021E51EC + bl MOD05_021E51EC str r6, [sp] str r7, [sp, #4] ldr r0, [r5] ldr r1, [r4] ldr r3, [sp, #8] mov r2, #0 - bl FUN_021E51EC + bl MOD05_021E51EC ldr r0, [sp, #0x18] add r7, r7, #4 add r0, r0, #4 @@ -33649,9 +33649,9 @@ MOD06_02249D60: ; 0x02249D60 add r6, #0x28 _02249D6C: ldr r0, [r5, r7] - bl FUN_021E4C00 + bl MOD05_021E4C00 ldr r0, [r5, r6] - bl FUN_021E4C00 + bl MOD05_021E4C00 add r4, r4, #1 add r5, r5, #4 cmp r4, #0xa @@ -33846,10 +33846,10 @@ MOD06_02249E9C: ; 0x02249E9C bl FUN_0205829C add r7, r0, #0 add r0, r5, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 mov r1, #0xb str r0, [sp, #8] - bl FUN_021E4C08 + bl MOD05_021E4C08 ldr r2, [sp, #0x14] ldr r3, [sp, #0x18] add r1, r4, #0 @@ -33928,7 +33928,7 @@ _02249F6A: add r2, sp, #0x28 mov r3, #0 str r7, [sp, #4] - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x34 pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -33984,7 +33984,7 @@ _02249FD0: sub r2, r2, #2 str r2, [r1, #0xc] bpl _02249FDC - bl FUN_021E4DE4 + bl MOD05_021E4DE4 _02249FDC: pop {r3, pc} .align 2, 0 @@ -34045,7 +34045,7 @@ MOD06_0224A040: ; 0x0224A040 lsl r1, r1, #2 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224A06C @@ -34058,7 +34058,7 @@ MOD06_0224A05C: ; 0x0224A05C add r4, r0, #0 bl MOD06_0224A0B4 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224A06C @@ -34084,7 +34084,7 @@ _0224A086: ldr r0, [r0] mov r2, #0 add r3, r7, #0 - bl FUN_021E51EC + bl MOD05_021E51EC ldr r0, [sp, #0xc] add r6, r6, #4 add r0, r0, #1 @@ -34108,7 +34108,7 @@ MOD06_0224A0B4: ; 0x0224A0B4 lsl r6, r6, #2 _0224A0BE: ldr r0, [r5, r6] - bl FUN_021E4C00 + bl MOD05_021E4C00 add r4, r4, #1 add r5, r5, #4 cmp r4, #6 @@ -34183,10 +34183,10 @@ MOD06_0224A130: ; 0x0224A130 push {r4, r5, r6, lr} sub sp, #0xc8 add r5, r0, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 mov r1, #0xc add r4, r0, #0 - bl FUN_021E4C08 + bl MOD05_021E4C08 add r6, r0, #0 add r0, r5, #0 bl FUN_02058458 @@ -34223,7 +34223,7 @@ _0224A160: add r0, r4, #0 add r2, sp, #8 mov r3, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0xc8 pop {r4, r5, r6, pc} .align 2, 0 @@ -34279,7 +34279,7 @@ MOD06_0224A1DC: ; 0x0224A1DC cmp r0, #0 bne _0224A1FE add r0, r4, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0x18 pop {r3, r4, r5, pc} _0224A1FE: @@ -34355,7 +34355,7 @@ MOD06_0224A280: ; 0x0224A280 lsl r1, r1, #2 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224A2AC @@ -34368,7 +34368,7 @@ MOD06_0224A29C: ; 0x0224A29C add r4, r0, #0 bl MOD06_0224A2F4 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224A2AC @@ -34394,7 +34394,7 @@ _0224A2C6: ldr r0, [r0] mov r2, #0 add r3, r7, #0 - bl FUN_021E51EC + bl MOD05_021E51EC ldr r0, [sp, #0xc] add r6, r6, #4 add r0, r0, #1 @@ -34418,7 +34418,7 @@ MOD06_0224A2F4: ; 0x0224A2F4 lsl r6, r6, #2 _0224A2FE: ldr r0, [r5, r6] - bl FUN_021E4C00 + bl MOD05_021E4C00 add r4, r4, #1 add r5, r5, #4 cmp r4, #3 @@ -34431,11 +34431,11 @@ MOD06_0224A310: ; 0x0224A310 push {r3, r4, r5, lr} sub sp, #0x20 add r5, r0, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 add r4, r0, #0 mov r1, #0xd str r4, [sp, #0x14] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x18] add r0, r5, #0 add r1, sp, #8 @@ -34451,7 +34451,7 @@ MOD06_0224A310: ; 0x0224A310 add r0, r4, #0 add r2, sp, #8 mov r3, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x20 pop {r3, r4, r5, pc} nop @@ -34498,7 +34498,7 @@ MOD06_0224A384: ; 0x0224A384 cmp r0, #0 bne _0224A3A6 add r0, r6, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0xc pop {r3, r4, r5, r6, pc} _0224A3A6: @@ -34589,7 +34589,7 @@ MOD06_0224A44C: ; 0x0224A44C mov r1, #0xc add r3, r2, #0 add r4, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 str r4, [r0, #8] pop {r4, pc} .align 2, 0 @@ -34600,7 +34600,7 @@ MOD06_0224A460: ; 0x0224A460 add r4, r0, #0 bl MOD06_0224A4D8 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224A470 @@ -34634,16 +34634,16 @@ MOD06_0224A488: ; 0x0224A488 ldr r0, [r4, #8] mov r1, #0xb mov r2, #0x6d - bl FUN_021E5078 + bl MOD05_021E5078 ldr r0, [r4, #8] mov r1, #0xb mov r2, #0x80 - bl FUN_021E50AC + bl MOD05_021E50AC ldr r0, [r4, #8] mov r1, #0xc mov r2, #0xe mov r3, #1 - bl FUN_021E50D4 + bl MOD05_021E50D4 mov r0, #0xc str r0, [sp] mov r0, #0 @@ -34654,7 +34654,7 @@ MOD06_0224A488: ; 0x0224A488 ldr r0, [r4, #8] mov r1, #0xd add r3, r2, #0 - bl FUN_021E4EFC + bl MOD05_021E4EFC _0224A4D0: add sp, #0xc pop {r3, r4, pc} @@ -34672,16 +34672,16 @@ MOD06_0224A4D8: ; 0x0224A4D8 str r0, [r4, #4] ldr r0, [r4, #8] mov r1, #0xb - bl FUN_021E50A0 + bl MOD05_021E50A0 ldr r0, [r4, #8] mov r1, #0xb - bl FUN_021E50C8 + bl MOD05_021E50C8 ldr r0, [r4, #8] mov r1, #0xc - bl FUN_021E5114 + bl MOD05_021E5114 ldr r0, [r4, #8] mov r1, #0xd - bl FUN_021E506C + bl MOD05_021E506C _0224A506: pop {r4, pc} @@ -34712,11 +34712,11 @@ MOD06_0224A528: ; 0x0224A528 push {r3, r4, r5, lr} sub sp, #0x20 add r5, r0, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 add r4, r0, #0 add r0, r5, #0 add r1, sp, #0x14 - bl FUN_021F1E64 + bl MOD05_021F1E64 mov r0, #2 ldr r1, [sp, #0x1c] lsl r0, r0, #0xe @@ -34725,7 +34725,7 @@ MOD06_0224A528: ; 0x0224A528 add r0, r4, #0 mov r1, #0x1e str r4, [sp, #8] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0xc] add r0, sp, #8 str r0, [sp] @@ -34735,7 +34735,7 @@ MOD06_0224A528: ; 0x0224A528 add r0, r4, #0 add r2, sp, #0x14 mov r3, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x20 pop {r3, r4, r5, pc} nop @@ -34763,7 +34763,7 @@ MOD06_0224A570: ; 0x0224A570 ldr r0, [r4, #0xc] mov r1, #0xd add r2, sp, #0 - bl FUN_021E4EE4 + bl MOD05_021E4EE4 str r0, [r4, #0x18] ldr r0, [r4, #0x10] bl MOD06_0224A470 @@ -34808,7 +34808,7 @@ MOD06_0224A5C8: ; 0x0224A5C8 cmp r0, #5 blt _0224A5FE add r0, r2, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0x14 pop {r4, r5, pc} _0224A5FE: @@ -34851,7 +34851,7 @@ MOD06_0224A63C: ; 0x0224A63C mov r1, #0x38 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224A668 @@ -34865,7 +34865,7 @@ MOD06_0224A658: ; 0x0224A658 add r4, r0, #0 bl MOD06_0224A6A0 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224A668 @@ -34876,12 +34876,12 @@ MOD06_0224A668: ; 0x0224A668 add r1, r4, #0 ldr r0, [r4] add r1, #0x28 - bl FUN_021E5294 + bl MOD05_021E5294 ldr r0, [r4] add r1, r4, #4 mov r2, #0x4e mov r3, #0 - bl FUN_021E5224 + bl MOD05_021E5224 mov r0, #0x74 str r0, [sp] mov r0, #0 @@ -34892,7 +34892,7 @@ MOD06_0224A668: ; 0x0224A668 add r4, #0x28 add r1, #0x14 add r3, r4, #0 - bl FUN_021E5260 + bl MOD05_021E5260 add sp, #8 pop {r4, pc} @@ -34901,12 +34901,12 @@ MOD06_0224A6A0: ; 0x0224A6A0 push {r4, lr} add r4, r0, #0 add r0, r4, #4 - bl FUN_021F52C8 + bl MOD05_021F52C8 add r0, r4, #0 add r4, #0x28 add r0, #0x14 add r1, r4, #0 - bl FUN_021F5358 + bl MOD05_021F5358 pop {r4, pc} thumb_func_start MOD06_0224A6B8 @@ -34914,10 +34914,10 @@ MOD06_0224A6B8: ; 0x0224A6B8 push {r3, r4, r5, lr} sub sp, #0x20 add r5, r0, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 mov r1, #0xe add r4, r0, #0 - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x18] add r1, sp, #8 mov r0, #0 @@ -34936,7 +34936,7 @@ MOD06_0224A6B8: ; 0x0224A6B8 add r0, r4, #0 add r2, sp, #8 mov r3, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x20 pop {r3, r4, r5, pc} .align 2, 0 @@ -34972,12 +34972,12 @@ MOD06_0224A710: ; 0x0224A710 ldr r0, [r5, #0x10] mov r2, #1 mov r3, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r4, [r5, #0x1c] ldr r0, [r5, #0x10] add r1, r4, #4 - bl FUN_021E5294 + bl MOD05_021E5294 ldr r2, [r5, #0x14] add r0, r4, #4 ldr r1, [r2, #0x18] @@ -34993,7 +34993,7 @@ MOD06_0224A710: ; 0x0224A710 add r0, r4, #0 add r0, #0x18 add r1, r1, #4 - bl FUN_021F5400 + bl MOD05_021F5400 add r0, r4, #0 ldr r1, [r4] add r0, #0x18 @@ -35031,7 +35031,7 @@ MOD06_0224A710: ; 0x0224A710 ldr r2, [sp, #0x10] ldr r3, [sp, #0x14] add r0, r4, #0 - bl FUN_021F54D0 + bl MOD05_021F54D0 mov r0, #1 add sp, #0x18 pop {r4, r5, r6, pc} @@ -35044,7 +35044,7 @@ MOD06_0224A7C8: ; 0x0224A7C8 add r0, r4, #4 bl thunk_FUN_020ae84c add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224A7DC @@ -35065,7 +35065,7 @@ MOD06_0224A7DC: ; 0x0224A7DC cmp r0, #0 bne _0224A828 add r0, r7, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _0224A806: @@ -35080,7 +35080,7 @@ _0224A806: str r1, [r4, #0x14] cmp r1, r3 ble _0224A824 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _0224A824: @@ -35116,7 +35116,7 @@ _0224A828: ldr r2, [sp, #0x10] ldr r3, [sp, #0x14] add r0, r4, #0 - bl FUN_021F54D0 + bl MOD05_021F54D0 _0224A86C: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} @@ -35124,11 +35124,11 @@ _0224A86C: thumb_func_start MOD06_0224A870 MOD06_0224A870: ; 0x0224A870 ldr r0, [r1, #0x1c] - ldr r3, _0224A878 ; =0x021F5431 + ldr r3, _0224A878 ; =MOD05_021F5430 add r0, #0x18 bx r3 .align 2, 0 -_0224A878: .word 0x021F5431 +_0224A878: .word MOD05_021F5430 thumb_func_start MOD06_0224A87C MOD06_0224A87C: ; 0x0224A87C @@ -35137,7 +35137,7 @@ MOD06_0224A87C: ; 0x0224A87C mov r1, #0x60 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224A8A8 @@ -35151,7 +35151,7 @@ MOD06_0224A898: ; 0x0224A898 add r4, r0, #0 bl MOD06_0224A8C8 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224A8A8 @@ -35168,27 +35168,27 @@ MOD06_0224A8A8: ; 0x0224A8A8 mov r1, #0x4f mov r2, #0 add r3, r3, #4 - bl FUN_021E51EC + bl MOD05_021E51EC add sp, #8 pop {r3, pc} thumb_func_start MOD06_0224A8C8 MOD06_0224A8C8: ; 0x0224A8C8 - ldr r3, _0224A8D0 ; =0x021E4C01 + ldr r3, _0224A8D0 ; =MOD05_021E4C00 ldr r0, [r0, #0x5c] bx r3 nop -_0224A8D0: .word 0x021E4C01 +_0224A8D0: .word MOD05_021E4C00 thumb_func_start MOD06_0224A8D4 MOD06_0224A8D4: ; 0x0224A8D4 push {r3, r4, r5, lr} sub sp, #0x20 add r5, r0, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 mov r1, #0xf add r4, r0, #0 - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x18] add r1, sp, #8 mov r0, #0 @@ -35207,7 +35207,7 @@ MOD06_0224A8D4: ; 0x0224A8D4 add r0, r4, #0 add r2, sp, #8 mov r3, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x20 pop {r3, r4, r5, pc} .align 2, 0 @@ -35254,7 +35254,7 @@ MOD06_0224A948: ; 0x0224A948 cmp r0, #0 bne _0224A96A add r0, r4, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0x18 pop {r3, r4, r5, pc} _0224A96A: @@ -35327,7 +35327,7 @@ MOD06_0224A9E8: ; 0x0224A9E8 mov r1, #0x60 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224AA14 @@ -35341,7 +35341,7 @@ MOD06_0224AA04: ; 0x0224AA04 add r4, r0, #0 bl MOD06_0224AA34 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224AA14 @@ -35358,27 +35358,27 @@ MOD06_0224AA14: ; 0x0224AA14 mov r1, #0x6e mov r2, #0 add r3, r3, #4 - bl FUN_021E51EC + bl MOD05_021E51EC add sp, #8 pop {r3, pc} thumb_func_start MOD06_0224AA34 MOD06_0224AA34: ; 0x0224AA34 - ldr r3, _0224AA3C ; =0x021E4C01 + ldr r3, _0224AA3C ; =MOD05_021E4C00 ldr r0, [r0, #0x5c] bx r3 nop -_0224AA3C: .word 0x021E4C01 +_0224AA3C: .word MOD05_021E4C00 thumb_func_start MOD06_0224AA40 MOD06_0224AA40: ; 0x0224AA40 push {r3, r4, r5, lr} sub sp, #0x20 add r5, r0, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 mov r1, #0x1f add r4, r0, #0 - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x18] add r1, sp, #8 mov r0, #0 @@ -35397,7 +35397,7 @@ MOD06_0224AA40: ; 0x0224AA40 add r0, r4, #0 add r2, sp, #8 mov r3, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x20 pop {r3, r4, r5, pc} .align 2, 0 @@ -35444,7 +35444,7 @@ MOD06_0224AAB4: ; 0x0224AAB4 cmp r0, #0 bne _0224AAD6 add r0, r4, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0x18 pop {r3, r4, r5, pc} _0224AAD6: @@ -35517,7 +35517,7 @@ MOD06_0224AB54: ; 0x0224AB54 mov r1, #0x60 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224AB80 @@ -35531,7 +35531,7 @@ MOD06_0224AB70: ; 0x0224AB70 add r4, r0, #0 bl MOD06_0224ABA0 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224AB80 @@ -35548,17 +35548,17 @@ MOD06_0224AB80: ; 0x0224AB80 mov r1, #0x51 mov r2, #0 add r3, r3, #4 - bl FUN_021E51EC + bl MOD05_021E51EC add sp, #8 pop {r3, pc} thumb_func_start MOD06_0224ABA0 MOD06_0224ABA0: ; 0x0224ABA0 - ldr r3, _0224ABA8 ; =0x021E4C01 + ldr r3, _0224ABA8 ; =MOD05_021E4C00 ldr r0, [r0, #0x5c] bx r3 nop -_0224ABA8: .word 0x021E4C01 +_0224ABA8: .word MOD05_021E4C00 thumb_func_start MOD06_0224ABAC MOD06_0224ABAC: ; 0x0224ABAC @@ -35573,10 +35573,10 @@ MOD06_0224ABAC: ; 0x0224ABAC add r5, r0, #0 str r1, [r2, #8] str r3, [sp, #0x20] - bl FUN_021E4C24 + bl MOD05_021E4C24 mov r1, #0x11 str r0, [sp, #0x24] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x28] ldr r0, [sp, #0x40] str r5, [sp, #0x2c] @@ -35619,7 +35619,7 @@ _0224AC12: ldr r1, _0224AC34 ; =0x02251BF4 ldr r3, [sp, #0x40] add r2, sp, #0x14 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x30 pop {r4, r5, r6, pc} .align 2, 0 @@ -35689,7 +35689,7 @@ MOD06_0224AC98: ; 0x0224AC98 cmp r0, #0 bne _0224ACBA add r0, r6, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0x18 pop {r4, r5, r6, pc} _0224ACBA: @@ -35876,7 +35876,7 @@ MOD06_0224AE10: ; 0x0224AE10 mov r1, #0x70 add r3, r2, #0 add r4, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 str r4, [r0, #0x10] pop {r4, pc} .align 2, 0 @@ -35887,7 +35887,7 @@ MOD06_0224AE24: ; 0x0224AE24 add r4, r0, #0 bl MOD06_0224AE78 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224AE34 @@ -35918,7 +35918,7 @@ MOD06_0224AE4C: ; 0x0224AE4C ldr r0, [r4, #0x10] mov r1, #0x52 mov r2, #1 - bl FUN_021E4C6C + bl MOD05_021E4C6C str r0, [r4, #0x6c] ldr r0, _0224AE74 ; =MOD06_0224AEC0 add r1, r4, #0 @@ -35950,7 +35950,7 @@ _0224AE8C: mov r0, #0 str r0, [r4, #4] ldr r0, [r4, #0x6c] - bl FUN_021E4C00 + bl MOD05_021E4C00 _0224AE9C: pop {r4, pc} .align 2, 0 @@ -35988,7 +35988,7 @@ MOD06_0224AEC0: ; 0x0224AEC0 add r1, #0x14 add r2, #0x68 add r3, #0x6c - bl FUN_021E5198 + bl MOD05_021E5198 mov r0, #0 str r0, [r4, #0xc] mov r0, #1 @@ -36011,7 +36011,7 @@ MOD06_0224AEE8: ; 0x0224AEE8 str r3, [sp, #8] add r5, r0, #0 str r1, [r2, #8] - bl FUN_021E4C24 + bl MOD05_021E4C24 add r4, r0, #0 ldr r0, [sp, #8] str r4, [sp, #0x1c] @@ -36021,7 +36021,7 @@ MOD06_0224AEE8: ; 0x0224AEE8 str r0, [sp, #0x20] add r0, r4, #0 mov r1, #0x12 - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x24] ldr r0, [sp, #0x40] str r5, [sp, #0x28] @@ -36054,7 +36054,7 @@ _0224AF46: ldr r3, [sp, #0x40] add r0, r4, #0 add r2, sp, #0xc - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x2c pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -36233,7 +36233,7 @@ MOD06_0224B0A8: ; 0x0224B0A8 mov r1, #0x38 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224B0D4 @@ -36247,7 +36247,7 @@ MOD06_0224B0C4: ; 0x0224B0C4 add r4, r0, #0 bl MOD06_0224B10C add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224B0D4 @@ -36258,12 +36258,12 @@ MOD06_0224B0D4: ; 0x0224B0D4 add r1, r4, #0 ldr r0, [r4] add r1, #0x28 - bl FUN_021E5294 + bl MOD05_021E5294 ldr r0, [r4] add r1, r4, #4 mov r2, #0xf mov r3, #0 - bl FUN_021E5224 + bl MOD05_021E5224 mov r0, #0x6f str r0, [sp] mov r0, #0 @@ -36274,7 +36274,7 @@ MOD06_0224B0D4: ; 0x0224B0D4 add r4, #0x28 add r1, #0x14 add r3, r4, #0 - bl FUN_021E5260 + bl MOD05_021E5260 add sp, #8 pop {r4, pc} @@ -36283,12 +36283,12 @@ MOD06_0224B10C: ; 0x0224B10C push {r4, lr} add r4, r0, #0 add r0, r4, #4 - bl FUN_021F52C8 + bl MOD05_021F52C8 add r0, r4, #0 add r4, #0x28 add r0, #0x14 add r1, r4, #0 - bl FUN_021F5358 + bl MOD05_021F5358 pop {r4, pc} thumb_func_start MOD06_0224B124 @@ -36299,10 +36299,10 @@ MOD06_0224B124: ; 0x0224B124 add r6, r1, #0 add r4, r2, #0 add r7, r3, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 mov r1, #0x13 str r0, [sp, #8] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0xc] add r0, r6, #0 add r1, r7, #0 @@ -36332,7 +36332,7 @@ MOD06_0224B124: ; 0x0224B124 ldr r1, _0224B184 ; =0x02251C70 add r2, sp, #0x10 mov r3, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x1c pop {r4, r5, r6, r7, pc} .align 2, 0 @@ -36353,12 +36353,12 @@ MOD06_0224B188: ; 0x0224B188 ldr r0, [r0] mov r1, #0x90 mov r3, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r4, [r5] ldr r0, [r5, #4] add r1, r4, #4 - bl FUN_021E5294 + bl MOD05_021E5294 ldr r2, [r5, #8] add r0, r4, #4 ldr r1, [r2, #0x18] @@ -36374,7 +36374,7 @@ MOD06_0224B188: ; 0x0224B188 add r0, r4, #0 add r0, #0x18 add r1, r1, #4 - bl FUN_021F5400 + bl MOD05_021F5400 add r0, r4, #0 ldr r1, [r4] add r0, #0x18 @@ -36387,7 +36387,7 @@ MOD06_0224B188: ; 0x0224B188 ldr r2, [sp, #4] ldr r3, [sp, #8] add r0, r4, #0 - bl FUN_021F54D0 + bl MOD05_021F54D0 mov r0, #1 add sp, #0xc pop {r3, r4, r5, r6, pc} @@ -36400,7 +36400,7 @@ MOD06_0224B200: ; 0x0224B200 add r0, r4, #4 bl thunk_FUN_020ae84c add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224B214 @@ -36418,7 +36418,7 @@ MOD06_0224B214: ; 0x0224B214 str r2, [r1, #0x14] cmp r2, r4 ble _0224B234 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 pop {r4, pc} _0224B234: ldr r0, [r1] @@ -36429,11 +36429,11 @@ _0224B234: thumb_func_start MOD06_0224B23C MOD06_0224B23C: ; 0x0224B23C ldr r0, [r1] - ldr r3, _0224B244 ; =0x021F5431 + ldr r3, _0224B244 ; =MOD05_021F5430 add r0, #0x18 bx r3 .align 2, 0 -_0224B244: .word 0x021F5431 +_0224B244: .word MOD05_021F5430 thumb_func_start MOD06_0224B248 MOD06_0224B248: ; 0x0224B248 @@ -36442,7 +36442,7 @@ MOD06_0224B248: ; 0x0224B248 mov r1, #0x38 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224B274 @@ -36456,7 +36456,7 @@ MOD06_0224B264: ; 0x0224B264 add r4, r0, #0 bl MOD06_0224B2AC add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224B274 @@ -36467,12 +36467,12 @@ MOD06_0224B274: ; 0x0224B274 add r1, r4, #0 ldr r0, [r4] add r1, #0x28 - bl FUN_021E5294 + bl MOD05_021E5294 ldr r0, [r4] add r1, r4, #4 mov r2, #0x10 mov r3, #0 - bl FUN_021E5224 + bl MOD05_021E5224 mov r0, #0x70 str r0, [sp] mov r0, #0 @@ -36483,7 +36483,7 @@ MOD06_0224B274: ; 0x0224B274 add r4, #0x28 add r1, #0x14 add r3, r4, #0 - bl FUN_021E5260 + bl MOD05_021E5260 add sp, #8 pop {r4, pc} @@ -36492,12 +36492,12 @@ MOD06_0224B2AC: ; 0x0224B2AC push {r4, lr} add r4, r0, #0 add r0, r4, #4 - bl FUN_021F52C8 + bl MOD05_021F52C8 add r0, r4, #0 add r4, #0x28 add r0, #0x14 add r1, r4, #0 - bl FUN_021F5358 + bl MOD05_021F5358 pop {r4, pc} thumb_func_start MOD06_0224B2C4 @@ -36508,10 +36508,10 @@ MOD06_0224B2C4: ; 0x0224B2C4 add r6, r1, #0 add r4, r2, #0 add r7, r3, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 mov r1, #0x14 str r0, [sp, #8] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0xc] add r0, r6, #0 add r1, r7, #0 @@ -36538,7 +36538,7 @@ MOD06_0224B2C4: ; 0x0224B2C4 ldr r1, _0224B320 ; =0x02251C84 add r2, sp, #0x10 mov r3, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x1c pop {r4, r5, r6, r7, pc} nop @@ -36559,12 +36559,12 @@ MOD06_0224B324: ; 0x0224B324 ldr r0, [r0] mov r1, #0x90 mov r3, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r4, [r5] ldr r0, [r5, #4] add r1, r4, #4 - bl FUN_021E5294 + bl MOD05_021E5294 ldr r2, [r5, #8] add r0, r4, #4 ldr r1, [r2, #0x18] @@ -36580,7 +36580,7 @@ MOD06_0224B324: ; 0x0224B324 add r0, r4, #0 add r0, #0x18 add r1, r1, #4 - bl FUN_021F5400 + bl MOD05_021F5400 add r0, r4, #0 ldr r1, [r4] add r0, #0x18 @@ -36593,7 +36593,7 @@ MOD06_0224B324: ; 0x0224B324 ldr r2, [sp, #4] ldr r3, [sp, #8] add r0, r4, #0 - bl FUN_021F54D0 + bl MOD05_021F54D0 mov r0, #1 add sp, #0xc pop {r3, r4, r5, r6, pc} @@ -36606,7 +36606,7 @@ MOD06_0224B39C: ; 0x0224B39C add r0, r4, #4 bl thunk_FUN_020ae84c add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224B3B0 @@ -36624,7 +36624,7 @@ MOD06_0224B3B0: ; 0x0224B3B0 str r2, [r1, #0x14] cmp r2, r4 ble _0224B3D0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 pop {r4, pc} _0224B3D0: ldr r0, [r1] @@ -36635,11 +36635,11 @@ _0224B3D0: thumb_func_start MOD06_0224B3D8 MOD06_0224B3D8: ; 0x0224B3D8 ldr r0, [r1] - ldr r3, _0224B3E0 ; =0x021F5431 + ldr r3, _0224B3E0 ; =MOD05_021F5430 add r0, #0x18 bx r3 .align 2, 0 -_0224B3E0: .word 0x021F5431 +_0224B3E0: .word MOD05_021F5430 thumb_func_start MOD06_0224B3E4 MOD06_0224B3E4: ; 0x0224B3E4 @@ -36648,7 +36648,7 @@ MOD06_0224B3E4: ; 0x0224B3E4 mov r1, #4 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224B410 @@ -36662,7 +36662,7 @@ MOD06_0224B400: ; 0x0224B400 add r4, r0, #0 bl MOD06_0224B4F0 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224B410 @@ -36673,47 +36673,47 @@ MOD06_0224B410: ; 0x0224B410 ldr r0, [r4] mov r1, #0 mov r2, #0x53 - bl FUN_021E5078 + bl MOD05_021E5078 ldr r0, [r4] mov r1, #5 mov r2, #0x54 - bl FUN_021E5078 + bl MOD05_021E5078 ldr r0, [r4] mov r1, #0 mov r2, #0x75 - bl FUN_021E50AC + bl MOD05_021E50AC ldr r0, [r4] mov r1, #3 mov r2, #0x76 - bl FUN_021E50AC + bl MOD05_021E50AC ldr r0, [r4] mov r1, #4 mov r2, #0x77 - bl FUN_021E50AC + bl MOD05_021E50AC ldr r0, [r4] mov r1, #5 mov r2, #0x78 - bl FUN_021E50AC + bl MOD05_021E50AC mov r1, #0 ldr r0, [r4] add r2, r1, #0 mov r3, #1 - bl FUN_021E50D4 + bl MOD05_021E50D4 mov r2, #1 ldr r0, [r4] mov r1, #4 add r3, r2, #0 - bl FUN_021E50D4 + bl MOD05_021E50D4 ldr r0, [r4] mov r1, #5 mov r2, #2 mov r3, #1 - bl FUN_021E50D4 + bl MOD05_021E50D4 ldr r0, [r4] mov r1, #6 mov r2, #3 mov r3, #1 - bl FUN_021E50D4 + bl MOD05_021E50D4 mov r1, #0 str r1, [sp] ldr r0, _0224B4E0 ; =0x02251CEC @@ -36722,7 +36722,7 @@ MOD06_0224B410: ; 0x0224B410 ldr r0, [r4] add r2, r1, #0 add r3, r1, #0 - bl FUN_021E4EFC + bl MOD05_021E4EFC mov r0, #4 str r0, [sp] mov r0, #0 @@ -36733,7 +36733,7 @@ MOD06_0224B410: ; 0x0224B410 ldr r0, [r4] add r2, r1, #0 mov r3, #3 - bl FUN_021E4EFC + bl MOD05_021E4EFC mov r2, #5 str r2, [sp] mov r0, #0 @@ -36743,7 +36743,7 @@ MOD06_0224B410: ; 0x0224B410 str r0, [sp, #8] ldr r0, [r4] mov r3, #4 - bl FUN_021E4EFC + bl MOD05_021E4EFC mov r0, #6 str r0, [sp] mov r0, #0 @@ -36754,7 +36754,7 @@ MOD06_0224B410: ; 0x0224B410 ldr r0, [r4] mov r1, #7 add r3, r2, #0 - bl FUN_021E4EFC + bl MOD05_021E4EFC add sp, #0xc pop {r3, r4, pc} .align 2, 0 @@ -36769,46 +36769,46 @@ MOD06_0224B4F0: ; 0x0224B4F0 add r4, r0, #0 ldr r0, [r4] mov r1, #0 - bl FUN_021E50A0 + bl MOD05_021E50A0 ldr r0, [r4] mov r1, #5 - bl FUN_021E50A0 + bl MOD05_021E50A0 ldr r0, [r4] mov r1, #0 - bl FUN_021E50C8 + bl MOD05_021E50C8 ldr r0, [r4] mov r1, #3 - bl FUN_021E50C8 + bl MOD05_021E50C8 ldr r0, [r4] mov r1, #4 - bl FUN_021E50C8 + bl MOD05_021E50C8 ldr r0, [r4] mov r1, #5 - bl FUN_021E50C8 + bl MOD05_021E50C8 ldr r0, [r4] mov r1, #0 - bl FUN_021E5114 + bl MOD05_021E5114 ldr r0, [r4] mov r1, #4 - bl FUN_021E5114 + bl MOD05_021E5114 ldr r0, [r4] mov r1, #5 - bl FUN_021E5114 + bl MOD05_021E5114 ldr r0, [r4] mov r1, #6 - bl FUN_021E5114 + bl MOD05_021E5114 ldr r0, [r4] mov r1, #0 - bl FUN_021E506C + bl MOD05_021E506C ldr r0, [r4] mov r1, #5 - bl FUN_021E506C + bl MOD05_021E506C ldr r0, [r4] mov r1, #6 - bl FUN_021E506C + bl MOD05_021E506C ldr r0, [r4] mov r1, #7 - bl FUN_021E506C + bl MOD05_021E506C pop {r4, pc} .align 2, 0 @@ -36818,7 +36818,7 @@ MOD06_0224B568: ; 0x0224B568 sub sp, #0x30 add r5, r0, #0 add r6, r1, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 add r4, r0, #0 add r0, r5, #0 bl FUN_02058B2C @@ -36831,11 +36831,11 @@ MOD06_0224B568: ; 0x0224B568 str r0, [sp, #0x10] add r0, r4, #0 str r4, [sp, #0x18] - bl FUN_021E4C20 + bl MOD05_021E4C20 str r0, [sp, #0x14] add r0, r4, #0 mov r1, #0x15 - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x1c] add r0, r5, #0 add r1, sp, #0x24 @@ -36851,7 +36851,7 @@ MOD06_0224B568: ; 0x0224B568 add r0, r4, #0 add r2, sp, #0x24 add r3, r6, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x30 pop {r4, r5, r6, pc} nop @@ -36913,7 +36913,7 @@ MOD06_0224B5D0: ; 0x0224B5D0 ldr r0, [r4, #0x28] mov r1, #0 add r2, sp, #0 - bl FUN_021E4EE4 + bl MOD05_021E4EE4 str r0, [r4, #0x34] add r0, r5, #0 bl FUN_02064754 @@ -36928,11 +36928,11 @@ _0224B65E: thumb_func_start MOD06_0224B664 MOD06_0224B664: ; 0x0224B664 - ldr r3, _0224B66C ; =0x0201F745 + ldr r3, _0224B66C ; =FUN_0201F744 ldr r0, [r1, #0x34] bx r3 nop -_0224B66C: .word 0x0201F745 +_0224B66C: .word FUN_0201F744 thumb_func_start MOD06_0224B670 MOD06_0224B670: ; 0x0224B670 @@ -36949,7 +36949,7 @@ MOD06_0224B670: ; 0x0224B670 cmp r0, #0 bne _0224B694 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _0224B694: @@ -37021,7 +37021,7 @@ _0224B710: cmp r0, #0 bne _0224B72A add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _0224B72A: @@ -37038,7 +37038,7 @@ _0224B72A: beq _0224B74A _0224B744: add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 _0224B74A: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} @@ -37058,7 +37058,7 @@ MOD06_0224B750: ; 0x0224B750 cmp r0, #0 bne _0224B772 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0xc pop {r4, r5, pc} _0224B772: @@ -37094,7 +37094,7 @@ MOD06_0224B788: ; 0x0224B788 ldr r0, [r4, #0x14] mov r1, #0 add r2, sp, #0 - bl FUN_021E4EE4 + bl MOD05_021E4EE4 str r0, [r4, #0x1c] mov r0, #1 add sp, #0xc @@ -37102,11 +37102,11 @@ MOD06_0224B788: ; 0x0224B788 thumb_func_start MOD06_0224B7C0 MOD06_0224B7C0: ; 0x0224B7C0 - ldr r3, _0224B7C8 ; =0x0201F745 + ldr r3, _0224B7C8 ; =FUN_0201F744 ldr r0, [r1, #0x1c] bx r3 nop -_0224B7C8: .word 0x0201F745 +_0224B7C8: .word FUN_0201F744 thumb_func_start MOD06_0224B7CC MOD06_0224B7CC: ; 0x0224B7CC @@ -37164,7 +37164,7 @@ MOD06_0224B818: ; 0x0224B818 str r5, [sp, #8] str r4, [sp, #0xc] str r6, [sp, #0x14] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x18] mov r0, #2 lsl r1, r5, #0x10 @@ -37186,7 +37186,7 @@ MOD06_0224B818: ; 0x0224B818 add r0, r6, #0 add r2, sp, #0x1c add r3, r7, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x28 pop {r3, r4, r5, r6, r7, pc} nop @@ -37262,7 +37262,7 @@ _0224B8EA: _0224B8EC: ldr r0, [r4, #0x1c] add r2, sp, #0 - bl FUN_021E4EE4 + bl MOD05_021E4EE4 str r0, [r4, #0x24] mov r0, #1 add sp, #0xc @@ -37270,11 +37270,11 @@ _0224B8EC: thumb_func_start MOD06_0224B8FC MOD06_0224B8FC: ; 0x0224B8FC - ldr r3, _0224B904 ; =0x0201F745 + ldr r3, _0224B904 ; =FUN_0201F744 ldr r0, [r1, #0x24] bx r3 nop -_0224B904: .word 0x0201F745 +_0224B904: .word FUN_0201F744 thumb_func_start MOD06_0224B908 MOD06_0224B908: ; 0x0224B908 @@ -37320,7 +37320,7 @@ MOD06_0224B948: ; 0x0224B948 mov r1, #4 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224B974 @@ -37334,7 +37334,7 @@ MOD06_0224B964: ; 0x0224B964 add r4, r0, #0 bl MOD06_0224B9B8 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224B974 @@ -37345,16 +37345,16 @@ MOD06_0224B974: ; 0x0224B974 ldr r0, [r4] mov r1, #3 mov r2, #0x56 - bl FUN_021E5078 + bl MOD05_021E5078 ldr r0, [r4] mov r1, #2 mov r2, #0x79 - bl FUN_021E50AC + bl MOD05_021E50AC ldr r0, [r4] mov r1, #2 mov r2, #5 mov r3, #1 - bl FUN_021E50D4 + bl MOD05_021E50D4 mov r3, #2 mov r1, #3 str r3, [sp] @@ -37364,7 +37364,7 @@ MOD06_0224B974: ; 0x0224B974 add r2, r1, #0 str r0, [sp, #8] ldr r0, [r4] - bl FUN_021E4EFC + bl MOD05_021E4EFC add sp, #0xc pop {r3, r4, pc} .align 2, 0 @@ -37376,16 +37376,16 @@ MOD06_0224B9B8: ; 0x0224B9B8 add r4, r0, #0 ldr r0, [r4] mov r1, #3 - bl FUN_021E50A0 + bl MOD05_021E50A0 ldr r0, [r4] mov r1, #2 - bl FUN_021E50C8 + bl MOD05_021E50C8 ldr r0, [r4] mov r1, #2 - bl FUN_021E5114 + bl MOD05_021E5114 ldr r0, [r4] mov r1, #3 - bl FUN_021E506C + bl MOD05_021E506C pop {r4, pc} .align 2, 0 @@ -37395,7 +37395,7 @@ MOD06_0224B9E0: ; 0x0224B9E0 sub sp, #0x24 add r5, r0, #0 add r6, r1, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 add r4, r0, #0 add r0, r5, #0 bl FUN_02058738 @@ -37403,7 +37403,7 @@ MOD06_0224B9E0: ; 0x0224B9E0 add r0, r4, #0 mov r1, #0x17 str r4, [sp, #0x18] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x1c] add r1, sp, #8 mov r0, #0 @@ -37421,7 +37421,7 @@ MOD06_0224B9E0: ; 0x0224B9E0 add r0, r4, #0 add r2, sp, #8 add r3, r6, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x24 pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -37461,7 +37461,7 @@ MOD06_0224BA30: ; 0x0224BA30 ldr r0, [r4, #0x18] mov r1, #3 add r2, sp, #0 - bl FUN_021E4EE4 + bl MOD05_021E4EE4 str r0, [r4, #0x24] mov r0, #1 add sp, #0xc @@ -37470,11 +37470,11 @@ MOD06_0224BA30: ; 0x0224BA30 thumb_func_start MOD06_0224BA88 MOD06_0224BA88: ; 0x0224BA88 - ldr r3, _0224BA90 ; =0x0201F745 + ldr r3, _0224BA90 ; =FUN_0201F744 ldr r0, [r1, #0x24] bx r3 nop -_0224BA90: .word 0x0201F745 +_0224BA90: .word FUN_0201F744 thumb_func_start MOD06_0224BA94 MOD06_0224BA94: ; 0x0224BA94 @@ -37490,7 +37490,7 @@ MOD06_0224BA94: ; 0x0224BA94 cmp r0, #0 bne _0224BAB4 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 pop {r3, r4, r5, r6, r7, pc} _0224BAB4: add r0, r5, #0 @@ -37503,7 +37503,7 @@ _0224BAB4: cmp r0, #0 bne _0224BAD2 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 pop {r3, r4, r5, r6, r7, pc} _0224BAD2: ldr r0, [r4] @@ -37524,7 +37524,7 @@ _0224BAD2: cmp r6, #0 bne _0224BB00 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 pop {r3, r4, r5, r6, r7, pc} _0224BB00: ldr r0, [r4, #0x24] @@ -37549,7 +37549,7 @@ MOD06_0224BB0C: ; 0x0224BB0C cmp r0, #0 bne _0224BB30 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0xc pop {r3, r4, r5, r6, pc} _0224BB30: @@ -37575,7 +37575,7 @@ MOD06_0224BB50: ; 0x0224BB50 mov r1, #4 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224BB7C @@ -37589,7 +37589,7 @@ MOD06_0224BB6C: ; 0x0224BB6C add r4, r0, #0 bl MOD06_0224BBC4 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224BB7C @@ -37600,16 +37600,16 @@ MOD06_0224BB7C: ; 0x0224BB7C ldr r0, [r4] mov r1, #6 mov r2, #0x58 - bl FUN_021E5078 + bl MOD05_021E5078 ldr r0, [r4] mov r1, #6 mov r2, #0x7a - bl FUN_021E50AC + bl MOD05_021E50AC mov r1, #7 ldr r0, [r4] add r2, r1, #0 mov r3, #1 - bl FUN_021E50D4 + bl MOD05_021E50D4 mov r0, #7 str r0, [sp] mov r0, #0 @@ -37620,7 +37620,7 @@ MOD06_0224BB7C: ; 0x0224BB7C ldr r0, [r4] mov r1, #8 add r3, r2, #0 - bl FUN_021E4EFC + bl MOD05_021E4EFC add sp, #0xc pop {r3, r4, pc} nop @@ -37632,16 +37632,16 @@ MOD06_0224BBC4: ; 0x0224BBC4 add r4, r0, #0 ldr r0, [r4] mov r1, #6 - bl FUN_021E50A0 + bl MOD05_021E50A0 ldr r0, [r4] mov r1, #6 - bl FUN_021E50C8 + bl MOD05_021E50C8 ldr r0, [r4] mov r1, #7 - bl FUN_021E5114 + bl MOD05_021E5114 ldr r0, [r4] mov r1, #8 - bl FUN_021E506C + bl MOD05_021E506C pop {r4, pc} .align 2, 0 @@ -37650,7 +37650,7 @@ MOD06_0224BBEC: ; 0x0224BBEC push {r3, r4, r5, r6, lr} sub sp, #0x24 add r5, r0, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 add r4, r0, #0 add r0, r5, #0 bl FUN_02058738 @@ -37658,7 +37658,7 @@ MOD06_0224BBEC: ; 0x0224BBEC add r0, r4, #0 mov r1, #0x19 str r4, [sp, #0x18] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x1c] add r0, r5, #0 add r1, sp, #8 @@ -37683,7 +37683,7 @@ MOD06_0224BBEC: ; 0x0224BBEC add r0, r4, #0 add r2, sp, #8 mov r3, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x24 pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -37715,7 +37715,7 @@ MOD06_0224BC50: ; 0x0224BC50 ldr r0, [r4, #0x14] mov r1, #8 add r2, sp, #0 - bl FUN_021E4EE4 + bl MOD05_021E4EE4 str r0, [r4, #0x20] mov r0, #1 add sp, #0xc @@ -37723,11 +37723,11 @@ MOD06_0224BC50: ; 0x0224BC50 thumb_func_start MOD06_0224BC94 MOD06_0224BC94: ; 0x0224BC94 - ldr r3, _0224BC9C ; =0x0201F745 + ldr r3, _0224BC9C ; =FUN_0201F744 ldr r0, [r1, #0x20] bx r3 nop -_0224BC9C: .word 0x0201F745 +_0224BC9C: .word FUN_0201F744 thumb_func_start MOD06_0224BCA0 MOD06_0224BCA0: ; 0x0224BCA0 @@ -37750,7 +37750,7 @@ MOD06_0224BCA0: ; 0x0224BCA0 cmp r0, #9 blt _0224BCCE add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 _0224BCCE: pop {r3, r4, r5, pc} @@ -37780,7 +37780,7 @@ MOD06_0224BCF4: ; 0x0224BCF4 mov r1, #4 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224BD20 @@ -37794,7 +37794,7 @@ MOD06_0224BD10: ; 0x0224BD10 add r4, r0, #0 bl MOD06_0224BD68 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224BD20 @@ -37805,16 +37805,16 @@ MOD06_0224BD20: ; 0x0224BD20 ldr r0, [r4] mov r1, #7 mov r2, #0x59 - bl FUN_021E5078 + bl MOD05_021E5078 ldr r0, [r4] mov r1, #7 mov r2, #0x7b - bl FUN_021E50AC + bl MOD05_021E50AC mov r1, #8 ldr r0, [r4] add r2, r1, #0 mov r3, #1 - bl FUN_021E50D4 + bl MOD05_021E50D4 mov r0, #8 str r0, [sp] mov r0, #0 @@ -37825,7 +37825,7 @@ MOD06_0224BD20: ; 0x0224BD20 ldr r0, [r4] mov r1, #9 add r3, r2, #0 - bl FUN_021E4EFC + bl MOD05_021E4EFC add sp, #0xc pop {r3, r4, pc} nop @@ -37837,16 +37837,16 @@ MOD06_0224BD68: ; 0x0224BD68 add r4, r0, #0 ldr r0, [r4] mov r1, #7 - bl FUN_021E50A0 + bl MOD05_021E50A0 ldr r0, [r4] mov r1, #7 - bl FUN_021E50C8 + bl MOD05_021E50C8 ldr r0, [r4] mov r1, #8 - bl FUN_021E5114 + bl MOD05_021E5114 ldr r0, [r4] mov r1, #9 - bl FUN_021E506C + bl MOD05_021E506C pop {r4, pc} .align 2, 0 @@ -37856,7 +37856,7 @@ MOD06_0224BD90: ; 0x0224BD90 sub sp, #0x30 add r5, r0, #0 add r6, r1, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 add r4, r0, #0 add r0, r5, #0 bl FUN_02058B2C @@ -37869,11 +37869,11 @@ MOD06_0224BD90: ; 0x0224BD90 str r0, [sp, #0x10] add r0, r4, #0 str r4, [sp, #0x18] - bl FUN_021E4C20 + bl MOD05_021E4C20 str r0, [sp, #0x14] add r0, r4, #0 mov r1, #0x1a - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x1c] add r0, r5, #0 add r1, sp, #0x24 @@ -37889,7 +37889,7 @@ MOD06_0224BD90: ; 0x0224BD90 add r0, r4, #0 add r2, sp, #0x24 add r3, r6, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x30 pop {r4, r5, r6, pc} nop @@ -37951,7 +37951,7 @@ MOD06_0224BDF8: ; 0x0224BDF8 ldr r0, [r4, #0x28] mov r1, #9 add r2, sp, #0 - bl FUN_021E4EE4 + bl MOD05_021E4EE4 str r0, [r4, #0x34] add r0, r5, #0 bl FUN_02064754 @@ -37966,11 +37966,11 @@ _0224BE86: thumb_func_start MOD06_0224BE8C MOD06_0224BE8C: ; 0x0224BE8C - ldr r3, _0224BE94 ; =0x0201F745 + ldr r3, _0224BE94 ; =FUN_0201F744 ldr r0, [r1, #0x34] bx r3 nop -_0224BE94: .word 0x0201F745 +_0224BE94: .word FUN_0201F744 thumb_func_start MOD06_0224BE98 MOD06_0224BE98: ; 0x0224BE98 @@ -37987,7 +37987,7 @@ MOD06_0224BE98: ; 0x0224BE98 cmp r0, #0 bne _0224BEBC add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _0224BEBC: @@ -38067,7 +38067,7 @@ _0224BF40: beq _0224BF60 _0224BF5A: add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 _0224BF60: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} @@ -38086,7 +38086,7 @@ MOD06_0224BF64: ; 0x0224BF64 cmp r0, #0 bne _0224BF86 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0xc pop {r4, r5, pc} _0224BF86: @@ -38107,7 +38107,7 @@ MOD06_0224BF9C: ; 0x0224BF9C mov r1, #4 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224BFC8 @@ -38121,7 +38121,7 @@ MOD06_0224BFB8: ; 0x0224BFB8 add r4, r0, #0 bl MOD06_0224C010 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224BFC8 @@ -38132,16 +38132,16 @@ MOD06_0224BFC8: ; 0x0224BFC8 ldr r0, [r4] mov r1, #8 mov r2, #0x5a - bl FUN_021E5078 + bl MOD05_021E5078 ldr r0, [r4] mov r1, #8 mov r2, #0x7c - bl FUN_021E50AC + bl MOD05_021E50AC mov r1, #9 ldr r0, [r4] add r2, r1, #0 mov r3, #1 - bl FUN_021E50D4 + bl MOD05_021E50D4 mov r0, #9 str r0, [sp] mov r0, #0 @@ -38152,7 +38152,7 @@ MOD06_0224BFC8: ; 0x0224BFC8 ldr r0, [r4] mov r1, #0xa add r3, r2, #0 - bl FUN_021E4EFC + bl MOD05_021E4EFC add sp, #0xc pop {r3, r4, pc} nop @@ -38164,16 +38164,16 @@ MOD06_0224C010: ; 0x0224C010 add r4, r0, #0 ldr r0, [r4] mov r1, #8 - bl FUN_021E50A0 + bl MOD05_021E50A0 ldr r0, [r4] mov r1, #8 - bl FUN_021E50C8 + bl MOD05_021E50C8 ldr r0, [r4] mov r1, #9 - bl FUN_021E5114 + bl MOD05_021E5114 ldr r0, [r4] mov r1, #0xa - bl FUN_021E506C + bl MOD05_021E506C pop {r4, pc} .align 2, 0 @@ -38183,7 +38183,7 @@ MOD06_0224C038: ; 0x0224C038 sub sp, #0x30 add r5, r0, #0 add r6, r1, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 add r4, r0, #0 add r0, r5, #0 bl FUN_02058B2C @@ -38196,11 +38196,11 @@ MOD06_0224C038: ; 0x0224C038 str r0, [sp, #0x10] add r0, r4, #0 str r4, [sp, #0x18] - bl FUN_021E4C20 + bl MOD05_021E4C20 str r0, [sp, #0x14] add r0, r4, #0 mov r1, #0x1b - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x1c] add r0, r5, #0 add r1, sp, #0x24 @@ -38216,7 +38216,7 @@ MOD06_0224C038: ; 0x0224C038 add r0, r4, #0 add r2, sp, #0x24 add r3, r6, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x30 pop {r4, r5, r6, pc} nop @@ -38283,7 +38283,7 @@ MOD06_0224C0A0: ; 0x0224C0A0 ldr r0, [r4, #0x28] mov r1, #0xa add r2, sp, #0 - bl FUN_021E4EE4 + bl MOD05_021E4EE4 str r0, [r4, #0x34] add r0, r5, #0 bl FUN_02064754 @@ -38299,11 +38299,11 @@ _0224C138: thumb_func_start MOD06_0224C140 MOD06_0224C140: ; 0x0224C140 - ldr r3, _0224C148 ; =0x0201F745 + ldr r3, _0224C148 ; =FUN_0201F744 ldr r0, [r1, #0x34] bx r3 nop -_0224C148: .word 0x0201F745 +_0224C148: .word FUN_0201F744 thumb_func_start MOD06_0224C14C MOD06_0224C14C: ; 0x0224C14C @@ -38320,7 +38320,7 @@ MOD06_0224C14C: ; 0x0224C14C cmp r0, #0 bne _0224C170 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} _0224C170: @@ -38400,7 +38400,7 @@ _0224C1F4: beq _0224C214 _0224C20E: add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 _0224C214: add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} @@ -38418,7 +38418,7 @@ MOD06_0224C218: ; 0x0224C218 cmp r0, #0 bne _0224C238 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 add sp, #0xc pop {r4, r5, pc} _0224C238: @@ -38485,7 +38485,7 @@ MOD06_0224C27C: ; 0x0224C27C bl FUN_0204AAD4 ldr r1, [sp, #4] add r0, sp, #8 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 add r3, sp, #8 ldmia r3!, {r0, r1} add r2, r4, #0 @@ -38544,11 +38544,11 @@ _0224C31C: ; jump table _0224C328: ldr r0, _0224C508 ; =0x00000205 ldr r1, [r5, #0x2c] - bl FUN_021F4BD0 + bl MOD05_021F4BD0 add r6, r0, #0 ldr r1, [r5, #0x2c] mov r0, #0x7c - bl FUN_021F4BD0 + bl MOD05_021F4BD0 str r0, [sp, #0x18] ldr r0, [r6] bl FUN_020BC13C @@ -38564,7 +38564,7 @@ _0224C328: ldr r1, [r1, #0xc] add r6, r0, r1 ldr r0, [r5, #0x2c] - bl FUN_021F4C88 + bl MOD05_021F4C88 mov r1, #0 str r1, [sp] str r7, [sp, #4] @@ -38577,7 +38577,7 @@ _0224C328: ldr r1, [r5, #0x50] ldr r3, _0224C508 ; =0x00000205 mov r2, #0x10 - bl FUN_021DA464 + bl MOD05_021DA464 add r0, r5, #0 mov r1, #0x7c add r2, sp, #0x1c @@ -38588,10 +38588,10 @@ _0224C328: bl ErrorHandling _0224C390: ldr r0, [sp, #0x1c] - bl FUN_021E7EC8 + bl MOD05_021E7EC8 add r7, r0, #0 ldr r0, [r5, #0x2c] - bl FUN_021F4C88 + bl MOD05_021F4C88 str r7, [sp] str r6, [sp, #4] str r0, [sp, #8] @@ -38604,7 +38604,7 @@ _0224C390: ldr r1, [r5, #0x50] mov r2, #0x20 mov r3, #0x7c - bl FUN_021DA464 + bl MOD05_021DA464 ldrb r0, [r4, #0xf] add r0, r0, #1 strb r0, [r4, #0xf] @@ -38652,7 +38652,7 @@ _0224C3C2: ldr r0, [r0] ldr r1, [r5, #0x2c] add r3, sp, #0x2c - bl FUN_021E7FBC + bl MOD05_021E7FBC ldrb r1, [r4, #0xd] add r1, r4, r1 strb r0, [r1, #0x10] @@ -38662,13 +38662,13 @@ _0224C3C2: add r1, r4, r1 ldrb r1, [r1, #0x10] ldr r0, [r0] - bl FUN_021E7EEC - bl FUN_021E7EC8 + bl MOD05_021E7EEC + bl MOD05_021E7EC8 add r3, r0, #0 ldrb r2, [r4, #0xd] ldr r0, [r5, #0x50] mov r1, #0x10 - bl FUN_021DA4BC + bl MOD05_021DA4BC ldrb r0, [r4, #0xf] add r0, r0, #1 strb r0, [r4, #0xf] @@ -38702,11 +38702,11 @@ _0224C476: ldr r0, [r5, #0x50] mov r1, #0x10 mov r2, #0 - bl FUN_021DA4EC + bl MOD05_021DA4EC ldr r0, [r5, #0x50] mov r1, #0x20 mov r2, #0 - bl FUN_021DA4EC + bl MOD05_021DA4EC ldr r0, _0224C51C ; =0x0000048E bl FUN_02005C28 ldrb r0, [r4, #0xf] @@ -38716,12 +38716,12 @@ _0224C476: _0224C498: ldr r0, [r5, #0x50] mov r1, #0x10 - bl FUN_021DA58C + bl MOD05_021DA58C cmp r0, #0 beq _0224C500 ldr r0, [r5, #0x50] mov r1, #0x20 - bl FUN_021DA58C + bl MOD05_021DA58C cmp r0, #0 beq _0224C500 bl FUN_02005CBC @@ -38730,11 +38730,11 @@ _0224C498: ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] mov r2, #0x20 - bl FUN_021DA54C + bl MOD05_021DA54C ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] mov r2, #0x10 - bl FUN_021DA54C + bl MOD05_021DA54C ldrb r0, [r4, #0xc] mov r6, #0 cmp r0, #0 @@ -38745,7 +38745,7 @@ _0224C4D4: add r1, #0xa0 ldrb r0, [r0, #0x10] ldr r1, [r1] - bl FUN_021E7C80 + bl MOD05_021E7C80 add r0, r6, #1 lsl r0, r0, #0x18 lsr r6, r0, #0x18 @@ -38833,7 +38833,7 @@ _0224C586: ; jump table _0224C590: ldr r0, _0224C66C ; =0x000001F2 ldr r1, [r5, #0x2c] - bl FUN_021F4BD0 + bl MOD05_021F4BD0 ldr r0, [r0] bl FUN_020BC13C ldrh r1, [r0, #0xe] @@ -38850,10 +38850,10 @@ _0224C590: bl ErrorHandling _0224C5BA: ldr r0, [sp, #0x18] - bl FUN_021E7EC8 + bl MOD05_021E7EC8 add r7, r0, #0 ldr r0, [r5, #0x2c] - bl FUN_021F4C88 + bl MOD05_021F4C88 str r7, [sp] str r6, [sp, #4] str r0, [sp, #8] @@ -38867,7 +38867,7 @@ _0224C5BA: str r0, [sp, #0x14] ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] - bl FUN_021DA464 + bl MOD05_021DA464 ldrb r0, [r4, #2] add r0, r0, #1 strb r0, [r4, #2] @@ -38888,7 +38888,7 @@ _0224C604: ldrb r2, [r4, #1] ldr r0, [r5, #0x50] mov r1, #1 - bl FUN_021DA4EC + bl MOD05_021DA4EC ldr r0, _0224C670 ; =0x00000612 bl FUN_020054C8 ldrb r0, [r4, #2] @@ -38898,7 +38898,7 @@ _0224C604: _0224C61C: ldr r0, [r5, #0x50] mov r1, #1 - bl FUN_021DA58C + bl MOD05_021DA58C cmp r0, #0 beq _0224C664 ldr r0, _0224C670 ; =0x00000612 @@ -38909,7 +38909,7 @@ _0224C61C: ldr r0, [r5, #0x4c] ldr r1, [r5, #0x50] mov r2, #1 - bl FUN_021DA54C + bl MOD05_021DA54C ldrb r0, [r4, #2] add r0, r0, #1 strb r0, [r4, #2] @@ -38960,13 +38960,13 @@ MOD06_0224C678: ; 0x0224C678 cmp r0, #0 beq _0224C6DA ldr r0, [r5, #0x2c] - bl FUN_021F4C88 + bl MOD05_021F4C88 add r4, r0, #0 ldr r0, [sp, #0x1c] - bl FUN_021E7EC8 + bl MOD05_021E7EC8 add r6, r0, #0 ldr r0, [sp, #0x1c] - bl FUN_021E7ECC + bl MOD05_021E7ECC str r6, [sp] str r0, [sp, #4] str r4, [sp, #8] @@ -38980,7 +38980,7 @@ MOD06_0224C678: ; 0x0224C678 ldr r1, [r5, #0x50] ldr r3, [sp, #0x18] add r2, r7, #0 - bl FUN_021DA464 + bl MOD05_021DA464 add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} _0224C6DA: @@ -38992,21 +38992,21 @@ _0224C6E4: .word 0x02251DE4 thumb_func_start MOD06_0224C6E8 MOD06_0224C6E8: ; 0x0224C6E8 - ldr r3, _0224C6F0 ; =0x021DA4ED + ldr r3, _0224C6F0 ; =MOD05_021DA4EC ldr r0, [r0, #0x50] mov r2, #0 bx r3 .align 2, 0 -_0224C6F0: .word 0x021DA4ED +_0224C6F0: .word MOD05_021DA4EC thumb_func_start MOD06_0224C6F4 MOD06_0224C6F4: ; 0x0224C6F4 - ldr r3, _0224C6FC ; =0x021DA4ED + ldr r3, _0224C6FC ; =MOD05_021DA4EC ldr r0, [r0, #0x50] mov r2, #1 bx r3 .align 2, 0 -_0224C6FC: .word 0x021DA4ED +_0224C6FC: .word MOD05_021DA4EC thumb_func_start MOD06_0224C700 MOD06_0224C700: ; 0x0224C700 @@ -39062,12 +39062,12 @@ MOD06_0224C75C: ; 0x0224C75C add r0, r1, #0 mov r1, #4 add r4, r2, #0 - bl FUN_021F61F4 + bl MOD05_021F61F4 ldr r2, _0224C7B0 ; =0xFFF6A000 str r0, [r4, #0x14] mov r1, #1 mov r3, #0xf - bl FUN_021F6254 + bl MOD05_021F6254 ldr r0, [r4, #0x18] ldr r1, _0224C7B4 ; =0x02251E40 bl FUN_0205AEA4 @@ -39193,7 +39193,7 @@ _0224C86E: ldr r0, [r4, #0xc] bl FUN_0205AEFC ldr r0, [r4, #0x14] - bl FUN_021F6240 + bl MOD05_021F6240 ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -39341,12 +39341,12 @@ _0224C97A: _0224C990: add r0, r5, #0 mov r1, #4 - bl FUN_021F61F4 + bl MOD05_021F61F4 mov r1, #1 ldr r2, _0224C9C0 ; =0xFFF6A000 str r0, [r4, #0x14] add r3, r1, #0 - bl FUN_021F6254 + bl MOD05_021F6254 ldr r0, [r4, #0x18] ldr r1, _0224C9C4 ; =0x02251E14 bl FUN_0205AEA4 @@ -39387,7 +39387,7 @@ _0224C9F2: mov r1, #2 mov r2, #0 mov r3, #0x3c - bl FUN_021F6254 + bl MOD05_021F6254 ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -39445,14 +39445,14 @@ MOD06_0224CA58: ; 0x0224CA58 pop {r4, pc} _0224CA6A: ldr r0, [r4, #0x14] - bl FUN_021F6234 + bl MOD05_021F6234 cmp r0, #0 bne _0224CA78 mov r0, #0 pop {r4, pc} _0224CA78: ldr r0, [r4, #0x14] - bl FUN_021F6240 + bl MOD05_021F6240 ldr r0, [r4, #0xc] bl FUN_0205AEFC mov r0, #2 @@ -39961,7 +39961,7 @@ MOD06_0224CE30: ; 0x0224CE30 lsl r1, r1, #2 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224CE5C @@ -39974,7 +39974,7 @@ MOD06_0224CE4C: ; 0x0224CE4C add r4, r0, #0 bl MOD06_0224CEA4 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224CE5C @@ -40000,7 +40000,7 @@ _0224CE76: ldr r0, [r0] mov r2, #0 add r3, r7, #0 - bl FUN_021E51EC + bl MOD05_021E51EC ldr r0, [sp, #0xc] add r6, r6, #4 add r0, r0, #1 @@ -40024,7 +40024,7 @@ MOD06_0224CEA4: ; 0x0224CEA4 lsl r6, r6, #2 _0224CEAE: ldr r0, [r5, r6] - bl FUN_021E4C00 + bl MOD05_021E4C00 add r4, r4, #1 add r5, r5, #4 cmp r4, #4 @@ -40047,9 +40047,9 @@ MOD06_0224CECC: ; 0x0224CECC sub sp, #0x2c add r5, r0, #0 add r4, r1, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 add r6, r0, #0 - bl FUN_021E4C20 + bl MOD05_021E4C20 add r7, r0, #0 add r0, r5, #0 bl FUN_02058B2C @@ -40067,7 +40067,7 @@ MOD06_0224CECC: ; 0x0224CECC mov r1, #0x1c str r4, [sp, #0xc] str r6, [sp, #0x10] - bl FUN_021E4C08 + bl MOD05_021E4C08 add r1, r4, #0 str r0, [sp, #0x14] str r5, [sp, #0x18] @@ -40083,7 +40083,7 @@ MOD06_0224CECC: ; 0x0224CECC add r0, r6, #0 add r2, sp, #0x20 mov r3, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x2c pop {r4, r5, r6, r7, pc} nop @@ -40507,7 +40507,7 @@ MOD06_0224D244: ; 0x0224D244 mov r1, #4 add r3, r2, #0 add r5, r0, #0 - bl FUN_021E4BE8 + bl MOD05_021E4BE8 add r4, r0, #0 str r5, [r4] bl MOD06_0224D270 @@ -40521,7 +40521,7 @@ MOD06_0224D260: ; 0x0224D260 add r4, r0, #0 bl MOD06_0224D2B8 add r0, r4, #0 - bl FUN_021E4C00 + bl MOD05_021E4C00 pop {r4, pc} thumb_func_start MOD06_0224D270 @@ -40532,16 +40532,16 @@ MOD06_0224D270: ; 0x0224D270 ldr r0, [r4] mov r1, #9 mov r2, #0x6b - bl FUN_021E5078 + bl MOD05_021E5078 ldr r0, [r4] mov r1, #9 mov r2, #0x7f - bl FUN_021E50AC + bl MOD05_021E50AC ldr r0, [r4] mov r1, #0xa mov r2, #0xc mov r3, #1 - bl FUN_021E50D4 + bl MOD05_021E50D4 mov r0, #0xa str r0, [sp] mov r0, #0 @@ -40552,7 +40552,7 @@ MOD06_0224D270: ; 0x0224D270 ldr r0, [r4] mov r1, #0xb add r3, r2, #0 - bl FUN_021E4EFC + bl MOD05_021E4EFC add sp, #0xc pop {r3, r4, pc} nop @@ -40564,16 +40564,16 @@ MOD06_0224D2B8: ; 0x0224D2B8 add r4, r0, #0 ldr r0, [r4] mov r1, #9 - bl FUN_021E50A0 + bl MOD05_021E50A0 ldr r0, [r4] mov r1, #9 - bl FUN_021E50C8 + bl MOD05_021E50C8 ldr r0, [r4] mov r1, #0xa - bl FUN_021E5114 + bl MOD05_021E5114 ldr r0, [r4] mov r1, #0xb - bl FUN_021E506C + bl MOD05_021E506C pop {r4, pc} .align 2, 0 @@ -40582,7 +40582,7 @@ MOD06_0224D2E0: ; 0x0224D2E0 push {r3, r4, r5, r6, lr} sub sp, #0x24 add r5, r0, #0 - bl FUN_021E4C24 + bl MOD05_021E4C24 add r4, r0, #0 add r0, r5, #0 bl FUN_02058738 @@ -40590,7 +40590,7 @@ MOD06_0224D2E0: ; 0x0224D2E0 add r0, r4, #0 mov r1, #0x1d str r4, [sp, #0x18] - bl FUN_021E4C08 + bl MOD05_021E4C08 str r0, [sp, #0x1c] add r0, r5, #0 add r1, sp, #8 @@ -40615,7 +40615,7 @@ MOD06_0224D2E0: ; 0x0224D2E0 add r0, r4, #0 add r2, sp, #8 mov r3, #0 - bl FUN_021E4DC4 + bl MOD05_021E4DC4 add sp, #0x24 pop {r3, r4, r5, r6, pc} .align 2, 0 @@ -40647,7 +40647,7 @@ MOD06_0224D344: ; 0x0224D344 ldr r0, [r4, #0x14] mov r1, #0xb add r2, sp, #0 - bl FUN_021E4EE4 + bl MOD05_021E4EE4 str r0, [r4, #0x20] mov r0, #1 add sp, #0xc @@ -40655,11 +40655,11 @@ MOD06_0224D344: ; 0x0224D344 thumb_func_start MOD06_0224D388 MOD06_0224D388: ; 0x0224D388 - ldr r3, _0224D390 ; =0x0201F745 + ldr r3, _0224D390 ; =FUN_0201F744 ldr r0, [r1, #0x20] bx r3 nop -_0224D390: .word 0x0201F745 +_0224D390: .word FUN_0201F744 thumb_func_start MOD06_0224D394 MOD06_0224D394: ; 0x0224D394 @@ -40682,7 +40682,7 @@ MOD06_0224D394: ; 0x0224D394 cmp r0, #7 blt _0224D3C2 add r0, r5, #0 - bl FUN_021E4DE4 + bl MOD05_021E4DE4 _0224D3C2: pop {r3, r4, r5, pc} @@ -41710,11 +41710,11 @@ MOD06_0224DC3C: ; 0x0224DC3C thumb_func_start MOD06_0224DC50 MOD06_0224DC50: ; 0x0224DC50 - ldr r3, _0224DC58 ; =0x0201FD59 + ldr r3, _0224DC58 ; =FUN_0201FD58 ldr r0, [r0, #0x1c] bx r3 nop -_0224DC58: .word 0x0201FD59 +_0224DC58: .word FUN_0201FD58 thumb_func_start MOD06_0224DC5C MOD06_0224DC5C: ; 0x0224DC5C @@ -42756,13 +42756,13 @@ _0224E4A2: thumb_func_start MOD06_0224E4A4 MOD06_0224E4A4: ; 0x0224E4A4 - ldr r3, _0224E4B0 ; =0x020021AD + ldr r3, _0224E4B0 ; =FUN_020021AC add r1, r0, #0 ldr r0, [r1, #4] ldr r1, [r1, #8] bx r3 nop -_0224E4B0: .word 0x020021AD +_0224E4B0: .word FUN_020021AC thumb_func_start MOD06_0224E4B4 MOD06_0224E4B4: ; 0x0224E4B4 @@ -42822,11 +42822,11 @@ MOD06_0224E510: ; 0x0224E510 mov r3, #0xc mul r3, r2 ldr r1, [r1, r3] - ldr r3, _0224E51C ; =0x020270D9 + ldr r3, _0224E51C ; =FUN_020270D8 mov r2, #1 bx r3 .align 2, 0 -_0224E51C: .word 0x020270D9 +_0224E51C: .word FUN_020270D8 thumb_func_start MOD06_0224E520 MOD06_0224E520: ; 0x0224E520 @@ -42884,7 +42884,7 @@ MOD06_0224E554: ; 0x0224E554 bl FUN_0204AAD4 ldr r1, [sp, #4] add r0, sp, #8 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 add r3, sp, #8 ldmia r3!, {r0, r1} add r2, r4, #0 @@ -42944,7 +42944,7 @@ _0224E5F8: ; jump table _0224E604: ldr r0, _0224E754 ; =0x00000205 ldr r1, [r6, #0x2c] - bl FUN_021F4BD0 + bl MOD05_021F4BD0 ldr r0, [r0] bl FUN_020BC13C ldrh r1, [r0, #0xe] @@ -42952,7 +42952,7 @@ _0224E604: ldr r1, [r1, #0xc] add r5, r0, r1 ldr r0, [r6, #0x2c] - bl FUN_021F4C88 + bl MOD05_021F4C88 mov r1, #0 str r1, [sp] str r5, [sp, #4] @@ -42965,7 +42965,7 @@ _0224E604: ldr r1, [r6, #0x50] ldr r3, _0224E754 ; =0x00000205 mov r2, #0x10 - bl FUN_021DA464 + bl MOD05_021DA464 ldrb r0, [r4, #0xf] add r0, r0, #1 strb r0, [r4, #0xf] @@ -43010,7 +43010,7 @@ _0224E644: add r0, #0xa0 ldr r0, [r0] ldr r1, [r6, #0x2c] - bl FUN_021E7FBC + bl MOD05_021E7FBC ldrb r1, [r4, #0xd] add r1, r4, r1 strb r0, [r1, #0x10] @@ -43020,13 +43020,13 @@ _0224E644: add r1, r4, r1 ldrb r1, [r1, #0x10] ldr r0, [r0] - bl FUN_021E7EEC - bl FUN_021E7EC8 + bl MOD05_021E7EEC + bl MOD05_021E7EC8 add r3, r0, #0 ldrb r2, [r4, #0xd] ldr r0, [r6, #0x50] mov r1, #0x10 - bl FUN_021DA4BC + bl MOD05_021DA4BC ldrb r0, [r4, #0xf] add r0, r0, #1 strb r0, [r4, #0xf] @@ -43060,7 +43060,7 @@ _0224E6F0: ldr r0, [r6, #0x50] mov r1, #0x10 mov r2, #0 - bl FUN_021DA4EC + bl MOD05_021DA4EC ldrb r0, [r4, #0xf] add r0, r0, #1 strb r0, [r4, #0xf] @@ -43068,13 +43068,13 @@ _0224E6F0: _0224E702: ldr r0, [r6, #0x50] mov r1, #0x10 - bl FUN_021DA58C + bl MOD05_021DA58C cmp r0, #0 beq _0224E74C ldr r0, [r6, #0x4c] ldr r1, [r6, #0x50] mov r2, #0x10 - bl FUN_021DA54C + bl MOD05_021DA54C ldrb r0, [r4, #0xc] mov r5, #0 cmp r0, #0 @@ -43085,7 +43085,7 @@ _0224E720: add r1, #0xa0 ldrb r0, [r0, #0x10] ldr r1, [r1] - bl FUN_021E7C80 + bl MOD05_021E7C80 add r0, r5, #1 lsl r0, r0, #0x18 lsr r5, r0, #0x18 @@ -43125,44 +43125,44 @@ MOD06_0224E764: ; 0x0224E764 ldr r2, [r4, #0x4c] lsl r0, r0, #4 mov r1, #1 - bl FUN_021DA080 + bl MOD05_021DA080 add r4, r0, #0 mov r1, #1 - bl FUN_021DA1A4 + bl MOD05_021DA1A4 add r0, r4, #0 mov r1, #1 - bl FUN_021DA0DC + bl MOD05_021DA0DC pop {r4, pc} _0224E794: mov r0, #0x1f ldr r2, [r4, #0x4c] lsl r0, r0, #4 mov r1, #0 - bl FUN_021DA080 + bl MOD05_021DA080 mov r1, #1 - bl FUN_021DA0DC + bl MOD05_021DA0DC mov r0, #0x1f ldr r2, [r4, #0x4c] lsl r0, r0, #4 mov r1, #1 - bl FUN_021DA080 + bl MOD05_021DA080 add r4, r0, #0 - bl FUN_021DA138 + bl MOD05_021DA138 add r0, r4, #0 mov r1, #1 - bl FUN_021DA0DC + bl MOD05_021DA0DC pop {r4, pc} .align 2, 0 thumb_func_start MOD06_0224E7C4 MOD06_0224E7C4: ; 0x0224E7C4 - ldr r3, _0224E7D0 ; =0x0204640D + ldr r3, _0224E7D0 ; =FUN_0204640C ldr r0, [r0, #0x10] ldr r1, _0224E7D4 ; =MOD06_0224E7D8 mov r2, #0 bx r3 nop -_0224E7D0: .word 0x0204640D +_0224E7D0: .word FUN_0204640C _0224E7D4: .word MOD06_0224E7D8 thumb_func_start MOD06_0224E7D8 @@ -43187,14 +43187,14 @@ _0224E7FA: ldr r2, [r5, #0x4c] lsl r0, r0, #4 mov r1, #0 - bl FUN_021DA080 + bl MOD05_021DA080 add r5, r0, #0 - bl FUN_021DA0E8 + bl MOD05_021DA0E8 cmp r0, #0 beq _0224E852 add r0, r5, #0 mov r1, #1 - bl FUN_021DA0DC + bl MOD05_021DA0DC ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -43204,9 +43204,9 @@ _0224E820: ldr r2, [r5, #0x4c] lsl r0, r0, #4 mov r1, #1 - bl FUN_021DA080 + bl MOD05_021DA080 mov r1, #0 - bl FUN_021DA0DC + bl MOD05_021DA0DC ldr r0, [r4] add r0, r0, #1 str r0, [r4] @@ -43216,8 +43216,8 @@ _0224E83A: ldr r2, [r5, #0x4c] lsl r0, r0, #4 mov r1, #1 - bl FUN_021DA080 - bl FUN_021DA20C + bl MOD05_021DA080 + bl MOD05_021DA20C cmp r0, #0 beq _0224E852 mov r0, #1 @@ -43280,7 +43280,7 @@ _0224E8AC: add r1, r1, r3 add r0, r7, #0 add r3, r4, r3 - bl FUN_021F54D0 + bl MOD05_021F54D0 add sp, #0xc pop {r4, r5, r6, r7, pc} @@ -43336,7 +43336,7 @@ _0224E914: add r1, r1, r3 add r0, r7, #0 add r3, r4, r3 - bl FUN_021F54D0 + bl MOD05_021F54D0 add sp, #0xc pop {r4, r5, r6, r7, pc} @@ -43351,7 +43351,7 @@ MOD06_0224E92C: ; 0x0224E92C ldr r2, [sp, #4] ldr r3, [sp, #8] add r0, r4, #0 - bl FUN_021F54D0 + bl MOD05_021F54D0 add sp, #0xc pop {r3, r4, pc} @@ -43372,11 +43372,11 @@ MOD06_0224E948: ; 0x0224E948 mov r1, #0x8d add r2, r5, #0 mov r3, #4 - bl FUN_021F5268 + bl MOD05_021F5268 add r1, r6, #0 add r0, r6, #0 add r1, #0x78 - bl FUN_021F5400 + bl MOD05_021F5400 add r0, r6, #0 add r0, #0xd8 str r4, [r0] @@ -43401,10 +43401,10 @@ _0224E994: mov r2, #0x8d add r3, r3, r4 str r7, [sp, #4] - bl FUN_021F531C + bl MOD05_021F531C add r0, r6, #0 add r1, r5, #0 - bl FUN_021F5424 + bl MOD05_021F5424 add r0, r6, #0 add r0, #0xd8 ldr r0, [r0] @@ -43423,7 +43423,7 @@ MOD06_0224E9C4: ; 0x0224E9C4 add r6, r0, #0 add r0, #0x78 add r7, r1, #0 - bl FUN_021F52C8 + bl MOD05_021F52C8 add r0, r6, #0 add r0, #0xd8 ldr r0, [r0] @@ -43435,7 +43435,7 @@ MOD06_0224E9C4: ; 0x0224E9C4 _0224E9E0: add r0, r5, #0 add r1, r7, #0 - bl FUN_021F5358 + bl MOD05_021F5358 add r0, r6, #0 add r0, #0xd8 ldr r0, [r0] @@ -43462,7 +43462,7 @@ _0224EA0C: mov r1, #1 add r0, r5, #0 lsl r1, r1, #0xc - bl FUN_021F53BC + bl MOD05_021F53BC and r6, r0 add r0, r7, #0 add r0, #0xd8 @@ -43492,7 +43492,7 @@ MOD06_0224EA2C: ; 0x0224EA2C _0224EA42: add r0, r5, #0 add r1, r7, #0 - bl FUN_021F5384 + bl MOD05_021F5384 add r0, r6, #0 add r0, #0xd8 ldr r0, [r0] @@ -43506,10 +43506,10 @@ _0224EA58: thumb_func_start MOD06_0224EA5C MOD06_0224EA5C: ; 0x0224EA5C - ldr r3, _0224EA60 ; =0x021F5431 + ldr r3, _0224EA60 ; =MOD05_021F5430 bx r3 .align 2, 0 -_0224EA60: .word 0x021F5431 +_0224EA60: .word MOD05_021F5430 thumb_func_start MOD06_0224EA64 MOD06_0224EA64: ; 0x0224EA64 @@ -43573,7 +43573,7 @@ _0224EACE: bne _0224EAEC add r0, r4, #0 mov r1, #0 - bl FUN_021F54CC + bl MOD05_021F54CC add r0, r4, #0 add r0, #0xec ldr r0, [r0] @@ -43595,25 +43595,25 @@ _0224EAF8: .word MOD06_0224EA5C thumb_func_start MOD06_0224EAFC MOD06_0224EAFC: ; 0x0224EAFC ldr r0, [r0, #4] - ldr r3, _0224EB08 ; =0x021D8025 + ldr r3, _0224EB08 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _0224EB0C ; =0x022521D4 bx r3 nop -_0224EB08: .word 0x021D8025 +_0224EB08: .word MOD05_021D8024 _0224EB0C: .word 0x022521D4 thumb_func_start MOD06_0224EB10 MOD06_0224EB10: ; 0x0224EB10 - ldr r3, _0224EB14 ; =0x021D80A5 + ldr r3, _0224EB14 ; =MOD05_021D80A4 bx r3 .align 2, 0 -_0224EB14: .word 0x021D80A5 +_0224EB14: .word MOD05_021D80A4 thumb_func_start MOD06_0224EB18 MOD06_0224EB18: ; 0x0224EB18 push {r3, lr} - bl FUN_021D80E4 + bl MOD05_021D80E4 add r0, #0xec ldr r0, [r0] cmp r0, #1 @@ -43722,7 +43722,7 @@ _0224EBE6: bne _0224EC04 add r0, r4, #0 mov r1, #0 - bl FUN_021F54CC + bl MOD05_021F54CC add r0, r4, #0 add r0, #0xec ldr r0, [r0] @@ -43744,36 +43744,36 @@ _0224EC10: .word MOD06_0224EA5C thumb_func_start MOD06_0224EC14 MOD06_0224EC14: ; 0x0224EC14 ldr r0, [r0, #4] - ldr r3, _0224EC20 ; =0x021D8025 + ldr r3, _0224EC20 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _0224EC24 ; =0x0225218C bx r3 nop -_0224EC20: .word 0x021D8025 +_0224EC20: .word MOD05_021D8024 _0224EC24: .word 0x0225218C thumb_func_start MOD06_0224EC28 MOD06_0224EC28: ; 0x0224EC28 ldr r0, [r0, #4] - ldr r3, _0224EC34 ; =0x021D8025 + ldr r3, _0224EC34 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _0224EC38 ; =0x022521A4 bx r3 nop -_0224EC34: .word 0x021D8025 +_0224EC34: .word MOD05_021D8024 _0224EC38: .word 0x022521A4 thumb_func_start MOD06_0224EC3C MOD06_0224EC3C: ; 0x0224EC3C - ldr r3, _0224EC40 ; =0x021D80A5 + ldr r3, _0224EC40 ; =MOD05_021D80A4 bx r3 .align 2, 0 -_0224EC40: .word 0x021D80A5 +_0224EC40: .word MOD05_021D80A4 thumb_func_start MOD06_0224EC44 MOD06_0224EC44: ; 0x0224EC44 push {r3, lr} - bl FUN_021D80E4 + bl MOD05_021D80E4 add r0, #0xec ldr r0, [r0] cmp r0, #1 @@ -43844,7 +43844,7 @@ _0224ECA8: ldr r0, [sp, #8] mov r1, #0 add r0, #0xdc - bl FUN_021F54CC + bl MOD05_021F54CC ldr r0, _0224ECF0 ; =0x0000064D bl FUN_020054C8 mov r1, #0x72 @@ -43902,10 +43902,10 @@ _0224ED2A: add r0, r4, #0 add r0, #0xdc mov r1, #1 - bl FUN_021F54CC + bl MOD05_021F54CC add r0, r4, #0 mov r1, #0 - bl FUN_021F54CC + bl MOD05_021F54CC add r1, r4, #0 ldr r0, [r5, #0x38] add r1, #0xdc @@ -43949,20 +43949,20 @@ MOD06_0224ED84: ; 0x0224ED84 thumb_func_start MOD06_0224ED94 MOD06_0224ED94: ; 0x0224ED94 ldr r0, [r0, #4] - ldr r3, _0224EDA0 ; =0x021D8025 + ldr r3, _0224EDA0 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _0224EDA4 ; =0x022521BC bx r3 nop -_0224EDA0: .word 0x021D8025 +_0224EDA0: .word MOD05_021D8024 _0224EDA4: .word 0x022521BC thumb_func_start MOD06_0224EDA8 MOD06_0224EDA8: ; 0x0224EDA8 - ldr r3, _0224EDAC ; =0x021D80A5 + ldr r3, _0224EDAC ; =MOD05_021D80A4 bx r3 .align 2, 0 -_0224EDAC: .word 0x021D80A5 +_0224EDAC: .word MOD05_021D80A4 thumb_func_start MOD06_0224EDB0 MOD06_0224EDB0: ; 0x0224EDB0 @@ -43987,7 +43987,7 @@ _0224EDC8: add r0, r7, #0 add r2, r2, r4 add r3, r3, r5 - bl FUN_021F54D0 + bl MOD05_021F54D0 add r0, r7, #0 mov r4, #0 add r5, r7, #0 @@ -43999,14 +43999,14 @@ _0224EDC8: _0224EDF0: add r0, r5, #0 add r1, r6, #0 - bl FUN_021F53F8 + bl MOD05_021F53F8 add r4, r4, #1 add r5, #0x14 cmp r4, #4 blt _0224EDF0 add r0, r7, #0 mov r1, #1 - bl FUN_021F54CC + bl MOD05_021F54CC ldr r0, _0224EE14 ; =0x00000627 bl FUN_020054C8 add sp, #0xc @@ -44030,7 +44030,7 @@ MOD06_0224EE18: ; 0x0224EE18 _0224EE2E: add r0, r5, #0 add r1, r7, #0 - bl FUN_021F53BC + bl MOD05_021F53BC add r6, r6, #1 and r4, r0 add r5, #0x14 @@ -44043,7 +44043,7 @@ _0224EE2E: add r0, #0xc8 str r1, [r0] ldr r0, [sp] - bl FUN_021F54CC + bl MOD05_021F54CC _0224EE52: pop {r3, r4, r5, r6, r7, pc} @@ -44060,7 +44060,7 @@ MOD06_0224EE54: ; 0x0224EE54 bl Call_FillMemWithValue ldr r1, [sp] add r0, r7, #0 - bl FUN_021F5400 + bl MOD05_021F5400 add r4, r7, #0 mov r6, #0 add r4, #0x78 @@ -44069,10 +44069,10 @@ _0224EE76: ldr r2, [r5] ldr r3, [sp, #4] add r0, r4, #0 - bl FUN_021F5348 + bl MOD05_021F5348 add r0, r7, #0 add r1, r4, #0 - bl FUN_021F5424 + bl MOD05_021F5424 add r6, r6, #1 add r5, r5, #4 add r4, #0x14 @@ -44080,7 +44080,7 @@ _0224EE76: blt _0224EE76 add r0, r7, #0 mov r1, #0 - bl FUN_021F54CC + bl MOD05_021F54CC add sp, #8 pop {r3, r4, r5, r6, r7, pc} @@ -44095,7 +44095,7 @@ MOD06_0224EEA0: ; 0x0224EEA0 _0224EEAC: add r0, r5, #0 add r1, r6, #0 - bl FUN_021F5358 + bl MOD05_021F5358 add r4, r4, #1 add r5, #0x14 cmp r4, #4 @@ -44238,7 +44238,7 @@ MOD06_0224EF98: ; 0x0224EF98 mov r1, #0x8d mov r2, #8 mov r3, #4 - bl FUN_021F5268 + bl MOD05_021F5268 mov r7, #0xcd mov r4, #0 add r6, r5, #0 @@ -44307,7 +44307,7 @@ _0224F038: cmp r6, #0x10 blt _0224F038 add r0, r5, #0 - bl FUN_021F52C8 + bl MOD05_021F52C8 mov r6, #0xcd mov r4, #0 lsl r6, r6, #4 @@ -44363,7 +44363,7 @@ MOD06_0224F0A4: ; 0x0224F0A4 add r5, #0x10 _0224F0AC: add r0, r5, #0 - bl FUN_021F5430 + bl MOD05_021F5430 add r4, r4, #1 add r5, #0xcc cmp r4, #0x10 @@ -44373,20 +44373,20 @@ _0224F0AC: thumb_func_start MOD06_0224F0BC MOD06_0224F0BC: ; 0x0224F0BC ldr r0, [r0, #4] - ldr r3, _0224F0C8 ; =0x021D8025 + ldr r3, _0224F0C8 ; =MOD05_021D8024 ldr r0, [r0, #4] ldr r1, _0224F0CC ; =0x022521EC bx r3 nop -_0224F0C8: .word 0x021D8025 +_0224F0C8: .word MOD05_021D8024 _0224F0CC: .word 0x022521EC thumb_func_start MOD06_0224F0D0 MOD06_0224F0D0: ; 0x0224F0D0 - ldr r3, _0224F0D4 ; =0x021D80A5 + ldr r3, _0224F0D4 ; =MOD05_021D80A4 bx r3 .align 2, 0 -_0224F0D4: .word 0x021D80A5 +_0224F0D4: .word MOD05_021D80A4 thumb_func_start MOD06_0224F0D8 MOD06_0224F0D8: ; 0x0224F0D8 @@ -44468,9 +44468,13 @@ _0224F144: _0224F16C: .word 0x02252210 _0224F170: .word MOD06_0224F0D8 - .section .data + .section .rodata ; 0x0224F174 - .incbin "baserom.nds", 0x1810D4, 0x32AC + .incbin "baserom.nds", 0x1810D4, 0x30B4 + + .section .data + ; 0x022252240 + .incbin "baserom.nds", 0x1841a0, 0x1e0 .section .bss ; 0x02252420 diff --git a/arm9/modules/07/asm/module_07.s b/arm9/modules/07/asm/module_07.s index 39869410..e71b9bfe 100644 --- a/arm9/modules/07/asm/module_07.s +++ b/arm9/modules/07/asm/module_07.s @@ -7,7 +7,7 @@ MOD07_02211E60: ; 0x02211E60 push {r3, r4, r5, lr} add r5, r0, #0 - ldr r0, _02211E88 ; =FUN_02211E94 + ldr r0, _02211E88 ; =MOD07_02211E94 ldr r1, _02211E8C ; =0x00000B84 ldr r3, [r5, #0x24] mov r2, #0x64 @@ -23,12 +23,12 @@ MOD07_02211E60: ; 0x02211E60 strb r1, [r4, r0] pop {r3, r4, r5, pc} .align 2, 0 -_02211E88: .word FUN_02211E94 +_02211E88: .word MOD07_02211E94 _02211E8C: .word 0x00000B84 _02211E90: .word 0x00000B7F - thumb_func_start FUN_02211E94 -FUN_02211E94: ; 0x02211E94 + thumb_func_start MOD07_02211E94 +MOD07_02211E94: ; 0x02211E94 push {r4, r5, r6, lr} ldr r2, _02211F0C ; =0x00000B7F add r5, r1, #0 @@ -42,7 +42,7 @@ FUN_02211E94: ; 0x02211E94 b _02211EE0 _02211EAA: add r0, r5, #0 - bl FUN_02211F34 + bl MOD07_02211F34 ldr r1, _02211F0C ; =0x00000B7F strb r0, [r5, r1] b _02211EE0 @@ -67,7 +67,7 @@ _02211ED2: beq _02211EBC b _02211EE0 _02211ED8: - bl FUN_02212B64 + bl MOD07_02212B64 cmp r0, #1 beq _02211F0A _02211EE0: @@ -77,7 +77,7 @@ _02211EE0: cmp r0, #0 beq _02211EFA add r0, r5, #0 - bl FUN_02212D30 + bl MOD07_02212D30 mov r0, #0x65 lsl r0, r0, #2 ldr r0, [r5, r0] @@ -97,8 +97,8 @@ _02211F0A: _02211F0C: .word 0x00000B7F _02211F10: .word 0x04000540 - thumb_func_start FUN_02211F14 -FUN_02211F14: ; 0x02211F14 + thumb_func_start MOD07_02211F14 +MOD07_02211F14: ; 0x02211F14 push {r4, lr} sub sp, #0x28 ldr r4, _02211F30 ; =0x02214AD8 @@ -116,8 +116,8 @@ _02211F1E: .align 2, 0 _02211F30: .word 0x02214AD8 - thumb_func_start FUN_02211F34 -FUN_02211F34: ; 0x02211F34 + thumb_func_start MOD07_02211F34 +MOD07_02211F34: ; 0x02211F34 push {r4, lr} ldr r1, _02211FE0 ; =0x04000050 add r4, r0, #0 @@ -143,7 +143,7 @@ FUN_02211F34: ; 0x02211F34 strh r1, [r0] add r3, #0x50 strh r1, [r3] - bl FUN_02211F14 + bl MOD07_02211F14 ldr r0, [r4] ldr r0, [r0, #0x24] bl FUN_02016B94 @@ -196,7 +196,7 @@ _02211FD0: _02211FD2: str r0, [r4, #4] ldr r0, [r4] - bl FUN_02214720 + bl MOD07_02214720 _02211FDA: mov r0, #1 pop {r4, pc} @@ -210,8 +210,8 @@ _02211FF4: .word 0x022149B4 _02211FF8: .word 0x02214B00 _02211FFC: .word 0x02214B64 - thumb_func_start FUN_02212000 -FUN_02212000: ; 0x02212000 + thumb_func_start MOD07_02212000 +MOD07_02212000: ; 0x02212000 push {r4, lr} ldr r1, _02212074 ; =0x00000B82 add r4, r0, #0 @@ -224,14 +224,14 @@ FUN_02212000: ; 0x02212000 beq _0221202E b _02212068 _02212016: - bl FUN_02213858 + bl MOD07_02213858 add r0, r4, #0 - bl FUN_02213924 + bl MOD07_02213924 b _02212068 _02212022: - bl FUN_02213D30 + bl MOD07_02213D30 add r0, r4, #0 - bl FUN_02213F28 + bl MOD07_02213F28 b _02212068 _0221202E: mov r2, #0 @@ -239,19 +239,19 @@ _0221202E: mov r2, #0x20 sub r1, r1, #1 strb r2, [r4, r1] - bl FUN_022139BC + bl MOD07_022139BC add r0, r4, #0 - bl FUN_0221424C + bl MOD07_0221424C add r0, r4, #0 - bl FUN_0221469C + bl MOD07_0221469C add r0, r4, #0 - bl FUN_02213AEC + bl MOD07_02213AEC bl FUN_02033E74 ldr r1, [r4] mov r0, #0 ldr r1, [r1, #0x24] bl FUN_02079A70 - ldr r0, _02212078 ; =FUN_02212D68 + ldr r0, _02212078 ; =MOD07_02212D68 add r1, r4, #0 bl FUN_02015F10 mov r0, #1 @@ -265,10 +265,10 @@ _02212068: pop {r4, pc} .align 2, 0 _02212074: .word 0x00000B82 -_02212078: .word FUN_02212D68 +_02212078: .word MOD07_02212D68 - thumb_func_start FUN_0221207C -FUN_0221207C: ; 0x0221207C + thumb_func_start MOD07_0221207C +MOD07_0221207C: ; 0x0221207C push {r4, lr} ldr r1, _022120F4 ; =0x00000B82 add r4, r0, #0 @@ -281,25 +281,25 @@ FUN_0221207C: ; 0x0221207C beq _022120B8 b _022120E6 _02212092: - bl FUN_02212D98 + bl MOD07_02212D98 add r0, r4, #0 - bl FUN_02212E90 - bl FUN_02212F2C + bl MOD07_02212E90 + bl MOD07_02212F2C b _022120E6 _022120A2: - bl FUN_022133B4 + bl MOD07_022133B4 add r0, r4, #0 - bl FUN_02212F44 + bl MOD07_02212F44 bl FUN_02033E74 add r0, r4, #0 - bl FUN_022136B4 + bl MOD07_022136B4 b _022120E6 _022120B8: ldr r1, [r4] mov r0, #0 ldr r1, [r1, #0x24] bl FUN_02079A70 - ldr r0, _022120F8 ; =FUN_02212D68 + ldr r0, _022120F8 ; =MOD07_02212D68 add r1, r4, #0 bl FUN_02015F10 ldr r1, _022120F4 ; =0x00000B82 @@ -325,10 +325,10 @@ _022120E6: pop {r4, pc} nop _022120F4: .word 0x00000B82 -_022120F8: .word FUN_02212D68 +_022120F8: .word MOD07_02212D68 - thumb_func_start FUN_022120FC -FUN_022120FC: ; 0x022120FC + thumb_func_start MOD07_022120FC +MOD07_022120FC: ; 0x022120FC push {r4, lr} ldr r1, _0221216C ; =0x00000B82 add r4, r0, #0 @@ -341,15 +341,15 @@ FUN_022120FC: ; 0x022120FC beq _02212132 b _02212160 _02212112: - bl FUN_02212D98 + bl MOD07_02212D98 add r0, r4, #0 - bl FUN_02212E90 - bl FUN_02212F2C + bl MOD07_02212E90 + bl MOD07_02212F2C b _02212160 _02212122: - bl FUN_022133B4 + bl MOD07_022133B4 add r0, r4, #0 - bl FUN_02213484 + bl MOD07_02213484 bl FUN_02033E74 b _02212160 _02212132: @@ -357,7 +357,7 @@ _02212132: mov r0, #0 ldr r1, [r1, #0x24] bl FUN_02079A70 - ldr r0, _02212170 ; =FUN_02212D68 + ldr r0, _02212170 ; =MOD07_02212D68 add r1, r4, #0 bl FUN_02015F10 ldr r1, _0221216C ; =0x00000B82 @@ -383,10 +383,10 @@ _02212160: pop {r4, pc} .align 2, 0 _0221216C: .word 0x00000B82 -_02212170: .word FUN_02212D68 +_02212170: .word MOD07_02212D68 - thumb_func_start FUN_02212174 -FUN_02212174: ; 0x02212174 + thumb_func_start MOD07_02212174 +MOD07_02212174: ; 0x02212174 push {r4, lr} add r4, r0, #0 bl FUN_0200E308 @@ -417,8 +417,8 @@ _0221219A: .align 2, 0 _022121A8: .word 0x00000B81 - thumb_func_start FUN_022121AC -FUN_022121AC: ; 0x022121AC + thumb_func_start MOD07_022121AC +MOD07_022121AC: ; 0x022121AC push {r3, r4, r5, lr} add r4, r0, #0 ldr r0, [r4, #0xc] @@ -448,42 +448,42 @@ FUN_022121AC: ; 0x022121AC add r0, r4, #0 add r2, r1, #0 add r3, r1, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r2, #0 add r0, r4, #0 mov r1, #1 add r3, r2, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r2, #0 add r0, r4, #0 mov r1, #2 add r3, r2, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r2, #0 add r0, r4, #0 mov r1, #3 add r3, r2, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r1, #0 add r0, r4, #0 add r2, r1, #0 add r3, r1, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r2, #0 add r0, r4, #0 mov r1, #1 add r3, r2, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r2, #0 add r0, r4, #0 mov r1, #2 add r3, r2, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r2, #0 add r0, r4, #0 mov r1, #3 add r3, r2, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r0, #1 pop {r3, r4, r5, pc} _02212248: @@ -517,7 +517,7 @@ _02212248: lsl r2, r2, #0x10 asr r2, r2, #0x10 add r3, r1, #0 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _02212374 ; =0x00000B74 mov r1, #1 ldr r3, [r4, r2] @@ -532,7 +532,7 @@ _02212248: sub r2, r5, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _02212374 ; =0x00000B74 mov r1, #2 ldr r3, [r4, r2] @@ -547,7 +547,7 @@ _02212248: sub r2, r2, r5 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _02212374 ; =0x00000B74 mov r1, #3 ldr r3, [r4, r2] @@ -562,7 +562,7 @@ _02212248: sub r2, r2, r5 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _02212374 ; =0x00000B74 mov r1, #0 ldr r3, [r4, r2] @@ -577,7 +577,7 @@ _02212248: sub r2, r5, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_02213354 + bl MOD07_02213354 ldr r2, _02212374 ; =0x00000B74 mov r1, #1 ldr r3, [r4, r2] @@ -592,7 +592,7 @@ _02212248: sub r2, r5, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_02213354 + bl MOD07_02213354 ldr r2, _02212374 ; =0x00000B74 mov r1, #2 ldr r3, [r4, r2] @@ -607,7 +607,7 @@ _02212248: sub r2, r2, r5 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_02213354 + bl MOD07_02213354 ldr r2, _02212374 ; =0x00000B74 add r0, r4, #0 ldr r3, [r4, r2] @@ -622,18 +622,18 @@ _02212248: lsl r2, r2, #0x10 asr r2, r2, #0x10 mov r3, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r0, #0 pop {r3, r4, r5, pc} .align 2, 0 _02212370: .word 0x00000B82 _02212374: .word 0x00000B74 - thumb_func_start FUN_02212378 -FUN_02212378: ; 0x02212378 + thumb_func_start MOD07_02212378 +MOD07_02212378: ; 0x02212378 push {r4, r5, r6, lr} add r5, r0, #0 - bl FUN_022137A4 + bl MOD07_022137A4 cmp r0, #0 bne _02212394 ldr r0, _02212574 ; =0x00000B82 @@ -690,42 +690,42 @@ _022123B4: add r0, r5, #0 add r2, r1, #0 add r3, r1, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r2, #0 add r0, r5, #0 mov r1, #1 add r3, r2, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r2, #0 add r0, r5, #0 mov r1, #2 add r3, r2, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r2, #0 add r0, r5, #0 mov r1, #3 add r3, r2, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r1, #0 add r0, r5, #0 add r2, r1, #0 add r3, r1, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r2, #0 add r0, r5, #0 mov r1, #1 add r3, r2, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r2, #0 add r0, r5, #0 mov r1, #2 add r3, r2, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r2, #0 add r0, r5, #0 mov r1, #3 add r3, r2, #0 - bl FUN_02213354 + bl MOD07_02213354 b _02212568 _02212450: blo _02212454 @@ -819,42 +819,42 @@ _022124CC: mov r1, #0 add r2, r6, #0 add r3, r4, #0 - bl FUN_0221309C + bl MOD07_0221309C add r0, r5, #0 mov r1, #1 add r2, r6, #0 add r3, r4, #0 - bl FUN_0221309C + bl MOD07_0221309C add r0, r5, #0 mov r1, #2 add r2, r6, #0 add r3, r4, #0 - bl FUN_0221309C + bl MOD07_0221309C add r0, r5, #0 mov r1, #3 add r2, r6, #0 add r3, r4, #0 - bl FUN_0221309C + bl MOD07_0221309C add r0, r5, #0 mov r1, #0 add r2, r6, #0 add r3, r4, #0 - bl FUN_02213354 + bl MOD07_02213354 add r0, r5, #0 mov r1, #1 add r2, r6, #0 add r3, r4, #0 - bl FUN_02213354 + bl MOD07_02213354 add r0, r5, #0 mov r1, #2 add r2, r6, #0 add r3, r4, #0 - bl FUN_02213354 + bl MOD07_02213354 add r0, r5, #0 mov r1, #3 add r2, r6, #0 add r3, r4, #0 - bl FUN_02213354 + bl MOD07_02213354 ldr r0, _02212584 ; =0x00000B78 strh r6, [r5, r0] add r0, r0, #2 @@ -874,8 +874,8 @@ _02212580: .word 0x00000B7D _02212584: .word 0x00000B78 _02212588: .word 0x00000B7A - thumb_func_start FUN_0221258C -FUN_0221258C: ; 0x0221258C + thumb_func_start MOD07_0221258C +MOD07_0221258C: ; 0x0221258C push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 @@ -939,7 +939,7 @@ _022125DE: neg r2, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _022126A4 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -949,7 +949,7 @@ _022125DE: neg r2, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _022126A4 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -957,7 +957,7 @@ _022125DE: mov r3, #0 lsl r2, r2, #0x14 asr r2, r2, #0x10 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _022126A4 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -965,7 +965,7 @@ _022125DE: mov r3, #0 lsl r2, r2, #0x14 asr r2, r2, #0x10 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _022126A4 ; =0x00000B82 mov r1, #0 ldrb r2, [r4, r2] @@ -975,7 +975,7 @@ _022125DE: neg r2, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_02213354 + bl MOD07_02213354 ldr r2, _022126A4 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -985,7 +985,7 @@ _022125DE: neg r2, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_02213354 + bl MOD07_02213354 ldr r2, _022126A4 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -993,7 +993,7 @@ _022125DE: mov r3, #0 lsl r2, r2, #0x14 asr r2, r2, #0x10 - bl FUN_02213354 + bl MOD07_02213354 ldr r2, _022126A4 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1001,7 +1001,7 @@ _022125DE: mov r3, #0 lsl r2, r2, #0x14 asr r2, r2, #0x10 - bl FUN_02213354 + bl MOD07_02213354 mov r0, #0 add sp, #0xc pop {r3, r4, pc} @@ -1011,8 +1011,8 @@ _022126A8: .word 0x00007FFF _022126AC: .word 0x00000B7F _022126B0: .word 0x00000719 - thumb_func_start FUN_022126B4 -FUN_022126B4: ; 0x022126B4 + thumb_func_start MOD07_022126B4 +MOD07_022126B4: ; 0x022126B4 ldr r1, _022126C0 ; =0x00000B81 mov r2, #0x10 strb r2, [r0, r1] @@ -1021,11 +1021,11 @@ FUN_022126B4: ; 0x022126B4 nop _022126C0: .word 0x00000B81 - thumb_func_start FUN_022126C4 -FUN_022126C4: ; 0x022126C4 + thumb_func_start MOD07_022126C4 +MOD07_022126C4: ; 0x022126C4 push {r4, lr} add r4, r0, #0 - bl FUN_02212BD4 + bl MOD07_02212BD4 cmp r0, #1 ldr r0, [r4] bne _022126E8 @@ -1059,23 +1059,23 @@ _022126FC: .align 2, 0 _02212700: .word 0x00000B7E - thumb_func_start FUN_02212704 -FUN_02212704: ; 0x02212704 + thumb_func_start MOD07_02212704 +MOD07_02212704: ; 0x02212704 push {r3, lr} ldr r1, _0221271C ; =0x00000B7E ldrb r1, [r0, r1] cmp r1, #0 bne _02212714 - bl FUN_02212720 + bl MOD07_02212720 pop {r3, pc} _02212714: - bl FUN_02212824 + bl MOD07_02212824 pop {r3, pc} nop _0221271C: .word 0x00000B7E - thumb_func_start FUN_02212720 -FUN_02212720: ; 0x02212720 + thumb_func_start MOD07_02212720 +MOD07_02212720: ; 0x02212720 push {r3, r4, r5, lr} ldr r3, _02212814 ; =0x00000B82 add r4, r0, #0 @@ -1104,7 +1104,7 @@ FUN_02212720: ; 0x02212720 ldr r2, _0221281C ; =0x02214961 ldrb r2, [r2, r3] add r3, r1, #0 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _02212814 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1113,7 +1113,7 @@ FUN_02212720: ; 0x02212720 ldr r2, _0221281C ; =0x02214961 ldrb r2, [r2, r3] mov r3, #0 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _02212814 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1122,7 +1122,7 @@ FUN_02212720: ; 0x02212720 ldr r2, _0221281C ; =0x02214961 ldrb r2, [r2, r3] mov r3, #0 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _02212814 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1131,7 +1131,7 @@ FUN_02212720: ; 0x02212720 ldr r2, _0221281C ; =0x02214961 ldrb r2, [r2, r3] mov r3, #0 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _02212814 ; =0x00000B82 mov r1, #0 ldrb r2, [r4, r2] @@ -1140,7 +1140,7 @@ FUN_02212720: ; 0x02212720 ldr r2, _0221281C ; =0x02214961 ldrb r2, [r2, r3] add r3, r1, #0 - bl FUN_02213354 + bl MOD07_02213354 ldr r2, _02212814 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1149,7 +1149,7 @@ FUN_02212720: ; 0x02212720 ldr r2, _0221281C ; =0x02214961 ldrb r2, [r2, r3] mov r3, #0 - bl FUN_02213354 + bl MOD07_02213354 ldr r2, _02212814 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1158,7 +1158,7 @@ FUN_02212720: ; 0x02212720 ldr r2, _0221281C ; =0x02214961 ldrb r2, [r2, r3] mov r3, #0 - bl FUN_02213354 + bl MOD07_02213354 ldr r2, _02212814 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1167,7 +1167,7 @@ FUN_02212720: ; 0x02212720 ldr r2, _0221281C ; =0x02214961 ldrb r2, [r2, r3] mov r3, #0 - bl FUN_02213354 + bl MOD07_02213354 ldr r0, _02212814 ; =0x00000B82 ldrb r0, [r4, r0] cmp r0, #0 @@ -1194,8 +1194,8 @@ _02212818: .word 0x02214960 _0221281C: .word 0x02214961 _02212820: .word 0x00000853 - thumb_func_start FUN_02212824 -FUN_02212824: ; 0x02212824 + thumb_func_start MOD07_02212824 +MOD07_02212824: ; 0x02212824 push {r3, r4, r5, lr} ldr r3, _02212948 ; =0x00000B82 add r4, r0, #0 @@ -1227,7 +1227,7 @@ FUN_02212824: ; 0x02212824 neg r2, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _02212948 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1239,7 +1239,7 @@ FUN_02212824: ; 0x02212824 neg r2, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _02212948 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1251,7 +1251,7 @@ FUN_02212824: ; 0x02212824 neg r2, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _02212948 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1263,7 +1263,7 @@ FUN_02212824: ; 0x02212824 neg r2, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_0221309C + bl MOD07_0221309C ldr r2, _02212948 ; =0x00000B82 mov r1, #0 ldrb r2, [r4, r2] @@ -1275,7 +1275,7 @@ FUN_02212824: ; 0x02212824 neg r2, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_02213354 + bl MOD07_02213354 ldr r2, _02212948 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1287,7 +1287,7 @@ FUN_02212824: ; 0x02212824 neg r2, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_02213354 + bl MOD07_02213354 ldr r2, _02212948 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1299,7 +1299,7 @@ FUN_02212824: ; 0x02212824 neg r2, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_02213354 + bl MOD07_02213354 ldr r2, _02212948 ; =0x00000B82 add r0, r4, #0 ldrb r2, [r4, r2] @@ -1311,7 +1311,7 @@ FUN_02212824: ; 0x02212824 neg r2, r2 lsl r2, r2, #0x10 asr r2, r2, #0x10 - bl FUN_02213354 + bl MOD07_02213354 ldr r0, _02212948 ; =0x00000B82 ldrb r0, [r4, r0] cmp r0, #0 @@ -1338,8 +1338,8 @@ _0221294C: .word 0x02214960 _02212950: .word 0x02214961 _02212954: .word 0x00000853 - thumb_func_start FUN_02212958 -FUN_02212958: ; 0x02212958 + thumb_func_start MOD07_02212958 +MOD07_02212958: ; 0x02212958 ldr r1, _02212964 ; =0x00000B81 mov r2, #0x10 strb r2, [r0, r1] @@ -1348,8 +1348,8 @@ FUN_02212958: ; 0x02212958 nop _02212964: .word 0x00000B81 - thumb_func_start FUN_02212968 -FUN_02212968: ; 0x02212968 + thumb_func_start MOD07_02212968 +MOD07_02212968: ; 0x02212968 push {r4, r5, r6, lr} add r4, r0, #0 ldr r0, _022129F0 ; =0x00000B82 @@ -1424,8 +1424,8 @@ _022129F0: .word 0x00000B82 _022129F4: .word 0xFFFF1FFF _022129F8: .word 0x04000040 - thumb_func_start FUN_022129FC -FUN_022129FC: ; 0x022129FC + thumb_func_start MOD07_022129FC +MOD07_022129FC: ; 0x022129FC push {r4, lr} add r4, r0, #0 ldr r0, _02212A34 ; =0x0000071A @@ -1454,8 +1454,8 @@ FUN_022129FC: ; 0x022129FC _02212A34: .word 0x0000071A _02212A38: .word 0x00000B81 - thumb_func_start FUN_02212A3C -FUN_02212A3C: ; 0x02212A3C + thumb_func_start MOD07_02212A3C +MOD07_02212A3C: ; 0x02212A3C push {r4, lr} add r4, r0, #0 ldr r0, _02212A5C ; =0x0000071A @@ -1474,12 +1474,12 @@ FUN_02212A3C: ; 0x02212A3C _02212A5C: .word 0x0000071A _02212A60: .word 0x00000B81 - thumb_func_start FUN_02212A64 -FUN_02212A64: ; 0x02212A64 + thumb_func_start MOD07_02212A64 +MOD07_02212A64: ; 0x02212A64 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 - bl FUN_02212BD4 + bl MOD07_02212BD4 cmp r0, #1 ldr r0, [r4] bne _02212AA8 @@ -1546,8 +1546,8 @@ _02212ADA: _02212AEC: .word 0x0000071B _02212AF0: .word 0x00000B81 - thumb_func_start FUN_02212AF4 -FUN_02212AF4: ; 0x02212AF4 + thumb_func_start MOD07_02212AF4 +MOD07_02212AF4: ; 0x02212AF4 push {r4, lr} add r4, r0, #0 ldr r0, _02212B40 ; =0x00000B82 @@ -1577,19 +1577,19 @@ _02212B1C: sub r1, r1, r2 lsl r1, r1, #0x10 asr r1, r1, #0x10 - bl FUN_022141CC + bl MOD07_022141CC ldr r1, _02212B40 ; =0x00000B82 add r0, r4, #0 ldrb r1, [r4, r1] - bl FUN_02213B20 + bl MOD07_02213B20 mov r0, #0 pop {r4, pc} nop _02212B40: .word 0x00000B82 _02212B44: .word 0x00000719 - thumb_func_start FUN_02212B48 -FUN_02212B48: ; 0x02212B48 + thumb_func_start MOD07_02212B48 +MOD07_02212B48: ; 0x02212B48 push {r4, lr} add r4, r0, #0 ldr r1, [r4] @@ -1604,8 +1604,8 @@ FUN_02212B48: ; 0x02212B48 .align 2, 0 _02212B60: .word 0x00000B7F - thumb_func_start FUN_02212B64 -FUN_02212B64: ; 0x02212B64 + thumb_func_start MOD07_02212B64 +MOD07_02212B64: ; 0x02212B64 push {r3, r4, r5, lr} add r5, r0, #0 add r4, r1, #0 @@ -1624,20 +1624,20 @@ _02212B76: cmp r0, #0 beq _02212B9C add r0, r4, #0 - bl FUN_02212E64 + bl MOD07_02212E64 add r0, r4, #0 - bl FUN_022137DC + bl MOD07_022137DC add r0, r4, #0 - bl FUN_02213380 + bl MOD07_02213380 b _02212BA8 _02212B9C: add r0, r4, #0 - bl FUN_022138F8 + bl MOD07_022138F8 add r0, r4, #0 - bl FUN_02214274 + bl MOD07_02214274 _02212BA8: add r0, r4, #0 - bl FUN_02212CEC + bl MOD07_02212CEC bl FUN_0201C29C ldr r0, [r4, #8] mov r1, #0 @@ -1654,8 +1654,8 @@ _02212BA8: pop {r3, r4, r5, pc} .align 2, 0 - thumb_func_start FUN_02212BD4 -FUN_02212BD4: ; 0x02212BD4 + thumb_func_start MOD07_02212BD4 +MOD07_02212BD4: ; 0x02212BD4 push {r3, lr} bl FUN_02031190 bl FUN_020313CC @@ -1683,8 +1683,8 @@ _02212BFE: pop {r3, pc} .align 2, 0 - thumb_func_start FUN_02212C04 -FUN_02212C04: ; 0x02212C04 + thumb_func_start MOD07_02212C04 +MOD07_02212C04: ; 0x02212C04 push {r3, r4, r5, r6, r7, lr} sub sp, #0x38 add r5, r0, #0 @@ -1757,8 +1757,8 @@ FUN_02212C04: ; 0x02212C04 _02212C9C: .word 0x02214AB8 _02212CA0: .word 0x0221498C - thumb_func_start FUN_02212CA4 -FUN_02212CA4: ; 0x02212CA4 + thumb_func_start MOD07_02212CA4 +MOD07_02212CA4: ; 0x02212CA4 push {lr} sub sp, #0x34 add r2, r0, #0 @@ -1795,8 +1795,8 @@ FUN_02212CA4: ; 0x02212CA4 add sp, #0x34 pop {pc} - thumb_func_start FUN_02212CEC -FUN_02212CEC: ; 0x02212CEC + thumb_func_start MOD07_02212CEC +MOD07_02212CEC: ; 0x02212CEC push {r3, r4, r5, r6, r7, lr} add r6, r0, #0 mov r0, #0x21 @@ -1831,8 +1831,8 @@ _02212D16: bl FUN_0200BD04 pop {r3, r4, r5, r6, r7, pc} - thumb_func_start FUN_02212D30 -FUN_02212D30: ; 0x02212D30 + thumb_func_start MOD07_02212D30 +MOD07_02212D30: ; 0x02212D30 push {r3, r4, r5, r6, r7, lr} add r5, r0, #0 mov r0, #0x21 @@ -1863,8 +1863,8 @@ _02212D64: pop {r3, r4, r5, r6, r7, pc} .align 2, 0 - thumb_func_start FUN_02212D68 -FUN_02212D68: ; 0x02212D68 + thumb_func_start MOD07_02212D68 +MOD07_02212D68: ; 0x02212D68 push {r4, lr} add r4, r0, #0 ldr r0, [r4, #0xc] @@ -1884,8 +1884,8 @@ FUN_02212D68: ; 0x02212D68 _02212D90: .word 0x027E0000 _02212D94: .word 0x00003FF8 - thumb_func_start FUN_02212D98 -FUN_02212D98: ; 0x02212D98 + thumb_func_start MOD07_02212D98 +MOD07_02212D98: ; 0x02212D98 push {r4, r5, lr} sub sp, #0x64 ldr r5, _02212E54 ; =0x0221496C @@ -1975,8 +1975,8 @@ _02212E58: .word 0x02214A2C _02212E5C: .word 0x02214A48 _02212E60: .word 0x02214A64 - thumb_func_start FUN_02212E64 -FUN_02212E64: ; 0x02212E64 + thumb_func_start MOD07_02212E64 +MOD07_02212E64: ; 0x02212E64 push {r4, lr} add r4, r0, #0 mov r0, #0x1f @@ -1995,8 +1995,8 @@ FUN_02212E64: ; 0x02212E64 bl FUN_02016A18 pop {r4, pc} - thumb_func_start FUN_02212E90 -FUN_02212E90: ; 0x02212E90 + thumb_func_start MOD07_02212E90 +MOD07_02212E90: ; 0x02212E90 push {r4, lr} sub sp, #0x10 mov r1, #0 @@ -2069,8 +2069,8 @@ FUN_02212E90: ; 0x02212E90 .align 2, 0 _02212F28: .word 0x000018C6 - thumb_func_start FUN_02212F2C -FUN_02212F2C: ; 0x02212F2C + thumb_func_start MOD07_02212F2C +MOD07_02212F2C: ; 0x02212F2C push {r3, lr} mov r0, #8 str r0, [sp] @@ -2083,8 +2083,8 @@ FUN_02212F2C: ; 0x02212F2C .align 2, 0 _02212F40: .word 0x04000050 - thumb_func_start FUN_02212F44 -FUN_02212F44: ; 0x02212F44 + thumb_func_start MOD07_02212F44 +MOD07_02212F44: ; 0x02212F44 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 ldr r4, _02213014 ; =0x022149E0 @@ -2100,16 +2100,16 @@ FUN_02212F44: ; 0x02212F44 add r1, r2, #0 add r0, r6, #0 mov r2, #0x15 - bl FUN_02212C04 + bl MOD07_02212C04 add r0, r6, #0 - bl FUN_0221301C + bl MOD07_0221301C ldr r4, _02213018 ; =0x02214C64 mov r7, #0 add r5, r6, #0 _02212F72: add r0, r6, #0 add r1, r4, #0 - bl FUN_02212CA4 + bl MOD07_02212CA4 mov r1, #0x66 lsl r1, r1, #2 str r0, [r5, r1] @@ -2123,65 +2123,65 @@ _02212F72: add r0, r6, #0 mvn r2, r2 add r3, r1, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r2, #0xff add r0, r6, #0 mov r1, #1 mvn r2, r2 mov r3, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r1, #2 add r2, r1, #0 add r0, r6, #0 add r2, #0xfe mov r3, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r1, #3 add r2, r1, #0 add r0, r6, #0 add r2, #0xfd mov r3, #0 - bl FUN_0221309C + bl MOD07_0221309C add r0, r6, #0 - bl FUN_022131C0 + bl MOD07_022131C0 mov r0, #0x21 mov r1, #0xc lsl r0, r0, #4 str r1, [r6, r0] add r0, r6, #0 - bl FUN_022132CC + bl MOD07_022132CC mov r1, #0 mov r2, #0xff add r0, r6, #0 mvn r2, r2 add r3, r1, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r2, #0xff add r0, r6, #0 mov r1, #1 mvn r2, r2 mov r3, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r1, #2 add r2, r1, #0 add r0, r6, #0 add r2, #0xfe mov r3, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r1, #3 add r2, r1, #0 add r0, r6, #0 add r2, #0xfd mov r3, #0 - bl FUN_02213354 + bl MOD07_02213354 add sp, #0x18 pop {r3, r4, r5, r6, r7, pc} nop _02213014: .word 0x022149E0 _02213018: .word 0x02214C64 - thumb_func_start FUN_0221301C -FUN_0221301C: ; 0x0221301C + thumb_func_start MOD07_0221301C +MOD07_0221301C: ; 0x0221301C push {r4, lr} sub sp, #0x10 add r4, r0, #0 @@ -2243,8 +2243,8 @@ FUN_0221301C: ; 0x0221301C .align 2, 0 _02213098: .word 0x0000B807 - thumb_func_start FUN_0221309C -FUN_0221309C: ; 0x0221309C + thumb_func_start MOD07_0221309C +MOD07_0221309C: ; 0x0221309C push {r4, r5, r6, r7, lr} sub sp, #0xc ldr r4, _022130F8 ; =0x02214950 @@ -2296,8 +2296,8 @@ _022130F8: .word 0x02214950 _022130FC: .word 0x00000B64 _02213100: .word 0x00000B68 - thumb_func_start FUN_02213104 -FUN_02213104: ; 0x02213104 + thumb_func_start MOD07_02213104 +MOD07_02213104: ; 0x02213104 push {r4, r5, r6, r7, lr} sub sp, #0xc add r6, r0, #0 @@ -2390,8 +2390,8 @@ _022131BC: add sp, #0xc pop {r4, r5, r6, r7, pc} - thumb_func_start FUN_022131C0 -FUN_022131C0: ; 0x022131C0 + thumb_func_start MOD07_022131C0 +MOD07_022131C0: ; 0x022131C0 push {r4, lr} add r4, r0, #0 ldr r2, [r4] @@ -2403,41 +2403,41 @@ FUN_022131C0: ; 0x022131C0 bne _022131EA mov r2, #6 mov r3, #0 - bl FUN_02213104 + bl MOD07_02213104 ldr r1, [r4] mov r2, #6 ldr r1, [r1, #8] add r0, r4, #0 add r3, r2, #0 - bl FUN_02213104 + bl MOD07_02213104 pop {r4, pc} _022131EA: mov r2, #3 mov r3, #0 - bl FUN_02213104 + bl MOD07_02213104 ldr r1, [r4] mov r2, #3 ldr r1, [r1, #0xc] add r0, r4, #0 add r3, r2, #0 - bl FUN_02213104 + bl MOD07_02213104 ldr r1, [r4] add r0, r4, #0 ldr r1, [r1, #8] mov r2, #3 mov r3, #6 - bl FUN_02213104 + bl MOD07_02213104 ldr r1, [r4] add r0, r4, #0 ldr r1, [r1, #0x10] mov r2, #3 mov r3, #9 - bl FUN_02213104 + bl MOD07_02213104 pop {r4, pc} .align 2, 0 - thumb_func_start FUN_02213220 -FUN_02213220: ; 0x02213220 + thumb_func_start MOD07_02213220 +MOD07_02213220: ; 0x02213220 push {r3, r4, r5, r6, r7, lr} sub sp, #0x40 add r4, r0, #0 @@ -2516,8 +2516,8 @@ _022132C0: .word 0x00000B44 _022132C4: .word 0x0000B807 _022132C8: .word 0x00000B48 - thumb_func_start FUN_022132CC -FUN_022132CC: ; 0x022132CC + thumb_func_start MOD07_022132CC +MOD07_022132CC: ; 0x022132CC push {r4, lr} add r4, r0, #0 ldr r1, [r4] @@ -2530,12 +2530,12 @@ FUN_022132CC: ; 0x022132CC add r0, r4, #0 ldr r2, [r2, #0x14] mov r1, #0 - bl FUN_02213220 + bl MOD07_02213220 ldr r2, [r4] add r0, r4, #0 ldr r2, [r2, #0x18] mov r1, #2 - bl FUN_02213220 + bl MOD07_02213220 ldr r2, [r4] add r0, r2, #0 add r0, #0x29 @@ -2545,23 +2545,23 @@ FUN_022132CC: ; 0x022132CC ldr r2, [r2, #0x1c] add r0, r4, #0 mov r1, #1 - bl FUN_02213220 + bl MOD07_02213220 ldr r2, [r4] add r0, r4, #0 ldr r2, [r2, #0x20] mov r1, #3 - bl FUN_02213220 + bl MOD07_02213220 pop {r4, pc} _0221331A: ldr r2, [r2, #0x14] add r0, r4, #0 mov r1, #1 - bl FUN_02213220 + bl MOD07_02213220 ldr r2, [r4] add r0, r4, #0 ldr r2, [r2, #0x18] mov r1, #3 - bl FUN_02213220 + bl MOD07_02213220 ldr r0, _0221334C ; =0x00000B4C mov r1, #0 ldr r0, [r4, r0] @@ -2576,8 +2576,8 @@ _02213348: .word 0x00000B44 _0221334C: .word 0x00000B4C _02213350: .word 0x00000B54 - thumb_func_start FUN_02213354 -FUN_02213354: ; 0x02213354 + thumb_func_start MOD07_02213354 +MOD07_02213354: ; 0x02213354 push {r3, r4, r5, lr} add r5, r1, #0 add r1, r2, #0 @@ -2600,8 +2600,8 @@ FUN_02213354: ; 0x02213354 .align 2, 0 _0221337C: .word 0x00000B48 - thumb_func_start FUN_02213380 -FUN_02213380: ; 0x02213380 + thumb_func_start MOD07_02213380 +MOD07_02213380: ; 0x02213380 push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 ldr r0, [r7] @@ -2628,8 +2628,8 @@ _022133AA: _022133AC: .word 0x00000B48 _022133B0: .word 0x00000B44 - thumb_func_start FUN_022133B4 -FUN_022133B4: ; 0x022133B4 + thumb_func_start MOD07_022133B4 +MOD07_022133B4: ; 0x022133B4 push {r3, r4} ldr r1, [r0] add r1, #0x29 @@ -2735,8 +2735,8 @@ _02213432: nop _02213480: .word 0x00000B64 - thumb_func_start FUN_02213484 -FUN_02213484: ; 0x02213484 + thumb_func_start MOD07_02213484 +MOD07_02213484: ; 0x02213484 push {r3, r4, r5, r6, r7, lr} sub sp, #0x18 ldr r4, _02213560 ; =0x022149C8 @@ -2752,18 +2752,18 @@ FUN_02213484: ; 0x02213484 add r1, r2, #0 add r0, r6, #0 mov r2, #0x17 - bl FUN_02212C04 + bl MOD07_02212C04 add r0, r6, #0 - bl FUN_0221301C + bl MOD07_0221301C add r0, r6, #0 - bl FUN_02213568 + bl MOD07_02213568 ldr r4, _02213564 ; =0x02214C64 mov r7, #0 add r5, r6, #0 _022134B8: add r0, r6, #0 add r1, r4, #0 - bl FUN_02212CA4 + bl MOD07_02212CA4 mov r1, #0x66 lsl r1, r1, #2 str r0, [r5, r1] @@ -2777,55 +2777,55 @@ _022134B8: add r0, r6, #0 mvn r2, r2 add r3, r1, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r2, #0xff add r0, r6, #0 mov r1, #1 mvn r2, r2 mov r3, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r1, #2 add r2, r1, #0 add r0, r6, #0 add r2, #0xfe mov r3, #0 - bl FUN_0221309C + bl MOD07_0221309C mov r1, #3 add r2, r1, #0 add r0, r6, #0 add r2, #0xfd mov r3, #0 - bl FUN_0221309C + bl MOD07_0221309C add r0, r6, #0 - bl FUN_022131C0 + bl MOD07_022131C0 add r0, r6, #0 - bl FUN_022135C8 + bl MOD07_022135C8 add r0, r6, #0 - bl FUN_022132CC + bl MOD07_022132CC mov r1, #0 mov r2, #0xff add r0, r6, #0 mvn r2, r2 add r3, r1, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r2, #0xff add r0, r6, #0 mov r1, #1 mvn r2, r2 mov r3, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r1, #2 add r2, r1, #0 add r0, r6, #0 add r2, #0xfe mov r3, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r1, #3 add r2, r1, #0 add r0, r6, #0 add r2, #0xfd mov r3, #0 - bl FUN_02213354 + bl MOD07_02213354 mov r0, #0x21 mov r1, #0xe lsl r0, r0, #4 @@ -2836,8 +2836,8 @@ _022134B8: _02213560: .word 0x022149C8 _02213564: .word 0x02214C64 - thumb_func_start FUN_02213568 -FUN_02213568: ; 0x02213568 + thumb_func_start MOD07_02213568 +MOD07_02213568: ; 0x02213568 push {r3, r4, lr} sub sp, #0xc add r4, r0, #0 @@ -2884,8 +2884,8 @@ FUN_02213568: ; 0x02213568 .align 2, 0 _022135C4: .word 0x0000B808 - thumb_func_start FUN_022135C8 -FUN_022135C8: ; 0x022135C8 + thumb_func_start MOD07_022135C8 +MOD07_022135C8: ; 0x022135C8 push {r4, lr} add r4, r0, #0 mov r0, #0x72 @@ -2916,7 +2916,7 @@ FUN_022135C8: ; 0x022135C8 bl FUN_0200C5C0 pop {r4, pc} _0221360A: - bl FUN_02212BD4 + bl MOD07_02212BD4 cmp r0, #1 ldr r0, [r4] bne _02213658 @@ -2995,8 +2995,8 @@ _0221369A: bl FUN_0200C5C0 pop {r4, pc} - thumb_func_start FUN_022136B4 -FUN_022136B4: ; 0x022136B4 + thumb_func_start MOD07_022136B4 +MOD07_022136B4: ; 0x022136B4 push {r4, lr} sub sp, #8 add r4, r0, #0 @@ -3032,9 +3032,9 @@ FUN_022136B4: ; 0x022136B4 ldr r0, [r4] mov r3, #0x12 ldr r0, [r0, #0x24] - ldr r1, _02213798 ; =FUN_02213834 + ldr r1, _02213798 ; =MOD07_02213834 str r0, [sp, #4] - ldr r0, _0221379C ; =FUN_02213810 + ldr r0, _0221379C ; =MOD07_02213810 ldr r2, [r4, r2] lsl r3, r3, #0xa bl FUN_02012CDC @@ -3095,12 +3095,12 @@ FUN_022136B4: ; 0x022136B4 _0221378C: .word 0x00000B58 _02213790: .word 0x04000060 _02213794: .word 0xFFFFCFFF -_02213798: .word FUN_02213834 -_0221379C: .word FUN_02213810 +_02213798: .word MOD07_02213834 +_0221379C: .word MOD07_02213810 _022137A0: .word 0x00000B5C - thumb_func_start FUN_022137A4 -FUN_022137A4: ; 0x022137A4 + thumb_func_start MOD07_022137A4 +MOD07_022137A4: ; 0x022137A4 push {r4, lr} add r4, r0, #0 ldr r0, [r4] @@ -3127,8 +3127,8 @@ _022137CA: nop _022137D8: .word 0x00000B5C - thumb_func_start FUN_022137DC -FUN_022137DC: ; 0x022137DC + thumb_func_start MOD07_022137DC +MOD07_022137DC: ; 0x022137DC push {r4, lr} add r4, r0, #0 ldr r0, [r4] @@ -3152,8 +3152,8 @@ _02213804: _02213808: .word 0x00000B5C _0221380C: .word 0x00000B58 - thumb_func_start FUN_02213810 -FUN_02213810: ; 0x02213810 + thumb_func_start MOD07_02213810 +MOD07_02213810: ; 0x02213810 push {r4, lr} ldr r3, _02213830 ; =0x021064B8 mov r2, #0 @@ -3171,8 +3171,8 @@ _02213828: nop _02213830: .word 0x021064B8 - thumb_func_start FUN_02213834 -FUN_02213834: ; 0x02213834 + thumb_func_start MOD07_02213834 +MOD07_02213834: ; 0x02213834 push {r4, lr} ldr r3, _02213854 ; =0x021064C0 mov r2, #1 @@ -3190,8 +3190,8 @@ _0221384C: nop _02213854: .word 0x021064C0 - thumb_func_start FUN_02213858 -FUN_02213858: ; 0x02213858 + thumb_func_start MOD07_02213858 +MOD07_02213858: ; 0x02213858 push {r4, r5, lr} sub sp, #0x64 ldr r5, _022138E8 ; =0x0221497C @@ -3263,8 +3263,8 @@ _022138EC: .word 0x02214A9C _022138F0: .word 0x02214A10 _022138F4: .word 0x02214A80 - thumb_func_start FUN_022138F8 -FUN_022138F8: ; 0x022138F8 + thumb_func_start MOD07_022138F8 +MOD07_022138F8: ; 0x022138F8 push {r4, lr} add r4, r0, #0 mov r0, #0x1e @@ -3283,8 +3283,8 @@ FUN_022138F8: ; 0x022138F8 bl FUN_02016A18 pop {r4, pc} - thumb_func_start FUN_02213924 -FUN_02213924: ; 0x02213924 + thumb_func_start MOD07_02213924 +MOD07_02213924: ; 0x02213924 push {r4, r5, lr} sub sp, #0x14 add r5, r0, #0 @@ -3353,8 +3353,8 @@ FUN_02213924: ; 0x02213924 _022139B4: .word 0x000004E4 _022139B8: .word 0x00000424 - thumb_func_start FUN_022139BC -FUN_022139BC: ; 0x022139BC + thumb_func_start MOD07_022139BC +MOD07_022139BC: ; 0x022139BC push {r4, r5, r6, r7, lr} sub sp, #0x1c add r5, r0, #0 @@ -3471,8 +3471,8 @@ _02213A94: .word 0x00000424 _02213A98: .word 0x00000504 _02213A9C: .word 0x000004E4 - thumb_func_start FUN_02213AA0 -FUN_02213AA0: ; 0x02213AA0 + thumb_func_start MOD07_02213AA0 +MOD07_02213AA0: ; 0x02213AA0 push {r3, r4, r5, r6, r7, lr} add r4, r0, #0 ldr r0, [r4, #0xc] @@ -3512,19 +3512,19 @@ _02213AC2: blo _02213AC2 pop {r3, r4, r5, r6, r7, pc} - thumb_func_start FUN_02213AEC -FUN_02213AEC: ; 0x02213AEC + thumb_func_start MOD07_02213AEC +MOD07_02213AEC: ; 0x02213AEC push {r4, lr} ldr r1, _02213B18 ; =0x00000544 add r4, r0, #0 add r1, r4, r1 mov r2, #1 - bl FUN_02213AA0 + bl MOD07_02213AA0 ldr r1, _02213B1C ; =0x00000844 add r0, r4, #0 add r1, r4, r1 mov r2, #2 - bl FUN_02213AA0 + bl MOD07_02213AA0 ldr r0, [r4, #0xc] mov r1, #1 bl FUN_0201AC68 @@ -3536,8 +3536,8 @@ FUN_02213AEC: ; 0x02213AEC _02213B18: .word 0x00000544 _02213B1C: .word 0x00000844 - thumb_func_start FUN_02213B20 -FUN_02213B20: ; 0x02213B20 + thumb_func_start MOD07_02213B20 +MOD07_02213B20: ; 0x02213B20 push {r3, r4, r5, r6, lr} sub sp, #0x1c add r5, r0, #0 @@ -3635,8 +3635,8 @@ _02213BCE: _02213BE4: .word 0x00000544 _02213BE8: .word 0x00000844 - thumb_func_start FUN_02213BEC -FUN_02213BEC: ; 0x02213BEC + thumb_func_start MOD07_02213BEC +MOD07_02213BEC: ; 0x02213BEC push {r4, r5, r6, r7, lr} sub sp, #0xc add r4, r0, #0 @@ -3786,8 +3786,8 @@ _02213D24: .word 0x00000225 _02213D28: .word 0x00000222 _02213D2C: .word 0x00000221 - thumb_func_start FUN_02213D30 -FUN_02213D30: ; 0x02213D30 + thumb_func_start MOD07_02213D30 +MOD07_02213D30: ; 0x02213D30 push {r4, lr} add r4, r0, #0 mov r0, #0x85 @@ -3800,16 +3800,16 @@ FUN_02213D30: ; 0x02213D30 add r0, r4, #0 ldr r1, [r1, #4] mov r2, #0 - bl FUN_02213BEC + bl MOD07_02213BEC ldr r1, [r4] add r0, r4, #0 ldr r1, [r1, #0xc] mov r2, #3 - bl FUN_02213BEC + bl MOD07_02213BEC pop {r4, pc} - thumb_func_start FUN_02213D5C -FUN_02213D5C: ; 0x02213D5C + thumb_func_start MOD07_02213D5C +MOD07_02213D5C: ; 0x02213D5C push {r4, lr} add r3, r0, #0 add r2, r1, #0 @@ -3870,8 +3870,8 @@ _02213DBC: .align 2, 0 _02213DC0: .word 0x0000021A - thumb_func_start FUN_02213DC4 -FUN_02213DC4: ; 0x02213DC4 + thumb_func_start MOD07_02213DC4 +MOD07_02213DC4: ; 0x02213DC4 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 @@ -3897,7 +3897,7 @@ _02213DE8: ldr r1, _02213F20 ; =0x02214DEC add r0, r5, #0 add r1, r1, r2 - bl FUN_02212CA4 + bl MOD07_02212CA4 mov r1, #0x66 lsl r1, r1, #2 str r0, [r4, r1] @@ -3959,7 +3959,7 @@ _02213E50: bl FUN_0200C66C ldr r1, [sp] add r0, r5, #0 - bl FUN_02213D5C + bl MOD07_02213D5C add r1, r0, #0 ldr r0, [r7, r4] bl FUN_0200C5C0 @@ -4043,8 +4043,8 @@ _02213F1C: .word 0x02214B28 _02213F20: .word 0x02214DEC _02213F24: .word 0x0000021E - thumb_func_start FUN_02213F28 -FUN_02213F28: ; 0x02213F28 + thumb_func_start MOD07_02213F28 +MOD07_02213F28: ; 0x02213F28 push {r3, r4, r5, lr} sub sp, #0x18 ldr r5, _02213F88 ; =0x022149F8 @@ -4060,26 +4060,26 @@ FUN_02213F28: ; 0x02213F28 add r1, r2, #0 add r0, r4, #0 mov r2, #0x1f - bl FUN_02212C04 + bl MOD07_02212C04 add r0, r4, #0 - bl FUN_02213F8C + bl MOD07_02213F8C add r0, r4, #0 - bl FUN_02214034 + bl MOD07_02214034 add r0, r4, #0 - bl FUN_022140BC + bl MOD07_022140BC add r0, r4, #0 - bl FUN_02214144 + bl MOD07_02214144 mov r5, #0 _02213F64: add r0, r4, #0 add r1, r5, #0 - bl FUN_02213DC4 + bl MOD07_02213DC4 add r5, r5, #1 cmp r5, #6 blo _02213F64 add r0, r4, #0 mov r1, #0x10 - bl FUN_022141CC + bl MOD07_022141CC mov r0, #0x21 mov r1, #0x1e lsl r0, r0, #4 @@ -4089,8 +4089,8 @@ _02213F64: nop _02213F88: .word 0x022149F8 - thumb_func_start FUN_02213F8C -FUN_02213F8C: ; 0x02213F8C + thumb_func_start MOD07_02213F8C +MOD07_02213F8C: ; 0x02213F8C push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 @@ -4168,8 +4168,8 @@ _02213FFA: _0221402C: .word 0x0000B808 _02214030: .word 0x0000B809 - thumb_func_start FUN_02214034 -FUN_02214034: ; 0x02214034 + thumb_func_start MOD07_02214034 +MOD07_02214034: ; 0x02214034 push {r4, lr} sub sp, #0x10 add r4, r0, #0 @@ -4233,8 +4233,8 @@ _022140B0: .word 0x0000B80F _022140B4: .word 0x0000B809 _022140B8: .word 0x0000B80A - thumb_func_start FUN_022140BC -FUN_022140BC: ; 0x022140BC + thumb_func_start MOD07_022140BC +MOD07_022140BC: ; 0x022140BC push {r4, lr} sub sp, #0x10 add r4, r0, #0 @@ -4298,8 +4298,8 @@ _02214138: .word 0x0000B810 _0221413C: .word 0x0000B80A _02214140: .word 0x0000B80B - thumb_func_start FUN_02214144 -FUN_02214144: ; 0x02214144 + thumb_func_start MOD07_02214144 +MOD07_02214144: ; 0x02214144 push {r4, lr} sub sp, #0x10 add r4, r0, #0 @@ -4363,8 +4363,8 @@ _022141C0: .word 0x0000B811 _022141C4: .word 0x0000B80B _022141C8: .word 0x0000B80C - thumb_func_start FUN_022141CC -FUN_022141CC: ; 0x022141CC + thumb_func_start MOD07_022141CC +MOD07_022141CC: ; 0x022141CC push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 str r0, [sp] @@ -4433,8 +4433,8 @@ _02214216: .align 2, 0 _02214248: .word 0x02214B28 - thumb_func_start FUN_0221424C -FUN_0221424C: ; 0x0221424C + thumb_func_start MOD07_0221424C +MOD07_0221424C: ; 0x0221424C push {r3, r4, r5, r6, r7, lr} add r7, r0, #0 add r5, r7, #0 @@ -4455,8 +4455,8 @@ _02214258: nop _02214270: .word 0x02214BA4 - thumb_func_start FUN_02214274 -FUN_02214274: ; 0x02214274 + thumb_func_start MOD07_02214274 +MOD07_02214274: ; 0x02214274 push {r3, r4, r5, lr} add r5, r0, #0 mov r4, #0 @@ -4470,8 +4470,8 @@ _0221427C: blo _0221427C pop {r3, r4, r5, pc} - thumb_func_start FUN_0221428C -FUN_0221428C: ; 0x0221428C + thumb_func_start MOD07_0221428C +MOD07_0221428C: ; 0x0221428C push {r4, r5, r6, r7, lr} sub sp, #0x24 ldr r4, [sp, #0x3c] @@ -4583,8 +4583,8 @@ _02214370: .word 0x000F0E00 _02214374: .word 0x00000222 _02214378: .word 0x00050600 - thumb_func_start FUN_0221437C -FUN_0221437C: ; 0x0221437C + thumb_func_start MOD07_0221437C +MOD07_0221437C: ; 0x0221437C push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 @@ -4644,8 +4644,8 @@ FUN_0221437C: ; 0x0221437C .align 2, 0 _022143F8: .word 0x000F0E00 - thumb_func_start FUN_022143FC -FUN_022143FC: ; 0x022143FC + thumb_func_start MOD07_022143FC +MOD07_022143FC: ; 0x022143FC push {r4, r5, r6, r7, lr} sub sp, #0x2c ldr r5, [sp, #0x44] @@ -4769,8 +4769,8 @@ FUN_022143FC: ; 0x022143FC _02214508: .word 0x0000021A _0221450C: .word 0x000F0E00 - thumb_func_start FUN_02214510 -FUN_02214510: ; 0x02214510 + thumb_func_start MOD07_02214510 +MOD07_02214510: ; 0x02214510 push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 @@ -4886,8 +4886,8 @@ _022145F4: .word 0x000004F6 _022145F8: .word 0x00000516 _022145FC: .word 0x00000536 - thumb_func_start FUN_02214600 -FUN_02214600: ; 0x02214600 + thumb_func_start MOD07_02214600 +MOD07_02214600: ; 0x02214600 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r7, r0, #0 @@ -4920,7 +4920,7 @@ FUN_02214600: ; 0x02214600 ldr r3, [sp, #0x10] add r0, r7, #0 str r6, [sp, #4] - bl FUN_0221428C + bl MOD07_0221428C ldr r0, [sp, #0x28] ldr r1, [sp, #8] str r0, [sp] @@ -4928,7 +4928,7 @@ FUN_02214600: ; 0x02214600 ldr r3, [sp, #0x10] add r0, r7, #0 str r6, [sp, #4] - bl FUN_0221437C + bl MOD07_0221437C ldr r0, [sp, #0x28] ldr r1, [sp, #8] str r0, [sp] @@ -4936,10 +4936,10 @@ FUN_02214600: ; 0x02214600 ldr r3, [sp, #0x10] add r0, r7, #0 str r6, [sp, #4] - bl FUN_022143FC + bl MOD07_022143FC add r0, r7, #0 add r1, r6, #0 - bl FUN_02214510 + bl MOD07_02214510 add r0, r5, r4 bl FUN_02019220 add r0, r5, r4 @@ -4955,8 +4955,8 @@ FUN_02214600: ; 0x02214600 pop {r4, r5, r6, r7, pc} .align 2, 0 - thumb_func_start FUN_0221469C -FUN_0221469C: ; 0x0221469C + thumb_func_start MOD07_0221469C +MOD07_0221469C: ; 0x0221469C push {r4, r5, r6, r7, lr} sub sp, #0x14 add r6, r0, #0 @@ -4997,7 +4997,7 @@ _022146DC: ldr r3, [sp, #8] add r0, r6, #0 str r4, [sp, #4] - bl FUN_02214600 + bl MOD07_02214600 _022146F6: add r4, r4, #1 add r5, #0x18 @@ -5016,8 +5016,8 @@ _022146F6: nop _0221471C: .word 0x00000192 - thumb_func_start FUN_02214720 -FUN_02214720: ; 0x02214720 + thumb_func_start MOD07_02214720 +MOD07_02214720: ; 0x02214720 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r4, r0, #0 @@ -5199,7 +5199,7 @@ _022148A0: mov r1, #0x10 bl FUN_02016998 add r7, r0, #0 - bl FUN_02212BD4 + bl MOD07_02212BD4 cmp r0, #1 ldr r0, [r4] bne _022148EA @@ -5270,6 +5270,6 @@ _0221494A: pop {r3, r4, r5, r6, r7, pc} .balign 4, 0 - .section .data + .section .rodata ; 0x02214950 - .incbin "baserom.nds", 0x186EF0, 0x7F0 + .incbin "baserom.nds", 0x186EF0, 0x7E4 diff --git a/arm9/modules/08/asm/module_08.s b/arm9/modules/08/asm/module_08.s index 50ed884f..77a1f93f 100644 --- a/arm9/modules/08/asm/module_08.s +++ b/arm9/modules/08/asm/module_08.s @@ -1003,13 +1003,13 @@ _02212544: thumb_func_start MOD08_0221255C
MOD08_0221255C: ; 0x0221255C
- ldr r3, _02212568 ; =0x0200CA45
+ ldr r3, _02212568 ; =FUN_0200CA44
str r0, [r1, #0x38]
ldr r0, _0221256C ; =MOD08_02212574
ldr r2, _02212570 ; =0x0000044C
bx r3
nop
-_02212568: .word 0x0200CA45
+_02212568: .word FUN_0200CA44
_0221256C: .word MOD08_02212574
_02212570: .word 0x0000044C
@@ -1803,7 +1803,7 @@ _02212AE8: bl MOD08_02212004
cmp r0, #0
bne _02212B3C
- bl FUN_02231678
+ bl MOD11_02231678
add r0, r5, #0
mov r1, #1
bl MOD08_02215588
@@ -1833,7 +1833,7 @@ _02212AE8: bl FUN_0201797C
b _02212B40
_02212B3C:
- bl FUN_02233560
+ bl MOD12_02233560
_02212B40:
mov r1, #0x1a
lsl r1, r1, #4
@@ -4691,10 +4691,10 @@ _022140F8: bl MOD08_02212004
cmp r0, #0
bne _02214108
- bl FUN_02231678
+ bl MOD11_02231678
b _0221410C
_02214108:
- bl FUN_02233560
+ bl MOD12_02233560
_0221410C:
ldr r0, [r4, #0x48]
mov r1, #2
@@ -6040,7 +6040,7 @@ MOD08_02214B38: ; 0x02214B38 thumb_func_start MOD08_02214B3C
MOD08_02214B3C: ; 0x02214B3C
ldr r1, [r0, #0x18]
- ldr r3, _02214B50 ; =0x020054C9
+ ldr r3, _02214B50 ; =FUN_020054C8
add r1, r1, #4
str r1, [r0, #0x18]
ldr r2, [r1]
@@ -6050,12 +6050,12 @@ MOD08_02214B3C: ; 0x02214B3C lsr r0, r0, #0x10
bx r3
.align 2, 0
-_02214B50: .word 0x020054C9
+_02214B50: .word FUN_020054C8
thumb_func_start MOD08_02214B54
MOD08_02214B54: ; 0x02214B54
ldr r1, [r0, #0x18]
- ldr r3, _02214B6C ; =0x020054F1
+ ldr r3, _02214B6C ; =FUN_020054F0
add r1, r1, #4
str r1, [r0, #0x18]
ldr r2, [r1]
@@ -6066,7 +6066,7 @@ MOD08_02214B54: ; 0x02214B54 mov r1, #0
bx r3
nop
-_02214B6C: .word 0x020054F1
+_02214B6C: .word FUN_020054F0
thumb_func_start MOD08_02214B70
MOD08_02214B70: ; 0x02214B70
@@ -7001,18 +7001,18 @@ MOD08_02215284: ; 0x02215284 add r2, r0, r2
mov r0, #0x4f
lsl r0, r0, #2
- ldr r3, _022152A4 ; =0x0200C645
+ ldr r3, _022152A4 ; =FUN_0200C644
ldr r0, [r2, r0]
bx r3
.align 2, 0
-_022152A4: .word 0x0200C645
+_022152A4: .word FUN_0200C644
thumb_func_start MOD08_022152A8
MOD08_022152A8: ; 0x022152A8
- ldr r3, _022152AC ; =0x02020C2D
+ ldr r3, _022152AC ; =ErrorHandling
bx r3
.align 2, 0
-_022152AC: .word 0x02020C2D
+_022152AC: .word ErrorHandling
thumb_func_start MOD08_022152B0
MOD08_022152B0: ; 0x022152B0
@@ -7633,13 +7633,13 @@ MOD08_022156C0: ; 0x022156C0 str r5, [r4]
str r6, [r4, #4]
add r0, r7, #0
- bl FUN_02230078
+ bl MOD11_02230078
str r0, [r4, #8]
add r0, r7, #0
- bl FUN_02230080
+ bl MOD11_02230080
str r0, [r4, #0xc]
add r0, r7, #0
- bl FUN_022300CC
+ bl MOD11_022300CC
str r0, [r4, #0x10]
mov r6, #0
add r5, r4, #0
@@ -7648,7 +7648,7 @@ _02215704: str r0, [r5, #0x24]
add r0, r7, #0
add r1, r6, #0
- bl FUN_022312D0
+ bl MOD11_022312D0
str r0, [r5, #0x34]
add r6, r6, #1
add r5, r5, #4
@@ -7657,11 +7657,11 @@ _02215704: add r1, r4, #0
add r0, r7, #0
add r1, #0x44
- bl FUN_02231504
+ bl MOD11_02231504
add r1, r4, #0
add r0, r7, #0
add r1, #0x48
- bl FUN_02231534
+ bl MOD11_02231534
mov r6, #0
add r7, r6, #0
_02215732:
@@ -8148,10 +8148,10 @@ MOD08_02215ACC: ; 0x02215ACC thumb_func_start MOD08_02215AF8
MOD08_02215AF8: ; 0x02215AF8
- ldr r3, _02215AFC ; =0x02006705
+ ldr r3, _02215AFC ; =FUN_02006704
bx r3
.align 2, 0
-_02215AFC: .word 0x02006705
+_02215AFC: .word FUN_02006704
thumb_func_start MOD08_02215B00
MOD08_02215B00: ; 0x02215B00
@@ -14296,11 +14296,11 @@ MOD08_022188BC: ; 0x022188BC thumb_func_start MOD08_022188D0
MOD08_022188D0: ; 0x022188D0
- ldr r3, _022188D8 ; =0x02012B69
+ ldr r3, _022188D8 ; =FUN_02012B68
ldr r0, [r0, #0x1c]
bx r3
nop
-_022188D8: .word 0x02012B69
+_022188D8: .word FUN_02012B68
thumb_func_start MOD08_022188DC
MOD08_022188DC: ; 0x022188DC
@@ -32594,19 +32594,19 @@ _02221D98: thumb_func_start MOD08_02221DF0
MOD08_02221DF0: ; 0x02221DF0
- ldr r3, _02221DF8 ; =0x0200C3DD
+ ldr r3, _02221DF8 ; =FUN_0200C3DC
ldr r0, [r0]
bx r3
nop
-_02221DF8: .word 0x0200C3DD
+_02221DF8: .word FUN_0200C3DC
thumb_func_start MOD08_02221DFC
MOD08_02221DFC: ; 0x02221DFC
- ldr r3, _02221E04 ; =0x0200C645
+ ldr r3, _02221E04 ; =FUN_0200C644
ldr r0, [r0]
bx r3
nop
-_02221E04: .word 0x0200C645
+_02221E04: .word FUN_0200C644
thumb_func_start MOD08_02221E08
MOD08_02221E08: ; 0x02221E08
@@ -34855,11 +34855,11 @@ _022230D4: .word 0xBF800000 thumb_func_start MOD08_022230D8
MOD08_022230D8: ; 0x022230D8
- ldr r3, _022230E0 ; =0x0200C3DD
+ ldr r3, _022230E0 ; =FUN_0200C3DC
ldr r0, [r0]
bx r3
nop
-_022230E0: .word 0x0200C3DD
+_022230E0: .word FUN_0200C3DC
thumb_func_start MOD08_022230E4
MOD08_022230E4: ; 0x022230E4
@@ -44142,11 +44142,11 @@ _02227B4E: thumb_func_start MOD08_02227B64
MOD08_02227B64: ; 0x02227B64
- ldr r3, _02227B6C ; =0x0200C7A1
+ ldr r3, _02227B6C ; =FUN_0200C7A0
add r2, r1, #2
bx r3
nop
-_02227B6C: .word 0x0200C7A1
+_02227B6C: .word FUN_0200C7A0
thumb_func_start MOD08_02227B70
MOD08_02227B70: ; 0x02227B70
@@ -45529,10 +45529,10 @@ _02228616: thumb_func_start MOD08_02228618
MOD08_02228618: ; 0x02228618
- ldr r3, _0222861C ; =0x02016A19
+ ldr r3, _0222861C ; =FUN_02016A18
bx r3
.align 2, 0
-_0222861C: .word 0x02016A19
+_0222861C: .word FUN_02016A18
thumb_func_start MOD08_02228620
MOD08_02228620: ; 0x02228620
@@ -45972,10 +45972,10 @@ _0222896C: thumb_func_start MOD08_02228970
MOD08_02228970: ; 0x02228970
- ldr r3, _02228974 ; =0x02016A19
+ ldr r3, _02228974 ; =FUN_02016A18
bx r3
.align 2, 0
-_02228974: .word 0x02016A19
+_02228974: .word FUN_02016A18
thumb_func_start MOD08_02228978
MOD08_02228978: ; 0x02228978
@@ -48264,12 +48264,12 @@ MOD08_02229A5C: ; 0x02229A5C add r1, r2, #0
str r0, [r2, #0x1c]
ldr r0, [r2, #0x30]
- ldr r3, _02229A7C ; =0x0200C7A1
+ ldr r3, _02229A7C ; =FUN_0200C7A0
add r1, #0xb8
add r2, #0xba
bx r3
nop
-_02229A7C: .word 0x0200C7A1
+_02229A7C: .word FUN_0200C7A0
thumb_func_start MOD08_02229A80
MOD08_02229A80: ; 0x02229A80
@@ -48971,27 +48971,27 @@ _02229FE0: .word 0x00001770 thumb_func_start MOD08_02229FE4
MOD08_02229FE4: ; 0x02229FE4
- ldr r3, _02229FEC ; =0x0200C645
+ ldr r3, _02229FEC ; =FUN_0200C644
ldr r0, [r0, #0x30]
bx r3
nop
-_02229FEC: .word 0x0200C645
+_02229FEC: .word FUN_0200C644
thumb_func_start MOD08_02229FF0
MOD08_02229FF0: ; 0x02229FF0
- ldr r3, _02229FF8 ; =0x0200C715
+ ldr r3, _02229FF8 ; =FUN_0200C714
ldr r0, [r0, #0x30]
bx r3
nop
-_02229FF8: .word 0x0200C715
+_02229FF8: .word FUN_0200C714
thumb_func_start MOD08_02229FFC
MOD08_02229FFC: ; 0x02229FFC
- ldr r3, _0222A004 ; =0x0200C899
+ ldr r3, _0222A004 ; =FUN_0200C898
ldr r0, [r0, #0x30]
bx r3
nop
-_0222A004: .word 0x0200C899
+_0222A004: .word FUN_0200C898
thumb_func_start MOD08_0222A008
MOD08_0222A008: ; 0x0222A008
@@ -49000,19 +49000,19 @@ MOD08_0222A008: ; 0x0222A008 thumb_func_start MOD08_0222A00C
MOD08_0222A00C: ; 0x0222A00C
- ldr r3, _0222A014 ; =0x0200C6C5
+ ldr r3, _0222A014 ; =FUN_0200C6C4
ldr r0, [r0, #0x30]
bx r3
nop
-_0222A014: .word 0x0200C6C5
+_0222A014: .word FUN_0200C6C4
thumb_func_start MOD08_0222A018
MOD08_0222A018: ; 0x0222A018
- ldr r3, _0222A020 ; =0x0200C6B1
+ ldr r3, _0222A020 ; =FUN_0200C6B0
ldr r0, [r0, #0x30]
bx r3
nop
-_0222A020: .word 0x0200C6B1
+_0222A020: .word FUN_0200C6B0
thumb_func_start MOD08_0222A024
MOD08_0222A024: ; 0x0222A024
@@ -49325,10 +49325,10 @@ _0222A24E: thumb_func_start MOD08_0222A258
MOD08_0222A258: ; 0x0222A258
- ldr r3, _0222A25C ; =0x0201341D
+ ldr r3, _0222A25C ; =FUN_0201341C
bx r3
.align 2, 0
-_0222A25C: .word 0x0201341D
+_0222A25C: .word FUN_0201341C
thumb_func_start MOD08_0222A260
MOD08_0222A260: ; 0x0222A260
@@ -49976,6 +49976,9 @@ _0222A758: .align 2, 0
_0222A75C: .word 0x0000013B
- .section .data
+ .section .rodata
; 0x0222A760
- .incbin "baserom.nds", 0x1A0100, 0x2E60
+ .incbin "baserom.nds", 0x1A0100, 0x2E38
+
+ .section .data
+ .incbin "baserom.nds", 0x1A2F40, 0x20
diff --git a/arm9/modules/09/asm/module_09.s b/arm9/modules/09/asm/module_09.s index 7e5ad9c1..27a9c5be 100644 --- a/arm9/modules/09/asm/module_09.s +++ b/arm9/modules/09/asm/module_09.s @@ -25,12 +25,12 @@ _02211E6E: bl Call_FillMemWithValue
str r5, [r4]
ldr r0, [r5, #8]
- bl FUN_0222FF68
+ bl MOD11_0222FF68
mov r1, #0x79
lsl r1, r1, #2
str r0, [r4, r1]
ldr r0, [r5, #8]
- bl FUN_022300CC
+ bl MOD11_022300CC
mov r1, #0x7a
lsl r1, r1, #2
str r0, [r4, r1]
@@ -41,7 +41,7 @@ _02211E6E: sub r0, r0, #2
strb r1, [r4, r0]
ldr r0, [r5, #8]
- bl FUN_02231238
+ bl MOD11_02231238
ldr r3, _02211EE4 ; =0x00002077
lsl r0, r0, #0x18
lsr r0, r0, #0x18
@@ -54,7 +54,7 @@ _02211E6E: strb r0, [r4, r3]
ldr r0, [r5, #8]
ldr r1, [r5, #0x28]
- bl FUN_02230260
+ bl MOD11_02230260
ldr r1, _02211EE8 ; =0x0000208F
strb r0, [r4, r1]
pop {r3, r4, r5, pc}
@@ -525,7 +525,7 @@ _0221228A: add r2, r4, r2
add r2, #0x2c
ldrb r2, [r2]
- bl FUN_02230370
+ bl MOD11_02230370
cmp r0, #1
bne _0221233A
ldrh r0, [r4, #0x22]
@@ -563,7 +563,7 @@ _022122BA: add r2, r4, r2
add r2, #0x2c
ldrb r2, [r2]
- bl FUN_02230014
+ bl MOD11_02230014
ldrb r2, [r4, #0x11]
mov r1, #0x50
add r3, r2, #0
@@ -1310,7 +1310,7 @@ _022128B6: add r2, r6, r2
add r2, #0x2c
ldrb r2, [r2]
- bl FUN_02230370
+ bl MOD11_02230370
cmp r0, #1
bne _0221290E
ldr r0, _02212960 ; =0x0000207C
@@ -1609,7 +1609,7 @@ _02212B0A: add r2, r5, r2
add r2, #0x2c
ldrb r2, [r2]
- bl FUN_02230014
+ bl MOD11_02230014
ldrb r2, [r5, #0x11]
mov r1, #0x50
mul r1, r2
@@ -1817,7 +1817,7 @@ _02212CA8: add r2, #0x2c
ldrb r2, [r2]
ldr r1, [r1, #0x28]
- bl FUN_02230014
+ bl MOD11_02230014
ldr r1, [sp, #4]
mov r7, #0
ldrb r2, [r1, #0x11]
@@ -2262,7 +2262,7 @@ MOD09_02212F8C: ; 0x02212F8C bl FUN_020030E8
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230E44
+ bl MOD11_02230E44
add r4, r0, #0
bl FUN_0200CD60
add r1, r0, #0
@@ -2950,11 +2950,11 @@ _02213610: .word 0x00002088 thumb_func_start MOD09_02213614
MOD09_02213614: ; 0x02213614
- ldr r3, _0221361C ; =0x02020989
+ ldr r3, _0221361C ; =FUN_02020988
add r0, r1, #0
bx r3
nop
-_0221361C: .word 0x02020989
+_0221361C: .word FUN_02020988
thumb_func_start MOD09_02213620
MOD09_02213620: ; 0x02213620
@@ -3465,11 +3465,11 @@ MOD09_022139D4: ; 0x022139D4 add r4, r0, #0
ldr r0, [r1, #8]
ldr r1, [r1, #0x28]
- bl FUN_022302BC
+ bl MOD11_022302BC
add r1, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230188
+ bl MOD11_02230188
add r2, r0, #0
ldr r0, _02213B74 ; =0x00001FAC
mov r1, #0
@@ -3661,7 +3661,7 @@ MOD09_02213B9C: ; 0x02213B9C push {r3, lr}
ldr r0, [r0]
ldr r0, [r0, #8]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
cmp r0, #0x4a
beq _02213BB8
cmp r0, #0x4b
@@ -3680,7 +3680,7 @@ MOD09_02213BBC: ; 0x02213BBC push {r3, lr}
ldr r0, [r0]
ldr r0, [r0, #8]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
cmp r0, #0x4a
beq _02213BD8
cmp r0, #0x4b
@@ -3742,10 +3742,10 @@ _02213C1C: add r0, r1, r0
ldrh r0, [r0, #0x34]
_02213C2A:
- ldr r3, _02213C30 ; =0x0206EA55
+ ldr r3, _02213C30 ; =FUN_0206EA54
bx r3
nop
-_02213C30: .word 0x0206EA55
+_02213C30: .word FUN_0206EA54
thumb_func_start MOD09_02213C34
MOD09_02213C34: ; 0x02213C34
@@ -3798,14 +3798,14 @@ MOD09_02213C84: ; 0x02213C84 beq _02213CA8
cmp r4, #0x42
beq _02213CA8
- bl FUN_02230214
+ bl MOD11_02230214
add r1, r4, #0
mov r2, #1
add r3, r7, #0
bl FUN_0206EDD4
_02213CA8:
add r0, r5, #0
- bl FUN_02230218
+ bl MOD11_02230218
add r1, r4, #0
add r2, r6, #0
bl FUN_0206F1E4
@@ -3969,12 +3969,12 @@ MOD09_02213DE0: ; 0x02213DE0 add r2, r0, #0
ldr r0, [r2, r1]
add r1, r1, #4
- ldr r3, _02213DF4 ; =0x020191A5
+ ldr r3, _02213DF4 ; =FUN_020191A4
ldrb r1, [r2, r1]
bx r3
nop
_02213DF0: .word 0x00002070
-_02213DF4: .word 0x020191A5
+_02213DF4: .word FUN_020191A4
thumb_func_start MOD09_02213DF8
MOD09_02213DF8: ; 0x02213DF8
@@ -8291,7 +8291,7 @@ MOD09_0221633C: ; 0x0221633C bl FUN_02002B60
ldr r0, [r4]
ldr r0, [r0, #8]
- bl FUN_02230E54
+ bl MOD11_02230E54
mov r3, #0
str r3, [sp]
str r0, [sp, #4]
@@ -8332,7 +8332,7 @@ MOD09_02216378: ; 0x02216378 ldrb r2, [r2]
ldr r0, [r0, #8]
ldr r1, [r1, #0x28]
- bl FUN_02230014
+ bl MOD11_02230014
mov r1, #0xa2
mov r2, #0
add r7, r0, #0
@@ -8705,7 +8705,7 @@ MOD09_022166D0: ; 0x022166D0 add r2, r3, r2
add r2, #0x2c
ldrb r2, [r2]
- bl FUN_02230014
+ bl MOD11_02230014
add r6, r0, #0
ldr r0, _02216728 ; =0x00001FA8
mov r1, #0x5f
@@ -8777,7 +8777,7 @@ MOD09_02216770: ; 0x02216770 stmia r2!, {r0, r1}
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
add r4, r0, #0
bl FUN_0200BB34
ldr r1, _022167B8 ; =0x00001FB4
@@ -8804,7 +8804,7 @@ MOD09_022167BC: ; 0x022167BC add r6, r0, #0
ldr r0, [r6]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
add r7, r0, #0
bl FUN_0206B888
mov r1, #0x13
@@ -8905,7 +8905,7 @@ MOD09_02216894: ; 0x02216894 add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
add r4, r0, #0
bl FUN_0207C2C8
mov r1, #0x27
@@ -8976,7 +8976,7 @@ MOD09_02216934: ; 0x02216934 add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
add r6, r0, #0
mov r0, #2
str r0, [sp]
@@ -9032,7 +9032,7 @@ MOD09_022169AC: ; 0x022169AC add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
add r4, r0, #0
bl FUN_020724C8
mov r1, #0x14
@@ -9103,7 +9103,7 @@ MOD09_02216A4C: ; 0x02216A4C add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
add r4, r0, #0
mov r0, #0x48
str r0, [sp]
@@ -9172,7 +9172,7 @@ MOD09_02216ADC: ; 0x02216ADC ldr r0, [r5]
add r4, r1, #0
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
mov r2, #0
add r1, sp, #0
strh r2, [r1]
@@ -9244,7 +9244,7 @@ MOD09_02216B74: ; 0x02216B74 add r7, r0, #0
ldr r0, [r7]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
ldr r6, _02216BA8 ; =0x00001FB8
str r0, [sp]
mov r4, #0
@@ -9328,7 +9328,7 @@ MOD09_02216C10: ; 0x02216C10 ldr r0, [r0, #8]
add r7, r1, #0
add r4, r2, #0
- bl FUN_02230078
+ bl MOD11_02230078
str r0, [sp, #8]
bl FUN_0206E12C
str r0, [sp, #0xc]
@@ -9363,7 +9363,7 @@ MOD09_02216C60: ; 0x02216C60 add r4, r2, #0
ldr r0, [r0, #8]
add r6, r1, #0
- bl FUN_02230078
+ bl MOD11_02230078
add r7, r0, #0
bl FUN_0206E2A8
str r0, [sp, #8]
@@ -10707,7 +10707,7 @@ MOD09_02217750: ; 0x02217750 add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0, #8]
- bl FUN_02230078
+ bl MOD11_02230078
ldr r3, _022177A8 ; =0x0000B00C
mov r2, #0x7a
str r3, [sp]
@@ -10719,7 +10719,7 @@ MOD09_02217750: ; 0x02217750 ldr r2, [r5, r2]
add r3, #0xc
add r4, r0, #0
- bl FUN_0225D3EC
+ bl MOD11_0225D3EC
ldr r3, _022177A8 ; =0x0000B00C
mov r0, #0
str r3, [sp]
@@ -10734,7 +10734,7 @@ MOD09_02217750: ; 0x02217750 ldr r2, [r2, #0xc]
add r0, r4, #0
add r3, #0xc
- bl FUN_0225D484
+ bl MOD11_0225D484
add r1, r0, #0
ldr r0, _022177B0 ; =0x00002088
ldr r0, [r5, r0]
@@ -10754,7 +10754,7 @@ MOD09_022177B4: ; 0x022177B4 ldr r0, _022177DC ; =0x00002088
ldr r0, [r4, r0]
bl MOD09_0221AC24
- bl FUN_0225D508
+ bl MOD11_0225D508
ldr r2, _022177E0 ; =0x0000B00C
ldr r0, _022177E4 ; =0x00001FB4
str r2, [sp]
@@ -10762,7 +10762,7 @@ MOD09_022177B4: ; 0x022177B4 ldr r0, [r4, r0]
add r1, #0xc
add r3, r2, #0
- bl FUN_0225D45C
+ bl MOD11_0225D45C
add sp, #4
pop {r3, r4, pc}
.align 2, 0
@@ -10914,7 +10914,7 @@ MOD09_022178E4: ; 0x022178E4 ldr r0, _02217908 ; =0x00002088
ldr r0, [r4, r0]
bl MOD09_0221AC24
- bl FUN_0225D648
+ bl MOD11_0225D648
pop {r4, pc}
.align 2, 0
_02217908: .word 0x00002088
@@ -12664,16 +12664,16 @@ MOD09_022186F0: ; 0x022186F0 bl Call_FillMemWithValue
str r5, [r4]
ldr r0, [r5]
- bl FUN_0222FF68
+ bl MOD11_0222FF68
str r0, [r4, #4]
ldr r0, [r5]
- bl FUN_022300CC
+ bl MOD11_022300CC
str r0, [r4, #8]
ldr r0, _02218788 ; =0x0000114A
mov r1, #0
strb r1, [r4, r0]
ldr r0, [r5]
- bl FUN_02230218
+ bl MOD11_02230218
add r6, r0, #0
mov r5, #0
_02218730:
@@ -12703,7 +12703,7 @@ _02218730: bl MOD09_02219C38
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #1
lsl r1, r1, #0xa
tst r0, r1
@@ -12872,7 +12872,7 @@ MOD09_02218888: ; 0x02218888 bl FUN_02002C50
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02230218
+ bl MOD11_02230218
bl FUN_0206F1B4
ldr r1, _02218950 ; =0x0000114D
strb r0, [r4, r1]
@@ -13340,7 +13340,7 @@ _02218C68: ldr r0, [r4]
ldr r1, [r4, #0x10]
add r2, r7, #0
- bl FUN_02230014
+ bl MOD11_02230014
add r6, r0, #0
ldr r0, [r5, #0x10]
mov r1, #0x2e
@@ -13376,7 +13376,7 @@ _02218CDA: str r0, [sp]
ldr r0, [r4]
ldr r1, [r4, #0x10]
- bl FUN_02230370
+ bl MOD11_02230370
cmp r0, #1
bne _02218D00
ldr r2, _02218E38 ; =0x0000114D
@@ -13391,7 +13391,7 @@ _02218D00: cmp r6, #3
bne _02218D68
ldr r0, [r4]
- bl FUN_0222FF74
+ bl MOD11_0222FF74
mov r1, #1
tst r0, r1
bne _02218D22
@@ -13500,10 +13500,10 @@ _02218DCE: _02218DF2:
ldr r0, [r4]
ldr r1, [r4, #0x10]
- bl FUN_0222FF88
+ bl MOD11_0222FF88
add r6, r0, #0
ldr r0, [r4]
- bl FUN_02230290
+ bl MOD11_02230290
add r4, r0, #0
add r0, r6, #0
bl FUN_0206B9AC
@@ -13674,7 +13674,7 @@ _02218F0C: cmp r0, #0
beq _02218F78
ldr r0, [r1]
- bl FUN_02230218
+ bl MOD11_02230218
add r6, r0, #0
mov r4, #0
_02218F4E:
@@ -13740,7 +13740,7 @@ _02218FB8: ; jump table .short _0221906E - _02218FB8 - 2 ; case 4
_02218FC2:
ldr r0, [r4, #0x38]
- bl FUN_0225D824
+ bl MOD11_0225D824
cmp r0, #1
bne _02218FFA
ldr r0, _022190C0 ; =0x000005DD
@@ -13780,7 +13780,7 @@ _02219004: b _022190B6
_02219014:
ldr r0, [r4, #0x38]
- bl FUN_0225D824
+ bl MOD11_0225D824
cmp r0, #1
bne _02219054
ldr r0, _022190C0 ; =0x000005DD
@@ -13824,7 +13824,7 @@ _0221905E: b _022190B6
_0221906E:
ldr r0, [r4, #0x38]
- bl FUN_0225D824
+ bl MOD11_0225D824
cmp r0, #1
bne _022190AE
ldr r0, _022190C0 ; =0x000005DD
@@ -14044,7 +14044,7 @@ MOD09_022191C0: ; 0x022191C0 bl FUN_020030E8
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02230E44
+ bl MOD11_02230E44
add r4, r0, #0
bl FUN_0200CD60
add r1, r0, #0
@@ -14263,11 +14263,11 @@ _02219420: .word 0x0000114C thumb_func_start MOD09_02219424
MOD09_02219424: ; 0x02219424
- ldr r3, _0221942C ; =0x02020989
+ ldr r3, _0221942C ; =FUN_02020988
add r0, r1, #0
bx r3
nop
-_0221942C: .word 0x02020989
+_0221942C: .word FUN_02020988
thumb_func_start MOD09_02219430
MOD09_02219430: ; 0x02219430
@@ -14275,13 +14275,13 @@ MOD09_02219430: ; 0x02219430 add r5, r0, #0
ldr r4, [r5]
ldr r0, [r4]
- bl FUN_0222FF78
+ bl MOD11_0222FF78
add r1, r0, #0
ldr r0, [r5]
ldr r3, [r4, #0x10]
ldr r0, [r0]
mov r2, #2
- bl FUN_0224C474
+ bl MOD11_0224C474
pop {r3, r4, r5, pc}
thumb_func_start MOD09_0221944C
@@ -14291,13 +14291,13 @@ MOD09_0221944C: ; 0x0221944C add r7, r3, #0
add r5, r0, #0
add r6, r2, #0
- bl FUN_02230214
+ bl MOD11_02230214
add r1, r4, #0
mov r2, #1
add r3, r7, #0
bl FUN_0206EDD4
add r0, r5, #0
- bl FUN_02230218
+ bl MOD11_02230218
add r1, r4, #0
add r2, r6, #0
bl FUN_0206F1E4
@@ -14391,11 +14391,11 @@ MOD09_02219510: ; 0x02219510 add r1, r0, #0
ldr r0, [r1, #0x2c]
add r1, #0x30
- ldr r3, _0221951C ; =0x020191A5
+ ldr r3, _0221951C ; =FUN_020191A4
ldrb r1, [r1]
bx r3
.align 2, 0
-_0221951C: .word 0x020191A5
+_0221951C: .word FUN_020191A4
thumb_func_start MOD09_02219520
MOD09_02219520: ; 0x02219520
@@ -15246,7 +15246,7 @@ MOD09_02219C08: ; 0x02219C08 bl FUN_02002B60
ldr r0, [r4]
ldr r0, [r0]
- bl FUN_02230E54
+ bl MOD11_02230E54
mov r3, #0
str r3, [sp]
str r0, [sp, #4]
@@ -15514,7 +15514,7 @@ MOD09_02219DF4: ; 0x02219DF4 stmia r2!, {r0, r1}
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02230078
+ bl MOD11_02230078
add r4, r0, #0
bl FUN_0200BB34
mov r1, #0xc3
@@ -15542,7 +15542,7 @@ MOD09_02219E40: ; 0x02219E40 add r6, r0, #0
ldr r0, [r6]
ldr r0, [r0]
- bl FUN_02230078
+ bl MOD11_02230078
add r7, r0, #0
mov r4, #0
_02219E52:
@@ -15624,7 +15624,7 @@ MOD09_02219EEC: ; 0x02219EEC add r6, r1, #0
ldr r0, [r0]
add r4, r2, #0
- bl FUN_02230078
+ bl MOD11_02230078
add r7, r0, #0
add r0, r6, #0
mov r1, #1
@@ -15676,7 +15676,7 @@ MOD09_02219F54: ; 0x02219F54 ldr r0, [r5]
add r4, r1, #0
ldr r0, [r0]
- bl FUN_02230078
+ bl MOD11_02230078
mov r2, #0
add r1, sp, #0
strh r2, [r1]
@@ -15745,7 +15745,7 @@ MOD09_02219FE4: ; 0x02219FE4 add r7, r0, #0
ldr r0, [r7]
ldr r0, [r0]
- bl FUN_02230078
+ bl MOD11_02230078
mov r6, #0x31
str r0, [sp]
mov r4, #0
@@ -15933,7 +15933,7 @@ MOD09_0221A158: ; 0x0221A158 add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02230078
+ bl MOD11_02230078
ldr r3, _0221A1AC ; =0x0000B4BE
add r4, r0, #0
str r3, [sp]
@@ -15944,7 +15944,7 @@ MOD09_0221A158: ; 0x0221A158 lsl r1, r1, #2
ldr r1, [r5, r1]
ldr r2, [r5, #8]
- bl FUN_0225D3EC
+ bl MOD11_0225D3EC
ldr r3, _0221A1AC ; =0x0000B4BE
mov r1, #0xc3
str r3, [sp]
@@ -15960,7 +15960,7 @@ MOD09_0221A158: ; 0x0221A158 ldr r1, [r5, r1]
ldr r2, [r2, #0xc]
add r0, r4, #0
- bl FUN_0225D484
+ bl MOD11_0225D484
add r1, r0, #0
ldr r0, [r5, #0x34]
bl MOD09_0221AC30
@@ -15976,7 +15976,7 @@ MOD09_0221A1B0: ; 0x0221A1B0 add r4, r0, #0
ldr r0, [r4, #0x34]
bl MOD09_0221AC24
- bl FUN_0225D508
+ bl MOD11_0225D508
ldr r3, _0221A1D8 ; =0x0000B4B9
mov r0, #0xc3
add r1, r3, #5
@@ -15984,7 +15984,7 @@ MOD09_0221A1B0: ; 0x0221A1B0 lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
- bl FUN_0225D45C
+ bl MOD11_0225D45C
add sp, #4
pop {r3, r4, pc}
nop
@@ -16037,7 +16037,7 @@ MOD09_0221A224: ; 0x0221A224 bl MOD09_0221AC5C
ldr r0, [r4, #0x34]
bl MOD09_0221AC24
- bl FUN_0225D648
+ bl MOD11_0225D648
pop {r4, pc}
.align 2, 0
@@ -16048,7 +16048,7 @@ MOD09_0221A244: ; 0x0221A244 add r5, r0, #0
ldr r0, [r5]
ldr r0, [r0]
- bl FUN_02230078
+ bl MOD11_02230078
ldr r3, _0221A290 ; =0x0000B4BD
add r4, r0, #0
str r3, [sp]
@@ -16059,7 +16059,7 @@ MOD09_0221A244: ; 0x0221A244 lsl r1, r1, #2
ldr r1, [r5, r1]
ldr r2, [r5, #8]
- bl FUN_0225D6A4
+ bl MOD11_0225D6A4
ldr r3, _0221A290 ; =0x0000B4BD
mov r1, #0xc3
str r3, [sp]
@@ -16074,7 +16074,7 @@ MOD09_0221A244: ; 0x0221A244 ldr r1, [r5, r1]
ldr r2, [r2, #0xc]
add r0, r4, #0
- bl FUN_0225D73C
+ bl MOD11_0225D73C
str r0, [r5, #0x38]
add sp, #0x14
pop {r4, r5, pc}
@@ -16087,7 +16087,7 @@ MOD09_0221A294: ; 0x0221A294 sub sp, #4
add r4, r0, #0
ldr r0, [r4, #0x38]
- bl FUN_0225D7B8
+ bl MOD11_0225D7B8
ldr r3, _0221A2B8 ; =0x0000B4B8
mov r0, #0xc3
add r1, r3, #5
@@ -16095,7 +16095,7 @@ MOD09_0221A294: ; 0x0221A294 lsl r0, r0, #2
ldr r0, [r4, r0]
add r2, r1, #0
- bl FUN_0225D714
+ bl MOD11_0225D714
add sp, #4
pop {r3, r4, pc}
nop
@@ -16115,14 +16115,14 @@ MOD09_0221A2BC: ; 0x0221A2BC ldr r0, [r4, #0x38]
ldr r1, [r1, r3]
ldr r2, [r2, r3]
- bl FUN_0225D800
+ bl MOD11_0225D800
ldr r0, [r4, #0x38]
mov r1, #0x3c
- bl FUN_0225D820
+ bl MOD11_0225D820
pop {r4, pc}
_0221A2E2:
ldr r0, [r4, #0x38]
- bl FUN_0225D80C
+ bl MOD11_0225D80C
pop {r4, pc}
nop
_0221A2EC: .word 0x0221BDC8
@@ -17275,10 +17275,10 @@ _0221AC12: thumb_func_start MOD09_0221AC1C
MOD09_0221AC1C: ; 0x0221AC1C
- ldr r3, _0221AC20 ; =0x02016A19
+ ldr r3, _0221AC20 ; =FUN_02016A18
bx r3
.align 2, 0
-_0221AC20: .word 0x02016A19
+_0221AC20: .word FUN_02016A18
thumb_func_start MOD09_0221AC24
MOD09_0221AC24: ; 0x0221AC24
@@ -17318,7 +17318,7 @@ MOD09_0221AC34: ; 0x0221AC34 ldrb r2, [r3, #2]
ldrb r3, [r3, #1]
ldr r0, [r0]
- bl FUN_0225D5DC
+ bl MOD11_0225D5DC
_0221AC58:
add sp, #4
pop {r3, r4, pc}
@@ -17352,7 +17352,7 @@ MOD09_0221AC68: ; 0x0221AC68 ldrb r2, [r3, #2]
ldrb r3, [r3, #1]
ldr r0, [r4]
- bl FUN_0225D5DC
+ bl MOD11_0225D5DC
_0221AC92:
pop {r3, r4, r5, pc}
@@ -17389,7 +17389,7 @@ _0221ACA8: ldrb r2, [r3, #2]
ldrb r3, [r3, #1]
ldr r0, [r0]
- bl FUN_0225D5DC
+ bl MOD11_0225D5DC
ldr r0, _0221ACE0 ; =0x000005DC
bl FUN_020054C8
_0221ACD4:
@@ -17622,7 +17622,7 @@ _0221AE70: ldrb r2, [r3, #1]
ldrb r3, [r3, #2]
ldr r0, [r5]
- bl FUN_0225D5DC
+ bl MOD11_0225D5DC
ldr r0, _0221AEC0 ; =0x000005DC
bl FUN_020054C8
_0221AE8A:
@@ -17658,6 +17658,6 @@ _0221AEBC: .word 0x021C48B8 _0221AEC0: .word 0x000005DC
_0221AEC4: .word 0x000005DD
- .section .data
+ .section .rodata
; 0x0221AEC8
- .incbin "baserom.nds", 0x1AC068, 0x1138
+ .incbin "baserom.nds", 0x1AC068, 0x1120
diff --git a/arm9/modules/10/asm/module_10_dummy.s b/arm9/modules/10/asm/module_10_dummy.s index bae0dc2d..8b137891 100644 --- a/arm9/modules/10/asm/module_10_dummy.s +++ b/arm9/modules/10/asm/module_10_dummy.s @@ -1,5 +1 @@ - .include "asm/macros.inc" - .include "global.inc" - .section .data - .balign 4, 0 - .space 32 + diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s index 8288a770..9112a837 100644 --- a/arm9/modules/11/asm/module_11.s +++ b/arm9/modules/11/asm/module_11.s @@ -879,7 +879,7 @@ _0222DC42: bl MOD11_02231390
bl MOD11_0222EFDC
mov r0, #5
- bl FUN_02211F5C
+ bl MOD08_02211F5C
add r1, r4, #0
add r1, #0x8c
str r0, [r1]
@@ -1316,7 +1316,7 @@ _0222E10A: add r0, r4, #0
add r0, #0x8c
ldr r0, [r0]
- bl FUN_02212024
+ bl MOD08_02212024
ldr r0, [r4, #0x30]
bl MOD11_0223D284
ldr r0, [r4, #0x44]
@@ -3053,10 +3053,10 @@ _0222EFD0: .word 0x04000580 thumb_func_start MOD11_0222EFD4
MOD11_0222EFD4: ; 0x0222EFD4
- ldr r3, _0222EFD8 ; =0x020223BD
+ ldr r3, _0222EFD8 ; =FUN_020223BC
bx r3
.align 2, 0
-_0222EFD8: .word 0x020223BD
+_0222EFD8: .word FUN_020223BC
thumb_func_start MOD11_0222EFDC
MOD11_0222EFDC: ; 0x0222EFDC
@@ -3211,7 +3211,7 @@ MOD11_0222F100: ; 0x0222F100 _0222F118:
cmp r0, #0
bne _0222F120
- bl FUN_02215A44
+ bl MOD08_02215A44
_0222F120:
add r0, r4, #0
add r0, #0x88
@@ -3379,7 +3379,7 @@ _0222F27C: _0222F280: .word 0x00002434
thumb_func_start MOD11_0222F284
-MOD11_0222F284: ; 0x0222F284
+MOD11_0222F284: ; 0x0222F284 __sinit
push {r3, lr}
bl FUN_02033590
cmp r0, #0
@@ -4358,7 +4358,7 @@ _0222FAA4: mov r0, #7
lsl r0, r0, #6
ldr r0, [r4, r0]
- bl FUN_02211E60
+ bl MOD07_02211E60
mov r0, #1
pop {r4, r5, r6, pc}
nop
@@ -4547,7 +4547,7 @@ _0222FC2A: mov r0, #7
lsl r0, r0, #6
ldr r0, [r4, r0]
- bl FUN_02211E60
+ bl MOD07_02211E60
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
@@ -4813,7 +4813,7 @@ _0222FE40: strb r1, [r0]
_0222FE48:
add r0, r6, #0
- bl FUN_02211E60
+ bl MOD07_02211E60
mov r0, #1
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
@@ -5432,11 +5432,11 @@ MOD11_02230218: ; 0x02230218 MOD11_0223021C: ; 0x0223021C
lsl r1, r1, #2
add r0, r0, r1
- ldr r3, _02230228 ; =0x020239CD
+ ldr r3, _02230228 ; =FUN_020239CC
ldr r0, [r0, #0x48]
bx r3
nop
-_02230228: .word 0x020239CD
+_02230228: .word FUN_020239CC
thumb_func_start MOD11_0223022C
MOD11_0223022C: ; 0x0223022C
@@ -7002,11 +7002,11 @@ _02230E40: MOD11_02230E44: ; 0x02230E44
mov r1, #0x6d
lsl r1, r1, #2
- ldr r3, _02230E50 ; =0x02025085
+ ldr r3, _02230E50 ; =FUN_02025084
ldr r0, [r0, r1]
bx r3
nop
-_02230E50: .word 0x02025085
+_02230E50: .word FUN_02025084
thumb_func_start MOD11_02230E54
MOD11_02230E54: ; 0x02230E54
@@ -7029,11 +7029,11 @@ _02230E62: MOD11_02230E70: ; 0x02230E70
mov r1, #0x6d
lsl r1, r1, #2
- ldr r3, _02230E7C ; =0x02025049
+ ldr r3, _02230E7C ; =FUN_02025048
ldr r0, [r0, r1]
bx r3
nop
-_02230E7C: .word 0x02025049
+_02230E7C: .word FUN_02025048
thumb_func_start MOD11_02230E80
MOD11_02230E80: ; 0x02230E80
@@ -7605,22 +7605,22 @@ _02231288: .word 0x0000242C MOD11_0223128C: ; 0x0223128C
mov r2, #0x86
lsl r2, r2, #2
- ldr r3, _02231298 ; =0x0202A0E9
+ ldr r3, _02231298 ; =FUN_0202A0E8
ldr r0, [r0, r2]
bx r3
nop
-_02231298: .word 0x0202A0E9
+_02231298: .word FUN_0202A0E8
thumb_func_start MOD11_0223129C
MOD11_0223129C: ; 0x0223129C
mov r1, #0x86
lsl r1, r1, #2
ldr r0, [r0, r1]
- ldr r3, _022312A8 ; =0x0202A171
+ ldr r3, _022312A8 ; =FUN_0202A170
mov r1, #0x16
bx r3
.align 2, 0
-_022312A8: .word 0x0202A171
+_022312A8: .word FUN_0202A170
thumb_func_start MOD11_022312AC
MOD11_022312AC: ; 0x022312AC
@@ -8186,13 +8186,13 @@ _02231664: thumb_func_start MOD11_02231668
MOD11_02231668: ; 0x02231668
- ldr r3, _02231674 ; =0x02024595
+ ldr r3, _02231674 ; =FUN_02024594
lsl r1, r1, #0x10
ldr r0, [r0, #0x60]
lsr r1, r1, #0x10
bx r3
nop
-_02231674: .word 0x02024595
+_02231674: .word FUN_02024594
thumb_func_start MOD11_02231678
MOD11_02231678: ; 0x02231678
@@ -9450,19 +9450,19 @@ MOD11_022320C8: ; 0x022320C8 thumb_func_start MOD11_022320EC
MOD11_022320EC: ; 0x022320EC
- ldr r3, _022320F4 ; =0x0200AD5D
+ ldr r3, _022320F4 ; =FUN_0200AD5C
ldr r0, [r0, #0x14]
bx r3
nop
-_022320F4: .word 0x0200AD5D
+_022320F4: .word FUN_0200AD5C
thumb_func_start MOD11_022320F8
MOD11_022320F8: ; 0x022320F8
- ldr r3, _02232100 ; =0x0200AE39
+ ldr r3, _02232100 ; =FUN_0200AE38
ldr r0, [r0, #0x14]
bx r3
nop
-_02232100: .word 0x0200AE39
+_02232100: .word FUN_0200AE38
thumb_func_start MOD11_02232104
MOD11_02232104: ; 0x02232104
@@ -9504,35 +9504,35 @@ _02232134: thumb_func_start MOD11_02232148
MOD11_02232148: ; 0x02232148
- ldr r3, _02232150 ; =0x0200AF19
+ ldr r3, _02232150 ; =FUN_0200AF18
ldr r0, [r0, #0x14]
bx r3
nop
-_02232150: .word 0x0200AF19
+_02232150: .word FUN_0200AF18
thumb_func_start MOD11_02232154
MOD11_02232154: ; 0x02232154
- ldr r3, _0223215C ; =0x0200ADCD
+ ldr r3, _0223215C ; =FUN_0200ADCC
ldr r0, [r0, #0x14]
bx r3
nop
-_0223215C: .word 0x0200ADCD
+_0223215C: .word FUN_0200ADCC
thumb_func_start MOD11_02232160
MOD11_02232160: ; 0x02232160
- ldr r3, _02232168 ; =0x0200AF51
+ ldr r3, _02232168 ; =FUN_0200AF50
ldr r0, [r0, #0x14]
bx r3
nop
-_02232168: .word 0x0200AF51
+_02232168: .word FUN_0200AF50
thumb_func_start MOD11_0223216C
MOD11_0223216C: ; 0x0223216C
- ldr r3, _02232174 ; =0x0200AF89
+ ldr r3, _02232174 ; =FUN_0200AF88
ldr r0, [r0, #0x14]
bx r3
nop
-_02232174: .word 0x0200AF89
+_02232174: .word FUN_0200AF88
thumb_func_start MOD11_02232178
MOD11_02232178: ; 0x02232178
@@ -9560,11 +9560,11 @@ MOD11_0223219C: ; 0x0223219C thumb_func_start MOD11_022321A0
MOD11_022321A0: ; 0x022321A0
- ldr r3, _022321A8 ; =0x0200AFBD
+ ldr r3, _022321A8 ; =FUN_0200AFBC
ldr r0, [r0, #0x14]
bx r3
nop
-_022321A8: .word 0x0200AFBD
+_022321A8: .word FUN_0200AFBC
thumb_func_start MOD11_022321AC
MOD11_022321AC: ; 0x022321AC
@@ -28775,7 +28775,7 @@ _0223B916: bl FUN_0201D658
str r0, [r4, #0x54]
add r0, sp, #0xd0
- bl FUN_021EEF0C
+ bl MOD16_021EEF0C
str r0, [r4, #0x50]
mov r0, #0xd
add sp, #0x158
@@ -28783,7 +28783,7 @@ _0223B916: pop {r3, r4, r5, r6, r7, pc}
_0223B990:
ldr r0, [r4, #0x50]
- bl FUN_021EEF84
+ bl MOD16_021EEF84
cmp r0, #0
beq _0223BA4C
ldr r0, _0223BBE0 ; =0x021C48B8
@@ -28818,12 +28818,12 @@ _0223B9BC: bl FUN_02003210
ldr r0, [r4, #0x50]
mov r1, #0
- bl FUN_021EEF9C
+ bl MOD05_021EEF9C
add sp, #0x158
pop {r3, r4, r5, r6, r7, pc}
_0223B9E4:
ldr r0, [r4, #0x50]
- bl FUN_021EEF98
+ bl MOD16_021EEF98
add r5, r0, #0
mov r1, #0
mov r2, #4
@@ -28843,7 +28843,7 @@ _0223B9E4: pop {r3, r4, r5, r6, r7, pc}
_0223BA12:
ldr r0, [r4, #0x50]
- bl FUN_021EEF68
+ bl MOD05_021EEF68
ldr r0, [r4, #0x54]
bl FUN_0201D674
ldr r0, [r4]
@@ -31766,7 +31766,7 @@ MOD11_0223D1DC: ; 0x0223D1DC add r0, r5, #0
add r1, r4, #0
add r3, r2, #0
- bl FUN_021EFBF4
+ bl MOD16_021EFBF4
_0223D216:
ldr r0, _0223D230 ; =0x000003DE
add r0, r4, r0
@@ -69264,16 +69264,16 @@ _0224F1AA: strb r0, [r4, #0x12]
pop {r3, r4, r5, r6, pc}
_0224F1B2:
- bl FUN_02212384
+ bl MOD08_02212384
add r0, r5, #0
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
beq _0224F1C2
_0224F1C0:
b _0224F2D8
_0224F1C2:
add r0, r5, #0
- bl FUN_022123B0
+ bl MOD08_022123B0
mov r0, #0xff
add sp, #0x6c
strb r0, [r4, #0x12]
@@ -69929,7 +69929,7 @@ _0224F6F6: cmp r0, #0
beq _0224F772
mov r0, #5
- bl FUN_02211F5C
+ bl MOD08_02211F5C
str r0, [r4, #0x24]
add r0, r4, #0
add r0, #0x81
@@ -69962,15 +69962,15 @@ _0224F772: pop {r4, r5, pc}
_0224F77C:
ldr r0, [r4, #0x24]
- bl FUN_02212384
+ bl MOD08_02212384
ldr r0, [r4, #0x24]
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _0224F7C0
ldr r0, [r4, #0x24]
- bl FUN_022123B0
+ bl MOD08_022123B0
ldr r0, [r4, #0x24]
- bl FUN_02212024
+ bl MOD08_02212024
mov r0, #0xff
add r4, #0x83
add sp, #0x9c
@@ -70142,7 +70142,7 @@ _0224F84C: bl FUN_02007558
ldr r0, [r4]
mov r1, #5
- bl FUN_0221590C
+ bl MOD08_0221590C
str r0, [r4, #0x10]
add r0, r4, #0
add r0, #0x83
@@ -70211,7 +70211,7 @@ _0224F980: b _0224FD86
_0224F982:
ldr r0, [r4, #0x10]
- bl FUN_02215918
+ bl MOD08_02215918
add r0, r4, #0
add r0, #0x8e
ldrh r0, [r0]
@@ -70576,13 +70576,13 @@ _0224FC92: strb r0, [r4]
pop {r3, r4, r5, r6, pc}
_0224FC9C:
- bl FUN_02212384
+ bl MOD08_02212384
add r0, r5, #0
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _0224FD86
add r0, r5, #0
- bl FUN_022123B0
+ bl MOD08_022123B0
add r0, r4, #0
add r0, #0x83
ldrb r0, [r0]
@@ -70801,16 +70801,16 @@ _0224FE10: strb r0, [r4]
pop {r4, r5, r6, pc}
_0224FE6C:
- bl FUN_02212384
+ bl MOD08_02212384
add r0, r5, #0
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
beq _0224FE7C
_0224FE7A:
b _0224FFDE
_0224FE7C:
add r0, r5, #0
- bl FUN_022123B0
+ bl MOD08_022123B0
add r0, r4, #0
add r0, #0x6b
ldrb r0, [r0]
@@ -72875,7 +72875,7 @@ MOD11_02250F44: ; 0x02250F44 ldrb r1, [r4, #9]
add r5, r0, #0
ldr r0, [r4]
- bl FUN_021F45A4
+ bl MOD16_021F45A4
add r2, r0, #0
ldrb r1, [r4, #9]
ldr r0, [r4]
@@ -73200,7 +73200,7 @@ _022511FA: _02251206:
ldrb r1, [r6, #0x1d]
ldr r0, [r6]
- bl FUN_021EFD8C
+ bl MOD16_021EFD8C
cmp r0, #0xff
beq _0225128C
add r4, r0, #1
@@ -73651,7 +73651,7 @@ _02251540: ldr r0, [r4, #4]
str r1, [r0, #0x18]
ldr r0, [r4, #4]
- bl FUN_022186F0
+ bl MOD09_022186F0
add sp, #0x1fc
mov r0, #3
add sp, #0x14
@@ -73663,7 +73663,7 @@ _022515C2: add r0, #0x25
strb r1, [r0]
ldr r0, [r4, #4]
- bl FUN_022186F0
+ bl MOD09_022186F0
ldrb r0, [r4, #0xe]
add r0, r0, #1
strb r0, [r4, #0xe]
@@ -73872,7 +73872,7 @@ _0225175C: str r1, [r0, #0x1c]
ldr r0, [r4, #8]
ldr r0, [r0, #4]
- bl FUN_02211E60
+ bl MOD07_02211E60
ldrb r0, [r4, #0xe]
add sp, #0x1fc
add sp, #0x14
@@ -74908,15 +74908,15 @@ _02251F76: _02251FA2:
ldr r0, [r4]
bl MOD11_02230070
- bl FUN_02212384
+ bl MOD08_02212384
ldr r0, [r4]
bl MOD11_02230070
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _02251FEA
ldr r0, [r4]
bl MOD11_02230070
- bl FUN_022123B0
+ bl MOD08_022123B0
ldrb r0, [r4, #0xe]
add sp, #0x1fc
add sp, #0x14
@@ -75381,7 +75381,7 @@ _0225239C: strb r1, [r0, #0x15]
_022523A2:
ldr r0, [r4, #4]
- bl FUN_02211E60
+ bl MOD07_02211E60
ldrb r0, [r4, #0xa]
add sp, #0x24
add r0, r0, #1
@@ -75499,13 +75499,13 @@ _02252490: _0225249A:
ldr r0, [r5]
add r1, r6, #0
- bl FUN_021F4A30
+ bl MOD16_021F4A30
add r4, r0, #0
cmp r4, #6
bne _022524FE
ldr r0, [r5]
add r1, r6, #0
- bl FUN_021F4698
+ bl MOD16_021F4698
add r4, r0, #0
cmp r4, #6
bne _022524FE
@@ -76114,13 +76114,13 @@ _02252974: pop {r3, r4, r5, pc}
_02252996:
ldr r0, [r4, #0xc]
- bl FUN_02212384
+ bl MOD08_02212384
ldr r0, [r4, #0xc]
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _022529B8
ldr r0, [r4, #0xc]
- bl FUN_022123B0
+ bl MOD08_022123B0
add r0, r4, #0
add r0, #0x6a
ldrb r0, [r0]
@@ -76437,13 +76437,13 @@ _02252BBA: strb r0, [r4]
pop {r4, r5, r6, pc}
_02252C16:
- bl FUN_02212384
+ bl MOD08_02212384
add r0, r5, #0
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _02252C8A
add r0, r5, #0
- bl FUN_022123B0
+ bl MOD08_022123B0
add r0, r4, #0
add r0, #0x66
ldrb r0, [r0]
@@ -76862,13 +76862,13 @@ _02252F18: strb r0, [r4]
pop {r4, r5, r6, pc}
_02252F74:
- bl FUN_02212384
+ bl MOD08_02212384
add r0, r5, #0
- bl FUN_022123A0
+ bl MOD08_022123A0
cmp r0, #0
bne _02252FB6
add r0, r5, #0
- bl FUN_022123B0
+ bl MOD08_022123B0
add r0, r4, #0
add r0, #0x62
ldrb r0, [r0]
@@ -77477,7 +77477,7 @@ _02253440: add r1, #0x32
strb r0, [r1]
ldr r0, [r4, #4]
- bl FUN_02211E60
+ bl MOD07_02211E60
ldrb r0, [r4, #0xa]
add sp, #0xc
add r0, r0, #1
@@ -77782,7 +77782,7 @@ _022536EE: ldrb r2, [r4, #0xd]
ldr r0, [r4]
mov r1, #5
- bl FUN_022156C0
+ bl MOD08_022156C0
ldr r1, [r4, #4]
add r1, #0x8c
str r0, [r1]
@@ -77817,7 +77817,7 @@ _02253734: ldr r0, [r4, #4]
add r0, #0x8c
ldr r0, [r0]
- bl FUN_02215988
+ bl MOD08_02215988
cmp r0, #3
bne _0225374E
ldrb r0, [r4, #0xe]
@@ -77831,7 +77831,7 @@ _0225374E: ldrb r1, [r4, #0xd]
add r0, #0x8c
ldr r0, [r0]
- bl FUN_0221594C
+ bl MOD08_0221594C
ldr r0, [r4, #4]
mov r1, #0
add r0, #0x8c
@@ -79584,7 +79584,7 @@ _02254452: ldr r1, [sp, #0xc]
lsr r2, r2, #0x10
add r3, sp, #0x1c
- bl FUN_02212048
+ bl MOD08_02212048
add sp, #0xac
pop {r4, r5, r6, r7, pc}
@@ -91571,11 +91571,11 @@ _0225A3F0: .word MOD11_0225A3F4 thumb_func_start MOD11_0225A3F4
MOD11_0225A3F4: ; 0x0225A3F4
- ldr r3, _0225A3FC ; =0x0200C5A9
+ ldr r3, _0225A3FC ; =FUN_0200C5A8
add r0, r1, #0
bx r3
nop
-_0225A3FC: .word 0x0200C5A9
+_0225A3FC: .word FUN_0200C5A8
thumb_func_start MOD11_0225A400
MOD11_0225A400: ; 0x0225A400
@@ -92513,7 +92513,7 @@ MOD11_0225AB34: ; 0x0225AB34 mov r2, #5
mov r3, #1
str r4, [sp]
- bl FUN_02211E7C
+ bl MOD08_02211E7C
pop {r3, r4, r5, pc}
thumb_func_start MOD11_0225AB50
@@ -98209,12 +98209,12 @@ _0225D650: thumb_func_start MOD11_0225D664
MOD11_0225D664: ; 0x0225D664
- ldr r3, _0225D66C ; =0x0200C645
+ ldr r3, _0225D66C ; =FUN_0200C644
ldr r0, [r0, #0x10]
mov r1, #0
bx r3
.align 2, 0
-_0225D66C: .word 0x0200C645
+_0225D66C: .word FUN_0200C644
thumb_func_start MOD11_0225D670
MOD11_0225D670: ; 0x0225D670
@@ -98632,6 +98632,20 @@ MOD11_0225D98C: ; 0x0225D98C strb r1, [r0, #0x1e]
bx lr
- .section .data
+ .section .rodata
; 0x0225D998
- .incbin "baserom.nds", 0x1dd7d8, 0x2608
+ .incbin "baserom.nds", 0x1dd7d8, 0x2580
+
+ ; Stupid hack to override alignment
+ ; .section .sinit
+ ; 0x0225FF18
+ .global SDK_OVERLAY.MODULE_11.SINIT_START
+ .global SDK_OVERLAY.MODULE_11.SINIT_END
+SDK_OVERLAY.MODULE_11.SINIT_START:
+ .word MOD11_0222F284
+ .word 0
+SDK_OVERLAY.MODULE_11.SINIT_END:
+
+ .section .data
+ ; 0x0225FF20
+ .incbin "baserom.nds", 0x1dfd60, 0x80
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s index 36381bcf..f7999898 100644 --- a/arm9/modules/12/asm/module_12.s +++ b/arm9/modules/12/asm/module_12.s @@ -154,10 +154,10 @@ MOD12_0222D5C0: ; 0x0222D5C0 str r0, [r4, #0x10] bl MOD12_0222DCAC mov r0, #0x15 - bl FUN_02211F5C + bl MOD08_02211F5C mov r1, #1 str r0, [r4, #0x2c] - bl FUN_02211FF0 + bl MOD08_02211FF0 mov r0, #0 mov r1, #0x1a mov r2, #0xbf @@ -434,7 +434,7 @@ MOD12_0222D9B0: ; 0x0222D9B0 add r4, r0, #0 bl FUN_02012EAC ldr r0, [r4, #0x2c] - bl FUN_02212024 + bl MOD08_02212024 add r0, r4, #0 bl MOD12_0222DDC4 add r0, r4, #0 @@ -568,7 +568,7 @@ MOD12_0222DB18: ; 0x0222DB18 bne _0222DB3E ldr r0, [r4, #0x10] bl FUN_02006ED4 - bl FUN_02215A44 + bl MOD08_02215A44 ldr r0, [r4, #0x28] bl FUN_0200BC1C bl FUN_0200BC38 @@ -3637,7 +3637,7 @@ _0222F3A4: ldr r0, [r5, r7] cmp r0, #0 beq _0222F3AE - bl FUN_021DD540 + bl MOD17_021DD540 _0222F3AE: add r6, r6, #1 add r5, #0x10 @@ -3748,7 +3748,7 @@ _0222F4B0: ldr r0, [r5, r7] cmp r0, #0 beq _0222F4BA - bl FUN_021DD58C + bl MOD17_021DD58C _0222F4BA: add r4, r4, #1 add r5, #0x10 @@ -3791,13 +3791,13 @@ _0222F50E: ldr r0, [r5, r7] cmp r0, #0 beq _0222F518 - bl FUN_021DD518 + bl MOD17_021DD518 _0222F518: add r4, r4, #1 add r5, #0x10 cmp r4, #4 blt _0222F50E - bl FUN_02215A44 + bl MOD08_02215A44 ldr r0, [r6, #0x2c] bl FUN_0200BC1C bl FUN_0200BC38 @@ -4162,12 +4162,12 @@ _0222F820: .word 0x000080EA thumb_func_start MOD12_0222F824 MOD12_0222F824: ; 0x0222F824 - ldr r3, _0222F82C ; =0x0200C369 + ldr r3, _0222F82C ; =FUN_0200C368 ldr r0, [r0, #0x2c] ldr r1, _0222F830 ; =0x000080EA bx r3 .align 2, 0 -_0222F82C: .word 0x0200C369 +_0222F82C: .word FUN_0200C368 _0222F830: .word 0x000080EA thumb_func_start MOD12_0222F834 @@ -5629,7 +5629,7 @@ _0223045A: ldr r0, [r5, #0x18] cmp r0, #0 beq _02230464 - bl FUN_021DD58C + bl MOD17_021DD58C _02230464: add r6, r6, #1 add r5, #0x10 @@ -5737,13 +5737,13 @@ _0223053C: ldr r0, [r5, #0x18] cmp r0, #0 beq _02230546 - bl FUN_021DD518 + bl MOD17_021DD518 _02230546: add r4, r4, #1 add r5, #0x10 cmp r4, #4 blt _0223053C - bl FUN_02215A44 + bl MOD08_02215A44 ldr r0, [r6, #0x70] bl FUN_0200BC1C bl FUN_0200BC38 @@ -5933,10 +5933,10 @@ MOD12_022306A4: ; 0x022306A4 thumb_func_start MOD12_022306F0 MOD12_022306F0: ; 0x022306F0 - ldr r3, _022306F4 ; =0x02012CC9 + ldr r3, _022306F4 ; =FUN_02012CC8 bx r3 .align 2, 0 -_022306F4: .word 0x02012CC9 +_022306F4: .word FUN_02012CC8 thumb_func_start MOD12_022306F8 MOD12_022306F8: ; 0x022306F8 @@ -7445,7 +7445,7 @@ _022312B4: .word 0x00001158 _022312B8: .word 0x00000127 thumb_func_start MOD12_022312BC -MOD12_022312BC: ; 0x022312BC +MOD12_022312BC: ; 0x022312BC __sinit push {r3, lr} ldr r0, _022312D0 ; =SDK_OVERLAY_MODULE_08_ID mov r1, #2 @@ -7537,10 +7537,10 @@ _02231374: .word 0x04000580 thumb_func_start MOD12_02231378 MOD12_02231378: ; 0x02231378 - ldr r3, _0223137C ; =0x020223BD + ldr r3, _0223137C ; =FUN_020223BC bx r3 .align 2, 0 -_0223137C: .word 0x020223BD +_0223137C: .word FUN_020223BC thumb_func_start MOD12_02231380 MOD12_02231380: ; 0x02231380 @@ -7680,12 +7680,12 @@ MOD12_02231490: ; 0x02231490 lsr r3, r3, #1 sub r1, r1, r3 _0223149A: - ldr r3, _022314A4 ; =0x020118C5 + ldr r3, _022314A4 ; =FUN_020118C4 ldr r0, [r0] sub r2, #8 bx r3 nop -_022314A4: .word 0x020118C5 +_022314A4: .word FUN_020118C4 thumb_func_start MOD12_022314A8 MOD12_022314A8: ; 0x022314A8 @@ -11875,10 +11875,10 @@ _02233498: .word 0x000080F6 thumb_func_start MOD12_0223349C MOD12_0223349C: ; 0x0223349C - ldr r3, _022334A0 ; =0x0200C3DD + ldr r3, _022334A0 ; =FUN_0200C3DC bx r3 .align 2, 0 -_022334A0: .word 0x0200C3DD +_022334A0: .word FUN_0200C3DC thumb_func_start MOD12_022334A4 MOD12_022334A4: ; 0x022334A4 @@ -11953,10 +11953,10 @@ _02233530: .word 0x0224519C thumb_func_start MOD12_02233534 MOD12_02233534: ; 0x02233534 - ldr r3, _02233538 ; =0x0200C3DD + ldr r3, _02233538 ; =FUN_0200C3DC bx r3 .align 2, 0 -_02233538: .word 0x0200C3DD +_02233538: .word FUN_0200C3DC thumb_func_start MOD12_0223353C MOD12_0223353C: ; 0x0223353C @@ -12621,10 +12621,10 @@ _02233A60: .word 0x0224533C thumb_func_start MOD12_02233A64 MOD12_02233A64: ; 0x02233A64 - ldr r3, _02233A68 ; =0x0200C3DD + ldr r3, _02233A68 ; =FUN_0200C3DC bx r3 .align 2, 0 -_02233A68: .word 0x0200C3DD +_02233A68: .word FUN_0200C3DC thumb_func_start MOD12_02233A6C MOD12_02233A6C: ; 0x02233A6C @@ -18670,7 +18670,7 @@ _022368EA: ldrh r2, [r4, r2] ldr r0, [r0, #0x2c] add r1, sp, #0xbc - bl FUN_02212048 + bl MOD08_02212048 ldr r0, [r4] ldr r1, [r0, #0xc] ldrb r0, [r4, #0xd] @@ -18745,15 +18745,15 @@ _0223696A: _022369D6: ldr r0, [r4] ldr r0, [r0, #0x2c] - bl FUN_02212384 + bl MOD08_02212384 ldr r0, [r4] ldr r0, [r0, #0x2c] - bl FUN_022123A0 + bl MOD08_022123A0 cmp r0, #0 bne _02236A8E ldr r0, [r4] ldr r0, [r0, #0x2c] - bl FUN_022123B0 + bl MOD08_022123B0 add r1, r5, #0 add r1, #0xf2 ldrb r0, [r4, r1] @@ -25566,12 +25566,12 @@ _02239B78: .word 0x02245F4A thumb_func_start MOD12_02239B7C MOD12_02239B7C: ; 0x02239B7C - ldr r3, _02239B84 ; =0x0201BD71 + ldr r3, _02239B84 ; =FUN_0201BD70 add r0, #0xd0 ldrb r0, [r0] bx r3 .align 2, 0 -_02239B84: .word 0x0201BD71 +_02239B84: .word FUN_0201BD70 thumb_func_start MOD12_02239B88 MOD12_02239B88: ; 0x02239B88 @@ -25709,7 +25709,7 @@ _02239C6C: ldr r0, [r1, r0] cmp r0, #0 beq _02239C8E - bl FUN_021DD540 + bl MOD17_021DD540 ldr r1, [r4] lsl r0, r5, #4 add r2, r1, r0 @@ -25755,7 +25755,7 @@ _02239C90: add r1, r2, r1 add r1, #0xf8 ldr r1, [r1] - bl FUN_021DD4F4 + bl MOD17_021DD4F4 ldrb r1, [r7] lsl r1, r1, #4 add r2, r6, r1 @@ -25767,7 +25767,7 @@ _02239C90: add r0, r6, r0 ldr r0, [r0, r1] mov r1, #0 - bl FUN_021DD594 + bl MOD17_021DD594 ldr r0, _02239D78 ; =0x04000048 mov r2, #0x3f ldrh r1, [r0] @@ -25888,7 +25888,7 @@ _02239DB4: add r2, #8 ldr r1, [r5, r1] ldr r2, [r5, r2] - bl FUN_021DD678 + bl MOD17_021DD678 ldrb r0, [r4, #0x11] ldr r1, [r4] lsl r0, r0, #4 @@ -25897,7 +25897,7 @@ _02239DB4: lsl r0, r0, #4 ldr r0, [r1, r0] mov r1, #1 - bl FUN_021DD594 + bl MOD17_021DD594 ldrb r0, [r4, #0x10] add r0, r0, #1 strb r0, [r4, #0x10] @@ -26577,7 +26577,7 @@ _0223A32C: ldr r1, [r4, #0x14] asr r2, r2, #8 asr r1, r1, #8 - bl FUN_021DD678 + bl MOD17_021DD678 pop {r3, r4, r5, pc} _0223A348: ldrb r0, [r4, #0x11] @@ -26587,7 +26587,7 @@ _0223A348: mov r0, #0xf2 lsl r0, r0, #4 ldr r0, [r1, r0] - bl FUN_021DD540 + bl MOD17_021DD540 ldrb r0, [r4, #0x11] mov r2, #0 ldr r1, [r4] @@ -27456,7 +27456,7 @@ _0223A9A8: add r1, r2, r1 add r1, #0xf8 ldr r1, [r1] - bl FUN_021DD4F4 + bl MOD17_021DD4F4 add r1, r5, #0 add r1, #0x46 ldrb r1, [r1] @@ -27474,7 +27474,7 @@ _0223A9A8: add r0, r2, r0 ldr r0, [r0, r1] mov r1, #0 - bl FUN_021DD594 + bl MOD17_021DD594 ldrb r0, [r5, #0x10] add sp, #0x10 add r0, r0, #1 @@ -27722,7 +27722,7 @@ _0223ABFA: ldr r0, [r0, r3] add r2, r1, #0 add r3, #0xe0 - bl FUN_021DD60C + bl MOD05_021DD60C ldrb r1, [r4, #0xe] ldr r2, [r4] mov r0, #0x80 @@ -27744,7 +27744,7 @@ _0223ABFA: sub r0, r1, #4 ldr r0, [r2, r0] mov r1, #1 - bl FUN_021DD594 + bl MOD17_021DD594 ldrb r0, [r4, #0xc] add r0, r0, #1 strb r0, [r4, #0xc] @@ -27775,7 +27775,7 @@ _0223AC68: ldr r1, [r4, #4] ldr r2, [r4, #8] add r3, #0xe0 - bl FUN_021DD60C + bl MOD05_021DD60C ldrb r0, [r4, #0xe] mov r2, #0xf2 lsl r2, r2, #4 @@ -27788,7 +27788,7 @@ _0223AC68: ldr r1, [r3, r1] ldr r2, [r3, r2] add r3, r6, #0 - bl FUN_021DD678 + bl MOD17_021DD678 mov r0, #1 ldr r1, [r4, #4] lsl r0, r0, #0xc @@ -30653,26 +30653,26 @@ _0223C27C: add r1, r2, r1 add r1, #0xf8 ldr r1, [r1] - bl FUN_021DD4F4 + bl MOD17_021DD4F4 lsl r1, r6, #4 add r2, r5, r1 str r0, [r2, #0x18] ldr r1, [r2, #0x1c] ldr r2, [r2, #0x20] - bl FUN_021DD620 + bl MOD17_021DD620 cmp r4, #0 ble _0223C2EE lsl r0, r6, #4 add r0, r5, r0 ldr r0, [r0, #0x18] mov r1, #0 - bl FUN_021DD59C + bl MOD17_021DD59C lsl r0, r6, #4 add r0, r5, r0 mov r1, #0x63 ldr r0, [r0, #0x18] mvn r1, r1 - bl FUN_021DD6CC + bl MOD17_021DD6CC _0223C2EE: add r4, r4, #1 _0223C2F0: @@ -30692,7 +30692,7 @@ MOD12_0223C300: ; 0x0223C300 add r6, r4, #0 _0223C308: ldr r0, [r5, #4] - bl FUN_021DD540 + bl MOD17_021DD540 add r0, r5, #0 add r0, #0x98 add r4, r4, #1 @@ -31736,11 +31736,11 @@ _0223CB14: .word 0x00009CAE MOD12_0223CB18: ; 0x0223CB18 mov r1, #2 lsl r1, r1, #8 - ldr r3, _0223CB24 ; =0x0200CAB5 + ldr r3, _0223CB24 ; =FUN_0200CAB4 ldr r0, [r0, r1] bx r3 nop -_0223CB24: .word 0x0200CAB5 +_0223CB24: .word FUN_0200CAB4 thumb_func_start MOD12_0223CB28 MOD12_0223CB28: ; 0x0223CB28 @@ -32469,7 +32469,7 @@ _0223D0BC: ldr r0, [r4] add r2, r1, #0 lsl r3, r3, #0xc - bl FUN_021DD60C + bl MOD05_021DD60C pop {r4, pc} .align 2, 0 @@ -33486,7 +33486,7 @@ _0223D836: str r2, [r4, #8] ldr r0, [r4] ldr r1, [r4, #4] - bl FUN_021DD620 + bl MOD17_021DD620 ldr r0, [sp, #4] add sp, #0xc pop {r4, r5, r6, r7, pc} @@ -33692,7 +33692,7 @@ _0223D9BE: str r2, [r6, #8] ldr r0, [r6] ldr r1, [r6, #4] - bl FUN_021DD620 + bl MOD17_021DD620 ldr r0, [sp, #0xc] add sp, #0x14 pop {r4, r5, r6, r7, pc} @@ -33896,7 +33896,7 @@ _0223DB8A: ldr r0, [r4] lsl r1, r1, #8 lsr r1, r1, #0x10 - bl FUN_021DD604 + bl MOD17_021DD604 ldr r0, [sp] cmp r0, #0 bne _0223DBA0 @@ -33947,7 +33947,7 @@ _0223DBB0: str r2, [r4, #8] ldr r0, [r4] ldr r1, [r4, #4] - bl FUN_021DD620 + bl MOD17_021DD620 ldr r0, [sp, #0x10] add sp, #0x1c pop {r4, r5, r6, r7, pc} @@ -34529,7 +34529,7 @@ _0223E01C: ldr r0, [r2] ldr r1, [r2, #4] ldr r2, [r2, #8] - bl FUN_021DD620 + bl MOD17_021DD620 _0223E054: pop {r3, r4, r5, r6, r7, pc} nop @@ -34820,12 +34820,12 @@ _0223E2A4: .word 0x02246226 thumb_func_start MOD12_0223E2A8 MOD12_0223E2A8: ; 0x0223E2A8 ldr r1, _0223E2B0 ; =0x00000AB8 - ldr r3, _0223E2B4 ; =0x0201BD71 + ldr r3, _0223E2B4 ; =FUN_0201BD70 ldrb r0, [r0, r1] bx r3 .align 2, 0 _0223E2B0: .word 0x00000AB8 -_0223E2B4: .word 0x0201BD71 +_0223E2B4: .word FUN_0201BD70 thumb_func_start MOD12_0223E2B8 MOD12_0223E2B8: ; 0x0223E2B8 @@ -34963,11 +34963,11 @@ _0223E3CA: strb r0, [r1, #0xc] _0223E3CE: ldr r0, [r1, #4] - ldr r3, _0223E3D8 ; =0x0200C59D + ldr r3, _0223E3D8 ; =FUN_0200C59C ldr r0, [r0] bx r3 nop -_0223E3D8: .word 0x0200C59D +_0223E3D8: .word FUN_0200C59C thumb_func_start MOD12_0223E3DC MOD12_0223E3DC: ; 0x0223E3DC @@ -35014,12 +35014,12 @@ _0223E438: .word 0x00027100 thumb_func_start MOD12_0223E43C MOD12_0223E43C: ; 0x0223E43C - ldr r3, _0223E444 ; =0x0200C645 + ldr r3, _0223E444 ; =FUN_0200C644 ldr r0, [r0, #4] mov r1, #0 bx r3 .align 2, 0 -_0223E444: .word 0x0200C645 +_0223E444: .word FUN_0200C644 thumb_func_start MOD12_0223E448 MOD12_0223E448: ; 0x0223E448 @@ -35306,7 +35306,7 @@ _0223E66A: ldr r0, [r2] ldr r1, [r2, #4] ldr r2, [r2, #8] - bl FUN_021DD620 + bl MOD17_021DD620 pop {r3, r4, r5, pc} _0223E686: ldr r0, [r4, #0xc] @@ -35385,7 +35385,7 @@ _0223E702: ldr r0, [r2] ldr r1, [r2, #4] ldr r2, [r2, #8] - bl FUN_021DD620 + bl MOD17_021DD620 pop {r3, r4, r5, pc} _0223E720: ldr r0, [r4, #0xc] @@ -36094,11 +36094,11 @@ _0223EC9E: ldr r0, [r5, #0x18] bne _0223ECAE add r1, r7, #0 - bl FUN_021DD6B8 + bl MOD17_021DD6B8 b _0223ECB4 _0223ECAE: add r1, r6, #0 - bl FUN_021DD6B8 + bl MOD17_021DD6B8 _0223ECB4: add r4, r4, #1 add r5, #0x10 @@ -36121,7 +36121,7 @@ MOD12_0223ECD0: ; 0x0223ECD0 _0223ECD8: ldr r0, [r5, #0x18] add r1, r6, #0 - bl FUN_021DD6B8 + bl MOD17_021DD6B8 add r4, r4, #1 add r5, #0x10 cmp r4, #4 @@ -36273,7 +36273,7 @@ MOD12_0223EDAC: ; 0x0223EDAC _0223EDF4: ldr r0, [r4] add r1, r6, #0 - bl FUN_021DD6B8 + bl MOD17_021DD6B8 ldr r0, _0223EE0C ; =MOD12_0223EE14 ldr r2, _0223EE10 ; =0x00009C40 add r1, r4, #0 @@ -36313,7 +36313,7 @@ _0223EE30: add r1, sp, #4 ldrh r1, [r1] ldr r0, [r5] - bl FUN_021DD6B8 + bl MOD17_021DD6B8 ldrb r0, [r5, #0x10] cmp r4, r0 blt _0223EE6A @@ -38823,11 +38823,11 @@ _0224013C: str r0, [r5, #0x10] ldr r0, [r5, #8] ldr r0, [r0] - bl FUN_021DD59C + bl MOD17_021DD59C ldr r0, [r5, #8] mov r1, #0x64 ldr r0, [r0] - bl FUN_021DD6CC + bl MOD17_021DD6CC b _02240184 _02240164: bl MOD12_0223C210 @@ -38837,12 +38837,12 @@ _02240164: ldr r0, [r5, #8] mov r1, #0 ldr r0, [r0] - bl FUN_021DD59C + bl MOD17_021DD59C ldr r0, [r5, #8] mov r1, #0x63 ldr r0, [r0] mvn r1, r1 - bl FUN_021DD6CC + bl MOD17_021DD6CC _02240184: ldr r0, [r5] mov r1, #2 @@ -38936,7 +38936,7 @@ _0224021C: ldr r0, [r2] ldr r1, [r2, #4] ldr r2, [r2, #8] - bl FUN_021DD620 + bl MOD17_021DD620 ldr r0, [r5, #4] ldr r1, [r5, #8] bl MOD12_0223D09C @@ -40568,10 +40568,10 @@ MOD12_02240E34: ; 0x02240E34 thumb_func_start MOD12_02240E7C MOD12_02240E7C: ; 0x02240E7C - ldr r3, _02240E80 ; =0x0200C359 + ldr r3, _02240E80 ; =FUN_0200C358 bx r3 .align 2, 0 -_02240E80: .word 0x0200C359 +_02240E80: .word FUN_0200C358 thumb_func_start MOD12_02240E84 MOD12_02240E84: ; 0x02240E84 @@ -40612,10 +40612,10 @@ _02240EA6: thumb_func_start MOD12_02240EC8 MOD12_02240EC8: ; 0x02240EC8 - ldr r3, _02240ECC ; =0x0200C3DD + ldr r3, _02240ECC ; =FUN_0200C3DC bx r3 .align 2, 0 -_02240ECC: .word 0x0200C3DD +_02240ECC: .word FUN_0200C3DC thumb_func_start MOD12_02240ED0 MOD12_02240ED0: ; 0x02240ED0 @@ -41734,7 +41734,7 @@ MOD12_0224182C: ; 0x0224182C bne _02241854 ldr r0, [r4, #0x14] bl FUN_02006ED4 - bl FUN_02215A44 + bl MOD08_02215A44 ldr r0, [r4, #0x2c] bl FUN_0200BC1C bl FUN_0200BC38 @@ -43608,11 +43608,11 @@ _022426A8: .word 0x0224664E MOD12_022426AC: ; 0x022426AC mov r1, #0xe6 lsl r1, r1, #2 - ldr r3, _022426B8 ; =0x0201BD71 + ldr r3, _022426B8 ; =FUN_0201BD70 ldrb r0, [r0, r1] bx r3 nop -_022426B8: .word 0x0201BD71 +_022426B8: .word FUN_0201BD70 thumb_func_start MOD12_022426BC MOD12_022426BC: ; 0x022426BC @@ -48103,6 +48103,9 @@ _0224496A: _02244988: pop {r4, r5, r6, pc} - .section .data + .section .rodata ; 0x0224498C - .incbin "baserom.nds", 0x1F71CC, 0x1E94 + .incbin "baserom.nds", 0x1F71CC, 0x1E84 + + .section .sinit + .word MOD12_022312BC diff --git a/arm9/modules/13/asm/module_13_arm1.s b/arm9/modules/13/asm/module_13_arm1.s index edb71ead..ffde9a27 100644 --- a/arm9/modules/13/asm/module_13_arm1.s +++ b/arm9/modules/13/asm/module_13_arm1.s @@ -6049,3 +6049,15 @@ MOD13_022172A0: ; 0x022172A0 bx lr .align 2, 0 _022172D8: .word 0x02240B28 + + .section .rodata + ; 0x0223C420 + .incbin "baserom.nds", 0x2237C0, 0x24 + + .section .data + ; 0x0223F780 + .incbin "baserom.nds", 0x226B20, 0x38 + + .section .bss + ; 0x02240A40 + .space 0xF4 diff --git a/arm9/modules/13/asm/module_13_arm2.s b/arm9/modules/13/asm/module_13_arm2.s index 7910e1a0..41959f32 100644 --- a/arm9/modules/13/asm/module_13_arm2.s +++ b/arm9/modules/13/asm/module_13_arm2.s @@ -5214,7 +5214,7 @@ MOD13_02222D0C: ; 0x02222D0C sub sp, sp, #4 ldr r0, _02222D74 ; =0x02243048 ldr r0, [r0] - blx MOD13_02219798 + bl MOD13_02219798 cmp r0, #0 ldreq r1, _02222D78 ; =0x02243044 moveq r0, #1 @@ -5246,7 +5246,7 @@ _02222D78: .word 0x02243044 MOD13_02222D7C: ; 0x02222D7C stmdb sp!, {r4, lr} mov r4, r0 - blx MOD13_02219C9C + bl MOD13_02219C9C cmp r4, #0 beq _02222DC0 ldr r0, _02222DCC ; =0x02243048 @@ -5329,7 +5329,7 @@ _02222E48: bl OS_GetMacAddress ldr r0, _02222EE0 ; =MOD13_02222CFC ldr r1, _02222EE4 ; =MOD13_02222CF0 - blx MOD13_02219D58 + bl MOD13_02219D58 cmp r0, #0 addeq sp, sp, #0x104 ldmeqia sp!, {pc} @@ -6270,7 +6270,7 @@ MOD13_02223AF8: ; 0x02223AF8 stmdb sp!, {lr} sub sp, sp, #0xec add r0, sp, #0 - blx MOD13_0221A794 + bl MOD13_0221A794 cmp r0, #1 beq _02223B14 bl OS_Terminate @@ -6313,7 +6313,7 @@ _02223B7C: ldmia sp!, {pc} _02223B88: add r0, sp, #0 - blx MOD13_0221A794 + bl MOD13_0221A794 cmp r0, #1 beq _02223B9C bl OS_Terminate @@ -6344,7 +6344,7 @@ _02223BDC: .word 0x02243078 MOD13_02223BE0: ; 0x02223BE0 stmdb sp!, {lr} sub sp, sp, #4 - blx MOD13_0221A7EC + bl MOD13_0221A7EC cmp r0, #1 beq _02223BF8 bl OS_Terminate @@ -6373,7 +6373,7 @@ MOD13_02223C0C: ; 0x02223C0C mov r0, #0xf mov r1, #0x40 str ip, [sp, #4] - blx MOD13_0221A8A4 + bl MOD13_0221A8A4 cmp r0, #1 beq _02223C58 bl OS_Terminate @@ -21960,7 +21960,7 @@ MOD13_02231018: ; 0x02231018 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 - bl FUN_021EBB80 + bl MOD04_021EBB80 movs r4, r0 addeq sp, sp, #4 ldmeqia sp!, {r4, r5, pc} @@ -21975,7 +21975,7 @@ MOD13_02231018: ; 0x02231018 bl MOD13_0223424C b _0223106C _0223105C: - bl FUN_021EBAE8 + bl MOD04_021EBAE8 bl MOD13_0222B0BC mov r0, #0x12 bl MOD13_0223424C @@ -21996,7 +21996,7 @@ MOD13_02231090: ; 0x02231090 stmdb sp!, {r4, lr} bl MOD13_022338FC mov r4, r0 - bl FUN_021EB9D8 + bl MOD04_021EB9D8 cmp r0, #0 ldmeqia sp!, {r4, pc} bl FUN_02095324 @@ -22162,7 +22162,7 @@ MOD13_0223126C: ; 0x0223126C addne r0, r0, #1 strneb r0, [sp, #0xe] add r0, sp, #4 - bl FUN_021EBC60 + bl MOD04_021EBC60 cmp r0, #0 bne _022312C8 bl OS_Terminate @@ -22172,7 +22172,7 @@ _022312C8: bne _022312E0 ldrb r0, [r4, #0xf4] mov r1, r4 - bl FUN_021EB9A4 + bl MOD04_021EB9A4 _022312E0: mov r0, #0 ldr r1, _02231300 ; =MOD13_02231018 @@ -35364,10 +35364,14 @@ _0223C330: _0223C418: .word 0x0224320C _0223C41C: .word 0x0223F764 + .section .rodata + ; 0x0223EC6C + .incbin "baserom.nds", 0x22600C, 0xafc + .section .data ; 0x0223C420 - .incbin "baserom.nds", 0x2237C0, 0x4620 + .incbin "baserom.nds", 0x226CD4, 0x110C .section .bss - ; 0x02240A40 - .space 0x27E0 + ; 0x02242FE4 + .space 0x23C diff --git a/arm9/modules/13/asm/module_13_thumb.s b/arm9/modules/13/asm/module_13_thumb.s index b180ff6b..c231800c 100644 --- a/arm9/modules/13/asm/module_13_thumb.s +++ b/arm9/modules/13/asm/module_13_thumb.s @@ -14777,3 +14777,15 @@ _0221E556: bx r3 .align 2, 0 _0221E55C: .word 0x02241B30 + + .section .rodata + ; 0x0223C444 + .incbin "baserom.nds", 0x2237e4, 0x2828 + + .section .data + ; 0x0223F7B8 + .incbin "baserom.nds", 0x226B58, 0x17C + + .section .bss + ; 0x02240B34 + .space 0x24B0 diff --git a/arm9/modules/14/asm/module_14.s b/arm9/modules/14/asm/module_14.s index 42e1c73b..0f23da14 100644 --- a/arm9/modules/14/asm/module_14.s +++ b/arm9/modules/14/asm/module_14.s @@ -5820,7 +5820,7 @@ _021DA41E: mov r2, #1 mov r3, #0 bl FUN_0206E314 - ldr r0, _021DA5DC ; =0x0000004B + ldr r0, _021DA5DC ; =SDK_OVERLAY_MODULE_75_ID mov r1, #2 bl HandleLoadOverlay mov r1, #0x85 @@ -5860,7 +5860,7 @@ _021DA498: lsl r0, r0, #2 ldr r0, [r4, r0] bl FUN_02016A18 - ldr r0, _021DA5DC ; =0x0000004B + ldr r0, _021DA5DC ; =SDK_OVERLAY_MODULE_75_ID bl UnloadOverlayByID ldr r0, _021DA5E4 ; =0x021E6A00 ldr r6, [r0, #8] @@ -5992,7 +5992,7 @@ _021DA5D6: pop {r4, r5, r6, pc} .align 2, 0 _021DA5D8: .word 0x021E6264 -_021DA5DC: .word 0x0000004B +_021DA5DC: .word SDK_OVERLAY_MODULE_75_ID _021DA5E0: .word 0x021EC68C _021DA5E4: .word 0x021E6A00 _021DA5E8: .word 0x021C48B8 @@ -7805,11 +7805,11 @@ MOD14_021DB470: ; 0x021DB470 thumb_func_start MOD14_021DB490 MOD14_021DB490: ; 0x021DB490 - ldr r3, _021DB498 ; =0x02016A19 + ldr r3, _021DB498 ; =FUN_02016A18 ldr r0, [r0] bx r3 nop -_021DB498: .word 0x02016A19 +_021DB498: .word FUN_02016A18 thumb_func_start MOD14_021DB49C MOD14_021DB49C: ; 0x021DB49C @@ -7829,11 +7829,11 @@ MOD14_021DB49C: ; 0x021DB49C thumb_func_start MOD14_021DB4BC MOD14_021DB4BC: ; 0x021DB4BC - ldr r3, _021DB4C4 ; =0x02021A21 + ldr r3, _021DB4C4 ; =FUN_02021A20 ldr r0, [r0, #4] bx r3 nop -_021DB4C4: .word 0x02021A21 +_021DB4C4: .word FUN_02021A20 thumb_func_start MOD14_021DB4C8 MOD14_021DB4C8: ; 0x021DB4C8 @@ -9849,11 +9849,11 @@ MOD14_021DC3AC: ; 0x021DC3AC MOD14_021DC3B4: ; 0x021DC3B4 mov r1, #0x69 lsl r1, r1, #2 - ldr r3, _021DC3C0 ; =0x02025085 + ldr r3, _021DC3C0 ; =FUN_02025084 ldr r0, [r0, r1] bx r3 nop -_021DC3C0: .word 0x02025085 +_021DC3C0: .word FUN_02025084 thumb_func_start MOD14_021DC3C4 MOD14_021DC3C4: ; 0x021DC3C4 @@ -13176,10 +13176,10 @@ _021DDD3C: thumb_func_start MOD14_021DDD40 MOD14_021DDD40: ; 0x021DDD40 - ldr r3, _021DDD44 ; =0x0200CA61 + ldr r3, _021DDD44 ; =FUN_0200CA60 bx r3 .align 2, 0 -_021DDD44: .word 0x0200CA61 +_021DDD44: .word FUN_0200CA60 thumb_func_start MOD14_021DDD48 MOD14_021DDD48: ; 0x021DDD48 @@ -17686,12 +17686,12 @@ _021E0024: thumb_func_start MOD14_021E002C MOD14_021E002C: ; 0x021E002C - ldr r3, _021E0034 ; =0x02020131 + ldr r3, _021E0034 ; =FUN_02020130 ldr r0, [r0, #4] mov r1, #1 bx r3 .align 2, 0 -_021E0034: .word 0x02020131 +_021E0034: .word FUN_02020130 thumb_func_start MOD14_021E0038 MOD14_021E0038: ; 0x021E0038 @@ -19244,11 +19244,11 @@ _021E0C64: _021E0C66: ldr r0, [r1] ldrh r1, [r1, #0x2c] - ldr r3, _021E0C70 ; =0x02020249 + ldr r3, _021E0C70 ; =FUN_02020248 add r1, r1, r2 bx r3 .align 2, 0 -_021E0C70: .word 0x02020249 +_021E0C70: .word FUN_02020248 thumb_func_start MOD14_021E0C74 MOD14_021E0C74: ; 0x021E0C74 @@ -27001,12 +27001,12 @@ _021E4762: thumb_func_start MOD14_021E4764 MOD14_021E4764: ; 0x021E4764 - ldr r3, _021E476C ; =0x0201797D + ldr r3, _021E476C ; =FUN_0201797C mov r0, #4 mov r1, #0 bx r3 .align 2, 0 -_021E476C: .word 0x0201797D +_021E476C: .word FUN_0201797C thumb_func_start MOD14_021E4770 MOD14_021E4770: ; 0x021E4770 @@ -30394,9 +30394,13 @@ MOD14_021E6220: ; 0x021E6220 ldr r0, [r0, #0x74] bx lr - .section .data + .section .rodata ; 0x021E6224 - .incbin "baserom.nds", 0x236b44, 0x7dc + .incbin "baserom.nds", 0x236b44, 0x7a4 + + .section .data + ; 0x021E69E0 + .incbin "baserom.nds", 0x237300, 0x1C .section .bss ; 0x021E69FC diff --git a/arm9/modules/15/asm/module_15.s b/arm9/modules/15/asm/module_15.s index bd9eb99a..88e9d55a 100644 --- a/arm9/modules/15/asm/module_15.s +++ b/arm9/modules/15/asm/module_15.s @@ -2402,11 +2402,11 @@ MOD15_021D86E4: ; 0x021D86E4 thumb_func_start MOD15_021D86E8
MOD15_021D86E8: ; 0x021D86E8
- ldr r3, _021D86F0 ; =0x02085411
+ ldr r3, _021D86F0 ; =FUN_02085410
ldr r0, [r0]
bx r3
nop
-_021D86F0: .word 0x02085411
+_021D86F0: .word FUN_02085410
thumb_func_start MOD15_021D86F4
MOD15_021D86F4: ; 0x021D86F4
@@ -2417,11 +2417,11 @@ MOD15_021D86F4: ; 0x021D86F4 thumb_func_start MOD15_021D86FC
MOD15_021D86FC: ; 0x021D86FC
- ldr r3, _021D8704 ; =0x02013921
+ ldr r3, _021D8704 ; =FUN_02013920
add r0, #8
bx r3
nop
-_021D8704: .word 0x02013921
+_021D8704: .word FUN_02013920
thumb_func_start MOD15_021D8708
MOD15_021D8708: ; 0x021D8708
@@ -2440,11 +2440,11 @@ _021D8718: thumb_func_start MOD15_021D8720
MOD15_021D8720: ; 0x021D8720
- ldr r3, _021D8728 ; =0x02013841
+ ldr r3, _021D8728 ; =FUN_02013840
add r0, #8
bx r3
nop
-_021D8728: .word 0x02013841
+_021D8728: .word FUN_02013840
thumb_func_start MOD15_021D872C
MOD15_021D872C: ; 0x021D872C
@@ -2560,11 +2560,11 @@ _021D87DC: thumb_func_start MOD15_021D87E0
MOD15_021D87E0: ; 0x021D87E0
- ldr r3, _021D87E8 ; =0x02085415
+ ldr r3, _021D87E8 ; =FUN_02085414
ldr r0, [r0]
bx r3
nop
-_021D87E8: .word 0x02085415
+_021D87E8: .word FUN_02085414
thumb_func_start MOD15_021D87EC
MOD15_021D87EC: ; 0x021D87EC
@@ -2676,10 +2676,10 @@ _021D88CE: thumb_func_start MOD15_021D88D0
MOD15_021D88D0: ; 0x021D88D0
- ldr r3, _021D88D4 ; =0x0200CA61
+ ldr r3, _021D88D4 ; =FUN_0200CA60
bx r3
.align 2, 0
-_021D88D4: .word 0x0200CA61
+_021D88D4: .word FUN_0200CA60
thumb_func_start MOD15_021D88D8
MOD15_021D88D8: ; 0x021D88D8
@@ -4967,11 +4967,11 @@ _021D9B2C: .word 0x0000FFFE thumb_func_start MOD15_021D9B30
MOD15_021D9B30: ; 0x021D9B30
- ldr r3, _021D9B38 ; =0x02021A21
+ ldr r3, _021D9B38 ; =FUN_02021A20
ldr r0, [r0]
bx r3
nop
-_021D9B38: .word 0x02021A21
+_021D9B38: .word FUN_02021A20
thumb_func_start MOD15_021D9B3C
MOD15_021D9B3C: ; 0x021D9B3C
@@ -5718,37 +5718,37 @@ MOD15_021DA0B8: ; 0x021DA0B8 thumb_func_start MOD15_021DA0F4
MOD15_021DA0F4: ; 0x021DA0F4
- ldr r3, _021DA0FC ; =0x02020131
+ ldr r3, _021DA0FC ; =FUN_02020130
ldr r0, [r0, #0xc]
mov r1, #3
bx r3
.align 2, 0
-_021DA0FC: .word 0x02020131
+_021DA0FC: .word FUN_02020130
thumb_func_start MOD15_021DA100
MOD15_021DA100: ; 0x021DA100
- ldr r3, _021DA108 ; =0x02020131
+ ldr r3, _021DA108 ; =FUN_02020130
ldr r0, [r0, #0xc]
mov r1, #2
bx r3
.align 2, 0
-_021DA108: .word 0x02020131
+_021DA108: .word FUN_02020130
thumb_func_start MOD15_021DA10C
MOD15_021DA10C: ; 0x021DA10C
- ldr r3, _021DA114 ; =0x020200A1
+ ldr r3, _021DA114 ; =FUN_020200A0
ldr r0, [r0, #0xc]
bx r3
nop
-_021DA114: .word 0x020200A1
+_021DA114: .word FUN_020200A0
thumb_func_start MOD15_021DA118
MOD15_021DA118: ; 0x021DA118
- ldr r3, _021DA120 ; =0x02020129
+ ldr r3, _021DA120 ; =FUN_02020128
ldr r0, [r0, #0xc]
bx r3
nop
-_021DA120: .word 0x02020129
+_021DA120: .word FUN_02020128
thumb_func_start MOD15_021DA124
MOD15_021DA124: ; 0x021DA124
@@ -8748,6 +8748,6 @@ _021DB85C: .align 2, 0
_021DB868: .word 0x021DBA55
- .section .data
+ .section .rodata
; 0x021DB86C
- .incbin "baserom.nds", 0x23B78C, 0x2F4
+ .incbin "baserom.nds", 0x23B78C, 0x2F0
diff --git a/arm9/modules/16/asm/module_16.s b/arm9/modules/16/asm/module_16.s index 7d62c0f0..4c66bac5 100644 --- a/arm9/modules/16/asm/module_16.s +++ b/arm9/modules/16/asm/module_16.s @@ -229,10 +229,10 @@ MOD16_021D7684: ; 0x021D7684 thumb_func_start MOD16_021D76A4 MOD16_021D76A4: ; 0x021D76A4 - ldr r3, _021D76A8 ; =0x0200E309 + ldr r3, _021D76A8 ; =FUN_0200E308 bx r3 .align 2, 0 -_021D76A8: .word 0x0200E309 +_021D76A8: .word FUN_0200E308 thumb_func_end MOD16_021D76A4 thumb_func_start MOD16_021D76AC @@ -2954,11 +2954,11 @@ _021D8B1C: thumb_func_start MOD16_021D8B30 MOD16_021D8B30: ; 0x021D8B30 - ldr r3, _021D8B38 ; =0x02020129 + ldr r3, _021D8B38 ; =FUN_02020128 ldr r0, [r0] bx r3 nop -_021D8B38: .word 0x02020129 +_021D8B38: .word FUN_02020128 thumb_func_end MOD16_021D8B30 thumb_func_start MOD16_021D8B3C @@ -3527,11 +3527,11 @@ MOD16_021D8F60: ; 0x021D8F60 thumb_func_start MOD16_021D8F90 MOD16_021D8F90: ; 0x021D8F90 - ldr r3, _021D8F98 ; =0x02019179 + ldr r3, _021D8F98 ; =FUN_02019178 add r0, r0, #4 bx r3 nop -_021D8F98: .word 0x02019179 +_021D8F98: .word FUN_02019178 thumb_func_end MOD16_021D8F90 thumb_func_start MOD16_021D8F9C @@ -4322,11 +4322,11 @@ _021D95E0: .word MOD16_021D95F4 MOD16_021D95E4: ; 0x021D95E4 mov r1, #0x9d lsl r1, r1, #2 - ldr r3, _021D95F0 ; =0x0200CAB5 + ldr r3, _021D95F0 ; =FUN_0200CAB4 ldr r0, [r0, r1] bx r3 nop -_021D95F0: .word 0x0200CAB5 +_021D95F0: .word FUN_0200CAB4 thumb_func_end MOD16_021D95E4 thumb_func_start MOD16_021D95F4 @@ -4712,13 +4712,13 @@ _021D98D8: .word 0x00001748 thumb_func_start MOD16_021D98DC MOD16_021D98DC: ; 0x021D98DC - ldr r3, _021D98E8 ; =0x02024675 + ldr r3, _021D98E8 ; =FUN_02024674 lsl r1, r1, #0x10 ldr r0, [r0] lsr r1, r1, #0x10 bx r3 nop -_021D98E8: .word 0x02024675 +_021D98E8: .word FUN_02024674 thumb_func_end MOD16_021D98DC thumb_func_start MOD16_021D98EC @@ -4882,84 +4882,84 @@ _021D99F0: thumb_func_start MOD16_021D99F4 MOD16_021D99F4: ; 0x021D99F4 - ldr r3, _021D99FC ; =0x0202471D + ldr r3, _021D99FC ; =FUN_0202471C ldr r0, [r0] bx r3 nop -_021D99FC: .word 0x0202471D +_021D99FC: .word FUN_0202471C thumb_func_end MOD16_021D99F4 thumb_func_start MOD16_021D9A00 MOD16_021D9A00: ; 0x021D9A00 - ldr r3, _021D9A08 ; =0x020247A5 + ldr r3, _021D9A08 ; =FUN_020247A4 ldr r0, [r0] bx r3 nop -_021D9A08: .word 0x020247A5 +_021D9A08: .word FUN_020247A4 thumb_func_end MOD16_021D9A00 thumb_func_start MOD16_021D9A0C MOD16_021D9A0C: ; 0x021D9A0C - ldr r3, _021D9A14 ; =0x02024829 + ldr r3, _021D9A14 ; =FUN_02024828 ldr r0, [r0] bx r3 nop -_021D9A14: .word 0x02024829 +_021D9A14: .word FUN_02024828 thumb_func_end MOD16_021D9A0C thumb_func_start MOD16_021D9A18 MOD16_021D9A18: ; 0x021D9A18 - ldr r3, _021D9A20 ; =0x0202489D + ldr r3, _021D9A20 ; =FUN_0202489C ldr r0, [r0] bx r3 nop -_021D9A20: .word 0x0202489D +_021D9A20: .word FUN_0202489C thumb_func_end MOD16_021D9A18 thumb_func_start MOD16_021D9A24 MOD16_021D9A24: ; 0x021D9A24 - ldr r3, _021D9A2C ; =0x0202490D + ldr r3, _021D9A2C ; =FUN_0202490C ldr r0, [r0] bx r3 nop -_021D9A2C: .word 0x0202490D +_021D9A2C: .word FUN_0202490C thumb_func_end MOD16_021D9A24 thumb_func_start MOD16_021D9A30 MOD16_021D9A30: ; 0x021D9A30 - ldr r3, _021D9A38 ; =0x02024649 + ldr r3, _021D9A38 ; =FUN_02024648 ldr r0, [r0] mov r1, #0 bx r3 .align 2, 0 -_021D9A38: .word 0x02024649 +_021D9A38: .word FUN_02024648 thumb_func_end MOD16_021D9A30 thumb_func_start MOD16_021D9A3C MOD16_021D9A3C: ; 0x021D9A3C - ldr r3, _021D9A44 ; =0x02024931 + ldr r3, _021D9A44 ; =FUN_02024930 ldr r0, [r0] bx r3 nop -_021D9A44: .word 0x02024931 +_021D9A44: .word FUN_02024930 thumb_func_end MOD16_021D9A3C thumb_func_start MOD16_021D9A48 MOD16_021D9A48: ; 0x021D9A48 - ldr r3, _021D9A50 ; =0x02024971 + ldr r3, _021D9A50 ; =FUN_02024970 ldr r0, [r0] bx r3 nop -_021D9A50: .word 0x02024971 +_021D9A50: .word FUN_02024970 thumb_func_end MOD16_021D9A48 thumb_func_start MOD16_021D9A54 MOD16_021D9A54: ; 0x021D9A54 - ldr r3, _021D9A5C ; =0x02024CA5 + ldr r3, _021D9A5C ; =FUN_02024CA4 ldr r0, [r0] bx r3 nop -_021D9A5C: .word 0x02024CA5 +_021D9A5C: .word FUN_02024CA4 thumb_func_end MOD16_021D9A54 thumb_func_start MOD16_021D9A60 @@ -5709,11 +5709,11 @@ _021D9F72: thumb_func_start MOD16_021D9F80 MOD16_021D9F80: ; 0x021D9F80 - ldr r3, _021D9F88 ; =0x02024CC5 + ldr r3, _021D9F88 ; =FUN_02024CC4 ldr r0, [r0] bx r3 nop -_021D9F88: .word 0x02024CC5 +_021D9F88: .word FUN_02024CC4 thumb_func_end MOD16_021D9F80 thumb_func_start MOD16_021D9F8C @@ -8453,11 +8453,11 @@ MOD16_021DB388: ; 0x021DB388 thumb_func_start MOD16_021DB3BC MOD16_021DB3BC: ; 0x021DB3BC - ldr r3, _021DB3C4 ; =0x020191A5 + ldr r3, _021DB3C4 ; =FUN_020191A4 mov r1, #1 bx r3 nop -_021DB3C4: .word 0x020191A5 +_021DB3C4: .word FUN_020191A4 thumb_func_end MOD16_021DB3BC thumb_func_start MOD16_021DB3C8 @@ -8590,10 +8590,10 @@ _021DB49E: thumb_func_start MOD16_021DB4A8 MOD16_021DB4A8: ; 0x021DB4A8 - ldr r3, _021DB4AC ; =0x02016A19 + ldr r3, _021DB4AC ; =FUN_02016A18 bx r3 .align 2, 0 -_021DB4AC: .word 0x02016A19 +_021DB4AC: .word FUN_02016A18 thumb_func_end MOD16_021DB4A8 thumb_func_start MOD16_021DB4B0 @@ -9663,22 +9663,22 @@ _021DBBA8: thumb_func_start MOD16_021DBBAC MOD16_021DBBAC: ; 0x021DBBAC - ldr r3, _021DBBB0 ; =0x02021A21 + ldr r3, _021DBBB0 ; =FUN_02021A20 bx r3 .align 2, 0 -_021DBBB0: .word 0x02021A21 +_021DBBB0: .word FUN_02021A20 thumb_func_end MOD16_021DBBAC thumb_func_start MOD16_021DBBB4 MOD16_021DBBB4: ; 0x021DBBB4 add r1, r0, #1 ldr r0, _021DBBC0 ; =0x021FF568 - ldr r3, _021DBBC4 ; =0x02087A39 + ldr r3, _021DBBC4 ; =FUN_02087A38 ldrb r0, [r0, r1] bx r3 nop _021DBBC0: .word 0x021FF568 -_021DBBC4: .word 0x02087A39 +_021DBBC4: .word FUN_02087A38 thumb_func_end MOD16_021DBBB4 thumb_func_start MOD16_021DBBC8 @@ -28228,22 +28228,22 @@ _021E4534: thumb_func_start MOD16_021E4538 MOD16_021E4538: ; 0x021E4538 - ldr r3, _021E4540 ; =0x02020399 + ldr r3, _021E4540 ; =FUN_02020398 ldr r0, [r0] mov r1, #1 bx r3 .align 2, 0 -_021E4540: .word 0x02020399 +_021E4540: .word FUN_02020398 thumb_func_end MOD16_021E4538 thumb_func_start MOD16_021E4544 MOD16_021E4544: ; 0x021E4544 - ldr r3, _021E454C ; =0x02020399 + ldr r3, _021E454C ; =FUN_02020398 ldr r0, [r0] mov r1, #0 bx r3 .align 2, 0 -_021E454C: .word 0x02020399 +_021E454C: .word FUN_02020398 thumb_func_end MOD16_021E4544 thumb_func_start MOD16_021E4550 @@ -28576,11 +28576,11 @@ _021E47D4: .word 0x0000083F thumb_func_start MOD16_021E47D8 MOD16_021E47D8: ; 0x021E47D8 - ldr r3, _021E47E0 ; =0x0201FFC9 + ldr r3, _021E47E0 ; =FUN_0201FFC8 ldr r0, [r0] bx r3 nop -_021E47E0: .word 0x0201FFC9 +_021E47E0: .word FUN_0201FFC8 thumb_func_end MOD16_021E47D8 thumb_func_start MOD16_021E47E4 @@ -44846,13 +44846,13 @@ _021EC10C: .word 0x0000FFFF thumb_func_start MOD16_021EC110 MOD16_021EC110: ; 0x021EC110 - ldr r3, _021EC11C ; =0x02004829 + ldr r3, _021EC11C ; =FUN_02004828 add r1, r0, #0 mov r0, #8 mov r2, #0 bx r3 nop -_021EC11C: .word 0x02004829 +_021EC11C: .word FUN_02004828 thumb_func_end MOD16_021EC110 thumb_func_start MOD16_021EC120 @@ -45330,22 +45330,22 @@ _021EC456: thumb_func_start MOD16_021EC45C MOD16_021EC45C: ; 0x021EC45C - ldr r3, _021EC464 ; =0x02020399 + ldr r3, _021EC464 ; =FUN_02020398 ldr r0, [r0, #0x10] mov r1, #1 bx r3 .align 2, 0 -_021EC464: .word 0x02020399 +_021EC464: .word FUN_02020398 thumb_func_end MOD16_021EC45C thumb_func_start MOD16_021EC468 MOD16_021EC468: ; 0x021EC468 - ldr r3, _021EC470 ; =0x02020399 + ldr r3, _021EC470 ; =FUN_02020398 ldr r0, [r0, #0x10] mov r1, #0 bx r3 .align 2, 0 -_021EC470: .word 0x02020399 +_021EC470: .word FUN_02020398 thumb_func_end MOD16_021EC468 thumb_func_start MOD16_021EC474 @@ -45767,11 +45767,11 @@ _021EC7D0: .word 0x00001748 thumb_func_start MOD16_021EC7D4 MOD16_021EC7D4: ; 0x021EC7D4 - ldr r3, _021EC7DC ; =0x0201FFC9 + ldr r3, _021EC7DC ; =FUN_0201FFC8 ldr r0, [r0, #0x10] bx r3 nop -_021EC7DC: .word 0x0201FFC9 +_021EC7DC: .word FUN_0201FFC8 thumb_func_end MOD16_021EC7D4 thumb_func_start MOD16_021EC7E0 @@ -46079,13 +46079,13 @@ MOD16_021ECA48: ; 0x021ECA48 thumb_func_start MOD16_021ECA64 MOD16_021ECA64: ; 0x021ECA64 - ldr r3, _021ECA70 ; =0x02007559 + ldr r3, _021ECA70 ; =FUN_02007558 add r2, r1, #0 mov r1, #1 add r2, #0x58 bx r3 nop -_021ECA70: .word 0x02007559 +_021ECA70: .word FUN_02007558 thumb_func_end MOD16_021ECA64 thumb_func_start MOD16_021ECA74 @@ -49068,11 +49068,11 @@ MOD16_021EE110: ; 0x021EE110 thumb_func_start MOD16_021EE14C MOD16_021EE14C: ; 0x021EE14C - ldr r3, _021EE154 ; =0x02013EA9 + ldr r3, _021EE154 ; =FUN_02013EA8 ldr r0, [r0, #0xc] bx r3 nop -_021EE154: .word 0x02013EA9 +_021EE154: .word FUN_02013EA8 thumb_func_end MOD16_021EE14C thumb_func_start MOD16_021EE158 @@ -50660,11 +50660,11 @@ _021EECF4: .word 0x0000083F thumb_func_start MOD16_021EECF8 MOD16_021EECF8: ; 0x021EECF8 - ldr r3, _021EED00 ; =0x0201FFC9 + ldr r3, _021EED00 ; =FUN_0201FFC8 ldr r0, [r0] bx r3 nop -_021EED00: .word 0x0201FFC9 +_021EED00: .word FUN_0201FFC8 thumb_func_end MOD16_021EECF8 thumb_func_start MOD16_021EED04 @@ -51798,11 +51798,11 @@ _021EF5DA: thumb_func_start MOD16_021EF5E0 MOD16_021EF5E0: ; 0x021EF5E0 - ldr r3, _021EF5E8 ; =0x0201FFC9 + ldr r3, _021EF5E8 ; =FUN_0201FFC8 ldr r0, [r0] bx r3 nop -_021EF5E8: .word 0x0201FFC9 +_021EF5E8: .word FUN_0201FFC8 thumb_func_end MOD16_021EF5E0 thumb_func_start MOD16_021EF5EC @@ -51848,11 +51848,11 @@ _021EF62E: thumb_func_start MOD16_021EF63C MOD16_021EF63C: ; 0x021EF63C - ldr r3, _021EF644 ; =0x0201FFC9 + ldr r3, _021EF644 ; =FUN_0201FFC8 ldr r0, [r0] bx r3 nop -_021EF644: .word 0x0201FFC9 +_021EF644: .word FUN_0201FFC8 thumb_func_end MOD16_021EF63C thumb_func_start MOD16_021EF648 @@ -52482,10 +52482,10 @@ _021EFB14: .word 0x00200010 thumb_func_start MOD16_021EFB18 MOD16_021EFB18: ; 0x021EFB18 - ldr r3, _021EFB1C ; =0x0201D12D + ldr r3, _021EFB1C ; =FUN_0201D12C bx r3 .align 2, 0 -_021EFB1C: .word 0x0201D12D +_021EFB1C: .word FUN_0201D12C thumb_func_end MOD16_021EFB18 thumb_func_start MOD16_021EFB20 @@ -54527,7 +54527,7 @@ _021F0A90: ldr r1, _021F0B14 ; =0x000003CF add r0, r5, #0 ldrb r1, [r4, r1] - bl FUN_022302BC + bl MOD11_022302BC add r1, r0, #0 add r0, r4, #0 mov r2, #0x1b @@ -54542,7 +54542,7 @@ _021F0AAE: lsl r1, r1, #4 ldrb r1, [r4, r1] add r0, r5, #0 - bl FUN_022302BC + bl MOD11_022302BC add r1, r0, #0 add r0, r4, #0 mov r2, #0x1b @@ -54556,7 +54556,7 @@ _021F0ACE: ldr r1, _021F0B14 ; =0x000003CF add r0, r5, #0 ldrb r1, [r4, r1] - bl FUN_022302BC + bl MOD11_022302BC add r1, r0, #0 add r0, r4, #0 mov r2, #0x1c @@ -54571,7 +54571,7 @@ _021F0AEC: lsl r1, r1, #4 ldrb r1, [r4, r1] add r0, r5, #0 - bl FUN_022302BC + bl MOD11_022302BC add r1, r0, #0 add r0, r4, #0 mov r2, #0x1b @@ -54982,7 +54982,7 @@ MOD16_021F0DF4: ; 0x021F0DF4 str r0, [sp] ldr r1, [sp] add r0, r7, #0 - bl FUN_0222FF88 + bl MOD11_0222FF88 str r0, [sp, #0xc] ldr r1, [r7, #0x2c] mov r0, #2 @@ -54995,7 +54995,7 @@ MOD16_021F0DF4: ; 0x021F0DF4 ldr r1, [sp] str r0, [sp, #8] add r0, r7, #0 - bl FUN_022302BC + bl MOD11_022302BC add r1, r5, r0 ldr r0, _021F0EC8 ; =0x0000219C ldrb r0, [r1, r0] @@ -55540,7 +55540,7 @@ MOD16_021F1210: ; 0x021F1210 add r1, r6, #0 str r0, [sp, #8] add r0, r7, #0 - bl FUN_022302BC + bl MOD11_022302BC ldr r1, [sp] add r1, r1, r0 ldr r0, _021F12FC ; =0x0000219C @@ -55557,7 +55557,7 @@ _021F126A: _021F1276: add r0, r7, #0 add r1, r6, #0 - bl FUN_0222FF88 + bl MOD11_0222FF88 str r0, [sp, #0x14] add r0, r7, #0 add r1, r6, #0 @@ -55655,7 +55655,7 @@ MOD16_021F1304: ; 0x021F1304 add r1, r6, #0 str r0, [sp, #8] add r0, r7, #0 - bl FUN_022302BC + bl MOD11_022302BC ldr r1, [sp] add r1, r1, r0 ldr r0, _021F13F0 ; =0x0000219C @@ -55672,7 +55672,7 @@ _021F135E: _021F136A: add r0, r7, #0 add r1, r6, #0 - bl FUN_0222FF88 + bl MOD11_0222FF88 str r0, [sp, #0x14] add r0, r7, #0 add r1, r6, #0 @@ -57066,7 +57066,7 @@ _021F1E2C: add r0, r5, #0 add r1, r6, #0 add r2, r4, #0 - bl FUN_02230014 + bl MOD11_02230014 ldr r2, [sp, #4] ldr r1, _021F1E78 ; =0x0000219C str r0, [sp, #0xc] @@ -57136,7 +57136,7 @@ _021F1EBE: ldr r0, [sp] ldr r1, [sp, #8] add r2, r7, #0 - bl FUN_02230014 + bl MOD11_02230014 add r5, r0, #0 ldr r1, [sp, #0xc] ldr r0, _021F1F1C ; =0x0000219C @@ -57551,7 +57551,7 @@ _021F21D8: ldr r0, [sp, #0x18] ldr r1, [sp, #0x28] add r2, r7, #0 - bl FUN_02230014 + bl MOD11_02230014 mov r1, #0xa2 mov r2, #0 add r6, r0, #0 @@ -58256,7 +58256,7 @@ _021F2728: ldr r1, _021F27FC ; =0x000003CF ldr r0, [sp, #0x18] ldrb r1, [r6, r1] - bl FUN_022302BC + bl MOD11_022302BC add r7, r0, #0 ldr r0, [sp, #0x1c] cmp r0, #0 @@ -60314,7 +60314,7 @@ MOD16_021F364C: ; 0x021F364C str r0, [sp, #0x14] add r5, r1, #0 str r2, [sp, #0x18] - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r1, #2 tst r0, r1 beq _021F3666 @@ -60394,7 +60394,7 @@ _021F36EC: ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] ldr r2, [sp, #0x20] - bl FUN_02230014 + bl MOD11_02230014 mov r1, #0xa2 mov r2, #0 add r6, r0, #0 @@ -60530,7 +60530,7 @@ MOD16_021F3810: ; 0x021F3810 str r0, [sp, #0x14] add r5, r1, #0 str r2, [sp, #0x18] - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r4, #2 tst r0, r4 beq _021F3828 @@ -60654,12 +60654,12 @@ _021F3900: lsr r0, r0, #0x18 str r0, [sp, #0x64] ldr r0, [sp, #0x14] - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r1, #0x10 tst r0, r1 bne _021F3920 ldr r0, [sp, #0x14] - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r1, #8 tst r0, r1 beq _021F3926 @@ -60670,7 +60670,7 @@ _021F3920: _021F3926: ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] - bl FUN_022302BC + bl MOD11_022302BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x60] @@ -60696,7 +60696,7 @@ _021F3956: ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] ldr r2, [sp, #0x2c] - bl FUN_02230014 + bl MOD11_02230014 mov r1, #0xa2 mov r2, #0 str r0, [sp, #0x50] @@ -60930,7 +60930,7 @@ _021F3B3C: ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] ldr r2, [sp, #0x30] - bl FUN_02230014 + bl MOD11_02230014 mov r1, #0xa2 mov r2, #0 str r0, [sp, #0x20] @@ -61178,7 +61178,7 @@ MOD16_021F3D3C: ; 0x021F3D3C add r1, r4, #0 add r6, r0, #0 str r3, [sp, #0x10] - bl FUN_02230260 + bl MOD11_02230260 mov r1, #1 eor r0, r1 lsl r0, r0, #0x18 @@ -61252,7 +61252,7 @@ _021F3DD6: blt _021F3D78 _021F3DE2: add r0, r6, #0 - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r1, #2 tst r0, r1 bne _021F3DF4 @@ -61262,7 +61262,7 @@ _021F3DE2: _021F3DF4: ldr r1, [sp, #0x24] add r0, r6, #0 - bl FUN_022302BC + bl MOD11_022302BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x1c] @@ -61418,12 +61418,12 @@ _021F3F1E: lsl r0, r0, #0x18 lsr r4, r0, #0x18 ldr r0, [sp] - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r1, #0x10 tst r0, r1 bne _021F3F3C ldr r0, [sp] - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r1, #8 tst r0, r1 beq _021F3F40 @@ -61433,7 +61433,7 @@ _021F3F3C: _021F3F40: ldr r0, [sp] ldr r1, [sp, #8] - bl FUN_022302BC + bl MOD11_022302BC lsl r0, r0, #0x18 lsr r6, r0, #0x18 _021F3F4C: @@ -61451,7 +61451,7 @@ _021F3F62: ldr r0, [sp] ldr r1, [sp, #8] add r2, r5, #0 - bl FUN_02230014 + bl MOD11_02230014 mov r1, #0xa2 mov r2, #0 add r4, r0, #0 @@ -61562,12 +61562,12 @@ _021F4042: ldr r1, [sp, #0x18] lsl r1, r1, #0x18 lsr r4, r1, #0x18 - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r1, #0x10 tst r0, r1 bne _021F405E ldr r0, [sp, #0x14] - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r1, #8 tst r0, r1 beq _021F4062 @@ -61577,7 +61577,7 @@ _021F405E: _021F4062: ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] - bl FUN_022302BC + bl MOD11_022302BC lsl r0, r0, #0x18 lsr r7, r0, #0x18 _021F406E: @@ -61604,7 +61604,7 @@ _021F4094: ldr r0, [sp, #0x14] ldr r1, [sp, #0x18] ldr r2, [sp, #0x34] - bl FUN_02230014 + bl MOD11_02230014 mov r1, #0xa2 mov r2, #0 add r6, r0, #0 @@ -62041,12 +62041,12 @@ _021F4412: lsl r0, r6, #0x18 lsr r4, r0, #0x18 ldr r0, [sp, #4] - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r1, #0x10 tst r0, r1 bne _021F4432 ldr r0, [sp, #4] - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r1, #8 tst r0, r1 beq _021F4436 @@ -62056,7 +62056,7 @@ _021F4432: _021F4436: ldr r0, [sp, #4] add r1, r6, #0 - bl FUN_022302BC + bl MOD11_022302BC lsl r0, r0, #0x18 lsr r7, r0, #0x18 _021F4442: @@ -62076,7 +62076,7 @@ _021F445C: ldr r0, [sp, #4] add r1, r6, #0 add r2, r5, #0 - bl FUN_02230014 + bl MOD11_02230014 mov r1, #0xa2 mov r2, #0 add r4, r0, #0 @@ -62240,7 +62240,7 @@ MOD16_021F45A4: ; 0x021F45A4 add r1, r0, #0 str r0, [sp] ldr r5, [r1, #0x30] - bl FUN_0222FF74 + bl MOD11_0222FF74 add r6, r0, #0 mov r0, #1 tst r0, r6 @@ -62285,7 +62285,7 @@ _021F4602: _021F4608: ldr r0, [sp] add r1, r7, #0 - bl FUN_022302BC + bl MOD11_022302BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #8] @@ -62305,7 +62305,7 @@ _021F462E: ldr r0, [sp] add r1, r7, #0 add r2, r4, #0 - bl FUN_02230014 + bl MOD11_02230014 mov r1, #0xa2 mov r2, #0 bl FUN_020671BC @@ -62366,12 +62366,12 @@ MOD16_021F4698: ; 0x021F4698 lsl r1, r1, #0x18 ldr r5, [r7, #0x30] lsr r4, r1, #0x18 - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r1, #0x10 tst r0, r1 bne _021F46BC add r0, r7, #0 - bl FUN_0222FF74 + bl MOD11_0222FF74 mov r1, #8 tst r0, r1 beq _021F46C0 @@ -62381,7 +62381,7 @@ _021F46BC: _021F46C0: ldr r1, [sp, #0x18] add r0, r7, #0 - bl FUN_022302BC + bl MOD11_022302BC lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp, #0x44] @@ -62416,7 +62416,7 @@ _021F4704: ldr r1, [sp, #0x18] add r0, r7, #0 add r2, r4, #0 - bl FUN_02230014 + bl MOD11_02230014 mov r1, #0xad mov r2, #0 str r0, [sp, #0x68] @@ -62533,7 +62533,7 @@ _021F47F8: ldr r1, [sp, #0x18] ldr r2, [sp, #0x38] add r0, r7, #0 - bl FUN_02230014 + bl MOD11_02230014 add r4, r0, #0 mov r0, #0 str r0, [sp, #0x20] @@ -62644,7 +62644,7 @@ _021F48E0: ldr r1, [sp, #0x18] ldr r2, [sp, #0x24] add r0, r7, #0 - bl FUN_02230014 + bl MOD11_02230014 mov r1, #0xad mov r2, #0 str r0, [sp, #0x1c] @@ -62838,7 +62838,7 @@ MOD16_021F4A40: ; 0x021F4A40 str r1, [sp] cmp r2, #0x4b bne _021F4A76 - bl FUN_02230260 + bl MOD11_02230260 cmp r0, #4 bne _021F4A76 add sp, #0x20 @@ -62863,7 +62863,7 @@ _021F4A76: _021F4A94: ldr r1, [sp] add r0, r5, #0 - bl FUN_0222FF88 + bl MOD11_0222FF88 add r7, r0, #0 mov r5, #0 bl FUN_0206B9AC @@ -63320,6 +63320,6 @@ _021F4E2C: .word 0x000003D1 _021F4E30: .word 0x000003D6 thumb_func_end MOD16_021F4A40 - .section .data + .section .rodata ; 0x021F4E34 - .incbin "baserom.nds", 0x259554, 0xABAC + .incbin "baserom.nds", 0x259554, 0xAB90 diff --git a/arm9/modules/17/asm/module_17.s b/arm9/modules/17/asm/module_17.s index 884302f2..68f06a9b 100644 --- a/arm9/modules/17/asm/module_17.s +++ b/arm9/modules/17/asm/module_17.s @@ -159,11 +159,11 @@ MOD17_021D75DC: ; 0x021D75DC thumb_func_start MOD17_021D75F4 MOD17_021D75F4: ; 0x021D75F4 - ldr r3, _021D75FC ; =0x02013EC5 + ldr r3, _021D75FC ; =FUN_02013EC4 ldr r0, [r0, #4] bx r3 nop -_021D75FC: .word 0x02013EC5 +_021D75FC: .word FUN_02013EC4 thumb_func_end MOD17_021D75F4 thumb_func_start MOD17_021D7600 @@ -222,29 +222,29 @@ MOD17_021D7630: ; 0x021D7630 thumb_func_start MOD17_021D7660 MOD17_021D7660: ; 0x021D7660 - ldr r3, _021D7668 ; =0x02013EB1 + ldr r3, _021D7668 ; =FUN_02013EB0 ldr r0, [r0, #4] bx r3 nop -_021D7668: .word 0x02013EB1 +_021D7668: .word FUN_02013EB0 thumb_func_end MOD17_021D7660 thumb_func_start MOD17_021D766C MOD17_021D766C: ; 0x021D766C - ldr r3, _021D7674 ; =0x02013EFD + ldr r3, _021D7674 ; =FUN_02013EFC ldr r0, [r0, #4] bx r3 nop -_021D7674: .word 0x02013EFD +_021D7674: .word FUN_02013EFC thumb_func_end MOD17_021D766C thumb_func_start MOD17_021D7678 MOD17_021D7678: ; 0x021D7678 - ldr r3, _021D7680 ; =0x02013F01 + ldr r3, _021D7680 ; =FUN_02013F00 ldr r0, [r0, #4] bx r3 nop -_021D7680: .word 0x02013F01 +_021D7680: .word FUN_02013F00 thumb_func_end MOD17_021D7678 thumb_func_start MOD17_021D7684 @@ -1016,21 +1016,21 @@ MOD17_021D7BE4: ; 0x021D7BE4 thumb_func_start MOD17_021D7C10 MOD17_021D7C10: ; 0x021D7C10 - ldr r3, _021D7C18 ; =0x020178A1 + ldr r3, _021D7C18 ; =FUN_020178A0 ldr r0, [r0, #0x38] mov r1, #2 bx r3 .align 2, 0 -_021D7C18: .word 0x020178A1 +_021D7C18: .word FUN_020178A0 thumb_func_end MOD17_021D7C10 thumb_func_start MOD17_021D7C1C MOD17_021D7C1C: ; 0x021D7C1C - ldr r3, _021D7C24 ; =0x020081C5 + ldr r3, _021D7C24 ; =FUN_020081C4 ldr r0, [r0, #0x20] bx r3 nop -_021D7C24: .word 0x020081C5 +_021D7C24: .word FUN_020081C4 thumb_func_end MOD17_021D7C1C thumb_func_start MOD17_021D7C28 @@ -1330,11 +1330,11 @@ MOD17_021D7E58: ; 0x021D7E58 thumb_func_start MOD17_021D7E68 MOD17_021D7E68: ; 0x021D7E68 - ldr r3, _021D7E70 ; =0x02013D5D + ldr r3, _021D7E70 ; =FUN_02013D5C ldr r0, [r0] bx r3 nop -_021D7E70: .word 0x02013D5D +_021D7E70: .word FUN_02013D5C thumb_func_end MOD17_021D7E68 thumb_func_start MOD17_021D7E74 @@ -1730,11 +1730,11 @@ _021D8178: thumb_func_start MOD17_021D8194 MOD17_021D8194: ; 0x021D8194 - ldr r3, _021D819C ; =0x0201FDED + ldr r3, _021D819C ; =FUN_0201FDEC ldr r0, [r0, #0x3c] bx r3 nop -_021D819C: .word 0x0201FDED +_021D819C: .word FUN_0201FDEC thumb_func_end MOD17_021D8194 thumb_func_start MOD17_021D81A0 @@ -1956,11 +1956,11 @@ _021D8348: .word 0xFFFF0000 thumb_func_start MOD17_021D834C MOD17_021D834C: ; 0x021D834C - ldr r3, _021D8354 ; =0x020072E9 + ldr r3, _021D8354 ; =FUN_020072E8 ldr r0, [r0, #0x20] bx r3 nop -_021D8354: .word 0x020072E9 +_021D8354: .word FUN_020072E8 thumb_func_end MOD17_021D834C thumb_func_start MOD17_021D8358 @@ -8952,23 +8952,23 @@ _021DB7CE: thumb_func_start MOD17_021DB7D8 MOD17_021DB7D8: ; 0x021DB7D8 - ldr r3, _021DB7E4 ; =0x02007559 + ldr r3, _021DB7E4 ; =FUN_02007558 add r2, r1, #0 ldr r0, [r0] mov r1, #2 bx r3 nop -_021DB7E4: .word 0x02007559 +_021DB7E4: .word FUN_02007558 thumb_func_end MOD17_021DB7D8 thumb_func_start MOD17_021DB7E8 MOD17_021DB7E8: ; 0x021DB7E8 - ldr r3, _021DB7F0 ; =0x0200782D + ldr r3, _021DB7F0 ; =FUN_0200782C ldr r0, [r0] mov r1, #2 bx r3 .align 2, 0 -_021DB7F0: .word 0x0200782D +_021DB7F0: .word FUN_0200782C thumb_func_end MOD17_021DB7E8 thumb_func_start MOD17_021DB7F4 @@ -9011,20 +9011,20 @@ MOD17_021DB7F4: ; 0x021DB7F4 thumb_func_start MOD17_021DB840 MOD17_021DB840: ; 0x021DB840 - ldr r3, _021DB848 ; =0x02020A41 + ldr r3, _021DB848 ; =FUN_02020A40 add r0, r0, #4 bx r3 nop -_021DB848: .word 0x02020A41 +_021DB848: .word FUN_02020A40 thumb_func_end MOD17_021DB840 thumb_func_start MOD17_021DB84C MOD17_021DB84C: ; 0x021DB84C - ldr r3, _021DB854 ; =0x02020AE9 + ldr r3, _021DB854 ; =FUN_02020AE8 add r0, r0, #4 bx r3 nop -_021DB854: .word 0x02020AE9 +_021DB854: .word FUN_02020AE8 thumb_func_end MOD17_021DB84C thumb_func_start MOD17_021DB858 @@ -10513,32 +10513,32 @@ MOD17_021DC2DC: ; 0x021DC2DC thumb_func_start MOD17_021DC2E0 MOD17_021DC2E0: ; 0x021DC2E0 - ldr r3, _021DC2E8 ; =0x02020209 + ldr r3, _021DC2E8 ; =FUN_02020208 ldr r0, [r0] mov r1, #2 bx r3 .align 2, 0 -_021DC2E8: .word 0x02020209 +_021DC2E8: .word FUN_02020208 thumb_func_end MOD17_021DC2E0 thumb_func_start MOD17_021DC2EC MOD17_021DC2EC: ; 0x021DC2EC - ldr r3, _021DC2F4 ; =0x02020209 + ldr r3, _021DC2F4 ; =FUN_02020208 ldr r0, [r0] mov r1, #0 bx r3 .align 2, 0 -_021DC2F4: .word 0x02020209 +_021DC2F4: .word FUN_02020208 thumb_func_end MOD17_021DC2EC thumb_func_start MOD17_021DC2F8 MOD17_021DC2F8: ; 0x021DC2F8 - ldr r3, _021DC300 ; =0x02020209 + ldr r3, _021DC300 ; =FUN_02020208 ldr r0, [r0] mov r1, #1 bx r3 .align 2, 0 -_021DC300: .word 0x02020209 +_021DC300: .word FUN_02020208 thumb_func_end MOD17_021DC2F8 thumb_func_start MOD17_021DC304 @@ -11304,11 +11304,11 @@ _021DC8F4: .word 0x00010203 thumb_func_start MOD17_021DC8F8 MOD17_021DC8F8: ; 0x021DC8F8 - ldr r3, _021DC900 ; =0x020191A5 + ldr r3, _021DC900 ; =FUN_020191A4 mov r1, #1 bx r3 nop -_021DC900: .word 0x020191A5 +_021DC900: .word FUN_020191A4 thumb_func_end MOD17_021DC8F8 thumb_func_start MOD17_021DC904 @@ -11844,11 +11844,11 @@ _021DCCDC: .word MOD17_021DBD4C thumb_func_start MOD17_021DCCE0 MOD17_021DCCE0: ; 0x021DCCE0 - ldr r3, _021DCCE8 ; =0x020191A5 + ldr r3, _021DCCE8 ; =FUN_020191A4 mov r1, #1 bx r3 nop -_021DCCE8: .word 0x020191A5 +_021DCCE8: .word FUN_020191A4 thumb_func_end MOD17_021DCCE0 thumb_func_start MOD17_021DCCEC @@ -14601,6 +14601,6 @@ _021DE24C: .word 0x00000151 _021DE250: .word 0x00010200 thumb_func_end MOD17_021DE0F4 - .section .data + .section .rodata ; 0x021DE254 - .incbin "baserom.nds", 0x26AF74, 0x10C + .incbin "baserom.nds", 0x26AF74, 0x100 diff --git a/arm9/modules/18/asm/module_18.s b/arm9/modules/18/asm/module_18.s index 767c2f6c..4a32f55f 100644 --- a/arm9/modules/18/asm/module_18.s +++ b/arm9/modules/18/asm/module_18.s @@ -2459,7 +2459,7 @@ _0223AA08: ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] - bl FUN_021F4608 + bl MOD05_021F4608 mov r0, #6 str r0, [sp] mov r0, #1 @@ -2487,11 +2487,11 @@ _0223AA5C: ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] - bl FUN_021F4608 + bl MOD05_021F4608 ldr r0, [r4, #0x10] ldr r0, [r0, #4] ldr r0, [r0, #0x1c] - bl FUN_021F45E8 + bl MOD05_021F45E8 mov r3, #0x80 str r3, [sp] mov r0, #4 @@ -2711,7 +2711,7 @@ MOD18_0223AC24: ; 0x0223AC24 str r5, [r4, #0x10] ldr r0, [r5, #4] ldr r0, [r0, #0x1c] - bl FUN_021F4608 + bl MOD05_021F4608 ldr r0, [r5, #0xc] bl FUN_020462AC bl FUN_0205EDBC @@ -6785,10 +6785,10 @@ _0223CB58: .word 0x00000808 thumb_func_start MOD18_0223CB5C MOD18_0223CB5C: ; 0x0223CB5C - ldr r3, _0223CB60 ; =0x0204F7FD + ldr r3, _0223CB60 ; =FUN_0204F7FC bx r3 .align 2, 0 -_0223CB60: .word 0x0204F7FD +_0223CB60: .word FUN_0204F7FC thumb_func_end MOD18_0223CB5C thumb_func_start MOD18_0223CB64 @@ -11161,10 +11161,10 @@ _0223ECD8: .word 0x022513A0 thumb_func_start MOD18_0223ECDC MOD18_0223ECDC: ; 0x0223ECDC - ldr r3, _0223ECE0 ; =0x0204F7FD + ldr r3, _0223ECE0 ; =FUN_0204F7FC bx r3 .align 2, 0 -_0223ECE0: .word 0x0204F7FD +_0223ECE0: .word FUN_0204F7FC thumb_func_end MOD18_0223ECDC thumb_func_start MOD18_0223ECE4 @@ -11550,7 +11550,7 @@ _0223EF78: .word MOD18_02240C8C thumb_func_start MOD18_0223EF7C MOD18_0223EF7C: ; 0x0223EF7C ldr r1, _0223EF90 ; =0x022513A0 - ldr r3, _0223EF94 ; =0x0203105D + ldr r3, _0223EF94 ; =FUN_0203105C ldr r2, [r1, #4] mov r1, #0xa9 lsl r1, r1, #2 @@ -11560,7 +11560,7 @@ MOD18_0223EF7C: ; 0x0223EF7C bx r3 nop _0223EF90: .word 0x022513A0 -_0223EF94: .word 0x0203105D +_0223EF94: .word FUN_0203105C thumb_func_end MOD18_0223EF7C thumb_func_start MOD18_0223EF98 @@ -13519,20 +13519,20 @@ MOD18_0223FE98: ; 0x0223FE98 thumb_func_start MOD18_0223FEAC MOD18_0223FEAC: ; 0x0223FEAC - ldr r3, _0223FEB4 ; =0x0204E759 + ldr r3, _0223FEB4 ; =FUN_0204E758 mov r1, #2 bx r3 nop -_0223FEB4: .word 0x0204E759 +_0223FEB4: .word FUN_0204E758 thumb_func_end MOD18_0223FEAC thumb_func_start MOD18_0223FEB8 MOD18_0223FEB8: ; 0x0223FEB8 - ldr r3, _0223FEC0 ; =0x0204E759 + ldr r3, _0223FEC0 ; =FUN_0204E758 mov r1, #2 bx r3 nop -_0223FEC0: .word 0x0204E759 +_0223FEC0: .word FUN_0204E758 thumb_func_end MOD18_0223FEB8 thumb_func_start MOD18_0223FEC4 @@ -13549,82 +13549,82 @@ MOD18_0223FEC4: ; 0x0223FEC4 thumb_func_start MOD18_0223FED8 MOD18_0223FED8: ; 0x0223FED8 - ldr r3, _0223FEE0 ; =0x0204E179 + ldr r3, _0223FEE0 ; =FUN_0204E178 mov r1, #0 add r2, r1, #0 bx r3 .align 2, 0 -_0223FEE0: .word 0x0204E179 +_0223FEE0: .word FUN_0204E178 thumb_func_end MOD18_0223FED8 thumb_func_start MOD18_0223FEE4 MOD18_0223FEE4: ; 0x0223FEE4 - ldr r3, _0223FEEC ; =0x0204E179 + ldr r3, _0223FEEC ; =FUN_0204E178 mov r1, #1 mov r2, #0 bx r3 .align 2, 0 -_0223FEEC: .word 0x0204E179 +_0223FEEC: .word FUN_0204E178 thumb_func_end MOD18_0223FEE4 thumb_func_start MOD18_0223FEF0 MOD18_0223FEF0: ; 0x0223FEF0 - ldr r3, _0223FEF8 ; =0x0204E179 + ldr r3, _0223FEF8 ; =FUN_0204E178 mov r1, #2 mov r2, #0 bx r3 .align 2, 0 -_0223FEF8: .word 0x0204E179 +_0223FEF8: .word FUN_0204E178 thumb_func_end MOD18_0223FEF0 thumb_func_start MOD18_0223FEFC MOD18_0223FEFC: ; 0x0223FEFC - ldr r3, _0223FF04 ; =0x0204E179 + ldr r3, _0223FF04 ; =FUN_0204E178 mov r1, #3 mov r2, #0 bx r3 .align 2, 0 -_0223FF04: .word 0x0204E179 +_0223FF04: .word FUN_0204E178 thumb_func_end MOD18_0223FEFC thumb_func_start MOD18_0223FF08 MOD18_0223FF08: ; 0x0223FF08 - ldr r3, _0223FF10 ; =0x0204E179 + ldr r3, _0223FF10 ; =FUN_0204E178 mov r1, #0 mov r2, #1 bx r3 .align 2, 0 -_0223FF10: .word 0x0204E179 +_0223FF10: .word FUN_0204E178 thumb_func_end MOD18_0223FF08 thumb_func_start MOD18_0223FF14 MOD18_0223FF14: ; 0x0223FF14 - ldr r3, _0223FF1C ; =0x0204E179 + ldr r3, _0223FF1C ; =FUN_0204E178 mov r1, #1 add r2, r1, #0 bx r3 .align 2, 0 -_0223FF1C: .word 0x0204E179 +_0223FF1C: .word FUN_0204E178 thumb_func_end MOD18_0223FF14 thumb_func_start MOD18_0223FF20 MOD18_0223FF20: ; 0x0223FF20 - ldr r3, _0223FF28 ; =0x0204E179 + ldr r3, _0223FF28 ; =FUN_0204E178 mov r1, #2 mov r2, #1 bx r3 .align 2, 0 -_0223FF28: .word 0x0204E179 +_0223FF28: .word FUN_0204E178 thumb_func_end MOD18_0223FF20 thumb_func_start MOD18_0223FF2C MOD18_0223FF2C: ; 0x0223FF2C - ldr r3, _0223FF34 ; =0x0204E179 + ldr r3, _0223FF34 ; =FUN_0204E178 mov r1, #3 mov r2, #1 bx r3 .align 2, 0 -_0223FF34: .word 0x0204E179 +_0223FF34: .word FUN_0204E178 thumb_func_end MOD18_0223FF2C thumb_func_start MOD18_0223FF38 @@ -13863,7 +13863,7 @@ MOD18_022400A0: ; 0x022400A0 ldr r0, [r0, #4] mov r2, #0 ldr r0, [r0, #0x40] - bl FUN_021E5B30 + bl MOD05_021E5B30 bl MOD18_0223D638 ldr r2, _022400F8 ; =0x022513A0 mov r1, #0 @@ -18630,11 +18630,11 @@ _022425C4: .word 0x022513A0 thumb_func_start MOD18_022425C8 MOD18_022425C8: ; 0x022425C8 - ldr r3, _022425D0 ; =0x0204E759 + ldr r3, _022425D0 ; =FUN_0204E758 mov r1, #2 bx r3 nop -_022425D0: .word 0x0204E759 +_022425D0: .word FUN_0204E758 thumb_func_end MOD18_022425C8 thumb_func_start MOD18_022425D4 @@ -20189,11 +20189,11 @@ _0224321C: .word 0x022513A0 thumb_func_start MOD18_02243220 MOD18_02243220: ; 0x02243220 - ldr r3, _02243228 ; =0x0204E759 + ldr r3, _02243228 ; =FUN_0204E758 mov r1, #2 bx r3 nop -_02243228: .word 0x0204E759 +_02243228: .word FUN_0204E758 thumb_func_end MOD18_02243220 thumb_func_start MOD18_0224322C @@ -20943,11 +20943,11 @@ _02243808: .word 0x022513A0 thumb_func_start MOD18_0224380C MOD18_0224380C: ; 0x0224380C - ldr r3, _02243814 ; =0x0204E759 + ldr r3, _02243814 ; =FUN_0204E758 mov r1, #2 bx r3 nop -_02243814: .word 0x0204E759 +_02243814: .word FUN_0204E758 thumb_func_end MOD18_0224380C thumb_func_start MOD18_02243818 @@ -21213,11 +21213,11 @@ _02243A14: .word 0x022513A0 thumb_func_start MOD18_02243A18 MOD18_02243A18: ; 0x02243A18 - ldr r3, _02243A20 ; =0x0204E759 + ldr r3, _02243A20 ; =FUN_0204E758 mov r1, #2 bx r3 nop -_02243A20: .word 0x0204E759 +_02243A20: .word FUN_0204E758 thumb_func_end MOD18_02243A18 thumb_func_start MOD18_02243A24 @@ -24592,10 +24592,10 @@ _022453DC: .word 0x00001284 thumb_func_start MOD18_022453E0 MOD18_022453E0: ; 0x022453E0 - ldr r3, _022453E4 ; =0x0204F7FD + ldr r3, _022453E4 ; =FUN_0204F7FC bx r3 .align 2, 0 -_022453E4: .word 0x0204F7FD +_022453E4: .word FUN_0204F7FC thumb_func_end MOD18_022453E0 thumb_func_start MOD18_022453E8 @@ -26007,11 +26007,11 @@ _02245F18: .word 0x000013E6 thumb_func_start MOD18_02245F1C MOD18_02245F1C: ; 0x02245F1C - ldr r3, _02245F24 ; =0x020311DD + ldr r3, _02245F24 ; =FUN_020311DC mov r0, #0x38 bx r3 nop -_02245F24: .word 0x020311DD +_02245F24: .word FUN_020311DC thumb_func_end MOD18_02245F1C thumb_func_start MOD18_02245F28 @@ -26605,7 +26605,7 @@ _02246394: ldr r1, [r1] add r1, #0xa0 ldr r1, [r1] - bl FUN_021E7C80 + bl MOD05_021E7C80 _022463C2: ldr r0, [sp, #8] ldr r2, _02246428 ; =0x000001AD @@ -26634,7 +26634,7 @@ _022463C2: add r0, #0xa0 ldr r0, [r0] ldr r1, [r1, #0x2c] - bl FUN_021E7FBC + bl MOD05_021E7FBC ldr r1, _02246414 ; =0x022513EC ldr r1, [r1] add r2, r1, r5 @@ -26672,7 +26672,7 @@ MOD18_02246430: ; 0x02246430 ldr r1, [r2] add r1, #0xa0 ldr r1, [r1] - bl FUN_021E7C80 + bl MOD05_021E7C80 ldr r1, _02246464 ; =0x022513EC mov r3, #0xff ldr r0, [r1] @@ -26764,7 +26764,7 @@ MOD18_022464D0: ; 0x022464D0 b _0224650E _022464EE: add r0, r5, #0 - bl FUN_02037350 + bl LoadOverlay_MODULE_05 ldr r0, [r4, #0x10] add r0, r0, #1 str r0, [r4, #0x10] @@ -27303,7 +27303,7 @@ _02246934: add r0, r5, #0 add r1, r6, #0 add r2, r7, #0 - bl FUN_021E5B30 + bl MOD05_021E5B30 mov r0, #3 str r0, [r4, #0xc] b _02246A80 @@ -27442,7 +27442,7 @@ _02246A80: add r0, r5, #0 add r1, r6, #0 mov r2, #0 - bl FUN_021E5B30 + bl MOD05_021E5B30 ldr r0, [sp, #4] bl FUN_0200CAB4 add r0, r4, #0 @@ -28484,17 +28484,17 @@ MOD18_022472C8: ; 0x022472C8 ldr r0, [r0] add r0, #0xa0 ldr r0, [r0] - bl FUN_021E7ED0 + bl MOD05_021E7ED0 add r1, r0, #0 add r0, sp, #8 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 ldr r1, _0224731C ; =0x022513EC mov r0, #0 ldr r1, [r1] ldr r1, [r1] add r1, #0xa0 ldr r1, [r1] - bl FUN_021E7C80 + bl MOD05_021E7C80 ldr r0, _0224731C ; =0x022513EC ldr r2, _02247320 ; =0x0000013D ldr r0, [r0] @@ -28510,7 +28510,7 @@ MOD18_022472C8: ; 0x022472C8 add r2, r3, r2 ldr r1, [r1, #0x2c] add r3, sp, #8 - bl FUN_021E7FBC + bl MOD05_021E7FBC add sp, #0x14 pop {r3, r4, pc} .align 2, 0 @@ -31952,22 +31952,22 @@ _02248E68: .word 0x00002710 thumb_func_start MOD18_02248E6C MOD18_02248E6C: ; 0x02248E6C - ldr r3, _02248E74 ; =0x02030C4D + ldr r3, _02248E74 ; =FUN_02030C4C mov r0, #0x4b add r1, r2, #0 bx r3 .align 2, 0 -_02248E74: .word 0x02030C4D +_02248E74: .word FUN_02030C4C thumb_func_end MOD18_02248E6C thumb_func_start MOD18_02248E78 MOD18_02248E78: ; 0x02248E78 - ldr r3, _02248E80 ; =0x02030C4D + ldr r3, _02248E80 ; =FUN_02030C4C mov r0, #0x4c add r1, r2, #0 bx r3 .align 2, 0 -_02248E80: .word 0x02030C4D +_02248E80: .word FUN_02030C4C thumb_func_end MOD18_02248E78 thumb_func_start MOD18_02248E84 @@ -32040,12 +32040,12 @@ MOD18_02248EF0: ; 0x02248EF0 thumb_func_start MOD18_02248EF4 MOD18_02248EF4: ; 0x02248EF4 - ldr r3, _02248EFC ; =0x02030C4D + ldr r3, _02248EFC ; =FUN_02030C4C mov r0, #0x4e add r1, r2, #0 bx r3 .align 2, 0 -_02248EFC: .word 0x02030C4D +_02248EFC: .word FUN_02030C4C thumb_func_end MOD18_02248EF4 thumb_func_start MOD18_02248F00 @@ -32114,12 +32114,12 @@ MOD18_02248F74: ; 0x02248F74 thumb_func_start MOD18_02248F78 MOD18_02248F78: ; 0x02248F78 - ldr r3, _02248F80 ; =0x02030C4D + ldr r3, _02248F80 ; =FUN_02030C4C mov r0, #0x50 add r1, r2, #0 bx r3 .align 2, 0 -_02248F80: .word 0x02030C4D +_02248F80: .word FUN_02030C4C thumb_func_end MOD18_02248F78 thumb_func_start MOD18_02248F84 @@ -32230,7 +32230,7 @@ MOD18_02249010: ; 0x02249010 add r0, #0x74 mov r2, #8 mov r3, #0xb - bl FUN_021D959C + bl MOD05_021D959C mov r0, #2 str r0, [sp] mov r0, #1 @@ -32243,7 +32243,7 @@ MOD18_02249010: ; 0x02249010 add r0, #0x74 mov r2, #9 mov r3, #0 - bl FUN_021D967C + bl MOD05_021D967C mov r0, #0xe3 lsl r0, r0, #6 str r0, [sp] @@ -32252,7 +32252,7 @@ MOD18_02249010: ; 0x02249010 add r0, #0x74 mov r2, #1 mov r3, #0 - bl FUN_021D96F4 + bl MOD05_021D96F4 mov r0, #0xe3 lsl r0, r0, #6 str r0, [sp] @@ -32261,7 +32261,7 @@ MOD18_02249010: ; 0x02249010 add r0, #0x74 mov r1, #0x42 add r3, r2, #0 - bl FUN_021D9708 + bl MOD05_021D9708 mov r0, #1 str r0, [sp] mov r0, #0xe3 @@ -32272,11 +32272,11 @@ MOD18_02249010: ; 0x02249010 add r0, #0x74 mov r2, #2 mov r3, #0 - bl FUN_021D971C + bl MOD05_021D971C ldr r0, [sp, #0xc] ldr r1, _022491C0 ; =0x022505F0 add r0, #0x74 - bl FUN_021D9820 + bl MOD05_021D9820 mov r2, #0x76 ldr r1, [sp, #0xc] lsl r2, r2, #2 @@ -32294,7 +32294,7 @@ MOD18_02249010: ; 0x02249010 mov r2, #8 add r0, #0x74 mov r3, #0 - bl FUN_021D96F4 + bl MOD05_021D96F4 ldr r0, _022491C4 ; =0x000038C1 mov r1, #0x42 str r0, [sp] @@ -32302,7 +32302,7 @@ MOD18_02249010: ; 0x02249010 mov r2, #7 add r0, #0x74 mov r3, #0 - bl FUN_021D9708 + bl MOD05_021D9708 mov r0, #1 str r0, [sp] ldr r0, _022491C4 ; =0x000038C1 @@ -32312,7 +32312,7 @@ MOD18_02249010: ; 0x02249010 mov r2, #0xa add r0, #0x74 mov r3, #0 - bl FUN_021D971C + bl MOD05_021D971C ldr r0, [sp, #0x14] mov r4, #0 cmp r0, #0 @@ -32364,7 +32364,7 @@ _02249128: strh r1, [r0, #6] ldr r0, [sp, #0x18] add r1, sp, #0x68 - bl FUN_021D9820 + bl MOD05_021D9820 mov r1, #0x77 lsl r1, r1, #2 add r2, sp, #0x5c @@ -32450,7 +32450,7 @@ _022491E8: _022491FE: add r5, #0x74 add r0, r5, #0 - bl FUN_021D99F8 + bl MOD05_021D99F8 pop {r3, r4, r5, r6, r7, pc} thumb_func_end MOD18_022491D0 @@ -32612,12 +32612,12 @@ _02249324: .word 0x022513F8 thumb_func_start MOD18_02249328 MOD18_02249328: ; 0x02249328 ldr r0, _02249330 ; =0x022513F8 - ldr r3, _02249334 ; =0x02016A19 + ldr r3, _02249334 ; =FUN_02016A18 ldr r0, [r0] bx r3 .align 2, 0 _02249330: .word 0x022513F8 -_02249334: .word 0x02016A19 +_02249334: .word FUN_02016A18 thumb_func_end MOD18_02249328 thumb_func_start MOD18_02249338 @@ -32823,26 +32823,26 @@ _0224949C: .word 0x022513F8 MOD18_022494A0: ; 0x022494A0 add r1, r0, #0 ldr r0, _022494AC ; =0x022513F8 - ldr r3, _022494B0 ; =0x02026299 + ldr r3, _022494B0 ; =FUN_02026298 ldr r0, [r0] ldr r0, [r0] bx r3 .align 2, 0 _022494AC: .word 0x022513F8 -_022494B0: .word 0x02026299 +_022494B0: .word FUN_02026298 thumb_func_end MOD18_022494A0 thumb_func_start MOD18_022494B4 MOD18_022494B4: ; 0x022494B4 add r1, r0, #0 ldr r0, _022494C0 ; =0x022513F8 - ldr r3, _022494C4 ; =0x02025FD9 + ldr r3, _022494C4 ; =FUN_02025FD8 ldr r0, [r0] ldr r0, [r0] bx r3 .align 2, 0 _022494C0: .word 0x022513F8 -_022494C4: .word 0x02025FD9 +_022494C4: .word FUN_02025FD8 thumb_func_end MOD18_022494B4 thumb_func_start MOD18_022494C8 @@ -34102,7 +34102,7 @@ MOD18_02249EF4: ; 0x02249EF4 str r1, [r0, r2] ldr r1, _02249F24 ; =MOD18_02249EBC str r1, [r0, #0x60] - ldr r1, _02249F28 ; =0x020260ED + ldr r1, _02249F28 ; =FUN_020260EC bx r3 nop _02249F14: .word MOD18_022493C8 @@ -34110,7 +34110,7 @@ _02249F18: .word MOD18_022493F4 _02249F1C: .word MOD18_0224940C _02249F20: .word MOD18_02249F8C _02249F24: .word MOD18_02249EBC -_02249F28: .word 0x020260ED +_02249F28: .word FUN_020260EC thumb_func_end MOD18_02249EF4 thumb_func_start MOD18_02249F2C @@ -34145,7 +34145,7 @@ MOD18_02249F2C: ; 0x02249F2C ldr r0, [r4, r0] add r1, #0x1c strh r0, [r4, r1] - ldr r1, _02249F88 ; =0x020260ED + ldr r1, _02249F88 ; =FUN_020260EC add r0, r4, #0 bl MOD18_02249F8C pop {r4, pc} @@ -34154,7 +34154,7 @@ _02249F78: .word MOD18_022493C8 _02249F7C: .word MOD18_022493F4 _02249F80: .word MOD18_0224940C _02249F84: .word MOD18_02249EBC -_02249F88: .word 0x020260ED +_02249F88: .word FUN_020260EC thumb_func_end MOD18_02249F2C thumb_func_start MOD18_02249F8C @@ -35487,7 +35487,7 @@ MOD18_0224AA4C: ; 0x0224AA4C ldr r0, [r4, r0] add r1, #0x1c strh r0, [r4, r1] - ldr r1, _0224AAA0 ; =0x02025FFD + ldr r1, _0224AAA0 ; =FUN_02025FFC add r0, r4, #0 bl MOD18_0224AB08 pop {r4, pc} @@ -35495,7 +35495,7 @@ MOD18_0224AA4C: ; 0x0224AA4C _0224AA94: .word MOD18_02249378 _0224AA98: .word MOD18_0224938C _0224AA9C: .word MOD18_0224A9B4 -_0224AAA0: .word 0x02025FFD +_0224AAA0: .word FUN_02025FFC thumb_func_end MOD18_0224AA4C thumb_func_start MOD18_0224AAA4 @@ -35512,14 +35512,14 @@ MOD18_0224AAA4: ; 0x0224AAA4 str r1, [r0, #0x60] mov r1, #0 str r1, [r0, #0x64] - ldr r1, _0224AAD0 ; =0x02025FFD + ldr r1, _0224AAD0 ; =FUN_02025FFC bx r3 .align 2, 0 _0224AAC0: .word MOD18_02249378 _0224AAC4: .word MOD18_0224938C _0224AAC8: .word MOD18_0224A9B4 _0224AACC: .word MOD18_0224AB08 -_0224AAD0: .word 0x02025FFD +_0224AAD0: .word FUN_02025FFC thumb_func_end MOD18_0224AAA4 thumb_func_start MOD18_0224AAD4 @@ -35536,7 +35536,7 @@ MOD18_0224AAD4: ; 0x0224AAD4 str r1, [r0, #0x60] ldr r1, _0224AB00 ; =MOD18_0224A9EC str r1, [r0, #0x64] - ldr r1, _0224AB04 ; =0x02025E21 + ldr r1, _0224AB04 ; =FUN_02025E20 bx r3 .align 2, 0 _0224AAF0: .word MOD18_0224934C @@ -35544,7 +35544,7 @@ _0224AAF4: .word MOD18_02249360 _0224AAF8: .word MOD18_0224A9B4 _0224AAFC: .word MOD18_0224AB08 _0224AB00: .word MOD18_0224A9EC -_0224AB04: .word 0x02025E21 +_0224AB04: .word FUN_02025E20 thumb_func_end MOD18_0224AAD4 thumb_func_start MOD18_0224AB08 @@ -36307,11 +36307,11 @@ _0224B118: thumb_func_start MOD18_0224B11C MOD18_0224B11C: ; 0x0224B11C - ldr r3, _0224B124 ; =0x0204F775 + ldr r3, _0224B124 ; =FUN_0204F774 mov r0, #0x40 bx r3 nop -_0224B124: .word 0x0204F775 +_0224B124: .word FUN_0204F774 thumb_func_end MOD18_0224B11C thumb_func_start MOD18_0224B128 @@ -40932,11 +40932,11 @@ MOD18_0224D734: ; 0x0224D734 add r3, r1, #0 add r1, r2, #0 add r2, r3, #0 - ldr r3, _0224D740 ; =0x02030BC5 + ldr r3, _0224D740 ; =FUN_02030BC4 mov r0, #0x52 bx r3 .align 2, 0 -_0224D740: .word 0x02030BC5 +_0224D740: .word FUN_02030BC4 thumb_func_end MOD18_0224D734 thumb_func_start MOD18_0224D744 @@ -40990,10 +40990,10 @@ _0224D790: .word 0x022513FC thumb_func_start MOD18_0224D794 MOD18_0224D794: ; 0x0224D794 - ldr r3, _0224D798 ; =0x0204F7FD + ldr r3, _0224D798 ; =FUN_0204F7FC bx r3 .align 2, 0 -_0224D798: .word 0x0204F7FD +_0224D798: .word FUN_0204F7FC thumb_func_end MOD18_0224D794 thumb_func_start MOD18_0224D79C @@ -42024,11 +42024,11 @@ MOD18_0224DF40: ; 0x0224DF40 thumb_func_start MOD18_0224DF54 MOD18_0224DF54: ; 0x0224DF54 - ldr r3, _0224DF5C ; =0x0200B7A9 + ldr r3, _0224DF5C ; =FUN_0200B7A8 ldr r0, [r0, #0x28] bx r3 nop -_0224DF5C: .word 0x0200B7A9 +_0224DF5C: .word FUN_0200B7A8 thumb_func_end MOD18_0224DF54 thumb_func_start MOD18_0224DF60 @@ -42156,12 +42156,12 @@ _0224E018: .word 0x0225074A thumb_func_start MOD18_0224E01C MOD18_0224E01C: ; 0x0224E01C - ldr r3, _0224E024 ; =0x02016999 + ldr r3, _0224E024 ; =FUN_02016998 mov r0, #4 mov r1, #0x44 bx r3 .align 2, 0 -_0224E024: .word 0x02016999 +_0224E024: .word FUN_02016998 thumb_func_end MOD18_0224E01C thumb_func_start MOD18_0224E028 @@ -42194,10 +42194,10 @@ _0224E058: .word 0x000003D9 thumb_func_start MOD18_0224E05C MOD18_0224E05C: ; 0x0224E05C - ldr r3, _0224E060 ; =0x02016A19 + ldr r3, _0224E060 ; =FUN_02016A18 bx r3 .align 2, 0 -_0224E060: .word 0x02016A19 +_0224E060: .word FUN_02016A18 thumb_func_end MOD18_0224E05C thumb_func_start MOD18_0224E064 @@ -42508,12 +42508,12 @@ _0224E2CC: thumb_func_start MOD18_0224E2D8 MOD18_0224E2D8: ; 0x0224E2D8 - ldr r3, _0224E2E0 ; =0x02016999 + ldr r3, _0224E2E0 ; =FUN_02016998 mov r0, #4 mov r1, #0x4c bx r3 .align 2, 0 -_0224E2E0: .word 0x02016999 +_0224E2E0: .word FUN_02016998 thumb_func_end MOD18_0224E2D8 thumb_func_start MOD18_0224E2E4 @@ -42555,10 +42555,10 @@ MOD18_0224E314: ; 0x0224E314 thumb_func_start MOD18_0224E320 MOD18_0224E320: ; 0x0224E320 - ldr r3, _0224E324 ; =0x02016A19 + ldr r3, _0224E324 ; =FUN_02016A18 bx r3 .align 2, 0 -_0224E324: .word 0x02016A19 +_0224E324: .word FUN_02016A18 thumb_func_end MOD18_0224E320 thumb_func_start MOD18_0224E328 @@ -42930,7 +42930,7 @@ _0224E5CE: ldr r0, _0224E6A0 ; =MOD18_0224E3F0 str r7, [sp, #0x4c] str r0, [sp, #0x34] - ldr r0, _0224E6A4 ; =0x02025E21 + ldr r0, _0224E6A4 ; =FUN_02025E20 str r0, [sp] str r7, [sp, #4] mov r0, #1 @@ -42978,7 +42978,7 @@ _0224E694: .word 0x00000115 _0224E698: .word 0x022507D0 _0224E69C: .word MOD18_0224E2B4 _0224E6A0: .word MOD18_0224E3F0 -_0224E6A4: .word 0x02025E21 +_0224E6A4: .word FUN_02025E20 thumb_func_end MOD18_0224E430 thumb_func_start MOD18_0224E6A8 @@ -43121,7 +43121,7 @@ _0224E776: add r0, #0xa0 ldr r0, [r0] ldr r1, [r6, #0x2c] - bl FUN_021E7FBC + bl MOD05_021E7FBC str r0, [r4, #0x10] mov r0, #0x10 str r0, [r7, #0x3c] @@ -43142,13 +43142,13 @@ _0224E776: thumb_func_start MOD18_0224E7E4 MOD18_0224E7E4: ; 0x0224E7E4 add r2, r0, #0 - ldr r3, _0224E7F0 ; =0x021E7C81 + ldr r3, _0224E7F0 ; =MOD05_021E7C80 add r2, #0xa0 add r0, r1, #0 ldr r1, [r2] bx r3 .align 2, 0 -_0224E7F0: .word 0x021E7C81 +_0224E7F0: .word MOD05_021E7C80 thumb_func_end MOD18_0224E7E4 thumb_func_start MOD18_0224E7F4 @@ -43474,7 +43474,7 @@ MOD18_0224EA74: ; 0x0224EA74 ldr r1, _0224EAC8 ; =0x0000050C str r0, [r4, r1] ldr r0, [r4, r1] - bl FUN_021D80E4 + bl MOD05_021D80E4 ldr r1, _0224EACC ; =0x000004FC add r2, r4, #0 str r0, [r4, r1] @@ -43687,11 +43687,11 @@ _0224EC3A: add r0, #0xa0 ldr r0, [r0] ldr r1, [r4, #0x4c] - bl FUN_021E7EEC + bl MOD05_021E7EEC add r6, r0, #0 add r0, sp, #0xc add r1, r6, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 ldr r1, [sp, #0xc] ldr r0, [sp] add r0, r1, r0 @@ -43704,7 +43704,7 @@ _0224EC3A: lsl r0, r0, #0xc str r0, [sp, #0x10] add r0, r6, #0 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 _0224EC88: ldr r0, _0224EDC8 ; =0x021C48B8 ldr r2, [r0, #0x48] @@ -44894,11 +44894,11 @@ _0224F604: ldr r1, [r4, #0x4c] add r0, #0xa0 ldr r0, [r0] - bl FUN_021E7EEC + bl MOD05_021E7EEC add r6, r0, #0 add r0, sp, #8 add r1, r6, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 ldr r0, [sp, #8] add r1, sp, #8 add r0, r0, r7 @@ -44910,7 +44910,7 @@ _0224F604: lsl r0, r0, #0xc str r0, [sp, #0xc] add r0, r6, #0 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 _0224F650: ldr r0, _0224F75C ; =0x021C48B8 ldr r2, [r0, #0x48] @@ -45489,7 +45489,7 @@ _0224FA66: add r0, #0xa0 ldr r0, [r0] ldr r1, [r5, #0x2c] - bl FUN_021E7FBC + bl MOD05_021E7FBC str r0, [r4, #0x14] _0224FAA8: add r6, r6, #1 @@ -45572,10 +45572,10 @@ _0224FB1E: ldr r1, [r4, #0x10] add r0, #0xa0 ldr r0, [r0] - bl FUN_021E7EEC + bl MOD05_021E7EEC add r1, r0, #0 add r0, sp, #0 - bl FUN_021E7EA0 + bl MOD05_021E7EA0 add r3, sp, #0 add r2, r5, #0 ldmia r3!, {r0, r1} @@ -45617,10 +45617,10 @@ _0224FB7A: ldr r1, [r4, #0x2c] add r0, #0xa0 ldr r0, [r0] - bl FUN_021E7EEC + bl MOD05_021E7EEC add r4, #0x10 add r1, r4, #0 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 pop {r4, pc} thumb_func_end MOD18_0224FB64 @@ -45659,11 +45659,11 @@ _0224FBC4: .word 0x02251350 thumb_func_start MOD18_0224FBC8 MOD18_0224FBC8: ; 0x0224FBC8 - ldr r3, _0224FBD0 ; =0x02016A19 + ldr r3, _0224FBD0 ; =FUN_02016A18 ldr r0, [r0, #0x54] bx r3 nop -_0224FBD0: .word 0x02016A19 +_0224FBD0: .word FUN_02016A18 thumb_func_end MOD18_0224FBC8 thumb_func_start MOD18_0224FBD4 @@ -45802,9 +45802,9 @@ MOD18_0224FC18: ; 0x0224FC18 add r0, #0xa0 str r0, [sp] ldr r0, [r0] - bl FUN_021E7EEC + bl MOD05_021E7EEC add r1, sp, #8 - bl FUN_021E7EB0 + bl MOD05_021E7EB0 _0224FCCE: add sp, #0x24 pop {r4, r5, r6, r7, pc} @@ -46159,9 +46159,9 @@ MOD18_0224FF24: ; 0x0224FF24 str r1, [r4, #0xc] ldr r0, [r0] ldr r1, [r4] - bl FUN_021E7EEC + bl MOD05_021E7EEC ldr r1, [r4, #0xc] - bl FUN_021E7EC0 + bl MOD05_021E7EC0 _0224FF60: pop {r4, pc} .align 2, 0 @@ -46176,9 +46176,9 @@ MOD18_0224FF64: ; 0x0224FF64 add r0, #0xa0 ldr r0, [r0] ldr r1, [r1] - bl FUN_021E7EEC + bl MOD05_021E7EEC mov r1, #0 - bl FUN_021E7EC0 + bl MOD05_021E7EC0 _0224FF7C: pop {r3, pc} .align 2, 0 @@ -46251,9 +46251,13 @@ _0224FFDC: .word 0x02250834 _0224FFE0: .word 0x022507F0 thumb_func_end MOD18_0224FFA0 - .section .data + .section .rodata ; 0x0224FFE4 - .incbin "baserom.nds", 0x281B44, 0x139C + .incbin "baserom.nds", 0x281B44, 0x874 + + .section .data + ; 0x02250860 + .incbin "baserom.nds", 0x2823C0, 0xB20 .section .bss ; 0x02251380 diff --git a/arm9/modules/19/asm/module_19.s b/arm9/modules/19/asm/module_19.s index 76dad3e4..52c045cc 100644 --- a/arm9/modules/19/asm/module_19.s +++ b/arm9/modules/19/asm/module_19.s @@ -101,6 +101,6 @@ MOD19_02252504: ; 0x02252504 bx lr thumb_func_end MOD19_02252504 - .section .data + .section .rodata ; 0x02252508 - .incbin "baserom.nds", 0x2830C8, 0x38 + .incbin "baserom.nds", 0x2830C8, 0x1c diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s index afe8646c..2975c2d8 100644 --- a/arm9/modules/20/asm/module_20.s +++ b/arm9/modules/20/asm/module_20.s @@ -5,10 +5,10 @@ thumb_func_start MOD20_02252440 MOD20_02252440: ; 0x02252440 - ldr r3, _02252444 ; =0x02037791 + ldr r3, _02252444 ; =FUN_02037790 bx r3 .align 2, 0 -_02252444: .word 0x02037791 +_02252444: .word FUN_02037790 thumb_func_end MOD20_02252440 thumb_func_start MOD20_02252448 @@ -1136,11 +1136,11 @@ _02252C04: thumb_func_start MOD20_02252C08 MOD20_02252C08: ; 0x02252C08 - ldr r3, _02252C10 ; =0x0204646D + ldr r3, _02252C10 ; =FUN_0204646C ldr r0, [r0, #0x5c] bx r3 nop -_02252C10: .word 0x0204646D +_02252C10: .word FUN_0204646C thumb_func_end MOD20_02252C08 thumb_func_start MOD20_02252C14 @@ -4565,6 +4565,6 @@ _022544BC: .word 0x022547C4 _022544C0: .word 0x022547C5 thumb_func_end MOD20_02254488 - .section .data + .section .rodata ; 0x022544C4 - .incbin "baserom.nds", 0x285284, 0x37C + .incbin "baserom.nds", 0x285284, 0x374 diff --git a/arm9/modules/21/asm/module_21.s b/arm9/modules/21/asm/module_21.s index cea8f6e8..45ec356b 100644 --- a/arm9/modules/21/asm/module_21.s +++ b/arm9/modules/21/asm/module_21.s @@ -423,20 +423,20 @@ _02254B30: .word 0x02254DAC thumb_func_start MOD21_02254B34 MOD21_02254B34: ; 0x02254B34 - ldr r3, _02254B3C ; =0x02253795 + ldr r3, _02254B3C ; =MOD20_02253794 add r0, #8 bx r3 nop -_02254B3C: .word 0x02253795 +_02254B3C: .word MOD20_02253794 thumb_func_end MOD21_02254B34 thumb_func_start MOD21_02254B40 MOD21_02254B40: ; 0x02254B40 - ldr r3, _02254B48 ; =0x022537B9 + ldr r3, _02254B48 ; =MOD20_022537B8 add r0, #8 bx r3 nop -_02254B48: .word 0x022537B9 +_02254B48: .word MOD20_022537B8 thumb_func_end MOD21_02254B40 thumb_func_start MOD21_02254B4C @@ -721,6 +721,15 @@ _02254D78: .word 0x040002A0 _02254D7C: .word 0x040002A8 thumb_func_end MOD21_02254C5C - .section .data + .section .rodata ; 0x02254D80 - .incbin "baserom.nds", 0x285B40, 0x80 + .incbin "baserom.nds", 0x285B40, 0x68 + + ; Dumb hack because the compiler aligns to 16 instead of 8 + ;.section .sinit + .global SDK_OVERLAY.MODULE_21.SINIT_START + .global SDK_OVERLAY.MODULE_21.SINIT_END +SDK_OVERLAY.MODULE_21.SINIT_START: + .word MOD21_02254840 + .word 0 +SDK_OVERLAY.MODULE_21.SINIT_END: diff --git a/arm9/modules/22/asm/module_22.s b/arm9/modules/22/asm/module_22.s index 77e6bff4..5a63c8bc 100644 --- a/arm9/modules/22/asm/module_22.s +++ b/arm9/modules/22/asm/module_22.s @@ -626,11 +626,11 @@ _02254CD0: .word MOD22_02254CE0 thumb_func_start MOD22_02254CD4 MOD22_02254CD4: ; 0x02254CD4 - ldr r3, _02254CDC ; =0x02254199 + ldr r3, _02254CDC ; =MOD20_02254198 ldr r0, [r0, #0x5c] bx r3 nop -_02254CDC: .word 0x02254199 +_02254CDC: .word MOD20_02254198 thumb_func_end MOD22_02254CD4 thumb_func_start MOD22_02254CE0 @@ -1124,20 +1124,20 @@ _02255068: .word 0x02255670 thumb_func_start MOD22_0225506C MOD22_0225506C: ; 0x0225506C - ldr r3, _02255074 ; =0x02253795 + ldr r3, _02255074 ; =MOD20_02253794 add r0, #8 bx r3 nop -_02255074: .word 0x02253795 +_02255074: .word MOD20_02253794 thumb_func_end MOD22_0225506C thumb_func_start MOD22_02255078 MOD22_02255078: ; 0x02255078 - ldr r3, _02255080 ; =0x022537B9 + ldr r3, _02255080 ; =MOD20_022537B8 add r0, #8 bx r3 nop -_02255080: .word 0x022537B9 +_02255080: .word MOD20_022537B8 thumb_func_end MOD22_02255078 thumb_func_start MOD22_02255084 @@ -1840,6 +1840,9 @@ _02255604: .align 2, 0 thumb_func_end MOD22_022555FC - .section .data + .section .rodata ; 0x02255618 - .incbin "baserom.nds", 0x2869D8, 0x128 + .incbin "baserom.nds", 0x2869D8, 0x118 + + .section .sinit + .word MOD22_02254840 diff --git a/arm9/modules/23/asm/module_23.s b/arm9/modules/23/asm/module_23.s index 6688578e..acb9bed3 100644 --- a/arm9/modules/23/asm/module_23.s +++ b/arm9/modules/23/asm/module_23.s @@ -1123,20 +1123,20 @@ _02255058: .word 0x02256040 thumb_func_start MOD23_0225505C MOD23_0225505C: ; 0x0225505C - ldr r3, _02255064 ; =0x02253795 + ldr r3, _02255064 ; =MOD20_02253794 add r0, #8 bx r3 nop -_02255064: .word 0x02253795 +_02255064: .word MOD20_02253794 thumb_func_end MOD23_0225505C thumb_func_start MOD23_02255068 MOD23_02255068: ; 0x02255068 - ldr r3, _02255070 ; =0x022537B9 + ldr r3, _02255070 ; =MOD20_022537B8 add r0, #8 bx r3 nop -_02255070: .word 0x022537B9 +_02255070: .word MOD20_022537B8 thumb_func_end MOD23_02255068 thumb_func_start MOD23_02255074 @@ -1746,10 +1746,10 @@ _0225553C: thumb_func_start MOD23_02255540 MOD23_02255540: ; 0x02255540 - ldr r3, _02255544 ; =0x02016A19 + ldr r3, _02255544 ; =FUN_02016A18 bx r3 .align 2, 0 -_02255544: .word 0x02016A19 +_02255544: .word FUN_02016A18 thumb_func_end MOD23_02255540 thumb_func_start MOD23_02255548 @@ -2789,6 +2789,14 @@ _02255C96: _02255CB8: .word 0x022560D0 thumb_func_end MOD23_02255C6C - .section .data + .section .rodata ; 0x02255CBC - .incbin "baserom.nds", 0x28807C, 0x484 + .incbin "baserom.nds", 0x28807C, 0x46C + + ; .section .sinit + .global SDK_OVERLAY.MODULE_23.SINIT_START + .global SDK_OVERLAY.MODULE_23.SINIT_END +SDK_OVERLAY.MODULE_23.SINIT_START: + .word MOD23_02254840 + .word 0 +SDK_OVERLAY.MODULE_23.SINIT_END: diff --git a/arm9/modules/24/asm/module_24.s b/arm9/modules/24/asm/module_24.s index e3b9a327..ba2c3f32 100644 --- a/arm9/modules/24/asm/module_24.s +++ b/arm9/modules/24/asm/module_24.s @@ -1179,6 +1179,9 @@ _022550DC: .align 2, 0 thumb_func_end MOD24_022550D4 - .section .data + .section .rodata ; 0x022550F8 - .incbin "baserom.nds", 0x288EB8, 0xE8 + .incbin "baserom.nds", 0x288EB8, 0xC8 + + .section .sinit + .word MOD24_02254840 diff --git a/arm9/modules/25/asm/module_25.s b/arm9/modules/25/asm/module_25.s index 6df522da..e1d7b555 100644 --- a/arm9/modules/25/asm/module_25.s +++ b/arm9/modules/25/asm/module_25.s @@ -658,6 +658,9 @@ _02254CE6: pop {r4, r5, r6, pc} thumb_func_end MOD25_02254CD8 - .section .data + .section .rodata ; 0x02254CF8 - .incbin "baserom.nds", 0x2894B8, 0xA8 + .incbin "baserom.nds", 0x2894B8, 0x88 + + .section .sinit + .word MOD25_02254840 diff --git a/arm9/modules/26/asm/module_26.s b/arm9/modules/26/asm/module_26.s index 2511101e..0b8d99df 100644 --- a/arm9/modules/26/asm/module_26.s +++ b/arm9/modules/26/asm/module_26.s @@ -788,6 +788,9 @@ _02254DC2: _02254DE0: .word 0x02254FD0 thumb_func_end MOD26_02254DAC - .section .data + .section .rodata ; 0x02254DE4 - .incbin "baserom.nds", 0x289BA4, 0x25C + .incbin "baserom.nds", 0x289BA4, 0x23C + + .section .sinit + .word MOD26_02254840 diff --git a/arm9/modules/27/asm/module_27.s b/arm9/modules/27/asm/module_27.s index b9a2d1ca..13a97851 100644 --- a/arm9/modules/27/asm/module_27.s +++ b/arm9/modules/27/asm/module_27.s @@ -1448,6 +1448,14 @@ MOD27_022552D0: ; 0x022552D0 _02255338: .word 0x00000669 thumb_func_end MOD27_022552D0 - .section .data + .section .rodata ; 0x0225533C - .incbin "baserom.nds", 0x28A8FC, 0xA4 + .incbin "baserom.nds", 0x28A8FC, 0x88 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_27.SINIT_START + .global SDK_OVERLAY.MODULE_27.SINIT_END +SDK_OVERLAY.MODULE_27.SINIT_START: + .word MOD27_02254840 + .word 0 +SDK_OVERLAY.MODULE_27.SINIT_END: diff --git a/arm9/modules/28/asm/module_28.s b/arm9/modules/28/asm/module_28.s index 0ad10077..42733627 100644 --- a/arm9/modules/28/asm/module_28.s +++ b/arm9/modules/28/asm/module_28.s @@ -5,12 +5,12 @@ thumb_func_start MOD28_02254840 MOD28_02254840: ; 0x02254840 - ldr r3, _02254848 ; =0x02252979 + ldr r3, _02254848 ; =MOD20_02252978 ldr r0, _0225484C ; =MOD28_02254854 ldr r1, _02254850 ; =MOD28_022549F4 bx r3 .align 2, 0 -_02254848: .word 0x02252979 +_02254848: .word MOD20_02252978 _0225484C: .word MOD28_02254854 _02254850: .word MOD28_022549F4 thumb_func_end MOD28_02254840 @@ -519,20 +519,20 @@ _02254BE8: .word 0x02255EF4 thumb_func_start MOD28_02254BEC MOD28_02254BEC: ; 0x02254BEC - ldr r3, _02254BF4 ; =0x02253795 + ldr r3, _02254BF4 ; =MOD20_02253794 add r0, #8 bx r3 nop -_02254BF4: .word 0x02253795 +_02254BF4: .word MOD20_02253794 thumb_func_end MOD28_02254BEC thumb_func_start MOD28_02254BF8 MOD28_02254BF8: ; 0x02254BF8 - ldr r3, _02254C00 ; =0x022537B9 + ldr r3, _02254C00 ; =MOD20_022537B8 add r0, #8 bx r3 nop -_02254C00: .word 0x022537B9 +_02254C00: .word MOD20_022537B8 thumb_func_end MOD28_02254BF8 thumb_func_start MOD28_02254C04 @@ -1531,11 +1531,11 @@ MOD28_02255344: ; 0x02255344 mov r0, #0x4e lsl r0, r0, #2 ldr r0, [r1, r0] - ldr r3, _02255358 ; =0x02253F79 + ldr r3, _02255358 ; =MOD20_02253F78 mov r1, #1 bx r3 nop -_02255358: .word 0x02253F79 +_02255358: .word MOD20_02253F78 thumb_func_end MOD28_02255344 thumb_func_start MOD28_0225535C @@ -2963,5 +2963,19 @@ _02255E6E: nop _02255E74: .word 0x00000163 thumb_func_end MOD28_02255920 + + .section .rodata ; 0x02255E78 - .incbin "baserom.nds", 0x28C038, 0x148 + .incbin "baserom.nds", 0x28C038, 0xa0 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_28.SINIT_START + .global SDK_OVERLAY.MODULE_28.SINIT_END +SDK_OVERLAY.MODULE_28.SINIT_START: + .word MOD28_02254840 + .word 0 +SDK_OVERLAY.MODULE_28.SINIT_END: + + .section .data + ; 0x02255F20 + .incbin "baserom.nds", 0x28C0E0, 0xa0 diff --git a/arm9/modules/29/asm/module_29.s b/arm9/modules/29/asm/module_29.s index 818f41aa..65873dcc 100644 --- a/arm9/modules/29/asm/module_29.s +++ b/arm9/modules/29/asm/module_29.s @@ -383,7 +383,7 @@ _02254AE0: mul r1, r0 add r0, r2, r1 lsl r0, r0, #0xc - blx FX_Sqrt + bl FX_Sqrt ldrb r1, [r5, #4] lsl r2, r1, #2 ldr r1, _02254B6C ; =0x022550A8 @@ -724,13 +724,13 @@ MOD29_02254D10: ; 0x02254D10 add r0, r4, #0 add r0, #0x70 mov r1, #0x20 - blx DC_FlushRange + bl DC_FlushRange add r0, r4, #0 mov r1, #0x1a add r0, #0x70 lsl r1, r1, #4 mov r2, #0x20 - blx GXS_LoadOBJPltt + bl GXS_LoadOBJPltt add r0, r4, #0 add r0, #0x8e ldrh r1, [r0] @@ -740,13 +740,13 @@ MOD29_02254D10: ; 0x02254D10 add r0, r4, #0 add r0, #0x70 mov r1, #0x20 - blx DC_FlushRange + bl DC_FlushRange add r0, r4, #0 mov r1, #7 add r0, #0x70 lsl r1, r1, #6 mov r2, #0x20 - blx GXS_LoadOBJPltt + bl GXS_LoadOBJPltt ldr r0, [r4, #4] mov r1, #6 bl FUN_02017CD0 @@ -1121,6 +1121,14 @@ MOD29_0225508C: ; 0x0225508C .align 2, 0 thumb_func_end MOD29_0225508C - .section .data + .section .rodata ; 0x0225509C - .incbin "baserom.nds", 0x28CA5C, 0xA4 + .incbin "baserom.nds", 0x28CA5C, 0x90 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_29.SINIT_START + .global SDK_OVERLAY.MODULE_29.SINIT_END +SDK_OVERLAY.MODULE_29.SINIT_START: + .word MOD29_02254840 + .word 0 +SDK_OVERLAY.MODULE_29.SINIT_END: diff --git a/arm9/modules/30/asm/module_30.s b/arm9/modules/30/asm/module_30.s index 36581e76..924f7ad0 100644 --- a/arm9/modules/30/asm/module_30.s +++ b/arm9/modules/30/asm/module_30.s @@ -731,4 +731,12 @@ _02254D9C: .word 0x040002A8 .section .data ; 0x02254DA0 - .incbin "baserom.nds", 0x28D160, 0xA0 + .incbin "baserom.nds", 0x28D160, 0x88 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_30.SINIT_START + .global SDK_OVERLAY.MODULE_30.SINIT_END +SDK_OVERLAY.MODULE_30.SINIT_START: + .word MOD30_02254840 + .word 0 +SDK_OVERLAY.MODULE_30.SINIT_END: diff --git a/arm9/modules/31/asm/module_31.s b/arm9/modules/31/asm/module_31.s index cdf3282a..e9c70424 100644 --- a/arm9/modules/31/asm/module_31.s +++ b/arm9/modules/31/asm/module_31.s @@ -719,6 +719,9 @@ _02254D90: .word 0x040002A0 _02254D94: .word 0x040002A8 thumb_func_end MOD31_02254D1C - .section .data + .section .rodata ; 0x02254D98 - .incbin "baserom.nds", 0x28D758, 0xA8 + .incbin "baserom.nds", 0x28D758, 0x88 + + .section .sinit + .word MOD31_02254840 diff --git a/arm9/modules/32/asm/module_32.s b/arm9/modules/32/asm/module_32.s index 135a9b15..299432f1 100644 --- a/arm9/modules/32/asm/module_32.s +++ b/arm9/modules/32/asm/module_32.s @@ -571,6 +571,14 @@ _02254C48: _02254C50: .word 0x00000663 thumb_func_end MOD32_02254C08 - .section .data + .section .rodata ; 0x02254C54 - .incbin "baserom.nds", 0x28DC14, 0x8C + .incbin "baserom.nds", 0x28DC14, 0x70 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_32.SINIT_START + .global SDK_OVERLAY.MODULE_32.SINIT_END +SDK_OVERLAY.MODULE_32.SINIT_START: + .word MOD32_02254840 + .word 0 +SDK_OVERLAY.MODULE_32.SINIT_END: diff --git a/arm9/modules/33/asm/module_33.s b/arm9/modules/33/asm/module_33.s new file mode 100644 index 00000000..67ec554d --- /dev/null +++ b/arm9/modules/33/asm/module_33.s @@ -0,0 +1,399 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD33_02254840 +MOD33_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD33_02254854 + ldr r1, _02254850 ; =MOD33_02254908 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD33_02254854 +_02254850: .word MOD33_02254908 + thumb_func_end MOD33_02254840 + + thumb_func_start MOD33_02254854 +MOD33_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x10 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD33_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD33_022548D4 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD33_022548D4 + thumb_func_end MOD33_02254854 + + thumb_func_start MOD33_0225489C +MOD33_0225489C: ; 0x0225489C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r0, #8 + add r1, r5, #4 + bl MOD33_022549AC + cmp r0, #0 + beq _022548BC + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + str r4, [r5, #0xc] + mov r0, #1 + pop {r3, r4, r5, pc} +_022548BC: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD33_0225489C + + thumb_func_start MOD33_022548C0 +MOD33_022548C0: ; 0x022548C0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + bl MOD33_022549DC + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD33_022548C0 + + thumb_func_start MOD33_022548D4 +MOD33_022548D4: ; 0x022548D4 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4] + add r5, r0, #0 + cmp r1, #3 + bhs _02254900 + lsl r2, r1, #2 + ldr r1, _02254904 ; =0x02254AF4 + add r0, r4, #0 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254900 + add r0, r4, #0 + bl MOD33_022548C0 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0xc] + bl MOD20_022529A0 +_02254900: + pop {r3, r4, r5, pc} + nop +_02254904: .word 0x02254AF4 + thumb_func_end MOD33_022548D4 + + thumb_func_start MOD33_02254908 +MOD33_02254908: ; 0x02254908 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD33_02254908 + + thumb_func_start MOD33_02254910 +MOD33_02254910: ; 0x02254910 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254918 + b _0225491A +_02254918: + mov r1, #2 +_0225491A: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD33_02254910 + + thumb_func_start MOD33_02254924 +MOD33_02254924: ; 0x02254924 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254934 + cmp r0, #1 + beq _02254944 + b _0225495E +_02254934: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD33_022549E8 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _0225495E +_02254944: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD33_02254A0C + cmp r0, #0 + beq _0225495E + ldr r0, [r4, #0xc] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD33_02254910 +_0225495E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD33_02254924 + + thumb_func_start MOD33_02254964 +MOD33_02254964: ; 0x02254964 + push {r3, lr} + ldrb r1, [r0, #2] + cmp r1, #0 + beq _02254972 + mov r1, #2 + bl MOD33_02254910 +_02254972: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD33_02254964 + + thumb_func_start MOD33_02254978 +MOD33_02254978: ; 0x02254978 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254988 + cmp r0, #1 + beq _02254998 + b _022549A6 +_02254988: + ldr r0, [r4, #8] + mov r1, #1 + bl MOD33_022549E8 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549A6 +_02254998: + ldr r0, [r4, #8] + bl MOD33_02254A18 + cmp r0, #0 + beq _022549A6 + mov r0, #1 + pop {r4, pc} +_022549A6: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD33_02254978 + + thumb_func_start MOD33_022549AC +MOD33_022549AC: ; 0x022549AC + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x30 + bl FUN_02016998 + add r4, r0, #0 + beq _022549D8 + add r0, #8 + mov r1, #8 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + cmp r0, #0 + beq _022549D8 + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_022549D8: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD33_022549AC + + thumb_func_start MOD33_022549DC +MOD33_022549DC: ; 0x022549DC + push {r3, lr} + cmp r0, #0 + beq _022549E6 + bl FUN_02016A18 +_022549E6: + pop {r3, pc} + thumb_func_end MOD33_022549DC + + thumb_func_start MOD33_022549E8 +MOD33_022549E8: ; 0x022549E8 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254A08 ; =0x02254B1C + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254A08: .word 0x02254B1C + thumb_func_end MOD33_022549E8 + + thumb_func_start MOD33_02254A0C +MOD33_02254A0C: ; 0x02254A0C + ldr r3, _02254A14 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254A14: .word MOD20_02253794 + thumb_func_end MOD33_02254A0C + + thumb_func_start MOD33_02254A18 +MOD33_02254A18: ; 0x02254A18 + ldr r3, _02254A20 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254A20: .word MOD20_022537B8 + thumb_func_end MOD33_02254A18 + + thumb_func_start MOD33_02254A24 +MOD33_02254A24: ; 0x02254A24 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD33_02254A24 + + thumb_func_start MOD33_02254A38 +MOD33_02254A38: ; 0x02254A38 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254ACC ; =0x02254B00 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r1, #8 + str r1, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r3, #6 + bl FUN_0200687C + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r5, #4] + mov r1, #6 + add r3, r2, #0 + bl FUN_02018540 + mov r0, #0x20 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #0xc + mov r1, #9 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + ldr r0, [r5, #4] + mov r1, #0xc + mov r2, #6 + bl MOD20_02253AA4 + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254AD0 ; =0x04001000 + ldr r0, _02254AD4 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD33_02254A24 + add sp, #0x14 + pop {r4, r5, pc} + nop +_02254ACC: .word 0x02254B00 +_02254AD0: .word 0x04001000 +_02254AD4: .word 0xFFFFE0FF + thumb_func_end MOD33_02254A38 + + thumb_func_start MOD33_02254AD8 +MOD33_02254AD8: ; 0x02254AD8 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + bl MOD33_02254A24 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD33_02254AD8 + + .section .rodata + ; 0x02254AF4 + .incbin "baserom.nds", 0x28E0B4, 0x4C + + .section .sinit + .word MOD33_02254840 diff --git a/arm9/modules/34/asm/module_34.s b/arm9/modules/34/asm/module_34.s new file mode 100644 index 00000000..a12d1a4a --- /dev/null +++ b/arm9/modules/34/asm/module_34.s @@ -0,0 +1,601 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD34_02254840 +MOD34_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD34_02254854 + ldr r1, _02254850 ; =MOD34_02254948 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD34_02254854 +_02254850: .word MOD34_02254948 + thumb_func_end MOD34_02254840 + + thumb_func_start MOD34_02254854 +MOD34_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x38 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD34_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD34_0225490C + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD34_0225490C + thumb_func_end MOD34_02254854 + + thumb_func_start MOD34_0225489C +MOD34_0225489C: ; 0x0225489C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r0, #0x24 + add r1, r5, #4 + bl MOD34_02254A5C + cmp r0, #0 + beq _022548DC + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + str r4, [r5, #0x28] + mov r0, #8 + str r0, [sp] + ldr r0, _022548E0 ; =0x02254C7C + ldr r2, _022548E4 ; =MOD34_02254904 + mov r1, #6 + add r3, r5, #0 + bl MOD20_02254130 + str r0, [r5, #0x2c] + mov r1, #0 + str r1, [r5, #0x30] + mov r0, #1 +_022548D0: + add r1, r1, #1 + str r0, [r5, #8] + add r5, r5, #4 + cmp r1, #6 + blt _022548D0 + pop {r3, r4, r5, pc} +_022548DC: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022548E0: .word 0x02254C7C +_022548E4: .word MOD34_02254904 + thumb_func_end MOD34_0225489C + + thumb_func_start MOD34_022548E8 +MOD34_022548E8: ; 0x022548E8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x2c] + cmp r0, #0 + beq _022548F6 + bl MOD20_02254198 +_022548F6: + ldr r0, [r4, #0x24] + bl MOD34_02254A8C + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD34_022548E8 + + thumb_func_start MOD34_02254904 +MOD34_02254904: ; 0x02254904 + str r1, [r3, #0x30] + str r0, [r3, #0x34] + bx lr + .align 2, 0 + thumb_func_end MOD34_02254904 + + thumb_func_start MOD34_0225490C +MOD34_0225490C: ; 0x0225490C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #3 + bhs _02254942 + ldr r0, [r4, #0x28] + ldr r1, [r4, #0x2c] + bl MOD20_02252C14 + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _02254944 ; =0x02254C70 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254942 + add r0, r4, #0 + bl MOD34_022548E8 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x28] + bl MOD20_022529A0 +_02254942: + pop {r3, r4, r5, pc} + .align 2, 0 +_02254944: .word 0x02254C70 + thumb_func_end MOD34_0225490C + + thumb_func_start MOD34_02254948 +MOD34_02254948: ; 0x02254948 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD34_02254948 + + thumb_func_start MOD34_02254950 +MOD34_02254950: ; 0x02254950 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254958 + b _0225495A +_02254958: + mov r1, #2 +_0225495A: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD34_02254950 + + thumb_func_start MOD34_02254964 +MOD34_02254964: ; 0x02254964 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254974 + cmp r0, #1 + beq _02254984 + b _0225499E +_02254974: + ldr r0, [r4, #0x24] + mov r1, #0 + bl MOD34_02254A98 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _0225499E +_02254984: + ldr r0, [r4, #0x24] + mov r1, #0 + bl MOD34_02254ABC + cmp r0, #0 + beq _0225499E + ldr r0, [r4, #0x28] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD34_02254950 +_0225499E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD34_02254964 + + thumb_func_start MOD34_022549A4 +MOD34_022549A4: ; 0x022549A4 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _022549B8 + mov r1, #2 + bl MOD34_02254950 + mov r0, #0 + pop {r4, pc} +_022549B8: + ldrb r0, [r4, #1] + cmp r0, #0 + beq _022549C4 + cmp r0, #1 + beq _022549F6 + b _02254A1A +_022549C4: + ldr r0, [r4, #0x30] + cmp r0, #1 + bne _02254A1A + ldr r1, [r4, #0x34] + lsl r0, r1, #2 + add r0, r4, r0 + ldr r0, [r0, #8] + cmp r0, #0 + beq _022549EE + strh r1, [r4, #0x20] + ldr r0, [r4, #0x24] + mov r1, #2 + bl MOD34_02254A98 + ldr r0, _02254A20 ; =0x00000663 + bl MOD20_02252B28 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A1A +_022549EE: + ldr r0, _02254A24 ; =0x0000066E + bl MOD20_02252B28 + b _02254A1A +_022549F6: + ldr r0, [r4, #0x30] + cmp r0, #2 + bne _02254A0A + ldr r0, [r4, #0x24] + mov r1, #3 + bl MOD34_02254A98 + mov r0, #0 + strb r0, [r4, #1] + b _02254A1A +_02254A0A: + cmp r0, #3 + bne _02254A1A + ldr r0, [r4, #0x24] + mov r1, #3 + bl MOD34_02254A98 + mov r0, #0 + strb r0, [r4, #1] +_02254A1A: + mov r0, #0 + pop {r4, pc} + nop +_02254A20: .word 0x00000663 +_02254A24: .word 0x0000066E + thumb_func_end MOD34_022549A4 + + thumb_func_start MOD34_02254A28 +MOD34_02254A28: ; 0x02254A28 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A38 + cmp r0, #1 + beq _02254A48 + b _02254A56 +_02254A38: + ldr r0, [r4, #0x24] + mov r1, #1 + bl MOD34_02254A98 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A56 +_02254A48: + ldr r0, [r4, #0x24] + bl MOD34_02254AC8 + cmp r0, #0 + beq _02254A56 + mov r0, #1 + pop {r4, pc} +_02254A56: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD34_02254A28 + + thumb_func_start MOD34_02254A5C +MOD34_02254A5C: ; 0x02254A5C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x20 + bl FUN_02016998 + add r4, r0, #0 + beq _02254A88 + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + cmp r0, #0 + beq _02254A88 + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254A88: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD34_02254A5C + + thumb_func_start MOD34_02254A8C +MOD34_02254A8C: ; 0x02254A8C + push {r3, lr} + cmp r0, #0 + beq _02254A96 + bl FUN_02016A18 +_02254A96: + pop {r3, pc} + thumb_func_end MOD34_02254A8C + + thumb_func_start MOD34_02254A98 +MOD34_02254A98: ; 0x02254A98 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254AB8 ; =0x02254CBC + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254AB8: .word 0x02254CBC + thumb_func_end MOD34_02254A98 + + thumb_func_start MOD34_02254ABC +MOD34_02254ABC: ; 0x02254ABC + ldr r3, _02254AC4 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254AC4: .word MOD20_02253794 + thumb_func_end MOD34_02254ABC + + thumb_func_start MOD34_02254AC8 +MOD34_02254AC8: ; 0x02254AC8 + ldr r3, _02254AD0 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254AD0: .word MOD20_022537B8 + thumb_func_end MOD34_02254AC8 + + thumb_func_start MOD34_02254AD4 +MOD34_02254AD4: ; 0x02254AD4 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD34_02254AD4 + + thumb_func_start MOD34_02254AE8 +MOD34_02254AE8: ; 0x02254AE8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r1, [sp, #0x10] + add r0, r1, #0 + bl MOD20_022538A0 + add r6, r0, #0 + ldr r0, [sp, #0x10] + bl MOD20_022538A4 + add r5, r0, #0 + ldr r0, [r6, #4] + ldr r2, _02254B8C ; =0x02254CA0 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r6, #4] + mov r0, #0xc + mov r1, #0x3b + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r6, #4] + mov r0, #0xc + mov r1, #0x3a + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + mov r4, #0 + add r7, r4, #0 +_02254B4A: + ldr r2, [r5, #4] + add r0, r6, #0 + add r1, r4, #0 + add r3, r7, #0 + bl MOD34_02254C1C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _02254B4A + ldr r0, [r6, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r0, _02254B90 ; =0x04001000 + ldr r1, _02254B94 ; =0xFFFFE0FF + ldr r2, [r0] + ldr r4, [r0] + add r3, r2, #0 + and r3, r1 + lsl r1, r4, #0x13 + lsr r2, r1, #0x1b + mov r1, #4 + orr r1, r2 + lsl r1, r1, #8 + orr r1, r3 + str r1, [r0] + ldr r0, [sp, #0x10] + str r4, [sp, #0x14] + bl MOD34_02254AD4 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254B8C: .word 0x02254CA0 +_02254B90: .word 0x04001000 +_02254B94: .word 0xFFFFE0FF + thumb_func_end MOD34_02254AE8 + + thumb_func_start MOD34_02254B98 +MOD34_02254B98: ; 0x02254B98 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + bl MOD34_02254AD4 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD34_02254B98 + + thumb_func_start MOD34_02254BB4 +MOD34_02254BB4: ; 0x02254BB4 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r3, r0, #0 + ldrh r1, [r3, #0x1c] + add r0, r4, #0 + lsl r2, r1, #2 + add r2, r3, r2 + ldr r2, [r2, #4] + mov r3, #1 + bl MOD34_02254C1C + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_02017CD0 + add r0, r5, #0 + bl MOD34_02254AD4 + pop {r3, r4, r5, pc} + thumb_func_end MOD34_02254BB4 + + thumb_func_start MOD34_02254BE8 +MOD34_02254BE8: ; 0x02254BE8 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r3, r0, #0 + ldrh r1, [r3, #0x1c] + add r0, r4, #0 + lsl r2, r1, #2 + add r2, r3, r2 + ldr r2, [r2, #4] + mov r3, #0 + bl MOD34_02254C1C + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_02017CD0 + add r0, r5, #0 + bl MOD34_02254AD4 + pop {r3, r4, r5, pc} + thumb_func_end MOD34_02254BE8 + + thumb_func_start MOD34_02254C1C +MOD34_02254C1C: ; 0x02254C1C + push {r4, r5, r6, lr} + ldr r0, [r0, #4] + add r5, r1, #0 + mov r1, #6 + add r4, r2, #0 + add r6, r3, #0 + bl FUN_0201886C + ldr r1, _02254C6C ; =0x02254C94 + lsl r2, r5, #1 + ldrh r1, [r1, r2] + lsl r1, r1, #1 + add r2, r0, r1 + cmp r4, #0 + beq _02254C44 + add r1, r5, #1 + mov r0, #0x48 + add r5, r1, #0 + mul r5, r0 + b _02254C46 +_02254C44: + mov r5, #0 +_02254C46: + cmp r6, #0 + beq _02254C4C + add r5, #0x24 +_02254C4C: + mov r3, #0 + add r0, r3, #0 +_02254C50: + add r1, r0, #0 + add r4, r2, #0 +_02254C54: + add r1, r1, #1 + strh r5, [r4] + add r5, r5, #1 + add r4, r4, #2 + cmp r1, #6 + blt _02254C54 + add r3, r3, #1 + add r2, #0x40 + cmp r3, #6 + blt _02254C50 + pop {r4, r5, r6, pc} + nop +_02254C6C: .word 0x02254C94 + thumb_func_end MOD34_02254C1C + + .section .rodata + ; 0x02254C70 + .incbin "baserom.nds", 0x28e630, 0x88 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_34.SINIT_START + .global SDK_OVERLAY.MODULE_34.SINIT_END +SDK_OVERLAY.MODULE_34.SINIT_START: + .word MOD34_02254840 + .word 0 +SDK_OVERLAY.MODULE_34.SINIT_END: diff --git a/arm9/modules/35/asm/module_35.s b/arm9/modules/35/asm/module_35.s new file mode 100644 index 00000000..fe5b7b14 --- /dev/null +++ b/arm9/modules/35/asm/module_35.s @@ -0,0 +1,1142 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD35_02254840 +MOD35_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD35_02254854 + ldr r1, _02254850 ; =MOD35_02254924 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD35_02254854 +_02254850: .word MOD35_02254924 + thumb_func_end MOD35_02254840 + + thumb_func_start MOD35_02254854 +MOD35_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x34 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD35_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD35_022548F0 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD35_022548F0 + thumb_func_end MOD35_02254854 + + thumb_func_start MOD35_0225489C +MOD35_0225489C: ; 0x0225489C + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r6, r2, #0 + bl MOD20_02252C40 + bl FUN_02023D58 + str r0, [r5, #0x30] + ldr r1, [r5, #0x30] + add r0, r5, #4 + bl MOD35_02254A50 + add r0, r5, #0 + add r0, #0x28 + add r1, r5, #4 + add r2, r6, #0 + bl MOD35_02254ADC + cmp r0, #0 + beq _022548D6 + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + str r4, [r5, #0x2c] + mov r0, #1 + pop {r4, r5, r6, pc} +_022548D6: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD35_0225489C + + thumb_func_start MOD35_022548DC +MOD35_022548DC: ; 0x022548DC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + bl MOD35_02254B38 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD35_022548DC + + thumb_func_start MOD35_022548F0 +MOD35_022548F0: ; 0x022548F0 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4] + add r5, r0, #0 + cmp r1, #3 + bhs _0225491C + lsl r2, r1, #2 + ldr r1, _02254920 ; =0x022550B8 + add r0, r4, #0 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _0225491C + add r0, r4, #0 + bl MOD35_022548DC + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x2c] + bl MOD20_022529A0 +_0225491C: + pop {r3, r4, r5, pc} + nop +_02254920: .word 0x022550B8 + thumb_func_end MOD35_022548F0 + + thumb_func_start MOD35_02254924 +MOD35_02254924: ; 0x02254924 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD35_02254924 + + thumb_func_start MOD35_0225492C +MOD35_0225492C: ; 0x0225492C + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254934 + b _02254936 +_02254934: + mov r1, #2 +_02254936: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD35_0225492C + + thumb_func_start MOD35_02254940 +MOD35_02254940: ; 0x02254940 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254950 + cmp r0, #1 + beq _02254960 + b _0225497A +_02254950: + ldr r0, [r4, #0x28] + mov r1, #0 + bl MOD35_02254C48 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _0225497A +_02254960: + ldr r0, [r4, #0x28] + mov r1, #0 + bl MOD35_02254C6C + cmp r0, #0 + beq _0225497A + ldr r0, [r4, #0x2c] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD35_0225492C +_0225497A: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD35_02254940 + + thumb_func_start MOD35_02254980 +MOD35_02254980: ; 0x02254980 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254994 + mov r1, #2 + bl MOD35_0225492C + mov r0, #0 + pop {r4, pc} +_02254994: + ldrb r1, [r4, #1] + cmp r1, #0 + beq _022549A0 + cmp r1, #1 + beq _022549C0 + b _022549D0 +_022549A0: + bl MOD35_02254A08 + cmp r0, #0 + beq _022549D0 + ldr r1, [r4, #0x30] + add r0, r4, #4 + bl MOD35_02254A50 + ldr r0, [r4, #0x28] + mov r1, #2 + bl MOD35_02254C48 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549D0 +_022549C0: + ldr r0, [r4, #0x28] + mov r1, #2 + bl MOD35_02254C6C + cmp r0, #0 + beq _022549D0 + mov r0, #0 + strb r0, [r4, #1] +_022549D0: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD35_02254980 + + thumb_func_start MOD35_022549D4 +MOD35_022549D4: ; 0x022549D4 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _022549E4 + cmp r0, #1 + beq _022549F4 + b _02254A02 +_022549E4: + ldr r0, [r4, #0x28] + mov r1, #1 + bl MOD35_02254C48 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A02 +_022549F4: + ldr r0, [r4, #0x28] + bl MOD35_02254C78 + cmp r0, #0 + beq _02254A02 + mov r0, #1 + pop {r4, pc} +_02254A02: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD35_022549D4 + + thumb_func_start MOD35_02254A08 +MOD35_02254A08: ; 0x02254A08 + push {r3, lr} + sub sp, #8 + ldr r0, [r0, #0x2c] + bl MOD20_02252C08 + cmp r0, #0 + bne _02254A48 + add r0, sp, #4 + add r1, sp, #0 + bl FUN_02020ACC + cmp r0, #0 + beq _02254A48 + ldr r0, [sp, #4] + sub r0, #0x10 + cmp r0, #0xbf + bhs _02254A2E + mov r1, #1 + b _02254A30 +_02254A2E: + mov r1, #0 +_02254A30: + ldr r0, [sp] + sub r0, #0x10 + cmp r0, #0x9f + bhs _02254A3C + mov r0, #1 + b _02254A3E +_02254A3C: + mov r0, #0 +_02254A3E: + tst r0, r1 + beq _02254A48 + add sp, #8 + mov r0, #1 + pop {r3, pc} +_02254A48: + mov r0, #0 + add sp, #8 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD35_02254A08 + + thumb_func_start MOD35_02254A50 +MOD35_02254A50: ; 0x02254A50 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + str r0, [sp] + add r0, r1, #0 + str r1, [sp, #4] + bl MOD05_021EC464 + ldr r1, [sp] + strb r0, [r1] + ldr r0, [sp, #4] + bl FUN_02023C90 + ldr r1, [sp] + mov r7, #0 + strb r0, [r1, #1] + add r0, r1, #0 + ldrb r0, [r0] + cmp r0, #0 + ble _02254AD6 + add r5, r1, #0 + add r6, r1, #0 +_02254A7A: + ldr r0, [sp, #4] + add r1, r7, #0 + bl FUN_02023C74 + str r0, [sp, #8] + bl FUN_02023C7C + add r4, r0, #0 + bl FUN_02066A6C + str r0, [sp, #0xc] + add r0, r4, #0 + bl FUN_0206B688 + str r0, [r5, #4] + add r0, r4, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + strh r0, [r6, #0x1c] + add r0, r4, #0 + mov r1, #0x70 + mov r2, #0 + bl FUN_020672BC + strh r0, [r6, #0x20] + ldr r0, [sp, #8] + bl MOD05_021EC7B4 + str r0, [r5, #0xc] + add r0, r4, #0 + bl FUN_020689E8 + str r0, [r5, #0x14] + ldr r1, [sp, #0xc] + add r0, r4, #0 + bl FUN_02066A94 + ldr r0, [sp] + add r7, r7, #1 + ldrb r0, [r0] + add r5, r5, #4 + add r6, r6, #2 + cmp r7, r0 + blt _02254A7A +_02254AD6: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD35_02254A50 + + thumb_func_start MOD35_02254ADC +MOD35_02254ADC: ; 0x02254ADC + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #8 + mov r1, #0x90 + bl FUN_02016998 + add r4, r0, #0 + beq _02254B2E + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r5, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x20] + add r0, r4, #0 + mov r2, #0 + add r0, #0x88 + str r2, [r0] + ldr r0, _02254B34 ; =MOD35_02254E60 + add r1, r4, #0 + bl FUN_0200CA98 + add r1, r4, #0 + add r1, #0x8c + str r0, [r1] + add r0, r4, #0 + add r1, r5, #0 + bl MOD35_02254B54 + ldr r0, [r4, #4] + cmp r0, #0 + beq _02254B2E + str r4, [r6] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254B2E: + mov r0, #0 + pop {r4, r5, r6, pc} + nop +_02254B34: .word MOD35_02254E60 + thumb_func_end MOD35_02254ADC + + thumb_func_start MOD35_02254B38 +MOD35_02254B38: ; 0x02254B38 + push {r4, lr} + add r4, r0, #0 + beq _02254B52 + bl MOD35_02254C18 + add r0, r4, #0 + add r0, #0x8c + ldr r0, [r0] + bl FUN_0200CAB4 + add r0, r4, #0 + bl FUN_02016A18 +_02254B52: + pop {r4, pc} + thumb_func_end MOD35_02254B38 + + thumb_func_start MOD35_02254B54 +MOD35_02254B54: ; 0x02254B54 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r7, r0, #0 + mov r0, #1 + str r1, [sp, #0xc] + bl MOD20_022539C4 + mov r3, #0 + str r3, [sp] + mov r2, #1 + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x54 + bl FUN_02006A34 + mov r1, #0x14 + bl _u32_div_f + ldr r1, [sp, #0xc] + str r0, [sp, #0x14] + str r0, [r7, #0x78] + bl MOD35_02254E88 + mov r0, #8 + str r0, [sp] + add r0, r7, #0 + add r0, #0x50 + mov r1, #0xc + mov r2, #0x52 + mov r3, #0x53 + bl MOD20_02253FBC + mov r0, #8 + str r0, [sp] + add r0, r7, #0 + add r0, #0x64 + mov r1, #0xc + mov r2, #5 + mov r3, #6 + bl MOD20_02253FBC + add r0, r7, #0 + str r0, [sp, #0x1c] + add r0, #0x50 + str r0, [sp, #0x1c] + add r0, r7, #0 + mov r4, #0 + str r0, [sp, #0x18] + add r0, #0x64 + ldr r6, _02254C14 ; =0x02255110 + add r5, r7, #0 + str r4, [sp, #0x10] + str r0, [sp, #0x18] +_02254BC2: + cmp r4, #0 + blt _02254BE2 + cmp r4, #2 + bgt _02254BE2 + ldr r0, [r7, #0x20] + ldr r2, [sp, #0x18] + add r1, r6, #0 + bl MOD20_02253E74 + ldr r2, [sp, #0x14] + ldr r1, [sp, #0x10] + str r0, [r5, #0x24] + add r1, r2, r1 + bl MOD20_02253FA4 + b _02254BEE +_02254BE2: + ldr r0, [r7, #0x20] + ldr r2, [sp, #0x1c] + add r1, r6, #0 + bl MOD20_02253E74 + str r0, [r5, #0x24] +_02254BEE: + ldr r0, [r5, #0x24] + mov r1, #1 + bl MOD20_02253FAC + ldr r0, [sp, #0x10] + add r4, r4, #1 + add r0, #0x20 + add r6, #0x10 + add r5, r5, #4 + str r0, [sp, #0x10] + cmp r4, #0xb + blt _02254BC2 + ldr r1, [sp, #0xc] + add r0, r7, #0 + bl MOD35_02254EC8 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254C14: .word 0x02255110 + thumb_func_end MOD35_02254B54 + + thumb_func_start MOD35_02254C18 +MOD35_02254C18: ; 0x02254C18 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_02254C20: + ldr r1, [r5, #0x24] + cmp r1, #0 + beq _02254C2C + ldr r0, [r6, #0x20] + bl MOD20_02253F14 +_02254C2C: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xb + blt _02254C20 + add r0, r6, #0 + add r0, #0x64 + bl MOD20_02254014 + add r6, #0x50 + add r0, r6, #0 + bl MOD20_02254014 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD35_02254C18 + + thumb_func_start MOD35_02254C48 +MOD35_02254C48: ; 0x02254C48 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254C68 ; =0x022550E0 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254C68: .word 0x022550E0 + thumb_func_end MOD35_02254C48 + + thumb_func_start MOD35_02254C6C +MOD35_02254C6C: ; 0x02254C6C + ldr r3, _02254C74 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254C74: .word MOD20_02253794 + thumb_func_end MOD35_02254C6C + + thumb_func_start MOD35_02254C78 +MOD35_02254C78: ; 0x02254C78 + ldr r3, _02254C80 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254C80: .word MOD20_022537B8 + thumb_func_end MOD35_02254C78 + + thumb_func_start MOD35_02254C84 +MOD35_02254C84: ; 0x02254C84 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD35_02254C84 + + thumb_func_start MOD35_02254C98 +MOD35_02254C98: ; 0x02254C98 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254D24 ; =0x022550C4 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x51 + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x50 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254D28 ; =0x0400104C + mov r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + sub r1, #0x4c + ldr r3, [r1] + ldr r2, [r1] + ldr r0, _02254D2C ; =0xFFFFE0FF + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD35_02254C84 + add sp, #0x14 + pop {r4, r5, pc} + nop +_02254D24: .word 0x022550C4 +_02254D28: .word 0x0400104C +_02254D2C: .word 0xFFFFE0FF + thumb_func_end MOD35_02254C98 + + thumb_func_start MOD35_02254D30 +MOD35_02254D30: ; 0x02254D30 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _02254D4C + cmp r0, #1 + beq _02254D5A + pop {r3, r4, r5, pc} +_02254D4C: + mov r0, #1 + add r4, #0x84 + str r0, [r4] + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_02254D5A: + add r0, r4, #0 + mov r1, #2 + bl MOD35_02254C6C + cmp r0, #0 + beq _02254D7C + ldr r0, _02254D80 ; =0x0400104C + mov r1, #0 + strb r1, [r0] + strb r1, [r0, #1] + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD35_02254C84 +_02254D7C: + pop {r3, r4, r5, pc} + nop +_02254D80: .word 0x0400104C + thumb_func_end MOD35_02254D30 + + thumb_func_start MOD35_02254D84 +MOD35_02254D84: ; 0x02254D84 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r6, r0, #0 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #3 + bhi _02254E50 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02254DAE: ; jump table + .short _02254DB6 - _02254DAE - 2 ; case 0 + .short _02254DDC - _02254DAE - 2 ; case 1 + .short _02254DF4 - _02254DAE - 2 ; case 2 + .short _02254E4A - _02254DAE - 2 ; case 3 +_02254DB6: + add r0, r4, #0 + mov r1, #0 + add r0, #0x84 + str r1, [r0] + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + mov r0, #0xa + str r0, [r4, #0x7c] + add r0, r4, #0 + bl MOD35_02254E58 + ldr r0, _02254E54 ; =0x00000678 + bl MOD20_02252B28 + add r0, r5, #0 + bl MOD20_022538B0 + pop {r4, r5, r6, pc} +_02254DDC: + ldr r0, [r4, #0x78] + add r1, r6, #0 + bl MOD35_02254E88 + add r0, r4, #0 + add r1, r6, #0 + bl MOD35_02254EC8 + add r0, r5, #0 + bl MOD20_022538B0 + pop {r4, r5, r6, pc} +_02254DF4: + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _02254E10 + mov r0, #0 + str r0, [r4, #0x7c] + add r0, r4, #0 + bl MOD35_02254E58 + add r0, r5, #0 + bl MOD20_022538B0 + pop {r4, r5, r6, pc} +_02254E10: + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #4 + blo _02254E50 + add r0, r4, #0 + mov r1, #0 + add r0, #0x80 + str r1, [r0] + ldr r0, [r4, #0x7c] + sub r0, r0, #1 + str r0, [r4, #0x7c] + add r0, r4, #0 + bl MOD35_02254E58 + ldr r0, [r4, #0x7c] + cmp r0, #0 + bne _02254E50 + add r0, r5, #0 + bl MOD20_022538B0 + pop {r4, r5, r6, pc} +_02254E4A: + add r0, r5, #0 + bl MOD35_02254C84 +_02254E50: + pop {r4, r5, r6, pc} + nop +_02254E54: .word 0x00000678 + thumb_func_end MOD35_02254D84 + + thumb_func_start MOD35_02254E58 +MOD35_02254E58: ; 0x02254E58 + mov r1, #1 + add r0, #0x88 + str r1, [r0] + bx lr + thumb_func_end MOD35_02254E58 + + thumb_func_start MOD35_02254E60 +MOD35_02254E60: ; 0x02254E60 + add r0, r1, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0 + beq _02254E82 + ldr r2, [r1, #0x7c] + ldr r3, _02254E84 ; =0x0400104C + lsl r0, r2, #4 + orr r0, r2 + strb r0, [r3] + ldr r2, [r1, #0x7c] + add r1, #0x88 + lsl r0, r2, #4 + orr r0, r2 + strb r0, [r3, #1] + mov r0, #0 + str r0, [r1] +_02254E82: + bx lr + .align 2, 0 +_02254E84: .word 0x0400104C + thumb_func_end MOD35_02254E60 + + thumb_func_start MOD35_02254E88 +MOD35_02254E88: ; 0x02254E88 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #1 + add r4, r1, #0 + add r1, r0, #0 + mov r2, #0 + bl FUN_0206B6D4 + ldrb r1, [r4] + cmp r1, #0 + beq _02254EA4 + ldr r1, [r4, #4] + b _02254EA6 +_02254EA4: + add r1, r0, #0 +_02254EA6: + str r1, [sp] + ldrb r1, [r4] + cmp r1, #1 + bls _02254EB2 + ldr r1, [r4, #8] + b _02254EB4 +_02254EB2: + add r1, r0, #0 +_02254EB4: + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r1, sp, #0 + mov r2, #3 + mov r3, #1 + bl MOD20_02253A04 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD35_02254E88 + + thumb_func_start MOD35_02254EC8 +MOD35_02254EC8: ; 0x02254EC8 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r0, #0 + add r6, r1, #0 + str r0, [sp] + ldrb r0, [r6] + cmp r0, #0 + ble _02254F00 + add r4, r6, #0 + add r5, r7, #0 +_02254EDC: + ldrh r0, [r4, #0x1c] + ldrh r1, [r4, #0x20] + mov r2, #0 + bl FUN_0206B7BC + add r1, r0, #0 + ldr r0, [r5, #0x24] + add r1, r1, #1 + bl MOD20_02253F9C + ldr r0, [sp] + ldrb r1, [r6] + add r0, r0, #1 + add r4, r4, #2 + add r5, r5, #4 + str r0, [sp] + cmp r0, r1 + blt _02254EDC +_02254F00: + mov r0, #1 + mov r1, #0 + add r2, r0, #0 + bl FUN_0206B7BC + add r1, r0, #0 + ldr r0, [r7, #0x2c] + add r1, r1, #1 + bl MOD20_02253F9C + ldrb r0, [r6] + cmp r0, #0 + beq _02254F36 + ldrh r0, [r6, #0x1c] + mov r1, #0x1c + bl FUN_02068678 + cmp r0, #0 + ldr r0, [r7, #0x24] + beq _02254F30 + mov r1, #6 + bl MOD20_02253F28 + b _02254F36 +_02254F30: + mov r1, #7 + bl MOD20_02253F28 +_02254F36: + add r0, r7, #0 + ldr r1, [r6, #0xc] + add r0, #0x30 + bl MOD35_02254FD8 + add r0, r7, #0 + ldr r1, [r6, #0x10] + add r0, #0x3c + bl MOD35_02254FD8 + ldr r0, [r7, #0x48] + ldr r1, [r6, #0x14] + bl MOD35_02255094 + ldr r0, [r7, #0x4c] + ldr r1, [r6, #0x18] + bl MOD35_02255094 + ldrb r0, [r6] + cmp r0, #0 + bne _02254F64 + mov r4, #1 + b _02254F66 +_02254F64: + mov r4, #0 +_02254F66: + ldr r0, [r7, #0x24] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x30] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x34] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x38] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x48] + add r1, r4, #0 + bl MOD20_02253F78 + ldrb r0, [r6] + cmp r0, #1 + bhi _02254F98 + mov r4, #1 + b _02254F9A +_02254F98: + mov r4, #0 +_02254F9A: + ldr r0, [r7, #0x28] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x3c] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x40] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x44] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r7, #0x4c] + add r1, r4, #0 + bl MOD20_02253F78 + ldrb r0, [r6, #1] + cmp r0, #0 + bne _02254FCC + mov r1, #1 + b _02254FCE +_02254FCC: + mov r1, #0 +_02254FCE: + ldr r0, [r7, #0x2c] + bl MOD20_02253F78 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD35_02254EC8 + + thumb_func_start MOD35_02254FD8 +MOD35_02254FD8: ; 0x02254FD8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r7, r1, #0 + str r0, [sp] + cmp r7, #0x64 + bls _02254FE6 + mov r7, #0x64 +_02254FE6: + ldr r2, _02255088 ; =0x04000280 + mov r3, #0 + strh r3, [r2] + add r0, r2, #0 + str r7, [r2, #0x10] + mov r1, #0x64 + add r0, #0x18 + str r1, [r0] + str r3, [r0, #4] + lsr r0, r2, #0xb +_02254FFA: + ldrh r1, [r2] + tst r1, r0 + bne _02254FFA + ldr r0, _0225508C ; =0x040002A0 + ldr r4, _02255088 ; =0x04000280 + ldr r0, [r0] + str r0, [sp, #4] + lsr r0, r4, #0xb +_0225500A: + ldrh r1, [r4] + tst r1, r0 + bne _0225500A + ldr r3, _02255090 ; =0x040002A8 + mov r1, #0 + ldr r2, [r3] + add r0, r3, #0 + strh r1, [r4] + sub r0, #0x18 + str r2, [r0] + mov r0, #0xa + sub r3, #0x10 + str r0, [r3] + ldr r2, _02255088 ; =0x04000280 + str r1, [r3, #4] + lsr r0, r2, #0xb +_0225502A: + ldrh r1, [r2] + tst r1, r0 + bne _0225502A + ldr r0, _0225508C ; =0x040002A0 + ldr r2, _02255088 ; =0x04000280 + ldr r0, [r0] + str r0, [sp, #8] + lsr r0, r2, #0xb +_0225503A: + ldrh r1, [r2] + tst r1, r0 + bne _0225503A + ldr r0, _02255090 ; =0x040002A8 + ldr r5, [sp] + ldr r0, [r0] + mov r6, #0 + str r0, [sp, #0xc] + add r4, sp, #4 +_0225504C: + ldr r0, [r5] + ldr r1, [r4] + bl MOD20_02253F28 + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #3 + blt _0225504C + cmp r7, #0x64 + bhs _02255066 + mov r1, #1 + b _02255068 +_02255066: + mov r1, #0 +_02255068: + ldr r0, [sp] + ldr r0, [r0] + bl MOD20_02253F78 + cmp r7, #0xa + bhs _02255078 + mov r1, #1 + b _0225507A +_02255078: + mov r1, #0 +_0225507A: + ldr r0, [sp] + ldr r0, [r0, #4] + bl MOD20_02253F78 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_02255088: .word 0x04000280 +_0225508C: .word 0x040002A0 +_02255090: .word 0x040002A8 + thumb_func_end MOD35_02254FD8 + + thumb_func_start MOD35_02255094 +MOD35_02255094: ; 0x02255094 + push {r3, lr} + cmp r1, #0 + beq _022550A0 + cmp r1, #1 + beq _022550A8 + b _022550B0 +_022550A0: + mov r1, #0xa + bl MOD20_02253F28 + pop {r3, pc} +_022550A8: + mov r1, #0xb + bl MOD20_02253F28 + pop {r3, pc} +_022550B0: + mov r1, #0xc + bl MOD20_02253F28 + pop {r3, pc} + thumb_func_end MOD35_02255094 + + .section .rodata + ; 0x022550B8 + .incbin "baserom.nds", 0x28f078, 0x108 + + .section .sinit + .word MOD35_02254840 diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s new file mode 100644 index 00000000..47ccf2cc --- /dev/null +++ b/arm9/modules/36/asm/module_36.s @@ -0,0 +1,1571 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD36_02254840 +MOD36_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD36_02254854 + ldr r1, _02254850 ; =MOD36_02254990 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD36_02254854 +_02254850: .word MOD36_02254990 + thumb_func_end MOD36_02254840 + + thumb_func_start MOD36_02254854 +MOD36_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + add r5, r0, #0 + ldr r1, _02254898 ; =0x00005B90 + mov r0, #8 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD36_022548A0 + cmp r0, #0 + beq _0225488C + ldr r0, _0225489C ; =MOD36_02254938 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word 0x00005B90 +_0225489C: .word MOD36_02254938 + thumb_func_end MOD36_02254854 + + thumb_func_start MOD36_022548A0 +MOD36_022548A0: ; 0x022548A0 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r4, r1, #0 + ldr r1, _02254904 ; =0x00005B78 + str r3, [r5, #0xc] + mov r0, #0 + strb r0, [r5, r1] + mov r6, #1 + add r3, r1, #1 + strb r6, [r5, r3] + add r3, r1, #2 + strb r0, [r5, r3] + add r0, r1, #4 + add r0, r5, r0 + add r1, r5, #4 + bl MOD36_02254E30 + cmp r0, #0 + beq _022548FC + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + strb r0, [r5, #3] + add r0, r5, #4 + bl MOD36_02254E10 + mov r0, #8 + str r0, [sp] + ldr r0, _02254908 ; =0x022553E8 + ldr r2, _0225490C ; =MOD36_02254980 + mov r1, #3 + add r3, r5, #0 + bl MOD20_02254130 + ldr r1, _02254910 ; =0x00005B84 + mov r2, #0 + str r0, [r5, r1] + add r0, r1, #4 + str r2, [r5, r0] + sub r0, r1, #4 + str r4, [r5, r0] + add sp, #4 + add r0, r6, #0 + pop {r3, r4, r5, r6, pc} +_022548FC: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_02254904: .word 0x00005B78 +_02254908: .word 0x022553E8 +_0225490C: .word MOD36_02254980 +_02254910: .word 0x00005B84 + thumb_func_end MOD36_022548A0 + + thumb_func_start MOD36_02254914 +MOD36_02254914: ; 0x02254914 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02254930 ; =0x00005B84 + ldr r0, [r4, r0] + bl MOD20_02254198 + ldr r0, _02254934 ; =0x00005B7C + ldr r0, [r4, r0] + bl MOD36_02254E78 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 +_02254930: .word 0x00005B84 +_02254934: .word 0x00005B7C + thumb_func_end MOD36_02254914 + + thumb_func_start MOD36_02254938 +MOD36_02254938: ; 0x02254938 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #3 + bhs _02254974 + ldr r1, _02254978 ; =0x00005B80 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl MOD20_02252C14 + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _0225497C ; =0x022553F4 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254974 + add r0, r4, #0 + bl MOD36_02254914 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, _02254978 ; =0x00005B80 + ldr r0, [r4, r0] + bl MOD20_022529A0 +_02254974: + pop {r3, r4, r5, pc} + nop +_02254978: .word 0x00005B80 +_0225497C: .word 0x022553F4 + thumb_func_end MOD36_02254938 + + thumb_func_start MOD36_02254980 +MOD36_02254980: ; 0x02254980 + ldr r2, _0225498C ; =0x00005B88 + str r1, [r3, r2] + add r1, r2, #4 + str r0, [r3, r1] + bx lr + nop +_0225498C: .word 0x00005B88 + thumb_func_end MOD36_02254980 + + thumb_func_start MOD36_02254990 +MOD36_02254990: ; 0x02254990 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD36_02254990 + + thumb_func_start MOD36_02254998 +MOD36_02254998: ; 0x02254998 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _022549A0 + b _022549A2 +_022549A0: + mov r1, #2 +_022549A2: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD36_02254998 + + thumb_func_start MOD36_022549AC +MOD36_022549AC: ; 0x022549AC + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _022549BC + cmp r0, #1 + beq _022549CE + b _022549EC +_022549BC: + ldr r0, _022549F0 ; =0x00005B7C + mov r1, #0 + ldr r0, [r4, r0] + bl MOD36_02254F0C + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549EC +_022549CE: + ldr r0, _022549F0 ; =0x00005B7C + mov r1, #0 + ldr r0, [r4, r0] + bl MOD36_02254F30 + cmp r0, #0 + beq _022549EC + ldr r0, _022549F4 ; =0x00005B80 + ldr r0, [r4, r0] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD36_02254998 +_022549EC: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_022549F0: .word 0x00005B7C +_022549F4: .word 0x00005B80 + thumb_func_end MOD36_022549AC + + thumb_func_start MOD36_022549F8 +MOD36_022549F8: ; 0x022549F8 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254A0A + mov r1, #2 + bl MOD36_02254998 +_02254A0A: + ldrb r0, [r4, #1] + cmp r0, #3 + bhi _02254A30 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02254A1C: ; jump table + .short _02254A24 - _02254A1C - 2 ; case 0 + .short _02254AF4 - _02254A1C - 2 ; case 1 + .short _02254B4E - _02254A1C - 2 ; case 2 + .short _02254B7C - _02254A1C - 2 ; case 3 +_02254A24: + ldr r0, _02254BCC ; =0x00005B80 + ldr r0, [r4, r0] + bl MOD20_02252C08 + cmp r0, #0 + beq _02254A32 +_02254A30: + b _02254BC4 +_02254A32: + ldr r1, _02254BD0 ; =0x00005B88 + ldr r0, [r4, r1] + cmp r0, #1 + bne _02254AAE + add r0, r1, #4 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02254A4C + cmp r0, #1 + beq _02254A82 + cmp r0, #2 + beq _02254A8A + b _02254AA6 +_02254A4C: + add r0, r1, #0 + mov r3, #1 + sub r0, #0x10 + strb r3, [r4, r0] + add r0, r1, #0 + mov r2, #0 + sub r0, #0xf + strb r2, [r4, r0] + add r0, r1, #0 + sub r0, #0xe + sub r1, #0xc + strb r3, [r4, r0] + ldr r0, [r4, r1] + mov r1, #5 + bl MOD36_02254F0C + ldr r0, _02254BD4 ; =0x00005B7C + mov r1, #7 + ldr r0, [r4, r0] + bl MOD36_02254F0C + ldr r0, _02254BD8 ; =0x00000663 + bl MOD20_02252B28 + mov r0, #1 + strb r0, [r4, #1] + b _02254AA6 +_02254A82: + ldr r0, _02254BDC ; =0x0000066E + bl MOD20_02252B28 + b _02254AA6 +_02254A8A: + add r0, r1, #0 + mov r2, #1 + sub r0, #0xe + sub r1, #0xc + strb r2, [r4, r0] + ldr r0, [r4, r1] + mov r1, #5 + bl MOD36_02254F0C + ldr r0, _02254BD8 ; =0x00000663 + bl MOD20_02252B28 + mov r0, #3 + strb r0, [r4, #1] +_02254AA6: + ldr r0, _02254BD0 ; =0x00005B88 + mov r1, #0 + str r1, [r4, r0] + b _02254BC4 +_02254AAE: + ldrb r0, [r4, #3] + cmp r0, #0 + beq _02254ADA + add r0, r4, #0 + ldr r6, [r4, #4] + ldr r5, [r4, #8] + bl MOD36_02254C44 + cmp r0, #0 + beq _02254AD4 + ldr r0, [r4, #8] + add r1, r6, #0 + str r0, [sp] + ldr r3, [r4, #4] + add r0, r4, #0 + add r2, r5, #0 + bl MOD36_02254C90 + b _02254BC4 +_02254AD4: + mov r0, #0 + strb r0, [r4, #3] + b _02254BC4 +_02254ADA: + add r0, r4, #0 + bl MOD36_02254BE4 + cmp r0, #0 + beq _02254BC4 + ldr r0, _02254BD4 ; =0x00005B7C + mov r1, #3 + ldr r0, [r4, r0] + bl MOD36_02254F0C + mov r0, #1 + strb r0, [r4, #3] + b _02254BC4 +_02254AF4: + ldr r1, _02254BD0 ; =0x00005B88 + ldr r0, [r4, r1] + cmp r0, #1 + bne _02254BC4 + add r0, r1, #4 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02254B0C + cmp r0, #1 + beq _02254B14 + cmp r0, #2 + bne _02254B46 +_02254B0C: + ldr r0, _02254BDC ; =0x0000066E + bl MOD20_02252B28 + b _02254B46 +_02254B14: + add r0, r1, #0 + mov r2, #1 + sub r0, #0x10 + strb r2, [r4, r0] + add r0, r1, #0 + sub r0, #0xf + strb r2, [r4, r0] + add r0, r1, #0 + sub r0, #0xe + sub r1, #0xc + strb r2, [r4, r0] + ldr r0, [r4, r1] + mov r1, #5 + bl MOD36_02254F0C + ldr r0, _02254BD4 ; =0x00005B7C + mov r1, #8 + ldr r0, [r4, r0] + bl MOD36_02254F0C + ldr r0, _02254BD8 ; =0x00000663 + bl MOD20_02252B28 + mov r0, #2 + strb r0, [r4, #1] +_02254B46: + ldr r0, _02254BD0 ; =0x00005B88 + mov r1, #0 + str r1, [r4, r0] + b _02254BC4 +_02254B4E: + ldr r0, _02254BD4 ; =0x00005B7C + mov r1, #8 + ldr r0, [r4, r0] + bl MOD36_02254F30 + cmp r0, #0 + beq _02254BC4 + ldr r0, _02254BE0 ; =0x00005B78 + mov r3, #0 + strb r3, [r4, r0] + mov r2, #1 + add r1, r0, #1 + strb r2, [r4, r1] + add r1, r0, #2 + strb r3, [r4, r1] + add r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #5 + bl MOD36_02254F0C + mov r0, #0 + strb r0, [r4, #1] + b _02254BC4 +_02254B7C: + ldr r1, _02254BD0 ; =0x00005B88 + ldr r0, [r4, r1] + cmp r0, #2 + bne _02254B9C + add r0, r1, #0 + mov r2, #0 + sub r0, #0xe + sub r1, #0xc + strb r2, [r4, r0] + ldr r0, [r4, r1] + mov r1, #5 + bl MOD36_02254F0C + mov r0, #0 + strb r0, [r4, #1] + b _02254BC4 +_02254B9C: + cmp r0, #3 + bne _02254BC4 + mov r0, #0 + sub r1, #0xe + strb r0, [r4, r1] + add r0, r4, #4 + bl MOD36_02254E10 + ldr r0, _02254BD4 ; =0x00005B7C + mov r1, #5 + ldr r0, [r4, r0] + bl MOD36_02254F0C + ldr r0, _02254BD4 ; =0x00005B7C + mov r1, #6 + ldr r0, [r4, r0] + bl MOD36_02254F0C + mov r0, #0 + strb r0, [r4, #1] +_02254BC4: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_02254BCC: .word 0x00005B80 +_02254BD0: .word 0x00005B88 +_02254BD4: .word 0x00005B7C +_02254BD8: .word 0x00000663 +_02254BDC: .word 0x0000066E +_02254BE0: .word 0x00005B78 + thumb_func_end MOD36_022549F8 + + thumb_func_start MOD36_02254BE4 +MOD36_02254BE4: ; 0x02254BE4 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + add r0, sp, #4 + add r1, sp, #0 + bl MOD20_02252B68 + cmp r0, #0 + beq _02254C3E + ldr r1, [sp, #4] + ldr r2, [sp] + sub r1, #0x10 + sub r2, #0x10 + cmp r1, #0x9b + bhs _02254C06 + mov r0, #1 + b _02254C08 +_02254C06: + mov r0, #0 +_02254C08: + cmp r2, #0x95 + bhs _02254C10 + mov r3, #1 + b _02254C12 +_02254C10: + mov r3, #0 +_02254C12: + tst r0, r3 + beq _02254C3E + lsr r3, r1, #1 + lsr r1, r2, #1 + add r2, r4, #0 + mov r0, #0x96 + add r2, #0x10 + mul r0, r3 + str r3, [sp, #4] + str r1, [sp] + add r2, r2, r0 + ldrb r0, [r2, r1] + cmp r0, #0 + bne _02254C3E + mov r0, #1 + strb r0, [r2, r1] + ldr r1, [sp, #4] + str r1, [r4, #4] + ldr r1, [sp] + add sp, #8 + str r1, [r4, #8] + pop {r4, pc} +_02254C3E: + mov r0, #0 + add sp, #8 + pop {r4, pc} + thumb_func_end MOD36_02254BE4 + + thumb_func_start MOD36_02254C44 +MOD36_02254C44: ; 0x02254C44 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + add r0, sp, #4 + add r1, sp, #0 + bl MOD20_02252B68 + cmp r0, #0 + beq _02254C8A + ldr r1, [sp, #4] + ldr r2, [sp] + sub r1, #0x10 + sub r2, #0x10 + cmp r1, #0x9b + bhs _02254C66 + mov r0, #1 + b _02254C68 +_02254C66: + mov r0, #0 +_02254C68: + cmp r2, #0x95 + bhs _02254C70 + mov r3, #1 + b _02254C72 +_02254C70: + mov r3, #0 +_02254C72: + tst r0, r3 + beq _02254C8A + lsr r1, r1, #1 + lsr r0, r2, #1 + str r1, [sp, #4] + str r0, [sp] + str r1, [r4, #4] + ldr r0, [sp] + add sp, #8 + str r0, [r4, #8] + mov r0, #1 + pop {r4, pc} +_02254C8A: + mov r0, #0 + add sp, #8 + pop {r4, pc} + thumb_func_end MOD36_02254C44 + + thumb_func_start MOD36_02254C90 +MOD36_02254C90: ; 0x02254C90 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + ldr r0, [sp, #0x28] + add r4, r2, #0 + add r5, r1, #0 + str r3, [sp] + str r0, [sp, #0x28] + cmp r4, r0 + bne _02254CAC + add r0, r3, #0 + cmp r5, r0 + bne _02254CAC + b _02254DCC +_02254CAC: + ldr r0, [sp] + cmp r0, r5 + bls _02254CB6 + sub r1, r0, r5 + b _02254CB8 +_02254CB6: + sub r1, r5, r0 +_02254CB8: + ldr r0, [sp, #0x28] + cmp r0, r4 + bls _02254CC2 + sub r2, r0, r4 + b _02254CC4 +_02254CC2: + sub r2, r4, r0 +_02254CC4: + cmp r1, r2 + bls _02254D46 + ldr r0, [sp] + cmp r0, r5 + bls _02254CD4 + mov r0, #1 + str r0, [sp, #4] + b _02254CDA +_02254CD4: + mov r0, #0 + mvn r0, r0 + str r0, [sp, #4] +_02254CDA: + cmp r1, #0 + beq _02254CEC + ldr r0, [sp, #0x28] + sub r0, r0, r4 + lsl r0, r0, #0xc + bl _s32_div_f + str r0, [sp, #0x10] + b _02254CF0 +_02254CEC: + mov r0, #0 + str r0, [sp, #0x10] +_02254CF0: + ldr r0, [sp, #0x10] + lsl r1, r4, #0xc + add r7, r1, r0 + ldr r0, [sp, #4] + add r5, r5, r0 + ldr r0, [sp] + cmp r5, r0 + beq _02254DB0 + mov r1, #0x96 + add r0, r5, #0 + mul r0, r1 + add r4, r6, r0 + ldr r0, [sp, #4] + mul r1, r0 + str r1, [sp, #0xc] +_02254D0E: + asr r1, r7, #0xc + cmp r5, #0x9c + bhs _02254D32 + cmp r1, #0x96 + bhs _02254D32 + add r0, r4, r1 + ldrb r2, [r0, #0x10] + cmp r2, #0 + bne _02254D32 + mov r2, #0 + strb r2, [r0, #0x10] + str r5, [r6, #4] + str r1, [r6, #8] + ldr r0, _02254DD0 ; =0x00005B7C + mov r1, #3 + ldr r0, [r6, r0] + bl MOD36_02254F0C +_02254D32: + ldr r0, [sp, #0xc] + add r4, r4, r0 + ldr r0, [sp, #4] + add r5, r5, r0 + ldr r0, [sp, #0x10] + add r7, r7, r0 + ldr r0, [sp] + cmp r5, r0 + bne _02254D0E + b _02254DB0 +_02254D46: + ldr r0, [sp, #0x28] + cmp r0, r4 + bls _02254D50 + mov r7, #1 + b _02254D54 +_02254D50: + mov r7, #0 + mvn r7, r7 +_02254D54: + cmp r2, #0 + beq _02254D68 + ldr r0, [sp] + add r1, r2, #0 + sub r0, r0, r5 + lsl r0, r0, #0xc + bl _s32_div_f + str r0, [sp, #8] + b _02254D6C +_02254D68: + mov r0, #0 + str r0, [sp, #8] +_02254D6C: + ldr r0, [sp, #8] + lsl r1, r5, #0xc + add r5, r1, r0 + ldr r0, [sp, #0x28] + add r4, r4, r7 + cmp r4, r0 + beq _02254DB0 +_02254D7A: + asr r1, r5, #0xc + cmp r4, #0x96 + bhs _02254DA4 + cmp r1, #0x9c + bhs _02254DA4 + mov r0, #0x96 + mul r0, r1 + add r0, r6, r0 + add r0, r0, r4 + ldrb r2, [r0, #0x10] + cmp r2, #0 + bne _02254DA4 + mov r2, #1 + strb r2, [r0, #0x10] + str r1, [r6, #4] + ldr r0, _02254DD0 ; =0x00005B7C + str r4, [r6, #8] + ldr r0, [r6, r0] + mov r1, #3 + bl MOD36_02254F0C +_02254DA4: + ldr r0, [sp, #8] + add r4, r4, r7 + add r5, r5, r0 + ldr r0, [sp, #0x28] + cmp r4, r0 + bne _02254D7A +_02254DB0: + ldr r0, [sp, #0x28] + cmp r0, #0x96 + bhs _02254DCC + ldr r0, [sp] + cmp r0, #0x9c + bhs _02254DCC + str r0, [r6, #4] + ldr r0, [sp, #0x28] + mov r1, #3 + str r0, [r6, #8] + ldr r0, _02254DD0 ; =0x00005B7C + ldr r0, [r6, r0] + bl MOD36_02254F0C +_02254DCC: + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02254DD0: .word 0x00005B7C + thumb_func_end MOD36_02254C90 + + thumb_func_start MOD36_02254DD4 +MOD36_02254DD4: ; 0x02254DD4 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254DE4 + cmp r0, #1 + beq _02254DF6 + b _02254E06 +_02254DE4: + ldr r0, _02254E0C ; =0x00005B7C + mov r1, #1 + ldr r0, [r4, r0] + bl MOD36_02254F0C + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254E06 +_02254DF6: + ldr r0, _02254E0C ; =0x00005B7C + ldr r0, [r4, r0] + bl MOD36_02254F3C + cmp r0, #0 + beq _02254E06 + mov r0, #1 + pop {r4, pc} +_02254E06: + mov r0, #0 + pop {r4, pc} + nop +_02254E0C: .word 0x00005B7C + thumb_func_end MOD36_02254DD4 + + thumb_func_start MOD36_02254E10 +MOD36_02254E10: ; 0x02254E10 + push {r4, r5} + mov r4, #0 + add r2, r4, #0 + add r3, r4, #0 +_02254E18: + add r5, r3, #0 +_02254E1A: + add r1, r0, r5 + add r5, r5, #1 + strb r2, [r1, #0xc] + cmp r5, #0x96 + blt _02254E1A + add r4, r4, #1 + add r0, #0x96 + cmp r4, #0x9c + blt _02254E18 + pop {r4, r5} + bx lr + thumb_func_end MOD36_02254E10 + + thumb_func_start MOD36_02254E30 +MOD36_02254E30: ; 0x02254E30 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #8 + mov r1, #0x70 + bl FUN_02016998 + add r4, r0, #0 + beq _02254E74 + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r5, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x20] + add r0, r4, #0 + mov r1, #0 + add r0, #0x68 + strh r1, [r0] + add r0, r4, #0 + add r1, r5, #0 + bl MOD36_02254E8C + ldr r0, [r4, #4] + cmp r0, #0 + beq _02254E74 + str r4, [r6] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254E74: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD36_02254E30 + + thumb_func_start MOD36_02254E78 +MOD36_02254E78: ; 0x02254E78 + push {r4, lr} + add r4, r0, #0 + beq _02254E88 + bl MOD36_02254EE4 + add r0, r4, #0 + bl FUN_02016A18 +_02254E88: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD36_02254E78 + + thumb_func_start MOD36_02254E8C +MOD36_02254E8C: ; 0x02254E8C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + mov r3, #0 + str r3, [sp] + mov r2, #1 + add r7, r0, #0 + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x59 + bl FUN_02006A34 + mov r0, #8 + str r0, [sp] + add r0, r7, #0 + add r0, #0x34 + mov r1, #0xc + mov r2, #0x57 + mov r3, #0x58 + bl MOD20_02253FBC + add r0, r7, #0 + str r0, [sp, #0xc] + add r0, #0x34 + ldr r4, _02254EE0 ; =0x02255440 + mov r6, #0 + add r5, r7, #0 + str r0, [sp, #0xc] +_02254EC6: + ldr r0, [r7, #0x20] + ldr r2, [sp, #0xc] + add r1, r4, #0 + bl MOD20_02253E74 + str r0, [r5, #0x24] + add r6, r6, #1 + add r4, #0x10 + add r5, r5, #4 + cmp r6, #4 + blt _02254EC6 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254EE0: .word 0x02255440 + thumb_func_end MOD36_02254E8C + + thumb_func_start MOD36_02254EE4 +MOD36_02254EE4: ; 0x02254EE4 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_02254EEC: + ldr r1, [r5, #0x24] + cmp r1, #0 + beq _02254EF8 + ldr r0, [r6, #0x20] + bl MOD20_02253F14 +_02254EF8: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _02254EEC + add r6, #0x34 + add r0, r6, #0 + bl MOD20_02254014 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD36_02254EE4 + + thumb_func_start MOD36_02254F0C +MOD36_02254F0C: ; 0x02254F0C + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254F2C ; =0x02255480 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254F2C: .word 0x02255480 + thumb_func_end MOD36_02254F0C + + thumb_func_start MOD36_02254F30 +MOD36_02254F30: ; 0x02254F30 + ldr r3, _02254F38 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254F38: .word MOD20_02253794 + thumb_func_end MOD36_02254F30 + + thumb_func_start MOD36_02254F3C +MOD36_02254F3C: ; 0x02254F3C + ldr r3, _02254F44 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254F44: .word MOD20_022537B8 + thumb_func_end MOD36_02254F3C + + thumb_func_start MOD36_02254F48 +MOD36_02254F48: ; 0x02254F48 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD36_02254F48 + + thumb_func_start MOD36_02254F5C +MOD36_02254F5C: ; 0x02254F5C + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + mov r0, #8 + add r5, r1, #0 + bl FUN_02016B90 + cmp r0, #0 + bne _02254F70 + bl ErrorHandling +_02254F70: + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _0225502C ; =0x02255408 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #4] + ldr r2, _02255030 ; =0x02255424 + mov r1, #7 + mov r3, #0 + bl FUN_02016C18 + mov r0, #8 + bl FUN_02016B90 + cmp r0, #0 + bne _02254F9E + bl ErrorHandling +_02254F9E: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0xc + mov r1, #0x56 + mov r3, #6 + bl FUN_0200687C + add r6, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0xc + mov r1, #0x55 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + mov r0, #8 + bl FUN_02016B90 + cmp r0, #0 + bne _02254FEA + bl ErrorHandling +_02254FEA: + add r0, r4, #0 + lsr r1, r6, #5 + bl MOD36_0225503C + ldr r0, [r4, #4] + mov r1, #7 + bl FUN_02017CD0 + ldr r1, _02255034 ; =0x04001000 + ldr r0, _02255038 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #0x14 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r5, #0 + bl MOD36_02254F48 + mov r0, #8 + bl FUN_02016B90 + cmp r0, #0 + bne _02255028 + bl ErrorHandling +_02255028: + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0225502C: .word 0x02255408 +_02255030: .word 0x02255424 +_02255034: .word 0x04001000 +_02255038: .word 0xFFFFE0FF + thumb_func_end MOD36_02254F5C + + thumb_func_start MOD36_0225503C +MOD36_0225503C: ; 0x0225503C + push {r3, r4, r5, lr} + sub sp, #8 + ldr r3, _02255098 ; =0x02255400 + add r4, r0, #0 + ldrh r5, [r3] + add r0, sp, #0 + add r2, sp, #0 + strh r5, [r0] + ldrh r5, [r3, #2] + strh r5, [r0, #2] + ldrh r5, [r3, #4] + ldrh r3, [r3, #6] + strh r5, [r0, #4] + strh r3, [r0, #6] + str r1, [r4, #0x58] + strh r1, [r0, #6] + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x48 + bl FUN_02019150 + ldr r0, [r4] + mov r2, #0xbe + ldr r0, [r0, #8] + ldr r1, [r4, #0x54] + lsl r2, r2, #6 + bl FUN_0208946C + cmp r0, #0 + bne _02255082 + add r0, r4, #0 + add r0, #0x48 + mov r1, #4 + bl FUN_02019620 +_02255082: + add r0, r4, #0 + add r0, #0x48 + bl FUN_02019270 + add r4, #0x48 + add r0, r4, #0 + bl FUN_02019548 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_02255098: .word 0x02255400 + thumb_func_end MOD36_0225503C + + thumb_func_start MOD36_0225509C +MOD36_0225509C: ; 0x0225509C + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _022550B8 + cmp r0, #1 + beq _022550C4 + pop {r3, r4, r5, pc} +_022550B8: + mov r0, #1 + str r0, [r4, #0x5c] + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_022550C4: + ldr r0, [r4] + mov r2, #0xbe + ldr r0, [r0, #8] + ldr r1, [r4, #0x54] + lsl r2, r2, #6 + bl FUN_02089444 + add r0, r4, #0 + add r0, #0x48 + bl FUN_02019178 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #7 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD36_02254F48 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD36_0225509C + + thumb_func_start MOD36_022550F4 +MOD36_022550F4: ; 0x022550F4 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r0, #0x48 + bl FUN_02019548 + add r0, r4, #0 + bl MOD36_02254F48 + pop {r4, pc} + thumb_func_end MOD36_022550F4 + + thumb_func_start MOD36_0225510C +MOD36_0225510C: ; 0x0225510C + push {r4, r5, r6, lr} + sub sp, #8 + add r6, r1, #0 + add r0, r6, #0 + bl MOD20_022538A0 + add r4, r0, #0 + ldr r1, [r4] + ldr r0, [r1] + lsl r2, r0, #1 + ldr r0, [r1, #4] + mov r1, #0x14 + lsl r3, r0, #1 + asr r5, r3, #3 + asr r0, r2, #3 + mul r1, r5 + add r5, r0, r1 + mov r0, #2 + str r0, [sp] + str r0, [sp, #4] + add r0, r4, #0 + lsl r2, r2, #0x10 + lsl r3, r3, #0x10 + add r0, #0x48 + mov r1, #1 + lsr r2, r2, #0x10 + lsr r3, r3, #0x10 + bl FUN_020196F4 + ldr r1, [r4, #0x54] + lsl r0, r5, #5 + add r0, r1, r0 + ldr r1, [r4, #0x58] + mov r2, #0x20 + add r1, r1, r5 + lsl r1, r1, #5 + bl GXS_LoadBG3Char + add r0, r6, #0 + bl MOD36_02254F48 + add sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD36_0225510C + + thumb_func_start MOD36_02255164 +MOD36_02255164: ; 0x02255164 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r0, #0x48 + bl FUN_02019548 + add r0, r4, #0 + bl MOD36_02254F48 + pop {r4, pc} + thumb_func_end MOD36_02255164 + + thumb_func_start MOD36_0225517C +MOD36_0225517C: ; 0x0225517C + push {r4, r5, r6, lr} + add r6, r1, #0 + add r0, r6, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r6, #0 + bl MOD20_022538A4 + add r5, r0, #0 + ldr r0, _022551D4 ; =0x00005B74 + ldrb r0, [r5, r0] + cmp r0, #0 + beq _0225519C + mov r1, #2 + b _0225519E +_0225519C: + mov r1, #1 +_0225519E: + ldr r0, [r4, #0x28] + bl MOD20_02253F28 + ldr r0, _022551D8 ; =0x00005B75 + ldrb r0, [r5, r0] + cmp r0, #0 + beq _022551B0 + mov r1, #4 + b _022551B2 +_022551B0: + mov r1, #3 +_022551B2: + ldr r0, [r4, #0x2c] + bl MOD20_02253F28 + ldr r0, _022551DC ; =0x00005B76 + ldrb r0, [r5, r0] + cmp r0, #0 + beq _022551C4 + mov r1, #6 + b _022551C6 +_022551C4: + mov r1, #5 +_022551C6: + ldr r0, [r4, #0x30] + bl MOD20_02253F28 + add r0, r6, #0 + bl MOD36_02254F48 + pop {r4, r5, r6, pc} + .align 2, 0 +_022551D4: .word 0x00005B74 +_022551D8: .word 0x00005B75 +_022551DC: .word 0x00005B76 + thumb_func_end MOD36_0225517C + + thumb_func_start MOD36_022551E0 +MOD36_022551E0: ; 0x022551E0 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r0, r4, #0 + add r0, #0x48 + mov r1, #4 + bl FUN_02019620 + add r4, #0x48 + add r0, r4, #0 + bl FUN_02019548 + add r0, r5, #0 + bl MOD36_02254F48 + pop {r3, r4, r5, pc} + thumb_func_end MOD36_022551E0 + + thumb_func_start MOD36_0225520C +MOD36_0225520C: ; 0x0225520C + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _02255236 + ldr r1, [r4, #0x5c] + cmp r1, #0 + beq _02255236 + add r0, r5, #0 + bl MOD36_02254F48 + pop {r3, r4, r5, pc} +_02255236: + cmp r0, #4 + bls _0225523C + b _0225539A +_0225523C: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02255248: ; jump table + .short _02255252 - _02255248 - 2 ; case 0 + .short _02255286 - _02255248 - 2 ; case 1 + .short _022552D8 - _02255248 - 2 ; case 2 + .short _02255322 - _02255248 - 2 ; case 3 + .short _02255356 - _02255248 - 2 ; case 4 +_02255252: + add r0, r4, #0 + add r0, #0x68 + ldrh r0, [r0] + mov r1, #0x15 + lsl r1, r1, #4 + add r2, r0, r1 + add r0, r4, #0 + add r0, #0x68 + strh r2, [r0] + add r0, r4, #0 + add r0, #0x6a + strh r1, [r0] + add r1, r4, #0 + add r1, #0x68 + ldrh r1, [r1] + ldr r0, [r4, #0x24] + bl MOD20_02253FB4 + mov r0, #0 + str r0, [r4, #0x64] + str r0, [r4, #0x60] + str r0, [r4, #0x5c] + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_02255286: + add r0, r4, #0 + add r0, #0x68 + ldrh r1, [r0] + add r0, r4, #0 + add r0, #0x6a + ldrh r0, [r0] + add r1, r1, r0 + add r0, r4, #0 + add r0, #0x68 + strh r1, [r0] + add r1, r4, #0 + add r1, #0x68 + ldrh r1, [r1] + ldr r0, [r4, #0x24] + bl MOD20_02253FB4 + add r0, r4, #0 + add r0, #0x6a + ldrh r1, [r0] + mov r0, #0x15 + lsl r0, r0, #4 + add r1, r1, r0 + add r0, r4, #0 + add r0, #0x6a + strh r1, [r0] + add r0, r4, #0 + add r0, #0x6a + mov r1, #3 + ldrh r0, [r0] + lsl r1, r1, #0xc + cmp r0, r1 + blo _0225539A + add r0, r4, #0 + add r0, #0x6a + strh r1, [r0] + mov r0, #1 + str r0, [r4, #0x64] + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_022552D8: + add r0, r4, #0 + add r0, #0x68 + ldrh r1, [r0] + add r0, r4, #0 + add r0, #0x6a + ldrh r0, [r0] + add r1, r1, r0 + add r0, r4, #0 + add r0, #0x68 + strh r1, [r0] + add r1, r4, #0 + add r1, #0x68 + ldrh r1, [r1] + ldr r0, [r4, #0x24] + bl MOD20_02253FB4 + ldr r0, [r4, #0x60] + cmp r0, #0 + beq _0225539A + bl FUN_0201BA60 + mov r1, #7 + and r0, r1 + str r0, [r4, #0x6c] + add r0, r4, #0 + add r0, #0x6a + ldrh r1, [r0] + mov r0, #0x1a + lsl r0, r0, #8 + cmp r1, r0 + bls _0225531A + add r4, #0x6a + strh r0, [r4] +_0225531A: + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_02255322: + add r0, r4, #0 + add r0, #0x68 + ldrh r1, [r0] + add r0, r4, #0 + add r0, #0x6a + ldrh r0, [r0] + add r1, r1, r0 + add r0, r4, #0 + add r0, #0x68 + strh r1, [r0] + add r1, r4, #0 + add r1, #0x68 + ldrh r1, [r1] + ldr r0, [r4, #0x24] + bl MOD20_02253FB4 + ldr r0, [r4, #0x6c] + cmp r0, #0 + bne _0225534E + sub r0, r0, #1 + str r0, [r4, #0x6c] + pop {r3, r4, r5, pc} +_0225534E: + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_02255356: + add r0, r4, #0 + add r0, #0x6a + ldrh r0, [r0] + cmp r0, #0x50 + bls _0225538E + add r0, r4, #0 + add r0, #0x6a + ldrh r1, [r0] + add r0, r4, #0 + add r0, #0x6a + sub r1, #0x50 + strh r1, [r0] + add r0, r4, #0 + add r0, #0x68 + ldrh r1, [r0] + add r0, r4, #0 + add r0, #0x6a + ldrh r0, [r0] + add r1, r1, r0 + add r0, r4, #0 + add r0, #0x68 + strh r1, [r0] + ldr r0, [r4, #0x24] + add r4, #0x68 + ldrh r1, [r4] + bl MOD20_02253FB4 + pop {r3, r4, r5, pc} +_0225538E: + mov r0, #0 + add r4, #0x6a + strh r0, [r4] + add r0, r5, #0 + bl MOD36_02254F48 +_0225539A: + pop {r3, r4, r5, pc} + thumb_func_end MOD36_0225520C + + thumb_func_start MOD36_0225539C +MOD36_0225539C: ; 0x0225539C + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _022553BE + cmp r0, #1 + beq _022553CA + pop {r3, r4, r5, pc} +_022553BE: + mov r0, #1 + str r0, [r4, #0x60] + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_022553CA: + add r0, r4, #0 + mov r1, #7 + bl MOD36_02254F30 + cmp r0, #0 + beq _022553E2 + ldr r0, _022553E4 ; =0x0000066A + bl MOD20_02252B28 + add r0, r5, #0 + bl MOD36_02254F48 +_022553E2: + pop {r3, r4, r5, pc} + .align 2, 0 +_022553E4: .word 0x0000066A + thumb_func_end MOD36_0225539C + + .section .rodata + ; 0x022553E8 + .incbin "baserom.nds", 0x28fda8, 0x110 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_36.SINIT_START + .global SDK_OVERLAY.MODULE_36.SINIT_END +SDK_OVERLAY.MODULE_36.SINIT_START: + .word MOD36_02254840 + .word 0 +SDK_OVERLAY.MODULE_36.SINIT_END: diff --git a/arm9/modules/37/asm/module_37.s b/arm9/modules/37/asm/module_37.s new file mode 100644 index 00000000..3cbe599b --- /dev/null +++ b/arm9/modules/37/asm/module_37.s @@ -0,0 +1,681 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD37_02254840 +MOD37_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD37_02254854 + ldr r1, _02254850 ; =MOD37_02254934 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD37_02254854 +_02254850: .word MOD37_02254934 + thumb_func_end MOD37_02254840 + + thumb_func_start MOD37_02254854 +MOD37_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x14 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD37_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD37_02254900 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD37_02254900 + thumb_func_end MOD37_02254854 + + thumb_func_start MOD37_0225489C +MOD37_0225489C: ; 0x0225489C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + add r1, r5, #0 + add r6, r2, #0 + add r0, r3, #0 + add r1, #8 + mov r2, #4 + str r3, [r5, #4] + bl FUN_02089418 + cmp r0, #0 + bne _022548BA + mov r0, #1 + str r0, [r5, #8] +_022548BA: + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xc + add r1, #8 + add r2, r6, #0 + bl MOD37_02254A54 + cmp r0, #0 + beq _022548DA + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + str r4, [r5, #0x10] + mov r0, #1 + pop {r4, r5, r6, pc} +_022548DA: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD37_0225489C + + thumb_func_start MOD37_022548E0 +MOD37_022548E0: ; 0x022548E0 + push {r4, lr} + add r4, r0, #0 + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #8 + mov r2, #4 + bl FUN_020893F0 + ldr r0, [r4, #0xc] + bl MOD37_02254B0C + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD37_022548E0 + + thumb_func_start MOD37_02254900 +MOD37_02254900: ; 0x02254900 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4] + add r5, r0, #0 + cmp r1, #3 + bhs _0225492C + lsl r2, r1, #2 + ldr r1, _02254930 ; =0x02254D28 + add r0, r4, #0 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _0225492C + add r0, r4, #0 + bl MOD37_022548E0 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x10] + bl MOD20_022529A0 +_0225492C: + pop {r3, r4, r5, pc} + nop +_02254930: .word 0x02254D28 + thumb_func_end MOD37_02254900 + + thumb_func_start MOD37_02254934 +MOD37_02254934: ; 0x02254934 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD37_02254934 + + thumb_func_start MOD37_0225493C +MOD37_0225493C: ; 0x0225493C + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254944 + b _02254946 +_02254944: + mov r1, #2 +_02254946: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD37_0225493C + + thumb_func_start MOD37_02254950 +MOD37_02254950: ; 0x02254950 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254960 + cmp r0, #1 + beq _02254970 + b _0225498A +_02254960: + ldr r0, [r4, #0xc] + mov r1, #0 + bl MOD37_02254B20 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _0225498A +_02254970: + ldr r0, [r4, #0xc] + mov r1, #0 + bl MOD37_02254B44 + cmp r0, #0 + beq _0225498A + ldr r0, [r4, #0x10] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD37_0225493C +_0225498A: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD37_02254950 + + thumb_func_start MOD37_02254990 +MOD37_02254990: ; 0x02254990 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _022549A0 + mov r1, #2 + bl MOD37_0225493C +_022549A0: + ldrb r0, [r4, #1] + cmp r0, #0 + beq _022549AC + cmp r0, #1 + beq _022549CE + b _022549DE +_022549AC: + bl MOD37_02254A18 + cmp r0, #0 + beq _022549DE + bl FUN_0201BA60 + mov r1, #1 + and r0, r1 + str r0, [r4, #8] + ldr r0, [r4, #0xc] + mov r1, #2 + bl MOD37_02254B20 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549DE +_022549CE: + ldr r0, [r4, #0xc] + mov r1, #2 + bl MOD37_02254B44 + cmp r0, #0 + beq _022549DE + mov r0, #0 + strb r0, [r4, #1] +_022549DE: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD37_02254990 + + thumb_func_start MOD37_022549E4 +MOD37_022549E4: ; 0x022549E4 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _022549F4 + cmp r0, #1 + beq _02254A04 + b _02254A12 +_022549F4: + ldr r0, [r4, #0xc] + mov r1, #1 + bl MOD37_02254B20 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A12 +_02254A04: + ldr r0, [r4, #0xc] + bl MOD37_02254B50 + cmp r0, #0 + beq _02254A12 + mov r0, #1 + pop {r4, pc} +_02254A12: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD37_022549E4 + + thumb_func_start MOD37_02254A18 +MOD37_02254A18: ; 0x02254A18 + push {r3, lr} + sub sp, #8 + add r0, sp, #4 + add r1, sp, #0 + bl MOD20_02252BB8 + cmp r0, #0 + beq _02254A4E + ldr r1, [sp, #4] + mov r0, #0x70 + sub r0, r0, r1 + add r3, r0, #0 + mul r3, r0 + ldr r1, [sp] + mov r0, #0x90 + sub r2, r0, r1 + add r1, r2, #0 + mul r1, r2 + str r1, [sp] + add r1, r3, r1 + lsl r0, r0, #2 + str r3, [sp, #4] + cmp r1, r0 + bhs _02254A4E + add sp, #8 + mov r0, #1 + pop {r3, pc} +_02254A4E: + mov r0, #0 + add sp, #8 + pop {r3, pc} + thumb_func_end MOD37_02254A18 + + thumb_func_start MOD37_02254A54 +MOD37_02254A54: ; 0x02254A54 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x48 + bl FUN_02016998 + add r4, r0, #0 + beq _02254A94 + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x20] + add r0, r4, #0 + bl MOD37_02254AA0 + ldr r1, _02254A98 ; =0xFFFF5800 + ldr r0, _02254A9C ; =0x02254DA0 + str r1, [r0] + mov r1, #0xb + lsl r1, r1, #8 + str r1, [r0, #4] + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254A94: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_02254A98: .word 0xFFFF5800 +_02254A9C: .word 0x02254DA0 + thumb_func_end MOD37_02254A54 + + thumb_func_start MOD37_02254AA0 +MOD37_02254AA0: ; 0x02254AA0 + push {r3, r4, lr} + sub sp, #0xc + mov r3, #0 + str r3, [sp] + mov r2, #1 + add r4, r0, #0 + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x39 + bl FUN_02006A34 + mov r0, #8 + str r0, [sp] + add r0, r4, #0 + add r0, #0x28 + mov r1, #0xc + mov r2, #0x37 + mov r3, #0x38 + bl MOD20_02253FBC + add r2, r4, #0 + ldr r0, [r4, #0x20] + ldr r1, _02254AF0 ; =0x02254D34 + add r2, #0x28 + bl MOD20_02253E74 + str r0, [r4, #0x24] + ldr r0, [r4] + ldr r0, [r0] + cmp r0, #0 + bne _02254AEA + ldr r0, [r4, #0x24] + mov r1, #2 + bl MOD20_02253F28 +_02254AEA: + add sp, #0xc + pop {r3, r4, pc} + nop +_02254AF0: .word 0x02254D34 + thumb_func_end MOD37_02254AA0 + + thumb_func_start MOD37_02254AF4 +MOD37_02254AF4: ; 0x02254AF4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x24] + bl MOD20_02253F14 + add r4, #0x28 + add r0, r4, #0 + bl MOD20_02254014 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD37_02254AF4 + + thumb_func_start MOD37_02254B0C +MOD37_02254B0C: ; 0x02254B0C + push {r4, lr} + add r4, r0, #0 + beq _02254B1C + bl MOD37_02254AF4 + add r0, r4, #0 + bl FUN_02016A18 +_02254B1C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD37_02254B0C + + thumb_func_start MOD37_02254B20 +MOD37_02254B20: ; 0x02254B20 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254B40 ; =0x02254D60 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254B40: .word 0x02254D60 + thumb_func_end MOD37_02254B20 + + thumb_func_start MOD37_02254B44 +MOD37_02254B44: ; 0x02254B44 + ldr r3, _02254B4C ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254B4C: .word MOD20_02253794 + thumb_func_end MOD37_02254B44 + + thumb_func_start MOD37_02254B50 +MOD37_02254B50: ; 0x02254B50 + ldr r3, _02254B58 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254B58: .word MOD20_022537B8 + thumb_func_end MOD37_02254B50 + + thumb_func_start MOD37_02254B5C +MOD37_02254B5C: ; 0x02254B5C + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD37_02254B5C + + thumb_func_start MOD37_02254B70 +MOD37_02254B70: ; 0x02254B70 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254BF4 ; =0x02254D44 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x36 + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x35 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254BF8 ; =0x04001000 + ldr r0, _02254BFC ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD37_02254B5C + add sp, #0x14 + pop {r4, r5, pc} + nop +_02254BF4: .word 0x02254D44 +_02254BF8: .word 0x04001000 +_02254BFC: .word 0xFFFFE0FF + thumb_func_end MOD37_02254B70 + + thumb_func_start MOD37_02254C00 +MOD37_02254C00: ; 0x02254C00 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _02254C1C + cmp r0, #1 + beq _02254C26 + pop {r3, r4, r5, pc} +_02254C1C: + mov r0, #1 + str r0, [r4, #0x44] + add r0, r5, #0 + bl MOD20_022538B0 +_02254C26: + add r0, r4, #0 + mov r1, #2 + bl MOD37_02254B44 + cmp r0, #0 + beq _02254C40 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD37_02254B5C +_02254C40: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD37_02254C00 + + thumb_func_start MOD37_02254C44 +MOD37_02254C44: ; 0x02254C44 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r6, r0, #0 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _02254C6C + cmp r0, #1 + beq _02254C90 + cmp r0, #2 + beq _02254D10 + pop {r4, r5, r6, pc} +_02254C6C: + ldr r0, _02254D18 ; =0x00000675 + bl MOD20_02252B28 + ldr r0, [r4, #0x24] + mov r1, #0 + bl MOD20_02253F28 + mov r0, #9 + lsl r0, r0, #0x10 + str r0, [r4, #0x3c] + ldr r0, _02254D1C ; =0x02254DA0 + ldr r0, [r0] + str r0, [r4, #0x40] + mov r0, #0 + str r0, [r4, #0x44] + add r0, r5, #0 + bl MOD20_022538B0 +_02254C90: + ldr r0, [r4, #0x44] + cmp r0, #0 + beq _02254C9E + add r0, r5, #0 + bl MOD37_02254B5C + pop {r4, r5, r6, pc} +_02254C9E: + ldr r1, [r4, #0x3c] + ldr r0, [r4, #0x40] + add r0, r1, r0 + str r0, [r4, #0x3c] + ldr r0, _02254D1C ; =0x02254DA0 + ldr r1, [r4, #0x40] + ldr r0, [r0, #4] + add r1, r1, r0 + str r1, [r4, #0x40] + cmp r1, #0 + ble _02254D02 + mov r0, #9 + ldr r2, [r4, #0x3c] + lsl r0, r0, #0x10 + cmp r2, r0 + blt _02254D02 + mov r0, #0x38 + mul r0, r1 + mov r1, #0x64 + bl _s32_div_f + neg r1, r0 + ldr r0, _02254D20 ; =0xFFFFE000 + str r1, [r4, #0x40] + cmp r1, r0 + ldr r0, _02254D24 ; =0x00000676 + bge _02254CE0 + bl MOD20_02252B28 + mov r0, #9 + lsl r0, r0, #0x10 + str r0, [r4, #0x3c] + b _02254D02 +_02254CE0: + bl MOD20_02252B28 + ldr r0, [r6] + cmp r0, #0 + beq _02254CEE + mov r1, #1 + b _02254CF0 +_02254CEE: + mov r1, #2 +_02254CF0: + ldr r0, [r4, #0x24] + bl MOD20_02253F28 + mov r0, #9 + lsl r0, r0, #0x10 + str r0, [r4, #0x3c] + add r0, r5, #0 + bl MOD20_022538B0 +_02254D02: + mov r1, #7 + ldr r0, [r4, #0x24] + ldr r2, [r4, #0x3c] + lsl r1, r1, #0x10 + bl MOD20_02253F64 + pop {r4, r5, r6, pc} +_02254D10: + add r0, r5, #0 + bl MOD37_02254B5C + pop {r4, r5, r6, pc} + .align 2, 0 +_02254D18: .word 0x00000675 +_02254D1C: .word 0x02254DA0 +_02254D20: .word 0xFFFFE000 +_02254D24: .word 0x00000676 + thumb_func_end MOD37_02254C44 + + .section .rodata + ; 0x02254D28 + .incbin "baserom.nds", 0x2904E8, 0x68 + + .section .sinit + .word MOD37_02254840 + + .section .bss + ; 0x02254DA0 + .space 8 diff --git a/arm9/modules/38/asm/module_38.s b/arm9/modules/38/asm/module_38.s new file mode 100644 index 00000000..e6f0160a --- /dev/null +++ b/arm9/modules/38/asm/module_38.s @@ -0,0 +1,1193 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD38_02254840 +MOD38_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD38_02254854 + ldr r1, _02254850 ; =MOD38_02254990 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD38_02254854 +_02254850: .word MOD38_02254990 + thumb_func_end MOD38_02254840 + + thumb_func_start MOD38_02254854 +MOD38_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x24 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD38_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD38_0225494C + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD38_0225494C + thumb_func_end MOD38_02254854 + + thumb_func_start MOD38_0225489C +MOD38_0225489C: ; 0x0225489C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r4, r1, #0 + add r1, r5, #0 + add r6, r2, #0 + add r0, r3, #0 + add r1, #8 + mov r2, #0xc + str r3, [r5, #4] + bl FUN_02089418 + cmp r0, #0 + bne _022548C0 + add r0, r5, #0 + add r0, #8 + bl MOD38_02254908 +_022548C0: + add r0, r5, #0 + add r1, r5, #0 + add r0, #0x14 + add r1, #8 + add r2, r6, #0 + bl MOD38_02254BC4 + cmp r0, #0 + beq _022548F8 + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + mov r0, #8 + str r0, [sp] + ldr r0, _02254900 ; =0x0225511C + ldr r2, _02254904 ; =MOD38_02254988 + mov r1, #6 + add r3, r5, #0 + bl MOD20_02254130 + str r0, [r5, #0x1c] + mov r0, #0 + str r0, [r5, #0x20] + add sp, #4 + str r4, [r5, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_022548F8: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_02254900: .word 0x0225511C +_02254904: .word MOD38_02254988 + thumb_func_end MOD38_0225489C + + thumb_func_start MOD38_02254908 +MOD38_02254908: ; 0x02254908 + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + str r0, [r4] + strh r0, [r4, #6] + strh r0, [r4, #8] + mov r0, #0x12 + strh r0, [r4, #0xa] + ldrh r0, [r4, #6] + ldrh r1, [r4, #8] + ldrh r2, [r4, #0xa] + bl MOD38_02254B2C + strh r0, [r4, #4] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD38_02254908 + + thumb_func_start MOD38_02254928 +MOD38_02254928: ; 0x02254928 + push {r4, lr} + add r4, r0, #0 + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #8 + mov r2, #0xc + bl FUN_020893F0 + ldr r0, [r4, #0x1c] + bl MOD20_02254198 + ldr r0, [r4, #0x14] + bl MOD38_02254D04 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD38_02254928 + + thumb_func_start MOD38_0225494C +MOD38_0225494C: ; 0x0225494C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #3 + bhs _02254982 + ldr r0, [r4, #0x18] + ldr r1, [r4, #0x1c] + bl MOD20_02252C14 + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _02254984 ; =0x02255110 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254982 + add r0, r4, #0 + bl MOD38_02254928 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x18] + bl MOD20_022529A0 +_02254982: + pop {r3, r4, r5, pc} + .align 2, 0 +_02254984: .word 0x02255110 + thumb_func_end MOD38_0225494C + + thumb_func_start MOD38_02254988 +MOD38_02254988: ; 0x02254988 + str r0, [r3, #8] + str r1, [r3, #0x20] + bx lr + .align 2, 0 + thumb_func_end MOD38_02254988 + + thumb_func_start MOD38_02254990 +MOD38_02254990: ; 0x02254990 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD38_02254990 + + thumb_func_start MOD38_02254998 +MOD38_02254998: ; 0x02254998 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _022549A0 + b _022549A2 +_022549A0: + mov r1, #2 +_022549A2: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD38_02254998 + + thumb_func_start MOD38_022549AC +MOD38_022549AC: ; 0x022549AC + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _022549BC + cmp r0, #1 + beq _022549CC + b _022549E6 +_022549BC: + ldr r0, [r4, #0x14] + mov r1, #0 + bl MOD38_02254D34 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549E6 +_022549CC: + ldr r0, [r4, #0x14] + mov r1, #0 + bl MOD38_02254D58 + cmp r0, #0 + beq _022549E6 + ldr r0, [r4, #0x18] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD38_02254998 +_022549E6: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD38_022549AC + + thumb_func_start MOD38_022549EC +MOD38_022549EC: ; 0x022549EC + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #2] + cmp r0, #0 + beq _02254A0C + ldr r0, [r4, #0x14] + bl MOD38_02254D64 + cmp r0, #0 + beq _02254A08 + add r0, r4, #0 + mov r1, #2 + bl MOD38_02254998 +_02254A08: + mov r0, #0 + pop {r4, pc} +_02254A0C: + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A1C + cmp r0, #1 + beq _02254A32 + cmp r0, #2 + beq _02254AE4 + b _02254AF2 +_02254A1C: + ldr r0, [r4, #0x20] + cmp r0, #1 + bne _02254AF2 + ldr r0, [r4, #0x14] + mov r1, #2 + bl MOD38_02254D34 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254AF2 +_02254A32: + ldr r0, [r4, #0x20] + cmp r0, #2 + bne _02254A46 + ldr r0, [r4, #0x14] + mov r1, #3 + bl MOD38_02254D34 + mov r0, #0 + strb r0, [r4, #1] + b _02254AF2 +_02254A46: + cmp r0, #3 + bne _02254AF2 + ldr r0, [r4, #8] + cmp r0, #5 + bhi _02254AC0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02254A5C: ; jump table + .short _02254A68 - _02254A5C - 2 ; case 0 + .short _02254A78 - _02254A5C - 2 ; case 1 + .short _02254A86 - _02254A5C - 2 ; case 2 + .short _02254A96 - _02254A5C - 2 ; case 3 + .short _02254AA4 - _02254A5C - 2 ; case 4 + .short _02254AB4 - _02254A5C - 2 ; case 5 +_02254A68: + ldrh r0, [r4, #0xe] + mov r1, #0 + mvn r1, r1 + mov r2, #0 + bl MOD38_02254B6C + strh r0, [r4, #0xe] + b _02254AC0 +_02254A78: + ldrh r0, [r4, #0xe] + mov r1, #1 + mov r2, #0 + bl MOD38_02254B6C + strh r0, [r4, #0xe] + b _02254AC0 +_02254A86: + ldrh r0, [r4, #0x10] + mov r1, #0 + mvn r1, r1 + mov r2, #0 + bl MOD38_02254B6C + strh r0, [r4, #0x10] + b _02254AC0 +_02254A96: + ldrh r0, [r4, #0x10] + mov r1, #1 + mov r2, #0 + bl MOD38_02254B6C + strh r0, [r4, #0x10] + b _02254AC0 +_02254AA4: + ldrh r0, [r4, #0x12] + mov r1, #0 + mvn r1, r1 + mov r2, #1 + bl MOD38_02254B6C + strh r0, [r4, #0x12] + b _02254AC0 +_02254AB4: + ldrh r0, [r4, #0x12] + mov r1, #1 + add r2, r1, #0 + bl MOD38_02254B6C + strh r0, [r4, #0x12] +_02254AC0: + ldrh r0, [r4, #0xe] + ldrh r1, [r4, #0x10] + ldrh r2, [r4, #0x12] + bl MOD38_02254B2C + strh r0, [r4, #0xc] + ldr r0, [r4, #0x14] + mov r1, #3 + bl MOD38_02254D34 + ldr r0, [r4, #0x14] + mov r1, #4 + bl MOD38_02254D34 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254AF2 +_02254AE4: + ldr r0, [r4, #0x14] + bl MOD38_02254D64 + cmp r0, #0 + beq _02254AF2 + mov r0, #0 + strb r0, [r4, #1] +_02254AF2: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD38_022549EC + + thumb_func_start MOD38_02254AF8 +MOD38_02254AF8: ; 0x02254AF8 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254B08 + cmp r0, #1 + beq _02254B18 + b _02254B26 +_02254B08: + ldr r0, [r4, #0x14] + mov r1, #1 + bl MOD38_02254D34 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254B26 +_02254B18: + ldr r0, [r4, #0x14] + bl MOD38_02254D64 + cmp r0, #0 + beq _02254B26 + mov r0, #1 + pop {r4, pc} +_02254B26: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD38_02254AF8 + + thumb_func_start MOD38_02254B2C +MOD38_02254B2C: ; 0x02254B2C + push {r4, r5} + ldr r5, _02254B68 ; =0x02255134 + mov r3, #0x12 + add r4, r0, #0 + mul r4, r3 + add r4, r5, r4 + add r0, r3, #0 + ldrsb r5, [r4, r1] + sub r0, #0x1c + cmp r5, r0 + beq _02254B4E + cmp r2, #0x12 + beq _02254B54 + ldrsb r0, [r4, r2] + sub r3, #0x1c + cmp r0, r3 + bne _02254B54 +_02254B4E: + mov r0, #0 + pop {r4, r5} + bx lr +_02254B54: + mov r0, #3 + add r0, r0, r5 + cmp r2, #0x12 + beq _02254B64 + cmp r2, r1 + beq _02254B64 + ldrsb r1, [r4, r2] + add r0, r0, r1 +_02254B64: + pop {r4, r5} + bx lr + .align 2, 0 +_02254B68: .word 0x02255134 + thumb_func_end MOD38_02254B2C + + thumb_func_start MOD38_02254B6C +MOD38_02254B6C: ; 0x02254B6C + push {r4, r5} + ldr r5, _02254BC0 ; =0x02255278 + mov r4, #0 +_02254B72: + ldrb r3, [r5] + cmp r3, r0 + beq _02254B80 + add r4, r4, #1 + add r5, r5, #1 + cmp r4, #0x11 + blo _02254B72 +_02254B80: + cmp r4, #0x11 + bne _02254B94 + cmp r1, #0 + ble _02254B8E + mov r0, #0 + pop {r4, r5} + bx lr +_02254B8E: + mov r0, #8 + pop {r4, r5} + bx lr +_02254B94: + add r4, r4, r1 + cmp r4, #0x11 + blt _02254BA6 + cmp r2, #0 + beq _02254BA4 + mov r0, #0x12 + pop {r4, r5} + bx lr +_02254BA4: + mov r4, #0 +_02254BA6: + cmp r4, #0 + bge _02254BB6 + cmp r2, #0 + beq _02254BB4 + mov r0, #0x12 + pop {r4, r5} + bx lr +_02254BB4: + mov r4, #0x10 +_02254BB6: + ldr r0, _02254BC0 ; =0x02255278 + ldrb r0, [r0, r4] + pop {r4, r5} + bx lr + nop +_02254BC0: .word 0x02255278 + thumb_func_end MOD38_02254B6C + + thumb_func_start MOD38_02254BC4 +MOD38_02254BC4: ; 0x02254BC4 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0xc0 + bl FUN_02016998 + add r4, r0, #0 + beq _02254C2A + add r0, #8 + mov r1, #8 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x30] + ldr r2, _02254C30 ; =0x00000235 + mov r0, #1 + mov r1, #0x1a + mov r3, #8 + bl FUN_0200A86C + add r1, r4, #0 + add r1, #0xb4 + str r0, [r1] + ldr r2, _02254C34 ; =0x00000195 + mov r0, #1 + mov r1, #0x1a + mov r3, #8 + bl FUN_0200A86C + add r1, r4, #0 + add r1, #0xb8 + str r0, [r1] + mov r0, #0x80 + mov r1, #8 + bl FUN_020219F4 + add r1, r4, #0 + add r1, #0xbc + str r0, [r1] + add r0, r4, #0 + bl MOD38_02254C38 + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254C2A: + mov r0, #0 + pop {r4, r5, r6, pc} + nop +_02254C30: .word 0x00000235 +_02254C34: .word 0x00000195 + thumb_func_end MOD38_02254BC4 + + thumb_func_start MOD38_02254C38 +MOD38_02254C38: ; 0x02254C38 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + mov r3, #0 + str r3, [sp] + mov r2, #1 + add r6, r0, #0 + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x40 + bl FUN_02006A34 + mov r0, #8 + str r0, [sp] + add r0, r6, #0 + add r0, #0x60 + mov r1, #0xc + mov r2, #0x3e + mov r3, #0x3f + bl MOD20_02253FBC + add r0, r6, #0 + str r0, [sp, #0xc] + add r0, #0x60 + ldr r4, _02254CBC ; =0x02255300 + mov r7, #0 + add r5, r6, #0 + str r0, [sp, #0xc] +_02254C72: + ldr r0, [r6, #0x30] + ldr r2, [sp, #0xc] + add r1, r4, #0 + bl MOD20_02253E74 + str r0, [r5, #0x34] + add r7, r7, #1 + add r4, #0x10 + add r5, r5, #4 + cmp r7, #6 + blt _02254C72 + add r0, r6, #0 + str r0, [sp, #0x10] + add r0, #0x60 + mov r7, #0 + add r4, r6, #0 + mov r5, #0x2c + str r0, [sp, #0x10] +_02254C96: + ldr r0, [r6, #0x30] + ldr r1, _02254CC0 ; =0x0225528C + ldr r2, [sp, #0x10] + bl MOD20_02253E74 + mov r2, #3 + lsl r1, r5, #0xc + lsl r2, r2, #0x10 + str r0, [r4, #0x4c] + bl MOD20_02253F64 + add r7, r7, #1 + add r4, r4, #4 + add r5, #8 + cmp r7, #5 + blt _02254C96 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_02254CBC: .word 0x02255300 +_02254CC0: .word 0x0225528C + thumb_func_end MOD38_02254C38 + + thumb_func_start MOD38_02254CC4 +MOD38_02254CC4: ; 0x02254CC4 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r6, #0 + add r4, r5, #0 +_02254CCC: + ldr r1, [r4, #0x34] + cmp r1, #0 + beq _02254CD8 + ldr r0, [r5, #0x30] + bl MOD20_02253F14 +_02254CD8: + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #6 + blt _02254CCC + mov r6, #0 + add r4, r5, #0 +_02254CE4: + ldr r1, [r4, #0x4c] + cmp r1, #0 + beq _02254CF0 + ldr r0, [r5, #0x30] + bl MOD20_02253F14 +_02254CF0: + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #5 + blt _02254CE4 + add r5, #0x60 + add r0, r5, #0 + bl MOD20_02254014 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD38_02254CC4 + + thumb_func_start MOD38_02254D04 +MOD38_02254D04: ; 0x02254D04 + push {r4, lr} + add r4, r0, #0 + beq _02254D32 + add r0, #0xbc + ldr r0, [r0] + bl FUN_02021A20 + add r0, r4, #0 + add r0, #0xb4 + ldr r0, [r0] + bl FUN_0200A8B8 + add r0, r4, #0 + add r0, #0xb8 + ldr r0, [r0] + bl FUN_0200A8B8 + add r0, r4, #0 + bl MOD38_02254CC4 + add r0, r4, #0 + bl FUN_02016A18 +_02254D32: + pop {r4, pc} + thumb_func_end MOD38_02254D04 + + thumb_func_start MOD38_02254D34 +MOD38_02254D34: ; 0x02254D34 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254D54 ; =0x022552B8 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254D54: .word 0x022552B8 + thumb_func_end MOD38_02254D34 + + thumb_func_start MOD38_02254D58 +MOD38_02254D58: ; 0x02254D58 + ldr r3, _02254D60 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254D60: .word MOD20_02253794 + thumb_func_end MOD38_02254D58 + + thumb_func_start MOD38_02254D64 +MOD38_02254D64: ; 0x02254D64 + ldr r3, _02254D6C ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254D6C: .word MOD20_022537B8 + thumb_func_end MOD38_02254D64 + + thumb_func_start MOD38_02254D70 +MOD38_02254D70: ; 0x02254D70 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD38_02254D70 + + thumb_func_start MOD38_02254D84 +MOD38_02254D84: ; 0x02254D84 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r1, #0 + add r0, r6, #0 + bl MOD20_022538A0 + add r5, r0, #0 + add r0, r6, #0 + bl MOD20_022538A4 + add r7, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254E1C ; =0x0225529C + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x3d + mov r3, #6 + bl FUN_0200687C + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x3c + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + add r0, r5, #0 + add r1, r7, #0 + lsr r2, r4, #5 + bl MOD38_02254E28 + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254E20 ; =0x04001000 + ldr r0, _02254E24 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r6, #0 + bl MOD38_02254D70 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_02254E1C: .word 0x0225529C +_02254E20: .word 0x04001000 +_02254E24: .word 0xFFFFE0FF + thumb_func_end MOD38_02254D84 + + thumb_func_start MOD38_02254E28 +MOD38_02254E28: ; 0x02254E28 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r5, r0, #0 + mov r0, #0xf + add r4, r2, #0 + str r0, [sp] + mov r2, #6 + str r2, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + add r6, r1, #0 + str r0, [sp, #0x10] + add r1, r5, #0 + ldr r0, [r5, #4] + add r1, #0x74 + add r3, r2, #0 + bl FUN_02019064 + mov r0, #4 + str r0, [sp] + mov r2, #6 + add r1, r5, #0 + str r2, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0xc + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r5, #4] + add r1, #0x84 + mov r3, #0x10 + bl FUN_02019064 + mov r0, #8 + str r0, [sp] + mov r2, #6 + add r1, r5, #0 + str r2, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0x18 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r5, #4] + add r1, #0x94 + mov r3, #0x10 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x16 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0 + add r1, r5, #0 + add r4, #0x24 + str r0, [sp, #0xc] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r5, #4] + add r1, #0xa4 + mov r2, #6 + mov r3, #3 + bl FUN_02019064 + add r0, r5, #0 + add r0, #0x74 + bl FUN_02019270 + add r0, r5, #0 + add r0, #0x84 + bl FUN_02019270 + add r0, r5, #0 + add r0, #0x94 + bl FUN_02019270 + add r0, r5, #0 + add r0, #0xa4 + bl FUN_02019270 + add r0, r5, #0 + add r1, r6, #0 + bl MOD38_02254FCC + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD38_02254E28 + + thumb_func_start MOD38_02254EF4 +MOD38_02254EF4: ; 0x02254EF4 + push {r4, lr} + add r4, r0, #0 + add r0, #0x74 + bl FUN_02019178 + add r0, r4, #0 + add r0, #0x84 + bl FUN_02019178 + add r0, r4, #0 + add r0, #0x94 + bl FUN_02019178 + add r4, #0xa4 + add r0, r4, #0 + bl FUN_02019178 + pop {r4, pc} + thumb_func_end MOD38_02254EF4 + + thumb_func_start MOD38_02254F18 +MOD38_02254F18: ; 0x02254F18 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + bl MOD38_02254EF4 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD38_02254D70 + pop {r3, r4, r5, pc} + thumb_func_end MOD38_02254F18 + + thumb_func_start MOD38_02254F38 +MOD38_02254F38: ; 0x02254F38 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + ldr r2, [r0] + mov r1, #1 + add r0, r2, #0 + tst r0, r1 + beq _02254F56 + mov r1, #3 +_02254F56: + lsl r0, r2, #2 + add r0, r4, r0 + ldr r0, [r0, #0x34] + bl MOD20_02253F28 + ldr r0, _02254F70 ; =0x00000663 + bl MOD20_02252B28 + add r0, r5, #0 + bl MOD38_02254D70 + pop {r3, r4, r5, pc} + nop +_02254F70: .word 0x00000663 + thumb_func_end MOD38_02254F38 + + thumb_func_start MOD38_02254F74 +MOD38_02254F74: ; 0x02254F74 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + ldr r2, [r0] + mov r0, #1 + tst r0, r2 + beq _02254F92 + mov r1, #2 + b _02254F94 +_02254F92: + mov r1, #0 +_02254F94: + lsl r0, r2, #2 + add r0, r4, r0 + ldr r0, [r0, #0x34] + bl MOD20_02253F28 + add r0, r5, #0 + bl MOD38_02254D70 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD38_02254F74 + + thumb_func_start MOD38_02254FA8 +MOD38_02254FA8: ; 0x02254FA8 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r1, r0, #0 + add r0, r4, #0 + bl MOD38_02254FCC + add r0, r5, #0 + bl MOD38_02254D70 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD38_02254FA8 + + thumb_func_start MOD38_02254FCC +MOD38_02254FCC: ; 0x02254FCC + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r1, r5, #0 + ldrh r2, [r4, #6] + add r1, #0x74 + bl MOD38_0225500C + add r1, r5, #0 + ldrh r2, [r4, #8] + add r0, r5, #0 + add r1, #0x84 + bl MOD38_0225500C + add r1, r5, #0 + ldrh r2, [r4, #0xa] + add r0, r5, #0 + add r1, #0x94 + bl MOD38_0225500C + add r1, r5, #0 + ldrh r2, [r4, #4] + add r0, r5, #0 + add r1, #0xa4 + bl MOD38_02255084 + ldrh r1, [r4, #4] + add r0, r5, #0 + bl MOD38_022550D0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD38_02254FCC + + thumb_func_start MOD38_0225500C +MOD38_0225500C: ; 0x0225500C + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #4 + add r6, r2, #0 + bl FUN_02019620 + cmp r6, #0x12 + bne _02255036 + add r0, r5, #0 + add r2, r5, #0 + add r0, #0xb8 + add r2, #0xbc + ldr r0, [r0] + ldr r2, [r2] + mov r1, #6 + bl FUN_0200A8E0 + b _02255048 +_02255036: + add r0, r5, #0 + add r2, r5, #0 + add r0, #0xb4 + add r2, #0xbc + ldr r0, [r0] + ldr r2, [r2] + add r1, r6, #0 + bl FUN_0200A8E0 +_02255048: + add r1, r5, #0 + add r1, #0xbc + mov r0, #0 + ldr r1, [r1] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0 + add r3, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02255080 ; =0x00010104 + add r5, #0xbc + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r5] + mov r5, #0x30 + sub r3, r5, r3 + add r0, r4, #0 + lsr r3, r3, #1 + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02019548 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_02255080: .word 0x00010104 + thumb_func_end MOD38_0225500C + + thumb_func_start MOD38_02255084 +MOD38_02255084: ; 0x02255084 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #4 + add r6, r2, #0 + bl FUN_02019620 + add r0, r5, #0 + add r2, r5, #0 + add r0, #0xb8 + add r2, #0xbc + ldr r0, [r0] + ldr r2, [r2] + add r1, r6, #0 + bl FUN_0200A8E0 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _022550CC ; =0x00010104 + add r5, #0xbc + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r5] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02019548 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_022550CC: .word 0x00010104 + thumb_func_end MOD38_02255084 + + thumb_func_start MOD38_022550D0 +MOD38_022550D0: ; 0x022550D0 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + add r6, r1, #0 + ldr r4, _0225510C ; =0x00000000 + beq _022550EE + add r5, r0, #0 + mov r7, #4 +_022550DE: + ldr r0, [r5, #0x4c] + add r1, r7, #0 + bl MOD20_02253F28 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, r6 + blo _022550DE +_022550EE: + cmp r4, #5 + bhs _0225510A + ldr r0, [sp] + lsl r1, r4, #2 + add r5, r0, r1 + mov r6, #5 +_022550FA: + ldr r0, [r5, #0x4c] + add r1, r6, #0 + bl MOD20_02253F28 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #5 + blo _022550FA +_0225510A: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0225510C: .word 0x00000000 + thumb_func_end MOD38_022550D0 + + .section .rodata + ; 0x02255110 + .incbin "baserom.nds", 0x290ED0, 0x250 + + .section .sinit + .word MOD38_02254840 diff --git a/arm9/modules/39/asm/module_39.s b/arm9/modules/39/asm/module_39.s new file mode 100644 index 00000000..c5946d62 --- /dev/null +++ b/arm9/modules/39/asm/module_39.s @@ -0,0 +1,1457 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD39_02254840 +MOD39_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD39_02254854 + ldr r1, _02254850 ; =MOD39_022549D4 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD39_02254854 +_02254850: .word MOD39_022549D4 + thumb_func_end MOD39_02254840 + + thumb_func_start MOD39_02254854 +MOD39_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x68 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD39_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD39_02254998 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD39_02254998 + thumb_func_end MOD39_02254854 + + thumb_func_start MOD39_0225489C +MOD39_0225489C: ; 0x0225489C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + str r0, [sp, #4] + add r0, r1, #0 + str r1, [sp, #8] + str r2, [sp, #0xc] + bl MOD20_02252C40 + bl FUN_0206BB1C + str r0, [sp, #0x10] + bl FUN_0206B9AC + ldr r1, [sp, #4] + mov r6, #0 + add r1, #0x34 + strb r0, [r1] + ldr r0, [sp, #4] + add r0, #0x34 + ldrb r0, [r0] + cmp r0, #0 + ble _02254906 + ldr r4, [sp, #4] + add r5, r4, #0 +_022548CC: + ldr r0, [sp, #0x10] + add r1, r6, #0 + bl FUN_0206B9B0 + add r7, r0, #0 + bl FUN_0206B688 + str r0, [r4, #4] + add r0, r7, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + strh r0, [r5, #0x1c] + add r0, r7, #0 + mov r1, #0x70 + mov r2, #0 + bl FUN_020671BC + strh r0, [r5, #0x28] + ldr r0, [sp, #4] + str r7, [r4, #0x48] + add r0, #0x34 + ldrb r0, [r0] + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #2 + cmp r6, r0 + blt _022548CC +_02254906: + ldr r0, [sp, #4] + mov r1, #0 + add r0, #0x36 + strb r1, [r0] + ldr r0, [sp, #4] + add r0, #0x34 + ldrb r0, [r0] + cmp r0, #1 + bls _0225491A + mov r1, #1 +_0225491A: + ldr r0, [sp, #4] + ldr r2, [sp, #0xc] + add r0, #0x37 + strb r1, [r0] + ldr r0, [sp, #4] + ldr r1, [sp, #4] + add r0, #0x38 + add r1, r1, #4 + bl MOD39_02254C1C + cmp r0, #0 + beq _02254964 + ldr r0, [sp, #4] + mov r1, #0 + strb r1, [r0] + strb r1, [r0, #1] + strb r1, [r0, #2] + mov r0, #8 + str r0, [sp] + ldr r0, _0225496C ; =0x02255300 + ldr r2, _02254970 ; =MOD39_0225498C + ldr r3, [sp, #4] + mov r1, #3 + bl MOD20_02254130 + ldr r1, [sp, #4] + str r0, [r1, #0x40] + ldr r0, [sp, #4] + mov r1, #0 + add r0, #0x46 + strh r1, [r0] + ldr r1, [sp, #8] + ldr r0, [sp, #4] + add sp, #0x14 + str r1, [r0, #0x3c] + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_02254964: + mov r0, #0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_0225496C: .word 0x02255300 +_02254970: .word MOD39_0225498C + thumb_func_end MOD39_0225489C + + thumb_func_start MOD39_02254974 +MOD39_02254974: ; 0x02254974 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x40] + bl MOD20_02254198 + ldr r0, [r4, #0x38] + bl MOD39_02254C58 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD39_02254974 + + thumb_func_start MOD39_0225498C +MOD39_0225498C: ; 0x0225498C + add r2, r3, #0 + add r2, #0x44 + strh r0, [r2] + add r3, #0x46 + strh r1, [r3] + bx lr + thumb_func_end MOD39_0225498C + + thumb_func_start MOD39_02254998 +MOD39_02254998: ; 0x02254998 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #3 + bhs _022549CE + ldr r0, [r4, #0x3c] + ldr r1, [r4, #0x40] + bl MOD20_02252C14 + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _022549D0 ; =0x0225530C + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _022549CE + add r0, r4, #0 + bl MOD39_02254974 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x3c] + bl MOD20_022529A0 +_022549CE: + pop {r3, r4, r5, pc} + .align 2, 0 +_022549D0: .word 0x0225530C + thumb_func_end MOD39_02254998 + + thumb_func_start MOD39_022549D4 +MOD39_022549D4: ; 0x022549D4 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD39_022549D4 + + thumb_func_start MOD39_022549DC +MOD39_022549DC: ; 0x022549DC + ldrb r2, [r0, #2] + cmp r2, #0 + bne _022549E4 + b _022549E6 +_022549E4: + mov r1, #2 +_022549E6: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD39_022549DC + + thumb_func_start MOD39_022549F0 +MOD39_022549F0: ; 0x022549F0 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A00 + cmp r0, #1 + beq _02254A10 + b _02254A2A +_02254A00: + ldr r0, [r4, #0x38] + mov r1, #0 + bl MOD39_02254DA4 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A2A +_02254A10: + ldr r0, [r4, #0x38] + mov r1, #0 + bl MOD39_02254DC8 + cmp r0, #0 + beq _02254A2A + ldr r0, [r4, #0x3c] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD39_022549DC +_02254A2A: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD39_022549F0 + + thumb_func_start MOD39_02254A30 +MOD39_02254A30: ; 0x02254A30 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254A44 + mov r1, #2 + bl MOD39_022549DC + mov r0, #0 + pop {r4, pc} +_02254A44: + ldrb r1, [r4, #1] + cmp r1, #3 + bhi _02254B48 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02254A56: ; jump table + .short _02254A5E - _02254A56 - 2 ; case 0 + .short _02254ACC - _02254A56 - 2 ; case 1 + .short _02254ADC - _02254A56 - 2 ; case 2 + .short _02254B38 - _02254A56 - 2 ; case 3 +_02254A5E: + add r1, r4, #0 + add r1, #0x46 + ldrh r1, [r1] + cmp r1, #1 + bne _02254B48 + add r1, r4, #0 + add r1, #0x44 + ldrh r1, [r1] + cmp r1, #0 + beq _02254AA8 + cmp r1, #1 + beq _02254A7C + cmp r1, #2 + beq _02254A92 + b _02254AC4 +_02254A7C: + bl MOD39_02254B50 + cmp r0, #0 + beq _02254AC4 + ldr r0, [r4, #0x38] + mov r1, #4 + bl MOD39_02254DA4 + mov r0, #1 + strb r0, [r4, #1] + b _02254AC4 +_02254A92: + bl MOD39_02254B9C + cmp r0, #0 + beq _02254AC4 + ldr r0, [r4, #0x38] + mov r1, #5 + bl MOD39_02254DA4 + mov r0, #1 + strb r0, [r4, #1] + b _02254AC4 +_02254AA8: + add r0, #0x34 + ldrb r0, [r0] + cmp r0, #1 + bls _02254ABE + ldr r0, [r4, #0x38] + mov r1, #2 + bl MOD39_02254DA4 + mov r0, #2 + strb r0, [r4, #1] + b _02254AC4 +_02254ABE: + ldr r0, _02254B4C ; =0x0000066E + bl MOD20_02252B28 +_02254AC4: + mov r0, #0 + add r4, #0x46 + strh r0, [r4] + b _02254B48 +_02254ACC: + ldr r0, [r4, #0x38] + bl MOD39_02254DD4 + cmp r0, #0 + beq _02254B48 + mov r0, #0 + strb r0, [r4, #1] + b _02254B48 +_02254ADC: + add r0, #0x46 + ldrh r0, [r0] + cmp r0, #2 + bne _02254AF2 + ldr r0, [r4, #0x38] + mov r1, #3 + bl MOD39_02254DA4 + mov r0, #0 + strb r0, [r4, #1] + b _02254B48 +_02254AF2: + cmp r0, #3 + bne _02254B48 + add r0, r4, #0 + add r0, #0x36 + ldrb r0, [r0] + lsl r0, r0, #2 + add r0, r4, r0 + ldr r0, [r0, #0x48] + str r0, [r4, #0x60] + add r0, r4, #0 + add r0, #0x37 + ldrb r0, [r0] + lsl r0, r0, #2 + add r0, r4, r0 + ldr r0, [r0, #0x48] + str r0, [r4, #0x64] + add r0, r4, #0 + add r0, #0x60 + bl MOD05_021ED9B4 + add r1, r4, #0 + add r1, #0x35 + strb r0, [r1] + ldr r0, [r4, #0x38] + mov r1, #3 + bl MOD39_02254DA4 + ldr r0, [r4, #0x38] + mov r1, #6 + bl MOD39_02254DA4 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254B48 +_02254B38: + ldr r0, [r4, #0x38] + mov r1, #6 + bl MOD39_02254DC8 + cmp r0, #0 + beq _02254B48 + mov r0, #0 + strb r0, [r4, #1] +_02254B48: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_02254B4C: .word 0x0000066E + thumb_func_end MOD39_02254A30 + + thumb_func_start MOD39_02254B50 +MOD39_02254B50: ; 0x02254B50 + push {r3, r4} + add r1, r0, #0 + add r1, #0x34 + ldrb r1, [r1] + cmp r1, #2 + bls _02254B94 + add r2, r0, #0 + mov r1, #0 + add r2, #0x36 +_02254B62: + ldrb r3, [r2] + add r3, r3, #1 + strb r3, [r2] + add r3, r0, #0 + add r3, #0x36 + ldrb r4, [r3] + add r3, r0, #0 + add r3, #0x34 + ldrb r3, [r3] + cmp r4, r3 + blo _02254B7E + add r3, r0, #0 + add r3, #0x36 + strb r1, [r3] +_02254B7E: + add r3, r0, #0 + add r3, #0x36 + ldrb r4, [r3] + add r3, r0, #0 + add r3, #0x37 + ldrb r3, [r3] + cmp r4, r3 + beq _02254B62 + mov r0, #1 + pop {r3, r4} + bx lr +_02254B94: + mov r0, #0 + pop {r3, r4} + bx lr + .align 2, 0 + thumb_func_end MOD39_02254B50 + + thumb_func_start MOD39_02254B9C +MOD39_02254B9C: ; 0x02254B9C + push {r3, r4} + add r1, r0, #0 + add r1, #0x34 + ldrb r1, [r1] + cmp r1, #2 + bls _02254BE0 + add r2, r0, #0 + mov r1, #0 + add r2, #0x37 +_02254BAE: + ldrb r3, [r2] + add r3, r3, #1 + strb r3, [r2] + add r3, r0, #0 + add r3, #0x37 + ldrb r4, [r3] + add r3, r0, #0 + add r3, #0x34 + ldrb r3, [r3] + cmp r4, r3 + blo _02254BCA + add r3, r0, #0 + add r3, #0x37 + strb r1, [r3] +_02254BCA: + add r3, r0, #0 + add r3, #0x37 + ldrb r4, [r3] + add r3, r0, #0 + add r3, #0x36 + ldrb r3, [r3] + cmp r4, r3 + beq _02254BAE + mov r0, #1 + pop {r3, r4} + bx lr +_02254BE0: + mov r0, #0 + pop {r3, r4} + bx lr + .align 2, 0 + thumb_func_end MOD39_02254B9C + + thumb_func_start MOD39_02254BE8 +MOD39_02254BE8: ; 0x02254BE8 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254BF8 + cmp r0, #1 + beq _02254C08 + b _02254C16 +_02254BF8: + ldr r0, [r4, #0x38] + mov r1, #1 + bl MOD39_02254DA4 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254C16 +_02254C08: + ldr r0, [r4, #0x38] + bl MOD39_02254DD4 + cmp r0, #0 + beq _02254C16 + mov r0, #1 + pop {r4, pc} +_02254C16: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD39_02254BE8 + + thumb_func_start MOD39_02254C1C +MOD39_02254C1C: ; 0x02254C1C + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #8 + mov r1, #0x88 + bl FUN_02016998 + add r4, r0, #0 + beq _02254C52 + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r5, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x20] + add r0, r4, #0 + add r1, r5, #0 + bl MOD39_02254C6C + str r4, [r6] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254C52: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD39_02254C1C + + thumb_func_start MOD39_02254C58 +MOD39_02254C58: ; 0x02254C58 + push {r4, lr} + add r4, r0, #0 + beq _02254C68 + bl MOD39_02254D78 + add r0, r4, #0 + bl FUN_02016A18 +_02254C68: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD39_02254C58 + + thumb_func_start MOD39_02254C6C +MOD39_02254C6C: ; 0x02254C6C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r0, #0 + mov r0, #1 + str r1, [sp, #0xc] + bl MOD20_022539C4 + mov r3, #0 + str r3, [sp] + mov r2, #1 + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x4a + bl FUN_02006A34 + mov r1, #0x14 + bl _u32_div_f + ldr r1, [sp, #0xc] + str r0, [r5, #0x64] + add r2, r1, #0 + add r2, #0x30 + ldrb r2, [r2] + mov r3, #0 + bl MOD20_02253A04 + mov r0, #8 + str r0, [sp] + add r0, r5, #0 + add r0, #0x3c + mov r1, #0xc + mov r2, #0x48 + mov r3, #0x49 + bl MOD20_02253FBC + mov r0, #8 + str r0, [sp] + add r0, r5, #0 + add r0, #0x50 + mov r1, #0xc + mov r2, #5 + mov r3, #6 + bl MOD20_02253FBC + add r0, r5, #0 + str r0, [sp, #0x10] + add r0, #0x3c + ldr r7, _02254D74 ; =0x02255408 + mov r4, #0 + add r6, r5, #0 + str r0, [sp, #0x10] +_02254CD6: + ldr r0, [r5, #0x20] + ldr r2, [sp, #0x10] + add r1, r7, #0 + bl MOD20_02253E74 + str r0, [r6, #0x24] + add r4, r4, #1 + add r7, #0x10 + add r6, r6, #4 + cmp r4, #4 + blt _02254CD6 + cmp r4, #6 + bge _02254D18 + ldr r1, _02254D74 ; =0x02255408 + lsl r0, r4, #4 + add r7, r1, r0 + lsl r0, r4, #2 + add r6, r5, r0 + add r0, r5, #0 + str r0, [sp, #0x14] + add r0, #0x50 + str r0, [sp, #0x14] +_02254D02: + ldr r0, [r5, #0x20] + ldr r2, [sp, #0x14] + add r1, r7, #0 + bl MOD20_02253E74 + str r0, [r6, #0x24] + add r4, r4, #1 + add r7, #0x10 + add r6, r6, #4 + cmp r4, #6 + blt _02254D02 +_02254D18: + ldr r0, [sp, #0xc] + add r0, #0x32 + ldrb r2, [r0] + ldr r0, [sp, #0xc] + lsl r1, r2, #1 + add r3, r0, r1 + ldrh r0, [r3, #0x24] + mov r1, #4 + str r0, [sp] + ldrh r3, [r3, #0x18] + add r0, r5, #0 + bl MOD39_02254FA4 + ldr r0, [sp, #0xc] + add r0, #0x33 + ldrb r2, [r0] + ldr r0, [sp, #0xc] + lsl r1, r2, #1 + add r3, r0, r1 + ldrh r0, [r3, #0x24] + mov r1, #5 + str r0, [sp] + ldrh r3, [r3, #0x18] + add r0, r5, #0 + bl MOD39_02254FA4 + ldr r0, [sp, #0xc] + add r0, #0x30 + str r0, [sp, #0xc] + ldrb r0, [r0] + cmp r0, #1 + bhi _02254D70 + ldr r0, [r5, #0x38] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r5, #0x30] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r5, #0x24] + mov r1, #0xa + bl MOD20_02253F28 +_02254D70: + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254D74: .word 0x02255408 + thumb_func_end MOD39_02254C6C + + thumb_func_start MOD39_02254D78 +MOD39_02254D78: ; 0x02254D78 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r0, #0x50 + bl MOD20_02254014 + add r0, r6, #0 + add r0, #0x3c + bl MOD20_02254014 + mov r4, #0 + add r5, r6, #0 +_02254D8E: + ldr r1, [r5, #0x24] + cmp r1, #0 + beq _02254D9A + ldr r0, [r6, #0x20] + bl MOD20_02253F14 +_02254D9A: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _02254D8E + pop {r4, r5, r6, pc} + thumb_func_end MOD39_02254D78 + + thumb_func_start MOD39_02254DA4 +MOD39_02254DA4: ; 0x02254DA4 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254DC4 ; =0x022553A8 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254DC4: .word 0x022553A8 + thumb_func_end MOD39_02254DA4 + + thumb_func_start MOD39_02254DC8 +MOD39_02254DC8: ; 0x02254DC8 + ldr r3, _02254DD0 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254DD0: .word MOD20_02253794 + thumb_func_end MOD39_02254DC8 + + thumb_func_start MOD39_02254DD4 +MOD39_02254DD4: ; 0x02254DD4 + ldr r3, _02254DDC ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254DDC: .word MOD20_022537B8 + thumb_func_end MOD39_02254DD4 + + thumb_func_start MOD39_02254DE0 +MOD39_02254DE0: ; 0x02254DE0 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD39_02254DE0 + + thumb_func_start MOD39_02254DF4 +MOD39_02254DF4: ; 0x02254DF4 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + add r0, r4, #0 + bl MOD20_022538A4 + ldr r0, [r5, #4] + ldr r2, _02254E7C ; =0x02255330 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x47 + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x46 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254E80 ; =0x04001000 + ldr r0, _02254E84 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD39_02254DE0 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 +_02254E7C: .word 0x02255330 +_02254E80: .word 0x04001000 +_02254E84: .word 0xFFFFE0FF + thumb_func_end MOD39_02254DF4 + + thumb_func_start MOD39_02254E88 +MOD39_02254E88: ; 0x02254E88 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _02254EA4 + cmp r0, #1 + beq _02254EB0 + pop {r3, r4, r5, pc} +_02254EA4: + mov r0, #1 + str r0, [r4, #0x68] + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_02254EB0: + add r0, r4, #0 + mov r1, #6 + bl MOD39_02254DC8 + cmp r0, #0 + beq _02254ECA + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD39_02254DE0 +_02254ECA: + pop {r3, r4, r5, pc} + thumb_func_end MOD39_02254E88 + + thumb_func_start MOD39_02254ECC +MOD39_02254ECC: ; 0x02254ECC + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + ldr r0, _02254EF4 ; =0x00000669 + bl MOD20_02252B28 + ldr r0, [r4, #0x24] + mov r1, #0xa + bl MOD20_02253F28 + add r0, r5, #0 + bl MOD39_02254DE0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02254EF4: .word 0x00000669 + thumb_func_end MOD39_02254ECC + + thumb_func_start MOD39_02254EF8 +MOD39_02254EF8: ; 0x02254EF8 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + ldr r0, [r4, #0x24] + mov r1, #9 + bl MOD20_02253F28 + add r0, r5, #0 + bl MOD39_02254DE0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD39_02254EF8 + + thumb_func_start MOD39_02254F1C +MOD39_02254F1C: ; 0x02254F1C + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + add r0, r6, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r6, #0 + bl MOD20_022538A4 + add r7, r0, #0 + add r0, #0x32 + ldrb r5, [r0] + ldr r0, _02254F5C ; =0x00000663 + bl MOD20_02252B28 + lsl r0, r5, #1 + add r3, r7, r0 + ldrh r0, [r3, #0x24] + mov r1, #4 + add r2, r5, #0 + str r0, [sp] + ldrh r3, [r3, #0x18] + add r0, r4, #0 + bl MOD39_02254FA4 + add r0, r4, #0 + bl MOD39_02254FF8 + add r0, r6, #0 + bl MOD39_02254DE0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254F5C: .word 0x00000663 + thumb_func_end MOD39_02254F1C + + thumb_func_start MOD39_02254F60 +MOD39_02254F60: ; 0x02254F60 + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + add r0, r6, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r6, #0 + bl MOD20_022538A4 + add r7, r0, #0 + add r0, #0x33 + ldrb r5, [r0] + ldr r0, _02254FA0 ; =0x00000663 + bl MOD20_02252B28 + lsl r0, r5, #1 + add r3, r7, r0 + ldrh r0, [r3, #0x24] + mov r1, #5 + add r2, r5, #0 + str r0, [sp] + ldrh r3, [r3, #0x18] + add r0, r4, #0 + bl MOD39_02254FA4 + add r0, r4, #0 + bl MOD39_02254FF8 + add r0, r6, #0 + bl MOD39_02254DE0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254FA0: .word 0x00000663 + thumb_func_end MOD39_02254F60 + + thumb_func_start MOD39_02254FA4 +MOD39_02254FA4: ; 0x02254FA4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + lsl r0, r1, #2 + add r0, r5, r0 + add r6, r2, #0 + add r7, r3, #0 + ldr r4, [r0, #0x24] + cmp r1, #5 + bne _02254FBA + mov r1, #4 + b _02254FCC +_02254FBA: + add r0, r7, #0 + mov r1, #0x1c + bl FUN_02068678 + cmp r0, #0 + beq _02254FCA + mov r1, #4 + b _02254FCC +_02254FCA: + mov r1, #5 +_02254FCC: + add r0, r4, #0 + bl MOD20_02253F28 + ldr r2, [r5, #0x64] + lsl r1, r6, #4 + add r0, r4, #0 + add r1, r2, r1 + bl MOD20_02253FA4 + add r1, sp, #8 + ldrh r1, [r1, #0x10] + add r0, r7, #0 + mov r2, #0 + bl FUN_0206B7BC + add r1, r0, #0 + add r0, r4, #0 + add r1, r1, #1 + bl MOD20_02253F9C + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD39_02254FA4 + + thumb_func_start MOD39_02254FF8 +MOD39_02254FF8: ; 0x02254FF8 + push {r4, lr} + add r4, r0, #0 + mov r1, #3 + mov r2, #0x16 + ldr r0, [r4, #0x2c] + lsl r1, r1, #0x10 + lsl r2, r2, #0xe + bl MOD20_02253F64 + mov r1, #0xb + lsl r1, r1, #0x10 + ldr r0, [r4, #0x30] + lsr r2, r1, #1 + bl MOD20_02253F64 + ldr r0, [r4, #0x2c] + mov r1, #5 + bl MOD20_02253F28 + ldr r0, [r4, #0x30] + mov r1, #6 + bl MOD20_02253F28 + ldr r0, [r4, #0x28] + mov r1, #0 + bl MOD20_02253F28 + pop {r4, pc} + thumb_func_end MOD39_02254FF8 + + thumb_func_start MOD39_02255030 +MOD39_02255030: ; 0x02255030 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r6, r0, #0 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _0225505C + ldr r0, [r4, #0x68] + cmp r0, #0 + beq _0225505C + add r0, r5, #0 + bl MOD39_02254DE0 + pop {r4, r5, r6, pc} +_0225505C: + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _0225506C + cmp r0, #1 + beq _02255086 + pop {r4, r5, r6, pc} +_0225506C: + mov r0, #0 + str r0, [r4, #0x68] + add r0, r4, #0 + bl MOD39_02254FF8 + add r0, r4, #0 + add r1, r6, #0 + bl MOD39_0225509C + add r0, r5, #0 + bl MOD20_022538B0 + pop {r4, r5, r6, pc} +_02255086: + add r0, r4, #0 + add r1, r6, #0 + bl MOD39_02255114 + cmp r0, #0 + beq _02255098 + add r0, r5, #0 + bl MOD39_02254DE0 +_02255098: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD39_02255030 + + thumb_func_start MOD39_0225509C +MOD39_0225509C: ; 0x0225509C + push {r3, r4, r5, lr} + add r4, r0, #0 + add r5, r1, #0 + mov r1, #0 + str r1, [r4, #0x70] + str r1, [r4, #0x74] + str r1, [r4, #0x78] + add r0, #0x84 + str r1, [r0] + add r0, r5, #0 + add r0, #0x31 + ldrb r0, [r0] + cmp r0, #3 + bhi _022550FA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022550C4: ; jump table + .short _022550EE - _022550C4 - 2 ; case 0 + .short _022550E0 - _022550C4 - 2 ; case 1 + .short _022550D2 - _022550C4 - 2 ; case 2 + .short _022550CC - _022550C4 - 2 ; case 3 +_022550CC: + ldr r0, _02255104 ; =0x02255378 + str r0, [r4, #0x6c] + b _022550FA +_022550D2: + ldr r0, _02255108 ; =0x02255318 + mov r1, #1 + str r0, [r4, #0x6c] + ldr r0, [r4, #0x28] + bl MOD20_02253F28 + b _022550FA +_022550E0: + ldr r0, _0225510C ; =0x0225534C + mov r1, #2 + str r0, [r4, #0x6c] + ldr r0, [r4, #0x28] + bl MOD20_02253F28 + b _022550FA +_022550EE: + ldr r0, _02255110 ; =0x02255468 + mov r1, #3 + str r0, [r4, #0x6c] + ldr r0, [r4, #0x28] + bl MOD20_02253F28 +_022550FA: + add r0, r4, #0 + add r1, r5, #0 + bl MOD39_02255114 + pop {r3, r4, r5, pc} + .align 2, 0 +_02255104: .word 0x02255378 +_02255108: .word 0x02255318 +_0225510C: .word 0x0225534C +_02255110: .word 0x02255468 + thumb_func_end MOD39_0225509C + + thumb_func_start MOD39_02255114 +MOD39_02255114: ; 0x02255114 + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + add r5, r4, #0 + add r6, r4, #0 + mov r7, #0x16 + add r5, #0x84 + add r6, #0x78 + lsl r7, r7, #0xe +_02255124: + ldr r0, [r4, #0x70] + cmp r0, #0 + beq _02255138 + cmp r0, #1 + bne _02255130 + b _02255280 +_02255130: + cmp r0, #2 + bne _02255136 + b _022552DC +_02255136: + b _022552FA +_02255138: + beq _0225513C + b _022552FA +_0225513C: + add r6, r4, #0 + add r5, r4, #0 + add r6, #0x7c + mov r7, #1 + add r5, #0x74 +_02255146: + ldr r0, [r5] + ldr r1, [r4, #0x74] + add r0, r0, #1 + str r0, [r5] + ldr r0, [r4, #0x6c] + lsl r1, r1, #2 + ldr r0, [r0, r1] + add r0, r0, #7 + cmp r0, #6 + bls _0225515C + b _02255276 +_0225515C: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02255168: ; jump table + .short _02255252 - _02255168 - 2 ; case 0 + .short _02255240 - _02255168 - 2 ; case 1 + .short _0225522C - _02255168 - 2 ; case 2 + .short _02255212 - _02255168 - 2 ; case 3 + .short _022551C2 - _02255168 - 2 ; case 4 + .short _0225517A - _02255168 - 2 ; case 5 + .short _02255176 - _02255168 - 2 ; case 6 +_02255176: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225517A: + ldr r0, [r5] + ldr r1, [r4, #0x74] + add r0, r0, #1 + str r0, [r5] + ldr r0, [r4, #0x6c] + lsl r1, r1, #2 + ldr r1, [r0, r1] + add r0, r4, #0 + add r0, #0x84 + str r1, [r0] + ldr r0, [r5] + ldr r1, [r4, #0x74] + add r0, r0, #1 + str r0, [r5] + ldr r0, [r4, #0x6c] + lsl r1, r1, #2 + ldr r0, [r0, r1] + str r0, [r4, #0x7c] + ldr r0, [r6] + lsl r0, r0, #0xc + str r0, [r6] + ldr r1, [r4, #0x78] + ldr r0, [r4, #0x7c] + add r1, r1, r0 + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + add r1, r4, #0 + add r1, #0x84 + ldr r0, [r6] + ldr r1, [r1] + bl _u32_div_f + str r0, [r6] + str r7, [r4, #0x70] + b _02255276 +_022551C2: + ldr r0, [r5] + ldr r1, [r4, #0x74] + add r0, r0, #1 + str r0, [r5] + ldr r0, [r4, #0x6c] + lsl r1, r1, #2 + ldr r1, [r0, r1] + add r0, r4, #0 + add r0, #0x84 + str r1, [r0] + ldr r0, [r5] + ldr r1, [r4, #0x74] + add r0, r0, #1 + str r0, [r5] + ldr r0, [r4, #0x6c] + lsl r1, r1, #2 + ldr r0, [r0, r1] + mov r1, #0 + str r0, [r4, #0x7c] + ldr r0, [r6] + mvn r1, r1 + lsl r0, r0, #0xc + mul r1, r0 + str r1, [r6] + ldr r1, [r4, #0x78] + ldr r0, [r4, #0x7c] + add r1, r1, r0 + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + add r1, r4, #0 + add r1, #0x84 + ldr r0, [r6] + ldr r1, [r1] + bl _u32_div_f + str r0, [r6] + mov r0, #1 + str r0, [r4, #0x70] + b _02255276 +_02255212: + ldr r0, [r5] + ldr r1, [r4, #0x74] + add r0, r0, #1 + str r0, [r5] + ldr r0, [r4, #0x6c] + lsl r1, r1, #2 + ldr r1, [r0, r1] + add r0, r4, #0 + add r0, #0x84 + str r1, [r0] + mov r0, #2 + str r0, [r4, #0x70] + b _02255276 +_0225522C: + ldr r0, [r5] + ldr r1, [r4, #0x74] + add r0, r0, #1 + str r0, [r5] + ldr r0, [r4, #0x6c] + lsl r1, r1, #2 + ldr r0, [r0, r1] + bl MOD20_02252B28 + b _02255276 +_02255240: + ldr r0, [r4, #0x2c] + mov r1, #6 + bl MOD20_02253F28 + ldr r0, [r4, #0x30] + mov r1, #5 + bl MOD20_02253F28 + b _02255276 +_02255252: + ldr r1, [r5] + ldr r0, [r4, #0x74] + add r1, r1, #1 + str r1, [r5] + ldr r2, [r4, #0x6c] + lsl r0, r0, #2 + ldr r0, [r2, r0] + ldr r2, [r4, #0x74] + add r1, r1, #1 + str r1, [r5] + lsl r0, r0, #2 + add r0, r4, r0 + ldr r1, [r4, #0x6c] + lsl r2, r2, #2 + ldr r0, [r0, #0x24] + ldr r1, [r1, r2] + bl MOD20_02253F28 +_02255276: + ldr r0, [r4, #0x70] + cmp r0, #0 + bne _0225527E + b _02255146 +_0225527E: + b _022552FA +_02255280: + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _022552CC + ldr r0, [r5] + sub r0, r0, #1 + str r0, [r5] + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _022552A4 + ldr r1, [r6] + ldr r0, [r4, #0x7c] + add r0, r1, r0 + str r0, [r6] + b _022552AC +_022552A4: + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + str r0, [r4, #0x78] +_022552AC: + mov r1, #3 + ldr r2, [r4, #0x78] + lsl r1, r1, #0x10 + add r1, r2, r1 + ldr r0, [r4, #0x2c] + add r2, r7, #0 + bl MOD20_02253F64 + mov r1, #0xb + ldr r2, [r4, #0x78] + lsl r1, r1, #0x10 + sub r1, r1, r2 + ldr r0, [r4, #0x30] + add r2, r7, #0 + bl MOD20_02253F64 +_022552CC: + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _022552FA + mov r0, #0 + str r0, [r4, #0x70] + b _02255124 +_022552DC: + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + beq _022552F4 + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + add r4, #0x84 + sub r0, r0, #1 + str r0, [r4] + b _022552FA +_022552F4: + mov r0, #0 + str r0, [r4, #0x70] + b _02255124 +_022552FA: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD39_02255114 + + .section .rodata + ; 0x02255300 + .incbin "baserom.nds", 0x291cc0, 0x1E4 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_39.SINIT_START + .global SDK_OVERLAY.MODULE_39.SINIT_END +SDK_OVERLAY.MODULE_39.SINIT_START: + .word MOD39_02254840 + .word 0 +SDK_OVERLAY.MODULE_39.SINIT_END: diff --git a/arm9/modules/40/asm/module_40.s b/arm9/modules/40/asm/module_40.s new file mode 100644 index 00000000..bc8e79f1 --- /dev/null +++ b/arm9/modules/40/asm/module_40.s @@ -0,0 +1,1417 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD40_02254840 +MOD40_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD40_02254854 + ldr r1, _02254850 ; =MOD40_022549D4 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD40_02254854 +_02254850: .word MOD40_022549D4 + thumb_func_end MOD40_02254840 + + thumb_func_start MOD40_02254854 +MOD40_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x34 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD40_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD40_02254998 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD40_02254998 + thumb_func_end MOD40_02254854 + + thumb_func_start MOD40_0225489C +MOD40_0225489C: ; 0x0225489C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r6, r2, #0 + bl MOD20_02252C3C + str r0, [r5, #0x10] + bl FUN_0204BF94 + strb r0, [r5, #3] + ldr r0, [r5, #0x10] + add r1, sp, #8 + add r2, sp, #4 + bl FUN_0204BF9C + ldr r0, [sp, #8] + strb r0, [r5, #6] + ldr r0, [sp, #4] + strb r0, [r5, #7] + add r0, r5, #3 + bl MOD40_02254940 + add r0, r5, #0 + add r0, #8 + add r1, r5, #3 + add r2, r6, #0 + bl MOD40_02254D6C + cmp r0, #0 + beq _02254930 + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + mov r0, #8 + str r0, [sp] + ldr r0, _02254938 ; =0x02255328 + ldr r2, _0225493C ; =MOD40_02254990 + mov r1, #6 + add r3, r5, #0 + bl MOD20_02254130 + str r0, [r5, #0x14] + mov r0, #0 + str r0, [r5, #0x1c] + ldr r0, [r5, #0x14] + mov r1, #2 + mov r2, #4 + bl MOD20_022542C0 + ldr r0, [r5, #0x14] + mov r1, #3 + mov r2, #4 + bl MOD20_022542C0 + mov r1, #4 + ldr r0, [r5, #0x14] + add r2, r1, #0 + bl MOD20_022542C0 + ldr r0, [r5, #0x14] + mov r1, #5 + mov r2, #4 + bl MOD20_022542C0 + mov r0, #0 + str r0, [r5, #0x2c] + str r0, [r5, #0x30] + add sp, #0xc + str r4, [r5, #0xc] + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_02254930: + mov r0, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_02254938: .word 0x02255328 +_0225493C: .word MOD40_02254990 + thumb_func_end MOD40_0225489C + + thumb_func_start MOD40_02254940 +MOD40_02254940: ; 0x02254940 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + add r0, sp, #0 + bl FUN_02012690 + ldr r0, [sp] + cmp r0, #0x18 + blo _0225495A + mov r1, #0x18 + bl _u32_div_f + str r1, [sp] +_0225495A: + ldr r0, [sp, #4] + cmp r0, #0x3c + blo _0225496A + ldr r0, [sp] + mov r1, #0x3c + bl _u32_div_f + str r1, [sp] +_0225496A: + ldr r0, [sp] + strb r0, [r4, #1] + ldr r0, [sp, #4] + strb r0, [r4, #2] + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD40_02254940 + + thumb_func_start MOD40_02254978 +MOD40_02254978: ; 0x02254978 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x14] + bl MOD20_02254198 + ldr r0, [r4, #8] + bl MOD40_02254DA8 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD40_02254978 + + thumb_func_start MOD40_02254990 +MOD40_02254990: ; 0x02254990 + str r0, [r3, #0x18] + str r1, [r3, #0x1c] + bx lr + .align 2, 0 + thumb_func_end MOD40_02254990 + + thumb_func_start MOD40_02254998 +MOD40_02254998: ; 0x02254998 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #5 + bhs _022549CE + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x14] + bl MOD20_02252C14 + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _022549D0 ; =0x02255314 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _022549CE + add r0, r4, #0 + bl MOD40_02254978 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0xc] + bl MOD20_022529A0 +_022549CE: + pop {r3, r4, r5, pc} + .align 2, 0 +_022549D0: .word 0x02255314 + thumb_func_end MOD40_02254998 + + thumb_func_start MOD40_022549D4 +MOD40_022549D4: ; 0x022549D4 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD40_022549D4 + + thumb_func_start MOD40_022549DC +MOD40_022549DC: ; 0x022549DC + ldrb r2, [r0, #2] + cmp r2, #0 + bne _022549E4 + b _022549E6 +_022549E4: + mov r1, #4 +_022549E6: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD40_022549DC + + thumb_func_start MOD40_022549F0 +MOD40_022549F0: ; 0x022549F0 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A00 + cmp r0, #1 + beq _02254A10 + b _02254A3A +_02254A00: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD40_02254F98 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A3A +_02254A10: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD40_02254FBC + cmp r0, #0 + beq _02254A3A + ldr r0, [r4, #0xc] + bl MOD20_0225298C + ldrb r0, [r4, #3] + cmp r0, #0 + beq _02254A32 + add r0, r4, #0 + mov r1, #2 + bl MOD40_022549DC + b _02254A3A +_02254A32: + add r0, r4, #0 + mov r1, #1 + bl MOD40_022549DC +_02254A3A: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD40_022549F0 + + thumb_func_start MOD40_02254A40 +MOD40_02254A40: ; 0x02254A40 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254A54 + mov r1, #4 + bl MOD40_022549DC + mov r0, #0 + pop {r4, pc} +_02254A54: + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A60 + cmp r0, #1 + beq _02254B32 + b _02254B46 +_02254A60: + ldr r1, [r4, #0x1c] + cmp r1, #1 + bne _02254A9A + ldr r0, [r4, #0x18] + cmp r0, #0 + bne _02254A9A + mov r0, #1 + strb r0, [r4, #3] + add r0, r4, #3 + bl MOD40_02254940 + mov r2, #6 + mov r3, #7 + ldrsb r2, [r4, r2] + ldrsb r3, [r4, r3] + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_0204BFB0 + ldr r0, [r4, #8] + mov r1, #2 + bl MOD40_02254F98 + mov r0, #0 + str r0, [r4, #0x1c] + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254B46 +_02254A9A: + cmp r1, #1 + bne _02254AB0 + ldr r0, [r4, #0x18] + cmp r0, #1 + bne _02254AB0 + mov r0, #0 + str r0, [r4, #0x1c] + ldr r0, _02254B4C ; =0x0000066E + bl MOD20_02252B28 + b _02254B46 +_02254AB0: + cmp r1, #1 + beq _02254AB8 + cmp r1, #7 + bne _02254B46 +_02254AB8: + ldr r0, [r4, #0x18] + cmp r0, #5 + bhi _02254B24 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02254ACA: ; jump table + .short _02254B24 - _02254ACA - 2 ; case 0 + .short _02254B24 - _02254ACA - 2 ; case 1 + .short _02254AD6 - _02254ACA - 2 ; case 2 + .short _02254AEA - _02254ACA - 2 ; case 3 + .short _02254AFE - _02254ACA - 2 ; case 4 + .short _02254B12 - _02254ACA - 2 ; case 5 +_02254AD6: + mov r0, #6 + ldrsb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, #6] + ldrsb r0, [r4, r0] + cmp r0, #0x17 + ble _02254B24 + mov r0, #0 + strb r0, [r4, #6] + b _02254B24 +_02254AEA: + mov r0, #6 + ldrsb r1, [r4, r0] + sub r1, r1, #1 + strb r1, [r4, #6] + ldrsb r0, [r4, r0] + cmp r0, #0 + bge _02254B24 + mov r0, #0x17 + strb r0, [r4, #6] + b _02254B24 +_02254AFE: + mov r0, #7 + ldrsb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, #7] + ldrsb r0, [r4, r0] + cmp r0, #0x3b + ble _02254B24 + mov r0, #0 + strb r0, [r4, #7] + b _02254B24 +_02254B12: + mov r0, #7 + ldrsb r1, [r4, r0] + sub r1, r1, #1 + strb r1, [r4, #7] + ldrsb r0, [r4, r0] + cmp r0, #0 + bge _02254B24 + mov r0, #0x3b + strb r0, [r4, #7] +_02254B24: + mov r0, #0 + str r0, [r4, #0x1c] + ldr r0, [r4, #8] + mov r1, #4 + bl MOD40_02254F98 + b _02254B46 +_02254B32: + ldr r0, [r4, #8] + mov r1, #2 + bl MOD40_02254FBC + cmp r0, #0 + beq _02254B46 + add r0, r4, #0 + mov r1, #2 + bl MOD40_022549DC +_02254B46: + mov r0, #0 + pop {r4, pc} + nop +_02254B4C: .word 0x0000066E + thumb_func_end MOD40_02254A40 + + thumb_func_start MOD40_02254B50 +MOD40_02254B50: ; 0x02254B50 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254B68 + mov r1, #4 + bl MOD40_022549DC + add sp, #8 + mov r0, #0 + pop {r4, pc} +_02254B68: + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254B74 + cmp r0, #1 + beq _02254C02 + b _02254C12 +_02254B74: + add r0, r4, #3 + bl MOD40_02254D4C + cmp r0, #0 + beq _02254B8C + add r0, r4, #0 + mov r1, #3 + bl MOD40_022549DC + add sp, #8 + mov r0, #0 + pop {r4, pc} +_02254B8C: + ldr r1, [r4, #0x1c] + cmp r1, #1 + bne _02254BB2 + ldr r0, [r4, #0x18] + cmp r0, #1 + bne _02254BB2 + mov r0, #0 + strb r0, [r4, #3] + ldr r0, [r4, #8] + mov r1, #3 + bl MOD40_02254F98 + mov r0, #0 + str r0, [r4, #0x1c] + add r0, r4, #0 + mov r1, #1 + bl MOD40_022549DC + b _02254C12 +_02254BB2: + cmp r1, #1 + bne _02254BC4 + ldr r0, [r4, #0x18] + cmp r0, #0 + bne _02254BC4 + ldr r0, _02254C18 ; =0x0000066E + bl MOD20_02252B28 + b _02254C12 +_02254BC4: + add r0, r4, #0 + bl MOD40_02254CE4 + cmp r0, #0 + bne _02254BD4 + add r0, r4, #0 + bl MOD40_02254CE8 +_02254BD4: + add r0, r4, #0 + add r1, sp, #4 + add r2, sp, #0 + bl MOD40_02254D00 + cmp r0, #0 + beq _02254C12 + mov r0, #5 + ldrsb r0, [r4, r0] + ldr r1, [sp] + cmp r1, r0 + beq _02254C12 + strb r1, [r4, #5] + ldr r0, [sp, #4] + mov r1, #4 + strb r0, [r4, #4] + ldr r0, [r4, #8] + bl MOD40_02254F98 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254C12 +_02254C02: + ldr r0, [r4, #8] + mov r1, #4 + bl MOD40_02254FBC + cmp r0, #0 + beq _02254C12 + mov r0, #0 + strb r0, [r4, #1] +_02254C12: + mov r0, #0 + add sp, #8 + pop {r4, pc} + .align 2, 0 +_02254C18: .word 0x0000066E + thumb_func_end MOD40_02254B50 + + thumb_func_start MOD40_02254C1C +MOD40_02254C1C: ; 0x02254C1C + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254C34 + mov r1, #4 + bl MOD40_022549DC + add sp, #8 + mov r0, #0 + pop {r4, pc} +_02254C34: + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254C40 + cmp r0, #1 + beq _02254C50 + b _02254CDC +_02254C40: + ldr r0, [r4, #8] + mov r1, #5 + bl MOD40_02254F98 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254CDC +_02254C50: + add r0, r4, #3 + bl MOD40_02254D4C + cmp r0, #0 + bne _02254C76 + ldr r0, [r4, #8] + bl MOD40_0225530C + ldr r0, [r4, #8] + mov r1, #2 + bl MOD40_02254F98 + add r0, r4, #0 + mov r1, #2 + bl MOD40_022549DC + add sp, #8 + mov r0, #0 + pop {r4, pc} +_02254C76: + ldr r0, [r4, #0x1c] + cmp r0, #1 + bne _02254CA6 + ldr r0, [r4, #0x18] + cmp r0, #1 + bne _02254CA6 + mov r0, #0 + strb r0, [r4, #3] + ldr r0, [r4, #8] + bl MOD40_0225530C + ldr r0, [r4, #8] + mov r1, #3 + bl MOD40_02254F98 + mov r0, #0 + str r0, [r4, #0x1c] + add r0, r4, #0 + mov r1, #1 + bl MOD40_022549DC + add sp, #8 + mov r0, #0 + pop {r4, pc} +_02254CA6: + add r0, r4, #0 + bl MOD40_02254CE4 + cmp r0, #0 + bne _02254CB6 + add r0, r4, #0 + bl MOD40_02254CE8 +_02254CB6: + add r0, r4, #0 + add r1, sp, #4 + add r2, sp, #0 + bl MOD40_02254D00 + cmp r0, #0 + beq _02254CDC + mov r0, #5 + ldrsb r0, [r4, r0] + ldr r1, [sp] + cmp r1, r0 + beq _02254CDC + strb r1, [r4, #5] + ldr r0, [sp, #4] + mov r1, #4 + strb r0, [r4, #4] + ldr r0, [r4, #8] + bl MOD40_02254F98 +_02254CDC: + mov r0, #0 + add sp, #8 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD40_02254C1C + + thumb_func_start MOD40_02254CE4 +MOD40_02254CE4: ; 0x02254CE4 + ldr r0, [r0, #0x2c] + bx lr + thumb_func_end MOD40_02254CE4 + + thumb_func_start MOD40_02254CE8 +MOD40_02254CE8: ; 0x02254CE8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x2c] + cmp r0, #0 + bne _02254CFE + add r0, r4, #0 + add r0, #0x20 + bl FUN_02012690 + mov r0, #1 + str r0, [r4, #0x30] +_02254CFE: + pop {r4, pc} + thumb_func_end MOD40_02254CE8 + + thumb_func_start MOD40_02254D00 +MOD40_02254D00: ; 0x02254D00 + ldr r3, [r0, #0x30] + cmp r3, #0 + beq _02254D12 + ldr r3, [r0, #0x20] + str r3, [r1] + ldr r0, [r0, #0x24] + str r0, [r2] + mov r0, #1 + bx lr +_02254D12: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD40_02254D00 + + thumb_func_start MOD40_02254D18 +MOD40_02254D18: ; 0x02254D18 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254D28 + cmp r0, #1 + beq _02254D38 + b _02254D46 +_02254D28: + ldr r0, [r4, #8] + mov r1, #1 + bl MOD40_02254F98 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254D46 +_02254D38: + ldr r0, [r4, #8] + bl MOD40_02254FC8 + cmp r0, #0 + beq _02254D46 + mov r0, #1 + pop {r4, pc} +_02254D46: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD40_02254D18 + + thumb_func_start MOD40_02254D4C +MOD40_02254D4C: ; 0x02254D4C + mov r1, #1 + mov r2, #3 + ldrsb r3, [r0, r1] + ldrsb r2, [r0, r2] + cmp r3, r2 + bne _02254D64 + mov r2, #2 + ldrsb r3, [r0, r2] + mov r2, #4 + ldrsb r0, [r0, r2] + cmp r3, r0 + beq _02254D66 +_02254D64: + mov r1, #0 +_02254D66: + add r0, r1, #0 + bx lr + .align 2, 0 + thumb_func_end MOD40_02254D4C + + thumb_func_start MOD40_02254D6C +MOD40_02254D6C: ; 0x02254D6C + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #8 + mov r1, #0x9c + bl FUN_02016998 + add r4, r0, #0 + beq _02254DA2 + add r0, #8 + mov r1, #8 + bl MOD20_022536F4 + str r5, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x30] + add r0, r4, #0 + add r1, r5, #0 + bl MOD40_02254DBC + str r4, [r6] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254DA2: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD40_02254D6C + + thumb_func_start MOD40_02254DA8 +MOD40_02254DA8: ; 0x02254DA8 + push {r4, lr} + add r4, r0, #0 + beq _02254DB8 + bl MOD40_02254EE4 + add r0, r4, #0 + bl FUN_02016A18 +_02254DB8: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD40_02254DA8 + + thumb_func_start MOD40_02254DBC +MOD40_02254DBC: ; 0x02254DBC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + mov r3, #0 + str r3, [sp] + mov r2, #1 + add r5, r0, #0 + str r1, [sp, #0xc] + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #2 + bl FUN_02006A34 + mov r0, #0 + str r0, [sp] + mov r2, #1 + mov r3, #0xa + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x4f + lsl r3, r3, #8 + bl FUN_02006A34 + mov r0, #8 + str r0, [sp] + add r0, r5, #0 + add r0, #0x68 + mov r1, #0xc + mov r2, #0x4d + mov r3, #0x4e + bl MOD20_02253FBC + mov r0, #8 + str r0, [sp] + add r0, r5, #0 + add r0, #0x7c + mov r1, #0xc + mov r2, #3 + mov r3, #4 + bl MOD20_02253FBC + add r0, r5, #0 + str r0, [sp, #0x14] + add r0, #0x68 + str r0, [sp, #0x14] + add r0, r5, #0 + str r0, [sp, #0x10] + add r0, #0x7c + ldr r7, _02254EE0 ; =0x022553B0 + mov r4, #0 + add r6, r5, #0 + str r0, [sp, #0x10] +_02254E2A: + cmp r4, #9 + blt _02254E40 + cmp r4, #0xc + bgt _02254E40 + ldr r0, [r5, #0x30] + ldr r2, [sp, #0x10] + add r1, r7, #0 + bl MOD20_02253E74 + str r0, [r6, #0x34] + b _02254E52 +_02254E40: + ldr r0, [r5, #0x30] + ldr r2, [sp, #0x14] + add r1, r7, #0 + bl MOD20_02253E74 + mov r1, #0x50 + str r0, [r6, #0x34] + bl MOD20_02253FA4 +_02254E52: + add r4, r4, #1 + add r7, #0x10 + add r6, r6, #4 + cmp r4, #0xd + blt _02254E2A + ldr r0, [sp, #0xc] + ldrb r0, [r0] + cmp r0, #0 + ldr r0, [r5, #0x34] + beq _02254EB2 + mov r1, #3 + bl MOD20_02253F28 + ldr r0, [r5, #0x40] + mov r1, #5 + bl MOD20_02253F28 + ldr r0, [r5, #0x44] + mov r1, #5 + bl MOD20_02253F28 + ldr r0, [r5, #0x48] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r5, #0x4c] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r5, #0x50] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r5, #0x54] + mov r1, #1 + bl MOD20_02253F78 + ldr r1, [sp, #0xc] + mov r2, #1 + ldrsb r1, [r1, r2] + ldr r2, [sp, #0xc] + mov r3, #2 + ldrsb r2, [r2, r3] + add r0, r5, #0 + bl MOD40_02254F14 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} +_02254EB2: + mov r1, #2 + bl MOD20_02253F28 + ldr r0, [r5, #0x40] + mov r1, #5 + bl MOD20_02253F28 + ldr r0, [r5, #0x44] + mov r1, #4 + bl MOD20_02253F28 + ldr r1, [sp, #0xc] + mov r2, #3 + ldrsb r1, [r1, r2] + ldr r2, [sp, #0xc] + mov r3, #4 + ldrsb r2, [r2, r3] + add r0, r5, #0 + bl MOD40_02254F14 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254EE0: .word 0x022553B0 + thumb_func_end MOD40_02254DBC + + thumb_func_start MOD40_02254EE4 +MOD40_02254EE4: ; 0x02254EE4 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_02254EEC: + ldr r1, [r5, #0x34] + cmp r1, #0 + beq _02254EF8 + ldr r0, [r6, #0x30] + bl MOD20_02253F14 +_02254EF8: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xd + blt _02254EEC + add r0, r6, #0 + add r0, #0x68 + bl MOD20_02254014 + add r6, #0x7c + add r0, r6, #0 + bl MOD20_02254014 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD40_02254EE4 + + thumb_func_start MOD40_02254F14 +MOD40_02254F14: ; 0x02254F14 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _02254F8C ; =0x04000280 + mov r3, #0 + strh r3, [r0] + str r1, [r0, #0x10] + add r1, r0, #0 + add r4, r2, #0 + mov r2, #0xa + add r1, #0x18 + str r2, [r1] + str r3, [r1, #4] + lsr r1, r0, #0xb +_02254F2E: + ldrh r2, [r0] + tst r2, r1 + bne _02254F2E + ldr r1, _02254F90 ; =0x040002A0 + ldr r0, [r5, #0x58] + ldr r1, [r1] + bl MOD20_02253F28 + ldr r2, _02254F8C ; =0x04000280 + lsr r0, r2, #0xb +_02254F42: + ldrh r1, [r2] + tst r1, r0 + bne _02254F42 + ldr r1, _02254F94 ; =0x040002A8 + ldr r0, [r5, #0x5c] + ldr r1, [r1] + bl MOD20_02253F28 + ldr r0, _02254F8C ; =0x04000280 + mov r3, #0 + strh r3, [r0] + add r1, r0, #0 + str r4, [r0, #0x10] + mov r2, #0xa + add r1, #0x18 + str r2, [r1] + str r3, [r1, #4] + lsr r1, r0, #0xb +_02254F66: + ldrh r2, [r0] + tst r2, r1 + bne _02254F66 + ldr r1, _02254F90 ; =0x040002A0 + ldr r0, [r5, #0x60] + ldr r1, [r1] + bl MOD20_02253F28 + ldr r2, _02254F8C ; =0x04000280 + lsr r0, r2, #0xb +_02254F7A: + ldrh r1, [r2] + tst r1, r0 + bne _02254F7A + ldr r1, _02254F94 ; =0x040002A8 + ldr r0, [r5, #0x64] + ldr r1, [r1] + bl MOD20_02253F28 + pop {r3, r4, r5, pc} + .align 2, 0 +_02254F8C: .word 0x04000280 +_02254F90: .word 0x040002A0 +_02254F94: .word 0x040002A8 + thumb_func_end MOD40_02254F14 + + thumb_func_start MOD40_02254F98 +MOD40_02254F98: ; 0x02254F98 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254FB8 ; =0x0225535C + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254FB8: .word 0x0225535C + thumb_func_end MOD40_02254F98 + + thumb_func_start MOD40_02254FBC +MOD40_02254FBC: ; 0x02254FBC + ldr r3, _02254FC4 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254FC4: .word MOD20_02253794 + thumb_func_end MOD40_02254FBC + + thumb_func_start MOD40_02254FC8 +MOD40_02254FC8: ; 0x02254FC8 + ldr r3, _02254FD0 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254FD0: .word MOD20_022537B8 + thumb_func_end MOD40_02254FC8 + + thumb_func_start MOD40_02254FD4 +MOD40_02254FD4: ; 0x02254FD4 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD40_02254FD4 + + thumb_func_start MOD40_02254FE8 +MOD40_02254FE8: ; 0x02254FE8 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _0225506C ; =0x02255340 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x4c + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x4b + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02255070 ; =0x04001000 + ldr r0, _02255074 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD40_02254FD4 + add sp, #0x14 + pop {r4, r5, pc} + nop +_0225506C: .word 0x02255340 +_02255070: .word 0x04001000 +_02255074: .word 0xFFFFE0FF + thumb_func_end MOD40_02254FE8 + + thumb_func_start MOD40_02255078 +MOD40_02255078: ; 0x02255078 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _02255094 + cmp r0, #1 + beq _022550A2 + pop {r3, r4, r5, pc} +_02255094: + add r0, r4, #0 + bl MOD40_0225530C + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_022550A2: + add r0, r4, #0 + mov r1, #5 + bl MOD40_02254FBC + cmp r0, #0 + beq _022550BC + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD40_02254FD4 +_022550BC: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD40_02255078 + + thumb_func_start MOD40_022550C0 +MOD40_022550C0: ; 0x022550C0 + push {r4, r5, r6, lr} + add r6, r1, #0 + add r0, r6, #0 + bl MOD20_022538A0 + add r5, r0, #0 + add r0, r6, #0 + bl MOD20_022538A4 + add r4, r0, #0 + ldr r0, _02255138 ; =0x00000663 + bl MOD20_02252B28 + ldr r0, [r5, #0x34] + mov r1, #3 + bl MOD20_02253F28 + ldr r0, [r5, #0x40] + mov r1, #5 + bl MOD20_02253F28 + ldr r0, [r5, #0x44] + mov r1, #5 + bl MOD20_02253F28 + ldr r0, [r5, #0x38] + mov r1, #0 + bl MOD20_02253F28 + ldr r0, [r5, #0x3c] + mov r1, #0 + bl MOD20_02253F28 + ldr r0, [r5, #0x48] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r5, #0x4c] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r5, #0x50] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r5, #0x54] + mov r1, #1 + bl MOD20_02253F78 + mov r1, #1 + mov r2, #2 + ldrsb r1, [r4, r1] + ldrsb r2, [r4, r2] + add r0, r5, #0 + bl MOD40_02254F14 + add r0, r6, #0 + bl MOD40_02254FD4 + pop {r4, r5, r6, pc} + .align 2, 0 +_02255138: .word 0x00000663 + thumb_func_end MOD40_022550C0 + + thumb_func_start MOD40_0225513C +MOD40_0225513C: ; 0x0225513C + push {r4, r5, r6, lr} + add r6, r1, #0 + add r0, r6, #0 + bl MOD20_022538A0 + add r5, r0, #0 + add r0, r6, #0 + bl MOD20_022538A4 + add r4, r0, #0 + ldr r0, _022551B4 ; =0x00000663 + bl MOD20_02252B28 + ldr r0, [r5, #0x34] + mov r1, #2 + bl MOD20_02253F28 + ldr r0, [r5, #0x40] + mov r1, #5 + bl MOD20_02253F28 + ldr r0, [r5, #0x44] + mov r1, #4 + bl MOD20_02253F28 + ldr r0, [r5, #0x38] + mov r1, #0 + bl MOD20_02253F28 + ldr r0, [r5, #0x3c] + mov r1, #0 + bl MOD20_02253F28 + ldr r0, [r5, #0x48] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r5, #0x4c] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r5, #0x50] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r5, #0x54] + mov r1, #0 + bl MOD20_02253F78 + mov r1, #3 + mov r2, #4 + ldrsb r1, [r4, r1] + ldrsb r2, [r4, r2] + add r0, r5, #0 + bl MOD40_02254F14 + add r0, r6, #0 + bl MOD40_02254FD4 + pop {r4, r5, r6, pc} + .align 2, 0 +_022551B4: .word 0x00000663 + thumb_func_end MOD40_0225513C + + thumb_func_start MOD40_022551B8 +MOD40_022551B8: ; 0x022551B8 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r2, r0, #0 + ldrb r0, [r2] + cmp r0, #0 + beq _022551E2 + mov r1, #1 + mov r3, #2 + ldrsb r1, [r2, r1] + ldrsb r2, [r2, r3] + add r0, r4, #0 + bl MOD40_02254F14 + b _022551F0 +_022551E2: + mov r1, #3 + mov r3, #4 + ldrsb r1, [r2, r1] + ldrsb r2, [r2, r3] + add r0, r4, #0 + bl MOD40_02254F14 +_022551F0: + add r0, r5, #0 + bl MOD40_02254FD4 + pop {r3, r4, r5, pc} + thumb_func_end MOD40_022551B8 + + thumb_func_start MOD40_022551F8 +MOD40_022551F8: ; 0x022551F8 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _0225521A + cmp r0, #1 + beq _02255262 + pop {r3, r4, r5, pc} +_0225521A: + add r0, r4, #0 + mov r1, #0 + add r0, #0x90 + str r1, [r0] + ldr r0, [r4, #0x40] + mov r1, #4 + bl MOD20_02253F28 + ldr r0, [r4, #0x44] + mov r1, #4 + bl MOD20_02253F28 + ldr r0, [r4, #0x38] + mov r1, #1 + bl MOD20_02253F28 + ldr r0, [r4, #0x3c] + mov r1, #1 + bl MOD20_02253F28 + ldr r0, _02255304 ; =0x00000663 + bl MOD20_02252B28 + ldr r0, _02255308 ; =0x00000126 + bl MOD20_02252B48 + add r0, r4, #0 + mov r1, #0 + add r0, #0x94 + str r1, [r0] + add r4, #0x98 + add r0, r5, #0 + str r1, [r4] + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_02255262: + add r0, r4, #0 + add r0, #0x90 + ldr r0, [r0] + cmp r0, #0 + beq _02255294 + ldr r0, [r4, #0x58] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r4, #0x5c] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r4, #0x60] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r4, #0x64] + mov r1, #0 + bl MOD20_02253F78 + add r0, r5, #0 + bl MOD40_02254FD4 + pop {r3, r4, r5, pc} +_02255294: + bl FUN_02005670 + cmp r0, #0 + bne _022552A2 + ldr r0, _02255308 ; =0x00000126 + bl MOD20_02252B48 +_022552A2: + add r0, r4, #0 + add r0, #0x94 + ldr r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0x94 + str r1, [r0] + add r0, r4, #0 + add r0, #0x94 + ldr r0, [r0] + cmp r0, #0xf + blo _02255300 + add r0, r4, #0 + mov r1, #0 + add r0, #0x94 + str r1, [r0] + add r0, r4, #0 + add r0, #0x98 + ldr r1, [r0] + mov r0, #1 + eor r1, r0 + add r0, r4, #0 + add r0, #0x98 + str r1, [r0] + add r1, r4, #0 + add r1, #0x98 + ldr r0, [r4, #0x58] + ldr r1, [r1] + bl MOD20_02253F78 + add r1, r4, #0 + add r1, #0x98 + ldr r0, [r4, #0x5c] + ldr r1, [r1] + bl MOD20_02253F78 + add r1, r4, #0 + add r1, #0x98 + ldr r0, [r4, #0x60] + ldr r1, [r1] + bl MOD20_02253F78 + ldr r0, [r4, #0x64] + add r4, #0x98 + ldr r1, [r4] + bl MOD20_02253F78 +_02255300: + pop {r3, r4, r5, pc} + nop +_02255304: .word 0x00000663 +_02255308: .word 0x00000126 + thumb_func_end MOD40_022551F8 + + thumb_func_start MOD40_0225530C +MOD40_0225530C: ; 0x0225530C + mov r1, #1 + add r0, #0x90 + str r1, [r0] + bx lr + thumb_func_end MOD40_0225530C + + .section .rodata + ; 0x02255314 + .incbin "baserom.nds", 0x292AD4, 0x16C + + .section .sinit + .word MOD40_02254840 diff --git a/arm9/modules/41/asm/module_41.s b/arm9/modules/41/asm/module_41.s new file mode 100644 index 00000000..d0b3e013 --- /dev/null +++ b/arm9/modules/41/asm/module_41.s @@ -0,0 +1,2032 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD41_02254840 +MOD41_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD41_02254854 + ldr r1, _02254850 ; =MOD41_02254AD8 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD41_02254854 +_02254850: .word MOD41_02254AD8 + thumb_func_end MOD41_02254840 + + thumb_func_start MOD41_02254854 +MOD41_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x90 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD41_02254990 + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD41_02254A88 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD41_02254A88 + thumb_func_end MOD41_02254854 + + thumb_func_start MOD41_0225489C +MOD41_0225489C: ; 0x0225489C + push {r4, r5} + mov r4, #0 + add r5, r0, #0 + mov r3, #1 + add r2, r4, #0 +_022548A6: + add r1, r0, r4 + str r3, [r5, #0x5c] + add r1, #0x4c + add r4, r4, #1 + add r5, r5, #4 + strb r2, [r1] + cmp r4, #3 + blt _022548A6 + str r3, [r0, #0x44] + pop {r4, r5} + bx lr + thumb_func_end MOD41_0225489C + + thumb_func_start MOD41_022548BC +MOD41_022548BC: ; 0x022548BC + lsl r3, r1, #2 + add r3, r0, r3 + str r2, [r3, #0x5c] + cmp r2, #0 + beq _022548CA + mov r2, #0 + b _022548CC +_022548CA: + mov r2, #1 +_022548CC: + add r1, r0, r1 + add r1, #0x4c + strb r2, [r1] + mov r1, #1 + str r1, [r0, #0x44] + bx lr + thumb_func_end MOD41_022548BC + + thumb_func_start MOD41_022548D8 +MOD41_022548D8: ; 0x022548D8 + lsl r3, r1, #2 + add r3, r0, r3 + ldr r3, [r3, #0x5c] + cmp r3, #0 + beq _022548EC + add r1, r0, r1 + add r1, #0x4c + strb r2, [r1] + mov r1, #1 + str r1, [r0, #0x44] +_022548EC: + bx lr + .align 2, 0 + thumb_func_end MOD41_022548D8 + + thumb_func_start MOD41_022548F0 +MOD41_022548F0: ; 0x022548F0 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #8] + add r4, r1, #0 + bl MOD41_0225578C + str r0, [r4, #0x10] + ldr r0, [r5, #4] + add r1, r4, #0 + mov r2, #0x48 + bl FUN_020893F0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD41_022548F0 + + thumb_func_start MOD41_0225490C +MOD41_0225490C: ; 0x0225490C + push {r4, lr} + add r4, r0, #0 + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x48 + mov r2, #0x48 + bl FUN_02089418 + cmp r0, #0 + beq _0225494C + add r0, r4, #0 + add r0, #0x8c + ldr r0, [r0] + cmp r0, #2 + bne _02254952 + add r0, r4, #0 + bl MOD41_02255108 + add r0, r4, #0 + bl MOD41_022550F8 + cmp r0, #0 + beq _02254952 + add r0, r4, #0 + mov r1, #4 + add r0, #0x8c + str r1, [r0] + mov r0, #0 + str r0, [r4, #0x50] + mov r0, #2 + str r0, [r4, #0x54] + pop {r4, pc} +_0225494C: + add r0, r4, #0 + bl MOD41_02254954 +_02254952: + pop {r4, pc} + thumb_func_end MOD41_0225490C + + thumb_func_start MOD41_02254954 +MOD41_02254954: ; 0x02254954 + push {r4, lr} + add r4, r0, #0 + add r1, r4, #0 + add r3, r4, #0 + mov r2, #1 + add r1, #0x8c + str r2, [r1] + mov r1, #0 + add r3, #0x48 + strb r1, [r3] + add r3, r4, #0 + add r3, #0x49 + strb r1, [r3] + add r3, r4, #0 + add r3, #0x4a + strb r1, [r3] + add r3, r4, #0 + add r3, #0x4b + strb r1, [r3] + str r2, [r4, #0x50] + str r1, [r4, #0x54] + str r1, [r4, #0x58] + bl MOD41_0225489C + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD41_022548BC + pop {r4, pc} + thumb_func_end MOD41_02254954 + + thumb_func_start MOD41_02254990 +MOD41_02254990: ; 0x02254990 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + str r3, [r5, #4] + bl MOD41_0225490C + add r0, r5, #0 + add r1, r5, #0 + add r0, #8 + add r1, #0x48 + add r2, r6, #0 + bl MOD41_0225524C + cmp r0, #0 + beq _02254A28 + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #3] + mov r0, #8 + str r0, [sp] + ldr r0, _02254A30 ; =0x022557B0 + ldr r2, _02254A34 ; =MOD41_02254A58 + mov r1, #0xb + add r3, r5, #0 + bl MOD20_02254130 + str r0, [r5, #0x10] + mov r0, #0 + str r0, [r5, #0x18] + ldr r0, [r5, #0x10] + mov r1, #3 + mov r2, #4 + bl MOD20_022542C0 + ldr r0, [r5, #0x10] + mov r1, #5 + mov r2, #4 + bl MOD20_022542C0 + mov r1, #4 + ldr r0, [r5, #0x10] + add r2, r1, #0 + bl MOD20_022542C0 + ldr r0, [r5, #0x10] + mov r1, #6 + mov r2, #4 + bl MOD20_022542C0 + ldr r0, [r5, #0x10] + mov r1, #7 + mov r2, #4 + bl MOD20_022542C0 + ldr r0, [r5, #0x10] + mov r1, #9 + mov r2, #4 + bl MOD20_022542C0 + ldr r0, [r5, #0x10] + mov r1, #8 + mov r2, #4 + bl MOD20_022542C0 + ldr r0, [r5, #0x10] + mov r1, #0xa + mov r2, #4 + bl MOD20_022542C0 + add sp, #4 + str r4, [r5, #0xc] + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_02254A28: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_02254A30: .word 0x022557B0 +_02254A34: .word MOD41_02254A58 + thumb_func_end MOD41_02254990 + + thumb_func_start MOD41_02254A38 +MOD41_02254A38: ; 0x02254A38 + push {r4, lr} + add r4, r0, #0 + add r1, r4, #0 + add r1, #0x48 + bl MOD41_022548F0 + ldr r0, [r4, #0x10] + bl MOD20_02254198 + ldr r0, [r4, #8] + bl MOD41_0225528C + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD41_02254A38 + + thumb_func_start MOD41_02254A58 +MOD41_02254A58: ; 0x02254A58 + push {r3, lr} + add r2, r0, #0 + str r2, [r3, #0x14] + str r1, [r3, #0x18] + cmp r2, #3 + bhs _02254A84 + cmp r1, #1 + bne _02254A74 + add r1, r2, #0 + add r0, r3, #0 + mov r2, #1 + bl MOD41_022548D8 + pop {r3, pc} +_02254A74: + sub r0, r1, #2 + cmp r0, #1 + bhi _02254A84 + add r1, r2, #0 + add r0, r3, #0 + mov r2, #0 + bl MOD41_022548D8 +_02254A84: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD41_02254A58 + + thumb_func_start MOD41_02254A88 +MOD41_02254A88: ; 0x02254A88 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #7 + bhs _02254AD0 + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + bl MOD20_02252C14 + ldr r0, [r4, #0x44] + cmp r0, #0 + beq _02254AAE + ldr r0, [r4, #8] + mov r1, #4 + bl MOD41_022553A4 + mov r0, #0 + str r0, [r4, #0x44] +_02254AAE: + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _02254AD4 ; =0x02255794 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254AD0 + add r0, r4, #0 + bl MOD41_02254A38 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0xc] + bl MOD20_022529A0 +_02254AD0: + pop {r3, r4, r5, pc} + nop +_02254AD4: .word 0x02255794 + thumb_func_end MOD41_02254A88 + + thumb_func_start MOD41_02254AD8 +MOD41_02254AD8: ; 0x02254AD8 + mov r1, #1 + strb r1, [r0, #3] + bx lr + .align 2, 0 + thumb_func_end MOD41_02254AD8 + + thumb_func_start MOD41_02254AE0 +MOD41_02254AE0: ; 0x02254AE0 + ldrb r3, [r0, #3] + ldrb r2, [r0] + cmp r3, #0 + beq _02254AEA + mov r1, #6 +_02254AEA: + strb r1, [r0] + cmp r1, #0 + beq _02254AFA + cmp r1, #6 + beq _02254AFA + add r3, r0, #0 + add r3, #0x8c + str r2, [r3] +_02254AFA: + cmp r1, #6 + bhi _02254B50 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02254B0A: ; jump table + .short _02254B50 - _02254B0A - 2 ; case 0 + .short _02254B18 - _02254B0A - 2 ; case 1 + .short _02254B22 - _02254B0A - 2 ; case 2 + .short _02254B2C - _02254B0A - 2 ; case 3 + .short _02254B36 - _02254B0A - 2 ; case 4 + .short _02254B40 - _02254B0A - 2 ; case 5 + .short _02254B4A - _02254B0A - 2 ; case 6 +_02254B18: + mov r1, #1 + str r1, [r0, #0x50] + mov r1, #0 + str r1, [r0, #0x54] + b _02254B50 +_02254B22: + mov r1, #0 + str r1, [r0, #0x50] + mov r1, #1 + str r1, [r0, #0x54] + b _02254B50 +_02254B2C: + mov r1, #0 + str r1, [r0, #0x50] + mov r1, #1 + str r1, [r0, #0x54] + b _02254B50 +_02254B36: + mov r1, #0 + str r1, [r0, #0x50] + mov r1, #2 + str r1, [r0, #0x54] + b _02254B50 +_02254B40: + mov r1, #0 + str r1, [r0, #0x50] + mov r1, #3 + str r1, [r0, #0x54] + b _02254B50 +_02254B4A: + add r1, r0, #0 + add r1, #0x8c + str r2, [r1] +_02254B50: + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD41_02254AE0 + + thumb_func_start MOD41_02254B58 +MOD41_02254B58: ; 0x02254B58 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254B68 + cmp r0, #1 + beq _02254B78 + b _02254B94 +_02254B68: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD41_022553A4 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254B94 +_02254B78: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD41_022553C8 + cmp r0, #0 + beq _02254B94 + ldr r0, [r4, #0xc] + bl MOD20_0225298C + add r0, r4, #0 + add r4, #0x8c + ldr r1, [r4] + bl MOD41_02254AE0 +_02254B94: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD41_02254B58 + + thumb_func_start MOD41_02254B98 +MOD41_02254B98: ; 0x02254B98 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #3] + cmp r1, #0 + beq _02254BAC + mov r1, #6 + bl MOD41_02254AE0 + mov r0, #0 + pop {r4, pc} +_02254BAC: + ldr r0, [r4, #8] + bl MOD41_022553D4 + cmp r0, #0 + bne _02254BBA + mov r0, #0 + pop {r4, pc} +_02254BBA: + ldr r1, [r4, #0x18] + cmp r1, #1 + bne _02254C36 + ldr r0, [r4, #0x14] + cmp r0, #2 + bhi _02254C36 + mov r0, #0 + str r0, [r4, #0x18] + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _02254BEE + cmp r0, #1 + beq _02254C2C + cmp r0, #2 + bne _02254C32 + add r0, r4, #0 + bl MOD41_02255170 + ldr r0, [r4, #8] + mov r1, #5 + bl MOD41_022553A4 + ldr r0, _02254D18 ; =0x00000663 + bl MOD20_02252B28 + b _02254C32 +_02254BEE: + ldr r0, _02254D18 ; =0x00000663 + bl MOD20_02252B28 + add r0, r4, #0 + bl MOD41_0225504C + mov r3, #0 + mov r2, #0 + eor r1, r3 + eor r0, r2 + orr r0, r1 + beq _02254C32 + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD41_022548BC + mov r1, #1 + add r0, r4, #0 + add r2, r1, #0 + bl MOD41_022548BC + ldr r0, [r4, #8] + mov r1, #3 + bl MOD41_022553A4 + add r0, r4, #0 + mov r1, #2 + bl MOD41_02254AE0 + b _02254C32 +_02254C2C: + ldr r0, _02254D1C ; =0x0000066E + bl MOD20_02252B28 +_02254C32: + mov r0, #0 + pop {r4, pc} +_02254C36: + cmp r1, #1 + beq _02254C3E + cmp r1, #7 + bne _02254D12 +_02254C3E: + ldr r1, [r4, #0x14] + add r0, r4, #0 + add r0, #0x48 + cmp r1, #0xa + bhi _02254D06 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02254C54: ; jump table + .short _02254D06 - _02254C54 - 2 ; case 0 + .short _02254D06 - _02254C54 - 2 ; case 1 + .short _02254D06 - _02254C54 - 2 ; case 2 + .short _02254C6A - _02254C54 - 2 ; case 3 + .short _02254C7C - _02254C54 - 2 ; case 4 + .short _02254C90 - _02254C54 - 2 ; case 5 + .short _02254CA4 - _02254C54 - 2 ; case 6 + .short _02254CB8 - _02254C54 - 2 ; case 7 + .short _02254CCC - _02254C54 - 2 ; case 8 + .short _02254CE0 - _02254C54 - 2 ; case 9 + .short _02254CF4 - _02254C54 - 2 ; case 10 +_02254C6A: + mov r1, #0 + ldrsb r2, [r0, r1] + add r2, r2, #1 + strb r2, [r0] + ldrsb r2, [r0, r1] + cmp r2, #9 + ble _02254D06 + strb r1, [r0] + b _02254D06 +_02254C7C: + mov r1, #1 + ldrsb r2, [r0, r1] + add r2, r2, #1 + strb r2, [r0, #1] + ldrsb r1, [r0, r1] + cmp r1, #9 + ble _02254D06 + mov r1, #0 + strb r1, [r0, #1] + b _02254D06 +_02254C90: + mov r1, #0 + ldrsb r2, [r0, r1] + sub r2, r2, #1 + strb r2, [r0] + ldrsb r1, [r0, r1] + cmp r1, #0 + bge _02254D06 + mov r1, #9 + strb r1, [r0] + b _02254D06 +_02254CA4: + mov r1, #1 + ldrsb r2, [r0, r1] + sub r2, r2, #1 + strb r2, [r0, #1] + ldrsb r1, [r0, r1] + cmp r1, #0 + bge _02254D06 + mov r1, #9 + strb r1, [r0, #1] + b _02254D06 +_02254CB8: + mov r1, #2 + ldrsb r2, [r0, r1] + add r2, r2, #1 + strb r2, [r0, #2] + ldrsb r1, [r0, r1] + cmp r1, #5 + ble _02254D06 + mov r1, #0 + strb r1, [r0, #2] + b _02254D06 +_02254CCC: + mov r1, #3 + ldrsb r2, [r0, r1] + add r2, r2, #1 + strb r2, [r0, #3] + ldrsb r1, [r0, r1] + cmp r1, #9 + ble _02254D06 + mov r1, #0 + strb r1, [r0, #3] + b _02254D06 +_02254CE0: + mov r1, #2 + ldrsb r2, [r0, r1] + sub r2, r2, #1 + strb r2, [r0, #2] + ldrsb r1, [r0, r1] + cmp r1, #0 + bge _02254D06 + mov r1, #5 + strb r1, [r0, #2] + b _02254D06 +_02254CF4: + mov r1, #3 + ldrsb r2, [r0, r1] + sub r2, r2, #1 + strb r2, [r0, #3] + ldrsb r1, [r0, r1] + cmp r1, #0 + bge _02254D06 + mov r1, #9 + strb r1, [r0, #3] +_02254D06: + ldr r0, [r4, #8] + mov r1, #5 + bl MOD41_022553A4 + mov r0, #0 + str r0, [r4, #0x18] +_02254D12: + mov r0, #0 + pop {r4, pc} + nop +_02254D18: .word 0x00000663 +_02254D1C: .word 0x0000066E + thumb_func_end MOD41_02254B98 + + thumb_func_start MOD41_02254D20 +MOD41_02254D20: ; 0x02254D20 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #3] + cmp r1, #0 + beq _02254D34 + mov r1, #6 + bl MOD41_02254AE0 + mov r0, #0 + pop {r4, pc} +_02254D34: + bl MOD41_02255108 + cmp r0, #0 + beq _02254D6C + ldr r0, [r4, #8] + mov r1, #5 + bl MOD41_022553A4 + add r0, r4, #0 + bl MOD41_022550F8 + cmp r0, #0 + beq _02254D6C + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD41_022548BC + ldr r0, [r4, #8] + mov r1, #6 + bl MOD41_022553A4 + add r0, r4, #0 + mov r1, #4 + bl MOD41_02254AE0 + mov r0, #0 + pop {r4, pc} +_02254D6C: + ldr r0, [r4, #0x18] + cmp r0, #1 + bne _02254E00 + mov r0, #0 + str r0, [r4, #0x18] + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _02254D86 + cmp r0, #1 + beq _02254D8E + cmp r0, #2 + beq _02254DC0 + b _02254E00 +_02254D86: + ldr r0, _02254E04 ; =0x0000066E + bl MOD20_02252B28 + b _02254E00 +_02254D8E: + ldr r0, _02254E08 ; =0x00000663 + bl MOD20_02252B28 + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD41_022548BC + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD41_022548BC + add r0, r4, #0 + bl MOD41_022550BC + ldr r0, [r4, #8] + mov r1, #4 + bl MOD41_022553A4 + add r0, r4, #0 + mov r1, #3 + bl MOD41_02254AE0 + b _02254E00 +_02254DC0: + ldr r0, _02254E08 ; =0x00000663 + bl MOD20_02252B28 + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD41_022548BC + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD41_022548BC + add r0, r4, #0 + bl MOD41_02255170 + ldr r0, [r4, #8] + mov r1, #4 + bl MOD41_022553A4 + ldr r0, [r4, #8] + mov r1, #5 + bl MOD41_022553A4 + ldr r0, [r4, #8] + mov r1, #2 + bl MOD41_022553A4 + add r0, r4, #0 + mov r1, #1 + bl MOD41_02254AE0 +_02254E00: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_02254E04: .word 0x0000066E +_02254E08: .word 0x00000663 + thumb_func_end MOD41_02254D20 + + thumb_func_start MOD41_02254E0C +MOD41_02254E0C: ; 0x02254E0C + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #3] + cmp r1, #0 + beq _02254E20 + mov r1, #6 + bl MOD41_02254AE0 + mov r0, #0 + pop {r4, pc} +_02254E20: + ldr r0, [r4, #0x18] + cmp r0, #1 + bne _02254EAC + mov r0, #0 + str r0, [r4, #0x18] + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _02254E3A + cmp r0, #1 + beq _02254E64 + cmp r0, #2 + beq _02254E6C + b _02254EAC +_02254E3A: + ldr r0, _02254EB0 ; =0x00000663 + bl MOD20_02252B28 + mov r1, #1 + add r0, r4, #0 + add r2, r1, #0 + bl MOD41_022548BC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD41_022548BC + add r0, r4, #0 + bl MOD41_022550D0 + add r0, r4, #0 + mov r1, #2 + bl MOD41_02254AE0 + b _02254EAC +_02254E64: + ldr r0, _02254EB4 ; =0x0000066E + bl MOD20_02252B28 + b _02254EAC +_02254E6C: + ldr r0, _02254EB0 ; =0x00000663 + bl MOD20_02252B28 + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD41_022548BC + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD41_022548BC + add r0, r4, #0 + bl MOD41_02255170 + ldr r0, [r4, #8] + mov r1, #4 + bl MOD41_022553A4 + ldr r0, [r4, #8] + mov r1, #5 + bl MOD41_022553A4 + ldr r0, [r4, #8] + mov r1, #2 + bl MOD41_022553A4 + add r0, r4, #0 + mov r1, #1 + bl MOD41_02254AE0 +_02254EAC: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_02254EB0: .word 0x00000663 +_02254EB4: .word 0x0000066E + thumb_func_end MOD41_02254E0C + + thumb_func_start MOD41_02254EB8 +MOD41_02254EB8: ; 0x02254EB8 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #3] + cmp r1, #0 + beq _02254ECC + mov r1, #6 + bl MOD41_02254AE0 + mov r0, #0 + pop {r4, pc} +_02254ECC: + ldr r0, [r4, #0x18] + cmp r0, #1 + bne _02254F52 + mov r0, #0 + str r0, [r4, #0x18] + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _02254EE6 + cmp r0, #1 + beq _02254EEE + cmp r0, #2 + beq _02254F20 + b _02254F52 +_02254EE6: + ldr r0, _02254F58 ; =0x0000066E + bl MOD20_02252B28 + b _02254F52 +_02254EEE: + ldr r0, _02254F5C ; =0x00000663 + bl MOD20_02252B28 + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD41_022548BC + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD41_022548BC + ldr r0, [r4, #8] + mov r1, #7 + bl MOD41_022553A4 + add r0, r4, #0 + mov r1, #5 + bl MOD41_02254AE0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254F52 +_02254F20: + ldr r0, _02254F5C ; =0x00000663 + bl MOD20_02252B28 + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD41_022548BC + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD41_022548BC + ldr r0, [r4, #8] + mov r1, #7 + bl MOD41_022553A4 + ldr r0, [r4, #8] + mov r1, #2 + bl MOD41_022553A4 + add r0, r4, #0 + mov r1, #1 + bl MOD41_02254AE0 +_02254F52: + mov r0, #0 + pop {r4, pc} + nop +_02254F58: .word 0x0000066E +_02254F5C: .word 0x00000663 + thumb_func_end MOD41_02254EB8 + + thumb_func_start MOD41_02254F60 +MOD41_02254F60: ; 0x02254F60 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #3] + cmp r1, #0 + beq _02254F74 + mov r1, #6 + bl MOD41_02254AE0 + mov r0, #0 + pop {r4, pc} +_02254F74: + ldr r0, [r4, #0x18] + cmp r0, #1 + bne _0225500A + mov r0, #0 + str r0, [r4, #0x18] + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _02254F8E + cmp r0, #1 + beq _02254FBA + cmp r0, #2 + beq _02254FC2 + b _0225500A +_02254F8E: + ldr r0, _02255010 ; =0x00000663 + bl MOD20_02252B28 + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD41_022548BC + mov r1, #1 + add r0, r4, #0 + add r2, r1, #0 + bl MOD41_022548BC + ldr r0, [r4, #8] + mov r1, #6 + bl MOD41_022553A4 + add r0, r4, #0 + mov r1, #4 + bl MOD41_02254AE0 + b _0225500A +_02254FBA: + ldr r0, _02255014 ; =0x0000066E + bl MOD20_02252B28 + b _0225500A +_02254FC2: + ldr r0, _02255010 ; =0x00000663 + bl MOD20_02252B28 + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD41_022548BC + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD41_022548BC + add r0, r4, #0 + bl MOD41_02255170 + ldr r0, [r4, #8] + mov r1, #7 + bl MOD41_022553A4 + ldr r0, [r4, #8] + mov r1, #4 + bl MOD41_022553A4 + ldr r0, [r4, #8] + mov r1, #5 + bl MOD41_022553A4 + ldr r0, [r4, #8] + mov r1, #2 + bl MOD41_022553A4 + add r0, r4, #0 + mov r1, #1 + bl MOD41_02254AE0 +_0225500A: + mov r0, #0 + pop {r4, pc} + nop +_02255010: .word 0x00000663 +_02255014: .word 0x0000066E + thumb_func_end MOD41_02254F60 + + thumb_func_start MOD41_02255018 +MOD41_02255018: ; 0x02255018 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02255028 + cmp r0, #1 + beq _02255038 + b _02255046 +_02255028: + ldr r0, [r4, #8] + mov r1, #1 + bl MOD41_022553A4 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02255046 +_02255038: + ldr r0, [r4, #8] + bl MOD41_022553D4 + cmp r0, #0 + beq _02255046 + mov r0, #1 + pop {r4, pc} +_02255046: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD41_02255018 + + thumb_func_start MOD41_0225504C +MOD41_0225504C: ; 0x0225504C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r5, #0 + add r4, #0x48 + bl FUN_02020BF4 + str r0, [r5, #0x68] + str r1, [r5, #0x6c] + mov r2, #0 + str r2, [r5, #0x70] + add r0, r5, #0 + str r2, [r5, #0x74] + mov r1, #1 + add r0, #0x88 + str r1, [r0] + str r2, [r5, #0x78] + str r2, [r5, #0x7c] + mov r2, #2 + ldrsb r3, [r4, r2] + mov r0, #3 + ldrsb r0, [r4, r0] + add r6, r3, #0 + ldrsb r3, [r4, r1] + mov r1, #0x48 + mov r2, #0xa + mul r6, r2 + ldrsb r1, [r5, r1] + add r0, r0, r6 + mul r2, r1 + add r2, r3, r2 + mov r1, #0x3c + mul r1, r2 + add r2, r0, r1 + add r0, r5, #0 + add r0, #0x80 + str r2, [r0] + add r0, r5, #0 + asr r1, r2, #0x1f + add r0, #0x84 + str r1, [r0] + add r1, r5, #0 + add r2, r5, #0 + add r1, #0x80 + add r2, #0x84 + ldr r1, [r1] + ldr r2, [r2] + add r0, r5, #0 + bl MOD41_02255190 + add r0, r5, #0 + add r0, #0x80 + add r5, #0x84 + ldr r0, [r0] + ldr r1, [r5] + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD41_0225504C + + thumb_func_start MOD41_022550BC +MOD41_022550BC: ; 0x022550BC + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + add r0, #0x88 + str r1, [r0] + bl FUN_02020BF4 + str r0, [r4, #0x70] + str r1, [r4, #0x74] + pop {r4, pc} + thumb_func_end MOD41_022550BC + + thumb_func_start MOD41_022550D0 +MOD41_022550D0: ; 0x022550D0 + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + bl FUN_02020BF4 + add r5, r4, #0 + add r5, #0x68 + ldr r7, [r4, #0x70] + ldr r2, [r4, #0x68] + ldr r6, [r4, #0x74] + sub r0, r0, r7 + sbc r1, r6 + ldr r3, [r5, #4] + add r0, r2, r0 + adc r3, r1 + str r0, [r4, #0x68] + str r3, [r5, #4] + mov r0, #1 + add r4, #0x88 + str r0, [r4] + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD41_022550D0 + + thumb_func_start MOD41_022550F8 +MOD41_022550F8: ; 0x022550F8 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0 + bne _02255104 + mov r0, #1 + bx lr +_02255104: + mov r0, #0 + bx lr + thumb_func_end MOD41_022550F8 + + thumb_func_start MOD41_02255108 +MOD41_02255108: ; 0x02255108 + push {r4, r5, r6, lr} + add r4, r0, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0 + beq _0225516A + bl FUN_02020BF4 + ldr r3, [r4, #0x68] + ldr r2, [r4, #0x6c] + sub r0, r0, r3 + sbc r1, r2 + bl FUN_02020C14 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0x80 + add r6, r1, #0 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x84 + ldr r2, [r0] + sub r0, r5, r1 + mov ip, r6 + mov r0, ip + sbc r0, r2 + blo _02255148 + add r0, r4, #0 + bl MOD41_02255170 + mov r0, #1 + pop {r4, r5, r6, pc} +_02255148: + ldr r3, [r4, #0x78] + ldr r0, [r4, #0x7c] + eor r3, r5 + eor r0, r6 + orr r0, r3 + beq _02255166 + add r0, r4, #0 + sub r1, r1, r5 + sbc r2, r6 + bl MOD41_02255190 + str r5, [r4, #0x78] + str r6, [r4, #0x7c] + mov r0, #1 + pop {r4, r5, r6, pc} +_02255166: + mov r0, #0 + pop {r4, r5, r6, pc} +_0225516A: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD41_02255108 + + thumb_func_start MOD41_02255170 +MOD41_02255170: ; 0x02255170 + add r1, r0, #0 + mov r2, #0 + add r1, #0x88 + str r2, [r1] + add r1, r0, #0 + add r1, #0x48 + strb r2, [r1] + add r1, r0, #0 + add r1, #0x49 + strb r2, [r1] + add r1, r0, #0 + add r1, #0x4a + strb r2, [r1] + add r0, #0x4b + strb r2, [r0] + bx lr + thumb_func_end MOD41_02255170 + + thumb_func_start MOD41_02255190 +MOD41_02255190: ; 0x02255190 + push {r3, r4, r5, r6} + add r3, r0, #0 + ldr r0, _02255240 ; =0x04000280 + mov r4, #1 + strh r4, [r0] + add r4, r0, #0 + add r4, #0x10 + str r1, [r4] + str r2, [r4, #4] + add r1, r0, #0 + mov r4, #0x3c + add r1, #0x18 + mov r2, #0 + str r4, [r1] + str r2, [r1, #4] + lsr r1, r0, #0xb +_022551B0: + ldrh r2, [r0] + tst r2, r1 + bne _022551B0 + ldr r0, _02255244 ; =0x040002A0 + ldr r6, _02255240 ; =0x04000280 + ldr r0, [r0] + lsr r1, r6, #0xb +_022551BE: + ldrh r2, [r6] + tst r2, r1 + bne _022551BE + ldr r5, _02255248 ; =0x040002A8 + mov r4, #0 + ldr r2, [r5] + add r1, r5, #0 + strh r4, [r6] + sub r1, #0x18 + str r0, [r1] + mov r0, #0xa + sub r5, #0x10 + str r0, [r5] + str r4, [r5, #4] + ldr r4, _02255240 ; =0x04000280 + lsr r0, r4, #0xb +_022551DE: + ldrh r1, [r4] + tst r1, r0 + bne _022551DE + ldr r0, _02255244 ; =0x040002A0 + ldr r1, [r0] + add r0, r3, #0 + add r0, #0x48 + strb r1, [r0] + ldr r1, _02255240 ; =0x04000280 + lsr r0, r1, #0xb +_022551F2: + ldrh r4, [r1] + tst r4, r0 + bne _022551F2 + ldr r0, _02255248 ; =0x040002A8 + add r4, r3, #0 + ldr r5, [r0] + add r4, #0x49 + strb r5, [r4] + mov r4, #0 + strh r4, [r1] + add r1, r0, #0 + sub r1, #0x18 + str r2, [r1] + mov r1, #0xa + sub r0, #0x10 + str r1, [r0] + ldr r2, _02255240 ; =0x04000280 + str r4, [r0, #4] + lsr r0, r2, #0xb +_02255218: + ldrh r1, [r2] + tst r1, r0 + bne _02255218 + ldr r0, _02255244 ; =0x040002A0 + ldr r2, _02255240 ; =0x04000280 + ldr r1, [r0] + add r0, r3, #0 + add r0, #0x4a + strb r1, [r0] + lsr r0, r2, #0xb +_0225522C: + ldrh r1, [r2] + tst r1, r0 + bne _0225522C + ldr r0, _02255248 ; =0x040002A8 + add r3, #0x4b + ldr r0, [r0] + strb r0, [r3] + pop {r3, r4, r5, r6} + bx lr + nop +_02255240: .word 0x04000280 +_02255244: .word 0x040002A0 +_02255248: .word 0x040002A8 + thumb_func_end MOD41_02255190 + + thumb_func_start MOD41_0225524C +MOD41_0225524C: ; 0x0225524C + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #8 + mov r1, #0xac + bl FUN_02016998 + add r4, r0, #0 + beq _02255288 + add r0, #8 + mov r1, #8 + bl MOD20_022536F4 + str r5, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x30] + add r0, r4, #0 + add r1, r5, #0 + bl MOD41_022552A0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _02255288 + str r4, [r6] + mov r0, #1 + pop {r4, r5, r6, pc} +_02255288: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD41_0225524C + + thumb_func_start MOD41_0225528C +MOD41_0225528C: ; 0x0225528C + push {r4, lr} + add r4, r0, #0 + beq _0225529C + bl MOD41_02255374 + add r0, r4, #0 + bl FUN_02016A18 +_0225529C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD41_0225528C + + thumb_func_start MOD41_022552A0 +MOD41_022552A0: ; 0x022552A0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + mov r3, #0 + str r3, [sp] + mov r2, #1 + add r7, r0, #0 + str r1, [sp, #0xc] + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #2 + bl FUN_02006A34 + mov r0, #0 + str r0, [sp] + mov r2, #1 + mov r3, #0xa + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x5e + lsl r3, r3, #8 + bl FUN_02006A34 + mov r0, #8 + str r0, [sp] + add r0, r7, #0 + add r0, #0x78 + mov r1, #0xc + mov r2, #0x5c + mov r3, #0x5d + bl MOD20_02253FBC + mov r0, #8 + str r0, [sp] + add r0, r7, #0 + add r0, #0x8c + mov r1, #0xc + mov r2, #3 + mov r3, #4 + bl MOD20_02253FBC + add r0, r7, #0 + str r0, [sp, #0x14] + add r0, #0x78 + str r0, [sp, #0x14] + add r0, r7, #0 + str r0, [sp, #0x10] + add r0, #0x8c + ldr r6, _02255370 ; =0x02255864 + mov r4, #0 + add r5, r7, #0 + str r0, [sp, #0x10] +_0225530E: + cmp r4, #0xd + blt _02255324 + cmp r4, #0x10 + bgt _02255324 + ldr r0, [r7, #0x30] + ldr r2, [sp, #0x10] + add r1, r6, #0 + bl MOD20_02253E74 + str r0, [r5, #0x34] + b _02255336 +_02255324: + ldr r0, [r7, #0x30] + ldr r2, [sp, #0x14] + add r1, r6, #0 + bl MOD20_02253E74 + mov r1, #0x50 + str r0, [r5, #0x34] + bl MOD20_02253FA4 +_02255336: + add r4, r4, #1 + add r6, #0x10 + add r5, r5, #4 + cmp r4, #0x11 + blt _0225530E + ldr r1, [sp, #0xc] + add r0, r7, #0 + bl MOD41_022556D4 + ldr r1, [sp, #0xc] + add r0, r7, #0 + bl MOD41_02255714 + ldr r0, [sp, #0xc] + ldr r0, [r0, #8] + cmp r0, #0 + bne _0225535C + mov r1, #1 + b _0225535E +_0225535C: + mov r1, #0 +_0225535E: + add r0, r7, #0 + bl MOD41_02255744 + mov r0, #0 + add r7, #0xa8 + str r0, [r7] + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_02255370: .word 0x02255864 + thumb_func_end MOD41_022552A0 + + thumb_func_start MOD41_02255374 +MOD41_02255374: ; 0x02255374 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_0225537C: + ldr r1, [r5, #0x34] + cmp r1, #0 + beq _02255388 + ldr r0, [r6, #0x30] + bl MOD20_02253F14 +_02255388: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0x11 + blt _0225537C + add r0, r6, #0 + add r0, #0x78 + bl MOD20_02254014 + add r6, #0x8c + add r0, r6, #0 + bl MOD20_02254014 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD41_02255374 + + thumb_func_start MOD41_022553A4 +MOD41_022553A4: ; 0x022553A4 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _022553C4 ; =0x022557F8 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_022553C4: .word 0x022557F8 + thumb_func_end MOD41_022553A4 + + thumb_func_start MOD41_022553C8 +MOD41_022553C8: ; 0x022553C8 + ldr r3, _022553D0 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_022553D0: .word MOD20_02253794 + thumb_func_end MOD41_022553C8 + + thumb_func_start MOD41_022553D4 +MOD41_022553D4: ; 0x022553D4 + ldr r3, _022553DC ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_022553DC: .word MOD20_022537B8 + thumb_func_end MOD41_022553D4 + + thumb_func_start MOD41_022553E0 +MOD41_022553E0: ; 0x022553E0 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD41_022553E0 + + thumb_func_start MOD41_022553F4 +MOD41_022553F4: ; 0x022553F4 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _022554CC ; =0x022557DC + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0xc + mov r1, #0x5b + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0xc + mov r1, #0x5a + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _022554D0 ; =0x04001000 + ldr r0, _022554D4 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + ldr r1, [r4] + ldr r0, [r1, #0xc] + cmp r0, #1 + beq _02255488 + cmp r0, #2 + beq _0225547E + cmp r0, #3 + beq _0225549A + b _022554C0 +_0225547E: + add r0, r4, #0 + mov r1, #6 + bl MOD41_022553A4 + b _022554C0 +_02255488: + ldr r0, [r4, #0x34] + mov r1, #3 + bl MOD20_02253F28 + ldr r0, [r4, #0x38] + mov r1, #1 + bl MOD20_02253F28 + b _022554C0 +_0225549A: + ldr r0, [r1, #0x10] + cmp r0, #0 + ldr r0, [r4, #0x34] + beq _022554B2 + mov r1, #2 + bl MOD20_02253F28 + ldr r0, [r4, #0x38] + mov r1, #1 + bl MOD20_02253F28 + b _022554C0 +_022554B2: + mov r1, #3 + bl MOD20_02253F28 + ldr r0, [r4, #0x38] + mov r1, #0 + bl MOD20_02253F28 +_022554C0: + add r0, r5, #0 + bl MOD41_022553E0 + add sp, #0x14 + pop {r4, r5, pc} + nop +_022554CC: .word 0x022557DC +_022554D0: .word 0x04001000 +_022554D4: .word 0xFFFFE0FF + thumb_func_end MOD41_022553F4 + + thumb_func_start MOD41_022554D8 +MOD41_022554D8: ; 0x022554D8 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _022554FA + cmp r0, #1 + beq _02255508 + pop {r3, r4, r5, pc} +_022554FA: + add r0, r4, #0 + mov r1, #1 + add r0, #0xa0 + str r1, [r0] + add r0, r5, #0 + bl MOD20_022538B0 +_02255508: + add r0, r4, #0 + mov r1, #6 + bl MOD41_022553C8 + cmp r0, #0 + beq _02255522 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD41_022553E0 +_02255522: + pop {r3, r4, r5, pc} + thumb_func_end MOD41_022554D8 + + thumb_func_start MOD41_02255524 +MOD41_02255524: ; 0x02255524 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r0, r4, #0 + mov r1, #0 + bl MOD41_02255744 + ldr r0, [r4, #0x34] + mov r1, #2 + bl MOD20_02253F28 + ldr r0, [r4, #0x38] + mov r1, #0 + bl MOD20_02253F28 + add r0, r5, #0 + bl MOD41_022553E0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD41_02255524 + + thumb_func_start MOD41_02255558 +MOD41_02255558: ; 0x02255558 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r0, r4, #0 + mov r1, #1 + bl MOD41_02255744 + ldr r0, [r4, #0x34] + mov r1, #3 + bl MOD20_02253F28 + ldr r0, [r4, #0x38] + mov r1, #1 + bl MOD20_02253F28 + add r0, r5, #0 + bl MOD41_022553E0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD41_02255558 + + thumb_func_start MOD41_0225558C +MOD41_0225558C: ; 0x0225558C + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r1, r0, #0 + add r0, r4, #0 + bl MOD41_022556D4 + add r0, r5, #0 + bl MOD41_022553E0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD41_0225558C + + thumb_func_start MOD41_022555B0 +MOD41_022555B0: ; 0x022555B0 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r1, r0, #0 + add r0, r4, #0 + bl MOD41_02255714 + add r0, r5, #0 + bl MOD41_022553E0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD41_022555B0 + + thumb_func_start MOD41_022555D4 +MOD41_022555D4: ; 0x022555D4 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _022555F6 + cmp r0, #1 + beq _0225561A + pop {r3, r4, r5, pc} +_022555F6: + ldr r0, [r4, #0x34] + mov r1, #2 + bl MOD20_02253F28 + ldr r0, [r4, #0x38] + mov r1, #0 + bl MOD20_02253F28 + add r0, r4, #0 + mov r1, #0 + add r0, #0xa4 + str r1, [r0] + add r0, r4, #0 + add r0, #0xa0 + str r1, [r0] + add r0, r5, #0 + bl MOD20_022538B0 +_0225561A: + add r0, r4, #0 + add r0, #0xa0 + ldr r0, [r0] + cmp r0, #0 + beq _0225562C + add r0, r5, #0 + bl MOD41_022553E0 + pop {r3, r4, r5, pc} +_0225562C: + add r0, r4, #0 + add r0, #0xa4 + ldr r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0xa4 + str r1, [r0] + add r0, r4, #0 + add r0, #0xa4 + ldr r0, [r0] + cmp r0, #8 + blo _0225568A + add r0, r4, #0 + add r0, #0xa8 + ldr r1, [r0] + mov r0, #1 + eor r1, r0 + add r0, r4, #0 + add r0, #0xa8 + str r1, [r0] + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + cmp r0, #0 + ldr r0, [r4, #0x34] + beq _02255670 + mov r1, #2 + bl MOD20_02253F28 + ldr r0, [r4, #0x38] + mov r1, #1 + bl MOD20_02253F28 + b _0225567E +_02255670: + mov r1, #3 + bl MOD20_02253F28 + ldr r0, [r4, #0x38] + mov r1, #0 + bl MOD20_02253F28 +_0225567E: + ldr r0, _0225568C ; =0x00000677 + bl MOD20_02252B28 + mov r0, #0 + add r4, #0xa4 + str r0, [r4] +_0225568A: + pop {r3, r4, r5, pc} + .align 2, 0 +_0225568C: .word 0x00000677 + thumb_func_end MOD41_022555D4 + + thumb_func_start MOD41_02255690 +MOD41_02255690: ; 0x02255690 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _022556B2 + cmp r0, #1 + beq _022556C0 + pop {r3, r4, r5, pc} +_022556B2: + add r0, r4, #0 + mov r1, #1 + add r0, #0xa0 + str r1, [r0] + add r0, r5, #0 + bl MOD20_022538B0 +_022556C0: + add r0, r4, #0 + mov r1, #6 + bl MOD41_022553C8 + cmp r0, #0 + beq _022556D2 + add r0, r5, #0 + bl MOD41_022553E0 +_022556D2: + pop {r3, r4, r5, pc} + thumb_func_end MOD41_02255690 + + thumb_func_start MOD41_022556D4 +MOD41_022556D4: ; 0x022556D4 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4, #4] + cmp r0, #0 + beq _022556E4 + mov r1, #6 + b _022556E6 +_022556E4: + mov r1, #5 +_022556E6: + ldr r0, [r5, #0x3c] + bl MOD20_02253F28 + ldrb r0, [r4, #5] + cmp r0, #0 + beq _022556F6 + mov r1, #8 + b _022556F8 +_022556F6: + mov r1, #7 +_022556F8: + ldr r0, [r5, #0x40] + bl MOD20_02253F28 + ldrb r0, [r4, #6] + cmp r0, #0 + beq _02255708 + mov r1, #0xa + b _0225570A +_02255708: + mov r1, #9 +_0225570A: + ldr r0, [r5, #0x44] + bl MOD20_02253F28 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD41_022556D4 + + thumb_func_start MOD41_02255714 +MOD41_02255714: ; 0x02255714 + push {r3, r4, r5, lr} + add r4, r1, #0 + mov r1, #0 + add r5, r0, #0 + ldrsb r1, [r4, r1] + ldr r0, [r5, #0x68] + bl MOD20_02253F28 + mov r1, #1 + ldrsb r1, [r4, r1] + ldr r0, [r5, #0x6c] + bl MOD20_02253F28 + mov r1, #2 + ldrsb r1, [r4, r1] + ldr r0, [r5, #0x70] + bl MOD20_02253F28 + mov r1, #3 + ldrsb r1, [r4, r1] + ldr r0, [r5, #0x74] + bl MOD20_02253F28 + pop {r3, r4, r5, pc} + thumb_func_end MOD41_02255714 + + thumb_func_start MOD41_02255744 +MOD41_02255744: ; 0x02255744 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x48] + add r4, r1, #0 + bl MOD20_02253F78 + ldr r0, [r5, #0x4c] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r5, #0x50] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r5, #0x54] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r5, #0x58] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r5, #0x5c] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r5, #0x60] + add r1, r4, #0 + bl MOD20_02253F78 + ldr r0, [r5, #0x64] + add r1, r4, #0 + bl MOD20_02253F78 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD41_02255744 + + thumb_func_start MOD41_0225578C +MOD41_0225578C: ; 0x0225578C + add r0, #0xa8 + ldr r0, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD41_0225578C + + .section .rodata + ; 0x02255794 + .incbin "baserom.nds", 0x293d54, 0x1E0 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_41.SINIT_START + .global SDK_OVERLAY.MODULE_41.SINIT_END +SDK_OVERLAY.MODULE_41.SINIT_START: + .word MOD41_02254840 + .word 0 +SDK_OVERLAY.MODULE_41.SINIT_END: diff --git a/arm9/modules/42/asm/module_42.s b/arm9/modules/42/asm/module_42.s new file mode 100644 index 00000000..6ec9b916 --- /dev/null +++ b/arm9/modules/42/asm/module_42.s @@ -0,0 +1,1161 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD42_02254840 +MOD42_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD42_02254854 + ldr r1, _02254850 ; =MOD42_02254A38 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD42_02254854 +_02254850: .word MOD42_02254A38 + thumb_func_end MOD42_02254840 + + thumb_func_start MOD42_02254854 +MOD42_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x78 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD42_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD42_02254A04 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD42_02254A04 + thumb_func_end MOD42_02254854 + + thumb_func_start MOD42_0225489C +MOD42_0225489C: ; 0x0225489C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + add r0, r1, #0 + str r1, [sp] + str r2, [sp, #4] + bl MOD20_02252C3C + str r0, [r5, #0x60] + add r0, r5, #0 + str r0, [sp, #8] + add r0, #0x11 + add r7, r5, #0 + mov r6, #0 + add r4, r5, #0 + str r0, [sp, #8] + add r7, #0x10 +_022548BE: + mov r0, #1 + strb r0, [r4, #0x13] + strb r6, [r4, #0x12] + ldr r0, [r5, #0x60] + ldr r3, [sp, #8] + add r1, r6, #0 + add r2, r7, #0 + bl FUN_0204C0A4 + ldrb r0, [r4, #0x10] + add r7, r7, #4 + add r0, #0x10 + strb r0, [r4, #0x10] + ldrb r0, [r4, #0x11] + add r0, #0x10 + strb r0, [r4, #0x11] + mov r0, #0 + strb r0, [r4, #0x13] + add r0, r5, r6 + add r0, #0x70 + strb r6, [r0] + ldr r0, [sp, #8] + add r6, r6, #1 + add r0, r0, #4 + add r4, r4, #4 + str r0, [sp, #8] + cmp r6, #6 + blt _022548BE + mov r0, #0 + str r0, [r5, #0x28] + str r0, [r5, #0x2c] + str r0, [r5, #0xc] + ldr r0, [sp] + bl MOD20_02252C40 + bl FUN_020462AC + add r7, r0, #0 + mov r4, #0 + add r6, r5, #0 +_0225490E: + add r0, r7, #0 + add r1, r4, #0 + bl FUN_0205F524 + str r0, [r6, #0x30] + add r4, r4, #1 + add r6, r6, #4 + cmp r4, #4 + blt _0225490E + ldr r0, [sp] + bl MOD20_02252C40 + bl FUN_0202A9B0 + str r0, [sp, #0xc] + mov r4, #0 + add r7, r5, #0 + add r6, r5, #0 +_02254932: + lsl r1, r4, #0x18 + ldr r0, [sp, #0xc] + lsr r1, r1, #0x18 + bl FUN_0202AAA0 + mov r1, #8 + str r0, [r7, #0x64] + bl FUN_0202AAB8 + str r0, [r6, #0x40] + add r1, r5, #0 + add r1, #0x76 + mov r0, #0 + add r4, r4, #1 + strb r0, [r1] + add r7, r7, #4 + add r6, #8 + cmp r4, #3 + blt _02254932 + ldr r0, [sp] + bl MOD20_02252C38 + add r4, r0, #0 + ldr r0, [r4, #0xc] + bl FUN_02034E30 + bl FUN_02034DCC + add r6, r0, #0 + ldr r0, [r4, #0x1c] + ldr r0, [r0] + bl FUN_02034908 + cmp r0, #0 + beq _02254984 + ldr r0, [r4, #0x1c] + ldr r0, [r0, #8] + str r0, [r5, #4] + ldr r0, [r4, #0x1c] + ldr r0, [r0, #0xc] + b _0225498A +_02254984: + ldr r0, [r6, #8] + str r0, [r5, #4] + ldr r0, [r6, #0xc] +_0225498A: + str r0, [r5, #8] + ldr r1, [r5, #4] + ldr r2, [sp, #4] + asr r0, r1, #4 + lsr r0, r0, #0x1b + add r0, r1, r0 + asr r0, r0, #5 + str r0, [r5, #4] + ldr r1, [r5, #8] + asr r0, r1, #4 + lsr r0, r0, #0x1b + add r0, r1, r0 + asr r0, r0, #5 + str r0, [r5, #8] + add r0, r5, #0 + add r0, #0x58 + add r1, r5, #4 + bl MOD42_02254CB4 + cmp r0, #0 + beq _022549C6 + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + ldr r0, [sp] + add sp, #0x10 + str r0, [r5, #0x5c] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022549C6: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD42_0225489C + + thumb_func_start MOD42_022549CC +MOD42_022549CC: ; 0x022549CC + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_022549D4: + ldrb r2, [r5, #0x10] + ldrb r3, [r5, #0x11] + ldr r0, [r6, #0x60] + sub r2, #0x10 + sub r3, #0x10 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + add r1, r4, #0 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_0204C080 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _022549D4 + ldr r0, [r6, #0x58] + bl MOD42_02254CF0 + add r0, r6, #0 + bl FUN_02016A18 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD42_022549CC + + thumb_func_start MOD42_02254A04 +MOD42_02254A04: ; 0x02254A04 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4] + add r5, r0, #0 + cmp r1, #4 + bhs _02254A30 + lsl r2, r1, #2 + ldr r1, _02254A34 ; =0x022550CC + add r0, r4, #0 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254A30 + add r0, r4, #0 + bl MOD42_022549CC + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x5c] + bl MOD20_022529A0 +_02254A30: + pop {r3, r4, r5, pc} + nop +_02254A34: .word 0x022550CC + thumb_func_end MOD42_02254A04 + + thumb_func_start MOD42_02254A38 +MOD42_02254A38: ; 0x02254A38 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD42_02254A38 + + thumb_func_start MOD42_02254A40 +MOD42_02254A40: ; 0x02254A40 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254A48 + b _02254A4A +_02254A48: + mov r1, #3 +_02254A4A: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD42_02254A40 + + thumb_func_start MOD42_02254A54 +MOD42_02254A54: ; 0x02254A54 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A64 + cmp r0, #1 + beq _02254A74 + b _02254A8E +_02254A64: + ldr r0, [r4, #0x58] + mov r1, #0 + bl MOD42_02254EEC + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A8E +_02254A74: + ldr r0, [r4, #0x58] + mov r1, #0 + bl MOD42_02254F10 + cmp r0, #0 + beq _02254A8E + ldr r0, [r4, #0x5c] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD42_02254A40 +_02254A8E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD42_02254A54 + + thumb_func_start MOD42_02254A94 +MOD42_02254A94: ; 0x02254A94 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254AAC + mov r1, #3 + bl MOD42_02254A40 + add sp, #0xc + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_02254AAC: + bl MOD42_02254C04 + str r0, [r4, #0xc] + mov r0, #0 + str r0, [r4, #0x2c] + add r0, sp, #8 + add r1, sp, #4 + bl MOD20_02252BB8 + cmp r0, #0 + beq _02254B20 + ldr r5, [sp, #8] + ldr r6, [sp, #4] + mov r3, #0 +_02254AC8: + add r0, r4, r3 + add r0, #0x70 + ldrb r7, [r0] + lsl r0, r7, #2 + add r2, r4, r0 + str r0, [sp] + ldrb r0, [r2, #0x10] + sub r1, r0, r5 + mov r0, #7 + mvn r0, r0 + cmp r1, r0 + blt _02254B1A + cmp r1, #8 + bgt _02254B1A + ldrb r0, [r2, #0x11] + sub r1, r0, r6 + mov r0, #7 + mvn r0, r0 + cmp r1, r0 + blt _02254B1A + cmp r1, #8 + bgt _02254B1A + add r0, r4, #0 + add r1, r7, #0 + bl MOD42_02254BB4 + ldr r0, [sp] + ldr r2, [sp, #8] + add r1, r4, r0 + strb r2, [r1, #0x10] + ldr r0, [sp, #4] + strb r0, [r1, #0x11] + mov r0, #1 + strb r0, [r1, #0x13] + str r7, [r4, #0x28] + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #2 + bl MOD42_02254A40 + b _02254B20 +_02254B1A: + add r3, r3, #1 + cmp r3, #6 + blt _02254AC8 +_02254B20: + mov r0, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD42_02254A94 + + thumb_func_start MOD42_02254B28 +MOD42_02254B28: ; 0x02254B28 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254B40 + mov r1, #3 + bl MOD42_02254A40 + add sp, #8 + mov r0, #0 + pop {r4, pc} +_02254B40: + bl MOD42_02254C04 + str r0, [r4, #0xc] + add r0, sp, #4 + add r1, sp, #0 + bl MOD20_02252B68 + cmp r0, #0 + beq _02254B68 + ldr r0, [r4, #0x28] + ldr r1, [sp, #4] + lsl r0, r0, #2 + add r0, r4, r0 + strb r1, [r0, #0x10] + ldr r0, [r4, #0x28] + ldr r1, [sp] + lsl r0, r0, #2 + add r0, r4, r0 + strb r1, [r0, #0x11] + b _02254B7A +_02254B68: + ldr r0, [r4, #0x28] + mov r1, #0 + lsl r0, r0, #2 + add r0, r4, r0 + strb r1, [r0, #0x13] + add r0, r4, #0 + mov r1, #1 + bl MOD42_02254A40 +_02254B7A: + mov r0, #0 + add sp, #8 + pop {r4, pc} + thumb_func_end MOD42_02254B28 + + thumb_func_start MOD42_02254B80 +MOD42_02254B80: ; 0x02254B80 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254B90 + cmp r0, #1 + beq _02254BA0 + b _02254BAE +_02254B90: + ldr r0, [r4, #0x58] + mov r1, #1 + bl MOD42_02254EEC + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254BAE +_02254BA0: + ldr r0, [r4, #0x58] + bl MOD42_02254F1C + cmp r0, #0 + beq _02254BAE + mov r0, #1 + pop {r4, pc} +_02254BAE: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD42_02254B80 + + thumb_func_start MOD42_02254BB4 +MOD42_02254BB4: ; 0x02254BB4 + push {r3, r4} + add r2, r0, #0 + add r2, #0x70 + ldrb r2, [r2] + cmp r2, r1 + beq _02254C00 + mov r4, #0 +_02254BC2: + add r2, r0, r4 + add r2, #0x70 + ldrb r2, [r2] + cmp r1, r2 + beq _02254BD2 + add r4, r4, #1 + cmp r4, #6 + blt _02254BC2 +_02254BD2: + cmp r4, #0 + beq _02254BE6 +_02254BD6: + add r2, r0, r4 + add r2, #0x6f + ldrb r3, [r2] + add r2, r0, r4 + add r2, #0x70 + strb r3, [r2] + sub r4, r4, #1 + bne _02254BD6 +_02254BE6: + add r2, r0, #0 + add r2, #0x70 + strb r1, [r2] + mov r2, #0 +_02254BEE: + add r1, r0, r2 + add r1, #0x70 + ldrb r1, [r1] + lsl r1, r1, #2 + add r1, r0, r1 + strb r2, [r1, #0x12] + add r2, r2, #1 + cmp r2, #6 + blt _02254BEE +_02254C00: + pop {r3, r4} + bx lr + thumb_func_end MOD42_02254BB4 + + thumb_func_start MOD42_02254C04 +MOD42_02254C04: ; 0x02254C04 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5, #0x5c] + mov r7, #0 + bl MOD20_02252C30 + cmp r0, #0 + beq _02254CAE + ldr r0, [r5, #0x5c] + bl MOD20_02252C38 + add r4, r0, #0 + ldr r0, [r4, #0xc] + bl FUN_02034E30 + bl FUN_02034DCC + add r6, r0, #0 + ldr r0, [r4, #0x1c] + ldr r0, [r0] + bl FUN_02034908 + cmp r0, #0 + beq _02254C3C + ldr r1, [r4, #0x1c] + ldr r0, [r1, #8] + ldr r1, [r1, #0xc] + b _02254C40 +_02254C3C: + ldr r0, [r6, #8] + ldr r1, [r6, #0xc] +_02254C40: + asr r2, r0, #4 + lsr r2, r2, #0x1b + add r2, r0, r2 + asr r0, r2, #5 + asr r2, r1, #4 + lsr r2, r2, #0x1b + add r2, r1, r2 + asr r1, r2, #5 + ldr r2, [r5, #4] + cmp r0, r2 + bne _02254C5C + ldr r2, [r5, #8] + cmp r1, r2 + beq _02254C62 +_02254C5C: + str r0, [r5, #4] + str r1, [r5, #8] + mov r7, #1 +_02254C62: + add r0, r5, #0 + add r0, #0x76 + ldrb r0, [r0] + add r1, r0, #1 + add r0, r5, #0 + add r0, #0x76 + strb r1, [r0] + add r0, r5, #0 + add r0, #0x76 + ldrb r0, [r0] + cmp r0, #5 + blo _02254CAE + mov r6, #0 + add r4, r5, #0 +_02254C7E: + ldr r0, [r5, #0x40] + cmp r0, #0 + bne _02254C94 + ldr r0, [r4, #0x64] + mov r1, #8 + bl FUN_0202AAB8 + str r0, [r5, #0x40] + cmp r0, #0 + beq _02254C94 + mov r7, #1 +_02254C94: + cmp r0, #0 + beq _02254CA4 + ldr r0, [r4, #0x64] + mov r1, #1 + bl FUN_0202AAB8 + str r0, [r5, #0x44] + mov r7, #1 +_02254CA4: + add r6, r6, #1 + add r5, #8 + add r4, r4, #4 + cmp r6, #3 + blt _02254C7E +_02254CAE: + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD42_02254C04 + + thumb_func_start MOD42_02254CB4 +MOD42_02254CB4: ; 0x02254CB4 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #8 + mov r1, #0x74 + bl FUN_02016998 + add r4, r0, #0 + beq _02254CEA + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r5, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x20] + add r0, r4, #0 + add r1, r5, #0 + bl MOD42_02254D04 + str r4, [r6] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254CEA: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD42_02254CB4 + + thumb_func_start MOD42_02254CF0 +MOD42_02254CF0: ; 0x02254CF0 + push {r4, lr} + add r4, r0, #0 + beq _02254D00 + bl MOD42_02254E7C + add r0, r4, #0 + bl FUN_02016A18 +_02254D00: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD42_02254CF0 + + thumb_func_start MOD42_02254D04 +MOD42_02254D04: ; 0x02254D04 + push {r4, r5, r6, r7, lr} + sub sp, #0x3c + mov r3, #0 + str r3, [sp] + mov r2, #1 + add r5, r0, #0 + add r7, r1, #0 + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x78 + bl FUN_02006A34 + mov r0, #8 + str r0, [sp] + add r0, r5, #0 + add r0, #0x5c + mov r1, #0xc + mov r2, #0x76 + mov r3, #0x77 + bl MOD20_02253FBC + mov r2, #0 + add r0, sp, #0x24 + strb r2, [r0, #0x12] + mov r1, #2 + strb r1, [r0, #0x13] + strb r2, [r0, #0x15] + ldr r0, [r7] + ldr r1, [r7, #4] + add r2, sp, #0x28 + add r3, sp, #0x24 + bl MOD20_02254420 + ldr r0, [sp, #0x28] + add r2, r5, #0 + lsl r0, r0, #0xc + str r0, [sp, #0x2c] + ldr r0, [sp, #0x24] + mov r1, #1 + lsl r0, r0, #0xc + str r0, [sp, #0x30] + add r0, sp, #0x24 + strb r1, [r0, #0x14] + mov r1, #0 + strh r1, [r0, #0x10] + ldr r0, [r5, #0x20] + add r1, sp, #0x2c + add r2, #0x5c + bl MOD20_02253E74 + str r0, [r5, #0x58] + mov r1, #1 + add r0, sp, #0x24 + strb r1, [r0, #0x15] + add r0, r5, #0 + str r0, [sp, #0x14] + add r0, #0x5c + mov r6, #0 + add r4, r7, #0 + str r5, [sp, #0xc] + str r0, [sp, #0x14] +_02254D82: + ldrb r0, [r4, #0xc] + ldr r2, [sp, #0x14] + lsl r0, r0, #0xc + str r0, [sp, #0x2c] + ldrb r0, [r4, #0xd] + lsl r0, r0, #0xc + str r0, [sp, #0x30] + ldrb r0, [r4, #0xe] + add r1, r0, #2 + add r0, sp, #0x24 + strb r1, [r0, #0x14] + add r1, r6, #1 + strh r1, [r0, #0x10] + ldr r0, [r5, #0x20] + add r1, sp, #0x2c + bl MOD20_02253E74 + ldr r1, [sp, #0xc] + add r6, r6, #1 + str r0, [r1, #0x24] + add r0, r1, #0 + add r0, r0, #4 + add r4, r4, #4 + str r0, [sp, #0xc] + cmp r6, #6 + blt _02254D82 + add r0, r5, #0 + str r0, [sp, #0x18] + add r0, #0x5c + mov r6, #0 + add r4, r5, #0 + str r7, [sp, #0x10] + str r0, [sp, #0x18] +_02254DC4: + add r0, r6, #0 + add r1, sp, #0x28 + add r2, sp, #0x24 + bl MOD20_02254460 + ldr r0, [sp, #0x28] + mov r1, #9 + lsl r0, r0, #0xc + str r0, [sp, #0x2c] + ldr r0, [sp, #0x24] + ldr r2, [sp, #0x18] + lsl r0, r0, #0xc + str r0, [sp, #0x30] + add r0, sp, #0x24 + strb r1, [r0, #0x14] + add r1, r6, #0 + add r1, #0xe + strh r1, [r0, #0x10] + ldr r0, [r5, #0x20] + add r1, sp, #0x2c + bl MOD20_02253E74 + str r0, [r4, #0x3c] + ldr r0, [sp, #0x10] + ldr r0, [r0, #0x2c] + cmp r0, #0 + bne _02254E02 + ldr r0, [r4, #0x3c] + mov r1, #1 + bl MOD20_02253F78 +_02254E02: + ldr r0, [sp, #0x10] + add r6, r6, #1 + add r0, r0, #4 + add r4, r4, #4 + str r0, [sp, #0x10] + cmp r6, #4 + blt _02254DC4 + add r0, r5, #0 + str r0, [sp, #0x20] + add r0, #0x5c + mov r6, #0 + add r4, r5, #0 + str r0, [sp, #0x20] +_02254E1C: + ldr r0, [r7, #0x40] + add r1, sp, #0x28 + add r2, sp, #0x24 + bl MOD20_02254488 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x28] + mov r1, #8 + lsl r0, r0, #0xc + str r0, [sp, #0x2c] + ldr r0, [sp, #0x24] + ldr r2, [sp, #0x20] + lsl r0, r0, #0xc + str r0, [sp, #0x30] + add r0, sp, #0x24 + strb r1, [r0, #0x14] + mov r1, #0x12 + strh r1, [r0, #0x10] + ldr r0, [r5, #0x20] + add r1, sp, #0x2c + bl MOD20_02253E74 + str r0, [r4, #0x4c] + ldr r0, [r7, #0x3c] + cmp r0, #0 + beq _02254E56 + ldr r0, [sp, #0x1c] + cmp r0, #0 + bne _02254E5E +_02254E56: + ldr r0, [r4, #0x4c] + mov r1, #1 + bl MOD20_02253F78 +_02254E5E: + add r6, r6, #1 + add r7, #8 + add r4, r4, #4 + cmp r6, #3 + blt _02254E1C + ldr r0, _02254E78 ; =MOD42_02254FE8 + add r1, r5, #0 + mov r2, #3 + bl FUN_0200CA44 + str r0, [r5, #0x70] + add sp, #0x3c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02254E78: .word MOD42_02254FE8 + thumb_func_end MOD42_02254D04 + + thumb_func_start MOD42_02254E7C +MOD42_02254E7C: ; 0x02254E7C + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5, #0x70] + bl FUN_0200CAB4 + mov r6, #0 + add r4, r5, #0 + add r7, r6, #0 +_02254E8C: + ldr r1, [r4, #0x24] + cmp r1, #0 + beq _02254E9A + ldr r0, [r5, #0x20] + bl MOD20_02253F14 + str r7, [r4, #0x24] +_02254E9A: + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #6 + blt _02254E8C + mov r6, #0 + add r4, r5, #0 + add r7, r6, #0 +_02254EA8: + ldr r1, [r4, #0x3c] + cmp r1, #0 + beq _02254EB6 + ldr r0, [r5, #0x20] + bl MOD20_02253F14 + str r7, [r4, #0x3c] +_02254EB6: + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #4 + blt _02254EA8 + mov r6, #0 + add r4, r5, #0 + add r7, r6, #0 +_02254EC4: + ldr r1, [r4, #0x4c] + cmp r1, #0 + beq _02254ED2 + ldr r0, [r5, #0x20] + bl MOD20_02253F14 + str r7, [r4, #0x4c] +_02254ED2: + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #3 + blt _02254EC4 + ldr r0, [r5, #0x20] + ldr r1, [r5, #0x58] + bl MOD20_02253F14 + add r5, #0x5c + add r0, r5, #0 + bl MOD20_02254014 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD42_02254E7C + + thumb_func_start MOD42_02254EEC +MOD42_02254EEC: ; 0x02254EEC + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254F0C ; =0x022550F8 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254F0C: .word 0x022550F8 + thumb_func_end MOD42_02254EEC + + thumb_func_start MOD42_02254F10 +MOD42_02254F10: ; 0x02254F10 + ldr r3, _02254F18 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254F18: .word MOD20_02253794 + thumb_func_end MOD42_02254F10 + + thumb_func_start MOD42_02254F1C +MOD42_02254F1C: ; 0x02254F1C + ldr r3, _02254F24 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254F24: .word MOD20_022537B8 + thumb_func_end MOD42_02254F1C + + thumb_func_start MOD42_02254F28 +MOD42_02254F28: ; 0x02254F28 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD42_02254F28 + + thumb_func_start MOD42_02254F3C +MOD42_02254F3C: ; 0x02254F3C + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254FC0 ; =0x022550DC + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x75 + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x73 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254FC4 ; =0x04001000 + ldr r0, _02254FC8 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD42_02254F28 + add sp, #0x14 + pop {r4, r5, pc} + nop +_02254FC0: .word 0x022550DC +_02254FC4: .word 0x04001000 +_02254FC8: .word 0xFFFFE0FF + thumb_func_end MOD42_02254F3C + + thumb_func_start MOD42_02254FCC +MOD42_02254FCC: ; 0x02254FCC + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + bl MOD42_02254F28 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD42_02254FCC + + thumb_func_start MOD42_02254FE8 +MOD42_02254FE8: ; 0x02254FE8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r1, #0 + ldr r4, [r5] + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _0225505E + ldr r7, [r4, #0x24] + lsl r6, r7, #2 + add r2, r4, r6 + ldrb r0, [r2, #0xf] + cmp r0, #0 + beq _02255028 + add r0, r5, #0 + str r0, [sp, #4] + add r0, #0x24 + str r0, [sp, #4] + ldr r1, [sp, #4] + add r0, r0, r6 + str r0, [sp] + ldr r0, [r5, #0x20] + ldr r1, [r1, r6] + mov r2, #0 + bl MOD20_02253F80 + ldr r0, [sp, #4] + add r7, #8 + ldr r0, [r0, r6] + add r1, r7, #0 + bl MOD20_02253F28 + b _0225504C +_02255028: + add r0, r5, #0 + str r0, [sp, #8] + add r0, #0x24 + str r0, [sp, #8] + ldr r1, [sp, #8] + ldrb r2, [r2, #0xe] + add r0, r0, r6 + str r0, [sp] + ldr r0, [r5, #0x20] + ldr r1, [r1, r6] + add r2, r2, #2 + bl MOD20_02253F80 + ldr r0, [sp, #8] + add r1, r7, #1 + ldr r0, [r0, r6] + bl MOD20_02253F28 +_0225504C: + add r2, r4, r6 + ldrb r1, [r2, #0xc] + ldr r0, [sp] + ldrb r2, [r2, #0xd] + ldr r0, [r0] + lsl r1, r1, #0xc + lsl r2, r2, #0xc + bl MOD20_02253F64 +_0225505E: + ldr r0, [r4, #8] + cmp r0, #0 + beq _022550C8 + ldr r0, [r4] + ldr r1, [r4, #4] + add r2, sp, #0x10 + add r3, sp, #0xc + bl MOD20_02254420 + ldr r1, [sp, #0x10] + ldr r2, [sp, #0xc] + ldr r0, [r5, #0x58] + lsl r1, r1, #0xc + lsl r2, r2, #0xc + bl MOD20_02253F64 + mov r6, #0 + add r7, sp, #0x10 +_02255082: + ldr r0, [r4, #0x3c] + cmp r0, #0 + beq _022550B6 + ldr r0, [r4, #0x40] + add r1, r7, #0 + add r2, sp, #0xc + bl MOD20_02254488 + cmp r0, #0 + ldr r0, [r5, #0x4c] + beq _022550AE + ldr r1, [sp, #0x10] + ldr r2, [sp, #0xc] + lsl r1, r1, #0xc + lsl r2, r2, #0xc + bl MOD20_02253F64 + ldr r0, [r5, #0x4c] + mov r1, #0 + bl MOD20_02253F78 + b _022550BE +_022550AE: + mov r1, #1 + bl MOD20_02253F78 + b _022550BE +_022550B6: + ldr r0, [r5, #0x4c] + mov r1, #1 + bl MOD20_02253F78 +_022550BE: + add r6, r6, #1 + add r4, #8 + add r5, r5, #4 + cmp r6, #3 + blo _02255082 +_022550C8: + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD42_02254FE8 + + .section .rodata + ; 0x022550CC + .incbin "baserom.nds", 0x29488c, 0x50 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_42.SINIT_START + .global SDK_OVERLAY.MODULE_42.SINIT_END +SDK_OVERLAY.MODULE_42.SINIT_START: + .word MOD42_02254840 + .word 0 +SDK_OVERLAY.MODULE_42.SINIT_END: diff --git a/arm9/modules/43/asm/module_43.s b/arm9/modules/43/asm/module_43.s new file mode 100644 index 00000000..78bb538f --- /dev/null +++ b/arm9/modules/43/asm/module_43.s @@ -0,0 +1,1140 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD43_02254840 +MOD43_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD43_02254854 + ldr r1, _02254850 ; =MOD43_02254970 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD43_02254854 +_02254850: .word MOD43_02254970 + thumb_func_end MOD43_02254840 + + thumb_func_start MOD43_02254854 +MOD43_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0xb0 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD43_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD43_0225493C + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD43_0225493C + thumb_func_end MOD43_02254854 + + thumb_func_start MOD43_0225489C +MOD43_0225489C: ; 0x0225489C + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + add r1, r5, #0 + add r1, #0xac + str r7, [r1] + str r2, [sp] + bl MOD43_02254A88 + str r0, [r5, #0xc] + add r0, r5, #0 + add r0, #0xac + ldr r0, [r0] + bl MOD20_02252C38 + add r4, r0, #0 + ldr r0, [r4, #0xc] + bl FUN_02034E30 + bl FUN_02034DCC + add r6, r0, #0 + ldr r0, [r4, #0x1c] + ldr r0, [r0] + bl FUN_02034908 + cmp r0, #0 + beq _022548E0 + ldr r0, [r4, #0x1c] + ldr r0, [r0, #8] + str r0, [r5, #4] + ldr r0, [r4, #0x1c] + ldr r0, [r0, #0xc] + b _022548E6 +_022548E0: + ldr r0, [r6, #8] + str r0, [r5, #4] + ldr r0, [r6, #0xc] +_022548E6: + str r0, [r5, #8] + ldr r1, [r5, #4] + asr r0, r1, #4 + lsr r0, r0, #0x1b + add r0, r1, r0 + asr r0, r0, #5 + str r0, [r5, #4] + ldr r1, [r5, #8] + asr r0, r1, #4 + lsr r0, r0, #0x1b + add r0, r1, r0 + asr r0, r0, #5 + str r0, [r5, #8] + add r0, r5, #0 + add r1, r7, #0 + bl MOD43_02254B60 + add r0, r5, #0 + ldr r2, [sp] + add r0, #0xa8 + add r1, r5, #4 + bl MOD43_02254B8C + cmp r0, #0 + beq _02254924 + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02254924: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD43_0225489C + + thumb_func_start MOD43_02254928 +MOD43_02254928: ; 0x02254928 + push {r4, lr} + add r4, r0, #0 + add r0, #0xa8 + ldr r0, [r0] + bl MOD43_02254BCC + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD43_02254928 + + thumb_func_start MOD43_0225493C +MOD43_0225493C: ; 0x0225493C + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4] + add r5, r0, #0 + cmp r1, #3 + bhs _0225496A + lsl r2, r1, #2 + ldr r1, _0225496C ; =0x022550A8 + add r0, r4, #0 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _0225496A + add r0, r4, #0 + bl MOD43_02254928 + add r0, r5, #0 + bl FUN_0200CAB4 + add r4, #0xac + ldr r0, [r4] + bl MOD20_022529A0 +_0225496A: + pop {r3, r4, r5, pc} + .align 2, 0 +_0225496C: .word 0x022550A8 + thumb_func_end MOD43_0225493C + + thumb_func_start MOD43_02254970 +MOD43_02254970: ; 0x02254970 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD43_02254970 + + thumb_func_start MOD43_02254978 +MOD43_02254978: ; 0x02254978 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254980 + b _02254982 +_02254980: + mov r1, #2 +_02254982: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD43_02254978 + + thumb_func_start MOD43_0225498C +MOD43_0225498C: ; 0x0225498C + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _0225499C + cmp r0, #1 + beq _022549B0 + b _022549D2 +_0225499C: + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + mov r1, #0 + bl MOD43_02254BD8 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549D2 +_022549B0: + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + mov r1, #0 + bl MOD43_02254BFC + cmp r0, #0 + beq _022549D2 + add r0, r4, #0 + add r0, #0xac + ldr r0, [r0] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD43_02254978 +_022549D2: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD43_0225498C + + thumb_func_start MOD43_022549D8 +MOD43_022549D8: ; 0x022549D8 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _022549F0 + mov r1, #2 + bl MOD43_02254978 + add sp, #8 + mov r0, #0 + pop {r4, pc} +_022549F0: + bl MOD43_02254AF8 + add r1, r4, #0 + add r1, #0x94 + str r0, [r1] + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + mov r1, #2 + bl MOD43_02254BFC + cmp r0, #0 + beq _02254A48 + add r0, sp, #4 + add r1, sp, #0 + bl MOD20_02252BB8 + cmp r0, #0 + beq _02254A48 + ldr r0, [sp, #4] + sub r0, #0x10 + cmp r0, #0xc0 + bhs _02254A22 + mov r1, #1 + b _02254A24 +_02254A22: + mov r1, #0 +_02254A24: + ldr r0, [sp] + sub r0, #0x10 + cmp r0, #0xc0 + bhs _02254A30 + mov r0, #1 + b _02254A32 +_02254A30: + mov r0, #0 +_02254A32: + tst r0, r1 + beq _02254A48 + add r0, r4, #0 + bl MOD43_02254A88 + str r0, [r4, #0xc] + add r4, #0xa8 + ldr r0, [r4] + mov r1, #2 + bl MOD43_02254BD8 +_02254A48: + mov r0, #0 + add sp, #8 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD43_022549D8 + + thumb_func_start MOD43_02254A50 +MOD43_02254A50: ; 0x02254A50 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A60 + cmp r0, #1 + beq _02254A74 + b _02254A84 +_02254A60: + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + mov r1, #1 + bl MOD43_02254BD8 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A84 +_02254A74: + add r4, #0xa8 + ldr r0, [r4] + bl MOD43_02254C08 + cmp r0, #0 + beq _02254A84 + mov r0, #1 + pop {r4, pc} +_02254A84: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD43_02254A50 + + thumb_func_start MOD43_02254A88 +MOD43_02254A88: ; 0x02254A88 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r0, #0xac + ldr r0, [r0] + bl MOD20_02252C40 + bl FUN_02024ECC + mov r4, #0 + add r6, r0, #0 + add r7, r4, #0 +_02254A9E: + add r0, r6, #0 + add r1, r4, #0 + bl FUN_020252B8 + cmp r0, #1 + bne _02254AEA + add r0, r6, #0 + add r1, r4, #0 + bl FUN_02025238 + cmp r0, #5 + bne _02254AEA + ldr r1, _02254AF4 ; =0x022550B4 + lsl r0, r4, #1 + ldr r2, _02254AF4 ; =0x022550B4 + add r1, r1, r0 + ldrb r0, [r2, r0] + strb r0, [r5, #0x10] + ldrb r0, [r1, #1] + strb r0, [r5, #0x11] + b _02254ACC +_02254AC8: + add r1, r1, #2 + add r4, r4, #1 +_02254ACC: + add r0, r4, #1 + cmp r0, #0x76 + bhs _02254AE2 + ldrb r2, [r5, #0x10] + ldrb r0, [r1, #2] + cmp r2, r0 + bne _02254AE2 + ldrb r2, [r5, #0x11] + ldrb r0, [r1, #3] + cmp r2, r0 + beq _02254AC8 +_02254AE2: + add r7, r7, #1 + add r5, r5, #2 + cmp r7, #0x40 + bge _02254AF0 +_02254AEA: + add r4, r4, #1 + cmp r4, #0x76 + blo _02254A9E +_02254AF0: + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254AF4: .word 0x022550B4 + thumb_func_end MOD43_02254A88 + + thumb_func_start MOD43_02254AF8 +MOD43_02254AF8: ; 0x02254AF8 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r0, #0xac + ldr r0, [r0] + mov r6, #0 + bl MOD20_02252C30 + cmp r0, #0 + beq _02254B5C + add r0, r5, #0 + add r0, #0xac + ldr r0, [r0] + bl MOD20_02252C38 + add r4, r0, #0 + ldr r0, [r4, #0xc] + bl FUN_02034E30 + bl FUN_02034DCC + add r7, r0, #0 + ldr r0, [r4, #0x1c] + ldr r0, [r0] + bl FUN_02034908 + cmp r0, #0 + beq _02254B36 + ldr r1, [r4, #0x1c] + ldr r0, [r1, #8] + ldr r1, [r1, #0xc] + b _02254B3A +_02254B36: + ldr r0, [r7, #8] + ldr r1, [r7, #0xc] +_02254B3A: + asr r2, r0, #4 + lsr r2, r2, #0x1b + add r2, r0, r2 + asr r0, r2, #5 + asr r2, r1, #4 + lsr r2, r2, #0x1b + add r2, r1, r2 + asr r1, r2, #5 + ldr r2, [r5, #4] + cmp r0, r2 + bne _02254B56 + ldr r2, [r5, #8] + cmp r1, r2 + beq _02254B5C +_02254B56: + str r0, [r5, #4] + str r1, [r5, #8] + mov r6, #1 +_02254B5C: + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD43_02254AF8 + + thumb_func_start MOD43_02254B60 +MOD43_02254B60: ; 0x02254B60 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, r1, #0 + bl MOD20_02252C40 + bl FUN_020462AC + add r6, r0, #0 + mov r4, #0 +_02254B72: + add r0, r6, #0 + add r1, r4, #0 + bl FUN_0205F524 + add r1, r5, #0 + add r1, #0x98 + add r4, r4, #1 + add r5, r5, #4 + str r0, [r1] + cmp r4, #4 + blt _02254B72 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD43_02254B60 + + thumb_func_start MOD43_02254B8C +MOD43_02254B8C: ; 0x02254B8C + push {r4, r5, r6, lr} + add r5, r1, #0 + mov r1, #0x16 + add r6, r0, #0 + mov r0, #8 + lsl r1, r1, #4 + bl FUN_02016998 + add r4, r0, #0 + beq _02254BC6 + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r5, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x20] + add r5, #0x8c + mov r0, #0x15 + ldr r1, [r5] + lsl r0, r0, #4 + str r1, [r4, r0] + str r4, [r6] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254BC6: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD43_02254B8C + + thumb_func_start MOD43_02254BCC +MOD43_02254BCC: ; 0x02254BCC + push {r3, lr} + cmp r0, #0 + beq _02254BD6 + bl FUN_02016A18 +_02254BD6: + pop {r3, pc} + thumb_func_end MOD43_02254BCC + + thumb_func_start MOD43_02254BD8 +MOD43_02254BD8: ; 0x02254BD8 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254BF8 ; =0x022551BC + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254BF8: .word 0x022551BC + thumb_func_end MOD43_02254BD8 + + thumb_func_start MOD43_02254BFC +MOD43_02254BFC: ; 0x02254BFC + ldr r3, _02254C04 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254C04: .word MOD20_02253794 + thumb_func_end MOD43_02254BFC + + thumb_func_start MOD43_02254C08 +MOD43_02254C08: ; 0x02254C08 + ldr r3, _02254C10 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254C10: .word MOD20_022537B8 + thumb_func_end MOD43_02254C08 + + thumb_func_start MOD43_02254C14 +MOD43_02254C14: ; 0x02254C14 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD43_02254C14 + + thumb_func_start MOD43_02254C28 +MOD43_02254C28: ; 0x02254C28 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r6, r1, #0 + add r0, r6, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, _02254CC0 ; =0x0400104C + mov r3, #0 + strb r3, [r0] + strb r3, [r0, #1] + ldr r0, [r5, #4] + ldr r2, _02254CC4 ; =0x022551A0 + mov r1, #6 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x75 + mov r3, #6 + bl FUN_0200687C + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x74 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + add r0, r5, #0 + lsr r1, r4, #5 + bl MOD43_02254CD0 + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254CC8 ; =0x04001000 + ldr r0, _02254CCC ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r5, #0 + bl MOD43_02254E78 + add r0, r6, #0 + bl MOD43_02254C14 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02254CC0: .word 0x0400104C +_02254CC4: .word 0x022551A0 +_02254CC8: .word 0x04001000 +_02254CCC: .word 0xFFFFE0FF + thumb_func_end MOD43_02254C28 + + thumb_func_start MOD43_02254CD0 +MOD43_02254CD0: ; 0x02254CD0 + push {r3, r4, r5, r6, lr} + sub sp, #0x24 + add r4, r1, #0 + mov r1, #0x66 + add r5, r0, #0 + mov r0, #0x1a + lsl r1, r1, #2 + mov r2, #0 + mov r3, #8 + bl FUN_0200A738 + add r6, r0, #0 + beq _02254D44 + mov r0, #0x14 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r5, #4] + add r1, sp, #0x14 + mov r2, #6 + mov r3, #0x12 + bl FUN_02019064 + add r0, sp, #0x14 + mov r1, #4 + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02254D48 ; =0x00010104 + add r2, r6, #0 + str r0, [sp, #8] + add r0, sp, #0x14 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, sp, #0x14 + bl FUN_02019270 + add r0, sp, #0x14 + bl FUN_02019548 + add r0, sp, #0x14 + bl FUN_02019178 + add r0, r6, #0 + bl FUN_02021A20 +_02254D44: + add sp, #0x24 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02254D48: .word 0x00010104 + thumb_func_end MOD43_02254CD0 + + thumb_func_start MOD43_02254D4C +MOD43_02254D4C: ; 0x02254D4C + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _02254D68 + cmp r0, #1 + beq _02254D78 + pop {r3, r4, r5, pc} +_02254D68: + mov r0, #0x57 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_02254D78: + add r0, r4, #0 + mov r1, #2 + bl MOD43_02254BFC + cmp r0, #0 + beq _02254DA0 + add r0, r4, #0 + bl MOD43_02255000 + ldr r0, _02254DA4 ; =0x0400104C + mov r1, #0 + strb r1, [r0] + strb r1, [r0, #1] + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD43_02254C14 +_02254DA0: + pop {r3, r4, r5, pc} + nop +_02254DA4: .word 0x0400104C + thumb_func_end MOD43_02254D4C + + thumb_func_start MOD43_02254DA8 +MOD43_02254DA8: ; 0x02254DA8 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r0, r5, #0 + bl MOD20_022538AC + cmp r0, #0 + beq _02254DCE + cmp r0, #1 + beq _02254E02 + cmp r0, #2 + beq _02254E10 + pop {r3, r4, r5, pc} +_02254DCE: + mov r1, #0x55 + mov r0, #6 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r2, #0 + add r0, r1, #4 + str r2, [r4, r0] + add r0, r1, #0 + add r0, #8 + str r2, [r4, r0] + ldr r2, [r4, r1] + lsl r0, r2, #4 + orr r0, r2 + ldr r2, _02254E70 ; =0x0400104C + strb r0, [r2] + ldr r1, [r4, r1] + lsl r0, r1, #4 + orr r0, r1 + strb r0, [r2, #1] + ldr r0, _02254E74 ; =0x00000678 + bl MOD20_02252B28 + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_02254E02: + add r0, r4, #0 + bl MOD43_02254F9C + add r0, r5, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, pc} +_02254E10: + mov r0, #0x57 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #0 + beq _02254E22 + add r0, r5, #0 + bl MOD43_02254C14 + pop {r3, r4, r5, pc} +_02254E22: + sub r1, r0, #4 + ldr r1, [r4, r1] + add r2, r1, #1 + sub r1, r0, #4 + str r2, [r4, r1] + ldr r1, [r4, r1] + cmp r1, #3 + blt _02254E6E + mov r2, #0 + sub r1, r0, #4 + str r2, [r4, r1] + add r1, r0, #0 + sub r1, #8 + ldr r1, [r4, r1] + sub r2, r1, #1 + add r1, r0, #0 + sub r1, #8 + str r2, [r4, r1] + add r1, r0, #0 + sub r1, #8 + ldr r2, [r4, r1] + lsl r1, r2, #4 + orr r2, r1 + ldr r1, _02254E70 ; =0x0400104C + strb r2, [r1] + add r2, r0, #0 + sub r2, #8 + ldr r3, [r4, r2] + sub r0, #8 + lsl r2, r3, #4 + orr r2, r3 + strb r2, [r1, #1] + ldr r0, [r4, r0] + cmp r0, #0 + bne _02254E6E + add r0, r5, #0 + bl MOD43_02254C14 +_02254E6E: + pop {r3, r4, r5, pc} + .align 2, 0 +_02254E70: .word 0x0400104C +_02254E74: .word 0x00000678 + thumb_func_end MOD43_02254DA8 + + thumb_func_start MOD43_02254E78 +MOD43_02254E78: ; 0x02254E78 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r6, r0, #0 + ldr r7, [r6] + mov r3, #0 + str r3, [sp] + mov r2, #1 + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x78 + bl FUN_02006A34 + mov r0, #8 + str r0, [sp] + mov r0, #0x4e + lsl r0, r0, #2 + add r0, r6, r0 + mov r1, #0xc + mov r2, #0x76 + mov r3, #0x77 + bl MOD20_02253FBC + mov r2, #0 + add r0, sp, #0xc + strb r2, [r0, #0x12] + mov r1, #2 + strb r1, [r0, #0x13] + strb r2, [r0, #0x15] + ldr r0, [r7] + ldr r1, [r7, #4] + add r2, sp, #0x10 + add r3, sp, #0xc + bl MOD20_02254420 + ldr r0, [sp, #0x10] + mov r2, #0x4e + lsl r0, r0, #0xc + str r0, [sp, #0x14] + ldr r0, [sp, #0xc] + lsl r2, r2, #2 + lsl r0, r0, #0xc + str r0, [sp, #0x18] + mov r1, #0 + add r0, sp, #0xc + strb r1, [r0, #0x14] + strh r1, [r0, #0x10] + ldr r0, [r6, #0x20] + add r1, sp, #0x14 + add r2, r6, r2 + bl MOD20_02253E74 + mov r1, #1 + str r0, [r6, #0x24] + bl MOD20_02253FAC + mov r1, #1 + add r0, sp, #0xc + strb r1, [r0, #0x14] + mov r1, #7 + strh r1, [r0, #0x10] + mov r5, #0 + str r5, [sp, #0x14] + str r5, [sp, #0x18] + add r4, r6, #0 +_02254EFC: + mov r2, #0x4e + lsl r2, r2, #2 + ldr r0, [r6, #0x20] + add r1, sp, #0x14 + add r2, r6, r2 + bl MOD20_02253E74 + mov r1, #1 + str r0, [r4, #0x28] + bl MOD20_02253FAC + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #0x40 + blt _02254EFC + add r0, r6, #0 + bl MOD43_02254F9C + mov r5, #0 + add r4, r6, #0 +_02254F24: + add r0, r5, #0 + add r1, sp, #0x10 + add r2, sp, #0xc + bl MOD20_02254460 + ldr r0, [sp, #0x10] + mov r1, #2 + lsl r0, r0, #0xc + str r0, [sp, #0x14] + ldr r0, [sp, #0xc] + mov r2, #0x4e + lsl r0, r0, #0xc + str r0, [sp, #0x18] + add r0, sp, #0xc + strb r1, [r0, #0x14] + add r1, r5, #0 + add r1, #0xe + strh r1, [r0, #0x10] + lsl r2, r2, #2 + ldr r0, [r6, #0x20] + add r1, sp, #0x14 + add r2, r6, r2 + bl MOD20_02253E74 + mov r1, #0x4a + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #1 + bl MOD20_02253FAC + add r0, r7, #0 + add r0, #0x94 + ldr r0, [r0] + cmp r0, #0 + bne _02254F7A + mov r0, #0x4a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl MOD20_02253F78 +_02254F7A: + add r5, r5, #1 + add r4, r4, #4 + add r7, r7, #4 + cmp r5, #4 + blt _02254F24 + ldr r0, _02254F98 ; =MOD43_02255078 + add r1, r6, #0 + mov r2, #3 + bl FUN_0200CA44 + mov r1, #0x53 + lsl r1, r1, #2 + str r0, [r6, r1] + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02254F98: .word MOD43_02255078 + thumb_func_end MOD43_02254E78 + + thumb_func_start MOD43_02254F9C +MOD43_02254F9C: ; 0x02254F9C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r0, #0 + ldr r1, [r7] + mov r4, #0 + ldr r0, [r1, #8] + cmp r0, #0 + ble _02254FE2 + add r6, r4, #0 + add r5, r7, #0 +_02254FB0: + add r1, r1, r6 + ldrb r0, [r1, #0xc] + ldrb r1, [r1, #0xd] + add r2, sp, #4 + add r3, sp, #0 + bl MOD20_02254420 + ldr r1, [sp, #4] + ldr r2, [sp] + ldr r0, [r5, #0x28] + lsl r1, r1, #0xc + lsl r2, r2, #0xc + bl MOD20_02253F64 + ldr r0, [r5, #0x28] + mov r1, #0 + bl MOD20_02253F78 + ldr r1, [r7] + add r4, r4, #1 + ldr r0, [r1, #8] + add r6, r6, #2 + add r5, r5, #4 + cmp r4, r0 + blt _02254FB0 +_02254FE2: + cmp r4, #0x40 + bge _02254FFC + lsl r0, r4, #2 + add r5, r7, r0 + mov r6, #1 +_02254FEC: + ldr r0, [r5, #0x28] + add r1, r6, #0 + bl MOD20_02253F78 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0x40 + blt _02254FEC +_02254FFC: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD43_02254F9C + + thumb_func_start MOD43_02255000 +MOD43_02255000: ; 0x02255000 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r0, #0x53 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0 + beq _0225501A + bl FUN_0200CAB4 + mov r0, #0x53 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] +_0225501A: + mov r6, #0 + add r4, r5, #0 + add r7, r6, #0 +_02255020: + mov r0, #0x4a + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #0 + beq _02255036 + ldr r0, [r5, #0x20] + bl MOD20_02253F14 + mov r0, #0x4a + lsl r0, r0, #2 + str r7, [r4, r0] +_02255036: + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #4 + blt _02255020 + mov r6, #0 + add r4, r5, #0 + add r7, r6, #0 +_02255044: + ldr r1, [r4, #0x28] + cmp r1, #0 + beq _02255052 + ldr r0, [r5, #0x20] + bl MOD20_02253F14 + str r7, [r4, #0x28] +_02255052: + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #0x40 + blt _02255044 + ldr r1, [r5, #0x24] + cmp r1, #0 + beq _0225506A + ldr r0, [r5, #0x20] + bl MOD20_02253F14 + mov r0, #0 + str r0, [r5, #0x24] +_0225506A: + mov r0, #0x4e + lsl r0, r0, #2 + add r0, r5, r0 + bl MOD20_02254014 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD43_02255000 + + thumb_func_start MOD43_02255078 +MOD43_02255078: ; 0x02255078 + push {r4, lr} + sub sp, #8 + add r4, r1, #0 + ldr r1, [r4] + add r0, r1, #0 + add r0, #0x90 + ldr r0, [r0] + cmp r0, #0 + beq _022550A2 + ldmia r1!, {r0, r1} + add r2, sp, #4 + add r3, sp, #0 + bl MOD20_02254420 + ldr r1, [sp, #4] + ldr r2, [sp] + ldr r0, [r4, #0x24] + lsl r1, r1, #0xc + lsl r2, r2, #0xc + bl MOD20_02253F64 +_022550A2: + add sp, #8 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD43_02255078 + + .section .rodata + ; 0x022550A8 + .incbin "baserom.nds", 0x295268, 0x144 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_43.SINIT_START + .global SDK_OVERLAY.MODULE_43.SINIT_END +SDK_OVERLAY.MODULE_43.SINIT_START: + .word MOD43_02254840 + .word 0 +SDK_OVERLAY.MODULE_43.SINIT_END: diff --git a/arm9/modules/44/asm/module_44.s b/arm9/modules/44/asm/module_44.s new file mode 100644 index 00000000..a9743a1e --- /dev/null +++ b/arm9/modules/44/asm/module_44.s @@ -0,0 +1,580 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD44_02254840 +MOD44_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD44_02254854 + ldr r1, _02254850 ; =MOD44_02254920 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD44_02254854 +_02254850: .word MOD44_02254920 + thumb_func_end MOD44_02254840 + + thumb_func_start MOD44_02254854 +MOD44_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x14 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD44_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD44_022548EC + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD44_022548EC + thumb_func_end MOD44_02254854 + + thumb_func_start MOD44_0225489C +MOD44_0225489C: ; 0x0225489C + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r6, r2, #0 + bl MOD20_02252C3C + str r0, [r5, #0x10] + bl FUN_0204BF44 + str r0, [r5, #4] + strb r0, [r5, #3] + add r0, r5, #0 + add r0, #8 + add r1, r5, #4 + add r2, r6, #0 + bl MOD44_02254A54 + cmp r0, #0 + beq _022548D2 + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + str r4, [r5, #0xc] + mov r0, #1 + pop {r4, r5, r6, pc} +_022548D2: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD44_0225489C + + thumb_func_start MOD44_022548D8 +MOD44_022548D8: ; 0x022548D8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + bl MOD44_02254B00 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD44_022548D8 + + thumb_func_start MOD44_022548EC +MOD44_022548EC: ; 0x022548EC + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4] + add r5, r0, #0 + cmp r1, #3 + bhs _02254918 + lsl r2, r1, #2 + ldr r1, _0225491C ; =0x02254C54 + add r0, r4, #0 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254918 + add r0, r4, #0 + bl MOD44_022548D8 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0xc] + bl MOD20_022529A0 +_02254918: + pop {r3, r4, r5, pc} + nop +_0225491C: .word 0x02254C54 + thumb_func_end MOD44_022548EC + + thumb_func_start MOD44_02254920 +MOD44_02254920: ; 0x02254920 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD44_02254920 + + thumb_func_start MOD44_02254928 +MOD44_02254928: ; 0x02254928 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254930 + b _02254932 +_02254930: + mov r1, #2 +_02254932: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD44_02254928 + + thumb_func_start MOD44_0225493C +MOD44_0225493C: ; 0x0225493C + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _0225494C + cmp r0, #1 + beq _0225495C + b _02254976 +_0225494C: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD44_02254B14 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254976 +_0225495C: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD44_02254B38 + cmp r0, #0 + beq _02254976 + ldr r0, [r4, #0xc] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD44_02254928 +_02254976: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD44_0225493C + + thumb_func_start MOD44_0225497C +MOD44_0225497C: ; 0x0225497C + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254990 + mov r1, #2 + bl MOD44_02254928 + mov r0, #0 + pop {r4, pc} +_02254990: + ldrb r1, [r4, #1] + cmp r1, #0 + beq _0225499C + cmp r1, #1 + beq _022549B4 + b _022549C4 +_0225499C: + bl MOD44_022549C8 + cmp r0, #0 + beq _022549C4 + ldr r0, [r4, #8] + mov r1, #2 + bl MOD44_02254B14 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549C4 +_022549B4: + ldr r0, [r4, #8] + mov r1, #2 + bl MOD44_02254B38 + cmp r0, #0 + beq _022549C4 + mov r0, #0 + strb r0, [r4, #1] +_022549C4: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD44_0225497C + + thumb_func_start MOD44_022549C8 +MOD44_022549C8: ; 0x022549C8 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, [r4, #0xc] + bl MOD20_02252C08 + cmp r0, #0 + bne _02254A18 + add r0, sp, #4 + add r1, sp, #0 + bl FUN_02020AB0 + cmp r0, #0 + beq _02254A18 + ldr r0, [sp] + cmp r0, #0x88 + blo _02254A18 + cmp r0, #0xa0 + bhs _02254A18 + ldr r0, [sp, #4] + cmp r0, #0x30 + blo _02254A18 + cmp r0, #0xb8 + bhs _02254A18 + sub r0, #0x30 + lsr r1, r0, #4 + cmp r1, #8 + blo _02254A02 + mov r1, #7 +_02254A02: + ldrb r0, [r4, #3] + cmp r1, r0 + beq _02254A18 + str r1, [r4, #4] + strb r1, [r4, #3] + ldr r0, [r4, #0x10] + bl FUN_0204BF58 + add sp, #8 + mov r0, #1 + pop {r4, pc} +_02254A18: + mov r0, #0 + add sp, #8 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD44_022549C8 + + thumb_func_start MOD44_02254A20 +MOD44_02254A20: ; 0x02254A20 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A30 + cmp r0, #1 + beq _02254A40 + b _02254A4E +_02254A30: + ldr r0, [r4, #8] + mov r1, #1 + bl MOD44_02254B14 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A4E +_02254A40: + ldr r0, [r4, #8] + bl MOD44_02254B44 + cmp r0, #0 + beq _02254A4E + mov r0, #1 + pop {r4, pc} +_02254A4E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD44_02254A20 + + thumb_func_start MOD44_02254A54 +MOD44_02254A54: ; 0x02254A54 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #8 + mov r1, #0x3c + bl FUN_02016998 + add r4, r0, #0 + beq _02254A8A + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r5, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x20] + add r0, r4, #0 + add r1, r5, #0 + bl MOD44_02254A90 + str r4, [r6] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254A8A: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD44_02254A54 + + thumb_func_start MOD44_02254A90 +MOD44_02254A90: ; 0x02254A90 + push {r4, r5, lr} + sub sp, #0xc + mov r3, #0 + str r3, [sp] + mov r2, #1 + add r5, r0, #0 + add r4, r1, #0 + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x45 + bl FUN_02006A34 + mov r0, #8 + str r0, [sp] + add r0, r5, #0 + add r0, #0x28 + mov r1, #0xc + mov r2, #0x43 + mov r3, #0x44 + bl MOD20_02253FBC + add r2, r5, #0 + ldr r0, [r5, #0x20] + ldr r1, _02254AE0 ; =0x02254C60 + add r2, #0x28 + bl MOD20_02253E74 + str r0, [r5, #0x24] + ldr r1, [r4] + mov r2, #0x25 + lsl r1, r1, #4 + add r1, #0x38 + lsl r1, r1, #0xc + lsl r2, r2, #0xe + bl MOD20_02253F64 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_02254AE0: .word 0x02254C60 + thumb_func_end MOD44_02254A90 + + thumb_func_start MOD44_02254AE4 +MOD44_02254AE4: ; 0x02254AE4 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x24] + cmp r1, #0 + beq _02254AF4 + ldr r0, [r4, #0x20] + bl MOD20_02253F14 +_02254AF4: + add r4, #0x28 + add r0, r4, #0 + bl MOD20_02254014 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD44_02254AE4 + + thumb_func_start MOD44_02254B00 +MOD44_02254B00: ; 0x02254B00 + push {r4, lr} + add r4, r0, #0 + beq _02254B10 + bl MOD44_02254AE4 + add r0, r4, #0 + bl FUN_02016A18 +_02254B10: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD44_02254B00 + + thumb_func_start MOD44_02254B14 +MOD44_02254B14: ; 0x02254B14 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254B34 ; =0x02254C8C + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254B34: .word 0x02254C8C + thumb_func_end MOD44_02254B14 + + thumb_func_start MOD44_02254B38 +MOD44_02254B38: ; 0x02254B38 + ldr r3, _02254B40 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254B40: .word MOD20_02253794 + thumb_func_end MOD44_02254B38 + + thumb_func_start MOD44_02254B44 +MOD44_02254B44: ; 0x02254B44 + ldr r3, _02254B4C ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254B4C: .word MOD20_022537B8 + thumb_func_end MOD44_02254B44 + + thumb_func_start MOD44_02254B50 +MOD44_02254B50: ; 0x02254B50 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD44_02254B50 + + thumb_func_start MOD44_02254B64 +MOD44_02254B64: ; 0x02254B64 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + add r0, r4, #0 + bl MOD20_022538A4 + ldr r0, [r5, #4] + ldr r2, _02254BEC ; =0x02254C70 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x42 + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x41 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254BF0 ; =0x04001000 + ldr r0, _02254BF4 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD44_02254B50 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 +_02254BEC: .word 0x02254C70 +_02254BF0: .word 0x04001000 +_02254BF4: .word 0xFFFFE0FF + thumb_func_end MOD44_02254B64 + + thumb_func_start MOD44_02254BF8 +MOD44_02254BF8: ; 0x02254BF8 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + bl MOD44_02254B50 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD44_02254BF8 + + thumb_func_start MOD44_02254C14 +MOD44_02254C14: ; 0x02254C14 + push {r4, r5, r6, lr} + add r6, r1, #0 + add r0, r6, #0 + bl MOD20_022538A0 + add r5, r0, #0 + add r0, r6, #0 + bl MOD20_022538A4 + add r4, r0, #0 + ldr r0, _02254C50 ; =0x00000663 + bl MOD20_02252B28 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + ldr r1, [r4] + mov r2, #0x25 + lsl r1, r1, #4 + add r1, #0x38 + ldr r0, [r5, #0x24] + lsl r1, r1, #0xc + lsl r2, r2, #0xe + bl MOD20_02253F64 + add r0, r6, #0 + bl MOD44_02254B50 + pop {r4, r5, r6, pc} + .align 2, 0 +_02254C50: .word 0x00000663 + thumb_func_end MOD44_02254C14 + + .section .rodata + ; 0x02254C54 + .incbin "baserom.nds", 0x295814, 0x68 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_44.SINIT_START + .global SDK_OVERLAY.MODULE_44.SINIT_END +SDK_OVERLAY.MODULE_44.SINIT_START: + .word MOD44_02254840 + .word 0 +SDK_OVERLAY.MODULE_44.SINIT_END: diff --git a/arm9/modules/45/asm/module_45.s b/arm9/modules/45/asm/module_45.s new file mode 100644 index 00000000..96762d44 --- /dev/null +++ b/arm9/modules/45/asm/module_45.s @@ -0,0 +1,1061 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD45_02254840 +MOD45_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD45_02254854 + ldr r1, _02254850 ; =MOD45_02254A30 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD45_02254854 +_02254850: .word MOD45_02254A30 + thumb_func_end MOD45_02254840 + + thumb_func_start MOD45_02254854 +MOD45_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0xb0 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD45_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD45_022549EC + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD45_022549EC + thumb_func_end MOD45_02254854 + + thumb_func_start MOD45_0225489C +MOD45_0225489C: ; 0x0225489C + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r5, r0, #0 + add r4, r1, #0 + add r0, sp, #4 + add r6, r2, #0 + bl FUN_020126B4 + add r0, r4, #0 + bl MOD20_02252C3C + add r1, r5, #0 + add r1, #0x98 + str r0, [r1] + add r0, r5, #4 + add r1, r5, #0 + add r2, sp, #4 + bl MOD45_0225492C + add r0, r5, #0 + ldrb r1, [r5, #0x12] + add r0, #0xa8 + add r2, r6, #0 + str r1, [r0] + add r0, r5, #0 + add r0, #0xa8 + ldr r1, [r0] + ldr r0, [r5, #8] + sub r0, r0, #1 + add r1, r1, r0 + add r0, r5, #0 + add r0, #0xac + str r1, [r0] + add r0, r5, #0 + add r0, #0x90 + add r1, r5, #4 + bl MOD45_02254B90 + cmp r0, #0 + beq _0225491C + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + mov r0, #8 + str r0, [sp] + ldr r0, _02254924 ; =0x02255018 + ldr r2, _02254928 ; =MOD45_022549E0 + mov r1, #0x25 + add r3, r5, #0 + bl MOD20_02254130 + add r1, r5, #0 + add r1, #0x9c + str r0, [r1] + add r0, r5, #0 + mov r1, #0 + add r0, #0xa0 + str r1, [r0] + add r5, #0x94 + add sp, #0x14 + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_0225491C: + mov r0, #0 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + nop +_02254924: .word 0x02255018 +_02254928: .word MOD45_022549E0 + thumb_func_end MOD45_0225489C + + thumb_func_start MOD45_0225492C +MOD45_0225492C: ; 0x0225492C + push {r3, r4, r5, r6, r7, lr} + add r4, r2, #0 + add r6, r0, #0 + ldr r0, [r4, #4] + str r1, [sp] + str r0, [r6] + ldr r0, [r4, #8] + str r0, [r6, #8] + ldr r1, [r6] + ldr r0, _022549BC ; =0x022550AB + ldrb r0, [r0, r1] + str r0, [r6, #4] + ldr r0, [r6] + cmp r0, #2 + bne _02254970 + ldr r5, [r4] + mov r1, #0x19 + add r0, r5, #0 + lsl r1, r1, #4 + bl _u32_div_f + cmp r1, #0 + beq _0225496C + add r0, r5, #0 + mov r1, #0x64 + bl _u32_div_f + cmp r1, #0 + beq _02254970 + mov r0, #3 + tst r0, r5 + bne _02254970 +_0225496C: + mov r0, #0x1d + str r0, [r6, #4] +_02254970: + ldr r0, [r4, #8] + mov r1, #7 + sub r0, r0, #1 + bl _u32_div_f + mov r2, #7 + ldr r3, [r4, #0xc] + sub r0, r2, r1 + add r7, r3, r0 + cmp r7, #7 + blo _02254990 + add r0, r7, #0 + add r1, r2, #0 + bl _u32_div_f + add r7, r1, #0 +_02254990: + ldr r0, [r6, #4] + mov r4, #0 + cmp r0, #0 + bls _022549BA + add r5, r6, #0 +_0225499A: + ldr r0, [sp] + add r2, r4, #1 + strh r2, [r5, #0xc] + add r0, #0x98 + ldr r0, [r0] + ldr r1, [r6] + bl FUN_0204C064 + strb r0, [r5, #0xf] + add r0, r7, r4 + strb r0, [r5, #0xe] + ldr r0, [r6, #4] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, r0 + blo _0225499A +_022549BA: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022549BC: .word 0x022550AB + thumb_func_end MOD45_0225492C + + thumb_func_start MOD45_022549C0 +MOD45_022549C0: ; 0x022549C0 + push {r4, lr} + add r4, r0, #0 + add r0, #0x9c + ldr r0, [r0] + bl MOD20_02254198 + add r0, r4, #0 + add r0, #0x90 + ldr r0, [r0] + bl MOD45_02254BCC + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD45_022549C0 + + thumb_func_start MOD45_022549E0 +MOD45_022549E0: ; 0x022549E0 + add r2, r3, #0 + add r2, #0xa4 + str r0, [r2] + add r3, #0xa0 + str r1, [r3] + bx lr + thumb_func_end MOD45_022549E0 + + thumb_func_start MOD45_022549EC +MOD45_022549EC: ; 0x022549EC + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #3 + bhs _02254A2A + add r0, r4, #0 + add r0, #0x94 + add r1, #0x9c + ldr r0, [r0] + ldr r1, [r1] + bl MOD20_02252C14 + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _02254A2C ; =0x0225500C + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254A2A + add r0, r4, #0 + bl MOD45_022549C0 + add r0, r5, #0 + bl FUN_0200CAB4 + add r4, #0x94 + ldr r0, [r4] + bl MOD20_022529A0 +_02254A2A: + pop {r3, r4, r5, pc} + .align 2, 0 +_02254A2C: .word 0x0225500C + thumb_func_end MOD45_022549EC + + thumb_func_start MOD45_02254A30 +MOD45_02254A30: ; 0x02254A30 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD45_02254A30 + + thumb_func_start MOD45_02254A38 +MOD45_02254A38: ; 0x02254A38 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254A40 + b _02254A42 +_02254A40: + mov r1, #2 +_02254A42: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD45_02254A38 + + thumb_func_start MOD45_02254A4C +MOD45_02254A4C: ; 0x02254A4C + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A5C + cmp r0, #1 + beq _02254A70 + b _02254A92 +_02254A5C: + add r0, r4, #0 + add r0, #0x90 + ldr r0, [r0] + mov r1, #0 + bl MOD45_02254C7C + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A92 +_02254A70: + add r0, r4, #0 + add r0, #0x90 + ldr r0, [r0] + mov r1, #0 + bl MOD45_02254CA0 + cmp r0, #0 + beq _02254A92 + add r0, r4, #0 + add r0, #0x94 + ldr r0, [r0] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD45_02254A38 +_02254A92: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD45_02254A4C + + thumb_func_start MOD45_02254A98 +MOD45_02254A98: ; 0x02254A98 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldrb r1, [r5, #2] + cmp r1, #0 + beq _02254AAC + mov r1, #2 + bl MOD45_02254A38 + mov r0, #0 + pop {r3, r4, r5, pc} +_02254AAC: + ldrb r0, [r5, #1] + cmp r0, #0 + beq _02254AB8 + cmp r0, #1 + beq _02254B3E + b _02254B52 +_02254AB8: + add r0, r5, #0 + add r0, #0xa0 + ldr r0, [r0] + cmp r0, #1 + bne _02254B52 + add r0, r5, #0 + mov r1, #0 + add r0, #0xa0 + str r1, [r0] + add r0, r5, #0 + add r0, #0xa8 + ldr r2, [r0] + add r0, r5, #0 + add r0, #0xa4 + ldr r1, [r0] + cmp r1, r2 + blo _02254B52 + add r0, r5, #0 + add r0, #0xac + ldr r0, [r0] + cmp r1, r0 + bhi _02254B52 + add r0, r5, #0 + add r0, #0x98 + sub r4, r1, r2 + ldr r0, [r0] + ldr r1, [r5, #4] + add r2, r4, #1 + bl FUN_0204C064 + cmp r0, #0 + beq _02254B08 + add r0, r5, #0 + add r0, #0x98 + ldr r0, [r0] + ldr r1, [r5, #4] + add r2, r4, #1 + bl FUN_0204C02C + b _02254B16 +_02254B08: + add r0, r5, #0 + add r0, #0x98 + ldr r0, [r0] + ldr r1, [r5, #4] + add r2, r4, #1 + bl FUN_0204BFF0 +_02254B16: + add r3, r5, #0 + add r3, #0x13 + lsl r2, r4, #2 + ldrb r1, [r3, r2] + mov r0, #1 + eor r0, r1 + strb r0, [r3, r2] + add r0, r5, #0 + add r0, #0x8c + str r4, [r0] + add r0, r5, #0 + add r0, #0x90 + ldr r0, [r0] + mov r1, #2 + bl MOD45_02254C7C + ldrb r0, [r5, #1] + add r0, r0, #1 + strb r0, [r5, #1] + b _02254B52 +_02254B3E: + add r0, r5, #0 + add r0, #0x90 + ldr r0, [r0] + mov r1, #2 + bl MOD45_02254CA0 + cmp r0, #0 + beq _02254B52 + mov r0, #0 + strb r0, [r5, #1] +_02254B52: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD45_02254A98 + + thumb_func_start MOD45_02254B58 +MOD45_02254B58: ; 0x02254B58 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254B68 + cmp r0, #1 + beq _02254B7C + b _02254B8C +_02254B68: + add r0, r4, #0 + add r0, #0x90 + ldr r0, [r0] + mov r1, #1 + bl MOD45_02254C7C + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254B8C +_02254B7C: + add r4, #0x90 + ldr r0, [r4] + bl MOD45_02254CAC + cmp r0, #0 + beq _02254B8C + mov r0, #1 + pop {r4, pc} +_02254B8C: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD45_02254B58 + + thumb_func_start MOD45_02254B90 +MOD45_02254B90: ; 0x02254B90 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #8 + mov r1, #0x3c + bl FUN_02016998 + add r4, r0, #0 + beq _02254BC6 + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r5, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x20] + add r0, r4, #0 + add r1, r5, #0 + bl MOD45_02254BE0 + str r4, [r6] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254BC6: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD45_02254B90 + + thumb_func_start MOD45_02254BCC +MOD45_02254BCC: ; 0x02254BCC + push {r4, lr} + add r4, r0, #0 + beq _02254BDC + bl MOD45_02254C64 + add r0, r4, #0 + bl FUN_02016A18 +_02254BDC: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD45_02254BCC + + thumb_func_start MOD45_02254BE0 +MOD45_02254BE0: ; 0x02254BE0 + push {r4, r5, lr} + sub sp, #0xc + mov r3, #0 + str r3, [sp] + mov r2, #1 + add r5, r0, #0 + add r4, r1, #0 + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x72 + bl FUN_02006A34 + mov r0, #8 + str r0, [sp] + add r0, r5, #0 + add r0, #0x28 + mov r1, #0xc + mov r2, #0x70 + mov r3, #0x71 + bl MOD20_02253FBC + add r2, r5, #0 + ldr r0, [r5, #0x20] + ldr r1, _02254C2C ; =0x022550B8 + add r2, #0x28 + bl MOD20_02253E74 + str r0, [r5, #0x24] + ldr r1, [r4, #8] + lsl r1, r1, #2 + add r1, r4, r1 + ldrb r1, [r1, #0xa] + bl MOD45_02254C30 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_02254C2C: .word 0x022550B8 + thumb_func_end MOD45_02254BE0 + + thumb_func_start MOD45_02254C30 +MOD45_02254C30: ; 0x02254C30 + push {r4, r5, r6, lr} + add r6, r1, #0 + add r5, r0, #0 + add r0, r6, #0 + mov r1, #7 + bl _u32_div_f + add r4, r1, #0 + add r0, r6, #0 + mov r1, #7 + bl _u32_div_f + add r2, r0, #0 + lsl r1, r4, #1 + lsl r3, r2, #1 + add r1, r4, r1 + add r2, r2, r3 + add r1, r1, #5 + add r2, r2, #6 + add r0, r5, #0 + lsl r1, r1, #0xf + lsl r2, r2, #0xf + bl MOD20_02253F64 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD45_02254C30 + + thumb_func_start MOD45_02254C64 +MOD45_02254C64: ; 0x02254C64 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x24] + bl MOD20_02253F14 + add r4, #0x28 + add r0, r4, #0 + bl MOD20_02254014 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD45_02254C64 + + thumb_func_start MOD45_02254C7C +MOD45_02254C7C: ; 0x02254C7C + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254C9C ; =0x02255140 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254C9C: .word 0x02255140 + thumb_func_end MOD45_02254C7C + + thumb_func_start MOD45_02254CA0 +MOD45_02254CA0: ; 0x02254CA0 + ldr r3, _02254CA8 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254CA8: .word MOD20_02253794 + thumb_func_end MOD45_02254CA0 + + thumb_func_start MOD45_02254CAC +MOD45_02254CAC: ; 0x02254CAC + ldr r3, _02254CB4 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254CB4: .word MOD20_022537B8 + thumb_func_end MOD45_02254CAC + + thumb_func_start MOD45_02254CB8 +MOD45_02254CB8: ; 0x02254CB8 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD45_02254CB8 + + thumb_func_start MOD45_02254CCC +MOD45_02254CCC: ; 0x02254CCC + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r6, r1, #0 + add r0, r6, #0 + bl MOD20_022538A0 + add r5, r0, #0 + add r0, r6, #0 + bl MOD20_022538A4 + add r4, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254D60 ; =0x022550FC + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r5, #4] + ldr r2, _02254D64 ; =0x022550E0 + mov r1, #7 + mov r3, #0 + bl FUN_02016C18 + add r0, r5, #0 + add r1, r4, #0 + bl MOD45_02254DDC + add r0, r5, #0 + add r1, r4, #0 + bl MOD45_02254E74 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x6f + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r0, [r5, #4] + mov r1, #7 + bl FUN_02017CD0 + ldr r1, _02254D68 ; =0x04001000 + ldr r0, _02254D6C ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #0xc + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r6, #0 + bl MOD45_02254CB8 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02254D60: .word 0x022550FC +_02254D64: .word 0x022550E0 +_02254D68: .word 0x04001000 +_02254D6C: .word 0xFFFFE0FF + thumb_func_end MOD45_02254CCC + + thumb_func_start MOD45_02254D70 +MOD45_02254D70: ; 0x02254D70 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #7 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD45_02254CB8 + pop {r3, r4, r5, pc} + thumb_func_end MOD45_02254D70 + + thumb_func_start MOD45_02254D94 +MOD45_02254D94: ; 0x02254D94 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + add r0, r4, #0 + bl MOD20_022538A4 + add r2, r0, #0 + add r0, #0x88 + ldr r0, [r0] + lsl r3, r0, #2 + add r0, r2, r3 + ldrb r0, [r0, #0xf] + cmp r0, #0 + beq _02254DBA + mov r1, #0x8f + b _02254DBC +_02254DBA: + mov r1, #0x83 +_02254DBC: + add r2, r2, r3 + ldrb r2, [r2, #0xe] + lsl r1, r1, #0x10 + ldr r0, [r5, #4] + lsr r1, r1, #0x10 + bl MOD45_02254E28 + ldr r0, [r5, #4] + mov r1, #7 + bl FUN_02017CD0 + add r0, r4, #0 + bl MOD45_02254CB8 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD45_02254D94 + + thumb_func_start MOD45_02254DDC +MOD45_02254DDC: ; 0x02254DDC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r7, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + add r6, r1, #0 + ldr r2, [r7, #4] + mov r0, #0xc + mov r1, #0x6e + mov r3, #7 + bl FUN_020068C8 + ldr r0, [r6, #4] + mov r4, #0 + cmp r0, #0 + bls _02254E22 + add r5, r6, #0 +_02254E08: + ldrb r0, [r5, #0xf] + cmp r0, #0 + beq _02254E18 + ldrb r2, [r5, #0xe] + ldr r0, [r7, #4] + mov r1, #0x8f + bl MOD45_02254E28 +_02254E18: + ldr r0, [r6, #4] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, r0 + blo _02254E08 +_02254E22: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD45_02254DDC + + thumb_func_start MOD45_02254E28 +MOD45_02254E28: ; 0x02254E28 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r7, r2, #0 + add r5, r0, #0 + add r6, r1, #0 + add r0, r7, #0 + mov r1, #7 + bl _u32_div_f + add r4, r1, #0 + add r0, r7, #0 + mov r1, #7 + bl _u32_div_f + lsl r1, r0, #1 + add r0, r0, r1 + add r0, r0, #5 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r3, r4, #1 + str r0, [sp] + mov r0, #2 + add r3, r4, r3 + str r0, [sp, #4] + add r3, r3, #4 + str r0, [sp, #8] + mov r0, #0 + lsl r3, r3, #0x18 + str r0, [sp, #0xc] + add r0, r5, #0 + mov r1, #7 + add r2, r6, #0 + lsr r3, r3, #0x18 + bl FUN_02018540 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD45_02254E28 + + thumb_func_start MOD45_02254E74 +MOD45_02254E74: ; 0x02254E74 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + mov r3, #0 + add r7, r0, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + str r3, [sp, #0xc] + add r6, r1, #0 + ldr r0, [r7, #4] + mov r1, #6 + mov r2, #0x82 + bl FUN_02018540 + ldr r0, [r7, #4] + ldr r1, [r6] + bl MOD45_02254EBC + ldr r0, [r6, #4] + mov r4, #0 + cmp r0, #0 + bls _02254EB8 + add r5, r6, #0 +_02254EA4: + ldrb r2, [r5, #0xe] + ldr r0, [r7, #4] + add r1, r4, #1 + bl MOD45_02254F14 + ldr r0, [r6, #4] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, r0 + blo _02254EA4 +_02254EB8: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD45_02254E74 + + thumb_func_start MOD45_02254EBC +MOD45_02254EBC: ; 0x02254EBC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r7, r0, #0 + ldr r0, _02254F10 ; =0x022550C6 + lsl r1, r1, #1 + ldrh r4, [r0, r1] + mov r0, #0 + str r0, [sp, #0x10] +_02254ECC: + ldr r0, [sp, #0x10] + mov r5, #0 + add r0, r0, #2 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 +_02254ED6: + add r3, r5, #0 + add r2, r4, r5 + add r3, #0xc + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + str r6, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r0, r7, #0 + mov r1, #6 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_02018540 + add r5, r5, #1 + cmp r5, #4 + blt _02254ED6 + ldr r0, [sp, #0x10] + add r4, #0xc + add r0, r0, #1 + str r0, [sp, #0x10] + cmp r0, #2 + blt _02254ECC + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_02254F10: .word 0x022550C6 + thumb_func_end MOD45_02254EBC + + thumb_func_start MOD45_02254F14 +MOD45_02254F14: ; 0x02254F14 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r2, #0 + str r0, [sp, #0x10] + str r1, [sp, #0x14] + add r0, r5, #0 + mov r1, #7 + bl _u32_div_f + add r6, r1, #0 + lsl r0, r6, #1 + add r0, r6, r0 + add r4, r0, #4 + add r0, r5, #0 + mov r1, #7 + bl _u32_div_f + lsl r1, r0, #1 + add r0, r0, r1 + add r5, r0, #5 + cmp r6, #0 + bne _02254F44 + mov r6, #1 + b _02254F46 +_02254F44: + mov r6, #0 +_02254F46: + ldr r0, [sp, #0x14] + mov r1, #0xa + bl _u32_div_f + add r7, r0, #0 + ldr r0, [sp, #0x14] + mov r1, #0xa + bl _u32_div_f + str r1, [sp, #0x18] + cmp r7, #0 + beq _02254FAE + mov r0, #0x14 + add r2, r6, #0 + mul r2, r0 + ldr r0, _02255008 ; =0x02255118 + lsl r1, r7, #1 + add r0, r0, r2 + ldrh r7, [r1, r0] + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + lsl r3, r4, #0x18 + ldr r0, [sp, #0x10] + mov r1, #6 + add r2, r7, #0 + lsr r3, r3, #0x18 + bl FUN_02018540 + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + add r7, #0xc + str r0, [sp, #0xc] + lsl r2, r7, #0x10 + lsl r3, r4, #0x18 + ldr r0, [sp, #0x10] + mov r1, #6 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_02018540 +_02254FAE: + mov r0, #0x14 + add r3, r6, #0 + mul r3, r0 + ldr r0, [sp, #0x18] + ldr r2, _02255008 ; =0x02255118 + lsl r1, r0, #1 + add r0, r2, r3 + ldrh r6, [r1, r0] + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + add r3, r4, #1 + str r0, [sp, #0xc] + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + mov r1, #6 + add r2, r6, #0 + lsr r3, r3, #0x18 + bl FUN_02018540 + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + add r6, #0xc + add r3, r4, #1 + str r0, [sp, #0xc] + lsl r2, r6, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x10] + mov r1, #6 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_02018540 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02255008: .word 0x02255118 + thumb_func_end MOD45_02254F14 + + .section .rodata + ; 0x0225500C + .incbin "baserom.nds", 0x2961CC, 0x164 + + .section .sinit + .word MOD45_02254840 diff --git a/arm9/modules/46/asm/module_46.s b/arm9/modules/46/asm/module_46.s new file mode 100644 index 00000000..600e0c5b --- /dev/null +++ b/arm9/modules/46/asm/module_46.s @@ -0,0 +1,399 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD46_02254840 +MOD46_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD46_02254854 + ldr r1, _02254850 ; =MOD46_02254908 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD46_02254854 +_02254850: .word MOD46_02254908 + thumb_func_end MOD46_02254840 + + thumb_func_start MOD46_02254854 +MOD46_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x10 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD46_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD46_022548D4 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD46_022548D4 + thumb_func_end MOD46_02254854 + + thumb_func_start MOD46_0225489C +MOD46_0225489C: ; 0x0225489C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r0, #8 + add r1, r5, #4 + bl MOD46_022549AC + cmp r0, #0 + beq _022548BC + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + str r4, [r5, #0xc] + mov r0, #1 + pop {r3, r4, r5, pc} +_022548BC: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD46_0225489C + + thumb_func_start MOD46_022548C0 +MOD46_022548C0: ; 0x022548C0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + bl MOD46_022549DC + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD46_022548C0 + + thumb_func_start MOD46_022548D4 +MOD46_022548D4: ; 0x022548D4 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4] + add r5, r0, #0 + cmp r1, #3 + bhs _02254900 + lsl r2, r1, #2 + ldr r1, _02254904 ; =0x02254AF4 + add r0, r4, #0 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254900 + add r0, r4, #0 + bl MOD46_022548C0 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0xc] + bl MOD20_022529A0 +_02254900: + pop {r3, r4, r5, pc} + nop +_02254904: .word 0x02254AF4 + thumb_func_end MOD46_022548D4 + + thumb_func_start MOD46_02254908 +MOD46_02254908: ; 0x02254908 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD46_02254908 + + thumb_func_start MOD46_02254910 +MOD46_02254910: ; 0x02254910 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254918 + b _0225491A +_02254918: + mov r1, #2 +_0225491A: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD46_02254910 + + thumb_func_start MOD46_02254924 +MOD46_02254924: ; 0x02254924 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254934 + cmp r0, #1 + beq _02254944 + b _0225495E +_02254934: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD46_022549E8 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _0225495E +_02254944: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD46_02254A0C + cmp r0, #0 + beq _0225495E + ldr r0, [r4, #0xc] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD46_02254910 +_0225495E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD46_02254924 + + thumb_func_start MOD46_02254964 +MOD46_02254964: ; 0x02254964 + push {r3, lr} + ldrb r1, [r0, #2] + cmp r1, #0 + beq _02254972 + mov r1, #2 + bl MOD46_02254910 +_02254972: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD46_02254964 + + thumb_func_start MOD46_02254978 +MOD46_02254978: ; 0x02254978 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254988 + cmp r0, #1 + beq _02254998 + b _022549A6 +_02254988: + ldr r0, [r4, #8] + mov r1, #1 + bl MOD46_022549E8 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549A6 +_02254998: + ldr r0, [r4, #8] + bl MOD46_02254A18 + cmp r0, #0 + beq _022549A6 + mov r0, #1 + pop {r4, pc} +_022549A6: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD46_02254978 + + thumb_func_start MOD46_022549AC +MOD46_022549AC: ; 0x022549AC + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x30 + bl FUN_02016998 + add r4, r0, #0 + beq _022549D8 + add r0, #8 + mov r1, #8 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + cmp r0, #0 + beq _022549D8 + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_022549D8: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD46_022549AC + + thumb_func_start MOD46_022549DC +MOD46_022549DC: ; 0x022549DC + push {r3, lr} + cmp r0, #0 + beq _022549E6 + bl FUN_02016A18 +_022549E6: + pop {r3, pc} + thumb_func_end MOD46_022549DC + + thumb_func_start MOD46_022549E8 +MOD46_022549E8: ; 0x022549E8 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254A08 ; =0x02254B1C + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254A08: .word 0x02254B1C + thumb_func_end MOD46_022549E8 + + thumb_func_start MOD46_02254A0C +MOD46_02254A0C: ; 0x02254A0C + ldr r3, _02254A14 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254A14: .word MOD20_02253794 + thumb_func_end MOD46_02254A0C + + thumb_func_start MOD46_02254A18 +MOD46_02254A18: ; 0x02254A18 + ldr r3, _02254A20 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254A20: .word MOD20_022537B8 + thumb_func_end MOD46_02254A18 + + thumb_func_start MOD46_02254A24 +MOD46_02254A24: ; 0x02254A24 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD46_02254A24 + + thumb_func_start MOD46_02254A38 +MOD46_02254A38: ; 0x02254A38 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254ACC ; =0x02254B00 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r1, #8 + str r1, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r3, #6 + bl FUN_0200687C + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r5, #4] + mov r1, #6 + add r3, r2, #0 + bl FUN_02018540 + mov r0, #0x20 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #0xc + mov r1, #9 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + ldr r0, [r5, #4] + mov r1, #0x1a + mov r2, #6 + bl MOD20_02253AA4 + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254AD0 ; =0x04001000 + ldr r0, _02254AD4 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD46_02254A24 + add sp, #0x14 + pop {r4, r5, pc} + nop +_02254ACC: .word 0x02254B00 +_02254AD0: .word 0x04001000 +_02254AD4: .word 0xFFFFE0FF + thumb_func_end MOD46_02254A38 + + thumb_func_start MOD46_02254AD8 +MOD46_02254AD8: ; 0x02254AD8 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + bl MOD46_02254A24 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD46_02254AD8 + + .section .rodata + ; 0x02254AF4 + .incbin "baserom.nds", 0x2966b4, 0x4c + + .section .sinit + .word MOD46_02254840 diff --git a/arm9/modules/47/asm/module_47.s b/arm9/modules/47/asm/module_47.s new file mode 100644 index 00000000..c10b696b --- /dev/null +++ b/arm9/modules/47/asm/module_47.s @@ -0,0 +1,1497 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD47_02254840 +MOD47_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD47_02254854 + ldr r1, _02254850 ; =MOD47_0225491C + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD47_02254854 +_02254850: .word MOD47_0225491C + thumb_func_end MOD47_02254840 + + thumb_func_start MOD47_02254854 +MOD47_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x24 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD47_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD47_022548E0 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD47_022548E0 + thumb_func_end MOD47_02254854 + + thumb_func_start MOD47_0225489C +MOD47_0225489C: ; 0x0225489C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r0, #0x14 + add r1, r5, #4 + bl MOD47_02254D14 + cmp r0, #0 + beq _022548C8 + mov r1, #0 + strb r1, [r5] + strb r1, [r5, #1] + add r0, r5, #0 + strb r1, [r5, #2] + add r0, #0x20 + strb r1, [r0] + add r0, r5, #0 + add r0, #0x21 + strb r1, [r0] + str r4, [r5, #0x18] + mov r0, #1 + pop {r3, r4, r5, pc} +_022548C8: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD47_0225489C + + thumb_func_start MOD47_022548CC +MOD47_022548CC: ; 0x022548CC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x14] + bl MOD47_02254D6C + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD47_022548CC + + thumb_func_start MOD47_022548E0 +MOD47_022548E0: ; 0x022548E0 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #6 + bhs _02254914 + add r0, r4, #0 + bl MOD47_02254C6C + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _02254918 ; =0x022553B8 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254914 + add r0, r4, #0 + bl MOD47_022548CC + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x18] + bl MOD20_022529A0 +_02254914: + pop {r3, r4, r5, pc} + nop +_02254918: .word 0x022553B8 + thumb_func_end MOD47_022548E0 + + thumb_func_start MOD47_0225491C +MOD47_0225491C: ; 0x0225491C + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD47_0225491C + + thumb_func_start MOD47_02254924 +MOD47_02254924: ; 0x02254924 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _0225492C + b _0225492E +_0225492C: + mov r1, #5 +_0225492E: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD47_02254924 + + thumb_func_start MOD47_02254938 +MOD47_02254938: ; 0x02254938 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254948 + cmp r0, #1 + beq _02254958 + b _02254972 +_02254948: + ldr r0, [r4, #0x14] + mov r1, #0 + bl MOD47_02254E24 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254972 +_02254958: + ldr r0, [r4, #0x14] + mov r1, #0 + bl MOD47_02254E48 + cmp r0, #0 + beq _02254972 + ldr r0, [r4, #0x18] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD47_02254924 +_02254972: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD47_02254938 + + thumb_func_start MOD47_02254978 +MOD47_02254978: ; 0x02254978 + push {r3, r4, r5, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _0225498C + mov r1, #5 + bl MOD47_02254924 + mov r0, #0 + pop {r3, r4, r5, pc} +_0225498C: + ldrb r1, [r4, #1] + cmp r1, #0 + bne _022549DA + bl MOD47_02254BD4 + cmp r0, #0 + beq _022549DA + add r0, r4, #0 + bl MOD47_02254D04 + cmp r0, #0 + beq _022549D4 + ldr r0, [r4, #0x18] + bl MOD20_02252C38 + add r5, r0, #0 + ldr r0, [r4, #0x14] + mov r1, #3 + bl MOD47_02254E24 + ldr r0, [r5, #0x1c] + ldr r0, [r0] + bl FUN_02034984 + cmp r0, #0 + beq _022549CA + add r0, r4, #0 + mov r1, #3 + bl MOD47_02254924 + b _022549DA +_022549CA: + add r0, r4, #0 + mov r1, #2 + bl MOD47_02254924 + b _022549DA +_022549D4: + ldr r0, _022549E0 ; =0x0000066E + bl MOD20_02252B28 +_022549DA: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_022549E0: .word 0x0000066E + thumb_func_end MOD47_02254978 + + thumb_func_start MOD47_022549E4 +MOD47_022549E4: ; 0x022549E4 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _022549F8 + mov r1, #5 + bl MOD47_02254924 + mov r0, #0 + pop {r4, pc} +_022549F8: + ldrb r1, [r4, #1] + cmp r1, #0 + beq _02254A08 + cmp r1, #1 + beq _02254A18 + cmp r1, #2 + beq _02254A60 + b _02254AAC +_02254A08: + bl MOD47_02254CCC + mov r0, #0 + str r0, [r4, #0x1c] + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254AAC +_02254A18: + bl MOD47_02254AB0 + cmp r0, #0 + beq _02254A2C + add r0, r4, #0 + mov r1, #4 + bl MOD47_02254924 + mov r0, #0 + pop {r4, pc} +_02254A2C: + ldr r0, [r4, #0x1c] + cmp r0, #0x3c + bhs _02254A36 + add r0, r0, #1 + str r0, [r4, #0x1c] +_02254A36: + add r0, r4, #0 + bl MOD47_02254CEC + cmp r0, #0 + beq _02254AAC + ldr r0, [r4, #0x1c] + cmp r0, #0x3c + blo _02254AAC + add r0, r4, #0 + bl MOD47_02254C1C + ldr r0, [r4, #0x14] + mov r1, #6 + bl MOD47_02254E24 + mov r0, #0 + str r0, [r4, #0x1c] + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254AAC +_02254A60: + bl MOD47_02254AB0 + cmp r0, #0 + bne _02254A72 + add r0, r4, #0 + bl MOD47_02254BD4 + cmp r0, #0 + beq _02254A8C +_02254A72: + add r0, r4, #0 + bl MOD47_02254CFC + ldr r0, [r4, #0x14] + mov r1, #2 + bl MOD47_02254E24 + add r0, r4, #0 + mov r1, #1 + bl MOD47_02254924 + mov r0, #0 + pop {r4, pc} +_02254A8C: + ldr r0, [r4, #0x1c] + add r0, r0, #1 + str r0, [r4, #0x1c] + cmp r0, #0x1e + blo _02254AAC + mov r0, #0 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD47_02254C1C + cmp r0, #0 + beq _02254AAC + ldr r0, [r4, #0x14] + mov r1, #6 + bl MOD47_02254E24 +_02254AAC: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD47_022549E4 + + thumb_func_start MOD47_02254AB0 +MOD47_02254AB0: ; 0x02254AB0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x18] + bl MOD20_02252C08 + cmp r0, #0 + beq _02254AC2 + mov r0, #1 + pop {r4, pc} +_02254AC2: + ldr r0, [r4, #0x18] + bl MOD20_02252C30 + cmp r0, #0 + beq _02254AD0 + mov r0, #1 + pop {r4, pc} +_02254AD0: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD47_02254AB0 + + thumb_func_start MOD47_02254AD4 +MOD47_02254AD4: ; 0x02254AD4 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254AE8 + mov r1, #5 + bl MOD47_02254924 + mov r0, #0 + pop {r4, pc} +_02254AE8: + ldrb r1, [r4, #1] + cmp r1, #0 + beq _02254AF8 + cmp r1, #1 + beq _02254B02 + cmp r1, #2 + beq _02254B1C + b _02254B34 +_02254AF8: + mov r0, #0 + str r0, [r4, #0x1c] + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] +_02254B02: + ldr r0, [r4, #0x1c] + add r0, r0, #1 + str r0, [r4, #0x1c] + cmp r0, #0x3c + blo _02254B34 + ldr r0, [r4, #0x14] + mov r1, #4 + bl MOD47_02254E24 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254B34 +_02254B1C: + bl MOD47_02254BD4 + cmp r0, #0 + beq _02254B34 + ldr r0, [r4, #0x14] + mov r1, #2 + bl MOD47_02254E24 + add r0, r4, #0 + mov r1, #1 + bl MOD47_02254924 +_02254B34: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD47_02254AD4 + + thumb_func_start MOD47_02254B38 +MOD47_02254B38: ; 0x02254B38 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254B4C + mov r1, #5 + bl MOD47_02254924 + mov r0, #0 + pop {r4, pc} +_02254B4C: + ldrb r1, [r4, #1] + cmp r1, #0 + beq _02254B58 + cmp r1, #1 + beq _02254B6C + b _02254B84 +_02254B58: + bl MOD47_02254CFC + ldr r0, [r4, #0x14] + mov r1, #5 + bl MOD47_02254E24 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254B84 +_02254B6C: + bl MOD47_02254BD4 + cmp r0, #0 + beq _02254B84 + ldr r0, [r4, #0x14] + mov r1, #2 + bl MOD47_02254E24 + add r0, r4, #0 + mov r1, #1 + bl MOD47_02254924 +_02254B84: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD47_02254B38 + + thumb_func_start MOD47_02254B88 +MOD47_02254B88: ; 0x02254B88 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #1] + cmp r1, #0 + beq _02254B9C + cmp r1, #1 + beq _02254BA6 + cmp r1, #2 + beq _02254BC0 + b _02254BCE +_02254B9C: + bl MOD47_02254CFC + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] +_02254BA6: + add r0, r4, #0 + bl MOD47_02254D04 + cmp r0, #0 + beq _02254BCE + ldr r0, [r4, #0x14] + mov r1, #1 + bl MOD47_02254E24 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254BCE +_02254BC0: + ldr r0, [r4, #0x14] + bl MOD47_02254E54 + cmp r0, #0 + beq _02254BCE + mov r0, #1 + pop {r4, pc} +_02254BCE: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD47_02254B88 + + thumb_func_start MOD47_02254BD4 +MOD47_02254BD4: ; 0x02254BD4 + push {r3, lr} + sub sp, #8 + ldr r0, [r0, #0x18] + bl MOD20_02252C08 + cmp r0, #0 + bne _02254C14 + add r0, sp, #4 + add r1, sp, #0 + bl FUN_02020ACC + cmp r0, #0 + beq _02254C14 + ldr r0, [sp, #4] + sub r0, #0x10 + cmp r0, #0xbf + bhs _02254BFA + mov r1, #1 + b _02254BFC +_02254BFA: + mov r1, #0 +_02254BFC: + ldr r0, [sp] + sub r0, #0x10 + cmp r0, #0x9f + bhs _02254C08 + mov r0, #1 + b _02254C0A +_02254C08: + mov r0, #0 +_02254C0A: + tst r0, r1 + beq _02254C14 + add sp, #8 + mov r0, #1 + pop {r3, pc} +_02254C14: + mov r0, #0 + add sp, #8 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD47_02254BD4 + + thumb_func_start MOD47_02254C1C +MOD47_02254C1C: ; 0x02254C1C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r0, #0 + mov r0, #0 + ldr r5, _02254C68 ; =0x022553D0 + str r0, [sp] + str r0, [sp, #4] +_02254C2A: + ldr r0, [r5, #4] + mov r4, #0 + add r6, r4, #0 + cmp r0, #0 + bls _02254C46 +_02254C34: + ldr r0, [r5] + ldrb r0, [r0, r4] + bl FUN_0202F0DC + add r6, r6, r0 + ldr r0, [r5, #4] + add r4, r4, #1 + cmp r4, r0 + blo _02254C34 +_02254C46: + ldr r0, [r7, #4] + cmp r6, r0 + beq _02254C52 + mov r0, #1 + str r6, [r7, #4] + str r0, [sp] +_02254C52: + ldr r0, [sp, #4] + add r5, #8 + add r0, r0, #1 + add r7, r7, #4 + str r0, [sp, #4] + cmp r0, #4 + blo _02254C2A + ldr r0, [sp] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254C68: .word 0x022553D0 + thumb_func_end MOD47_02254C1C + + thumb_func_start MOD47_02254C6C +MOD47_02254C6C: ; 0x02254C6C + push {r4, lr} + add r4, r0, #0 + add r0, #0x20 + ldrb r0, [r0] + cmp r0, #3 + bhi _02254CC8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02254C84: ; jump table + .short _02254CC8 - _02254C84 - 2 ; case 0 + .short _02254C8C - _02254C84 - 2 ; case 1 + .short _02254C9C - _02254C84 - 2 ; case 2 + .short _02254CBA - _02254C84 - 2 ; case 3 +_02254C8C: + bl FUN_02032C28 + cmp r0, #0 + beq _02254CC8 + mov r0, #2 + add r4, #0x20 + strb r0, [r4] + pop {r4, pc} +_02254C9C: + add r0, r4, #0 + add r0, #0x21 + ldrb r0, [r0] + cmp r0, #0 + beq _02254CC8 + bl FUN_02032C0C + add r0, r4, #0 + mov r1, #0 + add r0, #0x21 + strb r1, [r0] + mov r0, #3 + add r4, #0x20 + strb r0, [r4] + pop {r4, pc} +_02254CBA: + bl FUN_02030F40 + cmp r0, #0 + bne _02254CC8 + mov r0, #0 + add r4, #0x20 + strb r0, [r4] +_02254CC8: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD47_02254C6C + + thumb_func_start MOD47_02254CCC +MOD47_02254CCC: ; 0x02254CCC + push {r4, lr} + add r4, r0, #0 + add r0, #0x20 + ldrb r0, [r0] + cmp r0, #0 + bne _02254CE8 + ldr r0, [r4, #0x18] + bl MOD20_02252C40 + bl FUN_02032BD0 + mov r0, #1 + add r4, #0x20 + strb r0, [r4] +_02254CE8: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD47_02254CCC + + thumb_func_start MOD47_02254CEC +MOD47_02254CEC: ; 0x02254CEC + add r0, #0x20 + ldrb r0, [r0] + cmp r0, #2 + bne _02254CF8 + mov r0, #1 + bx lr +_02254CF8: + mov r0, #0 + bx lr + thumb_func_end MOD47_02254CEC + + thumb_func_start MOD47_02254CFC +MOD47_02254CFC: ; 0x02254CFC + mov r1, #1 + add r0, #0x21 + strb r1, [r0] + bx lr + thumb_func_end MOD47_02254CFC + + thumb_func_start MOD47_02254D04 +MOD47_02254D04: ; 0x02254D04 + add r0, #0x20 + ldrb r0, [r0] + cmp r0, #0 + bne _02254D10 + mov r0, #1 + bx lr +_02254D10: + mov r0, #0 + bx lr + thumb_func_end MOD47_02254D04 + + thumb_func_start MOD47_02254D14 +MOD47_02254D14: ; 0x02254D14 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #8 + mov r1, #0x60 + bl FUN_02016998 + add r4, r0, #0 + beq _02254D62 + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r5, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x30] + ldr r2, _02254D68 ; =0x0000019A + mov r0, #1 + mov r1, #0x1a + mov r3, #8 + bl FUN_0200A86C + str r0, [r4, #0x58] + mov r0, #0x60 + mov r1, #8 + bl FUN_020219F4 + str r0, [r4, #0x5c] + add r0, r4, #0 + add r1, r5, #0 + bl MOD47_02254D8C + str r4, [r6] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254D62: + mov r0, #0 + pop {r4, r5, r6, pc} + nop +_02254D68: .word 0x0000019A + thumb_func_end MOD47_02254D14 + + thumb_func_start MOD47_02254D6C +MOD47_02254D6C: ; 0x02254D6C + push {r4, lr} + add r4, r0, #0 + beq _02254D8A + ldr r0, [r4, #0x5c] + bl FUN_02021A20 + ldr r0, [r4, #0x58] + bl FUN_0200A8B8 + add r0, r4, #0 + bl MOD47_02254DFC + add r0, r4, #0 + bl FUN_02016A18 +_02254D8A: + pop {r4, pc} + thumb_func_end MOD47_02254D6C + + thumb_func_start MOD47_02254D8C +MOD47_02254D8C: ; 0x02254D8C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + mov r3, #0 + str r3, [sp] + mov r2, #1 + add r6, r0, #0 + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x63 + bl FUN_02006A34 + mov r0, #8 + str r0, [sp] + add r0, r6, #0 + add r0, #0x44 + mov r1, #0xc + mov r2, #0x61 + mov r3, #0x62 + bl MOD20_02253FBC + add r0, r6, #0 + str r0, [sp, #0xc] + add r0, #0x44 + ldr r4, _02254DF8 ; =0x02255410 + mov r7, #0 + add r5, r6, #0 + str r0, [sp, #0xc] +_02254DC6: + ldr r0, [r6, #0x30] + ldr r2, [sp, #0xc] + add r1, r4, #0 + bl MOD20_02253E74 + str r0, [r5, #0x34] + add r7, r7, #1 + add r4, #0x10 + add r5, r5, #4 + cmp r7, #4 + blt _02254DC6 + ldr r0, [r6, #0x38] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r6, #0x3c] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r6, #0x40] + mov r1, #1 + bl MOD20_02253F78 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254DF8: .word 0x02255410 + thumb_func_end MOD47_02254D8C + + thumb_func_start MOD47_02254DFC +MOD47_02254DFC: ; 0x02254DFC + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_02254E04: + ldr r1, [r5, #0x34] + cmp r1, #0 + beq _02254E10 + ldr r0, [r6, #0x30] + bl MOD20_02253F14 +_02254E10: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _02254E04 + add r6, #0x44 + add r0, r6, #0 + bl MOD20_02254014 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD47_02254DFC + + thumb_func_start MOD47_02254E24 +MOD47_02254E24: ; 0x02254E24 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254E44 ; =0x02255450 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254E44: .word 0x02255450 + thumb_func_end MOD47_02254E24 + + thumb_func_start MOD47_02254E48 +MOD47_02254E48: ; 0x02254E48 + ldr r3, _02254E50 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254E50: .word MOD20_02253794 + thumb_func_end MOD47_02254E48 + + thumb_func_start MOD47_02254E54 +MOD47_02254E54: ; 0x02254E54 + ldr r3, _02254E5C ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254E5C: .word MOD20_022537B8 + thumb_func_end MOD47_02254E54 + + thumb_func_start MOD47_02254E60 +MOD47_02254E60: ; 0x02254E60 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD47_02254E60 + + thumb_func_start MOD47_02254E74 +MOD47_02254E74: ; 0x02254E74 + push {r4, r5, r6, lr} + sub sp, #0x18 + add r6, r1, #0 + add r0, r6, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254F28 ; =0x022553F4 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x60 + mov r3, #6 + bl FUN_0200687C + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r1, #0x5f + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + mov r3, #2 + add r1, r5, #0 + str r3, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #0x14 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + lsl r0, r4, #0xb + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r5, #4] + add r1, #0x20 + mov r2, #6 + bl FUN_02019064 + add r0, r5, #0 + add r0, #0x20 + bl FUN_02019270 + add r0, r5, #0 + bl MOD47_022550FC + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254F2C ; =0x04001000 + ldr r0, _02254F30 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x14] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r6, #0 + bl MOD47_02254E60 + add sp, #0x18 + pop {r4, r5, r6, pc} + .align 2, 0 +_02254F28: .word 0x022553F4 +_02254F2C: .word 0x04001000 +_02254F30: .word 0xFFFFE0FF + thumb_func_end MOD47_02254E74 + + thumb_func_start MOD47_02254F34 +MOD47_02254F34: ; 0x02254F34 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, #0x20 + bl FUN_02019178 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD47_02254E60 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD47_02254F34 + + thumb_func_start MOD47_02254F58 +MOD47_02254F58: ; 0x02254F58 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + ldr r0, [r4, #0x34] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r4, #0x38] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r4, #0x3c] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r4, #0x40] + mov r1, #1 + bl MOD20_02253F78 + add r0, r4, #0 + bl MOD47_022550FC + ldr r0, _02254F98 ; =0x00000663 + bl MOD20_02252B28 + add r0, r5, #0 + bl MOD47_02254E60 + pop {r3, r4, r5, pc} + .align 2, 0 +_02254F98: .word 0x00000663 + thumb_func_end MOD47_02254F58 + + thumb_func_start MOD47_02254F9C +MOD47_02254F9C: ; 0x02254F9C + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + ldr r0, [r4, #0x34] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r4, #0x38] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r4, #0x3c] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r4, #0x40] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r4, #0x38] + mov r1, #1 + bl MOD20_02253F28 + add r0, r4, #0 + bl MOD47_02255184 + ldr r0, _02254FE4 ; =0x00000663 + bl MOD20_02252B28 + add r0, r5, #0 + bl MOD47_02254E60 + pop {r3, r4, r5, pc} + .align 2, 0 +_02254FE4: .word 0x00000663 + thumb_func_end MOD47_02254F9C + + thumb_func_start MOD47_02254FE8 +MOD47_02254FE8: ; 0x02254FE8 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + ldr r0, [r4, #0x34] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r4, #0x38] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r4, #0x3c] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r4, #0x40] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r4, #0x3c] + mov r1, #2 + bl MOD20_02253F28 + add r0, r4, #0 + bl MOD47_022551D8 + ldr r0, _02255030 ; =0x0000066E + bl MOD20_02252B28 + add r0, r5, #0 + bl MOD47_02254E60 + pop {r3, r4, r5, pc} + .align 2, 0 +_02255030: .word 0x0000066E + thumb_func_end MOD47_02254FE8 + + thumb_func_start MOD47_02255034 +MOD47_02255034: ; 0x02255034 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + ldr r0, [r4, #0x34] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r4, #0x38] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r4, #0x3c] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r4, #0x40] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r4, #0x3c] + mov r1, #2 + bl MOD20_02253F28 + add r0, r4, #0 + bl MOD47_02255250 + ldr r0, _0225507C ; =0x0000066E + bl MOD20_02252B28 + add r0, r5, #0 + bl MOD47_02254E60 + pop {r3, r4, r5, pc} + .align 2, 0 +_0225507C: .word 0x0000066E + thumb_func_end MOD47_02255034 + + thumb_func_start MOD47_02255080 +MOD47_02255080: ; 0x02255080 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r6, r0, #0 + ldr r0, [r4, #0x34] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r4, #0x38] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r4, #0x3c] + mov r1, #1 + bl MOD20_02253F78 + ldr r0, [r4, #0x40] + mov r1, #0 + bl MOD20_02253F78 + ldr r0, [r4, #0x40] + mov r1, #0 + bl MOD20_02253F28 + add r0, r4, #0 + add r1, r6, #0 + bl MOD47_022552D8 + ldr r0, _022550D4 ; =0x00000663 + bl MOD20_02252B28 + add r0, r5, #0 + bl MOD47_02254E60 + pop {r4, r5, r6, pc} + nop +_022550D4: .word 0x00000663 + thumb_func_end MOD47_02255080 + + thumb_func_start MOD47_022550D8 +MOD47_022550D8: ; 0x022550D8 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r1, r0, #0 + add r0, r4, #0 + bl MOD47_022552D8 + add r0, r5, #0 + bl MOD47_02254E60 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD47_022550D8 + + thumb_func_start MOD47_022550FC +MOD47_022550FC: ; 0x022550FC + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + add r0, #0x20 + mov r1, #4 + bl FUN_02019620 + ldr r0, [r4, #0x58] + ldr r2, [r4, #0x5c] + mov r1, #0 + bl FUN_0200A8E0 + mov r0, #0 + ldr r1, [r4, #0x5c] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xc0 + sub r0, r1, r0 + lsr r3, r0, #1 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02255180 ; =0x00010104 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x5c] + add r0, #0x20 + bl FUN_0201BDE0 + ldr r0, [r4, #0x58] + ldr r2, [r4, #0x5c] + mov r1, #0xa + bl FUN_0200A8E0 + mov r0, #0 + ldr r1, [r4, #0x5c] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xc0 + sub r0, r1, r0 + lsr r3, r0, #1 + mov r0, #0x38 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02255180 ; =0x00010104 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x5c] + add r0, #0x20 + bl FUN_0201BDE0 + add r4, #0x20 + add r0, r4, #0 + bl FUN_02019548 + add sp, #0x10 + pop {r4, pc} + nop +_02255180: .word 0x00010104 + thumb_func_end MOD47_022550FC + + thumb_func_start MOD47_02255184 +MOD47_02255184: ; 0x02255184 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + add r0, #0x20 + mov r1, #4 + bl FUN_02019620 + ldr r0, [r4, #0x58] + ldr r2, [r4, #0x5c] + mov r1, #1 + bl FUN_0200A8E0 + mov r0, #0 + ldr r1, [r4, #0x5c] + add r2, r0, #0 + bl FUN_02002F08 + mov r1, #0xc0 + sub r0, r1, r0 + lsr r3, r0, #1 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _022551D4 ; =0x00010104 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x5c] + add r0, #0x20 + bl FUN_0201BDE0 + add r4, #0x20 + add r0, r4, #0 + bl FUN_02019548 + add sp, #0x10 + pop {r4, pc} + nop +_022551D4: .word 0x00010104 + thumb_func_end MOD47_02255184 + + thumb_func_start MOD47_022551D8 +MOD47_022551D8: ; 0x022551D8 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + add r0, #0x20 + mov r1, #4 + bl FUN_02019620 + ldr r0, [r4, #0x58] + ldr r2, [r4, #0x5c] + mov r1, #2 + bl FUN_0200A8E0 + mov r0, #0 + ldr r1, [r4, #0x5c] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xc0 + sub r0, r1, r0 + lsr r3, r0, #1 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _0225524C ; =0x00010104 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x5c] + add r0, #0x20 + bl FUN_0201BDE0 + ldr r0, [r4, #0x58] + ldr r2, [r4, #0x5c] + mov r1, #3 + bl FUN_0200A8E0 + mov r0, #0x18 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _0225524C ; =0x00010104 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x5c] + add r0, #0x20 + mov r3, #0x10 + bl FUN_0201BDE0 + add r4, #0x20 + add r0, r4, #0 + bl FUN_02019548 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_0225524C: .word 0x00010104 + thumb_func_end MOD47_022551D8 + + thumb_func_start MOD47_02255250 +MOD47_02255250: ; 0x02255250 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + add r0, #0x20 + mov r1, #4 + bl FUN_02019620 + ldr r0, [r4, #0x58] + ldr r2, [r4, #0x5c] + mov r1, #2 + bl FUN_0200A8E0 + mov r0, #0 + ldr r1, [r4, #0x5c] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xc0 + sub r0, r1, r0 + lsr r3, r0, #1 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _022552D4 ; =0x00010104 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x5c] + add r0, #0x20 + bl FUN_0201BDE0 + ldr r0, [r4, #0x58] + ldr r2, [r4, #0x5c] + mov r1, #4 + bl FUN_0200A8E0 + mov r0, #0 + ldr r1, [r4, #0x5c] + add r2, r0, #0 + bl FUN_02002F08 + mov r1, #0xc0 + sub r0, r1, r0 + lsr r3, r0, #1 + mov r0, #0x18 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _022552D4 ; =0x00010104 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x5c] + add r0, #0x20 + bl FUN_0201BDE0 + add r4, #0x20 + add r0, r4, #0 + bl FUN_02019548 + add sp, #0x10 + pop {r4, pc} + nop +_022552D4: .word 0x00010104 + thumb_func_end MOD47_02255250 + + thumb_func_start MOD47_022552D8 +MOD47_022552D8: ; 0x022552D8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r0, #0 + add r7, r1, #0 + add r0, #0x20 + mov r1, #4 + bl FUN_02019620 + ldr r0, [r5, #0x58] + ldr r2, [r5, #0x5c] + mov r1, #5 + bl FUN_0200A8E0 + mov r0, #0 + ldr r1, [r5, #0x5c] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xc0 + sub r0, r1, r0 + lsr r3, r0, #1 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02255398 ; =0x00010104 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r5, #0 + ldr r2, [r5, #0x5c] + add r0, #0x20 + bl FUN_0201BDE0 + mov r0, #0 + str r0, [sp, #0x10] + add r0, r5, #0 + str r0, [sp, #0x14] + add r0, #0x20 + ldr r6, _0225539C ; =0x022553F0 + mov r4, #0x20 + str r0, [sp, #0x14] +_0225532C: + ldrb r1, [r6] + ldr r0, [r5, #0x58] + ldr r2, [r5, #0x5c] + bl FUN_0200A8E0 + str r4, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02255398 ; =0x00010104 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x14] + ldr r2, [r5, #0x5c] + mov r3, #8 + bl FUN_0201BDE0 + mov r0, #1 + str r0, [sp] + mov r2, #2 + ldr r0, [r5, #0x5c] + ldr r1, [r7] + add r3, r2, #0 + bl FUN_02021B04 + str r4, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02255398 ; =0x00010104 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x14] + ldr r2, [r5, #0x5c] + mov r3, #0xa0 + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + add r6, r6, #1 + add r0, r0, #1 + add r4, #0x10 + add r7, r7, #4 + str r0, [sp, #0x10] + cmp r0, #4 + blt _0225532C + add r5, #0x20 + add r0, r5, #0 + bl FUN_02019548 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_02255398: .word 0x00010104 +_0225539C: .word 0x022553F0 + thumb_func_end MOD47_022552D8 + + .section .rodata + ; 0x022553A0 + .incbin "baserom.nds", 0x297360, 0x11C + + ; .section .sinit + .global SDK_OVERLAY.MODULE_47.SINIT_START + .global SDK_OVERLAY.MODULE_47.SINIT_END +SDK_OVERLAY.MODULE_47.SINIT_START: + .word MOD47_02254840 + .word 0 +SDK_OVERLAY.MODULE_47.SINIT_END: diff --git a/arm9/modules/48/asm/module_48.s b/arm9/modules/48/asm/module_48.s new file mode 100644 index 00000000..bcb3b7b4 --- /dev/null +++ b/arm9/modules/48/asm/module_48.s @@ -0,0 +1,960 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD48_02254840 +MOD48_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD48_02254854 + ldr r1, _02254850 ; =MOD48_0225498C + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD48_02254854 +_02254850: .word MOD48_0225498C + thumb_func_end MOD48_02254840 + + thumb_func_start MOD48_02254854 +MOD48_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x40 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD48_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD48_02254950 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD48_02254950 + thumb_func_end MOD48_02254854 + + thumb_func_start MOD48_0225489C +MOD48_0225489C: ; 0x0225489C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r7, r0, #0 + add r0, r1, #0 + str r1, [sp, #4] + str r2, [sp, #8] + bl MOD20_02252C38 + add r6, r0, #0 + bl MOD06_02245824 + str r0, [r7, #8] + cmp r0, #0 + beq _022548C0 + add r0, r6, #0 + bl MOD06_0224582C + b _022548C2 +_022548C0: + mov r0, #0 +_022548C2: + str r0, [r7, #4] + mov r4, #0 + add r5, r7, #0 +_022548C8: + lsl r1, r4, #0x18 + add r0, r6, #0 + lsr r1, r1, #0x18 + bl MOD06_022457F8 + lsl r1, r4, #0x18 + str r0, [r5, #0x18] + add r0, r6, #0 + lsr r1, r1, #0x18 + bl MOD06_022457CC + str r0, [r5, #0xc] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #3 + blt _022548C8 + add r0, r6, #0 + bl MOD06_022457A8 + str r0, [r7, #0x24] + add r0, r7, #0 + ldr r2, [sp, #8] + add r0, #0x2c + add r1, r7, #4 + bl MOD48_02254AA0 + cmp r0, #0 + beq _0225492A + mov r0, #0 + strb r0, [r7] + strb r0, [r7, #1] + strb r0, [r7, #2] + mov r0, #8 + str r0, [sp] + ldr r0, _02254930 ; =0x02254F60 + ldr r2, _02254934 ; =MOD48_02254994 + mov r1, #3 + add r3, r7, #0 + bl MOD20_02254130 + str r0, [r7, #0x34] + mov r0, #0 + str r0, [r7, #0x38] + str r0, [r7, #0x3c] + ldr r0, [sp, #4] + add sp, #0xc + str r0, [r7, #0x30] + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_0225492A: + mov r0, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02254930: .word 0x02254F60 +_02254934: .word MOD48_02254994 + thumb_func_end MOD48_0225489C + + thumb_func_start MOD48_02254938 +MOD48_02254938: ; 0x02254938 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x34] + bl MOD20_02254198 + ldr r0, [r4, #0x2c] + bl MOD48_02254AD4 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD48_02254938 + + thumb_func_start MOD48_02254950 +MOD48_02254950: ; 0x02254950 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #3 + bhs _02254986 + ldr r0, [r4, #0x30] + ldr r1, [r4, #0x34] + bl MOD20_02252C14 + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _02254988 ; =0x02254F6C + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254986 + add r0, r4, #0 + bl MOD48_02254938 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x30] + bl MOD20_022529A0 +_02254986: + pop {r3, r4, r5, pc} + .align 2, 0 +_02254988: .word 0x02254F6C + thumb_func_end MOD48_02254950 + + thumb_func_start MOD48_0225498C +MOD48_0225498C: ; 0x0225498C + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD48_0225498C + + thumb_func_start MOD48_02254994 +MOD48_02254994: ; 0x02254994 + str r0, [r3, #0x3c] + str r1, [r3, #0x38] + bx lr + .align 2, 0 + thumb_func_end MOD48_02254994 + + thumb_func_start MOD48_0225499C +MOD48_0225499C: ; 0x0225499C + ldrb r2, [r0, #2] + cmp r2, #0 + bne _022549A4 + b _022549A6 +_022549A4: + mov r1, #2 +_022549A6: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD48_0225499C + + thumb_func_start MOD48_022549B0 +MOD48_022549B0: ; 0x022549B0 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _022549C0 + cmp r0, #1 + beq _022549D0 + b _022549EA +_022549C0: + ldr r0, [r4, #0x2c] + mov r1, #0 + bl MOD48_02254AE0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549EA +_022549D0: + ldr r0, [r4, #0x2c] + mov r1, #0 + bl MOD48_02254B04 + cmp r0, #0 + beq _022549EA + ldr r0, [r4, #0x30] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD48_0225499C +_022549EA: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD48_022549B0 + + thumb_func_start MOD48_022549F0 +MOD48_022549F0: ; 0x022549F0 + push {r3, r4, r5, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _02254A04 + mov r1, #2 + bl MOD48_0225499C + mov r0, #0 + pop {r3, r4, r5, pc} +_02254A04: + ldr r0, [r4, #0x30] + bl MOD20_02252C38 + add r5, r0, #0 + bl MOD06_02245824 + str r0, [r4, #8] + cmp r0, #0 + bne _02254A1A + mov r0, #0 + b _02254A20 +_02254A1A: + add r0, r5, #0 + bl MOD06_0224582C +_02254A20: + ldr r1, [r4, #4] + cmp r0, r1 + beq _02254A34 + str r0, [r4, #4] + ldr r0, [r4, #0x2c] + mov r1, #2 + bl MOD48_02254AE0 + mov r0, #0 + pop {r3, r4, r5, pc} +_02254A34: + ldr r0, [r4, #0x2c] + mov r1, #3 + bl MOD48_02254B04 + cmp r0, #0 + beq _02254A66 + ldr r0, [r4, #0x38] + cmp r0, #1 + bne _02254A66 + ldr r1, [r4, #0x3c] + ldr r0, [r4, #0x24] + cmp r1, r0 + bhs _02254A62 + lsl r0, r1, #2 + add r0, r4, r0 + ldr r0, [r0, #0x18] + cmp r0, #0 + beq _02254A62 + str r1, [r4, #0x28] + ldr r0, [r4, #0x2c] + mov r1, #3 + bl MOD48_02254AE0 +_02254A62: + mov r0, #0 + str r0, [r4, #0x38] +_02254A66: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD48_022549F0 + + thumb_func_start MOD48_02254A6C +MOD48_02254A6C: ; 0x02254A6C + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A7C + cmp r0, #1 + beq _02254A8C + b _02254A9A +_02254A7C: + ldr r0, [r4, #0x2c] + mov r1, #1 + bl MOD48_02254AE0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A9A +_02254A8C: + ldr r0, [r4, #0x2c] + bl MOD48_02254B10 + cmp r0, #0 + beq _02254A9A + mov r0, #1 + pop {r4, pc} +_02254A9A: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD48_02254A6C + + thumb_func_start MOD48_02254AA0 +MOD48_02254AA0: ; 0x02254AA0 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0xb0 + bl FUN_02016998 + add r4, r0, #0 + beq _02254ACE + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x20] + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254ACE: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD48_02254AA0 + + thumb_func_start MOD48_02254AD4 +MOD48_02254AD4: ; 0x02254AD4 + push {r3, lr} + cmp r0, #0 + beq _02254ADE + bl FUN_02016A18 +_02254ADE: + pop {r3, pc} + thumb_func_end MOD48_02254AD4 + + thumb_func_start MOD48_02254AE0 +MOD48_02254AE0: ; 0x02254AE0 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254B00 ; =0x02254F94 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254B00: .word 0x02254F94 + thumb_func_end MOD48_02254AE0 + + thumb_func_start MOD48_02254B04 +MOD48_02254B04: ; 0x02254B04 + ldr r3, _02254B0C ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254B0C: .word MOD20_02253794 + thumb_func_end MOD48_02254B04 + + thumb_func_start MOD48_02254B10 +MOD48_02254B10: ; 0x02254B10 + ldr r3, _02254B18 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254B18: .word MOD20_022537B8 + thumb_func_end MOD48_02254B10 + + thumb_func_start MOD48_02254B1C +MOD48_02254B1C: ; 0x02254B1C + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD48_02254B1C + + thumb_func_start MOD48_02254B30 +MOD48_02254B30: ; 0x02254B30 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r6, r0, #0 + ldr r0, [r4, #4] + ldr r2, _02254BBC ; =0x02254F78 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0xc + mov r1, #0x7a + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0xc + mov r1, #0x79 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + add r0, r4, #0 + add r1, r6, #0 + bl MOD48_02254D2C + ldr r1, _02254BC0 ; =0x04001000 + ldr r0, _02254BC4 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r5, #0 + bl MOD48_02254B1C + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + nop +_02254BBC: .word 0x02254F78 +_02254BC0: .word 0x04001000 +_02254BC4: .word 0xFFFFE0FF + thumb_func_end MOD48_02254B30 + + thumb_func_start MOD48_02254BC8 +MOD48_02254BC8: ; 0x02254BC8 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + bl MOD48_02254EC0 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD48_02254B1C + pop {r3, r4, r5, pc} + thumb_func_end MOD48_02254BC8 + + thumb_func_start MOD48_02254BE8 +MOD48_02254BE8: ; 0x02254BE8 + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + add r0, r7, #0 + bl MOD20_022538A0 + add r5, r0, #0 + add r0, r7, #0 + bl MOD20_022538A4 + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _02254C3C + mov r1, #0 + add r2, r1, #0 + bl FUN_0206B6D4 + str r0, [sp] + add r0, r5, #0 + add r0, #0xac + mov r2, #1 + ldr r0, [r0] + add r1, sp, #0 + add r3, r2, #0 + bl MOD20_02253A04 + mov r1, #0 + ldr r0, [r4] + add r2, r1, #0 + bl FUN_0206B7BC + add r1, r0, #0 + ldr r0, [r5, #0x24] + add r1, r1, #1 + bl MOD20_02253F9C + add r5, #0x34 + ldr r1, [r4, #4] + add r0, r5, #0 + bl MOD48_02254EF4 + b _02254C58 +_02254C3C: + ldr r0, [r5, #0x24] + mov r1, #1 + bl MOD20_02253F78 + mov r4, #0 + mov r6, #1 +_02254C48: + ldr r0, [r5, #0x34] + add r1, r6, #0 + bl MOD20_02253F78 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #3 + blt _02254C48 +_02254C58: + add r0, r7, #0 + bl MOD48_02254B1C + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD48_02254BE8 + + thumb_func_start MOD48_02254C60 +MOD48_02254C60: ; 0x02254C60 + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + add r0, r7, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r7, #0 + bl MOD20_022538A4 + add r6, r0, #0 + add r0, r7, #0 + bl MOD20_022538AC + add r5, r0, #0 + beq _02254C84 + cmp r5, #0x10 + beq _02254CFE + b _02254CC6 +_02254C84: + ldr r0, [r6, #0x24] + add r2, r4, #0 + add r0, r0, #1 + lsl r0, r0, #2 + add r0, r4, r0 + ldr r1, [r0, #0x24] + add r0, r4, #0 + add r0, #0x9c + str r1, [r0] + add r0, r4, #0 + add r0, #0x9c + add r1, r4, #0 + ldr r0, [r0] + add r1, #0xa4 + add r2, #0xa0 + bl MOD20_02253F6C + ldr r0, [r6, #0x24] + lsl r0, r0, #2 + add r0, r6, r0 + ldr r0, [r0, #8] + bl MOD20_02252B48 + add r0, r4, #0 + add r0, #0x9c + ldr r0, [r0] + mov r1, #6 + bl MOD20_02253F28 + add r0, r7, #0 + bl MOD20_022538B0 + add r5, r5, #1 +_02254CC6: + add r0, r4, #0 + add r1, r4, #0 + add r4, #0xa0 + mov r3, #0x2d + ldr r2, [r4] + lsl r3, r3, #0xa + add r4, r5, #0 + mul r4, r3 + mov r3, #2 + lsl r3, r3, #0xa + add r3, r4, r3 + asr r3, r3, #0xc + lsl r4, r3, #2 + ldr r3, _02254D28 ; =0x020EDF50 + add r0, #0x9c + ldr r4, [r3, r4] + add r1, #0xa4 + mov r3, #0x18 + mul r3, r4 + ldr r0, [r0] + ldr r1, [r1] + sub r2, r2, r3 + bl MOD20_02253F64 + add r0, r7, #0 + bl MOD20_022538B0 + pop {r3, r4, r5, r6, r7, pc} +_02254CFE: + add r0, r4, #0 + add r1, r4, #0 + add r2, r4, #0 + add r0, #0x9c + add r1, #0xa4 + add r2, #0xa0 + ldr r0, [r0] + ldr r1, [r1] + ldr r2, [r2] + bl MOD20_02253F64 + add r4, #0x9c + ldr r0, [r4] + mov r1, #4 + bl MOD20_02253F28 + add r0, r7, #0 + bl MOD48_02254B1C + pop {r3, r4, r5, r6, r7, pc} + nop +_02254D28: .word 0x020EDF50 + thumb_func_end MOD48_02254C60 + + thumb_func_start MOD48_02254D2C +MOD48_02254D2C: ; 0x02254D2C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x40 + add r4, r0, #0 + mov r0, #8 + str r0, [sp] + add r0, r4, #0 + str r1, [sp, #0xc] + add r0, #0x78 + mov r1, #0xc + mov r2, #5 + mov r3, #6 + bl MOD20_02253FBC + mov r0, #8 + str r0, [sp] + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xc + mov r2, #0x7b + mov r3, #0x7c + bl MOD20_02253FBC + mov r3, #0 + str r3, [sp] + mov r2, #1 + str r2, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0x7d + bl FUN_02006A34 + add r1, r4, #0 + lsr r0, r0, #5 + add r1, #0xac + str r0, [r1] + str r0, [sp, #0x28] + ldr r0, [sp, #0xc] + ldr r2, [sp, #0xc] + ldr r0, [r0] + mov r1, #0 + str r0, [sp, #0x30] + add r3, sp, #0x30 +_02254D82: + ldr r0, [r2, #8] + add r1, r1, #1 + str r0, [r3, #4] + add r2, r2, #4 + add r3, r3, #4 + cmp r1, #3 + blt _02254D82 + mov r7, #0 + add r5, sp, #0x30 + add r6, r4, #0 +_02254D96: + ldr r0, [r5] + cmp r0, #0 + bne _02254D9E + mov r0, #1 +_02254D9E: + mov r1, #0 + add r2, r1, #0 + bl FUN_0206B6D4 + add r1, r6, #0 + add r1, #0x8c + add r7, r7, #1 + str r0, [r1] + add r5, r5, #4 + add r6, r6, #4 + cmp r7, #4 + blt _02254D96 + add r1, r4, #0 + ldr r0, [sp, #0x28] + add r1, #0x8c + mov r2, #4 + mov r3, #1 + bl MOD20_02253A04 + mov r0, #1 + bl MOD20_022539C4 + mov r2, #0 + add r0, r2, #0 + add r1, r4, #0 + str r0, [sp, #0x10] +_02254DD2: + ldr r0, [sp, #0x10] + add r2, r2, #1 + str r0, [r1, #0x24] + add r1, r1, #4 + cmp r2, #0x10 + blt _02254DD2 + ldr r0, _02254EBC ; =0x02254FD0 + str r4, [sp, #0x20] + str r0, [sp, #0x24] + ldr r0, [sp, #0x10] + mov r6, #4 + str r0, [sp, #0x1c] + add r0, sp, #0x30 + str r0, [sp, #0x18] + ldr r0, [sp, #0xc] + str r0, [sp, #0x14] +_02254DF2: + add r2, r4, #0 + ldr r0, [r4, #0x20] + ldr r1, [sp, #0x24] + add r2, #0x78 + bl MOD20_02253E74 + ldr r1, [sp, #0x20] + ldr r2, [sp, #0x28] + str r0, [r1, #0x24] + ldr r1, [sp, #0x1c] + add r1, r2, r1 + bl MOD20_02253FA4 + add r0, r4, #0 + str r0, [sp, #0x2c] + add r0, #0x64 + mov r5, #0 + str r0, [sp, #0x2c] +_02254E16: + add r7, r5, r6 + ldr r1, _02254EBC ; =0x02254FD0 + lsl r2, r7, #4 + add r1, r1, r2 + ldr r0, [r4, #0x20] + ldr r2, [sp, #0x2c] + bl MOD20_02253E74 + lsl r1, r7, #2 + add r1, r4, r1 + add r5, r5, #1 + str r0, [r1, #0x24] + cmp r5, #3 + blt _02254E16 + ldr r0, [sp, #0x18] + ldr r0, [r0] + cmp r0, #0 + bne _02254E5E + ldr r0, [sp, #0x20] + mov r1, #1 + ldr r0, [r0, #0x24] + bl MOD20_02253F78 + mov r5, #0 + mov r7, #1 +_02254E48: + add r0, r5, r6 + lsl r0, r0, #2 + add r0, r4, r0 + ldr r0, [r0, #0x24] + add r1, r7, #0 + bl MOD20_02253F78 + add r5, r5, #1 + cmp r5, #3 + blt _02254E48 + b _02254E8E +_02254E5E: + mov r1, #0 + add r2, r1, #0 + bl FUN_0206B7BC + add r1, r0, #0 + ldr r0, [sp, #0x20] + add r1, r1, #1 + ldr r0, [r0, #0x24] + bl MOD20_02253F9C + ldr r0, [sp, #0x10] + cmp r0, #0 + bne _02254E7E + ldr r0, [sp, #0xc] + ldr r1, [r0, #4] + b _02254E82 +_02254E7E: + ldr r0, [sp, #0x14] + ldr r1, [r0, #0x10] +_02254E82: + add r2, r4, #0 + add r2, #0x24 + lsl r0, r6, #2 + add r0, r2, r0 + bl MOD48_02254EF4 +_02254E8E: + ldr r0, [sp, #0x24] + add r6, r6, #3 + add r0, #0x10 + str r0, [sp, #0x24] + ldr r0, [sp, #0x20] + add r0, r0, #4 + str r0, [sp, #0x20] + ldr r0, [sp, #0x1c] + add r0, #0x20 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x18] + add r0, r0, #4 + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + add r0, r0, #4 + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + add r0, r0, #1 + str r0, [sp, #0x10] + cmp r0, #4 + blt _02254DF2 + add sp, #0x40 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254EBC: .word 0x02254FD0 + thumb_func_end MOD48_02254D2C + + thumb_func_start MOD48_02254EC0 +MOD48_02254EC0: ; 0x02254EC0 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 + add r7, r4, #0 +_02254ECA: + ldr r1, [r5, #0x24] + cmp r1, #0 + beq _02254ED8 + ldr r0, [r6, #0x20] + bl MOD20_02253F14 + str r7, [r5, #0x24] +_02254ED8: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0x10 + blt _02254ECA + add r0, r6, #0 + add r0, #0x78 + bl MOD20_02254014 + add r6, #0x64 + add r0, r6, #0 + bl MOD20_02254014 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD48_02254EC0 + + thumb_func_start MOD48_02254EF4 +MOD48_02254EF4: ; 0x02254EF4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + str r1, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r1, _02254F5C ; =0x000003E7 + ldr r0, [sp] + cmp r0, r1 + bls _02254F0A + str r1, [sp] +_02254F0A: + mov r4, #0 + mov r6, #0x64 +_02254F0E: + ldr r0, [sp] + add r1, r6, #0 + bl _u32_div_f + add r7, r0, #0 + ldr r0, [sp, #4] + cmp r0, #1 + beq _02254F26 + cmp r7, #0 + bne _02254F26 + cmp r4, #2 + bne _02254F34 +_02254F26: + ldr r0, [r5] + add r1, r7, #0 + bl MOD20_02253F28 + mov r0, #1 + str r0, [sp, #4] + b _02254F3C +_02254F34: + ldr r0, [r5] + mov r1, #1 + bl MOD20_02253F78 +_02254F3C: + add r1, r7, #0 + ldr r0, [sp] + mul r1, r6 + sub r0, r0, r1 + str r0, [sp] + add r0, r6, #0 + mov r1, #0xa + add r5, r5, #4 + add r4, r4, #1 + bl _s32_div_f + add r6, r0, #0 + cmp r4, #3 + blt _02254F0E + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254F5C: .word 0x000003E7 + thumb_func_end MOD48_02254EF4 + + .section .rodata + ; 0x02254F60 + .incbin "baserom.nds", 0x297d20, 0x170 + + .section .sinit + .word MOD48_02254840 diff --git a/arm9/modules/49/asm/module_49.s b/arm9/modules/49/asm/module_49.s new file mode 100644 index 00000000..46ab8f05 --- /dev/null +++ b/arm9/modules/49/asm/module_49.s @@ -0,0 +1,638 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD49_02254840 +MOD49_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD49_02254854 + ldr r1, _02254850 ; =MOD49_02254974 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD49_02254854 +_02254850: .word MOD49_02254974 + thumb_func_end MOD49_02254840 + + thumb_func_start MOD49_02254854 +MOD49_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x7c + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD49_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD49_02254938 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD49_02254938 + thumb_func_end MOD49_02254854 + + thumb_func_start MOD49_0225489C +MOD49_0225489C: ; 0x0225489C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r7, r0, #0 + add r0, r1, #0 + str r1, [sp, #4] + str r2, [sp, #8] + bl MOD20_02252C3C + str r0, [sp, #0xc] + bl FUN_0204C158 + mov r6, #0 + str r0, [r7, #0x64] + cmp r0, #0 + bls _022548D8 + add r4, r7, #0 + add r4, #8 + add r5, r7, #4 +_022548C0: + ldr r0, [sp, #0xc] + add r1, r6, #0 + add r2, r5, #0 + add r3, r4, #0 + bl FUN_0204C174 + ldr r0, [r7, #0x64] + add r6, r6, #1 + add r4, #8 + add r5, #8 + cmp r6, r0 + blo _022548C0 +_022548D8: + add r0, r7, #0 + ldr r2, [sp, #8] + add r0, #0x68 + add r1, r7, #4 + bl MOD49_02254A44 + cmp r0, #0 + beq _02254912 + mov r0, #0 + strb r0, [r7] + strb r0, [r7, #1] + strb r0, [r7, #2] + mov r0, #8 + str r0, [sp] + ldr r0, _02254918 ; =0x02254CF0 + ldr r2, _0225491C ; =MOD49_0225497C + mov r1, #0xc + add r3, r7, #0 + bl MOD20_02254130 + str r0, [r7, #0x70] + mov r0, #0 + str r0, [r7, #0x74] + str r0, [r7, #0x78] + ldr r0, [sp, #4] + add sp, #0x10 + str r0, [r7, #0x6c] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02254912: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254918: .word 0x02254CF0 +_0225491C: .word MOD49_0225497C + thumb_func_end MOD49_0225489C + + thumb_func_start MOD49_02254920 +MOD49_02254920: ; 0x02254920 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x70] + bl MOD20_02254198 + ldr r0, [r4, #0x68] + bl MOD49_02254A78 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD49_02254920 + + thumb_func_start MOD49_02254938 +MOD49_02254938: ; 0x02254938 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #3 + bhs _0225496E + ldr r0, [r4, #0x6c] + ldr r1, [r4, #0x70] + bl MOD20_02252C14 + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _02254970 ; =0x02254CE4 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _0225496E + add r0, r4, #0 + bl MOD49_02254920 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x6c] + bl MOD20_022529A0 +_0225496E: + pop {r3, r4, r5, pc} + .align 2, 0 +_02254970: .word 0x02254CE4 + thumb_func_end MOD49_02254938 + + thumb_func_start MOD49_02254974 +MOD49_02254974: ; 0x02254974 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD49_02254974 + + thumb_func_start MOD49_0225497C +MOD49_0225497C: ; 0x0225497C + str r0, [r3, #0x78] + str r1, [r3, #0x74] + bx lr + .align 2, 0 + thumb_func_end MOD49_0225497C + + thumb_func_start MOD49_02254984 +MOD49_02254984: ; 0x02254984 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _0225498C + b _0225498E +_0225498C: + mov r1, #2 +_0225498E: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD49_02254984 + + thumb_func_start MOD49_02254998 +MOD49_02254998: ; 0x02254998 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _022549A8 + cmp r0, #1 + beq _022549B8 + b _022549D2 +_022549A8: + ldr r0, [r4, #0x68] + mov r1, #0 + bl MOD49_02254A84 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549D2 +_022549B8: + ldr r0, [r4, #0x68] + mov r1, #0 + bl MOD49_02254AA8 + cmp r0, #0 + beq _022549D2 + ldr r0, [r4, #0x6c] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD49_02254984 +_022549D2: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD49_02254998 + + thumb_func_start MOD49_022549D8 +MOD49_022549D8: ; 0x022549D8 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _022549EC + mov r1, #2 + bl MOD49_02254984 + mov r0, #0 + pop {r4, pc} +_022549EC: + ldr r0, [r4, #0x74] + cmp r0, #1 + bne _02254A0C + ldr r1, [r4, #0x78] + mov r0, #0xb + sub r1, r0, r1 + ldr r0, [r4, #0x64] + cmp r1, r0 + bhs _02254A08 + lsl r0, r1, #3 + add r0, r4, r0 + ldr r0, [r0, #4] + bl MOD20_02252B48 +_02254A08: + mov r0, #0 + str r0, [r4, #0x74] +_02254A0C: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD49_022549D8 + + thumb_func_start MOD49_02254A10 +MOD49_02254A10: ; 0x02254A10 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A20 + cmp r0, #1 + beq _02254A30 + b _02254A3E +_02254A20: + ldr r0, [r4, #0x68] + mov r1, #1 + bl MOD49_02254A84 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A3E +_02254A30: + ldr r0, [r4, #0x68] + bl MOD49_02254AB4 + cmp r0, #0 + beq _02254A3E + mov r0, #1 + pop {r4, pc} +_02254A3E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD49_02254A10 + + thumb_func_start MOD49_02254A44 +MOD49_02254A44: ; 0x02254A44 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x98 + bl FUN_02016998 + add r4, r0, #0 + beq _02254A72 + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + bl MOD20_02252D24 + str r0, [r4, #0x20] + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254A72: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD49_02254A44 + + thumb_func_start MOD49_02254A78 +MOD49_02254A78: ; 0x02254A78 + push {r3, lr} + cmp r0, #0 + beq _02254A82 + bl FUN_02016A18 +_02254A82: + pop {r3, pc} + thumb_func_end MOD49_02254A78 + + thumb_func_start MOD49_02254A84 +MOD49_02254A84: ; 0x02254A84 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254AA4 ; =0x02254D3C + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254AA4: .word 0x02254D3C + thumb_func_end MOD49_02254A84 + + thumb_func_start MOD49_02254AA8 +MOD49_02254AA8: ; 0x02254AA8 + ldr r3, _02254AB0 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254AB0: .word MOD20_02253794 + thumb_func_end MOD49_02254AA8 + + thumb_func_start MOD49_02254AB4 +MOD49_02254AB4: ; 0x02254AB4 + ldr r3, _02254ABC ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254ABC: .word MOD20_022537B8 + thumb_func_end MOD49_02254AB4 + + thumb_func_start MOD49_02254AC0 +MOD49_02254AC0: ; 0x02254AC0 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD49_02254AC0 + + thumb_func_start MOD49_02254AD4 +MOD49_02254AD4: ; 0x02254AD4 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + add r7, r1, #0 + add r0, r7, #0 + bl MOD20_022538A0 + add r5, r0, #0 + add r0, r7, #0 + bl MOD20_022538A4 + str r0, [sp, #0x14] + ldr r0, [r5, #4] + ldr r2, _02254BD0 ; =0x02254D20 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + ldr r0, [r5, #4] + mov r1, #6 + mov r2, #4 + mov r3, #1 + bl FUN_02017F48 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r5, #4] + mov r1, #6 + add r3, r2, #0 + bl FUN_02018540 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + mov r3, #2 + str r3, [sp] + mov r0, #0x18 + str r0, [sp, #4] + str r3, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #0x10] + ldr r0, [r5, #4] + add r1, sp, #0x1c + mov r2, #6 + bl FUN_02019064 + add r0, sp, #0x1c + mov r1, #4 + bl FUN_02019620 + add r0, sp, #0x1c + bl FUN_02019270 + ldr r1, _02254BD4 ; =0x00000197 + mov r0, #0x1a + mov r2, #0 + mov r3, #8 + bl FUN_0200A738 + add r4, r0, #0 + beq _02254B94 + mov r0, #0 + add r1, r4, #0 + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0 + add r6, r0, #0 + mov r3, #0xc0 + sub r3, r3, r6 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02254BD8 ; =0x00010104 + add r2, r4, #0 + str r0, [sp, #8] + add r0, sp, #0x1c + lsr r3, r3, #1 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, sp, #0x1c + bl FUN_02019548 + add r0, r4, #0 + bl FUN_02021A20 +_02254B94: + add r0, sp, #0x1c + bl FUN_02019178 + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, [sp, #0x14] + add r0, r5, #0 + bl MOD49_02254C04 + ldr r1, _02254BDC ; =0x04001000 + ldr r0, _02254BE0 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x18] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r7, #0 + bl MOD49_02254AC0 + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + nop +_02254BD0: .word 0x02254D20 +_02254BD4: .word 0x00000197 +_02254BD8: .word 0x00010104 +_02254BDC: .word 0x04001000 +_02254BE0: .word 0xFFFFE0FF + thumb_func_end MOD49_02254AD4 + + thumb_func_start MOD49_02254BE4 +MOD49_02254BE4: ; 0x02254BE4 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + bl MOD49_02254CB8 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r5, #0 + bl MOD49_02254AC0 + pop {r3, r4, r5, pc} + thumb_func_end MOD49_02254BE4 + + thumb_func_start MOD49_02254C04 +MOD49_02254C04: ; 0x02254C04 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + str r0, [sp, #4] + mov r0, #0 + str r1, [sp, #8] + bl MOD20_022539C4 + mov r0, #8 + str r0, [sp] + ldr r0, [sp, #4] + mov r1, #0xc + add r0, #0x54 + mov r2, #5 + mov r3, #6 + bl MOD20_02253FBC + ldr r0, [sp, #8] + mov r4, #0 + ldr r0, [r0, #0x60] + cmp r0, #0 + bls _02254C86 + ldr r5, [sp, #4] + ldr r6, [sp, #8] + add r0, r5, #0 + str r0, [sp, #0x10] + add r0, #0x54 + ldr r7, _02254CB4 ; =0x02254D60 + str r4, [sp, #0xc] + str r0, [sp, #0x10] +_02254C3E: + ldr r0, [r6] + ldr r2, [r6, #4] + mov r1, #0 + bl FUN_0206B6D4 + str r0, [r5, #0x68] + ldr r0, [sp, #4] + ldr r2, [sp, #0x10] + ldr r0, [r0, #0x20] + add r1, r7, #0 + bl MOD20_02253E74 + ldr r1, [sp, #0xc] + str r0, [r5, #0x24] + bl MOD20_02253FA4 + ldr r0, [r6] + ldr r1, [r6, #4] + mov r2, #0 + bl FUN_0206B7BC + add r1, r0, #0 + ldr r0, [r5, #0x24] + bl MOD20_02253F9C + ldr r0, [sp, #0xc] + add r4, r4, #1 + add r0, #0x10 + str r0, [sp, #0xc] + ldr r0, [sp, #8] + add r6, #8 + ldr r0, [r0, #0x60] + add r5, r5, #4 + add r7, #0x10 + cmp r4, r0 + blo _02254C3E +_02254C86: + cmp r4, #0xc + bge _02254C9C + ldr r0, [sp, #4] + lsl r1, r4, #2 + add r1, r0, r1 + mov r0, #0 +_02254C92: + add r4, r4, #1 + str r0, [r1, #0x24] + add r1, r1, #4 + cmp r4, #0xc + blt _02254C92 +_02254C9C: + ldr r2, [sp, #8] + ldr r1, [sp, #4] + mov r0, #0 + add r1, #0x68 + ldr r2, [r2, #0x60] + add r3, r0, #0 + str r1, [sp, #4] + bl MOD20_02253A04 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_02254CB4: .word 0x02254D60 + thumb_func_end MOD49_02254C04 + + thumb_func_start MOD49_02254CB8 +MOD49_02254CB8: ; 0x02254CB8 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 + add r7, r4, #0 +_02254CC2: + ldr r1, [r5, #0x24] + cmp r1, #0 + beq _02254CD0 + ldr r0, [r6, #0x20] + bl MOD20_02253F14 + str r7, [r5, #0x24] +_02254CD0: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xc + blt _02254CC2 + add r6, #0x54 + add r0, r6, #0 + bl MOD20_02254014 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD49_02254CB8 + + .section .rodata + ; 0x02254CE4 + .incbin "baserom.nds", 0x2984a4, 0x13C + + .section .sinit + .word MOD49_02254840 diff --git a/arm9/modules/50/asm/module_50.s b/arm9/modules/50/asm/module_50.s new file mode 100644 index 00000000..734eadea --- /dev/null +++ b/arm9/modules/50/asm/module_50.s @@ -0,0 +1,409 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD50_02254840 +MOD50_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD50_02254854 + ldr r1, _02254850 ; =MOD50_02254908 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD50_02254854 +_02254850: .word MOD50_02254908 + thumb_func_end MOD50_02254840 + + thumb_func_start MOD50_02254854 +MOD50_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + mov r0, #8 + mov r1, #0x10 + str r2, [sp] + add r5, r3, #0 + bl FUN_02016998 + add r4, r0, #0 + beq _02254894 + ldr r2, [sp] + add r1, r7, #0 + add r3, r5, #0 + bl MOD50_0225489C + cmp r0, #0 + beq _0225488E + ldr r0, _02254898 ; =MOD50_022548D4 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488E + str r4, [r6] + str r5, [r4, #4] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488E: + add r0, r4, #0 + bl FUN_02016A18 +_02254894: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254898: .word MOD50_022548D4 + thumb_func_end MOD50_02254854 + + thumb_func_start MOD50_0225489C +MOD50_0225489C: ; 0x0225489C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r0, #8 + add r1, r5, #4 + bl MOD50_022549AC + cmp r0, #0 + beq _022548BC + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + str r4, [r5, #0xc] + mov r0, #1 + pop {r3, r4, r5, pc} +_022548BC: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD50_0225489C + + thumb_func_start MOD50_022548C0 +MOD50_022548C0: ; 0x022548C0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + bl MOD50_022549E0 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD50_022548C0 + + thumb_func_start MOD50_022548D4 +MOD50_022548D4: ; 0x022548D4 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4] + add r5, r0, #0 + cmp r1, #3 + bhs _02254900 + lsl r2, r1, #2 + ldr r1, _02254904 ; =0x02254B04 + add r0, r4, #0 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254900 + add r0, r4, #0 + bl MOD50_022548C0 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0xc] + bl MOD20_022529A0 +_02254900: + pop {r3, r4, r5, pc} + nop +_02254904: .word 0x02254B04 + thumb_func_end MOD50_022548D4 + + thumb_func_start MOD50_02254908 +MOD50_02254908: ; 0x02254908 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD50_02254908 + + thumb_func_start MOD50_02254910 +MOD50_02254910: ; 0x02254910 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254918 + b _0225491A +_02254918: + mov r1, #2 +_0225491A: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD50_02254910 + + thumb_func_start MOD50_02254924 +MOD50_02254924: ; 0x02254924 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254934 + cmp r0, #1 + beq _02254944 + b _0225495E +_02254934: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD50_022549F8 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _0225495E +_02254944: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD50_02254A1C + cmp r0, #0 + beq _0225495E + ldr r0, [r4, #0xc] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD50_02254910 +_0225495E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD50_02254924 + + thumb_func_start MOD50_02254964 +MOD50_02254964: ; 0x02254964 + push {r3, lr} + ldrb r1, [r0, #2] + cmp r1, #0 + beq _02254972 + mov r1, #2 + bl MOD50_02254910 +_02254972: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD50_02254964 + + thumb_func_start MOD50_02254978 +MOD50_02254978: ; 0x02254978 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254988 + cmp r0, #1 + beq _02254998 + b _022549A6 +_02254988: + ldr r0, [r4, #8] + mov r1, #1 + bl MOD50_022549F8 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549A6 +_02254998: + ldr r0, [r4, #8] + bl MOD50_02254A28 + cmp r0, #0 + beq _022549A6 + mov r0, #1 + pop {r4, pc} +_022549A6: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD50_02254978 + + thumb_func_start MOD50_022549AC +MOD50_022549AC: ; 0x022549AC + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x30 + bl FUN_02016998 + add r4, r0, #0 + beq _022549DA + add r0, #8 + mov r1, #8 + bl MOD20_022536F4 + mov r0, #8 + str r6, [r4] + bl FUN_02016B94 + str r0, [r4, #4] + cmp r0, #0 + beq _022549DA + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_022549DA: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD50_022549AC + + thumb_func_start MOD50_022549E0 +MOD50_022549E0: ; 0x022549E0 + push {r4, lr} + add r4, r0, #0 + beq _022549F6 + ldr r0, [r4, #4] + cmp r0, #0 + beq _022549F0 + bl FUN_02016A18 +_022549F0: + add r0, r4, #0 + bl FUN_02016A18 +_022549F6: + pop {r4, pc} + thumb_func_end MOD50_022549E0 + + thumb_func_start MOD50_022549F8 +MOD50_022549F8: ; 0x022549F8 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254A18 ; =0x02254B2C + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254A18: .word 0x02254B2C + thumb_func_end MOD50_022549F8 + + thumb_func_start MOD50_02254A1C +MOD50_02254A1C: ; 0x02254A1C + ldr r3, _02254A24 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254A24: .word MOD20_02253794 + thumb_func_end MOD50_02254A1C + + thumb_func_start MOD50_02254A28 +MOD50_02254A28: ; 0x02254A28 + ldr r3, _02254A30 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254A30: .word MOD20_022537B8 + thumb_func_end MOD50_02254A28 + + thumb_func_start MOD50_02254A34 +MOD50_02254A34: ; 0x02254A34 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD50_02254A34 + + thumb_func_start MOD50_02254A48 +MOD50_02254A48: ; 0x02254A48 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254ADC ; =0x02254B10 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r1, #8 + str r1, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r3, #6 + bl FUN_0200687C + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r5, #4] + mov r1, #6 + add r3, r2, #0 + bl FUN_02018540 + mov r0, #0x20 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #0xc + mov r1, #9 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + ldr r1, [r5] + ldr r0, [r5, #4] + ldr r1, [r1] + mov r2, #6 + bl MOD20_02253AA4 + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254AE0 ; =0x04001000 + ldr r0, _02254AE4 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD50_02254A34 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 +_02254ADC: .word 0x02254B10 +_02254AE0: .word 0x04001000 +_02254AE4: .word 0xFFFFE0FF + thumb_func_end MOD50_02254A48 + + thumb_func_start MOD50_02254AE8 +MOD50_02254AE8: ; 0x02254AE8 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + bl MOD50_02254A34 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD50_02254AE8 + + .section .rodata + ; 0x02254B04 + .incbin "baserom.nds", 0x2988c4, 0x4C + + .section .sinit + .word MOD50_02254840 diff --git a/arm9/modules/51/asm/module_51.s b/arm9/modules/51/asm/module_51.s new file mode 100644 index 00000000..94a4dd93 --- /dev/null +++ b/arm9/modules/51/asm/module_51.s @@ -0,0 +1,1911 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD51_02254840 +MOD51_02254840: ; 0x02254840 + push {r4, lr} + add r4, r1, #0 + ldr r1, [r4, #0xc] + ldr r0, [r4, #0x14] + ldr r1, [r1, #0x7c] + cmp r1, #0 + beq _022548EE + ldr r1, [r4] + cmp r1, #3 + bhi _022548EE + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02254860: ; jump table + .short _02254868 - _02254860 - 2 ; case 0 + .short _0225487A - _02254860 - 2 ; case 1 + .short _022548D0 - _02254860 - 2 ; case 2 + .short _022548EE - _02254860 - 2 ; case 3 +_02254868: + bl MOD51_02254B54 + add r0, r4, #0 + bl MOD51_022548F0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + pop {r4, pc} +_0225487A: + add r0, r4, #0 + bl MOD51_02254C80 + add r0, r4, #0 + bl MOD51_02254D50 + mov r0, #1 + mov r1, #4 + bl FUN_02002C84 + mov r1, #0x72 + lsl r1, r1, #2 + ldr r0, [r4, #0x14] + add r1, r4, r1 + bl MOD51_02254944 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E74C + mov r0, #2 + mov r1, #1 + bl FUN_0201E74C + mov r0, #4 + mov r1, #1 + bl FUN_0201E74C + mov r0, #8 + mov r1, #1 + bl FUN_0201E74C + add r0, r4, #0 + bl MOD51_0225571C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + pop {r4, pc} +_022548D0: + add r0, r4, #0 + bl MOD51_02255690 + add r0, r4, #0 + bl MOD51_02255030 + add r0, r4, #0 + bl MOD51_022552FC + add r0, r4, #0 + bl MOD51_02254F30 + ldr r0, [r4, #0x28] + bl FUN_0201FDEC +_022548EE: + pop {r4, pc} + thumb_func_end MOD51_02254840 + + thumb_func_start MOD51_022548F0 +MOD51_022548F0: ; 0x022548F0 + push {r3, r4, lr} + sub sp, #4 + mov r1, #0xa1 + lsl r1, r1, #2 + add r4, r0, #0 + mov r2, #0 + add r0, r1, #0 + str r2, [r4, r1] + sub r0, #0x10 + strh r2, [r4, r0] + add r0, r1, #0 + sub r0, #0xe + strh r2, [r4, r0] + add r0, r1, #0 + sub r0, #0xc + strh r2, [r4, r0] + sub r1, #0xa + mov r0, #4 + strh r2, [r4, r1] + bl FUN_0200AA80 + mov r2, #9 + str r0, [r4, #0x18] + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #6 + mov r3, #4 + bl FUN_0200A86C + str r0, [r4, #0x1c] + mov r0, #4 + add r3, r4, #0 + str r0, [sp] + mov r0, #0x4a + mov r1, #3 + mov r2, #1 + add r3, #0x24 + bl FUN_02006BDC + str r0, [r4, #0x20] + add sp, #4 + pop {r3, r4, pc} + thumb_func_end MOD51_022548F0 + + thumb_func_start MOD51_02254944 +MOD51_02254944: ; 0x02254944 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r7, r0, #0 + mov r0, #0xa0 + str r0, [sp, #0x20] + mov r0, #0xd0 + str r0, [sp, #0x1c] + mov r0, #3 + str r0, [sp, #0x18] + ldr r0, _02254A3C ; =0x00000265 + add r5, r1, #0 + mov r4, #0 + mov r6, #1 + str r0, [sp, #0x14] +_02254960: + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r0, [sp, #0x20] + add r2, r4, #4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r2, r2, #0x18 + str r0, [sp, #0x10] + add r0, r7, #0 + add r1, r5, #0 + lsr r2, r2, #0x18 + mov r3, #1 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r0, r5, #0 + bl FUN_020191D0 + ldr r0, [sp, #0x18] + add r2, r4, #4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #5 + str r0, [sp, #8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r0, [sp, #0x1c] + add r1, r5, #0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r2, r2, #0x18 + str r0, [sp, #0x10] + add r0, r7, #0 + add r1, #0x10 + lsr r2, r2, #0x18 + mov r3, #2 + bl FUN_02019064 + add r0, r5, #0 + add r0, #0x10 + mov r1, #0 + bl FUN_02019620 + add r0, r5, #0 + add r0, #0x10 + bl FUN_020191D0 + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0xf + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r0, [sp, #0x14] + add r2, r4, #4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r1, r5, #0 + lsl r2, r2, #0x18 + str r0, [sp, #0x10] + add r0, r7, #0 + add r1, #0x20 + lsr r2, r2, #0x18 + mov r3, #0xc + bl FUN_02019064 + add r0, r5, #0 + add r0, #0x20 + mov r1, #0 + bl FUN_02019620 + add r0, r5, #0 + add r0, #0x20 + bl FUN_020191D0 + ldr r0, [sp, #0x20] + add r4, r4, #1 + add r0, #0x10 + str r0, [sp, #0x20] + ldr r0, [sp, #0x1c] + add r6, #8 + add r0, #0x87 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x18] + add r5, #0x38 + add r0, #8 + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + add r0, #0x1e + str r0, [sp, #0x14] + cmp r4, #3 + blt _02254960 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02254A3C: .word 0x00000265 + thumb_func_end MOD51_02254944 + + thumb_func_start MOD51_02254A40 +MOD51_02254A40: ; 0x02254A40 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_02254A46: + add r0, r5, #0 + add r0, #0x10 + bl FUN_02019178 + add r0, r5, #0 + bl FUN_02019178 + add r0, r5, #0 + add r0, #0x20 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x38 + cmp r4, #3 + blt _02254A46 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD51_02254A40 + + thumb_func_start MOD51_02254A68 +MOD51_02254A68: ; 0x02254A68 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r1, #0xa3 + mov r2, #4 + ldr r0, _02254AB0 ; =MOD51_02254840 + lsl r1, r1, #2 + add r3, r2, #0 + bl FUN_020061E8 + add r6, r0, #0 + bl FUN_0201B6C8 + add r4, r0, #0 + str r5, [r4, #0xc] + ldr r0, [r5, #8] + str r0, [r4, #0x14] + ldr r0, [r5, #0x7c] + str r0, [r4, #4] + ldr r0, [r5, #0x78] + str r0, [r4, #8] + ldr r0, [r5, #0xc] + bl FUN_020238F4 + str r0, [r4, #0x10] + mov r0, #0 + mov r1, #0xa2 + str r0, [r4] + lsl r1, r1, #2 + str r6, [r4, r1] + ldr r2, [r5, #0x7c] + ldr r0, _02254AB4 ; =0x000004DC + sub r1, #0x18 + ldr r0, [r2, r0] + str r0, [r4, r1] + add r0, r4, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_02254AB0: .word MOD51_02254840 +_02254AB4: .word 0x000004DC + thumb_func_end MOD51_02254A68 + + thumb_func_start MOD51_02254AB8 +MOD51_02254AB8: ; 0x02254AB8 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, [r6] + cmp r0, #2 + bne _02254B2C + ldr r0, [r6, #0x14] + str r0, [sp] + mov r0, #3 + str r0, [r6] + mov r0, #1 + bl FUN_02002CC0 + mov r0, #0x59 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0x5a + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r7, #0x55 + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_02254AEC: + ldr r0, [r5, r7] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _02254AEC + ldr r0, [r6, #0x28] + bl FUN_0201FD58 + ldr r0, [r6, #0x1c] + bl FUN_0200A8B8 + ldr r0, [r6, #0x18] + bl FUN_0200AB18 + mov r0, #0x72 + lsl r0, r0, #2 + add r0, r6, r0 + bl MOD51_02254A40 + ldr r0, [sp] + bl MOD51_02254B30 + ldr r0, [r6, #0x20] + bl FUN_02016A18 + mov r0, #0xa2 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_0200621C +_02254B2C: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD51_02254AB8 + + thumb_func_start MOD51_02254B30 +MOD51_02254B30: ; 0x02254B30 + push {r4, lr} + add r4, r0, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #7 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD51_02254B30 + + thumb_func_start MOD51_02254B54 +MOD51_02254B54: ; 0x02254B54 + push {r3, r4, r5, lr} + sub sp, #0x80 + add r4, r0, #0 + bl MOD51_02254B30 + ldr r5, _02254C70 ; =0x022557A8 + add r3, sp, #0x64 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + mov r0, #1 + mov r1, #0 + bl FUN_0201E74C + ldr r5, _02254C74 ; =0x0225578C + add r3, sp, #0x48 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #5 + bl FUN_02018744 + mov r0, #2 + mov r1, #0 + bl FUN_0201E74C + ldr r5, _02254C78 ; =0x022557C4 + add r3, sp, #0x2c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #6 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #6 + bl FUN_02018744 + mov r0, #4 + mov r1, #0 + bl FUN_0201E74C + ldr r5, _02254C7C ; =0x02255754 + add r3, sp, #0x10 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #7 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #8 + mov r1, #0 + bl FUN_0201E74C + mov r0, #0x60 + mov r1, #0 + str r0, [sp] + mov r2, #4 + mov r0, #0x4a + add r3, r1, #0 + str r2, [sp, #4] + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + mov r0, #5 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #4 + str r0, [sp, #0xc] + mov r0, #0x4a + mov r1, #2 + add r2, r4, #0 + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r1, #4 + mov r0, #0x4a + add r2, r4, #0 + mov r3, #7 + str r1, [sp, #0xc] + bl FUN_020068C8 + mov r0, #4 + mov r1, #0 + bl FUN_02054590 + add sp, #0x80 + pop {r3, r4, r5, pc} + nop +_02254C70: .word 0x022557A8 +_02254C74: .word 0x0225578C +_02254C78: .word 0x022557C4 +_02254C7C: .word 0x02255754 + thumb_func_end MOD51_02254B54 + + thumb_func_start MOD51_02254C80 +MOD51_02254C80: ; 0x02254C80 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r6, r0, #0 + add r1, r6, #0 + mov r0, #0xa + add r1, #0x2c + mov r2, #4 + bl FUN_02008C9C + mov r7, #0x55 + str r0, [r6, #0x28] + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_02254C9C: + mov r0, #1 + add r1, r4, #0 + mov r2, #4 + bl FUN_02008DEC + str r0, [r5, r7] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _02254C9C + ldr r0, _02254D4C ; =0x000003E7 + mov r1, #0x4a + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0x55 + lsl r0, r0, #2 + ldr r0, [r6, r0] + mov r2, #5 + mov r3, #1 + bl FUN_02008F34 + mov r1, #0x59 + lsl r1, r1, #2 + str r0, [r6, r1] + ldr r0, _02254D4C ; =0x000003E7 + mov r2, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + str r2, [sp, #8] + mov r0, #4 + sub r1, #0xc + str r0, [sp, #0xc] + ldr r0, [r6, r1] + mov r1, #0x4a + mov r3, #0 + bl FUN_02008FEC + mov r1, #0x5a + lsl r1, r1, #2 + str r0, [r6, r1] + ldr r0, _02254D4C ; =0x000003E7 + sub r1, #0xc + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + ldr r0, [r6, r1] + mov r1, #0x4a + mov r2, #6 + mov r3, #1 + bl FUN_020090AC + mov r1, #0x5b + lsl r1, r1, #2 + str r0, [r6, r1] + ldr r0, _02254D4C ; =0x000003E7 + sub r1, #0xc + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + ldr r0, [r6, r1] + mov r1, #0x4a + mov r2, #7 + mov r3, #1 + bl FUN_020090AC + mov r1, #0x17 + lsl r1, r1, #4 + str r0, [r6, r1] + sub r1, #0xc + ldr r0, [r6, r1] + bl FUN_02009B04 + mov r0, #0x5a + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009D68 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254D4C: .word 0x000003E7 + thumb_func_end MOD51_02254C80 + + thumb_func_start MOD51_02254D50 +MOD51_02254D50: ; 0x02254D50 + push {r4, r5, r6, r7, lr} + sub sp, #0x5c + ldr r1, _02254E28 ; =0x000003E7 + add r5, r0, #0 + mov r0, #0 + str r1, [sp] + mvn r0, r0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + mov r3, #0x55 + str r0, [sp, #0x10] + lsl r3, r3, #2 + ldr r2, [r5, r3] + str r2, [sp, #0x14] + add r2, r3, #4 + ldr r2, [r5, r2] + str r2, [sp, #0x18] + add r2, r3, #0 + add r2, #8 + ldr r2, [r5, r2] + str r2, [sp, #0x1c] + add r2, r3, #0 + add r2, #0xc + ldr r2, [r5, r2] + add r3, #0x20 + str r2, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r5, r3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02008AA4 + ldr r0, [r5, #0x28] + mov r4, #0 + str r0, [sp, #0x2c] + mov r0, #0x5d + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [sp, #0x30] + mov r0, #1 + lsl r0, r0, #0xc + mov r7, #0x3f + str r4, [sp, #0x3c] + str r0, [sp, #0x40] + str r0, [sp, #0x44] + str r0, [sp, #0x48] + add r0, sp, #0x2c + strh r4, [r0, #0x20] + mov r0, #2 + str r0, [sp, #0x54] + mov r0, #4 + ldr r6, _02254E2C ; =0x02255734 + str r4, [sp, #0x50] + str r0, [sp, #0x58] + lsl r7, r7, #0x18 +_02254DC4: + mov r0, #0x3a + lsl r0, r0, #0xe + str r0, [sp, #0x34] + ldr r0, [r6] + cmp r0, #0 + ble _02254DE0 + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + add r0, r7, #0 + bl _fadd + b _02254DEC +_02254DE0: + lsl r0, r0, #0xc + bl _fflt + add r1, r7, #0 + bl _fsub +_02254DEC: + bl _ffix + mov r1, #3 + lsl r1, r1, #0x12 + add r0, r0, r1 + str r0, [sp, #0x38] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #0x66 + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x66 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_02020130 + add r4, r4, #1 + add r6, r6, #4 + add r5, r5, #4 + cmp r4, #3 + blt _02254DC4 + add sp, #0x5c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02254E28: .word 0x000003E7 +_02254E2C: .word 0x02255734 + thumb_func_end MOD51_02254D50 + + thumb_func_start MOD51_02254E30 +MOD51_02254E30: ; 0x02254E30 + add r1, r1, #1 + cmp r1, #0x1e + bne _02254E38 + mov r1, #0 +_02254E38: + add r0, r1, #0 + bx lr + thumb_func_end MOD51_02254E30 + + thumb_func_start MOD51_02254E3C +MOD51_02254E3C: ; 0x02254E3C + add r0, r0, r1 + cmp r0, #0x1e + blt _02254E44 + sub r0, #0x1e +_02254E44: + bx lr + .align 2, 0 + thumb_func_end MOD51_02254E3C + + thumb_func_start MOD51_02254E48 +MOD51_02254E48: ; 0x02254E48 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r3, r1, #0 + add r5, r0, #0 + add r4, r3, #0 + mov r0, #0x38 + mul r4, r0 + mov r0, #0x7e + add r6, r2, #0 + lsl r0, r0, #2 + add r1, r5, r0 + ldr r0, [r6, #0x10] + mov r2, #8 + str r0, [r1, r4] + mov r0, #0x20 + str r0, [sp] + str r2, [sp, #4] + ldr r2, [r5, #0x24] + mov r7, #0 + add r2, #0xc + str r2, [sp, #8] + str r7, [sp, #0xc] + ldr r2, [r1, r4] + mov r1, #0x18 + mul r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x10] + str r0, [sp, #0x14] + mov r0, #0x30 + str r0, [sp, #0x18] + lsl r3, r3, #0x1b + ldr r0, [r5, #0x14] + mov r1, #7 + add r2, r7, #0 + lsr r3, r3, #0x18 + bl FUN_02018170 + mov r0, #0x72 + lsl r0, r0, #2 + add r7, r5, r0 + add r0, r7, r4 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x76 + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [sp, #0x1c] + add r0, r0, r4 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x7a + lsl r0, r0, #2 + add r5, r5, r0 + add r0, r5, r4 + mov r1, #0 + bl FUN_02019620 + mov r0, #2 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02254F2C ; =0x00010200 + mov r3, #0 + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r2, [r6] + add r0, r7, r4 + mov r1, #1 + bl FUN_0201BDE0 + mov r0, #6 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02254F2C ; =0x00010200 + mov r3, #0 + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r0, [sp, #0x1c] + ldr r2, [r6, #4] + add r0, r0, r4 + mov r1, #1 + bl FUN_0201BDE0 + add r0, r7, r4 + bl FUN_02019220 + ldr r0, [sp, #0x1c] + add r0, r0, r4 + bl FUN_02019220 + ldr r2, [r6, #8] + cmp r2, #0 + beq _02254F22 + mov r0, #2 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02254F2C ; =0x00010200 + mov r3, #0 + str r0, [sp, #8] + add r0, r5, r4 + mov r1, #1 + str r3, [sp, #0xc] + bl FUN_0201BDE0 +_02254F22: + add r0, r5, r4 + bl FUN_02019220 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254F2C: .word 0x00010200 + thumb_func_end MOD51_02254E48 + + thumb_func_start MOD51_02254F30 +MOD51_02254F30: ; 0x02254F30 + push {r3, r4, r5, r6, r7, lr} + mov r1, #0x27 + add r5, r0, #0 + lsl r1, r1, #4 + add r0, r1, #0 + ldr r2, [r5, r1] + add r1, #8 + add r0, #0xdc + ldrh r1, [r5, r1] + ldr r0, [r2, r0] + bl MOD51_02254E3C + add r6, r0, #0 + mov r0, #0x27 + lsl r0, r0, #4 + ldr r1, [r5, r0] + add r0, #0xd8 + ldr r7, [r1, r0] + cmp r7, #3 + ble _02254F5A + mov r7, #3 +_02254F5A: + mov r0, #0x9e + lsl r0, r0, #2 + ldrh r1, [r5, r0] + add r0, r0, #4 + ldr r0, [r5, r0] + cmp r1, r0 + beq _02254F78 + add r0, r5, #0 + bl MOD51_0225571C + mov r0, #0x9e + lsl r0, r0, #2 + ldrh r1, [r5, r0] + add r0, r0, #4 + str r1, [r5, r0] +_02254F78: + mov r0, #0xa1 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #1 + bne _02254FE2 + mov r4, #0 + cmp r7, #0 + ble _02254FB0 +_02254F88: + mov r2, #0x27 + lsl r2, r2, #4 + mov r3, #0x1c + ldr r2, [r5, r2] + mul r3, r6 + add r0, r5, #0 + add r1, r4, #0 + add r2, r2, r3 + bl MOD51_02254E48 + mov r0, #0x27 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + bl MOD51_02254E30 + add r4, r4, #1 + add r6, r0, #0 + cmp r4, r7 + blt _02254F88 +_02254FB0: + ldr r0, [r5, #0x14] + mov r1, #7 + bl FUN_0201886C + mov r1, #6 + lsl r1, r1, #8 + bl DC_FlushRange + ldr r0, [r5, #0x14] + mov r1, #7 + bl FUN_0201886C + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + mov r3, #6 + ldr r0, [r5, #0x14] + mov r1, #7 + lsl r3, r3, #8 + bl FUN_02017CE8 + mov r0, #0xa1 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] +_02254FE2: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD51_02254F30 + + thumb_func_start MOD51_02254FE4 +MOD51_02254FE4: ; 0x02254FE4 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #0x3a + lsl r0, r0, #0xe + str r0, [sp] + cmp r1, #0 + ble _02255006 + lsl r0, r1, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _02255014 +_02255006: + lsl r0, r1, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_02255014: + bl _ffix + mov r1, #3 + lsl r1, r1, #0x12 + add r0, r0, r1 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, sp, #0 + bl FUN_02020044 + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD51_02254FE4 + + thumb_func_start MOD51_02255030 +MOD51_02255030: ; 0x02255030 + push {r4, lr} + mov r1, #0x27 + add r4, r0, #0 + lsl r1, r1, #4 + add r0, r1, #0 + ldr r2, [r4, r1] + add r0, #0xd8 + ldr r2, [r2, r0] + add r0, r1, #4 + strh r2, [r4, r0] + ldrh r0, [r4, r0] + cmp r0, #3 + bls _02255060 + add r0, r1, #6 + ldrh r0, [r4, r0] + cmp r0, #3 + bhi _02255060 + add r0, r1, #0 + mov r2, #1 + add r0, #0xa + strh r2, [r4, r0] + mov r0, #0 + add r1, #8 + strh r0, [r4, r1] +_02255060: + mov r1, #0x1a + lsl r1, r1, #4 + ldr r0, [r4, r1] + add r1, #0xda + ldrh r1, [r4, r1] + bl FUN_020200A0 + ldr r0, _022550AC ; =0x0000027A + ldrh r0, [r4, r0] + cmp r0, #0 + beq _022550A0 + bl FUN_02020A98 + cmp r0, #0 + bne _022550A0 + mov r1, #0x9e + lsl r1, r1, #2 + ldrh r2, [r4, r1] + sub r1, r1, #4 + ldrh r1, [r4, r1] + mov r0, #0x60 + mul r0, r2 + sub r1, r1, #3 + bl _s32_div_f + add r1, r0, #0 + mov r0, #0x1a + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, #0x30 + bl MOD51_02254FE4 +_022550A0: + mov r0, #0x9d + lsl r0, r0, #2 + ldrh r1, [r4, r0] + add r0, r0, #2 + strh r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_022550AC: .word 0x0000027A + thumb_func_end MOD51_02255030 + + thumb_func_start MOD51_022550B0 +MOD51_022550B0: ; 0x022550B0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, _022551D8 ; =0x02255770 + bl FUN_02020988 + add r7, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r7, r0 + bne _022550C6 + b _022551D2 +_022550C6: + cmp r7, #0 + beq _022550D4 + cmp r7, #1 + beq _02255100 + cmp r7, #5 + beq _022551CA + b _02255132 +_022550D4: + lsl r0, r7, #2 + add r1, r5, r0 + mov r0, #0x66 + lsl r0, r0, #2 + ldr r0, [r1, r0] + add r1, r7, #4 + bl FUN_02020130 + mov r0, #0x9e + lsl r0, r0, #2 + ldrh r0, [r5, r0] + cmp r0, #0 + beq _022551CA + ldr r0, _022551DC ; =0x000005E5 + bl FUN_020054C8 + mov r0, #0x9e + lsl r0, r0, #2 + ldrh r1, [r5, r0] + sub r1, r1, #1 + strh r1, [r5, r0] + b _022551CA +_02255100: + lsl r0, r7, #2 + add r1, r5, r0 + mov r0, #0x66 + lsl r0, r0, #2 + ldr r0, [r1, r0] + add r1, r7, #4 + bl FUN_02020130 + mov r0, #0x9e + lsl r0, r0, #2 + ldrh r1, [r5, r0] + sub r0, r0, #4 + ldrh r0, [r5, r0] + sub r0, r0, #3 + cmp r1, r0 + bge _022551CA + ldr r0, _022551DC ; =0x000005E5 + bl FUN_020054C8 + mov r0, #0x9e + lsl r0, r0, #2 + ldrh r1, [r5, r0] + add r1, r1, #1 + strh r1, [r5, r0] + b _022551CA +_02255132: + mov r2, #0x27 + lsl r2, r2, #4 + add r1, r2, #0 + ldr r0, [r5, r2] + add r1, #0xd8 + ldr r3, [r0, r1] + sub r1, r7, #1 + cmp r3, r1 + blt _022551CA + add r1, r2, #0 + add r1, #0xdc + add r2, #8 + ldr r0, [r0, r1] + ldrh r1, [r5, r2] + add r1, r1, r7 + sub r1, r1, #2 + bl MOD51_02254E3C + mov r1, #0x1c + mov r4, #0 + mul r1, r0 + add r6, r4, #0 + str r1, [sp] +_02255160: + add r0, r4, #0 + bl FUN_0202EF18 + cmp r0, #0 + beq _0225519C + ldr r1, [r5, #4] + add r0, #0x50 + add r1, r1, r6 + ldrb r1, [r1, #0xd] + cmp r1, #2 + bne _0225519C + mov r1, #0x27 + lsl r1, r1, #4 + ldr r2, [r5, r1] + ldr r1, [sp] + ldr r0, [r0] + add r1, r1, r2 + ldr r1, [r1, #0xc] + cmp r0, r1 + bne _0225519C + ldr r0, _022551DC ; =0x000005E5 + bl FUN_020054C8 + mov r1, #0x18 + ldr r2, [r5, #4] + mul r1, r4 + mov r0, #1 + add r1, r2, r1 + strb r0, [r1, #0xf] + b _022551A4 +_0225519C: + add r4, r4, #1 + add r6, #0x18 + cmp r4, #0xa + blt _02255160 +_022551A4: + bl FUN_0202EF70 + bl FUN_020239BC + mov r1, #0x27 + lsl r1, r1, #4 + ldr r2, [r5, r1] + ldr r1, [sp] + add r1, r2, r1 + ldr r1, [r1, #0xc] + cmp r1, r0 + bne _022551CA + ldr r0, _022551DC ; =0x000005E5 + bl FUN_020054C8 + ldr r1, [r5, #4] + ldr r0, _022551E0 ; =0x000004BF + mov r2, #1 + strb r2, [r1, r0] +_022551CA: + mov r0, #0x71 + sub r1, r7, #2 + lsl r0, r0, #2 + str r1, [r5, r0] +_022551D2: + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_022551D8: .word 0x02255770 +_022551DC: .word 0x000005E5 +_022551E0: .word 0x000004BF + thumb_func_end MOD51_022550B0 + + thumb_func_start MOD51_022551E4 +MOD51_022551E4: ; 0x022551E4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r7, r0, #0 + ldr r0, _02255290 ; =0x02255740 + bl FUN_02020968 + mov r1, #0 + mvn r1, r1 + str r0, [sp] + cmp r0, r1 + beq _0225528A + cmp r0, #0 + bne _02255256 + add r0, sp, #8 + add r1, sp, #4 + bl FUN_02020AB0 + mov r0, #0x1a + lsl r0, r0, #4 + ldr r0, [r7, r0] + ldr r1, [sp, #4] + bl MOD51_02254FE4 + mov r0, #0x9d + lsl r0, r0, #2 + ldrh r0, [r7, r0] + cmp r0, #3 + bls _0225528A + sub r4, r0, #2 + mov r0, #0x60 + add r1, r4, #0 + bl _s32_div_f + mov r1, #0 + cmp r4, #0 + ble _0225528A + ldr r5, [sp, #4] + add r2, r1, #0 + add r3, r1, #0 +_02255232: + add r6, r2, #0 + add r6, #0x30 + cmp r5, r6 + blo _0225524A + add r6, r3, r0 + add r6, #0x30 + cmp r5, r6 + bhs _0225524A + mov r0, #0x9e + lsl r0, r0, #2 + strh r1, [r7, r0] + b _0225528A +_0225524A: + add r1, r1, #1 + add r2, r2, r0 + add r3, r3, r0 + cmp r1, r4 + blt _02255232 + b _0225528A +_02255256: + mov r1, #0x27 + lsl r1, r1, #4 + add r0, r1, #0 + ldr r2, [r7, r1] + add r0, #0xd8 + ldr r2, [r2, r0] + ldr r0, [sp] + cmp r2, r0 + blt _0225528A + add r0, r1, #0 + sub r0, #0xac + ldr r2, [r7, r0] + ldr r0, [sp] + sub r3, r0, #1 + cmp r2, r3 + bne _0225528A + sub r1, #0x74 + add r2, r7, r1 + mov r0, #0x38 + add r1, r3, #0 + mul r1, r0 + ldr r0, [r2, r1] + cmp r0, #5 + bge _0225528A + add r0, r0, #1 + str r0, [r2, r1] +_0225528A: + ldr r0, [sp] + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02255290: .word 0x02255740 + thumb_func_end MOD51_022551E4 + + thumb_func_start MOD51_02255294 +MOD51_02255294: ; 0x02255294 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022552F4 ; =0x021C48B8 + mov r1, #2 + ldr r2, [r0, #0x48] + lsl r1, r1, #8 + add r0, r2, #0 + tst r0, r1 + beq _022552C6 + sub r1, #0x68 + ldr r0, [r4, r1] + mov r1, #4 + bl FUN_02020130 + mov r0, #0x9e + lsl r0, r0, #2 + ldrh r1, [r4, r0] + cmp r1, #0 + beq _022552F0 + sub r1, r1, #1 + strh r1, [r4, r0] + ldr r0, _022552F8 ; =0x000005E5 + bl FUN_020054C8 + pop {r4, pc} +_022552C6: + lsr r0, r1, #1 + tst r0, r2 + beq _022552F0 + sub r1, #0x64 + ldr r0, [r4, r1] + mov r1, #5 + bl FUN_02020130 + mov r0, #0x9e + lsl r0, r0, #2 + sub r1, r0, #4 + ldrh r1, [r4, r1] + ldrh r2, [r4, r0] + sub r1, r1, #3 + cmp r2, r1 + bge _022552F0 + add r1, r2, #1 + strh r1, [r4, r0] + ldr r0, _022552F8 ; =0x000005E5 + bl FUN_020054C8 +_022552F0: + pop {r4, pc} + nop +_022552F4: .word 0x021C48B8 +_022552F8: .word 0x000005E5 + thumb_func_end MOD51_02255294 + + thumb_func_start MOD51_022552FC +MOD51_022552FC: ; 0x022552FC + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, [r5, #0xc] + mov r4, #0 + mvn r4, r4 + bl FUN_0204646C + cmp r0, #0 + bne _02255332 + add r0, r5, #0 + bl MOD51_022550B0 + add r6, r0, #0 + add r0, r5, #0 + bl MOD51_022551E4 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + bne _02255332 + cmp r4, r0 + bne _02255332 + add r0, r5, #0 + bl MOD51_02255294 +_02255332: + mov r2, #0x27 + lsl r2, r2, #4 + add r0, r2, #0 + ldr r1, [r5, r2] + add r0, #0xd8 + ldr r0, [r1, r0] + sub r3, r4, #1 + str r0, [sp] + add r0, r2, #0 + add r0, #0x10 + add r0, r5, r0 + str r0, [sp, #4] + sub r2, #0xa8 + ldr r0, [r5, #0x14] + ldr r1, [r5, #0x24] + add r2, r5, r2 + bl MOD51_0225535C + add sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD51_022552FC + + thumb_func_start MOD51_0225535C +MOD51_0225535C: ; 0x0225535C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x40] + str r1, [sp, #0x20] + add r5, r2, #0 + mov r1, #0 + str r0, [sp, #0x40] + ldr r4, [sp, #0x44] + cmp r0, #3 + ble _02255376 + mov r0, #3 + str r0, [sp, #0x40] +_02255376: + ldr r2, [sp, #0x40] + mov r0, #0 + cmp r2, #0 + ble _0225539C + add r2, r5, #0 +_02255380: + cmp r3, r0 + beq _0225538E + ldr r6, [r2, #0x34] + cmp r6, #0 + beq _0225538E + sub r6, r6, #1 + str r6, [r2, #0x34] +_0225538E: + ldr r6, [r2, #0x34] + add r0, r0, #1 + add r1, r1, r6 + ldr r6, [sp, #0x40] + add r2, #0x38 + cmp r0, r6 + blt _02255380 +_0225539C: + cmp r1, #0 + bne _022553AC + ldr r0, [r4] + cmp r0, #0 + bne _022553AC + add sp, #0x28 + str r1, [r4] + pop {r3, r4, r5, r6, r7, pc} +_022553AC: + ldr r0, [sp, #0x40] + str r1, [r4] + mov r4, #0 + cmp r0, #0 + ble _02255422 + ldr r0, [sp, #0x20] + add r7, r4, #0 + add r0, #0xc + str r0, [sp, #0x20] +_022553BE: + ldr r1, [r5, #0x34] + lsl r3, r7, #0x18 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r0, r0, #1 + str r0, [sp, #0x24] + mov r0, #0x20 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + ldr r0, [sp, #0x20] + lsr r3, r3, #0x18 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x24] + ldr r1, [r5, #0x30] + lsl r2, r0, #3 + mov r0, #0x18 + mul r0, r1 + add r0, r2, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x10] + mov r0, #0x20 + str r0, [sp, #0x14] + mov r0, #0x30 + str r0, [sp, #0x18] + ldr r0, [sp, #0x1c] + mov r1, #7 + mov r2, #0 + bl FUN_02018170 + ldr r3, [sp, #0x24] + add r1, r4, #4 + lsl r6, r3, #2 + ldr r3, _02255450 ; =0x02255728 + lsl r1, r1, #0x18 + ldr r0, [sp, #0x1c] + ldr r3, [r3, r6] + lsr r1, r1, #0x18 + mov r2, #3 + bl FUN_020179E0 + ldr r0, [sp, #0x40] + add r4, r4, #1 + add r5, #0x38 + add r7, #8 + cmp r4, r0 + blt _022553BE +_02255422: + ldr r0, [sp, #0x1c] + mov r1, #7 + bl FUN_0201886C + mov r1, #6 + lsl r1, r1, #8 + bl DC_FlushRange + ldr r0, [sp, #0x1c] + mov r1, #7 + bl FUN_0201886C + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + mov r3, #6 + ldr r0, [sp, #0x1c] + mov r1, #7 + lsl r3, r3, #8 + bl FUN_02017CE8 + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02255450: .word 0x02255728 + thumb_func_end MOD51_0225535C + + thumb_func_start MOD51_02255454 +MOD51_02255454: ; 0x02255454 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r6, r0, #0 + mov r4, #0 + ldr r0, [sp, #0x28] + add r5, r1, #0 + add r7, r2, #0 + str r3, [sp, #8] + str r4, [sp, #0xc] + bl FUN_020239BC + cmp r5, r0 + beq _02255478 + add r0, r6, #0 + add r1, r5, #0 + bl FUN_02025614 + add r4, r0, #0 +_02255478: + cmp r4, #0 + ble _022554D8 + cmp r4, #1 + bne _0225548C + ldr r2, [sp, #0x28] + add r0, r7, #0 + mov r1, #0 + bl FUN_0200ABC0 + b _022554CA +_0225548C: + cmp r4, #2 + blt _022554CA + sub r5, r4, #2 + mov r0, #0xa + mov r1, #0x59 + bl FUN_020219F4 + add r4, r0, #0 + add r0, r6, #0 + add r1, r5, #0 + bl FUN_020254F0 + add r1, r0, #0 + add r0, r4, #0 + bl FUN_02021E28 + add r0, r6, #0 + add r1, r5, #0 + bl FUN_020254F8 + mov r1, #0 + str r1, [sp] + str r0, [sp, #4] + add r0, r7, #0 + add r2, r4, #0 + add r3, r1, #0 + bl FUN_0200ABB4 + add r0, r4, #0 + bl FUN_02021A20 +_022554CA: + ldr r1, [sp, #8] + add r0, r7, #0 + mov r2, #0xce + mov r3, #0x59 + bl FUN_0200A9C4 + str r0, [sp, #0xc] +_022554D8: + ldr r0, [sp, #0xc] + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD51_02255454 + + thumb_func_start MOD51_022554E0 +MOD51_022554E0: ; 0x022554E0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r7, r0, #0 + add r6, r2, #0 + ldr r2, [r7, #4] + ldr r0, _022555BC ; =0x000004D8 + str r1, [sp, #4] + mov r1, #0x27 + ldr r0, [r2, r0] + lsl r1, r1, #4 + str r0, [sp, #0xc] + add r0, r1, #0 + ldr r4, [r7, r1] + add r0, #0xd8 + ldr r0, [r4, r0] + str r3, [sp, #8] + cmp r0, #0x1e + bne _02255508 + add r1, #0xdc + b _0225550A +_02255508: + add r1, #0xd8 +_0225550A: + add r5, r4, r1 + ldr r1, [r5] + mov r0, #0x1c + mul r0, r1 + add r0, r4, r0 + ldr r0, [r0, #4] + cmp r0, #0 + beq _0225551E + bl FUN_02021A20 +_0225551E: + ldr r1, [r5] + mov r0, #0x1c + mul r0, r1 + add r0, r4, r0 + ldr r0, [r0, #8] + cmp r0, #0 + beq _02255530 + bl FUN_02021A20 +_02255530: + ldr r0, [sp, #8] + bl FUN_0202398C + add r1, r0, #0 + ldr r2, [r5] + mov r0, #0x1c + mul r0, r2 + ldr r0, [r4, r0] + bl FUN_02021E28 + ldr r0, [r5] + mov r1, #0x1c + add r2, r0, #0 + mul r2, r1 + add r0, r4, r2 + ldrh r2, [r6] + strh r2, [r0, #0x14] + ldrh r2, [r6, #2] + strh r2, [r0, #0x16] + ldrh r2, [r6, #4] + strh r2, [r0, #0x18] + ldrh r2, [r6, #6] + strh r2, [r0, #0x1a] + ldr r0, [r5] + mul r1, r0 + ldr r0, [sp, #4] + add r1, r4, r1 + str r0, [r1, #0xc] + ldr r0, [sp, #8] + bl FUN_020239CC + ldr r2, [r5] + mov r1, #0x1c + mul r1, r2 + add r1, r4, r1 + str r0, [r1, #0x10] + add r0, r6, #0 + mov r1, #0x59 + bl FUN_020137D4 + ldr r2, [r5] + mov r1, #0x1c + mul r1, r2 + add r1, r4, r1 + str r0, [r1, #4] + ldr r0, [r7, #0x10] + ldr r1, [sp, #4] + str r0, [sp] + ldr r0, [sp, #0xc] + ldr r2, [r7, #0x18] + ldr r3, [r7, #0x1c] + bl MOD51_02255454 + ldr r2, [r5] + mov r1, #0x1c + mul r1, r2 + add r1, r4, r1 + str r0, [r1, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + mov r0, #0xd3 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #0x1e + bne _022555B8 + mov r1, #0 + str r1, [r4, r0] +_022555B8: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022555BC: .word 0x000004D8 + thumb_func_end MOD51_022554E0 + + thumb_func_start MOD51_022555C0 +MOD51_022555C0: ; 0x022555C0 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r0, r1, #0 + str r1, [sp] + add r7, r2, #0 + bl FUN_0201385C + cmp r0, #0 + bne _022555D6 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022555D6: + mov r1, #0x27 + lsl r1, r1, #4 + ldr r0, [r6, r1] + add r1, #0xd8 + ldr r1, [r0, r1] + mov r4, #0 + cmp r1, #0 + ble _02255610 + add r5, r4, #0 +_022555E8: + add r1, r0, r5 + ldr r0, [r1, #0xc] + cmp r7, r0 + bne _022555FC + ldr r0, [sp] + add r1, #0x14 + bl FUN_02013928 + cmp r0, #0 + bne _02255610 +_022555FC: + mov r0, #0x27 + lsl r0, r0, #4 + mov r1, #0xd2 + ldr r0, [r6, r0] + lsl r1, r1, #2 + ldr r1, [r0, r1] + add r4, r4, #1 + add r5, #0x1c + cmp r4, r1 + blt _022555E8 +_02255610: + mov r0, #0x27 + lsl r0, r0, #4 + ldr r1, [r6, r0] + add r0, #0xd8 + ldr r0, [r1, r0] + cmp r4, r0 + beq _02255626 + cmp r0, #0 + beq _02255626 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_02255626: + mov r0, #0x1c + mul r0, r4 + add r1, r1, r0 + ldr r0, [r1, #0xc] + cmp r7, r0 + beq _0225563A + ldr r0, [sp] + add r1, #0x14 + bl FUN_02013928 +_0225563A: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD51_022555C0 + + thumb_func_start MOD51_02255640 +MOD51_02255640: ; 0x02255640 + push {r4, r5, r6, lr} + add r6, r1, #0 + mov r1, #0x9e + add r4, r0, #0 + lsl r1, r1, #2 + ldrh r0, [r4, r1] + sub r1, r1, #4 + ldrh r1, [r4, r1] + mov r5, #0 + sub r1, r1, #3 + cmp r0, r1 + bne _0225565A + mov r5, #1 +_0225565A: + add r1, r3, #0 + add r0, r4, #0 + add r3, r6, #0 + bl MOD51_022554E0 + ldr r1, _0225568C ; =0x0000027A + ldrh r0, [r4, r1] + cmp r0, #0 + beq _02255682 + cmp r5, #0 + beq _02255682 + add r0, r1, #0 + sub r0, #0xa + ldr r2, [r4, r0] + add r0, r1, #0 + add r0, #0xce + ldr r0, [r2, r0] + sub r2, r0, #3 + sub r0, r1, #2 + strh r2, [r4, r0] +_02255682: + add r0, r4, #0 + bl MOD51_0225571C + pop {r4, r5, r6, pc} + nop +_0225568C: .word 0x0000027A + thumb_func_end MOD51_02255640 + + thumb_func_start MOD51_02255690 +MOD51_02255690: ; 0x02255690 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + str r0, [sp] + ldr r0, [r0, #0xc] + bl FUN_0204646C + cmp r0, #0 + bne _02255714 + mov r0, #4 + bl FUN_02023928 + str r0, [sp, #4] + mov r6, #0 +_022556AA: + add r0, r6, #0 + bl FUN_0202EF18 + add r7, r0, #0 + beq _022556E6 + add r4, r7, #0 + add r4, #0x50 + ldr r0, _02255718 ; =0x02255800 + add r5, r4, #0 + add r5, #8 + str r4, [r0, #4] + str r5, [r0] + add r0, r4, #0 + ldr r1, [sp, #4] + add r0, #0x10 + bl FUN_0202393C + ldr r0, [sp] + ldr r2, [r7, #0x50] + add r1, r5, #0 + bl MOD51_022555C0 + cmp r0, #0 + beq _022556E6 + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r3, [r4] + add r2, r5, #0 + bl MOD51_02255640 +_022556E6: + add r6, r6, #1 + cmp r6, #0x10 + blt _022556AA + ldr r0, [sp] + ldr r0, [r0, #8] + bl FUN_02052CF0 + add r4, r0, #0 + beq _0225570E + ldr r0, [sp] + ldr r0, [r0, #0x10] + bl FUN_020239BC + add r3, r0, #0 + ldr r0, [sp] + add r2, r4, #0 + add r1, r0, #0 + ldr r1, [r1, #0x10] + bl MOD51_02255640 +_0225570E: + ldr r0, [sp, #4] + bl FUN_02016A18 +_02255714: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02255718: .word 0x02255800 + thumb_func_end MOD51_02255690 + + thumb_func_start MOD51_0225571C +MOD51_0225571C: ; 0x0225571C + mov r1, #0xa1 + mov r2, #1 + lsl r1, r1, #2 + str r2, [r0, r1] + bx lr + .align 2, 0 + thumb_func_end MOD51_0225571C + + .section .rodata + ; 0x02255728 + .incbin "baserom.nds", 0x2998E8, 0xB8 + + .section .bss + ; 0x2255800 + .space 4 diff --git a/arm9/modules/52/asm/module_52.s b/arm9/modules/52/asm/module_52.s new file mode 100644 index 00000000..24ecbec1 --- /dev/null +++ b/arm9/modules/52/asm/module_52.s @@ -0,0 +1,250 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD52_021D74E0 +MOD52_021D74E0: ; 0x021D74E0 + push {r3, lr} + mov r2, #2 + mov r0, #3 + mov r1, #0x4d + lsl r2, r2, #0x10 + bl FUN_0201681C + bl FUN_02000FA4 + mov r0, #1 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD52_021D74E0 + + thumb_func_start MOD52_021D74F8 +MOD52_021D74F8: ; 0x021D74F8 + push {r3, lr} + bl FUN_0200628C + ldr r1, [r0, #8] + mov r0, #0x4d + bl MOD52_021D769C + mov r0, #1 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD52_021D74F8 + + thumb_func_start MOD52_021D750C +MOD52_021D750C: ; 0x021D750C + push {r3, lr} + mov r0, #0x4d + bl FUN_020168D0 + mov r0, #0 + ldr r1, _021D7524 ; =0x020FD144 + mvn r0, r0 + bl FUN_02000E7C + mov r0, #1 + pop {r3, pc} + nop +_021D7524: .word 0x020FD144 + thumb_func_end MOD52_021D750C + + thumb_func_start MOD52_021D7528 +MOD52_021D7528: ; 0x021D7528 + push {r3, lr} + mov r2, #2 + mov r0, #3 + mov r1, #0x4d + lsl r2, r2, #0x10 + bl FUN_0201681C + bl FUN_02000FA4 + mov r0, #1 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD52_021D7528 + + thumb_func_start MOD52_021D7540 +MOD52_021D7540: ; 0x021D7540 + push {r4, lr} + bl FUN_0200628C + ldr r4, [r0, #8] + mov r0, #0x4d + add r1, r4, #0 + mov r2, #1 + bl MOD52_021D7604 + add r0, r4, #0 + bl FUN_02023918 + bl FUN_02015E3C + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD52_021D7540 + + thumb_func_start MOD52_021D7560 +MOD52_021D7560: ; 0x021D7560 + push {r3, lr} + mov r0, #0x4d + bl FUN_020168D0 + mov r0, #0 + ldr r1, _021D7578 ; =0x020F2B7C + mvn r0, r0 + bl FUN_02000E7C + mov r0, #1 + pop {r3, pc} + nop +_021D7578: .word 0x020F2B7C + thumb_func_end MOD52_021D7560 + + thumb_func_start MOD52_021D757C +MOD52_021D757C: ; 0x021D757C + push {r3, lr} + mov r2, #2 + mov r0, #3 + mov r1, #0x4d + lsl r2, r2, #0x10 + bl FUN_0201681C + bl FUN_02000FA4 + mov r0, #1 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD52_021D757C + + thumb_func_start MOD52_021D7594 +MOD52_021D7594: ; 0x021D7594 + push {r3, r4, r5, lr} + bl FUN_0200628C + ldr r4, [r0, #8] + add r0, r4, #0 + bl FUN_02023788 + add r5, r0, #0 + mov r0, #0x4d + add r1, r4, #0 + bl MOD52_021D7688 + add r0, r4, #0 + mov r1, #0 + bl FUN_02024F9C + add r0, r5, #0 + bl FUN_020237CC + cmp r0, #0 + beq _021D75C8 + add r0, r5, #0 + bl FUN_020237FC + cmp r0, #0 + bne _021D75D8 +_021D75C8: + add r0, r4, #0 + bl FUN_02023794 + bl FUN_020238A4 + add r0, r5, #0 + bl FUN_020237A0 +_021D75D8: + add r0, r4, #0 + bl FUN_02023918 + bl FUN_02015E3C + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD52_021D7594 + + thumb_func_start MOD52_021D75E8 +MOD52_021D75E8: ; 0x021D75E8 + push {r3, lr} + mov r0, #0x4d + bl FUN_020168D0 + mov r0, #0 + ldr r1, _021D7600 ; =0x020F2B8C + mvn r0, r0 + bl FUN_02000E7C + mov r0, #1 + pop {r3, pc} + nop +_021D7600: .word 0x020F2B8C + thumb_func_end MOD52_021D75E8 + + thumb_func_start MOD52_021D7604 +MOD52_021D7604: ; 0x021D7604 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + str r0, [sp] + add r0, r5, #0 + add r6, r2, #0 + bl FUN_02023788 + bl FUN_020237A0 + add r0, r5, #0 + bl FUN_02023794 + bl FUN_02023840 + add r0, r5, #0 + bl FUN_0202881C + add r4, r0, #0 + bl FUN_0201BA60 + add r2, r0, #0 + add r0, r4, #0 + mov r1, #1 + bl FUN_02028788 + add r0, r5, #0 + bl FUN_0206007C + add r0, r5, #0 + bl FUN_020238F4 + add r4, r0, #0 + bl FUN_0201BA60 + add r7, r0, #0 + cmp r6, #0 + beq _021D7656 + add r0, r4, #0 + add r1, r7, #0 + bl FUN_020239B8 +_021D7656: + add r0, r4, #0 + bl FUN_020239CC + add r1, r0, #0 + add r0, r7, #0 + mov r2, #0 + bl FUN_02053678 + add r1, r0, #0 + lsl r1, r1, #0x18 + add r0, r4, #0 + lsr r1, r1, #0x18 + bl FUN_02023A2C + add r0, r5, #0 + bl FUN_02024ECC + ldr r1, [sp] + ldr r2, _021D7684 ; =0x021D76F8 + mov r3, #0x76 + bl FUN_020250C4 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D7684: .word 0x021D76F8 + thumb_func_end MOD52_021D7604 + + thumb_func_start MOD52_021D7688 +MOD52_021D7688: ; 0x021D7688 + push {r3, lr} + add r0, r1, #0 + bl FUN_020226FC + cmp r0, #0 + bne _021D769A + mov r0, #0 + bl OS_ResetSystem +_021D769A: + pop {r3, pc} + thumb_func_end MOD52_021D7688 + + thumb_func_start MOD52_021D769C +MOD52_021D769C: ; 0x021D769C + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl FUN_020227DC + add r0, r4, #0 + bl FUN_020377E0 + add r0, r4, #0 + bl FUN_020238F4 + ldr r1, _021D76C4 ; =0x00000BB8 + bl FUN_02023A14 + add r0, r4, #0 + bl FUN_020462AC + bl FUN_0205ECD4 + pop {r4, pc} + .align 2, 0 +_021D76C4: .word 0x00000BB8 + thumb_func_end MOD52_021D769C + + .section .rodata + ; 0x021D76C8 + .global MOD52_UNK_021D76C8 +MOD52_UNK_021D76C8: ; 0x021D76C8 + .incbin "baserom.nds", 0x299BE8, 0x208 diff --git a/arm9/modules/53/asm/module_53.s b/arm9/modules/53/asm/module_53.s new file mode 100644 index 00000000..ce93b6bc --- /dev/null +++ b/arm9/modules/53/asm/module_53.s @@ -0,0 +1,4051 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD53_021D74E0 +MOD53_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, [r5] + add r6, r0, #0 + cmp r1, #0 + beq _021D74F6 + cmp r1, #1 + bne _021D74F4 + b _021D7622 +_021D74F4: + b _021D7630 +_021D74F6: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7638 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D763C ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #3 + mov r1, #0x27 + lsl r2, r2, #6 + bl FUN_0201681C + ldr r1, _021D7640 ; =0x0000940C + add r0, r6, #0 + mov r2, #0x27 + bl FUN_02006268 + ldr r2, _021D7640 ; =0x0000940C + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x27 + bl FUN_02016B94 + str r0, [r4] + mov r0, #0x27 + bl FUN_0200AA80 + str r0, [r4, #0xc] + ldr r2, _021D7644 ; =0x00000176 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x27 + bl FUN_0200A86C + str r0, [r4, #0x10] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + bl MOD53_021D78D0 + ldr r0, [r4] + bl MOD53_021D78F0 + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0x10 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x27 + str r0, [sp, #8] + mov r0, #0 + mov r1, #0x11 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add r0, r6, #0 + bl FUN_0200628C + str r0, [r4, #8] + add r0, r4, #0 + bl MOD53_021D7B60 + bl FUN_0201CC08 + mov r0, #2 + bl FUN_0201CC24 + ldr r0, _021D7648 ; =MOD53_021D78A8 + ldr r1, [r4] + bl FUN_02015F10 + add r0, r4, #0 + bl MOD53_021D79F8 + bl MOD53_021D7C54 + add r0, r4, #0 + bl MOD53_021D7C84 + add r0, r4, #0 + bl MOD53_021D7E08 + add r0, r4, #0 + add r1, r6, #0 + bl MOD53_021D7FDC + mov r1, #0 + mov r0, #0x34 + add r2, r1, #0 + bl FUN_0200433C + ldr r2, _021D764C ; =0x04000304 + ldr r0, _021D7650 ; =0xFFFF7FFF + ldrh r1, [r2] + and r0, r1 + strh r0, [r2] + add r0, r4, #0 + bl FUN_02083D48 + mov r0, #0 + mov r1, #1 + bl FUN_020334E8 + bl FUN_02031190 + cmp r0, #0 + bne _021D7602 + mov r0, #3 + bl FUN_02032B6C +_021D7602: + bl FUN_02033E74 + bl FUN_02031190 + cmp r0, #0 + bne _021D761A + mov r0, #1 + bl FUN_02052B74 + mov r0, #1 + bl FUN_0202EEB0 +_021D761A: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7630 +_021D7622: + bl FUN_02006278 + mov r0, #0 + str r0, [r5] + add sp, #0xc + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D7630: + mov r0, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021D7638: .word 0xFFFFE0FF +_021D763C: .word 0x04001000 +_021D7640: .word 0x0000940C +_021D7644: .word 0x00000176 +_021D7648: .word MOD53_021D78A8 +_021D764C: .word 0x04000304 +_021D7650: .word 0xFFFF7FFF + thumb_func_end MOD53_021D74E0 + + thumb_func_start MOD53_021D7654 +MOD53_021D7654: ; 0x021D7654 + push {r3, r4, r5, lr} + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + bl FUN_02031190 + cmp r0, #0 + bne _021D767A + ldr r0, _021D7750 ; =0x000093B4 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D767A + bl FUN_0202CB8C + ldr r1, _021D7750 ; =0x000093B4 + ldr r2, [r4, r1] + and r0, r2 + str r0, [r4, r1] +_021D767A: + mov r0, #3 + ldr r1, [r5] + lsl r0, r0, #8 + str r1, [r4, r0] + ldr r1, [r5] + add r0, r4, #0 + bl MOD53_021D93E8 + ldr r1, [r5] + cmp r1, #3 + bhi _021D7744 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D769C: ; jump table + .short _021D76A4 - _021D769C - 2 ; case 0 + .short _021D76D2 - _021D769C - 2 ; case 1 + .short _021D7718 - _021D769C - 2 ; case 2 + .short _021D7738 - _021D769C - 2 ; case 3 +_021D76A4: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7744 + bl FUN_02031190 + cmp r0, #0 + beq _021D76CC + bl MOD53_021D9160 + cmp r0, #2 + blt _021D7744 + mov r1, #0 + mov r0, #0x80 + add r2, r1, #0 + bl FUN_02030ADC + mov r0, #1 + str r0, [r5] + b _021D7744 +_021D76CC: + mov r0, #1 + str r0, [r5] + b _021D7744 +_021D76D2: + mov r0, #0xc1 + lsl r0, r0, #2 + ldr r0, [r4, r0] + lsl r2, r0, #3 + ldr r0, _021D7754 ; =0x021D98A0 + ldr r2, [r0, r2] + cmp r2, #0 + beq _021D76E8 + add r0, r4, #0 + blx r2 + str r0, [r5] +_021D76E8: + mov r0, #0x9e + lsl r0, r0, #2 + ldr r2, _021D7758 ; =0x000E0D0F + add r0, r4, r0 + mov r1, #0 + add r3, r4, #0 + bl MOD53_021D9014 + bl FUN_02031190 + cmp r0, #0 + bne _021D770E + add r0, r4, #0 + bl MOD53_021D928C + ldr r1, [r5] + cmp r1, #1 + bne _021D770E + str r0, [r5] +_021D770E: + ldr r0, _021D775C ; =0x00004374 + add r0, r4, r0 + bl MOD53_021D8FB8 + b _021D7744 +_021D7718: + mov r0, #0xc1 + lsl r0, r0, #2 + ldr r0, [r4, r0] + lsl r3, r0, #3 + ldr r0, _021D7754 ; =0x021D98A0 + ldr r2, [r0, r3] + cmp r2, #0 + beq _021D7744 + ldr r0, _021D7760 ; =0x021D98A4 + ldr r0, [r0, r3] + cmp r0, #0 + beq _021D7744 + add r0, r4, #0 + blx r2 + str r0, [r5] + b _021D7744 +_021D7738: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7744 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D7744: + ldr r0, [r4, #0x34] + bl FUN_0201FDEC + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_021D7750: .word 0x000093B4 +_021D7754: .word 0x021D98A0 +_021D7758: .word 0x000E0D0F +_021D775C: .word 0x00004374 +_021D7760: .word 0x021D98A4 + thumb_func_end MOD53_021D7654 + + thumb_func_start MOD53_021D7764 +MOD53_021D7764: ; 0x021D7764 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + bl FUN_02006278 + add r6, r0, #0 + add r0, r5, #0 + bl FUN_0200628C + add r4, r0, #0 + ldr r0, [r7] + cmp r0, #3 + bls _021D7780 + b _021D789E +_021D7780: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D778C: ; jump table + .short _021D7794 - _021D778C - 2 ; case 0 + .short _021D7820 - _021D778C - 2 ; case 1 + .short _021D784E - _021D778C - 2 ; case 2 + .short _021D786E - _021D778C - 2 ; case 3 +_021D7794: + mov r0, #0x27 + bl FUN_020294A8 + add r1, r0, #0 + ldr r0, [r4, #4] + mov r2, #4 + bl FUN_02028AD4 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r4, #0 + add r5, r6, #0 +_021D77D8: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D77D8 + ldr r0, [r6, #0x34] + bl FUN_0201FD58 + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + add r0, r6, #0 + bl MOD53_021D8104 + ldr r0, [r6] + bl MOD53_021D7B24 + bl FUN_0201CD04 + ldr r0, [r6, #0x10] + bl FUN_0200A8B8 + ldr r0, [r6, #0xc] + bl FUN_0200AB18 + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021D789E +_021D7820: + mov r0, #1 + bl FUN_02032B6C + bl FUN_02031B50 + ldr r0, [r4] + bl FUN_02052F8C + ldr r2, _021D78A4 ; =0x04000304 + ldrh r1, [r2] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2] + mov r0, #0 + bl FUN_02052B74 + mov r0, #0 + bl FUN_0202EEB0 + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021D789E +_021D784E: + mov r1, #0x25 + lsl r1, r1, #0xa + ldr r1, [r6, r1] + cmp r1, #0 + beq _021D7868 + bl FUN_0202CB8C + cmp r0, #1 + bne _021D789E + ldr r0, [r7] + add r0, r0, #1 + str r0, [r7] + b _021D789E +_021D7868: + add r0, r0, #1 + str r0, [r7] + b _021D789E +_021D786E: + mov r0, #2 + bl FUN_02032B6C + add r0, r6, #0 + bl MOD53_021D7AE8 + ldr r0, [r6, #8] + bl FUN_02016A18 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x27 + bl FUN_020168D0 + mov r0, #2 + bl FUN_02032B6C + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D789E: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D78A4: .word 0x04000304 + thumb_func_end MOD53_021D7764 + + thumb_func_start MOD53_021D78A8 +MOD53_021D78A8: ; 0x021D78A8 + push {r4, lr} + add r4, r0, #0 + bl FUN_0201C30C + bl FUN_02009F80 + add r0, r4, #0 + bl FUN_0201AB60 + ldr r3, _021D78C8 ; =0x027E0000 + ldr r1, _021D78CC ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + .align 2, 0 +_021D78C8: .word 0x027E0000 +_021D78CC: .word 0x00003FF8 + thumb_func_end MOD53_021D78A8 + + thumb_func_start MOD53_021D78D0 +MOD53_021D78D0: ; 0x021D78D0 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D78EC ; =0x021D95A4 + add r3, sp, #0 + mov r2, #5 +_021D78DA: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D78DA + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D78EC: .word 0x021D95A4 + thumb_func_end MOD53_021D78D0 + + thumb_func_start MOD53_021D78F0 +MOD53_021D78F0: ; 0x021D78F0 + push {r4, r5, lr} + sub sp, #0x9c + ldr r5, _021D79E0 ; =0x021D94F8 + add r3, sp, #0x8c + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D79E4 ; =0x021D9518 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _021D79E8 ; =0x021D9550 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _021D79EC ; =0x021D956C + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D79F0 ; =0x021D9588 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _021D79F4 ; =0x021D9534 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + add r0, r4, #0 + mov r1, #5 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x27 + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x27 + bl FUN_02017F18 + add sp, #0x9c + pop {r4, r5, pc} + nop +_021D79E0: .word 0x021D94F8 +_021D79E4: .word 0x021D9518 +_021D79E8: .word 0x021D9550 +_021D79EC: .word 0x021D956C +_021D79F0: .word 0x021D9588 +_021D79F4: .word 0x021D9534 + thumb_func_end MOD53_021D78F0 + + thumb_func_start MOD53_021D79F8 +MOD53_021D79F8: ; 0x021D79F8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021D7ACC ; =0x0000438A + add r6, r7, #0 + add r4, r7, r0 + mov r0, #0x38 + add r5, r7, #0 + str r0, [sp, #4] +_021D7A0E: + mov r0, #8 + mov r1, #0x27 + bl FUN_020219F4 + str r0, [r6, #0x14] + ldrb r1, [r4] + ldr r0, [sp, #4] + bic r1, r0 + strb r1, [r4] + ldr r0, _021D7AD0 ; =0x000043B6 + mov r1, #0 + strh r1, [r6, r0] + mov r0, #0xcd + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r0, #4 + str r1, [r5, r0] + ldr r0, [sp] + add r6, r6, #4 + add r0, r0, #1 + add r4, #0xa + add r5, #8 + str r0, [sp] + cmp r0, #5 + blt _021D7A0E + mov r0, #0xa + mov r1, #0x27 + bl FUN_020219F4 + str r0, [r7, #0x28] + mov r0, #0x50 + mov r1, #0x27 + bl FUN_020219F4 + str r0, [r7, #0x2c] + ldr r0, _021D7AD4 ; =0x00004376 + mov r2, #0 + strb r2, [r7, r0] + mov r1, #1 + add r0, r0, #1 + strb r1, [r7, r0] + ldr r0, _021D7AD8 ; =0x000093F4 + str r1, [r7, r0] + add r0, r0, #4 + str r2, [r7, r0] + mov r0, #0xc6 + mov r1, #2 + lsl r0, r0, #2 + str r1, [r7, r0] + bl FUN_0202CB8C + mov r1, #0xc7 + lsl r1, r1, #2 + str r0, [r7, r1] + ldr r2, _021D7ADC ; =0x000093FC + mov r3, #0 + str r3, [r7, r2] + add r0, r2, #4 + str r3, [r7, r0] + add r0, r2, #0 + sub r1, #0x18 + str r3, [r7, r1] + add r0, #8 + str r3, [r7, r0] + add r2, #0xc + str r3, [r7, r2] + bl FUN_02031190 + add r0, r7, #0 + mov r1, #4 + bl MOD53_021D93E0 + ldr r0, [r7, #0x10] + ldr r2, [r7, #0x28] + mov r1, #7 + bl FUN_0200A8E0 + mov r1, #0xf + mov r0, #0x27 + lsl r1, r1, #0xa + bl FUN_02016998 + ldr r1, _021D7AE0 ; =0x000043C8 + str r0, [r7, r1] + mov r0, #0x27 + bl FUN_02014590 + ldr r1, _021D7AE4 ; =0x000093F0 + str r0, [r7, r1] + mov r0, #0xc5 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r7, r0] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D7ACC: .word 0x0000438A +_021D7AD0: .word 0x000043B6 +_021D7AD4: .word 0x00004376 +_021D7AD8: .word 0x000093F4 +_021D7ADC: .word 0x000093FC +_021D7AE0: .word 0x000043C8 +_021D7AE4: .word 0x000093F0 + thumb_func_end MOD53_021D79F8 + + thumb_func_start MOD53_021D7AE8 +MOD53_021D7AE8: ; 0x021D7AE8 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, _021D7B1C ; =0x000043C8 + ldr r0, [r6, r0] + bl FUN_02016A18 + ldr r0, _021D7B20 ; =0x000093F0 + ldr r0, [r6, r0] + bl FUN_020145A8 + mov r4, #0 + add r5, r6, #0 +_021D7B00: + ldr r0, [r5, #0x14] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #5 + blt _021D7B00 + ldr r0, [r6, #0x2c] + bl FUN_02021A20 + ldr r0, [r6, #0x28] + bl FUN_02021A20 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D7B1C: .word 0x000043C8 +_021D7B20: .word 0x000093F0 + thumb_func_end MOD53_021D7AE8 + + thumb_func_start MOD53_021D7B24 +MOD53_021D7B24: ; 0x021D7B24 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD53_021D7B24 + + thumb_func_start MOD53_021D7B60 +MOD53_021D7B60: ; 0x021D7B60 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5] + mov r0, #0x40 + mov r1, #0 + str r0, [sp] + mov r0, #0x27 + str r0, [sp, #4] + mov r0, #0x4e + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02006930 + mov r0, #0x40 + str r0, [sp] + mov r0, #0x27 + str r0, [sp, #4] + mov r0, #0x4e + mov r1, #1 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x27 + bl FUN_02002EEC + mov r1, #0x1a + mov r0, #4 + lsl r1, r1, #4 + mov r2, #0x27 + bl FUN_02002EEC + mov r0, #0 + str r0, [sp] + mov r0, #2 + lsl r0, r0, #0xc + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x27 + mov r1, #2 + str r0, [sp, #0xc] + mov r0, #0x4e + add r2, r4, #0 + add r3, r1, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x27 + str r0, [sp, #0xc] + mov r0, #0x4e + mov r1, #4 + add r2, r4, #0 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + mov r0, #2 + lsl r0, r0, #0xc + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x27 + str r0, [sp, #0xc] + mov r0, #0x4e + mov r1, #3 + add r2, r4, #0 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x27 + mov r1, #5 + str r0, [sp, #0xc] + mov r0, #0x4e + add r2, r4, #0 + add r3, r1, #0 + bl FUN_020068C8 + ldr r0, [r5, #8] + ldr r0, [r0, #8] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x27 + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x27 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD53_021D7B60 + + thumb_func_start MOD53_021D7C54 +MOD53_021D7C54: ; 0x021D7C54 + push {r4, lr} + sub sp, #0x10 + ldr r4, _021D7C80 ; =0x021D9508 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #0x14 + mov r1, #0x27 + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021D7C80: .word 0x021D9508 + thumb_func_end MOD53_021D7C54 + + thumb_func_start MOD53_021D7C84 +MOD53_021D7C84: ; 0x021D7C84 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x7e + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x27 + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + add r1, r5, #0 + mov r0, #0x35 + add r1, #0x38 + mov r2, #0x27 + bl FUN_02008C9C + str r0, [r5, #0x34] + add r0, r5, #0 + mov r2, #1 + add r0, #0x38 + mov r1, #0 + lsl r2, r2, #0x14 + bl FUN_02008D24 + mov r7, #0x16 + mov r6, #0 + add r4, r5, #0 + lsl r7, r7, #4 +_021D7CCA: + mov r0, #2 + add r1, r6, #0 + mov r2, #0x27 + bl FUN_02008DEC + str r0, [r4, r7] + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #4 + blt _021D7CCA + mov r0, #0 + str r0, [sp] + mov r3, #1 + str r3, [sp, #4] + mov r0, #0x27 + str r0, [sp, #8] + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0x4e + mov r2, #6 + bl FUN_02008F34 + mov r1, #0x17 + lsl r1, r1, #4 + str r0, [r5, r1] + mov r2, #0 + str r2, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #7 + str r0, [sp, #8] + mov r0, #0x27 + sub r1, #0xc + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x4e + add r3, r2, #0 + bl FUN_02008FEC + mov r1, #0x5d + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x27 + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x4e + mov r2, #7 + mov r3, #1 + bl FUN_020090AC + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x27 + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x4e + mov r2, #8 + mov r3, #1 + bl FUN_020090AC + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x27 + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x4e + mov r2, #6 + bl FUN_02008F34 + mov r1, #6 + lsl r1, r1, #6 + str r0, [r5, r1] + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + mov r0, #0x27 + mov r2, #0 + sub r1, #0x1c + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x4e + add r3, r2, #0 + bl FUN_02008FEC + mov r1, #0x61 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x27 + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x4e + mov r2, #7 + bl FUN_020090AC + mov r1, #0x62 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x27 + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x4e + mov r2, #8 + bl FUN_020090AC + mov r1, #0x63 + lsl r1, r1, #2 + str r0, [r5, r1] + sub r1, #0x1c + ldr r0, [r5, r1] + bl FUN_02009A50 + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r5, r0] + bl FUN_02009A50 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009CF0 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009CF0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD53_021D7C84 + + thumb_func_start MOD53_021D7E08 +MOD53_021D7E08: ; 0x021D7E08 + push {r4, r5, r6, r7, lr} + sub sp, #0x64 + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + sub r0, r1, #1 + str r0, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r2, #0x16 + str r1, [sp, #0x10] + lsl r2, r2, #4 + ldr r0, [r5, r2] + add r3, r1, #0 + str r0, [sp, #0x14] + add r0, r2, #4 + ldr r0, [r5, r0] + str r0, [sp, #0x18] + add r0, r2, #0 + add r0, #8 + ldr r0, [r5, r0] + str r0, [sp, #0x1c] + add r0, r2, #0 + add r0, #0xc + ldr r0, [r5, r0] + add r2, #0x30 + str r0, [sp, #0x20] + str r1, [sp, #0x24] + add r0, r5, r2 + add r2, r1, #0 + str r1, [sp, #0x28] + bl FUN_02008AA4 + mov r1, #1 + mov r3, #0x16 + str r1, [sp] + sub r0, r1, #2 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r3, r3, #4 + ldr r2, [r5, r3] + str r2, [sp, #0x14] + add r2, r3, #4 + ldr r2, [r5, r2] + str r2, [sp, #0x18] + add r2, r3, #0 + add r2, #8 + ldr r2, [r5, r2] + str r2, [sp, #0x1c] + add r2, r3, #0 + add r2, #0xc + ldr r2, [r5, r2] + add r3, #0x54 + str r2, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r5, r3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02008AA4 + ldr r0, [r5, #0x34] + mov r6, #0 + str r0, [sp, #0x34] + mov r0, #0x19 + lsl r0, r0, #4 + add r0, r5, r0 + str r0, [sp, #0x38] + mov r0, #1 + lsl r0, r0, #0xc + str r6, [sp, #0x44] + str r0, [sp, #0x48] + str r0, [sp, #0x4c] + str r0, [sp, #0x50] + add r0, sp, #0x34 + strh r6, [r0, #0x20] + mov r0, #1 + str r0, [sp, #0x58] + str r0, [sp, #0x5c] + mov r0, #0x27 + str r0, [sp, #0x60] + mov r0, #0x6d + lsl r0, r0, #2 + add r0, r5, r0 + mov r7, #0x18 + add r4, r5, #0 + str r0, [sp, #0x2c] +_021D7EBC: + ldr r0, [sp, #0x2c] + str r0, [sp, #0x38] + lsl r0, r7, #0xc + str r0, [sp, #0x3c] + mov r0, #1 + lsl r0, r0, #0x12 + str r0, [sp, #0x40] + mov r0, #2 + str r0, [sp, #0x5c] + add r0, sp, #0x34 + bl FUN_0201FE94 + mov r1, #0x76 + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x76 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r6, #0 + bl FUN_02020130 + mov r0, #0x76 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + add r6, r6, #1 + add r7, #0x28 + add r4, r4, #4 + cmp r6, #5 + blt _021D7EBC + mov r0, #0x6d + lsl r0, r0, #2 + add r0, r5, r0 + ldr r6, _021D7FD8 ; =0x021D9600 + mov r7, #0 + add r4, r5, #0 + str r0, [sp, #0x30] +_021D7F14: + ldr r0, [sp, #0x30] + str r0, [sp, #0x38] + ldrh r0, [r6] + lsl r0, r0, #0xc + str r0, [sp, #0x3c] + ldrh r0, [r6, #2] + lsl r0, r0, #0xc + str r0, [sp, #0x40] + add r0, sp, #0x34 + bl FUN_0201FE94 + mov r1, #0x92 + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x92 + lsl r0, r0, #2 + ldrh r1, [r6, #4] + ldr r0, [r4, r0] + bl FUN_02020130 + cmp r7, #8 + blt _021D7F56 + mov r0, #0x92 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #2 + bl FUN_02020238 +_021D7F56: + add r7, r7, #1 + add r6, r6, #6 + add r4, r4, #4 + cmp r7, #0xc + blt _021D7F14 + mov r0, #0x92 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #6 + bl FUN_02020130 + mov r7, #6 + mov r6, #0 + mov r4, #0x20 + lsl r7, r7, #0xe +_021D7F74: + mov r0, #1 + lsl r1, r4, #0xc + lsl r0, r0, #0x14 + add r0, r1, r0 + str r0, [sp, #0x40] + add r0, sp, #0x34 + str r7, [sp, #0x3c] + bl FUN_0201FE94 + mov r1, #0x21 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x21 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + bl FUN_02020130 + mov r0, #0x21 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02020310 + mov r0, #0x21 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + add r6, r6, #1 + add r4, #0x20 + add r5, r5, #4 + cmp r6, #5 + blt _021D7F74 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x64 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D7FD8: .word 0x021D9600 + thumb_func_end MOD53_021D7E08 + + thumb_func_start MOD53_021D7FDC +MOD53_021D7FDC: ; 0x021D7FDC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r7, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + mov r1, #0xb6 + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r7] + add r1, r7, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r0, #0xb6 + lsl r0, r0, #2 + add r0, r7, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #2 + str r0, [sp] + mov r0, #0x1e + str r0, [sp, #4] + mov r0, #0xf + str r0, [sp, #8] + mov r0, #0 + mov r2, #1 + str r0, [sp, #0xc] + str r2, [sp, #0x10] + mov r1, #0xb2 + lsl r1, r1, #2 + ldr r0, [r7] + add r1, r7, r1 + add r3, r2, #0 + bl FUN_02019064 + mov r0, #0xb2 + lsl r0, r0, #2 + add r0, r7, r0 + mov r1, #2 + bl FUN_02019620 + mov r0, #0x15 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _021D80F8 ; =0x000001C3 + mov r1, #0xba + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r7] + add r1, r7, r1 + mov r2, #1 + mov r3, #0x19 + bl FUN_02019064 + mov r0, #0xba + lsl r0, r0, #2 + add r0, r7, r0 + mov r1, #0 + bl FUN_02019620 + ldr r1, [r7, #0x28] + mov r0, #1 + mov r2, #0 + mov r3, #0x30 + bl FUN_02002F40 + add r3, r0, #0 + mov r1, #0 + str r1, [sp] + ldr r0, _021D80FC ; =0x00070100 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r0, #0xba + lsl r0, r0, #2 + ldr r2, [r7, #0x28] + add r0, r7, r0 + mov r1, #1 + add r3, r3, #2 + bl FUN_0201BDE0 + mov r0, #0 + str r0, [sp, #0x14] + mov r0, #0x9e + lsl r0, r0, #2 + mov r6, #1 + mov r4, #3 + add r5, r7, r0 +_021D80A8: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r7] + add r1, r5, #0 + mov r2, #4 + mov r3, #5 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + ldr r0, [sp, #0x14] + add r6, #0x14 + add r0, r0, #1 + add r4, r4, #4 + add r5, #0x10 + str r0, [sp, #0x14] + cmp r0, #5 + blt _021D80A8 + mov r0, #0x9e + lsl r0, r0, #2 + ldr r2, _021D8100 ; =0x000E0D0F + add r0, r7, r0 + mov r1, #0 + add r3, r7, #0 + bl MOD53_021D9014 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D80F8: .word 0x000001C3 +_021D80FC: .word 0x00070100 +_021D8100: .word 0x000E0D0F + thumb_func_end MOD53_021D7FDC + + thumb_func_start MOD53_021D8104 +MOD53_021D8104: ; 0x021D8104 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r0, #0x9e + lsl r0, r0, #2 + mov r4, #0 + add r5, r6, r0 +_021D8110: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #5 + blt _021D8110 + mov r0, #0xba + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019178 + mov r0, #0xb2 + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019178 + mov r0, #0xb6 + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019178 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD53_021D8104 + + thumb_func_start MOD53_021D8140 +MOD53_021D8140: ; 0x021D8140 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + add r5, r2, #0 + cmp r1, #0 + ble _021D815E + lsl r0, r1, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D816C +_021D815E: + lsl r0, r1, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D816C: + bl _ffix + sub r5, #8 + str r0, [sp] + cmp r5, #0 + ble _021D818A + lsl r0, r5, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D8198 +_021D818A: + lsl r0, r5, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D8198: + bl _ffix + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, sp, #0 + bl FUN_02020044 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD53_021D8140 + + thumb_func_start MOD53_021D81B0 +MOD53_021D81B0: ; 0x021D81B0 + push {r4, r5, r6, r7, lr} + sub sp, #0x54 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _021D83AC ; =0x021D95CC + bl FUN_02020988 + mov r1, #0 + mvn r1, r1 + str r0, [sp, #8] + cmp r0, r1 + beq _021D81FE + cmp r0, #0xb + bhi _021D81FE + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D81DA: ; jump table + .short _021D81F2 - _021D81DA - 2 ; case 0 + .short _021D81F2 - _021D81DA - 2 ; case 1 + .short _021D81F2 - _021D81DA - 2 ; case 2 + .short _021D81F2 - _021D81DA - 2 ; case 3 + .short _021D81F2 - _021D81DA - 2 ; case 4 + .short _021D81F2 - _021D81DA - 2 ; case 5 + .short _021D81F2 - _021D81DA - 2 ; case 6 + .short _021D81F2 - _021D81DA - 2 ; case 7 + .short _021D821A - _021D81DA - 2 ; case 8 + .short _021D82BE - _021D81DA - 2 ; case 9 + .short _021D82BE - _021D81DA - 2 ; case 10 + .short _021D82BE - _021D81DA - 2 ; case 11 +_021D81F2: + ldr r2, _021D83B0 ; =0x00004376 + ldr r0, [sp] + ldrb r1, [r0, r2] + ldr r0, [sp, #8] + cmp r1, r0 + bne _021D8200 +_021D81FE: + b _021D8316 +_021D8200: + add r1, r0, #0 + ldr r0, [sp] + strb r1, [r0, r2] + mov r1, #0x92 + lsl r1, r1, #2 + add r0, r0, r1 + ldr r1, [sp, #8] + bl MOD53_021D83DC + ldr r0, _021D83B4 ; =0x000005DC + bl FUN_020054C8 + b _021D8316 +_021D821A: + mov r1, #0xc1 + ldr r0, [sp] + lsl r1, r1, #2 + ldr r0, [r0, r1] + cmp r0, #4 + bne _021D8316 + bl FUN_02031190 + cmp r0, #0 + bne _021D8280 + bl FUN_0202CB8C + mov r2, #0xc7 + ldr r1, [sp] + lsl r2, r2, #2 + ldr r1, [r1, r2] + cmp r1, r0 + beq _021D8246 + ldr r0, _021D83B8 ; =0x000005F2 + bl FUN_020054C8 + b _021D8316 +_021D8246: + bl FUN_02030F20 + bl FUN_02032B6C + ldr r1, _021D83BC ; =0x000093F4 + ldr r0, [sp] + mov r2, #2 + str r2, [r0, r1] + mov r1, #1 + add r2, r1, #0 + bl MOD53_021D91C8 + ldr r0, [sp] + mov r1, #5 + bl MOD53_021D93E0 + mov r1, #0x92 + ldr r0, [sp] + lsl r1, r1, #2 + add r0, r0, r1 + mov r1, #1 + bl MOD53_021D840C + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021D83B4 ; =0x000005DC + bl FUN_020054C8 + b _021D8316 +_021D8280: + ldr r1, _021D83C0 ; =0x0000438B + ldr r0, [sp] + ldrb r0, [r0, r1] + cmp r0, #2 + bne _021D8292 + ldr r0, _021D83B8 ; =0x000005F2 + bl FUN_020054C8 + b _021D8316 +_021D8292: + mov r1, #1 + ldr r0, [sp] + add r2, r1, #0 + bl MOD53_021D91C8 + ldr r0, [sp] + mov r1, #5 + bl MOD53_021D93E0 + mov r1, #0x92 + ldr r0, [sp] + lsl r1, r1, #2 + add r0, r0, r1 + mov r1, #1 + bl MOD53_021D840C + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021D83B4 ; =0x000005DC + bl FUN_020054C8 + b _021D8316 +_021D82BE: + ldr r0, [sp, #8] + ldr r5, [sp] + str r0, [sp, #0xc] + sub r0, #9 + mov r4, #0 + mov r7, #0x1e + mov r6, #0x1d + str r0, [sp, #0xc] +_021D82CE: + ldr r0, [sp, #0xc] + cmp r0, r4 + bne _021D82E2 + mov r0, #0x9b + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r7, #0 + bl FUN_02020130 + b _021D82EE +_021D82E2: + mov r0, #0x9b + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r6, #0 + bl FUN_02020130 +_021D82EE: + add r4, r4, #1 + add r7, r7, #2 + add r5, r5, #4 + add r6, r6, #2 + cmp r4, #3 + blt _021D82CE + ldr r2, _021D83C4 ; =0x00004377 + ldr r0, [sp] + ldrb r1, [r0, r2] + ldr r0, [sp, #8] + sub r0, #9 + str r0, [sp, #8] + cmp r1, r0 + beq _021D8316 + add r1, r0, #0 + ldr r0, [sp] + strb r1, [r0, r2] + ldr r0, _021D83C8 ; =0x000005E5 + bl FUN_020054C8 +_021D8316: + ldr r0, _021D83CC ; =0x021D94F0 + bl FUN_02020968 + add r4, r0, #0 + bl FUN_02031190 + lsl r1, r0, #2 + ldr r0, [sp] + add r1, r0, r1 + mov r0, #0x76 + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + beq _021D836C + bl FUN_02031190 + lsl r1, r0, #2 + ldr r0, [sp] + ldr r2, _021D83D0 ; =0x021C48F8 + add r1, r0, r1 + mov r0, #0x76 + lsl r0, r0, #2 + ldr r0, [r1, r0] + ldrh r1, [r2, #0x1c] + ldrh r2, [r2, #0x1e] + bl MOD53_021D8140 + bl FUN_02031190 + lsl r1, r0, #2 + ldr r0, [sp] + add r1, r0, r1 + mov r0, #0x76 + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200A0 +_021D836C: + add r0, sp, #0x10 + mov r1, #4 + mov r2, #0x40 + bl FUN_0201CD38 + cmp r0, #1 + bne _021D83A6 + ldr r3, _021D83D4 ; =0x00004378 + ldr r0, [sp] + ldr r2, [sp] + sub r4, r3, #2 + ldrb r2, [r2, r4] + add r0, r0, r3 + sub r4, r3, #1 + ldr r3, [sp] + add r1, sp, #0x10 + ldrb r3, [r3, r4] + bl MOD53_021D947C + ldr r0, [sp, #4] + cmp r0, #1 + bne _021D83A6 + ldr r1, _021D83D8 ; =0x00004380 + ldr r0, [sp] + ldrb r2, [r0, r1] + mov r0, #0x38 + bic r2, r0 + ldr r0, [sp] + strb r2, [r0, r1] +_021D83A6: + add sp, #0x54 + pop {r4, r5, r6, r7, pc} + nop +_021D83AC: .word 0x021D95CC +_021D83B0: .word 0x00004376 +_021D83B4: .word 0x000005DC +_021D83B8: .word 0x000005F2 +_021D83BC: .word 0x000093F4 +_021D83C0: .word 0x0000438B +_021D83C4: .word 0x00004377 +_021D83C8: .word 0x000005E5 +_021D83CC: .word 0x021D94F0 +_021D83D0: .word 0x021C48F8 +_021D83D4: .word 0x00004378 +_021D83D8: .word 0x00004380 + thumb_func_end MOD53_021D81B0 + + thumb_func_start MOD53_021D83DC +MOD53_021D83DC: ; 0x021D83DC + push {r3, r4, r5, r6, r7, lr} + ldr r4, _021D8408 ; =0x021D9600 + add r5, r0, #0 + add r7, r1, #0 + mov r6, #0 +_021D83E6: + cmp r6, r7 + ldr r0, [r5] + bne _021D83F6 + ldrh r1, [r4, #4] + add r1, r1, #1 + bl FUN_02020130 + b _021D83FC +_021D83F6: + ldrh r1, [r4, #4] + bl FUN_02020130 +_021D83FC: + add r6, r6, #1 + add r4, r4, #6 + add r5, r5, #4 + cmp r6, #8 + blt _021D83E6 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8408: .word 0x021D9600 + thumb_func_end MOD53_021D83DC + + thumb_func_start MOD53_021D840C +MOD53_021D840C: ; 0x021D840C + push {r3, lr} + cmp r1, #1 + ldr r0, [r0, #0x20] + bne _021D841C + mov r1, #0x16 + bl FUN_02020130 + pop {r3, pc} +_021D841C: + mov r1, #0x15 + bl FUN_02020130 + pop {r3, pc} + thumb_func_end MOD53_021D840C + + thumb_func_start MOD53_021D8424 +MOD53_021D8424: ; 0x021D8424 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD53_021D81B0 + bl FUN_02031190 + cmp r0, #0 + bne _021D8446 + bl MOD53_021D8FF8 + cmp r0, #1 + beq _021D844C + add r0, r5, #0 + bl MOD53_021D90F8 + b _021D844C +_021D8446: + add r0, r5, #0 + bl MOD53_021D90F8 +_021D844C: + add r0, r5, #0 + bl MOD53_021D8F50 + ldr r2, _021D846C ; =0x00004382 + mov r0, #0xb2 + lsl r0, r0, #2 + add r1, r5, r2 + add r2, #0x32 + add r0, r5, r0 + add r2, r5, r2 + mov r3, #1 + bl MOD53_021D8E84 + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D846C: .word 0x00004382 + thumb_func_end MOD53_021D8424 + + thumb_func_start MOD53_021D8470 +MOD53_021D8470: ; 0x021D8470 + push {r4, lr} + add r4, r0, #0 + bl MOD53_021D8F50 + ldr r2, _021D8490 ; =0x00004382 + mov r0, #0xb2 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0x32 + add r0, r4, r0 + add r2, r4, r2 + mov r3, #0 + bl MOD53_021D8E84 + pop {r4, pc} + nop +_021D8490: .word 0x00004382 + thumb_func_end MOD53_021D8470 + + thumb_func_start MOD53_021D8494 +MOD53_021D8494: ; 0x021D8494 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02031190 + mov r1, #0x32 + lsl r1, r1, #4 + ldr r1, [r5, r1] + cmp r1, r0 + bne _021D84B4 + add r0, r5, #0 + mov r1, #0xd + mov r2, #0 + bl MOD53_021D91C8 + b _021D84BE +_021D84B4: + mov r1, #0 + add r0, r5, #0 + add r2, r1, #0 + bl MOD53_021D91C8 +_021D84BE: + add r0, r5, #0 + mov r1, #2 + bl MOD53_021D93E0 + ldr r0, _021D84E4 ; =0x000005E4 + bl FUN_020054C8 + mov r1, #0x1e + add r2, r1, #0 + ldr r0, _021D84E8 ; =0x04000050 + sub r2, #0x24 + bl G2x_SetBlendBrightness_ + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D84E4: .word 0x000005E4 +_021D84E8: .word 0x04000050 + thumb_func_end MOD53_021D8494 + + thumb_func_start MOD53_021D84EC +MOD53_021D84EC: ; 0x021D84EC + push {r4, lr} + add r4, r1, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r4, pc} + thumb_func_end MOD53_021D84EC + + thumb_func_start MOD53_021D84F8 +MOD53_021D84F8: ; 0x021D84F8 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r1, _021D8524 ; =0x04000050 + mov r2, #0 + strh r2, [r1] + add r5, r0, #0 + mov r1, #1 + bl MOD53_021D926C + add r0, r5, #0 + mov r1, #4 + bl MOD53_021D93E0 + add r0, r5, #0 + bl MOD53_021D8470 + ldr r0, _021D8528 ; =0x00009404 + mov r1, #0 + str r1, [r5, r0] + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D8524: .word 0x04000050 +_021D8528: .word 0x00009404 + thumb_func_end MOD53_021D84F8 + + thumb_func_start MOD53_021D852C +MOD53_021D852C: ; 0x021D852C + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x30] + add r4, r1, #0 + bl MOD53_021D923C + cmp r0, #0 + beq _021D8570 + ldr r0, [r5] + mov r1, #0x19 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + mov r0, #0xb4 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + add r0, sp, #0 + strb r1, [r0, #0x10] + mov r1, #6 + strb r1, [r0, #0x11] + add r0, r5, #0 + add r1, sp, #0 + bl MOD53_021D941C + cmp r0, #0 + bne _021D8568 + bl ErrorHandling +_021D8568: + add r0, r5, #0 + mov r1, #6 + bl MOD53_021D93E0 +_021D8570: + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + add sp, #0x14 + pop {r4, r5, pc} + thumb_func_end MOD53_021D852C + + thumb_func_start MOD53_021D857C +MOD53_021D857C: ; 0x021D857C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r1, #0 + add r5, r0, #0 + ldr r1, _021D86C8 ; =0x00004380 + mov r0, #0x38 + ldrb r2, [r5, r1] + bic r2, r0 + strb r2, [r5, r1] + add r1, #0xb + ldrb r0, [r5, r1] + cmp r0, #2 + bne _021D85BA + bl FUN_02031190 + cmp r0, #0 + beq _021D85BA + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r5, #0 + bl MOD53_021D9460 + cmp r0, #0 + beq _021D85B4 + ldr r0, _021D86CC ; =0x000005F2 + bl FUN_020054C8 +_021D85B4: + add sp, #4 + add r0, r4, #0 + pop {r3, r4, r5, r6, pc} +_021D85BA: + bl FUN_02031190 + cmp r0, #0 + bne _021D85D6 + ldr r0, _021D86D0 ; =0x000093B4 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D85D6 + add r0, r5, #0 + bl MOD53_021D8470 + add sp, #4 + add r0, r4, #0 + pop {r3, r4, r5, r6, pc} +_021D85D6: + bl MOD53_021D9160 + add r6, r0, #0 + bl FUN_02030F20 + cmp r6, r0 + beq _021D85F0 + add r0, r5, #0 + bl MOD53_021D8470 + add sp, #4 + add r0, r4, #0 + pop {r3, r4, r5, r6, pc} +_021D85F0: + ldr r0, _021D86D4 ; =0x000093F0 + ldr r0, [r5, r0] + bl FUN_0201466C + cmp r0, #1 + beq _021D8602 + cmp r0, #2 + beq _021D8672 + b _021D86BA +_021D8602: + bl FUN_02031190 + cmp r0, #0 + bne _021D861E + add r0, r5, #0 + mov r1, #0xd + bl MOD53_021D93E0 + add r0, r5, #0 + mov r1, #4 + mov r2, #1 + bl MOD53_021D91C8 + b _021D8660 +_021D861E: + add r0, sp, #0 + mov r1, #0 + mov r2, #4 + bl MI_CpuFill8 + mov r1, #0 + add r0, sp, #0 + strb r1, [r0, #2] + bl FUN_02031190 + add r1, sp, #0 + strb r0, [r1] + ldr r0, _021D86D8 ; =0x000093BC + mov r1, #1 + strb r1, [r5, r0] + mov r1, #0 + sub r0, r0, #2 + strh r1, [r5, r0] + add r0, r5, #0 + mov r1, #7 + bl MOD53_021D93E0 + mov r0, #0x7e + add r1, sp, #0 + mov r2, #4 + bl FUN_02030ADC + mov r0, #0xb6 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #1 + bl FUN_0200D0E0 +_021D8660: + add r0, r5, #0 + bl MOD53_021D9440 + mov r0, #0xb2 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_020191D0 + b _021D86BA +_021D8672: + add r0, r5, #0 + mov r1, #4 + bl MOD53_021D93E0 + mov r0, #0x92 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl MOD53_021D840C + mov r0, #0xb6 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #1 + bl FUN_0200D0E0 + add r0, r5, #0 + bl MOD53_021D9440 + mov r0, #0xb2 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_020191D0 + bl FUN_02031190 + cmp r0, #0 + bne _021D86BA + bl FUN_02030F20 + add r0, r0, #1 + bl FUN_02032B6C + ldr r0, _021D86DC ; =0x000093F4 + mov r1, #1 + str r1, [r5, r0] +_021D86BA: + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_021D86C8: .word 0x00004380 +_021D86CC: .word 0x000005F2 +_021D86D0: .word 0x000093B4 +_021D86D4: .word 0x000093F0 +_021D86D8: .word 0x000093BC +_021D86DC: .word 0x000093F4 + thumb_func_end MOD53_021D857C + + thumb_func_start MOD53_021D86E0 +MOD53_021D86E0: ; 0x021D86E0 + push {r4, lr} + ldr r2, _021D86FC ; =0x00004380 + add r4, r1, #0 + ldrb r3, [r0, r2] + mov r1, #0x38 + bic r3, r1 + strb r3, [r0, r2] + ldr r1, _021D8700 ; =0x000093BA + mov r2, #0 + strh r2, [r0, r1] + bl MOD53_021D8470 + add r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_021D86FC: .word 0x00004380 +_021D8700: .word 0x000093BA + thumb_func_end MOD53_021D86E0 + + thumb_func_start MOD53_021D8704 +MOD53_021D8704: ; 0x021D8704 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r1, _021D8790 ; =0x00004380 + mov r0, #0x38 + ldrb r2, [r5, r1] + bic r2, r0 + strb r2, [r5, r1] + bl FUN_02030F20 + ldr r1, _021D8794 ; =0x000093B8 + ldrh r1, [r5, r1] + cmp r1, r0 + bne _021D872C + bl MOD53_021D9160 + ldr r1, _021D8794 ; =0x000093B8 + ldrh r2, [r5, r1] + cmp r2, r0 + beq _021D8744 +_021D872C: + ldr r0, _021D8798 ; =0x000093BA + mov r1, #0 + strh r1, [r5, r0] + add r0, r5, #0 + mov r1, #9 + bl MOD53_021D93E0 + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_021D8744: + add r0, r1, #2 + ldrsh r0, [r5, r0] + add r2, r0, #1 + add r0, r1, #2 + strh r2, [r5, r0] + ldrsh r0, [r5, r0] + cmp r0, #0x1e + ble _021D8784 + add r0, sp, #0 + mov r1, #0 + mov r2, #4 + bl MI_CpuFill8 + mov r1, #1 + add r0, sp, #0 + strb r1, [r0, #2] + bl FUN_02031190 + add r1, sp, #0 + strb r0, [r1] + mov r0, #0x7e + add r1, sp, #0 + mov r2, #4 + bl FUN_02030ADC + ldr r0, _021D8798 ; =0x000093BA + mov r1, #0 + strh r1, [r5, r0] + add r0, r5, #0 + mov r1, #0xa + bl MOD53_021D93E0 +_021D8784: + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D8790: .word 0x00004380 +_021D8794: .word 0x000093B8 +_021D8798: .word 0x000093BA + thumb_func_end MOD53_021D8704 + + thumb_func_start MOD53_021D879C +MOD53_021D879C: ; 0x021D879C + push {r3, r4, r5, lr} + ldr r2, _021D87D0 ; =0x00004380 + add r5, r0, #0 + ldrb r3, [r5, r2] + add r4, r1, #0 + mov r1, #0x38 + bic r3, r1 + strb r3, [r5, r2] + ldr r1, _021D87D4 ; =0x000093BC + mov r2, #0 + strb r2, [r5, r1] + mov r1, #4 + bl MOD53_021D93E0 + mov r0, #0x92 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl MOD53_021D840C + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D87D0: .word 0x00004380 +_021D87D4: .word 0x000093BC + thumb_func_end MOD53_021D879C + + thumb_func_start MOD53_021D87D8 +MOD53_021D87D8: ; 0x021D87D8 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + mov r1, #6 + mov r2, #1 + bl MOD53_021D91C8 + add r0, r5, #0 + mov r1, #0xb + bl MOD53_021D93E0 + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD53_021D87D8 + + thumb_func_start MOD53_021D87F8 +MOD53_021D87F8: ; 0x021D87F8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x30] + add r4, r1, #0 + bl MOD53_021D923C + cmp r0, #0 + beq _021D8818 + mov r0, #0x31 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r5, #0 + mov r1, #0xc + bl MOD53_021D93E0 +_021D8818: + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD53_021D87F8 + + thumb_func_start MOD53_021D8824 +MOD53_021D8824: ; 0x021D8824 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0x31 + lsl r0, r0, #4 + add r4, r1, #0 + ldr r1, [r5, r0] + add r1, r1, #1 + str r1, [r5, r0] + ldr r0, [r5, r0] + cmp r0, #0x3c + ble _021D8854 + mov r1, #0x10 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x27 + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r4, #3 +_021D8854: + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD53_021D8824 + + thumb_func_start MOD53_021D8860 +MOD53_021D8860: ; 0x021D8860 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x30] + add r4, r1, #0 + bl MOD53_021D923C + cmp r0, #0 + beq _021D88A4 + ldr r0, [r5] + mov r1, #0x19 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + mov r0, #0xb4 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + add r0, sp, #0 + strb r1, [r0, #0x10] + mov r1, #6 + strb r1, [r0, #0x11] + add r0, r5, #0 + add r1, sp, #0 + bl MOD53_021D941C + cmp r0, #0 + bne _021D889C + bl ErrorHandling +_021D889C: + add r0, r5, #0 + mov r1, #0xe + bl MOD53_021D93E0 +_021D88A4: + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + add sp, #0x14 + pop {r4, r5, pc} + thumb_func_end MOD53_021D8860 + + thumb_func_start MOD53_021D88B0 +MOD53_021D88B0: ; 0x021D88B0 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _021D8960 ; =0x000093F0 + add r6, r1, #0 + ldr r0, [r5, r0] + bl FUN_0201466C + add r4, r0, #0 + bl MOD53_021D9160 + mov r1, #0xc6 + lsl r1, r1, #2 + ldr r1, [r5, r1] + cmp r1, r0 + bne _021D88D6 + ldr r0, _021D8964 ; =0x000093B4 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D88E0 +_021D88D6: + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r6, #0 + pop {r4, r5, r6, pc} +_021D88E0: + cmp r4, #1 + beq _021D88EA + cmp r4, #2 + beq _021D8916 + b _021D8954 +_021D88EA: + add r0, r5, #0 + mov r1, #0xf + bl MOD53_021D93E0 + mov r1, #0 + mov r0, #0x7f + add r2, r1, #0 + bl FUN_02030BC4 + mov r0, #0 + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r5, #0xc] + mov r1, #0 + bl FUN_0200ABC0 + add r0, r5, #0 + mov r6, #2 + bl MOD53_021D9440 + b _021D8954 +_021D8916: + add r0, r5, #0 + mov r1, #4 + bl MOD53_021D93E0 + mov r0, #0x92 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl MOD53_021D840C + mov r0, #0xb6 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #1 + bl FUN_0200D0E0 + add r0, r5, #0 + bl MOD53_021D9440 + bl FUN_02031190 + cmp r0, #0 + bne _021D8954 + bl FUN_02030F20 + add r0, r0, #1 + bl FUN_02032B6C + ldr r0, _021D8968 ; =0x000093F4 + mov r1, #1 + str r1, [r5, r0] +_021D8954: + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r6, #0 + pop {r4, r5, r6, pc} + nop +_021D8960: .word 0x000093F0 +_021D8964: .word 0x000093B4 +_021D8968: .word 0x000093F4 + thumb_func_end MOD53_021D88B0 + + thumb_func_start MOD53_021D896C +MOD53_021D896C: ; 0x021D896C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0 + add r4, r1, #0 + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r5, #0xc] + mov r1, #0 + bl FUN_0200ABC0 + add r0, r5, #0 + mov r1, #3 + mov r2, #1 + bl MOD53_021D91C8 + add r0, r5, #0 + mov r1, #0x10 + bl MOD53_021D93E0 + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD53_021D896C + + thumb_func_start MOD53_021D89A0 +MOD53_021D89A0: ; 0x021D89A0 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x30] + add r4, r1, #0 + bl MOD53_021D923C + cmp r0, #0 + beq _021D89BE + add r0, r5, #0 + mov r1, #0x11 + bl MOD53_021D93E0 + mov r0, #0xc8 + bl FUN_02031588 +_021D89BE: + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD53_021D89A0 + + thumb_func_start MOD53_021D89C8 +MOD53_021D89C8: ; 0x021D89C8 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #0xc8 + add r5, r1, #0 + bl FUN_020315D8 + cmp r0, #0 + bne _021D89E2 + bl FUN_02030F20 + cmp r0, #1 + bne _021D89FA +_021D89E2: + mov r1, #0x10 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x27 + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r5, #3 +_021D89FA: + add r0, r4, #0 + bl MOD53_021D8470 + add r0, r5, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD53_021D89C8 + + thumb_func_start MOD53_021D8A08 +MOD53_021D8A08: ; 0x021D8A08 + add r0, r1, #0 + bx lr + thumb_func_end MOD53_021D8A08 + + thumb_func_start MOD53_021D8A0C +MOD53_021D8A0C: ; 0x021D8A0C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + mov r1, #5 + mov r2, #1 + bl MOD53_021D91C8 + add r0, r5, #0 + mov r1, #0x14 + bl MOD53_021D93E0 + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD53_021D8A0C + + thumb_func_start MOD53_021D8A2C +MOD53_021D8A2C: ; 0x021D8A2C + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x30] + add r4, r1, #0 + bl MOD53_021D923C + cmp r0, #0 + beq _021D8A44 + add r0, r5, #0 + mov r1, #0xc + bl MOD53_021D93E0 +_021D8A44: + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD53_021D8A2C + + thumb_func_start MOD53_021D8A50 +MOD53_021D8A50: ; 0x021D8A50 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x30] + add r4, r1, #0 + cmp r0, #0xff + beq _021D8A6E + bl MOD53_021D923C + cmp r0, #0 + bne _021D8A6E + ldr r0, [r5, #0x30] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD7C +_021D8A6E: + add r0, r5, #0 + mov r1, #2 + mov r2, #1 + bl MOD53_021D91C8 + add r0, r5, #0 + mov r1, #0x16 + bl MOD53_021D93E0 + ldr r0, _021D8AA8 ; =0x000005E4 + bl FUN_020054C8 + bl FUN_02031190 + cmp r0, #0 + bne _021D8A96 + add r0, r5, #0 + mov r1, #0 + bl MOD53_021D926C +_021D8A96: + bl FUN_02030F20 + ldr r1, _021D8AAC ; =0x000093B0 + str r0, [r5, r1] + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8AA8: .word 0x000005E4 +_021D8AAC: .word 0x000093B0 + thumb_func_end MOD53_021D8A50 + + thumb_func_start MOD53_021D8AB0 +MOD53_021D8AB0: ; 0x021D8AB0 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D8AF4 ; =0x000093B0 + add r4, r1, #0 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D8ACE + bl FUN_02030F20 + ldr r1, _021D8AF4 ; =0x000093B0 + ldr r2, [r5, r1] + cmp r2, r0 + beq _021D8ACE + mov r0, #0 + str r0, [r5, r1] +_021D8ACE: + ldr r0, [r5, #0x30] + bl MOD53_021D923C + cmp r0, #0 + beq _021D8AE8 + add r0, r5, #0 + mov r1, #0x17 + bl MOD53_021D93E0 + mov r0, #0x31 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r5, r0] +_021D8AE8: + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D8AF4: .word 0x000093B0 + thumb_func_end MOD53_021D8AB0 + + thumb_func_start MOD53_021D8AF8 +MOD53_021D8AF8: ; 0x021D8AF8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D8B5C ; =0x000093B0 + add r4, r1, #0 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D8B16 + bl FUN_02030F20 + ldr r1, _021D8B5C ; =0x000093B0 + ldr r2, [r5, r1] + cmp r2, r0 + beq _021D8B16 + mov r0, #0 + str r0, [r5, r1] +_021D8B16: + mov r0, #0x31 + lsl r0, r0, #4 + ldr r1, [r5, r0] + add r1, r1, #1 + str r1, [r5, r0] + ldr r0, [r5, r0] + cmp r0, #0x3c + ble _021D8B50 + ldr r0, _021D8B5C ; =0x000093B0 + ldr r0, [r5, r0] + cmp r0, #0 + bne _021D8B50 + add r0, r5, #0 + bl MOD53_021D925C + add r0, r5, #0 + mov r1, #4 + bl MOD53_021D93E0 + bl FUN_02031190 + cmp r0, #0 + bne _021D8B50 + ldr r0, _021D8B60 ; =0x000093F4 + mov r1, #1 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD53_021D926C +_021D8B50: + add r0, r5, #0 + bl MOD53_021D8470 + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D8B5C: .word 0x000093B0 +_021D8B60: .word 0x000093F4 + thumb_func_end MOD53_021D8AF8 + + thumb_func_start MOD53_021D8B64 +MOD53_021D8B64: ; 0x021D8B64 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r4, r0, #0 + add r6, r2, #0 + cmp r5, #0xf + bgt _021D8B96 + bge _021D8C42 + cmp r5, #9 + bhi _021D8C4A + add r1, r5, r5 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D8B82: ; jump table + .short _021D8C40 - _021D8B82 - 2 ; case 0 + .short _021D8B9C - _021D8B82 - 2 ; case 1 + .short _021D8C40 - _021D8B82 - 2 ; case 2 + .short _021D8BDA - _021D8B82 - 2 ; case 3 + .short _021D8C40 - _021D8B82 - 2 ; case 4 + .short _021D8C40 - _021D8B82 - 2 ; case 5 + .short _021D8C40 - _021D8B82 - 2 ; case 6 + .short _021D8C40 - _021D8B82 - 2 ; case 7 + .short _021D8C42 - _021D8B82 - 2 ; case 8 + .short _021D8C42 - _021D8B82 - 2 ; case 9 +_021D8B96: + cmp r5, #0x15 + beq _021D8BE0 + pop {r4, r5, r6, pc} +_021D8B9C: + mov r0, #0xc1 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #6 + beq _021D8BAA + cmp r0, #0xe + bne _021D8BB0 +_021D8BAA: + add r0, r4, #0 + bl MOD53_021D9440 +_021D8BB0: + mov r0, #0x92 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl MOD53_021D840C + add r0, r6, #0 + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r4, #0xc] + mov r1, #0 + bl FUN_0200ABC0 + mov r0, #0x32 + lsl r0, r0, #4 + str r6, [r4, r0] + ldr r0, _021D8C4C ; =0x000093B4 + mov r1, #0 + str r1, [r4, r0] + b _021D8C42 +_021D8BDA: + bl MOD53_021D925C + b _021D8C42 +_021D8BE0: + ldr r0, _021D8C50 ; =0x000093BC + ldrb r0, [r4, r0] + cmp r0, #1 + beq _021D8C4A + add r0, r6, #0 + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r4, #0xc] + mov r1, #0 + bl FUN_0200ABC0 + bl FUN_02031190 + cmp r6, r0 + beq _021D8C4A + bl FUN_02031190 + cmp r0, #0 + bne _021D8C14 + ldr r1, _021D8C4C ; =0x000093B4 + ldr r0, _021D8C54 ; =0x0000FFFF + ldr r2, [r4, r1] + eor r0, r6 + and r0, r2 + str r0, [r4, r1] +_021D8C14: + mov r0, #0xc1 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #6 + beq _021D8C22 + cmp r0, #0xe + bne _021D8C32 +_021D8C22: + add r0, r4, #0 + bl MOD53_021D9440 + mov r0, #0xb2 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_020191D0 +_021D8C32: + mov r0, #0x92 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl MOD53_021D840C + b _021D8C42 +_021D8C40: + pop {r4, r5, r6, pc} +_021D8C42: + add r0, r4, #0 + add r1, r5, #0 + bl MOD53_021D93E0 +_021D8C4A: + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8C4C: .word 0x000093B4 +_021D8C50: .word 0x000093BC +_021D8C54: .word 0x0000FFFF + thumb_func_end MOD53_021D8B64 + + thumb_func_start MOD53_021D8C58 +MOD53_021D8C58: ; 0x021D8C58 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + ldr r4, [sp, #0x38] + mov ip, r1 + add r6, r2, #0 + add r7, r3, #0 + str r0, [sp, #0x18] + ldr r3, [sp, #0x3c] + ldr r2, [sp, #0x40] + ldr r1, [sp, #0x44] + cmp r4, #0 + bge _021D8C84 + neg r0, r4 + cmp r0, r2 + ble _021D8C78 + add r0, r2, #0 +_021D8C78: + ldr r5, [sp, #0x30] + mov r4, #0 + sub r5, r5, r0 + add r6, r6, r0 + str r5, [sp, #0x30] + sub r2, r2, r0 +_021D8C84: + cmp r3, #0 + bge _021D8C9C + neg r0, r3 + cmp r0, r1 + ble _021D8C90 + add r0, r1, #0 +_021D8C90: + ldr r5, [sp, #0x34] + mov r3, #0 + sub r5, r5, r0 + add r7, r7, r0 + str r5, [sp, #0x34] + sub r1, r1, r0 +_021D8C9C: + ldr r0, [sp, #0x30] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp] + ldr r0, [sp, #0x34] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + lsl r0, r3, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0xc] + lsl r0, r2, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x14] + lsl r2, r6, #0x10 + lsl r3, r7, #0x10 + ldr r0, [sp, #0x18] + mov r1, ip + lsr r2, r2, #0x10 + lsr r3, r3, #0x10 + bl FUN_02019658 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD53_021D8C58 + + thumb_func_start MOD53_021D8CD8 +MOD53_021D8CD8: ; 0x021D8CD8 + push {r4, r5, r6, r7, lr} + sub sp, #0x3c + str r0, [sp, #0x18] + ldr r0, [sp, #0x50] + str r1, [sp, #0x1c] + str r0, [sp, #0x50] + ldr r0, [sp, #0x54] + str r2, [sp, #0x20] + str r0, [sp, #0x54] + ldr r0, [sp, #0x50] + str r3, [sp, #0x24] + ldr r4, [r0] + ldr r0, [sp, #0x54] + ldr r5, [r0] + add r0, r2, #0 + str r0, [sp, #0x38] + add r0, r3, #0 + str r0, [sp, #0x30] + ldr r0, [sp, #0x58] + cmp r0, #0 + bne _021D8D18 + ldr r0, [sp, #0x5c] + cmp r0, #0 + bne _021D8D18 + ldr r0, [sp, #0x50] + add r1, r2, #0 + str r1, [r0] + ldr r0, [sp, #0x54] + add r1, r3, #0 + str r1, [r0] + add sp, #0x3c + pop {r4, r5, r6, r7, pc} +_021D8D18: + ldr r0, [sp, #0x20] + sub r0, r0, r4 + str r0, [sp, #0x34] + bpl _021D8D24 + neg r0, r0 + str r0, [sp, #0x34] +_021D8D24: + ldr r0, [sp, #0x24] + sub r7, r0, r5 + bpl _021D8D2C + neg r7, r7 +_021D8D2C: + ldr r0, [sp, #0x34] + cmp r0, r7 + ble _021D8DBA + ldr r0, [sp, #0x20] + cmp r4, r0 + ble _021D8D52 + ldr r0, [sp, #0x24] + cmp r5, r0 + ble _021D8D44 + mov r0, #1 + str r0, [sp, #0x2c] + b _021D8D4A +_021D8D44: + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x2c] +_021D8D4A: + str r4, [sp, #0x38] + ldr r4, [sp, #0x20] + ldr r5, [sp, #0x24] + b _021D8D64 +_021D8D52: + ldr r0, [sp, #0x24] + cmp r5, r0 + bge _021D8D5E + mov r0, #1 + str r0, [sp, #0x2c] + b _021D8D64 +_021D8D5E: + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x2c] +_021D8D64: + mov r0, #6 + str r0, [sp] + str r0, [sp, #4] + str r4, [sp, #8] + str r5, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + mov r2, #0 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + add r3, r2, #0 + bl MOD53_021D8C58 + ldr r0, [sp, #0x34] + add r4, r4, #1 + asr r6, r0, #1 + ldr r0, [sp, #0x38] + cmp r4, r0 + bgt _021D8E3E +_021D8D8A: + sub r6, r6, r7 + bpl _021D8D96 + ldr r0, [sp, #0x34] + add r6, r6, r0 + ldr r0, [sp, #0x2c] + add r5, r5, r0 +_021D8D96: + mov r0, #6 + str r0, [sp] + str r0, [sp, #4] + str r4, [sp, #8] + str r5, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + mov r2, #0 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + add r3, r2, #0 + bl MOD53_021D8C58 + ldr r0, [sp, #0x38] + add r4, r4, #1 + cmp r4, r0 + ble _021D8D8A + b _021D8E3E +_021D8DBA: + ldr r0, [sp, #0x24] + cmp r5, r0 + ble _021D8DDA + ldr r0, [sp, #0x20] + cmp r4, r0 + ble _021D8DCC + mov r0, #1 + str r0, [sp, #0x28] + b _021D8DD2 +_021D8DCC: + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x28] +_021D8DD2: + str r5, [sp, #0x30] + ldr r5, [sp, #0x24] + ldr r4, [sp, #0x20] + b _021D8DEC +_021D8DDA: + ldr r0, [sp, #0x20] + cmp r4, r0 + bge _021D8DE6 + mov r0, #1 + str r0, [sp, #0x28] + b _021D8DEC +_021D8DE6: + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x28] +_021D8DEC: + mov r0, #6 + str r0, [sp] + str r0, [sp, #4] + str r4, [sp, #8] + str r5, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + mov r2, #0 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + add r3, r2, #0 + bl MOD53_021D8C58 + ldr r0, [sp, #0x30] + add r5, r5, #1 + asr r6, r7, #1 + cmp r5, r0 + bgt _021D8E3E +_021D8E10: + ldr r0, [sp, #0x34] + sub r6, r6, r0 + bpl _021D8E1C + ldr r0, [sp, #0x28] + add r6, r6, r7 + add r4, r4, r0 +_021D8E1C: + mov r0, #6 + str r0, [sp] + str r0, [sp, #4] + str r4, [sp, #8] + str r5, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + mov r2, #0 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + add r3, r2, #0 + bl MOD53_021D8C58 + ldr r0, [sp, #0x30] + add r5, r5, #1 + cmp r5, r0 + ble _021D8E10 +_021D8E3E: + ldr r1, [sp, #0x20] + ldr r0, [sp, #0x50] + str r1, [r0] + ldr r1, [sp, #0x24] + ldr r0, [sp, #0x54] + str r1, [r0] + add sp, #0x3c + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD53_021D8CD8 + + thumb_func_start MOD53_021D8E50 +MOD53_021D8E50: ; 0x021D8E50 + mov r2, #0 +_021D8E52: + ldrb r3, [r0, #8] + lsl r3, r3, #0x1a + lsr r3, r3, #0x1d + strh r3, [r1, #2] + ldrb r3, [r0, #8] + lsl r3, r3, #0x1a + lsr r3, r3, #0x1d + beq _021D8E76 + add r3, r0, r3 + sub r3, r3, #1 + ldrb r3, [r3] + strb r3, [r1] + ldrb r3, [r0, #8] + lsl r3, r3, #0x1a + lsr r3, r3, #0x1d + add r3, r0, r3 + ldrb r3, [r3, #3] + strb r3, [r1, #1] +_021D8E76: + add r2, r2, #1 + add r0, #0xa + add r1, r1, #4 + cmp r2, #5 + blt _021D8E52 + bx lr + .align 2, 0 + thumb_func_end MOD53_021D8E50 + + thumb_func_start MOD53_021D8E84 +MOD53_021D8E84: ; 0x021D8E84 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + str r0, [sp, #0x10] + mov r0, #0 + str r1, [sp, #0x14] + str r2, [sp, #0x18] + str r3, [sp, #0x1c] + str r0, [sp, #0x20] + str r0, [sp, #0x24] + add r5, r1, #0 + add r7, r2, #0 +_021D8E9A: + ldrb r0, [r5, #8] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1d + beq _021D8F0A + ldrh r0, [r7, #2] + cmp r0, #0 + beq _021D8EB4 + ldrb r0, [r7] + sub r0, #9 + str r0, [sp, #0x2c] + ldrb r0, [r7, #1] + sub r0, #0x11 + str r0, [sp, #0x28] +_021D8EB4: + ldrb r0, [r5, #8] + mov r4, #0 + lsl r0, r0, #0x1a + lsr r1, r0, #0x1d + cmp r1, #0 + ble _021D8F0A + mov r0, #1 + str r0, [sp, #0x20] + cmp r1, #0 + ble _021D8F0A +_021D8EC8: + add r0, sp, #0x2c + str r0, [sp] + add r0, sp, #0x28 + str r0, [sp, #4] + str r4, [sp, #8] + ldrh r0, [r7, #2] + mov r6, #0xc0 + add r3, r5, r4 + str r0, [sp, #0xc] + ldrb r1, [r5, #8] + ldrb r3, [r3, #4] + ldr r0, [sp, #0x10] + lsl r2, r1, #0x18 + lsr r2, r2, #0x1e + mul r6, r2 + ldr r2, _021D8F4C ; =0x021D9648 + lsl r1, r1, #0x1d + add r2, r2, r6 + lsr r6, r1, #0x1d + mov r1, #0x18 + mul r1, r6 + add r1, r2, r1 + ldrb r2, [r5, r4] + sub r3, #0x11 + sub r2, #9 + bl MOD53_021D8CD8 + ldrb r0, [r5, #8] + add r4, r4, #1 + lsl r0, r0, #0x1a + lsr r0, r0, #0x1d + cmp r4, r0 + blt _021D8EC8 +_021D8F0A: + ldr r0, [sp, #0x24] + add r5, #0xa + add r0, r0, #1 + add r7, r7, #4 + str r0, [sp, #0x24] + cmp r0, #5 + blt _021D8E9A + ldr r0, [sp, #0x20] + cmp r0, #0 + beq _021D8F2A + ldr r0, [sp, #0x1c] + cmp r0, #0 + beq _021D8F2A + ldr r0, [sp, #0x10] + bl FUN_020191D0 +_021D8F2A: + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x18] + bl MOD53_021D8E50 + mov r3, #0 + mov r1, #0x38 +_021D8F36: + ldr r0, [sp, #0x14] + add r3, r3, #1 + ldrb r2, [r0, #8] + bic r2, r1 + strb r2, [r0, #8] + add r0, #0xa + str r0, [sp, #0x14] + cmp r3, #5 + blt _021D8F36 + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8F4C: .word 0x021D9648 + thumb_func_end MOD53_021D8E84 + + thumb_func_start MOD53_021D8F50 +MOD53_021D8F50: ; 0x021D8F50 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, _021D8FB4 ; =0x00004382 + mov r7, #0x76 + mov r6, #0 + add r4, r5, r0 + lsl r7, r7, #2 +_021D8F5E: + bl FUN_02031190 + cmp r6, r0 + beq _021D8FA6 + ldrb r0, [r4, #8] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1d + beq _021D8F9A + add r0, r6, #0 + bl FUN_0202DFA4 + cmp r0, #0 + beq _021D8F9A + mov r0, #0x76 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + ldrb r0, [r4, #8] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1d + add r2, r4, r0 + sub r1, r2, #1 + ldrb r1, [r1] + ldrb r2, [r2, #3] + ldr r0, [r5, r7] + bl MOD53_021D8140 + b _021D8FA6 +_021D8F9A: + mov r0, #0x76 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 +_021D8FA6: + add r6, r6, #1 + add r4, #0xa + add r5, r5, #4 + cmp r6, #5 + blt _021D8F5E + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8FB4: .word 0x00004382 + thumb_func_end MOD53_021D8F50 + + thumb_func_start MOD53_021D8FB8 +MOD53_021D8FB8: ; 0x021D8FB8 + push {r3, lr} + ldrh r1, [r0] + add r1, #0x14 + strh r1, [r0] + ldrh r2, [r0] + mov r1, #0x5a + lsl r1, r1, #2 + cmp r2, r1 + bls _021D8FCE + mov r1, #0 + strh r1, [r0] +_021D8FCE: + ldrh r0, [r0] + bl FUN_0201B970 + mov r1, #0xa + mul r1, r0 + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r0, r0, #0xc + add r0, #0xf + lsl r1, r0, #5 + mov r0, #0x1d + orr r1, r0 + add r0, sp, #0 + strh r1, [r0] + add r0, sp, #0 + mov r1, #0x18 + mov r2, #2 + bl GX_LoadOBJPltt + pop {r3, pc} + thumb_func_end MOD53_021D8FB8 + + thumb_func_start MOD53_021D8FF8 +MOD53_021D8FF8: ; 0x021D8FF8 + push {r3, r4, r5, lr} + mov r5, #0 + add r4, r5, #0 +_021D8FFE: + add r0, r4, #0 + bl FUN_0202DFA4 + cmp r0, #0 + beq _021D900A + add r5, r5, #1 +_021D900A: + add r4, r4, #1 + cmp r4, #5 + blt _021D8FFE + add r0, r5, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD53_021D8FF8 + + thumb_func_start MOD53_021D9014 +MOD53_021D9014: ; 0x021D9014 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r7, r3, #0 + add r5, r0, #0 + str r2, [sp, #0x10] + bl FUN_02031190 + str r0, [sp, #0x14] + add r0, r7, #0 + bl MOD53_021D9184 + cmp r0, #0 + beq _021D90EE + mov r0, #0 + str r0, [sp, #0x18] + add r6, r7, #0 + add r4, r7, #0 +_021D9036: + mov r0, #0xcd + lsl r0, r0, #2 + ldr r0, [r6, r0] + cmp r0, #0 + bne _021D904E + mov r0, #0x21 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + b _021D905A +_021D904E: + mov r0, #0x21 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 +_021D905A: + ldr r0, [sp, #0x18] + add r6, #8 + add r0, r0, #1 + add r4, r4, #4 + str r0, [sp, #0x18] + cmp r0, #5 + blt _021D9036 + mov r6, #0 + add r4, r5, #0 +_021D906C: + mov r0, #0x50 + mov r1, #0 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r4, #0 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + add r6, r6, #1 + add r4, #0x10 + cmp r6, #5 + blt _021D906C + mov r6, #0 + add r4, r7, #0 +_021D908C: + mov r0, #0xcd + lsl r0, r0, #2 + ldr r0, [r7, r0] + cmp r0, #0 + beq _021D90DC + ldr r1, [r4, #0x14] + bl FUN_02023990 + ldr r0, [sp, #0x14] + cmp r0, r6 + bne _021D90C0 + mov r0, #0 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D90F4 ; =0x0003040F + mov r1, #1 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r2, [r4, #0x14] + add r0, r5, #0 + mov r3, #0 + bl FUN_0201BDE0 + b _021D90DC +_021D90C0: + mov r0, #0 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, [sp, #0x10] + mov r1, #1 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r2, [r4, #0x14] + add r0, r5, #0 + mov r3, #0 + bl FUN_0201BDE0 +_021D90DC: + add r0, r5, #0 + bl FUN_020191D0 + add r6, r6, #1 + add r7, #8 + add r4, r4, #4 + add r5, #0x10 + cmp r6, #5 + blt _021D908C +_021D90EE: + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021D90F4: .word 0x0003040F + thumb_func_end MOD53_021D9014 + + thumb_func_start MOD53_021D90F8 +MOD53_021D90F8: ; 0x021D90F8 + push {r4, lr} + add r4, r0, #0 + bl FUN_02031190 + cmp r0, #0 + bne _021D9138 + bl FUN_02031370 + cmp r0, #0 + beq _021D914C + ldr r1, _021D9150 ; =0x000093F4 + ldr r0, _021D9154 ; =0x00004381 + ldr r2, [r4, r1] + sub r1, #0x37 + strb r2, [r4, r0] + sub r0, #9 + add r2, r4, r1 + add r3, r4, r0 + mov r1, #0xa +_021D911E: + ldrb r0, [r3] + add r3, r3, #1 + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _021D911E + ldr r1, _021D9158 ; =0x000093BD + mov r0, #0x78 + add r1, r4, r1 + mov r2, #0x32 + bl FUN_02030BC4 + pop {r4, pc} +_021D9138: + bl FUN_02031388 + cmp r0, #0 + beq _021D914C + ldr r1, _021D915C ; =0x00004378 + mov r0, #0x77 + add r1, r4, r1 + mov r2, #0xa + bl FUN_02030ADC +_021D914C: + pop {r4, pc} + nop +_021D9150: .word 0x000093F4 +_021D9154: .word 0x00004381 +_021D9158: .word 0x000093BD +_021D915C: .word 0x00004378 + thumb_func_end MOD53_021D90F8 + + thumb_func_start MOD53_021D9160 +MOD53_021D9160: ; 0x021D9160 + push {r3, r4, r5, lr} + mov r5, #0 + add r4, r5, #0 +_021D9166: + add r0, r4, #0 + bl FUN_0202DFA4 + cmp r0, #0 + beq _021D9172 + add r5, r5, #1 +_021D9172: + add r4, r4, #1 + cmp r4, #5 + blt _021D9166 + add r0, r5, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD53_021D9160 + + thumb_func_start MOD53_021D917C +MOD53_021D917C: ; 0x021D917C + ldr r3, _021D9180 ; =MOD53_021D9160 + bx r3 + .align 2, 0 +_021D9180: .word MOD53_021D9160 + thumb_func_end MOD53_021D917C + + thumb_func_start MOD53_021D9184 +MOD53_021D9184: ; 0x021D9184 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r7, #0 + add r6, r7, #0 + add r4, r5, #0 +_021D918E: + mov r0, #0xcd + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r0, r0, #4 + str r1, [r4, r0] + add r0, r6, #0 + bl FUN_0202DFA4 + mov r1, #0xcd + lsl r1, r1, #2 + str r0, [r4, r1] + add r6, r6, #1 + add r4, #8 + cmp r6, #5 + blt _021D918E + mov r6, #0 + mov r2, #1 + add r0, r1, #4 +_021D91B2: + ldr r4, [r5, r0] + ldr r3, [r5, r1] + cmp r4, r3 + beq _021D91BC + add r7, r2, #0 +_021D91BC: + add r6, r6, #1 + add r5, #8 + cmp r6, #5 + blt _021D91B2 + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD53_021D9184 + + thumb_func_start MOD53_021D91C8 +MOD53_021D91C8: ; 0x021D91C8 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + add r7, r1, #0 + mov r0, #0x50 + mov r1, #0x27 + add r4, r2, #0 + bl FUN_020219F4 + add r6, r0, #0 + ldr r0, [r5, #0x10] + add r1, r7, #0 + add r2, r6, #0 + bl FUN_0200A8E0 + ldr r0, [r5, #0xc] + ldr r1, [r5, #0x2c] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0xb6 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0xb6 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + cmp r4, #0 + bne _021D9218 + mov r4, #0 +_021D9218: + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + str r3, [sp, #8] + mov r0, #0xb6 + lsl r0, r0, #2 + ldr r2, [r5, #0x2c] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + str r0, [r5, #0x30] + cmp r4, #0 + bne _021D9238 + mov r0, #0xff + str r0, [r5, #0x30] +_021D9238: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD53_021D91C8 + + thumb_func_start MOD53_021D923C +MOD53_021D923C: ; 0x021D923C + push {r3, lr} + cmp r0, #0xff + bne _021D9246 + mov r0, #1 + pop {r3, pc} +_021D9246: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021D9256 + mov r0, #1 + pop {r3, pc} +_021D9256: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD53_021D923C + + thumb_func_start MOD53_021D925C +MOD53_021D925C: ; 0x021D925C + mov r1, #0xb6 + lsl r1, r1, #2 + add r0, r0, r1 + ldr r3, _021D9268 ; =FUN_0200D0E0 + mov r1, #0 + bx r3 + .align 2, 0 +_021D9268: .word FUN_0200D0E0 + thumb_func_end MOD53_021D925C + + thumb_func_start MOD53_021D926C +MOD53_021D926C: ; 0x021D926C + push {r4, lr} + add r4, r1, #0 + bl FUN_02031190 + cmp r0, #0 + bne _021D9288 + bl FUN_02030F20 + add r0, r4, r0 + cmp r0, #5 + ble _021D9284 + mov r0, #5 +_021D9284: + bl FUN_02032B6C +_021D9288: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD53_021D926C + + thumb_func_start MOD53_021D928C +MOD53_021D928C: ; 0x021D928C + push {r3, r4, r5, lr} + add r4, r0, #0 + bl MOD53_021D9160 + add r5, r0, #0 + cmp r5, #5 + bhi _021D932A + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D92A6: ; jump table + .short _021D932A - _021D92A6 - 2 ; case 0 + .short _021D92B2 - _021D92A6 - 2 ; case 1 + .short _021D92F8 - _021D92A6 - 2 ; case 2 + .short _021D92F8 - _021D92A6 - 2 ; case 3 + .short _021D92F8 - _021D92A6 - 2 ; case 4 + .short _021D9324 - _021D92A6 - 2 ; case 5 +_021D92B2: + mov r0, #0xc1 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0xe + bgt _021D932A + bl FUN_0202CB8C + cmp r0, #1 + beq _021D92CC + mov r0, #0x25 + mov r1, #1 + lsl r0, r0, #0xa + str r1, [r4, r0] +_021D92CC: + mov r0, #0xc2 + mov r1, #0x13 + lsl r0, r0, #2 + str r1, [r4, r0] + mov r0, #1 + bl FUN_02032B6C + ldr r0, _021D93CC ; =0x000093F8 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D92F4 + add r0, r4, #0 + bl MOD53_021D9440 + mov r0, #0x9a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x15 + bl FUN_02020130 +_021D92F4: + mov r0, #2 + pop {r3, r4, r5, pc} +_021D92F8: + mov r0, #1 + bl FUN_02052B74 + mov r0, #0xc5 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r5, r0 + bge _021D932A + ldr r0, _021D93D0 ; =0x000093F4 + ldr r0, [r4, r0] + cmp r0, #2 + bne _021D931A + add r0, r4, #0 + mov r1, #0 + bl MOD53_021D926C + b _021D932A +_021D931A: + add r0, r4, #0 + mov r1, #1 + bl MOD53_021D926C + b _021D932A +_021D9324: + mov r0, #8 + bl FUN_02052B74 +_021D932A: + mov r0, #0xc5 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r5, r0 + bge _021D9374 + bl FUN_02030F20 + mov r1, #0xc6 + lsl r1, r1, #2 + str r0, [r4, r1] + bl FUN_0202CB8C + mov r1, #0xc7 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, _021D93D4 ; =0x00009404 + ldr r2, [r4, r0] + cmp r2, #0 + beq _021D9374 + add r0, r0, #4 + ldr r1, [r4, r1] + ldr r0, [r4, r0] + tst r0, r1 + bne _021D9374 + add r0, r4, #0 + mov r1, #1 + bl MOD53_021D926C + ldr r1, _021D93D0 ; =0x000093F4 + mov r0, #1 + str r0, [r4, r1] + add r0, r1, #0 + mov r2, #0 + add r0, #0x10 + str r2, [r4, r0] + add r1, #0x14 + str r2, [r4, r1] +_021D9374: + bl MOD53_021D9160 + mov r1, #0xc5 + lsl r1, r1, #2 + str r0, [r4, r1] + bl FUN_02030F20 + mov r1, #0xc6 + lsl r1, r1, #2 + ldr r1, [r4, r1] + cmp r1, r0 + bge _021D93C8 + ldr r0, _021D93D0 ; =0x000093F4 + mov r1, #2 + str r1, [r4, r0] + mov r1, #1 + add r0, #0x10 + str r1, [r4, r0] + bl FUN_0202CB8C + mov r1, #0xc7 + lsl r1, r1, #2 + ldr r1, [r4, r1] + eor r0, r1 + ldr r1, _021D93D8 ; =0x00009408 + str r0, [r4, r1] + ldr r1, [r4, r1] + mov r0, #0 + sub r1, r1, #2 + cmp r1, #0xe + bhi _021D93C0 + mov r2, #1 + add r3, r2, #0 + lsl r3, r1 + ldr r1, _021D93DC ; =0x00004045 + tst r1, r3 + beq _021D93C0 + add r0, r2, #0 +_021D93C0: + cmp r0, #0 + bne _021D93C8 + bl ErrorHandling +_021D93C8: + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D93CC: .word 0x000093F8 +_021D93D0: .word 0x000093F4 +_021D93D4: .word 0x00009404 +_021D93D8: .word 0x00009408 +_021D93DC: .word 0x00004045 + thumb_func_end MOD53_021D928C + + thumb_func_start MOD53_021D93E0 +MOD53_021D93E0: ; 0x021D93E0 + mov r2, #0xc2 + lsl r2, r2, #2 + str r1, [r0, r2] + bx lr + thumb_func_end MOD53_021D93E0 + + thumb_func_start MOD53_021D93E8 +MOD53_021D93E8: ; 0x021D93E8 + push {r3, r4} + mov r3, #0xc2 + lsl r3, r3, #2 + sub r4, r3, #4 + ldr r2, [r0, r3] + ldr r4, [r0, r4] + cmp r4, r2 + beq _021D9412 + cmp r1, #2 + beq _021D9404 + sub r1, r3, #4 + str r2, [r0, r1] + pop {r3, r4} + bx lr +_021D9404: + ldr r1, _021D9418 ; =0x021D98A4 + lsl r4, r2, #3 + ldr r1, [r1, r4] + cmp r1, #0 + beq _021D9412 + sub r1, r3, #4 + str r2, [r0, r1] +_021D9412: + pop {r3, r4} + bx lr + nop +_021D9418: .word 0x021D98A4 + thumb_func_end MOD53_021D93E8 + + thumb_func_start MOD53_021D941C +MOD53_021D941C: ; 0x021D941C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D943C ; =0x000093F8 + ldr r2, [r4, r0] + cmp r2, #0 + bne _021D9438 + sub r0, #8 + ldr r0, [r4, r0] + bl FUN_020145C8 + ldr r1, _021D943C ; =0x000093F8 + mov r0, #1 + str r0, [r4, r1] + pop {r4, pc} +_021D9438: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D943C: .word 0x000093F8 + thumb_func_end MOD53_021D941C + + thumb_func_start MOD53_021D9440 +MOD53_021D9440: ; 0x021D9440 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D945C ; =0x000093F8 + ldr r1, [r4, r0] + cmp r1, #0 + beq _021D945A + sub r0, #8 + ldr r0, [r4, r0] + bl FUN_020146C4 + ldr r0, _021D945C ; =0x000093F8 + mov r1, #0 + str r1, [r4, r0] +_021D945A: + pop {r4, pc} + .align 2, 0 +_021D945C: .word 0x000093F8 + thumb_func_end MOD53_021D9440 + + thumb_func_start MOD53_021D9460 +MOD53_021D9460: ; 0x021D9460 + push {r3, lr} + ldr r0, _021D9478 ; =0x021D94E8 + bl FUN_02020988 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _021D9474 + mov r0, #1 + pop {r3, pc} +_021D9474: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021D9478: .word 0x021D94E8 + thumb_func_end MOD53_021D9460 + + thumb_func_start MOD53_021D947C +MOD53_021D947C: ; 0x021D947C + push {r4, r5} + ldrh r4, [r1] + cmp r4, #0 + beq _021D949C + ldrh r4, [r1, #2] + strb r4, [r0] + ldrh r4, [r1, #4] + strb r4, [r0, #4] + ldrh r4, [r1] + sub r4, r4, #1 + lsl r4, r4, #3 + add r5, r1, r4 + ldrh r4, [r5, #2] + strb r4, [r0, #1] + ldrh r4, [r5, #4] + strb r4, [r0, #5] +_021D949C: + ldrh r5, [r1] + cmp r5, #2 + blo _021D94AC + ldrb r4, [r0, #8] + mov r1, #0x38 + bic r4, r1 + mov r1, #0x10 + b _021D94BA +_021D94AC: + ldrb r1, [r0, #8] + mov r4, #0x38 + bic r1, r4 + lsl r4, r5, #0x18 + lsr r4, r4, #0x18 + lsl r4, r4, #0x1d + lsr r4, r4, #0x1a +_021D94BA: + orr r1, r4 + strb r1, [r0, #8] + ldrb r1, [r0, #8] + mov r4, #7 + lsl r2, r2, #0x18 + bic r1, r4 + lsr r4, r2, #0x18 + mov r2, #7 + and r2, r4 + orr r1, r2 + strb r1, [r0, #8] + ldrb r2, [r0, #8] + mov r1, #0xc0 + bic r2, r1 + lsl r1, r3, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1e + lsr r1, r1, #0x18 + orr r1, r2 + strb r1, [r0, #8] + pop {r4, r5} + bx lr + .align 2, 0 + thumb_func_end MOD53_021D947C + + .section .rodata + ; 0x021D94E8 + .incbin "baserom.nds", 0x29BE08, 0x3A0 + + .section .data + ; 0x021D98A0 + .incbin "baserom.nds", 0x29C1C0, 0xC0 diff --git a/arm9/modules/54/asm/module_54.s b/arm9/modules/54/asm/module_54.s new file mode 100644 index 00000000..c3e477c6 --- /dev/null +++ b/arm9/modules/54/asm/module_54.s @@ -0,0 +1,4382 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD54_021D74E0 +MOD54_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, [r5] + add r6, r0, #0 + cmp r1, #0 + beq _021D74F6 + cmp r1, #1 + bne _021D74F4 + b _021D761A +_021D74F4: + b _021D7628 +_021D74F6: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7630 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D7634 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r2, #0x41 + mov r0, #3 + mov r1, #0x33 + lsl r2, r2, #0xc + bl FUN_0201681C + ldr r1, _021D7638 ; =0x00004A60 + add r0, r6, #0 + mov r2, #0x33 + bl FUN_02006268 + ldr r2, _021D7638 ; =0x00004A60 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x33 + bl FUN_02016B94 + str r0, [r4] + add r0, r6, #0 + bl FUN_0200628C + str r0, [r4, #8] + ldr r1, [r0] + ldr r0, _021D763C ; =0x00004A38 + str r1, [r4, r0] + mov r0, #0x33 + bl FUN_0200AA80 + str r0, [r4, #0x24] + ldr r2, _021D7640 ; =0x000001E2 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x33 + bl FUN_0200A86C + str r0, [r4, #0x28] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + bl MOD54_021D7874 + ldr r0, [r4] + bl MOD54_021D7894 + mov r0, #0 + bl FUN_0200E394 + mov r0, #1 + bl FUN_0200E394 + mov r0, #0x10 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x33 + str r0, [sp, #8] + mov r0, #0 + mov r1, #0x11 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add r0, r4, #0 + bl MOD54_021D7AA0 + ldr r0, _021D7644 ; =MOD54_021D784C + add r1, r4, #0 + bl FUN_02015F10 + add r0, r4, #0 + bl MOD54_021D799C + bl MOD54_021D7B8C + add r0, r4, #0 + bl MOD54_021D7BBC + add r0, r4, #0 + bl MOD54_021D7CAC + add r0, r4, #0 + add r1, r6, #0 + bl MOD54_021D7DB4 + mov r1, #0 + mov r0, #0x34 + add r2, r1, #0 + bl FUN_0200433C + add r0, r4, #0 + bl FUN_02084098 + bl FUN_020328E4 + mov r0, #3 + bl FUN_02032B6C + bl FUN_02031190 + cmp r0, #0 + bne _021D75F4 + mov r0, #2 + bl FUN_02052B74 +_021D75F4: + bl FUN_02033E74 + ldr r0, _021D763C ; =0x00004A38 + mov r1, #0xed + lsl r1, r1, #2 + ldr r0, [r4, r0] + add r1, r4, r1 + bl MOD54_021D9570 + ldr r0, _021D7648 ; =MOD54_021D77E8 + add r1, r4, #0 + mov r2, #5 + bl FUN_0200CA60 + str r0, [r4, #0x20] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7628 +_021D761A: + bl FUN_02006278 + mov r0, #0 + str r0, [r5] + add sp, #0xc + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D7628: + mov r0, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021D7630: .word 0xFFFFE0FF +_021D7634: .word 0x04001000 +_021D7638: .word 0x00004A60 +_021D763C: .word 0x00004A38 +_021D7640: .word 0x000001E2 +_021D7644: .word MOD54_021D784C +_021D7648: .word MOD54_021D77E8 + thumb_func_end MOD54_021D74E0 + + thumb_func_start MOD54_021D764C +MOD54_021D764C: ; 0x021D764C + push {r3, r4, r5, lr} + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + bl FUN_02031190 + cmp r0, #0 + bne _021D7672 + ldr r0, _021D7730 ; =0x00004A50 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D7672 + bl FUN_0202CB8C + ldr r1, _021D7730 ; =0x00004A50 + ldr r2, [r4, r1] + and r0, r2 + str r0, [r4, r1] +_021D7672: + ldr r1, [r5] + cmp r1, #3 + bhi _021D7726 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7684: ; jump table + .short _021D768C - _021D7684 - 2 ; case 0 + .short _021D76B4 - _021D7684 - 2 ; case 1 + .short _021D7702 - _021D7684 - 2 ; case 2 + .short _021D771A - _021D7684 - 2 ; case 3 +_021D768C: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7726 + mov r0, #1 + str r0, [r5] + bl FUN_02031190 + cmp r0, #0 + beq _021D7726 + bl MOD54_021D8C08 + cmp r0, #2 + ble _021D7726 + mov r1, #0 + mov r0, #0x72 + add r2, r1, #0 + bl FUN_02030ADC + b _021D7726 +_021D76B4: + mov r0, #0xd1 + lsl r0, r0, #2 + ldr r0, [r4, r0] + lsl r2, r0, #2 + ldr r0, _021D7734 ; =0x021D97E0 + ldr r2, [r0, r2] + cmp r2, #0 + beq _021D76CA + add r0, r4, #0 + blx r2 + str r0, [r5] +_021D76CA: + ldr r0, _021D7738 ; =0x00004A40 + ldrb r0, [r4, r0] + cmp r0, #0 + bne _021D76E2 + mov r0, #0xa6 + lsl r0, r0, #2 + ldr r2, _021D773C ; =0x00010300 + add r0, r4, r0 + mov r1, #0 + add r3, r4, #0 + bl MOD54_021D8AF8 +_021D76E2: + add r0, r4, #0 + bl MOD54_021D8D50 + bl FUN_02031190 + cmp r0, #0 + bne _021D7726 + add r0, r4, #0 + mov r1, #1 + bl MOD54_021D8F94 + ldr r1, [r5] + cmp r1, #1 + bne _021D7726 + str r0, [r5] + b _021D7726 +_021D7702: + mov r0, #0xd1 + lsl r0, r0, #2 + ldr r0, [r4, r0] + lsl r2, r0, #2 + ldr r0, _021D7734 ; =0x021D97E0 + ldr r2, [r0, r2] + cmp r2, #0 + beq _021D7726 + add r0, r4, #0 + blx r2 + str r0, [r5] + b _021D7726 +_021D771A: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7726 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D7726: + ldr r0, [r4, #0x50] + bl FUN_0201FDEC + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7730: .word 0x00004A50 +_021D7734: .word 0x021D97E0 +_021D7738: .word 0x00004A40 +_021D773C: .word 0x00010300 + thumb_func_end MOD54_021D764C + + thumb_func_start MOD54_021D7740 +MOD54_021D7740: ; 0x021D7740 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + bl FUN_02006278 + add r6, r0, #0 + ldr r0, [r6, #0x20] + bl FUN_0200CAB4 + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0x1b + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r7, #0x5f + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_021D776C: + ldr r0, [r5, r7] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D776C + ldr r0, [r6, #0x50] + bl FUN_0201FD58 + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + add r0, r6, #0 + bl MOD54_021D7EDC + ldr r0, [r6] + bl MOD54_021D7A6C + mov r0, #2 + bl FUN_02032B6C + bl FUN_02031B50 + ldr r0, [r6, #8] + ldr r0, [r0, #4] + bl FUN_02052F8C + ldr r0, [r6, #0x28] + bl FUN_0200A8B8 + ldr r0, [r6, #0x24] + bl FUN_0200AB18 + add r0, r6, #0 + bl MOD54_021D7A34 + ldr r0, [sp] + bl FUN_0200627C + ldr r2, _021D77E4 ; =0x04000304 + ldrh r1, [r2] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2] + mov r0, #0 + bl FUN_02052B74 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x33 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D77E4: .word 0x04000304 + thumb_func_end MOD54_021D7740 + + thumb_func_start MOD54_021D77E8 +MOD54_021D77E8: ; 0x021D77E8 + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #0xc] + add r1, #0xc + cmp r0, #0 + beq _021D7842 + ldr r0, [r1, #4] + ldr r3, [r1, #8] + lsl r2, r0, #1 + ldr r0, _021D7844 ; =0x021D968A + ldrb r0, [r0, r2] + cmp r3, r0 + ble _021D7832 + mov r0, #0 + str r0, [r1, #8] + ldr r2, [r1, #4] + add r2, r2, #1 + str r2, [r1, #4] + lsl r3, r2, #1 + ldr r2, _021D7848 ; =0x021D968B + ldrb r2, [r2, r3] + cmp r2, #0xff + bne _021D7818 + str r0, [r1, #4] +_021D7818: + ldr r0, [r1, #0x10] + ldr r1, [r1, #4] + ldr r0, [r0, #0xc] + lsl r2, r1, #1 + ldr r1, _021D7848 ; =0x021D968B + ldrb r1, [r1, r2] + mov r2, #0x20 + lsl r1, r1, #5 + add r0, r0, r1 + mov r1, #0 + bl GX_LoadOBJPltt + b _021D7838 +_021D7832: + ldr r0, [r4, #0x14] + add r0, r0, #1 + str r0, [r4, #0x14] +_021D7838: + mov r0, #0xe9 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD54_021D8A90 +_021D7842: + pop {r4, pc} + .align 2, 0 +_021D7844: .word 0x021D968A +_021D7848: .word 0x021D968B + thumb_func_end MOD54_021D77E8 + + thumb_func_start MOD54_021D784C +MOD54_021D784C: ; 0x021D784C + push {r4, lr} + add r4, r0, #0 + bl FUN_0201C30C + bl FUN_02009F80 + add r0, r4, #0 + bl FUN_0201AB60 + ldr r3, _021D786C ; =0x027E0000 + ldr r1, _021D7870 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + .align 2, 0 +_021D786C: .word 0x027E0000 +_021D7870: .word 0x00003FF8 + thumb_func_end MOD54_021D784C + + thumb_func_start MOD54_021D7874 +MOD54_021D7874: ; 0x021D7874 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7890 ; =0x021D9758 + add r3, sp, #0 + mov r2, #5 +_021D787E: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D787E + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7890: .word 0x021D9758 + thumb_func_end MOD54_021D7874 + + thumb_func_start MOD54_021D7894 +MOD54_021D7894: ; 0x021D7894 + push {r4, r5, lr} + sub sp, #0x9c + ldr r5, _021D7984 ; =0x021D9694 + add r3, sp, #0x8c + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D7988 ; =0x021D9720 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _021D798C ; =0x021D973C + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #5 + bl FUN_02018744 + ldr r5, _021D7990 ; =0x021D96CC + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #6 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D7994 ; =0x021D96E8 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _021D7998 ; =0x021D9704 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + add r0, r4, #0 + mov r1, #1 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x33 + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x33 + bl FUN_02017F18 + add sp, #0x9c + pop {r4, r5, pc} + nop +_021D7984: .word 0x021D9694 +_021D7988: .word 0x021D9720 +_021D798C: .word 0x021D973C +_021D7990: .word 0x021D96CC +_021D7994: .word 0x021D96E8 +_021D7998: .word 0x021D9704 + thumb_func_end MOD54_021D7894 + + thumb_func_start MOD54_021D799C +MOD54_021D799C: ; 0x021D799C + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r6, #0 + add r4, r7, #0 + add r5, r7, #0 +_021D79A6: + mov r0, #8 + mov r1, #0x33 + bl FUN_020219F4 + str r0, [r4, #0x2c] + mov r0, #0xd9 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r0, #4 + str r1, [r5, r0] + mov r0, #0xe3 + lsl r0, r0, #2 + str r1, [r4, r0] + add r6, r6, #1 + add r4, r4, #4 + add r5, #8 + cmp r6, #5 + blt _021D79A6 + mov r0, #0xb4 + mov r1, #0x33 + bl FUN_020219F4 + str r0, [r7, #0x44] + mov r0, #0x28 + mov r1, #0x33 + bl FUN_020219F4 + str r0, [r7, #0x48] + mov r0, #0xd1 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r7, r0] + ldr r0, [r7, #0x28] + ldr r2, [r7, #0x48] + mov r1, #0x11 + bl FUN_0200A8E0 + add r0, r7, #0 + bl MOD54_021D8E64 + mov r0, #0x33 + bl FUN_02053708 + mov r1, #0xea + lsl r1, r1, #2 + str r0, [r7, r1] + mov r0, #0 + str r0, [r7, #0xc] + str r0, [r7, #0x14] + add r2, r7, #0 + str r0, [r7, #0x10] + mov r0, #0x56 + mov r1, #1 + add r2, #0x1c + mov r3, #0x33 + bl FUN_02006C08 + str r0, [r7, #0x18] + mov r1, #0x32 + ldr r0, _021D7A30 ; =0x00004A44 + mov r2, #0 + str r2, [r7, r0] + lsl r1, r1, #4 + str r2, [r7, r1] + mov r1, #2 + add r0, r0, #4 + str r1, [r7, r0] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D7A30: .word 0x00004A44 + thumb_func_end MOD54_021D799C + + thumb_func_start MOD54_021D7A34 +MOD54_021D7A34: ; 0x021D7A34 + push {r4, r5, r6, lr} + add r6, r0, #0 + bl MOD54_021D8F0C + ldr r0, [r6, #0x18] + bl FUN_02016A18 + mov r0, #0xea + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02016A18 + mov r4, #0 + add r5, r6, #0 +_021D7A50: + ldr r0, [r5, #0x2c] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #5 + blt _021D7A50 + ldr r0, [r6, #0x48] + bl FUN_02021A20 + ldr r0, [r6, #0x44] + bl FUN_02021A20 + pop {r4, r5, r6, pc} + thumb_func_end MOD54_021D7A34 + + thumb_func_start MOD54_021D7A6C +MOD54_021D7A6C: ; 0x021D7A6C + push {r4, lr} + add r4, r0, #0 + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD54_021D7A6C + + thumb_func_start MOD54_021D7AA0 +MOD54_021D7AA0: ; 0x021D7AA0 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #2 + ldr r4, [r5] + mov r1, #0 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x33 + str r0, [sp, #4] + mov r0, #0x56 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02006930 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x33 + str r0, [sp, #4] + mov r0, #0xc + add r1, r0, #0 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x33 + bl FUN_02002EEC + mov r1, #0x1a + mov r0, #4 + lsl r1, r1, #4 + mov r2, #0x33 + bl FUN_02002EEC + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x33 + str r0, [sp, #0xc] + mov r0, #0xc + mov r1, #0xa + add r2, r4, #0 + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x33 + str r0, [sp, #0xc] + mov r0, #0xc + mov r1, #0xb + add r2, r4, #0 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + mov r0, #2 + lsl r0, r0, #0xc + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x33 + str r0, [sp, #0xc] + mov r0, #0x56 + mov r1, #2 + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x33 + str r0, [sp, #0xc] + mov r0, #0x56 + mov r1, #3 + add r2, r4, #0 + bl FUN_020068C8 + ldr r0, [r5, #8] + ldr r0, [r0, #8] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x33 + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x33 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD54_021D7AA0 + + thumb_func_start MOD54_021D7B8C +MOD54_021D7B8C: ; 0x021D7B8C + push {r4, lr} + sub sp, #0x10 + ldr r4, _021D7BB8 ; =0x021D96A4 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #0x14 + mov r1, #0x33 + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021D7BB8: .word 0x021D96A4 + thumb_func_end MOD54_021D7B8C + + thumb_func_start MOD54_021D7BBC +MOD54_021D7BBC: ; 0x021D7BBC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x7e + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x33 + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + add r1, r6, #0 + mov r0, #0x1e + add r1, #0x54 + mov r2, #0x33 + bl FUN_02008C9C + str r0, [r6, #0x50] + add r0, r6, #0 + mov r2, #1 + add r0, #0x54 + mov r1, #0 + lsl r2, r2, #0x14 + bl FUN_02008D24 + mov r7, #0x5f + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_021D7C02: + mov r0, #3 + add r1, r4, #0 + mov r2, #0x33 + bl FUN_02008DEC + str r0, [r5, r7] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D7C02 + mov r0, #2 + str r0, [sp] + mov r3, #1 + str r3, [sp, #4] + mov r0, #0x33 + str r0, [sp, #8] + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r6, r0] + mov r1, #0x56 + mov r2, #0xc + bl FUN_02008F34 + mov r1, #0x6b + lsl r1, r1, #2 + str r0, [r6, r1] + mov r0, #2 + str r0, [sp] + mov r2, #1 + str r2, [sp, #4] + mov r0, #0xf + str r0, [sp, #8] + mov r0, #0x33 + sub r1, #0x2c + str r0, [sp, #0xc] + ldr r0, [r6, r1] + mov r1, #0x56 + mov r3, #0 + bl FUN_02008FEC + mov r1, #0x1b + lsl r1, r1, #4 + str r0, [r6, r1] + mov r0, #2 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x33 + sub r1, #0x2c + str r0, [sp, #8] + ldr r0, [r6, r1] + mov r1, #0x56 + mov r2, #0xd + mov r3, #1 + bl FUN_020090AC + mov r1, #0x6d + lsl r1, r1, #2 + str r0, [r6, r1] + mov r0, #2 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x33 + sub r1, #0x2c + str r0, [sp, #8] + ldr r0, [r6, r1] + mov r1, #0x56 + mov r2, #0xe + mov r3, #1 + bl FUN_020090AC + mov r1, #0x6e + lsl r1, r1, #2 + str r0, [r6, r1] + sub r1, #0xc + ldr r0, [r6, r1] + bl FUN_02009A50 + mov r0, #0x1b + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009CF0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD54_021D7BBC + + thumb_func_start MOD54_021D7CAC +MOD54_021D7CAC: ; 0x021D7CAC + push {r4, r5, r6, r7, lr} + sub sp, #0x5c + mov r1, #2 + add r5, r0, #0 + str r1, [sp] + sub r0, r1, #3 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + mov r3, #0x5f + str r0, [sp, #0xc] + mov r2, #1 + lsl r3, r3, #2 + str r2, [sp, #0x10] + ldr r2, [r5, r3] + str r2, [sp, #0x14] + add r2, r3, #4 + ldr r2, [r5, r2] + str r2, [sp, #0x18] + add r2, r3, #0 + add r2, #8 + ldr r2, [r5, r2] + str r2, [sp, #0x1c] + add r2, r3, #0 + add r2, #0xc + ldr r2, [r5, r2] + add r3, #0x88 + str r2, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r5, r3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02008AA4 + ldr r0, [r5, #0x50] + mov r1, #0 + str r0, [sp, #0x2c] + mov r0, #0x81 + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [sp, #0x30] + mov r0, #1 + lsl r0, r0, #0xc + str r1, [sp, #0x3c] + str r0, [sp, #0x40] + str r0, [sp, #0x44] + str r0, [sp, #0x48] + add r0, sp, #0x2c + strh r1, [r0, #0x20] + mov r0, #1 + str r0, [sp, #0x50] + str r0, [sp, #0x54] + mov r0, #0x33 + str r0, [sp, #0x58] + lsl r0, r0, #0xe + str r0, [sp, #0x34] + mov r0, #0x15 + lsl r0, r0, #0xe + str r0, [sp, #0x38] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #0x8a + lsl r1, r1, #2 + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r7, #0x8b + ldr r4, _021D7DB0 ; =0x021D96B4 + mov r6, #0 + lsl r7, r7, #2 +_021D7D4C: + ldrh r0, [r4, #4] + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldrh r0, [r4, #6] + lsl r0, r0, #0xc + str r0, [sp, #0x38] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #0x8b + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x8b + lsl r0, r0, #2 + sub r1, r6, #1 + lsl r1, r1, #1 + ldr r0, [r5, r0] + add r1, #0x1b + bl FUN_02020130 + ldr r0, [r5, r7] + mov r1, #0 + bl FUN_020200A0 + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #5 + blt _021D7D4C + mov r0, #6 + lsl r0, r0, #0xe + str r0, [sp, #0x34] + mov r0, #0x1a + lsl r0, r0, #0x10 + str r0, [sp, #0x38] + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x5c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D7DB0: .word 0x021D96B4 + thumb_func_end MOD54_021D7CAC + + thumb_func_start MOD54_021D7DB4 +MOD54_021D7DB4: ; 0x021D7DB4 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0x14 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _021D7E90 ; =0x000001C3 + mov r1, #0xbe + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r4] + add r1, r4, r1 + mov r2, #5 + mov r3, #0x1a + bl FUN_02019064 + mov r0, #0xbe + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + mov r1, #0xba + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r4] + add r1, r4, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r0, #0xba + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #1 + str r0, [sp] + mov r0, #0x1a + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + mov r0, #0x94 + mov r1, #0xc2 + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r4] + add r1, r4, r1 + mov r2, #0 + mov r3, #3 + bl FUN_02019064 + mov r0, #0xc2 + lsl r0, r0, #2 + ldr r1, [r4, #0x48] + add r0, r4, r0 + mov r2, #0 + bl MOD54_021D7E98 + mov r0, #6 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + mov r0, #0xb + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + mov r0, #0xc8 + mov r1, #0xa6 + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r4] + add r1, r4, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r0, #0xa6 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0xa6 + lsl r0, r0, #2 + ldr r2, _021D7E94 ; =0x00010300 + add r0, r4, r0 + mov r1, #0 + add r3, r4, #0 + bl MOD54_021D8AF8 + add sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 +_021D7E90: .word 0x000001C3 +_021D7E94: .word 0x00010300 + thumb_func_end MOD54_021D7DB4 + + thumb_func_start MOD54_021D7E98 +MOD54_021D7E98: ; 0x021D7E98 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + add r4, r2, #0 + mov r0, #1 + mov r2, #0 + add r7, r1, #0 + bl FUN_02002E14 + add r6, r0, #0 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + mov r1, #1 + str r1, [sp] + mov r0, #0x41 + mov r3, #0xd0 + str r4, [sp, #4] + sub r4, r3, r6 + lsl r0, r0, #0xa + lsr r3, r4, #0x1f + str r0, [sp, #8] + mov r0, #0 + add r3, r4, r3 + str r0, [sp, #0xc] + add r0, r5, #0 + add r2, r7, #0 + asr r3, r3, #1 + bl FUN_0201BDE0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD54_021D7E98 + + thumb_func_start MOD54_021D7EDC +MOD54_021D7EDC: ; 0x021D7EDC + push {r4, lr} + add r4, r0, #0 + mov r0, #0xa6 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0xc2 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0xbe + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0xba + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD54_021D7EDC + + thumb_func_start MOD54_021D7F0C +MOD54_021D7F0C: ; 0x021D7F0C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r0, #0 + mov r1, #1 + bl FUN_020334E8 + bl FUN_02031190 + cmp r0, #0 + bne _021D7F2E + add r0, r5, #0 + mov r1, #2 + mov r2, #0 + bl MOD54_021D8C90 + b _021D7F38 +_021D7F2E: + add r0, r5, #0 + mov r1, #8 + mov r2, #0 + bl MOD54_021D8C90 +_021D7F38: + add r0, r5, #0 + mov r1, #3 + bl MOD54_021D80BC + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD54_021D7F0C + + thumb_func_start MOD54_021D7F44 +MOD54_021D7F44: ; 0x021D7F44 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD54_021D7F70 + bl FUN_02031190 + cmp r0, #0 + bne _021D7F66 + bl MOD54_021D8ADC + cmp r0, #1 + beq _021D7F6C + add r0, r5, #0 + bl MOD54_021D8C04 + b _021D7F6C +_021D7F66: + add r0, r5, #0 + bl MOD54_021D8C04 +_021D7F6C: + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD54_021D7F44 + + thumb_func_start MOD54_021D7F70 +MOD54_021D7F70: ; 0x021D7F70 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, _021D808C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021D7FD6 + bl FUN_02031190 + cmp r0, #0 + bne _021D8086 + bl MOD54_021D8C08 + ldr r1, _021D8090 ; =0x00004A48 + ldr r2, [r4, r1] + cmp r2, r0 + bne _021D7FCC + add r1, #8 + ldr r0, [r4, r1] + cmp r0, #0 + bne _021D7FCC + mov r1, #1 + add r0, sp, #0 + strb r1, [r0, #2] + add r0, r4, #0 + mov r1, #3 + mov r2, #0 + bl MOD54_021D8C90 + add r0, r4, #0 + mov r1, #0x16 + bl MOD54_021D80BC + add r1, sp, #0 + mov r0, #0x75 + add r1, #2 + mov r2, #1 + bl FUN_02030ADC + add r0, r4, #0 + mov r1, #0 + bl MOD54_021D8F40 + add sp, #4 + pop {r3, r4, pc} +_021D7FCC: + ldr r0, _021D8094 ; =0x000005F2 + bl FUN_020054C8 + add sp, #4 + pop {r3, r4, pc} +_021D7FD6: + mov r0, #2 + tst r0, r1 + beq _021D805A + bl FUN_02031190 + cmp r0, #0 + beq _021D800C + ldr r0, _021D8098 ; =0x00004A3C + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D8002 + add r0, r4, #0 + mov r1, #4 + mov r2, #0 + bl MOD54_021D8C90 + add r0, r4, #0 + mov r1, #4 + bl MOD54_021D80BC + add sp, #4 + pop {r3, r4, pc} +_021D8002: + ldr r0, _021D8094 ; =0x000005F2 + bl FUN_020054C8 + add sp, #4 + pop {r3, r4, pc} +_021D800C: + bl FUN_02030F20 + ldr r1, _021D8090 ; =0x00004A48 + ldr r2, [r4, r1] + cmp r2, r0 + bne _021D8050 + add r1, #8 + ldr r0, [r4, r1] + cmp r0, #0 + bne _021D8050 + mov r1, #1 + add r0, sp, #0 + strb r1, [r0, #1] + add r0, r4, #0 + mov r1, #4 + mov r2, #0 + bl MOD54_021D8C90 + add r0, r4, #0 + mov r1, #4 + bl MOD54_021D80BC + add r1, sp, #0 + mov r0, #0x75 + add r1, #1 + mov r2, #1 + bl FUN_02030ADC + add r0, r4, #0 + mov r1, #0 + bl MOD54_021D8F40 + add sp, #4 + pop {r3, r4, pc} +_021D8050: + ldr r0, _021D8094 ; =0x000005F2 + bl FUN_020054C8 + add sp, #4 + pop {r3, r4, pc} +_021D805A: + ldr r0, _021D809C ; =0x00004A4C + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D8086 + bl FUN_02031190 + cmp r0, #0 + bne _021D8086 + bl FUN_02030F20 + ldr r1, _021D8090 ; =0x00004A48 + ldr r1, [r4, r1] + cmp r1, r0 + bne _021D8086 + mov r1, #0 + add r0, sp, #0 + strb r1, [r0] + mov r0, #0x75 + add r1, sp, #0 + mov r2, #1 + bl FUN_02030ADC +_021D8086: + add sp, #4 + pop {r3, r4, pc} + nop +_021D808C: .word 0x021C48B8 +_021D8090: .word 0x00004A48 +_021D8094: .word 0x000005F2 +_021D8098: .word 0x00004A3C +_021D809C: .word 0x00004A4C + thumb_func_end MOD54_021D7F70 + + thumb_func_start MOD54_021D80A0 +MOD54_021D80A0: ; 0x021D80A0 + bx lr + .align 2, 0 + thumb_func_end MOD54_021D80A0 + + thumb_func_start MOD54_021D80A4 +MOD54_021D80A4: ; 0x021D80A4 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + mov r1, #2 + bl MOD54_021D80BC + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD54_021D80A4 + + thumb_func_start MOD54_021D80BC +MOD54_021D80BC: ; 0x021D80BC + mov r2, #0xd1 + mov r3, #0x1e + lsl r2, r2, #2 + str r3, [r0, r2] + add r2, r2, #4 + str r1, [r0, r2] + bx lr + .align 2, 0 + thumb_func_end MOD54_021D80BC + + thumb_func_start MOD54_021D80CC +MOD54_021D80CC: ; 0x021D80CC + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x4c] + add r4, r1, #0 + bl MOD54_021D8D20 + cmp r0, #0 + beq _021D80E6 + mov r0, #0xd2 + lsl r0, r0, #2 + ldr r1, [r5, r0] + sub r0, r0, #4 + str r1, [r5, r0] +_021D80E6: + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD54_021D80CC + + thumb_func_start MOD54_021D80F0 +MOD54_021D80F0: ; 0x021D80F0 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02031190 + cmp r0, #0 + bne _021D810C + mov r0, #0 + str r0, [sp] + mov r0, #0x75 + add r1, sp, #0 + mov r2, #1 + bl FUN_02030ADC +_021D810C: + mov r0, #0xd1 + mov r1, #3 + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD54_021D80F0 + + thumb_func_start MOD54_021D8120 +MOD54_021D8120: ; 0x021D8120 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x33 + add r4, r1, #0 + str r0, [sp] + ldr r0, [r5] + ldr r1, _021D814C ; =0x021D9678 + mov r2, #0x1f + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x32 + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #5 + add r1, #0x24 + str r0, [r5, r1] + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D814C: .word 0x021D9678 + thumb_func_end MOD54_021D8120 + + thumb_func_start MOD54_021D8150 +MOD54_021D8150: ; 0x021D8150 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02031190 + cmp r0, #0 + beq _021D8184 + ldr r0, _021D826C ; =0x00004A3C + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D81A8 + ldr r0, _021D8270 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0xc3 + tst r0, r1 + beq _021D8178 + ldr r0, _021D8274 ; =0x000005F2 + bl FUN_020054C8 +_021D8178: + add r0, r5, #0 + bl MOD54_021D80A0 + add sp, #8 + add r0, r4, #0 + pop {r4, r5, r6, pc} +_021D8184: + ldr r0, _021D8278 ; =0x00004A50 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D81A8 + ldr r0, _021D8270 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0xc3 + tst r0, r1 + beq _021D819C + ldr r0, _021D8274 ; =0x000005F2 + bl FUN_020054C8 +_021D819C: + add r0, r5, #0 + bl MOD54_021D80A0 + add sp, #8 + add r0, r4, #0 + pop {r4, r5, r6, pc} +_021D81A8: + bl MOD54_021D8C08 + add r6, r0, #0 + bl FUN_02030F20 + cmp r6, r0 + beq _021D81C2 + add r0, r5, #0 + bl MOD54_021D80A0 + add sp, #8 + add r0, r4, #0 + pop {r4, r5, r6, pc} +_021D81C2: + mov r0, #0x32 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0x33 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _021D825E + sub r1, r1, #1 + cmp r0, r1 + bne _021D8204 + bl FUN_02031190 + cmp r0, #0 + bne _021D81FA + mov r0, #0 + str r0, [sp, #4] + mov r0, #0x75 + add r1, sp, #4 + mov r2, #1 + bl FUN_02030ADC + add r0, r5, #0 + mov r1, #1 + bl MOD54_021D8F40 +_021D81FA: + add r0, r5, #0 + mov r1, #0 + bl MOD54_021D80BC + b _021D8256 +_021D8204: + bl FUN_02031190 + cmp r0, #0 + bne _021D8220 + add r0, r5, #0 + mov r1, #0xb + bl MOD54_021D80BC + add r0, r5, #0 + mov r1, #0xe + mov r2, #0 + bl MOD54_021D8C90 + b _021D8256 +_021D8220: + add r0, sp, #0 + mov r1, #0 + mov r2, #4 + bl MI_CpuFill8 + mov r1, #0 + add r0, sp, #0 + strb r1, [r0, #2] + bl FUN_02031190 + add r1, sp, #0 + strb r0, [r1] + ldr r0, _021D827C ; =0x00004A54 + mov r1, #1 + strb r1, [r5, r0] + mov r1, #0 + add r0, #0xa + strh r1, [r5, r0] + mov r0, #0xd1 + mov r1, #6 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r0, #0x70 + add r1, sp, #0 + mov r2, #4 + bl FUN_02030ADC +_021D8256: + mov r0, #0x32 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r5, r0] +_021D825E: + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + add sp, #8 + pop {r4, r5, r6, pc} + nop +_021D826C: .word 0x00004A3C +_021D8270: .word 0x021C48B8 +_021D8274: .word 0x000005F2 +_021D8278: .word 0x00004A50 +_021D827C: .word 0x00004A54 + thumb_func_end MOD54_021D8150 + + thumb_func_start MOD54_021D8280 +MOD54_021D8280: ; 0x021D8280 + push {r4, lr} + add r4, r1, #0 + ldr r1, _021D8294 ; =0x00004A5E + mov r2, #0 + strh r2, [r0, r1] + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r4, pc} + nop +_021D8294: .word 0x00004A5E + thumb_func_end MOD54_021D8280 + + thumb_func_start MOD54_021D8298 +MOD54_021D8298: ; 0x021D8298 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02030F20 + ldr r1, _021D8318 ; =0x00004A5C + ldrh r1, [r5, r1] + cmp r1, r0 + bne _021D82B6 + bl MOD54_021D8C08 + ldr r1, _021D8318 ; =0x00004A5C + ldrh r2, [r5, r1] + cmp r2, r0 + beq _021D82CE +_021D82B6: + ldr r0, _021D831C ; =0x00004A5E + mov r1, #0 + strh r1, [r5, r0] + mov r0, #0xd1 + mov r1, #8 + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_021D82CE: + add r0, r1, #2 + ldrsh r0, [r5, r0] + add r2, r0, #1 + add r0, r1, #2 + strh r2, [r5, r0] + ldrsh r0, [r5, r0] + cmp r0, #0x1e + ble _021D830E + add r0, sp, #0 + mov r1, #0 + mov r2, #4 + bl MI_CpuFill8 + mov r1, #1 + add r0, sp, #0 + strb r1, [r0, #2] + bl FUN_02031190 + add r1, sp, #0 + strb r0, [r1] + mov r0, #0x70 + add r1, sp, #0 + mov r2, #4 + bl FUN_02030ADC + ldr r0, _021D831C ; =0x00004A5E + mov r1, #0 + strh r1, [r5, r0] + mov r0, #0xd1 + mov r1, #9 + lsl r0, r0, #2 + str r1, [r5, r0] +_021D830E: + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8318: .word 0x00004A5C +_021D831C: .word 0x00004A5E + thumb_func_end MOD54_021D8298 + + thumb_func_start MOD54_021D8320 +MOD54_021D8320: ; 0x021D8320 + push {r3, r4, r5, lr} + ldr r2, _021D833C ; =0x00004A54 + add r4, r1, #0 + add r5, r0, #0 + mov r1, #0 + strb r1, [r5, r2] + bl MOD54_021D80BC + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D833C: .word 0x00004A54 + thumb_func_end MOD54_021D8320 + + thumb_func_start MOD54_021D8340 +MOD54_021D8340: ; 0x021D8340 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x33 + add r4, r1, #0 + str r0, [sp] + ldr r0, [r5] + ldr r1, _021D836C ; =0x021D9678 + mov r2, #0x1f + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x32 + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #0x17 + add r1, #0x24 + str r0, [r5, r1] + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D836C: .word 0x021D9678 + thumb_func_end MOD54_021D8340 + + thumb_func_start MOD54_021D8370 +MOD54_021D8370: ; 0x021D8370 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD54_021D8C08 + ldr r1, _021D8410 ; =0x00004A48 + ldr r2, [r5, r1] + cmp r2, r0 + bne _021D838A + add r1, #8 + ldr r0, [r5, r1] + cmp r0, #0 + beq _021D83A4 +_021D838A: + ldr r0, _021D8414 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0xc3 + tst r0, r1 + beq _021D839A + ldr r0, _021D8418 ; =0x000005F2 + bl FUN_020054C8 +_021D839A: + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_021D83A4: + mov r0, #0x32 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0x33 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _021D8404 + sub r1, r1, #1 + cmp r0, r1 + bne _021D83DE + mov r0, #0 + str r0, [sp] + mov r0, #0x75 + add r1, sp, #0 + mov r2, #1 + bl FUN_02030ADC + add r0, r5, #0 + mov r1, #1 + bl MOD54_021D8F40 + add r0, r5, #0 + mov r1, #0 + bl MOD54_021D80BC + b _021D83FC +_021D83DE: + bl FUN_02031190 + cmp r0, #0 + bne _021D83F8 + mov r0, #0xd1 + mov r1, #0x18 + lsl r0, r0, #2 + str r1, [r5, r0] + bl MOD54_021D8C08 + ldr r1, _021D841C ; =0x00004A56 + strb r0, [r5, r1] + b _021D83FC +_021D83F8: + bl ErrorHandling +_021D83FC: + mov r0, #0x32 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r5, r0] +_021D8404: + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D8410: .word 0x00004A48 +_021D8414: .word 0x021C48B8 +_021D8418: .word 0x000005F2 +_021D841C: .word 0x00004A56 + thumb_func_end MOD54_021D8370 + + thumb_func_start MOD54_021D8420 +MOD54_021D8420: ; 0x021D8420 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D8448 ; =0x00004A57 + add r4, r1, #0 + ldrb r0, [r5, r0] + cmp r0, #0 + bne _021D8442 + mov r1, #0 + mov r0, #0x73 + add r2, r1, #0 + bl FUN_02030ADC + cmp r0, #1 + bne _021D8442 + ldr r0, _021D8448 ; =0x00004A57 + mov r1, #1 + strb r1, [r5, r0] +_021D8442: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D8448: .word 0x00004A57 + thumb_func_end MOD54_021D8420 + + thumb_func_start MOD54_021D844C +MOD54_021D844C: ; 0x021D844C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + ldr r2, [r4, #0x48] + mov r1, #0x12 + bl FUN_0200A8E0 + mov r0, #0xc2 + lsl r0, r0, #2 + ldr r1, [r4, #0x48] + add r0, r4, r0 + mov r2, #0 + bl MOD54_021D7E98 + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x25 + bl FUN_02020130 + mov r0, #1 + str r0, [r4, #0xc] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD54_021D844C + + thumb_func_start MOD54_021D847C +MOD54_021D847C: ; 0x021D847C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02031190 + cmp r0, #0 + bne _021D848E + bl FUN_02030F20 +_021D848E: + bl FUN_02030F20 + ldr r1, _021D84A8 ; =0x00004A34 + ldr r1, [r5, r1] + cmp r1, r0 + bne _021D84A2 + mov r0, #0xd1 + mov r1, #0x1a + lsl r0, r0, #2 + str r1, [r5, r0] +_021D84A2: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D84A8: .word 0x00004A34 + thumb_func_end MOD54_021D847C + + thumb_func_start MOD54_021D84AC +MOD54_021D84AC: ; 0x021D84AC + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D84CC ; =0x00004A38 + add r4, r1, #0 + ldr r1, _021D84D0 ; =0x00000F74 + ldr r0, [r5, r0] + add r1, r5, r1 + bl MOD54_021D95CC + mov r0, #0xd1 + mov r1, #0x1b + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D84CC: .word 0x00004A38 +_021D84D0: .word 0x00000F74 + thumb_func_end MOD54_021D84AC + + thumb_func_start MOD54_021D84D4 +MOD54_021D84D4: ; 0x021D84D4 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + ldr r0, _021D8514 ; =0x021C4918 + mov r1, #1 + strb r1, [r0, #8] + mov r0, #0x33 + bl FUN_020294F4 + add r1, r0, #0 + ldr r0, [r5, #8] + mov r2, #4 + ldr r0, [r0, #0x10] + bl FUN_02028AD4 + ldr r0, [r5, #8] + mov r1, #0x14 + ldr r0, [r0, #0xc] + bl FUN_0202A170 + mov r0, #0x3a + lsl r0, r0, #4 + add r0, r5, r0 + bl FUN_020336C0 + mov r0, #0xd1 + mov r1, #0x1c + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D8514: .word 0x021C4918 + thumb_func_end MOD54_021D84D4 + + thumb_func_start MOD54_021D8518 +MOD54_021D8518: ; 0x021D8518 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02031190 + cmp r0, #0 + bne _021D852A + bl FUN_02030F20 +_021D852A: + ldr r0, [r5, #8] + mov r2, #0x3a + lsl r2, r2, #4 + ldr r0, [r0] + mov r1, #2 + add r2, r5, r2 + bl FUN_020336C8 + cmp r0, #0 + beq _021D8576 + ldr r0, _021D857C ; =0x00000658 + mov r1, #8 + bl FUN_020054F0 + add r0, r5, #0 + mov r1, #0xd + mov r2, #0 + bl MOD54_021D8C90 + add r0, r5, #0 + mov r1, #0x1d + bl MOD54_021D80BC + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02020130 + mov r1, #0 + mov r0, #0x35 + str r1, [r5, #0xc] + lsl r0, r0, #4 + str r1, [r5, r0] + ldr r0, _021D8580 ; =0x021C4918 + strb r1, [r0, #8] + ldr r0, _021D8584 ; =0x00004A40 + strb r1, [r5, r0] +_021D8576: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D857C: .word 0x00000658 +_021D8580: .word 0x021C4918 +_021D8584: .word 0x00004A40 + thumb_func_end MOD54_021D8518 + + thumb_func_start MOD54_021D8588 +MOD54_021D8588: ; 0x021D8588 + push {r3, r4} + mov r2, #0x35 + lsl r2, r2, #4 + ldr r4, [r0, r2] + add r3, r4, #1 + str r3, [r0, r2] + cmp r4, #0x3c + ble _021D859E + mov r3, #0xf + sub r2, #0xc + str r3, [r0, r2] +_021D859E: + add r0, r1, #0 + pop {r3, r4} + bx lr + thumb_func_end MOD54_021D8588 + + thumb_func_start MOD54_021D85A4 +MOD54_021D85A4: ; 0x021D85A4 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + mov r1, #5 + mov r2, #0 + bl MOD54_021D8C90 + add r0, r5, #0 + mov r1, #0xa + bl MOD54_021D80BC + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD54_021D85A4 + + thumb_func_start MOD54_021D85C4 +MOD54_021D85C4: ; 0x021D85C4 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0x35 + lsl r0, r0, #4 + add r4, r1, #0 + ldr r1, [r5, r0] + add r1, r1, #1 + str r1, [r5, r0] + ldr r0, [r5, r0] + cmp r0, #0x3c + ble _021D85F4 + mov r1, #0x10 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x33 + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r4, #3 +_021D85F4: + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD54_021D85C4 + + thumb_func_start MOD54_021D8600 +MOD54_021D8600: ; 0x021D8600 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x33 + add r4, r1, #0 + str r0, [sp] + ldr r0, [r5] + ldr r1, _021D862C ; =0x021D9678 + mov r2, #0x1f + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x32 + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #0xc + add r1, #0x24 + str r0, [r5, r1] + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D862C: .word 0x021D9678 + thumb_func_end MOD54_021D8600 + + thumb_func_start MOD54_021D8630 +MOD54_021D8630: ; 0x021D8630 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD54_021D8C08 + ldr r1, _021D86D0 ; =0x00004A48 + ldr r2, [r5, r1] + cmp r2, r0 + bne _021D864A + add r1, #8 + ldr r0, [r5, r1] + cmp r0, #0 + beq _021D8664 +_021D864A: + ldr r0, _021D86D4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0xc3 + tst r0, r1 + beq _021D865A + ldr r0, _021D86D8 ; =0x000005F2 + bl FUN_020054C8 +_021D865A: + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_021D8664: + mov r0, #0x32 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0x33 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _021D86C6 + sub r1, r1, #1 + cmp r0, r1 + bne _021D869C + mov r1, #0 + mov r0, #0xd1 + str r1, [sp] + lsl r0, r0, #2 + str r1, [r5, r0] + mov r0, #0x75 + add r1, sp, #0 + mov r2, #1 + bl FUN_02030ADC + add r0, r5, #0 + mov r1, #1 + bl MOD54_021D8F40 + b _021D86BE +_021D869C: + mov r0, #0xd1 + mov r1, #0xd + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0 + mov r0, #0x71 + add r2, r1, #0 + bl FUN_02030ADC + mov r0, #0 + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r5, #0x24] + mov r1, #0 + bl FUN_0200ABC0 +_021D86BE: + mov r0, #0x32 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r5, r0] +_021D86C6: + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D86D0: .word 0x00004A48 +_021D86D4: .word 0x021C48B8 +_021D86D8: .word 0x000005F2 + thumb_func_end MOD54_021D8630 + + thumb_func_start MOD54_021D86DC +MOD54_021D86DC: ; 0x021D86DC + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02031190 + cmp r0, #0 + bne _021D86F6 + add r0, r5, #0 + mov r1, #5 + mov r2, #0 + bl MOD54_021D8C90 + b _021D8710 +_021D86F6: + mov r0, #0 + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r5, #0x24] + mov r1, #0 + bl FUN_0200ABC0 + add r0, r5, #0 + mov r1, #0x10 + mov r2, #0 + bl MOD54_021D8C90 +_021D8710: + add r0, r5, #0 + mov r1, #0xe + bl MOD54_021D80BC + mov r0, #0x35 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD54_021D86DC + + thumb_func_start MOD54_021D872C +MOD54_021D872C: ; 0x021D872C + push {r4, lr} + add r4, r1, #0 + mov r1, #0x35 + lsl r1, r1, #4 + ldr r2, [r0, r1] + add r2, r2, #1 + str r2, [r0, r1] + ldr r2, [r0, r1] + cmp r2, #0x2d + ble _021D8746 + mov r2, #0xf + sub r1, #0xc + str r2, [r0, r1] +_021D8746: + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD54_021D872C + + thumb_func_start MOD54_021D8750 +MOD54_021D8750: ; 0x021D8750 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0xc9 + add r4, r1, #0 + bl FUN_02031588 + mov r0, #0xd1 + mov r1, #0x10 + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD54_021D8750 + + thumb_func_start MOD54_021D8770 +MOD54_021D8770: ; 0x021D8770 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #0xc9 + add r5, r1, #0 + bl FUN_020315D8 + cmp r0, #0 + beq _021D87A2 + mov r0, #0 + add r1, r0, #0 + bl FUN_020334E8 + mov r1, #0x10 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x33 + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r5, #3 +_021D87A2: + add r0, r4, #0 + bl MOD54_021D80A0 + add r0, r5, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD54_021D8770 + + thumb_func_start MOD54_021D87B0 +MOD54_021D87B0: ; 0x021D87B0 + push {r3, r4, r5, lr} + add r4, r1, #0 + mov r1, #9 + mov r2, #0 + add r5, r0, #0 + bl MOD54_021D8C90 + mov r0, #0xd1 + mov r1, #0x12 + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD54_021D87B0 + + thumb_func_start MOD54_021D87D0 +MOD54_021D87D0: ; 0x021D87D0 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x4c] + add r4, r1, #0 + bl MOD54_021D8D20 + cmp r0, #0 + beq _021D87E8 + mov r0, #0xd1 + mov r1, #0xa + lsl r0, r0, #2 + str r1, [r5, r0] +_021D87E8: + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD54_021D87D0 + + thumb_func_start MOD54_021D87F4 +MOD54_021D87F4: ; 0x021D87F4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x4c] + add r4, r1, #0 + cmp r0, #0xff + beq _021D8812 + bl MOD54_021D8D20 + cmp r0, #0 + bne _021D8812 + ldr r0, [r5, #0x4c] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD7C +_021D8812: + add r0, r5, #0 + mov r1, #0xf + mov r2, #1 + bl MOD54_021D8C90 + mov r0, #0xd1 + mov r1, #0x14 + lsl r0, r0, #2 + str r1, [r5, r0] + bl FUN_02031190 + cmp r0, #0 + bne _021D8834 + add r0, r5, #0 + mov r1, #0 + bl MOD54_021D8F40 +_021D8834: + bl FUN_02030F20 + ldr r1, _021D8848 ; =0x00004A58 + str r0, [r5, r1] + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D8848: .word 0x00004A58 + thumb_func_end MOD54_021D87F4 + + thumb_func_start MOD54_021D884C +MOD54_021D884C: ; 0x021D884C + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D8884 ; =0x00004A58 + add r4, r1, #0 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D886A + bl FUN_02030F20 + ldr r1, _021D8884 ; =0x00004A58 + ldr r2, [r5, r1] + cmp r2, r0 + beq _021D886A + mov r0, #0 + str r0, [r5, r1] +_021D886A: + mov r0, #0xd1 + mov r1, #0x15 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0 + add r0, #0xc + str r1, [r5, r0] + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D8884: .word 0x00004A58 + thumb_func_end MOD54_021D884C + + thumb_func_start MOD54_021D8888 +MOD54_021D8888: ; 0x021D8888 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D88E0 ; =0x00004A58 + add r4, r1, #0 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D88A6 + bl FUN_02030F20 + ldr r1, _021D88E0 ; =0x00004A58 + ldr r2, [r5, r1] + cmp r2, r0 + beq _021D88A6 + mov r0, #0 + str r0, [r5, r1] +_021D88A6: + mov r1, #0x35 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r0, r0, #1 + str r0, [r5, r1] + ldr r0, [r5, r1] + cmp r0, #0x3c + ble _021D88D4 + ldr r0, _021D88E0 ; =0x00004A58 + ldr r0, [r5, r0] + cmp r0, #0 + bne _021D88D4 + mov r0, #0 + sub r1, #0xc + str r0, [r5, r1] + bl FUN_02031190 + cmp r0, #0 + bne _021D88D4 + add r0, r5, #0 + mov r1, #1 + bl MOD54_021D8F40 +_021D88D4: + add r0, r5, #0 + bl MOD54_021D80A0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D88E0: .word 0x00004A58 + thumb_func_end MOD54_021D8888 + + thumb_func_start MOD54_021D88E4 +MOD54_021D88E4: ; 0x021D88E4 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + cmp r4, #0xd + bgt _021D8906 + bge _021D891A + cmp r4, #8 + bgt _021D89BE + cmp r4, #2 + blt _021D89BE + beq _021D8914 + cmp r4, #7 + beq _021D89B8 + cmp r4, #8 + beq _021D89B8 + pop {r4, r5, r6, pc} +_021D8906: + cmp r4, #0x13 + bgt _021D890E + beq _021D896C + pop {r4, r5, r6, pc} +_021D890E: + cmp r4, #0x19 + beq _021D8934 + pop {r4, r5, r6, pc} +_021D8914: + bl MOD54_021D8D40 + b _021D89B8 +_021D891A: + mov r0, #0x32 + lsl r0, r0, #4 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D89B8 + mov r1, #0x33 + bl FUN_020021EC + mov r0, #0x32 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r5, r0] + b _021D89B8 +_021D8934: + ldr r0, [r5, #0x4c] + bl MOD54_021D8D20 + cmp r0, #0 + bne _021D8948 + ldr r0, [r5, #0x4c] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD7C +_021D8948: + add r0, r5, #0 + mov r1, #0xc + mov r2, #0 + bl MOD54_021D8C90 + mov r0, #0x32 + lsl r0, r0, #4 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D89B8 + mov r1, #0x33 + bl FUN_020021EC + mov r0, #0x32 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r5, r0] + b _021D89B8 +_021D896C: + ldr r0, _021D89C0 ; =0x00004A54 + ldrb r0, [r5, r0] + cmp r0, #1 + beq _021D89BE + add r0, r6, #0 + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r5, #0x24] + mov r1, #0 + bl FUN_0200ABC0 + bl FUN_02031190 + cmp r6, r0 + beq _021D89BE + mov r0, #0x32 + lsl r0, r0, #4 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D89A4 + mov r1, #0x33 + bl FUN_020021EC + mov r0, #0x32 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r5, r0] +_021D89A4: + bl FUN_02031190 + cmp r0, #0 + bne _021D89B8 + ldr r1, _021D89C4 ; =0x00004A50 + ldr r0, _021D89C8 ; =0x0000FFFF + ldr r2, [r5, r1] + eor r0, r6 + and r0, r2 + str r0, [r5, r1] +_021D89B8: + mov r0, #0xd1 + lsl r0, r0, #2 + str r4, [r5, r0] +_021D89BE: + pop {r4, r5, r6, pc} + .align 2, 0 +_021D89C0: .word 0x00004A54 +_021D89C4: .word 0x00004A50 +_021D89C8: .word 0x0000FFFF + thumb_func_end MOD54_021D88E4 + + thumb_func_start MOD54_021D89CC +MOD54_021D89CC: ; 0x021D89CC + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + mov r0, #0xd1 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + add r6, r2, #0 + cmp r0, #3 + bne _021D8A6C + cmp r4, #1 + beq _021D89EA + cmp r4, #0x13 + beq _021D8A2E + b _021D8A64 +_021D89EA: + add r0, r6, #0 + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r5, #0x24] + mov r1, #0 + bl FUN_0200ABC0 + add r0, r5, #0 + mov r1, #1 + bl MOD54_021D8F40 + mov r0, #0xd1 + lsl r0, r0, #2 + str r4, [r5, r0] + bl FUN_02030F20 + ldr r1, _021D8A84 ; =0x00004A48 + str r0, [r5, r1] + mov r0, #0 + add r1, #8 + str r0, [r5, r1] + bl FUN_02031190 + cmp r0, #0 + bne _021D8A7E + mov r2, #1 + mov r0, #0x75 + add r1, sp, #0 + str r2, [sp] + bl FUN_02030ADC + add sp, #4 + pop {r3, r4, r5, r6, pc} +_021D8A2E: + add r0, r6, #0 + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, [r5, #0x24] + mov r1, #0 + bl FUN_0200ABC0 + bl FUN_02031190 + cmp r6, r0 + beq _021D8A7E + bl FUN_02031190 + cmp r0, #0 + bne _021D8A5A + ldr r1, _021D8A88 ; =0x00004A50 + ldr r0, _021D8A8C ; =0x0000FFFF + ldr r2, [r5, r1] + eor r0, r6 + and r0, r2 + str r0, [r5, r1] +_021D8A5A: + mov r0, #0xd1 + lsl r0, r0, #2 + add sp, #4 + str r4, [r5, r0] + pop {r3, r4, r5, r6, pc} +_021D8A64: + bl ErrorHandling + add sp, #4 + pop {r3, r4, r5, r6, pc} +_021D8A6C: + cmp r4, #1 + bne _021D8A7E + ldr r0, _021D8A88 ; =0x00004A50 + mov r1, #0 + str r1, [r5, r0] + bl FUN_02030F20 + ldr r1, _021D8A84 ; =0x00004A48 + str r0, [r5, r1] +_021D8A7E: + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_021D8A84: .word 0x00004A48 +_021D8A88: .word 0x00004A50 +_021D8A8C: .word 0x0000FFFF + thumb_func_end MOD54_021D89CC + + thumb_func_start MOD54_021D8A90 +MOD54_021D8A90: ; 0x021D8A90 + push {r3, lr} + ldrh r1, [r0] + add r1, #0xa + strh r1, [r0] + ldrh r2, [r0] + mov r1, #0x5a + lsl r1, r1, #2 + cmp r2, r1 + bls _021D8AA6 + mov r1, #0 + strh r1, [r0] +_021D8AA6: + ldrh r0, [r0] + bl FUN_0201B970 + mov r1, #0xa + add r2, r0, #0 + mul r2, r1 + asr r0, r2, #0xb + lsr r0, r0, #0x14 + add r0, r2, r0 + asr r0, r0, #0xc + add r0, #0xf + lsl r2, r0, #5 + mov r0, #0x1d + orr r2, r0 + add r0, sp, #0 + strh r2, [r0] + add r0, sp, #0 + mov r2, #2 + bl GX_LoadOBJPltt + add r0, sp, #0 + mov r1, #0x2a + mov r2, #2 + bl GX_LoadOBJPltt + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD54_021D8A90 + + thumb_func_start MOD54_021D8ADC +MOD54_021D8ADC: ; 0x021D8ADC + push {r3, r4, r5, lr} + mov r5, #0 + add r4, r5, #0 +_021D8AE2: + add r0, r4, #0 + bl FUN_0202DFA4 + cmp r0, #0 + beq _021D8AEE + add r5, r5, #1 +_021D8AEE: + add r4, r4, #1 + cmp r4, #5 + blt _021D8AE2 + add r0, r5, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD54_021D8ADC + + thumb_func_start MOD54_021D8AF8 +MOD54_021D8AF8: ; 0x021D8AF8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + str r3, [sp, #0x14] + add r6, r0, #0 + str r2, [sp, #0x10] + bl FUN_02031190 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x14] + bl MOD54_021D8C2C + cmp r0, #0 + bne _021D8B18 + add sp, #0x28 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D8B18: + add r0, r6, #0 + mov r1, #0 + bl FUN_02019620 + ldr r7, [sp, #0x14] + mov r0, #0 + str r0, [sp, #0x20] + add r4, r7, #0 + mov r5, #1 +_021D8B2A: + mov r0, #0xd9 + lsl r0, r0, #2 + ldr r0, [r7, r0] + cmp r0, #0 + beq _021D8BE4 + bl FUN_020239C0 + str r0, [sp, #0x24] + mov r0, #0xd9 + lsl r0, r0, #2 + ldr r0, [r7, r0] + ldr r1, [r4, #0x2c] + bl FUN_02023990 + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [sp, #0x14] + ldr r2, [sp, #0x24] + ldr r0, [r0, #0x24] + mov r1, #0 + mov r3, #5 + bl FUN_0200AD38 + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x14] + ldr r0, [r0, #0x24] + ldr r1, [r1, #0x28] + mov r2, #1 + mov r3, #0x33 + bl FUN_0200A9C4 + str r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x20] + cmp r1, r0 + str r5, [sp] + bne _021D8BAC + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8C00 ; =0x00020300 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r2, [r4, #0x2c] + add r0, r6, #0 + mov r3, #5 + bl FUN_0201BDE0 + str r5, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8C00 ; =0x00020300 + ldr r2, [sp, #0x18] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r0, r6, #0 + mov r1, #0 + mov r3, #0x46 + bl FUN_0201BDE0 + b _021D8BDE +_021D8BAC: + mov r0, #0xff + str r0, [sp, #4] + ldr r0, [sp, #0x10] + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r2, [r4, #0x2c] + add r0, r6, #0 + mov r3, #5 + bl FUN_0201BDE0 + str r5, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x18] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r0, r6, #0 + mov r1, #0 + mov r3, #0x46 + bl FUN_0201BDE0 +_021D8BDE: + ldr r0, [sp, #0x18] + bl FUN_02021A20 +_021D8BE4: + ldr r0, [sp, #0x20] + add r7, #8 + add r0, r0, #1 + add r4, r4, #4 + add r5, #0x12 + str r0, [sp, #0x20] + cmp r0, #5 + blt _021D8B2A + add r0, r6, #0 + bl FUN_020191D0 + mov r0, #1 + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8C00: .word 0x00020300 + thumb_func_end MOD54_021D8AF8 + + thumb_func_start MOD54_021D8C04 +MOD54_021D8C04: ; 0x021D8C04 + bx lr + .align 2, 0 + thumb_func_end MOD54_021D8C04 + + thumb_func_start MOD54_021D8C08 +MOD54_021D8C08: ; 0x021D8C08 + push {r3, r4, r5, lr} + mov r5, #0 + add r4, r5, #0 +_021D8C0E: + add r0, r4, #0 + bl FUN_0202DFA4 + cmp r0, #0 + beq _021D8C1A + add r5, r5, #1 +_021D8C1A: + add r4, r4, #1 + cmp r4, #5 + blt _021D8C0E + add r0, r5, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD54_021D8C08 + + thumb_func_start MOD54_021D8C24 +MOD54_021D8C24: ; 0x021D8C24 + ldr r3, _021D8C28 ; =MOD54_021D8C08 + bx r3 + .align 2, 0 +_021D8C28: .word MOD54_021D8C08 + thumb_func_end MOD54_021D8C24 + + thumb_func_start MOD54_021D8C2C +MOD54_021D8C2C: ; 0x021D8C2C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r4, #0 + mov r7, #0xd9 + str r4, [sp] + add r5, r6, #0 + lsl r7, r7, #2 +_021D8C3A: + mov r0, #0xd9 + lsl r0, r0, #2 + ldr r1, [r5, r0] + add r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + bl FUN_0202DFA4 + str r0, [r5, r7] + add r4, r4, #1 + add r5, #8 + cmp r4, #5 + blt _021D8C3A + mov r7, #0xda + mov r5, #0 + add r4, r6, #0 + mov r1, #1 + mov r0, #3 + lsl r7, r7, #2 +_021D8C60: + mov r2, #0xd9 + lsl r2, r2, #2 + ldr r3, [r6, r2] + ldr r2, [r6, r7] + cmp r2, r3 + beq _021D8C80 + str r1, [sp] + cmp r3, #0 + bne _021D8C7A + mov r2, #0xe3 + lsl r2, r2, #2 + str r0, [r4, r2] + b _021D8C80 +_021D8C7A: + mov r2, #0xe3 + lsl r2, r2, #2 + str r1, [r4, r2] +_021D8C80: + add r5, r5, #1 + add r6, #8 + add r4, r4, #4 + cmp r5, #5 + blt _021D8C60 + ldr r0, [sp] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD54_021D8C2C + + thumb_func_start MOD54_021D8C90 +MOD54_021D8C90: ; 0x021D8C90 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + add r7, r1, #0 + mov r0, #0xb4 + mov r1, #0x33 + add r6, r2, #0 + bl FUN_020219F4 + add r4, r0, #0 + ldr r0, [r5, #0x28] + add r1, r7, #0 + add r2, r4, #0 + bl FUN_0200A8E0 + ldr r0, [r5, #0x24] + ldr r1, [r5, #0x44] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + mov r0, #0xba + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0xba + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + cmp r6, #0 + bne _021D8D00 + add r0, r5, #0 + bl MOD54_021D8F3C + mov r3, #0 + str r3, [sp] + str r0, [sp, #4] + str r3, [sp, #8] + mov r0, #0xba + lsl r0, r0, #2 + ldr r2, [r5, #0x44] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + add sp, #0xc + str r0, [r5, #0x4c] + pop {r4, r5, r6, r7, pc} +_021D8D00: + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + mov r0, #0xba + lsl r0, r0, #2 + ldr r2, [r5, #0x44] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r0, #0xff + str r0, [r5, #0x4c] + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD54_021D8C90 + + thumb_func_start MOD54_021D8D20 +MOD54_021D8D20: ; 0x021D8D20 + push {r3, lr} + cmp r0, #0xff + bne _021D8D2A + mov r0, #1 + pop {r3, pc} +_021D8D2A: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021D8D3A + mov r0, #1 + pop {r3, pc} +_021D8D3A: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD54_021D8D20 + + thumb_func_start MOD54_021D8D40 +MOD54_021D8D40: ; 0x021D8D40 + mov r1, #0xba + lsl r1, r1, #2 + add r0, r0, r1 + ldr r3, _021D8D4C ; =FUN_0200D0E0 + mov r1, #0 + bx r3 + .align 2, 0 +_021D8D4C: .word FUN_0200D0E0 + thumb_func_end MOD54_021D8D40 + + thumb_func_start MOD54_021D8D50 +MOD54_021D8D50: ; 0x021D8D50 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r0, #0 + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #0xcb + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [sp, #0x14] + mov r0, #0xcf + lsl r0, r0, #2 + mov r4, #0 + add r0, r5, r0 + str r4, [sp, #8] + add r6, r5, #0 + mov r7, #0x1c + str r0, [sp, #0x18] +_021D8D72: + mov r0, #0xe3 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #3 + bhi _021D8E3E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D8D88: ; jump table + .short _021D8E3E - _021D8D88 - 2 ; case 0 + .short _021D8D90 - _021D8D88 - 2 ; case 1 + .short _021D8E3E - _021D8D88 - 2 ; case 2 + .short _021D8E06 - _021D8D88 - 2 ; case 3 +_021D8D90: + mov r0, #0xd9 + lsl r0, r0, #2 + ldr r0, [r6, r0] + cmp r0, #0 + bne _021D8D9E + bl ErrorHandling +_021D8D9E: + mov r0, #0xd9 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_020239CC + str r0, [sp, #0xc] + mov r0, #0xd9 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02023A28 + str r0, [sp, #0x10] + bl FUN_02031190 + cmp r4, r0 + bne _021D8DD0 + mov r0, #0x8b + ldr r1, [sp, #0xc] + lsl r0, r0, #2 + lsl r1, r1, #1 + ldr r0, [r5, r0] + add r1, #0x26 + bl FUN_02020130 + b _021D8DEC +_021D8DD0: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x18] + str r0, [sp] + ldr r0, [sp, #0x14] + ldr r3, [sp, #0x10] + add r2, r4, #0 + bl MOD54_021D8EC8 + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [sp, #4] + bl FUN_02020130 +_021D8DEC: + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xe3 + mov r1, #2 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r0, #1 + str r0, [sp, #8] + b _021D8E3E +_021D8E06: + bl FUN_02031190 + cmp r4, r0 + bne _021D8E2A + mov r0, #0xd9 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_020239CC + add r1, r0, #0 + mov r0, #0x8b + lsl r0, r0, #2 + lsl r1, r1, #1 + ldr r0, [r5, r0] + add r1, #0x27 + bl FUN_02020130 + b _021D8E36 +_021D8E2A: + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r7, #0 + bl FUN_02020130 +_021D8E36: + mov r0, #0xe3 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] +_021D8E3E: + ldr r0, [sp, #4] + add r4, r4, #1 + add r0, r0, #2 + add r5, r5, #4 + add r6, #8 + add r7, r7, #2 + str r0, [sp, #4] + cmp r4, #5 + blt _021D8D72 + ldr r0, [sp, #8] + cmp r0, #0 + beq _021D8E5C + ldr r0, _021D8E60 ; =0x0000064F + bl FUN_020054C8 +_021D8E5C: + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D8E60: .word 0x0000064F + thumb_func_end MOD54_021D8D50 + + thumb_func_start MOD54_021D8E64 +MOD54_021D8E64: ; 0x021D8E64 + push {r3, r4, lr} + sub sp, #4 + mov r2, #0xcf + add r4, r0, #0 + lsl r2, r2, #2 + mov r0, #0x68 + mov r1, #8 + add r2, r4, r2 + mov r3, #0x33 + bl FUN_02006C08 + mov r2, #0xcd + lsl r2, r2, #2 + str r0, [r4, r2] + add r2, #0xc + mov r0, #0x56 + mov r1, #7 + add r2, r4, r2 + mov r3, #0x33 + bl FUN_02006C08 + mov r3, #0xce + lsl r3, r3, #2 + str r0, [r4, r3] + mov r0, #0x33 + sub r3, #0xc + str r0, [sp] + mov r0, #0x68 + mov r1, #0x20 + mov r2, #1 + add r3, r4, r3 + bl FUN_02006BB0 + mov r1, #0xc9 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r3, #0x33 + str r3, [sp] + lsl r3, r3, #4 + mov r0, #0x56 + mov r1, #9 + mov r2, #1 + add r3, r4, r3 + bl FUN_02006BB0 + mov r1, #0xca + lsl r1, r1, #2 + str r0, [r4, r1] + add sp, #4 + pop {r3, r4, pc} + thumb_func_end MOD54_021D8E64 + + thumb_func_start MOD54_021D8EC8 +MOD54_021D8EC8: ; 0x021D8EC8 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r6, r1, #0 + ldr r0, [sp, #0x18] + add r1, r3, #0 + add r5, r2, #0 + bl FUN_020536C8 + add r4, r0, #0 + ldr r0, [r6, #4] + mov r2, #6 + ldr r6, [r0, #0xc] + ldr r0, [r7, #4] + lsl r2, r2, #8 + ldr r1, [r0, #0x14] + add r0, r4, #0 + mul r0, r2 + add r0, r1, r0 + ldr r1, _021D8F08 ; =0x021D9680 + lsl r3, r5, #1 + ldrh r1, [r1, r3] + bl GX_LoadOBJ + lsl r0, r4, #5 + add r1, r5, #7 + add r0, r6, r0 + lsl r1, r1, #5 + mov r2, #0x20 + bl GX_LoadOBJPltt + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8F08: .word 0x021D9680 + thumb_func_end MOD54_021D8EC8 + + thumb_func_start MOD54_021D8F0C +MOD54_021D8F0C: ; 0x021D8F0C + push {r4, lr} + add r4, r0, #0 + mov r0, #0xcd + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02016A18 + mov r0, #0xce + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02016A18 + mov r0, #0xc9 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02016A18 + mov r0, #0xca + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD54_021D8F0C + + thumb_func_start MOD54_021D8F3C +MOD54_021D8F3C: ; 0x021D8F3C + mov r0, #1 + bx lr + thumb_func_end MOD54_021D8F3C + + thumb_func_start MOD54_021D8F40 +MOD54_021D8F40: ; 0x021D8F40 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02031190 + cmp r0, #0 + bne _021D8F8C + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _021D8F5E + mov r0, #1 + bl FUN_02032B6C + b _021D8F6E +_021D8F5E: + bl FUN_02030F20 + add r0, r4, r0 + cmp r0, #5 + ble _021D8F6A + mov r0, #5 +_021D8F6A: + bl FUN_02032B6C +_021D8F6E: + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + ldr r0, _021D8F90 ; =0x00004A55 + bne _021D8F7E + mov r1, #2 + strb r1, [r5, r0] + pop {r3, r4, r5, pc} +_021D8F7E: + cmp r4, #0 + bne _021D8F88 + mov r1, #1 + strb r1, [r5, r0] + pop {r3, r4, r5, pc} +_021D8F88: + mov r1, #0 + strb r1, [r5, r0] +_021D8F8C: + pop {r3, r4, r5, pc} + nop +_021D8F90: .word 0x00004A55 + thumb_func_end MOD54_021D8F40 + + thumb_func_start MOD54_021D8F94 +MOD54_021D8F94: ; 0x021D8F94 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r0, #0 + add r6, r1, #0 + bl MOD54_021D8C08 + add r5, r0, #0 + ldr r0, _021D9088 ; =0x00004A48 + ldr r1, [r4, r0] + cmp r5, r1 + ble _021D8FBE + mov r2, #1 + add r0, sp, #0 + strb r2, [r0] + mov r0, #0x75 + add r1, sp, #0 + bl FUN_02030ADC + mov r1, #1 + ldr r0, _021D908C ; =0x00004A4C + b _021D8FC2 +_021D8FBE: + mov r1, #0 + add r0, r0, #4 +_021D8FC2: + str r1, [r4, r0] + ldr r0, _021D9090 ; =0x00004A44 + ldr r0, [r4, r0] + cmp r5, r0 + bne _021D8FD2 + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D8FD2: + cmp r5, #5 + bhi _021D9078 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D8FE2: ; jump table + .short _021D9078 - _021D8FE2 - 2 ; case 0 + .short _021D8FEE - _021D8FE2 - 2 ; case 1 + .short _021D9032 - _021D8FE2 - 2 ; case 2 + .short _021D9032 - _021D8FE2 - 2 ; case 3 + .short _021D9032 - _021D8FE2 - 2 ; case 4 + .short _021D906A - _021D8FE2 - 2 ; case 5 +_021D8FEE: + bl FUN_02030F20 + cmp r0, #1 + bgt _021D8FFE + bl FUN_0202CB8C + cmp r0, #1 + bls _021D9004 +_021D8FFE: + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D9004: + mov r0, #0xd1 + mov r1, #0x11 + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, r4, #0 + sub r1, #0x12 + bl MOD54_021D8F40 + mov r0, #0x32 + lsl r0, r0, #4 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D902C + mov r1, #0x33 + bl FUN_020021EC + mov r0, #0x32 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r4, r0] +_021D902C: + add sp, #4 + mov r0, #2 + pop {r3, r4, r5, r6, pc} +_021D9032: + mov r0, #2 + bl FUN_02052B74 + ldr r0, _021D9090 ; =0x00004A44 + ldr r1, [r4, r0] + cmp r5, r1 + bge _021D9078 + add r0, #0x11 + ldrsb r0, [r4, r0] + cmp r0, #0 + beq _021D904E + cmp r0, #1 + beq _021D9058 + b _021D9060 +_021D904E: + add r0, r4, #0 + add r1, r6, #0 + bl MOD54_021D8F40 + b _021D9060 +_021D9058: + add r0, r4, #0 + mov r1, #0 + bl MOD54_021D8F40 +_021D9060: + bl FUN_02030F20 + ldr r1, _021D9088 ; =0x00004A48 + str r0, [r4, r1] + b _021D9078 +_021D906A: + mov r0, #9 + bl FUN_02052B74 + add r0, r4, #0 + add r1, r6, #0 + bl MOD54_021D8F40 +_021D9078: + bl MOD54_021D8C08 + ldr r1, _021D9090 ; =0x00004A44 + str r0, [r4, r1] + mov r0, #1 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_021D9088: .word 0x00004A48 +_021D908C: .word 0x00004A4C +_021D9090: .word 0x00004A44 + thumb_func_end MOD54_021D8F94 + + thumb_func_start MOD54_021D9094 +MOD54_021D9094: ; 0x021D9094 + mov r0, #0x2c + bx lr + thumb_func_end MOD54_021D9094 + + thumb_func_start MOD54_021D9098 +MOD54_021D9098: ; 0x021D9098 + add r0, #0x2c + bx lr + thumb_func_end MOD54_021D9098 + + thumb_func_start MOD54_021D909C +MOD54_021D909C: ; 0x021D909C + push {r4, r5, r6, r7} + add r7, r0, #0 + add r6, r7, #0 + mov ip, r1 + mov r5, #5 + add r6, #0xdc +_021D90A8: + add r4, r6, #0 + sub r4, #0x2c + add r3, r6, #0 + mov r2, #5 +_021D90B0: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D90B0 + ldr r0, [r4] + sub r5, r5, #1 + sub r6, #0x2c + str r0, [r3] + cmp r5, #2 + bgt _021D90A8 + add r7, #0x58 + mov r3, #5 +_021D90C8: + mov r2, ip + ldmia r2!, {r0, r1} + mov ip, r2 + stmia r7!, {r0, r1} + sub r3, r3, #1 + bne _021D90C8 + mov r0, ip + ldr r0, [r0] + str r0, [r7] + pop {r4, r5, r6, r7} + bx lr + .align 2, 0 + thumb_func_end MOD54_021D909C + + thumb_func_start MOD54_021D90E0 +MOD54_021D90E0: ; 0x021D90E0 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #2 + blt _021D90EE + cmp r5, #5 + ble _021D90F2 +_021D90EE: + bl ErrorHandling +_021D90F2: + add r2, r5, #1 + cmp r2, #5 + bgt _021D911A + mov r0, #0x2c + mul r0, r2 + add r3, r4, r0 +_021D90FE: + add r6, r3, #0 + add r7, r3, #0 + sub r6, #0x2c + mov r5, #5 +_021D9106: + ldmia r7!, {r0, r1} + stmia r6!, {r0, r1} + sub r5, r5, #1 + bne _021D9106 + ldr r0, [r7] + add r2, r2, #1 + add r3, #0x2c + str r0, [r6] + cmp r2, #5 + ble _021D90FE +_021D911A: + ldr r0, _021D9128 ; =0x0000FFFF + add r1, r4, #0 + add r4, #0xdc + add r1, #0xdc + strh r0, [r4] + strh r0, [r1, #0x10] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D9128: .word 0x0000FFFF + thumb_func_end MOD54_021D90E0 + + thumb_func_start MOD54_021D912C +MOD54_021D912C: ; 0x021D912C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + str r0, [sp] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [sp] + add r5, r2, #0 + str r1, [sp, #4] + str r3, [sp, #8] + cmp r0, #0 + ble _021D91A6 + mov r7, #0x2c +_021D9144: + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + ldr r6, [r0] + ldr r0, [sp, #4] + cmp r1, r0 + beq _021D9194 + cmp r6, #0 + beq _021D9194 + add r0, r6, #0 + bl FUN_0202888C + cmp r0, #1 + beq _021D9194 + add r0, r6, #0 + add r1, r5, #0 + bl FUN_020288AC + cmp r0, #0 + bne _021D9194 + mov r4, #0 +_021D916C: + add r1, r4, #2 + add r2, r1, #0 + mul r2, r7 + add r0, r6, #0 + add r1, r5, r2 + bl FUN_020288AC + cmp r0, #0 + beq _021D9186 + add r0, r5, #0 + add r1, r4, #2 + bl MOD54_021D90E0 +_021D9186: + add r4, r4, #1 + cmp r4, #4 + blt _021D916C + add r0, r5, #0 + add r1, r6, #0 + bl MOD54_021D909C +_021D9194: + ldr r0, [sp, #8] + add r0, r0, #4 + str r0, [sp, #8] + ldr r0, [sp, #0xc] + add r1, r0, #1 + ldr r0, [sp] + str r1, [sp, #0xc] + cmp r1, r0 + blt _021D9144 +_021D91A6: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD54_021D912C + + thumb_func_start MOD54_021D91AC +MOD54_021D91AC: ; 0x021D91AC + mov r0, #0x12 + lsl r0, r0, #4 + bx lr + .align 2, 0 + thumb_func_end MOD54_021D91AC + + thumb_func_start MOD54_021D91B4 +MOD54_021D91B4: ; 0x021D91B4 + mov r0, #0x12 + lsl r0, r0, #4 + bx lr + .align 2, 0 + thumb_func_end MOD54_021D91B4 + + thumb_func_start MOD54_021D91BC +MOD54_021D91BC: ; 0x021D91BC + mov r0, #0x12 + lsl r0, r0, #4 + bx lr + .align 2, 0 + thumb_func_end MOD54_021D91BC + + thumb_func_start MOD54_021D91C4 +MOD54_021D91C4: ; 0x021D91C4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + str r3, [sp, #4] + add r5, r1, #0 + str r2, [sp] + bl FUN_020238F4 + add r4, r0, #0 + ldr r0, [sp, #4] + mov r7, #0 + cmp r0, #0 + ble _021D9234 +_021D91DC: + mov r0, #0 + add r1, r5, #0 + mov r2, #0x48 + bl MIi_CpuClearFast + add r0, r4, #0 + bl FUN_020239BC + str r0, [r5] + add r0, r4, #0 + bl FUN_020239CC + strb r0, [r5, #4] + mov r0, #0xa + strb r0, [r5, #5] + mov r0, #2 + strb r0, [r5, #6] + add r0, r4, #0 + bl FUN_0202398C + add r1, r0, #0 + add r0, r5, #0 + add r0, #8 + mov r2, #8 + bl StringCopyN + add r3, r5, #0 + ldr r6, [sp] + add r3, #0x18 + mov r2, #6 +_021D9218: + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D9218 + mov r0, #0 + strb r0, [r5, #0x19] + ldr r0, [sp] + add r7, r7, #1 + add r0, #0x30 + str r0, [sp] + ldr r0, [sp, #4] + add r5, #0x48 + cmp r7, r0 + blt _021D91DC +_021D9234: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD54_021D91C4 + + thumb_func_start MOD54_021D9238 +MOD54_021D9238: ; 0x021D9238 + push {r3, r4, r5, r6, r7, lr} + add r4, r2, #0 + add r5, r0, #0 + add r0, r1, #0 + add r1, r4, #0 + bl FUN_020169D8 + add r7, r0, #0 + add r0, r5, #0 + bl FUN_02022504 + add r6, r0, #0 + add r0, r5, #0 + bl MOD54_021D91AC + cmp r4, r0 + beq _021D925E + bl ErrorHandling +_021D925E: + mov r2, #0x63 + lsl r2, r2, #2 + add r0, r5, #0 + add r1, r7, #0 + add r2, r6, r2 + mov r3, #4 + bl MOD54_021D91C4 + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD54_021D9238 + + thumb_func_start MOD54_021D9274 +MOD54_021D9274: ; 0x021D9274 + push {r3, r4, r5, r6, r7, lr} + add r4, r2, #0 + add r5, r0, #0 + add r0, r1, #0 + add r1, r4, #0 + bl FUN_020169D8 + add r7, r0, #0 + add r0, r5, #0 + bl FUN_02022504 + add r6, r0, #0 + add r0, r5, #0 + bl MOD54_021D91B4 + cmp r4, r0 + beq _021D929A + bl ErrorHandling +_021D929A: + add r6, #0xc + add r0, r5, #0 + add r1, r7, #0 + add r2, r6, #0 + mov r3, #4 + bl MOD54_021D91C4 + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD54_021D9274 + + thumb_func_start MOD54_021D92AC +MOD54_021D92AC: ; 0x021D92AC + push {r3, r4, r5, r6, r7, lr} + add r4, r2, #0 + add r5, r0, #0 + add r0, r1, #0 + add r1, r4, #0 + bl FUN_020169D8 + add r7, r0, #0 + add r0, r5, #0 + bl FUN_02022504 + add r6, r0, #0 + add r0, r5, #0 + bl MOD54_021D91BC + cmp r4, r0 + beq _021D92D2 + bl ErrorHandling +_021D92D2: + add r6, #0xcc + add r0, r5, #0 + add r1, r7, #0 + add r2, r6, #0 + mov r3, #4 + bl MOD54_021D91C4 + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD54_021D92AC + + thumb_func_start MOD54_021D92E4 +MOD54_021D92E4: ; 0x021D92E4 + push {r4, r5} + ldrb r3, [r2, #0x18] + cmp r3, #0 + bne _021D92F2 + mov r0, #0 + pop {r4, r5} + bx lr +_021D92F2: + mov r4, #0 + cmp r1, #0 + ble _021D931E + add r5, r0, #0 +_021D92FA: + ldrb r3, [r5, #0x18] + cmp r3, #0 + bne _021D9316 + mov r1, #0x48 + mul r1, r4 + add r4, r0, r1 + mov r3, #9 +_021D9308: + ldmia r2!, {r0, r1} + stmia r4!, {r0, r1} + sub r3, r3, #1 + bne _021D9308 + mov r0, #1 + pop {r4, r5} + bx lr +_021D9316: + add r4, r4, #1 + add r5, #0x48 + cmp r4, r1 + blt _021D92FA +_021D931E: + mov r5, #0 + cmp r1, #0 + ble _021D934A + add r4, r0, #0 +_021D9326: + ldrb r3, [r4, #0x19] + cmp r3, #3 + blo _021D9342 + mov r1, #0x48 + mul r1, r5 + add r4, r0, r1 + mov r3, #9 +_021D9334: + ldmia r2!, {r0, r1} + stmia r4!, {r0, r1} + sub r3, r3, #1 + bne _021D9334 + mov r0, #1 + pop {r4, r5} + bx lr +_021D9342: + add r5, r5, #1 + add r4, #0x48 + cmp r5, r1 + blt _021D9326 +_021D934A: + mov r0, #0 + pop {r4, r5} + bx lr + thumb_func_end MOD54_021D92E4 + + thumb_func_start MOD54_021D9350 +MOD54_021D9350: ; 0x021D9350 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + str r0, [sp] + str r1, [sp, #4] + add r7, r2, #0 + add r0, sp, #0x18 + mov r1, #0 + mov r2, #0x10 + str r3, [sp, #8] + ldr r5, [sp, #0x40] + bl MI_CpuFill8 + mov r4, #0 + add r6, r4, #0 + cmp r7, #0 + ble _021D93D8 + str r5, [sp, #0x10] +_021D9372: + ldr r0, [sp, #0x10] + ldr r0, [r0] + cmp r0, #0 + beq _021D93CC + mov r0, #0 + str r0, [sp, #0x14] + str r0, [sp, #0xc] + b _021D93C6 +_021D9382: + add r0, r4, #1 + add r1, r7, #0 + bl _s32_div_f + add r4, r1, #0 +_021D938C: + lsl r2, r4, #2 + ldr r0, [r5, r2] + cmp r0, #0 + beq _021D9382 + cmp r4, r6 + beq _021D9382 + add r0, sp, #0x18 + ldrb r0, [r0, r4] + cmp r0, #4 + beq _021D9382 + add r1, r0, #1 + add r0, sp, #0x18 + strb r1, [r0, r4] + ldr r0, [sp, #8] + cmp r4, r0 + beq _021D93BA + ldr r3, [r5, r2] + ldr r2, [sp, #0xc] + ldr r0, [sp] + ldr r1, [sp, #4] + add r2, r3, r2 + bl MOD54_021D92E4 +_021D93BA: + ldr r0, [sp, #0xc] + add r0, #0x48 + str r0, [sp, #0xc] + ldr r0, [sp, #0x14] + add r0, r0, #1 + str r0, [sp, #0x14] +_021D93C6: + ldr r0, [sp, #0x14] + cmp r0, #4 + blt _021D938C +_021D93CC: + ldr r0, [sp, #0x10] + add r6, r6, #1 + add r0, r0, #4 + str r0, [sp, #0x10] + cmp r6, r7 + blt _021D9372 +_021D93D8: + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD54_021D9350 + + thumb_func_start MOD54_021D93DC +MOD54_021D93DC: ; 0x021D93DC + push {r3, r4, r5, lr} + add r5, r1, #0 + mov r1, #0x93 + add r4, r2, #0 + lsl r1, r1, #2 + str r3, [sp] + add r0, r0, r1 + mov r1, #0x10 + add r2, r5, #0 + add r3, r4, #0 + bl MOD54_021D9350 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD54_021D93DC + + thumb_func_start MOD54_021D93F8 +MOD54_021D93F8: ; 0x021D93F8 + push {r3, r4, r5, lr} + add r5, r1, #0 + ldr r1, _021D9410 ; =0x000006CC + add r4, r2, #0 + str r3, [sp] + add r0, r0, r1 + mov r1, #8 + add r2, r5, #0 + add r3, r4, #0 + bl MOD54_021D9350 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D9410: .word 0x000006CC + thumb_func_end MOD54_021D93F8 + + thumb_func_start MOD54_021D9414 +MOD54_021D9414: ; 0x021D9414 + push {r3, r4, r5, lr} + add r5, r1, #0 + ldr r1, _021D942C ; =0x0000090C + add r4, r2, #0 + str r3, [sp] + add r0, r0, r1 + mov r1, #8 + add r2, r5, #0 + add r3, r4, #0 + bl MOD54_021D9350 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D942C: .word 0x0000090C + thumb_func_end MOD54_021D9414 + + thumb_func_start MOD54_021D9430 +MOD54_021D9430: ; 0x021D9430 + push {r3, lr} + bl FUN_0202881C + bl MOD54_021D9094 + pop {r3, pc} + thumb_func_end MOD54_021D9430 + + thumb_func_start MOD54_021D943C +MOD54_021D943C: ; 0x021D943C + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r2, #0 + bl FUN_0202881C + add r6, r0, #0 + add r0, r4, #0 + add r1, r5, #0 + bl FUN_020169D8 + add r4, r0, #0 + add r0, r6, #0 + bl MOD54_021D9098 + add r1, r4, #0 + add r2, r5, #0 + bl MIi_CpuCopyFast + add r0, r4, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD54_021D943C + + thumb_func_start MOD54_021D9464 +MOD54_021D9464: ; 0x021D9464 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + bl FUN_0202881C + add r2, r0, #0 + ldr r0, [r4, #8] + ldr r1, [r4, #0xc] + ldr r3, [r4, #0x10] + bl MOD54_021D912C + pop {r4, pc} + thumb_func_end MOD54_021D9464 + + thumb_func_start MOD54_021D947C +MOD54_021D947C: ; 0x021D947C + push {r3, lr} + bl FUN_02027E24 + bl FUN_02026FE0 + pop {r3, pc} + thumb_func_end MOD54_021D947C + + thumb_func_start MOD54_021D9488 +MOD54_021D9488: ; 0x021D9488 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r2, #0 + bl FUN_02027E24 + add r6, r0, #0 + add r0, r4, #0 + add r1, r5, #0 + bl FUN_020169D8 + add r4, r0, #0 + add r0, r6, #0 + mov r1, #0 + bl FUN_02027008 + add r1, r4, #0 + add r2, r5, #0 + bl MIi_CpuCopyFast + add r0, r4, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD54_021D9488 + + thumb_func_start MOD54_021D94B4 +MOD54_021D94B4: ; 0x021D94B4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + bl FUN_02027E24 + add r2, r0, #0 + ldr r0, [r4, #8] + ldr r1, [r4, #0xc] + lsl r0, r0, #0x18 + ldr r3, [r4, #0x10] + lsr r0, r0, #0x18 + bl FUN_02027D7C + pop {r4, pc} + thumb_func_end MOD54_021D94B4 + + thumb_func_start MOD54_021D94D0 +MOD54_021D94D0: ; 0x021D94D0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + bl FUN_02022504 + ldr r1, [r4, #8] + ldr r2, [r4, #0xc] + ldr r3, [r4, #0x10] + bl MOD54_021D93DC + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD54_021D94D0 + + thumb_func_start MOD54_021D94E8 +MOD54_021D94E8: ; 0x021D94E8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + bl FUN_02022504 + ldr r1, [r4, #8] + ldr r2, [r4, #0xc] + ldr r3, [r4, #0x10] + bl MOD54_021D93F8 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD54_021D94E8 + + thumb_func_start MOD54_021D9500 +MOD54_021D9500: ; 0x021D9500 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + bl FUN_02022504 + ldr r1, [r4, #8] + ldr r2, [r4, #0xc] + ldr r3, [r4, #0x10] + bl MOD54_021D9414 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD54_021D9500 + + thumb_func_start MOD54_021D9518 +MOD54_021D9518: ; 0x021D9518 + ldr r3, _021D951C ; =FUN_0202B9EC + bx r3 + .align 2, 0 +_021D951C: .word FUN_0202B9EC + thumb_func_end MOD54_021D9518 + + thumb_func_start MOD54_021D9520 +MOD54_021D9520: ; 0x021D9520 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4, #4] + bl FUN_0202B8E4 + ldr r0, [r4] + str r0, [sp] + ldr r2, [r4, #8] + ldr r0, [r4, #4] + lsl r2, r2, #0x18 + ldr r1, [r4, #0xc] + ldr r3, [r4, #0x10] + lsr r2, r2, #0x18 + bl FUN_0202BCF4 + add sp, #4 + pop {r3, r4, pc} + thumb_func_end MOD54_021D9520 + + thumb_func_start MOD54_021D9544 +MOD54_021D9544: ; 0x021D9544 + push {r4, r5, r6, lr} + add r5, r2, #0 + add r6, r0, #0 + add r0, r1, #0 + add r1, r5, #0 + bl FUN_020169D8 + add r4, r0, #0 + mov r1, #0 + add r2, r5, #0 + bl MI_CpuFill8 + add r0, r6, #0 + mov r1, #0 + add r2, r4, #0 + bl FUN_02066840 + add r0, r4, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD54_021D9544 + + thumb_func_start MOD54_021D956C +MOD54_021D956C: ; 0x021D956C + bx lr + .align 2, 0 + thumb_func_end MOD54_021D956C + + thumb_func_start MOD54_021D9570 +MOD54_021D9570: ; 0x021D9570 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + str r0, [sp] + mov r0, #0 + ldr r6, _021D95C4 ; =0x00000BB8 + ldr r5, _021D95C8 ; =0x021D9780 + str r1, [sp, #4] + str r0, [sp, #8] +_021D9580: + ldr r0, [sp] + ldr r1, [r5] + blx r1 + add r4, r0, #0 + ldr r0, [sp] + ldr r3, [r5, #4] + mov r1, #0x33 + add r2, r4, #0 + blx r3 + add r7, r0, #0 + cmp r6, r4 + bhi _021D959C + bl ErrorHandling +_021D959C: + ldr r1, [sp, #4] + add r0, r7, #0 + add r2, r4, #0 + bl MIi_CpuCopyFast + add r0, r7, #0 + bl FUN_02016A18 + ldr r0, [sp, #4] + sub r6, r6, r4 + add r0, r0, r4 + str r0, [sp, #4] + ldr r0, [sp, #8] + add r5, #0xc + add r0, r0, #1 + str r0, [sp, #8] + cmp r0, #7 + blt _021D9580 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D95C4: .word 0x00000BB8 +_021D95C8: .word 0x021D9780 + thumb_func_end MOD54_021D9570 + + thumb_func_start MOD54_021D95CC +MOD54_021D95CC: ; 0x021D95CC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x40 + str r0, [sp] + ldr r0, _021D9670 ; =0x00000BB8 + str r1, [sp, #4] + str r0, [sp, #0x10] + mov r0, #0x33 + str r0, [sp, #0x2c] + ldr r0, [sp] + mov r7, #0 + str r0, [sp, #0x30] + bl FUN_02031190 + str r0, [sp, #0x38] + mov r0, #5 + str r0, [sp, #0x34] + add r0, sp, #0x18 + str r0, [sp, #0x3c] + add r0, r7, #0 + str r0, [sp, #0xc] + ldr r0, _021D9674 ; =0x021D9780 + str r0, [sp, #8] +_021D95F8: + ldr r1, [sp, #8] + ldr r0, [sp] + ldr r1, [r1] + blx r1 + ldr r1, [sp, #0x10] + str r0, [sp, #0x14] + cmp r1, r0 + bhi _021D960C + bl ErrorHandling +_021D960C: + mov r6, #0 + ldr r4, [sp, #4] + add r5, r6, #0 +_021D9612: + add r0, r6, #0 + bl FUN_0202DFA4 + cmp r0, #0 + beq _021D9624 + ldr r0, [sp, #0x3c] + add r1, r4, r7 + str r1, [r0, r5] + b _021D962A +_021D9624: + ldr r1, [sp, #0x3c] + mov r0, #0 + str r0, [r1, r5] +_021D962A: + mov r0, #0x2f + lsl r0, r0, #6 + add r6, r6, #1 + add r4, r4, r0 + add r5, r5, #4 + cmp r6, #5 + blt _021D9612 + ldr r1, [sp, #8] + add r0, sp, #0x2c + ldr r1, [r1, #8] + blx r1 + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x10] + add r7, r7, r0 + sub r0, r1, r0 + str r0, [sp, #0x10] + ldr r0, [sp, #8] + add r0, #0xc + str r0, [sp, #8] + ldr r0, [sp, #0xc] + add r0, r0, #1 + str r0, [sp, #0xc] + cmp r0, #7 + blo _021D95F8 + ldr r0, [sp] + bl FUN_02022504 + add r4, r0, #0 + bl FUN_0202B390 + add r0, r4, #0 + bl FUN_0202B3F8 + add sp, #0x40 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D9670: .word 0x00000BB8 +_021D9674: .word 0x021D9780 + thumb_func_end MOD54_021D95CC + + .section .rodata + ; 0x021D9678 + .incbin "baserom.nds", 0x29E598, 0x15C + + .section .data + ; 0x021D97E0 + .incbin "baserom.nds", 0x29E700, 0x80 diff --git a/arm9/modules/55/asm/module_55.s b/arm9/modules/55/asm/module_55.s new file mode 100644 index 00000000..a854022c --- /dev/null +++ b/arm9/modules/55/asm/module_55.s @@ -0,0 +1,5594 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD55_021D74E0 +MOD55_021D74E0: ; 0x021D74E0 + push {r4, lr} + add r4, r0, #0 + bl MOD55_021D7BF0 + add r0, r4, #0 + bl MOD55_021D7C20 + add r0, r4, #0 + bl MOD55_021D7DA0 + mov r0, #0x34 + bl FUN_02053708 + mov r1, #0xeb + lsl r1, r1, #2 + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD55_021D74E0 + + thumb_func_start MOD55_021D7504 +MOD55_021D7504: ; 0x021D7504 + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7560 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D7564 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + mov r0, #0x34 + bl FUN_02016B94 + str r0, [r4, #4] + bl MOD55_021D780C + ldr r0, [r4, #4] + bl MOD55_021D781C + add r0, r4, #0 + bl MOD55_021D7AE0 + ldr r0, _021D7568 ; =MOD55_021D77D0 + add r1, r4, #0 + bl FUN_02015F10 + add r0, r4, #0 + bl MOD55_021D74E0 + pop {r4, pc} + .align 2, 0 +_021D7560: .word 0xFFFFE0FF +_021D7564: .word 0x04001000 +_021D7568: .word MOD55_021D77D0 + thumb_func_end MOD55_021D7504 + + thumb_func_start MOD55_021D756C +MOD55_021D756C: ; 0x021D756C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, [r5] + add r6, r0, #0 + cmp r1, #0 + beq _021D7580 + cmp r1, #1 + beq _021D75FC + b _021D760A +_021D7580: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + bl MOD55_021DA27C + mov r2, #1 + mov r0, #3 + mov r1, #0x34 + lsl r2, r2, #0x12 + bl FUN_0201681C + ldr r1, _021D7610 ; =0x0000041C + add r0, r6, #0 + mov r2, #0x34 + bl FUN_02006268 + ldr r2, _021D7610 ; =0x0000041C + mov r1, #0 + add r4, r0, #0 + bl MI_CpuFill8 + add r0, r6, #0 + bl FUN_0200628C + str r0, [r4, #8] + add r0, r4, #0 + bl MOD55_021D7994 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x34 + str r0, [sp, #8] + mov r0, #0 + mov r1, #0x11 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add r0, r4, #0 + bl MOD55_021D7504 + add r0, r4, #0 + bl MOD55_021D7EE4 + add r0, r4, #0 + bl MOD55_021D8044 + mov r0, #1 + bl MOD55_021DA27C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D760A +_021D75FC: + bl FUN_02006278 + mov r0, #0 + str r0, [r5] + add sp, #0xc + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D760A: + mov r0, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D7610: .word 0x0000041C + thumb_func_end MOD55_021D756C + + thumb_func_start MOD55_021D7614 +MOD55_021D7614: ; 0x021D7614 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, [r5] + add r6, r0, #0 + cmp r1, #0 + beq _021D7628 + cmp r1, #1 + beq _021D76A4 + b _021D76B2 +_021D7628: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r2, #1 + mov r0, #3 + mov r1, #0x34 + lsl r2, r2, #0x12 + bl FUN_0201681C + ldr r1, _021D76B8 ; =0x0000041C + add r0, r6, #0 + mov r2, #0x34 + bl FUN_02006268 + ldr r2, _021D76B8 ; =0x0000041C + mov r1, #0 + add r4, r0, #0 + bl MI_CpuFill8 + add r0, r6, #0 + bl FUN_0200628C + str r0, [r4, #8] + add r0, r4, #0 + bl MOD55_021D7994 + mov r0, #0 + bl MOD55_021DA27C + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x34 + str r0, [sp, #8] + mov r0, #0 + mov r1, #0x11 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add r0, r4, #0 + bl MOD55_021D7504 + add r0, r4, #0 + bl MOD55_021D7EE4 + add r0, r4, #0 + bl MOD55_021D8044 + mov r0, #1 + bl MOD55_021DA27C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D76B2 +_021D76A4: + bl FUN_02006278 + mov r0, #0 + str r0, [r5] + add sp, #0xc + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D76B2: + mov r0, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D76B8: .word 0x0000041C + thumb_func_end MOD55_021D7614 + + thumb_func_start MOD55_021D76BC +MOD55_021D76BC: ; 0x021D76BC + push {r3, r4, r5, lr} + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #0 + beq _021D76D6 + cmp r1, #1 + beq _021D76E4 + cmp r1, #2 + beq _021D76FA + b _021D770C +_021D76D6: + bl FUN_0200E308 + cmp r0, #0 + beq _021D770C + mov r0, #1 + str r0, [r5] + b _021D770C +_021D76E4: + mov r2, #0x3b + lsl r2, r2, #4 + ldr r2, [r4, r2] + lsl r3, r2, #2 + ldr r2, _021D771C ; =0x021DA4A0 + ldr r2, [r2, r3] + cmp r2, #0 + beq _021D770C + blx r2 + str r0, [r5] + b _021D770C +_021D76FA: + bl FUN_0200E308 + cmp r0, #0 + beq _021D770C + mov r0, #0 + bl MOD55_021DA27C + mov r0, #1 + pop {r3, r4, r5, pc} +_021D770C: + add r4, #0xec + ldr r0, [r4] + cmp r0, #0 + beq _021D7718 + bl FUN_0201FDEC +_021D7718: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D771C: .word 0x021DA4A0 + thumb_func_end MOD55_021D76BC + + thumb_func_start MOD55_021D7720 +MOD55_021D7720: ; 0x021D7720 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r0, #0x8e + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0x8f + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r7, #0x86 + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_021D7754: + ldr r0, [r5, r7] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D7754 + add r0, r6, #0 + add r0, #0xec + ldr r0, [r0] + bl FUN_0201FD58 + add r0, r6, #0 + mov r1, #0 + add r0, #0xec + str r1, [r0] + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + mov r0, #0xeb + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02016A18 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD55_021D7720 + + thumb_func_start MOD55_021D778C +MOD55_021D778C: ; 0x021D778C + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + add r0, r4, #0 + bl MOD55_021D7720 + add r0, r4, #0 + bl MOD55_021D8140 + ldr r0, [r4, #4] + bl MOD55_021D7AA4 + pop {r4, pc} + thumb_func_end MOD55_021D778C + + thumb_func_start MOD55_021D77AC +MOD55_021D77AC: ; 0x021D77AC + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + bl MOD55_021D778C + add r0, r4, #0 + bl MOD55_021D7A38 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0x34 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + thumb_func_end MOD55_021D77AC + + thumb_func_start MOD55_021D77D0 +MOD55_021D77D0: ; 0x021D77D0 + push {r4, lr} + add r4, r0, #0 + add r0, #0xe0 + ldr r0, [r0] + cmp r0, #0 + beq _021D77E6 + add r0, r4, #0 + add r0, #0xdc + ldr r0, [r0] + bl FUN_020081C4 +_021D77E6: + ldr r0, [r4, #4] + bl FUN_0201AB60 + bl FUN_0201C30C + bl FUN_02009F80 + ldr r3, _021D7804 ; =0x027E0000 + ldr r1, _021D7808 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + nop +_021D7804: .word 0x027E0000 +_021D7808: .word 0x00003FF8 + thumb_func_end MOD55_021D77D0 + + thumb_func_start MOD55_021D780C +MOD55_021D780C: ; 0x021D780C + ldr r3, _021D7814 ; =FUN_0201E66C + ldr r0, _021D7818 ; =0x021DA458 + bx r3 + nop +_021D7814: .word FUN_0201E66C +_021D7818: .word 0x021DA458 + thumb_func_end MOD55_021D780C + + thumb_func_start MOD55_021D781C +MOD55_021D781C: ; 0x021D781C + push {r4, r5, lr} + sub sp, #0x9c + ldr r5, _021D7974 ; =0x021DA2C8 + add r3, sp, #0x8c + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D7978 ; =0x021DA34C + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x34 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _021D797C ; =0x021DA368 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #1 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x34 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _021D7980 ; =0x021DA384 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x34 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _021D7984 ; =0x021DA3A0 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #3 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x34 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #3 + bl FUN_02018744 + ldr r5, _021D7988 ; =0x021DA3BC + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x34 + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x34 + bl FUN_02017F18 + mov r0, #0 + mov r1, #3 + bl FUN_020178BC + mov r0, #1 + mov r1, #2 + bl FUN_020178BC + mov r0, #3 + mov r1, #1 + bl FUN_020178BC + mov r0, #2 + mov r1, #0 + bl FUN_020178BC + ldr r0, _021D798C ; =0x04000050 + mov r1, #0 + strh r1, [r0] + ldr r0, _021D7990 ; =0x04001050 + strh r1, [r0] + add sp, #0x9c + pop {r4, r5, pc} + .align 2, 0 +_021D7974: .word 0x021DA2C8 +_021D7978: .word 0x021DA34C +_021D797C: .word 0x021DA368 +_021D7980: .word 0x021DA384 +_021D7984: .word 0x021DA3A0 +_021D7988: .word 0x021DA3BC +_021D798C: .word 0x04000050 +_021D7990: .word 0x04001050 + thumb_func_end MOD55_021D781C + + thumb_func_start MOD55_021D7994 +MOD55_021D7994: ; 0x021D7994 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r0, #0x34 + bl FUN_0200AA80 + str r0, [r6, #0xc] + ldr r2, _021D7A34 ; =0x00000251 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x34 + bl FUN_0200A86C + str r0, [r6, #0x10] + mov r4, #0 + add r5, r6, #0 + mov r7, #0x10 +_021D79B4: + add r0, r7, #0 + mov r1, #0x34 + bl FUN_020219F4 + str r0, [r5, #0x38] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0x20 + blt _021D79B4 + mov r0, #0x10 + mov r1, #0x34 + bl FUN_020219F4 + add r1, r6, #0 + add r1, #0xd4 + str r0, [r1] + mov r0, #0x1a + mov r1, #0x34 + bl FUN_020219F4 + add r1, r6, #0 + add r1, #0xd8 + str r0, [r1] + mov r0, #0xb4 + mov r1, #0x34 + bl FUN_020219F4 + add r1, r6, #0 + add r1, #0xbc + str r0, [r1] + mov r5, #0 + add r4, r6, #0 + mov r7, #0xb4 +_021D79F6: + add r0, r7, #0 + mov r1, #0x34 + bl FUN_020219F4 + add r1, r4, #0 + add r1, #0xc4 + add r5, r5, #1 + add r4, r4, #4 + str r0, [r1] + cmp r5, #4 + blt _021D79F6 + mov r0, #0xb4 + mov r1, #0x34 + bl FUN_020219F4 + add r1, r6, #0 + add r1, #0xb8 + str r0, [r1] + mov r0, #0x28 + mov r1, #0x34 + bl FUN_020219F4 + add r1, r6, #0 + add r1, #0xc0 + str r0, [r1] + mov r0, #0x3b + mov r1, #0 + lsl r0, r0, #4 + str r1, [r6, r0] + pop {r3, r4, r5, r6, r7, pc} + nop +_021D7A34: .word 0x00000251 + thumb_func_end MOD55_021D7994 + + thumb_func_start MOD55_021D7A38 +MOD55_021D7A38: ; 0x021D7A38 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, [r6, #0x10] + bl FUN_0200A8B8 + ldr r0, [r6, #0xc] + bl FUN_0200AB18 + mov r4, #0 + add r5, r6, #0 +_021D7A4C: + ldr r0, [r5, #0x38] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0x20 + blt _021D7A4C + add r0, r6, #0 + add r0, #0xb8 + ldr r0, [r0] + bl FUN_02021A20 + add r0, r6, #0 + add r0, #0xbc + ldr r0, [r0] + bl FUN_02021A20 + add r0, r6, #0 + add r0, #0xc0 + ldr r0, [r0] + bl FUN_02021A20 + mov r5, #0 + add r4, r6, #0 +_021D7A7C: + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + bl FUN_02021A20 + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #4 + blt _021D7A7C + add r0, r6, #0 + add r0, #0xd4 + ldr r0, [r0] + bl FUN_02021A20 + add r6, #0xd8 + ldr r0, [r6] + bl FUN_02021A20 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD55_021D7A38 + + thumb_func_start MOD55_021D7AA4 +MOD55_021D7AA4: ; 0x021D7AA4 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD55_021D7AA4 + + thumb_func_start MOD55_021D7AE0 +MOD55_021D7AE0: ; 0x021D7AE0 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r2, #0 + str r2, [sp] + mov r0, #0x34 + str r0, [sp, #4] + mov r0, #0x59 + mov r1, #3 + add r3, r2, #0 + bl FUN_02006930 + mov r3, #0 + str r3, [sp] + mov r0, #0x34 + str r0, [sp, #4] + mov r0, #0x59 + mov r1, #3 + mov r2, #4 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x34 + bl FUN_02002EEC + mov r1, #6 + mov r0, #0 + lsl r1, r1, #6 + mov r2, #0x34 + bl FUN_02002EEC + ldr r1, _021D7BE4 ; =0x000052D8 + add r0, sp, #0x10 + strh r1, [r0] + mov r1, #0x6f + add r0, sp, #0x10 + lsl r1, r1, #2 + mov r2, #2 + bl GX_LoadBGPltt + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + mov r0, #0x59 + mov r1, #2 + add r2, r4, #0 + bl FUN_0200687C + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + mov r0, #0x59 + mov r1, #8 + add r2, r4, #0 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x59 + mov r1, #4 + mov r3, #1 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + mov r0, #0x59 + mov r1, #0xa + add r2, r4, #0 + mov r3, #4 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + mov r0, #0x59 + mov r1, #0xb + add r2, r4, #0 + mov r3, #4 + bl FUN_020068C8 + ldr r0, [r5, #8] + bl LoadPlayerDataAddress + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x34 + str r0, [sp, #4] + ldr r2, _021D7BE8 ; =0x000001E2 + add r0, r4, #0 + mov r1, #2 + mov r3, #0xa + bl FUN_0200CD68 + mov r0, #0 + str r0, [sp] + mov r0, #0x34 + str r0, [sp, #4] + ldr r2, _021D7BEC ; =0x000001D9 + add r0, r4, #0 + mov r1, #2 + mov r3, #0xb + bl FUN_0200CB00 + add sp, #0x14 + pop {r4, r5, pc} + nop +_021D7BE4: .word 0x000052D8 +_021D7BE8: .word 0x000001E2 +_021D7BEC: .word 0x000001D9 + thumb_func_end MOD55_021D7AE0 + + thumb_func_start MOD55_021D7BF0 +MOD55_021D7BF0: ; 0x021D7BF0 + push {r4, lr} + sub sp, #0x10 + ldr r4, _021D7C1C ; =0x021DA2E8 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #0x14 + mov r1, #0x34 + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021D7C1C: .word 0x021DA2E8 + thumb_func_end MOD55_021D7BF0 + + thumb_func_start MOD55_021D7C20 +MOD55_021D7C20: ; 0x021D7C20 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x7e + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x34 + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + add r1, r5, #0 + mov r0, #0x1e + add r1, #0xf0 + mov r2, #0x34 + bl FUN_02008C9C + add r1, r5, #0 + add r1, #0xec + str r0, [r1] + add r0, r5, #0 + mov r2, #1 + add r0, #0xf0 + mov r1, #0 + lsl r2, r2, #0x14 + bl FUN_02008D24 + mov r7, #0x86 + mov r6, #0 + add r4, r5, #0 + lsl r7, r7, #2 +_021D7C6A: + mov r0, #2 + add r1, r6, #0 + mov r2, #0x34 + bl FUN_02008DEC + str r0, [r4, r7] + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #4 + blt _021D7C6A + mov r3, #1 + str r3, [sp] + str r3, [sp, #4] + mov r0, #0x34 + str r0, [sp, #8] + mov r0, #0x86 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x56 + mov r2, #9 + bl FUN_02008F34 + mov r1, #0x8e + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x34 + sub r1, #0x20 + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x59 + mov r2, #9 + bl FUN_02008F34 + mov r1, #0x8a + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #5 + str r0, [sp, #8] + mov r0, #0x34 + sub r1, #0xc + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x56 + mov r2, #7 + mov r3, #0 + bl FUN_02008FEC + mov r1, #0x8f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #5 + str r0, [sp, #8] + mov r0, #0x34 + sub r1, #0x20 + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x59 + mov r2, #3 + bl FUN_02008FEC + mov r1, #0x8b + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x34 + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x56 + mov r2, #0xa + bl FUN_020090AC + mov r1, #9 + lsl r1, r1, #6 + str r0, [r5, r1] + mov r3, #0 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x34 + sub r1, #0x20 + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x59 + mov r2, #1 + bl FUN_020090AC + mov r1, #0x23 + lsl r1, r1, #4 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x34 + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x56 + mov r2, #0xb + bl FUN_020090AC + mov r1, #0x91 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r2, #0 + str r2, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x34 + sub r1, #0x20 + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x59 + add r3, r2, #0 + bl FUN_020090AC + mov r1, #0x8d + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #4 + ldr r0, [r5, r0] + bl FUN_02009A50 + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009A50 + mov r0, #0x8f + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009CF0 + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009CF0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD55_021D7C20 + + thumb_func_start MOD55_021D7DA0 +MOD55_021D7DA0: ; 0x021D7DA0 + push {r4, r5, r6, r7, lr} + sub sp, #0x5c + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + sub r0, r1, #1 + str r0, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r2, #0x86 + str r1, [sp, #0x10] + lsl r2, r2, #2 + ldr r0, [r5, r2] + add r3, r1, #0 + str r0, [sp, #0x14] + add r0, r2, #4 + ldr r0, [r5, r0] + str r0, [sp, #0x18] + add r0, r2, #0 + add r0, #8 + ldr r0, [r5, r0] + str r0, [sp, #0x1c] + add r0, r2, #0 + add r0, #0xc + ldr r0, [r5, r0] + add r2, #0x30 + str r0, [sp, #0x20] + str r1, [sp, #0x24] + add r0, r5, r2 + add r2, r1, #0 + str r1, [sp, #0x28] + bl FUN_02008AA4 + mov r1, #1 + mov r3, #0x86 + str r1, [sp] + sub r0, r1, #2 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r3, r3, #2 + ldr r2, [r5, r3] + str r2, [sp, #0x14] + add r2, r3, #4 + ldr r2, [r5, r2] + str r2, [sp, #0x18] + add r2, r3, #0 + add r2, #8 + ldr r2, [r5, r2] + str r2, [sp, #0x1c] + add r2, r3, #0 + add r2, #0xc + ldr r2, [r5, r2] + add r3, #0x54 + str r2, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r5, r3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02008AA4 + add r0, r5, #0 + add r0, #0xec + ldr r0, [r0] + mov r4, #0 + str r0, [sp, #0x2c] + mov r0, #0x9b + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [sp, #0x30] + mov r0, #1 + lsl r0, r0, #0xc + mov r7, #0x62 + str r4, [sp, #0x3c] + str r0, [sp, #0x40] + str r0, [sp, #0x44] + str r0, [sp, #0x48] + add r0, sp, #0x2c + strh r4, [r0, #0x20] + mov r0, #1 + str r0, [sp, #0x50] + str r0, [sp, #0x54] + mov r0, #0x34 + str r0, [sp, #0x58] + mov r0, #0x92 + lsl r0, r0, #2 + lsl r7, r7, #0xc + add r6, r5, r0 +_021D7E56: + asr r0, r4, #1 + lsr r0, r0, #0x1e + add r0, r4, r0 + asr r1, r0, #2 + mov r0, #0x78 + mul r0, r1 + add r0, #0x16 + lsl r0, r0, #0xc + str r0, [sp, #0x34] + lsr r2, r4, #0x1f + lsl r1, r4, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #5 + add r0, #0x2b + lsl r0, r0, #0xc + str r0, [sp, #0x38] + cmp r4, #8 + bne _021D7E8C + mov r0, #6 + lsl r0, r0, #0xc + str r0, [sp, #0x34] + str r7, [sp, #0x38] + str r6, [sp, #0x30] + b _021D7E9A +_021D7E8C: + cmp r4, #9 + bne _021D7E9A + mov r0, #0xf9 + lsl r0, r0, #0xc + str r0, [sp, #0x34] + str r7, [sp, #0x38] + str r6, [sp, #0x30] +_021D7E9A: + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #0x29 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r4, #0 + sub r0, #8 + cmp r0, #1 + bhi _021D7EB8 + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC +_021D7EB8: + mov r0, #0x29 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #2 + bl FUN_02020238 + mov r0, #0x29 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xa + blt _021D7E56 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x5c + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD55_021D7DA0 + + thumb_func_start MOD55_021D7EE4 +MOD55_021D7EE4: ; 0x021D7EE4 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r0, #0 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D7F02 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_021D7F02: + mov r0, #0 + str r0, [sp] + mov r0, #0xd + str r0, [sp, #4] + mov r2, #3 + str r2, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _021D8038 ; =0x00000171 + mov r1, #0xe6 + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r5, #4] + add r1, r5, r1 + mov r3, #1 + bl FUN_02019064 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + add r2, r5, #0 + add r2, #0xc0 + ldr r0, [r5, #0x10] + ldr r2, [r2] + mov r1, #0 + bl FUN_0200A8E0 + mov r0, #4 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D803C ; =0x000F0E00 + add r2, r5, #0 + str r0, [sp, #8] + mov r3, #0 + mov r0, #0xe6 + lsl r0, r0, #2 + str r3, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BDE0 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + mov r6, #0 + mov r0, #0xd2 + lsl r0, r0, #2 + add r4, r5, r0 + str r6, [sp, #0x18] + str r6, [sp, #0x14] + add r7, r5, #0 +_021D7F76: + add r0, r4, #0 + bl FUN_02019048 + cmp r0, #0 + beq _021D7F86 + add r0, r4, #0 + bl FUN_02019178 +_021D7F86: + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x18] + add r0, r0, #5 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x15 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _021D8038 ; =0x00000171 + add r1, #0x3c + sub r0, r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r5, #4] + add r1, r4, #0 + mov r2, #3 + mov r3, #7 + bl FUN_02019064 + add r0, r4, #0 + mov r1, #0 + bl FUN_02019620 + cmp r6, #2 + bne _021D7FF4 + ldr r0, [r5, #8] + bl FUN_020238F4 + add r2, r0, #0 + ldr r0, [r5, #0xc] + mov r1, #0 + bl FUN_0200ABC0 + add r2, r5, #0 + add r2, #0xb8 + ldr r0, [r5, #0x10] + ldr r2, [r2] + add r1, r6, #1 + bl FUN_0200A8E0 + add r1, r7, #0 + add r2, r5, #0 + add r1, #0xc4 + add r2, #0xb8 + ldr r0, [r5, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0200B7B8 + b _021D8002 +_021D7FF4: + add r2, r7, #0 + add r2, #0xc4 + ldr r0, [r5, #0x10] + ldr r2, [r2] + add r1, r6, #1 + bl FUN_0200A8E0 +_021D8002: + ldr r0, _021D8040 ; =0x00010200 + add r1, r7, #0 + str r0, [sp] + add r1, #0xc4 + ldr r1, [r1] + add r0, r4, #0 + mov r2, #0xff + mov r3, #0x90 + bl MOD55_021D80F0 + add r0, r4, #0 + bl FUN_02019220 + ldr r0, [sp, #0x18] + add r6, r6, #1 + add r0, #0x3c + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + add r4, #0x10 + add r0, r0, #5 + add r7, r7, #4 + str r0, [sp, #0x14] + cmp r6, #4 + blt _021D7F76 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021D8038: .word 0x00000171 +_021D803C: .word 0x000F0E00 +_021D8040: .word 0x00010200 + thumb_func_end MOD55_021D7EE4 + + thumb_func_start MOD55_021D8044 +MOD55_021D8044: ; 0x021D8044 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + ldr r1, _021D80E8 ; =0x021DA298 + str r0, [sp] + ldrb r2, [r1, #8] + add r0, sp, #0x10 + strb r2, [r0] + ldrb r2, [r1, #9] + strb r2, [r0, #1] + ldrb r2, [r1, #0xa] + ldrb r1, [r1, #0xb] + strb r2, [r0, #2] + strb r1, [r0, #3] + ldr r0, [sp] + mov r1, #1 + ldr r0, [r0, #4] + bl FUN_0201886C + mov ip, r0 + mov r1, #0xf2 + ldr r0, [sp] + lsl r1, r1, #2 + ldrb r0, [r0, r1] + str r0, [sp, #0xc] + mov r0, #0 + str r0, [sp, #8] +_021D8078: + ldr r1, [sp, #0xc] + ldr r0, [sp, #8] + cmp r1, r0 + bne _021D8086 + mov r3, #1 + lsl r3, r3, #0xc + b _021D8088 +_021D8086: + mov r3, #0 +_021D8088: + add r1, sp, #0x10 + ldrb r7, [r1, #1] + ldrb r0, [r1, #3] + add r0, r7, r0 + str r0, [sp, #4] + cmp r7, r0 + bge _021D80C6 + ldrb r2, [r1] + ldrb r1, [r1, #2] + lsl r0, r7, #5 + ldr r4, _021D80EC ; =0x00000FFF + add r6, r2, r0 +_021D80A0: + mov r0, #0 + cmp r1, #0 + ble _021D80BC + lsl r5, r6, #1 + mov r2, ip + add r2, r2, r5 +_021D80AC: + ldrh r5, [r2] + add r0, r0, #1 + and r5, r4 + add r5, r3, r5 + strh r5, [r2] + add r2, r2, #2 + cmp r0, r1 + blt _021D80AC +_021D80BC: + ldr r0, [sp, #4] + add r7, r7, #1 + add r6, #0x20 + cmp r7, r0 + blt _021D80A0 +_021D80C6: + add r0, sp, #0x10 + ldrb r1, [r0, #1] + add r1, r1, #5 + strb r1, [r0, #1] + ldr r0, [sp, #8] + add r0, r0, #1 + str r0, [sp, #8] + cmp r0, #4 + blt _021D8078 + ldr r0, [sp] + mov r1, #1 + ldr r0, [r0, #4] + bl FUN_02017CD0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D80E8: .word 0x021DA298 +_021D80EC: .word 0x00000FFF + thumb_func_end MOD55_021D8044 + + thumb_func_start MOD55_021D80F0 +MOD55_021D80F0: ; 0x021D80F0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #0 + add r4, r2, #0 + add r7, r3, #0 + add r2, r0, #0 + add r6, r1, #0 + bl FUN_02002E14 + sub r1, r7, r0 + lsr r0, r1, #0x1f + add r0, r1, r0 + ldr r1, [sp, #0x28] + asr r3, r0, #1 + cmp r1, #0 + bne _021D8128 + mov r0, #1 + str r0, [sp] + str r4, [sp, #4] + mov r1, #0 + add r0, r5, #0 + add r2, r6, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_021D8128: + mov r0, #1 + str r0, [sp] + str r4, [sp, #4] + str r1, [sp, #8] + mov r1, #0 + add r0, r5, #0 + add r2, r6, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD55_021D80F0 + + thumb_func_start MOD55_021D8140 +MOD55_021D8140: ; 0x021D8140 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r0, #0xae + lsl r0, r0, #2 + mov r4, #0 + add r5, r6, r0 +_021D814C: + add r0, r5, #0 + bl FUN_02019048 + cmp r0, #0 + beq _021D815C + add r0, r5, #0 + bl FUN_02019178 +_021D815C: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #8 + blt _021D814C + mov r0, #0xd2 + lsl r0, r0, #2 + mov r5, #0 + add r4, r6, r0 +_021D816C: + add r0, r4, #0 + bl FUN_02019048 + cmp r0, #0 + beq _021D817C + add r0, r4, #0 + bl FUN_02019178 +_021D817C: + add r5, r5, #1 + add r4, #0x10 + cmp r5, #4 + blt _021D816C + mov r0, #0xce + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D819C + mov r0, #0xce + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019178 +_021D819C: + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D81B4 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019178 +_021D81B4: + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D81CC + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019178 +_021D81CC: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD55_021D8140 + + thumb_func_start MOD55_021D81D0 +MOD55_021D81D0: ; 0x021D81D0 + mov r2, #0x3b + mov r3, #1 + lsl r2, r2, #4 + str r3, [r0, r2] + add r0, r1, #0 + bx lr + thumb_func_end MOD55_021D81D0 + + thumb_func_start MOD55_021D81DC +MOD55_021D81DC: ; 0x021D81DC + push {r3, r4, r5, lr} + add r4, r0, #0 + add r5, r1, #0 + bl FUN_0200E308 + cmp r0, #0 + bne _021D81EE + add r0, r5, #0 + pop {r3, r4, r5, pc} +_021D81EE: + ldr r2, _021D82B8 ; =0x021C48B8 + mov r1, #1 + ldr r0, [r2, #0x48] + tst r1, r0 + beq _021D824C + ldr r0, _021D82BC ; =0x000005DC + bl FUN_020054C8 + mov r0, #0xf2 + lsl r0, r0, #2 + ldrb r1, [r4, r0] + cmp r1, #3 + bhi _021D82B2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D8214: ; jump table + .short _021D821C - _021D8214 - 2 ; case 0 + .short _021D8234 - _021D8214 - 2 ; case 1 + .short _021D823C - _021D8214 - 2 ; case 2 + .short _021D8244 - _021D8214 - 2 ; case 3 +_021D821C: + mov r2, #0 + strb r2, [r4, r0] + add r1, r0, #3 + strb r2, [r4, r1] + add r1, r0, #1 + strb r2, [r4, r1] + add r1, r0, #2 + strb r2, [r4, r1] + mov r1, #2 + sub r0, #0x18 + str r1, [r4, r0] + b _021D82B2 +_021D8234: + mov r1, #7 + sub r0, #0x18 + str r1, [r4, r0] + b _021D82B2 +_021D823C: + mov r1, #0x12 + sub r0, #0x18 + str r1, [r4, r0] + b _021D82B2 +_021D8244: + mov r1, #0x11 + sub r0, #0x18 + str r1, [r4, r0] + b _021D82B2 +_021D824C: + mov r1, #2 + tst r0, r1 + beq _021D8262 + ldr r0, _021D82BC ; =0x000005DC + bl FUN_020054C8 + mov r0, #0x3b + mov r1, #0x11 + lsl r0, r0, #4 + str r1, [r4, r0] + b _021D82B2 +_021D8262: + ldr r1, [r2, #0x4c] + mov r0, #0x40 + tst r0, r1 + beq _021D828C + mov r0, #0xf2 + lsl r0, r0, #2 + ldrb r0, [r4, r0] + cmp r0, #0 + beq _021D82B2 + ldr r0, _021D82BC ; =0x000005DC + bl FUN_020054C8 + mov r0, #0xf2 + lsl r0, r0, #2 + ldrb r1, [r4, r0] + sub r1, r1, #1 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD55_021D8044 + b _021D82B2 +_021D828C: + mov r0, #0x80 + tst r0, r1 + beq _021D82B2 + mov r0, #0xf2 + lsl r0, r0, #2 + ldrb r0, [r4, r0] + cmp r0, #3 + bhs _021D82B2 + ldr r0, _021D82BC ; =0x000005DC + bl FUN_020054C8 + mov r0, #0xf2 + lsl r0, r0, #2 + ldrb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD55_021D8044 +_021D82B2: + add r0, r5, #0 + pop {r3, r4, r5, pc} + nop +_021D82B8: .word 0x021C48B8 +_021D82BC: .word 0x000005DC + thumb_func_end MOD55_021D81DC + + thumb_func_start MOD55_021D82C0 +MOD55_021D82C0: ; 0x021D82C0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r7, r0, #0 + ldr r0, [r7, #8] + str r1, [sp, #0xc] + bl FUN_020286EC + mov r6, #0 + add r4, r0, #0 + add r5, r6, #0 +_021D82D4: + add r0, r4, #0 + add r1, r5, #0 + bl FUN_0202842C + cmp r0, #0 + bne _021D82E2 + mov r6, #1 +_021D82E2: + add r5, r5, #1 + cmp r5, #0x20 + blt _021D82D4 + cmp r6, #0 + beq _021D8308 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x34 + str r0, [sp, #8] + mov r0, #0 + mov r1, #0x10 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r1, #8 + b _021D8312 +_021D8308: + add r0, r7, #0 + mov r1, #0x1d + bl MOD55_021DA0A4 + mov r1, #0xf +_021D8312: + mov r0, #0x3b + lsl r0, r0, #4 + str r1, [r7, r0] + ldr r0, [sp, #0xc] + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD55_021D82C0 + + thumb_func_start MOD55_021D8320 +MOD55_021D8320: ; 0x021D8320 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _021D8366 + mov r0, #0 + bl MOD55_021DA27C + add r0, r5, #0 + bl MOD55_021D778C + ldr r0, [r5, #8] + bl LoadPlayerDataAddress + mov r1, #7 + str r0, [sp] + mov r0, #0x34 + mov r2, #0 + add r3, r1, #0 + bl FUN_02077A84 + str r0, [r5] + ldr r0, _021D836C ; =0x020FA5FC + ldr r1, [r5] + mov r2, #0x34 + bl FUN_02006234 + mov r1, #0x3d + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #9 + sub r1, #0x20 + str r0, [r5, r1] +_021D8366: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D836C: .word 0x020FA5FC + thumb_func_end MOD55_021D8320 + + thumb_func_start MOD55_021D8370 +MOD55_021D8370: ; 0x021D8370 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r4, r1, #0 + bl FUN_02006290 + cmp r0, #0 + beq _021D83FC + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02006260 + ldr r1, [r5] + ldr r0, [r1, #0x14] + cmp r0, #0 + bne _021D83A8 + add r0, r5, #0 + add r0, #0xd4 + ldr r0, [r0] + ldr r1, [r1, #0x18] + bl FUN_02021A74 + mov r1, #0xa + b _021D83F0 +_021D83A8: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + bl MOD55_021DA27C + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x34 + str r0, [sp, #8] + mov r0, #0 + mov r1, #0x11 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add r0, r5, #0 + bl MOD55_021D7504 + add r0, r5, #0 + bl MOD55_021D7EE4 + add r0, r5, #0 + bl MOD55_021D8044 + mov r0, #1 + bl MOD55_021DA27C + mov r1, #6 +_021D83F0: + mov r0, #0x3b + lsl r0, r0, #4 + str r1, [r5, r0] + ldr r0, [r5] + bl FUN_02077AC4 +_021D83FC: + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD55_021D8370 + + thumb_func_start MOD55_021D8404 +MOD55_021D8404: ; 0x021D8404 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #8] + add r4, r1, #0 + bl LoadPlayerDataAddress + str r0, [sp] + mov r0, #0x34 + mov r1, #4 + mov r2, #0 + mov r3, #0xc + bl FUN_02077A84 + str r0, [r5] + ldr r0, _021D843C ; =0x020FA5FC + ldr r1, [r5] + mov r2, #0x34 + bl FUN_02006234 + mov r1, #0x3d + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #0xb + sub r1, #0x20 + str r0, [r5, r1] + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D843C: .word 0x020FA5FC + thumb_func_end MOD55_021D8404 + + thumb_func_start MOD55_021D8440 +MOD55_021D8440: ; 0x021D8440 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r4, r1, #0 + bl FUN_02006290 + cmp r0, #0 + beq _021D84C2 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02006260 + add r0, r5, #0 + ldr r1, [r5] + add r0, #0xd8 + ldr r0, [r0] + ldr r1, [r1, #0x18] + bl FUN_02021A74 + ldr r0, [r5] + bl FUN_02077AC4 + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + bl MOD55_021DA27C + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x34 + str r0, [sp, #8] + mov r0, #0 + mov r1, #0x11 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add r0, r5, #0 + bl MOD55_021D7504 + add r0, r5, #0 + bl MOD55_021D7EE4 + add r0, r5, #0 + bl MOD55_021D8044 + mov r0, #1 + bl MOD55_021DA27C + mov r0, #0x3b + mov r1, #0xc + lsl r0, r0, #4 + str r1, [r5, r0] +_021D84C2: + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD55_021D8440 + + thumb_func_start MOD55_021D84C8 +MOD55_021D84C8: ; 0x021D84C8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + add r6, r1, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _021D853C + add r0, r5, #0 + add r0, #0xd8 + ldr r0, [r0] + add r1, sp, #4 + bl FUN_02021C38 + str r0, [sp] + ldr r0, [sp, #4] + add r7, r1, #0 + cmp r0, #0 + beq _021D8534 + mov r0, #0x34 + bl FUN_02023928 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0xd4 + ldr r0, [r0] + bl FUN_02021F2C + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0202395C + ldr r0, [r5, #0xc] + mov r1, #0 + add r2, r4, #0 + bl FUN_0200ABC0 + ldr r1, [sp] + add r0, r5, #0 + add r2, r7, #0 + bl MOD55_021D93F8 + add r0, r5, #0 + mov r1, #0x19 + bl MOD55_021DA0A4 + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #0x3b + mov r1, #0xd + lsl r0, r0, #4 + str r1, [r5, r0] + b _021D853C +_021D8534: + mov r0, #0x3b + mov r1, #0xf + lsl r0, r0, #4 + str r1, [r5, r0] +_021D853C: + add r0, r6, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD55_021D84C8 + + thumb_func_start MOD55_021D8544 +MOD55_021D8544: ; 0x021D8544 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xe4 + ldr r0, [r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021D8578 + mov r0, #0x34 + str r0, [sp] + ldr r0, [r5, #4] + ldr r1, _021D857C ; =0x021DA2AC + ldr r2, _021D8580 ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + add r1, r5, #0 + add r1, #0xe8 + str r0, [r1] + mov r0, #0x3b + mov r1, #0xe + lsl r0, r0, #4 + str r1, [r5, r0] +_021D8578: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D857C: .word 0x021DA2AC +_021D8580: .word 0x000001D9 + thumb_func_end MOD55_021D8544 + + thumb_func_start MOD55_021D8584 +MOD55_021D8584: ; 0x021D8584 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + add r0, #0xe8 + str r1, [sp] + ldr r0, [r0] + mov r1, #0x34 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _021D85A4 + ldr r0, [sp] + add sp, #0xc + pop {r4, r5, r6, r7, pc} +_021D85A4: + cmp r0, #0 + bne _021D866C + ldr r0, [r5, #8] + bl FUN_020286EC + str r0, [sp, #4] + mov r4, #0 +_021D85B2: + ldr r0, [sp, #4] + add r1, r4, #0 + bl FUN_0202842C + cmp r0, #0 + bne _021D8666 + add r0, r5, #0 + add r0, #0xd8 + ldr r0, [r0] + add r1, sp, #8 + bl FUN_02021C38 + add r7, r0, #0 + ldr r0, [sp, #4] + add r6, r1, #0 + bl FUN_02028228 + bl FUN_02096D68 + eor r1, r6 + eor r0, r7 + orr r0, r1 + bne _021D85E4 + mov r0, #0 + str r0, [sp, #8] +_021D85E4: + ldr r0, [sp, #8] + cmp r0, #0 + beq _021D8650 + ldr r0, [r5, #8] + add r1, r4, #0 + add r2, r7, #0 + add r3, r6, #0 + bl MOD55_021DA224 + cmp r0, #0 + bne _021D8616 + add r2, r5, #0 + add r2, #0xd4 + ldr r0, [sp, #4] + ldr r2, [r2] + add r1, r4, #0 + bl FUN_020283C0 + ldr r0, [sp, #4] + add r1, r4, #0 + mov r2, #8 + mov r3, #2 + bl FUN_020282E8 + b _021D866C +_021D8616: + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _021D8634 + add r0, r5, #0 + mov r1, #0x1a + bl MOD55_021DA0A4 + mov r0, #0x3b + mov r1, #0xf + lsl r0, r0, #4 + str r1, [r5, r0] + ldr r0, [sp] + add sp, #0xc + pop {r4, r5, r6, r7, pc} +_021D8634: + sub r1, r1, #1 + cmp r0, r1 + bne _021D8666 + add r0, r5, #0 + mov r1, #0x1e + bl MOD55_021DA0A4 + mov r0, #0x3b + mov r1, #0xf + lsl r0, r0, #4 + str r1, [r5, r0] + ldr r0, [sp] + add sp, #0xc + pop {r4, r5, r6, r7, pc} +_021D8650: + add r0, r5, #0 + mov r1, #0x1a + bl MOD55_021DA0A4 + mov r0, #0x3b + mov r1, #0xf + lsl r0, r0, #4 + str r1, [r5, r0] + ldr r0, [sp] + add sp, #0xc + pop {r4, r5, r6, r7, pc} +_021D8666: + add r4, r4, #1 + cmp r4, #0x20 + blt _021D85B2 +_021D866C: + add r0, r5, #0 + bl MOD55_021DA214 + mov r0, #0x3b + mov r1, #6 + lsl r0, r0, #4 + str r1, [r5, r0] + ldr r0, [sp] + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD55_021D8584 + + thumb_func_start MOD55_021D8680 +MOD55_021D8680: ; 0x021D8680 + mov r2, #0x3b + mov r3, #0x10 + lsl r2, r2, #4 + str r3, [r0, r2] + add r0, r1, #0 + bx lr + thumb_func_end MOD55_021D8680 + + thumb_func_start MOD55_021D868C +MOD55_021D868C: ; 0x021D868C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xe4 + ldr r0, [r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021D86CA + ldr r0, _021D86D0 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021D86CA + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019570 + mov r0, #0x3b + mov r1, #6 + lsl r0, r0, #4 + str r1, [r5, r0] +_021D86CA: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D86D0: .word 0x021C48B8 + thumb_func_end MOD55_021D868C + + thumb_func_start MOD55_021D86D4 +MOD55_021D86D4: ; 0x021D86D4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x40 + ldr r1, _021D88C4 ; =0x021DA298 + str r0, [sp] + ldrb r2, [r1] + add r0, sp, #0x28 + strb r2, [r0, #0x14] + ldrb r2, [r1, #1] + strb r2, [r0, #0x15] + ldrb r2, [r1, #2] + strb r2, [r0, #0x16] + ldrb r2, [r1, #3] + strb r2, [r0, #0x17] + ldrb r2, [r1, #4] + strb r2, [r0, #0x10] + ldrb r2, [r1, #5] + strb r2, [r0, #0x11] + ldrb r2, [r1, #6] + strb r2, [r0, #0x12] + ldrb r1, [r1, #7] + strb r1, [r0, #0x13] + ldr r0, [sp] + mov r1, #1 + ldr r0, [r0, #4] + bl FUN_0201886C + str r0, [sp, #0x24] + mov r1, #0xf2 + ldr r0, [sp] + lsl r1, r1, #2 + ldrb r3, [r0, r1] + mov r0, #0x1d + lsr r2, r3, #0x1f + lsl r1, r3, #0x1d + sub r1, r1, r2 + ror r1, r0 + add r0, r2, r1 + str r0, [sp, #0x20] + lsr r0, r3, #3 + str r0, [sp, #0xc] + ldr r0, [sp] + ldr r0, [r0, #8] + bl FUN_020286EC + ldr r1, _021D88C4 ; =0x021DA298 + str r0, [sp, #0x18] + ldrh r2, [r1, #0x1c] + add r0, sp, #0x28 + strh r2, [r0, #8] + ldrh r2, [r1, #0x1e] + strh r2, [r0, #0xa] + ldrh r2, [r1, #0x20] + strh r2, [r0, #0xc] + ldrh r2, [r1, #0x22] + strh r2, [r0, #0xe] + ldrh r2, [r1, #0xc] + strh r2, [r0] + ldrh r2, [r1, #0xe] + strh r2, [r0, #2] + ldrh r2, [r1, #0x10] + strh r2, [r0, #4] + ldrh r1, [r1, #0x12] + strh r1, [r0, #6] + mov r0, #0 + str r0, [sp, #0x1c] + ldr r0, [sp, #0xc] + lsl r1, r0, #3 + ldr r0, [sp] + add r0, r0, r1 + str r0, [sp, #0x14] +_021D8760: + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x18] + ldrb r1, [r1, #0x18] + mov r2, #8 + sub r1, r1, #1 + bl FUN_0202822C + ldr r1, [sp, #0x14] + ldrb r1, [r1, #0x18] + cmp r1, #0 + beq _021D877E + cmp r0, #2 + beq _021D877E + add r3, sp, #0x28 + b _021D8780 +_021D877E: + add r3, sp, #0x30 +_021D8780: + add r1, sp, #0x28 + ldrb r7, [r1, #0x11] + ldrb r0, [r1, #0x13] + add r0, r7, r0 + str r0, [sp, #0x10] + cmp r7, r0 + bge _021D87BE + ldrb r2, [r1, #0x10] + ldrb r4, [r1, #0x12] + lsl r0, r7, #5 + add r2, r2, r0 +_021D8796: + add r0, r2, #0 + mov r1, #0 + cmp r4, #0 + ble _021D87B4 + ldr r5, [sp, #0x24] + lsl r6, r2, #1 + add r6, r5, r6 +_021D87A4: + ldrh r5, [r3] + add r1, r1, #1 + add r3, r3, #2 + strh r5, [r6] + add r6, r6, #2 + add r0, r0, #1 + cmp r1, r4 + blt _021D87A4 +_021D87B4: + ldr r0, [sp, #0x10] + add r7, r7, #1 + add r2, #0x20 + cmp r7, r0 + blt _021D8796 +_021D87BE: + add r1, sp, #0x28 + ldrb r0, [r1, #0x11] + add r0, r0, #4 + strb r0, [r1, #0x11] + ldr r0, [sp, #0x1c] + cmp r0, #3 + bne _021D87D4 + mov r0, #5 + strb r0, [r1, #0x11] + mov r0, #0x11 + strb r0, [r1, #0x10] +_021D87D4: + ldr r0, [sp, #0x14] + add r0, r0, #1 + str r0, [sp, #0x14] + ldr r0, [sp, #0x1c] + add r0, r0, #1 + str r0, [sp, #0x1c] + cmp r0, #8 + blt _021D8760 + mov r0, #0x3f + mov r4, #0x17 + mov r3, #0 + mov r7, #0x16 + mov r2, #2 + lsl r0, r0, #0xa +_021D87F0: + ldr r5, [sp, #0xc] + add r1, r4, #0 + add r1, #0x20 + cmp r3, r5 + bne _021D87FE + add r5, r2, #0 + b _021D8800 +_021D87FE: + add r5, r7, #0 +_021D8800: + ldr r6, [sp, #0x24] + lsl r1, r1, #1 + ldrh r6, [r6, r1] + add r3, r3, #1 + add r4, r4, #2 + and r6, r0 + add r6, r5, r6 + ldr r5, [sp, #0x24] + cmp r3, #4 + strh r6, [r5, r1] + blt _021D87F0 + ldr r1, _021D88C8 ; =0x000003CB + ldr r0, [sp] + ldrb r0, [r0, r1] + cmp r0, #0 + beq _021D8824 + mov r0, #8 + str r0, [sp, #0x20] +_021D8824: + mov r0, #0 + str r0, [sp, #8] +_021D8828: + ldr r1, [sp, #0x20] + ldr r0, [sp, #8] + cmp r1, r0 + bne _021D8836 + mov r4, #1 + lsl r4, r4, #0xc + b _021D8838 +_021D8836: + mov r4, #0 +_021D8838: + add r0, sp, #0x28 + ldrb r1, [r0, #0x15] + ldrb r2, [r0, #0x17] + str r1, [sp, #4] + add r1, r1, r2 + ldr r2, [sp, #4] + mov ip, r1 + cmp r2, r1 + bge _021D8884 + ldrb r2, [r0, #0x14] + ldr r1, [sp, #4] + ldrb r0, [r0, #0x16] + lsl r1, r1, #5 + ldr r6, _021D88CC ; =0x00000FFF + add r7, r2, r1 +_021D8856: + add r2, r7, #0 + mov r3, #0 + cmp r0, #0 + ble _021D8876 + ldr r1, [sp, #0x24] + lsl r5, r7, #1 + add r1, r1, r5 +_021D8864: + ldrh r5, [r1] + add r3, r3, #1 + add r2, r2, #1 + and r5, r6 + add r5, r4, r5 + strh r5, [r1] + add r1, r1, #2 + cmp r3, r0 + blt _021D8864 +_021D8876: + ldr r1, [sp, #4] + add r7, #0x20 + add r2, r1, #1 + mov r1, ip + str r2, [sp, #4] + cmp r2, r1 + blt _021D8856 +_021D8884: + add r1, sp, #0x28 + ldrb r0, [r1, #0x15] + add r0, r0, #4 + strb r0, [r1, #0x15] + ldr r0, [sp, #8] + cmp r0, #3 + bne _021D889A + mov r0, #4 + strb r0, [r1, #0x15] + mov r0, #0x10 + strb r0, [r1, #0x14] +_021D889A: + ldr r0, [sp, #8] + cmp r0, #7 + bne _021D88AA + mov r1, #0x14 + add r0, sp, #0x28 + strb r1, [r0, #0x15] + mov r1, #9 + strb r1, [r0, #0x14] +_021D88AA: + ldr r0, [sp, #8] + add r0, r0, #1 + str r0, [sp, #8] + cmp r0, #9 + blt _021D8828 + ldr r0, [sp] + mov r1, #1 + ldr r0, [r0, #4] + bl FUN_02017CD0 + add sp, #0x40 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D88C4: .word 0x021DA298 +_021D88C8: .word 0x000003CB +_021D88CC: .word 0x00000FFF + thumb_func_end MOD55_021D86D4 + + thumb_func_start MOD55_021D88D0 +MOD55_021D88D0: ; 0x021D88D0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + str r0, [sp] + ldr r0, [r0, #8] + bl FUN_020286EC + mov r1, #0xf2 + ldr r5, [sp] + add r7, r0, #0 + lsl r1, r1, #2 + add r0, r5, #0 + ldrb r0, [r0, r1] + mov r4, #0 + lsr r0, r0, #3 + lsl r1, r0, #3 + add r0, r5, #0 + add r6, r0, r1 +_021D88F2: + mov r0, #0x29 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + ldrb r0, [r6, #0x18] + cmp r0, #0 + beq _021D8968 + sub r0, r0, #1 + str r0, [sp, #4] + ldr r1, [sp, #4] + add r0, r7, #0 + mov r2, #7 + bl FUN_0202822C + str r0, [sp, #8] + ldr r1, [sp, #4] + add r0, r7, #0 + mov r2, #8 + bl FUN_0202822C + cmp r0, #2 + beq _021D8968 + ldr r1, [sp, #8] + mov r2, #0 + bl FUN_020536D0 + str r0, [sp, #0xc] + mov r0, #0xeb + ldr r1, [sp] + lsl r0, r0, #2 + ldr r1, [r1, r0] + ldr r0, [sp, #0xc] + mov r2, #0x20 + lsl r0, r0, #5 + add r0, r1, r0 + add r1, r4, #7 + lsl r1, r1, #5 + bl GX_LoadOBJPltt + mov r0, #0x29 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r1, r4, #7 + bl FUN_02020248 + mov r0, #0x29 + lsl r0, r0, #4 + ldr r0, [r5, r0] + ldr r1, [sp, #0xc] + bl FUN_02020130 + mov r0, #0x29 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 +_021D8968: + add r4, r4, #1 + add r5, r5, #4 + add r6, r6, #1 + cmp r4, #8 + blt _021D88F2 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD55_021D88D0 + + thumb_func_start MOD55_021D8978 +MOD55_021D8978: ; 0x021D8978 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + str r0, [sp, #0x10] + ldr r0, [r0, #8] + bl FUN_020286EC + add r2, sp, #0x20 + ldr r3, _021D8A24 ; =0x021DA2BC + str r0, [sp, #0x18] + ldmia r3!, {r0, r1} + str r2, [sp, #0x1c] + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r1, #0xf2 + str r0, [r2] + mov r0, #0 + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + lsl r1, r1, #2 + ldrb r0, [r0, r1] + lsr r0, r0, #3 + lsl r1, r0, #3 + ldr r0, [sp, #0x10] + add r4, r0, r1 + mov r1, #0xae + lsl r1, r1, #2 + add r5, r0, r1 +_021D89AE: + ldrb r0, [r4, #0x18] + mov r7, #0 + cmp r0, #0 + beq _021D8A00 + sub r6, r0, #1 + ldr r0, [sp, #0x18] + add r1, r6, #0 + bl FUN_0202842C + cmp r0, #0 + beq _021D8A00 + ldr r0, [sp, #0x18] + add r1, r6, #0 + mov r2, #8 + bl FUN_0202822C + add r7, r0, #0 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + mov r0, #1 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, [sp, #0x1c] + lsl r1, r7, #2 + ldr r0, [r0, r1] + ldr r2, [sp, #0x10] + str r0, [sp, #8] + mov r0, #0 + lsl r3, r6, #2 + str r0, [sp, #0xc] + add r2, r2, r3 + ldr r2, [r2, #0x38] + add r0, r5, #0 + mov r1, #0 + mov r3, #1 + bl FUN_0201BDE0 + mov r7, #1 +_021D8A00: + cmp r7, #0 + bne _021D8A0C + add r0, r5, #0 + bl FUN_0201958C + b _021D8A12 +_021D8A0C: + add r0, r5, #0 + bl FUN_02019220 +_021D8A12: + ldr r0, [sp, #0x14] + add r4, r4, #1 + add r0, r0, #1 + add r5, #0x10 + str r0, [sp, #0x14] + cmp r0, #8 + blt _021D89AE + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D8A24: .word 0x021DA2BC + thumb_func_end MOD55_021D8978 + + thumb_func_start MOD55_021D8A28 +MOD55_021D8A28: ; 0x021D8A28 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + ldr r0, [r0, #8] + bl FUN_020286EC + add r7, r0, #0 + ldr r0, [sp] + mov r6, #0 + add r0, #0x18 + add r1, r6, #0 + mov r2, #0x20 + bl MI_CpuFill8 + ldr r5, [sp] + add r4, r6, #0 +_021D8A46: + ldr r0, [r5, #0x38] + bl FUN_02021A4C + add r0, r7, #0 + add r1, r4, #0 + bl FUN_0202842C + cmp r0, #0 + beq _021D8A72 + add r0, r7, #0 + add r1, r4, #0 + bl FUN_020283A4 + add r1, r0, #0 + ldr r0, [r5, #0x38] + bl FUN_02021E28 + ldr r0, [sp] + add r1, r4, #1 + add r0, r0, r6 + strb r1, [r0, #0x18] + add r6, r6, #1 +_021D8A72: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0x20 + blt _021D8A46 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD55_021D8A28 + + thumb_func_start MOD55_021D8A7C +MOD55_021D8A7C: ; 0x021D8A7C + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r0, #0 + ldr r0, [r5, #8] + str r1, [sp, #0x14] + bl FUN_020286EC + ldr r0, [r5, #4] + mov r1, #3 + bl FUN_02018744 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x59 + mov r1, #2 + bl FUN_0200687C + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x59 + mov r1, #8 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x59 + mov r1, #5 + mov r3, #1 + bl FUN_020068C8 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D8AEE + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_021D8AEE: + mov r0, #0 + str r0, [sp] + mov r0, #0xd + str r0, [sp, #4] + mov r2, #3 + str r2, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _021D8CAC ; =0x00000171 + mov r1, #0xe6 + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r5, #4] + add r1, r5, r1 + mov r3, #1 + bl FUN_02019064 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + add r2, r5, #0 + add r2, #0xc0 + ldr r0, [r5, #0x10] + ldr r2, [r2] + mov r1, #5 + bl FUN_0200A8E0 + mov r0, #4 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8CB0 ; =0x000F0E00 + add r2, r5, #0 + str r0, [sp, #8] + mov r3, #0 + mov r0, #0xe6 + lsl r0, r0, #2 + str r3, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BDE0 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + mov r0, #0xde + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D8B6C + mov r0, #0xde + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_021D8B6C: + mov r0, #0x15 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _021D8CB4 ; =0x00000135 + mov r1, #0xde + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r5, #4] + add r1, r5, r1 + mov r2, #3 + mov r3, #0xf + bl FUN_02019064 + mov r0, #0xde + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + add r2, r5, #0 + add r2, #0xd0 + ldr r0, [r5, #0x10] + ldr r2, [r2] + mov r1, #7 + bl FUN_0200A8E0 + mov r1, #0 + add r2, r5, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8CB8 ; =0x00010200 + add r2, #0xd0 + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r0, #0xde + lsl r0, r0, #2 + ldr r2, [r2] + add r0, r5, r0 + add r3, r1, #0 + bl FUN_0201BDE0 + mov r0, #0xde + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + add r0, r5, #0 + bl MOD55_021D8A28 + mov r0, #0xae + mov r6, #0 + lsl r0, r0, #2 + add r4, r5, r0 + add r7, r6, #0 +_021D8BE4: + cmp r6, #4 + bge _021D8BEE + mov r0, #5 + str r0, [sp, #0x18] + b _021D8BF2 +_021D8BEE: + mov r0, #0x14 + str r0, [sp, #0x18] +_021D8BF2: + add r0, r4, #0 + bl FUN_02019048 + cmp r0, #0 + beq _021D8C02 + add r0, r4, #0 + bl FUN_02019178 +_021D8C02: + lsr r2, r6, #0x1f + lsl r1, r6, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #2 + add r0, r0, #5 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + add r1, r7, #0 + ldr r3, [sp, #0x18] + ldr r0, _021D8CB4 ; =0x00000135 + add r1, #0x18 + sub r0, r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + lsl r3, r3, #0x18 + ldr r0, [r5, #4] + add r1, r4, #0 + mov r2, #3 + lsr r3, r3, #0x18 + bl FUN_02019064 + add r0, r4, #0 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + bl FUN_02019220 + add r6, r6, #1 + add r4, #0x10 + add r7, #0x18 + cmp r6, #8 + blt _021D8BE4 + add r0, r5, #0 + bl MOD55_021D86D4 + add r0, r5, #0 + bl MOD55_021D8978 + add r0, r5, #0 + bl MOD55_021D88D0 + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02020130 + mov r0, #0xad + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02020130 + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xad + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x3b + mov r1, #3 + lsl r0, r0, #4 + str r1, [r5, r0] + ldr r0, [sp, #0x14] + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021D8CAC: .word 0x00000171 +_021D8CB0: .word 0x000F0E00 +_021D8CB4: .word 0x00000135 +_021D8CB8: .word 0x00010200 + thumb_func_end MOD55_021D8A7C + + thumb_func_start MOD55_021D8CBC +MOD55_021D8CBC: ; 0x021D8CBC + push {r3, r4, r5, lr} + mov r3, #0xf2 + lsl r3, r3, #2 + add r5, r0, #0 + add r2, r3, #1 + ldrb r0, [r5, r3] + ldrb r2, [r5, r2] + lsr r4, r0, #3 + cmp r2, #4 + bne _021D8CD8 + mov r1, #1 + add r0, r3, #3 + strb r1, [r5, r0] + b _021D8CF4 +_021D8CD8: + add r2, r3, #3 + ldrb r2, [r5, r2] + cmp r2, #1 + bne _021D8CE8 + mov r1, #0 + add r0, r3, #3 + strb r1, [r5, r0] + b _021D8CF4 +_021D8CE8: + add r0, r0, r1 + strb r0, [r5, r3] + ldrb r1, [r5, r3] + mov r0, #0x1f + and r0, r1 + strb r0, [r5, r3] +_021D8CF4: + add r0, r5, #0 + bl MOD55_021D86D4 + mov r0, #0xf2 + lsl r0, r0, #2 + ldrb r0, [r5, r0] + lsr r0, r0, #3 + cmp r4, r0 + beq _021D8D12 + add r0, r5, #0 + bl MOD55_021D8978 + add r0, r5, #0 + bl MOD55_021D88D0 +_021D8D12: + pop {r3, r4, r5, pc} + thumb_func_end MOD55_021D8CBC + + thumb_func_start MOD55_021D8D14 +MOD55_021D8D14: ; 0x021D8D14 + push {r3, r4, r5, lr} + add r4, r1, #0 + mov r1, #0xf3 + add r5, r0, #0 + lsl r1, r1, #2 + ldrb r1, [r5, r1] + cmp r1, #0 + beq _021D8D52 + ldr r1, _021D8E5C ; =0x021C48B8 + ldr r1, [r1, #0x48] + cmp r1, #0 + beq _021D8D52 + bl MOD55_021DA214 + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xad + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xf3 + mov r1, #0 + lsl r0, r0, #2 + strb r1, [r5, r0] + b _021D8E36 +_021D8D52: + ldr r2, _021D8E5C ; =0x021C48B8 + mov r0, #1 + ldr r3, [r2, #0x48] + add r1, r3, #0 + tst r1, r0 + beq _021D8D88 + ldr r0, _021D8E60 ; =0x000005DC + bl FUN_020054C8 + ldr r1, _021D8E64 ; =0x000003CB + ldrb r0, [r5, r1] + cmp r0, #0 + beq _021D8D74 + mov r0, #6 + sub r1, #0x1b + str r0, [r5, r1] + b _021D8E36 +_021D8D74: + sub r0, r1, #3 + ldrb r0, [r5, r0] + add r0, r5, r0 + ldrb r0, [r0, #0x18] + cmp r0, #0 + beq _021D8E36 + mov r0, #4 + sub r1, #0x1b + str r0, [r5, r1] + b _021D8E36 +_021D8D88: + mov r1, #2 + tst r1, r3 + beq _021D8D9E + ldr r0, _021D8E60 ; =0x000005DC + bl FUN_020054C8 + mov r0, #0x3b + mov r1, #6 + lsl r0, r0, #4 + str r1, [r5, r0] + b _021D8E36 +_021D8D9E: + ldr r1, [r2, #0x4c] + mov r2, #0x40 + tst r2, r1 + beq _021D8DC4 + ldr r0, _021D8E68 ; =0x000003C9 + ldrb r1, [r5, r0] + cmp r1, #0 + beq _021D8E36 + sub r1, r1, #1 + strb r1, [r5, r0] + ldr r0, _021D8E60 ; =0x000005DC + bl FUN_020054C8 + mov r1, #0 + add r0, r5, #0 + mvn r1, r1 + bl MOD55_021D8CBC + b _021D8E36 +_021D8DC4: + mov r2, #0x80 + tst r2, r1 + beq _021D8DE6 + ldr r0, _021D8E68 ; =0x000003C9 + ldrb r1, [r5, r0] + cmp r1, #4 + bhs _021D8E36 + add r1, r1, #1 + strb r1, [r5, r0] + ldr r0, _021D8E60 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + mov r1, #1 + bl MOD55_021D8CBC + b _021D8E36 +_021D8DE6: + mov r2, #0x20 + tst r2, r1 + beq _021D8E10 + ldr r2, _021D8E64 ; =0x000003CB + ldrb r1, [r5, r2] + cmp r1, #0 + bne _021D8E36 + sub r1, r2, #1 + ldrb r1, [r5, r1] + sub r1, r0, r1 + sub r0, r2, #1 + strb r1, [r5, r0] + ldr r0, _021D8E60 ; =0x000005DC + bl FUN_020054C8 + mov r1, #3 + add r0, r5, #0 + mvn r1, r1 + bl MOD55_021D8CBC + b _021D8E36 +_021D8E10: + mov r2, #0x10 + tst r1, r2 + beq _021D8E36 + ldr r2, _021D8E64 ; =0x000003CB + ldrb r1, [r5, r2] + cmp r1, #0 + bne _021D8E36 + sub r1, r2, #1 + ldrb r1, [r5, r1] + sub r1, r0, r1 + sub r0, r2, #1 + strb r1, [r5, r0] + ldr r0, _021D8E60 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + mov r1, #4 + bl MOD55_021D8CBC +_021D8E36: + mov r0, #0x3b + lsl r0, r0, #4 + ldr r0, [r5, r0] + cmp r0, #3 + beq _021D8E58 + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0xad + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 +_021D8E58: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8E5C: .word 0x021C48B8 +_021D8E60: .word 0x000005DC +_021D8E64: .word 0x000003CB +_021D8E68: .word 0x000003C9 + thumb_func_end MOD55_021D8D14 + + thumb_func_start MOD55_021D8E6C +MOD55_021D8E6C: ; 0x021D8E6C + push {r4, r5, r6, r7, lr} + sub sp, #0x3c + add r5, r0, #0 + ldr r0, [r5, #8] + str r1, [sp, #0x14] + bl FUN_020286EC + mov r1, #0xf2 + lsl r1, r1, #2 + ldrb r1, [r5, r1] + mov r2, #8 + str r0, [sp, #0x18] + add r1, r5, r1 + ldrb r1, [r1, #0x18] + sub r1, r1, #1 + bl FUN_0202822C + cmp r0, #2 + add r2, sp, #0x1c + bne _021D8ECC + ldr r3, _021D8FCC ; =0x021DA418 + mov r7, #4 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r0, r7, #0 + mov r1, #0x34 + bl FUN_02012838 + ldr r4, _021D8FD0 ; =0x021DA3D8 + str r0, [r5, #0x14] + mov r6, #0 +_021D8EB6: + ldr r0, [r5, #0x14] + ldr r1, [r5, #0x10] + ldr r2, [r4] + ldr r3, [r4, #4] + bl FUN_02012880 + add r6, r6, #1 + add r4, #8 + cmp r6, #4 + blt _021D8EB6 + b _021D8F02 +_021D8ECC: + ldr r3, _021D8FD4 ; =0x021DA3F8 + mov r7, #4 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r0, r7, #0 + mov r1, #0x34 + bl FUN_02012838 + ldr r4, _021D8FD8 ; =0x021DA438 + str r0, [r5, #0x14] + mov r6, #0 +_021D8EEE: + ldr r0, [r5, #0x14] + ldr r1, [r5, #0x10] + ldr r2, [r4] + ldr r3, [r4, #4] + bl FUN_02012880 + add r6, r6, #1 + add r4, #8 + cmp r6, #4 + blt _021D8EEE +_021D8F02: + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D8F1A + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_021D8F1A: + mov r1, #9 + str r1, [sp] + mov r1, #0xf + lsl r0, r7, #1 + str r1, [sp, #4] + lsl r1, r0, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #8] + mov r1, #0xd + str r1, [sp, #0xc] + mov r1, #0x3b + sub r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r1, #0xe2 + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r5, #4] + add r1, r5, r1 + mov r2, #2 + mov r3, #0x10 + bl FUN_02019064 + mov r0, #0xe2 + lsl r0, r0, #2 + ldr r2, _021D8FDC ; =0x000001D9 + add r0, r5, r0 + mov r1, #1 + mov r3, #0xb + bl FUN_0200CCA4 + ldr r0, [r5, #0x14] + mov r1, #0 + str r0, [sp, #0x1c] + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [sp, #0x28] + add r0, sp, #0x1c + add r2, r1, #0 + mov r3, #0x34 + bl FUN_020010A8 + mov r1, #0xea + lsl r1, r1, #2 + str r0, [r5, r1] + sub r1, #0x20 + add r0, r5, r1 + bl FUN_02019220 + mov r0, #0x34 + bl FUN_02023928 + mov r1, #0xf2 + lsl r1, r1, #2 + ldrb r1, [r5, r1] + add r4, r0, #0 + ldr r0, [sp, #0x18] + add r1, r5, r1 + ldrb r1, [r1, #0x18] + sub r1, r1, #1 + bl FUN_020283A4 + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0202395C + ldr r0, [r5, #0xc] + mov r1, #0 + add r2, r4, #0 + bl FUN_0200ABC0 + add r0, r5, #0 + mov r1, #0xc + bl MOD55_021DA0A4 + add r0, r4, #0 + bl FUN_02016A18 + ldr r0, _021D8FE0 ; =0x00000418 + mov r1, #0 + strh r1, [r5, r0] + mov r1, #5 + sub r0, #0x68 + str r1, [r5, r0] + ldr r0, [sp, #0x14] + add sp, #0x3c + pop {r4, r5, r6, r7, pc} + nop +_021D8FCC: .word 0x021DA418 +_021D8FD0: .word 0x021DA3D8 +_021D8FD4: .word 0x021DA3F8 +_021D8FD8: .word 0x021DA438 +_021D8FDC: .word 0x000001D9 +_021D8FE0: .word 0x00000418 + thumb_func_end MOD55_021D8E6C + + thumb_func_start MOD55_021D8FE4 +MOD55_021D8FE4: ; 0x021D8FE4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + add r0, #0xe4 + ldr r0, [r0] + add r6, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _021D9002 + add sp, #0xc + add r0, r6, #0 + pop {r4, r5, r6, r7, pc} +_021D9002: + mov r0, #0xea + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001204 + ldr r1, _021D90D0 ; =0x00000418 + add r4, r0, #0 + add r0, r1, #0 + sub r0, #0x70 + ldrh r7, [r5, r1] + ldr r0, [r5, r0] + add r1, r5, r1 + bl FUN_0200143C + ldr r0, _021D90D0 ; =0x00000418 + ldrh r0, [r5, r0] + cmp r7, r0 + beq _021D902C + ldr r0, _021D90D4 ; =0x000005DC + bl FUN_020054C8 +_021D902C: + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _021D9040 + add r0, r0, #1 + cmp r4, r0 + bne _021D9068 + add sp, #0xc + add r0, r6, #0 + pop {r4, r5, r6, r7, pc} +_021D9040: + ldr r0, _021D90D4 ; =0x000005DC + bl FUN_020054C8 + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xad + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x3b + mov r1, #3 + lsl r0, r0, #4 + str r1, [r5, r0] + b _021D9098 +_021D9068: + ldr r0, _021D90D4 ; =0x000005DC + bl FUN_020054C8 + cmp r4, #0x14 + bne _021D9092 + ldr r0, [r5, #4] + mov r1, #3 + bl FUN_02018744 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x34 + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 +_021D9092: + mov r0, #0x3b + lsl r0, r0, #4 + str r4, [r5, r0] +_021D9098: + add r0, r5, #0 + bl MOD55_021DA214 + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 + mov r0, #0xea + lsl r0, r0, #2 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, [r5, #0x14] + bl FUN_02012870 + add r0, r6, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + nop +_021D90D0: .word 0x00000418 +_021D90D4: .word 0x000005DC + thumb_func_end MOD55_021D8FE4 + + thumb_func_start MOD55_021D90D8 +MOD55_021D90D8: ; 0x021D90D8 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0xf2 + lsl r0, r0, #2 + ldrb r0, [r5, r0] + add r7, r1, #0 + add r0, r5, r0 + ldrb r0, [r0, #0x18] + cmp r0, #0 + beq _021D9170 + ldr r0, [r5, #8] + bl FUN_020286EC + mov r1, #0xf2 + lsl r1, r1, #2 + ldrb r1, [r5, r1] + str r0, [sp, #8] + add r1, r5, r1 + ldrb r1, [r1, #0x18] + sub r1, r1, #1 + bl FUN_0202838C + bl FUN_02096E24 + str r1, [sp, #4] + add r4, r0, #0 + ldr r0, [sp, #4] + mov r1, #0 + eor r1, r0 + mov r2, #0 + add r0, r4, #0 + eor r0, r2 + orr r0, r1 + beq _021D9170 + mov r0, #0x34 + bl FUN_02023928 + mov r1, #0xf2 + lsl r1, r1, #2 + ldrb r1, [r5, r1] + add r6, r0, #0 + ldr r0, [sp, #8] + add r1, r5, r1 + ldrb r1, [r1, #0x18] + sub r1, r1, #1 + bl FUN_020283A4 + add r1, r0, #0 + add r0, r6, #0 + bl FUN_0202395C + ldr r0, _021D9180 ; =0x000005DC + bl FUN_020054C8 + ldr r2, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + bl MOD55_021D93F8 + ldr r0, [r5, #0xc] + mov r1, #0 + add r2, r6, #0 + bl FUN_0200ABC0 + add r0, r5, #0 + mov r1, #0x1f + bl MOD55_021DA15C + mov r0, #0xf3 + mov r1, #1 + lsl r0, r0, #2 + strb r1, [r5, r0] + add r0, r6, #0 + bl FUN_02016A18 +_021D9170: + mov r0, #0x3b + mov r1, #3 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r7, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + nop +_021D9180: .word 0x000005DC + thumb_func_end MOD55_021D90D8 + + thumb_func_start MOD55_021D9184 +MOD55_021D9184: ; 0x021D9184 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #8] + add r7, r1, #0 + bl FUN_020286EC + bl FUN_02028228 + bl FUN_02096D68 + add r6, r0, #0 + add r4, r1, #0 + ldr r0, [r5, #4] + mov r1, #3 + bl FUN_02018744 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x59 + mov r1, #7 + mov r3, #1 + bl FUN_020068C8 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D91D6 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_021D91D6: + mov r0, #0 + str r0, [sp] + mov r0, #0x14 + str r0, [sp, #4] + mov r2, #3 + mov r1, #0xe6 + lsl r1, r1, #2 + str r2, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _021D93D0 ; =0x00000139 + add r1, r5, r1 + str r0, [sp, #0x10] + ldr r0, [r5, #4] + mov r3, #1 + bl FUN_02019064 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + ldr r0, [r5, #8] + bl FUN_020238F4 + add r2, r0, #0 + ldr r0, [r5, #0xc] + mov r1, #0 + bl FUN_0200ABC0 + add r2, r5, #0 + add r2, #0xb8 + ldr r0, [r5, #0x10] + ldr r2, [r2] + mov r1, #0x16 + bl FUN_0200A8E0 + add r1, r5, #0 + add r2, r5, #0 + add r1, #0xc0 + add r2, #0xb8 + ldr r0, [r5, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0200B7B8 + mov r0, #4 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D93D4 ; =0x000F0E00 + add r2, r5, #0 + str r0, [sp, #8] + mov r3, #0 + mov r0, #0xe6 + lsl r0, r0, #2 + str r3, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BDE0 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D9278 + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_021D9278: + mov r1, #0xd + str r1, [sp] + mov r0, #0x15 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r0, #0x64 + mov r1, #0xce + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r5, #4] + add r1, r5, r1 + mov r2, #3 + mov r3, #6 + bl FUN_02019064 + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + mov r1, #0 + mov r0, #0 + eor r1, r4 + eor r0, r6 + orr r0, r1 + ldr r0, [r5, #0x10] + bne _021D92C2 + add r2, r5, #0 + add r2, #0xbc + ldr r2, [r2] + mov r1, #0x18 + bl FUN_0200A8E0 + b _021D92CE +_021D92C2: + add r2, r5, #0 + add r2, #0xbc + ldr r2, [r2] + mov r1, #0x17 + bl FUN_0200A8E0 +_021D92CE: + add r1, r5, #0 + add r1, #0xbc + mov r0, #0 + ldr r1, [r1] + add r2, r0, #0 + bl FUN_02002F08 + mov r1, #0xa8 + sub r0, r1, r0 + mov r1, #0 + lsr r3, r0, #1 + add r2, r5, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D93D8 ; =0x00010200 + add r2, #0xbc + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r0, #0xce + lsl r0, r0, #2 + ldr r2, [r2] + add r0, r5, r0 + bl FUN_0201BDE0 + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + mov r1, #0 + mov r0, #0 + eor r1, r4 + eor r0, r6 + orr r0, r1 + beq _021D93C2 + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD55_021D93F8 + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D9338 + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_021D9338: + mov r0, #8 + str r0, [sp] + mov r0, #0xe + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x32 + mov r1, #0xe2 + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r5, #4] + add r1, r5, r1 + mov r2, #3 + mov r3, #9 + bl FUN_02019064 + add r2, r5, #0 + add r2, #0xb8 + ldr r0, [r5, #0x10] + ldr r2, [r2] + mov r1, #0x1b + bl FUN_0200A8E0 + add r1, r5, #0 + add r2, r5, #0 + add r1, #0xbc + add r2, #0xb8 + ldr r0, [r5, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0200B7B8 + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + add r1, r5, #0 + add r1, #0xbc + mov r0, #0 + ldr r1, [r1] + add r2, r0, #0 + mov r3, #0x70 + bl FUN_02002F40 + mov r1, #0 + add r3, r0, #0 + add r2, r5, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D93D8 ; =0x00010200 + add r2, #0xbc + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r0, #0xe2 + lsl r0, r0, #2 + ldr r2, [r2] + add r0, r5, r0 + bl FUN_0201BDE0 + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 +_021D93C2: + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r7, #0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D93D0: .word 0x00000139 +_021D93D4: .word 0x000F0E00 +_021D93D8: .word 0x00010200 + thumb_func_end MOD55_021D9184 + + thumb_func_start MOD55_021D93DC +MOD55_021D93DC: ; 0x021D93DC + ldr r2, _021D93F4 ; =0x021C48B8 + ldr r3, [r2, #0x48] + mov r2, #3 + tst r2, r3 + beq _021D93EE + mov r2, #0x3b + mov r3, #6 + lsl r2, r2, #4 + str r3, [r0, r2] +_021D93EE: + add r0, r1, #0 + bx lr + nop +_021D93F4: .word 0x021C48B8 + thumb_func_end MOD55_021D93DC + + thumb_func_start MOD55_021D93F8 +MOD55_021D93F8: ; 0x021D93F8 + push {r4, r5, r6, lr} + sub sp, #8 + add r6, r2, #0 + add r4, r1, #0 + add r5, r0, #0 + ldr r2, _021D946C ; =0x05F5E100 + add r0, r4, #0 + add r1, r6, #0 + mov r3, #0 + bl _ll_udiv + add r2, r0, #0 + mov r0, #2 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r0, [r5, #0xc] + mov r3, #4 + bl FUN_0200AD38 + ldr r2, _021D9470 ; =0x00002710 + add r0, r4, #0 + add r1, r6, #0 + mov r3, #0 + bl _ll_udiv + ldr r2, _021D9470 ; =0x00002710 + mov r3, #0 + bl _ull_mod + mov r1, #2 + add r2, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r5, #0xc] + mov r3, #4 + bl FUN_0200AD38 + ldr r2, _021D9470 ; =0x00002710 + add r0, r4, #0 + add r1, r6, #0 + mov r3, #0 + bl _ull_mod + add r2, r0, #0 + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r5, #0xc] + mov r1, #3 + mov r3, #4 + bl FUN_0200AD38 + add sp, #8 + pop {r4, r5, r6, pc} + nop +_021D946C: .word 0x05F5E100 +_021D9470: .word 0x00002710 + thumb_func_end MOD55_021D93F8 + + thumb_func_start MOD55_021D9474 +MOD55_021D9474: ; 0x021D9474 + push {r4, r5, lr} + sub sp, #0x64 + add r4, r0, #0 + mov r0, #1 + mov r1, #0 + add r2, r0, #0 + bl GX_SetGraphicsMode + ldr r5, _021D9564 ; =0x021DA2D8 + add r3, sp, #0x54 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D9568 ; =0x021DA2F8 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #1 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x34 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _021D956C ; =0x021DA330 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x34 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _021D9570 ; =0x021DA314 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #3 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x34 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #3 + bl FUN_02018744 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x34 + bl FUN_02017F18 + mov r0, #1 + mov r1, #3 + bl FUN_020178BC + mov r0, #2 + add r1, r0, #0 + bl FUN_020178BC + mov r0, #0 + mov r1, #1 + bl FUN_020178BC + mov r0, #3 + mov r1, #0 + bl FUN_020178BC + add sp, #0x64 + pop {r4, r5, pc} + .align 2, 0 +_021D9564: .word 0x021DA2D8 +_021D9568: .word 0x021DA2F8 +_021D956C: .word 0x021DA330 +_021D9570: .word 0x021DA314 + thumb_func_end MOD55_021D9474 + + thumb_func_start MOD55_021D9574 +MOD55_021D9574: ; 0x021D9574 + push {r3, lr} + bl FUN_020BB7F4 + bl G3X_InitMtxStack + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r0, _021D95D8 ; =0x04000008 + mov r1, #3 + ldrh r2, [r0] + bic r2, r1 + mov r1, #1 + orr r1, r2 + strh r1, [r0] + add r0, #0x58 + ldrh r1, [r0] + ldr r2, _021D95DC ; =0xFFFFCFFD + and r1, r2 + strh r1, [r0] + ldrh r3, [r0] + add r1, r2, #2 + and r3, r1 + mov r1, #0x10 + orr r1, r3 + strh r1, [r0] + ldrh r3, [r0] + ldr r1, _021D95E0 ; =0x0000CFFB + and r1, r3 + strh r1, [r0] + add r1, r2, #2 + ldrh r3, [r0] + lsr r2, r2, #0x11 + and r3, r1 + mov r1, #8 + orr r1, r3 + strh r1, [r0] + mov r0, #0 + add r1, r0, #0 + mov r3, #0x3f + str r0, [sp] + bl G3X_SetClearColor + ldr r1, _021D95E4 ; =0x04000540 + mov r0, #2 + str r0, [r1] + ldr r0, _021D95E8 ; =0xBFFF0000 + str r0, [r1, #0x40] + pop {r3, pc} + .align 2, 0 +_021D95D8: .word 0x04000008 +_021D95DC: .word 0xFFFFCFFD +_021D95E0: .word 0x0000CFFB +_021D95E4: .word 0x04000540 +_021D95E8: .word 0xBFFF0000 + thumb_func_end MOD55_021D9574 + + thumb_func_start MOD55_021D95EC +MOD55_021D95EC: ; 0x021D95EC + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r4, r0, #0 + ldr r0, [r4, #8] + str r1, [sp, #0x14] + bl FUN_020286EC + str r0, [sp, #0x1c] + mov r0, #0xf2 + lsl r0, r0, #2 + ldrb r0, [r4, r0] + add r0, r4, r0 + ldrb r0, [r0, #0x18] + sub r0, r0, #1 + str r0, [sp, #0x18] + bl FUN_0200E308 + cmp r0, #0 + bne _021D9618 + ldr r0, [sp, #0x14] + add sp, #0x34 + pop {r4, r5, r6, r7, pc} +_021D9618: + add r0, r4, #0 + bl MOD55_021D7720 + add r0, r4, #0 + bl MOD55_021D8140 + ldr r0, [r4, #4] + bl MOD55_021D7AA4 + mov r0, #0x34 + bl FUN_02016B94 + str r0, [r4, #4] + bl MOD55_021D9474 + bl MOD55_021D9574 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x59 + mov r1, #2 + mov r3, #1 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x59 + mov r1, #8 + mov r3, #1 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x59 + mov r1, #6 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D969A + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_021D969A: + mov r0, #0 + str r0, [sp] + mov r0, #0x14 + str r0, [sp, #4] + mov r2, #3 + mov r1, #0xe6 + lsl r1, r1, #2 + str r2, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _021D9A50 ; =0x0000019D + add r1, r4, r1 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + mov r3, #1 + bl FUN_02019064 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x34 + bl FUN_02023928 + str r0, [sp, #0x20] + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + bl FUN_020283A4 + add r1, r0, #0 + ldr r0, [sp, #0x20] + bl FUN_0202395C + ldr r0, [r4, #0xc] + ldr r2, [sp, #0x20] + mov r1, #0 + bl FUN_0200ABC0 + add r2, r4, #0 + add r2, #0xb8 + ldr r0, [r4, #0x10] + ldr r2, [r2] + mov r1, #0xd + bl FUN_0200A8E0 + add r1, r4, #0 + add r2, r4, #0 + add r1, #0xc0 + add r2, #0xb8 + ldr r0, [r4, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0200B7B8 + mov r0, #4 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9A54 ; =0x000F0E00 + add r2, r4, #0 + str r0, [sp, #8] + mov r3, #0 + mov r0, #0xe6 + lsl r0, r0, #2 + str r3, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + add r0, r4, r0 + mov r1, #1 + bl FUN_0201BDE0 + mov r0, #0xe6 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019220 + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D974E + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_021D974E: + mov r0, #0x12 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r3, #2 + mov r1, #0xe2 + lsl r1, r1, #2 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _021D9A58 ; =0x00000141 + add r1, r4, r1 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + mov r2, #3 + bl FUN_02019064 + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_02019620 + ldr r0, [r4, #0xc] + ldr r2, [sp, #0x20] + mov r1, #0 + bl FUN_0200ABC0 + add r2, r4, #0 + add r2, #0xb8 + ldr r0, [r4, #0x10] + ldr r2, [r2] + mov r1, #6 + bl FUN_0200A8E0 + add r1, r4, #0 + add r2, r4, #0 + add r1, #0xc0 + add r2, #0xb8 + ldr r0, [r4, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0200B7B8 + ldr r0, _021D9A54 ; =0x000F0E00 + add r1, r4, #0 + str r0, [sp] + mov r0, #0xe2 + add r1, #0xc0 + lsl r0, r0, #2 + ldr r1, [r1] + add r0, r4, r0 + mov r2, #0xff + mov r3, #0x40 + bl MOD55_021D80F0 + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019220 + mov r0, #0x34 + bl FUN_02006D98 + add r1, r4, #0 + add r1, #0xdc + str r0, [r1] + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + mov r2, #7 + bl FUN_0202822C + add r6, r0, #0 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + mov r2, #8 + bl FUN_0202822C + add r1, r6, #0 + mov r2, #1 + add r5, r0, #0 + bl FUN_020536D0 + add r1, r0, #0 + lsl r1, r1, #0x10 + lsl r3, r5, #0x18 + add r0, sp, #0x24 + lsr r1, r1, #0x10 + mov r2, #2 + lsr r3, r3, #0x18 + bl FUN_02068FE0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0xdc + ldr r0, [r0] + add r1, sp, #0x24 + mov r2, #0x36 + mov r3, #0x54 + bl FUN_020073A0 + add r1, r4, #0 + add r1, #0xe0 + str r0, [r1] + cmp r5, #1 + bne _021D9864 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_0201886C + ldr r2, _021D9A5C ; =0x00000FFF + mov r7, #0x10 + mov ip, r0 + lsl r6, r7, #5 + add r3, r2, #1 +_021D983C: + lsl r5, r6, #1 + mov r1, ip + mov r0, #0 + add r1, r1, r5 +_021D9844: + ldrh r5, [r1] + add r0, r0, #1 + and r5, r2 + add r5, r5, r3 + strh r5, [r1] + add r1, r1, #2 + cmp r0, #0xc + blt _021D9844 + add r7, r7, #1 + add r6, #0x20 + cmp r7, #0x15 + blt _021D983C + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_02017CD0 +_021D9864: + mov r0, #0xd2 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021D987C + mov r0, #0xd2 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_021D987C: + mov r0, #4 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + mov r0, #0x13 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #2 + mov r1, #0xd2 + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #3 + mov r3, #0xf + bl FUN_02019064 + mov r0, #0xd2 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_02019620 + add r2, r4, #0 + add r2, #0xc4 + ldr r0, [r4, #0x10] + ldr r2, [r2] + mov r1, #0xe + bl FUN_0200A8E0 + mov r0, #2 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9A60 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r2, r4, #0 + mov r0, #0xd2 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0xc4 + ldr r2, [r2] + add r0, r4, r0 + add r3, r1, #0 + bl FUN_0201BDE0 + mov r0, #0x34 + bl FUN_02023928 + add r5, r0, #0 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + bl FUN_020283E8 + add r1, r0, #0 + add r0, r5, #0 + bl FUN_0202395C + ldr r0, [r4, #0xc] + mov r1, #0 + add r2, r5, #0 + bl FUN_0200ABC0 + add r0, r5, #0 + bl FUN_02016A18 + add r2, r4, #0 + add r2, #0xb8 + ldr r0, [r4, #0x10] + ldr r2, [r2] + mov r1, #0x2a + bl FUN_0200A8E0 + add r1, r4, #0 + add r2, r4, #0 + add r1, #0xc4 + add r2, #0xb8 + ldr r0, [r4, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0200B7B8 + add r1, r4, #0 + add r1, #0xc4 + mov r0, #0 + ldr r1, [r1] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0x78 + sub r3, r1, r0 + mov r0, #2 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9A60 ; =0x00010200 + add r2, r4, #0 + str r0, [sp, #8] + mov r1, #0 + mov r0, #0xd2 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0xc4 + ldr r2, [r2] + add r0, r4, r0 + bl FUN_0201BDE0 + add r2, r4, #0 + add r2, #0xc8 + ldr r0, [r4, #0x10] + ldr r2, [r2] + mov r1, #0xf + bl FUN_0200A8E0 + mov r0, #0x18 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9A60 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r2, r4, #0 + mov r0, #0xd2 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0xc8 + ldr r2, [r2] + add r0, r4, r0 + add r3, r1, #0 + bl FUN_0201BDE0 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + mov r2, #1 + bl FUN_0202822C + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [r4, #0xc] + mov r1, #0 + mov r3, #4 + bl FUN_0200AD38 + add r2, r4, #0 + add r2, #0xb8 + ldr r0, [r4, #0x10] + ldr r2, [r2] + mov r1, #0x10 + bl FUN_0200A8E0 + add r1, r4, #0 + add r2, r4, #0 + add r1, #0xc0 + add r2, #0xb8 + ldr r0, [r4, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0200B7B8 + add r1, r4, #0 + add r1, #0xc0 + mov r0, #0 + ldr r1, [r1] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0x78 + sub r3, r1, r0 + mov r0, #0x27 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9A60 ; =0x00010200 + add r2, r4, #0 + str r0, [sp, #8] + mov r1, #0 + mov r0, #0xd2 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + add r0, r4, r0 + bl FUN_0201BDE0 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + mov r2, #2 + bl FUN_0202822C + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [r4, #0xc] + mov r1, #0 + mov r3, #4 + bl FUN_0200AD38 + add r2, r4, #0 + add r2, #0xb8 + ldr r0, [r4, #0x10] + ldr r2, [r2] + mov r1, #0x11 + bl FUN_0200A8E0 + add r1, r4, #0 + add r2, r4, #0 + add r1, #0xc0 + add r2, #0xb8 + ldr r0, [r4, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0200B7B8 + add r1, r4, #0 + add r1, #0xc0 + mov r0, #0 + ldr r1, [r1] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0x78 + sub r3, r1, r0 + mov r0, #0x35 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9A60 ; =0x00010200 + b _021D9A64 + nop +_021D9A50: .word 0x0000019D +_021D9A54: .word 0x000F0E00 +_021D9A58: .word 0x00000141 +_021D9A5C: .word 0x00000FFF +_021D9A60: .word 0x00010200 +_021D9A64: + add r2, r4, #0 + str r0, [sp, #8] + mov r1, #0 + mov r0, #0xd2 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + add r0, r4, r0 + bl FUN_0201BDE0 + add r2, r4, #0 + add r2, #0xc0 + ldr r0, [r4, #0x10] + ldr r2, [r2] + mov r1, #0x12 + bl FUN_0200A8E0 + mov r0, #0x4a + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9C4C ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r2, r4, #0 + mov r0, #0xd2 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + add r0, r4, r0 + add r3, r1, #0 + bl FUN_0201BDE0 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + mov r2, #3 + bl FUN_0202822C + add r5, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [r4, #0xc] + mov r1, #0 + add r2, r5, #0 + mov r3, #4 + bl FUN_0200AD38 + cmp r5, #1 + ldr r0, [r4, #0x10] + bne _021D9ADC + add r2, r4, #0 + add r2, #0xb8 + ldr r2, [r2] + mov r1, #0x13 + bl FUN_0200A8E0 + b _021D9AE8 +_021D9ADC: + add r2, r4, #0 + add r2, #0xb8 + ldr r2, [r2] + mov r1, #0x2b + bl FUN_0200A8E0 +_021D9AE8: + add r1, r4, #0 + add r2, r4, #0 + add r1, #0xc0 + add r2, #0xb8 + ldr r0, [r4, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0200B7B8 + add r1, r4, #0 + add r1, #0xc0 + mov r0, #0 + ldr r1, [r1] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0x78 + sub r3, r1, r0 + mov r0, #0x5c + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9C4C ; =0x00010200 + add r2, r4, #0 + str r0, [sp, #8] + mov r1, #0 + mov r0, #0xd2 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + add r0, r4, r0 + bl FUN_0201BDE0 + add r2, r4, #0 + add r2, #0xc0 + ldr r0, [r4, #0x10] + ldr r2, [r2] + mov r1, #0x14 + bl FUN_0200A8E0 + mov r0, #0x71 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9C4C ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r2, r4, #0 + mov r0, #0xd2 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + add r0, r4, r0 + add r3, r1, #0 + bl FUN_0201BDE0 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + mov r2, #6 + bl FUN_0202822C + add r2, r0, #0 + beq _021D9C18 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r1, #2 + ldr r0, [r4, #0xc] + add r3, r1, #0 + bl FUN_0200AD38 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + mov r2, #4 + bl FUN_0202822C + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [r4, #0xc] + mov r1, #0 + mov r3, #4 + bl FUN_0200AD38 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + mov r2, #5 + bl FUN_0202822C + add r2, r0, #0 + ldr r0, [r4, #0xc] + mov r1, #1 + bl FUN_0200B764 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + mov r2, #6 + bl FUN_0202822C + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r1, #2 + ldr r0, [r4, #0xc] + add r3, r1, #0 + bl FUN_0200AD38 + add r2, r4, #0 + add r2, #0xb8 + ldr r0, [r4, #0x10] + ldr r2, [r2] + mov r1, #0x15 + bl FUN_0200A8E0 + add r1, r4, #0 + add r2, r4, #0 + add r1, #0xc0 + add r2, #0xb8 + ldr r0, [r4, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0200B7B8 + add r1, r4, #0 + add r1, #0xc0 + mov r0, #0 + ldr r1, [r1] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0x78 + sub r3, r1, r0 + mov r1, #0x81 + add r2, r4, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + lsl r0, r1, #9 + str r0, [sp, #8] + mov r1, #0 + mov r0, #0xd2 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + add r0, r4, r0 + bl FUN_0201BDE0 +_021D9C18: + mov r0, #0xd2 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019220 + ldr r0, [sp, #0x20] + bl FUN_02016A18 + mov r0, #0x3b + mov r1, #0x15 + lsl r0, r0, #4 + str r1, [r4, r0] + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x34 + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, [sp, #0x14] + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D9C4C: .word 0x00010200 + thumb_func_end MOD55_021D95EC + + thumb_func_start MOD55_021D9C50 +MOD55_021D9C50: ; 0x021D9C50 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r1, #0 + bl G3X_ResetMtxStack + bl G3X_ResetMtxStack_2 + bl FUN_020B02C8 + add r0, r5, #0 + add r0, #0xdc + ldr r0, [r0] + bl FUN_02006ED4 + ldr r0, _021D9CB8 ; =0x04000540 + mov r1, #0 + str r1, [r0] + bl FUN_0200E308 + cmp r0, #0 + bne _021D9C82 + add sp, #0xc + add r0, r4, #0 + pop {r4, r5, pc} +_021D9C82: + ldr r0, _021D9CBC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _021D9CB2 + ldr r0, _021D9CC0 ; =0x000005DC + bl FUN_020054C8 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x34 + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0x3b + mov r1, #0x16 + lsl r0, r0, #4 + str r1, [r5, r0] +_021D9CB2: + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_021D9CB8: .word 0x04000540 +_021D9CBC: .word 0x021C48B8 +_021D9CC0: .word 0x000005DC + thumb_func_end MOD55_021D9C50 + + thumb_func_start MOD55_021D9CC4 +MOD55_021D9CC4: ; 0x021D9CC4 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + add r4, r1, #0 + bl G3X_ResetMtxStack + bl G3X_ResetMtxStack_2 + bl FUN_020B02C8 + add r0, r5, #0 + add r0, #0xdc + ldr r0, [r0] + bl FUN_02006ED4 + ldr r0, _021D9D84 ; =0x04000540 + mov r1, #0 + str r1, [r0] + bl FUN_0200E308 + cmp r0, #0 + bne _021D9CF6 + add sp, #0x10 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_021D9CF6: + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + cmp r0, #0 + beq _021D9D16 + bl FUN_02007534 + add r0, r5, #0 + add r0, #0xdc + ldr r0, [r0] + bl FUN_020072E8 + add r0, r5, #0 + mov r1, #0 + add r0, #0xe0 + str r1, [r0] +_021D9D16: + ldr r0, [r5, #4] + bl MOD55_021D7AA4 + mov r0, #0x34 + bl FUN_02016B94 + str r0, [r5, #4] + bl MOD55_021D781C + add r0, r5, #0 + bl MOD55_021D74E0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x59 + mov r1, #0xa + mov r3, #4 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x59 + mov r1, #0xb + mov r3, #4 + bl FUN_020068C8 + mov r0, #3 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x34 + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0x3b + mov r1, #2 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D9D84: .word 0x04000540 + thumb_func_end MOD55_021D9CC4 + + thumb_func_start MOD55_021D9D88 +MOD55_021D9D88: ; 0x021D9D88 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + ldr r0, [r6, #4] + str r1, [sp, #0x10] + mov r1, #3 + bl FUN_02018744 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + ldr r2, [r6, #4] + mov r0, #0x59 + mov r1, #8 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x34 + str r0, [sp, #0xc] + ldr r2, [r6, #4] + mov r0, #0x59 + mov r1, #4 + mov r3, #1 + bl FUN_020068C8 + mov r7, #0x29 + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #4 +_021D9DCE: + ldr r0, [r5, r7] + mov r1, #0 + bl FUN_020200A0 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xa + blt _021D9DCE + mov r0, #0xf2 + mov r1, #0 + lsl r0, r0, #2 + strb r1, [r6, r0] + add r0, r0, #3 + strb r1, [r6, r0] + add r0, r6, #0 + bl MOD55_021D7EE4 + add r0, r6, #0 + bl MOD55_021D8044 + mov r0, #0x3b + mov r1, #1 + lsl r0, r0, #4 + str r1, [r6, r0] + ldr r0, [sp, #0x10] + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD55_021D9D88 + + thumb_func_start MOD55_021D9E04 +MOD55_021D9E04: ; 0x021D9E04 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x34 + add r4, r1, #0 + str r0, [sp, #8] + mov r0, #0 + mov r1, #0x10 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0x3b + mov r1, #0x18 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD55_021D9E04 + + thumb_func_start MOD55_021D9E34 +MOD55_021D9E34: ; 0x021D9E34 + ldr r3, _021D9E3C ; =FUN_0201C78C + ldrh r0, [r0] + bx r3 + nop +_021D9E3C: .word FUN_0201C78C + thumb_func_end MOD55_021D9E34 + + thumb_func_start MOD55_021D9E40 +MOD55_021D9E40: ; 0x021D9E40 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4, #8] + add r6, r1, #0 + bl FUN_020286EC + add r5, r0, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _021D9EBE + mov r0, #0 + bl MOD55_021DA27C + add r0, r4, #0 + bl MOD55_021D778C + ldr r0, [r4, #8] + bl LoadPlayerDataAddress + mov r1, #7 + str r0, [sp] + mov r0, #0x34 + mov r2, #0 + add r3, r1, #0 + bl FUN_02077A84 + str r0, [r4] + ldr r0, _021D9EC4 ; =0x020FA5FC + ldr r1, [r4] + mov r2, #0x34 + bl FUN_02006234 + mov r1, #0x3d + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r1, #0 + mov r2, #0x19 + sub r0, #0x20 + str r2, [r4, r0] + sub r1, #8 + ldrb r1, [r4, r1] + add r0, r5, #0 + add r1, r4, r1 + ldrb r1, [r1, #0x18] + sub r1, r1, #1 + bl FUN_020283A4 + add r5, r0, #0 + bl MOD55_021D9E34 + cmp r0, #0 + ldr r0, [r4] + bne _021D9EB8 + ldr r0, [r0, #0x18] + add r1, r5, #0 + bl FUN_02021E28 + b _021D9EBE +_021D9EB8: + ldr r0, [r0, #0x18] + bl FUN_02021A4C +_021D9EBE: + add r0, r6, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D9EC4: .word 0x020FA5FC + thumb_func_end MOD55_021D9E40 + + thumb_func_start MOD55_021D9EC8 +MOD55_021D9EC8: ; 0x021D9EC8 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r4, r1, #0 + bl FUN_02006290 + cmp r0, #0 + beq _021D9F68 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02006260 + ldr r1, [r5] + ldr r0, [r1, #0x14] + cmp r0, #0 + bne _021D9F18 + add r0, r5, #0 + add r0, #0xd4 + ldr r0, [r0] + ldr r1, [r1, #0x18] + bl FUN_02021A74 + ldr r0, [r5, #8] + bl FUN_020286EC + mov r1, #0xf2 + lsl r1, r1, #2 + ldrb r1, [r5, r1] + add r2, r5, #0 + add r2, #0xd4 + add r1, r5, r1 + ldrb r1, [r1, #0x18] + ldr r2, [r2] + sub r1, r1, #1 + bl FUN_020283C0 +_021D9F18: + ldr r0, [r5] + bl FUN_02077AC4 + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + bl MOD55_021DA27C + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x34 + str r0, [sp, #8] + mov r0, #0 + mov r1, #0x11 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add r0, r5, #0 + bl MOD55_021D7504 + add r0, r5, #0 + add r1, r4, #0 + bl MOD55_021D8A7C + mov r0, #1 + bl MOD55_021DA27C + mov r0, #0x3b + mov r1, #0x1a + lsl r0, r0, #4 + str r1, [r5, r0] +_021D9F68: + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD55_021D9EC8 + + thumb_func_start MOD55_021D9F70 +MOD55_021D9F70: ; 0x021D9F70 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _021D9F86 + mov r0, #0x3b + mov r1, #3 + lsl r0, r0, #4 + str r1, [r5, r0] +_021D9F86: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD55_021D9F70 + + thumb_func_start MOD55_021D9F8C +MOD55_021D9F8C: ; 0x021D9F8C + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x34 + add r6, r1, #0 + bl FUN_02023928 + add r4, r0, #0 + ldr r0, [r5, #8] + bl FUN_020286EC + mov r1, #0xf2 + lsl r1, r1, #2 + ldrb r1, [r5, r1] + add r1, r5, r1 + ldrb r1, [r1, #0x18] + sub r1, r1, #1 + bl FUN_020283A4 + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0202395C + ldr r0, [r5, #0xc] + mov r1, #0 + add r2, r4, #0 + bl FUN_0200ABC0 + add r0, r5, #0 + mov r1, #0x1c + bl MOD55_021DA0A4 + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #0x3b + mov r1, #0x1c + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r6, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD55_021D9F8C + + thumb_func_start MOD55_021D9FDC +MOD55_021D9FDC: ; 0x021D9FDC + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xe4 + ldr r0, [r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021DA010 + mov r0, #0x34 + str r0, [sp] + ldr r0, [r5, #4] + ldr r1, _021DA014 ; =0x021DA2AC + ldr r2, _021DA018 ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + add r1, r5, #0 + add r1, #0xe8 + str r0, [r1] + mov r0, #0x3b + mov r1, #0x1d + lsl r0, r0, #4 + str r1, [r5, r0] +_021DA010: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DA014: .word 0x021DA2AC +_021DA018: .word 0x000001D9 + thumb_func_end MOD55_021D9FDC + + thumb_func_start MOD55_021DA01C +MOD55_021DA01C: ; 0x021DA01C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xe8 + add r4, r1, #0 + ldr r0, [r0] + mov r1, #0x34 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _021DA038 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_021DA038: + cmp r0, #0 + bne _021DA056 + ldr r0, [r5, #8] + bl FUN_020286EC + mov r1, #0xf2 + lsl r1, r1, #2 + ldrb r1, [r5, r1] + add r1, r5, r1 + ldrb r1, [r1, #0x18] + sub r1, r1, #1 + bl FUN_02028468 + mov r1, #2 + b _021DA070 +_021DA056: + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xad + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r1, #3 +_021DA070: + mov r0, #0x3b + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD55_021DA214 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD55_021DA01C + + thumb_func_start MOD55_021DA080 +MOD55_021DA080: ; 0x021DA080 + push {lr} + sub sp, #0xc + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x34 + str r0, [sp, #8] + mov r0, #0 + mov r1, #0x10 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #2 + add sp, #0xc + pop {pc} + .align 2, 0 + thumb_func_end MOD55_021DA080 + + thumb_func_start MOD55_021DA0A4 +MOD55_021DA0A4: ; 0x021DA0A4 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #8] + add r6, r1, #0 + bl LoadPlayerDataAddress + bl FUN_02024FF4 + add r4, r0, #0 + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _021DA0D0 + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_021DA0D0: + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r0, _021DA154 ; =0x0000012D + mov r1, #0xce + str r0, [sp, #0x10] + lsl r1, r1, #2 + mov r2, #2 + ldr r0, [r5, #4] + add r1, r5, r1 + add r3, r2, #0 + bl FUN_02019064 + add r2, r5, #0 + add r2, #0xb8 + ldr r0, [r5, #0x10] + ldr r2, [r2] + add r1, r6, #0 + bl FUN_0200A8E0 + add r1, r5, #0 + add r2, r5, #0 + add r1, #0xbc + add r2, #0xb8 + ldr r0, [r5, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0200B7B8 + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0xce + lsl r0, r0, #2 + ldr r2, _021DA158 ; =0x000001E2 + add r0, r5, r0 + mov r1, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + add r2, r5, #0 + mov r0, #0xce + lsl r0, r0, #2 + str r3, [sp, #8] + add r2, #0xbc + ldr r2, [r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + add r5, #0xe4 + str r0, [r5] + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + nop +_021DA154: .word 0x0000012D +_021DA158: .word 0x000001E2 + thumb_func_end MOD55_021DA0A4 + + thumb_func_start MOD55_021DA15C +MOD55_021DA15C: ; 0x021DA15C + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + add r4, r1, #0 + bl FUN_02019048 + cmp r0, #0 + beq _021DA17C + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_021DA17C: + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r0, _021DA20C ; =0x0000012D + mov r1, #0xce + str r0, [sp, #0x10] + lsl r1, r1, #2 + mov r2, #2 + ldr r0, [r5, #4] + add r1, r5, r1 + add r3, r2, #0 + bl FUN_02019064 + add r2, r5, #0 + add r2, #0xb8 + ldr r0, [r5, #0x10] + ldr r2, [r2] + add r1, r4, #0 + bl FUN_0200A8E0 + add r1, r5, #0 + add r2, r5, #0 + add r1, #0xbc + add r2, #0xb8 + ldr r0, [r5, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0200B7B8 + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0xce + lsl r0, r0, #2 + ldr r2, _021DA210 ; =0x000001E2 + add r0, r5, r0 + mov r1, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + add r2, r5, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r0, #0xce + lsl r0, r0, #2 + str r3, [sp, #8] + add r2, #0xbc + ldr r2, [r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + add r1, r5, #0 + add r1, #0xe4 + str r0, [r1] + mov r0, #0xce + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 +_021DA20C: .word 0x0000012D +_021DA210: .word 0x000001E2 + thumb_func_end MOD55_021DA15C + + thumb_func_start MOD55_021DA214 +MOD55_021DA214: ; 0x021DA214 + mov r1, #0xce + lsl r1, r1, #2 + add r0, r0, r1 + ldr r3, _021DA220 ; =FUN_0200D0E0 + mov r1, #0 + bx r3 + .align 2, 0 +_021DA220: .word FUN_0200D0E0 + thumb_func_end MOD55_021DA214 + + thumb_func_start MOD55_021DA224 +MOD55_021DA224: ; 0x021DA224 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + add r4, r2, #0 + add r6, r3, #0 + cmp r5, #0 + beq _021DA276 + bl FUN_020286EC + bl FUN_02028228 + add r1, r4, #0 + add r2, r6, #0 + bl FUN_020973B4 + cmp r0, #0 + bne _021DA24C + mov r0, #0 + mvn r0, r0 + pop {r3, r4, r5, r6, r7, pc} +_021DA24C: + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + add r3, sp, #0 + bl FUN_02033918 + cmp r0, #0 + bne _021DA262 + mov r0, #1 + mvn r0, r0 + pop {r3, r4, r5, r6, r7, pc} +_021DA262: + add r0, r5, #0 + bl FUN_020286EC + add r1, r7, #0 + bl FUN_0202838C + add r1, r4, #0 + add r2, r6, #0 + bl FUN_02096D2C +_021DA276: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD55_021DA224 + + thumb_func_start MOD55_021DA27C +MOD55_021DA27C: ; 0x021DA27C + push {r4, lr} + add r4, r0, #0 + lsl r1, r4, #0x18 + mov r0, #0xf + lsr r1, r1, #0x18 + bl FUN_0201E6E4 + lsl r1, r4, #0x18 + mov r0, #1 + lsr r1, r1, #0x18 + bl FUN_0201E74C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD55_021DA27C + + .section .rodata + ; 0x021DA298 + .incbin "baserom.nds", 0x2A15B8, 0x1E8 + + .section .data + ; 0x021DA4A0 + .incbin "baserom.nds", 0x2A17C0, 0x80 diff --git a/arm9/modules/56/asm/module_56.s b/arm9/modules/56/asm/module_56.s new file mode 100644 index 00000000..4ab4e3a4 --- /dev/null +++ b/arm9/modules/56/asm/module_56.s @@ -0,0 +1,8689 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD56_02211E60 +MOD56_02211E60: ; 0x02211E60 + sub r0, #9 + cmp r0, #5 + bhi _02211E82 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02211E72: ; jump table + .short _02211E7E - _02211E72 - 2 ; case 0 + .short _02211E7E - _02211E72 - 2 ; case 1 + .short _02211E7E - _02211E72 - 2 ; case 2 + .short _02211E7E - _02211E72 - 2 ; case 3 + .short _02211E7E - _02211E72 - 2 ; case 4 + .short _02211E7E - _02211E72 - 2 ; case 5 +_02211E7E: + mov r0, #1 + bx lr +_02211E82: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD56_02211E60 + + thumb_func_start MOD56_02211E88 +MOD56_02211E88: ; 0x02211E88 + push {r4, lr} + add r4, r0, #0 + bl MOD56_02211E60 + cmp r0, #0 + beq _02211E98 + mov r0, #1 + pop {r4, pc} +_02211E98: + cmp r4, #0xf + bne _02211EA0 + mov r0, #1 + pop {r4, pc} +_02211EA0: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD56_02211E88 + + thumb_func_start MOD56_02211EA4 +MOD56_02211EA4: ; 0x02211EA4 + cmp r0, #7 + bhi _02211EC8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02211EB4: ; jump table + .short _02211EC8 - _02211EB4 - 2 ; case 0 + .short _02211EC8 - _02211EB4 - 2 ; case 1 + .short _02211EC4 - _02211EB4 - 2 ; case 2 + .short _02211EC4 - _02211EB4 - 2 ; case 3 + .short _02211EC4 - _02211EB4 - 2 ; case 4 + .short _02211EC4 - _02211EB4 - 2 ; case 5 + .short _02211EC4 - _02211EB4 - 2 ; case 6 + .short _02211EC4 - _02211EB4 - 2 ; case 7 +_02211EC4: + mov r0, #1 + bx lr +_02211EC8: + mov r0, #0 + bx lr + thumb_func_end MOD56_02211EA4 + + thumb_func_start MOD56_02211ECC +MOD56_02211ECC: ; 0x02211ECC + push {r4, lr} + add r4, r0, #0 + bl MOD56_02211EA4 + cmp r0, #0 + beq _02211EDC + mov r0, #1 + pop {r4, pc} +_02211EDC: + cmp r4, #1 + beq _02211EE4 + cmp r4, #8 + bne _02211EE8 +_02211EE4: + mov r0, #1 + pop {r4, pc} +_02211EE8: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD56_02211ECC + + thumb_func_start MOD56_02211EEC +MOD56_02211EEC: ; 0x02211EEC + sub r0, #0xc + cmp r0, #3 + bhi _02211F0A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02211EFE: ; jump table + .short _02211F06 - _02211EFE - 2 ; case 0 + .short _02211F06 - _02211EFE - 2 ; case 1 + .short _02211F06 - _02211EFE - 2 ; case 2 + .short _02211F06 - _02211EFE - 2 ; case 3 +_02211F06: + mov r0, #1 + bx lr +_02211F0A: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD56_02211EEC + + thumb_func_start MOD56_02211F10 +MOD56_02211F10: ; 0x02211F10 + mov r1, #0x11 + cmp r0, #0x10 + bhi _02211F82 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02211F22: ; jump table + .short _02211F82 - _02211F22 - 2 ; case 0 + .short _02211F80 - _02211F22 - 2 ; case 1 + .short _02211F68 - _02211F22 - 2 ; case 2 + .short _02211F6C - _02211F22 - 2 ; case 3 + .short _02211F70 - _02211F22 - 2 ; case 4 + .short _02211F74 - _02211F22 - 2 ; case 5 + .short _02211F78 - _02211F22 - 2 ; case 6 + .short _02211F7C - _02211F22 - 2 ; case 7 + .short _02211F64 - _02211F22 - 2 ; case 8 + .short _02211F48 - _02211F22 - 2 ; case 9 + .short _02211F4C - _02211F22 - 2 ; case 10 + .short _02211F50 - _02211F22 - 2 ; case 11 + .short _02211F54 - _02211F22 - 2 ; case 12 + .short _02211F58 - _02211F22 - 2 ; case 13 + .short _02211F5C - _02211F22 - 2 ; case 14 + .short _02211F44 - _02211F22 - 2 ; case 15 + .short _02211F60 - _02211F22 - 2 ; case 16 +_02211F44: + mov r1, #8 + b _02211F82 +_02211F48: + mov r1, #2 + b _02211F82 +_02211F4C: + mov r1, #3 + b _02211F82 +_02211F50: + mov r1, #4 + b _02211F82 +_02211F54: + mov r1, #5 + b _02211F82 +_02211F58: + mov r1, #6 + b _02211F82 +_02211F5C: + mov r1, #7 + b _02211F82 +_02211F60: + mov r1, #1 + b _02211F82 +_02211F64: + mov r1, #0xf + b _02211F82 +_02211F68: + mov r1, #9 + b _02211F82 +_02211F6C: + mov r1, #0xa + b _02211F82 +_02211F70: + mov r1, #0xb + b _02211F82 +_02211F74: + mov r1, #0xc + b _02211F82 +_02211F78: + mov r1, #0xd + b _02211F82 +_02211F7C: + mov r1, #0xe + b _02211F82 +_02211F80: + mov r1, #0x10 +_02211F82: + add r0, r1, #0 + bx lr + .align 2, 0 + thumb_func_end MOD56_02211F10 + + thumb_func_start MOD56_02211F88 +MOD56_02211F88: ; 0x02211F88 + push {r3, r4, r5, r6, r7, lr} + add r0, #0xc4 + ldr r0, [r0] + bl FUN_0206BB1C + str r0, [sp] + bl FUN_0206B9AC + mov r5, #0 + add r7, r0, #0 + add r4, r5, #0 + cmp r7, #0 + ble _02211FCE +_02211FA2: + ldr r0, [sp] + add r1, r4, #0 + bl FUN_0206B9B0 + mov r1, #0xa2 + mov r2, #0 + add r6, r0, #0 + bl FUN_020671BC + cmp r0, #0 + beq _02211FC8 + add r0, r6, #0 + mov r1, #0x4c + mov r2, #0 + bl FUN_020671BC + cmp r0, #0 + bne _02211FC8 + add r5, r5, #1 +_02211FC8: + add r4, r4, #1 + cmp r4, r7 + blt _02211FA2 +_02211FCE: + add r0, r5, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD56_02211F88 + + thumb_func_start MOD56_02211FD4 +MOD56_02211FD4: ; 0x02211FD4 + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _02212074 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _02212078 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + mov r0, #0x36 + bl FUN_02016B94 + add r1, r4, #0 + add r1, #0xc0 + str r0, [r1] + mov r0, #0x36 + bl FUN_0200AA80 + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + mov r2, #0x25 + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #4 + mov r3, #0x36 + bl FUN_0200A86C + add r1, r4, #0 + add r1, #0xcc + str r0, [r1] + ldr r2, _0221207C ; =0x00000265 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x36 + bl FUN_0200A86C + add r1, r4, #0 + add r1, #0xd0 + str r0, [r1] + bl MOD56_022122B4 + add r0, r4, #0 + add r0, #0xc0 + ldr r0, [r0] + bl MOD56_022122D4 + add r0, r4, #0 + bl MOD56_0221257C + ldr r0, _02212080 ; =MOD56_0221228C + add r1, r4, #0 + bl FUN_02015F10 + bl MOD56_0221269C + add r0, r4, #0 + bl MOD56_022126E0 + add r0, r4, #0 + bl MOD56_022127D4 + pop {r4, pc} + .align 2, 0 +_02212074: .word 0xFFFFE0FF +_02212078: .word 0x04001000 +_0221207C: .word 0x00000265 +_02212080: .word MOD56_0221228C + thumb_func_end MOD56_02211FD4 + + thumb_func_start MOD56_02212084 +MOD56_02212084: ; 0x02212084 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #0 + beq _02212098 + cmp r1, #1 + beq _0221214E + b _0221215C +_02212098: + bl FUN_0200628C + add r6, r0, #0 + ldr r0, [r6, #4] + cmp r0, #1 + bne _022120B2 + mov r2, #7 + mov r0, #3 + mov r1, #0x36 + lsl r2, r2, #0x10 + bl FUN_0201681C + b _022120BE +_022120B2: + mov r2, #0xb + mov r0, #3 + mov r1, #0x36 + lsl r2, r2, #0x10 + bl FUN_0201681C +_022120BE: + mov r1, #0x3f + add r0, r4, #0 + lsl r1, r1, #4 + mov r2, #0x36 + bl FUN_02006268 + mov r2, #0x3f + mov r1, #0 + lsl r2, r2, #4 + add r4, r0, #0 + bl MI_CpuFill8 + mov r0, #0x5e + mov r1, #8 + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, r4, #0 + ldr r1, [r6] + add r0, #0xc4 + str r1, [r0] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + bl FUN_020286EC + str r0, [r4] + mov r1, #0xef + ldr r0, [r6, #4] + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r1, #0 + mov r2, #8 + sub r0, #8 + str r2, [r4, r0] + sub r2, #9 + add r1, #0x1c + str r2, [r4, r1] + mov r0, #0xf + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #0xf + mov r1, #0 + bl FUN_0201E74C + add r0, r4, #0 + bl MOD56_0221244C + add r0, r4, #0 + bl MOD56_02211FD4 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x36 + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + bl FUN_02033590 + cmp r0, #0 + bne _02212146 + bl FUN_02088858 +_02212146: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0221215C +_0221214E: + bl FUN_02006278 + mov r0, #0 + str r0, [r5] + add sp, #0xc + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_0221215C: + mov r0, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD56_02212084 + + thumb_func_start MOD56_02212164 +MOD56_02212164: ; 0x02212164 + push {r3, r4, r5, lr} + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #0 + beq _0221217E + cmp r1, #1 + beq _0221218C + cmp r1, #2 + beq _022121A2 + b _022121AE +_0221217E: + bl FUN_0200E308 + cmp r0, #0 + beq _022121AE + mov r0, #1 + str r0, [r5] + b _022121AE +_0221218C: + mov r2, #0x3b + lsl r2, r2, #4 + ldr r2, [r4, r2] + lsl r3, r2, #2 + ldr r2, _022121C0 ; =0x022164E0 + ldr r2, [r2, r3] + cmp r2, #0 + beq _022121AE + blx r2 + str r0, [r5] + b _022121AE +_022121A2: + bl FUN_0200E308 + cmp r0, #0 + beq _022121AE + mov r0, #1 + pop {r3, r4, r5, pc} +_022121AE: + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0 + beq _022121BC + bl FUN_0201FDEC +_022121BC: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022121C0: .word 0x022164E0 + thumb_func_end MOD56_02212164 + + thumb_func_start MOD56_022121C4 +MOD56_022121C4: ; 0x022121C4 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0xb + lsl r0, r0, #6 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0xb1 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r7, #0x2b + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #4 +_022121EC: + ldr r0, [r5, r7] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _022121EC + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_0201FD58 + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + add r0, r6, #0 + bl MOD56_0221295C + add r0, r6, #0 + add r0, #0xc0 + ldr r0, [r0] + bl MOD56_02212540 + add r0, r6, #0 + add r0, #0xd0 + ldr r0, [r0] + bl FUN_0200A8B8 + add r0, r6, #0 + add r0, #0xcc + ldr r0, [r0] + bl FUN_0200A8B8 + add r6, #0xc8 + ldr r0, [r6] + bl FUN_0200AB18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD56_022121C4 + + thumb_func_start MOD56_02212240 +MOD56_02212240: ; 0x02212240 + push {r4, r5, r6, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + bl MOD56_022121C4 + add r0, r5, #0 + bl FUN_0200628C + add r6, r0, #0 + mov r0, #0xed + lsl r0, r0, #2 + ldr r1, [r4, r0] + str r1, [r6, #4] + ldr r0, [r4, r0] + cmp r0, #8 + beq _02212268 + cmp r0, #0xa + bne _0221226E +_02212268: + bl FUN_02088868 + b _02212274 +_0221226E: + bl MOD04_021D853C + str r0, [r6, #8] +_02212274: + add r0, r4, #0 + bl MOD56_022124E4 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0x36 + bl FUN_020168D0 + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD56_02212240 + + thumb_func_start MOD56_0221228C +MOD56_0221228C: ; 0x0221228C + push {r3, lr} + add r0, #0xc0 + ldr r0, [r0] + bl FUN_0201AB60 + bl FUN_0201C30C + bl FUN_02009F80 + ldr r3, _022122AC ; =0x027E0000 + ldr r1, _022122B0 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + .align 2, 0 +_022122AC: .word 0x027E0000 +_022122B0: .word 0x00003FF8 + thumb_func_end MOD56_0221228C + + thumb_func_start MOD56_022122B4 +MOD56_022122B4: ; 0x022122B4 + push {r4, lr} + sub sp, #0x28 + ldr r4, _022122D0 ; =0x02216454 + add r3, sp, #0 + mov r2, #5 +_022122BE: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _022122BE + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_022122D0: .word 0x02216454 + thumb_func_end MOD56_022122B4 + + thumb_func_start MOD56_022122D4 +MOD56_022122D4: ; 0x022122D4 + push {r4, r5, lr} + sub sp, #0x9c + ldr r5, _0221242C ; =0x02216330 + add r3, sp, #0x8c + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _02212430 ; =0x02216368 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x36 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _02212434 ; =0x02216384 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #1 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x36 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _02212438 ; =0x022163A0 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x36 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _0221243C ; =0x022163BC + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #3 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x36 + bl FUN_02017F18 + add r0, r4, #0 + mov r1, #3 + bl FUN_02018744 + ldr r5, _02212440 ; =0x022163D8 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x36 + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x36 + bl FUN_02017F18 + mov r0, #0 + mov r1, #3 + bl FUN_020178BC + mov r0, #1 + mov r1, #2 + bl FUN_020178BC + mov r0, #3 + mov r1, #1 + bl FUN_020178BC + mov r0, #2 + mov r1, #0 + bl FUN_020178BC + ldr r0, _02212444 ; =0x04000050 + mov r1, #0 + strh r1, [r0] + ldr r0, _02212448 ; =0x04001050 + strh r1, [r0] + add sp, #0x9c + pop {r4, r5, pc} + .align 2, 0 +_0221242C: .word 0x02216330 +_02212430: .word 0x02216368 +_02212434: .word 0x02216384 +_02212438: .word 0x022163A0 +_0221243C: .word 0x022163BC +_02212440: .word 0x022163D8 +_02212444: .word 0x04000050 +_02212448: .word 0x04001050 + thumb_func_end MOD56_022122D4 + + thumb_func_start MOD56_0221244C +MOD56_0221244C: ; 0x0221244C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 + mov r7, #8 +_02212456: + add r0, r7, #0 + mov r1, #0x36 + bl FUN_020219F4 + add r1, r5, #0 + add r1, #0xd4 + str r0, [r1] + ldr r0, [r6] + add r1, r4, #0 + bl FUN_020283A4 + add r1, r0, #0 + add r0, r5, #0 + add r0, #0xd4 + ldr r0, [r0] + bl FUN_02021E28 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0x20 + blt _02212456 + mov r0, #0x5f + lsl r0, r0, #2 + mov r1, #0x36 + bl FUN_020219F4 + mov r1, #0x57 + lsl r1, r1, #2 + str r0, [r6, r1] + add r1, #0x20 + add r0, r1, #0 + mov r1, #0x36 + bl FUN_020219F4 + mov r1, #0x5d + lsl r1, r1, #2 + add r7, r1, #0 + str r0, [r6, r1] + mov r5, #0 + add r4, r6, #0 + sub r7, #0x10 +_022124A8: + mov r0, #0x5f + lsl r0, r0, #2 + mov r1, #0x36 + bl FUN_020219F4 + str r0, [r4, r7] + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #4 + blt _022124A8 + mov r0, #0x5f + lsl r0, r0, #2 + mov r1, #0x36 + bl FUN_020219F4 + mov r1, #0x56 + lsl r1, r1, #2 + str r0, [r6, r1] + mov r0, #0xb4 + mov r1, #0x36 + bl FUN_020219F4 + mov r1, #0x16 + lsl r1, r1, #4 + str r0, [r6, r1] + mov r0, #0x3b + mov r1, #0 + lsl r0, r0, #4 + str r1, [r6, r0] + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD56_0221244C + + thumb_func_start MOD56_022124E4 +MOD56_022124E4: ; 0x022124E4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r4, #0 + add r5, r7, #0 +_022124EC: + add r0, r5, #0 + add r0, #0xd4 + ldr r0, [r0] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0x20 + blt _022124EC + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r7, r0] + bl FUN_02021A20 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_02021A20 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_02021A20 + mov r6, #0x59 + mov r5, #0 + add r4, r7, #0 + lsl r6, r6, #2 +_02212524: + ldr r0, [r4, r6] + bl FUN_02021A20 + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #4 + blt _02212524 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_02021A20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD56_022124E4 + + thumb_func_start MOD56_02212540 +MOD56_02212540: ; 0x02212540 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD56_02212540 + + thumb_func_start MOD56_0221257C +MOD56_0221257C: ; 0x0221257C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + add r0, #0xc0 + ldr r4, [r0] + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E74C + mov r2, #0 + str r2, [sp] + mov r0, #0x36 + str r0, [sp, #4] + mov r0, #0x5c + mov r1, #3 + add r3, r2, #0 + bl FUN_02006930 + mov r3, #0 + str r3, [sp] + mov r0, #0x36 + str r0, [sp, #4] + mov r0, #0x5c + mov r1, #3 + mov r2, #4 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x36 + bl FUN_02002EEC + mov r1, #6 + mov r0, #0 + lsl r1, r1, #6 + mov r2, #0x36 + bl FUN_02002EEC + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + mov r0, #0x36 + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #2 + add r2, r4, #0 + bl FUN_0200687C + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + mov r0, #0x36 + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #4 + add r2, r4, #0 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x36 + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #9 + add r2, r4, #0 + mov r3, #4 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x36 + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #0xa + add r2, r4, #0 + mov r3, #4 + bl FUN_020068C8 + add r5, #0xc4 + ldr r0, [r5] + bl LoadPlayerDataAddress + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x36 + str r0, [sp, #4] + ldr r2, _02212694 ; =0x000001E2 + add r0, r4, #0 + mov r1, #2 + mov r3, #0xa + bl FUN_0200CD68 + mov r0, #0 + str r0, [sp] + mov r0, #0x36 + str r0, [sp, #4] + ldr r2, _02212698 ; =0x000001D9 + add r0, r4, #0 + mov r1, #2 + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #0x36 + str r0, [sp, #4] + ldr r2, _02212698 ; =0x000001D9 + add r0, r4, #0 + mov r1, #1 + mov r3, #0xb + bl FUN_0200CB00 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_02212694: .word 0x000001E2 +_02212698: .word 0x000001D9 + thumb_func_end MOD56_0221257C + + thumb_func_start MOD56_0221269C +MOD56_0221269C: ; 0x0221269C + push {r4, lr} + sub sp, #0x10 + ldr r4, _022126D8 ; =0x02216340 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #0x14 + mov r1, #0x36 + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + ldr r1, _022126DC ; =0x00100010 + mov r0, #1 + bl FUN_02008D44 + mov r0, #1 + bl FUN_02008DDC + add sp, #0x10 + pop {r4, pc} + nop +_022126D8: .word 0x02216340 +_022126DC: .word 0x00100010 + thumb_func_end MOD56_0221269C + + thumb_func_start MOD56_022126E0 +MOD56_022126E0: ; 0x022126E0 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x7e + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x36 + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + mov r1, #0x62 + lsl r1, r1, #2 + mov r0, #0x1e + add r1, r6, r1 + mov r2, #0x36 + bl FUN_02008C9C + mov r1, #0x61 + lsl r1, r1, #2 + str r0, [r6, r1] + add r0, r1, #4 + mov r2, #1 + add r0, r6, r0 + mov r1, #0 + lsl r2, r2, #0x14 + bl FUN_02008D24 + mov r7, #0x2b + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #4 +_0221272C: + mov r0, #2 + add r1, r4, #0 + mov r2, #0x36 + bl FUN_02008DEC + str r0, [r5, r7] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0221272C + mov r3, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x36 + str r0, [sp, #8] + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r6, r0] + mov r1, #0x5c + mov r2, #7 + bl FUN_02008F34 + mov r1, #0xb + lsl r1, r1, #6 + str r0, [r6, r1] + mov r3, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #7 + str r0, [sp, #8] + mov r0, #0x36 + sub r1, #0xc + str r0, [sp, #0xc] + ldr r0, [r6, r1] + mov r1, #0x5c + mov r2, #8 + bl FUN_02008FEC + mov r1, #0xb1 + lsl r1, r1, #2 + str r0, [r6, r1] + mov r3, #0 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x36 + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r6, r1] + mov r1, #0x5c + mov r2, #1 + bl FUN_020090AC + mov r1, #0xb2 + lsl r1, r1, #2 + str r0, [r6, r1] + mov r2, #0 + str r2, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x36 + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r6, r1] + mov r1, #0x5c + add r3, r2, #0 + bl FUN_020090AC + mov r1, #0xb3 + lsl r1, r1, #2 + str r0, [r6, r1] + sub r1, #0xc + ldr r0, [r6, r1] + bl FUN_02009A50 + mov r0, #0xb1 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009CF0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD56_022126E0 + + thumb_func_start MOD56_022127D4 +MOD56_022127D4: ; 0x022127D4 + push {r4, r5, r6, r7, lr} + sub sp, #0x5c + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + sub r0, r1, #1 + str r0, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r2, #0x2b + str r1, [sp, #0x10] + lsl r2, r2, #4 + ldr r0, [r5, r2] + add r3, r1, #0 + str r0, [sp, #0x14] + add r0, r2, #4 + ldr r0, [r5, r0] + str r0, [sp, #0x18] + add r0, r2, #0 + add r0, #8 + ldr r0, [r5, r0] + str r0, [sp, #0x1c] + add r0, r2, #0 + add r0, #0xc + ldr r0, [r5, r0] + add r2, #0x30 + str r0, [sp, #0x20] + str r1, [sp, #0x24] + add r0, r5, r2 + add r2, r1, #0 + str r1, [sp, #0x28] + bl FUN_02008AA4 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r4, #0 + str r0, [sp, #0x2c] + mov r0, #0x2e + lsl r0, r0, #4 + add r0, r5, r0 + str r0, [sp, #0x30] + mov r0, #1 + lsl r0, r0, #0xc + mov r7, #6 + str r4, [sp, #0x3c] + str r0, [sp, #0x40] + str r0, [sp, #0x44] + str r0, [sp, #0x48] + add r0, sp, #0x2c + strh r4, [r0, #0x20] + mov r0, #1 + str r0, [sp, #0x50] + str r0, [sp, #0x54] + mov r0, #0x36 + str r0, [sp, #0x58] + mov r6, #0x20 + lsl r7, r7, #0xe +_02212848: + mov r0, #1 + lsl r1, r6, #0xc + lsl r0, r0, #0x14 + add r0, r1, r0 + str r0, [sp, #0x38] + add r0, sp, #0x2c + str r7, [sp, #0x34] + bl FUN_0201FE94 + mov r1, #0xca + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0xca + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_02020130 + mov r0, #0xca + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #2 + bl FUN_02020238 + mov r0, #0xca + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + add r4, r4, #1 + add r6, #0x20 + add r5, r5, #4 + cmp r4, #5 + blt _02212848 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x5c + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD56_022127D4 + + thumb_func_start MOD56_022128A4 +MOD56_022128A4: ; 0x022128A4 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _022128CE + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_022128CE: + mov r0, #1 + str r0, [sp] + mov r0, #0x16 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _02212954 ; =0x000001CA + mov r1, #0xd7 + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xc0 + lsl r1, r1, #2 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #3 + mov r3, #5 + bl FUN_02019064 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + mov r2, #0x16 + add r0, #0xcc + lsl r2, r2, #4 + ldr r0, [r0] + ldr r2, [r4, r2] + mov r1, #0x11 + bl FUN_0200A8E0 + mov r1, #0x16 + lsl r1, r1, #4 + ldr r1, [r4, r1] + mov r0, #1 + mov r2, #0 + mov r3, #0xb0 + bl FUN_02002F40 + mov r1, #0 + add r3, r0, #0 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02212958 ; =0x000F0E00 + add r2, #0x61 + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r0, #0xd7 + lsl r0, r0, #2 + ldr r2, [r4, r2] + add r0, r4, r0 + mov r1, #1 + bl FUN_0201BDE0 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019220 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02212954: .word 0x000001CA +_02212958: .word 0x000F0E00 + thumb_func_end MOD56_022128A4 + + thumb_func_start MOD56_0221295C +MOD56_0221295C: ; 0x0221295C + push {r4, lr} + add r4, r0, #0 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02212978 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_02212978: + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02212990 + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_02212990: + mov r0, #0xe7 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _022129A8 + mov r0, #0xe7 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_022129A8: + mov r0, #0xd3 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _022129C0 + mov r0, #0xd3 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_022129C0: + mov r0, #0xdf + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _022129D8 + mov r0, #0xdf + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_022129D8: + add r0, r4, #0 + add r0, #0xb4 + ldr r0, [r0] + cmp r0, #0 + beq _022129EA + mov r1, #0 + add r2, r1, #0 + bl FUN_02001300 +_022129EA: + add r0, r4, #0 + add r0, #0xb0 + ldr r0, [r0] + cmp r0, #0 + beq _02212A00 + bl FUN_02012870 + add r0, r4, #0 + mov r1, #0 + add r0, #0xb0 + str r1, [r0] +_02212A00: + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02212A18 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_02212A18: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD56_0221295C + + thumb_func_start MOD56_02212A1C +MOD56_02212A1C: ; 0x02212A1C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r1, _02212B30 ; =0x00000497 + mov r0, #0xb + mov r2, #1 + bl FUN_0200433C + bl FUN_02033590 + cmp r0, #0 + beq _02212A9A + bl FUN_02033E74 + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + bl FUN_020334DC + add r1, r0, #0 + str r0, [r5, #4] + add r1, #0x22 + ldrb r1, [r1] + add r0, #0x21 + strb r1, [r0] + ldr r0, [r5, #4] + ldrb r0, [r0, #0x1b] + cmp r0, #8 + bne _02212A80 + bl FUN_02033208 + bl FUN_020334DC + add r1, r0, #0 + str r0, [r5, #4] + add r1, #0x22 + ldrb r1, [r1] + add r0, #0x21 + strb r1, [r0] + mov r0, #0xf1 + mov r1, #0x14 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x40 + sub r0, #0x14 + str r1, [r5, r0] + b _02212B2C +_02212A80: + add r0, r5, #0 + mov r1, #0x2b + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x10 + bl FUN_02031588 + mov r0, #0x3b + mov r1, #0x3c + lsl r0, r0, #4 + str r1, [r5, r0] + b _02212B2C +_02212A9A: + add r0, r5, #0 + bl MOD56_022128A4 + ldr r0, [r5] + bl FUN_02028228 + bl FUN_02096F80 + cmp r0, #0 + bne _02212AFA + mov r0, #0 + mov r1, #3 + bl FUN_020178BC + mov r0, #3 + mov r1, #2 + bl FUN_020178BC + mov r0, #2 + mov r1, #1 + bl FUN_020178BC + mov r0, #1 + mov r1, #0 + bl FUN_020178BC + add r0, r5, #0 + mov r1, #0x11 + bl MOD56_02215FF4 + mov r0, #0x36 + str r0, [sp] + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r1, _02212B34 ; =0x02216310 + ldr r2, _02212B38 ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x3b + mov r1, #6 + lsl r0, r0, #4 + str r1, [r5, r0] + b _02212B2C +_02212AFA: + ldr r0, [r5] + bl FUN_02028228 + bl FUN_02096F18 + cmp r0, #0 + bne _02212B1A + add r0, r5, #0 + mov r1, #0x13 + bl MOD56_02215FF4 + mov r0, #0x3b + mov r1, #3 + lsl r0, r0, #4 + str r1, [r5, r0] + b _02212B2C +_02212B1A: + add r0, r5, #0 + mov r1, #0x10 + mov r2, #1 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #1 + lsl r0, r0, #4 + str r1, [r5, r0] +_02212B2C: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02212B30: .word 0x00000497 +_02212B34: .word 0x02216310 +_02212B38: .word 0x000001D9 + thumb_func_end MOD56_02212A1C + + thumb_func_start MOD56_02212B3C +MOD56_02212B3C: ; 0x02212B3C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02212B76 + mov r0, #0x36 + str r0, [sp] + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r1, _02212B7C ; =0x022162F8 + ldr r2, _02212B80 ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x3b + mov r1, #2 + lsl r0, r0, #4 + str r1, [r5, r0] +_02212B76: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02212B7C: .word 0x022162F8 +_02212B80: .word 0x000001D9 + thumb_func_end MOD56_02212B3C + + thumb_func_start MOD56_02212B84 +MOD56_02212B84: ; 0x02212B84 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + add r4, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _02212BA2 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_02212BA2: + cmp r0, #0 + bne _02212BD4 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r1, _02212BE0 ; =0x000004A4 + bl FUN_0203346C + str r0, [r5, #4] + add r0, r5, #0 + mov r1, #0x16 + mov r2, #1 + bl MOD56_02215EA4 + mov r0, #0xcf + lsl r0, r0, #2 + ldr r1, _02212BE4 ; =0x000001E2 + add r0, r5, r0 + bl FUN_0200D858 + mov r1, #6 + lsl r1, r1, #6 + str r0, [r5, r1] + mov r1, #0xe + b _02212BD6 +_02212BD4: + mov r1, #0x22 +_02212BD6: + mov r0, #0x3b + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02212BE0: .word 0x000004A4 +_02212BE4: .word 0x000001E2 + thumb_func_end MOD56_02212B84 + + thumb_func_start MOD56_02212BE8 +MOD56_02212BE8: ; 0x02212BE8 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r1, _02212C44 ; =0x021C48B8 + add r5, r0, #0 + ldr r2, [r1, #0x48] + mov r1, #3 + tst r1, r2 + beq _02212C40 + mov r1, #0x14 + bl MOD56_02215FF4 + mov r0, #0 + mov r1, #3 + bl FUN_020178BC + mov r0, #3 + mov r1, #2 + bl FUN_020178BC + mov r0, #2 + mov r1, #1 + bl FUN_020178BC + mov r0, #1 + mov r1, #0 + bl FUN_020178BC + mov r0, #0x36 + str r0, [sp] + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r1, _02212C48 ; =0x02216310 + ldr r2, _02212C4C ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x3b + mov r1, #4 + lsl r0, r0, #4 + str r1, [r5, r0] +_02212C40: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02212C44: .word 0x021C48B8 +_02212C48: .word 0x02216310 +_02212C4C: .word 0x000001D9 + thumb_func_end MOD56_02212BE8 + + thumb_func_start MOD56_02212C50 +MOD56_02212C50: ; 0x02212C50 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + add r4, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021AC + add r6, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + bne _02212C74 + add sp, #4 + add r0, r4, #0 + pop {r3, r4, r5, r6, pc} +_02212C74: + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 + cmp r6, #0 + bne _02212CB4 + add r0, r5, #0 + mov r1, #0x15 + bl MOD56_02215FF4 + mov r0, #0x36 + str r0, [sp] + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r1, _02212CC4 ; =0x02216310 + ldr r2, _02212CC8 ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r1, #5 + b _02212CB6 +_02212CB4: + mov r1, #0x22 +_02212CB6: + mov r0, #0x3b + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_02212CC4: .word 0x02216310 +_02212CC8: .word 0x000001D9 + thumb_func_end MOD56_02212C50 + + thumb_func_start MOD56_02212CCC +MOD56_02212CCC: ; 0x02212CCC + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + add r4, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021AC + add r6, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + bne _02212CEC + add r0, r4, #0 + pop {r4, r5, r6, pc} +_02212CEC: + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 + cmp r6, #0 + bne _02212D44 + ldr r0, [r5] + bl FUN_020281E8 + mov r1, #0x3b + mov r0, #0xe + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, #0xf4 + bl FUN_0203346C + str r0, [r5, #4] + add r0, r5, #0 + mov r1, #0x16 + mov r2, #1 + bl MOD56_02215EA4 + mov r0, #0xcf + lsl r0, r0, #2 + ldr r1, _02212D50 ; =0x000001E2 + add r0, r5, r0 + bl FUN_0200D858 + mov r1, #6 + lsl r1, r1, #6 + str r0, [r5, r1] + mov r1, #1 + mov r0, #0x3d + b _02212D48 +_02212D44: + mov r1, #0x22 + mov r0, #0x3b +_02212D48: + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_02212D50: .word 0x000001E2 + thumb_func_end MOD56_02212CCC + + thumb_func_start MOD56_02212D54 +MOD56_02212D54: ; 0x02212D54 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + add r4, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021AC + add r6, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + bne _02212D74 + add r0, r4, #0 + pop {r4, r5, r6, pc} +_02212D74: + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 + cmp r6, #0 + bne _02212DC6 + mov r1, #0x3b + mov r0, #0xe + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, #0xf4 + bl FUN_0203346C + str r0, [r5, #4] + add r0, r5, #0 + mov r1, #0x16 + mov r2, #1 + bl MOD56_02215EA4 + mov r0, #0xcf + lsl r0, r0, #2 + ldr r1, _02212DD4 ; =0x000001E2 + add r0, r5, r0 + bl FUN_0200D858 + mov r1, #6 + lsl r1, r1, #6 + str r0, [r5, r1] + mov r1, #1 + mov r0, #0x3d + b _02212DCA +_02212DC6: + mov r1, #0x22 + mov r0, #0x3b +_02212DCA: + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + pop {r4, r5, r6, pc} + nop +_02212DD4: .word 0x000001E2 + thumb_func_end MOD56_02212D54 + + thumb_func_start MOD56_02212DD8 +MOD56_02212DD8: ; 0x02212DD8 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r0, #0 + mov r1, #3 + bl FUN_020178BC + mov r0, #1 + mov r1, #2 + bl FUN_020178BC + mov r0, #3 + mov r1, #1 + bl FUN_020178BC + mov r0, #2 + mov r1, #0 + bl FUN_020178BC + mov r0, #0x3b + mov r1, #0xf + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD56_02212DD8 + + thumb_func_start MOD56_02212E0C +MOD56_02212E0C: ; 0x02212E0C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + str r1, [sp] + bl FUN_020238F4 + str r0, [sp, #0x14] + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + bl FUN_02024DA0 + str r0, [sp, #0x10] + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + bl FUN_0206BB1C + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + bl FUN_02029AFC + str r0, [sp, #8] + ldr r0, [sp, #0xc] + bl FUN_0206B9AC + mov r6, #0 + str r0, [sp, #4] + cmp r0, #0 + ble _02212E82 + add r4, r6, #0 +_02212E52: + ldr r0, [sp, #0xc] + add r1, r6, #0 + bl FUN_0206B9B0 + mov r1, #5 + mov r2, #0 + add r7, r0, #0 + bl FUN_020671BC + ldr r1, [r5, #4] + mov r2, #0 + strh r0, [r1, r4] + add r0, r7, #0 + mov r1, #6 + bl FUN_020671BC + ldr r1, [r5, #4] + add r6, r6, #1 + add r1, r1, r4 + strh r0, [r1, #0xc] + ldr r0, [sp, #4] + add r4, r4, #2 + cmp r6, r0 + blt _02212E52 +_02212E82: + ldr r0, [sp, #0x14] + bl FUN_02023A68 + ldr r1, [r5, #4] + strb r0, [r1, #0x18] + ldr r0, [sp, #0x14] + bl FUN_02023A70 + ldr r1, [r5, #4] + strb r0, [r1, #0x19] + ldr r0, [sp, #0x10] + bl FUN_02024CA4 + ldr r1, [r5, #4] + strb r0, [r1, #0x1a] + ldr r1, [r5, #4] + ldr r0, [sp] + strb r0, [r1, #0x1b] + ldr r0, [r5, #4] + mov r1, #0 + strb r1, [r0, #0x1c] + ldr r0, [sp, #0x14] + bl FUN_02023A28 + ldr r1, [r5, #4] + strb r0, [r1, #0x1d] + ldr r0, [sp, #0x14] + bl FUN_020239CC + ldr r1, [r5, #4] + strb r0, [r1, #0x1e] + ldr r0, [sp, #8] + bl FUN_02029B38 + ldr r1, [r5, #4] + strb r0, [r1, #0x1f] + ldr r0, [sp, #8] + bl FUN_02029B3C + ldr r1, [r5, #4] + add r1, #0x20 + strb r0, [r1] + ldr r0, [r5, #4] + mov r1, #1 + add r0, #0x21 + strb r1, [r0] + ldr r0, [r5, #4] + add r0, #0x22 + strb r1, [r0] + ldr r0, [r5, #4] + mov r1, #0x24 + bl MOD04_021D8478 + ldr r0, [r5, #4] + mov r1, #0x24 + add r0, #0x24 + bl MOD04_021D83D4 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD56_02212E0C + + thumb_func_start MOD56_02212EFC +MOD56_02212EFC: ; 0x02212EFC + push {r3, r4, r5, r6, r7, lr} + mov r5, #0 + add r6, r0, #0 + add r4, r5, #0 + add r7, r5, #0 +_02212F06: + add r0, r6, r4 + strb r7, [r0, #0xc] + add r0, r4, #0 + bl MOD04_021D8480 + cmp r0, #0 + beq _02212F1C + add r0, r6, r5 + add r1, r4, #1 + strb r1, [r0, #0xc] + add r5, r5, #1 +_02212F1C: + add r4, r4, #1 + cmp r4, #0x20 + blt _02212F06 + add r0, r5, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD56_02212EFC + + thumb_func_start MOD56_02212F28 +MOD56_02212F28: ; 0x02212F28 + push {r3, r4, r5, r6, r7, lr} + mov r4, #0 + add r7, r0, #0 + str r4, [sp] + add r5, r4, #0 + add r6, r7, #0 +_02212F34: + ldr r0, [r7, #4] + add r0, r0, r5 + add r0, #0x3f + ldrb r1, [r0] + ldr r0, [r6, #0x2c] + cmp r0, r1 + beq _02212F6E + str r1, [r6, #0x2c] + ldr r3, [r7, #4] + ldr r0, [r7] + add r3, r3, r5 + add r3, #0x41 + ldrb r3, [r3] + add r1, r4, #0 + mov r2, #7 + bl FUN_020282E8 + ldr r3, [r7, #4] + ldr r0, [r7] + add r3, r3, r5 + add r3, #0x42 + ldrb r3, [r3] + add r1, r4, #0 + mov r2, #8 + bl FUN_020282E8 + ldr r0, [sp] + add r0, r0, #1 + str r0, [sp] +_02212F6E: + add r4, r4, #1 + add r5, #0x24 + add r6, r6, #4 + cmp r4, #0x20 + blt _02212F34 + ldr r0, [sp] + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD56_02212F28 + + thumb_func_start MOD56_02212F7C +MOD56_02212F7C: ; 0x02212F7C + push {r4, r5, r6, lr} + sub sp, #8 + add r4, r0, #0 + add r5, r1, #0 + bl FUN_02033180 + mov r1, #0 + mvn r1, r1 + cmp r5, r1 + beq _02212F98 + cmp r5, #0xb + beq _02212F98 + cmp r0, r1 + bne _02212F9E +_02212F98: + mov r6, #0xe + mov r5, #0xb + b _02212FAC +_02212F9E: + sub r1, r1, #1 + cmp r0, r1 + bne _02212FAA + mov r6, #0xd + mov r5, #0xc + b _02212FAC +_02212FAA: + add r6, r5, #0 +_02212FAC: + add r0, r4, #0 + bl MOD56_02216120 + bl FUN_02033180 + add r2, r0, #0 + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + mov r3, #5 + bl FUN_0200AD38 + add r0, r4, #0 + add r1, r6, #0 + bl MOD56_02215FF4 + cmp r5, #0xb + bhi _02213022 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02212FE6: ; jump table + .short _02213022 - _02212FE6 - 2 ; case 0 + .short _02212FFE - _02212FE6 - 2 ; case 1 + .short _02213022 - _02212FE6 - 2 ; case 2 + .short _02213022 - _02212FE6 - 2 ; case 3 + .short _02212FFE - _02212FE6 - 2 ; case 4 + .short _02212FFE - _02212FE6 - 2 ; case 5 + .short _0221300A - _02212FE6 - 2 ; case 6 + .short _0221300A - _02212FE6 - 2 ; case 7 + .short _0221300A - _02212FE6 - 2 ; case 8 + .short _0221300A - _02212FE6 - 2 ; case 9 + .short _02213016 - _02212FE6 - 2 ; case 10 + .short _02212FFE - _02212FE6 - 2 ; case 11 +_02212FFE: + mov r0, #0x3b + mov r1, #0xa + lsl r0, r0, #4 + add sp, #8 + str r1, [r4, r0] + pop {r4, r5, r6, pc} +_0221300A: + mov r0, #0x3b + mov r1, #0xa + lsl r0, r0, #4 + add sp, #8 + str r1, [r4, r0] + pop {r4, r5, r6, pc} +_02213016: + mov r0, #0x3b + mov r1, #0xa + lsl r0, r0, #4 + add sp, #8 + str r1, [r4, r0] + pop {r4, r5, r6, pc} +_02213022: + mov r0, #0x3b + mov r1, #0x23 + lsl r0, r0, #4 + str r1, [r4, r0] + add sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD56_02212F7C + + thumb_func_start MOD56_02213030 +MOD56_02213030: ; 0x02213030 + push {r4, lr} + add r4, r0, #0 + bl FUN_02033180 + bl MOD04_021D80E0 + add r1, r0, #0 + add r0, r4, #0 + bl MOD56_02212F7C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD56_02213030 + + thumb_func_start MOD56_02213048 +MOD56_02213048: ; 0x02213048 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _02213088 ; =0x021C48B8 + add r4, r1, #0 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _02213084 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _0221307C + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_0221307C: + mov r0, #0x3b + mov r1, #8 + lsl r0, r0, #4 + str r1, [r5, r0] +_02213084: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02213088: .word 0x021C48B8 + thumb_func_end MOD56_02213048 + + thumb_func_start MOD56_0221308C +MOD56_0221308C: ; 0x0221308C + mov r2, #0x3b + mov r3, #9 + lsl r2, r2, #4 + str r3, [r0, r2] + add r0, r1, #0 + bx lr + thumb_func_end MOD56_0221308C + + thumb_func_start MOD56_02213098 +MOD56_02213098: ; 0x02213098 + mov r2, #0x3b + mov r3, #0xb + lsl r2, r2, #4 + str r3, [r0, r2] + add r0, r1, #0 + bx lr + thumb_func_end MOD56_02213098 + + thumb_func_start MOD56_022130A4 +MOD56_022130A4: ; 0x022130A4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _022130F0 ; =0x021C48B8 + add r4, r1, #0 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _022130EA + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _022130D8 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_022130D8: + add r0, r5, #0 + mov r1, #0x33 + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0xb + lsl r0, r0, #4 + str r1, [r5, r0] +_022130EA: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_022130F0: .word 0x021C48B8 + thumb_func_end MOD56_022130A4 + + thumb_func_start MOD56_022130F4 +MOD56_022130F4: ; 0x022130F4 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0221312E + mov r0, #0x36 + str r0, [sp] + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r1, _02213134 ; =0x02216308 + ldr r2, _02213138 ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x3b + mov r1, #0xc + lsl r0, r0, #4 + str r1, [r5, r0] +_0221312E: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02213134: .word 0x02216308 +_02213138: .word 0x000001D9 + thumb_func_end MOD56_022130F4 + + thumb_func_start MOD56_0221313C +MOD56_0221313C: ; 0x0221313C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + add r4, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _0221315A + add r0, r4, #0 + pop {r3, r4, r5, pc} +_0221315A: + cmp r0, #0 + bne _02213172 + bl FUN_020331C4 + add r0, r5, #0 + mov r1, #0x10 + bl MOD56_0221617C + mov r0, #0x3b + mov r1, #0xd + lsl r0, r0, #4 + b _02213186 +_02213172: + bl FUN_020331C4 + bl FUN_0202DBA4 + mov r0, #0xed + mov r1, #8 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x22 + sub r0, r0, #4 +_02213186: + str r1, [r5, r0] + add r0, r5, #0 + bl MOD56_02216120 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD56_0221313C + + thumb_func_start MOD56_02213194 +MOD56_02213194: ; 0x02213194 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + str r1, [sp, #0x10] + bl FUN_0202E4C8 + cmp r0, #0 + bne _0221326E + add r0, r6, #0 + add r0, #0xc0 + ldr r0, [r0] + mov r1, #3 + bl FUN_02018744 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + add r2, r6, #0 + str r3, [sp, #8] + mov r0, #0x36 + str r0, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + mov r0, #0x5c + mov r1, #4 + bl FUN_020068C8 + add r0, r6, #0 + add r0, #0xb0 + ldr r0, [r0] + cmp r0, #0 + beq _02213206 + mov r0, #0xdf + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019178 + add r0, r6, #0 + add r0, #0xb4 + mov r1, #0 + ldr r0, [r0] + add r2, r1, #0 + bl FUN_02001300 + add r0, r6, #0 + mov r1, #0 + add r0, #0xb4 + str r1, [r0] + add r0, r6, #0 + add r0, #0xb0 + ldr r0, [r0] + bl FUN_02012870 + add r0, r6, #0 + mov r1, #0 + add r0, #0xb0 + str r1, [r0] +_02213206: + add r0, r6, #0 + add r0, #0xc + mov r1, #0 + mov r2, #0x20 + bl MI_CpuFill8 + add r0, r6, #0 + add r0, #0x2c + mov r1, #0 + mov r2, #0x80 + bl MI_CpuFill8 + mov r7, #0xca + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_02213226: + ldr r0, [r5, r7] + mov r1, #0 + bl FUN_020200A0 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #5 + blt _02213226 + add r0, r6, #0 + bl MOD56_022128A4 + add r0, r6, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r1, _02213274 ; =0x000004A4 + bl FUN_0203346C + str r0, [r6, #4] + add r0, r6, #0 + mov r1, #0x16 + mov r2, #1 + bl MOD56_02215EA4 + mov r0, #0xcf + lsl r0, r0, #2 + ldr r1, _02213278 ; =0x000001E2 + add r0, r6, r0 + bl FUN_0200D858 + mov r1, #6 + lsl r1, r1, #6 + str r0, [r6, r1] + mov r0, #0x3b + mov r1, #0xe + lsl r0, r0, #4 + str r1, [r6, r0] +_0221326E: + ldr r0, [sp, #0x10] + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02213274: .word 0x000004A4 +_02213278: .word 0x000001E2 + thumb_func_end MOD56_02213194 + + thumb_func_start MOD56_0221327C +MOD56_0221327C: ; 0x0221327C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02033138 + cmp r0, #0 + beq _022132E0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #8 + beq _022132B6 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _022132B6 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD7C + mov r0, #0x5e + mov r1, #8 + lsl r0, r0, #2 + str r1, [r5, r0] +_022132B6: + mov r0, #0x3d + lsl r0, r0, #4 + ldr r1, [r5, r0] + cmp r1, #0 + beq _022132C8 + mov r1, #0x10 + sub r0, #0x20 + str r1, [r5, r0] + b _022132F6 +_022132C8: + add r0, r5, #0 + mov r1, #0x10 + bl MOD56_02212E0C + add r0, r5, #0 + bl MOD56_02212EFC + mov r0, #0x3b + mov r1, #0x12 + lsl r0, r0, #4 + str r1, [r5, r0] + b _022132F6 +_022132E0: + bl FUN_02033250 + cmp r0, #0 + bne _022132F0 + bl FUN_0203300C + cmp r0, #3 + bne _022132F6 +_022132F0: + add r0, r5, #0 + bl MOD56_02213030 +_022132F6: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD56_0221327C + + thumb_func_start MOD56_022132FC +MOD56_022132FC: ; 0x022132FC + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0xf1 + lsl r0, r0, #2 + add r4, r1, #0 + ldr r1, [r5, r0] + cmp r1, #0 + ble _02213314 + sub r1, r1, #1 + str r1, [r5, r0] + add r0, r4, #0 + pop {r3, r4, r5, pc} +_02213314: + bl FUN_02033154 + cmp r0, #0 + beq _02213326 + mov r0, #0x3b + mov r1, #0x12 + lsl r0, r0, #4 + str r1, [r5, r0] + b _02213364 +_02213326: + bl FUN_0203300C + cmp r0, #4 + bge _02213340 + bl FUN_02033128 + cmp r0, #0 + bne _02213340 + mov r0, #0 + bl FUN_02030E7C + cmp r0, #0 + bne _0221334E +_02213340: + bl FUN_020331E8 + mov r0, #0x3b + mov r1, #0x12 + lsl r0, r0, #4 + str r1, [r5, r0] + b _02213364 +_0221334E: + bl FUN_02033250 + cmp r0, #0 + bne _0221335E + bl FUN_0203300C + cmp r0, #3 + bne _02213364 +_0221335E: + add r0, r5, #0 + bl MOD56_02213030 +_02213364: + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD56_022132FC + + thumb_func_start MOD56_02213368 +MOD56_02213368: ; 0x02213368 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD56_02216120 + add r0, r5, #0 + mov r1, #0x12 + bl MOD56_02215FF4 + mov r0, #0x3b + mov r1, #0x11 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD56_02213368 + + thumb_func_start MOD56_02213388 +MOD56_02213388: ; 0x02213388 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _02213418 ; =0x021C48B8 + add r4, r1, #0 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _02213412 + mov r1, #0xef + lsl r1, r1, #2 + ldr r0, [r5, r1] + cmp r0, #1 + bne _022133B6 + add r0, r1, #0 + mov r2, #0xa + sub r0, #8 + str r2, [r5, r0] + mov r0, #0x22 + sub r1, #0xc + str r0, [r5, r1] + bl FUN_020331C4 + b _02213412 +_022133B6: + ldr r0, [r5] + bl FUN_02028448 + cmp r0, #0 + bne _022133DA + add r0, r5, #0 + mov r1, #0x19 + mov r2, #1 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x3a + lsl r0, r0, #4 + str r1, [r5, r0] + mov r1, #1 + add r0, #0x14 + str r1, [r5, r0] + b _02213412 +_022133DA: + add r0, r5, #0 + mov r1, #0x10 + bl MOD56_02212E0C + add r0, r5, #0 + bl MOD56_02212EFC + mov r0, #0x3b + mov r1, #0x12 + lsl r0, r0, #4 + str r1, [r5, r0] + sub r0, #0x44 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02213412 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_02213412: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02213418: .word 0x021C48B8 + thumb_func_end MOD56_02213388 + + thumb_func_start MOD56_0221341C +MOD56_0221341C: ; 0x0221341C + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r5, _02213618 ; =0x00010200 + bl FUN_020238F4 + mov r1, #0x36 + bl FUN_020239A0 + add r6, r0, #0 + mov r0, #0xd3 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + bne _0221344C + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} +_0221344C: + mov r0, #0xd3 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r5, #0 + str r0, [sp, #8] + mov r0, #0xd3 + lsl r0, r0, #2 + add r0, r4, r0 + add r2, r6, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, [r4, #4] + ldrb r0, [r0, #0x1b] + cmp r0, #0x10 + bls _02213484 + b _02213614 +_02213484: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02213490: ; jump table + .short _022135D8 - _02213490 - 2 ; case 0 + .short _022134B2 - _02213490 - 2 ; case 1 + .short _0221350C - _02213490 - 2 ; case 2 + .short _0221350C - _02213490 - 2 ; case 3 + .short _0221350C - _02213490 - 2 ; case 4 + .short _0221350C - _02213490 - 2 ; case 5 + .short _0221350C - _02213490 - 2 ; case 6 + .short _0221350C - _02213490 - 2 ; case 7 + .short _0221359A - _02213490 - 2 ; case 8 + .short _02213522 - _02213490 - 2 ; case 9 + .short _02213536 - _02213490 - 2 ; case 10 + .short _0221354A - _02213490 - 2 ; case 11 + .short _0221355E - _02213490 - 2 ; case 12 + .short _02213572 - _02213490 - 2 ; case 13 + .short _02213586 - _02213490 - 2 ; case 14 + .short _022135B0 - _02213490 - 2 ; case 15 + .short _022135C4 - _02213490 - 2 ; case 16 +_022134B2: + ldr r5, _0221361C ; =0x00020E00 + bl MOD04_021D853C + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _022134D4 + add r0, r4, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r4, r2] + mov r1, #0x1a + bl FUN_0200A8E0 + b _022135DC +_022134D4: + bl MOD04_021D853C + add r1, r0, #0 + ldr r0, [r4] + mov r2, #8 + bl FUN_0202822C + cmp r0, #0 + bne _022134EA + ldr r5, _02213620 ; =0x00050600 + b _022134F2 +_022134EA: + cmp r0, #1 + bne _022134F2 + mov r5, #0xc1 + lsl r5, r5, #0xa +_022134F2: + bl MOD04_021D853C + add r1, r0, #0 + ldr r0, [r4] + bl FUN_020283A4 + add r1, r0, #0 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02021E28 + b _022135DC +_0221350C: + add r0, r4, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r4, r2] + mov r1, #0x17 + bl FUN_0200A8E0 + ldr r5, _0221361C ; =0x00020E00 + b _022135DC +_02213522: + add r0, r4, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r4, r2] + mov r1, #0x3b + bl FUN_0200A8E0 + b _022135DC +_02213536: + add r0, r4, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r4, r2] + mov r1, #0x3c + bl FUN_0200A8E0 + b _022135DC +_0221354A: + add r0, r4, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r4, r2] + mov r1, #0x3a + bl FUN_0200A8E0 + b _022135DC +_0221355E: + add r0, r4, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r4, r2] + mov r1, #0x3e + bl FUN_0200A8E0 + b _022135DC +_02213572: + add r0, r4, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r4, r2] + mov r1, #0x3f + bl FUN_0200A8E0 + b _022135DC +_02213586: + add r0, r4, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r4, r2] + mov r1, #0x3d + bl FUN_0200A8E0 + b _022135DC +_0221359A: + add r0, r4, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r4, r2] + mov r1, #0x19 + bl FUN_0200A8E0 + ldr r5, _0221361C ; =0x00020E00 + b _022135DC +_022135B0: + add r0, r4, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r4, r2] + mov r1, #0x18 + bl FUN_0200A8E0 + b _022135DC +_022135C4: + add r0, r4, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r4, r2] + mov r1, #0x2d + bl FUN_0200A8E0 + b _022135DC +_022135D8: + add sp, #0x10 + pop {r4, r5, r6, pc} +_022135DC: + mov r1, #0x56 + lsl r1, r1, #2 + mov r0, #0 + ldr r1, [r4, r1] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0 + add r3, r0, #0 + mov r0, #0xd3 + lsl r0, r0, #2 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r5, [sp, #8] + mov r5, #0x9c + str r1, [sp, #0xc] + add r2, #0x59 + ldr r2, [r4, r2] + add r0, r4, r0 + sub r3, r5, r3 + bl FUN_0201BDE0 + mov r0, #0xd3 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019220 +_02213614: + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_02213618: .word 0x00010200 +_0221361C: .word 0x00020E00 +_02213620: .word 0x00050600 + thumb_func_end MOD56_0221341C + + thumb_func_start MOD56_02213624 +MOD56_02213624: ; 0x02213624 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r1, #0 + mov r1, #0x13 + add r7, r2, #0 + bl FUN_02001470 + add r4, r0, #0 + ldr r6, _02213750 ; =0x00010200 + cmp r5, #0x20 + beq _02213642 + mov r0, #1 + mvn r0, r0 + cmp r5, r0 + bne _02213644 +_02213642: + b _0221374C +_02213644: + mov r1, #0x24 + ldr r0, [r4, #4] + mul r1, r5 + add r0, r0, r1 + add r0, #0x3f + ldrb r0, [r0] + cmp r0, #0x11 + bhi _022136B6 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02213660: ; jump table + .short _022136B6 - _02213660 - 2 ; case 0 + .short _02213684 - _02213660 - 2 ; case 1 + .short _0221368A - _02213660 - 2 ; case 2 + .short _0221368A - _02213660 - 2 ; case 3 + .short _0221368A - _02213660 - 2 ; case 4 + .short _0221368A - _02213660 - 2 ; case 5 + .short _0221368A - _02213660 - 2 ; case 6 + .short _0221368A - _02213660 - 2 ; case 7 + .short _022136A8 - _02213660 - 2 ; case 8 + .short _02213690 - _02213660 - 2 ; case 9 + .short _02213694 - _02213660 - 2 ; case 10 + .short _02213698 - _02213660 - 2 ; case 11 + .short _0221369C - _02213660 - 2 ; case 12 + .short _022136A0 - _02213660 - 2 ; case 13 + .short _022136A4 - _02213660 - 2 ; case 14 + .short _022136AE - _02213660 - 2 ; case 15 + .short _022136B2 - _02213660 - 2 ; case 16 + .short _022136B6 - _02213660 - 2 ; case 17 +_02213684: + mov r1, #0x1a + ldr r6, _02213754 ; =0x00020E00 + b _022136B8 +_0221368A: + mov r1, #0x17 + ldr r6, _02213754 ; =0x00020E00 + b _022136B8 +_02213690: + mov r1, #0x3b + b _022136B8 +_02213694: + mov r1, #0x3c + b _022136B8 +_02213698: + mov r1, #0x3a + b _022136B8 +_0221369C: + mov r1, #0x3e + b _022136B8 +_022136A0: + mov r1, #0x3f + b _022136B8 +_022136A4: + mov r1, #0x3d + b _022136B8 +_022136A8: + mov r1, #0x19 + ldr r6, _02213754 ; =0x00020E00 + b _022136B8 +_022136AE: + mov r1, #0x18 + b _022136B8 +_022136B2: + mov r1, #0x2d + b _022136B8 +_022136B6: + mov r1, #0x37 +_022136B8: + cmp r1, #0 + beq _02213706 + add r0, r4, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r4, r2] + bl FUN_0200A8E0 + mov r1, #0x56 + lsl r1, r1, #2 + mov r0, #0 + ldr r1, [r4, r1] + add r2, r0, #0 + bl FUN_02002E14 + mov ip, r0 + mov r0, #0xdf + lsl r0, r0, #2 + str r7, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r6, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + add r2, #0x59 + ldr r2, [r4, r2] + mov r6, #0xa4 + mov r3, ip + add r0, r4, r0 + sub r3, r6, r3 + bl FUN_0201BDE0 + mov r0, #0xdf + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019220 +_02213706: + ldr r0, [r4] + add r1, r5, #0 + mov r2, #8 + bl FUN_0202822C + ldr r1, _02213750 ; =0x00010200 + cmp r0, #0 + bne _0221371A + ldr r1, _02213758 ; =0x00050600 + b _02213722 +_0221371A: + cmp r0, #1 + bne _02213722 + mov r1, #0xc1 + lsl r1, r1, #0xa +_02213722: + str r7, [sp] + mov r0, #0xff + str r0, [sp, #4] + lsl r2, r5, #2 + str r1, [sp, #8] + mov r1, #0 + add r2, r4, r2 + mov r0, #0xdf + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0xd4 + ldr r2, [r2] + add r0, r4, r0 + mov r3, #8 + bl FUN_0201BDE0 + mov r0, #0xdf + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019220 +_0221374C: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02213750: .word 0x00010200 +_02213754: .word 0x00020E00 +_02213758: .word 0x00050600 + thumb_func_end MOD56_02213624 + + thumb_func_start MOD56_0221375C +MOD56_0221375C: ; 0x0221375C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x38 + add r4, r1, #0 + ldr r1, _0221389C ; =0x022162E0 + add r5, r3, #0 + ldrh r3, [r1, #0x10] + add r7, r2, #0 + add r2, sp, #0 + strh r3, [r2, #0x30] + ldrh r3, [r1, #0x12] + add r0, #0xc0 + strh r3, [r2, #0x32] + ldrh r3, [r1, #0x14] + strh r3, [r2, #0x34] + ldrh r3, [r1, #0x16] + strh r3, [r2, #0x36] + ldrh r3, [r1, #8] + strh r3, [r2, #0x28] + ldrh r3, [r1, #0xa] + strh r3, [r2, #0x2a] + ldrh r3, [r1, #0xc] + strh r3, [r2, #0x2c] + ldrh r3, [r1, #0xe] + strh r3, [r2, #0x2e] + ldrh r3, [r1, #0x38] + strh r3, [r2, #0x20] + ldrh r3, [r1, #0x3a] + strh r3, [r2, #0x22] + ldrh r3, [r1, #0x3c] + strh r3, [r2, #0x24] + ldrh r3, [r1, #0x3e] + strh r3, [r2, #0x26] + ldrh r3, [r1] + strh r3, [r2, #0x18] + ldrh r3, [r1, #2] + strh r3, [r2, #0x1a] + ldrh r3, [r1, #4] + strh r3, [r2, #0x1c] + ldrh r3, [r1, #6] + strh r3, [r2, #0x1e] + ldrh r3, [r1, #0x20] + strh r3, [r2, #0x10] + ldrh r3, [r1, #0x22] + strh r3, [r2, #0x12] + ldrh r3, [r1, #0x24] + strh r3, [r2, #0x14] + ldrh r1, [r1, #0x26] + strh r1, [r2, #0x16] + ldr r1, _022138A0 ; =0x02216320 + ldrh r3, [r1] + strh r3, [r2, #8] + ldrh r3, [r1, #2] + strh r3, [r2, #0xa] + ldrh r3, [r1, #4] + strh r3, [r2, #0xc] + ldrh r3, [r1, #6] + strh r3, [r2, #0xe] + ldrh r3, [r1, #8] + strh r3, [r2] + ldrh r3, [r1, #0xa] + strh r3, [r2, #2] + ldrh r3, [r1, #0xc] + strh r3, [r2, #4] + ldrh r1, [r1, #0xe] + strh r1, [r2, #6] + ldr r0, [r0] + mov r1, #0 + bl FUN_0201886C + add r1, r0, #0 + mov r2, #0 + cmp r4, #0x11 + bhi _0221383A + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022137FA: ; jump table + .short _0221383A - _022137FA - 2 ; case 0 + .short _0221381E - _022137FA - 2 ; case 1 + .short _02213826 - _022137FA - 2 ; case 2 + .short _02213826 - _022137FA - 2 ; case 3 + .short _02213826 - _022137FA - 2 ; case 4 + .short _02213826 - _022137FA - 2 ; case 5 + .short _02213826 - _022137FA - 2 ; case 6 + .short _02213826 - _022137FA - 2 ; case 7 + .short _0221382E - _022137FA - 2 ; case 8 + .short _02213822 - _022137FA - 2 ; case 9 + .short _02213822 - _022137FA - 2 ; case 10 + .short _02213822 - _022137FA - 2 ; case 11 + .short _02213822 - _022137FA - 2 ; case 12 + .short _02213822 - _022137FA - 2 ; case 13 + .short _02213822 - _022137FA - 2 ; case 14 + .short _0221382A - _022137FA - 2 ; case 15 + .short _02213832 - _022137FA - 2 ; case 16 + .short _02213836 - _022137FA - 2 ; case 17 +_0221381E: + add r0, sp, #0x18 + b _0221383C +_02213822: + mov r2, #1 + lsl r2, r2, #0xc +_02213826: + add r0, sp, #0x30 + b _0221383C +_0221382A: + mov r2, #1 + lsl r2, r2, #0xc +_0221382E: + add r0, sp, #0x28 + b _0221383C +_02213832: + add r0, sp, #0x20 + b _0221383C +_02213836: + add r0, sp, #8 + b _0221383C +_0221383A: + add r0, sp, #0 +_0221383C: + ldr r3, [sp, #0x50] + ldrh r4, [r0] + lsl r3, r3, #5 + add r5, r5, r3 + add r6, r4, r2 + lsl r4, r5, #1 + strh r6, [r1, r4] + ldrh r4, [r0, #2] + add r6, r5, #1 + lsl r6, r6, #1 + add r4, r4, r2 + strh r4, [r1, r6] + add r6, r5, #0 + ldrh r4, [r0, #4] + add r6, #0x20 + lsl r6, r6, #1 + add r4, r4, r2 + strh r4, [r1, r6] + ldrh r0, [r0, #6] + add r5, #0x21 + add r2, r0, r2 + lsl r0, r5, #1 + strh r2, [r1, r0] + cmp r7, #0 + beq _02213872 + add r2, sp, #0 + b _02213874 +_02213872: + add r2, sp, #0x10 +_02213874: + ldr r0, [sp, #0x54] + ldrh r4, [r2] + add r0, r0, r3 + lsl r3, r0, #1 + strh r4, [r1, r3] + add r3, r0, #1 + ldrh r4, [r2, #2] + lsl r3, r3, #1 + strh r4, [r1, r3] + add r3, r0, #0 + add r3, #0x20 + add r0, #0x21 + ldrh r4, [r2, #4] + lsl r3, r3, #1 + lsl r0, r0, #1 + strh r4, [r1, r3] + ldrh r2, [r2, #6] + strh r2, [r1, r0] + add sp, #0x38 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0221389C: .word 0x022162E0 +_022138A0: .word 0x02216320 + thumb_func_end MOD56_0221375C + + thumb_func_start MOD56_022138A4 +MOD56_022138A4: ; 0x022138A4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + add r0, #0xc0 + add r7, r1, #0 + ldr r0, [r0] + mov r1, #0 + bl FUN_0201886C + mov r6, #0 + mov r4, #5 +_022138BA: + add r0, r7, r6 + cmp r0, #0x20 + blt _022138C6 + mov r1, #0 + mov r2, #1 + b _022138E2 +_022138C6: + add r0, r5, r0 + ldrb r1, [r0, #0xc] + cmp r1, #0 + bne _022138D4 + mov r1, #0 + mov r2, #1 + b _022138E2 +_022138D4: + mov r2, #0x24 + ldr r0, [r5, #4] + mul r2, r1 + add r0, r0, r2 + ldrb r1, [r0, #0x1b] + add r0, #0x21 + ldrb r2, [r0] +_022138E2: + str r4, [sp] + mov r0, #0x1b + str r0, [sp, #4] + add r0, r5, #0 + mov r3, #3 + bl MOD56_0221375C + add r6, r6, #1 + add r4, r4, #3 + cmp r6, #5 + blt _022138BA + ldr r0, [r5, #4] + ldrb r1, [r0, #0x1b] + add r0, #0x21 + ldrb r2, [r0] + cmp r1, #1 + bne _02213906 + mov r1, #0 +_02213906: + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + add r0, r5, #0 + mov r3, #3 + bl MOD56_0221375C + add r5, #0xc0 + ldr r0, [r5] + mov r1, #0 + bl FUN_02017CD0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD56_022138A4 + + thumb_func_start MOD56_02213924 +MOD56_02213924: ; 0x02213924 + push {r3, lr} + cmp r2, #0 + bne _02213930 + ldr r0, _02213934 ; =0x000005DC + bl FUN_020054C8 +_02213930: + pop {r3, pc} + nop +_02213934: .word 0x000005DC + thumb_func_end MOD56_02213924 + + thumb_func_start MOD56_02213938 +MOD56_02213938: ; 0x02213938 + push {r3, r4, r5, r6, r7, lr} + mov r6, #0 + mov r7, #0x5d + add r5, r0, #0 + add r4, r6, #0 + lsl r7, r7, #2 +_02213944: + add r0, r5, r4 + ldrb r2, [r0, #0xc] + cmp r2, #0 + beq _0221395C + add r0, r5, #0 + add r0, #0xb0 + ldr r0, [r0] + ldr r1, [r5, r7] + sub r2, r2, #1 + bl FUN_020128A0 + add r6, r6, #1 +_0221395C: + add r4, r4, #1 + cmp r4, #0x20 + blt _02213944 + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xb0 + add r1, #0xcc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x1b + mov r3, #0x20 + bl FUN_02012880 + add r0, r5, #0 + add r0, #0xb0 + add r5, #0xcc + mov r2, #0x2e + add r3, r2, #0 + ldr r0, [r0] + ldr r1, [r5] + sub r3, #0x30 + bl FUN_02012880 + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD56_02213938 + + thumb_func_start MOD56_02213990 +MOD56_02213990: ; 0x02213990 + push {r3, r4, r5, r6, lr} + sub sp, #0x34 + add r5, r0, #0 + mov r0, #0x22 + mov r1, #0x36 + bl FUN_02012838 + add r1, r5, #0 + add r1, #0xb0 + str r0, [r1] + add r0, r5, #0 + bl MOD56_02213938 + add r4, r0, #0 + mov r0, #0xdf + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _022139D0 + mov r0, #0xdf + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xdf + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_022139D0: + mov r0, #5 + str r0, [sp] + mov r0, #0x15 + str r0, [sp, #4] + mov r0, #0xe + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #0x10] + add r0, r5, #0 + add r0, #0xc0 + mov r1, #0xdf + lsl r1, r1, #2 + ldr r0, [r0] + add r1, r5, r1 + mov r2, #3 + mov r3, #6 + bl FUN_02019064 + ldr r6, _02213A3C ; =0x022163F4 + add r3, sp, #0x14 + add r2, r3, #0 + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r5, #0 + add r0, #0xb0 + ldr r0, [r0] + add r1, r4, #2 + str r0, [sp, #0x14] + mov r0, #0xdf + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [sp, #0x20] + add r0, sp, #0x14 + strh r1, [r0, #0x10] + mov r1, #0 + add r0, r2, #0 + add r2, r1, #0 + mov r3, #0x36 + str r5, [sp, #0x30] + bl FUN_020010A8 + add r5, #0xb4 + str r0, [r5] + add sp, #0x34 + pop {r3, r4, r5, r6, pc} + nop +_02213A3C: .word 0x022163F4 + thumb_func_end MOD56_02213990 + + thumb_func_start MOD56_02213A40 +MOD56_02213A40: ; 0x02213A40 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0xd3 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02213A6A + mov r0, #0xd3 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xd3 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_02213A6A: + mov r0, #0x15 + str r0, [sp] + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r0, #5 + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xc0 + mov r1, #0xd3 + lsl r1, r1, #2 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #3 + mov r3, #7 + bl FUN_02019064 + add sp, #0x14 + pop {r3, r4, pc} + thumb_func_end MOD56_02213A40 + + thumb_func_start MOD56_02213A94 +MOD56_02213A94: ; 0x02213A94 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + add r4, r1, #0 + bl MOD56_02216248 + add r0, r5, #0 + bl MOD56_02216274 + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + mov r1, #3 + bl FUN_02018744 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + add r2, r5, #0 + str r3, [sp, #8] + mov r0, #0x36 + str r0, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + mov r0, #0x5c + mov r1, #5 + bl FUN_020068C8 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02213AF0 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_02213AF0: + add r0, r5, #0 + add r0, #0xb0 + ldr r0, [r0] + cmp r0, #0 + beq _02213B2C + mov r0, #0xdf + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 + add r0, r5, #0 + add r0, #0xb4 + mov r1, #0 + ldr r0, [r0] + add r2, r1, #0 + bl FUN_02001300 + add r0, r5, #0 + mov r1, #0 + add r0, #0xb4 + str r1, [r0] + add r0, r5, #0 + add r0, #0xb0 + ldr r0, [r0] + bl FUN_02012870 + add r0, r5, #0 + mov r1, #0 + add r0, #0xb0 + str r1, [r0] +_02213B2C: + mov r0, #1 + str r0, [sp] + mov r0, #0x15 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _02213BEC ; =0x000001CA + mov r1, #0xd7 + str r0, [sp, #0x10] + add r0, r5, #0 + add r0, #0xc0 + lsl r1, r1, #2 + ldr r0, [r0] + add r1, r5, r1 + mov r2, #3 + mov r3, #4 + bl FUN_02019064 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + add r0, r5, #0 + mov r2, #0x16 + add r0, #0xcc + lsl r2, r2, #4 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x12 + bl FUN_0200A8E0 + mov r3, #0 + str r3, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02213BF0 ; =0x000F0E00 + add r2, #0x61 + str r0, [sp, #8] + str r3, [sp, #0xc] + mov r0, #0xd7 + lsl r0, r0, #2 + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BDE0 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + add r0, r5, #0 + bl MOD56_02216120 + add r0, r5, #0 + bl MOD56_02212EFC + add r0, r5, #0 + bl MOD56_02213990 + add r0, r5, #0 + bl MOD56_02213A40 + add r0, r5, #0 + mov r1, #0 + bl MOD56_022138A4 + add r0, r5, #0 + mov r1, #0x10 + bl MOD56_0221617C + mov r1, #0 + mov r0, #0xf6 + mvn r1, r1 + lsl r0, r0, #2 + str r1, [r5, r0] + bl MOD04_021D865C + mov r0, #0x33 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + add sp, #0x14 + pop {r4, r5, pc} + nop +_02213BEC: .word 0x000001CA +_02213BF0: .word 0x000F0E00 + thumb_func_end MOD56_02213A94 + + thumb_func_start MOD56_02213BF4 +MOD56_02213BF4: ; 0x02213BF4 + push {r3, lr} + bl FUN_0203300C + cmp r0, #1 + bne _02213C02 + mov r0, #1 + pop {r3, pc} +_02213C02: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD56_02213BF4 + + thumb_func_start MOD56_02213C08 +MOD56_02213C08: ; 0x02213C08 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + bl MOD56_02212EFC + add r4, r0, #0 + add r0, r5, #0 + bl MOD56_02212F28 + ldr r1, [r5, #8] + cmp r1, r4 + bne _02213C24 + cmp r0, #0 + beq _02213CA8 +_02213C24: + add r0, r5, #0 + add r0, #0xb0 + ldr r0, [r0] + bl FUN_0201291C + add r0, r5, #0 + add r0, #0xb4 + ldr r0, [r0] + mov r1, #2 + add r2, r4, #2 + bl FUN_02001538 + cmp r4, #3 + ble _02213C50 + add r0, r5, #0 + add r0, #0xb4 + ldr r0, [r0] + mov r1, #3 + mov r2, #5 + bl FUN_02001538 + b _02213C5E +_02213C50: + add r0, r5, #0 + add r0, #0xb4 + ldr r0, [r0] + mov r1, #3 + add r2, r4, #2 + bl FUN_02001538 +_02213C5E: + add r0, r5, #0 + bl MOD56_02213938 + add r0, r5, #0 + add r0, #0xb4 + add r1, sp, #0xc + ldr r0, [r0] + add r1, #2 + add r2, sp, #0xc + bl FUN_02001448 + cmp r4, #3 + blt _02213C84 + add r0, sp, #0xc + ldrh r1, [r0, #2] + sub r2, r4, #3 + cmp r2, r1 + bgt _02213C84 + strh r2, [r0, #2] +_02213C84: + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + add r0, r5, #0 + str r1, [sp, #8] + add r3, sp, #0xc + add r0, #0xb4 + ldrh r2, [r3, #2] + ldrh r3, [r3] + ldr r0, [r0] + bl FUN_020013C8 + add r0, r5, #0 + add r0, #0xb4 + ldr r0, [r0] + bl FUN_02001328 + str r4, [r5, #8] +_02213CA8: + add r0, r5, #0 + add r0, #0xb4 + add r1, sp, #0xc + ldr r0, [r0] + add r1, #2 + add r2, sp, #0xc + bl FUN_02001448 + add r0, sp, #0xc + ldr r1, [r5, #8] + ldrh r3, [r0] + ldrh r2, [r0, #2] + add r1, r1, #2 + add r4, r2, r3 + cmp r1, r4 + bgt _02213D0C + cmp r1, r4 + bgt _02213CF0 +_02213CCC: + cmp r2, #0 + beq _02213CD8 + ldrh r1, [r0, #2] + sub r1, r1, #1 + strh r1, [r0, #2] + b _02213CE2 +_02213CD8: + cmp r3, #0 + beq _02213CE2 + ldrh r1, [r0] + sub r1, r1, #1 + strh r1, [r0] +_02213CE2: + ldrh r3, [r0] + ldr r1, [r5, #8] + ldrh r2, [r0, #2] + add r4, r1, #2 + add r1, r2, r3 + cmp r4, r1 + ble _02213CCC +_02213CF0: + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + add r0, r5, #0 + str r1, [sp, #8] + add r0, #0xb4 + ldr r0, [r0] + bl FUN_020013C8 + add r0, r5, #0 + add r0, #0xb4 + ldr r0, [r0] + bl FUN_02001328 +_02213D0C: + add r1, sp, #0xc + ldrh r1, [r1, #2] + add r0, r5, #0 + bl MOD56_022138A4 + add r2, sp, #0xc + ldrh r3, [r2] + mov r0, #0x33 + lsl r0, r0, #4 + lsl r2, r3, #1 + add r2, r3, r2 + add r2, r2, #6 + ldr r0, [r5, r0] + mov r1, #0x10 + lsl r2, r2, #3 + bl MOD56_02214470 + add r0, sp, #0xc + ldrh r0, [r0, #2] + cmp r0, #0 + beq _02213D52 + mov r0, #0xca + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x20 + bl MOD56_02214470 + mov r0, #0xca + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + b _02213D5E +_02213D52: + mov r0, #0xca + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 +_02213D5E: + add r0, sp, #0xc + ldrh r1, [r0, #2] + ldr r0, [r5, #8] + sub r0, r0, #3 + cmp r1, r0 + bge _02213D88 + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x9c + bl MOD56_02214470 + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + add sp, #0x10 + pop {r3, r4, r5, pc} +_02213D88: + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD56_02213C08 + + thumb_func_start MOD56_02213D98 +MOD56_02213D98: ; 0x02213D98 + push {r4, r5, r6, lr} + mov r6, #0 + mvn r6, r6 + add r5, r0, #0 + add r4, r1, #0 + bl MOD56_02213C08 + bl MOD04_021D8640 + add r1, r6, #0 + cmp r0, r1 + bne _02213DEE + ldr r0, _02213F84 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + lsl r0, r0, #0xa + tst r0, r1 + beq _02213DEE + add r0, r5, #0 + bl MOD56_0221620C + cmp r0, #0 + beq _02213DD2 + add r0, r5, #0 + mov r1, #0x35 + mov r2, #0 + bl MOD56_02215EA4 + b _02213DDC +_02213DD2: + add r0, r5, #0 + mov r1, #0x36 + mov r2, #0 + bl MOD56_02215EA4 +_02213DDC: + ldr r0, _02213F88 ; =0x000005DD + bl FUN_020054C8 + mov r0, #0x3b + mov r1, #0x14 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + pop {r4, r5, r6, pc} +_02213DEE: + bl FUN_02033250 + cmp r0, #0 + beq _02213E00 + add r0, r5, #0 + bl MOD56_02213030 + add r0, r4, #0 + pop {r4, r5, r6, pc} +_02213E00: + add r0, r5, #0 + bl MOD56_02213BF4 + cmp r0, #0 + beq _02213E1C + ldr r0, _02213F8C ; =0x00000624 + bl FUN_020054C8 + mov r0, #0x3b + mov r1, #0x2f + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + pop {r4, r5, r6, pc} +_02213E1C: + mov r0, #0xf6 + lsl r0, r0, #2 + ldr r1, [r5, r0] + mov r0, #0 + mvn r0, r0 + cmp r1, r0 + bne _02213E5C + bl MOD04_021D8640 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02213E5C + bl MOD04_021D8640 + mov r1, #0xf6 + lsl r1, r1, #2 + str r0, [r5, r1] + ldr r1, [r5, r1] + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0x2a + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0xeb + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + b _02213ECE +_02213E5C: + mov r0, #0xf6 + lsl r0, r0, #2 + ldr r1, [r5, r0] + mov r0, #0 + mvn r0, r0 + cmp r1, r0 + beq _02213ECE + bl MOD04_021D8640 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _02213ECE + mov r0, #0xdf + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 + add r0, r5, #0 + add r0, #0xb4 + mov r1, #0 + ldr r0, [r0] + add r2, r1, #0 + bl FUN_02001300 + add r0, r5, #0 + mov r1, #0 + add r0, #0xb4 + str r1, [r0] + add r0, r5, #0 + add r0, #0xb0 + ldr r0, [r0] + bl FUN_02012870 + add r0, r5, #0 + mov r1, #0 + add r0, #0xb0 + str r1, [r0] + mov r1, #0xf6 + lsl r1, r1, #2 + ldr r1, [r5, r1] + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xe + mov r2, #0 + bl MOD56_02215EA4 + bl FUN_020331E8 + mov r0, #0x3b + mov r1, #0x1b + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + pop {r4, r5, r6, pc} +_02213ECE: + mov r0, #0xf6 + lsl r0, r0, #2 + ldr r1, [r5, r0] + mov r0, #0 + mvn r0, r0 + cmp r1, r0 + bne _02213EE8 + add r0, r5, #0 + add r0, #0xb4 + ldr r0, [r0] + bl FUN_02001204 + add r6, r0, #0 +_02213EE8: + mov r0, #1 + mvn r0, r0 + cmp r6, r0 + beq _02213EFA + add r0, r0, #1 + cmp r6, r0 + bne _02213F32 + add r0, r4, #0 + pop {r4, r5, r6, pc} +_02213EFA: + ldr r0, _02213F88 ; =0x000005DD + bl FUN_020054C8 + ldr r0, [r5, #4] + ldrb r0, [r0, #0x1b] + bl MOD56_02211E88 + cmp r0, #0 + beq _02213F16 + mov r0, #0x3b + mov r1, #0x27 + lsl r0, r0, #4 + str r1, [r5, r0] + b _02213F2E +_02213F16: + mov r0, #0xed + mov r1, #8 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x38 + sub r0, r0, #4 + str r1, [r5, r0] + add r0, r5, #0 + mov r1, #0x18 + mov r2, #1 + bl MOD56_02215EA4 +_02213F2E: + add r0, r4, #0 + pop {r4, r5, r6, pc} +_02213F32: + ldr r0, _02213F88 ; =0x000005DD + bl FUN_020054C8 + ldr r0, [r5, #4] + ldrb r0, [r0, #0x1b] + bl MOD56_02211E88 + cmp r0, #0 + beq _02213F4E + mov r0, #0x3b + mov r1, #0x27 + lsl r0, r0, #4 + str r1, [r5, r0] + b _02213F7E +_02213F4E: + cmp r6, #0x20 + bne _02213F76 + ldr r0, [r5, #4] + ldrb r0, [r0, #0x1b] + cmp r0, #0x10 + bne _02213F64 + mov r0, #0x3b + mov r1, #0x24 + lsl r0, r0, #4 + str r1, [r5, r0] + b _02213F7E +_02213F64: + bl MOD56_02211E88 + cmp r0, #0 + beq _02213F7E + mov r0, #0x3b + mov r1, #0x27 + lsl r0, r0, #4 + str r1, [r5, r0] + b _02213F7E +_02213F76: + mov r0, #0x3b + mov r1, #0x2a + lsl r0, r0, #4 + str r1, [r5, r0] +_02213F7E: + add r0, r4, #0 + pop {r4, r5, r6, pc} + nop +_02213F84: .word 0x021C48B8 +_02213F88: .word 0x000005DD +_02213F8C: .word 0x00000624 + thumb_func_end MOD56_02213D98 + + thumb_func_start MOD56_02213F90 +MOD56_02213F90: ; 0x02213F90 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD56_02213BF4 + cmp r0, #0 + beq _02213FA8 + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 + str r1, [r5, r0] + b _02213FC8 +_02213FA8: + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02213FC8 + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD56_02216120 +_02213FC8: + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD56_02213F90 + + thumb_func_start MOD56_02213FCC +MOD56_02213FCC: ; 0x02213FCC + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r1, _022140A0 ; =0x021C48B8 + add r5, r0, #0 + ldr r2, [r1, #0x48] + mov r1, #2 + tst r1, r2 + beq _02213FEE + mov r1, #0x43 + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x41 + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221407C +_02213FEE: + bl FUN_0203300C + cmp r0, #5 + bne _02214016 + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xb + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1b + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221407C +_02214016: + bl FUN_0203300C + cmp r0, #3 + bne _0221403E + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xe + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1b + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221407C +_0221403E: + bl FUN_0203300C + cmp r0, #4 + beq _0221404E + bl FUN_02033128 + cmp r0, #0 + beq _0221406E +_0221404E: + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xf + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1b + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221407C +_0221406E: + bl FUN_02033250 + cmp r0, #0 + beq _0221407C + add r0, r5, #0 + bl MOD56_02213030 +_0221407C: + bl FUN_0203300C + cmp r0, #1 + bne _0221409A + add r0, r5, #0 + bl MOD56_02216274 + add r0, r5, #0 + mov r1, #1 + bl MOD56_0221617C + mov r0, #0x3b + mov r1, #0x18 + lsl r0, r0, #4 + str r1, [r5, r0] +_0221409A: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_022140A0: .word 0x021C48B8 + thumb_func_end MOD56_02213FCC + + thumb_func_start MOD56_022140A4 +MOD56_022140A4: ; 0x022140A4 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0203300C + cmp r0, #1 + bne _022140D8 + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xa + mov r2, #0 + bl MOD56_02215EA4 + add r0, r5, #0 + mov r1, #1 + bl MOD56_0221617C + mov r0, #0x3b + mov r1, #0x17 + lsl r0, r0, #4 + str r1, [r5, r0] +_022140D8: + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD56_022140A4 + + thumb_func_start MOD56_022140DC +MOD56_022140DC: ; 0x022140DC + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02214116 + ldr r0, _0221411C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _0221410E + add r0, r5, #0 + bl MOD56_02216120 + mov r0, #0x3b + mov r1, #0x18 + lsl r0, r0, #4 + str r1, [r5, r0] + b _02214116 +_0221410E: + add r0, r5, #0 + add r1, r4, #0 + bl MOD56_02214120 +_02214116: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_0221411C: .word 0x021C48B8 + thumb_func_end MOD56_022140DC + + thumb_func_start MOD56_02214120 +MOD56_02214120: ; 0x02214120 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD56_02213C08 + mov r0, #0xce + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0xcd + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + bl FUN_0203300C + cmp r0, #5 + bne _0221416A + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xb + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1b + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221422E +_0221416A: + bl FUN_0203300C + cmp r0, #3 + bne _02214192 + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xe + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1b + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221422E +_02214192: + bl FUN_0203300C + cmp r0, #4 + beq _022141A2 + bl FUN_02033128 + cmp r0, #0 + beq _022141C2 +_022141A2: + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xf + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1b + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221422E +_022141C2: + bl FUN_02033250 + cmp r0, #0 + beq _022141D2 + add r0, r5, #0 + bl MOD56_02213030 + b _0221422E +_022141D2: + ldr r0, _02214234 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _022141F0 + add r0, r5, #0 + mov r1, #0x10 + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x19 + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221422E +_022141F0: + bl MOD04_021D861C + cmp r0, #0 + beq _02214214 + mov r0, #0xce + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x20 + mov r2, #0xb0 + bl MOD56_02214470 + mov r0, #0xce + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + b _0221422E +_02214214: + mov r0, #0xcd + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x20 + mov r2, #0xb0 + bl MOD56_02214470 + mov r0, #0xcd + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 +_0221422E: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02214234: .word 0x021C48B8 + thumb_func_end MOD56_02214120 + + thumb_func_start MOD56_02214238 +MOD56_02214238: ; 0x02214238 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0221427E + bl MOD04_021D853C + add r1, r0, #0 + ldr r0, [r5] + bl FUN_020285D0 + mov r0, #0x36 + str r0, [sp] + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r1, _02214284 ; =0x02216308 + ldr r2, _02214288 ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x3b + mov r1, #0x1a + lsl r0, r0, #4 + str r1, [r5, r0] +_0221427E: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02214284: .word 0x02216308 +_02214288: .word 0x000001D9 + thumb_func_end MOD56_02214238 + + thumb_func_start MOD56_0221428C +MOD56_0221428C: ; 0x0221428C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + add r4, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _022142F0 + bl FUN_0203300C + cmp r0, #4 + bge _022142C0 + bl FUN_02033128 + cmp r0, #0 + bne _022142C0 + mov r0, #0 + bl FUN_02030E7C + cmp r0, #0 + bne _022142EC +_022142C0: + add r0, r5, #0 + mov r1, #0x10 + bl MOD56_0221617C + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021EC + mov r0, #0 + mov r1, #0xf6 + mvn r0, r0 + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + mov r2, #0x14 + sub r0, #0x14 + str r2, [r5, r0] + mov r0, #0x40 + sub r1, #0x28 + str r0, [r5, r1] +_022142EC: + add r0, r4, #0 + pop {r3, r4, r5, pc} +_022142F0: + cmp r0, #0 + bne _0221431A + add r0, r5, #0 + mov r1, #0x10 + bl MOD56_0221617C + bl FUN_0203323C + mov r0, #0 + mov r1, #0xf6 + mvn r0, r0 + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + mov r2, #0x14 + sub r0, #0x14 + str r2, [r5, r0] + mov r0, #0x40 + sub r1, #0x28 + str r0, [r5, r1] + b _02214322 +_0221431A: + mov r0, #0x3b + mov r1, #0x18 + lsl r0, r0, #4 + str r1, [r5, r0] +_02214322: + add r0, r5, #0 + bl MOD56_02216120 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD56_0221428C + + thumb_func_start MOD56_0221432C +MOD56_0221432C: ; 0x0221432C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + ldr r1, [r5, #4] + ldrb r1, [r1, #0x1b] + cmp r1, #0x10 + beq _02214340 + mov r1, #0x10 + bl MOD56_0221617C +_02214340: + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _0221435E + mov r0, #0xf1 + mov r1, #0x1e + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r4, #0 + pop {r3, r4, r5, pc} +_0221435E: + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r1, [r5, r0] + sub r1, r1, #1 + str r1, [r5, r0] + ldr r1, _022143B0 ; =0x021C48B8 + ldr r2, [r1, #0x48] + mov r1, #3 + tst r1, r2 + bne _02214378 + ldr r0, [r5, r0] + cmp r0, #0 + bne _022143AC +_02214378: + add r0, r5, #0 + bl MOD56_02216120 + bl FUN_020331E8 + add r0, r5, #0 + add r0, #0xb0 + ldr r0, [r0] + cmp r0, #0 + bne _0221439C + mov r0, #0xf1 + mov r1, #0x14 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x40 + sub r0, #0x14 + str r1, [r5, r0] + b _022143AC +_0221439C: + mov r1, #0 + mov r0, #0xf6 + mvn r1, r1 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x13 + sub r0, #0x28 + str r1, [r5, r0] +_022143AC: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022143B0: .word 0x021C48B8 + thumb_func_end MOD56_0221432C + + thumb_func_start MOD56_022143B4 +MOD56_022143B4: ; 0x022143B4 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _022143D0 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_022143D0: + ldr r0, _02214400 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _022143FA + add r0, r5, #0 + bl MOD56_02216120 + add r0, r5, #0 + mov r1, #0x10 + bl MOD56_0221617C + bl FUN_020331E8 + mov r0, #0xf1 + mov r1, #0x14 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x40 + sub r0, #0x14 + str r1, [r5, r0] +_022143FA: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02214400: .word 0x021C48B8 + thumb_func_end MOD56_022143B4 + + thumb_func_start MOD56_02214404 +MOD56_02214404: ; 0x02214404 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _02214420 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_02214420: + ldr r0, _02214460 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _0221445C + add r0, r5, #0 + bl MOD56_02216120 + add r0, r5, #0 + mov r1, #0x10 + bl MOD56_0221617C + add r0, r5, #0 + add r0, #0xb0 + ldr r0, [r0] + cmp r0, #0 + bne _0221444C + mov r0, #0x3b + mov r1, #0x12 + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221445C +_0221444C: + mov r1, #0 + mov r0, #0xf6 + mvn r1, r1 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x13 + sub r0, #0x28 + str r1, [r5, r0] +_0221445C: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02214460: .word 0x021C48B8 + thumb_func_end MOD56_02214404 + + thumb_func_start MOD56_02214464 +MOD56_02214464: ; 0x02214464 + add r0, r1, #0 + bx lr + thumb_func_end MOD56_02214464 + + thumb_func_start MOD56_02214468 +MOD56_02214468: ; 0x02214468 + add r0, r1, #0 + bx lr + thumb_func_end MOD56_02214468 + + thumb_func_start MOD56_0221446C +MOD56_0221446C: ; 0x0221446C + add r0, r1, #0 + bx lr + thumb_func_end MOD56_0221446C + + thumb_func_start MOD56_02214470 +MOD56_02214470: ; 0x02214470 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + add r5, r2, #0 + cmp r1, #0 + ble _0221448E + lsl r0, r1, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _0221449C +_0221448E: + lsl r0, r1, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_0221449C: + bl _ffix + str r0, [sp] + cmp r5, #0 + ble _022144B8 + lsl r0, r5, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _022144C6 +_022144B8: + lsl r0, r5, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_022144C6: + bl _ffix + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, sp, #0 + bl FUN_02020044 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD56_02214470 + + thumb_func_start MOD56_022144DC +MOD56_022144DC: ; 0x022144DC + push {r4, lr} + add r4, r1, #0 + ldr r1, _02214500 ; =0x021C48B8 + ldr r2, [r1, #0x48] + mov r1, #3 + tst r1, r2 + beq _022144FC + mov r1, #0xed + mov r2, #8 + lsl r1, r1, #2 + str r2, [r0, r1] + mov r2, #0x22 + sub r1, r1, #4 + str r2, [r0, r1] + bl FUN_020331C4 +_022144FC: + add r0, r4, #0 + pop {r4, pc} + .align 2, 0 +_02214500: .word 0x021C48B8 + thumb_func_end MOD56_022144DC + + thumb_func_start MOD56_02214504 +MOD56_02214504: ; 0x02214504 + push {r3, r4, r5, lr} + add r4, r1, #0 + mov r1, #6 + mov r2, #0 + add r5, r0, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x28 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD56_02214504 + + thumb_func_start MOD56_02214520 +MOD56_02214520: ; 0x02214520 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0221455A + mov r0, #0x36 + str r0, [sp] + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r1, _02214560 ; =0x02216308 + ldr r2, _02214564 ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x3b + mov r1, #0x29 + lsl r0, r0, #4 + str r1, [r5, r0] +_0221455A: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02214560: .word 0x02216308 +_02214564: .word 0x000001D9 + thumb_func_end MOD56_02214520 + + thumb_func_start MOD56_02214568 +MOD56_02214568: ; 0x02214568 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + add r6, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021AC + add r4, r0, #0 + mov r0, #0xf6 + lsl r0, r0, #2 + ldr r1, [r5, r0] + mov r0, #0 + mvn r0, r0 + cmp r1, r0 + bne _022145A8 + bl MOD04_021D8640 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _022145A8 + cmp r4, r1 + bne _022145A6 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021EC +_022145A6: + mov r4, #1 +_022145A8: + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _022145B4 + add r0, r6, #0 + pop {r4, r5, r6, pc} +_022145B4: + cmp r4, #0 + bne _022145C0 + add r0, r5, #0 + mov r1, #0x10 + bl MOD56_0221617C +_022145C0: + add r0, r5, #0 + bl MOD56_02216120 + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD56_02214568 + + thumb_func_start MOD56_022145D4 +MOD56_022145D4: ; 0x022145D4 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + ldr r3, _022146C0 ; =0x02216414 + add r2, sp, #0x14 + add r5, r0, #0 + add r7, r1, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + mov r0, #4 + mov r1, #0x36 + bl FUN_02012838 + add r1, r5, #0 + add r1, #0xb8 + ldr r4, _022146C4 ; =0x02216480 + str r0, [r1] + mov r6, #0 +_02214602: + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xb8 + add r1, #0xcc + ldr r0, [r0] + ldr r1, [r1] + ldr r2, [r4] + ldr r3, [r4, #4] + bl FUN_02012880 + add r6, r6, #1 + add r4, #8 + cmp r6, #4 + blt _02214602 + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02214642 + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_02214642: + mov r0, #9 + str r0, [sp] + mov r0, #0xf + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x33 + str r0, [sp, #0x10] + add r0, r5, #0 + add r0, #0xc0 + mov r1, #0xe3 + lsl r1, r1, #2 + ldr r0, [r0] + add r1, r5, r1 + mov r2, #2 + mov r3, #0x10 + bl FUN_02019064 + mov r0, #0xe3 + lsl r0, r0, #2 + ldr r2, _022146C8 ; =0x000001D9 + add r0, r5, r0 + mov r1, #1 + mov r3, #0xb + bl FUN_0200CCA4 + add r0, r5, #0 + add r0, #0xb8 + ldr r0, [r0] + mov r2, #0xe3 + lsl r2, r2, #2 + str r0, [sp, #0x14] + add r0, r5, r2 + str r0, [sp, #0x20] + add r2, #0x50 + ldrh r2, [r5, r2] + add r0, sp, #0x14 + mov r1, #0 + mov r3, #0x36 + bl FUN_020010A8 + add r1, r5, #0 + add r1, #0xbc + str r0, [r1] + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + add r0, r5, #0 + mov r1, #5 + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x25 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r7, #0 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_022146C0: .word 0x02216414 +_022146C4: .word 0x02216480 +_022146C8: .word 0x000001D9 + thumb_func_end MOD56_022145D4 + + thumb_func_start MOD56_022146CC +MOD56_022146CC: ; 0x022146CC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + bl MOD56_02211F88 + add r7, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _022146EE + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} +_022146EE: + add r0, r5, #0 + add r0, #0xbc + ldr r0, [r0] + bl FUN_02001204 + add r4, r0, #0 + add r0, r5, #0 + bl MOD56_02213BF4 + cmp r0, #0 + beq _02214708 + mov r4, #1 + mvn r4, r4 +_02214708: + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _0221471A + add r0, r0, #1 + cmp r4, r0 + bne _02214730 + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} +_0221471A: + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD56_02216120 + ldr r0, _02214804 ; =0x000005DD + bl FUN_020054C8 + b _022147CE +_02214730: + ldr r0, _02214804 ; =0x000005DD + bl FUN_020054C8 + cmp r4, #0xf + bne _02214752 + cmp r7, #2 + bge _02214752 + add r0, r5, #0 + mov r1, #0x34 + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1d + lsl r0, r0, #4 + str r1, [r5, r0] + b _022147CE +_02214752: + cmp r4, #1 + bne _0221476E + cmp r7, #2 + bge _0221476E + add r0, r5, #0 + mov r1, #0x42 + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1d + lsl r0, r0, #4 + str r1, [r5, r0] + b _022147CE +_0221476E: + cmp r4, #1 + bhi _022147B8 + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 + add r0, r5, #0 + add r0, #0xbc + mov r2, #0xf7 + lsl r2, r2, #2 + ldr r0, [r0] + mov r1, #0 + add r2, r5, r2 + bl FUN_02001300 + add r0, r5, #0 + add r0, #0xb8 + ldr r0, [r0] + bl FUN_02012870 + add r0, r5, #0 + add r1, r4, #0 + bl MOD56_02214808 + mov r0, #0x3b + mov r1, #0x26 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} +_022147B8: + add r0, r5, #0 + add r1, r4, #0 + bl MOD56_0221617C + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD56_02216120 +_022147CE: + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 + add r0, r5, #0 + add r0, #0xbc + mov r2, #0xf7 + lsl r2, r2, #2 + ldr r0, [r0] + mov r1, #0 + add r2, r5, r2 + bl FUN_02001300 + add r5, #0xb8 + ldr r0, [r5] + bl FUN_02012870 + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02214804: .word 0x000005DD + thumb_func_end MOD56_022146CC + + thumb_func_start MOD56_02214808 +MOD56_02214808: ; 0x02214808 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r5, r0, #0 + cmp r1, #0 + bne _0221481A + ldr r4, _0221490C ; =0x022164A0 + mov r7, #4 + mov r1, #1 + b _02214820 +_0221481A: + ldr r4, _02214910 ; =0x022164C0 + mov r7, #4 + mov r1, #0 +_02214820: + ldr r0, _02214914 ; =0x000003E2 + ldr r3, _02214918 ; =0x02216414 + strh r1, [r5, r0] + add r2, sp, #0x14 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r0, r7, #0 + mov r1, #0x36 + bl FUN_02012838 + add r1, r5, #0 + add r1, #0xb8 + mov r6, #0 + str r0, [r1] + cmp r7, #0 + ble _02214868 +_0221484C: + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xb8 + add r1, #0xcc + ldr r0, [r0] + ldr r1, [r1] + ldr r2, [r4] + ldr r3, [r4, #4] + bl FUN_02012880 + add r6, r6, #1 + add r4, #8 + cmp r6, r7 + blt _0221484C +_02214868: + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _0221488C + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_0221488C: + mov r1, #9 + str r1, [sp] + mov r1, #0xf + lsl r0, r7, #1 + str r1, [sp, #4] + lsl r1, r0, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #8] + mov r1, #0xd + str r1, [sp, #0xc] + mov r1, #0x3b + sub r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + add r0, r5, #0 + add r0, #0xc0 + mov r1, #0xe3 + lsl r1, r1, #2 + ldr r0, [r0] + add r1, r5, r1 + mov r2, #2 + mov r3, #0x10 + bl FUN_02019064 + mov r0, #0xe3 + lsl r0, r0, #2 + ldr r2, _0221491C ; =0x000001D9 + add r0, r5, r0 + mov r1, #1 + mov r3, #0xb + bl FUN_0200CCA4 + add r0, r5, #0 + add r0, #0xb8 + ldr r0, [r0] + mov r3, #0xe3 + lsl r3, r3, #2 + str r0, [sp, #0x14] + add r0, r5, r3 + add r2, r3, #0 + str r0, [sp, #0x20] + add r2, #0x56 + ldrh r2, [r5, r2] + add r3, #0x52 + add r0, sp, #0x14 + lsl r2, r2, #1 + add r2, r5, r2 + ldrh r2, [r2, r3] + mov r1, #0 + mov r3, #0x36 + bl FUN_020010A8 + add r1, r5, #0 + add r1, #0xbc + str r0, [r1] + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + mov r0, #1 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0221490C: .word 0x022164A0 +_02214910: .word 0x022164C0 +_02214914: .word 0x000003E2 +_02214918: .word 0x02216414 +_0221491C: .word 0x000001D9 + thumb_func_end MOD56_02214808 + + thumb_func_start MOD56_02214920 +MOD56_02214920: ; 0x02214920 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r6, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _0221493C + add r0, r6, #0 + pop {r4, r5, r6, pc} +_0221493C: + add r0, r5, #0 + add r0, #0xbc + ldr r0, [r0] + bl FUN_02001204 + add r4, r0, #0 + add r0, r5, #0 + bl MOD56_02213BF4 + cmp r0, #0 + beq _02214956 + mov r4, #1 + mvn r4, r4 +_02214956: + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _02214968 + add r0, r0, #1 + cmp r4, r0 + bne _02214978 + add r0, r6, #0 + pop {r4, r5, r6, pc} +_02214968: + ldr r0, _022149D0 ; =0x000005DD + bl FUN_020054C8 + mov r0, #0x3b + mov r1, #0x24 + lsl r0, r0, #4 + str r1, [r5, r0] + b _02214994 +_02214978: + ldr r0, _022149D0 ; =0x000005DD + bl FUN_020054C8 + add r0, r5, #0 + add r1, r4, #0 + bl MOD56_0221617C + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD56_02216120 +_02214994: + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 + ldr r3, _022149D4 ; =0x000003DE + add r0, r5, #0 + add r2, r5, r3 + add r3, r3, #4 + ldrh r3, [r5, r3] + add r0, #0xbc + ldr r0, [r0] + lsl r3, r3, #1 + mov r1, #0 + add r2, r2, r3 + bl FUN_02001300 + add r5, #0xb8 + ldr r0, [r5] + bl FUN_02012870 + add r0, r6, #0 + pop {r4, r5, r6, pc} + nop +_022149D0: .word 0x000005DD +_022149D4: .word 0x000003DE + thumb_func_end MOD56_02214920 + + thumb_func_start MOD56_022149D8 +MOD56_022149D8: ; 0x022149D8 + push {r4, r5, r6, r7, lr} + sub sp, #0x4c + ldr r3, _02214BB0 ; =0x02216434 + add r5, r0, #0 + mov r0, #3 + add r2, sp, #0x2c + str r1, [sp, #0x14] + str r0, [sp, #0x20] + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r0, r5, #0 + add r0, #0xb4 + ldr r0, [r0] + add r1, sp, #0x28 + bl FUN_0200143C + add r0, sp, #0x28 + ldrh r0, [r0] + add r0, r5, r0 + ldrb r0, [r0, #0xc] + sub r0, r0, #1 + str r0, [sp, #0x18] + ldr r1, [sp, #0x18] + mov r0, #0x24 + mul r0, r1 + ldr r1, [r5, #4] + add r1, r1, r0 + add r1, #0x3f + ldrb r6, [r1] + mov r1, #0xf9 + lsl r1, r1, #2 + strh r6, [r5, r1] + ldr r2, [r5, #4] + add r2, #0x45 + ldrb r2, [r2, r0] + add r0, r1, #2 + mov r1, #0x36 + strh r2, [r5, r0] + ldr r0, [r5, #4] + add r0, #0x21 + ldrb r0, [r0] + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x1c] + mov r0, #3 + bl FUN_02012838 + add r1, r5, #0 + add r1, #0xb8 + str r0, [r1] + mov r0, #0 + ldr r4, _02214BB4 ; =0x02216350 + str r0, [sp, #0x24] + add r7, sp, #0x28 +_02214A52: + ldr r0, [sp, #0x24] + cmp r0, #0 + bne _02214AC8 + add r0, r6, #0 + bl MOD56_02211ECC + cmp r0, #0 + bne _02214A6A + cmp r6, #0 + beq _02214A6A + cmp r6, #0x11 + blo _02214A7E +_02214A6A: + ldrh r0, [r7, #0x16] + sub r0, r0, #1 + strh r0, [r7, #0x16] + ldrh r0, [r7, #0x14] + sub r0, r0, #1 + strh r0, [r7, #0x14] + ldr r0, [sp, #0x20] + sub r0, r0, #1 + str r0, [sp, #0x20] + b _02214ADC +_02214A7E: + cmp r6, #0x10 + bne _02214AB2 + ldr r0, [sp, #0x1c] + cmp r0, #2 + bne _02214A9E + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xb8 + add r1, #0xcc + ldr r0, [r0] + ldr r1, [r1] + ldr r3, [r4, #4] + mov r2, #0x1a + bl FUN_02012880 + b _02214ADC +_02214A9E: + ldrh r0, [r7, #0x16] + sub r0, r0, #1 + strh r0, [r7, #0x16] + ldrh r0, [r7, #0x14] + sub r0, r0, #1 + strh r0, [r7, #0x14] + ldr r0, [sp, #0x20] + sub r0, r0, #1 + str r0, [sp, #0x20] + b _02214ADC +_02214AB2: + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xb8 + add r1, #0xcc + ldr r0, [r0] + ldr r1, [r1] + ldr r2, [r4] + ldr r3, [r4, #4] + bl FUN_02012880 + b _02214ADC +_02214AC8: + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xb8 + add r1, #0xcc + ldr r0, [r0] + ldr r1, [r1] + ldr r2, [r4] + ldr r3, [r4, #4] + bl FUN_02012880 +_02214ADC: + ldr r0, [sp, #0x24] + add r4, #8 + add r0, r0, #1 + str r0, [sp, #0x24] + cmp r0, #3 + blo _02214A52 + ldr r0, [sp, #0x20] + mov r1, #3 + sub r0, r1, r0 + lsl r0, r0, #1 + add r0, #0xb + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0xf + str r0, [sp, #4] + ldr r0, [sp, #0x20] + mov r1, #0xe3 + lsl r0, r0, #0x19 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x3b + str r0, [sp, #0x10] + add r0, r5, #0 + add r0, #0xc0 + lsl r1, r1, #2 + ldr r0, [r0] + add r1, r5, r1 + mov r2, #2 + mov r3, #0x10 + bl FUN_02019064 + mov r0, #0xe3 + lsl r0, r0, #2 + ldr r2, _02214BB8 ; =0x000001D9 + add r0, r5, r0 + mov r1, #1 + mov r3, #0xb + bl FUN_0200CCA4 + add r0, r5, #0 + add r0, #0xb8 + ldr r0, [r0] + mov r1, #0 + str r0, [sp, #0x2c] + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [sp, #0x38] + add r0, sp, #0x2c + add r2, r1, #0 + mov r3, #0x36 + bl FUN_020010A8 + add r1, r5, #0 + add r1, #0xbc + str r0, [r1] + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + ldr r1, [sp, #0x18] + add r0, r5, #0 + bl MOD56_022160E4 + cmp r6, #0xf + bne _02214B6C + mov r1, #3 + b _02214B9A +_02214B6C: + add r0, r6, #0 + bl MOD56_02211E60 + cmp r0, #0 + beq _02214B7A + mov r1, #2 + b _02214B9A +_02214B7A: + cmp r6, #8 + bne _02214B82 + mov r1, #0x30 + b _02214B9A +_02214B82: + add r0, r6, #0 + bl MOD56_02211EA4 + cmp r0, #0 + beq _02214B90 + mov r1, #0x2f + b _02214B9A +_02214B90: + cmp r6, #1 + bne _02214B98 + mov r1, #0x31 + b _02214B9A +_02214B98: + mov r1, #4 +_02214B9A: + add r0, r5, #0 + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x2b + lsl r0, r0, #4 + str r1, [r5, r0] + ldr r0, [sp, #0x14] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02214BB0: .word 0x02216434 +_02214BB4: .word 0x02216350 +_02214BB8: .word 0x000001D9 + thumb_func_end MOD56_022149D8 + + thumb_func_start MOD56_02214BBC +MOD56_02214BBC: ; 0x02214BBC + push {r4, r5} + ldr r2, _02214BF8 ; =0x000001EF + mov r5, #0 + add r1, r2, #0 + sub r1, #0x1f + add r3, r2, #0 +_02214BC8: + ldrh r4, [r0] + cmp r4, r3 + bne _02214BD4 + mov r0, #0 + pop {r4, r5} + bx lr +_02214BD4: + cmp r4, r2 + bls _02214BDE + mov r0, #0 + pop {r4, r5} + bx lr +_02214BDE: + ldrh r4, [r0, #0xc] + cmp r4, r1 + bls _02214BEA + mov r0, #0 + pop {r4, r5} + bx lr +_02214BEA: + add r5, r5, #1 + add r0, r0, #2 + cmp r5, #6 + blt _02214BC8 + mov r0, #1 + pop {r4, r5} + bx lr + .align 2, 0 +_02214BF8: .word 0x000001EF + thumb_func_end MOD56_02214BBC + + thumb_func_start MOD56_02214BFC +MOD56_02214BFC: ; 0x02214BFC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + str r1, [sp] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r6, #0 + bl FUN_0201BD70 + cmp r0, #0 + beq _02214C1E + ldr r0, [sp] + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_02214C1E: + add r0, r4, #0 + add r0, #0xbc + ldr r0, [r0] + bl FUN_02001204 + add r5, r0, #0 + add r0, r4, #0 + bl MOD56_02213BF4 + cmp r0, #0 + beq _02214C36 + sub r5, r6, #2 +_02214C36: + mov r0, #1 + mvn r0, r0 + cmp r5, r0 + beq _02214C4A + add r0, r0, #1 + cmp r5, r0 + bne _02214C5A + ldr r0, [sp] + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_02214C4A: + ldr r0, _02214E20 ; =0x000005DD + bl FUN_020054C8 + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 + str r1, [r4, r0] + b _02214DE2 +_02214C5A: + ldr r0, _02214E20 ; =0x000005DD + bl FUN_020054C8 + cmp r5, #1 + beq _02214C66 + b _02214DD6 +_02214C66: + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 + str r1, [r4, r0] + add r0, r4, #0 + add r0, #0xb4 + ldr r0, [r0] + add r1, sp, #0xc + bl FUN_0200143C + add r0, sp, #0xc + ldrh r0, [r0] + add r0, r4, r0 + ldrb r5, [r0, #0xc] + mov r0, #0xfa + lsl r0, r0, #2 + strh r5, [r4, r0] + cmp r5, #0 + bne _02214C8E + b _02214DE2 +_02214C8E: + add r0, r4, #0 + bl MOD56_02211F88 + sub r1, r5, #1 + str r0, [sp, #8] + mov r0, #0x24 + add r3, r1, #0 + ldr r2, [r4, #4] + mul r3, r0 + add r0, r2, r3 + add r0, #0x3f + ldrb r0, [r0] + str r0, [sp, #4] + add r0, r2, r3 + add r0, #0x45 + ldrb r7, [r0] + mov r0, #0xf9 + lsl r0, r0, #2 + ldrh r1, [r4, r0] + ldr r0, [sp, #4] + cmp r1, r0 + bne _02214CC6 + mov r0, #0xf9 + lsl r0, r0, #2 + add r0, r0, #2 + ldrh r0, [r4, r0] + cmp r0, r7 + beq _02214CE4 +_02214CC6: + add r0, r4, #0 + sub r1, r5, #1 + bl MOD56_022160E4 + add r0, r4, #0 + mov r1, #0xc + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1d + lsl r0, r0, #4 + str r1, [r4, r0] + mov r6, #1 + b _02214DE2 +_02214CE4: + add r2, #0x24 + add r0, r2, r3 + bl MOD56_02214BBC + cmp r0, #0 + bne _02214D0E + add r0, r4, #0 + sub r1, r5, #1 + bl MOD56_022160E4 + add r0, r4, #0 + mov r1, #0xc + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1d + lsl r0, r0, #4 + str r1, [r4, r0] + mov r6, #1 + b _02214DE2 +_02214D0E: + ldr r0, [sp, #4] + bl MOD56_02211EEC + cmp r0, #0 + beq _02214D46 + ldr r0, [sp, #8] + cmp r0, #2 + bge _02214D46 + ldr r0, [sp, #4] + cmp r0, #0xf + bne _02214D30 + add r0, r4, #0 + mov r1, #0x34 + mov r2, #0 + bl MOD56_02215EA4 + b _02214D3A +_02214D30: + add r0, r4, #0 + mov r1, #0x42 + mov r2, #0 + bl MOD56_02215EA4 +_02214D3A: + mov r0, #0x3b + mov r1, #0x1d + lsl r0, r0, #4 + str r1, [r4, r0] + mov r6, #1 + b _02214DE2 +_02214D46: + ldr r0, [r4, #4] + add r0, #0x21 + ldrb r0, [r0] + cmp r7, r0 + beq _02214D76 + cmp r7, #0 + beq _02214D60 + add r0, r4, #0 + mov r1, #0x44 + mov r2, #0 + bl MOD56_02215EA4 + b _02214D6A +_02214D60: + add r0, r4, #0 + mov r1, #0x45 + mov r2, #0 + bl MOD56_02215EA4 +_02214D6A: + mov r0, #0x3b + mov r1, #0x3e + lsl r0, r0, #4 + str r1, [r4, r0] + mov r6, #1 + b _02214DE2 +_02214D76: + ldr r0, [sp, #4] + bl MOD56_02211F10 + add r7, r0, #0 + cmp r7, #0x11 + beq _02214DE2 + sub r0, r5, #1 + bl MOD04_021D8480 + cmp r0, #6 + bne _02214DE2 + sub r0, r5, #1 + bl FUN_02032FDC + cmp r0, #0 + beq _02214DE2 + add r0, r4, #0 + add r1, r7, #0 + bl MOD56_0221617C + add r0, r4, #0 + sub r1, r5, #1 + bl MOD56_022160E4 + add r0, r4, #0 + mov r1, #0xd + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0xcf + lsl r0, r0, #2 + ldr r1, _02214E24 ; =0x000001E2 + add r0, r4, r0 + bl FUN_0200D858 + mov r1, #6 + lsl r1, r1, #6 + str r0, [r4, r1] + cmp r7, #1 + beq _02214DCA + mov r1, #0x2c + b _02214DCC +_02214DCA: + mov r1, #0x15 +_02214DCC: + mov r0, #0x3b + lsl r0, r0, #4 + str r1, [r4, r0] + mov r6, #1 + b _02214DE2 +_02214DD6: + cmp r5, #2 + bne _02214DE2 + mov r0, #0x3b + mov r1, #0x35 + lsl r0, r0, #4 + str r1, [r4, r0] +_02214DE2: + cmp r6, #0 + bne _02214DEC + add r0, r4, #0 + bl MOD56_02216120 +_02214DEC: + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0xe3 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 + add r0, r4, #0 + add r0, #0xbc + mov r1, #0 + ldr r0, [r0] + add r2, r1, #0 + bl FUN_02001300 + add r4, #0xb8 + ldr r0, [r4] + bl FUN_02012870 + ldr r0, [sp] + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_02214E20: .word 0x000005DD +_02214E24: .word 0x000001E2 + thumb_func_end MOD56_02214BFC + + thumb_func_start MOD56_02214E28 +MOD56_02214E28: ; 0x02214E28 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r1, _02214F08 ; =0x021C48B8 + add r5, r0, #0 + ldr r2, [r1, #0x48] + mov r1, #2 + tst r1, r2 + beq _02214E4A + mov r1, #0x43 + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x2d + lsl r0, r0, #4 + str r1, [r5, r0] + b _02214F02 +_02214E4A: + bl FUN_0203300C + cmp r0, #3 + bne _02214E72 + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xe + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1b + lsl r0, r0, #4 + str r1, [r5, r0] + b _02214F02 +_02214E72: + bl FUN_0203300C + cmp r0, #5 + bne _02214E9A + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xb + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1b + lsl r0, r0, #4 + str r1, [r5, r0] + b _02214F02 +_02214E9A: + bl FUN_0203300C + cmp r0, #4 + beq _02214EAA + bl FUN_02033128 + cmp r0, #0 + beq _02214ECA +_02214EAA: + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xe + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1b + lsl r0, r0, #4 + str r1, [r5, r0] + b _02214F02 +_02214ECA: + bl FUN_02033250 + cmp r0, #0 + beq _02214EDA + add r0, r5, #0 + bl MOD56_02213030 + b _02214F02 +_02214EDA: + bl FUN_0203300C + cmp r0, #1 + bne _02214F02 + add r0, r5, #0 + bl MOD56_02216274 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #0 + bl FUN_0202DB14 + mov r0, #0xf1 + mov r1, #0x1e + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x30 + sub r0, #0x14 + str r1, [r5, r0] +_02214F02: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02214F08: .word 0x021C48B8 + thumb_func_end MOD56_02214E28 + + thumb_func_start MOD56_02214F0C +MOD56_02214F0C: ; 0x02214F0C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02214F46 + mov r0, #0x36 + str r0, [sp] + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r1, _02214F4C ; =0x02216308 + ldr r2, _02214F50 ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x3b + mov r1, #0x42 + lsl r0, r0, #4 + str r1, [r5, r0] +_02214F46: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02214F4C: .word 0x02216308 +_02214F50: .word 0x000001D9 + thumb_func_end MOD56_02214F0C + + thumb_func_start MOD56_02214F54 +MOD56_02214F54: ; 0x02214F54 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + add r6, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021AC + add r4, r0, #0 + add r0, r5, #0 + bl MOD56_02213BF4 + cmp r0, #0 + beq _02214F90 + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _02214F86 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021EC +_02214F86: + mov r0, #0x3b + mov r1, #0x15 + lsl r0, r0, #4 + str r1, [r5, r0] + b _02214FCC +_02214F90: + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _02214F9C + add r0, r6, #0 + pop {r4, r5, r6, pc} +_02214F9C: + cmp r4, #0 + bne _02214FC4 + add r0, r5, #0 + bl MOD56_02216248 + add r0, r5, #0 + mov r1, #0x10 + bl MOD56_0221617C + bl FUN_020331E8 + mov r1, #0 + mov r0, #0xf6 + mvn r1, r1 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x13 + sub r0, #0x28 + str r1, [r5, r0] + b _02214FCC +_02214FC4: + mov r0, #0x3b + mov r1, #0x15 + lsl r0, r0, #4 + str r1, [r5, r0] +_02214FCC: + add r0, r5, #0 + bl MOD56_02216120 + add r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD56_02214F54 + + thumb_func_start MOD56_02214FD8 +MOD56_02214FD8: ; 0x02214FD8 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02215012 + mov r0, #0x36 + str r0, [sp] + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r1, _02215018 ; =0x02216308 + ldr r2, _0221501C ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x3b + mov r1, #0x2e + lsl r0, r0, #4 + str r1, [r5, r0] +_02215012: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02215018: .word 0x02216308 +_0221501C: .word 0x000001D9 + thumb_func_end MOD56_02214FD8 + + thumb_func_start MOD56_02215020 +MOD56_02215020: ; 0x02215020 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + add r6, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021AC + add r4, r0, #0 + add r0, r5, #0 + bl MOD56_02213BF4 + cmp r0, #0 + beq _0221505C + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _02215052 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021EC +_02215052: + mov r0, #0x3b + mov r1, #0x2c + lsl r0, r0, #4 + str r1, [r5, r0] + b _02215098 +_0221505C: + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _02215068 + add r0, r6, #0 + pop {r4, r5, r6, pc} +_02215068: + cmp r4, #0 + bne _02215090 + add r0, r5, #0 + bl MOD56_02216248 + add r0, r5, #0 + mov r1, #0x10 + bl MOD56_0221617C + bl FUN_020331E8 + mov r1, #0 + mov r0, #0xf6 + mvn r1, r1 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x13 + sub r0, #0x28 + str r1, [r5, r0] + b _02215098 +_02215090: + mov r0, #0x3b + mov r1, #0x2c + lsl r0, r0, #4 + str r1, [r5, r0] +_02215098: + add r0, r5, #0 + bl MOD56_02216120 + add r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD56_02215020 + + thumb_func_start MOD56_022150A4 +MOD56_022150A4: ; 0x022150A4 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5, #4] + add r6, r1, #0 + ldrb r4, [r0, #0x1b] + bl MOD04_021D853C + mov r1, #0x24 + ldr r2, [r5, #4] + mul r1, r0 + add r0, r2, r1 + add r0, #0x3f + ldrb r0, [r0] + cmp r4, #0xc + bne _022150D0 + cmp r0, #5 + bne _022150D0 + mov r0, #0x3b + mov r1, #0x30 + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221517E +_022150D0: + cmp r4, #0xd + bne _022150E2 + cmp r0, #6 + bne _022150E2 + mov r0, #0x3b + mov r1, #0x30 + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221517E +_022150E2: + cmp r4, #0xe + bne _022150F4 + cmp r0, #7 + bne _022150F4 + mov r0, #0x3b + mov r1, #0x30 + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221517E +_022150F4: + cmp r4, #9 + bne _02215106 + cmp r0, #2 + bne _02215106 + mov r0, #0x3b + mov r1, #0x30 + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221517E +_02215106: + cmp r4, #0xa + bne _02215118 + cmp r0, #3 + bne _02215118 + mov r0, #0x3b + mov r1, #0x30 + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221517E +_02215118: + cmp r4, #0xb + bne _0221512A + cmp r0, #4 + bne _0221512A + mov r0, #0x3b + mov r1, #0x30 + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221517E +_0221512A: + cmp r4, #0xf + bne _0221513C + cmp r0, #8 + bne _0221513C + mov r0, #0x3b + mov r1, #0x30 + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221517E +_0221513C: + cmp r4, #0x10 + bne _02215150 + cmp r0, #1 + bne _02215150 + mov r0, #0x3b + mov r1, #0x16 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r6, #0 + pop {r4, r5, r6, pc} +_02215150: + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xe + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1d + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r5, #0 + mov r1, #0x10 + bl MOD56_0221617C + bl FUN_020331E8 + add r0, r6, #0 + pop {r4, r5, r6, pc} +_0221517E: + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #7 + mov r2, #0 + bl MOD56_02215EA4 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #0 + bl FUN_0202DB14 + mov r0, #0x3b + mov r1, #0x30 + lsl r0, r0, #4 + str r1, [r5, r0] + mov r1, #0x1e + add r0, #0x14 + str r1, [r5, r0] + add r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD56_022150A4 + + thumb_func_start MOD56_022151B4 +MOD56_022151B4: ; 0x022151B4 + push {r4, lr} + add r4, r0, #0 + bl FUN_0203300C + cmp r0, #3 + blt _022151E0 + mov r1, #0xf6 + lsl r1, r1, #2 + ldr r1, [r4, r1] + add r0, r4, #0 + bl MOD56_022160E4 + add r0, r4, #0 + mov r1, #0xe + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1b + lsl r0, r0, #4 + str r1, [r4, r0] + b _022151F4 +_022151E0: + bl FUN_02033250 + cmp r0, #0 + beq _022151F0 + add r0, r4, #0 + bl MOD56_02213030 + b _022151F4 +_022151F0: + mov r0, #0 + pop {r4, pc} +_022151F4: + mov r0, #0xfb + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD56_022151B4 + + thumb_func_start MOD56_02215200 +MOD56_02215200: ; 0x02215200 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0203300C + cmp r0, #4 + bge _02215220 + bl FUN_02033128 + cmp r0, #0 + bne _02215220 + mov r0, #0 + bl FUN_02030E7C + cmp r0, #0 + bne _0221525A +_02215220: + mov r1, #0xfb + lsl r1, r1, #2 + ldr r0, [r5, r1] + cmp r0, #0 + beq _02215236 + add r0, r5, #0 + mov r1, #0x40 + mov r2, #0 + bl MOD56_02215EA4 + b _0221524A +_02215236: + sub r1, #0x14 + ldr r1, [r5, r1] + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xe + mov r2, #0 + bl MOD56_02215EA4 +_0221524A: + mov r0, #0xfb + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x1b + sub r0, #0x3c + str r1, [r5, r0] + b _022152A2 +_0221525A: + add r0, r5, #0 + bl MOD56_022151B4 + cmp r0, #0 + bne _022152A2 + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r1, [r5, r0] + cmp r1, #0 + bne _02215292 + mov r0, #0xd + bl FUN_020315D8 + cmp r0, #0 + beq _022152A2 + bl FUN_0203168C + mov r0, #0xe + bl FUN_02031588 + mov r0, #0xfb + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x31 + sub r0, #0x3c + str r1, [r5, r0] + b _022152A2 +_02215292: + sub r1, r1, #1 + str r1, [r5, r0] + ldr r0, [r5, r0] + cmp r0, #0 + bne _022152A2 + mov r0, #0xd + bl FUN_02031588 +_022152A2: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD56_02215200 + + thumb_func_start MOD56_022152A8 +MOD56_022152A8: ; 0x022152A8 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD56_022151B4 + cmp r0, #0 + bne _022152DA + mov r0, #0xe + bl FUN_020315D8 + cmp r0, #0 + beq _022152DA + ldr r0, [r5, #4] + ldrb r1, [r0, #0x1b] + add r0, sp, #0 + strh r1, [r0] + bl FUN_02031190 + add r1, sp, #0 + bl FUN_020316AC + mov r0, #0x3b + mov r1, #0x32 + lsl r0, r0, #4 + str r1, [r5, r0] +_022152DA: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD56_022152A8 + + thumb_func_start MOD56_022152E0 +MOD56_022152E0: ; 0x022152E0 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + bl FUN_02031190 + mov r1, #1 + sub r0, r1, r0 + bl FUN_020316E0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD56_022151B4 + cmp r0, #0 + bne _0221534A + cmp r4, #0 + beq _0221534A + ldr r0, [r5, #4] + ldrb r0, [r0, #0x1b] + bl MOD56_02211F10 + lsl r0, r0, #0x10 + ldrh r1, [r4] + lsr r0, r0, #0x10 + cmp r1, r0 + beq _0221531C + ldr r0, [r5, #4] + ldrb r0, [r0, #0x1b] + cmp r1, r0 + bne _0221532C +_0221531C: + mov r0, #0xf + bl FUN_02031588 + mov r0, #0x3b + mov r1, #0x33 + lsl r0, r0, #4 + str r1, [r5, r0] + b _0221534A +_0221532C: + bl MOD04_021D853C + add r1, r0, #0 + add r0, r5, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xc + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1b + lsl r0, r0, #4 + str r1, [r5, r0] +_0221534A: + add r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD56_022152E0 + + thumb_func_start MOD56_02215350 +MOD56_02215350: ; 0x02215350 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD56_022151B4 + cmp r0, #0 + bne _02215382 + mov r0, #0xf + bl FUN_020315D8 + cmp r0, #0 + beq _02215382 + bl FUN_0202DBE0 + mov r0, #1 + add r1, r0, #0 + bl FUN_020334E8 + mov r0, #0x12 + bl FUN_02031588 + mov r0, #0x3b + mov r1, #0x34 + lsl r0, r0, #4 + str r1, [r5, r0] +_02215382: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD56_02215350 + + thumb_func_start MOD56_02215388 +MOD56_02215388: ; 0x02215388 + push {r4, r5, lr} + sub sp, #0x2c + add r4, r0, #0 + add r5, r1, #0 + bl MOD56_022151B4 + cmp r0, #0 + bne _02215476 + mov r0, #0x12 + bl FUN_020315D8 + cmp r0, #0 + beq _02215476 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, sp, #0xc + mov r2, #0x36 + bl FUN_020339B4 + add r0, r4, #0 + bl MOD56_02216120 + bl MOD04_021D853C + mov r1, #0x24 + ldr r2, [r4, #4] + mul r1, r0 + add r0, r2, r1 + add r0, #0x3f + ldrb r1, [r0] + cmp r1, #0xf + beq _022153CE + cmp r1, #8 + bne _022153DA +_022153CE: + mov r0, #0xed + mov r2, #7 + lsl r0, r0, #2 + mov r1, #8 + str r2, [r4, r0] + b _02215450 +_022153DA: + cmp r1, #9 + beq _022153E2 + cmp r1, #2 + bne _022153EE +_022153E2: + mov r0, #0xed + mov r2, #1 + lsl r0, r0, #2 + mov r1, #2 + str r2, [r4, r0] + b _02215450 +_022153EE: + cmp r1, #0xa + beq _022153F6 + cmp r1, #3 + bne _02215402 +_022153F6: + mov r0, #0xed + mov r2, #2 + lsl r0, r0, #2 + mov r1, #3 + str r2, [r4, r0] + b _02215450 +_02215402: + cmp r1, #0xb + beq _0221540A + cmp r1, #4 + bne _02215416 +_0221540A: + mov r0, #0xed + mov r2, #3 + lsl r0, r0, #2 + mov r1, #4 + str r2, [r4, r0] + b _02215450 +_02215416: + cmp r1, #0xc + beq _0221541E + cmp r1, #5 + bne _0221542A +_0221541E: + mov r0, #0xed + mov r2, #4 + lsl r0, r0, #2 + mov r1, #5 + str r2, [r4, r0] + b _02215450 +_0221542A: + cmp r1, #0xd + beq _02215432 + cmp r1, #6 + bne _0221543E +_02215432: + mov r0, #0xed + mov r2, #5 + lsl r0, r0, #2 + mov r1, #6 + str r2, [r4, r0] + b _02215450 +_0221543E: + cmp r1, #0xe + beq _02215446 + cmp r1, #7 + bne _02215450 +_02215446: + mov r0, #0xed + mov r2, #6 + lsl r0, r0, #2 + mov r1, #7 + str r2, [r4, r0] +_02215450: + add r0, r4, #0 + bl MOD56_0221617C + mov r0, #1 + bl FUN_02031400 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x36 + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r5, #2 +_02215476: + add r0, r5, #0 + add sp, #0x2c + pop {r4, r5, pc} + thumb_func_end MOD56_02215388 + + thumb_func_start MOD56_0221547C +MOD56_0221547C: ; 0x0221547C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + add r0, #0xc0 + add r4, r1, #0 + ldr r0, [r0] + mov r1, #3 + bl FUN_02018744 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + add r2, r5, #0 + str r3, [sp, #8] + mov r0, #0x36 + str r0, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + mov r0, #0x5c + mov r1, #5 + bl FUN_020068C8 + mov r0, #0xf3 + mov r1, #0 + lsl r0, r0, #2 + strb r1, [r5, r0] + mov r1, #0x12 + sub r0, #0x1c + str r1, [r5, r0] + add r0, r4, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD56_0221547C + + thumb_func_start MOD56_022154BC +MOD56_022154BC: ; 0x022154BC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r0, #0 + add r0, #0xc0 + add r7, r1, #0 + ldr r0, [r0] + mov r1, #3 + bl FUN_02018744 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x36 + add r2, r5, #0 + str r0, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + mov r0, #0x5c + mov r1, #6 + mov r3, #1 + bl FUN_020068C8 + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x33 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0xca + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0xe7 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02215532 + mov r0, #0xe7 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0xe7 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_02215532: + mov r0, #2 + str r0, [sp] + mov r0, #0x1a + str r0, [sp, #4] + mov r0, #0xe + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #0x10] + add r0, r5, #0 + add r0, #0xc0 + mov r1, #0xe7 + lsl r1, r1, #2 + mov r2, #3 + ldr r0, [r0] + add r1, r5, r1 + add r3, r2, #0 + bl FUN_02019064 + mov r0, #0xe7 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + add r0, r5, #0 + add r0, #0xb4 + ldr r0, [r0] + add r1, sp, #0x14 + bl FUN_0200143C + add r0, sp, #0x14 + ldrh r0, [r0] + add r0, r5, r0 + ldrb r0, [r0, #0xc] + sub r0, r0, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r5, #0 + add r1, r4, #0 + bl MOD56_022160E4 + add r0, r5, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x20 + bl FUN_0200A8E0 + mov r2, #0x16 + add r0, r5, #0 + lsl r2, r2, #4 + add r0, #0xc8 + ldr r1, [r5, r2] + sub r2, #8 + ldr r0, [r0] + ldr r2, [r5, r2] + bl FUN_0200B7B8 + mov r3, #0 + str r3, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02215964 ; =0x00010200 + add r2, #0x61 + str r0, [sp, #8] + str r3, [sp, #0xc] + mov r0, #0xe7 + lsl r0, r0, #2 + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BDE0 + mov r0, #0xe7 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + add r0, r5, #0 + mov r1, #0x29 + mov r2, #0 + bl MOD56_02215EA4 + add r0, r5, #0 + mov r2, #0x16 + add r0, #0xcc + lsl r2, r2, #4 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x21 + bl FUN_0200A8E0 + mov r0, #0x10 + str r0, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02215964 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0xe7 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0x61 + ldr r2, [r5, r2] + add r0, r5, r0 + add r3, r1, #0 + bl FUN_0201BDE0 + mov r0, #0x36 + bl FUN_02023928 + add r6, r0, #0 + ldr r0, [r5] + add r1, r4, #0 + bl FUN_020283E8 + add r1, r0, #0 + add r0, r6, #0 + bl FUN_0202395C + add r0, r5, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + add r2, r6, #0 + bl FUN_0200ABC0 + add r0, r6, #0 + bl FUN_02016A18 + add r0, r5, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x4e + bl FUN_0200A8E0 + mov r2, #0x16 + add r0, r5, #0 + lsl r2, r2, #4 + add r0, #0xc8 + ldr r1, [r5, r2] + sub r2, #8 + ldr r0, [r0] + ldr r2, [r5, r2] + bl FUN_0200B7B8 + mov r1, #0x16 + lsl r1, r1, #4 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xce + sub r3, r1, r0 + mov r0, #0x10 + str r0, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02215964 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0xe7 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0x61 + ldr r2, [r5, r2] + add r0, r5, r0 + bl FUN_0201BDE0 + add r0, r5, #0 + mov r2, #0x16 + add r0, #0xcc + lsl r2, r2, #4 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x22 + bl FUN_0200A8E0 + mov r0, #0x20 + str r0, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02215964 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0xe7 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0x61 + ldr r2, [r5, r2] + add r0, r5, r0 + add r3, r1, #0 + bl FUN_0201BDE0 + ldr r0, [r5] + add r1, r4, #0 + mov r2, #1 + bl FUN_0202822C + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + mov r3, #4 + bl FUN_0200AD38 + add r0, r5, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x23 + bl FUN_0200A8E0 + mov r2, #0x16 + add r0, r5, #0 + lsl r2, r2, #4 + add r0, #0xc8 + ldr r1, [r5, r2] + sub r2, #8 + ldr r0, [r0] + ldr r2, [r5, r2] + bl FUN_0200B7B8 + mov r0, #0x30 + str r0, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02215964 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0xe7 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0x61 + ldr r2, [r5, r2] + add r0, r5, r0 + mov r3, #0x1e + bl FUN_0201BDE0 + ldr r0, [r5] + add r1, r4, #0 + mov r2, #2 + bl FUN_0202822C + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + mov r3, #4 + bl FUN_0200AD38 + add r0, r5, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x24 + bl FUN_0200A8E0 + mov r2, #0x16 + add r0, r5, #0 + lsl r2, r2, #4 + add r0, #0xc8 + ldr r1, [r5, r2] + sub r2, #8 + ldr r0, [r0] + ldr r2, [r5, r2] + bl FUN_0200B7B8 + mov r1, #0x16 + lsl r1, r1, #4 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r6, r0, #0 + mov r0, #0x30 + str r0, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02215964 ; =0x00010200 + mov r3, #0xce + str r0, [sp, #8] + mov r1, #0 + mov r0, #0xe7 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0x61 + ldr r2, [r5, r2] + add r0, r5, r0 + sub r3, r3, r6 + bl FUN_0201BDE0 + add r0, r5, #0 + mov r2, #0x16 + add r0, #0xcc + lsl r2, r2, #4 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x25 + bl FUN_0200A8E0 + mov r0, #0x40 + str r0, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02215964 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0xe7 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0x61 + ldr r2, [r5, r2] + add r0, r5, r0 + add r3, r1, #0 + bl FUN_0201BDE0 + ldr r0, [r5] + add r1, r4, #0 + mov r2, #3 + bl FUN_0202822C + add r6, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + add r2, r6, #0 + mov r3, #4 + bl FUN_0200AD38 + cmp r6, #1 + bne _02215810 + add r0, r5, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x26 + bl FUN_0200A8E0 + b _02215822 +_02215810: + add r0, r5, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x4f + bl FUN_0200A8E0 +_02215822: + mov r2, #0x16 + add r0, r5, #0 + lsl r2, r2, #4 + add r0, #0xc8 + ldr r1, [r5, r2] + sub r2, #8 + ldr r0, [r0] + ldr r2, [r5, r2] + bl FUN_0200B7B8 + mov r1, #0x16 + lsl r1, r1, #4 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r6, r0, #0 + mov r0, #0x40 + str r0, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02215964 ; =0x00010200 + mov r3, #0xce + str r0, [sp, #8] + mov r1, #0 + mov r0, #0xe7 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0x61 + ldr r2, [r5, r2] + add r0, r5, r0 + sub r3, r3, r6 + bl FUN_0201BDE0 + add r0, r5, #0 + mov r2, #0x16 + add r0, #0xcc + lsl r2, r2, #4 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x27 + bl FUN_0200A8E0 + mov r0, #0x50 + str r0, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02215964 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0xe7 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0x61 + ldr r2, [r5, r2] + add r0, r5, r0 + add r3, r1, #0 + bl FUN_0201BDE0 + ldr r0, [r5] + add r1, r4, #0 + mov r2, #6 + bl FUN_0202822C + add r2, r0, #0 + beq _0221594C + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xc8 + mov r1, #2 + ldr r0, [r0] + add r3, r1, #0 + bl FUN_0200AD38 + ldr r0, [r5] + add r1, r4, #0 + mov r2, #4 + bl FUN_0202822C + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + mov r3, #4 + bl FUN_0200AD38 + ldr r0, [r5] + add r1, r4, #0 + mov r2, #5 + bl FUN_0202822C + add r2, r0, #0 + add r0, r5, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #1 + bl FUN_0200B764 + add r0, r5, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x28 + bl FUN_0200A8E0 + mov r2, #0x16 + add r0, r5, #0 + lsl r2, r2, #4 + add r0, #0xc8 + ldr r1, [r5, r2] + sub r2, #8 + ldr r0, [r0] + ldr r2, [r5, r2] + bl FUN_0200B7B8 + mov r1, #0x16 + lsl r1, r1, #4 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #0x60 + str r0, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02215964 ; =0x00010200 + mov r4, #0xce + str r0, [sp, #8] + mov r1, #0 + mov r0, #0xe7 + lsl r0, r0, #2 + str r1, [sp, #0xc] + add r2, #0x61 + ldr r2, [r5, r2] + add r0, r5, r0 + sub r3, r4, r3 + bl FUN_0201BDE0 +_0221594C: + mov r0, #0xe7 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + mov r0, #0x3b + mov r1, #0x36 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r7, #0 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02215964: .word 0x00010200 + thumb_func_end MOD56_022154BC + + thumb_func_start MOD56_02215968 +MOD56_02215968: ; 0x02215968 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _02215984 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_02215984: + add r0, r5, #0 + bl MOD56_02213BF4 + cmp r0, #0 + beq _02215996 + mov r0, #0x3b + mov r1, #0x37 + lsl r0, r0, #4 + str r1, [r5, r0] +_02215996: + ldr r0, _022159AC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _022159A8 + mov r0, #0x3b + mov r1, #0x37 + lsl r0, r0, #4 + str r1, [r5, r0] +_022159A8: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022159AC: .word 0x021C48B8 + thumb_func_end MOD56_02215968 + + thumb_func_start MOD56_022159B0 +MOD56_022159B0: ; 0x022159B0 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #0xe7 + lsl r0, r0, #2 + add r4, r1, #0 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0xe7 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + mov r1, #1 + bl FUN_02018744 + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + mov r1, #3 + bl FUN_02018744 + add r0, r5, #0 + bl MOD56_02216120 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + add r2, r5, #0 + str r3, [sp, #8] + mov r0, #0x36 + str r0, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + mov r0, #0x5c + mov r1, #5 + bl FUN_020068C8 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + add r0, r5, #0 + mov r2, #0x16 + add r0, #0xcc + lsl r2, r2, #4 + ldr r0, [r0] + ldr r2, [r5, r2] + mov r1, #0x12 + bl FUN_0200A8E0 + mov r3, #0 + str r3, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _02215A88 ; =0x000F0E00 + add r2, #0x61 + str r0, [sp, #8] + str r3, [sp, #0xc] + mov r0, #0xd7 + lsl r0, r0, #2 + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BDE0 + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + add r0, r5, #0 + bl MOD56_02212EFC + add r0, r5, #0 + bl MOD56_02213A40 + add r0, r5, #0 + mov r1, #0 + bl MOD56_022138A4 + ldr r1, [r5, #4] + add r0, r5, #0 + ldrb r1, [r1, #0x1b] + bl MOD56_0221617C + mov r0, #0x33 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 + str r1, [r5, r0] + sub r1, #0x14 + str r1, [r5, #8] + add r0, r4, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_02215A88: .word 0x000F0E00 + thumb_func_end MOD56_022159B0 + + thumb_func_start MOD56_02215A8C +MOD56_02215A8C: ; 0x02215A8C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02215AC6 + mov r0, #0x36 + str r0, [sp] + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r1, _02215ACC ; =0x02216308 + ldr r2, _02215AD0 ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x3b + mov r1, #0x39 + lsl r0, r0, #4 + str r1, [r5, r0] +_02215AC6: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02215ACC: .word 0x02216308 +_02215AD0: .word 0x000001D9 + thumb_func_end MOD56_02215A8C + + thumb_func_start MOD56_02215AD4 +MOD56_02215AD4: ; 0x02215AD4 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + add r6, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021AC + add r4, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _02215AFE + add r0, r6, #0 + pop {r4, r5, r6, pc} +_02215AFE: + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _02215B0A + add r0, r6, #0 + pop {r4, r5, r6, pc} +_02215B0A: + cmp r4, #0 + bne _02215B26 + add r0, r5, #0 + mov r1, #0x19 + mov r2, #1 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x3a + lsl r0, r0, #4 + str r1, [r5, r0] + mov r1, #1 + add r0, #0x14 + b _02215B32 +_02215B26: + add r0, r5, #0 + bl MOD56_02216120 + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 +_02215B32: + str r1, [r5, r0] + add r0, r6, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD56_02215AD4 + + thumb_func_start MOD56_02215B38 +MOD56_02215B38: ; 0x02215B38 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _02215B54 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_02215B54: + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r1, [r5, r0] + cmp r1, #1 + bne _02215B66 + mov r1, #0 + str r1, [r5, r0] + bl FUN_020331C4 +_02215B66: + bl FUN_02031810 + cmp r0, #0 + bne _02215B8C + ldr r0, [r5] + bl FUN_0202858C + add r0, r5, #0 + mov r1, #0x1a + mov r2, #1 + bl MOD56_02215EA4 + mov r1, #0x3b + lsl r0, r1, #4 + str r1, [r5, r0] + mov r0, #0xf1 + mov r1, #0x1e + lsl r0, r0, #2 + str r1, [r5, r0] +_02215B8C: + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD56_02215B38 + + thumb_func_start MOD56_02215B90 +MOD56_02215B90: ; 0x02215B90 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _02215BAC + add r0, r4, #0 + pop {r3, r4, r5, pc} +_02215BAC: + mov r1, #0xf1 + lsl r1, r1, #2 + ldr r0, [r5, r1] + sub r0, r0, #1 + str r0, [r5, r1] + ldr r0, [r5, r1] + cmp r0, #0 + bne _02215BD0 + add r0, r1, #0 + mov r2, #8 + sub r0, #0x10 + str r2, [r5, r0] + mov r0, #0x22 + sub r1, #0x14 + str r0, [r5, r1] + add r0, r5, #0 + bl MOD56_02216120 +_02215BD0: + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD56_02215B90 + + thumb_func_start MOD56_02215BD4 +MOD56_02215BD4: ; 0x02215BD4 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0 + add r4, r1, #0 + add r1, r0, #0 + bl FUN_020334E8 + mov r0, #0x10 + bl FUN_020315D8 + cmp r0, #0 + bne _02215BF0 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_02215BF0: + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02215C24 + mov r0, #0x36 + str r0, [sp] + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r1, _02215C28 ; =0x02216308 + ldr r2, _02215C2C ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x3b + mov r1, #0x3d + lsl r0, r0, #4 + str r1, [r5, r0] +_02215C24: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02215C28: .word 0x02216308 +_02215C2C: .word 0x000001D9 + thumb_func_end MOD56_02215BD4 + + thumb_func_start MOD56_02215C30 +MOD56_02215C30: ; 0x02215C30 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _02215C4C + add r0, r4, #0 + pop {r3, r4, r5, pc} +_02215C4C: + bl FUN_02033138 + cmp r0, #0 + bne _02215C64 + bl FUN_02033128 + cmp r0, #0 + bne _02215C64 + bl FUN_0203300C + cmp r0, #3 + blt _02215C84 +_02215C64: + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021EC + add r0, r5, #0 + mov r1, #0x40 + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1c + lsl r0, r0, #4 + str r1, [r5, r0] + b _02215D18 +_02215C84: + bl FUN_02033250 + cmp r0, #0 + beq _02215CA0 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021EC + add r0, r5, #0 + bl MOD56_02213030 + b _02215D18 +_02215CA0: + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _02215CB8 + add r0, r4, #0 + pop {r3, r4, r5, pc} +_02215CB8: + cmp r0, #0 + bne _02215CF0 + add r0, r5, #0 + mov r1, #0x48 + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0xcf + lsl r0, r0, #2 + ldr r1, _02215D1C ; =0x000001E2 + add r0, r5, r0 + bl FUN_0200D858 + mov r1, #6 + lsl r1, r1, #6 + str r0, [r5, r1] + mov r1, #0xfb + mov r0, #1 + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + mov r2, #0x30 + sub r0, #0x3c + str r2, [r5, r0] + mov r0, #0x1e + sub r1, #0x28 + str r0, [r5, r1] + b _02215D08 +_02215CF0: + add r0, r5, #0 + bl MOD56_02216120 + bl FUN_0203323C + mov r0, #0xf1 + mov r1, #0x14 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0x40 + sub r0, #0x14 + str r1, [r5, r0] +_02215D08: + bl FUN_020334DC + add r1, r0, #0 + str r0, [r5, #4] + add r1, #0x22 + ldrb r1, [r1] + add r0, #0x21 + strb r1, [r0] +_02215D18: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02215D1C: .word 0x000001E2 + thumb_func_end MOD56_02215C30 + + thumb_func_start MOD56_02215D20 +MOD56_02215D20: ; 0x02215D20 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02215D5A + mov r0, #0x36 + str r0, [sp] + add r0, r5, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r1, _02215D60 ; =0x02216308 + ldr r2, _02215D64 ; =0x000001D9 + mov r3, #0xb + bl FUN_02002198 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x3b + mov r1, #0x3f + lsl r0, r0, #4 + str r1, [r5, r0] +_02215D5A: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02215D60: .word 0x02216308 +_02215D64: .word 0x000001D9 + thumb_func_end MOD56_02215D20 + + thumb_func_start MOD56_02215D68 +MOD56_02215D68: ; 0x02215D68 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0203300C + cmp r0, #3 + blt _02215D96 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021EC + add r0, r5, #0 + mov r1, #0x40 + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0x3b + mov r1, #0x1c + lsl r0, r0, #4 + str r1, [r5, r0] + b _02215E6A +_02215D96: + bl FUN_02033250 + cmp r0, #0 + beq _02215DB2 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021EC + add r0, r5, #0 + bl MOD56_02213030 + b _02215E6A +_02215DB2: + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _02215DCA + add r0, r4, #0 + pop {r4, r5, r6, pc} +_02215DCA: + cmp r0, #0 + bne _02215E58 + mov r0, #0xf9 + lsl r0, r0, #2 + ldrh r0, [r5, r0] + bl MOD56_02211F10 + add r6, r0, #0 + cmp r6, #0x11 + beq _02215E58 + mov r0, #0xfa + lsl r0, r0, #2 + ldrh r0, [r5, r0] + sub r0, r0, #1 + bl MOD04_021D8480 + cmp r0, #6 + bne _02215E58 + mov r0, #0xfa + lsl r0, r0, #2 + ldrh r0, [r5, r0] + sub r0, r0, #1 + bl FUN_02032FDC + cmp r0, #0 + beq _02215E58 + mov r0, #0 + bl FUN_02031400 + add r0, r5, #0 + bl MOD56_022161DC + add r0, r5, #0 + add r1, r6, #0 + bl MOD56_0221617C + mov r1, #0xfa + lsl r1, r1, #2 + ldrh r1, [r5, r1] + add r0, r5, #0 + sub r1, r1, #1 + bl MOD56_022160E4 + add r0, r5, #0 + mov r1, #0xd + mov r2, #0 + bl MOD56_02215EA4 + mov r0, #0xcf + lsl r0, r0, #2 + ldr r1, _02215E70 ; =0x000001E2 + add r0, r5, r0 + bl FUN_0200D858 + mov r1, #6 + lsl r1, r1, #6 + str r0, [r5, r1] + cmp r6, #1 + beq _02215E4C + mov r0, #0x3b + mov r1, #0x2c + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + pop {r4, r5, r6, pc} +_02215E4C: + mov r0, #0x3b + mov r1, #0x15 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + pop {r4, r5, r6, pc} +_02215E58: + add r0, r5, #0 + bl MOD56_02216120 + mov r0, #0x3b + mov r1, #0x13 + lsl r0, r0, #4 + str r1, [r5, r0] + add r0, r4, #0 + pop {r4, r5, r6, pc} +_02215E6A: + add r0, r4, #0 + pop {r4, r5, r6, pc} + nop +_02215E70: .word 0x000001E2 + thumb_func_end MOD56_02215D68 + + thumb_func_start MOD56_02215E74 +MOD56_02215E74: ; 0x02215E74 + push {r3, r4, lr} + sub sp, #0xc + add r4, r1, #0 + bl FUN_02031810 + cmp r0, #0 + bne _02215E9C + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x36 + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r4, #2 +_02215E9C: + add r0, r4, #0 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD56_02215E74 + + thumb_func_start MOD56_02215EA4 +MOD56_02215EA4: ; 0x02215EA4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r4, r1, #0 + add r6, r2, #0 + bl LoadPlayerDataAddress + bl FUN_02024FF4 + add r7, r0, #0 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02215EE0 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_02215EE0: + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02215F04 + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_02215F04: + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #8 + beq _02215F30 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _02215F30 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r5, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD7C + mov r0, #0x5e + mov r1, #8 + lsl r0, r0, #2 + str r1, [r5, r0] +_02215F30: + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r0, _02215FEC ; =0x0000012D + mov r1, #0xcf + str r0, [sp, #0x10] + add r0, r5, #0 + add r0, #0xc0 + lsl r1, r1, #2 + mov r2, #2 + ldr r0, [r0] + add r1, r5, r1 + add r3, r2, #0 + bl FUN_02019064 + cmp r6, #0 + beq _02215F70 + add r0, r5, #0 + mov r2, #0x56 + add r0, #0xd0 + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r5, r2] + add r1, r4, #0 + bl FUN_0200A8E0 + b _02215F82 +_02215F70: + add r0, r5, #0 + mov r2, #0x56 + add r0, #0xcc + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r5, r2] + add r1, r4, #0 + bl FUN_0200A8E0 +_02215F82: + mov r2, #0x57 + add r0, r5, #0 + lsl r2, r2, #2 + add r0, #0xc8 + ldr r1, [r5, r2] + sub r2, r2, #4 + ldr r0, [r0] + ldr r2, [r5, r2] + bl FUN_0200B7B8 + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0xcf + lsl r0, r0, #2 + ldr r2, _02215FF0 ; =0x000001E2 + add r0, r5, r0 + mov r1, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r0, #1 + bl FUN_02002B60 + mov r0, #0 + bl FUN_02002B7C + mov r3, #0 + str r3, [sp] + str r7, [sp, #4] + mov r2, #0x57 + mov r0, #0xcf + lsl r0, r0, #2 + str r3, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02215FEC: .word 0x0000012D +_02215FF0: .word 0x000001E2 + thumb_func_end MOD56_02215EA4 + + thumb_func_start MOD56_02215FF4 +MOD56_02215FF4: ; 0x02215FF4 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + add r4, r1, #0 + bl MOD56_02216274 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02216024 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_02216024: + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02216048 + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019178 +_02216048: + mov r3, #4 + str r3, [sp] + mov r0, #0x17 + str r0, [sp, #4] + mov r0, #0x10 + str r0, [sp, #8] + mov r0, #0xc + str r0, [sp, #0xc] + mov r0, #0x69 + str r0, [sp, #0x10] + add r0, r5, #0 + add r0, #0xc0 + mov r1, #0xdb + lsl r1, r1, #2 + ldr r0, [r0] + add r1, r5, r1 + mov r2, #2 + bl FUN_02019064 + add r0, r5, #0 + mov r2, #0x56 + add r0, #0xd0 + lsl r2, r2, #2 + ldr r0, [r0] + ldr r2, [r5, r2] + add r1, r4, #0 + bl FUN_0200A8E0 + mov r2, #0x57 + add r0, r5, #0 + lsl r2, r2, #2 + add r0, #0xc8 + ldr r1, [r5, r2] + sub r2, r2, #4 + ldr r0, [r0] + ldr r2, [r5, r2] + bl FUN_0200B7B8 + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0xdb + lsl r0, r0, #2 + ldr r2, _022160E0 ; =0x000001D9 + add r0, r5, r0 + mov r1, #1 + mov r3, #0xb + bl FUN_0200CCA4 + mov r3, #0 + mov r0, #0xdb + lsl r0, r0, #2 + str r3, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r3, [sp, #8] + add r2, #0x5d + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0xdb + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_02019220 + add sp, #0x14 + pop {r4, r5, pc} + nop +_022160E0: .word 0x000001D9 + thumb_func_end MOD56_02215FF4 + + thumb_func_start MOD56_022160E4 +MOD56_022160E4: ; 0x022160E4 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0 + add r6, r1, #0 + mvn r0, r0 + cmp r6, r0 + beq _0221611C + mov r0, #0x36 + bl FUN_02023928 + add r4, r0, #0 + ldr r0, [r5] + add r1, r6, #0 + bl FUN_020283A4 + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0202395C + add r5, #0xc8 + ldr r0, [r5] + mov r1, #0 + add r2, r4, #0 + bl FUN_0200ABC0 + add r0, r4, #0 + bl FUN_02016A18 +_0221611C: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD56_022160E4 + + thumb_func_start MOD56_02216120 +MOD56_02216120: ; 0x02216120 + push {r4, lr} + add r4, r0, #0 + bl MOD56_02216274 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #8 + beq _02216154 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _02216154 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD7C + mov r0, #0x5e + mov r1, #8 + lsl r0, r0, #2 + str r1, [r4, r0] +_02216154: + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _02216178 + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_02216178: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD56_02216120 + + thumb_func_start MOD56_0221617C +MOD56_0221617C: ; 0x0221617C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + ldr r1, [r5, #4] + ldrb r0, [r1, #0x1b] + cmp r0, r4 + beq _022161C8 + add r0, r4, #0 + strb r4, [r1, #0x1b] + bl MOD56_02211EA4 + cmp r0, #0 + bne _022161C8 + cmp r4, #8 + beq _022161C8 + cmp r4, #1 + bne _022161A8 + mov r0, #0 + mov r1, #0x1e + bl FUN_020053CC + b _022161C8 +_022161A8: + cmp r4, #0x10 + bne _022161C8 + ldr r0, _022161D8 ; =0x00000497 + mov r1, #0x5a + bl FUN_0200488C + mov r0, #7 + mov r1, #0x12 + mov r2, #0 + bl FUN_02004828 + mov r0, #0x7f + mov r1, #0x1e + mov r2, #1 + bl FUN_0200538C +_022161C8: + ldr r0, [r5, #4] + mov r1, #0x24 + bl MOD04_021D8478 + add r0, r5, #0 + bl MOD56_0221341C + pop {r3, r4, r5, pc} + .align 2, 0 +_022161D8: .word 0x00000497 + thumb_func_end MOD56_0221617C + + thumb_func_start MOD56_022161DC +MOD56_022161DC: ; 0x022161DC + push {r4, lr} + add r4, r0, #0 + ldr r2, [r4, #4] + add r0, r2, #0 + add r0, #0x21 + ldrb r1, [r0] + mov r0, #1 + add r2, #0x21 + sub r0, r0, r1 + strb r0, [r2] + ldr r0, [r4, #4] + add r0, #0x21 + ldrb r0, [r0] + bl MOD04_021D8678 + ldr r0, [r4, #4] + mov r1, #0x24 + bl MOD04_021D8478 + ldr r0, [r4, #4] + add r0, #0x21 + ldrb r0, [r0] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD56_022161DC + + thumb_func_start MOD56_0221620C +MOD56_0221620C: ; 0x0221620C + push {r4, lr} + add r4, r0, #0 + ldr r2, [r4, #4] + add r0, r2, #0 + add r0, #0x22 + ldrb r1, [r0] + mov r0, #1 + add r2, #0x22 + sub r0, r0, r1 + strb r0, [r2] + ldr r1, [r4, #4] + add r0, r1, #0 + add r0, #0x22 + ldrb r0, [r0] + add r1, #0x21 + strb r0, [r1] + ldr r0, [r4, #4] + add r0, #0x21 + ldrb r0, [r0] + bl MOD04_021D8678 + ldr r0, [r4, #4] + mov r1, #0x24 + bl MOD04_021D8478 + ldr r0, [r4, #4] + add r0, #0x22 + ldrb r0, [r0] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD56_0221620C + + thumb_func_start MOD56_02216248 +MOD56_02216248: ; 0x02216248 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #4] + add r0, r1, #0 + add r0, #0x22 + ldrb r0, [r0] + add r1, #0x21 + strb r0, [r1] + ldr r0, [r4, #4] + add r0, #0x21 + ldrb r0, [r0] + bl MOD04_021D8678 + ldr r0, [r4, #4] + mov r1, #0x24 + bl MOD04_021D8478 + ldr r0, [r4, #4] + add r0, #0x22 + ldrb r0, [r0] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD56_02216248 + + thumb_func_start MOD56_02216274 +MOD56_02216274: ; 0x02216274 + push {r4, lr} + add r4, r0, #0 + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + cmp r0, #0 + beq _022162DC + bl FUN_0200DC24 + mov r0, #6 + mov r1, #0 + lsl r0, r0, #6 + str r1, [r4, r0] + sub r0, #8 + ldr r0, [r4, r0] + cmp r0, #8 + beq _022162B8 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _022162B8 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD7C + mov r0, #0x5e + mov r1, #8 + lsl r0, r0, #2 + str r1, [r4, r0] +_022162B8: + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019048 + cmp r0, #0 + beq _022162DC + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0xcf + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 +_022162DC: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD56_02216274 + + .section .rodata + ; 0x022162E0 + .incbin "baserom.nds", 0x2A5E80, 0x19C + + .section .data + ; 0x02216480 + .incbin "baserom.nds", 0x2A6020, 0x180 diff --git a/arm9/modules/57/asm/module_57.s b/arm9/modules/57/asm/module_57.s new file mode 100644 index 00000000..d5dae418 --- /dev/null +++ b/arm9/modules/57/asm/module_57.s @@ -0,0 +1,4303 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD57_021D74E0 +MOD57_021D74E0: ; 0x021D74E0 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F34 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D76E8 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D76EC ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + mov r2, #0xa + mov r0, #3 + mov r1, #0x19 + lsl r2, r2, #0xe + bl FUN_0201681C + ldr r1, _021D76F0 ; =0x00003320 + add r0, r5, #0 + mov r2, #0x19 + bl FUN_02006268 + ldr r2, _021D76F0 ; =0x00003320 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + add r0, r5, #0 + bl FUN_0200628C + add r1, r4, #0 + add r1, #0xb4 + str r0, [r1] + mov r0, #0x19 + bl FUN_02016B94 + str r0, [r4] + add r0, r4, #0 + bl MOD57_021D79AC + bl MOD57_021D7A14 + ldr r0, [r4] + bl MOD57_021D7B94 + add r0, r4, #0 + bl MOD57_021D7CA4 + bl FUN_0201CC08 + mov r0, #4 + bl FUN_0201CC24 + mov r1, #0 + mov r0, #0x38 + add r2, r1, #0 + bl FUN_0200433C + ldr r0, _021D76F4 ; =0x000032F0 + add r0, r4, r0 + bl MOD57_021D95A8 + ldr r0, _021D76F8 ; =0x00000695 + bl FUN_020054C8 + ldr r0, _021D76FC ; =0x000030E4 + add r0, r4, r0 + bl MOD57_021D9184 + mov r0, #0 + add r1, r0, #0 + add r2, sp, #0xc + add r5, r0, #0 + mov r6, #1 +_021D7598: + add r3, r4, #0 + add r3, #0xb4 + ldr r3, [r3] + add r3, r3, r1 + ldr r3, [r3, #0x48] + lsl r3, r3, #0x1f + asr r3, r3, #0x1f + beq _021D75AC + strb r6, [r2] + b _021D75AE +_021D75AC: + strb r5, [r2] +_021D75AE: + add r0, r0, #1 + add r1, r1, #4 + add r2, r2, #1 + cmp r0, #8 + blt _021D7598 + ldr r0, _021D76FC ; =0x000030E4 + add r1, sp, #0xc + add r0, r4, r0 + bl MOD57_021D92F4 + ldr r0, [r4] + add r1, r4, #4 + bl MOD57_021D899C + mov r5, #0 + mov r6, #1 +_021D75CE: + add r0, r4, #0 + add r0, #0xb4 + ldr r0, [r0] + ldrb r0, [r0, #2] + asr r0, r5 + tst r0, r6 + beq _021D75E4 + add r0, r4, #0 + add r1, r5, #0 + bl MOD57_021D8428 +_021D75E4: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #8 + blo _021D75CE + ldr r0, [r4] + mov r1, #3 + bl FUN_02017CD0 + add r1, r4, #0 + add r1, #0xb4 + ldr r1, [r1] + add r0, r4, #4 + bl MOD57_021D89F0 + add r0, r4, #0 + add r0, #0xb4 + ldr r0, [r0] + ldrb r0, [r0, #4] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + beq _021D761E + ldr r2, _021D7700 ; =0x0000330C + add r0, r4, #0 + ldr r2, [r4, r2] + add r0, #0x54 + mov r1, #1 + bl MOD57_021D9144 +_021D761E: + mov r1, #0xc3 + mov r5, #0 + lsl r1, r1, #6 + str r5, [r4, r1] + ldr r0, _021D7704 ; =0x00003318 + sub r2, r5, #1 + strb r5, [r4, r0] + add r1, #0x14 + str r2, [r4, r1] + add r1, r0, #0 + sub r1, #0x2c + str r5, [r4, r1] + add r0, r0, #5 + ldr r7, _021D76FC ; =0x000030E4 + strb r5, [r4, r0] +_021D763C: + ldr r0, _021D7708 ; =0x00003310 + add r2, r4, r5 + mov r1, #0 + strb r1, [r2, r0] + add r0, r4, #0 + add r0, #0xb4 + ldr r1, [r0] + lsl r0, r5, #2 + add r1, #0x48 + ldr r0, [r1, r0] + lsl r1, r0, #0x1f + asr r1, r1, #0x1f + beq _021D76A8 + asr r0, r0, #1 + bl MOD57_021D870C + add r6, r0, #0 + cmp r6, #4 + bhi _021D7680 + bne _021D7670 + add r0, r4, r7 + add r1, r5, #0 + mov r2, #0 + bl MOD57_021D951C + b _021D7680 +_021D7670: + mov r2, #3 + sub r2, r2, r6 + lsl r2, r2, #0x18 + add r0, r4, r7 + add r1, r5, #0 + lsr r2, r2, #0x18 + bl MOD57_021D951C +_021D7680: + cmp r6, #3 + bne _021D7694 + lsl r0, r5, #2 + add r1, r4, r0 + ldr r0, _021D770C ; =0x00003260 + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200A0 + b _021D76A8 +_021D7694: + cmp r6, #4 + bne _021D76A8 + lsl r0, r5, #2 + add r1, r4, r0 + mov r0, #0xca + lsl r0, r0, #6 + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200A0 +_021D76A8: + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #8 + blo _021D763C + bl MOD57_021D8588 + ldr r0, _021D7710 ; =MOD57_021D848C + mov r1, #0 + bl FUN_02015F10 + bl FUN_02033F20 + mov r0, #1 + mov r1, #0x2a + bl FUN_020051EC + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x19 + mov r1, #3 + str r0, [sp, #8] + mov r0, #2 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + mov r0, #1 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D76E8: .word 0xFFFFE0FF +_021D76EC: .word 0x04001000 +_021D76F0: .word 0x00003320 +_021D76F4: .word 0x000032F0 +_021D76F8: .word 0x00000695 +_021D76FC: .word 0x000030E4 +_021D7700: .word 0x0000330C +_021D7704: .word 0x00003318 +_021D7708: .word 0x00003310 +_021D770C: .word 0x00003260 +_021D7710: .word MOD57_021D848C + thumb_func_end MOD57_021D74E0 + + thumb_func_start MOD57_021D7714 +MOD57_021D7714: ; 0x021D7714 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #4 + bhi _021D7744 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7732: ; jump table + .short _021D773C - _021D7732 - 2 ; case 0 + .short _021D774C - _021D7732 - 2 ; case 1 + .short _021D786A - _021D7732 - 2 ; case 2 + .short _021D7878 - _021D7732 - 2 ; case 3 + .short _021D7886 - _021D7732 - 2 ; case 4 +_021D773C: + bl FUN_0200E308 + cmp r0, #0 + bne _021D7746 +_021D7744: + b _021D790C +_021D7746: + mov r0, #1 + str r0, [r5] + b _021D790C +_021D774C: + bl MOD57_021D81F8 + add r6, r0, #0 + cmp r6, #1 + bne _021D77CA + ldr r0, _021D7920 ; =0x000030D4 + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D779E + ldr r2, _021D7924 ; =0x000032EC + mov r1, #1 + add r0, r2, #0 + str r1, [r4, r2] + add r0, #0x31 + sub r2, #0x4c + strb r1, [r4, r0] + ldr r0, [r4, r2] + bl FUN_020200A0 + ldr r0, _021D7928 ; =0x000032A0 + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_020200BC + ldr r0, _021D7928 ; =0x000032A0 + mov r1, #0xa + ldr r0, [r4, r0] + bl FUN_02020130 + ldr r0, _021D792C ; =0x0000331A + mov r2, #0 + strb r2, [r4, r0] + add r1, r0, #2 + strb r2, [r4, r1] + add r0, r0, #1 + strb r2, [r4, r0] + ldr r0, _021D7930 ; =0x000030D8 + str r2, [r4, r0] + mov r0, #4 + str r0, [r5] + b _021D7856 +_021D779E: + sub r0, r0, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + add r0, r4, #0 + add r0, #0xb4 + ldr r1, [r0] + lsl r0, r5, #2 + add r1, #0x48 + ldr r0, [r1, r0] + lsl r1, r0, #0x1f + asr r1, r1, #0x1f + beq _021D7856 + asr r0, r0, #1 + bl MOD57_021D870C + add r2, r0, #0 + ldr r0, _021D7934 ; =0x000032F0 + add r1, r5, #0 + add r0, r4, r0 + bl MOD57_021D95BC + b _021D7856 +_021D77CA: + cmp r6, #2 + ldr r1, _021D7924 ; =0x000032EC + bne _021D77F0 + ldr r0, [r4, r1] + cmp r0, #0 + beq _021D77E8 + ldr r0, _021D7920 ; =0x000030D4 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D77E8 + mov r0, #0 + str r0, [r4, r1] + mov r0, #2 + add r1, #0x31 + strb r0, [r4, r1] +_021D77E8: + add r0, r4, #0 + bl MOD57_021D82BC + b _021D7856 +_021D77F0: + ldr r0, [r4, r1] + cmp r0, #0 + beq _021D780A + add r0, r1, #0 + add r0, #0x31 + ldrb r0, [r4, r0] + cmp r0, #0 + bne _021D780A + mov r0, #0 + str r0, [r4, r1] + mov r0, #2 + add r1, #0x31 + strb r0, [r4, r1] +_021D780A: + add r0, r4, #0 + add r0, #0xb4 + ldr r0, [r0] + ldrb r0, [r0, #4] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + beq _021D7822 + mov r0, #0x33 + lsl r0, r0, #8 + add r0, r4, r0 + bl MOD57_021D874C +_021D7822: + cmp r6, #3 + bne _021D7832 + ldr r0, _021D792C ; =0x0000331A + mov r1, #0 + strb r1, [r4, r0] + mov r0, #3 + str r0, [r5] + b _021D7856 +_021D7832: + cmp r6, #4 + bne _021D7856 + ldr r0, _021D7938 ; =0x000005DC + bl FUN_020054C8 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r1, #0x19 + str r1, [sp, #8] + mov r1, #4 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + mov r0, #2 + str r0, [r5] +_021D7856: + add r1, r4, #0 + add r1, #0xb4 + ldr r1, [r1] + add r0, r4, #0 + ldrb r1, [r1, #4] + lsl r1, r1, #0x1e + lsr r1, r1, #0x1f + bl MOD57_021D88A4 + b _021D790C +_021D786A: + bl FUN_0200E308 + cmp r0, #0 + beq _021D790C + add sp, #0xc + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D7878: + bl MOD57_021D7F20 + cmp r0, #0 + beq _021D790C + mov r0, #1 + str r0, [r5] + b _021D790C +_021D7886: + ldr r1, _021D793C ; =0x0000331D + ldrb r1, [r4, r1] + cmp r1, #0 + bne _021D78EA + bl MOD57_021D81F8 + cmp r0, #1 + bne _021D78B8 + ldr r0, _021D7920 ; =0x000030D4 + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D78EA + ldr r1, _021D7924 ; =0x000032EC + mov r2, #1 + add r0, r1, #0 + str r2, [r4, r1] + add r0, #0x31 + strb r2, [r4, r0] + add r0, r1, #0 + mov r2, #0 + add r0, #0x30 + strb r2, [r4, r0] + add r1, #0x2f + strb r2, [r4, r1] + b _021D78EA +_021D78B8: + cmp r0, #2 + bne _021D78D8 + ldr r1, _021D7924 ; =0x000032EC + ldr r0, [r4, r1] + cmp r0, #0 + beq _021D78EA + ldr r0, _021D7920 ; =0x000030D4 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D78EA + mov r0, #0 + str r0, [r4, r1] + mov r0, #2 + add r1, #0x31 + strb r0, [r4, r1] + b _021D78EA +_021D78D8: + ldr r0, _021D7924 ; =0x000032EC + ldr r1, [r4, r0] + cmp r1, #0 + beq _021D78EA + mov r1, #0 + str r1, [r4, r0] + mov r1, #2 + add r0, #0x31 + strb r1, [r4, r0] +_021D78EA: + ldr r0, _021D7930 ; =0x000030D8 + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D78FC + add r0, r4, #0 + bl MOD57_021D80F8 + ldr r1, _021D7930 ; =0x000030D8 + str r0, [r4, r1] +_021D78FC: + ldr r0, _021D7930 ; =0x000030D8 + ldr r1, [r4, r0] + cmp r1, #0 + beq _021D790C + mov r1, #0 + str r1, [r4, r0] + mov r0, #1 + str r0, [r5] +_021D790C: + add r0, r4, #0 + bl MOD57_021D85F4 + ldr r0, _021D7940 ; =0x000030E4 + ldr r0, [r4, r0] + bl FUN_0201FDEC + mov r0, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D7920: .word 0x000030D4 +_021D7924: .word 0x000032EC +_021D7928: .word 0x000032A0 +_021D792C: .word 0x0000331A +_021D7930: .word 0x000030D8 +_021D7934: .word 0x000032F0 +_021D7938: .word 0x000005DC +_021D793C: .word 0x0000331D +_021D7940: .word 0x000030E4 + thumb_func_end MOD57_021D7714 + + thumb_func_start MOD57_021D7944 +MOD57_021D7944: ; 0x021D7944 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + bl MOD57_021D8588 + add r0, r4, #0 + bl MOD57_021D79F4 + ldr r0, _021D79A0 ; =0x000030E4 + add r0, r4, r0 + bl MOD57_021D94BC + ldr r0, _021D79A4 ; =0x000030B8 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _021D79A8 ; =0x000032F8 + ldr r0, [r4, r0] + bl FUN_02016A18 + add r0, r4, #4 + bl MOD57_021D89D4 + ldr r0, [r4] + bl MOD57_021D7EDC + bl FUN_0201CD04 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x19 + bl FUN_020168D0 + mov r0, #1 + mov r1, #0x7f + bl FUN_020051EC + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D79A0: .word 0x000030E4 +_021D79A4: .word 0x000030B8 +_021D79A8: .word 0x000032F8 + thumb_func_end MOD57_021D7944 + + thumb_func_start MOD57_021D79AC +MOD57_021D79AC: ; 0x021D79AC + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #4 + mov r1, #0x19 + bl FUN_020219F4 + ldr r1, _021D79E8 ; =0x00003308 + str r0, [r5, r1] + mov r0, #5 + mov r1, #0x19 + bl FUN_020219F4 + ldr r1, _021D79EC ; =0x0000330C + ldr r2, _021D79F0 ; =0x0000022D + str r0, [r5, r1] + mov r0, #0 + mov r1, #0x1a + mov r3, #0x19 + bl FUN_0200A86C + ldr r2, _021D79EC ; =0x0000330C + add r4, r0, #0 + ldr r2, [r5, r2] + mov r1, #0xb + bl FUN_0200A8E0 + add r0, r4, #0 + bl FUN_0200A8B8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D79E8: .word 0x00003308 +_021D79EC: .word 0x0000330C +_021D79F0: .word 0x0000022D + thumb_func_end MOD57_021D79AC + + thumb_func_start MOD57_021D79F4 +MOD57_021D79F4: ; 0x021D79F4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D7A0C ; =0x00003308 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _021D7A10 ; =0x0000330C + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + nop +_021D7A0C: .word 0x00003308 +_021D7A10: .word 0x0000330C + thumb_func_end MOD57_021D79F4 + + thumb_func_start MOD57_021D7A14 +MOD57_021D7A14: ; 0x021D7A14 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7A30 ; =0x021D9800 + add r3, sp, #0 + mov r2, #5 +_021D7A1E: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7A1E + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7A30: .word 0x021D9800 + thumb_func_end MOD57_021D7A14 + + thumb_func_start MOD57_021D7A34 +MOD57_021D7A34: ; 0x021D7A34 + push {r3, r4, r5, lr} + cmp r1, #0 + beq _021D7AB6 + cmp r0, #5 + bhi _021D7AC4 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7A4A: ; jump table + .short _021D7A56 - _021D7A4A - 2 ; case 0 + .short _021D7A66 - _021D7A4A - 2 ; case 1 + .short _021D7A76 - _021D7A4A - 2 ; case 2 + .short _021D7A86 - _021D7A4A - 2 ; case 3 + .short _021D7A96 - _021D7A4A - 2 ; case 4 + .short _021D7AA6 - _021D7A4A - 2 ; case 5 +_021D7A56: + mov r0, #0x33 + mov r1, #0 + add r2, sp, #0 + mov r3, #0x19 + bl FUN_02006C08 + add r4, r0, #0 + b _021D7AC4 +_021D7A66: + mov r0, #0x33 + mov r1, #1 + add r2, sp, #0 + mov r3, #0x19 + bl FUN_02006C08 + add r4, r0, #0 + b _021D7AC4 +_021D7A76: + mov r0, #0x33 + mov r1, #2 + add r2, sp, #0 + mov r3, #0x19 + bl FUN_02006C08 + add r4, r0, #0 + b _021D7AC4 +_021D7A86: + mov r0, #0x33 + mov r1, #3 + add r2, sp, #0 + mov r3, #0x19 + bl FUN_02006C08 + add r4, r0, #0 + b _021D7AC4 +_021D7A96: + mov r0, #0x33 + mov r1, #4 + add r2, sp, #0 + mov r3, #0x19 + bl FUN_02006C08 + add r4, r0, #0 + b _021D7AC4 +_021D7AA6: + mov r0, #0x33 + mov r1, #5 + add r2, sp, #0 + mov r3, #0x19 + bl FUN_02006C08 + add r4, r0, #0 + b _021D7AC4 +_021D7AB6: + mov r0, #0x33 + mov r1, #6 + add r2, sp, #0 + mov r3, #0x19 + bl FUN_02006C08 + add r4, r0, #0 +_021D7AC4: + ldr r0, [sp] + mov r1, #2 + ldr r0, [r0, #0xc] + lsl r1, r1, #8 + bl DC_FlushRange + ldr r0, [sp] + mov r1, #0x20 + ldr r5, [r0, #0xc] + mov r2, #0x60 + add r0, r5, #0 + add r0, #0x20 + bl GXS_LoadBGPltt + mov r1, #0x1e + lsl r1, r1, #4 + add r0, r5, r1 + mov r2, #0x20 + bl GXS_LoadBGPltt + add r0, r4, #0 + bl FUN_02016A18 + pop {r3, r4, r5, pc} + thumb_func_end MOD57_021D7A34 + + thumb_func_start MOD57_021D7AF4 +MOD57_021D7AF4: ; 0x021D7AF4 + push {r3, r4, lr} + sub sp, #4 + cmp r0, #0xa + beq _021D7B02 + cmp r0, #0xb + beq _021D7B12 + b _021D7B22 +_021D7B02: + mov r0, #0x33 + mov r1, #7 + add r2, sp, #0 + mov r3, #0x19 + bl FUN_02006C08 + add r4, r0, #0 + b _021D7B30 +_021D7B12: + mov r0, #0x33 + mov r1, #8 + add r2, sp, #0 + mov r3, #0x19 + bl FUN_02006C08 + add r4, r0, #0 + b _021D7B30 +_021D7B22: + mov r0, #0x33 + mov r1, #9 + add r2, sp, #0 + mov r3, #0x19 + bl FUN_02006C08 + add r4, r0, #0 +_021D7B30: + ldr r0, [sp] + mov r1, #0x20 + ldr r0, [r0, #0xc] + bl DC_FlushRange + ldr r0, [sp] + mov r1, #0 + ldr r0, [r0, #0xc] + mov r2, #0x20 + bl GX_LoadBGPltt + ldr r0, [sp] + mov r1, #0 + ldr r0, [r0, #0xc] + mov r2, #0x20 + bl GXS_LoadBGPltt + add r0, r4, #0 + bl FUN_02016A18 + add sp, #4 + pop {r3, r4, pc} + thumb_func_end MOD57_021D7AF4 + + thumb_func_start MOD57_021D7B5C +MOD57_021D7B5C: ; 0x021D7B5C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #0x33 + mov r1, #0x29 + add r2, sp, #0 + mov r3, #0x19 + bl FUN_02006C08 + add r6, r0, #0 + ldr r0, [sp] + lsl r4, r4, #5 + ldr r5, [r0, #0xc] + mov r1, #0x20 + add r0, r5, r4 + bl DC_FlushRange + add r0, r5, r4 + mov r1, #0x80 + mov r2, #0x20 + bl GXS_LoadBGPltt + add r0, r6, #0 + bl FUN_02016A18 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD57_021D7B5C + + thumb_func_start MOD57_021D7B94 +MOD57_021D7B94: ; 0x021D7B94 + push {r4, r5, lr} + sub sp, #0x9c + ldr r2, _021D7C84 ; =0x04000304 + add r4, r0, #0 + ldrh r1, [r2] + ldr r0, _021D7C88 ; =0xFFFF7FFF + ldr r5, _021D7C8C ; =0x021D9764 + and r0, r1 + strh r0, [r2] + add r3, sp, #0x8c + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D7C90 ; =0x021D9774 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #7 + str r0, [r3] + add r0, r4, #0 + mov r3, #2 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #7 + bl FUN_02018744 + ldr r5, _021D7C94 ; =0x021D9790 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #5 + bl FUN_02018744 + ldr r5, _021D7C98 ; =0x021D97C8 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #6 + str r0, [r3] + add r0, r4, #0 + mov r3, #1 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #6 + bl FUN_02018744 + ldr r5, _021D7C9C ; =0x021D97E4 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _021D7CA0 ; =0x021D97AC + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + add r0, r4, #0 + mov r3, #1 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #3 + bl FUN_02018744 + add sp, #0x9c + pop {r4, r5, pc} + .align 2, 0 +_021D7C84: .word 0x04000304 +_021D7C88: .word 0xFFFF7FFF +_021D7C8C: .word 0x021D9764 +_021D7C90: .word 0x021D9774 +_021D7C94: .word 0x021D9790 +_021D7C98: .word 0x021D97C8 +_021D7C9C: .word 0x021D97E4 +_021D7CA0: .word 0x021D97AC + thumb_func_end MOD57_021D7B94 + + thumb_func_start MOD57_021D7CA4 +MOD57_021D7CA4: ; 0x021D7CA4 + push {r3, r4, r5, lr} + sub sp, #0x18 + add r4, r0, #0 + mov r0, #0x33 + mov r1, #0 + add r2, sp, #0x14 + mov r3, #0x19 + bl FUN_02006C08 + add r5, r0, #0 + ldr r0, [sp, #0x14] + mov r1, #2 + ldr r0, [r0, #0xc] + lsl r1, r1, #8 + bl DC_FlushRange + ldr r0, [sp, #0x14] + mov r2, #2 + ldr r0, [r0, #0xc] + mov r1, #0 + lsl r2, r2, #8 + bl GXS_LoadBGPltt + add r0, r5, #0 + bl FUN_02016A18 + add r0, r4, #0 + add r0, #0xb4 + ldr r1, [r0] + ldrb r0, [r1, #3] + ldrb r1, [r1, #4] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1f + bl MOD57_021D7A34 + mov r0, #0x33 + mov r1, #0xa + add r2, sp, #0x10 + mov r3, #0x19 + bl FUN_02006C08 + add r5, r0, #0 + ldr r0, [sp, #0x10] + mov r1, #2 + ldr r0, [r0, #0xc] + lsl r1, r1, #8 + bl DC_FlushRange + ldr r0, [sp, #0x10] + mov r2, #2 + ldr r0, [r0, #0xc] + mov r1, #0 + lsl r2, r2, #8 + bl GX_LoadBGPltt + add r0, r5, #0 + bl FUN_02016A18 + add r0, r4, #0 + add r0, #0xb4 + ldr r0, [r0] + ldrb r0, [r0] + bl MOD57_021D7AF4 + add r0, r4, #0 + add r0, #0xb4 + ldr r0, [r0] + ldrb r1, [r0, #5] + cmp r1, #0xff + bne _021D7D9C + mov r2, #0 + mov r0, #0x33 + mov r1, #0x1b + mov r3, #0x19 + str r2, [sp] + bl FUN_02006C98 + ldr r1, _021D7ECC ; =0x000030B8 + str r0, [r4, r1] + ldr r0, [r4, r1] + cmp r0, #0 + bne _021D7D4C + bl ErrorHandling +_021D7D4C: + ldr r1, _021D7ECC ; =0x000030B8 + ldr r0, [r4, r1] + add r1, r1, #4 + add r1, r4, r1 + bl FUN_020B0030 + cmp r0, #0 + bne _021D7D60 + bl ErrorHandling +_021D7D60: + add r0, r4, #0 + add r0, #0xb4 + ldr r0, [r0] + ldr r3, _021D7ED0 ; =0x000032FC + ldrb r0, [r0, #4] + lsl r0, r0, #0x1d + lsr r0, r0, #0x1f + bne _021D7D86 + mov r0, #0x19 + str r0, [sp] + mov r0, #0x33 + mov r1, #0x23 + mov r2, #0 + add r3, r4, r3 + bl FUN_02006BDC + ldr r1, _021D7ED4 ; =0x000032F8 + str r0, [r4, r1] + b _021D7DF2 +_021D7D86: + mov r0, #0x19 + str r0, [sp] + mov r0, #0x33 + mov r1, #0x24 + mov r2, #0 + add r3, r4, r3 + bl FUN_02006BDC + ldr r1, _021D7ED4 ; =0x000032F8 + str r0, [r4, r1] + b _021D7DF2 +_021D7D9C: + lsl r3, r1, #2 + ldr r1, _021D7ED8 ; =0x021D9888 + mov r2, #0 + ldr r1, [r1, r3] + mov r0, #0x33 + mov r3, #0x19 + str r2, [sp] + bl FUN_02006C98 + ldr r1, _021D7ECC ; =0x000030B8 + str r0, [r4, r1] + ldr r0, [r4, r1] + cmp r0, #0 + bne _021D7DBC + bl ErrorHandling +_021D7DBC: + ldr r1, _021D7ECC ; =0x000030B8 + ldr r0, [r4, r1] + add r1, r1, #4 + add r1, r4, r1 + bl FUN_020B0030 + cmp r0, #0 + bne _021D7DD0 + bl ErrorHandling +_021D7DD0: + ldr r3, _021D7ED0 ; =0x000032FC + mov r0, #0x19 + str r0, [sp] + mov r0, #0x33 + mov r1, #0x2a + mov r2, #0 + add r3, r4, r3 + bl FUN_02006BDC + ldr r1, _021D7ED4 ; =0x000032F8 + str r0, [r4, r1] + add r0, r4, #0 + add r0, #0xb4 + ldr r0, [r0] + ldrb r0, [r0, #5] + bl MOD57_021D7B5C +_021D7DF2: + add r0, r4, #0 + bl MOD57_021D8690 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x19 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x33 + mov r1, #0x17 + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x19 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x33 + mov r1, #0x1e + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x19 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x33 + mov r1, #0x18 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x19 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x33 + mov r1, #0x20 + mov r3, #5 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r1, #0x19 + str r1, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x33 + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x19 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x33 + mov r1, #0x21 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x19 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x33 + mov r1, #0x1a + mov r3, #3 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x19 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x33 + mov r1, #0x22 + mov r3, #3 + bl FUN_020068C8 + add r0, r4, #0 + add r0, #0xb4 + ldr r0, [r0] + add r4, #0xb8 + add r0, #0x68 + add r1, r4, #0 + bl MOD57_021D87DC + add sp, #0x18 + pop {r3, r4, r5, pc} + nop +_021D7ECC: .word 0x000030B8 +_021D7ED0: .word 0x000032FC +_021D7ED4: .word 0x000032F8 +_021D7ED8: .word 0x021D9888 + thumb_func_end MOD57_021D7CA4 + + thumb_func_start MOD57_021D7EDC +MOD57_021D7EDC: ; 0x021D7EDC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x1f + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #0x13 + mov r1, #0 + bl FUN_0201E74C + add r0, r4, #0 + mov r1, #7 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD57_021D7EDC + + thumb_func_start MOD57_021D7F20 +MOD57_021D7F20: ; 0x021D7F20 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + ldr r2, _021D80DC ; =0x0000331A + add r4, r0, #0 + ldrb r0, [r4, r2] + mov r5, #0 + cmp r0, #3 + bls _021D7F32 + b _021D8092 +_021D7F32: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7F3E: ; jump table + .short _021D7F46 - _021D7F3E - 2 ; case 0 + .short _021D7F74 - _021D7F3E - 2 ; case 1 + .short _021D7FB0 - _021D7F3E - 2 ; case 2 + .short _021D804C - _021D7F3E - 2 ; case 3 +_021D7F46: + mov r0, #8 + sub r2, #0x36 + str r0, [r4, r2] + ldr r1, _021D80E0 ; =0x000030C8 + lsl r2, r0, #9 + str r2, [r4, r1] + add r0, r1, #4 + str r2, [r4, r0] + ldr r0, [r4, r1] + add r0, #0x80 + str r0, [r4, r1] + add r0, r1, #4 + ldr r2, [r4, r0] + add r2, #0x80 + str r2, [r4, r0] + ldr r0, _021D80E4 ; =0x00000696 + bl FUN_020054C8 + ldr r0, _021D80DC ; =0x0000331A + ldrb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, r0] + b _021D8092 +_021D7F74: + add r0, r2, #0 + sub r0, #0x36 + ldr r3, [r4, r0] + ldr r1, _021D80E0 ; =0x000030C8 + mov r0, #0xc + mov r7, #2 + sub r0, r0, r3 + add r3, r7, #0 + ldr r6, [r4, r1] + lsl r3, r0 + sub r0, r6, r3 + str r0, [r4, r1] + ldr r0, [r4, r1] + cmp r0, #0 + bgt _021D7F9C + mov r0, #0x24 + str r0, [r4, r1] + ldrb r0, [r4, r2] + add r0, r0, #1 + strb r0, [r4, r2] +_021D7F9C: + ldr r0, _021D80E8 ; =0x000032E4 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #1 + bgt _021D8092 + mov r1, #1 + str r1, [r4, r0] + b _021D8092 +_021D7FB0: + mov r0, #0xc3 + lsl r0, r0, #6 + ldr r1, [r4, r0] + cmp r1, #0 + bne _021D8006 + mov r1, #1 + str r1, [r4, r0] + str r5, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + mov r0, #0x19 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x33 + mov r1, #0x1f + mov r3, #6 + bl FUN_020068C8 + add r0, r4, #4 + add r1, r5, #0 + mov r2, #6 + bl MOD57_021D8FB8 + add r0, r4, #0 + bl MOD57_021D86E8 + ldr r0, [r4] + mov r1, #7 + bl FUN_02018744 + add r1, r4, #0 + add r1, #0xb4 + ldr r1, [r1] + add r0, r4, #4 + bl MOD57_021D8CF8 + add r2, r4, #0 + ldr r0, [r4] + mov r1, #7 + add r2, #0xb8 + bl MOD57_021D8830 + b _021D8042 +_021D8006: + str r5, [r4, r0] + str r5, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + mov r0, #0x19 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x33 + mov r1, #0x1e + mov r3, #6 + bl FUN_020068C8 + add r0, r4, #4 + mov r1, #7 + mov r2, #0xa + bl MOD57_021D8FB8 + ldr r0, [r4] + mov r1, #7 + bl FUN_02018744 + add r0, r4, #0 + bl MOD57_021D8690 + add r1, r4, #0 + add r1, #0xb4 + ldr r1, [r1] + add r0, r4, #4 + bl MOD57_021D89F0 +_021D8042: + ldr r0, _021D80DC ; =0x0000331A + ldrb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, r0] + b _021D8092 +_021D804C: + add r0, r2, #0 + sub r0, #0x36 + ldr r0, [r4, r0] + add r1, r0, #1 + add r0, r2, #0 + sub r0, #0x36 + str r1, [r4, r0] + add r0, r2, #0 + sub r0, #0x36 + ldr r0, [r4, r0] + cmp r0, #8 + ble _021D806A + mov r0, #8 + sub r2, #0x36 + str r0, [r4, r2] +_021D806A: + ldr r2, _021D80E8 ; =0x000032E4 + ldr r3, _021D80E0 ; =0x000030C8 + ldr r6, [r4, r2] + mov r2, #0xc + mov r0, #2 + sub r2, r2, r6 + add r6, r0, #0 + ldr r1, [r4, r3] + lsl r6, r2 + add r1, r1, r6 + str r1, [r4, r3] + ldr r2, [r4, r3] + lsl r1, r0, #0xb + cmp r2, r1 + blt _021D8092 + str r1, [r4, r3] + str r1, [r4, r3] + add r0, r3, #4 + str r1, [r4, r0] + mov r5, #1 +_021D8092: + ldr r0, _021D80E0 ; =0x000030C8 + ldr r0, [r4, r0] + bl FX_Inv + add r6, r0, #0 + ldr r0, _021D80EC ; =0x000030CC + ldr r0, [r4, r0] + bl FX_Inv + mov r1, #0 + str r6, [sp, #0x10] + str r1, [sp, #0x14] + str r1, [sp, #0x18] + str r0, [sp, #0x1c] + bl OS_WaitVBlankIntr + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _021D80F0 ; =0x04001020 + add r1, sp, #0x10 + mov r2, #0x80 + mov r3, #0x60 + bl G2x_SetBGyAffine_ + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _021D80F4 ; =0x04001030 + add r1, sp, #0x10 + mov r2, #0x80 + mov r3, #0x60 + bl G2x_SetBGyAffine_ + add r0, r5, #0 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D80DC: .word 0x0000331A +_021D80E0: .word 0x000030C8 +_021D80E4: .word 0x00000696 +_021D80E8: .word 0x000032E4 +_021D80EC: .word 0x000030CC +_021D80F0: .word 0x04001020 +_021D80F4: .word 0x04001030 + thumb_func_end MOD57_021D7F20 + + thumb_func_start MOD57_021D80F8 +MOD57_021D80F8: ; 0x021D80F8 + push {r3, r4, r5, lr} + sub sp, #0x18 + add r4, r0, #0 + ldr r0, _021D81E4 ; =0x0000331A + ldrb r1, [r4, r0] + cmp r1, #3 + bhi _021D81AE + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D8112: ; jump table + .short _021D811A - _021D8112 - 2 ; case 0 + .short _021D8142 - _021D8112 - 2 ; case 1 + .short _021D8170 - _021D8112 - 2 ; case 2 + .short _021D81A8 - _021D8112 - 2 ; case 3 +_021D811A: + mov r2, #0 + sub r1, r0, #1 + strb r2, [r4, r1] + sub r1, r0, #2 + ldrb r1, [r4, r1] + cmp r1, #0 + bne _021D8134 + mov r2, #1 + ldr r1, _021D81E8 ; =0x000030D0 + lsl r2, r2, #0xc + str r2, [r4, r1] + mov r1, #1 + b _021D8136 +_021D8134: + mov r1, #2 +_021D8136: + strb r1, [r4, r0] + ldr r0, _021D81EC ; =0x00003318 + ldrb r0, [r4, r0] + bl MOD57_021D8894 + b _021D81AE +_021D8142: + sub r1, r0, #1 + ldrb r2, [r4, r1] + add r1, r2, #0 + add r3, r1, #1 + sub r1, r0, #1 + strb r3, [r4, r1] + ldr r3, _021D81E8 ; =0x000030D0 + lsl r5, r2, #2 + ldr r2, _021D81F0 ; =0x021D9850 + ldr r1, [r4, r3] + ldr r2, [r2, r5] + sub r1, r1, r2 + str r1, [r4, r3] + sub r1, r0, #1 + ldrb r1, [r4, r1] + cmp r1, #0xe + bne _021D81AE + mov r2, #1 + sub r1, r0, #2 + strb r2, [r4, r1] + mov r1, #3 + strb r1, [r4, r0] + b _021D81AE +_021D8170: + sub r1, r0, #1 + ldrb r2, [r4, r1] + ldr r5, _021D81E8 ; =0x000030D0 + add r1, r2, #0 + add r3, r1, #1 + sub r1, r0, #1 + strb r3, [r4, r1] + mov r3, #0xd + sub r2, r3, r2 + lsl r3, r2, #2 + ldr r2, _021D81F0 ; =0x021D9850 + ldr r1, [r4, r5] + ldr r2, [r2, r3] + add r1, r1, r2 + str r1, [r4, r5] + sub r1, r0, #1 + ldrb r1, [r4, r1] + cmp r1, #0xe + bne _021D81AE + mov r2, #0 + sub r1, r0, #2 + strb r2, [r4, r1] + mov r1, #1 + lsl r1, r1, #0xc + str r1, [r4, r5] + mov r1, #3 + strb r1, [r4, r0] + b _021D81AE +_021D81A8: + add sp, #0x18 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D81AE: + mov r0, #1 + lsl r0, r0, #0xc + bl FX_Inv + add r5, r0, #0 + ldr r0, _021D81E8 ; =0x000030D0 + ldr r0, [r4, r0] + bl FX_Inv + mov r1, #0 + str r5, [sp, #8] + str r1, [sp, #0xc] + str r1, [sp, #0x10] + str r0, [sp, #0x14] + bl OS_WaitVBlankIntr + mov r3, #0 + str r3, [sp] + ldr r0, _021D81F4 ; =0x04000030 + add r1, sp, #8 + mov r2, #0x80 + str r3, [sp, #4] + bl G2x_SetBGyAffine_ + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D81E4: .word 0x0000331A +_021D81E8: .word 0x000030D0 +_021D81EC: .word 0x00003318 +_021D81F0: .word 0x021D9850 +_021D81F4: .word 0x04000030 + thumb_func_end MOD57_021D80F8 + + thumb_func_start MOD57_021D81F8 +MOD57_021D81F8: ; 0x021D81F8 + push {r4, r5, r6, lr} + mov r6, #0 + add r5, r0, #0 + ldr r0, _021D82A8 ; =0x000030D4 + sub r1, r6, #1 + str r1, [r5, r0] + ldr r1, _021D82AC ; =0x021C48F8 + add r4, r6, #0 + ldrh r1, [r1, #0x20] + cmp r1, #0 + beq _021D8214 + mov r1, #1 + sub r0, #0x10 + str r1, [r5, r0] +_021D8214: + add r1, r5, #0 + add r1, #0xb4 + ldr r1, [r1] + ldr r2, _021D82B0 ; =0x021D9754 + ldrb r1, [r1, #4] + ldr r0, [r5] + lsl r1, r1, #0x1f + lsr r1, r1, #0x1f + lsl r3, r1, #3 + ldr r1, _021D82B4 ; =0x00003318 + add r2, r2, r3 + ldrb r1, [r5, r1] + lsl r1, r1, #2 + ldr r1, [r1, r2] + bl MOD57_021D890C + ldr r1, _021D82A8 ; =0x000030D4 + str r0, [r5, r1] + mov r0, #0 + ldr r2, [r5, r1] + mvn r0, r0 + cmp r2, r0 + beq _021D8248 + mov r6, #1 + add r4, r6, #0 + b _021D8288 +_021D8248: + ldr r0, _021D82AC ; =0x021C48F8 + ldrh r0, [r0, #0x22] + cmp r0, #0 + beq _021D8282 + add r1, r5, #0 + add r1, #0xb4 + ldr r1, [r1] + ldr r2, _021D82B0 ; =0x021D9754 + ldrb r1, [r1, #4] + ldr r0, [r5] + lsl r1, r1, #0x1f + lsr r1, r1, #0x1f + lsl r3, r1, #3 + ldr r1, _021D82B4 ; =0x00003318 + add r2, r2, r3 + ldrb r1, [r5, r1] + lsl r1, r1, #2 + ldr r1, [r1, r2] + bl MOD57_021D8954 + ldr r1, _021D82A8 ; =0x000030D4 + str r0, [r5, r1] + sub r1, #0x10 + ldr r0, [r5, r1] + cmp r0, #0 + beq _021D8288 + mov r6, #1 + mov r4, #2 + b _021D8288 +_021D8282: + mov r0, #0 + sub r1, #0x10 + str r0, [r5, r1] +_021D8288: + cmp r6, #0 + bne _021D82A2 + ldr r0, _021D82B8 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021D829A + mov r4, #3 + b _021D82A2 +_021D829A: + mov r0, #2 + tst r0, r1 + beq _021D82A2 + mov r4, #4 +_021D82A2: + add r0, r4, #0 + pop {r4, r5, r6, pc} + nop +_021D82A8: .word 0x000030D4 +_021D82AC: .word 0x021C48F8 +_021D82B0: .word 0x021D9754 +_021D82B4: .word 0x00003318 +_021D82B8: .word 0x021C48B8 + thumb_func_end MOD57_021D81F8 + + thumb_func_start MOD57_021D82BC +MOD57_021D82BC: ; 0x021D82BC + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _021D83BC ; =0x021C48F8 + ldr r6, _021D83C0 ; =0x0000FFFF + ldrh r3, [r0, #0x1c] + mov r4, #0 + cmp r3, r6 + beq _021D83AC + ldrh r0, [r0, #0x1e] + cmp r0, r6 + beq _021D83AC + ldr r1, _021D83C4 ; =0x000030DC + ldr r2, [r5, r1] + cmp r2, r6 + beq _021D83AC + add r0, r1, #4 + ldr r0, [r5, r0] + cmp r0, r6 + beq _021D83AC + sub r1, #8 + ldr r1, [r5, r1] + sub r0, r4, #1 + cmp r1, r0 + beq _021D83AC + cmp r1, #0 + beq _021D83AC + add r0, r5, #0 + add r0, #0xb4 + sub r1, r1, #1 + ldr r0, [r0] + lsl r1, r1, #2 + add r0, r0, r1 + ldr r0, [r0, #0x48] + lsl r0, r0, #0x1f + asr r0, r0, #0x1f + beq _021D83AC + cmp r2, r3 + ble _021D830E + sub r2, r2, r3 + sub r1, r4, #1 + b _021D8312 +_021D830E: + sub r2, r3, r2 + mov r1, #1 +_021D8312: + ldr r0, _021D83C8 ; =0x00003302 + cmp r2, #3 + strb r1, [r5, r0] + blt _021D8358 + cmp r2, #0x28 + bgt _021D8358 + ldr r0, _021D83BC ; =0x021C48F8 + ldrh r1, [r0, #0x1e] + ldr r0, _021D83CC ; =0x000030E0 + ldr r0, [r5, r0] + cmp r0, r1 + ble _021D8332 + sub r2, r0, r1 + mov r1, #0 + mvn r1, r1 + b _021D8336 +_021D8332: + sub r2, r1, r0 + mov r1, #1 +_021D8336: + ldr r0, _021D83D0 ; =0x00003303 + cmp r2, #0x28 + strb r1, [r5, r0] + bgt _021D834C + mov r0, #0x33 + lsl r0, r0, #8 + add r0, r5, r0 + mov r4, #1 + bl MOD57_021D875C + b _021D8398 +_021D834C: + mov r0, #0x33 + lsl r0, r0, #8 + add r0, r5, r0 + bl MOD57_021D8744 + b _021D8398 +_021D8358: + cmp r2, #0x28 + bgt _021D8398 + ldr r0, _021D83BC ; =0x021C48F8 + ldrh r1, [r0, #0x1e] + ldr r0, _021D83CC ; =0x000030E0 + ldr r0, [r5, r0] + cmp r0, r1 + ble _021D8370 + sub r2, r0, r1 + mov r1, #0 + mvn r1, r1 + b _021D8374 +_021D8370: + sub r2, r1, r0 + mov r1, #1 +_021D8374: + ldr r0, _021D83D0 ; =0x00003303 + cmp r2, #3 + strb r1, [r5, r0] + blt _021D838E + cmp r2, #0x28 + bgt _021D838E + mov r0, #0x33 + lsl r0, r0, #8 + add r0, r5, r0 + mov r4, #1 + bl MOD57_021D875C + b _021D8398 +_021D838E: + mov r0, #0x33 + lsl r0, r0, #8 + add r0, r5, r0 + bl MOD57_021D8744 +_021D8398: + cmp r4, #0 + beq _021D83AC + ldr r1, _021D83D4 ; =0x000030D4 + add r0, r5, #0 + ldr r1, [r5, r1] + sub r1, r1, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl MOD57_021D84AC +_021D83AC: + ldr r1, _021D83BC ; =0x021C48F8 + ldr r0, _021D83C4 ; =0x000030DC + ldrh r2, [r1, #0x1c] + str r2, [r5, r0] + ldrh r1, [r1, #0x1e] + add r0, r0, #4 + str r1, [r5, r0] + pop {r4, r5, r6, pc} + .align 2, 0 +_021D83BC: .word 0x021C48F8 +_021D83C0: .word 0x0000FFFF +_021D83C4: .word 0x000030DC +_021D83C8: .word 0x00003302 +_021D83CC: .word 0x000030E0 +_021D83D0: .word 0x00003303 +_021D83D4: .word 0x000030D4 + thumb_func_end MOD57_021D82BC + + thumb_func_start MOD57_021D83D8 +MOD57_021D83D8: ; 0x021D83D8 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + add r4, r1, #0 + ldr r0, [r0] + mov r1, #2 + bl FUN_0201886C + add r7, r0, #0 + lsl r0, r4, #2 + add r0, #0x80 + lsl r0, r0, #0x10 + mov r2, #0 + lsr r3, r0, #0x10 +_021D83F2: + lsl r0, r2, #5 + add r4, r3, r0 + add r0, r2, #0 + add r0, #0x13 + lsl r0, r0, #6 + mov r1, #0 + add r5, r7, r0 +_021D8400: + lsl r6, r1, #1 + add r0, r1, r4 + add r6, r5, r6 + strh r0, [r6, #0x1c] + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #4 + blo _021D8400 + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #4 + blo _021D83F2 + ldr r0, [sp] + mov r1, #2 + ldr r0, [r0] + bl FUN_02017CD0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD57_021D83D8 + + thumb_func_start MOD57_021D8428 +MOD57_021D8428: ; 0x021D8428 + push {r3, r4, r5, r6, r7, lr} + lsr r5, r1, #0x1f + lsl r4, r1, #0x1e + sub r4, r4, r5 + mov r2, #0x1e + ror r4, r2 + add r2, r5, r4 + lsl r2, r2, #0x18 + lsr r4, r2, #0x18 + lsl r1, r1, #0x16 + mov r2, #7 + add r5, r4, #0 + lsr r1, r1, #0x18 + mul r5, r2 + mov r6, #3 + add r4, r6, r5 + lsl r4, r4, #0x18 + mov r3, #4 + mul r2, r1 + add r1, r3, r2 + lsl r1, r1, #0x18 + lsr r5, r1, #0x18 + ldr r0, [r0] + add r1, r6, #0 + lsr r4, r4, #0x18 + bl FUN_0201886C + mov r2, #0 + add r3, r0, r4 + add r0, r2, #0 +_021D8464: + add r6, r2, r5 + lsl r4, r2, #4 + lsl r6, r6, #5 + add r1, r0, #0 + add r4, #0xba + add r6, r3, r6 +_021D8470: + add r7, r1, r4 + strb r7, [r6, r1] + add r1, r1, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, #5 + blo _021D8470 + add r1, r2, #1 + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + cmp r2, #5 + blo _021D8464 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD57_021D8428 + + thumb_func_start MOD57_021D848C +MOD57_021D848C: ; 0x021D848C + push {r3, lr} + bl FUN_0201C30C + bl FUN_02009F80 + ldr r3, _021D84A4 ; =0x027E0000 + ldr r1, _021D84A8 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + .align 2, 0 +_021D84A4: .word 0x027E0000 +_021D84A8: .word 0x00003FF8 + thumb_func_end MOD57_021D848C + + thumb_func_start MOD57_021D84AC +MOD57_021D84AC: ; 0x021D84AC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r0, #0xb4 + add r4, r1, #0 + ldr r0, [r0] + lsl r6, r4, #2 + add r0, r0, r6 + ldr r0, [r0, #0x48] + asr r0, r0, #1 + add r1, r0, #1 + str r1, [sp] + cmp r1, #0xc8 + bge _021D8578 + bl MOD57_021D870C + add r7, r0, #0 + ldr r0, _021D857C ; =0x00003310 + ldr r2, _021D8580 ; =0x021D9734 + add r1, r5, r0 + ldrb r0, [r1, r4] + ldrb r2, [r2, r7] + add r0, r0, #1 + strb r0, [r1, r4] + ldrb r0, [r1, r4] + cmp r0, r2 + blo _021D8578 + mov r0, #0 + strb r0, [r1, r4] + add r0, r5, #0 + add r0, #0xb4 + ldr r2, [r0] + mov r1, #1 + add r2, #0x48 + ldr r0, [r2, r6] + and r1, r0 + asr r0, r0, #1 + add r0, r0, #1 + lsl r0, r0, #1 + orr r0, r1 + str r0, [r2, r6] + ldr r0, [sp] + bl MOD57_021D870C + add r6, r0, #0 + cmp r7, r6 + bls _021D850C + bl ErrorHandling +_021D850C: + cmp r7, r6 + bhs _021D8578 + cmp r6, #4 + bhi _021D8536 + cmp r6, #4 + ldr r0, _021D8584 ; =0x000030E4 + bne _021D8526 + add r0, r5, r0 + add r1, r4, #0 + mov r2, #0 + bl MOD57_021D951C + b _021D8536 +_021D8526: + mov r2, #3 + sub r2, r2, r6 + lsl r2, r2, #0x18 + add r0, r5, r0 + add r1, r4, #0 + lsr r2, r2, #0x18 + bl MOD57_021D951C +_021D8536: + cmp r6, #3 + bne _021D854E + add r4, #8 + lsl r0, r4, #2 + add r1, r5, r0 + mov r0, #0xc9 + lsl r0, r0, #6 + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200A0 + pop {r3, r4, r5, r6, r7, pc} +_021D854E: + cmp r6, #4 + bne _021D8578 + add r0, r4, #0 + add r0, #8 + lsl r0, r0, #2 + add r1, r5, r0 + mov r0, #0xc9 + lsl r0, r0, #6 + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 + add r4, #0x10 + lsl r0, r4, #2 + add r1, r5, r0 + mov r0, #0xc9 + lsl r0, r0, #6 + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200A0 +_021D8578: + pop {r3, r4, r5, r6, r7, pc} + nop +_021D857C: .word 0x00003310 +_021D8580: .word 0x021D9734 +_021D8584: .word 0x000030E4 + thumb_func_end MOD57_021D84AC + + thumb_func_start MOD57_021D8588 +MOD57_021D8588: ; 0x021D8588 + push {r4, lr} + sub sp, #0x18 + mov r0, #1 + lsl r0, r0, #0xc + bl FX_Inv + add r4, r0, #0 + mov r0, #1 + lsl r0, r0, #0xc + bl FX_Inv + mov r1, #0 + str r4, [sp, #8] + str r1, [sp, #0xc] + str r1, [sp, #0x10] + str r0, [sp, #0x14] + bl OS_WaitVBlankIntr + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _021D85E8 ; =0x04001020 + add r1, sp, #8 + mov r2, #0x80 + mov r3, #0x60 + bl G2x_SetBGyAffine_ + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _021D85EC ; =0x04001030 + add r1, sp, #8 + mov r2, #0x80 + mov r3, #0x60 + bl G2x_SetBGyAffine_ + bl OS_WaitVBlankIntr + mov r3, #0 + str r3, [sp] + ldr r0, _021D85F0 ; =0x04000030 + add r1, sp, #8 + mov r2, #0x80 + str r3, [sp, #4] + bl G2x_SetBGyAffine_ + add sp, #0x18 + pop {r4, pc} + .align 2, 0 +_021D85E8: .word 0x04001020 +_021D85EC: .word 0x04001030 +_021D85F0: .word 0x04000030 + thumb_func_end MOD57_021D8588 + + thumb_func_start MOD57_021D85F4 +MOD57_021D85F4: ; 0x021D85F4 + push {r4, lr} + ldr r1, _021D862C ; =0x0000331D + add r4, r0, #0 + ldrb r1, [r4, r1] + cmp r1, #1 + bne _021D8614 + ldr r1, _021D8630 ; =0x021D973C + ldr r1, [r1, #0x10] + bl MOD57_021D8634 + cmp r0, #0 + beq _021D862A + ldr r0, _021D862C ; =0x0000331D + mov r1, #0 + strb r1, [r4, r0] + pop {r4, pc} +_021D8614: + cmp r1, #2 + bne _021D862A + ldr r1, _021D8630 ; =0x021D973C + ldr r1, [r1, #0x14] + bl MOD57_021D8634 + cmp r0, #0 + beq _021D862A + ldr r0, _021D862C ; =0x0000331D + mov r1, #0 + strb r1, [r4, r0] +_021D862A: + pop {r4, pc} + .align 2, 0 +_021D862C: .word 0x0000331D +_021D8630: .word 0x021D973C + thumb_func_end MOD57_021D85F4 + + thumb_func_start MOD57_021D8634 +MOD57_021D8634: ; 0x021D8634 + push {r4, lr} + ldr r2, _021D8688 ; =0x0000331C + add r4, r0, #0 + ldrb r0, [r4, r2] + lsl r0, r0, #1 + ldrb r3, [r1, r0] + cmp r3, #0 + bne _021D8650 + mov r1, #0 + sub r0, r2, #1 + strb r1, [r4, r0] + strb r1, [r4, r2] + mov r0, #1 + pop {r4, pc} +_021D8650: + sub r0, r2, #1 + ldrb r0, [r4, r0] + cmp r0, r3 + blo _021D8664 + mov r3, #0 + sub r0, r2, #1 + strb r3, [r4, r0] + ldrb r0, [r4, r2] + add r0, r0, #1 + strb r0, [r4, r2] +_021D8664: + ldr r0, _021D8688 ; =0x0000331C + ldrb r2, [r4, r0] + sub r0, r0, #1 + ldrb r0, [r4, r0] + lsl r2, r2, #1 + add r2, r2, #1 + ldrb r1, [r1, r2] + cmp r0, #0 + bne _021D867C + add r0, r4, #0 + bl MOD57_021D83D8 +_021D867C: + ldr r0, _021D868C ; =0x0000331B + ldrb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, r0] + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D8688: .word 0x0000331C +_021D868C: .word 0x0000331B + thumb_func_end MOD57_021D8634 + + thumb_func_start MOD57_021D8690 +MOD57_021D8690: ; 0x021D8690 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D86E0 ; =0x000032FC + mov r1, #7 + ldr r0, [r5, r0] + ldr r4, [r0, #8] + ldr r0, _021D86E4 ; =0x000030BC + ldr r3, [r5, r0] + mov r0, #0 + str r0, [sp] + ldr r2, [r3, #0x14] + ldr r0, [r5] + ldr r3, [r3, #0x10] + bl FUN_02017E14 + ldr r0, [r5] + mov r1, #7 + bl FUN_0201886C + cmp r0, #0 + beq _021D86CA + ldr r2, _021D86E0 ; =0x000032FC + ldr r0, [r5] + ldr r2, [r5, r2] + mov r1, #7 + add r2, #0xc + add r3, r4, #0 + bl FUN_02017DFC +_021D86CA: + mov r0, #0 + str r0, [sp] + ldr r2, _021D86E0 ; =0x000032FC + ldr r0, [r5] + ldr r2, [r5, r2] + mov r1, #7 + add r2, #0xc + add r3, r4, #0 + bl FUN_02017CE8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D86E0: .word 0x000032FC +_021D86E4: .word 0x000030BC + thumb_func_end MOD57_021D8690 + + thumb_func_start MOD57_021D86E8 +MOD57_021D86E8: ; 0x021D86E8 + push {r3, lr} + sub sp, #0x10 + mov r1, #6 + str r1, [sp] + str r1, [sp, #4] + mov r1, #9 + str r1, [sp, #8] + mov r1, #0x10 + str r1, [sp, #0xc] + ldr r0, [r0] + mov r1, #7 + mov r2, #0 + mov r3, #0x14 + bl FUN_02018540 + add sp, #0x10 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD57_021D86E8 + + thumb_func_start MOD57_021D870C +MOD57_021D870C: ; 0x021D870C + push {r3, lr} + cmp r0, #0 + blt _021D871A + cmp r0, #0x64 + bge _021D871A + mov r0, #0 + pop {r3, pc} +_021D871A: + cmp r0, #0x8c + bge _021D8722 + mov r0, #1 + pop {r3, pc} +_021D8722: + cmp r0, #0xaa + bge _021D872A + mov r0, #2 + pop {r3, pc} +_021D872A: + cmp r0, #0xbe + bge _021D8732 + mov r0, #3 + pop {r3, pc} +_021D8732: + cmp r0, #0xc8 + bge _021D873A + mov r0, #4 + pop {r3, pc} +_021D873A: + bl ErrorHandling + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD57_021D870C + + thumb_func_start MOD57_021D8744 +MOD57_021D8744: ; 0x021D8744 + mov r1, #0 + strb r1, [r0, #2] + strb r1, [r0, #3] + bx lr + thumb_func_end MOD57_021D8744 + + thumb_func_start MOD57_021D874C +MOD57_021D874C: ; 0x021D874C + mov r1, #0 + strb r1, [r0] + strb r1, [r0, #1] + strb r1, [r0, #2] + strb r1, [r0, #3] + strb r1, [r0, #4] + bx lr + .align 2, 0 + thumb_func_end MOD57_021D874C + + thumb_func_start MOD57_021D875C +MOD57_021D875C: ; 0x021D875C + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, _021D87D4 ; =0x021D973C + ldr r1, [r0] + ldr r0, [r0, #4] + str r1, [sp] + str r0, [sp, #4] + mov r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _021D8782 + mov r0, #1 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _021D8782 + ldr r0, _021D87D8 ; =0x00000692 + bl FUN_020054C8 +_021D8782: + mov r0, #0 + ldrsb r1, [r4, r0] + mov r0, #2 + ldrsb r0, [r4, r0] + mul r0, r1 + bmi _021D879A + mov r0, #1 + ldrsb r1, [r4, r0] + mov r0, #3 + ldrsb r0, [r4, r0] + mul r0, r1 + bpl _021D87BC +_021D879A: + ldrb r0, [r4, #4] + add r0, r0, #1 + lsr r2, r0, #0x1f + lsl r1, r0, #0x1f + sub r1, r1, r2 + mov r0, #0x1f + ror r1, r0 + add r0, r2, r1 + strb r0, [r4, #4] + ldrb r0, [r4, #4] + lsl r1, r0, #2 + add r0, sp, #0 + ldr r0, [r0, r1] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_020054C8 +_021D87BC: + mov r0, #2 + ldrsb r0, [r4, r0] + strb r0, [r4] + mov r0, #3 + ldrsb r0, [r4, r0] + strb r0, [r4, #1] + mov r0, #0 + strb r0, [r4, #2] + strb r0, [r4, #3] + add sp, #8 + pop {r4, pc} + nop +_021D87D4: .word 0x021D973C +_021D87D8: .word 0x00000692 + thumb_func_end MOD57_021D875C + + thumb_func_start MOD57_021D87DC +MOD57_021D87DC: ; 0x021D87DC + push {r4, r5, r6, r7} + mov r2, #3 + mov r4, #0 + lsl r2, r2, #0xc +_021D87E4: + asr r3, r4, #2 + lsr r3, r3, #0x1d + add r3, r4, r3 + asr r3, r3, #3 + lsr r6, r3, #0x1f + lsl r5, r3, #0x1d + sub r5, r5, r6 + mov r3, #0x1d + ror r5, r3 + add r3, r6, r5 + asr r5, r4, #5 + lsr r5, r5, #0x1a + lsl r3, r3, #0x18 + add r5, r4, r5 + lsr r3, r3, #0x18 + asr r5, r5, #6 + lsl r5, r5, #3 + add r3, r0, r3 + ldrb r3, [r5, r3] + lsr r7, r4, #0x1f + lsl r6, r4, #0x1d + sub r6, r6, r7 + mov r5, #0x1d + ror r6, r5 + add r5, r7, r6 + lsl r5, r5, #0x18 + add r6, r3, #0 + lsr r5, r5, #0x18 + asr r6, r5 + mov r3, #1 + and r3, r6 + strb r3, [r1, r4] + add r4, r4, #1 + cmp r4, r2 + blt _021D87E4 + pop {r4, r5, r6, r7} + bx lr + .align 2, 0 + thumb_func_end MOD57_021D87DC + + thumb_func_start MOD57_021D8830 +MOD57_021D8830: ; 0x021D8830 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r1, #0 + mov r1, #1 + str r1, [sp] + lsl r1, r7, #0x18 + mov r3, #3 + str r0, [sp, #4] + lsr r1, r1, #0x18 + lsl r3, r3, #0xc + bl FUN_02017E14 + lsl r1, r7, #0x18 + ldr r0, [sp, #4] + lsr r1, r1, #0x18 + bl FUN_0201886C + mov r4, #0 + add r1, r0, #0 + add r3, r4, #0 + add r0, r4, #0 +_021D885A: + add r5, r3, #0 + add r5, #0xe + lsl r5, r5, #6 + add r2, r0, #0 + add r5, r1, r5 +_021D8864: + lsl r6, r2, #1 + add r4, r4, #1 + add r2, r2, #1 + lsl r4, r4, #0x10 + lsl r2, r2, #0x18 + lsr r4, r4, #0x10 + add r6, r5, r6 + lsr r2, r2, #0x18 + strh r4, [r6, #8] + cmp r2, #0x18 + blo _021D8864 + add r2, r3, #1 + lsl r2, r2, #0x18 + lsr r3, r2, #0x18 + cmp r3, #8 + blo _021D885A + lsl r1, r7, #0x18 + ldr r0, [sp, #4] + lsr r1, r1, #0x18 + bl FUN_02017CD0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD57_021D8830 + + thumb_func_start MOD57_021D8894 +MOD57_021D8894: ; 0x021D8894 + ldr r3, _021D889C ; =FUN_020054C8 + ldr r0, _021D88A0 ; =0x00000699 + bx r3 + nop +_021D889C: .word FUN_020054C8 +_021D88A0: .word 0x00000699 + thumb_func_end MOD57_021D8894 + + thumb_func_start MOD57_021D88A4 +MOD57_021D88A4: ; 0x021D88A4 + push {r4, lr} + add r4, r0, #0 + cmp r1, #0 + beq _021D8900 + mov r0, #0xc3 + lsl r0, r0, #6 + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D88F0 + ldr r2, _021D8904 ; =0x0000331E + ldrb r0, [r4, r2] + cmp r0, #0xf + bne _021D88DE + add r1, r4, #0 + add r1, #0xb4 + sub r2, #0x16 + ldr r1, [r1] + ldr r2, [r4, r2] + add r0, r4, #4 + bl MOD57_021D905C + ldr r2, _021D8908 ; =0x0000330C + add r0, r4, #0 + ldr r2, [r4, r2] + add r0, #0x54 + mov r1, #1 + bl MOD57_021D9144 + b _021D88F0 +_021D88DE: + cmp r0, #0 + bne _021D88F0 + sub r2, #0x12 + add r0, r4, #0 + ldr r2, [r4, r2] + add r0, #0x54 + mov r1, #0 + bl MOD57_021D9144 +_021D88F0: + ldr r0, _021D8904 ; =0x0000331E + mov r1, #0x1e + ldrb r0, [r4, r0] + add r0, r0, #1 + bl _s32_div_f + ldr r0, _021D8904 ; =0x0000331E + strb r1, [r4, r0] +_021D8900: + pop {r4, pc} + nop +_021D8904: .word 0x0000331E +_021D8908: .word 0x0000330C + thumb_func_end MOD57_021D88A4 + + thumb_func_start MOD57_021D890C +MOD57_021D890C: ; 0x021D890C + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + add r0, r1, #0 + bl FUN_02020988 + mov r1, #0 + add r4, r0, #0 + mvn r1, r1 + cmp r4, r1 + beq _021D894A + cmp r4, #0 + beq _021D894C + mov r1, #0x40 + add r0, sp, #4 + strh r1, [r0] + add r0, sp, #4 + str r0, [sp] + ldr r3, _021D8950 ; =0x021C48F8 + add r0, r5, #0 + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #2 + bl FUN_0201AFBC + cmp r0, #0 + bne _021D894A + mov r0, #0 + add sp, #8 + mvn r0, r0 + pop {r3, r4, r5, pc} +_021D894A: + add r0, r4, #0 +_021D894C: + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8950: .word 0x021C48F8 + thumb_func_end MOD57_021D890C + + thumb_func_start MOD57_021D8954 +MOD57_021D8954: ; 0x021D8954 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + add r0, r1, #0 + bl FUN_02020968 + mov r1, #0 + add r4, r0, #0 + mvn r1, r1 + cmp r4, r1 + beq _021D8992 + cmp r4, #0 + beq _021D8994 + mov r1, #0x40 + add r0, sp, #4 + strh r1, [r0] + add r0, sp, #4 + str r0, [sp] + ldr r3, _021D8998 ; =0x021C48F8 + add r0, r5, #0 + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #2 + bl FUN_0201AFBC + cmp r0, #0 + bne _021D8992 + mov r0, #0 + add sp, #8 + mvn r0, r0 + pop {r3, r4, r5, pc} +_021D8992: + add r0, r4, #0 +_021D8994: + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8998: .word 0x021C48F8 + thumb_func_end MOD57_021D8954 + + thumb_func_start MOD57_021D899C +MOD57_021D899C: ; 0x021D899C + push {r3, r4, r5, r6, r7, lr} + ldr r7, _021D89D0 ; =0x021D98F4 + add r5, r0, #0 + add r6, r1, #0 + mov r4, #0 +_021D89A6: + lsl r1, r4, #4 + lsl r2, r4, #3 + add r0, r5, #0 + add r1, r6, r1 + add r2, r7, r2 + bl FUN_02019150 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xb + blo _021D89A6 + mov r2, #0 + add r0, r5, #0 + mov r1, #7 + mov r3, #1 + str r2, [sp] + bl FUN_02017F48 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D89D0: .word 0x021D98F4 + thumb_func_end MOD57_021D899C + + thumb_func_start MOD57_021D89D4 +MOD57_021D89D4: ; 0x021D89D4 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021D89DA: + lsl r0, r4, #4 + add r0, r5, r0 + bl FUN_02019178 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0xb + blo _021D89DA + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD57_021D89D4 + + thumb_func_start MOD57_021D89F0 +MOD57_021D89F0: ; 0x021D89F0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r6, r1, #0 + mov r1, #0x88 + str r1, [sp] + mov r1, #0x10 + str r1, [sp, #4] + mov r1, #0 + add r2, r1, #0 + add r3, r1, #0 + add r7, r0, #0 + bl FUN_020196F4 + mov r1, #0 + mov r0, #0x88 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r7, #0 + add r0, #0x10 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + mov r1, #0 + mov r0, #0x88 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r7, #0 + add r0, #0x20 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + mov r1, #0 + mov r0, #0x88 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r7, #0 + add r0, #0x30 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + mov r1, #0 + mov r0, #0x88 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r7, #0 + add r0, #0x40 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + mov r1, #0 + mov r0, #0xe0 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r7, #0 + add r0, #0x50 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + mov r1, #0 + mov r0, #0xe0 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r7, #0 + add r0, #0x60 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + ldr r2, _021D8CEC ; =0x0000022D + mov r0, #0 + mov r1, #0x1a + mov r3, #0x19 + bl FUN_0200A86C + str r0, [sp, #0x14] + mov r0, #0x20 + mov r1, #0x19 + bl FUN_020219F4 + add r5, r0, #0 + mov r4, #0 +_021D8AA8: + cmp r4, #3 + bne _021D8AB6 + bne _021D8AE0 + ldrb r0, [r6, #4] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1f + beq _021D8AE0 +_021D8AB6: + ldr r1, _021D8CF0 ; =0x021D98C8 + lsl r2, r4, #2 + ldr r1, [r1, r2] + ldr r0, [sp, #0x14] + add r2, r5, #0 + bl FUN_0200A8E0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _021D8CF4 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + lsl r0, r4, #4 + add r0, r7, r0 + add r2, r5, #0 + add r3, r1, #0 + bl FUN_0201BDE0 +_021D8AE0: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #7 + blo _021D8AA8 + mov r0, #0x20 + mov r1, #0x19 + bl FUN_020219F4 + str r0, [sp, #0x10] + mov r0, #6 + mov r1, #0x20 + mov r2, #0x19 + bl FUN_0200AA90 + mov r2, #0 + str r5, [sp] + add r4, r0, #0 + ldrh r0, [r6, #0x28] + mov r1, #0x88 + add r3, r2, #0 + str r0, [sp, #4] + mov r0, #5 + str r0, [sp, #8] + mov r0, #2 + str r0, [sp, #0xc] + add r0, r7, #0 + bl MOD57_021D8FD8 + add r1, r6, #0 + add r0, r5, #0 + add r1, #8 + bl FUN_02021E28 + add r0, r7, #0 + mov r2, #0 + add r0, #0x10 + mov r1, #0x88 + add r3, r2, #0 + str r5, [sp] + bl MOD57_021D9024 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, [r6, #0x1c] + add r0, r4, #0 + mov r1, #5 + mov r3, #6 + bl FUN_0200AD38 + ldr r0, [sp, #0x14] + ldr r2, [sp, #0x10] + mov r1, #0xe + bl FUN_0200A8E0 + ldr r2, [sp, #0x10] + add r0, r4, #0 + add r1, r5, #0 + bl FUN_0200B7B8 + mov r0, #0 + add r1, r5, #0 + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0x88 + sub r3, r1, r0 + mov r1, #0 + str r1, [sp] + ldr r0, _021D8CF4 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r7, #0 + str r1, [sp, #0xc] + add r0, #0x20 + add r2, r5, #0 + bl FUN_0201BDE0 + ldrb r0, [r6, #4] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1f + beq _021D8BA4 + str r5, [sp] + ldr r0, [r6, #0x20] + mov r2, #0 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + add r0, r7, #0 + add r0, #0x30 + mov r1, #0x88 + add r3, r2, #0 + bl MOD57_021D8FD8 +_021D8BA4: + str r5, [sp] + ldr r0, [r6, #0x24] + mov r2, #0 + str r0, [sp, #4] + mov r0, #9 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + add r0, r7, #0 + add r0, #0x40 + mov r1, #0x88 + add r3, r2, #0 + bl MOD57_021D8FD8 + ldrb r0, [r6, #4] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + beq _021D8C02 + ldr r0, [r6, #0x18] + bl FUN_02029EBC + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r3, #3 + bl FUN_0200AD38 + ldr r0, [r6, #0x18] + bl FUN_02029EC0 + mov r3, #2 + add r2, r0, #0 + str r3, [sp] + mov r1, #1 + add r0, r4, #0 + str r1, [sp, #4] + bl FUN_0200AD38 + ldr r0, [sp, #0x14] + ldr r2, [sp, #0x10] + mov r1, #0x10 + bl FUN_0200A8E0 + b _021D8C32 +_021D8C02: + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldrh r2, [r6, #0x2a] + add r0, r4, #0 + mov r1, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r3, #2 + add r2, r6, #0 + str r3, [sp] + mov r1, #1 + str r1, [sp, #4] + add r2, #0x2e + ldrb r2, [r2] + add r0, r4, #0 + bl FUN_0200AD38 + ldr r0, [sp, #0x14] + ldr r2, [sp, #0x10] + mov r1, #0xf + bl FUN_0200A8E0 +_021D8C32: + ldr r2, [sp, #0x10] + add r0, r4, #0 + add r1, r5, #0 + bl FUN_0200B7B8 + mov r0, #0 + add r1, r5, #0 + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xe0 + sub r3, r1, r0 + mov r1, #0 + str r1, [sp] + ldr r0, _021D8CF4 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r7, #0 + add r0, #0x50 + add r2, r5, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + mov r1, #2 + add r2, r6, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + add r2, #0x2f + ldrb r2, [r2] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_0200AD38 + add r2, r6, #0 + add r2, #0x30 + ldrb r2, [r2] + add r0, r4, #0 + mov r1, #3 + bl FUN_0200B764 + mov r3, #2 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + add r6, #0x31 + ldrb r2, [r6] + add r0, r4, #0 + mov r1, #4 + bl FUN_0200AD38 + ldr r0, [sp, #0x14] + ldr r2, [sp, #0x10] + mov r1, #0x11 + bl FUN_0200A8E0 + ldr r2, [sp, #0x10] + add r0, r4, #0 + add r1, r5, #0 + bl FUN_0200B7B8 + mov r0, #0 + add r1, r5, #0 + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xe0 + sub r3, r1, r0 + mov r1, #0 + str r1, [sp] + ldr r0, _021D8CF4 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r7, #0x60 + add r0, r7, #0 + add r2, r5, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_0200AB18 + add r0, r5, #0 + bl FUN_02021A20 + ldr r0, [sp, #0x14] + bl FUN_0200A8B8 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8CEC: .word 0x0000022D +_021D8CF0: .word 0x021D98C8 +_021D8CF4: .word 0x00010200 + thumb_func_end MOD57_021D89F0 + + thumb_func_start MOD57_021D8CF8 +MOD57_021D8CF8: ; 0x021D8CF8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r6, r0, #0 + mov r0, #0xe0 + str r0, [sp] + mov r0, #0x20 + str r1, [sp, #0x10] + mov r1, #0 + str r0, [sp, #4] + add r0, r6, #0 + add r0, #0x70 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + mov r1, #0 + mov r0, #0xe0 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r6, #0 + add r0, #0x80 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + mov r1, #0 + mov r0, #0xe0 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r6, #0 + add r0, #0x90 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + mov r1, #0 + mov r0, #0xe0 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r6, #0 + add r0, #0xa0 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + ldr r2, _021D8FAC ; =0x0000022D + mov r0, #0 + mov r1, #0x1a + mov r3, #0x19 + bl FUN_0200A86C + add r7, r0, #0 + mov r0, #0x20 + mov r1, #0x19 + bl FUN_020219F4 + add r5, r0, #0 + mov r4, #7 +_021D8D72: + ldr r1, _021D8FB0 ; =0x021D98C8 + lsl r2, r4, #2 + ldr r1, [r1, r2] + add r0, r7, #0 + add r2, r5, #0 + bl FUN_0200A8E0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _021D8FB4 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + lsl r0, r4, #4 + add r0, r6, r0 + add r2, r5, #0 + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xb + blo _021D8D72 + mov r0, #0x20 + mov r1, #0x19 + bl FUN_020219F4 + str r0, [sp, #0x14] + mov r0, #5 + mov r1, #0x20 + mov r2, #0x19 + bl FUN_0200AA90 + ldr r1, [sp, #0x10] + add r4, r0, #0 + add r1, #0x33 + ldrb r1, [r1] + cmp r1, #0 + beq _021D8E3C + mov r1, #2 + str r1, [sp] + mov r2, #1 + str r2, [sp, #4] + ldr r2, [sp, #0x10] + add r3, r1, #0 + add r2, #0x32 + ldrb r2, [r2] + bl FUN_0200AD38 + ldr r2, [sp, #0x10] + add r0, r4, #0 + add r2, #0x33 + ldrb r2, [r2] + mov r1, #3 + bl FUN_0200B764 + mov r3, #2 + ldr r2, [sp, #0x10] + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + add r2, #0x34 + ldrb r2, [r2] + add r0, r4, #0 + mov r1, #4 + bl FUN_0200AD38 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r2, [sp, #0x10] + add r0, r4, #0 + ldrh r2, [r2, #0x2c] + mov r1, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r3, #2 + ldr r2, [sp, #0x10] + str r3, [sp] + mov r1, #1 + str r1, [sp, #4] + add r2, #0x35 + ldrb r2, [r2] + add r0, r4, #0 + bl FUN_0200AD38 + ldr r2, [sp, #0x14] + add r0, r7, #0 + mov r1, #0x11 + bl FUN_0200A8E0 + ldr r2, [sp, #0x14] + add r0, r4, #0 + add r1, r5, #0 + bl FUN_0200B7B8 + b _021D8E74 +_021D8E3C: + ldr r2, [sp, #0x14] + add r0, r7, #0 + mov r1, #0xc + bl FUN_0200A8E0 + mov r1, #0 + str r1, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r2, [sp, #0x14] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_0200ABB4 + mov r3, #0 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r2, [sp, #0x14] + add r0, r4, #0 + mov r1, #1 + bl FUN_0200ABB4 + add r0, r7, #0 + mov r1, #0x14 + add r2, r5, #0 + bl FUN_0200A8E0 +_021D8E74: + mov r0, #0 + add r1, r5, #0 + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xe0 + sub r3, r1, r0 + mov r1, #0 + str r1, [sp] + ldr r0, _021D8FB4 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r6, #0 + add r0, #0x70 + add r2, r5, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + ldr r2, [sp, #0x14] + add r0, r7, #0 + mov r1, #0xf + bl FUN_0200A8E0 + ldr r2, [sp, #0x14] + add r0, r4, #0 + add r1, r5, #0 + bl FUN_0200B7B8 + mov r0, #0 + add r1, r5, #0 + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xe0 + sub r3, r1, r0 + mov r0, #0x10 + str r0, [sp] + mov r1, #0 + ldr r0, _021D8FB4 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r6, #0 + add r0, #0x70 + add r2, r5, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + mov r2, #0 + ldr r0, [sp, #0x10] + str r5, [sp] + ldr r0, [r0, #0x38] + mov r1, #0xe0 + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + add r0, r6, #0 + add r0, #0x80 + add r3, r2, #0 + bl MOD57_021D8FD8 + add r0, r7, #0 + mov r1, #0x12 + add r2, r5, #0 + bl FUN_0200A8E0 + mov r1, #0 + str r1, [sp] + ldr r0, _021D8FB4 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r6, #0 + add r0, #0x90 + add r2, r5, #0 + mov r3, #0x70 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + mov r2, #0 + ldr r0, [sp, #0x10] + str r5, [sp] + ldr r0, [r0, #0x40] + mov r1, #0xe0 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + add r0, r6, #0 + add r0, #0x90 + add r3, r2, #0 + bl MOD57_021D8FD8 + add r0, r7, #0 + mov r1, #0x13 + add r2, r5, #0 + bl FUN_0200A8E0 + mov r1, #0 + str r1, [sp] + ldr r0, _021D8FB4 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r6, #0 + add r0, #0x90 + add r2, r5, #0 + mov r3, #0xb0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + str r5, [sp] + ldr r0, [r0, #0x3c] + mov r1, #0xe0 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + add r0, r6, #0 + add r0, #0x90 + mov r2, #0x40 + mov r3, #0 + bl MOD57_021D8FD8 + mov r2, #0 + ldr r0, [sp, #0x10] + str r5, [sp] + ldr r0, [r0, #0x44] + add r6, #0xa0 + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + add r0, r6, #0 + mov r1, #0xe0 + add r3, r2, #0 + bl MOD57_021D8FD8 + ldr r0, [sp, #0x14] + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_0200AB18 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r7, #0 + bl FUN_0200A8B8 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8FAC: .word 0x0000022D +_021D8FB0: .word 0x021D98C8 +_021D8FB4: .word 0x00010200 + thumb_func_end MOD57_021D8CF8 + + thumb_func_start MOD57_021D8FB8 +MOD57_021D8FB8: ; 0x021D8FB8 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r6, r2, #0 + add r5, r0, #0 + cmp r4, r6 + bhi _021D8FD6 +_021D8FC4: + lsl r0, r4, #4 + add r0, r5, r0 + bl FUN_02019570 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, r6 + bls _021D8FC4 +_021D8FD6: + pop {r4, r5, r6, pc} + thumb_func_end MOD57_021D8FB8 + + thumb_func_start MOD57_021D8FD8 +MOD57_021D8FD8: ; 0x021D8FD8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r7, r0, #0 + mov r0, #1 + add r4, r2, #0 + str r0, [sp] + add r2, sp, #0x18 + add r5, r1, #0 + add r6, r3, #0 + ldrb r2, [r2, #0x18] + ldr r0, [sp, #0x28] + ldr r1, [sp, #0x2c] + ldr r3, [sp, #0x34] + bl FUN_02021B04 + mov r0, #0 + ldr r1, [sp, #0x28] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + add r3, r3, r4 + str r6, [sp] + mov r1, #0 + ldr r0, _021D9020 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + ldr r2, [sp, #0x28] + add r0, r7, #0 + sub r3, r5, r3 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9020: .word 0x00010200 + thumb_func_end MOD57_021D8FD8 + + thumb_func_start MOD57_021D9024 +MOD57_021D9024: ; 0x021D9024 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r7, r0, #0 + add r5, r1, #0 + mov r0, #0 + add r4, r2, #0 + ldr r1, [sp, #0x28] + add r6, r3, #0 + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + add r3, r3, r4 + str r6, [sp] + mov r1, #0 + ldr r0, _021D9058 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + ldr r2, [sp, #0x28] + add r0, r7, #0 + sub r3, r5, r3 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D9058: .word 0x00010200 + thumb_func_end MOD57_021D9024 + + thumb_func_start MOD57_021D905C +MOD57_021D905C: ; 0x021D905C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r1, #0 + add r7, r0, #0 + ldr r0, [r5, #0x18] + cmp r0, #0 + bne _021D906E + bl ErrorHandling +_021D906E: + ldr r0, [r5, #0x18] + bl FUN_02029EBC + mov r0, #0x28 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r7, #0 + mov r1, #0 + add r0, #0x50 + mov r2, #0xb8 + add r3, r1, #0 + bl FUN_020196F4 + ldr r2, _021D913C ; =0x0000022D + mov r0, #0 + mov r1, #0x1a + mov r3, #0x19 + bl FUN_0200A86C + str r0, [sp, #0x10] + mov r0, #0x20 + mov r1, #0x19 + bl FUN_020219F4 + add r4, r0, #0 + mov r0, #0x20 + mov r1, #0x19 + bl FUN_020219F4 + str r0, [sp, #0x14] + mov r0, #2 + mov r1, #0x20 + mov r2, #0x19 + bl FUN_0200AA90 + add r6, r0, #0 + ldr r0, [r5, #0x18] + bl FUN_02029EBC + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + add r0, r6, #0 + mov r1, #0 + mov r3, #3 + bl FUN_0200AD38 + ldr r0, [r5, #0x18] + bl FUN_02029EC0 + mov r3, #2 + add r2, r0, #0 + str r3, [sp] + mov r1, #1 + add r0, r6, #0 + str r1, [sp, #4] + bl FUN_0200AD38 + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x14] + mov r1, #0x10 + bl FUN_0200A8E0 + ldr r2, [sp, #0x14] + add r0, r6, #0 + add r1, r4, #0 + bl FUN_0200B7B8 + mov r0, #0 + add r1, r4, #0 + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xe0 + sub r3, r1, r0 + mov r1, #0 + str r1, [sp] + ldr r0, _021D9140 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r7, #0x50 + add r0, r7, #0 + add r2, r4, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + bl FUN_0200A8B8 + add r0, r4, #0 + bl FUN_02021A20 + ldr r0, [sp, #0x14] + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_0200AB18 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D913C: .word 0x0000022D +_021D9140: .word 0x00010200 + thumb_func_end MOD57_021D905C + + thumb_func_start MOD57_021D9144 +MOD57_021D9144: ; 0x021D9144 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + cmp r1, #0 + beq _021D9164 + mov r1, #0 + str r1, [sp] + ldr r3, _021D9180 ; =0x00010200 + str r1, [sp, #4] + str r3, [sp, #8] + mov r3, #0xcd + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add sp, #0x10 + pop {r4, pc} +_021D9164: + mov r1, #5 + str r1, [sp] + mov r1, #0x10 + str r1, [sp, #4] + mov r1, #0 + mov r2, #0xcd + add r3, r1, #0 + bl FUN_020196F4 + add r0, r4, #0 + bl FUN_020191D0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021D9180: .word 0x00010200 + thumb_func_end MOD57_021D9144 + + thumb_func_start MOD57_021D9184 +MOD57_021D9184: ; 0x021D9184 + push {r4, r5, r6, r7, lr} + sub sp, #0x3c + add r7, r0, #0 + bl MOD57_021D9578 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x80 + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x19 + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + mov r0, #0x19 + add r1, r7, #4 + add r2, r0, #0 + bl FUN_02008C9C + ldr r4, _021D92EC ; =0x021D994C + str r0, [r7] + mov r6, #0 + add r5, r7, #0 +_021D91BC: + ldrb r0, [r4] + add r1, r6, #0 + mov r2, #0x19 + bl FUN_02008DEC + mov r1, #0x4b + lsl r1, r1, #2 + str r0, [r5, r1] + add r6, r6, #1 + add r4, r4, #1 + add r5, r5, #4 + cmp r6, #4 + blt _021D91BC + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x19 + str r0, [sp, #8] + add r0, r1, #0 + ldr r0, [r7, r0] + mov r1, #0x33 + mov r2, #0x1c + mov r3, #0 + bl FUN_02008F34 + mov r1, #0x4f + lsl r1, r1, #2 + str r0, [r7, r1] + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #9 + str r0, [sp, #8] + mov r0, #0x19 + sub r1, #0xc + str r0, [sp, #0xc] + ldr r0, [r7, r1] + mov r1, #0x33 + mov r2, #0xb + mov r3, #0 + bl FUN_02008FEC + mov r1, #5 + lsl r1, r1, #6 + str r0, [r7, r1] + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x19 + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r7, r1] + mov r1, #0x33 + mov r2, #0x25 + mov r3, #0 + bl FUN_020090AC + mov r1, #0x51 + lsl r1, r1, #2 + str r0, [r7, r1] + mov r0, #1 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x19 + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r7, r1] + mov r1, #0x33 + mov r2, #0x27 + mov r3, #0 + bl FUN_020090AC + mov r1, #0x52 + lsl r1, r1, #2 + str r0, [r7, r1] + sub r1, #0xc + ldr r0, [r7, r1] + bl FUN_02009A50 + mov r0, #5 + lsl r0, r0, #6 + ldr r0, [r7, r0] + bl FUN_02009CF0 + ldr r3, _021D92F0 ; =0x021D9960 + add r2, sp, #0x1c + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + mov r0, #0x33 + mov r1, #0x19 + bl FUN_02006670 + str r0, [sp, #0x14] + mov r0, #0x1e + lsl r0, r0, #4 + add r0, r7, r0 + mov r4, #0 + str r0, [sp, #0x18] +_021D9290: + lsl r6, r4, #2 + add r1, sp, #0x1c + ldr r0, [sp, #0x14] + ldr r1, [r1, r6] + mov r2, #0x19 + add r5, r7, r6 + bl FUN_02006704 + mov r1, #7 + lsl r1, r1, #6 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D92CA + ldr r1, [sp, #0x18] + add r1, r1, r6 + bl FUN_020B0138 + cmp r0, #0 + bne _021D92CE + mov r0, #0x1e + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02016A18 + bl ErrorHandling + b _021D92CE +_021D92CA: + bl ErrorHandling +_021D92CE: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #8 + blo _021D9290 + ldr r0, [sp, #0x14] + bl FUN_020066F4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x3c + pop {r4, r5, r6, r7, pc} + nop +_021D92EC: .word 0x021D994C +_021D92F0: .word 0x021D9960 + thumb_func_end MOD57_021D9184 + + thumb_func_start MOD57_021D92F4 +MOD57_021D92F4: ; 0x021D92F4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x88 + add r7, r1, #0 + mov r1, #1 + str r0, [sp, #0x2c] + str r1, [sp] + sub r0, r1, #2 + str r0, [sp, #4] + str r0, [sp, #8] + mov r2, #0 + str r2, [sp, #0xc] + mov r0, #0x4b + lsl r0, r0, #2 + ldr r3, [sp, #0x2c] + str r1, [sp, #0x10] + ldr r3, [r3, r0] + add r4, r0, #4 + str r3, [sp, #0x14] + ldr r3, [sp, #0x2c] + ldr r3, [r3, r4] + add r4, r0, #0 + str r3, [sp, #0x18] + ldr r3, [sp, #0x2c] + add r4, #8 + ldr r3, [r3, r4] + add r0, #0xc + str r3, [sp, #0x1c] + ldr r3, [sp, #0x2c] + ldr r0, [r3, r0] + add r3, r1, #0 + str r0, [sp, #0x20] + str r2, [sp, #0x24] + str r2, [sp, #0x28] + add r0, sp, #0x64 + add r2, r1, #0 + bl FUN_02008AA4 + ldr r0, [sp, #0x2c] + mov r4, #0 + ldr r0, [r0] + ldr r6, _021D94B4 ; =0x021D99C0 + str r0, [sp, #0x34] + add r0, sp, #0x64 + str r0, [sp, #0x38] + mov r0, #1 + lsl r0, r0, #0xc + str r4, [sp, #0x3c] + str r4, [sp, #0x40] + str r4, [sp, #0x44] + str r0, [sp, #0x48] + str r0, [sp, #0x4c] + str r0, [sp, #0x50] + add r0, sp, #0x34 + strh r4, [r0, #0x20] + mov r0, #2 + str r0, [sp, #0x58] + mov r0, #1 + str r0, [sp, #0x5c] + mov r0, #0x19 + ldr r5, [sp, #0x2c] + str r0, [sp, #0x60] +_021D936E: + ldr r0, [r6] + lsl r0, r0, #0xc + str r0, [sp, #0x3c] + ldr r0, [r6, #4] + lsl r0, r0, #0xc + str r0, [sp, #0x40] + add r0, sp, #0x34 + bl FUN_0201FE94 + mov r1, #0x57 + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200BC + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_02020130 + ldrb r0, [r7, r4] + cmp r0, #0 + bne _021D93AE + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 +_021D93AE: + add r4, r4, #1 + add r6, #8 + add r5, r5, #4 + cmp r4, #8 + blt _021D936E + mov r0, #8 + ldr r4, _021D94B8 ; =0x021D9980 + ldr r5, [sp, #0x2c] + str r0, [sp, #0x30] + mov r6, #0 + mov r7, #1 +_021D93C4: + ldr r0, [r4] + str r7, [sp, #0x58] + lsl r0, r0, #0xc + str r0, [sp, #0x3c] + ldr r0, [r4, #4] + lsl r0, r0, #0xc + str r0, [sp, #0x40] + add r0, sp, #0x34 + bl FUN_0201FE94 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #8 + bl FUN_02020130 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + add r6, r6, #1 + add r4, #8 + add r5, r5, #4 + cmp r6, #8 + blt _021D93C4 + ldr r0, [sp, #0x30] + ldr r4, _021D94B8 ; =0x021D9980 + add r0, #8 + str r0, [sp, #0x30] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x30] + ldr r0, [sp, #0x30] + mov r6, #0 + lsl r1, r0, #2 + ldr r0, [sp, #0x2c] + mov r7, #1 + add r5, r0, r1 +_021D9424: + ldr r0, [r4] + str r7, [sp, #0x58] + lsl r0, r0, #0xc + str r0, [sp, #0x3c] + ldr r0, [r4, #4] + lsl r0, r0, #0xc + str r0, [sp, #0x40] + add r0, sp, #0x34 + bl FUN_0201FE94 + mov r1, #0x57 + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #9 + bl FUN_02020130 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + add r6, r6, #1 + add r4, #8 + add r5, r5, #4 + cmp r6, #8 + blt _021D9424 + mov r1, #0 + add r0, sp, #0x84 + strb r1, [r0] + mov r0, #6 + lsl r0, r0, #0x10 + str r0, [sp, #0x3c] + mov r0, #0x22 + lsl r0, r0, #0xe + str r0, [sp, #0x40] + str r1, [sp, #0x58] + mov r1, #0x57 + ldr r0, [sp, #0x2c] + lsl r1, r1, #2 + add r4, r0, r1 + ldr r0, [sp, #0x30] + add r0, #8 + str r0, [sp, #0x30] + lsl r0, r0, #0x18 + lsr r5, r0, #0x16 + add r0, sp, #0x34 + bl FUN_0201FE94 + str r0, [r4, r5] + ldr r0, [r4, r5] + mov r1, #0 + bl FUN_020200BC + ldr r0, [r4, r5] + mov r1, #0xa + bl FUN_02020130 + ldr r0, [r4, r5] + mov r1, #0 + bl FUN_020200A0 + add sp, #0x88 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D94B4: .word 0x021D99C0 +_021D94B8: .word 0x021D9980 + thumb_func_end MOD57_021D92F4 + + thumb_func_start MOD57_021D94BC +MOD57_021D94BC: ; 0x021D94BC + push {r4, r5, r6, lr} + mov r6, #7 + add r5, r0, #0 + mov r4, #0 + lsl r6, r6, #6 +_021D94C6: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, r6] + bl FUN_02016A18 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #8 + blo _021D94C6 + mov r0, #0x4f + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009C0C + mov r0, #5 + lsl r0, r0, #6 + ldr r0, [r5, r0] + bl FUN_02009E04 + mov r6, #0x4b + mov r4, #0 + lsl r6, r6, #2 +_021D94F4: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, r6] + bl FUN_02008E2C + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021D94F4 + ldr r0, [r5] + bl FUN_0201FD58 + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + pop {r4, r5, r6, pc} + thumb_func_end MOD57_021D94BC + + thumb_func_start MOD57_021D951C +MOD57_021D951C: ; 0x021D951C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + cmp r4, #8 + blo _021D952E + bl ErrorHandling +_021D952E: + cmp r6, #3 + bls _021D9536 + bl ErrorHandling +_021D9536: + lsl r7, r4, #2 + mov r0, #0x57 + add r1, r5, r7 + lsl r0, r0, #2 + ldr r0, [r1, r0] + bl FUN_02020354 + mov r1, #1 + bl FUN_020B19C4 + str r0, [sp] + lsl r0, r4, #5 + str r0, [sp, #4] + mov r0, #0x1e + add r1, r5, r7 + lsl r0, r0, #4 + ldr r0, [r1, r0] + lsl r5, r6, #5 + ldr r4, [r0, #0xc] + mov r1, #0x20 + add r0, r4, r5 + bl DC_FlushRange + ldr r2, [sp] + ldr r1, [sp, #4] + add r0, r4, r5 + add r1, r2, r1 + mov r2, #0x20 + bl GX_LoadOBJPltt + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD57_021D951C + + thumb_func_start MOD57_021D9578 +MOD57_021D9578: ; 0x021D9578 + push {r4, lr} + sub sp, #0x10 + ldr r4, _021D95A4 ; =0x021D9950 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #2 + mov r1, #0x19 + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021D95A4: .word 0x021D9950 + thumb_func_end MOD57_021D9578 + + thumb_func_start MOD57_021D95A8 +MOD57_021D95A8: ; 0x021D95A8 + mov r2, #0 + mov r1, #0xff +_021D95AC: + strb r2, [r0] + strb r1, [r0, #1] + add r2, r2, #1 + add r0, r0, #2 + cmp r2, #4 + blt _021D95AC + bx lr + .align 2, 0 + thumb_func_end MOD57_021D95A8 + + thumb_func_start MOD57_021D95BC +MOD57_021D95BC: ; 0x021D95BC + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + bl MOD57_021D95F4 + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD57_021D9624 + cmp r0, #1 + beq _021D95F0 + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD57_021D965C + cmp r0, #1 + beq _021D95F0 + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD57_021D9694 + cmp r0, #1 +_021D95F0: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD57_021D95BC + + thumb_func_start MOD57_021D95F4 +MOD57_021D95F4: ; 0x021D95F4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r4, #0 + add r5, r7, #0 + mov r6, #0xff +_021D95FE: + ldrb r0, [r5, #1] + cmp r0, #0xff + beq _021D9612 + ldrb r0, [r5] + add r0, r0, #3 + bl FUN_020048BC + cmp r0, #0 + bne _021D9612 + strb r6, [r5, #1] +_021D9612: + add r4, r4, #1 + add r5, r5, #2 + cmp r4, #4 + blt _021D95FE + add r0, r7, #0 + bl MOD57_021D96D8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD57_021D95F4 + + thumb_func_start MOD57_021D9624 +MOD57_021D9624: ; 0x021D9624 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r4, #0 + add r1, r6, #0 +_021D962E: + ldrb r0, [r1, #1] + cmp r5, r0 + bne _021D964E + lsl r7, r4, #1 + ldrb r0, [r6, r7] + add r1, r5, #0 + bl MOD57_021D96F4 + ldrb r2, [r6, r7] + add r0, r6, #0 + add r1, r4, #0 + add r3, r5, #0 + bl MOD57_021D96B0 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D964E: + add r4, r4, #1 + add r1, r1, #2 + cmp r4, #4 + blt _021D962E + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD57_021D9624 + + thumb_func_start MOD57_021D965C +MOD57_021D965C: ; 0x021D965C + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + mov r4, #0 + add r1, r5, #0 +_021D9666: + ldrb r0, [r1, #1] + cmp r0, #0xff + bne _021D9686 + lsl r6, r4, #1 + ldrb r0, [r5, r6] + add r1, r7, #0 + bl MOD57_021D96F4 + ldrb r2, [r5, r6] + add r0, r5, #0 + add r1, r4, #0 + add r3, r7, #0 + bl MOD57_021D96B0 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9686: + add r4, r4, #1 + add r1, r1, #2 + cmp r4, #4 + blt _021D9666 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD57_021D965C + + thumb_func_start MOD57_021D9694 +MOD57_021D9694: ; 0x021D9694 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldrb r0, [r5, #6] + add r4, r1, #0 + bl MOD57_021D96F4 + ldrb r2, [r5, #6] + add r0, r5, #0 + mov r1, #3 + add r3, r4, #0 + bl MOD57_021D96B0 + mov r0, #1 + pop {r3, r4, r5, pc} + thumb_func_end MOD57_021D9694 + + thumb_func_start MOD57_021D96B0 +MOD57_021D96B0: ; 0x021D96B0 + push {r4, r5} + cmp r1, #0 + ble _021D96CE + lsl r4, r1, #1 + add r4, r0, r4 +_021D96BA: + sub r5, r4, #2 + ldrb r5, [r5] + sub r1, r1, #1 + strb r5, [r4] + sub r5, r4, #1 + ldrb r5, [r5] + strb r5, [r4, #1] + sub r4, r4, #2 + cmp r1, #0 + bgt _021D96BA +_021D96CE: + strb r2, [r0] + strb r3, [r0, #1] + pop {r4, r5} + bx lr + .align 2, 0 + thumb_func_end MOD57_021D96B0 + + thumb_func_start MOD57_021D96D8 +MOD57_021D96D8: ; 0x021D96D8 + mov r3, #0 + mov r1, #0xff +_021D96DC: + ldrb r2, [r0] + cmp r2, #0xff + bne _021D96E8 + ldrb r2, [r0, #2] + strb r2, [r0] + strb r1, [r0, #2] +_021D96E8: + add r3, r3, #1 + add r0, r0, #2 + cmp r3, #4 + blt _021D96DC + bx lr + .align 2, 0 + thumb_func_end MOD57_021D96D8 + + thumb_func_start MOD57_021D96F4 +MOD57_021D96F4: ; 0x021D96F4 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r2, #0 + add r0, r5, #3 + add r4, r1, #0 + ldr r2, _021D9720 ; =0x00000694 + add r1, r0, #0 + bl FUN_020048A0 + ldr r2, _021D9724 ; =0x021D9A00 + lsl r3, r4, #1 + ldrh r2, [r2, r3] + mov r3, #4 + sub r4, r3, r6 + mov r3, #0x98 + mul r3, r4 + ldr r1, _021D9728 ; =0x0000FFFF + add r0, r5, #3 + sub r2, r2, r3 + bl FUN_02004D20 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D9720: .word 0x00000694 +_021D9724: .word 0x021D9A00 +_021D9728: .word 0x0000FFFF + thumb_func_end MOD57_021D96F4 + + .section .rodata + ; 0x021D972C + .incbin "baserom.nds", 0x2A844C, 0x2E4 diff --git a/arm9/modules/58/asm/module_58.s b/arm9/modules/58/asm/module_58.s new file mode 100644 index 00000000..c7305812 --- /dev/null +++ b/arm9/modules/58/asm/module_58.s @@ -0,0 +1,2481 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD58_021D9A20 +MOD58_021D9A20: ; 0x021D9A20 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, [r5] + add r6, r0, #0 + cmp r1, #0 + beq _021D9A36 + cmp r1, #1 + bne _021D9A34 + b _021D9B56 +_021D9A34: + b _021D9B64 +_021D9A36: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D9B6C ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D9B70 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #3 + mov r1, #0x27 + lsl r2, r2, #6 + bl FUN_0201681C + ldr r1, _021D9B74 ; =0x00005CB0 + add r0, r6, #0 + mov r2, #0x27 + bl FUN_02006268 + ldr r2, _021D9B74 ; =0x00005CB0 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x27 + bl FUN_02016B94 + str r0, [r4] + mov r0, #0x27 + bl FUN_0200AA80 + str r0, [r4, #0x10] + ldr r2, _021D9B78 ; =0x00000176 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x27 + bl FUN_0200A86C + str r0, [r4, #0x14] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + bl MOD58_021D9CDC + ldr r0, [r4] + bl MOD58_021D9CFC + mov r0, #0x10 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x27 + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add r0, r6, #0 + bl FUN_0200628C + bl FUN_02029ABC + bl FUN_02029AC8 + ldr r1, _021D9B7C ; =0x00005B98 + str r0, [r4, r1] + add r0, r6, #0 + bl FUN_0200628C + bl FUN_02029FC8 + str r0, [r4, #8] + add r0, r6, #0 + bl FUN_0200628C + bl LoadPlayerDataAddress + str r0, [r4, #0xc] + add r0, r4, #0 + bl MOD58_021D9F14 + bl FUN_0201CC08 + mov r0, #1 + bl FUN_0201CC24 + ldr r0, _021D9B80 ; =MOD58_021D9CB4 + ldr r1, [r4] + bl FUN_02015F10 + mov r0, #2 + mov r1, #0x27 + bl FUN_02002C50 + add r0, r4, #0 + bl MOD58_021D9E04 + bl MOD58_021DA014 + add r0, r4, #0 + bl MOD58_021DA044 + add r0, r4, #0 + bl MOD58_021DA1C4 + add r0, r4, #0 + add r1, r6, #0 + bl MOD58_021DA30C + mov r1, #0 + mov r0, #0x38 + add r2, r1, #0 + bl FUN_0200433C + ldr r2, _021D9B84 ; =0x04000304 + ldr r0, _021D9B88 ; =0xFFFF7FFF + ldrh r1, [r2] + and r0, r1 + strh r0, [r2] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D9B64 +_021D9B56: + bl FUN_02006278 + mov r0, #0 + str r0, [r5] + add sp, #0xc + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D9B64: + mov r0, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021D9B6C: .word 0xFFFFE0FF +_021D9B70: .word 0x04001000 +_021D9B74: .word 0x00005CB0 +_021D9B78: .word 0x00000176 +_021D9B7C: .word 0x00005B98 +_021D9B80: .word MOD58_021D9CB4 +_021D9B84: .word 0x04000304 +_021D9B88: .word 0xFFFF7FFF + thumb_func_end MOD58_021D9A20 + + thumb_func_start MOD58_021D9B8C +MOD58_021D9B8C: ; 0x021D9B8C + push {r3, r4, r5, lr} + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #0 + beq _021D9BA6 + cmp r1, #1 + beq _021D9BB4 + cmp r1, #2 + beq _021D9BD2 + b _021D9BDE +_021D9BA6: + bl FUN_0200E308 + cmp r0, #0 + beq _021D9BDE + mov r0, #1 + str r0, [r5] + b _021D9BDE +_021D9BB4: + mov r2, #0xc3 + lsl r2, r2, #2 + ldr r2, [r4, r2] + lsl r3, r2, #2 + ldr r2, _021D9BE8 ; =0x021DAFA0 + ldr r2, [r2, r3] + cmp r2, #0 + beq _021D9BC8 + blx r2 + str r0, [r5] +_021D9BC8: + ldr r0, _021D9BEC ; =0x00004318 + add r0, r4, r0 + bl MOD58_021DAB34 + b _021D9BDE +_021D9BD2: + bl FUN_0200E308 + cmp r0, #0 + beq _021D9BDE + mov r0, #1 + pop {r3, r4, r5, pc} +_021D9BDE: + ldr r0, [r4, #0x3c] + bl FUN_0201FDEC + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D9BE8: .word 0x021DAFA0 +_021D9BEC: .word 0x00004318 + thumb_func_end MOD58_021D9B8C + + thumb_func_start MOD58_021D9BF0 +MOD58_021D9BF0: ; 0x021D9BF0 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + bl FUN_02006278 + add r6, r0, #0 + ldr r0, _021D9CAC ; =0x00005B98 + mov r1, #0x2d + lsl r1, r1, #4 + ldr r0, [r6, r0] + ldr r1, [r6, r1] + bl MOD58_021DAC18 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0x62 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r7, #0x5a + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_021D9C40: + ldr r0, [r5, r7] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D9C40 + ldr r0, [r6, #0x3c] + bl FUN_0201FD58 + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + add r0, r6, #0 + bl MOD58_021DA4CC + mov r0, #2 + bl FUN_02002CF8 + ldr r0, [r6] + bl MOD58_021D9ED8 + bl FUN_0201CD04 + ldr r0, [r6, #0x14] + bl FUN_0200A8B8 + ldr r0, [r6, #0x10] + bl FUN_0200AB18 + add r0, r6, #0 + bl MOD58_021D9EA0 + ldr r0, [sp] + bl FUN_0200627C + ldr r2, _021D9CB0 ; =0x04000304 + ldrh r1, [r2] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2] + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x27 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9CAC: .word 0x00005B98 +_021D9CB0: .word 0x04000304 + thumb_func_end MOD58_021D9BF0 + + thumb_func_start MOD58_021D9CB4 +MOD58_021D9CB4: ; 0x021D9CB4 + push {r4, lr} + add r4, r0, #0 + bl FUN_0201C30C + bl FUN_02009F80 + add r0, r4, #0 + bl FUN_0201AB60 + ldr r3, _021D9CD4 ; =0x027E0000 + ldr r1, _021D9CD8 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + .align 2, 0 +_021D9CD4: .word 0x027E0000 +_021D9CD8: .word 0x00003FF8 + thumb_func_end MOD58_021D9CB4 + + thumb_func_start MOD58_021D9CDC +MOD58_021D9CDC: ; 0x021D9CDC + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D9CF8 ; =0x021DAE6C + add r3, sp, #0 + mov r2, #5 +_021D9CE6: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D9CE6 + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D9CF8: .word 0x021DAE6C + thumb_func_end MOD58_021D9CDC + + thumb_func_start MOD58_021D9CFC +MOD58_021D9CFC: ; 0x021D9CFC + push {r4, r5, lr} + sub sp, #0x9c + ldr r5, _021D9DEC ; =0x021DADC0 + add r3, sp, #0x8c + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D9DF0 ; =0x021DAE18 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _021D9DF4 ; =0x021DAE34 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _021D9DF8 ; =0x021DAE50 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D9DFC ; =0x021DADE0 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _021D9E00 ; =0x021DADFC + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + add r0, r4, #0 + mov r1, #5 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x27 + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x27 + bl FUN_02017F18 + add sp, #0x9c + pop {r4, r5, pc} + nop +_021D9DEC: .word 0x021DADC0 +_021D9DF0: .word 0x021DAE18 +_021D9DF4: .word 0x021DAE34 +_021D9DF8: .word 0x021DAE50 +_021D9DFC: .word 0x021DADE0 +_021D9E00: .word 0x021DADFC + thumb_func_end MOD58_021D9CFC + + thumb_func_start MOD58_021D9E04 +MOD58_021D9E04: ; 0x021D9E04 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + ldr r0, _021D9E90 ; =0x0000433D + mov r6, #0 + add r5, r7, r0 + mov r0, #0xf0 + add r4, r7, #0 + str r0, [sp] +_021D9E14: + mov r0, #8 + mov r1, #0x27 + bl FUN_020219F4 + str r0, [r4, #0x18] + ldrb r1, [r5] + ldr r0, [sp] + add r6, r6, #1 + bic r1, r0 + strb r1, [r5] + ldr r0, _021D9E94 ; =0x00004384 + mov r1, #0 + strh r1, [r4, r0] + add r4, r4, #4 + add r5, #0x11 + cmp r6, #5 + blt _021D9E14 + mov r0, #0x14 + mov r1, #0x27 + bl FUN_020219F4 + str r0, [r7, #0x2c] + mov r0, #0x28 + mov r1, #0x27 + bl FUN_020219F4 + str r0, [r7, #0x30] + mov r0, #0x50 + mov r1, #0x27 + bl FUN_020219F4 + str r0, [r7, #0x34] + ldr r0, _021D9E98 ; =0x0000431A + mov r1, #0 + strb r1, [r7, r0] + mov r0, #0xc3 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r7, r0] + ldr r0, [r7, #0x14] + ldr r2, [r7, #0x2c] + mov r1, #0xc + bl FUN_0200A8E0 + ldr r0, [r7, #0x14] + ldr r2, [r7, #0x30] + mov r1, #9 + bl FUN_0200A8E0 + mov r0, #0x27 + bl FUN_02014590 + ldr r1, _021D9E9C ; =0x00005C9C + mov r2, #5 + str r0, [r7, r1] + add r1, r1, #4 + mov r0, #0 + add r1, r7, r1 + bl MIi_CpuClearFast + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9E90: .word 0x0000433D +_021D9E94: .word 0x00004384 +_021D9E98: .word 0x0000431A +_021D9E9C: .word 0x00005C9C + thumb_func_end MOD58_021D9E04 + + thumb_func_start MOD58_021D9EA0 +MOD58_021D9EA0: ; 0x021D9EA0 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, _021D9ED4 ; =0x00005C9C + ldr r0, [r6, r0] + bl FUN_020145A8 + mov r4, #0 + add r5, r6, #0 +_021D9EB0: + ldr r0, [r5, #0x18] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #5 + blt _021D9EB0 + ldr r0, [r6, #0x34] + bl FUN_02021A20 + ldr r0, [r6, #0x30] + bl FUN_02021A20 + ldr r0, [r6, #0x2c] + bl FUN_02021A20 + pop {r4, r5, r6, pc} + nop +_021D9ED4: .word 0x00005C9C + thumb_func_end MOD58_021D9EA0 + + thumb_func_start MOD58_021D9ED8 +MOD58_021D9ED8: ; 0x021D9ED8 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD58_021D9ED8 + + thumb_func_start MOD58_021D9F14 +MOD58_021D9F14: ; 0x021D9F14 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5] + mov r0, #0x60 + mov r1, #0 + str r0, [sp] + mov r0, #0x27 + str r0, [sp, #4] + mov r0, #0x5f + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02006930 + mov r0, #0x40 + str r0, [sp] + mov r0, #0x27 + str r0, [sp, #4] + mov r0, #0x5f + mov r1, #2 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x27 + bl FUN_02002EEC + mov r1, #0x1a + mov r0, #4 + lsl r1, r1, #4 + mov r2, #0x27 + bl FUN_02002EEC + mov r0, #1 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x27 + bl FUN_02017F18 + mov r0, #0 + str r0, [sp] + mov r0, #2 + lsl r0, r0, #0xc + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x27 + str r0, [sp, #0xc] + mov r0, #0x5f + mov r1, #3 + add r2, r4, #0 + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x27 + str r0, [sp, #0xc] + mov r0, #0x5f + mov r1, #5 + add r2, r4, #0 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + mov r0, #2 + lsl r0, r0, #0xc + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x27 + str r0, [sp, #0xc] + mov r0, #0x5f + mov r1, #4 + add r2, r4, #0 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x27 + str r0, [sp, #0xc] + mov r0, #0x5f + mov r1, #6 + add r2, r4, #0 + mov r3, #5 + bl FUN_020068C8 + ldr r0, [r5, #0xc] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x27 + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x27 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD58_021D9F14 + + thumb_func_start MOD58_021DA014 +MOD58_021DA014: ; 0x021DA014 + push {r4, lr} + sub sp, #0x10 + ldr r4, _021DA040 ; =0x021DADD0 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #0x14 + mov r1, #0x27 + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021DA040: .word 0x021DADD0 + thumb_func_end MOD58_021DA014 + + thumb_func_start MOD58_021DA044 +MOD58_021DA044: ; 0x021DA044 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x7e + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x27 + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + add r1, r5, #0 + mov r0, #0x32 + add r1, #0x40 + mov r2, #0x27 + bl FUN_02008C9C + str r0, [r5, #0x3c] + add r0, r5, #0 + mov r2, #1 + add r0, #0x40 + mov r1, #0 + lsl r2, r2, #0x14 + bl FUN_02008D24 + mov r7, #0x5a + mov r6, #0 + add r4, r5, #0 + lsl r7, r7, #2 +_021DA08A: + mov r0, #2 + add r1, r6, #0 + mov r2, #0x27 + bl FUN_02008DEC + str r0, [r4, r7] + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #4 + blt _021DA08A + mov r0, #0 + str r0, [sp] + mov r3, #1 + str r3, [sp, #4] + mov r0, #0x27 + str r0, [sp, #8] + mov r0, #0x5a + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5f + mov r2, #7 + bl FUN_02008F34 + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #0 + str r3, [sp] + mov r2, #1 + str r2, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + mov r0, #0x27 + sub r1, #0xc + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x5f + bl FUN_02008FEC + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x27 + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x5f + mov r2, #8 + mov r3, #1 + bl FUN_020090AC + mov r1, #6 + lsl r1, r1, #6 + str r0, [r5, r1] + mov r0, #0 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x27 + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x5f + mov r2, #9 + mov r3, #1 + bl FUN_020090AC + mov r1, #0x61 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x27 + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x5f + mov r2, #7 + bl FUN_02008F34 + mov r1, #0x62 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r2, #1 + str r2, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + mov r0, #0x27 + sub r1, #0x1c + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x5f + mov r3, #0 + bl FUN_02008FEC + mov r1, #0x63 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x27 + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x5f + mov r2, #8 + bl FUN_020090AC + mov r1, #0x19 + lsl r1, r1, #4 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x27 + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x5f + mov r2, #9 + bl FUN_020090AC + mov r1, #0x65 + lsl r1, r1, #2 + str r0, [r5, r1] + sub r1, #0x1c + ldr r0, [r5, r1] + bl FUN_02009A50 + mov r0, #0x62 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009A50 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009CF0 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009CF0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD58_021DA044 + + thumb_func_start MOD58_021DA1C4 +MOD58_021DA1C4: ; 0x021DA1C4 + push {r3, r4, lr} + sub sp, #0x5c + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + sub r0, r1, #1 + str r0, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r2, #0x5a + str r1, [sp, #0x10] + lsl r2, r2, #2 + ldr r0, [r4, r2] + add r3, r1, #0 + str r0, [sp, #0x14] + add r0, r2, #4 + ldr r0, [r4, r0] + str r0, [sp, #0x18] + add r0, r2, #0 + add r0, #8 + ldr r0, [r4, r0] + str r0, [sp, #0x1c] + add r0, r2, #0 + add r0, #0xc + ldr r0, [r4, r0] + add r2, #0x30 + str r0, [sp, #0x20] + str r1, [sp, #0x24] + add r0, r4, r2 + add r2, r1, #0 + str r1, [sp, #0x28] + bl FUN_02008AA4 + mov r1, #1 + mov r3, #0x5a + str r1, [sp] + sub r0, r1, #2 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r3, r3, #2 + ldr r2, [r4, r3] + str r2, [sp, #0x14] + add r2, r3, #4 + ldr r2, [r4, r2] + str r2, [sp, #0x18] + add r2, r3, #0 + add r2, #8 + ldr r2, [r4, r2] + str r2, [sp, #0x1c] + add r2, r3, #0 + add r2, #0xc + ldr r2, [r4, r2] + add r3, #0x54 + str r2, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r4, r3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02008AA4 + ldr r0, [r4, #0x3c] + mov r2, #0 + str r0, [sp, #0x2c] + mov r0, #0x66 + lsl r0, r0, #2 + add r1, r4, r0 + str r1, [sp, #0x30] + mov r1, #1 + lsl r1, r1, #0xc + add r0, #0x24 + str r2, [sp, #0x3c] + str r1, [sp, #0x40] + str r1, [sp, #0x44] + str r1, [sp, #0x48] + add r1, sp, #0x2c + strh r2, [r1, #0x20] + mov r1, #1 + add r0, r4, r0 + str r0, [sp, #0x30] + mov r0, #0xe + lsl r0, r0, #0x10 + str r0, [sp, #0x34] + mov r0, #0xaf + lsl r0, r0, #0xc + str r0, [sp, #0x38] + str r1, [sp, #0x50] + str r1, [sp, #0x54] + mov r1, #0x27 + add r0, sp, #0x2c + str r1, [sp, #0x58] + bl FUN_0201FE94 + mov r1, #0x25 + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x25 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02020130 + mov r0, #0x25 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02020248 + mov r0, #0x25 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #2 + bl FUN_02020238 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x5c + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD58_021DA1C4 + + thumb_func_start MOD58_021DA2CC +MOD58_021DA2CC: ; 0x021DA2CC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + add r4, r2, #0 + mov r0, #2 + mov r2, #0 + add r6, r1, #0 + add r7, r3, #0 + bl FUN_02002E14 + add r3, r0, #0 + str r4, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, [sp, #0x28] + add r1, r7, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldrb r4, [r5, #7] + add r0, r5, #0 + add r2, r6, #0 + lsl r4, r4, #3 + sub r4, r4, r3 + lsr r3, r4, #0x1f + add r3, r4, r3 + asr r3, r3, #1 + bl FUN_0201BDE0 + ldr r0, [r5, #0xc] + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD58_021DA2CC + + thumb_func_start MOD58_021DA30C +MOD58_021DA30C: ; 0x021DA30C + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + mov r1, #0xb5 + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r5] + add r1, r5, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r0, #0xb5 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #9 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #8 + mov r1, #0xb1 + lsl r1, r1, #2 + str r0, [sp, #8] + mov r2, #1 + str r2, [sp, #0xc] + str r2, [sp, #0x10] + ldr r0, [r5] + add r1, r5, r1 + mov r3, #4 + bl FUN_02019064 + mov r0, #0xb1 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #2 + bl FUN_02019620 + mov r0, #0x15 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + str r0, [sp, #0xc] + mov r0, #0xc1 + mov r1, #0xb9 + str r0, [sp, #0x10] + lsl r1, r1, #2 + ldr r0, [r5] + add r1, r5, r1 + mov r2, #1 + mov r3, #0x1a + bl FUN_02019064 + mov r0, #0xb9 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + ldr r0, _021DA4BC ; =0x000E0702 + mov r2, #1 + str r0, [sp] + mov r0, #0xb9 + lsl r0, r0, #2 + ldr r1, [r5, #0x2c] + add r0, r5, r0 + mov r3, #2 + bl MOD58_021DA2CC + mov r1, #2 + lsl r1, r1, #8 + bl DC_FlushRange + mov r4, #0 + ldr r0, _021DA4C0 ; =0x00005B9C + str r4, [sp, #0x18] + add r7, r4, #0 + add r6, r5, r0 +_021DA3C2: + mov r0, #0 + str r0, [sp] + mov r0, #0xb9 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #4 + mov r2, #2 + add r3, r4, #0 + str r6, [sp, #4] + bl FUN_02011B20 + mov r1, #1 + add r0, r6, #0 + lsl r1, r1, #8 + bl DC_FlushRange + mov r2, #1 + add r0, r6, #0 + add r1, r7, #0 + lsl r2, r2, #8 + bl GX_LoadOBJ + mov r0, #1 + lsl r0, r0, #8 + add r7, r7, r0 + ldr r0, [sp, #0x18] + add r4, r4, #4 + add r0, r0, #1 + str r0, [sp, #0x18] + cmp r0, #2 + blt _021DA3C2 + mov r3, #2 + str r3, [sp] + mov r0, #0x1c + str r0, [sp, #4] + mov r1, #0xbd + lsl r1, r1, #2 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0xd1 + str r0, [sp, #0x10] + ldr r0, [r5] + add r1, r5, r1 + mov r2, #1 + bl FUN_02019064 + ldr r1, [r5, #0x30] + mov r0, #1 + mov r2, #0 + bl FUN_02002E14 + add r4, r0, #0 + mov r0, #0xbd + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + mov r3, #0xe0 + sub r4, r3, r4 + lsr r3, r4, #0x1f + add r3, r4, r3 + ldr r0, _021DA4C4 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r0, #0xbd + lsl r0, r0, #2 + ldr r2, [r5, #0x30] + add r0, r5, r0 + mov r1, #1 + asr r3, r3, #1 + bl FUN_0201BDE0 + mov r0, #0 + str r0, [sp, #0x14] + mov r0, #0x9d + lsl r0, r0, #2 + mov r7, #1 + mov r6, #3 + add r4, r5, r0 +_021DA46A: + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r5] + add r1, r4, #0 + mov r2, #4 + mov r3, #5 + bl FUN_02019064 + add r0, r4, #0 + mov r1, #0 + bl FUN_02019620 + ldr r0, [sp, #0x14] + add r7, #0x14 + add r0, r0, #1 + add r6, r6, #4 + add r4, #0x10 + str r0, [sp, #0x14] + cmp r0, #5 + blt _021DA46A + mov r0, #0x9d + lsl r0, r0, #2 + ldr r2, _021DA4C8 ; =0x000E0D0F + add r0, r5, r0 + mov r1, #0 + add r3, r5, #0 + bl MOD58_021DAB74 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021DA4BC: .word 0x000E0702 +_021DA4C0: .word 0x00005B9C +_021DA4C4: .word 0x00010200 +_021DA4C8: .word 0x000E0D0F + thumb_func_end MOD58_021DA30C + + thumb_func_start MOD58_021DA4CC +MOD58_021DA4CC: ; 0x021DA4CC + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r0, #0x9d + lsl r0, r0, #2 + mov r4, #0 + add r5, r6, r0 +_021DA4D8: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #5 + blt _021DA4D8 + mov r0, #0xbd + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019178 + mov r0, #0xb9 + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019178 + mov r0, #0xb1 + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019178 + mov r0, #0xb5 + lsl r0, r0, #2 + add r0, r6, r0 + bl FUN_02019178 + pop {r4, r5, r6, pc} + thumb_func_end MOD58_021DA4CC + + thumb_func_start MOD58_021DA510 +MOD58_021DA510: ; 0x021DA510 + bx lr + .align 2, 0 + thumb_func_end MOD58_021DA510 + + thumb_func_start MOD58_021DA514 +MOD58_021DA514: ; 0x021DA514 + push {r4, r5, r6, r7, lr} + sub sp, #0x44 + add r4, r0, #0 + ldr r0, _021DA5DC ; =0x021DADAE + bl FUN_02020988 + add r1, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r1, r0 + beq _021DA568 + cmp r1, #0 + bne _021DA55A + mov r0, #0xc3 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #1 + bne _021DA568 + add r0, r4, #0 + mov r1, #0xa + bl MOD58_021DAB94 + mov r0, #0xc3 + mov r1, #2 + lsl r0, r0, #2 + str r1, [r4, r0] + sub r0, #0xbc + add r0, r4, r0 + mov r1, #1 + bl MOD58_021DA614 + ldr r0, _021DA5E0 ; =0x000005DD + bl FUN_020054C8 + b _021DA568 +_021DA55A: + ldr r0, _021DA5E4 ; =0x0000431A + strb r1, [r4, r0] + mov r0, #0x25 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD58_021DA5F4 +_021DA568: + ldr r0, _021DA5E8 ; =0x021DADA6 + bl FUN_02020968 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _021DA57C + add r0, r4, #0 + bl MOD58_021DAC7C +_021DA57C: + add r0, sp, #0 + mov r1, #4 + mov r2, #1 + bl FUN_0201CD38 + cmp r0, #1 + bne _021DA5D8 + add r7, sp, #0 + ldrh r3, [r7] + mov r1, #0 + cmp r3, #0 + ble _021DA5B0 + ldr r5, _021DA5EC ; =0x0000431C + add r2, sp, #0 + add r6, r5, #0 + add r6, #8 +_021DA59C: + ldrh r3, [r2, #2] + add r0, r4, r1 + add r1, r1, #1 + strb r3, [r0, r5] + ldrh r3, [r2, #4] + add r2, #8 + strb r3, [r0, r6] + ldrh r3, [r7] + cmp r1, r3 + blt _021DA59C +_021DA5B0: + ldr r0, _021DA5F0 ; =0x0000432C + mov r2, #0xf0 + ldrb r1, [r4, r0] + bic r1, r2 + lsl r2, r3, #0x18 + lsr r2, r2, #0x18 + lsl r2, r2, #0x1c + lsr r2, r2, #0x18 + orr r1, r2 + strb r1, [r4, r0] + ldrb r3, [r4, r0] + mov r1, #0xf + bic r3, r1 + add r1, r0, #0 + sub r1, #0x12 + ldrb r2, [r4, r1] + mov r1, #0xf + and r1, r2 + orr r1, r3 + strb r1, [r4, r0] +_021DA5D8: + add sp, #0x44 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021DA5DC: .word 0x021DADAE +_021DA5E0: .word 0x000005DD +_021DA5E4: .word 0x0000431A +_021DA5E8: .word 0x021DADA6 +_021DA5EC: .word 0x0000431C +_021DA5F0: .word 0x0000432C + thumb_func_end MOD58_021DA514 + + thumb_func_start MOD58_021DA5F4 +MOD58_021DA5F4: ; 0x021DA5F4 + push {r3, lr} + ldr r2, _021DA610 ; =0x021DADA0 + cmp r1, #0 + ldr r0, [r0] + bne _021DA608 + ldrh r1, [r2, #4] + add r1, r1, #1 + bl FUN_02020130 + pop {r3, pc} +_021DA608: + ldrh r1, [r2, #4] + bl FUN_02020130 + pop {r3, pc} + .align 2, 0 +_021DA610: .word 0x021DADA0 + thumb_func_end MOD58_021DA5F4 + + thumb_func_start MOD58_021DA614 +MOD58_021DA614: ; 0x021DA614 + push {r3, lr} + cmp r1, #1 + ldr r0, [r0] + bne _021DA624 + mov r1, #1 + bl FUN_02020130 + pop {r3, pc} +_021DA624: + mov r1, #0 + bl FUN_02020130 + pop {r3, pc} + thumb_func_end MOD58_021DA614 + + thumb_func_start MOD58_021DA62C +MOD58_021DA62C: ; 0x021DA62C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD58_021DA514 + mov r0, #0x9d + lsl r0, r0, #2 + ldr r2, _021DA66C ; =0x000E0C0F + add r0, r5, r0 + mov r1, #0 + add r3, r5, #0 + bl MOD58_021DAB74 + add r0, r5, #0 + bl MOD58_021DAB78 + add r0, r5, #0 + bl MOD58_021DAB30 + ldr r2, _021DA670 ; =0x0000432D + mov r0, #0xb1 + lsl r0, r0, #2 + add r1, r5, r2 + add r2, #0x55 + add r0, r5, r0 + add r2, r5, r2 + mov r3, #1 + bl MOD58_021DAA70 + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021DA66C: .word 0x000E0C0F +_021DA670: .word 0x0000432D + thumb_func_end MOD58_021DA62C + + thumb_func_start MOD58_021DA674 +MOD58_021DA674: ; 0x021DA674 + push {r4, lr} + add r4, r0, #0 + bl MOD58_021DA510 + add r0, r4, #0 + bl MOD58_021DAB30 + ldr r2, _021DA698 ; =0x0000432D + mov r0, #0xb1 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0x55 + add r0, r4, r0 + add r2, r4, r2 + mov r3, #0 + bl MOD58_021DAA70 + pop {r4, pc} + .align 2, 0 +_021DA698: .word 0x0000432D + thumb_func_end MOD58_021DA674 + + thumb_func_start MOD58_021DA69C +MOD58_021DA69C: ; 0x021DA69C + push {lr} + sub sp, #0x14 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + mov r0, #0xb4 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + mov r2, #0x19 + add r0, sp, #0 + strb r2, [r0, #0x10] + mov r2, #6 + strb r2, [r0, #0x11] + add r0, r1, #0 + add r1, sp, #0 + bl FUN_020145C8 + add sp, #0x14 + pop {pc} + thumb_func_end MOD58_021DA69C + + thumb_func_start MOD58_021DA6C4 +MOD58_021DA6C4: ; 0x021DA6C4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x38] + add r4, r1, #0 + bl MOD58_021DAC00 + cmp r0, #0 + beq _021DA6E6 + ldr r1, _021DA6F0 ; =0x00005C9C + ldr r0, [r5] + ldr r1, [r5, r1] + bl MOD58_021DA69C + mov r0, #0xc3 + mov r1, #3 + lsl r0, r0, #2 + str r1, [r5, r0] +_021DA6E6: + add r0, r5, #0 + bl MOD58_021DA674 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DA6F0: .word 0x00005C9C + thumb_func_end MOD58_021DA6C4 + + thumb_func_start MOD58_021DA6F4 +MOD58_021DA6F4: ; 0x021DA6F4 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _021DA784 ; =0x00005C9C + add r4, r1, #0 + ldr r0, [r5, r0] + bl FUN_0201466C + cmp r0, #1 + beq _021DA70E + cmp r0, #2 + beq _021DA748 + b _021DA76E +_021DA70E: + ldr r0, [r5, #8] + mov r1, #4 + bl FUN_0202A170 + mov r0, #0xb5 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #1 + bl FUN_0200D0E0 + ldr r0, _021DA784 ; =0x00005C9C + ldr r0, [r5, r0] + bl FUN_020146C4 + mov r0, #0x10 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x27 + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add sp, #0xc + mov r0, #2 + pop {r4, r5, pc} +_021DA748: + mov r0, #0xc3 + mov r1, #4 + lsl r0, r0, #2 + str r1, [r5, r0] + sub r0, #0xbc + add r0, r5, r0 + mov r1, #0 + bl MOD58_021DA614 + mov r0, #0xb5 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #1 + bl FUN_0200D0E0 + ldr r0, _021DA784 ; =0x00005C9C + ldr r0, [r5, r0] + bl FUN_020146C4 +_021DA76E: + ldr r1, _021DA788 ; =0x0000432C + mov r0, #0xf0 + ldrb r2, [r5, r1] + bic r2, r0 + add r0, r5, #0 + strb r2, [r5, r1] + bl MOD58_021DA674 + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_021DA784: .word 0x00005C9C +_021DA788: .word 0x0000432C + thumb_func_end MOD58_021DA6F4 + + thumb_func_start MOD58_021DA78C +MOD58_021DA78C: ; 0x021DA78C + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021DA7F0 ; =0x00005C9C + add r4, r1, #0 + ldr r0, [r5, r0] + bl FUN_0201466C + cmp r0, #1 + beq _021DA7A4 + cmp r0, #2 + beq _021DA7D4 + b _021DA7EC +_021DA7A4: + mov r0, #0xc3 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r5, r0] + sub r0, #0x38 + add r0, r5, r0 + bl FUN_0200D0E0 + ldr r0, _021DA7F0 ; =0x00005C9C + ldr r0, [r5, r0] + bl FUN_020146C4 + mov r0, #0xb1 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #2 + bl FUN_02019620 + mov r0, #0xb1 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_020191D0 + b _021DA7EC +_021DA7D4: + mov r0, #0xc3 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r5, r0] + sub r0, #0x38 + add r0, r5, r0 + bl FUN_0200D0E0 + ldr r0, _021DA7F0 ; =0x00005C9C + ldr r0, [r5, r0] + bl FUN_020146C4 +_021DA7EC: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DA7F0: .word 0x00005C9C + thumb_func_end MOD58_021DA78C + + thumb_func_start MOD58_021DA7F4 +MOD58_021DA7F4: ; 0x021DA7F4 + push {r3, r4, r5, lr} + add r4, r1, #0 + mov r1, #0xb + add r5, r0, #0 + bl MOD58_021DAB94 + mov r0, #0xc3 + mov r1, #5 + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD58_021DA674 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD58_021DA7F4 + + thumb_func_start MOD58_021DA814 +MOD58_021DA814: ; 0x021DA814 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x38] + add r4, r1, #0 + bl MOD58_021DAC00 + cmp r0, #0 + beq _021DA836 + mov r0, #0xc3 + mov r1, #6 + lsl r0, r0, #2 + str r1, [r5, r0] + ldr r1, _021DA840 ; =0x00005C9C + ldr r0, [r5] + ldr r1, [r5, r1] + bl MOD58_021DA69C +_021DA836: + add r0, r5, #0 + bl MOD58_021DA674 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DA840: .word 0x00005C9C + thumb_func_end MOD58_021DA814 + + thumb_func_start MOD58_021DA844 +MOD58_021DA844: ; 0x021DA844 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + ldr r4, [sp, #0x38] + mov ip, r1 + add r6, r2, #0 + add r7, r3, #0 + str r0, [sp, #0x18] + ldr r3, [sp, #0x3c] + ldr r2, [sp, #0x40] + ldr r1, [sp, #0x44] + cmp r4, #0 + bge _021DA870 + neg r0, r4 + cmp r0, r2 + ble _021DA864 + add r0, r2, #0 +_021DA864: + ldr r5, [sp, #0x30] + mov r4, #0 + sub r5, r5, r0 + add r6, r6, r0 + str r5, [sp, #0x30] + sub r2, r2, r0 +_021DA870: + cmp r3, #0 + bge _021DA888 + neg r0, r3 + cmp r0, r1 + ble _021DA87C + add r0, r1, #0 +_021DA87C: + ldr r5, [sp, #0x34] + mov r3, #0 + sub r5, r5, r0 + add r7, r7, r0 + str r5, [sp, #0x34] + sub r1, r1, r0 +_021DA888: + ldr r0, [sp, #0x30] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp] + ldr r0, [sp, #0x34] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + lsl r0, r3, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0xc] + lsl r0, r2, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + lsl r0, r1, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x14] + lsl r2, r6, #0x10 + lsl r3, r7, #0x10 + ldr r0, [sp, #0x18] + mov r1, ip + lsr r2, r2, #0x10 + lsr r3, r3, #0x10 + bl FUN_02019658 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD58_021DA844 + + thumb_func_start MOD58_021DA8C4 +MOD58_021DA8C4: ; 0x021DA8C4 + push {r4, r5, r6, r7, lr} + sub sp, #0x3c + str r0, [sp, #0x18] + ldr r0, [sp, #0x50] + str r1, [sp, #0x1c] + str r0, [sp, #0x50] + ldr r0, [sp, #0x54] + str r2, [sp, #0x20] + str r0, [sp, #0x54] + ldr r0, [sp, #0x50] + str r3, [sp, #0x24] + ldr r4, [r0] + ldr r0, [sp, #0x54] + ldr r5, [r0] + add r0, r2, #0 + str r0, [sp, #0x38] + add r0, r3, #0 + str r0, [sp, #0x30] + ldr r0, [sp, #0x58] + cmp r0, #0 + bne _021DA904 + ldr r0, [sp, #0x5c] + cmp r0, #0 + bne _021DA904 + ldr r0, [sp, #0x50] + add r1, r2, #0 + str r1, [r0] + ldr r0, [sp, #0x54] + add r1, r3, #0 + str r1, [r0] + add sp, #0x3c + pop {r4, r5, r6, r7, pc} +_021DA904: + ldr r0, [sp, #0x20] + sub r0, r0, r4 + str r0, [sp, #0x34] + bpl _021DA910 + neg r0, r0 + str r0, [sp, #0x34] +_021DA910: + ldr r0, [sp, #0x24] + sub r7, r0, r5 + bpl _021DA918 + neg r7, r7 +_021DA918: + ldr r0, [sp, #0x34] + cmp r0, r7 + ble _021DA9A6 + ldr r0, [sp, #0x20] + cmp r4, r0 + ble _021DA93E + ldr r0, [sp, #0x24] + cmp r5, r0 + ble _021DA930 + mov r0, #1 + str r0, [sp, #0x2c] + b _021DA936 +_021DA930: + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x2c] +_021DA936: + str r4, [sp, #0x38] + ldr r4, [sp, #0x20] + ldr r5, [sp, #0x24] + b _021DA950 +_021DA93E: + ldr r0, [sp, #0x24] + cmp r5, r0 + bge _021DA94A + mov r0, #1 + str r0, [sp, #0x2c] + b _021DA950 +_021DA94A: + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x2c] +_021DA950: + mov r0, #4 + str r0, [sp] + str r0, [sp, #4] + str r4, [sp, #8] + str r5, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + mov r2, #0 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + add r3, r2, #0 + bl MOD58_021DA844 + ldr r0, [sp, #0x34] + add r4, r4, #1 + asr r6, r0, #1 + ldr r0, [sp, #0x38] + cmp r4, r0 + bgt _021DAA2A +_021DA976: + sub r6, r6, r7 + bpl _021DA982 + ldr r0, [sp, #0x34] + add r6, r6, r0 + ldr r0, [sp, #0x2c] + add r5, r5, r0 +_021DA982: + mov r0, #4 + str r0, [sp] + str r0, [sp, #4] + str r4, [sp, #8] + str r5, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + mov r2, #0 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + add r3, r2, #0 + bl MOD58_021DA844 + ldr r0, [sp, #0x38] + add r4, r4, #1 + cmp r4, r0 + ble _021DA976 + b _021DAA2A +_021DA9A6: + ldr r0, [sp, #0x24] + cmp r5, r0 + ble _021DA9C6 + ldr r0, [sp, #0x20] + cmp r4, r0 + ble _021DA9B8 + mov r0, #1 + str r0, [sp, #0x28] + b _021DA9BE +_021DA9B8: + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x28] +_021DA9BE: + str r5, [sp, #0x30] + ldr r5, [sp, #0x24] + ldr r4, [sp, #0x20] + b _021DA9D8 +_021DA9C6: + ldr r0, [sp, #0x20] + cmp r4, r0 + bge _021DA9D2 + mov r0, #1 + str r0, [sp, #0x28] + b _021DA9D8 +_021DA9D2: + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x28] +_021DA9D8: + mov r0, #4 + str r0, [sp] + str r0, [sp, #4] + str r4, [sp, #8] + str r5, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + mov r2, #0 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + add r3, r2, #0 + bl MOD58_021DA844 + ldr r0, [sp, #0x30] + add r5, r5, #1 + asr r6, r7, #1 + cmp r5, r0 + bgt _021DAA2A +_021DA9FC: + ldr r0, [sp, #0x34] + sub r6, r6, r0 + bpl _021DAA08 + ldr r0, [sp, #0x28] + add r6, r6, r7 + add r4, r4, r0 +_021DAA08: + mov r0, #4 + str r0, [sp] + str r0, [sp, #4] + str r4, [sp, #8] + str r5, [sp, #0xc] + str r0, [sp, #0x10] + str r0, [sp, #0x14] + mov r2, #0 + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + add r3, r2, #0 + bl MOD58_021DA844 + ldr r0, [sp, #0x30] + add r5, r5, #1 + cmp r5, r0 + ble _021DA9FC +_021DAA2A: + ldr r1, [sp, #0x20] + ldr r0, [sp, #0x50] + str r1, [r0] + ldr r1, [sp, #0x24] + ldr r0, [sp, #0x54] + str r1, [r0] + add sp, #0x3c + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD58_021DA8C4 + + thumb_func_start MOD58_021DAA3C +MOD58_021DAA3C: ; 0x021DAA3C + mov r2, #0 +_021DAA3E: + ldrb r3, [r0, #0x10] + lsl r3, r3, #0x18 + lsr r3, r3, #0x1c + strh r3, [r1, #2] + ldrb r3, [r0, #0x10] + lsl r3, r3, #0x18 + lsr r3, r3, #0x1c + beq _021DAA62 + add r3, r0, r3 + sub r3, r3, #1 + ldrb r3, [r3] + strb r3, [r1] + ldrb r3, [r0, #0x10] + lsl r3, r3, #0x18 + lsr r3, r3, #0x1c + add r3, r0, r3 + ldrb r3, [r3, #7] + strb r3, [r1, #1] +_021DAA62: + add r2, r2, #1 + add r0, #0x11 + add r1, r1, #4 + cmp r2, #5 + blt _021DAA3E + bx lr + .align 2, 0 + thumb_func_end MOD58_021DAA3C + + thumb_func_start MOD58_021DAA70 +MOD58_021DAA70: ; 0x021DAA70 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + add r7, r0, #0 + mov r0, #0 + str r1, [sp, #0x10] + str r2, [sp, #0x14] + str r3, [sp, #0x18] + str r0, [sp, #0x1c] + str r0, [sp, #0x20] + add r5, r1, #0 + add r6, r2, #0 +_021DAA86: + ldrb r0, [r5, #0x10] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + beq _021DAAEA + ldrh r0, [r6, #2] + cmp r0, #0 + beq _021DAAA0 + ldrb r0, [r6] + sub r0, #0x20 + str r0, [sp, #0x28] + ldrb r0, [r6, #1] + sub r0, #0x48 + str r0, [sp, #0x24] +_021DAAA0: + ldrb r0, [r5, #0x10] + mov r4, #0 + lsl r0, r0, #0x18 + lsr r1, r0, #0x1c + cmp r1, #0 + ble _021DAAEA + mov r0, #1 + str r0, [sp, #0x1c] + cmp r1, #0 + ble _021DAAEA +_021DAAB4: + add r0, sp, #0x28 + str r0, [sp] + add r0, sp, #0x24 + str r0, [sp, #4] + str r4, [sp, #8] + ldrh r0, [r6, #2] + add r3, r5, r4 + str r0, [sp, #0xc] + ldrb r1, [r5, #0x10] + ldrb r3, [r3, #8] + add r0, r7, #0 + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + lsl r2, r1, #4 + ldr r1, _021DAB2C ; =0x021DAE94 + sub r3, #0x48 + add r1, r1, r2 + ldrb r2, [r5, r4] + sub r2, #0x20 + bl MOD58_021DA8C4 + ldrb r0, [r5, #0x10] + add r4, r4, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + cmp r4, r0 + blt _021DAAB4 +_021DAAEA: + ldr r0, [sp, #0x20] + add r5, #0x11 + add r0, r0, #1 + add r6, r6, #4 + str r0, [sp, #0x20] + cmp r0, #5 + blt _021DAA86 + ldr r0, [sp, #0x1c] + cmp r0, #0 + beq _021DAB0A + ldr r0, [sp, #0x18] + cmp r0, #0 + beq _021DAB0A + add r0, r7, #0 + bl FUN_020191D0 +_021DAB0A: + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + bl MOD58_021DAA3C + mov r3, #0 + mov r1, #0xf0 +_021DAB16: + ldr r0, [sp, #0x10] + add r3, r3, #1 + ldrb r2, [r0, #0x10] + bic r2, r1 + strb r2, [r0, #0x10] + add r0, #0x11 + str r0, [sp, #0x10] + cmp r3, #5 + blt _021DAB16 + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021DAB2C: .word 0x021DAE94 + thumb_func_end MOD58_021DAA70 + + thumb_func_start MOD58_021DAB30 +MOD58_021DAB30: ; 0x021DAB30 + bx lr + .align 2, 0 + thumb_func_end MOD58_021DAB30 + + thumb_func_start MOD58_021DAB34 +MOD58_021DAB34: ; 0x021DAB34 + push {r3, lr} + ldrh r1, [r0] + add r1, #0x14 + strh r1, [r0] + ldrh r2, [r0] + mov r1, #0x5a + lsl r1, r1, #2 + cmp r2, r1 + bls _021DAB4A + mov r1, #0 + strh r1, [r0] +_021DAB4A: + ldrh r0, [r0] + bl FUN_0201B970 + mov r1, #0xa + mul r1, r0 + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r0, r0, #0xc + add r0, #0xf + lsl r1, r0, #5 + mov r0, #0x1d + orr r1, r0 + add r0, sp, #0 + strh r1, [r0] + add r0, sp, #0 + mov r1, #0x18 + mov r2, #2 + bl GX_LoadOBJPltt + pop {r3, pc} + thumb_func_end MOD58_021DAB34 + + thumb_func_start MOD58_021DAB74 +MOD58_021DAB74: ; 0x021DAB74 + bx lr + .align 2, 0 + thumb_func_end MOD58_021DAB74 + + thumb_func_start MOD58_021DAB78 +MOD58_021DAB78: ; 0x021DAB78 + ldr r1, _021DAB90 ; =0x0000431C + add r3, r0, r1 + add r1, #0x11 + add r2, r0, r1 + mov r1, #0x11 +_021DAB82: + ldrb r0, [r3] + add r3, r3, #1 + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _021DAB82 + bx lr + .align 2, 0 +_021DAB90: .word 0x0000431C + thumb_func_end MOD58_021DAB78 + + thumb_func_start MOD58_021DAB94 +MOD58_021DAB94: ; 0x021DAB94 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x50 + mov r1, #0x27 + bl FUN_020219F4 + add r4, r0, #0 + ldr r0, [r5, #0x14] + add r1, r6, #0 + add r2, r4, #0 + bl FUN_0200A8E0 + ldr r0, [r5, #0x10] + ldr r1, [r5, #0x34] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + mov r0, #0xb5 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0xb5 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + ldr r0, [r5, #0xc] + bl FUN_02024FF4 + mov r3, #0 + str r3, [sp] + str r0, [sp, #4] + str r3, [sp, #8] + mov r0, #0xb5 + lsl r0, r0, #2 + ldr r2, [r5, #0x34] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + str r0, [r5, #0x38] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD58_021DAB94 + + thumb_func_start MOD58_021DAC00 +MOD58_021DAC00: ; 0x021DAC00 + push {r3, lr} + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021DAC12 + mov r0, #1 + pop {r3, pc} +_021DAC12: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD58_021DAC00 + + thumb_func_start MOD58_021DAC18 +MOD58_021DAC18: ; 0x021DAC18 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0 + add r5, r0, #0 + str r1, [sp] + add r4, r7, #0 + strb r7, [r5] + add r6, r7, #0 +_021DAC26: + ldr r0, [sp] + ldrb r1, [r0, r6] + mov r0, #0xf + and r0, r1 + cmp r0, #1 + bne _021DAC3C + mov r0, #1 + ldrb r1, [r5] + lsl r0, r4 + orr r0, r1 + strb r0, [r5] +_021DAC3C: + ldr r0, [sp] + ldrb r0, [r0, r6] + asr r0, r0, #4 + cmp r0, #1 + bne _021DAC52 + ldrb r0, [r5] + add r2, r4, #1 + mov r1, #1 + lsl r1, r2 + orr r0, r1 + strb r0, [r5] +_021DAC52: + add r4, r4, #2 + cmp r4, #8 + bne _021DAC62 + mov r0, #0 + add r5, r5, #1 + add r7, r7, #1 + strb r0, [r5] + add r4, r0, #0 +_021DAC62: + mov r0, #6 + lsl r0, r0, #0xa + cmp r7, r0 + blt _021DAC6E + bl ErrorHandling +_021DAC6E: + mov r0, #6 + add r6, r6, #1 + lsl r0, r0, #0xa + cmp r6, r0 + blt _021DAC26 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD58_021DAC18 + + thumb_func_start MOD58_021DAC7C +MOD58_021DAC7C: ; 0x021DAC7C + push {r3, r4, r5, lr} + ldr r1, _021DAD28 ; =0x021C48F8 + add r4, r0, #0 + ldrh r0, [r1, #0x1c] + ldr r3, _021DAD2C ; =0x0000FFFF + cmp r0, r3 + beq _021DAD16 + ldrh r1, [r1, #0x1e] + cmp r1, r3 + beq _021DAD16 + ldr r2, _021DAD30 ; =0x00005CA8 + ldr r5, [r4, r2] + cmp r5, r3 + beq _021DAD16 + add r1, r2, #4 + ldr r1, [r4, r1] + cmp r1, r3 + beq _021DAD16 + cmp r5, r0 + ble _021DACAC + mov r1, #0 + sub r3, r5, r0 + mvn r1, r1 + b _021DACB0 +_021DACAC: + sub r3, r0, r5 + mov r1, #1 +_021DACB0: + sub r0, r2, #6 + strb r1, [r4, r0] + cmp r3, #3 + blt _021DACE6 + cmp r3, #0x28 + bgt _021DACE6 + ldr r0, _021DAD28 ; =0x021C48F8 + ldrh r2, [r0, #0x1e] + ldr r0, _021DAD34 ; =0x00005CAC + ldr r1, [r4, r0] + cmp r1, r2 + ble _021DACD0 + sub r2, r1, r2 + mov r1, #0 + mvn r1, r1 + b _021DACD4 +_021DACD0: + sub r2, r2, r1 + mov r1, #1 +_021DACD4: + sub r0, #9 + strb r1, [r4, r0] + cmp r2, #0x28 + bgt _021DAD16 + ldr r0, _021DAD38 ; =0x00005CA0 + add r0, r4, r0 + bl MOD58_021DAD3C + b _021DAD16 +_021DACE6: + cmp r3, #0x28 + bgt _021DAD16 + ldr r0, _021DAD28 ; =0x021C48F8 + ldrh r2, [r0, #0x1e] + ldr r0, _021DAD34 ; =0x00005CAC + ldr r1, [r4, r0] + cmp r1, r2 + ble _021DACFE + sub r2, r1, r2 + mov r1, #0 + mvn r1, r1 + b _021DAD02 +_021DACFE: + sub r2, r2, r1 + mov r1, #1 +_021DAD02: + sub r0, #9 + strb r1, [r4, r0] + cmp r2, #3 + blt _021DAD16 + cmp r2, #0x28 + bgt _021DAD16 + ldr r0, _021DAD38 ; =0x00005CA0 + add r0, r4, r0 + bl MOD58_021DAD3C +_021DAD16: + ldr r1, _021DAD28 ; =0x021C48F8 + ldr r0, _021DAD30 ; =0x00005CA8 + ldrh r2, [r1, #0x1c] + str r2, [r4, r0] + ldrh r1, [r1, #0x1e] + add r0, r0, #4 + str r1, [r4, r0] + pop {r3, r4, r5, pc} + nop +_021DAD28: .word 0x021C48F8 +_021DAD2C: .word 0x0000FFFF +_021DAD30: .word 0x00005CA8 +_021DAD34: .word 0x00005CAC +_021DAD38: .word 0x00005CA0 + thumb_func_end MOD58_021DAC7C + + thumb_func_start MOD58_021DAD3C +MOD58_021DAD3C: ; 0x021DAD3C + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _021DAD60 + mov r0, #1 + ldrsb r0, [r4, r0] + cmp r0, #0 + bne _021DAD60 + ldr r0, _021DAD9C ; =0x0000069A + bl FUN_02005508 + cmp r0, #0 + bne _021DAD60 + ldr r0, _021DAD9C ; =0x0000069A + bl FUN_020054C8 +_021DAD60: + mov r0, #0 + ldrsb r1, [r4, r0] + mov r0, #2 + ldrsb r0, [r4, r0] + mul r0, r1 + bmi _021DAD78 + mov r0, #1 + ldrsb r1, [r4, r0] + mov r0, #3 + ldrsb r0, [r4, r0] + mul r0, r1 + bpl _021DAD88 +_021DAD78: + ldr r0, _021DAD9C ; =0x0000069A + bl FUN_02005508 + cmp r0, #0 + bne _021DAD88 + ldr r0, _021DAD9C ; =0x0000069A + bl FUN_020054C8 +_021DAD88: + mov r0, #2 + ldrsb r0, [r4, r0] + strb r0, [r4] + mov r0, #3 + ldrsb r0, [r4, r0] + strb r0, [r4, #1] + mov r0, #0 + strb r0, [r4, #2] + strb r0, [r4, #3] + pop {r4, pc} + .align 2, 0 +_021DAD9C: .word 0x0000069A + thumb_func_end MOD58_021DAD3C + + .section .rodata + ; 0x021DADA0 + .incbin "baserom.nds", 0x2A9B80, 0x1F4 + + .section .data + ; 0x021DAFA0 + .incbin "baserom.nds", 0x2A9D80, 0x20 + diff --git a/arm9/modules/59/asm/module_59.s b/arm9/modules/59/asm/module_59.s new file mode 100644 index 00000000..97b4d96a --- /dev/null +++ b/arm9/modules/59/asm/module_59.s @@ -0,0 +1,5042 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD59_021D74E0 +MOD59_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + mov r2, #1 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x52 + lsl r2, r2, #0x12 + bl FUN_0201681C + add r0, r5, #0 + mov r1, #0xb4 + mov r2, #0x52 + bl FUN_02006268 + mov r1, #0 + mov r2, #0xb4 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x52 + str r0, [r4] + add r0, r5, #0 + bl FUN_0200628C + ldr r0, [r0, #8] + str r0, [r4, #4] + bl LoadPlayerDataAddress + mov r1, #0 + str r0, [r4, #8] + str r1, [r4, #0xc] + str r1, [r4, #0x10] + str r1, [r4, #0x14] + ldr r0, [r4, #8] + add r2, r1, #0 + str r0, [sp] + mov r0, #0x52 + mov r3, #7 + bl FUN_02077A84 + str r0, [r4, #0x70] + ldr r0, [r4, #8] + mov r1, #3 + str r0, [sp] + mov r0, #0x52 + mov r2, #0 + mov r3, #7 + bl FUN_02077A84 + str r0, [r4, #0x74] + add r0, r4, #0 + mov r1, #0 + add r0, #0x88 + strb r1, [r0] + add r0, r4, #0 + add r0, #0x89 + strb r1, [r0] + add r0, r4, #0 + add r0, #0x8a + strb r1, [r0] + add r0, r4, #0 + add r0, #0x8b + strb r1, [r0] + add r4, #0x90 + str r1, [r4] + mov r0, #1 + pop {r3, r4, r5, pc} + thumb_func_end MOD59_021D74E0 + + thumb_func_start MOD59_021D7564 +MOD59_021D7564: ; 0x021D7564 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + mov r6, #0 + cmp r1, #5 + bls _021D757A + b _021D76AC +_021D757A: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7586: ; jump table + .short _021D7592 - _021D7586 - 2 ; case 0 + .short _021D75FA - _021D7586 - 2 ; case 1 + .short _021D7642 - _021D7586 - 2 ; case 2 + .short _021D7668 - _021D7586 - 2 ; case 3 + .short _021D7690 - _021D7586 - 2 ; case 4 + .short _021D76AA - _021D7586 - 2 ; case 5 +_021D7592: + add r0, r6, #0 + add r1, r6, #0 + bl FUN_0200E3A0 + mov r0, #1 + add r1, r6, #0 + bl FUN_0200E3A0 + add r0, r6, #0 + add r1, r0, #0 + bl FUN_02015F10 + add r0, r6, #0 + add r1, r0, #0 + bl FUN_02015F34 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D76B4 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D76B8 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + add r0, r4, #0 + bl MOD59_021D778C + add r0, r4, #0 + bl MOD59_021D79F8 + add r0, r4, #0 + bl MOD59_021D7A4C + ldr r0, _021D76BC ; =MOD59_021D7724 + add r1, r4, #0 + bl FUN_02015F10 + bl FUN_0201E788 + mov r0, #1 + str r0, [r5] + b _021D76AC +_021D75FA: + bl MOD59_021D8920 + cmp r0, #1 + bne _021D761E + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + str r0, [sp, #8] + add r0, r6, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #2 + str r0, [r5] +_021D761E: + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _021D76AC + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #3 + str r0, [r5] + b _021D76AC +_021D7642: + bl FUN_0200E308 + cmp r0, #1 + bne _021D76AC + add r0, r4, #0 + bl MOD59_021D7A34 + add r0, r4, #0 + bl MOD59_021D796C + add r0, r4, #0 + bl MOD59_021D7A5C + add r0, r6, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r6, #1 + b _021D76AC +_021D7668: + bl FUN_0200E308 + cmp r0, #1 + bne _021D76AC + add r0, r4, #0 + bl MOD59_021D7A34 + add r0, r4, #0 + bl MOD59_021D796C + add r0, r4, #0 + bl MOD59_021D7A5C + add r0, r6, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #4 + str r0, [r5] + b _021D76AC +_021D7690: + ldr r0, [r4, #0x14] + bl FUN_02006290 + cmp r0, #1 + bne _021D76AC + ldr r0, [r4, #0x14] + bl FUN_02006260 + add r0, r6, #0 + str r0, [r4, #0x14] + mov r0, #5 + str r0, [r5] + b _021D76AC +_021D76AA: + str r6, [r5] +_021D76AC: + add r0, r6, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021D76B4: .word 0xFFFFE0FF +_021D76B8: .word 0x04001000 +_021D76BC: .word MOD59_021D7724 + thumb_func_end MOD59_021D7564 + + thumb_func_start MOD59_021D76C0 +MOD59_021D76C0: ; 0x021D76C0 + push {r4, r5, r6, lr} + add r6, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r5, [r4] + bl FUN_020238F4 + ldr r1, [r4, #0x70] + ldr r1, [r1, #0x18] + bl FUN_0202397C + ldr r0, [r4, #4] + bl FUN_020238F4 + ldr r1, [r4, #0x70] + ldr r1, [r1, #4] + bl FUN_020239C8 + ldr r0, [r4, #4] + bl FUN_02024EB4 + ldr r1, [r4, #0x74] + ldr r1, [r1, #0x18] + bl FUN_02024EF4 + ldr r0, [r4, #0x70] + bl FUN_02077AC4 + ldr r0, [r4, #0x74] + bl FUN_02077AC4 + add r0, r6, #0 + bl FUN_0200627C + add r0, r5, #0 + bl FUN_020168D0 + ldr r0, _021D771C ; =SDK_OVERLAY_MODULE_52_ID + ldr r1, _021D7720 ; =0x021D76D8 + bl FUN_02000E7C + mov r0, #1 + pop {r4, r5, r6, pc} + nop +_021D771C: .word SDK_OVERLAY_MODULE_52_ID +_021D7720: .word 0x021D76D8 + thumb_func_end MOD59_021D76C0 + + thumb_func_start MOD59_021D7724 +MOD59_021D7724: ; 0x021D7724 + ldr r3, _021D772C ; =FUN_0201AB60 + ldr r0, [r0, #0x18] + bx r3 + nop +_021D772C: .word FUN_0201AB60 + thumb_func_end MOD59_021D7724 + + thumb_func_start MOD59_021D7730 +MOD59_021D7730: ; 0x021D7730 + push {r3, r4} + ldr r2, _021D7788 ; =0x021C48F8 + mov r0, #0 + ldrh r1, [r2, #0x20] + cmp r1, #0 + beq _021D7784 + ldrh r3, [r2, #0x1c] + mov r1, #1 + lsl r1, r1, #8 + cmp r3, r1 + bhs _021D7784 + ldrh r2, [r2, #0x1e] + cmp r2, #0xc0 + bhs _021D7784 + cmp r3, #0x80 + bhs _021D7758 + mov r1, #0x80 + sub r1, r1, r3 + lsl r1, r1, #0x10 + b _021D775C +_021D7758: + sub r3, #0x80 + lsl r1, r3, #0x10 +_021D775C: + lsr r3, r1, #0x10 + cmp r2, #0x64 + bhs _021D776A + mov r1, #0x64 + sub r1, r1, r2 + lsl r1, r1, #0x10 + b _021D776E +_021D776A: + sub r2, #0x64 + lsl r1, r2, #0x10 +_021D776E: + lsr r4, r1, #0x10 + add r2, r3, #0 + add r1, r4, #0 + mul r2, r3 + mul r1, r4 + add r2, r2, r1 + mov r1, #1 + lsl r1, r1, #8 + cmp r2, r1 + bgt _021D7784 + mov r0, #1 +_021D7784: + pop {r3, r4} + bx lr + .align 2, 0 +_021D7788: .word 0x021C48F8 + thumb_func_end MOD59_021D7730 + + thumb_func_start MOD59_021D778C +MOD59_021D778C: ; 0x021D778C + push {r3, r4, r5, lr} + sub sp, #0x78 + ldr r5, _021D7954 ; =0x021D9F18 + add r4, r0, #0 + add r3, sp, #0x50 + mov r2, #5 +_021D7798: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7798 + add r0, sp, #0x50 + bl FUN_0201E66C + ldr r0, [r4] + bl FUN_02016B94 + add r3, sp, #0x40 + ldr r5, _021D7958 ; =0x021D9DCC + str r0, [r4, #0x18] + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D795C ; =0x021D9EA0 + add r3, sp, #0x24 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + mov r0, #0xf + strb r0, [r2, #0x12] + mov r0, #6 + strb r0, [r2, #0x13] + ldr r0, [r4, #0x18] + add r3, r1, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #0 + bl FUN_02018744 + mov r0, #0xe + add r2, sp, #0x24 + strb r0, [r2, #0x12] + mov r0, #5 + strb r0, [r2, #0x13] + ldr r0, [r4, #0x18] + mov r1, #1 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #1 + bl FUN_02018744 + mov r0, #0xd + add r2, sp, #0x24 + strb r0, [r2, #0x12] + mov r0, #4 + strb r0, [r2, #0x13] + ldr r0, [r4, #0x18] + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #2 + bl FUN_02018744 + mov r0, #0xc + add r2, sp, #0x24 + strb r0, [r2, #0x12] + mov r1, #3 + strb r1, [r2, #0x13] + ldr r0, [r4, #0x18] + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #3 + bl FUN_02018744 + mov r1, #0 + str r1, [sp] + ldr r0, [r4] + ldr r2, _021D7960 ; =0x000003E2 + str r0, [sp, #4] + ldr r0, [r4, #0x18] + mov r3, #4 + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + ldr r0, [r4] + ldr r2, _021D7964 ; =0x000003D9 + str r0, [sp, #4] + ldr r0, [r4, #0x18] + mov r3, #3 + bl FUN_0200CB00 + ldr r2, [r4] + mov r0, #0 + mov r1, #0xa0 + bl FUN_02002ED0 + ldr r2, [r4] + mov r0, #0 + mov r1, #0xc0 + bl FUN_02002EEC + ldr r5, _021D7968 ; =0x021D9EBC + add r3, sp, #8 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0xf + str r0, [r3] + add r0, sp, #8 + strb r1, [r0, #0x12] + mov r1, #6 + strb r1, [r0, #0x13] + ldr r0, [r4, #0x18] + mov r1, #4 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #4 + bl FUN_02018744 + mov r1, #0xe + add r0, sp, #8 + strb r1, [r0, #0x12] + mov r1, #5 + strb r1, [r0, #0x13] + ldr r0, [r4, #0x18] + add r2, sp, #8 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #5 + bl FUN_02018744 + mov r1, #0xd + add r0, sp, #8 + strb r1, [r0, #0x12] + mov r1, #4 + strb r1, [r0, #0x13] + ldr r0, [r4, #0x18] + mov r1, #6 + add r2, sp, #8 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #6 + bl FUN_02018744 + mov r1, #0xc + add r0, sp, #8 + strb r1, [r0, #0x12] + mov r1, #3 + strb r1, [r0, #0x13] + ldr r0, [r4, #0x18] + mov r1, #7 + add r2, sp, #8 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #7 + bl FUN_02018744 + mov r0, #0 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #1 + mov r1, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #0 + bl FUN_0201797C + mov r0, #3 + mov r1, #0 + bl FUN_0201797C + mov r0, #4 + mov r1, #0 + bl FUN_0201797C + mov r0, #5 + mov r1, #0 + bl FUN_0201797C + mov r0, #6 + mov r1, #0 + bl FUN_0201797C + mov r0, #7 + mov r1, #0 + bl FUN_0201797C + add r0, r4, #0 + bl MOD59_021D8058 + mov r0, #0 + str r0, [r4, #0x78] + add sp, #0x78 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7954: .word 0x021D9F18 +_021D7958: .word 0x021D9DCC +_021D795C: .word 0x021D9EA0 +_021D7960: .word 0x000003E2 +_021D7964: .word 0x000003D9 +_021D7968: .word 0x021D9EBC + thumb_func_end MOD59_021D778C + + thumb_func_start MOD59_021D796C +MOD59_021D796C: ; 0x021D796C + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #1 + mov r1, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #0 + bl FUN_0201797C + mov r0, #3 + mov r1, #0 + bl FUN_0201797C + mov r0, #4 + mov r1, #0 + bl FUN_0201797C + mov r0, #5 + mov r1, #0 + bl FUN_0201797C + mov r0, #6 + mov r1, #0 + bl FUN_0201797C + mov r0, #7 + mov r1, #0 + bl FUN_0201797C + ldr r0, [r4, #0x18] + mov r1, #0 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + mov r1, #4 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + mov r1, #5 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + mov r1, #6 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + mov r1, #7 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD59_021D796C + + thumb_func_start MOD59_021D79F8 +MOD59_021D79F8: ; 0x021D79F8 + push {r4, lr} + add r4, r0, #0 + ldr r2, _021D7A30 ; =0x00000155 + ldr r3, [r4] + mov r0, #1 + mov r1, #0x1a + bl FUN_0200A86C + str r0, [r4, #0x4c] + bl FUN_0201BD5C + mov r0, #0 + ldr r3, [r4] + add r1, r0, #0 + mov r2, #6 + bl FUN_020142EC + str r0, [r4, #0x60] + ldr r0, [r4] + bl FUN_0200AA80 + str r0, [r4, #0x64] + mov r0, #0 + str r0, [r4, #0x50] + str r0, [r4, #0x54] + str r0, [r4, #0x2c] + pop {r4, pc} + nop +_021D7A30: .word 0x00000155 + thumb_func_end MOD59_021D79F8 + + thumb_func_start MOD59_021D7A34 +MOD59_021D7A34: ; 0x021D7A34 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x64] + bl FUN_0200AB18 + ldr r0, [r4, #0x60] + bl FUN_020143D0 + ldr r0, [r4, #0x4c] + bl FUN_0200A8B8 + pop {r4, pc} + thumb_func_end MOD59_021D7A34 + + thumb_func_start MOD59_021D7A4C +MOD59_021D7A4C: ; 0x021D7A4C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + bl FUN_02014590 + str r0, [r4, #0x68] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD59_021D7A4C + + thumb_func_start MOD59_021D7A5C +MOD59_021D7A5C: ; 0x021D7A5C + ldr r3, _021D7A64 ; =FUN_020145A8 + ldr r0, [r0, #0x68] + bx r3 + nop +_021D7A64: .word FUN_020145A8 + thumb_func_end MOD59_021D7A5C + + thumb_func_start MOD59_021D7A68 +MOD59_021D7A68: ; 0x021D7A68 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r1, #0 + add r3, r0, #0 + add r6, r2, #0 + mov r5, #0 + cmp r4, #6 + bhi _021D7A92 + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7A84: ; jump table + .short _021D7A92 - _021D7A84 - 2 ; case 0 + .short _021D7A98 - _021D7A84 - 2 ; case 1 + .short _021D7A9E - _021D7A84 - 2 ; case 2 + .short _021D7A92 - _021D7A84 - 2 ; case 3 + .short _021D7AA4 - _021D7A84 - 2 ; case 4 + .short _021D7AAA - _021D7A84 - 2 ; case 5 + .short _021D7AB0 - _021D7A84 - 2 ; case 6 +_021D7A92: + mov r1, #1 + mov r0, #0 + b _021D7AB4 +_021D7A98: + mov r1, #2 + add r0, r5, #0 + b _021D7AB4 +_021D7A9E: + mov r1, #4 + add r0, r5, #0 + b _021D7AB4 +_021D7AA4: + mov r1, #1 + add r0, r1, #0 + b _021D7AB4 +_021D7AAA: + mov r1, #2 + mov r0, #1 + b _021D7AB4 +_021D7AB0: + mov r1, #4 + mov r0, #1 +_021D7AB4: + ldr r2, [r3, #0x78] + cmp r2, #3 + bls _021D7ABC + b _021D7BDE +_021D7ABC: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021D7AC8: ; jump table + .short _021D7AD0 - _021D7AC8 - 2 ; case 0 + .short _021D7B2C - _021D7AC8 - 2 ; case 1 + .short _021D7B7C - _021D7AC8 - 2 ; case 2 + .short _021D7BD0 - _021D7AC8 - 2 ; case 3 +_021D7AD0: + cmp r6, #0 + bne _021D7B1A + mov r2, #0 + str r2, [r3, #0x7c] + add r2, r3, #0 + mov r6, #0x10 + add r2, #0x80 + str r6, [r2] + mov r2, #1 + str r2, [r3, #0x78] + cmp r0, #0 + bne _021D7AFC + add r0, r3, #0 + add r0, #0x80 + ldr r0, [r0] + mov r2, #0xe + str r0, [sp] + ldr r0, _021D7BE4 ; =0x04000050 + ldr r3, [r3, #0x7c] + bl G2x_SetBlendAlpha_ + b _021D7B0E +_021D7AFC: + add r0, r3, #0 + add r0, #0x80 + ldr r0, [r0] + mov r2, #0xe + str r0, [sp] + ldr r0, _021D7BE8 ; =0x04001050 + ldr r3, [r3, #0x7c] + bl G2x_SetBlendAlpha_ +_021D7B0E: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + mov r1, #1 + bl FUN_0201797C + b _021D7BDE +_021D7B1A: + mov r0, #0x10 + str r0, [r3, #0x7c] + add r0, r3, #0 + mov r1, #0 + add r0, #0x80 + str r1, [r0] + mov r0, #2 + str r0, [r3, #0x78] + b _021D7BDE +_021D7B2C: + add r2, r3, #0 + add r2, #0x80 + ldr r2, [r2] + cmp r2, #0 + beq _021D7B76 + ldr r2, [r3, #0x7c] + add r2, r2, #1 + str r2, [r3, #0x7c] + add r2, r3, #0 + add r2, #0x80 + ldr r2, [r2] + sub r4, r2, #1 + add r2, r3, #0 + add r2, #0x80 + str r4, [r2] + cmp r0, #0 + bne _021D7B62 + add r0, r3, #0 + add r0, #0x80 + ldr r0, [r0] + mov r2, #0xe + str r0, [sp] + ldr r0, _021D7BE4 ; =0x04000050 + ldr r3, [r3, #0x7c] + bl G2x_SetBlendAlpha_ + b _021D7BDE +_021D7B62: + add r0, r3, #0 + add r0, #0x80 + ldr r0, [r0] + mov r2, #0xe + str r0, [sp] + ldr r0, _021D7BE8 ; =0x04001050 + ldr r3, [r3, #0x7c] + bl G2x_SetBlendAlpha_ + b _021D7BDE +_021D7B76: + mov r0, #3 + str r0, [r3, #0x78] + b _021D7BDE +_021D7B7C: + ldr r2, [r3, #0x7c] + cmp r2, #0 + beq _021D7BC0 + sub r2, r2, #1 + str r2, [r3, #0x7c] + add r2, r3, #0 + add r2, #0x80 + ldr r2, [r2] + add r4, r2, #1 + add r2, r3, #0 + add r2, #0x80 + str r4, [r2] + cmp r0, #0 + bne _021D7BAC + add r0, r3, #0 + add r0, #0x80 + ldr r0, [r0] + mov r2, #0xe + str r0, [sp] + ldr r0, _021D7BE4 ; =0x04000050 + ldr r3, [r3, #0x7c] + bl G2x_SetBlendAlpha_ + b _021D7BDE +_021D7BAC: + add r0, r3, #0 + add r0, #0x80 + ldr r0, [r0] + mov r2, #0xe + str r0, [sp] + ldr r0, _021D7BE8 ; =0x04001050 + ldr r3, [r3, #0x7c] + bl G2x_SetBlendAlpha_ + b _021D7BDE +_021D7BC0: + mov r0, #3 + str r0, [r3, #0x78] + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + mov r1, #0 + bl FUN_0201797C + b _021D7BDE +_021D7BD0: + ldr r0, _021D7BE4 ; =0x04000050 + mov r1, #0 + strh r1, [r0] + ldr r0, _021D7BE8 ; =0x04001050 + mov r5, #1 + strh r1, [r0] + str r1, [r3, #0x78] +_021D7BDE: + add r0, r5, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D7BE4: .word 0x04000050 +_021D7BE8: .word 0x04001050 + thumb_func_end MOD59_021D7A68 + + thumb_func_start MOD59_021D7BEC +MOD59_021D7BEC: ; 0x021D7BEC + add r2, r0, #0 + add r2, #0x90 + ldr r2, [r2] + cmp r2, r1 + bge _021D7C06 + add r1, r0, #0 + add r1, #0x90 + ldr r1, [r1] + add r0, #0x90 + add r1, r1, #1 + str r1, [r0] + mov r0, #0 + bx lr +_021D7C06: + mov r1, #0 + add r0, #0x90 + str r1, [r0] + mov r0, #1 + bx lr + thumb_func_end MOD59_021D7BEC + + thumb_func_start MOD59_021D7C10 +MOD59_021D7C10: ; 0x021D7C10 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + lsl r0, r2, #0x18 + add r4, r1, #0 + lsr r0, r0, #0x18 + str r0, [sp, #8] + lsl r1, r4, #0x18 + mov r2, #0 + ldr r0, [r5, #0x18] + lsr r1, r1, #0x18 + add r3, r2, #0 + bl FUN_020186B4 + lsl r1, r4, #0x18 + ldr r0, [r5, #0x18] + lsr r1, r1, #0x18 + bl FUN_02017CD0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD59_021D7C10 + + thumb_func_start MOD59_021D7C44 +MOD59_021D7C44: ; 0x021D7C44 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, [r5, #0x50] + add r7, r1, #0 + mov r4, #0 + cmp r0, #0 + beq _021D7C5E + cmp r0, #1 + beq _021D7D1C + cmp r0, #2 + beq _021D7D36 + b _021D7D54 +_021D7C5E: + add r1, r5, #0 + ldr r0, [r5, #0x18] + ldr r2, _021D7D5C ; =0x021D9DB8 + add r1, #0x1c + bl FUN_02019150 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + add r0, r5, #0 + add r2, r4, #0 + add r0, #0x1c + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + add r0, r5, #0 + ldr r2, _021D7D60 ; =0x000003E2 + add r0, #0x1c + add r1, r4, #0 + mov r3, #4 + bl FUN_0200D0BC + mov r0, #1 + bl FUN_02002B60 + add r0, r4, #0 + bl FUN_02002B7C + mov r0, #1 + ldr r1, [r5] + lsl r0, r0, #0xa + bl FUN_020219F4 + add r6, r0, #0 + mov r0, #1 + ldr r1, [r5] + lsl r0, r0, #0xa + bl FUN_020219F4 + str r0, [r5, #0x5c] + ldr r0, [r5, #0x4c] + add r1, r7, #0 + add r2, r6, #0 + bl FUN_0200A8E0 + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r2, [r5, #0x70] + add r3, r5, #0 + add r3, #0x84 + ldr r0, [r5, #0x64] + ldr r2, [r2, #0x18] + ldr r3, [r3] + add r1, r4, #0 + bl FUN_0200ABB4 + mov r1, #1 + str r1, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r2, [r5, #0x74] + ldr r0, [r5, #0x64] + ldr r2, [r2, #0x18] + add r3, r4, #0 + bl FUN_0200ABB4 + ldr r0, [r5, #0x64] + ldr r1, [r5, #0x5c] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, [r5, #8] + bl FUN_02024FF4 + add r3, r4, #0 + str r3, [sp] + str r0, [sp, #4] + str r3, [sp, #8] + add r0, r5, #0 + ldr r2, [r5, #0x5c] + add r0, #0x1c + mov r1, #1 + bl FUN_0201BD84 + str r0, [r5, #0x58] + mov r0, #1 + str r0, [r5, #0x50] + b _021D7D54 +_021D7D1C: + ldr r0, [r5, #0x58] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021D7D54 + ldr r0, [r5, #0x5c] + bl FUN_02021A20 + mov r0, #2 + str r0, [r5, #0x50] + b _021D7D54 +_021D7D36: + cmp r2, #0 + bne _021D7D46 + ldr r0, _021D7D64 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + and r0, r1 + cmp r0, #1 + bne _021D7D54 +_021D7D46: + add r0, r5, #0 + add r0, #0x1c + bl FUN_02019178 + mov r0, #0 + str r0, [r5, #0x50] + mov r4, #1 +_021D7D54: + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + nop +_021D7D5C: .word 0x021D9DB8 +_021D7D60: .word 0x000003E2 +_021D7D64: .word 0x021C48B8 + thumb_func_end MOD59_021D7C44 + + thumb_func_start MOD59_021D7D68 +MOD59_021D7D68: ; 0x021D7D68 + push {r3, lr} + cmp r2, #0 + bne _021D7D74 + ldr r0, _021D7D78 ; =0x000005DC + bl FUN_020054C8 +_021D7D74: + pop {r3, pc} + nop +_021D7D78: .word 0x000005DC + thumb_func_end MOD59_021D7D68 + + thumb_func_start MOD59_021D7D7C +MOD59_021D7D7C: ; 0x021D7D7C + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, [r5, #0x2c] + add r4, r2, #0 + cmp r0, #0 + beq _021D7D94 + cmp r0, #1 + beq _021D7E4C + b _021D7E96 +_021D7D94: + cmp r1, #0 + beq _021D7DA0 + cmp r1, #1 + beq _021D7DA8 + cmp r1, #2 + beq _021D7DB0 +_021D7DA0: + ldr r2, _021D7E9C ; =0x021D9DA8 + ldr r4, _021D7EA0 ; =0x021D9E0C + mov r6, #2 + b _021D7DC4 +_021D7DA8: + ldr r2, _021D7EA4 ; =0x021D9DB0 + ldr r4, _021D7EA8 ; =0x021D9E58 + mov r6, #3 + b _021D7DC4 +_021D7DB0: + ldr r0, _021D7EAC ; =0x020ECAC0 + ldr r2, _021D7EB0 ; =0x021D9DA0 + ldrb r0, [r0] + cmp r0, #0xa + bne _021D7DC0 + ldr r4, _021D7EB4 ; =0x021D9F40 + mov r6, #5 + b _021D7DC4 +_021D7DC0: + ldr r4, _021D7EB8 ; =0x021D9F68 + mov r6, #5 +_021D7DC4: + add r1, r5, #0 + ldr r0, [r5, #0x18] + add r1, #0x30 + bl FUN_02019150 + ldr r1, [r5] + add r0, r6, #0 + bl FUN_02012838 + mov r7, #0 + str r0, [r5, #0x44] + cmp r6, #0 + ble _021D7DF2 +_021D7DDE: + ldr r0, [r5, #0x44] + ldr r1, [r5, #0x4c] + ldr r2, [r4] + ldr r3, [r4, #4] + bl FUN_02012880 + add r7, r7, #1 + add r4, #8 + cmp r7, r6 + blt _021D7DDE +_021D7DF2: + ldr r4, _021D7EBC ; =0x021D9EF8 + add r3, sp, #4 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5, #0x44] + str r0, [sp, #4] + lsl r0, r6, #0x10 + lsr r1, r0, #0x10 + add r0, sp, #4 + strh r1, [r0, #0x10] + strh r1, [r0, #0x12] + ldr r0, _021D7EC0 ; =MOD59_021D7D68 + mov r1, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x30 + str r0, [sp, #0x10] + ldr r3, [r5] + add r0, r2, #0 + lsl r3, r3, #0x18 + add r2, r1, #0 + lsr r3, r3, #0x18 + bl FUN_020010A8 + str r0, [r5, #0x40] + ldr r0, [sp, #0x10] + ldr r2, _021D7EC4 ; =0x000003D9 + mov r1, #1 + mov r3, #3 + bl FUN_0200CCA4 + add r0, r5, #0 + add r0, #0x30 + bl FUN_020191D0 + mov r0, #1 + str r0, [r5, #0x2c] + b _021D7E96 +_021D7E4C: + ldr r0, [r5, #0x40] + bl FUN_02001204 + mov r1, #0 + mvn r1, r1 + str r0, [r5, #0x48] + cmp r0, r1 + beq _021D7E96 + sub r1, r1, #1 + cmp r0, r1 + bne _021D7E66 + cmp r4, #1 + beq _021D7E96 +_021D7E66: + add r0, r5, #0 + add r0, #0x30 + mov r1, #0 + bl FUN_0200CCF8 + add r0, r5, #0 + add r0, #0x30 + bl FUN_02019178 + mov r1, #0 + ldr r0, [r5, #0x40] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, [r5, #0x44] + bl FUN_02012870 + ldr r0, _021D7EC8 ; =0x000005DC + bl FUN_020054C8 + mov r0, #0 + str r0, [r5, #0x2c] + mov r0, #1 + str r0, [sp] +_021D7E96: + ldr r0, [sp] + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D7E9C: .word 0x021D9DA8 +_021D7EA0: .word 0x021D9E0C +_021D7EA4: .word 0x021D9DB0 +_021D7EA8: .word 0x021D9E58 +_021D7EAC: .word 0x020ECAC0 +_021D7EB0: .word 0x021D9DA0 +_021D7EB4: .word 0x021D9F40 +_021D7EB8: .word 0x021D9F68 +_021D7EBC: .word 0x021D9EF8 +_021D7EC0: .word MOD59_021D7D68 +_021D7EC4: .word 0x000003D9 +_021D7EC8: .word 0x000005DC + thumb_func_end MOD59_021D7D7C + + thumb_func_start MOD59_021D7ECC +MOD59_021D7ECC: ; 0x021D7ECC + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r4, r0, #0 + str r1, [sp, #0x10] + ldr r1, [r4, #0x54] + add r6, r2, #0 + add r7, r3, #0 + mov r5, #0 + cmp r1, #5 + bls _021D7EE2 + b _021D803C +_021D7EE2: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7EEE: ; jump table + .short _021D7EFA - _021D7EEE - 2 ; case 0 + .short _021D7FD8 - _021D7EEE - 2 ; case 1 + .short _021D7FE4 - _021D7EEE - 2 ; case 2 + .short _021D7FF6 - _021D7EEE - 2 ; case 3 + .short _021D8016 - _021D7EEE - 2 ; case 4 + .short _021D8028 - _021D7EEE - 2 ; case 5 +_021D7EFA: + add r0, r5, #0 + add r1, r5, #0 + bl FUN_0201797C + mov r0, #1 + ldr r1, [r4] + lsl r0, r0, #0xa + bl FUN_020219F4 + str r0, [r4, #0x5c] + ldr r0, [r4, #0x4c] + ldr r1, [sp, #0x10] + ldr r2, [r4, #0x5c] + bl FUN_0200A8E0 + cmp r6, #1 + add r0, sp, #0x14 + bne _021D7F7C + ldr r1, _021D8044 ; =0x021D9D90 + ldrh r2, [r1, #8] + strh r2, [r0] + ldrh r2, [r1, #0xa] + strh r2, [r0, #2] + ldrh r2, [r1, #0xc] + ldrh r1, [r1, #0xe] + strh r2, [r0, #4] + strh r1, [r0, #6] + ldr r0, [r4, #0x5c] + bl FUN_02002F90 + mov r1, #0xc + sub r2, r1, r0 + add r1, sp, #0x14 + strb r2, [r1, #2] + lsl r0, r0, #1 + strb r0, [r1, #4] + add r1, r4, #0 + ldr r0, [r4, #0x18] + add r1, #0x1c + add r2, sp, #0x14 + bl FUN_02019150 + add r1, r5, #0 + mov r0, #0xc0 + str r0, [sp] + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0x1c + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + add r1, r5, #0 + str r1, [sp] + ldr r0, _021D8048 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x5c] + add r0, #0x1c + add r3, r1, #0 + bl FUN_0201BDE0 + b _021D7FCC +_021D7F7C: + ldr r1, _021D8044 ; =0x021D9D90 + add r2, sp, #0x14 + ldrh r3, [r1] + strh r3, [r0] + ldrh r3, [r1, #2] + strh r3, [r0, #2] + ldrh r3, [r1, #4] + ldrh r1, [r1, #6] + strh r3, [r0, #4] + strh r1, [r0, #6] + ldr r1, [sp, #0x30] + strb r7, [r0, #2] + strb r1, [r0, #4] + add r1, r4, #0 + ldr r0, [r4, #0x18] + add r1, #0x1c + bl FUN_02019150 + add r1, r5, #0 + mov r0, #0xc0 + str r0, [sp] + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0x1c + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + add r1, r5, #0 + str r1, [sp] + ldr r0, _021D804C ; =0x000F0200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x5c] + add r0, #0x1c + add r3, r1, #0 + bl FUN_0201BDE0 +_021D7FCC: + ldr r0, [r4, #0x5c] + bl FUN_02021A20 + mov r0, #1 + str r0, [r4, #0x54] + b _021D803C +_021D7FD8: + add r0, #0x1c + bl FUN_020191D0 + mov r0, #2 + str r0, [r4, #0x54] + b _021D803C +_021D7FE4: + add r1, r5, #0 + add r2, r5, #0 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D803C + mov r0, #3 + str r0, [r4, #0x54] + b _021D803C +_021D7FF6: + ldr r0, _021D8050 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + and r0, r1 + cmp r0, #1 + beq _021D800A + mov r0, #2 + and r0, r1 + cmp r0, #2 + bne _021D803C +_021D800A: + ldr r0, _021D8054 ; =0x000005DC + bl FUN_020054C8 + mov r0, #4 + str r0, [r4, #0x54] + b _021D803C +_021D8016: + add r1, r5, #0 + mov r2, #1 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D803C + mov r0, #5 + str r0, [r4, #0x54] + b _021D803C +_021D8028: + add r0, #0x1c + bl FUN_02019178 + ldr r0, [r4, #0x18] + add r1, r5, #0 + bl FUN_02018744 + add r0, r5, #0 + str r0, [r4, #0x54] + mov r5, #1 +_021D803C: + add r0, r5, #0 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021D8044: .word 0x021D9D90 +_021D8048: .word 0x00010200 +_021D804C: .word 0x000F0200 +_021D8050: .word 0x021C48B8 +_021D8054: .word 0x000005DC + thumb_func_end MOD59_021D7ECC + + thumb_func_start MOD59_021D8058 +MOD59_021D8058: ; 0x021D8058 + push {r3, r4, r5, lr} + sub sp, #0x10 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + add r5, r0, #0 + str r1, [sp, #8] + ldr r0, [r5] + mov r3, #3 + str r0, [sp, #0xc] + ldr r2, [r5, #0x18] + mov r0, #0x7d + bl FUN_0200687C + mov r0, #0 + ldr r3, [r5] + mov r1, #0x20 + add r2, r0, #0 + bl FUN_02017F18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + mov r1, #0x17 + str r0, [sp, #0xc] + ldr r2, [r5, #0x18] + mov r0, #0x7d + mov r3, #7 + bl FUN_0200687C + ldr r0, _021D80F8 ; =0x020ECAC0 + ldrb r0, [r0] + cmp r0, #0xa + bne _021D80A6 + mov r1, #1 + mov r4, #0x18 + b _021D80AA +_021D80A6: + mov r1, #2 + mov r4, #0x19 +_021D80AA: + mov r0, #0x60 + str r0, [sp] + ldr r0, [r5] + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x7d + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0xa0 + str r0, [sp] + ldr r0, [r5] + add r1, r4, #0 + str r0, [sp, #4] + mov r0, #0x7d + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + add r0, r5, #0 + bl MOD59_021D80FC + add r0, r5, #0 + bl MOD59_021D8140 + add r0, r5, #0 + bl MOD59_021D8234 + mov r0, #0 + add r1, r0, #0 + bl FUN_02017FE4 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D80F8: .word 0x020ECAC0 + thumb_func_end MOD59_021D8058 + + thumb_func_start MOD59_021D80FC +MOD59_021D80FC: ; 0x021D80FC + push {r4, r5, lr} + sub sp, #0x24 + ldr r5, _021D813C ; =0x021D9E1C + add r3, r0, #0 + ldmia r5!, {r0, r1} + add r4, sp, #0x10 + add r2, r4, #0 + stmia r4!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r4!, {r0, r1} + ldr r0, [r5] + str r0, [r4] + add r0, r3, #0 + add r0, #0x88 + ldrb r1, [r0] + cmp r1, #5 + bhs _021D8138 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r3] + lsl r1, r1, #2 + str r0, [sp, #0xc] + ldr r1, [r2, r1] + ldr r2, [r3, #0x18] + mov r0, #0x7d + mov r3, #3 + bl FUN_020068C8 +_021D8138: + add sp, #0x24 + pop {r4, r5, pc} + .align 2, 0 +_021D813C: .word 0x021D9E1C + thumb_func_end MOD59_021D80FC + + thumb_func_start MOD59_021D8140 +MOD59_021D8140: ; 0x021D8140 + push {r3, r4, r5, lr} + sub sp, #0x68 + ldr r5, _021D8230 ; =0x021D9F90 + add r4, r0, #0 + add r3, sp, #0x10 + mov r2, #0xb +_021D814C: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D814C + add r0, r4, #0 + add r0, #0x89 + ldrb r1, [r0] + cmp r1, #0 + beq _021D81BE + cmp r1, #0xc + bhs _021D81BE + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + lsl r2, r1, #3 + str r0, [sp, #0xc] + add r1, sp, #0x10 + ldr r1, [r1, r2] + ldr r2, [r4, #0x18] + mov r0, #0x7d + mov r3, #1 + bl FUN_0200687C + mov r0, #0x20 + str r0, [sp] + ldr r0, [r4] + add r1, r4, #0 + str r0, [sp, #4] + add r1, #0x89 + ldrb r1, [r1] + mov r0, #0x7d + mov r3, #0xe0 + lsl r2, r1, #3 + add r1, sp, #0x14 + ldr r1, [r1, r2] + mov r2, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + mov r1, #0x16 + str r0, [sp, #0xc] + ldr r2, [r4, #0x18] + mov r0, #0x7d + mov r3, #1 + bl FUN_020068C8 + add r0, r4, #0 + mov r1, #1 + mov r2, #7 + bl MOD59_021D7C10 +_021D81BE: + add r0, r4, #0 + add r0, #0x8a + ldrb r1, [r0] + cmp r1, #0 + beq _021D822A + cmp r1, #0xc + bhs _021D822A + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + lsl r2, r1, #3 + str r0, [sp, #0xc] + add r1, sp, #0x10 + ldr r1, [r1, r2] + ldr r2, [r4, #0x18] + mov r0, #0x7d + mov r3, #2 + bl FUN_0200687C + mov r0, #0x20 + str r0, [sp] + ldr r0, [r4] + add r1, r4, #0 + str r0, [sp, #4] + add r1, #0x8a + ldrb r1, [r1] + mov r0, #0x7d + add r3, r0, #0 + lsl r2, r1, #3 + add r1, sp, #0x14 + ldr r1, [r1, r2] + mov r2, #0 + add r3, #0x83 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + mov r1, #0x16 + str r0, [sp, #0xc] + ldr r2, [r4, #0x18] + mov r0, #0x7d + mov r3, #2 + bl FUN_020068C8 + add r0, r4, #0 + mov r1, #2 + mov r2, #8 + bl MOD59_021D7C10 +_021D822A: + add sp, #0x68 + pop {r3, r4, r5, pc} + nop +_021D8230: .word 0x021D9F90 + thumb_func_end MOD59_021D8140 + + thumb_func_start MOD59_021D8234 +MOD59_021D8234: ; 0x021D8234 + push {r4, r5, lr} + sub sp, #0x24 + ldr r5, _021D829C ; =0x021D9E30 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x10 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + add r0, r4, #0 + add r0, #0x8b + ldrb r1, [r0] + cmp r1, #5 + bhs _021D8296 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + lsl r1, r1, #2 + str r0, [sp, #0xc] + ldr r1, [r2, r1] + ldr r2, [r4, #0x18] + mov r0, #0x7d + mov r3, #7 + bl FUN_020068C8 + add r0, r4, #0 + add r0, #0x8b + ldrb r0, [r0] + cmp r0, #1 + bne _021D8288 + add r0, r4, #0 + mov r1, #7 + mov r2, #3 + bl MOD59_021D7C10 + add sp, #0x24 + pop {r4, r5, pc} +_021D8288: + cmp r0, #2 + bne _021D8296 + add r0, r4, #0 + mov r1, #7 + mov r2, #2 + bl MOD59_021D7C10 +_021D8296: + add sp, #0x24 + pop {r4, r5, pc} + nop +_021D829C: .word 0x021D9E30 + thumb_func_end MOD59_021D8234 + + thumb_func_start MOD59_021D82A0 +MOD59_021D82A0: ; 0x021D82A0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + mov r2, #0 + str r2, [sp] + str r2, [sp, #4] + add r5, r0, #0 + ldr r1, _021D83EC ; =0x000001BE + str r2, [sp, #8] + add r0, sp, #0x10 + mov r3, #2 + bl FUN_02068C00 + ldr r0, [r5] + mov r1, #0xc8 + bl FUN_02016998 + add r7, r0, #0 + ldr r2, _021D83F0 ; =0x021D9FE8 + mov r1, #0 + add r3, r7, #0 +_021D82C8: + ldrb r0, [r2] + add r1, r1, #1 + add r2, r2, #1 + add r0, r0, #1 + strh r0, [r3] + add r3, r3, #2 + cmp r1, #0x64 + blt _021D82C8 + add r1, sp, #0x10 + ldrh r0, [r1] + ldrh r1, [r1, #2] + ldr r2, [r5] + bl FUN_0201244C + add r1, sp, #0x10 + add r4, r0, #0 + ldrh r0, [r1] + ldrh r1, [r1, #4] + ldr r2, [r5] + bl FUN_02012470 + mov r2, #0 + add r6, r0, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #9 + str r0, [sp, #0xc] + ldr r0, [r5, #0x18] + mov r1, #2 + add r3, r2, #0 + bl FUN_02018540 + mov r3, #0xb + str r3, [sp] + mov r0, #0xa + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5, #0x18] + mov r1, #2 + add r2, r7, #0 + bl FUN_02018148 + add r0, r5, #0 + mov r1, #2 + mov r2, #9 + bl MOD59_021D7C10 + ldr r3, [r5] + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + mov r0, #1 + str r0, [sp] + mov r3, #0x32 + ldr r0, [r5, #0x18] + mov r1, #2 + add r2, r4, #0 + lsl r3, r3, #6 + bl FUN_02017E14 + mov r3, #0x20 + add r2, r3, #0 + mov r0, #2 + add r1, r6, #0 + add r3, #0xe0 + bl FUN_02017FB4 + mov r3, #0x12 + ldr r1, _021D83F4 ; =0x021D9ED8 + mov r0, #2 + mov r2, #0x20 + lsl r3, r3, #4 + bl FUN_02017FB4 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0xa + str r0, [sp, #0xc] + ldr r0, [r5, #0x18] + mov r1, #5 + add r3, r2, #0 + bl FUN_02018540 + mov r0, #7 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5, #0x18] + mov r1, #5 + add r2, r7, #0 + mov r3, #0xb + bl FUN_02018148 + add r0, r5, #0 + mov r1, #5 + mov r2, #0xa + bl MOD59_021D7C10 + ldr r3, [r5] + mov r0, #5 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + mov r0, #1 + str r0, [sp] + mov r3, #0x32 + ldr r0, [r5, #0x18] + mov r1, #5 + add r2, r4, #0 + lsl r3, r3, #6 + bl FUN_02017E14 + mov r0, #5 + add r1, r6, #0 + mov r2, #0x20 + lsl r3, r0, #6 + bl FUN_02017FB4 + mov r0, #5 + ldr r1, _021D83F4 ; =0x021D9ED8 + mov r2, #0x20 + lsl r3, r0, #6 + bl FUN_02017FB4 + add r0, r6, #0 + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_02016A18 + add r0, r7, #0 + bl FUN_02016A18 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D83EC: .word 0x000001BE +_021D83F0: .word 0x021D9FE8 +_021D83F4: .word 0x021D9ED8 + thumb_func_end MOD59_021D82A0 + + thumb_func_start MOD59_021D83F8 +MOD59_021D83F8: ; 0x021D83F8 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + mov r1, #0x26 + str r0, [sp, #0xc] + ldr r2, [r4, #0x18] + mov r0, #0x7d + mov r3, #6 + bl FUN_020068C8 + add r0, r4, #0 + mov r1, #6 + mov r2, #9 + bl MOD59_021D7C10 + mov r0, #0x60 + str r0, [sp] + ldr r0, [r4] + mov r1, #0x27 + str r0, [sp, #4] + mov r0, #0x7d + mov r2, #4 + mov r3, #0xe0 + bl FUN_02006930 + ldr r3, [r4] + mov r0, #6 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + mov r0, #0x20 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + mov r1, #0x1e + str r0, [sp, #0xc] + ldr r2, [r4, #0x18] + mov r0, #0x7d + mov r3, #6 + bl FUN_0200687C + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD59_021D83F8 + + thumb_func_start MOD59_021D8460 +MOD59_021D8460: ; 0x021D8460 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r6, #0 + cmp r2, #0 + bne _021D849C + ldr r0, [r5, #0x18] + bl FUN_02017B48 + cmp r0, #0 + beq _021D8498 + cmp r0, #0 + ldr r0, [r5, #0x18] + ble _021D848A + lsl r1, r4, #0x18 + lsr r1, r1, #0x18 + mov r2, #2 + mov r3, #4 + bl FUN_020179E0 + b _021D84E2 +_021D848A: + lsl r1, r4, #0x18 + lsr r1, r1, #0x18 + mov r2, #1 + mov r3, #4 + bl FUN_020179E0 + b _021D84E2 +_021D8498: + mov r6, #1 + b _021D84E2 +_021D849C: + cmp r2, #1 + bne _021D84C2 + ldr r0, [r5, #0x18] + bl FUN_02017B48 + add r1, r6, #0 + sub r1, #0x30 + cmp r0, r1 + beq _021D84BE + lsl r1, r4, #0x18 + ldr r0, [r5, #0x18] + lsr r1, r1, #0x18 + mov r2, #2 + mov r3, #4 + bl FUN_020179E0 + b _021D84E2 +_021D84BE: + mov r6, #1 + b _021D84E2 +_021D84C2: + cmp r2, #2 + bne _021D84E2 + ldr r0, [r5, #0x18] + bl FUN_02017B48 + cmp r0, #0 + beq _021D84E0 + lsl r1, r4, #0x18 + ldr r0, [r5, #0x18] + lsr r1, r1, #0x18 + mov r2, #1 + mov r3, #4 + bl FUN_020179E0 + b _021D84E2 +_021D84E0: + mov r6, #1 +_021D84E2: + add r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD59_021D8460 + + thumb_func_start MOD59_021D84E8 +MOD59_021D84E8: ; 0x021D84E8 + add r1, r0, #0 + mov r2, #0 + add r1, #0x8c + strb r2, [r1] + add r1, r0, #0 + add r1, #0x8d + strb r2, [r1] + add r1, r0, #0 + add r1, #0x8e + strb r2, [r1] + add r0, #0x8f + strb r2, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD59_021D84E8 + + thumb_func_start MOD59_021D8504 +MOD59_021D8504: ; 0x021D8504 + push {r3, r4, r5, lr} + sub sp, #0x30 + add r4, r0, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _021D858E + add r0, r4, #0 + add r0, #0x8d + ldrb r0, [r0] + cmp r0, #0 + beq _021D8526 + add r0, r4, #0 + add r0, #0x8d + ldrb r0, [r0] + sub r1, r0, #1 + b _021D8546 +_021D8526: + add r0, r4, #0 + add r0, #0x8c + ldrb r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0x8c + strb r1, [r0] + add r0, r4, #0 + add r0, #0x8c + ldrb r1, [r0] + mov r0, #3 + and r1, r0 + add r0, r4, #0 + add r0, #0x8c + strb r1, [r0] + mov r1, #4 +_021D8546: + add r0, r4, #0 + add r0, #0x8d + strb r1, [r0] + mov r0, #0xa + str r0, [sp] + ldr r0, _021D860C ; =0x04000050 + mov r1, #4 + mov r2, #8 + mov r3, #6 + bl G2x_SetBlendAlpha_ + ldr r5, _021D8610 ; =0x021D9DEC + add r3, sp, #0x20 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + add r1, r4, #0 + str r0, [sp, #0xc] + add r1, #0x8c + ldrb r1, [r1] + mov r0, #0x7d + mov r3, #1 + lsl r1, r1, #2 + ldr r1, [r2, r1] + ldr r2, [r4, #0x18] + bl FUN_0200687C + add sp, #0x30 + pop {r3, r4, r5, pc} +_021D858E: + add r0, r4, #0 + add r0, #0x8f + ldrb r0, [r0] + cmp r0, #0 + beq _021D85A2 + add r0, r4, #0 + add r0, #0x8f + ldrb r0, [r0] + sub r1, r0, #1 + b _021D85C2 +_021D85A2: + add r0, r4, #0 + add r0, #0x8e + ldrb r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0x8e + strb r1, [r0] + add r0, r4, #0 + add r0, #0x8e + ldrb r1, [r0] + mov r0, #3 + and r1, r0 + add r0, r4, #0 + add r0, #0x8e + strb r1, [r0] + mov r1, #4 +_021D85C2: + add r0, r4, #0 + add r0, #0x8f + strb r1, [r0] + mov r0, #0xa + str r0, [sp] + ldr r0, _021D860C ; =0x04000050 + mov r1, #2 + mov r2, #8 + mov r3, #6 + bl G2x_SetBlendAlpha_ + ldr r5, _021D8614 ; =0x021D9DFC + add r3, sp, #0x10 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + add r1, r4, #0 + str r0, [sp, #0xc] + add r1, #0x8e + ldrb r1, [r1] + mov r0, #0x7d + mov r3, #2 + lsl r1, r1, #2 + ldr r1, [r2, r1] + ldr r2, [r4, #0x18] + bl FUN_0200687C + add sp, #0x30 + pop {r3, r4, r5, pc} + nop +_021D860C: .word 0x04000050 +_021D8610: .word 0x021D9DEC +_021D8614: .word 0x021D9DFC + thumb_func_end MOD59_021D8504 + + thumb_func_start MOD59_021D8618 +MOD59_021D8618: ; 0x021D8618 + ldr r0, _021D8620 ; =0x04000050 + mov r1, #0 + strh r1, [r0] + bx lr + .align 2, 0 +_021D8620: .word 0x04000050 + thumb_func_end MOD59_021D8618 + + thumb_func_start MOD59_021D8624 +MOD59_021D8624: ; 0x021D8624 + add r1, r0, #0 + mov r2, #0 + add r1, #0x94 + str r2, [r1] + add r0, #0x98 + str r2, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD59_021D8624 + + thumb_func_start MOD59_021D8634 +MOD59_021D8634: ; 0x021D8634 + push {r4, r5, r6, lr} + sub sp, #0x40 + add r3, r0, #0 + add r0, #0x98 + ldr r0, [r0] + mov r4, #0 + cmp r0, #0 + beq _021D864E + add r0, r3, #0 + add r0, #0x98 + ldr r0, [r0] + sub r1, r0, #1 + b _021D865E +_021D864E: + add r0, r3, #0 + add r0, #0x94 + ldr r0, [r0] + add r1, r0, #1 + add r0, r3, #0 + add r0, #0x94 + str r1, [r0] + mov r1, #8 +_021D865E: + add r0, r3, #0 + add r0, #0x98 + str r1, [r0] + add r0, r3, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _021D8674 + ldr r6, _021D86B4 ; =0x021D9E88 + add r5, sp, #0x28 + b _021D8678 +_021D8674: + ldr r6, _021D86B8 ; =0x021D9E70 + add r5, sp, #0x10 +_021D8678: + add r2, r5, #0 + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + add r0, r3, #0 + add r0, #0x94 + ldr r0, [r0] + lsl r0, r0, #2 + ldr r1, [r2, r0] + cmp r1, #0xff + bne _021D8698 + mov r4, #1 + b _021D86AE +_021D8698: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r3] + str r0, [sp, #0xc] + ldr r2, [r3, #0x18] + mov r0, #0x7d + mov r3, #1 + bl FUN_0200687C +_021D86AE: + add r0, r4, #0 + add sp, #0x40 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D86B4: .word 0x021D9E88 +_021D86B8: .word 0x021D9E70 + thumb_func_end MOD59_021D8634 + + thumb_func_start MOD59_021D86BC +MOD59_021D86BC: ; 0x021D86BC + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + add r4, r0, #0 + ldr r0, [r6] + mov r7, #0 + cmp r0, #5 + bls _021D86CC + b _021D890A +_021D86CC: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D86D8: ; jump table + .short _021D86E4 - _021D86D8 - 2 ; case 0 + .short _021D8728 - _021D86D8 - 2 ; case 1 + .short _021D87A6 - _021D86D8 - 2 ; case 2 + .short _021D87E0 - _021D86D8 - 2 ; case 3 + .short _021D887C - _021D86D8 - 2 ; case 4 + .short _021D88F8 - _021D86D8 - 2 ; case 5 +_021D86E4: + ldr r0, [r4, #0x18] + mov r1, #2 + add r2, r7, #0 + add r3, r7, #0 + bl FUN_020179E0 + mov r2, #3 + add r3, r2, #0 + ldr r0, [r4, #0x18] + mov r1, #2 + sub r3, #0x6b + bl FUN_020179E0 + mov r0, #2 + add r1, r7, #0 + bl FUN_020178BC + mov r0, #5 + mov r1, #1 + bl FUN_0201797C + add r0, r4, #0 + add r2, r7, #0 + add r0, #0xa8 + str r2, [r0] + add r0, r4, #0 + mov r1, #8 + add r0, #0xac + str r1, [r0] + add r4, #0xb0 + str r2, [r4] + mov r0, #1 + str r0, [r6] + b _021D890A +_021D8728: + ldr r0, [r4, #0x18] + mov r1, #2 + bl FUN_02017B48 + ldr r0, [r4, #0x18] + mov r1, #5 + bl FUN_02017B54 + add r1, r4, #0 + add r1, #0xb0 + ldr r3, [r1] + add r1, r4, #0 + add r1, #0xac + ldr r2, [r1] + lsl r1, r2, #3 + add r1, r2, r1 + add r2, r3, #0 + mul r2, r1 + lsl r1, r3, #3 + add r1, r3, r1 + mul r1, r3 + lsr r3, r1, #0x1f + add r3, r1, r3 + asr r1, r3, #1 + sub r5, r2, r1 + cmp r0, #0x58 + bge _021D8792 + add r0, r4, #0 + add r0, #0xb0 + ldr r0, [r0] + mov r2, #1 + add r1, r0, #1 + add r0, r4, #0 + add r0, #0xb0 + str r1, [r0] + mov r1, #2 + ldr r0, [r4, #0x18] + add r3, r1, #0 + bl FUN_020179E0 + ldr r0, [r4, #0x18] + mov r1, #5 + mov r2, #1 + mov r3, #2 + bl FUN_020179E0 + ldr r0, [r4, #0x18] + mov r1, #5 + mov r2, #3 + add r3, r5, #0 + bl FUN_020179E0 + b _021D890A +_021D8792: + mov r0, #5 + add r1, r7, #0 + bl FUN_0201797C + mov r0, #0x1e + add r4, #0xb0 + str r0, [r4] + mov r0, #2 + str r0, [r6] + b _021D890A +_021D87A6: + add r0, r4, #0 + add r0, #0xb0 + ldr r0, [r0] + cmp r0, #0 + beq _021D87BE + add r0, r4, #0 + add r0, #0xb0 + ldr r0, [r0] + add r4, #0xb0 + sub r0, r0, #1 + str r0, [r4] + b _021D890A +_021D87BE: + mov r0, #2 + mov r1, #1 + bl FUN_0201797C + add r0, r4, #0 + add r2, r7, #0 + add r0, #0xa8 + str r2, [r0] + add r0, r4, #0 + mov r1, #9 + add r0, #0xac + str r1, [r0] + add r4, #0xb0 + str r2, [r4] + mov r0, #3 + str r0, [r6] + b _021D890A +_021D87E0: + ldr r0, [r4, #0x18] + mov r1, #2 + bl FUN_02017B48 + ldr r0, [r4, #0x18] + mov r1, #2 + bl FUN_02017B54 + add r0, r4, #0 + add r0, #0xb0 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0xac + ldr r2, [r0] + lsl r0, r2, #3 + add r0, r2, r0 + lsl r2, r1, #3 + add r2, r1, r2 + mul r0, r1 + mul r2, r1 + lsr r1, r2, #0x1f + add r1, r2, r1 + sub r0, #0x68 + asr r1, r1, #1 + sub r5, r0, r1 + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + cmp r0, #0 + ble _021D8846 + cmp r5, #0 + bgt _021D8846 + ldr r0, [r4, #0x18] + mov r1, #2 + mov r2, #3 + add r3, r7, #0 + bl FUN_020179E0 + add r0, r4, #0 + add r2, r7, #0 + add r0, #0xa8 + str r2, [r0] + add r0, r4, #0 + mov r1, #1 + add r0, #0xac + str r1, [r0] + add r4, #0xb0 + str r2, [r4] + mov r0, #4 + str r0, [r6] + b _021D890A +_021D8846: + add r0, r4, #0 + add r0, #0xb0 + ldr r0, [r0] + mov r2, #1 + add r1, r0, #1 + add r0, r4, #0 + add r0, #0xb0 + str r1, [r0] + add r0, r4, #0 + add r0, #0xa8 + str r5, [r0] + ldr r0, [r4, #0x18] + mov r1, #2 + add r3, r2, #0 + bl FUN_020179E0 + asr r5, r5, #1 + cmp r5, #0x90 + ble _021D886E + mov r5, #0x90 +_021D886E: + ldr r0, [r4, #0x18] + mov r1, #2 + mov r2, #3 + add r3, r5, #0 + bl FUN_020179E0 + b _021D890A +_021D887C: + ldr r0, [r4, #0x18] + mov r1, #2 + bl FUN_02017B48 + ldr r0, [r4, #0x18] + mov r1, #2 + bl FUN_02017B54 + add r0, r4, #0 + add r0, #0xb0 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0xac + ldr r2, [r0] + lsl r0, r2, #3 + add r0, r2, r0 + lsl r2, r1, #3 + add r2, r1, r2 + mul r2, r1 + mul r0, r1 + lsr r1, r2, #0x1f + add r1, r2, r1 + asr r1, r1, #1 + sub r5, r0, r1 + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + cmp r0, #0 + ble _021D88CC + cmp r5, #0 + bgt _021D88CC + ldr r0, [r4, #0x18] + mov r1, #2 + mov r2, #3 + add r3, r7, #0 + bl FUN_020179E0 + mov r0, #5 + str r0, [r6] + b _021D890A +_021D88CC: + add r0, r4, #0 + add r0, #0xb0 + ldr r0, [r0] + mov r2, #1 + add r1, r0, #1 + add r0, r4, #0 + add r0, #0xb0 + str r1, [r0] + mov r1, #2 + ldr r0, [r4, #0x18] + add r3, r1, #0 + bl FUN_020179E0 + ldr r0, [r4, #0x18] + mov r1, #2 + mov r2, #3 + add r3, r5, #0 + bl FUN_020179E0 + add r4, #0xa8 + str r5, [r4] + b _021D890A +_021D88F8: + ldr r0, _021D8910 ; =0x000001BE + bl FUN_02005578 + add r0, r4, #0 + mov r1, #2 + mov r2, #8 + bl MOD59_021D7C10 + mov r7, #1 +_021D890A: + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8910: .word 0x000001BE + thumb_func_end MOD59_021D86BC + + thumb_func_start MOD59_021D8914 +MOD59_021D8914: ; 0x021D8914 + ldr r3, _021D891C ; =FUN_020178BC + mov r0, #2 + mov r1, #1 + bx r3 + .align 2, 0 +_021D891C: .word FUN_020178BC + thumb_func_end MOD59_021D8914 + + thumb_func_start MOD59_021D8920 +MOD59_021D8920: ; 0x021D8920 + push {r4, r5, r6, lr} + sub sp, #0x30 + add r4, r0, #0 + ldr r1, [r4, #0xc] + mov r5, #0 + cmp r1, #0x6d + bls _021D8932 + bl _021D985C +_021D8932: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D893E: ; jump table + .short _021D8A1A - _021D893E - 2 ; case 0 + .short _021D8A5A - _021D893E - 2 ; case 1 + .short _021D8A76 - _021D893E - 2 ; case 2 + .short _021D8A92 - _021D893E - 2 ; case 3 + .short _021D8ADE - _021D893E - 2 ; case 4 + .short _021D8AEE - _021D893E - 2 ; case 5 + .short _021D8B02 - _021D893E - 2 ; case 6 + .short _021D8B16 - _021D893E - 2 ; case 7 + .short _021D8B60 - _021D893E - 2 ; case 8 + .short _021D8B80 - _021D893E - 2 ; case 9 + .short _021D8BA0 - _021D893E - 2 ; case 10 + .short _021D8BD8 - _021D893E - 2 ; case 11 + .short _021D8BE8 - _021D893E - 2 ; case 12 + .short _021D8C02 - _021D893E - 2 ; case 13 + .short _021D8C16 - _021D893E - 2 ; case 14 + .short _021D8C30 - _021D893E - 2 ; case 15 + .short _021D8C44 - _021D893E - 2 ; case 16 + .short _021D8C5E - _021D893E - 2 ; case 17 + .short _021D8C72 - _021D893E - 2 ; case 18 + .short _021D8C98 - _021D893E - 2 ; case 19 + .short _021D8CA8 - _021D893E - 2 ; case 20 + .short _021D8CBC - _021D893E - 2 ; case 21 + .short _021D8CF8 - _021D893E - 2 ; case 22 + .short _021D8D1C - _021D893E - 2 ; case 23 + .short _021D8D3E - _021D893E - 2 ; case 24 + .short _021D8D7C - _021D893E - 2 ; case 25 + .short _021D8D94 - _021D893E - 2 ; case 26 + .short _021D8DD6 - _021D893E - 2 ; case 27 + .short _021D8DEA - _021D893E - 2 ; case 28 + .short _021D8E34 - _021D893E - 2 ; case 29 + .short _021D8E44 - _021D893E - 2 ; case 30 + .short _021D8E58 - _021D893E - 2 ; case 31 + .short _021D8E90 - _021D893E - 2 ; case 32 + .short _021D8EA0 - _021D893E - 2 ; case 33 + .short _021D8EBE - _021D893E - 2 ; case 34 + .short _021D8ED6 - _021D893E - 2 ; case 35 + .short _021D8EF0 - _021D893E - 2 ; case 36 + .short _021D8F0A - _021D893E - 2 ; case 37 + .short _021D8F24 - _021D893E - 2 ; case 38 + .short _021D8F3E - _021D893E - 2 ; case 39 + .short _021D8F5E - _021D893E - 2 ; case 40 + .short _021D8F7E - _021D893E - 2 ; case 41 + .short _021D8F92 - _021D893E - 2 ; case 42 + .short _021D8FA6 - _021D893E - 2 ; case 43 + .short _021D8FC6 - _021D893E - 2 ; case 44 + .short _021D900C - _021D893E - 2 ; case 45 + .short _021D901C - _021D893E - 2 ; case 46 + .short _021D9030 - _021D893E - 2 ; case 47 + .short _021D9062 - _021D893E - 2 ; case 48 + .short _021D90CE - _021D893E - 2 ; case 49 + .short _021D90E2 - _021D893E - 2 ; case 50 + .short _021D9106 - _021D893E - 2 ; case 51 + .short _021D913E - _021D893E - 2 ; case 52 + .short _021D9178 - _021D893E - 2 ; case 53 + .short _021D9192 - _021D893E - 2 ; case 54 + .short _021D91E4 - _021D893E - 2 ; case 55 + .short _021D9208 - _021D893E - 2 ; case 56 + .short _021D921A - _021D893E - 2 ; case 57 + .short _021D922A - _021D893E - 2 ; case 58 + .short _021D9244 - _021D893E - 2 ; case 59 + .short _021D925C - _021D893E - 2 ; case 60 + .short _021D926C - _021D893E - 2 ; case 61 + .short _021D927E - _021D893E - 2 ; case 62 + .short _021D9290 - _021D893E - 2 ; case 63 + .short _021D92CA - _021D893E - 2 ; case 64 + .short _021D92DC - _021D893E - 2 ; case 65 + .short _021D92EE - _021D893E - 2 ; case 66 + .short _021D930A - _021D893E - 2 ; case 67 + .short _021D9384 - _021D893E - 2 ; case 68 + .short _021D9396 - _021D893E - 2 ; case 69 + .short _021D93AE - _021D893E - 2 ; case 70 + .short _021D93C0 - _021D893E - 2 ; case 71 + .short _021D93D8 - _021D893E - 2 ; case 72 + .short _021D93F8 - _021D893E - 2 ; case 73 + .short _021D942A - _021D893E - 2 ; case 74 + .short _021D944A - _021D893E - 2 ; case 75 + .short _021D945C - _021D893E - 2 ; case 76 + .short _021D9476 - _021D893E - 2 ; case 77 + .short _021D94DE - _021D893E - 2 ; case 78 + .short _021D94EC - _021D893E - 2 ; case 79 + .short _021D950C - _021D893E - 2 ; case 80 + .short _021D954E - _021D893E - 2 ; case 81 + .short _021D956E - _021D893E - 2 ; case 82 + .short _021D9586 - _021D893E - 2 ; case 83 + .short _021D9598 - _021D893E - 2 ; case 84 + .short _021D95AA - _021D893E - 2 ; case 85 + .short _021D95BC - _021D893E - 2 ; case 86 + .short _021D95D4 - _021D893E - 2 ; case 87 + .short _021D95E6 - _021D893E - 2 ; case 88 + .short _021D95F8 - _021D893E - 2 ; case 89 + .short _021D960A - _021D893E - 2 ; case 90 + .short _021D9672 - _021D893E - 2 ; case 91 + .short _021D9684 - _021D893E - 2 ; case 92 + .short _021D9696 - _021D893E - 2 ; case 93 + .short _021D96DE - _021D893E - 2 ; case 94 + .short _021D96EC - _021D893E - 2 ; case 95 + .short _021D96FE - _021D893E - 2 ; case 96 + .short _021D9738 - _021D893E - 2 ; case 97 + .short _021D974C - _021D893E - 2 ; case 98 + .short _021D9764 - _021D893E - 2 ; case 99 + .short _021D9788 - _021D893E - 2 ; case 100 + .short _021D9798 - _021D893E - 2 ; case 101 + .short _021D97B2 - _021D893E - 2 ; case 102 + .short _021D97CC - _021D893E - 2 ; case 103 + .short _021D97DC - _021D893E - 2 ; case 104 + .short _021D9812 - _021D893E - 2 ; case 105 + .short _021D982A - _021D893E - 2 ; case 106 + .short _021D983A - _021D893E - 2 ; case 107 + .short _021D9848 - _021D893E - 2 ; case 108 + .short _021D985A - _021D893E - 2 ; case 109 +_021D8A1A: + ldr r1, _021D8D70 ; =0x00000405 + mov r0, #2 + mov r2, #1 + bl FUN_0200433C + ldr r0, _021D8D70 ; =0x00000405 + add r1, r5, #0 + bl FUN_02005350 + add r0, r5, #0 + mov r1, #1 + bl FUN_0201797C + mov r0, #7 + mov r1, #1 + bl FUN_0201797C + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #1 + str r0, [r4, #0xc] + bl _021D985C +_021D8A5A: + bl FUN_0200E308 + cmp r0, #1 + bne _021D8B22 + add r0, r4, #0 + mov r1, #0x28 + bl MOD59_021D7BEC + cmp r0, #1 + bne _021D8B22 + mov r0, #2 + str r0, [r4, #0xc] + bl _021D985C +_021D8A76: + add r1, r5, #0 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D8B22 + mov r0, #3 + str r0, [r4, #0xc] + ldr r0, [r4, #0x18] + add r1, r5, #0 + bl FUN_02018744 + bl _021D985C +_021D8A92: + ldr r0, _021D8D70 ; =0x00000405 + bl FUN_0200521C + add r0, r4, #0 + mov r1, #1 + add r0, #0x89 + strb r1, [r0] + add r0, r4, #0 + add r1, r5, #0 + add r0, #0x8a + strb r1, [r0] + add r0, r4, #0 + bl MOD59_021D8140 + mov r0, #3 + mov r1, #1 + bl FUN_0201797C + mov r0, #1 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #0x10 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + ldr r0, [r4] + mov r1, #1 + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r5, #0 + bl FUN_0200E1D0 + mov r0, #4 + str r0, [r4, #0xc] + bl _021D985C +_021D8ADE: + bl FUN_0200E308 + cmp r0, #1 + bne _021D8B22 + mov r0, #5 + str r0, [r4, #0xc] + bl _021D985C +_021D8AEE: + mov r1, #1 + add r2, r1, #0 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D8B22 + mov r0, #6 + str r0, [r4, #0xc] + bl _021D985C +_021D8B02: + mov r1, #1 + add r2, r1, #0 + bl MOD59_021D8460 + cmp r0, #1 + bne _021D8B22 + mov r0, #7 + str r0, [r4, #0xc] + bl _021D985C +_021D8B16: + mov r1, #1 + add r2, r1, #0 + bl MOD59_021D7D7C + cmp r0, #1 + beq _021D8B26 +_021D8B22: + bl _021D985C +_021D8B26: + ldr r0, [r4, #0x48] + cmp r0, #1 + beq _021D8B38 + cmp r0, #2 + beq _021D8B44 + cmp r0, #3 + beq _021D8B58 + bl _021D985C +_021D8B38: + mov r0, #0xa + str r0, [r4, #0x10] + mov r0, #8 + str r0, [r4, #0xc] + bl _021D985C +_021D8B44: + mov r0, #0x1f + str r0, [r4, #0x10] + mov r0, #8 + str r0, [r4, #0xc] + ldr r0, [r4, #0x18] + add r1, r5, #0 + bl FUN_02018744 + bl _021D985C +_021D8B58: + mov r0, #0x29 + str r0, [r4, #0xc] + bl _021D985C +_021D8B60: + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r2, r5, #0 + add r3, r5, #0 + bl FUN_0200E1D0 + mov r0, #9 + str r0, [r4, #0xc] + bl _021D985C +_021D8B80: + bl FUN_0200E308 + cmp r0, #1 + bne _021D8C84 + ldr r0, [r4, #0x18] + add r1, r5, #0 + bl FUN_02018744 + mov r0, #1 + add r1, r5, #0 + bl FUN_0201797C + ldr r0, [r4, #0x10] + str r0, [r4, #0xc] + bl _021D985C +_021D8BA0: + add r1, r4, #0 + mov r2, #1 + add r1, #0x88 + strb r2, [r1] + bl MOD59_021D80FC + add r0, r4, #0 + mov r1, #1 + add r0, #0x8b + strb r1, [r0] + add r0, r4, #0 + bl MOD59_021D8234 + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0xb + str r0, [r4, #0xc] + bl _021D985C +_021D8BD8: + bl FUN_0200E308 + cmp r0, #1 + bne _021D8C84 + mov r0, #0xc + str r0, [r4, #0xc] + bl _021D985C +_021D8BE8: + mov r1, #0x12 + str r1, [sp] + mov r1, #2 + add r2, r5, #0 + mov r3, #3 + bl MOD59_021D7ECC + cmp r0, #1 + bne _021D8C84 + mov r0, #0xd + str r0, [r4, #0xc] + bl _021D985C +_021D8C02: + add r1, r4, #0 + mov r2, #2 + add r1, #0x88 + strb r2, [r1] + bl MOD59_021D80FC + mov r0, #0xe + str r0, [r4, #0xc] + bl _021D985C +_021D8C16: + mov r1, #0xc + str r1, [sp] + mov r1, #3 + add r2, r5, #0 + mov r3, #7 + bl MOD59_021D7ECC + cmp r0, #1 + bne _021D8C84 + mov r0, #0xf + str r0, [r4, #0xc] + bl _021D985C +_021D8C30: + add r1, r4, #0 + mov r2, #3 + add r1, #0x88 + strb r2, [r1] + bl MOD59_021D80FC + mov r0, #0x10 + str r0, [r4, #0xc] + bl _021D985C +_021D8C44: + mov r1, #0xc + str r1, [sp] + mov r1, #4 + add r2, r5, #0 + add r3, r1, #0 + bl MOD59_021D7ECC + cmp r0, #1 + bne _021D8C84 + mov r0, #0x11 + str r0, [r4, #0xc] + bl _021D985C +_021D8C5E: + mov r1, #6 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D8C84 + mov r0, #0x12 + str r0, [r4, #0xc] + bl _021D985C +_021D8C72: + mov r1, #0xa + str r1, [sp] + mov r1, #5 + add r2, r5, #0 + mov r3, #4 + bl MOD59_021D7ECC + cmp r0, #1 + beq _021D8C88 +_021D8C84: + bl _021D985C +_021D8C88: + mov r0, #0x13 + str r0, [r4, #0xc] + ldr r0, [r4, #0x18] + add r1, r5, #0 + bl FUN_02018744 + bl _021D985C +_021D8C98: + add r0, r5, #0 + mov r1, #1 + bl FUN_0201797C + mov r0, #0x14 + str r0, [r4, #0xc] + bl _021D985C +_021D8CA8: + mov r1, #7 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D8DA0 + mov r0, #0x15 + str r0, [r4, #0xc] + bl _021D985C +_021D8CBC: + ldr r6, _021D8D74 ; =0x021D9E44 + add r3, sp, #0x1c + ldmia r6!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r6] + add r1, r2, #0 + str r0, [r3] + ldr r0, [r4, #0x18] + str r0, [sp, #0x1c] + ldr r0, [r4, #0x68] + bl FUN_020145C8 + mov r0, #6 + mov r1, #1 + bl FUN_0201797C + add r0, r4, #0 + mov r1, #3 + add r0, #0x8b + strb r1, [r0] + add r0, r4, #0 + bl MOD59_021D8234 + mov r0, #0x16 + str r0, [r4, #0xc] + bl _021D985C +_021D8CF8: + ldr r0, _021D8D78 ; =0x021C48B8 + ldr r0, [r0, #0x48] + cmp r0, #0 + beq _021D8D08 + mov r0, #0x1b + str r0, [r4, #0xc] + bl _021D985C +_021D8D08: + ldr r0, [r4, #0x68] + bl FUN_02014630 + sub r0, r0, #3 + cmp r0, #1 + bhi _021D8DA0 + mov r0, #0x17 + str r0, [r4, #0xc] + bl _021D985C +_021D8D1C: + ldr r0, [r4, #0x68] + bl FUN_02014630 + cmp r0, #1 + beq _021D8D2E + cmp r0, #2 + beq _021D8D36 + bl _021D985C +_021D8D2E: + mov r0, #0x18 + str r0, [r4, #0xc] + bl _021D985C +_021D8D36: + mov r0, #0x1a + str r0, [r4, #0xc] + bl _021D985C +_021D8D3E: + mov r1, #6 + mov r2, #1 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D8DA0 + ldr r0, [r4, #0x68] + bl FUN_020146C4 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + str r0, [sp, #8] + add r0, r5, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0x19 + str r0, [r4, #0xc] + bl _021D985C + .align 2, 0 +_021D8D70: .word 0x00000405 +_021D8D74: .word 0x021D9E44 +_021D8D78: .word 0x021C48B8 +_021D8D7C: + bl FUN_0200E308 + cmp r0, #1 + bne _021D8DA0 + ldr r0, [r4, #0x18] + add r1, r5, #0 + bl FUN_02018744 + mov r0, #0x1c + str r0, [r4, #0xc] + bl _021D985C +_021D8D94: + mov r1, #6 + mov r2, #1 + bl MOD59_021D7A68 + cmp r0, #1 + beq _021D8DA4 +_021D8DA0: + bl _021D985C +_021D8DA4: + ldr r0, [r4, #0x18] + add r1, r5, #0 + bl FUN_02018744 + ldr r0, [r4, #0x68] + bl FUN_020146C4 + add r0, r4, #0 + mov r1, #1 + add r0, #0x88 + strb r1, [r0] + add r0, r4, #0 + bl MOD59_021D80FC + add r0, r4, #0 + mov r1, #1 + add r0, #0x8b + strb r1, [r0] + add r0, r4, #0 + bl MOD59_021D8234 + mov r0, #0xc + str r0, [r4, #0xc] + bl _021D985C +_021D8DD6: + mov r1, #8 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D8EB2 + mov r0, #0x16 + str r0, [r4, #0xc] + bl _021D985C +_021D8DEA: + add r1, r4, #0 + add r1, #0x88 + strb r5, [r1] + bl MOD59_021D80FC + add r0, r4, #0 + add r1, r5, #0 + add r0, #0x8b + strb r1, [r0] + add r0, r4, #0 + bl MOD59_021D8234 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201797C + add r2, r5, #0 + ldr r0, [r4, #0x18] + mov r1, #1 + add r3, r2, #0 + bl FUN_020179E0 + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0x1d + str r0, [r4, #0xc] + bl _021D985C +_021D8E34: + bl FUN_0200E308 + cmp r0, #1 + bne _021D8EB2 + mov r0, #0x1e + str r0, [r4, #0xc] + bl _021D985C +_021D8E44: + mov r1, #9 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D8EB2 + mov r0, #6 + str r0, [r4, #0xc] + bl _021D985C +_021D8E58: + add r1, r4, #0 + mov r2, #4 + add r1, #0x88 + strb r2, [r1] + bl MOD59_021D80FC + add r0, r4, #0 + mov r1, #2 + add r0, #0x8b + strb r1, [r0] + add r0, r4, #0 + bl MOD59_021D8234 + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0x20 + str r0, [r4, #0xc] + bl _021D985C +_021D8E90: + bl FUN_0200E308 + cmp r0, #1 + bne _021D8EB2 + mov r0, #0x21 + str r0, [r4, #0xc] + bl _021D985C +_021D8EA0: + mov r1, #6 + str r1, [sp] + mov r1, #0xa + mov r2, #1 + mov r3, #9 + bl MOD59_021D7ECC + cmp r0, #1 + beq _021D8EB6 +_021D8EB2: + bl _021D985C +_021D8EB6: + mov r0, #0x22 + str r0, [r4, #0xc] + bl _021D985C +_021D8EBE: + mov r3, #8 + mov r1, #0xb + mov r2, #1 + str r3, [sp] + bl MOD59_021D7ECC + cmp r0, #1 + bne _021D8FCE + mov r0, #0x23 + str r0, [r4, #0xc] + bl _021D985C +_021D8ED6: + mov r1, #6 + str r1, [sp] + mov r1, #0xc + mov r2, #1 + mov r3, #9 + bl MOD59_021D7ECC + cmp r0, #1 + bne _021D8FCE + mov r0, #0x24 + str r0, [r4, #0xc] + bl _021D985C +_021D8EF0: + mov r1, #0xe + str r1, [sp] + mov r1, #0xd + mov r2, #1 + mov r3, #5 + bl MOD59_021D7ECC + cmp r0, #1 + bne _021D8FCE + mov r0, #0x25 + str r0, [r4, #0xc] + bl _021D985C +_021D8F0A: + mov r1, #4 + str r1, [sp] + mov r1, #0xe + mov r2, #1 + mov r3, #0xa + bl MOD59_021D7ECC + cmp r0, #1 + bne _021D8FCE + mov r0, #0x26 + str r0, [r4, #0xc] + bl _021D985C +_021D8F24: + mov r1, #0xc + str r1, [sp] + mov r1, #0xf + mov r2, #1 + mov r3, #6 + bl MOD59_021D7ECC + cmp r0, #1 + bne _021D8FCE + mov r0, #0x27 + str r0, [r4, #0xc] + bl _021D985C +_021D8F3E: + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r2, r5, #0 + add r3, r5, #0 + bl FUN_0200E1D0 + mov r0, #0x28 + str r0, [r4, #0xc] + bl _021D985C +_021D8F5E: + bl FUN_0200E308 + cmp r0, #1 + bne _021D8FCE + ldr r0, [r4, #0x18] + add r1, r5, #0 + bl FUN_02018744 + add r0, r5, #0 + mov r1, #1 + bl FUN_0201797C + mov r0, #0x1c + str r0, [r4, #0xc] + bl _021D985C +_021D8F7E: + mov r1, #1 + mov r2, #2 + bl MOD59_021D8460 + cmp r0, #1 + bne _021D8FCE + mov r0, #0x2a + str r0, [r4, #0xc] + bl _021D985C +_021D8F92: + mov r1, #0x10 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D8FCE + mov r0, #0x2b + str r0, [r4, #0xc] + bl _021D985C +_021D8FA6: + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + add r1, r5, #0 + str r0, [sp, #8] + mov r0, #4 + add r2, r5, #0 + add r3, r5, #0 + bl FUN_0200E1D0 + mov r0, #0x2c + str r0, [r4, #0xc] + bl _021D985C +_021D8FC6: + bl FUN_0200E308 + cmp r0, #1 + beq _021D8FD2 +_021D8FCE: + bl _021D985C +_021D8FD2: + add r0, r4, #0 + bl MOD59_021D83F8 + add r0, r4, #0 + mov r1, #4 + add r0, #0x8b + strb r1, [r0] + add r0, r4, #0 + bl MOD59_021D8234 + mov r0, #6 + mov r1, #1 + bl FUN_0201797C + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + mov r0, #4 + add r3, r5, #0 + bl FUN_0200E1D0 + mov r0, #0x2d + str r0, [r4, #0xc] + bl _021D985C +_021D900C: + bl FUN_0200E308 + cmp r0, #1 + bne _021D90DA + mov r0, #0x2e + str r0, [r4, #0xc] + bl _021D985C +_021D901C: + mov r1, #0x11 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D90DA + mov r0, #0x2f + str r0, [r4, #0xc] + bl _021D985C +_021D9030: + bl MOD59_021D7730 + cmp r0, #1 + bne _021D9054 + add r0, r4, #0 + add r1, r5, #0 + add r0, #0x94 + str r1, [r0] + add r0, r4, #0 + add r0, #0x98 + str r1, [r0] + ldr r0, [r4, #0x18] + bl FUN_02018744 + mov r0, #0x30 + str r0, [r4, #0xc] + bl _021D985C +_021D9054: + ldr r0, _021D9370 ; =0x021C48B8 + ldr r0, [r0, #0x48] + cmp r0, #0 + beq _021D90DA + mov r0, #0x31 + str r0, [r4, #0xc] + b _021D985C +_021D9062: + add r0, #0x98 + ldr r0, [r0] + cmp r0, #0 + beq _021D9078 + add r0, r4, #0 + add r0, #0x98 + ldr r0, [r0] + add r4, #0x98 + sub r0, r0, #1 + str r0, [r4] + b _021D985C +_021D9078: + ldr r6, _021D9374 ; =0x021D9DC0 + add r3, sp, #0x10 + ldmia r6!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r6] + str r0, [r3] + add r0, r4, #0 + add r0, #0x94 + ldr r0, [r0] + lsl r0, r0, #2 + ldr r1, [r2, r0] + ldr r0, _021D9378 ; =0x0000FFFF + cmp r1, r0 + bne _021D90A2 + ldr r0, _021D937C ; =0x00000706 + bl FUN_020054C8 + mov r0, #0x32 + str r0, [r4, #0xc] + b _021D985C +_021D90A2: + mov r0, #0x20 + str r0, [sp] + str r5, [sp, #4] + str r5, [sp, #8] + ldr r0, [r4] + mov r3, #6 + str r0, [sp, #0xc] + ldr r2, [r4, #0x18] + mov r0, #0x7d + bl FUN_0200687C + add r0, r4, #0 + add r0, #0x94 + ldr r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0x94 + str r1, [r0] + mov r0, #4 + add r4, #0x98 + str r0, [r4] + b _021D985C +_021D90CE: + mov r1, #0x12 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + beq _021D90DC +_021D90DA: + b _021D985C +_021D90DC: + mov r0, #0x2f + str r0, [r4, #0xc] + b _021D985C +_021D90E2: + mov r0, #1 + mov r1, #0x10 + add r2, r5, #0 + mov r3, #0xb + str r0, [sp] + bl FUN_0200A208 + mov r0, #2 + str r0, [sp] + mov r0, #1 + mov r1, #0x10 + add r2, r5, #0 + mov r3, #0xd + bl FUN_0200A208 + mov r0, #0x33 + str r0, [r4, #0xc] + b _021D985C +_021D9106: + mov r0, #1 + bl FUN_0200A344 + cmp r0, #1 + bne _021D91F6 + mov r0, #2 + bl FUN_0200A344 + cmp r0, #1 + bne _021D91F6 + mov r0, #1 + add r1, r5, #0 + mov r2, #0x10 + mov r3, #0xb + str r0, [sp] + bl FUN_0200A208 + mov r0, #2 + str r0, [sp] + mov r0, #1 + add r1, r5, #0 + mov r2, #0x10 + mov r3, #0xd + bl FUN_0200A208 + mov r0, #0x34 + str r0, [r4, #0xc] + b _021D985C +_021D913E: + mov r0, #1 + bl FUN_0200A344 + cmp r0, #1 + bne _021D91F6 + mov r0, #2 + bl FUN_0200A344 + cmp r0, #1 + bne _021D91F6 + mov r0, #1 + str r0, [sp] + mov r0, #4 + mov r1, #0x10 + add r2, r5, #0 + mov r3, #0xb + bl FUN_0200A208 + mov r0, #2 + str r0, [sp] + mov r0, #4 + mov r1, #0x10 + add r2, r5, #0 + mov r3, #0xd + bl FUN_0200A208 + mov r0, #0x35 + str r0, [r4, #0xc] + b _021D985C +_021D9178: + mov r0, #1 + bl FUN_0200A344 + cmp r0, #1 + bne _021D91F6 + mov r0, #2 + bl FUN_0200A344 + cmp r0, #1 + bne _021D91F6 + mov r0, #0x36 + str r0, [r4, #0xc] + b _021D985C +_021D9192: + bl MOD59_021D82A0 + mov r0, #6 + add r1, r5, #0 + bl FUN_0201797C + add r0, r4, #0 + add r1, r5, #0 + add r0, #0x94 + str r1, [r0] + add r1, r4, #0 + add r0, r4, #0 + add r1, #0x94 + bl MOD59_021D86BC + add r0, r4, #0 + add r1, r5, #0 + add r0, #0x8b + strb r1, [r0] + add r0, r4, #0 + bl MOD59_021D8234 + mov r0, #1 + str r0, [sp] + mov r0, #0x10 + add r1, r5, #0 + add r2, r0, #0 + mov r3, #0xb + bl FUN_0200A208 + mov r0, #2 + str r0, [sp] + mov r0, #0x10 + add r1, r5, #0 + add r2, r0, #0 + mov r3, #0xd + bl FUN_0200A208 + mov r0, #0x37 + str r0, [r4, #0xc] + b _021D985C +_021D91E4: + add r1, r4, #0 + add r1, #0x94 + bl MOD59_021D86BC + mov r0, #1 + bl FUN_0200A344 + cmp r0, #1 + beq _021D91F8 +_021D91F6: + b _021D985C +_021D91F8: + mov r0, #2 + bl FUN_0200A344 + cmp r0, #1 + bne _021D92FA + mov r0, #0x38 + str r0, [r4, #0xc] + b _021D985C +_021D9208: + add r1, r4, #0 + add r1, #0x94 + bl MOD59_021D86BC + cmp r0, #1 + bne _021D92FA + mov r0, #0x39 + str r0, [r4, #0xc] + b _021D985C +_021D921A: + mov r1, #0x28 + bl MOD59_021D7BEC + cmp r0, #1 + bne _021D92FA + mov r0, #0x3a + str r0, [r4, #0xc] + b _021D985C +_021D922A: + mov r1, #0x13 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D92FA + ldr r0, [r4, #0x18] + add r1, r5, #0 + bl FUN_02018744 + mov r0, #0x3b + str r0, [r4, #0xc] + b _021D985C +_021D9244: + mov r1, #2 + mov r2, #1 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D92FA + add r0, r4, #0 + bl MOD59_021D8914 + mov r0, #0x3c + str r0, [r4, #0xc] + b _021D985C +_021D925C: + mov r1, #0x1e + bl MOD59_021D7BEC + cmp r0, #1 + bne _021D92FA + mov r0, #0x3d + str r0, [r4, #0xc] + b _021D985C +_021D926C: + mov r1, #0x14 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D92FA + mov r0, #0x3e + str r0, [r4, #0xc] + b _021D985C +_021D927E: + mov r1, #1 + add r2, r1, #0 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D92FA + mov r0, #0x3f + str r0, [r4, #0xc] + b _021D985C +_021D9290: + bl MOD59_021D84E8 + add r0, r4, #0 + mov r1, #2 + add r0, #0x89 + strb r1, [r0] + add r0, r4, #0 + mov r1, #6 + add r0, #0x8a + strb r1, [r0] + add r0, r4, #0 + bl MOD59_021D8140 + add r2, r5, #0 + add r3, r2, #0 + ldr r0, [r4, #0x18] + mov r1, #1 + sub r3, #0x30 + bl FUN_020179E0 + ldr r0, [r4, #0x18] + mov r1, #2 + add r2, r5, #0 + mov r3, #0x30 + bl FUN_020179E0 + mov r0, #0x40 + str r0, [r4, #0xc] + b _021D985C +_021D92CA: + mov r1, #1 + add r2, r5, #0 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D92FA + mov r0, #0x41 + str r0, [r4, #0xc] + b _021D985C +_021D92DC: + mov r1, #2 + add r2, r5, #0 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D92FA + mov r0, #0x42 + str r0, [r4, #0xc] + b _021D985C +_021D92EE: + mov r1, #0x15 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + beq _021D92FC +_021D92FA: + b _021D985C +_021D92FC: + add r0, r4, #0 + add r1, r5, #0 + add r0, #0x84 + str r1, [r0] + mov r0, #0x43 + str r0, [r4, #0xc] + b _021D985C +_021D930A: + ldr r0, _021D9370 ; =0x021C48B8 + mov r1, #1 + ldr r0, [r0, #0x48] + and r1, r0 + cmp r1, #1 + bne _021D933C + mov r0, #6 + str r0, [r4, #0x7c] + add r0, r4, #0 + mov r1, #0xa + add r0, #0x80 + str r1, [r0] + mov r0, #2 + str r0, [r4, #0x78] + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _021D9336 + mov r0, #0x44 + str r0, [r4, #0xc] + b _021D985C +_021D9336: + mov r0, #0x46 + str r0, [r4, #0xc] + b _021D985C +_021D933C: + mov r1, #0x20 + and r1, r0 + cmp r1, #0x20 + beq _021D934C + mov r1, #0x10 + and r0, r1 + cmp r0, #0x10 + bne _021D9368 +_021D934C: + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _021D935A + mov r1, #1 + b _021D935C +_021D935A: + mov r1, #0 +_021D935C: + add r0, r4, #0 + add r0, #0x84 + str r1, [r0] + ldr r0, _021D9380 ; =0x000005DC + bl FUN_020054C8 +_021D9368: + add r0, r4, #0 + bl MOD59_021D8504 + b _021D985C + .align 2, 0 +_021D9370: .word 0x021C48B8 +_021D9374: .word 0x021D9DC0 +_021D9378: .word 0x0000FFFF +_021D937C: .word 0x00000706 +_021D9380: .word 0x000005DC +_021D9384: + mov r1, #2 + mov r2, #1 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D9414 + mov r0, #0x45 + str r0, [r4, #0xc] + b _021D985C +_021D9396: + mov r1, #1 + add r2, r5, #0 + bl MOD59_021D8460 + cmp r0, #1 + bne _021D9414 + add r0, r4, #0 + bl MOD59_021D8618 + mov r0, #0x48 + str r0, [r4, #0xc] + b _021D985C +_021D93AE: + mov r1, #1 + add r2, r1, #0 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D9414 + mov r0, #0x47 + str r0, [r4, #0xc] + b _021D985C +_021D93C0: + mov r1, #2 + add r2, r5, #0 + bl MOD59_021D8460 + cmp r0, #1 + bne _021D9414 + add r0, r4, #0 + bl MOD59_021D8618 + mov r0, #0x48 + str r0, [r4, #0xc] + b _021D985C +_021D93D8: + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _021D93E4 + mov r1, #0x16 + b _021D93E6 +_021D93E4: + mov r1, #0x17 +_021D93E6: + add r0, r4, #0 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D9414 + mov r0, #0x49 + str r0, [r4, #0xc] + b _021D985C +_021D93F8: + add r1, r5, #0 + add r2, r5, #0 + bl MOD59_021D7D7C + cmp r0, #1 + bne _021D9414 + ldr r1, [r4, #0x48] + sub r0, r5, #2 + cmp r1, r0 + beq _021D941C + cmp r1, #1 + beq _021D9416 + cmp r1, #2 + beq _021D941C +_021D9414: + b _021D985C +_021D9416: + mov r0, #0x4b + str r0, [r4, #0xc] + b _021D985C +_021D941C: + ldr r0, [r4, #0x18] + mov r1, #0 + bl FUN_02018744 + mov r0, #0x4a + str r0, [r4, #0xc] + b _021D985C +_021D942A: + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _021D9436 + mov r1, #1 + b _021D9438 +_021D9436: + mov r1, #2 +_021D9438: + add r0, r4, #0 + mov r2, #1 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D9530 + mov r0, #0x3f + str r0, [r4, #0xc] + b _021D985C +_021D944A: + mov r1, #0x18 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D9530 + mov r0, #0x4c + str r0, [r4, #0xc] + b _021D985C +_021D945C: + add r0, #0x84 + ldr r1, [r0] + ldr r0, [r4, #0x70] + str r1, [r0, #4] + ldr r0, _021D9778 ; =0x020FA5FC + ldr r1, [r4, #0x70] + ldr r2, [r4] + bl FUN_02006234 + str r0, [r4, #0x14] + mov r0, #0x4d + str r0, [r4, #0xc] + b _021D985C +_021D9476: + add r0, r5, #0 + mov r1, #1 + bl FUN_0201797C + mov r0, #3 + mov r1, #1 + bl FUN_0201797C + mov r0, #7 + mov r1, #1 + bl FUN_0201797C + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _021D94AE + mov r0, #1 + add r1, r0, #0 + bl FUN_0201797C + add r2, r5, #0 + ldr r0, [r4, #0x18] + mov r1, #1 + add r3, r2, #0 + bl FUN_020179E0 + b _021D94C2 +_021D94AE: + mov r0, #2 + mov r1, #1 + bl FUN_0201797C + add r2, r5, #0 + ldr r0, [r4, #0x18] + mov r1, #2 + add r3, r2, #0 + bl FUN_020179E0 +_021D94C2: + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + mov r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0x4e + str r0, [r4, #0xc] + b _021D985C +_021D94DE: + bl FUN_0200E308 + cmp r0, #1 + bne _021D9530 + mov r0, #0x4f + str r0, [r4, #0xc] + b _021D985C +_021D94EC: + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _021D94F8 + mov r1, #0x19 + b _021D94FA +_021D94F8: + mov r1, #0x1a +_021D94FA: + add r0, r4, #0 + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D9530 + mov r0, #0x50 + str r0, [r4, #0xc] + b _021D985C +_021D950C: + add r1, r5, #0 + add r2, r5, #0 + bl MOD59_021D7D7C + cmp r0, #1 + bne _021D9530 + ldr r0, [r4, #0x18] + add r1, r5, #0 + bl FUN_02018744 + ldr r1, [r4, #0x48] + sub r0, r5, #2 + cmp r1, r0 + beq _021D953C + cmp r1, #1 + beq _021D9532 + cmp r1, #2 + beq _021D953C +_021D9530: + b _021D985C +_021D9532: + mov r0, #0x52 + str r0, [r4, #0x10] + mov r0, #0x51 + str r0, [r4, #0xc] + b _021D985C +_021D953C: + ldr r0, [r4, #0x70] + ldr r0, [r0, #0x18] + bl FUN_02021A4C + mov r0, #0x3f + str r0, [r4, #0x10] + mov r0, #0x51 + str r0, [r4, #0xc] + b _021D985C +_021D954E: + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0 + bne _021D955A + mov r1, #1 + b _021D955C +_021D955A: + mov r1, #2 +_021D955C: + add r0, r4, #0 + mov r2, #1 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D9616 + ldr r0, [r4, #0x10] + str r0, [r4, #0xc] + b _021D985C +_021D956E: + add r1, r4, #0 + mov r2, #1 + add r1, #0x89 + strb r2, [r1] + add r1, r4, #0 + add r1, #0x8a + strb r5, [r1] + bl MOD59_021D8140 + mov r0, #0x53 + str r0, [r4, #0xc] + b _021D985C +_021D9586: + mov r1, #1 + add r2, r5, #0 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D9616 + mov r0, #0x54 + str r0, [r4, #0xc] + b _021D985C +_021D9598: + mov r1, #0x1b + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D9616 + mov r0, #0x55 + str r0, [r4, #0xc] + b _021D985C +_021D95AA: + mov r1, #1 + add r2, r1, #0 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D9616 + mov r0, #0x56 + str r0, [r4, #0xc] + b _021D985C +_021D95BC: + add r1, r4, #0 + mov r2, #0xa + add r1, #0x89 + strb r2, [r1] + add r1, r4, #0 + add r1, #0x8a + strb r5, [r1] + bl MOD59_021D8140 + mov r0, #0x57 + str r0, [r4, #0xc] + b _021D985C +_021D95D4: + mov r1, #1 + add r2, r5, #0 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D9616 + mov r0, #0x58 + str r0, [r4, #0xc] + b _021D985C +_021D95E6: + mov r1, #0x1c + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D9616 + mov r0, #0x59 + str r0, [r4, #0xc] + b _021D985C +_021D95F8: + mov r1, #1 + add r2, r1, #0 + bl MOD59_021D8460 + cmp r0, #1 + bne _021D9616 + mov r0, #0x5a + str r0, [r4, #0xc] + b _021D985C +_021D960A: + mov r1, #2 + mov r2, #1 + bl MOD59_021D7D7C + cmp r0, #1 + beq _021D9618 +_021D9616: + b _021D985C +_021D9618: + ldr r0, [r4, #0x48] + cmp r0, #5 + bhi _021D971A + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D962A: ; jump table + .short _021D985C - _021D962A - 2 ; case 0 + .short _021D9636 - _021D962A - 2 ; case 1 + .short _021D963C - _021D962A - 2 ; case 2 + .short _021D963C - _021D962A - 2 ; case 3 + .short _021D963C - _021D962A - 2 ; case 4 + .short _021D963C - _021D962A - 2 ; case 5 +_021D9636: + mov r0, #0x5c + str r0, [r4, #0xc] + b _021D985C +_021D963C: + ldr r1, _021D977C ; =0x020ECAC0 + ldrb r1, [r1] + cmp r1, #0xa + bne _021D964C + sub r0, r0, #1 + lsl r1, r0, #3 + ldr r0, _021D9780 ; =0x021D9F40 + b _021D9652 +_021D964C: + sub r0, r0, #1 + lsl r1, r0, #3 + ldr r0, _021D9784 ; =0x021D9F68 +_021D9652: + ldr r1, [r0, r1] + ldr r0, [r4, #0x4c] + bl FUN_0200A914 + add r6, r0, #0 + ldr r0, [r4, #0x74] + add r1, r6, #0 + ldr r0, [r0, #0x18] + bl FUN_02021A74 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x5b + str r0, [r4, #0xc] + b _021D985C +_021D9672: + mov r1, #1 + mov r2, #2 + bl MOD59_021D8460 + cmp r0, #1 + bne _021D971A + mov r0, #0x5f + str r0, [r4, #0xc] + b _021D985C +_021D9684: + ldr r0, _021D9778 ; =0x020FA5FC + ldr r1, [r4, #0x74] + ldr r2, [r4] + bl FUN_02006234 + str r0, [r4, #0x14] + mov r0, #0x5d + str r0, [r4, #0xc] + b _021D985C +_021D9696: + add r0, r5, #0 + mov r1, #1 + bl FUN_0201797C + mov r0, #3 + mov r1, #1 + bl FUN_0201797C + mov r0, #7 + mov r1, #1 + bl FUN_0201797C + mov r0, #1 + add r1, r0, #0 + bl FUN_0201797C + add r2, r5, #0 + ldr r0, [r4, #0x18] + mov r1, #1 + add r3, r2, #0 + bl FUN_020179E0 + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0x5e + str r0, [r4, #0xc] + b _021D985C +_021D96DE: + bl FUN_0200E308 + cmp r0, #1 + bne _021D971A + mov r0, #0x5f + str r0, [r4, #0xc] + b _021D985C +_021D96EC: + mov r1, #0x1d + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D971A + mov r0, #0x60 + str r0, [r4, #0xc] + b _021D985C +_021D96FE: + add r1, r5, #0 + add r2, r5, #0 + bl MOD59_021D7D7C + cmp r0, #1 + bne _021D971A + ldr r1, [r4, #0x48] + sub r0, r5, #2 + cmp r1, r0 + beq _021D972A + cmp r1, #1 + beq _021D971C + cmp r1, #2 + beq _021D972A +_021D971A: + b _021D985C +_021D971C: + ldr r0, [r4, #0x18] + add r1, r5, #0 + bl FUN_02018744 + mov r0, #0x61 + str r0, [r4, #0xc] + b _021D985C +_021D972A: + ldr r0, [r4, #0x74] + ldr r0, [r0, #0x18] + bl FUN_02021A4C + mov r0, #0x58 + str r0, [r4, #0xc] + b _021D985C +_021D9738: + mov r1, #1 + add r2, r1, #0 + bl MOD59_021D7A68 + cmp r0, #1 + beq _021D9746 + b _021D985C +_021D9746: + mov r0, #0x62 + str r0, [r4, #0xc] + b _021D985C +_021D974C: + add r1, r4, #0 + mov r2, #1 + add r1, #0x89 + strb r2, [r1] + add r1, r4, #0 + add r1, #0x8a + strb r5, [r1] + bl MOD59_021D8140 + mov r0, #0x63 + str r0, [r4, #0xc] + b _021D985C +_021D9764: + mov r1, #1 + add r2, r5, #0 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D985C + mov r0, #0x64 + str r0, [r4, #0xc] + b _021D985C + nop +_021D9778: .word 0x020FA5FC +_021D977C: .word 0x020ECAC0 +_021D9780: .word 0x021D9F40 +_021D9784: .word 0x021D9F68 +_021D9788: + mov r1, #0x1e + bl MOD59_021D7BEC + cmp r0, #1 + bne _021D985C + mov r0, #0x65 + str r0, [r4, #0xc] + b _021D985C +_021D9798: + mov r1, #0x1e + mov r2, #1 + bl MOD59_021D7C44 + cmp r0, #1 + bne _021D985C + add r0, r5, #0 + mov r1, #0x32 + bl FUN_020053CC + mov r0, #0x66 + str r0, [r4, #0xc] + b _021D985C +_021D97B2: + mov r1, #1 + add r2, r1, #0 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D985C + ldr r0, [r4, #0x18] + add r1, r5, #0 + bl FUN_02018744 + mov r0, #0x67 + str r0, [r4, #0xc] + b _021D985C +_021D97CC: + mov r1, #0x1e + bl MOD59_021D7BEC + cmp r0, #1 + bne _021D985C + mov r0, #0x68 + str r0, [r4, #0xc] + b _021D985C +_021D97DC: + add r1, r4, #0 + add r1, #0x84 + ldr r1, [r1] + cmp r1, #0 + bne _021D97FA + add r1, r4, #0 + mov r2, #2 + add r1, #0x89 + strb r2, [r1] + add r1, r4, #0 + add r1, #0x8a + strb r5, [r1] + bl MOD59_021D8140 + b _021D980C +_021D97FA: + add r1, r4, #0 + mov r2, #6 + add r1, #0x89 + strb r2, [r1] + add r1, r4, #0 + add r1, #0x8a + strb r5, [r1] + bl MOD59_021D8140 +_021D980C: + mov r0, #0x69 + str r0, [r4, #0xc] + b _021D985C +_021D9812: + mov r1, #1 + add r2, r5, #0 + bl MOD59_021D7A68 + cmp r0, #1 + bne _021D985C + add r0, r4, #0 + bl MOD59_021D8624 + mov r0, #0x6a + str r0, [r4, #0xc] + b _021D985C +_021D982A: + mov r1, #0x1e + bl MOD59_021D7BEC + cmp r0, #1 + bne _021D985C + mov r0, #0x6b + str r0, [r4, #0xc] + b _021D985C +_021D983A: + bl MOD59_021D8634 + cmp r0, #1 + bne _021D985C + mov r0, #0x6c + str r0, [r4, #0xc] + b _021D985C +_021D9848: + ldr r0, _021D9864 ; =0x021D9DDC + ldr r2, [r4] + add r1, r5, #0 + bl FUN_02006234 + str r0, [r4, #0x14] + mov r0, #0x6d + str r0, [r4, #0xc] + b _021D985C +_021D985A: + mov r5, #1 +_021D985C: + add r0, r5, #0 + add sp, #0x30 + pop {r4, r5, r6, pc} + nop +_021D9864: .word 0x021D9DDC + thumb_func_end MOD59_021D8920 + + thumb_func_start MOD59_021D9868 +MOD59_021D9868: ; 0x021D9868 + push {r4, lr} + mov r2, #1 + add r4, r0, #0 + mov r0, #3 + mov r1, #0x53 + lsl r2, r2, #0x12 + bl FUN_0201681C + add r0, r4, #0 + mov r1, #0x28 + mov r2, #0x53 + bl FUN_02006268 + mov r1, #0 + mov r2, #0x28 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x53 + str r0, [r4] + mov r0, #0 + str r0, [r4, #0x24] + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD59_021D9868 + + thumb_func_start MOD59_021D9898 +MOD59_021D9898: ; 0x021D9898 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + mov r6, #0 + cmp r1, #5 + bls _021D98AE + b _021D99E2 +_021D98AE: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D98BA: ; jump table + .short _021D98C6 - _021D98BA - 2 ; case 0 + .short _021D992C - _021D98BA - 2 ; case 1 + .short _021D9952 - _021D98BA - 2 ; case 2 + .short _021D997C - _021D98BA - 2 ; case 3 + .short _021D998E - _021D98BA - 2 ; case 4 + .short _021D99C0 - _021D98BA - 2 ; case 5 +_021D98C6: + add r0, r6, #0 + add r1, r6, #0 + bl FUN_0200E3A0 + mov r0, #1 + add r1, r6, #0 + bl FUN_0200E3A0 + add r0, r6, #0 + add r1, r0, #0 + bl FUN_02015F10 + add r0, r6, #0 + add r1, r0, #0 + bl FUN_02015F34 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D99E8 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D99EC ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + add r0, r4, #0 + bl MOD59_021D9A20 + add r0, r4, #0 + bl MOD59_021D9C48 + ldr r0, _021D99F0 ; =MOD59_021D9A14 + add r1, r4, #0 + bl FUN_02015F10 + bl FUN_0201E788 + mov r0, #0x3c + str r0, [r4, #0x24] + mov r0, #1 + str r0, [r5] + b _021D99E2 +_021D992C: + ldr r0, [r4, #0x24] + cmp r0, #0 + beq _021D9938 + sub r0, r0, #1 + str r0, [r4, #0x24] + b _021D99E2 +_021D9938: + ldr r0, _021D99F4 ; =0x00000406 + bl FUN_0200414C + ldr r1, _021D99F4 ; =0x00000406 + mov r0, #4 + mov r2, #1 + bl FUN_0200433C + mov r0, #0x5a + str r0, [r4, #0x24] + mov r0, #2 + str r0, [r5] + b _021D99E2 +_021D9952: + ldr r0, [r4, #0x24] + cmp r0, #0 + beq _021D995E + sub r0, r0, #1 + str r0, [r4, #0x24] + b _021D99E2 +_021D995E: + str r6, [r4, #0x24] + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r3, r6, #0 + bl FUN_0200E1D0 + mov r0, #3 + str r0, [r5] + b _021D99E2 +_021D997C: + bl MOD59_021D9D78 + bl FUN_0200E308 + cmp r0, #1 + bne _021D99E2 + mov r0, #4 + str r0, [r5] + b _021D99E2 +_021D998E: + bl MOD59_021D9D78 + add r0, r4, #0 + add r1, r6, #0 + mov r2, #0x28 + mov r3, #0x30 + bl MOD59_021D9C74 + cmp r0, #1 + bne _021D99E2 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + str r0, [sp, #8] + add r0, r6, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #5 + str r0, [r5] + b _021D99E2 +_021D99C0: + bl MOD59_021D9D78 + bl FUN_0200E308 + cmp r0, #1 + bne _021D99E2 + add r0, r4, #0 + bl MOD59_021D9C68 + add r0, r4, #0 + bl MOD59_021D9BD0 + add r0, r6, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r6, #1 +_021D99E2: + add r0, r6, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D99E8: .word 0xFFFFE0FF +_021D99EC: .word 0x04001000 +_021D99F0: .word MOD59_021D9A14 +_021D99F4: .word 0x00000406 + thumb_func_end MOD59_021D9898 + + thumb_func_start MOD59_021D99F8 +MOD59_021D99F8: ; 0x021D99F8 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + ldr r4, [r0] + add r0, r5, #0 + bl FUN_0200627C + add r0, r4, #0 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD59_021D99F8 + + thumb_func_start MOD59_021D9A14 +MOD59_021D9A14: ; 0x021D9A14 + ldr r3, _021D9A1C ; =FUN_0201AB60 + ldr r0, [r0, #4] + bx r3 + nop +_021D9A1C: .word FUN_0201AB60 + thumb_func_end MOD59_021D9A14 + + thumb_func_start MOD59_021D9A20 +MOD59_021D9A20: ; 0x021D9A20 + push {r3, r4, r5, lr} + sub sp, #0xb8 + ldr r5, _021D9BB4 ; =0x021DA0D4 + add r4, r0, #0 + add r3, sp, #0x90 + mov r2, #5 +_021D9A2C: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D9A2C + add r0, sp, #0x90 + bl FUN_0201E66C + ldr r0, [r4] + bl FUN_02016B94 + add r3, sp, #0x80 + ldr r5, _021D9BB8 ; =0x021DA054 + str r0, [r4, #4] + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D9BBC ; =0x021DA080 + add r3, sp, #0x64 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + ldr r0, [r4, #4] + mov r3, #0 + bl FUN_02016C18 + ldr r3, [r4] + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_02018744 + ldr r5, _021D9BC0 ; =0x021DA09C + add r3, sp, #0x48 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + ldr r0, [r4, #4] + add r3, r1, #0 + bl FUN_02016C18 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + ldr r0, [r4] + mov r1, #1 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x88 + bl FUN_0200687C + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + ldr r0, [r4] + mov r1, #4 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x88 + bl FUN_020068C8 + ldr r5, _021D9BC4 ; =0x021DA064 + add r3, sp, #0x2c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + ldr r0, [r4, #4] + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + mov r1, #2 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x88 + mov r3, #1 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + mov r1, #5 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x88 + mov r3, #1 + bl FUN_020068C8 + ldr r5, _021D9BC8 ; =0x021DA0B8 + add r3, sp, #0x10 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + ldr r0, [r4, #4] + mov r3, #0 + bl FUN_02016C18 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + str r1, [sp, #8] + ldr r0, [r4] + mov r3, #3 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x88 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + mov r1, #3 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x88 + add r3, r1, #0 + bl FUN_020068C8 + mov r2, #0 + str r2, [sp] + ldr r0, [r4] + mov r1, #6 + str r0, [sp, #4] + mov r0, #0x88 + add r3, r2, #0 + bl FUN_02006930 + ldr r2, [r4] + mov r0, #0 + mov r1, #0x20 + bl FUN_02002ED0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02017FE4 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + mov r2, #0xc + ldr r0, _021D9BCC ; =0x04000050 + mov r1, #2 + mov r3, #4 + str r2, [sp] + bl G2x_SetBlendAlpha_ + add sp, #0xb8 + pop {r3, r4, r5, pc} + nop +_021D9BB4: .word 0x021DA0D4 +_021D9BB8: .word 0x021DA054 +_021D9BBC: .word 0x021DA080 +_021D9BC0: .word 0x021DA09C +_021D9BC4: .word 0x021DA064 +_021D9BC8: .word 0x021DA0B8 +_021D9BCC: .word 0x04000050 + thumb_func_end MOD59_021D9A20 + + thumb_func_start MOD59_021D9BD0 +MOD59_021D9BD0: ; 0x021D9BD0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #1 + mov r1, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #0 + bl FUN_0201797C + mov r0, #3 + mov r1, #0 + bl FUN_0201797C + mov r0, #4 + mov r1, #0 + bl FUN_0201797C + mov r0, #5 + mov r1, #0 + bl FUN_0201797C + mov r0, #6 + mov r1, #0 + bl FUN_0201797C + mov r0, #7 + mov r1, #0 + bl FUN_0201797C + ldr r0, _021D9C44 ; =0x04000050 + mov r1, #0 + strh r1, [r0] + ldr r0, [r4, #4] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #0 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #4] + bl FUN_02016A18 + pop {r4, pc} + nop +_021D9C44: .word 0x04000050 + thumb_func_end MOD59_021D9BD0 + + thumb_func_start MOD59_021D9C48 +MOD59_021D9C48: ; 0x021D9C48 + push {r4, lr} + add r4, r0, #0 + ldr r2, _021D9C64 ; =0x00000225 + ldr r3, [r4] + mov r0, #1 + mov r1, #0x1a + bl FUN_0200A86C + str r0, [r4, #8] + bl FUN_0201BD5C + mov r0, #0 + str r0, [r4, #0xc] + pop {r4, pc} + .align 2, 0 +_021D9C64: .word 0x00000225 + thumb_func_end MOD59_021D9C48 + + thumb_func_start MOD59_021D9C68 +MOD59_021D9C68: ; 0x021D9C68 + ldr r3, _021D9C70 ; =FUN_0200A8B8 + ldr r0, [r0, #8] + bx r3 + nop +_021D9C70: .word FUN_0200A8B8 + thumb_func_end MOD59_021D9C68 + + thumb_func_start MOD59_021D9C74 +MOD59_021D9C74: ; 0x021D9C74 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r0, #0 + ldr r0, [r4, #0xc] + str r1, [sp, #0x10] + add r7, r3, #0 + mov r5, #0 + cmp r0, #3 + bhi _021D9D66 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D9C92: ; jump table + .short _021D9C9A - _021D9C92 - 2 ; case 0 + .short _021D9D24 - _021D9C92 - 2 ; case 1 + .short _021D9D36 - _021D9C92 - 2 ; case 2 + .short _021D9D50 - _021D9C92 - 2 ; case 3 +_021D9C9A: + mov r0, #2 + add r1, r5, #0 + bl FUN_0201797C + mov r0, #1 + ldr r1, [r4] + lsl r0, r0, #0xa + bl FUN_020219F4 + add r6, r0, #0 + ldr r0, [r4, #8] + ldr r1, [sp, #0x10] + add r2, r6, #0 + bl FUN_0200A8E0 + add r1, r4, #0 + ldr r0, [r4, #4] + ldr r2, _021D9D6C ; =0x021DA04C + add r1, #0x10 + bl FUN_02019150 + add r1, r5, #0 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0xc0 + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0x10 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + add r0, r5, #0 + add r1, r6, #0 + add r2, r0, #0 + bl FUN_02002F08 + mov r1, #1 + lsl r1, r1, #8 + sub r0, r1, r0 + lsr r3, r0, #1 + str r7, [sp] + add r1, r5, #0 + ldr r0, _021D9D70 ; =0x000F0200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r4, #0 + add r0, #0x10 + add r2, r6, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + add r0, #0x10 + bl FUN_020191D0 + mov r0, #2 + mov r1, #1 + bl FUN_0201797C + mov r0, #0xf0 + str r0, [r4, #0x24] + mov r0, #1 + str r0, [r4, #0xc] + b _021D9D66 +_021D9D24: + ldr r0, [r4, #0x24] + cmp r0, #0 + beq _021D9D30 + sub r0, r0, #1 + str r0, [r4, #0x24] + b _021D9D66 +_021D9D30: + mov r0, #2 + str r0, [r4, #0xc] + b _021D9D66 +_021D9D36: + ldr r0, _021D9D74 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + and r0, r1 + cmp r0, #1 + beq _021D9D4A + mov r0, #2 + and r0, r1 + cmp r0, #2 + bne _021D9D66 +_021D9D4A: + mov r0, #3 + str r0, [r4, #0xc] + b _021D9D66 +_021D9D50: + add r0, r4, #0 + add r0, #0x10 + bl FUN_02019178 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_02018744 + add r0, r5, #0 + str r0, [r4, #0xc] + mov r5, #1 +_021D9D66: + add r0, r5, #0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D9D6C: .word 0x021DA04C +_021D9D70: .word 0x000F0200 +_021D9D74: .word 0x021C48B8 + thumb_func_end MOD59_021D9C74 + + thumb_func_start MOD59_021D9D78 +MOD59_021D9D78: ; 0x021D9D78 + push {r3, lr} + ldr r1, [r0, #0x20] + mov r2, #3 + add r3, r1, #4 + str r3, [r0, #0x20] + ldr r0, [r0, #4] + mov r1, #1 + asr r3, r3, #4 + bl FUN_020179E0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD59_021D9D78 + + .section .rodata + ; 0x021D9D90 + .incbin "baserom.nds", 0x2AC6B0, 0x36C diff --git a/arm9/modules/60/asm/module_60.s b/arm9/modules/60/asm/module_60.s new file mode 100644 index 00000000..d458564e --- /dev/null +++ b/arm9/modules/60/asm/module_60.s @@ -0,0 +1,1491 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD60_021D74E0 +MOD60_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl FUN_0200628C + mov r2, #1 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x26 + lsl r2, r2, #0x10 + bl FUN_0201681C + mov r1, #0xad + add r0, r4, #0 + lsl r1, r1, #2 + mov r2, #0x26 + bl FUN_02006268 + mov r2, #0xad + mov r1, #0 + lsl r2, r2, #2 + add r4, r0, #0 + bl Call_FillMemWithValue + add r0, r5, #0 + bl FUN_02024FD8 + ldrh r1, [r4, #0x18] + mov r2, #0xf + lsl r0, r0, #0x10 + bic r1, r2 + lsr r2, r0, #0x10 + mov r0, #0xf + and r0, r2 + orr r0, r1 + strh r0, [r4, #0x18] + add r0, r5, #0 + bl FUN_0202502C + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1f + ldrh r1, [r4, #0x18] + mov r2, #0x40 + lsr r0, r0, #0x19 + bic r1, r2 + orr r0, r1 + strh r0, [r4, #0x18] + add r0, r5, #0 + bl FUN_02025048 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1f + ldrh r1, [r4, #0x18] + mov r2, #0x80 + lsr r0, r0, #0x18 + bic r1, r2 + orr r0, r1 + strh r0, [r4, #0x18] + add r0, r5, #0 + bl FUN_02025010 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1e + ldrh r1, [r4, #0x18] + mov r2, #0x30 + lsr r0, r0, #0x1a + bic r1, r2 + orr r0, r1 + strh r0, [r4, #0x18] + add r0, r5, #0 + bl FUN_02025064 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1e + ldrh r2, [r4, #0x18] + ldr r1, _021D75A8 ; =0xFFFFFCFF + lsr r0, r0, #0x16 + and r1, r2 + orr r0, r1 + strh r0, [r4, #0x18] + add r0, r5, #0 + bl FUN_02025084 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1b + ldrh r2, [r4, #0x18] + ldr r1, _021D75AC ; =0xFFFF83FF + lsr r0, r0, #0x11 + and r1, r2 + orr r0, r1 + strh r0, [r4, #0x18] + mov r0, #0x26 + str r0, [r4] + str r5, [r4, #0x1c] + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D75A8: .word 0xFFFFFCFF +_021D75AC: .word 0xFFFF83FF + thumb_func_end MOD60_021D74E0 + + thumb_func_start MOD60_021D75B0 +MOD60_021D75B0: ; 0x021D75B0 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r4, #0x10] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1e + cmp r0, #1 + bne _021D7680 + ldrh r1, [r4, #0x18] + mov r0, #0xf + bic r1, r0 + add r0, r4, #0 + add r0, #0x5e + ldrh r2, [r0] + mov r0, #0xf + and r2, r0 + orr r1, r2 + strh r1, [r4, #0x18] + ldrh r1, [r4, #0x18] + mov r2, #0x40 + add r0, #0xf7 + bic r1, r2 + add r2, r4, #0 + add r2, #0xb2 + ldrh r2, [r2] + lsl r2, r2, #0x1f + lsr r2, r2, #0x19 + orr r1, r2 + strh r1, [r4, #0x18] + ldrh r0, [r4, r0] + ldrh r1, [r4, #0x18] + mov r2, #0x80 + lsl r0, r0, #0x1f + bic r1, r2 + lsr r0, r0, #0x18 + orr r0, r1 + strh r0, [r4, #0x18] + ldrh r1, [r4, #0x18] + mov r0, #0x30 + bic r1, r0 + ldr r0, _021D76AC ; =0x0000015A + ldrh r2, [r4, r0] + lsl r2, r2, #0x1e + lsr r2, r2, #0x1a + orr r1, r2 + strh r1, [r4, #0x18] + ldrh r2, [r4, #0x18] + ldr r1, _021D76B0 ; =0xFFFFFCFF + and r1, r2 + add r2, r0, #0 + add r2, #0x54 + ldrh r2, [r4, r2] + add r0, #0xa8 + lsl r2, r2, #0x1e + lsr r2, r2, #0x16 + orr r1, r2 + strh r1, [r4, #0x18] + ldrh r0, [r4, r0] + ldrh r2, [r4, #0x18] + ldr r1, _021D76B4 ; =0xFFFF83FF + lsl r0, r0, #0x1b + and r1, r2 + lsr r0, r0, #0x11 + orr r0, r1 + strh r0, [r4, #0x18] + ldrh r1, [r4, #0x18] + ldr r0, [r4, #0x1c] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + bl FUN_02024FE0 + ldrh r1, [r4, #0x18] + ldr r0, [r4, #0x1c] + lsl r1, r1, #0x19 + lsr r1, r1, #0x1f + bl FUN_02025034 + ldrh r1, [r4, #0x18] + ldr r0, [r4, #0x1c] + lsl r1, r1, #0x18 + lsr r1, r1, #0x1f + bl FUN_02025050 + ldrh r1, [r4, #0x18] + ldr r0, [r4, #0x1c] + lsl r1, r1, #0x1a + lsr r1, r1, #0x1e + bl FUN_02025018 + ldrh r1, [r4, #0x18] + ldr r0, [r4, #0x1c] + lsl r1, r1, #0x16 + lsr r1, r1, #0x1e + bl FUN_0202506C + ldrh r1, [r4, #0x18] + ldr r0, [r4, #0x1c] + lsl r1, r1, #0x11 + lsr r1, r1, #0x1b + bl FUN_0202508C + b _021D769A +_021D7680: + cmp r0, #2 + bne _021D769A + ldrh r0, [r4, #0x18] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1e + bl FUN_02004D60 + ldrh r1, [r4, #0x18] + mov r0, #0 + lsl r1, r1, #0x16 + lsr r1, r1, #0x1e + bl FUN_02024F9C +_021D769A: + add r0, r5, #0 + bl FUN_0200627C + ldr r0, [r4] + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_021D76AC: .word 0x0000015A +_021D76B0: .word 0xFFFFFCFF +_021D76B4: .word 0xFFFF83FF + thumb_func_end MOD60_021D75B0 + + thumb_func_start MOD60_021D76B8 +MOD60_021D76B8: ; 0x021D76B8 + push {r3, r4, lr} + sub sp, #0xc + bl FUN_02006278 + add r4, r0, #0 + ldr r1, [r4, #4] + cmp r1, #4 + bhi _021D77A0 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D76D4: ; jump table + .short _021D76DE - _021D76D4 - 2 ; case 0 + .short _021D7706 - _021D76D4 - 2 ; case 1 + .short _021D7714 - _021D76D4 - 2 ; case 2 + .short _021D777E - _021D76D4 - 2 ; case 3 + .short _021D778C - _021D76D4 - 2 ; case 4 +_021D76DE: + bl MOD60_021D7834 + cmp r0, #0 + bne _021D76EC + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D76EC: + mov r3, #0 + str r3, [r4, #0xc] + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + mov r0, #3 + bl FUN_0200E1D0 + b _021D77A0 +_021D7706: + bl FUN_0200E308 + cmp r0, #0 + bne _021D77A0 + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D7714: + ldr r0, _021D77AC ; =0x021C48B8 + mov r1, #1 + ldr r0, [r0, #0x48] + tst r1, r0 + beq _021D773C + ldr r1, [r4, #0x10] + lsl r1, r1, #0x1b + lsr r1, r1, #0x1d + cmp r1, #6 + bne _021D773C + ldr r0, _021D77B0 ; =0x0000061B + bl FUN_020054C8 + ldr r1, [r4, #0x10] + mov r0, #3 + bic r1, r0 + mov r0, #1 + orr r0, r1 + str r0, [r4, #0x10] + b _021D774E +_021D773C: + mov r1, #2 + tst r0, r1 + beq _021D774E + ldr r2, [r4, #0x10] + mov r0, #3 + bic r2, r0 + add r0, r2, #0 + orr r0, r1 + str r0, [r4, #0x10] +_021D774E: + ldr r0, [r4, #0x10] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1e + beq _021D7772 + mov r1, #0 + str r1, [r4, #0xc] + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + mov r0, #3 + add r3, r1, #0 + bl FUN_0200E1D0 + b _021D77A0 +_021D7772: + add r0, r4, #0 + bl MOD60_021D801C + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D777E: + bl FUN_0200E308 + cmp r0, #0 + bne _021D77A0 + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D778C: + bl MOD60_021D78E8 + cmp r0, #0 + beq _021D779A + add sp, #0xc + mov r0, #1 + pop {r3, r4, pc} +_021D779A: + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D77A0: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_021D77AC: .word 0x021C48B8 +_021D77B0: .word 0x0000061B + thumb_func_end MOD60_021D76B8 + + thumb_func_start MOD60_021D77B4 +MOD60_021D77B4: ; 0x021D77B4 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D77D0 ; =0x021D8140 + add r3, sp, #0 + mov r2, #5 +_021D77BE: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D77BE + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D77D0: .word 0x021D8140 + thumb_func_end MOD60_021D77B4 + + thumb_func_start MOD60_021D77D4 +MOD60_021D77D4: ; 0x021D77D4 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, [r4, #0x10] + lsl r0, r0, #0xa + lsr r0, r0, #0x1f + beq _021D7804 + ldr r2, _021D7824 ; =0x00000202 + mov r1, #1 + ldrh r0, [r4, r2] + add r2, #0x39 + mov r3, #0xf + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r4] + str r0, [sp, #4] + ldr r0, [r4, #0x14] + bl FUN_0200CD68 + ldr r1, [r4, #0x10] + ldr r0, _021D7828 ; =0xFFDFFFFF + and r0, r1 + str r0, [r4, #0x10] +_021D7804: + bl FUN_0200BC30 + bl FUN_020AEEB8 + ldr r0, [r4, #0x14] + bl FUN_0201AB60 + ldr r3, _021D782C ; =0x027E0000 + ldr r1, _021D7830 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + add sp, #8 + pop {r4, pc} + nop +_021D7824: .word 0x00000202 +_021D7828: .word 0xFFDFFFFF +_021D782C: .word 0x027E0000 +_021D7830: .word 0x00003FF8 + thumb_func_end MOD60_021D77D4 + + thumb_func_start MOD60_021D7834 +MOD60_021D7834: ; 0x021D7834 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #8] + cmp r1, #0 + beq _021D7848 + cmp r1, #1 + beq _021D7888 + cmp r1, #2 + beq _021D78A2 + b _021D78D0 +_021D7848: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D78DC ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D78E0 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + bl MOD60_021D77B4 + mov r0, #0 + bl FUN_0200E388 + mov r0, #1 + bl FUN_0200E388 + add r0, r4, #0 + bl MOD60_021D7990 + b _021D78D0 +_021D7888: + bl MOD60_021D7A40 + ldr r3, [r4] + mov r0, #1 + mov r1, #0x1a + mov r2, #0xce + bl FUN_0200A86C + str r0, [r4, #0x20] + add r0, r4, #0 + bl MOD60_021D7DF8 + b _021D78D0 +_021D78A2: + bl MOD60_021D7BA4 + add r0, r4, #0 + bl MOD60_021D7D18 + ldr r1, [r4] + mov r0, #0x20 + bl FUN_0201C24C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + bl FUN_02033F20 + ldr r0, _021D78E4 ; =MOD60_021D77D4 + add r1, r4, #0 + bl FUN_02015F10 + mov r0, #0 + str r0, [r4, #8] + mov r0, #1 + pop {r4, pc} +_021D78D0: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #0 + pop {r4, pc} + nop +_021D78DC: .word 0xFFFFE0FF +_021D78E0: .word 0x04001000 +_021D78E4: .word MOD60_021D77D4 + thumb_func_end MOD60_021D7834 + + thumb_func_start MOD60_021D78E8 +MOD60_021D78E8: ; 0x021D78E8 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + ldr r0, [r0, #8] + cmp r0, #0 + beq _021D78F8 + cmp r0, #1 + beq _021D7946 + b _021D7978 +_021D78F8: + bl FUN_0201C29C + ldr r0, [sp] + bl MOD60_021D7CD4 + ldr r6, [sp] + mov r7, #0 +_021D7906: + add r0, r6, #0 + add r0, #0x5c + ldrh r0, [r0] + mov r4, #0 + cmp r0, #0 + ble _021D7928 + add r5, r6, #0 +_021D7914: + ldr r0, [r5, #0x60] + bl FUN_02021A20 + add r0, r6, #0 + add r0, #0x5c + ldrh r0, [r0] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, r0 + blt _021D7914 +_021D7928: + add r7, r7, #1 + add r6, #0x54 + cmp r7, #7 + blt _021D7906 + ldr r0, [sp] + ldr r0, [r0, #0x20] + bl FUN_0200A8B8 + ldr r0, [sp] + bl MOD60_021D7B98 + ldr r0, [sp] + bl MOD60_021D7A14 + b _021D7978 +_021D7946: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7988 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D798C ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #8] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D7978: + ldr r0, [sp] + ldr r0, [r0, #8] + add r1, r0, #1 + ldr r0, [sp] + str r1, [r0, #8] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D7988: .word 0xFFFFE0FF +_021D798C: .word 0x04001000 + thumb_func_end MOD60_021D78E8 + + thumb_func_start MOD60_021D7990 +MOD60_021D7990: ; 0x021D7990 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x80 + add r6, r0, #0 + ldr r0, [r6] + bl FUN_02016B94 + add r3, sp, #0 + ldr r4, _021D7A08 ; =0x021D8114 + str r0, [r6, #0x14] + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r4, _021D7A0C ; =0x021D8168 + add r3, sp, #0x10 + mov r2, #0xe +_021D79B8: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D79B8 + ldr r5, _021D7A10 ; =0x021D8104 + mov r7, #0 + add r4, sp, #0x10 +_021D79C6: + ldr r1, [r5] + ldr r0, [r6, #0x14] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r2, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r1, [r5] + ldr r0, [r6, #0x14] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_02018744 + add r7, r7, #1 + add r4, #0x1c + add r5, r5, #4 + cmp r7, #4 + blt _021D79C6 + mov r0, #0 + ldr r3, [r6] + mov r1, #0x20 + add r2, r0, #0 + bl FUN_02017F18 + ldr r3, [r6] + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + add sp, #0x80 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D7A08: .word 0x021D8114 +_021D7A0C: .word 0x021D8168 +_021D7A10: .word 0x021D8104 + thumb_func_end MOD60_021D7990 + + thumb_func_start MOD60_021D7A14 +MOD60_021D7A14: ; 0x021D7A14 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x14] + mov r1, #4 + bl FUN_020178A0 + ldr r0, [r4, #0x14] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #0x14] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #0x14] + mov r1, #0 + bl FUN_020178A0 + ldr r0, [r4, #0x14] + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD60_021D7A14 + + thumb_func_start MOD60_021D7A40 +MOD60_021D7A40: ; 0x021D7A40 + push {r3, r4, r5, r6, lr} + sub sp, #0x24 + add r5, r0, #0 + ldr r1, [r5] + mov r0, #0x49 + bl FUN_02006670 + add r4, r0, #0 + mov r0, #0x49 + mov r1, #1 + bl LoadFromNARC_7 + add r1, r0, #0 + ldr r0, [r5] + bl FUN_020169D8 + add r6, r0, #0 + add r0, r4, #0 + mov r1, #1 + add r2, r6, #0 + bl FUN_02006774 + add r0, r6, #0 + add r1, sp, #0x20 + bl FUN_020B0088 + ldr r3, [sp, #0x20] + mov r1, #0 + str r1, [sp] + ldr r2, [r3, #0x14] + ldr r0, [r5, #0x14] + ldr r3, [r3, #0x10] + bl FUN_02017E14 + ldr r3, [sp, #0x20] + mov r0, #0 + str r0, [sp] + ldr r2, [r3, #0x14] + ldr r0, [r5, #0x14] + ldr r3, [r3, #0x10] + mov r1, #4 + bl FUN_02017E14 + add r0, r6, #0 + bl FUN_02016A18 + mov r0, #0x49 + mov r1, #0 + bl LoadFromNARC_7 + add r1, r0, #0 + ldr r0, [r5] + bl FUN_020169D8 + add r6, r0, #0 + add r0, r4, #0 + mov r1, #0 + add r2, r6, #0 + bl FUN_02006774 + add r0, r6, #0 + add r1, sp, #0x1c + bl FUN_020B0138 + ldr r1, [sp, #0x1c] + mov r0, #0 + ldr r1, [r1, #0xc] + mov r2, #0x20 + add r3, r0, #0 + bl FUN_02017FB4 + ldr r1, [sp, #0x1c] + mov r0, #4 + ldr r1, [r1, #0xc] + mov r2, #0x20 + mov r3, #0 + bl FUN_02017FB4 + add r0, r6, #0 + bl FUN_02016A18 + mov r0, #0x49 + mov r1, #2 + bl LoadFromNARC_7 + add r1, r0, #0 + ldr r0, [r5] + bl FUN_02016998 + str r0, [r5, #0x24] + ldr r2, [r5, #0x24] + add r0, r4, #0 + mov r1, #2 + bl FUN_02006774 + add r1, r5, #0 + ldr r0, [r5, #0x24] + add r1, #0x28 + bl FUN_020B0180 + add r0, r4, #0 + bl FUN_020066F4 + mov r3, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r5, #0x14] + mov r1, #2 + mov r2, #1 + bl FUN_02018540 + mov r3, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r5, #0x14] + mov r1, #4 + mov r2, #1 + bl FUN_02018540 + ldr r0, [r5, #0x28] + mov r1, #0x20 + str r1, [sp] + mov r1, #2 + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + str r1, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + str r1, [sp, #0x10] + ldrh r2, [r0] + add r3, r1, #0 + lsl r2, r2, #0x15 + lsr r2, r2, #0x18 + str r2, [sp, #0x14] + ldrh r0, [r0, #2] + add r2, r1, #0 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [r5, #0x14] + bl FUN_020181EC + mov r2, #3 + add r3, r2, #0 + ldr r0, [r5, #0x14] + mov r1, #0 + sub r3, #0x1b + bl FUN_020179E0 + ldr r0, [r5, #0x14] + mov r1, #2 + bl FUN_0201AC68 + ldr r0, [r5, #0x14] + mov r1, #0 + bl FUN_0201AC68 + ldr r0, [r5, #0x14] + mov r1, #4 + bl FUN_0201AC68 + add sp, #0x24 + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD60_021D7A40 + + thumb_func_start MOD60_021D7B98 +MOD60_021D7B98: ; 0x021D7B98 + ldr r3, _021D7BA0 ; =FUN_02016A18 + ldr r0, [r0, #0x24] + bx r3 + nop +_021D7BA0: .word FUN_02016A18 + thumb_func_end MOD60_021D7B98 + + thumb_func_start MOD60_021D7BA4 +MOD60_021D7BA4: ; 0x021D7BA4 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #0xc + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0xa + str r0, [sp, #0x10] + add r1, r4, #0 + mov r2, #1 + ldr r0, [r4, #0x14] + add r1, #0x2c + add r3, r2, #0 + bl FUN_02019064 + mov r0, #3 + str r0, [sp] + mov r0, #0x1e + str r0, [sp, #4] + mov r0, #0xe + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x22 + str r0, [sp, #0x10] + add r1, r4, #0 + mov r2, #1 + ldr r0, [r4, #0x14] + add r1, #0x3c + add r3, r2, #0 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xc + str r0, [sp, #0xc] + ldr r0, _021D7CC8 ; =0x000001C6 + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4, #0x14] + add r1, #0x4c + mov r2, #1 + mov r3, #2 + bl FUN_02019064 + mov r0, #0 + str r0, [sp] + ldr r0, [r4] + ldr r2, _021D7CCC ; =0x00000232 + str r0, [sp, #4] + ldr r0, [r4, #0x14] + mov r1, #1 + mov r3, #0xe + bl FUN_0200CB00 + ldrh r0, [r4, #0x18] + ldr r2, _021D7CD0 ; =0x0000023B + mov r1, #1 + lsl r0, r0, #0x11 + lsr r0, r0, #0x1b + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r4] + mov r3, #0xf + str r0, [sp, #4] + ldr r0, [r4, #0x14] + bl FUN_0200CD68 + mov r1, #0x1a + ldr r2, [r4] + mov r0, #0 + lsl r1, r1, #4 + bl FUN_02002ED0 + mov r1, #0x1a + ldr r2, [r4] + mov r0, #4 + lsl r1, r1, #4 + bl FUN_02002ED0 + mov r1, #6 + ldr r2, [r4] + mov r0, #0 + lsl r1, r1, #6 + bl FUN_02002EEC + mov r1, #6 + ldr r2, [r4] + mov r0, #4 + lsl r1, r1, #6 + bl FUN_02002EEC + add r0, r4, #0 + add r0, #0x2c + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x3c + mov r1, #0xff + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x4c + mov r1, #0xff + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x4c + bl FUN_020192B8 + add r0, r4, #0 + add r0, #0x3c + bl FUN_020192B8 + add r0, r4, #0 + add r0, #0x2c + bl FUN_020192B8 + add r0, r4, #0 + ldr r2, _021D7CCC ; =0x00000232 + add r0, #0x3c + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + add r4, #0x4c + ldr r2, _021D7CD0 ; =0x0000023B + add r0, r4, #0 + mov r1, #1 + mov r3, #0xf + bl FUN_0200D0BC + add sp, #0x14 + pop {r3, r4, pc} + nop +_021D7CC8: .word 0x000001C6 +_021D7CCC: .word 0x00000232 +_021D7CD0: .word 0x0000023B + thumb_func_end MOD60_021D7BA4 + + thumb_func_start MOD60_021D7CD4 +MOD60_021D7CD4: ; 0x021D7CD4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r0, #0x3c + mov r1, #0 + bl FUN_0200CCF8 + add r0, r5, #0 + add r0, #0x4c + mov r1, #0 + bl FUN_0200D0E0 + mov r6, #0 + add r5, #0x2c + add r7, r6, #0 +_021D7CF0: + lsl r4, r6, #4 + add r0, r5, r4 + bl FUN_02019570 + add r0, r5, r4 + add r1, r7, #0 + bl FUN_02019620 + add r0, r5, r4 + bl FUN_020192B8 + add r0, r5, r4 + bl FUN_02019178 + add r0, r6, #1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + cmp r6, #3 + blo _021D7CF0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD60_021D7CD4 + + thumb_func_start MOD60_021D7D18 +MOD60_021D7D18: ; 0x021D7D18 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r6, r0, #0 + ldr r1, [r6] + mov r0, #0x28 + bl FUN_020219F4 + add r5, r0, #0 + ldr r0, [r6, #0x20] + mov r1, #0 + add r2, r5, #0 + bl FUN_0200A8E0 + mov r3, #2 + str r3, [sp] + mov r1, #0 + ldr r0, _021D7DEC ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r6, #0 + add r0, #0x2c + add r2, r5, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r5, #0 + bl FUN_02021A4C + ldr r1, _021D7DF0 ; =0x020ECAC0 + ldr r0, [r6, #0x20] + ldrb r1, [r1] + add r2, r5, #0 + sub r1, #9 + bl FUN_0200A8E0 + mov r1, #0 + str r1, [sp] + ldr r0, _021D7DF4 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r6, #0 + str r1, [sp, #0xc] + add r0, #0x4c + mov r1, #1 + add r2, r5, #0 + mov r3, #4 + bl FUN_0201BDE0 + add r7, r6, #0 + mov r4, #0 + add r7, #0x3c +_021D7D7E: + add r0, r5, #0 + bl FUN_02021A4C + ldr r0, [r6, #0x20] + add r1, r4, #3 + add r2, r5, #0 + bl FUN_0200A8E0 + lsl r0, r4, #4 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7DF4 ; =0x0001020F + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r0, r7, #0 + add r2, r5, #0 + mov r3, #4 + bl FUN_0201BDE0 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #7 + blo _021D7D7E + mov r4, #0 +_021D7DB6: + add r0, r6, #0 + add r1, r4, #0 + bl MOD60_021D7EA4 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #7 + blo _021D7DB6 + add r0, r6, #0 + add r0, #0x2c + bl FUN_020191D0 + add r0, r6, #0 + add r0, #0x3c + bl FUN_020191D0 + add r6, #0x4c + add r0, r6, #0 + bl FUN_020191D0 + add r0, r5, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D7DEC: .word 0x00010200 +_021D7DF0: .word 0x020ECAC0 +_021D7DF4: .word 0x0001020F + thumb_func_end MOD60_021D7D18 + + thumb_func_start MOD60_021D7DF8 +MOD60_021D7DF8: ; 0x021D7DF8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + mov r5, #0 + add r6, r0, #0 + str r5, [sp, #4] +_021D7E02: + ldr r0, [sp, #4] + ldr r2, [sp, #4] + lsl r7, r0, #2 + ldr r0, _021D7E9C ; =0x021D8124 + mov r1, #0x54 + mul r1, r2 + add r1, r6, r1 + str r1, [sp] + ldr r0, [r0, r7] + add r1, #0x5c + mov r4, #0 + strh r0, [r1] + cmp r0, #0 + ble _021D7E44 +_021D7E1E: + add r0, r5, #1 + lsl r0, r0, #0x10 + add r1, r5, #0 + lsr r5, r0, #0x10 + ldr r0, [r6, #0x20] + add r1, #0xa + bl FUN_0200A914 + ldr r1, [sp] + lsl r2, r4, #2 + add r1, r1, r2 + str r0, [r1, #0x60] + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, _021D7E9C ; =0x021D8124 + ldr r0, [r0, r7] + cmp r4, r0 + blt _021D7E1E +_021D7E44: + ldr r0, [sp, #4] + add r0, r0, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] + cmp r0, #7 + blo _021D7E02 + ldrh r0, [r6, #0x18] + lsl r0, r0, #0x1c + lsr r1, r0, #0x1c + add r0, r6, #0 + add r0, #0x5e + strh r1, [r0] + ldrh r0, [r6, #0x18] + lsl r0, r0, #0x19 + lsr r1, r0, #0x1f + add r0, r6, #0 + add r0, #0xb2 + strh r1, [r0] + ldrh r0, [r6, #0x18] + ldr r1, _021D7EA0 ; =0x00000106 + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + strh r0, [r6, r1] + ldrh r0, [r6, #0x18] + lsl r0, r0, #0x1a + lsr r2, r0, #0x1e + add r0, r1, #0 + add r0, #0x54 + strh r2, [r6, r0] + ldrh r0, [r6, #0x18] + lsl r0, r0, #0x16 + lsr r2, r0, #0x1e + add r0, r1, #0 + add r0, #0xa8 + strh r2, [r6, r0] + ldrh r0, [r6, #0x18] + add r1, #0xfc + lsl r0, r0, #0x11 + lsr r0, r0, #0x1b + strh r0, [r6, r1] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D7E9C: .word 0x021D8124 +_021D7EA0: .word 0x00000106 + thumb_func_end MOD60_021D7DF8 + + thumb_func_start MOD60_021D7EA4 +MOD60_021D7EA4: ; 0x021D7EA4 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + str r0, [sp, #0x10] + lsl r0, r1, #4 + str r0, [sp, #0x18] + mov r0, #6 + str r1, [sp, #0x14] + lsl r0, r0, #6 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + ldr r3, _021D8010 ; =0x021D80FC + ldr r2, [sp, #0x14] + ldr r0, [sp, #0x10] + ldrsb r2, [r3, r2] + ldr r3, [sp, #0x18] + add r0, #0x3c + add r2, #0x64 + lsl r2, r2, #0x10 + lsl r3, r3, #0x10 + mov r1, #0xff + lsr r2, r2, #0x10 + lsr r3, r3, #0x10 + bl FUN_020196F4 + ldr r0, [sp, #0x14] + cmp r0, #5 + bne _021D7F26 + add r2, r0, #0 + ldr r0, [sp, #0x18] + mov r1, #0x54 + str r0, [sp] + mov r0, #0xff + mul r2, r1 + ldr r3, [sp, #0x10] + str r0, [sp, #4] + ldr r0, _021D8014 ; =0x0003040F + add r3, r3, r2 + str r0, [sp, #8] + mov r1, #0 + add r2, r3, #0 + ldr r0, [sp, #0x10] + str r1, [sp, #0xc] + add r2, #0x5e + ldrh r2, [r2] + add r0, #0x3c + lsl r2, r2, #2 + add r2, r3, r2 + ldr r2, [r2, #0x60] + mov r3, #0x94 + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + add r0, #0x3c + bl FUN_020191D0 + ldr r0, [sp, #0x10] + ldr r1, [r0, #0x10] + mov r0, #2 + lsl r0, r0, #0x14 + orr r1, r0 + ldr r0, [sp, #0x10] + add sp, #0x24 + str r1, [r0, #0x10] + pop {r4, r5, r6, r7, pc} +_021D7F26: + cmp r0, #3 + bne _021D7F3C + mov r1, #0x54 + mul r1, r0 + ldr r0, [sp, #0x10] + add r0, r0, r1 + add r0, #0x5e + ldrh r0, [r0] + bl FUN_02004D60 + b _021D7F54 +_021D7F3C: + cmp r0, #4 + bne _021D7F54 + ldr r1, [sp, #0x14] + mov r2, #0x54 + mul r2, r1 + ldr r1, [sp, #0x10] + mov r0, #0 + add r1, r1, r2 + add r1, #0x5e + ldrh r1, [r1] + bl FUN_02024F9C +_021D7F54: + ldr r0, [sp, #0x14] + mov r1, #0x54 + mul r1, r0 + ldr r0, [sp, #0x10] + mov r7, #0 + add r5, r0, r1 + add r0, r5, #0 + add r0, #0x5c + ldrh r0, [r0] + add r4, r7, #0 + cmp r0, #0 + bls _021D8002 + bls _021D8002 + ldr r1, _021D8010 ; =0x021D80FC + ldr r0, [sp, #0x14] + add r0, r1, r0 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x10] + str r0, [sp, #0x20] + add r0, #0x3c + str r0, [sp, #0x20] +_021D7F7E: + add r0, r5, #0 + add r0, #0x5e + ldrh r0, [r0] + cmp r4, r0 + bne _021D7F8C + ldr r0, _021D8014 ; =0x0003040F + b _021D7F8E +_021D7F8C: + ldr r0, _021D8018 ; =0x0001020F +_021D7F8E: + ldr r1, [sp, #0x14] + cmp r1, #4 + bne _021D7FC8 + lsl r1, r4, #2 + add r6, r5, r1 + ldr r1, [sp, #0x18] + add r3, r7, #0 + str r1, [sp] + mov r1, #0xff + str r1, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x20] + ldr r2, [r6, #0x60] + mov r1, #0 + add r3, #0x64 + bl FUN_0201BDE0 + mov r0, #0 + ldr r1, [r6, #0x60] + add r2, r0, #0 + bl FUN_02002E14 + add r0, #0xc + add r0, r7, r0 + lsl r0, r0, #0x18 + asr r7, r0, #0x18 + b _021D7FF2 +_021D7FC8: + ldr r1, [sp, #0x18] + lsl r2, r4, #2 + str r1, [sp] + mov r1, #0xff + str r1, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + mov r1, #0 + str r0, [sp, #0xc] + add r2, r5, r2 + ldr r6, [sp, #0x1c] + add r3, r1, #0 + ldrsb r6, [r6, r3] + mov r3, #0x30 + mul r3, r4 + add r3, #0x64 + ldr r0, [sp, #0x20] + ldr r2, [r2, #0x60] + add r3, r6, r3 + bl FUN_0201BDE0 +_021D7FF2: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r5, #0 + add r0, #0x5c + ldrh r0, [r0] + cmp r4, r0 + blo _021D7F7E +_021D8002: + ldr r0, [sp, #0x10] + add r0, #0x3c + str r0, [sp, #0x10] + bl FUN_020191D0 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D8010: .word 0x021D80FC +_021D8014: .word 0x0003040F +_021D8018: .word 0x0001020F + thumb_func_end MOD60_021D7EA4 + + thumb_func_start MOD60_021D801C +MOD60_021D801C: ; 0x021D801C + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x10] + add r1, r5, #0 + lsl r0, r0, #0x1b + lsr r2, r0, #0x1d + mov r0, #0x54 + add r1, #0x5c + mul r0, r2 + add r4, r1, r0 + cmp r2, #6 + beq _021D8080 + ldr r0, _021D80F8 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x10 + tst r0, r1 + beq _021D805C + ldrh r0, [r4, #2] + ldrh r1, [r4] + add r0, r0, #1 + bl _s32_div_f + strh r1, [r4, #2] + ldr r1, [r5, #0x10] + add r0, r5, #0 + lsl r1, r1, #0x1b + lsr r1, r1, #0x1d + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl MOD60_021D7EA4 + b _021D8080 +_021D805C: + mov r0, #0x20 + tst r0, r1 + beq _021D8080 + ldrh r1, [r4] + ldrh r0, [r4, #2] + add r0, r0, r1 + sub r0, r0, #1 + bl _s32_div_f + strh r1, [r4, #2] + ldr r1, [r5, #0x10] + add r0, r5, #0 + lsl r1, r1, #0x1b + lsr r1, r1, #0x1d + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl MOD60_021D7EA4 +_021D8080: + ldr r0, _021D80F8 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x40 + tst r0, r1 + beq _021D80BE + ldr r0, [r5, #0x10] + mov r1, #7 + lsl r0, r0, #0x1b + lsr r0, r0, #0x1d + add r0, r0, #6 + bl _u32_div_f + ldr r2, [r5, #0x10] + mov r0, #0x1c + bic r2, r0 + lsl r0, r1, #0x1d + add r3, r2, #0 + lsr r0, r0, #0x1b + orr r3, r0 + str r3, [r5, #0x10] + lsl r3, r3, #0x1b + lsr r3, r3, #0x1d + lsl r3, r3, #4 + add r3, #0x18 + ldr r0, [r5, #0x14] + mov r1, #0 + mov r2, #3 + neg r3, r3 + bl FUN_0201AEE4 + pop {r3, r4, r5, pc} +_021D80BE: + mov r0, #0x80 + tst r0, r1 + beq _021D80F6 + ldr r0, [r5, #0x10] + mov r1, #7 + lsl r0, r0, #0x1b + lsr r0, r0, #0x1d + add r0, r0, #1 + bl _u32_div_f + ldr r2, [r5, #0x10] + mov r0, #0x1c + bic r2, r0 + lsl r0, r1, #0x1d + add r3, r2, #0 + lsr r0, r0, #0x1b + orr r3, r0 + str r3, [r5, #0x10] + lsl r3, r3, #0x1b + lsr r3, r3, #0x1d + lsl r3, r3, #4 + add r3, #0x18 + ldr r0, [r5, #0x14] + mov r1, #0 + mov r2, #3 + neg r3, r3 + bl FUN_0201AEE4 +_021D80F6: + pop {r3, r4, r5, pc} + .align 2, 0 +_021D80F8: .word 0x021C48B8 + thumb_func_end MOD60_021D801C + + .section .rodata + ; 0x021D80FC + .incbin "baserom.nds", 0x2AD81C, 0xDC diff --git a/arm9/modules/61/asm/module_61.s b/arm9/modules/61/asm/module_61.s new file mode 100644 index 00000000..c81d3a4a --- /dev/null +++ b/arm9/modules/61/asm/module_61.s @@ -0,0 +1,1907 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD61_021D74E0 +MOD61_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + mov r2, #2 + mov r0, #3 + mov r1, #0x29 + lsl r2, r2, #0x10 + bl FUN_0201681C + add r0, r5, #0 + mov r1, #0xbc + mov r2, #0x29 + bl FUN_02006268 + mov r1, #0 + mov r2, #0xbc + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x29 + str r0, [r4] + add r0, r5, #0 + bl FUN_0200628C + str r0, [r4, #0x1c] + ldrh r0, [r0] + ldr r1, _021D754C ; =0x0000FFFF + strb r0, [r4, #0xc] + ldrb r0, [r4, #0xc] + strb r0, [r4, #0xd] + ldr r0, [r4, #0x1c] + ldrb r0, [r0, #2] + strb r0, [r4, #0x11] + ldr r0, [r4, #0x1c] + ldrb r0, [r0, #3] + strb r0, [r4, #0x12] + ldrb r0, [r4, #0x11] + strb r0, [r4, #0x16] + strb r0, [r4, #0x17] + ldr r0, [r4, #0x1c] + strh r1, [r0] + ldr r0, [r4, #0x1c] + ldr r0, [r0, #4] + bl FUN_02024FF4 + strb r0, [r4, #0x10] + ldr r0, [r4, #0x1c] + ldr r0, [r0, #4] + bl FUN_02025084 + strh r0, [r4, #0xa] + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D754C: .word 0x0000FFFF + thumb_func_end MOD61_021D74E0 + + thumb_func_start MOD61_021D7550 +MOD61_021D7550: ; 0x021D7550 + push {r3, lr} + bl FUN_02006278 + bl MOD61_021D78D4 + cmp r0, #0 + beq _021D7562 + mov r0, #1 + pop {r3, pc} +_021D7562: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD61_021D7550 + + thumb_func_start MOD61_021D7568 +MOD61_021D7568: ; 0x021D7568 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + ldr r4, [r0] + add r0, r5, #0 + bl FUN_0200627C + add r0, r4, #0 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD61_021D7568 + + thumb_func_start MOD61_021D7584 +MOD61_021D7584: ; 0x021D7584 + push {r4, r5, r6, lr} + mov r4, #0 + add r6, r0, #0 + add r5, r4, #0 +_021D758C: + ldr r0, [r6, #0x1c] + add r0, #0x1a + add r0, r0, r5 + bl FUN_0201385C + cmp r0, #0 + beq _021D759E + mov r0, #0 + pop {r4, r5, r6, pc} +_021D759E: + add r4, r4, #1 + add r5, #8 + cmp r4, #3 + blt _021D758C + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD61_021D7584 + + thumb_func_start MOD61_021D75AC +MOD61_021D75AC: ; 0x021D75AC + push {r3, lr} + ldr r0, _021D75C8 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _021D75C2 + ldr r0, _021D75CC ; =0x000005E3 + bl FUN_020054C8 + mov r0, #1 + pop {r3, pc} +_021D75C2: + mov r0, #0 + pop {r3, pc} + nop +_021D75C8: .word 0x021C48B8 +_021D75CC: .word 0x000005E3 + thumb_func_end MOD61_021D75AC + + thumb_func_start MOD61_021D75D0 +MOD61_021D75D0: ; 0x021D75D0 + push {r3, r4, r5, lr} + ldr r1, _021D76E0 ; =0x021C48B8 + add r4, r0, #0 + ldr r2, [r1, #0x48] + mov r1, #1 + add r5, r2, #0 + mov r3, #0 + tst r5, r1 + beq _021D7648 + ldrb r1, [r4, #0x11] + cmp r1, #3 + bne _021D762E + ldrb r1, [r4, #0x12] + cmp r1, #0 + bne _021D7612 + bl MOD61_021D7584 + cmp r0, #0 + beq _021D7604 + ldr r0, _021D76E4 ; =0x000005DD + bl FUN_020054C8 + mov r0, #2 + strb r0, [r4, #0xc] + mov r0, #0 + pop {r3, r4, r5, pc} +_021D7604: + ldr r0, [r4, #0x1c] + mov r1, #3 + strh r1, [r0] + ldr r0, _021D76E8 ; =0x000005E3 + bl FUN_020054C8 + b _021D7620 +_021D7612: + ldr r0, _021D76E4 ; =0x000005DD + bl FUN_020054C8 + mov r0, #3 + strb r0, [r4, #0xc] + mov r0, #0 + pop {r3, r4, r5, pc} +_021D7620: + ldr r0, [r4, #0x1c] + mov r1, #0 + strb r1, [r0, #3] + ldr r1, [r4, #0x1c] + ldrb r0, [r1, #3] + strb r0, [r1, #2] + b _021D7644 +_021D762E: + ldr r0, [r4, #0x1c] + strb r1, [r0, #2] + ldr r1, [r4, #0x1c] + ldrb r0, [r1, #2] + strh r0, [r1] + ldrb r1, [r4, #0x12] + ldr r0, [r4, #0x1c] + strb r1, [r0, #3] + ldr r0, _021D76E4 ; =0x000005DD + bl FUN_020054C8 +_021D7644: + mov r0, #1 + pop {r3, r4, r5, pc} +_021D7648: + mov r0, #2 + tst r0, r2 + beq _021D765C + ldr r0, _021D76E4 ; =0x000005DD + bl FUN_020054C8 + mov r0, #3 + strb r0, [r4, #0xc] + mov r0, #0 + pop {r3, r4, r5, pc} +_021D765C: + mov r0, #8 + tst r0, r2 + beq _021D766C + mov r0, #3 + strb r0, [r4, #0x11] + strb r3, [r4, #0x12] + add r3, r1, #0 + b _021D76BE +_021D766C: + mov r0, #0x80 + tst r0, r2 + beq _021D7688 + ldrb r0, [r4, #0x11] + add r0, r0, #1 + lsr r3, r0, #0x1f + lsl r2, r0, #0x1e + sub r2, r2, r3 + mov r0, #0x1e + ror r2, r0 + add r0, r3, r2 + strb r0, [r4, #0x11] + add r3, r1, #0 + b _021D76BE +_021D7688: + mov r0, #0x40 + tst r0, r2 + beq _021D76A4 + ldrb r0, [r4, #0x11] + add r0, r0, #3 + lsr r3, r0, #0x1f + lsl r2, r0, #0x1e + sub r2, r2, r3 + mov r0, #0x1e + ror r2, r0 + add r0, r3, r2 + strb r0, [r4, #0x11] + add r3, r1, #0 + b _021D76BE +_021D76A4: + mov r0, #0x30 + tst r0, r2 + beq _021D76BA + ldrb r0, [r4, #0x11] + cmp r0, #3 + bne _021D76BE + ldrb r0, [r4, #0x12] + add r3, r1, #0 + eor r0, r1 + strb r0, [r4, #0x12] + b _021D76BE +_021D76BA: + add r0, r3, #0 + pop {r3, r4, r5, pc} +_021D76BE: + cmp r3, #0 + bne _021D76C6 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D76C6: + ldr r0, _021D76EC ; =0x000005DC + bl FUN_020054C8 + ldrb r1, [r4, #0x11] + cmp r1, #3 + bne _021D76DA + ldrb r0, [r4, #0x12] + add r0, r1, r0 + strb r0, [r4, #0x16] + b _021D76DC +_021D76DA: + strb r1, [r4, #0x16] +_021D76DC: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D76E0: .word 0x021C48B8 +_021D76E4: .word 0x000005DD +_021D76E8: .word 0x000005E3 +_021D76EC: .word 0x000005DC + thumb_func_end MOD61_021D75D0 + + thumb_func_start MOD61_021D76F0 +MOD61_021D76F0: ; 0x021D76F0 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldrh r0, [r5, #8] + cmp r0, #0 + beq _021D7702 + cmp r0, #1 + beq _021D774E + b _021D777C +_021D7702: + add r0, r5, #0 + add r0, #0x94 + mov r1, #1 + mov r2, #0xa + mov r3, #6 + bl FUN_0200D0BC + add r0, r5, #0 + add r0, #0x94 + mov r1, #0xff + bl FUN_02019620 + ldr r1, [r5] + mov r0, #0x4c + bl FUN_020219F4 + add r4, r0, #0 + ldr r0, [r5, #0x20] + mov r1, #2 + add r2, r4, #0 + bl FUN_0200A8E0 + mov r3, #0 + str r3, [sp] + ldr r0, _021D7788 ; =0x0001020F + str r3, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x94 + mov r1, #1 + add r2, r4, #0 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + b _021D777C +_021D774E: + ldr r0, _021D778C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021D775E + add sp, #0x10 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D775E: + add r0, r5, #0 + add r0, #0x94 + mov r1, #1 + bl FUN_0200D0E0 + add r0, r5, #0 + add r0, #0x94 + bl FUN_02019570 + mov r0, #0 + strh r0, [r5, #8] + ldrb r1, [r5, #0xd] + add sp, #0x10 + strb r1, [r5, #0xc] + pop {r3, r4, r5, pc} +_021D777C: + ldrh r0, [r5, #8] + add r0, r0, #1 + strh r0, [r5, #8] + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7788: .word 0x0001020F +_021D778C: .word 0x021C48B8 + thumb_func_end MOD61_021D76F0 + + thumb_func_start MOD61_021D7790 +MOD61_021D7790: ; 0x021D7790 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4] + ldr r1, _021D77B0 ; =0x021D842C + str r0, [sp] + ldr r0, [r4, #0x18] + mov r2, #1 + mov r3, #5 + bl FUN_02002198 + add r4, #0xa4 + str r0, [r4] + add sp, #4 + pop {r3, r4, pc} + nop +_021D77B0: .word 0x021D842C + thumb_func_end MOD61_021D7790 + + thumb_func_start MOD61_021D77B4 +MOD61_021D77B4: ; 0x021D77B4 + push {r3, lr} + add r1, r0, #0 + add r0, #0xa4 + ldr r0, [r0] + ldr r1, [r1] + bl FUN_020021AC + cmp r0, #0 + beq _021D77D0 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021D77D4 + b _021D77D8 +_021D77D0: + mov r0, #1 + pop {r3, pc} +_021D77D4: + mov r0, #0 + pop {r3, pc} +_021D77D8: + add r0, r1, #1 + pop {r3, pc} + thumb_func_end MOD61_021D77B4 + + thumb_func_start MOD61_021D77DC +MOD61_021D77DC: ; 0x021D77DC + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldrh r1, [r5, #8] + cmp r1, #0 + beq _021D77F2 + cmp r1, #1 + beq _021D7864 + cmp r1, #2 + beq _021D787C + b _021D78BA +_021D77F2: + mov r1, #1 + add r0, #0x94 + mov r2, #0xa + mov r3, #6 + strb r1, [r5, #0x13] + bl FUN_0200D0BC + add r0, r5, #0 + add r0, #0x94 + mov r1, #0xff + bl FUN_02019620 + ldr r1, [r5] + mov r0, #0x4c + bl FUN_020219F4 + add r4, r0, #0 + ldr r0, [r5, #0x20] + mov r1, #3 + add r2, r4, #0 + bl FUN_0200A8E0 + mov r3, #0 + str r3, [sp] + ldrb r0, [r5, #0x10] + mov r1, #1 + add r2, r4, #0 + str r0, [sp, #4] + ldr r0, _021D78C8 ; =0x0001020F + str r0, [sp, #8] + add r0, r5, #0 + str r3, [sp, #0xc] + add r0, #0x94 + bl FUN_0201BDE0 + strb r0, [r5, #0xf] + add r0, r4, #0 + bl FUN_02021A20 + mov r1, #0 + ldr r0, _021D78CC ; =0x00007FFF + str r1, [sp] + str r0, [sp, #4] + ldrb r2, [r5, #0x17] + ldr r0, [r5, #0x30] + mov r3, #1 + add r2, #0x22 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + bl FUN_020039E8 + ldrb r0, [r5, #0x16] + strb r0, [r5, #0x17] + mov r0, #0 + strb r0, [r5, #0x15] + strb r0, [r5, #0x14] + b _021D78BA +_021D7864: + ldrb r0, [r5, #0xf] + bl FUN_0201BD70 + cmp r0, #0 + beq _021D7874 + add sp, #0x10 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D7874: + add r0, r5, #0 + bl MOD61_021D7790 + b _021D78BA +_021D787C: + bl MOD61_021D77B4 + add r4, r0, #0 + bpl _021D788A + add sp, #0x10 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D788A: + add r0, r5, #0 + add r0, #0x94 + mov r1, #1 + bl FUN_0200D0E0 + add r0, r5, #0 + add r0, #0x94 + bl FUN_02019570 + mov r0, #0 + strh r0, [r5, #8] + cmp r4, #0 + beq _021D78B0 + ldr r1, _021D78D0 ; =0x0000FFFF + ldr r0, [r5, #0x1c] + add sp, #0x10 + strh r1, [r0] + mov r0, #1 + pop {r3, r4, r5, pc} +_021D78B0: + ldrb r1, [r5, #0xd] + add sp, #0x10 + strb r1, [r5, #0xc] + strb r0, [r5, #0x13] + pop {r3, r4, r5, pc} +_021D78BA: + ldrh r0, [r5, #8] + add r0, r0, #1 + strh r0, [r5, #8] + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D78C8: .word 0x0001020F +_021D78CC: .word 0x00007FFF +_021D78D0: .word 0x0000FFFF + thumb_func_end MOD61_021D77DC + + thumb_func_start MOD61_021D78D4 +MOD61_021D78D4: ; 0x021D78D4 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r1, [r4, #4] + cmp r1, #5 + bls _021D78E2 + b _021D7A46 +_021D78E2: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D78EE: ; jump table + .short _021D78FA - _021D78EE - 2 ; case 0 + .short _021D7940 - _021D78EE - 2 ; case 1 + .short _021D798A - _021D78EE - 2 ; case 2 + .short _021D79A6 - _021D78EE - 2 ; case 3 + .short _021D79E0 - _021D78EE - 2 ; case 4 + .short _021D7A32 - _021D78EE - 2 ; case 5 +_021D78FA: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7A54 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D7A58 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + bl FUN_0200E388 + mov r0, #1 + bl FUN_0200E388 + b _021D7A46 +_021D7940: + bl MOD61_021D7B38 + cmp r0, #0 + bne _021D794E + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D794E: + ldr r0, _021D7A5C ; =MOD61_021D7A6C + add r1, r4, #0 + bl FUN_02015F10 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0 + bl FUN_0200E394 + mov r1, #4 + ldr r0, _021D7A60 ; =0x04000050 + mov r2, #8 + mov r3, #0x1c + str r1, [sp] + bl G2x_SetBlendAlpha_ + mov r0, #0x10 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r1, #5 + ldr r0, [r4, #0x30] + ldr r2, _021D7A64 ; =0x0000FFFF + sub r3, r1, #6 + bl FUN_02003210 + b _021D7A46 +_021D798A: + add r0, #0xac + ldr r0, [r0] + cmp r0, #0 + beq _021D7996 + bl FUN_0200BC1C +_021D7996: + ldr r0, [r4, #0x30] + bl FUN_020038E4 + cmp r0, #0 + beq _021D7A46 + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D79A6: + add r0, #0xac + ldr r0, [r0] + cmp r0, #0 + beq _021D79B2 + bl FUN_0200BC1C +_021D79B2: + ldrb r1, [r4, #0xc] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _021D7A68 ; =0x021D8444 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + bne _021D79C8 + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D79C8: + mov r1, #0 + str r1, [sp] + mov r0, #0x10 + str r0, [sp, #4] + str r1, [sp, #8] + mov r1, #5 + ldr r0, [r4, #0x30] + ldr r2, _021D7A64 ; =0x0000FFFF + sub r3, r1, #6 + bl FUN_02003210 + b _021D7A46 +_021D79E0: + ldr r0, [r4, #0x30] + bl FUN_020038E4 + cmp r0, #0 + beq _021D79FC + add r4, #0xac + ldr r0, [r4] + cmp r0, #0 + beq _021D79F6 + bl FUN_0200BC1C +_021D79F6: + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D79FC: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7A54 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D7A58 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + b _021D7A46 +_021D7A32: + bl MOD61_021D7B84 + cmp r0, #0 + beq _021D7A40 + add sp, #0xc + mov r0, #1 + pop {r3, r4, pc} +_021D7A40: + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D7A46: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + add sp, #0xc + pop {r3, r4, pc} + nop +_021D7A54: .word 0xFFFFE0FF +_021D7A58: .word 0x04001000 +_021D7A5C: .word MOD61_021D7A6C +_021D7A60: .word 0x04000050 +_021D7A64: .word 0x0000FFFF +_021D7A68: .word 0x021D8444 + thumb_func_end MOD61_021D78D4 + + thumb_func_start MOD61_021D7A6C +MOD61_021D7A6C: ; 0x021D7A6C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + cmp r0, #0 + beq _021D7A7A + bl FUN_0200372C +_021D7A7A: + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + cmp r0, #0 + beq _021D7A88 + bl FUN_0200BC30 +_021D7A88: + bl FUN_020AEEB8 + ldr r0, [r4, #0x18] + bl FUN_0201AB60 + ldr r3, _021D7AA0 ; =0x027E0000 + ldr r1, _021D7AA4 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + .align 2, 0 +_021D7AA0: .word 0x027E0000 +_021D7AA4: .word 0x00003FF8 + thumb_func_end MOD61_021D7A6C + + thumb_func_start MOD61_021D7AA8 +MOD61_021D7AA8: ; 0x021D7AA8 + push {r4, lr} + sub sp, #8 + add r4, r1, #0 + ldr r2, [r4, #0x30] + cmp r2, #0 + bne _021D7ABC + bl FUN_0200CAB4 + add sp, #8 + pop {r4, pc} +_021D7ABC: + ldrb r0, [r4, #0x13] + cmp r0, #0 + bne _021D7B30 + ldrb r3, [r4, #0x17] + ldrb r0, [r4, #0x16] + cmp r3, r0 + beq _021D7AEA + mov r1, #0 + ldr r0, _021D7B34 ; =0x00007FFF + str r1, [sp] + str r0, [sp, #4] + add r3, #0x22 + add r0, r2, #0 + lsl r2, r3, #0x10 + lsr r2, r2, #0x10 + mov r3, #1 + bl FUN_020039E8 + ldrb r0, [r4, #0x16] + strb r0, [r4, #0x17] + mov r0, #0 + strb r0, [r4, #0x15] + strb r0, [r4, #0x14] +_021D7AEA: + ldrb r0, [r4, #0x14] + mov r1, #0 + mov r3, #1 + str r0, [sp] + ldr r0, _021D7B34 ; =0x00007FFF + str r0, [sp, #4] + ldrb r2, [r4, #0x16] + ldr r0, [r4, #0x30] + add r2, #0x22 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + bl FUN_020039E8 + ldrb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + cmp r0, #0 + beq _021D7B20 + sub r0, r1, #1 + strb r0, [r4, #0x14] + cmp r1, #1 + bne _021D7B30 + ldrb r1, [r4, #0x15] + mov r0, #1 + add sp, #8 + eor r0, r1 + strb r0, [r4, #0x15] + pop {r4, pc} +_021D7B20: + add r0, r1, #1 + strb r0, [r4, #0x14] + cmp r1, #0xc + bne _021D7B30 + ldrb r1, [r4, #0x15] + mov r0, #1 + eor r0, r1 + strb r0, [r4, #0x15] +_021D7B30: + add sp, #8 + pop {r4, pc} + .align 2, 0 +_021D7B34: .word 0x00007FFF + thumb_func_end MOD61_021D7AA8 + + thumb_func_start MOD61_021D7B38 +MOD61_021D7B38: ; 0x021D7B38 + push {r4, lr} + add r4, r0, #0 + ldrh r1, [r4, #8] + cmp r1, #3 + bhi _021D7B7A + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7B4E: ; jump table + .short _021D7B56 - _021D7B4E - 2 ; case 0 + .short _021D7B5C - _021D7B4E - 2 ; case 1 + .short _021D7B62 - _021D7B4E - 2 ; case 2 + .short _021D7B6E - _021D7B4E - 2 ; case 3 +_021D7B56: + bl MOD61_021D7BD0 + b _021D7B7A +_021D7B5C: + bl MOD61_021D7CE8 + b _021D7B7A +_021D7B62: + bl MOD61_021D7FF4 + add r0, r4, #0 + bl MOD61_021D8114 + b _021D7B7A +_021D7B6E: + bl MOD61_021D8228 + mov r0, #0 + strh r0, [r4, #8] + mov r0, #1 + pop {r4, pc} +_021D7B7A: + ldrh r0, [r4, #8] + add r0, r0, #1 + strh r0, [r4, #8] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD61_021D7B38 + + thumb_func_start MOD61_021D7B84 +MOD61_021D7B84: ; 0x021D7B84 + push {r4, lr} + add r4, r0, #0 + bl MOD61_021D83E8 + add r0, r4, #0 + add r0, #0x24 + beq _021D7B98 + ldr r0, [r4, #0x20] + bl FUN_0200A8B8 +_021D7B98: + add r0, r4, #0 + bl MOD61_021D80F4 + add r0, r4, #0 + bl MOD61_021D7FB4 + add r0, r4, #0 + bl MOD61_021D7CB4 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD61_021D7B84 + + thumb_func_start MOD61_021D7BB0 +MOD61_021D7BB0: ; 0x021D7BB0 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7BCC ; =0x021D84A0 + add r3, sp, #0 + mov r2, #5 +_021D7BBA: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7BBA + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7BCC: .word 0x021D84A0 + thumb_func_end MOD61_021D7BB0 + + thumb_func_start MOD61_021D7BD0 +MOD61_021D7BD0: ; 0x021D7BD0 + push {r4, r5, lr} + sub sp, #0x9c + add r4, r0, #0 + bl MOD61_021D7BB0 + ldr r0, [r4] + bl FUN_02016B94 + add r3, sp, #0 + ldr r5, _021D7CAC ; =0x021D8434 + str r0, [r4, #0x18] + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D7CB0 ; =0x021D84C8 + add r3, sp, #0x10 + mov r2, #0x11 +_021D7BFC: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7BFC + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + ldr r0, [r4, #0x18] + add r2, sp, #0x10 + add r3, r1, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #1 + add r2, sp, #0x2c + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #2 + add r2, sp, #0x48 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #3 + add r2, sp, #0x64 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #4 + add r2, sp, #0x80 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x18] + mov r1, #0 + bl FUN_02018744 + ldr r0, [r4, #0x18] + mov r1, #1 + bl FUN_02018744 + ldr r0, [r4, #0x18] + mov r1, #2 + bl FUN_02018744 + ldr r0, [r4, #0x18] + mov r1, #3 + bl FUN_02018744 + ldr r0, [r4, #0x18] + mov r1, #4 + bl FUN_02018744 + mov r0, #0 + ldr r3, [r4] + mov r1, #0x20 + add r2, r0, #0 + bl FUN_02017F18 + ldr r3, [r4] + mov r0, #1 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r3, [r4] + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r3, [r4] + mov r0, #3 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r3, [r4] + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + add sp, #0x9c + pop {r4, r5, pc} + .align 2, 0 +_021D7CAC: .word 0x021D8434 +_021D7CB0: .word 0x021D84C8 + thumb_func_end MOD61_021D7BD0 + + thumb_func_start MOD61_021D7CB4 +MOD61_021D7CB4: ; 0x021D7CB4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x18] + mov r1, #4 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + mov r1, #0 + bl FUN_020178A0 + ldr r0, [r4, #0x18] + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD61_021D7CB4 + + thumb_func_start MOD61_021D7CE8 +MOD61_021D7CE8: ; 0x021D7CE8 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + add r5, r0, #0 + ldr r0, [r5, #0x1c] + ldr r1, [r5] + ldrb r4, [r0, #0xf] + str r4, [sp, #0x1c] + ldr r0, [sp, #0x1c] + add r4, #0xc + str r0, [sp, #0x20] + add r0, #0x18 + str r0, [sp, #0x20] + mov r0, #0x4f + bl FUN_02006670 + mov r1, #0 + str r1, [sp] + add r6, r0, #0 + ldr r0, [r5] + mov r2, #1 + str r0, [sp, #4] + ldr r0, [r5, #0x18] + mov r3, #5 + bl FUN_0200CB00 + ldrh r0, [r5, #0xa] + mov r1, #0 + mov r2, #0xa + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r5] + mov r3, #6 + str r0, [sp, #4] + ldr r0, [r5, #0x18] + bl FUN_0200CD68 + mov r0, #0x4f + add r1, r4, #0 + bl LoadFromNARC_7 + add r1, r0, #0 + ldr r0, [r5] + bl FUN_020169D8 + add r7, r0, #0 + add r0, r6, #0 + add r1, r4, #0 + add r2, r7, #0 + bl FUN_02006774 + add r0, r7, #0 + add r1, sp, #0x28 + bl FUN_020B0088 + ldr r3, [sp, #0x28] + mov r0, #0 + str r0, [sp] + ldr r2, [r3, #0x14] + ldr r0, [r5, #0x18] + ldr r3, [r3, #0x10] + mov r1, #1 + bl FUN_02017E14 + ldr r3, [sp, #0x28] + mov r0, #0 + str r0, [sp] + ldr r2, [r3, #0x14] + ldr r0, [r5, #0x18] + ldr r3, [r3, #0x10] + mov r1, #4 + bl FUN_02017E14 + add r0, r7, #0 + bl FUN_02016A18 + ldr r1, [sp, #0x1c] + mov r0, #0x4f + bl LoadFromNARC_7 + add r1, r0, #0 + ldr r0, [r5] + bl FUN_020169D8 + add r4, r0, #0 + ldr r1, [sp, #0x1c] + add r0, r6, #0 + add r2, r4, #0 + bl FUN_02006774 + add r0, r4, #0 + add r1, sp, #0x24 + bl FUN_020B0138 + ldr r2, [sp, #0x24] + mov r0, #4 + ldr r1, [r2, #0xc] + ldr r2, [r2, #8] + mov r3, #0 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + bl FUN_02017FB4 + ldr r0, [r5] + bl FUN_02002FD0 + str r0, [r5, #0x30] + ldr r3, [r5] + mov r1, #0 + mov r2, #0xe0 + bl FUN_02003008 + ldr r0, [r5, #0x30] + ldr r3, [r5] + mov r1, #2 + mov r2, #0x60 + bl FUN_02003008 + mov r0, #0x60 + str r0, [sp] + ldr r1, [sp, #0x24] + mov r2, #0 + ldr r0, [r5, #0x30] + ldr r1, [r1, #0xc] + add r3, r2, #0 + bl FUN_02003054 + ldrb r0, [r5, #0xc] + cmp r0, #1 + bne _021D7E00 + mov r0, #0x20 + str r0, [sp] + ldr r1, [sp, #0x24] + ldr r0, [r5, #0x30] + ldr r1, [r1, #0xc] + mov r2, #0 + add r1, #0x60 + mov r3, #0x10 + bl FUN_02003054 +_021D7E00: + mov r0, #2 + str r0, [sp] + mov r0, #0x60 + str r0, [sp, #4] + mov r2, #0 + str r2, [sp, #8] + ldr r0, [r5, #0x30] + ldr r3, [r5] + mov r1, #0x13 + bl FUN_020030E8 + mov r0, #0 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x30 + str r0, [sp, #8] + ldr r0, [r5, #0x30] + ldr r3, [r5] + mov r1, #0xe + mov r2, #6 + bl FUN_020030E8 + mov r0, #0 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x40 + str r0, [sp, #8] + ldr r0, [r5, #0x30] + ldr r3, [r5] + mov r1, #0xe + mov r2, #7 + bl FUN_020030E8 + mov r0, #0 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x50 + str r0, [sp, #8] + ldr r0, [r5, #0x30] + ldr r3, [r5] + mov r1, #0x26 + mov r2, #0x18 + bl FUN_020030E8 + mov r0, #0 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x60 + str r0, [sp, #8] + ldrh r2, [r5, #0xa] + ldr r0, [r5, #0x30] + ldr r3, [r5] + mov r1, #0x26 + add r2, #0x19 + bl FUN_020030E8 + mov r0, #0x10 + mov r1, #0 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r5, #0x30] + add r2, r1, #0 + mov r3, #0x70 + bl FUN_020039E8 + mov r0, #0x10 + str r0, [sp] + mov r2, #0 + str r2, [sp, #4] + ldr r0, [r5, #0x30] + mov r1, #2 + mov r3, #0x30 + bl FUN_020039E8 + ldr r0, [r5, #0x30] + mov r1, #1 + bl FUN_020038F0 + ldr r0, [r5, #0x30] + bl FUN_0200372C + add r0, r4, #0 + bl FUN_02016A18 + ldr r1, [sp, #0x20] + mov r0, #0x4f + bl LoadFromNARC_7 + add r1, r0, #0 + ldr r0, [r5] + bl FUN_02016998 + str r0, [r5, #0x34] + ldr r1, [sp, #0x20] + ldr r2, [r5, #0x34] + add r0, r6, #0 + bl FUN_02006774 + add r1, r5, #0 + ldr r0, [r5, #0x34] + add r1, #0x3c + bl FUN_020B0180 + mov r0, #0x4f + mov r1, #0x24 + bl LoadFromNARC_7 + add r1, r0, #0 + ldr r0, [r5] + bl FUN_02016998 + str r0, [r5, #0x38] + ldr r2, [r5, #0x38] + add r0, r6, #0 + mov r1, #0x24 + bl FUN_02006774 + add r1, r5, #0 + ldr r0, [r5, #0x38] + add r1, #0x40 + bl FUN_020B0180 + add r0, r6, #0 + bl FUN_020066F4 + mov r3, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r5, #0x18] + ldr r2, _021D7FAC ; =0x00002001 + mov r1, #4 + bl FUN_02018540 + mov r2, #0 + ldr r0, [r5, #0x3c] + mov r1, #0x20 + str r1, [sp] + mov r1, #0x18 + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + str r1, [sp, #8] + str r2, [sp, #0xc] + str r2, [sp, #0x10] + ldrh r1, [r0] + add r3, r2, #0 + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #3 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [r5, #0x18] + bl FUN_02018170 + ldr r0, [r5, #0x18] + mov r1, #3 + bl FUN_0201AC68 + ldr r0, [r5, #0x18] + mov r1, #4 + bl FUN_0201AC68 + ldrb r0, [r5, #0xc] + cmp r0, #1 + bne _021D7FA6 + ldr r0, [r5, #0x40] + mov r1, #0x20 + str r1, [sp] + mov r1, #0x18 + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + mov r2, #0 + str r1, [sp, #8] + str r2, [sp, #0xc] + str r2, [sp, #0x10] + ldrh r1, [r0] + add r3, r2, #0 + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #2 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [r5, #0x18] + bl FUN_02018170 + ldr r0, [r5, #0x18] + mov r1, #2 + bl FUN_0201AC68 + mov r2, #0 + strb r2, [r5, #0x14] + ldr r0, _021D7FB0 ; =MOD61_021D7AA8 + add r1, r5, #0 + strb r2, [r5, #0x15] + bl FUN_0200CA44 +_021D7FA6: + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + nop +_021D7FAC: .word 0x00002001 +_021D7FB0: .word MOD61_021D7AA8 + thumb_func_end MOD61_021D7CE8 + + thumb_func_start MOD61_021D7FB4 +MOD61_021D7FB4: ; 0x021D7FB4 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4, #0x38] + bl FUN_02016A18 + ldr r0, [r4, #0x34] + bl FUN_02016A18 + ldr r0, [r4, #0x30] + mov r1, #2 + bl FUN_02003038 + ldr r0, [r4, #0x30] + mov r1, #0 + bl FUN_02003038 + ldr r0, [r4, #0x30] + bl FUN_02002FEC + mov r1, #0 + str r1, [r4, #0x30] + ldr r0, _021D7FF0 ; =0x04000050 + add r2, r1, #0 + mov r3, #0x1f + str r1, [sp] + bl G2x_SetBlendAlpha_ + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021D7FF0: .word 0x04000050 + thumb_func_end MOD61_021D7FB4 + + thumb_func_start MOD61_021D7FF4 +MOD61_021D7FF4: ; 0x021D7FF4 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + mov r3, #3 + add r5, r0, #0 + str r3, [sp] + mov r0, #0x1a + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r2, #1 + add r1, r5, #0 + ldr r0, _021D80DC ; =0x00000397 + str r2, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x18] + add r1, #0x44 + bl FUN_02019064 + mov r0, #8 + str r0, [sp] + mov r0, #0x1a + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r2, #1 + add r1, r5, #0 + ldr r0, _021D80E0 ; =0x0000032F + str r2, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x18] + add r1, #0x54 + mov r3, #3 + bl FUN_02019064 + mov r0, #0xd + str r0, [sp] + mov r0, #0x1a + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r2, #1 + add r1, r5, #0 + ldr r0, _021D80E4 ; =0x000002C7 + str r2, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x18] + add r1, #0x64 + mov r3, #3 + bl FUN_02019064 + mov r0, #0x14 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r2, #1 + add r1, r5, #0 + ldr r0, _021D80E8 ; =0x000002B7 + str r2, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x18] + add r1, #0x74 + mov r3, #0x15 + bl FUN_02019064 + mov r0, #0x14 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r2, #1 + add r1, r5, #0 + ldr r0, _021D80EC ; =0x000002A7 + str r2, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x18] + add r1, #0x84 + mov r3, #3 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _021D80F0 ; =0x00000297 + add r1, r5, #0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x18] + add r1, #0x94 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r4, #0 + add r5, #0x44 + add r6, r4, #0 +_021D80BE: + add r0, r5, #0 + add r1, r6, #0 + bl FUN_02019620 + cmp r4, #5 + bge _021D80D0 + add r0, r5, #0 + bl FUN_020191D0 +_021D80D0: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #6 + blt _021D80BE + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D80DC: .word 0x00000397 +_021D80E0: .word 0x0000032F +_021D80E4: .word 0x000002C7 +_021D80E8: .word 0x000002B7 +_021D80EC: .word 0x000002A7 +_021D80F0: .word 0x00000297 + thumb_func_end MOD61_021D7FF4 + + thumb_func_start MOD61_021D80F4 +MOD61_021D80F4: ; 0x021D80F4 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 + add r5, #0x44 +_021D80FC: + add r0, r5, #0 + bl FUN_02019570 + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #6 + blt _021D80FC + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD61_021D80F4 + + thumb_func_start MOD61_021D8114 +MOD61_021D8114: ; 0x021D8114 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r4, r0, #0 + mov r7, #0 + add r6, r4, #0 + add r5, r7, #0 + add r6, #0x44 +_021D8122: + ldr r0, [r4, #0x1c] + add r0, #0x1a + add r0, r0, r5 + bl FUN_0201385C + cmp r0, #0 + beq _021D8164 + ldr r0, [r4, #0x1c] + ldr r1, [r4] + add r0, #0x1a + add r0, r0, r5 + bl FUN_020137D4 + str r0, [sp, #0x10] + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _021D8220 ; =0x00010200 + ldr r2, [sp, #0x10] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r0, r6, #0 + mov r1, #1 + mov r3, #0 + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_020191D0 +_021D8164: + add r7, r7, #1 + add r5, #8 + add r6, #0x10 + cmp r7, #3 + blt _021D8122 + ldrb r0, [r4, #0xc] + cmp r0, #1 + bne _021D81F8 + ldr r2, _021D8224 ; =0x00000169 + ldr r3, [r4] + mov r0, #1 + mov r1, #0x1a + bl FUN_0200A86C + str r0, [r4, #0x20] + ldr r1, [r4] + mov r0, #0x10 + bl FUN_020219F4 + add r5, r0, #0 + add r0, r4, #0 + str r0, [sp, #0x18] + add r0, #0x44 + mov r6, #0 + str r0, [sp, #0x18] +_021D8196: + add r0, r5, #0 + bl FUN_02021A4C + ldr r0, [r4, #0x20] + add r1, r6, #0 + add r2, r5, #0 + bl FUN_0200A8E0 + mov r0, #1 + add r1, r5, #0 + mov r2, #0 + bl FUN_02002E14 + mov r1, #0x40 + sub r7, r1, r0 + add r0, r6, #3 + lsl r0, r0, #4 + str r0, [sp, #0x14] + mov r0, #2 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _021D8220 ; =0x00010200 + lsr r3, r7, #0x1f + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r3, r7, r3 + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x18] + add r2, r5, #0 + add r0, r0, r1 + mov r1, #1 + asr r3, r3, #1 + bl FUN_0201BDE0 + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x18] + add r0, r0, r1 + bl FUN_020191D0 + add r6, r6, #1 + cmp r6, #2 + blt _021D8196 + add r0, r5, #0 + bl FUN_02021A20 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} +_021D81F8: + mov r0, #2 + str r0, [sp] + mov r3, #0 + ldr r0, _021D8220 ; =0x00010200 + str r3, [sp, #4] + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r2, [r4, #0x1c] + add r0, r4, #0 + ldr r2, [r2, #0x10] + add r0, #0x74 + mov r1, #1 + bl FUN_0201BDE0 + add r4, #0x74 + add r0, r4, #0 + bl FUN_020191D0 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D8220: .word 0x00010200 +_021D8224: .word 0x00000169 + thumb_func_end MOD61_021D8114 + + thumb_func_start MOD61_021D8228 +MOD61_021D8228: ; 0x021D8228 + push {r4, r5, r6, r7, lr} + sub sp, #0x94 + add r5, r0, #0 + bl FUN_02033F20 + ldrb r0, [r5, #0xc] + cmp r0, #1 + bne _021D823A + b _021D83D4 +_021D823A: + ldr r1, [r5] + mov r0, #0x20 + bl FUN_0201C24C + ldr r0, [r5] + bl FUN_0200BB14 + add r1, r5, #0 + add r1, #0xa8 + str r0, [r1] + add r0, r5, #0 + add r0, #0xa8 + ldr r0, [r0] + bl FUN_0200BB34 + add r1, r5, #0 + add r1, #0xac + add r2, sp, #0x40 + ldr r4, _021D83D8 ; =0x021D8480 + str r0, [r1] + ldmia r4!, {r0, r1} + add r3, r2, #0 + stmia r2!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r4!, {r0, r1} + ldr r6, _021D83DC ; =0x021D8454 + stmia r2!, {r0, r1} + add r4, sp, #0x2c + ldmia r6!, {r0, r1} + add r2, r4, #0 + stmia r4!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r4!, {r0, r1} + ldr r0, [r6] + ldr r6, _021D83E0 ; =0x021D8468 + str r0, [r4] + add r4, sp, #0x14 + ldmia r6!, {r0, r1} + stmia r4!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r4!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r4!, {r0, r1} + add r0, r5, #0 + add r0, #0xa8 + add r1, r3, #0 + ldr r0, [r0] + mov r3, #0x20 + bl FUN_0200BB6C + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xa8 + add r1, #0xac + ldr r0, [r0] + ldr r1, [r1] + mov r2, #3 + bl FUN_0200BBF0 + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xa8 + add r1, #0xac + ldr r0, [r0] + ldr r1, [r1] + add r2, sp, #0x14 + bl FUN_0200BF60 + ldr r0, [r5] + bl FUN_0200A064 + bl FUN_0206B888 + mov r1, #0 + add r3, r0, #0 + str r1, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xa8 + add r1, #0xac + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x13 + bl FUN_0200C06C + bl FUN_0206B88C + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xa8 + add r1, #0xac + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x13 + bl FUN_0200C124 + bl FUN_0206B898 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xa8 + add r1, #0xac + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x13 + bl FUN_0200C13C + mov r6, #0 + add r4, r6, #0 + add r7, r6, #0 + str r5, [sp, #0x10] +_021D8338: + ldr r0, [r5, #0x1c] + add r3, r0, r4 + ldrh r1, [r3, #0x14] + ldr r0, _021D83E4 ; =0x0000FFFF + cmp r1, r0 + beq _021D83D4 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r6, [sp, #8] + ldrh r3, [r3, #0x14] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xa8 + add r1, #0xac + lsl r3, r3, #0x14 + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x13 + lsr r3, r3, #0x14 + bl FUN_0200C918 + add r0, sp, #0x60 + mov r1, #0 + mov r2, #0x34 + bl MI_CpuFill8 + mov r0, #0x80 + sub r1, r0, r7 + add r0, sp, #0x60 + strh r1, [r0] + mov r1, #0xa0 + strh r1, [r0, #2] + mov r1, #0 + strh r1, [r0, #4] + strh r1, [r0, #6] + mov r0, #2 + str r0, [sp, #0x8c] + ldr r0, [r5, #0x1c] + add r2, sp, #0x60 + add r0, r0, r4 + ldrh r0, [r0, #0x14] + lsl r0, r0, #0x10 + lsr r0, r0, #0x1c + str r0, [sp, #0x6c] + add r0, r1, #0 + str r0, [sp, #0x90] + mov r0, #1 + str r0, [sp, #0x70] + add r0, r1, #0 + str r0, [sp, #0x78] + str r0, [sp, #0x7c] + str r0, [sp, #0x80] + sub r0, r1, #1 + str r0, [sp, #0x84] + sub r0, r1, #1 + str r0, [sp, #0x88] + add r0, r5, #0 + add r1, r5, #0 + str r6, [sp, #0x74] + add r0, #0xa8 + add r1, #0xac + ldr r0, [r0] + ldr r1, [r1] + bl FUN_0200C154 + ldr r1, [sp, #0x10] + add r6, r6, #1 + add r1, #0xb0 + str r0, [r1] + ldr r0, [sp, #0x10] + add r4, r4, #2 + add r0, r0, #4 + add r7, #0x28 + str r0, [sp, #0x10] + cmp r6, #3 + blt _021D8338 +_021D83D4: + add sp, #0x94 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D83D8: .word 0x021D8480 +_021D83DC: .word 0x021D8454 +_021D83E0: .word 0x021D8468 +_021D83E4: .word 0x0000FFFF + thumb_func_end MOD61_021D8228 + + thumb_func_start MOD61_021D83E8 +MOD61_021D83E8: ; 0x021D83E8 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldrb r0, [r6, #0xc] + cmp r0, #0 + bne _021D8428 + mov r4, #0 + add r5, r6, #0 +_021D83F6: + add r0, r5, #0 + add r0, #0xb0 + ldr r0, [r0] + cmp r0, #0 + beq _021D8404 + bl FUN_0200C3DC +_021D8404: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #3 + blt _021D83F6 + add r0, r6, #0 + add r1, r6, #0 + add r0, #0xa8 + add r1, #0xac + ldr r0, [r0] + ldr r1, [r1] + bl FUN_0200C398 + add r6, #0xa8 + ldr r0, [r6] + bl FUN_0200BD04 + bl FUN_0201C29C +_021D8428: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD61_021D83E8 + + .section .rodata + ; 0x021D842C + .incbin "baserom.nds", 0x2AE94C, 0x128 diff --git a/arm9/modules/62/asm/module_62.s b/arm9/modules/62/asm/module_62.s new file mode 100644 index 00000000..ced7fa63 --- /dev/null +++ b/arm9/modules/62/asm/module_62.s @@ -0,0 +1,7543 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD62_0222D5C0 +MOD62_0222D5C0: ; 0x0222D5C0 + ldr r3, _0222D5C8 ; =HandleLoadOverlay + ldr r0, _0222D5CC ; =SDK_OVERLAY_MODULE_08_ID + mov r1, #2 + bx r3 + .align 2, 0 +_0222D5C8: .word HandleLoadOverlay +_0222D5CC: .word SDK_OVERLAY_MODULE_08_ID + thumb_func_end MOD62_0222D5C0 + + thumb_func_start MOD62_0222D5D0 +MOD62_0222D5D0: ; 0x0222D5D0 + add r3, r2, #0 + sub r3, #0xa + strb r3, [r0] + add r3, r1, #0 + sub r3, #0xa + strb r3, [r0, #2] + add r2, #0xa + strb r2, [r0, #1] + add r1, #0xa + strb r1, [r0, #3] + bx lr + .align 2, 0 + thumb_func_end MOD62_0222D5D0 + + thumb_func_start MOD62_0222D5E8 +MOD62_0222D5E8: ; 0x0222D5E8 + mov r1, #0 + strb r1, [r0] + strb r1, [r0, #2] + mov r1, #0xc0 + strb r1, [r0, #1] + mov r1, #0xff + strb r1, [r0, #3] + bx lr + thumb_func_end MOD62_0222D5E8 + + thumb_func_start MOD62_0222D5F8 +MOD62_0222D5F8: ; 0x0222D5F8 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + beq _0222D64C + cmp r2, #1 + bne _0222D628 + ldr r3, _0222D650 ; =0x021C48F8 + mov r1, #0x1c + mov r2, #0x1e + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, r4, #0 + bl FUN_0200C714 + add r1, sp, #0 + add r0, r4, #0 + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r0, r5, #0 + bl MOD62_0222D5E8 + pop {r3, r4, r5, pc} +_0222D628: + add r1, sp, #0 + add r0, r4, #0 + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + mov r2, #0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, r5, #0 + lsl r1, r1, #0x18 + lsl r2, r2, #0x18 + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + bl MOD62_0222D5D0 +_0222D64C: + pop {r3, r4, r5, pc} + nop +_0222D650: .word 0x021C48F8 + thumb_func_end MOD62_0222D5F8 + + thumb_func_start MOD62_0222D654 +MOD62_0222D654: ; 0x0222D654 + push {r3, r4, r5, r6, r7, lr} + mov r4, #0 + add r7, r4, #0 + mov r6, #0xcb + add r5, r0, #0 + sub r7, #0x38 + lsl r6, r6, #2 +_0222D662: + ldr r0, [r5, r6] + cmp r0, #0 + beq _0222D670 + add r1, r7, #0 + mov r2, #0x10 + bl FUN_0200C82C +_0222D670: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #8 + blt _0222D662 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222D654 + + thumb_func_start MOD62_0222D67C +MOD62_0222D67C: ; 0x0222D67C + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r0, [r7, r0] + mov r6, #0 + lsl r0, r0, #3 + add r0, r7, r0 + ldr r4, [r0, #8] + add r5, r7, #0 +_0222D690: + ldrb r1, [r4] + cmp r1, #0 + beq _0222D6CE + mov r0, #0xca + lsl r0, r0, #2 + strb r1, [r5, r0] + ldrb r1, [r4, #1] + add r0, r0, #1 + strb r1, [r5, r0] + ldrb r1, [r4, #2] + ldr r0, _0222D6E8 ; =0x0000032A + strb r1, [r5, r0] + lsl r1, r6, #0x18 + add r0, r7, #0 + lsr r1, r1, #0x18 + bl MOD62_0222D9A0 + mov r0, #0x33 + mov r1, #0xcb + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + mov r2, #0 + bl MOD62_0222D5F8 + mov r0, #0xc9 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r5, r0] + b _0222D6DA +_0222D6CE: + mov r0, #0xc9 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r0, #4 + strb r1, [r5, r0] +_0222D6DA: + add r6, r6, #1 + add r4, r4, #3 + add r5, #0x10 + cmp r6, #8 + blt _0222D690 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222D6E8: .word 0x0000032A + thumb_func_end MOD62_0222D67C + + thumb_func_start MOD62_0222D6EC +MOD62_0222D6EC: ; 0x0222D6EC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r6, r0, #0 + mov r0, #0xc9 + mov r4, #0 + add r3, r6, #0 + lsl r0, r0, #2 +_0222D6FA: + ldr r2, [r3, r0] + cmp r2, #1 + beq _0222D75C + add r0, r6, r1 + mov r1, #0x42 + lsl r1, r1, #4 + ldrb r3, [r0, r1] + lsl r5, r4, #4 + add r0, r1, #0 + add r2, r6, r5 + sub r0, #0xf8 + strb r3, [r2, r0] + add r0, r1, #0 + sub r0, #0xf7 + add r7, r6, r0 + mov r0, #0xbe + sub r1, #0xf6 + strb r0, [r7, r5] + add r0, r6, r1 + mov r1, #0x46 + strb r1, [r0, r5] + str r0, [sp] + add r0, sp, #8 + add r1, sp, #4 + bl FUN_02020AB0 + ldr r0, [sp, #8] + strb r0, [r7, r5] + ldr r1, [sp, #4] + ldr r0, [sp] + strb r1, [r0, r5] + lsl r1, r4, #0x18 + add r0, r6, #0 + lsr r1, r1, #0x18 + bl MOD62_0222D9A0 + lsl r1, r4, #0x18 + add r0, r6, #0 + lsr r1, r1, #0x18 + bl MOD62_0222D788 + mov r0, #0xc9 + mov r2, #1 + add r1, r6, r5 + lsl r0, r0, #2 + str r2, [r1, r0] + add sp, #0xc + add r0, r4, #0 + pop {r4, r5, r6, r7, pc} +_0222D75C: + add r4, r4, #1 + add r3, #0x10 + cmp r4, #8 + blt _0222D6FA + mov r0, #0xff + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222D6EC + + thumb_func_start MOD62_0222D76C +MOD62_0222D76C: ; 0x0222D76C + mov r1, #0xc9 + mov r3, #0 + lsl r1, r1, #2 +_0222D772: + ldr r2, [r0, r1] + cmp r2, #1 + beq _0222D77C + mov r0, #1 + bx lr +_0222D77C: + add r3, r3, #1 + add r0, #0x10 + cmp r3, #8 + blt _0222D772 + mov r0, #0 + bx lr + thumb_func_end MOD62_0222D76C + + thumb_func_start MOD62_0222D788 +MOD62_0222D788: ; 0x0222D788 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0xc9 + add r5, r0, #0 + add r6, r1, #0 + mov r4, #0 + lsl r7, r7, #2 +_0222D794: + ldr r0, [r5, r7] + cmp r0, #1 + bne _0222D7D4 + cmp r4, r6 + bne _0222D7AC + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C6C4 + b _0222D7D4 +_0222D7AC: + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0200C6D8 + add r1, r0, #0 + bne _0222D7C8 + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r1, #1 + bl FUN_0200C6C4 + b _0222D7D4 +_0222D7C8: + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r1, #2 + bl FUN_0200C6C4 +_0222D7D4: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #8 + blt _0222D794 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222D788 + + thumb_func_start MOD62_0222D7E0 +MOD62_0222D7E0: ; 0x0222D7E0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r7, r1, #0 + add r1, r0, #0 + add r1, #0xdc + ldr r4, [r1] + add r1, r0, #0 + add r1, #0xe0 + ldr r5, [r1] + mov r1, #0x5b + str r1, [sp] + add r1, #0xca + str r1, [sp, #4] + mov r1, #0 + str r1, [sp, #8] + mov r1, #1 + str r1, [sp, #0xc] + mov r1, #2 + str r1, [sp, #0x10] + ldr r1, _0222D864 ; =0x0000532D + add r6, r2, #0 + str r1, [sp, #0x14] + add r0, #0xe8 + ldr r0, [r0] + mov r1, #3 + add r2, r4, #0 + add r3, r5, #0 + bl FUN_0200C0DC + add r0, r7, #0 + bl FUN_02085FAC + add r3, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222D868 ; =0x00004E20 + add r1, r5, #0 + add r0, r6, r0 + str r0, [sp, #8] + add r0, r4, #0 + mov r2, #0x5b + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, _0222D86C ; =0x0000564D + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0x5d + bl FUN_0200C124 + mov r3, #1 + ldr r0, _0222D870 ; =0x000059D9 + str r3, [sp] + str r0, [sp, #4] + add r0, r4, #0 + add r1, r5, #0 + mov r2, #0x5b + bl FUN_0200C13C + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222D864: .word 0x0000532D +_0222D868: .word 0x00004E20 +_0222D86C: .word 0x0000564D +_0222D870: .word 0x000059D9 + thumb_func_end MOD62_0222D7E0 + + thumb_func_start MOD62_0222D874 +MOD62_0222D874: ; 0x0222D874 + push {r4, r5, r6, r7, lr} + sub sp, #0x74 + mov r1, #0x26 + lsl r1, r1, #4 + str r0, [sp] + ldr r0, [r0, r1] + cmp r0, #0 + bne _0222D886 + b _0222D994 +_0222D886: + ldr r0, [sp] + mov r7, #0 + str r7, [r0, r1] + add r4, sp, #0x54 + add r5, sp, #0x34 + add r6, r0, #0 +_0222D892: + mov r0, #0xff + str r0, [r4] + str r0, [r5] + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r6, r0] + cmp r0, #0 + beq _0222D8AA + bl FUN_0200C6D8 + str r0, [r4] + str r7, [r5] +_0222D8AA: + add r7, r7, #1 + add r4, r4, #4 + add r5, r5, #4 + add r6, #0x10 + cmp r7, #8 + blt _0222D892 + mov r0, #0 + mov ip, r0 +_0222D8BA: + mov r0, ip + mov r3, #7 + cmp r0, #7 + bge _0222D8EA + add r4, sp, #0x70 + add r5, sp, #0x50 +_0222D8C6: + sub r7, r4, #4 + ldr r2, [r4] + ldr r0, [r7] + cmp r0, r2 + blt _0222D8DE + ldr r1, [r5] + sub r6, r5, #4 + str r0, [r4] + ldr r0, [r6] + str r0, [r5] + str r2, [r7] + str r1, [r6] +_0222D8DE: + sub r3, r3, #1 + mov r0, ip + sub r4, r4, #4 + sub r5, r5, #4 + cmp r3, r0 + bgt _0222D8C6 +_0222D8EA: + mov r0, ip + add r0, r0, #1 + mov ip, r0 + cmp r0, #7 + blt _0222D8BA + mov r3, #0xca + lsl r3, r3, #2 + ldr r0, [sp] + mov r2, #0 + add r1, sp, #0x1c + add r4, r3, #1 + add r5, r3, #2 +_0222D902: + ldrb r6, [r0, r3] + add r2, r2, #1 + strb r6, [r1] + ldrb r6, [r0, r4] + strb r6, [r1, #1] + ldrb r6, [r0, r5] + add r0, #0x10 + strb r6, [r1, #2] + add r1, r1, #3 + cmp r2, #8 + blt _0222D902 + add r3, sp, #0x1c + add r2, sp, #4 + mov r1, #0x18 +_0222D91E: + ldrb r0, [r3] + add r3, r3, #1 + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _0222D91E + ldr r5, [sp] + mov r6, #0 + add r4, sp, #0x34 + add r7, sp, #4 +_0222D932: + ldr r1, [r4] + cmp r1, #0xff + bne _0222D94A + mov r0, #0xca + mov r1, #0 + lsl r0, r0, #2 + strb r1, [r5, r0] + add r0, r0, #1 + strb r1, [r5, r0] + ldr r0, _0222D998 ; =0x0000032A + strb r1, [r5, r0] + b _0222D98A +_0222D94A: + lsl r0, r1, #1 + add r0, r1, r0 + ldrb r1, [r7, r0] + mov r0, #0xca + lsl r0, r0, #2 + strb r1, [r5, r0] + ldr r1, [r4] + lsl r0, r1, #1 + add r0, r1, r0 + add r0, r7, r0 + ldrb r1, [r0, #1] + ldr r0, _0222D99C ; =0x00000329 + strb r1, [r5, r0] + ldr r1, [r4] + lsl r0, r1, #1 + add r0, r1, r0 + add r0, r7, r0 + ldrb r1, [r0, #2] + ldr r0, _0222D998 ; =0x0000032A + strb r1, [r5, r0] + ldr r0, [r4] + lsl r1, r0, #4 + ldr r0, [sp] + add r1, r0, r1 + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r1, r0] + cmp r0, #0 + beq _0222D98A + add r1, r6, #0 + bl FUN_0200C6C4 +_0222D98A: + add r6, r6, #1 + add r4, r4, #4 + add r5, #0x10 + cmp r6, #8 + blt _0222D932 +_0222D994: + add sp, #0x74 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222D998: .word 0x0000032A +_0222D99C: .word 0x00000329 + thumb_func_end MOD62_0222D874 + + thumb_func_start MOD62_0222D9A0 +MOD62_0222D9A0: ; 0x0222D9A0 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r5, r1, #0 + add r1, r0, #0 + add r1, #0xdc + ldr r7, [r1] + add r1, r0, #0 + add r1, #0xe0 + ldr r6, [r1] + mov r1, #0xc9 + lsl r1, r1, #2 + add r2, r0, r1 + lsl r1, r5, #4 + add r4, r2, r1 + ldr r1, [r2, r1] + cmp r1, #1 + bne _0222D9CC + bl ErrorHandling + add sp, #0x34 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_0222D9CC: + ldrb r1, [r4, #4] + add r2, r5, #0 + bl MOD62_0222D7E0 + ldrb r1, [r4, #5] + add r0, sp, #0 + strh r1, [r0] + ldrb r1, [r4, #6] + strh r1, [r0, #2] + mov r1, #0 + strh r1, [r0, #4] + strh r1, [r0, #6] + mov r0, #2 + str r0, [sp, #0x10] + mov r0, #1 + str r0, [sp, #0x2c] + sub r0, r0, #2 + str r1, [sp, #0xc] + str r1, [sp, #0x30] + str r1, [sp, #8] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + ldrb r0, [r4, #4] + bl FUN_02085FAC + ldr r0, _0222DA28 ; =0x00004E20 + add r1, r6, #0 + add r0, r5, r0 + str r0, [sp, #0x14] + ldr r0, _0222DA2C ; =0x0000532D + add r2, sp, #0 + str r0, [sp, #0x18] + ldr r0, _0222DA30 ; =0x0000564D + str r0, [sp, #0x1c] + ldr r0, _0222DA34 ; =0x000059D9 + str r0, [sp, #0x20] + add r0, r7, #0 + bl FUN_0200C154 + str r0, [r4, #8] + bl FUN_0200C5A8 + mov r0, #1 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + nop +_0222DA28: .word 0x00004E20 +_0222DA2C: .word 0x0000532D +_0222DA30: .word 0x0000564D +_0222DA34: .word 0x000059D9 + thumb_func_end MOD62_0222D9A0 + + thumb_func_start MOD62_0222DA38 +MOD62_0222DA38: ; 0x0222DA38 + push {r3, r4, r5, r6, r7, lr} + add r5, r2, #0 + add r6, r1, #0 + mov r1, #0xc9 + add r4, r0, #0 + lsl r7, r5, #4 + add r3, r4, r7 + lsl r1, r1, #2 + ldr r2, [r3, r1] + cmp r2, #0 + bne _0222DA52 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0222DA52: + cmp r6, #3 + bhi _0222DAE2 + add r2, r6, r6 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0222DA62: ; jump table + .short _0222DA6A - _0222DA62 - 2 ; case 0 + .short _0222DAAA - _0222DA62 - 2 ; case 1 + .short _0222DA80 - _0222DA62 - 2 ; case 2 + .short _0222DAAA - _0222DA62 - 2 ; case 3 +_0222DA6A: + add r1, r4, #0 + add r1, #0xd4 + ldr r1, [r1] + cmp r1, #0xff + bne _0222DAE6 + add r4, #0xd4 + add r1, r5, #0 + str r5, [r4] + bl MOD62_0222D788 + b _0222DAE6 +_0222DA80: + add r0, #0xd4 + ldr r0, [r0] + cmp r0, r5 + bne _0222DAE6 + add r0, r1, #0 + add r0, #0xc + add r1, #8 + ldr r0, [r3, r0] + ldr r1, [r3, r1] + mov r2, #1 + bl MOD62_0222D5F8 + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DBCC + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DC48 + b _0222DAE6 +_0222DAAA: + add r1, r4, #0 + add r1, #0xd4 + ldr r1, [r1] + cmp r1, #0xff + bne _0222DAE6 + add r1, r5, #0 + bl MOD62_0222DB38 + mov r1, #0x33 + add r2, r4, r7 + lsl r1, r1, #4 + add r6, r0, #0 + ldr r0, [r2, r1] + sub r1, r1, #4 + ldr r1, [r2, r1] + mov r2, #0 + bl MOD62_0222D5F8 + cmp r6, #0 + bne _0222DADA + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DB78 +_0222DADA: + mov r0, #0xff + add r4, #0xd4 + str r0, [r4] + b _0222DAE6 +_0222DAE2: + bl ErrorHandling +_0222DAE6: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222DA38 + + thumb_func_start MOD62_0222DAEC +MOD62_0222DAEC: ; 0x0222DAEC + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r7, #0xc9 + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_0222DAF8: + ldr r0, [r5, r7] + cmp r0, #1 + bne _0222DB06 + add r0, r6, #0 + add r1, r4, #0 + bl MOD62_0222DB78 +_0222DB06: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #8 + blt _0222DAF8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222DAEC + + thumb_func_start MOD62_0222DB10 +MOD62_0222DB10: ; 0x0222DB10 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0xc9 + add r5, r0, #0 + add r6, r1, #0 + mov r4, #0 + lsl r7, r7, #2 +_0222DB1C: + ldr r0, [r5, r7] + cmp r0, #1 + bne _0222DB2E + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r6, #0 + bl FUN_0200C644 +_0222DB2E: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #8 + blt _0222DB1C + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222DB10 + + thumb_func_start MOD62_0222DB38 +MOD62_0222DB38: ; 0x0222DB38 + push {r3, lr} + lsl r1, r1, #4 + add r2, r0, r1 + mov r0, #0xc9 + lsl r0, r0, #2 + ldr r1, [r2, r0] + cmp r1, #0 + bne _0222DB4C + mov r0, #1 + pop {r3, pc} +_0222DB4C: + add r0, #8 + ldr r0, [r2, r0] + add r1, sp, #0 + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r2, sp, #0 + mov r0, #2 + mov r1, #0 + ldrsh r0, [r2, r0] + ldrsh r1, [r2, r1] + mov r2, #0xbe + mov r3, #0x46 + bl MOD08_0222A02C + cmp r0, #0x3c + bgt _0222DB74 + mov r0, #1 + pop {r3, pc} +_0222DB74: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD62_0222DB38 + + thumb_func_start MOD62_0222DB78 +MOD62_0222DB78: ; 0x0222DB78 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r0, #0xca + add r7, r1, #0 + lsl r0, r0, #2 + lsl r4, r7, #4 + add r6, r5, r0 + ldrb r0, [r6, r4] + bl FUN_02085FAC + add r0, r5, #0 + add r0, #0xe0 + ldr r1, _0222DBC8 ; =0x00004E20 + ldr r0, [r0] + add r1, r7, r1 + bl FUN_0200C358 + mov r0, #0xcb + lsl r0, r0, #2 + add r7, r5, r0 + ldr r0, [r7, r4] + bl FUN_0200C3DC + mov r1, #0 + mov r2, #0xc9 + lsl r2, r2, #2 + str r1, [r7, r4] + add r3, r5, r4 + str r1, [r3, r2] + strb r1, [r6, r4] + add r0, r2, #5 + strb r1, [r3, r0] + add r0, r2, #6 + add r2, #0xc + strb r1, [r3, r0] + ldr r0, [r3, r2] + add r2, r1, #0 + bl MOD62_0222D5D0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222DBC8: .word 0x00004E20 + thumb_func_end MOD62_0222DB78 + + thumb_func_start MOD62_0222DBCC +MOD62_0222DBCC: ; 0x0222DBCC + push {r3, r4, r5, lr} + add r4, r0, #0 + add r5, r1, #0 + bl MOD62_0222DB38 + cmp r0, #0 + bne _0222DBEC + lsl r0, r5, #4 + add r1, r4, r0 + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_0200C90C + pop {r3, r4, r5, pc} +_0222DBEC: + lsl r0, r5, #4 + add r1, r4, r0 + mov r0, #0xcb + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_0200C90C + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD62_0222DBCC + + thumb_func_start MOD62_0222DC00 +MOD62_0222DC00: ; 0x0222DC00 + push {r4, r5, r6, r7} + mov r2, #0xf1 + lsl r2, r2, #2 + ldr r2, [r0, r2] + ldr r4, _0222DC44 ; =0x00000329 + lsl r2, r2, #3 + add r2, r0, r2 + ldr r2, [r2, #8] + mov r1, #0 + add r3, r4, #1 + sub r5, r4, #1 +_0222DC16: + ldrb r7, [r0, r5] + ldrb r6, [r2] + cmp r7, r6 + bne _0222DC2E + ldrb r7, [r0, r4] + ldrb r6, [r2, #1] + cmp r7, r6 + bne _0222DC2E + ldrb r7, [r0, r3] + ldrb r6, [r2, #2] + cmp r7, r6 + beq _0222DC34 +_0222DC2E: + mov r0, #1 + pop {r4, r5, r6, r7} + bx lr +_0222DC34: + add r1, r1, #1 + add r2, r2, #3 + add r0, #0x10 + cmp r1, #8 + blt _0222DC16 + mov r0, #0 + pop {r4, r5, r6, r7} + bx lr + .align 2, 0 +_0222DC44: .word 0x00000329 + thumb_func_end MOD62_0222DC00 + + thumb_func_start MOD62_0222DC48 +MOD62_0222DC48: ; 0x0222DC48 + push {r3, r4, r5, lr} + add r5, r0, #0 + lsl r4, r1, #4 + mov r0, #0xcb + add r1, r5, r4 + lsl r0, r0, #2 + ldr r0, [r1, r0] + add r1, sp, #0 + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r2, sp, #0 + mov r0, #2 + ldrsh r1, [r2, r0] + ldr r0, _0222DC78 ; =0x00000329 + add r3, r5, r4 + strb r1, [r3, r0] + mov r1, #0 + ldrsh r1, [r2, r1] + add r0, r0, #1 + strb r1, [r3, r0] + pop {r3, r4, r5, pc} + nop +_0222DC78: .word 0x00000329 + thumb_func_end MOD62_0222DC48 + + thumb_func_start MOD62_0222DC7C +MOD62_0222DC7C: ; 0x0222DC7C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + mov r3, #0xca + add r7, r0, #0 + lsl r3, r3, #2 + mov r0, #0 + add r1, r7, #0 + add r2, sp, #0 + add r4, r3, #1 + add r5, r3, #2 +_0222DC90: + ldrb r6, [r1, r3] + add r0, r0, #1 + strb r6, [r2] + ldrb r6, [r1, r4] + strb r6, [r2, #1] + ldrb r6, [r1, r5] + add r1, #0x10 + strb r6, [r2, #2] + add r2, r2, #3 + cmp r0, #8 + blt _0222DC90 + ldr r0, [r7] + mov r2, #0xf1 + lsl r2, r2, #2 + ldr r0, [r0, #0x20] + ldr r2, [r7, r2] + add r1, sp, #0 + bl FUN_02029CA4 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222DC7C + + thumb_func_start MOD62_0222DCBC +MOD62_0222DCBC: ; 0x0222DCBC + push {r3, r4, r5, r6} + mov r3, #0xca + lsl r3, r3, #2 + mov r2, #0 + add r4, r3, #1 + add r5, r3, #2 +_0222DCC8: + ldrb r6, [r1, r3] + add r2, r2, #1 + strb r6, [r0] + ldrb r6, [r1, r4] + strb r6, [r0, #1] + ldrb r6, [r1, r5] + add r1, #0x10 + strb r6, [r0, #2] + add r0, r0, #3 + cmp r2, #8 + blt _0222DCC8 + pop {r3, r4, r5, r6} + bx lr + .align 2, 0 + thumb_func_end MOD62_0222DCBC + + thumb_func_start MOD62_0222DCE4 +MOD62_0222DCE4: ; 0x0222DCE4 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r0, r1, #0 + add r1, sp, #0 + add r4, r2, #0 + add r1, #2 + add r2, sp, #0 + add r6, r3, #0 + bl FUN_0200C7A0 + add r1, sp, #0 + mov r0, #0 + ldrsh r2, [r1, r0] + sub r2, r2, r6 + strb r2, [r5] + ldrsh r0, [r1, r0] + add r0, r0, r6 + strb r0, [r5, #1] + mov r0, #2 + ldrsh r2, [r1, r0] + sub r2, r2, r4 + strb r2, [r5, #2] + ldrsh r0, [r1, r0] + add r0, r0, r4 + strb r0, [r5, #3] + add sp, #4 + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD62_0222DCE4 + + thumb_func_start MOD62_0222DD1C +MOD62_0222DD1C: ; 0x0222DD1C + push {r4, lr} + add r4, r0, #0 + mov r0, #2 + mov r1, #0x35 + bl FUN_02011744 + mov r1, #0x8d + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #2 + mov r1, #0x35 + bl FUN_02002C50 + pop {r4, pc} + thumb_func_end MOD62_0222DD1C + + thumb_func_start MOD62_0222DD38 +MOD62_0222DD38: ; 0x0222DD38 + push {r4, lr} + add r4, r0, #0 + mov r0, #2 + bl FUN_02002CF8 + mov r0, #0x8e + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02011870 + mov r0, #9 + lsl r0, r0, #6 + add r0, r4, r0 + bl FUN_0201D5E8 + mov r0, #0x8f + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02011870 + mov r0, #0x93 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_0201D5E8 + mov r0, #0x8d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_020117BC + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_0222DD38 + + thumb_func_start MOD62_0222DD78 +MOD62_0222DD78: ; 0x0222DD78 + push {r3, lr} + sub sp, #0x18 + add r3, r0, #0 + mov r0, #0xe + str r0, [sp] + mov r0, #7 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + mov r0, #2 + str r0, [sp, #0x10] + ldr r0, _0222DDB0 ; =0x00007530 + add r2, r3, #0 + str r0, [sp, #0x14] + add r0, r3, #0 + add r0, #0xe8 + add r2, #0xdc + add r3, #0xe0 + ldr r0, [r0] + ldr r2, [r2] + ldr r3, [r3] + mov r1, #3 + bl FUN_0200C0DC + add sp, #0x18 + pop {r3, pc} + .align 2, 0 +_0222DDB0: .word 0x00007530 + thumb_func_end MOD62_0222DD78 + + thumb_func_start MOD62_0222DDB4 +MOD62_0222DDB4: ; 0x0222DDB4 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl MOD62_0222DD78 + mov r1, #0 + add r0, r4, #0 + mov r2, #0x4e + mov r3, #0xa5 + str r1, [sp] + bl MOD62_0222DE00 + mov r0, #0 + str r0, [sp] + add r0, r4, #0 + mov r1, #1 + mov r2, #0xac + mov r3, #0xa5 + bl MOD62_0222DE00 + add sp, #4 + pop {r3, r4, pc} + thumb_func_end MOD62_0222DDB4 + + thumb_func_start MOD62_0222DDE0 +MOD62_0222DDE0: ; 0x0222DDE0 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x8e + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + bl FUN_020119D0 + mov r0, #0x8f + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_020119D0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD62_0222DDE0 + + thumb_func_start MOD62_0222DE00 +MOD62_0222DE00: ; 0x0222DE00 + push {r4, r5, r6, r7, lr} + sub sp, #0x5c + add r5, r0, #0 + add r4, r1, #0 + str r2, [sp, #0x10] + add r7, r3, #0 + mov r0, #0 + mov r1, #0x1a + mov r2, #8 + mov r3, #0x35 + bl FUN_0200A86C + add r1, r4, #5 + str r0, [sp, #0x14] + bl FUN_0200A914 + str r0, [sp, #0x18] + add r0, sp, #0x1c + bl FUN_0201901C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xe4 + ldr r0, [r0] + add r1, sp, #0x1c + mov r2, #0xa + mov r3, #2 + bl FUN_020190EC + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _0222DEF0 ; =0x000F0D02 + ldr r2, [sp, #0x18] + str r0, [sp, #8] + add r0, sp, #0x1c + mov r1, #2 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + add r0, sp, #0x1c + mov r1, #2 + mov r2, #0x35 + bl FUN_02011898 + mov r3, #9 + lsl r3, r3, #6 + mov r1, #0xc + add r6, r4, #0 + mul r6, r1 + add r3, r5, r3 + mov r1, #1 + mov r2, #2 + add r3, r3, r6 + bl FUN_0201D568 + mov r0, #0x8d + lsl r0, r0, #2 + ldr r0, [r5, r0] + str r0, [sp, #0x2c] + add r0, sp, #0x1c + str r0, [sp, #0x30] + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0200CA40 + str r0, [sp, #0x34] + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + ldr r1, _0222DEF4 ; =0x00007530 + bl FUN_0200C334 + str r0, [sp, #0x38] + mov r0, #0 + mov r1, #0x91 + str r0, [sp, #0x3c] + add r0, r5, r6 + lsl r1, r1, #2 + ldr r0, [r0, r1] + str r0, [sp, #0x40] + ldr r0, [sp, #0x10] + add r7, #0xc0 + str r0, [sp, #0x44] + mov r0, #1 + str r0, [sp, #0x4c] + mov r0, #0x28 + str r0, [sp, #0x50] + mov r0, #2 + str r0, [sp, #0x54] + mov r0, #0x35 + sub r1, #0xc + str r0, [sp, #0x58] + str r7, [sp, #0x48] + add r5, r5, r1 + lsl r4, r4, #2 + add r0, sp, #0x2c + bl FUN_020117E8 + str r0, [r5, r4] + ldr r0, [r5, r4] + ldr r1, [sp, #0x70] + bl FUN_02011AC0 + ldr r0, [sp, #0x18] + bl FUN_02021A20 + ldr r0, [sp, #0x14] + bl FUN_0200A8B8 + add r0, sp, #0x1c + bl FUN_02019178 + add sp, #0x5c + pop {r4, r5, r6, r7, pc} + nop +_0222DEF0: .word 0x000F0D02 +_0222DEF4: .word 0x00007530 + thumb_func_end MOD62_0222DE00 + + thumb_func_start MOD62_0222DEF8 +MOD62_0222DEF8: ; 0x0222DEF8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + mov r6, #0 + add r5, r0, #0 + mov r0, #0x42 + add r3, r1, #0 + add r7, r6, #0 + add r2, r6, #0 + add r4, r6, #0 + lsl r0, r0, #4 +_0222DF0C: + add r1, r5, r2 + add r2, r2, #1 + strb r4, [r1, r0] + cmp r2, #8 + blt _0222DF0C + lsl r0, r3, #3 + str r0, [sp, #4] + add r0, r5, #0 + str r0, [sp] + add r0, #0x68 + str r0, [sp] +_0222DF22: + ldr r0, [sp] + add r1, r4, #0 + bl FUN_02029CF8 + add r1, r5, r4 + add r1, #0x80 + ldrb r1, [r1] + cmp r1, #0 + bne _0222DF38 + cmp r0, #1 + bne _0222DF50 +_0222DF38: + ldr r0, [sp, #4] + add r7, r7, #1 + cmp r7, r0 + ble _0222DF50 + mov r0, #0x42 + add r1, r5, r6 + add r2, r4, #1 + lsl r0, r0, #4 + add r6, r6, #1 + strb r2, [r1, r0] + cmp r6, #8 + bge _0222DF56 +_0222DF50: + add r4, r4, #1 + cmp r4, #0x51 + blt _0222DF22 +_0222DF56: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222DEF8 + + thumb_func_start MOD62_0222DF5C +MOD62_0222DF5C: ; 0x0222DF5C + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r7, r0, #0 + add r0, #0xdc + ldr r6, [r0] + add r0, r7, #0 + add r0, #0xe0 + ldr r5, [r0] + add r0, r7, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r4, #0 + str r0, [sp, #0x18] +_0222DF76: + mov r0, #0x42 + add r1, r7, r4 + lsl r0, r0, #4 + ldrb r0, [r1, r0] + bl FUN_02085FAC + add r3, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222DFF4 ; =0x000061A8 + add r1, r5, #0 + add r0, r4, r0 + str r0, [sp, #8] + add r0, r6, #0 + mov r2, #0x5b + bl FUN_0200C00C + add r4, r4, #1 + cmp r4, #8 + blt _0222DF76 + mov r0, #0x5b + str r0, [sp] + add r0, #0xca + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + mov r0, #2 + str r0, [sp, #0x10] + ldr r0, _0222DFF8 ; =0x000066B4 + mov r1, #3 + str r0, [sp, #0x14] + ldr r0, [sp, #0x18] + add r2, r6, #0 + add r3, r5, #0 + bl FUN_0200C0DC + mov r0, #1 + str r0, [sp] + ldr r0, _0222DFFC ; =0x00006A2C + add r1, r5, #0 + str r0, [sp, #4] + add r0, r6, #0 + mov r2, #0x5b + mov r3, #0xb4 + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, _0222E000 ; =0x00006DB8 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r6, #0 + mov r2, #0x5b + mov r3, #0x58 + bl FUN_0200C13C + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_0222DFF4: .word 0x000061A8 +_0222DFF8: .word 0x000066B4 +_0222DFFC: .word 0x00006A2C +_0222E000: .word 0x00006DB8 + thumb_func_end MOD62_0222DF5C + + thumb_func_start MOD62_0222E004 +MOD62_0222E004: ; 0x0222E004 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x58 + add r5, r0, #0 + add r0, #0xdc + ldr r0, [r0] + mov r4, #0 + str r0, [sp] + add r0, r5, #0 + add r0, #0xe0 + ldr r7, [r0] + add r0, sp, #4 + strh r4, [r0, #0x20] + strh r4, [r0, #0x22] + strh r4, [r0, #0x24] + strh r4, [r0, #0x26] + mov r0, #0x3c + str r0, [sp, #0x2c] + mov r0, #2 + str r0, [sp, #0x34] + mov r0, #1 + str r0, [sp, #0x50] + sub r0, r0, #2 + str r0, [sp, #0x48] + str r0, [sp, #0x4c] + ldr r0, _0222E0B4 ; =0x000066B4 + str r4, [sp, #0x54] + str r0, [sp, #0x3c] + ldr r0, _0222E0B8 ; =0x00006A2C + str r4, [sp, #0x30] + str r0, [sp, #0x40] + ldr r0, _0222E0BC ; =0x00006DB8 + str r0, [sp, #0x44] + mov r0, #0xf9 + lsl r0, r0, #2 + add r6, r5, r0 +_0222E04A: + ldr r0, _0222E0C0 ; =0x000061A8 + add r1, r7, #0 + add r0, r4, r0 + str r0, [sp, #0x38] + ldr r0, [sp] + add r2, sp, #0x24 + bl FUN_0200C154 + add r4, r4, #1 + stmia r6!, {r0} + cmp r4, #8 + blt _0222E04A + ldr r3, _0222E0C4 ; =0x02231158 + add r2, sp, #4 + mov r1, #0x10 +_0222E068: + ldrh r0, [r3] + add r3, r3, #2 + strh r0, [r2] + add r2, r2, #2 + sub r1, r1, #1 + bne _0222E068 + mov r7, #0xf9 + mov r6, #0 + add r4, sp, #4 + lsl r7, r7, #2 +_0222E07C: + mov r2, #2 + ldrsh r2, [r4, r2] + mov r0, #0xf9 + mov r1, #0 + lsl r0, r0, #2 + sub r2, r2, #1 + lsl r2, r2, #0x10 + ldrsh r1, [r4, r1] + ldr r0, [r5, r0] + asr r2, r2, #0x10 + bl FUN_0200C714 + mov r0, #0xf9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0200C5A8 + ldr r0, [r5, r7] + mov r1, #0 + bl FUN_0200C61C + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #8 + blt _0222E07C + add sp, #0x58 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222E0B4: .word 0x000066B4 +_0222E0B8: .word 0x00006A2C +_0222E0BC: .word 0x00006DB8 +_0222E0C0: .word 0x000061A8 +_0222E0C4: .word 0x02231158 + thumb_func_end MOD62_0222E004 + + thumb_func_start MOD62_0222E0C8 +MOD62_0222E0C8: ; 0x0222E0C8 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r7, #0xf9 + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_0222E0D4: + add r0, r6, #0 + add r0, #0xe0 + ldr r1, _0222E0F4 ; =0x000061A8 + ldr r0, [r0] + add r1, r4, r1 + bl FUN_0200C358 + ldr r0, [r5, r7] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #8 + blt _0222E0D4 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E0F4: .word 0x000061A8 + thumb_func_end MOD62_0222E0C8 + + thumb_func_start MOD62_0222E0F8 +MOD62_0222E0F8: ; 0x0222E0F8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r1, #0 + mov r4, #0 + str r0, [sp] + str r4, [sp, #4] + add r5, r7, #0 + add r6, r7, #0 +_0222E108: + mov r0, #0x51 + lsl r0, r0, #2 + ldr r1, [r5, r0] + cmp r1, #0 + beq _0222E120 + add r0, r6, #0 + bl MOD08_02217F08 + cmp r0, #1 + bne _0222E120 + mov r0, #1 + str r0, [sp, #4] +_0222E120: + add r4, r4, #1 + add r5, r5, #4 + add r6, #0x24 + cmp r4, #8 + blt _0222E108 + mov r0, #0x12 + lsl r0, r0, #4 + add r0, r7, r0 + bl MOD08_02217ECC + cmp r0, #1 + bne _0222E160 + mov r3, #0x59 + mov r0, #1 + lsl r3, r3, #2 + str r0, [sp, #4] + ldr r0, [r7, r3] + sub r3, #0x44 + ldrsh r3, [r7, r3] + mov r1, #5 + mov r2, #0 + bl FUN_020179E0 + mov r3, #0x59 + lsl r3, r3, #2 + ldr r0, [r7, r3] + sub r3, #0x42 + ldrsh r3, [r7, r3] + mov r1, #5 + mov r2, #3 + bl FUN_020179E0 +_0222E160: + ldr r0, [sp, #4] + cmp r0, #0 + bne _0222E17C + mov r0, #0x5b + lsl r0, r0, #2 + ldr r0, [r7, r0] + mov r1, #0 + str r1, [r0] + add r0, r7, #0 + bl FUN_02016A18 + ldr r0, [sp] + bl FUN_0200CAB4 +_0222E17C: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222E0F8 + + thumb_func_start MOD62_0222E180 +MOD62_0222E180: ; 0x0222E180 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + str r1, [sp, #0xc] + mov r1, #0x17 + str r0, [sp, #8] + mov r0, #0x35 + lsl r1, r1, #4 + str r2, [sp, #0x10] + bl FUN_02016998 + str r0, [sp, #0x1c] + ldr r0, [sp, #8] + mov r1, #0x59 + add r0, #0xe4 + ldr r2, [r0] + ldr r0, [sp, #0x1c] + lsl r1, r1, #2 + str r2, [r0, r1] + add r4, r0, #0 + add r5, r0, #0 + ldr r0, [sp, #0xc] + mov r1, #0x38 + lsl r0, r0, #4 + neg r0, r0 + str r0, [sp, #0x18] + ldr r0, [sp, #0xc] + ldr r6, [sp, #8] + mul r1, r0 + ldr r0, [sp, #0x10] + mov r7, #0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r1, [sp, #0x14] + str r0, [sp, #0x20] +_0222E1C4: + mov r0, #0xc9 + lsl r0, r0, #2 + ldr r0, [r6, r0] + cmp r0, #0 + bne _0222E1D8 + mov r0, #0x51 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + b _0222E22E +_0222E1D8: + mov r0, #0xcb + lsl r0, r0, #2 + ldr r1, [r6, r0] + mov r0, #0x51 + lsl r0, r0, #2 + str r1, [r4, r0] + add r1, sp, #0x24 + ldr r0, [r4, r0] + add r1, #2 + add r2, sp, #0x24 + bl FUN_0200C7A0 + add r1, sp, #0x24 + mov r0, #0 + ldrsh r3, [r1, r0] + mov r0, #2 + ldrsh r1, [r1, r0] + ldr r0, [sp, #0x18] + ldr r2, [sp, #0x14] + add r0, r3, r0 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + str r0, [sp] + ldr r0, [sp, #0x20] + add r2, r1, r2 + lsl r2, r2, #0x10 + str r0, [sp, #4] + add r0, r5, #0 + asr r2, r2, #0x10 + bl MOD08_02217E80 + mov r1, #0x51 + lsl r1, r1, #2 + ldr r1, [r4, r1] + add r0, r5, #0 + bl MOD08_02217F08 + mov r1, #0x51 + lsl r1, r1, #2 + ldr r1, [r4, r1] + add r0, r5, #0 + bl MOD08_02217F08 +_0222E22E: + add r7, r7, #1 + add r6, #0x10 + add r4, r4, #4 + add r5, #0x24 + cmp r7, #8 + blt _0222E1C4 + mov r1, #0x59 + ldr r0, [sp, #0x1c] + lsl r1, r1, #2 + ldr r0, [r0, r1] + mov r1, #5 + bl FUN_02017B48 + add r4, r0, #0 + mov r1, #0x59 + ldr r0, [sp, #0x1c] + lsl r1, r1, #2 + ldr r0, [r0, r1] + mov r1, #5 + bl FUN_02017B54 + add r3, r0, #0 + ldr r0, [sp, #0xc] + mov r5, #0x37 + lsl r0, r0, #4 + add r0, r3, r0 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + str r0, [sp] + ldr r0, [sp, #0x10] + mov r1, #0x12 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] + lsl r3, r3, #0x10 + ldr r2, [sp, #0xc] + mvn r5, r5 + mul r5, r2 + add r2, r4, r5 + lsl r2, r2, #0x10 + ldr r0, [sp, #0x1c] + lsl r1, r1, #4 + add r0, r0, r1 + lsl r1, r4, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + asr r3, r3, #0x10 + bl MOD08_02217E80 + mov r2, #0x96 + lsl r2, r2, #2 + ldr r0, [sp, #8] + add r1, r2, #0 + add r3, r0, r2 + ldr r0, [sp, #0x1c] + sub r1, #0xec + str r3, [r0, r1] + sub r2, #0xec + ldr r0, [r0, r2] + mov r3, #1 + str r3, [r0] + ldr r0, _0222E2B8 ; =MOD62_0222E0F8 + ldr r1, [sp, #0x1c] + lsl r2, r3, #0xc + bl FUN_0200CA44 + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E2B8: .word MOD62_0222E0F8 + thumb_func_end MOD62_0222E180 + + thumb_func_start MOD62_0222E2BC +MOD62_0222E2BC: ; 0x0222E2BC + push {r3, lr} + sub sp, #8 + mov r2, #2 + mov r1, #0 + ldr r0, _0222E2D8 ; =MOD62_0222E2DC + str r2, [sp] + str r0, [sp, #4] + mov r0, #0x35 + add r3, r1, #0 + bl FUN_02022318 + add sp, #8 + pop {r3, pc} + nop +_0222E2D8: .word MOD62_0222E2DC + thumb_func_end MOD62_0222E2BC + + thumb_func_start MOD62_0222E2DC +MOD62_0222E2DC: ; 0x0222E2DC + push {r3, lr} + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r0, _0222E348 ; =0x04000008 + mov r1, #3 + ldrh r2, [r0] + bic r2, r1 + mov r1, #1 + orr r1, r2 + strh r1, [r0] + add r0, #0x58 + ldrh r2, [r0] + ldr r1, _0222E34C ; =0xFFFFCFFD + and r2, r1 + strh r2, [r0] + add r2, r1, #2 + ldrh r3, [r0] + add r1, r1, #2 + and r3, r2 + mov r2, #0x10 + orr r2, r3 + strh r2, [r0] + ldrh r3, [r0] + ldr r2, _0222E350 ; =0x0000CFFB + and r3, r2 + strh r3, [r0] + ldrh r3, [r0] + sub r2, #0x1c + and r3, r1 + mov r1, #8 + orr r1, r3 + strh r1, [r0] + ldrh r1, [r0] + and r1, r2 + strh r1, [r0] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl G3X_SetFog + mov r0, #0 + ldr r2, _0222E354 ; =0x00007FFF + add r1, r0, #0 + mov r3, #0x3f + str r0, [sp] + bl G3X_SetClearColor + ldr r1, _0222E358 ; =0xBFFF0000 + ldr r0, _0222E35C ; =0x04000580 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_0222E348: .word 0x04000008 +_0222E34C: .word 0xFFFFCFFD +_0222E350: .word 0x0000CFFB +_0222E354: .word 0x00007FFF +_0222E358: .word 0xBFFF0000 +_0222E35C: .word 0x04000580 + thumb_func_end MOD62_0222E2DC + + thumb_func_start MOD62_0222E360 +MOD62_0222E360: ; 0x0222E360 + push {r3, r4, r5, lr} + ldr r3, _0222E398 ; =0x021064B8 + mov r0, #2 + mov r1, #0 + ldr r3, [r3] + lsl r0, r0, #0xe + add r2, r1, #0 + blx r3 + ldr r3, _0222E39C ; =0x021064C0 + mov r1, #0 + add r4, r0, #0 + ldr r3, [r3] + mov r0, #0x80 + add r2, r1, #0 + blx r3 + add r5, r0, #0 + cmp r4, #0 + bne _0222E388 + bl ErrorHandling +_0222E388: + cmp r5, #0 + bne _0222E390 + bl ErrorHandling +_0222E390: + bl FUN_02012CC8 + pop {r3, r4, r5, pc} + nop +_0222E398: .word 0x021064B8 +_0222E39C: .word 0x021064C0 + thumb_func_end MOD62_0222E360 + + thumb_func_start MOD62_0222E3A0 +MOD62_0222E3A0: ; 0x0222E3A0 + push {r3, lr} + bl FUN_020222AC + bl FUN_02013364 + cmp r0, #0 + ble _0222E3B6 + bl FUN_020222AC + bl FUN_020B02C8 +_0222E3B6: + bl FUN_02013388 + mov r0, #1 + mov r1, #0 + bl FUN_020222B4 + pop {r3, pc} + thumb_func_end MOD62_0222E3A0 + + thumb_func_start MOD62_0222E3C4 +MOD62_0222E3C4: ; 0x0222E3C4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x40 + str r1, [sp, #0x18] + str r0, [sp, #0x14] + ldr r1, [sp, #0x58] + add r0, r3, #0 + add r6, r2, #0 + str r3, [sp, #0x1c] + bl MOD62_0222F89C + cmp r0, #3 + bhi _0222E442 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222E3E8: ; jump table + .short _0222E3F0 - _0222E3E8 - 2 ; case 0 + .short _0222E402 - _0222E3E8 - 2 ; case 1 + .short _0222E418 - _0222E3E8 - 2 ; case 2 + .short _0222E42E - _0222E3E8 - 2 ; case 3 +_0222E3F0: + mov r0, #0 + str r0, [sp, #0x24] + mov r0, #4 + str r0, [sp, #0x28] + mov r0, #1 + mov r5, #0xd + mov r4, #6 + str r0, [sp, #0x2c] + b _0222E442 +_0222E402: + mov r0, #2 + str r0, [sp, #0x24] + mov r0, #0 + str r0, [sp, #0x28] + mov r0, #4 + str r0, [sp, #0x2c] + mov r0, #1 + mov r5, #0xb + mov r4, #8 + str r0, [sp, #0x30] + b _0222E442 +_0222E418: + mov r0, #3 + str r0, [sp, #0x24] + mov r0, #0 + str r0, [sp, #0x28] + mov r0, #4 + str r0, [sp, #0x2c] + mov r0, #1 + mov r5, #0xb + mov r4, #8 + str r0, [sp, #0x30] + b _0222E442 +_0222E42E: + mov r0, #2 + str r0, [sp, #0x24] + mov r0, #0 + str r0, [sp, #0x28] + mov r0, #4 + str r0, [sp, #0x2c] + mov r0, #1 + mov r5, #0xb + mov r4, #8 + str r0, [sp, #0x30] +_0222E442: + lsr r0, r4, #0x1f + add r0, r4, r0 + asr r7, r0, #1 + ldr r0, [sp, #0x18] + bl FUN_0201901C + lsl r0, r5, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #9 + str r0, [sp, #4] + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #0xe + str r0, [sp, #0xc] + mov r0, #0xa6 + str r0, [sp, #0x10] + lsl r2, r6, #0x18 + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x18] + lsr r2, r2, #0x18 + mov r3, #0x15 + bl FUN_02019064 + add r0, r7, #0 + mov r1, #0x35 + bl FUN_02012838 + mov r2, #0x67 + ldr r1, [sp, #0x1c] + lsl r2, r2, #2 + str r0, [r1, r2] + mov r0, #0 + mov r1, #0x1a + mov r2, #8 + mov r3, #0x35 + bl FUN_0200A86C + mov r6, #0 + str r0, [sp, #0x20] + cmp r7, #0 + ble _0222E4D0 + add r5, sp, #0x24 +_0222E49A: + ldr r1, [r5] + ldr r0, [sp, #0x20] + lsl r2, r1, #3 + ldr r1, _0222E538 ; =0x02231358 + ldr r1, [r1, r2] + bl FUN_0200A914 + ldr r2, [r5] + add r4, r0, #0 + lsl r3, r2, #3 + ldr r2, _0222E538 ; =0x02231358 + mov r0, #0x67 + add r2, r2, r3 + ldr r1, [sp, #0x1c] + lsl r0, r0, #2 + ldr r0, [r1, r0] + ldr r2, [r2, #4] + add r1, r4, #0 + bl FUN_020128A0 + add r0, r4, #0 + bl FUN_02021A20 + add r6, r6, #1 + add r5, r5, #4 + cmp r6, r7 + blt _0222E49A +_0222E4D0: + ldr r0, [sp, #0x20] + bl FUN_0200A8B8 + mov r1, #0x67 + ldr r0, [sp, #0x1c] + lsl r1, r1, #2 + ldr r0, [r0, r1] + mov r1, #0 + str r0, [sp, #0x34] + add r0, sp, #0x24 + strb r1, [r0, #0x18] + ldr r1, [sp, #0x18] + mov r2, #0xf + str r1, [sp, #0x38] + mov r1, #1 + strb r1, [r0, #0x19] + strb r7, [r0, #0x1a] + ldrb r3, [r0, #0x1b] + bic r3, r2 + strb r3, [r0, #0x1b] + ldrb r3, [r0, #0x1b] + mov r2, #0x30 + bic r3, r2 + strb r3, [r0, #0x1b] + ldrb r3, [r0, #0x1b] + mov r2, #0xc0 + bic r3, r2 + mov r2, #0x40 + orr r2, r3 + strb r2, [r0, #0x1b] + ldr r0, [sp, #0x18] + mov r2, #0x1f + mov r3, #0xd + bl FUN_0200CCA4 + mov r0, #0x35 + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #0x34 + mov r1, #8 + add r3, r2, #0 + bl FUN_02001C14 + mov r2, #0x1a + ldr r1, [sp, #0x1c] + lsl r2, r2, #4 + str r0, [r1, r2] + add sp, #0x40 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E538: .word 0x02231358 + thumb_func_end MOD62_0222E3C4 + + thumb_func_start MOD62_0222E53C +MOD62_0222E53C: ; 0x0222E53C + push {r4, r5} + lsr r5, r0, #0x1f + lsl r4, r0, #0x1e + sub r4, r4, r5 + mov r3, #0x1e + ror r4, r3 + add r4, r5, r4 + mov r3, #0x38 + mul r3, r4 + add r3, #0x28 + strh r3, [r1] + asr r1, r0, #2 + mov r0, #0x35 + mul r0, r1 + add r0, #0x1b + strh r0, [r2] + pop {r4, r5} + bx lr + thumb_func_end MOD62_0222E53C + + thumb_func_start MOD62_0222E560 +MOD62_0222E560: ; 0x0222E560 + push {r4, r5, r6, lr} + sub sp, #0x18 + add r1, r0, #0 + add r1, #0xdc + ldr r4, [r1] + add r1, r0, #0 + add r1, #0xe0 + add r0, #0xe8 + ldr r5, [r1] + ldr r6, [r0] + bl FUN_0206B888 + mov r1, #0x13 + str r1, [sp] + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #0x10] + mov r0, #0xfa + lsl r0, r0, #6 + str r0, [sp, #0x14] + add r0, r6, #0 + mov r1, #2 + add r2, r4, #0 + add r3, r5, #0 + bl FUN_0200C0DC + bl FUN_0206B894 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _0222E5D0 ; =0x00004268 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x13 + bl FUN_0200C124 + bl FUN_0206B8A0 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _0222E5D4 ; =0x00004650 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x13 + bl FUN_0200C13C + add sp, #0x18 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E5D0: .word 0x00004268 +_0222E5D4: .word 0x00004650 + thumb_func_end MOD62_0222E560 + + thumb_func_start MOD62_0222E5D8 +MOD62_0222E5D8: ; 0x0222E5D8 + push {r4, r5, r6, r7, lr} + sub sp, #0x4c + add r5, r0, #0 + ldr r1, [r5] + mov r6, #0 + ldr r0, [r1] + cmp r0, #0 + ble _0222E6C6 + str r6, [sp, #0xc] + add r4, r5, #0 +_0222E5EC: + ldr r0, [sp, #0xc] + add r0, r1, r0 + ldr r7, [r0, #4] + add r0, r7, #0 + bl FUN_0206B6C8 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _0222E6CC ; =0x00003A98 + add r1, r5, #0 + add r0, r6, r0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xdc + add r1, #0xe0 + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x13 + bl FUN_0200C978 + mov r1, #0 + add r0, sp, #0x18 + strh r1, [r0] + strh r1, [r0, #2] + strh r1, [r0, #4] + strh r1, [r0, #6] + mov r0, #0xa + str r0, [sp, #0x20] + add r0, r1, #0 + str r0, [sp, #0x24] + mov r0, #1 + str r0, [sp, #0x28] + mov r0, #2 + str r0, [sp, #0x44] + add r0, r1, #0 + str r0, [sp, #0x48] + ldr r0, _0222E6CC ; =0x00003A98 + add r2, sp, #0x18 + add r0, r6, r0 + str r0, [sp, #0x2c] + mov r0, #0xfa + lsl r0, r0, #6 + str r0, [sp, #0x30] + ldr r0, _0222E6D0 ; =0x00004268 + str r0, [sp, #0x34] + ldr r0, _0222E6D4 ; =0x00004650 + str r0, [sp, #0x38] + sub r0, r1, #1 + str r0, [sp, #0x3c] + sub r0, r1, #1 + str r0, [sp, #0x40] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xdc + add r1, #0xe0 + ldr r0, [r0] + ldr r1, [r1] + bl FUN_0200C154 + mov r1, #0xbf + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r7, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + str r0, [sp, #0x10] + add r0, r7, #0 + mov r1, #0x4c + mov r2, #0 + bl FUN_020671BC + str r0, [sp, #0x14] + add r0, r7, #0 + mov r1, #0x70 + mov r2, #0 + bl FUN_020671BC + add r1, r0, #0 + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x14] + bl FUN_0206B7BC + add r1, r0, #0 + mov r0, #0xbf + lsl r0, r0, #2 + ldr r0, [r4, r0] + ldr r0, [r0] + bl FUN_020202DC + mov r0, #0xbf + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_0200C5C0 + ldr r0, [sp, #0xc] + ldr r1, [r5] + add r0, r0, #4 + str r0, [sp, #0xc] + ldr r0, [r1] + add r6, r6, #1 + add r4, r4, #4 + cmp r6, r0 + blt _0222E5EC +_0222E6C6: + add sp, #0x4c + pop {r4, r5, r6, r7, pc} + nop +_0222E6CC: .word 0x00003A98 +_0222E6D0: .word 0x00004268 +_0222E6D4: .word 0x00004650 + thumb_func_end MOD62_0222E5D8 + + thumb_func_start MOD62_0222E6D8 +MOD62_0222E6D8: ; 0x0222E6D8 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, [r6] + mov r4, #0 + ldr r0, [r0] + cmp r0, #0 + ble _0222E700 + mov r7, #0xbf + add r5, r6, #0 + lsl r7, r7, #2 +_0222E6EC: + ldr r0, [r5, r7] + mov r1, #0 + bl FUN_0200C644 + ldr r0, [r6] + add r4, r4, #1 + ldr r0, [r0] + add r5, r5, #4 + cmp r4, r0 + blt _0222E6EC +_0222E700: + mov r5, #0 + add r4, r6, #0 +_0222E704: + ldr r7, [r4, #4] + cmp r7, #0xff + beq _0222E748 + add r1, sp, #0 + add r0, r5, #0 + add r1, #2 + add r2, sp, #0 + bl MOD62_0222E53C + add r2, sp, #0 + mov r1, #2 + ldrsh r1, [r2, r1] + add r3, r2, #0 + mov r2, #0 + ldrsh r2, [r3, r2] + lsl r0, r7, #2 + add r7, r6, r0 + mov r0, #0xbf + lsl r0, r0, #2 + sub r1, #0x10 + add r2, #0xc + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r7, r0] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C714 + mov r0, #0xbf + lsl r0, r0, #2 + ldr r0, [r7, r0] + mov r1, #1 + bl FUN_0200C644 +_0222E748: + add r5, r5, #1 + add r4, #8 + cmp r5, #0xc + blt _0222E704 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222E6D8 + + thumb_func_start MOD62_0222E754 +MOD62_0222E754: ; 0x0222E754 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, [r6] + mov r4, #0 + ldr r0, [r0] + cmp r0, #0 + ble _0222E77A + mov r7, #0xbf + add r5, r6, #0 + lsl r7, r7, #2 +_0222E768: + ldr r0, [r5, r7] + bl FUN_0200C5A8 + ldr r0, [r6] + add r4, r4, #1 + ldr r0, [r0] + add r5, r5, #4 + cmp r4, r0 + blt _0222E768 +_0222E77A: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222E754 + + thumb_func_start MOD62_0222E77C +MOD62_0222E77C: ; 0x0222E77C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, [r6] + mov r4, #0 + ldr r0, [r0] + cmp r0, #0 + ble _0222E7A2 + mov r7, #0xbf + add r5, r6, #0 + lsl r7, r7, #2 +_0222E790: + ldr r0, [r5, r7] + bl FUN_0200C3DC + ldr r0, [r6] + add r4, r4, #1 + ldr r0, [r0] + add r5, r5, #4 + cmp r4, r0 + blt _0222E790 +_0222E7A2: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222E77C + + thumb_func_start MOD62_0222E7A4 +MOD62_0222E7A4: ; 0x0222E7A4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r6, #0 + add r4, r7, #0 + add r5, r7, #0 +_0222E7AE: + ldr r0, [r4, #8] + bl MOD62_0222F870 + mov r1, #0x9a + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x99 + ldr r1, [r4, #4] + lsl r0, r0, #2 + str r1, [r5, r0] + add r0, r0, #4 + ldr r0, [r5, r0] + cmp r0, #0 + bne _0222E7DC + mov r0, #0x99 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0xff + beq _0222E7DC + add r0, r7, #0 + add r1, r6, #0 + bl MOD62_02230D38 +_0222E7DC: + add r6, r6, #1 + add r4, #8 + add r5, #0xc + cmp r6, #0xc + blt _0222E7AE + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222E7A4 + + thumb_func_start MOD62_0222E7E8 +MOD62_0222E7E8: ; 0x0222E7E8 + push {r3, r4, r5, r6, lr} + sub sp, #0x4c + add r4, r0, #0 + mov r0, #0x35 + bl FUN_0200BB14 + add r2, sp, #0x2c + ldr r5, _0222E868 ; =0x02231138 + str r0, [r4, #8] + ldmia r5!, {r0, r1} + add r3, r2, #0 + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + ldr r6, _0222E86C ; =0x0223110C + stmia r2!, {r0, r1} + add r5, sp, #0x18 + ldmia r6!, {r0, r1} + add r2, r5, #0 + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldr r0, [r6] + add r1, r3, #0 + str r0, [r5] + ldr r0, [r4, #8] + mov r3, #0x20 + bl FUN_0200BB6C + ldr r3, _0222E870 ; =0x02231120 + add r2, sp, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r4, #8] + bl FUN_0200BB34 + str r0, [r4, #0xc] + ldr r0, [r4, #8] + ldr r1, [r4, #0xc] + mov r2, #0x80 + bl FUN_0200BBF0 + cmp r0, #0 + bne _0222E852 + bl ErrorHandling +_0222E852: + ldr r0, [r4, #8] + ldr r1, [r4, #0xc] + add r2, sp, #0 + bl FUN_0200BF60 + cmp r0, #0 + bne _0222E864 + bl ErrorHandling +_0222E864: + add sp, #0x4c + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222E868: .word 0x02231138 +_0222E86C: .word 0x0223110C +_0222E870: .word 0x02231120 + thumb_func_end MOD62_0222E7E8 + + thumb_func_start MOD62_0222E874 +MOD62_0222E874: ; 0x0222E874 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + ldr r1, [r4, #0xc] + bl FUN_0200C398 + ldr r0, [r4, #8] + bl FUN_0200BD04 + pop {r4, pc} + thumb_func_end MOD62_0222E874 + + thumb_func_start MOD62_0222E888 +MOD62_0222E888: ; 0x0222E888 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222E8EC ; =0x0000AFC8 + add r1, r4, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r0, #0xdc + add r1, #0xe0 + mov r2, #0x5b + add r3, r2, #0 + ldr r0, [r0] + ldr r1, [r1] + add r3, #0xae + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, _0222E8F0 ; =0x0000B798 + add r1, r4, #0 + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0xdc + add r1, #0xe0 + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x5b + mov r3, #0xad + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, _0222E8F4 ; =0x0000BB80 + mov r2, #0x5b + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0xdc + add r4, #0xe0 + ldr r0, [r0] + ldr r1, [r4] + mov r3, #0x51 + bl FUN_0200C13C + add sp, #0xc + pop {r3, r4, pc} + nop +_0222E8EC: .word 0x0000AFC8 +_0222E8F0: .word 0x0000B798 +_0222E8F4: .word 0x0000BB80 + thumb_func_end MOD62_0222E888 + + thumb_func_start MOD62_0222E8F8 +MOD62_0222E8F8: ; 0x0222E8F8 + push {r4, r5, r6, r7, lr} + sub sp, #0x64 + ldr r4, _0222E97C ; =0x02231178 + add r6, r0, #0 + add r3, sp, #0 + mov r2, #6 +_0222E904: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _0222E904 + mov r7, #0 + add r4, sp, #0 + add r5, r6, #0 +_0222E912: + ldr r1, [r4] + add r0, sp, #0 + strh r1, [r0, #0x30] + ldr r1, [r4, #4] + add r2, sp, #0x30 + strh r1, [r0, #0x32] + mov r1, #0 + strh r1, [r0, #0x34] + strh r1, [r0, #0x36] + mov r0, #0x28 + str r0, [sp, #0x38] + mov r0, #2 + str r0, [sp, #0x3c] + str r0, [sp, #0x40] + mov r0, #1 + str r0, [sp, #0x5c] + add r0, r1, #0 + str r0, [sp, #0x60] + ldr r0, _0222E980 ; =0x0000AFC8 + str r0, [sp, #0x44] + ldr r0, _0222E984 ; =0x000066B2 + str r0, [sp, #0x48] + ldr r0, _0222E988 ; =0x0000B798 + str r0, [sp, #0x4c] + ldr r0, _0222E98C ; =0x0000BB80 + str r0, [sp, #0x50] + sub r0, r1, #1 + str r0, [sp, #0x54] + sub r0, r1, #1 + str r0, [sp, #0x58] + add r0, r6, #0 + add r1, r6, #0 + add r0, #0xdc + add r1, #0xe0 + ldr r0, [r0] + ldr r1, [r1] + bl FUN_0200C154 + mov r1, #0xc5 + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + ldr r1, [r4, #8] + bl FUN_0200C8D0 + add r7, r7, #1 + add r4, #0xc + add r5, r5, #4 + cmp r7, #4 + blt _0222E912 + add sp, #0x64 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222E97C: .word 0x02231178 +_0222E980: .word 0x0000AFC8 +_0222E984: .word 0x000066B2 +_0222E988: .word 0x0000B798 +_0222E98C: .word 0x0000BB80 + thumb_func_end MOD62_0222E8F8 + + thumb_func_start MOD62_0222E990 +MOD62_0222E990: ; 0x0222E990 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, #0xd8 + ldr r0, [r0] + cmp r0, #0 + beq _0222E9B0 + mov r6, #0xc5 + mov r4, #0 + lsl r6, r6, #2 +_0222E9A2: + ldr r0, [r5, r6] + bl FUN_0200C5A8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0222E9A2 +_0222E9B0: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD62_0222E990 + + thumb_func_start MOD62_0222E9B4 +MOD62_0222E9B4: ; 0x0222E9B4 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0xc5 + add r5, r0, #0 + add r6, r1, #0 + mov r4, #0 + lsl r7, r7, #2 +_0222E9C0: + ldr r0, [r5, r7] + add r1, r6, #0 + bl FUN_0200C644 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0222E9C0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222E9B4 + + thumb_func_start MOD62_0222E9D4 +MOD62_0222E9D4: ; 0x0222E9D4 + push {r4, r5, r6, lr} + mov r6, #0xc5 + add r5, r0, #0 + mov r4, #0 + lsl r6, r6, #2 +_0222E9DE: + ldr r0, [r5, r6] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0222E9DE + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD62_0222E9D4 + + thumb_func_start MOD62_0222E9F0 +MOD62_0222E9F0: ; 0x0222E9F0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + mov r6, #1 + str r6, [sp] + ldr r6, [sp, #0x3c] + add r7, r2, #0 + str r6, [sp, #4] + ldr r6, _0222EA68 ; =0x00002AF8 + add r2, r3, #0 + add r2, r2, r6 + str r2, [sp, #8] + mov r2, #0x5b + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0200C00C + mov r0, #0x5b + str r0, [sp] + ldr r0, [sp, #0x30] + mov r1, #0 + str r0, [sp, #4] + str r1, [sp, #8] + ldr r1, [sp, #0x44] + add r2, r5, #0 + str r1, [sp, #0xc] + ldr r1, [sp, #0x3c] + add r3, r4, #0 + str r1, [sp, #0x10] + add r1, r6, #0 + add r0, r0, r1 + str r0, [sp, #0x14] + ldr r1, [sp, #0x40] + add r0, r7, #0 + bl FUN_0200C0DC + mov r0, #1 + str r0, [sp] + ldr r3, [sp, #0x34] + add r0, r6, #0 + add r0, r3, r0 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x5b + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r3, [sp, #0x38] + add r0, r6, #0 + add r0, r3, r0 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x5b + bl FUN_0200C13C + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222EA68: .word 0x00002AF8 + thumb_func_end MOD62_0222E9F0 + + thumb_func_start MOD62_0222EA6C +MOD62_0222EA6C: ; 0x0222EA6C + push {r4, r5, r6, r7, lr} + sub sp, #0x54 + add r5, r0, #0 + ldr r0, _0222EC14 ; =0x0000011E + add r2, r5, #0 + str r0, [sp] + mov r0, #0xae + str r0, [sp, #4] + mov r3, #0x52 + str r3, [sp, #8] + mov r1, #1 + str r1, [sp, #0xc] + mov r0, #2 + str r0, [sp, #0x10] + str r1, [sp, #0x14] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xdc + add r1, #0xe0 + add r2, #0xe8 + ldr r0, [r0] + ldr r1, [r1] + ldr r2, [r2] + add r3, #0xb8 + bl MOD62_0222E9F0 + ldr r0, _0222EC18 ; =0x00000123 + add r2, r5, #0 + str r0, [sp] + mov r0, #0xb3 + str r0, [sp, #4] + mov r3, #0x57 + str r3, [sp, #8] + mov r1, #1 + str r1, [sp, #0xc] + mov r0, #2 + str r0, [sp, #0x10] + str r1, [sp, #0x14] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xdc + add r1, #0xe0 + add r2, #0xe8 + ldr r0, [r0] + ldr r1, [r1] + ldr r2, [r2] + add r3, #0xbc + bl MOD62_0222E9F0 + mov r6, #0 + add r4, r5, #0 + add r7, sp, #0x18 +_0222EAD4: + mov r0, #0 + strh r0, [r7, #8] + strh r0, [r7, #0xa] + strh r0, [r7, #0xc] + mov r0, #0x9a + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r5, #0 + strh r0, [r7, #0xe] + mov r0, #0x28 + sub r0, r0, r6 + str r0, [sp, #0x28] + mov r0, #0 + str r0, [sp, #0x2c] + mov r0, #1 + str r0, [sp, #0x30] + mov r0, #2 + str r0, [sp, #0x4c] + mov r0, #0 + str r0, [sp, #0x50] + ldr r0, _0222EC1C ; =0x00002C02 + add r1, #0xe0 + str r0, [sp, #0x34] + add r0, #0x14 + str r0, [sp, #0x38] + ldr r0, _0222EC20 ; =0x00002BA6 + add r2, sp, #0x20 + str r0, [sp, #0x3c] + sub r0, #0x5c + str r0, [sp, #0x40] + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x44] + str r0, [sp, #0x48] + add r0, r5, #0 + add r0, #0xdc + ldr r0, [r0] + ldr r1, [r1] + bl FUN_0200C154 + mov r1, #0x9b + lsl r1, r1, #2 + str r0, [r4, r1] + add r1, sp, #0x1c + add r0, r6, #0 + add r1, #2 + add r2, sp, #0x1c + bl MOD62_0222E53C + mov r0, #0x9b + mov r1, #6 + mov r2, #4 + lsl r0, r0, #2 + ldrsh r1, [r7, r1] + ldrsh r2, [r7, r2] + ldr r0, [r4, r0] + bl FUN_0200C714 + add r6, r6, #1 + add r4, #0xc + cmp r6, #0xc + blt _0222EAD4 + mov r1, #0 + add r0, sp, #0x18 + strh r1, [r0, #8] + strh r1, [r0, #0xa] + strh r1, [r0, #0xc] + strh r1, [r0, #0xe] + mov r0, #0x14 + str r0, [sp, #0x28] + mov r0, #1 + str r1, [sp, #0x2c] + str r1, [sp, #0x50] + ldr r1, _0222EC24 ; =0x00002C0B + str r0, [sp, #0x30] + add r0, r1, #0 + add r0, #0x10 + str r0, [sp, #0x38] + add r0, r1, #0 + mov r2, #2 + sub r0, #0x60 + str r1, [sp, #0x34] + str r0, [sp, #0x3c] + sub r0, r2, #3 + sub r1, #0xbc + str r1, [sp, #0x40] + add r1, r5, #0 + str r2, [sp, #0x4c] + str r0, [sp, #0x44] + str r0, [sp, #0x48] + add r0, r5, #0 + add r0, #0xdc + add r1, #0xe0 + ldr r0, [r0] + ldr r1, [r1] + add r2, sp, #0x20 + bl FUN_0200C154 + mov r1, #0xbd + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xdc + add r1, #0xe0 + ldr r0, [r0] + ldr r1, [r1] + add r2, sp, #0x20 + bl FUN_0200C154 + mov r1, #0xbe + lsl r1, r1, #2 + str r0, [r5, r1] + add r1, #0xcc + ldr r0, [r5, r1] + add r1, sp, #0x18 + add r1, #2 + add r2, sp, #0x18 + bl MOD62_0222E53C + mov r0, #0xbd + lsl r0, r0, #2 + add r3, sp, #0x18 + mov r1, #2 + mov r2, #0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r5, r0] + bl FUN_0200C714 + mov r0, #0xbe + lsl r0, r0, #2 + add r3, sp, #0x18 + mov r1, #2 + mov r2, #0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r5, r0] + bl FUN_0200C714 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x19 + bl FUN_0200C6C4 + mov r0, #0xbd + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C5C0 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C5C0 + add sp, #0x54 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222EC14: .word 0x0000011E +_0222EC18: .word 0x00000123 +_0222EC1C: .word 0x00002C02 +_0222EC20: .word 0x00002BA6 +_0222EC24: .word 0x00002C0B + thumb_func_end MOD62_0222EA6C + + thumb_func_start MOD62_0222EC28 +MOD62_0222EC28: ; 0x0222EC28 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + bl MOD62_0222E7A4 + add r0, r5, #0 + bl MOD62_0222E6D8 + mov r7, #0x9a + lsl r7, r7, #2 + mov r4, #0 + add r6, r7, #4 +_0222EC3E: + ldr r0, [r5, r6] + cmp r0, #0 + beq _0222EC4A + ldr r1, [r5, r7] + bl FUN_0200C5C0 +_0222EC4A: + add r4, r4, #1 + add r5, #0xc + cmp r4, #0xc + blt _0222EC3E + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222EC28 + + thumb_func_start MOD62_0222EC54 +MOD62_0222EC54: ; 0x0222EC54 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + add r5, r0, #0 + lsl r6, r1, #3 + add r0, r5, r6 + ldr r0, [r0, #4] + lsl r4, r2, #3 + str r1, [sp] + add r1, r5, r4 + ldr r7, [r1, #4] + cmp r0, #0xff + beq _0222EC80 + add r1, r2, #1 + str r1, [sp, #0xc] + ldr r1, [r5] + lsl r0, r0, #2 + add r0, r1, r0 + ldr r0, [r0, #4] + mov r1, #0xa1 + add r2, sp, #0xc + bl FUN_02067830 +_0222EC80: + cmp r7, #0xff + beq _0222EC9A + ldr r0, [sp] + add r2, sp, #8 + add r0, r0, #1 + str r0, [sp, #8] + ldr r1, [r5] + lsl r0, r7, #2 + add r0, r1, r0 + ldr r0, [r0, #4] + mov r1, #0xa1 + bl FUN_02067830 +_0222EC9A: + add r2, r5, #4 + ldr r1, [r2, r6] + ldr r0, [r2, r4] + add r7, r5, #0 + str r0, [r2, r6] + str r1, [r2, r4] + add r7, #8 + ldr r0, [r7, r6] + add r1, sp, #0x10 + bl FUN_02029C74 + add r0, r5, #0 + str r0, [sp, #4] + add r0, #8 + str r0, [sp, #4] + ldr r0, [r0, r4] + ldr r1, [r7, r6] + bl FUN_02029C74 + ldr r1, [sp, #4] + add r0, sp, #0x10 + ldr r1, [r1, r4] + bl FUN_02029C74 + add r0, r5, #0 + bl MOD62_0222EC28 + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222EC54 + + thumb_func_start MOD62_0222ECD4 +MOD62_0222ECD4: ; 0x0222ECD4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r6, #0x9b + mov r4, #0 + add r5, r7, #0 + lsl r6, r6, #2 +_0222ECE0: + ldr r0, [r5, r6] + bl FUN_0200C5A8 + add r4, r4, #1 + add r5, #0xc + cmp r4, #0xc + blt _0222ECE0 + mov r0, #0xbd + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_0200C5A8 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_0200C5A8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222ECD4 + + thumb_func_start MOD62_0222ED04 +MOD62_0222ED04: ; 0x0222ED04 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r6, #0x9b + mov r4, #0 + add r5, r7, #0 + lsl r6, r6, #2 +_0222ED10: + ldr r0, [r5, r6] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, #0xc + cmp r4, #0xc + blt _0222ED10 + mov r0, #0xbd + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_0200C3DC + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_0200C3DC + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222ED04 + + thumb_func_start MOD62_0222ED34 +MOD62_0222ED34: ; 0x0222ED34 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r6, r2, #0 + add r4, r1, #0 + lsl r1, r6, #0x18 + lsr r1, r1, #0x18 + str r1, [sp] + mov r1, #0x35 + str r1, [sp, #4] + mov r1, #1 + add r2, r1, #0 + mov r3, #0xf + add r5, r0, #0 + bl FUN_0200CD68 + add r0, r6, #0 + bl FUN_0200CD64 + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0xc0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x26 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #0 + str r0, [sp] + mov r0, #0x35 + str r0, [sp, #4] + add r0, r5, #0 + mov r1, #1 + mov r2, #0x1f + mov r3, #0xd + bl FUN_0200CB00 + bl FUN_0200CAFC + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0xd0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x26 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #0 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0xe0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0xe + mov r2, #7 + mov r3, #0x35 + bl FUN_020030E8 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD62_0222ED34 + + thumb_func_start MOD62_0222EDBC +MOD62_0222EDBC: ; 0x0222EDBC + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r6, r2, #0 + add r4, r1, #0 + lsl r1, r6, #0x18 + lsr r1, r1, #0x18 + str r1, [sp] + mov r1, #0x35 + str r1, [sp, #4] + mov r1, #4 + mov r2, #1 + mov r3, #0xf + add r5, r0, #0 + bl FUN_0200CD68 + add r0, r6, #0 + bl FUN_0200CD64 + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0xc0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x26 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #0 + str r0, [sp] + mov r0, #0x35 + str r0, [sp, #4] + add r0, r5, #0 + mov r1, #4 + mov r2, #0x1f + mov r3, #0xd + bl FUN_0200CB00 + bl FUN_0200CAFC + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0xd0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x26 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #1 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0xe0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0xe + mov r2, #7 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #1 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x30 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0xe + mov r2, #7 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #1 + str r0, [sp] + mov r0, #0x20 + mov r1, #0x5b + str r0, [sp, #4] + mov r0, #0xb0 + add r2, r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r2, #0xcb + mov r3, #0x35 + bl FUN_020030E8 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD62_0222EDBC + + thumb_func_start MOD62_0222EE78 +MOD62_0222EE78: ; 0x0222EE78 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, _0222EEDC ; =0x0000FFFF + add r4, r0, #0 + cmp r5, r1 + bne _0222EE96 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + bl FUN_020191D0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_0222EE96: + mov r0, #0 + mov r1, #0x1a + mov r2, #8 + mov r3, #0x35 + bl FUN_0200A86C + add r1, r5, #0 + add r6, r0, #0 + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + add r0, r4, #0 + add r2, r5, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_020191D0 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_0200A8B8 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222EEDC: .word 0x0000FFFF + thumb_func_end MOD62_0222EE78 + + thumb_func_start MOD62_0222EEE0 +MOD62_0222EEE0: ; 0x0222EEE0 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r1, #0 + add r7, r0, #0 + add r0, r5, #0 + add r4, r2, #0 + add r6, r3, #0 + bl FUN_0201901C + ldr r0, [sp, #0x28] + lsl r2, r4, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [sp, #0x2c] + lsl r3, r6, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, [sp, #0x30] + add r1, r5, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #0xe + str r0, [sp, #0xc] + ldr r0, [sp, #0x34] + lsr r2, r2, #0x18 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + add r0, r7, #0 + lsr r3, r3, #0x18 + bl FUN_02019064 + mov r1, #1 + add r0, r5, #0 + add r2, r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r5, #0 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + bl FUN_020191D0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222EEE0 + + thumb_func_start MOD62_0222EF44 +MOD62_0222EF44: ; 0x0222EF44 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r1, #0 + add r7, r0, #0 + add r0, r5, #0 + add r4, r2, #0 + add r6, r3, #0 + bl FUN_0201901C + ldr r0, [sp, #0x28] + lsl r2, r4, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [sp, #0x2c] + lsl r3, r6, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, [sp, #0x30] + add r1, r5, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + ldr r0, [sp, #0x38] + lsr r2, r2, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + ldr r0, [sp, #0x34] + lsr r3, r3, #0x18 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + add r0, r7, #0 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + bl FUN_020191D0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222EF44 + + thumb_func_start MOD62_0222EFA0 +MOD62_0222EFA0: ; 0x0222EFA0 + push {r3, r4, lr} + sub sp, #0x14 + mov r1, #2 + add r4, r0, #0 + str r1, [sp] + mov r0, #4 + str r0, [sp, #4] + str r1, [sp, #8] + mov r1, #0x94 + str r1, [sp, #0xc] + mov r0, #0xb + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xe4 + add r1, #0x88 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #3 + bl MOD62_0222EF44 + mov r1, #2 + str r1, [sp] + mov r0, #4 + str r0, [sp, #4] + str r1, [sp, #8] + mov r1, #0x9c + str r1, [sp, #0xc] + mov r0, #0xb + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xe4 + add r1, #0x90 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #0xa + bl MOD62_0222EF44 + mov r0, #5 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r1, #0xa4 + str r1, [sp, #0xc] + mov r0, #0xb + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xe4 + add r1, #0x98 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #3 + bl MOD62_0222EF44 + mov r0, #5 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r1, #0xac + str r1, [sp, #0xc] + mov r0, #0xb + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xe4 + add r1, #0xa0 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #0xa + bl MOD62_0222EF44 + mov r0, #8 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r1, #0xb4 + str r1, [sp, #0xc] + mov r0, #0xb + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xe4 + add r1, #0xa8 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #3 + bl MOD62_0222EF44 + mov r0, #8 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r1, #0xbc + str r1, [sp, #0xc] + mov r0, #0xb + str r0, [sp, #0x10] + add r0, r4, #0 + add r0, #0xe4 + add r1, #0xb0 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #0xa + bl MOD62_0222EF44 + mov r2, #0xb + str r2, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r1, #0xc4 + str r1, [sp, #0xc] + add r0, r4, #0 + str r2, [sp, #0x10] + add r0, #0xe4 + add r1, #0xb8 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #3 + bl MOD62_0222EF44 + mov r2, #0xb + str r2, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r1, #0xcc + str r1, [sp, #0xc] + add r0, r4, #0 + str r2, [sp, #0x10] + add r0, #0xe4 + add r1, #0xc0 + ldr r0, [r0] + add r1, r4, r1 + mov r2, #6 + mov r3, #0xa + bl MOD62_0222EF44 + add sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD62_0222EFA0 + + thumb_func_start MOD62_0222F0D4 +MOD62_0222F0D4: ; 0x0222F0D4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r7, r0, #0 + add r5, r7, #0 + add r5, #0xec + mov r6, #3 + add r5, #0x30 +_0222F0E2: + ldr r0, _0222F160 ; =0x0000041D + add r1, r7, r6 + ldrb r0, [r1, r0] + str r0, [sp, #0x10] + cmp r0, #0 + bne _0222F0FE + add r0, r5, #0 + mov r1, #0xee + bl FUN_02019620 + add r0, r5, #0 + bl FUN_020191D0 + b _0222F152 +_0222F0FE: + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x64 + mov r1, #0x35 + bl FUN_020219F4 + ldr r1, [sp, #0x10] + add r4, r0, #0 + ldr r0, [r7, #0x64] + sub r1, r1, #1 + bl FUN_02029CF4 + add r1, r0, #0 + mov r0, #1 + str r0, [sp] + add r0, r4, #0 + mov r2, #3 + mov r3, #1 + bl FUN_02021B04 + mov r0, #0 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _0222F164 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r2, r4, #0 + mov r3, #7 + bl FUN_0201BDE0 + add r0, r5, #0 + bl FUN_020191D0 + add r0, r4, #0 + bl FUN_02021A20 +_0222F152: + add r6, r6, #1 + add r5, #0x10 + cmp r6, #0xb + blt _0222F0E2 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_0222F160: .word 0x0000041D +_0222F164: .word 0x00010200 + thumb_func_end MOD62_0222F0D4 + + thumb_func_start MOD62_0222F168 +MOD62_0222F168: ; 0x0222F168 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + add r0, r1, #3 + lsl r4, r0, #4 + mov r0, #0x42 + add r1, r6, r1 + lsl r0, r0, #4 + add r5, r6, #0 + ldrb r7, [r1, r0] + add r5, #0xec + cmp r7, #0 + bne _0222F194 + add r0, r5, r4 + mov r1, #0xee + bl FUN_02019620 + add r0, r5, r4 + bl FUN_020191D0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} +_0222F194: + add r0, r5, r4 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x64 + mov r1, #0x35 + bl FUN_020219F4 + str r0, [sp, #0x10] + ldr r0, [r6, #0x64] + sub r1, r7, #1 + bl FUN_02029CF4 + add r1, r0, #0 + mov r3, #1 + ldr r0, [sp, #0x10] + mov r2, #3 + str r3, [sp] + bl FUN_02021B04 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _0222F1E4 ; =0x00010200 + ldr r2, [sp, #0x10] + str r0, [sp, #8] + add r0, r5, r4 + mov r3, #7 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r5, r4 + bl FUN_020191D0 + ldr r0, [sp, #0x10] + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222F1E4: .word 0x00010200 + thumb_func_end MOD62_0222F168 + + thumb_func_start MOD62_0222F1E8 +MOD62_0222F1E8: ; 0x0222F1E8 + push {r3, r4, r5, lr} + add r0, #0xec + add r5, r0, #0 + mov r4, #3 + add r5, #0x30 +_0222F1F2: + add r0, r5, #0 + bl FUN_02019570 + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #0xb + blt _0222F1F2 + pop {r3, r4, r5, pc} + thumb_func_end MOD62_0222F1E8 + + thumb_func_start MOD62_0222F208 +MOD62_0222F208: ; 0x0222F208 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, _0222F26C ; =0x0000FFFF + add r4, r0, #0 + cmp r5, r1 + bne _0222F226 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + bl FUN_020191D0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_0222F226: + mov r0, #0 + mov r1, #0x1a + mov r2, #0xa + mov r3, #0x35 + bl FUN_0200A86C + add r1, r5, #0 + add r6, r0, #0 + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + add r0, r4, #0 + add r2, r5, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_020191D0 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_0200A8B8 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222F26C: .word 0x0000FFFF + thumb_func_end MOD62_0222F208 + + thumb_func_start MOD62_0222F270 +MOD62_0222F270: ; 0x0222F270 + push {r3, lr} + bl FUN_0201E788 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + pop {r3, pc} + thumb_func_end MOD62_0222F270 + + thumb_func_start MOD62_0222F288 +MOD62_0222F288: ; 0x0222F288 + push {lr} + sub sp, #0xc + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x35 + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add sp, #0xc + pop {pc} + .align 2, 0 + thumb_func_end MOD62_0222F288 + + thumb_func_start MOD62_0222F2A8 +MOD62_0222F2A8: ; 0x0222F2A8 + push {lr} + sub sp, #0xc + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x35 + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add sp, #0xc + pop {pc} + thumb_func_end MOD62_0222F2A8 + + thumb_func_start MOD62_0222F2C8 +MOD62_0222F2C8: ; 0x0222F2C8 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xb1 + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xc1 + mov r3, #2 + bl FUN_020068C8 + mov r1, #0 + str r1, [sp] + mov r0, #0x40 + str r0, [sp, #4] + add r0, r4, #0 + str r1, [sp, #8] + add r0, #0xe8 + mov r1, #0x5b + add r2, r1, #0 + ldr r0, [r0] + add r2, #0xc5 + mov r3, #0x35 + bl FUN_020030E8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xb2 + mov r3, #3 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + str r0, [sp, #0xc] + mov r0, #0x5b + add r4, #0xe4 + add r1, r0, #0 + ldr r2, [r4] + add r1, #0xc2 + mov r3, #3 + bl FUN_020068C8 + add sp, #0x10 + pop {r4, pc} + thumb_func_end MOD62_0222F2C8 + + thumb_func_start MOD62_0222F36C +MOD62_0222F36C: ; 0x0222F36C + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xb0 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xc0 + mov r3, #5 + bl FUN_020068C8 + mov r0, #1 + str r0, [sp] + mov r0, #0x40 + str r0, [sp, #4] + mov r0, #0 + mov r1, #0x5b + add r2, r1, #0 + add r4, #0xe8 + str r0, [sp, #8] + ldr r0, [r4] + add r2, #0xc4 + mov r3, #0x35 + bl FUN_020030E8 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_0222F36C + + thumb_func_start MOD62_0222F3D4 +MOD62_0222F3D4: ; 0x0222F3D4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xb0 + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x35 + add r2, r4, #0 + str r0, [sp, #0xc] + mov r0, #0x5b + add r2, #0xe4 + add r1, r0, #0 + ldr r2, [r2] + add r1, #0xbf + mov r3, #7 + bl FUN_020068C8 + mov r0, #1 + str r0, [sp] + mov r0, #0x40 + str r0, [sp, #4] + mov r0, #0 + mov r1, #0x5b + add r2, r1, #0 + add r4, #0xe8 + str r0, [sp, #8] + ldr r0, [r4] + add r2, #0xc4 + mov r3, #0x35 + bl FUN_020030E8 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_0222F3D4 + + thumb_func_start MOD62_0222F43C +MOD62_0222F43C: ; 0x0222F43C + push {r3, r4, r5, lr} + sub sp, #0x18 + add r1, r0, #0 + add r1, #0xdc + ldr r4, [r1] + add r1, r0, #0 + add r1, #0xe0 + ldr r5, [r1] + mov r1, #0x5b + str r1, [sp] + add r1, #0xc7 + str r1, [sp, #4] + mov r1, #0 + str r1, [sp, #8] + mov r1, #3 + str r1, [sp, #0xc] + mov r2, #2 + str r2, [sp, #0x10] + ldr r2, _0222F57C ; =0x000066B2 + add r0, #0xe8 + str r2, [sp, #0x14] + ldr r0, [r0] + add r2, r4, #0 + add r3, r5, #0 + bl FUN_0200C0DC + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222F580 ; =0x000062B9 + mov r2, #0x5b + add r3, r2, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, r5, #0 + add r3, #0xb6 + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, _0222F584 ; =0x00006A29 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0xb1 + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, _0222F588 ; =0x00006DB5 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0x55 + bl FUN_0200C13C + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222F58C ; =0x000062BA + mov r2, #0x5b + add r3, r2, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, r5, #0 + add r3, #0xb7 + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, _0222F590 ; =0x00006A2A + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0xb2 + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, _0222F594 ; =0x00006DB6 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0x56 + bl FUN_0200C13C + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222F598 ; =0x000062B6 + mov r2, #0x5b + add r3, r2, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, r5, #0 + add r3, #0xb3 + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, _0222F59C ; =0x00006A27 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0xaf + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, _0222F5A0 ; =0x00006DB3 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0x53 + bl FUN_0200C13C + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0222F5A4 ; =0x000089C8 + mov r2, #0x5b + add r3, r2, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, r5, #0 + add r3, #0xb5 + bl FUN_0200C00C + mov r0, #1 + str r0, [sp] + ldr r0, _0222F5A8 ; =0x00006A28 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0xb0 + bl FUN_0200C124 + mov r0, #1 + str r0, [sp] + ldr r0, _0222F5AC ; =0x00006DB4 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x5b + mov r3, #0x54 + bl FUN_0200C13C + add sp, #0x18 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222F57C: .word 0x000066B2 +_0222F580: .word 0x000062B9 +_0222F584: .word 0x00006A29 +_0222F588: .word 0x00006DB5 +_0222F58C: .word 0x000062BA +_0222F590: .word 0x00006A2A +_0222F594: .word 0x00006DB6 +_0222F598: .word 0x000062B6 +_0222F59C: .word 0x00006A27 +_0222F5A0: .word 0x00006DB3 +_0222F5A4: .word 0x000089C8 +_0222F5A8: .word 0x00006A28 +_0222F5AC: .word 0x00006DB4 + thumb_func_end MOD62_0222F43C + + thumb_func_start MOD62_0222F5B0 +MOD62_0222F5B0: ; 0x0222F5B0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0xa0 + add r7, r0, #0 + add r0, #0xdc + ldr r6, [r0] + add r0, r7, #0 + add r0, #0xe0 + ldr r5, [r0] + mov r0, #0xf9 + lsl r0, r0, #2 + add r4, r7, r0 + mov r1, #0 + add r2, sp, #0x6c + strh r1, [r2] + strh r1, [r2, #2] + strh r1, [r2, #4] + strh r1, [r2, #6] + mov r0, #0x3c + str r0, [sp, #0x74] + mov r0, #2 + str r0, [sp, #0x7c] + mov r0, #1 + str r1, [sp, #0x9c] + sub r1, r0, #2 + str r0, [sp, #0x98] + str r0, [sp, #0x78] + ldr r0, _0222F6FC ; =0x000062B9 + str r1, [sp, #0x90] + str r0, [sp, #0x80] + ldr r0, _0222F700 ; =0x000066B2 + str r1, [sp, #0x94] + str r0, [sp, #0x84] + ldr r0, _0222F704 ; =0x00006A29 + add r1, r5, #0 + str r0, [sp, #0x88] + ldr r0, _0222F708 ; =0x00006DB5 + str r0, [sp, #0x8c] + add r0, r6, #0 + bl FUN_0200C154 + str r0, [r4, #0x20] + ldr r0, _0222F70C ; =0x000062BA + add r1, r5, #0 + str r0, [sp, #0x80] + ldr r0, _0222F700 ; =0x000066B2 + add r2, sp, #0x6c + str r0, [sp, #0x84] + ldr r0, _0222F710 ; =0x00006A2A + str r0, [sp, #0x88] + ldr r0, _0222F714 ; =0x00006DB6 + str r0, [sp, #0x8c] + add r0, r6, #0 + bl FUN_0200C154 + str r0, [r4, #0x24] + mov r0, #1 + str r0, [sp, #0x98] + str r0, [sp, #0x78] + ldr r0, _0222F718 ; =0x000089C8 + add r1, r5, #0 + str r0, [sp, #0x80] + ldr r0, _0222F700 ; =0x000066B2 + add r2, sp, #0x6c + str r0, [sp, #0x84] + ldr r0, _0222F71C ; =0x00006A28 + str r0, [sp, #0x88] + ldr r0, _0222F720 ; =0x00006DB4 + str r0, [sp, #0x8c] + add r0, r6, #0 + bl FUN_0200C154 + str r0, [r4, #0x28] + mov r0, #1 + str r0, [sp, #0x98] + mov r0, #0 + str r0, [sp, #0x78] + ldr r0, _0222F724 ; =0x000062B6 + add r1, r5, #0 + str r0, [sp, #0x80] + ldr r0, _0222F700 ; =0x000066B2 + add r2, sp, #0x6c + str r0, [sp, #0x84] + ldr r0, _0222F728 ; =0x00006A27 + str r0, [sp, #0x88] + ldr r0, _0222F72C ; =0x00006DB3 + str r0, [sp, #0x8c] + add r0, r6, #0 + bl FUN_0200C154 + str r0, [r4, #0x2c] + add r0, r6, #0 + add r1, r5, #0 + add r2, sp, #0x6c + bl FUN_0200C154 + ldr r3, _0222F730 ; =0x022311A8 + str r0, [r4, #0x30] + add r2, sp, #0x38 + mov r1, #0x1a +_0222F676: + ldrh r0, [r3] + add r3, r3, #2 + strh r0, [r2] + add r2, r2, #2 + sub r1, r1, #1 + bne _0222F676 + ldr r3, _0222F734 ; =0x022311DC + add r2, sp, #4 + mov r1, #0x1a +_0222F688: + ldrh r0, [r3] + add r3, r3, #2 + strh r0, [r2] + add r2, r2, #2 + sub r1, r1, #1 + bne _0222F688 + mov r0, #8 + str r0, [sp] + mov r0, #0x1d + add r4, r7, #0 + lsl r0, r0, #4 + add r7, r7, r0 + add r6, sp, #0x58 + add r4, #0x20 + add r5, sp, #0x24 + add r7, #0x20 +_0222F6A8: + mov r0, #0xf9 + mov r1, #0 + mov r2, #2 + lsl r0, r0, #2 + ldrsh r1, [r6, r1] + ldrsh r2, [r6, r2] + ldr r0, [r4, r0] + bl FUN_0200C714 + mov r0, #0xf9 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200C5A8 + mov r0, #0xf9 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C61C + mov r1, #0xf9 + mov r2, #0 + mov r3, #2 + lsl r1, r1, #2 + ldrsh r2, [r5, r2] + ldrsh r3, [r5, r3] + ldr r1, [r4, r1] + add r0, r7, #0 + bl MOD62_0222DCE4 + ldr r0, [sp] + add r6, r6, #4 + add r0, r0, #1 + add r4, r4, #4 + add r5, r5, #4 + add r7, r7, #4 + str r0, [sp] + cmp r0, #0xd + blt _0222F6A8 + add sp, #0xa0 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222F6FC: .word 0x000062B9 +_0222F700: .word 0x000066B2 +_0222F704: .word 0x00006A29 +_0222F708: .word 0x00006DB5 +_0222F70C: .word 0x000062BA +_0222F710: .word 0x00006A2A +_0222F714: .word 0x00006DB6 +_0222F718: .word 0x000089C8 +_0222F71C: .word 0x00006A28 +_0222F720: .word 0x00006DB4 +_0222F724: .word 0x000062B6 +_0222F728: .word 0x00006A27 +_0222F72C: .word 0x00006DB3 +_0222F730: .word 0x022311A8 +_0222F734: .word 0x022311DC + thumb_func_end MOD62_0222F5B0 + + thumb_func_start MOD62_0222F738 +MOD62_0222F738: ; 0x0222F738 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0xf9 + add r5, r0, #0 + add r6, r1, #0 + mov r4, #0 + lsl r7, r7, #2 +_0222F744: + ldr r0, [r5, r7] + add r1, r6, #0 + bl FUN_0200C644 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xd + blt _0222F744 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222F738 + + thumb_func_start MOD62_0222F758 +MOD62_0222F758: ; 0x0222F758 + bx lr + .align 2, 0 + thumb_func_end MOD62_0222F758 + + thumb_func_start MOD62_0222F75C +MOD62_0222F75C: ; 0x0222F75C + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r6, #0xf9 + mov r4, #8 + add r5, #0x20 + lsl r6, r6, #2 +_0222F768: + ldr r0, [r5, r6] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xd + blt _0222F768 + pop {r4, r5, r6, pc} + thumb_func_end MOD62_0222F75C + + thumb_func_start MOD62_0222F778 +MOD62_0222F778: ; 0x0222F778 + add r1, r0, #0 + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r0, [r1, r0] + ldr r3, _0222F78C ; =FUN_02029C74 + lsl r0, r0, #3 + add r0, r1, r0 + ldr r0, [r0, #8] + add r1, #0x68 + bx r3 + .align 2, 0 +_0222F78C: .word FUN_02029C74 + thumb_func_end MOD62_0222F778 + + thumb_func_start MOD62_0222F790 +MOD62_0222F790: ; 0x0222F790 + mov r1, #0xf1 + add r2, r0, #0 + lsl r1, r1, #2 + ldr r1, [r2, r1] + ldr r3, _0222F7A4 ; =FUN_02029C74 + lsl r1, r1, #3 + add r1, r2, r1 + add r0, #0x68 + ldr r1, [r1, #8] + bx r3 + .align 2, 0 +_0222F7A4: .word FUN_02029C74 + thumb_func_end MOD62_0222F790 + + thumb_func_start MOD62_0222F7A8 +MOD62_0222F7A8: ; 0x0222F7A8 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_0222F7AE: + ldr r0, [r5, #0x64] + add r1, r4, #0 + bl FUN_02029CF4 + add r1, r5, r4 + add r1, #0x80 + add r4, r4, #1 + strb r0, [r1] + cmp r4, #0x51 + blt _0222F7AE + pop {r3, r4, r5, pc} + thumb_func_end MOD62_0222F7A8 + + thumb_func_start MOD62_0222F7C4 +MOD62_0222F7C4: ; 0x0222F7C4 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_0222F7CA: + add r2, r5, r4 + add r2, #0x80 + ldrb r2, [r2] + ldr r0, [r5, #0x64] + add r1, r4, #0 + bl FUN_02029D40 + add r4, r4, #1 + cmp r4, #0x51 + blt _0222F7CA + pop {r3, r4, r5, pc} + thumb_func_end MOD62_0222F7C4 + + thumb_func_start MOD62_0222F7E0 +MOD62_0222F7E0: ; 0x0222F7E0 + push {r3, lr} + mov r0, #7 + str r0, [sp] + ldr r0, _0222F804 ; =0x04000050 + mov r1, #0 + mov r2, #6 + mov r3, #0xb + bl G2x_SetBlendAlpha_ + mov r0, #8 + str r0, [sp] + ldr r0, _0222F808 ; =0x04001050 + mov r1, #0 + mov r2, #0xe + mov r3, #7 + bl G2x_SetBlendAlpha_ + pop {r3, pc} + .align 2, 0 +_0222F804: .word 0x04000050 +_0222F808: .word 0x04001050 + thumb_func_end MOD62_0222F7E0 + + thumb_func_start MOD62_0222F80C +MOD62_0222F80C: ; 0x0222F80C + push {r3, r4, r5, r6, r7, lr} + mov r1, #0xf1 + add r5, r0, #0 + lsl r1, r1, #2 + ldr r0, [r5, r1] + lsl r0, r0, #3 + add r0, r5, r0 + ldr r0, [r0, #4] + cmp r0, #0xff + beq _0222F832 + ldr r2, [r5] + lsl r0, r0, #2 + add r0, r2, r0 + add r1, #0x64 + ldr r0, [r0, #4] + ldr r1, [r5, r1] + bl FUN_02069B88 + pop {r3, r4, r5, r6, r7, pc} +_0222F832: + ldr r1, [r5] + mov r6, #0 + ldr r0, [r1] + cmp r0, #0 + ble _0222F868 + add r4, r6, #0 +_0222F83E: + add r0, r1, r4 + ldr r7, [r0, #4] + mov r1, #0x4c + add r0, r7, #0 + mov r2, #0 + bl FUN_020671BC + cmp r0, #0 + bne _0222F85C + ldr r1, _0222F86C ; =0x00000428 + add r0, r7, #0 + ldr r1, [r5, r1] + bl FUN_02069B88 + pop {r3, r4, r5, r6, r7, pc} +_0222F85C: + ldr r1, [r5] + add r6, r6, #1 + ldr r0, [r1] + add r4, r4, #4 + cmp r6, r0 + blt _0222F83E +_0222F868: + pop {r3, r4, r5, r6, r7, pc} + nop +_0222F86C: .word 0x00000428 + thumb_func_end MOD62_0222F80C + + thumb_func_start MOD62_0222F870 +MOD62_0222F870: ; 0x0222F870 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0 + add r6, r0, #0 + add r5, r7, #0 + add r4, r7, #0 +_0222F87A: + add r0, r6, #0 + add r1, r4, #0 + bl FUN_02029CC8 + bl FUN_02029CE0 + cmp r0, #0 + beq _0222F88C + add r5, r5, #1 +_0222F88C: + add r4, r4, #1 + cmp r4, #8 + blt _0222F87A + cmp r5, #0 + beq _0222F898 + mov r7, #1 +_0222F898: + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD62_0222F870 + + thumb_func_start MOD62_0222F89C +MOD62_0222F89C: ; 0x0222F89C + mov r2, #0xc + mul r2, r1 + add r1, r0, r2 + mov r0, #0x99 + lsl r0, r0, #2 + ldr r2, [r1, r0] + add r0, r0, #4 + ldr r0, [r1, r0] + cmp r2, #0xff + bne _0222F8B8 + cmp r0, #0 + bne _0222F8B8 + mov r0, #0 + bx lr +_0222F8B8: + cmp r2, #0xff + bne _0222F8C4 + cmp r0, #1 + bne _0222F8C4 + mov r0, #1 + bx lr +_0222F8C4: + cmp r2, #0xff + beq _0222F8D0 + cmp r0, #1 + bne _0222F8D0 + mov r0, #2 + bx lr +_0222F8D0: + mov r0, #3 + bx lr + thumb_func_end MOD62_0222F89C + + thumb_func_start MOD62_0222F8D4 +MOD62_0222F8D4: ; 0x0222F8D4 + push {r3, r4} + cmp r2, #0xff + bne _0222F8E6 + mov r2, #0xf6 + lsl r2, r2, #2 + ldr r4, [r0, r2] + sub r2, r2, #4 + str r4, [r0, r2] + b _0222F8EC +_0222F8E6: + mov r4, #0xf5 + lsl r4, r4, #2 + str r2, [r0, r4] +_0222F8EC: + mov r2, #0xf3 + lsl r2, r2, #2 + str r1, [r0, r2] + add r1, r2, #0 + add r1, #0xc + str r3, [r0, r1] + mov r1, #0 + add r2, #0x10 + str r1, [r0, r2] + pop {r3, r4} + bx lr + .align 2, 0 + thumb_func_end MOD62_0222F8D4 + + thumb_func_start MOD62_0222F904 +MOD62_0222F904: ; 0x0222F904 + push {r4, lr} + add r4, r0, #0 + add r0, #0xfc + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0xfc + bl FUN_02019570 + mov r0, #0x1a + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001C5C + mov r0, #0x67 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02012870 + add r4, #0xfc + add r0, r4, #0 + bl FUN_02019178 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_0222F904 + + thumb_func_start MOD62_0222F93C +MOD62_0222F93C: ; 0x0222F93C + push {r3, lr} + mov r1, #1 + mov r2, #0 + mov r3, #3 + bl MOD62_0222F8D4 + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD62_0222F93C + + thumb_func_start MOD62_0222F94C +MOD62_0222F94C: ; 0x0222F94C + push {r4, lr} + add r4, r0, #0 + bl MOD62_0222D874 + add r0, r4, #0 + bl MOD62_0222DC7C + add r0, r4, #0 + bl MOD62_0222EC28 + mov r2, #0 + add r0, r4, #0 + mov r1, #2 + add r3, r2, #0 + bl MOD62_0222F8D4 + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD62_0222F94C + + thumb_func_start MOD62_0222F970 +MOD62_0222F970: ; 0x0222F970 + push {r3, lr} + mov r1, #3 + mov r2, #0 + add r3, r1, #0 + bl MOD62_0222F8D4 + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD62_0222F970 + + thumb_func_start MOD62_0222F980 +MOD62_0222F980: ; 0x0222F980 + push {r3, lr} + mov r1, #4 + mov r2, #0 + mov r3, #3 + bl MOD62_0222F8D4 + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD62_0222F980 + + thumb_func_start MOD62_0222F990 +MOD62_0222F990: ; 0x0222F990 + push {r3, r4, r5, lr} + mov r1, #0xf3 + add r4, r0, #0 + lsl r1, r1, #2 + ldr r1, [r4, r1] + lsl r2, r1, #2 + ldr r1, _0222F9B0 ; =0x02231220 + ldr r1, [r1, r2] + blx r1 + add r4, #0xe0 + add r5, r0, #0 + ldr r0, [r4] + bl FUN_0200BC1C + add r0, r5, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222F9B0: .word 0x02231220 + thumb_func_end MOD62_0222F990 + + thumb_func_start MOD62_0222F9B4 +MOD62_0222F9B4: ; 0x0222F9B4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222FA3C ; =0x021C48B8 + mov r1, #0x10 + ldr r0, [r0, #0x4c] + tst r1, r0 + beq _0222F9D2 + ldr r0, [r4] + mov r1, #0xc + add r0, r0, #1 + str r0, [r4] + bl _s32_div_f + str r1, [r4] + b _0222FA38 +_0222F9D2: + mov r1, #0x20 + tst r1, r0 + beq _0222F9EA + ldr r0, [r4] + cmp r0, #0 + ble _0222F9E4 + sub r0, r0, #1 + str r0, [r4] + b _0222FA38 +_0222F9E4: + mov r0, #0xb + str r0, [r4] + b _0222FA38 +_0222F9EA: + mov r1, #0x40 + tst r1, r0 + beq _0222FA0E + ldr r1, [r4] + asr r0, r1, #1 + lsr r0, r0, #0x1e + add r0, r1, r0 + asr r0, r0, #2 + beq _0222FA0A + sub r0, r1, #4 + mov r1, #0xc + str r0, [r4] + bl _s32_div_f + str r1, [r4] + b _0222FA38 +_0222FA0A: + mov r0, #0 + pop {r4, pc} +_0222FA0E: + mov r1, #0x80 + tst r0, r1 + beq _0222FA34 + ldr r1, [r4] + asr r0, r1, #1 + lsr r0, r0, #0x1e + add r0, r1, r0 + asr r0, r0, #2 + cmp r0, #2 + beq _0222FA30 + add r0, r1, #4 + mov r1, #0xc + str r0, [r4] + bl _s32_div_f + str r1, [r4] + b _0222FA38 +_0222FA30: + mov r0, #0 + pop {r4, pc} +_0222FA34: + mov r0, #0 + pop {r4, pc} +_0222FA38: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0222FA3C: .word 0x021C48B8 + thumb_func_end MOD62_0222F9B4 + + thumb_func_start MOD62_0222FA40 +MOD62_0222FA40: ; 0x0222FA40 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + mov r4, #0 + str r2, [sp] + cmp r1, #0 + bne _0222FA50 + mov r4, #1 +_0222FA50: + mov r0, #0xf1 + lsl r0, r0, #2 + lsl r6, r1, #2 + add r7, r5, r0 + add r1, sp, #4 + ldr r0, [r7, r6] + add r1, #2 + add r2, sp, #4 + bl MOD62_0222E53C + mov r0, #0xbd + add r1, r5, r6 + lsl r0, r0, #2 + ldr r0, [r1, r0] + add r3, sp, #4 + mov r1, #2 + mov r2, #0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + bl FUN_0200C714 + ldr r0, [sp] + cmp r0, #1 + bne _0222FAAE + mov r0, #0xf1 + lsl r0, r0, #2 + add r1, r5, r0 + ldr r0, [r7, r6] + lsl r4, r4, #2 + str r0, [r1, r4] + ldr r0, [r1, r4] + add r1, sp, #4 + add r1, #2 + add r2, sp, #4 + bl MOD62_0222E53C + mov r0, #0xbd + add r1, r5, r4 + lsl r0, r0, #2 + ldr r0, [r1, r0] + add r3, sp, #4 + mov r1, #2 + mov r2, #0 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + bl FUN_0200C714 +_0222FAAE: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD62_0222FA40 + + thumb_func_start MOD62_0222FAB4 +MOD62_0222FAB4: ; 0x0222FAB4 + push {r4, r5, r6, lr} + sub sp, #0x10 + mov r1, #0xf5 + add r4, r0, #0 + lsl r1, r1, #2 + ldr r1, [r4, r1] + cmp r1, #6 + bls _0222FAC6 + b _0222FD4C +_0222FAC6: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222FAD2: ; jump table + .short _0222FAE0 - _0222FAD2 - 2 ; case 0 + .short _0222FBBC - _0222FAD2 - 2 ; case 1 + .short _0222FBCC - _0222FAD2 - 2 ; case 2 + .short _0222FBE0 - _0222FAD2 - 2 ; case 3 + .short _0222FCA2 - _0222FAD2 - 2 ; case 4 + .short _0222FD00 - _0222FAD2 - 2 ; case 5 + .short _0222FD10 - _0222FAD2 - 2 ; case 6 +_0222FAE0: + bl MOD62_0222E560 + add r0, r4, #0 + bl MOD62_0222E5D8 + add r0, r4, #0 + bl MOD62_0222E6D8 + add r0, r4, #0 + bl MOD62_0222F2C8 + add r0, r4, #0 + bl MOD62_0222F36C + add r0, r4, #0 + bl MOD62_0222F3D4 + add r0, r4, #0 + bl MOD62_0222E7A4 + add r0, r4, #0 + bl MOD62_0222EA6C + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + add r1, r4, #0 + str r3, [sp, #8] + mov r0, #0x28 + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + add r1, #0xec + mov r2, #1 + bl MOD62_0222EEE0 + add r0, r4, #0 + bl MOD62_0222D67C + add r0, r4, #0 + mov r1, #1 + bl MOD62_0222DB10 + add r0, r4, #0 + bl MOD62_0222D654 + add r0, r4, #0 + bl MOD62_0222F43C + add r0, r4, #0 + bl MOD62_0222F5B0 + add r0, r4, #0 + bl MOD62_0222E888 + add r0, r4, #0 + bl MOD62_0222E8F8 + add r0, r4, #0 + bl MOD62_0222F778 + add r0, r4, #0 + bl MOD62_0222F7A8 + ldr r1, _0222FD60 ; =0x00000418 + add r0, r4, #0 + ldr r1, [r4, r1] + bl MOD62_0222DEF8 + add r0, r4, #0 + bl MOD62_0222DF5C + add r0, r4, #0 + bl MOD62_0222E004 + add r0, r4, #0 + mov r1, #0 + bl MOD62_0222F738 + add r0, r4, #0 + mov r1, #0 + bl MOD62_0222E9B4 + add r0, r4, #0 + bl MOD62_0222DDB4 + add r0, r4, #0 + mov r1, #0 + bl MOD62_0222DDE0 + add r0, r4, #0 + add r0, #0xec + mov r1, #7 + bl MOD62_0222EE78 + bl MOD62_0222F270 + add r0, r4, #0 + mov r1, #0 + bl MOD62_022300DC + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _0222FD4C +_0222FBBC: + bl MOD62_0222F288 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _0222FD4C +_0222FBCC: + bl FUN_0200E308 + cmp r0, #1 + beq _0222FBD6 + b _0222FD4C +_0222FBD6: + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] +_0222FBE0: + bl FUN_02020AA4 + cmp r0, #1 + bne _0222FBF0 + add r0, r4, #0 + bl MOD62_0222F93C + b _0222FD4C +_0222FBF0: + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r6, [r4, r0] + add r0, r4, r0 + bl MOD62_0222F9B4 + mov r1, #0xf1 + lsl r1, r1, #2 + ldr r5, [r4, r1] + cmp r0, #1 + str r6, [r4, r1] + bne _0222FC4C + add r0, r4, #0 + bl MOD62_0222D874 + add r0, r4, #0 + bl MOD62_0222DC7C + add r0, r4, #0 + bl MOD62_0222EC28 + mov r0, #0xf1 + lsl r0, r0, #2 + str r5, [r4, r0] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD62_0222FA40 + add r0, r4, #0 + bl MOD62_0222DAEC + add r0, r4, #0 + bl MOD62_0222D67C + add r0, r4, #0 + mov r1, #1 + bl MOD62_0222DB10 + add r0, r4, #0 + bl MOD62_0222D654 + ldr r0, _0222FD64 ; =0x000005DC + bl FUN_020054C8 + b _0222FD4C +_0222FC4C: + ldr r0, _0222FD68 ; =0x021C48B8 + ldr r2, [r0, #0x48] + mov r0, #1 + tst r0, r2 + beq _0222FC8E + add r0, r1, #0 + add r0, #0x10 + ldr r0, [r4, r0] + add r1, #0x10 + add r0, r0, #1 + str r0, [r4, r1] + add r0, r4, #0 + add r0, #0xec + mov r1, #8 + bl MOD62_0222EE78 + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r4, #0 + str r0, [sp] + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + add r1, #0xfc + mov r2, #1 + add r3, r4, #0 + bl MOD62_0222E3C4 + ldr r0, _0222FD64 ; =0x000005DC + bl FUN_020054C8 + b _0222FD4C +_0222FC8E: + mov r0, #2 + tst r0, r2 + beq _0222FD4C + mov r0, #5 + add r1, #0x10 + str r0, [r4, r1] + ldr r0, _0222FD6C ; =0x000005DD + bl FUN_020054C8 + b _0222FD4C +_0222FCA2: + mov r0, #0x1a + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02001C78 + add r1, r0, #0 + mov r0, #1 + mvn r0, r0 + cmp r1, r0 + beq _0222FCBE + add r0, r0, #1 + cmp r1, r0 + beq _0222FD4C + b _0222FCD8 +_0222FCBE: + add r0, r4, #0 + bl MOD62_0222F904 + add r0, r4, #0 + add r0, #0xec + mov r1, #7 + bl MOD62_0222EE78 + mov r0, #0xf5 + mov r1, #3 + lsl r0, r0, #2 + str r1, [r4, r0] + b _0222FD4C +_0222FCD8: + cmp r1, #0 + beq _0222FD4C + add r0, r4, #0 + blx r1 + cmp r0, #1 + beq _0222FCEC + add r0, r4, #0 + bl MOD62_0222F904 + b _0222FD4C +_0222FCEC: + add r0, r4, #0 + add r0, #0xec + mov r1, #7 + bl MOD62_0222EE78 + mov r0, #0xf5 + mov r1, #3 + lsl r0, r0, #2 + str r1, [r4, r0] + b _0222FD4C +_0222FD00: + bl MOD62_0222F2A8 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _0222FD4C +_0222FD10: + bl FUN_0200E308 + cmp r0, #1 + bne _0222FD4C + add r0, r4, #0 + add r0, #0xec + bl FUN_02019178 + add r0, r4, #0 + bl MOD62_0222ED04 + add r0, r4, #0 + bl MOD62_0222E77C + add r0, r4, #0 + bl MOD62_0222F75C + add r0, r4, #0 + bl MOD62_0222E9D4 + add r0, r4, #0 + bl MOD62_0222E0C8 + ldr r0, [r4] + mov r1, #0 + bl FUN_02085D9C + add sp, #0x10 + mov r0, #0 + pop {r4, r5, r6, pc} +_0222FD4C: + add r0, r4, #0 + bl MOD62_0222E754 + add r0, r4, #0 + bl MOD62_0222ECD4 + mov r0, #1 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_0222FD60: .word 0x00000418 +_0222FD64: .word 0x000005DC +_0222FD68: .word 0x021C48B8 +_0222FD6C: .word 0x000005DD + thumb_func_end MOD62_0222FAB4 + + thumb_func_start MOD62_0222FD70 +MOD62_0222FD70: ; 0x0222FD70 + push {r3, lr} + cmp r1, #3 + bhi _0222FDA2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222FD82: ; jump table + .short _0222FD8A - _0222FD82 - 2 ; case 0 + .short _0222FD9A - _0222FD82 - 2 ; case 1 + .short _0222FD92 - _0222FD82 - 2 ; case 2 + .short _0222FD9A - _0222FD82 - 2 ; case 3 +_0222FD8A: + mov r1, #1 + bl FUN_0200C61C + pop {r3, pc} +_0222FD92: + mov r1, #2 + bl FUN_0200C61C + pop {r3, pc} +_0222FD9A: + mov r1, #0 + bl FUN_0200C61C + pop {r3, pc} +_0222FDA2: + bl ErrorHandling + pop {r3, pc} + thumb_func_end MOD62_0222FD70 + + thumb_func_start MOD62_0222FDA8 +MOD62_0222FDA8: ; 0x0222FDA8 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + cmp r5, #0 + beq _0222FDCC + add r1, sp, #4 + add r2, sp, #0 + bl FUN_020119A4 + ldr r1, [sp, #4] + ldr r2, [sp] + add r0, r5, #0 + add r1, r1, r4 + add r2, r2, r6 + bl FUN_020118C4 +_0222FDCC: + add sp, #8 + pop {r4, r5, r6, pc} + thumb_func_end MOD62_0222FDA8 + + thumb_func_start MOD62_0222FDD0 +MOD62_0222FDD0: ; 0x0222FDD0 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #3 + beq _0222FDE2 + cmp r0, #6 + beq _0222FDFC + b _0222FE1C +_0222FDE2: + mov r1, #0 + ldr r0, [r4, #8] + sub r2, r1, #1 + bl MOD62_0222FDA8 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_0200C61C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, pc} +_0222FDFC: + ldr r0, [r4, #8] + mov r1, #0 + mov r2, #2 + bl MOD62_0222FDA8 + ldr r0, [r4, #4] + mov r1, #0 + bl FUN_0200C61C + add r0, r5, #0 + bl FUN_0200CAB4 + add r0, r4, #0 + bl FUN_02016A18 + pop {r3, r4, r5, pc} +_0222FE1C: + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD62_0222FDD0 + + thumb_func_start MOD62_0222FE24 +MOD62_0222FE24: ; 0x0222FE24 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #0x35 + mov r1, #0xc + bl FUN_02016998 + add r4, r0, #0 + mov r0, #1 + str r0, [r4] + mov r1, #0 + str r6, [r4, #4] + add r0, r5, #0 + sub r2, r1, #1 + str r5, [r4, #8] + bl MOD62_0222FDA8 + mov r2, #0xfa + ldr r0, _0222FE54 ; =MOD62_0222FDD0 + add r1, r4, #0 + lsl r2, r2, #2 + bl FUN_0200CA44 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222FE54: .word MOD62_0222FDD0 + thumb_func_end MOD62_0222FE24 + + thumb_func_start MOD62_0222FE58 +MOD62_0222FE58: ; 0x0222FE58 + push {r4, r5, r6, lr} + add r4, r2, #0 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + add r6, r1, #0 + cmp r0, #0 + bne _0222FE6C + b _022300A8 +_0222FE6C: + cmp r5, #0x14 + bls _0222FE72 + b _022300A4 +_0222FE72: + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222FE7E: ; jump table + .short _0222FFE6 - _0222FE7E - 2 ; case 0 + .short _0222FFE6 - _0222FE7E - 2 ; case 1 + .short _0222FFE6 - _0222FE7E - 2 ; case 2 + .short _0222FFE6 - _0222FE7E - 2 ; case 3 + .short _0222FFE6 - _0222FE7E - 2 ; case 4 + .short _0222FFE6 - _0222FE7E - 2 ; case 5 + .short _0222FFE6 - _0222FE7E - 2 ; case 6 + .short _0222FFE6 - _0222FE7E - 2 ; case 7 + .short _0222FEA8 - _0222FE7E - 2 ; case 8 + .short _0222FEF2 - _0222FE7E - 2 ; case 9 + .short _0222FF40 - _0222FE7E - 2 ; case 10 + .short _0222FF6E - _0222FE7E - 2 ; case 11 + .short _0222FFAC - _0222FE7E - 2 ; case 12 + .short _02230074 - _0222FE7E - 2 ; case 13 + .short _02230074 - _0222FE7E - 2 ; case 14 + .short _02230074 - _0222FE7E - 2 ; case 15 + .short _02230074 - _0222FE7E - 2 ; case 16 + .short _02230074 - _0222FE7E - 2 ; case 17 + .short _02230074 - _0222FE7E - 2 ; case 18 + .short _02230074 - _0222FE7E - 2 ; case 19 + .short _02230074 - _0222FE7E - 2 ; case 20 +_0222FEA8: + cmp r6, #0 + bne _0222FEE6 + ldr r1, _022300AC ; =0x00000418 + ldr r0, [r4, r1] + cmp r0, #0 + ble _0222FEB6 + b _0222FEBA +_0222FEB6: + add r0, r1, #4 + ldr r0, [r4, r0] +_0222FEBA: + sub r0, r0, #1 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD62_0222E0C8 + ldr r1, _022300AC ; =0x00000418 + add r0, r4, #0 + ldr r1, [r4, r1] + bl MOD62_0222DEF8 + add r0, r4, #0 + bl MOD62_0222DF5C + add r0, r4, #0 + bl MOD62_0222E004 + add r0, r4, #0 + bl MOD62_0222F0D4 + ldr r0, _022300B0 ; =0x000006C5 + bl FUN_020054C8 +_0222FEE6: + ldr r0, _022300B4 ; =0x00000404 + add r1, r6, #0 + ldr r0, [r4, r0] + bl MOD62_0222FD70 + pop {r4, r5, r6, pc} +_0222FEF2: + cmp r6, #0 + bne _0222FF34 + ldr r1, _022300AC ; =0x00000418 + ldr r0, [r4, r1] + add r0, r0, #1 + str r0, [r4, r1] + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl _s32_div_f + ldr r0, _022300AC ; =0x00000418 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD62_0222E0C8 + ldr r1, _022300AC ; =0x00000418 + add r0, r4, #0 + ldr r1, [r4, r1] + bl MOD62_0222DEF8 + add r0, r4, #0 + bl MOD62_0222DF5C + add r0, r4, #0 + bl MOD62_0222E004 + add r0, r4, #0 + bl MOD62_0222F0D4 + ldr r0, _022300B0 ; =0x000006C5 + bl FUN_020054C8 +_0222FF34: + ldr r0, _022300B8 ; =0x00000408 + add r1, r6, #0 + ldr r0, [r4, r0] + bl MOD62_0222FD70 + pop {r4, r5, r6, pc} +_0222FF40: + cmp r6, #0 + bne _0222FF62 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #5 + beq _0222FF58 + mov r1, #5 + str r1, [r4, r0] + ldr r0, _022300BC ; =0x000005DD + bl FUN_020054C8 +_0222FF58: + ldr r0, _022300C0 ; =0x0000040C + mov r1, #0 + ldr r0, [r4, r0] + bl MOD62_0222FE24 +_0222FF62: + ldr r0, _022300C0 ; =0x0000040C + add r1, r6, #0 + ldr r0, [r4, r0] + bl MOD62_0222FD70 + pop {r4, r5, r6, pc} +_0222FF6E: + cmp r6, #0 + bne _0222FF9E + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #6 + beq _0222FF8E + mov r1, #6 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0 + bl MOD62_022300DC + ldr r0, _022300C4 ; =0x000005E2 + bl FUN_020054C8 +_0222FF8E: + mov r0, #0x41 + mov r1, #0x8e + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + bl MOD62_0222FE24 +_0222FF9E: + mov r0, #0x41 + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, r6, #0 + bl MOD62_0222FD70 + pop {r4, r5, r6, pc} +_0222FFAC: + cmp r6, #0 + bne _0222FFDA + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #7 + beq _0222FFCC + mov r1, #7 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0 + bl MOD62_022300DC + ldr r0, _022300BC ; =0x000005DD + bl FUN_020054C8 +_0222FFCC: + ldr r0, _022300C8 ; =0x00000414 + mov r1, #0x8f + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + bl MOD62_0222FE24 +_0222FFDA: + ldr r0, _022300C8 ; =0x00000414 + add r1, r6, #0 + ldr r0, [r4, r0] + bl MOD62_0222FD70 + pop {r4, r5, r6, pc} +_0222FFE6: + cmp r6, #0 + bne _022300A8 + add r0, r4, #0 + bl MOD62_0222D76C + cmp r0, #0 + bne _02230006 + ldr r0, _022300CC ; =0x000005F2 + bl FUN_020054C8 + add r4, #0xec + add r0, r4, #0 + mov r1, #0xf + bl MOD62_0222EE78 + pop {r4, r5, r6, pc} +_02230006: + mov r0, #0x42 + lsl r0, r0, #4 + add r6, r4, r0 + ldrb r1, [r6, r5] + cmp r1, #0 + beq _0223005C + ldr r0, [r4, #0x64] + sub r1, r1, #1 + bl FUN_02029CF4 + cmp r0, #0 + beq _0223005C + lsl r1, r5, #0x18 + add r0, r4, #0 + lsr r1, r1, #0x18 + bl MOD62_0222D6EC + add r1, r4, #0 + add r1, #0xd4 + str r0, [r1] + ldrb r0, [r6, r5] + bl FUN_02085FD0 + add r1, r0, #0 + add r0, r4, #0 + add r0, #0xec + bl MOD62_0222F208 + ldr r0, [r4] + mov r2, #0 + ldrb r1, [r6, r5] + ldr r0, [r0, #0x20] + mvn r2, r2 + bl FUN_02029D44 + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222F168 + ldr r0, _022300D0 ; =0x000005EB + bl FUN_020054C8 + pop {r4, r5, r6, pc} +_0223005C: + ldrb r0, [r6, r5] + cmp r0, #0 + beq _022300A8 + ldr r0, _022300CC ; =0x000005F2 + bl FUN_020054C8 + add r4, #0xec + add r0, r4, #0 + mov r1, #0x10 + bl MOD62_0222EE78 + pop {r4, r5, r6, pc} +_02230074: + cmp r6, #0 + bne _022300A8 + sub r5, #0xd + lsl r2, r5, #0x18 + add r0, r4, #0 + lsr r2, r2, #0x18 + bl MOD62_0222DA38 + lsl r0, r5, #4 + add r1, r4, r0 + mov r0, #0xca + lsl r0, r0, #2 + ldrb r0, [r1, r0] + bl FUN_02085FD0 + add r4, #0xec + add r1, r0, #0 + add r0, r4, #0 + bl MOD62_0222F208 + ldr r0, _022300D0 ; =0x000005EB + bl FUN_020054C8 + pop {r4, r5, r6, pc} +_022300A4: + bl ErrorHandling +_022300A8: + pop {r4, r5, r6, pc} + nop +_022300AC: .word 0x00000418 +_022300B0: .word 0x000006C5 +_022300B4: .word 0x00000404 +_022300B8: .word 0x00000408 +_022300BC: .word 0x000005DD +_022300C0: .word 0x0000040C +_022300C4: .word 0x000005E2 +_022300C8: .word 0x00000414 +_022300CC: .word 0x000005F2 +_022300D0: .word 0x000005EB + thumb_func_end MOD62_0222FE58 + + thumb_func_start MOD62_022300D4 +MOD62_022300D4: ; 0x022300D4 + mov r1, #0x96 + lsl r1, r1, #2 + ldr r0, [r0, r1] + bx lr + thumb_func_end MOD62_022300D4 + + thumb_func_start MOD62_022300DC +MOD62_022300DC: ; 0x022300DC + add r0, #0xd8 + str r1, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD62_022300DC + + thumb_func_start MOD62_022300E4 +MOD62_022300E4: ; 0x022300E4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + str r0, [sp, #4] + add r1, sp, #0x10 + mov r0, #0 + strb r0, [r1] + strb r0, [r1, #1] + strb r0, [r1, #2] + mov r7, #0x1d + lsl r7, r7, #4 + strb r0, [r1, #3] + ldr r1, _022301A0 ; =0x02231260 + ldr r2, [sp, #4] + add r3, r7, #1 + add r4, r7, #2 + add r5, r7, #3 +_02230104: + ldrb r6, [r1] + add r0, r0, #1 + strb r6, [r2, r7] + ldrb r6, [r1, #1] + strb r6, [r2, r3] + ldrb r6, [r1, #2] + strb r6, [r2, r4] + ldrb r6, [r1, #3] + add r1, r1, #4 + strb r6, [r2, r5] + add r2, r2, #4 + cmp r0, #0xd + blt _02230104 + cmp r0, #0x15 + bge _0223017E + mov r3, #0x1d + ldr r2, [sp, #4] + lsl r3, r3, #4 + add r2, r2, r3 + lsl r4, r0, #2 + ldr r1, [sp, #4] + ldr r3, [sp, #4] + add r1, r1, r4 + add r2, r2, r4 + lsl r4, r0, #4 + add r5, sp, #0xc + add r3, r3, r4 + ldrb r4, [r5, #4] + strb r4, [r5] + ldrb r4, [r5, #5] + strb r4, [r5, #1] + ldrb r4, [r5, #6] + strb r4, [r5, #2] + ldrb r4, [r5, #7] + strb r4, [r5, #3] + ldrb r4, [r5, #2] + ldrb r6, [r5] + ldrb r7, [r5, #1] + str r4, [sp, #8] + ldrb r4, [r5, #3] + mov ip, r4 +_02230156: + mov r4, #0x1d + lsl r4, r4, #4 + strb r6, [r1, r4] + add r4, r4, #1 + strb r7, [r1, r4] + ldr r5, _022301A4 ; =0x000001D2 + ldr r4, [sp, #8] + add r0, r0, #1 + strb r4, [r1, r5] + add r5, r5, #1 + mov r4, ip + strb r4, [r1, r5] + mov r4, #0x26 + lsl r4, r4, #4 + str r2, [r3, r4] + add r1, r1, #4 + add r2, r2, #4 + add r3, #0x10 + cmp r0, #0x15 + blt _02230156 +_0223017E: + mov r0, #0x35 + str r0, [sp] + mov r1, #0x1d + ldr r0, [sp, #4] + lsl r1, r1, #4 + add r0, r0, r1 + ldr r2, _022301A8 ; =MOD62_0222FE58 + ldr r3, [sp, #4] + mov r1, #0x15 + bl FUN_020220C4 + mov r2, #0x73 + ldr r1, [sp, #4] + lsl r2, r2, #2 + str r0, [r1, r2] + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_022301A0: .word 0x02231260 +_022301A4: .word 0x000001D2 +_022301A8: .word MOD62_0222FE58 + thumb_func_end MOD62_022300E4 + + thumb_func_start MOD62_022301AC +MOD62_022301AC: ; 0x022301AC + push {r3, r4, r5, r6, lr} + sub sp, #0x34 + ldr r1, _02230214 ; =0x00000428 + add r5, r0, #0 + ldr r1, [r5, r1] + add r0, sp, #0x24 + mov r2, #2 + bl FUN_02068B68 + ldr r0, _02230214 ; =0x00000428 + mov r1, #5 + ldr r0, [r5, r0] + mov r2, #0 + bl FUN_020671BC + add r4, r0, #0 + ldr r0, _02230214 ; =0x00000428 + mov r1, #2 + ldr r0, [r5, r0] + bl FUN_02068E14 + add r6, r0, #0 + mov r0, #0x6b + lsl r0, r0, #2 + lsl r1, r4, #0x10 + str r6, [r5, r0] + add r0, sp, #0x10 + lsr r1, r1, #0x10 + bl FUN_02069010 + ldr r0, _02230218 ; =0xFFFFFD80 + add r6, #0x30 + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + add r0, sp, #0x10 + str r0, [sp, #8] + mov r0, #0x69 + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, sp, #0x24 + mov r2, #0xc0 + add r3, r6, #0 + bl FUN_020073A0 + mov r1, #0x6a + lsl r1, r1, #2 + str r0, [r5, r1] + add sp, #0x34 + pop {r3, r4, r5, r6, pc} + nop +_02230214: .word 0x00000428 +_02230218: .word 0xFFFFFD80 + thumb_func_end MOD62_022301AC + + thumb_func_start MOD62_0223021C +MOD62_0223021C: ; 0x0223021C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _02230268 ; =0x00000428 + mov r1, #5 + ldr r0, [r5, r0] + mov r2, #0 + bl FUN_020671BC + add r4, r0, #0 + ldr r0, _02230268 ; =0x00000428 + ldr r0, [r5, r0] + bl FUN_02068854 + add r6, r0, #0 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02007314 + mov r1, #0x97 + lsl r2, r4, #0x10 + str r6, [sp] + mov r0, #0 + str r0, [sp, #4] + lsl r1, r1, #2 + str r0, [sp, #8] + ldr r0, [r5, r1] + sub r1, #0xb4 + ldr r1, [r5, r1] + lsr r2, r2, #0x10 + mov r3, #2 + bl FUN_02069038 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_02230268: .word 0x00000428 + thumb_func_end MOD62_0223021C + + thumb_func_start MOD62_0223026C +MOD62_0223026C: ; 0x0223026C + push {r4, lr} + add r4, r0, #0 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xc + mov r2, #0 + bl FUN_02007558 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xd + mov r2, #0 + bl FUN_02007558 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_0223026C + + thumb_func_start MOD62_02230290 +MOD62_02230290: ; 0x02230290 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xc + bl FUN_0200782C + mov r1, #1 + lsl r1, r1, #8 + cmp r0, r1 + bne _022302AC + mov r0, #0 + pop {r4, pc} +_022302AC: + add r1, #0xa8 + ldr r0, [r4, r1] + mov r1, #0xc + bl FUN_0200782C + mov r2, #1 + lsl r2, r2, #8 + cmp r0, r2 + blt _022302DE + add r0, r2, #0 + add r0, #0xa8 + ldr r0, [r4, r0] + mov r1, #0xc + bl FUN_02007558 + mov r0, #0x6a + lsl r0, r0, #2 + mov r1, #0xd + add r2, r1, #0 + ldr r0, [r4, r0] + add r2, #0xf3 + bl FUN_02007558 + mov r0, #0 + pop {r4, pc} +_022302DE: + add r2, #0xa8 + ldr r0, [r4, r2] + mov r1, #0xc + mov r2, #0x20 + bl FUN_020079E0 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xd + mov r2, #0x20 + bl FUN_020079E0 + mov r1, #0x6a + lsl r1, r1, #2 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl FUN_02007F34 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_02230290 + + thumb_func_start MOD62_0223030C +MOD62_0223030C: ; 0x0223030C + push {r4, lr} + add r4, r0, #0 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xc + bl FUN_0200782C + cmp r0, #0 + bne _02230324 + mov r0, #0 + pop {r4, pc} +_02230324: + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xc + bl FUN_0200782C + cmp r0, #0 + bgt _02230354 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xc + mov r2, #0 + bl FUN_02007558 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xd + mov r2, #0 + bl FUN_02007558 + mov r0, #0 + pop {r4, pc} +_02230354: + mov r0, #0x6a + lsl r0, r0, #2 + mov r1, #0xc + add r2, r1, #0 + ldr r0, [r4, r0] + sub r2, #0x2c + bl FUN_020079E0 + mov r0, #0x6a + lsl r0, r0, #2 + mov r1, #0xd + add r2, r1, #0 + ldr r0, [r4, r0] + sub r2, #0x2d + bl FUN_020079E0 + mov r1, #0x6a + lsl r1, r1, #2 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl FUN_02007F34 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_0223030C + + thumb_func_start MOD62_02230388 +MOD62_02230388: ; 0x02230388 + add r2, r1, #0 + mov r1, #0x6a + lsl r1, r1, #2 + ldr r0, [r0, r1] + ldr r3, _02230398 ; =FUN_02007558 + mov r1, #6 + bx r3 + nop +_02230398: .word FUN_02007558 + thumb_func_end MOD62_02230388 + + thumb_func_start MOD62_0223039C +MOD62_0223039C: ; 0x0223039C + mov r1, #0x6a + lsl r1, r1, #2 + ldr r3, _022303A8 ; =FUN_02007534 + ldr r0, [r0, r1] + bx r3 + nop +_022303A8: .word FUN_02007534 + thumb_func_end MOD62_0223039C + + thumb_func_start MOD62_022303AC +MOD62_022303AC: ; 0x022303AC + push {r4, r5, r6, r7, lr} + sub sp, #0xa4 + mov r1, #0xf5 + add r4, r0, #0 + lsl r1, r1, #2 + ldr r2, [r4, r1] + cmp r2, #0xa + bhi _0223042C + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_022303C8: ; jump table + .short _022303DE - _022303C8 - 2 ; case 0 + .short _02230424 - _022303C8 - 2 ; case 1 + .short _0223049A - _022303C8 - 2 ; case 2 + .short _022304D2 - _022303C8 - 2 ; case 3 + .short _02230BDA - _022303C8 - 2 ; case 4 + .short _022304F2 - _022303C8 - 2 ; case 5 + .short _02230846 - _022303C8 - 2 ; case 6 + .short _022308B2 - _022303C8 - 2 ; case 7 + .short _02230AD4 - _022303C8 - 2 ; case 8 + .short _02230B00 - _022303C8 - 2 ; case 9 + .short _02230B96 - _022303C8 - 2 ; case 10 +_022303DE: + mov r1, #0 + bl MOD62_022300DC + add r0, r4, #0 + ldr r1, _0223071C ; =0x0000FFFF + add r0, #0xec + bl MOD62_0222EE78 + add r0, r4, #0 + bl MOD62_0222EFA0 + add r0, r4, #0 + bl MOD62_0222F0D4 + add r0, r4, #0 + mov r1, #1 + mov r2, #4 + bl MOD62_0222E180 + add r0, r4, #0 + bl MOD62_0222F778 + add r0, r4, #0 + bl MOD62_0222F7A8 + mov r0, #0x26 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r4, r0] + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230424: + bl MOD62_022300D4 + cmp r0, #1 + bne _0223042E +_0223042C: + b _02230BDA +_0223042E: + mov r3, #0 + str r3, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + mov r1, #1 + mov r2, #3 + bl FUN_02003210 + mov r3, #0 + str r3, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _0223071C ; =0x0000FFFF + mov r1, #4 + bl FUN_02003210 + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #1 + bl FUN_0201E74C + mov r0, #7 + mov r1, #1 + bl FUN_020178BC + add r0, r4, #0 + mov r1, #1 + bl MOD62_0222F738 + add r0, r4, #0 + mov r1, #1 + bl MOD62_0222E9B4 + add r0, r4, #0 + mov r1, #1 + bl MOD62_0222DDE0 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_0223049A: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + bne _02230598 + mov r0, #3 + mov r1, #1 + bl FUN_020178BC + mov r0, #0x10 + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + mov r1, #1 + mov r2, #2 + bl FUN_02003210 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_022304D2: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + bne _02230598 + add r0, r4, #0 + mov r1, #1 + bl MOD62_022300DC + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_022304F2: + add r2, r1, #0 + add r2, #8 + ldr r2, [r4, r2] + cmp r2, #7 + bls _022304FE + b _0223080C +_022304FE: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0223050A: ; jump table + .short _0223051A - _0223050A - 2 ; case 0 + .short _0223058C - _0223050A - 2 ; case 1 + .short _022305E2 - _0223050A - 2 ; case 2 + .short _02230646 - _0223050A - 2 ; case 3 + .short _02230692 - _0223050A - 2 ; case 4 + .short _022306D6 - _0223050A - 2 ; case 5 + .short _0223072C - _0223050A - 2 ; case 6 + .short _022307A0 - _0223050A - 2 ; case 7 +_0223051A: + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r3, #0 + str r3, [sp] + mov r0, #0xa + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230720 ; =0x0000080B + mov r1, #2 + bl FUN_02003210 + mov r3, #0 + str r3, [sp] + mov r0, #0xa + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _0223071C ; =0x0000FFFF + mov r1, #8 + bl FUN_02003210 + add r0, r4, #0 + mov r1, #0 + bl MOD62_022300DC + mov r0, #0x3e + mov r1, #0 + lsl r0, r0, #4 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD62_0222F80C + add r0, r4, #0 + bl MOD62_022301AC + add r0, r4, #0 + mov r1, #1 + bl MOD62_02230388 + add r0, r4, #0 + add r0, #0xec + mov r1, #0xd + bl MOD62_0222EE78 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_0223058C: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + beq _0223059A +_02230598: + b _02230BDA +_0223059A: + mov r0, #0x35 + str r0, [sp, #0x80] + mov r1, #1 + mov r2, #0 + mov r0, #0xff + str r0, [sp, #0x88] + add r0, r4, #0 + str r1, [sp, #0x7c] + str r1, [sp, #0x94] + str r2, [sp, #0x84] + str r2, [sp, #0x90] + add r0, #0xdc + ldr r0, [r0] + mov r1, #0x9a + str r0, [sp, #0x98] + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + str r0, [sp, #0x9c] + ldr r0, _02230724 ; =0x00000428 + ldr r0, [r4, r0] + bl FUN_020671BC + str r0, [sp, #0x8c] + add r0, sp, #0x7c + bl MOD08_02229918 + mov r1, #0x8b + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_022305E2: + add r2, sp, #0x58 + mov r0, #0 + str r0, [r2] + str r0, [r2, #4] + str r0, [r2, #8] + mov r0, #1 + str r0, [sp, #0x58] + add r0, r1, #0 + add r0, #0x54 + ldr r0, [r4, r0] + sub r1, #0x10 + str r0, [sp, #0x60] + ldr r0, [r4, r1] + add r1, r4, #0 + add r0, r0, #1 + str r0, [sp, #0x18] + add r0, sp, #0x64 + bl MOD62_0222DCBC + ldr r0, _02230724 ; =0x00000428 + mov r1, #0xa1 + ldr r0, [r4, r0] + add r2, sp, #0x18 + bl FUN_02067830 + ldr r0, _02230724 ; =0x00000428 + mov r1, #0xaa + ldr r0, [r4, r0] + add r2, sp, #0x64 + bl FUN_02067830 + mov r0, #0x35 + add r1, sp, #0x58 + bl MOD08_02228218 + mov r1, #0x8a + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + bl MOD08_02228524 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + mov r1, #0 + add r0, r0, #4 + str r1, [r4, r0] + b _02230BDA +_02230646: + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_02228570 + cmp r0, #1 + bne _02230702 + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_02229A00 + cmp r0, #1 + bne _02230702 + add r0, r4, #0 + bl MOD62_02230290 + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_022285A4 + add r0, r4, #0 + mov r1, #0 + bl MOD62_02230388 + add r0, r4, #0 + bl MOD62_0223026C + ldr r0, _02230728 ; =0x000006C6 + bl FUN_020054C8 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230692: + bl MOD62_02230290 + add r5, r0, #0 + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_022299E8 + cmp r0, #0 + bne _02230702 + cmp r5, #0 + bne _02230702 + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_02229A2C + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r4, #0 + bl MOD62_0223021C + mov r0, #0x3e + mov r1, #0 + lsl r0, r0, #4 + str r1, [r4, r0] + sub r1, r0, #4 + ldr r1, [r4, r1] + sub r0, r0, #4 + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_022306D6: + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_022285B4 + cmp r0, #0 + bne _02230702 + mov r0, #0x97 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02014D7C + cmp r0, #1 + bne _02230702 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02007390 + cmp r0, #0 + beq _02230704 +_02230702: + b _02230BDA +_02230704: + mov r0, #0x8a + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_02228618 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA + nop +_0223071C: .word 0x0000FFFF +_02230720: .word 0x0000080B +_02230724: .word 0x00000428 +_02230728: .word 0x000006C6 +_0223072C: + add r0, r1, #0 + add r0, #0xc + ldr r0, [r4, r0] + add r2, r0, #1 + add r0, r1, #0 + add r0, #0xc + str r2, [r4, r0] + add r0, r1, #0 + add r0, #0xc + ldr r0, [r4, r0] + cmp r0, #0x1e + blt _0223081A + add r0, r1, #0 + mov r2, #0 + add r0, #0xc + str r2, [r4, r0] + mov r0, #0x35 + mov r3, #1 + str r0, [sp, #0x34] + mov r0, #5 + str r0, [sp, #0x38] + mov r0, #0xff + str r0, [sp, #0x3c] + add r0, r4, #0 + str r3, [sp, #0x30] + str r2, [sp, #0x44] + str r3, [sp, #0x48] + add r0, #0xdc + ldr r0, [r0] + add r1, #0x54 + str r0, [sp, #0x4c] + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + str r0, [sp, #0x50] + ldr r0, [r4, r1] + mov r1, #0x9a + bl FUN_020671BC + str r0, [sp, #0x40] + add r0, sp, #0x30 + bl MOD08_02229918 + mov r1, #0x8b + lsl r1, r1, #2 + str r0, [r4, r1] + bl MOD62_0222F7E0 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_022307A0: + bl MOD62_0223030C + add r5, r0, #0 + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_022299E8 + cmp r0, #0 + bne _0223081A + cmp r5, #0 + bne _0223081A + mov r0, #0xa + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B38 ; =0x0000080B + mov r1, #2 + bl FUN_02003210 + mov r0, #0xa + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B3C ; =0x0000FFFF + mov r1, #8 + bl FUN_02003210 + add r0, r4, #0 + mov r1, #1 + bl MOD62_02230388 + add r0, r4, #0 + bl MOD62_0223039C + mov r0, #0x8b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD08_02229A2C + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_0223080C: + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + beq _0223081C +_0223081A: + b _02230BDA +_0223081C: + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r4, #0 + mov r1, #1 + bl MOD62_022300DC + mov r0, #0xf7 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + mov r1, #4 + sub r0, #8 + str r1, [r4, r0] + add r0, r4, #0 + ldr r1, _02230B3C ; =0x0000FFFF + add r0, #0xec + bl MOD62_0222EE78 + b _02230BDA +_02230846: + add r0, #0xec + mov r1, #0xc + bl MOD62_0222EE78 + add r0, r4, #0 + bl MOD62_0222DC00 + cmp r0, #1 + bne _02230860 + mov r0, #0x26 + mov r1, #1 + lsl r0, r0, #4 + str r1, [r4, r0] +_02230860: + add r0, r4, #0 + bl MOD62_0222DC7C + add r0, r4, #0 + bl MOD62_0222EC28 + ldr r0, [r4] + ldr r0, [r0, #0x28] + bl FUN_02029FC8 + mov r1, #6 + bl FUN_0202A170 + mov r0, #0xf1 + lsl r0, r0, #2 + ldr r1, [r4, r0] + mov r0, #0xc + mul r0, r1 + add r2, r4, r0 + mov r0, #0x99 + lsl r0, r0, #2 + ldr r0, [r2, r0] + cmp r0, #0xff + beq _022308A8 + ldr r2, [r4] + lsl r0, r0, #2 + add r0, r2, r0 + ldr r5, [r0, #4] + ldr r0, [r2, #0x20] + bl FUN_02029C8C + add r2, r0, #0 + add r0, r5, #0 + mov r1, #0xaa + bl FUN_02067830 +_022308A8: + mov r0, #0xf5 + mov r1, #8 + lsl r0, r0, #2 + str r1, [r4, r0] + b _02230BDA +_022308B2: + add r1, #8 + ldr r1, [r4, r1] + cmp r1, #5 + bhi _0223093C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_022308C6: ; jump table + .short _022308D2 - _022308C6 - 2 ; case 0 + .short _02230930 - _022308C6 - 2 ; case 1 + .short _022309B4 - _022308C6 - 2 ; case 2 + .short _022309C6 - _022308C6 - 2 ; case 3 + .short _02230A2E - _022308C6 - 2 ; case 4 + .short _02230A6A - _022308C6 - 2 ; case 5 +_022308D2: + bl MOD62_0222DC00 + cmp r0, #0 + bne _022308E4 + mov r0, #0xf5 + mov r1, #8 + lsl r0, r0, #2 + str r1, [r4, r0] + b _02230BDA +_022308E4: + mov r3, #0 + str r3, [sp] + mov r0, #0xa + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B38 ; =0x0000080B + mov r1, #2 + bl FUN_02003210 + mov r3, #0 + str r3, [sp] + mov r0, #0xa + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B3C ; =0x0000FFFF + mov r1, #8 + bl FUN_02003210 + add r0, r4, #0 + mov r1, #0 + bl MOD62_022300DC + mov r0, #1 + mov r1, #0 + bl FUN_0201E74C + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230930: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + beq _0223093E +_0223093C: + b _02230BDA +_0223093E: + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #0 + bl FUN_020038F0 + mov r0, #1 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r2, #4 + add r0, r4, #0 + str r2, [sp, #8] + mov r1, #0x28 + str r1, [sp, #0xc] + add r0, #0xe4 + add r1, #0xe4 + ldr r0, [r0] + add r1, r4, r1 + mov r3, #2 + bl MOD62_0222EEE0 + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + mov r1, #0x19 + str r0, [sp, #0x1c] + mov r0, #4 + str r0, [sp, #0x20] + mov r0, #0xd4 + str r0, [sp, #0x24] + mov r0, #5 + str r0, [sp, #0x28] + add r0, sp, #0x10 + strb r1, [r0, #0x1c] + mov r1, #6 + strb r1, [r0, #0x1d] + mov r0, #0x35 + bl FUN_02014590 + mov r1, #0x89 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + add r1, sp, #0x1c + bl FUN_020145C8 + mov r0, #0x43 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0xe + bl MOD62_0222EE78 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_022309B4: + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E74C + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] +_022309C6: + mov r0, #0x89 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0201466C + cmp r0, #0 + beq _02230A76 + cmp r0, #1 + beq _022309DC + cmp r0, #2 + bne _02230A76 +_022309DC: + mov r1, #0x3e + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #1 + bl FUN_020038F0 + mov r0, #0x89 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_020146C4 + mov r0, #0x89 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_020145A8 + mov r0, #0x43 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #1 + bl FUN_0200D0E0 + mov r0, #0x43 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019570 + mov r0, #0x43 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230A2E: + mov r0, #0xa + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B38 ; =0x0000080B + mov r1, #2 + bl FUN_02003210 + mov r0, #0xa + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B3C ; =0x0000FFFF + mov r1, #8 + bl FUN_02003210 + mov r0, #0xf7 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230A6A: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + beq _02230A78 +_02230A76: + b _02230BDA +_02230A78: + mov r0, #0x3e + lsl r0, r0, #4 + ldr r1, [r4, r0] + cmp r1, #0 + beq _02230AC2 + cmp r1, #1 + beq _02230A8C + cmp r1, #2 + beq _02230ABC + b _02230AC2 +_02230A8C: + add r0, r4, #0 + bl MOD62_0222F790 + add r0, r4, #0 + bl MOD62_0222F7C4 + add r0, r4, #0 + bl MOD62_0222F0D4 + add r0, r4, #0 + bl MOD62_0222DAEC + add r0, r4, #0 + bl MOD62_0222D67C + add r0, r4, #0 + mov r1, #1 + bl MOD62_0222DB10 + mov r0, #0xf5 + mov r1, #6 + lsl r0, r0, #2 + str r1, [r4, r0] + b _02230AC2 +_02230ABC: + mov r1, #4 + sub r0, #0xc + str r1, [r4, r0] +_02230AC2: + add r0, r4, #0 + mov r1, #1 + bl MOD62_022300DC + mov r0, #0xf7 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + b _02230BDA +_02230AD4: + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r3, #0 + str r3, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + mov r1, #1 + mov r2, #2 + bl FUN_02003210 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230B00: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + bne _02230BDA + mov r0, #0x10 + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + mov r1, #1 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + add r2, r1, #0 + bl FUN_02003210 + mov r0, #0x10 + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + add r0, r4, #0 + str r3, [sp, #8] + add r0, #0xe8 + ldr r0, [r0] + ldr r2, _02230B3C ; =0x0000FFFF + b _02230B40 + .align 2, 0 +_02230B38: .word 0x0000080B +_02230B3C: .word 0x0000FFFF +_02230B40: + mov r1, #4 + bl FUN_02003210 + mov r0, #3 + add r1, r0, #0 + bl FUN_020178BC + mov r0, #7 + mov r1, #3 + bl FUN_020178BC + mov r0, #4 + mov r1, #0 + bl FUN_0201E74C + add r0, r4, #0 + mov r1, #0 + bl MOD62_0222F738 + add r0, r4, #0 + mov r1, #0 + bl MOD62_0222E9B4 + add r0, r4, #0 + mov r1, #0 + bl MOD62_0222DDE0 + mov r1, #0 + add r0, r4, #0 + mvn r1, r1 + mov r2, #4 + bl MOD62_0222E180 + add r0, r4, #0 + mov r1, #0 + bl MOD62_022300DC + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230BDA +_02230B96: + add r0, #0xe8 + ldr r0, [r0] + bl FUN_020038E4 + cmp r0, #0 + bne _02230BDA + add r0, r4, #0 + bl MOD62_022300D4 + cmp r0, #1 + beq _02230BDA + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C644 + mov r1, #0 + add r0, r4, #0 + mov r2, #0xff + add r3, r1, #0 + bl MOD62_0222F8D4 + add r0, r4, #0 + add r0, #0xec + mov r1, #7 + bl MOD62_0222EE78 + add r0, r4, #0 + bl MOD62_0222F1E8 + add sp, #0xa4 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_02230BDA: + add r0, r4, #0 + add r0, #0xd4 + ldr r5, [r0] + cmp r5, #0xff + bne _02230BF0 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02022144 + b _02230C98 +_02230BF0: + add r0, sp, #0x14 + add r1, sp, #0x10 + bl FUN_02020AB0 + cmp r0, #0 + beq _02230C3E + lsl r6, r5, #4 + mov r0, #0xca + add r1, r4, r6 + lsl r0, r0, #2 + ldrb r0, [r1, r0] + bl FUN_02085FD0 + add r1, r0, #0 + add r0, r4, #0 + add r0, #0xec + bl MOD62_0222F208 + mov r0, #0xcb + ldr r2, [sp, #0x10] + add r1, r4, r6 + lsl r0, r0, #2 + ldr r0, [r1, r0] + ldr r1, [sp, #0x14] + lsl r2, r2, #0x10 + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DBCC + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DC48 + b _02230C98 +_02230C3E: + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DB38 + lsl r6, r5, #4 + mov r2, #0x33 + add r1, r4, r6 + lsl r2, r2, #4 + add r7, r0, #0 + ldr r0, [r1, r2] + sub r2, r2, #4 + ldr r1, [r1, r2] + mov r2, #0 + bl MOD62_0222D5F8 + cmp r7, #0 + bne _02230C80 + mov r1, #0xca + ldr r0, [r4] + add r2, r4, r6 + lsl r1, r1, #2 + ldrb r1, [r2, r1] + ldr r0, [r0, #0x20] + mov r2, #1 + bl FUN_02029D84 + add r0, r4, #0 + bl MOD62_0222F0D4 + add r0, r4, #0 + add r1, r5, #0 + bl MOD62_0222DB78 +_02230C80: + ldr r0, _02230CB8 ; =0x000005EA + bl FUN_020054C8 + add r0, r4, #0 + mov r1, #0xff + add r0, #0xd4 + str r1, [r0] + add r0, r4, #0 + ldr r1, _02230CBC ; =0x0000FFFF + add r0, #0xec + bl MOD62_0222F208 +_02230C98: + add r0, r4, #0 + bl MOD62_0222F758 + add r0, r4, #0 + bl MOD62_0222E990 + add r0, r4, #0 + bl MOD62_0222E754 + add r0, r4, #0 + bl MOD62_0222ECD4 + mov r0, #1 + add sp, #0xa4 + pop {r4, r5, r6, r7, pc} + nop +_02230CB8: .word 0x000005EA +_02230CBC: .word 0x0000FFFF + thumb_func_end MOD62_022303AC + + thumb_func_start MOD62_02230CC0 +MOD62_02230CC0: ; 0x02230CC0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #0 + beq _02230CD8 + cmp r1, #1 + beq _02230CDC + cmp r1, #2 + beq _02230CEC + b _02230D26 +_02230CD8: + add r1, r1, #1 + str r1, [r4, r0] +_02230CDC: + bl MOD62_0222F2A8 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230D26 +_02230CEC: + bl FUN_0200E308 + cmp r0, #1 + bne _02230D26 + add r0, r4, #0 + add r0, #0xec + bl FUN_02019178 + add r0, r4, #0 + bl MOD62_0222ED04 + add r0, r4, #0 + bl MOD62_0222E77C + add r0, r4, #0 + bl MOD62_0222F75C + add r0, r4, #0 + bl MOD62_0222E9D4 + add r0, r4, #0 + bl MOD62_0222E0C8 + ldr r0, [r4] + mov r1, #1 + bl FUN_02085D9C + mov r0, #0 + pop {r4, pc} +_02230D26: + add r0, r4, #0 + bl MOD62_0222E754 + add r0, r4, #0 + bl MOD62_0222ECD4 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD62_02230CC0 + + thumb_func_start MOD62_02230D38 +MOD62_02230D38: ; 0x02230D38 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + mov r0, #0 + add r4, r5, #4 + lsl r6, r1, #3 + str r0, [sp] + ldr r0, [r4, r6] + cmp r0, #0xff + beq _02230D5C + ldr r1, [r5] + lsl r0, r0, #2 + add r0, r1, r0 + ldr r0, [r0, #4] + mov r1, #0xa1 + add r2, sp, #0 + bl FUN_02067830 +_02230D5C: + mov r0, #0xff + str r0, [r4, r6] + add r0, r5, #0 + bl MOD62_0222EC28 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD62_02230D38 + + thumb_func_start MOD62_02230D6C +MOD62_02230D6C: ; 0x02230D6C + push {r4, lr} + mov r2, #0xf5 + add r4, r0, #0 + lsl r2, r2, #2 + ldr r1, [r4, r2] + cmp r1, #0 + beq _02230D84 + cmp r1, #1 + beq _02230DA2 + cmp r1, #2 + beq _02230DB2 + b _02230DC6 +_02230D84: + sub r2, #0x10 + ldr r1, [r4, r2] + bl MOD62_02230D38 + add r0, r4, #0 + add r0, #0xec + mov r1, #9 + bl MOD62_0222EE78 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + b _02230DC6 +_02230DA2: + ldr r0, _02230DD8 ; =0x021C48B8 + ldr r3, [r0, #0x48] + ldr r0, _02230DDC ; =0x00000CF3 + tst r0, r3 + beq _02230DC6 + add r0, r1, #1 + str r0, [r4, r2] + b _02230DC6 +_02230DB2: + mov r1, #0 + mov r2, #0xff + add r3, r1, #0 + bl MOD62_0222F8D4 + add r0, r4, #0 + add r0, #0xec + mov r1, #7 + bl MOD62_0222EE78 +_02230DC6: + add r0, r4, #0 + bl MOD62_0222E754 + add r0, r4, #0 + bl MOD62_0222ECD4 + mov r0, #1 + pop {r4, pc} + nop +_02230DD8: .word 0x021C48B8 +_02230DDC: .word 0x00000CF3 + thumb_func_end MOD62_02230D6C + + thumb_func_start MOD62_02230DE0 +MOD62_02230DE0: ; 0x02230DE0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #3 + bls _02230DF0 + b _02230F18 +_02230DF0: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02230DFC: ; jump table + .short _02230E04 - _02230DFC - 2 ; case 0 + .short _02230E46 - _02230DFC - 2 ; case 1 + .short _02230ED0 - _02230DFC - 2 ; case 2 + .short _02230EE0 - _02230DFC - 2 ; case 3 +_02230E04: + sub r0, #0xe0 + ldr r0, [r4, r0] + mov r1, #0x19 + bl FUN_0200C6C4 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x14 + bl FUN_0200C6C4 + mov r0, #0xbd + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_0200C5C0 + add r0, r4, #0 + add r0, #0xec + mov r1, #0xa + bl MOD62_0222EE78 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_0200C644 + mov r0, #0xf5 + lsl r0, r0, #2 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] +_02230E46: + mov r0, #0xf2 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD62_0222F9B4 + cmp r0, #1 + bne _02230E66 + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD62_0222FA40 + ldr r0, _02230F28 ; =0x000005DC + bl FUN_020054C8 + b _02230F18 +_02230E66: + ldr r0, _02230F2C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _02230EA4 + mov r2, #0xf1 + lsl r2, r2, #2 + ldr r1, [r4, r2] + add r2, r2, #4 + ldr r2, [r4, r2] + add r0, r4, #0 + bl MOD62_0222EC54 + mov r1, #1 + add r0, r4, #0 + add r2, r1, #0 + bl MOD62_0222FA40 + add r0, r4, #0 + add r0, #0xec + mov r1, #0xb + bl MOD62_0222EE78 + mov r0, #0xf5 + mov r1, #2 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, _02230F28 ; =0x000005DC + bl FUN_020054C8 + b _02230F18 +_02230EA4: + mov r0, #2 + tst r0, r1 + beq _02230F18 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD62_0222FA40 + mov r0, #0xf5 + mov r1, #3 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, _02230F30 ; =0x000005DD + bl FUN_020054C8 + b _02230F18 +_02230ED0: + ldr r1, _02230F2C ; =0x021C48B8 + ldr r2, [r1, #0x48] + ldr r1, _02230F34 ; =0x00000CF3 + tst r1, r2 + beq _02230F18 + mov r1, #3 + str r1, [r4, r0] + b _02230F18 +_02230EE0: + sub r0, #0xe0 + ldr r0, [r4, r0] + mov r1, #0x14 + bl FUN_0200C6C4 + mov r0, #0xbe + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x19 + bl FUN_0200C6C4 + mov r1, #0 + add r0, r4, #0 + mov r2, #0xff + add r3, r1, #0 + bl MOD62_0222F8D4 + mov r0, #0xbd + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C5C0 + add r0, r4, #0 + add r0, #0xec + mov r1, #7 + bl MOD62_0222EE78 +_02230F18: + add r0, r4, #0 + bl MOD62_0222E754 + add r0, r4, #0 + bl MOD62_0222ECD4 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_02230F28: .word 0x000005DC +_02230F2C: .word 0x021C48B8 +_02230F30: .word 0x000005DD +_02230F34: .word 0x00000CF3 + thumb_func_end MOD62_02230DE0 + + thumb_func_start MOD62_02230F38 +MOD62_02230F38: ; 0x02230F38 + mov r0, #0 + bx lr + thumb_func_end MOD62_02230F38 + + thumb_func_start MOD62_02230F3C +MOD62_02230F3C: ; 0x02230F3C + push {r3, lr} + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _02230F68 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _02230F6C ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + pop {r3, pc} + .align 2, 0 +_02230F68: .word 0xFFFFE0FF +_02230F6C: .word 0x04001000 + thumb_func_end MOD62_02230F3C + + thumb_func_start MOD62_02230F70 +MOD62_02230F70: ; 0x02230F70 + push {r3, lr} + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + pop {r3, pc} + thumb_func_end MOD62_02230F70 + + thumb_func_start MOD62_02230F80 +MOD62_02230F80: ; 0x02230F80 + push {r4, r5, lr} + sub sp, #0xfc + add r4, r0, #0 + bl FUN_0201E6D8 + ldr r5, _022310B8 ; =0x02231238 + add r3, sp, #0x10 + mov r2, #5 +_02230F90: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _02230F90 + add r0, sp, #0x10 + bl FUN_0201E66C + mov r1, #6 + mov r2, #2 + mov r0, #0 + lsl r1, r1, #0x18 + lsl r2, r2, #0x12 + bl MIi_CpuClear32 + mov r1, #0x62 + mov r2, #2 + mov r0, #0 + lsl r1, r1, #0x14 + lsl r2, r2, #0x10 + bl MIi_CpuClear32 + mov r1, #0x19 + mov r2, #1 + mov r0, #0 + lsl r1, r1, #0x16 + lsl r2, r2, #0x12 + bl MIi_CpuClear32 + mov r1, #0x66 + mov r2, #2 + mov r0, #0 + lsl r1, r1, #0x14 + lsl r2, r2, #0x10 + bl MIi_CpuClear32 + ldr r5, _022310BC ; =0x02231210 + add r3, sp, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _022310C0 ; =0x02231294 + add r3, sp, #0xa8 + mov r2, #0xa +_02230FF0: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _02230FF0 + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + add r2, sp, #0xa8 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + add r2, sp, #0xc4 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #3 + add r2, sp, #0xe0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + add r0, r4, #0 + mov r1, #3 + bl FUN_02018744 + ldr r1, _022310C4 ; =0x04000008 + mov r0, #3 + ldrh r2, [r1] + bic r2, r0 + mov r0, #1 + orr r2, r0 + strh r2, [r1] + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r5, _022310C8 ; =0x022312E8 + add r3, sp, #0x38 + mov r2, #0xe +_02231052: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _02231052 + add r0, r4, #0 + mov r1, #4 + add r2, sp, #0x38 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #5 + add r2, sp, #0x54 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #6 + add r2, sp, #0x70 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #7 + add r2, sp, #0x8c + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + add r0, r4, #0 + mov r1, #5 + bl FUN_02018744 + add r0, r4, #0 + mov r1, #6 + bl FUN_02018744 + add r0, r4, #0 + mov r1, #7 + bl FUN_02018744 + mov r0, #4 + mov r1, #0 + bl FUN_0201E74C + add sp, #0xfc + pop {r4, r5, pc} + nop +_022310B8: .word 0x02231238 +_022310BC: .word 0x02231210 +_022310C0: .word 0x02231294 +_022310C4: .word 0x04000008 +_022310C8: .word 0x022312E8 + thumb_func_end MOD62_02230F80 + + thumb_func_start MOD62_022310CC +MOD62_022310CC: ; 0x022310CC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x69 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_020081C4 + bl FUN_0201C30C + bl FUN_0200BC30 + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + bl FUN_0200372C + add r4, #0xe4 + ldr r0, [r4] + bl FUN_0201AB60 + ldr r3, _02231104 ; =0x027E0000 + ldr r1, _02231108 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + nop +_02231104: .word 0x027E0000 +_02231108: .word 0x00003FF8 + thumb_func_end MOD62_022310CC + + .section .rodata + ; 0x0223110C + .incbin "baserom.nds", 0x2B274C, 0x274 + + .section .sinit + .word MOD62_0222D5C0 diff --git a/arm9/modules/63/asm/module_63.s b/arm9/modules/63/asm/module_63.s new file mode 100644 index 00000000..d55732ba --- /dev/null +++ b/arm9/modules/63/asm/module_63.s @@ -0,0 +1,8588 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD63_021D74E0 +MOD63_021D74E0: ; 0x021D74E0 + push {r4, lr} + ldr r1, _021D7584 ; =0x00007FFF + add r4, r0, #0 + mov r0, #0 + bl FUN_0200E3A0 + ldr r1, _021D7584 ; =0x00007FFF + mov r0, #1 + bl FUN_0200E3A0 + ldr r1, _021D7588 ; =0x04001050 + mov r0, #0 + strh r0, [r1] + ldr r1, _021D758C ; =0x04000050 + strh r0, [r1] + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F34 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7590 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D7594 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + mov r2, #1 + mov r0, #3 + mov r1, #0x1e + lsl r2, r2, #0x12 + bl FUN_0201681C + mov r1, #0x79 + add r0, r4, #0 + lsl r1, r1, #2 + mov r2, #0x1e + bl FUN_02006268 + mov r2, #0x79 + mov r1, #0 + lsl r2, r2, #2 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x1e + str r0, [r4] + mov r0, #0x1d + mov r1, #0 + lsl r0, r0, #4 + strh r1, [r4, r0] + add r0, #0x10 + str r1, [r4, r0] + bl MOD63_021D7838 + add r0, r4, #0 + bl MOD63_021D7A48 + add r0, r4, #0 + bl MOD63_021D7880 + ldr r0, _021D7598 ; =MOD63_021D782C + add r1, r4, #0 + bl FUN_02015F10 + bl FUN_0201E788 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021D7584: .word 0x00007FFF +_021D7588: .word 0x04001050 +_021D758C: .word 0x04000050 +_021D7590: .word 0xFFFFE0FF +_021D7594: .word 0x04001000 +_021D7598: .word MOD63_021D782C + thumb_func_end MOD63_021D74E0 + + thumb_func_start MOD63_021D759C +MOD63_021D759C: ; 0x021D759C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r5] + cmp r0, #6 + bhi _021D7614 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D75BA: ; jump table + .short _021D75C8 - _021D75BA - 2 ; case 0 + .short _021D7604 - _021D75BA - 2 ; case 1 + .short _021D7622 - _021D75BA - 2 ; case 2 + .short _021D7638 - _021D75BA - 2 ; case 3 + .short _021D76FA - _021D75BA - 2 ; case 4 + .short _021D773C - _021D75BA - 2 ; case 5 + .short _021D777E - _021D75BA - 2 ; case 6 +_021D75C8: + add r0, r4, #0 + ldr r1, [r4, #4] + ldr r2, [r4] + add r0, #0xb4 + bl MOD63_021D7C18 + cmp r0, #1 + bne _021D7614 + add r0, r4, #0 + ldr r1, _021D77A4 ; =0x021C48B8 + mov r2, #0 + add r0, #0xb4 + str r2, [r0] + ldr r0, [r1, #0x6c] + cmp r0, #0 + bne _021D75F6 + mov r0, #0x75 + mov r1, #0x1e + lsl r0, r0, #2 + str r1, [r4, r0] + mov r0, #2 + str r0, [r5] + b _021D779C +_021D75F6: + mov r0, #0x75 + lsl r0, r0, #2 + str r2, [r4, r0] + str r2, [r1, #0x6c] + mov r0, #1 + str r0, [r5] + b _021D779C +_021D7604: + add r0, r4, #0 + ldr r1, [r4, #4] + ldr r2, [r4] + add r0, #0xb4 + bl MOD63_021D7D74 + cmp r0, #1 + beq _021D7616 +_021D7614: + b _021D779C +_021D7616: + mov r0, #0 + add r4, #0xb4 + str r0, [r4] + mov r0, #2 + str r0, [r5] + b _021D779C +_021D7622: + mov r0, #0 + bl FUN_0200415C + mov r0, #1 + ldr r1, _021D77A8 ; =0x00000495 + add r2, r0, #0 + bl FUN_0200433C + mov r0, #3 + str r0, [r5] + b _021D779C +_021D7638: + mov r0, #0x75 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #0 + beq _021D765A + sub r1, r1, #1 + str r1, [r4, r0] + mov r1, #0 + sub r0, #0x4c + str r1, [r4, r0] + add r0, r4, #0 + ldr r1, [r4, #4] + ldr r2, [r4] + add r0, #0xb4 + bl MOD63_021D8260 + b _021D779C +_021D765A: + mov r1, #1 + sub r0, #0x4c + str r1, [r4, r0] + add r0, r4, #0 + ldr r1, [r4, #4] + ldr r2, [r4] + add r0, #0xb4 + bl MOD63_021D8260 + mov r1, #0x1e + lsl r1, r1, #4 + ldr r0, [r4, r1] + ldr r2, _021D77A4 ; =0x021C48B8 + add r0, r0, #1 + str r0, [r4, r1] + ldr r3, [r2, #0x48] + mov r0, #1 + add r6, r3, #0 + and r6, r0 + cmp r6, #1 + beq _021D768C + mov r6, #8 + and r3, r6 + cmp r3, #8 + bne _021D76A8 +_021D768C: + mov r0, #0x1d + mov r1, #1 + lsl r0, r0, #4 + strh r1, [r4, r0] + mov r0, #0 + mov r1, #0x3c + bl FUN_020053CC + ldr r0, _021D77AC ; =0x000005F4 + bl FUN_020054C8 + mov r0, #4 + str r0, [r5] + b _021D779C +_021D76A8: + ldr r6, [r2, #0x44] + mov r3, #0x46 + and r3, r6 + cmp r3, #0x46 + bne _021D76D4 + mov r2, #2 + sub r1, #0x10 + strh r2, [r4, r1] + mov r1, #6 + str r1, [sp] + str r0, [sp, #4] + ldr r0, [r4] + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #6 + str r0, [r5] + b _021D779C +_021D76D4: + mov r3, #0xe1 + ldr r6, [r4, r1] + lsl r3, r3, #2 + cmp r6, r3 + ble _021D779C + mov r3, #3 + sub r1, #0x10 + strh r3, [r4, r1] + mov r1, #0 + str r0, [r2, #0x6c] + bl FUN_0201E74C + mov r0, #0 + mov r1, #0x3c + bl FUN_020053CC + mov r0, #5 + str r0, [r5] + b _021D779C +_021D76FA: + mov r0, #0x62 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, r4, #0 + ldr r1, [r4, #4] + ldr r2, [r4] + add r0, #0xb4 + bl MOD63_021D8260 + bl FUN_02005404 + cmp r0, #0 + bne _021D779C + ldr r0, _021D77A8 ; =0x00000495 + mov r1, #0 + bl FUN_02005350 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #6 + str r0, [r5] + b _021D779C +_021D773C: + mov r0, #0x62 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, r4, #0 + ldr r1, [r4, #4] + ldr r2, [r4] + add r0, #0xb4 + bl MOD63_021D8260 + bl FUN_02005404 + cmp r0, #0 + bne _021D779C + ldr r0, _021D77A8 ; =0x00000495 + mov r1, #0 + bl FUN_02005350 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + ldr r3, _021D77B0 ; =0x00007FFF + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + bl FUN_0200E1D0 + mov r0, #6 + str r0, [r5] + b _021D779C +_021D777E: + bl FUN_0200E308 + cmp r0, #1 + bne _021D779C + add r0, r4, #0 + ldr r1, [r4, #4] + ldr r2, [r4] + add r0, #0xb4 + bl MOD63_021D8360 + cmp r0, #1 + bne _021D779C + add sp, #0xc + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D779C: + mov r0, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021D77A4: .word 0x021C48B8 +_021D77A8: .word 0x00000495 +_021D77AC: .word 0x000005F4 +_021D77B0: .word 0x00007FFF + thumb_func_end MOD63_021D759C + + thumb_func_start MOD63_021D77B4 +MOD63_021D77B4: ; 0x021D77B4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + bl FUN_02006278 + add r6, r0, #0 + mov r0, #0x1d + lsl r0, r0, #4 + ldrh r5, [r6, r0] + mov r0, #0 + add r1, r0, #0 + ldr r4, [r6] + bl FUN_02015F10 + add r0, r6, #0 + bl MOD63_021D78B0 + add r0, r6, #0 + bl MOD63_021D7B9C + add r0, r7, #0 + bl FUN_0200627C + add r0, r4, #0 + bl FUN_020168D0 + cmp r5, #1 + beq _021D77F2 + cmp r5, #2 + beq _021D77FE + cmp r5, #3 + beq _021D780A +_021D77F2: + mov r0, #0 + ldr r1, _021D781C ; =0x020FF3D4 + mvn r0, r0 + bl FUN_02000E7C + b _021D7818 +_021D77FE: + mov r0, #0 + ldr r1, _021D7820 ; =0x020FF368 + mvn r0, r0 + bl FUN_02000E7C + b _021D7818 +_021D780A: + mov r0, #0 + bl FUN_0200415C + ldr r0, _021D7824 ; =SDK_OVERLAY_MODULE_63_ID + ldr r1, _021D7828 ; =0x021DBE18 + bl FUN_02000E7C +_021D7818: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D781C: .word 0x020FF3D4 +_021D7820: .word 0x020FF368 +_021D7824: .word SDK_OVERLAY_MODULE_63_ID +_021D7828: .word 0x021DBE18 + thumb_func_end MOD63_021D77B4 + + thumb_func_start MOD63_021D782C +MOD63_021D782C: ; 0x021D782C + ldr r3, _021D7834 ; =FUN_0201AB60 + ldr r0, [r0, #4] + bx r3 + nop +_021D7834: .word FUN_0201AB60 + thumb_func_end MOD63_021D782C + + thumb_func_start MOD63_021D7838 +MOD63_021D7838: ; 0x021D7838 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7854 ; =0x021DBA90 + add r3, sp, #0 + mov r2, #5 +_021D7842: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7842 + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7854: .word 0x021DBA90 + thumb_func_end MOD63_021D7838 + + thumb_func_start MOD63_021D7858 +MOD63_021D7858: ; 0x021D7858 + ldr r0, _021D787C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + and r0, r1 + cmp r0, #1 + beq _021D7874 + mov r0, #8 + and r0, r1 + cmp r0, #8 + beq _021D7874 + mov r0, #4 + and r0, r1 + cmp r0, #4 + bne _021D7878 +_021D7874: + mov r0, #1 + bx lr +_021D7878: + mov r0, #0 + bx lr + .align 2, 0 +_021D787C: .word 0x021C48B8 + thumb_func_end MOD63_021D7858 + + thumb_func_start MOD63_021D7880 +MOD63_021D7880: ; 0x021D7880 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + mov r0, #4 + mov r1, #0 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r4] + mov r2, #1 + add r3, r1, #0 + bl FUN_02022318 + str r0, [r4, #8] + ldr r1, _021D78AC ; =0x04000008 + mov r0, #3 + ldrh r2, [r1] + bic r2, r0 + mov r0, #1 + orr r0, r2 + strh r0, [r1] + add sp, #8 + pop {r4, pc} + .align 2, 0 +_021D78AC: .word 0x04000008 + thumb_func_end MOD63_021D7880 + + thumb_func_start MOD63_021D78B0 +MOD63_021D78B0: ; 0x021D78B0 + ldr r3, _021D78B8 ; =FUN_020223BC + ldr r0, [r0, #8] + bx r3 + nop +_021D78B8: .word FUN_020223BC + thumb_func_end MOD63_021D78B0 + + thumb_func_start MOD63_021D78BC +MOD63_021D78BC: ; 0x021D78BC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r4, r3, #0 + add r5, r0, #0 + add r6, r1, #0 + add r7, r2, #0 + add r0, #0x68 + add r1, r4, #0 + mov r2, #4 + bl FUN_02016B20 + mov r0, #0x30 + add r1, r6, #0 + add r2, r4, #0 + bl LoadFromNarc_2 + str r0, [r5, #0x5c] + mov r0, #0x30 + add r1, r7, #0 + add r2, r4, #0 + bl LoadFromNarc_2 + add r1, r5, #0 + add r2, r5, #0 + str r0, [r5, #0x60] + add r0, r5, #4 + add r1, #0x58 + add r2, #0x5c + bl FUN_0201B234 + ldr r0, [r5, #0x60] + mov r1, #0 + bl FUN_020BC4C8 + add r4, r0, #0 + add r0, r5, #0 + ldr r2, [r5, #0x58] + add r0, #0x68 + add r1, r4, #0 + bl FUN_020BB8D0 + str r0, [r5, #0x64] + ldr r0, [r5, #0x5c] + bl FUN_020BC0FC + add r3, r0, #0 + ldr r0, [r5, #0x64] + ldr r2, [r5, #0x58] + add r1, r4, #0 + bl FUN_020B8110 + ldr r1, [r5, #0x64] + add r0, r5, #4 + bl FUN_020B7EFC + add r4, r5, #0 + add r6, sp, #0xc + mov r3, #0 + str r3, [r6] + add r2, sp, #0 + str r3, [r6, #4] + str r3, [r2] + str r3, [r6, #8] + str r3, [r2, #4] + ldmia r6!, {r0, r1} + str r3, [r2, #8] + add r4, #0x78 + stmia r4!, {r0, r1} + ldr r0, [r6] + ldr r6, _021D796C ; =0x021DB9A8 + str r0, [r4] + add r4, r5, #0 + ldmia r6!, {r0, r1} + add r4, #0x84 + stmia r4!, {r0, r1} + ldr r0, [r6] + str r0, [r4] + add r4, r5, #0 + ldmia r2!, {r0, r1} + add r4, #0x90 + stmia r4!, {r0, r1} + ldr r0, [r2] + add r5, #0xa0 + str r0, [r4] + str r3, [r5] + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D796C: .word 0x021DB9A8 + thumb_func_end MOD63_021D78BC + + thumb_func_start MOD63_021D7970 +MOD63_021D7970: ; 0x021D7970 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x64] + add r0, #0x68 + bl thunk_FUN_020ae84c + ldr r0, [r4, #0x60] + bl FUN_02016A18 + ldr r0, [r4, #0x5c] + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD63_021D7970 + + thumb_func_start MOD63_021D798C +MOD63_021D798C: ; 0x021D798C + push {r4, r5, lr} + sub sp, #0x24 + ldr r5, _021D7A44 ; =0x021DBA6C + add r4, r0, #0 + add r3, sp, #0 + mov r2, #4 +_021D7998: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7998 + ldr r0, [r5] + str r0, [r3] + ldr r0, [r4] + cmp r0, #0 + beq _021D7A3E + cmp r0, #1 + beq _021D79B6 + cmp r0, #2 + beq _021D79CA + add sp, #0x24 + pop {r4, r5, pc} +_021D79B6: + bl FUN_020222AC + mov r0, #0 + mov r1, #1 + bl FUN_020222B4 + mov r0, #0 + add sp, #0x24 + str r0, [r4] + pop {r4, r5, pc} +_021D79CA: + bl FUN_020222AC + bl FUN_0201EBA4 + add r1, r4, #0 + add r0, sp, #0 + add r1, #0x90 + bl FUN_0201CAA8 + add r1, r4, #0 + add r3, r4, #0 + add r0, r4, #4 + add r1, #0x78 + add r2, sp, #0 + add r3, #0x84 + bl FUN_0201B26C + add r0, r4, #0 + add r0, #0xa0 + ldr r0, [r0] + cmp r0, #0 + beq _021D7A00 + cmp r0, #1 + beq _021D7A08 + cmp r0, #2 + beq _021D7A18 + b _021D7A36 +_021D7A00: + ldr r0, [r4, #0x64] + mov r1, #0 + str r1, [r0] + b _021D7A36 +_021D7A08: + ldr r0, [r4, #0x64] + ldr r0, [r0] + cmp r0, #0 + bne _021D7A18 + mov r0, #0 + add r4, #0xa0 + str r0, [r4] + b _021D7A36 +_021D7A18: + ldr r2, [r4, #0x64] + mov r0, #1 + ldr r1, [r2] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [r2] + ldr r2, [r4, #0x64] + ldr r0, [r2, #8] + ldr r1, [r2] + ldrh r0, [r0, #4] + lsl r0, r0, #0xc + cmp r1, r0 + bne _021D7A36 + mov r0, #0 + str r0, [r2] +_021D7A36: + mov r0, #0 + mov r1, #1 + bl FUN_020222B4 +_021D7A3E: + add sp, #0x24 + pop {r4, r5, pc} + nop +_021D7A44: .word 0x021DBA6C + thumb_func_end MOD63_021D798C + + thumb_func_start MOD63_021D7A48 +MOD63_021D7A48: ; 0x021D7A48 + push {r3, r4, r5, lr} + sub sp, #0xb8 + add r4, r0, #0 + ldr r0, [r4] + bl FUN_02016B94 + add r3, sp, #0xa8 + ldr r5, _021D7B80 ; =0x021DB9B4 + str r0, [r4, #4] + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D7B84 ; =0x021DB9E0 + add r3, sp, #0x8c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + ldr r0, [r4, #4] + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D7B88 ; =0x021DB9C4 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + ldr r0, [r4, #4] + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D7B8C ; =0x021DBA50 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #6 + str r0, [r3] + ldr r0, [r4, #4] + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D7B90 ; =0x021DBA34 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + ldr r0, [r4, #4] + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D7B94 ; =0x021DB9FC + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + ldr r0, [r4, #4] + mov r1, #3 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D7B98 ; =0x021DBA18 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #7 + str r0, [r3] + ldr r0, [r4, #4] + mov r3, #0 + bl FUN_02016C18 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #1 + mov r1, #0 + bl FUN_0201E74C + mov r0, #2 + mov r1, #0 + bl FUN_0201E74C + mov r0, #4 + mov r1, #0 + bl FUN_0201E74C + mov r0, #8 + mov r1, #0 + bl FUN_0201E74C + mov r0, #0 + add r1, r0, #0 + bl FUN_02017FE4 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + add sp, #0xb8 + pop {r3, r4, r5, pc} + nop +_021D7B80: .word 0x021DB9B4 +_021D7B84: .word 0x021DB9E0 +_021D7B88: .word 0x021DB9C4 +_021D7B8C: .word 0x021DBA50 +_021D7B90: .word 0x021DBA34 +_021D7B94: .word 0x021DB9FC +_021D7B98: .word 0x021DBA18 + thumb_func_end MOD63_021D7A48 + + thumb_func_start MOD63_021D7B9C +MOD63_021D7B9C: ; 0x021D7B9C + push {r4, lr} + add r4, r0, #0 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #1 + mov r1, #0 + bl FUN_0201E74C + mov r0, #2 + mov r1, #0 + bl FUN_0201E74C + mov r0, #4 + mov r1, #0 + bl FUN_0201E74C + mov r0, #8 + mov r1, #0 + bl FUN_0201E74C + ldr r0, [r4, #4] + mov r1, #4 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #5 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #7 + bl FUN_020178A0 + ldr r0, [r4, #4] + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD63_021D7B9C + + thumb_func_start MOD63_021D7C18 +MOD63_021D7C18: ; 0x021D7C18 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r0, #0 + add r6, r1, #0 + add r4, r2, #0 + bl MOD63_021D86E0 + add r0, r6, #0 + add r1, r4, #0 + add r2, r5, #0 + bl MOD63_021D83A8 + ldr r0, _021D7D5C ; =0x020ECAC0 + ldrb r0, [r0] + cmp r0, #0xa + bne _021D7C46 + add r0, r5, #4 + mov r1, #6 + mov r2, #0x13 + add r3, r4, #0 + bl MOD63_021D78BC + b _021D7C52 +_021D7C46: + add r0, r5, #4 + mov r1, #5 + mov r2, #0x12 + add r3, r4, #0 + bl MOD63_021D78BC +_021D7C52: + ldr r0, _021D7D60 ; =0x04000060 + ldr r2, _021D7D64 ; =0xFFFFCFFF + ldrh r1, [r0] + add r3, r1, #0 + and r3, r2 + mov r1, #0x10 + orr r1, r3 + strh r1, [r0] + ldrh r1, [r0] + and r2, r1 + mov r1, #8 + orr r1, r2 + strh r1, [r0] + add r0, r5, #0 + add r0, #0xf0 + ldr r1, [r0] + add r0, r5, #0 + add r0, #0xbc + str r1, [r0] + add r0, r5, #0 + add r0, #0xf4 + ldr r1, [r0] + add r0, r5, #0 + add r0, #0xc0 + str r1, [r0] + add r0, r5, #0 + add r0, #0xf8 + ldr r1, [r0] + add r0, r5, #0 + add r0, #0xc4 + str r1, [r0] + add r0, r5, #0 + add r0, #0xd8 + ldr r1, [r0] + add r0, r5, #0 + add r0, #0xc8 + str r1, [r0] + add r0, r5, #0 + add r0, #0xdc + ldr r1, [r0] + add r0, r5, #0 + add r0, #0xcc + str r1, [r0] + add r0, r5, #0 + add r0, #0xe0 + ldr r1, [r0] + add r0, r5, #0 + add r0, #0xd0 + str r1, [r0] + add r0, r4, #0 + bl FUN_0201EB64 + add r1, r5, #0 + add r1, #0xa0 + str r0, [r1] + mov r3, #0 + add r0, r5, #0 + add r1, r5, #0 + mov r2, #0xb6 + str r3, [sp] + add r0, #0xa0 + ldr r0, [r0] + add r1, #0xc8 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xbc + lsl r2, r2, #4 + bl FUN_0201ED5C + add r2, r5, #0 + add r2, #0xa0 + mov r1, #0x19 + ldr r2, [r2] + mov r0, #0 + lsl r1, r1, #0xe + bl FUN_0201EC94 + add r1, r5, #0 + add r1, #0xa0 + ldr r1, [r1] + mov r0, #0 + bl FUN_0201EE2C + add r0, r5, #0 + add r0, #0xa0 + ldr r0, [r0] + bl FUN_0201EB8C + mov r3, #0x42 + lsl r3, r3, #2 + add r2, r3, #2 + ldrsh r1, [r5, r3] + add r3, r3, #4 + ldrsh r2, [r5, r2] + ldrsh r3, [r5, r3] + mov r0, #0 + bl FUN_020B8418 + ldr r1, _021D7D68 ; =0x00007FFF + mov r0, #0 + bl FUN_020B8404 + ldr r3, _021D7D6C ; =0x0000010E + mov r0, #1 + add r2, r3, #2 + ldrsh r1, [r5, r3] + add r3, r3, #4 + ldrsh r2, [r5, r2] + ldrsh r3, [r5, r3] + bl FUN_020B8418 + ldr r1, _021D7D68 ; =0x00007FFF + mov r0, #1 + bl FUN_020B8404 + ldr r2, _021D7D60 ; =0x04000060 + ldr r0, _021D7D64 ; =0xFFFFCFFF + ldrh r1, [r2] + and r1, r0 + mov r0, #0x10 + orr r0, r1 + strh r0, [r2] + ldr r0, _021D7D70 ; =0x021C4918 + mov r1, #1 + strb r1, [r0, #5] + bl FUN_0201E7A0 + mov r0, #2 + str r0, [r5, #4] + mov r0, #1 + add sp, #8 + pop {r4, r5, r6, pc} + nop +_021D7D5C: .word 0x020ECAC0 +_021D7D60: .word 0x04000060 +_021D7D64: .word 0xFFFFCFFF +_021D7D68: .word 0x00007FFF +_021D7D6C: .word 0x0000010E +_021D7D70: .word 0x021C4918 + thumb_func_end MOD63_021D7C18 + + thumb_func_start MOD63_021D7D74 +MOD63_021D7D74: ; 0x021D7D74 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r4, r0, #0 + add r7, r1, #0 + add r5, r2, #0 + mov r6, #0 + bl MOD63_021D7858 + cmp r0, #1 + bne _021D7D92 + bl FUN_0200E31C + add sp, #0xc + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021D7D92: + ldr r0, [r4] + cmp r0, #9 + bhi _021D7E38 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7DA4: ; jump table + .short _021D7DB8 - _021D7DA4 - 2 ; case 0 + .short _021D7DF6 - _021D7DA4 - 2 ; case 1 + .short _021D7E24 - _021D7DA4 - 2 ; case 2 + .short _021D7E8C - _021D7DA4 - 2 ; case 3 + .short _021D7ECC - _021D7DA4 - 2 ; case 4 + .short _021D7EF4 - _021D7DA4 - 2 ; case 5 + .short _021D7F44 - _021D7DA4 - 2 ; case 6 + .short _021D7F72 - _021D7DA4 - 2 ; case 7 + .short _021D7FA6 - _021D7DA4 - 2 ; case 8 + .short _021D8232 - _021D7DA4 - 2 ; case 9 +_021D7DB8: + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #1 + bl FUN_0201E74C + ldr r1, _021D80F0 ; =0x00000116 + add r0, r6, #0 + strh r0, [r4, r1] + add r1, r4, #0 + mov r2, #0xf + add r1, #0xa8 + strh r2, [r1] + str r2, [sp] + mov r1, #3 + str r1, [sp, #4] + mov r1, #1 + ldr r3, _021D80F4 ; =0x00007FFF + add r2, r1, #0 + str r5, [sp, #8] + bl FUN_0200E1D0 + mov r0, #1 + str r0, [r4] + b _021D824E +_021D7DF6: + bl FUN_0200E308 + cmp r0, #1 + bne _021D7E38 + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + cmp r0, #0 + beq _021D7E18 + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + sub r1, r0, #1 + add r0, r4, #0 + add r0, #0xa8 + strh r1, [r0] + b _021D824E +_021D7E18: + add r0, r4, #0 + mov r1, #2 + add r0, #0xa8 + strh r1, [r0] + str r1, [r4] + b _021D824E +_021D7E24: + mov r0, #1 + bl FUN_0200A344 + cmp r0, #1 + bne _021D7E38 + mov r0, #2 + bl FUN_0200A344 + cmp r0, #1 + beq _021D7E3A +_021D7E38: + b _021D824E +_021D7E3A: + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + cmp r0, #0 + beq _021D7E7E + mov r0, #1 + str r0, [sp] + mov r0, #0xa + mov r1, #0x10 + add r2, r6, #0 + mov r3, #6 + bl FUN_0200A208 + mov r0, #2 + str r0, [sp] + mov r0, #0xa + mov r1, #0x10 + add r2, r6, #0 + mov r3, #7 + bl FUN_0200A208 + ldr r0, _021D80F0 ; =0x00000116 + mov r1, #2 + strh r1, [r4, r0] + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + sub r1, r0, #1 + add r0, r4, #0 + add r0, #0xa8 + strh r1, [r0] + mov r0, #3 + str r0, [r4] + b _021D824E +_021D7E7E: + add r0, r4, #0 + add r1, r6, #0 + add r0, #0xa8 + strh r1, [r0] + mov r0, #4 + str r0, [r4] + b _021D824E +_021D7E8C: + mov r0, #1 + bl FUN_0200A344 + cmp r0, #1 + bne _021D7F94 + mov r0, #2 + bl FUN_0200A344 + cmp r0, #1 + bne _021D7F94 + mov r0, #1 + str r0, [sp] + mov r0, #0xa + add r1, r6, #0 + mov r2, #0x10 + mov r3, #6 + bl FUN_0200A208 + mov r0, #2 + str r0, [sp] + mov r0, #0xa + add r1, r6, #0 + mov r2, #0x10 + mov r3, #7 + bl FUN_0200A208 + ldr r0, _021D80F0 ; =0x00000116 + mov r1, #3 + strh r1, [r4, r0] + mov r0, #2 + str r0, [r4] + b _021D824E +_021D7ECC: + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + cmp r0, #0 + beq _021D7EE6 + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + sub r1, r0, #1 + add r0, r4, #0 + add r0, #0xa8 + strh r1, [r0] + b _021D824E +_021D7EE6: + add r0, r4, #0 + mov r1, #1 + add r0, #0xa8 + strh r1, [r0] + mov r0, #5 + str r0, [r4] + b _021D824E +_021D7EF4: + bl FUN_0200E308 + cmp r0, #1 + bne _021D7F94 + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + cmp r0, #0 + beq _021D7F36 + mov r0, #5 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + add r0, r6, #0 + ldr r3, _021D80F4 ; =0x00007FFF + add r1, r0, #0 + add r2, r0, #0 + str r5, [sp, #8] + bl FUN_0200E1D0 + ldr r0, _021D80F0 ; =0x00000116 + mov r1, #2 + strh r1, [r4, r0] + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + sub r1, r0, #1 + add r0, r4, #0 + add r0, #0xa8 + strh r1, [r0] + mov r0, #6 + str r0, [r4] + b _021D824E +_021D7F36: + add r0, r4, #0 + mov r1, #0x28 + add r0, #0xa8 + strh r1, [r0] + mov r0, #7 + str r0, [r4] + b _021D824E +_021D7F44: + bl FUN_0200E308 + cmp r0, #1 + bne _021D7F94 + add r0, r7, #0 + add r1, r5, #0 + add r2, r4, #0 + bl MOD63_021D85D8 + mov r0, #0x10 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r1, #1 + ldr r3, _021D80F4 ; =0x00007FFF + add r0, r6, #0 + add r2, r1, #0 + str r5, [sp, #8] + bl FUN_0200E1D0 + mov r0, #5 + str r0, [r4] + b _021D824E +_021D7F72: + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + cmp r0, #0 + beq _021D7FA0 + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + sub r1, r0, #1 + add r0, r4, #0 + add r0, #0xa8 + strh r1, [r0] + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + cmp r0, #0xf + beq _021D7F96 +_021D7F94: + b _021D824E +_021D7F96: + add r0, r4, #0 + mov r1, #2 + add r0, #0xa4 + str r1, [r0] + b _021D824E +_021D7FA0: + mov r0, #8 + str r0, [r4] + b _021D824E +_021D7FA6: + add r0, r4, #0 + add r0, #0xfc + ldr r2, [r0] + add r0, r4, #0 + add r0, #0xbc + ldr r1, [r0] + mov r5, #1 + cmp r1, r2 + ble _021D7FDE + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + sub r1, r1, r2 + cmp r1, r0 + ble _021D7FD4 + add r1, r4, #0 + add r1, #0xbc + ldr r1, [r1] + sub r1, r1, r0 + add r0, r4, #0 + add r0, #0xbc + str r1, [r0] + b _021D7FDA +_021D7FD4: + add r0, r4, #0 + add r0, #0xbc + str r2, [r0] +_021D7FDA: + mov r5, #0 + b _021D8006 +_021D7FDE: + cmp r1, r2 + bge _021D8006 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + sub r1, r2, r1 + cmp r1, r0 + ble _021D7FFE + add r1, r4, #0 + add r1, #0xbc + ldr r1, [r1] + add r1, r1, r0 + add r0, r4, #0 + add r0, #0xbc + str r1, [r0] + b _021D8004 +_021D7FFE: + add r0, r4, #0 + add r0, #0xbc + str r2, [r0] +_021D8004: + mov r5, #0 +_021D8006: + mov r0, #1 + add r1, r4, #0 + lsl r0, r0, #8 + add r1, #0xc0 + ldr r2, [r4, r0] + ldr r1, [r1] + cmp r1, r2 + ble _021D803A + add r0, #0x18 + ldr r0, [r4, r0] + sub r1, r1, r2 + cmp r1, r0 + ble _021D8030 + add r1, r4, #0 + add r1, #0xc0 + ldr r1, [r1] + sub r1, r1, r0 + add r0, r4, #0 + add r0, #0xc0 + str r1, [r0] + b _021D8036 +_021D8030: + add r0, r4, #0 + add r0, #0xc0 + str r2, [r0] +_021D8036: + mov r5, #0 + b _021D8060 +_021D803A: + cmp r1, r2 + bge _021D8060 + add r0, #0x18 + ldr r0, [r4, r0] + sub r1, r2, r1 + cmp r1, r0 + ble _021D8058 + add r1, r4, #0 + add r1, #0xc0 + ldr r1, [r1] + add r1, r1, r0 + add r0, r4, #0 + add r0, #0xc0 + str r1, [r0] + b _021D805E +_021D8058: + add r0, r4, #0 + add r0, #0xc0 + str r2, [r0] +_021D805E: + mov r5, #0 +_021D8060: + mov r0, #0x41 + add r1, r4, #0 + lsl r0, r0, #2 + add r1, #0xc4 + ldr r2, [r4, r0] + ldr r1, [r1] + cmp r1, r2 + ble _021D8094 + add r0, #0x14 + ldr r0, [r4, r0] + sub r1, r1, r2 + cmp r1, r0 + ble _021D808A + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + sub r1, r1, r0 + add r0, r4, #0 + add r0, #0xc4 + str r1, [r0] + b _021D8090 +_021D808A: + add r0, r4, #0 + add r0, #0xc4 + str r2, [r0] +_021D8090: + mov r5, #0 + b _021D80BA +_021D8094: + cmp r1, r2 + bge _021D80BA + add r0, #0x14 + ldr r0, [r4, r0] + sub r1, r2, r1 + cmp r1, r0 + ble _021D80B2 + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r1, r1, r0 + add r0, r4, #0 + add r0, #0xc4 + str r1, [r0] + b _021D80B8 +_021D80B2: + add r0, r4, #0 + add r0, #0xc4 + str r2, [r0] +_021D80B8: + mov r5, #0 +_021D80BA: + add r0, r4, #0 + add r0, #0xe4 + ldr r2, [r0] + add r0, r4, #0 + add r0, #0xc8 + ldr r1, [r0] + cmp r1, r2 + ble _021D80F8 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + sub r1, r1, r2 + cmp r1, r0 + ble _021D80E6 + add r1, r4, #0 + add r1, #0xc8 + ldr r1, [r1] + sub r1, r1, r0 + add r0, r4, #0 + add r0, #0xc8 + str r1, [r0] + b _021D80EC +_021D80E6: + add r0, r4, #0 + add r0, #0xc8 + str r2, [r0] +_021D80EC: + mov r5, #0 + b _021D8120 + .align 2, 0 +_021D80F0: .word 0x00000116 +_021D80F4: .word 0x00007FFF +_021D80F8: + cmp r1, r2 + bge _021D8120 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + sub r1, r2, r1 + cmp r1, r0 + ble _021D8118 + add r1, r4, #0 + add r1, #0xc8 + ldr r1, [r1] + add r1, r1, r0 + add r0, r4, #0 + add r0, #0xc8 + str r1, [r0] + b _021D811E +_021D8118: + add r0, r4, #0 + add r0, #0xc8 + str r2, [r0] +_021D811E: + mov r5, #0 +_021D8120: + add r0, r4, #0 + add r0, #0xe8 + ldr r2, [r0] + add r0, r4, #0 + add r0, #0xcc + ldr r1, [r0] + cmp r1, r2 + ble _021D8156 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + sub r1, r1, r2 + cmp r1, r0 + ble _021D814C + add r1, r4, #0 + add r1, #0xcc + ldr r1, [r1] + sub r1, r1, r0 + add r0, r4, #0 + add r0, #0xcc + str r1, [r0] + b _021D8152 +_021D814C: + add r0, r4, #0 + add r0, #0xcc + str r2, [r0] +_021D8152: + mov r5, #0 + b _021D817E +_021D8156: + cmp r1, r2 + bge _021D817E + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + sub r1, r2, r1 + cmp r1, r0 + ble _021D8176 + add r1, r4, #0 + add r1, #0xcc + ldr r1, [r1] + add r1, r1, r0 + add r0, r4, #0 + add r0, #0xcc + str r1, [r0] + b _021D817C +_021D8176: + add r0, r4, #0 + add r0, #0xcc + str r2, [r0] +_021D817C: + mov r5, #0 +_021D817E: + add r0, r4, #0 + add r0, #0xec + ldr r2, [r0] + add r0, r4, #0 + add r0, #0xd0 + ldr r1, [r0] + cmp r1, r2 + ble _021D81B4 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + sub r1, r1, r2 + cmp r1, r0 + ble _021D81AA + add r1, r4, #0 + add r1, #0xd0 + ldr r1, [r1] + sub r1, r1, r0 + add r0, r4, #0 + add r0, #0xd0 + str r1, [r0] + b _021D81B0 +_021D81AA: + add r0, r4, #0 + add r0, #0xd0 + str r2, [r0] +_021D81B0: + mov r5, #0 + b _021D81DC +_021D81B4: + cmp r1, r2 + bge _021D81DC + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + sub r1, r2, r1 + cmp r1, r0 + ble _021D81D4 + add r1, r4, #0 + add r1, #0xd0 + ldr r1, [r1] + add r1, r1, r0 + add r0, r4, #0 + add r0, #0xd0 + str r1, [r0] + b _021D81DA +_021D81D4: + add r0, r4, #0 + add r0, #0xd0 + str r2, [r0] +_021D81DA: + mov r5, #0 +_021D81DC: + add r1, r4, #0 + add r1, #0xa0 + add r0, r4, #0 + ldr r1, [r1] + add r0, #0xbc + bl FUN_0201F04C + add r1, r4, #0 + add r1, #0xa0 + add r0, r4, #0 + ldr r1, [r1] + add r0, #0xc8 + bl FUN_0201F05C + cmp r5, #1 + bne _021D824E + mov r0, #4 + mov r1, #1 + bl FUN_0201E74C + mov r0, #2 + mov r1, #0 + bl FUN_0201E74C + mov r0, #2 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #1 + bl FUN_0201E74C + add r0, r4, #0 + mov r1, #0x5a + add r0, #0xa8 + strh r1, [r0] + add r0, r4, #0 + mov r1, #1 + add r0, #0xa4 + str r1, [r0] + mov r0, #9 + str r0, [r4] + b _021D824E +_021D8232: + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + cmp r0, #0 + beq _021D824C + add r0, r4, #0 + add r0, #0xa8 + ldrh r0, [r0] + sub r1, r0, #1 + add r0, r4, #0 + add r0, #0xa8 + strh r1, [r0] + b _021D824E +_021D824C: + mov r6, #1 +_021D824E: + add r0, r4, #0 + bl MOD63_021D8650 + add r0, r4, #4 + bl MOD63_021D798C + add r0, r6, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD63_021D7D74 + + thumb_func_start MOD63_021D8260 +MOD63_021D8260: ; 0x021D8260 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5] + mov r4, #0 + cmp r0, #0 + beq _021D8272 + cmp r0, #1 + beq _021D82FC + b _021D8350 +_021D8272: + add r1, r5, #0 + add r1, #0xa0 + add r0, r5, #0 + ldr r1, [r1] + add r0, #0xfc + bl FUN_0201F04C + add r1, r5, #0 + add r1, #0xa0 + add r0, r5, #0 + ldr r1, [r1] + add r0, #0xe4 + bl FUN_0201F05C + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #1 + bl FUN_0201E74C + mov r0, #4 + mov r1, #1 + bl FUN_0201E74C + mov r0, #2 + add r1, r4, #0 + bl FUN_0201E74C + mov r0, #2 + mov r1, #1 + bl FUN_0201E6E4 + add r0, r4, #0 + bl FUN_0200E394 + mov r0, #1 + bl FUN_0200E394 + add r0, r4, #0 + mov r1, #6 + mov r2, #1 + bl FUN_0200A274 + add r0, r4, #0 + mov r1, #7 + mov r2, #2 + bl FUN_0200A274 + add r0, r5, #0 + mov r1, #2 + add r0, #0xa4 + str r1, [r0] + ldr r1, _021D835C ; =0x00007FFF + mov r0, #1 + bl FUN_020B8404 + add r0, r5, #0 + add r1, r4, #0 + add r0, #0xa8 + strh r1, [r0] + mov r0, #1 + str r0, [r5] + b _021D8350 +_021D82FC: + add r0, r5, #0 + add r0, #0xd4 + ldr r0, [r0] + cmp r0, #1 + bne _021D8328 + add r0, r5, #0 + add r0, #0xa8 + ldrh r0, [r0] + cmp r0, #0 + bne _021D831A + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E74C + b _021D8330 +_021D831A: + cmp r0, #0x10 + bne _021D8330 + mov r0, #1 + add r1, r4, #0 + bl FUN_0201E74C + b _021D8330 +_021D8328: + mov r0, #1 + add r1, r4, #0 + bl FUN_0201E74C +_021D8330: + add r0, r5, #0 + add r0, #0xa8 + ldrh r0, [r0] + mov r4, #1 + add r1, r0, #1 + add r0, r5, #0 + add r0, #0xa8 + strh r1, [r0] + add r0, r5, #0 + add r0, #0xa8 + ldrh r1, [r0] + mov r0, #0x1f + and r1, r0 + add r0, r5, #0 + add r0, #0xa8 + strh r1, [r0] +_021D8350: + add r0, r5, #4 + bl MOD63_021D798C + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D835C: .word 0x00007FFF + thumb_func_end MOD63_021D8260 + + thumb_func_start MOD63_021D8360 +MOD63_021D8360: ; 0x021D8360 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, #0xa0 + ldr r0, [r0] + add r4, r1, #0 + add r6, r2, #0 + bl FUN_0201EB70 + add r0, r5, #4 + bl MOD63_021D7970 + add r0, r4, #0 + add r1, r6, #0 + add r2, r5, #0 + bl MOD63_021D8644 + ldr r2, _021D839C ; =0x04000050 + mov r3, #0 + strh r3, [r2] + add r2, #0x10 + ldrh r1, [r2] + ldr r0, _021D83A0 ; =0x0000CFDF + and r0, r1 + strh r0, [r2] + ldr r0, _021D83A4 ; =0x021C4918 + strb r3, [r0, #5] + bl FUN_0201E7A0 + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D839C: .word 0x04000050 +_021D83A0: .word 0x0000CFDF +_021D83A4: .word 0x021C4918 + thumb_func_end MOD63_021D8360 + + thumb_func_start MOD63_021D83A8 +MOD63_021D83A8: ; 0x021D83A8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + mov r0, #0 + str r0, [sp] + add r4, r1, #0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r1, #7 + add r6, r2, #0 + mov r0, #0x30 + add r2, r5, #0 + add r3, r1, #0 + str r4, [sp, #0xc] + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x30 + mov r1, #0xb + add r2, r5, #0 + mov r3, #3 + str r4, [sp, #0xc] + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x30 + mov r1, #8 + add r2, r5, #0 + mov r3, #7 + str r4, [sp, #0xc] + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x30 + mov r1, #0xc + add r2, r5, #0 + mov r3, #3 + str r4, [sp, #0xc] + bl FUN_020068C8 + ldr r0, _021D85C8 ; =0x020ECAC0 + ldrb r7, [r0] + cmp r7, #0xa + bne _021D841A + mov r0, #0xd + mov r1, #9 + str r0, [sp, #0x18] + b _021D8420 +_021D841A: + mov r0, #0xe + mov r1, #0xa + str r0, [sp, #0x18] +_021D8420: + mov r3, #0 + str r3, [sp] + mov r0, #0x30 + mov r2, #4 + str r4, [sp, #4] + bl FUN_02006930 + mov r2, #0 + str r2, [sp] + ldr r1, [sp, #0x18] + mov r0, #0x30 + add r3, r2, #0 + str r4, [sp, #4] + bl FUN_02006930 + cmp r7, #0xa + bne _021D8448 + mov r1, #1 + mov r7, #2 + b _021D844C +_021D8448: + mov r1, #3 + mov r7, #4 +_021D844C: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x30 + add r2, r5, #0 + mov r3, #6 + str r4, [sp, #0xc] + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r3, #1 + mov r0, #0x30 + add r1, r7, #0 + mov r2, #6 + lsl r3, r3, #0xe + str r4, [sp, #4] + bl FUN_02006930 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + str r1, [sp, #8] + mov r0, #0x30 + add r2, r5, #0 + mov r3, #6 + str r4, [sp, #0xc] + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x80 + mov r1, #0x11 + add r2, r5, #0 + mov r3, #5 + str r4, [sp, #0xc] + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r1, #0x10 + mov r0, #0x80 + mov r2, #6 + lsl r3, r1, #9 + str r4, [sp, #4] + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x80 + mov r1, #0xf + add r2, r5, #0 + mov r3, #5 + str r4, [sp, #0xc] + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x30 + mov r1, #0xf + add r2, r5, #0 + mov r3, #1 + str r4, [sp, #0xc] + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x30 + mov r1, #0x11 + add r2, r5, #0 + mov r3, #1 + str r4, [sp, #0xc] + bl FUN_020068C8 + mov r0, #0x60 + str r0, [sp] + mov r0, #0x30 + mov r1, #0x10 + mov r2, #0 + mov r3, #0x20 + str r4, [sp, #4] + bl FUN_02006930 + mov r0, #0 + add r1, r0, #0 + bl FUN_02017FE4 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + add r3, r4, #0 + bl FUN_02017F18 + ldr r2, _021D85CC ; =0x00000227 + mov r0, #1 + mov r1, #0x1a + add r3, r4, #0 + bl FUN_0200A86C + add r7, r0, #0 + mov r0, #0x40 + add r1, r4, #0 + bl FUN_020219F4 + add r1, r6, #0 + add r4, r0, #0 + ldr r2, _021D85D0 ; =0x021DB9A0 + add r0, r5, #0 + add r1, #0xac + bl FUN_02019150 + mov r1, #0 + mov r0, #0xe0 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r6, #0 + add r0, #0xac + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + add r0, r7, #0 + mov r1, #0 + add r2, r4, #0 + bl FUN_0200A8E0 + add r3, r6, #0 + add r3, #0xb3 + ldrb r3, [r3] + mov r0, #0 + add r1, r4, #0 + mov r2, #1 + lsl r3, r3, #3 + bl FUN_02002F40 + mov r1, #0 + add r3, r0, #0 + str r1, [sp] + ldr r0, _021D85D4 ; =0x00010100 + str r1, [sp, #4] + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + add r6, #0xac + str r1, [sp, #0x10] + add r0, r6, #0 + add r2, r4, #0 + str r1, [sp, #0x14] + bl FUN_0201BE3C + add r0, r4, #0 + bl FUN_02021A20 + add r0, r7, #0 + bl FUN_0200A8B8 + mov r1, #0x15 + add r0, sp, #0x1c + strh r1, [r0, #2] + strh r1, [r0] + add r1, sp, #0x1c + mov r0, #4 + add r1, #2 + mov r2, #2 + mov r3, #0x42 + bl FUN_02017FB4 + mov r0, #4 + add r1, sp, #0x1c + mov r2, #2 + mov r3, #0x44 + bl FUN_02017FB4 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D85C8: .word 0x020ECAC0 +_021D85CC: .word 0x00000227 +_021D85D0: .word 0x021DB9A0 +_021D85D4: .word 0x00010100 + thumb_func_end MOD63_021D83A8 + + thumb_func_start MOD63_021D85D8 +MOD63_021D85D8: ; 0x021D85D8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r2, #0xa8 + add r7, r0, #0 + ldrh r0, [r2] + add r5, r1, #0 + cmp r0, #0 + bne _021D863A + ldr r0, _021D8640 ; =0x020ECAC0 + ldrb r0, [r0] + cmp r0, #0xa + bne _021D85F8 + mov r1, #0xb + mov r6, #0xa + mov r4, #0xc + b _021D85FE +_021D85F8: + mov r1, #8 + mov r6, #7 + mov r4, #9 +_021D85FE: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x80 + add r2, r7, #0 + mov r3, #5 + str r5, [sp, #0xc] + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #0x80 + add r1, r6, #0 + mov r2, #6 + lsl r3, r0, #6 + str r5, [sp, #4] + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x80 + add r1, r4, #0 + add r2, r7, #0 + mov r3, #5 + str r5, [sp, #0xc] + bl FUN_020068C8 +_021D863A: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8640: .word 0x020ECAC0 + thumb_func_end MOD63_021D85D8 + + thumb_func_start MOD63_021D8644 +MOD63_021D8644: ; 0x021D8644 + ldr r3, _021D864C ; =FUN_02019178 + add r2, #0xac + add r0, r2, #0 + bx r3 + .align 2, 0 +_021D864C: .word FUN_02019178 + thumb_func_end MOD63_021D8644 + + thumb_func_start MOD63_021D8650 +MOD63_021D8650: ; 0x021D8650 + push {r4, lr} + ldr r1, _021D86DC ; =0x00000116 + ldrh r2, [r0, r1] + cmp r2, #3 + bhi _021D86B2 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021D8666: ; jump table + .short _021D866E - _021D8666 - 2 ; case 0 + .short _021D86B2 - _021D8666 - 2 ; case 1 + .short _021D867A - _021D8666 - 2 ; case 2 + .short _021D8698 - _021D8666 - 2 ; case 3 +_021D866E: + mov r3, #5 + sub r2, r1, #2 + strh r3, [r0, r2] + mov r2, #1 + strh r2, [r0, r1] + b _021D86B2 +_021D867A: + sub r2, r1, #2 + ldrh r2, [r0, r2] + add r3, r2, #2 + sub r2, r1, #2 + strh r3, [r0, r2] + ldrh r2, [r0, r2] + cmp r2, #0x1f + blo _021D86B2 + mov r3, #0x1f + add r2, r3, #0 + add r2, #0xf5 + strh r3, [r0, r2] + mov r2, #1 + strh r2, [r0, r1] + b _021D86B2 +_021D8698: + sub r2, r1, #2 + ldrh r2, [r0, r2] + sub r3, r2, #2 + sub r2, r1, #2 + strh r3, [r0, r2] + ldrh r2, [r0, r2] + cmp r2, #5 + bhi _021D86B2 + mov r3, #5 + sub r2, r1, #2 + strh r3, [r0, r2] + mov r2, #1 + strh r2, [r0, r1] +_021D86B2: + mov r1, #0x45 + lsl r1, r1, #2 + ldrh r3, [r0, r1] + mov r1, #0x1f + lsl r1, r1, #0xa + lsl r2, r3, #0xa + and r1, r2 + add r4, r3, #0 + mov r2, #0x1f + and r4, r2 + lsl r3, r3, #5 + lsl r2, r2, #5 + and r2, r3 + orr r2, r4 + orr r1, r2 + lsl r1, r1, #0x10 + mov r0, #1 + lsr r1, r1, #0x10 + bl FUN_020B8404 + pop {r4, pc} + .align 2, 0 +_021D86DC: .word 0x00000116 + thumb_func_end MOD63_021D8650 + + thumb_func_start MOD63_021D86E0 +MOD63_021D86E0: ; 0x021D86E0 + push {r3, r4, r5, lr} + sub sp, #0x18 + add r4, r0, #0 + ldr r0, _021D8858 ; =0x020ECAC0 + ldrb r0, [r0] + cmp r0, #0xa + bne _021D8788 + add r0, r4, #0 + mov r2, #0 + add r0, #0xd8 + str r2, [r0] + mov r1, #0x41 + add r0, r4, #0 + mov r3, #0x12 + lsl r1, r1, #0xc + add r0, #0xdc + str r1, [r0] + add r0, r4, #0 + mov r5, #0xf6 + lsl r3, r3, #0xe + add r0, #0xe0 + str r3, [r0] + mov r3, #0xc3 + add r0, r4, #0 + lsl r3, r3, #0xc + add r0, #0xe4 + str r3, [r0] + mov r0, #2 + add r3, r4, #0 + lsl r0, r0, #0x10 + add r3, #0xe8 + str r0, [r3] + add r3, r4, #0 + lsl r5, r5, #0xc + add r3, #0xec + str r5, [r3] + add r3, r4, #0 + add r3, #0xf0 + str r2, [r3] + mov r5, #0x5a + add r3, r4, #0 + lsl r5, r5, #0xc + add r3, #0xf4 + str r5, [r3] + add r3, r4, #0 + add r3, #0xf8 + str r2, [r3] + add r2, r4, #0 + ldr r3, _021D885C ; =0xFFFFE000 + add r2, #0xfc + str r3, [r2] + mov r2, #0x1f + lsl r2, r2, #0xe + lsr r0, r0, #9 + str r2, [r4, r0] + lsr r0, r1, #0xa + ldr r2, _021D8860 ; =0xFFFDA000 + ldr r1, _021D8864 ; =0xFFFFF6E3 + str r2, [r4, r0] + mov r0, #0x42 + lsl r0, r0, #2 + ldr r3, _021D8868 ; =0x00000A2B + strh r1, [r4, r0] + add r2, r0, #2 + strh r3, [r4, r2] + add r3, r1, #0 + add r3, #0xc6 + add r2, r0, #4 + strh r3, [r4, r2] + add r1, #0x42 + add r2, r0, #6 + strh r1, [r4, r2] + add r1, r0, #0 + ldr r2, _021D886C ; =0x000007A1 + add r1, #8 + strh r2, [r4, r1] + add r1, r0, #0 + ldr r2, _021D8870 ; =0xFFFFF513 + add r1, #0xa + strh r2, [r4, r1] + mov r1, #3 + lsl r1, r1, #0xc + add r0, #0x10 + b _021D8828 +_021D8788: + add r0, r4, #0 + ldr r1, _021D8874 ; =0xFFFBF000 + add r0, #0xd8 + str r1, [r0] + mov r1, #0x29 + add r0, r4, #0 + lsl r1, r1, #0xc + add r0, #0xdc + str r1, [r0] + mov r1, #0x13 + add r0, r4, #0 + lsl r1, r1, #0xc + add r0, #0xe0 + str r1, [r0] + add r0, r4, #0 + ldr r1, _021D8878 ; =0xFFF6C000 + add r0, #0xe4 + str r1, [r0] + mov r1, #0x3a + add r0, r4, #0 + mov r2, #2 + lsl r1, r1, #0xc + add r0, #0xe8 + str r1, [r0] + mov r1, #0xbe + add r0, r4, #0 + lsl r1, r1, #0xc + add r0, #0xec + str r1, [r0] + add r0, r4, #0 + mov r1, #0 + add r0, #0xf0 + str r1, [r0] + mov r1, #0xb + add r0, r4, #0 + lsl r1, r1, #0xc + add r0, #0xf4 + str r1, [r0] + mov r1, #0x12 + add r0, r4, #0 + lsl r1, r1, #0xc + add r0, #0xf8 + str r1, [r0] + add r0, r4, #0 + lsl r2, r2, #0xe + add r0, #0xfc + str r2, [r0] + ldr r1, _021D887C ; =0xFFFFB000 + lsr r0, r2, #7 + str r1, [r4, r0] + mov r0, #0x41 + lsr r1, r2, #3 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r2, _021D8880 ; =0x00000653 + add r1, r0, #4 + strh r2, [r4, r1] + ldr r2, _021D8884 ; =0xFFFFF71C + add r1, r0, #6 + strh r2, [r4, r1] + add r1, r0, #0 + sub r2, #0x14 + add r1, #8 + strh r2, [r4, r1] + add r1, r0, #0 + ldr r2, _021D8888 ; =0x0000091B + add r1, #0xa + strh r2, [r4, r1] + add r1, r0, #0 + ldr r2, _021D888C ; =0xFFFFFB61 + add r1, #0xc + strh r2, [r4, r1] + add r1, r0, #0 + mov r2, #0xc5 + lsl r2, r2, #4 + add r1, #0xe + strh r2, [r4, r1] + mov r1, #3 + lsl r1, r1, #0xc + add r0, #0x14 +_021D8828: + str r1, [r4, r0] + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xfc + add r1, #0xe4 + add r2, sp, #0xc + bl VEC_Subtract + add r0, sp, #0xc + add r1, sp, #0 + bl VEC_Normalize + mov r0, #0x42 + ldr r1, [sp] + lsl r0, r0, #2 + strh r1, [r4, r0] + add r1, r0, #2 + ldr r2, [sp, #4] + add r0, r0, #4 + strh r2, [r4, r1] + ldr r1, [sp, #8] + strh r1, [r4, r0] + add sp, #0x18 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8858: .word 0x020ECAC0 +_021D885C: .word 0xFFFFE000 +_021D8860: .word 0xFFFDA000 +_021D8864: .word 0xFFFFF6E3 +_021D8868: .word 0x00000A2B +_021D886C: .word 0x000007A1 +_021D8870: .word 0xFFFFF513 +_021D8874: .word 0xFFFBF000 +_021D8878: .word 0xFFF6C000 +_021D887C: .word 0xFFFFB000 +_021D8880: .word 0x00000653 +_021D8884: .word 0xFFFFF71C +_021D8888: .word 0x0000091B +_021D888C: .word 0xFFFFFB61 + thumb_func_end MOD63_021D86E0 + + thumb_func_start MOD63_021D8890 +MOD63_021D8890: ; 0x021D8890 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D88AC ; =0x021DBD70 + add r3, sp, #0 + mov r2, #5 +_021D889A: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D889A + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D88AC: .word 0x021DBD70 + thumb_func_end MOD63_021D8890 + + thumb_func_start MOD63_021D88B0 +MOD63_021D88B0: ; 0x021D88B0 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D88CC ; =0x021DBD98 + add r3, sp, #0 + mov r2, #5 +_021D88BA: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D88BA + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D88CC: .word 0x021DBD98 + thumb_func_end MOD63_021D88B0 + + thumb_func_start MOD63_021D88D0 +MOD63_021D88D0: ; 0x021D88D0 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D88EC ; =0x021DBDC0 + add r3, sp, #0 + mov r2, #5 +_021D88DA: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D88DA + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D88EC: .word 0x021DBDC0 + thumb_func_end MOD63_021D88D0 + + thumb_func_start MOD63_021D88F0 +MOD63_021D88F0: ; 0x021D88F0 + push {r3, r4, r5, lr} + sub sp, #0xb8 + add r4, r0, #0 + ldr r0, [r4] + bl FUN_02016B94 + add r3, sp, #0xa8 + ldr r5, _021D89E8 ; =0x021DBB4C + str r0, [r4, #0xc] + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D89EC ; =0x021DBC88 + add r3, sp, #0x8c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D89F0 ; =0x021DBC6C + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D89F4 ; =0x021DBBC4 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D89F8 ; =0x021DBBFC + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D89FC ; =0x021DBC18 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + ldr r0, [r4, #0xc] + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D8A00 ; =0x021DBC34 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #7 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + add r1, r0, #0 + bl FUN_02017FE4 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + add sp, #0xb8 + pop {r3, r4, r5, pc} + nop +_021D89E8: .word 0x021DBB4C +_021D89EC: .word 0x021DBC88 +_021D89F0: .word 0x021DBC6C +_021D89F4: .word 0x021DBBC4 +_021D89F8: .word 0x021DBBFC +_021D89FC: .word 0x021DBC18 +_021D8A00: .word 0x021DBC34 + thumb_func_end MOD63_021D88F0 + + thumb_func_start MOD63_021D8A04 +MOD63_021D8A04: ; 0x021D8A04 + push {r3, r4, r5, lr} + sub sp, #0x80 + add r4, r0, #0 + ldr r0, [r4] + bl FUN_02016B94 + add r3, sp, #0x70 + ldr r5, _021D8AC4 ; =0x021DBB3C + str r0, [r4, #0xc] + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D8AC8 ; =0xC7FFFFFF + ldr r5, _021D8ACC ; =0x021DBC50 + and r1, r0 + lsl r0, r2, #1 + orr r0, r1 + str r0, [r2] + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D8AD0 ; =0x021DBCA4 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D8AD4 ; =0x021DBCC0 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D8AD8 ; =0x021DBCDC + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #0 + bl FUN_02016C18 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + add sp, #0x80 + pop {r3, r4, r5, pc} + nop +_021D8AC4: .word 0x021DBB3C +_021D8AC8: .word 0xC7FFFFFF +_021D8ACC: .word 0x021DBC50 +_021D8AD0: .word 0x021DBCA4 +_021D8AD4: .word 0x021DBCC0 +_021D8AD8: .word 0x021DBCDC + thumb_func_end MOD63_021D8A04 + + thumb_func_start MOD63_021D8ADC +MOD63_021D8ADC: ; 0x021D8ADC + push {r4, r5, lr} + sub sp, #0x9c + add r4, r0, #0 + ldr r0, [r4] + bl FUN_02016B94 + add r3, sp, #0x8c + ldr r5, _021D8BBC ; =0x021DBB6C + str r0, [r4, #0xc] + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D8BC0 ; =0xC7FFFFFF + ldr r5, _021D8BC4 ; =0x021DBCF8 + and r1, r0 + lsl r0, r2, #1 + orr r0, r1 + str r0, [r2] + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D8BC8 ; =0x021DBD14 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #1 + bl FUN_02016C18 + ldr r5, _021D8BCC ; =0x021DBD30 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #1 + bl FUN_02016C18 + ldr r5, _021D8BD0 ; =0x021DBBA8 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + ldr r0, [r4, #0xc] + add r3, r1, #0 + bl FUN_02016C18 + ldr r5, _021D8BD4 ; =0x021DBBE0 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + ldr r0, [r4, #0xc] + mov r3, #0 + bl FUN_02016C18 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + add sp, #0x9c + pop {r4, r5, pc} + nop +_021D8BBC: .word 0x021DBB6C +_021D8BC0: .word 0xC7FFFFFF +_021D8BC4: .word 0x021DBCF8 +_021D8BC8: .word 0x021DBD14 +_021D8BCC: .word 0x021DBD30 +_021D8BD0: .word 0x021DBBA8 +_021D8BD4: .word 0x021DBBE0 + thumb_func_end MOD63_021D8ADC + + thumb_func_start MOD63_021D8BD8 +MOD63_021D8BD8: ; 0x021D8BD8 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + mov r0, #4 + str r0, [sp] + ldr r0, _021D8C14 ; =MOD63_021D8C20 + mov r1, #0 + str r0, [sp, #4] + ldr r0, [r4] + mov r2, #1 + add r3, r1, #0 + bl FUN_02022318 + str r0, [r4, #0x10] + ldr r3, _021D8C18 ; =0x021064B8 + mov r0, #2 + mov r1, #0 + ldr r3, [r3] + lsl r0, r0, #0xe + add r2, r1, #0 + blx r3 + ldr r3, _021D8C1C ; =0x021064C0 + mov r0, #0x80 + ldr r3, [r3] + mov r1, #0 + mov r2, #1 + blx r3 + add sp, #8 + pop {r4, pc} + nop +_021D8C14: .word MOD63_021D8C20 +_021D8C18: .word 0x021064B8 +_021D8C1C: .word 0x021064C0 + thumb_func_end MOD63_021D8BD8 + + thumb_func_start MOD63_021D8C20 +MOD63_021D8C20: ; 0x021D8C20 + push {r3, lr} + ldr r0, _021D8C8C ; =0x04000008 + mov r1, #3 + ldrh r2, [r0] + bic r2, r1 + strh r2, [r0] + add r0, #0x58 + ldrh r2, [r0] + ldr r1, _021D8C90 ; =0xFFFFCFFD + and r2, r1 + strh r2, [r0] + ldrh r3, [r0] + add r2, r1, #2 + and r3, r2 + mov r2, #0x10 + orr r2, r3 + strh r2, [r0] + ldrh r3, [r0] + ldr r2, _021D8C94 ; =0x0000CFFB + and r2, r3 + strh r2, [r0] + add r2, r1, #2 + ldrh r3, [r0] + add r1, r1, #2 + and r3, r2 + mov r2, #8 + orr r2, r3 + strh r2, [r0] + ldrh r2, [r0] + and r2, r1 + mov r1, #0x20 + orr r1, r2 + strh r1, [r0] + ldr r0, _021D8C98 ; =0x021DBB5C + bl G3X_SetEdgeColorTable + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl G3X_SetFog + mov r0, #0 + ldr r2, _021D8C9C ; =0x00007FFF + add r1, r0, #0 + mov r3, #0x3f + str r0, [sp] + bl G3X_SetClearColor + ldr r1, _021D8CA0 ; =0xBFFF0000 + ldr r0, _021D8CA4 ; =0x04000580 + str r1, [r0] + pop {r3, pc} + nop +_021D8C8C: .word 0x04000008 +_021D8C90: .word 0xFFFFCFFD +_021D8C94: .word 0x0000CFFB +_021D8C98: .word 0x021DBB5C +_021D8C9C: .word 0x00007FFF +_021D8CA0: .word 0xBFFF0000 +_021D8CA4: .word 0x04000580 + thumb_func_end MOD63_021D8C20 + + thumb_func_start MOD63_021D8CA8 +MOD63_021D8CA8: ; 0x021D8CA8 + ldr r3, _021D8CAC ; =FUN_02009F80 + bx r3 + .align 2, 0 +_021D8CAC: .word FUN_02009F80 + thumb_func_end MOD63_021D8CA8 + + thumb_func_start MOD63_021D8CB0 +MOD63_021D8CB0: ; 0x021D8CB0 + push {r4, lr} + add r4, r0, #0 + bl FUN_02009F80 + ldr r0, [r4, #0x4c] + bl MOD63_021DB598 + pop {r4, pc} + thumb_func_end MOD63_021D8CB0 + + thumb_func_start MOD63_021D8CC0 +MOD63_021D8CC0: ; 0x021D8CC0 + push {r4, r5} + mov r0, #1 + lsl r0, r0, #0x1a + ldr r2, [r0] + ldr r1, _021D8D08 ; =0xFFFF1FFF + add r4, r0, #0 + and r2, r1 + lsr r1, r0, #0xd + orr r1, r2 + str r1, [r0] + add r4, #0x48 + ldrh r3, [r4] + mov r2, #0x3f + mov r1, #0x1f + bic r3, r2 + orr r1, r3 + mov r3, #0x20 + orr r1, r3 + strh r1, [r4] + add r4, r0, #0 + add r4, #0x4a + ldrh r5, [r4] + mov r1, #0x11 + bic r5, r2 + orr r1, r5 + orr r1, r3 + strh r1, [r4] + add r1, r0, #0 + mov r2, #0xff + add r1, #0x40 + strh r2, [r1] + ldr r1, _021D8D0C ; =0x0000209F + add r0, #0x44 + strh r1, [r0] + pop {r4, r5} + bx lr + .align 2, 0 +_021D8D08: .word 0xFFFF1FFF +_021D8D0C: .word 0x0000209F + thumb_func_end MOD63_021D8CC0 + + thumb_func_start MOD63_021D8D10 +MOD63_021D8D10: ; 0x021D8D10 + push {r4, lr} + add r4, r0, #0 + bl FUN_0200A2AC + ldr r1, _021D8D90 ; =0x00007FFF + mov r0, #0 + bl FUN_0200E3A0 + ldr r1, _021D8D90 ; =0x00007FFF + mov r0, #1 + bl FUN_0200E3A0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F34 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + mov r0, #3 + mov r1, #0x4c + lsl r2, r0, #0x11 + bl FUN_0201681C + mov r1, #0xab + add r0, r4, #0 + lsl r1, r1, #2 + mov r2, #0x4c + bl FUN_02006268 + mov r2, #0xab + mov r1, #0 + lsl r2, r2, #2 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x4c + str r0, [r4] + mov r1, #0 + mov r0, #0xaa + str r1, [r4, #8] + lsl r0, r0, #2 + strb r1, [r4, r0] + ldr r0, _021D8D94 ; =0x021C4918 + strb r1, [r0, #5] + bl FUN_0201E7A0 + bl FUN_0201B9D4 + str r0, [r4, #0x14] + mov r0, #0 + bl FUN_0201B9E0 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021D8D90: .word 0x00007FFF +_021D8D94: .word 0x021C4918 + thumb_func_end MOD63_021D8D10 + + thumb_func_start MOD63_021D8D98 +MOD63_021D8D98: ; 0x021D8D98 + push {r3, r4, r5, lr} + add r4, r1, #0 + bl FUN_02006278 + add r5, r0, #0 + mov r0, #0xaa + lsl r0, r0, #2 + ldrb r0, [r5, r0] + cmp r0, #0 + beq _021D8DD4 + ldr r0, _021D8E5C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + bne _021D8DBC + mov r0, #8 + tst r0, r1 + beq _021D8DD4 +_021D8DBC: + mov r0, #1 + str r0, [r5, #8] + ldr r1, _021D8E5C ; =0x021C48B8 + mov r0, #0 + str r0, [r1, #0x6c] + ldr r1, _021D8E60 ; =0x00007FFF + bl FUN_0200E3A0 + ldr r1, _021D8E60 ; =0x00007FFF + mov r0, #1 + bl FUN_0200E3A0 +_021D8DD4: + ldr r0, [r4] + cmp r0, #4 + bhi _021D8E42 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D8DE6: ; jump table + .short _021D8DF0 - _021D8DE6 - 2 ; case 0 + .short _021D8E00 - _021D8DE6 - 2 ; case 1 + .short _021D8E12 - _021D8DE6 - 2 ; case 2 + .short _021D8E24 - _021D8DE6 - 2 ; case 3 + .short _021D8E36 - _021D8DE6 - 2 ; case 4 +_021D8DF0: + mov r0, #0xaa + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [r5, #0x30] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8E46 +_021D8E00: + add r0, r5, #0 + bl MOD63_021D8E9C + cmp r0, #0 + beq _021D8E46 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8E46 +_021D8E12: + add r0, r5, #0 + bl MOD63_021D93F0 + cmp r0, #0 + beq _021D8E46 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8E46 +_021D8E24: + add r0, r5, #0 + bl MOD63_021DA0A8 + cmp r0, #0 + beq _021D8E46 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8E46 +_021D8E36: + ldr r1, [r5, #4] + ldr r0, _021D8E64 ; =0x00000A8C + cmp r1, r0 + blt _021D8E46 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D8E42: + bl ErrorHandling +_021D8E46: + ldr r0, [r5, #8] + cmp r0, #0 + beq _021D8E50 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D8E50: + ldr r0, [r5, #4] + add r0, r0, #1 + str r0, [r5, #4] + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_021D8E5C: .word 0x021C48B8 +_021D8E60: .word 0x00007FFF +_021D8E64: .word 0x00000A8C + thumb_func_end MOD63_021D8D98 + + thumb_func_start MOD63_021D8E68 +MOD63_021D8E68: ; 0x021D8E68 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + bl FUN_0200E31C + ldr r0, [r4, #0x14] + bl FUN_0201B9E0 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0x4c + bl FUN_020168D0 + ldr r0, _021D8E94 ; =SDK_OVERLAY_MODULE_63_ID + ldr r1, _021D8E98 ; =0x021DBAB8 + bl FUN_02000E7C + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8E94: .word SDK_OVERLAY_MODULE_63_ID +_021D8E98: .word 0x021DBAB8 + thumb_func_end MOD63_021D8E68 + + thumb_func_start MOD63_021D8E9C +MOD63_021D8E9C: ; 0x021D8E9C + push {r4, lr} + add r1, r0, #0 + ldr r0, [r1, #8] + add r4, r1, #0 + add r4, #0x18 + cmp r0, #0 + beq _021D8EAE + mov r0, #3 + strb r0, [r4] +_021D8EAE: + ldrb r0, [r4] + cmp r0, #3 + bhi _021D8F06 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D8EC0: ; jump table + .short _021D8EC8 - _021D8EC0 - 2 ; case 0 + .short _021D8ED6 - _021D8EC0 - 2 ; case 1 + .short _021D8EE6 - _021D8EC0 - 2 ; case 2 + .short _021D8EFC - _021D8EC0 - 2 ; case 3 +_021D8EC8: + add r0, r1, #0 + bl MOD63_021D8F0C + ldrb r0, [r4] + add r0, r0, #1 + strb r0, [r4] + b _021D8F06 +_021D8ED6: + add r1, #0x18 + add r0, r1, #0 + bl MOD63_021D8F38 + ldrb r0, [r4] + add r0, r0, #1 + strb r0, [r4] + b _021D8F06 +_021D8EE6: + add r0, r1, #0 + ldr r1, [r1, #4] + add r0, #0x18 + bl MOD63_021D90D0 + cmp r0, #0 + beq _021D8F06 + ldrb r0, [r4] + add r0, r0, #1 + strb r0, [r4] + b _021D8F06 +_021D8EFC: + add r0, r1, #0 + bl MOD63_021D9234 + mov r0, #1 + pop {r4, pc} +_021D8F06: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD63_021D8E9C + + thumb_func_start MOD63_021D8F0C +MOD63_021D8F0C: ; 0x021D8F0C + push {r4, lr} + add r4, r0, #0 + bl MOD63_021D8890 + add r0, r4, #0 + bl MOD63_021D88F0 + ldr r0, [r4, #0xc] + str r0, [r4, #0x24] + bl MOD63_021DAEF8 + str r0, [r4, #0x2c] + ldr r0, _021D8F34 ; =MOD63_021D8CA8 + add r1, r4, #0 + bl FUN_02015F10 + mov r0, #1 + strb r0, [r4, #0x1a] + pop {r4, pc} + nop +_021D8F34: .word MOD63_021D8CA8 + thumb_func_end MOD63_021D8F0C + + thumb_func_start MOD63_021D8F38 +MOD63_021D8F38: ; 0x021D8F38 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x13 + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x13 + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x14 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x15 + mov r3, #6 + bl FUN_020068C8 + mov r2, #0 + str r2, [sp] + mov r0, #0x4c + str r0, [sp, #4] + mov r0, #0x80 + mov r1, #0x12 + add r3, r2, #0 + bl FUN_02006930 + mov r3, #0 + str r3, [sp] + mov r0, #0x4c + str r0, [sp, #4] + mov r0, #0x80 + mov r1, #0x12 + mov r2, #4 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + mov r1, #1 + ldr r2, [r4, #0xc] + mov r0, #0x80 + add r3, r1, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #2 + mov r3, #1 + bl FUN_020068C8 + mov r1, #0 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x4c + str r0, [sp, #4] + mov r0, #0x80 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x16 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x16 + mov r3, #7 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x48 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x49 + mov r3, #5 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x4c + str r0, [sp, #4] + mov r0, #0x80 + mov r1, #0x47 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E74C + mov r0, #0x10 + str r0, [sp] + ldr r0, _021D90C8 ; =0x04000050 + mov r1, #2 + mov r2, #8 + mov r3, #0 + bl G2x_SetBlendAlpha_ + mov r0, #0x10 + str r0, [sp] + ldr r0, _021D90CC ; =0x04001050 + mov r1, #2 + mov r2, #8 + mov r3, #0 + bl G2x_SetBlendAlpha_ + mov r0, #1 + add r1, r0, #0 + bl OS_WaitIrq + mov r0, #0 + bl FUN_0200E394 + mov r0, #1 + bl FUN_0200E394 + bl FUN_0201E788 + add sp, #0x10 + pop {r4, pc} + nop +_021D90C8: .word 0x04000050 +_021D90CC: .word 0x04001050 + thumb_func_end MOD63_021D8F38 + + thumb_func_start MOD63_021D90D0 +MOD63_021D90D0: ; 0x021D90D0 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4, #0x14] + add r5, r1, #0 + bl MOD63_021DB1AC + ldrb r0, [r4, #1] + cmp r0, #5 + bls _021D90E6 + b _021D9208 +_021D90E6: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D90F2: ; jump table + .short _021D90FE - _021D90F2 - 2 ; case 0 + .short _021D9122 - _021D90F2 - 2 ; case 1 + .short _021D9148 - _021D90F2 - 2 ; case 2 + .short _021D91AE - _021D90F2 - 2 ; case 3 + .short _021D91CE - _021D90F2 - 2 ; case 4 + .short _021D91FA - _021D90F2 - 2 ; case 5 +_021D90FE: + mov r2, #0 + strb r2, [r4, #7] + strb r2, [r4, #6] + ldr r0, _021D9210 ; =MOD63_021D92A4 + strb r2, [r4, #8] + add r1, r4, #0 + bl FUN_0200CA44 + str r0, [r4, #0x10] + mov r0, #1 + ldr r1, _021D9214 ; =0x00000494 + add r2, r0, #0 + bl FUN_0200433C + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9208 +_021D9122: + ldrb r0, [r4, #8] + cmp r0, #0 + beq _021D9208 + cmp r5, #0x73 + blt _021D9208 + mov r2, #0 + strb r2, [r4, #7] + mov r0, #0x10 + strb r0, [r4, #6] + ldr r0, _021D9218 ; =MOD63_021D9300 + strb r2, [r4, #8] + add r1, r4, #0 + bl FUN_0200CA44 + str r0, [r4, #0x10] + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9208 +_021D9148: + ldrb r0, [r4, #8] + cmp r0, #0 + beq _021D9208 + ldr r0, _021D921C ; =0x00000109 + cmp r5, r0 + blt _021D9208 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #0 + bl FUN_0201E74C + mov r0, #0x10 + str r0, [sp] + ldr r0, _021D9220 ; =0x04000050 + mov r1, #4 + mov r2, #8 + mov r3, #0 + bl G2x_SetBlendAlpha_ + mov r0, #0x10 + str r0, [sp] + ldr r0, _021D9224 ; =0x04001050 + mov r1, #4 + mov r2, #8 + mov r3, #0 + bl G2x_SetBlendAlpha_ + mov r0, #4 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #1 + bl FUN_0201E74C + mov r2, #0 + strb r2, [r4, #7] + strb r2, [r4, #6] + ldr r0, _021D9228 ; =MOD63_021D9360 + strb r2, [r4, #8] + add r1, r4, #0 + bl FUN_0200CA44 + str r0, [r4, #0x10] + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9208 +_021D91AE: + ldrb r0, [r4, #8] + cmp r0, #0 + beq _021D9208 + mov r2, #0 + strb r2, [r4, #7] + strb r2, [r4, #6] + ldr r0, _021D922C ; =MOD63_021D93A8 + strb r2, [r4, #8] + add r1, r4, #0 + bl FUN_0200CA44 + str r0, [r4, #0x10] + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9208 +_021D91CE: + ldrb r0, [r4, #8] + cmp r0, #0 + beq _021D9208 + ldr r0, _021D9230 ; =0x000001EA + cmp r5, r0 + blt _021D9208 + mov r0, #0x12 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #2 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9208 +_021D91FA: + bl FUN_0200E308 + cmp r0, #0 + beq _021D9208 + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021D9208: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + nop +_021D9210: .word MOD63_021D92A4 +_021D9214: .word 0x00000494 +_021D9218: .word MOD63_021D9300 +_021D921C: .word 0x00000109 +_021D9220: .word 0x04000050 +_021D9224: .word 0x04001050 +_021D9228: .word MOD63_021D9360 +_021D922C: .word MOD63_021D93A8 +_021D9230: .word 0x000001EA + thumb_func_end MOD63_021D90D0 + + thumb_func_start MOD63_021D9234 +MOD63_021D9234: ; 0x021D9234 + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + ldrb r0, [r4, #0x1a] + cmp r0, #0 + beq _021D9286 + ldr r0, [r4, #0x2c] + bl MOD63_021DAF9C + ldr r0, [r4, #0xc] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #6 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #7 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #5 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + bl FUN_02016A18 + mov r0, #0 + strb r0, [r4, #0x1a] +_021D9286: + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _021D92A0 + ldr r0, [r4, #8] + cmp r0, #0 + bne _021D9296 + bl ErrorHandling +_021D9296: + ldr r0, [r4, #0x28] + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x28] +_021D92A0: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD63_021D9234 + + thumb_func_start MOD63_021D92A4 +MOD63_021D92A4: ; 0x021D92A4 + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + ldrb r1, [r4, #7] + add r1, r1, #1 + strb r1, [r4, #7] + ldrb r1, [r4, #7] + cmp r1, #6 + blo _021D92C0 + mov r1, #0 + strb r1, [r4, #7] + ldrb r1, [r4, #6] + add r1, r1, #1 + strb r1, [r4, #6] +_021D92C0: + ldrb r1, [r4, #6] + cmp r1, #0x10 + blo _021D92D2 + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x10] + mov r0, #1 + strb r0, [r4, #8] +_021D92D2: + mov r0, #0x10 + str r0, [sp] + ldrb r3, [r4, #6] + ldr r0, _021D92F8 ; =0x04000050 + mov r1, #2 + mov r2, #8 + bl G2x_SetBlendAlpha_ + mov r0, #0x10 + str r0, [sp] + ldrb r3, [r4, #6] + ldr r0, _021D92FC ; =0x04001050 + mov r1, #2 + mov r2, #8 + bl G2x_SetBlendAlpha_ + add sp, #4 + pop {r3, r4, pc} + nop +_021D92F8: .word 0x04000050 +_021D92FC: .word 0x04001050 + thumb_func_end MOD63_021D92A4 + + thumb_func_start MOD63_021D9300 +MOD63_021D9300: ; 0x021D9300 + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + ldrb r1, [r4, #7] + add r1, r1, #1 + strb r1, [r4, #7] + ldrb r1, [r4, #7] + cmp r1, #4 + blo _021D931C + mov r1, #0 + strb r1, [r4, #7] + ldrb r1, [r4, #6] + sub r1, r1, #1 + strb r1, [r4, #6] +_021D931C: + ldrb r1, [r4, #6] + cmp r1, #0 + bne _021D9332 + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x10] + mov r1, #1 + strb r1, [r4, #8] + ldr r0, [r4, #0x18] + strb r1, [r0] +_021D9332: + mov r0, #0x10 + str r0, [sp] + ldrb r3, [r4, #6] + ldr r0, _021D9358 ; =0x04000050 + mov r1, #2 + mov r2, #8 + bl G2x_SetBlendAlpha_ + mov r0, #0x10 + str r0, [sp] + ldrb r3, [r4, #6] + ldr r0, _021D935C ; =0x04001050 + mov r1, #2 + mov r2, #8 + bl G2x_SetBlendAlpha_ + add sp, #4 + pop {r3, r4, pc} + nop +_021D9358: .word 0x04000050 +_021D935C: .word 0x04001050 + thumb_func_end MOD63_021D9300 + + thumb_func_start MOD63_021D9360 +MOD63_021D9360: ; 0x021D9360 + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + ldrb r1, [r4, #7] + add r1, r1, #1 + strb r1, [r4, #7] + ldrb r1, [r4, #7] + cmp r1, #4 + blo _021D937C + mov r1, #0 + strb r1, [r4, #7] + ldrb r1, [r4, #6] + add r1, r1, #1 + strb r1, [r4, #6] +_021D937C: + ldrb r1, [r4, #6] + cmp r1, #0x10 + blo _021D938E + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x10] + mov r0, #1 + strb r0, [r4, #8] +_021D938E: + mov r0, #0x10 + str r0, [sp] + ldrb r3, [r4, #6] + ldr r0, _021D93A4 ; =0x04000050 + mov r1, #4 + mov r2, #8 + bl G2x_SetBlendAlpha_ + add sp, #4 + pop {r3, r4, pc} + nop +_021D93A4: .word 0x04000050 + thumb_func_end MOD63_021D9360 + + thumb_func_start MOD63_021D93A8 +MOD63_021D93A8: ; 0x021D93A8 + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + ldrb r1, [r4, #7] + add r1, r1, #1 + strb r1, [r4, #7] + ldrb r1, [r4, #7] + cmp r1, #4 + blo _021D93C4 + mov r1, #0 + strb r1, [r4, #7] + ldrb r1, [r4, #6] + add r1, r1, #1 + strb r1, [r4, #6] +_021D93C4: + ldrb r1, [r4, #6] + cmp r1, #0x10 + blo _021D93D6 + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x10] + mov r0, #1 + strb r0, [r4, #8] +_021D93D6: + mov r0, #0x10 + str r0, [sp] + ldrb r3, [r4, #6] + ldr r0, _021D93EC ; =0x04001050 + mov r1, #4 + mov r2, #8 + bl G2x_SetBlendAlpha_ + add sp, #4 + pop {r3, r4, pc} + nop +_021D93EC: .word 0x04001050 + thumb_func_end MOD63_021D93A8 + + thumb_func_start MOD63_021D93F0 +MOD63_021D93F0: ; 0x021D93F0 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #8] + add r4, r5, #0 + add r4, #0x34 + cmp r0, #0 + beq _021D9402 + mov r0, #4 + strb r0, [r4] +_021D9402: + ldrb r0, [r4] + cmp r0, #4 + bhi _021D9492 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D9414: ; jump table + .short _021D941E - _021D9414 - 2 ; case 0 + .short _021D942C - _021D9414 - 2 ; case 1 + .short _021D943C - _021D9414 - 2 ; case 2 + .short _021D9452 - _021D9414 - 2 ; case 3 + .short _021D9488 - _021D9414 - 2 ; case 4 +_021D941E: + add r0, r5, #0 + bl MOD63_021D9498 + ldrb r0, [r4] + add r0, r0, #1 + strb r0, [r4] + b _021D9492 +_021D942C: + add r5, #0x34 + add r0, r5, #0 + bl MOD63_021D96A0 + ldrb r0, [r4] + add r0, r0, #1 + strb r0, [r4] + b _021D9492 +_021D943C: + add r0, r5, #0 + add r0, #0x34 + bl MOD63_021D9810 + mov r0, #1 + add r5, #0x39 + strb r0, [r5] + ldrb r0, [r4] + add r0, r0, #1 + strb r0, [r4] + b _021D9492 +_021D9452: + add r0, r5, #0 + ldr r1, [r5, #4] + add r0, #0x34 + bl MOD63_021D99EC + cmp r0, #0 + beq _021D9466 + ldrb r0, [r4] + add r0, r0, #1 + strb r0, [r4] +_021D9466: + ldr r0, [r5, #0x44] + bl MOD63_021DAC18 + add r0, r5, #0 + add r0, #0x39 + ldrb r0, [r0] + cmp r0, #0 + beq _021D9480 + add r5, #0x34 + add r0, r5, #0 + bl MOD63_021D9980 + b _021D9492 +_021D9480: + ldr r0, [r5, #0x4c] + bl MOD63_021DB5A8 + b _021D9492 +_021D9488: + add r0, r5, #0 + bl MOD63_021D95A8 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D9492: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD63_021D93F0 + + thumb_func_start MOD63_021D9498 +MOD63_021D9498: ; 0x021D9498 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD63_021D88B0 + add r0, r5, #0 + bl MOD63_021D8A04 + add r0, r5, #0 + bl MOD63_021D8BD8 + bl MOD63_021DA6E0 + add r4, r0, #0 + bl MOD63_021DB498 + add r6, r0, #0 + mov r0, #0x4c + add r1, r4, #0 + bl FUN_02016998 + str r0, [r5, #0x44] + mov r0, #0x10 + bl MOD63_021DAF20 + str r0, [r5, #0x48] + mov r0, #0x4c + add r1, r6, #0 + bl FUN_02016998 + str r0, [r5, #0x4c] + ldr r0, [r5, #0x44] + mov r1, #0 + add r2, r4, #0 + bl Call_FillMemWithValue + ldr r0, [r5, #0x4c] + mov r1, #0 + add r2, r6, #0 + bl Call_FillMemWithValue + add r0, r5, #0 + mov r1, #4 + add r0, #0x3b + strb r1, [r0] + ldr r0, [r5, #0x4c] + bl MOD63_021DB49C + ldr r0, [r5, #0xc] + mov r1, #1 + str r0, [r5, #0x40] + ldr r0, _021D9588 ; =0x021C4918 + strb r1, [r0, #5] + bl FUN_0201E7A0 + ldr r6, _021D958C ; =0x021DBDE8 + ldr r7, _021D9590 ; =0x021DBAD0 + mov r4, #0 +_021D950C: + mov r0, #0xc + add r1, r4, #0 + mul r1, r0 + add r3, r6, r1 + ldr r2, [r3, #4] + ldr r1, [r6, r1] + ldr r3, [r3, #8] + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + lsl r3, r3, #0x10 + add r0, r4, #0 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + asr r3, r3, #0x10 + bl FUN_020B8418 + lsl r1, r4, #1 + ldrh r1, [r7, r1] + add r0, r4, #0 + bl FUN_020B8404 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021D950C + ldr r0, _021D9594 ; =0x00004210 + ldr r1, _021D9598 ; =0x0000318A + mov r2, #0 + bl FUN_020B83E0 + ldr r0, _021D959C ; =0x00004A52 + ldr r1, _021D95A0 ; =0x000039CE + mov r2, #0 + bl FUN_020B83BC + mov r0, #0x1f + str r0, [sp] + mov r0, #2 + lsl r0, r0, #0xe + mov r1, #0 + str r0, [sp, #4] + mov r0, #0xd + mov r2, #2 + add r3, r1, #0 + bl FUN_020B8390 + ldr r0, _021D95A4 ; =MOD63_021D8CB0 + add r1, r5, #0 + bl FUN_02015F10 + mov r0, #0x10 + mov r1, #1 + mov r2, #2 + bl FUN_0200A274 + mov r0, #1 + add r5, #0x36 + strb r0, [r5] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9588: .word 0x021C4918 +_021D958C: .word 0x021DBDE8 +_021D9590: .word 0x021DBAD0 +_021D9594: .word 0x00004210 +_021D9598: .word 0x0000318A +_021D959C: .word 0x00004A52 +_021D95A0: .word 0x000039CE +_021D95A4: .word MOD63_021D8CB0 + thumb_func_end MOD63_021D9498 + + thumb_func_start MOD63_021D95A8 +MOD63_021D95A8: ; 0x021D95A8 + push {r4, r5, r6, lr} + mov r2, #1 + lsl r2, r2, #0x1a + add r5, r0, #0 + ldr r1, [r2] + ldr r0, _021D969C ; =0xFFFF1FFF + and r0, r1 + str r0, [r2] + add r0, r5, #0 + add r0, #0x38 + ldrb r0, [r0] + cmp r0, #0 + beq _021D95F6 + bl FUN_0201EB98 + ldr r0, [r5, #0x78] + bl FUN_0201EB70 + mov r4, #0 + mov r6, #0x58 +_021D95D0: + add r0, r4, #0 + mul r0, r6 + add r0, r5, r0 + add r0, #0xd0 + ldr r0, [r0] + bl FUN_02016A18 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #6 + blo _021D95D0 + ldr r0, [r5, #0x70] + bl FUN_02016A18 + add r0, r5, #0 + mov r1, #0 + add r0, #0x38 + strb r1, [r0] +_021D95F6: + add r0, r5, #0 + add r0, #0x37 + ldrb r0, [r0] + cmp r0, #0 + beq _021D9624 + ldr r0, [r5, #0x44] + bl MOD63_021DAA04 + mov r4, #0 +_021D9608: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, #0x50] + bl FUN_02016A18 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021D9608 + add r0, r5, #0 + mov r1, #0 + add r0, #0x37 + strb r1, [r0] +_021D9624: + add r0, r5, #0 + add r0, #0x36 + ldrb r0, [r0] + cmp r0, #0 + beq _021D9690 + ldr r0, [r5, #0x48] + cmp r0, #0 + beq _021D963C + bl MOD63_021DAF4C + mov r0, #0 + str r0, [r5, #0x48] +_021D963C: + ldr r0, [r5, #0x44] + cmp r0, #0 + beq _021D964A + bl FUN_02016A18 + mov r0, #0 + str r0, [r5, #0x44] +_021D964A: + ldr r0, [r5, #0x4c] + cmp r0, #0 + beq _021D965E + bl MOD63_021DB580 + ldr r0, [r5, #0x4c] + bl FUN_02016A18 + mov r0, #0 + str r0, [r5, #0x4c] +_021D965E: + ldr r0, [r5, #0xc] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r5, #0xc] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r5, #0xc] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r5, #0xc] + mov r1, #4 + bl FUN_020178A0 + ldr r0, [r5, #0xc] + bl FUN_02016A18 + ldr r0, [r5, #0x10] + bl FUN_020223BC + mov r0, #0 + add r5, #0x36 + strb r0, [r5] +_021D9690: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + pop {r4, r5, r6, pc} + nop +_021D969C: .word 0xFFFF1FFF + thumb_func_end MOD63_021D95A8 + + thumb_func_start MOD63_021D96A0 +MOD63_021D96A0: ; 0x021D96A0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + ldr r3, _021D980C ; =0x021DBB2C + add r2, sp, #0x18 + add r5, r0, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + mov r0, #0x80 + mov r1, #0x4c + bl FUN_02006670 + str r0, [sp, #0x10] + add r0, r5, #0 + str r0, [sp, #0x14] + add r0, #0x2c + mov r4, #0 + str r0, [sp, #0x14] +_021D96C6: + lsl r7, r4, #2 + add r1, sp, #0x18 + ldr r0, [sp, #0x10] + ldr r1, [r1, r7] + mov r2, #0x4c + add r6, r5, r7 + bl FUN_02006704 + str r0, [r6, #0x1c] + cmp r0, #0 + beq _021D96F4 + ldr r1, [sp, #0x14] + add r1, r1, r7 + bl FUN_020B0138 + cmp r0, #0 + bne _021D96F8 + ldr r0, [r6, #0x2c] + bl FUN_02016A18 + bl ErrorHandling + b _021D96F8 +_021D96F4: + bl ErrorHandling +_021D96F8: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021D96C6 + ldr r0, [sp, #0x10] + bl FUN_020066F4 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r5, #0xc] + mov r0, #0x80 + mov r1, #0x1c + mov r3, #3 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r5, #0xc] + mov r0, #0x80 + mov r1, #0x1a + mov r3, #3 + bl FUN_020068C8 + mov r1, #0 + str r1, [sp] + ldr r0, [r5, #0x2c] + mov r2, #0xa + add r3, r1, #0 + bl MOD63_021D9EA8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r5, #0xc] + mov r0, #0x80 + mov r1, #0x11 + mov r3, #4 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r5, #0xc] + mov r0, #0x80 + mov r1, #0xf + mov r3, #4 + bl FUN_020068C8 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x4c + str r0, [sp, #4] + mov r0, #0x80 + mov r1, #0x10 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r5, #0xc] + mov r0, #0x80 + mov r1, #0x1b + mov r3, #1 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r5, #0xc] + mov r0, #0x80 + mov r1, #0x19 + mov r3, #1 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r5, #0xc] + mov r0, #0x80 + mov r1, #0x18 + mov r3, #2 + bl FUN_020068C8 + ldr r0, [r5, #0x10] + bl MOD63_021DA6E8 + ldr r0, [r5, #0x10] + bl MOD63_021DAA5C + ldr r0, [r5, #0x10] + ldr r1, [r5, #0x14] + bl MOD63_021DABCC + mov r0, #0xe + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #1 + mov r1, #0 + bl FUN_0201E74C + mov r0, #0 + bl FUN_0200E394 + mov r0, #1 + bl FUN_0200E394 + mov r0, #1 + strb r0, [r5, #3] + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D980C: .word 0x021DBB2C + thumb_func_end MOD63_021D96A0 + + thumb_func_start MOD63_021D9810 +MOD63_021D9810: ; 0x021D9810 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + add r5, r0, #0 + mov r0, #0x80 + mov r1, #0x46 + mov r2, #0x4c + bl LoadFromNarc_2 + str r0, [r5, #0x3c] + bl FUN_020BC0FC + str r0, [r5, #0x40] + bl FUN_0201B3C4 + cmp r0, #0 + bne _021D9834 + bl ErrorHandling +_021D9834: + ldr r0, [r5, #0x40] + ldr r0, [r0, #0x14] + cmp r0, #0 + bne _021D9840 + bl ErrorHandling +_021D9840: + ldr r2, [r5, #0x40] + ldr r0, [r5, #0x3c] + ldr r1, [r2, #0x14] + add r1, r2, r1 + sub r1, r1, r0 + bl FUN_02016B44 + mov r0, #0x80 + mov r1, #0x4c + bl FUN_02006670 + str r0, [sp, #0xc] + add r0, r5, #0 + str r0, [sp, #0x10] + add r0, #0x48 + mov r7, #0 + str r0, [sp, #0x10] +_021D9862: + ldr r1, _021D9964 ; =0x021DBB90 + lsl r2, r7, #2 + ldr r1, [r1, r2] + mov r0, #0x58 + add r6, r7, #0 + mul r6, r0 + ldr r0, [sp, #0xc] + mov r2, #0x4c + bl FUN_02006704 + add r1, r5, r6 + add r1, #0x9c + str r0, [r1] + add r0, r5, r6 + add r0, #0x9c + ldr r0, [r0] + ldr r1, [r5, #0x40] + bl FUN_0201B3A8 + cmp r0, #0 + bne _021D9890 + bl ErrorHandling +_021D9890: + add r0, r5, r6 + add r0, #0x9c + ldr r0, [r0] + bl FUN_020BC13C + ldrb r0, [r0, #9] + cmp r0, #1 + beq _021D98A4 + bl ErrorHandling +_021D98A4: + add r0, r5, r6 + add r0, #0x9c + ldr r0, [r0] + bl FUN_020BC13C + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r4, r0, r1 + bne _021D98BC + bl ErrorHandling +_021D98BC: + ldr r0, [sp, #0x10] + add r1, r4, #0 + add r0, r0, r6 + bl FUN_020B80B4 + add r0, r4, #0 + mov r1, #0 + mov r2, #0x40 + bl FUN_020BC094 + add r0, r4, #0 + mov r1, #0 + mov r2, #0x80 + bl FUN_020BC094 + mov r2, #2 + add r0, r4, #0 + mov r1, #0 + lsl r2, r2, #8 + bl FUN_020BC094 + mov r2, #1 + add r0, r4, #0 + mov r1, #0 + lsl r2, r2, #0xa + bl FUN_020BC094 + add r0, r4, #0 + mov r1, #0 + mov r2, #0xf + bl FUN_020BC02C + add r0, r7, #1 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + cmp r7, #6 + blo _021D9862 + ldr r0, [sp, #0xc] + bl FUN_020066F4 + mov r0, #0x4c + bl FUN_0201EB64 + add r3, sp, #0x20 + ldr r4, _021D9968 ; =0x021DBAE4 + str r0, [r5, #0x44] + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r4] + ldr r1, _021D996C ; =0x0029AEC1 + str r0, [r3] + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [r5, #0x44] + ldr r3, _021D9970 ; =0x000005C1 + str r0, [sp, #8] + add r0, r2, #0 + ldr r2, _021D9974 ; =0x021DBB80 + bl FUN_0201ECA8 + ldr r0, _021D9978 ; =0x00000981 + ldr r1, [r5, #0x44] + bl FUN_0201EEF0 + ldr r4, _021D997C ; =0x021DBB08 + add r3, sp, #0x14 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r4] + str r0, [r3] + ldr r1, [r5, #0x44] + add r0, r2, #0 + bl FUN_0201EF70 + ldr r0, [r5, #0x44] + bl FUN_0201EB8C + mov r0, #1 + strb r0, [r5, #4] + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D9964: .word 0x021DBB90 +_021D9968: .word 0x021DBAE4 +_021D996C: .word 0x0029AEC1 +_021D9970: .word 0x000005C1 +_021D9974: .word 0x021DBB80 +_021D9978: .word 0x00000981 +_021D997C: .word 0x021DBB08 + thumb_func_end MOD63_021D9810 + + thumb_func_start MOD63_021D9980 +MOD63_021D9980: ; 0x021D9980 + push {r4, r5, r6, r7, lr} + sub sp, #0x3c + ldr r4, _021D99E4 ; =0x021DBD4C + add r5, r0, #0 + add r3, sp, #0x18 + mov r2, #4 +_021D998C: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D998C + ldr r0, [r4] + add r2, sp, #0xc + str r0, [r3] + ldr r3, _021D99E8 ; =0x021DBAFC + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, sp, #0 + str r0, [r2] + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + str r0, [r1, #8] + bl FUN_020222AC + bl FUN_0201EBA4 + mov r4, #0 + add r5, #0x48 + add r7, sp, #0 + mov r6, #0x58 +_021D99BE: + add r0, r4, #0 + mul r0, r6 + add r0, r5, r0 + add r1, r7, #0 + add r2, sp, #0x18 + add r3, sp, #0xc + bl FUN_0201B26C + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #6 + blo _021D99BE + mov r0, #0 + mov r1, #1 + bl FUN_020222B4 + add sp, #0x3c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D99E4: .word 0x021DBD4C +_021D99E8: .word 0x021DBAFC + thumb_func_end MOD63_021D9980 + + thumb_func_start MOD63_021D99EC +MOD63_021D99EC: ; 0x021D99EC + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + ldrb r0, [r4, #6] + add r5, r1, #0 + cmp r0, #0 + bne _021D9A00 + ldr r0, [r4, #0x14] + bl MOD63_021DB38C +_021D9A00: + ldrb r0, [r4, #6] + ldrb r1, [r4, #7] + add r0, r0, #1 + bl _s32_div_f + strb r1, [r4, #6] + ldrb r0, [r4, #1] + cmp r0, #0x11 + bhi _021D9B0C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D9A1E: ; jump table + .short _021D9A42 - _021D9A1E - 2 ; case 0 + .short _021D9A6A - _021D9A1E - 2 ; case 1 + .short _021D9A7A - _021D9A1E - 2 ; case 2 + .short _021D9AB8 - _021D9A1E - 2 ; case 3 + .short _021D9AEE - _021D9A1E - 2 ; case 4 + .short _021D9B3E - _021D9A1E - 2 ; case 5 + .short _021D9B72 - _021D9A1E - 2 ; case 6 + .short _021D9BC8 - _021D9A1E - 2 ; case 7 + .short _021D9C04 - _021D9A1E - 2 ; case 8 + .short _021D9C70 - _021D9A1E - 2 ; case 9 + .short _021D9CB4 - _021D9A1E - 2 ; case 10 + .short _021D9CFC - _021D9A1E - 2 ; case 11 + .short _021D9D38 - _021D9A1E - 2 ; case 12 + .short _021D9D94 - _021D9A1E - 2 ; case 13 + .short _021D9DF8 - _021D9A1E - 2 ; case 14 + .short _021D9E48 - _021D9A1E - 2 ; case 15 + .short _021D9E84 - _021D9A1E - 2 ; case 16 + .short _021D9E9A - _021D9A1E - 2 ; case 17 +_021D9A42: + mov r0, #0xa + lsl r0, r0, #6 + cmp r5, r0 + blt _021D9B0C + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E74C + mov r0, #2 + str r0, [sp] + mov r0, #8 + mov r1, #0 + mov r2, #0x10 + mov r3, #1 + bl FUN_0200A208 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9A6A: + ldr r0, [r4, #0x10] + mov r1, #1 + bl MOD63_021DACA0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9A7A: + ldr r0, _021D9DCC ; =0x000002E9 + cmp r5, r0 + bne _021D9A88 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C +_021D9A88: + ldr r0, _021D9DD0 ; =0x000003C5 + cmp r5, r0 + blt _021D9B0C + mov r0, #7 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x12 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + ldr r3, _021D9DD4 ; =0x00007FFF + mov r0, #3 + add r2, r1, #0 + bl FUN_0200E1D0 + mov r0, #0x10 + strb r0, [r4, #7] + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9AB8: + add r0, r4, #0 + add r1, r5, #0 + bl MOD63_021D9F38 + ldr r0, [r4, #0x10] + add r1, r5, #0 + bl MOD63_021DAD6C + ldr r0, _021D9DD8 ; =0x00000631 + cmp r5, r0 + blt _021D9B0C + mov r0, #0x12 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4c + mov r1, #0 + str r0, [sp, #8] + ldr r3, _021D9DD4 ; =0x00007FFF + mov r0, #3 + add r2, r1, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9AEE: + add r0, r4, #0 + add r1, r5, #0 + bl MOD63_021D9F38 + ldr r0, [r4, #0x10] + add r1, r5, #0 + bl MOD63_021DAD6C + bl FUN_0200E308 + cmp r0, #0 + beq _021D9B0C + ldr r0, _021D9DDC ; =0x0000064A + cmp r5, r0 + bge _021D9B0E +_021D9B0C: + b _021D9EA0 +_021D9B0E: + ldr r0, [r4, #0x10] + mov r1, #0 + mov r2, #1 + bl MOD63_021DAC24 + bl MOD63_021D8CC0 + mov r0, #0 + strb r0, [r4, #5] + mov r0, #0x12 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + ldr r3, _021D9DD4 ; =0x00007FFF + mov r0, #3 + add r2, r1, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9B3E: + add r0, r4, #0 + bl MOD63_021D9EE0 + bl FUN_0200E308 + cmp r0, #0 + beq _021D9C12 + ldr r0, _021D9DE0 ; =0x000006B3 + cmp r5, r0 + blt _021D9C12 + mov r0, #4 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9B72: + bl FUN_0200E308 + cmp r0, #0 + beq _021D9C12 + mov r1, #0 + ldr r0, _021D9DE4 ; =0x04000050 + mov r2, #0x38 + add r3, r1, #0 + str r1, [sp] + bl G2x_SetBlendAlpha_ + mov r0, #6 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r1, #0 + ldr r0, [r4, #0x10] + add r2, r1, #0 + bl MOD63_021DAD18 + mov r0, #4 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9BC8: + add r0, r4, #0 + bl MOD63_021D9F20 + bl FUN_0200E308 + cmp r0, #0 + beq _021D9C12 + ldr r0, [r4, #0x18] + mov r1, #0 + add r2, r5, #0 + bl MOD63_021DB5CC + cmp r0, #0 + beq _021D9C12 + mov r0, #4 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9C04: + bl FUN_0200E308 + cmp r0, #0 + beq _021D9C12 + ldr r0, _021D9DE8 ; =0x00000721 + cmp r5, r0 + bge _021D9C14 +_021D9C12: + b _021D9EA0 +_021D9C14: + ldr r0, [r4, #0x10] + mov r1, #1 + bl MOD63_021DACA0 + mov r1, #0 + ldr r0, [r4, #0x10] + add r2, r1, #0 + bl MOD63_021DAC24 + mov r1, #1 + ldr r0, [r4, #0x10] + add r2, r1, #0 + bl MOD63_021DAC24 + ldr r0, [r4, #0x10] + mov r1, #0 + mov r2, #1 + bl MOD63_021DAD18 + mov r1, #0 + str r1, [sp] + ldr r0, [r4, #0x38] + mov r2, #7 + add r3, r1, #0 + bl MOD63_021D9EA8 + ldr r0, [r4, #0x10] + mov r1, #2 + mov r2, #1 + bl MOD63_021DAC24 + mov r0, #4 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9C70: + add r0, r4, #0 + bl MOD63_021D9F20 + bl FUN_0200E308 + cmp r0, #0 + beq _021D9D46 + ldr r0, _021D9DE8 ; =0x00000721 + cmp r5, r0 + blt _021D9D46 + ldr r0, [r4, #0x10] + bl MOD63_021DACC0 + cmp r0, #0 + beq _021D9D46 + ldr r0, _021D9DEC ; =0x00000785 + cmp r5, r0 + blt _021D9D46 + mov r0, #4 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9CB4: + bl FUN_0200E308 + cmp r0, #0 + beq _021D9D46 + ldr r0, [r4, #0x10] + mov r1, #1 + mov r2, #0 + bl MOD63_021DAD18 + mov r1, #0 + str r1, [sp] + ldr r0, [r4, #0x30] + mov r2, #7 + add r3, r1, #0 + bl MOD63_021D9EA8 + ldr r0, [r4, #0x10] + mov r1, #2 + mov r2, #0 + bl MOD63_021DAC24 + mov r0, #4 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9CFC: + add r0, r4, #0 + bl MOD63_021D9F20 + bl FUN_0200E308 + cmp r0, #0 + beq _021D9D46 + ldr r0, [r4, #0x18] + mov r1, #1 + add r2, r5, #0 + bl MOD63_021DB5CC + cmp r0, #0 + beq _021D9D46 + mov r0, #4 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9D38: + bl FUN_0200E308 + cmp r0, #0 + beq _021D9D46 + ldr r0, _021D9DF0 ; =0x000007F8 + cmp r5, r0 + bgt _021D9D48 +_021D9D46: + b _021D9EA0 +_021D9D48: + mov r1, #1 + ldr r0, [r4, #0x10] + add r2, r1, #0 + bl MOD63_021DAD18 + mov r0, #4 + mov r1, #1 + bl FUN_0201E6E4 + ldr r0, [r4, #0x10] + mov r1, #0 + mov r2, #1 + bl MOD63_021DAC24 + ldr r0, [r4, #0x10] + bl MOD63_021DAC6C + ldr r0, [r4, #0x10] + mov r1, #4 + bl MOD63_021DAC80 + mov r0, #4 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #8] + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9D94: + add r0, r4, #0 + bl MOD63_021D9F00 + bl FUN_0200E308 + cmp r0, #0 + beq _021D9EA0 + ldr r0, _021D9DF4 ; =0x00000861 + cmp r5, r0 + ble _021D9EA0 + mov r0, #4 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #8] + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 + .align 2, 0 +_021D9DCC: .word 0x000002E9 +_021D9DD0: .word 0x000003C5 +_021D9DD4: .word 0x00007FFF +_021D9DD8: .word 0x00000631 +_021D9DDC: .word 0x0000064A +_021D9DE0: .word 0x000006B3 +_021D9DE4: .word 0x04000050 +_021D9DE8: .word 0x00000721 +_021D9DEC: .word 0x00000785 +_021D9DF0: .word 0x000007F8 +_021D9DF4: .word 0x00000861 +_021D9DF8: + bl FUN_0200E308 + cmp r0, #0 + beq _021D9EA0 + mov r1, #0 + ldr r0, [r4, #0x10] + add r2, r1, #0 + bl MOD63_021DAD18 + ldr r0, [r4, #0x10] + mov r1, #1 + mov r2, #0 + bl MOD63_021DAD18 + mov r1, #0 + str r1, [sp] + ldr r0, [r4, #0x34] + mov r2, #7 + add r3, r1, #0 + bl MOD63_021D9EA8 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9E48: + add r0, r4, #0 + bl MOD63_021D9F20 + bl FUN_0200E308 + cmp r0, #0 + beq _021D9EA0 + ldr r0, [r4, #0x18] + mov r1, #2 + add r2, r5, #0 + bl MOD63_021DB5CC + cmp r0, #0 + beq _021D9EA0 + mov r0, #0x12 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9E84: + add r0, r4, #0 + bl MOD63_021D9F20 + bl FUN_0200E308 + cmp r0, #0 + beq _021D9EA0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021D9EA0 +_021D9E9A: + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021D9EA0: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD63_021D99EC + + thumb_func_start MOD63_021D9EA8 +MOD63_021D9EA8: ; 0x021D9EA8 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + lsl r7, r2, #5 + add r6, r1, #0 + ldr r0, [r5, #0xc] + add r1, r7, #0 + add r4, r3, #0 + bl DC_FlushRange + ldr r1, [r5, #0xc] + cmp r6, #0 + bne _021D9ED0 + lsl r0, r4, #1 + add r0, r1, r0 + add r1, sp, #8 + ldrb r1, [r1, #0x10] + add r2, r7, #0 + bl GX_LoadBGPltt + pop {r3, r4, r5, r6, r7, pc} +_021D9ED0: + lsl r0, r4, #1 + add r0, r1, r0 + add r1, sp, #8 + ldrb r1, [r1, #0x10] + add r2, r7, #0 + bl GXS_LoadBGPltt + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD63_021D9EA8 + + thumb_func_start MOD63_021D9EE0 +MOD63_021D9EE0: ; 0x021D9EE0 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #8] + add r0, r1, #1 + str r0, [r4, #8] + cmp r1, #0x18 + ble _021D9EFE + mov r2, #4 + ldr r0, [r4, #0xc] + mov r1, #1 + sub r3, r2, #5 + bl FUN_020179E0 + mov r0, #0 + str r0, [r4, #8] +_021D9EFE: + pop {r4, pc} + thumb_func_end MOD63_021D9EE0 + + thumb_func_start MOD63_021D9F00 +MOD63_021D9F00: ; 0x021D9F00 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #8] + add r0, r1, #1 + str r0, [r4, #8] + cmp r1, #3 + ble _021D9F1E + mov r2, #1 + ldr r0, [r4, #0xc] + mov r1, #2 + add r3, r2, #0 + bl FUN_020179E0 + mov r0, #0 + str r0, [r4, #8] +_021D9F1E: + pop {r4, pc} + thumb_func_end MOD63_021D9F00 + + thumb_func_start MOD63_021D9F20 +MOD63_021D9F20: ; 0x021D9F20 + push {r4, lr} + add r4, r0, #0 + mov r2, #1 + add r3, r2, #0 + ldr r0, [r4, #0xc] + mov r1, #3 + sub r3, #0x11 + bl FUN_020179E0 + mov r0, #0 + str r0, [r4, #8] + pop {r4, pc} + thumb_func_end MOD63_021D9F20 + + thumb_func_start MOD63_021D9F38 +MOD63_021D9F38: ; 0x021D9F38 + push {r4, r5, r6, lr} + sub sp, #0x50 + add r4, r0, #0 + add r5, r1, #0 + add r0, sp, #0x44 + mov r1, #0 + str r1, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + ldr r1, _021DA078 ; =0x000004AB + cmp r5, r1 + bgt _021D9FE2 + ldr r0, [r4, #0x44] + bl FUN_0201F008 + ldr r1, _021DA07C ; =0x000005C1 + sub r0, #0x20 + cmp r0, r1 + ble _021D9F68 + ldr r0, _021DA080 ; =0x0000FFE0 + ldr r1, [r4, #0x44] + bl FUN_0201EF2C + b _021D9F70 +_021D9F68: + add r0, r1, #0 + ldr r1, [r4, #0x44] + bl FUN_0201EEF0 +_021D9F70: + mov r0, #2 + ldr r1, [sp, #0x4c] + lsl r0, r0, #0xc + sub r0, r1, r0 + str r0, [sp, #0x4c] + ldr r1, [r4, #0x44] + add r0, sp, #0x44 + bl FUN_0201EF70 + ldr r0, _021DA078 ; =0x000004AB + cmp r5, r0 + bne _021DA074 + ldr r5, _021DA084 ; =0x021DBAD8 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + ldr r1, _021DA088 ; =0x0029AEC1 + str r0, [r3] + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [r4, #0x44] + ldr r3, _021DA07C ; =0x000005C1 + str r0, [sp, #8] + add r0, r2, #0 + ldr r2, _021DA08C ; =0x021DBB80 + bl FUN_0201ECA8 + ldr r5, _021DA090 ; =0x021DBB20 + add r3, sp, #0x2c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + ldr r1, [r4, #0x44] + add r0, r2, #0 + bl FUN_0201EF70 + ldr r2, _021DA094 ; =0x021DBAC8 + add r1, sp, #0xc + ldrh r3, [r2] + add r0, sp, #0xc + strh r3, [r1] + ldrh r3, [r2, #2] + strh r3, [r1, #2] + ldrh r3, [r2, #4] + ldrh r2, [r2, #6] + strh r3, [r1, #4] + strh r2, [r1, #6] + ldr r1, [r4, #0x44] + bl FUN_0201EFB4 + add sp, #0x50 + pop {r4, r5, r6, pc} +_021D9FE2: + add r1, #0xd2 + cmp r5, r1 + bgt _021DA044 + mov r1, #1 + ldr r2, [sp, #0x44] + lsl r1, r1, #0xc + add r1, r2, r1 + str r1, [sp, #0x44] + ldr r1, [r4, #0x44] + bl FUN_0201EF70 + ldr r3, _021DA098 ; =0x0000057D + cmp r5, r3 + bne _021DA074 + ldr r6, _021DA09C ; =0x021DBB14 + add r5, sp, #0x20 + ldmia r6!, {r0, r1} + add r2, r5, #0 + stmia r5!, {r0, r1} + ldr r0, [r6] + ldr r1, _021DA088 ; =0x0029AEC1 + str r0, [r5] + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [r4, #0x44] + add r3, #0x44 + str r0, [sp, #8] + add r0, r2, #0 + ldr r2, _021DA08C ; =0x021DBB80 + bl FUN_0201ECA8 + ldr r0, _021DA07C ; =0x000005C1 + ldr r1, [r4, #0x44] + bl FUN_0201EEF0 + ldr r5, _021DA0A0 ; =0x021DBAF0 + add r3, sp, #0x14 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + ldr r1, [r4, #0x44] + add r0, r2, #0 + bl FUN_0201EF70 + add sp, #0x50 + pop {r4, r5, r6, pc} +_021DA044: + ldr r0, _021DA0A4 ; =0x00000618 + cmp r5, r0 + blt _021DA062 + ldr r0, [r4, #0x44] + bl FUN_0201F008 + mov r1, #1 + add r0, #0x20 + lsl r1, r1, #0xe + cmp r0, r1 + bge _021DA062 + ldr r1, [r4, #0x44] + mov r0, #0x20 + bl FUN_0201EF2C +_021DA062: + mov r0, #1 + ldr r1, [sp, #0x4c] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x4c] + ldr r1, [r4, #0x44] + add r0, sp, #0x44 + bl FUN_0201EF70 +_021DA074: + add sp, #0x50 + pop {r4, r5, r6, pc} + .align 2, 0 +_021DA078: .word 0x000004AB +_021DA07C: .word 0x000005C1 +_021DA080: .word 0x0000FFE0 +_021DA084: .word 0x021DBAD8 +_021DA088: .word 0x0029AEC1 +_021DA08C: .word 0x021DBB80 +_021DA090: .word 0x021DBB20 +_021DA094: .word 0x021DBAC8 +_021DA098: .word 0x0000057D +_021DA09C: .word 0x021DBB14 +_021DA0A0: .word 0x021DBAF0 +_021DA0A4: .word 0x00000618 + thumb_func_end MOD63_021D9F38 + + thumb_func_start MOD63_021DA0A8 +MOD63_021DA0A8: ; 0x021DA0A8 + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + mov r5, #0xa3 + lsl r5, r5, #2 + cmp r0, #0 + beq _021DA0BA + mov r0, #3 + strb r0, [r4, r5] +_021DA0BA: + ldrb r0, [r4, r5] + cmp r0, #3 + bhi _021DA116 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021DA0CC: ; jump table + .short _021DA0D4 - _021DA0CC - 2 ; case 0 + .short _021DA0E2 - _021DA0CC - 2 ; case 1 + .short _021DA0F4 - _021DA0CC - 2 ; case 2 + .short _021DA10C - _021DA0CC - 2 ; case 3 +_021DA0D4: + add r0, r4, #0 + bl MOD63_021DA11C + ldrb r0, [r4, r5] + add r0, r0, #1 + strb r0, [r4, r5] + b _021DA116 +_021DA0E2: + mov r0, #0xa3 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD63_021DA158 + ldrb r0, [r4, r5] + add r0, r0, #1 + strb r0, [r4, r5] + b _021DA116 +_021DA0F4: + mov r0, #0xa3 + lsl r0, r0, #2 + ldr r1, [r4, #4] + add r0, r4, r0 + bl MOD63_021DA30C + cmp r0, #0 + beq _021DA116 + ldrb r0, [r4, r5] + add r0, r0, #1 + strb r0, [r4, r5] + b _021DA116 +_021DA10C: + add r0, r4, #0 + bl MOD63_021DA418 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA116: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD63_021DA0A8 + + thumb_func_start MOD63_021DA11C +MOD63_021DA11C: ; 0x021DA11C + push {r4, lr} + add r4, r0, #0 + bl MOD63_021D88D0 + add r0, r4, #0 + bl MOD63_021D8ADC + mov r0, #0xa6 + ldr r1, [r4, #0xc] + lsl r0, r0, #2 + str r1, [r4, r0] + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r0, _021DA150 ; =0x04000050 + mov r1, #0 + strh r1, [r0] + ldr r0, _021DA154 ; =0x0000028E + mov r1, #1 + strb r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021DA150: .word 0x04000050 +_021DA154: .word 0x0000028E + thumb_func_end MOD63_021DA11C + + thumb_func_start MOD63_021DA158 +MOD63_021DA158: ; 0x021DA158 + push {r3, r4, r5, lr} + sub sp, #0x20 + add r4, r0, #0 + mov r0, #0x80 + mov r1, #0x4c + bl FUN_02006670 + mov r1, #0x35 + mov r2, #0x4c + add r5, r0, #0 + bl FUN_02006704 + str r0, [r4, #0x10] + cmp r0, #0 + beq _021DA18E + add r1, r4, #0 + add r1, #0x14 + bl FUN_020B0138 + cmp r0, #0 + bne _021DA192 + ldr r0, [r4, #0x14] + bl FUN_02016A18 + bl ErrorHandling + b _021DA192 +_021DA18E: + bl ErrorHandling +_021DA192: + add r0, r5, #0 + bl FUN_020066F4 + mov r1, #0 + str r1, [sp] + ldr r0, [r4, #0x14] + mov r2, #9 + add r3, r1, #0 + bl MOD63_021D9EA8 + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #0x14] + mov r1, #1 + mov r2, #9 + bl MOD63_021D9EA8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x36 + mov r3, #1 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x3b + mov r3, #1 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x38 + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x3d + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x39 + mov r3, #3 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x3e + mov r3, #3 + bl FUN_020068C8 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x3a + bl FUN_0200687C + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + str r3, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x3f + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x37 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x80 + mov r1, #0x3c + mov r3, #5 + bl FUN_020068C8 + mov r0, #0xe + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #1 + bl FUN_0201E74C + ldr r0, [r4, #0xc] + mov r1, #3 + mov r2, #1 + mov r3, #0x40 + bl FUN_020179E0 + mov r0, #1 + lsl r0, r0, #0xc + bl FX_Inv + add r5, r0, #0 + mov r0, #1 + lsl r0, r0, #0xc + bl FX_Inv + mov r1, #0 + str r5, [sp, #0x10] + str r1, [sp, #0x14] + str r1, [sp, #0x18] + str r0, [sp, #0x1c] + bl OS_WaitVBlankIntr + mov r0, #0x60 + str r0, [sp] + ldr r0, [r4, #0xc] + mov r1, #2 + add r2, sp, #0x10 + mov r3, #0x80 + bl FUN_02017BD0 + mov r0, #0x60 + str r0, [sp] + ldr r0, [r4, #0xc] + mov r1, #3 + add r2, sp, #0x10 + mov r3, #0xc0 + bl FUN_02017BD0 + mov r0, #1 + strb r0, [r4, #3] + add sp, #0x20 + pop {r3, r4, r5, pc} + thumb_func_end MOD63_021DA158 + + thumb_func_start MOD63_021DA30C +MOD63_021DA30C: ; 0x021DA30C + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + add r5, r1, #0 + ldrb r1, [r4, #1] + cmp r1, #3 + bhi _021DA3EC + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021DA326: ; jump table + .short _021DA32E - _021DA326 - 2 ; case 0 + .short _021DA352 - _021DA326 - 2 ; case 1 + .short _021DA36A - _021DA326 - 2 ; case 2 + .short _021DA3DA - _021DA326 - 2 ; case 3 +_021DA32E: + ldr r0, _021DA3F8 ; =0x000008E3 + cmp r5, r0 + blt _021DA3EC + mov r0, #0x78 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021DA3EC +_021DA352: + bl FUN_0200E308 + cmp r0, #0 + beq _021DA3EC + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + mov r0, #1 + lsl r0, r0, #0xc + str r0, [r4, #4] + str r0, [r4, #8] + b _021DA3EC +_021DA36A: + ldr r0, _021DA3FC ; =0x0000097E + cmp r5, r0 + bne _021DA378 + add r0, r4, #0 + add r0, #0x18 + bl MOD63_021DA588 +_021DA378: + ldr r0, _021DA400 ; =0x000009D3 + cmp r5, r0 + bne _021DA386 + add r0, r4, #0 + add r0, #0x18 + bl MOD63_021DA588 +_021DA386: + ldr r0, _021DA404 ; =0x000009F1 + cmp r5, r0 + bne _021DA394 + add r0, r4, #0 + add r0, #0x18 + bl MOD63_021DA588 +_021DA394: + ldr r0, _021DA408 ; =0x00000A1E + cmp r5, r0 + bne _021DA3A2 + add r0, r4, #0 + add r0, #0x18 + bl MOD63_021DA588 +_021DA3A2: + ldr r0, _021DA40C ; =0x00000A64 + cmp r5, r0 + blt _021DA3AE + add r0, r4, #0 + bl MOD63_021DA478 +_021DA3AE: + ldr r0, _021DA410 ; =0x00000A78 + cmp r5, r0 + blt _021DA3EC + mov r0, #0x12 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + mov r0, #0 + ldr r3, _021DA414 ; =0x00007FFF + add r1, r0, #0 + add r2, r0, #0 + bl FUN_0200E1D0 + add r0, r4, #0 + bl MOD63_021DA504 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _021DA3EC +_021DA3DA: + bl MOD63_021DA504 + bl FUN_0200E308 + cmp r0, #0 + beq _021DA3EC + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021DA3EC: + add r0, r4, #0 + bl MOD63_021DA5A0 + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_021DA3F8: .word 0x000008E3 +_021DA3FC: .word 0x0000097E +_021DA400: .word 0x000009D3 +_021DA404: .word 0x000009F1 +_021DA408: .word 0x00000A1E +_021DA40C: .word 0x00000A64 +_021DA410: .word 0x00000A78 +_021DA414: .word 0x00007FFF + thumb_func_end MOD63_021DA30C + + thumb_func_start MOD63_021DA418 +MOD63_021DA418: ; 0x021DA418 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021DA470 ; =0x0000028E + ldrb r0, [r4, r0] + cmp r0, #0 + beq _021DA458 + ldr r0, [r4, #0xc] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #0 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #5 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + bl FUN_02016A18 + ldr r0, _021DA470 ; =0x0000028E + mov r1, #0 + strb r1, [r4, r0] +_021DA458: + ldr r0, _021DA474 ; =0x0000028F + ldrb r1, [r4, r0] + cmp r1, #0 + beq _021DA46E + add r0, #0xd + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _021DA474 ; =0x0000028F + mov r1, #0 + strb r1, [r4, r0] +_021DA46E: + pop {r4, pc} + .align 2, 0 +_021DA470: .word 0x0000028E +_021DA474: .word 0x0000028F + thumb_func_end MOD63_021DA418 + + thumb_func_start MOD63_021DA478 +MOD63_021DA478: ; 0x021DA478 + push {r4, r5, lr} + sub sp, #0x2c + add r4, r0, #0 + ldr r0, [r4, #4] + bl FX_Inv + add r5, r0, #0 + ldr r0, [r4, #4] + bl FX_Inv + mov r1, #0 + str r5, [sp, #0x1c] + str r1, [sp, #0x20] + str r1, [sp, #0x24] + str r0, [sp, #0x28] + ldr r0, [r4, #8] + bl FX_Inv + add r5, r0, #0 + ldr r0, [r4, #8] + bl FX_Inv + mov r1, #0 + str r5, [sp, #0xc] + str r1, [sp, #0x10] + str r1, [sp, #0x14] + str r0, [sp, #0x18] + bl OS_WaitVBlankIntr + mov r0, #1 + ldr r1, [r4, #4] + lsl r0, r0, #0xa + add r1, r1, r0 + mov r0, #3 + lsl r0, r0, #0xc + cmp r1, r0 + bgt _021DA4FE + str r1, [r4, #4] + add r0, sp, #0x1c + str r0, [sp] + mov r0, #0x80 + str r0, [sp, #4] + mov r0, #0x5a + str r0, [sp, #8] + ldr r0, [r4, #0xc] + mov r1, #2 + mov r2, #4 + mov r3, #1 + bl FUN_02017B60 + mov r0, #1 + ldr r1, [r4, #8] + lsl r0, r0, #0xa + add r0, r1, r0 + str r0, [r4, #8] + add r0, sp, #0xc + str r0, [sp] + mov r0, #0xc0 + str r0, [sp, #4] + mov r0, #0x5a + str r0, [sp, #8] + ldr r0, [r4, #0xc] + mov r1, #3 + mov r2, #4 + mov r3, #1 + bl FUN_02017B60 +_021DA4FE: + add sp, #0x2c + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD63_021DA478 + + thumb_func_start MOD63_021DA504 +MOD63_021DA504: ; 0x021DA504 + push {r4, r5, lr} + sub sp, #0x2c + add r4, r0, #0 + ldr r0, [r4, #4] + bl FX_Inv + add r5, r0, #0 + ldr r0, [r4, #4] + bl FX_Inv + mov r1, #0 + str r5, [sp, #0x1c] + str r1, [sp, #0x20] + str r1, [sp, #0x24] + str r0, [sp, #0x28] + ldr r0, [r4, #8] + bl FX_Inv + add r5, r0, #0 + ldr r0, [r4, #8] + bl FX_Inv + mov r1, #0 + str r5, [sp, #0xc] + str r1, [sp, #0x10] + str r1, [sp, #0x14] + str r0, [sp, #0x18] + bl OS_WaitVBlankIntr + mov r0, #2 + ldr r1, [r4, #4] + lsl r0, r0, #0xa + add r0, r1, r0 + str r0, [r4, #4] + add r0, sp, #0x1c + str r0, [sp] + mov r0, #0x80 + str r0, [sp, #4] + mov r0, #0x5a + str r0, [sp, #8] + ldr r0, [r4, #0xc] + mov r1, #2 + mov r2, #4 + mov r3, #1 + bl FUN_02017B60 + mov r0, #2 + ldr r1, [r4, #8] + lsl r0, r0, #0xa + add r0, r1, r0 + str r0, [r4, #8] + add r0, sp, #0xc + str r0, [sp] + mov r0, #0xc0 + str r0, [sp, #4] + mov r0, #0x5a + str r0, [sp, #8] + ldr r0, [r4, #0xc] + mov r1, #3 + mov r2, #4 + mov r3, #1 + bl FUN_02017B60 + add sp, #0x2c + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD63_021DA504 + + thumb_func_start MOD63_021DA588 +MOD63_021DA588: ; 0x021DA588 + mov r1, #1 + strb r1, [r0] + mov r2, #6 + strb r2, [r0, #3] + mov r2, #0 + strb r2, [r0, #1] + ldr r3, _021DA59C ; =FUN_0201E6E4 + add r0, r1, #0 + bx r3 + nop +_021DA59C: .word FUN_0201E6E4 + thumb_func_end MOD63_021DA588 + + thumb_func_start MOD63_021DA5A0 +MOD63_021DA5A0: ; 0x021DA5A0 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + ldrb r0, [r5, #0x18] + add r4, r5, #0 + add r4, #0x18 + cmp r0, #0 + beq _021DA630 + ldrb r3, [r4, #1] + ldr r0, _021DA634 ; =0x021DBF40 + ldrb r1, [r4, #3] + ldrb r0, [r0, r3] + cmp r1, r0 + blo _021DA614 + mov r1, #0 + str r1, [sp] + ldr r6, _021DA638 ; =0x021DBF48 + ldr r0, [r5, #0x14] + ldrb r3, [r6, r3] + mov r2, #1 + lsl r3, r3, #0x1c + lsr r3, r3, #0x18 + bl MOD63_021D9EA8 + mov r0, #0x20 + str r0, [sp] + ldrb r6, [r4, #1] + ldr r3, _021DA63C ; =0x021DBF44 + ldr r0, [r5, #0x14] + ldrb r3, [r3, r6] + mov r1, #0 + mov r2, #1 + lsl r3, r3, #0x1c + lsr r3, r3, #0x18 + bl MOD63_021D9EA8 + mov r0, #0x20 + str r0, [sp] + ldr r0, [r5, #0x14] + mov r1, #1 + ldrb r5, [r4, #1] + ldr r3, _021DA63C ; =0x021DBF44 + add r2, r1, #0 + ldrb r3, [r3, r5] + lsl r3, r3, #0x1c + lsr r3, r3, #0x18 + bl MOD63_021D9EA8 + mov r1, #0 + strb r1, [r4, #3] + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + ldrb r0, [r4, #1] + cmp r0, #4 + blo _021DA618 + strb r1, [r4] + b _021DA618 +_021DA614: + add r0, r1, #1 + strb r0, [r4, #3] +_021DA618: + ldrb r0, [r4, #1] + cmp r0, #0 + bne _021DA630 + ldr r0, _021DA634 ; =0x021DBF40 + ldrb r1, [r4, #3] + ldrb r0, [r0] + cmp r1, r0 + blo _021DA630 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 +_021DA630: + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021DA634: .word 0x021DBF40 +_021DA638: .word 0x021DBF48 +_021DA63C: .word 0x021DBF44 + thumb_func_end MOD63_021DA5A0 + + thumb_func_start MOD63_021DA640 +MOD63_021DA640: ; 0x021DA640 + push {r4, lr} + sub sp, #0x10 + ldr r4, _021DA66C ; =0x021DBE4C + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #5 + mov r1, #0x4c + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021DA66C: .word 0x021DBE4C + thumb_func_end MOD63_021DA640 + + thumb_func_start MOD63_021DA670 +MOD63_021DA670: ; 0x021DA670 + push {r3, r4, r5, r6, lr} + sub sp, #0x2c + add r6, r0, #0 + mov r0, #0 + str r6, [sp] + mvn r0, r0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r2, [sp, #0x10] + mov r2, #0x4b + add r5, r1, #0 + lsl r2, r2, #2 + ldr r1, [r5, r2] + add r4, r3, #0 + str r1, [sp, #0x14] + add r1, r2, #4 + ldr r1, [r5, r1] + add r3, r6, #0 + str r1, [sp, #0x18] + add r1, r2, #0 + add r1, #8 + ldr r1, [r5, r1] + add r2, #0xc + str r1, [sp, #0x1c] + ldr r1, [r5, r2] + add r2, r6, #0 + str r1, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + ldr r0, [sp, #0x40] + add r1, r6, #0 + bl FUN_02008AA4 + ldr r0, [r5] + mov r1, #0 + str r0, [r4] + ldr r0, [sp, #0x40] + str r0, [r4, #4] + str r1, [r4, #8] + str r1, [r4, #0xc] + mov r0, #1 + str r1, [r4, #0x10] + lsl r0, r0, #0xc + str r0, [r4, #0x14] + str r0, [r4, #0x18] + str r0, [r4, #0x1c] + strh r1, [r4, #0x20] + mov r0, #1 + str r0, [r4, #0x24] + str r0, [r4, #0x28] + mov r0, #0x4c + str r0, [r4, #0x2c] + add sp, #0x2c + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD63_021DA670 + + thumb_func_start MOD63_021DA6E0 +MOD63_021DA6E0: ; 0x021DA6E0 + mov r0, #0x1b + lsl r0, r0, #4 + bx lr + .align 2, 0 + thumb_func_end MOD63_021DA6E0 + + thumb_func_start MOD63_021DA6E8 +MOD63_021DA6E8: ; 0x021DA6E8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + mov r2, #1 + lsl r2, r2, #0x1a + add r5, r0, #0 + ldr r1, [r2] + ldr r0, _021DA9FC ; =0xFFCFFFEF + and r1, r0 + mov r0, #0x10 + orr r0, r1 + str r0, [r2] + bl MOD63_021DA640 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x80 + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x4c + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + mov r0, #0x19 + add r1, r5, #4 + mov r2, #0x4c + bl FUN_02008C9C + mov r2, #1 + str r0, [r5] + add r0, r5, #4 + mov r1, #0 + lsl r2, r2, #0x14 + bl FUN_02008D24 + ldr r4, _021DAA00 ; =0x021DBE28 + mov r7, #0 + add r6, r5, #0 +_021DA73C: + ldrb r0, [r4] + add r1, r7, #0 + mov r2, #0x4c + bl FUN_02008DEC + mov r1, #0x4b + lsl r1, r1, #2 + str r0, [r6, r1] + add r7, r7, #1 + add r4, r4, #1 + add r6, r6, #4 + cmp r7, #4 + blt _021DA73C + mov r3, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xe0 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x26 + bl FUN_02008F34 + mov r1, #0x4f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xe0 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x27 + mov r3, #0 + bl FUN_02008F34 + mov r1, #0x53 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xe0 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x28 + mov r3, #0 + bl FUN_02008F34 + mov r1, #0x57 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #3 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xe0 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x29 + mov r3, #0 + bl FUN_02008F34 + mov r1, #0x5b + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #4 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xe0 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x2a + mov r3, #0 + bl FUN_02008F34 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + add r0, #0xe4 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x21 + bl FUN_02008FEC + mov r1, #5 + lsl r1, r1, #6 + str r0, [r5, r1] + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + add r0, #0xe4 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x22 + mov r3, #0 + bl FUN_02008FEC + mov r1, #0x15 + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + add r0, #0xe4 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x23 + mov r3, #0 + bl FUN_02008FEC + mov r1, #0x16 + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #3 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + add r0, #0xe4 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x24 + mov r3, #0 + bl FUN_02008FEC + mov r1, #0x17 + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #4 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + add r0, #0xe4 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x25 + mov r3, #0 + bl FUN_02008FEC + mov r1, #6 + lsl r1, r1, #6 + str r0, [r5, r1] + mov r3, #0 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xe8 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x2b + bl FUN_020090AC + mov r1, #0x51 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xe8 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x2c + mov r3, #0 + bl FUN_020090AC + mov r1, #0x55 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #2 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xe8 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x2d + mov r3, #0 + bl FUN_020090AC + mov r1, #0x59 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #3 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xe8 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x2e + mov r3, #0 + bl FUN_020090AC + mov r1, #0x5d + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #4 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xe8 + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x2f + mov r3, #0 + bl FUN_020090AC + mov r1, #0x61 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #0 + str r3, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xec + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x30 + bl FUN_020090AC + mov r1, #0x52 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #1 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xec + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x31 + mov r3, #0 + bl FUN_020090AC + mov r1, #0x56 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #2 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xec + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x32 + mov r3, #0 + bl FUN_020090AC + mov r1, #0x5a + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #3 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xec + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x33 + mov r3, #0 + bl FUN_020090AC + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #4 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xec + ldr r0, [r5, r0] + mov r1, #0x80 + mov r2, #0x34 + mov r3, #0 + bl FUN_020090AC + mov r1, #0x62 + lsl r1, r1, #2 + add r7, r1, #0 + add r6, r1, #0 + str r0, [r5, r1] + mov r4, #0 + sub r7, #0x4c + sub r6, #0x48 +_021DA9DC: + ldr r0, [r5, r7] + bl FUN_02009A50 + ldr r0, [r5, r6] + bl FUN_02009CF0 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #5 + blt _021DA9DC + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021DA9FC: .word 0xFFCFFFEF +_021DAA00: .word 0x021DBE28 + thumb_func_end MOD63_021DA6E8 + + thumb_func_start MOD63_021DAA04 +MOD63_021DAA04: ; 0x021DAA04 + push {r3, r4, r5, r6, r7, lr} + mov r7, #5 + add r5, r0, #0 + mov r4, #0 + lsl r7, r7, #6 +_021DAA0E: + lsl r0, r4, #4 + add r6, r5, r0 + mov r0, #0x4f + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009C0C + ldr r0, [r6, r7] + bl FUN_02009E04 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #5 + blo _021DAA0E + mov r6, #0x4b + mov r4, #0 + lsl r6, r6, #2 +_021DAA32: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, r6] + bl FUN_02008E2C + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021DAA32 + ldr r0, [r5] + bl FUN_0201FD58 + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD63_021DAA04 + + thumb_func_start MOD63_021DAA5C +MOD63_021DAA5C: ; 0x021DAA5C + push {r4, r5, r6, r7, lr} + sub sp, #0xa4 + ldr r3, _021DABC0 ; =0x021DBE5C + add r5, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0x38 + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r3, _021DABC4 ; =0x021DBE74 + add r2, sp, #0x20 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r3, _021DABC8 ; =0x021DBE8C + add r2, sp, #8 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r0, sp, #0x80 + str r0, [sp] + mov r0, #0 + add r1, r5, #0 + mov r2, #1 + add r3, sp, #0x50 + bl MOD63_021DA670 + mov r0, #5 + lsl r0, r0, #0x10 + str r0, [sp, #0x58] + mov r0, #7 + lsl r0, r0, #0x10 + str r0, [sp, #0x5c] + add r0, sp, #0x50 + bl FUN_0201FE94 + mov r1, #0x63 + lsl r1, r1, #2 + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #0 + bl FUN_020200BC + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + add r0, sp, #0x80 + str r0, [sp] + mov r0, #1 + add r1, r5, #0 + add r2, r0, #0 + add r3, sp, #0x50 + bl MOD63_021DA670 + mov r0, #5 + lsl r0, r0, #0x10 + str r0, [sp, #0x58] + mov r0, #7 + lsl r0, r0, #0x10 + str r0, [sp, #0x5c] + add r0, sp, #0x50 + bl FUN_0201FE94 + mov r1, #0x19 + lsl r1, r1, #4 + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #0 + bl FUN_020200BC + mov r0, #0x19 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + add r0, r5, #0 + mov r1, #3 + bl MOD63_021DAC80 + add r0, sp, #0x80 + str r0, [sp] + mov r0, #2 + add r1, r5, #0 + mov r2, #1 + add r3, sp, #0x50 + bl MOD63_021DA670 + mov r0, #5 + lsl r0, r0, #0x12 + str r0, [sp, #0x58] + mov r0, #7 + lsl r0, r0, #0x10 + str r0, [sp, #0x5c] + add r0, sp, #0x50 + bl FUN_0201FE94 + mov r1, #0x65 + lsl r1, r1, #2 + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x65 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0 + str r0, [sp, #4] + add r7, sp, #0x20 + add r6, sp, #8 + add r4, sp, #0x38 +_021DAB58: + add r0, sp, #0x80 + str r0, [sp] + mov r0, #3 + add r1, r5, #0 + mov r2, #0 + add r3, sp, #0x50 + bl MOD63_021DA670 + ldr r0, [r7] + lsl r0, r0, #0xc + str r0, [sp, #0x58] + ldr r0, [r6] + lsl r0, r0, #0xc + str r0, [sp, #0x5c] + add r0, sp, #0x50 + bl FUN_0201FE94 + ldr r1, [r4] + lsl r1, r1, #2 + add r2, r5, r1 + mov r1, #0x63 + lsl r1, r1, #2 + str r0, [r2, r1] + ldr r0, [r4] + lsl r0, r0, #2 + add r1, r5, r0 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200BC + ldr r0, [r4] + lsl r0, r0, #2 + add r1, r5, r0 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [sp, #4] + add r7, r7, #4 + add r0, r0, #1 + add r6, r6, #4 + add r4, r4, #4 + str r0, [sp, #4] + cmp r0, #6 + blt _021DAB58 + add sp, #0xa4 + pop {r4, r5, r6, r7, pc} + nop +_021DABC0: .word 0x021DBE5C +_021DABC4: .word 0x021DBE74 +_021DABC8: .word 0x021DBE8C + thumb_func_end MOD63_021DAA5C + + thumb_func_start MOD63_021DABCC +MOD63_021DABCC: ; 0x021DABCC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x58 + add r2, r0, #0 + add r0, sp, #0x34 + add r6, r1, #0 + str r0, [sp] + add r1, r2, #0 + mov r0, #4 + mov r2, #0 + add r3, sp, #4 + bl MOD63_021DA670 + mov r0, #2 + str r0, [sp, #0x2c] + mov r5, #0 + add r7, sp, #4 +_021DABEC: + add r0, r6, #0 + add r1, r5, #0 + bl MOD63_021DAF80 + add r4, r0, #0 + add r0, r7, #0 + bl FUN_0201FE94 + str r0, [r4] + mov r1, #0 + bl FUN_020200BC + ldr r0, [r4] + mov r1, #0 + bl FUN_020200A0 + add r5, r5, #1 + cmp r5, #0x10 + blt _021DABEC + add sp, #0x58 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD63_021DABCC + + thumb_func_start MOD63_021DAC18 +MOD63_021DAC18: ; 0x021DAC18 + ldr r3, _021DAC20 ; =FUN_0201FDEC + ldr r0, [r0] + bx r3 + nop +_021DAC20: .word FUN_0201FDEC + thumb_func_end MOD63_021DAC18 + + thumb_func_start MOD63_021DAC24 +MOD63_021DAC24: ; 0x021DAC24 + lsl r1, r1, #2 + add r1, r0, r1 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r1, r0] + ldr r3, _021DAC34 ; =FUN_020200A0 + add r1, r2, #0 + bx r3 + .align 2, 0 +_021DAC34: .word FUN_020200A0 + thumb_func_end MOD63_021DAC24 + + thumb_func_start MOD63_021DAC38 +MOD63_021DAC38: ; 0x021DAC38 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r6, r2, #0 + mov r2, #0x63 + lsl r2, r2, #2 + add r4, r0, r2 + lsl r5, r1, #2 + ldr r0, [r4, r5] + add r7, r3, #0 + bl FUN_0202011C + add r3, r0, #0 + add r2, sp, #0 + ldmia r3!, {r0, r1} + mov ip, r2 + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r1, ip + str r0, [r2] + str r6, [sp] + str r7, [sp, #4] + ldr r0, [r4, r5] + bl FUN_02020044 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD63_021DAC38 + + thumb_func_start MOD63_021DAC6C +MOD63_021DAC6C: ; 0x021DAC6C + push {r3, lr} + mov r2, #0xb + mov r3, #7 + mov r1, #1 + lsl r2, r2, #0x10 + lsl r3, r3, #0x10 + bl MOD63_021DAC38 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD63_021DAC6C + + thumb_func_start MOD63_021DAC80 +MOD63_021DAC80: ; 0x021DAC80 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + bl FUN_02020130 + mov r0, #0x19 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_02020130 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD63_021DAC80 + + thumb_func_start MOD63_021DACA0 +MOD63_021DACA0: ; 0x021DACA0 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + bl FUN_020200BC + mov r0, #0x19 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_020200BC + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD63_021DACA0 + + thumb_func_start MOD63_021DACC0 +MOD63_021DACC0: ; 0x021DACC0 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #0x65 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0202011C + add r5, r0, #0 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + mov r0, #0xe + ldr r1, [sp] + lsl r0, r0, #0xc + sub r1, r1, r0 + mov r0, #0xb + lsl r0, r0, #0x10 + str r1, [sp] + cmp r1, r0 + bgt _021DAD04 + str r0, [sp] + mov r0, #0x65 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r2, #0 + bl FUN_02020044 + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021DAD04: + mov r0, #0x65 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r2, #0 + bl FUN_02020044 + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD63_021DACC0 + + thumb_func_start MOD63_021DAD18 +MOD63_021DAD18: ; 0x021DAD18 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + lsl r4, r1, #2 + mov r0, #0x63 + add r1, r5, r4 + lsl r0, r0, #2 + ldr r0, [r1, r0] + add r6, r2, #0 + bl FUN_02020354 + mov r1, #1 + bl FUN_020B19C4 + add r7, r0, #0 + cmp r6, #0 + bne _021DAD44 + ldr r0, _021DAD64 ; =0x021DBFA0 + add r1, r7, #0 + mov r2, #0x20 + bl GX_LoadOBJPltt + pop {r3, r4, r5, r6, r7, pc} +_021DAD44: + ldr r0, _021DAD68 ; =0x021DBF64 + ldr r0, [r0, r4] + lsl r0, r0, #4 + add r1, r5, r0 + mov r0, #5 + lsl r0, r0, #6 + ldr r0, [r1, r0] + bl FUN_0200955C + ldr r0, [r0, #0xc] + add r1, r7, #0 + mov r2, #0x20 + bl GX_LoadOBJPltt + pop {r3, r4, r5, r6, r7, pc} + nop +_021DAD64: .word 0x021DBFA0 +_021DAD68: .word 0x021DBF64 + thumb_func_end MOD63_021DAD18 + + thumb_func_start MOD63_021DAD6C +MOD63_021DAD6C: ; 0x021DAD6C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + ldr r3, _021DAE44 ; =0x021DBE40 + add r2, sp, #0x18 + str r0, [sp] + str r1, [sp, #4] + ldmia r3!, {r0, r1} + str r2, [sp, #8] + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r3, _021DAE48 ; =0x021DBE34 + str r0, [r2] + ldmia r3!, {r0, r1} + add r2, sp, #0xc + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r1, _021DAE4C ; =0x000005C8 + str r0, [r2] + ldr r0, [sp, #4] + cmp r0, r1 + blt _021DADE6 + mov r4, #0 +_021DAD98: + ldr r0, [sp, #8] + lsl r7, r4, #2 + ldr r0, [r0, r7] + lsl r1, r0, #2 + ldr r0, [sp] + add r5, r0, r1 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0202011C + add r6, r0, #0 + add r3, sp, #0x24 + ldmia r6!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r6] + str r0, [r3] + ldr r0, _021DAE50 ; =0x021DBF4C + ldr r1, [sp, #0x24] + ldr r0, [r0, r7] + sub r0, r1, r0 + str r0, [sp, #0x24] + mov r0, #1 + ldr r1, [sp, #0x28] + lsl r0, r0, #0xe + sub r0, r1, r0 + str r0, [sp, #0x28] + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r2, #0 + bl FUN_02020044 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #3 + blo _021DAD98 +_021DADE6: + ldr r1, _021DAE54 ; =0x000005E6 + ldr r0, [sp, #4] + cmp r0, r1 + blt _021DAE3E + mov r5, #0 +_021DADF0: + lsl r7, r5, #2 + add r0, sp, #0xc + ldr r0, [r0, r7] + lsl r1, r0, #2 + ldr r0, [sp] + add r4, r0, r1 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0202011C + add r6, r0, #0 + add r3, sp, #0x24 + ldmia r6!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r6] + str r0, [r3] + ldr r0, _021DAE58 ; =0x021DBF58 + ldr r1, [sp, #0x24] + ldr r0, [r0, r7] + sub r0, r1, r0 + str r0, [sp, #0x24] + mov r0, #1 + ldr r1, [sp, #0x28] + lsl r0, r0, #0xe + sub r0, r1, r0 + str r0, [sp, #0x28] + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r2, #0 + bl FUN_02020044 + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, #3 + blo _021DADF0 +_021DAE3E: + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + nop +_021DAE44: .word 0x021DBE40 +_021DAE48: .word 0x021DBE34 +_021DAE4C: .word 0x000005C8 +_021DAE50: .word 0x021DBF4C +_021DAE54: .word 0x000005E6 +_021DAE58: .word 0x021DBF58 + thumb_func_end MOD63_021DAD6C + + thumb_func_start MOD63_021DAE5C +MOD63_021DAE5C: ; 0x021DAE5C + push {r4, lr} + sub sp, #0x10 + ldr r4, _021DAE88 ; =0x021DBEAC + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #1 + mov r1, #0x4c + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021DAE88: .word 0x021DBEAC + thumb_func_end MOD63_021DAE5C + + thumb_func_start MOD63_021DAE8C +MOD63_021DAE8C: ; 0x021DAE8C + push {r3, r4, r5, r6, lr} + sub sp, #0x2c + add r4, r1, #0 + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + sub r0, r1, #1 + str r0, [sp, #4] + str r0, [sp, #8] + add r6, r2, #0 + str r1, [sp, #0xc] + mov r2, #0x4b + str r1, [sp, #0x10] + lsl r2, r2, #2 + ldr r0, [r5, r2] + add r3, r1, #0 + str r0, [sp, #0x14] + add r0, r2, #4 + ldr r0, [r5, r0] + str r0, [sp, #0x18] + add r0, r2, #0 + add r0, #8 + ldr r0, [r5, r0] + add r2, #0xc + str r0, [sp, #0x1c] + ldr r0, [r5, r2] + add r2, r1, #0 + str r0, [sp, #0x20] + str r1, [sp, #0x24] + str r1, [sp, #0x28] + add r0, r6, #0 + bl FUN_02008AA4 + ldr r0, [r5] + mov r1, #0 + str r0, [r4] + str r6, [r4, #4] + str r1, [r4, #8] + str r1, [r4, #0xc] + mov r0, #1 + str r1, [r4, #0x10] + lsl r0, r0, #0xc + str r0, [r4, #0x14] + str r0, [r4, #0x18] + str r0, [r4, #0x1c] + strh r1, [r4, #0x20] + mov r0, #1 + str r0, [r4, #0x24] + str r0, [r4, #0x28] + mov r0, #0x4c + str r0, [r4, #0x2c] + add sp, #0x2c + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD63_021DAE8C + + thumb_func_start MOD63_021DAEF8 +MOD63_021DAEF8: ; 0x021DAEF8 + push {r4, lr} + mov r1, #0x7d + mov r0, #0x4c + lsl r1, r1, #2 + bl FUN_02016998 + mov r2, #0x7d + add r4, r0, #0 + mov r1, #0 + lsl r2, r2, #2 + bl Call_FillMemWithValue + add r0, r4, #0 + bl MOD63_021DAFEC + add r0, r4, #0 + bl MOD63_021DB150 + add r0, r4, #0 + pop {r4, pc} + thumb_func_end MOD63_021DAEF8 + + thumb_func_start MOD63_021DAF20 +MOD63_021DAF20: ; 0x021DAF20 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x4c + mov r1, #8 + bl FUN_02016998 + add r4, r0, #0 + mov r0, #0xc + add r6, r5, #0 + mul r6, r0 + mov r0, #0x4c + add r1, r6, #0 + bl FUN_02016998 + mov r1, #0 + add r2, r6, #0 + str r0, [r4, #4] + bl Call_FillMemWithValue + str r5, [r4] + add r0, r4, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD63_021DAF20 + + thumb_func_start MOD63_021DAF4C +MOD63_021DAF4C: ; 0x021DAF4C + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5] + mov r6, #0 + cmp r0, #0 + ble _021DAF72 + add r4, r6, #0 +_021DAF5A: + ldr r0, [r5, #4] + add r0, r0, r4 + ldr r0, [r0, #8] + cmp r0, #0 + beq _021DAF68 + bl FUN_0200CAB4 +_021DAF68: + ldr r0, [r5] + add r6, r6, #1 + add r4, #0xc + cmp r6, r0 + blt _021DAF5A +_021DAF72: + ldr r0, [r5, #4] + bl FUN_02016A18 + add r0, r5, #0 + bl FUN_02016A18 + pop {r4, r5, r6, pc} + thumb_func_end MOD63_021DAF4C + + thumb_func_start MOD63_021DAF80 +MOD63_021DAF80: ; 0x021DAF80 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5] + add r4, r1, #0 + cmp r4, r0 + blt _021DAF90 + bl ErrorHandling +_021DAF90: + mov r0, #0xc + ldr r1, [r5, #4] + mul r0, r4 + add r0, r1, r0 + add r0, r0, #4 + pop {r3, r4, r5, pc} + thumb_func_end MOD63_021DAF80 + + thumb_func_start MOD63_021DAF9C +MOD63_021DAF9C: ; 0x021DAF9C + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + bl MOD63_021DB108 + mov r6, #0x73 + mov r4, #0 + lsl r6, r6, #2 +_021DAFAA: + lsl r0, r4, #4 + add r0, r5, r0 + ldr r0, [r0, r6] + cmp r0, #0 + beq _021DAFB8 + bl FUN_0200CAB4 +_021DAFB8: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #3 + blo _021DAFAA + mov r6, #0x55 + mov r4, #0 + mov r7, #0xc + lsl r6, r6, #2 +_021DAFCA: + add r0, r4, #0 + mul r0, r7 + add r0, r5, r0 + ldr r0, [r0, r6] + cmp r0, #0 + beq _021DAFDA + bl FUN_0200CAB4 +_021DAFDA: + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xa + blo _021DAFCA + add r0, r5, #0 + bl FUN_02016A18 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD63_021DAF9C + + thumb_func_start MOD63_021DAFEC +MOD63_021DAFEC: ; 0x021DAFEC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + add r7, r0, #0 + add r3, r1, #0 + ldr r0, _021DB0FC ; =0xFFCFFFEF + mov r1, #0x10 + and r3, r0 + orr r3, r1 + str r3, [r2] + ldr r3, _021DB100 ; =0x04001000 + ldr r2, [r3] + and r0, r2 + orr r0, r1 + str r0, [r3] + bl MOD63_021DAE5C + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x80 + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x4c + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + mov r0, #0xa + add r1, r7, #4 + mov r2, #0x4c + bl FUN_02008C9C + ldr r4, _021DB104 ; =0x021DBEBC + str r0, [r7] + mov r6, #0 + add r5, r7, #0 +_021DB040: + ldrb r0, [r4] + add r1, r6, #0 + mov r2, #0x4c + bl FUN_02008DEC + mov r1, #0x4b + lsl r1, r1, #2 + str r0, [r5, r1] + add r6, r6, #1 + add r4, r4, #1 + add r5, r5, #4 + cmp r6, #4 + blt _021DB040 + mov r3, #0 + str r3, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xe0 + ldr r0, [r7, r0] + mov r1, #0x80 + mov r2, #4 + bl FUN_02008F34 + mov r1, #0x4f + lsl r1, r1, #2 + str r0, [r7, r1] + mov r3, #0 + str r3, [sp] + mov r2, #3 + str r2, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x4c + str r0, [sp, #0xc] + add r0, #0xe4 + ldr r0, [r7, r0] + mov r1, #0x80 + bl FUN_02008FEC + mov r1, #5 + lsl r1, r1, #6 + str r0, [r7, r1] + mov r3, #0 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xe8 + ldr r0, [r7, r0] + mov r1, #0x80 + mov r2, #5 + bl FUN_020090AC + mov r1, #0x51 + lsl r1, r1, #2 + str r0, [r7, r1] + mov r3, #0 + str r3, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x4c + str r0, [sp, #8] + add r0, #0xec + ldr r0, [r7, r0] + mov r1, #0x80 + mov r2, #6 + bl FUN_020090AC + mov r1, #0x52 + lsl r1, r1, #2 + str r0, [r7, r1] + sub r1, #0xc + ldr r0, [r7, r1] + bl FUN_02009A50 + mov r0, #5 + lsl r0, r0, #6 + ldr r0, [r7, r0] + bl FUN_02009CF0 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021DB0FC: .word 0xFFCFFFEF +_021DB100: .word 0x04001000 +_021DB104: .word 0x021DBEBC + thumb_func_end MOD63_021DAFEC + + thumb_func_start MOD63_021DB108 +MOD63_021DB108: ; 0x021DB108 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x4f + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009C0C + mov r0, #5 + lsl r0, r0, #6 + ldr r0, [r5, r0] + bl FUN_02009E04 + mov r6, #0x4b + mov r4, #0 + lsl r6, r6, #2 +_021DB126: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, r6] + bl FUN_02008E2C + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021DB126 + ldr r0, [r5] + bl FUN_0201FD58 + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD63_021DB108 + + thumb_func_start MOD63_021DB150 +MOD63_021DB150: ; 0x021DB150 + push {r4, r5, r6, r7, lr} + sub sp, #0x54 + add r7, r0, #0 + mov r6, #0 + add r4, r6, #0 + add r5, r7, #0 +_021DB15C: + add r0, r7, #0 + add r1, sp, #0 + add r2, sp, #0x30 + bl MOD63_021DAE8C + add r0, sp, #0 + str r4, [sp, #8] + str r4, [sp, #0xc] + bl FUN_0201FE94 + mov r1, #0x15 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200BC + mov r0, #0x15 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #2 + lsl r0, r0, #0xc + add r6, r6, #1 + add r4, r4, r0 + add r5, #0xc + cmp r6, #0xa + blt _021DB15C + add sp, #0x54 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD63_021DB150 + + thumb_func_start MOD63_021DB1A0 +MOD63_021DB1A0: ; 0x021DB1A0 + ldr r3, _021DB1A8 ; =FUN_0201FDEC + ldr r0, [r0] + bx r3 + nop +_021DB1A8: .word FUN_0201FDEC + thumb_func_end MOD63_021DB1A0 + + thumb_func_start MOD63_021DB1AC +MOD63_021DB1AC: ; 0x021DB1AC + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + cmp r1, #0xb4 + bne _021DB1CE + mov r2, #3 + str r2, [sp] + mov r0, #0 + str r0, [sp, #4] + mov r0, #0x71 + lsl r0, r0, #2 + add r0, r4, r0 + add r1, r4, #0 + add r3, r2, #0 + bl MOD63_021DB1F8 + b _021DB1E8 +_021DB1CE: + ldr r0, _021DB1F4 ; =0x0000011D + cmp r1, r0 + bne _021DB1E8 + mov r2, #3 + add r0, #0xb7 + str r2, [sp] + mov r1, #1 + str r1, [sp, #4] + add r0, r4, r0 + add r1, r4, #0 + add r3, r2, #0 + bl MOD63_021DB1F8 +_021DB1E8: + add r0, r4, #0 + bl MOD63_021DB1A0 + add sp, #8 + pop {r4, pc} + nop +_021DB1F4: .word 0x0000011D + thumb_func_end MOD63_021DB1AC + + thumb_func_start MOD63_021DB1F8 +MOD63_021DB1F8: ; 0x021DB1F8 + push {r4, lr} + add r4, r0, #0 + strb r2, [r4] + ldr r2, _021DB228 ; =0xFFFFFFF8 + strb r3, [r4, #1] + add r2, sp + ldrb r0, [r2, #0x10] + strb r0, [r4, #2] + mov r0, #0 + strb r0, [r4, #4] + strb r0, [r4, #3] + mov r0, #0x53 + lsl r0, r0, #2 + add r0, r1, r0 + str r0, [r4, #0xc] + ldrb r0, [r2, #0x14] + add r1, r4, #0 + mov r2, #0xa + strb r0, [r4, #5] + ldr r0, _021DB22C ; =MOD63_021DB2F8 + bl FUN_0200CA44 + str r0, [r4, #8] + pop {r4, pc} + .align 2, 0 +_021DB228: .word 0xFFFFFFF8 +_021DB22C: .word MOD63_021DB2F8 + thumb_func_end MOD63_021DB1F8 + + thumb_func_start MOD63_021DB230 +MOD63_021DB230: ; 0x021DB230 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r6, r1, #0 + str r0, [sp] + cmp r2, #0 + bne _021DB240 + mov r7, #0x40 + b _021DB242 +_021DB240: + mov r7, #0x20 +_021DB242: + mov r5, #0 + cmp r6, #0 + bls _021DB2BE +_021DB248: + ldr r0, [sp] + mov r1, #0xa + bl MOD63_021DB2C8 + add r4, r0, #0 + ldr r0, [r4, #4] + bl FUN_0202011C + add r3, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #4 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + bl FUN_0201B9EC + lsr r1, r0, #0x1f + lsl r2, r0, #0x19 + sub r2, r2, r1 + mov r0, #0x19 + ror r2, r0 + add r0, r1, r2 + add r0, #0x40 + lsl r0, r0, #0xc + str r0, [sp, #4] + bl FUN_0201B9EC + lsr r1, r0, #0x1f + lsl r2, r0, #0x1a + sub r2, r2, r1 + mov r0, #0x1a + ror r2, r0 + add r0, r1, r2 + add r0, r7, r0 + lsl r0, r0, #0xc + str r0, [sp, #8] + ldr r0, [r4, #4] + add r1, sp, #4 + bl FUN_02020044 + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_020200BC + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_020200A0 + ldr r0, _021DB2C4 ; =MOD63_021DB334 + add r1, r4, #0 + mov r2, #0x14 + bl FUN_0200CA44 + str r0, [r4, #8] + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r6 + blo _021DB248 +_021DB2BE: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021DB2C4: .word MOD63_021DB334 + thumb_func_end MOD63_021DB230 + + thumb_func_start MOD63_021DB2C8 +MOD63_021DB2C8: ; 0x021DB2C8 + push {r4, lr} + mov r4, #0 + mov r2, #0xc +_021DB2CE: + add r1, r4, #0 + mul r1, r2 + add r3, r0, r1 + ldrb r1, [r0, r1] + cmp r1, #0 + bne _021DB2E6 + mov r0, #1 + strb r0, [r3] + mov r0, #0 + strb r0, [r3, #1] + add r0, r3, #0 + pop {r4, pc} +_021DB2E6: + add r1, r4, #1 + lsl r1, r1, #0x18 + lsr r4, r1, #0x18 + cmp r4, #0xa + blo _021DB2CE + bl ErrorHandling + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD63_021DB2C8 + + thumb_func_start MOD63_021DB2F8 +MOD63_021DB2F8: ; 0x021DB2F8 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4, #4] + add r5, r0, #0 + add r0, r1, #1 + strb r0, [r4, #4] + ldrb r0, [r4, #1] + cmp r1, r0 + blo _021DB330 + ldrb r1, [r4] + ldrb r2, [r4, #5] + ldr r0, [r4, #0xc] + bl MOD63_021DB230 + mov r0, #0 + strb r0, [r4, #4] + ldrb r0, [r4, #3] + add r0, r0, #1 + strb r0, [r4, #3] + ldrb r1, [r4, #3] + ldrb r0, [r4, #2] + cmp r1, r0 + blo _021DB330 + add r0, r5, #0 + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #8] +_021DB330: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD63_021DB2F8 + + thumb_func_start MOD63_021DB334 +MOD63_021DB334: ; 0x021DB334 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #4] + bl FUN_0202011C + add r6, r0, #0 + add r3, sp, #0 + ldmia r6!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r6] + str r0, [r3] + mov r0, #3 + ldr r1, [sp, #4] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [sp, #4] + ldr r0, [r4, #4] + add r1, r2, #0 + bl FUN_02020044 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + ldrb r0, [r4, #1] + cmp r0, #0x50 + blo _021DB388 + add r0, r5, #0 + bl FUN_0200CAB4 + mov r1, #0 + str r1, [r4, #8] + strb r1, [r4] + ldr r0, [r4, #4] + bl FUN_020200BC + ldr r0, [r4, #4] + mov r1, #0 + bl FUN_020200A0 +_021DB388: + add sp, #0xc + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD63_021DB334 + + thumb_func_start MOD63_021DB38C +MOD63_021DB38C: ; 0x021DB38C + ldr r3, _021DB394 ; =MOD63_021DB398 + mov r1, #2 + bx r3 + nop +_021DB394: .word MOD63_021DB398 + thumb_func_end MOD63_021DB38C + + thumb_func_start MOD63_021DB398 +MOD63_021DB398: ; 0x021DB398 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r6, r0, #0 + ldr r0, [r6, #4] + add r7, r1, #0 + str r0, [sp] + ldr r5, _021DB418 ; =0x00000000 + beq _021DB414 +_021DB3A8: + ldr r0, [sp] + ldr r1, [r6] + bl MOD63_021DB2C8 + add r4, r0, #0 + ldr r0, [r4, #4] + bl FUN_0202011C + add r3, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #4 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + bl FUN_0201B9EC + mov r1, #0xe0 + bl _s32_div_f + add r1, #0xa + lsl r0, r1, #0xc + str r0, [sp, #4] + bl FUN_0201B9EC + mov r1, #0x38 + bl _s32_div_f + ldr r0, _021DB41C ; =0x0000013A + add r0, r1, r0 + lsl r0, r0, #0xc + str r0, [sp, #8] + ldr r0, [r4, #4] + add r1, sp, #4 + bl FUN_02020044 + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_020200BC + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_020200A0 + ldr r0, _021DB420 ; =MOD63_021DB424 + add r1, r4, #0 + mov r2, #0x14 + bl FUN_0200CA44 + str r0, [r4, #8] + add r0, r5, #1 + lsl r0, r0, #0x18 + lsr r5, r0, #0x18 + cmp r5, r7 + blo _021DB3A8 +_021DB414: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DB418: .word 0x00000000 +_021DB41C: .word 0x0000013A +_021DB420: .word MOD63_021DB424 + thumb_func_end MOD63_021DB398 + + thumb_func_start MOD63_021DB424 +MOD63_021DB424: ; 0x021DB424 + push {r4, lr} + add r4, r1, #0 + ldrb r1, [r4, #1] + add r1, r1, #1 + strb r1, [r4, #1] + ldrb r1, [r4, #1] + cmp r1, #8 + blo _021DB44C + bl FUN_0200CAB4 + mov r1, #0 + str r1, [r4, #8] + strb r1, [r4] + ldr r0, [r4, #4] + bl FUN_020200BC + ldr r0, [r4, #4] + mov r1, #0 + bl FUN_020200A0 +_021DB44C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD63_021DB424 + + thumb_func_start MOD63_021DB450 +MOD63_021DB450: ; 0x021DB450 + push {r4, lr} + ldr r3, _021DB470 ; =0x021064B8 + mov r2, #0 + ldr r3, [r3] + blx r3 + add r4, r0, #0 + bl FUN_0201327C + cmp r4, #0 + bne _021DB468 + bl ErrorHandling +_021DB468: + lsl r0, r4, #0x10 + lsr r0, r0, #0xd + pop {r4, pc} + nop +_021DB470: .word 0x021064B8 + thumb_func_end MOD63_021DB450 + + thumb_func_start MOD63_021DB474 +MOD63_021DB474: ; 0x021DB474 + push {r4, lr} + ldr r3, _021DB494 ; =0x021064C0 + mov r2, #1 + ldr r3, [r3] + blx r3 + add r4, r0, #0 + bne _021DB486 + bl ErrorHandling +_021DB486: + add r0, r4, #0 + bl FUN_020132BC + lsl r0, r4, #0x10 + lsr r0, r0, #0xd + pop {r4, pc} + nop +_021DB494: .word 0x021064C0 + thumb_func_end MOD63_021DB474 + + thumb_func_start MOD63_021DB498 +MOD63_021DB498: ; 0x021DB498 + mov r0, #0x20 + bx lr + thumb_func_end MOD63_021DB498 + + thumb_func_start MOD63_021DB49C +MOD63_021DB49C: ; 0x021DB49C + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + ldr r3, _021DB56C ; =0x021DBECC + add r5, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0x10 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + mov r0, #0x4c + bl FUN_02006D98 + ldr r7, _021DB570 ; =0x021DBEF0 + str r0, [r5] + mov r4, #0 +_021DB4BA: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + lsl r6, r4, #2 + add r1, sp, #0x10 + ldr r1, [r1, r6] + add r0, sp, #0x1c + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + mov r2, #0 + mov r3, #2 + bl FUN_02068C00 + ldr r0, _021DB574 ; =0x000003FF + lsl r2, r4, #3 + str r0, [sp] + str r4, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + add r3, r7, r2 + ldr r0, [r5] + ldr r2, [r7, r2] + ldr r3, [r3, #4] + add r1, sp, #0x1c + add r6, r5, r6 + bl FUN_020073A0 + mov r1, #6 + mov r2, #1 + str r0, [r6, #4] + bl FUN_02007558 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #3 + blo _021DB4BA + ldr r0, [r5, #8] + mov r1, #0x23 + mov r2, #1 + bl FUN_02007558 + mov r0, #1 + str r0, [r5, #0x10] + bl FUN_02012CC8 + mov r1, #0x12 + mov r0, #0x4c + lsl r1, r1, #0xa + bl FUN_02016998 + str r0, [r5, #0x14] + mov r0, #1 + str r0, [sp] + mov r0, #0x4c + str r0, [sp, #4] + mov r3, #0x12 + ldr r0, _021DB578 ; =MOD63_021DB450 + ldr r1, _021DB57C ; =MOD63_021DB474 + ldr r2, [r5, #0x14] + lsl r3, r3, #0xa + bl FUN_02012CDC + str r0, [r5, #0x18] + bl FUN_0201343C + add r2, r0, #0 + mov r0, #1 + mov r1, #0xe1 + lsl r0, r0, #0xc + lsl r1, r1, #0xe + bl FUN_0201EC94 + mov r0, #0x3d + mov r1, #4 + mov r2, #0x4c + bl FUN_0201318C + add r1, r0, #0 + ldr r0, [r5, #0x18] + mov r2, #0xa + mov r3, #1 + bl FUN_02013194 + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + nop +_021DB56C: .word 0x021DBECC +_021DB570: .word 0x021DBEF0 +_021DB574: .word 0x000003FF +_021DB578: .word MOD63_021DB450 +_021DB57C: .word MOD63_021DB474 + thumb_func_end MOD63_021DB49C + + thumb_func_start MOD63_021DB580 +MOD63_021DB580: ; 0x021DB580 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x18] + bl FUN_02012DE4 + ldr r0, [r4, #0x14] + bl FUN_02016A18 + ldr r0, [r4] + bl FUN_020072E8 + pop {r4, pc} + thumb_func_end MOD63_021DB580 + + thumb_func_start MOD63_021DB598 +MOD63_021DB598: ; 0x021DB598 + push {r3, lr} + cmp r0, #0 + beq _021DB5A4 + ldr r0, [r0] + bl FUN_020081C4 +_021DB5A4: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD63_021DB598 + + thumb_func_start MOD63_021DB5A8 +MOD63_021DB5A8: ; 0x021DB5A8 + push {r4, lr} + add r4, r0, #0 + beq _021DB5C8 + bl FUN_020222AC + bl FUN_020B02C8 + ldr r0, [r4] + bl FUN_02006ED4 + bl MOD63_021DB934 + mov r0, #1 + mov r1, #0 + bl FUN_020222B4 +_021DB5C8: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD63_021DB5A8 + + thumb_func_start MOD63_021DB5CC +MOD63_021DB5CC: ; 0x021DB5CC + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r4, r0, #0 + add r7, r2, #0 + ldrb r2, [r4, #0x1c] + add r5, r4, #0 + add r6, r1, #0 + add r5, #0x1c + cmp r2, #5 + bls _021DB5E2 + b _021DB6FC +_021DB5E2: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021DB5EE: ; jump table + .short _021DB5FA - _021DB5EE - 2 ; case 0 + .short _021DB63C - _021DB5EE - 2 ; case 1 + .short _021DB658 - _021DB5EE - 2 ; case 2 + .short _021DB690 - _021DB5EE - 2 ; case 3 + .short _021DB6BE - _021DB5EE - 2 ; case 4 + .short _021DB6E4 - _021DB5EE - 2 ; case 5 +_021DB5FA: + ldr r0, _021DB704 ; =0x0400004A + mov r1, #0x3f + ldrh r2, [r0] + add r7, r4, #4 + bic r2, r1 + mov r1, #0x11 + orr r1, r2 + mov r2, #0x20 + orr r1, r2 + strh r1, [r0] + lsl r0, r6, #2 + str r0, [sp] + ldr r0, [r7, r0] + mov r1, #0xc + lsl r2, r2, #5 + bl FUN_02007558 + ldr r0, [sp] + mov r2, #1 + ldr r0, [r7, r0] + mov r1, #0xd + lsl r2, r2, #0xa + bl FUN_02007558 + ldr r0, [sp] + mov r1, #6 + ldr r0, [r7, r0] + mov r2, #0 + bl FUN_02007558 + ldrb r0, [r5] + add r0, r0, #1 + strb r0, [r5] +_021DB63C: + ldr r2, _021DB708 ; =0x021DBED8 + lsl r3, r6, #3 + ldr r2, [r2, r3] + add r0, r4, #0 + add r1, r6, #0 + blx r2 + cmp r0, #0 + beq _021DB6FC + mov r0, #0 + strb r0, [r4, #0x1d] + ldrb r0, [r5] + add r0, r0, #1 + strb r0, [r5] + b _021DB6FC +_021DB658: + ldr r0, [r4, #0x18] + mov r1, #1 + bl FUN_02013440 + lsl r0, r6, #2 + str r0, [sp, #4] + ldr r1, _021DB70C ; =0x021DBF08 + lsl r6, r6, #3 + ldr r3, [sp, #4] + add r7, r4, #4 + ldr r0, [r4, #0x18] + ldr r1, [r1, r6] + ldr r2, _021DB710 ; =MOD63_021DB940 + ldr r3, [r7, r3] + bl FUN_020133AC + ldr r1, _021DB714 ; =0x021DBF0C + ldr r3, [sp, #4] + ldr r0, [r4, #0x18] + ldr r1, [r1, r6] + ldr r2, _021DB710 ; =MOD63_021DB940 + ldr r3, [r7, r3] + bl FUN_020133AC + ldrb r0, [r5] + add r0, r0, #1 + strb r0, [r5] + b _021DB6FC +_021DB690: + ldr r0, [r4, #0x18] + bl FUN_020133C8 + cmp r0, #0 + bne _021DB6FC + ldr r0, _021DB718 ; =0x021DBEC0 + lsl r1, r6, #2 + ldr r0, [r0, r1] + cmp r7, r0 + blt _021DB6FC + ldr r1, _021DB704 ; =0x0400004A + mov r0, #0x3f + ldrh r2, [r1] + bic r2, r0 + mov r0, #0x10 + orr r2, r0 + mov r0, #0x20 + orr r0, r2 + strh r0, [r1] + ldrb r0, [r5] + add r0, r0, #1 + strb r0, [r5] + b _021DB6FC +_021DB6BE: + ldr r2, _021DB71C ; =0x021DBEDC + lsl r3, r6, #3 + ldr r2, [r2, r3] + blx r2 + cmp r0, #0 + beq _021DB6FC + lsl r0, r6, #2 + add r0, r4, r0 + ldr r0, [r0, #4] + mov r1, #6 + mov r2, #1 + bl FUN_02007558 + mov r0, #0 + strb r0, [r4, #0x1d] + ldrb r0, [r5] + add r0, r0, #1 + strb r0, [r5] + b _021DB6FC +_021DB6E4: + ldrb r0, [r4, #0x1d] + add r0, r0, #1 + strb r0, [r4, #0x1d] + ldrb r0, [r4, #0x1d] + cmp r0, #0x14 + blo _021DB6FC + mov r0, #0 + strb r0, [r4, #0x1d] + strb r0, [r5] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DB6FC: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021DB704: .word 0x0400004A +_021DB708: .word 0x021DBED8 +_021DB70C: .word 0x021DBF08 +_021DB710: .word MOD63_021DB940 +_021DB714: .word 0x021DBF0C +_021DB718: .word 0x021DBEC0 +_021DB71C: .word 0x021DBEDC + thumb_func_end MOD63_021DB5CC + + thumb_func_start MOD63_021DB720 +MOD63_021DB720: ; 0x021DB720 + push {r3, r4, r5, lr} + add r5, r0, #0 + lsl r0, r1, #2 + add r0, r5, r0 + ldr r4, [r0, #4] + mov r1, #0 + add r0, r4, #0 + mov r2, #6 + bl FUN_020079E0 + mov r1, #1 + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x11 + bl FUN_020079E0 + mov r1, #0xc + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x8c + bl FUN_020079E0 + mov r1, #0xd + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x8d + bl FUN_020079E0 + ldrb r0, [r5, #0x1d] + add r0, r0, #1 + strb r0, [r5, #0x1d] + ldrb r0, [r5, #0x1d] + cmp r0, #6 + blo _021DB780 + mov r1, #0xc + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xf4 + bl FUN_02007558 + mov r1, #0xd + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xf3 + bl FUN_02007558 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DB780: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD63_021DB720 + + thumb_func_start MOD63_021DB784 +MOD63_021DB784: ; 0x021DB784 + push {r3, r4, r5, lr} + add r5, r0, #0 + lsl r0, r1, #2 + add r0, r5, r0 + ldr r4, [r0, #4] + mov r1, #0 + add r0, r4, #0 + sub r2, r1, #3 + bl FUN_020079E0 + mov r1, #1 + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x13 + bl FUN_020079E0 + ldrb r0, [r5, #0x1d] + add r0, r0, #1 + strb r0, [r5, #0x1d] + ldrb r0, [r5, #0x1d] + cmp r0, #6 + blo _021DB7CC + mov r1, #0xc + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xf4 + bl FUN_02007558 + mov r1, #0xd + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xf3 + bl FUN_02007558 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DB7CC: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD63_021DB784 + + thumb_func_start MOD63_021DB7D0 +MOD63_021DB7D0: ; 0x021DB7D0 + push {r3, r4, r5, lr} + add r5, r0, #0 + lsl r0, r1, #2 + add r0, r5, r0 + ldr r4, [r0, #4] + mov r1, #0 + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x10 + bl FUN_020079E0 + mov r1, #1 + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x11 + bl FUN_020079E0 + mov r1, #0xc + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x8c + bl FUN_020079E0 + mov r1, #0xd + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x8d + bl FUN_020079E0 + ldrb r0, [r5, #0x1d] + add r0, r0, #1 + strb r0, [r5, #0x1d] + ldrb r0, [r5, #0x1d] + cmp r0, #6 + blo _021DB832 + mov r1, #0xc + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xf4 + bl FUN_02007558 + mov r1, #0xd + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xf3 + bl FUN_02007558 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DB832: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD63_021DB7D0 + + thumb_func_start MOD63_021DB838 +MOD63_021DB838: ; 0x021DB838 + push {r3, r4, r5, lr} + add r5, r0, #0 + lsl r0, r1, #2 + add r0, r5, r0 + ldr r4, [r0, #4] + mov r1, #0 + add r0, r4, #0 + sub r2, r1, #6 + bl FUN_020079E0 + mov r1, #1 + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x11 + bl FUN_020079E0 + ldrb r0, [r5, #0x1d] + add r0, r0, #1 + strb r0, [r5, #0x1d] + ldrb r0, [r5, #0x1d] + cmp r0, #6 + blo _021DB880 + mov r1, #0xc + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xf4 + bl FUN_02007558 + mov r1, #0xd + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xf3 + bl FUN_02007558 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DB880: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD63_021DB838 + + thumb_func_start MOD63_021DB884 +MOD63_021DB884: ; 0x021DB884 + push {r3, r4, r5, lr} + add r5, r0, #0 + lsl r0, r1, #2 + add r0, r5, r0 + ldr r4, [r0, #4] + mov r1, #0 + add r0, r4, #0 + mov r2, #8 + bl FUN_020079E0 + mov r1, #1 + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x11 + bl FUN_020079E0 + mov r1, #0xc + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x8c + bl FUN_020079E0 + mov r1, #0xd + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x8d + bl FUN_020079E0 + ldrb r0, [r5, #0x1d] + add r0, r0, #1 + strb r0, [r5, #0x1d] + ldrb r0, [r5, #0x1d] + cmp r0, #6 + blo _021DB8E4 + mov r1, #0xc + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xf4 + bl FUN_02007558 + mov r1, #0xd + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xf3 + bl FUN_02007558 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DB8E4: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD63_021DB884 + + thumb_func_start MOD63_021DB8E8 +MOD63_021DB8E8: ; 0x021DB8E8 + push {r3, r4, r5, lr} + add r5, r0, #0 + lsl r0, r1, #2 + add r0, r5, r0 + ldr r4, [r0, #4] + mov r1, #0 + add r0, r4, #0 + mov r2, #6 + bl FUN_020079E0 + mov r1, #1 + add r2, r1, #0 + add r0, r4, #0 + sub r2, #0x15 + bl FUN_020079E0 + ldrb r0, [r5, #0x1d] + add r0, r0, #1 + strb r0, [r5, #0x1d] + ldrb r0, [r5, #0x1d] + cmp r0, #6 + blo _021DB930 + mov r1, #0xc + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xf4 + bl FUN_02007558 + mov r1, #0xd + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xf3 + bl FUN_02007558 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DB930: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD63_021DB8E8 + + thumb_func_start MOD63_021DB934 +MOD63_021DB934: ; 0x021DB934 + push {r3, lr} + bl FUN_02013364 + bl FUN_02013388 + pop {r3, pc} + thumb_func_end MOD63_021DB934 + + thumb_func_start MOD63_021DB940 +MOD63_021DB940: ; 0x021DB940 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + bl FUN_0201341C + add r2, sp, #0 + mov r1, #0 + str r1, [r2] + str r1, [r2, #4] + add r4, r0, #0 + str r1, [r2, #8] + bl FUN_0200782C + sub r0, #0x80 + mov r1, #0xac + mul r1, r0 + str r1, [sp] + add r0, r4, #0 + mov r1, #1 + bl FUN_0200782C + sub r0, #0x60 + mov r1, #0xac + mul r1, r0 + str r1, [sp, #4] + mov r0, #0x40 + str r0, [sp, #8] + ldr r0, [r5, #0x20] + ldr r1, [sp] + ldr r0, [r0] + ldr r0, [r0, #4] + add r0, r1, r0 + str r0, [r5, #0x28] + ldr r0, [r5, #0x20] + ldr r1, [sp, #4] + ldr r0, [r0] + ldr r0, [r0, #8] + add r0, r1, r0 + str r0, [r5, #0x2c] + ldr r0, [r5, #0x20] + ldr r1, [sp, #8] + ldr r0, [r0] + ldr r0, [r0, #0xc] + add r0, r1, r0 + str r0, [r5, #0x30] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD63_021DB940 + + .section .rodata + ; 0x021DB9A0 + .incbin "baserom.nds", 0x2B6EC0, 0x478 + + .global MOD63_UNK_021DBE18 +MOD63_UNK_021DBE18: + .incbin "baserom.nds", 0x2B7338, 0x108 + + .section .data + ; 0x021DBF40 + .incbin "baserom.nds", 0x2B7460, 0x60 + + .section .bss + ; 0x021DBFA0 + .space 0x20 + diff --git a/arm9/modules/64/asm/module_64.s b/arm9/modules/64/asm/module_64.s new file mode 100644 index 00000000..be87b0fd --- /dev/null +++ b/arm9/modules/64/asm/module_64.s @@ -0,0 +1,3582 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD64_021D74E0 +MOD64_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + sub sp, #0x10 + mov r2, #1 + add r4, r0, #0 + mov r0, #3 + mov r1, #0x2f + lsl r2, r2, #0x12 + bl FUN_0201681C + ldr r1, _021D7630 ; =0x000006B4 + add r0, r4, #0 + mov r2, #0x2f + bl FUN_02006268 + add r5, r0, #0 + bne _021D7504 + bl ErrorHandling +_021D7504: + ldr r2, _021D7630 ; =0x000006B4 + add r0, r5, #0 + mov r1, #0 + bl Call_FillMemWithValue + mov r0, #0x25 + lsl r0, r0, #4 + add r0, r5, r0 + mov r1, #0x2f + mov r2, #0x20 + bl FUN_02016B20 + add r0, r4, #0 + bl FUN_0200628C + add r4, r0, #0 + ldr r0, [r4, #4] + bl FUN_02025084 + ldr r1, _021D7634 ; =0x000006A8 + str r0, [r5, r1] + ldr r0, [r4, #4] + bl FUN_02024FF4 + ldr r1, _021D7638 ; =0x000006AC + str r0, [r5, r1] + mov r0, #8 + mov r1, #0x2f + bl FUN_0201C24C + ldr r0, _021D763C ; =MOD64_021D77A4 + add r1, r5, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201CC08 + mov r0, #4 + bl FUN_0201CC24 + cmp r0, #1 + beq _021D755E + bl ErrorHandling +_021D755E: + add r0, r5, #0 + mov r1, #0x2f + bl MOD64_021D7810 + mov r0, #0x2f + bl FUN_02016B94 + add r1, r5, #0 + add r1, #0x94 + str r0, [r1] + mov r1, #1 + mov r0, #0 + str r0, [sp, #4] + add r0, sp, #0 + str r1, [sp] + str r1, [sp, #8] + str r1, [sp, #0xc] + bl FUN_02016BBC + add r0, r5, #0 + add r0, #0x94 + ldr r0, [r0] + mov r1, #0x2f + bl MOD64_021D7970 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r5, #0 + mov r1, #0x2f + bl MOD64_021D7A54 + add r0, r5, #0 + mov r1, #0x2f + bl MOD64_021D87CC + add r0, r5, #0 + mov r1, #0x2f + bl MOD64_021D8EF4 + add r0, r5, #0 + mov r1, #0x2f + bl MOD64_021D7B04 + add r0, r5, #0 + mov r1, #0x2f + bl MOD64_021D7C34 + add r0, r5, #0 + mov r1, #0x2f + bl MOD64_021D7C74 + add r0, r5, #0 + mov r1, #0x2f + bl MOD64_021D7F60 + add r0, r5, #0 + mov r1, #0x2f + bl MOD64_021D824C + add r0, r5, #0 + bl MOD64_021D82CC + add r0, r5, #0 + bl MOD64_021D8354 + mov r1, #6 + lsl r1, r1, #8 + add r0, r5, #0 + add r1, r5, r1 + mov r2, #0x2f + bl MOD64_021D892C + mov r1, #6 + lsl r1, r1, #8 + add r0, r5, #0 + add r1, r5, r1 + mov r2, #0x2f + bl MOD64_021D89FC + mov r0, #6 + lsl r0, r0, #8 + add r0, r5, r0 + bl MOD64_021D8AE0 + mov r0, #0x65 + lsl r0, r0, #4 + add r0, r5, r0 + add r1, r5, #0 + mov r2, #0x2f + bl MOD64_021D8B70 + mov r1, #0 + mov r0, #0x3c + add r2, r1, #0 + bl FUN_0200433C + mov r0, #1 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7630: .word 0x000006B4 +_021D7634: .word 0x000006A8 +_021D7638: .word 0x000006AC +_021D763C: .word MOD64_021D77A4 + thumb_func_end MOD64_021D74E0 + + thumb_func_start MOD64_021D7640 +MOD64_021D7640: ; 0x021D7640 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r1, #0 + bl FUN_02006278 + ldr r2, _021D76F0 ; =0x000008C3 + add r1, sp, #0 + strh r2, [r1] + ldr r1, [r4] + add r6, r0, #0 + cmp r1, #4 + bhi _021D76E2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7664: ; jump table + .short _021D766E - _021D7664 - 2 ; case 0 + .short _021D7684 - _021D7664 - 2 ; case 1 + .short _021D76A0 - _021D7664 - 2 ; case 2 + .short _021D76BC - _021D7664 - 2 ; case 3 + .short _021D76C8 - _021D7664 - 2 ; case 4 +_021D766E: + bl MOD64_021D77C8 + add r0, sp, #0 + mov r1, #0 + mov r2, #2 + bl GX_LoadBGPltt + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D76E2 +_021D7684: + bl MOD64_021D7808 + cmp r0, #0 + beq _021D76E2 + mov r0, #0 + bl FUN_0200E388 + mov r0, #1 + bl FUN_0200E388 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D76E2 +_021D76A0: + mov r1, #0x2f + bl MOD64_021D80A4 + add r5, r0, #0 + add r0, r6, #0 + mov r1, #0x2f + bl MOD64_021D8100 + cmp r5, #1 + bne _021D76E2 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D76E2 +_021D76BC: + bl MOD64_021D77E8 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D76E2 +_021D76C8: + bl MOD64_021D7808 + cmp r0, #0 + beq _021D76E2 + mov r0, #0 + bl FUN_0200E388 + mov r0, #1 + bl FUN_0200E388 + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D76E2: + add r0, r6, #0 + bl MOD64_021D81D8 + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_021D76F0: .word 0x000008C3 + thumb_func_end MOD64_021D7640 + + thumb_func_start MOD64_021D76F4 +MOD64_021D76F4: ; 0x021D76F4 + push {r4, r5, r6, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, r5, #0 + bl FUN_0200628C + add r6, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + ldr r0, [r4, #0x54] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl MOD64_021D9044 + str r0, [r6] + bl FUN_0201CD04 + cmp r0, #1 + beq _021D7726 + bl ErrorHandling +_021D7726: + mov r0, #0x65 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD64_021D8C0C + mov r0, #6 + lsl r0, r0, #8 + add r0, r4, r0 + bl MOD64_021D8A78 + mov r1, #6 + lsl r1, r1, #8 + add r0, r4, #0 + add r1, r4, r1 + bl MOD64_021D89B8 + mov r0, #6 + lsl r0, r0, #8 + add r0, r4, r0 + bl MOD64_021D8B44 + add r0, r4, #0 + bl MOD64_021D82BC + add r0, r4, #0 + bl MOD64_021D8034 + add r0, r4, #0 + bl MOD64_021D7CE0 + add r0, r4, #0 + bl MOD64_021D7C08 + add r0, r4, #0 + bl MOD64_021D7C64 + add r0, r4, #0 + bl MOD64_021D7AEC + add r0, r4, #0 + bl MOD64_021D8FAC + add r0, r4, #0 + add r0, #0x94 + ldr r0, [r0] + bl MOD64_021D7A38 + add r4, #0x94 + ldr r0, [r4] + bl FUN_02016A18 + bl MOD64_021D7828 + bl FUN_0201C29C + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0x2f + bl FUN_020168D0 + mov r0, #1 + pop {r4, r5, r6, pc} + thumb_func_end MOD64_021D76F4 + + thumb_func_start MOD64_021D77A4 +MOD64_021D77A4: ; 0x021D77A4 + push {r4, lr} + add r4, r0, #0 + bl FUN_02009F80 + add r0, r4, #0 + add r0, #0x94 + ldr r0, [r0] + bl FUN_0201AB60 + mov r0, #2 + lsl r0, r0, #8 + ldr r0, [r4, r0] + bl FUN_020081C4 + bl FUN_0201C30C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD64_021D77A4 + + thumb_func_start MOD64_021D77C8 +MOD64_021D77C8: ; 0x021D77C8 + push {lr} + sub sp, #0xc + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x2f + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add sp, #0xc + pop {pc} + .align 2, 0 + thumb_func_end MOD64_021D77C8 + + thumb_func_start MOD64_021D77E8 +MOD64_021D77E8: ; 0x021D77E8 + push {lr} + sub sp, #0xc + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x2f + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add sp, #0xc + pop {pc} + thumb_func_end MOD64_021D77E8 + + thumb_func_start MOD64_021D7808 +MOD64_021D7808: ; 0x021D7808 + ldr r3, _021D780C ; =FUN_0200E308 + bx r3 + .align 2, 0 +_021D780C: .word FUN_0200E308 + thumb_func_end MOD64_021D7808 + + thumb_func_start MOD64_021D7810 +MOD64_021D7810: ; 0x021D7810 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + bl MOD64_021D783C + add r0, r4, #0 + bl MOD64_021D785C + add r0, r5, #0 + bl MOD64_021D78B4 + pop {r3, r4, r5, pc} + thumb_func_end MOD64_021D7810 + + thumb_func_start MOD64_021D7828 +MOD64_021D7828: ; 0x021D7828 + push {r3, lr} + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + bl MOD64_021D7964 + pop {r3, pc} + thumb_func_end MOD64_021D7828 + + thumb_func_start MOD64_021D783C +MOD64_021D783C: ; 0x021D783C + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7858 ; =0x021D90E8 + add r3, sp, #0 + mov r2, #5 +_021D7846: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7846 + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7858: .word 0x021D90E8 + thumb_func_end MOD64_021D783C + + thumb_func_start MOD64_021D785C +MOD64_021D785C: ; 0x021D785C + push {r4, r5, lr} + sub sp, #0x24 + add r4, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x80 + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + add r2, r0, #0 + str r4, [sp, #0x10] + bl FUN_02009EAC + ldr r5, _021D78AC ; =0x021D9074 + add r3, sp, #0x14 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + ldr r1, _021D78B0 ; =0x00200010 + mov r2, #0x10 + str r4, [sp, #0x20] + bl FUN_0201D060 + mov r0, #0x20 + add r1, r4, #0 + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x24 + pop {r4, r5, pc} + nop +_021D78AC: .word 0x021D9074 +_021D78B0: .word 0x00200010 + thumb_func_end MOD64_021D785C + + thumb_func_start MOD64_021D78B4 +MOD64_021D78B4: ; 0x021D78B4 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl FUN_020BB7F4 + bl G3X_InitMtxStack + ldr r0, _021D7940 ; =0x04000060 + ldr r1, _021D7944 ; =0xFFFFCFFD + ldrh r2, [r0] + and r2, r1 + strh r2, [r0] + ldrh r3, [r0] + add r2, r1, #2 + and r3, r2 + mov r2, #0x10 + orr r2, r3 + strh r2, [r0] + ldrh r3, [r0] + ldr r2, _021D7948 ; =0x0000CFFB + and r2, r3 + strh r2, [r0] + add r2, r1, #2 + ldrh r3, [r0] + add r1, r1, #2 + and r3, r2 + mov r2, #8 + orr r2, r3 + strh r2, [r0] + ldrh r2, [r0] + add r3, r4, #0 + and r2, r1 + mov r1, #0x20 + orr r1, r2 + strh r1, [r0] + ldr r1, _021D794C ; =0x00001084 + ldr r0, _021D7950 ; =0x0000063C + mov r2, #0 +_021D7900: + add r2, r2, #1 + strh r1, [r3, r0] + add r3, r3, #2 + cmp r2, #8 + blt _021D7900 + ldr r0, _021D7950 ; =0x0000063C + add r0, r4, r0 + bl G3X_SetEdgeColorTable + mov r1, #0 + ldr r0, _021D7954 ; =0x000043FF + ldr r2, _021D7958 ; =0x00007FFF + mov r3, #0x3f + str r1, [sp] + bl G3X_SetClearColor + ldr r1, _021D795C ; =0x04000540 + mov r0, #2 + str r0, [r1] + ldr r0, _021D7960 ; =0xBFFF0000 + str r0, [r1, #0x40] + mov r0, #1 + add r1, r0, #0 + bl FUN_020AEB70 + mov r0, #1 + lsl r0, r0, #0xe + mov r1, #1 + bl FUN_020AEDF4 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021D7940: .word 0x04000060 +_021D7944: .word 0xFFFFCFFD +_021D7948: .word 0x0000CFFB +_021D794C: .word 0x00001084 +_021D7950: .word 0x0000063C +_021D7954: .word 0x000043FF +_021D7958: .word 0x00007FFF +_021D795C: .word 0x04000540 +_021D7960: .word 0xBFFF0000 + thumb_func_end MOD64_021D78B4 + + thumb_func_start MOD64_021D7964 +MOD64_021D7964: ; 0x021D7964 + push {r3, lr} + bl FUN_020AEAF4 + bl FUN_020AEC60 + pop {r3, pc} + thumb_func_end MOD64_021D7964 + + thumb_func_start MOD64_021D7970 +MOD64_021D7970: ; 0x021D7970 + push {r4, r5, r6, r7, lr} + sub sp, #0x54 + add r4, r1, #0 + ldr r1, _021D7A28 ; =0x04000008 + add r5, r0, #0 + ldrh r2, [r1] + mov r0, #3 + mov r7, #1 + bic r2, r0 + add r0, r2, #0 + orr r0, r7 + add r3, sp, #0x38 + ldr r6, _021D7A2C ; =0x021D90B0 + strh r0, [r1] + ldmia r6!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r6] + add r1, r7, #0 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r7, #0 + mov r1, #0x20 + mov r2, #0 + add r3, r4, #0 + bl FUN_02017F18 + add r0, r5, #0 + add r1, r7, #0 + bl FUN_02018744 + ldr r6, _021D7A30 ; =0x021D9094 + add r3, sp, #0x1c + ldmia r6!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r6] + mov r1, #2 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + add r3, r4, #0 + bl FUN_02017F18 + add r0, r5, #0 + mov r1, #2 + bl FUN_02018744 + ldr r6, _021D7A34 ; =0x021D90CC + add r3, sp, #0 + ldmia r6!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r6] + mov r1, #3 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #3 + mov r1, #0x20 + mov r2, #0 + add r3, r4, #0 + bl FUN_02017F18 + add r0, r5, #0 + mov r1, #3 + bl FUN_02018744 + add sp, #0x54 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D7A28: .word 0x04000008 +_021D7A2C: .word 0x021D90B0 +_021D7A30: .word 0x021D9094 +_021D7A34: .word 0x021D90CC + thumb_func_end MOD64_021D7970 + + thumb_func_start MOD64_021D7A38 +MOD64_021D7A38: ; 0x021D7A38 + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD64_021D7A38 + + thumb_func_start MOD64_021D7A54 +MOD64_021D7A54: ; 0x021D7A54 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018FF4 + add r1, r5, #0 + add r1, #0x98 + str r0, [r1] + add r0, r5, #0 + add r0, #0x98 + ldr r0, [r0] + bl FUN_0201901C + mov r0, #0x13 + str r0, [sp] + mov r0, #0x17 + str r0, [sp, #4] + mov r3, #4 + add r1, r5, #0 + str r3, [sp, #8] + mov r0, #2 + str r0, [sp, #0xc] + mov r0, #0x1f + str r0, [sp, #0x10] + add r0, r5, #0 + add r0, #0x94 + add r1, #0x98 + ldr r0, [r0] + ldr r1, [r1] + mov r2, #1 + bl FUN_02019064 + add r0, r5, #0 + add r0, #0x98 + ldr r0, [r0] + mov r1, #0xf + bl FUN_02019620 + ldr r0, _021D7AE8 ; =0x000006A8 + mov r1, #1 + ldr r0, [r5, r0] + lsl r2, r1, #9 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + add r0, r5, #0 + str r4, [sp, #4] + add r0, #0x94 + ldr r0, [r0] + mov r3, #0 + bl FUN_0200CD68 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x52 + mov r1, #0x10 + mov r2, #0 + mov r3, #0x40 + str r4, [sp, #4] + bl FUN_02006930 + add r5, #0x98 + mov r1, #0 + mov r2, #2 + ldr r0, [r5] + lsl r2, r2, #8 + add r3, r1, #0 + bl FUN_0200D0BC + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 +_021D7AE8: .word 0x000006A8 + thumb_func_end MOD64_021D7A54 + + thumb_func_start MOD64_021D7AEC +MOD64_021D7AEC: ; 0x021D7AEC + push {r4, lr} + add r4, r0, #0 + add r0, #0x98 + ldr r0, [r0] + bl FUN_02019178 + add r4, #0x98 + ldr r0, [r4] + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD64_021D7AEC + + thumb_func_start MOD64_021D7B04 +MOD64_021D7B04: ; 0x021D7B04 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r0, r1, #0 + bl FUN_02006D98 + mov r1, #2 + lsl r1, r1, #8 + str r0, [r5, r1] + ldr r3, _021D7BA4 ; =0x021064B8 + lsl r0, r1, #6 + mov r1, #0 + ldr r3, [r3] + add r2, r1, #0 + blx r3 + ldr r3, _021D7BA8 ; =0x021064C0 + add r4, r0, #0 + ldr r3, [r3] + mov r0, #0x80 + mov r1, #0 + mov r2, #1 + blx r3 + ldr r2, _021D7BAC ; =0x7FFF0000 + add r6, r0, #0 + mov r0, #2 + lsl r0, r0, #8 + and r2, r4 + lsl r1, r4, #0x10 + lsr r2, r2, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0xd + lsl r2, r2, #4 + bl FUN_020081A8 + ldr r2, _021D7BB0 ; =0xFFFF0000 + mov r0, #2 + lsl r0, r0, #8 + and r2, r6 + lsl r1, r6, #0x10 + lsr r2, r2, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0xd + lsl r2, r2, #3 + bl FUN_020081B4 + mov r2, #0x81 + lsl r2, r2, #2 + add r0, r5, r2 + add r1, r5, #0 + sub r2, #0x81 + bl MOD64_021D7BB4 + mov r2, #0x82 + lsl r2, r2, #2 + add r0, r5, r2 + add r1, r5, #0 + sub r2, #0x82 + bl MOD64_021D7BB4 + mov r2, #0x83 + lsl r2, r2, #2 + add r0, r5, r2 + add r1, r5, #0 + sub r2, #0x83 + bl MOD64_021D7BB4 + mov r6, #0x81 + mov r4, #0 + mov r7, #6 + lsl r6, r6, #2 +_021D7B8E: + ldr r0, [r5, r6] + add r1, r7, #0 + mov r2, #1 + bl FUN_02007558 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #3 + blt _021D7B8E + pop {r3, r4, r5, r6, r7, pc} + nop +_021D7BA4: .word 0x021064B8 +_021D7BA8: .word 0x021064C0 +_021D7BAC: .word 0x7FFF0000 +_021D7BB0: .word 0xFFFF0000 + thumb_func_end MOD64_021D7B04 + + thumb_func_start MOD64_021D7BB4 +MOD64_021D7BB4: ; 0x021D7BB4 + push {r4, r5, r6, lr} + sub sp, #0x20 + add r6, r2, #0 + add r5, r0, #0 + lsl r0, r6, #0x10 + add r4, r1, #0 + lsr r0, r0, #0x10 + mov r1, #0 + bl FUN_02068A20 + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + lsl r1, r6, #0x10 + lsl r2, r2, #0x18 + str r0, [sp, #8] + add r0, sp, #0x10 + lsr r1, r1, #0x10 + lsr r2, r2, #0x18 + mov r3, #2 + bl FUN_02068C00 + ldr r0, _021D7C04 ; =0x000003FF + add r1, sp, #0x10 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + mov r0, #2 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r2, #0x80 + mov r3, #0x60 + bl FUN_020073A0 + str r0, [r5] + add sp, #0x20 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D7C04: .word 0x000003FF + thumb_func_end MOD64_021D7BB4 + + thumb_func_start MOD64_021D7C08 +MOD64_021D7C08: ; 0x021D7C08 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r6, #0x81 + mov r4, #0 + add r5, r7, #0 + lsl r6, r6, #2 +_021D7C14: + ldr r0, [r5, r6] + cmp r0, #0 + beq _021D7C1E + bl FUN_02007534 +_021D7C1E: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #3 + blt _021D7C14 + mov r0, #2 + lsl r0, r0, #8 + ldr r0, [r7, r0] + bl FUN_020072E8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD64_021D7C08 + + thumb_func_start MOD64_021D7C34 +MOD64_021D7C34: ; 0x021D7C34 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r5, _021D7C5C ; =0x021D9084 + add r3, sp, #0 + add r4, r0, #0 + add r6, r1, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + str r6, [sp, #0xc] + bl FUN_02013CD4 + ldr r1, _021D7C60 ; =0x0000064C + str r0, [r4, r1] + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021D7C5C: .word 0x021D9084 +_021D7C60: .word 0x0000064C + thumb_func_end MOD64_021D7C34 + + thumb_func_start MOD64_021D7C64 +MOD64_021D7C64: ; 0x021D7C64 + ldr r1, _021D7C6C ; =0x0000064C + ldr r3, _021D7C70 ; =FUN_02013D18 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_021D7C6C: .word 0x0000064C +_021D7C70: .word FUN_02013D18 + thumb_func_end MOD64_021D7C64 + + thumb_func_start MOD64_021D7C74 +MOD64_021D7C74: ; 0x021D7C74 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r1, r5, #0 + mov r0, #2 + add r1, #0xbc + add r2, r4, #0 + bl FUN_02008C9C + mov r1, #0x79 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #2 + mov r1, #0 + add r2, r4, #0 + bl FUN_02008DEC + mov r1, #0x7a + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #2 + mov r1, #1 + add r2, r4, #0 + bl FUN_02008DEC + mov r1, #0x7b + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #2 + add r1, r0, #0 + add r2, r4, #0 + bl FUN_02008DEC + mov r1, #0x1f + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #2 + mov r1, #3 + add r2, r4, #0 + bl FUN_02008DEC + mov r1, #0x7d + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD64_021D7C74 + + thumb_func_start MOD64_021D7CE0 +MOD64_021D7CE0: ; 0x021D7CE0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x79 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0201FD58 + mov r0, #0x7a + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02008E2C + mov r0, #0x7b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02008E2C + mov r0, #0x1f + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02008E2C + mov r0, #0x7d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02008E2C + pop {r4, pc} + thumb_func_end MOD64_021D7CE0 + + thumb_func_start MOD64_021D7D18 +MOD64_021D7D18: ; 0x021D7D18 + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + add r7, r2, #0 + add r5, r0, #0 + add r4, r3, #0 + mov r1, #0 + mov r2, #0x98 + bl Call_FillMemWithValue + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD64_021D7D7C + ldr r3, [sp, #0x18] + add r0, r5, #0 + add r1, r7, #0 + add r2, r4, #0 + bl MOD64_021D7DC0 + mov r1, #1 + lsl r1, r1, #0xc + add r0, r5, #0 + add r2, r1, #0 + add r3, r1, #0 + bl MOD64_021D7EE0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD64_021D7D18 + + thumb_func_start MOD64_021D7D50 +MOD64_021D7D50: ; 0x021D7D50 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r6, r2, #0 + add r5, r0, #0 + mov r1, #0 + mov r2, #0x98 + bl Call_FillMemWithValue + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD64_021D7D7C + mov r1, #1 + lsl r1, r1, #0xc + add r0, r5, #0 + add r2, r1, #0 + add r3, r1, #0 + bl MOD64_021D7EE0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD64_021D7D50 + + thumb_func_start MOD64_021D7D7C +MOD64_021D7D7C: ; 0x021D7D7C + push {r3, r4, lr} + sub sp, #4 + add r3, r2, #0 + mov r2, #0 + add r4, r0, #0 + str r2, [sp] + mov r0, #0x52 + bl FUN_02006C98 + str r0, [r4, #0x54] + bl FUN_020BC13C + str r0, [r4, #0x58] + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r0, r0, r1 + str r0, [r4, #0x5c] + ldr r0, [r4, #0x54] + bl FUN_020BC0FC + str r0, [r4, #0x60] + bl FUN_0201B3C4 + ldr r0, [r4, #0x54] + ldr r1, [r4, #0x60] + bl FUN_0201B3A8 + ldr r1, [r4, #0x5c] + add r0, r4, #0 + bl FUN_020B80B4 + add sp, #4 + pop {r3, r4, pc} + thumb_func_end MOD64_021D7D7C + + thumb_func_start MOD64_021D7DC0 +MOD64_021D7DC0: ; 0x021D7DC0 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r6, r2, #0 + mov r2, #0 + add r4, r0, #0 + add r5, r3, #0 + str r2, [sp] + mov r0, #0x52 + add r3, r6, #0 + bl FUN_02006C98 + str r0, [r4, #0x64] + mov r1, #0 + bl FUN_020BC4C8 + str r0, [r4, #0x68] + ldr r1, [r4, #0x68] + ldr r2, [r4, #0x5c] + add r0, r5, #0 + bl FUN_020BB8D0 + str r0, [r4, #0x6c] + ldr r1, [r4, #0x68] + ldr r2, [r4, #0x5c] + ldr r3, [r4, #0x60] + bl FUN_020B8110 + ldr r1, [r4, #0x6c] + add r0, r4, #0 + bl FUN_020B7EFC + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD64_021D7DC0 + + thumb_func_start MOD64_021D7E04 +MOD64_021D7E04: ; 0x021D7E04 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x54] + add r4, r1, #0 + cmp r0, #0 + beq _021D7E14 + bl FUN_02016A18 +_021D7E14: + ldr r0, [r5, #0x64] + cmp r0, #0 + beq _021D7E28 + ldr r1, [r5, #0x6c] + add r0, r4, #0 + bl thunk_FUN_020ae84c + ldr r0, [r5, #0x64] + bl FUN_02016A18 +_021D7E28: + add r0, r5, #0 + mov r1, #0 + mov r2, #0x98 + bl Call_FillMemWithValue + pop {r3, r4, r5, pc} + thumb_func_end MOD64_021D7E04 + + thumb_func_start MOD64_021D7E34 +MOD64_021D7E34: ; 0x021D7E34 + push {r4, lr} + sub sp, #0x48 + add r4, r0, #0 + add r0, sp, #0x24 + bl MTX_Identity33_ + add r0, r4, #0 + add r0, #0x90 + ldrh r0, [r0] + ldr r3, _021D7ECC ; =0x020FFA38 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotX33_ + add r1, sp, #0x24 + add r0, sp, #0 + add r2, r1, #0 + bl MTX_Concat33 + add r0, r4, #0 + add r0, #0x92 + ldrh r0, [r0] + ldr r3, _021D7ECC ; =0x020FFA38 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotY33_ + add r1, sp, #0x24 + add r0, sp, #0 + add r2, r1, #0 + bl MTX_Concat33 + add r0, r4, #0 + add r0, #0x94 + ldrh r0, [r0] + ldr r3, _021D7ECC ; =0x020FFA38 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotZ33_ + add r1, sp, #0x24 + add r0, sp, #0 + add r2, r1, #0 + bl MTX_Concat33 + ldr r0, [r4, #0x74] + cmp r0, #0 + beq _021D7EC8 + add r1, r4, #0 + add r0, r4, #0 + add r4, #0x84 + add r1, #0x78 + add r2, sp, #0x24 + add r3, r4, #0 + bl FUN_0201B26C +_021D7EC8: + add sp, #0x48 + pop {r4, pc} + .align 2, 0 +_021D7ECC: .word 0x020FFA38 + thumb_func_end MOD64_021D7E34 + + thumb_func_start MOD64_021D7ED0 +MOD64_021D7ED0: ; 0x021D7ED0 + str r1, [r0, #0x74] + bx lr + thumb_func_end MOD64_021D7ED0 + + thumb_func_start MOD64_021D7ED4 +MOD64_021D7ED4: ; 0x021D7ED4 + str r1, [r0, #0x78] + str r2, [r0, #0x7c] + add r0, #0x80 + str r3, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD64_021D7ED4 + + thumb_func_start MOD64_021D7EE0 +MOD64_021D7EE0: ; 0x021D7EE0 + push {r3, r4} + add r4, r0, #0 + add r4, #0x84 + str r1, [r4] + add r1, r0, #0 + add r1, #0x88 + str r2, [r1] + add r0, #0x8c + str r3, [r0] + pop {r3, r4} + bx lr + .align 2, 0 + thumb_func_end MOD64_021D7EE0 + + thumb_func_start MOD64_021D7EF8 +MOD64_021D7EF8: ; 0x021D7EF8 + push {r3, r4} + add r4, r0, #0 + add r4, #0x90 + strh r1, [r4] + add r1, r0, #0 + add r1, #0x92 + strh r2, [r1] + add r0, #0x94 + strh r3, [r0] + pop {r3, r4} + bx lr + .align 2, 0 + thumb_func_end MOD64_021D7EF8 + + thumb_func_start MOD64_021D7F10 +MOD64_021D7F10: ; 0x021D7F10 + ldr r1, [r0, #0x6c] + ldr r2, [r0, #0x70] + ldr r1, [r1, #8] + ldrh r1, [r1, #4] + lsl r3, r1, #0xc + mov r1, #1 + lsl r1, r1, #0xc + add r1, r2, r1 + cmp r1, r3 + bge _021D7F2A + str r1, [r0, #0x70] + mov r2, #0 + b _021D7F2E +_021D7F2A: + str r3, [r0, #0x70] + mov r2, #1 +_021D7F2E: + ldr r1, [r0, #0x70] + ldr r0, [r0, #0x6c] + str r1, [r0] + add r0, r2, #0 + bx lr + thumb_func_end MOD64_021D7F10 + + thumb_func_start MOD64_021D7F38 +MOD64_021D7F38: ; 0x021D7F38 + push {r4, lr} + add r4, r0, #0 + mov r0, #1 + ldr r1, [r4, #0x70] + lsl r0, r0, #0xc + add r0, r1, r0 + ldr r1, [r4, #0x6c] + ldr r1, [r1, #8] + ldrh r1, [r1, #4] + lsl r1, r1, #0xc + bl _s32_div_f + str r1, [r4, #0x70] + ldr r0, [r4, #0x6c] + str r1, [r0] + pop {r4, pc} + thumb_func_end MOD64_021D7F38 + + thumb_func_start MOD64_021D7F58 +MOD64_021D7F58: ; 0x021D7F58 + str r1, [r0, #0x70] + ldr r0, [r0, #0x6c] + str r1, [r0] + bx lr + thumb_func_end MOD64_021D7F58 + + thumb_func_start MOD64_021D7F60 +MOD64_021D7F60: ; 0x021D7F60 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r0, #0 + mov r0, #0x25 + add r7, r1, #0 + lsl r0, r0, #4 + add r1, r6, r0 + add r0, #0x10 + str r1, [sp] + add r0, r6, r0 + mov r1, #1 + mov r2, #0 + add r3, r7, #0 + bl MOD64_021D7D18 + mov r0, #0x26 + lsl r0, r0, #4 + add r0, r6, r0 + mov r1, #1 + bl MOD64_021D7ED0 + mov r0, #0xbe + lsl r0, r0, #2 + add r0, r6, r0 + mov r1, #8 + add r2, r7, #0 + bl MOD64_021D7D50 + mov r0, #0xbe + lsl r0, r0, #2 + add r0, r6, r0 + mov r1, #0 + bl MOD64_021D7ED0 + mov r0, #0x26 + lsl r0, r0, #4 + add r1, r6, r0 + lsr r0, r0, #1 + add r5, r1, r0 + mov r0, #0x25 + lsl r0, r0, #4 + add r0, r6, r0 + mov r4, #2 + str r0, [sp, #4] +_021D7FB8: + sub r0, r4, #2 + lsl r2, r0, #1 + ldr r0, [sp, #4] + add r1, r2, #3 + str r0, [sp] + add r0, r5, #0 + add r2, r2, #2 + add r3, r7, #0 + bl MOD64_021D7D18 + add r0, r5, #0 + mov r1, #0 + bl MOD64_021D7ED0 + add r4, r4, #1 + add r5, #0x98 + cmp r4, #4 + ble _021D7FB8 + ldr r0, _021D8028 ; =0x00000558 + mov r1, #9 + add r0, r6, r0 + add r2, r7, #0 + bl MOD64_021D7D50 + ldr r0, _021D8028 ; =0x00000558 + mov r1, #1 + add r0, r6, r0 + bl MOD64_021D7ED0 + ldr r0, _021D8028 ; =0x00000558 + mov r3, #0xa + ldr r2, _021D802C ; =0xFFFE4000 + add r0, r6, r0 + mov r1, #0 + lsl r3, r3, #0xe + bl MOD64_021D7ED4 + ldr r0, _021D8028 ; =0x00000558 + mov r1, #0xe + lsl r1, r1, #0xa + mov r2, #1 + add r0, r6, r0 + lsl r2, r2, #0xc + add r3, r1, #0 + bl MOD64_021D7EE0 + ldr r0, _021D8028 ; =0x00000558 + mov r1, #0 + ldr r2, _021D8030 ; =0x00007FFF + add r0, r6, r0 + add r3, r1, #0 + bl MOD64_021D7EF8 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8028: .word 0x00000558 +_021D802C: .word 0xFFFE4000 +_021D8030: .word 0x00007FFF + thumb_func_end MOD64_021D7F60 + + thumb_func_start MOD64_021D8034 +MOD64_021D8034: ; 0x021D8034 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r0, #0x26 + lsl r0, r0, #4 + add r7, r0, #0 + mov r4, #0 + add r5, r6, r0 + sub r7, #0x10 +_021D8044: + add r0, r5, #0 + add r1, r6, r7 + bl MOD64_021D7E04 + add r4, r4, #1 + add r5, #0x98 + cmp r4, #6 + blt _021D8044 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD64_021D8034 + + thumb_func_start MOD64_021D8058 +MOD64_021D8058: ; 0x021D8058 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0 + ldr r2, _021D809C ; =0xFFFFF000 + add r1, r0, #0 + add r3, r0, #0 + bl FUN_020B8418 + ldr r1, _021D80A0 ; =0x00007FFF + mov r0, #0 + bl FUN_020B8404 + ldr r0, _021D80A0 ; =0x00007FFF + mov r2, #0 + add r1, r0, #0 + bl FUN_020B83E0 + ldr r0, _021D80A0 ; =0x00007FFF + mov r2, #0 + add r1, r0, #0 + bl FUN_020B83BC + mov r0, #0x26 + lsl r0, r0, #4 + mov r4, #0 + add r5, r5, r0 +_021D808C: + add r0, r5, #0 + bl MOD64_021D7E34 + add r4, r4, #1 + add r5, #0x98 + cmp r4, #6 + blt _021D808C + pop {r3, r4, r5, pc} + .align 2, 0 +_021D809C: .word 0xFFFFF000 +_021D80A0: .word 0x00007FFF + thumb_func_end MOD64_021D8058 + + thumb_func_start MOD64_021D80A4 +MOD64_021D80A4: ; 0x021D80A4 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #8] + cmp r1, #1 + bne _021D80B2 + mov r0, #0 + pop {r4, pc} +_021D80B2: + bl MOD64_021D83D0 + cmp r0, #5 + bhi _021D80F4 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D80C6: ; jump table + .short _021D80F4 - _021D80C6 - 2 ; case 0 + .short _021D80F4 - _021D80C6 - 2 ; case 1 + .short _021D80F4 - _021D80C6 - 2 ; case 2 + .short _021D80D2 - _021D80C6 - 2 ; case 3 + .short _021D80F4 - _021D80C6 - 2 ; case 4 + .short _021D80F0 - _021D80C6 - 2 ; case 5 +_021D80D2: + add r0, r4, #0 + bl MOD64_021D8384 + ldr r0, _021D80F8 ; =0x021C48B8 + mov r1, #1 + ldr r0, [r0, #0x48] + tst r0, r1 + beq _021D80F4 + add r0, r4, #0 + bl MOD64_021D83C4 + ldr r0, _021D80FC ; =0x000005DC + bl FUN_020054C8 + b _021D80F4 +_021D80F0: + mov r0, #1 + pop {r4, pc} +_021D80F4: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D80F8: .word 0x021C48B8 +_021D80FC: .word 0x000005DC + thumb_func_end MOD64_021D80A4 + + thumb_func_start MOD64_021D8100 +MOD64_021D8100: ; 0x021D8100 + push {r3, r4, r5, lr} + add r4, r0, #0 + add r5, r1, #0 + bl MOD64_021D83D0 + cmp r0, #5 + bhi _021D81CA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D811A: ; jump table + .short _021D8126 - _021D811A - 2 ; case 0 + .short _021D8146 - _021D811A - 2 ; case 1 + .short _021D815E - _021D811A - 2 ; case 2 + .short _021D81B0 - _021D811A - 2 ; case 3 + .short _021D81BA - _021D811A - 2 ; case 4 + .short _021D81C4 - _021D811A - 2 ; case 5 +_021D8126: + mov r1, #1 + str r1, [r4, #8] + mov r0, #0x24 + str r0, [r4, #0xc] + add r0, r4, #0 + bl MOD64_021D83C4 + mov r0, #6 + str r0, [sp] + ldr r0, _021D81CC ; =0x04000050 + mov r1, #8 + mov r2, #0x15 + mov r3, #0xa + bl G2x_SetBlendAlpha_ + pop {r3, r4, r5, pc} +_021D8146: + ldr r0, [r4, #0xc] + sub r0, r0, #1 + str r0, [r4, #0xc] + bpl _021D81CA + add r0, r4, #0 + mov r1, #1 + bl MOD64_021D83C4 + ldr r0, _021D81D0 ; =0x000006CA + bl FUN_020054C8 + pop {r3, r4, r5, pc} +_021D815E: + mov r0, #0x26 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD64_021D7F10 + cmp r0, #0 + beq _021D81CA + mov r0, #0x26 + lsl r0, r0, #4 + add r0, r4, r0 + mov r1, #0 + bl MOD64_021D7ED0 + mov r0, #0xbe + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #1 + bl MOD64_021D7ED0 + mov r0, #0x39 + lsl r0, r0, #4 + add r0, r4, r0 + mov r1, #1 + bl MOD64_021D7ED0 + ldr r0, _021D81D4 ; =0x00000428 + mov r1, #1 + add r0, r4, r0 + bl MOD64_021D7ED0 + mov r0, #0x13 + lsl r0, r0, #6 + add r0, r4, r0 + mov r1, #1 + bl MOD64_021D7ED0 + add r0, r4, #0 + mov r1, #1 + bl MOD64_021D83C4 + pop {r3, r4, r5, pc} +_021D81B0: + add r0, r4, #0 + add r1, r5, #0 + bl MOD64_021D83D4 + pop {r3, r4, r5, pc} +_021D81BA: + add r0, r4, #0 + add r1, r5, #0 + bl MOD64_021D8570 + pop {r3, r4, r5, pc} +_021D81C4: + ldr r0, _021D81CC ; =0x04000050 + mov r1, #0 + strh r1, [r0] +_021D81CA: + pop {r3, r4, r5, pc} + .align 2, 0 +_021D81CC: .word 0x04000050 +_021D81D0: .word 0x000006CA +_021D81D4: .word 0x00000428 + thumb_func_end MOD64_021D8100 + + thumb_func_start MOD64_021D81D8 +MOD64_021D81D8: ; 0x021D81D8 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + bl FUN_020222AC + mov r1, #0 + mov r0, #0x11 + add r2, r1, #0 + bl FUN_020BB1C0 + bl FUN_020BB394 + bl FUN_020B02C8 + mov r0, #2 + lsl r0, r0, #8 + ldr r0, [r4, r0] + bl FUN_02006ED4 + ldr r0, _021D8248 ; =0x0000064C + ldr r0, [r4, r0] + bl FUN_02013D5C + mov r2, #1 + mov r0, #0x12 + add r1, sp, #4 + str r2, [sp, #4] + bl FUN_020BB1C0 + mov r1, #0 + mov r0, #0x11 + add r2, r1, #0 + bl FUN_020BB1C0 + bl FUN_0201EBA4 + add r0, r4, #0 + bl MOD64_021D8058 + mov r2, #1 + mov r0, #0x12 + add r1, sp, #0 + str r2, [sp] + bl FUN_020BB1C0 + mov r0, #0 + add r1, r0, #0 + bl FUN_020222B4 + mov r0, #0x79 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0201FDEC + add sp, #8 + pop {r4, pc} + .align 2, 0 +_021D8248: .word 0x0000064C + thumb_func_end MOD64_021D81D8 + + thumb_func_start MOD64_021D824C +MOD64_021D824C: ; 0x021D824C + push {r4, lr} + add r4, r0, #0 + add r0, r1, #0 + bl FUN_0201EB64 + mov r1, #0x5f + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r0, [r4, r1] + add r1, r1, #4 + add r1, r4, r1 + bl MOD64_021D8268 + pop {r4, pc} + thumb_func_end MOD64_021D824C + + thumb_func_start MOD64_021D8268 +MOD64_021D8268: ; 0x021D8268 + push {r4, lr} + sub sp, #0x20 + mov r3, #0 + str r3, [r1] + str r3, [r1, #4] + add r4, r0, #0 + ldr r2, _021D82B4 ; =0x0000EAAB + str r3, [r1, #8] + add r0, sp, #0xc + strh r2, [r0] + strh r3, [r0, #2] + strh r3, [r0, #4] + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + add r0, r1, #0 + mov r1, #0x4b + ldr r3, _021D82B8 ; =0x00000FA4 + lsl r1, r1, #0xe + add r2, sp, #0xc + str r4, [sp, #8] + bl FUN_0201ECA8 + mov r1, #0 + mov r0, #1 + lsl r0, r0, #0xc + str r0, [sp, #0x18] + str r1, [sp, #0x14] + str r1, [sp, #0x1c] + add r0, sp, #0x14 + add r1, r4, #0 + bl FUN_0201EC58 + add r0, r4, #0 + bl FUN_0201EB8C + add sp, #0x20 + pop {r4, pc} + .align 2, 0 +_021D82B4: .word 0x0000EAAB +_021D82B8: .word 0x00000FA4 + thumb_func_end MOD64_021D8268 + + thumb_func_start MOD64_021D82BC +MOD64_021D82BC: ; 0x021D82BC + mov r1, #0x5f + lsl r1, r1, #4 + ldr r3, _021D82C8 ; =FUN_0201EB70 + ldr r0, [r0, r1] + bx r3 + nop +_021D82C8: .word FUN_0201EB70 + thumb_func_end MOD64_021D82BC + + thumb_func_start MOD64_021D82CC +MOD64_021D82CC: ; 0x021D82CC + push {r4, r5, r6, r7} + mov r5, #0 + add r4, r5, #0 + add r6, r0, #0 + sub r3, r5, #4 + add r1, r5, #0 + sub r4, #0x2c + mov r2, #0x20 +_021D82DC: + cmp r5, #0 + beq _021D82EA + cmp r5, #1 + beq _021D82F2 + cmp r5, #2 + beq _021D82FC + b _021D8306 +_021D82EA: + str r4, [r6, #0x58] + str r3, [r6, #0x5c] + str r2, [r6, #0x60] + b _021D8306 +_021D82F2: + str r1, [r6, #0x58] + str r3, [r6, #0x5c] + mov r7, #0x3e + str r7, [r6, #0x60] + b _021D8306 +_021D82FC: + mov r7, #0x26 + str r7, [r6, #0x58] + str r3, [r6, #0x5c] + mov r7, #0x1a + str r7, [r6, #0x60] +_021D8306: + add r5, r5, #1 + add r6, #0xc + cmp r5, #3 + blt _021D82DC + mov r5, #0 + mov r2, #0x82 + mov r1, #0x52 + mov r4, #0x4e + mov r3, #0x37 +_021D8318: + cmp r5, #0 + beq _021D8326 + cmp r5, #1 + beq _021D8330 + cmp r5, #2 + beq _021D833A + b _021D8346 +_021D8326: + add r6, r0, #0 + str r4, [r0, #0x7c] + add r6, #0x80 + str r3, [r6] + b _021D8346 +_021D8330: + add r6, r0, #0 + str r2, [r0, #0x7c] + add r6, #0x80 + str r1, [r6] + b _021D8346 +_021D833A: + mov r6, #0xac + add r7, r0, #0 + str r6, [r0, #0x7c] + add r7, #0x80 + mov r6, #0x32 + str r6, [r7] +_021D8346: + add r5, r5, #1 + add r0, #8 + cmp r5, #3 + blt _021D8318 + pop {r4, r5, r6, r7} + bx lr + .align 2, 0 + thumb_func_end MOD64_021D82CC + + thumb_func_start MOD64_021D8354 +MOD64_021D8354: ; 0x021D8354 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r0, #0x26 + lsl r0, r0, #4 + mov r4, #0 + add r6, r5, r0 + mov r7, #0x98 +_021D8362: + add r0, r4, #2 + add r1, r0, #0 + mul r1, r7 + add r0, r6, r1 + ldr r1, [r5, #0x58] + ldr r2, [r5, #0x5c] + ldr r3, [r5, #0x60] + lsl r1, r1, #0xc + lsl r2, r2, #0xc + lsl r3, r3, #0xc + bl MOD64_021D7ED4 + add r4, r4, #1 + add r5, #0xc + cmp r4, #3 + blt _021D8362 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD64_021D8354 + + thumb_func_start MOD64_021D8384 +MOD64_021D8384: ; 0x021D8384 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D83BC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x20 + tst r0, r1 + beq _021D83A0 + ldr r0, [r4, #0x54] + sub r0, r0, #1 + bmi _021D83A0 + str r0, [r4, #0x54] + ldr r0, _021D83C0 ; =0x000005DC + bl FUN_020054C8 +_021D83A0: + ldr r0, _021D83BC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x10 + tst r0, r1 + beq _021D83BA + ldr r0, [r4, #0x54] + add r0, r0, #1 + cmp r0, #3 + bge _021D83BA + str r0, [r4, #0x54] + ldr r0, _021D83C0 ; =0x000005DC + bl FUN_020054C8 +_021D83BA: + pop {r4, pc} + .align 2, 0 +_021D83BC: .word 0x021C48B8 +_021D83C0: .word 0x000005DC + thumb_func_end MOD64_021D8384 + + thumb_func_start MOD64_021D83C4 +MOD64_021D83C4: ; 0x021D83C4 + ldr r2, [r0] + add r1, r2, r1 + str r1, [r0] + mov r1, #0 + str r1, [r0, #4] + bx lr + thumb_func_end MOD64_021D83C4 + + thumb_func_start MOD64_021D83D0 +MOD64_021D83D0: ; 0x021D83D0 + ldr r0, [r0] + bx lr + thumb_func_end MOD64_021D83D0 + + thumb_func_start MOD64_021D83D4 +MOD64_021D83D4: ; 0x021D83D4 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r2, [r4, #4] + cmp r2, #8 + bls _021D83E2 + b _021D8510 +_021D83E2: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021D83EE: ; jump table + .short _021D8400 - _021D83EE - 2 ; case 0 + .short _021D8422 - _021D83EE - 2 ; case 1 + .short _021D843A - _021D83EE - 2 ; case 2 + .short _021D8450 - _021D83EE - 2 ; case 3 + .short _021D8480 - _021D83EE - 2 ; case 4 + .short _021D849E - _021D83EE - 2 ; case 5 + .short _021D84CE - _021D83EE - 2 ; case 6 + .short _021D84EC - _021D83EE - 2 ; case 7 + .short _021D8506 - _021D83EE - 2 ; case 8 +_021D8400: + mov r2, #0x5f + lsl r2, r2, #4 + ldr r1, [r4, r2] + add r2, r2, #4 + add r0, #0x10 + add r2, r4, r2 + bl MOD64_021D8864 + mov r0, #2 + mov r1, #1 + bl FUN_0201E6E4 + ldr r0, [r4, #4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, pc} +_021D8422: + add r0, #0x10 + bl MOD64_021D8928 + cmp r0, #0 + beq _021D8510 + mov r0, #6 + str r0, [r4, #0xc] + ldr r0, [r4, #4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, pc} +_021D843A: + ldr r1, [r4, #0xc] + sub r1, r1, #1 + str r1, [r4, #0xc] + bpl _021D8510 + bl MOD64_021D8554 + ldr r0, [r4, #4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, pc} +_021D8450: + ldr r0, _021D8514 ; =0x0001020F + mov r2, #5 + str r0, [sp] + ldr r0, _021D8518 ; =0x000006AC + lsl r2, r2, #6 + ldr r0, [r4, r0] + mov r3, #0 + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0xac + str r0, [sp, #8] + add r0, r4, #0 + add r0, #0x98 + ldr r0, [r0] + bl MOD64_021D8744 + mov r1, #0x6b + lsl r1, r1, #4 + strb r0, [r4, r1] + ldr r0, [r4, #4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, pc} +_021D8480: + mov r0, #0x6b + lsl r0, r0, #4 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021D8510 + add r0, r4, #0 + bl MOD64_021D87B8 + ldr r0, [r4, #4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, pc} +_021D849E: + ldr r0, _021D8514 ; =0x0001020F + mov r2, #5 + str r0, [sp] + ldr r0, _021D8518 ; =0x000006AC + lsl r2, r2, #6 + ldr r0, [r4, r0] + mov r3, #7 + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0xac + str r0, [sp, #8] + add r0, r4, #0 + add r0, #0x98 + ldr r0, [r0] + bl MOD64_021D8744 + mov r1, #0x6b + lsl r1, r1, #4 + strb r0, [r4, r1] + ldr r0, [r4, #4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, pc} +_021D84CE: + mov r0, #0x6b + lsl r0, r0, #4 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021D8510 + add r0, r4, #0 + bl MOD64_021D87B8 + ldr r0, [r4, #4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, pc} +_021D84EC: + mov r0, #6 + lsl r0, r0, #8 + add r0, r4, r0 + mov r1, #1 + bl MOD64_021D8B58 + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r4, #4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, pc} +_021D8506: + bl MOD64_021D851C + add r0, r4, #0 + bl MOD64_021D8554 +_021D8510: + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_021D8514: .word 0x0001020F +_021D8518: .word 0x000006AC + thumb_func_end MOD64_021D83D4 + + thumb_func_start MOD64_021D851C +MOD64_021D851C: ; 0x021D851C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r0, #0x26 + lsl r0, r0, #4 + mov r5, #0 + add r4, r6, r0 + mov r7, #0x98 +_021D852A: + ldr r0, [r6, #0x54] + cmp r0, r5 + bne _021D853E + add r0, r5, #2 + add r1, r0, #0 + mul r1, r7 + add r0, r4, r1 + bl MOD64_021D7F38 + b _021D854C +_021D853E: + add r1, r5, #2 + mov r0, #0x98 + mul r0, r1 + add r0, r4, r0 + mov r1, #0 + bl MOD64_021D7F58 +_021D854C: + add r5, r5, #1 + cmp r5, #3 + blt _021D852A + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD64_021D851C + + thumb_func_start MOD64_021D8554 +MOD64_021D8554: ; 0x021D8554 + add r2, r0, #0 + ldr r0, [r2, #0x54] + ldr r3, _021D856C ; =MOD64_021D8B64 + lsl r1, r0, #3 + mov r0, #6 + lsl r0, r0, #8 + add r0, r2, r0 + add r2, r2, r1 + ldr r1, [r2, #0x7c] + add r2, #0x80 + ldr r2, [r2] + bx r3 + .align 2, 0 +_021D856C: .word MOD64_021D8B64 + thumb_func_end MOD64_021D8554 + + thumb_func_start MOD64_021D8570 +MOD64_021D8570: ; 0x021D8570 + push {r3, r4, r5, lr} + sub sp, #8 + add r4, r0, #0 + ldr r2, [r4, #4] + add r5, r1, #0 + cmp r2, #4 + bls _021D8580 + b _021D86D0 +_021D8580: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021D858C: ; jump table + .short _021D8596 - _021D858C - 2 ; case 0 + .short _021D85C2 - _021D858C - 2 ; case 1 + .short _021D8604 - _021D858C - 2 ; case 2 + .short _021D8644 - _021D858C - 2 ; case 3 + .short _021D867C - _021D858C - 2 ; case 4 +_021D8596: + mov r0, #6 + lsl r0, r0, #8 + add r0, r4, r0 + mov r1, #0 + bl MOD64_021D8B58 + add r0, r4, #0 + bl MOD64_021D8554 + add r0, r4, #0 + bl MOD64_021D902C + add r0, r4, #0 + bl MOD64_021D8D40 + ldr r0, [r4, #4] + add sp, #8 + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #1 + str r0, [r4, #8] + pop {r3, r4, r5, pc} +_021D85C2: + mov r0, #0x65 + lsl r0, r0, #4 + add r0, r4, r0 + mov r1, #1 + bl MOD64_021D8C30 + ldr r0, [r4, #0x54] + mov r2, #0 + lsl r0, r0, #2 + add r1, r4, r0 + mov r0, #0x81 + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #6 + bl FUN_02007558 + add r0, r4, #0 + bl MOD64_021D8DCC + cmp r0, #0 + beq _021D86D0 + ldr r0, [r4, #0x54] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl MOD64_021D9044 + bl FUN_02005578 + ldr r0, [r4, #4] + add sp, #8 + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, r5, pc} +_021D8604: + ldr r0, _021D86D4 ; =0x0001020F + mov r2, #0xff + str r0, [sp] + str r2, [sp, #4] + add r0, r4, #0 + add r0, #0x98 + ldr r3, [r4, #0x54] + ldr r0, [r0] + add r2, #0x41 + add r3, r3, #1 + bl MOD64_021D86DC + add r0, r4, #0 + add r1, r4, #0 + str r5, [sp] + add r0, #0x94 + ldr r0, [r0] + ldr r2, _021D86D8 ; =0x0000029E + add r1, #0xb0 + mov r3, #1 + bl FUN_02002198 + add r1, r4, #0 + add r1, #0xb8 + str r0, [r1] + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r4, #4] + add sp, #8 + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, r5, pc} +_021D8644: + add r0, #0xb8 + ldr r0, [r0] + bl FUN_020021AC + cmp r0, #0 + beq _021D8660 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021D866C + add r1, r1, #1 + add sp, #8 + cmp r0, r1 + pop {r3, r4, r5, pc} +_021D8660: + add r0, r4, #0 + mov r1, #1 + bl MOD64_021D83C4 + add sp, #8 + pop {r3, r4, r5, pc} +_021D866C: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + add r0, r4, #0 + bl MOD64_021D8DB0 + add sp, #8 + pop {r3, r4, r5, pc} +_021D867C: + bl MOD64_021D8DCC + cmp r0, #0 + beq _021D86D0 + mov r1, #0 + add r0, r4, #0 + mvn r1, r1 + bl MOD64_021D83C4 + mov r0, #7 + str r0, [r4, #4] + mov r0, #0x65 + lsl r0, r0, #4 + add r0, r4, r0 + mov r1, #0 + bl MOD64_021D8C30 + ldr r0, [r4, #0x54] + mov r2, #1 + lsl r0, r0, #2 + add r1, r4, r0 + mov r0, #0x81 + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #6 + bl FUN_02007558 + ldr r0, _021D86D4 ; =0x0001020F + mov r2, #0xff + str r0, [sp] + add r0, r4, #0 + str r2, [sp, #4] + add r0, #0x98 + ldr r0, [r0] + add r1, r5, #0 + add r2, #0x41 + mov r3, #7 + bl MOD64_021D86DC + mov r1, #0x6b + lsl r1, r1, #4 + strb r0, [r4, r1] +_021D86D0: + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D86D4: .word 0x0001020F +_021D86D8: .word 0x0000029E + thumb_func_end MOD64_021D8570 + + thumb_func_start MOD64_021D86DC +MOD64_021D86DC: ; 0x021D86DC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r4, r1, #0 + add r5, r0, #0 + add r6, r3, #0 + mov r0, #0 + mov r1, #0x1a + add r3, r4, #0 + bl FUN_0200A86C + add r4, r0, #0 + bne _021D86F8 + bl ErrorHandling +_021D86F8: + add r0, r4, #0 + add r1, r6, #0 + bl FUN_0200A914 + add r6, r0, #0 + add r0, r5, #0 + mov r1, #0xf + bl FUN_02019620 + mov r3, #0 + ldr r0, [sp, #0x2c] + str r3, [sp] + str r0, [sp, #4] + ldr r0, [sp, #0x28] + mov r1, #1 + str r0, [sp, #8] + add r0, r5, #0 + add r2, r6, #0 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + mov r1, #0 + mov r2, #2 + add r7, r0, #0 + add r0, r5, #0 + lsl r2, r2, #8 + add r3, r1, #0 + bl FUN_0200D0BC + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_0200A8B8 + add r0, r7, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD64_021D86DC + + thumb_func_start MOD64_021D8744 +MOD64_021D8744: ; 0x021D8744 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + ldr r4, [sp, #0x30] + add r5, r0, #0 + ldr r0, [r4] + add r6, r1, #0 + add r7, r2, #0 + str r3, [sp, #0x10] + cmp r0, #0 + beq _021D875C + bl ErrorHandling +_021D875C: + mov r0, #0 + mov r1, #0x1a + add r2, r7, #0 + add r3, r6, #0 + bl FUN_0200A86C + add r6, r0, #0 + bne _021D8770 + bl ErrorHandling +_021D8770: + ldr r1, [sp, #0x10] + add r0, r6, #0 + bl FUN_0200A914 + str r0, [r4] + add r0, r5, #0 + mov r1, #0xf + bl FUN_02019620 + mov r3, #0 + ldr r0, [sp, #0x2c] + str r3, [sp] + str r0, [sp, #4] + ldr r0, [sp, #0x28] + mov r1, #1 + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r2, [r4] + add r0, r5, #0 + bl FUN_0201BDE0 + mov r1, #0 + mov r2, #2 + add r4, r0, #0 + add r0, r5, #0 + lsl r2, r2, #8 + add r3, r1, #0 + bl FUN_0200D0BC + add r0, r6, #0 + bl FUN_0200A8B8 + add r0, r4, #0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD64_021D8744 + + thumb_func_start MOD64_021D87B8 +MOD64_021D87B8: ; 0x021D87B8 + push {r4, lr} + add r4, r0, #0 + add r0, #0xac + ldr r0, [r0] + bl FUN_02021A20 + mov r0, #0 + add r4, #0xac + str r0, [r4] + pop {r4, pc} + thumb_func_end MOD64_021D87B8 + + thumb_func_start MOD64_021D87CC +MOD64_021D87CC: ; 0x021D87CC + push {r4, lr} + sub sp, #8 + add r2, r0, #0 + add r4, r1, #0 + mov r1, #1 + add r2, #0xb0 + strb r1, [r2] + add r2, r0, #0 + mov r3, #0x17 + add r2, #0xb1 + strb r3, [r2] + add r2, r0, #0 + mov r3, #0xc + add r2, #0xb2 + strb r3, [r2] + add r2, r0, #0 + mov r3, #5 + add r2, #0xb3 + strb r3, [r2] + add r2, r0, #0 + mov r3, #4 + add r2, #0xb4 + strb r3, [r2] + add r2, r0, #0 + mov r3, #3 + add r2, #0xb5 + strb r3, [r2] + add r2, r0, #0 + mov r3, #0xa7 + add r2, #0xb6 + strh r3, [r2] + mov r2, #0 + str r2, [sp] + str r4, [sp, #4] + add r0, #0x94 + ldr r0, [r0] + ldr r2, _021D882C ; =0x0000029E + add r3, r1, #0 + bl FUN_0200CB00 + mov r0, #0 + mov r1, #0x60 + add r2, r4, #0 + bl FUN_02002ED0 + add sp, #8 + pop {r4, pc} + nop +_021D882C: .word 0x0000029E + thumb_func_end MOD64_021D87CC + + thumb_func_start MOD64_021D8830 +MOD64_021D8830: ; 0x021D8830 + str r1, [r0] + str r1, [r0, #4] + sub r1, r2, r1 + str r1, [r0, #8] + str r3, [r0, #0xc] + bx lr + thumb_func_end MOD64_021D8830 + + thumb_func_start MOD64_021D883C +MOD64_021D883C: ; 0x021D883C + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r3, [r5, #0xc] + cmp r1, r3 + blt _021D884A + mov r4, #1 + b _021D884C +_021D884A: + mov r4, #0 +_021D884C: + ldr r2, [r5, #8] + add r0, r2, #0 + mul r0, r1 + add r1, r3, #0 + bl _s32_div_f + ldr r1, [r5, #4] + add r0, r0, r1 + str r0, [r5] + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD64_021D883C + + thumb_func_start MOD64_021D8864 +MOD64_021D8864: ; 0x021D8864 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5, #0x40] + add r4, r1, #0 + add r6, r2, #0 + cmp r0, #0 + beq _021D8876 + bl ErrorHandling +_021D8876: + ldr r1, _021D88B8 ; =0xFFFFEAAB + ldr r2, _021D88BC ; =0xFFFFDC72 + add r0, r5, #0 + mov r3, #6 + bl MOD64_021D8830 + add r0, r5, #0 + mov r1, #0x4b + mov r2, #0x32 + add r0, #0x10 + lsl r1, r1, #0xe + lsl r2, r2, #0xe + mov r3, #6 + bl MOD64_021D8830 + add r0, r5, #0 + mov r2, #9 + add r0, #0x20 + mov r1, #0 + lsl r2, r2, #0xe + mov r3, #6 + bl MOD64_021D8830 + mov r2, #0 + str r2, [r5, #0x3c] + str r4, [r5, #0x30] + str r6, [r5, #0x34] + ldr r0, _021D88C0 ; =MOD64_021D88C4 + add r1, r5, #0 + str r2, [r5, #0x38] + bl FUN_0200CA44 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D88B8: .word 0xFFFFEAAB +_021D88BC: .word 0xFFFFDC72 +_021D88C0: .word MOD64_021D88C4 + thumb_func_end MOD64_021D8864 + + thumb_func_start MOD64_021D88C4 +MOD64_021D88C4: ; 0x021D88C4 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r1, #0 + ldr r1, [r5, #0x38] + add r6, r0, #0 + add r0, r5, #0 + bl MOD64_021D883C + add r4, r0, #0 + add r0, r5, #0 + ldr r1, [r5, #0x38] + add r0, #0x10 + bl MOD64_021D883C + add r0, r5, #0 + ldr r1, [r5, #0x38] + add r0, #0x20 + bl MOD64_021D883C + ldr r1, [r5] + add r0, sp, #0 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + strh r1, [r0, #4] + ldr r1, [r5, #0x30] + add r0, sp, #0 + bl FUN_0201EF90 + ldr r0, [r5, #0x10] + ldr r1, [r5, #0x30] + bl FUN_0201EFE0 + ldr r1, [r5, #0x20] + ldr r0, [r5, #0x34] + str r1, [r0, #8] + ldr r0, [r5, #0x38] + add r0, r0, #1 + str r0, [r5, #0x38] + cmp r4, #1 + bne _021D8924 + add r0, r6, #0 + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r5, #0x40] + mov r0, #1 + str r0, [r5, #0x3c] +_021D8924: + add sp, #8 + pop {r4, r5, r6, pc} + thumb_func_end MOD64_021D88C4 + + thumb_func_start MOD64_021D8928 +MOD64_021D8928: ; 0x021D8928 + ldr r0, [r0, #0x3c] + bx lr + thumb_func_end MOD64_021D8928 + + thumb_func_start MOD64_021D892C +MOD64_021D892C: ; 0x021D892C + push {r4, r5, r6, lr} + sub sp, #0x10 + add r6, r2, #0 + mov r2, #0xa + add r5, r0, #0 + str r2, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x7a + add r4, r1, #0 + str r6, [sp, #8] + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x52 + mov r3, #0 + bl FUN_02008F34 + str r0, [r4, #4] + bl FUN_02009B04 + ldr r0, [r4, #4] + bl FUN_02009474 + mov r2, #0xb + str r2, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x7b + str r6, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x52 + mov r3, #0 + bl FUN_02008FEC + str r0, [r4, #8] + bl FUN_02009D68 + ldr r0, [r4, #8] + bl FUN_02009474 + mov r2, #0xc + str r2, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x1f + str r6, [sp, #8] + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0x52 + mov r3, #0 + bl FUN_020090AC + str r0, [r4, #0xc] + mov r2, #0xd + str r2, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x7d + str r6, [sp, #8] + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x52 + mov r3, #0 + bl FUN_020090AC + str r0, [r4, #0x10] + add sp, #0x10 + pop {r4, r5, r6, pc} + thumb_func_end MOD64_021D892C + + thumb_func_start MOD64_021D89B8 +MOD64_021D89B8: ; 0x021D89B8 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #4] + bl FUN_02009C0C + ldr r0, [r4, #8] + bl FUN_02009E04 + mov r0, #0x7a + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [r4, #4] + bl FUN_02009490 + mov r0, #0x7b + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [r4, #8] + bl FUN_02009490 + mov r0, #0x1f + lsl r0, r0, #4 + ldr r0, [r5, r0] + ldr r1, [r4, #0xc] + bl FUN_02009490 + mov r0, #0x7d + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [r4, #0x10] + bl FUN_02009490 + pop {r3, r4, r5, pc} + thumb_func_end MOD64_021D89B8 + + thumb_func_start MOD64_021D89FC +MOD64_021D89FC: ; 0x021D89FC + push {r4, r5, r6, lr} + sub sp, #0x70 + add r5, r0, #0 + mov r0, #0xd + str r0, [sp] + sub r0, #0xe + str r0, [sp, #4] + add r6, r2, #0 + str r0, [sp, #8] + mov r0, #0 + mov r2, #0x7a + add r4, r1, #0 + str r0, [sp, #0xc] + mov r1, #1 + lsl r2, r2, #2 + str r1, [sp, #0x10] + ldr r1, [r5, r2] + mov r3, #0xc + str r1, [sp, #0x14] + add r1, r2, #4 + ldr r1, [r5, r1] + str r1, [sp, #0x18] + add r1, r2, #0 + add r1, #8 + ldr r1, [r5, r1] + add r2, #0xc + str r1, [sp, #0x1c] + ldr r1, [r5, r2] + mov r2, #0xb + str r1, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, sp, #0x4c + mov r1, #0xa + bl FUN_02008AA4 + mov r0, #0x79 + lsl r0, r0, #2 + ldr r0, [r5, r0] + str r0, [sp, #0x2c] + add r0, sp, #0x4c + str r0, [sp, #0x30] + mov r0, #0x20 + str r0, [sp, #0x40] + mov r0, #1 + str r0, [sp, #0x44] + mov r0, #0 + str r0, [sp, #0x34] + str r0, [sp, #0x38] + add r0, sp, #0x2c + str r6, [sp, #0x48] + bl FUN_0201FF84 + mov r1, #0 + str r0, [r4] + bl FUN_020200A0 + mov r0, #0 + str r0, [r4, #0x1c] + str r0, [r4, #0x20] + add sp, #0x70 + pop {r4, r5, r6, pc} + thumb_func_end MOD64_021D89FC + + thumb_func_start MOD64_021D8A78 +MOD64_021D8A78: ; 0x021D8A78 + ldr r3, _021D8A80 ; =FUN_0201FFC8 + ldr r0, [r0] + bx r3 + nop +_021D8A80: .word FUN_0201FFC8 + thumb_func_end MOD64_021D8A78 + + thumb_func_start MOD64_021D8A84 +MOD64_021D8A84: ; 0x021D8A84 + mov r3, #0 + str r3, [r0] + str r1, [r0, #4] + str r2, [r0, #8] + str r3, [r0, #0xc] + bx lr + thumb_func_end MOD64_021D8A84 + + thumb_func_start MOD64_021D8A90 +MOD64_021D8A90: ; 0x021D8A90 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0xc] + ldr r0, _021D8AD8 ; =0x0000FFFF + mul r0, r1 + ldr r1, [r4, #8] + bl _s32_div_f + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #4 + lsl r1, r0, #2 + ldr r0, _021D8ADC ; =0x020FFA38 + ldr r2, [r4, #4] + ldrsh r0, [r0, r1] + asr r3, r2, #0x1f + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [r4] + ldr r0, [r4, #0xc] + ldr r1, [r4, #8] + add r0, r0, #1 + bl _s32_div_f + str r1, [r4, #0xc] + pop {r4, pc} + nop +_021D8AD8: .word 0x0000FFFF +_021D8ADC: .word 0x020FFA38 + thumb_func_end MOD64_021D8A90 + + thumb_func_start MOD64_021D8AE0 +MOD64_021D8AE0: ; 0x021D8AE0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _021D8AEE + bl ErrorHandling +_021D8AEE: + add r0, r4, #0 + mov r1, #2 + add r0, #0x2c + lsl r1, r1, #0xe + mov r2, #0x20 + bl MOD64_021D8A84 + ldr r0, _021D8B0C ; =MOD64_021D8B10 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + str r0, [r4, #0x28] + pop {r4, pc} + nop +_021D8B0C: .word MOD64_021D8B10 + thumb_func_end MOD64_021D8AE0 + + thumb_func_start MOD64_021D8B10 +MOD64_021D8B10: ; 0x021D8B10 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + add r0, r4, #0 + add r0, #0x2c + bl MOD64_021D8A90 + add r5, r4, #0 + add r5, #0x1c + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + ldr r1, [sp, #4] + ldr r0, [r4, #0x2c] + add r0, r1, r0 + str r0, [sp, #4] + ldr r0, [r4] + add r1, r2, #0 + bl FUN_02020044 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD64_021D8B10 + + thumb_func_start MOD64_021D8B44 +MOD64_021D8B44: ; 0x021D8B44 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _021D8B56 + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x28] +_021D8B56: + pop {r4, pc} + thumb_func_end MOD64_021D8B44 + + thumb_func_start MOD64_021D8B58 +MOD64_021D8B58: ; 0x021D8B58 + ldr r3, _021D8B60 ; =FUN_020200A0 + ldr r0, [r0] + bx r3 + nop +_021D8B60: .word FUN_020200A0 + thumb_func_end MOD64_021D8B58 + + thumb_func_start MOD64_021D8B64 +MOD64_021D8B64: ; 0x021D8B64 + lsl r1, r1, #0xc + str r1, [r0, #0x1c] + lsl r1, r2, #0xc + str r1, [r0, #0x20] + bx lr + .align 2, 0 + thumb_func_end MOD64_021D8B64 + + thumb_func_start MOD64_021D8B70 +MOD64_021D8B70: ; 0x021D8B70 + push {r4, r5, r6, lr} + sub sp, #0x38 + add r5, r0, #0 + add r3, r5, #0 + add r6, r2, #0 + add r4, r1, #0 + mov r0, #0x52 + mov r1, #0xe + mov r2, #0 + add r3, #0x14 + str r6, [sp] + bl FUN_02006BB0 + add r2, r5, #0 + str r0, [r5, #0xc] + mov r0, #0x52 + mov r1, #0xf + add r2, #0x18 + add r3, r6, #0 + bl FUN_02006C08 + str r0, [r5, #0x10] + ldr r0, _021D8C04 ; =0x0000064C + ldr r0, [r4, r0] + str r0, [sp, #4] + ldr r0, [r5, #0x14] + str r0, [sp, #8] + add r0, sp, #4 + bl FUN_02013D98 + str r0, [r5] + ldr r0, _021D8C04 ; =0x0000064C + ldr r0, [r4, r0] + str r0, [sp, #0x2c] + ldr r0, [r5, #0x18] + str r0, [sp, #0x30] + mov r0, #1 + str r0, [sp, #0x34] + add r0, sp, #0x2c + bl FUN_02013E14 + str r0, [r5, #4] + ldr r0, _021D8C04 ; =0x0000064C + mov r2, #0 + ldr r0, [r4, r0] + mov r1, #0x1f + str r0, [sp, #0xc] + ldr r0, [r5] + str r0, [sp, #0x10] + ldr r0, [r5, #4] + str r0, [sp, #0x14] + add r0, sp, #4 + strh r2, [r0, #0x14] + strh r2, [r0, #0x16] + strh r2, [r0, #0x18] + str r1, [sp, #0x20] + ldr r1, _021D8C08 ; =0x000003FE + str r1, [sp, #0x24] + strh r2, [r0, #0x24] + add r0, sp, #0xc + bl FUN_02013E84 + str r0, [r5, #8] + mov r1, #0 + bl FUN_02013EB0 + mov r1, #0x40 + ldr r0, [r5, #8] + add r2, r1, #0 + bl FUN_02013ED8 + add sp, #0x38 + pop {r4, r5, r6, pc} + nop +_021D8C04: .word 0x0000064C +_021D8C08: .word 0x000003FE + thumb_func_end MOD64_021D8B70 + + thumb_func_start MOD64_021D8C0C +MOD64_021D8C0C: ; 0x021D8C0C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + bl FUN_02013EA8 + ldr r0, [r4] + bl FUN_02013DD4 + ldr r0, [r4, #4] + bl FUN_02013E44 + ldr r0, [r4, #0xc] + bl FUN_02016A18 + ldr r0, [r4, #0x10] + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD64_021D8C0C + + thumb_func_start MOD64_021D8C30 +MOD64_021D8C30: ; 0x021D8C30 + ldr r3, _021D8C38 ; =FUN_02013EB0 + ldr r0, [r0, #8] + bx r3 + nop +_021D8C38: .word FUN_02013EB0 + thumb_func_end MOD64_021D8C30 + + thumb_func_start MOD64_021D8C3C +MOD64_021D8C3C: ; 0x021D8C3C + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5, #0x54] + add r6, r1, #0 + add r7, r2, #0 + str r3, [sp] + cmp r0, #0 + beq _021D8C50 + bl ErrorHandling +_021D8C50: + ldr r4, [sp, #0x24] + add r0, r5, #0 + add r0, #0x1c + add r1, r6, #0 + add r2, r7, #0 + add r3, r4, #0 + bl MOD64_021D8830 + add r0, r5, #0 + ldr r1, [sp] + ldr r2, [sp, #0x18] + add r0, #0x2c + add r3, r4, #0 + bl MOD64_021D8830 + add r0, r5, #0 + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0x20] + add r0, #0x3c + add r3, r4, #0 + bl MOD64_021D8830 + mov r2, #0 + str r2, [r5, #0x4c] + mov r0, #1 + str r0, [r5, #0x50] + ldr r0, _021D8C90 ; =MOD64_021D8CC8 + add r1, r5, #0 + bl FUN_0200CA44 + str r0, [r5, #0x54] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8C90: .word MOD64_021D8CC8 + thumb_func_end MOD64_021D8C3C + + thumb_func_start MOD64_021D8C94 +MOD64_021D8C94: ; 0x021D8C94 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _021D8CA2 + bl ErrorHandling +_021D8CA2: + mov r0, #1 + mvn r0, r0 + str r0, [r4, #0x50] + ldr r1, [r4, #0x28] + ldr r0, [r4, #0x4c] + cmp r0, r1 + blt _021D8CB6 + ldr r0, [r4, #0x50] + add r0, r1, r0 + str r0, [r4, #0x4c] +_021D8CB6: + ldr r0, _021D8CC4 ; =MOD64_021D8CC8 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + str r0, [r4, #0x54] + pop {r4, pc} + .align 2, 0 +_021D8CC4: .word MOD64_021D8CC8 + thumb_func_end MOD64_021D8C94 + + thumb_func_start MOD64_021D8CC8 +MOD64_021D8CC8: ; 0x021D8CC8 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r0, #0 + add r0, r5, #0 + ldr r1, [r5, #0x4c] + add r0, #0x1c + bl MOD64_021D883C + add r4, r0, #0 + add r0, r5, #0 + ldr r1, [r5, #0x4c] + add r0, #0x2c + bl MOD64_021D883C + add r0, r5, #0 + ldr r1, [r5, #0x4c] + add r0, #0x3c + bl MOD64_021D883C + mov r2, #1 + ldr r1, [r5, #0x1c] + lsl r2, r2, #0x12 + sub r1, r1, r2 + ldr r3, [r5, #0x2c] + lsl r1, r1, #4 + sub r2, r3, r2 + lsl r2, r2, #4 + ldr r0, [r5, #8] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_02013EC4 + ldr r1, [r5, #0x3c] + ldr r0, [r5, #8] + add r2, r1, #0 + bl FUN_02013EE0 + cmp r4, #1 + beq _021D8D1C + ldr r0, [r5, #0x4c] + cmp r0, #0 + bge _021D8D26 +_021D8D1C: + add r0, r6, #0 + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r5, #0x54] +_021D8D26: + ldr r1, [r5, #0x4c] + ldr r0, [r5, #0x50] + add r0, r1, r0 + str r0, [r5, #0x4c] + pop {r4, r5, r6, pc} + thumb_func_end MOD64_021D8CC8 + + thumb_func_start MOD64_021D8D30 +MOD64_021D8D30: ; 0x021D8D30 + ldr r0, [r0, #0x54] + cmp r0, #0 + bne _021D8D3A + mov r0, #1 + bx lr +_021D8D3A: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD64_021D8D30 + + thumb_func_start MOD64_021D8D40 +MOD64_021D8D40: ; 0x021D8D40 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x54] + mov r2, #1 + lsl r0, r0, #3 + add r1, r5, r0 + ldr r0, [r1, #0x7c] + add r1, #0x80 + lsl r6, r0, #0xc + ldr r0, [r1] + ldr r1, _021D8DAC ; =0x00000666 + add r0, #0x30 + lsl r4, r0, #0xc + mov r0, #6 + lsl r0, r0, #0x10 + str r0, [sp] + str r1, [sp, #4] + lsl r2, r2, #0xc + str r2, [sp, #8] + mov r0, #6 + sub r1, #0x16 + str r0, [sp, #0xc] + add r0, r5, r1 + add r1, r6, #0 + lsl r2, r2, #7 + add r3, r4, #0 + bl MOD64_021D8C3C + mov r0, #6 + mov r3, #1 + mov r1, #0x21 + str r4, [sp] + lsl r0, r0, #0x10 + str r0, [sp, #4] + ldr r0, _021D8DAC ; =0x00000666 + lsl r3, r3, #0xc + str r0, [sp, #8] + str r3, [sp, #0xc] + mov r0, #6 + str r0, [sp, #0x10] + ldr r2, [r5, #0x54] + lsl r1, r1, #4 + lsl r2, r2, #2 + add r0, r5, r1 + add r2, r5, r2 + sub r1, #0xc + ldr r1, [r2, r1] + add r2, r6, #0 + lsl r3, r3, #7 + bl MOD64_021D8DDC + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D8DAC: .word 0x00000666 + thumb_func_end MOD64_021D8D40 + + thumb_func_start MOD64_021D8DB0 +MOD64_021D8DB0: ; 0x021D8DB0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x65 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD64_021D8C94 + mov r0, #0x21 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD64_021D8E34 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD64_021D8DB0 + + thumb_func_start MOD64_021D8DCC +MOD64_021D8DCC: ; 0x021D8DCC + mov r1, #0x65 + lsl r1, r1, #4 + ldr r3, _021D8DD8 ; =MOD64_021D8D30 + add r0, r0, r1 + bx r3 + nop +_021D8DD8: .word MOD64_021D8D30 + thumb_func_end MOD64_021D8DCC + + thumb_func_start MOD64_021D8DDC +MOD64_021D8DDC: ; 0x021D8DDC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5, #0x3c] + add r6, r1, #0 + add r7, r2, #0 + str r3, [sp] + cmp r0, #0 + beq _021D8DF0 + bl ErrorHandling +_021D8DF0: + ldr r4, [sp, #0x28] + ldr r2, [sp] + add r0, r5, #4 + add r1, r7, #0 + add r3, r4, #0 + bl MOD64_021D8830 + add r0, r5, #0 + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x1c] + add r0, #0x14 + add r3, r4, #0 + bl MOD64_021D8830 + add r0, r5, #0 + ldr r1, [sp, #0x20] + ldr r2, [sp, #0x24] + add r0, #0x24 + add r3, r4, #0 + bl MOD64_021D8830 + str r6, [r5] + mov r2, #0 + str r2, [r5, #0x34] + mov r0, #1 + str r0, [r5, #0x38] + ldr r0, _021D8E30 ; =MOD64_021D8E68 + add r1, r5, #0 + bl FUN_0200CA44 + str r0, [r5, #0x3c] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8E30: .word MOD64_021D8E68 + thumb_func_end MOD64_021D8DDC + + thumb_func_start MOD64_021D8E34 +MOD64_021D8E34: ; 0x021D8E34 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x3c] + cmp r0, #0 + beq _021D8E42 + bl ErrorHandling +_021D8E42: + mov r0, #1 + mvn r0, r0 + str r0, [r4, #0x38] + ldr r1, [r4, #0x10] + ldr r0, [r4, #0x34] + cmp r0, r1 + blt _021D8E56 + ldr r0, [r4, #0x38] + add r0, r1, r0 + str r0, [r4, #0x34] +_021D8E56: + ldr r0, _021D8E64 ; =MOD64_021D8E68 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + str r0, [r4, #0x3c] + pop {r4, pc} + .align 2, 0 +_021D8E64: .word MOD64_021D8E68 + thumb_func_end MOD64_021D8E34 + + thumb_func_start MOD64_021D8E68 +MOD64_021D8E68: ; 0x021D8E68 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + ldr r1, [r5, #0x34] + add r7, r0, #0 + add r0, r5, #4 + bl MOD64_021D883C + add r6, r0, #0 + add r0, r5, #0 + ldr r1, [r5, #0x34] + add r0, #0x14 + bl MOD64_021D883C + add r0, r5, #0 + ldr r1, [r5, #0x34] + add r0, #0x24 + bl MOD64_021D883C + ldr r2, [r5, #0x24] + asr r0, r2, #0x1f + lsr r1, r2, #0xc + lsl r0, r0, #0x14 + lsl r3, r2, #0x14 + mov r2, #2 + orr r0, r1 + mov r1, #0 + lsl r2, r2, #0xa + add r2, r3, r2 + adc r0, r1 + lsl r0, r0, #0x14 + lsr r2, r2, #0xc + orr r2, r0 + asr r4, r2, #0xc + ldr r2, [r5, #4] + ldr r0, [r5] + asr r2, r2, #0xc + bl FUN_02007558 + ldr r2, [r5, #0x14] + ldr r0, [r5] + mov r1, #1 + asr r2, r2, #0xc + bl FUN_02007558 + ldr r0, [r5] + mov r1, #0xc + add r2, r4, #0 + bl FUN_02007558 + ldr r0, [r5] + mov r1, #0xd + add r2, r4, #0 + bl FUN_02007558 + cmp r6, #1 + beq _021D8EDE + ldr r0, [r5, #0x34] + cmp r0, #0 + bge _021D8EE8 +_021D8EDE: + add r0, r7, #0 + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r5, #0x3c] +_021D8EE8: + ldr r1, [r5, #0x34] + ldr r0, [r5, #0x38] + add r0, r1, r0 + str r0, [r5, #0x34] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD64_021D8E68 + + thumb_func_start MOD64_021D8EF4 +MOD64_021D8EF4: ; 0x021D8EF4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + str r0, [sp, #0x14] + mov r0, #0x20 + str r0, [sp] + add r0, r1, #0 + str r1, [sp, #0x18] + str r0, [sp, #4] + mov r0, #0x52 + mov r1, #0x11 + mov r2, #0 + mov r3, #0xa0 + bl FUN_02006930 + ldr r5, [sp, #0x14] + mov r4, #0 + mov r6, #1 +_021D8F16: + ldr r0, [sp, #0x18] + mov r1, #1 + bl FUN_02018FF4 + add r1, r5, #0 + add r1, #0x9c + str r0, [r1] + add r0, r5, #0 + add r0, #0x9c + ldr r0, [r0] + bl FUN_0201901C + cmp r4, #0 + beq _021D8F3C + cmp r4, #1 + beq _021D8F44 + cmp r4, #2 + beq _021D8F4C + b _021D8F52 +_021D8F3C: + mov r0, #0xc + str r0, [sp, #0x1c] + mov r7, #4 + b _021D8F52 +_021D8F44: + mov r0, #4 + str r0, [sp, #0x1c] + mov r7, #0xe + b _021D8F52 +_021D8F4C: + mov r0, #0x14 + str r0, [sp, #0x1c] + mov r7, #0xd +_021D8F52: + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #5 + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + add r1, r5, #0 + ldr r3, [sp, #0x1c] + add r0, #0x94 + add r1, #0x9c + lsl r3, r3, #0x18 + ldr r0, [r0] + ldr r1, [r1] + mov r2, #3 + lsr r3, r3, #0x18 + bl FUN_02019064 + ldr r0, _021D8FA8 ; =0x0001020A + mov r2, #5 + str r0, [sp] + add r0, r5, #0 + add r0, #0x9c + ldr r0, [r0] + ldr r1, [sp, #0x18] + lsl r2, r2, #6 + add r3, r4, #4 + bl MOD64_021D8FD0 + add r4, r4, #1 + add r5, r5, #4 + add r6, #0x40 + cmp r4, #3 + blt _021D8F16 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8FA8: .word 0x0001020A + thumb_func_end MOD64_021D8EF4 + + thumb_func_start MOD64_021D8FAC +MOD64_021D8FAC: ; 0x021D8FAC + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021D8FB2: + add r0, r5, #0 + add r0, #0x9c + ldr r0, [r0] + bl FUN_02019178 + add r0, r5, #0 + add r0, #0x9c + ldr r0, [r0] + bl FUN_02016A18 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #3 + blt _021D8FB2 + pop {r3, r4, r5, pc} + thumb_func_end MOD64_021D8FAC + + thumb_func_start MOD64_021D8FD0 +MOD64_021D8FD0: ; 0x021D8FD0 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r1, #0 + add r5, r0, #0 + add r6, r3, #0 + mov r0, #0 + mov r1, #0x1a + add r3, r4, #0 + bl FUN_0200A86C + add r4, r0, #0 + bne _021D8FEC + bl ErrorHandling +_021D8FEC: + add r0, r4, #0 + add r1, r6, #0 + bl FUN_0200A914 + ldr r1, [sp, #0x20] + add r6, r0, #0 + lsl r1, r1, #0x18 + add r0, r5, #0 + lsr r1, r1, #0x18 + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, [sp, #0x20] + add r2, r6, #0 + str r0, [sp, #8] + add r0, r5, #0 + mov r3, #1 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_0200A8B8 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD64_021D8FD0 + + thumb_func_start MOD64_021D902C +MOD64_021D902C: ; 0x021D902C + add r1, r0, #0 + add r1, #0xa8 + ldr r1, [r1] + ldr r3, _021D9040 ; =FUN_02019570 + lsl r1, r1, #2 + add r0, r0, r1 + add r0, #0x9c + ldr r0, [r0] + bx r3 + nop +_021D9040: .word FUN_02019570 + thumb_func_end MOD64_021D902C + + thumb_func_start MOD64_021D9044 +MOD64_021D9044: ; 0x021D9044 + push {r3, lr} + cmp r0, #0 + beq _021D9054 + cmp r0, #1 + beq _021D9058 + cmp r0, #2 + beq _021D905C + b _021D9060 +_021D9054: + ldr r0, _021D9068 ; =0x00000183 + pop {r3, pc} +_021D9058: + ldr r0, _021D906C ; =0x00000186 + pop {r3, pc} +_021D905C: + ldr r0, _021D9070 ; =0x00000189 + pop {r3, pc} +_021D9060: + bl ErrorHandling + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021D9068: .word 0x00000183 +_021D906C: .word 0x00000186 +_021D9070: .word 0x00000189 + thumb_func_end MOD64_021D9044 + + .section .rodata + ; 0x021D9074 + .incbin "baserom.nds", 0x2B9194, 0x9C + ; 0x021D9110 diff --git a/arm9/modules/65/asm/module_65.s b/arm9/modules/65/asm/module_65.s new file mode 100644 index 00000000..07e7acd3 --- /dev/null +++ b/arm9/modules/65/asm/module_65.s @@ -0,0 +1,5500 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD65_021D74E0 +MOD65_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl FUN_0200628C + mov r2, #2 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x2d + lsl r2, r2, #0x10 + bl FUN_0201681C + mov r1, #2 + add r0, r4, #0 + lsl r1, r1, #8 + mov r2, #0x2d + bl FUN_02006268 + mov r2, #2 + mov r1, #0 + lsl r2, r2, #8 + add r4, r0, #0 + bl MI_CpuFill8 + mov r0, #0x2d + str r0, [r4] + str r5, [r4, #0x20] + ldrb r0, [r5, #3] + strb r0, [r4, #0x1b] + ldr r0, _021D7520 ; =0x0000FFFF + strh r0, [r4, #0x14] + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7520: .word 0x0000FFFF + thumb_func_end MOD65_021D74E0 + + thumb_func_start MOD65_021D7524 +MOD65_021D7524: ; 0x021D7524 + push {r3, lr} + bl FUN_02006278 + bl MOD65_021D757C + cmp r0, #0 + beq _021D7536 + mov r0, #1 + pop {r3, pc} +_021D7536: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD65_021D7524 + + thumb_func_start MOD65_021D753C +MOD65_021D753C: ; 0x021D753C + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + ldrb r1, [r4, #0x1a] + ldr r0, [r4, #0x20] + strb r1, [r0, #1] + ldr r1, [r4, #0x10] + ldr r0, [r4, #0x20] + strb r1, [r0, #2] + ldrb r1, [r4, #0x1b] + ldr r0, [r4, #0x20] + strb r1, [r0, #3] + add r0, r4, #0 + add r0, #0x80 + ldrh r1, [r0] + ldr r0, [r4, #0x20] + strh r1, [r0, #4] + add r0, r4, #0 + add r0, #0x82 + ldrh r1, [r0] + ldr r0, [r4, #0x20] + strh r1, [r0, #6] + add r0, r5, #0 + bl FUN_0200627C + ldr r0, [r4] + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + thumb_func_end MOD65_021D753C + + thumb_func_start MOD65_021D757C +MOD65_021D757C: ; 0x021D757C + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r1, [r4, #4] + cmp r1, #6 + bls _021D758A + b _021D76BE +_021D758A: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7596: ; jump table + .short _021D75A4 - _021D7596 - 2 ; case 0 + .short _021D75F4 - _021D7596 - 2 ; case 1 + .short _021D761C - _021D7596 - 2 ; case 2 + .short _021D762E - _021D7596 - 2 ; case 3 + .short _021D7664 - _021D7596 - 2 ; case 4 + .short _021D7676 - _021D7596 - 2 ; case 5 + .short _021D7684 - _021D7596 - 2 ; case 6 +_021D75A4: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D76D0 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D76D4 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + bl FUN_0200E388 + mov r0, #1 + bl FUN_0200E388 + bl FUN_0201CC08 + mov r0, #4 + bl FUN_0201CC24 + b _021D76C4 +_021D75F4: + bl MOD65_021D798C + cmp r0, #0 + bne _021D7602 + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D7602: + mov r0, #0 + str r0, [r4, #0xc] + mov r1, #6 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r2, [r4] + add r3, r0, #0 + str r2, [sp, #8] + add r2, r1, #0 + bl FUN_0200E1D0 + b _021D76C4 +_021D761C: + bl MOD65_021D8954 + bl FUN_0200E308 + cmp r0, #0 + bne _021D76C4 + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D762E: + bl MOD65_021D8954 + ldrh r1, [r4, #0x18] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _021D76D8 ; =0x021DA07C + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + bne _021D7648 + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D7648: + mov r0, #0 + str r0, [r4, #0xc] + mov r1, #6 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r1, [r4] + add r2, r0, #0 + str r1, [sp, #8] + add r1, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + b _021D76C4 +_021D7664: + bl MOD65_021D8954 + bl FUN_0200E308 + cmp r0, #0 + bne _021D76C4 + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D7676: + bl MOD65_021D7A00 + cmp r0, #0 + bne _021D76C4 + add sp, #0xc + mov r0, #0 + pop {r3, r4, pc} +_021D7684: + bl FUN_0201CD04 + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D76D0 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D76D4 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + b _021D76C4 +_021D76BE: + add sp, #0xc + mov r0, #1 + pop {r3, r4, pc} +_021D76C4: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_021D76D0: .word 0xFFFFE0FF +_021D76D4: .word 0x04001000 +_021D76D8: .word 0x021DA07C + thumb_func_end MOD65_021D757C + + thumb_func_start MOD65_021D76DC +MOD65_021D76DC: ; 0x021D76DC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x6e + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D76EE + bl FUN_0200BC30 +_021D76EE: + bl FUN_0201C30C + ldr r0, [r4, #0x24] + bl FUN_0201AB60 + ldr r3, _021D7708 ; =0x027E0000 + ldr r1, _021D770C ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + nop +_021D7708: .word 0x027E0000 +_021D770C: .word 0x00003FF8 + thumb_func_end MOD65_021D76DC + + thumb_func_start MOD65_021D7710 +MOD65_021D7710: ; 0x021D7710 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D7748 ; =0x021DA094 + bl FUN_02020988 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _021D7744 + ldr r0, _021D7748 ; =0x021DA094 + bl FUN_02020968 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _021D7740 + ldrh r0, [r4, #0x14] + cmp r0, #1 + bne _021D7740 + ldrb r1, [r4, #0x1b] + add r0, r4, #0 + mov r2, #2 + bl MOD65_021D8280 +_021D7740: + mov r0, #0 + mvn r0, r0 +_021D7744: + pop {r4, pc} + nop +_021D7748: .word 0x021DA094 + thumb_func_end MOD65_021D7710 + + thumb_func_start MOD65_021D774C +MOD65_021D774C: ; 0x021D774C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + mov r4, #0 + mvn r4, r4 + cmp r1, #0 + bne _021D7762 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D7762: + bl MOD65_021D7710 + add r1, r0, #0 + ldr r0, _021D77F8 ; =0x021C48B8 + ldr r0, [r0, #0x44] + cmp r0, #0 + beq _021D7784 + ldrh r0, [r5, #0x14] + cmp r0, #0 + bne _021D7796 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + bl FUN_02001204 + add r4, r0, #0 + b _021D7796 +_021D7784: + cmp r1, #0 + blt _021D7792 + lsl r1, r1, #0x18 + add r0, r5, #0 + lsr r1, r1, #0x18 + bl MOD65_021D83A0 +_021D7792: + mov r0, #0 + pop {r3, r4, r5, pc} +_021D7796: + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _021D77A2 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D77A2: + ldr r0, _021D77F8 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + beq _021D77BE + ldr r0, _021D77FC ; =0x000005DC + bl FUN_020054C8 + mov r0, #0xff + strb r0, [r5, #0x1a] + mov r0, #0 + str r0, [r5, #0x10] + mov r0, #1 + pop {r3, r4, r5, pc} +_021D77BE: + mov r0, #1 + tst r0, r1 + beq _021D77F2 + ldr r0, _021D77FC ; =0x000005DC + bl FUN_020054C8 + cmp r4, #0xff + beq _021D77DC + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _021D77DC + add r0, r0, #1 + cmp r4, r0 + bne _021D77E8 +_021D77DC: + mov r0, #0xff + strb r0, [r5, #0x1a] + mov r0, #0 + str r0, [r5, #0x10] + mov r0, #1 + pop {r3, r4, r5, pc} +_021D77E8: + strb r4, [r5, #0x1a] + mov r0, #1 + strh r0, [r5, #0x18] + mov r0, #0 + pop {r3, r4, r5, pc} +_021D77F2: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_021D77F8: .word 0x021C48B8 +_021D77FC: .word 0x000005DC + thumb_func_end MOD65_021D774C + + thumb_func_start MOD65_021D7800 +MOD65_021D7800: ; 0x021D7800 + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + bl MOD65_021D8970 + add r0, r4, #0 + bl MOD65_021D8634 + mov r0, #2 + strh r0, [r4, #0x18] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD65_021D7800 + + thumb_func_start MOD65_021D7818 +MOD65_021D7818: ; 0x021D7818 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xc8 + ldr r0, [r0] + bl FUN_02001204 + add r4, r0, #0 + ldr r0, _021D78A4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + beq _021D784A + ldr r0, _021D78A8 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + bl MOD65_021D86BC + add r0, r5, #0 + mov r1, #0 + bl MOD65_021D8970 + mov r0, #0 + strh r0, [r5, #0x18] + pop {r3, r4, r5, pc} +_021D784A: + mov r0, #1 + tst r0, r1 + beq _021D789E + ldr r0, _021D78A8 ; =0x000005DC + bl FUN_020054C8 + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + bhi _021D786E + bhs _021D788C + cmp r4, #1 + bhi _021D788C + cmp r4, #0 + beq _021D7874 + cmp r4, #1 + beq _021D787A + b _021D788C +_021D786E: + add r0, r0, #1 + cmp r4, r0 + b _021D788C +_021D7874: + mov r0, #1 + str r0, [r5, #0x10] + pop {r3, r4, r5, pc} +_021D787A: + add r0, r5, #0 + bl MOD65_021D86BC + add r0, r5, #0 + bl MOD65_021D8718 + mov r0, #3 + strh r0, [r5, #0x18] + b _021D789E +_021D788C: + add r0, r5, #0 + bl MOD65_021D86BC + add r0, r5, #0 + mov r1, #0 + bl MOD65_021D8970 + mov r0, #0 + strh r0, [r5, #0x18] +_021D789E: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_021D78A4: .word 0x021C48B8 +_021D78A8: .word 0x000005DC + thumb_func_end MOD65_021D7818 + + thumb_func_start MOD65_021D78AC +MOD65_021D78AC: ; 0x021D78AC + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #0x1f] + bl FUN_0201BD70 + cmp r0, #0 + beq _021D78BE + mov r0, #0 + pop {r4, pc} +_021D78BE: + add r0, r4, #0 + bl MOD65_021D87B0 + mov r0, #4 + strh r0, [r4, #0x18] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD65_021D78AC + + thumb_func_start MOD65_021D78CC +MOD65_021D78CC: ; 0x021D78CC + push {r4, lr} + add r4, r0, #0 + add r0, #0xd4 + ldr r0, [r0] + ldr r1, [r4] + bl FUN_020021AC + cmp r0, #0 + beq _021D78E8 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021D78FC + b _021D7916 +_021D78E8: + ldr r0, _021D791C ; =0x000005DC + bl FUN_020054C8 + add r0, r4, #0 + bl MOD65_021D8764 + mov r0, #5 + strh r0, [r4, #0x18] + mov r0, #0 + pop {r4, pc} +_021D78FC: + ldr r0, _021D791C ; =0x000005DC + bl FUN_020054C8 + mov r0, #0x42 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #1 + strh r0, [r4, #0x18] + mov r0, #0 + pop {r4, pc} +_021D7916: + mov r0, #0 + pop {r4, pc} + nop +_021D791C: .word 0x000005DC + thumb_func_end MOD65_021D78CC + + thumb_func_start MOD65_021D7920 +MOD65_021D7920: ; 0x021D7920 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #0x1f] + bl FUN_0201BD70 + cmp r0, #0 + beq _021D7932 + mov r0, #0 + pop {r4, pc} +_021D7932: + ldr r0, _021D7988 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021D7940 + mov r0, #0 + pop {r4, pc} +_021D7940: + mov r0, #0x42 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #1 + bl FUN_0200D0E0 + mov r0, #0x42 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019570 + ldrb r0, [r4, #0x1a] + ldr r3, [r4, #0x20] + lsl r2, r0, #3 + add r3, #0x20 + ldrb r1, [r3, r2] + mov r0, #0x40 + orr r0, r1 + strb r0, [r3, r2] + ldr r0, [r4, #0x20] + mov r1, #1 + strb r1, [r0, #2] + add r0, r4, #0 + mov r1, #0 + bl MOD65_021D8214 + add r0, r4, #0 + bl MOD65_021D80C8 + add r0, r4, #0 + mov r1, #0 + bl MOD65_021D8970 + mov r0, #0 + strh r0, [r4, #0x18] + pop {r4, pc} + .align 2, 0 +_021D7988: .word 0x021C48B8 + thumb_func_end MOD65_021D7920 + + thumb_func_start MOD65_021D798C +MOD65_021D798C: ; 0x021D798C + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #8] + cmp r1, #5 + bhi _021D79F0 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D79A2: ; jump table + .short _021D79AE - _021D79A2 - 2 ; case 0 + .short _021D79B4 - _021D79A2 - 2 ; case 1 + .short _021D79BA - _021D79A2 - 2 ; case 2 + .short _021D79C6 - _021D79A2 - 2 ; case 3 + .short _021D79CC - _021D79A2 - 2 ; case 4 + .short _021D79D2 - _021D79A2 - 2 ; case 5 +_021D79AE: + bl MOD65_021D7A8C + b _021D79F0 +_021D79B4: + bl MOD65_021D7B24 + b _021D79F0 +_021D79BA: + bl MOD65_021D7CC8 + add r0, r4, #0 + bl MOD65_021D7C04 + b _021D79F0 +_021D79C6: + bl MOD65_021D8850 + b _021D79F0 +_021D79CC: + bl MOD65_021D7DD8 + b _021D79F0 +_021D79D2: + bl MOD65_021D80C8 + ldrb r1, [r4, #0x1b] + add r0, r4, #0 + mov r2, #4 + bl MOD65_021D8280 + ldr r0, _021D79FC ; =MOD65_021D76DC + add r1, r4, #0 + bl FUN_02015F10 + mov r0, #0 + str r0, [r4, #8] + mov r0, #1 + pop {r4, pc} +_021D79F0: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #0 + pop {r4, pc} + nop +_021D79FC: .word MOD65_021D76DC + thumb_func_end MOD65_021D798C + + thumb_func_start MOD65_021D7A00 +MOD65_021D7A00: ; 0x021D7A00 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #8] + cmp r1, #5 + bhi _021D7A62 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7A16: ; jump table + .short _021D7A22 - _021D7A16 - 2 ; case 0 + .short _021D7A3A - _021D7A16 - 2 ; case 1 + .short _021D7A46 - _021D7A16 - 2 ; case 2 + .short _021D7A52 - _021D7A16 - 2 ; case 3 + .short _021D7A58 - _021D7A16 - 2 ; case 4 + .short _021D7A5E - _021D7A16 - 2 ; case 5 +_021D7A22: + add r1, r4, #0 + add r1, #0xd0 + ldr r1, [r1] + cmp r1, #0 + beq _021D7A30 + bl MOD65_021D86BC +_021D7A30: + add r0, r4, #0 + mov r1, #1 + bl MOD65_021D8214 + b _021D7A62 +_021D7A3A: + bl MOD65_021D7F44 + add r0, r4, #0 + bl MOD65_021D8928 + b _021D7A62 +_021D7A46: + bl MOD65_021D7CA8 + add r0, r4, #0 + bl MOD65_021D7D74 + b _021D7A62 +_021D7A52: + bl MOD65_021D7C00 + b _021D7A62 +_021D7A58: + bl MOD65_021D7B04 + b _021D7A62 +_021D7A5E: + mov r0, #1 + pop {r4, pc} +_021D7A62: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD65_021D7A00 + + thumb_func_start MOD65_021D7A6C +MOD65_021D7A6C: ; 0x021D7A6C + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7A88 ; =0x021DA0B0 + add r3, sp, #0 + mov r2, #5 +_021D7A76: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7A76 + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7A88: .word 0x021DA0B0 + thumb_func_end MOD65_021D7A6C + + thumb_func_start MOD65_021D7A8C +MOD65_021D7A8C: ; 0x021D7A8C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0xb8 + add r5, r0, #0 + bl MOD65_021D7A6C + ldr r0, [r5] + bl FUN_02016B94 + add r3, sp, #0 + ldr r4, _021D7AFC ; =0x021DA040 + str r0, [r5, #0x24] + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r4, _021D7B00 ; =0x021DA140 + add r3, sp, #0x10 + mov r2, #0x15 +_021D7AB8: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7AB8 + mov r4, #0 + add r7, r4, #0 + add r6, sp, #0x10 +_021D7AC6: + lsl r1, r4, #0x18 + ldr r0, [r5, #0x24] + lsr r1, r1, #0x18 + add r2, r6, #0 + mov r3, #0 + bl FUN_02016C18 + lsl r1, r4, #0x18 + ldr r0, [r5, #0x24] + lsr r1, r1, #0x18 + bl FUN_02018744 + lsl r0, r4, #0x18 + ldr r3, [r5] + lsr r0, r0, #0x18 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + add r7, r7, #1 + add r4, r4, #1 + add r6, #0x1c + cmp r7, #6 + blt _021D7AC6 + add sp, #0xb8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D7AFC: .word 0x021DA040 +_021D7B00: .word 0x021DA140 + thumb_func_end MOD65_021D7A8C + + thumb_func_start MOD65_021D7B04 +MOD65_021D7B04: ; 0x021D7B04 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021D7B0A: + lsl r1, r4, #0x18 + ldr r0, [r5, #0x24] + lsr r1, r1, #0x18 + bl FUN_020178A0 + add r4, r4, #1 + cmp r4, #6 + blt _021D7B0A + ldr r0, [r5, #0x24] + bl FUN_02016A18 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD65_021D7B04 + + thumb_func_start MOD65_021D7B24 +MOD65_021D7B24: ; 0x021D7B24 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r1, [r5] + mov r0, #0x53 + bl FUN_02006670 + add r4, r0, #0 + mov r0, #2 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x24] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x53 + bl FUN_02079B60 + mov r0, #3 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x24] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x53 + bl FUN_02079B60 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #6 + lsl r0, r0, #6 + str r0, [sp, #0xc] + str r1, [sp, #0x10] + ldr r0, [r5, #0x24] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x53 + bl FUN_02079B60 + mov r1, #0 + str r1, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #6 + lsl r0, r0, #6 + str r0, [sp, #0xc] + str r1, [sp, #0x10] + ldr r0, [r5, #0x24] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x53 + bl FUN_02079B60 + mov r0, #0xa + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x24] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x53 + bl FUN_02079B60 + mov r0, #0xb + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x24] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x53 + bl FUN_02079B60 + add r0, r4, #0 + bl FUN_020066F4 + ldr r0, [r5, #0x24] + mov r1, #3 + bl FUN_0201AC68 + ldr r0, [r5, #0x24] + mov r1, #5 + bl FUN_0201AC68 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD65_021D7B24 + + thumb_func_start MOD65_021D7C00 +MOD65_021D7C00: ; 0x021D7C00 + bx lr + .align 2, 0 + thumb_func_end MOD65_021D7C00 + + thumb_func_start MOD65_021D7C04 +MOD65_021D7C04: ; 0x021D7C04 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, [r6] + mov r1, #1 + str r0, [sp, #4] + ldr r0, [r6, #0x24] + mov r2, #0x1f + mov r3, #0xf + bl FUN_0200CB00 + ldr r0, [r6, #0x20] + ldr r0, [r0, #0x18] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r6] + mov r1, #1 + str r0, [sp, #4] + ldr r0, [r6, #0x24] + add r2, r1, #0 + mov r3, #0xe + bl FUN_0200CD68 + mov r1, #0x1a + ldr r2, [r6] + mov r0, #0 + lsl r1, r1, #4 + bl FUN_02002ED0 + mov r1, #6 + ldr r2, [r6] + mov r0, #0 + lsl r1, r1, #6 + bl FUN_02002EEC + mov r1, #0x1a + ldr r2, [r6] + mov r0, #4 + lsl r1, r1, #4 + bl FUN_02002ED0 + add r5, r6, #0 + ldr r4, _021D7CA4 ; =0x021DA0D8 + mov r7, #0 + add r5, #0xe8 +_021D7C68: + ldrb r0, [r4, #2] + add r1, r5, #0 + str r0, [sp] + ldrb r0, [r4, #3] + str r0, [sp, #4] + ldrb r0, [r4, #4] + str r0, [sp, #8] + ldrb r0, [r4, #5] + str r0, [sp, #0xc] + ldrh r0, [r4, #6] + str r0, [sp, #0x10] + ldrb r2, [r4] + ldrb r3, [r4, #1] + ldr r0, [r6, #0x24] + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r7, r7, #1 + add r4, #8 + add r5, #0x10 + cmp r7, #0xd + blt _021D7C68 + add r0, r6, #0 + bl MOD65_021D87D4 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D7CA4: .word 0x021DA0D8 + thumb_func_end MOD65_021D7C04 + + thumb_func_start MOD65_021D7CA8 +MOD65_021D7CA8: ; 0x021D7CA8 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 + add r5, #0xe8 +_021D7CB0: + add r0, r5, #0 + bl FUN_02019570 + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #0xd + blt _021D7CB0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD65_021D7CA8 + + thumb_func_start MOD65_021D7CC8 +MOD65_021D7CC8: ; 0x021D7CC8 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r1, [r5] + mov r0, #2 + bl FUN_02002C50 + mov r2, #0x67 + ldr r3, [r5] + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #2 + bl FUN_0200A86C + str r0, [r5, #0x2c] + ldr r0, [r5] + bl FUN_02014518 + str r0, [r5, #0x28] + ldr r2, [r5] + mov r0, #2 + mov r1, #0x40 + bl FUN_0200AA90 + str r0, [r5, #0x30] + ldr r1, [r5] + mov r0, #0x40 + bl FUN_020219F4 + str r0, [r5, #0x34] + ldr r0, [r5, #0x2c] + mov r1, #6 + bl FUN_0200A914 + str r0, [r5, #0x38] + ldr r0, [r5, #0x2c] + mov r1, #0x16 + bl FUN_0200A914 + str r0, [r5, #0x3c] + ldr r0, [r5, #0x2c] + mov r1, #4 + bl FUN_0200A914 + str r0, [r5, #0x40] + ldr r0, [r5, #0x2c] + mov r1, #7 + bl FUN_0200A914 + str r0, [r5, #0x44] + ldr r0, [r5, #0x2c] + mov r1, #8 + bl FUN_0200A914 + str r0, [r5, #0x48] + ldr r0, [r5, #0x2c] + mov r1, #0 + bl FUN_0200A914 + str r0, [r5, #0x4c] + mov r4, #0 + add r6, r5, #0 +_021D7D42: + add r1, r4, #0 + ldr r0, [r5, #0x2c] + add r1, #0xb + bl FUN_0200A914 + str r0, [r6, #0x50] + cmp r4, #5 + bge _021D7D66 + add r1, r4, #0 + ldr r0, [r5, #0x2c] + add r1, #0x11 + bl FUN_0200A914 + str r0, [r6, #0x68] + add r4, r4, #1 + add r6, r6, #4 + cmp r4, #6 + blt _021D7D42 +_021D7D66: + ldr r0, [r5, #0x20] + ldr r0, [r0, #0x18] + bl FUN_02024FF4 + add r5, #0x7c + strb r0, [r5] + pop {r4, r5, r6, pc} + thumb_func_end MOD65_021D7CC8 + + thumb_func_start MOD65_021D7D74 +MOD65_021D7D74: ; 0x021D7D74 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_021D7D7C: + ldr r0, [r5, #0x50] + bl FUN_02021A20 + cmp r4, #5 + bge _021D7D94 + ldr r0, [r5, #0x68] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _021D7D7C +_021D7D94: + ldr r0, [r6, #0x4c] + bl FUN_02021A20 + ldr r0, [r6, #0x48] + bl FUN_02021A20 + ldr r0, [r6, #0x44] + bl FUN_02021A20 + ldr r0, [r6, #0x40] + bl FUN_02021A20 + ldr r0, [r6, #0x3c] + bl FUN_02021A20 + ldr r0, [r6, #0x38] + bl FUN_02021A20 + ldr r0, [r6, #0x34] + bl FUN_02021A20 + ldr r0, [r6, #0x30] + bl FUN_0200AB18 + ldr r0, [r6, #0x28] + bl FUN_02014564 + ldr r0, [r6, #0x2c] + bl FUN_0200A8B8 + mov r0, #2 + bl FUN_02002CF8 + pop {r4, r5, r6, pc} + thumb_func_end MOD65_021D7D74 + + thumb_func_start MOD65_021D7DD8 +MOD65_021D7DD8: ; 0x021D7DD8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r6, _021D7F30 ; =0x021DA1E8 + mov r7, #0 + add r4, r5, #0 +_021D7DE4: + mov r0, #0x6e + mov r1, #0x6f + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200BE38 + mov r1, #7 + lsl r1, r1, #6 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + add r7, r7, #1 + add r6, #0x28 + add r4, r4, #4 + cmp r7, #3 + blt _021D7DE4 + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200BC + mov r0, #0x71 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x72 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + ldr r6, _021D7F34 ; =0x021DA050 + mov r7, #0 + add r4, r5, #0 +_021D7E3A: + mov r0, #0x6e + mov r1, #0x6f + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, _021D7F38 ; =0x021DA260 + bl FUN_0200BE38 + mov r1, #0x73 + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r7, #3 + bl FUN_02020130 + mov r0, #0x73 + mov r1, #0 + mov r2, #2 + lsl r0, r0, #2 + ldrsh r1, [r6, r1] + ldrsh r2, [r6, r2] + ldr r0, [r4, r0] + bl FUN_0200C6E4 + add r7, r7, #1 + add r4, r4, #4 + add r6, r6, #4 + cmp r7, #5 + blt _021D7E3A + mov r7, #0 + ldr r6, _021D7F3C ; =0x021DA064 + add r4, r5, #0 + str r7, [sp, #0x10] +_021D7E8C: + mov r0, #0x6e + mov r1, #0x6f + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, _021D7F40 ; =0x021DA288 + bl FUN_0200BE38 + mov r1, #0x1e + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x1e + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r1, [sp, #0x10] + bl FUN_02020130 + mov r0, #0x1e + lsl r0, r0, #4 + mov r1, #2 + ldr r0, [r4, r0] + lsl r1, r1, #0xc + bl FUN_020200D8 + mov r0, #0x1e + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, r7, #2 + bl FUN_02020248 + mov r0, #0x1e + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200BC + mov r0, #0x1e + mov r1, #0 + mov r2, #2 + lsl r0, r0, #4 + ldrsh r1, [r6, r1] + ldrsh r2, [r6, r2] + ldr r0, [r4, r0] + bl FUN_0200C6E4 + ldr r0, [sp, #0x10] + add r7, r7, #1 + add r0, r0, #3 + add r4, r4, #4 + add r6, r6, #4 + str r0, [sp, #0x10] + cmp r7, #6 + blt _021D7E8C + mov r1, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x7e + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r2, #0xe7 + mov r3, #0x4c + bl FUN_02088490 + mov r1, #0x7f + lsl r1, r1, #2 + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #0 + ldr r0, [r0, #4] + bl FUN_0200C644 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D7F30: .word 0x021DA1E8 +_021D7F34: .word 0x021DA050 +_021D7F38: .word 0x021DA260 +_021D7F3C: .word 0x021DA064 +_021D7F40: .word 0x021DA288 + thumb_func_end MOD65_021D7DD8 + + thumb_func_start MOD65_021D7F44 +MOD65_021D7F44: ; 0x021D7F44 + push {r3, r4, r5, r6, r7, lr} + mov r1, #0x7e + add r5, r0, #0 + lsl r1, r1, #2 + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + bl FUN_02088694 + mov r7, #0x1e + mov r6, #0 + add r4, r5, #0 + lsl r7, r7, #4 +_021D7F5E: + ldr r0, [r4, r7] + bl FUN_0200BC14 + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #6 + blt _021D7F5E + mov r7, #0x73 + mov r6, #0 + add r4, r5, #0 + lsl r7, r7, #2 +_021D7F74: + ldr r0, [r4, r7] + bl FUN_0200BC14 + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #5 + blt _021D7F74 + mov r6, #7 + mov r4, #0 + lsl r6, r6, #6 +_021D7F88: + ldr r0, [r5, r6] + bl FUN_0200BC14 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #3 + blt _021D7F88 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD65_021D7F44 + + thumb_func_start MOD65_021D7F98 +MOD65_021D7F98: ; 0x021D7F98 + ldrb r2, [r0, #4] + mov r1, #0x20 + bic r2, r1 + strb r2, [r0, #4] + mov r1, #0xff + strb r1, [r0, #6] + ldrb r1, [r0, #6] + strb r1, [r0, #7] + bx lr + .align 2, 0 + thumb_func_end MOD65_021D7F98 + + thumb_func_start MOD65_021D7FAC +MOD65_021D7FAC: ; 0x021D7FAC + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + add r6, r1, #0 + add r4, r2, #0 + cmp r3, #0 + beq _021D7FCA + mov r0, #0x42 + lsl r0, r0, #2 + mov r1, #1 + add r0, r5, r0 + add r2, r1, #0 + mov r3, #0xe + bl FUN_0200D0BC +_021D7FCA: + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + add r0, #0xe8 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xff + add r3, r2, #0 + bl FUN_020196F4 + mov r0, #1 + bl FUN_02002B60 + mov r0, #0 + bl FUN_02002B7C + mov r3, #0 + str r3, [sp] + ldr r0, _021D800C ; =0x0001020F + str r4, [sp, #4] + str r0, [sp, #8] + mov r0, #0x42 + lsl r0, r0, #2 + add r0, r5, r0 + mov r1, #1 + add r2, r6, #0 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + strb r0, [r5, #0x1f] + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D800C: .word 0x0001020F + thumb_func_end MOD65_021D7FAC + + thumb_func_start MOD65_021D8010 +MOD65_021D8010: ; 0x021D8010 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + add r5, r1, #0 + mov r0, #0xff + strb r0, [r5, #0x1e] + ldrb r0, [r5, #0x1e] + strb r0, [r5, #0x1d] + ldrb r2, [r5, #0x1b] + cmp r2, #5 + bne _021D802E + mov r7, #0x1f + b _021D8044 +_021D802E: + mov r7, #1 + ldr r1, [sp, #4] + cmp r2, #0 + ble _021D8044 +_021D8036: + lsl r0, r7, #0x19 + lsr r7, r0, #0x18 + add r0, r1, #1 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + cmp r1, r2 + blt _021D8036 +_021D8044: + ldr r0, [sp] + mov r6, #0 + ldrb r0, [r0] + cmp r0, #0 + ble _021D80BA + ldr r0, [sp] + str r0, [sp, #8] + add r0, #0x1c + str r0, [sp, #8] +_021D8056: + ldr r0, [sp, #8] + lsl r1, r6, #3 + add r4, r0, r1 + add r0, r4, #0 + bl MOD65_021D7F98 + ldrb r0, [r4, #4] + lsl r1, r0, #0x18 + lsr r1, r1, #0x1f + beq _021D80AC + lsl r1, r0, #0x19 + lsr r1, r1, #0x1f + bne _021D80AC + mov r1, #0x1f + and r1, r0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + tst r1, r7 + beq _021D80AC + mov r1, #0x20 + orr r0, r1 + strb r0, [r4, #4] + ldrb r0, [r5, #0x1d] + cmp r0, #0xff + ldrb r0, [r4, #5] + bne _021D808E + strb r0, [r5, #0x1d] + b _021D809A +_021D808E: + ldrb r1, [r5, #0x1e] + lsl r2, r1, #3 + ldr r1, [sp] + add r1, r1, r2 + add r1, #0x23 + strb r0, [r1] +_021D809A: + ldrb r0, [r5, #0x1e] + strb r0, [r4, #6] + ldrb r0, [r4, #5] + strb r0, [r5, #0x1e] + ldr r0, [sp, #4] + add r0, r0, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] +_021D80AC: + add r0, r6, #1 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + ldr r0, [sp] + ldrb r0, [r0] + cmp r6, r0 + blt _021D8056 +_021D80BA: + ldr r0, [sp, #4] + add r0, r0, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD65_021D8010 + + thumb_func_start MOD65_021D80C8 +MOD65_021D80C8: ; 0x021D80C8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, [r5, #0x20] + add r1, r5, #0 + bl MOD65_021D8010 + strb r0, [r5, #0x1c] + ldrb r0, [r5, #0x1c] + ldr r1, [r5] + bl FUN_02012838 + add r1, r5, #0 + add r1, #0xcc + str r0, [r1] + ldrb r4, [r5, #0x1e] + cmp r4, #0xff + beq _021D8142 + mov r7, #0 +_021D80EE: + ldr r1, [r5, #0x20] + lsl r0, r4, #3 + add r1, #0x1c + add r6, r1, r0 + ldrb r4, [r6, #6] + ldrb r1, [r6, #2] + ldr r0, [r5, #0x28] + bl FUN_02014588 + add r2, r0, #0 + str r7, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, [r5, #0x30] + add r1, r7, #0 + add r3, r7, #0 + bl FUN_0200ABB4 + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldrb r2, [r6, #1] + ldr r0, [r5, #0x30] + mov r1, #1 + mov r3, #2 + bl FUN_0200AD38 + ldr r0, [r5, #0x30] + ldr r1, [r5, #0x34] + ldr r2, [r5, #0x3c] + bl FUN_0200B7B8 + add r0, r5, #0 + add r0, #0xcc + ldrb r2, [r6, #5] + ldr r0, [r0] + ldr r1, [r5, #0x34] + bl FUN_020128A0 + cmp r4, #0xff + bne _021D80EE +_021D8142: + add r0, r5, #0 + add r0, #0xcc + ldr r0, [r0] + ldr r1, [r5, #0x38] + mov r2, #0xff + bl FUN_020128A0 + add r1, r5, #0 + ldr r0, _021D8210 ; =0x021DA2E0 + add r1, #0x84 + mov r2, #0x20 + bl MI_CpuCopy8 + ldr r0, [r5, #0x20] + ldrh r1, [r0, #6] + add r0, r5, #0 + add r0, #0x82 + strh r1, [r0] + ldr r0, [r5, #0x20] + ldrh r1, [r0, #4] + add r0, r5, #0 + add r0, #0x80 + strh r1, [r0] + ldr r0, [r5, #0x20] + ldrb r0, [r0, #2] + cmp r0, #0 + beq _021D81C0 + add r0, r5, #0 + add r0, #0x80 + ldrh r0, [r0] + cmp r0, #0 + bne _021D81A4 + add r0, r5, #0 + add r0, #0x82 + ldrh r1, [r0] + cmp r1, #0 + beq _021D81BA + ldrb r0, [r5, #0x1c] + sub r0, r0, #1 + cmp r1, r0 + blt _021D81BA + add r0, r5, #0 + add r0, #0x82 + ldrh r0, [r0] + sub r1, r0, #1 + add r0, r5, #0 + add r0, #0x82 + strh r1, [r0] + b _021D81BA +_021D81A4: + add r1, r0, #6 + ldrb r0, [r5, #0x1c] + cmp r1, r0 + blt _021D81BA + add r0, r5, #0 + add r0, #0x80 + ldrh r0, [r0] + sub r1, r0, #1 + add r0, r5, #0 + add r0, #0x80 + strh r1, [r0] +_021D81BA: + ldr r0, [r5, #0x20] + mov r1, #0 + strb r1, [r0, #2] +_021D81C0: + add r1, r5, #0 + add r0, r5, #0 + add r1, #0xe8 + add r0, #0x90 + str r1, [r0] + add r0, r5, #0 + add r0, #0xcc + ldr r1, [r0] + add r0, r5, #0 + add r0, #0x84 + str r1, [r0] + add r0, r5, #0 + add r0, #0xa0 + str r5, [r0] + add r0, r5, #0 + add r2, r5, #0 + ldrb r1, [r5, #0x1c] + add r0, #0x94 + add r2, #0x82 + strh r1, [r0] + mov r0, #0 + strh r0, [r5, #0x16] + add r1, r5, #0 + add r1, #0x80 + ldr r3, [r5] + add r0, r5, #0 + lsl r3, r3, #0x18 + ldrh r1, [r1] + ldrh r2, [r2] + add r0, #0x84 + lsr r3, r3, #0x18 + bl FUN_020010A8 + add r1, r5, #0 + add r1, #0xc4 + str r0, [r1] + mov r0, #1 + strh r0, [r5, #0x16] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8210: .word 0x021DA2E0 + thumb_func_end MOD65_021D80C8 + + thumb_func_start MOD65_021D8214 +MOD65_021D8214: ; 0x021D8214 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0xb0 + str r0, [sp] + mov r0, #0x60 + add r4, r1, #0 + mov r1, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xe8 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + cmp r4, #0 + beq _021D823E + add r0, r5, #0 + add r0, #0xe8 + bl FUN_02019570 +_021D823E: + add r0, r5, #0 + add r0, #0xc4 + add r1, r5, #0 + add r2, r5, #0 + ldr r0, [r0] + add r1, #0x80 + add r2, #0x82 + bl FUN_02001300 + add r0, r5, #0 + add r0, #0xcc + ldr r0, [r0] + bl FUN_02012870 + add r0, r5, #0 + add r0, #0x80 + ldrh r1, [r0] + ldr r0, [r5, #0x20] + strh r1, [r0, #4] + add r0, r5, #0 + add r0, #0x82 + ldrh r1, [r0] + ldr r0, [r5, #0x20] + strh r1, [r0, #6] + add r0, r5, #0 + mov r1, #0 + add r0, #0xc4 + str r1, [r0] + add r5, #0xcc + str r1, [r5] + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD65_021D8214 + + thumb_func_start MOD65_021D8280 +MOD65_021D8280: ; 0x021D8280 + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + add r5, r1, #0 + cmp r2, #4 + bls _021D828C + b _021D8392 +_021D828C: + add r0, r2, r2 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D8298: ; jump table + .short _021D82A2 - _021D8298 - 2 ; case 0 + .short _021D82D2 - _021D8298 - 2 ; case 1 + .short _021D8302 - _021D8298 - 2 ; case 2 + .short _021D8330 - _021D8298 - 2 ; case 3 + .short _021D835E - _021D8298 - 2 ; case 4 +_021D82A2: + mov r0, #0x1e + lsl r0, r0, #4 + add r6, r4, r0 + lsl r7, r5, #2 + lsl r1, r5, #1 + ldr r0, [r6, r7] + add r1, r5, r1 + bl FUN_02020130 + ldr r0, [r6, r7] + mov r1, #0 + bl FUN_020200BC + add r1, r4, #0 + add r0, r5, #7 + add r1, #0xe8 + lsl r0, r0, #4 + add r0, r1, r0 + mov r1, #1 + mov r2, #2 + mov r3, #0 + bl FUN_0201A8C8 + b _021D8392 +_021D82D2: + mov r0, #0x1e + lsl r0, r0, #4 + add r6, r4, r0 + lsl r7, r5, #2 + ldr r0, [r6, r7] + bl FUN_02020198 + ldr r0, [r6, r7] + mov r1, #1 + bl FUN_020200BC + add r1, r4, #0 + add r0, r5, #7 + add r1, #0xe8 + lsl r0, r0, #4 + add r0, r1, r0 + mov r1, #0 + mov r2, #4 + add r3, r1, #0 + bl FUN_0201A8C8 + mov r0, #1 + strh r0, [r4, #0x14] + b _021D8392 +_021D8302: + lsl r0, r5, #2 + add r1, r4, r0 + mov r0, #0x1e + lsl r0, r0, #4 + ldr r0, [r1, r0] + lsl r1, r5, #1 + add r1, r5, r1 + add r1, r1, #1 + bl FUN_02020130 + add r1, r4, #0 + add r0, r5, #7 + add r1, #0xe8 + lsl r0, r0, #4 + add r0, r1, r0 + mov r1, #1 + mov r2, #2 + mov r3, #0 + bl FUN_0201A8C8 + mov r0, #0 + strh r0, [r4, #0x14] + b _021D8392 +_021D8330: + lsl r0, r5, #2 + add r1, r4, r0 + mov r0, #0x1e + lsl r0, r0, #4 + ldr r0, [r1, r0] + lsl r1, r5, #1 + add r1, r5, r1 + add r1, r1, #2 + bl FUN_02020130 + add r1, r4, #0 + add r0, r5, #7 + add r1, #0xe8 + lsl r0, r0, #4 + add r0, r1, r0 + mov r1, #0 + mov r2, #2 + add r3, r1, #0 + bl FUN_0201A8C8 + mov r0, #1 + strh r0, [r4, #0x14] + b _021D8392 +_021D835E: + mov r0, #0x1e + lsl r0, r0, #4 + lsl r1, r5, #1 + add r1, r5, r1 + add r6, r4, r0 + lsl r7, r5, #2 + ldr r0, [r6, r7] + add r1, r1, #1 + bl FUN_02020130 + ldr r0, [r6, r7] + mov r1, #1 + bl FUN_020200BC + add r1, r4, #0 + add r0, r5, #7 + add r1, #0xe8 + lsl r0, r0, #4 + add r0, r1, r0 + mov r1, #0 + mov r2, #2 + add r3, r1, #0 + bl FUN_0201A8C8 + mov r0, #0 + strh r0, [r4, #0x14] +_021D8392: + add r0, r5, #7 + add r4, #0xe8 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_020191D0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD65_021D8280 + + thumb_func_start MOD65_021D83A0 +MOD65_021D83A0: ; 0x021D83A0 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, _021D8470 ; =0x000005E4 + add r5, r1, #0 + bl FUN_020054C8 + ldrh r1, [r4, #0x14] + ldr r0, _021D8474 ; =0x0000FFFF + cmp r1, r0 + beq _021D83D2 + ldrb r1, [r4, #0x1b] + cmp r5, r1 + bne _021D83CA + add r0, r4, #0 + add r1, r5, #0 + mov r2, #3 + bl MOD65_021D8280 + add sp, #0x10 + pop {r3, r4, r5, pc} +_021D83CA: + add r0, r4, #0 + mov r2, #0 + bl MOD65_021D8280 +_021D83D2: + add r0, r4, #0 + add r1, r5, #0 + mov r2, #1 + bl MOD65_021D8280 + add r0, r4, #0 + mov r1, #0 + strb r5, [r4, #0x1b] + bl MOD65_021D8214 + add r0, r4, #0 + mov r2, #0 + add r0, #0x82 + strh r2, [r0] + add r0, r4, #0 + add r0, #0x82 + ldrh r1, [r0] + add r0, r4, #0 + add r0, #0x80 + strh r1, [r0] + ldr r0, [r4, #0x20] + strh r2, [r0, #6] + ldr r1, [r4, #0x20] + ldrh r0, [r1, #6] + strh r0, [r1, #4] + add r0, r4, #0 + bl MOD65_021D80C8 + mov r1, #0xa0 + str r1, [sp] + mov r0, #0x18 + add r1, #0xa8 + str r0, [sp, #4] + add r0, r4, r1 + mov r1, #0 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + ldrb r1, [r4, #0x1b] + cmp r1, #5 + bne _021D8434 + mov r0, #0x52 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_020191D0 + add sp, #0x10 + pop {r3, r4, r5, pc} +_021D8434: + lsl r1, r1, #2 + add r1, r4, r1 + mov r0, #0 + ldr r1, [r1, #0x68] + add r2, r0, #0 + bl FUN_02002E14 + mov r2, #0xa0 + sub r3, r2, r0 + mov r0, #3 + str r0, [sp] + mov r1, #0 + ldr r0, _021D8478 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r2, #0xa8 + str r1, [sp, #0xc] + add r0, r4, r2 + ldrb r2, [r4, #0x1b] + lsl r2, r2, #2 + add r2, r4, r2 + lsr r4, r3, #0x1f + add r4, r3, r4 + ldr r2, [r2, #0x68] + asr r3, r4, #1 + bl FUN_0201BDE0 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D8470: .word 0x000005E4 +_021D8474: .word 0x0000FFFF +_021D8478: .word 0x00010200 + thumb_func_end MOD65_021D83A0 + + thumb_func_start MOD65_021D847C +MOD65_021D847C: ; 0x021D847C + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + ldr r6, _021D84E0 ; =0x00000001 + bne _021D84A6 + mov r4, #0 + mov r6, #0x73 + add r7, r4, #0 + lsl r6, r6, #2 +_021D848E: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, r6] + add r1, r7, #0 + bl FUN_020200A0 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #5 + blo _021D848E + pop {r3, r4, r5, r6, r7, pc} +_021D84A6: + mov r4, #0 +_021D84A8: + ldrb r0, [r7, #4] + tst r0, r6 + beq _021D84C0 + lsl r0, r4, #2 + add r1, r5, r0 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200A0 + b _021D84D0 +_021D84C0: + lsl r0, r4, #2 + add r1, r5, r0 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 +_021D84D0: + lsl r0, r6, #0x19 + lsr r6, r0, #0x18 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #5 + blo _021D84A8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D84E0: .word 0x00000001 + thumb_func_end MOD65_021D847C + + thumb_func_start MOD65_021D84E4 +MOD65_021D84E4: ; 0x021D84E4 + ldr r3, _021D84EC ; =FUN_02001470 + mov r1, #0x13 + bx r3 + nop +_021D84EC: .word FUN_02001470 + thumb_func_end MOD65_021D84E4 + + thumb_func_start MOD65_021D84F0 +MOD65_021D84F0: ; 0x021D84F0 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r1, #0 + mov r1, #0x13 + add r7, r0, #0 + add r6, r2, #0 + bl FUN_02001470 + add r4, r0, #0 + cmp r6, #0 + bne _021D850C + ldr r0, _021D862C ; =0x000005DC + bl FUN_020054C8 +_021D850C: + add r1, sp, #0x10 + add r0, r7, #0 + add r1, #2 + add r2, sp, #0x10 + bl FUN_02001448 + add r2, sp, #0x10 + ldrh r2, [r2] + mov r0, #7 + lsl r0, r0, #6 + lsl r2, r2, #4 + add r2, #0x28 + lsl r2, r2, #0x10 + ldr r0, [r4, r0] + mov r1, #0x69 + asr r2, r2, #0x10 + bl FUN_0200C6E4 + add r0, sp, #0x10 + ldrh r0, [r0, #2] + cmp r0, #0 + bne _021D8546 + mov r0, #0x71 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + b _021D8552 +_021D8546: + mov r0, #0x71 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 +_021D8552: + add r0, sp, #0x10 + ldrh r1, [r0, #2] + ldrb r0, [r4, #0x1c] + sub r0, r0, #6 + cmp r1, r0 + bge _021D856C + mov r0, #0x72 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + b _021D8578 +_021D856C: + mov r0, #0x72 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 +_021D8578: + mov r0, #0x50 + str r0, [sp] + mov r1, #0 + mov r0, #0x10 + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0xf8 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + cmp r5, #0xff + bne _021D85B4 + add r0, r4, #0 + mov r1, #0 + bl MOD65_021D847C + add r0, r4, #0 + add r0, #0xf8 + bl FUN_020191D0 + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + ldr r0, [r0, #4] + bl FUN_0200C644 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} +_021D85B4: + ldr r1, [r4, #0x20] + lsl r5, r5, #3 + add r1, #0x1c + add r0, r4, #0 + add r1, r1, r5 + bl MOD65_021D847C + ldr r0, [r4, #0x34] + bl FUN_02021A4C + ldr r0, [r4, #0x20] + add r0, r0, r5 + ldrb r2, [r0, #0x1f] + cmp r2, #0x63 + bls _021D85D4 + mov r2, #0x63 +_021D85D4: + mov r1, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4, #0x30] + mov r3, #2 + bl FUN_0200AD38 + ldr r0, [r4, #0x30] + ldr r1, [r4, #0x34] + ldr r2, [r4, #0x40] + bl FUN_0200B7B8 + mov r1, #0 + str r1, [sp] + ldr r0, _021D8630 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x34] + add r0, #0xf8 + mov r3, #8 + bl FUN_0201BDE0 + ldr r2, [r4, #0x20] + mov r1, #0x7e + lsl r1, r1, #2 + add r2, r2, r5 + ldr r0, [r4, r1] + add r1, r1, #4 + ldrb r2, [r2, #0x1e] + ldr r1, [r4, r1] + bl FUN_02088660 + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + ldr r0, [r0, #4] + bl FUN_0200C644 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D862C: .word 0x000005DC +_021D8630: .word 0x00010200 + thumb_func_end MOD65_021D84F0 + + thumb_func_start MOD65_021D8634 +MOD65_021D8634: ; 0x021D8634 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r1, [r5] + mov r0, #3 + bl FUN_02012838 + add r1, r5, #0 + add r1, #0xd0 + str r0, [r1] + mov r4, #0 +_021D8648: + add r0, r5, #0 + add r0, #0xd0 + ldr r0, [r0] + ldr r1, [r5, #0x2c] + add r2, r4, #1 + add r3, r4, #0 + bl FUN_02012880 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #3 + blo _021D8648 + add r1, r5, #0 + ldr r0, _021D86B8 ; =0x021DA2C0 + add r1, #0xa4 + mov r2, #0x20 + bl MI_CpuCopy8 + mov r0, #0x46 + lsl r0, r0, #2 + add r1, r5, #0 + add r0, r5, r0 + add r1, #0xb0 + str r0, [r1] + add r1, r5, #0 + add r1, #0xd0 + ldr r2, [r1] + add r1, r5, #0 + add r1, #0xa4 + str r2, [r1] + add r1, r5, #0 + add r1, #0xc0 + str r5, [r1] + add r1, r5, #0 + mov r2, #3 + add r1, #0xb4 + strh r2, [r1] + mov r1, #1 + mov r2, #0x1f + mov r3, #0xf + bl FUN_0200CCA4 + ldr r3, [r5] + add r0, r5, #0 + mov r1, #0 + lsl r3, r3, #0x18 + add r0, #0xa4 + add r2, r1, #0 + lsr r3, r3, #0x18 + bl FUN_020010A8 + add r5, #0xc8 + str r0, [r5] + pop {r3, r4, r5, pc} + nop +_021D86B8: .word 0x021DA2C0 + thumb_func_end MOD65_021D8634 + + thumb_func_start MOD65_021D86BC +MOD65_021D86BC: ; 0x021D86BC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #0x46 + lsl r0, r0, #2 + add r0, r4, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0x46 + lsl r0, r0, #2 + add r0, r4, r0 + bl FUN_02019570 + add r0, r4, #0 + add r0, #0xc8 + add r2, sp, #0 + ldr r0, [r0] + add r1, sp, #0 + add r2, #2 + bl FUN_02001300 + add r0, r4, #0 + add r0, #0xd0 + ldr r0, [r0] + bl FUN_02012870 + add r0, r4, #0 + mov r1, #0 + add r0, #0xc8 + str r1, [r0] + add r4, #0xd0 + str r1, [r4] + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD65_021D86BC + + thumb_func_start MOD65_021D8704 +MOD65_021D8704: ; 0x021D8704 + push {r3, lr} + cmp r2, #0 + bne _021D8710 + ldr r0, _021D8714 ; =0x000005DC + bl FUN_020054C8 +_021D8710: + pop {r3, pc} + nop +_021D8714: .word 0x000005DC + thumb_func_end MOD65_021D8704 + + thumb_func_start MOD65_021D8718 +MOD65_021D8718: ; 0x021D8718 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, [r4, #0x34] + bl FUN_02021A4C + ldrb r1, [r4, #0x1a] + ldr r2, [r4, #0x20] + ldr r0, [r4, #0x28] + lsl r1, r1, #3 + add r1, r2, r1 + ldrb r1, [r1, #0x1e] + bl FUN_02014588 + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + mov r3, #2 + str r3, [sp, #4] + ldr r0, [r4, #0x30] + mov r1, #0 + bl FUN_0200ABB4 + ldr r0, [r4, #0x30] + ldr r1, [r4, #0x34] + ldr r2, [r4, #0x44] + bl FUN_0200B7B8 + add r0, r4, #0 + ldr r1, [r4, #0x34] + add r4, #0x7c + ldrb r2, [r4] + mov r3, #1 + bl MOD65_021D7FAC + add sp, #8 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD65_021D8718 + + thumb_func_start MOD65_021D8764 +MOD65_021D8764: ; 0x021D8764 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, [r4, #0x34] + bl FUN_02021A4C + ldrb r1, [r4, #0x1a] + ldr r2, [r4, #0x20] + ldr r0, [r4, #0x28] + lsl r1, r1, #3 + add r1, r2, r1 + ldrb r1, [r1, #0x1e] + bl FUN_02014588 + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + mov r3, #2 + str r3, [sp, #4] + ldr r0, [r4, #0x30] + mov r1, #0 + bl FUN_0200ABB4 + ldr r0, [r4, #0x30] + ldr r1, [r4, #0x34] + ldr r2, [r4, #0x48] + bl FUN_0200B7B8 + add r0, r4, #0 + ldr r1, [r4, #0x34] + add r4, #0x7c + ldrb r2, [r4] + mov r3, #0 + bl MOD65_021D7FAC + add sp, #8 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD65_021D8764 + + thumb_func_start MOD65_021D87B0 +MOD65_021D87B0: ; 0x021D87B0 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4] + ldr r1, _021D87D0 ; =0x021DA2B8 + str r0, [sp] + ldr r0, [r4, #0x24] + mov r2, #0x1f + mov r3, #0xf + bl FUN_02002198 + add r4, #0xd4 + str r0, [r4] + add sp, #4 + pop {r3, r4, pc} + nop +_021D87D0: .word 0x021DA2B8 + thumb_func_end MOD65_021D87B0 + + thumb_func_start MOD65_021D87D4 +MOD65_021D87D4: ; 0x021D87D4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + ldr r0, _021D8844 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r0, #0x4e + lsl r0, r0, #2 + ldr r2, [r5, #0x4c] + add r0, r5, r0 + mov r3, #4 + bl FUN_0201BDE0 + add r0, r5, #0 + str r0, [sp, #0x10] + add r0, #0xe8 + ldr r4, _021D8848 ; =0x021DA2B0 + mov r6, #0 + str r0, [sp, #0x10] +_021D8800: + ldr r1, [r5, #0x50] + mov r0, #2 + mov r2, #0 + bl FUN_02002E14 + mov r1, #0x40 + sub r3, r1, r0 + ldrb r0, [r4] + lsr r7, r3, #0x1f + add r7, r3, r7 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _021D884C ; =0x00020301 + asr r3, r7, #1 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r0, r6, #7 + lsl r1, r0, #4 + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x50] + add r0, r0, r1 + mov r1, #2 + bl FUN_0201BDE0 + add r6, r6, #1 + add r5, r5, #4 + add r4, r4, #1 + cmp r6, #6 + blt _021D8800 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8844: .word 0x00010200 +_021D8848: .word 0x021DA2B0 +_021D884C: .word 0x00020301 + thumb_func_end MOD65_021D87D4 + + thumb_func_start MOD65_021D8850 +MOD65_021D8850: ; 0x021D8850 + push {r4, r5, r6, r7, lr} + sub sp, #0x54 + add r4, r0, #0 + ldr r1, [r4] + mov r0, #0x20 + bl FUN_0201C24C + ldr r0, [r4] + bl FUN_0200BB14 + mov r1, #0x6e + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + bl FUN_0200BB34 + mov r7, #0x6f + lsl r7, r7, #2 + add r2, sp, #0x34 + ldr r3, _021D891C ; =0x021DA330 + str r0, [r4, r7] + ldmia r3!, {r0, r1} + add r6, r2, #0 + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + ldr r5, _021D8920 ; =0x021DA300 + stmia r2!, {r0, r1} + add r3, sp, #0x20 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r6, #0 + str r0, [r3] + sub r0, r7, #4 + ldr r0, [r4, r0] + mov r3, #0x20 + bl FUN_0200BB6C + sub r1, r7, #4 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + mov r2, #0xe + bl FUN_0200BBF0 + ldr r0, [r4] + bl FUN_0200A064 + ldr r0, [r4] + bl FUN_0200A06C + ldr r5, _021D8924 ; =0x021DA314 + add r3, sp, #4 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + sub r1, r7, #4 + str r0, [r3] + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl FUN_0200BD20 + mov r1, #1 + mov r0, #0 + str r0, [sp] + ldr r0, [r4] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02088320 + add r1, r7, #0 + add r1, #0x3c + str r0, [r4, r1] + bl FUN_02030F40 + cmp r0, #0 + beq _021D8908 + bl FUN_02033E74 +_021D8908: + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x54 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D891C: .word 0x021DA330 +_021D8920: .word 0x021DA300 +_021D8924: .word 0x021DA314 + thumb_func_end MOD65_021D8850 + + thumb_func_start MOD65_021D8928 +MOD65_021D8928: ; 0x021D8928 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x7e + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02088360 + mov r1, #0x6e + lsl r1, r1, #2 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl FUN_0200BCE0 + mov r0, #0x6e + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200BD04 + bl FUN_0201C29C + pop {r4, pc} + thumb_func_end MOD65_021D8928 + + thumb_func_start MOD65_021D8954 +MOD65_021D8954: ; 0x021D8954 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x6f + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200BC1C + mov r0, #0x7e + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02088484 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD65_021D8954 + + thumb_func_start MOD65_021D8970 +MOD65_021D8970: ; 0x021D8970 + push {r4, lr} + add r4, r0, #0 + cmp r1, #0 + bne _021D899E + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02020248 + mov r0, #0x71 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x72 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + pop {r4, pc} +_021D899E: + mov r0, #7 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #9 + bl FUN_02020248 + mov r0, #0x71 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200BC + mov r0, #0x72 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200BC + pop {r4, pc} + thumb_func_end MOD65_021D8970 + + thumb_func_start MOD65_021D89C4 +MOD65_021D89C4: ; 0x021D89C4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r6, r0, #0 + add r5, r1, #0 + add r1, sp, #0 + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + add r4, r2, #0 + str r0, [r1, #8] + add r7, r3, #0 + ldr r0, [r4] + add r1, r7, #0 + bl FX_Div + str r0, [r5] + ldr r0, [r4, #4] + add r1, r7, #0 + bl FX_Div + str r0, [r5, #4] + ldr r0, [r4, #8] + add r1, r7, #0 + bl FX_Div + add r2, sp, #0 + str r0, [r5, #8] + ldmia r2!, {r0, r1} + stmia r6!, {r0, r1} + ldr r0, [r2] + str r0, [r6] + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD65_021D89C4 + + thumb_func_start MOD65_021D8A08 +MOD65_021D8A08: ; 0x021D8A08 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl FUN_0200628C + mov r2, #1 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x2e + lsl r2, r2, #0x10 + bl FUN_0201681C + mov r1, #0x6f + add r0, r4, #0 + lsl r1, r1, #2 + mov r2, #0x2e + bl FUN_02006268 + mov r2, #0x6f + mov r1, #0 + lsl r2, r2, #2 + add r4, r0, #0 + bl MI_CpuFill8 + mov r0, #0x2e + str r0, [r4] + str r5, [r4, #0x10] + mov r0, #1 + pop {r3, r4, r5, pc} + thumb_func_end MOD65_021D8A08 + + thumb_func_start MOD65_021D8A40 +MOD65_021D8A40: ; 0x021D8A40 + push {r4, r5, lr} + sub sp, #0xc + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r5] + cmp r0, #2 + blt _021D8A64 + cmp r0, #5 + bgt _021D8A64 + add r0, r4, #0 + add r0, #0x40 + bl MOD65_021D9F50 + ldr r0, [r4, #0x5c] + bl FUN_02088484 +_021D8A64: + ldr r0, [r5] + cmp r0, #7 + bls _021D8A6C + b _021D8B9E +_021D8A6C: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D8A78: ; jump table + .short _021D8A88 - _021D8A78 - 2 ; case 0 + .short _021D8ACE - _021D8A78 - 2 ; case 1 + .short _021D8AE8 - _021D8A78 - 2 ; case 2 + .short _021D8B12 - _021D8A78 - 2 ; case 3 + .short _021D8B20 - _021D8A78 - 2 ; case 4 + .short _021D8B4A - _021D8A78 - 2 ; case 5 + .short _021D8B58 - _021D8A78 - 2 ; case 6 + .short _021D8B68 - _021D8A78 - 2 ; case 7 +_021D8A88: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D8BB0 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D8BB4 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + bl FUN_0200E388 + mov r0, #1 + bl FUN_0200E388 + b _021D8BA4 +_021D8ACE: + add r0, r4, #0 + bl MOD65_021D8BD8 + cmp r0, #0 + bne _021D8ADE + add sp, #0xc + mov r0, #0 + pop {r4, r5, pc} +_021D8ADE: + ldr r0, _021D8BB8 ; =MOD65_021D8C88 + add r1, r4, #0 + bl FUN_02015F10 + b _021D8BA4 +_021D8AE8: + ldr r1, [r4, #4] + add r0, r1, #1 + str r0, [r4, #4] + cmp r1, #4 + bge _021D8AF8 + add sp, #0xc + mov r0, #0 + pop {r4, r5, pc} +_021D8AF8: + mov r0, #0 + str r0, [r4, #4] + mov r1, #6 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r2, [r4] + add r3, r0, #0 + str r2, [sp, #8] + add r2, r1, #0 + bl FUN_0200E1D0 + b _021D8BA4 +_021D8B12: + bl FUN_0200E308 + cmp r0, #0 + bne _021D8BA4 + add sp, #0xc + mov r0, #0 + pop {r4, r5, pc} +_021D8B20: + add r0, r4, #0 + bl MOD65_021D9074 + cmp r0, #0 + bne _021D8B30 + add sp, #0xc + mov r0, #0 + pop {r4, r5, pc} +_021D8B30: + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + b _021D8BA4 +_021D8B4A: + bl FUN_0200E308 + cmp r0, #0 + bne _021D8BA4 + add sp, #0xc + mov r0, #0 + pop {r4, r5, pc} +_021D8B58: + add r0, r4, #0 + bl MOD65_021D8C30 + cmp r0, #0 + bne _021D8BA4 + add sp, #0xc + mov r0, #0 + pop {r4, r5, pc} +_021D8B68: + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D8BB0 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D8BB4 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + b _021D8BA4 +_021D8B9E: + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021D8BA4: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_021D8BB0: .word 0xFFFFE0FF +_021D8BB4: .word 0x04001000 +_021D8BB8: .word MOD65_021D8C88 + thumb_func_end MOD65_021D8A40 + + thumb_func_start MOD65_021D8BBC +MOD65_021D8BBC: ; 0x021D8BBC + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, r5, #0 + bl FUN_0200627C + ldr r0, [r4] + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD65_021D8BBC + + thumb_func_start MOD65_021D8BD8 +MOD65_021D8BD8: ; 0x021D8BD8 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #4] + cmp r1, #0 + beq _021D8BEC + cmp r1, #1 + beq _021D8BF8 + cmp r1, #2 + beq _021D8C04 + b _021D8C24 +_021D8BEC: + bl MOD65_021D8CD8 + add r0, r4, #0 + bl MOD65_021D8D90 + b _021D8C24 +_021D8BF8: + bl MOD65_021D8EC4 + add r0, r4, #0 + bl MOD65_021D8E68 + b _021D8C24 +_021D8C04: + bl MOD65_021D8F34 + add r0, r4, #0 + add r1, r4, #0 + ldr r2, [r4] + add r0, #0x40 + add r1, #0x30 + bl MOD65_021D9E98 + add r0, r4, #0 + bl MOD65_021D8FB0 + mov r0, #0 + str r0, [r4, #4] + mov r0, #1 + pop {r4, pc} +_021D8C24: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD65_021D8BD8 + + thumb_func_start MOD65_021D8C30 +MOD65_021D8C30: ; 0x021D8C30 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #4] + cmp r1, #3 + bhi _021D8C7C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D8C46: ; jump table + .short _021D8C4E - _021D8C46 - 2 ; case 0 + .short _021D8C62 - _021D8C46 - 2 ; case 1 + .short _021D8C6E - _021D8C46 - 2 ; case 2 + .short _021D8C74 - _021D8C46 - 2 ; case 3 +_021D8C4E: + bl MOD65_021D9054 + add r0, r4, #0 + add r0, #0x40 + bl MOD65_021D9F8C + add r0, r4, #0 + bl MOD65_021D8FA4 + b _021D8C7C +_021D8C62: + bl MOD65_021D8EB0 + add r0, r4, #0 + bl MOD65_021D8F08 + b _021D8C7C +_021D8C6E: + bl MOD65_021D8D68 + b _021D8C7C +_021D8C74: + mov r0, #0 + str r0, [r4, #4] + mov r0, #1 + pop {r4, pc} +_021D8C7C: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD65_021D8C30 + + thumb_func_start MOD65_021D8C88 +MOD65_021D8C88: ; 0x021D8C88 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x68] + bl FUN_0201AB60 + ldr r0, [r4, #0x44] + bl FUN_020081C4 + bl FUN_0200BC30 + bl FUN_0201C30C + ldr r3, _021D8CB0 ; =0x027E0000 + ldr r1, _021D8CB4 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + nop +_021D8CB0: .word 0x027E0000 +_021D8CB4: .word 0x00003FF8 + thumb_func_end MOD65_021D8C88 + + thumb_func_start MOD65_021D8CB8 +MOD65_021D8CB8: ; 0x021D8CB8 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D8CD4 ; =0x021DA3A0 + add r3, sp, #0 + mov r2, #5 +_021D8CC2: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D8CC2 + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D8CD4: .word 0x021DA3A0 + thumb_func_end MOD65_021D8CB8 + + thumb_func_start MOD65_021D8CD8 +MOD65_021D8CD8: ; 0x021D8CD8 + push {r4, r5, r6, r7, lr} + sub sp, #0x6c + add r5, r0, #0 + bl MOD65_021D8CB8 + ldr r0, [r5] + bl FUN_02016B94 + add r3, sp, #8 + ldr r4, _021D8D5C ; =0x021DA35C + str r0, [r5, #0x68] + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r4, _021D8D60 ; =0x021DA3C8 + add r3, sp, #0x18 + mov r2, #0xa +_021D8D04: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D8D04 + ldr r1, _021D8D64 ; =0x021DA350 + ldr r0, [r4] + ldrb r2, [r1] + str r0, [r3] + add r0, sp, #4 + strb r2, [r0] + ldrb r2, [r1, #1] + ldrb r1, [r1, #2] + add r4, sp, #4 + strb r2, [r0, #1] + strb r1, [r0, #2] + mov r0, #0 + str r0, [sp] + add r6, sp, #0x18 +_021D8D28: + ldrb r7, [r4] + ldr r0, [r5, #0x68] + add r2, r6, #0 + add r1, r7, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r5, #0x68] + add r1, r7, #0 + bl FUN_02018744 + ldr r3, [r5] + add r0, r7, #0 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r0, [sp] + add r4, r4, #1 + add r0, r0, #1 + add r6, #0x1c + str r0, [sp] + cmp r0, #3 + blt _021D8D28 + add sp, #0x6c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D8D5C: .word 0x021DA35C +_021D8D60: .word 0x021DA3C8 +_021D8D64: .word 0x021DA350 + thumb_func_end MOD65_021D8CD8 + + thumb_func_start MOD65_021D8D68 +MOD65_021D8D68: ; 0x021D8D68 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #1 +_021D8D6E: + lsl r1, r4, #0x18 + ldr r0, [r5, #0x68] + lsr r1, r1, #0x18 + bl FUN_020178A0 + add r4, r4, #1 + cmp r4, #3 + blt _021D8D6E + ldr r0, [r5, #0x68] + mov r1, #4 + bl FUN_020178A0 + ldr r0, [r5, #0x68] + bl FUN_02016A18 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD65_021D8D68 + + thumb_func_start MOD65_021D8D90 +MOD65_021D8D90: ; 0x021D8D90 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r1, [r5] + mov r0, #0x57 + bl FUN_02006670 + add r4, r0, #0 + mov r0, #2 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x68] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x57 + bl FUN_02079B60 + mov r0, #3 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x68] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x57 + bl FUN_02079B60 + mov r1, #0 + str r1, [sp] + mov r0, #2 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x20 + str r0, [sp, #0xc] + str r1, [sp, #0x10] + ldr r0, [r5, #0x68] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x57 + bl FUN_02079B60 + mov r0, #1 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xa0 + str r0, [sp, #0xc] + mov r0, #0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x68] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x57 + bl FUN_02079B60 + mov r0, #4 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x68] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x57 + bl FUN_02079B60 + mov r0, #5 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x68] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x57 + bl FUN_02079B60 + add r0, r4, #0 + bl FUN_020066F4 + ldr r0, [r5, #0x68] + mov r1, #2 + bl FUN_0201AC68 + ldr r0, [r5, #0x68] + mov r1, #4 + bl FUN_0201AC68 + add sp, #0x14 + pop {r4, r5, pc} + thumb_func_end MOD65_021D8D90 + + thumb_func_start MOD65_021D8E68 +MOD65_021D8E68: ; 0x021D8E68 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + add r1, r4, #0 + ldr r0, [r4, #0x68] + ldr r2, _021D8EAC ; =0x021DA354 + add r1, #0x6c + bl FUN_02019150 + add r0, r4, #0 + add r0, #0x6c + mov r1, #0 + bl FUN_02019620 + ldr r0, [r4, #0x10] + mov r1, #1 + ldrb r0, [r0, #0xb] + add r2, r1, #0 + mov r3, #0xe + str r0, [sp] + ldr r0, [r4] + str r0, [sp, #4] + ldr r0, [r4, #0x68] + bl FUN_0200CD68 + mov r1, #0x1e + ldr r2, [r4] + mov r0, #0 + lsl r1, r1, #4 + bl FUN_02002EEC + add sp, #8 + pop {r4, pc} + nop +_021D8EAC: .word 0x021DA354 + thumb_func_end MOD65_021D8E68 + + thumb_func_start MOD65_021D8EB0 +MOD65_021D8EB0: ; 0x021D8EB0 + push {r4, lr} + add r4, r0, #0 + add r0, #0x6c + bl FUN_02019570 + add r4, #0x6c + add r0, r4, #0 + bl FUN_02019178 + pop {r4, pc} + thumb_func_end MOD65_021D8EB0 + + thumb_func_start MOD65_021D8EC4 +MOD65_021D8EC4: ; 0x021D8EC4 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r2, _021D8F04 ; =0x0000019B + ldr r3, [r6] + mov r0, #0 + mov r1, #0x1a + bl FUN_0200A86C + str r0, [r6, #0x18] + ldr r2, [r6] + mov r0, #1 + mov r1, #0x40 + bl FUN_0200AA90 + str r0, [r6, #0x1c] + ldr r1, [r6] + mov r0, #0x40 + bl FUN_020219F4 + str r0, [r6, #0x20] + mov r4, #0 + add r5, r6, #0 +_021D8EF0: + ldr r0, [r6, #0x18] + add r1, r4, #0 + bl FUN_0200A914 + str r0, [r5, #0x24] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #3 + blt _021D8EF0 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8F04: .word 0x0000019B + thumb_func_end MOD65_021D8EC4 + + thumb_func_start MOD65_021D8F08 +MOD65_021D8F08: ; 0x021D8F08 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_021D8F10: + ldr r0, [r5, #0x24] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #3 + blt _021D8F10 + ldr r0, [r6, #0x20] + bl FUN_02021A20 + ldr r0, [r6, #0x1c] + bl FUN_0200AB18 + ldr r0, [r6, #0x18] + bl FUN_0200A8B8 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD65_021D8F08 + + thumb_func_start MOD65_021D8F34 +MOD65_021D8F34: ; 0x021D8F34 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x10] + mov r1, #5 + ldr r0, [r0] + mov r2, #0 + str r0, [r4, #0x30] + ldr r0, [r4, #0x10] + ldr r0, [r0] + bl FUN_020671BC + strh r0, [r4, #0x34] + ldr r0, [r4, #0x10] + ldr r0, [r0] + bl FUN_020689E0 + add r1, r4, #0 + add r1, #0x37 + strb r0, [r1] + ldr r0, [r4, #0x10] + ldr r0, [r0] + bl FUN_02068854 + add r1, r4, #0 + add r1, #0x36 + strb r0, [r1] + ldrh r0, [r4, #0x34] + mov r1, #0x1c + bl FUN_02068678 + mov r1, #1 + eor r1, r0 + add r0, r4, #0 + add r0, #0x38 + strb r1, [r0] + ldr r1, [r4] + mov r0, #0xc + bl FUN_020219F4 + str r0, [r4, #0x3c] + ldr r0, [r4, #0x10] + ldr r2, [r4, #0x3c] + ldr r0, [r0] + mov r1, #0x76 + bl FUN_020671BC + add r1, r4, #0 + ldr r0, [r4, #0x10] + add r1, #0x36 + ldrb r1, [r1] + ldr r0, [r0, #4] + bl FUN_020881D0 + add r4, #0x39 + strb r0, [r4] + pop {r4, pc} + thumb_func_end MOD65_021D8F34 + + thumb_func_start MOD65_021D8FA4 +MOD65_021D8FA4: ; 0x021D8FA4 + ldr r3, _021D8FAC ; =FUN_02021A20 + ldr r0, [r0, #0x3c] + bx r3 + nop +_021D8FAC: .word FUN_02021A20 + thumb_func_end MOD65_021D8FA4 + + thumb_func_start MOD65_021D8FB0 +MOD65_021D8FB0: ; 0x021D8FB0 + push {r3, r4, r5, r6, lr} + sub sp, #0x44 + add r4, r0, #0 + ldr r1, [r4] + mov r0, #0x20 + bl FUN_0201C24C + ldr r0, [r4] + bl FUN_0200BB14 + add r2, sp, #0x24 + ldr r5, _021D904C ; =0x021DA380 + str r0, [r4, #0x7c] + ldmia r5!, {r0, r1} + add r3, r2, #0 + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + ldr r6, _021D9050 ; =0x021DA36C + stmia r2!, {r0, r1} + add r5, sp, #0x10 + ldmia r6!, {r0, r1} + add r2, r5, #0 + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldr r0, [r6] + add r1, r3, #0 + str r0, [r5] + ldr r0, [r4, #0x7c] + mov r3, #0x20 + bl FUN_0200BB6C + ldr r0, [r4] + bl FUN_0200A064 + mov r0, #0 + str r0, [sp] + mov r1, #2 + ldr r0, [r4] + add r2, r1, #0 + mov r3, #1 + bl FUN_02088320 + str r0, [r4, #0x5c] + mov r1, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + str r1, [sp, #8] + str r1, [sp, #0xc] + ldr r1, [r4, #0x10] + ldr r0, [r4, #0x5c] + ldrh r1, [r1, #8] + mov r2, #0x64 + mov r3, #0x5a + bl FUN_02088490 + str r0, [r4, #0x60] + ldr r0, [r0, #4] + mov r1, #0 + bl FUN_0200C644 + bl FUN_02030F40 + cmp r0, #0 + beq _021D9040 + bl FUN_02033E74 +_021D9040: + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x44 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D904C: .word 0x021DA380 +_021D9050: .word 0x021DA36C + thumb_func_end MOD65_021D8FB0 + + thumb_func_start MOD65_021D9054 +MOD65_021D9054: ; 0x021D9054 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x5c] + ldr r1, [r4, #0x60] + bl FUN_02088694 + ldr r0, [r4, #0x5c] + bl FUN_02088360 + ldr r0, [r4, #0x7c] + bl FUN_0200BD04 + bl FUN_0201C29C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD65_021D9054 + + thumb_func_start MOD65_021D9074 +MOD65_021D9074: ; 0x021D9074 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #4] + cmp r1, #8 + bhi _021D90F4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D908A: ; jump table + .short _021D909C - _021D908A - 2 ; case 0 + .short _021D90A8 - _021D908A - 2 ; case 1 + .short _021D90B4 - _021D908A - 2 ; case 2 + .short _021D90C0 - _021D908A - 2 ; case 3 + .short _021D90CC - _021D908A - 2 ; case 4 + .short _021D90D8 - _021D908A - 2 ; case 5 + .short _021D90E4 - _021D908A - 2 ; case 6 + .short _021D90EC - _021D908A - 2 ; case 7 + .short _021D90F4 - _021D908A - 2 ; case 8 +_021D909C: + add r1, r4, #0 + add r1, #0x80 + bl MOD65_021D9150 + str r0, [r4, #4] + b _021D90FC +_021D90A8: + add r1, r4, #0 + add r1, #0x80 + bl MOD65_021D922C + str r0, [r4, #4] + b _021D90FC +_021D90B4: + add r1, r4, #0 + add r1, #0x80 + bl MOD65_021D923C + str r0, [r4, #4] + b _021D90FC +_021D90C0: + add r1, r4, #0 + add r1, #0x80 + bl MOD65_021D926C + str r0, [r4, #4] + b _021D90FC +_021D90CC: + add r1, r4, #0 + add r1, #0x80 + bl MOD65_021D9284 + str r0, [r4, #4] + b _021D90FC +_021D90D8: + add r1, r4, #0 + add r1, #0x80 + bl MOD65_021D92B4 + str r0, [r4, #4] + b _021D90FC +_021D90E4: + bl MOD65_021D92C4 + str r0, [r4, #4] + b _021D90FC +_021D90EC: + bl MOD65_021D9338 + str r0, [r4, #4] + b _021D90FC +_021D90F4: + mov r0, #0 + str r0, [r4, #4] + mov r0, #1 + pop {r4, pc} +_021D90FC: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD65_021D9074 + + thumb_func_start MOD65_021D9100 +MOD65_021D9100: ; 0x021D9100 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r2, #0 + add r3, r5, #0 + add r0, r1, #0 + mov r2, #0x1c + add r3, #0xcc + mul r0, r2 + add r4, r3, r0 + add r0, r4, #0 + mov r1, #0 + bl MI_CpuFill8 + str r5, [r4, #0x14] + add r0, r6, #0 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + str r0, [r4, #0x18] + ldr r0, [r5, #4] + add r0, r0, #1 + str r0, [r5, #4] + pop {r4, r5, r6, pc} + thumb_func_end MOD65_021D9100 + + thumb_func_start MOD65_021D9130 +MOD65_021D9130: ; 0x021D9130 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x18] + bl FUN_0200CAB4 + ldr r1, [r4, #0x14] + mov r2, #0x1c + ldr r0, [r1, #4] + sub r0, r0, #1 + str r0, [r1, #4] + add r0, r4, #0 + mov r1, #0 + bl MI_CpuFill8 + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD65_021D9130 + + thumb_func_start MOD65_021D9150 +MOD65_021D9150: ; 0x021D9150 + push {r3, r4, r5, lr} + sub sp, #0x18 + add r4, r1, #0 + mov r2, #0x4f + add r5, r0, #0 + add r0, r4, #0 + mov r1, #0 + lsl r2, r2, #2 + bl MI_CpuFill8 + ldr r0, [r5, #0x60] + mov r2, #0x18 + ldr r0, [r0, #4] + ldr r1, [r0] + add r0, r4, #0 + add r0, #0xc4 + str r1, [r0] + ldr r1, [r5, #0x58] + add r0, r4, #0 + add r0, #0xc8 + str r1, [r0] + add r5, #0x39 + ldrb r0, [r5] + mov r1, #2 + lsl r1, r1, #0x12 + str r0, [r4, #8] + str r2, [r4] + mov r0, #0xe + str r1, [r4, #0xc] + lsl r0, r0, #0x10 + str r0, [r4, #0x10] + str r1, [r4, #0x18] + lsl r0, r2, #0xe + str r0, [r4, #0x1c] + lsr r0, r1, #7 + str r0, [r4, #0x30] + str r0, [r4, #0x34] + lsr r0, r1, #8 + str r0, [r4, #0x3c] + str r0, [r4, #0x40] + add r1, r4, #0 + str r2, [r4, #0x64] + mov r0, #0 + str r0, [r4, #0x60] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, #0xc + bl FUN_02020044 + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xc + add r1, #0x18 + add r2, sp, #0xc + bl VEC_Subtract + add r1, r4, #0 + mov r3, #6 + add r0, sp, #0 + add r1, #0x48 + add r2, sp, #0xc + lsl r3, r3, #0xe + bl MOD65_021D89C4 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #1 + bl FUN_020200EC + add r0, r4, #0 + add r0, #0xc4 + add r1, r4, #0 + ldr r0, [r0] + add r1, #0x30 + bl FUN_02020064 + ldr r2, _021D921C ; =MOD65_021D9380 + add r0, r4, #0 + mov r1, #0 + bl MOD65_021D9100 + ldr r2, _021D9220 ; =MOD65_021D94AC + add r0, r4, #0 + mov r1, #1 + bl MOD65_021D9100 + ldr r2, _021D9224 ; =MOD65_021D967C + add r0, r4, #0 + mov r1, #2 + bl MOD65_021D9100 + ldr r2, _021D9228 ; =MOD65_021D97C4 + add r0, r4, #0 + mov r1, #3 + bl MOD65_021D9100 + mov r0, #1 + add sp, #0x18 + pop {r3, r4, r5, pc} + nop +_021D921C: .word MOD65_021D9380 +_021D9220: .word MOD65_021D94AC +_021D9224: .word MOD65_021D967C +_021D9228: .word MOD65_021D97C4 + thumb_func_end MOD65_021D9150 + + thumb_func_start MOD65_021D922C +MOD65_021D922C: ; 0x021D922C + ldr r0, [r1, #4] + cmp r0, #0 + beq _021D9236 + mov r0, #1 + bx lr +_021D9236: + mov r0, #2 + bx lr + .align 2, 0 + thumb_func_end MOD65_021D922C + + thumb_func_start MOD65_021D923C +MOD65_021D923C: ; 0x021D923C + push {r3, lr} + add r1, r0, #0 + add r0, #0x39 + ldrb r0, [r0] + cmp r0, #1 + ldr r0, [r1] + bne _021D925A + str r0, [sp] + ldrh r1, [r1, #0x34] + mov r0, #0xb + mov r2, #0 + mov r3, #0x7f + bl FUN_020056AC + b _021D9268 +_021D925A: + str r0, [sp] + ldrh r1, [r1, #0x34] + mov r0, #0 + add r2, r0, #0 + mov r3, #0x7f + bl FUN_020056AC +_021D9268: + mov r0, #3 + pop {r3, pc} + thumb_func_end MOD65_021D923C + + thumb_func_start MOD65_021D926C +MOD65_021D926C: ; 0x021D926C + push {r3, lr} + bl FUN_02005670 + cmp r0, #0 + beq _021D927A + mov r0, #3 + pop {r3, pc} +_021D927A: + mov r0, #0 + bl FUN_02005614 + mov r0, #4 + pop {r3, pc} + thumb_func_end MOD65_021D926C + + thumb_func_start MOD65_021D9284 +MOD65_021D9284: ; 0x021D9284 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + add r0, #0x68 + mov r1, #0 + mov r2, #0x5c + bl MI_CpuFill8 + ldr r2, _021D92AC ; =MOD65_021D99C0 + add r0, r4, #0 + mov r1, #0 + bl MOD65_021D9100 + ldr r2, _021D92B0 ; =MOD65_021D9B0C + add r0, r4, #0 + mov r1, #1 + bl MOD65_021D9100 + mov r0, #5 + pop {r4, pc} + .align 2, 0 +_021D92AC: .word MOD65_021D99C0 +_021D92B0: .word MOD65_021D9B0C + thumb_func_end MOD65_021D9284 + + thumb_func_start MOD65_021D92B4 +MOD65_021D92B4: ; 0x021D92B4 + ldr r0, [r1, #4] + cmp r0, #0 + beq _021D92BE + mov r0, #5 + bx lr +_021D92BE: + mov r0, #6 + bx lr + .align 2, 0 + thumb_func_end MOD65_021D92B4 + + thumb_func_start MOD65_021D92C4 +MOD65_021D92C4: ; 0x021D92C4 + push {r4, lr} + sub sp, #0x10 + mov r1, #1 + add r4, r0, #0 + add r0, #0x6c + add r2, r1, #0 + mov r3, #0xe + bl FUN_0200D0BC + add r0, r4, #0 + add r0, #0x6c + mov r1, #0xff + bl FUN_02019620 + ldr r0, [r4, #0x20] + bl FUN_02021A4C + mov r0, #1 + str r0, [sp] + mov r3, #2 + str r3, [sp, #4] + ldr r0, [r4, #0x1c] + ldr r2, [r4, #0x3c] + mov r1, #0 + bl FUN_0200ABB4 + add r2, r4, #0 + add r2, #0x39 + ldrb r2, [r2] + ldr r0, [r4, #0x1c] + ldr r1, [r4, #0x20] + lsl r2, r2, #2 + add r2, r4, r2 + ldr r2, [r2, #0x24] + bl FUN_0200B7B8 + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #0x10] + mov r1, #1 + ldrb r0, [r0, #0xa] + str r0, [sp, #4] + ldr r0, _021D9334 ; =0x0001020F + str r0, [sp, #8] + str r3, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x20] + add r0, #0x6c + bl FUN_0201BDE0 + strh r0, [r4, #0xc] + mov r0, #0 + strh r0, [r4, #0xe] + mov r0, #7 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021D9334: .word 0x0001020F + thumb_func_end MOD65_021D92C4 + + thumb_func_start MOD65_021D9338 +MOD65_021D9338: ; 0x021D9338 + push {r4, lr} + add r4, r0, #0 + ldrh r0, [r4, #0xc] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + beq _021D934E + mov r0, #7 + pop {r4, pc} +_021D934E: + ldr r0, _021D937C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021D9366 + ldrh r1, [r4, #0xe] + add r0, r1, #1 + strh r0, [r4, #0xe] + cmp r1, #0x5a + bhs _021D9366 + mov r0, #7 + pop {r4, pc} +_021D9366: + add r0, r4, #0 + add r0, #0x6c + mov r1, #1 + bl FUN_0200D0E0 + add r4, #0x6c + add r0, r4, #0 + bl FUN_02019570 + mov r0, #8 + pop {r4, pc} + .align 2, 0 +_021D937C: .word 0x021C48B8 + thumb_func_end MOD65_021D9338 + + thumb_func_start MOD65_021D9380 +MOD65_021D9380: ; 0x021D9380 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r6, r1, #0 + ldr r4, [r6, #0x14] + add r7, r0, #0 + mov r0, #0x18 + add r5, r4, #0 + str r0, [r6, #4] + mov r0, #1 + add r5, #0xc + lsl r0, r0, #0xc + str r0, [r5, #0x24] + str r0, [r5, #0x28] + lsr r0, r0, #1 + str r0, [r5, #0x30] + str r0, [r5, #0x34] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0x24 + add r1, #0x30 + add r2, sp, #0xc + bl VEC_Subtract + ldr r0, [r6, #4] + cmp r0, #0 + ble _021D93C6 + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D93D4 +_021D93C6: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D93D4: + bl _ffix + add r1, r5, #0 + add r3, r0, #0 + add r0, sp, #0 + add r1, #0x3c + add r2, sp, #0xc + bl MOD65_021D89C4 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #1 + bl FUN_020200A0 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #1 + bl FUN_020200EC + add r4, #0xc4 + add r5, #0x24 + ldr r0, [r4] + add r1, r5, #0 + bl FUN_02020064 + ldr r1, _021D9418 ; =MOD65_021D941C + add r0, r7, #0 + bl FUN_0201B6C4 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9418: .word MOD65_021D941C + thumb_func_end MOD65_021D9380 + + thumb_func_start MOD65_021D941C +MOD65_021D941C: ; 0x021D941C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r6, [r5, #0x14] + add r1, sp, #0 + mov r0, #0 + str r0, [r1] + add r4, r6, #0 + str r0, [r1, #4] + str r0, [r1, #8] + add r4, #0xc + ldr r0, [r4, #0x3c] + ldr r2, [r5, #0xc] + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + add r2, r0, #0 + mov r0, #2 + add r3, r1, #0 + mov r7, #0 + lsl r0, r0, #0xa + add r0, r2, r0 + adc r3, r7 + ldr r1, [r4, #0x24] + lsl r2, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r2 + sub r0, r1, r0 + str r0, [sp] + ldr r0, [r4, #0x40] + ldr r2, [r5, #0xc] + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r3, #2 + ldr r2, [r4, #0x28] + add r4, r7, #0 + lsl r3, r3, #0xa + add r3, r0, r3 + adc r1, r4 + lsl r0, r1, #0x14 + lsr r1, r3, #0xc + orr r1, r0 + sub r0, r2, r1 + str r0, [sp, #4] + add r0, r6, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, sp, #0 + bl FUN_02020064 + mov r0, #1 + ldr r1, [r5, #0xc] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [r5, #0xc] + ldr r0, [r5, #4] + sub r0, r0, #1 + str r0, [r5, #4] + bne _021D94A8 + add r6, #0xc4 + ldr r0, [r6] + add r1, r7, #0 + bl FUN_020200A0 + add r0, r5, #0 + bl MOD65_021D9130 +_021D94A8: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD65_021D941C + + thumb_func_start MOD65_021D94AC +MOD65_021D94AC: ; 0x021D94AC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r1, #0 + ldr r6, [r5, #0x14] + add r7, r0, #0 + add r3, sp, #0xc + mov r0, #0 + str r0, [r3] + str r0, [r3, #4] + str r0, [r3, #8] + mov r2, #0x18 + mov r1, #2 + add r4, r6, #0 + mov r0, #0xe + str r2, [r5, #4] + lsl r1, r1, #0x12 + add r4, #0xc + str r1, [r6, #0xc] + lsl r0, r0, #0x10 + str r0, [r4, #4] + str r1, [r4, #0xc] + lsl r0, r2, #0xe + str r0, [r4, #0x10] + add r0, r4, #0 + add r0, #0xc + add r1, r4, #0 + add r2, r3, #0 + bl VEC_Subtract + ldr r0, [r5, #4] + cmp r0, #0 + ble _021D94FE + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D950C +_021D94FE: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D950C: + bl _ffix + add r1, r4, #0 + add r3, r0, #0 + add r0, sp, #0 + add r1, #0x18 + add r2, sp, #0xc + bl MOD65_021D89C4 + ldr r0, [r5, #4] + cmp r0, #0 + ble _021D9536 + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D9544 +_021D9536: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D9544: + bl _ffix + add r1, r0, #0 + mov r0, #0x2d + lsl r0, r0, #0xe + bl FX_Div + str r0, [r4, #0x48] + ldr r0, [r5, #4] + cmp r0, #0 + ble _021D956C + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D957A +_021D956C: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D957A: + bl _ffix + add r1, r0, #0 + mov r0, #1 + lsl r0, r0, #0xc + bl FX_Div + add r6, #0xc4 + str r0, [r4, #0x4c] + ldr r0, [r6] + add r1, r4, #0 + bl FUN_02020044 + ldr r1, _021D95A0 ; =MOD65_021D95A4 + add r0, r7, #0 + bl FUN_0201B6C4 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D95A0: .word MOD65_021D95A4 + thumb_func_end MOD65_021D94AC + + thumb_func_start MOD65_021D95A4 +MOD65_021D95A4: ; 0x021D95A4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r6, [r5, #0x14] + ldr r2, [r5, #0xc] + add r4, r6, #0 + add r4, #0xc + ldr r0, [r4, #0x18] + asr r3, r2, #0x1f + asr r1, r0, #0x1f + bl _ll_mul + add r2, r0, #0 + mov r0, #2 + add r3, r1, #0 + mov r7, #0 + lsl r0, r0, #0xa + add r0, r2, r0 + adc r3, r7 + ldr r1, [r6, #0xc] + lsl r2, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r2 + add r0, r1, r0 + str r0, [sp] + ldr r0, [r4, #0x1c] + ldr r2, [r5, #0xc] + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + add r2, r0, #0 + mov r0, #2 + add r3, r1, #0 + lsl r0, r0, #0xa + add r0, r2, r0 + adc r3, r7 + ldr r1, [r4, #4] + lsl r2, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r2 + add r0, r1, r0 + str r0, [sp, #4] + ldr r0, [r4, #0x48] + ldr r2, [r5, #0xc] + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #2 + add r3, r7, #0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + lsl r0, r1, #4 + lsr r0, r0, #0x10 + bl FUN_0201B970 + ldr r2, _021D9678 ; =0xFFFC0000 + asr r1, r0, #0x1f + asr r3, r2, #0x12 + bl _ll_mul + add r3, r7, #0 + mov r7, #2 + add r2, r1, #0 + lsl r7, r7, #0xa + add r0, r0, r7 + adc r2, r3 + lsl r2, r2, #0x14 + lsr r0, r0, #0xc + orr r0, r2 + asr r4, r0, #0x1f + lsr r2, r0, #0x14 + lsl r4, r4, #0xc + orr r4, r2 + lsl r0, r0, #0xc + add r2, r0, r7 + adc r4, r3 + ldr r1, [sp, #4] + lsl r0, r4, #0x14 + lsr r2, r2, #0xc + orr r2, r0 + add r0, r1, r2 + add r6, #0xc4 + str r0, [sp, #4] + ldr r0, [r6] + add r1, sp, #0 + bl FUN_02020044 + ldr r1, [r5, #0xc] + lsl r0, r7, #1 + add r0, r1, r0 + str r0, [r5, #0xc] + ldr r0, [r5, #4] + sub r0, r0, #1 + str r0, [r5, #4] + bne _021D9674 + add r0, r5, #0 + bl MOD65_021D9130 +_021D9674: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D9678: .word 0xFFFC0000 + thumb_func_end MOD65_021D95A4 + + thumb_func_start MOD65_021D967C +MOD65_021D967C: ; 0x021D967C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r1, #0 + ldr r6, [r5, #0x14] + add r7, r0, #0 + add r4, r6, #0 + mov r1, #0x18 + mov r0, #1 + add r4, #0x68 + str r1, [r5, #4] + lsl r0, r0, #0xc + str r0, [r4, #0x24] + str r0, [r4, #0x28] + lsl r0, r1, #8 + str r0, [r4, #0x30] + str r0, [r4, #0x34] + add r0, r4, #0 + add r1, r4, #0 + add r0, #0x30 + add r1, #0x24 + add r2, sp, #0xc + bl VEC_Subtract + ldr r0, [r5, #4] + cmp r0, #0 + ble _021D96C2 + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D96D0 +_021D96C2: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D96D0: + bl _ffix + add r4, #0x3c + add r3, r0, #0 + add r0, sp, #0 + add r1, r4, #0 + add r2, sp, #0xc + bl MOD65_021D89C4 + add r0, r6, #0 + add r0, #0xc8 + mov r1, #0xc + add r2, r1, #0 + ldr r0, [r0] + add r2, #0xf4 + bl FUN_02007558 + add r6, #0xc8 + mov r1, #0xd + add r2, r1, #0 + ldr r0, [r6] + add r2, #0xf3 + bl FUN_02007558 + ldr r1, _021D970C ; =MOD65_021D9710 + add r0, r7, #0 + bl FUN_0201B6C4 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D970C: .word MOD65_021D9710 + thumb_func_end MOD65_021D967C + + thumb_func_start MOD65_021D9710 +MOD65_021D9710: ; 0x021D9710 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r1, #0 + ldr r6, [r5, #0x14] + ldr r0, [r5, #0xc] + add r4, r6, #0 + add r4, #0x68 + str r0, [sp, #4] + asr r7, r0, #0x1f + ldr r0, [r4, #0x40] + ldr r2, [sp, #4] + asr r1, r0, #0x1f + add r3, r7, #0 + bl _ll_mul + mov r3, #2 + add r2, r0, #0 + lsl r3, r3, #0xa + add r3, r2, r3 + ldr r2, _021D97C0 ; =0x00000000 + ldr r0, [r4, #0x28] + adc r1, r2 + lsr r2, r3, #0xc + lsl r1, r1, #0x14 + orr r2, r1 + add r0, r0, r2 + str r0, [sp] + ldr r0, [r4, #0x3c] + ldr r2, [sp, #4] + asr r1, r0, #0x1f + add r3, r7, #0 + bl _ll_mul + mov r2, #2 + add r3, r0, #0 + add r0, r6, #0 + add r7, r1, #0 + add r0, #0xc8 + lsl r2, r2, #0xa + mov r1, #0xc + add r3, r3, r2 + ldr r2, _021D97C0 ; =0x00000000 + ldr r4, [r4, #0x24] + adc r7, r2 + lsl r2, r7, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + add r2, r4, r3 + ldr r0, [r0] + asr r2, r2, #4 + bl FUN_02007558 + add r0, r6, #0 + add r0, #0xc8 + ldr r2, [sp] + ldr r0, [r0] + mov r1, #0xd + asr r2, r2, #4 + bl FUN_02007558 + mov r0, #1 + ldr r1, [r5, #0xc] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [r5, #0xc] + ldr r0, [r5, #4] + sub r0, r0, #1 + str r0, [r5, #4] + bne _021D97BA + add r0, r6, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + mov r2, #0x80 + bl FUN_02007558 + add r6, #0xc8 + ldr r0, [r6] + mov r1, #1 + mov r2, #0x60 + bl FUN_02007558 + add r0, r5, #0 + bl MOD65_021D9130 +_021D97BA: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D97C0: .word 0x00000000 + thumb_func_end MOD65_021D9710 + + thumb_func_start MOD65_021D97C4 +MOD65_021D97C4: ; 0x021D97C4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r6, r1, #0 + ldr r4, [r6, #0x14] + add r7, r0, #0 + mov r0, #0x18 + mov r1, #2 + add r5, r4, #0 + str r0, [r6, #4] + lsl r1, r1, #0x12 + add r5, #0x68 + str r1, [r4, #0x68] + lsl r0, r0, #0xe + str r0, [r5, #4] + mov r0, #7 + str r1, [r5, #0xc] + lsl r0, r0, #0x10 + str r0, [r5, #0x10] + add r0, r5, #0 + add r0, #0xc + add r1, r5, #0 + add r2, sp, #0xc + bl VEC_Subtract + ldr r0, [r6, #4] + cmp r0, #0 + ble _021D980C + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D981A +_021D980C: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D981A: + bl _ffix + add r1, r5, #0 + add r3, r0, #0 + add r0, sp, #0 + add r1, #0x18 + add r2, sp, #0xc + bl MOD65_021D89C4 + add r0, r4, #0 + add r0, #0xc8 + ldr r2, [r5] + ldr r0, [r0] + mov r1, #0 + asr r2, r2, #0xc + bl FUN_02007558 + add r4, #0xc8 + ldr r2, [r5, #4] + ldr r0, [r4] + mov r1, #1 + asr r2, r2, #0xc + bl FUN_02007558 + ldr r1, _021D9858 ; =MOD65_021D985C + add r0, r7, #0 + bl FUN_0201B6C4 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9858: .word MOD65_021D985C + thumb_func_end MOD65_021D97C4 + + thumb_func_start MOD65_021D985C +MOD65_021D985C: ; 0x021D985C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r1, #0 + ldr r6, [r5, #0x14] + ldr r7, [r5, #0xc] + add r4, r6, #0 + str r0, [sp] + asr r0, r7, #0x1f + str r0, [sp, #8] + add r4, #0x68 + ldr r0, [r4, #0x1c] + ldr r3, [sp, #8] + asr r1, r0, #0x1f + add r2, r7, #0 + bl _ll_mul + mov r3, #2 + add r2, r0, #0 + lsl r3, r3, #0xa + add r3, r2, r3 + ldr r2, _021D9990 ; =0x00000000 + ldr r0, [r4, #4] + adc r1, r2 + lsr r2, r3, #0xc + lsl r1, r1, #0x14 + orr r2, r1 + add r0, r0, r2 + str r0, [sp, #4] + ldr r0, [r4, #0x18] + ldr r3, [sp, #8] + asr r1, r0, #0x1f + add r2, r7, #0 + bl _ll_mul + mov ip, r0 + ldr r2, [r6, #0x68] + add r7, r1, #0 + str r2, [sp, #0xc] + mov r2, #2 + add r0, r6, #0 + add r0, #0xc8 + mov r1, #0 + mov r3, ip + lsl r2, r2, #0xa + add r2, r3, r2 + adc r7, r1 + lsl r3, r7, #0x14 + lsr r2, r2, #0xc + orr r2, r3 + ldr r3, [sp, #0xc] + ldr r0, [r0] + add r2, r3, r2 + asr r2, r2, #0xc + bl FUN_02007558 + add r0, r6, #0 + add r0, #0xc8 + ldr r2, [sp, #4] + ldr r0, [r0] + mov r1, #1 + asr r2, r2, #0xc + bl FUN_02007558 + add r0, r4, #0 + add r0, #0x50 + ldrh r0, [r0] + sub r0, r0, #4 + add r1, r0, #0 + mul r1, r0 + mov r0, #0x10 + sub r0, r0, r1 + neg r0, r0 + cmp r0, #0 + ble _021D9902 + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D9910 +_021D9902: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D9910: + bl _ffix + ldr r2, _021D9994 ; =0x00001666 + asr r1, r0, #0x1f + mov r3, #0 + bl _ll_mul + add r3, r1, #0 + mov r1, #4 + add r7, r0, #0 + add r0, r6, #0 + add r0, #0xc8 + lsl r2, r1, #9 + add r7, r7, r2 + ldr r2, _021D9990 ; =0x00000000 + ldr r0, [r0] + adc r3, r2 + lsl r2, r3, #0x14 + lsr r3, r7, #0xc + orr r3, r2 + asr r2, r3, #0xc + bl FUN_02007558 + add r0, r4, #0 + add r0, #0x50 + ldrh r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0x50 + strh r1, [r0] + add r0, r4, #0 + add r0, #0x50 + ldrh r0, [r0] + cmp r0, #8 + bls _021D995E + add r0, r4, #0 + mov r1, #0 + add r0, #0x50 + strh r1, [r0] +_021D995E: + mov r0, #1 + ldr r1, [r5, #0xc] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [r5, #0xc] + ldr r1, [r5, #4] + sub r0, r1, #1 + str r0, [r5, #4] + cmp r1, #0 + bne _021D998C + add r6, #0xc8 + ldr r0, [r6] + mov r1, #4 + mov r2, #0 + bl FUN_02007558 + mov r0, #0 + add r4, #0x50 + strh r0, [r4] + ldr r0, [sp] + ldr r1, _021D9998 ; =MOD65_021D999C + bl FUN_0201B6C4 +_021D998C: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D9990: .word 0x00000000 +_021D9994: .word 0x00001666 +_021D9998: .word MOD65_021D999C + thumb_func_end MOD65_021D985C + + thumb_func_start MOD65_021D999C +MOD65_021D999C: ; 0x021D999C + push {r3, lr} + ldr r3, [r1, #0x14] + add r3, #0x68 + add r0, r3, #0 + add r0, #0x50 + ldrh r2, [r0] + add r0, r3, #0 + add r0, #0x50 + ldrh r0, [r0] + add r3, #0x50 + add r0, r0, #1 + strh r0, [r3] + cmp r2, #4 + blo _021D99BE + add r0, r1, #0 + bl MOD65_021D9130 +_021D99BE: + pop {r3, pc} + thumb_func_end MOD65_021D999C + + thumb_func_start MOD65_021D99C0 +MOD65_021D99C0: ; 0x021D99C0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r1, #0 + ldr r6, [r5, #0x14] + add r7, r0, #0 + add r4, r6, #0 + mov r1, #8 + mov r0, #6 + add r4, #0x68 + str r1, [r5, #4] + lsl r0, r0, #0xa + str r0, [r4, #0x24] + str r0, [r4, #0x28] + lsl r0, r1, #9 + str r0, [r4, #0x30] + str r0, [r4, #0x34] + add r0, r4, #0 + add r1, r4, #0 + add r0, #0x30 + add r1, #0x24 + add r2, sp, #0xc + bl VEC_Subtract + ldr r0, [r5, #4] + cmp r0, #0 + ble _021D9A06 + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D9A14 +_021D9A06: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D9A14: + bl _ffix + add r4, #0x3c + add r3, r0, #0 + add r0, sp, #0 + add r1, r4, #0 + add r2, sp, #0xc + bl MOD65_021D89C4 + add r0, r6, #0 + add r0, #0xc8 + mov r1, #0xc + ldr r0, [r0] + lsl r2, r1, #5 + bl FUN_02007558 + add r6, #0xc8 + mov r2, #6 + ldr r0, [r6] + mov r1, #0xd + lsl r2, r2, #6 + bl FUN_02007558 + ldr r1, _021D9A50 ; =MOD65_021D9A54 + add r0, r7, #0 + bl FUN_0201B6C4 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9A50: .word MOD65_021D9A54 + thumb_func_end MOD65_021D99C0 + + thumb_func_start MOD65_021D9A54 +MOD65_021D9A54: ; 0x021D9A54 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r1, #0 + ldr r6, [r5, #0x14] + ldr r0, [r5, #0xc] + add r4, r6, #0 + add r4, #0x68 + str r0, [sp, #4] + asr r7, r0, #0x1f + ldr r0, [r4, #0x40] + ldr r2, [sp, #4] + asr r1, r0, #0x1f + add r3, r7, #0 + bl _ll_mul + mov r3, #2 + add r2, r0, #0 + lsl r3, r3, #0xa + add r3, r2, r3 + ldr r2, _021D9B08 ; =0x00000000 + ldr r0, [r4, #0x28] + adc r1, r2 + lsr r2, r3, #0xc + lsl r1, r1, #0x14 + orr r2, r1 + add r0, r0, r2 + str r0, [sp] + ldr r0, [r4, #0x3c] + ldr r2, [sp, #4] + asr r1, r0, #0x1f + add r3, r7, #0 + bl _ll_mul + mov r2, #2 + add r3, r0, #0 + add r0, r6, #0 + add r7, r1, #0 + add r0, #0xc8 + lsl r2, r2, #0xa + mov r1, #0xc + add r3, r3, r2 + ldr r2, _021D9B08 ; =0x00000000 + ldr r4, [r4, #0x24] + adc r7, r2 + lsl r2, r7, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + add r2, r4, r3 + ldr r0, [r0] + asr r2, r2, #4 + bl FUN_02007558 + add r0, r6, #0 + add r0, #0xc8 + ldr r2, [sp] + ldr r0, [r0] + mov r1, #0xd + asr r2, r2, #4 + bl FUN_02007558 + mov r0, #1 + ldr r1, [r5, #0xc] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [r5, #0xc] + ldr r0, [r5, #4] + sub r0, r0, #1 + str r0, [r5, #4] + bne _021D9B02 + add r0, r6, #0 + add r0, #0xc8 + mov r1, #0xc + add r2, r1, #0 + ldr r0, [r0] + add r2, #0xf4 + bl FUN_02007558 + add r6, #0xc8 + mov r1, #0xd + add r2, r1, #0 + ldr r0, [r6] + add r2, #0xf3 + bl FUN_02007558 + add r0, r5, #0 + bl MOD65_021D9130 +_021D9B02: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9B08: .word 0x00000000 + thumb_func_end MOD65_021D9A54 + + thumb_func_start MOD65_021D9B0C +MOD65_021D9B0C: ; 0x021D9B0C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r1, #0 + ldr r6, [r5, #0x14] + add r7, r0, #0 + mov r0, #8 + add r4, r6, #0 + str r0, [r5, #4] + lsl r1, r0, #0x10 + mov r0, #7 + add r4, #0x68 + str r1, [r6, #0x68] + lsl r0, r0, #0x10 + str r0, [r4, #4] + mov r0, #6 + str r1, [r4, #0xc] + lsl r0, r0, #0x10 + str r0, [r4, #0x10] + add r0, r4, #0 + add r0, #0xc + add r1, r4, #0 + add r2, sp, #0xc + bl VEC_Subtract + ldr r0, [r5, #4] + cmp r0, #0 + ble _021D9B54 + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D9B62 +_021D9B54: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D9B62: + bl _ffix + add r1, r4, #0 + add r3, r0, #0 + add r0, sp, #0 + add r1, #0x18 + add r2, sp, #0xc + bl MOD65_021D89C4 + ldr r0, [r5, #4] + cmp r0, #0 + ble _021D9B8C + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D9B9A +_021D9B8C: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D9B9A: + bl _ffix + add r1, r0, #0 + mov r0, #0x2d + lsl r0, r0, #0xe + bl FX_Div + str r0, [r4, #0x48] + add r0, r6, #0 + add r0, #0xc8 + ldr r2, [r4] + ldr r0, [r0] + mov r1, #0 + asr r2, r2, #0xc + bl FUN_02007558 + add r6, #0xc8 + ldr r2, [r4, #4] + ldr r0, [r6] + mov r1, #1 + asr r2, r2, #0xc + bl FUN_02007558 + ldr r1, _021D9BD4 ; =MOD65_021D9BD8 + add r0, r7, #0 + bl FUN_0201B6C4 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D9BD4: .word MOD65_021D9BD8 + thumb_func_end MOD65_021D9B0C + + thumb_func_start MOD65_021D9BD8 +MOD65_021D9BD8: ; 0x021D9BD8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r4, r1, #0 + ldr r6, [r4, #0x14] + ldr r7, [r4, #0xc] + add r5, r6, #0 + str r0, [sp] + asr r0, r7, #0x1f + str r0, [sp, #8] + add r5, #0x68 + ldr r0, [r5, #0x1c] + ldr r3, [sp, #8] + asr r1, r0, #0x1f + add r2, r7, #0 + bl _ll_mul + mov r3, #2 + add r2, r0, #0 + lsl r3, r3, #0xa + add r3, r2, r3 + ldr r2, _021D9CD4 ; =0x00000000 + ldr r0, [r5, #4] + adc r1, r2 + lsr r2, r3, #0xc + lsl r1, r1, #0x14 + orr r2, r1 + add r0, r0, r2 + str r0, [sp, #4] + ldr r0, [r5, #0x18] + ldr r3, [sp, #8] + asr r1, r0, #0x1f + add r2, r7, #0 + bl _ll_mul + mov ip, r0 + ldr r2, [r6, #0x68] + add r7, r1, #0 + str r2, [sp, #0xc] + mov r2, #2 + add r0, r6, #0 + add r0, #0xc8 + mov r1, #0 + mov r3, ip + lsl r2, r2, #0xa + add r2, r3, r2 + adc r7, r1 + lsl r3, r7, #0x14 + lsr r2, r2, #0xc + orr r2, r3 + ldr r3, [sp, #0xc] + ldr r0, [r0] + add r2, r3, r2 + asr r2, r2, #0xc + bl FUN_02007558 + add r0, r6, #0 + add r0, #0xc8 + ldr r2, [sp, #4] + ldr r0, [r0] + mov r1, #1 + asr r2, r2, #0xc + bl FUN_02007558 + ldr r0, [r5, #0x48] + ldr r2, [r4, #0xc] + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + lsl r0, r1, #4 + lsr r0, r0, #0x10 + bl FUN_0201B970 + ldr r2, _021D9CD8 ; =0xFFFFA000 + asr r1, r0, #0x1f + asr r3, r2, #0xf + bl _ll_mul + add r5, r1, #0 + mov r1, #4 + add r3, r0, #0 + add r0, r6, #0 + add r0, #0xc8 + mov r7, #0 + lsl r2, r1, #9 + add r2, r3, r2 + adc r5, r7 + lsl r3, r5, #0x14 + lsr r2, r2, #0xc + orr r2, r3 + ldr r0, [r0] + asr r2, r2, #0xc + bl FUN_02007558 + add r2, r4, #0 + add r2, #0xc + mov r0, #1 + ldr r1, [r2] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [r2] + ldr r0, [r4, #4] + sub r0, r0, #1 + str r0, [r4, #4] + bne _021D9CCE + add r6, #0xc8 + ldr r0, [r6] + mov r1, #4 + add r2, r7, #0 + bl FUN_02007558 + ldr r0, [sp] + ldr r1, _021D9CDC ; =MOD65_021D9CE0 + bl FUN_0201B6C4 +_021D9CCE: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9CD4: .word 0x00000000 +_021D9CD8: .word 0xFFFFA000 +_021D9CDC: .word MOD65_021D9CE0 + thumb_func_end MOD65_021D9BD8 + + thumb_func_start MOD65_021D9CE0 +MOD65_021D9CE0: ; 0x021D9CE0 + push {r3, lr} + ldr r3, [r1, #4] + add r2, r3, #1 + str r2, [r1, #4] + cmp r3, #4 + blt _021D9D10 + ldr r2, [r1, #0x14] + ldr r2, [r2, #8] + cmp r2, #0 + beq _021D9CFA + cmp r2, #1 + beq _021D9D02 + b _021D9D0A +_021D9CFA: + ldr r1, _021D9D14 ; =MOD65_021D9D1C + bl FUN_0201B6C4 + pop {r3, pc} +_021D9D02: + ldr r1, _021D9D18 ; =MOD65_021D9DFC + bl FUN_0201B6C4 + pop {r3, pc} +_021D9D0A: + add r0, r1, #0 + bl MOD65_021D9130 +_021D9D10: + pop {r3, pc} + nop +_021D9D14: .word MOD65_021D9D1C +_021D9D18: .word MOD65_021D9DFC + thumb_func_end MOD65_021D9CE0 + + thumb_func_start MOD65_021D9D1C +MOD65_021D9D1C: ; 0x021D9D1C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x14] + mov r1, #0 + add r0, #0x68 + mov r2, #0x5c + bl MI_CpuFill8 + mov r0, #3 + str r0, [r4, #4] + ldr r1, _021D9D3C ; =MOD65_021D9D40 + add r0, r5, #0 + bl FUN_0201B6C4 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D9D3C: .word MOD65_021D9D40 + thumb_func_end MOD65_021D9D1C + + thumb_func_start MOD65_021D9D40 +MOD65_021D9D40: ; 0x021D9D40 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + ldr r7, [r5, #0x14] + add r4, r7, #0 + add r4, #0x68 + add r0, r4, #0 + add r0, #0x50 + ldrh r0, [r0] + sub r0, r0, #4 + add r1, r0, #0 + mul r1, r0 + mov r0, #0x10 + sub r0, r0, r1 + neg r0, r0 + cmp r0, #0 + ble _021D9D72 + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D9D80 +_021D9D72: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D9D80: + bl _ffix + ldr r2, _021D9DF4 ; =0x00001666 + asr r1, r0, #0x1f + mov r3, #0 + bl _ll_mul + add r6, r1, #0 + mov r1, #4 + add r3, r0, #0 + add r0, r7, #0 + add r0, #0xc8 + lsl r2, r1, #9 + add r3, r3, r2 + ldr r2, _021D9DF8 ; =0x00000000 + ldr r0, [r0] + adc r6, r2 + lsl r2, r6, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + asr r2, r3, #0xc + bl FUN_02007558 + add r1, r4, #0 + mov r0, #0 + add r1, #0x52 + strh r0, [r1] + add r1, r4, #0 + add r1, #0x50 + ldrh r1, [r1] + add r2, r1, #1 + add r1, r4, #0 + add r1, #0x50 + strh r2, [r1] + add r1, r4, #0 + add r1, #0x50 + ldrh r1, [r1] + cmp r1, #8 + bls _021D9DD8 + add r4, #0x50 + strh r0, [r4] + ldr r0, [r5, #4] + sub r0, r0, #1 + str r0, [r5, #4] +_021D9DD8: + ldr r0, [r5, #4] + cmp r0, #0 + bne _021D9DF0 + add r7, #0xc8 + ldr r0, [r7] + mov r1, #4 + mov r2, #0 + bl FUN_02007558 + add r0, r5, #0 + bl MOD65_021D9130 +_021D9DF0: + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9DF4: .word 0x00001666 +_021D9DF8: .word 0x00000000 + thumb_func_end MOD65_021D9D40 + + thumb_func_start MOD65_021D9DFC +MOD65_021D9DFC: ; 0x021D9DFC + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x14] + mov r1, #0 + add r0, #0x68 + mov r2, #0x5c + bl MI_CpuFill8 + mov r0, #0x20 + str r0, [r4, #4] + ldr r1, _021D9E1C ; =MOD65_021D9E20 + add r0, r5, #0 + bl FUN_0201B6C4 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D9E1C: .word MOD65_021D9E20 + thumb_func_end MOD65_021D9DFC + + thumb_func_start MOD65_021D9E20 +MOD65_021D9E20: ; 0x021D9E20 + push {r4, r5, r6, lr} + add r5, r1, #0 + ldr r6, [r5, #0x14] + add r4, r6, #0 + add r4, #0x68 + add r0, r4, #0 + add r0, #0x50 + ldrh r0, [r0] + bl FUN_0201B970 + asr r1, r0, #0x1f + lsr r2, r0, #0x13 + lsl r1, r1, #0xd + orr r1, r2 + mov r2, #2 + lsl r3, r0, #0xd + mov r0, #0 + lsl r2, r2, #0xa + add r2, r3, r2 + adc r1, r0 + lsl r1, r1, #0x14 + lsr r2, r2, #0xc + orr r2, r1 + add r1, r4, #0 + add r1, #0x50 + ldrh r3, [r1] + ldr r1, _021D9E94 ; =0x00000167 + cmp r3, r1 + bls _021D9E5C + b _021D9E64 +_021D9E5C: + add r0, r4, #0 + add r0, #0x50 + ldrh r0, [r0] + add r0, #0x5a +_021D9E64: + add r4, #0x50 + strh r0, [r4] + add r0, r6, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #3 + asr r2, r2, #0xc + bl FUN_02007558 + ldr r0, [r5, #4] + sub r0, r0, #1 + str r0, [r5, #4] + bne _021D9E90 + add r6, #0xc8 + ldr r0, [r6] + mov r1, #3 + mov r2, #0 + bl FUN_02007558 + add r0, r5, #0 + bl MOD65_021D9130 +_021D9E90: + pop {r4, r5, r6, pc} + nop +_021D9E94: .word 0x00000167 + thumb_func_end MOD65_021D9E20 + + thumb_func_start MOD65_021D9E98 +MOD65_021D9E98: ; 0x021D9E98 + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + add r4, r2, #0 + mov r1, #0 + mov r2, #0x1c + add r5, r0, #0 + bl MI_CpuFill8 + bl FUN_020BB7F4 + bl G3X_Init + bl G3X_InitMtxStack + ldr r0, _021D9F34 ; =0x04000060 + ldr r1, _021D9F38 ; =0xFFFFCFFD + ldrh r2, [r0] + ldr r3, _021D9F3C ; =0x0000CFFB + and r2, r1 + strh r2, [r0] + ldrh r2, [r0] + and r2, r3 + strh r2, [r0] + add r2, r1, #2 + ldrh r6, [r0] + add r1, r1, #2 + sub r3, #0x1c + and r6, r2 + mov r2, #8 + orr r2, r6 + strh r2, [r0] + ldrh r2, [r0] + and r2, r1 + mov r1, #0x10 + orr r1, r2 + strh r1, [r0] + ldrh r1, [r0] + and r1, r3 + strh r1, [r0] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl G3X_SetFog + mov r0, #0 + ldr r2, _021D9F40 ; =0x00007FFF + add r1, r0, #0 + mov r3, #0x3f + str r0, [sp] + bl G3X_SetClearColor + ldr r1, _021D9F44 ; =0x04000540 + mov r0, #2 + str r0, [r1] + ldr r0, _021D9F48 ; =0xBFFF0000 + str r0, [r1, #0x40] + add r0, r5, #0 + add r1, r4, #0 + bl MOD65_021D9FA0 + add r0, r5, #0 + add r1, r7, #0 + add r2, r4, #0 + bl MOD65_021DA000 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r1, _021D9F4C ; =0x04000008 + mov r0, #3 + ldrh r2, [r1] + bic r2, r0 + mov r0, #1 + orr r0, r2 + strh r0, [r1] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D9F34: .word 0x04000060 +_021D9F38: .word 0xFFFFCFFD +_021D9F3C: .word 0x0000CFFB +_021D9F40: .word 0x00007FFF +_021D9F44: .word 0x04000540 +_021D9F48: .word 0xBFFF0000 +_021D9F4C: .word 0x04000008 + thumb_func_end MOD65_021D9E98 + + thumb_func_start MOD65_021D9F50 +MOD65_021D9F50: ; 0x021D9F50 + push {r4, lr} + add r4, r0, #0 + bl FUN_020222AC + bl FUN_0201EBA4 + ldr r2, _021D9F84 ; =0x04000440 + mov r3, #0 + add r1, r2, #0 + str r3, [r2] + add r1, #0x14 + str r3, [r1] + mov r0, #2 + str r0, [r2] + str r3, [r1] + bl FUN_020B849C + bl FUN_020B02C8 + ldr r0, [r4, #4] + bl FUN_02006ED4 + ldr r0, _021D9F88 ; =0x04000540 + mov r1, #1 + str r1, [r0] + pop {r4, pc} + .align 2, 0 +_021D9F84: .word 0x04000440 +_021D9F88: .word 0x04000540 + thumb_func_end MOD65_021D9F50 + + thumb_func_start MOD65_021D9F8C +MOD65_021D9F8C: ; 0x021D9F8C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + bl FUN_0201EB70 + ldr r0, [r4, #4] + bl FUN_020072E8 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD65_021D9F8C + + thumb_func_start MOD65_021D9FA0 +MOD65_021D9FA0: ; 0x021D9FA0 + push {r4, r5, lr} + sub sp, #0x1c + ldr r5, _021D9FF8 ; =0x021DA41C + add r4, r0, #0 + add r2, r1, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x10 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, sp, #8 + str r0, [r3] + mov r0, #0 + strh r0, [r1] + strh r0, [r1, #2] + strh r0, [r1, #4] + strh r0, [r1, #6] + add r0, r2, #0 + bl FUN_0201EB64 + str r0, [r4] + mov r1, #1 + str r1, [sp] + ldr r0, [r4] + ldr r3, _021D9FFC ; =0x000005C1 + str r0, [sp, #4] + add r0, sp, #0x10 + lsl r1, r1, #0x10 + add r2, sp, #8 + bl FUN_0201ED10 + mov r1, #0x19 + ldr r2, [r4] + mov r0, #0 + lsl r1, r1, #0xe + bl FUN_0201EC94 + ldr r0, [r4] + bl FUN_0201EC88 + ldr r0, [r4] + bl FUN_0201EB8C + add sp, #0x1c + pop {r4, r5, pc} + .align 2, 0 +_021D9FF8: .word 0x021DA41C +_021D9FFC: .word 0x000005C1 + thumb_func_end MOD65_021D9FA0 + + thumb_func_start MOD65_021DA000 +MOD65_021DA000: ; 0x021DA000 + push {r4, r5, r6, lr} + sub sp, #0x20 + add r5, r0, #0 + add r0, r2, #0 + add r4, r1, #0 + bl FUN_02006D98 + str r0, [r5, #4] + ldr r1, [r4] + add r0, sp, #0x10 + mov r2, #2 + bl FUN_02068B68 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, [r5, #4] + add r1, sp, #0x10 + mov r2, #0x80 + mov r3, #0x60 + bl FUN_020073A0 + ldrb r2, [r4, #8] + mov r1, #0x23 + add r6, r0, #0 + bl FUN_02007558 + str r6, [r5, #0x18] + add sp, #0x20 + pop {r4, r5, r6, pc} + thumb_func_end MOD65_021DA000 + + .section .rodata + ; 0x021DA040 + .incbin "baserom.nds", 0x2BBF60, 0x3E8 + + .section .data + ; 0x021DA440 + .incbin "baserom.nds", 0x2BC360, 0xA0 diff --git a/arm9/modules/66/asm/module_66.s b/arm9/modules/66/asm/module_66.s new file mode 100644 index 00000000..e1053077 --- /dev/null +++ b/arm9/modules/66/asm/module_66.s @@ -0,0 +1,4216 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD66_021D74E0 +MOD66_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl FUN_0200628C + mov r2, #2 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x11 + lsl r2, r2, #0x10 + bl FUN_0201681C + add r0, r4, #0 + mov r1, #0xe4 + mov r2, #0x11 + bl FUN_02006268 + mov r1, #0 + mov r2, #0xe4 + add r4, r0, #0 + bl Call_FillMemWithValue + ldr r0, _021D7534 ; =0x00000139 + str r5, [r4, #0x2c] + ldrb r0, [r5, r0] + cmp r0, #3 + bhs _021D7516 + b _021D7518 +_021D7516: + mov r0, #0 +_021D7518: + strb r0, [r4] + mov r0, #0x4f + lsl r0, r0, #2 + ldrh r0, [r5, r0] + mov r1, #0 + add r2, r1, #0 + strh r0, [r4, #2] + mov r0, #0x11 + str r0, [r4, #4] + mov r0, #0x37 + bl FUN_0200433C + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7534: .word 0x00000139 + thumb_func_end MOD66_021D74E0 + + thumb_func_start MOD66_021D7538 +MOD66_021D7538: ; 0x021D7538 + push {r4, lr} + bl FUN_02006278 + add r4, r0, #0 + ldr r1, [r4, #8] + cmp r1, #8 + bhi _021D75AA + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7552: ; jump table + .short _021D7564 - _021D7552 - 2 ; case 0 + .short _021D756C - _021D7552 - 2 ; case 1 + .short _021D75AA - _021D7552 - 2 ; case 2 + .short _021D7574 - _021D7552 - 2 ; case 3 + .short _021D7582 - _021D7552 - 2 ; case 4 + .short _021D75AA - _021D7552 - 2 ; case 5 + .short _021D7590 - _021D7552 - 2 ; case 6 + .short _021D75A6 - _021D7552 - 2 ; case 7 + .short _021D759E - _021D7552 - 2 ; case 8 +_021D7564: + bl MOD66_021D7A88 + str r0, [r4, #8] + b _021D75AA +_021D756C: + bl MOD66_021D7AB0 + str r0, [r4, #8] + b _021D75AA +_021D7574: + bl MOD66_021D7AE8 + str r0, [r4, #8] + add r0, r4, #0 + bl MOD66_021D77C4 + b _021D75AA +_021D7582: + bl MOD66_021D7AFC + str r0, [r4, #8] + add r0, r4, #0 + bl MOD66_021D77C4 + b _021D75AA +_021D7590: + bl MOD66_021D7B38 + str r0, [r4, #8] + add r0, r4, #0 + bl MOD66_021D77C4 + b _021D75AA +_021D759E: + bl MOD66_021D7B94 + str r0, [r4, #8] + b _021D75AA +_021D75A6: + mov r0, #1 + pop {r4, pc} +_021D75AA: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD66_021D7538 + + thumb_func_start MOD66_021D75B0 +MOD66_021D75B0: ; 0x021D75B0 + push {r4, lr} + add r4, r0, #0 + bl FUN_02006278 + add r0, r4, #0 + bl FUN_0200627C + mov r0, #0x11 + bl FUN_020168D0 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD66_021D75B0 + + thumb_func_start MOD66_021D75C8 +MOD66_021D75C8: ; 0x021D75C8 + push {r4, lr} + add r4, r0, #0 + ldrb r2, [r4] + mov r1, #0x24 + add r3, r2, #0 + mul r3, r1 + ldr r1, _021D75FC ; =0x021D95E8 + ldr r1, [r1, r3] + cmp r1, #0 + beq _021D75DE + blx r1 +_021D75DE: + bl FUN_020AEEB8 + add r0, r4, #0 + bl MOD66_021D9220 + ldr r0, [r4, #0x28] + bl FUN_0201AB60 + ldr r3, _021D7600 ; =0x027E0000 + ldr r1, _021D7604 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + .align 2, 0 +_021D75FC: .word 0x021D95E8 +_021D7600: .word 0x027E0000 +_021D7604: .word 0x00003FF8 + thumb_func_end MOD66_021D75C8 + + thumb_func_start MOD66_021D7608 +MOD66_021D7608: ; 0x021D7608 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7624 ; =0x021D95A0 + add r3, sp, #0 + mov r2, #5 +_021D7612: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7612 + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7624: .word 0x021D95A0 + thumb_func_end MOD66_021D7608 + + thumb_func_start MOD66_021D7628 +MOD66_021D7628: ; 0x021D7628 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _021D763C + cmp r0, #1 + beq _021D76E4 + cmp r0, #2 + beq _021D7710 + b _021D772E +_021D763C: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7738 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D773C ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + ldr r0, [r4, #0x2c] + ldr r1, [r0] + cmp r1, #0 + bne _021D767C + ldr r0, [r0, #4] + cmp r0, #0 + bne _021D767C + mov r0, #3 + str r0, [r4, #0x20] + mov r0, #0x1b + str r0, [r4, #0x24] + b _021D7694 +_021D767C: + asr r0, r1, #4 + lsr r0, r0, #0x1b + add r0, r1, r0 + asr r0, r0, #5 + str r0, [r4, #0x20] + ldr r0, [r4, #0x2c] + ldr r1, [r0, #4] + asr r0, r1, #4 + lsr r0, r0, #0x1b + add r0, r1, r0 + asr r0, r0, #5 + str r0, [r4, #0x24] +_021D7694: + ldr r0, [r4, #0x20] + ldr r2, _021D7740 ; =0x0000017E + str r0, [r4, #0x18] + ldr r0, [r4, #0x24] + mov r1, #0x1a + str r0, [r4, #0x1c] + ldr r3, [r4, #4] + mov r0, #1 + bl FUN_0200A86C + add r1, r4, #0 + add r1, #0x80 + str r0, [r1] + mov r2, #0x8b + ldr r3, [r4, #4] + mov r0, #1 + mov r1, #0x1a + lsl r2, r2, #2 + bl FUN_0200A86C + add r1, r4, #0 + add r1, #0x84 + str r0, [r1] + ldr r1, [r4, #4] + mov r0, #0x16 + bl FUN_020219F4 + add r1, r4, #0 + add r1, #0x88 + str r0, [r1] + ldr r0, [r4, #4] + bl FUN_020345A8 + str r0, [r4, #0x30] + ldr r0, _021D7744 ; =0x021D9AA0 + ldr r1, [r4, #4] + bl MOD66_021D94A4 + str r0, [r4, #0x40] + b _021D772E +_021D76E4: + bl MOD66_021D7608 + ldr r0, [r4, #4] + bl FUN_02016B94 + str r0, [r4, #0x28] + ldr r1, [r4, #0x28] + add r0, r4, #0 + bl MOD66_021D77E4 + add r0, r4, #0 + bl MOD66_021D78B4 + bl FUN_0201CC08 + mov r0, #4 + bl FUN_0201CC24 + add r0, r4, #0 + bl MOD66_021D913C + b _021D772E +_021D7710: + ldr r0, _021D7748 ; =MOD66_021D75C8 + add r1, r4, #0 + bl FUN_02015F10 + ldrb r1, [r4] + mov r0, #0x24 + add r2, r1, #0 + mul r2, r0 + ldr r0, _021D774C ; =0x021D95D8 + ldr r0, [r0, r2] + str r0, [r4, #0x38] + mov r0, #0 + str r0, [r4, #0xc] + mov r0, #1 + pop {r4, pc} +_021D772E: + ldr r0, [r4, #0xc] + add r0, r0, #1 + str r0, [r4, #0xc] + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D7738: .word 0xFFFFE0FF +_021D773C: .word 0x04001000 +_021D7740: .word 0x0000017E +_021D7744: .word 0x021D9AA0 +_021D7748: .word MOD66_021D75C8 +_021D774C: .word 0x021D95D8 + thumb_func_end MOD66_021D7628 + + thumb_func_start MOD66_021D7750 +MOD66_021D7750: ; 0x021D7750 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_0201CD04 + mov r0, #0x1f + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #0x1f + mov r1, #0 + bl FUN_0201E74C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + add r0, r5, #0 + bl MOD66_021D91F4 + add r0, r5, #0 + bl MOD66_021D7A34 + mov r4, #0 +_021D7782: + lsl r1, r4, #0x18 + ldr r0, [r5, #0x28] + lsr r1, r1, #0x18 + bl FUN_020178A0 + add r4, r4, #1 + cmp r4, #8 + blt _021D7782 + ldr r0, [r5, #0x28] + bl FUN_02016A18 + ldr r0, [r5, #0x40] + bl MOD66_021D9544 + ldr r0, [r5, #0x30] + bl FUN_020345DC + add r0, r5, #0 + add r0, #0x88 + ldr r0, [r0] + bl FUN_02021A20 + add r0, r5, #0 + add r0, #0x84 + ldr r0, [r0] + bl FUN_0200A8B8 + add r5, #0x80 + ldr r0, [r5] + bl FUN_0200A8B8 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD66_021D7750 + + thumb_func_start MOD66_021D77C4 +MOD66_021D77C4: ; 0x021D77C4 + push {r4, lr} + add r4, r0, #0 + ldrb r2, [r4] + mov r1, #0x24 + add r3, r2, #0 + mul r3, r1 + ldr r1, _021D77E0 ; =0x021D95E0 + ldr r1, [r1, r3] + blx r1 + add r0, r4, #0 + bl MOD66_021D9214 + pop {r4, pc} + nop +_021D77E0: .word 0x021D95E0 + thumb_func_end MOD66_021D77C4 + + thumb_func_start MOD66_021D77E4 +MOD66_021D77E4: ; 0x021D77E4 + push {r4, r5, r6, r7, lr} + sub sp, #0xf4 + ldr r4, _021D78AC ; =0x021D9590 + add r3, sp, #4 + str r0, [sp] + add r6, r1, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r4, _021D78B0 ; =0x021D9634 + add r3, sp, #0x14 + mov r2, #0x1c +_021D7806: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7806 + mov r4, #0 + add r7, r4, #0 + add r5, sp, #0x14 +_021D7814: + lsl r1, r4, #0x18 + add r0, r6, #0 + lsr r1, r1, #0x18 + add r2, r5, #0 + mov r3, #0 + bl FUN_02016C18 + lsl r1, r4, #0x18 + add r0, r6, #0 + lsr r1, r1, #0x18 + add r4, r4, #1 + bl FUN_02018744 + add r7, r7, #1 + add r5, #0x1c + cmp r7, #8 + blt _021D7814 + ldr r3, [sp] + mov r0, #0 + ldr r3, [r3, #4] + mov r1, #0x20 + add r2, r0, #0 + bl FUN_02017F18 + ldr r3, [sp] + mov r0, #1 + ldr r3, [r3, #4] + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r3, [sp] + mov r0, #2 + ldr r3, [r3, #4] + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r3, [sp] + mov r0, #3 + ldr r3, [r3, #4] + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r3, [sp] + mov r0, #4 + ldr r3, [r3, #4] + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r3, [sp] + mov r0, #5 + ldr r3, [r3, #4] + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r3, [sp] + mov r0, #6 + ldr r3, [r3, #4] + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r3, [sp] + mov r0, #7 + ldr r3, [r3, #4] + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + add sp, #0xf4 + pop {r4, r5, r6, r7, pc} + nop +_021D78AC: .word 0x021D9590 +_021D78B0: .word 0x021D9634 + thumb_func_end MOD66_021D77E4 + + thumb_func_start MOD66_021D78B4 +MOD66_021D78B4: ; 0x021D78B4 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r1, [r5, #4] + mov r0, #0x11 + bl FUN_02006670 + add r4, r0, #0 + mov r0, #0x13 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x28] + ldr r1, [r5, #4] + add r2, r4, #0 + mov r3, #0x11 + bl FUN_02079B60 + mov r0, #0x14 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x28] + ldr r1, [r5, #4] + add r2, r4, #0 + mov r3, #0x11 + bl FUN_02079B60 + mov r0, #0x15 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x28] + ldr r1, [r5, #4] + add r2, r4, #0 + mov r3, #0x11 + bl FUN_02079B60 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + str r1, [sp, #0xc] + str r1, [sp, #0x10] + ldr r0, [r5, #0x28] + ldr r1, [r5, #4] + add r2, r4, #0 + mov r3, #0x11 + bl FUN_02079B60 + mov r0, #1 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x28] + ldr r1, [r5, #4] + add r2, r4, #0 + mov r3, #0x11 + bl FUN_02079B60 + ldr r0, [r5, #4] + add r3, r5, #0 + str r0, [sp] + add r0, r4, #0 + mov r1, #0x11 + mov r2, #0x18 + add r3, #0xb8 + bl FUN_02079C40 + add r1, r5, #0 + add r1, #0x98 + str r0, [r1] + ldr r0, [r5, #4] + add r3, r5, #0 + str r0, [sp] + add r0, r4, #0 + mov r1, #0x11 + mov r2, #0x16 + add r3, #0xbc + bl FUN_02079C40 + add r1, r5, #0 + add r1, #0x9c + str r0, [r1] + ldr r0, [r5, #4] + add r3, r5, #0 + str r0, [sp] + add r0, r4, #0 + mov r1, #0x11 + mov r2, #0x17 + add r3, #0xc0 + bl FUN_02079C40 + add r1, r5, #0 + add r1, #0xa0 + str r0, [r1] + ldr r0, [r5, #4] + add r3, r5, #0 + str r0, [sp] + add r0, r4, #0 + mov r1, #0x11 + mov r2, #0x19 + add r3, #0xc4 + bl FUN_02079C40 + add r1, r5, #0 + add r1, #0xa4 + str r0, [r1] + ldr r0, [r5, #4] + add r3, r5, #0 + str r0, [sp] + add r0, r4, #0 + mov r1, #0x11 + mov r2, #0x1a + add r3, #0xc8 + bl FUN_02079C40 + add r1, r5, #0 + add r1, #0xa8 + str r0, [r1] + ldr r0, [r5, #4] + add r3, r5, #0 + str r0, [sp] + add r0, r4, #0 + mov r1, #0x11 + mov r2, #0x1b + add r3, #0xcc + bl FUN_02079C40 + add r1, r5, #0 + add r1, #0xac + str r0, [r1] + ldr r0, [r5, #4] + add r3, r5, #0 + str r0, [sp] + add r0, r4, #0 + mov r1, #0x11 + mov r2, #0x1c + add r3, #0xd0 + bl FUN_02079C40 + add r1, r5, #0 + add r1, #0xb0 + str r0, [r1] + ldr r0, [r5, #4] + add r3, r5, #0 + str r0, [sp] + add r0, r4, #0 + mov r1, #0x11 + mov r2, #0x1d + add r3, #0xd4 + bl FUN_02079C40 + add r1, r5, #0 + add r1, #0xb4 + str r0, [r1] + add r0, r4, #0 + bl FUN_020066F4 + mov r1, #0x1e + ldr r2, [r5, #4] + mov r0, #0 + lsl r1, r1, #4 + bl FUN_02002ED0 + mov r1, #0x1e + ldr r2, [r5, #4] + mov r0, #4 + lsl r1, r1, #4 + bl FUN_02002ED0 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD66_021D78B4 + + thumb_func_start MOD66_021D7A34 +MOD66_021D7A34: ; 0x021D7A34 + push {r4, lr} + add r4, r0, #0 + add r0, #0xb4 + ldr r0, [r0] + bl FUN_02016A18 + add r0, r4, #0 + add r0, #0xb0 + ldr r0, [r0] + bl FUN_02016A18 + add r0, r4, #0 + add r0, #0xac + ldr r0, [r0] + bl FUN_02016A18 + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + bl FUN_02016A18 + add r0, r4, #0 + add r0, #0xa4 + ldr r0, [r0] + bl FUN_02016A18 + add r0, r4, #0 + add r0, #0xa0 + ldr r0, [r0] + bl FUN_02016A18 + add r0, r4, #0 + add r0, #0x9c + ldr r0, [r0] + bl FUN_02016A18 + add r4, #0x98 + ldr r0, [r4] + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD66_021D7A34 + + thumb_func_start MOD66_021D7A88 +MOD66_021D7A88: ; 0x021D7A88 + push {r4, lr} + add r4, r0, #0 + bl MOD66_021D7628 + cmp r0, #1 + beq _021D7A98 + mov r0, #0 + pop {r4, pc} +_021D7A98: + ldrb r2, [r4] + mov r1, #0x24 + add r0, r4, #0 + add r3, r2, #0 + mul r3, r1 + ldr r1, _021D7AAC ; =0x021D95C8 + ldr r1, [r1, r3] + blx r1 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021D7AAC: .word 0x021D95C8 + thumb_func_end MOD66_021D7A88 + + thumb_func_start MOD66_021D7AB0 +MOD66_021D7AB0: ; 0x021D7AB0 + push {r4, lr} + add r4, r0, #0 + ldrb r2, [r4] + mov r1, #0x24 + add r3, r2, #0 + mul r3, r1 + ldr r1, _021D7AE0 ; =0x021D95CC + ldr r1, [r1, r3] + blx r1 + cmp r0, #1 + beq _021D7ACA + mov r0, #1 + pop {r4, pc} +_021D7ACA: + ldrb r2, [r4] + mov r1, #0x24 + add r0, r4, #0 + add r3, r2, #0 + mul r3, r1 + ldr r1, _021D7AE4 ; =0x021D95D0 + ldr r1, [r1, r3] + blx r1 + mov r0, #3 + pop {r4, pc} + nop +_021D7AE0: .word 0x021D95CC +_021D7AE4: .word 0x021D95D0 + thumb_func_end MOD66_021D7AB0 + + thumb_func_start MOD66_021D7AE8 +MOD66_021D7AE8: ; 0x021D7AE8 + push {r3, lr} + bl FUN_0200E308 + cmp r0, #0 + beq _021D7AF6 + mov r0, #4 + pop {r3, pc} +_021D7AF6: + mov r0, #3 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD66_021D7AE8 + + thumb_func_start MOD66_021D7AFC +MOD66_021D7AFC: ; 0x021D7AFC + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x38] + blx r1 + cmp r0, #1 + beq _021D7B1C + ldrb r2, [r4] + mov r1, #0x24 + add r0, r4, #0 + add r3, r2, #0 + mul r3, r1 + ldr r1, _021D7B30 ; =0x021D95DC + ldr r1, [r1, r3] + blx r1 + mov r0, #4 + pop {r4, pc} +_021D7B1C: + ldrb r2, [r4] + mov r1, #0x24 + add r0, r4, #0 + add r3, r2, #0 + mul r3, r1 + ldr r1, _021D7B34 ; =0x021D95D4 + ldr r1, [r1, r3] + blx r1 + mov r0, #6 + pop {r4, pc} + .align 2, 0 +_021D7B30: .word 0x021D95DC +_021D7B34: .word 0x021D95D4 + thumb_func_end MOD66_021D7AFC + + thumb_func_start MOD66_021D7B38 +MOD66_021D7B38: ; 0x021D7B38 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _021D7B76 + mov r1, #0 + ldr r0, _021D7B8C ; =0x04000050 + add r2, r1, #0 + mov r3, #0x1f + str r1, [sp] + bl G2x_SetBlendAlpha_ + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + bl FUN_0200E388 + mov r0, #1 + bl FUN_0200E388 + add sp, #4 + mov r0, #8 + pop {r3, r4, pc} +_021D7B76: + ldrb r2, [r4] + mov r1, #0x24 + add r0, r4, #0 + add r3, r2, #0 + mul r3, r1 + ldr r1, _021D7B90 ; =0x021D95DC + ldr r1, [r1, r3] + blx r1 + mov r0, #6 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021D7B8C: .word 0x04000050 +_021D7B90: .word 0x021D95DC + thumb_func_end MOD66_021D7B38 + + thumb_func_start MOD66_021D7B94 +MOD66_021D7B94: ; 0x021D7B94 + push {r4, lr} + add r4, r0, #0 + ldrb r2, [r4] + mov r1, #0x24 + add r3, r2, #0 + mul r3, r1 + ldr r1, _021D7BB0 ; =0x021D95E4 + ldr r1, [r1, r3] + blx r1 + add r0, r4, #0 + bl MOD66_021D7750 + mov r0, #7 + pop {r4, pc} + .align 2, 0 +_021D7BB0: .word 0x021D95E4 + thumb_func_end MOD66_021D7B94 + + thumb_func_start MOD66_021D7BB4 +MOD66_021D7BB4: ; 0x021D7BB4 + push {r4, lr} + add r4, r0, #0 + mov r1, #0x11 + ldr r0, [r4, #4] + lsl r1, r1, #4 + bl FUN_02016998 + mov r2, #0x11 + mov r1, #0 + lsl r2, r2, #4 + str r0, [r4, #0x34] + bl Call_FillMemWithValue + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD66_021D7BB4 + + thumb_func_start MOD66_021D7BD4 +MOD66_021D7BD4: ; 0x021D7BD4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r4, [r5, #0x34] + bl MOD66_021D89B8 + ldrb r0, [r5] + cmp r0, #2 + beq _021D7BEA + add r0, r5, #0 + bl MOD66_021D8E34 +_021D7BEA: + add r0, r4, #0 + add r0, #0x9c + ldr r0, [r0] + bl MOD66_021D9350 + add r0, r5, #0 + bl MOD66_021D8670 + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #1 + pop {r3, r4, r5, pc} + thumb_func_end MOD66_021D7BD4 + + thumb_func_start MOD66_021D7C04 +MOD66_021D7C04: ; 0x021D7C04 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r4, [r5, #0x34] + ldr r1, [r4] + cmp r1, #0 + beq _021D7C16 + cmp r1, #1 + beq _021D7C60 + b _021D7CA2 +_021D7C16: + ldr r1, [r5, #0x18] + str r1, [r4, #0x18] + ldr r1, [r5, #0x1c] + str r1, [r4, #0x1c] + mov r1, #0 + mvn r1, r1 + str r1, [r4, #0x20] + ldr r1, [r4, #0x18] + lsl r2, r1, #4 + add r1, r4, #0 + sub r2, #0x68 + add r1, #0x8c + str r2, [r1] + ldr r1, [r4, #0x1c] + lsl r2, r1, #4 + add r1, r4, #0 + sub r2, #0x60 + add r1, #0x90 + str r2, [r1] + add r1, r4, #0 + add r2, r4, #0 + add r1, #0x8c + add r2, #0x90 + ldr r1, [r1] + ldr r2, [r2] + bl MOD66_021D8BF0 + add r0, r5, #0 + bl MOD66_021D8554 + ldrb r0, [r5] + cmp r0, #2 + beq _021D7CA2 + add r0, r5, #0 + bl MOD66_021D8CD0 + b _021D7CA2 +_021D7C60: + bl MOD66_021D8838 + add r0, r5, #0 + bl MOD66_021D8AF4 + ldr r0, [r5, #4] + add r1, r5, #0 + str r0, [sp] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + mov r2, #0x49 + ldr r3, [r5, #0x2c] + lsl r2, r2, #2 + add r2, r3, r2 + ldr r0, [r0] + ldr r1, [r1] + mov r3, #0x14 + bl MOD66_021D9228 + add r1, r4, #0 + add r1, #0x9c + str r0, [r1] + add r0, r5, #0 + bl MOD66_021D818C + add r0, r5, #0 + bl MOD66_021D8140 + mov r0, #0 + str r0, [r4] + mov r0, #1 + pop {r3, r4, r5, pc} +_021D7CA2: + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD66_021D7C04 + + thumb_func_start MOD66_021D7CAC +MOD66_021D7CAC: ; 0x021D7CAC + push {lr} + sub sp, #0xc + mov r3, #0 + str r3, [r0, #0x14] + mov r1, #6 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r0, [r0, #4] + mov r2, #0x25 + str r0, [sp, #8] + add r0, r1, #0 + mov r1, #0x11 + bl FUN_0200E1D0 + ldr r0, _021D7CF0 ; =0x0000068F + bl FUN_020054C8 + mov r0, #0 + bl FUN_0200E394 + mov r0, #1 + bl FUN_0200E394 + mov r1, #4 + ldr r0, _021D7CF4 ; =0x04000050 + mov r2, #8 + mov r3, #0x1c + str r1, [sp] + bl G2x_SetBlendAlpha_ + mov r0, #0 + add sp, #0xc + pop {pc} + .align 2, 0 +_021D7CF0: .word 0x0000068F +_021D7CF4: .word 0x04000050 + thumb_func_end MOD66_021D7CAC + + thumb_func_start MOD66_021D7CF8 +MOD66_021D7CF8: ; 0x021D7CF8 + push {lr} + sub sp, #0xc + mov r3, #0 + str r3, [r0, #0x14] + mov r1, #6 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r0, [r0, #4] + mov r1, #0x10 + str r0, [sp, #8] + mov r0, #2 + mov r2, #0x24 + bl FUN_0200E1D0 + mov r0, #0x69 + lsl r0, r0, #4 + bl FUN_020054C8 + mov r0, #0 + add sp, #0xc + pop {pc} + thumb_func_end MOD66_021D7CF8 + + thumb_func_start MOD66_021D7D24 +MOD66_021D7D24: ; 0x021D7D24 + push {lr} + sub sp, #0xc + mov r3, #0 + str r3, [r0, #0x14] + mov r1, #6 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r0, [r0, #4] + mov r1, #0x11 + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + bl FUN_0200E1D0 + ldr r0, _021D7D64 ; =0x0000068F + bl FUN_020054C8 + mov r0, #0 + bl FUN_0200E394 + mov r1, #4 + ldr r0, _021D7D68 ; =0x04000050 + mov r2, #8 + mov r3, #0x1c + str r1, [sp] + bl G2x_SetBlendAlpha_ + mov r0, #0 + add sp, #0xc + pop {pc} + nop +_021D7D64: .word 0x0000068F +_021D7D68: .word 0x04000050 + thumb_func_end MOD66_021D7D24 + + thumb_func_start MOD66_021D7D6C +MOD66_021D7D6C: ; 0x021D7D6C + push {lr} + sub sp, #0xc + mov r3, #0 + str r3, [r0, #0x14] + mov r1, #6 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r0, [r0, #4] + mov r1, #0x10 + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + bl FUN_0200E1D0 + mov r0, #0x69 + lsl r0, r0, #4 + bl FUN_020054C8 + mov r0, #0 + add sp, #0xc + pop {pc} + thumb_func_end MOD66_021D7D6C + + thumb_func_start MOD66_021D7D98 +MOD66_021D7D98: ; 0x021D7D98 + push {r3, lr} + ldr r1, [r0, #0x34] + ldrb r3, [r1, #0x14] + cmp r3, #1 + bhi _021D7DB6 + ldr r1, _021D7DCC ; =0x021C48B8 + ldr r2, [r1, #0x48] + mov r1, #2 + tst r1, r2 + beq _021D7DB6 + ldr r0, _021D7DD0 ; =0x000005DD + bl FUN_020054C8 + mov r0, #1 + pop {r3, pc} +_021D7DB6: + cmp r3, #1 + bls _021D7DBE + mov r0, #0 + pop {r3, pc} +_021D7DBE: + ldr r1, _021D7DCC ; =0x021C48B8 + ldr r1, [r1, #0x44] + bl MOD66_021D8054 + mov r0, #0 + pop {r3, pc} + nop +_021D7DCC: .word 0x021C48B8 +_021D7DD0: .word 0x000005DD + thumb_func_end MOD66_021D7D98 + + thumb_func_start MOD66_021D7DD4 +MOD66_021D7DD4: ; 0x021D7DD4 + push {r3, lr} + ldr r1, [r0, #0x34] + ldrb r1, [r1, #0x14] + cmp r1, #1 + bhi _021D7E0E + ldr r2, _021D7E24 ; =0x021C48B8 + ldr r3, [r2, #0x48] + mov r2, #1 + tst r2, r3 + beq _021D7DFE + bl MOD66_021D90F0 + cmp r0, #0 + beq _021D7DFA + ldr r0, _021D7E28 ; =0x000005DD + bl FUN_020054C8 + mov r0, #1 + pop {r3, pc} +_021D7DFA: + mov r0, #0 + pop {r3, pc} +_021D7DFE: + mov r2, #2 + tst r2, r3 + beq _021D7E0E + ldr r0, _021D7E28 ; =0x000005DD + bl FUN_020054C8 + mov r0, #1 + pop {r3, pc} +_021D7E0E: + cmp r1, #1 + bls _021D7E16 + mov r0, #0 + pop {r3, pc} +_021D7E16: + ldr r1, _021D7E24 ; =0x021C48B8 + ldr r1, [r1, #0x44] + bl MOD66_021D8054 + mov r0, #0 + pop {r3, pc} + nop +_021D7E24: .word 0x021C48B8 +_021D7E28: .word 0x000005DD + thumb_func_end MOD66_021D7DD4 + + thumb_func_start MOD66_021D7E2C +MOD66_021D7E2C: ; 0x021D7E2C + push {r3, lr} + ldr r2, _021D7E4C ; =0x021C48B8 + mov r1, #2 + ldr r3, [r2, #0x48] + tst r1, r3 + beq _021D7E42 + ldr r0, _021D7E50 ; =0x000005DD + bl FUN_020054C8 + mov r0, #1 + pop {r3, pc} +_021D7E42: + ldr r1, [r2, #0x44] + bl MOD66_021D8054 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021D7E4C: .word 0x021C48B8 +_021D7E50: .word 0x000005DD + thumb_func_end MOD66_021D7E2C + + thumb_func_start MOD66_021D7E54 +MOD66_021D7E54: ; 0x021D7E54 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r4, [r5, #0x34] + mov r1, #1 + ldrb r2, [r4, #0x12] + tst r1, r2 + beq _021D7E80 + ldrb r1, [r4, #0x15] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + cmp r1, #2 + blo _021D7E94 + bl MOD66_021D8140 + mov r0, #0 + strb r0, [r4, #0x12] + strh r0, [r4, #0x16] + ldrb r1, [r4, #0x15] + mov r0, #0xf + bic r1, r0 + strb r1, [r4, #0x15] + b _021D7E94 +_021D7E80: + ldrb r1, [r4, #0x10] + cmp r1, #1 + bne _021D7E94 + ldrh r1, [r4, #0x16] + cmp r1, #1 + bne _021D7E94 + ldr r2, [r4, #0x20] + mov r1, #0 + bl MOD66_021D8480 +_021D7E94: + add r0, r5, #0 + bl MOD66_021D8380 + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD66_021D7E54 + + thumb_func_start MOD66_021D7EA0 +MOD66_021D7EA0: ; 0x021D7EA0 + push {r3, lr} + add r1, r0, #0 + ldr r0, [r1, #0x34] + ldrb r1, [r1] + add r0, #0x9c + ldr r0, [r0] + bl MOD66_021D945C + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD66_021D7EA0 + + thumb_func_start MOD66_021D7EB4 +MOD66_021D7EB4: ; 0x021D7EB4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r6, r0, #0 + add r1, r6, #0 + add r1, #0x94 + ldr r5, [r1] + add r1, r6, #0 + add r1, #0x90 + ldr r7, [r1] + add r1, r6, #0 + add r1, #0x8c + ldr r1, [r1] + ldr r4, [r6, #0x34] + cmp r1, #0 + bne _021D7ED8 + add sp, #0xc + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_021D7ED8: + add r1, r6, #0 + mov r2, #0 + add r1, #0x8c + str r2, [r1] + cmp r5, #0 + bne _021D7EF8 + add r4, #0x58 + add r1, r4, #0 + bl MOD66_021D82B8 + add r0, r6, #0 + bl MOD66_021D8494 + add sp, #0xc + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_021D7EF8: + add r1, r4, #0 + add r1, #0x58 + add r2, r5, #0 + bl MOD66_021D82B8 + add r0, r6, #0 + add r0, #0x88 + ldr r0, [r0] + bl FUN_02021A4C + ldr r2, [r4, #0x18] + ldr r3, [r4, #0x1c] + add r0, r6, #0 + add r1, r7, #0 + bl MOD66_021D81B4 + ldrh r0, [r5, #4] + ldr r2, _021D7FA0 ; =0x0000013B + mov r1, #4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldrh r0, [r5, #6] + mov r3, #0xe + str r0, [sp, #4] + ldr r0, [r6, #4] + str r0, [sp, #8] + ldr r0, [r6, #0x28] + bl FUN_0200D300 + ldrh r0, [r5, #4] + cmp r0, #1 + bhi _021D7F40 + add r7, r4, #0 + add r7, #0x38 + b _021D7F44 +_021D7F40: + add r7, r4, #0 + add r7, #0x48 +_021D7F44: + str r7, [r4, #0x78] + ldrb r0, [r4, #0x15] + mov r1, #0xf0 + ldr r2, _021D7FA0 ; =0x0000013B + bic r0, r1 + ldrh r1, [r5, #4] + mov r3, #0xe + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x1c + lsr r1, r1, #0x18 + orr r0, r1 + strb r0, [r4, #0x15] + ldrh r0, [r5, #4] + mov r1, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + add r0, r7, #0 + bl FUN_0200D6F8 + add r0, r7, #0 + mov r1, #0xf + bl FUN_02019620 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r3, [sp, #8] + add r6, #0x88 + ldr r2, [r6] + add r0, r7, #0 + mov r1, #1 + bl FUN_0201BD84 + add r0, r7, #0 + bl FUN_020191D0 + add r4, #0x58 + add r0, r4, #0 + bl FUN_020191D0 + mov r0, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D7FA0: .word 0x0000013B + thumb_func_end MOD66_021D7EB4 + + thumb_func_start MOD66_021D7FA4 +MOD66_021D7FA4: ; 0x021D7FA4 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r0, #0 + add r6, r1, #0 + mov r0, #1 + sub r0, r0, r6 + ldr r1, _021D7FF4 ; =0x021D9720 + lsl r0, r0, #2 + add r0, r1, r0 + bl FUN_02020988 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + beq _021D7FC8 + cmp r6, #1 + bne _021D7FCE +_021D7FC8: + add sp, #8 + add r0, r4, #0 + pop {r4, r5, r6, pc} +_021D7FCE: + mov r1, #0x12 + add r0, sp, #4 + strh r1, [r0] + add r0, sp, #4 + str r0, [sp] + ldr r3, _021D7FF8 ; =0x021C48F8 + ldr r0, [r5, #0x28] + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #5 + bl FUN_0201AFBC + cmp r0, #0 + beq _021D7FEE + mov r4, #0 + mvn r4, r4 +_021D7FEE: + add r0, r4, #0 + add sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D7FF4: .word 0x021D9720 +_021D7FF8: .word 0x021C48F8 + thumb_func_end MOD66_021D7FA4 + + thumb_func_start MOD66_021D7FFC +MOD66_021D7FFC: ; 0x021D7FFC + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r1, [r5, #0x2c] + ldr r0, _021D8050 ; =0x00000139 + ldr r4, [r5, #0x34] + ldrb r0, [r1, r0] + cmp r0, #2 + bne _021D8010 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D8010: + bl FUN_02020A98 + cmp r0, #0 + ldrb r0, [r4, #0x14] + beq _021D803E + cmp r0, #0 + bne _021D804C + ldrb r1, [r4, #0x10] + add r0, r5, #0 + bl MOD66_021D7FA4 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _021D804C + ldrb r1, [r4, #0x10] + add r0, r5, #0 + bl MOD66_021D8E70 + mov r0, #3 + strb r0, [r4, #0x14] + mov r0, #1 + pop {r3, r4, r5, pc} +_021D803E: + cmp r0, #3 + beq _021D8046 + cmp r0, #1 + bne _021D804C +_021D8046: + ldrb r0, [r4, #0x14] + sub r0, r0, #1 + strb r0, [r4, #0x14] +_021D804C: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8050: .word 0x00000139 + thumb_func_end MOD66_021D7FFC + + thumb_func_start MOD66_021D8054 +MOD66_021D8054: ; 0x021D8054 + push {r3, r4, r5, lr} + ldr r4, [r0, #0x34] + add r5, r1, #0 + ldrb r1, [r4, #0x11] + cmp r1, #0 + beq _021D8084 + mov r0, #0xf0 + tst r0, r5 + bne _021D813C + ldrb r2, [r4, #0x15] + lsl r0, r2, #0x1c + lsr r1, r0, #0x1c + cmp r1, #1 + bne _021D813C + mov r0, #0xf + bic r2, r0 + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r0, #0xf + and r0, r1 + orr r0, r2 + strb r0, [r4, #0x15] + pop {r3, r4, r5, pc} +_021D8084: + bl MOD66_021D7FFC + cmp r0, #0 + bne _021D813C + mov r0, #0xf0 + tst r0, r5 + bne _021D80B0 + ldrb r2, [r4, #0x15] + lsl r0, r2, #0x1c + lsr r1, r0, #0x1c + cmp r1, #1 + bne _021D813C + mov r0, #0xf + bic r2, r0 + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + mov r0, #0xf + and r0, r1 + orr r0, r2 + strb r0, [r4, #0x15] + pop {r3, r4, r5, pc} +_021D80B0: + mov r0, #0x40 + tst r0, r5 + beq _021D80C8 + ldr r0, [r4, #0x1c] + cmp r0, #7 + blt _021D80C8 + sub r0, r0, #1 + str r0, [r4, #0x1c] + ldrb r1, [r4, #0x11] + mov r0, #8 + orr r0, r1 + strb r0, [r4, #0x11] +_021D80C8: + mov r0, #0x80 + tst r0, r5 + beq _021D80E0 + ldr r0, [r4, #0x1c] + cmp r0, #0x1b + bgt _021D80E0 + add r0, r0, #1 + str r0, [r4, #0x1c] + ldrb r1, [r4, #0x11] + mov r0, #4 + orr r0, r1 + strb r0, [r4, #0x11] +_021D80E0: + mov r0, #0x10 + tst r0, r5 + beq _021D80F8 + ldr r0, [r4, #0x18] + cmp r0, #0x1b + bgt _021D80F8 + add r0, r0, #1 + str r0, [r4, #0x18] + ldrb r1, [r4, #0x11] + mov r0, #1 + orr r0, r1 + strb r0, [r4, #0x11] +_021D80F8: + mov r0, #0x20 + tst r0, r5 + beq _021D8110 + ldr r0, [r4, #0x18] + cmp r0, #2 + blt _021D8110 + sub r0, r0, #1 + str r0, [r4, #0x18] + ldrb r1, [r4, #0x11] + mov r0, #2 + orr r0, r1 + strb r0, [r4, #0x11] +_021D8110: + mov r0, #3 + strb r0, [r4, #0x13] + ldrb r1, [r4, #0x11] + mov r0, #0x80 + orr r0, r1 + strb r0, [r4, #0x11] + ldrb r0, [r4, #0x12] + cmp r0, #0 + beq _021D8128 + ldrh r0, [r4, #0x16] + add r0, r0, #1 + b _021D812A +_021D8128: + mov r0, #0 +_021D812A: + strh r0, [r4, #0x16] + mov r0, #0 + strb r0, [r4, #0x12] + ldrb r1, [r4, #0x15] + mov r0, #0xf + bic r1, r0 + mov r0, #1 + orr r0, r1 + strb r0, [r4, #0x15] +_021D813C: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD66_021D8054 + + thumb_func_start MOD66_021D8140 +MOD66_021D8140: ; 0x021D8140 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r4, [r5, #0x34] + ldr r1, [r4, #0x1c] + str r1, [sp] + add r1, r4, #0 + ldr r2, [r4, #0x20] + ldr r3, [r4, #0x18] + add r1, #0x28 + bl MOD66_021D820C + add r0, r4, #0 + add r0, #0x9c + ldr r0, [r0] + ldr r1, [r4, #0x20] + ldr r2, [r4, #0x18] + ldr r3, [r4, #0x1c] + bl MOD66_021D93F4 + ldrb r0, [r4, #0x10] + cmp r0, #1 + bne _021D818A + add r1, r4, #0 + add r1, #0xa0 + ldr r1, [r1] + ldr r2, [r4, #0x20] + add r0, r5, #0 + bl MOD66_021D8480 + ldr r0, [r5, #0x28] + mov r1, #4 + bl FUN_0201AC68 + ldr r0, [r5, #0x28] + mov r1, #5 + bl FUN_0201AC68 +_021D818A: + pop {r3, r4, r5, pc} + thumb_func_end MOD66_021D8140 + + thumb_func_start MOD66_021D818C +MOD66_021D818C: ; 0x021D818C + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r4, [r5, #0x34] + ldr r0, [r4, #0x20] + str r0, [r4, #0x24] + ldr r0, [r5, #0x30] + ldr r1, [r4, #0x18] + ldr r2, [r4, #0x1c] + bl FUN_020345F0 + str r0, [r4, #0x20] + ldrh r3, [r5, #2] + ldr r0, [r5, #0x40] + ldr r1, [r4, #0x18] + ldr r2, [r4, #0x1c] + bl MOD66_021D9558 + add r4, #0xa0 + str r0, [r4] + pop {r3, r4, r5, pc} + thumb_func_end MOD66_021D818C + + thumb_func_start MOD66_021D81B4 +MOD66_021D81B4: ; 0x021D81B4 + push {r3, r4, r5, lr} + add r4, r0, #0 + cmp r1, #0 + beq _021D81CA + add r0, r1, #0 + ldr r1, [r4, #4] + add r4, #0x88 + ldr r2, [r4] + bl FUN_02064E60 + pop {r3, r4, r5, pc} +_021D81CA: + ldr r5, _021D8204 ; =0x021D97B4 + mov r1, #0 +_021D81CE: + ldrh r0, [r5] + cmp r2, r0 + bne _021D81EC + ldrh r0, [r5, #2] + cmp r3, r0 + bne _021D81EC + ldr r0, _021D8208 ; =0x021D97B8 + lsl r1, r1, #3 + ldr r0, [r0, r1] + ldr r1, [r4, #4] + add r4, #0x88 + ldr r2, [r4] + bl FUN_02064E60 + pop {r3, r4, r5, pc} +_021D81EC: + add r1, r1, #1 + add r5, #8 + cmp r1, #0xd + blo _021D81CE + ldr r1, [r4, #4] + add r4, #0x88 + ldr r2, [r4] + mov r0, #0 + bl FUN_02064E60 + pop {r3, r4, r5, pc} + nop +_021D8204: .word 0x021D97B4 +_021D8208: .word 0x021D97B8 + thumb_func_end MOD66_021D81B4 + + thumb_func_start MOD66_021D820C +MOD66_021D820C: ; 0x021D820C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + add r0, #0x88 + ldr r0, [r0] + add r4, r1, #0 + ldr r6, [r5, #0x34] + add r7, r2, #0 + str r3, [sp, #0x10] + bl FUN_02021A4C + add r0, r4, #0 + mov r1, #0 + bl FUN_02019620 + add r6, #0xa0 + ldr r0, [r6] + cmp r0, #0 + beq _021D8278 + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x28] + add r0, r5, #0 + add r1, r7, #0 + bl MOD66_021D81B4 + ldrb r0, [r5] + cmp r0, #1 + bne _021D8248 + mov r3, #0x7a + b _021D825C +_021D8248: + add r1, r5, #0 + add r1, #0x88 + mov r0, #0 + ldr r1, [r1] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xd0 + sub r0, r1, r0 + lsr r3, r0, #1 +_021D825C: + mov r0, #6 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D82B4 ; =0x00010200 + add r2, r5, #0 + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + add r2, #0x88 + ldr r2, [r2] + add r0, r4, #0 + bl FUN_0201BDE0 +_021D8278: + ldrb r0, [r5] + cmp r0, #1 + bne _021D82AA + add r5, #0x84 + ldr r0, [r5] + mov r1, #0 + bl FUN_0200A914 + add r5, r0, #0 + mov r0, #6 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D82B4 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r2, r5, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r5, #0 + bl FUN_02021A20 +_021D82AA: + add r0, r4, #0 + bl FUN_020191D0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D82B4: .word 0x00010200 + thumb_func_end MOD66_021D820C + + thumb_func_start MOD66_021D82B8 +MOD66_021D82B8: ; 0x021D82B8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + add r6, r1, #0 + add r4, r2, #0 + bne _021D82DC + add r0, r6, #0 + mov r1, #0 + bl FUN_02019620 + add r0, r6, #0 + bl FUN_020191D0 + add r0, r6, #0 + bl FUN_02019570 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} +_021D82DC: + add r0, r6, #0 + mov r1, #0 + bl FUN_02019620 + ldrh r1, [r4, #8] + ldr r0, _021D8378 ; =0x0000FFFF + cmp r1, r0 + beq _021D832C + ldr r2, [r5, #0x2c] + ldrh r0, [r4, #0x16] + add r2, #0x5c + ldrb r0, [r2, r0] + lsl r2, r0, #0x1e + lsr r2, r2, #0x1e + beq _021D8300 + lsl r0, r0, #0x1c + lsr r0, r0, #0x1e + beq _021D832C +_021D8300: + add r0, r5, #0 + add r0, #0x84 + ldr r0, [r0] + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #0xe] + mov r1, #0 + add r2, r7, #0 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D837C ; =0x00010200 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldrh r3, [r4, #0xc] + add r0, r6, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 +_021D832C: + ldrh r1, [r4, #0xa] + ldr r0, _021D8378 ; =0x0000FFFF + cmp r1, r0 + beq _021D8372 + ldr r2, [r5, #0x2c] + ldrh r0, [r4, #0x16] + add r2, #0x5c + ldrb r0, [r2, r0] + lsl r2, r0, #0x1a + lsr r2, r2, #0x1e + beq _021D8348 + lsl r0, r0, #0x18 + lsr r0, r0, #0x1e + beq _021D8372 +_021D8348: + add r5, #0x84 + ldr r0, [r5] + bl FUN_0200A914 + add r5, r0, #0 + ldrh r0, [r4, #0x12] + mov r1, #0 + add r2, r5, #0 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D837C ; =0x00010200 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldrh r3, [r4, #0x10] + add r0, r6, #0 + bl FUN_0201BDE0 + add r0, r5, #0 + bl FUN_02021A20 +_021D8372: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8378: .word 0x0000FFFF +_021D837C: .word 0x00010200 + thumb_func_end MOD66_021D82B8 + + thumb_func_start MOD66_021D8380 +MOD66_021D8380: ; 0x021D8380 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r0, #0 + ldr r5, [r6, #0x34] + mov r4, #5 + ldrb r1, [r5, #0x13] + cmp r1, #0 + beq _021D847C + sub r0, r1, #1 + strb r0, [r5, #0x13] + cmp r1, #3 + bne _021D83F0 + ldr r1, [r5, #0x18] + add r0, r4, #0 + mov r2, #7 + add r3, r1, #0 + mul r3, r2 + add r3, #0x19 + lsl r1, r3, #0x10 + ldr r3, [r5, #0x1c] + add r0, #0xff + mul r2, r3 + sub r2, #0x22 + lsl r2, r2, #0x10 + ldr r0, [r5, r0] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C6E4 + add r0, r4, #0 + add r0, #0xff + mov r1, #1 + ldr r0, [r5, r0] + lsl r1, r1, #0xc + bl FUN_020201E4 + add r0, r6, #0 + bl MOD66_021D818C + ldr r0, [r5, #0x18] + ldr r7, [r5, #0x1c] + str r0, [sp, #4] + ldr r0, [r6, #0x30] + ldr r1, [sp, #4] + add r2, r7, #0 + bl FUN_020345F0 + add r1, r5, #0 + add r2, r0, #0 + ldr r3, [sp, #4] + add r0, r6, #0 + add r1, #0x28 + str r7, [sp] + bl MOD66_021D820C + add r4, r4, #1 +_021D83F0: + ldrb r1, [r5, #0x11] + mov r0, #8 + tst r0, r1 + beq _021D8406 + add r0, r5, #0 + add r0, #0x90 + ldr r0, [r0] + sub r1, r0, r4 + add r0, r5, #0 + add r0, #0x90 + str r1, [r0] +_021D8406: + ldrb r1, [r5, #0x11] + mov r0, #4 + tst r0, r1 + beq _021D841C + add r0, r5, #0 + add r0, #0x90 + ldr r0, [r0] + add r1, r0, r4 + add r0, r5, #0 + add r0, #0x90 + str r1, [r0] +_021D841C: + ldrb r1, [r5, #0x11] + mov r0, #1 + tst r0, r1 + beq _021D8432 + add r0, r5, #0 + add r0, #0x8c + ldr r0, [r0] + add r1, r0, r4 + add r0, r5, #0 + add r0, #0x8c + str r1, [r0] +_021D8432: + ldrb r1, [r5, #0x11] + mov r0, #2 + tst r0, r1 + beq _021D8448 + add r0, r5, #0 + add r0, #0x8c + ldr r0, [r0] + sub r1, r0, r4 + add r0, r5, #0 + add r0, #0x8c + str r1, [r0] +_021D8448: + add r1, r5, #0 + add r2, r5, #0 + add r1, #0x8c + add r2, #0x90 + ldr r1, [r1] + ldr r2, [r2] + add r0, r6, #0 + bl MOD66_021D8BF0 + ldrb r0, [r5, #0x13] + cmp r0, #0 + bne _021D847C + mov r0, #1 + strb r0, [r5, #0x12] + mov r2, #0 + strb r2, [r5, #0x11] + ldr r1, [r5, #0x24] + ldr r0, [r5, #0x20] + cmp r1, r0 + beq _021D847C + add r5, #0x9c + ldr r0, [r5] + sub r1, r2, #1 + add r3, r2, #0 + bl MOD66_021D93F4 +_021D847C: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD66_021D8380 + + thumb_func_start MOD66_021D8480 +MOD66_021D8480: ; 0x021D8480 + add r3, r0, #0 + add r3, #0x90 + str r2, [r3] + add r2, r0, #0 + add r2, #0x94 + str r1, [r2] + mov r1, #1 + add r0, #0x8c + str r1, [r0] + bx lr + thumb_func_end MOD66_021D8480 + + thumb_func_start MOD66_021D8494 +MOD66_021D8494: ; 0x021D8494 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r4, [r6, #0x34] + mov r1, #0 + ldr r5, [r4, #0x78] + str r1, [r4, #0x78] + cmp r5, #0 + beq _021D84C6 + add r0, r5, #0 + bl FUN_02019620 + add r0, r5, #0 + bl FUN_02019570 + ldrb r1, [r4, #0x15] + add r0, r5, #0 + mov r2, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + bl FUN_0200D7A0 + ldr r0, [r6, #0x28] + mov r1, #4 + bl FUN_0201AC68 +_021D84C6: + pop {r4, r5, r6, pc} + thumb_func_end MOD66_021D8494 + + thumb_func_start MOD66_021D84C8 +MOD66_021D84C8: ; 0x021D84C8 + push {r3, r4, r5, r6, lr} + sub sp, #0x1c + add r4, r0, #0 + add r0, #0xcc + add r5, r1, #0 + ldr r0, [r0] + mov r1, #0xc + str r1, [sp] + mov r1, #2 + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + str r1, [sp, #8] + mov r3, #0 + str r3, [sp, #0xc] + mov r1, #7 + str r1, [sp, #0x10] + ldrh r1, [r0] + mov r2, #0xa + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #5 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [r4, #0x28] + bl FUN_020181EC + add r4, #0x84 + ldr r0, [r4] + mov r1, #1 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0 + add r1, r6, #0 + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0x50 + sub r4, r1, r0 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8550 ; =0x00010200 + add r2, r6, #0 + str r0, [sp, #8] + add r0, r5, #0 + lsr r3, r4, #1 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r5, #0 + bl FUN_020191D0 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0x1c + pop {r3, r4, r5, r6, pc} + nop +_021D8550: .word 0x00010200 + thumb_func_end MOD66_021D84C8 + + thumb_func_start MOD66_021D8554 +MOD66_021D8554: ; 0x021D8554 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r4, [r5, #0x34] + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1d + str r0, [sp, #4] + mov r3, #3 + str r3, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + mov r0, #0xea + lsl r0, r0, #2 + str r0, [sp, #0x10] + add r1, r4, #0 + ldr r0, [r5, #0x28] + add r1, #0x28 + mov r2, #1 + bl FUN_02019064 + mov r0, #3 + str r0, [sp] + mov r0, #0x15 + str r0, [sp, #4] + mov r2, #4 + add r1, r4, #0 + str r2, [sp, #8] + mov r0, #0xe + str r0, [sp, #0xc] + ldr r0, _021D8660 ; =0x000003AB + add r1, #0x38 + str r0, [sp, #0x10] + ldr r0, [r5, #0x28] + mov r3, #9 + bl FUN_02019064 + mov r0, #3 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #4] + mov r2, #4 + add r1, r4, #0 + str r2, [sp, #8] + mov r0, #0xe + str r0, [sp, #0xc] + ldr r0, _021D8664 ; =0x0000033B + add r1, #0x48 + str r0, [sp, #0x10] + ldr r0, [r5, #0x28] + mov r3, #2 + bl FUN_02019064 + mov r0, #8 + str r0, [sp] + mov r0, #0x1c + str r0, [sp, #4] + mov r0, #0xe + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _021D8668 ; =0x000001B3 + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x28] + add r1, #0x58 + mov r2, #4 + mov r3, #1 + bl FUN_02019064 + mov r0, #0 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + ldr r0, _021D866C ; =0x0000019F + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x28] + add r1, #0x68 + mov r2, #4 + mov r3, #0xb + bl FUN_02019064 + add r0, r4, #0 + add r0, #0x28 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x38 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x48 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x58 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x68 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x28 + bl FUN_020191D0 + add r0, r4, #0 + add r0, #0x38 + bl FUN_02019570 + add r0, r4, #0 + add r0, #0x48 + bl FUN_02019570 + add r0, r4, #0 + add r0, #0x58 + bl FUN_02019570 + add r4, #0x68 + add r0, r4, #0 + bl FUN_02019570 + add sp, #0x14 + pop {r4, r5, pc} + nop +_021D8660: .word 0x000003AB +_021D8664: .word 0x0000033B +_021D8668: .word 0x000001B3 +_021D866C: .word 0x0000019F + thumb_func_end MOD66_021D8554 + + thumb_func_start MOD66_021D8670 +MOD66_021D8670: ; 0x021D8670 + push {r3, r4, r5, lr} + ldr r4, [r0, #0x34] + mov r5, #0 + add r4, #0x28 +_021D8678: + lsl r0, r5, #4 + add r0, r4, r0 + bl FUN_02019178 + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #5 + blo _021D8678 + pop {r3, r4, r5, pc} + thumb_func_end MOD66_021D8670 + + thumb_func_start MOD66_021D868C +MOD66_021D868C: ; 0x021D868C + push {r4, r5, lr} + sub sp, #0x1c + add r5, r0, #0 + add r4, r1, #0 + cmp r2, #0 + beq _021D86CA + add r0, #0xd0 + ldr r0, [r0] + mov r1, #0x20 + str r1, [sp] + mov r1, #0x18 + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + mov r2, #0 + str r1, [sp, #8] + str r2, [sp, #0xc] + str r2, [sp, #0x10] + ldrh r1, [r0] + add r3, r2, #0 + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #5 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [r5, #0x28] + bl FUN_02018170 +_021D86CA: + add r0, r5, #0 + add r0, #0xcc + ldr r0, [r0] + mov r2, #6 + str r2, [sp] + mov r1, #7 + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + str r1, [sp, #8] + add r1, r4, #0 + mul r1, r2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0xc] + mov r1, #0 + str r1, [sp, #0x10] + ldrh r1, [r0] + mov r2, #0xd + mov r3, #0xa + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #5 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [r5, #0x28] + bl FUN_020181EC + add sp, #0x1c + pop {r4, r5, pc} + thumb_func_end MOD66_021D868C + + thumb_func_start MOD66_021D870C +MOD66_021D870C: ; 0x021D870C + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r0, #0 + lsl r0, r1, #2 + str r1, [sp, #0x1c] + mov r1, #6 + add r2, r0, #0 + mul r2, r1 + ldr r1, _021D8834 ; =0x021D9754 + add r3, r0, #1 + add r6, r1, r2 + mov r1, #6 + add r2, r3, #0 + mul r2, r1 + ldr r1, _021D8834 ; =0x021D9754 + mov r4, #6 + add r3, r1, r2 + add r1, r0, #2 + mul r4, r1 + ldr r1, _021D8834 ; =0x021D9754 + add r0, r0, #3 + add r4, r1, r4 + mov r1, #6 + mul r1, r0 + ldr r0, _021D8834 ; =0x021D9754 + str r1, [sp, #0x20] + add r7, r0, r1 + add r0, r5, #0 + add r0, #0xc0 + ldrb r1, [r3, #4] + ldr r0, [r0] + str r1, [sp] + ldrb r1, [r3, #5] + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + str r1, [sp, #8] + ldr r1, _021D8834 ; =0x021D9754 + ldrb r1, [r1, r2] + str r1, [sp, #0xc] + ldrb r1, [r3, #1] + str r1, [sp, #0x10] + ldrh r1, [r0] + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #2 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldrb r2, [r3, #2] + ldrb r3, [r3, #3] + ldr r0, [r5, #0x28] + bl FUN_02018170 + add r0, r5, #0 + add r0, #0xd4 + ldrb r1, [r7, #4] + ldr r0, [r0] + ldr r2, _021D8834 ; =0x021D9754 + str r1, [sp] + ldrb r1, [r7, #5] + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + str r1, [sp, #8] + ldr r1, [sp, #0x20] + ldrb r1, [r2, r1] + str r1, [sp, #0xc] + ldrb r1, [r7, #1] + str r1, [sp, #0x10] + ldrh r1, [r0] + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #6 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldrb r2, [r7, #2] + ldrb r3, [r7, #3] + ldr r0, [r5, #0x28] + bl FUN_020181EC + ldr r0, [sp, #0x1c] + cmp r0, #2 + beq _021D882E + add r0, r5, #0 + add r0, #0xc0 + ldrb r1, [r6, #4] + ldr r0, [r0] + str r1, [sp] + ldrb r1, [r6, #5] + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + str r1, [sp, #8] + ldrb r1, [r6] + str r1, [sp, #0xc] + ldrb r1, [r6, #1] + str r1, [sp, #0x10] + ldrh r1, [r0] + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #3 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldrb r2, [r6, #2] + ldrb r3, [r6, #3] + ldr r0, [r5, #0x28] + bl FUN_02018170 + add r0, r5, #0 + add r0, #0xd4 + ldrb r1, [r4, #4] + ldr r0, [r0] + str r1, [sp] + ldrb r1, [r4, #5] + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + str r1, [sp, #8] + ldrb r1, [r4] + str r1, [sp, #0xc] + ldrb r1, [r4, #1] + str r1, [sp, #0x10] + ldrh r1, [r0] + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #7 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldrb r2, [r4, #2] + ldrb r3, [r4, #3] + ldr r0, [r5, #0x28] + bl FUN_020181EC +_021D882E: + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + nop +_021D8834: .word 0x021D9754 + thumb_func_end MOD66_021D870C + + thumb_func_start MOD66_021D8838 +MOD66_021D8838: ; 0x021D8838 + push {r3, r4, lr} + sub sp, #0x1c + add r4, r0, #0 + add r0, #0xb8 + ldr r0, [r0] + mov r1, #0x20 + str r1, [sp] + mov r1, #0x18 + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + mov r2, #0 + str r1, [sp, #8] + str r2, [sp, #0xc] + str r2, [sp, #0x10] + ldrh r1, [r0] + add r3, r2, #0 + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #2 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [r4, #0x28] + bl FUN_02018170 + add r0, r4, #0 + add r0, #0xbc + mov r2, #0 + ldr r0, [r0] + mov r1, #0x20 + str r1, [sp] + mov r1, #0x18 + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + str r1, [sp, #8] + str r2, [sp, #0xc] + str r2, [sp, #0x10] + ldrh r1, [r0] + add r3, r2, #0 + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #3 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [r4, #0x28] + bl FUN_02018170 + ldrb r0, [r4] + cmp r0, #1 + beq _021D88DE + add r0, r4, #0 + add r0, #0xbc + ldr r0, [r0] + mov r1, #2 + str r1, [sp] + mov r1, #3 + add r2, r0, #0 + str r1, [sp, #4] + add r2, #0xc + str r2, [sp, #8] + mov r2, #0 + str r2, [sp, #0xc] + mov r3, #0x15 + str r3, [sp, #0x10] + ldrh r2, [r0] + lsl r2, r2, #0x15 + lsr r2, r2, #0x18 + str r2, [sp, #0x14] + ldrh r0, [r0, #2] + mov r2, #0x10 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [r4, #0x28] + bl FUN_02018170 +_021D88DE: + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD66_021D868C + add r0, r4, #0 + add r0, #0xc8 + mov r2, #0 + ldr r0, [r0] + mov r1, #0x40 + str r1, [sp] + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + str r1, [sp, #8] + str r2, [sp, #0xc] + str r2, [sp, #0x10] + ldrh r1, [r0] + add r3, r2, #0 + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #6 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [r4, #0x28] + bl FUN_020181EC + add r0, r4, #0 + add r0, #0xc4 + mov r2, #0 + ldr r0, [r0] + mov r1, #0x40 + str r1, [sp] + str r1, [sp, #4] + add r1, r0, #0 + add r1, #0xc + str r1, [sp, #8] + str r2, [sp, #0xc] + str r2, [sp, #0x10] + ldrh r1, [r0] + add r3, r2, #0 + lsl r1, r1, #0x15 + lsr r1, r1, #0x18 + str r1, [sp, #0x14] + ldrh r0, [r0, #2] + mov r1, #7 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [r4, #0x28] + bl FUN_020181EC + ldrh r1, [r4, #2] + mov r0, #1 + tst r0, r1 + beq _021D895C + add r0, r4, #0 + mov r1, #0 + bl MOD66_021D870C +_021D895C: + ldrh r1, [r4, #2] + mov r0, #2 + tst r0, r1 + beq _021D896C + add r0, r4, #0 + mov r1, #1 + bl MOD66_021D870C +_021D896C: + ldrh r1, [r4, #2] + mov r0, #4 + tst r0, r1 + beq _021D897C + add r0, r4, #0 + mov r1, #2 + bl MOD66_021D870C +_021D897C: + ldrh r1, [r4, #2] + mov r0, #8 + tst r0, r1 + beq _021D898C + add r0, r4, #0 + mov r1, #3 + bl MOD66_021D870C +_021D898C: + ldr r0, [r4, #0x28] + mov r1, #2 + bl FUN_0201AC68 + ldr r0, [r4, #0x28] + mov r1, #3 + bl FUN_0201AC68 + ldr r0, [r4, #0x28] + mov r1, #5 + bl FUN_0201AC68 + ldr r0, [r4, #0x28] + mov r1, #6 + bl FUN_0201AC68 + ldr r0, [r4, #0x28] + mov r1, #7 + bl FUN_0201AC68 + add sp, #0x1c + pop {r3, r4, pc} + thumb_func_end MOD66_021D8838 + + thumb_func_start MOD66_021D89B8 +MOD66_021D89B8: ; 0x021D89B8 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, [r4, #0x28] + mov r1, #6 + mov r2, #3 + mov r3, #0 + bl FUN_020179E0 + ldr r0, [r4, #0x28] + mov r1, #7 + mov r2, #3 + mov r3, #0 + bl FUN_020179E0 + mov r2, #0 + ldr r0, [r4, #0x28] + mov r1, #6 + add r3, r2, #0 + bl FUN_020179E0 + mov r2, #0 + ldr r0, [r4, #0x28] + mov r1, #7 + add r3, r2, #0 + bl FUN_020179E0 + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r4, #0x28] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r4, #0x28] + mov r1, #1 + add r3, r2, #0 + bl FUN_02018540 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r4, #0x28] + mov r1, #2 + add r3, r2, #0 + bl FUN_02018540 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r4, #0x28] + mov r1, #3 + add r3, r2, #0 + bl FUN_02018540 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r4, #0x28] + mov r1, #4 + add r3, r2, #0 + bl FUN_02018540 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r4, #0x28] + mov r1, #5 + add r3, r2, #0 + bl FUN_02018540 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r4, #0x28] + mov r1, #6 + add r3, r2, #0 + bl FUN_02018540 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r4, #0x28] + mov r1, #7 + add r3, r2, #0 + bl FUN_02018540 + ldr r0, [r4, #0x28] + mov r1, #0 + bl FUN_0201AC68 + ldr r0, [r4, #0x28] + mov r1, #1 + bl FUN_0201AC68 + ldr r0, [r4, #0x28] + mov r1, #2 + bl FUN_0201AC68 + ldr r0, [r4, #0x28] + mov r1, #3 + bl FUN_0201AC68 + ldr r0, [r4, #0x28] + mov r1, #4 + bl FUN_0201AC68 + ldr r0, [r4, #0x28] + mov r1, #5 + bl FUN_0201AC68 + ldr r0, [r4, #0x28] + mov r1, #6 + bl FUN_0201AC68 + ldr r0, [r4, #0x28] + mov r1, #7 + bl FUN_0201AC68 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD66_021D89B8 + + thumb_func_start MOD66_021D8AF4 +MOD66_021D8AF4: ; 0x021D8AF4 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + ldr r2, _021D8BE4 ; =0x021D981C + ldr r4, [r5, #0x34] + bl FUN_0200BE38 + mov r1, #1 + lsl r1, r1, #8 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0 + bl FUN_020200A0 + mov r1, #1 + lsl r1, r1, #8 + ldr r0, [r4, r1] + lsl r1, r1, #4 + bl FUN_020200D8 + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #0x80 + mov r2, #0x6c + bl FUN_0200C6E4 + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + ldr r2, _021D8BE8 ; =0x021D9844 + bl FUN_0200BE38 + mov r1, #0x41 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x41 + lsl r0, r0, #2 + mov r1, #2 + ldr r0, [r4, r0] + lsl r1, r1, #0xc + bl FUN_020200D8 + mov r0, #0x41 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + ldr r1, [r4, #0x18] + mov r0, #0x41 + lsl r0, r0, #2 + mov r2, #7 + add r3, r1, #0 + mul r3, r2 + add r3, #0x19 + lsl r1, r3, #0x10 + ldr r3, [r4, #0x1c] + ldr r0, [r4, r0] + mul r2, r3 + sub r2, #0x22 + lsl r2, r2, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C6E4 + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + ldr r2, _021D8BEC ; =0x021D986C + bl FUN_0200BE38 + mov r1, #0x42 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_020200A0 + ldr r1, [r5, #0x2c] + mov r0, #0x42 + ldr r1, [r1, #0xc] + lsl r0, r0, #2 + lsl r1, r1, #0x10 + ldr r0, [r4, r0] + lsr r1, r1, #0x10 + bl FUN_02020208 + ldr r1, [r4, #0x18] + mov r0, #0x42 + lsl r0, r0, #2 + mov r2, #7 + add r3, r1, #0 + mul r3, r2 + add r3, #0x19 + lsl r1, r3, #0x10 + ldr r3, [r4, #0x1c] + ldr r0, [r4, r0] + mul r2, r3 + sub r2, #0x22 + lsl r2, r2, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C6E4 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8BE4: .word 0x021D981C +_021D8BE8: .word 0x021D9844 +_021D8BEC: .word 0x021D986C + thumb_func_end MOD66_021D8AF4 + + thumb_func_start MOD66_021D8BF0 +MOD66_021D8BF0: ; 0x021D8BF0 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + cmp r4, #8 + bge _021D8C16 + ldr r0, [r5, #0x28] + mov r1, #6 + mov r2, #0 + mov r3, #8 + bl FUN_0201AEE4 + ldr r0, [r5, #0x28] + mov r1, #7 + mov r2, #0 + mov r3, #8 + bl FUN_0201AEE4 + b _021D8C4A +_021D8C16: + cmp r4, #0xf8 + ldr r0, [r5, #0x28] + ble _021D8C34 + mov r1, #6 + mov r2, #0 + mov r3, #0xf8 + bl FUN_0201AEE4 + ldr r0, [r5, #0x28] + mov r1, #7 + mov r2, #0 + mov r3, #0xf8 + bl FUN_0201AEE4 + b _021D8C4A +_021D8C34: + mov r1, #6 + mov r2, #0 + add r3, r4, #0 + bl FUN_0201AEE4 + ldr r0, [r5, #0x28] + mov r1, #7 + mov r2, #0 + add r3, r4, #0 + bl FUN_0201AEE4 +_021D8C4A: + cmp r6, #0x50 + bge _021D8C68 + ldr r0, [r5, #0x28] + mov r1, #6 + mov r2, #3 + mov r3, #0x50 + bl FUN_0201AEE4 + ldr r0, [r5, #0x28] + mov r1, #7 + mov r2, #3 + mov r3, #0x50 + bl FUN_0201AEE4 + pop {r4, r5, r6, pc} +_021D8C68: + mov r3, #0x13 + lsl r3, r3, #4 + cmp r6, r3 + ldr r0, [r5, #0x28] + ble _021D8C8A + mov r1, #6 + mov r2, #3 + bl FUN_0201AEE4 + mov r3, #0x13 + ldr r0, [r5, #0x28] + mov r1, #7 + mov r2, #3 + lsl r3, r3, #4 + bl FUN_0201AEE4 + pop {r4, r5, r6, pc} +_021D8C8A: + mov r1, #6 + mov r2, #3 + add r3, r6, #0 + bl FUN_0201AEE4 + ldr r0, [r5, #0x28] + mov r1, #7 + mov r2, #3 + add r3, r6, #0 + bl FUN_0201AEE4 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD66_021D8BF0 + + thumb_func_start MOD66_021D8CA4 +MOD66_021D8CA4: ; 0x021D8CA4 + push {r4, r5} + ldr r5, [r0] + mov r4, #0 + cmp r5, #0 + ble _021D8CC8 +_021D8CAE: + ldr r3, [r0, #0xc] + cmp r1, r3 + bne _021D8CC0 + ldr r3, [r0, #0x10] + cmp r2, r3 + bne _021D8CC0 + add r0, r4, #0 + pop {r4, r5} + bx lr +_021D8CC0: + add r4, r4, #1 + add r0, #0x10 + cmp r4, r5 + blt _021D8CAE +_021D8CC8: + mov r0, #0 + mvn r0, r0 + pop {r4, r5} + bx lr + thumb_func_end MOD66_021D8CA4 + + thumb_func_start MOD66_021D8CD0 +MOD66_021D8CD0: ; 0x021D8CD0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r6, r0, #0 + ldr r0, [r6, #0x34] + mov r1, #0 + str r0, [sp, #8] + add r0, #0xa4 + mov r2, #0x5c + bl MI_CpuFill8 + mov r0, #0 + ldr r7, [sp, #8] + str r0, [sp, #4] + str r0, [sp] + ldr r0, [sp, #8] + add r7, #0xa4 + str r0, [sp, #0xc] + add r0, #0xb0 + str r0, [sp, #0xc] +_021D8CF6: + ldr r1, [r6, #0x2c] + ldr r0, [sp] + add r1, #0x20 + add r4, r1, r0 + ldrh r0, [r4, #0xa] + cmp r0, #0 + beq _021D8DAA + ldr r1, [r4] + ldr r0, [r6, #0x20] + cmp r1, r0 + bne _021D8D14 + ldr r2, [r4, #4] + ldr r0, [r6, #0x24] + cmp r2, r0 + beq _021D8D9A +_021D8D14: + ldr r2, [r4, #4] + add r0, r7, #0 + bl MOD66_021D8CA4 + cmp r0, #0 + bge _021D8D32 + ldr r0, [sp, #8] + add r0, #0xa4 + ldr r1, [r0] + ldr r0, [r7] + lsl r1, r1, #4 + add r0, r0, #1 + str r0, [r7] + ldr r0, [sp, #0xc] + b _021D8D36 +_021D8D32: + lsl r1, r0, #4 + ldr r0, [sp, #0xc] +_021D8D36: + add r5, r0, r1 + ldr r0, [r4] + str r0, [r5] + ldr r0, [r4, #4] + str r0, [r5, #4] + ldrh r0, [r4, #8] + cmp r0, #3 + bls _021D8D4A + mov r0, #0 + b _021D8D50 +_021D8D4A: + lsl r1, r0, #1 + ldr r0, _021D8DD4 ; =0x021D9718 + ldrh r0, [r0, r1] +_021D8D50: + strh r0, [r5, #8] + ldr r0, [sp, #4] + add r1, r6, #0 + strb r0, [r5, #0xa] + mov r0, #1 + strb r0, [r5, #0xb] + add r0, r6, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + ldr r2, _021D8DD8 ; =0x021D972C + bl FUN_0200BE38 + str r0, [r5, #0xc] + ldr r2, [r5] + mov r1, #7 + mul r1, r2 + add r1, #0x19 + lsl r1, r1, #0x10 + ldr r3, [r5, #4] + mov r2, #7 + mul r2, r3 + sub r2, #0x22 + lsl r2, r2, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C6E4 + ldr r0, [r5, #0xc] + mov r1, #2 + bl FUN_02020310 + ldr r0, [r5, #0xc] + mov r1, #0 + bl FUN_020200A0 +_021D8D9A: + ldr r0, [sp] + add r0, #0xc + str r0, [sp] + ldr r0, [sp, #4] + add r0, r0, #1 + str r0, [sp, #4] + cmp r0, #5 + blt _021D8CF6 +_021D8DAA: + ldr r0, [sp, #8] + add r0, #0xa4 + ldr r0, [r0] + cmp r0, #0 + beq _021D8DD0 + sub r1, r0, #1 + ldr r0, [sp, #8] + mov r2, #1 + add r0, #0xae + strb r1, [r0] + ldr r1, [sp, #8] + ldr r0, _021D8DDC ; =MOD66_021D8DE0 + add r1, #0xa4 + bl FUN_0200CA44 + ldr r1, [sp, #8] + add r1, #0xa8 + str r1, [sp, #8] + str r0, [r1] +_021D8DD0: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8DD4: .word 0x021D9718 +_021D8DD8: .word 0x021D972C +_021D8DDC: .word MOD66_021D8DE0 + thumb_func_end MOD66_021D8CD0 + + thumb_func_start MOD66_021D8DE0 +MOD66_021D8DE0: ; 0x021D8DE0 + push {r4, lr} + add r4, r1, #0 + ldrh r0, [r4, #8] + add r1, r0, #1 + strh r1, [r4, #8] + mov r1, #0x1a + bl _s32_div_f + cmp r1, #0 + bgt _021D8E30 + ldrb r0, [r4, #0xb] + mov r1, #0 + lsl r0, r0, #4 + add r0, r4, r0 + ldr r0, [r0, #0x18] + bl FUN_020200A0 + ldrb r0, [r4, #0xa] + mov r1, #1 + lsl r0, r0, #4 + add r0, r4, r0 + ldr r0, [r0, #0x18] + bl FUN_020200A0 + ldrb r0, [r4, #0xa] + strb r0, [r4, #0xb] + ldr r1, [r4] + ldrb r2, [r4, #0xa] + sub r0, r1, #1 + add r0, r2, r0 + bl _s32_div_f + strb r1, [r4, #0xa] + mov r0, #0x41 + ldrh r1, [r4, #8] + lsl r0, r0, #2 + cmp r1, r0 + bls _021D8E30 + mov r0, #1 + strh r0, [r4, #8] +_021D8E30: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD66_021D8DE0 + + thumb_func_start MOD66_021D8E34 +MOD66_021D8E34: ; 0x021D8E34 + push {r4, r5, r6, lr} + ldr r6, [r0, #0x34] + add r0, r6, #0 + add r0, #0xa8 + ldr r0, [r0] + cmp r0, #0 + beq _021D8E46 + bl FUN_0200CAB4 +_021D8E46: + add r0, r6, #0 + add r0, #0xa4 + ldr r0, [r0] + mov r4, #0 + cmp r0, #0 + ble _021D8E6C + add r5, r6, #0 +_021D8E54: + add r0, r5, #0 + add r0, #0xbc + ldr r0, [r0] + bl FUN_0200BC14 + add r0, r6, #0 + add r0, #0xa4 + ldr r0, [r0] + add r4, r4, #1 + add r5, #0x10 + cmp r4, r0 + blt _021D8E54 +_021D8E6C: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD66_021D8E34 + + thumb_func_start MOD66_021D8E70 +MOD66_021D8E70: ; 0x021D8E70 + push {r4, lr} + add r3, r0, #0 + ldr r4, [r3, #0x34] + mov r2, #0 + str r2, [r4, #4] + str r2, [r4, #8] + cmp r1, #0 + bne _021D8E90 + ldr r0, _021D8EA0 ; =MOD66_021D8EA8 + add r1, r3, #0 + bl FUN_0200CA44 + mov r1, #0x43 + lsl r1, r1, #2 + str r0, [r4, r1] + pop {r4, pc} +_021D8E90: + ldr r0, _021D8EA4 ; =MOD66_021D9020 + add r1, r3, #0 + bl FUN_0200CA44 + mov r1, #0x43 + lsl r1, r1, #2 + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 +_021D8EA0: .word MOD66_021D8EA8 +_021D8EA4: .word MOD66_021D9020 + thumb_func_end MOD66_021D8E70 + + thumb_func_start MOD66_021D8EA8 +MOD66_021D8EA8: ; 0x021D8EA8 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r1, #0 + ldr r4, [r5, #0x34] + add r6, r0, #0 + ldr r0, [r4, #4] + cmp r0, #4 + bls _021D8EBA + b _021D9014 +_021D8EBA: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D8EC6: ; jump table + .short _021D8ED0 - _021D8EC6 - 2 ; case 0 + .short _021D8F04 - _021D8EC6 - 2 ; case 1 + .short _021D8F40 - _021D8EC6 - 2 ; case 2 + .short _021D8F7C - _021D8EC6 - 2 ; case 3 + .short _021D8FF2 - _021D8EC6 - 2 ; case 4 +_021D8ED0: + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_02020208 + ldr r0, _021D9018 ; =0x000005E4 + bl FUN_020054C8 + ldr r0, [r4, #4] + add sp, #0x10 + add r0, r0, #1 + str r0, [r4, #4] + pop {r4, r5, r6, pc} +_021D8F04: + ldr r1, [r4, #8] + mov r0, #0x1f + lsr r3, r1, #0x1f + lsl r2, r1, #0x1f + sub r2, r2, r3 + ror r2, r0 + add r0, r3, r2 + beq _021D8F2C + add r3, r1, r3 + ldr r1, _021D901C ; =0x021D9714 + asr r2, r3, #1 + ldrb r1, [r1, r2] + add r0, r5, #0 + mov r2, #0 + bl MOD66_021D868C + ldr r0, [r5, #0x28] + mov r1, #5 + bl FUN_0201AC68 +_021D8F2C: + ldr r1, [r4, #8] + add r0, r1, #1 + str r0, [r4, #8] + cmp r1, #7 + ble _021D9014 + ldr r0, [r4, #4] + add sp, #0x10 + add r0, r0, #1 + str r0, [r4, #4] + pop {r4, r5, r6, pc} +_021D8F40: + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200BC + mov r3, #0 + str r3, [r5, #0x14] + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r5, #4] + mov r1, #0xd + str r0, [sp, #8] + mov r0, #4 + mov r2, #2 + bl FUN_0200E1D0 + ldr r0, [r4, #4] + add sp, #0x10 + add r0, r0, #1 + str r0, [r4, #4] + pop {r4, r5, r6, pc} +_021D8F7C: + bl FUN_0200E308 + cmp r0, #0 + beq _021D9014 + mov r0, #1 + strb r0, [r4, #0x10] + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r5, #0x28] + mov r1, #4 + add r3, r2, #0 + bl FUN_02018540 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r5, #0x28] + mov r1, #5 + add r3, r2, #0 + bl FUN_02018540 + add r1, r4, #0 + add r0, r5, #0 + add r1, #0x68 + bl MOD66_021D84C8 + add r0, r5, #0 + bl MOD66_021D818C + add r0, r5, #0 + bl MOD66_021D8140 + mov r3, #0 + str r3, [r5, #0x14] + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r5, #4] + mov r1, #0xd + str r0, [sp, #8] + mov r0, #4 + mov r2, #5 + bl FUN_0200E1D0 + ldr r0, [r4, #4] + add sp, #0x10 + add r0, r0, #1 + str r0, [r4, #4] + pop {r4, r5, r6, pc} +_021D8FF2: + bl FUN_0200E308 + cmp r0, #0 + beq _021D9014 + mov r0, #0 + str r0, [r4, #8] + str r0, [r4, #4] + ldrb r0, [r4, #0x14] + sub r0, r0, #2 + strb r0, [r4, #0x14] + add r0, r6, #0 + bl FUN_0200CAB4 + mov r0, #0x43 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] +_021D9014: + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D9018: .word 0x000005E4 +_021D901C: .word 0x021D9714 + thumb_func_end MOD66_021D8EA8 + + thumb_func_start MOD66_021D9020 +MOD66_021D9020: ; 0x021D9020 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r1, #0 + ldr r4, [r5, #0x34] + add r6, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _021D903C + cmp r0, #1 + beq _021D9066 + cmp r0, #2 + beq _021D90C4 + add sp, #0x10 + pop {r4, r5, r6, pc} +_021D903C: + mov r3, #0 + str r3, [r5, #0x14] + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r5, #4] + mov r1, #0xd + str r0, [sp, #8] + mov r0, #4 + mov r2, #2 + bl FUN_0200E1D0 + ldr r0, _021D90EC ; =0x00000691 + bl FUN_020054C8 + ldr r0, [r4, #4] + add sp, #0x10 + add r0, r0, #1 + str r0, [r4, #4] + pop {r4, r5, r6, pc} +_021D9066: + bl FUN_0200E308 + cmp r0, #0 + beq _021D90E8 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x11 + str r0, [sp, #0xc] + ldr r0, [r5, #0x28] + mov r1, #4 + add r3, r2, #0 + bl FUN_02018540 + add r0, r5, #0 + mov r1, #0 + mov r2, #1 + bl MOD66_021D868C + ldr r0, [r5, #0x28] + mov r1, #4 + bl FUN_0201AC68 + ldr r0, [r5, #0x28] + mov r1, #5 + bl FUN_0201AC68 + mov r3, #0 + str r3, [r5, #0x14] + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r5, #4] + mov r1, #0xd + str r0, [sp, #8] + mov r0, #4 + mov r2, #5 + bl FUN_0200E1D0 + ldr r0, [r4, #4] + add sp, #0x10 + add r0, r0, #1 + str r0, [r4, #4] + pop {r4, r5, r6, pc} +_021D90C4: + bl FUN_0200E308 + cmp r0, #0 + beq _021D90E8 + mov r0, #0 + strb r0, [r4, #0x10] + str r0, [r4, #4] + str r0, [r4, #8] + ldrb r0, [r4, #0x14] + sub r0, r0, #2 + strb r0, [r4, #0x14] + add r0, r6, #0 + bl FUN_0200CAB4 + mov r0, #0x43 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] +_021D90E8: + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D90EC: .word 0x00000691 + thumb_func_end MOD66_021D9020 + + thumb_func_start MOD66_021D90F0 +MOD66_021D90F0: ; 0x021D90F0 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r4, [r5, #0x34] + add r0, r4, #0 + add r0, #0xa0 + ldr r0, [r0] + cmp r0, #0 + bne _021D9104 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D9104: + add r0, r4, #0 + add r0, #0x9c + ldr r0, [r0] + ldr r1, [r4, #0x20] + ldr r2, [r4, #0x18] + ldr r3, [r4, #0x1c] + bl MOD66_021D9390 + cmp r0, #0 + beq _021D911E + ldr r0, [r0, #0x14] + cmp r0, #0 + bne _021D9122 +_021D911E: + mov r0, #0 + pop {r3, r4, r5, pc} +_021D9122: + ldr r1, [r5, #0x2c] + mov r0, #1 + str r0, [r1, #0x10] + ldr r2, [r4, #0x18] + ldr r1, [r5, #0x2c] + str r2, [r1, #0x14] + ldr r2, [r4, #0x1c] + ldr r1, [r5, #0x2c] + str r2, [r1, #0x18] + ldr r2, [r4, #0x20] + ldr r1, [r5, #0x2c] + str r2, [r1, #0x1c] + pop {r3, r4, r5, pc} + thumb_func_end MOD66_021D90F0 + + thumb_func_start MOD66_021D913C +MOD66_021D913C: ; 0x021D913C + push {r4, r5, r6, lr} + sub sp, #0x50 + add r4, r0, #0 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + ldr r1, [r4, #4] + mov r0, #0x20 + bl FUN_0201C24C + ldr r0, [r4, #4] + bl FUN_0200BB14 + add r1, r4, #0 + add r1, #0xd8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + bl FUN_0200BB34 + add r1, r4, #0 + add r1, #0xdc + add r2, sp, #0x30 + ldr r5, _021D91E8 ; =0x021D98C4 + str r0, [r1] + ldmia r5!, {r0, r1} + add r3, r2, #0 + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + ldr r6, _021D91EC ; =0x021D9894 + stmia r2!, {r0, r1} + add r5, sp, #0x1c + ldmia r6!, {r0, r1} + add r2, r5, #0 + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldr r0, [r6] + add r1, r3, #0 + str r0, [r5] + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + mov r3, #0x20 + bl FUN_0200BB6C + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x1c + bl FUN_0200BBF0 + ldr r5, _021D91F0 ; =0x021D98A8 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + add r0, r4, #0 + add r0, #0xd8 + add r4, #0xdc + ldr r0, [r0] + ldr r1, [r4] + bl FUN_0200BD20 + add sp, #0x50 + pop {r4, r5, r6, pc} + nop +_021D91E8: .word 0x021D98C4 +_021D91EC: .word 0x021D9894 +_021D91F0: .word 0x021D98A8 + thumb_func_end MOD66_021D913C + + thumb_func_start MOD66_021D91F4 +MOD66_021D91F4: ; 0x021D91F4 + push {r4, lr} + add r4, r0, #0 + add r1, r4, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + bl FUN_0200BCE0 + add r4, #0xd8 + ldr r0, [r4] + bl FUN_0200BD04 + bl FUN_0201C29C + pop {r4, pc} + thumb_func_end MOD66_021D91F4 + + thumb_func_start MOD66_021D9214 +MOD66_021D9214: ; 0x021D9214 + ldr r3, _021D921C ; =FUN_0200BC1C + add r0, #0xdc + ldr r0, [r0] + bx r3 + .align 2, 0 +_021D921C: .word FUN_0200BC1C + thumb_func_end MOD66_021D9214 + + thumb_func_start MOD66_021D9220 +MOD66_021D9220: ; 0x021D9220 + ldr r3, _021D9224 ; =FUN_0200BC30 + bx r3 + .align 2, 0 +_021D9224: .word FUN_0200BC30 + thumb_func_end MOD66_021D9220 + + thumb_func_start MOD66_021D9228 +MOD66_021D9228: ; 0x021D9228 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + ldr r5, [sp, #0x28] + str r0, [sp] + str r1, [sp, #4] + add r0, r5, #0 + mov r1, #0xc + str r2, [sp, #8] + add r4, r3, #0 + bl FUN_02016998 + add r7, r0, #0 + mov r0, #0 + strb r0, [r7] + strb r0, [r7, #1] + strb r0, [r7, #2] + strb r0, [r7, #3] + strb r0, [r7, #4] + strb r0, [r7, #5] + strb r0, [r7, #6] + strb r0, [r7, #7] + strb r0, [r7, #8] + strb r0, [r7, #9] + strb r0, [r7, #0xa] + strb r0, [r7, #0xb] + strh r4, [r7] + ldrh r2, [r7] + mov r1, #0x1c + add r0, r5, #0 + mul r1, r2 + bl FUN_02016998 + str r0, [r7, #8] + ldrh r3, [r7] + mov r2, #0x1c + mov r1, #0 + mul r2, r3 + bl Call_FillMemWithValue + ldrh r0, [r7] + mov r6, #0 + ldr r5, _021D9344 ; =0x021D990C + cmp r0, #0 + ble _021D933E + str r6, [sp, #0xc] +_021D9282: + ldr r0, [r7, #8] + ldr r1, [sp, #0xc] + ldr r2, [r5] + add r4, r0, r1 + str r2, [r0, r1] + ldrb r0, [r5, #8] + ldr r1, [sp, #4] + ldr r2, _021D9348 ; =0x021D98E4 + strb r0, [r4, #8] + ldrb r0, [r5, #9] + strb r0, [r4, #9] + ldrh r0, [r5, #0xa] + strh r0, [r4, #0xa] + ldr r0, [r5, #0xc] + str r0, [r4, #0xc] + ldr r0, [r5, #0x10] + str r0, [r4, #0x10] + ldr r0, [sp, #8] + ldrb r0, [r0, r6] + str r0, [r4, #0x14] + ldr r0, [sp] + bl FUN_0200BE38 + str r0, [r4, #0x18] + mov r1, #1 + bl FUN_020200A0 + ldr r1, [r4, #0x14] + cmp r1, #0 + beq _021D92CC + ldrb r2, [r4, #9] + ldr r0, [r4, #0x18] + add r2, r2, #5 + add r1, r2, r1 + bl FUN_02020248 + b _021D92E2 +_021D92CC: + ldrh r1, [r4, #0xa] + ldr r0, _021D934C ; =0x0000FFFF + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #1 + bhi _021D92E2 + ldr r0, [r4, #0x18] + mov r1, #0 + bl FUN_020200A0 +_021D92E2: + ldrb r0, [r4, #8] + cmp r0, #0 + beq _021D92FA + lsl r0, r0, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _021D9308 +_021D92FA: + lsl r0, r0, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_021D9308: + bl _ffix + add r1, r0, #0 + ldr r0, [r4, #0x18] + bl FUN_020201E4 + ldr r1, [r4, #0xc] + ldr r2, [r4, #0x10] + add r1, #0x19 + sub r2, #0x22 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r4, #0x18] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C6E4 + ldr r0, [sp, #0xc] + add r5, #0x14 + add r0, #0x1c + str r0, [sp, #0xc] + add r0, r6, #1 + lsl r0, r0, #0x10 + asr r6, r0, #0x10 + ldrh r0, [r7] + cmp r6, r0 + blt _021D9282 +_021D933E: + add r0, r7, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D9344: .word 0x021D990C +_021D9348: .word 0x021D98E4 +_021D934C: .word 0x0000FFFF + thumb_func_end MOD66_021D9228 + + thumb_func_start MOD66_021D9350 +MOD66_021D9350: ; 0x021D9350 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldrh r0, [r5] + mov r6, #0 + cmp r0, #0 + ble _021D9380 + add r4, r6, #0 +_021D935E: + ldr r0, [r5, #8] + mov r1, #0 + add r7, r0, r4 + ldr r0, [r7, #0x18] + add r2, r1, #0 + bl FUN_0202008C + ldr r0, [r7, #0x18] + bl FUN_0201FFC8 + add r0, r6, #1 + lsl r0, r0, #0x10 + asr r6, r0, #0x10 + ldrh r0, [r5] + add r4, #0x1c + cmp r6, r0 + blt _021D935E +_021D9380: + ldr r0, [r5, #8] + bl FUN_02016A18 + add r0, r5, #0 + bl FUN_02016A18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD66_021D9350 + + thumb_func_start MOD66_021D9390 +MOD66_021D9390: ; 0x021D9390 + push {r3, r4, r5, r6} + ldrh r5, [r0] + mov r4, #0 + cmp r5, #0 + ble _021D93EC + ldr r0, [r0, #8] +_021D939C: + ldr r6, [r0] + cmp r6, r1 + bne _021D93E0 + ldrh r6, [r0, #0xa] + cmp r6, #3 + bhi _021D93E0 + add r6, r6, r6 + add r6, pc + ldrh r6, [r6, #6] + lsl r6, r6, #0x10 + asr r6, r6, #0x10 + add pc, r6 +_021D93B4: ; jump table + .short _021D93BC - _021D93B4 - 2 ; case 0 + .short _021D93C0 - _021D93B4 - 2 ; case 1 + .short _021D93CC - _021D93B4 - 2 ; case 2 + .short _021D93D8 - _021D93B4 - 2 ; case 3 +_021D93BC: + pop {r3, r4, r5, r6} + bx lr +_021D93C0: + cmp r2, #9 + bne _021D93E0 + cmp r3, #0x1c + bne _021D93E0 + pop {r3, r4, r5, r6} + bx lr +_021D93CC: + cmp r2, #0x1a + bne _021D93E0 + cmp r3, #0x12 + bne _021D93E0 + pop {r3, r4, r5, r6} + bx lr +_021D93D8: + cmp r2, #0x1a + bne _021D93E0 + cmp r3, #0x11 + beq _021D93EE +_021D93E0: + add r4, r4, #1 + lsl r4, r4, #0x10 + asr r4, r4, #0x10 + add r0, #0x1c + cmp r4, r5 + blt _021D939C +_021D93EC: + mov r0, #0 +_021D93EE: + pop {r3, r4, r5, r6} + bx lr + .align 2, 0 + thumb_func_end MOD66_021D9390 + + thumb_func_start MOD66_021D93F4 +MOD66_021D93F4: ; 0x021D93F4 + push {r3, r4, r5, lr} + add r5, r0, #0 + bne _021D93FE + mov r0, #0 + pop {r3, r4, r5, pc} +_021D93FE: + bl MOD66_021D9390 + add r4, r0, #0 + beq _021D940C + ldr r0, [r4, #0x14] + cmp r0, #0 + bne _021D9426 +_021D940C: + ldr r3, [r5, #4] + cmp r3, #0 + beq _021D9420 + ldrb r1, [r3, #9] + ldr r0, [r3, #0x18] + add r2, r1, #5 + ldr r1, [r3, #0x14] + add r1, r2, r1 + bl FUN_02020248 +_021D9420: + mov r0, #0 + str r0, [r5, #4] + pop {r3, r4, r5, pc} +_021D9426: + ldr r1, [r5, #4] + cmp r1, #0 + bne _021D9434 + mov r0, #0 + strb r0, [r5, #2] + strb r0, [r5, #3] + b _021D9450 +_021D9434: + ldrh r2, [r4, #0xa] + ldr r0, _021D9458 ; =0x0000FFFE + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r0, #1 + bhi _021D9450 + ldrb r2, [r1, #9] + ldr r0, [r1, #0x18] + ldr r1, [r1, #0x14] + add r2, r2, #5 + add r1, r2, r1 + bl FUN_02020248 +_021D9450: + str r4, [r5, #4] + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_021D9458: .word 0x0000FFFE + thumb_func_end MOD66_021D93F4 + + thumb_func_start MOD66_021D945C +MOD66_021D945C: ; 0x021D945C + push {r4, lr} + add r4, r0, #0 + ldr r3, [r4, #4] + cmp r3, #0 + beq _021D94A0 + cmp r1, #1 + bne _021D94A0 + ldrb r0, [r4, #3] + cmp r0, #0 + ldr r0, [r3, #0x18] + bne _021D947C + ldrb r1, [r3, #9] + add r1, #8 + bl FUN_02020248 + b _021D9488 +_021D947C: + ldrb r1, [r3, #9] + add r2, r1, #5 + ldr r1, [r3, #0x14] + add r1, r2, r1 + bl FUN_02020248 +_021D9488: + ldrb r0, [r4, #2] + add r0, r0, #1 + strb r0, [r4, #2] + ldrb r0, [r4, #2] + cmp r0, #0x10 + bne _021D94A0 + mov r0, #0 + strb r0, [r4, #2] + ldrb r1, [r4, #3] + mov r0, #1 + eor r0, r1 + strb r0, [r4, #3] +_021D94A0: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD66_021D945C + + thumb_func_start MOD66_021D94A4 +MOD66_021D94A4: ; 0x021D94A4 + push {r4, r5, r6, r7, lr} + sub sp, #0x4c + add r5, r0, #0 + add r0, sp, #4 + add r4, r1, #0 + bl FS_InitFile + add r0, sp, #4 + add r1, r5, #0 + bl FS_OpenFile + cmp r0, #0 + bne _021D94C8 + bl ErrorHandling + add sp, #0x4c + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_021D94C8: + add r0, sp, #4 + add r1, sp, #0 + mov r2, #4 + bl FS_ReadFile + cmp r0, #0 + bge _021D94DA + bl ErrorHandling +_021D94DA: + add r0, r4, #0 + mov r1, #8 + bl FUN_02016998 + add r6, r0, #0 + mov r0, #0 + strb r0, [r6] + strb r0, [r6, #1] + strb r0, [r6, #2] + strb r0, [r6, #3] + strb r0, [r6, #4] + strb r0, [r6, #5] + strb r0, [r6, #6] + strb r0, [r6, #7] + ldr r2, [sp] + mov r1, #0x18 + add r0, r4, #0 + mul r1, r2 + bl FUN_02016998 + str r0, [r6, #4] + ldr r3, [sp] + mov r2, #0x18 + mov r1, #0 + mul r2, r3 + bl Call_FillMemWithValue + ldr r0, [sp] + mov r4, #0 + str r0, [r6] + cmp r0, #0 + ble _021D9536 + add r5, r4, #0 +_021D951C: + ldr r0, [r6, #4] + mov r2, #0x18 + add r7, r0, r5 + add r0, sp, #4 + add r1, r7, #0 + bl FS_ReadFile + strh r4, [r7, #0x16] + ldr r0, [r6] + add r4, r4, #1 + add r5, #0x18 + cmp r4, r0 + blt _021D951C +_021D9536: + add r0, sp, #4 + bl FS_CloseFile + add r0, r6, #0 + add sp, #0x4c + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD66_021D94A4 + + thumb_func_start MOD66_021D9544 +MOD66_021D9544: ; 0x021D9544 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD66_021D9544 + + thumb_func_start MOD66_021D9558 +MOD66_021D9558: ; 0x021D9558 + push {r3, r4, r5, r6} + ldr r6, [r0] + mov r5, #0 + cmp r6, #0 + ble _021D9588 + ldr r0, [r0, #4] +_021D9564: + ldrh r4, [r0] + cmp r4, r1 + bne _021D9580 + ldrh r4, [r0, #2] + cmp r4, r2 + bne _021D9580 + ldrh r1, [r0, #0x14] + cmp r1, #0 + beq _021D958A + tst r1, r3 + bne _021D958A + mov r0, #0 + pop {r3, r4, r5, r6} + bx lr +_021D9580: + add r5, r5, #1 + add r0, #0x18 + cmp r5, r6 + blt _021D9564 +_021D9588: + mov r0, #0 +_021D958A: + pop {r3, r4, r5, r6} + bx lr + .align 2, 0 + thumb_func_end MOD66_021D9558 + + .section .rodata + ; 0x021D9590 + .incbin "baserom.nds", 0x2BE4B0, 0x50C + + .section .data + ; 0x021D9AA0 + .incbin "baserom.nds", 0x2BE9C0, 0xA0 diff --git a/arm9/modules/67/asm/module_67.s b/arm9/modules/67/asm/module_67.s new file mode 100644 index 00000000..c7484f37 --- /dev/null +++ b/arm9/modules/67/asm/module_67.s @@ -0,0 +1,4337 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD67_021D74E0 +MOD67_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r0, #1 + lsl r0, r0, #0x1a + ldr r2, [r0] + ldr r1, _021D75C0 ; =0xFFFFE0FF + ldr r3, _021D75C4 ; =0x04001000 + and r2, r1 + str r2, [r0] + ldr r2, [r3] + add r0, #0x50 + and r1, r2 + str r1, [r3] + mov r1, #0 + strh r1, [r0] + add r3, #0x50 + strh r1, [r3] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + mov r2, #2 + mov r0, #3 + mov r1, #0x2a + lsl r2, r2, #0x10 + bl FUN_0201681C + add r0, r4, #0 + bl FUN_0200628C + add r5, r0, #0 + ldr r1, _021D75C8 ; =0x00001068 + add r0, r4, #0 + mov r2, #0x2a + bl FUN_02006268 + ldr r2, _021D75C8 ; =0x00001068 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x2a + bl FUN_02016B94 + str r0, [r4] + str r5, [r4, #0x4c] + add r0, r5, #0 + bl FUN_020289A4 + str r0, [r4, #0x44] + add r0, r5, #0 + bl FUN_020238F4 + str r0, [r4, #0x48] + mov r0, #0 + mov r1, #0x2a + bl FUN_02079A70 + mov r0, #0 + mov r1, #0x2a + bl FUN_02002C84 + bl MOD67_021D7680 + ldr r0, [r4] + bl MOD67_021D76A0 + add r0, r4, #0 + bl MOD67_021D77B0 + add r0, r4, #0 + bl MOD67_021D7880 + add r0, r4, #0 + bl MOD67_021D7D60 + add r0, r4, #0 + mov r1, #0 + bl MOD67_021D7D9C + add r0, r4, #0 + bl MOD67_021D7B84 + ldr r0, _021D75CC ; =MOD67_021D7660 + add r1, r4, #0 + bl FUN_02015F10 + bl FUN_0201E788 + bl FUN_02033E74 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r1, #0 + mov r0, #0x43 + add r2, r1, #0 + bl FUN_0200433C + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D75C0: .word 0xFFFFE0FF +_021D75C4: .word 0x04001000 +_021D75C8: .word 0x00001068 +_021D75CC: .word MOD67_021D7660 + thumb_func_end MOD67_021D74E0 + + thumb_func_start MOD67_021D75D0 +MOD67_021D75D0: ; 0x021D75D0 + push {r4, lr} + add r4, r1, #0 + bl FUN_02006278 + ldr r1, [r4] + cmp r1, #4 + bhi _021D7620 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D75EA: ; jump table + .short _021D75F4 - _021D75EA - 2 ; case 0 + .short _021D75FC - _021D75EA - 2 ; case 1 + .short _021D7604 - _021D75EA - 2 ; case 2 + .short _021D760C - _021D75EA - 2 ; case 3 + .short _021D7614 - _021D75EA - 2 ; case 4 +_021D75F4: + bl MOD67_021D78C4 + str r0, [r4] + b _021D7620 +_021D75FC: + bl MOD67_021D78D8 + str r0, [r4] + b _021D7620 +_021D7604: + bl MOD67_021D795C + str r0, [r4] + b _021D7620 +_021D760C: + bl MOD67_021D7A38 + str r0, [r4] + b _021D7620 +_021D7614: + bl MOD67_021D7AA8 + cmp r0, #1 + bne _021D7620 + mov r0, #1 + pop {r4, pc} +_021D7620: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD67_021D75D0 + + thumb_func_start MOD67_021D7624 +MOD67_021D7624: ; 0x021D7624 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + add r0, r4, #0 + bl MOD67_021D7D84 + ldr r0, [r4] + bl MOD67_021D777C + add r0, r4, #0 + bl MOD67_021D78AC + mov r0, #0 + bl FUN_02002CC0 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0x2a + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD67_021D7624 + + thumb_func_start MOD67_021D7660 +MOD67_021D7660: ; 0x021D7660 + push {r3, lr} + ldr r0, [r0] + bl FUN_0201AB60 + ldr r3, _021D7678 ; =0x027E0000 + ldr r1, _021D767C ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + nop +_021D7678: .word 0x027E0000 +_021D767C: .word 0x00003FF8 + thumb_func_end MOD67_021D7660 + + thumb_func_start MOD67_021D7680 +MOD67_021D7680: ; 0x021D7680 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D769C ; =0x021D97B0 + add r3, sp, #0 + mov r2, #5 +_021D768A: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D768A + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D769C: .word 0x021D97B0 + thumb_func_end MOD67_021D7680 + + thumb_func_start MOD67_021D76A0 +MOD67_021D76A0: ; 0x021D76A0 + push {r3, r4, r5, lr} + sub sp, #0x80 + ldr r5, _021D7768 ; =0x021D9730 + add r3, sp, #0x70 + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D776C ; =0x021D975C + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _021D7770 ; =0x021D9740 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _021D7774 ; =0x021D9778 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021D7778 ; =0x021D9794 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x2a + bl FUN_02017F18 + mov r0, #1 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x2a + bl FUN_02017F18 + add sp, #0x80 + pop {r3, r4, r5, pc} + nop +_021D7768: .word 0x021D9730 +_021D776C: .word 0x021D975C +_021D7770: .word 0x021D9740 +_021D7774: .word 0x021D9778 +_021D7778: .word 0x021D9794 + thumb_func_end MOD67_021D76A0 + + thumb_func_start MOD67_021D777C +MOD67_021D777C: ; 0x021D777C + push {r4, lr} + add r4, r0, #0 + bl FUN_0201E6D8 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + mov r0, #0x2a + add r1, r4, #0 + bl FUN_02016A8C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD67_021D777C + + thumb_func_start MOD67_021D77B0 +MOD67_021D77B0: ; 0x021D77B0 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, [r4, #0x48] + bl FUN_020239CC + cmp r0, #0 + bne _021D7802 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x2a + str r0, [sp, #0xc] + mov r1, #2 + ldr r2, [r4] + mov r0, #0x50 + add r3, r1, #0 + bl FUN_0200687C + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + str r1, [sp, #8] + mov r0, #0x2a + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x50 + mov r3, #2 + bl FUN_020068C8 + mov r2, #0 + str r2, [sp] + mov r0, #0x2a + str r0, [sp, #4] + mov r0, #0x50 + mov r1, #4 + add r3, r2, #0 + bl FUN_02006930 + b _021D7844 +_021D7802: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x2a + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x50 + mov r1, #3 + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x2a + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x50 + mov r1, #1 + mov r3, #2 + bl FUN_020068C8 + mov r2, #0 + str r2, [sp] + mov r0, #0x2a + str r0, [sp, #4] + mov r0, #0x50 + mov r1, #5 + add r3, r2, #0 + bl FUN_02006930 +_021D7844: + ldr r0, [r4] + mov r1, #2 + bl FUN_0201886C + add r1, r4, #0 + mov r2, #2 + add r1, #0x5c + lsl r2, r2, #0xa + bl MIi_CpuCopy16 + ldr r0, [r4] + add r4, #0x5c + mov r3, #2 + mov r1, #3 + add r2, r4, #0 + lsl r3, r3, #0xa + bl FUN_02017DFC + mov r1, #0x1e + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x2a + bl FUN_02002ED0 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + add sp, #0x10 + pop {r4, pc} + thumb_func_end MOD67_021D77B0 + + thumb_func_start MOD67_021D7880 +MOD67_021D7880: ; 0x021D7880 + push {r4, lr} + ldr r2, _021D78A8 ; =0x00000142 + add r4, r0, #0 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x2a + bl FUN_0200A86C + str r0, [r4, #0x50] + mov r0, #0x2a + bl FUN_0200AA80 + str r0, [r4, #0x54] + mov r0, #0x80 + mov r1, #0x2a + bl FUN_020219F4 + str r0, [r4, #0x58] + pop {r4, pc} + nop +_021D78A8: .word 0x00000142 + thumb_func_end MOD67_021D7880 + + thumb_func_start MOD67_021D78AC +MOD67_021D78AC: ; 0x021D78AC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x50] + bl FUN_0200A8B8 + ldr r0, [r4, #0x54] + bl FUN_0200AB18 + ldr r0, [r4, #0x58] + bl FUN_02021A20 + pop {r4, pc} + thumb_func_end MOD67_021D78AC + + thumb_func_start MOD67_021D78C4 +MOD67_021D78C4: ; 0x021D78C4 + push {r3, lr} + bl FUN_0200E308 + cmp r0, #1 + bne _021D78D2 + mov r0, #1 + pop {r3, pc} +_021D78D2: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD67_021D78C4 + + thumb_func_start MOD67_021D78D8 +MOD67_021D78D8: ; 0x021D78D8 + push {r3, lr} + ldr r1, _021D7954 ; =0x021C48B8 + ldr r3, [r1, #0x48] + mov r1, #0x20 + add r2, r3, #0 + tst r2, r1 + beq _021D78F8 + sub r1, #0x21 + bl MOD67_021D7B1C + cmp r0, #1 + bne _021D78F4 + mov r0, #2 + pop {r3, pc} +_021D78F4: + mov r0, #1 + pop {r3, pc} +_021D78F8: + mov r1, #0x11 + tst r1, r3 + beq _021D7910 + mov r1, #1 + bl MOD67_021D7B1C + cmp r0, #1 + bne _021D790C + mov r0, #3 + pop {r3, pc} +_021D790C: + mov r0, #1 + pop {r3, pc} +_021D7910: + mov r2, #2 + add r1, r3, #0 + tst r1, r2 + beq _021D793A + ldr r1, _021D7958 ; =0x0000105C + ldrsb r1, [r0, r1] + cmp r1, #0 + beq _021D792E + sub r1, r2, #3 + bl MOD67_021D7B1C + cmp r0, #1 + bne _021D793A + mov r0, #2 + pop {r3, pc} +_021D792E: + mov r0, #1 + mov r1, #0x2a + bl FUN_02079A70 + mov r0, #4 + pop {r3, pc} +_021D793A: + ldr r0, _021D7954 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #8 + tst r0, r1 + beq _021D7950 + mov r0, #1 + mov r1, #0x2a + bl FUN_02079A70 + mov r0, #4 + pop {r3, pc} +_021D7950: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_021D7954: .word 0x021C48B8 +_021D7958: .word 0x0000105C + thumb_func_end MOD67_021D78D8 + + thumb_func_start MOD67_021D795C +MOD67_021D795C: ; 0x021D795C + push {r3, r4, lr} + sub sp, #0xc + ldr r1, _021D7A18 ; =0x0000105E + add r4, r0, #0 + ldrsb r1, [r4, r1] + cmp r1, #0 + beq _021D7970 + cmp r1, #1 + beq _021D79AC + b _021D7A12 +_021D7970: + bl MOD67_021D7AB0 + ldr r2, _021D7A1C ; =0x00001063 + add r0, r4, #0 + ldrb r1, [r4, r2] + sub r2, r2, #7 + ldrsb r2, [r4, r2] + sub r2, r2, #1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl MOD67_021D7B5C + ldr r1, _021D7A20 ; =0x0000105C + ldrsb r0, [r4, r1] + sub r0, r0, #1 + strb r0, [r4, r1] + add r1, r1, #4 + ldrsb r2, [r4, r1] + mov r1, #1 + add r0, r4, #0 + eor r1, r2 + bl MOD67_021D7D9C + ldr r0, _021D7A18 ; =0x0000105E + mov r1, #1 + strb r1, [r4, r0] + ldr r0, _021D7A24 ; =0x00000691 + bl FUN_020054C8 + b _021D7A12 +_021D79AC: + bl MOD67_021D7C30 + cmp r0, #1 + bne _021D7A12 + ldr r1, _021D7A28 ; =0x0000105F + mov r3, #0 + strb r3, [r4, r1] + sub r0, r1, #1 + strb r3, [r4, r0] + add r0, r1, #1 + ldrsb r2, [r4, r0] + mov r0, #1 + eor r2, r0 + add r0, r1, #1 + strb r2, [r4, r0] + ldr r2, _021D7A2C ; =0x0000085C + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + add r1, r1, #3 + ldrb r1, [r4, r1] + ldr r0, [r4] + add r2, r4, r2 + bl FUN_02018148 + mov r3, #0 + add r2, r4, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r1, _021D7A30 ; =0x00001061 + ldr r0, [r4] + ldrb r1, [r4, r1] + add r2, #0x5c + bl FUN_02018148 + ldr r1, _021D7A34 ; =0x00001062 + ldr r0, [r4] + ldrb r1, [r4, r1] + bl FUN_0201AC68 + ldr r1, _021D7A30 ; =0x00001061 + ldr r0, [r4] + ldrb r1, [r4, r1] + bl FUN_0201AC68 + add sp, #0xc + mov r0, #1 + pop {r3, r4, pc} +_021D7A12: + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_021D7A18: .word 0x0000105E +_021D7A1C: .word 0x00001063 +_021D7A20: .word 0x0000105C +_021D7A24: .word 0x00000691 +_021D7A28: .word 0x0000105F +_021D7A2C: .word 0x0000085C +_021D7A30: .word 0x00001061 +_021D7A34: .word 0x00001062 + thumb_func_end MOD67_021D795C + + thumb_func_start MOD67_021D7A38 +MOD67_021D7A38: ; 0x021D7A38 + push {r4, lr} + ldr r1, _021D7A98 ; =0x0000105E + add r4, r0, #0 + ldrsb r1, [r4, r1] + cmp r1, #0 + beq _021D7A4A + cmp r1, #1 + beq _021D7A72 + b _021D7A92 +_021D7A4A: + bl MOD67_021D7AB0 + ldr r1, _021D7A9C ; =0x0000105C + ldrsb r0, [r4, r1] + add r0, r0, #1 + strb r0, [r4, r1] + add r1, r1, #4 + ldrsb r2, [r4, r1] + mov r1, #1 + add r0, r4, #0 + eor r1, r2 + bl MOD67_021D7D9C + ldr r0, _021D7A98 ; =0x0000105E + mov r1, #1 + strb r1, [r4, r0] + ldr r0, _021D7AA0 ; =0x00000691 + bl FUN_020054C8 + b _021D7A92 +_021D7A72: + bl MOD67_021D7CBC + cmp r0, #1 + bne _021D7A92 + ldr r1, _021D7AA4 ; =0x0000105F + mov r2, #0 + strb r2, [r4, r1] + sub r0, r1, #1 + strb r2, [r4, r0] + add r0, r1, #1 + ldrsb r2, [r4, r0] + mov r0, #1 + add r1, r1, #1 + eor r2, r0 + strb r2, [r4, r1] + pop {r4, pc} +_021D7A92: + mov r0, #3 + pop {r4, pc} + nop +_021D7A98: .word 0x0000105E +_021D7A9C: .word 0x0000105C +_021D7AA0: .word 0x00000691 +_021D7AA4: .word 0x0000105F + thumb_func_end MOD67_021D7A38 + + thumb_func_start MOD67_021D7AA8 +MOD67_021D7AA8: ; 0x021D7AA8 + ldr r3, _021D7AAC ; =FUN_0200E308 + bx r3 + .align 2, 0 +_021D7AAC: .word FUN_0200E308 + thumb_func_end MOD67_021D7AA8 + + thumb_func_start MOD67_021D7AB0 +MOD67_021D7AB0: ; 0x021D7AB0 + ldr r2, _021D7AEC ; =0x00001060 + ldrsb r1, [r0, r2] + cmp r1, #0 + bne _021D7AD2 + mov r3, #0 + add r1, r2, #2 + strb r3, [r0, r1] + mov r3, #2 + add r1, r2, #1 + strb r3, [r0, r1] + mov r3, #1 + add r1, r2, #4 + strb r3, [r0, r1] + mov r3, #3 + add r1, r2, #3 + strb r3, [r0, r1] + bx lr +_021D7AD2: + mov r3, #1 + add r1, r2, #2 + strb r3, [r0, r1] + mov r3, #3 + add r1, r2, #1 + strb r3, [r0, r1] + mov r3, #0 + add r1, r2, #4 + strb r3, [r0, r1] + mov r3, #2 + add r1, r2, #3 + strb r3, [r0, r1] + bx lr + .align 2, 0 +_021D7AEC: .word 0x00001060 + thumb_func_end MOD67_021D7AB0 + + thumb_func_start MOD67_021D7AF0 +MOD67_021D7AF0: ; 0x021D7AF0 + push {r3, lr} + ldr r0, [r0, #0x44] + add r3, r1, #0 + add r1, sp, #0 + mov r2, #0 + bl FUN_02029584 + ldr r1, [sp] + lsl r0, r1, #0x19 + lsr r0, r0, #0x19 + bne _021D7B16 + lsl r0, r1, #0x15 + lsr r0, r0, #0x1c + bne _021D7B16 + lsl r0, r1, #0xd + lsr r0, r0, #0x1b + bne _021D7B16 + mov r0, #0 + pop {r3, pc} +_021D7B16: + mov r0, #1 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD67_021D7AF0 + + thumb_func_start MOD67_021D7B1C +MOD67_021D7B1C: ; 0x021D7B1C + push {r3, lr} + cmp r1, #1 + ldr r1, _021D7B58 ; =0x0000105C + bne _021D7B3C + ldrsb r1, [r0, r1] + cmp r1, #9 + beq _021D7B54 + add r1, r1, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl MOD67_021D7AF0 + cmp r0, #1 + bne _021D7B54 + mov r0, #1 + pop {r3, pc} +_021D7B3C: + ldrsb r1, [r0, r1] + cmp r1, #0 + beq _021D7B54 + sub r1, r1, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl MOD67_021D7AF0 + cmp r0, #1 + bne _021D7B54 + mov r0, #1 + pop {r3, pc} +_021D7B54: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021D7B58: .word 0x0000105C + thumb_func_end MOD67_021D7B1C + + thumb_func_start MOD67_021D7B5C +MOD67_021D7B5C: ; 0x021D7B5C + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0x20 + str r0, [sp] + str r0, [sp, #4] + str r2, [sp, #8] + mov r2, #0 + ldr r0, [r5] + add r3, r2, #0 + add r4, r1, #0 + bl FUN_020186B4 + ldr r0, [r5] + add r1, r4, #0 + bl FUN_0201AC68 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD67_021D7B5C + + thumb_func_start MOD67_021D7B84 +MOD67_021D7B84: ; 0x021D7B84 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + mov r1, #0 + bl FUN_0201886C + ldr r2, _021D7B9C ; =0x0000085C + add r1, r4, r2 + sub r2, #0x5c + bl MIi_CpuCopy16 + pop {r4, pc} + .align 2, 0 +_021D7B9C: .word 0x0000085C + thumb_func_end MOD67_021D7B84 + + thumb_func_start MOD67_021D7BA0 +MOD67_021D7BA0: ; 0x021D7BA0 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + str r2, [sp, #0x10] + add r6, r1, #0 + ldr r1, [sp, #0x10] + add r7, r0, #0 + lsl r1, r1, #0x18 + ldr r0, [r7] + lsr r1, r1, #0x18 + add r5, r3, #0 + bl FUN_0201886C + str r0, [sp, #0x14] + ldr r1, _021D7C2C ; =0x021D97D8 + lsl r0, r5, #5 + add r5, r1, r0 + ldr r0, [sp, #0x10] + mov r4, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0x18] +_021D7BCA: + ldrb r0, [r5, r4] + cmp r0, #0xff + bne _021D7BF0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x20 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + lsl r3, r4, #0x18 + ldr r0, [r7] + ldr r1, [sp, #0x18] + mov r2, #0 + lsr r3, r3, #0x18 + bl FUN_02018540 + b _021D7C10 +_021D7BF0: + ldr r0, [sp, #0x14] + lsl r1, r4, #1 + mov r2, #0 + add r3, r0, r1 +_021D7BF8: + ldrb r0, [r5, r4] + lsl r1, r2, #5 + add r0, r1, r0 + lsl r0, r0, #1 + ldrh r0, [r6, r0] + lsl r1, r1, #1 + strh r0, [r3, r1] + add r0, r2, #1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + cmp r2, #0x20 + blo _021D7BF8 +_021D7C10: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x20 + blo _021D7BCA + ldr r1, [sp, #0x10] + ldr r0, [r7] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_0201AC68 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021D7C2C: .word 0x021D97D8 + thumb_func_end MOD67_021D7BA0 + + thumb_func_start MOD67_021D7C30 +MOD67_021D7C30: ; 0x021D7C30 + push {r4, lr} + ldr r3, _021D7CA8 ; =0x00001062 + add r4, r0, #0 + ldrb r2, [r4, r3] + sub r3, r3, #3 + ldr r1, _021D7CAC ; =0x0000085C + ldrsb r3, [r4, r3] + add r1, r4, r1 + bl MOD67_021D7BA0 + ldr r3, _021D7CB0 ; =0x00001061 + add r1, r4, #0 + ldrb r2, [r4, r3] + sub r3, r3, #2 + ldrsb r3, [r4, r3] + add r0, r4, #0 + add r1, #0x5c + bl MOD67_021D7BA0 + ldr r2, _021D7CB0 ; =0x00001061 + add r0, r4, #0 + ldrb r1, [r4, r2] + sub r2, r2, #5 + ldrsb r2, [r4, r2] + add r2, r2, #1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl MOD67_021D7B5C + ldr r0, _021D7CB4 ; =0x0000105F + ldrsb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, r0] + ldrsb r1, [r4, r0] + cmp r1, #9 + bne _021D7CA4 + add r0, r0, #5 + ldrb r0, [r4, r0] + mov r1, #0 + bl FUN_020178BC + ldr r0, _021D7CB8 ; =0x00001063 + mov r1, #1 + ldrb r0, [r4, r0] + bl FUN_020178BC + ldr r0, _021D7CA8 ; =0x00001062 + mov r1, #2 + ldrb r0, [r4, r0] + bl FUN_020178BC + ldr r0, _021D7CB0 ; =0x00001061 + mov r1, #3 + ldrb r0, [r4, r0] + bl FUN_020178BC + mov r0, #1 + pop {r4, pc} +_021D7CA4: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D7CA8: .word 0x00001062 +_021D7CAC: .word 0x0000085C +_021D7CB0: .word 0x00001061 +_021D7CB4: .word 0x0000105F +_021D7CB8: .word 0x00001063 + thumb_func_end MOD67_021D7C30 + + thumb_func_start MOD67_021D7CBC +MOD67_021D7CBC: ; 0x021D7CBC + push {r3, r4, r5, lr} + ldr r3, _021D7D48 ; =0x00001064 + add r4, r0, #0 + ldrb r2, [r4, r3] + sub r3, r3, #5 + ldrsb r5, [r4, r3] + mov r3, #8 + ldr r1, _021D7D4C ; =0x0000085C + sub r3, r3, r5 + lsl r3, r3, #0x10 + add r1, r4, r1 + lsr r3, r3, #0x10 + bl MOD67_021D7BA0 + ldr r3, _021D7D50 ; =0x00001063 + add r1, r4, #0 + ldrb r2, [r4, r3] + sub r3, r3, #4 + ldrsb r5, [r4, r3] + mov r3, #8 + add r0, r4, #0 + sub r3, r3, r5 + lsl r3, r3, #0x10 + add r1, #0x5c + lsr r3, r3, #0x10 + bl MOD67_021D7BA0 + ldr r2, _021D7D50 ; =0x00001063 + add r0, r4, #0 + ldrb r1, [r4, r2] + sub r2, r2, #7 + ldrb r2, [r4, r2] + bl MOD67_021D7B5C + ldr r0, _021D7D54 ; =0x0000105F + ldrsb r1, [r4, r0] + cmp r1, #1 + bne _021D7D30 + add r0, r0, #5 + ldrb r0, [r4, r0] + mov r1, #0 + bl FUN_020178BC + ldr r0, _021D7D50 ; =0x00001063 + mov r1, #1 + ldrb r0, [r4, r0] + bl FUN_020178BC + ldr r0, _021D7D58 ; =0x00001062 + mov r1, #2 + ldrb r0, [r4, r0] + bl FUN_020178BC + ldr r0, _021D7D5C ; =0x00001061 + mov r1, #3 + ldrb r0, [r4, r0] + bl FUN_020178BC +_021D7D30: + ldr r0, _021D7D54 ; =0x0000105F + ldrsb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, r0] + ldrsb r0, [r4, r0] + cmp r0, #9 + bne _021D7D42 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D7D42: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_021D7D48: .word 0x00001064 +_021D7D4C: .word 0x0000085C +_021D7D50: .word 0x00001063 +_021D7D54: .word 0x0000105F +_021D7D58: .word 0x00001062 +_021D7D5C: .word 0x00001061 + thumb_func_end MOD67_021D7CBC + + thumb_func_start MOD67_021D7D60 +MOD67_021D7D60: ; 0x021D7D60 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + ldr r4, _021D7D80 ; =0x021D98F8 + mov r6, #0 + add r5, r7, #4 +_021D7D6A: + ldr r0, [r7] + add r1, r5, #0 + add r2, r4, #0 + bl FUN_02019150 + add r6, r6, #1 + add r4, #8 + add r5, #0x10 + cmp r6, #4 + blo _021D7D6A + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D7D80: .word 0x021D98F8 + thumb_func_end MOD67_021D7D60 + + thumb_func_start MOD67_021D7D84 +MOD67_021D7D84: ; 0x021D7D84 + push {r3, r4, r5, lr} + mov r4, #0 + add r5, r0, #4 +_021D7D8A: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #4 + blo _021D7D8A + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD67_021D7D84 + + thumb_func_start MOD67_021D7D9C +MOD67_021D7D9C: ; 0x021D7D9C + push {r4, r5, r6, lr} + add r5, r0, #0 + cmp r1, #0 + bne _021D7DAC + add r4, r5, #0 + add r6, r5, #4 + add r4, #0x14 + b _021D7DB4 +_021D7DAC: + add r6, r5, #0 + add r4, r5, #0 + add r6, #0x24 + add r4, #0x34 +_021D7DB4: + add r0, r6, #0 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + mov r1, #0 + bl FUN_02019620 + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD67_021D7E00 + cmp r0, #1 + bne _021D7DF2 + add r0, r5, #0 + add r1, r4, #0 + bl MOD67_021D7F18 + add r0, r5, #0 + add r1, r4, #0 + bl MOD67_021D81C4 + add r0, r5, #0 + add r1, r4, #0 + bl MOD67_021D8208 + add r0, r5, #0 + add r1, r4, #0 + bl MOD67_021D8344 +_021D7DF2: + add r0, r6, #0 + bl FUN_02019220 + add r0, r4, #0 + bl FUN_02019220 + pop {r4, r5, r6, pc} + thumb_func_end MOD67_021D7D9C + + thumb_func_start MOD67_021D7E00 +MOD67_021D7E00: ; 0x021D7E00 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + ldr r3, _021D7F10 ; =0x0000105C + add r5, r0, #0 + ldrb r3, [r5, r3] + ldr r0, [r5, #0x44] + add r7, r1, #0 + str r2, [sp, #0x10] + add r1, sp, #0x14 + mov r2, #0 + bl FUN_02029584 + ldr r1, [sp, #0x14] + lsl r0, r1, #0x19 + lsr r0, r0, #0x19 + bne _021D7E32 + lsl r0, r1, #0x15 + lsr r0, r0, #0x1c + bne _021D7E32 + lsl r0, r1, #0xd + lsr r0, r0, #0x1b + bne _021D7E32 + add sp, #0x18 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D7E32: + ldr r0, [r5, #0x50] + mov r1, #1 + bl FUN_0200A914 + ldr r2, [sp, #0x14] + add r4, r0, #0 + lsl r2, r2, #0x15 + ldr r0, [r5, #0x54] + mov r1, #0 + lsr r2, r2, #0x1c + bl FUN_0200B764 + mov r0, #0 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r2, [sp, #0x14] + ldr r0, [r5, #0x54] + lsl r2, r2, #0xd + lsr r2, r2, #0x1b + mov r3, #2 + bl FUN_0200AD38 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7F14 ; =0x00010200 + add r3, r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r5, #0x58] + add r0, r7, #0 + bl FUN_0201BDE0 + mov r0, #0 + ldr r1, [r5, #0x58] + add r2, r0, #0 + bl FUN_02002E14 + ldr r1, [sp, #0x14] + add r4, r0, #0 + lsl r1, r1, #0x12 + lsr r1, r1, #0x1d + ldr r0, [r5, #0x50] + add r1, r1, #2 + bl FUN_0200A914 + add r6, r0, #0 + mov r1, #0 + add r4, #0xc + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7F14 ; =0x00010200 + add r2, r6, #0 + str r0, [sp, #8] + add r0, r7, #0 + add r3, r4, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, [r5, #0x50] + mov r1, #0 + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, [sp, #0x14] + lsr r0, r0, #0x13 + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r4, #0 + bl FUN_0200B7B8 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7F14 ; =0x00010200 + add r3, r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + mov r0, #1 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D7F10: .word 0x0000105C +_021D7F14: .word 0x00010200 + thumb_func_end MOD67_021D7E00 + + thumb_func_start MOD67_021D7F18 +MOD67_021D7F18: ; 0x021D7F18 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + ldr r3, _021D81C0 ; =0x0000105C + add r6, r0, #0 + ldrb r3, [r6, r3] + ldr r0, [r6, #0x44] + add r7, r1, #0 + add r1, sp, #0 + mov r2, #1 + bl FUN_02029584 + mov r4, #0 + add r5, sp, #0 +_021D7F32: + ldrb r0, [r5] + cmp r0, #0x23 + bls _021D7F3A + b _021D81B0 +_021D7F3A: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7F46: ; jump table + .short _021D7F8E - _021D7F46 - 2 ; case 0 + .short _021D7F92 - _021D7F46 - 2 ; case 1 + .short _021D7FA2 - _021D7F46 - 2 ; case 2 + .short _021D7FB2 - _021D7F46 - 2 ; case 3 + .short _021D7FC2 - _021D7F46 - 2 ; case 4 + .short _021D7FD2 - _021D7F46 - 2 ; case 5 + .short _021D7FE2 - _021D7F46 - 2 ; case 6 + .short _021D7FF2 - _021D7F46 - 2 ; case 7 + .short _021D8002 - _021D7F46 - 2 ; case 8 + .short _021D8012 - _021D7F46 - 2 ; case 9 + .short _021D8022 - _021D7F46 - 2 ; case 10 + .short _021D8032 - _021D7F46 - 2 ; case 11 + .short _021D8042 - _021D7F46 - 2 ; case 12 + .short _021D8052 - _021D7F46 - 2 ; case 13 + .short _021D8062 - _021D7F46 - 2 ; case 14 + .short _021D8072 - _021D7F46 - 2 ; case 15 + .short _021D8082 - _021D7F46 - 2 ; case 16 + .short _021D8092 - _021D7F46 - 2 ; case 17 + .short _021D80A2 - _021D7F46 - 2 ; case 18 + .short _021D80C2 - _021D7F46 - 2 ; case 19 + .short _021D80D2 - _021D7F46 - 2 ; case 20 + .short _021D8102 - _021D7F46 - 2 ; case 21 + .short _021D80F2 - _021D7F46 - 2 ; case 22 + .short _021D80E2 - _021D7F46 - 2 ; case 23 + .short _021D80B2 - _021D7F46 - 2 ; case 24 + .short _021D8122 - _021D7F46 - 2 ; case 25 + .short _021D8112 - _021D7F46 - 2 ; case 26 + .short _021D8132 - _021D7F46 - 2 ; case 27 + .short _021D8142 - _021D7F46 - 2 ; case 28 + .short _021D8152 - _021D7F46 - 2 ; case 29 + .short _021D8162 - _021D7F46 - 2 ; case 30 + .short _021D81B0 - _021D7F46 - 2 ; case 31 + .short _021D8182 - _021D7F46 - 2 ; case 32 + .short _021D8172 - _021D7F46 - 2 ; case 33 + .short _021D8192 - _021D7F46 - 2 ; case 34 + .short _021D81A2 - _021D7F46 - 2 ; case 35 +_021D7F8E: + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} +_021D7F92: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D84A8 + b _021D81B0 +_021D7FA2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D84E4 + b _021D81B0 +_021D7FB2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8520 + b _021D81B0 +_021D7FC2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D855C + b _021D81B0 +_021D7FD2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8598 + b _021D81B0 +_021D7FE2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D85D4 + b _021D81B0 +_021D7FF2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8610 + b _021D81B0 +_021D8002: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D864C + b _021D81B0 +_021D8012: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8688 + b _021D81B0 +_021D8022: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D86DC + b _021D81B0 +_021D8032: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D873C + b _021D81B0 +_021D8042: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8790 + b _021D81B0 +_021D8052: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D87E4 + b _021D81B0 +_021D8062: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8840 + b _021D81B0 +_021D8072: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D88AC + b _021D81B0 +_021D8082: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8914 + b _021D81B0 +_021D8092: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8950 + b _021D81B0 +_021D80A2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D898C + b _021D81B0 +_021D80B2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D89E0 + b _021D81B0 +_021D80C2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8A3C + b _021D81B0 +_021D80D2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8A98 + b _021D81B0 +_021D80E2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8AF4 + b _021D81B0 +_021D80F2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8B50 + b _021D81B0 +_021D8102: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8BAC + b _021D81B0 +_021D8112: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8C08 + b _021D81B0 +_021D8122: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8C64 + b _021D81B0 +_021D8132: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8CC0 + b _021D81B0 +_021D8142: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8D1C + b _021D81B0 +_021D8152: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8D78 + b _021D81B0 +_021D8162: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8DD4 + b _021D81B0 +_021D8172: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8E10 + b _021D81B0 +_021D8182: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8E4C + b _021D81B0 +_021D8192: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8E88 + b _021D81B0 +_021D81A2: + lsl r3, r4, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r5, #0 + lsr r3, r3, #0x18 + bl MOD67_021D8EC4 +_021D81B0: + add r4, r4, #1 + add r5, #8 + cmp r4, #4 + bhs _021D81BA + b _021D7F32 +_021D81BA: + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D81C0: .word 0x0000105C + thumb_func_end MOD67_021D7F18 + + thumb_func_start MOD67_021D81C4 +MOD67_021D81C4: ; 0x021D81C4 + push {r3, r4, r5, lr} + ldr r3, _021D8204 ; =0x0000105C + add r5, r0, #0 + ldrb r3, [r5, r3] + ldr r0, [r5, #0x44] + add r4, r1, #0 + add r1, sp, #0 + mov r2, #2 + bl FUN_02029584 + add r0, sp, #0 + ldrb r0, [r0] + cmp r0, #0 + beq _021D8200 + cmp r0, #1 + beq _021D81EA + cmp r0, #2 + beq _021D81F6 + pop {r3, r4, r5, pc} +_021D81EA: + add r0, r5, #0 + add r1, r4, #0 + add r2, sp, #0 + bl MOD67_021D8F40 + pop {r3, r4, r5, pc} +_021D81F6: + add r0, r5, #0 + add r1, r4, #0 + add r2, sp, #0 + bl MOD67_021D8FEC +_021D8200: + pop {r3, r4, r5, pc} + nop +_021D8204: .word 0x0000105C + thumb_func_end MOD67_021D81C4 + + thumb_func_start MOD67_021D8208 +MOD67_021D8208: ; 0x021D8208 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + ldr r3, _021D8334 ; =0x0000105C + add r4, r0, #0 + ldrb r3, [r4, r3] + ldr r0, [r4, #0x44] + add r7, r1, #0 + add r1, sp, #0x10 + mov r2, #3 + bl FUN_02029584 + add r0, sp, #0x10 + ldrh r1, [r0] + lsl r1, r1, #0x1f + lsr r1, r1, #0x1f + bne _021D822A + b _021D832E +_021D822A: + ldrh r0, [r0, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r1, _021D8338 ; =0x0000017E + mov r0, #0x1a + mov r3, #0x2a + bl FUN_0200A738 + add r6, r0, #0 + bl FUN_02021D3C + add r5, r0, #0 + add r0, r6, #0 + bl FUN_02021A20 + add r0, sp, #0x10 + ldrh r0, [r0] + mov r1, #1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x11 + bl FUN_0206AC74 + cmp r0, #0x3f + bne _021D828A + ldr r0, [r4, #0x50] + mov r1, #0x38 + bl FUN_0200A914 + add r6, r0, #0 + ldr r0, [r4, #0x54] + ldr r2, [r4, #0x4c] + mov r1, #1 + bl FUN_0200ABE4 + ldr r0, [r4, #0x54] + ldr r1, [r4, #0x58] + add r2, r6, #0 + bl FUN_0200B7B8 + ldr r0, [r4, #0x58] + bl FUN_02021D3C + add r5, r5, r0 + add r0, r6, #0 + bl FUN_02021A20 + b _021D82BA +_021D828A: + add r2, sp, #0x10 + ldrh r2, [r2] + ldr r1, _021D833C ; =0x0000022F + mov r0, #0x1a + lsl r2, r2, #0x10 + lsr r2, r2, #0x11 + mov r3, #0x2a + bl FUN_0200A738 + add r6, r0, #0 + bl FUN_02021D3C + add r5, r5, r0 + add r0, r6, #0 + bl FUN_02021A20 + add r2, sp, #0x10 + ldrh r2, [r2] + ldr r0, [r4, #0x54] + mov r1, #1 + lsl r2, r2, #0x10 + lsr r2, r2, #0x11 + bl FUN_0200B10C +_021D82BA: + cmp r5, #0xe + bhi _021D82CA + ldr r0, [r4, #0x50] + mov r1, #0x34 + bl FUN_0200A914 + add r5, r0, #0 + b _021D82F2 +_021D82CA: + cmp r5, #0x10 + bhi _021D82DA + ldr r0, [r4, #0x50] + mov r1, #0x35 + bl FUN_0200A914 + add r5, r0, #0 + b _021D82F2 +_021D82DA: + cmp r5, #0x13 + ldr r0, [r4, #0x50] + bhi _021D82EA + mov r1, #0x36 + bl FUN_0200A914 + add r5, r0, #0 + b _021D82F2 +_021D82EA: + mov r1, #0x37 + bl FUN_0200A914 + add r5, r0, #0 +_021D82F2: + add r0, sp, #0x10 + ldrh r0, [r0, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r4, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r4, #0x54] + ldr r1, [r4, #0x58] + add r2, r5, #0 + bl FUN_0200B7B8 + mov r0, #0x60 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8340 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x58] + add r0, r7, #0 + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r5, #0 + bl FUN_02021A20 +_021D832E: + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8334: .word 0x0000105C +_021D8338: .word 0x0000017E +_021D833C: .word 0x0000022F +_021D8340: .word 0x00010200 + thumb_func_end MOD67_021D8208 + + thumb_func_start MOD67_021D8344 +MOD67_021D8344: ; 0x021D8344 + push {r4, r5, r6, r7, lr} + sub sp, #0x74 + ldr r3, _021D84A4 ; =0x0000105C + add r6, r0, #0 + ldrb r3, [r6, r3] + ldr r0, [r6, #0x44] + add r7, r1, #0 + add r1, sp, #0 + mov r2, #4 + bl FUN_02029584 + mov r5, #0 + add r4, sp, #0 +_021D835E: + ldrb r0, [r4] + cmp r0, #0x10 + bls _021D8366 + b _021D8496 +_021D8366: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D8372: ; jump table + .short _021D8394 - _021D8372 - 2 ; case 0 + .short _021D8398 - _021D8372 - 2 ; case 1 + .short _021D83A8 - _021D8372 - 2 ; case 2 + .short _021D83B8 - _021D8372 - 2 ; case 3 + .short _021D83C8 - _021D8372 - 2 ; case 4 + .short _021D83D8 - _021D8372 - 2 ; case 5 + .short _021D83E8 - _021D8372 - 2 ; case 6 + .short _021D83F8 - _021D8372 - 2 ; case 7 + .short _021D8408 - _021D8372 - 2 ; case 8 + .short _021D8418 - _021D8372 - 2 ; case 9 + .short _021D8428 - _021D8372 - 2 ; case 10 + .short _021D8438 - _021D8372 - 2 ; case 11 + .short _021D8448 - _021D8372 - 2 ; case 12 + .short _021D8458 - _021D8372 - 2 ; case 13 + .short _021D8468 - _021D8372 - 2 ; case 14 + .short _021D8478 - _021D8372 - 2 ; case 15 + .short _021D8488 - _021D8372 - 2 ; case 16 +_021D8394: + add sp, #0x74 + pop {r4, r5, r6, r7, pc} +_021D8398: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D90D4 + b _021D8496 +_021D83A8: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D9158 + b _021D8496 +_021D83B8: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D91DC + b _021D8496 +_021D83C8: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D9274 + b _021D8496 +_021D83D8: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D92F8 + b _021D8496 +_021D83E8: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D9390 + b _021D8496 +_021D83F8: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D93EC + b _021D8496 +_021D8408: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D9458 + b _021D8496 +_021D8418: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D9494 + b _021D8496 +_021D8428: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D94F0 + b _021D8496 +_021D8438: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D952C + b _021D8496 +_021D8448: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D95B0 + b _021D8496 +_021D8458: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D95EC + b _021D8496 +_021D8468: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D964C + b _021D8496 +_021D8478: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D9688 + b _021D8496 +_021D8488: + lsl r3, r5, #0x18 + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl MOD67_021D96F4 +_021D8496: + add r5, r5, #1 + add r4, #0x3a + cmp r5, #2 + bhs _021D84A0 + b _021D835E +_021D84A0: + add sp, #0x74 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D84A4: .word 0x0000105C + thumb_func_end MOD67_021D8344 + + thumb_func_start MOD67_021D84A8 +MOD67_021D84A8: ; 0x021D84A8 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #9 + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D84E0 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D84E0: .word 0x00010200 + thumb_func_end MOD67_021D84A8 + + thumb_func_start MOD67_021D84E4 +MOD67_021D84E4: ; 0x021D84E4 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0xa + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D851C ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D851C: .word 0x00010200 + thumb_func_end MOD67_021D84E4 + + thumb_func_start MOD67_021D8520 +MOD67_021D8520: ; 0x021D8520 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0xb + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8558 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8558: .word 0x00010200 + thumb_func_end MOD67_021D8520 + + thumb_func_start MOD67_021D855C +MOD67_021D855C: ; 0x021D855C + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0xc + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8594 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8594: .word 0x00010200 + thumb_func_end MOD67_021D855C + + thumb_func_start MOD67_021D8598 +MOD67_021D8598: ; 0x021D8598 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0xd + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D85D0 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D85D0: .word 0x00010200 + thumb_func_end MOD67_021D8598 + + thumb_func_start MOD67_021D85D4 +MOD67_021D85D4: ; 0x021D85D4 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0xe + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D860C ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D860C: .word 0x00010200 + thumb_func_end MOD67_021D85D4 + + thumb_func_start MOD67_021D8610 +MOD67_021D8610: ; 0x021D8610 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0xf + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8648 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8648: .word 0x00010200 + thumb_func_end MOD67_021D8610 + + thumb_func_start MOD67_021D864C +MOD67_021D864C: ; 0x021D864C + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x10 + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8684 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8684: .word 0x00010200 + thumb_func_end MOD67_021D864C + + thumb_func_start MOD67_021D8688 +MOD67_021D8688: ; 0x021D8688 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x11 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r2, [r4, #2] + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200B430 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D86D8 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D86D8: .word 0x00010200 + thumb_func_end MOD67_021D8688 + + thumb_func_start MOD67_021D86DC +MOD67_021D86DC: ; 0x021D86DC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x12 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r2, [r4, #2] + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200B430 + ldrh r2, [r4, #4] + ldr r0, [r5, #0x54] + mov r1, #1 + bl FUN_0200B10C + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8738 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8738: .word 0x00010200 + thumb_func_end MOD67_021D86DC + + thumb_func_start MOD67_021D873C +MOD67_021D873C: ; 0x021D873C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x13 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r2, [r4, #4] + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200B10C + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D878C ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D878C: .word 0x00010200 + thumb_func_end MOD67_021D873C + + thumb_func_start MOD67_021D8790 +MOD67_021D8790: ; 0x021D8790 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x14 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r2, [r4, #4] + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200B10C + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D87E0 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D87E0: .word 0x00010200 + thumb_func_end MOD67_021D8790 + + thumb_func_start MOD67_021D87E4 +MOD67_021D87E4: ; 0x021D87E4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x15 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D883C ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D883C: .word 0x00010200 + thumb_func_end MOD67_021D87E4 + + thumb_func_start MOD67_021D8840 +MOD67_021D8840: ; 0x021D8840 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + ldrh r4, [r2, #2] + add r5, r0, #0 + add r6, r3, #0 + str r1, [sp, #0x10] + cmp r4, #0x2f + beq _021D8858 + cmp r4, #0x40 + beq _021D8858 + cmp r4, #0x31 + bne _021D8864 +_021D8858: + ldr r0, [r5, #0x50] + mov r1, #0x17 + bl FUN_0200A914 + add r7, r0, #0 + b _021D886E +_021D8864: + ldr r0, [r5, #0x50] + mov r1, #0x16 + bl FUN_0200A914 + add r7, r0, #0 +_021D886E: + ldr r0, [r5, #0x54] + mov r1, #0 + add r2, r4, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D88A8 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D88A8: .word 0x00010200 + thumb_func_end MOD67_021D8840 + + thumb_func_start MOD67_021D88AC +MOD67_021D88AC: ; 0x021D88AC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldrh r0, [r2, #2] + add r7, r1, #0 + add r4, r3, #0 + str r0, [sp, #0x10] + bl FUN_02029960 + cmp r0, #0 + ldr r0, [r5, #0x50] + bne _021D88CC + mov r1, #0x17 + bl FUN_0200A914 + b _021D88D2 +_021D88CC: + mov r1, #0x18 + bl FUN_0200A914 +_021D88D2: + add r6, r0, #0 + ldr r0, [r5, #0x54] + ldr r2, [sp, #0x10] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r6, #0 + bl FUN_0200B7B8 + lsl r0, r4, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8910 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r5, #0x58] + add r0, r7, #0 + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8910: .word 0x00010200 + thumb_func_end MOD67_021D88AC + + thumb_func_start MOD67_021D8914 +MOD67_021D8914: ; 0x021D8914 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x19 + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D894C ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D894C: .word 0x00010200 + thumb_func_end MOD67_021D8914 + + thumb_func_start MOD67_021D8950 +MOD67_021D8950: ; 0x021D8950 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x1a + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8988 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8988: .word 0x00010200 + thumb_func_end MOD67_021D8950 + + thumb_func_start MOD67_021D898C +MOD67_021D898C: ; 0x021D898C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x1d + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r2, [r4, #6] + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AE38 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D89DC ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D89DC: .word 0x00010200 + thumb_func_end MOD67_021D898C + + thumb_func_start MOD67_021D89E0 +MOD67_021D89E0: ; 0x021D89E0 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x23 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8A38 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8A38: .word 0x00010200 + thumb_func_end MOD67_021D89E0 + + thumb_func_start MOD67_021D8A3C +MOD67_021D8A3C: ; 0x021D8A3C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x1e + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8A94 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8A94: .word 0x00010200 + thumb_func_end MOD67_021D8A3C + + thumb_func_start MOD67_021D8A98 +MOD67_021D8A98: ; 0x021D8A98 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x1f + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8AF0 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8AF0: .word 0x00010200 + thumb_func_end MOD67_021D8A98 + + thumb_func_start MOD67_021D8AF4 +MOD67_021D8AF4: ; 0x021D8AF4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x26 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8B4C ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8B4C: .word 0x00010200 + thumb_func_end MOD67_021D8AF4 + + thumb_func_start MOD67_021D8B50 +MOD67_021D8B50: ; 0x021D8B50 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x21 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8BA8 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8BA8: .word 0x00010200 + thumb_func_end MOD67_021D8B50 + + thumb_func_start MOD67_021D8BAC +MOD67_021D8BAC: ; 0x021D8BAC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x20 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8C04 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8C04: .word 0x00010200 + thumb_func_end MOD67_021D8BAC + + thumb_func_start MOD67_021D8C08 +MOD67_021D8C08: ; 0x021D8C08 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x25 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8C60 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8C60: .word 0x00010200 + thumb_func_end MOD67_021D8C08 + + thumb_func_start MOD67_021D8C64 +MOD67_021D8C64: ; 0x021D8C64 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x24 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8CBC ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8CBC: .word 0x00010200 + thumb_func_end MOD67_021D8C64 + + thumb_func_start MOD67_021D8CC0 +MOD67_021D8CC0: ; 0x021D8CC0 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x22 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8D18 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8D18: .word 0x00010200 + thumb_func_end MOD67_021D8CC0 + + thumb_func_start MOD67_021D8D1C +MOD67_021D8D1C: ; 0x021D8D1C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x29 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8D74 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8D74: .word 0x00010200 + thumb_func_end MOD67_021D8D1C + + thumb_func_start MOD67_021D8D78 +MOD67_021D8D78: ; 0x021D8D78 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x27 + add r6, r3, #0 + bl FUN_0200A914 + add r7, r0, #0 + ldrh r0, [r4, #2] + bl FUN_02034824 + add r2, r0, #0 + ldr r0, [r5, #0x54] + mov r1, #0 + bl FUN_0200AFF4 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8DD0 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D8DD0: .word 0x00010200 + thumb_func_end MOD67_021D8D78 + + thumb_func_start MOD67_021D8DD4 +MOD67_021D8DD4: ; 0x021D8DD4 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x28 + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8E0C ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8E0C: .word 0x00010200 + thumb_func_end MOD67_021D8DD4 + + thumb_func_start MOD67_021D8E10 +MOD67_021D8E10: ; 0x021D8E10 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x2a + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8E48 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8E48: .word 0x00010200 + thumb_func_end MOD67_021D8E10 + + thumb_func_start MOD67_021D8E4C +MOD67_021D8E4C: ; 0x021D8E4C + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x2b + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8E84 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8E84: .word 0x00010200 + thumb_func_end MOD67_021D8E4C + + thumb_func_start MOD67_021D8E88 +MOD67_021D8E88: ; 0x021D8E88 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x1b + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8EC0 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8EC0: .word 0x00010200 + thumb_func_end MOD67_021D8E88 + + thumb_func_start MOD67_021D8EC4 +MOD67_021D8EC4: ; 0x021D8EC4 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x1c + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8EFC ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8EFC: .word 0x00010200 + thumb_func_end MOD67_021D8EC4 + + thumb_func_start MOD67_021D8F00 +MOD67_021D8F00: ; 0x021D8F00 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + add r4, r2, #0 + str r3, [sp, #0xc] + mov r0, #0x2a + add r7, r1, #0 + bl FUN_020669C0 + str r4, [sp] + mov r1, #0 + str r1, [sp, #4] + str r1, [sp, #8] + add r6, r0, #0 + add r1, r7, #0 + mov r2, #1 + mov r3, #0x20 + bl FUN_02066DD4 + add r0, r6, #0 + bl FUN_020690E4 + add r2, r0, #0 + ldr r0, [r5, #0x54] + ldr r1, [sp, #0xc] + bl FUN_0200AC60 + add r0, r6, #0 + bl FUN_02016A18 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD67_021D8F00 + + thumb_func_start MOD67_021D8F40 +MOD67_021D8F40: ; 0x021D8F40 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r4, r2, #0 + add r5, r0, #0 + ldrb r0, [r4, #1] + add r7, r1, #0 + lsl r1, r0, #0x1e + lsr r1, r1, #0x1e + beq _021D8F58 + cmp r1, #1 + beq _021D8F64 + b _021D8F70 +_021D8F58: + ldr r0, [r5, #0x50] + mov r1, #0x2c + bl FUN_0200A914 + add r6, r0, #0 + b _021D8F9A +_021D8F64: + ldr r0, [r5, #0x50] + mov r1, #0x2d + bl FUN_0200A914 + add r6, r0, #0 + b _021D8F9A +_021D8F70: + lsl r0, r0, #0x18 + lsr r0, r0, #0x1e + bne _021D8F82 + ldr r0, [r5, #0x50] + mov r1, #0x2e + bl FUN_0200A914 + add r6, r0, #0 + b _021D8F9A +_021D8F82: + cmp r0, #1 + ldr r0, [r5, #0x50] + bne _021D8F92 + mov r1, #0x2f + bl FUN_0200A914 + add r6, r0, #0 + b _021D8F9A +_021D8F92: + mov r1, #0x2c + bl FUN_0200A914 + add r6, r0, #0 +_021D8F9A: + ldrb r2, [r4, #1] + ldrh r1, [r4, #2] + add r0, r5, #0 + lsl r2, r2, #0x18 + lsr r2, r2, #0x1e + mov r3, #0 + bl MOD67_021D8F00 + ldrb r2, [r4, #1] + ldr r0, [r5, #0x54] + mov r1, #1 + lsl r2, r2, #0x1a + lsr r2, r2, #0x1c + bl FUN_0200B468 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r0, #0x50 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8FE8 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r5, #0x58] + add r0, r7, #0 + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8FE8: .word 0x00010200 + thumb_func_end MOD67_021D8F40 + + thumb_func_start MOD67_021D8FEC +MOD67_021D8FEC: ; 0x021D8FEC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r4, r2, #0 + add r5, r0, #0 + ldrb r0, [r4, #1] + add r7, r1, #0 + lsl r1, r0, #0x1e + lsr r1, r1, #0x1e + beq _021D9004 + cmp r1, #1 + beq _021D9010 + b _021D901C +_021D9004: + ldr r0, [r5, #0x50] + mov r1, #0x30 + bl FUN_0200A914 + add r6, r0, #0 + b _021D9046 +_021D9010: + ldr r0, [r5, #0x50] + mov r1, #0x31 + bl FUN_0200A914 + add r6, r0, #0 + b _021D9046 +_021D901C: + lsl r0, r0, #0x18 + lsr r0, r0, #0x1e + bne _021D902E + ldr r0, [r5, #0x50] + mov r1, #0x32 + bl FUN_0200A914 + add r6, r0, #0 + b _021D9046 +_021D902E: + cmp r0, #1 + ldr r0, [r5, #0x50] + bne _021D903E + mov r1, #0x33 + bl FUN_0200A914 + add r6, r0, #0 + b _021D9046 +_021D903E: + mov r1, #0x30 + bl FUN_0200A914 + add r6, r0, #0 +_021D9046: + ldrb r2, [r4, #1] + ldrh r1, [r4, #2] + add r0, r5, #0 + lsl r2, r2, #0x18 + lsr r2, r2, #0x1e + mov r3, #0 + bl MOD67_021D8F00 + ldrb r2, [r4, #1] + ldr r0, [r5, #0x54] + mov r1, #1 + lsl r2, r2, #0x1a + lsr r2, r2, #0x1c + bl FUN_0200B468 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r0, #0x50 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9094 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r5, #0x58] + add r0, r7, #0 + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9094: .word 0x00010200 + thumb_func_end MOD67_021D8FEC + + thumb_func_start MOD67_021D9098 +MOD67_021D9098: ; 0x021D9098 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x20 + mov r1, #0x2a + add r7, r2, #0 + str r3, [sp, #8] + bl FUN_020219F4 + add r1, r6, #0 + add r4, r0, #0 + bl FUN_02021E28 + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, [r5, #0x54] + ldr r1, [sp, #8] + add r2, r4, #0 + add r3, r7, #0 + bl FUN_0200ABB4 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD67_021D9098 + + thumb_func_start MOD67_021D90D4 +MOD67_021D90D4: ; 0x021D90D4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r2, #0 + add r5, r0, #0 + ldrb r0, [r4, #1] + str r1, [sp, #0x10] + add r6, r3, #0 + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + beq _021D90F2 + cmp r0, #1 + beq _021D90FE + cmp r0, #2 + beq _021D910A + b _021D9114 +_021D90F2: + ldr r0, [r5, #0x50] + mov r1, #0x39 + bl FUN_0200A914 + add r7, r0, #0 + b _021D9114 +_021D90FE: + ldr r0, [r5, #0x50] + mov r1, #0x3a + bl FUN_0200A914 + add r7, r0, #0 + b _021D9114 +_021D910A: + ldr r0, [r5, #0x50] + mov r1, #0x3b + bl FUN_0200A914 + add r7, r0, #0 +_021D9114: + ldrb r2, [r4, #1] + add r0, r5, #0 + add r1, r4, #2 + lsl r2, r2, #0x1b + lsr r2, r2, #0x1f + mov r3, #0 + bl MOD67_021D9098 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9154 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D9154: .word 0x00010200 + thumb_func_end MOD67_021D90D4 + + thumb_func_start MOD67_021D9158 +MOD67_021D9158: ; 0x021D9158 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r2, #0 + add r5, r0, #0 + ldrb r0, [r4, #1] + str r1, [sp, #0x10] + add r6, r3, #0 + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + beq _021D9176 + cmp r0, #1 + beq _021D9182 + cmp r0, #2 + beq _021D918E + b _021D9198 +_021D9176: + ldr r0, [r5, #0x50] + mov r1, #0x3c + bl FUN_0200A914 + add r7, r0, #0 + b _021D9198 +_021D9182: + ldr r0, [r5, #0x50] + mov r1, #0x3d + bl FUN_0200A914 + add r7, r0, #0 + b _021D9198 +_021D918E: + ldr r0, [r5, #0x50] + mov r1, #0x3e + bl FUN_0200A914 + add r7, r0, #0 +_021D9198: + ldrb r2, [r4, #1] + add r0, r5, #0 + add r1, r4, #2 + lsl r2, r2, #0x1b + lsr r2, r2, #0x1f + mov r3, #0 + bl MOD67_021D9098 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D91D8 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D91D8: .word 0x00010200 + thumb_func_end MOD67_021D9158 + + thumb_func_start MOD67_021D91DC +MOD67_021D91DC: ; 0x021D91DC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r2, #0 + add r5, r0, #0 + ldrb r0, [r4, #1] + str r1, [sp, #0x10] + add r6, r3, #0 + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + beq _021D91FA + cmp r0, #1 + beq _021D9206 + cmp r0, #2 + beq _021D9212 + b _021D921C +_021D91FA: + ldr r0, [r5, #0x50] + mov r1, #0x3f + bl FUN_0200A914 + add r7, r0, #0 + b _021D921C +_021D9206: + ldr r0, [r5, #0x50] + mov r1, #0x40 + bl FUN_0200A914 + add r7, r0, #0 + b _021D921C +_021D9212: + ldr r0, [r5, #0x50] + mov r1, #0x41 + bl FUN_0200A914 + add r7, r0, #0 +_021D921C: + ldrb r2, [r4, #1] + add r0, r5, #0 + add r1, r4, #2 + lsl r2, r2, #0x1b + lsr r2, r2, #0x1f + mov r3, #0 + bl MOD67_021D9098 + ldrb r2, [r4, #1] + add r1, r4, #0 + add r0, r5, #0 + lsl r2, r2, #0x1a + add r1, #0x12 + lsr r2, r2, #0x1f + mov r3, #1 + bl MOD67_021D9098 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9270 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D9270: .word 0x00010200 + thumb_func_end MOD67_021D91DC + + thumb_func_start MOD67_021D9274 +MOD67_021D9274: ; 0x021D9274 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r2, #0 + add r5, r0, #0 + ldrb r0, [r4, #1] + str r1, [sp, #0x10] + add r6, r3, #0 + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + beq _021D9292 + cmp r0, #1 + beq _021D929E + cmp r0, #2 + beq _021D92AA + b _021D92B4 +_021D9292: + ldr r0, [r5, #0x50] + mov r1, #0x42 + bl FUN_0200A914 + add r7, r0, #0 + b _021D92B4 +_021D929E: + ldr r0, [r5, #0x50] + mov r1, #0x43 + bl FUN_0200A914 + add r7, r0, #0 + b _021D92B4 +_021D92AA: + ldr r0, [r5, #0x50] + mov r1, #0x44 + bl FUN_0200A914 + add r7, r0, #0 +_021D92B4: + ldrb r2, [r4, #1] + add r0, r5, #0 + add r1, r4, #2 + lsl r2, r2, #0x1b + lsr r2, r2, #0x1f + mov r3, #0 + bl MOD67_021D9098 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D92F4 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D92F4: .word 0x00010200 + thumb_func_end MOD67_021D9274 + + thumb_func_start MOD67_021D92F8 +MOD67_021D92F8: ; 0x021D92F8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r2, #0 + add r5, r0, #0 + ldrb r0, [r4, #1] + str r1, [sp, #0x10] + add r6, r3, #0 + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + beq _021D9316 + cmp r0, #1 + beq _021D9322 + cmp r0, #2 + beq _021D932E + b _021D9338 +_021D9316: + ldr r0, [r5, #0x50] + mov r1, #0x45 + bl FUN_0200A914 + add r7, r0, #0 + b _021D9338 +_021D9322: + ldr r0, [r5, #0x50] + mov r1, #0x46 + bl FUN_0200A914 + add r7, r0, #0 + b _021D9338 +_021D932E: + ldr r0, [r5, #0x50] + mov r1, #0x47 + bl FUN_0200A914 + add r7, r0, #0 +_021D9338: + ldrb r2, [r4, #1] + add r0, r5, #0 + add r1, r4, #2 + lsl r2, r2, #0x1b + lsr r2, r2, #0x1f + mov r3, #0 + bl MOD67_021D9098 + ldrb r2, [r4, #1] + add r1, r4, #0 + add r0, r5, #0 + lsl r2, r2, #0x1a + add r1, #0x12 + lsr r2, r2, #0x1f + mov r3, #1 + bl MOD67_021D9098 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D938C ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D938C: .word 0x00010200 + thumb_func_end MOD67_021D92F8 + + thumb_func_start MOD67_021D9390 +MOD67_021D9390: ; 0x021D9390 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x48 + add r6, r3, #0 + bl FUN_0200A914 + ldrb r2, [r4, #1] + add r7, r0, #0 + add r0, r5, #0 + lsl r2, r2, #0x1b + add r1, r4, #2 + lsr r2, r2, #0x1f + mov r3, #0 + bl MOD67_021D9098 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D93E8 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D93E8: .word 0x00010200 + thumb_func_end MOD67_021D9390 + + thumb_func_start MOD67_021D93EC +MOD67_021D93EC: ; 0x021D93EC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x49 + add r6, r3, #0 + bl FUN_0200A914 + ldrb r2, [r4, #1] + add r7, r0, #0 + add r0, r5, #0 + lsl r2, r2, #0x1b + add r1, r4, #2 + lsr r2, r2, #0x1f + mov r3, #0 + bl MOD67_021D9098 + ldrb r2, [r4, #1] + add r1, r4, #0 + add r0, r5, #0 + lsl r2, r2, #0x18 + add r1, #0x22 + lsr r2, r2, #0x1e + mov r3, #1 + bl MOD67_021D9098 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9454 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D9454: .word 0x00010200 + thumb_func_end MOD67_021D93EC + + thumb_func_start MOD67_021D9458 +MOD67_021D9458: ; 0x021D9458 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x4a + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9490 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D9490: .word 0x00010200 + thumb_func_end MOD67_021D9458 + + thumb_func_start MOD67_021D9494 +MOD67_021D9494: ; 0x021D9494 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x4b + add r6, r3, #0 + bl FUN_0200A914 + ldrb r2, [r4, #1] + add r1, r4, #0 + add r7, r0, #0 + lsl r2, r2, #0x18 + add r0, r5, #0 + add r1, #0x22 + lsr r2, r2, #0x1e + mov r3, #0 + bl MOD67_021D9098 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D94EC ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D94EC: .word 0x00010200 + thumb_func_end MOD67_021D9494 + + thumb_func_start MOD67_021D94F0 +MOD67_021D94F0: ; 0x021D94F0 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x4c + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9528 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D9528: .word 0x00010200 + thumb_func_end MOD67_021D94F0 + + thumb_func_start MOD67_021D952C +MOD67_021D952C: ; 0x021D952C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r2, #0 + add r5, r0, #0 + ldrb r0, [r4, #1] + str r1, [sp, #0x10] + add r6, r3, #0 + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + beq _021D954A + cmp r0, #1 + beq _021D9556 + cmp r0, #2 + beq _021D9562 + b _021D956C +_021D954A: + ldr r0, [r5, #0x50] + mov r1, #0x4d + bl FUN_0200A914 + add r7, r0, #0 + b _021D956C +_021D9556: + ldr r0, [r5, #0x50] + mov r1, #0x4e + bl FUN_0200A914 + add r7, r0, #0 + b _021D956C +_021D9562: + ldr r0, [r5, #0x50] + mov r1, #0x4f + bl FUN_0200A914 + add r7, r0, #0 +_021D956C: + ldrb r2, [r4, #1] + add r0, r5, #0 + add r1, r4, #2 + lsl r2, r2, #0x1b + lsr r2, r2, #0x1f + mov r3, #0 + bl MOD67_021D9098 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D95AC ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D95AC: .word 0x00010200 + thumb_func_end MOD67_021D952C + + thumb_func_start MOD67_021D95B0 +MOD67_021D95B0: ; 0x021D95B0 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x50 + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D95E8 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D95E8: .word 0x00010200 + thumb_func_end MOD67_021D95B0 + + thumb_func_start MOD67_021D95EC +MOD67_021D95EC: ; 0x021D95EC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + mov r1, #0x51 + add r4, r2, #0 + add r6, r3, #0 + bl FUN_0200A914 + mov r1, #0 + str r1, [sp] + mov r3, #1 + str r3, [sp, #4] + ldrb r2, [r4, #1] + add r7, r0, #0 + ldr r0, [r5, #0x54] + lsl r2, r2, #0x1c + lsr r2, r2, #0x1c + bl FUN_0200AD38 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9648 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D9648: .word 0x00010200 + thumb_func_end MOD67_021D95EC + + thumb_func_start MOD67_021D964C +MOD67_021D964C: ; 0x021D964C + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x52 + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D9684 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D9684: .word 0x00010200 + thumb_func_end MOD67_021D964C + + thumb_func_start MOD67_021D9688 +MOD67_021D9688: ; 0x021D9688 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x50] + str r1, [sp, #0x10] + add r4, r2, #0 + mov r1, #0x53 + add r6, r3, #0 + bl FUN_0200A914 + ldrb r2, [r4, #1] + add r7, r0, #0 + add r0, r5, #0 + lsl r2, r2, #0x1b + add r1, r4, #2 + lsr r2, r2, #0x1f + mov r3, #0 + bl MOD67_021D9098 + ldrb r2, [r4, #1] + add r1, r4, #0 + add r0, r5, #0 + lsl r2, r2, #0x18 + add r1, #0x22 + lsr r2, r2, #0x1e + mov r3, #1 + bl MOD67_021D9098 + ldr r0, [r5, #0x54] + ldr r1, [r5, #0x58] + add r2, r7, #0 + bl FUN_0200B7B8 + lsl r0, r6, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D96F0 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [r5, #0x58] + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D96F0: .word 0x00010200 + thumb_func_end MOD67_021D9688 + + thumb_func_start MOD67_021D96F4 +MOD67_021D96F4: ; 0x021D96F4 + push {r4, r5, r6, lr} + sub sp, #0x10 + ldr r0, [r0, #0x50] + add r6, r1, #0 + add r5, r3, #0 + mov r1, #0x54 + bl FUN_0200A914 + add r4, r0, #0 + lsl r0, r5, #4 + add r0, #0x70 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D972C ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021D972C: .word 0x00010200 + thumb_func_end MOD67_021D96F4 + + .section .rodata + ; 0x021D9730 + .incbin "baserom.nds", 0x2C0E50, 0x1E8 diff --git a/arm9/modules/68/asm/module_68.s b/arm9/modules/68/asm/module_68.s new file mode 100644 index 00000000..1ee371c6 --- /dev/null +++ b/arm9/modules/68/asm/module_68.s @@ -0,0 +1,2461 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD68_021D74E0 +MOD68_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D75CC ; =0xFFFFE0FF + ldr r3, _021D75D0 ; =0x04001000 + and r1, r0 + str r1, [r2] + ldr r1, [r3] + and r0, r1 + str r0, [r3] + add r0, r2, #0 + mov r1, #0 + add r0, #0x50 + strh r1, [r0] + add r3, #0x50 + strh r1, [r3] + mov r0, #3 + mov r1, #0x24 + lsr r2, r2, #9 + bl FUN_0201681C + mov r1, #0x81 + add r0, r4, #0 + lsl r1, r1, #2 + mov r2, #0x24 + bl FUN_02006268 + mov r2, #0x81 + mov r1, #0 + lsl r2, r2, #2 + add r5, r0, #0 + bl Call_FillMemWithValue + add r0, r4, #0 + bl FUN_0200628C + mov r1, #0x7e + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0x24 + bl FUN_02016B94 + str r0, [r5] + mov r0, #0x7e + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x24 + ldrb r0, [r0, #8] + bl FUN_02085274 + mov r1, #0x7f + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0 + mov r1, #0x24 + bl FUN_02079A70 + bl MOD_021D76A0 + ldr r0, [r5] + bl MOD_021D76C0 + add r0, r5, #0 + bl MOD_021D77A4 + bl MOD_021D7858 + add r0, r5, #0 + bl MOD_021D7870 + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + bl FUN_0201CC08 + mov r0, #4 + bl FUN_0201CC24 + add r0, r5, #0 + bl MOD_021D7EEC + add r0, r5, #0 + bl MOD_021D78C8 + add r0, r5, #0 + bl MOD_021D7D5C + add r0, r5, #0 + bl MOD_021D80B4 + add r0, r5, #0 + bl MOD_021D8294 + ldr r0, _021D75D4 ; =MOD_021D7680 + add r1, r5, #0 + bl FUN_02015F10 + bl FUN_02033F20 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D75CC: .word 0xFFFFE0FF +_021D75D0: .word 0x04001000 +_021D75D4: .word MOD_021D7680 + thumb_func_end MOD68_021D74E0 + + thumb_func_start MOD_021D75D8 +MOD_021D75D8: ; 0x021D75D8 + push {r3, r4, r5, lr} + add r4, r1, #0 + bl FUN_02006278 + ldr r1, [r4] + add r5, r0, #0 + cmp r1, #3 + bhi _021D7620 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D75F4: ; jump table + .short _021D75FC - _021D75F4 - 2 ; case 0 + .short _021D7604 - _021D75F4 - 2 ; case 1 + .short _021D760C - _021D75F4 - 2 ; case 2 + .short _021D7614 - _021D75F4 - 2 ; case 3 +_021D75FC: + bl MOD_021D7D74 + str r0, [r4] + b _021D7620 +_021D7604: + bl MOD_021D7D9C + str r0, [r4] + b _021D7620 +_021D760C: + bl MOD_021D7E84 + str r0, [r4] + b _021D7620 +_021D7614: + bl MOD_021D7E78 + cmp r0, #1 + bne _021D7620 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D7620: + add r0, r5, #0 + bl MOD_021D806C + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD_021D75D8 + + thumb_func_start MOD_021D762C +MOD_021D762C: ; 0x021D762C + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, r4, #4 + bl MOD_021D78EC + ldr r0, [r4] + bl MOD_021D7774 + bl FUN_0201CD04 + add r0, r4, #0 + bl MOD_021D78A8 + add r0, r4, #0 + bl MOD_021D80A8 + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02016A18 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x24 + bl FUN_020168D0 + ldr r0, _021D767C ; =0x04000050 + mov r1, #0 + strh r1, [r0] + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_021D767C: .word 0x04000050 + thumb_func_end MOD_021D762C + + thumb_func_start MOD_021D7680 +MOD_021D7680: ; 0x021D7680 + push {r3, lr} + ldr r0, [r0] + bl FUN_0201AB60 + ldr r3, _021D7698 ; =0x027E0000 + ldr r1, _021D769C ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + nop +_021D7698: .word 0x027E0000 +_021D769C: .word 0x00003FF8 + thumb_func_end MOD_021D7680 + + thumb_func_start MOD_021D76A0 +MOD_021D76A0: ; 0x021D76A0 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D76BC ; =0x021D892C + add r3, sp, #0 + mov r2, #5 +_021D76AA: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D76AA + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D76BC: .word 0x021D892C + thumb_func_end MOD_021D76A0 + + thumb_func_start MOD_021D76C0 +MOD_021D76C0: ; 0x021D76C0 + push {r4, r5, lr} + sub sp, #0x64 + ldr r5, _021D7764 ; =0x021D88C8 + add r3, sp, #0x54 + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + bl MOD_021D7FD8 + ldr r5, _021D7768 ; =0x021D8910 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _021D776C ; =0x021D88D8 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + mov r2, #3 + mov r3, #8 + bl FUN_0201AEE4 + ldr r5, _021D7770 ; =0x021D88F4 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #1 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x24 + bl FUN_02017F18 + add sp, #0x64 + pop {r4, r5, pc} + nop +_021D7764: .word 0x021D88C8 +_021D7768: .word 0x021D8910 +_021D776C: .word 0x021D88D8 +_021D7770: .word 0x021D88F4 + thumb_func_end MOD_021D76C0 + + thumb_func_start MOD_021D7774 +MOD_021D7774: ; 0x021D7774 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xf + mov r1, #0 + bl FUN_0201E6E4 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + mov r0, #0x24 + add r1, r4, #0 + bl FUN_02016A8C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD_021D7774 + + thumb_func_start MOD_021D77A4 +MOD_021D77A4: ; 0x021D77A4 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x24 + str r0, [sp, #0xc] + mov r1, #2 + ldr r2, [r5] + mov r0, #0x35 + add r3, r1, #0 + bl FUN_0200687C + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + str r1, [sp, #8] + mov r0, #0x24 + str r0, [sp, #0xc] + ldr r2, [r5] + mov r0, #0x35 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x24 + str r0, [sp, #0xc] + ldr r2, [r5] + mov r0, #0x35 + mov r1, #1 + mov r3, #3 + bl FUN_020068C8 + mov r2, #0 + str r2, [sp] + mov r0, #0x24 + str r0, [sp, #4] + mov r0, #0x35 + mov r1, #3 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0x24 + mov r1, #0x80 + bl FUN_02016998 + add r4, r0, #0 + ldr r0, _021D7854 ; =0x00003001 + mov r2, #0 + add r3, r4, #0 +_021D7812: + add r1, r2, r0 + strh r1, [r3] + add r2, r2, #1 + add r3, r3, #2 + cmp r2, #0x40 + blo _021D7812 + mov r0, #5 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + mov r1, #1 + add r2, r4, #0 + mov r3, #2 + bl FUN_02018148 + add r0, r4, #0 + bl FUN_02016A18 + ldr r0, [r5] + mov r1, #1 + bl FUN_02017CD0 + mov r1, #0x1e + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x24 + bl FUN_02002ED0 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D7854: .word 0x00003001 + thumb_func_end MOD_021D77A4 + + thumb_func_start MOD_021D7858 +MOD_021D7858: ; 0x021D7858 + push {r3, lr} + mov r0, #8 + str r0, [sp] + ldr r0, _021D786C ; =0x04000050 + mov r1, #1 + mov r2, #0xe + mov r3, #0x17 + bl G2x_SetBlendAlpha_ + pop {r3, pc} + .align 2, 0 +_021D786C: .word 0x04000050 + thumb_func_end MOD_021D7858 + + thumb_func_start MOD_021D7870 +MOD_021D7870: ; 0x021D7870 + push {r4, lr} + ldr r2, _021D78A4 ; =0x0000015F + add r4, r0, #0 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x24 + bl FUN_0200A86C + add r1, r4, #0 + add r1, #0xc4 + str r0, [r1] + mov r0, #0xf + mov r1, #2 + mov r2, #0 + mov r3, #0x24 + bl FUN_0200B870 + add r1, r4, #0 + add r1, #0xcc + str r0, [r1] + mov r0, #0x24 + bl FUN_0200AA80 + add r4, #0xc8 + str r0, [r4] + pop {r4, pc} + .align 2, 0 +_021D78A4: .word 0x0000015F + thumb_func_end MOD_021D7870 + + thumb_func_start MOD_021D78A8 +MOD_021D78A8: ; 0x021D78A8 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + bl FUN_0200A8B8 + add r0, r4, #0 + add r0, #0xcc + ldr r0, [r0] + bl FUN_0200B990 + add r4, #0xc8 + ldr r0, [r4] + bl FUN_0200AB18 + pop {r4, pc} + thumb_func_end MOD_021D78A8 + + thumb_func_start MOD_021D78C8 +MOD_021D78C8: ; 0x021D78C8 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + ldr r4, _021D78E8 ; =0x021D8954 + mov r6, #0 + add r5, r7, #4 +_021D78D2: + ldr r0, [r7] + add r1, r5, #0 + add r2, r4, #0 + bl FUN_02019150 + add r6, r6, #1 + add r4, #8 + add r5, #0x10 + cmp r6, #0xc + blo _021D78D2 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D78E8: .word 0x021D8954 + thumb_func_end MOD_021D78C8 + + thumb_func_start MOD_021D78EC +MOD_021D78EC: ; 0x021D78EC + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021D78F2: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #0xc + blo _021D78F2 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD_021D78EC + + thumb_func_start MOD_021D7904 +MOD_021D7904: ; 0x021D7904 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #4 + add r0, #0xc4 + lsl r4, r1, #4 + ldr r0, [r0] + add r1, r2, #0 + add r6, r3, #0 + bl FUN_0200A914 + str r0, [sp, #0x10] + mov r0, #0 + ldr r1, [sp, #0x10] + add r2, r0, #0 + bl FUN_02002E14 + add r7, r0, #0 + add r0, r5, r4 + bl FUN_0201AB0C + add r3, r0, #0 + mov r1, #0 + lsl r3, r3, #3 + sub r3, r3, r7 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r6, [sp, #8] + ldr r2, [sp, #0x10] + add r0, r5, r4 + lsr r3, r3, #1 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + bl FUN_02021A20 + add r0, r5, r4 + bl FUN_02019220 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD_021D7904 + + thumb_func_start MOD_021D7958 +MOD_021D7958: ; 0x021D7958 + push {r4, lr} + add r4, r0, #0 + add r0, r4, #4 + mov r1, #4 + bl FUN_02019620 + mov r1, #0 + ldr r3, _021D7974 ; =0x00010204 + add r0, r4, #0 + add r2, r1, #0 + bl MOD_021D7904 + pop {r4, pc} + nop +_021D7974: .word 0x00010204 + thumb_func_end MOD_021D7958 + + thumb_func_start MOD_021D7978 +MOD_021D7978: ; 0x021D7978 + push {r4, lr} + add r4, r0, #0 + add r0, #0x24 + mov r1, #0 + bl FUN_02019620 + ldr r3, _021D7994 ; =0x000F0200 + add r0, r4, #0 + mov r1, #2 + mov r2, #1 + bl MOD_021D7904 + pop {r4, pc} + nop +_021D7994: .word 0x000F0200 + thumb_func_end MOD_021D7978 + + thumb_func_start MOD_021D7998 +MOD_021D7998: ; 0x021D7998 + push {r4, lr} + add r4, r0, #0 + add r0, #0x34 + mov r1, #0 + bl FUN_02019620 + ldr r3, _021D79B4 ; =0x000F0200 + add r0, r4, #0 + mov r1, #3 + mov r2, #2 + bl MOD_021D7904 + pop {r4, pc} + nop +_021D79B4: .word 0x000F0200 + thumb_func_end MOD_021D7998 + + thumb_func_start MOD_021D79B8 +MOD_021D79B8: ; 0x021D79B8 + push {r4, lr} + add r4, r0, #0 + add r0, #0x44 + mov r1, #0 + bl FUN_02019620 + ldr r3, _021D79D4 ; =0x000F0200 + add r0, r4, #0 + mov r1, #4 + mov r2, #3 + bl MOD_021D7904 + pop {r4, pc} + nop +_021D79D4: .word 0x000F0200 + thumb_func_end MOD_021D79B8 + + thumb_func_start MOD_021D79D8 +MOD_021D79D8: ; 0x021D79D8 + push {r4, lr} + add r4, r0, #0 + add r0, #0x54 + mov r1, #0 + bl FUN_02019620 + ldr r3, _021D79F4 ; =0x000F0200 + add r0, r4, #0 + mov r1, #5 + mov r2, #4 + bl MOD_021D7904 + pop {r4, pc} + nop +_021D79F4: .word 0x000F0200 + thumb_func_end MOD_021D79D8 + + thumb_func_start MOD_021D79F8 +MOD_021D79F8: ; 0x021D79F8 + push {r4, lr} + add r4, r0, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_02019620 + ldr r3, _021D7A14 ; =0x000F0200 + add r0, r4, #0 + mov r1, #6 + mov r2, #5 + bl MOD_021D7904 + pop {r4, pc} + nop +_021D7A14: .word 0x000F0200 + thumb_func_end MOD_021D79F8 + + thumb_func_start MOD_021D7A18 +MOD_021D7A18: ; 0x021D7A18 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + add r4, r5, #0 + add r4, #0x14 + add r0, r4, #0 + mov r1, #0 + bl FUN_02019620 + mov r0, #5 + str r0, [sp] + add r0, r5, #0 + add r0, #0xcc + ldr r0, [r0] + mov r1, #2 + add r2, r4, #0 + mov r3, #0 + bl FUN_0200B9A8 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #6 + bl FUN_0200A914 + add r7, r0, #0 + mov r0, #6 + mov r1, #0x24 + bl FUN_020219F4 + mov r3, #2 + add r6, r0, #0 + mov r2, #0x7e + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r5, #0 + ldrb r2, [r2, #8] + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + add r2, r2, #1 + bl FUN_0200AD38 + add r0, r5, #0 + add r0, #0xc8 + ldr r0, [r0] + add r1, r6, #0 + add r2, r7, #0 + bl FUN_0200B7B8 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7AE0 ; =0x000F0200 + add r2, r6, #0 + str r0, [sp, #8] + add r0, r4, #0 + mov r3, #0x10 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x7e + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x24 + ldrb r0, [r0, #8] + bl FUN_020852E8 + add r5, r0, #0 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7AE0 ; =0x000F0200 + add r2, r5, #0 + str r0, [sp, #8] + add r0, r4, #0 + mov r3, #0x28 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_02019220 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D7AE0: .word 0x000F0200 + thumb_func_end MOD_021D7A18 + + thumb_func_start MOD_021D7AE4 +MOD_021D7AE4: ; 0x021D7AE4 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + add r5, r4, #0 + add r5, #0xb4 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x7e + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x24 + ldrb r0, [r0, #8] + bl FUN_02085310 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7B30 ; =0x00010200 + add r2, r4, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl FUN_02019220 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D7B30: .word 0x00010200 + thumb_func_end MOD_021D7AE4 + + thumb_func_start MOD_021D7B34 +MOD_021D7B34: ; 0x021D7B34 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + add r5, r4, #0 + add r5, #0x94 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r4, #0xc4 + ldr r0, [r4] + mov r1, #0xa + bl FUN_0200A914 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7B7C ; =0x000F0200 + add r2, r4, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl FUN_02019220 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D7B7C: .word 0x000F0200 + thumb_func_end MOD_021D7B34 + + thumb_func_start MOD_021D7B80 +MOD_021D7B80: ; 0x021D7B80 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + add r5, r4, #0 + add r5, #0xa4 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_02085290 + add r1, r0, #0 + beq _021D7BA4 + sub r1, r1, #1 +_021D7BA4: + add r4, #0xc4 + ldr r0, [r4] + add r1, #0xb + bl FUN_0200A914 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7BD8 ; =0x000F0200 + add r2, r4, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl FUN_02019220 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7BD8: .word 0x000F0200 + thumb_func_end MOD_021D7B80 + + thumb_func_start MOD_021D7BDC +MOD_021D7BDC: ; 0x021D7BDC + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + add r5, r4, #0 + add r5, #0x74 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r4, #0xc4 + ldr r0, [r4] + mov r1, #8 + bl FUN_0200A914 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7C24 ; =0x000F0200 + add r2, r4, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl FUN_02019220 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D7C24: .word 0x000F0200 + thumb_func_end MOD_021D7BDC + + thumb_func_start MOD_021D7C28 +MOD_021D7C28: ; 0x021D7C28 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + add r6, r5, #0 + add r6, #0x84 + add r0, r6, #0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02085290 + mov r1, #0xfa + lsl r1, r1, #2 + mul r1, r0 + add r0, r1, #0 + mov r1, #0xfe + bl _u32_div_f + add r0, r0, #5 + mov r1, #0xa + bl _u32_div_f + add r7, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #9 + bl FUN_0200A914 + str r0, [sp, #0x10] + mov r0, #0x20 + mov r1, #0x24 + bl FUN_020219F4 + add r4, r0, #0 + add r0, r7, #0 + mov r1, #0xa + bl _u32_div_f + mov r1, #0 + add r2, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r3, #2 + bl FUN_0200AD38 + add r0, r7, #0 + mov r1, #0xa + bl _u32_div_f + mov r0, #0 + add r2, r1, #0 + str r0, [sp] + mov r1, #1 + add r0, r5, #0 + str r1, [sp, #4] + add r0, #0xc8 + ldr r0, [r0] + add r3, r1, #0 + bl FUN_0200AD38 + add r5, #0xc8 + ldr r0, [r5] + ldr r2, [sp, #0x10] + add r1, r4, #0 + bl FUN_0200B7B8 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7CEC ; =0x000F0200 + add r2, r4, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_02019220 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D7CEC: .word 0x000F0200 + thumb_func_end MOD_021D7C28 + + thumb_func_start MOD_021D7CF0 +MOD_021D7CF0: ; 0x021D7CF0 + push {r4, lr} + add r4, r0, #0 + cmp r1, #7 + bhi _021D7D5A + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7D04: ; jump table + .short _021D7D14 - _021D7D04 - 2 ; case 0 + .short _021D7D1A - _021D7D04 - 2 ; case 1 + .short _021D7D20 - _021D7D04 - 2 ; case 2 + .short _021D7D26 - _021D7D04 - 2 ; case 3 + .short _021D7D32 - _021D7D04 - 2 ; case 4 + .short _021D7D3E - _021D7D04 - 2 ; case 5 + .short _021D7D4A - _021D7D04 - 2 ; case 6 + .short _021D7D56 - _021D7D04 - 2 ; case 7 +_021D7D14: + bl MOD_021D7958 + pop {r4, pc} +_021D7D1A: + bl MOD_021D7978 + pop {r4, pc} +_021D7D20: + bl MOD_021D7A18 + pop {r4, pc} +_021D7D26: + bl MOD_021D79F8 + add r0, r4, #0 + bl MOD_021D7998 + pop {r4, pc} +_021D7D32: + bl MOD_021D79B8 + add r0, r4, #0 + bl MOD_021D79D8 + pop {r4, pc} +_021D7D3E: + bl MOD_021D7BDC + add r0, r4, #0 + bl MOD_021D7C28 + pop {r4, pc} +_021D7D4A: + bl MOD_021D7B34 + add r0, r4, #0 + bl MOD_021D7B80 + pop {r4, pc} +_021D7D56: + bl MOD_021D7AE4 +_021D7D5A: + pop {r4, pc} + thumb_func_end MOD_021D7CF0 + + thumb_func_start MOD_021D7D5C +MOD_021D7D5C: ; 0x021D7D5C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021D7D62: + lsl r1, r4, #0x18 + add r0, r5, #0 + lsr r1, r1, #0x18 + bl MOD_021D7CF0 + add r4, r4, #1 + cmp r4, #8 + blo _021D7D62 + pop {r3, r4, r5, pc} + thumb_func_end MOD_021D7D5C + + thumb_func_start MOD_021D7D74 +MOD_021D7D74: ; 0x021D7D74 + push {r3, lr} + bl FUN_0200E308 + cmp r0, #1 + bne _021D7D92 + mov r0, #0 + str r0, [sp] + ldr r0, _021D7D98 ; =0x04000050 + mov r1, #2 + mov r2, #4 + mov r3, #0x10 + bl G2x_SetBlendAlpha_ + mov r0, #1 + pop {r3, pc} +_021D7D92: + mov r0, #0 + pop {r3, pc} + nop +_021D7D98: .word 0x04000050 + thumb_func_end MOD_021D7D74 + + thumb_func_start MOD_021D7D9C +MOD_021D7D9C: ; 0x021D7D9C + push {r4, lr} + ldr r1, _021D7E70 ; =0x021C48B8 + add r4, r0, #0 + ldr r3, [r1, #0x44] + mov r2, #0x40 + add r0, r3, #0 + tst r0, r2 + beq _021D7DF8 + mov r0, #0x7e + lsl r0, r0, #2 + ldr r0, [r4, r0] + sub r2, #0x41 + ldrb r1, [r0, #8] + bl MOD_021D7F44 + mov r1, #0x7e + lsl r1, r1, #2 + ldr r3, [r4, r1] + ldrb r2, [r3, #8] + cmp r2, r0 + beq _021D7DF4 + strb r0, [r3, #8] + add r0, r1, #0 + mov r2, #0 + add r0, #9 + strb r2, [r4, r0] + add r0, r1, #0 + add r0, #8 + strb r2, [r4, r0] + ldr r1, [r4, r1] + ldrb r0, [r1, #0xa] + cmp r0, #3 + bne _021D7DEA + ldrb r0, [r1, #9] + cmp r0, #0 + beq _021D7DEA + sub r0, r0, #1 + strb r0, [r1, #9] + b _021D7DF0 +_021D7DEA: + ldrb r0, [r1, #0xa] + sub r0, r0, #1 + strb r0, [r1, #0xa] +_021D7DF0: + mov r0, #2 + pop {r4, pc} +_021D7DF4: + mov r0, #1 + pop {r4, pc} +_021D7DF8: + mov r0, #0x80 + tst r0, r3 + beq _021D7E50 + mov r0, #0x7e + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r2, #1 + ldrb r1, [r0, #8] + bl MOD_021D7F44 + mov r1, #0x7e + lsl r1, r1, #2 + ldr r3, [r4, r1] + ldrb r2, [r3, #8] + cmp r2, r0 + beq _021D7E4C + strb r0, [r3, #8] + add r0, r1, #0 + mov r2, #0 + add r0, #9 + strb r2, [r4, r0] + add r0, r1, #0 + add r0, #8 + strb r2, [r4, r0] + ldr r3, [r4, r1] + ldrb r0, [r3, #0xa] + cmp r0, #5 + bne _021D7E42 + ldrb r1, [r3, #9] + ldrb r0, [r3, #0xb] + add r2, r1, #0 + add r2, #9 + cmp r2, r0 + bge _021D7E42 + add r0, r1, #1 + strb r0, [r3, #9] + b _021D7E48 +_021D7E42: + ldrb r0, [r3, #0xa] + add r0, r0, #1 + strb r0, [r3, #0xa] +_021D7E48: + mov r0, #2 + pop {r4, pc} +_021D7E4C: + mov r0, #1 + pop {r4, pc} +_021D7E50: + ldr r1, [r1, #0x48] + mov r0, #2 + tst r0, r1 + bne _021D7E60 + ldr r0, _021D7E74 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021D7E6C +_021D7E60: + mov r0, #1 + mov r1, #0x24 + bl FUN_02079A70 + mov r0, #3 + pop {r4, pc} +_021D7E6C: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021D7E70: .word 0x021C48B8 +_021D7E74: .word 0x021C48F8 + thumb_func_end MOD_021D7D9C + + thumb_func_start MOD_021D7E78 +MOD_021D7E78: ; 0x021D7E78 + push {r3, lr} + bl FUN_0200E308 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} + thumb_func_end MOD_021D7E78 + + thumb_func_start MOD_021D7E84 +MOD_021D7E84: ; 0x021D7E84 + push {r3, r4, r5, lr} + mov r4, #2 + add r5, r0, #0 + lsl r1, r4, #8 + ldrb r1, [r5, r1] + cmp r1, #0 + bne _021D7EA8 + ldr r0, _021D7EE4 ; =0x00000201 + ldrb r1, [r5, r0] + add r1, r1, #4 + strb r1, [r5, r0] + ldrb r0, [r5, r0] + cmp r0, #0x10 + bne _021D7ECE + mov r1, #1 + lsl r0, r1, #9 + strb r1, [r5, r0] + b _021D7ECE +_021D7EA8: + cmp r1, #1 + bne _021D7EB8 + bl MOD_021D7F98 + add r1, r4, #0 + lsl r0, r1, #8 + strb r1, [r5, r0] + b _021D7ECE +_021D7EB8: + ldr r0, _021D7EE4 ; =0x00000201 + ldrb r1, [r5, r0] + sub r1, r1, #4 + strb r1, [r5, r0] + ldrb r1, [r5, r0] + cmp r1, #0 + bne _021D7ECE + mov r1, #0 + sub r0, r0, #1 + strb r1, [r5, r0] + mov r4, #1 +_021D7ECE: + ldr r0, _021D7EE4 ; =0x00000201 + ldrb r2, [r5, r0] + mov r0, #0x10 + sub r1, r0, r2 + lsl r0, r2, #8 + orr r1, r0 + ldr r0, _021D7EE8 ; =0x04000052 + strh r1, [r0] + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_021D7EE4: .word 0x00000201 +_021D7EE8: .word 0x04000052 + thumb_func_end MOD_021D7E84 + + thumb_func_start MOD_021D7EEC +MOD_021D7EEC: ; 0x021D7EEC + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x7e + lsl r0, r0, #2 + ldr r0, [r4, r0] + ldrb r0, [r0, #8] + bl MOD_021D7F3C + mov r3, #1 + add r1, r0, #0 + str r3, [sp] + mov r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x24 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x35 + bl FUN_0200687C + mov r0, #0x7e + lsl r0, r0, #2 + ldr r0, [r4, r0] + ldrb r0, [r0, #8] + bl MOD_021D7F40 + add r1, r0, #0 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x24 + str r0, [sp, #4] + mov r0, #0x35 + mov r2, #0 + mov r3, #0x60 + bl FUN_02006930 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD_021D7EEC + + thumb_func_start MOD_021D7F3C +MOD_021D7F3C: ; 0x021D7F3C + add r0, r0, #6 + bx lr + thumb_func_end MOD_021D7F3C + + thumb_func_start MOD_021D7F40 +MOD_021D7F40: ; 0x021D7F40 + add r0, #0x46 + bx lr + thumb_func_end MOD_021D7F40 + + thumb_func_start MOD_021D7F44 +MOD_021D7F44: ; 0x021D7F44 + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + add r5, r2, #0 + add r6, r0, #0 + add r4, r7, #0 + cmp r5, #0 + bge _021D7F72 + cmp r7, #0 + beq _021D7F92 +_021D7F56: + sub r4, r4, #1 + lsl r1, r4, #0x10 + add r0, r6, #0 + lsr r1, r1, #0x10 + bl FUN_02085224 + cmp r0, #1 + bne _021D7F6C + add r7, r4, #0 + add r5, r5, #1 + beq _021D7F92 +_021D7F6C: + cmp r4, #0 + beq _021D7F92 + b _021D7F56 +_021D7F72: + cmp r7, #0x3f + beq _021D7F92 +_021D7F76: + add r4, r4, #1 + lsl r1, r4, #0x10 + add r0, r6, #0 + lsr r1, r1, #0x10 + bl FUN_02085224 + cmp r0, #1 + bne _021D7F8E + lsl r0, r4, #0x10 + lsr r7, r0, #0x10 + sub r5, r5, #1 + beq _021D7F92 +_021D7F8E: + cmp r4, #0x3f + bne _021D7F76 +_021D7F92: + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD_021D7F44 + + thumb_func_start MOD_021D7F98 +MOD_021D7F98: ; 0x021D7F98 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02016A18 + mov r0, #0x7e + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x24 + ldrb r0, [r0, #8] + bl FUN_02085274 + mov r1, #0x7f + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD_021D7D5C + add r0, r4, #0 + bl MOD_021D7EEC + add r0, r4, #0 + bl MOD_021D85F4 + ldr r0, [r4] + mov r1, #1 + bl FUN_02017CD0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD_021D7F98 + + thumb_func_start MOD_021D7FD8 +MOD_021D7FD8: ; 0x021D7FD8 + push {r3, r4, lr} + sub sp, #4 + bl G3X_Init + bl G3X_InitMtxStack + ldr r0, _021D8050 ; =0x04000060 + ldr r1, _021D8054 ; =0xFFFFCFFD + ldrh r2, [r0] + ldr r3, _021D8058 ; =0x0000CFFB + and r2, r1 + strh r2, [r0] + ldrh r2, [r0] + and r2, r3 + strh r2, [r0] + add r2, r1, #2 + ldrh r4, [r0] + add r1, r1, #2 + sub r3, #0x1c + and r4, r2 + mov r2, #8 + orr r2, r4 + strh r2, [r0] + ldrh r2, [r0] + and r2, r1 + mov r1, #0x10 + orr r1, r2 + strh r1, [r0] + ldrh r1, [r0] + and r1, r3 + strh r1, [r0] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl G3X_SetFog + mov r0, #0 + ldr r2, _021D805C ; =0x00007FFF + add r1, r0, #0 + mov r3, #0x3f + str r0, [sp] + bl G3X_SetClearColor + ldr r1, _021D8060 ; =0x04000540 + mov r0, #0 + str r0, [r1] + ldr r0, _021D8064 ; =0xBFFF0000 + str r0, [r1, #0x40] + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r1, _021D8068 ; =0x04000008 + mov r0, #3 + ldrh r2, [r1] + bic r2, r0 + strh r2, [r1] + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021D8050: .word 0x04000060 +_021D8054: .word 0xFFFFCFFD +_021D8058: .word 0x0000CFFB +_021D805C: .word 0x00007FFF +_021D8060: .word 0x04000540 +_021D8064: .word 0xBFFF0000 +_021D8068: .word 0x04000008 + thumb_func_end MOD_021D7FD8 + + thumb_func_start MOD_021D806C +MOD_021D806C: ; 0x021D806C + push {r4, lr} + add r4, r0, #0 + bl FUN_020222AC + bl FUN_0201EBA4 + ldr r2, _021D80A0 ; =0x04000440 + mov r3, #0 + add r1, r2, #0 + str r3, [r2] + add r1, #0x14 + str r3, [r1] + mov r0, #2 + str r0, [r2] + add r0, r4, #0 + add r0, #0xd4 + str r3, [r1] + bl MOD_021D8124 + add r0, r4, #0 + bl MOD_021D81C0 + ldr r0, _021D80A4 ; =0x04000540 + mov r1, #1 + str r1, [r0] + pop {r4, pc} + .align 2, 0 +_021D80A0: .word 0x04000440 +_021D80A4: .word 0x04000540 + thumb_func_end MOD_021D806C + + thumb_func_start MOD_021D80A8 +MOD_021D80A8: ; 0x021D80A8 + ldr r3, _021D80B0 ; =FUN_0201EB70 + add r0, #0xd0 + ldr r0, [r0] + bx r3 + .align 2, 0 +_021D80B0: .word FUN_0201EB70 + thumb_func_end MOD_021D80A8 + + thumb_func_start MOD_021D80B4 +MOD_021D80B4: ; 0x021D80B4 + push {r3, r4, lr} + sub sp, #0x1c + ldr r3, _021D811C ; =0x021D88BC + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0x10 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, sp, #8 + str r0, [r2] + mov r0, #0 + strh r0, [r1] + strh r0, [r1, #2] + strh r0, [r1, #4] + strh r0, [r1, #6] + mov r0, #0x24 + bl FUN_0201EB64 + add r1, r4, #0 + add r1, #0xd0 + str r0, [r1] + mov r1, #1 + add r0, r4, #0 + str r1, [sp] + add r0, #0xd0 + ldr r0, [r0] + ldr r3, _021D8120 ; =0x000005C1 + str r0, [sp, #4] + add r0, sp, #0x10 + lsl r1, r1, #0x10 + add r2, sp, #8 + bl FUN_0201ED10 + add r2, r4, #0 + add r2, #0xd0 + mov r1, #0x19 + ldr r2, [r2] + mov r0, #0 + lsl r1, r1, #0xe + bl FUN_0201EC94 + add r0, r4, #0 + add r0, #0xd0 + ldr r0, [r0] + bl FUN_0201EC88 + add r4, #0xd0 + ldr r0, [r4] + bl FUN_0201EB8C + add sp, #0x1c + pop {r3, r4, pc} + .align 2, 0 +_021D811C: .word 0x021D88BC +_021D8120: .word 0x000005C1 + thumb_func_end MOD_021D80B4 + + thumb_func_start MOD_021D8124 +MOD_021D8124: ; 0x021D8124 + push {r4, r5, r6, r7} + add r4, r0, #0 + ldr r0, _021D818C ; =0x121800C0 + ldr r1, _021D8190 ; =0x040004A4 + ldr r2, _021D8194 ; =0x00003FE8 + str r0, [r1] + mov r0, #1 + str r0, [r1, #0x5c] + ldr r0, _021D8198 ; =0x0400048C + mov r3, #0 + sub r1, #0x24 +_021D813A: + str r2, [r1] + ldrh r7, [r4, #2] + ldrh r5, [r4] + ldrh r6, [r4, #4] + lsl r7, r7, #0x10 + orr r5, r7 + str r5, [r0] + str r6, [r0] + str r2, [r1] + ldrh r7, [r4, #8] + ldrh r5, [r4, #6] + ldrh r6, [r4, #0xa] + lsl r7, r7, #0x10 + orr r5, r7 + str r5, [r0] + str r6, [r0] + str r2, [r1] + ldrh r7, [r4, #0x14] + ldrh r5, [r4, #0x12] + ldrh r6, [r4, #0x16] + lsl r7, r7, #0x10 + orr r5, r7 + str r5, [r0] + str r6, [r0] + str r2, [r1] + ldrh r7, [r4, #0xe] + ldrh r5, [r4, #0xc] + ldrh r6, [r4, #0x10] + lsl r7, r7, #0x10 + orr r5, r7 + str r5, [r0] + add r3, r3, #1 + add r4, #0x18 + str r6, [r0] + cmp r3, #4 + blo _021D813A + ldr r0, _021D819C ; =0x04000504 + mov r1, #0 + str r1, [r0] + pop {r4, r5, r6, r7} + bx lr + .align 2, 0 +_021D818C: .word 0x121800C0 +_021D8190: .word 0x040004A4 +_021D8194: .word 0x00003FE8 +_021D8198: .word 0x0400048C +_021D819C: .word 0x04000504 + thumb_func_end MOD_021D8124 + + thumb_func_start MOD_021D81A0 +MOD_021D81A0: ; 0x021D81A0 + mov r2, #0 + ldrsh r3, [r0, r2] + ldrsh r2, [r1, r2] + add r2, r3, r2 + strh r2, [r0] + mov r2, #2 + ldrsh r3, [r0, r2] + ldrsh r2, [r1, r2] + add r2, r3, r2 + strh r2, [r0, #2] + mov r2, #4 + ldrsh r3, [r0, r2] + ldrsh r1, [r1, r2] + add r1, r3, r1 + strh r1, [r0, #4] + bx lr + thumb_func_end MOD_021D81A0 + + thumb_func_start MOD_021D81C0 +MOD_021D81C0: ; 0x021D81C0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r0, [sp] + mov r0, #0x7d + ldr r1, [sp] + lsl r0, r0, #2 + ldr r1, [r1, r0] + cmp r1, #4 + beq _021D828E + cmp r1, #3 + bne _021D81FA + ldr r6, [sp] + mov r5, #0 + sub r0, #0x60 +_021D81DC: + add r3, r6, #0 + add r4, r6, r0 + add r3, #0xd4 + mov r2, #0xc +_021D81E4: + ldrh r1, [r4] + add r4, r4, #2 + strh r1, [r3] + add r3, r3, #2 + sub r2, r2, #1 + bne _021D81E4 + add r5, r5, #1 + add r6, #0x18 + cmp r5, #4 + blo _021D81DC + b _021D8280 +_021D81FA: + mov r1, #0 + str r1, [sp, #4] + add r2, r0, #0 + ldr r1, [sp] + sub r2, #0xc0 + add r1, r1, r2 + str r1, [sp, #0x14] + ldr r1, [sp] + add r2, r0, #0 + str r1, [sp, #0x10] + add r1, #0xd4 + str r1, [sp, #0x10] + ldr r1, [sp] + sub r2, #0xba + add r1, r1, r2 + add r2, r0, #0 + str r1, [sp, #0xc] + ldr r1, [sp] + sub r2, #0xb4 + str r1, [sp, #8] + add r1, #0xda + str r1, [sp, #8] + ldr r1, [sp] + sub r0, #0xae + add r4, r1, #0 + add r5, r1, #0 + add r7, r1, r2 + add r4, #0xe0 + add r6, r1, r0 + add r5, #0xe6 +_021D8236: + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + bl MOD_021D81A0 + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + bl MOD_021D81A0 + add r0, r4, #0 + add r1, r7, #0 + bl MOD_021D81A0 + add r0, r5, #0 + add r1, r6, #0 + bl MOD_021D81A0 + ldr r0, [sp, #0x14] + add r7, #0x18 + add r0, #0x18 + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + add r4, #0x18 + add r0, #0x18 + str r0, [sp, #0x10] + ldr r0, [sp, #0xc] + add r6, #0x18 + add r0, #0x18 + str r0, [sp, #0xc] + ldr r0, [sp, #8] + add r5, #0x18 + add r0, #0x18 + str r0, [sp, #8] + ldr r0, [sp, #4] + add r0, r0, #1 + str r0, [sp, #4] + cmp r0, #4 + blo _021D8236 +_021D8280: + mov r1, #0x7d + ldr r0, [sp] + lsl r1, r1, #2 + ldr r0, [r0, r1] + add r2, r0, #1 + ldr r0, [sp] + str r2, [r0, r1] +_021D828E: + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD_021D81C0 + + thumb_func_start MOD_021D8294 +MOD_021D8294: ; 0x021D8294 + push {r4, r5, r6, lr} + sub sp, #0x18 + ldr r1, _021D840C ; =0x021D89BC + add r5, r0, #0 + ldrh r2, [r1, #0x34] + add r3, sp, #0 + add r5, #0xd8 + strh r2, [r3, #0x12] + ldrh r2, [r1, #0x36] + strh r2, [r3, #0x14] + ldrh r1, [r1, #0x38] + strh r1, [r3, #0x16] + add r1, r0, #0 + ldrh r4, [r3, #0x12] + add r1, #0xd4 + strh r4, [r1] + add r1, r0, #0 + ldrh r2, [r3, #0x14] + add r1, #0xd6 + strh r2, [r1] + ldrh r1, [r3, #0x16] + strh r1, [r5] + add r5, r0, #0 + add r5, #0xda + strh r4, [r5] + add r5, r0, #0 + add r5, #0xdc + strh r2, [r5] + add r5, r0, #0 + add r5, #0xde + strh r1, [r5] + add r5, r0, #0 + add r5, #0xe0 + strh r4, [r5] + add r5, r0, #0 + add r5, #0xe2 + strh r2, [r5] + add r5, r0, #0 + add r5, #0xe4 + strh r1, [r5] + add r5, r0, #0 + add r5, #0xe6 + strh r4, [r5] + add r4, r0, #0 + add r4, #0xe8 + strh r2, [r4] + add r2, r0, #0 + add r2, #0xea + strh r1, [r2] + ldr r1, _021D8410 ; =0x021D89FC + add r5, r0, #0 + ldrh r2, [r1, #0x2a] + add r5, #0xf0 + strh r2, [r3, #0xc] + ldrh r2, [r1, #0x2c] + strh r2, [r3, #0xe] + ldrh r1, [r1, #0x2e] + add r2, r0, #0 + add r2, #0xec + strh r1, [r3, #0x10] + ldrh r1, [r3, #0xc] + strh r1, [r2] + add r2, r0, #0 + ldrh r4, [r3, #0xe] + add r2, #0xee + strh r4, [r2] + ldrh r2, [r3, #0x10] + strh r2, [r5] + add r5, r0, #0 + add r5, #0xf2 + strh r1, [r5] + add r5, r0, #0 + add r5, #0xf4 + strh r4, [r5] + add r5, r0, #0 + add r5, #0xf6 + strh r2, [r5] + add r5, r0, #0 + add r5, #0xf8 + strh r1, [r5] + add r5, r0, #0 + add r5, #0xfa + strh r4, [r5] + add r5, r0, #0 + add r5, #0xfc + strh r2, [r5] + add r5, r0, #0 + add r5, #0xfe + strh r1, [r5] + mov r1, #1 + lsl r1, r1, #8 + strh r4, [r0, r1] + add r4, r1, #2 + strh r2, [r0, r4] + ldr r2, _021D8414 ; =0x021D8A3C + ldrh r4, [r2, #0x20] + strh r4, [r3, #6] + ldrh r4, [r2, #0x22] + strh r4, [r3, #8] + ldrh r2, [r2, #0x24] + strh r2, [r3, #0xa] + ldrh r6, [r3, #6] + add r2, r1, #4 + strh r6, [r0, r2] + ldrh r5, [r3, #8] + add r2, r1, #6 + strh r5, [r0, r2] + add r2, r1, #0 + ldrh r4, [r3, #0xa] + add r2, #8 + strh r4, [r0, r2] + add r2, r1, #0 + add r2, #0xa + strh r6, [r0, r2] + add r2, r1, #0 + add r2, #0xc + strh r5, [r0, r2] + add r2, r1, #0 + add r2, #0xe + strh r4, [r0, r2] + add r2, r1, #0 + add r2, #0x10 + strh r6, [r0, r2] + add r2, r1, #0 + add r2, #0x12 + strh r5, [r0, r2] + add r2, r1, #0 + add r2, #0x14 + strh r4, [r0, r2] + add r2, r1, #0 + add r2, #0x16 + strh r6, [r0, r2] + add r2, r1, #0 + add r2, #0x18 + strh r5, [r0, r2] + add r2, r1, #0 + add r2, #0x1a + strh r4, [r0, r2] + ldr r2, _021D8418 ; =0x021D8A7C + ldrh r4, [r2, #0x16] + strh r4, [r3] + ldrh r4, [r2, #0x18] + strh r4, [r3, #2] + ldrh r2, [r2, #0x1a] + strh r2, [r3, #4] + add r2, r1, #0 + ldrh r5, [r3] + add r2, #0x1c + strh r5, [r0, r2] + add r2, r1, #0 + ldrh r4, [r3, #2] + add r2, #0x1e + strh r4, [r0, r2] + ldrh r2, [r3, #4] + add r3, r1, #0 + add r3, #0x20 + strh r2, [r0, r3] + add r3, r1, #0 + add r3, #0x22 + strh r5, [r0, r3] + add r3, r1, #0 + add r3, #0x24 + strh r4, [r0, r3] + add r3, r1, #0 + add r3, #0x26 + strh r2, [r0, r3] + add r3, r1, #0 + add r3, #0x28 + strh r5, [r0, r3] + add r3, r1, #0 + add r3, #0x2a + strh r4, [r0, r3] + add r3, r1, #0 + add r3, #0x2c + strh r2, [r0, r3] + add r3, r1, #0 + add r3, #0x2e + strh r5, [r0, r3] + add r3, r1, #0 + add r3, #0x30 + strh r4, [r0, r3] + add r1, #0x32 + strh r2, [r0, r1] + bl MOD_021D85F4 + add sp, #0x18 + pop {r4, r5, r6, pc} + nop +_021D840C: .word 0x021D89BC +_021D8410: .word 0x021D89FC +_021D8414: .word 0x021D8A3C +_021D8418: .word 0x021D8A7C + thumb_func_end MOD_021D8294 + + thumb_func_start MOD_021D841C +MOD_021D841C: ; 0x021D841C + push {r4, r5} + cmp r2, #0xff + bne _021D8432 + ldrh r2, [r0] + strh r2, [r1] + ldrh r2, [r0, #2] + strh r2, [r1, #2] + ldrh r0, [r0, #4] + strh r0, [r1, #4] + pop {r4, r5} + bx lr +_021D8432: + cmp r2, #0 + bne _021D8446 + ldrh r2, [r0, #6] + strh r2, [r1] + ldrh r2, [r0, #8] + strh r2, [r1, #2] + ldrh r0, [r0, #0xa] + strh r0, [r1, #4] + pop {r4, r5} + bx lr +_021D8446: + mov r3, #6 + ldrsh r5, [r0, r3] + mov r3, #0xc + ldrsh r3, [r0, r3] + add r4, r3, #0 + mul r4, r2 + add r3, r5, r4 + strh r3, [r1] + mov r3, #8 + ldrsh r5, [r0, r3] + mov r3, #0xe + ldrsh r3, [r0, r3] + add r4, r3, #0 + mul r4, r2 + add r3, r5, r4 + strh r3, [r1, #2] + mov r3, #0xa + ldrsh r4, [r0, r3] + mov r3, #0x10 + ldrsh r0, [r0, r3] + mul r2, r0 + add r0, r4, r2 + strh r0, [r1, #4] + pop {r4, r5} + bx lr + thumb_func_end MOD_021D841C + + thumb_func_start MOD_021D8478 +MOD_021D8478: ; 0x021D8478 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r0, #0 + ldrsh r1, [r4, r0] + ldrsh r0, [r5, r0] + add r6, r2, #0 + sub r7, r1, r0 + add r0, r7, #0 + bl _fflt + ldr r1, _021D85EC ; =0x45800000 + bl _fdiv + ldr r1, _021D85F0 ; =0x40800000 + bl _fdiv + mov r1, #0 + bl _fgr + bls _021D84CC + add r0, r7, #0 + bl _fflt + ldr r1, _021D85EC ; =0x45800000 + bl _fdiv + ldr r1, _021D85F0 ; =0x40800000 + bl _fdiv + add r1, r0, #0 + ldr r0, _021D85EC ; =0x45800000 + bl _fmul + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + bl _ffix + b _021D84F2 +_021D84CC: + add r0, r7, #0 + bl _fflt + ldr r1, _021D85EC ; =0x45800000 + bl _fdiv + ldr r1, _021D85F0 ; =0x40800000 + bl _fdiv + add r1, r0, #0 + ldr r0, _021D85EC ; =0x45800000 + bl _fmul + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub + bl _ffix +_021D84F2: + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + strh r0, [r6] + mov r0, #2 + ldrsh r1, [r4, r0] + ldrsh r0, [r5, r0] + sub r7, r1, r0 + add r0, r7, #0 + bl _fflt + ldr r1, _021D85EC ; =0x45800000 + bl _fdiv + ldr r1, _021D85F0 ; =0x40800000 + bl _fdiv + mov r1, #0 + bl _fgr + bls _021D8544 + add r0, r7, #0 + bl _fflt + ldr r1, _021D85EC ; =0x45800000 + bl _fdiv + ldr r1, _021D85F0 ; =0x40800000 + bl _fdiv + add r1, r0, #0 + ldr r0, _021D85EC ; =0x45800000 + bl _fmul + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + bl _ffix + b _021D856A +_021D8544: + add r0, r7, #0 + bl _fflt + ldr r1, _021D85EC ; =0x45800000 + bl _fdiv + ldr r1, _021D85F0 ; =0x40800000 + bl _fdiv + add r1, r0, #0 + ldr r0, _021D85EC ; =0x45800000 + bl _fmul + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub + bl _ffix +_021D856A: + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + strh r0, [r6, #2] + mov r0, #4 + ldrsh r1, [r4, r0] + ldrsh r0, [r5, r0] + sub r4, r1, r0 + add r0, r4, #0 + bl _fflt + ldr r1, _021D85EC ; =0x45800000 + bl _fdiv + ldr r1, _021D85F0 ; =0x40800000 + bl _fdiv + mov r1, #0 + bl _fgr + bls _021D85BC + add r0, r4, #0 + bl _fflt + ldr r1, _021D85EC ; =0x45800000 + bl _fdiv + ldr r1, _021D85F0 ; =0x40800000 + bl _fdiv + add r1, r0, #0 + ldr r0, _021D85EC ; =0x45800000 + bl _fmul + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + bl _ffix + b _021D85E2 +_021D85BC: + add r0, r4, #0 + bl _fflt + ldr r1, _021D85EC ; =0x45800000 + bl _fdiv + ldr r1, _021D85F0 ; =0x40800000 + bl _fdiv + add r1, r0, #0 + ldr r0, _021D85EC ; =0x45800000 + bl _fmul + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub + bl _ffix +_021D85E2: + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + strh r0, [r6, #4] + pop {r3, r4, r5, r6, r7, pc} + nop +_021D85EC: .word 0x45800000 +_021D85F0: .word 0x40800000 + thumb_func_end MOD_021D8478 + + thumb_func_start MOD_021D85F4 +MOD_021D85F4: ; 0x021D85F4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + add r5, r0, #0 + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #5 + bl FUN_02085290 + add r2, r0, #0 + mov r1, #0x65 + lsl r1, r1, #2 + lsl r2, r2, #0x18 + ldr r0, _021D885C ; =0x021D89B4 + add r1, r5, r1 + lsr r2, r2, #0x18 + bl MOD_021D841C + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #6 + bl FUN_02085290 + add r2, r0, #0 + ldr r1, _021D8860 ; =0x0000019A + lsl r2, r2, #0x18 + ldr r0, _021D8864 ; =0x021D89C6 + add r1, r5, r1 + lsr r2, r2, #0x18 + bl MOD_021D841C + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #7 + bl FUN_02085290 + add r2, r0, #0 + ldr r1, _021D8868 ; =0x000001A6 + lsl r2, r2, #0x18 + ldr r0, _021D886C ; =0x021D89D8 + add r1, r5, r1 + lsr r2, r2, #0x18 + bl MOD_021D841C + mov r1, #0x1a + lsl r1, r1, #4 + ldr r0, _021D8870 ; =0x021D89EA + add r1, r5, r1 + mov r2, #0 + bl MOD_021D841C + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #9 + bl FUN_02085290 + add r2, r0, #0 + mov r1, #0x6b + lsl r1, r1, #2 + lsl r2, r2, #0x18 + ldr r0, _021D8874 ; =0x021D89FC + add r1, r5, r1 + lsr r2, r2, #0x18 + bl MOD_021D841C + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #5 + bl FUN_02085290 + add r2, r0, #0 + ldr r1, _021D8878 ; =0x000001B2 + lsl r2, r2, #0x18 + ldr r0, _021D887C ; =0x021D8A0E + add r1, r5, r1 + lsr r2, r2, #0x18 + bl MOD_021D841C + ldr r1, _021D8880 ; =0x000001BE + ldr r0, _021D8884 ; =0x021D8A20 + add r1, r5, r1 + mov r2, #0 + bl MOD_021D841C + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #8 + bl FUN_02085290 + add r2, r0, #0 + mov r1, #0x6e + lsl r1, r1, #2 + lsl r2, r2, #0x18 + ldr r0, _021D8888 ; =0x021D8A32 + add r1, r5, r1 + lsr r2, r2, #0x18 + bl MOD_021D841C + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #9 + bl FUN_02085290 + add r2, r0, #0 + mov r1, #0x71 + lsl r1, r1, #2 + lsl r2, r2, #0x18 + ldr r0, _021D888C ; =0x021D8A44 + add r1, r5, r1 + lsr r2, r2, #0x18 + bl MOD_021D841C + ldr r1, _021D8890 ; =0x000001CA + ldr r0, _021D8894 ; =0x021D8A56 + add r1, r5, r1 + mov r2, #0 + bl MOD_021D841C + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #7 + bl FUN_02085290 + add r2, r0, #0 + ldr r1, _021D8898 ; =0x000001D6 + lsl r2, r2, #0x18 + ldr r0, _021D889C ; =0x021D8A68 + add r1, r5, r1 + lsr r2, r2, #0x18 + bl MOD_021D841C + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #8 + bl FUN_02085290 + add r2, r0, #0 + mov r1, #0x1d + lsl r1, r1, #4 + lsl r2, r2, #0x18 + ldr r0, _021D88A0 ; =0x021D8A7A + add r1, r5, r1 + lsr r2, r2, #0x18 + bl MOD_021D841C + mov r1, #0x77 + lsl r1, r1, #2 + ldr r0, _021D88A4 ; =0x021D8A8C + add r1, r5, r1 + mov r2, #0 + bl MOD_021D841C + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #6 + bl FUN_02085290 + add r2, r0, #0 + ldr r1, _021D88A8 ; =0x000001E2 + lsl r2, r2, #0x18 + ldr r0, _021D88AC ; =0x021D8A9E + add r1, r5, r1 + lsr r2, r2, #0x18 + bl MOD_021D841C + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #7 + bl FUN_02085290 + add r2, r0, #0 + ldr r1, _021D88B0 ; =0x000001EE + lsl r2, r2, #0x18 + ldr r0, _021D88B4 ; =0x021D8AB0 + add r1, r5, r1 + lsr r2, r2, #0x18 + bl MOD_021D841C + mov r0, #0x7f + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #8 + bl FUN_02085290 + add r2, r0, #0 + mov r1, #0x7a + lsl r1, r1, #2 + lsl r2, r2, #0x18 + ldr r0, _021D88B8 ; =0x021D8AC2 + add r1, r5, r1 + lsr r2, r2, #0x18 + bl MOD_021D841C + mov r0, #0 + str r0, [sp, #0x24] + mov r0, #0x4d + lsl r0, r0, #2 + add r1, r5, r0 + str r1, [sp, #0x20] + add r1, r0, #0 + add r1, #0x60 + add r1, r5, r1 + str r1, [sp, #0x1c] + add r1, r5, #0 + str r1, [sp, #0x18] + add r1, #0xd4 + str r1, [sp, #0x18] + add r1, r0, #6 + add r1, r5, r1 + str r1, [sp, #0x14] + add r1, r0, #0 + add r1, #0x66 + add r1, r5, r1 + str r1, [sp, #0x10] + add r1, r5, #0 + str r1, [sp, #0xc] + add r1, #0xda + str r1, [sp, #0xc] + add r1, r0, #0 + add r1, #0xc + add r1, r5, r1 + str r1, [sp, #8] + add r1, r0, #0 + add r1, #0x6c + add r1, r5, r1 + str r1, [sp, #4] + add r1, r5, #0 + str r1, [sp] + add r1, #0xe0 + str r1, [sp] + add r1, r0, #0 + add r1, #0x12 + add r0, #0x72 + add r4, r5, #0 + add r7, r5, r1 + add r6, r5, r0 + add r4, #0xe6 +_021D87E2: + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0x20] + bl MOD_021D8478 + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x14] + bl MOD_021D8478 + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r2, [sp, #8] + bl MOD_021D8478 + add r0, r4, #0 + add r1, r6, #0 + add r2, r7, #0 + bl MOD_021D8478 + ldr r0, [sp, #0x20] + add r7, #0x18 + add r0, #0x18 + str r0, [sp, #0x20] + ldr r0, [sp, #0x1c] + add r6, #0x18 + add r0, #0x18 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x18] + add r4, #0x18 + add r0, #0x18 + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + add r0, #0x18 + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + add r0, #0x18 + str r0, [sp, #0x10] + ldr r0, [sp, #0xc] + add r0, #0x18 + str r0, [sp, #0xc] + ldr r0, [sp, #8] + add r0, #0x18 + str r0, [sp, #8] + ldr r0, [sp, #4] + add r0, #0x18 + str r0, [sp, #4] + ldr r0, [sp] + add r0, #0x18 + str r0, [sp] + ldr r0, [sp, #0x24] + add r0, r0, #1 + str r0, [sp, #0x24] + cmp r0, #4 + blo _021D87E2 + mov r0, #0x7d + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D885C: .word 0x021D89B4 +_021D8860: .word 0x0000019A +_021D8864: .word 0x021D89C6 +_021D8868: .word 0x000001A6 +_021D886C: .word 0x021D89D8 +_021D8870: .word 0x021D89EA +_021D8874: .word 0x021D89FC +_021D8878: .word 0x000001B2 +_021D887C: .word 0x021D8A0E +_021D8880: .word 0x000001BE +_021D8884: .word 0x021D8A20 +_021D8888: .word 0x021D8A32 +_021D888C: .word 0x021D8A44 +_021D8890: .word 0x000001CA +_021D8894: .word 0x021D8A56 +_021D8898: .word 0x000001D6 +_021D889C: .word 0x021D8A68 +_021D88A0: .word 0x021D8A7A +_021D88A4: .word 0x021D8A8C +_021D88A8: .word 0x000001E2 +_021D88AC: .word 0x021D8A9E +_021D88B0: .word 0x000001EE +_021D88B4: .word 0x021D8AB0 +_021D88B8: .word 0x021D8AC2 + thumb_func_end MOD_021D85F4 + + .section .rodata + ; 0x021D88BC + .incbin "baserom.nds", 0x2C25DC, 0x218 diff --git a/arm9/modules/69/asm/module_69.s b/arm9/modules/69/asm/module_69.s new file mode 100644 index 00000000..6470d422 --- /dev/null +++ b/arm9/modules/69/asm/module_69.s @@ -0,0 +1,4143 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD69_0222D5C0 +MOD69_0222D5C0: ; 0x0222D5C0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #3 + mov r1, #0x3f + lsl r2, r0, #0x10 + bl FUN_0201681C + ldr r1, _0222D70C ; =0x00001B60 + add r0, r5, #0 + mov r2, #0x3f + bl FUN_02006268 + add r4, r0, #0 + add r0, r5, #0 + bl FUN_0200628C + mov r2, #0x4e + str r0, [r4, #0xc] + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #2 + mov r3, #0x3f + bl FUN_0200A86C + ldr r1, _0222D710 ; =0x00001B5C + str r0, [r4, r1] + mov r0, #0x7d + lsl r0, r0, #2 + mov r1, #0x3f + bl FUN_020219F4 + ldr r1, _0222D714 ; =0x00001B54 + str r0, [r4, r1] + mov r0, #0x7d + lsl r0, r0, #2 + mov r1, #0x3f + bl FUN_020219F4 + ldr r1, _0222D718 ; =0x00001B58 + str r0, [r4, r1] + mov r0, #0x3f + bl FUN_0200AA80 + ldr r1, _0222D71C ; =0x00001B50 + str r0, [r4, r1] + mov r0, #0 + str r0, [r4, #4] + ldr r0, [r4, #0xc] + ldr r0, [r0, #4] + bl FUN_0206B9AC + add r6, r0, #0 + mov r5, #0 + cmp r6, #0 + ble _0222D664 + mov r7, #0x7b + lsl r7, r7, #2 +_0222D63A: + ldr r0, [r4, #0xc] + add r1, r5, #0 + ldr r0, [r0, #4] + bl FUN_0206B9B0 + mov r1, #0x4c + mov r2, #0 + bl FUN_020671BC + cmp r0, #0 + bne _0222D65E + ldr r0, [r4, #4] + lsl r0, r0, #2 + add r0, r4, r0 + str r5, [r0, r7] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_0222D65E: + add r5, r5, #1 + cmp r5, r6 + blt _0222D63A +_0222D664: + add r0, r4, #0 + bl MOD69_0222DBAC + add r0, r4, #0 + bl MOD69_0222DD54 + add r0, r4, #0 + bl MOD69_0222DE98 + ldr r0, _0222D720 ; =0x00001B3C + mov r1, #0 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD69_0222EDCC + ldr r1, _0222D724 ; =0x00001B38 + mov r2, #5 + str r0, [r4, r1] + ldr r0, [r4, r1] + ldr r1, _0222D728 ; =0xFFFFF493 + lsl r2, r2, #0xe + bl MOD69_0222EEBC + ldr r0, _0222D724 ; =0x00001B38 + mov r2, #0xf + ldr r0, [r4, r0] + ldr r1, _0222D72C ; =0xFFFFF923 + lsl r2, r2, #0xe + bl MOD69_0222EEBC + ldr r0, _0222D724 ; =0x00001B38 + mov r2, #0xa + ldr r0, [r4, r0] + ldr r1, _0222D730 ; =0xFFFFFDB6 + lsl r2, r2, #0xe + bl MOD69_0222EEBC + ldr r0, _0222D724 ; =0x00001B38 + mov r2, #0x23 + ldr r0, [r4, r0] + ldr r1, _0222D734 ; =0x0000024A + lsl r2, r2, #0xe + bl MOD69_0222EEBC + ldr r0, _0222D724 ; =0x00001B38 + mov r2, #0x1e + ldr r0, [r4, r0] + ldr r1, _0222D738 ; =0x000006DD + lsl r2, r2, #0xe + bl MOD69_0222EEBC + ldr r0, _0222D724 ; =0x00001B38 + mov r2, #0xa + ldr r0, [r4, r0] + ldr r1, _0222D73C ; =0x00000B6D + lsl r2, r2, #0x10 + bl MOD69_0222EEBC + add r0, r4, #0 + bl MOD69_0222F1B0 + ldr r1, _0222D720 ; =0x00001B3C + ldr r2, _0222D740 ; =0x04000304 + str r0, [r4, r1] + ldrh r1, [r2] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2] + mov r0, #0 + str r0, [r4] + ldr r0, _0222D744 ; =MOD69_0222DB2C + add r1, r4, #0 + mov r2, #6 + bl MOD69_0222DBA4 + ldr r1, _0222D748 ; =0x00001B34 + mov r2, #1 + str r0, [r4, r1] + ldr r1, _0222D74C ; =0x00000493 + mov r0, #8 + bl FUN_0200433C + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222D70C: .word 0x00001B60 +_0222D710: .word 0x00001B5C +_0222D714: .word 0x00001B54 +_0222D718: .word 0x00001B58 +_0222D71C: .word 0x00001B50 +_0222D720: .word 0x00001B3C +_0222D724: .word 0x00001B38 +_0222D728: .word 0xFFFFF493 +_0222D72C: .word 0xFFFFF923 +_0222D730: .word 0xFFFFFDB6 +_0222D734: .word 0x0000024A +_0222D738: .word 0x000006DD +_0222D73C: .word 0x00000B6D +_0222D740: .word 0x04000304 +_0222D744: .word MOD69_0222DB2C +_0222D748: .word 0x00001B34 +_0222D74C: .word 0x00000493 + + thumb_func_start MOD69_0222D750 +MOD69_0222D750: ; 0x0222D750 + push {r4, r5, r6, lr} + add r5, r1, #0 + ldr r1, [r5] + add r6, r0, #0 + cmp r1, #0 + beq _0222D762 + cmp r1, #1 + beq _0222D7C6 + b _0222D7D2 +_0222D762: + bl FUN_02006278 + add r4, r0, #0 + ldr r0, _0222D7D8 ; =0x00001B34 + ldr r0, [r4, r0] + bl FUN_0200CAB4 + ldr r0, _0222D7DC ; =0x00001B3C + ldr r0, [r4, r0] + bl MOD69_0222F360 + ldr r0, _0222D7E0 ; =0x00001B38 + ldr r0, [r4, r0] + bl MOD69_0222F150 + add r0, r4, #0 + bl MOD69_0222E1A0 + add r0, r4, #0 + bl MOD69_0222DE88 + add r0, r4, #0 + bl MOD69_0222DD18 + ldr r0, _0222D7E4 ; =0x00001B50 + ldr r0, [r4, r0] + bl FUN_0200AB18 + ldr r0, _0222D7E8 ; =0x00001B54 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _0222D7EC ; =0x00001B58 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _0222D7F0 ; =0x00001B5C + ldr r0, [r4, r0] + bl FUN_0200A8B8 + add r0, r6, #0 + bl FUN_0200627C + mov r0, #0x3f + bl FUN_020168D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0222D7D2 +_0222D7C6: + bl MOD69_0222F19C + cmp r0, #0 + beq _0222D7D2 + mov r0, #1 + pop {r4, r5, r6, pc} +_0222D7D2: + mov r0, #0 + pop {r4, r5, r6, pc} + nop +_0222D7D8: .word 0x00001B34 +_0222D7DC: .word 0x00001B3C +_0222D7E0: .word 0x00001B38 +_0222D7E4: .word 0x00001B50 +_0222D7E8: .word 0x00001B54 +_0222D7EC: .word 0x00001B58 +_0222D7F0: .word 0x00001B5C + + thumb_func_start MOD69_0222D7F4 +MOD69_0222D7F4: ; 0x0222D7F4 + push {r3, r4, r5, lr} + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #5 + bhs _0222D820 + lsl r2, r1, #2 + ldr r1, _0222D824 ; =0x0222F7D4 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _0222D81C + mov r0, #0 + str r0, [r4] + str r0, [r4, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] +_0222D81C: + mov r0, #0 + pop {r3, r4, r5, pc} +_0222D820: + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222D824: .word 0x0222F7D4 + + thumb_func_start MOD69_0222D828 +MOD69_0222D828: ; 0x0222D828 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _0222D83A + cmp r0, #1 + beq _0222D858 + b _0222D866 +_0222D83A: + mov r0, #0x10 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3f + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222D866 +_0222D858: + bl FUN_0200E308 + cmp r0, #0 + beq _0222D866 + add sp, #0xc + mov r0, #1 + pop {r3, r4, pc} +_0222D866: + mov r0, #0 + add sp, #0xc + pop {r3, r4, pc} + + thumb_func_start MOD69_0222D86C +MOD69_0222D86C: ; 0x0222D86C + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _0222D87E + cmp r0, #1 + beq _0222D8A6 + b _0222D8BC +_0222D87E: + mov r0, #2 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3f + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + mov r0, #0 + mov r1, #0x1e + bl FUN_020053CC + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222D8BC +_0222D8A6: + bl FUN_0200E308 + cmp r0, #0 + beq _0222D8BC + bl FUN_02005404 + cmp r0, #0 + bne _0222D8BC + add sp, #0xc + mov r0, #1 + pop {r3, r4, pc} +_0222D8BC: + mov r0, #0 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + + thumb_func_start MOD69_0222D8C4 +MOD69_0222D8C4: ; 0x0222D8C4 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #8] + cmp r1, #0 + beq _0222D8D6 + sub r0, r1, #1 + str r0, [r4, #8] + mov r0, #0 + pop {r4, pc} +_0222D8D6: + ldr r1, [r4] + cmp r1, #6 + bhi _0222D9CC + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0222D8E8: ; jump table + .short _0222D8F6 - _0222D8E8 - 2 ; case 0 + .short _0222D900 - _0222D8E8 - 2 ; case 1 + .short _0222D920 - _0222D8E8 - 2 ; case 2 + .short _0222D936 - _0222D8E8 - 2 ; case 3 + .short _0222D956 - _0222D8E8 - 2 ; case 4 + .short _0222D978 - _0222D8E8 - 2 ; case 5 + .short _0222D992 - _0222D8E8 - 2 ; case 6 +_0222D8F6: + ldr r0, _0222D9D0 ; =0x0222F960 + mov r2, #0 + str r2, [r0] + add r0, r1, #1 + str r0, [r4] +_0222D900: + ldr r1, _0222D9D0 ; =0x0222F960 + add r0, r4, #0 + ldr r1, [r1] + mov r2, #0 + bl MOD69_0222E218 + ldr r1, _0222D9D0 ; =0x0222F960 + add r0, r4, #0 + ldr r1, [r1] + mov r2, #1 + bl MOD69_0222E53C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222D9CC +_0222D920: + mov r1, #0 + bl MOD69_0222DB14 + cmp r0, #0 + beq _0222D9CC + mov r0, #0x14 + str r0, [r4, #8] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222D9CC +_0222D936: + ldr r1, _0222D9D0 ; =0x0222F960 + mov r2, #1 + ldr r1, [r1] + mov r3, #0 + bl MOD69_0222E6FC + ldr r1, _0222D9D0 ; =0x0222F960 + add r0, r4, #0 + ldr r1, [r1] + mov r2, #1 + bl MOD69_0222E804 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222D9CC +_0222D956: + mov r1, #0 + bl MOD69_0222DB14 + cmp r0, #0 + beq _0222D9CC + add r0, r4, #0 + mov r1, #1 + bl MOD69_0222DB14 + cmp r0, #0 + beq _0222D9CC + mov r0, #0x1e + str r0, [r4, #8] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222D9CC +_0222D978: + mov r1, #0 + bl MOD69_0222EA84 + ldr r1, _0222D9D0 ; =0x0222F960 + add r0, r4, #0 + ldr r1, [r1] + mov r2, #1 + bl MOD69_0222E590 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222D9CC +_0222D992: + mov r1, #0 + bl MOD69_0222DB14 + cmp r0, #0 + beq _0222D9CC + ldr r0, _0222D9D0 ; =0x0222F960 + ldr r0, [r0] + lsl r0, r0, #2 + add r1, r4, r0 + mov r0, #0x15 + lsl r0, r0, #4 + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 + ldr r0, _0222D9D0 ; =0x0222F960 + ldr r1, [r0] + add r1, r1, #1 + str r1, [r0] + ldr r0, [r4, #4] + cmp r1, r0 + bge _0222D9C8 + mov r0, #0x1e + str r0, [r4, #8] + mov r0, #1 + str r0, [r4] + b _0222D9CC +_0222D9C8: + mov r0, #1 + pop {r4, pc} +_0222D9CC: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_0222D9D0: .word 0x0222F960 + + thumb_func_start MOD69_0222D9D4 +MOD69_0222D9D4: ; 0x0222D9D4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r1, [r4, #8] + cmp r1, #0 + beq _0222D9EA + sub r0, r1, #1 + str r0, [r4, #8] + add sp, #0x10 + mov r0, #0 + pop {r4, pc} +_0222D9EA: + ldr r1, [r4] + cmp r1, #8 + bhi _0222DAD4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222D9FC: ; jump table + .short _0222DA0E - _0222D9FC - 2 ; case 0 + .short _0222DA2E - _0222D9FC - 2 ; case 1 + .short _0222DA44 - _0222D9FC - 2 ; case 2 + .short _0222DA66 - _0222D9FC - 2 ; case 3 + .short _0222DA74 - _0222D9FC - 2 ; case 4 + .short _0222DA90 - _0222D9FC - 2 ; case 5 + .short _0222DA9E - _0222D9FC - 2 ; case 6 + .short _0222DAB4 - _0222D9FC - 2 ; case 7 + .short _0222DAC4 - _0222D9FC - 2 ; case 8 +_0222DA0E: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r0, #0x3f + str r0, [sp, #0xc] + ldr r2, [r4, #0x10] + mov r0, #0x69 + mov r3, #3 + bl FUN_020068C8 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222DAD4 +_0222DA2E: + mov r1, #0 + bl MOD69_0222E2D8 + add r0, r4, #0 + mov r1, #1 + bl MOD69_0222E5F0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222DAD4 +_0222DA44: + mov r1, #0 + bl MOD69_0222DB14 + cmp r0, #0 + beq _0222DAD4 + add r0, r4, #0 + mov r1, #1 + bl MOD69_0222DB14 + cmp r0, #0 + beq _0222DAD4 + mov r0, #0x14 + str r0, [r4, #8] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222DAD4 +_0222DA66: + mov r1, #0 + bl MOD69_0222E644 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222DAD4 +_0222DA74: + mov r1, #0 + bl MOD69_0222DB14 + cmp r0, #0 + beq _0222DAD4 + add r0, r4, #0 + bl MOD69_0222EB4C + mov r0, #0x14 + str r0, [r4, #8] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222DAD4 +_0222DA90: + mov r1, #0 + bl MOD69_0222EC60 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222DAD4 +_0222DA9E: + mov r1, #0 + bl MOD69_0222DB14 + cmp r0, #0 + beq _0222DAD4 + mov r0, #0x14 + str r0, [r4, #8] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222DAD4 +_0222DAB4: + ldr r0, _0222DADC ; =0x00001B3C + ldr r0, [r4, r0] + bl MOD69_0222F378 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222DAD4 +_0222DAC4: + ldr r0, _0222DAE0 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _0222DAD4 + add sp, #0x10 + mov r0, #1 + pop {r4, pc} +_0222DAD4: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_0222DADC: .word 0x00001B3C +_0222DAE0: .word 0x021C48B8 + + thumb_func_start MOD69_0222DAE4 +MOD69_0222DAE4: ; 0x0222DAE4 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4] + cmp r1, #0 + beq _0222DAF4 + cmp r1, #1 + beq _0222DB02 + b _0222DB10 +_0222DAF4: + mov r1, #0 + bl MOD69_0222E6A0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0222DB10 +_0222DB02: + mov r1, #0 + bl MOD69_0222DB14 + cmp r0, #0 + beq _0222DB10 + mov r0, #1 + pop {r4, pc} +_0222DB10: + mov r0, #0 + pop {r4, pc} + + thumb_func_start MOD69_0222DB14 +MOD69_0222DB14: ; 0x0222DB14 + lsl r1, r1, #2 + add r1, r0, r1 + mov r0, #0x6d + lsl r0, r0, #6 + ldr r0, [r1, r0] + cmp r0, #0 + bne _0222DB26 + mov r0, #1 + bx lr +_0222DB26: + mov r0, #0 + bx lr + .align 2, 0 + + thumb_func_start MOD69_0222DB2C +MOD69_0222DB2C: ; 0x0222DB2C + push {r4, lr} + sub sp, #8 + ldr r0, _0222DB94 ; =0x04000600 + add r4, r1, #0 + ldr r1, [r0] + mov r0, #2 + lsl r0, r0, #0x1a + tst r0, r1 + bne _0222DB8E + bl G3X_ResetMtxStack + mov r1, #0 + mov r0, #0x11 + add r2, r1, #0 + bl FUN_020BB1C0 + ldr r0, _0222DB98 ; =0x00001B38 + ldr r0, [r4, r0] + bl MOD69_0222F11C + mov r2, #1 + mov r0, #0x12 + add r1, sp, #4 + str r2, [sp, #4] + bl FUN_020BB1C0 + mov r1, #0 + mov r0, #0x11 + add r2, r1, #0 + bl FUN_020BB1C0 + ldr r0, _0222DB9C ; =0x00001B3C + ldr r0, [r4, r0] + bl MOD69_0222F63C + mov r2, #1 + mov r0, #0x12 + add r1, sp, #0 + str r2, [sp] + bl FUN_020BB1C0 + ldr r0, _0222DBA0 ; =0x04000540 + mov r1, #1 + str r1, [r0] + ldr r0, [r4, #0x24] + bl FUN_0201FDEC + bl FUN_02009F80 +_0222DB8E: + add sp, #8 + pop {r4, pc} + nop +_0222DB94: .word 0x04000600 +_0222DB98: .word 0x00001B38 +_0222DB9C: .word 0x00001B3C +_0222DBA0: .word 0x04000540 + + thumb_func_start MOD69_0222DBA4 +MOD69_0222DBA4: ; 0x0222DBA4 + ldr r3, _0222DBA8 ; =FUN_0200CA60 + bx r3 + .align 2, 0 +_0222DBA8: .word FUN_0200CA60 + + thumb_func_start MOD69_0222DBAC +MOD69_0222DBAC: ; 0x0222DBAC + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0x3f + bl FUN_02016B94 + str r0, [r4, #0x10] + ldr r0, _0222DCF4 ; =0x0222F8CC + bl FUN_0201E66C + ldr r2, _0222DCF8 ; =0x04000304 + ldr r0, _0222DCFC ; =0xFFFF7FFF + ldrh r1, [r2] + and r0, r1 + strh r0, [r2] + ldr r0, _0222DD00 ; =0x0222F7C4 + bl FUN_02016BBC + ldr r0, [r4, #0x10] + ldr r2, _0222DD04 ; =0x0222F850 + mov r1, #1 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + ldr r2, _0222DD08 ; =0x0222F818 + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + ldr r2, _0222DD0C ; =0x0222F834 + mov r1, #3 + mov r3, #0 + bl FUN_02016C18 + mov r2, #0 + str r2, [sp] + mov r1, #1 + ldr r0, [r4, #0x10] + add r3, r1, #0 + bl FUN_02017F48 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r4, #0x10] + mov r1, #1 + add r3, r2, #0 + bl FUN_02018540 + mov r3, #0 + add r1, r4, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r2, #1 + str r2, [sp, #0xc] + str r2, [sp, #0x10] + ldr r0, [r4, #0x10] + add r1, #0x14 + bl FUN_02019064 + add r0, r4, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019548 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019270 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3f + str r0, [sp, #0xc] + mov r1, #3 + ldr r2, [r4, #0x10] + mov r0, #0x69 + add r3, r1, #0 + bl FUN_0200687C + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3f + str r0, [sp, #0xc] + ldr r2, [r4, #0x10] + mov r0, #0x69 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3f + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x69 + mov r1, #4 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3f + str r0, [sp, #0xc] + mov r1, #2 + ldr r2, [r4, #0x10] + mov r0, #0x69 + add r3, r1, #0 + bl FUN_020068C8 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_02017CD0 + ldr r0, _0222DD10 ; =0x04000040 + mov r1, #0 + strh r1, [r0] + add r4, r0, #0 + strh r1, [r0, #4] + add r4, #8 + ldrh r3, [r4] + mov r2, #0x3f + mov r1, #0x1b + bic r3, r2 + orr r1, r3 + mov r3, #0x20 + orr r1, r3 + strh r1, [r4] + add r0, #0xa + ldrh r4, [r0] + mov r1, #0x1f + bic r4, r2 + orr r1, r4 + orr r1, r3 + strh r1, [r0] + lsl r2, r3, #0x15 + ldr r1, [r2] + ldr r0, _0222DD14 ; =0xFFFF1FFF + and r1, r0 + lsl r0, r3, #8 + orr r0, r1 + str r0, [r2] + add sp, #0x14 + pop {r3, r4, pc} + nop +_0222DCF4: .word 0x0222F8CC +_0222DCF8: .word 0x04000304 +_0222DCFC: .word 0xFFFF7FFF +_0222DD00: .word 0x0222F7C4 +_0222DD04: .word 0x0222F850 +_0222DD08: .word 0x0222F818 +_0222DD0C: .word 0x0222F834 +_0222DD10: .word 0x04000040 +_0222DD14: .word 0xFFFF1FFF + + thumb_func_start MOD69_0222DD18 +MOD69_0222DD18: ; 0x0222DD18 + push {r4, lr} + mov r2, #1 + lsl r2, r2, #0x1a + add r4, r0, #0 + ldr r1, [r2] + ldr r0, _0222DD50 ; =0xFFFF1FFF + and r0, r1 + str r0, [r2] + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019178 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 +_0222DD50: .word 0xFFFF1FFF + + thumb_func_start MOD69_0222DD54 +MOD69_0222DD54: ; 0x0222DD54 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl FUN_020BB7F4 + bl G3X_InitMtxStack + ldr r0, _0222DDE4 ; =0x04000060 + ldr r2, _0222DDE8 ; =0xFFFFCFFD + ldrh r1, [r0] + and r1, r2 + strh r1, [r0] + ldrh r3, [r0] + add r1, r2, #2 + and r3, r1 + mov r1, #0x10 + orr r1, r3 + strh r1, [r0] + ldrh r3, [r0] + ldr r1, _0222DDEC ; =0x0000CFFB + and r1, r3 + strh r1, [r0] + add r1, r2, #2 + ldrh r3, [r0] + lsr r2, r2, #0x11 + and r3, r1 + mov r1, #8 + orr r1, r3 + strh r1, [r0] + mov r0, #0 + add r1, r0, #0 + mov r3, #0x3f + str r0, [sp] + bl G3X_SetClearColor + ldr r1, _0222DDF0 ; =0x04000540 + mov r0, #2 + str r0, [r1] + ldr r0, _0222DDF4 ; =0xBFFF0000 + str r0, [r1, #0x40] + mov r0, #1 + add r1, r0, #0 + bl FUN_020AEB70 + mov r0, #1 + lsl r0, r0, #0xe + mov r1, #1 + bl FUN_020AEDF4 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r0, _0222DDF8 ; =0x04000008 + mov r1, #3 + ldrh r2, [r0] + bic r2, r1 + mov r1, #2 + orr r1, r2 + strh r1, [r0] + mov r1, #0 + add r0, #0x48 + mov r2, #0x18 + add r3, r1, #0 + str r1, [sp] + bl G2x_SetBlendAlpha_ + add r0, r4, #0 + bl MOD69_0222DDFC + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222DDE4: .word 0x04000060 +_0222DDE8: .word 0xFFFFCFFD +_0222DDEC: .word 0x0000CFFB +_0222DDF0: .word 0x04000540 +_0222DDF4: .word 0xBFFF0000 +_0222DDF8: .word 0x04000008 + + thumb_func_start MOD69_0222DDFC +MOD69_0222DDFC: ; 0x0222DDFC + push {r4, lr} + sub sp, #0x18 + add r4, r0, #0 + mov r0, #0x3f + bl FUN_0201EB64 + ldr r2, _0222DE80 ; =0x00001B1C + ldr r3, _0222DE84 ; =0x00000FA4 + str r0, [r4, r2] + mov r0, #0 + add r1, r2, #4 + str r0, [r4, r1] + add r1, r2, #0 + add r1, #8 + str r0, [r4, r1] + add r1, r2, #0 + add r1, #0xc + str r0, [r4, r1] + add r1, r2, #0 + add r1, #0x10 + strh r0, [r4, r1] + add r1, r2, #0 + add r1, #0x12 + strh r0, [r4, r1] + add r1, r2, #0 + add r1, #0x14 + strh r0, [r4, r1] + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4, r2] + mov r1, #5 + str r0, [sp, #8] + add r0, r2, #4 + add r2, #0x10 + add r0, r4, r0 + lsl r1, r1, #0xc + add r2, r4, r2 + bl FUN_0201ECA8 + mov r1, #0 + mov r0, #1 + lsl r0, r0, #0xc + str r0, [sp, #0x10] + str r1, [sp, #0xc] + str r1, [sp, #0x14] + ldr r1, _0222DE80 ; =0x00001B1C + add r0, sp, #0xc + ldr r1, [r4, r1] + bl FUN_0201EC58 + ldr r0, _0222DE80 ; =0x00001B1C + ldr r0, [r4, r0] + bl FUN_0201EB8C + ldr r2, _0222DE80 ; =0x00001B1C + mov r0, #1 + mov r1, #0x7d + ldr r2, [r4, r2] + lsl r0, r0, #0xc + lsl r1, r1, #0xe + bl FUN_0201EC94 + add sp, #0x18 + pop {r4, pc} + nop +_0222DE80: .word 0x00001B1C +_0222DE84: .word 0x00000FA4 + + thumb_func_start MOD69_0222DE88 +MOD69_0222DE88: ; 0x0222DE88 + ldr r1, _0222DE90 ; =0x00001B1C + ldr r3, _0222DE94 ; =FUN_0201EB70 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_0222DE90: .word 0x00001B1C +_0222DE94: .word FUN_0201EB70 + + thumb_func_start MOD69_0222DE98 +MOD69_0222DE98: ; 0x0222DE98 + push {r3, r4, lr} + sub sp, #0x1c + add r4, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x80 + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x3f + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + add r1, r4, #0 + mov r0, #0x40 + add r1, #0x28 + mov r2, #0x3f + bl FUN_02008C9C + str r0, [r4, #0x24] + mov r0, #0x3f + str r0, [sp] + mov r0, #0x1b + mov r1, #0x29 + mov r2, #0 + add r3, sp, #0x18 + bl FUN_02006C30 + mov r1, #0x5b + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x3f + str r0, [sp] + mov r0, #0x1b + mov r1, #0x2a + mov r2, #0 + add r3, sp, #0x14 + bl FUN_02006C5C + mov r1, #0x17 + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r1, [sp, #0x18] + ldr r2, [sp, #0x14] + add r0, r4, #0 + bl MOD69_0222DF0C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x1c + pop {r3, r4, pc} + .align 2, 0 + + thumb_func_start MOD69_0222DF0C +MOD69_0222DF0C: ; 0x0222DF0C + push {r4, r5, r6, r7, lr} + sub sp, #0xd4 + mov r3, #0 + str r0, [sp, #0x14] + str r1, [sp, #0xac] + str r2, [sp, #0xb0] + str r3, [sp, #0xa4] + str r3, [sp, #0xb4] + str r3, [sp, #0xb8] + str r3, [sp, #0xbc] + mov r1, #3 + add r0, sp, #0xc0 + strb r1, [r0] + add r0, sp, #0x5c + str r0, [sp, #0xa0] + add r0, sp, #0x48 + str r0, [sp, #0xa8] + ldr r0, [sp, #0x14] + mov r1, #0x28 + ldr r0, [r0, #0x24] + add r2, r3, #0 + str r0, [sp, #0x80] + add r0, sp, #0xa0 + str r0, [sp, #0x84] + mov r0, #1 + str r0, [sp, #0x98] + mov r0, #0x3f + str r3, [sp, #0x88] + str r3, [sp, #0x8c] + str r3, [sp, #0x90] + str r0, [sp, #0x9c] + str r0, [sp] + mov r0, #0x1b + add r3, sp, #0x44 + bl FUN_02006BB0 + str r0, [sp, #0x28] + mov r0, #0x1b + mov r1, #0x27 + add r2, sp, #0x40 + mov r3, #0x3f + bl FUN_02006C08 + str r0, [sp, #0x24] + mov r0, #0 + str r0, [sp, #0x20] + ldr r0, [sp, #0x14] + ldr r0, [r0, #4] + cmp r0, #0 + bgt _0222DF72 + b _0222E0D4 +_0222DF72: + mov r0, #0x32 + lsl r0, r0, #6 + mov r1, #0x5d + ldr r5, [sp, #0x14] + str r0, [sp, #0x1c] + ldr r7, [sp, #0x20] + lsl r1, r1, #2 + add r0, r5, #0 + add r0, r0, r1 + str r0, [sp, #0x18] + add r1, #0xa8 + add r0, r5, #0 + add r4, r0, r1 + ldr r0, [sp, #0x1c] + add r6, r7, #0 + str r0, [sp, #0x38] + str r0, [sp, #0x3c] + str r0, [sp, #0x30] + str r0, [sp, #0x34] +_0222DF98: + add r0, sp, #0x5c + bl FUN_020B1A24 + add r0, sp, #0x48 + bl FUN_020B19DC + ldr r0, [sp, #0x44] + add r1, r7, #0 + mov r2, #1 + add r3, sp, #0x5c + bl FUN_020B1768 + ldr r0, [sp, #0x40] + add r1, r6, #0 + mov r2, #1 + add r3, sp, #0x48 + bl FUN_020B1240 + ldr r0, [sp, #0x20] + add r0, r0, #1 + str r0, [sp, #0x94] + add r0, sp, #0x80 + bl FUN_0201FF84 + mov r1, #0x15 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [sp, #0x14] + mov r1, #0x7b + ldr r0, [r0, #0xc] + lsl r1, r1, #2 + ldr r0, [r0, #4] + ldr r1, [r5, r1] + bl FUN_0206B9B0 + str r0, [sp, #0x2c] + ldr r1, [sp, #0x2c] + add r0, sp, #0xc4 + mov r2, #2 + bl FUN_02068B68 + ldr r0, [sp, #0x2c] + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + mov r1, #0x81 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r1, #0 + ldr r0, [sp, #0x2c] + add r2, r1, #0 + bl FUN_020671BC + str r4, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #2 + str r0, [sp, #0xc] + mov r0, #0x81 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, sp, #0xc4 + str r0, [sp, #0x10] + add r0, sp, #0xc4 + ldrh r0, [r0] + ldrh r1, [r1, #2] + ldr r3, _0222E198 ; =0x0222F86C + mov r2, #0x3f + bl FUN_02012530 + ldr r1, [sp, #0x30] + add r0, r4, #0 + bl DC_FlushRange + ldr r2, [sp, #0x34] + add r0, r4, #0 + add r1, r7, #0 + bl GX_LoadOBJ + mov r1, #0 + ldr r0, [sp, #0x2c] + add r2, r1, #0 + bl FUN_020671BC + str r4, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #2 + str r0, [sp, #0xc] + mov r0, #0x81 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, sp, #0xc4 + str r0, [sp, #0x10] + add r0, sp, #0xc4 + ldrh r0, [r0] + ldrh r1, [r1, #2] + ldr r3, _0222E19C ; =0x0222F87C + mov r2, #0x3f + bl FUN_02012530 + ldr r1, [sp, #0x38] + add r0, r4, #0 + bl DC_FlushRange + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0x3c] + add r0, r4, #0 + bl GX_LoadOBJ + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3f + str r0, [sp, #4] + add r0, sp, #0xc4 + add r1, sp, #0xc4 + ldrh r0, [r0] + ldrh r1, [r1, #4] + mov r2, #1 + add r3, r6, #0 + bl FUN_02006930 + mov r1, #0x81 + lsl r1, r1, #2 + ldr r1, [r5, r1] + ldr r0, [sp, #0x18] + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl FUN_02069010 + mov r0, #0x19 + lsl r0, r0, #8 + ldr r1, [sp, #0x1c] + add r7, r7, r0 + add r0, r1, r0 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x18] + add r6, #0x20 + add r0, #0x14 + str r0, [sp, #0x18] + ldr r0, [sp, #0x20] + add r5, r5, #4 + add r0, r0, #1 + str r0, [sp, #0x20] + ldr r0, [sp, #0x14] + ldr r1, [r0, #4] + ldr r0, [sp, #0x20] + cmp r0, r1 + bge _0222E0D4 + b _0222DF98 +_0222E0D4: + add r0, sp, #0x5c + bl FUN_020B1A24 + add r0, sp, #0x48 + bl FUN_020B19DC + mov r1, #0x96 + ldr r0, [sp, #0x44] + lsl r1, r1, #8 + mov r2, #1 + add r3, sp, #0x5c + bl FUN_020B1768 + ldr r0, [sp, #0x40] + mov r1, #0xc0 + mov r2, #1 + add r3, sp, #0x48 + bl FUN_020B1240 + ldr r0, [sp, #0x14] + ldr r0, [r0, #0xc] + ldr r0, [r0] + bl FUN_020239CC + cmp r0, #1 + bne _0222E10C + mov r1, #1 + b _0222E10E +_0222E10C: + mov r1, #0 +_0222E10E: + lsl r1, r1, #0x10 + add r0, sp, #0xc4 + lsr r1, r1, #0x10 + bl FUN_020690AC + mov r1, #0x87 + ldr r0, [sp, #0x14] + lsl r1, r1, #2 + add r0, r0, r1 + str r0, [sp] + add r1, sp, #0xc4 + ldrh r0, [r1] + ldrh r1, [r1, #2] + ldr r3, _0222E198 ; =0x0222F86C + mov r2, #0x3f + bl FUN_02012400 + mov r1, #0x87 + ldr r0, [sp, #0x14] + lsl r1, r1, #2 + add r0, r0, r1 + mov r1, #0x32 + lsl r1, r1, #6 + bl DC_FlushRange + mov r1, #0x87 + mov r2, #0x32 + ldr r0, [sp, #0x14] + lsl r1, r1, #2 + add r0, r0, r1 + mov r1, #0x96 + lsl r1, r1, #8 + lsl r2, r2, #6 + bl GX_LoadOBJ + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3f + str r0, [sp, #4] + add r1, sp, #0xc4 + ldrh r0, [r1] + ldrh r1, [r1, #4] + mov r2, #1 + mov r3, #0xc0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp, #0x94] + add r0, sp, #0x80 + bl FUN_0201FF84 + mov r2, #0x5a + ldr r1, [sp, #0x14] + lsl r2, r2, #2 + str r0, [r1, r2] + add r0, r1, #0 + ldr r0, [r0, r2] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [sp, #0x24] + bl FUN_02016A18 + ldr r0, [sp, #0x28] + bl FUN_02016A18 + add sp, #0xd4 + pop {r4, r5, r6, r7, pc} + nop +_0222E198: .word 0x0222F86C +_0222E19C: .word 0x0222F87C + + thumb_func_start MOD69_0222E1A0 +MOD69_0222E1A0: ; 0x0222E1A0 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, [r6, #4] + mov r4, #0 + cmp r0, #0 + ble _0222E1C2 + mov r7, #0x15 + add r5, r6, #0 + lsl r7, r7, #4 +_0222E1B2: + ldr r0, [r5, r7] + bl FUN_0201FFC8 + ldr r0, [r6, #4] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, r0 + blt _0222E1B2 +_0222E1C2: + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02016A18 + mov r0, #0x5b + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02016A18 + ldr r0, [r6, #0x24] + bl FUN_0201FD58 + bl FUN_02009FA0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start MOD69_0222E1E4 +MOD69_0222E1E4: ; 0x0222E1E4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r1, #4] + mov r2, #0 + str r2, [r0] + ldr r0, [r1] + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_0200CAB4 + pop {r4, pc} + + thumb_func_start MOD69_0222E1FC +MOD69_0222E1FC: ; 0x0222E1FC + str r1, [r0] + str r2, [r0, #4] + bx lr + .align 2, 0 + + thumb_func_start MOD69_0222E204 +MOD69_0222E204: ; 0x0222E204 + ldr r3, _0222E210 ; =FUN_0200CA98 + add r1, r0, #0 + ldr r0, _0222E214 ; =MOD69_0222E1E4 + mov r2, #0 + bx r3 + nop +_0222E210: .word FUN_0200CA98 +_0222E214: .word MOD69_0222E1E4 + + thumb_func_start MOD69_0222E218 +MOD69_0222E218: ; 0x0222E218 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r0, #0 + add r7, r1, #0 + mov r0, #0x3f + mov r1, #0x2c + str r2, [sp] + bl FUN_02016998 + mov r1, #0x6d + lsl r1, r1, #6 + add r4, r6, r1 + ldr r1, [sp] + add r5, r0, #0 + lsl r1, r1, #2 + str r1, [sp, #4] + ldr r2, [sp, #4] + add r1, r5, #0 + add r2, r4, r2 + bl MOD69_0222E1FC + lsl r0, r7, #2 + add r1, r6, r0 + mov r0, #0x15 + lsl r0, r0, #4 + ldr r0, [r1, r0] + ldr r3, _0222E298 ; =0x0222F7A8 + str r0, [r5, #8] + lsl r0, r7, #0x1f + lsr r2, r0, #0x1c + ldr r0, _0222E29C ; =0x0222F7A4 + ldr r6, [r0, r2] + add r0, r5, #0 + ldr r2, [r3, r2] + add r0, #0x18 + add r1, r6, #0 + mov r3, #0x1c + bl MOD69_0222F680 + mov r0, #6 + add r1, r5, #0 + str r6, [r5, #0xc] + lsl r0, r0, #0x10 + str r0, [r5, #0x10] + mov r0, #0 + str r0, [r5, #0x14] + ldr r0, [r5, #8] + add r1, #0xc + bl FUN_02020044 + ldr r0, [r5, #8] + mov r1, #1 + bl FUN_020200A0 + ldr r0, _0222E2A0 ; =MOD69_0222E2A4 + add r1, r5, #0 + mov r2, #0 + bl MOD69_0222DBA4 + ldr r1, [sp, #4] + str r0, [r4, r1] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E298: .word 0x0222F7A8 +_0222E29C: .word 0x0222F7A4 +_0222E2A0: .word MOD69_0222E2A4 + + thumb_func_start MOD69_0222E2A4 +MOD69_0222E2A4: ; 0x0222E2A4 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0x18 + bl MOD69_0222F6A0 + str r0, [r4, #0xc] + add r1, r4, #0 + ldr r0, [r4, #8] + add r1, #0xc + bl FUN_02020044 + add r0, r4, #0 + add r0, #0x18 + bl MOD69_0222F6C0 + cmp r0, #0 + beq _0222E2D6 + add r0, r4, #0 + bl MOD69_0222E204 + add r0, r5, #0 + bl FUN_0200CAB4 +_0222E2D6: + pop {r3, r4, r5, pc} + + thumb_func_start MOD69_0222E2D8 +MOD69_0222E2D8: ; 0x0222E2D8 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + mov r0, #0x3f + mov r1, #0x2c + bl FUN_02016998 + mov r1, #0x6d + lsl r1, r1, #6 + add r5, r0, #0 + add r4, r6, r1 + lsl r7, r7, #2 + add r1, r5, #0 + add r2, r4, r7 + bl MOD69_0222E1FC + mov r0, #0x5a + lsl r0, r0, #2 + ldr r0, [r6, r0] + mov r1, #0x3a + str r0, [r5, #8] + add r0, r5, #0 + mov r2, #0x1a + add r0, #0x18 + lsl r1, r1, #0xe + lsl r2, r2, #0xe + mov r3, #0x1c + bl MOD69_0222F680 + mov r0, #2 + lsl r0, r0, #0x12 + str r0, [r5, #0xc] + mov r0, #0x3a + lsl r0, r0, #0xe + str r0, [r5, #0x10] + mov r0, #0 + str r0, [r5, #0x14] + add r1, r5, #0 + ldr r0, [r5, #8] + add r1, #0xc + bl FUN_02020044 + ldr r0, [r5, #8] + mov r1, #1 + bl FUN_020200A0 + ldr r0, _0222E344 ; =MOD69_0222E348 + add r1, r5, #0 + mov r2, #0 + bl MOD69_0222DBA4 + str r0, [r4, r7] + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E344: .word MOD69_0222E348 + + thumb_func_start MOD69_0222E348 +MOD69_0222E348: ; 0x0222E348 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0x18 + bl MOD69_0222F6A0 + str r0, [r4, #0x10] + add r1, r4, #0 + ldr r0, [r4, #8] + add r1, #0xc + bl FUN_02020044 + add r0, r4, #0 + add r0, #0x18 + bl MOD69_0222F6C0 + cmp r0, #0 + beq _0222E37A + add r0, r4, #0 + bl MOD69_0222E204 + add r0, r5, #0 + bl FUN_0200CAB4 +_0222E37A: + pop {r3, r4, r5, pc} + + thumb_func_start MOD69_0222E37C +MOD69_0222E37C: ; 0x0222E37C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r0, #8 + bl MOD69_0222F6A0 + asr r0, r0, #0xc + add r2, r0, #0 + add r2, #0x60 + cmp r0, #0 + bge _0222E396 + mov r0, #0 +_0222E396: + cmp r2, #0 + bge _0222E39C + mov r2, #0 +_0222E39C: + cmp r0, #0xff + ble _0222E3A4 + mov r2, #0 + add r0, r2, #0 +_0222E3A4: + cmp r2, #0xff + ble _0222E3AA + mov r2, #0xff +_0222E3AA: + lsl r1, r0, #8 + mov r0, #0xff + lsl r0, r0, #8 + and r1, r0 + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + orr r0, r1 + ldr r1, _0222E3DC ; =0x04000040 + strh r0, [r1] + ldr r0, _0222E3E0 ; =0x000020A0 + strh r0, [r1, #4] + add r0, r4, #0 + add r0, #8 + bl MOD69_0222F6C0 + cmp r0, #0 + beq _0222E3D8 + add r0, r4, #0 + bl MOD69_0222E204 + add r0, r5, #0 + bl FUN_0200CAB4 +_0222E3D8: + pop {r3, r4, r5, pc} + nop +_0222E3DC: .word 0x04000040 +_0222E3E0: .word 0x000020A0 + + thumb_func_start MOD69_0222E3E4 +MOD69_0222E3E4: ; 0x0222E3E4 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r0, #8 + bl MOD69_0222F6A0 + asr r2, r0, #0xc + ldr r0, [r4, #0x24] + add r3, r2, r0 + cmp r2, #0 + bge _0222E3FE + mov r2, #0 +_0222E3FE: + cmp r3, #0 + bge _0222E404 + mov r3, #0 +_0222E404: + cmp r2, #0xbf + ble _0222E40C + mov r3, #0 + add r2, r3, #0 +_0222E40C: + cmp r3, #0xbf + ble _0222E412 + mov r3, #0xbf +_0222E412: + ldr r0, [r4, #0x1c] + ldr r6, [r4, #0x20] + lsl r1, r0, #8 + mov r0, #0xff + lsl r0, r0, #8 + lsl r6, r6, #0x18 + lsl r2, r2, #8 + and r1, r0 + lsr r6, r6, #0x18 + orr r6, r1 + ldr r1, _0222E450 ; =0x04000040 + and r2, r0 + lsl r0, r3, #0x18 + lsr r0, r0, #0x18 + strh r6, [r1] + orr r0, r2 + strh r0, [r1, #4] + add r0, r4, #0 + add r0, #8 + bl MOD69_0222F6C0 + cmp r0, #0 + beq _0222E44C + add r0, r4, #0 + bl MOD69_0222E204 + add r0, r5, #0 + bl FUN_0200CAB4 +_0222E44C: + pop {r4, r5, r6, pc} + nop +_0222E450: .word 0x04000040 + + thumb_func_start MOD69_0222E454 +MOD69_0222E454: ; 0x0222E454 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r0, #0 + add r0, r5, #0 + add r0, #8 + bl MOD69_0222F6A0 + asr r4, r0, #0xc + add r0, r5, #0 + add r0, #0x1c + bl MOD69_0222F6A0 + asr r2, r0, #0xc + cmp r4, #0 + bge _0222E474 + mov r4, #0 +_0222E474: + cmp r2, #0 + bge _0222E47A + mov r2, #0 +_0222E47A: + cmp r4, #0xff + ble _0222E482 + mov r2, #0 + add r4, r2, #0 +_0222E482: + cmp r2, #0xff + ble _0222E488 + mov r2, #0xff +_0222E488: + ldr r0, [r5, #0x30] + mov r3, #0xff + lsl r2, r2, #0x18 + ldr r1, [r5, #0x34] + lsl r4, r4, #8 + lsl r3, r3, #8 + and r4, r3 + lsr r2, r2, #0x18 + lsl r0, r0, #8 + orr r4, r2 + ldr r2, _0222E4C4 ; =0x04000040 + and r3, r0 + lsl r0, r1, #0x18 + lsr r0, r0, #0x18 + strh r4, [r2] + orr r0, r3 + strh r0, [r2, #4] + add r0, r5, #0 + add r0, #8 + bl MOD69_0222F6C0 + cmp r0, #0 + beq _0222E4C2 + add r0, r5, #0 + bl MOD69_0222E204 + add r0, r6, #0 + bl FUN_0200CAB4 +_0222E4C2: + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E4C4: .word 0x04000040 + + thumb_func_start MOD69_0222E4C8 +MOD69_0222E4C8: ; 0x0222E4C8 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r0, #0 + add r0, r5, #0 + add r0, #8 + bl MOD69_0222F6A0 + asr r4, r0, #0xc + add r0, r5, #0 + add r0, #0x1c + bl MOD69_0222F6A0 + asr r2, r0, #0xc + cmp r4, #0 + bge _0222E4E8 + mov r4, #0 +_0222E4E8: + cmp r2, #0 + bge _0222E4EE + mov r2, #0 +_0222E4EE: + cmp r4, #0xbf + ble _0222E4F6 + mov r2, #0 + add r4, r2, #0 +_0222E4F6: + cmp r2, #0xbf + ble _0222E4FC + mov r2, #0xbf +_0222E4FC: + ldr r0, [r5, #0x30] + ldr r3, [r5, #0x34] + lsl r1, r0, #8 + mov r0, #0xff + lsl r0, r0, #8 + lsl r3, r3, #0x18 + and r1, r0 + lsr r3, r3, #0x18 + orr r3, r1 + ldr r1, _0222E538 ; =0x04000040 + strh r3, [r1] + lsl r3, r4, #8 + and r3, r0 + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + orr r0, r3 + strh r0, [r1, #4] + add r0, r5, #0 + add r0, #8 + bl MOD69_0222F6C0 + cmp r0, #0 + beq _0222E536 + add r0, r5, #0 + bl MOD69_0222E204 + add r0, r6, #0 + bl FUN_0200CAB4 +_0222E536: + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E538: .word 0x04000040 + + thumb_func_start MOD69_0222E53C +MOD69_0222E53C: ; 0x0222E53C + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + add r7, r1, #0 + mov r0, #0x3f + mov r1, #0x1c + add r6, r2, #0 + bl FUN_02016998 + mov r1, #0x6d + lsl r1, r1, #6 + add r5, r0, #0 + add r4, r4, r1 + lsl r6, r6, #2 + add r1, r5, #0 + add r2, r4, r6 + bl MOD69_0222E1FC + lsl r0, r7, #0x1f + lsr r2, r0, #0x1c + ldr r1, _0222E584 ; =0x0222F7B4 + add r0, r5, #0 + ldr r3, _0222E588 ; =0x0222F7B8 + ldr r1, [r1, r2] + ldr r2, [r3, r2] + add r0, #8 + mov r3, #0x1c + bl MOD69_0222F680 + ldr r0, _0222E58C ; =MOD69_0222E37C + add r1, r5, #0 + mov r2, #1 + bl MOD69_0222DBA4 + str r0, [r4, r6] + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E584: .word 0x0222F7B4 +_0222E588: .word 0x0222F7B8 +_0222E58C: .word MOD69_0222E37C + + thumb_func_start MOD69_0222E590 +MOD69_0222E590: ; 0x0222E590 + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + add r7, r1, #0 + mov r0, #0x3f + mov r1, #0x28 + add r6, r2, #0 + bl FUN_02016998 + mov r1, #0x6d + lsl r1, r1, #6 + add r5, r0, #0 + add r4, r4, r1 + lsl r6, r6, #2 + add r1, r5, #0 + add r2, r4, r6 + bl MOD69_0222E1FC + add r0, r5, #0 + mov r1, #2 + ldr r2, _0222E5E4 ; =0xFFF60000 + add r0, #8 + lsl r1, r1, #0x10 + mov r3, #0x1c + bl MOD69_0222F680 + lsl r0, r7, #0x1f + lsr r1, r0, #0x1d + ldr r0, _0222E5E8 ; =0x0222F790 + mov r2, #1 + ldr r0, [r0, r1] + add r1, r5, #0 + str r0, [r5, #0x1c] + add r0, #0x60 + str r0, [r5, #0x20] + mov r0, #0x80 + str r0, [r5, #0x24] + ldr r0, _0222E5EC ; =MOD69_0222E3E4 + bl MOD69_0222DBA4 + str r0, [r4, r6] + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E5E4: .word 0xFFF60000 +_0222E5E8: .word 0x0222F790 +_0222E5EC: .word MOD69_0222E3E4 + + thumb_func_start MOD69_0222E5F0 +MOD69_0222E5F0: ; 0x0222E5F0 + push {r4, r5, r6, lr} + add r4, r0, #0 + add r6, r1, #0 + mov r0, #0x3f + mov r1, #0x28 + bl FUN_02016998 + mov r1, #0x6d + lsl r1, r1, #6 + add r5, r0, #0 + add r4, r4, r1 + lsl r6, r6, #2 + add r1, r5, #0 + add r2, r4, r6 + bl MOD69_0222E1FC + add r0, r5, #0 + mov r2, #6 + ldr r1, _0222E63C ; =0xFFF70000 + add r0, #8 + lsl r2, r2, #0xe + mov r3, #0x1c + bl MOD69_0222F680 + mov r0, #0x58 + str r0, [r5, #0x1c] + mov r0, #0xa8 + str r0, [r5, #0x20] + mov r0, #0x90 + str r0, [r5, #0x24] + ldr r0, _0222E640 ; =MOD69_0222E3E4 + add r1, r5, #0 + mov r2, #1 + bl MOD69_0222DBA4 + str r0, [r4, r6] + pop {r4, r5, r6, pc} + nop +_0222E63C: .word 0xFFF70000 +_0222E640: .word MOD69_0222E3E4 + + thumb_func_start MOD69_0222E644 +MOD69_0222E644: ; 0x0222E644 + push {r4, r5, r6, lr} + add r4, r0, #0 + add r6, r1, #0 + mov r0, #0x3f + mov r1, #0x38 + bl FUN_02016998 + mov r1, #0x6d + lsl r1, r1, #6 + add r5, r0, #0 + add r4, r4, r1 + lsl r6, r6, #2 + add r1, r5, #0 + add r2, r4, r6 + bl MOD69_0222E1FC + add r0, r5, #0 + mov r1, #0x16 + add r0, #8 + lsl r1, r1, #0xe + mov r2, #0 + mov r3, #0xc + bl MOD69_0222F680 + add r0, r5, #0 + mov r1, #0x2a + mov r2, #0xff + add r0, #0x1c + lsl r1, r1, #0xe + lsl r2, r2, #0xc + mov r3, #0xc + bl MOD69_0222F680 + mov r0, #0x18 + str r0, [r5, #0x30] + add r0, #0x90 + str r0, [r5, #0x34] + ldr r0, _0222E69C ; =MOD69_0222E454 + add r1, r5, #0 + mov r2, #1 + bl MOD69_0222DBA4 + str r0, [r4, r6] + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E69C: .word MOD69_0222E454 + + thumb_func_start MOD69_0222E6A0 +MOD69_0222E6A0: ; 0x0222E6A0 + push {r4, r5, r6, lr} + add r4, r0, #0 + add r6, r1, #0 + mov r0, #0x3f + mov r1, #0x38 + bl FUN_02016998 + mov r1, #0x6d + lsl r1, r1, #6 + add r5, r0, #0 + add r4, r4, r1 + lsl r6, r6, #2 + add r1, r5, #0 + add r2, r4, r6 + bl MOD69_0222E1FC + mov r1, #6 + add r0, r5, #0 + lsl r1, r1, #0xe + add r0, #8 + lsl r2, r1, #2 + mov r3, #0x18 + bl MOD69_0222F680 + add r0, r5, #0 + mov r1, #0x2a + mov r2, #6 + add r0, #0x1c + lsl r1, r1, #0xe + lsl r2, r2, #0x10 + mov r3, #0x18 + bl MOD69_0222F680 + mov r0, #0 + str r0, [r5, #0x30] + mov r0, #0xff + str r0, [r5, #0x34] + ldr r0, _0222E6F8 ; =MOD69_0222E4C8 + add r1, r5, #0 + mov r2, #1 + bl MOD69_0222DBA4 + str r0, [r4, r6] + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E6F8: .word MOD69_0222E4C8 + + thumb_func_start MOD69_0222E6FC +MOD69_0222E6FC: ; 0x0222E6FC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x3f + mov r1, #0x74 + str r2, [sp] + str r3, [sp, #4] + bl FUN_02016998 + mov r1, #0x6d + lsl r1, r1, #6 + add r7, r5, r1 + ldr r1, [sp, #4] + add r4, r0, #0 + lsl r1, r1, #2 + str r1, [sp, #0xc] + ldr r2, [sp, #0xc] + add r1, r4, #0 + add r2, r7, r2 + bl MOD69_0222E1FC + lsl r0, r6, #2 + str r0, [sp, #8] + add r1, r5, r0 + mov r0, #0x15 + lsl r0, r0, #4 + ldr r1, [r1, r0] + add r0, #0x24 + str r1, [r4, #8] + add r1, r5, r0 + mov r0, #0x14 + mul r0, r6 + add r1, r1, r0 + add r0, r4, #0 + add r0, #0x10 + str r1, [r4, #0xc] + bl FUN_02008010 + ldr r0, [sp] + str r0, [r4, #0x6c] + ldr r0, [sp, #8] + add r1, r5, r0 + mov r0, #0x81 + lsl r0, r0, #2 + ldr r0, [r1, r0] + str r0, [r4, #0x70] + ldr r0, [r4, #8] + bl FUN_02020350 + add r3, r4, #0 + add r5, r0, #0 + add r3, #0x24 + mov r2, #4 +_0222E768: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _0222E768 + ldr r0, [r5] + add r5, r4, #0 + str r0, [r3] + add r3, r4, #0 + add r5, #0x24 + add r3, #0x48 + mov r2, #4 +_0222E77E: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _0222E77E + ldr r0, [r5] + str r0, [r3] + add r0, r4, #0 + add r0, #0x48 + bl FUN_020B1A24 + mov r3, #0x19 + add r0, r4, #0 + lsl r3, r3, #8 + add r2, r6, #0 + mul r2, r3 + lsr r3, r3, #1 + add r0, #0x48 + mov r1, #1 + add r2, r2, r3 + bl FUN_020B1A1C + ldr r0, _0222E7BC ; =MOD69_0222E7C0 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + ldr r1, [sp, #0xc] + str r0, [r7, r1] + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E7BC: .word MOD69_0222E7C0 + + thumb_func_start MOD69_0222E7C0 +MOD69_0222E7C0: ; 0x0222E7C0 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x6c] + cmp r0, #0 + beq _0222E7DA + ldr r0, [r4, #0x70] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02005578 + mov r0, #0 + str r0, [r4, #0x6c] +_0222E7DA: + add r0, r4, #0 + add r0, #0x10 + bl FUN_02008030 + add r2, r0, #0 + bmi _0222E7F6 + mov r1, #0x24 + ldr r0, [r4, #8] + add r4, #0x24 + mul r1, r2 + add r1, r4, r1 + bl FUN_02020334 + pop {r3, r4, r5, pc} +_0222E7F6: + add r0, r4, #0 + bl MOD69_0222E204 + add r0, r5, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} + + thumb_func_start MOD69_0222E804 +MOD69_0222E804: ; 0x0222E804 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + add r7, r1, #0 + mov r0, #0x3f + mov r1, #0x38 + str r2, [sp] + bl FUN_02016998 + mov r1, #0x6d + lsl r1, r1, #6 + add r6, r5, r1 + ldr r1, [sp] + add r4, r0, #0 + lsl r1, r1, #2 + str r1, [sp, #4] + ldr r2, [sp, #4] + add r1, r4, #0 + add r2, r6, r2 + bl MOD69_0222E1FC + str r5, [r4, #8] + ldr r0, [r5, #0x10] + ldr r1, _0222E894 ; =0x00001B50 + str r0, [r4, #0xc] + add r0, r5, #0 + add r0, #0x14 + str r0, [r4, #0x10] + ldr r0, [r5, r1] + str r0, [r4, #0x14] + add r0, r1, #4 + ldr r0, [r5, r0] + str r0, [r4, #0x18] + add r0, r1, #0 + add r0, #8 + ldr r0, [r5, r0] + add r1, #0xc + str r0, [r4, #0x1c] + ldr r0, [r5, r1] + str r0, [r4, #0x20] + mov r0, #1 + tst r0, r7 + beq _0222E85E + mov r0, #0 + b _0222E860 +_0222E85E: + mov r0, #0x78 +_0222E860: + lsl r1, r7, #2 + str r0, [r4, #0x2c] + ldr r0, [r5, #0xc] + add r2, r5, r1 + mov r1, #0x7b + lsl r1, r1, #2 + ldr r0, [r0, #4] + ldr r1, [r2, r1] + bl FUN_0206B9B0 + str r0, [r4, #0x24] + ldr r0, [r5, #0xc] + mov r2, #0 + ldr r0, [r0] + add r1, r4, #0 + str r0, [r4, #0x28] + str r2, [r4, #0x30] + ldr r0, _0222E898 ; =MOD69_0222E9AC + str r2, [r4, #0x34] + bl FUN_0200CA44 + ldr r1, [sp, #4] + str r0, [r6, r1] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E894: .word 0x00001B50 +_0222E898: .word MOD69_0222E9AC + + thumb_func_start MOD69_0222E89C +MOD69_0222E89C: ; 0x0222E89C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [r5, #0x1c] + add r4, r1, #0 + bl FUN_02021D5C + mov r6, #0 + str r0, [sp, #0x10] + cmp r0, #0 + ble _0222E8F2 +_0222E8B2: + ldr r0, [r5, #0x18] + ldr r1, [r5, #0x1c] + add r2, r6, #0 + bl FUN_02021D9C + mov r0, #0 + ldr r1, [r5, #0x18] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0x88 + sub r0, r1, r0 + lsr r7, r0, #1 + str r4, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _0222E8F8 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r3, [r5, #0x2c] + ldr r0, [r5, #0x10] + ldr r2, [r5, #0x18] + add r3, r3, r7 + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + add r6, r6, #1 + add r4, #0x10 + cmp r6, r0 + blt _0222E8B2 +_0222E8F2: + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_0222E8F8: .word 0x00010200 + + thumb_func_start MOD69_0222E8FC +MOD69_0222E8FC: ; 0x0222E8FC + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, [r4, #0x24] + bl FUN_020690E4 + add r2, r0, #0 + ldr r0, [r4, #0x14] + mov r1, #0 + bl FUN_0200AC60 + ldr r0, [r4, #0x24] + bl FUN_020687C0 + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r0, [r4, #0x14] + mov r3, #3 + bl FUN_0200AD38 + ldr r0, [r4, #0x24] + bl FUN_020689E0 + cmp r0, #0 + beq _0222E93C + cmp r0, #1 + beq _0222E948 + cmp r0, #2 + b _0222E954 +_0222E93C: + ldr r0, [r4, #0x20] + ldr r2, [r4, #0x18] + mov r1, #1 + bl FUN_0200A8E0 + b _0222E95E +_0222E948: + ldr r0, [r4, #0x20] + ldr r2, [r4, #0x18] + mov r1, #2 + bl FUN_0200A8E0 + b _0222E95E +_0222E954: + ldr r0, [r4, #0x20] + ldr r2, [r4, #0x18] + mov r1, #3 + bl FUN_0200A8E0 +_0222E95E: + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x1c] + ldr r2, [r4, #0x18] + bl FUN_0200B7B8 + add sp, #8 + pop {r4, pc} + + thumb_func_start MOD69_0222E96C +MOD69_0222E96C: ; 0x0222E96C + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #8] + ldr r1, [r5, #0x24] + ldr r2, [r5, #0x28] + bl MOD69_0222F6C4 + add r4, r0, #0 + beq _0222E982 + cmp r4, #1 + bne _0222E996 +_0222E982: + ldr r0, [r5, #0x24] + mov r1, #0x98 + mov r2, #0 + bl FUN_020671BC + add r2, r0, #0 + ldr r0, [r5, #0x14] + mov r1, #0 + bl FUN_0200AFF4 +_0222E996: + ldr r0, [r5, #0x20] + ldr r2, [r5, #0x18] + add r1, r4, #5 + bl FUN_0200A8E0 + ldr r0, [r5, #0x14] + ldr r1, [r5, #0x1c] + ldr r2, [r5, #0x18] + bl FUN_0200B7B8 + pop {r3, r4, r5, pc} + + thumb_func_start MOD69_0222E9AC +MOD69_0222E9AC: ; 0x0222E9AC + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x30] + cmp r0, #0 + beq _0222E9BE + sub r0, r0, #1 + str r0, [r4, #0x30] + pop {r3, r4, r5, pc} +_0222E9BE: + ldr r0, [r4, #0x34] + cmp r0, #3 + bhi _0222EA82 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222E9D0: ; jump table + .short _0222E9D8 - _0222E9D0 - 2 ; case 0 + .short _0222E9FC - _0222E9D0 - 2 ; case 1 + .short _0222EA2E - _0222E9D0 - 2 ; case 2 + .short _0222EA76 - _0222E9D0 - 2 ; case 3 +_0222E9D8: + ldr r0, [r4, #0x20] + ldr r2, [r4, #0x1c] + mov r1, #0 + bl FUN_0200A8E0 + add r0, r4, #0 + mov r1, #0x18 + bl MOD69_0222E89C + ldr r0, [r4, #0x10] + bl FUN_02019548 + mov r0, #0x14 + str r0, [r4, #0x30] + ldr r0, [r4, #0x34] + add r0, r0, #1 + str r0, [r4, #0x34] + pop {r3, r4, r5, pc} +_0222E9FC: + ldr r0, [r4, #0x24] + ldr r2, [r4, #0x1c] + mov r1, #0x76 + bl FUN_020671BC + add r0, r4, #0 + mov r1, #0x48 + bl MOD69_0222E89C + add r0, r4, #0 + bl MOD69_0222E8FC + add r0, r4, #0 + mov r1, #0x58 + bl MOD69_0222E89C + ldr r0, [r4, #0x10] + bl FUN_02019548 + mov r0, #0x14 + str r0, [r4, #0x30] + ldr r0, [r4, #0x34] + add r0, r0, #1 + str r0, [r4, #0x34] + pop {r3, r4, r5, pc} +_0222EA2E: + ldr r0, [r4, #0x24] + bl FUN_020690E4 + add r2, r0, #0 + ldr r0, [r4, #0x14] + mov r1, #0 + bl FUN_0200AD18 + ldr r0, [r4, #0x20] + ldr r2, [r4, #0x18] + mov r1, #4 + bl FUN_0200A8E0 + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x1c] + ldr r2, [r4, #0x18] + bl FUN_0200B7B8 + add r0, r4, #0 + mov r1, #0x78 + bl MOD69_0222E89C + add r0, r4, #0 + bl MOD69_0222E96C + add r0, r4, #0 + mov r1, #0x88 + bl MOD69_0222E89C + ldr r0, [r4, #0x10] + bl FUN_02019548 + ldr r0, [r4, #0x34] + add r0, r0, #1 + str r0, [r4, #0x34] + pop {r3, r4, r5, pc} +_0222EA76: + add r0, r4, #0 + bl MOD69_0222E204 + add r0, r5, #0 + bl FUN_0200CAB4 +_0222EA82: + pop {r3, r4, r5, pc} + + thumb_func_start MOD69_0222EA84 +MOD69_0222EA84: ; 0x0222EA84 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + mov r0, #0x3f + mov r1, #0x30 + bl FUN_02016998 + mov r1, #0x6d + lsl r1, r1, #6 + add r4, r0, #0 + add r6, r5, r1 + lsl r7, r7, #2 + add r1, r4, #0 + add r2, r6, r7 + bl MOD69_0222E1FC + ldr r0, [r5, #0x10] + add r5, #0x14 + str r0, [r4, #0xc] + add r0, r4, #0 + str r5, [r4, #0x10] + mov r2, #1 + str r2, [r4, #0x2c] + mov r1, #0 + add r0, #0x14 + lsl r2, r2, #0x14 + mov r3, #0x1c + str r1, [r4, #0x28] + bl MOD69_0222F680 + ldr r0, _0222EAD0 ; =MOD69_0222EAD4 + add r1, r4, #0 + mov r2, #0 + bl MOD69_0222DBA4 + str r0, [r6, r7] + pop {r3, r4, r5, r6, r7, pc} + nop +_0222EAD0: .word MOD69_0222EAD4 + + thumb_func_start MOD69_0222EAD4 +MOD69_0222EAD4: ; 0x0222EAD4 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _0222EAEA + cmp r0, #1 + beq _0222EB16 + cmp r0, #2 + beq _0222EB2C + pop {r3, r4, r5, pc} +_0222EAEA: + add r0, r4, #0 + add r0, #0x14 + bl MOD69_0222F6A0 + ldr r1, [r4, #0x2c] + asr r3, r0, #0xc + lsl r1, r1, #0x18 + ldr r0, [r4, #0xc] + lsr r1, r1, #0x18 + mov r2, #3 + bl FUN_020179E0 + add r0, r4, #0 + add r0, #0x14 + bl MOD69_0222F6C0 + cmp r0, #0 + beq _0222EB48 + ldr r0, [r4, #0x28] + add r0, r0, #1 + str r0, [r4, #0x28] + pop {r3, r4, r5, pc} +_0222EB16: + ldr r0, [r4, #0x10] + mov r1, #0 + bl FUN_02019620 + ldr r0, [r4, #0x10] + bl FUN_02019548 + ldr r0, [r4, #0x28] + add r0, r0, #1 + str r0, [r4, #0x28] + pop {r3, r4, r5, pc} +_0222EB2C: + ldr r1, [r4, #0x2c] + ldr r0, [r4, #0xc] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + mov r2, #3 + mov r3, #0 + bl FUN_020179E0 + add r0, r4, #0 + bl MOD69_0222E204 + add r0, r5, #0 + bl FUN_0200CAB4 +_0222EB48: + pop {r3, r4, r5, pc} + .align 2, 0 + + thumb_func_start MOD69_0222EB4C +MOD69_0222EB4C: ; 0x0222EB4C + push {r4, lr} + sub sp, #0x10 + ldr r2, _0222EC50 ; =0x00001B5C + add r4, r0, #0 + ldr r0, [r4, r2] + sub r2, #8 + ldr r2, [r4, r2] + mov r1, #0xc + bl FUN_0200A8E0 + ldr r1, _0222EC54 ; =0x00001B54 + mov r0, #0 + ldr r1, [r4, r1] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #1 + lsl r1, r1, #8 + sub r0, r1, r0 + lsr r3, r0, #1 + mov r0, #4 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _0222EC58 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + ldr r2, _0222EC54 ; =0x00001B54 + str r1, [sp, #0xc] + ldr r2, [r4, r2] + add r0, #0x14 + bl FUN_0201BDE0 + ldr r0, _0222EC5C ; =0x00001B50 + ldr r2, [r4, #0xc] + ldr r0, [r4, r0] + ldr r2, [r2] + mov r1, #0 + bl FUN_0200ABC0 + ldr r0, [r4, #0xc] + ldr r0, [r0] + bl FUN_020239C0 + add r2, r0, #0 + mov r0, #2 + str r0, [sp] + mov r1, #1 + ldr r0, _0222EC5C ; =0x00001B50 + str r1, [sp, #4] + ldr r0, [r4, r0] + mov r3, #5 + bl FUN_0200AD38 + ldr r0, [r4, #0xc] + ldr r0, [r0, #8] + bl FUN_02029EBC + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _0222EC5C ; =0x00001B50 + mov r1, #2 + ldr r0, [r4, r0] + mov r3, #3 + bl FUN_0200AD38 + ldr r0, [r4, #0xc] + ldr r0, [r0, #8] + bl FUN_02029EC0 + mov r3, #2 + add r2, r0, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _0222EC5C ; =0x00001B50 + mov r1, #3 + ldr r0, [r4, r0] + bl FUN_0200AD38 + ldr r2, _0222EC50 ; =0x00001B5C + mov r1, #0xd + ldr r0, [r4, r2] + sub r2, r2, #4 + ldr r2, [r4, r2] + bl FUN_0200A8E0 + ldr r2, _0222EC5C ; =0x00001B50 + add r1, r2, #4 + ldr r0, [r4, r2] + add r2, #8 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + bl FUN_0200B7B8 + ldr r1, _0222EC54 ; =0x00001B54 + mov r0, #0 + ldr r1, [r4, r1] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #1 + lsl r1, r1, #8 + sub r0, r1, r0 + lsr r3, r0, #1 + mov r0, #0xac + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _0222EC58 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + ldr r2, _0222EC54 ; =0x00001B54 + str r1, [sp, #0xc] + ldr r2, [r4, r2] + add r0, #0x14 + bl FUN_0201BDE0 + add r4, #0x14 + add r0, r4, #0 + bl FUN_02019548 + add sp, #0x10 + pop {r4, pc} + nop +_0222EC50: .word 0x00001B5C +_0222EC54: .word 0x00001B54 +_0222EC58: .word 0x00010200 +_0222EC5C: .word 0x00001B50 + + thumb_func_start MOD69_0222EC60 +MOD69_0222EC60: ; 0x0222EC60 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x3f + mov r1, #0xdc + bl FUN_02016998 + mov r1, #0x6d + lsl r1, r1, #6 + add r1, r5, r1 + str r1, [sp, #0xc] + lsl r1, r6, #2 + str r1, [sp, #0x10] + add r4, r0, #0 + ldr r3, [sp, #0xc] + ldr r2, [sp, #0x10] + add r1, r4, #0 + add r2, r3, r2 + bl MOD69_0222E1FC + mov r0, #0x15 + lsl r0, r0, #4 + str r5, [r4, #0xc] + add r0, r5, r0 + str r0, [r4, #8] + mov r0, #0 + str r0, [r4, #0x10] + str r0, [sp, #8] + str r0, [r4, #0x18] + ldr r0, [r5, #4] + str r0, [r4, #0x14] + cmp r0, #0 + ble _0222ECE8 + ldr r0, _0222ED24 ; =0x0222F8F4 + ldr r5, [sp, #8] + str r0, [sp, #4] + add r7, r4, #0 + add r6, r0, #0 +_0222ECAE: + ldr r3, [sp, #4] + add r2, r7, #0 + ldmia r3!, {r0, r1} + add r2, #0x94 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, r6, #0 + str r0, [r2] + ldr r0, [r4, #8] + ldr r0, [r0, r5] + bl FUN_02020044 + ldr r0, [r4, #8] + mov r1, #1 + ldr r0, [r0, r5] + bl FUN_020200A0 + ldr r0, [sp, #4] + ldr r1, [r4, #0x14] + add r0, #0xc + str r0, [sp, #4] + ldr r0, [sp, #8] + add r7, #0xc + add r0, r0, #1 + add r6, #0xc + add r5, r5, #4 + str r0, [sp, #8] + cmp r0, r1 + blt _0222ECAE +_0222ECE8: + mov r0, #0 + add r7, r4, #0 + ldr r6, _0222ED28 ; =0x0222F7E8 + ldr r5, _0222ED24 ; =0x0222F8F4 + str r0, [sp] + add r7, #0x1c +_0222ECF4: + ldr r1, [r5] + ldr r2, [r6] + add r0, r7, #0 + mov r3, #8 + bl MOD69_0222F680 + ldr r0, [sp] + add r6, r6, #4 + add r0, r0, #1 + add r5, #0xc + add r7, #0x14 + str r0, [sp] + cmp r0, #6 + blt _0222ECF4 + ldr r0, _0222ED2C ; =MOD69_0222ED30 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x10] + str r0, [r2, r1] + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222ED24: .word 0x0222F8F4 +_0222ED28: .word 0x0222F7E8 +_0222ED2C: .word MOD69_0222ED30 + + thumb_func_start MOD69_0222ED30 +MOD69_0222ED30: ; 0x0222ED30 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, [r5, #0x10] + mov r4, #0 + str r0, [sp] + cmp r1, #0 + ble _0222ED84 + add r0, r5, #0 + str r0, [sp, #8] + add r0, #0x1c + add r7, r5, #0 + str r0, [sp, #8] + str r5, [sp, #4] + add r7, #0x94 + add r6, r4, #0 +_0222ED50: + ldr r0, [sp, #8] + bl MOD69_0222F6A0 + ldr r1, [sp, #4] + add r1, #0x94 + str r0, [r1] + ldr r0, [r5, #0x14] + cmp r4, r0 + bge _0222ED6C + ldr r0, [r5, #8] + add r1, r7, #0 + ldr r0, [r0, r6] + bl FUN_02020044 +_0222ED6C: + ldr r0, [sp, #8] + ldr r1, [r5, #0x10] + add r0, #0x14 + str r0, [sp, #8] + ldr r0, [sp, #4] + add r4, r4, #1 + add r0, #0xc + str r0, [sp, #4] + add r7, #0xc + add r6, r6, #4 + cmp r4, r1 + blt _0222ED50 +_0222ED84: + ldr r0, [r5, #0x18] + cmp r0, #0 + beq _0222ED92 + sub r0, r0, #1 + add sp, #0xc + str r0, [r5, #0x18] + pop {r4, r5, r6, r7, pc} +_0222ED92: + cmp r1, #6 + bge _0222EDA4 + mov r0, #4 + str r0, [r5, #0x18] + ldr r0, [r5, #0x10] + add sp, #0xc + add r0, r0, #1 + str r0, [r5, #0x10] + pop {r4, r5, r6, r7, pc} +_0222EDA4: + ldr r0, [r5, #0x14] + add r2, r5, #0 + sub r1, r0, #1 + mov r0, #0x14 + add r2, #0x1c + mul r0, r1 + add r0, r2, r0 + bl MOD69_0222F6C0 + cmp r0, #0 + beq _0222EDC6 + add r0, r5, #0 + bl MOD69_0222E204 + ldr r0, [sp] + bl FUN_0200CAB4 +_0222EDC6: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 + + thumb_func_start MOD69_0222EDCC +MOD69_0222EDCC: ; 0x0222EDCC + push {r3, r4, r5, lr} + ldr r1, _0222EE10 ; =0x00000844 + add r5, r0, #0 + mov r0, #0x3f + bl FUN_02016998 + add r4, r0, #0 + beq _0222EE0C + ldr r0, _0222EE14 ; =0x0222F940 + mov r1, #1 + str r1, [r0] + ldr r0, _0222EE18 ; =0x0222F960 + mov r1, #2 + str r1, [r0, #4] + ldr r0, _0222EE1C ; =0x0000083C + mov r1, #0 + str r1, [r4, r0] + ldr r0, _0222EE20 ; =MOD69_0222EE80 + add r1, r4, #0 + mov r2, #5 + bl MOD69_0222DBA4 + ldr r1, _0222EE24 ; =0x00000838 + mov r2, #3 + str r0, [r4, r1] + add r1, #8 + str r5, [r4, r1] + ldr r0, _0222EE28 ; =MOD69_0222EE2C + add r1, r4, #0 + bl MOD69_0222DBA4 + pop {r3, r4, r5, pc} +_0222EE0C: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222EE10: .word 0x00000844 +_0222EE14: .word 0x0222F940 +_0222EE18: .word 0x0222F960 +_0222EE1C: .word 0x0000083C +_0222EE20: .word MOD69_0222EE80 +_0222EE24: .word 0x00000838 +_0222EE28: .word MOD69_0222EE2C + + thumb_func_start MOD69_0222EE2C +MOD69_0222EE2C: ; 0x0222EE2C + push {r4, lr} + add r4, r1, #0 + ldr r1, _0222EE70 ; =0x0222F940 + ldr r1, [r1] + cmp r1, #0 + beq _0222EE60 + add r1, r4, #0 + mov r2, #2 + add r0, r4, #0 + add r1, #0x14 + lsl r2, r2, #0xa + bl G3_BeginMakeDL + ldr r1, _0222EE74 ; =0x00007FFF + ldr r2, _0222EE78 ; =0x00004210 + add r0, r4, #0 + mov r3, #0 + bl G3B_MaterialColorDiffAmb + mov r2, #0 + ldr r1, _0222EE78 ; =0x00004210 + add r0, r4, #0 + add r3, r2, #0 + bl G3B_MaterialColorSpecEmi + pop {r4, pc} +_0222EE60: + ldr r1, _0222EE7C ; =0x0222F960 + ldr r2, [r1, #4] + sub r2, r2, #1 + str r2, [r1, #4] + bl FUN_0200CAB4 + pop {r4, pc} + nop +_0222EE70: .word 0x0222F940 +_0222EE74: .word 0x00007FFF +_0222EE78: .word 0x00004210 +_0222EE7C: .word 0x0222F960 + + thumb_func_start MOD69_0222EE80 +MOD69_0222EE80: ; 0x0222EE80 + push {r4, lr} + add r4, r1, #0 + ldr r1, _0222EEB0 ; =0x0222F940 + ldr r1, [r1] + cmp r1, #0 + beq _0222EEA2 + add r0, r4, #0 + bl G3_EndMakeDL + ldr r1, _0222EEB4 ; =0x00000814 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, [r4, r1] + add r0, #0x14 + bl DC_FlushRange + pop {r4, pc} +_0222EEA2: + ldr r1, _0222EEB8 ; =0x0222F960 + ldr r2, [r1, #4] + sub r2, r2, #1 + str r2, [r1, #4] + bl FUN_0200CAB4 + pop {r4, pc} + .align 2, 0 +_0222EEB0: .word 0x0222F940 +_0222EEB4: .word 0x00000814 +_0222EEB8: .word 0x0222F960 + + thumb_func_start MOD69_0222EEBC +MOD69_0222EEBC: ; 0x0222EEBC + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r2, #0 + bl FUN_0201B6C8 + ldr r1, _0222EEF8 ; =0x0000083C + add r4, r0, #0 + ldr r3, [r4, r1] + cmp r3, #8 + bge _0222EEF4 + add r1, r5, #0 + add r2, r6, #0 + bl MOD69_0222EF00 + ldr r2, _0222EEF8 ; =0x0000083C + ldr r1, [r4, r2] + lsl r1, r1, #2 + add r3, r4, r1 + add r1, r2, #0 + sub r1, #0x24 + str r0, [r3, r1] + ldr r0, _0222EEFC ; =0x0222F960 + ldr r1, [r0, #4] + add r1, r1, #1 + str r1, [r0, #4] + ldr r0, [r4, r2] + add r0, r0, #1 + str r0, [r4, r2] +_0222EEF4: + pop {r4, r5, r6, pc} + nop +_0222EEF8: .word 0x0000083C +_0222EEFC: .word 0x0222F960 + + thumb_func_start MOD69_0222EF00 +MOD69_0222EF00: ; 0x0222EF00 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r6, r0, #0 + ldr r1, _0222EF78 ; =0x00000838 + mov r0, #0x3f + add r7, r2, #0 + add r4, r3, #0 + bl FUN_02016998 + add r1, r0, #0 + beq _0222EF74 + ldr r0, _0222EF7C ; =0x00000818 + ldr r2, _0222EF80 ; =0x0222F88C + str r6, [r1] + lsl r3, r4, #2 + ldr r3, [r2, r3] + add r2, r0, #0 + strh r5, [r1, r0] + sub r2, #8 + str r3, [r1, r2] + add r2, r0, #0 + mov r3, #0 + sub r2, #0x14 + str r3, [r1, r2] + add r2, r0, #0 + sub r2, #0x10 + str r7, [r1, r2] + ldr r2, _0222EF84 ; =0x0222F798 + lsl r6, r4, #1 + ldrsh r6, [r2, r6] + add r2, r0, #0 + sub r2, #0xc + str r6, [r1, r2] + sub r2, r0, #4 + str r4, [r1, r2] + add r4, r5, #0 + sub r4, #0x50 + add r2, r0, #2 + strh r4, [r1, r2] + ldr r2, _0222EF88 ; =0xFFFFF000 + add r4, r0, #4 + strh r2, [r1, r4] + add r4, r0, #6 + strh r3, [r1, r4] + add r4, r0, #0 + add r5, #0x50 + add r4, #8 + strh r5, [r1, r4] + add r4, r0, #0 + add r4, #0xa + strh r2, [r1, r4] + add r0, #0xc + strh r3, [r1, r0] + ldr r0, _0222EF8C ; =MOD69_0222EF90 + mov r2, #4 + bl MOD69_0222DBA4 + pop {r3, r4, r5, r6, r7, pc} +_0222EF74: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222EF78: .word 0x00000838 +_0222EF7C: .word 0x00000818 +_0222EF80: .word 0x0222F88C +_0222EF84: .word 0x0222F798 +_0222EF88: .word 0xFFFFF000 +_0222EF8C: .word MOD69_0222EF90 + + thumb_func_start MOD69_0222EF90 +MOD69_0222EF90: ; 0x0222EF90 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, _0222F0FC ; =0x0222F940 + ldr r1, [r1] + cmp r1, #0 + bne _0222EFA0 + b _0222F0EC +_0222EFA0: + ldr r0, _0222F100 ; =0x00000808 + add r1, r0, #4 + ldr r2, [r5, r0] + ldr r1, [r5, r1] + add r1, r2, r1 + str r1, [r5, r0] + add r1, r0, #4 + ldr r1, [r5, r1] + ldr r2, [r5, r0] + cmp r1, #0 + ble _0222EFCE + mov r1, #0xaa + lsl r1, r1, #0xc + cmp r2, r1 + blt _0222EFE4 + add r1, r0, #4 + ldr r2, [r5, r1] + mov r1, #0 + mvn r1, r1 + mul r1, r2 + add r0, r0, #4 + str r1, [r5, r0] + b _0222EFE4 +_0222EFCE: + mov r1, #0xa + lsl r1, r1, #0xc + cmp r2, r1 + bgt _0222EFE4 + add r1, r0, #4 + ldr r2, [r5, r1] + mov r1, #0 + mvn r1, r1 + mul r1, r2 + add r0, r0, #4 + str r1, [r5, r0] +_0222EFE4: + ldr r0, _0222F100 ; =0x00000808 + mov r2, #0xa + ldr r0, [r5, r0] + lsl r2, r2, #0xa + asr r6, r0, #0xc + add r0, r6, #0 + add r0, #0x5a + lsl r1, r0, #2 + ldr r0, _0222F104 ; =0x020EDF50 + mov r3, #0 + ldr r0, [r0, r1] + asr r1, r0, #0x1f + bl _ll_mul + ldr r4, _0222F108 ; =0x00000818 + mov r3, #0 + ldrsh r2, [r5, r4] + sub r4, #0x18 + add r4, r0, r4 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r4, #0xc + orr r1, r0 + add r4, r2, r1 + mov r2, #0xa + ldr r0, _0222F104 ; =0x020EDF50 + lsl r1, r6, #2 + ldr r0, [r0, r1] + lsl r2, r2, #0xa + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r6, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r6, #0xc + orr r1, r0 + lsl r0, r2, #1 + mov r7, #9 + sub r6, r1, r0 + lsl r7, r7, #6 + add r0, r2, #0 + sub r1, r4, r7 + add r0, #0x26 + strh r1, [r5, r0] + lsl r0, r6, #0x10 + add r1, r2, #0 + asr r0, r0, #0x10 + add r1, #0x28 + strh r0, [r5, r1] + add r1, r2, #0 + add r1, #0x2a + strh r3, [r5, r1] + add r1, r2, #0 + add r4, r4, r7 + add r1, #0x2c + strh r4, [r5, r1] + add r1, r2, #0 + add r1, #0x2e + strh r0, [r5, r1] + add r0, r2, #0 + add r0, #0x30 + add r2, #0x14 + strh r3, [r5, r0] + ldr r0, [r5, r2] + add r1, r3, #0 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + str r3, [sp, #8] + add r2, r3, #0 + ldr r0, [r5] + mov r3, #2 + bl G3B_PolygonAttr + ldr r0, [r5] + mov r1, #1 + bl G3B_Begin + mov r1, #0x81 + lsl r1, r1, #4 + ldr r1, [r5, r1] + ldr r0, [r5] + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl G3B_Color + ldr r3, _0222F10C ; =0x0000081A + ldr r0, [r5] + add r2, r3, #2 + ldrsh r1, [r5, r3] + add r3, r3, #4 + ldrsh r2, [r5, r2] + ldrsh r3, [r5, r3] + bl G3B_Vtx + mov r3, #0x82 + lsl r3, r3, #4 + add r2, r3, #2 + ldrsh r1, [r5, r3] + add r3, r3, #4 + ldrsh r2, [r5, r2] + ldrsh r3, [r5, r3] + ldr r0, [r5] + bl G3B_Vtx + ldr r3, _0222F110 ; =0x0000082C + ldr r0, [r5] + add r2, r3, #2 + ldrsh r1, [r5, r3] + add r3, r3, #4 + ldrsh r2, [r5, r2] + ldrsh r3, [r5, r3] + bl G3B_Vtx + ldr r3, _0222F114 ; =0x00000826 + ldr r0, [r5] + add r2, r3, #2 + ldrsh r1, [r5, r3] + add r3, r3, #4 + ldrsh r2, [r5, r2] + ldrsh r3, [r5, r3] + bl G3B_Vtx + ldr r0, [r5] + bl G3B_End + add sp, #0xc + pop {r4, r5, r6, r7, pc} +_0222F0EC: + ldr r1, _0222F118 ; =0x0222F960 + ldr r2, [r1, #4] + sub r2, r2, #1 + str r2, [r1, #4] + bl FUN_0200CAB4 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222F0FC: .word 0x0222F940 +_0222F100: .word 0x00000808 +_0222F104: .word 0x020EDF50 +_0222F108: .word 0x00000818 +_0222F10C: .word 0x0000081A +_0222F110: .word 0x0000082C +_0222F114: .word 0x00000826 +_0222F118: .word 0x0222F960 + + thumb_func_start MOD69_0222F11C +MOD69_0222F11C: ; 0x0222F11C + push {r3, lr} + cmp r0, #0 + beq _0222F142 + bl FUN_0201B6C8 + add r3, r0, #0 + ldr r0, _0222F144 ; =0x04000444 + mov r1, #0 + str r1, [r0] + ldr r2, _0222F148 ; =0x00000814 + add r1, r3, #0 + ldr r2, [r3, r2] + mov r0, #3 + add r1, #0x14 + bl MI_SendGXCommand + ldr r0, _0222F14C ; =0x04000448 + mov r1, #1 + str r1, [r0] +_0222F142: + pop {r3, pc} + .align 2, 0 +_0222F144: .word 0x04000444 +_0222F148: .word 0x00000814 +_0222F14C: .word 0x04000448 + + thumb_func_start MOD69_0222F150 +MOD69_0222F150: ; 0x0222F150 + push {r3, r4, r5, r6, r7, lr} + ldr r1, _0222F190 ; =0x0222F940 + mov r2, #0 + str r2, [r1] + cmp r0, #0 + beq _0222F18C + bl FUN_0201B6C8 + add r6, r0, #0 + ldr r0, _0222F194 ; =0x0000083C + mov r4, #0 + ldr r0, [r6, r0] + cmp r0, #0 + ble _0222F186 + ldr r7, _0222F194 ; =0x0000083C + add r5, r6, #0 +_0222F170: + ldr r0, _0222F198 ; =0x00000818 + ldr r0, [r5, r0] + bl FUN_0201B6C8 + bl FUN_02016A18 + ldr r0, [r6, r7] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, r0 + blt _0222F170 +_0222F186: + add r0, r6, #0 + bl FUN_02016A18 +_0222F18C: + pop {r3, r4, r5, r6, r7, pc} + nop +_0222F190: .word 0x0222F940 +_0222F194: .word 0x0000083C +_0222F198: .word 0x00000818 + + thumb_func_start MOD69_0222F19C +MOD69_0222F19C: ; 0x0222F19C + ldr r0, _0222F1AC ; =0x0222F960 + ldr r0, [r0, #4] + cmp r0, #0 + bne _0222F1A8 + mov r0, #1 + bx lr +_0222F1A8: + mov r0, #0 + bx lr + .align 2, 0 +_0222F1AC: .word 0x0222F960 + + thumb_func_start MOD69_0222F1B0 +MOD69_0222F1B0: ; 0x0222F1B0 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + ldr r1, _0222F344 ; =0x00008D64 + mov r0, #0x3f + bl FUN_02016998 + str r0, [sp, #0x28] + bl FUN_0201B9EC + str r0, [sp, #0x20] + ldr r0, _0222F348 ; =0x00003594 + bl FUN_0201B9E0 + mov r0, #0 + ldr r4, [sp, #0x28] + str r0, [sp, #0x24] + str r0, [sp, #0x1c] + add r0, r4, #0 + str r0, [sp, #0x18] + add r0, #0x34 + str r0, [sp, #0x18] + add r0, r4, #0 + str r0, [sp, #0x14] + add r0, #0x28 + str r0, [sp, #0x14] + add r0, r4, #0 + str r0, [sp, #0x10] + add r0, #0x2e + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + str r0, [sp, #0xc] +_0222F1EE: + ldr r0, [sp, #0x1c] + lsl r1, r0, #2 + ldr r0, _0222F34C ; =0x0222F8AC + ldr r0, [r0, r1] + str r0, [r4, #8] + ldr r0, [sp, #0x1c] + add r0, r0, #1 + str r0, [sp, #0x1c] + cmp r0, #8 + blo _0222F206 + mov r0, #0 + str r0, [sp, #0x1c] +_0222F206: + bl FUN_0201B9EC + lsr r2, r0, #0x1f + lsl r1, r0, #0x13 + sub r1, r1, r2 + mov r0, #0x13 + ror r1, r0 + mov r0, #1 + add r1, r2, r1 + lsl r0, r0, #0xc + sub r0, r1, r0 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + str r0, [sp, #8] + bl FUN_0201B9EC + lsr r2, r0, #0x1f + lsl r1, r0, #0x13 + sub r1, r1, r2 + mov r0, #0x13 + ror r1, r0 + mov r0, #1 + add r1, r2, r1 + lsl r0, r0, #0xc + add r0, r1, r0 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + str r0, [sp, #4] + bl FUN_0201B9EC + mov r1, #0x29 + lsl r1, r1, #4 + bl _s32_div_f + mov r0, #0x52 + lsl r0, r0, #2 + sub r0, r1, r0 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + ldr r5, _0222F350 ; =0x0222F800 + str r0, [sp] + mov r7, #0 + add r6, r4, #0 +_0222F25C: + mov r0, #0 + ldrsh r1, [r5, r0] + ldr r0, [sp, #8] + add r0, r0, r1 + strh r0, [r6, #0x10] + mov r0, #2 + ldrsh r1, [r5, r0] + ldr r0, [sp, #4] + add r0, r0, r1 + strh r0, [r6, #0x12] + mov r0, #4 + ldrsh r1, [r5, r0] + ldr r0, [sp] + add r0, r0, r1 + strh r0, [r6, #0x14] + mov r0, #0 + strh r0, [r4, #0x28] + strh r0, [r4, #0x2a] + strh r0, [r4, #0x2c] + bl FUN_0201B9EC + lsr r1, r0, #0x1f + lsl r2, r0, #0x17 + sub r2, r2, r1 + mov r0, #0x17 + ror r2, r0 + mov r0, #2 + add r1, r1, r2 + lsl r0, r0, #8 + add r0, r1, r0 + strh r0, [r4, #0x2e] + bl FUN_0201B9EC + lsr r1, r0, #0x1f + lsl r2, r0, #0x17 + sub r2, r2, r1 + mov r0, #0x17 + ror r2, r0 + mov r0, #2 + add r1, r1, r2 + lsl r0, r0, #8 + add r0, r1, r0 + strh r0, [r4, #0x30] + bl FUN_0201B9EC + lsr r1, r0, #0x1f + lsl r2, r0, #0x17 + sub r2, r2, r1 + mov r0, #0x17 + ror r2, r0 + mov r0, #2 + add r1, r1, r2 + lsl r0, r0, #8 + add r0, r1, r0 + strh r0, [r4, #0x32] + ldr r0, [sp, #0x18] + bl MTX_Identity44_ + add r7, r7, #1 + add r5, r5, #6 + add r6, r6, #6 + cmp r7, #4 + blt _0222F25C + bl FUN_0201B9EC + mov r1, #7 + and r0, r1 + sub r5, r0, #1 + cmp r0, #0 + beq _0222F2FA +_0222F2E8: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x14] + bl VEC_Fx16Add + add r0, r5, #0 + sub r5, r5, #1 + cmp r0, #0 + bne _0222F2E8 +_0222F2FA: + ldr r0, [sp, #0x18] + add r4, #0x70 + add r0, #0x70 + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + add r0, #0x70 + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + add r0, #0x70 + str r0, [sp, #0x10] + ldr r0, [sp, #0xc] + add r0, #0x70 + str r0, [sp, #0xc] + ldr r0, [sp, #0x24] + add r0, r0, #1 + str r0, [sp, #0x24] + cmp r0, #0x30 + bge _0222F320 + b _0222F1EE +_0222F320: + ldr r0, [sp, #0x20] + bl FUN_0201B9E0 + ldr r0, [sp, #0x28] + mov r2, #0 + str r2, [r0] + ldr r1, _0222F354 ; =0x00008D20 + str r2, [r0, #4] + str r2, [r0, r1] + ldr r0, _0222F358 ; =0x04000440 + mov r2, #2 + str r2, [r0] + ldr r0, _0222F35C ; =MOD69_0222F388 + ldr r1, [sp, #0x28] + bl FUN_0200CA44 + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222F344: .word 0x00008D64 +_0222F348: .word 0x00003594 +_0222F34C: .word 0x0222F8AC +_0222F350: .word 0x0222F800 +_0222F354: .word 0x00008D20 +_0222F358: .word 0x04000440 +_0222F35C: .word MOD69_0222F388 + + thumb_func_start MOD69_0222F360 +MOD69_0222F360: ; 0x0222F360 + push {r4, lr} + add r4, r0, #0 + beq _0222F374 + bl FUN_0201B6C8 + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_0200CAB4 +_0222F374: + pop {r4, pc} + .align 2, 0 + + thumb_func_start MOD69_0222F378 +MOD69_0222F378: ; 0x0222F378 + push {r3, lr} + cmp r0, #0 + beq _0222F386 + bl FUN_0201B6C8 + mov r1, #1 + str r1, [r0] +_0222F386: + pop {r3, pc} + + thumb_func_start MOD69_0222F388 +MOD69_0222F388: ; 0x0222F388 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x68 + add r7, r1, #0 + ldr r0, [r7] + cmp r0, #0 + bne _0222F396 + b _0222F60C +_0222F396: + ldr r1, _0222F610 ; =0x00001508 + mov r2, #0x1e + add r0, r7, r1 + add r1, #0x14 + add r1, r7, r1 + lsl r2, r2, #0xa + bl G3_BeginMakeDL + mov r0, #0x3f + str r0, [sp] + mov r0, #0x1f + str r0, [sp, #4] + ldr r0, _0222F610 ; =0x00001508 + mov r1, #3 + mov r2, #0 + add r0, r7, r0 + add r3, r1, #0 + str r2, [sp, #8] + bl G3B_PolygonAttr + ldr r0, _0222F610 ; =0x00001508 + mov r2, #0 + ldr r1, _0222F614 ; =0x00005294 + add r0, r7, r0 + add r3, r2, #0 + bl G3B_MaterialColorDiffAmb + mov r0, #0 + str r0, [sp, #0x1c] + add r0, r7, #0 + str r0, [sp, #0x18] + add r0, #0x28 + str r0, [sp, #0x18] + add r0, r7, #0 + str r0, [sp, #0x14] + add r0, #0x2e + str r0, [sp, #0x14] + ldr r0, [sp, #0x18] + add r5, r7, #0 + str r5, [sp, #0xc] + add r5, #0x34 + add r4, r7, #0 + str r0, [sp, #0x10] + str r5, [sp, #0xc] +_0222F3EE: + mov r0, #0x24 + ldrsh r0, [r4, r0] + sub r0, #0x55 + strh r0, [r4, #0x24] + mov r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _0222F618 ; =0xFFFFF000 + cmp r1, r0 + bgt _0222F408 + mov r0, #2 + lsl r0, r0, #0xc + add r0, r1, r0 + strh r0, [r4, #0x24] +_0222F408: + mov r0, #0x24 + ldrsh r1, [r4, r0] + ldr r0, _0222F61C ; =0x0000019A + ldr r2, [sp, #0x18] + sub r0, r1, r0 + strh r0, [r4, #0x12] + mov r0, #0x12 + ldrsh r0, [r4, r0] + ldr r1, [sp, #0x14] + strh r0, [r4, #0x18] + mov r0, #0x24 + ldrsh r0, [r4, r0] + strh r0, [r4, #0x1e] + ldr r0, [sp, #0x10] + bl VEC_Fx16Add + ldr r0, [sp, #0xc] + bl MTX_Identity44_ + mov r0, #0x14 + ldrsh r0, [r4, r0] + mov r2, #0x10 + mov r3, #0x12 + str r0, [sp] + ldrsh r2, [r4, r2] + ldrsh r3, [r4, r3] + ldr r1, [sp, #0xc] + add r0, r5, #0 + bl MTX_TransApply44 + ldr r0, _0222F610 ; =0x00001508 + ldr r2, _0222F620 ; =0x00002D6B + add r0, r7, r0 + mov r1, #0 + bl G3B_LightColor + ldr r2, [r4, #8] + ldr r0, _0222F610 ; =0x00001508 + lsl r2, r2, #0x10 + add r0, r7, r0 + mov r1, #1 + lsr r2, r2, #0x10 + bl G3B_LightColor + mov r1, #0 + add r0, sp, #0x20 + strh r1, [r0] + ldr r1, _0222F624 ; =0x00000FFF + strh r1, [r0, #2] + ldr r1, _0222F628 ; =0xFFFFF001 + strh r1, [r0, #4] + add r0, sp, #0x20 + add r1, r0, #0 + bl VEC_Fx16Normalize + add r3, sp, #0x20 + add r1, sp, #0x20 + mov r0, #4 + ldrsh r0, [r1, r0] + mov r1, #0 + add r2, r1, #0 + str r0, [sp] + ldr r0, _0222F610 ; =0x00001508 + ldrsh r2, [r3, r2] + add r6, r3, #0 + mov r3, #2 + ldrsh r3, [r6, r3] + add r0, r7, r0 + bl G3B_LightVector + mov r1, #0 + add r0, r6, #0 + strh r1, [r0] + ldr r1, _0222F628 ; =0xFFFFF001 + strh r1, [r0, #2] + lsr r1, r1, #0x14 + strh r1, [r0, #4] + add r0, sp, #0x20 + add r1, r0, #0 + bl VEC_Fx16Normalize + add r1, r6, #0 + mov r0, #4 + ldrsh r0, [r1, r0] + add r3, r6, #0 + mov r2, #0 + str r0, [sp] + ldrsh r2, [r3, r2] + mov r3, #2 + ldr r0, _0222F610 ; =0x00001508 + ldrsh r3, [r6, r3] + add r0, r7, r0 + mov r1, #1 + bl G3B_LightVector + ldrh r0, [r4, #0x28] + ldr r3, _0222F62C ; =0x020FFA38 + asr r0, r0, #4 + lsl r1, r0, #2 + ldr r0, _0222F62C ; =0x020FFA38 + add r2, r0, r1 + ldrsh r1, [r3, r1] + mov r3, #2 + ldrsh r2, [r2, r3] + add r0, sp, #0x28 + bl MTX_RotX44_ + ldr r2, [sp, #0xc] + add r0, sp, #0x28 + add r1, r5, #0 + bl MTX_Concat44 + ldrh r0, [r4, #0x2a] + ldr r3, _0222F62C ; =0x020FFA38 + asr r0, r0, #4 + lsl r1, r0, #2 + ldr r0, _0222F62C ; =0x020FFA38 + add r2, r0, r1 + ldrsh r1, [r3, r1] + mov r3, #2 + ldrsh r2, [r2, r3] + add r0, sp, #0x28 + bl MTX_RotY44_ + ldr r2, [sp, #0xc] + add r0, sp, #0x28 + add r1, r5, #0 + bl MTX_Concat44 + ldrh r0, [r4, #0x2c] + ldr r3, _0222F62C ; =0x020FFA38 + asr r0, r0, #4 + lsl r1, r0, #2 + ldr r0, _0222F62C ; =0x020FFA38 + add r2, r0, r1 + ldrsh r1, [r3, r1] + mov r3, #2 + ldrsh r2, [r2, r3] + add r0, sp, #0x28 + bl MTX_RotZ44_ + ldr r2, [sp, #0xc] + add r0, sp, #0x28 + add r1, r5, #0 + bl MTX_Concat44 + ldr r2, [r4, #8] + ldr r0, _0222F610 ; =0x00001508 + lsl r2, r2, #0x10 + ldr r1, _0222F630 ; =0x00007FFF + add r0, r7, r0 + lsr r2, r2, #0x10 + mov r3, #0 + bl G3B_MaterialColorSpecEmi + ldr r0, _0222F610 ; =0x00001508 + add r0, r7, r0 + bl G3B_PushMtx + ldr r0, _0222F610 ; =0x00001508 + add r1, r5, #0 + add r0, r7, r0 + bl G3B_LoadMtx44 + ldr r0, _0222F610 ; =0x00001508 + mov r1, #1 + add r0, r7, r0 + bl G3B_Begin + ldr r0, _0222F610 ; =0x00001508 + mov r1, #0 + ldr r3, _0222F628 ; =0xFFFFF001 + add r0, r7, r0 + add r2, r1, #0 + bl G3B_Normal + mov r1, #0x9b + ldr r0, _0222F610 ; =0x00001508 + mvn r1, r1 + add r2, r1, #0 + add r0, r7, r0 + sub r2, #0x31 + mov r3, #0 + bl G3B_Vtx + ldr r0, _0222F610 ; =0x00001508 + mov r2, #0xcc + add r0, r7, r0 + mov r1, #0x9c + mvn r2, r2 + mov r3, #0 + bl G3B_Vtx + ldr r0, _0222F610 ; =0x00001508 + mov r1, #0x9c + add r0, r7, r0 + mov r2, #0xcd + mov r3, #0 + bl G3B_Vtx + ldr r0, _0222F610 ; =0x00001508 + mov r1, #0x9b + add r0, r7, r0 + mvn r1, r1 + mov r2, #0xcd + mov r3, #0 + bl G3B_Vtx + ldr r0, _0222F610 ; =0x00001508 + add r0, r7, r0 + bl G3B_End + ldr r0, _0222F610 ; =0x00001508 + mov r1, #1 + add r0, r7, r0 + bl G3B_PopMtx + ldr r0, [sp, #0x18] + add r4, #0x70 + add r0, #0x70 + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + add r5, #0x70 + add r0, #0x70 + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + add r0, #0x70 + str r0, [sp, #0x10] + ldr r0, [sp, #0xc] + add r0, #0x70 + str r0, [sp, #0xc] + ldr r0, [sp, #0x1c] + add r0, r0, #1 + str r0, [sp, #0x1c] + cmp r0, #0x30 + bge _0222F5E2 + b _0222F3EE +_0222F5E2: + ldr r0, _0222F610 ; =0x00001508 + add r0, r7, r0 + bl G3_EndMakeDL + ldr r1, _0222F634 ; =0x00008D1C + str r0, [r7, r1] + ldr r0, _0222F638 ; =0x0000151C + ldr r1, [r7, r1] + add r0, r7, r0 + bl DC_FlushRange + ldr r0, _0222F634 ; =0x00008D1C + ldr r1, [r7, r0] + mov r0, #0x1e + lsl r0, r0, #0xa + cmp r1, r0 + blo _0222F608 + bl ErrorHandling +_0222F608: + mov r0, #1 + str r0, [r7, #4] +_0222F60C: + add sp, #0x68 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222F610: .word 0x00001508 +_0222F614: .word 0x00005294 +_0222F618: .word 0xFFFFF000 +_0222F61C: .word 0x0000019A +_0222F620: .word 0x00002D6B +_0222F624: .word 0x00000FFF +_0222F628: .word 0xFFFFF001 +_0222F62C: .word 0x020FFA38 +_0222F630: .word 0x00007FFF +_0222F634: .word 0x00008D1C +_0222F638: .word 0x0000151C + + thumb_func_start MOD69_0222F63C +MOD69_0222F63C: ; 0x0222F63C + push {r4, lr} + cmp r0, #0 + beq _0222F66C + bl FUN_0201B6C8 + add r4, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _0222F66C + ldr r0, _0222F670 ; =0x04000444 + mov r1, #0 + str r1, [r0] + ldr r2, _0222F674 ; =0x00008D1C + ldr r1, _0222F678 ; =0x0000151C + ldr r2, [r4, r2] + mov r0, #3 + add r1, r4, r1 + bl MI_SendGXCommand + ldr r0, _0222F67C ; =0x04000448 + mov r1, #1 + str r1, [r0] + mov r0, #0 + str r0, [r4, #4] +_0222F66C: + pop {r4, pc} + nop +_0222F670: .word 0x04000444 +_0222F674: .word 0x00008D1C +_0222F678: .word 0x0000151C +_0222F67C: .word 0x04000448 + + thumb_func_start MOD69_0222F680 +MOD69_0222F680: ; 0x0222F680 + push {r3, r4, r5, lr} + add r4, r0, #0 + str r1, [r4] + add r5, r3, #0 + sub r0, r2, r1 + add r1, r5, #0 + str r2, [r4, #8] + bl _s32_div_f + str r0, [r4, #4] + sub r0, r5, #1 + str r0, [r4, #0xc] + mov r0, #0 + str r0, [r4, #0x10] + pop {r3, r4, r5, pc} + .align 2, 0 + + thumb_func_start MOD69_0222F6A0 +MOD69_0222F6A0: ; 0x0222F6A0 + ldr r1, [r0, #0xc] + cmp r1, #0 + beq _0222F6B6 + sub r1, r1, #1 + str r1, [r0, #0xc] + ldr r2, [r0] + ldr r1, [r0, #4] + add r1, r2, r1 + str r1, [r0] + add r0, r1, #0 + bx lr +_0222F6B6: + mov r1, #1 + str r1, [r0, #0x10] + ldr r0, [r0, #8] + bx lr + .align 2, 0 + + thumb_func_start MOD69_0222F6C0 +MOD69_0222F6C0: ; 0x0222F6C0 + ldr r0, [r0, #0x10] + bx lr + + thumb_func_start MOD69_0222F6C4 +MOD69_0222F6C4: ; 0x0222F6C4 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r6, r2, #0 + bl FUN_020669D4 + str r0, [sp] + add r0, r4, #0 + mov r1, #0x79 + mov r2, #0 + bl FUN_020671BC + sub r1, r0, #1 + cmp r1, #2 + bhi _0222F6E8 + mov r5, #4 + b _0222F77A +_0222F6E8: + sub r1, r0, #4 + cmp r1, #1 + bhi _0222F6F2 + mov r5, #3 + b _0222F77A +_0222F6F2: + cmp r0, #0xf + bne _0222F6FA + mov r5, #5 + b _0222F77A +_0222F6FA: + add r0, r4, #0 + mov r1, #0x6e + mov r2, #0 + bl FUN_020671BC + cmp r0, #0 + beq _0222F70C + mov r5, #6 + b _0222F77A +_0222F70C: + add r0, r6, #0 + bl FUN_020239BC + add r7, r0, #0 + add r0, r4, #0 + mov r1, #7 + mov r2, #0 + bl FUN_020671BC + cmp r7, r0 + beq _0222F726 + mov r5, #2 + b _0222F77A +_0222F726: + ldr r1, _0222F788 ; =0x00001B54 + add r0, r6, #0 + ldr r1, [r5, r1] + bl FUN_02023990 + ldr r2, _0222F78C ; =0x00001B58 + add r0, r4, #0 + ldr r2, [r5, r2] + mov r1, #0x90 + bl FUN_020671BC + ldr r1, _0222F788 ; =0x00001B54 + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + bl FUN_02021CE0 + cmp r0, #0 + beq _0222F750 + mov r5, #2 + b _0222F77A +_0222F750: + add r0, r4, #0 + mov r1, #0x98 + mov r2, #0 + bl FUN_020671BC + mov r1, #0x7d + lsl r1, r1, #4 + cmp r0, r1 + blo _0222F766 + mov r5, #6 + b _0222F77A +_0222F766: + add r0, r4, #0 + mov r1, #0x92 + mov r2, #0 + bl FUN_020671BC + cmp r0, #0 + bne _0222F778 + mov r5, #0 + b _0222F77A +_0222F778: + mov r5, #1 +_0222F77A: + ldr r1, [sp] + add r0, r4, #0 + bl FUN_02066A20 + add r0, r5, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222F788: .word 0x00001B54 +_0222F78C: .word 0x00001B58 + + .section .rodata + ; 0x0222F790 + .incbin "baserom.nds", 0x2c49d0, 0x1ac + + .section .data + ; 0x0222F940 + .word 0x00000001 + + .section .bss + .space 0x20 diff --git a/arm9/modules/70/asm/module_70.s b/arm9/modules/70/asm/module_70.s new file mode 100644 index 00000000..dd072eaa --- /dev/null +++ b/arm9/modules/70/asm/module_70.s @@ -0,0 +1,1702 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD70_021D74E0 +MOD70_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + mov r2, #1 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x3c + lsl r2, r2, #0xe + bl FUN_0201681C + mov r2, #7 + mov r0, #3 + mov r1, #0x3d + lsl r2, r2, #0xe + bl FUN_0201681C + add r0, r5, #0 + mov r1, #0xdc + mov r2, #0x3c + bl FUN_02006268 + add r4, r0, #0 + beq _021D7558 + add r0, r5, #0 + bl FUN_0200628C + add r1, r4, #0 + add r1, #0xcc + str r0, [r1] + add r0, r4, #0 + mov r1, #0 + add r0, #0xd4 + str r1, [r0] + add r0, r4, #0 + add r0, #0xcc + ldr r0, [r0] + bl FUN_0202B1F0 + add r1, r4, #0 + add r1, #0xd0 + str r0, [r1] + add r1, r4, #0 + add r1, #0xcc + ldr r1, [r1] + add r0, r4, #0 + bl MOD70_021D7724 + add r0, r4, #0 + add r1, r4, #0 + bl MOD70_021D77CC + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + bl MOD70_021D7930 + add r4, #0xd8 + str r0, [r4] +_021D7558: + mov r0, #1 + pop {r3, r4, r5, pc} + thumb_func_end MOD70_021D74E0 + + thumb_func_start MOD70_021D755C +MOD70_021D755C: ; 0x021D755C + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, #0xc8 + ldr r0, [r0] + bl MOD70_021D78A0 + add r0, r4, #0 + bl MOD70_021D7760 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0x3d + bl FUN_020168D0 + mov r0, #0x3c + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD70_021D755C + + thumb_func_start MOD70_021D758C +MOD70_021D758C: ; 0x021D758C + push {r3, r4, r5, lr} + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, #0xd8 + ldr r0, [r0] + cmp r0, #0 + beq _021D75B8 + add r0, r4, #0 + add r0, #0xc8 + ldr r0, [r0] + bl MOD70_021D7958 + cmp r0, #0 + bne _021D75B0 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D75B0: + add r0, r4, #0 + mov r1, #0 + add r0, #0xd8 + str r1, [r0] +_021D75B8: + ldr r0, [r5] + cmp r0, #0 + beq _021D75C4 + cmp r0, #1 + beq _021D768A + b _021D768E +_021D75C4: + ldr r0, _021D7694 ; =0x021C48B8 + mov r1, #2 + ldr r0, [r0, #0x48] + add r2, r0, #0 + tst r2, r1 + beq _021D75E0 + add r0, r4, #0 + mov r1, #1 + bl MOD70_021D7698 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D768E +_021D75E0: + mov r2, #1 + add r3, r0, #0 + tst r3, r2 + beq _021D75F8 + ldr r0, [r4, #0x1c] + mov r1, #4 + eor r0, r2 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD70_021D7698 + b _021D768E +_021D75F8: + mov r2, #0x20 + tst r2, r0 + beq _021D7612 + add r0, r4, #0 + bl MOD70_021D76AC + cmp r0, #0 + beq _021D768E + add r0, r4, #0 + mov r1, #3 + bl MOD70_021D7698 + b _021D768E +_021D7612: + mov r2, #0x10 + tst r2, r0 + beq _021D762C + add r0, r4, #0 + bl MOD70_021D76E8 + cmp r0, #0 + beq _021D768E + add r0, r4, #0 + mov r1, #3 + bl MOD70_021D7698 + b _021D768E +_021D762C: + mov r2, #0x40 + tst r2, r0 + beq _021D765C + ldr r0, [r4, #0x18] + sub r0, r0, #1 + str r0, [r4, #0x18] + bpl _021D7654 + add r0, r4, #0 + bl MOD70_021D76AC + cmp r0, #0 + beq _021D768E + ldr r0, [r4, #0x14] + mov r1, #3 + sub r0, r0, #1 + str r0, [r4, #0x18] + add r0, r4, #0 + bl MOD70_021D7698 + b _021D768E +_021D7654: + add r0, r4, #0 + bl MOD70_021D7698 + b _021D768E +_021D765C: + mov r2, #0x80 + tst r0, r2 + beq _021D768E + ldr r0, [r4, #0x18] + add r2, r0, #1 + str r2, [r4, #0x18] + ldr r0, [r4, #0x14] + cmp r2, r0 + blt _021D7682 + add r0, r4, #0 + bl MOD70_021D76E8 + cmp r0, #0 + beq _021D768E + add r0, r4, #0 + mov r1, #3 + bl MOD70_021D7698 + b _021D768E +_021D7682: + add r0, r4, #0 + bl MOD70_021D7698 + b _021D768E +_021D768A: + mov r0, #1 + pop {r3, r4, r5, pc} +_021D768E: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_021D7694: .word 0x021C48B8 + thumb_func_end MOD70_021D758C + + thumb_func_start MOD70_021D7698 +MOD70_021D7698: ; 0x021D7698 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc8 + ldr r0, [r0] + bl MOD70_021D7930 + add r4, #0xd8 + str r0, [r4] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD70_021D7698 + + thumb_func_start MOD70_021D76AC +MOD70_021D76AC: ; 0x021D76AC + push {r3, lr} + add r1, r0, #0 + add r1, #0xd4 + ldr r1, [r1] + add r2, r1, #1 + add r1, r0, #0 + add r1, #0xd4 + str r2, [r1] + add r1, r0, #0 + add r1, #0xd4 + ldr r2, [r1] + add r1, r0, #0 + add r1, #0xd0 + ldr r1, [r1] + cmp r2, r1 + blt _021D76D4 + add r1, r0, #0 + mov r2, #0 + add r1, #0xd4 + str r2, [r1] +_021D76D4: + add r1, r0, #0 + add r2, r0, #0 + add r1, #0xcc + add r2, #0xd4 + ldr r1, [r1] + ldr r2, [r2] + bl MOD70_021D777C + mov r0, #1 + pop {r3, pc} + thumb_func_end MOD70_021D76AC + + thumb_func_start MOD70_021D76E8 +MOD70_021D76E8: ; 0x021D76E8 + push {r3, lr} + add r1, r0, #0 + add r1, #0xd4 + ldr r1, [r1] + sub r2, r1, #1 + add r1, r0, #0 + add r1, #0xd4 + str r2, [r1] + add r1, r0, #0 + add r1, #0xd4 + ldr r1, [r1] + cmp r1, #0 + bge _021D7710 + add r1, r0, #0 + add r1, #0xd0 + ldr r1, [r1] + sub r2, r1, #1 + add r1, r0, #0 + add r1, #0xd4 + str r2, [r1] +_021D7710: + add r1, r0, #0 + add r2, r0, #0 + add r1, #0xcc + add r2, #0xd4 + ldr r1, [r1] + ldr r2, [r2] + bl MOD70_021D777C + mov r0, #1 + pop {r3, pc} + thumb_func_end MOD70_021D76E8 + + thumb_func_start MOD70_021D7724 +MOD70_021D7724: ; 0x021D7724 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + str r0, [sp] + str r1, [sp, #4] + mov r4, #0 + add r5, r0, #0 + mov r6, #0xc + mov r7, #0x3c +_021D7734: + add r0, r6, #0 + add r1, r7, #0 + bl FUN_020219F4 + str r0, [r5, #0x20] + mov r0, #8 + mov r1, #0x3c + bl FUN_020219F4 + str r0, [r5, #0x24] + add r4, r4, #1 + add r5, #0x1c + cmp r4, #6 + blt _021D7734 + ldr r0, [sp] + mov r2, #0 + ldr r1, [sp, #4] + str r2, [r0, #0x1c] + bl MOD70_021D777C + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_021D7724 + + thumb_func_start MOD70_021D7760 +MOD70_021D7760: ; 0x021D7760 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021D7766: + ldr r0, [r5, #0x20] + bl FUN_02021A20 + ldr r0, [r5, #0x24] + bl FUN_02021A20 + add r4, r4, #1 + add r5, #0x1c + cmp r4, #6 + blt _021D7766 + pop {r3, r4, r5, pc} + thumb_func_end MOD70_021D7760 + + thumb_func_start MOD70_021D777C +MOD70_021D777C: ; 0x021D777C + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + add r6, r0, #0 + str r2, [sp] + add r0, r7, #0 + add r1, r2, #0 + bl FUN_0202B21C + str r0, [r6] + ldr r1, [sp] + add r0, r7, #0 + bl FUN_0202B250 + str r0, [r6, #0x14] + ldr r1, [sp] + add r0, r7, #0 + add r2, r6, #4 + bl FUN_0202B31C + ldr r0, [r6, #0x14] + mov r4, #0 + cmp r0, #0 + ble _021D77C4 + add r5, r6, #0 + add r5, #0x20 +_021D77AE: + ldr r1, [sp] + add r0, r7, #0 + add r2, r4, #0 + add r3, r5, #0 + bl FUN_0202B29C + ldr r0, [r6, #0x14] + add r4, r4, #1 + add r5, #0x1c + cmp r4, r0 + blt _021D77AE +_021D77C4: + mov r0, #0 + str r0, [r6, #0x18] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD70_021D777C + + thumb_func_start MOD70_021D77CC +MOD70_021D77CC: ; 0x021D77CC + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r6, r1, #0 + add r5, r0, #0 + ldr r1, _021D7894 ; =0x00000E1C + mov r0, #0x3d + bl FUN_02016998 + add r4, r0, #0 + beq _021D788C + str r5, [r4] + str r6, [r4, #4] + mov r0, #0x3d + bl FUN_02016B94 + str r0, [r4, #0x10] + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x80 + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x3d + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + add r1, r4, #0 + mov r0, #0x40 + add r1, #0x38 + mov r2, #0x3d + bl FUN_02008C9C + str r0, [r4, #0x34] + ldr r2, _021D7898 ; =0x00000139 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x3d + bl FUN_0200A86C + mov r2, #6 + lsl r2, r2, #6 + str r0, [r4, r2] + mov r0, #1 + mov r1, #0x1a + sub r2, #0x16 + mov r3, #0x3d + bl FUN_0200A86C + mov r2, #0x61 + lsl r2, r2, #2 + str r0, [r4, r2] + mov r0, #1 + mov r1, #0x1a + add r2, #0xc8 + mov r3, #0x3d + bl FUN_0200A86C + mov r1, #0x62 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x3d + bl FUN_0200AA80 + mov r1, #0x63 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x8c + add r0, r1, #0 + mov r1, #0x3d + bl FUN_020219F4 + mov r1, #0x19 + lsl r1, r1, #4 + str r0, [r4, r1] + sub r1, #0x90 + add r0, r1, #0 + mov r1, #0x3d + bl FUN_020219F4 + mov r1, #0x65 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x3d + bl FUN_020669C0 + mov r1, #0x66 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, _021D789C ; =MOD70_021D790C + add r1, r4, #0 + bl FUN_02015F10 +_021D788C: + add r0, r4, #0 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + nop +_021D7894: .word 0x00000E1C +_021D7898: .word 0x00000139 +_021D789C: .word MOD70_021D790C + thumb_func_end MOD70_021D77CC + + thumb_func_start MOD70_021D78A0 +MOD70_021D78A0: ; 0x021D78A0 + push {r4, lr} + add r4, r0, #0 + beq _021D790A + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x66 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02016A18 + mov r0, #0x65 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0x19 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200AB18 + mov r0, #0x62 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + ldr r0, [r4, #0x34] + bl FUN_0201FD58 + bl FUN_02009FA0 + ldr r0, [r4, #0x10] + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_02016A18 +_021D790A: + pop {r4, pc} + thumb_func_end MOD70_021D78A0 + + thumb_func_start MOD70_021D790C +MOD70_021D790C: ; 0x021D790C + push {r3, lr} + ldr r0, [r0, #0x34] + bl FUN_0201FDEC + bl FUN_02009F80 + ldr r3, _021D7928 ; =0x027E0000 + ldr r1, _021D792C ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + nop +_021D7928: .word 0x027E0000 +_021D792C: .word 0x00003FF8 + thumb_func_end MOD70_021D790C + + thumb_func_start MOD70_021D7930 +MOD70_021D7930: ; 0x021D7930 + push {r3, lr} + add r2, r1, #0 + str r2, [r0, #0xc] + mov r1, #0 + lsl r3, r2, #2 + str r1, [r0, #8] + ldr r2, _021D7954 ; =0x021D82E0 + add r1, r0, #0 + ldr r2, [r2, r3] + add r1, #8 + blx r2 + cmp r0, #0 + bne _021D794E + mov r0, #1 + pop {r3, pc} +_021D794E: + mov r0, #0 + pop {r3, pc} + nop +_021D7954: .word 0x021D82E0 + thumb_func_end MOD70_021D7930 + + thumb_func_start MOD70_021D7958 +MOD70_021D7958: ; 0x021D7958 + push {r3, lr} + ldr r2, [r0, #0xc] + add r1, r0, #0 + lsl r3, r2, #2 + ldr r2, _021D796C ; =0x021D82E0 + add r1, #8 + ldr r2, [r2, r3] + blx r2 + pop {r3, pc} + nop +_021D796C: .word 0x021D82E0 + thumb_func_end MOD70_021D7958 + + thumb_func_start MOD70_021D7970 +MOD70_021D7970: ; 0x021D7970 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + ldr r1, [r4] + add r5, r0, #0 + cmp r1, #0 + beq _021D7984 + cmp r1, #1 + beq _021D79AC + b _021D79BA +_021D7984: + bl MOD70_021D7AF4 + add r0, r5, #0 + bl MOD70_021D7F70 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3d + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D79BA +_021D79AC: + bl FUN_0200E308 + cmp r0, #0 + beq _021D79BA + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021D79BA: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD70_021D7970 + + thumb_func_start MOD70_021D79C0 +MOD70_021D79C0: ; 0x021D79C0 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021D79D4 + cmp r0, #1 + beq _021D79FA + b _021D7A14 +_021D79D4: + ldr r0, _021D7A1C ; =0x0000060E + bl FUN_020054C8 + mov r1, #0 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3d + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D7A14 +_021D79FA: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7A14 + add r0, r5, #0 + bl MOD70_021D7FC4 + add r0, r5, #0 + bl MOD70_021D7C10 + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021D7A14: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + nop +_021D7A1C: .word 0x0000060E + thumb_func_end MOD70_021D79C0 + + thumb_func_start MOD70_021D7A20 +MOD70_021D7A20: ; 0x021D7A20 + push {r3, r4, r5, r6, r7, lr} + ldr r7, [r0, #4] + str r0, [sp] + ldr r0, [r7, #0x14] + mov r4, #0 + cmp r0, #0 + ble _021D7A82 + ldr r5, [sp] + add r6, r7, #0 +_021D7A32: + ldr r0, [r7, #0x18] + cmp r4, r0 + bne _021D7A5E + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02020398 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02020310 + mov r0, #1 + bl FUN_02005E80 + ldrh r0, [r6, #0x30] + bl FUN_02005578 + b _021D7A76 +_021D7A5E: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02020398 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r1, r4, #1 + bl FUN_02020310 +_021D7A76: + ldr r0, [r7, #0x14] + add r4, r4, #1 + add r5, r5, #4 + add r6, #0x1c + cmp r4, r0 + blt _021D7A32 +_021D7A82: + ldr r0, [sp] + bl MOD70_021D7D98 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_021D7A20 + + thumb_func_start MOD70_021D7A8C +MOD70_021D7A8C: ; 0x021D7A8C + push {r4, lr} + add r4, r1, #0 + ldr r1, [r4] + cmp r1, #3 + bhi _021D7AD6 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7AA2: ; jump table + .short _021D7AAA - _021D7AA2 - 2 ; case 0 + .short _021D7AB6 - _021D7AA2 - 2 ; case 1 + .short _021D7AC2 - _021D7AA2 - 2 ; case 2 + .short _021D7ACE - _021D7AA2 - 2 ; case 3 +_021D7AAA: + bl MOD70_021D7CC0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D7AD6 +_021D7AB6: + bl MOD70_021D820C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D7AD6 +_021D7AC2: + bl MOD70_021D80C8 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D7AD6 +_021D7ACE: + bl MOD70_021D7CB0 + mov r0, #1 + pop {r4, pc} +_021D7AD6: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD70_021D7A8C + + thumb_func_start MOD70_021D7ADC +MOD70_021D7ADC: ; 0x021D7ADC + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D7AF0 ; =0x000005DC + bl FUN_020054C8 + add r0, r4, #0 + bl MOD70_021D7D98 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021D7AF0: .word 0x000005DC + thumb_func_end MOD70_021D7ADC + + thumb_func_start MOD70_021D7AF4 +MOD70_021D7AF4: ; 0x021D7AF4 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r0, _021D7BF8 ; =0x021D8284 + bl FUN_0201E66C + ldr r2, _021D7BFC ; =0x04000304 + ldrh r1, [r2] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2] + ldr r0, _021D7C00 ; =0x021D823C + bl FUN_02016BBC + ldr r0, [r5, #0x10] + ldr r2, _021D7C04 ; =0x021D8268 + mov r1, #1 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r5, #0x10] + ldr r2, _021D7C08 ; =0x021D824C + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r0, #0x3d + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x65 + mov r3, #2 + bl FUN_0200687C + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3d + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x65 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0x40 + str r0, [sp] + mov r0, #0x3d + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x65 + mov r1, #2 + add r3, r2, #0 + bl FUN_02006930 + mov r2, #0 + str r2, [sp] + mov r1, #1 + ldr r0, [r5, #0x10] + add r3, r1, #0 + bl FUN_02017F48 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r5, #0x10] + mov r1, #1 + add r3, r2, #0 + bl FUN_02018540 + add r0, r5, #0 + mov r1, #1 + bl MOD70_021D7C2C + add r4, r0, #0 + add r0, r5, #0 + bl MOD70_021D7CB0 + mov r0, #0 + str r0, [sp] + mov r0, #0x3d + str r0, [sp, #4] + lsl r2, r4, #0x10 + ldr r0, [r5, #0x10] + mov r1, #1 + lsr r2, r2, #0x10 + mov r3, #2 + bl FUN_0200CB00 + add r0, r5, #0 + lsl r2, r4, #0x10 + add r0, #0x14 + mov r1, #0 + lsr r2, r2, #0x10 + mov r3, #2 + bl FUN_0200CCA4 + add r0, r5, #0 + lsl r2, r4, #0x10 + add r0, #0x24 + mov r1, #0 + lsr r2, r2, #0x10 + mov r3, #2 + bl FUN_0200CCA4 + ldr r0, [r5, #0x10] + mov r1, #1 + bl FUN_02017CD0 + mov r3, #8 + ldr r0, _021D7C0C ; =0x04000050 + mov r1, #0 + mov r2, #6 + str r3, [sp] + bl G2x_SetBlendAlpha_ + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7BF8: .word 0x021D8284 +_021D7BFC: .word 0x04000304 +_021D7C00: .word 0x021D823C +_021D7C04: .word 0x021D8268 +_021D7C08: .word 0x021D824C +_021D7C0C: .word 0x04000050 + thumb_func_end MOD70_021D7AF4 + + thumb_func_start MOD70_021D7C10 +MOD70_021D7C10: ; 0x021D7C10 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + bl MOD70_021D7C98 + pop {r4, pc} + thumb_func_end MOD70_021D7C10 + + thumb_func_start MOD70_021D7C2C +MOD70_021D7C2C: ; 0x021D7C2C + push {r4, r5, lr} + sub sp, #0x14 + mov r2, #1 + add r5, r0, #0 + str r2, [sp] + mov r0, #0x1e + str r0, [sp, #4] + mov r0, #2 + add r4, r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + add r1, r5, #0 + ldr r0, [r5, #0x10] + add r1, #0x14 + add r3, r2, #0 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1e + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0x3c + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + add r1, r5, #0 + mov r2, #1 + ldr r0, [r5, #0x10] + add r1, #0x24 + add r3, r2, #0 + bl FUN_02019064 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019270 + add r5, #0x24 + add r0, r5, #0 + bl FUN_02019270 + add r4, #0xb4 + add r0, r4, #0 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD70_021D7C2C + + thumb_func_start MOD70_021D7C98 +MOD70_021D7C98: ; 0x021D7C98 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 + add r5, #0x14 +_021D7CA0: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #2 + blt _021D7CA0 + pop {r3, r4, r5, pc} + thumb_func_end MOD70_021D7C98 + + thumb_func_start MOD70_021D7CB0 +MOD70_021D7CB0: ; 0x021D7CB0 + push {r4, lr} + add r4, r0, #0 + bl MOD70_021D7CE8 + add r0, r4, #0 + bl MOD70_021D7D98 + pop {r4, pc} + thumb_func_end MOD70_021D7CB0 + + thumb_func_start MOD70_021D7CC0 +MOD70_021D7CC0: ; 0x021D7CC0 + push {r4, lr} + add r4, r0, #0 + add r0, #0x14 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x24 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019548 + add r4, #0x24 + add r0, r4, #0 + bl FUN_02019548 + pop {r4, pc} + thumb_func_end MOD70_021D7CC0 + + thumb_func_start MOD70_021D7CE8 +MOD70_021D7CE8: ; 0x021D7CE8 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r4, [r5, #4] + mov r1, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x63 + lsl r0, r0, #2 + add r6, r5, #0 + ldr r0, [r5, r0] + ldr r2, [r4] + mov r3, #4 + add r6, #0x14 + bl FUN_0200AD38 + mov r0, #0 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x63 + lsl r0, r0, #2 + mov r2, #0x7d + ldr r3, [r4, #4] + lsl r2, r2, #4 + add r2, r3, r2 + ldr r0, [r5, r0] + mov r3, #4 + bl FUN_0200AD38 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r2, [r4, #8] + mov r1, #2 + bl FUN_0200B764 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r2, [r4, #0xc] + mov r1, #3 + mov r3, #2 + bl FUN_0200AD38 + mov r2, #6 + lsl r2, r2, #6 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + mov r1, #0 + bl FUN_0200A8E0 + mov r2, #0x63 + lsl r2, r2, #2 + add r1, r2, #0 + ldr r0, [r5, r2] + add r1, #8 + add r2, r2, #4 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl FUN_0200B7B8 + add r0, r6, #0 + mov r1, #0xf + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r1, [sp, #8] + add r2, #0x95 + ldr r2, [r5, r2] + add r0, r6, #0 + add r3, r1, #0 + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02019548 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD70_021D7CE8 + + thumb_func_start MOD70_021D7D98 +MOD70_021D7D98: ; 0x021D7D98 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x1c + ldr r1, [r4, #0x18] + add r2, r4, #0 + mul r0, r1 + add r2, #0x20 + add r7, r2, r0 + add r0, r5, #0 + str r0, [sp, #0xc] + add r0, #0x24 + mov r1, #0xf + str r0, [sp, #0xc] + bl FUN_02019620 + ldr r0, [r4, #0x1c] + cmp r0, #0 + beq _021D7DC8 + cmp r0, #1 + bne _021D7DC6 + b _021D7F1C +_021D7DC6: + b _021D7F66 +_021D7DC8: + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r1, [sp, #8] + ldr r0, [sp, #0xc] + ldr r2, [r7] + add r3, r1, #0 + bl FUN_0201BD84 + mov r2, #6 + lsl r2, r2, #6 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + mov r1, #5 + bl FUN_0200A8E0 + mov r1, #0 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r1, [sp, #8] + add r2, #0x91 + ldr r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r3, #0x48 + bl FUN_0201BD84 + mov r2, #0x61 + lsl r2, r2, #2 + ldr r0, [r5, r2] + add r2, #0xc + ldrh r1, [r7, #0x10] + ldr r2, [r5, r2] + bl FUN_0200A8E0 + mov r1, #0 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r1, [sp, #8] + add r2, #0x91 + ldr r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r3, #0x5e + bl FUN_0201BD84 + ldrh r0, [r7, #0x10] + ldr r1, [r7, #8] + bl FUN_02068A20 + cmp r0, #0 + beq _021D7E3A + cmp r0, #1 + beq _021D7E4C + b _021D7E5E +_021D7E3A: + mov r2, #6 + lsl r2, r2, #6 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + mov r1, #3 + bl FUN_0200A8E0 + b _021D7E68 +_021D7E4C: + mov r2, #6 + lsl r2, r2, #6 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + mov r1, #4 + bl FUN_0200A8E0 + b _021D7E68 +_021D7E5E: + mov r0, #0x19 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02021A4C +_021D7E68: + mov r1, #0 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r1, [sp, #8] + add r2, #0x91 + ldr r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r3, #0xae + bl FUN_0201BD84 + mov r2, #6 + lsl r2, r2, #6 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + mov r1, #1 + bl FUN_0200A8E0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x63 + lsl r0, r0, #2 + ldrb r2, [r7, #0x12] + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #4 + bl FUN_0200AD38 + mov r2, #0x63 + lsl r2, r2, #2 + add r1, r2, #0 + ldr r0, [r5, r2] + add r1, #8 + add r2, r2, #4 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl FUN_0200B7B8 + mov r1, #0 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r1, [sp, #8] + add r2, #0x95 + ldr r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r3, #0xc2 + bl FUN_0201BD84 + mov r2, #6 + lsl r2, r2, #6 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + mov r1, #2 + bl FUN_0200A8E0 + mov r0, #0x10 + str r0, [sp] + mov r2, #0xff + str r2, [sp, #4] + mov r1, #0 + str r1, [sp, #8] + add r2, #0x91 + ldr r0, [sp, #0xc] + ldr r2, [r5, r2] + add r3, r1, #0 + bl FUN_0201BD84 + mov r1, #0x19 + lsl r1, r1, #4 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + str r1, [sp, #8] + ldr r0, [sp, #0xc] + ldr r2, [r7, #4] + bl FUN_0201BD84 + b _021D7F66 +_021D7F1C: + mov r4, #0 +_021D7F1E: + ldrh r1, [r7, #0x14] + cmp r1, #0 + beq _021D7F66 + mov r0, #0x62 + mov r2, #0x19 + lsl r0, r0, #2 + lsl r2, r2, #4 + ldr r0, [r5, r0] + ldr r2, [r5, r2] + bl FUN_0200A8E0 + lsr r0, r4, #0x1f + add r0, r4, r0 + asr r0, r0, #1 + lsl r0, r0, #4 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r0, #0 + mov r2, #0x19 + str r0, [sp, #8] + lsl r2, r2, #4 + mov r3, #1 + add r6, r4, #0 + and r6, r3 + mov r3, #0x60 + ldr r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r1, #0 + mul r3, r6 + bl FUN_0201BD84 + add r4, r4, #1 + add r7, r7, #2 + cmp r4, #4 + blt _021D7F1E +_021D7F66: + ldr r0, [sp, #0xc] + bl FUN_02019548 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_021D7D98 + + thumb_func_start MOD70_021D7F70 +MOD70_021D7F70: ; 0x021D7F70 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #0x3d + str r0, [sp] + mov r0, #0x1b + mov r1, #0x29 + mov r2, #0 + add r3, sp, #8 + bl FUN_02006C30 + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x3d + str r0, [sp] + mov r0, #0x1b + mov r1, #0x2a + mov r2, #0 + add r3, sp, #4 + bl FUN_02006C5C + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r4, r1] + add r1, #0x20 + mov r2, #0x32 + mov r0, #0 + add r1, r4, r1 + lsl r2, r2, #6 + bl MIi_CpuClearFast + ldr r1, [sp, #8] + ldr r2, [sp, #4] + add r0, r4, #0 + bl MOD70_021D7FF8 + add r0, r4, #0 + bl MOD70_021D80C8 + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD70_021D7F70 + + thumb_func_start MOD70_021D7FC4 +MOD70_021D7FC4: ; 0x021D7FC4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r6, #0x16 + mov r4, #0 + add r5, r7, #0 + lsl r6, r6, #4 +_021D7FD0: + ldr r0, [r5, r6] + cmp r0, #0 + beq _021D7FDA + bl FUN_0201FFC8 +_021D7FDA: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _021D7FD0 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_02016A18 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_02016A18 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_021D7FC4 + + thumb_func_start MOD70_021D7FF8 +MOD70_021D7FF8: ; 0x021D7FF8 + push {r4, r5, r6, r7, lr} + sub sp, #0x94 + mov r3, #0 + add r5, r0, #0 + str r1, [sp, #0x7c] + str r2, [sp, #0x80] + str r3, [sp, #0x74] + str r3, [sp, #0x84] + str r3, [sp, #0x88] + str r3, [sp, #0x8c] + add r0, sp, #0x90 + strb r3, [r0] + add r0, sp, #0x2c + str r0, [sp, #0x70] + add r0, sp, #0x18 + str r0, [sp, #0x78] + ldr r0, [r5, #0x34] + mov r1, #0x28 + str r0, [sp, #0x50] + add r0, sp, #0x70 + str r0, [sp, #0x54] + mov r0, #1 + str r0, [sp, #0x68] + mov r0, #0x3d + str r3, [sp, #0x60] + str r0, [sp, #0x6c] + str r0, [sp] + add r2, r3, #0 + mov r0, #0x1b + add r3, sp, #0x14 + bl FUN_02006BB0 + str r0, [sp, #0xc] + mov r0, #0x1b + mov r1, #0x27 + add r2, sp, #0x10 + mov r3, #0x3d + bl FUN_02006C08 + mov r4, #0 + ldr r6, _021D80C4 ; =0x021D82AC + str r0, [sp, #8] + str r4, [sp, #4] + add r7, r4, #0 +_021D8050: + add r0, sp, #0x2c + bl FUN_020B1A24 + add r0, sp, #0x18 + bl FUN_020B19DC + ldr r0, [sp, #0x14] + add r1, r4, #0 + mov r2, #1 + add r3, sp, #0x2c + bl FUN_020B1768 + ldr r0, [sp, #0x10] + add r1, r7, #0 + mov r2, #1 + add r3, sp, #0x18 + bl FUN_020B1240 + ldr r0, [r6] + lsl r0, r0, #0xc + str r0, [sp, #0x58] + ldr r0, [r6, #4] + lsl r0, r0, #0xc + str r0, [sp, #0x5c] + ldr r0, [sp, #4] + add r0, r0, #1 + str r0, [sp, #0x64] + add r0, sp, #0x50 + bl FUN_0201FF84 + mov r1, #0x16 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x32 + lsl r0, r0, #6 + add r4, r4, r0 + ldr r0, [sp, #4] + add r7, #0x20 + add r0, r0, #1 + add r6, #8 + add r5, r5, #4 + str r0, [sp, #4] + cmp r0, #6 + blt _021D8050 + ldr r0, [sp, #8] + bl FUN_02016A18 + ldr r0, [sp, #0xc] + bl FUN_02016A18 + add sp, #0x94 + pop {r4, r5, r6, r7, pc} + nop +_021D80C4: .word 0x021D82AC + thumb_func_end MOD70_021D7FF8 + + thumb_func_start MOD70_021D80C8 +MOD70_021D80C8: ; 0x021D80C8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x38 + add r7, r0, #0 + ldr r0, [r7, #4] + mov r4, #0 + str r0, [sp, #0x20] + ldr r0, [r0, #0x14] + cmp r0, #0 + bgt _021D80DC + b _021D81E4 +_021D80DC: + ldr r5, [sp, #0x20] + str r4, [sp, #0x18] + add r0, r5, #0 + str r0, [sp, #0x1c] + add r0, #0x33 + str r0, [sp, #0x1c] + mov r0, #0x67 + lsl r0, r0, #2 + add r0, r7, r0 + str r4, [sp, #0x14] + add r6, r7, #0 + str r0, [sp, #0x24] +_021D80F4: + mov r0, #1 + str r0, [sp] + ldr r0, [r5, #0x28] + add r2, r5, #0 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, [r5, #0x2c] + add r2, #0x32 + str r0, [sp, #0xc] + mov r0, #0x66 + lsl r0, r0, #2 + ldrh r1, [r5, #0x30] + ldrb r2, [r2] + ldr r0, [r7, r0] + mov r3, #0x20 + bl FUN_02066ACC + mov r0, #0x66 + lsl r0, r0, #2 + ldr r0, [r7, r0] + ldr r2, [sp, #0x1c] + mov r1, #0x70 + bl FUN_02067830 + mov r1, #0x66 + lsl r1, r1, #2 + ldr r1, [r7, r1] + add r0, sp, #0x28 + mov r2, #2 + bl FUN_02068B68 + ldr r0, [sp, #0x24] + add r1, sp, #0x28 + str r0, [sp] + ldr r0, [r5, #0x28] + ldr r3, _021D8208 ; =0x021D822C + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r0, #2 + str r0, [sp, #0xc] + ldrh r0, [r5, #0x30] + mov r2, #0x3d + str r0, [sp, #0x10] + add r0, sp, #0x28 + ldrh r0, [r0] + ldrh r1, [r1, #2] + bl FUN_02012530 + mov r1, #0x32 + ldr r0, [sp, #0x24] + lsl r1, r1, #6 + bl DC_FlushRange + mov r2, #0x32 + ldr r0, [sp, #0x24] + ldr r1, [sp, #0x18] + lsl r2, r2, #6 + bl GX_LoadOBJ + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3d + str r0, [sp, #4] + add r0, sp, #0x28 + add r1, sp, #0x28 + ldrh r0, [r0] + ldrh r1, [r1, #4] + ldr r3, [sp, #0x14] + mov r2, #1 + bl FUN_02006930 + ldr r0, [sp, #0x20] + ldr r0, [r0, #0x18] + cmp r4, r0 + bne _021D81A8 + mov r0, #1 + bl FUN_02005E80 + ldrh r0, [r5, #0x30] + bl FUN_02005578 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r6, r0] + mov r1, #0 + bl FUN_02020398 + b _021D81B4 +_021D81A8: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r6, r0] + mov r1, #1 + bl FUN_02020398 +_021D81B4: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r6, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x18] + add r0, #0x1c + str r0, [sp, #0x1c] + mov r0, #0x32 + lsl r0, r0, #6 + add r0, r1, r0 + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + add r4, r4, #1 + add r0, #0x20 + str r0, [sp, #0x14] + ldr r0, [sp, #0x20] + add r5, #0x1c + ldr r0, [r0, #0x14] + add r6, r6, #4 + cmp r4, r0 + blt _021D80F4 +_021D81E4: + cmp r4, #6 + bge _021D8202 + lsl r0, r4, #2 + mov r6, #0x16 + add r5, r7, r0 + mov r7, #0 + lsl r6, r6, #4 +_021D81F2: + ldr r0, [r5, r6] + add r1, r7, #0 + bl FUN_020200A0 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _021D81F2 +_021D8202: + add sp, #0x38 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8208: .word 0x021D822C + thumb_func_end MOD70_021D80C8 + + thumb_func_start MOD70_021D820C +MOD70_021D820C: ; 0x021D820C + push {r3, r4, r5, r6, r7, lr} + mov r4, #0 + mov r6, #0x16 + add r5, r0, #0 + add r7, r4, #0 + lsl r6, r6, #4 +_021D8218: + ldr r0, [r5, r6] + add r1, r7, #0 + bl FUN_020200A0 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _021D8218 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD70_021D820C + + .section .rodata + ; 0x021D822C + .incbin "baserom.nds", 0x2C594C, 0xB0 + + .section .data + ; 0x021D82E0 + .incbin "baserom.nds", 0x2C5A00, 0x20 diff --git a/arm9/modules/71/asm/module_71.s b/arm9/modules/71/asm/module_71.s new file mode 100644 index 00000000..9aa14aef --- /dev/null +++ b/arm9/modules/71/asm/module_71.s @@ -0,0 +1,7155 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD71_0222D5C0 +MOD71_0222D5C0: ; 0x0222D5C0 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _0222D72C ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _0222D730 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + ldr r2, _0222D734 ; =0x000707D0 + mov r0, #3 + mov r1, #0x1a + bl FUN_0201681C + ldr r1, _0222D738 ; =0x000036B4 + add r0, r5, #0 + mov r2, #0x1a + bl FUN_02006268 + add r4, r0, #0 + ldr r2, _0222D738 ; =0x000036B4 + mov r0, #0 + add r1, r4, #0 + bl MIi_CpuClearFast + mov r0, #0x1a + bl FUN_02016B94 + mov r1, #0x5d + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0xc + mov r1, #0x16 + mov r2, #0x1a + bl FUN_0200AA90 + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x1a + bl FUN_0200AA80 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x1a + bl FUN_0200AA80 + mov r2, #6 + lsl r2, r2, #6 + str r0, [r4, r2] + mov r1, #0x1a + mov r0, #0 + sub r2, #0x44 + add r3, r1, #0 + bl FUN_0200A86C + mov r1, #0x61 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0 + str r0, [r4, #0x40] + add r0, r4, #0 + add r1, r5, #0 + bl MOD70_0222E76C + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + bl MOD70_0222E558 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD70_0222E578 + mov r0, #0x10 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x1a + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + add r0, r4, #0 + bl MOD70_0222E900 + ldr r0, _0222D73C ; =MOD70_0222E4DC + add r1, r4, #0 + bl FUN_02015F10 + bl MOD70_0222EA38 + add r0, r4, #0 + bl MOD70_0222EA68 + add r0, r4, #0 + bl MOD70_0222EF90 + mov r0, #0x5d + ldr r2, [r4, #8] + lsl r0, r0, #2 + ldr r1, _0222D740 ; =0x00000438 + ldr r0, [r4, r0] + ldr r2, [r2, #0x18] + add r1, r4, r1 + bl MOD70_02230C48 + ldr r0, [r4, #8] + add r1, r4, #0 + ldr r0, [r0] + str r0, [r4] + bl FUN_02083D10 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222D744 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + ldr r0, [r4] + bl FUN_02083B84 + mov r0, #0 + mov r1, #1 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r1, #0x5d + lsl r1, r1, #2 + ldr r1, [r4, r1] + mov r0, #0x1a + bl FUN_020335F0 + bl FUN_02033E74 + bl FUN_0201277C + cmp r0, #0 + bne _0222D71A + ldr r1, _0222D748 ; =0x0000043D + mov r0, #4 + mov r2, #1 + bl FUN_0200433C + b _0222D724 +_0222D71A: + ldr r1, _0222D74C ; =0x0000043E + mov r0, #4 + mov r2, #1 + bl FUN_0200433C +_0222D724: + mov r0, #1 + add sp, #0xc + pop {r4, r5, pc} + nop +_0222D72C: .word 0xFFFFE0FF +_0222D730: .word 0x04001000 +_0222D734: .word 0x000707D0 +_0222D738: .word 0x000036B4 +_0222D73C: .word MOD70_0222E4DC +_0222D740: .word 0x00000438 +_0222D744: .word 0x000005A8 +_0222D748: .word 0x0000043D +_0222D74C: .word 0x0000043E + thumb_func_end MOD71_0222D5C0 + + thumb_func_start MOD70_0222D750 +MOD70_0222D750: ; 0x0222D750 + push {r4, r5, r6, lr} + add r5, r1, #0 + ldr r1, [sp, #0x10] + add r4, r2, #0 + lsl r1, r1, #4 + add r1, #0x92 + mov r2, #2 + ldr r0, [r0, #0x14] + add r6, r3, #0 + lsl r1, r1, #5 + lsl r2, r2, #8 + bl GX_LoadOBJ + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0206B7BC + add r1, r0, #0 + ldr r0, [sp, #0x14] + add r1, #0xa + bl FUN_020202A8 + pop {r4, r5, r6, pc} + thumb_func_end MOD70_0222D750 + + thumb_func_start MOD70_0222D780 +MOD70_0222D780: ; 0x0222D780 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + bl FUN_02031190 + bl FUN_0202DFA4 + add r4, r0, #0 + bl FUN_02031190 + mov r1, #1 + eor r0, r1 + bl FUN_0202DFA4 + add r6, r0, #0 + add r0, r4, #0 + mov r1, #0x1a + bl FUN_020239A0 + add r4, r0, #0 + add r0, r6, #0 + mov r1, #0x1a + bl FUN_020239A0 + add r6, r0, #0 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x30 + bl FUN_0200A914 + add r7, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _0222D814 ; =0x00000438 + add r1, r4, #0 + add r0, r5, r0 + mov r2, #0xa + mov r3, #0 + bl MOD70_02230EFC + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _0222D818 ; =0x00000448 + add r1, r6, #0 + add r0, r5, r0 + mov r2, #0xa + mov r3, #0 + bl MOD70_02230EFC + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, _0222D81C ; =0x00000498 + add r1, r7, #0 + add r0, r5, r0 + mov r2, #5 + mov r3, #0 + bl MOD70_02230EFC + add r0, r7, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222D814: .word 0x00000438 +_0222D818: .word 0x00000448 +_0222D81C: .word 0x00000498 + thumb_func_end MOD70_0222D780 + + thumb_func_start MOD70_0222D820 +MOD70_0222D820: ; 0x0222D820 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + bl MOD70_0222E558 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD70_0222E578 + add r0, r4, #0 + bl MOD70_0222E900 + add r0, r4, #0 + bl MOD70_0222D93C + add r0, r4, #0 + bl MOD70_0222D780 + ldr r0, [r4, #8] + ldr r0, [r0, #0x18] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + mov r2, #0x5d + str r0, [sp] + mov r0, #0x1a + lsl r2, r2, #2 + str r0, [sp, #4] + ldr r0, [r4, r2] + mov r1, #0 + add r2, #0x65 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + mov r2, #0x5d + str r1, [sp] + mov r0, #0x1a + lsl r2, r2, #2 + str r0, [sp, #4] + ldr r0, [r4, r2] + add r2, #0x83 + mov r3, #0xb + bl FUN_0200CB00 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222D92C ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + mov r0, #4 + mov r1, #1 + bl FUN_0201797C + mov r0, #5 + mov r1, #1 + bl FUN_0201797C + mov r0, #6 + mov r1, #1 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + mov r0, #0 + mov r1, #1 + bl FUN_0201797C + mov r0, #1 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #1 + bl FUN_0201797C + mov r0, #3 + mov r1, #1 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + bl MOD70_0222EA38 + add r0, r4, #0 + bl MOD70_0222EA68 + add r0, r4, #0 + bl MOD70_0222EF90 + ldr r0, _0222D930 ; =0x00002218 + mov r1, #0 + ldr r0, [r4, r0] + add r2, r4, #0 + bl MOD70_0222DBEC + ldr r0, _0222D934 ; =0x0000221C + mov r1, #6 + ldr r0, [r4, r0] + add r2, r4, #0 + bl MOD70_0222DBEC + mov r0, #0xce + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xcf + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r0, _0222D938 ; =MOD70_0222E4DC + add r1, r4, #0 + bl FUN_02015F10 + add sp, #8 + pop {r4, pc} + nop +_0222D92C: .word 0x00000588 +_0222D930: .word 0x00002218 +_0222D934: .word 0x0000221C +_0222D938: .word MOD70_0222E4DC + thumb_func_end MOD70_0222D820 + + thumb_func_start MOD70_0222D93C +MOD70_0222D93C: ; 0x0222D93C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5e + ldr r1, _0222D9B8 ; =0x00002218 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + mov r2, #0 + bl MOD70_0222DB5C + mov r0, #0x5e + ldr r1, _0222D9BC ; =0x0000221C + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + mov r2, #6 + bl MOD70_0222DB5C + mov r0, #0 + mov r2, #0x5e + str r0, [sp] + lsl r2, r2, #2 + ldr r3, _0222D9B8 ; =0x00002218 + ldr r0, _0222D9C0 ; =0x000004A8 + ldr r1, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + ldr r3, [r5, r3] + add r0, r5, r0 + bl MOD70_0222DB94 + mov r0, #6 + mov r2, #0x5e + str r0, [sp] + lsl r2, r2, #2 + ldr r3, _0222D9BC ; =0x0000221C + ldr r0, _0222D9C4 ; =0x00000508 + ldr r1, [r5, r2] + add r2, #0xc + ldr r2, [r5, r2] + ldr r3, [r5, r3] + add r0, r5, r0 + bl MOD70_0222DB94 + ldr r0, _0222D9B8 ; =0x00002218 + ldr r0, [r5, r0] + bl FUN_0206B9AC + add r4, r0, #0 + ldr r0, _0222D9BC ; =0x0000221C + ldr r0, [r5, r0] + bl FUN_0206B9AC + add r2, r0, #0 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl MOD70_0222E8DC + pop {r3, r4, r5, pc} + nop +_0222D9B8: .word 0x00002218 +_0222D9BC: .word 0x0000221C +_0222D9C0: .word 0x000004A8 +_0222D9C4: .word 0x00000508 + thumb_func_end MOD70_0222D93C + + thumb_func_start MOD70_0222D9C8 +MOD70_0222D9C8: ; 0x0222D9C8 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + mov r6, #0 + cmp r1, #0 + beq _0222D9E8 + cmp r1, #1 + beq _0222D9FC + cmp r1, #2 + bne _0222D9E6 + b _0222DB28 +_0222D9E6: + b _0222DB32 +_0222D9E8: + bl FUN_0200E308 + cmp r0, #0 + beq _0222DA02 + mov r0, #1 + str r0, [r5] + add r0, r4, #0 + bl MOD70_0222D780 + b _0222DB32 +_0222D9FC: + ldr r1, [r4, #0x48] + cmp r1, #7 + bls _0222DA04 +_0222DA02: + b _0222DB32 +_0222DA04: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222DA10: ; jump table + .short _0222DA20 - _0222DA10 - 2 ; case 0 + .short _0222DA28 - _0222DA10 - 2 ; case 1 + .short _0222DA36 - _0222DA10 - 2 ; case 2 + .short _0222DA54 - _0222DA10 - 2 ; case 3 + .short _0222DA72 - _0222DA10 - 2 ; case 4 + .short _0222DAAE - _0222DA10 - 2 ; case 5 + .short _0222DAFE - _0222DA10 - 2 ; case 6 + .short _0222DB1A - _0222DA10 - 2 ; case 7 +_0222DA20: + bl MOD70_0222DD60 + str r0, [r4, #0x48] + b _0222DB32 +_0222DA28: + bl MOD70_0222E2D4 + str r0, [r4, #0x48] + add r0, r4, #0 + bl MOD70_0222F264 + b _0222DB32 +_0222DA36: + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x1a + str r0, [sp, #8] + add r0, r6, #0 + add r1, r6, #0 + add r2, r6, #0 + add r3, r6, #0 + bl FUN_0200E1D0 + mov r0, #2 + str r0, [r5] + b _0222DB32 +_0222DA54: + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x1a + str r0, [sp, #8] + add r0, r6, #0 + add r1, r6, #0 + add r2, r6, #0 + add r3, r6, #0 + bl FUN_0200E1D0 + mov r0, #4 + str r0, [r4, #0x48] + b _0222DB32 +_0222DA72: + bl FUN_0200E308 + cmp r0, #0 + beq _0222DB32 + add r0, r4, #0 + bl MOD70_0222E3D4 + add r0, r4, #0 + bl MOD70_0222E378 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD70_0222E848 + mov r0, #1 + str r0, [r4, #0x44] + mov r0, #5 + str r0, [r4, #0x48] + add r0, r4, #0 + add r0, #0x88 + ldr r0, [r0] + mov r1, #6 + bl _s32_div_f + add r1, r0, #0 + add r0, r4, #0 + bl MOD70_0222F59C + b _0222DB32 +_0222DAAE: + ldr r0, [r4, #0x40] + bl FUN_02006290 + cmp r0, #0 + beq _0222DB32 + ldr r0, [r4, #0x40] + bl FUN_02006260 + add r0, r4, #0 + bl MOD70_0222D820 + add r0, r6, #0 + str r0, [r4, #0x44] + add r0, r4, #0 + add r0, #0x20 + ldrb r2, [r0] + ldr r1, [r4, #0x3c] + mov r0, #6 + mul r0, r1 + add r1, r2, r0 + add r0, r4, #0 + add r0, #0x88 + str r1, [r0] + add r0, r4, #0 + bl MOD70_0222E224 + add r0, r4, #0 + mov r1, #0xce + add r0, #0x88 + lsl r1, r1, #2 + ldr r0, [r0] + ldr r1, [r4, r1] + add r2, r6, #0 + bl MOD70_0222F350 + bl FUN_02033E74 + mov r0, #6 + str r0, [r4, #0x48] + b _0222DB32 +_0222DAFE: + mov r0, #8 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x1a + str r0, [sp, #8] + add r0, r6, #0 + add r2, r1, #0 + add r3, r6, #0 + bl FUN_0200E1D0 + mov r0, #7 + str r0, [r4, #0x48] + b _0222DB32 +_0222DB1A: + bl FUN_0200E308 + cmp r0, #0 + beq _0222DB32 + mov r0, #1 + str r0, [r4, #0x48] + b _0222DB32 +_0222DB28: + bl FUN_0200E308 + cmp r0, #0 + beq _0222DB32 + mov r6, #1 +_0222DB32: + ldr r0, [r4, #0x44] + cmp r0, #0 + bne _0222DB48 + add r0, r4, #0 + bl MOD70_02230B3C + mov r0, #0x65 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0201FDEC +_0222DB48: + mov r1, #0x5d + lsl r1, r1, #2 + ldr r1, [r4, r1] + mov r0, #0x1a + bl FUN_020335F0 + add r0, r6, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD70_0222D9C8 + + thumb_func_start MOD70_0222DB5C +MOD70_0222DB5C: ; 0x0222DB5C + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r7, r0, #0 + add r0, r5, #0 + add r6, r2, #0 + mov r4, #0 + bl FUN_0206B9AC + cmp r0, #0 + ble _0222DB92 +_0222DB70: + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0206B9B0 + bl FUN_020690E4 + add r2, r0, #0 + add r0, r7, #0 + add r1, r4, r6 + bl FUN_0200ACF8 + add r0, r5, #0 + add r4, r4, #1 + bl FUN_0206B9AC + cmp r4, r0 + blt _0222DB70 +_0222DB92: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_0222DB5C + + thumb_func_start MOD70_0222DB94 +MOD70_0222DB94: ; 0x0222DB94 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + add r0, r3, #0 + str r1, [sp, #8] + str r2, [sp, #0xc] + str r3, [sp, #0x10] + ldr r6, [sp, #0x28] + mov r4, #0 + bl FUN_0206B9AC + cmp r0, #0 + ble _0222DBE6 + add r7, r6, #1 +_0222DBB0: + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + add r2, r7, r4 + mov r3, #0x1a + bl FUN_0200A9C4 + add r6, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r6, #0 + mov r2, #8 + mov r3, #0 + bl MOD70_02230EFC + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, [sp, #0x10] + add r5, #0x10 + add r4, r4, #1 + bl FUN_0206B9AC + cmp r4, r0 + blt _0222DBB0 +_0222DBE6: + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD70_0222DB94 + + thumb_func_start MOD70_0222DBEC +MOD70_0222DBEC: ; 0x0222DBEC + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + str r0, [sp, #8] + str r1, [sp, #0xc] + str r2, [sp, #0x20] + mov r7, #0 + bl FUN_0206B9AC + cmp r0, #0 + bgt _0222DC02 + b _0222DD10 +_0222DC02: + mov r1, #0x1f + ldr r0, [sp, #0x20] + lsl r1, r1, #6 + add r0, r0, r1 + str r0, [sp, #0x1c] +_0222DC0C: + ldr r0, [sp, #0xc] + ldr r2, _0222DD50 ; =0x00000696 + add r0, r7, r0 + str r0, [sp, #0x10] + lsl r0, r0, #2 + str r0, [sp, #0x18] + ldr r0, [sp, #0x10] + lsl r1, r0, #4 + ldr r0, [sp, #0x20] + add r4, r0, r1 + ldr r1, [sp, #0x18] + ldrb r2, [r4, r2] + add r5, r0, r1 + mov r0, #0x69 + ldr r1, _0222DD54 ; =0x00000695 + lsl r0, r0, #4 + ldrh r0, [r4, r0] + ldrb r1, [r4, r1] + bl FUN_0206B6D4 + add r1, r0, #0 + mov r0, #0x1a + str r0, [sp] + ldr r6, [sp, #0x1c] + ldr r3, [sp, #0x18] + mov r0, #0x13 + mov r2, #0 + add r3, r6, r3 + bl FUN_02006BB0 + mov r1, #0x79 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + add r0, #0x30 + ldr r0, [r5, r0] + mov r1, #2 + ldr r0, [r0, #0x14] + lsl r1, r1, #8 + bl DC_FlushRange + ldr r0, [sp, #0x10] + mov r1, #0x69 + str r0, [sp] + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r5, r0] + ldr r2, _0222DD50 ; =0x00000696 + str r0, [sp, #4] + ldr r3, _0222DD54 ; =0x00000695 + mov r0, #0x1f + lsl r1, r1, #4 + lsl r0, r0, #6 + ldrh r1, [r4, r1] + ldrb r2, [r4, r2] + ldrb r3, [r4, r3] + ldr r0, [r5, r0] + bl MOD70_0222D750 + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r0, _0222DD58 ; =0x00000692 + ldrh r0, [r4, r0] + cmp r0, #0 + bne _0222DCA4 + mov r0, #0x3a + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + b _0222DCCC +_0222DCA4: + ldr r0, [sp, #0x10] + lsl r1, r0, #2 + ldr r0, [sp, #0x20] + add r1, r0, r1 + mov r0, #0x3a + lsl r0, r0, #4 + ldr r0, [r1, r0] + str r1, [sp, #0x14] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x3a + ldr r1, [sp, #0x14] + lsl r0, r0, #4 + ldr r0, [r1, r0] + ldr r1, _0222DD58 ; =0x00000692 + ldrh r1, [r4, r1] + add r1, r1, #2 + bl FUN_02020130 +_0222DCCC: + ldr r0, _0222DD5C ; =0x0000069C + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222DCE2 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + b _0222DD02 +_0222DCE2: + ldr r0, [sp, #0x10] + lsl r1, r0, #2 + ldr r0, [sp, #0x20] + add r4, r0, r1 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0x15 + bl FUN_02020130 +_0222DD02: + ldr r0, [sp, #8] + add r7, r7, #1 + bl FUN_0206B9AC + cmp r7, r0 + bge _0222DD10 + b _0222DC0C +_0222DD10: + cmp r7, #6 + bge _0222DD4C + ldr r0, [sp, #0xc] + mov r6, #0x3a + lsl r1, r0, #2 + ldr r0, [sp, #0x20] + lsl r6, r6, #4 + add r1, r0, r1 + lsl r0, r7, #2 + add r5, r6, #0 + add r4, r1, r0 + add r5, #0x30 +_0222DD28: + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4, r6] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4, r5] + mov r1, #0 + bl FUN_020200A0 + add r7, r7, #1 + add r4, r4, #4 + cmp r7, #6 + blt _0222DD28 +_0222DD4C: + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222DD50: .word 0x00000696 +_0222DD54: .word 0x00000695 +_0222DD58: .word 0x00000692 +_0222DD5C: .word 0x0000069C + thumb_func_end MOD70_0222DBEC + + thumb_func_start MOD70_0222DD60 +MOD70_0222DD60: ; 0x0222DD60 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r4, r0, #0 + bl MOD70_02230C1C + ldr r0, [r4, #0x4c] + cmp r0, #0x13 + bls _0222DD72 + b _0222E0E8 +_0222DD72: + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222DD7E: ; jump table + .short _0222DDA6 - _0222DD7E - 2 ; case 0 + .short _0222DDC0 - _0222DD7E - 2 ; case 1 + .short _0222DE12 - _0222DD7E - 2 ; case 2 + .short _0222DE22 - _0222DD7E - 2 ; case 3 + .short _0222DE38 - _0222DD7E - 2 ; case 4 + .short _0222DE48 - _0222DD7E - 2 ; case 5 + .short _0222DE60 - _0222DD7E - 2 ; case 6 + .short _0222DE74 - _0222DD7E - 2 ; case 7 + .short _0222DE86 - _0222DD7E - 2 ; case 8 + .short _0222DEB2 - _0222DD7E - 2 ; case 9 + .short _0222DEC0 - _0222DD7E - 2 ; case 10 + .short _0222DECC - _0222DD7E - 2 ; case 11 + .short _0222DF58 - _0222DD7E - 2 ; case 12 + .short _0222DF74 - _0222DD7E - 2 ; case 13 + .short _0222DF80 - _0222DD7E - 2 ; case 14 + .short _0222DF92 - _0222DD7E - 2 ; case 15 + .short _0222DFD6 - _0222DD7E - 2 ; case 16 + .short _0222E010 - _0222DD7E - 2 ; case 17 + .short _0222E054 - _0222DD7E - 2 ; case 18 + .short _0222E094 - _0222DD7E - 2 ; case 19 +_0222DDA6: + mov r0, #0x50 + bl FUN_02031588 + mov r0, #2 + bl FUN_020166A8 + add r0, r4, #0 + bl MOD70_02230B88 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DDC0: + mov r0, #0x50 + bl FUN_020315D8 + cmp r0, #0 + beq _0222DEB8 + ldr r0, [r4, #8] + ldr r0, [r0, #0x34] + cmp r0, #0 + bne _0222DDD6 + mov r0, #6 + b _0222DDD8 +_0222DDD6: + mov r0, #2 +_0222DDD8: + str r0, [r4, #0x4c] + bl FUN_02031190 + cmp r0, #0 + bne _0222DE04 + bl FUN_0201B9EC + ldr r1, _0222E0F0 ; =0x00000445 + bl _s32_div_f + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x3c + blo _0222DDF8 + bl ErrorHandling +_0222DDF8: + bl FUN_02031190 + mov r1, #0x1f + add r2, r5, #3 + bl MOD70_0222F42C +_0222DE04: + ldr r0, [r4, #4] + bl MOD70_0222F4A8 + add r0, r4, #0 + bl MOD70_02230C08 + b _0222E0E8 +_0222DE12: + mov r1, #0x8b + lsl r1, r1, #6 + ldr r1, [r4, r1] + cmp r1, #0 + beq _0222DEB8 + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DE22: + mov r0, #0x8b + lsl r0, r0, #6 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222DEB8 + mov r0, #4 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DE38: + ldr r0, _0222E0F4 ; =0x0000369C + add r0, r4, r0 + bl FUN_020336C0 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DE48: + ldr r2, _0222E0F4 ; =0x0000369C + ldr r0, [r4, #4] + mov r1, #2 + add r2, r4, r2 + bl FUN_020336C8 + cmp r0, #0 + beq _0222DEB8 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DE60: + mov r0, #1 + bl FUN_02031400 + mov r0, #0x51 + bl FUN_02031588 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DE74: + mov r0, #0x51 + bl FUN_020315D8 + cmp r0, #0 + beq _0222DEB8 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DE86: + mov r0, #0 + str r0, [r4, #0x50] + str r0, [r4, #0x54] + str r0, [r4, #0x58] + bl FUN_02031190 + cmp r0, #1 + bne _0222DEAA + bl FUN_02031190 + ldr r1, _0222E0F8 ; =0x00002218 + ldr r2, [r4, #0x50] + ldr r1, [r4, r1] + bl MOD70_0222F480 + ldr r0, [r4, #0x50] + add r0, r0, #1 + str r0, [r4, #0x50] +_0222DEAA: + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DEB2: + ldr r0, [r4, #0x54] + cmp r0, #0 + bne _0222DEBA +_0222DEB8: + b _0222E0E8 +_0222DEBA: + mov r0, #0xa + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DEC0: + add r0, r0, #1 + str r0, [r4, #0x4c] + add r0, r4, #0 + bl MOD70_0222D93C + b _0222E0E8 +_0222DECC: + mov r1, #0 + mov r0, #0x69 + add r2, r4, #0 + add r5, r1, #0 + lsl r0, r0, #4 +_0222DED6: + add r1, r1, #1 + strh r5, [r2, r0] + add r2, #0x10 + cmp r1, #0xd + blt _0222DED6 + ldr r0, _0222E0F8 ; =0x00002218 + ldr r0, [r4, r0] + bl FUN_0206B9AC + cmp r0, #0 + ble _0222DF12 + mov r0, #0x69 + lsl r0, r0, #4 + ldr r7, _0222E0F8 ; =0x00002218 + add r6, r4, r0 +_0222DEF4: + ldr r0, _0222E0F8 ; =0x00002218 + add r1, r5, #0 + ldr r0, [r4, r0] + bl FUN_0206B9B0 + add r1, r6, #0 + bl MOD70_0222E118 + ldr r0, [r4, r7] + add r6, #0x10 + add r5, r5, #1 + bl FUN_0206B9AC + cmp r5, r0 + blt _0222DEF4 +_0222DF12: + ldr r0, _0222E0FC ; =0x0000221C + mov r5, #0 + ldr r0, [r4, r0] + bl FUN_0206B9AC + cmp r0, #0 + ble _0222DF48 + mov r0, #0x69 + lsl r0, r0, #4 + ldr r7, _0222E0FC ; =0x0000221C + add r6, r4, r0 +_0222DF28: + ldr r0, _0222E0FC ; =0x0000221C + add r1, r5, #0 + ldr r0, [r4, r0] + bl FUN_0206B9B0 + add r1, r5, #6 + lsl r1, r1, #4 + add r1, r6, r1 + bl MOD70_0222E118 + ldr r0, [r4, r7] + add r5, r5, #1 + bl FUN_0206B9AC + cmp r5, r0 + blt _0222DF28 +_0222DF48: + mov r0, #0x75 + mov r1, #1 + lsl r0, r0, #4 + strh r1, [r4, r0] + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DF58: + bl FUN_02031190 + bl FUN_0202DFA4 + ldr r2, _0222E100 ; =0x00002224 + ldr r1, [r4, r2] + add r2, r2, #4 + add r2, r4, r2 + bl MOD70_0222F4BC + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DF74: + ldr r1, [r4, #0x54] + cmp r1, #3 + bne _0222DFD4 + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DF80: + ldr r0, [r4, #4] + bl FUN_02029EF8 + bl MOD70_0222F528 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222DF92: + ldr r1, [r4, #0x54] + cmp r1, #4 + bne _0222DFD4 + add r0, r0, #1 + str r0, [r4, #0x4c] + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E6E4 + ldr r0, _0222E0F8 ; =0x00002218 + mov r1, #0 + ldr r0, [r4, r0] + add r2, r4, #0 + bl MOD70_0222DBEC + ldr r0, _0222E0FC ; =0x0000221C + mov r1, #6 + ldr r0, [r4, r0] + add r2, r4, #0 + bl MOD70_0222DBEC + mov r6, #0xce + mov r5, #0 + mov r7, #1 + lsl r6, r6, #2 +_0222DFC4: + ldr r0, [r4, r6] + add r1, r7, #0 + bl FUN_020200A0 + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #2 + blt _0222DFC4 +_0222DFD4: + b _0222E0E8 +_0222DFD6: + mov r1, #0 + mov r0, #1 + add r2, r1, #0 + str r0, [sp] + mov r0, #8 + sub r2, #0x10 + mov r3, #0x1e + bl FUN_0200A208 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #1 + bl FUN_0201797C + mov r0, #3 + mov r1, #1 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222E010: + mov r0, #1 + bl FUN_0200A344 + cmp r0, #0 + beq _0222E0E8 + ldr r0, _0222E0F8 ; =0x00002218 + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_0206B9B0 + mov r2, #0x7f + ldr r3, _0222E104 ; =0x000020F0 + lsl r2, r2, #4 + add r1, r0, #0 + mov r0, #0 + add r2, r4, r2 + add r3, r4, r3 + bl MOD70_0222EBFC + ldr r1, _0222E108 ; =0x00002110 + ldr r2, _0222E0F8 ; =0x00002218 + str r0, [r4, r1] + str r4, [sp] + ldr r0, _0222E10C ; =0x00000438 + mov r1, #0 + ldr r2, [r4, r2] + add r0, r4, r0 + add r3, r1, #0 + bl MOD70_0222ECD4 + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + b _0222E0E8 +_0222E054: + mov r1, #0 + mov r0, #2 + add r2, r1, #0 + str r0, [sp] + mov r0, #8 + sub r2, #0x10 + mov r3, #0x17 + bl FUN_0200A208 + mov r0, #4 + mov r1, #1 + bl FUN_0201797C + mov r0, #5 + mov r1, #1 + bl FUN_0201797C + mov r0, #6 + mov r1, #1 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + ldr r0, [r4, #0x4c] + add r0, r0, #1 + str r0, [r4, #0x4c] + add r0, r4, #0 + bl MOD70_02230BA8 + b _0222E0E8 +_0222E094: + mov r0, #2 + bl FUN_0200A344 + cmp r0, #0 + beq _0222E0E8 + ldr r0, _0222E110 ; =0x000005A8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200D0E0 + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222E114 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + mov r0, #2 + bl FUN_020166B8 + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0222E0E8: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E0F0: .word 0x00000445 +_0222E0F4: .word 0x0000369C +_0222E0F8: .word 0x00002218 +_0222E0FC: .word 0x0000221C +_0222E100: .word 0x00002224 +_0222E104: .word 0x000020F0 +_0222E108: .word 0x00002110 +_0222E10C: .word 0x00000438 +_0222E110: .word 0x000005A8 +_0222E114: .word 0x00000588 + thumb_func_end MOD70_0222DD60 + + thumb_func_start MOD70_0222E118 +MOD70_0222E118: ; 0x0222E118 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_020669D4 + add r7, r0, #0 + add r0, r5, #0 + mov r1, #0x9a + mov r2, #0 + bl FUN_020671BC + strb r0, [r4, #4] + add r0, r5, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + strh r0, [r4] + add r0, r5, #0 + mov r1, #0x70 + mov r2, #0 + bl FUN_020671BC + strb r0, [r4, #6] + add r0, r5, #0 + mov r1, #0x4c + mov r2, #0 + bl FUN_020671BC + strb r0, [r4, #5] + add r0, r5, #0 + mov r1, #0x6f + mov r2, #0 + bl FUN_020671BC + strh r0, [r4, #8] + add r0, r5, #0 + mov r1, #0xa1 + mov r2, #0 + bl FUN_020671BC + str r0, [r4, #0xc] + add r0, r5, #0 + mov r1, #6 + mov r2, #0 + bl FUN_020671BC + add r6, r0, #0 + add r0, r5, #0 + add r1, r7, #0 + bl FUN_02066A20 + ldrh r0, [r4] + cmp r0, #0 + beq _0222E18E + mov r1, #0x1c + bl FUN_02068678 + strh r0, [r4, #0xa] +_0222E18E: + cmp r6, #0 + beq _0222E19E + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + bl FUN_0206EA98 + add r0, r0, #1 + strh r0, [r4, #2] +_0222E19E: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_0222E118 + + thumb_func_start MOD70_0222E1A0 +MOD70_0222E1A0: ; 0x0222E1A0 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #6 + bl _s32_div_f + ldr r0, _0222E20C ; =0x0000221C + add r7, r1, #0 + ldr r0, [r5, r0] + bl FUN_0206B9B0 + add r6, r0, #0 + add r0, r4, #0 + mov r1, #6 + bl _s32_div_f + add r1, r6, #0 + mov r2, #0x7f + mov r6, #0x32 + add r3, r0, #0 + lsl r2, r2, #4 + lsl r6, r6, #6 + mul r6, r3 + add r2, r5, r2 + add r2, r2, r6 + ldr r6, _0222E210 ; =0x000020F0 + lsl r3, r3, #4 + add r6, r5, r6 + mov r0, #1 + add r3, r6, r3 + bl MOD70_0222EBFC + ldr r1, _0222E214 ; =0x00002110 + ldr r2, _0222E20C ; =0x0000221C + str r0, [r5, r1] + str r5, [sp] + ldr r0, _0222E218 ; =0x00000438 + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + add r3, r7, #0 + bl MOD70_0222ECD4 + lsl r1, r4, #4 + add r2, r5, r1 + ldr r1, _0222E21C ; =0x00000694 + ldr r0, _0222E220 ; =0x0000040C + ldrb r1, [r2, r1] + ldr r0, [r5, r0] + add r1, r1, #5 + bl FUN_02020130 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222E20C: .word 0x0000221C +_0222E210: .word 0x000020F0 +_0222E214: .word 0x00002110 +_0222E218: .word 0x00000438 +_0222E21C: .word 0x00000694 +_0222E220: .word 0x0000040C + thumb_func_end MOD70_0222E1A0 + + thumb_func_start MOD70_0222E224 +MOD70_0222E224: ; 0x0222E224 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r1, r5, #0 + add r1, #0x88 + ldr r1, [r1] + cmp r1, #0xc + beq _0222E2B8 + cmp r1, #6 + bge _0222E29E + ldr r0, _0222E2BC ; =0x00002218 + ldr r0, [r5, r0] + bl FUN_0206B9B0 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0x88 + ldr r0, [r0] + mov r1, #6 + bl _s32_div_f + mov r2, #0x7f + add r3, r0, #0 + lsl r2, r2, #4 + add r1, r4, #0 + add r4, r5, r2 + mov r2, #0x32 + lsl r2, r2, #6 + mul r2, r3 + add r2, r4, r2 + ldr r4, _0222E2C0 ; =0x000020F0 + lsl r3, r3, #4 + add r4, r5, r4 + mov r0, #0 + add r3, r4, r3 + bl MOD70_0222EBFC + ldr r1, _0222E2C4 ; =0x00002110 + add r3, r5, #0 + str r0, [r5, r1] + ldr r0, _0222E2C8 ; =0x00000438 + ldr r2, _0222E2BC ; =0x00002218 + str r5, [sp] + add r3, #0x88 + ldr r2, [r5, r2] + ldr r3, [r3] + add r0, r5, r0 + mov r1, #0 + bl MOD70_0222ECD4 + ldr r0, _0222E2C8 ; =0x00000438 + mov r1, #1 + add r0, r5, r0 + add r2, r5, #0 + bl MOD70_0222EF24 + ldr r0, _0222E2CC ; =0x0000040C + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_020200A0 + pop {r3, r4, r5, pc} +_0222E29E: + bl MOD70_0222E1A0 + ldr r0, _0222E2C8 ; =0x00000438 + mov r1, #0 + add r0, r5, r0 + add r2, r5, #0 + bl MOD70_0222EF24 + ldr r0, _0222E2D0 ; =0x00000408 + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_020200A0 +_0222E2B8: + pop {r3, r4, r5, pc} + nop +_0222E2BC: .word 0x00002218 +_0222E2C0: .word 0x000020F0 +_0222E2C4: .word 0x00002110 +_0222E2C8: .word 0x00000438 +_0222E2CC: .word 0x0000040C +_0222E2D0: .word 0x00000408 + thumb_func_end MOD70_0222E224 + + thumb_func_start MOD70_0222E2D4 +MOD70_0222E2D4: ; 0x0222E2D4 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222E374 ; =0x00002214 + add r4, r0, #0 + ldr r1, [r4, r1] + cmp r1, #0 + beq _0222E2EA + blx r1 + mov r1, #5 + lsl r1, r1, #6 + str r0, [r4, r1] +_0222E2EA: + mov r0, #5 + lsl r0, r0, #6 + ldr r0, [r4, r0] + cmp r0, #3 + bhi _0222E314 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222E300: ; jump table + .short _0222E314 - _0222E300 - 2 ; case 0 + .short _0222E314 - _0222E300 - 2 ; case 1 + .short _0222E308 - _0222E300 - 2 ; case 2 + .short _0222E30E - _0222E300 - 2 ; case 3 +_0222E308: + add sp, #4 + mov r0, #2 + pop {r3, r4, pc} +_0222E30E: + add sp, #4 + mov r0, #3 + pop {r3, r4, pc} +_0222E314: + mov r0, #0 + mov r2, #0xce + str r0, [sp] + mov r0, #0x53 + lsl r2, r2, #2 + mov r3, #0x69 + lsl r0, r0, #2 + add r1, r4, #0 + lsl r3, r3, #4 + ldr r2, [r4, r2] + add r0, r4, r0 + add r1, #0x88 + add r3, r4, r3 + bl MOD70_0222F3DC + cmp r0, #0 + beq _0222E33C + add r0, r4, #0 + bl MOD70_0222E224 +_0222E33C: + mov r0, #1 + mov r2, #0xcf + str r0, [sp] + mov r0, #0x15 + lsl r2, r2, #2 + mov r3, #0x69 + lsl r0, r0, #4 + add r1, r4, #0 + lsl r3, r3, #4 + ldr r2, [r4, r2] + add r0, r4, r0 + add r1, #0x8c + add r3, r4, r3 + bl MOD70_0222F3DC + add r0, r4, #0 + add r0, #0x90 + bl MOD70_0222F2D8 + add r0, r4, #0 + add r4, #0x88 + ldr r2, [r4] + mov r1, #0x17 + bl MOD70_0222F440 + mov r0, #1 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222E374: .word 0x00002214 + thumb_func_end MOD70_0222E2D4 + + thumb_func_start MOD70_0222E378 +MOD70_0222E378: ; 0x0222E378 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r0, #0x2d + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0x2e + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0xb5 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r0, #0xb9 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r7, #0xb + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #6 +_0222E3AC: + ldr r0, [r5, r7] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0222E3AC + mov r0, #0x65 + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_0201FD58 + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD70_0222E378 + + thumb_func_start MOD70_0222E3D4 +MOD70_0222E3D4: ; 0x0222E3D4 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, _0222E42C ; =0x00002218 + mov r4, #0 + ldr r0, [r6, r0] + bl FUN_0206B9AC + cmp r0, #0 + ble _0222E402 + ldr r7, _0222E42C ; =0x00002218 + add r5, r6, #0 +_0222E3EA: + mov r0, #0x79 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02016A18 + ldr r0, [r6, r7] + add r5, r5, #4 + add r4, r4, #1 + bl FUN_0206B9AC + cmp r4, r0 + blt _0222E3EA +_0222E402: + ldr r0, _0222E430 ; =0x0000221C + mov r5, #0 + ldr r0, [r6, r0] + bl FUN_0206B9AC + cmp r0, #0 + ble _0222E42A + ldr r7, _0222E430 ; =0x0000221C + add r4, r6, #0 +_0222E414: + ldr r0, _0222E434 ; =0x000007A8 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, [r6, r7] + add r4, r4, #4 + add r5, r5, #1 + bl FUN_0206B9AC + cmp r5, r0 + blt _0222E414 +_0222E42A: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222E42C: .word 0x00002218 +_0222E430: .word 0x0000221C +_0222E434: .word 0x000007A8 + thumb_func_end MOD70_0222E3D4 + + thumb_func_start MOD70_0222E438 +MOD70_0222E438: ; 0x0222E438 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, r5, #0 + bl FUN_0200628C + ldr r1, [r4, #0x5c] + str r1, [r0, #0x28] + add r0, r4, #0 + bl MOD70_0222E3D4 + mov r0, #0x19 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _0222E4D4 ; =0x0000221C + ldr r0, [r4, r0] + bl FUN_02016A18 + add r0, r4, #0 + bl MOD70_0222E378 + ldr r0, _0222E4D8 ; =0x00000438 + add r0, r4, r0 + bl MOD70_02230E88 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD70_0222E848 + mov r1, #0x5d + lsl r1, r1, #2 + ldr r1, [r4, r1] + mov r0, #0x1a + bl FUN_02016A8C + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + bl FUN_0200AB18 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200AB18 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200AB18 + mov r0, #0x63 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02021A20 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x1a + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_0222E4D4: .word 0x0000221C +_0222E4D8: .word 0x00000438 + thumb_func_end MOD70_0222E438 + + thumb_func_start MOD70_0222E4DC +MOD70_0222E4DC: ; 0x0222E4DC + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0201AB60 + ldr r0, _0222E548 ; =0x00002110 + ldr r0, [r5, r0] + cmp r0, #0 + beq _0222E52E + sub r4, r0, #1 + mov r0, #0x7f + mov r2, #0x32 + lsl r0, r0, #4 + lsl r2, r2, #6 + add r1, r4, #0 + add r0, r5, r0 + mul r1, r2 + add r0, r0, r1 + bl GXS_LoadOBJ + lsl r1, r4, #4 + mov r0, #0x20 + add r2, r5, r1 + str r0, [sp] + mov r0, #0x1a + add r3, r4, #2 + ldr r1, _0222E54C ; =0x000020F0 + str r0, [sp, #4] + ldrh r0, [r2, r1] + add r1, r1, #4 + ldrh r1, [r2, r1] + mov r2, #5 + lsl r3, r3, #5 + bl FUN_02006930 + ldr r0, _0222E548 ; =0x00002110 + mov r1, #0 + str r1, [r5, r0] +_0222E52E: + bl FUN_0201C30C + bl FUN_02009F80 + ldr r3, _0222E550 ; =0x027E0000 + ldr r1, _0222E554 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + add sp, #8 + pop {r3, r4, r5, pc} + nop +_0222E548: .word 0x00002110 +_0222E54C: .word 0x000020F0 +_0222E550: .word 0x027E0000 +_0222E554: .word 0x00003FF8 + thumb_func_end MOD70_0222E4DC + + thumb_func_start MOD70_0222E558 +MOD70_0222E558: ; 0x0222E558 + push {r4, lr} + sub sp, #0x28 + ldr r4, _0222E574 ; =0x022311B0 + add r3, sp, #0 + mov r2, #5 +_0222E562: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _0222E562 + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_0222E574: .word 0x022311B0 + thumb_func_end MOD70_0222E558 + + thumb_func_start MOD70_0222E578 +MOD70_0222E578: ; 0x0222E578 + push {r4, r5, r6, r7, lr} + sub sp, #0xd4 + ldr r4, _0222E748 ; =0x022310B4 + add r3, sp, #0xc4 + add r5, r0, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r4, _0222E74C ; =0x0223115C + add r3, sp, #0xa8 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + mov r1, #0 + str r0, [r3] + add r0, r5, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r5, #0 + mov r1, #0 + bl FUN_02018744 + ldr r4, _0222E750 ; =0x02231124 + add r3, sp, #0x8c + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + mov r1, #1 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r5, #0 + mov r1, #1 + bl FUN_02018744 + ldr r4, _0222E754 ; =0x02231178 + add r3, sp, #0x70 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + mov r1, #2 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r5, #0 + mov r1, #2 + bl FUN_02018744 + ldr r4, _0222E758 ; =0x02231194 + add r3, sp, #0x54 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + mov r1, #3 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r4, _0222E75C ; =0x022310EC + add r3, sp, #0x38 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + str r0, [r3] + add r0, r5, #0 + mov r1, #4 + mov r3, #0 + bl FUN_02016C18 + add r0, r5, #0 + mov r1, #4 + bl FUN_02018744 + ldr r4, _0222E760 ; =0x02231108 + add r3, sp, #0x1c + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + mov r1, #5 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r4, _0222E764 ; =0x02231140 + add r3, sp, #0 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + mov r1, #6 + str r0, [r3] + add r0, r5, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x1a + bl FUN_02017F18 + mov r0, #1 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x1a + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x1a + bl FUN_02017F18 + mov r4, #0 + mov r6, #3 + add r7, r4, #0 +_0222E6BC: + lsl r1, r4, #0x18 + mov r2, #0 + add r0, r5, #0 + lsr r1, r1, #0x18 + add r3, r2, #0 + bl FUN_020179E0 + lsl r1, r4, #0x18 + add r0, r5, #0 + lsr r1, r1, #0x18 + add r2, r6, #0 + add r3, r7, #0 + bl FUN_020179E0 + add r1, r4, #4 + lsl r1, r1, #0x18 + mov r2, #0 + add r0, r5, #0 + lsr r1, r1, #0x18 + add r3, r2, #0 + bl FUN_020179E0 + add r1, r4, #4 + lsl r1, r1, #0x18 + add r0, r5, #0 + lsr r1, r1, #0x18 + mov r2, #3 + mov r3, #0 + bl FUN_020179E0 + add r4, r4, #1 + cmp r4, #4 + blt _0222E6BC + mov r0, #0 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #1 + mov r1, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #0 + bl FUN_0201797C + mov r0, #3 + mov r1, #0 + bl FUN_0201797C + mov r0, #4 + mov r1, #0 + bl FUN_0201797C + mov r0, #5 + mov r1, #0 + bl FUN_0201797C + mov r0, #6 + mov r1, #0 + bl FUN_0201797C + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _0222E768 ; =0xFFFF1FFF + and r0, r1 + str r0, [r2] + add sp, #0xd4 + pop {r4, r5, r6, r7, pc} + nop +_0222E748: .word 0x022310B4 +_0222E74C: .word 0x0223115C +_0222E750: .word 0x02231124 +_0222E754: .word 0x02231178 +_0222E758: .word 0x02231194 +_0222E75C: .word 0x022310EC +_0222E760: .word 0x02231108 +_0222E764: .word 0x02231140 +_0222E768: .word 0xFFFF1FFF + thumb_func_end MOD70_0222E578 + + thumb_func_start MOD70_0222E76C +MOD70_0222E76C: ; 0x0222E76C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, r1, #0 + bl FUN_0200628C + add r4, r0, #0 + mov r2, #6 + ldr r0, _0222E830 ; =0x00000668 + str r4, [r5, #8] + mov r1, #4 + str r1, [r5, r0] + mov r3, #0 + str r3, [r5, #0x44] + sub r0, r0, #4 + str r3, [r5, r0] + mov r0, #0x5b + lsl r0, r0, #2 + str r2, [r5, r0] + add r1, r0, #4 + str r2, [r5, r1] + add r1, r5, #0 + add r1, #0x88 + str r3, [r1] + add r1, r5, #0 + add r1, #0x8c + str r2, [r1] + sub r0, #0x2c + str r3, [r5, r0] + str r3, [r5, #0x48] + ldr r0, _0222E834 ; =MOD70_0222F538 + ldr r1, _0222E838 ; =0x00002214 + str r3, [r5, #0x4c] + str r0, [r5, r1] + str r3, [r5, #0x60] + str r3, [r5, #0x64] + ldr r0, _0222E83C ; =0x00002110 + str r3, [r5, #0x5c] + str r3, [r5, r0] + ldr r0, _0222E840 ; =0x000036A0 + sub r6, r2, #7 + str r6, [r5, r0] + add r2, r0, #4 + str r6, [r5, r2] + add r2, r1, #0 + add r2, #0xac + str r3, [r5, r2] + add r2, r0, #0 + add r2, #0xc + str r3, [r5, r2] + add r0, #0x10 + str r3, [r5, r0] + add r0, r1, #4 + ldr r2, [r4, #8] + add r1, #0x10 + str r2, [r5, r0] + ldr r0, [r4, #0xc] + str r0, [r5, r1] + ldr r0, [r4, #0x10] + str r0, [r5, #4] + bl FUN_0206B8A4 + add r1, r0, #0 + mov r0, #0x1a + bl FUN_02016998 + ldr r1, _0222E844 ; =0x0000221C + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #6 + bl FUN_0206B8CC + bl FUN_0206B8A4 + add r2, r0, #0 + ldr r0, _0222E844 ; =0x0000221C + mov r1, #0xff + ldr r0, [r5, r0] + bl Call_FillMemWithValue + ldr r0, [r4, #4] + mov r1, #0x1a + bl FUN_020239A0 + mov r1, #0x63 + lsl r1, r1, #2 + str r0, [r5, r1] + sub r1, #8 + ldr r0, [r5, r1] + mov r1, #0x28 + bl FUN_0200A914 + mov r1, #0x19 + lsl r1, r1, #4 + str r0, [r5, r1] + ldr r0, [r4, #0x14] + bl FUN_02033778 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E830: .word 0x00000668 +_0222E834: .word MOD70_0222F538 +_0222E838: .word 0x00002214 +_0222E83C: .word 0x00002110 +_0222E840: .word 0x000036A0 +_0222E844: .word 0x0000221C + thumb_func_end MOD70_0222E76C + + thumb_func_start MOD70_0222E848 +MOD70_0222E848: ; 0x0222E848 + push {r4, lr} + add r4, r0, #0 + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD70_0222E848 + + thumb_func_start MOD70_0222E884 +MOD70_0222E884: ; 0x0222E884 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r2, #0 + mov r2, #1 + add r4, r3, #0 + str r2, [sp] + ldr r2, [sp, #0x20] + ldr r3, [sp, #0x24] + bl FUN_02006C98 + add r6, r0, #0 + beq _0222E8D6 + add r1, sp, #4 + bl FUN_020B0180 + cmp r0, #0 + beq _0222E8D0 + ldr r0, [sp, #0x1c] + cmp r0, #0 + bne _0222E8B2 + ldr r0, [sp, #4] + ldr r0, [r0, #8] + str r0, [sp, #0x1c] +_0222E8B2: + lsl r1, r4, #0x18 + add r0, r5, #0 + lsr r1, r1, #0x18 + bl FUN_0201886C + cmp r0, #0 + beq _0222E8D0 + ldr r2, [sp, #4] + lsl r1, r4, #0x18 + ldr r3, [sp, #0x1c] + add r0, r5, #0 + lsr r1, r1, #0x18 + add r2, #0xc + bl FUN_02017DFC +_0222E8D0: + add r0, r6, #0 + bl FUN_02016A18 +_0222E8D6: + add sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD70_0222E884 + + thumb_func_start MOD70_0222E8DC +MOD70_0222E8DC: ; 0x0222E8DC + push {r3, r4, lr} + sub sp, #4 + mov r1, #2 + add r4, r0, #0 + bl FUN_0201886C + add r2, r0, #0 + mov r0, #0 + mov r3, #6 + str r0, [sp] + add r0, r4, #0 + mov r1, #2 + lsl r3, r3, #8 + bl FUN_02017CE8 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD70_0222E8DC + + thumb_func_start MOD70_0222E900 +MOD70_0222E900: ; 0x0222E900 + push {r4, lr} + sub sp, #0x10 + mov r1, #0x5d + lsl r1, r1, #2 + ldr r4, [r0, r1] + sub r1, #0x54 + str r1, [sp] + mov r0, #0x1a + mov r1, #0 + str r0, [sp, #4] + mov r0, #0x36 + mov r2, #4 + add r3, r1, #0 + bl FUN_02006930 + mov r1, #0 + mov r0, #0x12 + lsl r0, r0, #4 + str r0, [sp] + mov r0, #0x1a + str r0, [sp, #4] + mov r0, #0x36 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02006930 + mov r0, #0 + add r1, r0, #0 + bl FUN_02017FE4 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x1a + bl FUN_02002EEC + mov r0, #0 + str r0, [sp] + mov r0, #9 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r0, #0x1a + str r0, [sp, #0xc] + mov r0, #0x36 + add r2, r4, #0 + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x1a + str r0, [sp, #0xc] + mov r0, #0x36 + mov r1, #3 + add r2, r4, #0 + mov r3, #2 + bl MOD70_0222E884 + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x1a + str r0, [sp, #0xc] + mov r0, #0x36 + mov r1, #4 + add r2, r4, #0 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + mov r1, #0x40 + mov r2, #0x1a + bl FUN_02002EEC + mov r0, #0 + mov r1, #0x60 + mov r2, #0x1a + bl FUN_02002ED0 + mov r0, #0 + str r0, [sp] + mov r0, #2 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x1a + str r0, [sp, #0xc] + mov r0, #0x36 + mov r1, #2 + add r2, r4, #0 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x1a + mov r1, #5 + str r0, [sp, #0xc] + mov r0, #0x36 + add r2, r4, #0 + add r3, r1, #0 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x1a + mov r1, #6 + str r0, [sp, #0xc] + mov r0, #0x36 + add r2, r4, #0 + add r3, r1, #0 + bl FUN_020068C8 + mov r0, #4 + mov r1, #0x40 + mov r2, #0x1a + bl FUN_02002EEC + mov r0, #4 + mov r1, #0x60 + mov r2, #0x1a + bl FUN_02002ED0 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD70_0222E900 + + thumb_func_start MOD70_0222EA38 +MOD70_0222EA38: ; 0x0222EA38 + push {r4, lr} + sub sp, #0x10 + ldr r4, _0222EA64 ; =0x022310C4 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #0x14 + mov r1, #0x1a + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_0222EA64: .word 0x022310C4 + thumb_func_end MOD70_0222EA38 + + thumb_func_start MOD70_0222EA68 +MOD70_0222EA68: ; 0x0222EA68 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x7f + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x1a + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + mov r1, #0x66 + lsl r1, r1, #2 + mov r0, #0x2d + add r1, r5, r1 + mov r2, #0x1a + bl FUN_02008C9C + mov r1, #0x65 + lsl r1, r1, #2 + mov r7, #0xb + str r0, [r5, r1] + mov r6, #0 + add r4, r5, #0 + lsl r7, r7, #6 +_0222EAA6: + mov r0, #2 + add r1, r6, #0 + mov r2, #0x1a + bl FUN_02008DEC + str r0, [r4, r7] + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #4 + blt _0222EAA6 + mov r0, #0 + str r0, [sp] + mov r3, #1 + str r3, [sp, #4] + mov r0, #0x1a + str r0, [sp, #8] + mov r0, #0xb + lsl r0, r0, #6 + ldr r0, [r5, r0] + mov r1, #0x36 + mov r2, #7 + bl FUN_02008F34 + mov r1, #0x2d + lsl r1, r1, #4 + str r0, [r5, r1] + mov r2, #0 + str r2, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #9 + str r0, [sp, #8] + mov r0, #0x1a + sub r1, #0xc + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x36 + add r3, r2, #0 + bl FUN_02008FEC + mov r1, #0xb5 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x1a + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x36 + mov r2, #8 + mov r3, #1 + bl FUN_020090AC + mov r1, #0xb6 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r0, #0 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x1a + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x36 + mov r2, #9 + mov r3, #1 + bl FUN_020090AC + mov r1, #0xb7 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x1a + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x36 + mov r2, #0xa + bl FUN_02008F34 + mov r1, #0x2e + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0xa + str r0, [sp, #8] + mov r0, #0x1a + mov r2, #0 + sub r1, #0x1c + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x36 + add r3, r2, #0 + bl FUN_02008FEC + mov r1, #0xb9 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x1a + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x36 + mov r2, #0xb + bl FUN_020090AC + mov r1, #0xba + lsl r1, r1, #2 + str r0, [r5, r1] + mov r3, #1 + str r3, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x1a + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x36 + mov r2, #0xc + bl FUN_020090AC + mov r1, #0xbb + lsl r1, r1, #2 + str r0, [r5, r1] + sub r1, #0x1c + ldr r0, [r5, r1] + bl FUN_02009A50 + mov r0, #0x2e + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02009A50 + mov r0, #0xb5 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009CF0 + mov r0, #0xb9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02009CF0 + bl FUN_0206B888 + mov r3, #0x80 + add r1, r0, #0 + str r3, [sp] + mov r0, #0x1a + str r0, [sp, #4] + mov r0, #0x13 + mov r2, #1 + add r3, #0xc0 + bl FUN_02006930 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD70_0222EA68 + + thumb_func_start MOD70_0222EBFC +MOD70_0222EBFC: ; 0x0222EBFC + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r0, #0 + add r4, r2, #0 + add r0, r3, #0 + mov r2, #2 + add r6, r1, #0 + str r3, [sp, #0x20] + bl FUN_02068B68 + mov r1, #0 + add r0, r6, #0 + add r2, r1, #0 + bl FUN_020671BC + add r7, r0, #0 + add r0, r6, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + mov r3, #0 + str r3, [sp] + mov r1, #0xa + str r1, [sp, #4] + str r1, [sp, #8] + str r4, [sp, #0xc] + str r7, [sp, #0x10] + str r3, [sp, #0x14] + mov r1, #2 + str r1, [sp, #0x18] + str r0, [sp, #0x1c] + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x20] + ldrh r0, [r0] + ldrh r1, [r1, #2] + mov r2, #0x1a + bl FUN_020124B4 + mov r1, #0x32 + add r0, r4, #0 + lsl r1, r1, #6 + bl DC_FlushRange + add r0, r5, #1 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD70_0222EBFC + + thumb_func_start MOD70_0222EC5C +MOD70_0222EC5C: ; 0x0222EC5C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + add r6, r1, #0 + add r7, r2, #0 + mov r0, #0x14 + mov r1, #0x1a + str r3, [sp, #8] + bl FUN_020219F4 + add r4, r0, #0 + add r0, r6, #0 + add r1, r7, #0 + bl FUN_0206B9B0 + mov r1, #0x76 + add r2, r4, #0 + bl FUN_020671BC + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + ldr r0, [sp, #0x20] + ldr r2, [sp, #8] + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + mov r3, #0 + bl MOD70_02230EFC + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD70_0222EC5C + + thumb_func_start MOD70_0222ECA8 +MOD70_0222ECA8: ; 0x0222ECA8 + push {r4, lr} + ldrh r0, [r0] + add r4, r3, #0 + cmp r0, #0x1d + beq _0222ECB6 + cmp r0, #0x20 + bne _0222ECCE +_0222ECB6: + add r0, r1, #0 + add r1, r2, #0 + bl FUN_0206B9B0 + mov r1, #0x4d + mov r2, #0 + bl FUN_020671BC + cmp r0, #0 + bne _0222ECCE + mov r0, #2 + pop {r4, pc} +_0222ECCE: + add r0, r4, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD70_0222ECA8 + + thumb_func_start MOD70_0222ECD4 +MOD70_0222ECD4: ; 0x0222ECD4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x38 + add r6, r0, #0 + add r5, r1, #0 + add r0, r2, #0 + add r1, r3, #0 + str r2, [sp, #8] + str r3, [sp, #0xc] + ldr r4, [sp, #0x50] + bl FUN_0206B9B0 + mov r1, #2 + bl FUN_02068E14 + str r0, [sp, #0x10] + mov r0, #1 + lsl r0, r0, #0xa + add r7, r4, r0 + lsl r0, r5, #2 + str r0, [sp, #0x14] + ldr r0, [r7, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xc + add r3, r5, #0 + mul r3, r0 + ldr r1, _0222EF10 ; =0x022311D8 + ldr r0, [sp, #0x14] + ldr r2, _0222EF14 ; =0x022311DC + ldr r1, [r1, r3] + ldr r3, [r2, r3] + ldr r2, [sp, #0x10] + ldr r0, [r7, r0] + add r2, r2, r3 + add r2, #0xc0 + bl MOD70_02230B70 + cmp r5, #0 + bne _0222ED36 + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x14] + lsl r1, r1, #4 + add r2, r4, r1 + ldr r1, _0222EF18 ; =0x0000069A + ldr r0, [r7, r0] + ldrh r1, [r2, r1] + bl FUN_02020100 +_0222ED36: + ldr r1, [sp, #0xc] + mov r0, #1 + lsl r1, r1, #4 + add r2, r4, r1 + ldr r1, _0222EF1C ; =0x00000694 + lsl r0, r0, #0xa + add r7, r4, r0 + add r0, r5, #2 + ldrb r1, [r2, r1] + lsl r0, r0, #2 + str r0, [sp, #0x18] + ldr r0, [r7, r0] + add r1, r1, #5 + bl FUN_02020130 + ldr r0, [sp, #0x18] + mov r1, #1 + ldr r0, [r7, r0] + bl FUN_020200A0 + mov r0, #6 + str r0, [sp] + add r0, r5, #0 + add r0, #0x1a + lsl r0, r0, #4 + ldr r1, [sp, #8] + ldr r2, [sp, #0xc] + add r0, r6, r0 + mov r3, #9 + bl MOD70_0222EC5C + mov r7, #0x69 + mov r0, #6 + add r1, r5, #0 + mul r1, r0 + ldr r0, [sp, #0xc] + lsl r7, r7, #4 + add r0, r0, r1 + lsl r0, r0, #4 + str r0, [sp, #0x34] + add r1, r4, r7 + ldr r3, [sp, #0x34] + add r0, r1, r0 + add r3, r4, r3 + add r7, #8 + ldrh r3, [r3, r7] + ldr r1, [sp, #8] + ldr r2, [sp, #0xc] + bl MOD70_0222ECA8 + ldr r1, _0222EF20 ; =0x00000695 + add r2, r4, r1 + ldr r1, [sp, #0x34] + str r2, [sp, #0x1c] + ldrb r1, [r2, r1] + cmp r1, #0 + beq _0222EDAA + mov r0, #2 +_0222EDAA: + cmp r0, #0 + beq _0222EDCA + cmp r0, #1 + beq _0222EDF0 + cmp r0, #2 + bne _0222EE14 + add r0, r5, #4 + lsl r0, r0, #2 + add r1, r4, r0 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 + b _0222EE14 +_0222EDCA: + mov r0, #1 + lsl r0, r0, #0xa + add r0, r4, r0 + str r0, [sp, #0x20] + add r0, r5, #4 + lsl r0, r0, #2 + ldr r1, [sp, #0x20] + str r0, [sp, #0x24] + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r1, [sp, #0x20] + ldr r0, [sp, #0x24] + ldr r0, [r1, r0] + mov r1, #0x17 + bl FUN_02020130 + b _0222EE14 +_0222EDF0: + mov r0, #1 + lsl r0, r0, #0xa + add r0, r4, r0 + str r0, [sp, #0x28] + add r0, r5, #4 + lsl r0, r0, #2 + ldr r1, [sp, #0x28] + str r0, [sp, #0x2c] + ldr r0, [r1, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r1, [sp, #0x28] + ldr r0, [sp, #0x2c] + ldr r0, [r1, r0] + mov r1, #0x16 + bl FUN_02020130 +_0222EE14: + ldr r1, [sp, #0x1c] + ldr r0, [sp, #0x34] + ldrb r0, [r1, r0] + cmp r0, #0 + bne _0222EE9A + mov r0, #0xa + mov r1, #0x1a + bl FUN_020219F4 + add r7, r0, #0 + add r0, r5, #0 + add r0, #0x1c + lsl r0, r0, #4 + str r0, [sp, #0x30] + add r0, r6, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x27 + add r2, r7, #0 + bl FUN_0200A8E0 + mov r0, #6 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, [sp, #0x30] + add r1, r7, #0 + add r0, r6, r0 + mov r2, #9 + mov r3, #0xff + bl MOD70_02230EFC + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + bl FUN_0206B9B0 + mov r1, #0xa0 + mov r2, #0 + bl FUN_020671BC + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + mov r0, #1 + str r0, [sp] + add r0, r7, #0 + mov r2, #3 + mov r3, #0 + bl FUN_02021B04 + mov r0, #0x1e + str r0, [sp] + ldr r0, [sp, #0x30] + mov r3, #0 + add r0, r6, r0 + add r1, r7, #0 + mov r2, #9 + str r3, [sp, #4] + bl MOD70_02230EFC + add r0, r7, #0 + bl FUN_02021A20 + b _0222EEA6 +_0222EE9A: + add r0, r5, #0 + add r0, #0x1c + lsl r0, r0, #4 + add r0, r6, r0 + bl FUN_02019570 +_0222EEA6: + mov r0, #3 + str r0, [sp] + mov r3, #0 + add r0, r5, #0 + mov r1, #0x19 + add r0, #0x1e + lsl r0, r0, #4 + str r3, [sp, #4] + lsl r1, r1, #4 + ldr r1, [r4, r1] + add r0, r6, r0 + mov r2, #7 + bl MOD70_02230EFC + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + bl FUN_0206B9B0 + mov r1, #6 + mov r2, #0 + bl FUN_020671BC + add r5, #0x20 + lsl r0, r0, #0x10 + lsl r4, r5, #4 + lsr r7, r0, #0x10 + add r0, r6, r4 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x14 + mov r1, #0x1a + bl FUN_020219F4 + add r1, r7, #0 + mov r2, #0x1a + add r5, r0, #0 + bl FUN_0206E768 + mov r0, #3 + str r0, [sp] + mov r3, #0 + add r0, r6, r4 + add r1, r5, #0 + mov r2, #9 + str r3, [sp, #4] + bl MOD70_02230EFC + add r0, r5, #0 + bl FUN_02021A20 + add sp, #0x38 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222EF10: .word 0x022311D8 +_0222EF14: .word 0x022311DC +_0222EF18: .word 0x0000069A +_0222EF1C: .word 0x00000694 +_0222EF20: .word 0x00000695 + thumb_func_end MOD70_0222ECD4 + + thumb_func_start MOD70_0222EF24 +MOD70_0222EF24: ; 0x0222EF24 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + lsl r0, r4, #2 + add r1, r6, r0 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 + add r0, r4, #2 + lsl r0, r0, #2 + add r1, r6, r0 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 + add r0, r4, #4 + lsl r0, r0, #2 + add r1, r6, r0 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 + add r0, r4, #0 + add r0, #0x1a + lsl r0, r0, #4 + add r0, r5, r0 + bl FUN_02019570 + add r0, r4, #0 + add r0, #0x1c + lsl r0, r0, #4 + add r0, r5, r0 + bl FUN_02019570 + add r0, r4, #0 + add r0, #0x1e + lsl r0, r0, #4 + add r0, r5, r0 + bl FUN_02019570 + add r4, #0x20 + lsl r0, r4, #4 + add r0, r5, r0 + bl FUN_02019570 + pop {r4, r5, r6, pc} + thumb_func_end MOD70_0222EF24 + + thumb_func_start MOD70_0222EF90 +MOD70_0222EF90: ; 0x0222EF90 + push {r4, r5, r6, r7, lr} + sub sp, #0x5c + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + sub r0, r1, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r2, #0xb + str r1, [sp, #0xc] + mov r0, #2 + lsl r2, r2, #6 + str r0, [sp, #0x10] + ldr r0, [r5, r2] + add r3, r1, #0 + str r0, [sp, #0x14] + add r0, r2, #4 + ldr r0, [r5, r0] + str r0, [sp, #0x18] + add r0, r2, #0 + add r0, #8 + ldr r0, [r5, r0] + str r0, [sp, #0x1c] + add r0, r2, #0 + add r0, #0xc + ldr r0, [r5, r0] + add r2, #0x30 + str r0, [sp, #0x20] + str r1, [sp, #0x24] + add r0, r5, r2 + add r2, r1, #0 + str r1, [sp, #0x28] + bl FUN_02008AA4 + mov r1, #1 + mov r3, #0xb + str r1, [sp] + sub r0, r1, #2 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r3, r3, #6 + ldr r2, [r5, r3] + str r2, [sp, #0x14] + add r2, r3, #4 + ldr r2, [r5, r2] + str r2, [sp, #0x18] + add r2, r3, #0 + add r2, #8 + ldr r2, [r5, r2] + str r2, [sp, #0x1c] + add r2, r3, #0 + add r2, #0xc + ldr r2, [r5, r2] + add r3, #0x54 + str r2, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r5, r3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02008AA4 + mov r0, #0x65 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #2 + str r0, [sp, #0x2c] + mov r0, #0x2f + lsl r0, r0, #4 + add r0, r5, r0 + str r0, [sp, #0x30] + mov r0, #6 + lsl r1, r1, #0x10 + lsl r0, r0, #0x10 + str r0, [sp, #0x38] + lsr r0, r1, #5 + mov r7, #0 + str r1, [sp, #0x34] + str r7, [sp, #0x3c] + str r0, [sp, #0x40] + str r0, [sp, #0x44] + str r0, [sp, #0x48] + add r0, sp, #0x2c + strh r7, [r0, #0x20] + mov r0, #1 + str r0, [sp, #0x54] + mov r0, #0x1a + ldr r6, _0222F218 ; =0x02231220 + str r7, [sp, #0x50] + str r0, [sp, #0x58] + add r4, r5, #0 +_0222F04C: + ldr r0, [r6] + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldr r0, [r6, #4] + lsl r0, r0, #0xc + str r0, [sp, #0x38] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #0xce + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + add r0, r4, #0 + mov r1, #0xce + add r0, #0x88 + lsl r1, r1, #2 + ldr r0, [r0] + ldr r1, [r4, r1] + add r2, r7, #0 + bl MOD70_0222F350 + mov r0, #0xce + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x64 + bl FUN_02020310 + mov r0, #0xce + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + add r7, r7, #1 + add r6, #8 + add r4, r4, #4 + cmp r7, #2 + blt _0222F04C + ldr r6, _0222F218 ; =0x02231220 + mov r7, #0 + add r4, r5, #0 +_0222F0A8: + ldr r0, [r6] + add r0, #0x10 + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldr r0, [r6, #4] + sub r0, r0, #6 + lsl r0, r0, #0xc + str r0, [sp, #0x38] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #0x37 + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r4, r0] + add r1, r7, #5 + bl FUN_02020130 + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #5 + bl FUN_02020310 + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + add r7, r7, #1 + add r6, #8 + add r4, r4, #4 + cmp r7, #0xc + blt _0222F0A8 + ldr r6, _0222F218 ; =0x02231220 + mov r7, #0 + add r4, r5, #0 +_0222F102: + ldr r0, [r6] + add r0, #0x24 + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldr r0, [r6, #4] + add r0, #0x10 + lsl r0, r0, #0xc + str r0, [sp, #0x38] + mov r0, #0 + str r0, [sp, #0x50] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #0x3a + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #3 + bl FUN_02020310 + mov r0, #0x3a + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + add r7, r7, #1 + add r6, #8 + add r4, r4, #4 + cmp r7, #0xc + blt _0222F102 + ldr r6, _0222F218 ; =0x02231220 + mov r7, #0 + add r4, r5, #0 +_0222F148: + ldr r0, [r6] + add r0, #0x2d + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldr r0, [r6, #4] + add r0, #0x10 + lsl r0, r0, #0xc + str r0, [sp, #0x38] + mov r0, #0 + str r0, [sp, #0x50] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #0x3d + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #3 + bl FUN_02020310 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + add r7, r7, #1 + add r6, #8 + add r4, r4, #4 + cmp r7, #0xc + blt _0222F148 + mov r0, #6 + lsl r0, r0, #0x10 + str r0, [sp, #0x34] + mov r0, #0x42 + lsl r0, r0, #0xc + str r0, [sp, #0x38] + add r0, sp, #0x2c + bl FUN_0201FE94 + ldr r1, _0222F21C ; =0x00000418 + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #1 + bl FUN_020200BC + ldr r0, _0222F21C ; =0x00000418 + mov r1, #0x14 + ldr r0, [r5, r0] + bl FUN_02020130 + ldr r0, _0222F21C ; =0x00000418 + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_020200A0 + mov r0, #0xc5 + lsl r0, r0, #2 + ldr r4, _0222F220 ; =0x022311D8 + mov r6, #0 + add r7, r5, r0 +_0222F1C4: + ldr r0, [r4] + str r7, [sp, #0x30] + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldr r0, [r4, #4] + lsl r1, r0, #0xc + mov r0, #3 + lsl r0, r0, #0x12 + add r0, r1, r0 + str r0, [sp, #0x38] + mov r0, #2 + str r0, [sp, #0x54] + add r0, sp, #0x2c + bl FUN_0201FE94 + mov r1, #1 + lsl r1, r1, #0xa + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200BC + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r5, r0] + ldr r1, [r4, #8] + bl FUN_02020130 + add r6, r6, #1 + add r4, #0xc + add r5, r5, #4 + cmp r6, #6 + blt _0222F1C4 + add sp, #0x5c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222F218: .word 0x02231220 +_0222F21C: .word 0x00000418 +_0222F220: .word 0x022311D8 + thumb_func_end MOD70_0222EF90 + + thumb_func_start MOD70_0222F224 +MOD70_0222F224: ; 0x0222F224 + push {r3, r4} + ldr r3, _0222F260 ; =0x021C48B8 + mov r1, #0 + ldr r3, [r3, #0x4c] + mov r4, #0x40 + add r2, r1, #0 + tst r4, r3 + beq _0222F238 + mov r2, #1 + add r1, r1, #1 +_0222F238: + mov r4, #0x80 + tst r4, r3 + beq _0222F242 + mov r2, #2 + add r1, r1, #1 +_0222F242: + mov r4, #0x20 + tst r4, r3 + beq _0222F24C + mov r2, #3 + add r1, r1, #1 +_0222F24C: + mov r4, #0x10 + tst r3, r4 + beq _0222F256 + mov r2, #4 + add r1, r1, #1 +_0222F256: + cmp r1, #0 + beq _0222F25C + str r2, [r0] +_0222F25C: + pop {r3, r4} + bx lr + .align 2, 0 +_0222F260: .word 0x021C48B8 + thumb_func_end MOD70_0222F224 + + thumb_func_start MOD70_0222F264 +MOD70_0222F264: ; 0x0222F264 + push {r4, r5, r6, lr} + add r4, r0, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #6 + bge _0222F2CA + ldr r0, _0222F2CC ; =0x022310AC + bl FUN_02020988 + add r5, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r5, r0 + beq _0222F2CA + add r0, r4, #0 + add r0, #0x88 + ldr r0, [r0] + lsl r0, r0, #4 + add r2, r4, r0 + ldr r0, _0222F2D0 ; =0x00000695 + ldrb r1, [r2, r0] + cmp r1, #0 + bne _0222F2CA + sub r0, r0, #5 + ldrh r0, [r2, r0] + ldr r1, _0222F2D4 ; =0x000001B9 + cmp r0, r1 + bne _0222F2AE + ldr r0, [r4, #4] + bl FUN_02029EF8 + mov r1, #0 + mov r2, #0x64 + add r3, r1, #0 + bl FUN_02005E90 + b _0222F2B2 +_0222F2AE: + bl FUN_02005578 +_0222F2B2: + mov r0, #1 + lsl r0, r0, #0xa + add r4, r4, r0 + lsl r6, r5, #2 + ldr r0, [r4, r6] + mov r1, #1 + bl FUN_020200BC + ldr r0, [r4, r6] + add r1, r5, #4 + bl FUN_02020130 +_0222F2CA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0222F2CC: .word 0x022310AC +_0222F2D0: .word 0x00000695 +_0222F2D4: .word 0x000001B9 + thumb_func_end MOD70_0222F264 + + thumb_func_start MOD70_0222F2D8 +MOD70_0222F2D8: ; 0x0222F2D8 + push {r3, lr} + ldrh r1, [r0] + add r1, #0x14 + strh r1, [r0] + ldrh r2, [r0] + mov r1, #0x5a + lsl r1, r1, #2 + cmp r2, r1 + bls _0222F2EE + mov r1, #0 + strh r1, [r0] +_0222F2EE: + ldrh r0, [r0] + bl FUN_0201B970 + mov r1, #0xa + mul r1, r0 + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r0, r0, #0xc + add r0, #0xf + lsl r1, r0, #5 + mov r0, #0x1d + orr r1, r0 + add r0, sp, #0 + strh r1, [r0] + add r0, sp, #0 + mov r1, #0x3a + mov r2, #2 + bl GX_LoadOBJPltt + pop {r3, pc} + thumb_func_end MOD70_0222F2D8 + + thumb_func_start MOD70_0222F318 +MOD70_0222F318: ; 0x0222F318 + push {r3, r4, r5, r6} + mov r5, #0x18 + mul r5, r0 + ldr r6, _0222F34C ; =0x02231288 + mov r0, #6 + mov r4, #0 + add r5, r6, r5 + mul r0, r1 + add r5, r5, r0 + add r3, r4, #0 + add r1, r5, #0 +_0222F32E: + ldrb r0, [r1] + lsl r0, r0, #4 + ldrh r0, [r2, r0] + cmp r0, #0 + beq _0222F33C + ldrb r4, [r5, r3] + b _0222F344 +_0222F33C: + add r3, r3, #1 + add r1, r1, #1 + cmp r3, #6 + blt _0222F32E +_0222F344: + add r0, r4, #0 + pop {r3, r4, r5, r6} + bx lr + nop +_0222F34C: .word 0x02231288 + thumb_func_end MOD70_0222F318 + + thumb_func_start MOD70_0222F350 +MOD70_0222F350: ; 0x0222F350 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r6, r1, #0 + add r4, r2, #0 + cmp r5, #0xd + blt _0222F362 + bl ErrorHandling +_0222F362: + ldr r1, _0222F3C8 ; =0x02231220 + lsl r0, r5, #3 + ldr r1, [r1, r0] + lsl r1, r1, #0xc + str r1, [sp] + ldr r1, _0222F3CC ; =0x02231224 + ldr r0, [r1, r0] + add r1, sp, #0 + lsl r0, r0, #0xc + str r0, [sp, #4] + cmp r5, #0xc + bne _0222F394 + add r0, r6, #0 + bl FUN_02020044 + mov r1, #0xc + add r2, r4, #0 + mul r2, r1 + ldr r1, _0222F3D0 ; =0x022310DC + add r0, r6, #0 + ldr r1, [r1, r2] + bl FUN_02020130 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_0222F394: + add r0, r6, #0 + bl FUN_02020044 + cmp r5, #6 + bge _0222F3B2 + mov r1, #0xc + add r2, r4, #0 + mul r2, r1 + ldr r1, _0222F3D4 ; =0x022310D4 + add r0, r6, #0 + ldr r1, [r1, r2] + bl FUN_02020130 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_0222F3B2: + mov r1, #0xc + add r2, r4, #0 + mul r2, r1 + ldr r1, _0222F3D8 ; =0x022310D8 + add r0, r6, #0 + ldr r1, [r1, r2] + bl FUN_02020130 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_0222F3C8: .word 0x02231220 +_0222F3CC: .word 0x02231224 +_0222F3D0: .word 0x022310DC +_0222F3D4: .word 0x022310D4 +_0222F3D8: .word 0x022310D8 + thumb_func_end MOD70_0222F350 + + thumb_func_start MOD70_0222F3DC +MOD70_0222F3DC: ; 0x0222F3DC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + str r2, [sp] + ldr r0, [r5] + add r4, r1, #0 + ldr r2, [sp, #0x18] + sub r1, r0, #1 + mov r7, #0 + cmp r2, #0 + bne _0222F41C + cmp r0, #0 + beq _0222F416 + ldr r0, [r4] + add r2, r3, #0 + bl MOD70_0222F318 + ldr r1, [sp] + ldr r2, [sp, #0x18] + add r6, r0, #0 + bl MOD70_0222F350 + ldr r0, [r4] + cmp r0, r6 + beq _0222F416 + ldr r0, _0222F428 ; =0x000005DC + bl FUN_020054C8 + str r6, [r4] + mov r7, #1 +_0222F416: + mov r0, #0 + str r0, [r5] + b _0222F424 +_0222F41C: + ldr r0, [r4] + ldr r1, [sp] + bl MOD70_0222F350 +_0222F424: + add r0, r7, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222F428: .word 0x000005DC + thumb_func_end MOD70_0222F3DC + + thumb_func_start MOD70_0222F42C +MOD70_0222F42C: ; 0x0222F42C + push {r3, lr} + add r0, sp, #0 + strb r2, [r0] + add r0, r1, #0 + add r1, sp, #0 + mov r2, #1 + bl FUN_02030ADC + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD70_0222F42C + + thumb_func_start MOD70_0222F440 +MOD70_0222F440: ; 0x0222F440 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _0222F470 ; =0x000036A0 + add r4, r1, #0 + ldr r1, [r5, r0] + add r6, r2, #0 + cmp r6, r1 + bne _0222F458 + add r0, r0, #4 + ldr r0, [r5, r0] + cmp r4, r0 + beq _0222F46C +_0222F458: + bl FUN_02031190 + add r1, r4, #0 + add r2, r6, #0 + bl MOD70_0222F42C + ldr r0, _0222F470 ; =0x000036A0 + str r6, [r5, r0] + add r0, r0, #4 + str r4, [r5, r0] +_0222F46C: + pop {r4, r5, r6, pc} + nop +_0222F470: .word 0x000036A0 + thumb_func_end MOD70_0222F440 + + thumb_func_start MOD70_0222F474 +MOD70_0222F474: ; 0x0222F474 + mov r2, #0x59 + lsl r2, r2, #4 + mul r2, r1 + add r0, r0, r2 + bx lr + .align 2, 0 + thumb_func_end MOD70_0222F474 + + thumb_func_start MOD70_0222F480 +MOD70_0222F480: ; 0x0222F480 + push {r3, r4, r5, lr} + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add r5, r1, #0 + add r4, r2, #0 + bl FUN_02030E7C + cmp r0, #0 + beq _0222F4A6 + add r0, r5, #0 + add r1, r4, #0 + bl MOD70_0222F474 + mov r2, #0x59 + add r1, r0, #0 + mov r0, #0x16 + lsl r2, r2, #4 + bl FUN_02030A78 +_0222F4A6: + pop {r3, r4, r5, pc} + thumb_func_end MOD70_0222F480 + + thumb_func_start MOD70_0222F4A8 +MOD70_0222F4A8: ; 0x0222F4A8 + push {r3, lr} + bl FUN_0202A918 + add r1, r0, #0 + mov r0, #0x20 + mov r2, #0xe + bl FUN_02030ADC + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD70_0222F4A8 + + thumb_func_start MOD70_0222F4BC +MOD70_0222F4BC: ; 0x0222F4BC + push {r4, r5, r6, lr} + add r4, r2, #0 + add r6, r0, #0 + add r5, r1, #0 + bl FUN_0202398C + add r1, r0, #0 + add r0, r4, #0 + bl StringCopy + add r0, r6, #0 + bl FUN_020239BC + str r0, [r4, #0x10] + add r0, r6, #0 + bl FUN_02023A70 + strb r0, [r4, #0x14] + add r0, r6, #0 + bl FUN_02023A68 + strb r0, [r4, #0x15] + add r0, r6, #0 + bl FUN_020239CC + strb r0, [r4, #0x16] + mov r0, #0 + add r1, r4, #0 +_0222F4F4: + ldr r2, [r5, #0x10] + str r2, [r1, #0x18] + ldrb r3, [r5, #0x15] + add r2, r4, r0 + add r2, #0x58 + strb r3, [r2] + add r2, r4, r0 + ldrb r3, [r5, #0x14] + add r2, #0x68 + add r1, r1, #4 + strb r3, [r2] + add r2, r4, r0 + ldrb r3, [r5, #0x16] + add r2, #0x78 + add r0, r0, #1 + add r5, #0x88 + strb r3, [r2] + cmp r0, #0x10 + blt _0222F4F4 + mov r0, #0x1c + add r1, r4, #0 + mov r2, #0x88 + bl FUN_02030A78 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD70_0222F4BC + + thumb_func_start MOD70_0222F528 +MOD70_0222F528: ; 0x0222F528 + ldr r3, _0222F534 ; =FUN_02030A78 + mov r2, #0xfa + add r1, r0, #0 + mov r0, #0x1d + lsl r2, r2, #2 + bx r3 + .align 2, 0 +_0222F534: .word FUN_02030A78 + thumb_func_end MOD70_0222F528 + + thumb_func_start MOD70_0222F538 +MOD70_0222F538: ; 0x0222F538 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x53 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD70_0222F224 + ldr r0, _0222F588 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _0222F584 + mov r0, #0x53 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222F584 + add r0, r4, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0xc + bne _0222F56C + ldr r1, _0222F58C ; =MOD70_0222F674 + ldr r0, _0222F590 ; =0x00002214 + str r1, [r4, r0] + b _0222F584 +_0222F56C: + cmp r0, #6 + bge _0222F578 + ldr r1, _0222F594 ; =MOD70_0222FDD8 + ldr r0, _0222F590 ; =0x00002214 + str r1, [r4, r0] + b _0222F584 +_0222F578: + blt _0222F584 + cmp r0, #0xc + bge _0222F584 + ldr r1, _0222F598 ; =MOD70_02230810 + ldr r0, _0222F590 ; =0x00002214 + str r1, [r4, r0] +_0222F584: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_0222F588: .word 0x021C48B8 +_0222F58C: .word MOD70_0222F674 +_0222F590: .word 0x00002214 +_0222F594: .word MOD70_0222FDD8 +_0222F598: .word MOD70_02230810 + thumb_func_end MOD70_0222F538 + + thumb_func_start MOD70_0222F59C +MOD70_0222F59C: ; 0x0222F59C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bne _0222F5CC + ldr r0, _0222F660 ; =0x00002218 + ldr r0, [r5, r0] + str r0, [r5, #0xc] + ldr r0, [r5, #8] + ldr r0, [r0, #8] + bl FUN_0206B9AC + strb r0, [r5, #0x1f] + mov r0, #0 + str r0, [r5, #0x34] + bl FUN_02031190 + bl FUN_0202DFA4 + add r1, r0, #0 + add r0, r5, #0 + add r0, #0xc + bl FUN_0207C2A4 + b _0222F606 +_0222F5CC: + ldr r0, _0222F664 ; =0x0000221C + ldr r1, [r5, r0] + str r1, [r5, #0xc] + ldr r0, [r5, r0] + bl FUN_0206B9AC + strb r0, [r5, #0x1f] + bl FUN_02031190 + mov r2, #1 + ldr r1, _0222F668 ; =0x00002E14 + eor r2, r0 + mov r0, #0xfb + lsl r0, r0, #2 + add r1, r5, r1 + mul r0, r2 + add r0, r1, r0 + str r0, [r5, #0x34] + bl FUN_02031190 + mov r1, #1 + eor r0, r1 + bl FUN_0202DFA4 + add r1, r0, #0 + add r0, r5, #0 + add r0, #0xc + bl FUN_0207C2A4 +_0222F606: + mov r0, #1 + strb r0, [r5, #0x1d] + add r0, r5, #0 + add r0, #0x88 + ldr r0, [r0] + mov r1, #6 + bl _s32_div_f + add r0, r5, #0 + add r0, #0x20 + strb r1, [r0] + mov r0, #1 + strb r0, [r5, #0x1e] + mov r0, #0 + strh r0, [r5, #0x24] + ldr r0, [r5, #8] + ldr r0, [r0, #0x10] + bl FUN_02079C70 + str r0, [r5, #0x38] + ldr r0, [r5, #8] + ldr r0, [r0, #0x30] + str r0, [r5, #0x28] + ldr r0, [r5, #8] + ldr r0, [r0, #0x18] + str r0, [r5, #0x10] + ldr r0, [r5, #8] + ldr r0, [r0, #0x10] + bl FUN_0202A918 + str r0, [r5, #0x2c] + add r0, r5, #0 + ldr r1, _0222F66C ; =0x022313C0 + add r0, #0xc + bl FUN_0207B000 + add r1, r5, #0 + ldr r0, _0222F670 ; =0x020FA6E8 + add r1, #0xc + mov r2, #0x1a + bl FUN_02006234 + str r0, [r5, #0x40] + str r4, [r5, #0x3c] + pop {r3, r4, r5, pc} + .align 2, 0 +_0222F660: .word 0x00002218 +_0222F664: .word 0x0000221C +_0222F668: .word 0x00002E14 +_0222F66C: .word 0x022313C0 +_0222F670: .word 0x020FA6E8 + thumb_func_end MOD70_0222F59C + + thumb_func_start MOD70_0222F674 +MOD70_0222F674: ; 0x0222F674 + push {r4, lr} + sub sp, #0x10 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222F6BC ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x19 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0222F6C0 ; =MOD70_0222F6C8 + ldr r0, _0222F6C4 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_0222F6BC: .word 0x000005A8 +_0222F6C0: .word MOD70_0222F6C8 +_0222F6C4: .word 0x00002214 + thumb_func_end MOD70_0222F674 + + thumb_func_start MOD70_0222F6C8 +MOD70_0222F6C8: ; 0x0222F6C8 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x5d + ldr r2, _0222F778 ; =0x00000658 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0xc + ldr r0, [r4, r0] + add r2, r4, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _0222F6EE + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222F738 + b _0222F772 +_0222F6EE: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222F77C ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x1c + mov r2, #1 + bl MOD70_02230F40 + add r0, r4, #0 + mov r1, #0x18 + mov r2, #1 + bl MOD70_0222F440 + ldr r1, _0222F780 ; =MOD70_0222FD9C + ldr r0, _0222F784 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + str r0, [r4, #0x5c] + b _0222F772 +_0222F738: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222F788 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0222F78C ; =MOD70_0222F538 + ldr r0, _0222F784 ; =0x00002214 + str r1, [r4, r0] +_0222F772: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_0222F778: .word 0x00000658 +_0222F77C: .word 0x000005A8 +_0222F780: .word MOD70_0222FD9C +_0222F784: .word 0x00002214 +_0222F788: .word 0x00000588 +_0222F78C: .word MOD70_0222F538 + thumb_func_end MOD70_0222F6C8 + + thumb_func_start MOD70_0222F790 +MOD70_0222F790: ; 0x0222F790 + push {r4, lr} + sub sp, #0x10 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222F7D8 ; =0x000005A8 + ldr r1, [r4, #0x68] + ldr r3, [r4, r3] + add r0, r4, r0 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0222F7DC ; =MOD70_0222F7E4 + ldr r0, _0222F7E0 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_0222F7D8: .word 0x000005A8 +_0222F7DC: .word MOD70_0222F7E4 +_0222F7E0: .word 0x00002214 + thumb_func_end MOD70_0222F790 + + thumb_func_start MOD70_0222F7E4 +MOD70_0222F7E4: ; 0x0222F7E4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, _0222F83C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _0222F834 + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222F840 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0222F844 ; =MOD70_0222F538 + ldr r0, _0222F848 ; =0x00002214 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD70_02230390 +_0222F834: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_0222F83C: .word 0x021C48B8 +_0222F840: .word 0x00000588 +_0222F844: .word MOD70_0222F538 +_0222F848: .word 0x00002214 + thumb_func_end MOD70_0222F7E4 + + thumb_func_start MOD70_0222F84C +MOD70_0222F84C: ; 0x0222F84C + push {r3, r4, lr} + sub sp, #4 + ldr r4, _0222F86C ; =0x00003674 + add r3, r0, #0 + ldr r0, [r3, r4] + add r4, r4, #4 + str r0, [sp] + ldr r0, _0222F870 ; =0x000005A8 + mov r2, #1 + add r0, r3, r0 + ldr r3, [r3, r4] + bl MOD70_02230F40 + add sp, #4 + pop {r3, r4, pc} + nop +_0222F86C: .word 0x00003674 +_0222F870: .word 0x000005A8 + thumb_func_end MOD70_0222F84C + + thumb_func_start MOD70_0222F874 +MOD70_0222F874: ; 0x0222F874 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x5d + ldr r2, _0222F8B4 ; =0x00000658 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0xc + ldr r0, [r4, r0] + add r2, r4, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _0222F898 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222F8A0 + b _0222F8AE +_0222F898: + ldr r1, _0222F8B8 ; =MOD70_0222FBF0 + ldr r0, _0222F8BC ; =0x00002214 + str r1, [r4, r0] + b _0222F8AE +_0222F8A0: + add r0, r4, #0 + mov r1, #0x22 + bl MOD70_0222F84C + ldr r1, _0222F8C0 ; =MOD70_0222FADC + ldr r0, _0222F8BC ; =0x00002214 + str r1, [r4, r0] +_0222F8AE: + mov r0, #0 + pop {r4, pc} + nop +_0222F8B4: .word 0x00000658 +_0222F8B8: .word MOD70_0222FBF0 +_0222F8BC: .word 0x00002214 +_0222F8C0: .word MOD70_0222FADC + thumb_func_end MOD70_0222F874 + + thumb_func_start MOD70_0222F8C4 +MOD70_0222F8C4: ; 0x0222F8C4 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #0x5d + ldr r2, _0222F938 ; =0x00000658 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0xc + ldr r0, [r4, r0] + add r2, r4, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _0222F8EA + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222F910 + b _0222F932 +_0222F8EA: + ldr r1, _0222F93C ; =0x00003694 + ldr r0, [r4, r1] + sub r1, #0x24 + ldr r1, [r4, r1] + bl FUN_02028468 + mov r0, #0 + str r0, [sp] + ldr r1, _0222F940 ; =0x0000366C + ldr r0, [r4, #4] + ldr r1, [r4, r1] + mov r2, #0x1f + mov r3, #0x1a + bl FUN_02033A70 + ldr r1, _0222F944 ; =MOD70_0222FBF0 + ldr r0, _0222F948 ; =0x00002214 + str r1, [r4, r0] + b _0222F932 +_0222F910: + ldr r0, _0222F940 ; =0x0000366C + ldr r0, [r4, r0] + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, _0222F94C ; =0x00003674 + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_0200ABC0 + add r0, r4, #0 + mov r1, #0x23 + bl MOD70_0222F84C + ldr r1, _0222F950 ; =MOD70_0222F874 + ldr r0, _0222F948 ; =0x00002214 + str r1, [r4, r0] +_0222F932: + mov r0, #0 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222F938: .word 0x00000658 +_0222F93C: .word 0x00003694 +_0222F940: .word 0x0000366C +_0222F944: .word MOD70_0222FBF0 +_0222F948: .word 0x00002214 +_0222F94C: .word 0x00003674 +_0222F950: .word MOD70_0222F874 + thumb_func_end MOD70_0222F8C4 + + thumb_func_start MOD70_0222F954 +MOD70_0222F954: ; 0x0222F954 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0xda + lsl r0, r0, #6 + ldr r0, [r5, r0] + bl FUN_02001204 + add r4, r0, #0 + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _0222F976 + add r0, r0, #1 + cmp r4, r0 + bne _0222F9A0 + mov r0, #0 + pop {r4, r5, r6, pc} +_0222F976: + ldr r0, _0222FA10 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _0222FA14 ; =0x0000366C + ldr r0, [r5, r0] + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, _0222FA18 ; =0x00003674 + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_0200ABC0 + add r0, r5, #0 + mov r1, #0x23 + bl MOD70_0222F84C + ldr r1, _0222FA1C ; =MOD70_0222F874 + ldr r0, _0222FA20 ; =0x00002214 + str r1, [r5, r0] + b _0222F9E4 +_0222F9A0: + ldr r0, _0222FA10 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _0222FA24 ; =0x00003670 + str r4, [r5, r0] + mov r0, #0x1a + bl FUN_02023928 + add r6, r0, #0 + ldr r0, _0222FA28 ; =0x00003694 + add r1, r4, #0 + ldr r0, [r5, r0] + bl FUN_020283A4 + add r1, r0, #0 + add r0, r6, #0 + bl FUN_0202395C + ldr r0, _0222FA18 ; =0x00003674 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r6, #0 + bl FUN_0200ABC0 + add r0, r6, #0 + bl FUN_02016A18 + add r0, r5, #0 + mov r1, #0x24 + bl MOD70_0222F84C + ldr r1, _0222FA2C ; =MOD70_0222F8C4 + ldr r0, _0222FA20 ; =0x00002214 + str r1, [r5, r0] +_0222F9E4: + ldr r0, _0222FA30 ; =0x00003684 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _0222FA30 ; =0x00003684 + add r0, r5, r0 + bl FUN_02019178 + mov r0, #0xda + lsl r0, r0, #6 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _0222FA34 ; =0x0000367C + ldr r0, [r5, r0] + bl FUN_02012870 + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222FA10: .word 0x000005DC +_0222FA14: .word 0x0000366C +_0222FA18: .word 0x00003674 +_0222FA1C: .word MOD70_0222F874 +_0222FA20: .word 0x00002214 +_0222FA24: .word 0x00003670 +_0222FA28: .word 0x00003694 +_0222FA2C: .word MOD70_0222F8C4 +_0222FA30: .word 0x00003684 +_0222FA34: .word 0x0000367C + thumb_func_end MOD70_0222F954 + + thumb_func_start MOD70_0222FA38 +MOD70_0222FA38: ; 0x0222FA38 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, _0222FACC ; =0x00003694 + ldr r0, [r5, r0] + bl FUN_02028448 + str r0, [sp] + add r0, r0, #1 + mov r1, #0x1a + bl FUN_02012838 + ldr r1, _0222FAD0 ; =0x0000367C + str r0, [r5, r1] + mov r0, #0x64 + mov r1, #0x1a + bl FUN_020219F4 + ldr r7, _0222FACC ; =0x00003694 + add r6, r0, #0 + mov r4, #0 +_0222FA60: + ldr r0, [r5, r7] + add r1, r4, #0 + bl FUN_0202842C + cmp r0, #0 + beq _0222FA8A + ldr r0, _0222FACC ; =0x00003694 + add r1, r4, #0 + ldr r0, [r5, r0] + bl FUN_020283A4 + add r1, r0, #0 + add r0, r6, #0 + bl FUN_02021E28 + ldr r0, _0222FAD0 ; =0x0000367C + add r1, r6, #0 + ldr r0, [r5, r0] + add r2, r4, #0 + bl FUN_020128A0 +_0222FA8A: + add r4, r4, #1 + cmp r4, #0x20 + blt _0222FA60 + ldr r1, _0222FAD0 ; =0x0000367C + mov r2, #0xb + ldr r0, [r5, r1] + sub r1, r1, #4 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0xd + bl FUN_02012880 + add r0, r6, #0 + bl FUN_02021A20 + ldr r2, _0222FAD0 ; =0x0000367C + mov r3, #0x5d + lsl r3, r3, #2 + ldr r0, [r5, r2] + add r2, #8 + ldr r1, [sp] + ldr r3, [r5, r3] + add r2, r5, r2 + bl MOD70_02231018 + mov r1, #0xda + lsl r1, r1, #6 + str r0, [r5, r1] + ldr r1, _0222FAD4 ; =MOD70_0222F954 + ldr r0, _0222FAD8 ; =0x00002214 + str r1, [r5, r0] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222FACC: .word 0x00003694 +_0222FAD0: .word 0x0000367C +_0222FAD4: .word MOD70_0222F954 +_0222FAD8: .word 0x00002214 + thumb_func_end MOD70_0222FA38 + + thumb_func_start MOD70_0222FADC +MOD70_0222FADC: ; 0x0222FADC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x5d + ldr r2, _0222FB30 ; =0x00000658 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0xc + ldr r0, [r4, r0] + add r2, r4, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _0222FB00 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222FB08 + b _0222FB2A +_0222FB00: + ldr r1, _0222FB34 ; =MOD70_0222FA38 + ldr r0, _0222FB38 ; =0x00002214 + str r1, [r4, r0] + b _0222FB2A +_0222FB08: + ldr r0, _0222FB3C ; =0x0000366C + ldr r0, [r4, r0] + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, _0222FB40 ; =0x00003674 + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_0200ABC0 + add r0, r4, #0 + mov r1, #0x23 + bl MOD70_0222F84C + ldr r1, _0222FB44 ; =MOD70_0222F874 + ldr r0, _0222FB38 ; =0x00002214 + str r1, [r4, r0] +_0222FB2A: + mov r0, #0 + pop {r4, pc} + nop +_0222FB30: .word 0x00000658 +_0222FB34: .word MOD70_0222FA38 +_0222FB38: .word 0x00002214 +_0222FB3C: .word 0x0000366C +_0222FB40: .word 0x00003674 +_0222FB44: .word MOD70_0222F874 + thumb_func_end MOD70_0222FADC + + thumb_func_start MOD70_0222FB48 +MOD70_0222FB48: ; 0x0222FB48 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + mov r0, #0x5d + ldr r2, _0222FBC4 ; =0x00000658 + lsl r0, r0, #2 + add r1, r5, r2 + add r2, #0xc + ldr r0, [r5, r0] + add r2, r5, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _0222FB6E + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222FBB6 + b _0222FBBC +_0222FB6E: + ldr r1, _0222FBC8 ; =MOD70_0222FBF0 + ldr r0, _0222FBCC ; =0x00002214 + ldr r6, _0222FBD0 ; =0x00003694 + str r1, [r5, r0] + mov r4, #0 +_0222FB78: + ldr r0, [r5, r6] + add r1, r4, #0 + bl FUN_0202842C + cmp r0, #0 + bne _0222FB98 + mov r0, #0 + str r0, [sp] + ldr r1, _0222FBD4 ; =0x0000366C + ldr r0, [r5, #4] + ldr r1, [r5, r1] + add r2, r4, #0 + mov r3, #0x1a + bl FUN_02033A70 + b _0222FB9E +_0222FB98: + add r4, r4, #1 + cmp r4, #0x20 + blt _0222FB78 +_0222FB9E: + cmp r4, #0x20 + bne _0222FBBC + add r0, r5, #0 + mov r1, #0x22 + bl MOD70_0222F84C + ldr r1, _0222FBD8 ; =MOD70_0222FADC + ldr r0, _0222FBCC ; =0x00002214 + add sp, #4 + str r1, [r5, r0] + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_0222FBB6: + ldr r1, _0222FBC8 ; =MOD70_0222FBF0 + ldr r0, _0222FBCC ; =0x00002214 + str r1, [r5, r0] +_0222FBBC: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_0222FBC4: .word 0x00000658 +_0222FBC8: .word MOD70_0222FBF0 +_0222FBCC: .word 0x00002214 +_0222FBD0: .word 0x00003694 +_0222FBD4: .word 0x0000366C +_0222FBD8: .word MOD70_0222FADC + thumb_func_end MOD70_0222FB48 + + thumb_func_start MOD70_0222FBDC +MOD70_0222FBDC: ; 0x0222FBDC + push {r3, lr} + mov r0, #0x13 + bl FUN_020315D8 + cmp r0, #0 + beq _0222FBEC + mov r0, #2 + pop {r3, pc} +_0222FBEC: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD70_0222FBDC + + thumb_func_start MOD70_0222FBF0 +MOD70_0222FBF0: ; 0x0222FBF0 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r1, #0 + ldr r0, _0222FCE4 ; =0x0000366C + mvn r1, r1 + str r1, [r6, r0] + mov r4, #0 + bl FUN_02030F20 + cmp r0, #0 + ble _0222FC2C + ldr r7, _0222FCE8 ; =0x000035EC + add r5, r6, #0 +_0222FC0A: + ldr r0, [r5, r7] + cmp r0, #2 + bne _0222FC20 + ldr r0, _0222FCE4 ; =0x0000366C + lsl r1, r4, #2 + str r4, [r6, r0] + mov r2, #0 + add r1, r6, r1 + sub r0, #0x80 + str r2, [r1, r0] + b _0222FC2C +_0222FC20: + add r5, r5, #4 + add r4, r4, #1 + bl FUN_02030F20 + cmp r4, r0 + blt _0222FC0A +_0222FC2C: + ldr r0, _0222FCE4 ; =0x0000366C + mov r1, #0 + ldr r2, [r6, r0] + mvn r1, r1 + cmp r2, r1 + bne _0222FC70 + add r0, #0xc + ldr r0, [r6, r0] + bl FUN_0200A8B8 + ldr r0, _0222FCEC ; =0x00003674 + ldr r0, [r6, r0] + bl FUN_0200AB18 + mov r0, #0x13 + bl FUN_02031588 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r6, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222FCF0 ; =0x000005A8 + ldr r3, [r6, r3] + add r0, r6, r0 + mov r1, #0x1c + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0222FCF4 ; =MOD70_0222FBDC + ldr r0, _0222FCF8 ; =0x00002214 + str r1, [r6, r0] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0222FC70: + ldr r0, [r6, #4] + bl FUN_0206F158 + ldr r1, _0222FCFC ; =0x000001B5 + mov r2, #1 + mov r3, #0x1a + bl FUN_0206EE50 + cmp r0, #1 + bne _0222FCAA + ldr r0, _0222FCE4 ; =0x0000366C + ldr r0, [r6, r0] + bl FUN_0202DFA4 + add r2, r0, #0 + ldr r0, _0222FCEC ; =0x00003674 + mov r1, #0 + ldr r0, [r6, r0] + bl FUN_0200ABC0 + add r0, r6, #0 + mov r1, #0x21 + bl MOD70_0222F84C + ldr r1, _0222FD00 ; =MOD70_0222FB48 + ldr r0, _0222FCF8 ; =0x00002214 + str r1, [r6, r0] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0222FCAA: + ldr r0, [r6, #4] + bl FUN_020286EC + add r5, r0, #0 + mov r4, #0 +_0222FCB4: + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0202842C + cmp r0, #0 + bne _0222FCD4 + mov r0, #0 + str r0, [sp] + ldr r1, _0222FCE4 ; =0x0000366C + ldr r0, [r6, #4] + ldr r1, [r6, r1] + add r2, r4, #0 + mov r3, #0x1a + bl FUN_02033A70 + b _0222FCDA +_0222FCD4: + add r4, r4, #1 + cmp r4, #0x20 + blt _0222FCB4 +_0222FCDA: + ldr r1, _0222FD04 ; =MOD70_0222FBF0 + ldr r0, _0222FCF8 ; =0x00002214 + str r1, [r6, r0] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222FCE4: .word 0x0000366C +_0222FCE8: .word 0x000035EC +_0222FCEC: .word 0x00003674 +_0222FCF0: .word 0x000005A8 +_0222FCF4: .word MOD70_0222FBDC +_0222FCF8: .word 0x00002214 +_0222FCFC: .word 0x000001B5 +_0222FD00: .word MOD70_0222FB48 +_0222FD04: .word MOD70_0222FBF0 + thumb_func_end MOD70_0222FBF0 + + thumb_func_start MOD70_0222FD08 +MOD70_0222FD08: ; 0x0222FD08 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r1, _0222FD78 ; =0x000035EC + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0x1a + bl FUN_020339B4 + cmp r0, #0 + bne _0222FD48 + mov r0, #0x13 + bl FUN_02031588 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _0222FD7C ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x1c + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0222FD80 ; =MOD70_0222FBDC + ldr r0, _0222FD84 ; =0x00002214 + add sp, #4 + str r1, [r4, r0] + mov r0, #0 + pop {r3, r4, pc} +_0222FD48: + mov r0, #0x1a + bl FUN_0200AA80 + ldr r1, _0222FD88 ; =0x00003674 + ldr r2, _0222FD8C ; =0x00000251 + str r0, [r4, r1] + mov r1, #0x1a + mov r0, #0 + add r3, r1, #0 + bl FUN_0200A86C + ldr r1, _0222FD90 ; =0x00003678 + str r0, [r4, r1] + ldr r0, [r4, #4] + bl FUN_020286EC + ldr r1, _0222FD94 ; =0x00003694 + str r0, [r4, r1] + ldr r1, _0222FD98 ; =MOD70_0222FBF0 + ldr r0, _0222FD84 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222FD78: .word 0x000035EC +_0222FD7C: .word 0x000005A8 +_0222FD80: .word MOD70_0222FBDC +_0222FD84: .word 0x00002214 +_0222FD88: .word 0x00003674 +_0222FD8C: .word 0x00000251 +_0222FD90: .word 0x00003678 +_0222FD94: .word 0x00003694 +_0222FD98: .word MOD70_0222FBF0 + thumb_func_end MOD70_0222FD08 + + thumb_func_start MOD70_0222FD9C +MOD70_0222FD9C: ; 0x0222FD9C + ldr r2, [r0, #0x60] + cmp r2, #0 + beq _0222FDC8 + ldr r1, [r0, #0x64] + cmp r1, #0 + beq _0222FDC8 + cmp r2, #1 + bne _0222FDB8 + cmp r1, #1 + bne _0222FDB8 + ldr r2, _0222FDCC ; =MOD70_0222FD08 + ldr r1, _0222FDD0 ; =0x00002214 + str r2, [r0, r1] + b _0222FDBE +_0222FDB8: + ldr r2, _0222FDD4 ; =MOD70_0222F790 + ldr r1, _0222FDD0 ; =0x00002214 + str r2, [r0, r1] +_0222FDBE: + mov r1, #0 + str r1, [r0, #0x60] + str r1, [r0, #0x64] + mov r1, #0x1d + str r1, [r0, #0x68] +_0222FDC8: + mov r0, #0 + bx lr + .align 2, 0 +_0222FDCC: .word MOD70_0222FD08 +_0222FDD0: .word 0x00002214 +_0222FDD4: .word MOD70_0222F790 + thumb_func_end MOD70_0222FD9C + + thumb_func_start MOD70_0222FDD8 +MOD70_0222FDD8: ; 0x0222FDD8 + push {r3, r4, lr} + sub sp, #0x1c + add r4, r0, #0 + mov r0, #0 + add r1, sp, #0x10 + strb r0, [r1, #8] + mov r0, #1 + strb r0, [r1, #9] + mov r0, #3 + strb r0, [r1, #0xa] + ldrb r2, [r1, #0xb] + mov r0, #0xf + bic r2, r0 + strb r2, [r1, #0xb] + ldrb r2, [r1, #0xb] + mov r0, #0x30 + bic r2, r0 + strb r2, [r1, #0xb] + ldrb r2, [r1, #0xb] + mov r0, #0xc0 + bic r2, r0 + strb r2, [r1, #0xb] + ldr r0, _0222FED0 ; =0x00002218 + add r1, r4, #0 + add r1, #0x88 + ldr r0, [r4, r0] + ldr r1, [r1] + bl FUN_0206B9B0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200ACF8 + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5f + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #8 + str r0, [sp] + ldr r0, _0222FED4 ; =0x00000598 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x10 + mov r2, #1 + bl MOD70_02230F40 + mov r0, #3 + mov r1, #0x1a + bl FUN_02012838 + ldr r1, _0222FED8 ; =0x0000065C + mov r2, #0x11 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0x61 + lsl r1, r1, #2 + ldr r1, [r4, r1] + mov r3, #0 + bl FUN_02012880 + ldr r0, _0222FED8 ; =0x0000065C + mov r1, #0x61 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x12 + mov r3, #1 + bl FUN_02012880 + ldr r0, _0222FED8 ; =0x0000065C + mov r1, #0x61 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x13 + mov r3, #2 + bl FUN_02012880 + ldr r0, _0222FED8 ; =0x0000065C + ldr r1, [r4, r0] + str r1, [sp, #0x10] + sub r0, #0xa4 + add r0, r4, r0 + str r0, [sp, #0x14] + bl MOD70_02231004 + mov r0, #0x1a + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #0x10 + mov r1, #8 + add r3, r2, #0 + bl FUN_02001C14 + mov r1, #0x66 + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r1, _0222FEDC ; =MOD70_0222FEE4 + ldr r0, _0222FEE0 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x1c + pop {r3, r4, pc} + nop +_0222FED0: .word 0x00002218 +_0222FED4: .word 0x00000598 +_0222FED8: .word 0x0000065C +_0222FEDC: .word MOD70_0222FEE4 +_0222FEE0: .word 0x00002214 + thumb_func_end MOD70_0222FDD8 + + thumb_func_start MOD70_0222FEE4 +MOD70_0222FEE4: ; 0x0222FEE4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02001C78 + cmp r0, #2 + bhi _0222FF06 + cmp r0, #0 + beq _0222FF10 + cmp r0, #1 + beq _0222FF64 + cmp r0, #2 + beq _0222FFB4 + b _02230002 +_0222FF06: + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222FFB4 + b _02230002 +_0222FF10: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230008 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0223000C ; =0x0000065C + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r1, _02230010 ; =MOD70_0222F538 + ldr r0, _02230014 ; =0x00002214 + add sp, #0x10 + str r1, [r4, r0] + mov r0, #3 + pop {r4, pc} +_0222FF64: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230018 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0223000C ; =0x0000065C + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r1, _0223001C ; =MOD70_02230020 + ldr r0, _02230014 ; =0x00002214 + str r1, [r4, r0] + b _02230002 +_0222FFB4: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230008 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0223000C ; =0x0000065C + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r1, _02230010 ; =MOD70_0222F538 + ldr r0, _02230014 ; =0x00002214 + str r1, [r4, r0] +_02230002: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02230008: .word 0x00000588 +_0223000C: .word 0x0000065C +_02230010: .word MOD70_0222F538 +_02230014: .word 0x00002214 +_02230018: .word 0x000005A8 +_0223001C: .word MOD70_02230020 + thumb_func_end MOD70_0222FEE4 + + thumb_func_start MOD70_02230020 +MOD70_02230020: ; 0x02230020 + push {r4, lr} + sub sp, #0x10 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230070 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + add r0, r4, #0 + mov r1, #0x18 + mov r2, #2 + bl MOD70_0222F440 + ldr r1, _02230074 ; =MOD70_0223007C + ldr r0, _02230078 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02230070: .word 0x000005A8 +_02230074: .word MOD70_0223007C +_02230078: .word 0x00002214 + thumb_func_end MOD70_02230020 + + thumb_func_start MOD70_0223007C +MOD70_0223007C: ; 0x0223007C + ldr r2, [r0, #0x60] + cmp r2, #0 + beq _022300A8 + ldr r1, [r0, #0x64] + cmp r1, #0 + beq _022300A8 + cmp r2, #2 + bne _02230098 + cmp r1, #2 + bne _02230098 + ldr r2, _022300AC ; =MOD70_022300B8 + ldr r1, _022300B0 ; =0x00002214 + str r2, [r0, r1] + b _0223009E +_02230098: + ldr r2, _022300B4 ; =MOD70_0222F790 + ldr r1, _022300B0 ; =0x00002214 + str r2, [r0, r1] +_0223009E: + mov r1, #0x18 + str r1, [r0, #0x68] + mov r1, #0 + str r1, [r0, #0x60] + str r1, [r0, #0x64] +_022300A8: + mov r0, #0 + bx lr + .align 2, 0 +_022300AC: .word MOD70_022300B8 +_022300B0: .word 0x00002214 +_022300B4: .word MOD70_0222F790 + thumb_func_end MOD70_0223007C + + thumb_func_start MOD70_022300B8 +MOD70_022300B8: ; 0x022300B8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r0, #0 + ldr r0, _022301D8 ; =0x00000438 + mov r6, #0 + add r0, r7, r0 + add r4, r7, #0 + add r5, r7, #0 + str r0, [sp, #4] +_022300CA: + add r0, r7, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r6, r0 + beq _02230108 + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + ldr r0, _022301DC ; =0x00000692 + ldrh r0, [r5, r0] + cmp r0, #0 + beq _022300F4 + mov r0, #0x3a + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 +_022300F4: + ldr r0, _022301E0 ; =0x0000069C + ldr r0, [r5, r0] + cmp r0, #0 + beq _02230108 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 +_02230108: + add r0, r6, #7 + lsl r1, r0, #4 + ldr r0, [sp, #4] + add r0, r0, r1 + bl FUN_0201958C + add r0, r7, #0 + add r0, #0x8c + ldr r0, [r0] + sub r0, r0, #6 + cmp r6, r0 + beq _02230154 + mov r0, #0xe2 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + ldr r0, _022301E4 ; =0x000006F2 + ldrh r0, [r5, r0] + cmp r0, #0 + beq _02230140 + mov r0, #0xee + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 +_02230140: + ldr r0, _022301E8 ; =0x000006FC + ldr r0, [r5, r0] + cmp r0, #0 + beq _02230154 + mov r0, #0xfa + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 +_02230154: + add r0, r6, #0 + add r0, #0xd + lsl r1, r0, #4 + ldr r0, [sp, #4] + add r0, r0, r1 + bl FUN_0201958C + add r6, r6, #1 + add r4, r4, #4 + add r5, #0x10 + cmp r6, #6 + blt _022300CA + mov r0, #0xce + lsl r0, r0, #2 + ldr r0, [r7, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0xcf + lsl r0, r0, #2 + ldr r0, [r7, r0] + mov r1, #0 + bl FUN_020200A0 + add r0, r7, #0 + add r0, #0x88 + ldr r0, [r0] + mov r3, #0x30 + lsl r2, r0, #3 + ldr r1, _022301EC ; =0x02231220 + ldr r0, _022301F0 ; =0x000022C4 + ldr r1, [r1, r2] + ldr r4, _022301F4 ; =0x02231224 + add r0, r7, r0 + ldr r2, [r4, r2] + add r1, #0x10 + sub r2, r2, #6 + str r3, [sp] + bl MOD70_02230204 + add r0, r7, #0 + add r0, #0x8c + ldr r0, [r0] + ldr r1, _022301EC ; =0x02231220 + lsl r2, r0, #3 + mov r0, #0x30 + str r0, [sp] + ldr r0, _022301F8 ; =0x000022DC + ldr r1, [r1, r2] + add r3, r4, #0 + ldr r2, [r3, r2] + add r0, r7, r0 + add r1, #0x10 + sub r2, r2, #6 + mov r3, #0xb0 + bl MOD70_02230204 + ldr r1, _022301FC ; =0x000022BC + mov r0, #0 + str r0, [r7, r1] + ldr r2, _02230200 ; =MOD70_0223029C + sub r1, #0xa8 + str r2, [r7, r1] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_022301D8: .word 0x00000438 +_022301DC: .word 0x00000692 +_022301E0: .word 0x0000069C +_022301E4: .word 0x000006F2 +_022301E8: .word 0x000006FC +_022301EC: .word 0x02231220 +_022301F0: .word 0x000022C4 +_022301F4: .word 0x02231224 +_022301F8: .word 0x000022DC +_022301FC: .word 0x000022BC +_02230200: .word MOD70_0223029C + thumb_func_end MOD70_022300B8 + + thumb_func_start MOD70_02230204 +MOD70_02230204: ; 0x02230204 + lsl r1, r1, #0xc + str r1, [r0] + lsl r1, r2, #0xc + str r1, [r0, #4] + lsl r1, r3, #0xc + str r1, [r0, #0xc] + ldr r1, [sp] + lsl r1, r1, #0xc + str r1, [r0, #0x10] + bx lr + thumb_func_end MOD70_02230204 + + thumb_func_start MOD70_02230218 +MOD70_02230218: ; 0x02230218 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + ldr r7, [sp, #0x48] + str r0, [sp] + ldr r4, [r7] + ldr r0, [r7, #0xc] + str r1, [sp, #4] + add r6, r3, #0 + sub r0, r0, r4 + mov r1, #0x14 + str r2, [sp, #8] + ldr r5, [sp, #0x4c] + bl _s32_div_f + mul r0, r6 + add r0, r4, r0 + str r0, [sp, #0x24] + ldr r4, [r7, #4] + ldr r0, [r7, #0x10] + mov r1, #0x14 + sub r0, r0, r4 + bl _s32_div_f + mul r0, r6 + add r0, r4, r0 + str r0, [sp, #0x28] + ldr r0, [sp] + add r1, sp, #0x24 + bl FUN_02020044 + ldrh r0, [r5, #2] + cmp r0, #0 + beq _02230276 + mov r0, #5 + ldr r1, [sp, #0x24] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x18] + mov r0, #0x16 + ldr r1, [sp, #0x28] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [sp, #0x1c] + ldr r0, [sp, #4] + add r1, sp, #0x18 + bl FUN_02020044 +_02230276: + ldr r0, [r5, #0xc] + cmp r0, #0 + beq _02230298 + mov r0, #7 + ldr r1, [sp, #0x24] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0xc] + mov r0, #0x16 + ldr r1, [sp, #0x28] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [sp, #0x10] + ldr r0, [sp, #8] + add r1, sp, #0xc + bl FUN_02020044 +_02230298: + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD70_02230218 + + thumb_func_start MOD70_0223029C +MOD70_0223029C: ; 0x0223029C + push {r3, r4, r5, lr} + sub sp, #8 + ldr r3, _02230370 ; =0x000022BC + add r4, r0, #0 + ldr r0, [r4, r3] + add r2, r3, #0 + add r0, r0, #1 + str r0, [r4, r3] + add r0, r4, #0 + add r0, #0x88 + ldr r1, [r0] + add r2, #8 + add r2, r4, r2 + lsl r0, r1, #2 + str r2, [sp] + mov r2, #0x69 + lsl r2, r2, #4 + add r2, r4, r2 + lsl r1, r1, #4 + add r1, r2, r1 + mov r2, #0x37 + str r1, [sp, #4] + lsl r2, r2, #4 + add r5, r4, r0 + add r1, r2, #0 + ldr r0, [r5, r2] + add r1, #0x30 + add r2, #0x60 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + ldr r3, [r4, r3] + bl MOD70_02230218 + add r0, r4, #0 + add r0, #0x8c + ldr r3, _02230374 ; =0x000022DC + ldr r5, [r0] + add r1, r4, r3 + str r1, [sp] + mov r1, #0x69 + lsl r1, r1, #4 + add r2, r4, r1 + lsl r1, r5, #4 + add r1, r2, r1 + mov r2, #0x37 + lsl r0, r5, #2 + lsl r2, r2, #4 + str r1, [sp, #4] + add r5, r4, r0 + add r1, r2, #0 + ldr r0, [r5, r2] + add r1, #0x30 + add r2, #0x60 + sub r3, #0x20 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + ldr r3, [r4, r3] + bl MOD70_02230218 + ldr r1, _02230370 ; =0x000022BC + ldr r0, [r4, r1] + cmp r0, #0x15 + bne _02230368 + mov r0, #1 + add r2, r4, #0 + str r0, [sp] + ldr r0, _02230378 ; =0x00000568 + sub r1, #0xa4 + add r2, #0x88 + ldr r1, [r4, r1] + ldr r2, [r2] + add r0, r4, r0 + mov r3, #8 + bl MOD70_0222EC5C + mov r0, #1 + add r2, r4, #0 + str r0, [sp] + ldr r1, _0223037C ; =0x0000221C + add r2, #0x8c + ldr r0, _02230380 ; =0x00000578 + ldr r2, [r2] + ldr r1, [r4, r1] + add r0, r4, r0 + sub r2, r2, #6 + mov r3, #8 + bl MOD70_0222EC5C + add r1, r4, #0 + add r1, #0x8c + ldr r1, [r1] + add r0, r4, #0 + bl MOD70_0222E1A0 + ldr r1, _02230384 ; =MOD70_022304AC + ldr r0, _02230388 ; =0x00002214 + str r1, [r4, r0] + ldr r0, _0223038C ; =0x00000418 + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_020200A0 +_02230368: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_02230370: .word 0x000022BC +_02230374: .word 0x000022DC +_02230378: .word 0x00000568 +_0223037C: .word 0x0000221C +_02230380: .word 0x00000578 +_02230384: .word MOD70_022304AC +_02230388: .word 0x00002214 +_0223038C: .word 0x00000418 + thumb_func_end MOD70_0223029C + + thumb_func_start MOD70_02230390 +MOD70_02230390: ; 0x02230390 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + ldr r1, _0223048C ; =0x00000568 + str r0, [sp] + add r0, r0, r1 + bl FUN_0201958C + ldr r1, _02230490 ; =0x00000578 + ldr r0, [sp] + add r0, r0, r1 + bl FUN_0201958C + ldr r6, [sp] + ldr r1, _02230494 ; =0x00000438 + add r0, r6, #0 + add r0, r0, r1 + ldr r4, _02230498 ; =0x02231220 + mov r7, #0 + add r5, r6, #0 + str r0, [sp, #4] +_022303B8: + mov r0, #0x69 + lsl r0, r0, #4 + ldrh r0, [r6, r0] + cmp r0, #0 + beq _02230438 + mov r0, #0x37 + lsl r0, r0, #4 + ldr r1, [r4] + ldr r2, [r4, #4] + ldr r0, [r5, r0] + add r1, #0x10 + sub r2, r2, #6 + bl MOD70_02230B70 + mov r0, #0x37 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r0, _0223049C ; =0x00000692 + ldrh r0, [r6, r0] + cmp r0, #0 + beq _02230406 + mov r0, #0x3a + lsl r0, r0, #4 + ldr r1, [r4] + ldr r2, [r4, #4] + ldr r0, [r5, r0] + add r1, #0x24 + add r2, #0x10 + bl MOD70_02230B70 + mov r0, #0x3a + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 +_02230406: + ldr r0, _022304A0 ; =0x0000069C + ldr r0, [r6, r0] + cmp r0, #0 + beq _0223042C + mov r0, #0x3d + lsl r0, r0, #4 + ldr r1, [r4] + ldr r2, [r4, #4] + ldr r0, [r5, r0] + add r1, #0x2c + add r2, #0x10 + bl MOD70_02230B70 + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 +_0223042C: + add r0, r7, #7 + lsl r1, r0, #4 + ldr r0, [sp, #4] + add r0, r0, r1 + bl FUN_02019220 +_02230438: + add r7, r7, #1 + add r6, #0x10 + add r4, #8 + add r5, r5, #4 + cmp r7, #0xc + blt _022303B8 + mov r1, #0xce + ldr r0, [sp] + lsl r1, r1, #2 + ldr r0, [r0, r1] + mov r1, #1 + bl FUN_020200A0 + mov r1, #0xcf + ldr r0, [sp] + lsl r1, r1, #2 + ldr r0, [r0, r1] + mov r1, #1 + bl FUN_020200A0 + ldr r1, _02230494 ; =0x00000438 + ldr r0, [sp] + ldr r2, [sp] + add r0, r0, r1 + mov r1, #1 + bl MOD70_0222EF24 + ldr r1, _022304A4 ; =0x0000040C + ldr r0, [sp] + ldr r0, [r0, r1] + mov r1, #0 + bl FUN_020200A0 + ldr r1, _022304A8 ; =0x00000418 + ldr r0, [sp] + ldr r0, [r0, r1] + mov r1, #0 + bl FUN_020200A0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_0223048C: .word 0x00000568 +_02230490: .word 0x00000578 +_02230494: .word 0x00000438 +_02230498: .word 0x02231220 +_0223049C: .word 0x00000692 +_022304A0: .word 0x0000069C +_022304A4: .word 0x0000040C +_022304A8: .word 0x00000418 + thumb_func_end MOD70_02230390 + + thumb_func_start MOD70_022304AC +MOD70_022304AC: ; 0x022304AC + push {r4, lr} + sub sp, #0x10 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + ldr r0, _02230534 ; =0x00002218 + add r1, r4, #0 + add r1, #0x88 + ldr r0, [r4, r0] + ldr r1, [r1] + bl FUN_0206B9B0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200ACF8 + add r1, r4, #0 + ldr r0, _02230538 ; =0x0000221C + add r1, #0x8c + ldr r1, [r1] + ldr r0, [r4, r0] + sub r1, r1, #6 + bl FUN_0206B9B0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_0200ACF8 + mov r3, #0x5f + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #8 + str r0, [sp] + ldr r0, _0223053C ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x15 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _02230540 ; =MOD70_02230548 + ldr r0, _02230544 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02230534: .word 0x00002218 +_02230538: .word 0x0000221C +_0223053C: .word 0x000005A8 +_02230540: .word MOD70_02230548 +_02230544: .word 0x00002214 + thumb_func_end MOD70_022304AC + + thumb_func_start MOD70_02230548 +MOD70_02230548: ; 0x02230548 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x5d + ldr r2, _02230638 ; =0x00000658 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0xc + ldr r0, [r4, r0] + add r2, r4, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _0223056E + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _022305EE + b _02230632 +_0223056E: + add r0, r4, #0 + add r0, #0x88 + ldr r0, [r0] + lsl r0, r0, #4 + add r1, r4, r0 + ldr r0, _0223063C ; =0x0000069C + ldr r0, [r1, r0] + cmp r0, #0 + bne _022305E6 + add r0, r4, #0 + bl MOD70_02230BC4 + cmp r0, #0 + beq _022305D4 + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230640 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _02230644 ; =MOD70_02230770 + ldr r0, _02230648 ; =0x00002214 + mov r2, #3 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0x18 + bl MOD70_0222F440 + mov r0, #1 + str r0, [r4, #0x5c] + b _02230632 +_022305D4: + ldr r1, _02230644 ; =MOD70_02230770 + ldr r0, _02230648 ; =0x00002214 + mov r2, #4 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0x18 + bl MOD70_0222F440 + b _02230632 +_022305E6: + ldr r1, _0223064C ; =MOD70_02230650 + ldr r0, _02230648 ; =0x00002214 + str r1, [r4, r0] + b _02230632 +_022305EE: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230640 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _02230644 ; =MOD70_02230770 + ldr r0, _02230648 ; =0x00002214 + mov r2, #4 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0x18 + bl MOD70_0222F440 +_02230632: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02230638: .word 0x00000658 +_0223063C: .word 0x0000069C +_02230640: .word 0x000005A8 +_02230644: .word MOD70_02230770 +_02230648: .word 0x00002214 +_0223064C: .word MOD70_02230650 + thumb_func_end MOD70_02230548 + + thumb_func_start MOD70_02230650 +MOD70_02230650: ; 0x02230650 + push {r4, lr} + sub sp, #0x10 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5f + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #8 + str r0, [sp] + ldr r0, _02230698 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x24 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _0223069C ; =MOD70_022306A4 + ldr r0, _022306A0 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_02230698: .word 0x000005A8 +_0223069C: .word MOD70_022306A4 +_022306A0: .word 0x00002214 + thumb_func_end MOD70_02230650 + + thumb_func_start MOD70_022306A4 +MOD70_022306A4: ; 0x022306A4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x5d + ldr r2, _02230760 ; =0x00000658 + lsl r0, r0, #2 + add r1, r4, r2 + add r2, #0xc + ldr r0, [r4, r0] + add r2, r4, r2 + bl MOD70_02230FB0 + cmp r0, #0 + beq _022306CA + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _02230714 + b _02230758 +_022306CA: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230764 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _02230768 ; =MOD70_02230770 + ldr r0, _0223076C ; =0x00002214 + mov r2, #3 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0x18 + bl MOD70_0222F440 + mov r0, #1 + str r0, [r4, #0x5c] + b _02230758 +_02230714: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _02230764 ; =0x000005A8 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x14 + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _02230768 ; =MOD70_02230770 + ldr r0, _0223076C ; =0x00002214 + mov r2, #4 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0x18 + bl MOD70_0222F440 +_02230758: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_02230760: .word 0x00000658 +_02230764: .word 0x000005A8 +_02230768: .word MOD70_02230770 +_0223076C: .word 0x00002214 + thumb_func_end MOD70_022306A4 + + thumb_func_start MOD70_02230770 +MOD70_02230770: ; 0x02230770 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x60] + cmp r1, #0 + beq _022307B8 + ldr r0, [r4, #0x64] + cmp r0, #0 + beq _022307B8 + cmp r1, #3 + bne _02230798 + cmp r0, #3 + bne _02230798 + ldr r0, _022307BC ; =0x00003698 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r1, _022307C0 ; =MOD70_022307CC + ldr r0, _022307C4 ; =0x00002214 + str r1, [r4, r0] + b _0223079E +_02230798: + ldr r1, _022307C8 ; =MOD70_0222F790 + ldr r0, _022307C4 ; =0x00002214 + str r1, [r4, r0] +_0223079E: + mov r0, #0 + str r0, [r4, #0x60] + str r0, [r4, #0x64] + add r0, r4, #0 + bl MOD70_02230BC4 + cmp r0, #0 + beq _022307B4 + mov r0, #0x18 + str r0, [r4, #0x68] + b _022307B8 +_022307B4: + mov r0, #0x22 + str r0, [r4, #0x68] +_022307B8: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_022307BC: .word 0x00003698 +_022307C0: .word MOD70_022307CC +_022307C4: .word 0x00002214 +_022307C8: .word MOD70_0222F790 + thumb_func_end MOD70_02230770 + + thumb_func_start MOD70_022307CC +MOD70_022307CC: ; 0x022307CC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_0202E288 + ldr r0, [r4, #8] + add r3, r4, #0 + add r2, r4, #0 + ldr r1, _02230804 ; =0x00002218 + str r0, [sp] + add r3, #0x8c + ldr r0, [r4, r1] + add r1, r1, #4 + add r2, #0x88 + ldr r3, [r3] + ldr r1, [r4, r1] + ldr r2, [r2] + sub r3, r3, #6 + bl MOD70_022309E8 + ldr r1, _02230808 ; =MOD70_0222F790 + ldr r0, _0223080C ; =0x00002214 + str r1, [r4, r0] + mov r0, #2 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02230804: .word 0x00002218 +_02230808: .word MOD70_0222F790 +_0223080C: .word 0x00002214 + thumb_func_end MOD70_022307CC + + thumb_func_start MOD70_02230810 +MOD70_02230810: ; 0x02230810 + push {r3, r4, lr} + sub sp, #0x1c + add r4, r0, #0 + mov r0, #0 + add r1, sp, #0x10 + strb r0, [r1, #8] + mov r0, #1 + strb r0, [r1, #9] + mov r0, #2 + strb r0, [r1, #0xa] + ldrb r2, [r1, #0xb] + mov r0, #0xf + bic r2, r0 + strb r2, [r1, #0xb] + ldrb r2, [r1, #0xb] + mov r0, #0x30 + bic r2, r0 + strb r2, [r1, #0xb] + ldrb r2, [r1, #0xb] + mov r0, #0xc0 + bic r2, r0 + strb r2, [r1, #0xb] + add r1, r4, #0 + ldr r0, _022308F8 ; =0x0000221C + add r1, #0x88 + ldr r1, [r1] + ldr r0, [r4, r0] + sub r1, r1, #6 + bl FUN_0206B9B0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200ACF8 + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5f + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #8 + str r0, [sp] + ldr r0, _022308FC ; =0x00000598 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0x10 + mov r2, #1 + bl MOD70_02230F40 + mov r0, #2 + mov r1, #0x1a + bl FUN_02012838 + ldr r1, _02230900 ; =0x0000065C + mov r2, #0x11 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0x61 + lsl r1, r1, #2 + ldr r1, [r4, r1] + mov r3, #0 + bl FUN_02012880 + ldr r0, _02230900 ; =0x0000065C + mov r1, #0x61 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x13 + mov r3, #1 + bl FUN_02012880 + ldr r0, _02230900 ; =0x0000065C + ldr r1, [r4, r0] + sub r0, #0x94 + add r0, r4, r0 + str r1, [sp, #0x10] + str r0, [sp, #0x14] + bl MOD70_02231004 + mov r0, #0x1a + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #0x10 + mov r1, #8 + add r3, r2, #0 + bl FUN_02001C14 + mov r1, #0x66 + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r1, _02230904 ; =MOD70_0223090C + ldr r0, _02230908 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0 + add sp, #0x1c + pop {r3, r4, pc} + nop +_022308F8: .word 0x0000221C +_022308FC: .word 0x00000598 +_02230900: .word 0x0000065C +_02230904: .word MOD70_0223090C +_02230908: .word 0x00002214 + thumb_func_end MOD70_02230810 + + thumb_func_start MOD70_0223090C +MOD70_0223090C: ; 0x0223090C + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02001C78 + cmp r0, #0 + beq _0223092E + cmp r0, #1 + beq _02230982 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _02230982 + b _022309D0 +_0223092E: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _022309D8 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + ldr r1, _022309DC ; =MOD70_0222F538 + ldr r0, _022309E0 ; =0x00002214 + str r1, [r4, r0] + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _022309E4 ; =0x0000065C + ldr r0, [r4, r0] + bl FUN_02012870 + add sp, #0x10 + mov r0, #3 + pop {r4, pc} +_02230982: + mov r1, #0 + str r1, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + mov r0, #0x5d + str r1, [sp, #0xc] + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02018540 + mov r3, #0x5e + lsl r3, r3, #2 + ldr r0, [r4, r3] + add r3, #0xc + str r0, [sp] + ldr r0, _022309D8 ; =0x00000588 + ldr r3, [r4, r3] + add r0, r4, r0 + mov r1, #0xf + mov r2, #1 + bl MOD70_02230F40 + mov r0, #0x66 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _022309E4 ; =0x0000065C + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r1, _022309DC ; =MOD70_0222F538 + ldr r0, _022309E0 ; =0x00002214 + str r1, [r4, r0] +_022309D0: + mov r0, #0 + add sp, #0x10 + pop {r4, pc} + nop +_022309D8: .word 0x00000588 +_022309DC: .word MOD70_0222F538 +_022309E0: .word 0x00002214 +_022309E4: .word 0x0000065C + thumb_func_end MOD70_0223090C + + thumb_func_start MOD70_022309E8 +MOD70_022309E8: ; 0x022309E8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + str r0, [sp, #4] + mov r0, #0x1a + str r1, [sp, #8] + add r6, r2, #0 + str r3, [sp, #0xc] + ldr r5, [sp, #0x28] + bl FUN_020669C0 + add r7, r0, #0 + mov r0, #0x1a + bl FUN_020669C0 + add r4, r0, #0 + ldr r0, [sp, #4] + add r1, r6, #0 + bl FUN_0206B9B0 + add r1, r7, #0 + bl FUN_02069B88 + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + bl FUN_0206B9B0 + add r1, r4, #0 + bl FUN_02069B88 + add r0, r4, #0 + mov r1, #0x4c + mov r2, #0 + bl FUN_020671BC + cmp r0, #0 + bne _02230A40 + mov r1, #0x46 + add r0, sp, #0x10 + strb r1, [r0] + add r0, r4, #0 + mov r1, #9 + add r2, sp, #0x10 + bl FUN_02067830 +_02230A40: + bl FUN_02031190 + bl FUN_0202DFA4 + add r1, r0, #0 + mov r0, #0xb + str r0, [sp] + add r0, r4, #0 + mov r2, #5 + mov r3, #0 + bl FUN_0208089C + add r0, r4, #0 + bl FUN_0206AA84 + ldr r1, [r5, #0x3c] + add r0, r7, #0 + bl FUN_02069B88 + ldr r1, [r5, #0x40] + add r0, r4, #0 + bl FUN_02069B88 + bl FUN_02031190 + mov r1, #1 + eor r0, r1 + bl FUN_0202DFA4 + ldr r1, [r5, #0x38] + bl FUN_0202393C + ldr r0, [sp, #4] + ldr r1, _02230AE0 ; =0x000001B9 + str r6, [r5, #0x2c] + bl FUN_0206BAE4 + cmp r0, #0 + bne _02230A98 + ldr r0, [r5, #0x10] + bl FUN_02029EF8 + bl FUN_02029F08 +_02230A98: + ldr r0, [r5, #0x10] + add r1, r4, #0 + bl FUN_0202C144 + ldr r0, [sp, #4] + add r1, r6, #0 + bl FUN_0206B9B0 + add r1, r0, #0 + add r0, r4, #0 + bl FUN_02069B88 + ldr r0, [sp, #8] + ldr r1, [sp, #0xc] + bl FUN_0206B9B0 + add r1, r0, #0 + add r0, r7, #0 + bl FUN_02069B88 + ldr r0, [r5, #0x1c] + add r1, r4, #0 + bl MOD70_02230AE4 + ldr r0, [r5, #0x20] + mov r1, #0x13 + bl FUN_0202A0E8 + add r0, r7, #0 + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_02016A18 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02230AE0: .word 0x000001B9 + thumb_func_end MOD70_022309E8 + + thumb_func_start MOD70_02230AE4 +MOD70_02230AE4: ; 0x02230AE4 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r6, r0, #0 + add r4, r1, #0 + bl FUN_02031190 + mov r1, #1 + eor r0, r1 + bl FUN_0202DFA4 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #0x74 + add r2, sp, #4 + bl FUN_020671BC + add r0, r5, #0 + bl FUN_0202398C + add r7, r0, #0 + add r0, r5, #0 + bl FUN_020239CC + add r5, r0, #0 + add r0, r4, #0 + bl FUN_020689E0 + add r3, r0, #0 + mov r0, #0x1a + lsl r1, r5, #0x18 + str r0, [sp] + add r0, r7, #0 + lsr r1, r1, #0x18 + add r2, sp, #4 + bl FUN_0202945C + add r1, r0, #0 + add r0, r6, #0 + mov r2, #4 + bl FUN_02028AD4 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD70_02230AE4 + + thumb_func_start MOD70_02230B3C +MOD70_02230B3C: ; 0x02230B3C + push {r4, lr} + ldr r3, _02230B6C ; =0x000022B8 + add r4, r0, #0 + ldr r0, [r4, r3] + mov r1, #6 + add r0, r0, #2 + str r0, [r4, r3] + mov r0, #0x5d + lsl r0, r0, #2 + ldr r0, [r4, r0] + ldr r3, [r4, r3] + mov r2, #0 + bl FUN_020179E0 + mov r0, #0x5d + ldr r3, _02230B6C ; =0x000022B8 + lsl r0, r0, #2 + ldr r0, [r4, r0] + ldr r3, [r4, r3] + mov r1, #3 + mov r2, #0 + bl FUN_020179E0 + pop {r4, pc} + .align 2, 0 +_02230B6C: .word 0x000022B8 + thumb_func_end MOD70_02230B3C + + thumb_func_start MOD70_02230B70 +MOD70_02230B70: ; 0x02230B70 + push {lr} + sub sp, #0xc + lsl r1, r1, #0xc + str r1, [sp] + lsl r1, r2, #0xc + str r1, [sp, #4] + add r1, sp, #0 + bl FUN_02020044 + add sp, #0xc + pop {pc} + .align 2, 0 + thumb_func_end MOD70_02230B70 + + thumb_func_start MOD70_02230B88 +MOD70_02230B88: ; 0x02230B88 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02230B9C ; =0x000005A8 + ldr r1, _02230BA0 ; =0x000001D9 + add r0, r4, r0 + bl FUN_0200D858 + ldr r1, _02230BA4 ; =0x000036A8 + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 +_02230B9C: .word 0x000005A8 +_02230BA0: .word 0x000001D9 +_02230BA4: .word 0x000036A8 + thumb_func_end MOD70_02230B88 + + thumb_func_start MOD70_02230BA8 +MOD70_02230BA8: ; 0x02230BA8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02230BC0 ; =0x000036A8 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02230BBE + bl FUN_0200DBFC + ldr r0, _02230BC0 ; =0x000036A8 + mov r1, #0 + str r1, [r4, r0] +_02230BBE: + pop {r4, pc} + .align 2, 0 +_02230BC0: .word 0x000036A8 + thumb_func_end MOD70_02230BA8 + + thumb_func_start MOD70_02230BC4 +MOD70_02230BC4: ; 0x02230BC4 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _02230C00 ; =0x00002218 + mov r4, #0 + ldr r0, [r5, r0] + bl FUN_0206B9AC + add r3, r4, #0 + cmp r0, #0 + ble _02230BF0 + add r1, r5, #0 + add r1, #0x88 + ldr r6, [r1] + ldr r1, _02230C04 ; =0x00000695 +_02230BE0: + cmp r3, r6 + beq _02230BE8 + ldrb r2, [r5, r1] + add r4, r4, r2 +_02230BE8: + add r3, r3, #1 + add r5, #0x10 + cmp r3, r0 + blt _02230BE0 +_02230BF0: + sub r0, r0, #1 + cmp r4, r0 + bne _02230BFA + mov r0, #0 + pop {r4, r5, r6, pc} +_02230BFA: + mov r0, #1 + pop {r4, r5, r6, pc} + nop +_02230C00: .word 0x00002218 +_02230C04: .word 0x00000695 + thumb_func_end MOD70_02230BC4 + + thumb_func_start MOD70_02230C08 +MOD70_02230C08: ; 0x02230C08 + ldr r1, _02230C18 ; =0x000036AC + mov r2, #1 + str r2, [r0, r1] + mov r2, #0 + add r1, r1, #4 + str r2, [r0, r1] + bx lr + nop +_02230C18: .word 0x000036AC + thumb_func_end MOD70_02230C08 + + thumb_func_start MOD70_02230C1C +MOD70_02230C1C: ; 0x02230C1C + push {r3, lr} + ldr r2, _02230C40 ; =0x000036AC + ldr r1, [r0, r2] + cmp r1, #0 + beq _02230C3E + add r1, r2, #4 + ldr r1, [r0, r1] + add r3, r1, #1 + add r1, r2, #4 + str r3, [r0, r1] + ldr r1, [r0, r1] + ldr r0, _02230C44 ; =0x00000708 + cmp r1, r0 + ble _02230C3E + mov r0, #4 + bl FUN_020336A0 +_02230C3E: + pop {r3, pc} + .align 2, 0 +_02230C40: .word 0x000036AC +_02230C44: .word 0x00000708 + thumb_func_end MOD70_02230C1C + + thumb_func_start MOD70_02230C48 +MOD70_02230C48: ; 0x02230C48 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r4, r2, #0 + mov r2, #1 + str r2, [sp] + mov r3, #0xa + str r3, [sp, #4] + mov r3, #2 + str r3, [sp, #8] + mov r6, #8 + str r6, [sp, #0xc] + add r5, r1, #0 + str r0, [sp, #0x14] + str r2, [sp, #0x10] + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + mov r2, #1 + add r1, r5, #0 + str r2, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + add r0, r6, #0 + str r0, [sp, #0xc] + mov r0, #0x15 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + add r1, #0x10 + mov r3, #0x14 + bl FUN_02019064 + add r0, r5, #0 + add r0, #0x10 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x15 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + add r0, r6, #0 + str r0, [sp, #0xc] + mov r0, #0x29 + str r0, [sp, #0x10] + add r1, r5, #0 + ldr r0, [sp, #0x14] + add r1, #0x60 + mov r2, #1 + mov r3, #0x1a + bl FUN_02019064 + add r0, r5, #0 + add r0, #0x60 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x1a + str r0, [sp, #4] + ldr r0, [sp, #0x14] + ldr r2, _02230E78 ; =0x000001D9 + mov r1, #0 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x1a + str r0, [sp, #4] + ldr r0, [sp, #0x14] + ldr r2, _02230E7C ; =0x000001F7 + mov r3, #0xb + bl FUN_0200CB00 + mov r1, #0x15 + str r1, [sp] + mov r0, #0x14 + str r0, [sp, #4] + mov r3, #2 + lsl r1, r1, #4 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + add r1, r5, r1 + mov r2, #0 + bl FUN_02019064 + mov r0, #0x15 + lsl r0, r0, #4 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x13 + str r0, [sp] + mov r0, #0xe + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + mov r1, #0x16 + str r0, [sp, #0x10] + lsl r1, r1, #4 + ldr r0, [sp, #0x14] + add r1, r5, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r0, #0x16 + lsl r0, r0, #4 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x38 + mov r1, #0x17 + str r0, [sp, #0x10] + lsl r1, r1, #4 + ldr r0, [sp, #0x14] + add r1, r5, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r0, #0x17 + lsl r0, r0, #4 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x11 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r1, #0xa4 + str r1, [sp, #0x10] + add r1, #0xdc + ldr r0, [sp, #0x14] + add r1, r5, r1 + mov r2, #0 + mov r3, #0x14 + bl FUN_02019064 + mov r0, #6 + lsl r0, r0, #6 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x13 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r1, #0xe6 + str r1, [sp, #0x10] + add r1, #0xaa + ldr r0, [sp, #0x14] + add r1, r5, r1 + mov r2, #0 + mov r3, #0x14 + bl FUN_02019064 + mov r0, #0x19 + lsl r0, r0, #4 + add r0, r5, r0 + mov r1, #0 + bl FUN_02019620 + ldr r4, _02230E80 ; =0x022313F4 + mov r7, #0 + mov r6, #0x33 +_02230DE2: + add r0, r7, #7 + lsl r0, r0, #4 + str r0, [sp, #0x18] + ldrh r0, [r4, #2] + ldr r1, [sp, #0x18] + mov r2, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldrh r3, [r4] + ldr r0, [sp, #0x14] + add r1, r5, r1 + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + ldr r0, [sp, #0x18] + mov r1, #0 + add r0, r5, r0 + bl FUN_02019620 + add r7, r7, #1 + add r6, #0x10 + add r4, r4, #4 + cmp r7, #0xe + blt _02230DE2 + ldr r4, _02230E84 ; =0x0223142C + mov r6, #0 +_02230E2C: + add r0, r6, #0 + add r0, #0x1a + lsl r7, r0, #4 + ldrh r0, [r4, #2] + add r1, r5, r7 + mov r2, #4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldrh r0, [r4, #4] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldrh r0, [r4, #6] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + ldrh r0, [r4, #8] + str r0, [sp, #0x10] + ldrh r3, [r4] + ldr r0, [sp, #0x14] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + add r0, r5, r7 + mov r1, #0 + bl FUN_02019620 + add r6, r6, #1 + add r4, #0xa + cmp r6, #8 + blt _02230E2C + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_02230E78: .word 0x000001D9 +_02230E7C: .word 0x000001F7 +_02230E80: .word 0x022313F4 +_02230E84: .word 0x0223142C + thumb_func_end MOD70_02230C48 + + thumb_func_start MOD70_02230E88 +MOD70_02230E88: ; 0x02230E88 + push {r3, r4, r5, lr} + add r4, r0, #0 + mov r5, #0 +_02230E8E: + add r0, r5, #7 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + add r5, r5, #1 + cmp r5, #0xe + blt _02230E8E + mov r5, #0 +_02230EA0: + add r0, r5, #0 + add r0, #0x1a + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + add r5, r5, #1 + cmp r5, #8 + blt _02230EA0 + add r0, r4, #0 + bl FUN_02019178 + add r0, r4, #0 + add r0, #0x10 + bl FUN_02019178 + add r0, r4, #0 + add r0, #0x60 + bl FUN_02019178 + mov r0, #0x15 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0x16 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0x17 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #6 + lsl r0, r0, #6 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0x19 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + pop {r3, r4, r5, pc} + thumb_func_end MOD70_02230E88 + + thumb_func_start MOD70_02230EFC +MOD70_02230EFC: ; 0x02230EFC + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r3, #0 + ldr r3, [sp, #0x20] + add r5, r0, #0 + add r6, r1, #0 + cmp r3, #1 + bne _02230F20 + mov r0, #0 + add r2, r0, #0 + bl FUN_02002E14 + ldrb r1, [r5, #7] + lsl r1, r1, #3 + sub r1, r1, r0 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r3, r0, #1 +_02230F20: + ldr r0, [sp, #0x24] + mov r1, #0 + str r0, [sp] + ldr r0, _02230F3C ; =0x000B0C00 + str r4, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r2, r6, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_02230F3C: .word 0x000B0C00 + thumb_func_end MOD70_02230EFC + + thumb_func_start MOD70_02230F40 +MOD70_02230F40: ; 0x02230F40 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + add r6, r1, #0 + add r4, r2, #0 + add r1, r3, #0 + ldr r0, [sp, #0x20] + add r2, r6, #0 + mov r3, #0x1a + bl FUN_0200A9C4 + add r6, r0, #0 + cmp r4, #1 + bne _02230F6A + ldr r2, _02230FA4 ; =0x000001D9 + add r0, r5, #0 + mov r1, #0 + mov r3, #0xa + bl FUN_0200D0BC + b _02230F76 +_02230F6A: + ldr r2, _02230FA8 ; =0x000001F7 + add r0, r5, #0 + mov r1, #0 + mov r3, #0xb + bl FUN_0200CCA4 +_02230F76: + add r0, r5, #0 + mov r1, #0xf + bl FUN_02019620 + mov r3, #0 + str r3, [sp] + ldr r0, _02230FAC ; =0x0001020F + str r3, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + add r4, r0, #0 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_02230FA4: .word 0x000001D9 +_02230FA8: .word 0x000001F7 +_02230FAC: .word 0x0001020F + thumb_func_end MOD70_02230F40 + + thumb_func_start MOD70_02230FB0 +MOD70_02230FB0: ; 0x02230FB0 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r2, #0 + add r5, r1, #0 + mov r6, #0 + ldr r1, [r4] + mvn r6, r6 + cmp r1, #0 + beq _02230FC8 + cmp r1, #1 + beq _02230FE0 + b _02230FF6 +_02230FC8: + mov r1, #0x1a + str r1, [sp] + ldr r1, _02230FFC ; =0x022313CC + ldr r2, _02231000 ; =0x000001F7 + mov r3, #0xb + bl FUN_02002198 + str r0, [r5] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _02230FF6 +_02230FE0: + ldr r0, [r5] + mov r1, #0x1a + bl FUN_020021AC + add r6, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + beq _02230FF6 + mov r0, #0 + str r0, [r4] +_02230FF6: + add r0, r6, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02230FFC: .word 0x022313CC +_02231000: .word 0x000001F7 + thumb_func_end MOD70_02230FB0 + + thumb_func_start MOD70_02231004 +MOD70_02231004: ; 0x02231004 + push {r3, lr} + ldr r2, _02231014 ; =0x000001F7 + mov r1, #0 + mov r3, #0xb + bl FUN_0200CCA4 + pop {r3, pc} + nop +_02231014: .word 0x000001F7 + thumb_func_end MOD70_02231004 + + thumb_func_start MOD70_02231018 +MOD70_02231018: ; 0x02231018 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r5, r0, #0 + mov r0, #1 + str r0, [sp] + mov r0, #0xc + str r0, [sp, #4] + mov r0, #0xa + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _02231088 ; =0x0000014D + add r4, r2, #0 + add r6, r1, #0 + str r0, [sp, #0x10] + add r0, r3, #0 + add r1, r4, #0 + mov r2, #0 + mov r3, #0x13 + bl FUN_02019064 + ldr r2, _0223108C ; =0x000001F7 + add r0, r4, #0 + mov r1, #0 + mov r3, #0xb + bl FUN_0200CCA4 + ldr r3, _02231090 ; =0x022313D4 + add r2, sp, #0x14 + add r7, r2, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r1, r6, #1 + add r0, sp, #0x14 + strh r1, [r0, #0x10] + mov r1, #5 + strh r1, [r0, #0x12] + ldr r0, _02231094 ; =MOD70_02231098 + mov r1, #0 + str r0, [sp, #0x18] + add r0, r7, #0 + add r2, r1, #0 + mov r3, #0x1a + str r5, [sp, #0x14] + str r4, [sp, #0x20] + bl FUN_020010A8 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + nop +_02231088: .word 0x0000014D +_0223108C: .word 0x000001F7 +_02231090: .word 0x022313D4 +_02231094: .word MOD70_02231098 + thumb_func_end MOD70_02231018 + + thumb_func_start MOD70_02231098 +MOD70_02231098: ; 0x02231098 + push {r3, lr} + cmp r2, #0 + bne _022310A4 + ldr r0, _022310A8 ; =0x000005DC + bl FUN_020054C8 +_022310A4: + pop {r3, pc} + nop +_022310A8: .word 0x000005DC + thumb_func_end MOD70_02231098 + + .section .rodata + ; 0x022310AC + .incbin "baserom.nds", 0x2C96EC, 0x3D0 diff --git a/arm9/modules/72/asm/module_72_dummy.s b/arm9/modules/72/asm/module_72_dummy.s new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/arm9/modules/72/asm/module_72_dummy.s @@ -0,0 +1 @@ + diff --git a/arm9/modules/73/asm/module_73.s b/arm9/modules/73/asm/module_73.s new file mode 100644 index 00000000..071770b3 --- /dev/null +++ b/arm9/modules/73/asm/module_73.s @@ -0,0 +1,9424 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD73_021D74E0 +MOD73_021D74E0: ; 0x021D74E0 + push {r3, lr} + ldr r0, [r0, #0x18] + bl MOD73_021D88B0 + bl FUN_0201C30C + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD73_021D74E0 + + thumb_func_start MOD73_021D74F0 +MOD73_021D74F0: ; 0x021D74F0 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_0200628C + mov r2, #2 + add r4, r0, #0 + mov r0, #3 + mov r1, #0x38 + lsl r2, r2, #0x10 + bl FUN_0201681C + ldr r1, _021D757C ; =0x000015E8 + add r0, r5, #0 + mov r2, #0x38 + bl FUN_02006268 + ldr r2, _021D757C ; =0x000015E8 + add r5, r0, #0 + mov r1, #0 + bl Call_FillMemWithValue + str r5, [r4, #0x18] + mov r1, #0x38 + str r1, [r5] + mov r0, #0x10 + bl FUN_0201C24C + ldrh r0, [r4, #6] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bne _021D7534 + mov r1, #1 + b _021D7536 +_021D7534: + mov r1, #0 +_021D7536: + ldr r0, _021D7580 ; =0x00001428 + str r1, [r5, r0] + ldr r1, [r4, #0x10] + add r0, r5, #0 + ldr r1, [r1, #0x10] + bl MOD73_021D8DF4 + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x18] + bl FUN_02025084 + str r0, [r5, #0x24] + ldr r0, [r4, #0x10] + ldr r0, [r0, #0x18] + bl FUN_02024FF4 + str r0, [r5, #0x28] + mov r0, #0xae + mov r1, #1 + lsl r0, r0, #2 + str r1, [r5, r0] + ldr r0, _021D7584 ; =MOD73_021D74E0 + add r1, r4, #0 + bl FUN_02015F10 + bl FUN_02015F1C + ldr r1, _021D7588 ; =0x0000049F + mov r0, #0xc + mov r2, #1 + bl FUN_0200433C + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_021D757C: .word 0x000015E8 +_021D7580: .word 0x00001428 +_021D7584: .word MOD73_021D74E0 +_021D7588: .word 0x0000049F + thumb_func_end MOD73_021D74F0 + + thumb_func_start MOD73_021D758C +MOD73_021D758C: ; 0x021D758C + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + add r5, r1, #0 + bl FUN_0200628C + add r7, r0, #0 + add r0, r4, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r4, #0xc] + ldr r1, _021D763C ; =0x021DBC9C + str r0, [sp] + lsl r0, r0, #3 + add r1, r1, r0 + ldr r0, [r5] + cmp r0, #0 + beq _021D75BA + cmp r0, #1 + beq _021D75FC + cmp r0, #2 + beq _021D760C + b _021D7620 +_021D75BA: + ldr r3, [r1] + cmp r3, #0 + beq _021D7620 + ldr r6, [r1, #4] + add r2, r4, #0 + add r0, r7, #0 + add r1, r4, #0 + add r2, #0x10 + blx r3 + str r0, [r4, #0xc] + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _021D75DC + ldr r0, [r4, #0x18] + str r0, [r4, #0xc] + mov r0, #0 + str r0, [r4, #0x14] +_021D75DC: + ldr r1, [r4, #0xc] + ldr r0, [sp] + cmp r0, r1 + beq _021D7620 + mov r0, #0 + str r0, [r4, #0x10] + ldrh r0, [r7, #6] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + beq _021D7620 + cmp r6, #0 + beq _021D7620 + str r6, [r4, #8] + mov r0, #1 + str r0, [r5] + b _021D7620 +_021D75FC: + ldr r0, [r4, #8] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_02031588 + mov r0, #2 + str r0, [r5] + b _021D7620 +_021D760C: + ldr r0, [r4, #8] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_020315D8 + cmp r0, #0 + beq _021D7620 + mov r0, #0 + str r0, [r5] + str r0, [r4, #8] +_021D7620: + add r0, r4, #0 + bl MOD73_021D8858 + ldr r0, [r4] + ldr r1, [r4, #0x20] + bl FUN_020335F0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _021D7638 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D7638: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D763C: .word 0x021DBC9C + thumb_func_end MOD73_021D758C + + thumb_func_start MOD73_021D7640 +MOD73_021D7640: ; 0x021D7640 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + bl FUN_0200628C + add r6, r0, #0 + add r0, r5, #0 + bl FUN_02006278 + add r7, r0, #0 + ldr r4, [r7] + bl MOD73_021D8E90 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201C29C + ldr r2, _021D7688 ; =0x000015E8 + add r0, r7, #0 + mov r1, #0 + bl MI_CpuFill8 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + str r0, [r6, #0x18] + add r0, r4, #0 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D7688: .word 0x000015E8 + thumb_func_end MOD73_021D7640 + + thumb_func_start MOD73_021D768C +MOD73_021D768C: ; 0x021D768C + str r1, [r0, #0x18] + mov r1, #1 + str r1, [r0, #0x14] + bx lr + thumb_func_end MOD73_021D768C + + thumb_func_start MOD73_021D7694 +MOD73_021D7694: ; 0x021D7694 + mov r1, #1 + str r1, [r0, #4] + bx lr + .align 2, 0 + thumb_func_end MOD73_021D7694 + + thumb_func_start MOD73_021D769C +MOD73_021D769C: ; 0x021D769C + push {r4, r5, lr} + sub sp, #0xc + add r4, r2, #0 + ldr r0, [r4] + add r5, r1, #0 + cmp r0, #0 + beq _021D76B8 + cmp r0, #1 + bne _021D76B0 + b _021D77C6 +_021D76B0: + cmp r0, #2 + bne _021D76B6 + b _021D77E4 +_021D76B6: + b _021D77F4 +_021D76B8: + add r0, r5, #0 + bl MOD73_021D852C + ldr r0, _021D77FC ; =0x00001424 + ldr r0, [r5, r0] + bl MOD73_021D910C + cmp r0, #0 + bne _021D76D4 + mov r0, #0xba + lsl r0, r0, #2 + add r0, r5, r0 + bl MOD73_021DB884 +_021D76D4: + ldr r0, [r5, #0x24] + ldr r2, _021D7800 ; =0x00001574 + str r0, [sp] + ldr r0, [r5] + ldr r3, _021D7804 ; =0x00001420 + str r0, [sp, #4] + ldr r0, _021D7808 ; =0x0000054C + ldr r1, [r5, r3] + add r3, #0xc + add r0, r5, r0 + add r2, r5, r2 + add r3, r5, r3 + bl MOD73_021D9A28 + ldr r0, _021D780C ; =0x000005A4 + add r0, r5, r0 + bl MOD73_021D9E80 + ldr r0, [r5, #0x24] + ldr r2, _021D7800 ; =0x00001574 + str r0, [sp] + ldr r0, [r5] + ldr r3, _021D7804 ; =0x00001420 + str r0, [sp, #4] + ldr r0, _021D7810 ; =0x0000063C + ldr r1, [r5, r3] + add r3, #0xc + add r0, r5, r0 + add r2, r5, r2 + add r3, r5, r3 + bl MOD73_021DA210 + mov r0, #0x16 + lsl r0, r0, #6 + add r0, r5, r0 + bl MOD73_021D9D84 + ldr r0, _021D7814 ; =0x0000058C + add r0, r5, r0 + bl MOD73_021D9D84 + ldr r0, _021D7818 ; =0x00000598 + add r0, r5, r0 + bl MOD73_021D9D84 + ldr r3, _021D781C ; =0x0000142C + ldr r0, _021D7820 ; =0x0000061C + add r2, r3, #0 + add r1, r5, r3 + sub r2, #0xc + sub r3, #8 + ldr r2, [r5, r2] + ldr r3, [r5, r3] + add r0, r5, r0 + bl MOD73_021DA0E0 + mov r0, #0x67 + lsl r0, r0, #4 + add r0, r5, r0 + bl MOD73_021DA81C + ldr r0, _021D7824 ; =0x00000A84 + add r0, r5, r0 + bl MOD73_021DAD78 + ldr r1, _021D7804 ; =0x00001420 + ldr r0, _021D7828 ; =0x00000B04 + ldr r1, [r5, r1] + add r0, r5, r0 + bl MOD73_021DAF70 + mov r0, #0x2d + lsl r0, r0, #4 + add r0, r5, r0 + bl MOD73_021DB2FC + add r0, r5, #0 + bl MOD73_021D8630 + bl FUN_02033E74 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + ldr r0, _021D7804 ; =0x00001420 + ldr r0, [r5, r0] + cmp r0, #1 + ble _021D778E + ldr r0, _021D7808 ; =0x0000054C + add r0, r5, r0 + bl MOD73_021D9AC8 +_021D778E: + ldr r0, _021D780C ; =0x000005A4 + mov r1, #3 + add r0, r5, r0 + mov r2, #1 + bl MOD73_021D9FC0 + ldr r0, _021D780C ; =0x000005A4 + mov r1, #4 + add r0, r5, r0 + mov r2, #1 + bl MOD73_021D9FC0 + ldr r0, _021D780C ; =0x000005A4 + mov r1, #5 + add r0, r5, r0 + mov r2, #1 + bl MOD73_021D9FC0 + ldr r0, _021D780C ; =0x000005A4 + mov r1, #6 + add r0, r5, r0 + mov r2, #1 + bl MOD73_021D9FC0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D77F4 +_021D77C6: + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r5] + ldr r3, _021D782C ; =0x0000FFFF + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D77F4 +_021D77E4: + bl FUN_0200E308 + cmp r0, #0 + beq _021D77F4 + ldr r0, [r5, #0xc] + add sp, #0xc + add r0, r0, #1 + pop {r4, r5, pc} +_021D77F4: + ldr r0, [r5, #0xc] + add sp, #0xc + pop {r4, r5, pc} + nop +_021D77FC: .word 0x00001424 +_021D7800: .word 0x00001574 +_021D7804: .word 0x00001420 +_021D7808: .word 0x0000054C +_021D780C: .word 0x000005A4 +_021D7810: .word 0x0000063C +_021D7814: .word 0x0000058C +_021D7818: .word 0x00000598 +_021D781C: .word 0x0000142C +_021D7820: .word 0x0000061C +_021D7824: .word 0x00000A84 +_021D7828: .word 0x00000B04 +_021D782C: .word 0x0000FFFF + thumb_func_end MOD73_021D769C + + thumb_func_start MOD73_021D7830 +MOD73_021D7830: ; 0x021D7830 + push {r4, lr} + ldr r0, _021D7854 ; =0x00001424 + add r4, r1, #0 + ldr r0, [r4, r0] + bl MOD73_021D910C + cmp r0, #0 + bne _021D784E + ldr r3, _021D7854 ; =0x00001424 + mov r1, #0 + ldr r3, [r4, r3] + mov r0, #0x16 + add r2, r1, #0 + bl MOD73_021D90D0 +_021D784E: + ldr r0, [r4, #0xc] + add r0, r0, #1 + pop {r4, pc} + .align 2, 0 +_021D7854: .word 0x00001424 + thumb_func_end MOD73_021D7830 + + thumb_func_start MOD73_021D7858 +MOD73_021D7858: ; 0x021D7858 + ldr r0, [r1, #0xc] + bx lr + thumb_func_end MOD73_021D7858 + + thumb_func_start MOD73_021D785C +MOD73_021D785C: ; 0x021D785C + push {r3, r4, r5, lr} + add r4, r2, #0 + add r5, r1, #0 + ldr r1, [r4] + cmp r1, #0 + beq _021D786E + cmp r1, #1 + beq _021D7884 + b _021D78AA +_021D786E: + ldr r1, _021D78B0 ; =0x00001420 + mov r0, #0xd7 + lsl r0, r0, #2 + ldr r1, [r5, r1] + add r0, r5, r0 + bl MOD73_021D96B0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D78AA +_021D7884: + ldr r1, [r0, #8] + ldr r0, _021D78B4 ; =0x0000142C + str r1, [r5, r0] + bl MOD73_021D9088 + ldr r3, _021D78B4 ; =0x0000142C + add r2, r0, #0 + add r1, r5, r3 + sub r3, #8 + ldr r3, [r5, r3] + mov r0, #0x19 + bl MOD73_021D90D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + ldr r0, [r5, #0xc] + add r0, r0, #1 + pop {r3, r4, r5, pc} +_021D78AA: + ldr r0, [r5, #0xc] + pop {r3, r4, r5, pc} + nop +_021D78B0: .word 0x00001420 +_021D78B4: .word 0x0000142C + thumb_func_end MOD73_021D785C + + thumb_func_start MOD73_021D78B8 +MOD73_021D78B8: ; 0x021D78B8 + push {r3, r4, r5, r6, r7, lr} + add r5, r2, #0 + ldr r0, [r5] + add r4, r1, #0 + cmp r0, #5 + bhi _021D79C4 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D78D0: ; jump table + .short _021D78DC - _021D78D0 - 2 ; case 0 + .short _021D78F0 - _021D78D0 - 2 ; case 1 + .short _021D7902 - _021D78D0 - 2 ; case 2 + .short _021D7924 - _021D78D0 - 2 ; case 3 + .short _021D7940 - _021D78D0 - 2 ; case 4 + .short _021D7966 - _021D78D0 - 2 ; case 5 +_021D78DC: + ldr r0, _021D79C8 ; =0x00001418 + ldr r1, [r4] + ldr r2, [r4, #0x20] + add r0, r4, r0 + bl MOD73_021DB26C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D79C4 +_021D78F0: + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD73_021D97F0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D79C4 +_021D7902: + mov r0, #0xd7 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD73_021D98B8 + cmp r0, #1 + bne _021D79C4 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + ldr r0, _021D79CC ; =0x0000054C + add r0, r4, r0 + bl MOD73_021D9AB4 + mov r0, #0x18 + str r0, [r4, #0x1c] + b _021D79C4 +_021D7924: + ldr r0, [r4, #0x1c] + cmp r0, #0 + ble _021D7930 + sub r0, r0, #1 + str r0, [r4, #0x1c] + b _021D79C4 +_021D7930: + ldr r0, _021D79D0 ; =0x00000598 + add r0, r4, r0 + bl MOD73_021D9E3C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D79C4 +_021D7940: + ldr r0, _021D79D0 ; =0x00000598 + add r0, r4, r0 + bl MOD73_021D9E6C + cmp r0, #0 + beq _021D79C4 + ldr r0, _021D79CC ; =0x0000054C + add r0, r4, r0 + bl MOD73_021D9AF0 + mov r0, #0x16 + lsl r0, r0, #6 + add r0, r4, r0 + bl MOD73_021D9E24 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D79C4 +_021D7966: + mov r0, #0x16 + lsl r0, r0, #6 + add r0, r4, r0 + bl MOD73_021D9E6C + add r6, r0, #0 + ldr r0, _021D79D4 ; =0x00000588 + ldr r0, [r4, r0] + bl FUN_0202022C + add r7, r0, #0 + add r0, r7, #1 + mov r1, #3 + bl _s32_div_f + add r5, r0, #0 + mov r0, #0xd6 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, r5 + beq _021D79A8 + cmp r7, #0xa + bge _021D799C + ldr r0, _021D79D8 ; =0x000006BD + bl FUN_020054C8 + b _021D79A2 +_021D799C: + ldr r0, _021D79DC ; =0x000006BE + bl FUN_020054C8 +_021D79A2: + mov r0, #0xd6 + lsl r0, r0, #2 + str r5, [r4, r0] +_021D79A8: + cmp r6, #0 + beq _021D79C4 + ldr r0, _021D79E0 ; =0x0000061C + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DA1D8 + ldr r0, _021D79E4 ; =0x000005A4 + add r0, r4, r0 + bl MOD73_021DA03C + ldr r0, [r4, #0xc] + add r0, r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D79C4: + ldr r0, [r4, #0xc] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D79C8: .word 0x00001418 +_021D79CC: .word 0x0000054C +_021D79D0: .word 0x00000598 +_021D79D4: .word 0x00000588 +_021D79D8: .word 0x000006BD +_021D79DC: .word 0x000006BE +_021D79E0: .word 0x0000061C +_021D79E4: .word 0x000005A4 + thumb_func_end MOD73_021D78B8 + + thumb_func_start MOD73_021D79E8 +MOD73_021D79E8: ; 0x021D79E8 + push {r4, lr} + mov r0, #0x2d + add r4, r1, #0 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD73_021DB318 + ldr r0, _021D7A98 ; =0x00001430 + mov r1, #0x2d + lsl r1, r1, #4 + add r0, r4, r0 + add r1, r4, r1 + bl MOD73_021DB368 + ldr r0, _021D7A9C ; =0x00001424 + ldr r0, [r4, r0] + bl MOD73_021D910C + cmp r0, #0 + bne _021D7A5C + ldr r2, _021D7AA0 ; =0x0000142C + mov r0, #0xba + add r1, r4, r2 + sub r2, #0xc + lsl r0, r0, #2 + ldr r2, [r4, r2] + add r0, r4, r0 + bl MOD73_021DB8AC + cmp r0, #1 + bne _021D7A40 + ldr r3, _021D7A9C ; =0x00001424 + mov r1, #0 + ldr r3, [r4, r3] + mov r0, #0x17 + add r2, r1, #0 + bl MOD73_021D90D0 + cmp r0, #0 + bne _021D7A3C + bl ErrorHandling +_021D7A3C: + ldr r0, [r4, #0xc] + pop {r4, pc} +_021D7A40: + mov r0, #0xba + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD73_021DB9F0 + ldr r2, _021D7AA0 ; =0x0000142C + mov r0, #0xba + add r1, r4, r2 + sub r2, #0xc + lsl r0, r0, #2 + ldr r2, [r4, r2] + add r0, r4, r0 + bl MOD73_021DB924 +_021D7A5C: + bl MOD73_021D908C + ldr r3, _021D7A98 ; =0x00001430 + add r2, r0, #0 + add r1, r4, r3 + sub r3, #0xc + ldr r3, [r4, r3] + mov r0, #0x1a + bl MOD73_021D90D0 + add r0, r4, #0 + bl MOD73_021D810C + mov r0, #0x67 + ldr r1, _021D7AA0 ; =0x0000142C + lsl r0, r0, #4 + add r0, r4, r0 + add r1, r4, r1 + bl MOD73_021DA884 + ldr r0, _021D7AA4 ; =0x00000A84 + add r0, r4, r0 + bl MOD73_021DAE54 + ldr r0, _021D7AA8 ; =0x00000B04 + add r0, r4, r0 + bl MOD73_021DB008 + ldr r0, [r4, #0xc] + pop {r4, pc} + .align 2, 0 +_021D7A98: .word 0x00001430 +_021D7A9C: .word 0x00001424 +_021D7AA0: .word 0x0000142C +_021D7AA4: .word 0x00000A84 +_021D7AA8: .word 0x00000B04 + thumb_func_end MOD73_021D79E8 + + thumb_func_start MOD73_021D7AAC +MOD73_021D7AAC: ; 0x021D7AAC + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r6, r0, #0 + add r4, r1, #0 + mov r0, #0x67 + ldr r1, _021D7C68 ; =0x0000142C + lsl r0, r0, #4 + add r5, r2, #0 + add r0, r4, r0 + add r1, r4, r1 + bl MOD73_021DA884 + ldr r0, [r5] + cmp r0, #4 + bls _021D7ACC + b _021D7C5C +_021D7ACC: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7AD8: ; jump table + .short _021D7AE2 - _021D7AD8 - 2 ; case 0 + .short _021D7B6C - _021D7AD8 - 2 ; case 1 + .short _021D7B98 - _021D7AD8 - 2 ; case 2 + .short _021D7BA8 - _021D7AD8 - 2 ; case 3 + .short _021D7C1A - _021D7AD8 - 2 ; case 4 +_021D7AE2: + ldr r0, _021D7C6C ; =0x0000063C + add r0, r4, r0 + bl MOD73_021DA4AC + ldr r0, _021D7C70 ; =0x00000A84 + mov r1, #0 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D7C70 ; =0x00000A84 + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D7C70 ; =0x00000A84 + mov r1, #2 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D7C70 ; =0x00000A84 + mov r1, #3 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D7C74 ; =0x0000058C + add r0, r4, r0 + bl MOD73_021D9E24 + ldr r0, _021D7C78 ; =0x000006BA + mov r1, #0 + bl FUN_020054F0 + ldr r0, _021D7C7C ; =0x000006BB + mov r1, #0 + bl FUN_020054F0 + ldr r0, _021D7C80 ; =0x000006BF + mov r1, #0 + bl FUN_020054F0 + ldr r0, _021D7C84 ; =0x000006C1 + mov r1, #0 + bl FUN_020054F0 + ldr r0, _021D7C88 ; =0x000006C2 + bl FUN_020054C8 + ldr r0, _021D7C8C ; =0x000005A4 + mov r1, #0 + add r0, r4, r0 + add r2, r1, #0 + bl MOD73_021D9FC0 + ldr r0, _021D7C8C ; =0x000005A4 + mov r1, #1 + add r0, r4, r0 + mov r2, #0 + bl MOD73_021D9FC0 + ldr r0, _021D7C8C ; =0x000005A4 + mov r1, #2 + add r0, r4, r0 + mov r2, #0 + bl MOD73_021D9FC0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7C60 +_021D7B6C: + ldr r0, _021D7C74 ; =0x0000058C + add r0, r4, r0 + bl MOD73_021D9E6C + cmp r0, #0 + beq _021D7C60 + mov r0, #6 + str r0, [sp] + mov r0, #1 + mov r1, #0 + str r0, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + mov r0, #3 + add r3, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7C60 +_021D7B98: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7C60 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7C60 +_021D7BA8: + ldr r0, [r6, #0x10] + ldr r0, [r0, #0xc] + bl FUN_02029FC8 + ldr r1, _021D7C90 ; =0x00001428 + ldr r1, [r4, r1] + cmp r1, #0 + bne _021D7BC0 + mov r1, #0xc + bl FUN_0202A170 + b _021D7BC6 +_021D7BC0: + mov r1, #0x12 + bl FUN_0202A170 +_021D7BC6: + ldr r0, _021D7C94 ; =0x00001424 + ldr r0, [r4, r0] + bl MOD73_021D910C + cmp r0, #0 + bne _021D7C12 + ldr r0, [r4] + bl FUN_02027E5C + add r6, r0, #0 + ldr r0, [r4] + ldr r3, _021D7C68 ; =0x0000142C + str r0, [sp] + mov r0, #0xba + add r2, r4, r3 + sub r3, #0xc + lsl r0, r0, #2 + ldr r3, [r4, r3] + add r0, r4, r0 + add r1, r6, #0 + bl MOD73_021DBA24 + bl FUN_02027E30 + ldr r3, _021D7C94 ; =0x00001424 + add r2, r0, #0 + ldr r3, [r4, r3] + mov r0, #0x1c + add r1, r6, #0 + bl MOD73_021D90D0 + cmp r0, #0 + bne _021D7C0C + bl ErrorHandling +_021D7C0C: + add r0, r6, #0 + bl FUN_02016A18 +_021D7C12: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7C60 +_021D7C1A: + ldr r0, _021D7C94 ; =0x00001424 + ldr r0, [r4, r0] + bl MOD73_021D910C + cmp r0, #0 + bne _021D7C54 + ldr r2, _021D7C68 ; =0x0000142C + mov r0, #0xba + add r1, r4, r2 + sub r2, #0xc + lsl r0, r0, #2 + ldr r2, [r4, r2] + add r0, r4, r0 + bl MOD73_021DBBFC + bl MOD73_021D9090 + ldr r3, _021D7C98 ; =0x0000144C + add r2, r0, #0 + add r1, r4, r3 + sub r3, #0x28 + ldr r3, [r4, r3] + mov r0, #0x1b + bl MOD73_021D90D0 + cmp r0, #0 + bne _021D7C54 + bl ErrorHandling +_021D7C54: + ldr r0, [r4, #0xc] + add sp, #0xc + add r0, r0, #1 + pop {r3, r4, r5, r6, pc} +_021D7C5C: + bl ErrorHandling +_021D7C60: + ldr r0, [r4, #0xc] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021D7C68: .word 0x0000142C +_021D7C6C: .word 0x0000063C +_021D7C70: .word 0x00000A84 +_021D7C74: .word 0x0000058C +_021D7C78: .word 0x000006BA +_021D7C7C: .word 0x000006BB +_021D7C80: .word 0x000006BF +_021D7C84: .word 0x000006C1 +_021D7C88: .word 0x000006C2 +_021D7C8C: .word 0x000005A4 +_021D7C90: .word 0x00001428 +_021D7C94: .word 0x00001424 +_021D7C98: .word 0x0000144C + thumb_func_end MOD73_021D7AAC + + thumb_func_start MOD73_021D7C9C +MOD73_021D7C9C: ; 0x021D7C9C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r2, #0 + add r6, r0, #0 + ldr r0, [r5] + add r4, r1, #0 + cmp r0, #0xb + bls _021D7CAE + b _021D7F3A +_021D7CAE: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7CBA: ; jump table + .short _021D7CD2 - _021D7CBA - 2 ; case 0 + .short _021D7D2E - _021D7CBA - 2 ; case 1 + .short _021D7D42 - _021D7CBA - 2 ; case 2 + .short _021D7D66 - _021D7CBA - 2 ; case 3 + .short _021D7D94 - _021D7CBA - 2 ; case 4 + .short _021D7DC0 - _021D7CBA - 2 ; case 5 + .short _021D7DF4 - _021D7CBA - 2 ; case 6 + .short _021D7E1C - _021D7CBA - 2 ; case 7 + .short _021D7E36 - _021D7CBA - 2 ; case 8 + .short _021D7EA8 - _021D7CBA - 2 ; case 9 + .short _021D7ED6 - _021D7CBA - 2 ; case 10 + .short _021D7F0C - _021D7CBA - 2 ; case 11 +_021D7CD2: + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #0 + add r0, r4, r0 + bl MOD73_021DA730 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0xae + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, [r4] + ldr r3, _021D7F48 ; =0x00001410 + str r0, [sp] + add r0, r4, r3 + add r3, #0x80 + ldrb r3, [r4, r3] + mov r1, #0x80 + mov r2, #0x90 + bl MOD73_021DB20C + mov r0, #6 + mov r2, #0 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r0, [r4] + add r3, r2, #0 + str r0, [sp, #8] + mov r0, #3 + bl FUN_0200E1D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7F3E +_021D7D2E: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7E12 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + mov r0, #0x1e + str r0, [r4, #0x1c] + b _021D7F3E +_021D7D42: + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + bpl _021D7E12 + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DA730 + ldr r0, _021D7F4C ; =0x000006C3 + bl FUN_020054C8 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + mov r0, #0x1e + str r0, [r4, #0x1c] + b _021D7F3E +_021D7D66: + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + bpl _021D7E12 + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #2 + add r0, r4, r0 + bl MOD73_021DA730 + ldr r0, _021D7F48 ; =0x00001410 + add r0, r4, r0 + bl MOD73_021DB260 + ldr r0, _021D7F4C ; =0x000006C3 + bl FUN_020054C8 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + mov r0, #0x96 + lsl r0, r0, #2 + str r0, [r4, #0x1c] + b _021D7F3E +_021D7D94: + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + bmi _021D7DAE + ldr r0, _021D7F50 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + bne _021D7DAE + ldr r0, _021D7F54 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _021D7DB6 +_021D7DAE: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7F3E +_021D7DB6: + ldr r0, _021D7F48 ; =0x00001410 + add r0, r4, r0 + bl MOD73_021DB260 + b _021D7F3E +_021D7DC0: + ldr r0, _021D7F48 ; =0x00001410 + add r0, r4, r0 + bl MOD73_021DB24C + ldr r0, _021D7F44 ; =0x0000063C + add r0, r4, r0 + bl MOD73_021DA754 + ldr r1, _021D7F58 ; =0x0000152C + ldr r2, _021D7F5C ; =0x00001420 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + add r0, r6, #0 + bl MOD73_021D8590 + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #0 + add r0, r4, r0 + bl MOD73_021DA770 + mov r0, #0x96 + str r0, [r4, #0x1c] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7F3E +_021D7DF4: + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + ldr r0, _021D7F50 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + bne _021D7E14 + ldr r0, [r4, #0x1c] + cmp r0, #0 + blt _021D7E14 + ldr r0, _021D7F54 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021D7E14 +_021D7E12: + b _021D7F3E +_021D7E14: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7F3E +_021D7E1C: + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DA770 + ldr r0, _021D7F60 ; =0x00001418 + add r0, r4, r0 + bl MOD73_021DB28C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7F3E +_021D7E36: + ldr r0, _021D7F60 ; =0x00001418 + add r0, r4, r0 + bl MOD73_021DB2B8 + sub r1, r0, #1 + cmp r1, #1 + bhi _021D7F3E + cmp r0, #1 + bne _021D7E90 + ldr r0, [r6, #0x10] + ldr r0, [r0, #8] + bl FUN_020281B8 + cmp r0, #0x64 + blo _021D7E68 + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #2 + add r0, r4, r0 + bl MOD73_021DA770 + mov r0, #0xa + str r0, [r5] + mov r0, #0x96 + str r0, [r4, #0x1c] + b _021D7F3E +_021D7E68: + ldr r0, [r6, #0x10] + mov r1, #4 + ldr r0, [r0, #0x14] + bl FUN_0206EE64 + cmp r0, #0 + bne _021D7E8A + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #5 + add r0, r4, r0 + bl MOD73_021DA770 + mov r0, #0xa + str r0, [r5] + mov r0, #0x96 + str r0, [r4, #0x1c] + b _021D7F3E +_021D7E8A: + mov r0, #9 + str r0, [r5] + b _021D7E94 +_021D7E90: + mov r0, #0xb + str r0, [r5] +_021D7E94: + ldr r0, _021D7F5C ; =0x00001420 + ldr r0, [r4, r0] + cmp r0, #1 + ble _021D7F3E + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #6 + add r0, r4, r0 + bl MOD73_021DA770 + b _021D7F3E +_021D7EA8: + mov r0, #0x35 + mov r1, #1 + lsl r0, r0, #4 + str r1, [r4, r0] + bl MOD73_021D9080 + ldr r3, _021D7F64 ; =0x00001424 + mov r1, #0x35 + lsl r1, r1, #4 + add r2, r0, #0 + ldr r3, [r4, r3] + mov r0, #0x1e + add r1, r4, r1 + bl MOD73_021D90D0 + cmp r0, #0 + bne _021D7ECE + bl ErrorHandling +_021D7ECE: + ldr r0, [r4, #0xc] + add sp, #0xc + add r0, r0, #1 + pop {r3, r4, r5, r6, pc} +_021D7ED6: + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + ldr r0, _021D7F50 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + bne _021D7EF4 + ldr r0, [r4, #0x1c] + cmp r0, #0 + blt _021D7EF4 + ldr r0, _021D7F54 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _021D7F3E +_021D7EF4: + ldr r0, _021D7F5C ; =0x00001420 + ldr r0, [r4, r0] + cmp r0, #1 + ble _021D7F06 + ldr r0, _021D7F44 ; =0x0000063C + mov r1, #6 + add r0, r4, r0 + bl MOD73_021DA770 +_021D7F06: + mov r0, #0xb + str r0, [r5] + b _021D7F3E +_021D7F0C: + mov r0, #0x35 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r4, r0] + bl MOD73_021D9080 + ldr r3, _021D7F64 ; =0x00001424 + mov r1, #0x35 + lsl r1, r1, #4 + add r2, r0, #0 + ldr r3, [r4, r3] + mov r0, #0x1e + add r1, r4, r1 + bl MOD73_021D90D0 + cmp r0, #0 + bne _021D7F32 + bl ErrorHandling +_021D7F32: + ldr r0, [r4, #0xc] + add sp, #0xc + add r0, r0, #1 + pop {r3, r4, r5, r6, pc} +_021D7F3A: + bl ErrorHandling +_021D7F3E: + ldr r0, [r4, #0xc] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D7F44: .word 0x0000063C +_021D7F48: .word 0x00001410 +_021D7F4C: .word 0x000006C3 +_021D7F50: .word 0x021C48F8 +_021D7F54: .word 0x021C48B8 +_021D7F58: .word 0x0000152C +_021D7F5C: .word 0x00001420 +_021D7F60: .word 0x00001418 +_021D7F64: .word 0x00001424 + thumb_func_end MOD73_021D7C9C + + thumb_func_start MOD73_021D7F68 +MOD73_021D7F68: ; 0x021D7F68 + ldr r3, _021D7F70 ; =MOD73_021D8810 + add r0, r1, #0 + add r1, r2, #0 + bx r3 + .align 2, 0 +_021D7F70: .word MOD73_021D8810 + thumb_func_end MOD73_021D7F68 + + thumb_func_start MOD73_021D7F74 +MOD73_021D7F74: ; 0x021D7F74 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r2, #0 + add r6, r0, #0 + ldr r0, [r5] + add r4, r1, #0 + cmp r0, #4 + bhi _021D8056 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7F90: ; jump table + .short _021D7F9A - _021D7F90 - 2 ; case 0 + .short _021D8000 - _021D7F90 - 2 ; case 1 + .short _021D8010 - _021D7F90 - 2 ; case 2 + .short _021D8030 - _021D7F90 - 2 ; case 3 + .short _021D8040 - _021D7F90 - 2 ; case 4 +_021D7F9A: + ldr r0, _021D805C ; =0x00001571 + ldrb r0, [r4, r0] + cmp r0, #1 + bne _021D7FB2 + ldr r0, _021D8060 ; =0x0000063C + mov r1, #3 + add r0, r4, r0 + bl MOD73_021DA770 + mov r0, #1 + str r0, [r6, #0x20] + b _021D7FF4 +_021D7FB2: + mov r0, #0 + str r0, [r6, #0x20] + mov r0, #0x35 + lsl r0, r0, #4 + ldr r0, [r4, r0] + cmp r0, #1 + bne _021D7FCC + ldr r0, _021D8060 ; =0x0000063C + mov r1, #4 + add r0, r4, r0 + bl MOD73_021DA770 + b _021D7FDA +_021D7FCC: + ldr r0, _021D8064 ; =0x00001420 + ldr r0, [r4, r0] + cmp r0, #1 + bgt _021D7FDA + mov r0, #2 + str r0, [r5] + b _021D8056 +_021D7FDA: + ldr r0, _021D8068 ; =0x00001428 + ldr r0, [r4, r0] + cmp r0, #1 + bne _021D7FF4 + ldr r0, [r4] + bl FUN_02029520 + add r1, r0, #0 + ldr r0, [r6, #0x10] + mov r2, #4 + ldr r0, [r0, #0x1c] + bl FUN_02028AD4 +_021D7FF4: + mov r0, #0x3c + str r0, [r4, #0x1c] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D8056 +_021D8000: + ldr r0, [r4, #0x1c] + sub r0, r0, #1 + str r0, [r4, #0x1c] + bpl _021D8056 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D8056 +_021D8010: + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D8056 +_021D8030: + bl FUN_0200E308 + cmp r0, #0 + beq _021D8056 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D8056 +_021D8040: + add r0, r4, #0 + add r1, r5, #0 + bl MOD73_021D8840 + add r0, r4, #0 + bl MOD73_021D875C + ldr r0, [r4, #0xc] + add sp, #0xc + add r0, r0, #1 + pop {r3, r4, r5, r6, pc} +_021D8056: + ldr r0, [r4, #0xc] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D805C: .word 0x00001571 +_021D8060: .word 0x0000063C +_021D8064: .word 0x00001420 +_021D8068: .word 0x00001428 + thumb_func_end MOD73_021D7F74 + + thumb_func_start MOD73_021D806C +MOD73_021D806C: ; 0x021D806C + push {r4, lr} + mov r0, #0xd7 + add r4, r1, #0 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD73_021D96C8 + ldr r0, _021D80E8 ; =0x0000054C + add r0, r4, r0 + bl MOD73_021D9A4C + mov r0, #0x16 + lsl r0, r0, #6 + add r0, r4, r0 + bl MOD73_021D9DA0 + ldr r0, _021D80EC ; =0x0000058C + add r0, r4, r0 + bl MOD73_021D9DA0 + ldr r0, _021D80F0 ; =0x00000598 + add r0, r4, r0 + bl MOD73_021D9DA0 + ldr r0, _021D80F4 ; =0x000005A4 + add r0, r4, r0 + bl MOD73_021D9E8C + ldr r0, _021D80F8 ; =0x0000061C + add r0, r4, r0 + bl MOD73_021DA0FC + ldr r0, _021D80FC ; =0x0000063C + add r0, r4, r0 + bl MOD73_021DA234 + mov r0, #0x67 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD73_021DA82C + ldr r0, _021D8100 ; =0x00000A84 + add r0, r4, r0 + bl MOD73_021DAD84 + ldr r0, _021D8104 ; =0x00000B04 + add r0, r4, r0 + bl MOD73_021DAF88 + ldr r0, _021D8108 ; =0x00001418 + add r0, r4, r0 + bl MOD73_021DB280 + add r0, r4, #0 + bl MOD73_021D856C + add r0, r4, #0 + bl MOD73_021D7694 + ldr r0, [r4, #0xc] + pop {r4, pc} + nop +_021D80E8: .word 0x0000054C +_021D80EC: .word 0x0000058C +_021D80F0: .word 0x00000598 +_021D80F4: .word 0x000005A4 +_021D80F8: .word 0x0000061C +_021D80FC: .word 0x0000063C +_021D8100: .word 0x00000A84 +_021D8104: .word 0x00000B04 +_021D8108: .word 0x00001418 + thumb_func_end MOD73_021D806C + + thumb_func_start MOD73_021D810C +MOD73_021D810C: ; 0x021D810C + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D8170 ; =0x000014C4 + add r4, r5, r0 + ldr r0, _021D8174 ; =0x000005A4 + ldrh r1, [r4, #8] + add r0, r5, r0 + bl MOD73_021D9FE0 + add r0, r5, #0 + bl MOD73_021D85E4 + ldrh r0, [r4, #0xa] + ldrb r1, [r4, #0xd] + bl MOD73_021DB644 + add r1, r0, #0 + ldr r0, _021D8174 ; =0x000005A4 + add r0, r5, r0 + bl MOD73_021D9FFC + ldr r0, _021D8174 ; =0x000005A4 + ldrb r1, [r4, #0xd] + add r0, r5, r0 + bl MOD73_021DA058 + ldr r0, _021D8178 ; =0x0000061C + add r0, r5, r0 + bl MOD73_021DA194 + add r0, r5, #0 + bl MOD73_021D817C + add r0, r5, #0 + bl MOD73_021D8458 + add r0, r5, #0 + bl MOD73_021D8254 + add r0, r5, #0 + bl MOD73_021D82FC + add r0, r5, #0 + bl MOD73_021D83D0 + add r0, r5, #0 + bl MOD73_021D84FC + pop {r3, r4, r5, pc} + nop +_021D8170: .word 0x000014C4 +_021D8174: .word 0x000005A4 +_021D8178: .word 0x0000061C + thumb_func_end MOD73_021D810C + + thumb_func_start MOD73_021D817C +MOD73_021D817C: ; 0x021D817C + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _021D8230 ; =0x000014C4 + mov r2, #7 + add r4, r5, r0 + ldrb r3, [r4, #0xd] + ldr r0, _021D8234 ; =0x000005A4 + mov r1, #5 + add r6, r3, #0 + mul r6, r2 + ldr r2, _021D8238 ; =0x021DBC84 + add r0, r5, r0 + ldrb r2, [r2, r6] + bl MOD73_021D9FC0 + ldrb r3, [r4, #0xd] + ldr r0, _021D8234 ; =0x000005A4 + mov r2, #7 + add r6, r3, #0 + mul r6, r2 + ldr r2, _021D823C ; =0x021DBC85 + add r0, r5, r0 + ldrb r2, [r2, r6] + mov r1, #6 + bl MOD73_021D9FC0 + ldrb r2, [r4, #0xd] + ldr r0, _021D8234 ; =0x000005A4 + mov r1, #7 + add r3, r2, #0 + ldr r2, _021D8240 ; =0x021DBC86 + mul r3, r1 + ldrb r2, [r2, r3] + add r0, r5, r0 + bl MOD73_021D9FC0 + ldrb r3, [r4, #0xd] + ldr r0, _021D8234 ; =0x000005A4 + mov r2, #7 + add r6, r3, #0 + mul r6, r2 + ldr r2, _021D8244 ; =0x021DBC87 + add r0, r5, r0 + ldrb r2, [r2, r6] + mov r1, #0 + bl MOD73_021D9FC0 + ldrb r3, [r4, #0xd] + ldr r0, _021D8234 ; =0x000005A4 + mov r2, #7 + add r6, r3, #0 + mul r6, r2 + ldr r2, _021D8248 ; =0x021DBC88 + add r0, r5, r0 + ldrb r2, [r2, r6] + mov r1, #1 + bl MOD73_021D9FC0 + ldrb r3, [r4, #0xd] + ldr r0, _021D8234 ; =0x000005A4 + mov r2, #7 + add r6, r3, #0 + mul r6, r2 + ldr r2, _021D824C ; =0x021DBC89 + add r0, r5, r0 + ldrb r2, [r2, r6] + mov r1, #2 + bl MOD73_021D9FC0 + ldrb r1, [r4, #0xd] + mov r0, #7 + add r2, r1, #0 + mul r2, r0 + ldr r0, _021D8250 ; =0x021DBC8A + ldrb r1, [r0, r2] + cmp r1, #8 + beq _021D822E + ldrb r2, [r4, #0x10] + ldr r0, _021D8234 ; =0x000005A4 + cmp r2, #0 + beq _021D8226 + add r0, r5, r0 + bl MOD73_021DA01C + pop {r4, r5, r6, pc} +_021D8226: + add r0, r5, r0 + mov r2, #0 + bl MOD73_021D9FC0 +_021D822E: + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8230: .word 0x000014C4 +_021D8234: .word 0x000005A4 +_021D8238: .word 0x021DBC84 +_021D823C: .word 0x021DBC85 +_021D8240: .word 0x021DBC86 +_021D8244: .word 0x021DBC87 +_021D8248: .word 0x021DBC88 +_021D824C: .word 0x021DBC89 +_021D8250: .word 0x021DBC8A + thumb_func_end MOD73_021D817C + + thumb_func_start MOD73_021D8254 +MOD73_021D8254: ; 0x021D8254 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D82F0 ; =0x000014C4 + add r1, r4, r0 + ldrb r2, [r1, #0x11] + ldrb r0, [r1, #0xc] + cmp r2, r0 + beq _021D8274 + ldrh r0, [r1, #0xa] + cmp r0, #0 + beq _021D8274 + mov r0, #0xb + lsl r0, r0, #6 + ldr r1, [r4, r0] + cmp r1, #0 + beq _021D8292 +_021D8274: + ldr r0, _021D82F4 ; =0x00000A84 + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D82F4 ; =0x00000A84 + mov r1, #3 + add r0, r4, r0 + bl MOD73_021DAEAC + mov r0, #0xb1 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + pop {r4, pc} +_021D8292: + cmp r2, #0 + bne _021D82C2 + add r0, r0, #4 + ldr r0, [r4, r0] + cmp r0, #1 + beq _021D82EC + ldr r0, _021D82F4 ; =0x00000A84 + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DAE7C + mov r0, #0xb1 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, _021D82F4 ; =0x00000A84 + mov r1, #3 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D82F8 ; =0x000006C1 + bl FUN_020054C8 + pop {r4, pc} +_021D82C2: + add r0, r0, #4 + ldr r0, [r4, r0] + cmp r0, #2 + beq _021D82EC + ldr r0, _021D82F4 ; =0x00000A84 + mov r1, #3 + add r0, r4, r0 + bl MOD73_021DAE7C + mov r0, #0xb1 + mov r1, #2 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, _021D82F4 ; =0x00000A84 + mov r1, #1 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D82F8 ; =0x000006C1 + bl FUN_020054C8 +_021D82EC: + pop {r4, pc} + nop +_021D82F0: .word 0x000014C4 +_021D82F4: .word 0x00000A84 +_021D82F8: .word 0x000006C1 + thumb_func_end MOD73_021D8254 + + thumb_func_start MOD73_021D82FC +MOD73_021D82FC: ; 0x021D82FC + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D83C0 ; =0x000014C4 + mov r1, #0xb1 + lsl r1, r1, #2 + add r4, r5, r0 + ldr r0, [r5, r1] + cmp r0, #0 + bne _021D8316 + sub r0, r1, #4 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D832C +_021D8316: + ldr r0, _021D83C4 ; =0x0000063C + add r0, r5, r0 + bl MOD73_021DA4AC + mov r0, #0xb3 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + sub r0, r0, #4 + str r1, [r5, r0] + pop {r3, r4, r5, pc} +_021D832C: + add r1, #8 + ldr r0, [r5, r1] + cmp r0, #0 + bne _021D8360 + ldrb r0, [r4, #0x13] + cmp r0, #0 + beq _021D8374 + ldr r0, _021D83C4 ; =0x0000063C + add r0, r5, r0 + bl MOD73_021DA4AC + ldr r0, _021D83C4 ; =0x0000063C + ldrb r2, [r4, #0xd] + ldr r1, _021D83C8 ; =0x021DBC58 + add r0, r5, r0 + ldrb r1, [r1, r2] + bl MOD73_021DA434 + mov r0, #0xb3 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0 + sub r0, r0, #4 + str r1, [r5, r0] + b _021D8374 +_021D8360: + ldr r0, _021D83C4 ; =0x0000063C + add r0, r5, r0 + bl MOD73_021DA49C + cmp r0, #0 + beq _021D8374 + mov r0, #0xb3 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] +_021D8374: + mov r0, #0xb2 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0 + bne _021D83AA + ldrb r0, [r4, #0x12] + cmp r0, #0 + beq _021D83BE + ldr r0, _021D83C4 ; =0x0000063C + add r0, r5, r0 + bl MOD73_021DA4AC + ldr r0, _021D83C4 ; =0x0000063C + ldrb r2, [r4, #0xd] + ldr r1, _021D83CC ; =0x021DBC5C + add r0, r5, r0 + ldrb r1, [r1, r2] + bl MOD73_021DA434 + mov r0, #0xb2 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0 + add r0, r0, #4 + str r1, [r5, r0] + pop {r3, r4, r5, pc} +_021D83AA: + ldr r0, _021D83C4 ; =0x0000063C + add r0, r5, r0 + bl MOD73_021DA49C + cmp r0, #0 + beq _021D83BE + mov r0, #0xb2 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] +_021D83BE: + pop {r3, r4, r5, pc} + .align 2, 0 +_021D83C0: .word 0x000014C4 +_021D83C4: .word 0x0000063C +_021D83C8: .word 0x021DBC58 +_021D83CC: .word 0x021DBC5C + thumb_func_end MOD73_021D82FC + + thumb_func_start MOD73_021D83D0 +MOD73_021D83D0: ; 0x021D83D0 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D844C ; =0x000014C4 + add r4, r5, r0 + ldrb r0, [r4, #0x13] + cmp r0, #0 + beq _021D83FC + mov r0, #0x67 + lsl r0, r0, #4 + ldrb r1, [r4, #0xd] + add r0, r5, r0 + mov r2, #2 + bl MOD73_021DA8BC + ldrb r0, [r4, #0xd] + lsl r1, r0, #2 + ldr r0, _021D8450 ; =0x021DBC60 + ldr r0, [r0, r1] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_020054C8 +_021D83FC: + ldrb r0, [r4, #0x12] + cmp r0, #1 + bne _021D8422 + mov r0, #0x67 + lsl r0, r0, #4 + ldrb r1, [r4, #0xd] + add r0, r5, r0 + mov r2, #1 + bl MOD73_021DA8BC + ldrb r0, [r4, #0xd] + lsl r1, r0, #2 + ldr r0, _021D8454 ; =0x021DBC6C + ldr r0, [r0, r1] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_020054C8 + b _021D8434 +_021D8422: + cmp r0, #2 + bne _021D8434 + mov r0, #0x67 + lsl r0, r0, #4 + ldrb r1, [r4, #0xd] + add r0, r5, r0 + mov r2, #0 + bl MOD73_021DA8BC +_021D8434: + ldrh r0, [r4, #0xa] + ldrb r1, [r4, #0xd] + bl MOD73_021DB62C + cmp r0, #0 + bne _021D844A + mov r0, #0x67 + lsl r0, r0, #4 + add r0, r5, r0 + bl MOD73_021DAAA8 +_021D844A: + pop {r3, r4, r5, pc} + .align 2, 0 +_021D844C: .word 0x000014C4 +_021D8450: .word 0x021DBC60 +_021D8454: .word 0x021DBC6C + thumb_func_end MOD73_021D83D0 + + thumb_func_start MOD73_021D8458 +MOD73_021D8458: ; 0x021D8458 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D84F0 ; =0x000014C4 + add r1, r4, r0 + ldrb r0, [r1, #0xe] + cmp r0, #0 + beq _021D84B0 + ldrb r0, [r1, #0x11] + cmp r0, #0 + ldr r0, _021D84F4 ; =0x00000A84 + bne _021D8490 + add r0, r4, r0 + mov r1, #0 + bl MOD73_021DAE7C + ldr r0, _021D84F4 ; =0x00000A84 + mov r1, #2 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D84F8 ; =0x000006C1 + bl FUN_020054C8 + mov r0, #0xb + mov r1, #1 + lsl r0, r0, #6 + str r1, [r4, r0] + b _021D84B0 +_021D8490: + add r0, r4, r0 + mov r1, #2 + bl MOD73_021DAE7C + ldr r0, _021D84F4 ; =0x00000A84 + mov r1, #0 + add r0, r4, r0 + bl MOD73_021DAEAC + ldr r0, _021D84F8 ; =0x000006C1 + bl FUN_020054C8 + mov r0, #0xb + mov r1, #2 + lsl r0, r0, #6 + str r1, [r4, r0] +_021D84B0: + mov r0, #0xb + lsl r0, r0, #6 + ldr r0, [r4, r0] + cmp r0, #1 + bne _021D84D2 + ldr r0, _021D84F4 ; =0x00000A84 + mov r1, #0 + add r0, r4, r0 + bl MOD73_021DAECC + cmp r0, #1 + bne _021D84EC + mov r0, #0xb + mov r1, #0 + lsl r0, r0, #6 + str r1, [r4, r0] + pop {r4, pc} +_021D84D2: + cmp r0, #2 + bne _021D84EC + ldr r0, _021D84F4 ; =0x00000A84 + mov r1, #2 + add r0, r4, r0 + bl MOD73_021DAECC + cmp r0, #1 + bne _021D84EC + mov r0, #0xb + mov r1, #0 + lsl r0, r0, #6 + str r1, [r4, r0] +_021D84EC: + pop {r4, pc} + nop +_021D84F0: .word 0x000014C4 +_021D84F4: .word 0x00000A84 +_021D84F8: .word 0x000006C1 + thumb_func_end MOD73_021D8458 + + thumb_func_start MOD73_021D84FC +MOD73_021D84FC: ; 0x021D84FC + push {r3, lr} + ldr r3, _021D8520 ; =0x00001430 + add r2, r3, #1 + ldrb r1, [r0, r3] + add r3, #0xa3 + ldrb r3, [r0, r3] + ldrb r2, [r0, r2] + cmp r3, #1 + bne _021D851C + ldr r3, _021D8524 ; =0x00000B04 + add r0, r0, r3 + bl MOD73_021DB020 + ldr r0, _021D8528 ; =0x000006BF + bl FUN_020054C8 +_021D851C: + pop {r3, pc} + nop +_021D8520: .word 0x00001430 +_021D8524: .word 0x00000B04 +_021D8528: .word 0x000006BF + thumb_func_end MOD73_021D84FC + + thumb_func_start MOD73_021D852C +MOD73_021D852C: ; 0x021D852C + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r0, [r4] + bl FUN_02027E5C + ldr r1, _021D8560 ; =0x0000152C + str r0, [r4, r1] + ldr r0, _021D8564 ; =0x00001424 + ldr r0, [r4, r0] + bl MOD73_021D910C + ldr r1, _021D8568 ; =0x00001570 + mov r5, #0 + strb r0, [r4, r1] + add r0, r1, #0 + mov r3, #0x80 + mov r2, #0x60 + sub r0, #0xb4 + sub r1, #0xb3 +_021D8552: + strb r3, [r4, r0] + strb r2, [r4, r1] + add r5, r5, #1 + add r4, #0x1c + cmp r5, #4 + blt _021D8552 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8560: .word 0x0000152C +_021D8564: .word 0x00001424 +_021D8568: .word 0x00001570 + thumb_func_end MOD73_021D852C + + thumb_func_start MOD73_021D856C +MOD73_021D856C: ; 0x021D856C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D858C ; =0x0000152C + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D857C + bl ErrorHandling +_021D857C: + ldr r0, _021D858C ; =0x0000152C + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _021D858C ; =0x0000152C + mov r1, #0 + str r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021D858C: .word 0x0000152C + thumb_func_end MOD73_021D856C + + thumb_func_start MOD73_021D8590 +MOD73_021D8590: ; 0x021D8590 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r5, #0x10] + add r7, r1, #0 + ldr r0, [r0, #0xc] + add r6, r2, #0 + bl FUN_02022504 + mov r4, #0 + str r0, [sp] + cmp r6, #0 + ble _021D85CA +_021D85AE: + ldr r0, [r5, #0x10] + add r1, r7, #0 + ldr r0, [r0, #8] + bl FUN_02028094 + ldr r1, _021D85E0 ; =0x0000FFFF + cmp r0, r1 + bne _021D85C4 + mov r0, #0 + str r0, [sp, #4] + b _021D85CA +_021D85C4: + add r4, r4, #1 + cmp r4, r6 + blt _021D85AE +_021D85CA: + add r0, r7, #0 + mov r1, #0 + bl FUN_02027E94 + add r1, r0, #0 + ldr r0, [sp] + bl FUN_02060FAC + ldr r0, [sp, #4] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D85E0: .word 0x0000FFFF + thumb_func_end MOD73_021D8590 + + thumb_func_start MOD73_021D85E4 +MOD73_021D85E4: ; 0x021D85E4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D8628 ; =0x000014C4 + add r4, r5, r0 + ldrb r2, [r4, #0xc] + cmp r2, #0 + bne _021D85FE + mov r0, #0xd5 + lsl r0, r0, #2 + ldr r1, [r5, r0] + ldrh r0, [r4, #8] + cmp r1, r0 + bgt _021D860E +_021D85FE: + cmp r2, #1 + bne _021D861E + mov r0, #0xd5 + lsl r0, r0, #2 + ldr r1, [r5, r0] + ldrh r0, [r4, #8] + cmp r1, r0 + bge _021D861E +_021D860E: + ldrb r0, [r4, #0xd] + lsl r1, r0, #2 + ldr r0, _021D862C ; =0x021DBC78 + ldr r0, [r0, r1] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_020054C8 +_021D861E: + ldrh r1, [r4, #8] + mov r0, #0xd5 + lsl r0, r0, #2 + str r1, [r5, r0] + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8628: .word 0x000014C4 +_021D862C: .word 0x021DBC78 + thumb_func_end MOD73_021D85E4 + + thumb_func_start MOD73_021D8630 +MOD73_021D8630: ; 0x021D8630 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + bl MOD73_021D8B4C + add r0, r4, #0 + ldr r1, [r4] + add r0, #0x20 + bl MOD73_021D88E4 + add r0, r4, #0 + bl MOD73_021D8A18 + add r0, r4, #0 + bl MOD73_021D89AC + add r0, r4, #0 + bl MOD73_021D89DC + add r0, r4, #0 + bl MOD73_021D8A84 + ldr r0, _021D8738 ; =0x0000054C + ldr r1, [r4, #0x20] + ldr r2, [r4] + add r0, r4, r0 + bl MOD73_021D9A68 + ldr r0, _021D873C ; =0x0000063C + ldr r1, [r4, #0x20] + ldr r2, [r4] + add r0, r4, r0 + bl MOD73_021DA254 + mov r1, #0xaf + ldr r0, _021D8740 ; =0x000005A4 + lsl r1, r1, #2 + ldr r1, [r4, r1] + ldr r2, [r4] + add r0, r4, r0 + bl MOD73_021D9EA8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x16 + mov r2, #0x5a + lsl r0, r0, #6 + add r1, r4, #0 + lsl r2, r2, #2 + ldr r3, [r4] + add r0, r4, r0 + add r1, #0x2c + add r2, r4, r2 + bl MOD73_021D9DCC + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _021D8744 ; =0x00000598 + mov r2, #0x5a + add r1, r4, #0 + lsl r2, r2, #2 + ldr r3, [r4] + add r0, r4, r0 + add r1, #0x2c + add r2, r4, r2 + bl MOD73_021D9DCC + mov r0, #5 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _021D8748 ; =0x0000058C + mov r2, #0x5a + add r1, r4, #0 + lsl r2, r2, #2 + ldr r3, [r4] + add r0, r4, r0 + add r1, #0x2c + add r2, r4, r2 + bl MOD73_021D9DCC + ldr r0, _021D874C ; =0x0000061C + mov r2, #0x5a + add r1, r4, #0 + lsl r2, r2, #2 + ldr r3, [r4] + add r0, r4, r0 + add r1, #0x2c + add r2, r4, r2 + bl MOD73_021DA118 + mov r0, #0x67 + mov r2, #0x5a + lsl r0, r0, #4 + add r1, r4, #0 + lsl r2, r2, #2 + ldr r3, [r4] + add r0, r4, r0 + add r1, #0x2c + add r2, r4, r2 + bl MOD73_021DA84C + ldr r0, _021D8750 ; =0x00000A84 + add r1, r4, #0 + ldr r2, [r4] + add r0, r4, r0 + add r1, #0x2c + bl MOD73_021DADA0 + ldr r0, _021D8754 ; =0x00000B04 + mov r2, #0x5a + add r1, r4, #0 + lsl r2, r2, #2 + ldr r3, [r4] + add r0, r4, r0 + add r1, #0x2c + add r2, r4, r2 + bl MOD73_021DAFA8 + add r0, r4, #0 + bl MOD73_021D8BDC + ldr r0, _021D8758 ; =0x021C4918 + mov r1, #1 + strb r1, [r0, #5] + bl FUN_0201E7A0 + add sp, #8 + pop {r4, pc} + .align 2, 0 +_021D8738: .word 0x0000054C +_021D873C: .word 0x0000063C +_021D8740: .word 0x000005A4 +_021D8744: .word 0x00000598 +_021D8748: .word 0x0000058C +_021D874C: .word 0x0000061C +_021D8750: .word 0x00000A84 +_021D8754: .word 0x00000B04 +_021D8758: .word 0x021C4918 + thumb_func_end MOD73_021D8630 + + thumb_func_start MOD73_021D875C +MOD73_021D875C: ; 0x021D875C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D87EC ; =0x0000063C + add r0, r4, r0 + bl MOD73_021DA290 + ldr r0, _021D87F0 ; =0x0000054C + add r0, r4, r0 + bl MOD73_021D9A94 + ldr r0, _021D87F4 ; =0x000005A4 + add r0, r4, r0 + bl MOD73_021D9F74 + add r0, r4, #0 + bl MOD73_021D8B2C + mov r0, #0x16 + lsl r0, r0, #6 + add r0, r4, r0 + bl MOD73_021D9E08 + ldr r0, _021D87F8 ; =0x0000058C + add r0, r4, r0 + bl MOD73_021D9E08 + ldr r0, _021D87FC ; =0x00000598 + add r0, r4, r0 + bl MOD73_021D9E08 + ldr r0, _021D8800 ; =0x0000061C + add r0, r4, r0 + bl MOD73_021DA178 + mov r0, #0x67 + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD73_021DA858 + ldr r0, _021D8804 ; =0x00000A84 + add r0, r4, r0 + bl MOD73_021DAE24 + ldr r0, _021D8808 ; =0x00000B04 + add r0, r4, r0 + bl MOD73_021DAFEC + add r0, r4, #0 + add r0, #0x20 + bl MOD73_021D8980 + add r0, r4, #0 + bl MOD73_021D89D0 + add r0, r4, #0 + bl MOD73_021D8A74 + add r0, r4, #0 + bl MOD73_021D8A08 + add r0, r4, #0 + bl MOD73_021D8BD0 + add r0, r4, #0 + bl MOD73_021D8D18 + ldr r0, _021D880C ; =0x021C4918 + mov r1, #0 + strb r1, [r0, #5] + bl FUN_0201E7A0 + pop {r4, pc} + .align 2, 0 +_021D87EC: .word 0x0000063C +_021D87F0: .word 0x0000054C +_021D87F4: .word 0x000005A4 +_021D87F8: .word 0x0000058C +_021D87FC: .word 0x00000598 +_021D8800: .word 0x0000061C +_021D8804: .word 0x00000A84 +_021D8808: .word 0x00000B04 +_021D880C: .word 0x021C4918 + thumb_func_end MOD73_021D875C + + thumb_func_start MOD73_021D8810 +MOD73_021D8810: ; 0x021D8810 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4] + ldr r1, _021D883C ; =0x00001498 + str r0, [sp] + mov r0, #0xd7 + mov r3, #0x5a + lsl r0, r0, #2 + add r2, r4, #0 + lsl r3, r3, #2 + add r0, r4, r0 + add r1, r4, r1 + add r2, #0x2c + add r3, r4, r3 + bl MOD73_021D96E4 + ldr r0, [r4, #0xc] + add r0, r0, #1 + add sp, #4 + pop {r3, r4, pc} + nop +_021D883C: .word 0x00001498 + thumb_func_end MOD73_021D8810 + + thumb_func_start MOD73_021D8840 +MOD73_021D8840: ; 0x021D8840 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xd7 + lsl r0, r0, #2 + add r1, r4, #0 + add r0, r4, r0 + add r1, #0x2c + bl MOD73_021D97A4 + ldr r0, [r4, #0xc] + add r0, r0, #1 + pop {r4, pc} + thumb_func_end MOD73_021D8840 + + thumb_func_start MOD73_021D8858 +MOD73_021D8858: ; 0x021D8858 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl FUN_020222AC + mov r1, #0 + mov r0, #0x11 + add r2, r1, #0 + bl FUN_020BB1C0 + bl FUN_020BB394 + bl FUN_020B02C8 + mov r0, #0xaf + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D8882 + bl FUN_02013D5C +_021D8882: + mov r2, #1 + mov r0, #0x12 + add r1, sp, #0 + str r2, [sp] + bl FUN_020BB1C0 + mov r0, #0 + add r1, r0, #0 + bl FUN_020222B4 + mov r0, #0xae + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D88AA + ldr r0, [r4, #0x2c] + cmp r0, #0 + beq _021D88AA + bl FUN_0201FDEC +_021D88AA: + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D8858 + + thumb_func_start MOD73_021D88B0 +MOD73_021D88B0: ; 0x021D88B0 + push {r4, lr} + add r4, r0, #0 + bl FUN_02009F80 + ldr r0, [r4, #0x20] + cmp r0, #0 + beq _021D88C2 + bl FUN_0201AB60 +_021D88C2: + pop {r4, pc} + thumb_func_end MOD73_021D88B0 + + thumb_func_start MOD73_021D88C4 +MOD73_021D88C4: ; 0x021D88C4 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D88E0 ; =0x021DBD40 + add r3, sp, #0 + mov r2, #5 +_021D88CE: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D88CE + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D88E0: .word 0x021DBD40 + thumb_func_end MOD73_021D88C4 + + thumb_func_start MOD73_021D88E4 +MOD73_021D88E4: ; 0x021D88E4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x88 + str r1, [sp] + add r6, r0, #0 + bl MOD73_021D88C4 + ldr r0, [sp] + bl FUN_02016B94 + add r3, sp, #8 + ldr r4, _021D8974 ; =0x021DBD30 + str r0, [r6] + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r0, #0 + mov r1, #2 + bl FUN_020178BC + ldr r4, _021D8978 ; =0x021DBD68 + add r3, sp, #0x18 + mov r2, #0xe +_021D8922: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D8922 + ldr r1, _021D897C ; =0x021DBD0C + add r0, sp, #4 + ldrb r2, [r1] + mov r7, #0 + add r5, sp, #4 + strb r2, [r0] + ldrb r2, [r1, #1] + add r4, sp, #0x18 + strb r2, [r0, #1] + ldrb r2, [r1, #2] + ldrb r1, [r1, #3] + strb r2, [r0, #2] + strb r1, [r0, #3] +_021D8944: + ldrb r1, [r5] + ldr r0, [r6] + add r2, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldrb r1, [r5] + ldr r0, [r6] + bl FUN_02018744 + ldrb r0, [r5] + ldr r3, [sp] + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + add r7, r7, #1 + add r4, #0x1c + add r5, r5, #1 + cmp r7, #4 + blt _021D8944 + add sp, #0x88 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8974: .word 0x021DBD30 +_021D8978: .word 0x021DBD68 +_021D897C: .word 0x021DBD0C + thumb_func_end MOD73_021D88E4 + + thumb_func_start MOD73_021D8980 +MOD73_021D8980: ; 0x021D8980 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + mov r1, #5 + bl FUN_020178A0 + ldr r0, [r4] + mov r1, #4 + bl FUN_020178A0 + ldr r0, [r4] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4] + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD73_021D8980 + + thumb_func_start MOD73_021D89AC +MOD73_021D89AC: ; 0x021D89AC + push {r3, lr} + add r3, r0, #0 + ldr r3, [r3] + add r0, #0x2c + mov r1, #0x48 + mov r2, #0x10 + bl MOD73_021D92EC + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD73_021D89AC + + thumb_func_start MOD73_021D89D0 +MOD73_021D89D0: ; 0x021D89D0 + ldr r3, _021D89D8 ; =MOD73_021D931C + add r0, #0x2c + bx r3 + nop +_021D89D8: .word MOD73_021D931C + thumb_func_end MOD73_021D89D0 + + thumb_func_start MOD73_021D89DC +MOD73_021D89DC: ; 0x021D89DC + push {r3, r4, r5, lr} + sub sp, #0x10 + ldr r5, _021D8A04 ; =0x021DBD10 + add r3, sp, #0 + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + str r0, [sp, #0xc] + add r0, r2, #0 + bl FUN_02013CD4 + mov r1, #0xaf + lsl r1, r1, #2 + str r0, [r4, r1] + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8A04: .word 0x021DBD10 + thumb_func_end MOD73_021D89DC + + thumb_func_start MOD73_021D8A08 +MOD73_021D8A08: ; 0x021D8A08 + mov r1, #0xaf + lsl r1, r1, #2 + ldr r3, _021D8A14 ; =FUN_02013D18 + ldr r0, [r0, r1] + bx r3 + nop +_021D8A14: .word FUN_02013D18 + thumb_func_end MOD73_021D8A08 + + thumb_func_start MOD73_021D8A18 +MOD73_021D8A18: ; 0x021D8A18 + push {r4, r5, lr} + sub sp, #0x24 + add r4, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x80 + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + ldr r2, [r4] + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + ldr r5, _021D8A6C ; =0x021DBD20 + add r3, sp, #0x14 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + ldr r1, _021D8A70 ; =0x00200010 + str r0, [sp, #0x20] + add r0, r2, #0 + mov r2, #0x10 + bl FUN_0201D060 + ldr r1, [r4] + mov r0, #0x20 + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x24 + pop {r4, r5, pc} + nop +_021D8A6C: .word 0x021DBD20 +_021D8A70: .word 0x00200010 + thumb_func_end MOD73_021D8A18 + + thumb_func_start MOD73_021D8A74 +MOD73_021D8A74: ; 0x021D8A74 + push {r3, lr} + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + pop {r3, pc} + thumb_func_end MOD73_021D8A74 + + thumb_func_start MOD73_021D8A84 +MOD73_021D8A84: ; 0x021D8A84 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + str r0, [sp, #0x18] + ldr r0, _021D8B28 ; =0x021DBDD8 + mov r1, #0x5a + str r0, [sp, #0x20] + mov r0, #0xc + str r0, [sp, #0x28] + ldr r0, [sp, #0x18] + lsl r1, r1, #2 + add r0, r0, r1 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x18] + mov r4, #0 + str r0, [sp, #0x24] + add r0, #0x2c + mov r7, #0xd + mov r5, #0xe + str r0, [sp, #0x24] +_021D8AAA: + cmp r4, #0 + ble _021D8AE0 + ldr r0, [sp, #0x20] + ldrb r0, [r0] + cmp r0, #8 + bne _021D8AE0 + str r5, [sp] + ldr r0, [sp, #0x28] + str r7, [sp, #4] + str r0, [sp, #8] + mov r0, #0x7d + lsl r0, r0, #4 + add r0, r4, r0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x18] + mov r2, #0x7a + ldr r0, [r0] + add r3, r2, #0 + str r0, [sp, #0x10] + ldr r6, [sp, #0x18] + add r3, #0xf2 + ldr r0, [sp, #0x24] + ldr r1, [sp, #0x1c] + ldr r3, [r6, r3] + bl MOD73_021D942C + b _021D8B08 +_021D8AE0: + mov r0, #2 + str r0, [sp] + str r5, [sp, #4] + ldr r0, [sp, #0x28] + str r7, [sp, #8] + str r0, [sp, #0xc] + mov r0, #0x7d + lsl r0, r0, #4 + add r0, r4, r0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x18] + ldr r3, [sp, #0x20] + ldr r0, [r0] + ldr r1, [sp, #0x1c] + str r0, [sp, #0x14] + ldrb r3, [r3] + ldr r0, [sp, #0x24] + mov r2, #0x7a + bl MOD73_021D9340 +_021D8B08: + ldr r0, [sp, #0x20] + add r4, r4, #1 + add r0, r0, #1 + str r0, [sp, #0x20] + ldr r0, [sp, #0x28] + add r7, r7, #3 + add r0, r0, #3 + str r0, [sp, #0x28] + ldr r0, [sp, #0x1c] + add r5, r5, #3 + add r0, #0x38 + str r0, [sp, #0x1c] + cmp r4, #6 + blt _021D8AAA + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D8B28: .word 0x021DBDD8 + thumb_func_end MOD73_021D8A84 + + thumb_func_start MOD73_021D8B2C +MOD73_021D8B2C: ; 0x021D8B2C + push {r4, r5, r6, lr} + mov r1, #0x5a + lsl r1, r1, #2 + add r6, r0, #0 + mov r4, #0 + add r5, r0, r1 + add r6, #0x2c +_021D8B3A: + add r0, r6, #0 + add r1, r5, #0 + bl MOD73_021D94F4 + add r4, r4, #1 + add r5, #0x38 + cmp r4, #6 + blt _021D8B3A + pop {r4, r5, r6, pc} + thumb_func_end MOD73_021D8B2C + + thumb_func_start MOD73_021D8B4C +MOD73_021D8B4C: ; 0x021D8B4C + push {r3, r4, lr} + sub sp, #4 + bl FUN_020BB7F4 + bl G3X_InitMtxStack + ldr r0, _021D8BB8 ; =0x04000060 + ldr r2, _021D8BBC ; =0xFFFFCFFD + ldrh r1, [r0] + and r1, r2 + strh r1, [r0] + ldrh r3, [r0] + add r1, r2, #2 + and r3, r1 + mov r1, #0x10 + orr r1, r3 + strh r1, [r0] + ldrh r1, [r0] + ldr r3, _021D8BC0 ; =0x0000CFFB + and r1, r3 + strh r1, [r0] + add r1, r2, #2 + ldrh r4, [r0] + sub r3, #0x1c + lsr r2, r2, #0x11 + and r4, r1 + mov r1, #8 + orr r1, r4 + strh r1, [r0] + ldrh r1, [r0] + and r1, r3 + strh r1, [r0] + mov r1, #0 + ldr r0, _021D8BC4 ; =0x000043FF + mov r3, #0x3f + str r1, [sp] + bl G3X_SetClearColor + ldr r2, _021D8BC8 ; =0x04000540 + mov r0, #2 + ldr r1, _021D8BCC ; =0xBFFF0000 + str r0, [r2] + str r1, [r2, #0x40] + mov r1, #1 + bl FUN_020AEB70 + mov r0, #2 + lsl r0, r0, #0xe + mov r1, #1 + bl FUN_020AEDF4 + add sp, #4 + pop {r3, r4, pc} + nop +_021D8BB8: .word 0x04000060 +_021D8BBC: .word 0xFFFFCFFD +_021D8BC0: .word 0x0000CFFB +_021D8BC4: .word 0x000043FF +_021D8BC8: .word 0x04000540 +_021D8BCC: .word 0xBFFF0000 + thumb_func_end MOD73_021D8B4C + + thumb_func_start MOD73_021D8BD0 +MOD73_021D8BD0: ; 0x021D8BD0 + push {r3, lr} + bl FUN_020AEAF4 + bl FUN_020AEC60 + pop {r3, pc} + thumb_func_end MOD73_021D8BD0 + + thumb_func_start MOD73_021D8BDC +MOD73_021D8BDC: ; 0x021D8BDC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r2, _021D8CE0 ; =0x0000019D + ldr r3, [r5] + mov r0, #0 + mov r1, #0x1a + bl FUN_0200A86C + ldr r1, _021D8CE4 ; =0x00001574 + str r0, [r5, r1] + ldr r2, [r5] + mov r0, #4 + mov r1, #0x40 + bl FUN_0200AA90 + ldr r1, _021D8CE8 ; =0x00001578 + str r0, [r5, r1] + ldr r1, [r5] + mov r0, #0x40 + bl FUN_020219F4 + ldr r1, _021D8CEC ; =0x0000157C + str r0, [r5, r1] + sub r1, #8 + ldr r0, [r5, r1] + mov r1, #0 + bl FUN_0200A914 + mov r1, #0x56 + lsl r1, r1, #6 + str r0, [r5, r1] + sub r1, #0xc + ldr r0, [r5, r1] + mov r1, #1 + bl FUN_0200A914 + ldr r1, _021D8CF0 ; =0x00001584 + str r0, [r5, r1] + sub r1, #0x10 + ldr r0, [r5, r1] + mov r1, #2 + bl FUN_0200A914 + ldr r1, _021D8CF4 ; =0x00001588 + str r0, [r5, r1] + sub r1, #0x14 + ldr r0, [r5, r1] + mov r1, #0x14 + bl FUN_0200A914 + ldr r1, _021D8CF8 ; =0x0000158C + str r0, [r5, r1] + sub r1, #0x18 + ldr r0, [r5, r1] + mov r1, #0x15 + bl FUN_0200A914 + ldr r1, _021D8CFC ; =0x00001590 + str r0, [r5, r1] + sub r1, #0x1c + ldr r0, [r5, r1] + mov r1, #0x16 + bl FUN_0200A914 + ldr r1, _021D8D00 ; =0x00001594 + str r0, [r5, r1] + sub r1, #0x20 + ldr r0, [r5, r1] + mov r1, #0x17 + bl FUN_0200A914 + ldr r1, _021D8D04 ; =0x00001598 + str r0, [r5, r1] + sub r1, #0x24 + ldr r0, [r5, r1] + mov r1, #0x18 + bl FUN_0200A914 + ldr r1, _021D8D08 ; =0x0000159C + str r0, [r5, r1] + sub r1, #0x28 + ldr r0, [r5, r1] + mov r1, #0x19 + bl FUN_0200A914 + ldr r1, _021D8D0C ; =0x000015A0 + str r0, [r5, r1] + sub r1, #0x2c + ldr r0, [r5, r1] + mov r1, #8 + bl FUN_0200A914 + ldr r1, _021D8D10 ; =0x000015A4 + str r0, [r5, r1] + sub r1, #0x30 + ldr r0, [r5, r1] + mov r1, #9 + bl FUN_0200A914 + ldr r1, _021D8D14 ; =0x000015A8 + mov r4, #0 + str r0, [r5, r1] + add r6, r5, #0 + add r7, r1, #4 +_021D8CAC: + ldr r0, _021D8CE4 ; =0x00001574 + add r1, r4, #3 + ldr r0, [r5, r0] + bl FUN_0200A914 + str r0, [r6, r7] + add r4, r4, #1 + add r6, r6, #4 + cmp r4, #5 + blt _021D8CAC + mov r7, #0x57 + mov r4, #0 + add r6, r5, #0 + lsl r7, r7, #6 +_021D8CC8: + ldr r0, _021D8CE4 ; =0x00001574 + add r1, r4, #0 + ldr r0, [r5, r0] + add r1, #0xa + bl FUN_0200A914 + str r0, [r6, r7] + add r4, r4, #1 + add r6, r6, #4 + cmp r4, #0xa + blt _021D8CC8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8CE0: .word 0x0000019D +_021D8CE4: .word 0x00001574 +_021D8CE8: .word 0x00001578 +_021D8CEC: .word 0x0000157C +_021D8CF0: .word 0x00001584 +_021D8CF4: .word 0x00001588 +_021D8CF8: .word 0x0000158C +_021D8CFC: .word 0x00001590 +_021D8D00: .word 0x00001594 +_021D8D04: .word 0x00001598 +_021D8D08: .word 0x0000159C +_021D8D0C: .word 0x000015A0 +_021D8D10: .word 0x000015A4 +_021D8D14: .word 0x000015A8 + thumb_func_end MOD73_021D8BDC + + thumb_func_start MOD73_021D8D18 +MOD73_021D8D18: ; 0x021D8D18 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, _021D8DBC ; =0x000015A8 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DC0 ; =0x000015A4 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DC4 ; =0x00001594 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DC8 ; =0x00001590 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DCC ; =0x0000158C + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DD0 ; =0x00001588 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DD4 ; =0x00001584 + ldr r0, [r6, r0] + bl FUN_02021A20 + mov r0, #0x56 + lsl r0, r0, #6 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DD8 ; =0x00001598 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DDC ; =0x0000159C + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DE0 ; =0x000015A0 + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r7, _021D8DE4 ; =0x000015AC + mov r4, #0 + add r5, r6, #0 +_021D8D7C: + ldr r0, [r5, r7] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #5 + blt _021D8D7C + mov r7, #0x57 + mov r5, #0 + add r4, r6, #0 + lsl r7, r7, #6 +_021D8D92: + ldr r0, [r4, r7] + bl FUN_02021A20 + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #0xa + blt _021D8D92 + ldr r0, _021D8DE8 ; =0x0000157C + ldr r0, [r6, r0] + bl FUN_02021A20 + ldr r0, _021D8DEC ; =0x00001578 + ldr r0, [r6, r0] + bl FUN_0200AB18 + ldr r0, _021D8DF0 ; =0x00001574 + ldr r0, [r6, r0] + bl FUN_0200A8B8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8DBC: .word 0x000015A8 +_021D8DC0: .word 0x000015A4 +_021D8DC4: .word 0x00001594 +_021D8DC8: .word 0x00001590 +_021D8DCC: .word 0x0000158C +_021D8DD0: .word 0x00001588 +_021D8DD4: .word 0x00001584 +_021D8DD8: .word 0x00001598 +_021D8DDC: .word 0x0000159C +_021D8DE0: .word 0x000015A0 +_021D8DE4: .word 0x000015AC +_021D8DE8: .word 0x0000157C +_021D8DEC: .word 0x00001578 +_021D8DF0: .word 0x00001574 + thumb_func_end MOD73_021D8D18 + + thumb_func_start MOD73_021D8DF4 +MOD73_021D8DF4: ; 0x021D8DF4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + ldr r0, _021D8E7C ; =0x00001428 + add r4, r1, #0 + ldr r1, [r7, r0] + cmp r1, #1 + bne _021D8E0C + bl FUN_02030F20 + ldr r1, _021D8E80 ; =0x00001420 + str r0, [r7, r1] + b _021D8E12 +_021D8E0C: + mov r1, #1 + sub r0, #8 + str r1, [r7, r0] +_021D8E12: + bl FUN_020842D0 + add r5, r0, #0 + bl FUN_020842D8 + add r1, r0, #0 + ldr r0, [r7] + ldr r3, _021D8E7C ; =0x00001428 + str r0, [sp] + ldr r3, [r7, r3] + add r0, r5, #0 + add r2, r7, #0 + bl MOD73_021D9094 + ldr r1, _021D8E84 ; =0x00001424 + str r0, [r7, r1] + ldr r0, _021D8E88 ; =0x0000155C + mov r1, #4 + add r0, r7, r0 + add r2, r1, #0 + bl Call_FillMemWithValue + ldr r0, _021D8E7C ; =0x00001428 + ldr r0, [r7, r0] + cmp r0, #1 + bne _021D8E70 + mov r6, #0 + add r4, r6, #0 + add r5, r7, #0 +_021D8E4C: + add r0, r4, #0 + bl FUN_0202DFA4 + ldr r1, _021D8E8C ; =0x00001560 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D8E66 + ldr r0, _021D8E88 ; =0x0000155C + add r1, r7, r6 + strb r4, [r1, r0] + add r6, r6, #1 +_021D8E66: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D8E4C + pop {r3, r4, r5, r6, r7, pc} +_021D8E70: + ldr r0, _021D8E88 ; =0x0000155C + mov r1, #0 + strb r1, [r7, r0] + add r0, r0, #4 + str r4, [r7, r0] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8E7C: .word 0x00001428 +_021D8E80: .word 0x00001420 +_021D8E84: .word 0x00001424 +_021D8E88: .word 0x0000155C +_021D8E8C: .word 0x00001560 + thumb_func_end MOD73_021D8DF4 + + thumb_func_start MOD73_021D8E90 +MOD73_021D8E90: ; 0x021D8E90 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D8EA4 ; =0x00001424 + ldr r0, [r4, r0] + bl MOD73_021D90F4 + ldr r0, _021D8EA4 ; =0x00001424 + mov r1, #0 + str r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021D8EA4: .word 0x00001424 + thumb_func_end MOD73_021D8E90 + + thumb_func_start MOD73_021D8EA8 +MOD73_021D8EA8: ; 0x021D8EA8 + add r0, r3, #0 + ldr r3, _021D8EB0 ; =MOD73_021D768C + mov r1, #3 + bx r3 + .align 2, 0 +_021D8EB0: .word MOD73_021D768C + thumb_func_end MOD73_021D8EA8 + + thumb_func_start MOD73_021D8EB4 +MOD73_021D8EB4: ; 0x021D8EB4 + add r0, r3, #0 + ldr r3, _021D8EBC ; =MOD73_021D768C + mov r1, #8 + bx r3 + .align 2, 0 +_021D8EBC: .word MOD73_021D768C + thumb_func_end MOD73_021D8EB4 + + thumb_func_start MOD73_021D8EC0 +MOD73_021D8EC0: ; 0x021D8EC0 + push {r3, r4, r5, lr} + ldr r0, _021D8EF4 ; =0x00001498 + add r5, r1, #0 + add r4, r3, #0 + add r1, r2, #0 + add r0, r4, r0 + add r2, r5, #0 + bl memcpy + ldr r0, _021D8EF8 ; =0x000014A8 + mov r1, #0xa + add r3, r4, r0 + add r0, #0x1c + add r2, r4, r0 +_021D8EDC: + ldrh r0, [r3] + add r3, r3, #2 + strh r0, [r2] + add r2, r2, #2 + sub r1, r1, #1 + bne _021D8EDC + add r0, r4, #0 + mov r1, #5 + bl MOD73_021D768C + pop {r3, r4, r5, pc} + nop +_021D8EF4: .word 0x00001498 +_021D8EF8: .word 0x000014A8 + thumb_func_end MOD73_021D8EC0 + + thumb_func_start MOD73_021D8EFC +MOD73_021D8EFC: ; 0x021D8EFC + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r0, #0 + ldr r0, _021D8F7C ; =0x00001424 + add r5, r3, #0 + ldr r0, [r5, r0] + str r1, [sp] + str r2, [sp, #4] + bl MOD73_021D910C + cmp r0, #0 + bne _021D8F76 + mov r0, #0x55 + lsl r0, r0, #6 + lsl r4, r6, #2 + add r7, r5, r0 + ldr r1, [sp, #4] + ldr r2, [sp] + add r0, r7, r4 + bl memcpy + ldr r0, _021D8F80 ; =0x00001550 + mov r2, #1 + add r1, r5, r6 + strb r2, [r1, r0] + ldr r1, [r7, r4] + add r2, r5, r4 + sub r0, #0xf0 + str r1, [r2, r0] + mov r0, #0 + ldr r1, _021D8F80 ; =0x00001550 + add r3, r0, #0 +_021D8F3C: + add r2, r5, r3 + ldrb r2, [r2, r1] + cmp r2, #1 + bne _021D8F46 + add r0, r0, #1 +_021D8F46: + add r3, r3, #1 + cmp r3, #4 + blt _021D8F3C + ldr r1, _021D8F84 ; =0x00001420 + ldr r2, [r5, r1] + cmp r0, r2 + blt _021D8F76 + mov r0, #0xba + lsl r0, r0, #2 + add r1, #0x50 + add r0, r5, r0 + add r1, r5, r1 + bl MOD73_021DB994 + bl MOD73_021D9084 + ldr r3, _021D8F88 ; =0x00001460 + add r2, r0, #0 + add r1, r5, r3 + sub r3, #0x3c + ldr r3, [r5, r3] + mov r0, #0x18 + bl MOD73_021D90D0 +_021D8F76: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8F7C: .word 0x00001424 +_021D8F80: .word 0x00001550 +_021D8F84: .word 0x00001420 +_021D8F88: .word 0x00001460 + thumb_func_end MOD73_021D8EFC + + thumb_func_start MOD73_021D8F8C +MOD73_021D8F8C: ; 0x021D8F8C + push {r4, lr} + add r4, r1, #0 + ldr r1, _021D8FA4 ; =0x000014BC + add r3, r3, r1 + mov r1, #0x1c + mul r1, r0 + add r0, r3, r1 + add r1, r2, #0 + add r2, r4, #0 + bl memcpy + pop {r4, pc} + .align 2, 0 +_021D8FA4: .word 0x000014BC + thumb_func_end MOD73_021D8F8C + + thumb_func_start MOD73_021D8FA8 +MOD73_021D8FA8: ; 0x021D8FA8 + push {r3, r4, r5, lr} + ldr r0, _021D8FC4 ; =0x00001484 + add r5, r1, #0 + add r4, r3, #0 + add r1, r2, #0 + add r0, r4, r0 + add r2, r5, #0 + bl memcpy + add r0, r4, #0 + mov r1, #0xa + bl MOD73_021D768C + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8FC4: .word 0x00001484 + thumb_func_end MOD73_021D8FA8 + + thumb_func_start MOD73_021D8FC8 +MOD73_021D8FC8: ; 0x021D8FC8 + push {r4, lr} + ldr r0, _021D8FDC ; =0x0000152C + add r4, r1, #0 + ldr r0, [r3, r0] + add r1, r2, #0 + add r2, r4, #0 + bl memcpy + pop {r4, pc} + nop +_021D8FDC: .word 0x0000152C + thumb_func_end MOD73_021D8FC8 + + thumb_func_start MOD73_021D8FE0 +MOD73_021D8FE0: ; 0x021D8FE0 + push {r3, r4, r5, lr} + ldr r0, _021D8FFC ; =0x00001571 + add r5, r1, #0 + add r4, r3, #0 + add r1, r2, #0 + add r0, r4, r0 + add r2, r5, #0 + bl memcpy + add r0, r4, #0 + mov r1, #0xc + bl MOD73_021D768C + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8FFC: .word 0x00001571 + thumb_func_end MOD73_021D8FE0 + + thumb_func_start MOD73_021D9000 +MOD73_021D9000: ; 0x021D9000 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, _021D906C ; =0x00001424 + add r4, r3, #0 + ldr r0, [r4, r0] + add r6, r1, #0 + add r7, r2, #0 + bl MOD73_021D910C + cmp r0, #0 + bne _021D906A + ldr r0, _021D9070 ; =0x00001554 + add r1, r7, #0 + add r0, r4, r0 + add r0, r0, r5 + add r2, r6, #0 + bl memcpy + ldr r0, _021D9074 ; =0x00001558 + add r1, r4, r5 + mov r2, #1 + strb r2, [r1, r0] + add r6, sp, #0 + mov r3, #0 + strb r2, [r6] + add r2, r3, #0 + sub r7, r0, #4 + add r5, r0, #0 +_021D9038: + add r1, r4, r2 + ldrb r0, [r1, r5] + cmp r0, #1 + bne _021D904A + ldrb r0, [r6] + ldrb r1, [r1, r7] + add r3, r3, #1 + and r0, r1 + strb r0, [r6] +_021D904A: + add r2, r2, #1 + cmp r2, #4 + blt _021D9038 + ldr r0, _021D9078 ; =0x00001420 + ldr r0, [r4, r0] + cmp r3, r0 + blt _021D906A + bl MOD73_021D9080 + ldr r3, _021D906C ; =0x00001424 + add r2, r0, #0 + ldr r3, [r4, r3] + mov r0, #0x1d + add r1, sp, #0 + bl MOD73_021D90D0 +_021D906A: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D906C: .word 0x00001424 +_021D9070: .word 0x00001554 +_021D9074: .word 0x00001558 +_021D9078: .word 0x00001420 + thumb_func_end MOD73_021D9000 + + thumb_func_start MOD73_021D907C +MOD73_021D907C: ; 0x021D907C + mov r0, #0 + bx lr + thumb_func_end MOD73_021D907C + + thumb_func_start MOD73_021D9080 +MOD73_021D9080: ; 0x021D9080 + mov r0, #1 + bx lr + thumb_func_end MOD73_021D9080 + + thumb_func_start MOD73_021D9084 +MOD73_021D9084: ; 0x021D9084 + mov r0, #0x24 + bx lr + thumb_func_end MOD73_021D9084 + + thumb_func_start MOD73_021D9088 +MOD73_021D9088: ; 0x021D9088 + mov r0, #4 + bx lr + thumb_func_end MOD73_021D9088 + + thumb_func_start MOD73_021D908C +MOD73_021D908C: ; 0x021D908C + mov r0, #0x1c + bx lr + thumb_func_end MOD73_021D908C + + thumb_func_start MOD73_021D9090 +MOD73_021D9090: ; 0x021D9090 + mov r0, #0x14 + bx lr + thumb_func_end MOD73_021D9090 + + thumb_func_start MOD73_021D9094 +MOD73_021D9094: ; 0x021D9094 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + ldr r0, [sp, #0x18] + mov r1, #8 + str r2, [sp] + add r5, r3, #0 + bl FUN_02016998 + add r4, r0, #0 + mov r0, #0 + str r5, [r4] + str r0, [r4, #4] + cmp r5, #1 + bne _021D90BE + ldr r2, [sp] + add r0, r6, #0 + add r1, r7, #0 + bl FUN_0202D8D0 + b _021D90CC +_021D90BE: + ldr r2, [sp] + ldr r3, [sp, #0x18] + add r0, r6, #0 + add r1, r7, #0 + bl MOD73_021D9120 + str r0, [r4, #4] +_021D90CC: + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D9094 + + thumb_func_start MOD73_021D90D0 +MOD73_021D90D0: ; 0x021D90D0 + push {r3, r4, r5, r6, r7, lr} + add r6, r3, #0 + ldr r3, [r6] + add r5, r0, #0 + add r4, r1, #0 + add r7, r2, #0 + cmp r3, #1 + bne _021D90E6 + bl FUN_02030ADC + pop {r3, r4, r5, r6, r7, pc} +_021D90E6: + ldr r0, [r6, #4] + add r1, r5, #0 + add r2, r4, #0 + add r3, r7, #0 + bl MOD73_021D91D4 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D90D0 + + thumb_func_start MOD73_021D90F4 +MOD73_021D90F4: ; 0x021D90F4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + bne _021D9104 + ldr r0, [r4, #4] + bl MOD73_021D91BC +_021D9104: + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD73_021D90F4 + + thumb_func_start MOD73_021D910C +MOD73_021D910C: ; 0x021D910C + push {r3, lr} + ldr r0, [r0] + cmp r0, #1 + bne _021D911A + bl FUN_02031190 + pop {r3, pc} +_021D911A: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD73_021D910C + + thumb_func_start MOD73_021D9120 +MOD73_021D9120: ; 0x021D9120 + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + mov r1, #0x1b + add r5, r0, #0 + add r0, r3, #0 + lsl r1, r1, #4 + add r7, r2, #0 + bl FUN_02016998 + mov r2, #0x1b + mov r1, #0 + lsl r2, r2, #4 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r1, #0x1a + lsl r1, r1, #4 + str r5, [r4, r1] + add r0, r1, #4 + str r6, [r4, r0] + add r1, #8 + str r7, [r4, r1] + ldr r0, _021D9160 ; =MOD73_021D9168 + ldr r2, _021D9164 ; =0x00001388 + add r1, r4, #0 + bl FUN_0200CA98 + mov r1, #0x6b + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D9160: .word MOD73_021D9168 +_021D9164: .word 0x00001388 + thumb_func_end MOD73_021D9120 + + thumb_func_start MOD73_021D9168 +MOD73_021D9168: ; 0x021D9168 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r1, #0 + mov r0, #0 + str r0, [sp] + add r6, r7, #0 +_021D9174: + ldr r0, [r6] + cmp r0, #1 + bne _021D91AA + mov r4, #0x1a + lsl r4, r4, #4 + ldr r4, [r7, r4] + mov r3, #0x6a + mov ip, r4 + ldr r4, [r6, #4] + mov r5, #0xc + mul r5, r4 + str r5, [sp, #4] + lsl r3, r3, #2 + add r2, r6, #0 + ldr r4, [sp, #4] + mov r5, ip + ldr r1, [r6, #0x30] + ldr r3, [r7, r3] + ldr r4, [r5, r4] + mov r0, #0 + add r2, #8 + blx r4 + add r0, r6, #0 + mov r1, #0 + mov r2, #0x34 + bl Call_FillMemWithValue +_021D91AA: + ldr r0, [sp] + add r6, #0x34 + add r0, r0, #1 + str r0, [sp] + cmp r0, #8 + blt _021D9174 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021D9168 + + thumb_func_start MOD73_021D91BC +MOD73_021D91BC: ; 0x021D91BC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200CAB4 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D91BC + + thumb_func_start MOD73_021D91D4 +MOD73_021D91D4: ; 0x021D91D4 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r4, #0 + str r2, [sp] + add r7, r1, #0 + add r5, r3, #0 + add r0, r4, #0 + add r2, r6, #0 +_021D91E4: + ldr r1, [r2] + cmp r1, #0 + bne _021D91F2 + mov r1, #0x34 + mul r1, r0 + add r4, r6, r1 + b _021D91FA +_021D91F2: + add r0, r0, #1 + add r2, #0x34 + cmp r0, #8 + blt _021D91E4 +_021D91FA: + cmp r4, #0 + bne _021D9202 + bl ErrorHandling +_021D9202: + mov r0, #0x1a + lsl r0, r0, #4 + add r1, r7, #0 + ldr r2, [r6, r0] + sub r1, #0x16 + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldr r0, [r0, #4] + blx r0 + cmp r0, r5 + beq _021D921E + bl ErrorHandling +_021D921E: + cmp r5, #0x26 + blt _021D9226 + bl ErrorHandling +_021D9226: + sub r7, #0x16 + str r7, [r4, #4] + cmp r5, #0 + ble _021D923A + add r0, r4, #0 + ldr r1, [sp] + add r0, #8 + add r2, r5, #0 + bl memcpy +_021D923A: + str r5, [r4, #0x30] + mov r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021D91D4 + + thumb_func_start MOD73_021D9244 +MOD73_021D9244: ; 0x021D9244 + push {r4, lr} + add r4, r0, #0 + add r0, r2, #0 + mov r2, #0 + bl FUN_02002E14 + lsr r0, r0, #1 + sub r0, r4, r0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9244 + + thumb_func_start MOD73_021D9258 +MOD73_021D9258: ; 0x021D9258 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + str r2, [sp] + mov r0, #0x7a + mov r2, #0 + add r3, sp, #4 + bl FUN_02006BB0 + add r4, r0, #0 + ldr r0, [sp, #4] + str r5, [sp, #8] + str r0, [sp, #0xc] + add r0, sp, #8 + bl FUN_02013D98 + add r5, r0, #0 + add r0, r4, #0 + bl FUN_02016A18 + add r0, r5, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021D9258 + + thumb_func_start MOD73_021D9288 +MOD73_021D9288: ; 0x021D9288 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + add r3, r2, #0 + mov r0, #0x7a + add r2, sp, #0 + bl FUN_02006C08 + add r4, r0, #0 + ldr r0, [sp] + str r5, [sp, #4] + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + add r0, sp, #4 + bl FUN_02013E14 + add r5, r0, #0 + add r0, r4, #0 + bl FUN_02016A18 + add r0, r5, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021D9288 + + thumb_func_start MOD73_021D92B8 +MOD73_021D92B8: ; 0x021D92B8 + push {r4, lr} + sub sp, #0x20 + str r0, [sp] + str r1, [sp, #4] + str r2, [sp, #8] + add r0, sp, #0 + ldr r1, [sp, #0x28] + strh r3, [r0, #0xc] + strh r1, [r0, #0xe] + mov r2, #0 + strh r2, [r0, #0x10] + mov r1, #0x1f + str r1, [sp, #0x14] + ldr r1, [sp, #0x2c] + str r1, [sp, #0x18] + strh r2, [r0, #0x1c] + add r0, sp, #0 + bl FUN_02013E84 + mov r1, #0 + add r4, r0, #0 + bl FUN_02013EB0 + add r0, r4, #0 + add sp, #0x20 + pop {r4, pc} + thumb_func_end MOD73_021D92B8 + + thumb_func_start MOD73_021D92EC +MOD73_021D92EC: ; 0x021D92EC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r0, r1, #0 + add r6, r3, #0 + add r7, r2, #0 + add r1, r5, #4 + add r2, r6, #0 + bl FUN_02008C9C + str r0, [r5] + mov r4, #0 +_021D9302: + add r0, r7, #0 + add r1, r4, #0 + add r2, r6, #0 + bl FUN_02008DEC + mov r1, #0x4b + lsl r1, r1, #2 + str r0, [r5, r1] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D9302 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D92EC + + thumb_func_start MOD73_021D931C +MOD73_021D931C: ; 0x021D931C + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5] + bl FUN_0201FD58 + mov r4, #0 + mov r6, #0x4b + str r4, [r5] + lsl r6, r6, #2 +_021D932E: + ldr r0, [r5, r6] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D932E + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021D931C + + thumb_func_start MOD73_021D9340 +MOD73_021D9340: ; 0x021D9340 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + ldr r6, [sp, #0x58] + add r5, r0, #0 + ldr r7, [sp, #0x5c] + str r6, [sp] + mov r0, #1 + str r0, [sp, #4] + str r7, [sp, #8] + str r0, [sp, #0xc] + mov r0, #0x4b + lsl r0, r0, #2 + add r4, r1, #0 + str r3, [sp, #0x30] + str r2, [sp, #0x2c] + add r1, r2, #0 + ldr r0, [r5, r0] + ldr r2, [sp, #0x4c] + mov r3, #0 + bl FUN_02008F90 + str r0, [r4] + str r6, [sp] + mov r1, #1 + ldr r0, [sp, #0x48] + str r1, [sp, #4] + str r0, [sp, #8] + str r7, [sp, #0xc] + mov r0, #0x13 + str r1, [sp, #0x10] + lsl r0, r0, #4 + ldr r0, [r5, r0] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x30] + mov r3, #0 + bl FUN_0200904C + str r0, [r4, #4] + mov r3, #0 + str r3, [r4, #0x10] + str r6, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x4d + str r7, [sp, #8] + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x50] + bl FUN_020090AC + str r0, [r4, #8] + str r6, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x4e + str r7, [sp, #8] + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x54] + mov r3, #0 + bl FUN_020090AC + str r0, [r4, #0xc] + ldr r0, [r4] + bl FUN_02009B78 + cmp r0, #0 + bne _021D93D0 + bl ErrorHandling +_021D93D0: + ldr r0, [r4] + bl FUN_02009474 + ldr r0, [r4, #4] + bl FUN_02009D68 + cmp r0, #0 + bne _021D93E4 + bl ErrorHandling +_021D93E4: + ldr r0, [r4, #4] + bl FUN_02009474 + mov r0, #0 + mov r2, #0x4b + str r6, [sp] + mvn r0, r0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r2, r2, #2 + ldr r1, [r5, r2] + add r4, #0x14 + str r1, [sp, #0x14] + add r1, r2, #4 + ldr r1, [r5, r1] + add r3, r6, #0 + str r1, [sp, #0x18] + add r1, r2, #0 + add r1, #8 + ldr r1, [r5, r1] + add r2, #0xc + str r1, [sp, #0x1c] + ldr r1, [r5, r2] + add r2, r6, #0 + str r1, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r4, #0 + add r1, r6, #0 + bl FUN_02008AA4 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D9340 + + thumb_func_start MOD73_021D942C +MOD73_021D942C: ; 0x021D942C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x38 + ldr r6, [sp, #0x5c] + add r5, r0, #0 + ldr r7, [sp, #0x60] + str r6, [sp] + mov r0, #1 + str r0, [sp, #4] + str r7, [sp, #8] + str r0, [sp, #0xc] + mov r0, #0x4b + lsl r0, r0, #2 + add r4, r1, #0 + str r3, [sp, #0x30] + str r2, [sp, #0x2c] + add r1, r2, #0 + ldr r0, [r5, r0] + ldr r2, [sp, #0x50] + mov r3, #0 + bl FUN_02008F90 + str r0, [r4] + ldr r0, [sp, #0x30] + str r0, [r4, #4] + mov r0, #1 + str r0, [r4, #0x10] + ldr r0, [sp, #0x30] + bl FUN_02009530 + str r0, [sp, #0x34] + str r6, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x4d + str r7, [sp, #8] + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x54] + mov r3, #0 + bl FUN_020090AC + str r0, [r4, #8] + str r6, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x4e + str r7, [sp, #8] + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x58] + mov r3, #0 + bl FUN_020090AC + str r0, [r4, #0xc] + ldr r0, [r4] + bl FUN_02009B78 + cmp r0, #0 + bne _021D94AA + bl ErrorHandling +_021D94AA: + ldr r0, [r4] + bl FUN_02009474 + mov r0, #0 + mov r2, #0x4b + str r6, [sp] + mvn r0, r0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r2, r2, #2 + ldr r1, [r5, r2] + add r4, #0x14 + str r1, [sp, #0x14] + add r1, r2, #4 + ldr r1, [r5, r1] + add r3, r6, #0 + str r1, [sp, #0x18] + add r1, r2, #0 + add r1, #8 + ldr r1, [r5, r1] + add r2, #0xc + str r1, [sp, #0x1c] + ldr r1, [r5, r2] + ldr r2, [sp, #0x34] + str r1, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r4, #0 + add r1, r6, #0 + bl FUN_02008AA4 + add sp, #0x38 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021D942C + + thumb_func_start MOD73_021D94F4 +MOD73_021D94F4: ; 0x021D94F4 + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + add r5, r0, #0 + ldr r0, [r7] + bl FUN_02009C0C + ldr r0, [r7, #0x10] + cmp r0, #0 + bne _021D950C + ldr r0, [r7, #4] + bl FUN_02009E04 +_021D950C: + mov r6, #0 + add r4, r7, #0 +_021D9510: + cmp r6, #1 + beq _021D9522 + mov r0, #0x4b + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [r4] + bl FUN_02009490 + b _021D9534 +_021D9522: + ldr r0, [r7, #0x10] + cmp r0, #0 + bne _021D9534 + mov r0, #0x4b + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r1, [r4] + bl FUN_02009490 +_021D9534: + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #4 + blt _021D9510 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D94F4 + + thumb_func_start MOD73_021D9540 +MOD73_021D9540: ; 0x021D9540 + push {r4, lr} + sub sp, #0x20 + ldr r0, [r0] + add r1, #0x14 + str r0, [sp] + ldr r0, [sp, #0x28] + str r1, [sp, #4] + str r0, [sp, #0x10] + ldr r0, [sp, #0x2c] + str r2, [sp, #8] + str r0, [sp, #0x14] + mov r0, #1 + str r0, [sp, #0x18] + ldr r0, [sp, #0x30] + str r3, [sp, #0xc] + str r0, [sp, #0x1c] + add r0, sp, #0 + bl FUN_0201FF84 + add r4, r0, #0 + bne _021D956E + bl ErrorHandling +_021D956E: + add r0, r4, #0 + add sp, #0x20 + pop {r4, pc} + thumb_func_end MOD73_021D9540 + + thumb_func_start MOD73_021D9574 +MOD73_021D9574: ; 0x021D9574 + str r1, [r0] + str r1, [r0, #4] + sub r1, r2, r1 + str r1, [r0, #8] + str r3, [r0, #0x10] + mov r1, #0 + str r1, [r0, #0xc] + bx lr + thumb_func_end MOD73_021D9574 + + thumb_func_start MOD73_021D9584 +MOD73_021D9584: ; 0x021D9584 + push {r4, lr} + add r4, r0, #0 + ldr r2, [r4, #0xc] + ldr r0, [r4, #8] + lsl r2, r2, #0xc + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r0, r0, r2 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + ldr r1, [r4, #0x10] + lsl r1, r1, #0xc + bl FX_Div + ldr r1, [r4, #4] + add r0, r0, r1 + str r0, [r4] + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + add r0, r0, #1 + cmp r0, r1 + bgt _021D95C4 + str r0, [r4, #0xc] + mov r0, #0 + pop {r4, pc} +_021D95C4: + str r1, [r4, #0xc] + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9584 + + thumb_func_start MOD73_021D95CC +MOD73_021D95CC: ; 0x021D95CC + push {r3, r4, r5, r6, r7, lr} + ldr r4, [sp, #0x18] + add r5, r0, #0 + add r7, r2, #0 + add r0, r3, #0 + add r6, r1, #0 + lsl r2, r4, #0xc + str r3, [sp] + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + add r2, r0, #0 + sub r0, r7, r6 + mov r7, #2 + mov r3, #0 + lsl r7, r7, #0xa + add r2, r2, r7 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r2, r2, #0xc + orr r2, r1 + sub r2, r0, r2 + asr r1, r2, #0x1f + lsr r0, r2, #0x13 + lsl r1, r1, #0xd + orr r1, r0 + lsl r0, r2, #0xd + add r0, r0, r7 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + add r1, r4, #0 + mul r1, r4 + lsl r1, r1, #0xc + bl FX_Div + str r6, [r5] + ldr r1, [sp] + str r6, [r5, #4] + str r1, [r5, #8] + str r0, [r5, #0xc] + mov r0, #0 + str r0, [r5, #0x10] + str r4, [r5, #0x14] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021D95CC + + thumb_func_start MOD73_021D962C +MOD73_021D962C: ; 0x021D962C + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r6, [r5, #0x10] + ldr r0, [r5, #8] + lsl r2, r6, #0xc + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsr r4, r2, #0xc + lsl r0, r1, #0x14 + add r2, r6, #0 + orr r4, r0 + ldr r0, [r5, #0xc] + mul r2, r6 + lsl r2, r2, #0xc + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r0, r0, r2 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + lsl r1, r2, #2 + bl FX_Div + ldr r1, [r5, #4] + add r0, r4, r0 + add r0, r1, r0 + str r0, [r5] + ldr r0, [r5, #0x10] + ldr r1, [r5, #0x14] + add r0, r0, #1 + cmp r0, r1 + bgt _021D968C + str r0, [r5, #0x10] + mov r0, #0 + pop {r4, r5, r6, pc} +_021D968C: + str r1, [r5, #0x10] + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021D962C + + thumb_func_start MOD73_021D9694 +MOD73_021D9694: ; 0x021D9694 + push {r4} + sub sp, #0xc + str r2, [sp, #4] + str r3, [sp, #8] + add r2, sp, #0 + add r4, r0, #0 + str r1, [sp] + ldmia r2!, {r0, r1} + stmia r4!, {r0, r1} + ldr r0, [r2] + str r0, [r4] + add sp, #0xc + pop {r4} + bx lr + thumb_func_end MOD73_021D9694 + + thumb_func_start MOD73_021D96B0 +MOD73_021D96B0: ; 0x021D96B0 + push {r3, r4, r5, lr} + mov r2, #0x1f + add r4, r1, #0 + mov r1, #0 + lsl r2, r2, #4 + add r5, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x42 + lsl r0, r0, #2 + str r4, [r5, r0] + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021D96B0 + + thumb_func_start MOD73_021D96C8 +MOD73_021D96C8: ; 0x021D96C8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021D96D6 + bl ErrorHandling +_021D96D6: + mov r2, #0x1f + add r0, r4, #0 + mov r1, #0 + lsl r2, r2, #4 + bl Call_FillMemWithValue + pop {r4, pc} + thumb_func_end MOD73_021D96C8 + + thumb_func_start MOD73_021D96E4 +MOD73_021D96E4: ; 0x021D96E4 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + str r0, [sp, #0x18] + ldr r4, [sp, #0x18] + mov r0, #0 + ldr r6, [sp, #0x40] + ldr r5, [sp, #0x18] + str r1, [sp, #0x1c] + add r7, r2, #0 + str r3, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r4, #0x28 +_021D96FE: + ldr r0, [sp, #0x1c] + ldr r3, [r0] + cmp r3, #0 + beq _021D977A + mov r0, #1 + str r0, [sp] + add r0, r3, #0 + sub r0, #0x8f + str r0, [sp, #4] + mov r0, #5 + str r0, [sp, #8] + mov r0, #4 + str r0, [sp, #0xc] + mov r0, #0xfa + ldr r1, [sp, #0x28] + lsl r0, r0, #2 + add r0, r1, r0 + str r0, [sp, #0x10] + add r0, r7, #0 + add r1, r4, #0 + mov r2, #0x35 + sub r3, #0x4f + str r6, [sp, #0x14] + bl MOD73_021D9340 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r2, #0 + add r0, r7, #0 + add r1, r4, #0 + add r3, r2, #0 + str r6, [sp, #8] + bl MOD73_021D9540 + mov r1, #0 + str r0, [r5, #8] + bl FUN_020200A0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r2, #0 + ldr r1, [sp, #0x20] + str r6, [sp, #8] + add r0, r7, #0 + add r3, r2, #0 + bl MOD73_021D9540 + str r0, [r5, #0x18] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r5, #0x18] + mov r1, #1 + bl FUN_02020130 + ldr r0, [sp, #0x24] + add r4, #0x38 + add r0, r0, #1 + add r5, r5, #4 + str r0, [sp, #0x24] +_021D977A: + mov r0, #0x42 + ldr r1, [sp, #0x18] + lsl r0, r0, #2 + ldr r1, [r1, r0] + ldr r0, [sp, #0x24] + cmp r1, r0 + beq _021D9798 + ldr r0, [sp, #0x1c] + add r0, r0, #4 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x28] + add r0, r0, #1 + str r0, [sp, #0x28] + cmp r0, #4 + blt _021D96FE +_021D9798: + ldr r0, [sp, #0x18] + mov r1, #1 + str r1, [r0] + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021D96E4 + + thumb_func_start MOD73_021D97A4 +MOD73_021D97A4: ; 0x021D97A4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + ldr r0, [r7] + str r1, [sp] + cmp r0, #1 + beq _021D97B4 + bl ErrorHandling +_021D97B4: + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r7, r0] + mov r4, #0 + cmp r0, #0 + ble _021D97EA + add r6, r7, #0 + add r5, r7, #0 + add r6, #0x28 +_021D97C6: + ldr r0, [r5, #8] + bl FUN_0201FFC8 + ldr r0, [r5, #0x18] + bl FUN_0201FFC8 + ldr r0, [sp] + add r1, r6, #0 + bl MOD73_021D94F4 + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r7, r0] + add r4, r4, #1 + add r5, r5, #4 + add r6, #0x38 + cmp r4, r0 + blt _021D97C6 +_021D97EA: + mov r0, #0 + str r0, [r7] + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D97A4 + + thumb_func_start MOD73_021D97F0 +MOD73_021D97F0: ; 0x021D97F0 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + str r0, [sp, #4] + ldr r0, [r0, #4] + cmp r0, #0 + beq _021D9800 + bl ErrorHandling +_021D9800: + mov r0, #0 + str r0, [sp, #0xc] + mov r2, #0x42 + ldr r0, [sp, #4] + lsl r2, r2, #2 + ldr r0, [r0, r2] + cmp r0, #0 + ble _021D98A0 + ldr r0, [sp, #4] + add r1, r2, #4 + add r0, r0, r1 + str r0, [sp, #8] + ldr r0, [sp, #4] + add r2, #0x64 + ldr r4, _021D98B4 ; =0x021DBE2C + add r7, r0, r2 + add r6, r0, #0 + add r5, r0, #0 +_021D9824: + ldrb r0, [r4, #0x10] + mov r1, #8 + mov r2, #0xa + str r0, [sp] + ldrsh r1, [r4, r1] + ldrsh r2, [r4, r2] + ldr r0, [sp, #8] + ldr r3, [r4] + lsl r1, r1, #0xc + lsl r2, r2, #0xc + bl MOD73_021D95CC + ldrb r0, [r4, #0x10] + mov r1, #0xc + mov r2, #0xe + str r0, [sp] + ldrsh r1, [r4, r1] + ldrsh r2, [r4, r2] + ldr r3, [r4, #4] + add r0, r7, #0 + lsl r1, r1, #0xc + lsl r2, r2, #0xc + bl MOD73_021D95CC + mov r1, #0x43 + mov r2, #0x5b + lsl r1, r1, #2 + lsl r2, r2, #2 + ldr r1, [r6, r1] + ldr r2, [r6, r2] + add r0, sp, #0x10 + mov r3, #0 + bl MOD73_021D9694 + ldr r0, [r5, #8] + add r1, sp, #0x10 + bl FUN_02020044 + mov r0, #0x73 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + ldrb r1, [r4, #0x11] + add r0, #0x10 + add r4, #0x14 + str r1, [r5, r0] + ldr r0, [sp, #8] + ldr r1, [sp, #4] + add r0, #0x18 + str r0, [sp, #8] + ldr r0, [sp, #0xc] + add r7, #0x18 + add r0, r0, #1 + str r0, [sp, #0xc] + mov r0, #0x42 + lsl r0, r0, #2 + ldr r1, [r1, r0] + ldr r0, [sp, #0xc] + add r6, #0x18 + add r5, r5, #4 + cmp r0, r1 + blt _021D9824 +_021D98A0: + mov r1, #0x7b + ldr r0, [sp, #4] + mov r2, #0 + lsl r1, r1, #2 + str r2, [r0, r1] + mov r1, #1 + str r1, [r0, #4] + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021D98B4: .word 0x021DBE2C + thumb_func_end MOD73_021D97F0 + + thumb_func_start MOD73_021D98B8 +MOD73_021D98B8: ; 0x021D98B8 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r6, r0, #0 + mov r0, #0 + str r0, [sp, #4] + ldr r0, [r6, #4] + cmp r0, #0 + bne _021D98CE + add sp, #0x1c + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021D98CE: + mov r0, #0x7b + lsl r0, r0, #2 + add r1, r0, #0 + sub r1, #0xe4 + ldr r2, [r6, r0] + ldr r1, [r6, r1] + cmp r2, r1 + bge _021D991E + add r1, r0, #0 + sub r1, #0x10 + add r1, r6, r1 + lsl r3, r2, #2 + ldr r2, [r1, r3] + sub r2, r2, #1 + str r2, [r1, r3] + ldr r1, [r6, r0] + lsl r1, r1, #2 + add r2, r6, r1 + add r1, r0, #0 + sub r1, #0x10 + ldr r1, [r2, r1] + cmp r1, #0 + bgt _021D991E + add r3, r0, #0 + mov r1, #1 + sub r3, #0x20 + str r1, [r2, r3] + ldr r0, [r6, r0] + lsl r0, r0, #2 + add r0, r6, r0 + ldr r0, [r0, #8] + bl FUN_020200A0 + mov r1, #0x7b + lsl r1, r1, #2 + ldr r2, [r6, r1] + add r0, r2, #2 + str r0, [sp, #4] + add r0, r2, #1 + str r0, [r6, r1] +_021D991E: + mov r1, #0x42 + mov r0, #0 + lsl r1, r1, #2 + str r0, [sp, #8] + ldr r0, [r6, r1] + cmp r0, #0 + ble _021D9A02 + add r0, r1, #4 + add r0, r6, r0 + add r1, #0x64 + add r4, r6, #0 + str r0, [sp] + add r7, r6, r1 + add r5, r6, #0 +_021D993A: + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #3 + bhi _021D99E0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D9950: ; jump table + .short _021D99E4 - _021D9950 - 2 ; case 0 + .short _021D9958 - _021D9950 - 2 ; case 1 + .short _021D99BE - _021D9950 - 2 ; case 2 + .short _021D99E4 - _021D9950 - 2 ; case 3 +_021D9958: + ldr r0, [sp] + bl MOD73_021D962C + str r0, [sp, #0xc] + add r0, r7, #0 + bl MOD73_021D962C + mov r1, #0x43 + mov r2, #0x5b + lsl r1, r1, #2 + lsl r2, r2, #2 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + add r0, sp, #0x10 + mov r3, #0 + bl MOD73_021D9694 + ldr r0, [r4, #8] + add r1, sp, #0x10 + bl FUN_02020044 + ldr r0, [sp, #0xc] + cmp r0, #1 + bne _021D99E4 + ldr r0, [r4, #0x18] + add r1, sp, #0x10 + bl FUN_02020044 + ldr r0, [r4, #0x18] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r4, #0x18] + mov r1, #1 + bl FUN_020200BC + ldr r0, [r4, #8] + mov r1, #0 + bl FUN_020200A0 + ldr r0, _021D9A24 ; =0x000006BC + bl FUN_020054C8 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r0, #1 + mov r0, #0x73 + lsl r0, r0, #2 + str r1, [r4, r0] + b _021D99E4 +_021D99BE: + ldr r0, [r4, #0x18] + bl FUN_02020388 + cmp r0, #0 + bne _021D99E4 + ldr r0, [r4, #0x18] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, r0, #1 + mov r0, #0x73 + lsl r0, r0, #2 + str r1, [r4, r0] + b _021D99E4 +_021D99E0: + bl ErrorHandling +_021D99E4: + ldr r0, [sp] + add r4, r4, #4 + add r0, #0x18 + str r0, [sp] + ldr r0, [sp, #8] + add r7, #0x18 + add r0, r0, #1 + str r0, [sp, #8] + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r6, r0] + ldr r1, [sp, #8] + add r5, #0x18 + cmp r1, r0 + blt _021D993A +_021D9A02: + sub r0, r0, #1 + lsl r0, r0, #2 + add r1, r6, r0 + mov r0, #0x73 + lsl r0, r0, #2 + ldr r0, [r1, r0] + cmp r0, #3 + bne _021D9A1C + mov r0, #0 + str r0, [r6, #4] + add sp, #0x1c + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021D9A1C: + ldr r0, [sp, #4] + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021D9A24: .word 0x000006BC + thumb_func_end MOD73_021D98B8 + + thumb_func_start MOD73_021D9A28 +MOD73_021D9A28: ; 0x021D9A28 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r6, r2, #0 + add r5, r0, #0 + mov r1, #0 + mov r2, #0x34 + add r7, r3, #0 + bl Call_FillMemWithValue + str r6, [r5, #0x18] + ldr r0, [sp, #0x1c] + str r4, [r5, #0x14] + str r0, [r5] + ldr r0, [sp, #0x18] + str r7, [r5, #0x1c] + str r0, [r5, #0x10] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021D9A28 + + thumb_func_start MOD73_021D9A4C +MOD73_021D9A4C: ; 0x021D9A4C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + cmp r0, #0 + beq _021D9A5A + bl ErrorHandling +_021D9A5A: + add r0, r4, #0 + mov r1, #0 + mov r2, #0x34 + bl Call_FillMemWithValue + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9A4C + + thumb_func_start MOD73_021D9A68 +MOD73_021D9A68: ; 0x021D9A68 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5, #0x30] + add r4, r1, #0 + add r6, r2, #0 + cmp r0, #0 + beq _021D9A7A + bl ErrorHandling +_021D9A7A: + add r0, r5, #0 + add r1, r6, #0 + str r4, [r5, #4] + bl MOD73_021D9BE0 + add r0, r5, #0 + add r1, r6, #0 + bl MOD73_021D9CA0 + mov r0, #1 + str r0, [r5, #0x30] + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021D9A68 + + thumb_func_start MOD73_021D9A94 +MOD73_021D9A94: ; 0x021D9A94 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + cmp r0, #1 + beq _021D9AA2 + bl ErrorHandling +_021D9AA2: + add r0, r4, #0 + bl MOD73_021D9C7C + add r0, r4, #0 + bl MOD73_021D9D48 + mov r0, #0 + str r0, [r4, #0x30] + pop {r4, pc} + thumb_func_end MOD73_021D9A94 + + thumb_func_start MOD73_021D9AB4 +MOD73_021D9AB4: ; 0x021D9AB4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + bl FUN_02019570 + ldr r0, [r4, #4] + mov r1, #4 + bl FUN_02018744 + pop {r4, pc} + thumb_func_end MOD73_021D9AB4 + + thumb_func_start MOD73_021D9AC8 +MOD73_021D9AC8: ; 0x021D9AC8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + mov r1, #0xf + bl FUN_02019620 + ldr r1, [r4, #0x18] + mov r2, #0 + ldr r0, [r4, #8] + ldr r1, [r1, #0xc] + add r3, r2, #0 + bl MOD73_021D9D5C + mov r1, #0 + ldr r0, [r4, #8] + mov r2, #1 + add r3, r1, #0 + bl FUN_0200D0BC + pop {r4, pc} + thumb_func_end MOD73_021D9AC8 + + thumb_func_start MOD73_021D9AF0 +MOD73_021D9AF0: ; 0x021D9AF0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + ldr r0, [r5, #0x14] + cmp r0, #1 + beq _021D9BDC + mov r4, #0 + cmp r0, #0 + ble _021D9BCE +_021D9B02: + lsr r2, r4, #0x1f + lsl r1, r4, #0x1f + sub r1, r1, r2 + mov r0, #0x1f + ror r1, r0 + add r1, r2, r1 + add r2, r4, r2 + asr r2, r2, #1 + mov r0, #0xc + add r6, r1, #0 + mul r6, r0 + lsl r0, r2, #2 + add r2, r2, r0 + str r2, [sp, #0x1c] + mov r2, #0xa + str r2, [sp] + mov r2, #4 + str r2, [sp, #4] + ldr r2, [r5, #0x2c] + lsl r0, r0, #0x18 + add r2, #0xc + str r2, [sp, #8] + mov r2, #0xa + mul r2, r1 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0xc] + lsr r0, r0, #0x18 + ldr r3, [sp, #0x1c] + str r0, [sp, #0x10] + mov r0, #0x14 + str r0, [sp, #0x14] + mov r0, #8 + add r2, r6, #5 + add r3, #0xd + str r0, [sp, #0x18] + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r5, #4] + mov r1, #5 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_02018170 + mov r0, #0xa + ldr r3, [sp, #0x1c] + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + add r2, r6, #5 + add r3, #0xd + str r0, [sp, #8] + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r5, #4] + mov r1, #5 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_020186B4 + ldr r7, [r5, #0x1c] + mov r2, #0x13 + ldr r0, [r5, #0x18] + add r3, r7, r4 + lsl r2, r2, #4 + ldrb r2, [r3, r2] + ldr r0, [r0, #4] + mov r1, #0 + lsl r2, r2, #2 + add r3, r7, r2 + mov r2, #0x4d + lsl r2, r2, #2 + ldr r2, [r3, r2] + bl FUN_0200ABC0 + ldr r2, [r5, #0x18] + ldr r0, [r2, #4] + ldr r1, [r2, #8] + ldr r2, [r2, #0x14] + bl FUN_0200B7B8 + ldr r1, [r5, #0x18] + lsl r0, r6, #3 + ldr r1, [r1, #8] + add r0, #0x20 + mov r2, #1 + bl MOD73_021D9244 + ldr r1, [r5, #0x18] + ldr r3, [sp, #0x1c] + add r2, r0, #0 + lsl r3, r3, #3 + ldr r0, [r5, #0xc] + ldr r1, [r1, #8] + add r3, #8 + bl MOD73_021D9D5C + ldr r0, [r5, #0x14] + add r4, r4, #1 + cmp r4, r0 + blt _021D9B02 +_021D9BCE: + ldr r0, [r5, #0xc] + bl FUN_02019220 + ldr r0, [r5, #4] + mov r1, #5 + bl FUN_0201AC68 +_021D9BDC: + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021D9AF0 + + thumb_func_start MOD73_021D9BE0 +MOD73_021D9BE0: ; 0x021D9BE0 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018FF4 + str r0, [r5, #8] + add r0, r4, #0 + mov r1, #1 + bl FUN_02018FF4 + str r0, [r5, #0xc] + mov r0, #0x13 + str r0, [sp] + mov r0, #0x17 + str r0, [sp, #4] + mov r2, #4 + str r2, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + mov r0, #0x1f + str r0, [sp, #0x10] + ldr r0, [r5, #4] + ldr r1, [r5, #8] + add r3, r2, #0 + bl FUN_02019064 + mov r0, #0xd + str r0, [sp] + mov r0, #0x14 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + mov r0, #0x1f + str r0, [sp, #0x10] + ldr r0, [r5, #4] + ldr r1, [r5, #0xc] + mov r2, #4 + mov r3, #6 + bl FUN_02019064 + ldr r0, [r5, #8] + mov r1, #0xf + bl FUN_02019620 + ldr r0, [r5, #0xc] + mov r1, #0 + bl FUN_02019620 + ldr r0, [r5, #0x10] + mov r1, #4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + str r4, [sp, #4] + ldr r0, [r5, #4] + mov r2, #1 + mov r3, #0 + bl FUN_0200CD68 + mov r0, #4 + mov r1, #0x20 + add r2, r4, #0 + bl FUN_02002EEC + mov r1, #1 + ldr r0, [r5, #8] + add r2, r1, #0 + mov r3, #0 + bl FUN_0200D0BC + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021D9BE0 + + thumb_func_start MOD73_021D9C7C +MOD73_021D9C7C: ; 0x021D9C7C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + bl FUN_02019178 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020191A4 + ldr r0, [r4, #0xc] + bl FUN_02019178 + ldr r0, [r4, #0xc] + mov r1, #1 + bl FUN_020191A4 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9C7C + + thumb_func_start MOD73_021D9CA0 +MOD73_021D9CA0: ; 0x021D9CA0 + push {r3, r4, r5, lr} + sub sp, #0x10 + mov r3, #0x40 + add r5, r0, #0 + add r4, r1, #0 + str r3, [sp] + mov r0, #0x7a + mov r1, #1 + mov r2, #4 + str r4, [sp, #4] + bl FUN_02006930 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + str r1, [sp, #8] + str r4, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7a + mov r3, #5 + bl FUN_0200687C + ldr r0, [r5, #0x14] + cmp r0, #1 + bne _021D9CD6 + mov r1, #2 + b _021D9CD8 +_021D9CD6: + mov r1, #3 +_021D9CD8: + add r3, r5, #0 + str r4, [sp] + mov r0, #0x7a + mov r2, #0 + add r3, #0x24 + bl FUN_02006BDC + str r0, [r5, #0x20] + ldr r2, [r5, #0x24] + mov r3, #0 + str r3, [sp] + ldrh r0, [r2] + mov r1, #5 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldrh r0, [r2, #2] + add r2, #0xc + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #8] + ldr r0, [r5, #4] + bl FUN_02018148 + ldr r1, [r5, #0x24] + mov r2, #0 + ldrh r0, [r1] + add r3, r2, #0 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp] + ldrh r0, [r1, #2] + mov r1, #5 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + ldr r0, [r5, #4] + bl FUN_020186B4 + add r3, r5, #0 + str r4, [sp] + mov r0, #0x7a + mov r1, #4 + mov r2, #0 + add r3, #0x2c + bl FUN_02006BDC + str r0, [r5, #0x28] + ldr r0, [r5, #4] + mov r1, #5 + bl FUN_0201AC68 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021D9CA0 + + thumb_func_start MOD73_021D9D48 +MOD73_021D9D48: ; 0x021D9D48 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x20] + bl FUN_02016A18 + ldr r0, [r4, #0x28] + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9D48 + + thumb_func_start MOD73_021D9D5C +MOD73_021D9D5C: ; 0x021D9D5C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r1, #0 + add r4, r2, #0 + str r3, [sp] + mov r2, #0 + ldr r1, _021D9D80 ; =0x0001020F + str r2, [sp, #4] + str r1, [sp, #8] + str r2, [sp, #0xc] + mov r1, #1 + add r2, r5, #0 + add r3, r4, #0 + bl FUN_0201BDE0 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D9D80: .word 0x0001020F + thumb_func_end MOD73_021D9D5C + + thumb_func_start MOD73_021D9D84 +MOD73_021D9D84: ; 0x021D9D84 + mov r1, #0 + strb r1, [r0] + strb r1, [r0, #1] + strb r1, [r0, #2] + strb r1, [r0, #3] + strb r1, [r0, #4] + strb r1, [r0, #5] + strb r1, [r0, #6] + strb r1, [r0, #7] + strb r1, [r0, #8] + strb r1, [r0, #9] + strb r1, [r0, #0xa] + strb r1, [r0, #0xb] + bx lr + thumb_func_end MOD73_021D9D84 + + thumb_func_start MOD73_021D9DA0 +MOD73_021D9DA0: ; 0x021D9DA0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021D9DAE + bl ErrorHandling +_021D9DAE: + mov r0, #0 + strb r0, [r4] + strb r0, [r4, #1] + strb r0, [r4, #2] + strb r0, [r4, #3] + strb r0, [r4, #4] + strb r0, [r4, #5] + strb r0, [r4, #6] + strb r0, [r4, #7] + strb r0, [r4, #8] + strb r0, [r4, #9] + strb r0, [r4, #0xa] + strb r0, [r4, #0xb] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9DA0 + + thumb_func_start MOD73_021D9DCC +MOD73_021D9DCC: ; 0x021D9DCC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r3, [sp, #8] + add r0, r1, #0 + ldr r3, [sp, #0x18] + mov r1, #0x38 + mul r1, r3 + add r1, r2, r1 + mov r2, #2 + mov r3, #6 + lsl r2, r2, #0x12 + lsl r3, r3, #0x10 + bl MOD73_021D9540 + str r0, [r4, #8] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4, #8] + ldr r1, [sp, #0x1c] + bl FUN_02020130 + mov r0, #1 + str r0, [r4] + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD73_021D9DCC + + thumb_func_start MOD73_021D9E08 +MOD73_021D9E08: ; 0x021D9E08 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #1 + beq _021D9E16 + bl ErrorHandling +_021D9E16: + ldr r0, [r4, #8] + bl FUN_0201FFC8 + mov r0, #0 + str r0, [r4] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9E08 + + thumb_func_start MOD73_021D9E24 +MOD73_021D9E24: ; 0x021D9E24 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020200BC + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9E24 + + thumb_func_start MOD73_021D9E3C +MOD73_021D9E3C: ; 0x021D9E3C + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x2a + lsl r0, r0, #0xe + str r0, [sp] + mov r0, #0xf + lsl r0, r0, #0xe + str r0, [sp, #4] + ldr r0, [r4, #8] + add r1, sp, #0 + bl FUN_02020044 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9E3C + + thumb_func_start MOD73_021D9E6C +MOD73_021D9E6C: ; 0x021D9E6C + push {r3, lr} + ldr r0, [r0, #8] + bl FUN_02020388 + cmp r0, #0 + bne _021D9E7C + mov r0, #1 + pop {r3, pc} +_021D9E7C: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD73_021D9E6C + + thumb_func_start MOD73_021D9E80 +MOD73_021D9E80: ; 0x021D9E80 + ldr r3, _021D9E88 ; =Call_FillMemWithValue + mov r1, #0 + mov r2, #0x78 + bx r3 + .align 2, 0 +_021D9E88: .word Call_FillMemWithValue + thumb_func_end MOD73_021D9E80 + + thumb_func_start MOD73_021D9E8C +MOD73_021D9E8C: ; 0x021D9E8C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x74] + cmp r0, #0 + beq _021D9E9A + bl ErrorHandling +_021D9E9A: + add r0, r4, #0 + mov r1, #0 + mov r2, #0x78 + bl Call_FillMemWithValue + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021D9E8C + + thumb_func_start MOD73_021D9EA8 +MOD73_021D9EA8: ; 0x021D9EA8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r0, [sp, #8] + ldr r0, [r0, #0x74] + add r7, r2, #0 + str r1, [sp, #0xc] + cmp r0, #0 + beq _021D9EBC + bl ErrorHandling +_021D9EBC: + ldr r4, _021D9F5C ; =0x021DBDE4 + ldr r5, [sp, #8] + mov r6, #0 +_021D9EC2: + ldrb r1, [r4] + ldr r0, [sp, #0xc] + add r2, r7, #0 + bl MOD73_021D9258 + add r6, r6, #1 + add r4, r4, #1 + stmia r5!, {r0} + cmp r6, #6 + blt _021D9EC2 + ldr r4, _021D9F60 ; =0x021DBE04 + ldr r5, [sp, #8] + mov r6, #0 +_021D9EDC: + ldrb r1, [r4] + ldr r0, [sp, #0xc] + add r2, r7, #0 + bl MOD73_021D9288 + str r0, [r5, #0x18] + add r6, r6, #1 + add r4, r4, #1 + add r5, r5, #4 + cmp r6, #8 + blt _021D9EDC + mov r0, #0 + str r0, [sp, #0x10] + ldr r0, _021D9F64 ; =0x021DBDF4 + ldr r6, _021D9F68 ; =0x021DBDFC + ldr r4, _021D9F6C ; =0x021DBE0C + ldr r5, [sp, #8] + ldr r7, _021D9F70 ; =0x021DBDEC + str r0, [sp, #0x14] +_021D9F02: + ldrb r0, [r6] + str r0, [sp] + ldr r0, [sp, #0x14] + ldrb r0, [r0] + str r0, [sp, #4] + ldrb r1, [r7] + ldrb r3, [r4] + ldr r0, [sp, #0xc] + lsl r2, r1, #2 + ldr r1, [sp, #8] + ldr r1, [r1, r2] + ldr r2, [r5, #0x18] + bl MOD73_021D92B8 + str r0, [r5, #0x38] + ldrb r2, [r4] + mov r1, #0x80 + ldrb r3, [r6] + sub r1, r1, r2 + mov r2, #0x60 + sub r2, r2, r3 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_02013ED8 + ldr r0, [sp, #0x14] + add r6, r6, #1 + add r0, r0, #1 + str r0, [sp, #0x14] + ldr r0, [sp, #0x10] + add r4, r4, #1 + add r0, r0, #1 + add r5, r5, #4 + add r7, r7, #1 + str r0, [sp, #0x10] + cmp r0, #8 + blt _021D9F02 + ldr r0, [sp, #8] + mov r1, #1 + str r1, [r0, #0x74] + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9F5C: .word 0x021DBDE4 +_021D9F60: .word 0x021DBE04 +_021D9F64: .word 0x021DBDF4 +_021D9F68: .word 0x021DBDFC +_021D9F6C: .word 0x021DBE0C +_021D9F70: .word 0x021DBDEC + thumb_func_end MOD73_021D9EA8 + + thumb_func_start MOD73_021D9F74 +MOD73_021D9F74: ; 0x021D9F74 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, [r6, #0x74] + cmp r0, #1 + beq _021D9F82 + bl ErrorHandling +_021D9F82: + mov r4, #0 + add r5, r6, #0 +_021D9F86: + ldr r0, [r5, #0x38] + bl FUN_02013EA8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #8 + blt _021D9F86 + mov r5, #0 + add r4, r6, #0 +_021D9F98: + ldr r0, [r4] + bl FUN_02013DD4 + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #6 + blt _021D9F98 + mov r5, #0 + add r4, r6, #0 +_021D9FAA: + ldr r0, [r4, #0x18] + bl FUN_02013E44 + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #8 + blt _021D9FAA + mov r0, #0 + str r0, [r6, #0x74] + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021D9F74 + + thumb_func_start MOD73_021D9FC0 +MOD73_021D9FC0: ; 0x021D9FC0 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + cmp r4, #8 + blo _021D9FD0 + bl ErrorHandling +_021D9FD0: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, #0x38] + add r1, r6, #0 + bl FUN_02013EB0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021D9FC0 + + thumb_func_start MOD73_021D9FE0 +MOD73_021D9FE0: ; 0x021D9FE0 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r4, #5 + add r5, #0x14 +_021D9FEA: + ldr r0, [r5, #0x38] + add r1, r6, #0 + bl FUN_02013F2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #7 + ble _021D9FEA + pop {r4, r5, r6, pc} + thumb_func_end MOD73_021D9FE0 + + thumb_func_start MOD73_021D9FFC +MOD73_021D9FFC: ; 0x021D9FFC + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r4, #5 + add r5, #0x14 +_021DA006: + ldr r0, [r5, #0x38] + add r1, r6, #0 + add r2, r6, #0 + bl FUN_02013EE0 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #7 + ble _021DA006 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021D9FFC + + thumb_func_start MOD73_021DA01C +MOD73_021DA01C: ; 0x021DA01C + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + cmp r4, #8 + blo _021DA02C + bl ErrorHandling +_021DA02C: + lsl r0, r4, #2 + add r0, r5, r0 + lsl r1, r6, #0x18 + ldr r0, [r0, #0x38] + lsr r1, r1, #0x18 + bl FUN_02013F04 + pop {r4, r5, r6, pc} + thumb_func_end MOD73_021DA01C + + thumb_func_start MOD73_021DA03C +MOD73_021DA03C: ; 0x021DA03C + push {r3, lr} + mov r2, #1 + str r2, [r0, #0x6c] + mov r1, #0 + str r1, [r0, #0x70] + lsl r1, r2, #0xc + ldr r2, _021DA054 ; =0x00000FAE + add r0, #0x58 + mov r3, #4 + bl MOD73_021D9574 + pop {r3, pc} + .align 2, 0 +_021DA054: .word 0x00000FAE + thumb_func_end MOD73_021DA03C + + thumb_func_start MOD73_021DA058 +MOD73_021DA058: ; 0x021DA058 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5, #0x6c] + add r3, r1, #0 + cmp r0, #0 + beq _021DA06A + cmp r0, #1 + beq _021DA0A4 + b _021DA0CE +_021DA06A: + ldr r0, [r5, #0x70] + cmp r0, #0 + bne _021DA088 + ldr r1, _021DA0D4 ; =0x021DBE14 + lsl r4, r3, #2 + ldr r2, _021DA0D8 ; =0x021DBE20 + ldr r1, [r1, r4] + ldr r2, [r2, r4] + ldr r4, _021DA0DC ; =0x021DBDE0 + add r0, r5, #0 + ldrb r3, [r4, r3] + add r0, #0x58 + bl MOD73_021D9574 + b _021DA09E +_021DA088: + ldr r1, _021DA0D8 ; =0x021DBE20 + lsl r4, r3, #2 + ldr r2, _021DA0D4 ; =0x021DBE14 + ldr r1, [r1, r4] + ldr r2, [r2, r4] + ldr r4, _021DA0DC ; =0x021DBDE0 + add r0, r5, #0 + ldrb r3, [r4, r3] + add r0, #0x58 + bl MOD73_021D9574 +_021DA09E: + ldr r0, [r5, #0x6c] + add r0, r0, #1 + str r0, [r5, #0x6c] +_021DA0A4: + add r0, r5, #0 + add r0, #0x58 + bl MOD73_021D9584 + add r7, r0, #0 + mov r6, #0 + add r4, r5, #0 +_021DA0B2: + ldr r1, [r5, #0x58] + ldr r0, [r4, #0x38] + add r2, r1, #0 + bl FUN_02013EE0 + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #2 + ble _021DA0B2 + cmp r7, #1 + bne _021DA0D2 + mov r0, #0 + str r0, [r5, #0x6c] + pop {r3, r4, r5, r6, r7, pc} +_021DA0CE: + bl ErrorHandling +_021DA0D2: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DA0D4: .word 0x021DBE14 +_021DA0D8: .word 0x021DBE20 +_021DA0DC: .word 0x021DBDE0 + thumb_func_end MOD73_021DA058 + + thumb_func_start MOD73_021DA0E0 +MOD73_021DA0E0: ; 0x021DA0E0 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r6, r2, #0 + mov r1, #0 + mov r2, #0x20 + add r5, r0, #0 + add r7, r3, #0 + bl Call_FillMemWithValue + str r4, [r5, #0x14] + str r6, [r5, #0x18] + str r7, [r5, #0x1c] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DA0E0 + + thumb_func_start MOD73_021DA0FC +MOD73_021DA0FC: ; 0x021DA0FC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021DA10A + bl ErrorHandling +_021DA10A: + add r0, r4, #0 + mov r1, #0 + mov r2, #0x20 + bl Call_FillMemWithValue + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DA0FC + + thumb_func_start MOD73_021DA118 +MOD73_021DA118: ; 0x021DA118 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + str r0, [sp, #0xc] + mov r0, #2 + lsl r0, r0, #0x12 + str r0, [sp, #0x14] + mov r0, #6 + add r6, r2, #0 + lsl r0, r0, #0x10 + ldr r5, [sp, #0xc] + str r1, [sp, #0x10] + add r7, r3, #0 + str r0, [sp, #0x18] + mov r4, #0 + add r6, #0x38 +_021DA136: + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, [sp, #0x10] + str r7, [sp, #8] + add r1, r6, #0 + mov r2, #0x80 + mov r3, #0x60 + bl MOD73_021D9540 + str r0, [r5, #4] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r5, #4] + add r1, r4, #4 + bl FUN_02020130 + ldr r0, [r5, #4] + add r1, sp, #0x14 + bl FUN_02020044 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021DA136 + ldr r0, [sp, #0xc] + mov r1, #1 + str r1, [r0] + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DA118 + + thumb_func_start MOD73_021DA178 +MOD73_021DA178: ; 0x021DA178 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_021DA180: + ldr r0, [r5, #4] + bl FUN_0201FFC8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021DA180 + mov r0, #0 + str r0, [r6] + pop {r4, r5, r6, pc} + thumb_func_end MOD73_021DA178 + + thumb_func_start MOD73_021DA194 +MOD73_021DA194: ; 0x021DA194 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r6, r0, #0 + ldr r7, [r6, #0x14] + ldr r0, [r6, #0x18] + add r7, #0x98 + mov r4, #0 + cmp r0, #0 + bls _021DA1D2 + add r5, r6, #0 +_021DA1A8: + ldr r0, [r6, #0x14] + add r1, r0, r4 + mov r0, #0x13 + lsl r0, r0, #4 + ldrb r1, [r1, r0] + add r0, r7, r1 + ldrb r1, [r7, r1] + lsl r1, r1, #0xc + str r1, [sp] + ldrb r0, [r0, #4] + add r1, sp, #0 + lsl r0, r0, #0xc + str r0, [sp, #4] + ldr r0, [r5, #4] + bl FUN_02020044 + ldr r0, [r6, #0x18] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, r0 + blo _021DA1A8 +_021DA1D2: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DA194 + + thumb_func_start MOD73_021DA1D8 +MOD73_021DA1D8: ; 0x021DA1D8 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5, #0x18] + mov r4, #0 + str r1, [sp] + cmp r0, #0 + bls _021DA20E + add r6, r5, #0 +_021DA1E8: + ldr r0, [r5, #0x14] + add r1, r0, r4 + mov r0, #0x13 + lsl r0, r0, #4 + ldrb r7, [r1, r0] + ldr r0, [r5, #0x1c] + bl MOD73_021D910C + cmp r7, r0 + beq _021DA204 + ldr r0, [r6, #4] + ldr r1, [sp] + bl FUN_020200A0 +_021DA204: + ldr r0, [r5, #0x18] + add r4, r4, #1 + add r6, r6, #4 + cmp r4, r0 + blo _021DA1E8 +_021DA20E: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021DA1D8 + + thumb_func_start MOD73_021DA210 +MOD73_021DA210: ; 0x021DA210 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r6, r2, #0 + add r5, r0, #0 + mov r1, #0 + mov r2, #0x34 + add r7, r3, #0 + bl Call_FillMemWithValue + str r6, [r5, #0x1c] + ldr r0, [sp, #0x1c] + str r4, [r5, #0x20] + str r0, [r5] + ldr r0, [sp, #0x18] + str r7, [r5, #0x24] + str r0, [r5, #0x18] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DA210 + + thumb_func_start MOD73_021DA234 +MOD73_021DA234: ; 0x021DA234 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _021DA242 + bl ErrorHandling +_021DA242: + add r0, r4, #0 + bl MOD73_021DA4AC + add r0, r4, #0 + mov r1, #0 + mov r2, #0x34 + bl Call_FillMemWithValue + pop {r4, pc} + thumb_func_end MOD73_021DA234 + + thumb_func_start MOD73_021DA254 +MOD73_021DA254: ; 0x021DA254 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5, #0x28] + add r4, r1, #0 + add r6, r2, #0 + cmp r0, #0 + beq _021DA266 + bl ErrorHandling +_021DA266: + add r0, r5, #0 + add r1, r6, #0 + str r4, [r5, #4] + bl MOD73_021DA2AC + add r0, r5, #0 + add r1, r6, #0 + bl MOD73_021DA374 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #1 + str r0, [r5, #0x28] + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021DA254 + + thumb_func_start MOD73_021DA290 +MOD73_021DA290: ; 0x021DA290 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + cmp r0, #1 + beq _021DA29E + bl ErrorHandling +_021DA29E: + add r0, r4, #0 + bl MOD73_021DA354 + mov r0, #0 + str r0, [r4, #0x28] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DA290 + + thumb_func_start MOD73_021DA2AC +MOD73_021DA2AC: ; 0x021DA2AC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r7, r0, #0 + ldr r0, [r7, #0x18] + str r1, [sp, #0x14] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + add r0, r1, #0 + str r0, [sp, #4] + ldr r0, [r7, #4] + mov r1, #2 + mov r2, #1 + mov r3, #0 + bl FUN_0200CD68 + ldr r2, [sp, #0x14] + mov r0, #0 + mov r1, #0x40 + bl FUN_02002EEC + mov r0, #0 + str r0, [sp] + ldr r0, [sp, #0x14] + mov r1, #2 + str r0, [sp, #4] + ldr r0, [r7, #4] + mov r2, #0x1f + mov r3, #1 + bl FUN_0200CB00 + ldr r2, [sp, #0x14] + mov r0, #0 + mov r1, #0x60 + bl FUN_02002ED0 + ldr r5, _021DA350 ; =0x021DBF80 + mov r6, #0 + add r4, r7, #0 +_021DA2FA: + ldr r0, [sp, #0x14] + mov r1, #1 + bl FUN_02018FF4 + str r0, [r4, #8] + ldrh r0, [r5, #2] + mov r2, #2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldrh r0, [r5, #4] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldrh r0, [r5, #6] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + ldrh r0, [r5, #8] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + ldrh r0, [r5, #0xa] + str r0, [sp, #0x10] + ldrh r3, [r5] + ldr r0, [r7, #4] + ldr r1, [r4, #8] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + ldr r0, [r4, #8] + mov r1, #0 + bl FUN_02019620 + add r6, r6, #1 + add r4, r4, #4 + add r5, #0xc + cmp r6, #4 + blt _021DA2FA + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021DA350: .word 0x021DBF80 + thumb_func_end MOD73_021DA2AC + + thumb_func_start MOD73_021DA354 +MOD73_021DA354: ; 0x021DA354 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r4, #0 + mov r6, #1 +_021DA35C: + ldr r0, [r5, #8] + bl FUN_02019178 + ldr r0, [r5, #8] + add r1, r6, #0 + bl FUN_020191A4 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021DA35C + pop {r4, r5, r6, pc} + thumb_func_end MOD73_021DA354 + + thumb_func_start MOD73_021DA374 +MOD73_021DA374: ; 0x021DA374 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0x20 + add r5, r1, #0 + str r0, [sp] + mov r0, #0x7a + mov r1, #6 + mov r2, #0 + mov r3, #0x80 + str r5, [sp, #4] + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r5, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7a + mov r1, #5 + mov r3, #1 + bl FUN_0200687C + str r5, [sp] + mov r0, #0x7a + mov r1, #7 + mov r2, #0 + add r3, sp, #0x10 + bl FUN_02006BDC + ldr r2, [sp, #0x10] + mov r3, #0 + str r3, [sp] + add r5, r0, #0 + ldrh r0, [r2] + mov r1, #1 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldrh r0, [r2, #2] + add r2, #0xc + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #8] + ldr r0, [r4, #4] + bl FUN_02018148 + ldr r1, [sp, #0x10] + mov r2, #0 + ldrh r0, [r1] + add r3, r2, #0 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp] + ldrh r0, [r1, #2] + mov r1, #1 + lsl r0, r0, #0x15 + lsr r0, r0, #0x18 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + ldr r0, [r4, #4] + bl FUN_020186B4 + add r0, r5, #0 + bl FUN_02016A18 + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_0201AC68 + add sp, #0x14 + pop {r4, r5, pc} + thumb_func_end MOD73_021DA374 + + thumb_func_start MOD73_021DA408 +MOD73_021DA408: ; 0x021DA408 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x30] + add r0, r0, #1 + str r0, [r4, #0x30] + cmp r0, #0x1e + blt _021DA432 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r5, #0 + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x2c] +_021DA432: + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021DA408 + + thumb_func_start MOD73_021DA434 +MOD73_021DA434: ; 0x021DA434 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r0, [r5, #0x2c] + add r4, r1, #0 + cmp r0, #0 + beq _021DA446 + bl ErrorHandling +_021DA446: + mov r2, #1 + ldr r0, _021DA494 ; =MOD73_021DA408 + add r1, r5, #0 + lsl r2, r2, #0xa + bl FUN_0200CA44 + str r0, [r5, #0x2c] + mov r1, #0 + str r1, [r5, #0x30] + ldr r0, [r5, #8] + bl FUN_02019620 + mov r3, #0 + str r3, [sp] + ldr r0, _021DA498 ; =0x0001020F + str r3, [sp, #4] + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r6, [r5, #0x1c] + lsl r2, r4, #2 + add r2, r6, r2 + ldr r0, [r5, #8] + ldr r2, [r2, #0x38] + mov r1, #1 + bl FUN_0201BDE0 + ldr r0, [r5, #8] + bl FUN_020191D0 + mov r0, #2 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021DA494: .word MOD73_021DA408 +_021DA498: .word 0x0001020F + thumb_func_end MOD73_021DA434 + + thumb_func_start MOD73_021DA49C +MOD73_021DA49C: ; 0x021DA49C + ldr r0, [r0, #0x2c] + cmp r0, #0 + bne _021DA4A6 + mov r0, #1 + bx lr +_021DA4A6: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD73_021DA49C + + thumb_func_start MOD73_021DA4AC +MOD73_021DA4AC: ; 0x021DA4AC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x2c] + cmp r0, #0 + beq _021DA4D0 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + ldr r0, [r4, #0x2c] + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x2c] +_021DA4D0: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DA4AC + + thumb_func_start MOD73_021DA4D4 +MOD73_021DA4D4: ; 0x021DA4D4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_02018744 + ldr r0, [r4, #0xc] + mov r1, #0xf + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + ldr r0, _021DA54C ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #0x34] + mov r3, #0x38 + bl FUN_0201BDE0 + ldr r0, [r4, #0xc] + mov r1, #0 + mov r2, #0x1f + mov r3, #1 + bl FUN_0200CCA4 + ldr r0, [r4, #0x10] + mov r1, #0xf + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + ldr r0, _021DA54C ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0x10] + ldr r2, [r2, #0x64] + add r3, r1, #0 + bl FUN_0201BDE0 + ldr r0, [r4, #0x10] + mov r1, #0 + mov r2, #0x1f + mov r3, #1 + bl FUN_0200CCA4 + ldr r0, [r4, #0xc] + bl FUN_02019220 + ldr r0, [r4, #0x10] + bl FUN_02019220 + add sp, #0x10 + pop {r4, pc} + nop +_021DA54C: .word 0x0001020F + thumb_func_end MOD73_021DA4D4 + + thumb_func_start MOD73_021DA550 +MOD73_021DA550: ; 0x021DA550 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x18 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA6B8 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #0x4c] + add r3, r1, #0 + bl FUN_0201BDE0 + mov r3, #2 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, [r4, #0x24] + ldr r0, [r4, #0x1c] + add r2, #0x66 + ldrb r2, [r2] + ldr r0, [r0, #4] + mov r1, #0 + bl FUN_0200AD38 + mov r3, #2 + str r3, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r2, [r4, #0x24] + ldr r0, [r4, #0x1c] + add r2, #0x67 + ldrb r2, [r2] + ldr r0, [r0, #4] + bl FUN_0200AD38 + mov r1, #2 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, [r4, #0x24] + ldr r0, [r4, #0x1c] + add r2, #0x68 + ldrb r2, [r2] + ldr r0, [r0, #4] + add r3, r1, #0 + bl FUN_0200AD38 + ldr r2, [r4, #0x1c] + ldr r0, [r2, #4] + ldr r1, [r2, #8] + ldr r2, [r2, #0x50] + bl FUN_0200B7B8 + mov r0, #0x18 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA6B8 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #8] + mov r3, #0xa0 + bl FUN_0201BDE0 + mov r0, #0x30 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA6B8 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #0x54] + add r3, r1, #0 + bl FUN_0201BDE0 + mov r1, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4, #0x1c] + ldr r2, [r4, #0x24] + ldr r0, [r0, #4] + ldr r2, [r2, #0x58] + mov r3, #4 + bl FUN_0200AD38 + ldr r0, [r4, #0x24] + ldr r0, [r0, #0x58] + cmp r0, #1 + bne _021DA618 + mov r2, #3 + b _021DA61A +_021DA618: + mov r2, #5 +_021DA61A: + ldr r3, [r4, #0x1c] + lsl r2, r2, #2 + add r2, r3, r2 + ldr r0, [r3, #4] + ldr r1, [r3, #8] + ldr r2, [r2, #0x4c] + bl FUN_0200B7B8 + mov r0, #0x30 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA6B8 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #8] + mov r3, #0xa0 + bl FUN_0201BDE0 + mov r0, #0x44 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA6B8 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #0x5c] + add r3, r1, #0 + bl FUN_0201BDE0 + mov r1, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4, #0x1c] + ldr r2, [r4, #0x24] + ldr r0, [r0, #4] + ldr r2, [r2, #0x5c] + mov r3, #4 + bl FUN_0200AD38 + ldr r0, [r4, #0x24] + ldr r0, [r0, #0x5c] + cmp r0, #1 + bne _021DA680 + mov r2, #3 + b _021DA682 +_021DA680: + mov r2, #5 +_021DA682: + ldr r3, [r4, #0x1c] + lsl r2, r2, #2 + add r2, r3, r2 + ldr r0, [r3, #4] + ldr r1, [r3, #8] + ldr r2, [r2, #0x4c] + bl FUN_0200B7B8 + mov r0, #0x44 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA6B8 ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0xc] + ldr r2, [r2, #8] + mov r3, #0xa0 + bl FUN_0201BDE0 + ldr r0, [r4, #0xc] + bl FUN_02019220 + add sp, #0x10 + pop {r4, pc} + nop +_021DA6B8: .word 0x0001020F + thumb_func_end MOD73_021DA550 + + thumb_func_start MOD73_021DA6BC +MOD73_021DA6BC: ; 0x021DA6BC + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r2, [r4, #0x24] + ldr r0, [r4, #0x1c] + add r2, #0x64 + ldrb r2, [r2] + ldr r0, [r0, #4] + mov r1, #3 + bl FUN_0200B628 + mov r3, #2 + str r3, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r2, [r4, #0x24] + ldr r0, [r4, #0x1c] + add r2, #0x65 + ldrb r2, [r2] + ldr r0, [r0, #4] + bl FUN_0200AD38 + mov r1, #2 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4, #0x1c] + ldr r2, [r4, #0x20] + ldr r0, [r0, #4] + add r3, r1, #0 + bl FUN_0200AD38 + ldr r2, [r4, #0x1c] + ldr r0, [r2, #4] + ldr r1, [r2, #8] + ldr r2, [r2, #0x68] + bl FUN_0200B7B8 + mov r0, #0x18 + str r0, [sp] + mov r1, #0 + ldr r0, _021DA72C ; =0x0001020F + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0x10] + ldr r2, [r2, #8] + mov r3, #0x10 + bl FUN_0201BDE0 + ldr r0, [r4, #0x10] + bl FUN_02019220 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021DA72C: .word 0x0001020F + thumb_func_end MOD73_021DA6BC + + thumb_func_start MOD73_021DA730 +MOD73_021DA730: ; 0x021DA730 + push {r3, lr} + cmp r1, #0 + beq _021DA740 + cmp r1, #1 + beq _021DA746 + cmp r1, #2 + beq _021DA74C + pop {r3, pc} +_021DA740: + bl MOD73_021DA4D4 + pop {r3, pc} +_021DA746: + bl MOD73_021DA550 + pop {r3, pc} +_021DA74C: + bl MOD73_021DA6BC + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD73_021DA730 + + thumb_func_start MOD73_021DA754 +MOD73_021DA754: ; 0x021DA754 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_02018744 + ldr r0, [r4, #0xc] + bl FUN_02019570 + ldr r0, [r4, #0x10] + bl FUN_02019570 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DA754 + + thumb_func_start MOD73_021DA770 +MOD73_021DA770: ; 0x021DA770 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, [r4, #0x14] + add r6, r1, #0 + mov r1, #0xf + bl FUN_02019620 + cmp r6, #6 + bhi _021DA7EC + add r0, r6, r6 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021DA790: ; jump table + .short _021DA79E - _021DA790 - 2 ; case 0 + .short _021DA7CA - _021DA790 - 2 ; case 1 + .short _021DA7D0 - _021DA790 - 2 ; case 2 + .short _021DA7D6 - _021DA790 - 2 ; case 3 + .short _021DA7DC - _021DA790 - 2 ; case 4 + .short _021DA7E2 - _021DA790 - 2 ; case 5 + .short _021DA7E8 - _021DA790 - 2 ; case 6 +_021DA79E: + mov r3, #0x51 + ldr r2, [r4, #0x24] + lsl r3, r3, #2 + ldrb r5, [r2, r3] + ldr r0, [r4, #0x1c] + sub r3, #0x10 + lsl r5, r5, #2 + add r2, r2, r5 + ldr r0, [r0, #4] + ldr r2, [r2, r3] + mov r1, #0 + bl FUN_0200ABC0 + ldr r2, [r4, #0x1c] + ldr r0, [r2, #4] + ldr r1, [r2, #8] + ldr r2, [r2, #0x18] + bl FUN_0200B7B8 + ldr r0, [r4, #0x1c] + ldr r5, [r0, #8] + b _021DA7EC +_021DA7CA: + ldr r0, [r4, #0x1c] + ldr r5, [r0, #0x1c] + b _021DA7EC +_021DA7D0: + ldr r0, [r4, #0x1c] + ldr r5, [r0, #0x28] + b _021DA7EC +_021DA7D6: + ldr r0, [r4, #0x1c] + ldr r5, [r0, #0x24] + b _021DA7EC +_021DA7DC: + ldr r0, [r4, #0x1c] + ldr r5, [r0, #0x20] + b _021DA7EC +_021DA7E2: + ldr r0, [r4, #0x1c] + ldr r5, [r0, #0x2c] + b _021DA7EC +_021DA7E8: + ldr r0, [r4, #0x1c] + ldr r5, [r0, #0xc] +_021DA7EC: + mov r3, #0 + str r3, [sp] + ldr r0, _021DA818 ; =0x0001020F + str r3, [sp, #4] + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r0, [r4, #0x14] + mov r1, #1 + add r2, r5, #0 + bl FUN_0201BDE0 + mov r1, #0 + ldr r0, [r4, #0x14] + mov r2, #1 + add r3, r1, #0 + bl FUN_0200D0BC + ldr r0, [r4, #0x14] + bl FUN_02019220 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021DA818: .word 0x0001020F + thumb_func_end MOD73_021DA770 + + thumb_func_start MOD73_021DA81C +MOD73_021DA81C: ; 0x021DA81C + ldr r3, _021DA824 ; =Call_FillMemWithValue + mov r1, #0 + ldr r2, _021DA828 ; =0x00000414 + bx r3 + .align 2, 0 +_021DA824: .word Call_FillMemWithValue +_021DA828: .word 0x00000414 + thumb_func_end MOD73_021DA81C + + thumb_func_start MOD73_021DA82C +MOD73_021DA82C: ; 0x021DA82C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021DA83A + bl ErrorHandling +_021DA83A: + ldr r2, _021DA848 ; =0x00000414 + add r0, r4, #0 + mov r1, #0 + bl Call_FillMemWithValue + pop {r4, pc} + nop +_021DA848: .word 0x00000414 + thumb_func_end MOD73_021DA82C + + thumb_func_start MOD73_021DA84C +MOD73_021DA84C: ; 0x021DA84C + str r1, [r0, #4] + str r2, [r0, #8] + str r3, [r0, #0xc] + mov r1, #1 + str r1, [r0] + bx lr + thumb_func_end MOD73_021DA84C + + thumb_func_start MOD73_021DA858 +MOD73_021DA858: ; 0x021DA858 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r5, r7, #0 + mov r6, #0 + add r4, r7, #0 + add r5, #0x10 +_021DA864: + add r0, r4, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0 + beq _021DA874 + add r0, r5, #0 + bl MOD73_021DAB30 +_021DA874: + add r6, r6, #1 + add r4, #0x80 + add r5, #0x80 + cmp r6, #8 + blt _021DA864 + mov r0, #0 + str r0, [r7] + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021DA858 + + thumb_func_start MOD73_021DA884 +MOD73_021DA884: ; 0x021DA884 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r5, #0 + add r7, r1, #0 + mov r6, #0 + add r4, #0x10 +_021DA890: + add r0, r5, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0 + beq _021DA8AE + add r0, r4, #0 + bl MOD73_021DAB50 + ldr r0, [r5, #0x20] + cmp r0, #0 + beq _021DA8AE + add r0, r4, #0 + add r1, r7, #0 + bl MOD73_021DABD0 +_021DA8AE: + add r6, r6, #1 + add r5, #0x80 + add r4, #0x80 + cmp r6, #8 + blt _021DA890 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DA884 + + thumb_func_start MOD73_021DA8BC +MOD73_021DA8BC: ; 0x021DA8BC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0xb8 + add r5, r0, #0 + lsl r0, r1, #1 + add r0, r1, r0 + add r1, r2, r0 + mov r0, #0x1c + add r2, r1, #0 + mul r2, r0 + ldr r0, _021DAA9C ; =0x021DBE7C + add r3, r0, r2 + ldmia r3!, {r0, r1} + add r2, sp, #0x9c + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + add r0, r5, #0 + bl MOD73_021DAAD0 + str r0, [sp, #0x60] + cmp r0, #0 + bne _021DA906 + add r0, r5, #0 + bl MOD73_021DAAF4 + str r0, [sp, #0x60] + cmp r0, #0 + bne _021DA900 + bl ErrorHandling +_021DA900: + ldr r0, [sp, #0x60] + bl MOD73_021DAB30 +_021DA906: + bl FUN_0201BA60 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + bl FUN_0201BA60 + add r1, sp, #0x9c + ldrb r1, [r1, #0x11] + bl _u32_div_f + add r0, sp, #0x9c + ldrb r0, [r0, #0x10] + add r4, r0, r1 + bl FUN_0201BA60 + add r1, sp, #0x9c + ldrb r1, [r1, #0x13] + bl _u32_div_f + add r0, sp, #0x9c + ldrb r0, [r0, #0x12] + add r0, r0, r1 + add r0, r0, r4 + asr r1, r6, #4 + lsl r2, r1, #1 + lsl r0, r0, #0xc + str r0, [sp, #0x6c] + asr r0, r0, #0x1f + lsl r3, r2, #1 + ldr r1, _021DAAA0 ; =0x020FFA38 + str r0, [sp, #0x70] + ldr r0, [sp, #0xa8] + ldrsh r6, [r1, r3] + lsl r3, r4, #0xc + add r2, r2, #1 + str r3, [sp, #0x64] + asr r3, r3, #0x1f + lsl r2, r2, #1 + str r0, [sp, #0x74] + asr r0, r0, #0x1f + str r3, [sp, #0x68] + ldrsh r4, [r1, r2] + str r0, [sp, #0x78] + bl FUN_0201BA60 + ldr r1, [sp, #0xa0] + bl _u32_div_f + ldr r0, [sp, #0x9c] + ldr r2, [sp, #0x64] + add r0, r0, r1 + str r0, [sp, #0x5c] + asr r0, r6, #0x1f + str r0, [sp, #0x7c] + ldr r1, [sp, #0x7c] + ldr r3, [sp, #0x68] + add r0, r6, #0 + asr r7, r4, #0x1f + bl _ll_mul + str r1, [sp, #0x58] + str r0, [sp, #0x80] + ldr r1, [sp, #0x7c] + ldr r2, [sp, #0x6c] + ldr r3, [sp, #0x70] + add r0, r6, #0 + bl _ll_mul + str r1, [sp, #0x50] + str r0, [sp, #0x84] + ldr r1, [sp, #0x7c] + ldr r2, [sp, #0x74] + ldr r3, [sp, #0x78] + add r0, r6, #0 + bl _ll_mul + str r0, [sp, #0x88] + str r1, [sp, #0x98] + ldr r2, [sp, #0x64] + ldr r3, [sp, #0x68] + add r0, r4, #0 + add r1, r7, #0 + bl _ll_mul + str r0, [sp, #0x8c] + str r1, [sp, #0x48] + ldr r2, [sp, #0x6c] + ldr r3, [sp, #0x70] + add r0, r4, #0 + add r1, r7, #0 + bl _ll_mul + str r0, [sp, #0x90] + str r1, [sp, #0x40] + ldr r2, [sp, #0x74] + ldr r3, [sp, #0x78] + add r0, r4, #0 + add r1, r7, #0 + bl _ll_mul + add r2, r0, #0 + mov r4, #2 + ldr r0, [sp, #0x88] + ldr r3, [sp, #0x98] + mov r6, #0 + lsl r4, r4, #0xa + add r0, r0, r4 + adc r3, r6 + str r3, [sp, #0x98] + lsl r3, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r3 + str r0, [sp] + ldr r0, [sp, #0x8c] + ldr r3, [sp, #0x48] + add r0, r0, r4 + adc r3, r6 + str r3, [sp, #0x48] + mov r7, #6 + lsl r3, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r3 + lsl r7, r7, #0x10 + add r0, r0, r7 + str r0, [sp, #4] + ldr r0, [sp, #0x90] + ldr r3, [sp, #0x40] + add r0, r0, r4 + adc r3, r6 + str r3, [sp, #0x40] + lsl r3, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r3 + add r0, r0, r7 + add r2, r2, r4 + adc r1, r6 + str r0, [sp, #8] + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [sp, #0xc] + ldr r0, _021DAAA4 ; =0x0000019A + add r2, sp, #0x9c + str r0, [sp, #0x10] + ldr r0, [sp, #0x5c] + mov r1, #0x38 + str r0, [sp, #0x14] + ldr r0, [sp, #0xa4] + str r0, [sp, #0x18] + ldrb r0, [r2, #0x18] + str r0, [sp, #0x1c] + ldrb r0, [r2, #0x14] + str r0, [sp, #0x20] + ldrb r3, [r2, #0x15] + ldr r0, [r5, #8] + mul r1, r3 + add r0, r0, r1 + str r0, [sp, #0x24] + ldrb r0, [r2, #0x16] + str r0, [sp, #0x28] + ldr r0, [r5, #4] + str r0, [sp, #0x2c] + ldr r0, [r5, #0xc] + str r0, [sp, #0x30] + ldrb r0, [r2, #0x19] + str r0, [sp, #0x34] + ldrb r0, [r2, #0x1a] + str r0, [sp, #0x38] + ldrb r1, [r2, #0x17] + ldr r2, [sp, #0x80] + ldr r0, [sp, #0x60] + add r3, r2, r4 + ldr r2, [sp, #0x58] + adc r2, r6 + str r2, [sp, #0x58] + lsl r2, r2, #0x14 + lsr r3, r3, #0xc + orr r3, r2 + lsl r2, r4, #8 + add r2, r3, r2 + ldr r3, [sp, #0x84] + add r7, r3, r4 + ldr r3, [sp, #0x50] + adc r3, r6 + str r3, [sp, #0x50] + lsl r3, r3, #0x14 + lsr r6, r7, #0xc + orr r6, r3 + lsl r3, r4, #8 + add r3, r6, r3 + bl MOD73_021DAC9C + mov r1, #0x41 + lsl r1, r1, #4 + ldr r2, [r5, r1] + ldr r0, [sp, #0x60] + str r2, [r0, #0x7c] + ldr r0, [r5, r1] + add r0, r0, #1 + str r0, [r5, r1] + add sp, #0xb8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021DAA9C: .word 0x021DBE7C +_021DAAA0: .word 0x020FFA38 +_021DAAA4: .word 0x0000019A + thumb_func_end MOD73_021DA8BC + + thumb_func_start MOD73_021DAAA8 +MOD73_021DAAA8: ; 0x021DAAA8 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r5, #0 + mov r6, #0 + add r4, #0x10 +_021DAAB2: + add r0, r5, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0 + beq _021DAAC2 + add r0, r4, #0 + bl MOD73_021DAD44 +_021DAAC2: + add r6, r6, #1 + add r5, #0x80 + add r4, #0x80 + cmp r6, #8 + blt _021DAAB2 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021DAAA8 + + thumb_func_start MOD73_021DAAD0 +MOD73_021DAAD0: ; 0x021DAAD0 + mov r2, #0 + add r3, r0, #0 +_021DAAD4: + add r1, r3, #0 + add r1, #0x88 + ldr r1, [r1] + cmp r1, #0 + bne _021DAAE6 + add r0, #0x10 + lsl r1, r2, #7 + add r0, r0, r1 + bx lr +_021DAAE6: + add r2, r2, #1 + add r3, #0x80 + cmp r2, #8 + blt _021DAAD4 + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD73_021DAAD0 + + thumb_func_start MOD73_021DAAF4 +MOD73_021DAAF4: ; 0x021DAAF4 + push {r4, r5} + mov r2, #0 + add r3, r0, #0 + add r1, r2, #0 + add r3, #0x10 +_021DAAFE: + add r4, r0, #0 + add r4, #0x88 + ldr r4, [r4] + cmp r4, #0 + beq _021DAB1E + cmp r2, #0 + bne _021DAB10 + add r2, r3, #0 + b _021DAB1E +_021DAB10: + add r4, r0, #0 + add r4, #0x8c + ldr r5, [r2, #0x7c] + ldr r4, [r4] + cmp r5, r4 + ble _021DAB1E + add r2, r3, #0 +_021DAB1E: + add r1, r1, #1 + add r0, #0x80 + add r3, #0x80 + cmp r1, #8 + blt _021DAAFE + add r0, r2, #0 + pop {r4, r5} + bx lr + .align 2, 0 + thumb_func_end MOD73_021DAAF4 + + thumb_func_start MOD73_021DAB30 +MOD73_021DAB30: ; 0x021DAB30 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x78] + cmp r0, #0 + bne _021DAB3E + bl ErrorHandling +_021DAB3E: + ldr r0, [r4, #0x78] + bl FUN_0201FFC8 + add r0, r4, #0 + mov r1, #0 + mov r2, #0x80 + bl Call_FillMemWithValue + pop {r4, pc} + thumb_func_end MOD73_021DAB30 + + thumb_func_start MOD73_021DAB50 +MOD73_021DAB50: ; 0x021DAB50 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + bne _021DABA2 + add r0, r4, #0 + add r0, #0x30 + bl MOD73_021D962C + str r0, [r4, #4] + add r0, r4, #0 + add r0, #0x48 + bl MOD73_021D962C + add r0, r4, #0 + add r0, #0x60 + bl MOD73_021D962C + ldr r0, [r4, #0x30] + add r1, r4, #0 + str r0, [r4, #0x14] + ldr r0, [r4, #0x48] + add r1, #0x14 + str r0, [r4, #0x18] + ldr r0, [r4, #0x78] + bl FUN_02020044 + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _021DABA2 + ldr r0, [r4, #0x60] + add r1, r4, #0 + str r0, [r4, #0x20] + ldr r0, [r4, #0x60] + add r1, #0x20 + str r0, [r4, #0x24] + ldr r0, [r4, #0x60] + str r0, [r4, #0x28] + ldr r0, [r4, #0x78] + bl FUN_02020064 +_021DABA2: + ldr r0, [r4, #8] + cmp r0, #0 + bne _021DABB6 + ldr r0, [r4, #0x78] + bl FUN_02020388 + cmp r0, #0 + bne _021DABB6 + mov r0, #1 + str r0, [r4, #8] +_021DABB6: + ldr r0, [r4] + cmp r0, #0 + bne _021DABCE + ldr r0, [r4, #4] + cmp r0, #1 + bne _021DABCE + ldr r0, [r4, #8] + cmp r0, #1 + bne _021DABCE + add r0, r4, #0 + bl MOD73_021DAB30 +_021DABCE: + pop {r4, pc} + thumb_func_end MOD73_021DAB50 + + thumb_func_start MOD73_021DABD0 +MOD73_021DABD0: ; 0x021DABD0 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, [r5, #4] + cmp r0, #1 + bne _021DAC94 + ldr r0, [r5, #8] + cmp r0, #1 + bne _021DAC94 + add r0, r1, #0 + add r0, #0xa4 + ldrb r0, [r0] + ldr r2, [r5, #0x2c] + cmp r0, #0 + bne _021DABF6 + add r1, #0xa2 + ldrh r0, [r1] + add r0, r2, r0 + b _021DABFC +_021DABF6: + add r1, #0xa2 + ldrh r0, [r1] + sub r0, r2, r0 +_021DABFC: + str r0, [r5, #0x2c] + mov r0, #2 + ldr r1, [r5, #0x14] + lsl r0, r0, #0x12 + sub r4, r1, r0 + mov r0, #6 + mov r2, #0 + ldr r1, [r5, #0x18] + lsl r0, r0, #0x10 + sub r6, r1, r0 + asr r0, r4, #0xc + asr r1, r6, #0xc + add r3, r2, #0 + bl FUN_0201CBEC + add r7, r0, #0 + add r0, r6, #0 + add r1, r4, #0 + bl FX_Atan2 + lsl r6, r7, #0xc + ldr r1, [r5, #0x2c] + asr r7, r6, #0x1f + add r0, r0, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #4 + lsl r4, r0, #1 + add r0, r4, #1 + lsl r1, r0, #1 + ldr r0, _021DAC98 ; =0x020FFA38 + add r2, r6, #0 + ldrsh r0, [r0, r1] + add r3, r7, #0 + asr r1, r0, #0x1f + bl _ll_mul + add r2, r0, #0 + mov r0, #2 + mov r3, #0 + lsl r0, r0, #0xa + add r0, r2, r0 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + str r0, [sp] + ldr r0, _021DAC98 ; =0x020FFA38 + lsl r1, r4, #1 + ldrsh r0, [r0, r1] + add r2, r6, #0 + add r3, r7, #0 + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r0, r0, r2 + adc r1, r3 + lsl r1, r1, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + ldr r3, [sp] + lsl r1, r2, #8 + add r1, r3, r1 + str r1, [sp] + mov r1, #6 + lsl r1, r1, #0x10 + str r0, [sp, #4] + add r0, r0, r1 + str r0, [sp, #4] + ldr r0, [r5, #0x78] + add r1, sp, #0 + bl FUN_02020044 +_021DAC94: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021DAC98: .word 0x020FFA38 + thumb_func_end MOD73_021DABD0 + + thumb_func_start MOD73_021DAC9C +MOD73_021DAC9C: ; 0x021DAC9C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, [sp, #0x40] + str r1, [r5] + add r4, r2, #0 + str r0, [sp] + add r0, r5, #0 + add r2, r3, #0 + ldr r3, [sp, #0x20] + add r0, #0x30 + add r1, r4, #0 + ldr r6, [sp, #0x30] + bl MOD73_021D95CC + ldr r0, [sp, #0x40] + ldr r1, [sp, #0x24] + str r0, [sp] + add r0, r5, #0 + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x2c] + add r0, #0x48 + bl MOD73_021D95CC + ldr r0, [sp, #0x40] + ldr r2, [sp, #0x34] + str r0, [sp] + add r0, r5, #0 + ldr r3, [sp, #0x38] + add r0, #0x60 + add r1, r6, #0 + bl MOD73_021D95CC + ldr r3, [sp, #0x24] + str r4, [r5, #0x14] + str r3, [r5, #0x18] + str r6, [r5, #0x20] + str r6, [r5, #0x24] + ldr r0, [sp, #0x3c] + str r6, [r5, #0x28] + str r0, [r5, #0xc] + ldr r0, [sp, #0x54] + ldr r1, [sp, #0x44] + str r0, [r5, #0x10] + mov r0, #0 + str r0, [sp] + add r0, sp, #0x58 + ldrb r0, [r0] + add r2, r4, #0 + str r0, [sp, #4] + ldr r0, [sp, #0x50] + str r0, [sp, #8] + ldr r0, [sp, #0x4c] + bl MOD73_021D9540 + str r0, [r5, #0x78] + cmp r0, #0 + bne _021DAD14 + bl ErrorHandling +_021DAD14: + ldr r0, [r5, #0xc] + cmp r0, #0 + beq _021DAD26 + add r1, r5, #0 + ldr r0, [r5, #0x78] + add r1, #0x20 + mov r2, #2 + bl FUN_02020074 +_021DAD26: + ldr r0, [r5, #0x78] + ldr r1, [sp, #0x48] + bl FUN_02020130 + ldr r0, [r5, #0x78] + mov r1, #1 + bl FUN_020200BC + ldr r0, [r5, #0x78] + mov r1, #2 + bl FUN_02020238 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021DAC9C + + thumb_func_start MOD73_021DAD44 +MOD73_021DAD44: ; 0x021DAD44 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #1 + bne _021DAD72 + mov r0, #8 + str r0, [sp] + add r0, r4, #0 + ldr r1, [r4, #0x60] + add r0, #0x60 + mov r2, #0xcd + mov r3, #0 + bl MOD73_021D95CC + mov r0, #0 + str r0, [r4] + mov r0, #1 + str r0, [r4, #0xc] + ldr r0, [r4, #0x78] + mov r1, #2 + bl FUN_020200EC +_021DAD72: + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DAD44 + + thumb_func_start MOD73_021DAD78 +MOD73_021DAD78: ; 0x021DAD78 + ldr r3, _021DAD80 ; =Call_FillMemWithValue + mov r1, #0 + mov r2, #0x80 + bx r3 + .align 2, 0 +_021DAD80: .word Call_FillMemWithValue + thumb_func_end MOD73_021DAD78 + + thumb_func_start MOD73_021DAD84 +MOD73_021DAD84: ; 0x021DAD84 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x7c] + cmp r0, #0 + beq _021DAD92 + bl ErrorHandling +_021DAD92: + add r0, r4, #0 + mov r1, #0 + mov r2, #0x80 + bl Call_FillMemWithValue + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DAD84 + + thumb_func_start MOD73_021DADA0 +MOD73_021DADA0: ; 0x021DADA0 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r6, r0, #0 + ldr r0, [r6, #0x7c] + add r7, r1, #0 + str r2, [sp, #0x18] + cmp r0, #0 + beq _021DADB4 + bl ErrorHandling +_021DADB4: + str r7, [r6] + mov r0, #2 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x1f + str r0, [sp, #8] + mov r0, #0x1e + str r0, [sp, #0xc] + ldr r0, _021DAE20 ; =0x00001B58 + add r1, r6, #4 + str r0, [sp, #0x10] + ldr r0, [sp, #0x18] + mov r2, #0x7a + str r0, [sp, #0x14] + add r0, r7, #0 + mov r3, #0x21 + bl MOD73_021D9340 + mov r4, #0 + add r5, r6, #0 +_021DADDE: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [sp, #0x18] + mov r2, #2 + mov r3, #6 + str r0, [sp, #8] + add r0, r7, #0 + add r1, r6, #4 + lsl r2, r2, #0x12 + lsl r3, r3, #0x10 + bl MOD73_021D9540 + str r0, [r5, #0x3c] + cmp r4, #2 + blt _021DAE06 + ldr r0, [r5, #0x3c] + mov r1, #1 + bl FUN_02020130 +_021DAE06: + ldr r0, [r5, #0x3c] + mov r1, #0 + bl FUN_020200A0 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #4 + blt _021DADDE + mov r0, #1 + str r0, [r6, #0x7c] + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021DAE20: .word 0x00001B58 + thumb_func_end MOD73_021DADA0 + + thumb_func_start MOD73_021DAE24 +MOD73_021DAE24: ; 0x021DAE24 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, [r6, #0x7c] + cmp r0, #1 + beq _021DAE32 + bl ErrorHandling +_021DAE32: + mov r4, #0 + add r5, r6, #0 +_021DAE36: + ldr r0, [r5, #0x3c] + bl FUN_0201FFC8 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #4 + blt _021DAE36 + ldr r0, [r6] + add r1, r6, #4 + bl MOD73_021D94F4 + mov r0, #0 + str r0, [r6, #0x7c] + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD73_021DAE24 + + thumb_func_start MOD73_021DAE54 +MOD73_021DAE54: ; 0x021DAE54 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 + add r5, #0x3c +_021DAE5C: + cmp r4, #2 + beq _021DAE64 + cmp r4, #0 + bne _021DAE6C +_021DAE64: + add r0, r5, #0 + bl MOD73_021DAEFC + b _021DAE72 +_021DAE6C: + add r0, r5, #0 + bl MOD73_021DAF34 +_021DAE72: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #4 + blt _021DAE5C + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021DAE54 + + thumb_func_start MOD73_021DAE7C +MOD73_021DAE7C: ; 0x021DAE7C + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #4 + blt _021DAE8A + bl ErrorHandling +_021DAE8A: + cmp r5, #2 + beq _021DAE92 + cmp r5, #0 + bne _021DAE9E +_021DAE92: + add r4, #0x3c + lsl r0, r5, #4 + add r0, r4, r0 + bl MOD73_021DAEEC + pop {r3, r4, r5, pc} +_021DAE9E: + add r4, #0x3c + lsl r0, r5, #4 + add r0, r4, r0 + bl MOD73_021DAF28 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DAE7C + + thumb_func_start MOD73_021DAEAC +MOD73_021DAEAC: ; 0x021DAEAC + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #4 + blt _021DAEBA + bl ErrorHandling +_021DAEBA: + lsl r0, r5, #4 + mov r1, #0 + add r0, r4, r0 + str r1, [r0, #0x48] + ldr r0, [r0, #0x3c] + bl FUN_020200A0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DAEAC + + thumb_func_start MOD73_021DAECC +MOD73_021DAECC: ; 0x021DAECC + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #4 + blt _021DAEDA + bl ErrorHandling +_021DAEDA: + lsl r0, r5, #4 + add r0, r4, r0 + ldr r0, [r0, #0x48] + cmp r0, #0 + bne _021DAEE8 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DAEE8: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021DAECC + + thumb_func_start MOD73_021DAEEC +MOD73_021DAEEC: ; 0x021DAEEC + mov r1, #0 + str r1, [r0, #4] + mov r1, #3 + str r1, [r0, #8] + mov r1, #1 + str r1, [r0, #0xc] + bx lr + .align 2, 0 + thumb_func_end MOD73_021DAEEC + + thumb_func_start MOD73_021DAEFC +MOD73_021DAEFC: ; 0x021DAEFC + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0xc] + cmp r1, #0 + beq _021DAF24 + bl MOD73_021DAF34 + ldr r0, [r4, #4] + cmp r0, #0 + bne _021DAF24 + ldr r0, [r4, #8] + sub r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0 + bgt _021DAF24 + mov r1, #0 + str r1, [r4, #0xc] + ldr r0, [r4] + bl FUN_020200A0 +_021DAF24: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DAEFC + + thumb_func_start MOD73_021DAF28 +MOD73_021DAF28: ; 0x021DAF28 + mov r1, #0 + str r1, [r0, #4] + mov r1, #1 + str r1, [r0, #0xc] + bx lr + .align 2, 0 + thumb_func_end MOD73_021DAF28 + + thumb_func_start MOD73_021DAF34 +MOD73_021DAF34: ; 0x021DAF34 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _021DAF6C + ldr r0, [r4, #4] + cmp r0, #0 + bne _021DAF4E + ldr r0, [r4] + mov r1, #1 + bl FUN_020200A0 + b _021DAF66 +_021DAF4E: + cmp r0, #8 + bne _021DAF5C + ldr r0, [r4] + mov r1, #0 + bl FUN_020200A0 + b _021DAF66 +_021DAF5C: + cmp r0, #0x10 + bne _021DAF66 + mov r0, #0 + str r0, [r4, #4] + pop {r4, pc} +_021DAF66: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DAF6C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DAF34 + + thumb_func_start MOD73_021DAF70 +MOD73_021DAF70: ; 0x021DAF70 + push {r3, r4, r5, lr} + ldr r2, _021DAF84 ; =0x0000090C + add r4, r1, #0 + mov r1, #0 + add r5, r0, #0 + bl Call_FillMemWithValue + str r4, [r5, #4] + pop {r3, r4, r5, pc} + nop +_021DAF84: .word 0x0000090C + thumb_func_end MOD73_021DAF70 + + thumb_func_start MOD73_021DAF88 +MOD73_021DAF88: ; 0x021DAF88 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021DAF96 + bl ErrorHandling +_021DAF96: + ldr r2, _021DAFA4 ; =0x0000090C + add r0, r4, #0 + mov r1, #0 + bl Call_FillMemWithValue + pop {r4, pc} + nop +_021DAFA4: .word 0x0000090C + thumb_func_end MOD73_021DAF88 + + thumb_func_start MOD73_021DAFA8 +MOD73_021DAFA8: ; 0x021DAFA8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r2, #0 + str r0, [sp, #0xc] + str r1, [sp, #0x10] + add r7, r3, #0 + mov r4, #0 + add r5, r0, #0 + add r6, #0x38 +_021DAFBA: + mov r0, #0 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + mov r2, #0 + ldr r0, [sp, #0x10] + add r1, r6, #0 + add r3, r2, #0 + str r7, [sp, #8] + bl MOD73_021D9540 + mov r1, #0 + str r0, [r5, #0x50] + bl FUN_020200A0 + add r4, r4, #1 + add r5, #0x48 + cmp r4, #0x20 + blt _021DAFBA + ldr r0, [sp, #0xc] + mov r1, #1 + str r1, [r0] + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DAFA8 + + thumb_func_start MOD73_021DAFEC +MOD73_021DAFEC: ; 0x021DAFEC + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_021DAFF4: + ldr r0, [r5, #0x50] + bl FUN_0201FFC8 + add r4, r4, #1 + add r5, #0x48 + cmp r4, #0x20 + blt _021DAFF4 + mov r0, #0 + str r0, [r6] + pop {r4, r5, r6, pc} + thumb_func_end MOD73_021DAFEC + + thumb_func_start MOD73_021DB008 +MOD73_021DB008: ; 0x021DB008 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 + add r5, #0xc +_021DB010: + add r0, r5, #0 + bl MOD73_021DB14C + add r4, r4, #1 + add r5, #0x48 + cmp r4, #0x20 + blt _021DB010 + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021DB008 + + thumb_func_start MOD73_021DB020 +MOD73_021DB020: ; 0x021DB020 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r4, r0, #0 + add r0, r1, #0 + str r1, [sp, #0x10] + add r1, r2, #0 + sub r0, #0x80 + sub r1, #0x60 + str r2, [sp, #0x14] + bl FX_Atan2 + asr r0, r0, #4 + lsl r1, r0, #1 + add r0, r1, #1 + ldr r7, _021DB124 ; =0x020FFA38 + lsl r0, r0, #1 + ldrsh r3, [r7, r0] + asr r6, r3, #0x1f + lsr r2, r3, #0x10 + lsl r0, r6, #0x10 + orr r0, r2 + mov r2, #2 + lsl r5, r3, #0x10 + lsl r2, r2, #0xa + add r5, r5, r2 + ldr r2, _021DB128 ; =0x00000000 + adc r0, r2 + lsr r2, r5, #0xc + lsl r0, r0, #0x14 + str r2, [sp, #0x18] + orr r2, r0 + lsl r0, r1, #1 + str r2, [sp, #0x18] + ldrsh r2, [r7, r0] + asr r0, r2, #0x1f + mov ip, r0 + lsr r1, r2, #0x10 + lsl r0, r0, #0x10 + orr r0, r1 + mov r1, #2 + lsl r5, r2, #0x10 + lsl r1, r1, #0xa + add r1, r5, r1 + ldr r5, _021DB128 ; =0x00000000 + adc r0, r5 + lsr r7, r1, #0xc + lsl r0, r0, #0x14 + orr r7, r0 + lsr r0, r3, #0x14 + lsl r1, r6, #0xc + orr r1, r0 + mov r0, #2 + lsl r3, r3, #0xc + lsl r0, r0, #0xa + add r0, r3, r0 + ldr r3, _021DB128 ; =0x00000000 + adc r1, r3 + lsr r6, r0, #0xc + lsl r1, r1, #0x14 + orr r6, r1 + mov r1, ip + lsr r0, r2, #0x14 + lsl r1, r1, #0xc + orr r1, r0 + mov r0, #2 + lsl r2, r2, #0xc + lsl r0, r0, #0xa + add r2, r2, r0 + ldr r0, _021DB128 ; =0x00000000 + adc r1, r0 + lsl r0, r1, #0x14 + lsr r5, r2, #0xc + orr r5, r0 + add r0, r4, #0 + bl MOD73_021DB12C + cmp r0, #0 + beq _021DB0E0 + mov r2, #2 + ldr r1, [sp, #0x18] + lsl r2, r2, #0x12 + add r1, r1, r2 + str r1, [sp] + mov r1, #6 + lsl r1, r1, #0x10 + add r1, r7, r1 + str r1, [sp, #4] + str r6, [sp, #8] + str r5, [sp, #0xc] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x14] + ldr r1, [r4, #8] + lsl r2, r2, #0xc + lsl r3, r3, #0xc + bl MOD73_021DB1A8 +_021DB0E0: + add r0, r4, #0 + bl MOD73_021DB12C + cmp r0, #0 + beq _021DB112 + mov r2, #2 + ldr r1, [sp, #0x18] + lsl r2, r2, #0x12 + sub r1, r2, r1 + str r1, [sp] + mov r1, #6 + lsl r1, r1, #0x10 + sub r1, r1, r7 + str r1, [sp, #4] + neg r1, r6 + str r1, [sp, #8] + neg r1, r5 + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x14] + str r1, [sp, #0xc] + ldr r1, [r4, #8] + lsl r2, r2, #0xc + lsl r3, r3, #0xc + bl MOD73_021DB1A8 +_021DB112: + ldr r0, [r4, #8] + ldr r1, [r4, #4] + add r0, r0, #1 + bl _s32_div_f + str r1, [r4, #8] + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021DB124: .word 0x020FFA38 +_021DB128: .word 0x00000000 + thumb_func_end MOD73_021DB020 + + thumb_func_start MOD73_021DB12C +MOD73_021DB12C: ; 0x021DB12C + mov r2, #0 + add r3, r0, #0 +_021DB130: + ldr r1, [r3, #0xc] + cmp r1, #0 + bne _021DB140 + mov r1, #0x48 + add r0, #0xc + mul r1, r2 + add r0, r0, r1 + bx lr +_021DB140: + add r2, r2, #1 + add r3, #0x48 + cmp r2, #0x20 + blt _021DB130 + mov r0, #0 + bx lr + thumb_func_end MOD73_021DB12C + + thumb_func_start MOD73_021DB14C +MOD73_021DB14C: ; 0x021DB14C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021DB18C + ldr r0, [r4, #4] + cmp r0, #0 + bne _021DB180 + add r0, r4, #0 + add r0, #0x14 + bl MOD73_021D962C + str r0, [r4, #4] + add r0, r4, #0 + add r0, #0x2c + bl MOD73_021D962C + ldr r0, [r4, #0x14] + add r1, r4, #0 + str r0, [r4, #8] + ldr r0, [r4, #0x2c] + add r1, #8 + str r0, [r4, #0xc] + ldr r0, [r4, #0x44] + bl FUN_02020044 +_021DB180: + ldr r0, [r4, #4] + cmp r0, #1 + bne _021DB18C + add r0, r4, #0 + bl MOD73_021DB190 +_021DB18C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD73_021DB14C + + thumb_func_start MOD73_021DB190 +MOD73_021DB190: ; 0x021DB190 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _021DB1A6 + ldr r0, [r4, #0x44] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0 + str r0, [r4] +_021DB1A6: + pop {r4, pc} + thumb_func_end MOD73_021DB190 + + thumb_func_start MOD73_021DB1A8 +MOD73_021DB1A8: ; 0x021DB1A8 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r0, #0x10 + add r4, r2, #0 + add r6, r3, #0 + str r0, [sp] + add r0, r5, #0 + add r7, r1, #0 + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x20] + add r0, #0x14 + add r1, r4, #0 + bl MOD73_021D95CC + mov r0, #0x10 + str r0, [sp] + add r0, r5, #0 + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x24] + add r0, #0x2c + add r1, r6, #0 + bl MOD73_021D95CC + str r4, [r5, #8] + str r6, [r5, #0xc] + ldr r0, [r5, #0x44] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r5, #0x44] + add r1, r7, #0 + bl FUN_02020130 + ldr r0, [r5, #0x44] + bl FUN_02020198 + ldr r0, [r5, #0x44] + mov r1, #1 + bl FUN_020200BC + ldr r0, [r5, #0x44] + mov r1, #2 + bl FUN_02020238 + mov r0, #1 + str r0, [r5] + mov r0, #0 + str r0, [r5, #4] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DB1A8 + + thumb_func_start MOD73_021DB20C +MOD73_021DB20C: ; 0x021DB20C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #2 + add r4, r1, #0 + str r0, [sp] + ldr r0, [sp, #0x28] + mov r1, #1 + add r6, r2, #0 + add r7, r3, #0 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02088320 + str r0, [r5] + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + lsl r2, r4, #0x10 + lsl r3, r6, #0x10 + ldr r0, [r5] + add r1, r7, #0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x10 + bl FUN_02088490 + str r0, [r5, #4] + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD73_021DB20C + + thumb_func_start MOD73_021DB24C +MOD73_021DB24C: ; 0x021DB24C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r1, [r4, #4] + bl FUN_02088694 + ldr r0, [r4] + bl FUN_02088360 + pop {r4, pc} + thumb_func_end MOD73_021DB24C + + thumb_func_start MOD73_021DB260 +MOD73_021DB260: ; 0x021DB260 + ldr r3, _021DB268 ; =FUN_02088484 + ldr r0, [r0] + bx r3 + nop +_021DB268: .word FUN_02088484 + thumb_func_end MOD73_021DB260 + + thumb_func_start MOD73_021DB26C +MOD73_021DB26C: ; 0x021DB26C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, r1, #0 + add r4, r2, #0 + bl FUN_02014590 + str r0, [r5] + str r4, [r5, #4] + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DB26C + + thumb_func_start MOD73_021DB280 +MOD73_021DB280: ; 0x021DB280 + ldr r3, _021DB288 ; =FUN_020145A8 + ldr r0, [r0] + bx r3 + nop +_021DB288: .word FUN_020145A8 + thumb_func_end MOD73_021DB280 + + thumb_func_start MOD73_021DB28C +MOD73_021DB28C: ; 0x021DB28C + push {lr} + sub sp, #0x14 + ldr r1, [r0, #4] + mov r2, #0x18 + str r1, [sp] + mov r1, #2 + str r1, [sp, #4] + mov r1, #0xaf + str r1, [sp, #8] + mov r1, #5 + str r1, [sp, #0xc] + add r1, sp, #0 + strb r2, [r1, #0x10] + mov r2, #8 + strb r2, [r1, #0x11] + ldr r0, [r0] + add r1, sp, #0 + bl FUN_020145C8 + add sp, #0x14 + pop {pc} + .align 2, 0 + thumb_func_end MOD73_021DB28C + + thumb_func_start MOD73_021DB2B8 +MOD73_021DB2B8: ; 0x021DB2B8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5] + bl FUN_0201466C + add r4, r0, #0 + beq _021DB2CC + ldr r0, [r5] + bl FUN_020146C4 +_021DB2CC: + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD73_021DB2B8 + + thumb_func_start MOD73_021DB2D0 +MOD73_021DB2D0: ; 0x021DB2D0 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r1, #0 + add r1, r3, #0 + ldr r3, [sp, #0x1c] + add r5, r0, #0 + ldr r6, [sp, #0x18] + add r0, r2, #0 + sub r4, r4, r3 + sub r1, r1, r3 + mov r3, #0 + str r3, [sp] + sub r2, r5, r6 + sub r0, r0, r6 + add r3, r4, #0 + bl FUN_0201BBD0 + mov r1, #0xa0 + mul r1, r0 + add r0, r1, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD73_021DB2D0 + + thumb_func_start MOD73_021DB2FC +MOD73_021DB2FC: ; 0x021DB2FC + add r3, r0, #0 + mov r2, #0x18 + mov r1, #0 +_021DB302: + strb r1, [r3] + add r3, r3, #1 + sub r2, r2, #1 + bne _021DB302 + mov r2, #0x80 + str r2, [r0] + mov r1, #0x60 + str r1, [r0, #4] + str r2, [r0, #8] + str r1, [r0, #0xc] + bx lr + thumb_func_end MOD73_021DB2FC + + thumb_func_start MOD73_021DB318 +MOD73_021DB318: ; 0x021DB318 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, _021DB364 ; =0x021C48F8 + ldrh r1, [r0, #0x22] + cmp r1, #0 + beq _021DB33C + ldrh r1, [r0, #0x1c] + str r1, [r4] + ldrh r0, [r0, #0x1e] + str r0, [r4, #4] + ldr r0, [r4, #0x14] + cmp r0, #0 + bne _021DB33C + ldr r0, [r4] + str r0, [r4, #8] + ldr r0, [r4, #4] + str r0, [r4, #0xc] +_021DB33C: + mov r0, #0x80 + str r0, [sp] + mov r0, #0x60 + str r0, [sp, #4] + ldr r0, [r4] + ldr r1, [r4, #4] + ldr r2, [r4, #8] + ldr r3, [r4, #0xc] + bl MOD73_021DB2D0 + str r0, [r4, #0x10] + ldr r0, [r4] + str r0, [r4, #8] + ldr r0, [r4, #4] + str r0, [r4, #0xc] + ldr r0, _021DB364 ; =0x021C48F8 + ldrh r0, [r0, #0x22] + str r0, [r4, #0x14] + add sp, #8 + pop {r4, pc} + .align 2, 0 +_021DB364: .word 0x021C48F8 + thumb_func_end MOD73_021DB318 + + thumb_func_start MOD73_021DB368 +MOD73_021DB368: ; 0x021DB368 + ldr r2, [r1] + strb r2, [r0] + ldr r2, [r1, #4] + strb r2, [r0, #1] + ldr r1, [r1, #0x10] + cmp r1, #0 + bge _021DB380 + neg r1, r1 + strh r1, [r0, #2] + mov r1, #1 + strb r1, [r0, #4] + bx lr +_021DB380: + strh r1, [r0, #2] + mov r1, #0 + strb r1, [r0, #4] + bx lr + thumb_func_end MOD73_021DB368 + + thumb_func_start MOD73_021DB388 +MOD73_021DB388: ; 0x021DB388 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, r1, #0 + add r1, r2, #0 + mov r2, #0x80 + mov r3, #0x60 + bl FUN_0201CBEC + add r4, r0, #0 + ldr r0, [r5, #0xc] + cmp r0, #0 + bge _021DB3A2 + neg r0, r0 +_021DB3A2: + lsl r0, r0, #0x10 + ldr r1, [r5] + lsr r0, r0, #0x10 + bl MOD73_021DB644 + asr r2, r0, #0x1f + lsl r3, r2, #0x12 + lsr r1, r0, #0xe + orr r3, r1 + mov r1, #2 + lsl r2, r0, #0x12 + mov r0, #0 + lsl r1, r1, #0xa + add r2, r2, r1 + adc r3, r0 + lsl r1, r3, #0x14 + lsr r2, r2, #0xc + orr r2, r1 + asr r1, r2, #0xc + cmp r4, #0x10 + bhs _021DB3D0 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DB3D0: + add r1, #8 + cmp r4, r1 + bls _021DB3D8 + mov r0, #2 +_021DB3D8: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DB388 + + thumb_func_start MOD73_021DB3DC +MOD73_021DB3DC: ; 0x021DB3DC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #1 + str r0, [r5, #0x10] + mov r0, #0 + add r4, r1, #0 + str r2, [sp] + str r3, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + add r0, r2, #0 + beq _021DB468 +_021DB3F6: + ldr r0, [sp, #0xc] + add r1, r4, r0 + mov r0, #0x13 + lsl r0, r0, #4 + ldrb r1, [r1, r0] + mov r0, #0x1c + add r6, r1, #0 + mul r6, r0 + add r1, r4, r6 + add r2, r4, r6 + add r1, #0x90 + add r2, #0x91 + ldrb r1, [r1] + ldrb r2, [r2] + add r0, r5, #0 + bl MOD73_021DB388 + cmp r0, #0 + beq _021DB426 + cmp r0, #1 + beq _021DB42E + cmp r0, #2 + beq _021DB43E + b _021DB444 +_021DB426: + add r0, r4, r6 + add r0, #0x92 + ldrh r7, [r0] + b _021DB444 +_021DB42E: + add r0, r4, r6 + add r0, #0x92 + ldrh r0, [r0] + lsl r0, r0, #0xf + lsr r7, r0, #0x10 + mov r0, #0 + str r0, [r5, #0x10] + b _021DB444 +_021DB43E: + mov r7, #0 + add r0, r7, #0 + str r0, [r5, #0x10] +_021DB444: + add r0, r4, r6 + add r0, #0x94 + ldrb r0, [r0] + cmp r0, #0 + bne _021DB456 + ldr r0, [sp, #8] + add r0, r0, r7 + str r0, [sp, #8] + b _021DB45C +_021DB456: + ldr r0, [sp, #8] + sub r0, r0, r7 + str r0, [sp, #8] +_021DB45C: + ldr r0, [sp, #0xc] + add r1, r0, #1 + ldr r0, [sp] + str r1, [sp, #0xc] + cmp r1, r0 + blo _021DB3F6 +_021DB468: + ldr r0, [sp, #8] + ldr r1, [sp] + bl _s32_div_f + add r4, r0, #0 + ldr r1, [r5] + ldr r0, _021DB550 ; =0x021DBF5C + ldrb r0, [r0, r1] + mov r1, #0x33 + lsl r1, r1, #0xe + lsl r0, r0, #0xc + bl FX_Div + add r2, r0, #0 + lsl r0, r4, #0xc + asr r1, r0, #0x1f + asr r3, r2, #0x1f + bl _ll_mul + mov r4, #2 + mov r2, #0 + lsl r4, r4, #0xa + add r4, r0, r4 + adc r1, r2 + lsl r0, r1, #0x14 + lsr r1, r4, #0xc + orr r1, r0 + ldr r3, [r5, #0xc] + asr r0, r1, #0xc + add r0, r3, r0 + str r0, [r5, #0xc] + cmp r0, #0 + ble _021DB4BC + ldr r1, [r5] + lsl r3, r1, #1 + ldr r1, _021DB554 ; =0x021DBF68 + ldrh r1, [r1, r3] + sub r0, r0, r1 + str r0, [r5, #0xc] + bpl _021DB4D0 + str r2, [r5, #0xc] + b _021DB4D0 +_021DB4BC: + bge _021DB4D0 + ldr r1, [r5] + lsl r3, r1, #1 + ldr r1, _021DB554 ; =0x021DBF68 + ldrh r1, [r1, r3] + add r0, r0, r1 + str r0, [r5, #0xc] + cmp r0, #0 + ble _021DB4D0 + str r2, [r5, #0xc] +_021DB4D0: + ldr r1, [r5, #0xc] + ldr r0, _021DB558 ; =0x00000E38 + cmp r1, r0 + ble _021DB4DC + str r0, [r5, #0xc] + b _021DB4E4 +_021DB4DC: + ldr r0, _021DB55C ; =0xFFFFF1C8 + cmp r1, r0 + bge _021DB4E4 + str r0, [r5, #0xc] +_021DB4E4: + ldr r0, [r5, #0xc] + mov r1, #0xa0 + ldr r4, [r5, #8] + bl _s32_div_f + add r1, r0, #0 + mov r0, #0x44 + bl FUN_0201BC84 + ldr r1, [r5, #8] + add r0, r1, r0 + str r0, [r5, #8] + ldr r0, [sp, #4] + cmp r0, #0 + bne _021DB508 + ldr r0, [r5, #0xc] + cmp r0, #0 + bge _021DB514 +_021DB508: + ldr r0, [sp, #4] + cmp r0, #1 + bne _021DB544 + ldr r0, [r5, #0xc] + cmp r0, #0 + bge _021DB544 +_021DB514: + ldr r0, [sp, #4] + cmp r0, #0 + bne _021DB530 + lsl r0, r4, #0x10 + lsr r1, r0, #0x10 + ldr r0, [r5, #8] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r1, r0 + ble _021DB544 + ldr r0, [r5, #4] + add r0, r0, #1 + str r0, [r5, #4] + b _021DB544 +_021DB530: + lsl r0, r4, #0x10 + lsr r1, r0, #0x10 + ldr r0, [r5, #8] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + cmp r1, r0 + bge _021DB544 + ldr r0, [r5, #4] + add r0, r0, #1 + str r0, [r5, #4] +_021DB544: + ldr r0, [r5, #8] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021DB550: .word 0x021DBF5C +_021DB554: .word 0x021DBF68 +_021DB558: .word 0x00000E38 +_021DB55C: .word 0xFFFFF1C8 + thumb_func_end MOD73_021DB3DC + + thumb_func_start MOD73_021DB560 +MOD73_021DB560: ; 0x021DB560 + ldr r0, [r0, #8] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr + thumb_func_end MOD73_021DB560 + + thumb_func_start MOD73_021DB568 +MOD73_021DB568: ; 0x021DB568 + ldr r0, [r0, #4] + bx lr + thumb_func_end MOD73_021DB568 + + thumb_func_start MOD73_021DB56C +MOD73_021DB56C: ; 0x021DB56C + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #3 + blt _021DB57A + bl ErrorHandling +_021DB57A: + str r5, [r4] + mov r0, #0 + str r0, [r4, #4] + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DB56C + + thumb_func_start MOD73_021DB584 +MOD73_021DB584: ; 0x021DB584 + ldr r0, [r0, #0xc] + bx lr + thumb_func_end MOD73_021DB584 + + thumb_func_start MOD73_021DB588 +MOD73_021DB588: ; 0x021DB588 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0 + str r0, [r5, #0x18] + add r4, r1, #0 + add r6, r2, #0 + str r0, [r5, #0x10] + add r0, r4, #0 + add r1, r6, #0 + bl MOD73_021DB60C + cmp r0, #0 + beq _021DB5C6 + ldr r0, [r5, #0xc] + add r0, r0, #1 + str r0, [r5, #0xc] + cmp r0, #0x1e + blo _021DB5C0 + ldr r1, [r5, #4] + ldr r0, _021DB608 ; =0x0000270F + cmp r1, r0 + bhs _021DB5B8 + add r0, r1, #1 + str r0, [r5, #4] +_021DB5B8: + mov r0, #1 + str r0, [r5, #0x18] + mov r0, #0 + str r0, [r5, #0xc] +_021DB5C0: + mov r0, #0 + str r0, [r5, #0x14] + pop {r4, r5, r6, pc} +_021DB5C6: + add r0, r4, #0 + add r1, r6, #0 + bl MOD73_021DB62C + cmp r0, #0 + beq _021DB602 + ldr r0, [r5, #8] + add r0, r0, #1 + str r0, [r5, #8] + cmp r0, #0x5a + blo _021DB606 + mov r0, #0 + str r0, [r5, #8] + ldr r0, [r5, #0x14] + cmp r0, #0 + bne _021DB5F0 + mov r0, #2 + str r0, [r5, #0x10] + mov r0, #1 + str r0, [r5, #0x14] + pop {r4, r5, r6, pc} +_021DB5F0: + mov r0, #1 + str r0, [r5, #0x10] + ldr r1, [r5] + ldr r0, _021DB608 ; =0x0000270F + cmp r1, r0 + bhs _021DB606 + add r0, r1, #1 + str r0, [r5] + pop {r4, r5, r6, pc} +_021DB602: + mov r0, #0 + str r0, [r5, #0x14] +_021DB606: + pop {r4, r5, r6, pc} + .align 2, 0 +_021DB608: .word 0x0000270F + thumb_func_end MOD73_021DB588 + + thumb_func_start MOD73_021DB60C +MOD73_021DB60C: ; 0x021DB60C + cmp r1, #2 + bne _021DB614 + mov r0, #0 + bx lr +_021DB614: + cmp r0, #0 + bge _021DB61A + neg r0, r0 +_021DB61A: + ldr r1, _021DB628 ; =0x00000E38 + cmp r0, r1 + blt _021DB624 + mov r0, #1 + bx lr +_021DB624: + mov r0, #0 + bx lr + .align 2, 0 +_021DB628: .word 0x00000E38 + thumb_func_end MOD73_021DB60C + + thumb_func_start MOD73_021DB62C +MOD73_021DB62C: ; 0x021DB62C + cmp r0, #0 + bge _021DB632 + neg r0, r0 +_021DB632: + ldr r1, _021DB640 ; =0x0000038E + cmp r0, r1 + bgt _021DB63C + mov r0, #1 + bx lr +_021DB63C: + mov r0, #0 + bx lr + .align 2, 0 +_021DB640: .word 0x0000038E + thumb_func_end MOD73_021DB62C + + thumb_func_start MOD73_021DB644 +MOD73_021DB644: ; 0x021DB644 + push {r3, lr} + ldr r1, _021DB678 ; =0x0000038E + sub r0, r0, r1 + bpl _021DB64E + mov r0, #0 +_021DB64E: + lsl r2, r0, #0xc + asr r1, r2, #0x1f + lsr r0, r2, #0x16 + lsl r3, r1, #0xa + orr r3, r0 + mov r0, #2 + lsl r2, r2, #0xa + mov r1, #0 + lsl r0, r0, #0xa + add r0, r2, r0 + adc r3, r1 + lsl r1, r3, #0x14 + lsr r0, r0, #0xc + orr r0, r1 + ldr r1, _021DB67C ; =0x00AAA000 + bl FX_Div + mov r1, #1 + lsl r1, r1, #0xc + add r0, r0, r1 + pop {r3, pc} + .align 2, 0 +_021DB678: .word 0x0000038E +_021DB67C: .word 0x00AAA000 + thumb_func_end MOD73_021DB644 + + thumb_func_start MOD73_021DB680 +MOD73_021DB680: ; 0x021DB680 + add r3, r0, #0 + mov r2, #0x10 + mov r1, #0 +_021DB686: + strb r1, [r3] + add r3, r3, #1 + sub r2, r2, #1 + bne _021DB686 + mov r1, #2 + str r1, [r0, #8] + sub r1, r1, #3 + str r1, [r0, #4] + bx lr + thumb_func_end MOD73_021DB680 + + thumb_func_start MOD73_021DB698 +MOD73_021DB698: ; 0x021DB698 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + mov r1, #0 + str r1, [r5, #0xc] + add r1, r2, #0 + add r6, r3, #0 + bl MOD73_021DB718 + cmp r0, #1 + beq _021DB710 + cmp r6, #1 + beq _021DB710 + ldr r0, [r5, #4] + cmp r0, #0 + bge _021DB70A + bl FUN_0201BA60 + mov r1, #5 + add r6, r0, #0 + bl _u32_div_f + ldr r0, [r5, #8] + cmp r1, r0 + bhi _021DB6D0 + mov r1, #1 + str r1, [r5, #0xc] + b _021DB6D6 +_021DB6D0: + mov r0, #1 + mov r1, #0 + str r0, [r5, #0xc] +_021DB6D6: + ldr r0, [r5] + cmp r1, r0 + bne _021DB6F4 + cmp r0, #1 + ldr r0, [r5, #8] + bne _021DB6EA + sub r0, r0, #1 + bmi _021DB6FA + str r0, [r5, #8] + b _021DB6FA +_021DB6EA: + add r0, r0, #1 + cmp r0, #5 + bge _021DB6FA + str r0, [r5, #8] + b _021DB6FA +_021DB6F4: + str r1, [r5] + mov r0, #2 + str r0, [r5, #8] +_021DB6FA: + add r0, r6, #0 + mov r1, #0x3c + bl _u32_div_f + ldr r0, _021DB714 ; =0x021DBFB0 + ldrb r0, [r0, r4] + add r0, r0, r1 + str r0, [r5, #4] +_021DB70A: + ldr r0, [r5, #4] + sub r0, r0, #1 + str r0, [r5, #4] +_021DB710: + pop {r4, r5, r6, pc} + nop +_021DB714: .word 0x021DBFB0 + thumb_func_end MOD73_021DB698 + + thumb_func_start MOD73_021DB718 +MOD73_021DB718: ; 0x021DB718 + cmp r1, #0 + bge _021DB722 + ldr r2, [r0] + cmp r2, #0 + beq _021DB72C +_021DB722: + cmp r1, #0 + ble _021DB730 + ldr r0, [r0] + cmp r0, #1 + bne _021DB730 +_021DB72C: + mov r0, #1 + bx lr +_021DB730: + mov r0, #0 + bx lr + thumb_func_end MOD73_021DB718 + + thumb_func_start MOD73_021DB734 +MOD73_021DB734: ; 0x021DB734 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r7, #0x1f + add r0, r1, #0 + str r1, [sp] + add r6, r7, #0 + bl MOD73_021DB568 + add r4, r0, #0 + mov r0, #0x96 + ldr r1, [r5] + lsl r0, r0, #2 + cmp r1, r0 + beq _021DB75A + ldr r1, [r5, #8] + ldr r0, _021DB7B8 ; =0x021DBF60 + ldrb r0, [r0, r1] + cmp r4, r0 + blt _021DB774 +_021DB75A: + ldr r0, [r5, #8] + mov r4, #0 + add r0, r0, #1 + str r0, [r5, #8] + str r4, [r5] + ldr r1, [r5, #8] + cmp r1, #3 + blt _021DB76E + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DB76E: + ldr r0, [sp] + bl MOD73_021DB56C +_021DB774: + mov r0, #0x96 + ldr r1, [r5] + lsl r0, r0, #2 + sub r1, r0, r1 + cmp r1, #0x3c + bgt _021DB78C + mov r0, #0x1f + mul r0, r1 + mov r1, #0x3c + bl _s32_div_f + add r7, r0, #0 +_021DB78C: + ldr r1, [r5, #8] + ldr r0, _021DB7B8 ; =0x021DBF60 + ldrb r0, [r0, r1] + sub r1, r0, r4 + cmp r1, #5 + bgt _021DB7A4 + mov r0, #0x1f + mul r0, r1 + mov r1, #5 + bl _s32_div_f + add r6, r0, #0 +_021DB7A4: + cmp r7, r6 + bge _021DB7AC + str r7, [r5, #4] + b _021DB7AE +_021DB7AC: + str r6, [r5, #4] +_021DB7AE: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DB7B8: .word 0x021DBF60 + thumb_func_end MOD73_021DB734 + + thumb_func_start MOD73_021DB7BC +MOD73_021DB7BC: ; 0x021DB7BC + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + mov r1, #0 + str r1, [r0, #0xc] + add r7, r5, #0 + add r4, r3, #0 + str r0, [sp] + ldr r1, [sp, #0x18] + add r0, r4, #0 + add r6, r2, #0 + add r7, #0x98 + bl MOD73_021DB62C + cmp r0, #1 + beq _021DB7EC + ldr r1, [sp, #0x18] + add r0, r4, #0 + bl MOD73_021DB60C + cmp r0, #1 + beq _021DB7EC + ldr r0, [sp, #0x1c] + cmp r0, #0 + bne _021DB7F6 +_021DB7EC: + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #4] + str r1, [r0, #8] + pop {r3, r4, r5, r6, r7, pc} +_021DB7F6: + cmp r6, #1 + bgt _021DB804 + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #4] + str r1, [r0, #8] + pop {r3, r4, r5, r6, r7, pc} +_021DB804: + ldr r0, [sp, #0x20] + cmp r0, #1 + beq _021DB882 + mov r0, #0 + cmp r6, #0 + ble _021DB832 + mov r2, #0x96 + mov r4, #0x1c + lsl r2, r2, #2 +_021DB816: + mov r1, #0x13 + add r3, r5, r0 + lsl r1, r1, #4 + ldrb r1, [r3, r1] + add r3, r1, #0 + mul r3, r4 + add r1, r5, r3 + add r1, #0x92 + ldrh r1, [r1] + cmp r1, r2 + bls _021DB882 + add r0, r0, #1 + cmp r0, r6 + blt _021DB816 +_021DB832: + mov r4, #1 + cmp r6, #1 + ble _021DB862 +_021DB838: + mov r0, #0x13 + add r1, r5, r4 + lsl r0, r0, #4 + ldrb r2, [r1, r0] + ldrb r0, [r7] + ldrb r1, [r7, #4] + add r3, r7, r2 + ldrb r2, [r7, r2] + ldrb r3, [r3, #4] + bl FUN_0201CBEC + cmp r0, #0x20 + bls _021DB85C + ldr r0, [sp] + mov r1, #0 + str r1, [r0, #4] + str r1, [r0, #8] + pop {r3, r4, r5, r6, r7, pc} +_021DB85C: + add r4, r4, #1 + cmp r4, r6 + blt _021DB838 +_021DB862: + ldr r0, [sp] + ldr r0, [r0, #4] + cmp r0, #4 + bge _021DB872 + add r1, r0, #1 + ldr r0, [sp] + str r1, [r0, #4] + pop {r3, r4, r5, r6, r7, pc} +_021DB872: + ldr r0, [sp] + mov r2, #1 + str r2, [r0, #0xc] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp] + str r1, [r0] + str r2, [r0, #8] +_021DB882: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD73_021DB7BC + + thumb_func_start MOD73_021DB884 +MOD73_021DB884: ; 0x021DB884 + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + mov r2, #0x68 + bl Call_FillMemWithValue + add r0, r4, #0 + add r0, #0xc + bl MOD73_021DB680 + mov r1, #0 + mov r0, #0x1f + str r0, [r4, #0x50] + add r4, #0xc + add r0, r4, #0 + add r2, r1, #0 + add r3, r1, #0 + bl MOD73_021DB698 + pop {r4, pc} + thumb_func_end MOD73_021DB884 + + thumb_func_start MOD73_021DB8AC +MOD73_021DB8AC: ; 0x021DB8AC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + add r6, r1, #0 + add r1, r5, #0 + add r0, #0x4c + add r1, #0x1c + add r7, r2, #0 + bl MOD73_021DB734 + cmp r0, #1 + bne _021DB8CA + add sp, #0xc + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021DB8CA: + add r0, r5, #0 + ldr r3, [r5, #0xc] + add r0, #0x1c + add r1, r6, #0 + add r2, r7, #0 + bl MOD73_021DB3DC + add r0, r5, #0 + add r0, #0x1c + bl MOD73_021DB584 + add r4, r0, #0 + add r0, r5, #0 + ldr r2, [r5, #0x54] + add r0, #0x30 + add r1, r4, #0 + bl MOD73_021DB588 + add r0, r5, #0 + add r0, #0xc + add r1, r4, #0 + bl MOD73_021DB718 + ldr r1, [r5, #0x54] + add r2, r7, #0 + str r1, [sp] + ldr r1, [r5, #0x2c] + add r3, r4, #0 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x58 + add r1, r6, #0 + bl MOD73_021DB7BC + add r0, r5, #0 + ldr r1, [r5, #0x54] + ldr r3, [r5, #0x60] + add r0, #0xc + add r2, r4, #0 + bl MOD73_021DB698 + mov r0, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD73_021DB8AC + + thumb_func_start MOD73_021DB924 +MOD73_021DB924: ; 0x021DB924 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r4, #0xc + mov r2, #0 +_021DB92E: + add r3, r1, #0 + add r3, #0x90 + ldrb r3, [r3] + add r0, r4, r2 + strb r3, [r4, r2] + add r3, r1, #0 + add r3, #0x91 + ldrb r3, [r3] + add r2, r2, #1 + add r1, #0x1c + strb r3, [r0, #4] + cmp r2, #4 + blt _021DB92E + add r0, r5, #0 + add r0, #0x1c + bl MOD73_021DB584 + cmp r0, #0 + blt _021DB95A + strh r0, [r4, #0xa] + mov r0, #0 + b _021DB960 +_021DB95A: + neg r0, r0 + strh r0, [r4, #0xa] + mov r0, #1 +_021DB960: + strb r0, [r4, #0xc] + add r0, r5, #0 + add r0, #0x1c + bl MOD73_021DB560 + strh r0, [r4, #8] + ldr r0, [r5, #0x40] + strb r0, [r4, #0x12] + ldr r0, [r5, #0x48] + strb r0, [r4, #0x13] + ldr r0, [r5, #0xc] + strb r0, [r4, #0x11] + ldr r0, [r5, #0x18] + strb r0, [r4, #0xe] + ldr r0, [r5, #0x54] + cmp r0, #3 + bge _021DB984 + b _021DB986 +_021DB984: + mov r0, #2 +_021DB986: + strb r0, [r4, #0xd] + ldr r0, [r5, #0x50] + strb r0, [r4, #0x10] + ldr r0, [r5, #0x64] + strb r0, [r4, #0xf] + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DB924 + + thumb_func_start MOD73_021DB994 +MOD73_021DB994: ; 0x021DB994 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r3, #0 + mov r1, #0x80 + mov r0, #0x60 +_021DB9A0: + add r2, r4, r3 + strb r1, [r4, r3] + add r3, r3, #1 + strb r0, [r2, #4] + cmp r3, #4 + blt _021DB9A0 + add r0, r5, #0 + add r0, #0x1c + bl MOD73_021DB584 + cmp r0, #0 + blt _021DB9BE + strh r0, [r4, #0xa] + mov r0, #0 + b _021DB9C4 +_021DB9BE: + neg r0, r0 + strh r0, [r4, #0xa] + mov r0, #1 +_021DB9C4: + strb r0, [r4, #0xc] + add r0, r5, #0 + add r0, #0x1c + bl MOD73_021DB560 + strh r0, [r4, #8] + ldr r0, [r5, #0x40] + strb r0, [r4, #0x12] + ldr r0, [r5, #0x48] + strb r0, [r4, #0x13] + ldr r0, [r5, #0xc] + strb r0, [r4, #0x11] + ldr r0, [r5, #0x18] + strb r0, [r4, #0xe] + ldr r0, [r5, #0x54] + strb r0, [r4, #0xd] + ldr r0, [r5, #0x50] + strb r0, [r4, #0x10] + ldr r0, [r5, #0x64] + strb r0, [r4, #0xf] + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD73_021DB994 + + thumb_func_start MOD73_021DB9F0 +MOD73_021DB9F0: ; 0x021DB9F0 + ldr r1, [r0] + add r1, r1, #1 + str r1, [r0] + bx lr + thumb_func_end MOD73_021DB9F0 + + thumb_func_start MOD73_021DB9F8 +MOD73_021DB9F8: ; 0x021DB9F8 + push {r4, lr} + add r4, r1, #0 + mov r1, #6 + bl _u32_div_f + ldr r1, _021DBA1C ; =0x021DBF63 + ldrb r1, [r1, r4] + mul r1, r0 + add r0, r1, #0 + mov r1, #0xa + bl _u32_div_f + ldr r1, _021DBA20 ; =0x0000270F + cmp r0, r1 + ble _021DBA18 + add r0, r1, #0 +_021DBA18: + pop {r4, pc} + nop +_021DBA1C: .word 0x021DBF63 +_021DBA20: .word 0x0000270F + thumb_func_end MOD73_021DB9F8 + + thumb_func_start MOD73_021DBA24 +MOD73_021DBA24: ; 0x021DBA24 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x60 + str r0, [sp] + ldr r0, [sp, #0x78] + str r1, [sp, #4] + str r0, [sp, #0x78] + add r0, r2, #0 + str r0, [sp, #0x24] + add r0, #0x34 + str r0, [sp, #0x24] + mov r1, #0 + add r0, sp, #0x4c + str r1, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + str r1, [r0, #0xc] + str r1, [r0, #0x10] + add r0, r1, #0 + add r6, r3, #0 + str r2, [sp, #8] + str r1, [sp, #0x20] + str r0, [sp, #0x18] + str r0, [sp, #0x28] + cmp r6, #0 + bls _021DBAD6 +_021DBA56: + ldr r1, [sp, #8] + ldr r0, [sp, #0x28] + add r1, r1, r0 + mov r0, #0x13 + lsl r0, r0, #4 + ldrb r0, [r1, r0] + ldr r1, [sp, #0x78] + lsl r4, r0, #2 + ldr r0, [sp, #0x24] + ldr r0, [r0, r4] + bl FUN_02085284 + mov r3, #0 + add r7, r0, #0 + add r2, r3, #0 + cmp r6, #0 + bls _021DBA98 + ldr r0, [sp, #0x24] + mov r5, #0x13 + ldr r4, [r0, r4] + lsl r5, r5, #4 +_021DBA80: + ldr r0, [sp, #8] + add r0, r0, r2 + ldrb r0, [r0, r5] + lsl r1, r0, #2 + ldr r0, [sp, #0x24] + ldr r0, [r0, r1] + cmp r4, r0 + bne _021DBA92 + add r3, r3, #1 +_021DBA92: + add r2, r2, #1 + cmp r2, r6 + blo _021DBA80 +_021DBA98: + ldr r0, [sp, #0x18] + cmp r3, r0 + ble _021DBAA0 + str r3, [sp, #0x18] +_021DBAA0: + mov r5, #0 + add r4, sp, #0x4c +_021DBAA4: + add r0, r7, #0 + add r1, r5, #5 + bl FUN_02085290 + ldr r1, [r4] + add r5, r5, #1 + add r0, r1, r0 + stmia r4!, {r0} + cmp r5, #5 + blt _021DBAA4 + add r0, r7, #0 + mov r1, #0xa + bl FUN_02085290 + ldr r1, [sp, #0x20] + add r0, r1, r0 + str r0, [sp, #0x20] + add r0, r7, #0 + bl FUN_02016A18 + ldr r0, [sp, #0x28] + add r0, r0, #1 + str r0, [sp, #0x28] + cmp r0, r6 + blo _021DBA56 +_021DBAD6: + ldr r0, [sp, #0x18] + cmp r0, #2 + blt _021DBAE6 + cmp r6, #1 + bls _021DBAE6 + mov r0, #1 + str r0, [sp, #0x14] + b _021DBAEA +_021DBAE6: + mov r0, #0 + str r0, [sp, #0x14] +_021DBAEA: + ldr r0, [sp, #0x20] + add r1, r6, #0 + bl _u32_div_f + sub r0, r0, r6 + mov r5, #0 + add r4, sp, #0x4c + str r0, [sp, #0x1c] + str r5, [sp, #0xc] + add r7, sp, #0x38 + str r4, [sp, #0x2c] +_021DBB00: + ldr r0, [sp, #0xc] + mov r1, #5 + add r0, r0, #1 + bl _s32_div_f + lsl r2, r1, #2 + ldr r1, [sp, #0x2c] + ldr r0, [r4] + ldr r1, [r1, r2] + sub r0, r0, r1 + str r0, [r7] + bpl _021DBB1A + add r5, r5, #1 +_021DBB1A: + ldr r0, [sp, #0xc] + add r4, r4, #4 + add r0, r0, #1 + add r7, r7, #4 + str r0, [sp, #0xc] + cmp r0, #5 + blt _021DBB00 + mov r2, #0 + add r1, sp, #0x38 +_021DBB2C: + ldr r0, [r1] + add r2, r2, #1 + sub r0, r0, r5 + stmia r1!, {r0} + cmp r2, #5 + blt _021DBB2C + cmp r5, #4 + blt _021DBB40 + mov r0, #1 + str r0, [sp, #0x14] +_021DBB40: + ldr r1, [sp] + ldr r0, _021DBBF8 ; =0x001B7740 + ldr r1, [r1] + bl _u32_div_f + mov r1, #0xa + add r5, r0, #0 + bl _s32_div_f + cmp r1, #5 + blt _021DBB58 + add r5, #0xa +_021DBB58: + add r0, r5, #0 + mov r1, #0xa + mov r7, #0 + add r4, sp, #0x38 + bl _s32_div_f + str r0, [sp, #0x10] +_021DBB66: + ldr r0, [sp, #0x10] + ldr r1, [r4] + add r5, r0, #0 + mul r5, r1 + add r0, r5, #0 + mov r1, #0x64 + bl _s32_div_f + cmp r1, #0x32 + blt _021DBB7C + add r5, #0x64 +_021DBB7C: + add r0, r5, #0 + mov r1, #0x64 + bl _s32_div_f + ldr r1, [sp] + ldr r2, [r1, #0x30] + ldr r1, [r1, #0x34] + add r1, r2, r1 + sub r0, r0, r1 + str r0, [r4] + bpl _021DBB96 + mov r0, #0 + str r0, [r4] +_021DBB96: + add r7, r7, #1 + add r4, r4, #4 + cmp r7, #5 + blt _021DBB66 + cmp r6, #1 + bls _021DBBB8 + ldr r0, [sp] + add r1, r6, #0 + ldr r0, [r0, #0x58] + bl MOD73_021DB9F8 + cmp r0, #0xa + ble _021DBBB2 + mov r0, #0xa +_021DBBB2: + ldr r1, [sp, #0x1c] + sub r0, r1, r0 + str r0, [sp, #0x1c] +_021DBBB8: + ldr r0, [sp, #0x1c] + cmp r0, #0xf + bge _021DBBC2 + mov r0, #0xf + str r0, [sp, #0x1c] +_021DBBC2: + mov r3, #0 + add r1, sp, #0x38 + add r2, sp, #0x30 +_021DBBC8: + ldr r0, [r1] + add r3, r3, #1 + strb r0, [r2] + add r1, r1, #4 + add r2, r2, #1 + cmp r3, #5 + blt _021DBBC8 + ldr r2, [sp, #0x1c] + ldr r0, [sp, #4] + lsl r2, r2, #0x18 + ldr r3, [sp, #0x14] + add r1, sp, #0x30 + lsr r2, r2, #0x18 + bl FUN_02027F04 + ldr r1, [sp] + str r0, [r1, #4] + ldr r0, [sp, #4] + bl FUN_02027FDC + ldr r1, [sp] + str r0, [r1, #8] + add sp, #0x60 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DBBF8: .word 0x001B7740 + thumb_func_end MOD73_021DBA24 + + thumb_func_start MOD73_021DBBFC +MOD73_021DBBFC: ; 0x021DBBFC + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x34] + add r4, r1, #0 + str r0, [r1, #0x20] + ldr r0, [r5, #0x30] + add r4, #0x20 + str r0, [r4, #4] + ldr r0, [r5, #0x58] + add r1, r2, #0 + bl MOD73_021DB9F8 + str r0, [r4, #8] + ldr r0, [r5, #4] + ldr r1, _021DBC54 ; =0x00000708 + strb r0, [r4, #0xc] + ldr r0, [r5, #8] + strb r0, [r4, #0xd] + ldr r5, [r5] + add r0, r5, #0 + bl _s32_div_f + strb r0, [r4, #0xe] + ldrb r1, [r4, #0xe] + ldr r0, _021DBC54 ; =0x00000708 + mul r0, r1 + sub r5, r5, r0 + add r0, r5, #0 + mov r1, #0x1e + bl _s32_div_f + strb r0, [r4, #0xf] + ldrb r0, [r4, #0xf] + mov r1, #0x1e + add r2, r0, #0 + mul r2, r1 + sub r2, r5, r2 + mov r0, #0x64 + mul r0, r2 + bl _s32_div_f + strb r0, [r4, #0x10] + pop {r3, r4, r5, pc} + nop +_021DBC54: .word 0x00000708 + thumb_func_end MOD73_021DBBFC + + .section .rodata + ; 0x021DBC58 + .incbin "baserom.nds", 0x2CE578, 0x318 + + .section .data + ; 0x021DBF80 + .incbin "baserom.nds", 0x2CE8A0, 0x40 diff --git a/arm9/modules/74/asm/module_74.s b/arm9/modules/74/asm/module_74.s new file mode 100644 index 00000000..416745d9 --- /dev/null +++ b/arm9/modules/74/asm/module_74.s @@ -0,0 +1,2022 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD74_021D74E0 +MOD74_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl FUN_0200628C + mov r2, #1 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x4a + lsl r2, r2, #0x10 + bl FUN_0201681C + mov r1, #0xad + add r0, r4, #0 + lsl r1, r1, #2 + mov r2, #0x4a + bl FUN_02006268 + mov r2, #0xad + mov r1, #0 + lsl r2, r2, #2 + add r4, r0, #0 + bl Call_FillMemWithValue + ldrh r0, [r5, #4] + strh r0, [r4, #8] + ldrh r0, [r5, #6] + strb r0, [r4, #0xa] + ldr r0, [r5] + bl LoadPlayerDataAddress + str r0, [r4, #0x18] + ldr r0, [r5] + bl FUN_02029FC8 + str r0, [r4, #0x1c] + ldr r0, [r5] + bl FUN_0202A8D8 + str r0, [r4, #0x20] + ldr r0, [r5] + bl FUN_0202A8E4 + str r0, [r4, #0x24] + mov r0, #0x4a + str r0, [r4] + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD74_021D74E0 + + thumb_func_start MOD74_021D7540 +MOD74_021D7540: ; 0x021D7540 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, r5, #0 + bl FUN_0200627C + ldr r0, [r4] + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD74_021D7540 + + thumb_func_start MOD74_021D755C +MOD74_021D755C: ; 0x021D755C + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + bl FUN_02006278 + ldr r1, [r4] + add r5, r0, #0 + cmp r1, #4 + bhi _021D760C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D757A: ; jump table + .short _021D7584 - _021D757A - 2 ; case 0 + .short _021D75AA - _021D757A - 2 ; case 1 + .short _021D75BA - _021D757A - 2 ; case 2 + .short _021D75EE - _021D757A - 2 ; case 3 + .short _021D75FE - _021D757A - 2 ; case 4 +_021D7584: + bl MOD74_021D7624 + cmp r0, #0 + beq _021D760C + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r5] + add r2, r1, #0 + str r0, [sp, #8] + mov r0, #3 + mov r3, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D760C +_021D75AA: + bl FUN_0200E308 + cmp r0, #0 + beq _021D760C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D760C +_021D75BA: + ldrh r1, [r5, #8] + cmp r1, #0 + bne _021D75C6 + bl MOD74_021D77AC + b _021D75CA +_021D75C6: + bl MOD74_021D790C +_021D75CA: + cmp r0, #0 + beq _021D760C + mov r0, #6 + str r0, [sp] + mov r0, #1 + mov r1, #0 + str r0, [sp, #4] + ldr r0, [r5] + add r2, r1, #0 + str r0, [sp, #8] + mov r0, #3 + add r3, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D760C +_021D75EE: + bl FUN_0200E308 + cmp r0, #0 + beq _021D760C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D760C +_021D75FE: + bl MOD74_021D76E8 + cmp r0, #0 + beq _021D760C + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021D760C: + ldr r0, [r4] + cmp r0, #1 + blt _021D761C + cmp r0, #3 + bgt _021D761C + add r0, r5, #0 + bl MOD74_021D82D4 +_021D761C: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD74_021D755C + + thumb_func_start MOD74_021D7624 +MOD74_021D7624: ; 0x021D7624 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #4] + cmp r1, #4 + bhi _021D76D2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D763A: ; jump table + .short _021D7644 - _021D763A - 2 ; case 0 + .short _021D7684 - _021D763A - 2 ; case 1 + .short _021D7690 - _021D763A - 2 ; case 2 + .short _021D76B6 - _021D763A - 2 ; case 3 + .short _021D76C2 - _021D763A - 2 ; case 4 +_021D7644: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D76DC ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D76E0 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + bl MOD74_021D7764 + mov r0, #0 + bl FUN_0200E388 + mov r0, #1 + bl FUN_0200E388 + add r0, r4, #0 + bl MOD74_021D7934 + b _021D76D2 +_021D7684: + bl MOD74_021D79F8 + add r0, r4, #0 + bl MOD74_021D7B20 + b _021D76D2 +_021D7690: + bl MOD74_021D7A88 + ldrh r0, [r4, #8] + cmp r0, #0 + bne _021D76A8 + add r0, r4, #0 + bl MOD74_021D7D1C + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + b _021D76D2 +_021D76A8: + add r0, r4, #0 + bl MOD74_021D7E9C + add r0, r4, #0 + bl MOD74_021D8008 + b _021D76D2 +_021D76B6: + bl MOD74_021D8200 + add r0, r4, #0 + bl MOD74_021D82F0 + b _021D76D2 +_021D76C2: + ldr r0, _021D76E4 ; =MOD74_021D7784 + add r1, r4, #0 + bl FUN_02015F10 + mov r0, #0 + str r0, [r4, #4] + mov r0, #1 + pop {r4, pc} +_021D76D2: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D76DC: .word 0xFFFFE0FF +_021D76E0: .word 0x04001000 +_021D76E4: .word MOD74_021D7784 + thumb_func_end MOD74_021D7624 + + thumb_func_start MOD74_021D76E8 +MOD74_021D76E8: ; 0x021D76E8 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #4] + cmp r1, #0 + beq _021D76F8 + cmp r1, #1 + beq _021D7722 + b _021D7752 +_021D76F8: + ldrh r1, [r4, #8] + cmp r1, #0 + beq _021D770E + bl MOD74_021D836C + add r0, r4, #0 + bl MOD74_021D82B0 + add r0, r4, #0 + bl MOD74_021D7F28 +_021D770E: + add r0, r4, #0 + bl MOD74_021D7AF0 + add r0, r4, #0 + bl MOD74_021D7BB4 + add r0, r4, #0 + bl MOD74_021D79C8 + b _021D7752 +_021D7722: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D775C ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D7760 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #0 + str r0, [r4, #4] + mov r0, #1 + pop {r4, pc} +_021D7752: + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D775C: .word 0xFFFFE0FF +_021D7760: .word 0x04001000 + thumb_func_end MOD74_021D76E8 + + thumb_func_start MOD74_021D7764 +MOD74_021D7764: ; 0x021D7764 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7780 ; =0x021D8518 + add r3, sp, #0 + mov r2, #5 +_021D776E: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D776E + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7780: .word 0x021D8518 + thumb_func_end MOD74_021D7764 + + thumb_func_start MOD74_021D7784 +MOD74_021D7784: ; 0x021D7784 + push {r4, lr} + add r4, r0, #0 + bl MOD74_021D82E8 + bl FUN_020AEEB8 + ldr r0, [r4, #0x10] + bl FUN_0201AB60 + ldr r3, _021D77A4 ; =0x027E0000 + ldr r1, _021D77A8 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + .align 2, 0 +_021D77A4: .word 0x027E0000 +_021D77A8: .word 0x00003FF8 + thumb_func_end MOD74_021D7784 + + thumb_func_start MOD74_021D77AC +MOD74_021D77AC: ; 0x021D77AC + ldr r0, _021D77C0 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _021D77BA + mov r0, #1 + bx lr +_021D77BA: + mov r0, #0 + bx lr + nop +_021D77C0: .word 0x021C48B8 + thumb_func_end MOD74_021D77AC + + thumb_func_start MOD74_021D77C4 +MOD74_021D77C4: ; 0x021D77C4 + push {r3, r4, r5, lr} + sub sp, #8 + ldr r1, _021D78B8 ; =0x021C48B8 + add r4, r0, #0 + ldr r2, [r1, #0x48] + mov r1, #2 + mov r3, #0 + tst r1, r2 + beq _021D77DC + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D77DC: + mov r1, #1 + add r5, r2, #0 + tst r5, r1 + beq _021D7800 + ldrb r2, [r4, #0xb] + cmp r2, #0xa + blo _021D77F0 + add sp, #8 + add r0, r1, #0 + pop {r3, r4, r5, pc} +_021D77F0: + ldrb r1, [r4, #0xd] + add r1, r1, #1 + strb r1, [r4, #0xd] + bl MOD74_021D80D0 + add sp, #8 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D7800: + mov r0, #0x40 + tst r0, r2 + beq _021D7828 + ldrb r0, [r4, #0xb] + cmp r0, #0 + beq _021D787A + sub r0, r0, #1 + strb r0, [r4, #0xb] + ldrb r0, [r4, #0xf] + cmp r0, #0 + bne _021D7820 + ldrb r0, [r4, #0xe] + add r3, r1, #0 + sub r0, r0, #1 + strb r0, [r4, #0xe] + b _021D787A +_021D7820: + sub r0, r0, #1 + strb r0, [r4, #0xf] + add r3, r1, #0 + b _021D787A +_021D7828: + mov r0, #0x80 + tst r0, r2 + beq _021D7850 + ldrb r0, [r4, #0xb] + cmp r0, #0xa + bhs _021D787A + add r0, r0, #1 + strb r0, [r4, #0xb] + ldrb r0, [r4, #0xf] + cmp r0, #1 + bls _021D7848 + ldrb r0, [r4, #0xe] + add r3, r1, #0 + add r0, r0, #1 + strb r0, [r4, #0xe] + b _021D787A +_021D7848: + add r0, r0, #1 + strb r0, [r4, #0xf] + add r3, r1, #0 + b _021D787A +_021D7850: + mov r0, #0x20 + tst r0, r2 + beq _021D7866 + ldrb r0, [r4, #0xc] + mov r1, #3 + add r0, r0, #2 + bl _s32_div_f + strb r1, [r4, #0xc] + mov r3, #1 + b _021D787A +_021D7866: + mov r0, #0x10 + tst r0, r2 + beq _021D787A + ldrb r0, [r4, #0xc] + mov r1, #3 + add r0, r0, #1 + bl _s32_div_f + strb r1, [r4, #0xc] + mov r3, #1 +_021D787A: + ldrb r0, [r4, #0xb] + cmp r0, #0xa + bne _021D7884 + mov r0, #2 + strb r0, [r4, #0xc] +_021D7884: + cmp r3, #0 + bne _021D788E + add sp, #8 + mov r0, #0 + pop {r3, r4, r5, pc} +_021D788E: + ldrb r1, [r4, #0xb] + ldrb r2, [r4, #0xc] + ldrb r3, [r4, #0xf] + add r0, r4, #0 + bl MOD74_021D83D4 + ldrb r0, [r4, #0xb] + add r1, r4, #0 + add r1, #0x7c + str r0, [sp] + ldrb r0, [r4, #0xc] + str r0, [sp, #4] + add r0, r4, #0 + ldrb r3, [r4, #0xe] + ldr r2, [r4, #0x34] + add r0, #0xbc + bl MOD74_021D7F44 + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D78B8: .word 0x021C48B8 + thumb_func_end MOD74_021D77C4 + + thumb_func_start MOD74_021D78BC +MOD74_021D78BC: ; 0x021D78BC + push {r4, lr} + ldr r1, _021D78E8 ; =0x021C48B8 + add r4, r0, #0 + ldr r2, [r1, #0x48] + mov r1, #1 + tst r1, r2 + beq _021D78D6 + bl MOD74_021D818C + ldrb r0, [r4, #0xd] + add r0, r0, #1 + strb r0, [r4, #0xd] + b _021D78E4 +_021D78D6: + mov r1, #2 + tst r1, r2 + beq _021D78E4 + bl MOD74_021D81E0 + mov r0, #0 + strb r0, [r4, #0xd] +_021D78E4: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D78E8: .word 0x021C48B8 + thumb_func_end MOD74_021D78BC + + thumb_func_start MOD74_021D78EC +MOD74_021D78EC: ; 0x021D78EC + push {r4, lr} + ldr r1, _021D7908 ; =0x021C48B8 + add r4, r0, #0 + ldr r2, [r1, #0x48] + mov r1, #3 + tst r1, r2 + beq _021D7902 + bl MOD74_021D81E0 + mov r0, #0 + strb r0, [r4, #0xd] +_021D7902: + mov r0, #0 + pop {r4, pc} + nop +_021D7908: .word 0x021C48B8 + thumb_func_end MOD74_021D78EC + + thumb_func_start MOD74_021D790C +MOD74_021D790C: ; 0x021D790C + push {r3, lr} + ldrb r1, [r0, #0xd] + cmp r1, #0 + beq _021D791E + cmp r1, #1 + beq _021D7924 + cmp r1, #2 + beq _021D792A + b _021D7930 +_021D791E: + bl MOD74_021D77C4 + pop {r3, pc} +_021D7924: + bl MOD74_021D78BC + pop {r3, pc} +_021D792A: + bl MOD74_021D78EC + pop {r3, pc} +_021D7930: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD74_021D790C + + thumb_func_start MOD74_021D7934 +MOD74_021D7934: ; 0x021D7934 + push {r4, r5, r6, r7, lr} + sub sp, #0x64 + add r5, r0, #0 + ldr r0, [r5] + bl FUN_02016B94 + add r3, sp, #0 + ldr r4, _021D79C0 ; =0x021D84A0 + str r0, [r5, #0x10] + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r4, _021D79C4 ; =0x021D8570 + add r3, sp, #0x10 + mov r2, #0xa +_021D795C: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D795C + ldr r0, [r4] + mov r4, #0 + str r0, [r3] + ldrh r0, [r5, #8] + add r7, r4, #0 + add r0, r0, #2 + cmp r0, #0 + ble _021D799C + add r6, sp, #0x10 +_021D7976: + lsl r1, r4, #0x18 + ldr r0, [r5, #0x10] + lsr r1, r1, #0x18 + add r2, r6, #0 + mov r3, #0 + bl FUN_02016C18 + lsl r1, r4, #0x18 + ldr r0, [r5, #0x10] + lsr r1, r1, #0x18 + bl FUN_02018744 + ldrh r0, [r5, #8] + add r7, r7, #1 + add r4, r4, #1 + add r0, r0, #2 + add r6, #0x1c + cmp r7, r0 + blt _021D7976 +_021D799C: + mov r0, #0 + ldr r3, [r5] + mov r1, #0x20 + add r2, r0, #0 + bl FUN_02017F18 + ldrh r0, [r5, #8] + cmp r0, #0 + beq _021D79BA + ldr r3, [r5] + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 +_021D79BA: + add sp, #0x64 + pop {r4, r5, r6, r7, pc} + nop +_021D79C0: .word 0x021D84A0 +_021D79C4: .word 0x021D8570 + thumb_func_end MOD74_021D7934 + + thumb_func_start MOD74_021D79C8 +MOD74_021D79C8: ; 0x021D79C8 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldrh r0, [r6, #8] + mov r5, #0 + add r4, r5, #0 + add r0, r0, #2 + cmp r0, #0 + ble _021D79EE +_021D79D8: + lsl r1, r5, #0x18 + ldr r0, [r6, #0x10] + lsr r1, r1, #0x18 + add r5, r5, #1 + bl FUN_020178A0 + ldrh r0, [r6, #8] + add r4, r4, #1 + add r0, r0, #2 + cmp r4, r0 + blt _021D79D8 +_021D79EE: + ldr r0, [r6, #0x10] + bl FUN_02016A18 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD74_021D79C8 + + thumb_func_start MOD74_021D79F8 +MOD74_021D79F8: ; 0x021D79F8 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r1, [r5] + mov r0, #0x7b + bl FUN_02006670 + add r4, r0, #0 + mov r0, #5 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x10] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x7b + bl FUN_02079B60 + mov r0, #4 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0x40 + str r0, [sp, #0xc] + mov r0, #0 + str r0, [sp, #0x10] + ldr r0, [r5, #0x10] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x7b + bl FUN_02079B60 + ldrh r0, [r5, #8] + cmp r0, #1 + bne _021D7A4E + mov r0, #7 + b _021D7A5A +_021D7A4E: + ldrb r0, [r5, #0xa] + cmp r0, #2 + bne _021D7A58 + mov r0, #8 + b _021D7A5A +_021D7A58: + mov r0, #6 +_021D7A5A: + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [r5, #0x10] + ldr r1, [r5] + add r2, r4, #0 + mov r3, #0x7b + bl FUN_02079B60 + add r0, r4, #0 + bl FUN_020066F4 + ldr r0, [r5, #0x10] + mov r1, #1 + bl FUN_0201AC68 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD74_021D79F8 + + thumb_func_start MOD74_021D7A88 +MOD74_021D7A88: ; 0x021D7A88 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldrh r0, [r6, #8] + cmp r0, #0 + bne _021D7AB8 + add r5, r6, #0 + ldr r4, _021D7AE8 ; =0x021D8540 + mov r7, #0 + add r5, #0x6c +_021D7A9A: + ldr r0, [r6, #0x10] + add r1, r5, #0 + add r2, r4, #0 + bl FUN_02019150 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r7, r7, #1 + add r4, #8 + add r5, #0x10 + cmp r7, #5 + blt _021D7A9A + b _021D7ADC +_021D7AB8: + add r5, r6, #0 + ldr r4, _021D7AEC ; =0x021D84C4 + mov r7, #0 + add r5, #0x6c +_021D7AC0: + ldr r0, [r6, #0x10] + add r1, r5, #0 + add r2, r4, #0 + bl FUN_02019150 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r7, r7, #1 + add r4, #8 + add r5, #0x10 + cmp r7, #3 + blt _021D7AC0 +_021D7ADC: + ldr r2, [r6] + mov r0, #0 + mov r1, #0x40 + bl FUN_02002ED0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D7AE8: .word 0x021D8540 +_021D7AEC: .word 0x021D84C4 + thumb_func_end MOD74_021D7A88 + + thumb_func_start MOD74_021D7AF0 +MOD74_021D7AF0: ; 0x021D7AF0 + push {r4, r5, r6, lr} + ldrh r1, [r0, #8] + cmp r1, #0 + bne _021D7AFC + mov r6, #5 + b _021D7AFE +_021D7AFC: + mov r6, #3 +_021D7AFE: + mov r4, #0 + cmp r6, #0 + ble _021D7B1C + add r5, r0, #0 + add r5, #0x6c +_021D7B08: + add r0, r5, #0 + bl FUN_02019570 + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, r6 + blt _021D7B08 +_021D7B1C: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD74_021D7AF0 + + thumb_func_start MOD74_021D7B20 +MOD74_021D7B20: ; 0x021D7B20 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r3, [r5] + mov r0, #0 + mov r1, #0x1a + mov r2, #0x11 + bl FUN_0200A86C + str r0, [r5, #0x28] + ldr r2, [r5] + mov r0, #2 + mov r1, #0x4c + bl FUN_0200AA90 + str r0, [r5, #0x2c] + ldr r1, [r5] + mov r0, #0x4c + bl FUN_020219F4 + str r0, [r5, #0x30] + mov r6, #0 + add r4, r5, #0 +_021D7B4C: + add r1, r6, #0 + ldr r0, [r5, #0x28] + add r1, #9 + bl FUN_0200A914 + str r0, [r4, #0x4c] + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #6 + blt _021D7B4C + ldr r0, [r5, #0x28] + mov r1, #0xf + bl FUN_0200A914 + str r0, [r5, #0x38] + ldr r0, [r5, #0x28] + mov r1, #0x11 + bl FUN_0200A914 + str r0, [r5, #0x3c] + ldr r0, [r5, #0x28] + mov r1, #0x12 + bl FUN_0200A914 + str r0, [r5, #0x34] + ldr r0, [r5, #0x28] + mov r1, #0x13 + bl FUN_0200A914 + str r0, [r5, #0x40] + ldr r0, [r5, #0x28] + mov r1, #0x14 + bl FUN_0200A914 + str r0, [r5, #0x44] + ldr r0, [r5, #0x28] + mov r1, #0x15 + bl FUN_0200A914 + str r0, [r5, #0x48] + ldr r0, [r5, #0x28] + mov r1, #0x16 + bl FUN_0200A914 + str r0, [r5, #0x64] + ldr r0, [r5, #0x28] + mov r1, #0x17 + bl FUN_0200A914 + str r0, [r5, #0x68] + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD74_021D7B20 + + thumb_func_start MOD74_021D7BB4 +MOD74_021D7BB4: ; 0x021D7BB4 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, [r6, #0x68] + bl FUN_02021A20 + ldr r0, [r6, #0x64] + bl FUN_02021A20 + ldr r0, [r6, #0x48] + bl FUN_02021A20 + ldr r0, [r6, #0x44] + bl FUN_02021A20 + ldr r0, [r6, #0x40] + bl FUN_02021A20 + ldr r0, [r6, #0x34] + bl FUN_02021A20 + ldr r0, [r6, #0x3c] + bl FUN_02021A20 + ldr r0, [r6, #0x38] + bl FUN_02021A20 + mov r4, #0 + add r5, r6, #0 +_021D7BEC: + ldr r0, [r5, #0x4c] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _021D7BEC + ldr r0, [r6, #0x30] + bl FUN_02021A20 + ldr r0, [r6, #0x2c] + bl FUN_0200AB18 + ldr r0, [r6, #0x28] + bl FUN_0200A8B8 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD74_021D7BB4 + + thumb_func_start MOD74_021D7C10 +MOD74_021D7C10: ; 0x021D7C10 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + add r7, r3, #0 + add r4, r1, #0 + ldr r0, [r5, #0x1c] + add r1, r7, #0 + add r6, r2, #0 + bl FUN_0202A150 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r5, #0x1c] + add r1, r7, #1 + bl FUN_0202A150 + lsl r0, r0, #0x10 + add r6, #8 + lsr r7, r0, #0x10 + lsl r1, r6, #0x10 + ldr r0, [r5, #0x20] + lsr r1, r1, #0x10 + mov r2, #0 + bl FUN_0202A578 + lsl r2, r0, #0x10 + add r0, sp, #0x18 + ldrb r6, [r0, #0x10] + lsr r2, r2, #0xe + mov r0, #0xff + str r6, [sp] + str r0, [sp, #4] + mov r0, #0xc1 + lsl r0, r0, #0xa + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + add r2, r5, r2 + ldr r2, [r2, #0x4c] + add r0, r4, #0 + mov r3, #4 + bl FUN_0201BDE0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [r5, #0x2c] + mov r1, #0 + add r2, r7, #0 + mov r3, #4 + bl FUN_0200AD38 + ldr r0, [r5, #0x2c] + ldr r1, [r5, #0x30] + ldr r2, [r5, #0x5c] + bl FUN_0200B7B8 + mov r0, #0 + ldr r1, [r5, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xa4 + sub r3, r1, r0 + str r6, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7D18 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r5, #0x30] + add r0, r4, #0 + bl FUN_0201BDE0 + add r0, sp, #0x18 + ldrb r0, [r0, #0x10] + add r0, #0x18 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + str r6, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r0, #0xc1 + lsl r0, r0, #0xa + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + ldr r2, [r5, #0x54] + add r0, r4, #0 + mov r3, #4 + bl FUN_0201BDE0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [r5, #0x2c] + ldr r2, [sp, #0x10] + mov r1, #0 + mov r3, #4 + bl FUN_0200AD38 + ldr r0, [r5, #0x2c] + ldr r1, [r5, #0x30] + ldr r2, [r5, #0x5c] + bl FUN_0200B7B8 + mov r0, #0 + ldr r1, [r5, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xa4 + sub r3, r1, r0 + str r6, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7D18 ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, [r5, #0x30] + add r0, r4, #0 + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_020191D0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D7D18: .word 0x00010200 + thumb_func_end MOD74_021D7C10 + + thumb_func_start MOD74_021D7D1C +MOD74_021D7D1C: ; 0x021D7D1C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + ldrb r1, [r4, #0xa] + ldr r0, [r4, #0x28] + ldr r2, [r4, #0x30] + bl FUN_0200A8E0 + mov r0, #0 + ldr r1, [r4, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xc0 + sub r3, r1, r0 + mov r0, #8 + str r0, [sp] + mov r1, #0 + lsr r5, r3, #0x1f + add r5, r3, r5 + ldr r0, _021D7E94 ; =0x000F0200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x6c + asr r3, r5, #1 + bl FUN_0201BDE0 + ldrb r1, [r4, #0xa] + ldr r0, [r4, #0x28] + ldr r2, [r4, #0x30] + add r1, r1, #3 + bl FUN_0200A8E0 + mov r1, #0 + str r1, [sp] + mov r0, #0xc1 + str r1, [sp, #4] + lsl r0, r0, #0xa + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x7c + add r3, r1, #0 + bl FUN_0201BDE0 + ldrb r1, [r4, #0xa] + ldr r0, [r4, #0x28] + ldr r2, [r4, #0x30] + add r1, r1, #6 + bl FUN_0200A8E0 + mov r0, #3 + str r0, [sp] + mov r1, #0 + mov r0, #0xc1 + str r1, [sp, #4] + lsl r0, r0, #0xa + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x8c + add r3, r1, #0 + bl FUN_0201BDE0 + ldrb r0, [r4, #0xa] + cmp r0, #0 + beq _021D7DB8 + cmp r0, #1 + beq _021D7DDE + cmp r0, #2 + beq _021D7E04 + add sp, #0x10 + pop {r3, r4, r5, pc} +_021D7DB8: + add r1, r4, #0 + mov r2, #0 + add r0, r4, #0 + add r1, #0x9c + mov r3, #0x35 + str r2, [sp] + bl MOD74_021D7C10 + mov r0, #3 + str r0, [sp] + add r0, r4, #0 + add r4, #0xac + add r1, r4, #0 + mov r2, #1 + mov r3, #0x37 + bl MOD74_021D7C10 + add sp, #0x10 + pop {r3, r4, r5, pc} +_021D7DDE: + mov r0, #0 + add r1, r4, #0 + str r0, [sp] + add r0, r4, #0 + add r1, #0x9c + mov r2, #2 + mov r3, #0x39 + bl MOD74_021D7C10 + add r0, r4, #0 + add r4, #0xac + mov r2, #3 + add r1, r4, #0 + mov r3, #0x3b + str r2, [sp] + bl MOD74_021D7C10 + add sp, #0x10 + pop {r3, r4, r5, pc} +_021D7E04: + ldr r0, [r4, #0x28] + ldr r2, [r4, #0x30] + mov r1, #0xc + bl FUN_0200A8E0 + mov r0, #0xa + str r0, [sp] + mov r1, #0 + mov r0, #0xc1 + str r1, [sp, #4] + lsl r0, r0, #0xa + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x9c + mov r3, #4 + bl FUN_0201BDE0 + ldr r0, [r4, #0x20] + mov r1, #0 + bl FUN_0202A444 + mov r1, #0 + add r2, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4, #0x2c] + mov r3, #2 + bl FUN_0200AD38 + ldr r0, [r4, #0x2c] + ldr r1, [r4, #0x30] + ldr r2, [r4, #0x60] + bl FUN_0200B7B8 + mov r0, #0 + ldr r1, [r4, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0x40 + sub r1, r1, r0 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r3, r0, #1 + mov r0, #0xa + str r0, [sp] + mov r1, #0 + ldr r0, _021D7E98 ; =0x00050600 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r3, #0x40 + add r0, #0x9c + bl FUN_0201BDE0 + mov r0, #3 + str r0, [sp] + add r0, r4, #0 + add r4, #0xac + add r1, r4, #0 + mov r2, #4 + mov r3, #0x3d + bl MOD74_021D7C10 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D7E94: .word 0x000F0200 +_021D7E98: .word 0x00050600 + thumb_func_end MOD74_021D7D1C + + thumb_func_start MOD74_021D7E9C +MOD74_021D7E9C: ; 0x021D7E9C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r0, #0 + ldr r0, [r7, #0x24] + ldr r1, [r7] + bl FUN_0202A878 + str r0, [sp] + ldr r5, [sp] + mov r0, #0 + add r4, r7, #0 + str r0, [sp, #4] + add r4, #0xbc + add r6, r5, #0 +_021D7EB8: + add r0, r5, #0 + add r0, #0x20 + ldrb r0, [r0] + add r1, r4, #0 + add r1, #8 + lsl r0, r0, #0x1e + lsr r0, r0, #0x1f + strb r0, [r4, #4] + ldrb r0, [r5, #0x12] + mov r2, #8 + strb r0, [r4, #5] + ldrb r0, [r5, #0x13] + strb r0, [r4, #6] + add r0, r5, #0 + add r0, #0x20 + ldrb r0, [r0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + strb r0, [r4, #7] + add r0, r5, #0 + add r0, #0x18 + bl MI_CpuCopy8 + ldr r1, [r7] + mov r0, #8 + bl FUN_020219F4 + str r0, [r4] + ldrb r0, [r4, #7] + cmp r0, #0 + ldr r0, [r4] + beq _021D7F06 + ldrb r1, [r4, #4] + lsl r1, r1, #2 + add r1, r7, r1 + ldr r1, [r1, #0x64] + bl FUN_02021A74 + b _021D7F0C +_021D7F06: + add r1, r6, #0 + bl FUN_02021E28 +_021D7F0C: + ldr r0, [sp, #4] + add r4, #0x10 + add r0, r0, #1 + add r5, #0x22 + add r6, #0x22 + str r0, [sp, #4] + cmp r0, #0x1e + blt _021D7EB8 + ldr r0, [sp] + bl FUN_02016A18 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD74_021D7E9C + + thumb_func_start MOD74_021D7F28 +MOD74_021D7F28: ; 0x021D7F28 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021D7F2E: + add r0, r5, #0 + add r0, #0xbc + ldr r0, [r0] + bl FUN_02021A20 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #0x1e + blt _021D7F2E + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD74_021D7F28 + + thumb_func_start MOD74_021D7F44 +MOD74_021D7F44: ; 0x021D7F44 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + str r0, [sp, #0x10] + str r1, [sp, #0x14] + add r0, r1, #0 + mov r1, #0 + add r5, r2, #0 + add r4, r3, #0 + bl FUN_02019620 + cmp r4, #8 + blo _021D7F8C + mov r0, #2 + str r0, [sp, #0x18] + mov r0, #0 + add r1, r5, #0 + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0x28 + sub r0, r1, r0 + lsr r3, r0, #1 + mov r0, #0x34 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D7FFC ; =0x00010200 + mov r1, #0 + str r0, [sp, #8] + ldr r0, [sp, #0x14] + add r2, r5, #0 + add r3, #0xa0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + b _021D7F90 +_021D7F8C: + mov r0, #3 + str r0, [sp, #0x18] +_021D7F90: + lsl r0, r4, #1 + add r0, r4, r0 + str r0, [sp, #0x1c] + mov r0, #0 + str r0, [sp, #0x20] + ldr r0, [sp, #0x18] + cmp r0, #0 + ble _021D7FF0 + ldr r7, [sp, #0x20] + mov r6, #4 +_021D7FA4: + mov r4, #0 + add r5, r4, #0 +_021D7FA8: + ldr r0, [sp, #0x1c] + add r1, r4, r7 + add r0, r0, r1 + lsl r1, r0, #4 + ldr r0, [sp, #0x10] + add r2, r0, r1 + ldrb r0, [r2, #4] + cmp r0, #0 + beq _021D7FBE + ldr r1, _021D8000 ; =0x000B0C00 + b _021D7FC0 +_021D7FBE: + ldr r1, _021D8004 ; =0x00090A00 +_021D7FC0: + str r6, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x14] + ldr r2, [r2] + mov r1, #0 + add r3, r5, #0 + bl FUN_0201BDE0 + add r4, r4, #1 + add r5, #0x48 + cmp r4, #3 + blt _021D7FA8 + ldr r0, [sp, #0x20] + add r7, r7, #3 + add r1, r0, #1 + ldr r0, [sp, #0x18] + add r6, #0x18 + str r1, [sp, #0x20] + cmp r1, r0 + blt _021D7FA4 +_021D7FF0: + ldr r0, [sp, #0x14] + bl FUN_020191D0 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + nop +_021D7FFC: .word 0x00010200 +_021D8000: .word 0x000B0C00 +_021D8004: .word 0x00090A00 + thumb_func_end MOD74_021D7F44 + + thumb_func_start MOD74_021D8008 +MOD74_021D8008: ; 0x021D8008 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r0, #0 + ldr r0, [r4, #0x24] + add r1, sp, #0x10 + bl FUN_0202A864 + ldr r0, [r4, #0x30] + bl FUN_02021A4C + mov r1, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + add r2, sp, #0x10 + ldrb r2, [r2] + ldr r0, [r4, #0x2c] + mov r3, #2 + bl FUN_0200AD38 + mov r0, #2 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + add r2, sp, #0x10 + ldrb r2, [r2, #1] + ldr r0, [r4, #0x2c] + mov r3, #3 + bl FUN_0200AD38 + ldr r0, [r4, #0x2c] + ldr r1, [r4, #0x30] + ldr r2, [r4, #0x38] + bl FUN_0200B7B8 + mov r0, #0 + ldr r1, [r4, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xc0 + sub r3, r1, r0 + mov r0, #4 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D80CC ; =0x000F0200 + lsr r5, r3, #0x1f + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + add r0, r4, #0 + add r5, r3, r5 + ldr r2, [r4, #0x30] + add r0, #0x6c + asr r3, r5, #1 + bl FUN_0201BDE0 + ldrb r1, [r4, #0xa] + ldr r0, [r4, #0x28] + ldr r2, [r4, #0x30] + add r1, #0x10 + bl FUN_0200A8E0 + mov r0, #0 + ldr r1, [r4, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #0xc0 + sub r3, r1, r0 + mov r0, #0x14 + str r0, [sp] + mov r1, #0 + lsr r5, r3, #0x1f + add r5, r3, r5 + ldr r0, _021D80CC ; =0x000F0200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x6c + asr r3, r5, #1 + bl FUN_0201BDE0 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + add r0, r4, #0 + add r1, r4, #0 + ldr r2, [r4, #0x34] + add r0, #0xbc + add r1, #0x7c + bl MOD74_021D7F44 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 +_021D80CC: .word 0x000F0200 + thumb_func_end MOD74_021D8008 + + thumb_func_start MOD74_021D80D0 +MOD74_021D80D0: ; 0x021D80D0 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + ldrb r2, [r4, #0xb] + ldrb r3, [r4, #0xc] + add r0, #0xbc + lsl r1, r2, #1 + add r1, r2, r1 + add r1, r3, r1 + lsl r1, r1, #4 + add r5, r0, r1 + ldrb r2, [r5, #5] + cmp r2, #0 + bne _021D8108 + mov r0, #4 + str r0, [sp] + mov r1, #0 + ldr r0, _021D8188 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x48] + add r0, #0x8c + add r3, r1, #0 + bl FUN_0201BDE0 + b _021D8172 +_021D8108: + ldrb r0, [r5, #6] + cmp r0, #0 + ldr r0, [r4, #0x2c] + bne _021D813C + mov r1, #0 + bl FUN_0200B4A0 + ldr r0, [r4, #0x2c] + ldr r1, [r4, #0x30] + ldr r2, [r4, #0x44] + bl FUN_0200B7B8 + mov r0, #4 + str r0, [sp] + mov r1, #0 + ldr r0, _021D8188 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x8c + add r3, r1, #0 + bl FUN_0201BDE0 + b _021D8172 +_021D813C: + mov r1, #0 + bl FUN_0200B4A0 + ldrb r2, [r5, #5] + ldrb r3, [r5, #6] + ldr r0, [r4, #0x2c] + mov r1, #1 + bl FUN_0200B4D8 + ldr r0, [r4, #0x2c] + ldr r1, [r4, #0x30] + ldr r2, [r4, #0x40] + bl FUN_0200B7B8 + mov r0, #4 + str r0, [sp] + mov r1, #0 + ldr r0, _021D8188 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r4, #0 + ldr r2, [r4, #0x30] + add r0, #0x8c + add r3, r1, #0 + bl FUN_0201BDE0 +_021D8172: + add r0, r4, #0 + add r0, #0x8c + bl FUN_020191D0 + add r0, r4, #0 + mov r1, #0 + bl MOD74_021D8388 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D8188: .word 0x00010200 + thumb_func_end MOD74_021D80D0 + + thumb_func_start MOD74_021D818C +MOD74_021D818C: ; 0x021D818C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + ldrb r2, [r4, #0xb] + ldrb r3, [r4, #0xc] + add r0, #0xbc + lsl r1, r2, #1 + add r1, r2, r1 + add r1, r3, r1 + lsl r1, r1, #4 + add r0, r0, r1 + ldr r1, [r4] + add r0, #8 + bl FUN_020137D4 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0x8c + mov r1, #0 + bl FUN_02019620 + mov r0, #4 + str r0, [sp] + mov r1, #0 + ldr r0, _021D81DC ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r4, #0x8c + add r0, r4, #0 + add r2, r5, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r5, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D81DC: .word 0x00010200 + thumb_func_end MOD74_021D818C + + thumb_func_start MOD74_021D81E0 +MOD74_021D81E0: ; 0x021D81E0 + push {r4, lr} + add r4, r0, #0 + add r0, #0x8c + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x8c + bl FUN_02019570 + add r0, r4, #0 + mov r1, #1 + bl MOD74_021D8388 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD74_021D81E0 + + thumb_func_start MOD74_021D8200 +MOD74_021D8200: ; 0x021D8200 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x50 + add r4, r0, #0 + ldr r1, [r4] + mov r0, #0x20 + bl FUN_0201C24C + ldr r0, [r4] + bl FUN_0200BB14 + mov r1, #0xa7 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + bl FUN_0200BB34 + mov r7, #0x2a + lsl r7, r7, #4 + add r2, sp, #0x30 + ldr r3, _021D82A4 ; =0x021D84F8 + str r0, [r4, r7] + ldmia r3!, {r0, r1} + add r6, r2, #0 + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + ldr r5, _021D82A8 ; =0x021D84B0 + stmia r2!, {r0, r1} + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r6, #0 + str r0, [r3] + sub r0, r7, #4 + ldr r0, [r4, r0] + mov r3, #0x20 + bl FUN_0200BB6C + sub r1, r7, #4 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + mov r2, #4 + bl FUN_0200BBF0 + ldr r0, [r4] + bl FUN_0200A064 + ldr r0, [r4] + bl FUN_0200A06C + ldr r5, _021D82AC ; =0x021D84DC + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + sub r1, r7, #4 + str r0, [r3] + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl FUN_0200BD20 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x50 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D82A4: .word 0x021D84F8 +_021D82A8: .word 0x021D84B0 +_021D82AC: .word 0x021D84DC + thumb_func_end MOD74_021D8200 + + thumb_func_start MOD74_021D82B0 +MOD74_021D82B0: ; 0x021D82B0 + push {r4, lr} + mov r1, #0xa7 + add r4, r0, #0 + lsl r1, r1, #2 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl FUN_0200BCE0 + mov r0, #0xa7 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200BD04 + bl FUN_0201C29C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD74_021D82B0 + + thumb_func_start MOD74_021D82D4 +MOD74_021D82D4: ; 0x021D82D4 + push {r3, lr} + mov r1, #0x2a + lsl r1, r1, #4 + ldr r0, [r0, r1] + cmp r0, #0 + beq _021D82E4 + bl FUN_0200BC1C +_021D82E4: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD74_021D82D4 + + thumb_func_start MOD74_021D82E8 +MOD74_021D82E8: ; 0x021D82E8 + ldr r3, _021D82EC ; =FUN_0200BC30 + bx r3 + .align 2, 0 +_021D82EC: .word FUN_0200BC30 + thumb_func_end MOD74_021D82E8 + + thumb_func_start MOD74_021D82F0 +MOD74_021D82F0: ; 0x021D82F0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r6, _021D8368 ; =0x021D85C4 + mov r7, #0 + add r4, r5, #0 +_021D82FA: + mov r0, #0xa7 + mov r1, #0x2a + lsl r0, r0, #2 + lsl r1, r1, #4 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200BE38 + mov r1, #0xa9 + lsl r1, r1, #2 + str r0, [r4, r1] + add r7, r7, #1 + add r6, #0x28 + add r4, r4, #4 + cmp r7, #4 + blt _021D82FA + add r0, r1, #0 + add r0, #8 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0xaa + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0xab + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0xaa + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #3 + bl FUN_02020238 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8368: .word 0x021D85C4 + thumb_func_end MOD74_021D82F0 + + thumb_func_start MOD74_021D836C +MOD74_021D836C: ; 0x021D836C + push {r4, r5, r6, lr} + mov r6, #0xa9 + add r5, r0, #0 + mov r4, #0 + lsl r6, r6, #2 +_021D8376: + ldr r0, [r5, r6] + bl FUN_0200BC14 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _021D8376 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD74_021D836C + + thumb_func_start MOD74_021D8388 +MOD74_021D8388: ; 0x021D8388 + push {r3, r4, r5, lr} + add r5, r0, #0 + cmp r1, #0 + bne _021D83A0 + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02020248 + mov r4, #0 + b _021D83AE +_021D83A0: + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02020248 + mov r4, #1 +_021D83AE: + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_020200BC + mov r0, #0xab + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_020200BC + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_020200BC + pop {r3, r4, r5, pc} + thumb_func_end MOD74_021D8388 + + thumb_func_start MOD74_021D83D4 +MOD74_021D83D4: ; 0x021D83D4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldrb r0, [r5, #0xe] + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + cmp r0, #8 + bne _021D8428 + mov r0, #0xaa + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + cmp r4, #0xa + bne _021D840E + mov r0, #0xaa + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02020208 + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + b _021D8440 +_021D840E: + mov r0, #0xaa + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02020208 + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + b _021D8440 +_021D8428: + mov r0, #0xa9 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xaa + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 +_021D8440: + ldrb r0, [r5, #0xe] + cmp r0, #0 + beq _021D844C + cmp r0, #8 + beq _021D845A + b _021D8468 +_021D844C: + mov r0, #0xab + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + b _021D8480 +_021D845A: + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + b _021D8480 +_021D8468: + mov r0, #0xab + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 +_021D8480: + mov r1, #0x48 + mov r2, #0x18 + mov r0, #0xa9 + mul r1, r6 + mul r2, r7 + lsl r0, r0, #2 + add r1, #0x36 + add r2, #0x44 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r5, r0] + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C6E4 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD74_021D83D4 + + .section .rodata + ; 0x021D84A0 + .incbin "baserom.nds", 0x2CF9C0, 0x1C4 + + .section .data + ; 0x021D8680 + .incbin "baserom.nds", 0x2CFBA0, 0x80 diff --git a/arm9/modules/75/asm/module_75.s b/arm9/modules/75/asm/module_75.s new file mode 100644 index 00000000..6f85109d --- /dev/null +++ b/arm9/modules/75/asm/module_75.s @@ -0,0 +1,11114 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD75_021E6BA0 +MOD75_021E6BA0: ; 0x021E6BA0 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r0, #1 + lsl r0, r0, #0x1a + ldr r2, [r0] + ldr r1, _021E6D58 ; =0xFFFFE0FF + ldr r3, _021E6D5C ; =0x04001000 + and r2, r1 + str r2, [r0] + ldr r2, [r3] + add r0, #0x50 + and r1, r2 + str r1, [r3] + mov r1, #0 + strh r1, [r0] + add r3, #0x50 + strh r1, [r3] + mov r1, #6 + mov r0, #3 + lsl r2, r1, #0xf + bl FUN_0201681C + ldr r1, _021E6D60 ; =0x000004A4 + add r0, r5, #0 + mov r2, #6 + bl FUN_02006268 + ldr r2, _021E6D60 ; =0x000004A4 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + add r0, r5, #0 + bl FUN_0200628C + add r1, r4, #0 + add r1, #0xc4 + str r0, [r1] + add r0, r4, #0 + bl MOD75_021E6FA4 + mov r0, #6 + bl FUN_02016B94 + str r0, [r4] + add r0, r4, #0 + add r0, #0xcc + ldr r0, [r0] + bl FUN_020239CC + ldr r1, _021E6D64 ; =0x00000425 + mov r3, #0 + strb r0, [r4, r1] + mov r1, #6 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + str r1, [sp, #8] + mov r1, #3 + add r2, r1, #0 + bl FUN_0200E1D0 + mov r0, #3 + mov r1, #8 + bl FUN_0201669C + add r0, r4, #0 + bl MOD75_021E7470 + add r0, r4, #0 + bl MOD75_021E737C + add r0, r4, #0 + bl MOD75_021E771C + add r0, r4, #0 + bl MOD75_021E73E8 + add r0, r4, #0 + bl MOD75_021E7CE4 + bl MOD75_021E7034 + ldr r0, [r4] + bl MOD75_021E7054 + add r0, r4, #0 + bl MOD75_021E7214 + add r0, r4, #0 + bl MOD75_021E8680 + bl FUN_0201CC08 + mov r0, #4 + bl FUN_0201CC24 + add r0, r4, #0 + bl MOD75_021EA604 + mov r0, #1 + bl FUN_02002BB8 + add r0, r4, #0 + bl MOD75_021EA7BC + add r0, r4, #0 + bl MOD75_021EA81C + add r0, r4, #0 + bl MOD75_021EA8BC + add r0, r4, #0 + bl MOD75_021EA9F8 + add r0, r4, #0 + bl MOD75_021EB048 + add r0, r4, #0 + bl MOD75_021EAD94 + add r0, r4, #0 + bl MOD75_021E7580 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + bl MOD75_021E7758 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + mov r3, #9 + bl MOD75_021E7794 + add r0, r4, #0 + bl MOD75_021EB9B4 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r2, r3, r2 + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #8] + add r0, r4, #0 + bl MOD75_021E77E8 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + add r0, #0xfc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bhi _021E6D3A + add r0, r4, #0 + bl MOD75_021EB8E8 +_021E6D3A: + ldr r0, _021E6D68 ; =MOD75_021E700C + add r1, r4, #0 + bl FUN_02015F10 + mov r1, #0 + mov r0, #0x33 + add r2, r1, #0 + bl FUN_0200433C + bl FUN_02033F20 + mov r0, #1 + add sp, #0xc + pop {r4, r5, pc} + nop +_021E6D58: .word 0xFFFFE0FF +_021E6D5C: .word 0x04001000 +_021E6D60: .word 0x000004A4 +_021E6D64: .word 0x00000425 +_021E6D68: .word MOD75_021E700C + thumb_func_end MOD75_021E6BA0 + + thumb_func_start MOD75_021E6D6C +MOD75_021E6D6C: ; 0x021E6D6C + push {r3, r4, r5, lr} + add r4, r1, #0 + bl FUN_02006278 + ldr r1, [r4] + add r5, r0, #0 + cmp r1, #0x18 + bhi _021E6DC2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E6D88: ; jump table + .short _021E6DBA - _021E6D88 - 2 ; case 0 + .short _021E6DF2 - _021E6D88 - 2 ; case 1 + .short _021E6DFA - _021E6D88 - 2 ; case 2 + .short _021E6E36 - _021E6D88 - 2 ; case 3 + .short _021E6E44 - _021E6D88 - 2 ; case 4 + .short _021E6EE0 - _021E6D88 - 2 ; case 5 + .short _021E6EE0 - _021E6D88 - 2 ; case 6 + .short _021E6E4C - _021E6D88 - 2 ; case 7 + .short _021E6E54 - _021E6D88 - 2 ; case 8 + .short _021E6E5C - _021E6D88 - 2 ; case 9 + .short _021E6E64 - _021E6D88 - 2 ; case 10 + .short _021E6E6C - _021E6D88 - 2 ; case 11 + .short _021E6E74 - _021E6D88 - 2 ; case 12 + .short _021E6E7C - _021E6D88 - 2 ; case 13 + .short _021E6E84 - _021E6D88 - 2 ; case 14 + .short _021E6E8C - _021E6D88 - 2 ; case 15 + .short _021E6E94 - _021E6D88 - 2 ; case 16 + .short _021E6E9C - _021E6D88 - 2 ; case 17 + .short _021E6EA4 - _021E6D88 - 2 ; case 18 + .short _021E6EAC - _021E6D88 - 2 ; case 19 + .short _021E6EB4 - _021E6D88 - 2 ; case 20 + .short _021E6EBC - _021E6D88 - 2 ; case 21 + .short _021E6EC4 - _021E6D88 - 2 ; case 22 + .short _021E6ECC - _021E6D88 - 2 ; case 23 + .short _021E6ED4 - _021E6D88 - 2 ; case 24 +_021E6DBA: + bl FUN_0200E308 + cmp r0, #1 + beq _021E6DC4 +_021E6DC2: + b _021E6EE0 +_021E6DC4: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #2 + bne _021E6DD8 + mov r0, #0x10 + str r0, [r4] + b _021E6EE0 +_021E6DD8: + cmp r0, #1 + bne _021E6DE2 + mov r0, #0xe + str r0, [r4] + b _021E6EE0 +_021E6DE2: + cmp r0, #3 + bne _021E6DEC + mov r0, #0x17 + str r0, [r4] + b _021E6EE0 +_021E6DEC: + mov r0, #1 + str r0, [r4] + b _021E6EE0 +_021E6DF2: + bl MOD75_021E7AE0 + str r0, [r4] + b _021E6EE0 +_021E6DFA: + bl MOD75_021E86C0 + add r0, r5, #0 + bl MOD75_021E7EE4 + cmp r0, #1 + bne _021E6EE0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #2 + bne _021E6E1C + mov r0, #0x10 + str r0, [r4] + b _021E6EE0 +_021E6E1C: + cmp r0, #1 + bne _021E6E26 + mov r0, #0xe + str r0, [r4] + b _021E6EE0 +_021E6E26: + cmp r0, #3 + bne _021E6E30 + mov r0, #0x17 + str r0, [r4] + b _021E6EE0 +_021E6E30: + mov r0, #1 + str r0, [r4] + b _021E6EE0 +_021E6E36: + bl MOD75_021E88BC + cmp r0, #1 + bne _021E6EE0 + mov r0, #1 + str r0, [r4] + b _021E6EE0 +_021E6E44: + bl MOD75_021E8CF4 + str r0, [r4] + b _021E6EE0 +_021E6E4C: + bl MOD75_021E94D0 + str r0, [r4] + b _021E6EE0 +_021E6E54: + bl MOD75_021E95BC + str r0, [r4] + b _021E6EE0 +_021E6E5C: + bl MOD75_021E95E0 + str r0, [r4] + b _021E6EE0 +_021E6E64: + bl MOD75_021E971C + str r0, [r4] + b _021E6EE0 +_021E6E6C: + bl MOD75_021E9750 + str r0, [r4] + b _021E6EE0 +_021E6E74: + bl MOD75_021E8EB0 + str r0, [r4] + b _021E6EE0 +_021E6E7C: + bl MOD75_021E8FC8 + str r0, [r4] + b _021E6EE0 +_021E6E84: + bl MOD75_021E9840 + str r0, [r4] + b _021E6EE0 +_021E6E8C: + bl MOD75_021E9930 + str r0, [r4] + b _021E6EE0 +_021E6E94: + bl MOD75_021E9980 + str r0, [r4] + b _021E6EE0 +_021E6E9C: + bl MOD75_021E9B4C + str r0, [r4] + b _021E6EE0 +_021E6EA4: + bl MOD75_021E9B88 + str r0, [r4] + b _021E6EE0 +_021E6EAC: + bl MOD75_021E9D6C + str r0, [r4] + b _021E6EE0 +_021E6EB4: + bl MOD75_021E9D90 + str r0, [r4] + b _021E6EE0 +_021E6EBC: + bl MOD75_021E9EE4 + str r0, [r4] + b _021E6EE0 +_021E6EC4: + bl MOD75_021E9F74 + str r0, [r4] + b _021E6EE0 +_021E6ECC: + bl MOD75_021E9FDC + str r0, [r4] + b _021E6EE0 +_021E6ED4: + bl FUN_0200E308 + cmp r0, #1 + bne _021E6EE0 + mov r0, #1 + pop {r3, r4, r5, pc} +_021E6EE0: + add r0, r5, #0 + bl MOD75_021E85D8 + add r0, r5, #0 + bl MOD75_021EC3B8 + add r0, r5, #0 + bl MOD75_021EC018 + add r5, #0xdc + ldr r0, [r5] + bl FUN_0200BC1C + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021E6D6C + + thumb_func_start MOD75_021E6F00 +MOD75_021E6F00: ; 0x021E6F00 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + bl MOD75_021EBFE4 + add r0, r4, #0 + bl MOD75_021E7AA4 + add r0, r4, #0 + bl MOD75_021E752C + add r0, r4, #4 + bl MOD75_021EA7A0 + ldr r0, [r4] + bl MOD75_021E71BC + bl FUN_0201CD04 + bl FUN_0201C29C + add r0, r4, #0 + bl MOD75_021EB110 + add r0, r4, #0 + bl MOD75_021EA7F8 + add r0, r4, #0 + bl MOD75_021EADC0 + add r0, r4, #0 + bl MOD75_021E773C + mov r0, #0xfe + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0x12 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x47 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x11 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_0200B990 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200AB18 + add r4, #0xd4 + ldr r0, [r4] + bl FUN_020066F4 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #6 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021E6F00 + + thumb_func_start MOD75_021E6FA4 +MOD75_021E6FA4: ; 0x021E6FA4 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_0206F158 + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_020238F4 + add r1, r4, #0 + add r1, #0xcc + str r0, [r1] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0] + bl LoadPlayerDataAddress + add r4, #0xd0 + str r0, [r4] + pop {r4, pc} + thumb_func_end MOD75_021E6FA4 + + thumb_func_start MOD75_021E6FDC +MOD75_021E6FDC: ; 0x021E6FDC + add r0, #0xc4 + ldr r0, [r0] + ldr r3, _021E6FE8 ; =FUN_0202A9B0 + ldr r0, [r0] + bx r3 + nop +_021E6FE8: .word FUN_0202A9B0 + thumb_func_end MOD75_021E6FDC + + thumb_func_start MOD75_021E6FEC +MOD75_021E6FEC: ; 0x021E6FEC + push {r4, lr} + add r4, r1, #0 + bl MOD75_021E6FDC + bl FUN_0202AB4C + strb r4, [r0] + pop {r4, pc} + thumb_func_end MOD75_021E6FEC + + thumb_func_start MOD75_021E6FFC +MOD75_021E6FFC: ; 0x021E6FFC + push {r4, lr} + add r4, r1, #0 + bl MOD75_021E6FDC + add r1, r4, #0 + bl FUN_0202AB68 + pop {r4, pc} + thumb_func_end MOD75_021E6FFC + + thumb_func_start MOD75_021E700C +MOD75_021E700C: ; 0x021E700C + push {r3, lr} + ldr r0, [r0] + bl FUN_0201AB60 + bl FUN_0201C30C + bl FUN_0200BC30 + ldr r3, _021E702C ; =0x027E0000 + ldr r1, _021E7030 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + nop +_021E702C: .word 0x027E0000 +_021E7030: .word 0x00003FF8 + thumb_func_end MOD75_021E700C + + thumb_func_start MOD75_021E7034 +MOD75_021E7034: ; 0x021E7034 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021E7050 ; =0x021EC568 + add r3, sp, #0 + mov r2, #5 +_021E703E: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021E703E + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021E7050: .word 0x021EC568 + thumb_func_end MOD75_021E7034 + + thumb_func_start MOD75_021E7054 +MOD75_021E7054: ; 0x021E7054 + push {r4, r5, lr} + sub sp, #0xd4 + ldr r5, _021E719C ; =0x021EC41C + add r3, sp, #0xc4 + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021E71A0 ; =0x021EC440 + add r3, sp, #0xa8 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _021E71A4 ; =0x021EC45C + add r3, sp, #0x8c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021E71A8 ; =0x021EC494 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _021E71AC ; =0x021EC4E8 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021E71B0 ; =0x021EC478 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + add r0, r4, #0 + mov r1, #4 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _021E71B4 ; =0x021EC4B0 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _021E71B8 ; =0x021EC4CC + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #7 + str r0, [r3] + add r0, r4, #0 + mov r3, #1 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #7 + mov r2, #9 + mov r3, #0x80 + bl FUN_0201AF50 + add r0, r4, #0 + mov r1, #7 + mov r2, #0xc + mov r3, #0x50 + bl FUN_0201AF50 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #6 + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #6 + bl FUN_02017F18 + add sp, #0xd4 + pop {r4, r5, pc} + nop +_021E719C: .word 0x021EC41C +_021E71A0: .word 0x021EC440 +_021E71A4: .word 0x021EC45C +_021E71A8: .word 0x021EC494 +_021E71AC: .word 0x021EC4E8 +_021E71B0: .word 0x021EC478 +_021E71B4: .word 0x021EC4B0 +_021E71B8: .word 0x021EC4CC + thumb_func_end MOD75_021E7054 + + thumb_func_start MOD75_021E71BC +MOD75_021E71BC: ; 0x021E71BC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x1f + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #0x1b + mov r1, #0 + bl FUN_0201E74C + add r0, r4, #0 + mov r1, #7 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #3 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + mov r0, #6 + add r1, r4, #0 + bl FUN_02016A8C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E71BC + + thumb_func_start MOD75_021E7214 +MOD75_021E7214: ; 0x021E7214 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0xd + mov r1, #6 + bl FUN_02006670 + add r1, r4, #0 + add r1, #0xd4 + str r0, [r1] + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #7 + mov r3, #1 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0xa + mov r3, #1 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #9 + mov r3, #3 + bl FUN_020068C8 + mov r2, #0 + str r2, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0xd + mov r1, #8 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0x20 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0xd + mov r1, #0x12 + mov r2, #0 + lsl r3, r0, #5 + bl FUN_02006930 + mov r1, #0x16 + mov r0, #0 + lsl r1, r1, #4 + mov r2, #6 + bl FUN_02002EEC + mov r1, #0 + str r1, [sp] + mov r0, #6 + str r0, [sp, #4] + ldr r0, [r4] + ldr r2, _021E7374 ; =0x000003F7 + mov r3, #0xe + bl FUN_0200CB00 + add r0, r4, #0 + add r0, #0xd0 + ldr r0, [r0] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + ldr r0, [r4] + ldr r2, _021E7378 ; =0x000003D9 + mov r1, #0 + mov r3, #0xc + bl FUN_0200CD68 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0xb + mov r3, #5 + bl FUN_0200687C + mov r3, #0 + str r3, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0xd + mov r1, #0xc + mov r2, #4 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + mov r0, #0xd + ldr r2, [r4] + add r1, r0, #0 + mov r3, #5 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0x25 + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0x24 + mov r3, #7 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0xd + mov r1, #0xf + mov r3, #4 + bl FUN_0200687C + mov r3, #0x40 + str r3, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #0xd + mov r1, #0xe + mov r2, #4 + bl FUN_02006930 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021E7374: .word 0x000003F7 +_021E7378: .word 0x000003D9 + thumb_func_end MOD75_021E7214 + + thumb_func_start MOD75_021E737C +MOD75_021E737C: ; 0x021E737C + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + mov r1, #0x1a + mov r2, #7 + mov r3, #6 + bl FUN_0200A86C + mov r1, #0x45 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #1 + mov r1, #2 + mov r2, #0 + mov r3, #6 + bl FUN_0200B870 + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #6 + bl FUN_0200AA80 + mov r2, #0x46 + lsl r2, r2, #2 + str r0, [r4, r2] + mov r0, #0 + mov r1, #0x1a + add r2, #0x40 + mov r3, #6 + bl FUN_0200A86C + mov r1, #0x47 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r2, #0x93 + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #2 + mov r3, #6 + bl FUN_0200A86C + mov r1, #0x12 + lsl r1, r1, #4 + str r0, [r4, r1] + sub r1, #0x20 + add r0, r1, #0 + mov r1, #6 + bl FUN_020219F4 + mov r1, #0xfe + lsl r1, r1, #2 + str r0, [r4, r1] + pop {r4, pc} + thumb_func_end MOD75_021E737C + + thumb_func_start MOD75_021E73E8 +MOD75_021E73E8: ; 0x021E73E8 + push {r4, r5} + ldr r2, _021E741C ; =0x00000424 + mov r1, #0 + strb r1, [r0, r2] + add r4, r2, #0 + mov r3, #0xc +_021E73F4: + add r2, r0, #0 + add r2, #0xc4 + ldr r5, [r2] + add r2, r1, #0 + mul r2, r3 + add r2, r5, r2 + ldr r2, [r2, #4] + cmp r2, #0 + beq _021E740C + ldrb r2, [r0, r4] + add r2, r2, #1 + strb r2, [r0, r4] +_021E740C: + add r1, r1, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, #8 + blo _021E73F4 + pop {r4, r5} + bx lr + nop +_021E741C: .word 0x00000424 + thumb_func_end MOD75_021E73E8 + + thumb_func_start MOD75_021E7420 +MOD75_021E7420: ; 0x021E7420 + push {r3, r4} + add r0, #0xc4 + ldr r0, [r0] + add r4, r0, #4 + add r0, #0x64 + ldrb r3, [r0] + mov r0, #0xc + mul r0, r3 + cmp r2, #0 + ldr r2, [r4, r0] + bne _021E743E + lsl r0, r1, #2 + ldrh r0, [r2, r0] + pop {r3, r4} + bx lr +_021E743E: + lsl r0, r1, #2 + add r0, r2, r0 + ldrh r0, [r0, #2] + pop {r3, r4} + bx lr + thumb_func_end MOD75_021E7420 + + thumb_func_start MOD75_021E7448 +MOD75_021E7448: ; 0x021E7448 + add r3, r1, #0 + add r1, r2, #0 + add r2, r3, #0 + ldr r3, _021E7454 ; =FUN_0200A8E0 + bx r3 + nop +_021E7454: .word FUN_0200A8E0 + thumb_func_end MOD75_021E7448 + + thumb_func_start MOD75_021E7458 +MOD75_021E7458: ; 0x021E7458 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r0, r2, #0 + bl FUN_0206EA30 + add r1, r0, #0 + add r0, r5, #0 + add r2, r4, #0 + bl FUN_0200A8E0 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021E7458 + + thumb_func_start MOD75_021E7470 +MOD75_021E7470: ; 0x021E7470 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r5, #0 + add r0, #0x64 + strb r5, [r0] + add r0, r7, #0 + add r0, #0xc4 + ldr r0, [r0] + add r6, r0, #4 + ldr r0, [r0, #0x6c] + cmp r0, #0 + bne _021E74AE + mov r3, #1 + add r2, r5, #0 + mov r1, #0xc +_021E7492: + add r0, r5, #0 + mul r0, r1 + add r4, r6, r0 + ldr r0, [r6, r0] + cmp r0, #0 + beq _021E7528 + add r0, r5, #1 + lsl r0, r0, #0x10 + strh r3, [r4, #4] + lsr r5, r0, #0x10 + strh r2, [r4, #6] + cmp r5, #8 + blo _021E7492 + pop {r3, r4, r5, r6, r7, pc} +_021E74AE: + mov r0, #0xc + mul r0, r5 + add r4, r6, r0 + ldr r0, [r6, r0] + cmp r0, #0 + beq _021E74F2 + add r0, r7, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4, #8] + add r2, sp, #0 + ldr r0, [r0, #0x6c] + add r2, #1 + add r3, sp, #0 + bl FUN_0206F17C + add r0, sp, #0 + ldrb r0, [r0, #1] + cmp r0, #0 + bne _021E74DC + mov r1, #1 + add r0, sp, #0 + strb r1, [r0, #1] +_021E74DC: + add r0, sp, #0 + ldrb r0, [r0, #1] + strh r0, [r4, #4] + add r0, sp, #0 + ldrb r0, [r0] + strh r0, [r4, #6] + add r0, r5, #1 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #8 + blo _021E74AE +_021E74F2: + add r0, r7, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0, #0x6c] + bl FUN_0206F18C + mov r1, #0 + mov r3, #0xc +_021E7502: + add r2, r1, #0 + mul r2, r3 + add r4, r6, r2 + ldr r2, [r6, r2] + cmp r2, #0 + beq _021E7528 + ldrb r2, [r4, #8] + cmp r0, r2 + bne _021E751E + add r2, r7, #0 + add r2, #0xc4 + ldr r2, [r2] + add r2, #0x64 + strb r1, [r2] +_021E751E: + add r1, r1, #1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r1, #8 + blo _021E7502 +_021E7528: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD75_021E7470 + + thumb_func_start MOD75_021E752C +MOD75_021E752C: ; 0x021E752C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r0, #0xc4 + ldr r1, [r0] + ldr r0, [r1, #0x6c] + cmp r0, #0 + beq _021E757E + add r7, r1, #4 + mov r4, #0 + add r5, r7, #0 +_021E7540: + ldr r0, [r5] + cmp r0, #0 + beq _021E7568 + add r0, r6, #0 + add r0, #0xc4 + ldrh r2, [r5, #4] + ldrh r3, [r5, #6] + ldr r0, [r0] + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldrb r1, [r5, #8] + ldr r0, [r0, #0x6c] + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_0206F190 + add r4, r4, #1 + add r5, #0xc + cmp r4, #8 + blo _021E7540 +_021E7568: + add r6, #0xc4 + ldr r1, [r6] + ldr r0, [r1, #0x6c] + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r1, r7, r1 + ldrb r1, [r1, #8] + bl FUN_0206F19C +_021E757E: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD75_021E752C + + thumb_func_start MOD75_021E7580 +MOD75_021E7580: ; 0x021E7580 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + ldrb r1, [r4, #8] + ldr r0, _021E7718 ; =0x021EC674 + ldrb r0, [r0, r1] + mov r1, #6 + add r0, r0, #3 + bl FUN_02012838 + mov r1, #0x16 + lsl r1, r1, #4 + str r0, [r5, r1] + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x23 + bl FUN_02012880 + ldrb r3, [r4, #8] + cmp r3, #3 + bne _021E764A + ldr r0, _021E7718 ; =0x021EC674 + mov r6, #0 + ldrb r0, [r0, r3] + cmp r0, #0 + bls _021E761A + str r6, [sp] + add r7, r5, #0 +_021E75CE: + ldr r0, [r4] + ldr r2, [sp] + ldr r1, [sp] + ldrh r2, [r0, r2] + add r1, r0, r1 + cmp r2, #0 + beq _021E761A + ldrh r0, [r1, #2] + cmp r0, #0 + beq _021E761A + mov r0, #0x12 + mov r1, #0x59 + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r7, r1] + mov r3, #6 + bl MOD75_021E7458 + mov r0, #0x16 + mov r1, #0x59 + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r7, r1] + add r2, r6, #0 + bl FUN_020128A0 + ldr r0, [sp] + ldrb r1, [r4, #8] + add r0, r0, #4 + str r0, [sp] + ldr r0, _021E7718 ; =0x021EC674 + add r6, r6, #1 + ldrb r0, [r0, r1] + add r7, r7, #4 + cmp r6, r0 + blo _021E75CE +_021E761A: + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x22 + bl FUN_02012880 + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x23 + bl FUN_02012880 + add r0, r6, #3 + add sp, #8 + strb r0, [r4, #9] + pop {r3, r4, r5, r6, r7, pc} +_021E764A: + ldr r0, _021E7718 ; =0x021EC674 + mov r6, #0 + ldrb r0, [r0, r3] + cmp r0, #0 + bls _021E76A4 + str r6, [sp, #4] + add r7, r5, #0 +_021E7658: + ldr r2, [r4] + ldr r0, [sp, #4] + ldr r1, [sp, #4] + add r0, r2, r0 + ldrh r2, [r2, r1] + cmp r2, #0 + beq _021E76A4 + ldrh r0, [r0, #2] + cmp r0, #0 + beq _021E76A4 + mov r0, #0x47 + mov r1, #0x59 + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r7, r1] + mov r3, #6 + bl MOD75_021E7448 + mov r0, #0x16 + mov r1, #0x59 + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r7, r1] + add r2, r6, #0 + bl FUN_020128A0 + ldr r0, [sp, #4] + ldrb r3, [r4, #8] + add r0, r0, #4 + str r0, [sp, #4] + ldr r0, _021E7718 ; =0x021EC674 + add r6, r6, #1 + ldrb r0, [r0, r3] + add r7, r7, #4 + cmp r6, r0 + blo _021E7658 +_021E76A4: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #5 + beq _021E76FC + cmp r3, #4 + bne _021E76CC + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x22 + bl FUN_02012880 + b _021E76E0 +_021E76CC: + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x29 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x2b + bl FUN_02012880 +_021E76E0: + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x23 + bl FUN_02012880 + add r0, r6, #3 + add sp, #8 + strb r0, [r4, #9] + pop {r3, r4, r5, r6, r7, pc} +_021E76FC: + mov r1, #0x16 + lsl r1, r1, #4 + ldr r0, [r5, r1] + sub r1, #0x4c + mov r2, #0x20 + add r3, r2, #0 + ldr r1, [r5, r1] + sub r3, #0x23 + bl FUN_02012880 + add r0, r6, #2 + strb r0, [r4, #9] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021E7718: .word 0x021EC674 + thumb_func_end MOD75_021E7580 + + thumb_func_start MOD75_021E771C +MOD75_021E771C: ; 0x021E771C + push {r3, r4, r5, r6, r7, lr} + mov r6, #0x59 + add r5, r0, #0 + mov r4, #0 + mov r7, #0x12 + lsl r6, r6, #2 +_021E7728: + add r0, r7, #0 + mov r1, #6 + bl FUN_020219F4 + str r0, [r5, r6] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xa5 + blo _021E7728 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD75_021E771C + + thumb_func_start MOD75_021E773C +MOD75_021E773C: ; 0x021E773C + push {r4, r5, r6, lr} + mov r6, #0x59 + add r5, r0, #0 + mov r4, #0 + lsl r6, r6, #2 +_021E7746: + ldr r0, [r5, r6] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xa5 + blo _021E7746 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD75_021E773C + + thumb_func_start MOD75_021E7758 +MOD75_021E7758: ; 0x021E7758 + push {r4, r5} + sub r2, r2, #1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + cmp r2, #8 + bls _021E7768 + mov r5, #7 + b _021E776E +_021E7768: + sub r3, r2, #1 + lsl r3, r3, #0x18 + lsr r5, r3, #0x18 +_021E776E: + ldrh r3, [r0] + cmp r3, #0 + beq _021E7780 + sub r4, r2, #1 + add r3, r3, r5 + cmp r3, r4 + ble _021E7780 + sub r3, r4, r5 + strh r3, [r0] +_021E7780: + ldrh r3, [r0] + ldrh r0, [r1] + sub r2, r2, #1 + add r0, r3, r0 + cmp r0, r2 + blt _021E7790 + sub r0, r2, r3 + strh r0, [r1] +_021E7790: + pop {r4, r5} + bx lr + thumb_func_end MOD75_021E7758 + + thumb_func_start MOD75_021E7794 +MOD75_021E7794: ; 0x021E7794 + push {r3, r4, r5, r6} + sub r2, r2, #1 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + cmp r2, #8 + bls _021E77A4 + mov r5, #7 + b _021E77AA +_021E77A4: + sub r4, r2, #1 + lsl r4, r4, #0x18 + lsr r5, r4, #0x18 +_021E77AA: + ldrh r6, [r1] + asr r4, r3, #1 + add r3, r4, #2 + cmp r6, r3 + blt _021E77E2 + sub r6, r6, r4 + mov r3, #0 + sub r6, r6, #2 + bmi _021E77E2 + sub r2, r2, #1 +_021E77BE: + ldrh r6, [r0] + add r6, r6, r5 + cmp r2, r6 + beq _021E77E2 + ldrh r6, [r1] + add r3, r3, #1 + lsl r3, r3, #0x18 + sub r6, r6, #1 + strh r6, [r1] + ldrh r6, [r0] + lsr r3, r3, #0x18 + add r6, r6, #1 + strh r6, [r0] + ldrh r6, [r1] + sub r6, r6, r4 + sub r6, r6, #2 + cmp r3, r6 + ble _021E77BE +_021E77E2: + pop {r3, r4, r5, r6} + bx lr + .align 2, 0 + thumb_func_end MOD75_021E7794 + + thumb_func_start MOD75_021E77E8 +MOD75_021E77E8: ; 0x021E77E8 + push {r4, r5, r6, lr} + sub sp, #0x20 + ldr r6, _021E786C ; =0x021EC504 + add r5, sp, #0 + add r4, r0, #0 + add r3, r1, #0 + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + str r0, [sp] + add r0, r4, #4 + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r1, #0 + add r0, #0x64 + ldrb r5, [r0] + mov r0, #0xc + add r6, r5, #0 + mul r6, r0 + add r1, r1, r6 + ldrb r5, [r1, #0xd] + add r1, sp, #0 + strh r5, [r1, #0x10] + add r5, r4, #0 + str r4, [sp, #0x1c] + add r5, #0xc4 + ldr r5, [r5] + add r6, r5, #0 + add r6, #0x64 + ldrb r6, [r6] + mul r0, r6 + add r0, r5, r0 + ldrb r0, [r0, #0xc] + add r0, #0xfd + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bhi _021E784C + mov r0, #0x23 + b _021E784E +_021E784C: + mov r0, #0 +_021E784E: + strb r0, [r1, #0x15] + add r1, r3, #0 + add r0, sp, #0 + mov r3, #6 + bl FUN_020010A8 + mov r1, #0x57 + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r4, #4 + bl FUN_02019220 + add sp, #0x20 + pop {r4, r5, r6, pc} + nop +_021E786C: .word 0x021EC504 + thumb_func_end MOD75_021E77E8 + + thumb_func_start MOD75_021E7870 +MOD75_021E7870: ; 0x021E7870 + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + mov r1, #0x13 + add r4, r2, #0 + bl FUN_02001470 + add r5, r0, #0 + cmp r4, #1 + beq _021E78F8 + ldr r0, _021E7960 ; =0x00000482 + ldrb r0, [r5, r0] + cmp r0, #0 + beq _021E7890 + cmp r0, #1 + beq _021E7898 + b _021E78A0 +_021E7890: + ldr r0, _021E7964 ; =0x000006CC + bl FUN_020054C8 + b _021E78A6 +_021E7898: + ldr r0, _021E7968 ; =0x000006CD + bl FUN_020054C8 + b _021E78A6 +_021E78A0: + ldr r0, _021E796C ; =0x000006CE + bl FUN_020054C8 +_021E78A6: + ldr r0, _021E7960 ; =0x00000482 + mov r1, #3 + ldrb r0, [r5, r0] + add r0, r0, #1 + bl _s32_div_f + ldr r0, _021E7960 ; =0x00000482 + strb r1, [r5, r0] + add r0, #0x10 + ldrb r0, [r5, r0] + cmp r0, #0 + beq _021E78CC + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0200C608 + cmp r0, #0 + bne _021E78F8 +_021E78CC: + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C61C + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r5, #0 + add r2, r1, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + add r0, #0xe0 + mul r2, r3 + add r1, r1, r2 + ldrb r1, [r1, #0xc] + ldr r0, [r0] + add r1, #8 + bl FUN_0200C5C0 +_021E78F8: + ldr r0, _021E7970 ; =0x0000047A + ldrb r0, [r5, r0] + cmp r0, #1 + beq _021E795C + add r0, r5, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + mov r1, #1 + mvn r1, r1 + cmp r7, r1 + beq _021E793C + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + lsl r7, r7, #2 + add r4, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r6, r1, #0 + mul r6, r0 + ldr r1, [r4, r6] + add r0, r5, #0 + ldrh r1, [r1, r7] + bl MOD75_021EAAE8 + ldr r1, [r4, r6] + add r0, r5, #0 + ldrh r1, [r1, r7] + bl MOD75_021EC034 + b _021E794C +_021E793C: + add r0, r5, #0 + lsr r1, r1, #0x10 + bl MOD75_021EAAE8 + ldr r1, _021E7974 ; =0x0000FFFF + add r0, r5, #0 + bl MOD75_021EC034 +_021E794C: + ldr r0, _021E7978 ; =0x00000479 + ldrb r0, [r5, r0] + cmp r0, #0 + bne _021E795C + add r5, #0x14 + add r0, r5, #0 + bl FUN_02019220 +_021E795C: + pop {r3, r4, r5, r6, r7, pc} + nop +_021E7960: .word 0x00000482 +_021E7964: .word 0x000006CC +_021E7968: .word 0x000006CD +_021E796C: .word 0x000006CE +_021E7970: .word 0x0000047A +_021E7974: .word 0x0000FFFF +_021E7978: .word 0x00000479 + thumb_func_end MOD75_021E7870 + + thumb_func_start MOD75_021E797C +MOD75_021E797C: ; 0x021E797C + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + mov r1, #0x13 + str r0, [sp] + add r7, r2, #0 + bl FUN_02001470 + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r6, r2, r0 + ldr r0, _021E7A98 ; =0x0000047A + ldrb r1, [r4, r0] + cmp r1, #1 + bne _021E79BA + add r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, r5 + bne _021E79BA + ldr r0, [sp] + mov r1, #8 + mov r2, #0 + mov r3, #9 + bl FUN_020013E8 + b _021E79C6 +_021E79BA: + ldr r0, [sp] + mov r1, #1 + mov r2, #0 + mov r3, #2 + bl FUN_020013E8 +_021E79C6: + ldrb r0, [r6, #8] + cmp r0, #7 + bne _021E79F8 + mov r0, #2 + mvn r0, r0 + cmp r5, r0 + beq _021E7A94 + add r0, r0, #1 + cmp r5, r0 + beq _021E7A94 + add r0, r4, #0 + add r0, #0xc8 + ldr r0, [r0] + bl FUN_0206EBC4 + ldr r2, [r6] + lsl r1, r5, #2 + ldrh r1, [r2, r1] + cmp r1, r0 + bne _021E7A94 + add r0, r4, #0 + add r1, r7, #0 + bl MOD75_021EB004 + pop {r3, r4, r5, r6, r7, pc} +_021E79F8: + cmp r0, #3 + bne _021E7A24 + mov r0, #1 + mvn r0, r0 + cmp r5, r0 + bne _021E7A0E + add r0, r4, #0 + add r1, r7, #0 + bl MOD75_021EAFB0 + pop {r3, r4, r5, r6, r7, pc} +_021E7A0E: + sub r0, r0, #1 + cmp r5, r0 + beq _021E7A94 + ldr r2, [r6] + lsl r1, r5, #2 + add r1, r2, r1 + add r0, r4, #0 + add r2, r7, #0 + bl MOD75_021EAE90 + pop {r3, r4, r5, r6, r7, pc} +_021E7A24: + cmp r0, #4 + bne _021E7A50 + mov r0, #1 + mvn r0, r0 + cmp r5, r0 + bne _021E7A3A + add r0, r4, #0 + add r1, r7, #0 + bl MOD75_021EAFB0 + pop {r3, r4, r5, r6, r7, pc} +_021E7A3A: + sub r0, r0, #1 + cmp r5, r0 + beq _021E7A94 + ldr r2, [r6] + lsl r1, r5, #2 + add r1, r2, r1 + add r0, r4, #0 + add r2, r7, #0 + bl MOD75_021EAF0C + pop {r3, r4, r5, r6, r7, pc} +_021E7A50: + mov r0, #2 + mvn r0, r0 + cmp r5, r0 + beq _021E7A94 + add r0, r0, #1 + cmp r5, r0 + beq _021E7A94 + ldr r0, _021E7A98 ; =0x0000047A + ldrb r1, [r4, r0] + cmp r1, #1 + bne _021E7A82 + add r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, r5 + bne _021E7A82 + ldr r2, [r6] + lsl r1, r5, #2 + add r1, r2, r1 + ldrh r1, [r1, #2] + ldr r3, _021E7A9C ; =0x00080900 + add r0, r4, #0 + add r2, r7, #0 + bl MOD75_021EADDC + pop {r3, r4, r5, r6, r7, pc} +_021E7A82: + ldr r2, [r6] + lsl r1, r5, #2 + add r1, r2, r1 + ldrh r1, [r1, #2] + ldr r3, _021E7AA0 ; =0x00010200 + add r0, r4, #0 + add r2, r7, #0 + bl MOD75_021EADDC +_021E7A94: + pop {r3, r4, r5, r6, r7, pc} + nop +_021E7A98: .word 0x0000047A +_021E7A9C: .word 0x00080900 +_021E7AA0: .word 0x00010200 + thumb_func_end MOD75_021E797C + + thumb_func_start MOD75_021E7AA4 +MOD75_021E7AA4: ; 0x021E7AA4 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + add r1, r3, #0 + mul r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + add r1, #0xa + ldr r0, [r4, r0] + add r3, #8 + add r1, r1, r2 + add r2, r3, r2 + bl FUN_02001300 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02012870 + mov r0, #0x57 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + pop {r4, pc} + thumb_func_end MOD75_021E7AA4 + + thumb_func_start MOD75_021E7AE0 +MOD75_021E7AE0: ; 0x021E7AE0 + push {r4, lr} + add r4, r0, #0 + bl MOD75_021E86C0 + add r0, r4, #0 + bl MOD75_021EA2D8 + cmp r0, #1 + bne _021E7AF6 + mov r0, #1 + pop {r4, pc} +_021E7AF6: + add r0, r4, #0 + bl MOD75_021E7D14 + cmp r0, #1 + bne _021E7B04 + mov r0, #2 + pop {r4, pc} +_021E7B04: + add r0, r4, #0 + bl MOD75_021E8304 + cmp r0, #1 + bne _021E7B12 + mov r0, #2 + pop {r4, pc} +_021E7B12: + add r0, r4, #0 + bl MOD75_021E7B7C + cmp r0, #1 + bne _021E7B60 + add r0, r4, #0 + mov r1, #2 + bl MOD75_021EC090 + add r0, r4, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019570 + add r0, r4, #0 + bl MOD75_021E8B70 + add r0, r4, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0xc] + cmp r0, #3 + bne _021E7B5C + add r0, r4, #0 + mov r1, #1 + bl MOD75_021E8DAC +_021E7B5C: + mov r0, #4 + pop {r4, pc} +_021E7B60: + cmp r0, #2 + bne _021E7B6E + add r0, r4, #0 + bl MOD75_021E8864 + mov r0, #3 + pop {r4, pc} +_021E7B6E: + cmp r0, #3 + bne _021E7B76 + mov r0, #0x18 + pop {r4, pc} +_021E7B76: + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E7AE0 + + thumb_func_start MOD75_021E7B7C +MOD75_021E7B7C: ; 0x021E7B7C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #6 + add r2, r4, #4 + bl FUN_02001448 + ldr r0, _021E7CD8 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #4 + tst r0, r1 + beq _021E7BC0 + add r0, r5, #0 + bl MOD75_021E8808 + cmp r0, #1 + bne _021E7BC0 + ldr r0, _021E7CDC ; =0x000005DC + bl FUN_020054C8 + add sp, #4 + mov r0, #2 + pop {r3, r4, r5, r6, pc} +_021E7BC0: + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001204 + add r6, r0, #0 + mov r0, #0x57 + lsl r0, r0, #2 + add r1, sp, #0 + ldr r0, [r5, r0] + add r1, #2 + add r2, sp, #0 + bl FUN_02001448 + add r0, sp, #0 + ldrh r2, [r0] + ldrh r0, [r4, #4] + cmp r0, r2 + beq _021E7BFC + sub r2, r2, #1 + add r0, r5, #0 + lsl r2, r2, #4 + add r0, #0xf0 + add r2, #0x18 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 +_021E7BFC: + add r0, sp, #0 + ldrh r1, [r0, #2] + strh r1, [r4, #6] + ldrh r0, [r0] + strh r0, [r4, #4] + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + bne _021E7C38 + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E7C38 + add r1, sp, #0 + ldrh r2, [r1, #2] + ldrh r1, [r1] + mov r0, #0x57 + lsl r0, r0, #2 + add r1, r2, r1 + lsl r1, r1, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0x10 + bl FUN_02001464 + add r6, r0, #0 + mov r0, #0x49 + mov r1, #1 + lsl r0, r0, #4 + strb r1, [r5, r0] +_021E7C38: + mov r0, #1 + mvn r0, r0 + cmp r6, r0 + beq _021E7C6E + add r0, r0, #1 + cmp r6, r0 + bne _021E7CAC + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0200145C + cmp r0, #1 + bne _021E7C5E + add r0, r5, #0 + mov r1, #0x24 + bl MOD75_021EA0CC + b _021E7CD2 +_021E7C5E: + cmp r0, #2 + bne _021E7CD2 + mov r1, #0x23 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E7CD2 +_021E7C6E: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #5 + bne _021E7C82 + add sp, #4 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021E7C82: + ldr r0, _021E7CDC ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #0 + add r0, #0x66 + strh r1, [r0] + add r5, #0xc4 + ldr r0, [r5] + mov r1, #5 + add r0, #0x68 + strh r1, [r0] + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add sp, #4 + mov r0, #3 + pop {r3, r4, r5, r6, pc} +_021E7CAC: + ldr r0, _021E7CDC ; =0x000005DC + bl FUN_020054C8 + ldr r0, [r4] + lsl r2, r6, #2 + ldrh r1, [r0, r2] + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add sp, #4 + add r0, #0x66 + strh r1, [r0] + ldr r0, [r4] + add r0, r0, r2 + ldrh r1, [r0, #2] + ldr r0, _021E7CE0 ; =0x0000048A + strh r1, [r5, r0] + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E7CD2: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021E7CD8: .word 0x021C48B8 +_021E7CDC: .word 0x000005DC +_021E7CE0: .word 0x0000048A + thumb_func_end MOD75_021E7B7C + + thumb_func_start MOD75_021E7CE4 +MOD75_021E7CE4: ; 0x021E7CE4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E7D0C ; =0x00000424 + ldrb r2, [r4, r0] + mov r0, #0xa + add r1, r2, #0 + mul r1, r0 + mov r0, #0x5a + sub r0, r0, r1 + add r1, r2, #1 + bl _s32_div_f + add r1, r0, #6 + ldr r0, _021E7D10 ; =0x00000427 + strb r1, [r4, r0] + ldrb r1, [r4, r0] + add r0, r0, #1 + add r1, r1, #4 + strb r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021E7D0C: .word 0x00000424 +_021E7D10: .word 0x00000427 + thumb_func_end MOD75_021E7CE4 + + thumb_func_start MOD75_021E7D14 +MOD75_021E7D14: ; 0x021E7D14 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E7DF8 ; =0x021C48B8 + ldr r1, [r0, #0x4c] + mov r0, #0x20 + tst r0, r1 + beq _021E7D88 + ldr r0, _021E7DFC ; =0x00000424 + ldrb r0, [r4, r0] + cmp r0, #1 + bne _021E7D2E + mov r0, #0 + pop {r4, pc} +_021E7D2E: + ldr r0, _021E7E00 ; =0x000006CA + bl FUN_020054C8 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x64 + ldrb r0, [r0] + cmp r0, #0 + beq _021E7D58 + ldr r1, _021E7E04 ; =0x00000429 + sub r0, r0, #1 + strb r0, [r4, r1] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, #0x4f + add r0, #0x64 + ldrb r0, [r0] + sub r0, r0, #1 + b _021E7D68 +_021E7D58: + ldr r1, _021E7DFC ; =0x00000424 + ldrb r0, [r4, r1] + sub r2, r0, #1 + add r0, r1, #5 + strb r2, [r4, r0] + ldrb r0, [r4, r1] + add r1, #0x54 + sub r0, r0, #1 +_021E7D68: + strb r0, [r4, r1] + add r0, r4, #0 + bl MOD75_021EC0C4 + ldr r0, _021E7E08 ; =0x0000042A + mov r1, #0 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021E7E0C + ldr r0, [r4] + mov r1, #4 + bl FUN_0201AC68 + mov r0, #1 + pop {r4, pc} +_021E7D88: + mov r0, #0x10 + tst r0, r1 + beq _021E7DF2 + ldr r0, _021E7DFC ; =0x00000424 + ldrb r0, [r4, r0] + cmp r0, #1 + bne _021E7D9A + mov r0, #0 + pop {r4, pc} +_021E7D9A: + ldr r0, _021E7E00 ; =0x000006CA + bl FUN_020054C8 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r1, _021E7DFC ; =0x00000424 + add r0, #0x64 + ldrb r0, [r0] + add r2, r0, #1 + ldrb r0, [r4, r1] + cmp r2, r0 + bge _021E7DCA + add r0, r1, #5 + strb r2, [r4, r0] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, #0x54 + add r0, #0x64 + ldrb r0, [r0] + add r0, r0, #1 + strb r0, [r4, r1] + b _021E7DD4 +_021E7DCA: + add r0, r1, #5 + mov r2, #0 + strb r2, [r4, r0] + add r1, #0x54 + strb r2, [r4, r1] +_021E7DD4: + add r0, r4, #0 + bl MOD75_021EC0C4 + ldr r0, _021E7E08 ; =0x0000042A + mov r1, #1 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021E7E0C + ldr r0, [r4] + mov r1, #4 + bl FUN_0201AC68 + mov r0, #1 + pop {r4, pc} +_021E7DF2: + mov r0, #0 + pop {r4, pc} + nop +_021E7DF8: .word 0x021C48B8 +_021E7DFC: .word 0x00000424 +_021E7E00: .word 0x000006CA +_021E7E04: .word 0x00000429 +_021E7E08: .word 0x0000042A + thumb_func_end MOD75_021E7D14 + + thumb_func_start MOD75_021E7E0C +MOD75_021E7E0C: ; 0x021E7E0C + push {r4, lr} + add r4, r0, #0 + bl MOD75_021E7E60 + ldr r0, _021E7E28 ; =0x0000042D + mov r1, #3 + strb r1, [r4, r0] + add r1, r0, #3 + ldrb r2, [r4, r1] + mov r1, #0x80 + add r0, r0, #3 + bic r2, r1 + strb r2, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021E7E28: .word 0x0000042D + thumb_func_end MOD75_021E7E0C + + thumb_func_start MOD75_021E7E2C +MOD75_021E7E2C: ; 0x021E7E2C + push {r4, lr} + ldr r1, _021E7E58 ; =0x0000042A + add r4, r0, #0 + ldrb r2, [r4, r1] + cmp r2, #2 + beq _021E7E3E + bl MOD75_021E7E60 + b _021E7E44 +_021E7E3E: + mov r2, #2 + add r0, r1, #1 + strb r2, [r4, r0] +_021E7E44: + ldr r0, _021E7E5C ; =0x0000042D + mov r1, #0 + strb r1, [r4, r0] + add r1, r0, #3 + ldrb r2, [r4, r1] + mov r1, #0x80 + add r0, r0, #3 + orr r1, r2 + strb r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_021E7E58: .word 0x0000042A +_021E7E5C: .word 0x0000042D + thumb_func_end MOD75_021E7E2C + + thumb_func_start MOD75_021E7E60 +MOD75_021E7E60: ; 0x021E7E60 + push {r4, lr} + ldr r1, _021E7EE0 ; =0x00000429 + add r4, r0, #0 + add r1, r4, r1 + mov r2, #0 + strb r2, [r1, #2] + strb r2, [r1, #3] + strb r2, [r1, #5] + ldrb r3, [r1, #7] + mov r2, #0xf + bic r3, r2 + strb r3, [r1, #7] + ldrb r3, [r1, #7] + mov r2, #0x70 + bic r3, r2 + strb r3, [r1, #7] + bl MOD75_021E7AA4 + add r0, r4, #4 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r0, r4, #4 + bl FUN_02019220 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + add r0, #0xf0 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r4, #0 + add r1, #0x64 + ldrb r1, [r1] + mov r2, #0 + bl MOD75_021EA96C + add r0, r4, #0 + add r4, #0xc4 + ldr r1, [r4] + mov r2, #0 + add r1, #0x64 + ldrb r1, [r1] + bl MOD75_021E84E4 + pop {r4, pc} + .align 2, 0 +_021E7EE0: .word 0x00000429 + thumb_func_end MOD75_021E7E60 + + thumb_func_start MOD75_021E7EE4 +MOD75_021E7EE4: ; 0x021E7EE4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, _021E8018 ; =0x00000429 + add r4, r5, r0 + bl FUN_02020A98 + cmp r0, #0 + bne _021E7F00 + ldrb r1, [r4, #7] + mov r0, #0x70 + bic r1, r0 + mov r0, #0x10 + orr r0, r1 + strb r0, [r4, #7] +_021E7F00: + add r0, r5, #0 + bl MOD75_021E83CC + add r6, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + beq _021E7F16 + ldrb r0, [r4] + cmp r6, r0 + beq _021E7F22 +_021E7F16: + ldrb r1, [r4, #7] + mov r0, #0xf + bic r1, r0 + mov r0, #1 + orr r0, r1 + strb r0, [r4, #7] +_021E7F22: + add r0, r5, #0 + bl MOD75_021E8020 + cmp r0, #0 + bne _021E7FB6 + ldrb r0, [r4, #7] + lsl r0, r0, #0x19 + lsr r0, r0, #0x1d + cmp r0, #1 + bne _021E7FB6 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + beq _021E7FB6 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4] + add r0, #0x64 + strb r1, [r0] + lsl r0, r6, #0x18 + ldrb r1, [r4] + lsr r0, r0, #0x18 + cmp r1, r0 + bls _021E7F6E + mov r2, #0 + strb r2, [r4, #1] + strb r2, [r4, #2] + ldrb r1, [r4] + add r0, r5, #0 + bl MOD75_021E84E4 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #0 + bl MOD75_021EA96C + b _021E7F92 +_021E7F6E: + cmp r1, r0 + bhs _021E7F8E + mov r0, #1 + strb r0, [r4, #1] + mov r2, #0 + strb r2, [r4, #2] + ldrb r1, [r4] + add r0, r5, #0 + bl MOD75_021E84E4 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #0 + bl MOD75_021EA96C + b _021E7F92 +_021E7F8E: + mov r0, #2 + strb r0, [r4, #1] +_021E7F92: + lsl r0, r6, #0x18 + lsr r0, r0, #0x18 + strb r0, [r4] + ldrb r2, [r4, #7] + mov r1, #0xf + bic r2, r1 + strb r2, [r4, #7] + ldrb r2, [r4, #7] + mov r1, #0x70 + bic r2, r1 + strb r2, [r4, #7] + mov r1, #0 + strb r1, [r4, #4] + ldr r1, _021E801C ; =0x00000478 + strb r0, [r5, r1] + add r0, r5, #0 + bl MOD75_021EC0C4 +_021E7FB6: + add r0, r5, #0 + bl MOD75_021E819C + add r6, r0, #0 + add r0, r5, #0 + bl MOD75_021E8424 + add r7, r0, #0 + add r0, r5, #0 + bl MOD75_021EC0DC + cmp r6, #1 + bne _021E8012 + cmp r7, #1 + bne _021E8012 + ldrb r0, [r4, #7] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + cmp r0, #1 + bne _021E8012 + add r0, r5, #0 + bl MOD75_021EC0AC + cmp r0, #1 + bne _021E8012 + ldrb r0, [r4, #7] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1f + cmp r0, #1 + bne _021E8004 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #1 + bl MOD75_021E84E4 + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 +_021E8004: + add r5, #0xfc + ldr r0, [r5] + mov r1, #1 + bl FUN_0200C644 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021E8012: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E8018: .word 0x00000429 +_021E801C: .word 0x00000478 + thumb_func_end MOD75_021E7EE4 + + thumb_func_start MOD75_021E8020 +MOD75_021E8020: ; 0x021E8020 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021E8188 ; =0x021C48B8 + ldr r1, _021E818C ; =0x00000429 + ldr r2, [r0, #0x48] + mov r0, #0x20 + add r4, r5, r1 + tst r0, r2 + beq _021E80D8 + sub r0, r1, #5 + ldrb r0, [r5, r0] + cmp r0, #1 + bne _021E803E + mov r0, #1 + pop {r3, r4, r5, pc} +_021E803E: + ldr r0, _021E8190 ; =0x000006CA + bl FUN_020054C8 + add r1, r5, #0 + add r1, #0xc4 + ldr r3, [r1] + add r0, r5, #0 + add r0, #0xe0 + ldrb r2, [r4] + mov r1, #0xc + ldr r0, [r0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0xc] + bl FUN_0200C5C0 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #0 + bl MOD75_021E84E4 + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4] + add r0, #0x64 + strb r1, [r0] + ldrb r0, [r4] + cmp r0, #0 + beq _021E808E + sub r0, r0, #1 + strb r0, [r4] + ldr r0, _021E8194 ; =0x00000478 + ldrb r1, [r5, r0] + sub r1, r1, #1 + b _021E809C +_021E808E: + ldr r0, _021E8198 ; =0x00000424 + ldrb r1, [r5, r0] + sub r1, r1, #1 + strb r1, [r4] + ldrb r1, [r5, r0] + add r0, #0x54 + sub r1, r1, #1 +_021E809C: + strb r1, [r5, r0] + mov r0, #0 + strb r0, [r4, #2] + strb r0, [r4, #1] + ldrb r1, [r4, #7] + mov r0, #0x70 + bic r1, r0 + mov r0, #0x10 + orr r0, r1 + strb r0, [r4, #7] + ldrb r1, [r4, #7] + mov r0, #0xf + bic r1, r0 + mov r0, #1 + orr r0, r1 + strb r0, [r4, #7] + ldrb r1, [r4, #7] + mov r0, #0x80 + bic r1, r0 + strb r1, [r4, #7] + ldrb r0, [r4, #4] + cmp r0, #3 + beq _021E80CE + mov r0, #4 + strb r0, [r4, #4] +_021E80CE: + add r0, r5, #0 + bl MOD75_021EC0C4 + mov r0, #1 + pop {r3, r4, r5, pc} +_021E80D8: + mov r0, #0x10 + tst r0, r2 + beq _021E8182 + sub r0, r1, #5 + ldrb r0, [r5, r0] + cmp r0, #1 + bne _021E80EA + mov r0, #1 + pop {r3, r4, r5, pc} +_021E80EA: + ldr r0, _021E8190 ; =0x000006CA + bl FUN_020054C8 + add r1, r5, #0 + add r1, #0xc4 + ldr r3, [r1] + add r0, r5, #0 + add r0, #0xe0 + ldrb r2, [r4] + mov r1, #0xc + ldr r0, [r0] + mul r1, r2 + add r1, r3, r1 + ldrb r1, [r1, #0xc] + bl FUN_0200C5C0 + ldrb r1, [r4] + add r0, r5, #0 + mov r2, #0 + bl MOD75_021E84E4 + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4] + add r0, #0x64 + strb r1, [r0] + ldrb r0, [r4] + ldr r1, _021E8198 ; =0x00000424 + add r2, r0, #1 + ldrb r0, [r5, r1] + cmp r2, r0 + bge _021E8140 + add r0, r1, #0 + strb r2, [r4] + add r0, #0x54 + ldrb r0, [r5, r0] + add r0, r0, #1 + b _021E8144 +_021E8140: + mov r0, #0 + strb r0, [r4] +_021E8144: + add r1, #0x54 + strb r0, [r5, r1] + mov r0, #0 + strb r0, [r4, #2] + mov r0, #1 + strb r0, [r4, #1] + ldrb r2, [r4, #7] + mov r1, #0x70 + bic r2, r1 + mov r1, #0x10 + orr r1, r2 + strb r1, [r4, #7] + ldrb r2, [r4, #7] + mov r1, #0xf + bic r2, r1 + orr r0, r2 + strb r0, [r4, #7] + ldrb r1, [r4, #7] + mov r0, #0x80 + bic r1, r0 + strb r1, [r4, #7] + ldrb r0, [r4, #4] + cmp r0, #3 + beq _021E8178 + mov r0, #4 + strb r0, [r4, #4] +_021E8178: + add r0, r5, #0 + bl MOD75_021EC0C4 + mov r0, #1 + pop {r3, r4, r5, pc} +_021E8182: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_021E8188: .word 0x021C48B8 +_021E818C: .word 0x00000429 +_021E8190: .word 0x000006CA +_021E8194: .word 0x00000478 +_021E8198: .word 0x00000424 + thumb_func_end MOD75_021E8020 + + thumb_func_start MOD75_021E819C +MOD75_021E819C: ; 0x021E819C + push {r4, r5, r6, lr} + ldr r1, _021E8300 ; =0x00000429 + add r5, r0, #0 + add r4, r5, r1 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _021E81B6 + cmp r1, #1 + beq _021E81C2 + cmp r1, #2 + bne _021E81B4 + b _021E82F8 +_021E81B4: + b _021E82FC +_021E81B6: + mov r0, #0 + strb r0, [r4, #3] + ldrb r0, [r4, #2] + add r0, r0, #1 + strb r0, [r4, #2] + b _021E82FC +_021E81C2: + ldrb r1, [r4, #3] + cmp r1, #8 + bhs _021E81D2 + add r1, r1, #1 + strb r1, [r4, #3] + bl MOD75_021EA8BC + b _021E82FC +_021E81D2: + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021E8206 + add r1, r5, #0 + add r1, #0xc4 + ldr r3, [r1] + add r1, r3, #0 + add r1, #0x64 + ldrb r6, [r1] + mov r1, #0xc + add r2, r6, #0 + mul r2, r1 + add r1, r3, #0 + add r1, #0xa + add r3, #8 + add r1, r1, r2 + add r2, r3, r2 + bl FUN_02001300 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02012870 +_021E8206: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldrb r1, [r4] + add r0, #0x64 + strb r1, [r0] + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r5, #0 + add r2, r1, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + add r0, #0xe0 + mul r2, r3 + add r1, r1, r2 + ldrb r1, [r1, #0xc] + ldr r0, [r0] + bl FUN_0200C5C0 + add r0, r5, #0 + bl MOD75_021EA9F8 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x64 + ldrb r1, [r1] + mov r2, #1 + bl MOD75_021EA96C + add r0, r5, #0 + bl MOD75_021E7580 + add r0, r5, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + bl MOD75_021E7758 + add r0, r5, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + mov r3, #9 + bl MOD75_021E7794 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r1, #0 + add r0, #0x64 + ldrb r2, [r0] + mov r0, #0xc + add r3, r2, #0 + mul r3, r0 + add r2, r1, r3 + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #8] + add r0, r5, #0 + bl MOD75_021E77E8 + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r5, #0 + add r3, r2, #0 + add r3, #0x64 + ldrb r6, [r3] + mov r3, #0xc + add r0, #0xf0 + mul r3, r6 + add r2, r2, r3 + ldrh r2, [r2, #8] + ldr r0, [r0] + mov r1, #0xb1 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x18 + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r5, #0xf0 + ldr r0, [r5] + mov r1, #1 + bl FUN_0200C644 + ldrb r0, [r4, #2] + add r0, r0, #1 + strb r0, [r4, #2] + mov r0, #1 + pop {r4, r5, r6, pc} +_021E82F8: + mov r0, #1 + pop {r4, r5, r6, pc} +_021E82FC: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_021E8300: .word 0x00000429 + thumb_func_end MOD75_021E819C + + thumb_func_start MOD75_021E8304 +MOD75_021E8304: ; 0x021E8304 + push {r4, lr} + add r4, r0, #0 + bl MOD75_021E8374 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + bne _021E8318 + mov r0, #0 + pop {r4, pc} +_021E8318: + ldr r2, _021E836C ; =0x00000424 + ldrb r1, [r4, r2] + cmp r1, #1 + bne _021E8324 + mov r0, #0 + pop {r4, pc} +_021E8324: + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r1, #0x64 + ldrb r3, [r1] + lsl r1, r0, #0x18 + lsr r1, r1, #0x18 + cmp r3, r1 + bne _021E833E + mov r3, #2 + add r1, r2, #6 + strb r3, [r4, r1] + b _021E8350 +_021E833E: + cmp r3, r1 + bls _021E834A + mov r3, #0 + add r1, r2, #6 + strb r3, [r4, r1] + b _021E8350 +_021E834A: + mov r3, #1 + add r1, r2, #6 + strb r3, [r4, r1] +_021E8350: + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r0, _021E8370 ; =0x00000429 + strb r1, [r4, r0] + add r0, #0x4f + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021EC0C4 + add r0, r4, #0 + bl MOD75_021E7E2C + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021E836C: .word 0x00000424 +_021E8370: .word 0x00000429 + thumb_func_end MOD75_021E8304 + + thumb_func_start MOD75_021E8374 +MOD75_021E8374: ; 0x021E8374 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, _021E83BC ; =0x00000424 + ldrb r0, [r5, r0] + lsl r1, r0, #3 + ldr r0, _021E83C0 ; =0x021EC628 + ldr r0, [r0, r1] + bl FUN_02020988 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + beq _021E83B6 + ldr r1, _021E83C4 ; =0x0000FFFE + add r0, sp, #4 + strh r1, [r0] + add r0, sp, #4 + str r0, [sp] + ldr r3, _021E83C8 ; =0x021C48F8 + ldr r0, [r5] + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #4 + bl FUN_0201AFBC + cmp r0, #0 + bne _021E83B6 + mov r0, #0 + add sp, #8 + mvn r0, r0 + pop {r3, r4, r5, pc} +_021E83B6: + add r0, r4, #0 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E83BC: .word 0x00000424 +_021E83C0: .word 0x021EC628 +_021E83C4: .word 0x0000FFFE +_021E83C8: .word 0x021C48F8 + thumb_func_end MOD75_021E8374 + + thumb_func_start MOD75_021E83CC +MOD75_021E83CC: ; 0x021E83CC + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, _021E8414 ; =0x00000424 + ldrb r0, [r5, r0] + lsl r1, r0, #3 + ldr r0, _021E8418 ; =0x021EC628 + ldr r0, [r0, r1] + bl FUN_02020968 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + beq _021E840E + ldr r1, _021E841C ; =0x0000FFFE + add r0, sp, #4 + strh r1, [r0] + add r0, sp, #4 + str r0, [sp] + ldr r3, _021E8420 ; =0x021C48F8 + ldr r0, [r5] + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #4 + bl FUN_0201AFBC + cmp r0, #0 + bne _021E840E + mov r0, #0 + add sp, #8 + mvn r0, r0 + pop {r3, r4, r5, pc} +_021E840E: + add r0, r4, #0 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E8414: .word 0x00000424 +_021E8418: .word 0x021EC628 +_021E841C: .word 0x0000FFFE +_021E8420: .word 0x021C48F8 + thumb_func_end MOD75_021E83CC + + thumb_func_start MOD75_021E8424 +MOD75_021E8424: ; 0x021E8424 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021E84D4 ; =0x00000429 + add r4, r5, r0 + ldrb r0, [r4, #4] + cmp r0, #4 + bhi _021E84CA + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021E843E: ; jump table + .short _021E8448 - _021E843E - 2 ; case 0 + .short _021E8460 - _021E843E - 2 ; case 1 + .short _021E84B0 - _021E843E - 2 ; case 2 + .short _021E84BE - _021E843E - 2 ; case 3 + .short _021E84C2 - _021E843E - 2 ; case 4 +_021E8448: + mov r0, #0 + strb r0, [r4, #5] + ldrb r1, [r4, #7] + mov r0, #0x80 + orr r0, r1 + strb r0, [r4, #7] + ldrb r0, [r4] + strb r0, [r4, #6] + ldrb r0, [r4, #4] + add r0, r0, #1 + strb r0, [r4, #4] + b _021E84CA +_021E8460: + ldrb r0, [r4, #5] + cmp r0, #3 + bne _021E84CA + ldr r0, _021E84D8 ; =0x000005E4 + bl FUN_020054C8 + ldrb r1, [r4, #6] + add r0, r5, #0 + mov r2, #2 + bl MOD75_021E84E4 + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 + ldrb r0, [r4, #6] + lsl r3, r0, #1 + ldr r0, _021E84DC ; =0x00000424 + ldrb r0, [r5, r0] + lsl r1, r0, #3 + ldr r0, _021E84E0 ; =0x021EC624 + ldr r2, [r0, r1] + add r0, r5, #0 + ldrb r1, [r2, r3] + add r3, r3, #1 + ldrb r2, [r2, r3] + lsl r1, r1, #3 + add r1, #0x14 + lsl r2, r2, #3 + add r2, #0x14 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + bl MOD75_021EC380 + ldrb r0, [r4, #4] + add r0, r0, #1 + strb r0, [r4, #4] + b _021E84CA +_021E84B0: + ldrb r1, [r4, #5] + cmp r1, #7 + bne _021E84CA + add r0, r0, #1 + strb r0, [r4, #4] + mov r0, #1 + pop {r3, r4, r5, pc} +_021E84BE: + mov r0, #1 + pop {r3, r4, r5, pc} +_021E84C2: + mov r0, #3 + strb r0, [r4, #4] + mov r0, #1 + pop {r3, r4, r5, pc} +_021E84CA: + ldrb r0, [r4, #5] + add r0, r0, #1 + strb r0, [r4, #5] + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E84D4: .word 0x00000429 +_021E84D8: .word 0x000005E4 +_021E84DC: .word 0x00000424 +_021E84E0: .word 0x021EC624 + thumb_func_end MOD75_021E8424 + + thumb_func_start MOD75_021E84E4 +MOD75_021E84E4: ; 0x021E84E4 + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + ldr r0, [r4] + add r5, r1, #0 + mov r1, #4 + add r6, r2, #0 + bl FUN_0201886C + add r7, r0, #0 + ldr r0, _021E856C ; =0x00000424 + ldrb r0, [r4, r0] + add r4, #0xc4 + lsl r1, r0, #3 + ldr r0, _021E8570 ; =0x021EC624 + ldr r1, [r0, r1] + lsl r0, r5, #1 + add r2, r1, r0 + ldr r1, [r4] + mov r0, #0xc + mul r0, r5 + add r0, r1, r0 + ldrb r3, [r0, #0xc] + lsl r0, r6, #2 + add r1, r6, r0 + lsr r5, r3, #1 + mov r0, #0x96 + mul r0, r5 + mov r5, #1 + and r5, r3 + mov r3, #0xf + mul r3, r5 + add r0, r0, r3 + add r0, #0x1e + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + mov r4, #0 + mov ip, r0 +_021E8530: + mov r0, #0x1e + add r1, r4, #0 + mul r1, r0 + mov r0, ip + mov r3, #0 + add r5, r0, r1 +_021E853C: + ldrb r6, [r2, #1] + mov r0, #2 + add r1, r3, r5 + lsl r0, r0, #0xc + add r1, r1, r0 + add r6, r4, r6 + lsl r6, r6, #5 + ldrb r0, [r2] + add r6, r3, r6 + add r0, r0, r6 + lsl r0, r0, #1 + strh r1, [r7, r0] + add r0, r3, #1 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + cmp r3, #5 + blo _021E853C + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #5 + blo _021E8530 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E856C: .word 0x00000424 +_021E8570: .word 0x021EC624 + thumb_func_end MOD75_021E84E4 + + thumb_func_start MOD75_021E8574 +MOD75_021E8574: ; 0x021E8574 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + add r4, r1, #0 + ldr r0, [r0] + mov r1, #4 + bl FUN_0201886C + mov ip, r0 + add r1, r4, #0 + mov r0, #6 + mul r1, r0 + ldr r0, _021E85D4 ; =0x00000276 + mov r4, #3 + add r0, r1, r0 + lsl r0, r0, #0x10 + mov r6, #0 + lsr r7, r0, #0x10 + lsl r4, r4, #0xc +_021E8598: + mov r0, #0x1e + mul r0, r6 + add r2, r7, r0 + add r0, r6, #7 + lsl r3, r0, #6 + mov r0, ip + mov r1, #0 + add r3, r0, r3 +_021E85A8: + add r0, r1, r2 + lsl r5, r1, #1 + add r0, r0, r4 + add r5, r3, r5 + strh r0, [r5, #0x1a] + add r0, r1, #1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + cmp r1, #6 + blo _021E85A8 + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #6 + blo _021E8598 + ldr r0, [sp] + mov r1, #4 + ldr r0, [r0] + bl FUN_0201AC68 + pop {r3, r4, r5, r6, r7, pc} + nop +_021E85D4: .word 0x00000276 + thumb_func_end MOD75_021E8574 + + thumb_func_start MOD75_021E85D8 +MOD75_021E85D8: ; 0x021E85D8 + push {r4, lr} + mov r1, #0x49 + add r4, r0, #0 + lsl r1, r1, #4 + ldrb r2, [r4, r1] + cmp r2, #3 + bhi _021E8674 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021E85F2: ; jump table + .short _021E8674 - _021E85F2 - 2 ; case 0 + .short _021E85FA - _021E85F2 - 2 ; case 1 + .short _021E8622 - _021E85F2 - 2 ; case 2 + .short _021E864E - _021E85F2 - 2 ; case 3 +_021E85FA: + mov r1, #0x80 + mov r2, #0x50 + bl MOD75_021EC380 + ldr r0, _021E8678 ; =0x000005E4 + bl FUN_020054C8 + add r0, r4, #0 + mov r1, #2 + bl MOD75_021E8574 + ldr r0, _021E867C ; =0x00000491 + mov r1, #0 + strb r1, [r4, r0] + sub r1, r0, #1 + ldrb r1, [r4, r1] + sub r0, r0, #1 + add r1, r1, #1 + strb r1, [r4, r0] + pop {r4, pc} +_021E8622: + add r2, r1, #1 + ldrb r2, [r4, r2] + cmp r2, #3 + bne _021E8642 + mov r1, #1 + bl MOD75_021E8574 + mov r0, #0x49 + lsl r0, r0, #4 + ldrb r1, [r4, r0] + add r1, r1, #1 + strb r1, [r4, r0] + mov r1, #0 + add r0, r0, #1 + strb r1, [r4, r0] + pop {r4, pc} +_021E8642: + add r0, r1, #1 + ldrb r0, [r4, r0] + add r2, r0, #1 + add r0, r1, #1 + strb r2, [r4, r0] + pop {r4, pc} +_021E864E: + add r2, r1, #1 + ldrb r2, [r4, r2] + cmp r2, #2 + bne _021E866A + mov r1, #0 + bl MOD75_021E8574 + mov r0, #0x49 + mov r1, #0 + lsl r0, r0, #4 + strb r1, [r4, r0] + add r0, r0, #1 + strb r1, [r4, r0] + pop {r4, pc} +_021E866A: + add r0, r1, #1 + ldrb r0, [r4, r0] + add r2, r0, #1 + add r0, r1, #1 + strb r2, [r4, r0] +_021E8674: + pop {r4, pc} + nop +_021E8678: .word 0x000005E4 +_021E867C: .word 0x00000491 + thumb_func_end MOD75_021E85D8 + + thumb_func_start MOD75_021E8680 +MOD75_021E8680: ; 0x021E8680 + push {r3, r4, r5, r6, r7, lr} + mov r1, #0 + add r5, r0, #0 + bl MOD75_021E8574 + ldr r0, _021E86BC ; =0x00000424 + ldrb r0, [r5, r0] + cmp r0, #1 + beq _021E86B2 + mov r4, #0 + cmp r0, #0 + bls _021E86B2 + ldr r6, _021E86BC ; =0x00000424 + add r7, r4, #0 +_021E869C: + add r0, r5, #0 + add r1, r4, #0 + add r2, r7, #0 + bl MOD75_021E84E4 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldrb r0, [r5, r6] + cmp r4, r0 + blo _021E869C +_021E86B2: + ldr r0, [r5] + mov r1, #4 + bl FUN_0201AC68 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021E86BC: .word 0x00000424 + thumb_func_end MOD75_021E8680 + + thumb_func_start MOD75_021E86C0 +MOD75_021E86C0: ; 0x021E86C0 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, _021E87B4 ; =0x00000481 + ldrb r1, [r4, r0] + cmp r1, #0 + bne _021E87A2 + sub r0, r0, #1 + ldrb r0, [r4, r0] + cmp r0, #3 + bhi _021E8794 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021E86E2: ; jump table + .short _021E86EA - _021E86E2 - 2 ; case 0 + .short _021E86EA - _021E86E2 - 2 ; case 1 + .short _021E8740 - _021E86E2 - 2 ; case 2 + .short _021E8740 - _021E86E2 - 2 ; case 3 +_021E86EA: + add r0, r4, #0 + add r0, #0xe8 + add r1, sp, #0 + ldr r0, [r0] + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + ldrsh r0, [r3, r1] + mov r2, #0 + sub r0, r0, #1 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xe8 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r0] + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xec + add r1, sp, #0 + ldr r0, [r0] + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + ldrsh r0, [r3, r1] + mov r2, #0 + add r0, r0, #1 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xec + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r0] + bl FUN_0200C714 + b _021E8794 +_021E8740: + add r0, r4, #0 + add r0, #0xe8 + add r1, sp, #0 + ldr r0, [r0] + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + ldrsh r0, [r3, r1] + mov r2, #0 + add r0, r0, #1 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xe8 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r0] + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xec + add r1, sp, #0 + ldr r0, [r0] + add r1, #2 + add r2, sp, #0 + bl FUN_0200C7A0 + add r3, sp, #0 + mov r1, #2 + ldrsh r0, [r3, r1] + mov r2, #0 + sub r0, r0, #1 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xec + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + ldr r0, [r0] + bl FUN_0200C714 +_021E8794: + mov r1, #0x12 + lsl r1, r1, #6 + ldrb r0, [r4, r1] + add r2, r0, #1 + mov r0, #3 + and r0, r2 + strb r0, [r4, r1] +_021E87A2: + ldr r1, _021E87B4 ; =0x00000481 + ldrb r0, [r4, r1] + add r2, r0, #1 + mov r0, #3 + and r0, r2 + strb r0, [r4, r1] + add sp, #4 + pop {r3, r4, pc} + nop +_021E87B4: .word 0x00000481 + thumb_func_end MOD75_021E86C0 + + thumb_func_start MOD75_021E87B8 +MOD75_021E87B8: ; 0x021E87B8 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, _021E87FC ; =0x021EC3F4 + bl FUN_02020988 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _021E87F4 + ldr r1, _021E8800 ; =0x0000FFFE + add r0, sp, #4 + strh r1, [r0] + add r0, sp, #4 + str r0, [sp] + ldr r3, _021E8804 ; =0x021C48F8 + ldr r0, [r4] + ldrh r2, [r3, #0x1c] + ldrh r3, [r3, #0x1e] + mov r1, #4 + bl FUN_0201AFBC + cmp r0, #0 + beq _021E87EE + add sp, #8 + mov r0, #1 + pop {r4, pc} +_021E87EE: + add sp, #8 + mov r0, #0 + pop {r4, pc} +_021E87F4: + mov r0, #0 + add sp, #8 + pop {r4, pc} + nop +_021E87FC: .word 0x021EC3F4 +_021E8800: .word 0x0000FFFE +_021E8804: .word 0x021C48F8 + thumb_func_end MOD75_021E87B8 + + thumb_func_start MOD75_021E8808 +MOD75_021E8808: ; 0x021E8808 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + ldrh r2, [r4, #6] + ldrh r1, [r4, #4] + ldr r0, [r5, r0] + add r1, r2, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl FUN_02001464 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + bne _021E883C + mov r0, #0 + pop {r3, r4, r5, pc} +_021E883C: + add r5, #0xc4 + ldr r0, [r5] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #0 + beq _021E884C + mov r0, #0 + pop {r3, r4, r5, pc} +_021E884C: + ldrb r0, [r4, #8] + add r0, #0xfd + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bls _021E885C + mov r0, #1 + b _021E885E +_021E885C: + mov r0, #0 +_021E885E: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021E8808 + + thumb_func_start MOD75_021E8864 +MOD75_021E8864: ; 0x021E8864 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r3, r2, r0 + ldr r1, _021E88B4 ; =0x0000047A + mov r0, #1 + strb r0, [r4, r1] + ldrh r2, [r3, #6] + ldrh r0, [r3, #4] + add r2, r2, r0 + add r0, r1, #1 + strb r2, [r4, r0] + mov r0, #0x57 + add r1, r1, #1 + lsl r0, r0, #2 + ldrb r1, [r4, r1] + ldr r0, [r4, r0] + bl FUN_02001464 + ldr r1, _021E88B8 ; =0x0000047C + str r0, [r4, r1] + add r0, r4, #0 + bl MOD75_021EB3D8 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02001328 + add r0, r4, #0 + bl MOD75_021E8AAC + pop {r4, pc} + nop +_021E88B4: .word 0x0000047A +_021E88B8: .word 0x0000047C + thumb_func_end MOD75_021E8864 + + thumb_func_start MOD75_021E88BC +MOD75_021E88BC: ; 0x021E88BC + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + bl MOD75_021EA3F4 + cmp r0, #1 + bne _021E88D0 + add sp, #4 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021E88D0: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #6 + add r2, r4, #4 + bl FUN_02001448 + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E8912 + ldr r0, _021E89E8 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + bl MOD75_021E89F0 + mov r1, #0x49 + mov r0, #1 + lsl r1, r1, #4 + add sp, #4 + strb r0, [r5, r1] + pop {r3, r4, r5, r6, pc} +_021E8912: + ldr r0, _021E89EC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #4 + tst r0, r1 + beq _021E892E + ldr r0, _021E89E8 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + bl MOD75_021E89F0 + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E892E: + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001204 + add r6, r0, #0 + mov r0, #0x57 + lsl r0, r0, #2 + add r1, sp, #0 + ldr r0, [r5, r0] + add r1, #2 + add r2, sp, #0 + bl FUN_02001448 + add r0, sp, #0 + ldrh r2, [r0] + ldrh r0, [r4, #4] + cmp r0, r2 + beq _021E896A + sub r2, r2, #1 + add r0, r5, #0 + lsl r2, r2, #4 + add r0, #0xf4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 +_021E896A: + add r0, sp, #0 + ldrh r1, [r0, #2] + strh r1, [r4, #6] + ldrh r0, [r0] + strh r0, [r4, #4] + mov r0, #1 + mvn r0, r0 + cmp r6, r0 + beq _021E89AA + add r0, r0, #1 + cmp r6, r0 + bne _021E89CE + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0200145C + cmp r0, #1 + bne _021E899A + add r0, r5, #0 + mov r1, #0x24 + bl MOD75_021EA0CC + b _021E89E0 +_021E899A: + cmp r0, #2 + bne _021E89E0 + mov r1, #0x23 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E89E0 +_021E89AA: + ldr r0, _021E89E8 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _021E89EC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021E89C2 + add r0, r5, #0 + bl MOD75_021E89F0 + b _021E89C8 +_021E89C2: + add r0, r5, #0 + bl MOD75_021E8A48 +_021E89C8: + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E89CE: + ldr r0, _021E89E8 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + bl MOD75_021E89F0 + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021E89E0: + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_021E89E8: .word 0x000005DC +_021E89EC: .word 0x021C48B8 + thumb_func_end MOD75_021E88BC + + thumb_func_start MOD75_021E89F0 +MOD75_021E89F0: ; 0x021E89F0 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldrh r2, [r0, #6] + ldrh r1, [r0, #4] + add r1, r2, r1 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + ldr r1, _021E8A44 ; =0x0000047B + ldrb r1, [r4, r1] + cmp r1, r2 + beq _021E8A3C + sub r2, r2, #1 + cmp r1, r2 + beq _021E8A3C + sub r1, r1, #1 + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0] + lsr r1, r1, #0x10 + lsr r2, r2, #0x10 + bl FUN_0206E5B4 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02012870 + add r0, r4, #0 + bl MOD75_021E7580 +_021E8A3C: + add r0, r4, #0 + bl MOD75_021E8A48 + pop {r4, pc} + .align 2, 0 +_021E8A44: .word 0x0000047B + thumb_func_end MOD75_021E89F0 + + thumb_func_start MOD75_021E8A48 +MOD75_021E8A48: ; 0x021E8A48 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r4, r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #6 + add r2, r4, #4 + bl FUN_02001300 + mov r0, #0x57 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r5, r0] + ldr r0, _021E8AA4 ; =0x0000047B + ldrh r1, [r4, #6] + ldrb r2, [r5, r0] + ldrh r0, [r4, #4] + add r1, r1, r0 + cmp r2, r1 + bge _021E8A84 + sub r0, r0, #1 + strh r0, [r4, #4] +_021E8A84: + ldr r0, _021E8AA8 ; =0x0000047A + mov r2, #0 + strb r2, [r5, r0] + add r1, r0, #1 + strb r2, [r5, r1] + add r0, r0, #2 + str r2, [r5, r0] + ldrh r1, [r4, #6] + ldrh r2, [r4, #4] + add r0, r5, #0 + bl MOD75_021E77E8 + add r0, r5, #0 + bl MOD75_021E8AAC + pop {r3, r4, r5, pc} + .align 2, 0 +_021E8AA4: .word 0x0000047B +_021E8AA8: .word 0x0000047A + thumb_func_end MOD75_021E8A48 + + thumb_func_start MOD75_021E8AAC +MOD75_021E8AAC: ; 0x021E8AAC + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r2, r2, r0 + ldr r0, _021E8B68 ; =0x0000047A + ldrb r0, [r4, r0] + cmp r0, #0 + bne _021E8B18 + ldrh r2, [r2, #4] + add r0, r4, #0 + add r0, #0xf0 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x18 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xf0 + ldr r0, [r0] + mov r1, #1 + bl FUN_0200C644 + add r0, r4, #0 + add r0, #0xf4 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + ldr r0, _021E8B6C ; =0x00000424 + ldrb r0, [r4, r0] + cmp r0, #1 + beq _021E8B66 + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #1 + bl FUN_0200C644 + add r4, #0xec + ldr r0, [r4] + mov r1, #1 + bl FUN_0200C644 + pop {r4, pc} +_021E8B18: + ldrh r2, [r2, #4] + add r0, r4, #0 + add r0, #0xf4 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xf0 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r4, #0 + add r0, #0xf4 + ldr r0, [r0] + mov r1, #1 + bl FUN_0200C644 + ldr r0, _021E8B6C ; =0x00000424 + ldrb r0, [r4, r0] + cmp r0, #1 + beq _021E8B66 + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r4, #0xec + ldr r0, [r4] + mov r1, #0 + bl FUN_0200C644 +_021E8B66: + pop {r4, pc} + .align 2, 0 +_021E8B68: .word 0x0000047A +_021E8B6C: .word 0x00000424 + thumb_func_end MOD75_021E8AAC + + thumb_func_start MOD75_021E8B70 +MOD75_021E8B70: ; 0x021E8B70 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #0 + add r0, #0x66 + ldrh r0, [r0] + mov r2, #6 + bl FUN_0206E710 + add r7, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r4, #0 + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r1, r0, r1 + add r0, #0x65 + ldrb r0, [r0] + ldrb r6, [r1, #0xc] + cmp r0, #0 + beq _021E8BA8 + b _021E8CB6 +_021E8BA8: + cmp r6, #4 + bne _021E8BB4 + mov r1, #9 + add r0, sp, #0 + strb r1, [r0] + add r4, r4, #1 +_021E8BB4: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x76 + ldrh r1, [r1] + lsl r1, r1, #0x10 + lsr r2, r1, #0x11 + ldr r1, _021E8CE8 ; =0x0000FFFE + add r1, r2, r1 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + cmp r1, #1 + bhi _021E8BEC + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + cmp r0, #5 + bne _021E8C66 + mov r1, #2 + add r0, sp, #0 + strb r1, [r0, r4] + add r4, r4, #1 + b _021E8C66 +_021E8BEC: + add r0, r7, #0 + mov r1, #6 + bl FUN_0206E7DC + cmp r0, #0 + beq _021E8C66 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + ldr r2, _021E8CEC ; =0x000001C2 + add r0, r1, #0 + add r0, #0x66 + ldrh r0, [r0] + cmp r0, r2 + bne _021E8C20 + add r2, r1, #0 + add r2, #0x76 + ldrh r2, [r2] + lsl r2, r2, #0x1f + lsr r2, r2, #0x1f + cmp r2, #1 + bne _021E8C20 + mov r1, #1 + add r0, sp, #0 + strb r1, [r0, r4] + b _021E8C64 +_021E8C20: + add r2, r1, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + mul r2, r3 + add r2, r1, r2 + ldrb r3, [r2, #0xc] + cmp r3, #5 + bne _021E8C3A + mov r1, #2 + add r0, sp, #0 + strb r1, [r0, r4] + b _021E8C64 +_021E8C3A: + ldr r2, _021E8CF0 ; =0x000001C1 + cmp r0, r2 + bne _021E8C48 + mov r1, #4 + add r0, sp, #0 + strb r1, [r0, r4] + b _021E8C64 +_021E8C48: + cmp r3, #4 + bne _021E8C5E + ldr r0, [r1, #0x70] + bl FUN_0205D51C + cmp r0, #1 + bne _021E8C5E + mov r1, #3 + add r0, sp, #0 + strb r1, [r0, r4] + b _021E8C64 +_021E8C5E: + mov r1, #0 + add r0, sp, #0 + strb r1, [r0, r4] +_021E8C64: + add r4, r4, #1 +_021E8C66: + add r0, r7, #0 + mov r1, #3 + bl FUN_0206E7DC + cmp r0, #0 + bne _021E8C84 + mov r0, #8 + add r1, sp, #0 + strb r0, [r1, r4] + add r4, r4, #1 + cmp r6, #3 + beq _021E8C84 + mov r0, #5 + strb r0, [r1, r4] + add r4, r4, #1 +_021E8C84: + add r0, r7, #0 + mov r1, #4 + bl FUN_0206E7DC + cmp r0, #0 + beq _021E8CCC + add r0, r5, #0 + add r0, #0xc8 + ldr r0, [r0] + bl FUN_0206EBC4 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r1, #0x66 + ldrh r1, [r1] + cmp r1, r0 + bne _021E8CAC + mov r1, #7 + b _021E8CAE +_021E8CAC: + mov r1, #6 +_021E8CAE: + add r0, sp, #0 + strb r1, [r0, r4] + add r4, r4, #1 + b _021E8CCC +_021E8CB6: + add r0, #0xfc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bhi _021E8CCC + mov r1, #0xa + add r0, sp, #0 + strb r1, [r0] + mov r1, #9 + strb r1, [r0, #1] + add r4, r4, #2 +_021E8CCC: + add r2, r4, #1 + lsl r2, r2, #0x18 + mov r0, #0xb + add r1, sp, #0 + strb r0, [r1, r4] + add r0, r5, #0 + lsr r2, r2, #0x18 + bl MOD75_021EB130 + add r0, r7, #0 + bl FUN_02016A18 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021E8CE8: .word 0x0000FFFE +_021E8CEC: .word 0x000001C2 +_021E8CF0: .word 0x000001C1 + thumb_func_end MOD75_021E8B70 + + thumb_func_start MOD75_021E8CF4 +MOD75_021E8CF4: ; 0x021E8CF4 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl MOD75_021EA510 + cmp r0, #1 + bne _021E8D04 + mov r0, #4 + pop {r3, r4, r5, pc} +_021E8D04: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001C78 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _021E8D38 + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E8D38 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001DDC + add r4, r0, #0 + mov r0, #0x49 + mov r1, #1 + lsl r0, r0, #4 + strb r1, [r5, r0] +_021E8D38: + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _021E8D6E + add r0, r0, #1 + cmp r4, r0 + bne _021E8DA0 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001E60 + cmp r0, #1 + bne _021E8D5E + add r0, r5, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + b _021E8DA6 +_021E8D5E: + cmp r0, #2 + bne _021E8DA6 + mov r1, #0x11 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E8DA6 +_021E8D6E: + add r0, r5, #0 + mov r1, #1 + bl MOD75_021EC090 + add r0, r5, #0 + bl MOD75_021EB344 + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0xc] + cmp r0, #3 + bne _021E8D9C + add r0, r5, #0 + mov r1, #0 + bl MOD75_021E8DAC +_021E8D9C: + mov r0, #1 + pop {r3, r4, r5, pc} +_021E8DA0: + add r0, r5, #0 + blx r4 + pop {r3, r4, r5, pc} +_021E8DA6: + mov r0, #4 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021E8CF4 + + thumb_func_start MOD75_021E8DAC +MOD75_021E8DAC: ; 0x021E8DAC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + cmp r1, #0 + bne _021E8DDA + mov r0, #0x12 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + ldr r2, _021E8E08 ; =0x021EC5C0 + mov r1, #1 + mov r3, #0 + bl FUN_02018148 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #1 + bl FUN_0200C644 + b _021E8DFC +_021E8DDA: + mov r0, #0x12 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r4] + ldr r2, _021E8E0C ; =0x021EC5F2 + mov r1, #1 + mov r3, #0 + bl FUN_02018148 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 +_021E8DFC: + ldr r0, [r4] + mov r1, #1 + bl FUN_0201AC68 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_021E8E08: .word 0x021EC5C0 +_021E8E0C: .word 0x021EC5F2 + thumb_func_end MOD75_021E8DAC + + thumb_func_start MOD75_021E8E10 +MOD75_021E8E10: ; 0x021E8E10 + lsl r1, r0, #2 + ldr r0, _021E8E18 ; =0x021EC590 + ldr r0, [r0, r1] + bx lr + .align 2, 0 +_021E8E18: .word 0x021EC590 + thumb_func_end MOD75_021E8E10 + + thumb_func_start MOD75_021E8E1C +MOD75_021E8E1C: ; 0x021E8E1C + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl MOD75_021EB344 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #6 + add r0, #0x66 + ldrh r0, [r0] + add r2, r1, #0 + bl FUN_0206E7B8 + add r1, r0, #0 + lsl r1, r1, #0x10 + mov r0, #2 + lsr r1, r1, #0x10 + bl FUN_0205CE48 + add r1, r0, #0 + beq _021E8E9C + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0, #0x70] + blx r1 + add r3, r0, #0 + beq _021E8E9C + mov r0, #6 + add r2, r4, #0 + str r0, [sp] + add r2, #0xc4 + ldr r2, [r2] + add r0, r4, #0 + mov r1, #0xfe + add r2, #0x66 + add r0, #0xcc + lsl r1, r1, #2 + ldrh r2, [r2] + ldr r0, [r0] + ldr r1, [r4, r1] + bl FUN_0206E51C + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021E8EA8 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E8EAC ; =0x00000426 + add sp, #4 + strb r0, [r4, r1] + mov r0, #0xc + pop {r3, r4, pc} +_021E8E9C: + add r0, r4, #0 + bl MOD75_021E8F10 + add sp, #4 + pop {r3, r4, pc} + nop +_021E8EA8: .word 0x000003D9 +_021E8EAC: .word 0x00000426 + thumb_func_end MOD75_021E8E1C + + thumb_func_start MOD75_021E8EB0 +MOD75_021E8EB0: ; 0x021E8EB0 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E8F04 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E8F00 + ldr r0, _021E8F08 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E8ED2 + ldr r0, _021E8F0C ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E8F00 +_021E8ED2: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + add r4, #0xc4 + ldr r0, [r4] + add r0, #0x65 + ldrb r0, [r0] + cmp r0, #3 + bne _021E8EFC + mov r0, #0x17 + pop {r4, pc} +_021E8EFC: + mov r0, #1 + pop {r4, pc} +_021E8F00: + mov r0, #0xc + pop {r4, pc} + .align 2, 0 +_021E8F04: .word 0x00000426 +_021E8F08: .word 0x021C48B8 +_021E8F0C: .word 0x021C48F8 + thumb_func_end MOD75_021E8EB0 + + thumb_func_start MOD75_021E8F10 +MOD75_021E8F10: ; 0x021E8F10 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r2, r2, r0 + ldr r1, _021E8FB0 ; =0x00000483 + mov r0, #0 + strb r0, [r4, r1] + ldrb r0, [r2, #8] + cmp r0, #3 + bne _021E8F3A + ldr r2, _021E8FB4 ; =MOD75_021E8FD8 + add r0, r1, #1 + str r2, [r4, r0] + mov r0, #0xd + pop {r4, pc} +_021E8F3A: + add r0, r4, #0 + add r0, #0xc4 + ldr r2, [r0] + sub r1, #0x8b + ldr r0, [r2] + add r2, #0x66 + ldrh r2, [r2] + ldr r1, [r4, r1] + mov r3, #6 + bl FUN_0206E3F8 + cmp r0, #1 + bne _021E8F7A + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021E8FB8 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E8FBC ; =0x00000426 + strb r0, [r4, r1] + mov r0, #0xc + pop {r4, pc} +_021E8F7A: + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r4, #0 + add r1, #0x66 + ldrh r1, [r1] + bl MOD75_021E91B8 + cmp r0, #1 + bne _021E8F98 + ldr r1, _021E8FC0 ; =MOD75_021E9394 + ldr r0, _021E8FC4 ; =0x00000484 + str r1, [r4, r0] + mov r0, #0xd + pop {r4, pc} +_021E8F98: + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r4, #0xc4 + ldr r0, [r4] + mov r1, #0 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r4, pc} + nop +_021E8FB0: .word 0x00000483 +_021E8FB4: .word MOD75_021E8FD8 +_021E8FB8: .word 0x000003D9 +_021E8FBC: .word 0x00000426 +_021E8FC0: .word MOD75_021E9394 +_021E8FC4: .word 0x00000484 + thumb_func_end MOD75_021E8F10 + + thumb_func_start MOD75_021E8FC8 +MOD75_021E8FC8: ; 0x021E8FC8 + push {r3, lr} + ldr r1, _021E8FD4 ; =0x00000484 + ldr r1, [r0, r1] + blx r1 + pop {r3, pc} + nop +_021E8FD4: .word 0x00000484 + thumb_func_end MOD75_021E8FC8 + + thumb_func_start MOD75_021E8FD8 +MOD75_021E8FD8: ; 0x021E8FD8 + push {r3, r4, r5, lr} + ldr r1, _021E91A4 ; =0x00000483 + add r4, r0, #0 + ldrb r2, [r4, r1] + cmp r2, #3 + bls _021E8FE6 + b _021E91A0 +_021E8FE6: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021E8FF2: ; jump table + .short _021E8FFA - _021E8FF2 - 2 ; case 0 + .short _021E9070 - _021E8FF2 - 2 ; case 1 + .short _021E90D0 - _021E8FF2 - 2 ; case 2 + .short _021E90EA - _021E8FF2 - 2 ; case 3 +_021E8FFA: + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x66 + ldrh r0, [r0] + bl FUN_0206EA30 + add r5, r0, #0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + add r2, r5, #0 + bl FUN_0200AD5C + add r0, r5, #0 + bl FUN_0206EA54 + cmp r0, #1 + bne _021E9034 + mov r0, #0x45 + mov r2, #0xfe + lsl r0, r0, #2 + lsl r2, r2, #2 + ldr r0, [r4, r0] + ldr r2, [r4, r2] + mov r1, #0x3b + bl FUN_0200A8E0 + b _021E9046 +_021E9034: + mov r0, #0x45 + mov r2, #0xfe + lsl r0, r0, #2 + lsl r2, r2, #2 + ldr r0, [r4, r0] + ldr r2, [r4, r2] + mov r1, #0x3a + bl FUN_0200A8E0 +_021E9046: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021E91A8 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E91AC ; =0x00000426 + strb r0, [r4, r1] + mov r0, #1 + add r1, #0x5d + strb r0, [r4, r1] + b _021E91A0 +_021E9070: + sub r1, #0x5d + ldrb r0, [r4, r1] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9132 + ldr r0, _021E91B0 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E908E + ldr r0, _021E91B4 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9132 +_021E908E: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x3c + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E91AC ; =0x00000426 + strb r0, [r4, r1] + mov r0, #2 + add r1, #0x5d + strb r0, [r4, r1] + b _021E91A0 +_021E90D0: + sub r1, #0x5d + ldrb r0, [r4, r1] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E91A0 + add r0, r4, #0 + bl MOD75_021EB6E0 + ldr r0, _021E91A4 ; =0x00000483 + mov r1, #3 + strb r1, [r4, r0] + b _021E91A0 +_021E90EA: + bl MOD75_021EA510 + cmp r0, #1 + beq _021E91A0 + add r0, r4, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9114 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + mov r2, #6 + bl FUN_020021CC + mov r1, #0x49 + mov r2, #1 + lsl r1, r1, #4 + strb r2, [r4, r1] + b _021E9120 +_021E9114: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #6 + bl FUN_020021AC +_021E9120: + cmp r0, #0 + beq _021E9134 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021E917A + add r1, r1, #1 + cmp r0, r1 + beq _021E9152 +_021E9132: + b _021E91A0 +_021E9134: + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021E8DAC + add r4, #0xc4 + ldr r0, [r4] + mov r1, #0 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r3, r4, r5, pc} +_021E9152: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02001E60 + cmp r0, #1 + bne _021E916A + add r0, r4, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + b _021E91A0 +_021E916A: + cmp r0, #2 + bne _021E91A0 + mov r1, #0x11 + add r0, r4, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E91A0 +_021E917A: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021E8DAC + mov r0, #1 + pop {r3, r4, r5, pc} +_021E91A0: + mov r0, #0xd + pop {r3, r4, r5, pc} + .align 2, 0 +_021E91A4: .word 0x00000483 +_021E91A8: .word 0x000003D9 +_021E91AC: .word 0x00000426 +_021E91B0: .word 0x021C48B8 +_021E91B4: .word 0x021C48F8 + thumb_func_end MOD75_021E8FD8 + + thumb_func_start MOD75_021E91B8 +MOD75_021E91B8: ; 0x021E91B8 + push {r3, r4, r5, lr} + add r4, r0, #0 + mov r0, #0x46 + add r2, r4, #0 + lsl r0, r0, #2 + add r2, #0xcc + add r5, r1, #0 + ldr r0, [r4, r0] + ldr r2, [r2] + mov r1, #0 + bl FUN_0200ABC0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + add r2, r5, #0 + bl FUN_0200AE38 + cmp r5, #0x44 + bne _021E9200 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x40 + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021E6FFC + ldr r0, _021E925C ; =0x00000488 + mov r1, #0 + strh r1, [r4, r0] + b _021E923E +_021E9200: + cmp r5, #0x45 + bne _021E9222 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x3f + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #2 + bl MOD75_021E6FFC + ldr r0, _021E925C ; =0x00000488 + mov r1, #0 + strh r1, [r4, r0] + b _021E923E +_021E9222: + cmp r5, #0x4d + beq _021E922E + cmp r5, #0x4c + beq _021E922E + cmp r5, #0x4f + bne _021E923A +_021E922E: + add r0, r4, #0 + add r1, r5, #0 + bl MOD75_021E9260 + add r5, r0, #0 + b _021E923E +_021E923A: + mov r0, #0 + pop {r3, r4, r5, pc} +_021E923E: + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_021E925C: .word 0x00000488 + thumb_func_end MOD75_021E91B8 + + thumb_func_start MOD75_021E9260 +MOD75_021E9260: ; 0x021E9260 + push {r3, r4, r5, lr} + add r4, r0, #0 + add r5, r1, #0 + bl MOD75_021E6FDC + bl FUN_0202AB54 + cmp r0, #0 + bne _021E9286 + ldr r0, _021E92B8 ; =0x00000488 + mov r1, #0 + strh r1, [r4, r0] + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x3e + bl FUN_0200A914 + pop {r3, r4, r5, pc} +_021E9286: + add r0, r5, #0 + mov r1, #2 + mov r2, #6 + bl FUN_0206E7B8 + add r1, r0, #0 + lsl r1, r1, #0x18 + add r0, r4, #0 + lsr r1, r1, #0x18 + bl MOD75_021E6FEC + ldr r0, _021E92B8 ; =0x00000488 + mov r1, #1 + strh r1, [r4, r0] + mov r0, #6 + lsl r0, r0, #8 + bl FUN_020054C8 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x3d + bl FUN_0200A914 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E92B8: .word 0x00000488 + thumb_func_end MOD75_021E9260 + + thumb_func_start MOD75_021E92BC +MOD75_021E92BC: ; 0x021E92BC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r3, r1, #0 + mul r3, r0 + add r1, r2, r3 + mov r0, #6 + str r0, [sp] + ldr r3, _021E9390 ; =0x00000488 + ldr r0, [r1, #4] + ldrb r1, [r1, #0xd] + add r2, #0x66 + ldrh r2, [r2] + ldrh r3, [r4, r3] + sub r1, r1, #3 + bl FUN_0206EE20 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + add r1, r3, #0 + mul r2, r0 + mov r0, #0x57 + lsl r0, r0, #2 + add r1, #0xa + ldr r0, [r4, r0] + add r3, #8 + add r1, r1, r2 + add r2, r3, r2 + bl FUN_02001300 + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02012870 + add r0, r4, #0 + bl MOD75_021E7580 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + bl MOD75_021E7758 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r0, r3, #0 + add r1, r3, #0 + add r0, #0xa + add r1, #8 + add r0, r0, r2 + add r1, r1, r2 + add r2, r3, r2 + ldrb r2, [r2, #0xd] + mov r3, #9 + bl MOD75_021E7794 + add r0, r4, #0 + add r0, #0xc4 + ldr r3, [r0] + add r0, r3, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + add r2, r3, r2 + ldrh r1, [r2, #0xa] + ldrh r2, [r2, #8] + add r0, r4, #0 + bl MOD75_021E77E8 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021E9390: .word 0x00000488 + thumb_func_end MOD75_021E92BC + + thumb_func_start MOD75_021E9394 +MOD75_021E9394: ; 0x021E9394 + push {r4, lr} + ldr r1, _021E9428 ; =0x00000483 + add r4, r0, #0 + ldrb r2, [r4, r1] + cmp r2, #0 + beq _021E93AA + cmp r2, #1 + beq _021E93D2 + cmp r2, #2 + beq _021E9402 + b _021E9422 +_021E93AA: + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021E942C ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E9430 ; =0x00000426 + strb r0, [r4, r1] + mov r0, #1 + add r1, #0x5d + strb r0, [r4, r1] + b _021E9422 +_021E93D2: + sub r1, #0x5d + ldrb r0, [r4, r1] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9422 + ldr r0, _021E9434 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E93F0 + ldr r0, _021E9438 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9422 +_021E93F0: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + ldr r0, _021E9428 ; =0x00000483 + mov r1, #2 + strb r1, [r4, r0] + b _021E9422 +_021E9402: + add r1, r1, #5 + ldrsh r1, [r4, r1] + cmp r1, #0 + beq _021E940E + bl MOD75_021E92BC +_021E940E: + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #1 + pop {r4, pc} +_021E9422: + mov r0, #0xd + pop {r4, pc} + nop +_021E9428: .word 0x00000483 +_021E942C: .word 0x000003D9 +_021E9430: .word 0x00000426 +_021E9434: .word 0x021C48B8 +_021E9438: .word 0x021C48F8 + thumb_func_end MOD75_021E9394 + + thumb_func_start MOD75_021E943C +MOD75_021E943C: ; 0x021E943C + push {r4, lr} + add r4, r0, #0 + bl MOD75_021EB344 + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r4, #0xc4 + ldr r0, [r4] + mov r1, #1 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E943C + + thumb_func_start MOD75_021E945C +MOD75_021E945C: ; 0x021E945C + push {r4, lr} + add r4, r0, #0 + bl MOD75_021EB344 + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r4, #0xc4 + ldr r0, [r4] + mov r1, #3 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E945C + + thumb_func_start MOD75_021E947C +MOD75_021E947C: ; 0x021E947C + push {r4, lr} + add r4, r0, #0 + bl MOD75_021EB344 + ldr r0, _021E94CC ; =0x00000488 + mov r1, #1 + strh r1, [r4, r0] + add r0, r4, #0 + add r0, #0xc4 + ldr r2, [r0] + mov r3, #6 + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r1, r2, r0 + ldr r0, [r1, #4] + ldrb r1, [r1, #0xd] + add r2, #0x66 + ldrh r2, [r2] + sub r1, r1, #3 + bl FUN_0206EF10 + cmp r0, #1 + bne _021E94BA + add r0, r4, #0 + bl MOD75_021EB5B0 + mov r0, #8 + pop {r4, pc} +_021E94BA: + add r0, r4, #0 + bl MOD75_021EB454 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC24C + mov r0, #7 + pop {r4, pc} + .align 2, 0 +_021E94CC: .word 0x00000488 + thumb_func_end MOD75_021E947C + + thumb_func_start MOD75_021E94D0 +MOD75_021E94D0: ; 0x021E94D0 + push {r4, lr} + ldr r2, _021E95AC ; =0x00000488 + add r4, r0, #0 + add r1, r4, r2 + add r2, r2, #2 + ldrh r2, [r4, r2] + bl MOD75_021EA594 + cmp r0, #1 + bne _021E94EE + add r0, r4, #0 + bl MOD75_021EB504 + mov r0, #7 + pop {r4, pc} +_021E94EE: + add r0, r4, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9512 + add r0, r4, #0 + bl MOD75_021EB5B0 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + mov r0, #0x49 + mov r1, #1 + lsl r0, r0, #4 + strb r1, [r4, r0] + mov r0, #8 + pop {r4, pc} +_021E9512: + ldr r1, _021E95AC ; =0x00000488 + add r0, r4, r1 + add r1, r1, #2 + ldrh r1, [r4, r1] + bl FUN_02079AAC + cmp r0, #0 + beq _021E955E + cmp r0, #1 + beq _021E952C + cmp r0, #2 + beq _021E9544 + b _021E955E +_021E952C: + add r0, r4, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + add r0, r4, #0 + bl MOD75_021EB504 + ldr r0, _021E95B0 ; =0x00000638 + bl FUN_020054C8 + mov r0, #7 + pop {r4, pc} +_021E9544: + mov r1, #0x11 + add r0, r4, #0 + mvn r1, r1 + bl MOD75_021EA0CC + add r0, r4, #0 + bl MOD75_021EB504 + ldr r0, _021E95B0 ; =0x00000638 + bl FUN_020054C8 + mov r0, #7 + pop {r4, pc} +_021E955E: + ldr r0, _021E95B4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021E9580 + add r0, r4, #0 + bl MOD75_021EB5B0 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + ldr r0, _021E95B8 ; =0x000005DC + bl FUN_020054C8 + mov r0, #8 + pop {r4, pc} +_021E9580: + mov r0, #2 + tst r0, r1 + beq _021E95A6 + add r0, r4, #0 + bl MOD75_021EB580 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + ldr r0, _021E95B8 ; =0x000005DC + bl FUN_020054C8 + mov r0, #1 + pop {r4, pc} +_021E95A6: + mov r0, #7 + pop {r4, pc} + nop +_021E95AC: .word 0x00000488 +_021E95B0: .word 0x00000638 +_021E95B4: .word 0x021C48B8 +_021E95B8: .word 0x000005DC + thumb_func_end MOD75_021E94D0 + + thumb_func_start MOD75_021E95BC +MOD75_021E95BC: ; 0x021E95BC + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E95DC ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E95D6 + add r0, r4, #0 + bl MOD75_021EB6E0 + mov r0, #9 + pop {r4, pc} +_021E95D6: + mov r0, #8 + pop {r4, pc} + nop +_021E95DC: .word 0x00000426 + thumb_func_end MOD75_021E95BC + + thumb_func_start MOD75_021E95E0 +MOD75_021E95E0: ; 0x021E95E0 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD75_021EA510 + cmp r0, #1 + bne _021E95F4 + add sp, #8 + mov r0, #9 + pop {r3, r4, r5, pc} +_021E95F4: + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9616 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + mov r2, #6 + bl FUN_020021CC + mov r1, #0x49 + mov r2, #1 + lsl r1, r1, #4 + strb r2, [r5, r1] + b _021E9622 +_021E9616: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #6 + bl FUN_020021AC +_021E9622: + cmp r0, #0 + beq _021E9636 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021E96EC + add r1, r1, #1 + cmp r0, r1 + beq _021E96C4 + b _021E970C +_021E9636: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x35 + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, _021E9714 ; =0x00000488 + ldrsh r0, [r5, r0] + cmp r0, #1 + bne _021E9664 + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AE38 + b _021E967A +_021E9664: + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AEA8 +_021E967A: + mov r0, #0 + str r0, [sp] + mov r1, #1 + mov r0, #0x46 + ldr r2, _021E9714 ; =0x00000488 + str r1, [sp, #4] + lsl r0, r0, #2 + ldrsh r2, [r5, r2] + ldr r0, [r5, r0] + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9718 ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0xa + pop {r3, r4, r5, pc} +_021E96C4: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001E60 + cmp r0, #1 + bne _021E96DC + add r0, r5, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + b _021E970C +_021E96DC: + cmp r0, #2 + bne _021E970C + mov r1, #0x11 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E970C +_021E96EC: + add r0, r5, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r5, #0 + mov r1, #1 + bl MOD75_021EC090 + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, pc} +_021E970C: + mov r0, #9 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021E9714: .word 0x00000488 +_021E9718: .word 0x00000426 + thumb_func_end MOD75_021E95E0 + + thumb_func_start MOD75_021E971C +MOD75_021E971C: ; 0x021E971C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9748 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + beq _021E9730 + mov r0, #0xa + pop {r4, pc} +_021E9730: + ldr r0, _021E974C ; =0x00000479 + mov r1, #1 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021E92BC + add r4, #0x64 + add r0, r4, #0 + bl FUN_02019220 + mov r0, #0xb + pop {r4, pc} + .align 2, 0 +_021E9748: .word 0x00000426 +_021E974C: .word 0x00000479 + thumb_func_end MOD75_021E971C + + thumb_func_start MOD75_021E9750 +MOD75_021E9750: ; 0x021E9750 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9798 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9794 + ldr r0, _021E979C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E9772 + ldr r0, _021E97A0 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9794 +_021E9772: + ldr r0, _021E97A4 ; =0x00000479 + mov r1, #0 + strb r1, [r4, r0] + add r0, r4, #0 + add r0, #0x64 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #1 + pop {r4, pc} +_021E9794: + mov r0, #0xb + pop {r4, pc} + .align 2, 0 +_021E9798: .word 0x00000426 +_021E979C: .word 0x021C48B8 +_021E97A0: .word 0x021C48F8 +_021E97A4: .word 0x00000479 + thumb_func_end MOD75_021E9750 + + thumb_func_start MOD75_021E97A8 +MOD75_021E97A8: ; 0x021E97A8 + push {r4, lr} + add r4, r0, #0 + add r1, r4, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, #0xc8 + add r1, #0x66 + ldrh r1, [r1] + ldr r0, [r0] + bl FUN_0206EBCC + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02001328 + add r0, r4, #0 + bl MOD75_021EB344 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E97A8 + + thumb_func_start MOD75_021E97E4 +MOD75_021E97E4: ; 0x021E97E4 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0206EBCC + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02001328 + add r0, r4, #0 + bl MOD75_021EB344 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E97E4 + + thumb_func_start MOD75_021E9818 +MOD75_021E9818: ; 0x021E9818 + push {r4, lr} + add r4, r0, #0 + bl MOD75_021EB344 + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021E8DAC + add r4, #0xc4 + ldr r0, [r4] + mov r1, #2 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021E9818 + + thumb_func_start MOD75_021E9840 +MOD75_021E9840: ; 0x021E9840 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl MOD75_021E86C0 + add r0, r5, #0 + bl MOD75_021EA2D8 + cmp r0, #1 + bne _021E9856 + mov r0, #0xe + pop {r3, r4, r5, pc} +_021E9856: + add r0, r5, #0 + bl MOD75_021E7D14 + cmp r0, #1 + bne _021E9864 + mov r0, #2 + pop {r3, r4, r5, pc} +_021E9864: + add r0, r5, #0 + bl MOD75_021E8304 + cmp r0, #1 + bne _021E9872 + mov r0, #2 + pop {r3, r4, r5, pc} +_021E9872: + add r0, r5, #0 + bl MOD75_021E7B7C + cmp r0, #1 + bne _021E9912 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #3 + add r0, #0x66 + ldrh r0, [r0] + mov r2, #6 + bl FUN_0206E7B8 + cmp r0, #0 + beq _021E98FC + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + ldr r2, _021E9928 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AE38 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x2e + bl FUN_0200A914 + add r4, r0, #0 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E992C ; =0x00000426 + strb r0, [r5, r1] + add r0, r5, #0 + mov r1, #2 + bl MOD75_021EC090 + mov r0, #0xf + pop {r3, r4, r5, pc} +_021E98FC: + add r5, #0xc4 + ldr r0, [r5] + mov r1, #4 + add r0, #0x68 + strh r1, [r0] + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + mov r0, #0x18 + pop {r3, r4, r5, pc} +_021E9912: + cmp r0, #3 + bne _021E9924 + add r5, #0xc4 + ldr r0, [r5] + mov r1, #4 + add r0, #0x68 + strh r1, [r0] + mov r0, #0x18 + pop {r3, r4, r5, pc} +_021E9924: + mov r0, #0xe + pop {r3, r4, r5, pc} + .align 2, 0 +_021E9928: .word 0x000003D9 +_021E992C: .word 0x00000426 + thumb_func_end MOD75_021E9840 + + thumb_func_start MOD75_021E9930 +MOD75_021E9930: ; 0x021E9930 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9974 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9970 + ldr r0, _021E9978 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E9952 + ldr r0, _021E997C ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9970 +_021E9952: + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #0xe + pop {r4, pc} +_021E9970: + mov r0, #0xf + pop {r4, pc} + .align 2, 0 +_021E9974: .word 0x00000426 +_021E9978: .word 0x021C48B8 +_021E997C: .word 0x021C48F8 + thumb_func_end MOD75_021E9930 + + thumb_func_start MOD75_021E9980 +MOD75_021E9980: ; 0x021E9980 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD75_021E86C0 + add r0, r5, #0 + bl MOD75_021EA2D8 + cmp r0, #1 + bne _021E999A + add sp, #8 + mov r0, #0x10 + pop {r3, r4, r5, pc} +_021E999A: + add r0, r5, #0 + bl MOD75_021E7D14 + cmp r0, #1 + bne _021E99AA + add sp, #8 + mov r0, #2 + pop {r3, r4, r5, pc} +_021E99AA: + add r0, r5, #0 + bl MOD75_021E8304 + cmp r0, #1 + bne _021E99BA + add sp, #8 + mov r0, #2 + pop {r3, r4, r5, pc} +_021E99BA: + add r0, r5, #0 + bl MOD75_021E7B7C + cmp r0, #1 + beq _021E99C6 + b _021E9B2A +_021E99C6: + add r0, r5, #0 + mov r1, #0 + bl MOD75_021EB808 + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + ldr r2, _021E9B3C ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AE38 + add r0, r5, #0 + mov r1, #2 + bl MOD75_021EC090 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #0 + add r0, #0x66 + ldrh r0, [r0] + mov r2, #6 + bl FUN_0206E7B8 + ldr r1, _021E9B40 ; =0x0000048C + mov r2, #6 + str r0, [r5, r1] + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #3 + add r0, #0x66 + ldrh r0, [r0] + bl FUN_0206E7B8 + cmp r0, #0 + bne _021E9A38 + ldr r1, _021E9B40 ; =0x0000048C + ldr r0, [r5, r1] + cmp r0, #0 + bne _021E9A6E +_021E9A38: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4a + bl FUN_0200A914 + add r4, r0, #0 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9B44 ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0x16 + pop {r3, r4, r5, pc} +_021E9A6E: + mov r2, #1 + sub r0, r1, #4 + strh r2, [r5, r0] + ldr r0, [r5, r1] + mov r3, #6 + lsr r0, r0, #1 + str r0, [r5, r1] + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r1, r2, r0 + ldr r0, [r1, #4] + ldrb r1, [r1, #0xd] + add r2, #0x66 + ldrh r2, [r2] + sub r1, r1, #3 + bl FUN_0206EF10 + cmp r0, #1 + bne _021E9AF4 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4c + bl FUN_0200A914 + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021E9B48 ; =0x00000488 + mov r0, #0x46 + ldrsh r3, [r5, r2] + add r2, r2, #4 + lsl r0, r0, #2 + ldr r2, [r5, r2] + ldr r0, [r5, r0] + mul r2, r3 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9B44 ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0x13 + pop {r3, r4, r5, pc} +_021E9AF4: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4b + bl FUN_0200A914 + add r4, r0, #0 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9B44 ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0x11 + pop {r3, r4, r5, pc} +_021E9B2A: + cmp r0, #3 + bne _021E9B34 + add sp, #8 + mov r0, #0x18 + pop {r3, r4, r5, pc} +_021E9B34: + mov r0, #0x10 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021E9B3C: .word 0x000003D9 +_021E9B40: .word 0x0000048C +_021E9B44: .word 0x00000426 +_021E9B48: .word 0x00000488 + thumb_func_end MOD75_021E9980 + + thumb_func_start MOD75_021E9B4C +MOD75_021E9B4C: ; 0x021E9B4C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9B80 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9B7C + ldr r0, _021E9B84 ; =0x0000048A + ldrh r1, [r4, r0] + cmp r1, #0x63 + bls _021E9B68 + mov r1, #0x63 + strh r1, [r4, r0] +_021E9B68: + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EB708 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC24C + mov r0, #0x12 + pop {r4, pc} +_021E9B7C: + mov r0, #0x11 + pop {r4, pc} + .align 2, 0 +_021E9B80: .word 0x00000426 +_021E9B84: .word 0x0000048A + thumb_func_end MOD75_021E9B4C + + thumb_func_start MOD75_021E9B88 +MOD75_021E9B88: ; 0x021E9B88 + push {r3, r4, r5, lr} + sub sp, #8 + ldr r2, _021E9D54 ; =0x00000488 + add r4, r0, #0 + add r1, r4, r2 + add r2, r2, #2 + ldrh r2, [r4, r2] + bl MOD75_021EA594 + cmp r0, #1 + bne _021E9BAC + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EB708 + add sp, #8 + mov r0, #0x12 + pop {r3, r4, r5, pc} +_021E9BAC: + add r0, r4, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9C2C + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + add r0, r4, #0 + add r0, #0x74 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x4c + bl FUN_0200A914 + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021E9D54 ; =0x00000488 + mov r0, #0x46 + ldrsh r3, [r4, r2] + add r2, r2, #4 + lsl r0, r0, #2 + ldr r2, [r4, r2] + ldr r0, [r4, r0] + mul r2, r3 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E9D58 ; =0x00000426 + add sp, #8 + strb r0, [r4, r1] + mov r0, #1 + add r1, #0x6a + strb r0, [r4, r1] + mov r0, #0x13 + pop {r3, r4, r5, pc} +_021E9C2C: + ldr r1, _021E9D54 ; =0x00000488 + add r0, r4, r1 + add r1, r1, #2 + ldrh r1, [r4, r1] + bl FUN_02079AAC + cmp r0, #0 + beq _021E9C80 + cmp r0, #1 + beq _021E9C46 + cmp r0, #2 + beq _021E9C62 + b _021E9C80 +_021E9C46: + add r0, r4, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EB708 + ldr r0, _021E9D5C ; =0x00000638 + bl FUN_020054C8 + add sp, #8 + mov r0, #0x12 + pop {r3, r4, r5, pc} +_021E9C62: + mov r1, #0x11 + add r0, r4, #0 + mvn r1, r1 + bl MOD75_021EA0CC + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EB708 + ldr r0, _021E9D5C ; =0x00000638 + bl FUN_020054C8 + add sp, #8 + mov r0, #0x12 + pop {r3, r4, r5, pc} +_021E9C80: + ldr r0, _021E9D60 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021E9D00 + add r0, r4, #0 + mov r1, #0 + bl MOD75_021EC298 + add r0, r4, #0 + add r0, #0x74 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x4c + bl FUN_0200A914 + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021E9D54 ; =0x00000488 + mov r0, #0x46 + ldrsh r3, [r4, r2] + add r2, r2, #4 + lsl r0, r0, #2 + ldr r2, [r4, r2] + ldr r0, [r4, r0] + mul r2, r3 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021E9D58 ; =0x00000426 + strb r0, [r4, r1] + ldr r0, _021E9D64 ; =0x000005DC + bl FUN_020054C8 + add sp, #8 + mov r0, #0x13 + pop {r3, r4, r5, pc} +_021E9D00: + mov r0, #2 + tst r0, r1 + beq _021E9D4C + ldr r0, _021E9D68 ; =0x0000048C + mov r1, #0 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021EC298 + add r0, r4, #0 + add r0, #0x84 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x74 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + ldr r0, _021E9D64 ; =0x000005DC + bl FUN_020054C8 + add sp, #8 + mov r0, #0x10 + pop {r3, r4, r5, pc} +_021E9D4C: + mov r0, #0x12 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021E9D54: .word 0x00000488 +_021E9D58: .word 0x00000426 +_021E9D5C: .word 0x00000638 +_021E9D60: .word 0x021C48B8 +_021E9D64: .word 0x000005DC +_021E9D68: .word 0x0000048C + thumb_func_end MOD75_021E9B88 + + thumb_func_start MOD75_021E9D6C +MOD75_021E9D6C: ; 0x021E9D6C + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9D8C ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9D86 + add r0, r4, #0 + bl MOD75_021EB6E0 + mov r0, #0x14 + pop {r4, pc} +_021E9D86: + mov r0, #0x13 + pop {r4, pc} + nop +_021E9D8C: .word 0x00000426 + thumb_func_end MOD75_021E9D6C + + thumb_func_start MOD75_021E9D90 +MOD75_021E9D90: ; 0x021E9D90 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD75_021EA510 + cmp r0, #1 + bne _021E9DA4 + add sp, #8 + mov r0, #0x14 + pop {r3, r4, r5, pc} +_021E9DA4: + add r0, r5, #0 + bl MOD75_021E87B8 + cmp r0, #1 + bne _021E9DC6 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + mov r2, #6 + bl FUN_020021CC + mov r1, #0x49 + mov r2, #1 + lsl r1, r1, #4 + strb r2, [r5, r1] + b _021E9DD2 +_021E9DC6: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #6 + bl FUN_020021AC +_021E9DD2: + cmp r0, #0 + beq _021E9DE6 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021E9EA2 + add r1, r1, #1 + cmp r0, r1 + beq _021E9E7A + b _021E9ED2 +_021E9DE6: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4d + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, _021E9ED8 ; =0x00000488 + ldrsh r0, [r5, r0] + cmp r0, #1 + ble _021E9E14 + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AEA8 + b _021E9E2A +_021E9E14: + add r2, r5, #0 + add r2, #0xc4 + ldr r2, [r2] + mov r0, #0x46 + add r2, #0x66 + lsl r0, r0, #2 + ldrh r2, [r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AE38 +_021E9E2A: + mov r0, #0 + str r0, [sp] + mov r1, #1 + mov r0, #0x46 + ldr r2, _021E9ED8 ; =0x00000488 + str r1, [sp, #4] + ldrsh r3, [r5, r2] + add r2, r2, #4 + lsl r0, r0, #2 + ldr r2, [r5, r2] + ldr r0, [r5, r0] + mul r2, r3 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021E9EDC ; =0x00000426 + add sp, #8 + strb r0, [r5, r1] + mov r0, #0x15 + pop {r3, r4, r5, pc} +_021E9E7A: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001E60 + cmp r0, #1 + bne _021E9E92 + add r0, r5, #0 + mov r1, #0x12 + bl MOD75_021EA0CC + b _021E9ED2 +_021E9E92: + cmp r0, #2 + bne _021E9ED2 + mov r1, #0x11 + add r0, r5, #0 + mvn r1, r1 + bl MOD75_021EA0CC + b _021E9ED2 +_021E9EA2: + ldr r0, _021E9EE0 ; =0x0000048C + mov r1, #0 + str r1, [r5, r0] + add r0, r5, #0 + add r0, #0x84 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r5, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r5, #0 + mov r1, #1 + bl MOD75_021EC090 + add sp, #8 + mov r0, #0x10 + pop {r3, r4, r5, pc} +_021E9ED2: + mov r0, #0x14 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021E9ED8: .word 0x00000488 +_021E9EDC: .word 0x00000426 +_021E9EE0: .word 0x0000048C + thumb_func_end MOD75_021E9D90 + + thumb_func_start MOD75_021E9EE4 +MOD75_021E9EE4: ; 0x021E9EE4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9F64 ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + beq _021E9EF8 + mov r0, #0x15 + pop {r4, pc} +_021E9EF8: + ldr r0, _021E9F68 ; =0x00000644 + bl FUN_020054C8 + ldr r1, _021E9F6C ; =0x00000488 + add r0, r4, #0 + ldrsh r2, [r4, r1] + add r1, r1, #4 + add r0, #0xcc + ldr r1, [r4, r1] + ldr r0, [r0] + mul r1, r2 + bl FUN_02023A30 + ldr r0, _021E9F6C ; =0x00000488 + ldrsh r0, [r4, r0] + cmp r0, #1 + bne _021E9F38 + add r0, r4, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r1, #0 + add r0, #0x75 + ldrb r0, [r0] + cmp r0, #0xff + beq _021E9F44 + add r0, r1, #0 + add r0, #0x75 + ldrb r0, [r0] + add r1, #0x75 + add r0, r0, #1 + strb r0, [r1] + b _021E9F44 +_021E9F38: + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + mov r1, #2 + add r0, #0x75 + strb r1, [r0] +_021E9F44: + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EB808 + ldr r0, _021E9F70 ; =0x00000479 + mov r1, #1 + strb r1, [r4, r0] + add r0, r4, #0 + bl MOD75_021E92BC + add r4, #0x64 + add r0, r4, #0 + bl FUN_02019220 + mov r0, #0x16 + pop {r4, pc} + .align 2, 0 +_021E9F64: .word 0x00000426 +_021E9F68: .word 0x00000644 +_021E9F6C: .word 0x00000488 +_021E9F70: .word 0x00000479 + thumb_func_end MOD75_021E9EE4 + + thumb_func_start MOD75_021E9F74 +MOD75_021E9F74: ; 0x021E9F74 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021E9FCC ; =0x00000426 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021E9FC8 + ldr r0, _021E9FD0 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + bne _021E9F96 + ldr r0, _021E9FD4 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021E9FC8 +_021E9F96: + ldr r0, _021E9FD8 ; =0x00000479 + mov r1, #0 + strb r1, [r4, r0] + add r0, #0x13 + str r1, [r4, r0] + add r0, r4, #0 + add r0, #0x84 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x64 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019220 + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC090 + mov r0, #0x10 + pop {r4, pc} +_021E9FC8: + mov r0, #0x16 + pop {r4, pc} + .align 2, 0 +_021E9FCC: .word 0x00000426 +_021E9FD0: .word 0x021C48B8 +_021E9FD4: .word 0x021C48F8 +_021E9FD8: .word 0x00000479 + thumb_func_end MOD75_021E9F74 + + thumb_func_start MOD75_021E9FDC +MOD75_021E9FDC: ; 0x021E9FDC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl MOD75_021E86C0 + add r0, r4, #0 + bl MOD75_021EA2D8 + cmp r0, #1 + bne _021E9FF6 + add sp, #4 + mov r0, #0x17 + pop {r3, r4, pc} +_021E9FF6: + add r0, r4, #0 + bl MOD75_021E7D14 + cmp r0, #1 + bne _021EA006 + add sp, #4 + mov r0, #2 + pop {r3, r4, pc} +_021EA006: + add r0, r4, #0 + bl MOD75_021E8304 + cmp r0, #1 + bne _021EA016 + add sp, #4 + mov r0, #2 + pop {r3, r4, pc} +_021EA016: + add r0, r4, #0 + bl MOD75_021E7B7C + cmp r0, #1 + bne _021EA0A8 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r1, r0, r1 + ldrb r1, [r1, #0xc] + cmp r1, #0 + bne _021EA090 + add r0, #0x66 + ldrh r0, [r0] + mov r1, #6 + add r2, r1, #0 + bl FUN_0206E7B8 + cmp r0, #0xd + beq _021EA090 + mov r3, #6 + add r2, r4, #0 + str r3, [sp] + add r2, #0xc4 + ldr r2, [r2] + add r0, r4, #0 + mov r1, #0xfe + add r2, #0x66 + add r0, #0xcc + lsl r1, r1, #2 + ldrh r2, [r2] + ldr r0, [r0] + ldr r1, [r4, r1] + sub r3, r3, #7 + bl FUN_0206E51C + add r0, r4, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + ldr r2, _021EA0C4 ; =0x000003D9 + add r0, #0x64 + mov r1, #0 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r4, #0 + bl MOD75_021EB660 + ldr r1, _021EA0C8 ; =0x00000426 + add sp, #4 + strb r0, [r4, r1] + mov r0, #0xc + pop {r3, r4, pc} +_021EA090: + add r4, #0xc4 + ldr r0, [r4] + mov r1, #0 + add r0, #0x68 + strh r1, [r0] + mov r0, #1 + mov r1, #6 + bl FUN_02079A70 + add sp, #4 + mov r0, #0x18 + pop {r3, r4, pc} +_021EA0A8: + cmp r0, #3 + bne _021EA0BC + add r4, #0xc4 + ldr r0, [r4] + mov r1, #5 + add r0, #0x68 + strh r1, [r0] + add sp, #4 + mov r0, #0x18 + pop {r3, r4, pc} +_021EA0BC: + mov r0, #0x17 + add sp, #4 + pop {r3, r4, pc} + nop +_021EA0C4: .word 0x000003D9 +_021EA0C8: .word 0x00000426 + thumb_func_end MOD75_021E9FDC + + thumb_func_start MOD75_021EA0CC +MOD75_021EA0CC: ; 0x021EA0CC + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r0, [r4] + add r5, r1, #0 + mov r1, #7 + bl FUN_02018878 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add r0, r0, r5 + lsl r0, r0, #0x10 + asr r5, r0, #0x10 + mov r0, #0x5a + lsl r0, r0, #2 + cmp r5, r0 + blt _021EA0F4 + sub r0, r5, r0 + lsl r0, r0, #0x10 + asr r5, r0, #0x10 + b _021EA0FE +_021EA0F4: + cmp r5, #0 + bge _021EA0FE + add r0, r5, r0 + lsl r0, r0, #0x10 + asr r5, r0, #0x10 +_021EA0FE: + lsl r3, r5, #0x10 + ldr r0, [r4] + mov r1, #7 + mov r2, #0 + lsr r3, r3, #0x10 + bl FUN_0201AF08 + ldr r0, _021EA114 ; =0x0000049A + strh r5, [r4, r0] + pop {r3, r4, r5, pc} + nop +_021EA114: .word 0x0000049A + thumb_func_end MOD75_021EA0CC + + thumb_func_start MOD75_021EA118 +MOD75_021EA118: ; 0x021EA118 + push {r3, lr} + ldr r0, _021EA12C ; =0x021EC404 + bl FUN_020209F4 + cmp r0, #1 + bne _021EA128 + mov r0, #1 + pop {r3, pc} +_021EA128: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021EA12C: .word 0x021EC404 + thumb_func_end MOD75_021EA118 + + thumb_func_start MOD75_021EA130 +MOD75_021EA130: ; 0x021EA130 + push {r3, lr} + ldr r0, _021EA144 ; =0x021EC410 + bl FUN_020209A8 + cmp r0, #1 + bne _021EA140 + mov r0, #1 + pop {r3, pc} +_021EA140: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021EA144: .word 0x021EC410 + thumb_func_end MOD75_021EA130 + + thumb_func_start MOD75_021EA148 +MOD75_021EA148: ; 0x021EA148 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + bl MOD75_021EA118 + cmp r0, #1 + bne _021EA176 + ldr r1, _021EA2BC ; =0x00000492 + mov r0, #1 + strb r0, [r5, r1] + mov r2, #0 + add r0, r1, #6 + strh r2, [r5, r0] + add r0, r1, #2 + str r2, [r5, r0] + add r0, r1, #0 + ldr r2, _021EA2C0 ; =0x021C48F8 + add r0, #0xc + ldrh r3, [r2, #0x1c] + add r1, #0xe + strh r3, [r5, r0] + ldrh r0, [r2, #0x1e] + strh r0, [r5, r1] +_021EA176: + ldr r0, _021EA2BC ; =0x00000492 + ldrb r0, [r5, r0] + cmp r0, #1 + beq _021EA180 + b _021EA2B6 +_021EA180: + bl MOD75_021EA130 + cmp r0, #1 + beq _021EA18A + b _021EA2A8 +_021EA18A: + mov r3, #0x50 + ldr r1, _021EA2C4 ; =0x0000049E + str r3, [sp] + ldr r4, _021EA2C0 ; =0x021C48F8 + ldrh r0, [r5, r1] + add r1, r1, #2 + ldrh r1, [r5, r1] + ldrh r2, [r4, #0x1c] + mov r7, #0x80 + ldrh r4, [r4, #0x1e] + sub r1, r3, r1 + sub r0, r7, r0 + sub r2, r7, r2 + sub r3, r3, r4 + bl FUN_0201BBD0 + add r4, r0, #0 + mov r0, #0x50 + lsl r1, r4, #1 + bl FUN_0201BC84 + lsl r0, r0, #8 + mov r1, #0xb6 + bl _s32_div_f + ldr r1, _021EA2C8 ; =0x0000049A + asr r3, r0, #8 + ldrsh r2, [r5, r1] + add r0, r5, r1 + add r2, r2, r3 + strh r2, [r0] + ldrsh r1, [r5, r1] + cmp r1, #0 + bge _021EA1DC + mov r1, #0 + ldrsh r2, [r0, r1] + add r1, r7, #0 + add r1, #0xe8 + add r1, r2, r1 + strh r1, [r0] + b _021EA1EC +_021EA1DC: + add r2, r7, #0 + add r2, #0xe8 + cmp r1, r2 + blt _021EA1EC + mov r1, #0 + ldrsh r1, [r0, r1] + sub r1, r1, r2 + strh r1, [r0] +_021EA1EC: + ldr r3, _021EA2C8 ; =0x0000049A + ldr r0, [r5] + ldrh r3, [r5, r3] + mov r1, #7 + mov r2, #0 + bl FUN_0201AF08 + ldr r0, _021EA2CC ; =0x000001F6 + add r1, r6, #0 + bl _s32_div_f + add r6, r0, #0 + cmp r4, #0 + ble _021EA250 + ldr r0, _021EA2D0 ; =0x00000498 + ldrsh r1, [r5, r0] + cmp r1, #0 + bge _021EA22A + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + ldr r1, _021EA2D0 ; =0x00000498 + strh r0, [r5, r1] + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + ldr r0, _021EA2D4 ; =0x00000494 + str r1, [r5, r0] + b _021EA298 +_021EA22A: + sub r0, r0, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + add r0, r0, r4 + bl _s32_div_f + ldr r1, _021EA2D0 ; =0x00000498 + ldrsh r2, [r5, r1] + add r0, r2, r0 + strh r0, [r5, r1] + sub r0, r1, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + add r0, r0, r4 + bl _s32_div_f + ldr r0, _021EA2D4 ; =0x00000494 + str r1, [r5, r0] + b _021EA298 +_021EA250: + bge _021EA298 + ldr r0, _021EA2D0 ; =0x00000498 + ldrsh r1, [r5, r0] + cmp r1, #0 + ble _021EA274 + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + ldr r1, _021EA2D0 ; =0x00000498 + strh r0, [r5, r1] + add r0, r4, #0 + add r1, r6, #0 + bl _s32_div_f + ldr r0, _021EA2D4 ; =0x00000494 + str r1, [r5, r0] + b _021EA298 +_021EA274: + sub r0, r0, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + add r0, r0, r4 + bl _s32_div_f + ldr r1, _021EA2D0 ; =0x00000498 + ldrsh r2, [r5, r1] + add r0, r2, r0 + strh r0, [r5, r1] + sub r0, r1, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + add r0, r0, r4 + bl _s32_div_f + ldr r0, _021EA2D4 ; =0x00000494 + str r1, [r5, r0] +_021EA298: + ldr r1, _021EA2C0 ; =0x021C48F8 + ldr r0, _021EA2C4 ; =0x0000049E + ldrh r2, [r1, #0x1c] + strh r2, [r5, r0] + ldrh r1, [r1, #0x1e] + add r0, r0, #2 + strh r1, [r5, r0] + b _021EA2B2 +_021EA2A8: + ldr r0, _021EA2BC ; =0x00000492 + mov r1, #0 + strb r1, [r5, r0] + add r0, r0, #6 + strh r1, [r5, r0] +_021EA2B2: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021EA2B6: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EA2BC: .word 0x00000492 +_021EA2C0: .word 0x021C48F8 +_021EA2C4: .word 0x0000049E +_021EA2C8: .word 0x0000049A +_021EA2CC: .word 0x000001F6 +_021EA2D0: .word 0x00000498 +_021EA2D4: .word 0x00000494 + thumb_func_end MOD75_021EA148 + + thumb_func_start MOD75_021EA2D8 +MOD75_021EA2D8: ; 0x021EA2D8 + push {r4, lr} + mov r1, #0x24 + add r4, r0, #0 + bl MOD75_021EA148 + ldr r1, _021EA324 ; =0x00000498 + ldrsh r1, [r4, r1] + cmp r1, #0 + ble _021EA306 + add r0, r4, #0 + mov r1, #0x40 + bl MOD75_021EA328 + cmp r0, #1 + ldr r0, _021EA324 ; =0x00000498 + bne _021EA2FE + ldrsh r1, [r4, r0] + sub r1, r1, #1 + b _021EA300 +_021EA2FE: + mov r1, #0 +_021EA300: + strh r1, [r4, r0] + mov r0, #1 + pop {r4, pc} +_021EA306: + bge _021EA322 + add r0, r4, #0 + mov r1, #0x80 + bl MOD75_021EA328 + cmp r0, #1 + ldr r0, _021EA324 ; =0x00000498 + bne _021EA31C + ldrsh r1, [r4, r0] + add r1, r1, #1 + b _021EA31E +_021EA31C: + mov r1, #0 +_021EA31E: + strh r1, [r4, r0] + mov r0, #1 +_021EA322: + pop {r4, pc} + .align 2, 0 +_021EA324: .word 0x00000498 + thumb_func_end MOD75_021EA2D8 + + thumb_func_start MOD75_021EA328 +MOD75_021EA328: ; 0x021EA328 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r4, r0, #0 + add r0, #0xc4 + ldr r3, [r0] + mov r5, #0xc + add r0, r3, #0 + add r0, #0x64 + ldrb r0, [r0] + add r2, r0, #0 + mul r2, r5 + add r0, r3, r2 + ldrh r0, [r0, #0xa] + add r3, sp, #0x10 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #0 + add r2, #0x64 + ldrb r2, [r2] + mul r5, r2 + add r0, r0, r5 + ldrh r0, [r0, #8] + strh r0, [r3] + mov r0, #1 + str r0, [sp] + add r0, sp, #0x10 + str r1, [sp, #4] + add r0, #2 + str r0, [sp, #8] + add r0, sp, #0x10 + str r0, [sp, #0xc] + mov r0, #0x57 + lsl r0, r0, #2 + ldrh r2, [r3, #2] + ldrh r3, [r3] + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001354 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + add r5, r2, #0 + mul r5, r1 + add r1, sp, #0x10 + add r2, r0, r5 + ldrh r3, [r1, #2] + ldrh r0, [r2, #0xa] + cmp r3, r0 + bne _021EA3A6 + ldrh r1, [r1] + ldrh r0, [r2, #8] + cmp r1, r0 + bne _021EA3A6 + add sp, #0x14 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021EA3A6: + add r2, sp, #0x10 + ldrh r2, [r2] + add r0, r4, #0 + add r0, #0xf0 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x18 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xc4 + ldr r6, [r0] + add r2, sp, #0x10 + add r0, r6, #0 + add r0, #0x64 + ldrb r0, [r0] + ldrh r5, [r2, #2] + mov r1, #0xc + add r3, r0, #0 + mul r3, r1 + add r0, r6, r3 + strh r5, [r0, #0xa] + add r4, #0xc4 + ldr r3, [r4] + ldrh r2, [r2] + add r0, r3, #0 + add r0, #0x64 + ldrb r0, [r0] + mul r1, r0 + add r0, r3, r1 + strh r2, [r0, #8] + mov r0, #1 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD75_021EA328 + + thumb_func_start MOD75_021EA3F4 +MOD75_021EA3F4: ; 0x021EA3F4 + push {r4, lr} + mov r1, #0x24 + add r4, r0, #0 + bl MOD75_021EA148 + ldr r1, _021EA440 ; =0x00000498 + ldrsh r1, [r4, r1] + cmp r1, #0 + ble _021EA422 + add r0, r4, #0 + mov r1, #0x40 + bl MOD75_021EA444 + cmp r0, #1 + ldr r0, _021EA440 ; =0x00000498 + bne _021EA41A + ldrsh r1, [r4, r0] + sub r1, r1, #1 + b _021EA41C +_021EA41A: + mov r1, #0 +_021EA41C: + strh r1, [r4, r0] + mov r0, #1 + pop {r4, pc} +_021EA422: + bge _021EA43E + add r0, r4, #0 + mov r1, #0x80 + bl MOD75_021EA444 + cmp r0, #1 + ldr r0, _021EA440 ; =0x00000498 + bne _021EA438 + ldrsh r1, [r4, r0] + add r1, r1, #1 + b _021EA43A +_021EA438: + mov r1, #0 +_021EA43A: + strh r1, [r4, r0] + mov r0, #1 +_021EA43E: + pop {r4, pc} + .align 2, 0 +_021EA440: .word 0x00000498 + thumb_func_end MOD75_021EA3F4 + + thumb_func_start MOD75_021EA444 +MOD75_021EA444: ; 0x021EA444 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r4, r0, #0 + add r0, #0xc4 + ldr r3, [r0] + mov r5, #0xc + add r0, r3, #0 + add r0, #0x64 + ldrb r0, [r0] + add r2, r0, #0 + mul r2, r5 + add r0, r3, r2 + ldrh r0, [r0, #0xa] + add r3, sp, #0x10 + strh r0, [r3, #2] + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #0 + add r2, #0x64 + ldrb r2, [r2] + mul r5, r2 + add r0, r0, r5 + ldrh r0, [r0, #8] + strh r0, [r3] + mov r0, #1 + str r0, [sp] + add r0, sp, #0x10 + str r1, [sp, #4] + add r0, #2 + str r0, [sp, #8] + add r0, sp, #0x10 + str r0, [sp, #0xc] + mov r0, #0x57 + lsl r0, r0, #2 + ldrh r2, [r3, #2] + ldrh r3, [r3] + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_02001354 + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + add r5, r2, #0 + mul r5, r1 + add r1, sp, #0x10 + add r2, r0, r5 + ldrh r3, [r1, #2] + ldrh r0, [r2, #0xa] + cmp r3, r0 + bne _021EA4C2 + ldrh r1, [r1] + ldrh r0, [r2, #8] + cmp r1, r0 + bne _021EA4C2 + add sp, #0x14 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_021EA4C2: + add r2, sp, #0x10 + ldrh r2, [r2] + add r0, r4, #0 + add r0, #0xf4 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x10 + lsl r2, r2, #0x10 + ldr r0, [r0] + mov r1, #0xb1 + asr r2, r2, #0x10 + bl FUN_0200C714 + add r0, r4, #0 + add r0, #0xc4 + ldr r6, [r0] + add r2, sp, #0x10 + add r0, r6, #0 + add r0, #0x64 + ldrb r0, [r0] + ldrh r5, [r2, #2] + mov r1, #0xc + add r3, r0, #0 + mul r3, r1 + add r0, r6, r3 + strh r5, [r0, #0xa] + add r4, #0xc4 + ldr r3, [r4] + ldrh r2, [r2] + add r0, r3, #0 + add r0, #0x64 + ldrb r0, [r0] + mul r1, r0 + add r0, r3, r1 + strh r2, [r0, #8] + mov r0, #1 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD75_021EA444 + + thumb_func_start MOD75_021EA510 +MOD75_021EA510: ; 0x021EA510 + push {r4, lr} + mov r1, #0x12 + add r4, r0, #0 + bl MOD75_021EA148 + ldr r1, _021EA55C ; =0x00000498 + ldrsh r1, [r4, r1] + cmp r1, #0 + ble _021EA53E + add r0, r4, #0 + mov r1, #2 + bl MOD75_021EA560 + cmp r0, #1 + ldr r0, _021EA55C ; =0x00000498 + bne _021EA536 + ldrsh r1, [r4, r0] + sub r1, r1, #1 + b _021EA538 +_021EA536: + mov r1, #0 +_021EA538: + strh r1, [r4, r0] + mov r0, #1 + pop {r4, pc} +_021EA53E: + bge _021EA55A + add r0, r4, #0 + mov r1, #3 + bl MOD75_021EA560 + cmp r0, #1 + ldr r0, _021EA55C ; =0x00000498 + bne _021EA554 + ldrsh r1, [r4, r0] + add r1, r1, #1 + b _021EA556 +_021EA554: + mov r1, #0 +_021EA556: + strh r1, [r4, r0] + mov r0, #1 +_021EA55A: + pop {r4, pc} + .align 2, 0 +_021EA55C: .word 0x00000498 + thumb_func_end MOD75_021EA510 + + thumb_func_start MOD75_021EA560 +MOD75_021EA560: ; 0x021EA560 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r6, r1, #0 + bl FUN_02001E5C + add r4, r0, #0 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r6, #0 + bl FUN_02001DDC + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001E5C + cmp r4, r0 + beq _021EA590 + mov r0, #1 + pop {r4, r5, r6, pc} +_021EA590: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EA560 + + thumb_func_start MOD75_021EA594 +MOD75_021EA594: ; 0x021EA594 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + mov r1, #0x12 + add r5, r0, #0 + add r6, r2, #0 + bl MOD75_021EA148 + ldr r7, _021EA5FC ; =0x00000498 + mov r1, #0 + ldrsh r2, [r5, r7] + ldrsh r3, [r4, r1] + cmp r2, #0 + ble _021EA5D4 + sub r0, r2, #1 + strh r0, [r5, r7] + ldrsh r0, [r4, r1] + add r0, r0, #1 + strh r0, [r4] + ldrsh r0, [r4, r1] + cmp r0, r6 + ble _021EA5C2 + mov r0, #1 + strh r0, [r4] +_021EA5C2: + mov r0, #0 + ldrsh r1, [r4, r0] + cmp r1, r3 + beq _021EA5F8 + ldr r0, _021EA600 ; =0x00000638 + bl FUN_020054C8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021EA5D4: + bge _021EA5F8 + add r0, r2, #1 + strh r0, [r5, r7] + ldrsh r0, [r4, r1] + sub r0, r0, #1 + strh r0, [r4] + ldrsh r0, [r4, r1] + cmp r0, #0 + bgt _021EA5E8 + strh r6, [r4] +_021EA5E8: + mov r0, #0 + ldrsh r1, [r4, r0] + cmp r1, r3 + beq _021EA5F8 + ldr r0, _021EA600 ; =0x00000638 + bl FUN_020054C8 + mov r0, #1 +_021EA5F8: + pop {r3, r4, r5, r6, r7, pc} + nop +_021EA5FC: .word 0x00000498 +_021EA600: .word 0x00000638 + thumb_func_end MOD75_021EA594 + + thumb_func_start MOD75_021EA604 +MOD75_021EA604: ; 0x021EA604 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #0x11 + str r0, [sp, #4] + mov r0, #0x12 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + mov r0, #1 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, r4, #4 + mov r2, #2 + mov r3, #0xe + bl FUN_02019064 + mov r0, #0x12 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA780 ; =0x00000133 + add r1, r4, #0 + str r0, [sp, #0x10] + mov r2, #0 + ldr r0, [r4] + add r1, #0x14 + add r3, r2, #0 + bl FUN_02019064 + mov r0, #0xd + str r0, [sp] + mov r0, #0x24 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _021EA784 ; =0x000001F3 + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x24 + mov r2, #2 + mov r3, #0 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0xe + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xb + str r0, [sp, #0xc] + ldr r0, _021EA788 ; =0x0000025F + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x34 + mov r2, #0 + mov r3, #6 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0xd + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xb + str r0, [sp, #0xc] + ldr r0, _021EA788 ; =0x0000025F + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x44 + mov r2, #0 + mov r3, #6 + bl FUN_02019064 + mov r0, #0xb + str r0, [sp] + mov r0, #0xc + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _021EA78C ; =0x00000297 + add r1, r4, #0 + str r0, [sp, #0x10] + mov r2, #0 + ldr r0, [r4] + add r1, #0x54 + add r3, r2, #0 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xb + str r0, [sp, #0xc] + ldr r0, _021EA790 ; =0x000002AF + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x64 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r0, #0xd + str r0, [sp] + mov r0, #0xc + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA794 ; =0x00000337 + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x74 + mov r2, #0 + mov r3, #0x13 + bl FUN_02019064 + mov r3, #1 + add r1, r4, #0 + str r3, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA798 ; =0x00000367 + add r1, #0x84 + str r0, [sp, #0x10] + ldr r0, [r4] + mov r2, #0 + bl FUN_02019064 + mov r0, #0x13 + str r0, [sp] + mov r0, #7 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA79C ; =0x00000387 + add r1, r4, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x94 + mov r2, #0 + mov r3, #0x18 + bl FUN_02019064 + mov r0, #0xc + str r0, [sp] + mov r0, #0xb + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EA79C ; =0x00000387 + mov r2, #0 + str r0, [sp, #0x10] + ldr r0, [r4] + add r4, #0xa4 + add r1, r4, #0 + mov r3, #1 + bl FUN_02019064 + add sp, #0x14 + pop {r3, r4, pc} + nop +_021EA780: .word 0x00000133 +_021EA784: .word 0x000001F3 +_021EA788: .word 0x0000025F +_021EA78C: .word 0x00000297 +_021EA790: .word 0x000002AF +_021EA794: .word 0x00000337 +_021EA798: .word 0x00000367 +_021EA79C: .word 0x00000387 + thumb_func_end MOD75_021EA604 + + thumb_func_start MOD75_021EA7A0 +MOD75_021EA7A0: ; 0x021EA7A0 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021EA7A6: + lsl r0, r4, #4 + add r0, r5, r0 + bl FUN_02019178 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0xb + blo _021EA7A6 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021EA7A0 + + thumb_func_start MOD75_021EA7BC +MOD75_021EA7BC: ; 0x021EA7BC + push {r3, r4, r5, r6, r7, lr} + mov r2, #0x57 + add r5, r0, #0 + mov r0, #1 + mov r1, #0x1a + lsl r2, r2, #2 + mov r3, #6 + bl FUN_0200A86C + ldr r7, _021EA7F4 ; =0x00000404 + add r6, r0, #0 + mov r4, #0 +_021EA7D4: + add r0, r6, #0 + add r1, r4, #0 + bl FUN_0200A914 + lsl r1, r4, #2 + add r1, r5, r1 + str r0, [r1, r7] + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #8 + blo _021EA7D4 + add r0, r6, #0 + bl FUN_0200A8B8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021EA7F4: .word 0x00000404 + thumb_func_end MOD75_021EA7BC + + thumb_func_start MOD75_021EA7F8 +MOD75_021EA7F8: ; 0x021EA7F8 + push {r4, r5, r6, lr} + ldr r6, _021EA818 ; =0x00000404 + add r5, r0, #0 + mov r4, #0 +_021EA800: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, r6] + bl FUN_02021A20 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #8 + blo _021EA800 + pop {r4, r5, r6, pc} + nop +_021EA818: .word 0x00000404 + thumb_func_end MOD75_021EA7F8 + + thumb_func_start MOD75_021EA81C +MOD75_021EA81C: ; 0x021EA81C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r4, #0 + mov r6, #0xd + mov r7, #1 +_021EA828: + str r6, [sp] + ldr r2, _021EA878 ; =0x000001FF + str r7, [sp, #4] + add r2, r4, r2 + lsl r2, r2, #0x10 + lsl r3, r4, #0x18 + str r7, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, [r5] + mov r1, #2 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_02018540 + mov r0, #0xe + str r0, [sp] + mov r0, #1 + ldr r2, _021EA87C ; =0x00000223 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #3 + add r2, r4, r2 + str r0, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r4, #0x18 + ldr r0, [r5] + mov r1, #2 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_02018540 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0xc + blo _021EA828 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EA878: .word 0x000001FF +_021EA87C: .word 0x00000223 + thumb_func_end MOD75_021EA81C + + thumb_func_start MOD75_021EA880 +MOD75_021EA880: ; 0x021EA880 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #0 + add r4, r2, #0 + add r2, r0, #0 + add r6, r1, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #2 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EA8B8 ; =0x00010200 + lsr r3, r3, #1 + add r5, #0x24 + str r0, [sp, #8] + mov r1, #0 + add r0, r5, #0 + add r2, r6, #0 + sub r3, r4, r3 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021EA8B8: .word 0x00010200 + thumb_func_end MOD75_021EA880 + + thumb_func_start MOD75_021EA8BC +MOD75_021EA8BC: ; 0x021EA8BC + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + add r0, #0x24 + mov r1, #0 + bl FUN_02019620 + add r2, r4, #0 + add r2, #0xc4 + ldr r6, [r2] + ldr r1, _021EA94C ; =0x00000429 + add r2, r6, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + add r0, r4, r1 + add r5, r3, #0 + mul r5, r2 + add r3, r6, r5 + ldrb r3, [r3, #0xc] + lsl r3, r3, #2 + add r5, r4, r3 + add r3, r1, #0 + sub r3, #0x25 + ldr r7, [r5, r3] + ldrb r3, [r0] + sub r1, #0x25 + add r5, r3, #0 + mul r5, r2 + add r3, r6, r5 + ldrb r3, [r3, #0xc] + lsl r3, r3, #2 + add r3, r4, r3 + ldr r1, [r3, r1] + ldrb r3, [r0, #1] + ldrb r0, [r0, #3] + cmp r3, #0 + bne _021EA91E + mul r2, r0 + add r2, #0x92 + lsl r0, r2, #0x10 + lsr r5, r0, #0x10 + add r2, r5, #0 + sub r2, #0x60 + lsl r2, r2, #0x10 + add r0, r4, #0 + lsr r2, r2, #0x10 + bl MOD75_021EA880 + b _021EA936 +_021EA91E: + mul r2, r0 + mov r0, #0x92 + sub r0, r0, r2 + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r2, r5, #0 + add r2, #0x60 + lsl r2, r2, #0x10 + add r0, r4, #0 + lsr r2, r2, #0x10 + bl MOD75_021EA880 +_021EA936: + add r0, r4, #0 + add r1, r7, #0 + add r2, r5, #0 + bl MOD75_021EA880 + add r4, #0x24 + add r0, r4, #0 + bl FUN_02019548 + pop {r3, r4, r5, r6, r7, pc} + nop +_021EA94C: .word 0x00000429 + thumb_func_end MOD75_021EA8BC + + thumb_func_start MOD75_021EA950 +MOD75_021EA950: ; 0x021EA950 + push {r3, r4, r5, lr} + add r0, #0xd4 + ldr r0, [r0] + add r5, r1, #0 + mov r1, #0x11 + mov r2, #6 + bl FUN_02006704 + add r1, r5, #0 + add r4, r0, #0 + bl FUN_020B0030 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021EA950 + + thumb_func_start MOD75_021EA96C +MOD75_021EA96C: ; 0x021EA96C + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r4, r1, #0 + add r1, sp, #0x18 + add r5, r0, #0 + add r6, r2, #0 + bl MOD75_021EA950 + add r7, r0, #0 + cmp r6, #1 + bne _021EA998 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + mov r0, #0xc + mul r0, r4 + add r0, r1, r0 + ldrb r0, [r0, #0xc] + lsl r0, r0, #5 + add r0, #0x10 + lsl r0, r0, #0x18 + b _021EA9A8 +_021EA998: + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + mov r0, #0xc + mul r0, r4 + add r0, r1, r0 + ldrb r0, [r0, #0xc] + lsl r0, r0, #0x1d +_021EA9A8: + lsr r2, r0, #0x18 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x10 + ldr r1, _021EA9F4 ; =0x00000427 + str r0, [sp, #4] + ldrb r0, [r5, r1] + add r1, r1, #1 + ldrb r1, [r5, r1] + add r3, r1, #0 + mul r3, r4 + add r0, r0, r3 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + mov r0, #0xa + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [sp, #0x18] + add r0, r5, #0 + ldr r1, [r1, #0x14] + add r0, #0x54 + mov r3, #0 + bl FUN_02019658 + add r5, #0x54 + add r0, r5, #0 + bl FUN_02019220 + mov r0, #6 + add r1, r7, #0 + bl FUN_02016A8C + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021EA9F4: .word 0x00000427 + thumb_func_end MOD75_021EA96C + + thumb_func_start MOD75_021EA9F8 +MOD75_021EA9F8: ; 0x021EA9F8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + add r1, sp, #0x1c + bl MOD75_021EA950 + str r0, [sp, #0x18] + add r0, r5, #0 + add r0, #0x54 + mov r1, #0 + bl FUN_02019620 + ldr r0, _021EAAA0 ; =0x00000424 + mov r4, #0 + ldrb r0, [r5, r0] + cmp r0, #0 + bls _021EAA8C + mov r7, #1 + add r6, r5, #0 + lsl r7, r7, #8 + add r6, #0x54 +_021EAA22: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r1, r0, #0 + add r1, #0x64 + ldrb r1, [r1] + cmp r4, r1 + bne _021EAA42 + mov r1, #0xc + mul r1, r4 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + lsl r0, r0, #5 + add r0, #0x10 + lsl r0, r0, #0x18 + b _021EAA4C +_021EAA42: + mov r1, #0xc + mul r1, r4 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + lsl r0, r0, #0x1d +_021EAA4C: + lsr r2, r0, #0x18 + str r7, [sp] + mov r0, #0x10 + str r0, [sp, #4] + ldr r0, _021EAAA4 ; =0x00000427 + ldrb r3, [r5, r0] + add r0, r0, #1 + ldrb r0, [r5, r0] + add r1, r0, #0 + mul r1, r4 + add r0, r3, r1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + mov r0, #0xa + str r0, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [sp, #0x1c] + add r0, r6, #0 + ldr r1, [r1, #0x14] + mov r3, #0 + bl FUN_02019658 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + ldr r0, _021EAAA0 ; =0x00000424 + ldrb r0, [r5, r0] + cmp r4, r0 + blo _021EAA22 +_021EAA8C: + add r5, #0x54 + add r0, r5, #0 + bl FUN_02019220 + ldr r1, [sp, #0x18] + mov r0, #6 + bl FUN_02016A8C + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021EAAA0: .word 0x00000424 +_021EAAA4: .word 0x00000427 + thumb_func_end MOD75_021EA9F8 + + thumb_func_start MOD75_021EAAA8 +MOD75_021EAAA8: ; 0x021EAAA8 + push {r3, r4, r5, lr} + lsl r1, r1, #0x10 + add r4, r2, #0 + lsr r1, r1, #0x10 + mov r2, #0 + add r5, r0, #0 + bl MOD75_021E7420 + add r2, r0, #0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200AE38 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021EAAA8 + + thumb_func_start MOD75_021EAAC8 +MOD75_021EAAC8: ; 0x021EAAC8 + push {r3, r4, r5, lr} + lsl r1, r1, #0x10 + add r4, r2, #0 + lsr r1, r1, #0x10 + mov r2, #0 + add r5, r0, #0 + bl MOD75_021E7420 + add r2, r0, #0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200AEA8 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021EAAC8 + + thumb_func_start MOD75_021EAAE8 +MOD75_021EAAE8: ; 0x021EAAE8 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r0, _021EAB3C ; =0x0000FFFF + add r6, r1, #0 + cmp r6, r0 + beq _021EAB0A + mov r0, #0x82 + mov r1, #6 + bl FUN_020219F4 + add r1, r6, #0 + mov r2, #6 + add r4, r0, #0 + bl FUN_0206E790 + b _021EAB18 +_021EAB0A: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5e + bl FUN_0200A914 + add r4, r0, #0 +_021EAB18: + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAB40 ; =0x000F0E00 + add r5, #0x14 + str r0, [sp, #8] + add r0, r5, #0 + add r2, r4, #0 + mov r3, #0x28 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021EAB3C: .word 0x0000FFFF +_021EAB40: .word 0x000F0E00 + thumb_func_end MOD75_021EAAE8 + + thumb_func_start MOD75_021EAB44 +MOD75_021EAB44: ; 0x021EAB44 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + add r4, r5, #0 + add r0, r1, #0 + add r4, #0x14 + bl FUN_0206EA30 + str r0, [sp, #0x10] + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x62 + bl FUN_0200A914 + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + add r2, r6, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x56 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r2, r6, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x59 + bl FUN_0200A914 + add r6, r0, #0 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + add r2, r6, #0 + str r0, [sp, #8] + add r0, r4, #0 + mov r3, #0x60 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x57 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r2, r6, #0 + mov r3, #0x60 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x58 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x20 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r1, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r2, r6, #0 + mov r3, #0x60 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, [sp, #0x10] + mov r1, #0 + bl FUN_0206AB30 + add r7, r0, #0 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5a + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + add r2, r7, #0 + mov r3, #2 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r2, #0xfe + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + mov r3, #0x30 + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + mov r1, #2 + bl FUN_0206AB18 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + cmp r7, #1 + bhi _021EACBA + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x18 + bl FUN_0200A914 + b _021EACC6 +_021EACBA: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5b + bl FUN_0200A914 +_021EACC6: + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r2, r7, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r2, #0xfe + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + mov r3, #0xa0 + bl FUN_0201BDE0 + ldr r0, [sp, #0x10] + mov r1, #4 + bl FUN_0206AB18 + lsl r0, r0, #0x10 + lsr r7, r0, #0x10 + bne _021EAD30 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x18 + bl FUN_0200A914 + b _021EAD3C +_021EAD30: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x5b + bl FUN_0200A914 +_021EAD3C: + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r2, r7, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x20 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EAD90 ; =0x000F0E00 + mov r2, #0xfe + str r0, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + mov r3, #0xa0 + bl FUN_0201BDE0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021EAD90: .word 0x000F0E00 + thumb_func_end MOD75_021EAB44 + + thumb_func_start MOD75_021EAD94 +MOD75_021EAD94: ; 0x021EAD94 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x26 + bl FUN_0200A914 + mov r1, #0xff + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x25 + bl FUN_0200A914 + mov r1, #1 + lsl r1, r1, #0xa + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021EAD94 + + thumb_func_start MOD75_021EADC0 +MOD75_021EADC0: ; 0x021EADC0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xff + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #1 + lsl r0, r0, #0xa + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD75_021EADC0 + + thumb_func_start MOD75_021EADDC +MOD75_021EADDC: ; 0x021EADDC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + str r1, [sp, #0x10] + add r0, #0xc4 + ldr r0, [r0] + add r4, r2, #0 + add r1, r0, #0 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + add r6, r3, #0 + mul r1, r2 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + cmp r0, #3 + str r4, [sp] + bne _021EAE18 + mov r2, #0xff + str r2, [sp, #4] + str r6, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r5, #4 + mov r3, #0x73 + bl FUN_0201BDE0 + b _021EAE2E +_021EAE18: + mov r2, #0xff + str r2, [sp, #4] + str r6, [sp, #8] + mov r1, #0 + str r1, [sp, #0xc] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r5, #4 + mov r3, #0x6d + bl FUN_0201BDE0 +_021EAE2E: + mov r0, #0xa + mov r1, #6 + bl FUN_020219F4 + mov r1, #0 + add r7, r0, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r2, [sp, #0x10] + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r2, #1 + lsl r0, r0, #2 + lsl r2, r2, #0xa + ldr r0, [r5, r0] + ldr r2, [r5, r2] + add r1, r7, #0 + bl FUN_0200B7B8 + mov r0, #0 + add r1, r7, #0 + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + str r4, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r4, #0x86 + str r6, [sp, #8] + mov r1, #0 + add r0, r5, #4 + add r2, r7, #0 + sub r3, r4, r3 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD75_021EADDC + + thumb_func_start MOD75_021EAE90 +MOD75_021EAE90: ; 0x021EAE90 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r6, r1, #0 + add r4, r2, #0 + add r5, r0, #0 + mov r0, #0x69 + ldrh r2, [r6] + lsl r0, r0, #2 + cmp r2, r0 + bhs _021EAEDA + add r1, r0, #0 + sub r1, #0x5d + sub r1, r2, r1 + lsl r1, r1, #0x10 + lsr r2, r1, #0x10 + mov r1, #2 + str r1, [sp] + add r3, r5, #4 + str r3, [sp, #4] + mov r3, #0 + str r3, [sp, #8] + add r3, r4, #5 + str r3, [sp, #0xc] + sub r0, #0x94 + ldr r0, [r5, r0] + add r3, r1, #0 + bl FUN_0200BA78 + lsl r2, r4, #0x10 + ldrh r1, [r6, #2] + ldr r3, _021EAF08 ; =0x00010200 + add r0, r5, #0 + lsr r2, r2, #0x10 + bl MOD75_021EADDC + add sp, #0x10 + pop {r4, r5, r6, pc} +_021EAEDA: + sub r1, r0, #1 + sub r1, r2, r1 + add r2, r5, #4 + str r2, [sp] + mov r2, #0x10 + str r2, [sp, #4] + add r2, r4, #5 + str r2, [sp, #8] + sub r0, #0x94 + lsl r1, r1, #0x10 + ldr r0, [r5, r0] + lsr r1, r1, #0x10 + mov r2, #2 + mov r3, #1 + bl FUN_0200B9EC + add r0, r5, #0 + add r1, r4, #0 + bl MOD75_021EAF70 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021EAF08: .word 0x00010200 + thumb_func_end MOD75_021EAE90 + + thumb_func_start MOD75_021EAF0C +MOD75_021EAF0C: ; 0x021EAF0C + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r1, #0 + add r5, r0, #0 + ldrh r0, [r4] + add r6, r2, #0 + bl FUN_0206EB0C + mov r1, #2 + add r2, r0, #0 + str r1, [sp] + add r0, r5, #4 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + add r0, r6, #5 + str r0, [sp, #0xc] + mov r0, #0x11 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r2, r2, #1 + add r3, r1, #0 + bl FUN_0200BA78 + lsl r2, r6, #0x10 + ldrh r1, [r4, #2] + ldr r3, _021EAF50 ; =0x00010200 + add r0, r5, #0 + lsr r2, r2, #0x10 + bl MOD75_021EADDC + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021EAF50: .word 0x00010200 + thumb_func_end MOD75_021EAF0C + + thumb_func_start MOD75_021EAF54 +MOD75_021EAF54: ; 0x021EAF54 + push {r3, r4, r5, lr} + add r0, #0xd4 + ldr r0, [r0] + add r5, r1, #0 + mov r1, #0x26 + mov r2, #6 + bl FUN_02006704 + add r1, r5, #0 + add r4, r0, #0 + bl FUN_020B0030 + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD75_021EAF54 + + thumb_func_start MOD75_021EAF70 +MOD75_021EAF70: ; 0x021EAF70 + push {r3, r4, r5, r6, lr} + sub sp, #0x1c + add r4, r1, #0 + add r1, sp, #0x18 + add r5, r0, #0 + bl MOD75_021EAF54 + add r6, r0, #0 + mov r0, #0x40 + str r0, [sp] + mov r0, #0x10 + lsl r1, r4, #0x10 + str r0, [sp, #4] + mov r3, #0 + str r3, [sp, #8] + lsr r1, r1, #0x10 + str r1, [sp, #0xc] + mov r1, #0x18 + str r1, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [sp, #0x18] + add r0, r5, #4 + ldr r1, [r1, #0x14] + mov r2, #0x28 + bl FUN_02019658 + mov r0, #6 + add r1, r6, #0 + bl FUN_02016A8C + add sp, #0x1c + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD75_021EAF70 + + thumb_func_start MOD75_021EAFB0 +MOD75_021EAFB0: ; 0x021EAFB0 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #0x45 + lsl r0, r0, #2 + add r4, r1, #0 + ldr r0, [r5, r0] + mov r1, #0x29 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x88 + str r0, [sp] + mov r0, #0x10 + mov r1, #0 + lsl r3, r4, #0x10 + str r0, [sp, #4] + add r0, r5, #4 + add r2, r1, #0 + lsr r3, r3, #0x10 + bl FUN_020196F4 + mov r1, #0 + str r4, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EB000 ; =0x00010200 + add r2, r6, #0 + str r0, [sp, #8] + add r0, r5, #4 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021EB000: .word 0x00010200 + thumb_func_end MOD75_021EAFB0 + + thumb_func_start MOD75_021EB004 +MOD75_021EB004: ; 0x021EB004 + push {r3, r4, r5, r6, lr} + sub sp, #0x1c + add r4, r1, #0 + add r1, sp, #0x18 + add r5, r0, #0 + bl MOD75_021EAF54 + add r6, r0, #0 + mov r0, #0x40 + str r0, [sp] + mov r0, #0x10 + mov r2, #0 + str r0, [sp, #4] + mov r1, #0x60 + str r1, [sp, #8] + lsl r1, r4, #0x10 + lsr r1, r1, #0x10 + str r1, [sp, #0xc] + mov r1, #0x28 + str r1, [sp, #0x10] + str r0, [sp, #0x14] + ldr r1, [sp, #0x18] + add r0, r5, #4 + ldr r1, [r1, #0x14] + add r3, r2, #0 + bl FUN_02019658 + mov r0, #6 + add r1, r6, #0 + bl FUN_02016A8C + add sp, #0x1c + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD75_021EB004 + + thumb_func_start MOD75_021EB048 +MOD75_021EB048: ; 0x021EB048 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200A914 + mov r1, #0x49 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x10 + ldr r0, [r4, r1] + mov r1, #6 + bl FUN_0200A914 + mov r1, #0x4a + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x14 + ldr r0, [r4, r1] + mov r1, #0x10 + bl FUN_0200A914 + mov r1, #0x4b + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x5f + bl FUN_0200A914 + mov r1, #0x13 + lsl r1, r1, #4 + str r0, [r4, r1] + sub r1, #0x1c + ldr r0, [r4, r1] + mov r1, #0x60 + bl FUN_0200A914 + mov r1, #0x4d + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x20 + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_0200A914 + mov r1, #0x4e + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x24 + ldr r0, [r4, r1] + mov r1, #2 + bl FUN_0200A914 + mov r1, #0x4f + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x28 + ldr r0, [r4, r1] + mov r1, #0x12 + bl FUN_0200A914 + mov r1, #5 + lsl r1, r1, #6 + str r0, [r4, r1] + sub r1, #0x2c + ldr r0, [r4, r1] + mov r1, #3 + bl FUN_0200A914 + mov r1, #0x51 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x30 + ldr r0, [r4, r1] + mov r1, #4 + bl FUN_0200A914 + mov r1, #0x52 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x34 + ldr r0, [r4, r1] + mov r1, #5 + bl FUN_0200A914 + mov r1, #0x53 + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, #0x38 + ldr r0, [r4, r1] + mov r1, #8 + bl FUN_0200A914 + mov r1, #0x15 + lsl r1, r1, #4 + str r0, [r4, r1] + pop {r4, pc} + thumb_func_end MOD75_021EB048 + + thumb_func_start MOD75_021EB110 +MOD75_021EB110: ; 0x021EB110 + push {r4, r5, r6, lr} + mov r6, #0x49 + add r5, r0, #0 + mov r4, #0 + lsl r6, r6, #2 +_021EB11A: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, r6] + bl FUN_02021A20 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0xc + blo _021EB11A + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EB110 + + thumb_func_start MOD75_021EB130 +MOD75_021EB130: ; 0x021EB130 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + add r5, r0, #0 + add r0, #0xc4 + ldr r0, [r0] + add r6, r1, #0 + add r1, r0, #0 + add r1, #0x64 + add r7, r2, #0 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + cmp r0, #4 + bne _021EB180 + lsl r0, r7, #1 + mov r3, #0x17 + sub r1, r3, r0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp] + mov r1, #8 + lsl r0, r0, #0x18 + str r1, [sp, #4] + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EB338 ; =0x00000337 + add r1, r5, #0 + str r0, [sp, #0x10] + ldr r0, [r5] + add r1, #0xb4 + mov r2, #0 + bl FUN_02019064 + mov r0, #4 + str r0, [sp, #0x14] + b _021EB1B0 +_021EB180: + lsl r0, r7, #1 + mov r1, #0x17 + sub r1, r1, r0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp] + mov r1, #7 + lsl r0, r0, #0x18 + str r1, [sp, #4] + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + ldr r0, _021EB338 ; =0x00000337 + add r1, r5, #0 + str r0, [sp, #0x10] + ldr r0, [r5] + add r1, #0xb4 + mov r2, #0 + mov r3, #0x18 + bl FUN_02019064 + mov r0, #3 + str r0, [sp, #0x14] +_021EB1B0: + add r0, r7, #0 + mov r1, #6 + bl FUN_02012838 + mov r1, #0x55 + lsl r1, r1, #2 + mov r4, #0 + str r0, [r5, r1] + cmp r7, #0 + ble _021EB1EC +_021EB1C4: + ldrb r0, [r6, r4] + bl MOD75_021E8E10 + ldrb r1, [r6, r4] + add r2, r0, #0 + mov r0, #0x55 + lsl r1, r1, #2 + add r3, r5, r1 + mov r1, #0x49 + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r3, r1] + bl FUN_020128A0 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r7 + blt _021EB1C4 +_021EB1EC: + mov r0, #0x55 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + str r0, [sp, #0x1c] + add r0, r5, #0 + add r0, #0xb4 + str r0, [sp, #0x20] + add r0, sp, #0x1c + strb r1, [r0, #8] + mov r1, #1 + strb r1, [r0, #9] + strb r7, [r0, #0xa] + ldrb r2, [r0, #0xb] + mov r1, #0xf + bic r2, r1 + strb r2, [r0, #0xb] + ldrb r2, [r0, #0xb] + mov r1, #0x30 + bic r2, r1 + strb r2, [r0, #0xb] + cmp r7, #4 + ldrb r2, [r0, #0xb] + blo _021EB228 + mov r1, #0xc0 + bic r2, r1 + mov r1, #0x40 + orr r1, r2 + strb r1, [r0, #0xb] + b _021EB22E +_021EB228: + mov r1, #0xc0 + bic r2, r1 + strb r2, [r0, #0xb] +_021EB22E: + mov r0, #6 + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #0x1c + mov r1, #8 + add r3, r2, #0 + bl FUN_02001B8C + mov r1, #0x56 + lsl r1, r1, #2 + str r0, [r5, r1] + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + mov r3, #0xc + add r0, r2, #0 + add r0, #0x64 + ldrb r0, [r0] + add r1, r0, #0 + mul r1, r3 + add r0, r2, r1 + ldrb r0, [r0, #0xc] + cmp r0, #3 + bne _021EB298 + add r0, r5, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x66 + ldrh r1, [r1] + bl MOD75_021EAB44 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019220 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x66 + ldrh r1, [r1] + mov r2, #1 + bl MOD75_021EC2B8 + b _021EB31E +_021EB298: + ldr r0, [sp, #0x14] + add r4, r5, #4 + lsl r6, r0, #4 + ldr r2, _021EB33C ; =0x000003D9 + add r0, r4, r6 + mov r1, #1 + bl FUN_0200D0BC + add r0, r4, r6 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x2a + bl FUN_0200A914 + str r0, [sp, #0x18] + mov r0, #0x38 + mov r1, #6 + bl FUN_020219F4 + add r7, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r1, #4 + add r1, #0x64 + ldrb r2, [r1] + mov r1, #0xc + mul r1, r2 + add r1, r0, r1 + ldrh r2, [r1, #6] + ldrh r1, [r1, #4] + add r0, r5, #0 + add r1, r2, r1 + sub r1, r1, #1 + mov r2, #0 + bl MOD75_021EAAA8 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r2, [sp, #0x18] + add r1, r7, #0 + bl FUN_0200B7B8 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r4, r6 + mov r1, #1 + add r2, r7, #0 + str r3, [sp, #8] + bl FUN_0201BD84 + add r0, r7, #0 + bl FUN_02021A20 + ldr r0, [sp, #0x18] + bl FUN_02021A20 + add r0, r4, r6 + bl FUN_02019220 +_021EB31E: + add r0, r5, #0 + ldr r2, _021EB340 ; =0x000003F7 + add r0, #0xb4 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + add r5, #0xb4 + add r0, r5, #0 + bl FUN_02019220 + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021EB338: .word 0x00000337 +_021EB33C: .word 0x000003D9 +_021EB340: .word 0x000003F7 + thumb_func_end MOD75_021EB130 + + thumb_func_start MOD75_021EB344 +MOD75_021EB344: ; 0x021EB344 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r2, #0 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r0, r2, r0 + ldrb r0, [r0, #0xc] + cmp r0, #4 + bne _021EB362 + mov r1, #4 + b _021EB364 +_021EB362: + mov r1, #3 +_021EB364: + cmp r0, #3 + beq _021EB37A + lsl r6, r1, #4 + add r4, r5, #4 + add r0, r4, r6 + mov r1, #1 + bl FUN_0200D0E0 + add r0, r4, r6 + bl FUN_0201958C +_021EB37A: + add r0, r5, #0 + add r0, #0xb4 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r5, #0 + add r0, #0xb4 + bl FUN_0201958C + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + mov r0, #0x55 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02012870 + add r0, r5, #0 + add r0, #0xb4 + bl FUN_02019178 + add r0, r5, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x66 + ldrh r1, [r1] + bl MOD75_021EAAE8 + add r0, r5, #0 + add r0, #0x14 + bl FUN_02019220 + mov r1, #0 + add r0, r5, #0 + add r2, r1, #0 + bl MOD75_021EC2B8 + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EB344 + + thumb_func_start MOD75_021EB3D8 +MOD75_021EB3D8: ; 0x021EB3D8 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + add r0, #0x14 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x2d + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x82 + mov r1, #6 + bl FUN_020219F4 + ldr r1, _021EB44C ; =0x0000047B + add r4, r0, #0 + ldrb r1, [r5, r1] + add r0, r5, #0 + mov r2, #0 + sub r1, r1, #1 + bl MOD75_021EAAA8 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0200B7B8 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021EB450 ; =0x000F0E00 + add r2, r4, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x14 + mov r3, #0x28 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r5, #0x14 + add r0, r5, #0 + bl FUN_02019220 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_021EB44C: .word 0x0000047B +_021EB450: .word 0x000F0E00 + thumb_func_end MOD75_021EB3D8 + + thumb_func_start MOD75_021EB454 +MOD75_021EB454: ; 0x021EB454 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + ldr r2, _021EB4FC ; =0x000003F7 + add r5, r0, #0 + add r0, #0x94 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + add r0, r5, #0 + bl MOD75_021EB504 + add r0, r5, #0 + ldr r2, _021EB500 ; =0x000003D9 + add r0, #0x34 + mov r1, #1 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r5, #0 + add r0, #0x34 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x34 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #0x38 + mov r1, #6 + bl FUN_020219F4 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r1, r2, r0 + ldrh r2, [r1, #6] + ldrh r1, [r1, #4] + add r0, r5, #0 + add r1, r2, r1 + sub r1, r1, #1 + mov r2, #0 + bl MOD75_021EAAA8 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0200B7B8 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0x34 + mov r1, #1 + add r2, r4, #0 + str r3, [sp, #8] + bl FUN_0201BD84 + add r5, #0x34 + add r0, r5, #0 + bl FUN_02019220 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021EB4FC: .word 0x000003F7 +_021EB500: .word 0x000003D9 + thumb_func_end MOD75_021EB454 + + thumb_func_start MOD75_021EB504 +MOD75_021EB504: ; 0x021EB504 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r5, #0 + add r4, #0x94 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x54 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021EB57C ; =0x00000488 + mov r0, #0x46 + lsl r0, r0, #2 + ldrsh r2, [r5, r2] + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + mov r3, #0x10 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02019220 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021EB57C: .word 0x00000488 + thumb_func_end MOD75_021EB504 + + thumb_func_start MOD75_021EB580 +MOD75_021EB580: ; 0x021EB580 + push {r4, lr} + add r4, r0, #0 + add r0, #0x34 + mov r1, #1 + bl FUN_0200D0E0 + add r0, r4, #0 + add r0, #0x94 + mov r1, #1 + bl FUN_0200CCF8 + add r0, r4, #0 + add r0, #0x34 + bl FUN_0201958C + add r0, r4, #0 + add r0, #0x94 + bl FUN_0201958C + add r4, #0x14 + add r0, r4, #0 + bl FUN_02019220 + pop {r4, pc} + thumb_func_end MOD75_021EB580 + + thumb_func_start MOD75_021EB5B0 +MOD75_021EB5B0: ; 0x021EB5B0 + push {r3, r4, r5, lr} + sub sp, #8 + ldr r2, _021EB654 ; =0x000003D9 + add r5, r0, #0 + add r0, #0x64 + mov r1, #1 + mov r3, #0xc + bl FUN_0200D0BC + add r0, r5, #0 + add r0, #0x64 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x36 + bl FUN_0200A914 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r2, r0, #4 + add r0, #0x64 + ldrb r1, [r0] + mov r0, #0xc + mul r0, r1 + add r1, r2, r0 + ldr r0, _021EB658 ; =0x00000488 + ldrsh r0, [r5, r0] + cmp r0, #1 + bne _021EB606 + ldrh r2, [r1, #6] + ldrh r1, [r1, #4] + add r0, r5, #0 + add r1, r2, r1 + sub r1, r1, #1 + mov r2, #0 + bl MOD75_021EAAA8 + b _021EB616 +_021EB606: + ldrh r2, [r1, #6] + ldrh r1, [r1, #4] + add r0, r5, #0 + add r1, r2, r1 + sub r1, r1, #1 + mov r2, #0 + bl MOD75_021EAAC8 +_021EB616: + mov r0, #0 + str r0, [sp] + mov r1, #1 + mov r0, #0x46 + ldr r2, _021EB658 ; =0x00000488 + str r1, [sp, #4] + lsl r0, r0, #2 + ldrsh r2, [r5, r2] + ldr r0, [r5, r0] + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r5, #0 + bl MOD75_021EB660 + ldr r1, _021EB65C ; =0x00000426 + strb r0, [r5, r1] + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021EB654: .word 0x000003D9 +_021EB658: .word 0x00000488 +_021EB65C: .word 0x00000426 + thumb_func_end MOD75_021EB5B0 + + thumb_func_start MOD75_021EB660 +MOD75_021EB660: ; 0x021EB660 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #1 + bl FUN_02002B60 + mov r0, #0 + bl FUN_02002B7C + add r0, r4, #0 + add r0, #0xd0 + ldr r0, [r0] + bl FUN_02024FF4 + mov r3, #0 + str r3, [sp] + str r0, [sp, #4] + ldr r0, _021EB69C ; =MOD75_021EB6A0 + mov r2, #0xfe + str r0, [sp, #8] + lsl r2, r2, #2 + add r0, r4, #0 + ldr r2, [r4, r2] + add r0, #0x64 + mov r1, #1 + bl FUN_0201BD84 + add sp, #0xc + pop {r3, r4, pc} + nop +_021EB69C: .word MOD75_021EB6A0 + thumb_func_end MOD75_021EB660 + + thumb_func_start MOD75_021EB6A0 +MOD75_021EB6A0: ; 0x021EB6A0 + push {r3, lr} + cmp r1, #4 + bhi _021EB6D8 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021EB6B2: ; jump table + .short _021EB6D8 - _021EB6B2 - 2 ; case 0 + .short _021EB6BC - _021EB6B2 - 2 ; case 1 + .short _021EB6C2 - _021EB6B2 - 2 ; case 2 + .short _021EB6C8 - _021EB6B2 - 2 ; case 3 + .short _021EB6D0 - _021EB6B2 - 2 ; case 4 +_021EB6BC: + bl FUN_02005514 + pop {r3, pc} +_021EB6C2: + bl FUN_02005CBC + pop {r3, pc} +_021EB6C8: + ldr r0, _021EB6DC ; =0x0000060D + bl FUN_020054C8 + b _021EB6D8 +_021EB6D0: + ldr r0, _021EB6DC ; =0x0000060D + bl FUN_02005508 + pop {r3, pc} +_021EB6D8: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021EB6DC: .word 0x0000060D + thumb_func_end MOD75_021EB6A0 + + thumb_func_start MOD75_021EB6E0 +MOD75_021EB6E0: ; 0x021EB6E0 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #6 + str r0, [sp] + ldr r0, [r4] + ldr r1, _021EB700 ; =0x021EC6AC + ldr r2, _021EB704 ; =0x000003F7 + mov r3, #0xe + bl FUN_02002198 + mov r1, #0x56 + lsl r1, r1, #2 + str r0, [r4, r1] + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021EB700: .word 0x021EC6AC +_021EB704: .word 0x000003F7 + thumb_func_end MOD75_021EB6E0 + + thumb_func_start MOD75_021EB708 +MOD75_021EB708: ; 0x021EB708 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r5, #0 + add r4, #0x74 + cmp r1, #0 + bne _021EB722 + ldr r2, _021EB7FC ; =0x000003F7 + add r0, r4, #0 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 +_021EB722: + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x50 + bl FUN_0200A914 + mov r3, #2 + add r6, r0, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, _021EB800 ; =0x00000488 + mov r0, #0x46 + lsl r0, r0, #2 + ldrsh r2, [r5, r2] + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x51 + bl FUN_0200A914 + add r6, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + ldr r2, _021EB804 ; =0x0000048C + mov r0, #0x46 + ldr r3, [r5, r2] + sub r2, r2, #4 + ldrsh r2, [r5, r2] + lsl r0, r0, #2 + ldr r0, [r5, r0] + mul r2, r3 + mov r1, #0 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r1, #0xfe + lsl r1, r1, #2 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #8 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + mov r5, #0x60 + add r0, r4, #0 + sub r3, r5, r3 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02019220 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021EB7FC: .word 0x000003F7 +_021EB800: .word 0x00000488 +_021EB804: .word 0x0000048C + thumb_func_end MOD75_021EB708 + + thumb_func_start MOD75_021EB808 +MOD75_021EB808: ; 0x021EB808 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r5, #0 + add r4, #0x84 + cmp r1, #0 + bne _021EB854 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + ldr r2, _021EB8E4 ; =0x000003F7 + add r0, r4, #0 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4e + bl FUN_0200A914 + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r4, #0 + add r2, r6, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + b _021EB866 +_021EB854: + mov r0, #0x50 + str r0, [sp] + mov r3, #0x10 + add r0, r4, #0 + mov r1, #0xf + mov r2, #0 + str r3, [sp, #4] + bl FUN_020196F4 +_021EB866: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x4f + bl FUN_0200A914 + add r6, r0, #0 + add r0, r5, #0 + add r0, #0xcc + ldr r0, [r0] + bl FUN_02023A10 + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #6 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r1, #0xfe + lsl r1, r1, #2 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + mov r5, #0x50 + add r0, r4, #0 + sub r3, r5, r3 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02019220 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021EB8E4: .word 0x000003F7 + thumb_func_end MOD75_021EB808 + + thumb_func_start MOD75_021EB8E8 +MOD75_021EB8E8: ; 0x021EB8E8 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r5, #0 + add r4, #0xa4 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + ldr r2, _021EB9B0 ; =0x000003F7 + add r0, r4, #0 + mov r1, #1 + mov r3, #0xe + bl FUN_0200CCA4 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x6c + bl FUN_0200A914 + mov r1, #0 + add r6, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + add r0, r4, #0 + add r2, r6, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x6d + bl FUN_0200A914 + add r6, r0, #0 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_02028048 + bl FUN_020281B8 + add r2, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r0, #0x46 + mov r1, #0xfe + lsl r0, r0, #2 + lsl r1, r1, #2 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + mov r1, #0xfe + lsl r1, r1, #2 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + add r3, r0, #0 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + mov r2, #0xfe + str r1, [sp, #8] + lsl r2, r2, #2 + ldr r2, [r5, r2] + mov r5, #0x58 + add r0, r4, #0 + sub r3, r5, r3 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02019220 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021EB9B0: .word 0x000003F7 + thumb_func_end MOD75_021EB8E8 + + thumb_func_start MOD75_021EB9B4 +MOD75_021EB9B4: ; 0x021EB9B4 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + mov r0, #0x20 + mov r1, #6 + bl FUN_0201C24C + add r0, r4, #0 + bl MOD75_021EB9E4 + add r0, r4, #0 + bl MOD75_021EBA80 + add r0, r4, #0 + bl MOD75_021EBEAC + pop {r4, pc} + thumb_func_end MOD75_021EB9B4 + + thumb_func_start MOD75_021EB9E4 +MOD75_021EB9E4: ; 0x021EB9E4 + push {r3, r4, r5, r6, lr} + sub sp, #0x4c + ldr r3, _021EBA74 ; =0x021EC6D4 + add r2, sp, #0x34 + add r4, r0, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + mov r0, #6 + bl FUN_0200BB14 + add r1, r4, #0 + add r1, #0xd8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + bl FUN_0200BB34 + add r1, r4, #0 + add r1, #0xdc + add r2, sp, #0x14 + ldr r5, _021EBA78 ; =0x021EC6EC + str r0, [r1] + ldmia r5!, {r0, r1} + add r3, r2, #0 + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + ldr r6, _021EBA7C ; =0x021EC6C0 + stmia r2!, {r0, r1} + add r5, sp, #0 + ldmia r6!, {r0, r1} + add r2, r5, #0 + stmia r5!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r5!, {r0, r1} + ldr r0, [r6] + add r1, r3, #0 + str r0, [r5] + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + mov r3, #0x20 + bl FUN_0200BB6C + add r0, r4, #0 + add r1, r4, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xc + bl FUN_0200BBF0 + add r0, r4, #0 + add r0, #0xd8 + add r4, #0xdc + ldr r0, [r0] + ldr r1, [r4] + add r2, sp, #0x34 + bl FUN_0200BF60 + add sp, #0x4c + pop {r3, r4, r5, r6, pc} + nop +_021EBA74: .word 0x021EC6D4 +_021EBA78: .word 0x021EC6EC +_021EBA7C: .word 0x021EC6C0 + thumb_func_end MOD75_021EB9E4 + + thumb_func_start MOD75_021EBA80 +MOD75_021EBA80: ; 0x021EBA80 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r0, _021EBE38 ; =0x00000425 + ldrb r0, [r5, r0] + cmp r0, #0 + bne _021EBA94 + mov r3, #2 + mov r4, #3 + b _021EBA98 +_021EBA94: + mov r3, #0x22 + mov r4, #0x23 +_021EBA98: + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE3C ; =0x0000C0F9 + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE40 ; =0x0000C0FA + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x15 + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE44 ; =0x0000C0FB + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x18 + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE48 ; =0x0000C0FC + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1b + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE4C ; =0x0000C0FD + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #6 + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _021EBE50 ; =0x0000C0FE + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1e + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0xc1 + lsl r0, r0, #8 + str r0, [sp, #8] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x3e + mov r3, #4 + bl FUN_0200C00C + mov r0, #0 + mov r1, #1 + bl FUN_0206E640 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021EBE54 ; =0x0000C0FF + add r1, r5, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C00C + ldr r0, _021EBE58 ; =0x0000C101 + add r1, r5, #0 + str r0, [sp] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #1 + mov r3, #0 + bl FUN_0206E130 + ldr r0, _021EBE5C ; =0x0000C102 + add r1, r5, #0 + str r0, [sp] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #1 + mov r3, #0 + bl FUN_0206E2AC + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, _021EBE3C ; =0x0000C0F9 + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + add r3, r4, #0 + bl FUN_0200C06C + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, _021EBE40 ; =0x0000C0FA + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x10 + bl FUN_0200C06C + mov r0, #0 + mov r1, #2 + bl FUN_0206E640 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, _021EBE48 ; =0x0000C0FC + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C06C + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, _021EBE4C ; =0x0000C0FD + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x3e + mov r3, #0xa + bl FUN_0200C06C + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + ldr r3, _021EBE50 ; =0x0000C0FE + mov r2, #1 + bl FUN_0206E164 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + ldr r0, _021EBE44 ; =0x0000C0FB + add r1, r5, #0 + str r0, [sp, #0xc] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1f + bl FUN_0200C06C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE3C ; =0x0000C0F9 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #1 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE40 ; =0x0000C0FA + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x14 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE44 ; =0x0000C0FB + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x17 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE48 ; =0x0000C0FC + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1a + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE4C ; =0x0000C0FD + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #5 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE50 ; =0x0000C0FE + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1d + bl FUN_0200C124 + bl FUN_0206E708 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE54 ; =0x0000C0FF + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + mov r0, #0xc1 + lsl r0, r0, #8 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x3e + mov r3, #5 + bl FUN_0200C124 + mov r3, #0 + add r1, r5, #0 + ldr r0, _021EBE3C ; =0x0000C0F9 + str r3, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE40 ; =0x0000C0FA + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x13 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE44 ; =0x0000C0FB + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x16 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE48 ; =0x0000C0FC + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x19 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE4C ; =0x0000C0FD + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #4 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE50 ; =0x0000C0FE + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0xd + mov r3, #0x1c + bl FUN_0200C13C + bl FUN_0206E70C + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021EBE54 ; =0x0000C0FF + b _021EBE60 + nop +_021EBE38: .word 0x00000425 +_021EBE3C: .word 0x0000C0F9 +_021EBE40: .word 0x0000C0FA +_021EBE44: .word 0x0000C0FB +_021EBE48: .word 0x0000C0FC +_021EBE4C: .word 0x0000C0FD +_021EBE50: .word 0x0000C0FE +_021EBE54: .word 0x0000C0FF +_021EBE58: .word 0x0000C101 +_021EBE5C: .word 0x0000C102 +_021EBE60: + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + mov r0, #0xc1 + lsl r0, r0, #8 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x3e + mov r3, #6 + bl FUN_0200C13C + add r0, r5, #0 + add r0, #0xd8 + add r5, #0xdc + ldr r2, _021EBEA8 ; =0x0000C101 + ldr r0, [r0] + ldr r1, [r5] + add r3, r2, #0 + bl FUN_0206E1D4 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_021EBEA8: .word 0x0000C101 + thumb_func_end MOD75_021EBA80 + + thumb_func_start MOD75_021EBEAC +MOD75_021EBEAC: ; 0x021EBEAC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r4, _021EBFD8 ; =0x021EC70C + mov r7, #0 + add r6, r5, #0 +_021EBEB8: + add r0, r5, #0 + add r1, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + add r2, r4, #0 + bl FUN_0200C154 + add r1, r6, #0 + add r1, #0xe0 + add r7, r7, #1 + str r0, [r1] + add r4, #0x34 + add r6, r6, #4 + cmp r7, #0xc + blo _021EBEB8 + add r0, r5, #0 + add r0, #0xf4 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C644 + mov r0, #0x43 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + add r0, #0x65 + ldrb r0, [r0] + add r0, #0xfc + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #1 + bhi _021EBF2A + add r0, r5, #0 + add r0, #0xe4 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 +_021EBF2A: + ldr r0, _021EBFDC ; =0x00000424 + ldrb r0, [r5, r0] + cmp r0, #1 + bne _021EBF4A + add r0, r5, #0 + add r0, #0xe8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0xec + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C644 +_021EBF4A: + add r0, r5, #0 + mov r1, #0 + bl MOD75_021EC298 + add r0, r5, #0 + add r0, #0xc4 + ldr r1, [r0] + add r0, r5, #0 + add r2, r1, #0 + add r2, #0x64 + ldrb r3, [r2] + mov r2, #0xc + add r0, #0xe0 + mul r2, r3 + add r1, r1, r2 + ldrb r1, [r1, #0xc] + ldr r0, [r0] + bl FUN_0200C5C0 + add r1, r5, #0 + add r1, #0xc4 + ldr r1, [r1] + add r0, r5, #0 + add r1, #0x64 + ldrb r1, [r1] + bl MOD75_021EC18C + add r1, r0, #0 + add r0, r5, #0 + add r0, #0xe4 + ldr r0, [r0] + mov r2, #0x61 + bl FUN_0200C714 + add r0, r5, #0 + add r0, #0xc4 + ldr r2, [r0] + add r0, r5, #0 + add r3, r2, #0 + add r3, #0x64 + ldrb r4, [r3] + mov r3, #0xc + add r0, #0xf0 + mul r3, r4 + add r2, r2, r3 + ldrh r2, [r2, #8] + ldr r0, [r0] + mov r1, #0xb1 + sub r2, r2, #1 + lsl r2, r2, #4 + add r2, #0x18 + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + bl FUN_0200C714 + ldr r4, _021EBFE0 ; =0x021EC6B4 + add r3, sp, #0 + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r4] + add r1, r2, #0 + add r5, #0xe0 + str r0, [r3] + ldr r0, [r5] + mov r2, #2 + ldr r0, [r0] + bl FUN_02020074 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021EBFD8: .word 0x021EC70C +_021EBFDC: .word 0x00000424 +_021EBFE0: .word 0x021EC6B4 + thumb_func_end MOD75_021EBEAC + + thumb_func_start MOD75_021EBFE4 +MOD75_021EBFE4: ; 0x021EBFE4 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_021EBFEC: + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xc + blo _021EBFEC + add r0, r6, #0 + add r1, r6, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + bl FUN_0200C398 + add r6, #0xd8 + ldr r0, [r6] + bl FUN_0200BD04 + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EBFE4 + + thumb_func_start MOD75_021EC018 +MOD75_021EC018: ; 0x021EC018 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021EC01E: + add r0, r5, #0 + add r0, #0xe0 + ldr r0, [r0] + bl FUN_0200C5A8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xc + blo _021EC01E + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021EC018 + + thumb_func_start MOD75_021EC034 +MOD75_021EC034: ; 0x021EC034 + push {r3, r4, r5, lr} + sub sp, #8 + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #1 + bl FUN_0206E640 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021EC088 ; =0x0000C0FF + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + mov r2, #0x10 + bl FUN_0200C9D8 + add r0, r4, #0 + mov r1, #2 + bl FUN_0206E640 + add r3, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _021EC08C ; =0x0000C0FC + mov r2, #0x10 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r5, #0xdc + ldr r0, [r0] + ldr r1, [r5] + bl FUN_0200CA0C + add sp, #8 + pop {r3, r4, r5, pc} + nop +_021EC088: .word 0x0000C0FF +_021EC08C: .word 0x0000C0FC + thumb_func_end MOD75_021EC034 + + thumb_func_start MOD75_021EC090 +MOD75_021EC090: ; 0x021EC090 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xf0 + ldr r0, [r0] + add r4, r1, #0 + bl FUN_0200C66C + add r5, #0xe4 + ldr r0, [r5] + add r1, r4, #0 + bl FUN_0200C66C + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021EC090 + + thumb_func_start MOD75_021EC0AC +MOD75_021EC0AC: ; 0x021EC0AC + ldr r1, _021EC0C0 ; =0x00000454 + ldrb r0, [r0, r1] + cmp r0, #0 + bne _021EC0B8 + mov r0, #1 + b _021EC0BA +_021EC0B8: + mov r0, #0 +_021EC0BA: + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + .align 2, 0 +_021EC0C0: .word 0x00000454 + thumb_func_end MOD75_021EC0AC + + thumb_func_start MOD75_021EC0C4 +MOD75_021EC0C4: ; 0x021EC0C4 + ldr r1, _021EC0D4 ; =0x00000457 + mov r2, #0 + strb r2, [r0, r1] + ldr r3, _021EC0D8 ; =MOD75_021EC1A4 + mov r2, #1 + sub r1, r1, #3 + strb r2, [r0, r1] + bx r3 + .align 2, 0 +_021EC0D4: .word 0x00000457 +_021EC0D8: .word MOD75_021EC1A4 + thumb_func_end MOD75_021EC0C4 + + thumb_func_start MOD75_021EC0DC +MOD75_021EC0DC: ; 0x021EC0DC + push {r3, lr} + ldr r1, _021EC0F0 ; =0x00000454 + ldrb r1, [r0, r1] + cmp r1, #0 + beq _021EC0EE + cmp r1, #1 + bne _021EC0EE + bl MOD75_021EC0F4 +_021EC0EE: + pop {r3, pc} + .align 2, 0 +_021EC0F0: .word 0x00000454 + thumb_func_end MOD75_021EC0DC + + thumb_func_start MOD75_021EC0F4 +MOD75_021EC0F4: ; 0x021EC0F4 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + add r0, #0xe4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_0202011C + add r3, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + ldr r2, _021EC180 ; =0x00000455 + ldrb r0, [r4, r2] + cmp r0, #0 + bne _021EC12C + add r1, r2, #2 + ldrb r1, [r4, r1] + ldr r0, [sp] + lsl r1, r1, #2 + add r3, r4, r1 + add r1, r2, #3 + ldr r1, [r3, r1] + sub r0, r0, r1 + str r0, [sp] + b _021EC13E +_021EC12C: + add r1, r2, #2 + ldrb r1, [r4, r1] + ldr r0, [sp] + lsl r1, r1, #2 + add r3, r4, r1 + add r1, r2, #3 + ldr r1, [r3, r1] + add r0, r0, r1 + str r0, [sp] +_021EC13E: + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + add r1, sp, #0 + ldr r0, [r0] + bl FUN_02020044 + ldr r1, _021EC184 ; =0x00000457 + ldrb r0, [r4, r1] + add r0, r0, #1 + strb r0, [r4, r1] + ldrb r0, [r4, r1] + cmp r0, #8 + bne _021EC17C + add r1, #0x21 + ldrb r1, [r4, r1] + add r0, r4, #0 + bl MOD75_021EC18C + lsl r0, r0, #0xc + str r0, [sp] + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + add r1, sp, #0 + ldr r0, [r0] + bl FUN_02020044 + ldr r0, _021EC188 ; =0x00000454 + mov r1, #0 + strb r1, [r4, r0] +_021EC17C: + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_021EC180: .word 0x00000455 +_021EC184: .word 0x00000457 +_021EC188: .word 0x00000454 + thumb_func_end MOD75_021EC0F4 + + thumb_func_start MOD75_021EC18C +MOD75_021EC18C: ; 0x021EC18C + ldr r2, _021EC1A0 ; =0x00000427 + ldrb r3, [r0, r2] + add r2, r2, #1 + ldrb r0, [r0, r2] + mul r1, r0 + add r0, r3, r1 + add r0, r0, #6 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + .align 2, 0 +_021EC1A0: .word 0x00000427 + thumb_func_end MOD75_021EC18C + + thumb_func_start MOD75_021EC1A4 +MOD75_021EC1A4: ; 0x021EC1A4 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + add r0, #0xe4 + ldr r0, [r0] + ldr r0, [r0] + bl FUN_0202011C + add r3, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r1, _021EC240 ; =0x00000478 + str r0, [r2] + ldrb r1, [r4, r1] + add r0, r4, #0 + bl MOD75_021EC18C + lsl r1, r0, #0xc + ldr r0, [sp] + cmp r1, r0 + bge _021EC1DE + sub r0, r0, r1 + mov r1, #0x64 + bl _s32_div_f + mov r2, #0 + b _021EC1E8 +_021EC1DE: + sub r0, r1, r0 + mov r1, #0x64 + bl _s32_div_f + mov r2, #1 +_021EC1E8: + ldr r1, _021EC244 ; =0x00000455 + mov r3, #0x28 + strb r2, [r4, r1] + add r5, r0, #0 + ldr r1, _021EC248 ; =0x00000458 + mov r2, #0 + mul r5, r3 + str r2, [r4, r1] + add r3, r1, #4 + str r5, [r4, r3] + mov r3, #0x19 + add r5, r0, #0 + mul r5, r3 + add r3, r1, #0 + add r3, #8 + str r5, [r4, r3] + mov r3, #0xf + add r5, r0, #0 + mul r5, r3 + add r3, r1, #0 + add r3, #0xc + str r5, [r4, r3] + mov r3, #0xa + add r5, r0, #0 + mul r5, r3 + add r3, r1, #0 + add r3, #0x10 + str r5, [r4, r3] + mov r3, #7 + add r5, r0, #0 + mul r5, r3 + add r3, r1, #0 + add r3, #0x14 + str r5, [r4, r3] + lsl r3, r0, #1 + add r3, r0, r3 + add r0, r1, #0 + add r0, #0x18 + str r3, [r4, r0] + add r1, #0x1c + str r2, [r4, r1] + add sp, #0xc + pop {r4, r5, pc} + nop +_021EC240: .word 0x00000478 +_021EC244: .word 0x00000455 +_021EC248: .word 0x00000458 + thumb_func_end MOD75_021EC1A4 + + thumb_func_start MOD75_021EC24C +MOD75_021EC24C: ; 0x021EC24C + push {r4, lr} + add r4, r0, #0 + cmp r1, #0 + bne _021EC272 + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #0xdc + mov r2, #0x9c + bl FUN_0200C714 + mov r0, #0x41 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xdc + mov r2, #0xb4 + bl FUN_0200C714 + b _021EC28E +_021EC272: + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + mov r1, #0xa2 + mov r2, #0x6c + bl FUN_0200C714 + mov r0, #0x41 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0xa2 + mov r2, #0x84 + bl FUN_0200C714 +_021EC28E: + add r0, r4, #0 + mov r1, #1 + bl MOD75_021EC298 + pop {r4, pc} + thumb_func_end MOD75_021EC24C + + thumb_func_start MOD75_021EC298 +MOD75_021EC298: ; 0x021EC298 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r5, r0] + add r4, r1, #0 + bl FUN_0200C644 + mov r0, #0x41 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200C644 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD75_021EC298 + + thumb_func_start MOD75_021EC2B8 +MOD75_021EC2B8: ; 0x021EC2B8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0x42 + lsl r0, r0, #2 + add r4, r2, #0 + add r6, r1, #0 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200C644 + mov r0, #0x43 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200C644 + cmp r4, #0 + beq _021EC374 + add r0, r6, #0 + bl FUN_0206EA30 + mov r1, #3 + add r4, r0, #0 + bl FUN_0206AB18 + lsl r0, r0, #0x10 + lsr r6, r0, #0x10 + add r0, r4, #0 + mov r1, #1 + bl FUN_0206AB18 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + bl FUN_0206E12C + add r7, r0, #0 + add r0, r6, #0 + bl FUN_0206E0F0 + add r3, r0, #0 + mov r0, #1 + str r0, [sp] + ldr r0, _021EC378 ; =0x0000C101 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + add r2, r7, #0 + bl FUN_0200C9D8 + add r0, r6, #0 + bl FUN_0206E114 + add r1, r0, #0 + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r1, #6 + bl FUN_0200C66C + bl FUN_0206E2A8 + add r6, r0, #0 + add r0, r4, #0 + bl FUN_0206E278 + add r3, r0, #0 + mov r0, #1 + str r0, [sp] + ldr r0, _021EC37C ; =0x0000C102 + add r1, r5, #0 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xd8 + add r1, #0xdc + ldr r0, [r0] + ldr r1, [r1] + add r2, r6, #0 + bl FUN_0200C9D8 + add r0, r4, #0 + bl FUN_0206E290 + add r1, r0, #0 + mov r0, #0x43 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r1, #6 + bl FUN_0200C66C +_021EC374: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021EC378: .word 0x0000C101 +_021EC37C: .word 0x0000C102 + thumb_func_end MOD75_021EC2B8 + + thumb_func_start MOD75_021EC380 +MOD75_021EC380: ; 0x021EC380 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, #0xf8 + add r4, r1, #0 + ldr r0, [r0] + mov r1, #1 + add r6, r2, #0 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0200C714 + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + mov r1, #0 + bl FUN_0200C61C + add r5, #0xf8 + ldr r0, [r5] + mov r1, #0 + bl FUN_0200C5C0 + pop {r4, r5, r6, pc} + thumb_func_end MOD75_021EC380 + + thumb_func_start MOD75_021EC3B8 +MOD75_021EC3B8: ; 0x021EC3B8 + push {r4, lr} + add r4, r0, #0 + add r0, #0xf8 + ldr r0, [r0] + bl FUN_0200C658 + cmp r0, #1 + bne _021EC3EE + add r0, r4, #0 + add r0, #0xf8 + mov r1, #1 + ldr r0, [r0] + lsl r1, r1, #0xc + bl FUN_0200C5B4 + add r0, r4, #0 + add r0, #0xf8 + ldr r0, [r0] + bl FUN_0200C630 + cmp r0, #2 + bne _021EC3EE + add r4, #0xf8 + ldr r0, [r4] + mov r1, #0 + bl FUN_0200C644 +_021EC3EE: + pop {r4, pc} + thumb_func_end MOD75_021EC3B8 + + .section .rodata + ; 0x021EC3F0 + .incbin "baserom.nds", 0x2D5650, 0x58C diff --git a/arm9/modules/76/asm/module_76.s b/arm9/modules/76/asm/module_76.s new file mode 100644 index 00000000..45257701 --- /dev/null +++ b/arm9/modules/76/asm/module_76.s @@ -0,0 +1,3226 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD76_021D74E0 +MOD76_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + mov r2, #2 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x43 + lsl r2, r2, #0x10 + bl FUN_0201681C + mov r1, #0x62 + add r0, r5, #0 + lsl r1, r1, #2 + mov r2, #0x43 + bl FUN_02006268 + mov r2, #0x62 + mov r1, #0 + lsl r2, r2, #2 + add r4, r0, #0 + bl Call_FillMemWithValue + add r0, r5, #0 + bl FUN_0200628C + str r0, [r4] + add r0, r4, #0 + bl MOD76_021D7638 + ldr r1, [r4] + add r0, r4, #0 + ldrh r1, [r1, #0x10] + mov r2, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl MOD76_021D8C88 + add r0, r4, #0 + mov r1, #0 + bl MOD76_021D8354 + mov r0, #0 + str r0, [sp] + ldr r3, _021D7560 ; =0x0001020F + add r0, r4, #0 + mov r1, #0xc + mov r2, #1 + bl MOD76_021D7CC8 + mov r0, #6 + mov r1, #1 + lsl r0, r0, #6 + str r1, [r4, r0] + add r0, r4, #0 + add r0, #0xc8 + bl FUN_02019220 + add r0, r4, #0 + bl MOD76_021D8CD4 + ldr r0, _021D7564 ; =MOD76_021D76E8 + add r1, r4, #0 + bl FUN_02015F10 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7560: .word 0x0001020F +_021D7564: .word MOD76_021D76E8 + thumb_func_end MOD76_021D74E0 + + thumb_func_start MOD76_021D7568 +MOD76_021D7568: ; 0x021D7568 + push {r3, r4, r5, lr} + add r4, r1, #0 + bl FUN_02006278 + ldr r1, [r4] + add r5, r0, #0 + cmp r1, #0xc + bhi _021D7606 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7584: ; jump table + .short _021D759E - _021D7584 - 2 ; case 0 + .short _021D75A6 - _021D7584 - 2 ; case 1 + .short _021D75AE - _021D7584 - 2 ; case 2 + .short _021D75B6 - _021D7584 - 2 ; case 3 + .short _021D75BE - _021D7584 - 2 ; case 4 + .short _021D75C6 - _021D7584 - 2 ; case 5 + .short _021D75CE - _021D7584 - 2 ; case 6 + .short _021D75D6 - _021D7584 - 2 ; case 7 + .short _021D75DE - _021D7584 - 2 ; case 8 + .short _021D75E6 - _021D7584 - 2 ; case 9 + .short _021D75EA - _021D7584 - 2 ; case 10 + .short _021D75F2 - _021D7584 - 2 ; case 11 + .short _021D75FC - _021D7584 - 2 ; case 12 +_021D759E: + bl MOD76_021D795C + str r0, [r4] + b _021D7606 +_021D75A6: + bl MOD76_021D7974 + str r0, [r4] + b _021D7606 +_021D75AE: + bl MOD76_021D7A94 + str r0, [r4] + b _021D7606 +_021D75B6: + bl MOD76_021D7AB4 + str r0, [r4] + b _021D7606 +_021D75BE: + bl MOD76_021D7ADC + str r0, [r4] + b _021D7606 +_021D75C6: + bl MOD76_021D7B2C + str r0, [r4] + b _021D7606 +_021D75CE: + bl MOD76_021D7B80 + str r0, [r4] + b _021D7606 +_021D75D6: + bl MOD76_021D7B98 + str r0, [r4] + b _021D7606 +_021D75DE: + bl MOD76_021D7BC8 + str r0, [r4] + b _021D7606 +_021D75E6: + mov r0, #1 + pop {r3, r4, r5, pc} +_021D75EA: + bl MOD76_021D8D44 + str r0, [r4] + b _021D7606 +_021D75F2: + bl MOD76_021D8D5C + str r0, [r4] + mov r0, #0 + pop {r3, r4, r5, pc} +_021D75FC: + bl MOD76_021D8DEC + str r0, [r4] + mov r0, #0 + pop {r3, r4, r5, pc} +_021D7606: + add r0, r5, #0 + bl MOD76_021D882C + mov r0, #0x45 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0200BC1C + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD76_021D7568 + + thumb_func_start MOD76_021D761C +MOD76_021D761C: ; 0x021D761C + push {r4, lr} + add r4, r0, #0 + bl FUN_02006278 + bl MOD76_021D76B8 + add r0, r4, #0 + bl FUN_0200627C + mov r0, #0x43 + bl FUN_020168D0 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD76_021D761C + + thumb_func_start MOD76_021D7638 +MOD76_021D7638: ; 0x021D7638 + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D76AC ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D76B0 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #0x43 + bl FUN_02016B94 + str r0, [r4, #4] + mov r0, #0 + mov r1, #0x43 + bl FUN_02079A70 + bl MOD76_021D7710 + ldr r0, [r4, #4] + bl MOD76_021D7730 + add r0, r4, #0 + bl MOD76_021D7814 + add r0, r4, #0 + bl MOD76_021D8C4C + add r0, r4, #0 + bl MOD76_021D7900 + add r0, r4, #0 + bl MOD76_021D789C + add r0, r4, #0 + bl MOD76_021D7ECC + add r0, r4, #0 + bl MOD76_021D7BE0 + ldr r0, _021D76B4 ; =MOD76_021D76E8 + add r1, r4, #0 + bl FUN_02015F10 + pop {r4, pc} + .align 2, 0 +_021D76AC: .word 0xFFFFE0FF +_021D76B0: .word 0x04001000 +_021D76B4: .word MOD76_021D76E8 + thumb_func_end MOD76_021D7638 + + thumb_func_start MOD76_021D76B8 +MOD76_021D76B8: ; 0x021D76B8 + push {r4, lr} + add r4, r0, #0 + bl MOD76_021D7FAC + add r0, r4, #0 + bl MOD76_021D78E8 + ldr r0, [r4, #4] + bl MOD76_021D77E4 + add r0, r4, #0 + bl MOD76_021D7938 + add r0, r4, #0 + bl MOD76_021D87F8 + bl FUN_0201C29C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD76_021D76B8 + + thumb_func_start MOD76_021D76E8 +MOD76_021D76E8: ; 0x021D76E8 + push {r3, lr} + ldr r0, [r0, #4] + bl FUN_0201AB60 + bl FUN_0201C30C + bl FUN_0200BC30 + ldr r3, _021D7708 ; =0x027E0000 + ldr r1, _021D770C ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + nop +_021D7708: .word 0x027E0000 +_021D770C: .word 0x00003FF8 + thumb_func_end MOD76_021D76E8 + + thumb_func_start MOD76_021D7710 +MOD76_021D7710: ; 0x021D7710 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D772C ; =0x021D8F44 + add r3, sp, #0 + mov r2, #5 +_021D771A: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D771A + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D772C: .word 0x021D8F44 + thumb_func_end MOD76_021D7710 + + thumb_func_start MOD76_021D7730 +MOD76_021D7730: ; 0x021D7730 + push {r4, r5, lr} + sub sp, #0x64 + ldr r5, _021D77D4 ; =0x021D8E4C + add r3, sp, #0x54 + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D77D8 ; =0x021D8E88 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _021D77DC ; =0x021D8EC0 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _021D77E0 ; =0x021D8EA4 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x43 + bl FUN_02017F18 + add sp, #0x64 + pop {r4, r5, pc} + nop +_021D77D4: .word 0x021D8E4C +_021D77D8: .word 0x021D8E88 +_021D77DC: .word 0x021D8EC0 +_021D77E0: .word 0x021D8EA4 + thumb_func_end MOD76_021D7730 + + thumb_func_start MOD76_021D77E4 +MOD76_021D77E4: ; 0x021D77E4 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x17 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + mov r0, #0x43 + add r1, r4, #0 + bl FUN_02016A8C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD76_021D77E4 + + thumb_func_start MOD76_021D7814 +MOD76_021D7814: ; 0x021D7814 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x43 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x71 + mov r1, #0xa + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x43 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x71 + mov r1, #0xb + mov r3, #2 + bl FUN_020068C8 + mov r2, #0 + str r2, [sp] + mov r0, #0x43 + str r0, [sp, #4] + mov r0, #0x71 + mov r1, #0xc + add r3, r2, #0 + bl FUN_02006930 + mov r1, #7 + mov r0, #0 + lsl r1, r1, #6 + mov r2, #0x43 + bl FUN_02002EEC + mov r1, #0 + str r1, [sp] + mov r0, #0x43 + str r0, [sp, #4] + ldr r0, [r4, #4] + mov r2, #1 + mov r3, #0xc + bl FUN_0200CB00 + ldr r0, [r4] + ldr r0, [r0, #8] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x43 + str r0, [sp, #4] + ldr r0, [r4, #4] + mov r1, #0 + mov r2, #0xa + mov r3, #0xd + bl FUN_0200CD68 + add sp, #0x10 + pop {r4, pc} + thumb_func_end MOD76_021D7814 + + thumb_func_start MOD76_021D789C +MOD76_021D789C: ; 0x021D789C + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r5, r7, #0 + ldr r4, _021D78E4 ; =0x021D8FC4 + mov r6, #0 + add r5, #8 +_021D78A8: + ldr r0, [r7, #4] + add r1, r5, #0 + add r2, r4, #0 + bl FUN_02019150 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r6, r6, #1 + add r4, #8 + add r5, #0x10 + cmp r6, #0xf + blo _021D78A8 + add r0, r7, #0 + bl MOD76_021D7DAC + add r0, r7, #0 + add r0, #0xc8 + mov r1, #0xf + bl FUN_02019620 + add r7, #0xc8 + add r0, r7, #0 + mov r1, #0 + mov r2, #0xa + mov r3, #0xd + bl FUN_0200D0BC + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D78E4: .word 0x021D8FC4 + thumb_func_end MOD76_021D789C + + thumb_func_start MOD76_021D78E8 +MOD76_021D78E8: ; 0x021D78E8 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 + add r5, #8 +_021D78F0: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #0xf + blo _021D78F0 + pop {r3, r4, r5, pc} + thumb_func_end MOD76_021D78E8 + + thumb_func_start MOD76_021D7900 +MOD76_021D7900: ; 0x021D7900 + push {r4, lr} + ldr r2, _021D7934 ; =0x0000024A + add r4, r0, #0 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x43 + bl FUN_0200A86C + add r1, r4, #0 + add r1, #0xf8 + str r0, [r1] + mov r0, #0x43 + bl FUN_0200AA80 + add r1, r4, #0 + add r1, #0xfc + str r0, [r1] + mov r0, #1 + lsl r0, r0, #8 + mov r1, #0x43 + bl FUN_020219F4 + mov r1, #1 + lsl r1, r1, #8 + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 +_021D7934: .word 0x0000024A + thumb_func_end MOD76_021D7900 + + thumb_func_start MOD76_021D7938 +MOD76_021D7938: ; 0x021D7938 + push {r4, lr} + add r4, r0, #0 + add r0, #0xf8 + ldr r0, [r0] + bl FUN_0200A8B8 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + bl FUN_0200AB18 + mov r0, #1 + lsl r0, r0, #8 + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD76_021D7938 + + thumb_func_start MOD76_021D795C +MOD76_021D795C: ; 0x021D795C + push {r4, lr} + add r4, r0, #0 + bl FUN_0200E308 + cmp r0, #1 + bne _021D7970 + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + pop {r4, pc} +_021D7970: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD76_021D795C + + thumb_func_start MOD76_021D7974 +MOD76_021D7974: ; 0x021D7974 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D7A88 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x30 + tst r1, r0 + beq _021D799C + ldr r0, _021D7A8C ; =0x000005DD + bl FUN_020054C8 + ldr r2, [r5] + mov r0, #1 + ldrb r1, [r2, #0x14] + eor r0, r1 + strb r0, [r2, #0x14] + add r0, r5, #0 + bl MOD76_021D7BE0 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D799C: + add r0, #0xd4 + add r1, sp, #0 + ldr r0, [r5, r0] + add r1, #2 + add r2, sp, #0 + bl FUN_02001448 + mov r0, #0x41 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02001204 + add r4, r0, #0 + ldr r2, [r5] + mov r0, #0x41 + add r1, r2, #0 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, #0x12 + add r2, #0x10 + bl FUN_02001448 + ldr r2, [r5] + add r1, sp, #0 + ldrh r1, [r1, #2] + ldrh r2, [r2, #0x12] + add r0, r5, #0 + bl MOD76_021D8AC0 + ldr r0, [r5] + ldrh r1, [r0, #0x10] + add r0, sp, #0 + ldrh r0, [r0] + cmp r1, r0 + beq _021D79EE + lsl r1, r1, #0x18 + add r0, r5, #0 + lsr r1, r1, #0x18 + mov r2, #0 + bl MOD76_021D8C88 +_021D79EE: + add r0, r5, #0 + bl MOD76_021D8CD4 + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _021D7A04 + add r0, r0, #1 + cmp r4, r0 + beq _021D7A82 + b _021D7A38 +_021D7A04: + ldr r0, _021D7A8C ; =0x000005DD + bl FUN_020054C8 + ldr r1, [r5] + add r0, r5, #0 + ldrh r1, [r1, #0x10] + mov r2, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl MOD76_021D8C88 + add r0, r5, #0 + bl MOD76_021D8D24 + add r0, r5, #0 + mov r1, #2 + bl MOD76_021D853C + ldr r0, _021D7A90 ; =0x00000186 + mov r1, #1 + strb r1, [r5, r0] + mov r1, #3 + lsl r0, r1, #7 + str r1, [r5, r0] + mov r0, #2 + pop {r3, r4, r5, pc} +_021D7A38: + ldr r0, _021D7A8C ; =0x000005DD + bl FUN_020054C8 + ldr r1, [r5] + add r0, r5, #0 + ldrh r1, [r1, #0x10] + mov r2, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl MOD76_021D8C88 + add r0, r5, #0 + bl MOD76_021D8D24 + add r0, r5, #0 + bl MOD76_021D85E4 + cmp r0, #4 + bhs _021D7A6A + add r0, r5, #0 + mov r1, #1 + bl MOD76_021D853C + mov r1, #0 + b _021D7A74 +_021D7A6A: + add r0, r5, #0 + mov r1, #4 + bl MOD76_021D853C + mov r1, #2 +_021D7A74: + ldr r0, _021D7A90 ; =0x00000186 + strb r1, [r5, r0] + mov r1, #3 + lsl r0, r1, #7 + str r1, [r5, r0] + mov r0, #2 + pop {r3, r4, r5, pc} +_021D7A82: + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_021D7A88: .word 0x021C48B8 +_021D7A8C: .word 0x000005DD +_021D7A90: .word 0x00000186 + thumb_func_end MOD76_021D7974 + + thumb_func_start MOD76_021D7A94 +MOD76_021D7A94: ; 0x021D7A94 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D7AB0 ; =0x00000185 + ldrb r0, [r4, r0] + bl FUN_0201BD70 + cmp r0, #0 + bne _021D7AAC + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + pop {r4, pc} +_021D7AAC: + mov r0, #2 + pop {r4, pc} + .align 2, 0 +_021D7AB0: .word 0x00000185 + thumb_func_end MOD76_021D7A94 + + thumb_func_start MOD76_021D7AB4 +MOD76_021D7AB4: ; 0x021D7AB4 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #0x43 + str r0, [sp] + ldr r0, [r4, #4] + ldr r1, _021D7AD8 ; =0x021D9034 + mov r2, #1 + mov r3, #0xc + bl FUN_02002198 + mov r1, #0x43 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #4 + add sp, #4 + pop {r3, r4, pc} + nop +_021D7AD8: .word 0x021D9034 + thumb_func_end MOD76_021D7AB4 + + thumb_func_start MOD76_021D7ADC +MOD76_021D7ADC: ; 0x021D7ADC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x43 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0x43 + bl FUN_020021AC + cmp r0, #0 + beq _021D7AFA + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _021D7B0A + b _021D7B1A +_021D7AFA: + ldr r1, _021D7B20 ; =0x00000186 + add r0, r4, #0 + ldrb r1, [r4, r1] + lsl r2, r1, #3 + ldr r1, _021D7B24 ; =0x021D8F1C + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} +_021D7B0A: + ldr r1, _021D7B20 ; =0x00000186 + add r0, r4, #0 + ldrb r1, [r4, r1] + lsl r2, r1, #3 + ldr r1, _021D7B28 ; =0x021D8F20 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} +_021D7B1A: + mov r0, #4 + pop {r4, pc} + nop +_021D7B20: .word 0x00000186 +_021D7B24: .word 0x021D8F1C +_021D7B28: .word 0x021D8F20 + thumb_func_end MOD76_021D7ADC + + thumb_func_start MOD76_021D7B2C +MOD76_021D7B2C: ; 0x021D7B2C + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl MOD76_021D8514 + str r0, [sp] + ldr r1, [r4] + add r2, sp, #0 + ldr r0, [r1] + ldrb r1, [r1, #0x17] + add r1, #0x36 + bl FUN_02067830 + mov r0, #0 + str r0, [sp] + ldr r1, [r4] + add r2, sp, #0 + ldr r0, [r1] + ldrb r1, [r1, #0x17] + add r1, #0x3e + bl FUN_02067830 + add r0, r4, #0 + bl MOD76_021D8514 + mov r1, #0 + bl FUN_0206AB30 + str r0, [sp] + ldr r1, [r4] + add r2, sp, #0 + ldr r0, [r1] + ldrb r1, [r1, #0x17] + add r1, #0x3a + bl FUN_02067830 + ldr r0, [r4] + mov r1, #0 + strb r1, [r0, #0x16] + mov r0, #8 + add sp, #4 + pop {r3, r4, pc} + thumb_func_end MOD76_021D7B2C + + thumb_func_start MOD76_021D7B80 +MOD76_021D7B80: ; 0x021D7B80 + push {r4, lr} + mov r1, #6 + add r4, r0, #0 + bl MOD76_021D853C + mov r0, #6 + mov r1, #5 + lsl r0, r0, #6 + str r1, [r4, r0] + mov r0, #2 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD76_021D7B80 + + thumb_func_start MOD76_021D7B98 +MOD76_021D7B98: ; 0x021D7B98 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4] + ldrb r1, [r1, #0x17] + cmp r1, #4 + bhs _021D7BAE + mov r1, #0xa + bl MOD76_021D853C + mov r1, #4 + b _021D7BB6 +_021D7BAE: + mov r1, #7 + bl MOD76_021D853C + mov r1, #3 +_021D7BB6: + ldr r0, _021D7BC4 ; =0x00000186 + strb r1, [r4, r0] + mov r1, #3 + lsl r0, r1, #7 + str r1, [r4, r0] + mov r0, #2 + pop {r4, pc} + .align 2, 0 +_021D7BC4: .word 0x00000186 + thumb_func_end MOD76_021D7B98 + + thumb_func_start MOD76_021D7BC8 +MOD76_021D7BC8: ; 0x021D7BC8 + push {r4, lr} + add r4, r0, #0 + mov r0, #1 + mov r1, #0x43 + bl FUN_02079A70 + mov r0, #6 + mov r1, #9 + lsl r0, r0, #6 + str r1, [r4, r0] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD76_021D7BC8 + + thumb_func_start MOD76_021D7BE0 +MOD76_021D7BE0: ; 0x021D7BE0 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl MOD76_021D8514 + add r4, r0, #0 + ldr r0, [r5] + ldrb r0, [r0, #0x14] + cmp r0, #0 + ldr r0, [r5, #4] + bne _021D7C3A + mov r2, #0 + mov r1, #2 + add r3, r2, #0 + bl FUN_0201AEE4 + add r0, r5, #0 + add r0, #0x18 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0x68 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0xb8 + bl FUN_0201958C + add r0, r5, #0 + add r0, #8 + bl FUN_02019220 + ldr r0, _021D7CC4 ; =0x0000FFFF + cmp r4, r0 + beq _021D7C2E + add r0, r5, #0 + add r1, r4, #0 + bl MOD76_021D800C + b _021D7CBC +_021D7C2E: + mov r1, #1 + add r0, r5, #0 + mvn r1, r1 + bl MOD76_021D800C + b _021D7CBC +_021D7C3A: + mov r1, #2 + add r3, r1, #0 + mov r2, #0 + add r3, #0xfe + bl FUN_0201AEE4 + add r0, r5, #0 + add r0, #8 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0x28 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0x38 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0x48 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0x58 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0xa8 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0x78 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0x88 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0x98 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0x18 + bl FUN_02019220 + ldr r0, _021D7CC4 ; =0x0000FFFF + cmp r4, r0 + beq _021D7CA6 + add r0, r5, #0 + add r1, r4, #0 + bl MOD76_021D81AC + b _021D7CB0 +_021D7CA6: + mov r1, #1 + add r0, r5, #0 + mvn r1, r1 + bl MOD76_021D81AC +_021D7CB0: + mov r0, #0x4b + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C644 +_021D7CBC: + add r0, r5, #0 + bl MOD76_021D8A58 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7CC4: .word 0x0000FFFF + thumb_func_end MOD76_021D7BE0 + + thumb_func_start MOD76_021D7CC8 +MOD76_021D7CC8: ; 0x021D7CC8 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + ldr r0, [sp, #0x28] + add r4, r1, #0 + add r7, r3, #0 + str r2, [sp, #0x10] + cmp r0, #0 + beq _021D7CE4 + cmp r0, #1 + beq _021D7CE8 + cmp r0, #2 + beq _021D7D12 + b _021D7D3E +_021D7CE4: + mov r3, #0 + b _021D7D3E +_021D7CE8: + mov r1, #1 + lsl r1, r1, #8 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + lsl r0, r0, #0x18 + add r1, r5, #0 + lsr r6, r0, #0x18 + add r1, #8 + lsl r0, r4, #4 + add r0, r1, r0 + bl FUN_0201AB0C + lsl r0, r0, #0x1b + lsr r0, r0, #0x18 + sub r0, r0, r6 + lsl r0, r0, #0x18 + lsr r3, r0, #0x18 + b _021D7D3E +_021D7D12: + mov r1, #1 + lsl r1, r1, #8 + mov r0, #0 + ldr r1, [r5, r1] + add r2, r0, #0 + bl FUN_02002E14 + lsl r0, r0, #0x18 + add r1, r5, #0 + lsr r6, r0, #0x18 + add r1, #8 + lsl r0, r4, #4 + add r0, r1, r0 + bl FUN_0201AB0C + lsl r0, r0, #0x1b + lsr r0, r0, #0x18 + sub r1, r0, r6 + lsr r0, r1, #0x1f + add r0, r1, r0 + lsl r0, r0, #0x17 + lsr r3, r0, #0x18 +_021D7D3E: + mov r0, #0 + str r0, [sp] + mov r2, #0xff + str r2, [sp, #4] + str r7, [sp, #8] + add r1, r5, #0 + str r0, [sp, #0xc] + add r2, r2, #1 + add r1, #8 + lsl r0, r4, #4 + add r0, r1, r0 + ldr r1, [sp, #0x10] + ldr r2, [r5, r2] + bl FUN_0201BDE0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD76_021D7CC8 + + thumb_func_start MOD76_021D7D60 +MOD76_021D7D60: ; 0x021D7D60 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + add r0, #0xf8 + ldr r0, [r0] + add r6, r2, #0 + add r7, r3, #0 + bl FUN_0200A914 + add r4, r0, #0 + add r0, sp, #0x10 + ldrb r0, [r0, #0x10] + mov r1, #0 + add r2, r6, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0xfc + ldr r0, [r0] + add r3, r7, #0 + bl FUN_0200AD38 + add r0, r5, #0 + mov r1, #1 + add r0, #0xfc + lsl r1, r1, #8 + ldr r0, [r0] + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD76_021D7D60 + + thumb_func_start MOD76_021D7DAC +MOD76_021D7DAC: ; 0x021D7DAC + push {r3, r4, lr} + sub sp, #4 + mov r1, #0x1a + add r2, r1, #0 + add r4, r0, #0 + add r0, #0xf8 + add r2, #0xe6 + ldr r0, [r0] + ldr r2, [r4, r2] + bl FUN_0200A8E0 + mov r0, #2 + mov r1, #0 + str r0, [sp] + ldr r3, _021D7E9C ; =0x000F0E00 + add r0, r4, #0 + add r2, r1, #0 + bl MOD76_021D7CC8 + mov r1, #0x1c + add r0, r4, #0 + add r2, r1, #0 + add r0, #0xf8 + add r2, #0xe4 + ldr r0, [r0] + ldr r2, [r4, r2] + bl FUN_0200A8E0 + mov r0, #2 + str r0, [sp] + ldr r3, _021D7E9C ; =0x000F0E00 + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD76_021D7CC8 + mov r1, #0x16 + add r0, r4, #0 + add r2, r1, #0 + add r0, #0xf8 + add r2, #0xea + ldr r0, [r0] + ldr r2, [r4, r2] + bl FUN_0200A8E0 + mov r2, #0 + ldr r3, _021D7E9C ; =0x000F0E00 + add r0, r4, #0 + mov r1, #2 + str r2, [sp] + bl MOD76_021D7CC8 + mov r1, #0x17 + add r0, r4, #0 + add r2, r1, #0 + add r0, #0xf8 + add r2, #0xe9 + ldr r0, [r0] + ldr r2, [r4, r2] + bl FUN_0200A8E0 + mov r2, #0 + ldr r3, _021D7E9C ; =0x000F0E00 + add r0, r4, #0 + mov r1, #3 + str r2, [sp] + bl MOD76_021D7CC8 + mov r1, #0x18 + add r0, r4, #0 + add r2, r1, #0 + add r0, #0xf8 + add r2, #0xe8 + ldr r0, [r0] + ldr r2, [r4, r2] + bl FUN_0200A8E0 + mov r2, #0 + ldr r3, _021D7E9C ; =0x000F0E00 + add r0, r4, #0 + mov r1, #4 + str r2, [sp] + bl MOD76_021D7CC8 + mov r1, #0x19 + add r0, r4, #0 + add r2, r1, #0 + add r0, #0xf8 + add r2, #0xe7 + ldr r0, [r0] + ldr r2, [r4, r2] + bl FUN_0200A8E0 + mov r2, #0 + ldr r3, _021D7EA0 ; =0x00010200 + add r0, r4, #0 + mov r1, #5 + str r2, [sp] + bl MOD76_021D7CC8 + mov r1, #0x1b + add r0, r4, #0 + add r2, r1, #0 + add r0, #0xf8 + add r2, #0xe5 + ldr r0, [r0] + ldr r2, [r4, r2] + bl FUN_0200A8E0 + mov r0, #2 + str r0, [sp] + ldr r3, _021D7E9C ; =0x000F0E00 + add r0, r4, #0 + mov r1, #6 + mov r2, #0 + bl MOD76_021D7CC8 + add sp, #4 + pop {r3, r4, pc} + nop +_021D7E9C: .word 0x000F0E00 +_021D7EA0: .word 0x00010200 + thumb_func_end MOD76_021D7DAC + + thumb_func_start MOD76_021D7EA4 +MOD76_021D7EA4: ; 0x021D7EA4 + push {r3, r4} + ldr r0, [r0] + ldr r1, _021D7EC8 ; =0x0000FFFF + ldr r4, [r0, #0xc] + mov r0, #1 + mov r3, #0 + lsl r0, r0, #8 +_021D7EB2: + ldrh r2, [r4] + cmp r2, r1 + beq _021D7EC0 + add r3, r3, #1 + add r4, r4, #2 + cmp r3, r0 + blo _021D7EB2 +_021D7EC0: + add r0, r3, #0 + pop {r3, r4} + bx lr + nop +_021D7EC8: .word 0x0000FFFF + thumb_func_end MOD76_021D7EA4 + + thumb_func_start MOD76_021D7ECC +MOD76_021D7ECC: ; 0x021D7ECC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + bl MOD76_021D7EA4 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r1, r0, #1 + mov r0, #0x61 + lsl r0, r0, #2 + strb r1, [r5, r0] + ldrb r0, [r5, r0] + mov r1, #0x43 + bl FUN_02012838 + mov r1, #0x42 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r2, #0x93 + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #2 + mov r3, #0x43 + bl FUN_0200A86C + add r7, r0, #0 + mov r0, #0x61 + lsl r0, r0, #2 + ldrb r0, [r5, r0] + mov r4, #0 + cmp r0, #0 + bls _021D7F50 + add r6, r4, #0 +_021D7F0E: + ldr r0, [r5] + ldr r0, [r0, #0xc] + ldrh r2, [r0, r6] + ldr r0, _021D7FA4 ; =0x0000FFFF + cmp r2, r0 + beq _021D7F2A + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r7, #0 + add r3, r2, #0 + bl FUN_02012880 + b _021D7F42 +_021D7F2A: + mov r0, #0x42 + add r1, r5, #0 + lsl r0, r0, #2 + add r1, #0xf8 + mov r2, #0x20 + add r3, r2, #0 + ldr r0, [r5, r0] + ldr r1, [r1] + sub r3, #0x22 + bl FUN_02012880 + b _021D7F50 +_021D7F42: + mov r0, #0x61 + lsl r0, r0, #2 + ldrb r0, [r5, r0] + add r4, r4, #1 + add r6, r6, #2 + cmp r4, r0 + blo _021D7F0E +_021D7F50: + add r0, r7, #0 + bl FUN_0200A8B8 + ldr r4, _021D7FA8 ; =0x021D8EFC + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + mov r0, #0x42 + lsl r0, r0, #2 + ldr r1, [r5, r0] + add r0, #0x7c + str r1, [sp] + add r1, r5, #0 + add r1, #0xd8 + str r1, [sp, #0xc] + ldrb r1, [r5, r0] + add r0, sp, #0 + strh r1, [r0, #0x10] + str r5, [sp, #0x1c] + ldr r3, [r5] + add r0, r2, #0 + ldrh r1, [r3, #0x12] + ldrh r2, [r3, #0x10] + mov r3, #0x43 + bl FUN_020010A8 + mov r1, #0x41 + lsl r1, r1, #2 + str r0, [r5, r1] + add r5, #0xd8 + add r0, r5, #0 + bl FUN_02019220 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D7FA4: .word 0x0000FFFF +_021D7FA8: .word 0x021D8EFC + thumb_func_end MOD76_021D7ECC + + thumb_func_start MOD76_021D7FAC +MOD76_021D7FAC: ; 0x021D7FAC + push {r4, lr} + add r4, r0, #0 + ldr r2, [r4] + mov r0, #0x41 + add r1, r2, #0 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r1, #0x12 + add r2, #0x10 + bl FUN_02001300 + mov r0, #0x42 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02012870 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD76_021D7FAC + + thumb_func_start MOD76_021D7FD0 +MOD76_021D7FD0: ; 0x021D7FD0 + push {r4, r5, r6, lr} + add r5, r1, #0 + mov r1, #0x13 + add r6, r2, #0 + bl FUN_02001470 + add r4, r0, #0 + cmp r6, #1 + beq _021D7FE8 + ldr r0, _021D8004 ; =0x000005DD + bl FUN_020054C8 +_021D7FE8: + ldr r0, [r4] + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _021D7FFA + add r0, r4, #0 + add r1, r5, #0 + bl MOD76_021D800C + pop {r4, r5, r6, pc} +_021D7FFA: + add r0, r4, #0 + add r1, r5, #0 + bl MOD76_021D81AC + pop {r4, r5, r6, pc} + .align 2, 0 +_021D8004: .word 0x000005DD + thumb_func_end MOD76_021D7FD0 + + thumb_func_start MOD76_021D8008 +MOD76_021D8008: ; 0x021D8008 + bx lr + .align 2, 0 + thumb_func_end MOD76_021D8008 + + thumb_func_start MOD76_021D800C +MOD76_021D800C: ; 0x021D800C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r4, r1, #0 + add r0, #0xa8 + mov r1, #0 + bl FUN_02019620 + add r0, r5, #0 + add r0, #0x78 + mov r1, #0 + bl FUN_02019620 + add r0, r5, #0 + add r0, #0x88 + mov r1, #0 + bl FUN_02019620 + add r0, r5, #0 + add r0, #0x98 + mov r1, #0 + bl FUN_02019620 + mov r0, #0x4b + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C644 + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + bne _021D8050 + b _021D815E +_021D8050: + add r0, r4, #0 + mov r1, #2 + bl FUN_0206AB18 + add r2, r0, #0 + cmp r2, #1 + bhi _021D8072 + mov r1, #0x21 + add r0, r5, #0 + add r2, r1, #0 + add r0, #0xf8 + add r2, #0xdf + ldr r0, [r0] + ldr r2, [r5, r2] + bl FUN_0200A8E0 + b _021D8080 +_021D8072: + mov r0, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x1d + mov r3, #3 + bl MOD76_021D7D60 +_021D8080: + mov r0, #2 + str r0, [sp] + ldr r3, _021D81A4 ; =0x00010200 + add r0, r5, #0 + mov r1, #7 + mov r2, #0 + bl MOD76_021D7CC8 + add r0, r4, #0 + mov r1, #4 + bl FUN_0206AB18 + add r2, r0, #0 + bne _021D80B0 + mov r1, #0x21 + add r0, r5, #0 + add r2, r1, #0 + add r0, #0xf8 + add r2, #0xdf + ldr r0, [r0] + ldr r2, [r5, r2] + bl FUN_0200A8E0 + b _021D80BE +_021D80B0: + mov r0, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x1e + mov r3, #3 + bl MOD76_021D7D60 +_021D80BE: + mov r0, #2 + str r0, [sp] + ldr r3, _021D81A4 ; =0x00010200 + add r0, r5, #0 + mov r1, #8 + mov r2, #0 + bl MOD76_021D7CC8 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + mov r1, #0 + bl FUN_0206AB30 + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x1f + mov r3, #2 + bl MOD76_021D7D60 + mov r0, #2 + str r0, [sp] + ldr r3, _021D81A4 ; =0x00010200 + add r0, r5, #0 + mov r1, #9 + mov r2, #0 + bl MOD76_021D7CC8 + ldr r2, _021D81A8 ; =0x0000024B + mov r0, #1 + mov r1, #0x1a + mov r3, #0x43 + bl FUN_0200A86C + mov r2, #1 + lsl r2, r2, #8 + ldr r2, [r5, r2] + add r1, r4, #0 + add r6, r0, #0 + bl FUN_0200A8E0 + mov r2, #0 + ldr r3, _021D81A4 ; =0x00010200 + add r0, r5, #0 + mov r1, #0xa + str r2, [sp] + bl MOD76_021D7CC8 + add r0, r6, #0 + bl FUN_0200A8B8 + lsl r1, r4, #0x10 + add r0, r5, #0 + lsr r1, r1, #0x10 + bl MOD76_021D8BF8 + mov r0, #0x4b + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_0200C644 + add r0, r5, #0 + add r0, #0x28 + bl FUN_02019220 + add r0, r5, #0 + add r0, #0x38 + bl FUN_02019220 + add r0, r5, #0 + add r0, #0x48 + bl FUN_02019220 + add r0, r5, #0 + add r0, #0x58 + bl FUN_02019220 + b _021D817E +_021D815E: + add r0, r5, #0 + add r0, #0x28 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0x38 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0x48 + bl FUN_0201958C + add r0, r5, #0 + add r0, #0x58 + bl FUN_0201958C +_021D817E: + add r0, r5, #0 + add r0, #0xa8 + bl FUN_02019220 + add r0, r5, #0 + add r0, #0x78 + bl FUN_02019220 + add r0, r5, #0 + add r0, #0x88 + bl FUN_02019220 + add r5, #0x98 + add r0, r5, #0 + bl FUN_02019220 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_021D81A4: .word 0x00010200 +_021D81A8: .word 0x0000024B + thumb_func_end MOD76_021D800C + + thumb_func_start MOD76_021D81AC +MOD76_021D81AC: ; 0x021D81AC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + add r4, r1, #0 + add r0, #0xb8 + mov r1, #0 + bl FUN_02019620 + mov r1, #1 + mvn r1, r1 + cmp r4, r1 + beq _021D8222 + add r0, r4, #0 + mov r1, #0xa + bl FUN_0206AB18 + bl FUN_0208315C + add r6, r0, #0 + mov r0, #0 + mov r1, #0x1a + mov r2, #0xc5 + mov r3, #0x43 + bl FUN_0200A86C + mov r2, #1 + lsl r2, r2, #8 + ldr r2, [r5, r2] + add r1, r6, #0 + add r7, r0, #0 + bl FUN_0200A8E0 + mov r1, #0 + str r1, [sp] + mov r2, #0xff + str r2, [sp, #4] + ldr r0, _021D8240 ; =0x00010200 + add r2, r2, #1 + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r5, #0 + ldr r2, [r5, r2] + add r0, #0xb8 + add r3, r1, #0 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_0200A8B8 + lsl r1, r4, #0x10 + add r0, r5, #0 + lsr r1, r1, #0x10 + bl MOD76_021D8300 + add r0, r5, #0 + add r0, #0x68 + bl FUN_02019220 + b _021D8232 +_021D8222: + add r0, r5, #0 + lsr r1, r1, #0x10 + bl MOD76_021D8300 + add r0, r5, #0 + add r0, #0x68 + bl FUN_0201958C +_021D8232: + add r5, #0xb8 + add r0, r5, #0 + bl FUN_02019220 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8240: .word 0x00010200 + thumb_func_end MOD76_021D81AC + + thumb_func_start MOD76_021D8244 +MOD76_021D8244: ; 0x021D8244 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #5 + lsl r6, r2, #1 + str r0, [sp] + add r4, r1, #0 + mov r0, #1 + add r7, r6, #0 + str r0, [sp, #4] + add r7, #0x22 + str r0, [sp, #8] + mov r0, #0x10 + str r0, [sp, #0xc] + lsl r3, r7, #0x18 + ldr r0, [r5, #4] + mov r1, #2 + add r2, r4, #0 + lsr r3, r3, #0x18 + bl FUN_02018540 + mov r0, #5 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + add r6, #0x23 + str r0, [sp, #8] + mov r0, #0x10 + add r2, r4, #1 + str r0, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r6, #0x18 + ldr r0, [r5, #4] + mov r1, #2 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_02018540 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + add r2, r4, #0 + str r0, [sp, #8] + mov r0, #0x10 + add r2, #0x20 + str r0, [sp, #0xc] + lsl r2, r2, #0x10 + lsl r3, r7, #0x18 + ldr r0, [r5, #4] + mov r1, #2 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_02018540 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x10 + add r4, #0x21 + str r0, [sp, #0xc] + lsl r2, r4, #0x10 + lsl r3, r6, #0x18 + ldr r0, [r5, #4] + mov r1, #2 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_02018540 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD76_021D8244 + + thumb_func_start MOD76_021D82D8 +MOD76_021D82D8: ; 0x021D82D8 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r4, #0 + mov r6, #0x12 +_021D82E0: + lsl r2, r4, #0x18 + add r0, r5, #0 + add r1, r6, #0 + lsr r2, r2, #0x18 + bl MOD76_021D8244 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #6 + blo _021D82E0 + ldr r0, [r5, #4] + mov r1, #2 + bl FUN_0201AC68 + pop {r4, r5, r6, pc} + thumb_func_end MOD76_021D82D8 + + thumb_func_start MOD76_021D8300 +MOD76_021D8300: ; 0x021D8300 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD76_021D82D8 + ldr r0, _021D8350 ; =0x0000FFFF + cmp r4, r0 + beq _021D8344 + add r0, r4, #0 + mov r1, #0xa + bl FUN_0206AB18 + bl FUN_02083114 + mov r1, #0xa + bl _s32_div_f + lsl r0, r0, #0x18 + asr r6, r0, #0x18 + mov r4, #0 + cmp r6, #0 + ble _021D8344 + mov r7, #0xe +_021D832E: + lsl r2, r4, #0x18 + add r0, r5, #0 + add r1, r7, #0 + lsr r2, r2, #0x18 + bl MOD76_021D8244 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, r6 + blt _021D832E +_021D8344: + ldr r0, [r5, #4] + mov r1, #2 + bl FUN_0201AC68 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8350: .word 0x0000FFFF + thumb_func_end MOD76_021D8300 + + thumb_func_start MOD76_021D8354 +MOD76_021D8354: ; 0x021D8354 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #0xa + bls _021D8360 + b _021D84D8 +_021D8360: + add r1, r5, r5 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D836C: ; jump table + .short _021D8382 - _021D836C - 2 ; case 0 + .short _021D839A - _021D836C - 2 ; case 1 + .short _021D83AE - _021D836C - 2 ; case 2 + .short _021D83C6 - _021D836C - 2 ; case 3 + .short _021D83F2 - _021D836C - 2 ; case 4 + .short _021D841E - _021D836C - 2 ; case 5 + .short _021D844A - _021D836C - 2 ; case 6 + .short _021D8476 - _021D836C - 2 ; case 7 + .short _021D848A - _021D836C - 2 ; case 8 + .short _021D84B6 - _021D836C - 2 ; case 9 + .short _021D84C6 - _021D836C - 2 ; case 10 +_021D8382: + ldr r0, [r4] + ldr r0, [r0] + bl FUN_020690E4 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200ACF8 + b _021D84D8 +_021D839A: + bl MOD76_021D8514 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #1 + bl FUN_0200AD5C + b _021D84D8 +_021D83AE: + ldr r0, [r4] + ldr r0, [r0] + bl FUN_020690E4 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200ACF8 + b _021D84D8 +_021D83C6: + ldr r0, [r4] + ldr r0, [r0] + bl FUN_020690E4 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200ACF8 + add r0, r4, #0 + bl MOD76_021D8514 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #1 + bl FUN_0200AD5C + b _021D84D8 +_021D83F2: + ldr r0, [r4] + ldr r0, [r0] + bl FUN_020690E4 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200ACF8 + add r0, r4, #0 + bl MOD76_021D8514 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #1 + bl FUN_0200AD5C + b _021D84D8 +_021D841E: + ldr r0, [r4] + ldr r0, [r0] + bl FUN_020690E4 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200ACF8 + add r0, r4, #0 + bl MOD76_021D8524 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #1 + bl FUN_0200AD5C + b _021D84D8 +_021D844A: + ldr r0, [r4] + ldr r0, [r0] + bl FUN_020690E4 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200ACF8 + add r0, r4, #0 + bl MOD76_021D8514 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #1 + bl FUN_0200AD5C + b _021D84D8 +_021D8476: + bl MOD76_021D8514 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #1 + bl FUN_0200AD5C + b _021D84D8 +_021D848A: + ldr r0, [r4] + ldr r0, [r0] + bl FUN_020690E4 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200ACF8 + add r0, r4, #0 + bl MOD76_021D8514 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #1 + bl FUN_0200AD5C + b _021D84D8 +_021D84B6: + ldr r2, [r4] + add r0, #0xfc + ldr r0, [r0] + ldr r2, [r2, #4] + mov r1, #2 + bl FUN_0200ABC0 + b _021D84D8 +_021D84C6: + bl MOD76_021D8524 + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xfc + ldr r0, [r0] + mov r1, #0 + bl FUN_0200AD5C +_021D84D8: + ldr r1, [r4] + add r0, r4, #0 + ldrb r2, [r1, #0x15] + add r0, #0xf8 + mov r1, #0x2c + add r3, r2, #0 + mul r3, r1 + ldr r1, _021D8510 ; =0x021D8F6C + lsl r2, r5, #2 + add r1, r1, r3 + ldr r0, [r0] + ldr r1, [r2, r1] + bl FUN_0200A914 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #1 + add r0, #0xfc + lsl r1, r1, #8 + ldr r0, [r0] + ldr r1, [r4, r1] + add r2, r5, #0 + bl FUN_0200B7B8 + add r0, r5, #0 + bl FUN_02021A20 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8510: .word 0x021D8F6C + thumb_func_end MOD76_021D8354 + + thumb_func_start MOD76_021D8514 +MOD76_021D8514: ; 0x021D8514 + ldr r0, [r0] + ldr r2, [r0, #0xc] + ldrh r1, [r0, #0x12] + ldrh r0, [r0, #0x10] + add r0, r1, r0 + lsl r0, r0, #1 + ldrh r0, [r2, r0] + bx lr + thumb_func_end MOD76_021D8514 + + thumb_func_start MOD76_021D8524 +MOD76_021D8524: ; 0x021D8524 + push {r3, lr} + ldr r1, [r0] + mov r2, #0 + ldr r0, [r1] + ldrb r1, [r1, #0x17] + add r1, #0x36 + bl FUN_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD76_021D8524 + + thumb_func_start MOD76_021D853C +MOD76_021D853C: ; 0x021D853C + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + add r5, r1, #0 + add r0, #0xc8 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + add r1, r5, #0 + bl MOD76_021D8354 + mov r0, #1 + bl FUN_02002B60 + mov r0, #0 + bl FUN_02002B7C + ldr r0, [r4] + ldr r0, [r0, #8] + bl FUN_02024FF4 + mov r3, #0 + str r3, [sp] + str r0, [sp, #4] + ldr r0, _021D858C ; =MOD76_021D8594 + mov r1, #1 + add r2, r1, #0 + str r0, [sp, #8] + add r2, #0xff + add r0, r4, #0 + ldr r2, [r4, r2] + add r0, #0xc8 + bl FUN_0201BD84 + ldr r1, _021D8590 ; =0x00000185 + strb r0, [r4, r1] + add sp, #0xc + pop {r4, r5, pc} + nop +_021D858C: .word MOD76_021D8594 +_021D8590: .word 0x00000185 + thumb_func_end MOD76_021D853C + + thumb_func_start MOD76_021D8594 +MOD76_021D8594: ; 0x021D8594 + push {r3, lr} + cmp r1, #5 + bhi _021D85D6 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D85A6: ; jump table + .short _021D85D6 - _021D85A6 - 2 ; case 0 + .short _021D85B2 - _021D85A6 - 2 ; case 1 + .short _021D85B8 - _021D85A6 - 2 ; case 2 + .short _021D85BE - _021D85A6 - 2 ; case 3 + .short _021D85C6 - _021D85A6 - 2 ; case 4 + .short _021D85CE - _021D85A6 - 2 ; case 5 +_021D85B2: + bl FUN_02005514 + pop {r3, pc} +_021D85B8: + bl FUN_02005CBC + pop {r3, pc} +_021D85BE: + ldr r0, _021D85DC ; =0x000005E6 + bl FUN_020054C8 + b _021D85D6 +_021D85C6: + ldr r0, _021D85E0 ; =0x00000483 + bl FUN_02005C28 + b _021D85D6 +_021D85CE: + ldr r0, _021D85DC ; =0x000005E6 + bl FUN_02005508 + pop {r3, pc} +_021D85D6: + mov r0, #0 + pop {r3, pc} + nop +_021D85DC: .word 0x000005E6 +_021D85E0: .word 0x00000483 + thumb_func_end MOD76_021D8594 + + thumb_func_start MOD76_021D85E4 +MOD76_021D85E4: ; 0x021D85E4 + push {r4, r5, r6, lr} + mov r4, #0 + add r5, r0, #0 + add r6, r4, #0 +_021D85EC: + ldr r0, [r5] + add r1, r4, #0 + ldr r0, [r0] + add r1, #0x36 + add r2, r6, #0 + bl FUN_020671BC + cmp r0, #0 + beq _021D8608 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021D85EC +_021D8608: + add r0, r4, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD76_021D85E4 + + thumb_func_start MOD76_021D860C +MOD76_021D860C: ; 0x021D860C + push {r4, lr} + add r4, r0, #0 + mov r1, #3 + bl MOD76_021D853C + add r0, r4, #0 + bl MOD76_021D85E4 + ldr r1, [r4] + strb r0, [r1, #0x17] + mov r0, #6 + mov r1, #5 + lsl r0, r0, #6 + str r1, [r4, r0] + mov r0, #2 + pop {r4, pc} + thumb_func_end MOD76_021D860C + + thumb_func_start MOD76_021D862C +MOD76_021D862C: ; 0x021D862C + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + add r0, #0xc8 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + mov r1, #0 + bl MOD76_021D8354 + mov r0, #0 + str r0, [sp] + ldr r3, _021D8678 ; =0x0001020F + add r0, r4, #0 + mov r1, #0xc + mov r2, #1 + bl MOD76_021D7CC8 + add r0, r4, #0 + add r0, #0xc8 + bl FUN_02019220 + ldr r1, [r4] + add r0, r4, #0 + ldrh r1, [r1, #0x10] + mov r2, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl MOD76_021D8C88 + add r0, r4, #0 + mov r1, #1 + bl MOD76_021D8CB4 + mov r0, #1 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021D8678: .word 0x0001020F + thumb_func_end MOD76_021D862C + + thumb_func_start MOD76_021D867C +MOD76_021D867C: ; 0x021D867C + ldr r0, [r0] + mov r1, #1 + strb r1, [r0, #0x16] + mov r0, #8 + bx lr + .align 2, 0 + thumb_func_end MOD76_021D867C + + thumb_func_start MOD76_021D8688 +MOD76_021D8688: ; 0x021D8688 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + add r0, #0xc8 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + mov r1, #0 + bl MOD76_021D8354 + mov r0, #0 + str r0, [sp] + ldr r3, _021D86D4 ; =0x0001020F + add r0, r4, #0 + mov r1, #0xc + mov r2, #1 + bl MOD76_021D7CC8 + add r0, r4, #0 + add r0, #0xc8 + bl FUN_02019220 + ldr r1, [r4] + add r0, r4, #0 + ldrh r1, [r1, #0x10] + mov r2, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl MOD76_021D8C88 + add r0, r4, #0 + mov r1, #1 + bl MOD76_021D8CB4 + mov r0, #1 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021D86D4: .word 0x0001020F + thumb_func_end MOD76_021D8688 + + thumb_func_start MOD76_021D86D8 +MOD76_021D86D8: ; 0x021D86D8 + mov r1, #6 + mov r2, #0xa + lsl r1, r1, #6 + str r2, [r0, r1] + mov r0, #0 + bx lr + thumb_func_end MOD76_021D86D8 + + thumb_func_start MOD76_021D86E4 +MOD76_021D86E4: ; 0x021D86E4 + push {r4, lr} + mov r1, #7 + add r4, r0, #0 + bl MOD76_021D853C + ldr r0, _021D86FC ; =0x00000186 + mov r1, #3 + strb r1, [r4, r0] + sub r0, r0, #6 + str r1, [r4, r0] + mov r0, #2 + pop {r4, pc} + .align 2, 0 +_021D86FC: .word 0x00000186 + thumb_func_end MOD76_021D86E4 + + thumb_func_start MOD76_021D8700 +MOD76_021D8700: ; 0x021D8700 + push {r4, lr} + mov r1, #8 + add r4, r0, #0 + bl MOD76_021D853C + mov r0, #6 + mov r1, #8 + lsl r0, r0, #6 + str r1, [r4, r0] + ldr r0, [r4] + mov r1, #1 + strb r1, [r0, #0x16] + mov r0, #2 + pop {r4, pc} + thumb_func_end MOD76_021D8700 + + thumb_func_start MOD76_021D871C +MOD76_021D871C: ; 0x021D871C + push {r4, lr} + mov r1, #4 + add r4, r0, #0 + bl MOD76_021D853C + ldr r1, _021D8734 ; =0x00000186 + mov r0, #2 + mov r2, #3 + strb r0, [r4, r1] + lsl r1, r2, #7 + str r2, [r4, r1] + pop {r4, pc} + .align 2, 0 +_021D8734: .word 0x00000186 + thumb_func_end MOD76_021D871C + + thumb_func_start MOD76_021D8738 +MOD76_021D8738: ; 0x021D8738 + push {r4, lr} + mov r1, #5 + add r4, r0, #0 + bl MOD76_021D853C + mov r1, #6 + lsl r0, r1, #6 + str r1, [r4, r0] + mov r0, #2 + pop {r4, pc} + thumb_func_end MOD76_021D8738 + + thumb_func_start MOD76_021D874C +MOD76_021D874C: ; 0x021D874C + mov r1, #6 + mov r2, #0xa + lsl r1, r1, #6 + str r2, [r0, r1] + mov r0, #0 + bx lr + thumb_func_end MOD76_021D874C + + thumb_func_start MOD76_021D8758 +MOD76_021D8758: ; 0x021D8758 + push {r4, r5, r6, r7, lr} + sub sp, #0x4c + ldr r3, _021D87EC ; =0x021D8E70 + add r2, sp, #0x34 + add r4, r0, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + mov r0, #0x40 + mov r1, #0x43 + bl FUN_0201C24C + mov r0, #0x43 + bl FUN_0200BB14 + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r0, [r4, r1] + bl FUN_0200BB34 + mov r7, #0x45 + lsl r7, r7, #2 + add r2, sp, #0x14 + ldr r3, _021D87F0 ; =0x021D8EDC + str r0, [r4, r7] + ldmia r3!, {r0, r1} + add r6, r2, #0 + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + ldr r5, _021D87F4 ; =0x021D8E5C + stmia r2!, {r0, r1} + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r6, #0 + str r0, [r3] + sub r0, r7, #4 + ldr r0, [r4, r0] + mov r3, #0x20 + bl FUN_0200BB6C + sub r1, r7, #4 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + mov r2, #0xd + bl FUN_0200BBF0 + sub r1, r7, #4 + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + add r2, sp, #0x34 + bl FUN_0200BF60 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x4c + pop {r4, r5, r6, r7, pc} + nop +_021D87EC: .word 0x021D8E70 +_021D87F0: .word 0x021D8EDC +_021D87F4: .word 0x021D8E5C + thumb_func_end MOD76_021D8758 + + thumb_func_start MOD76_021D87F8 +MOD76_021D87F8: ; 0x021D87F8 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r6, #0x46 + mov r4, #0 + add r5, r7, #0 + lsl r6, r6, #2 +_021D8804: + ldr r0, [r5, r6] + bl FUN_0200C3DC + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xd + blo _021D8804 + mov r1, #0x11 + lsl r1, r1, #4 + ldr r0, [r7, r1] + add r1, r1, #4 + ldr r1, [r7, r1] + bl FUN_0200C398 + mov r0, #0x11 + lsl r0, r0, #4 + ldr r0, [r7, r0] + bl FUN_0200BD04 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD76_021D87F8 + + thumb_func_start MOD76_021D882C +MOD76_021D882C: ; 0x021D882C + push {r3, r4, r5, r6, r7, lr} + mov r7, #1 + mov r6, #0x46 + add r5, r0, #0 + mov r4, #0 + lsl r7, r7, #0xc + lsl r6, r6, #2 +_021D883A: + lsl r0, r4, #2 + add r0, r5, r0 + ldr r0, [r0, r6] + add r1, r7, #0 + ldr r0, [r0] + bl FUN_020201E4 + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0xd + blo _021D883A + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD76_021D882C + + thumb_func_start MOD76_021D8854 +MOD76_021D8854: ; 0x021D8854 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021D89D0 ; =0x0000B8A8 + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [sp, #8] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #0x71 + mov r3, #5 + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021D89D4 ; =0x0000B8A9 + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [sp, #8] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #0x71 + mov r3, #8 + bl FUN_0200C00C + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _021D89D8 ; =0x0000B8AA + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [sp, #8] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #0x71 + mov r3, #2 + bl FUN_0200C00C + ldr r4, _021D89DC ; =0x0000B8AC + mov r7, #0x45 + lsl r7, r7, #2 + add r6, r4, #6 +_021D88BC: + mov r0, #0x11 + str r4, [sp] + lsl r0, r0, #4 + ldr r0, [r5, r0] + ldr r1, [r5, r7] + mov r2, #1 + mov r3, #0 + bl FUN_0206E130 + add r4, r4, #1 + cmp r4, r6 + bls _021D88BC + ldr r0, _021D89E0 ; =0x0000B8AB + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [sp] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #1 + mov r3, #0 + bl FUN_0206E2AC + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, _021D89D0 ; =0x0000B8A8 + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [sp, #0xc] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #0x71 + mov r3, #9 + bl FUN_0200C06C + mov r1, #0x11 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + ldr r3, _021D89D4 ; =0x0000B8A9 + mov r2, #1 + bl FUN_0206E164 + mov r0, #0 + str r0, [sp] + ldr r0, _021D89D0 ; =0x0000B8A8 + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [sp, #4] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #0x71 + mov r3, #4 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021D89D4 ; =0x0000B8A9 + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [sp, #4] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #0x71 + mov r3, #7 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021D89D8 ; =0x0000B8AA + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [sp, #4] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #0x71 + mov r3, #1 + bl FUN_0200C124 + mov r0, #0 + str r0, [sp] + ldr r0, _021D89D0 ; =0x0000B8A8 + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [sp, #4] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #0x71 + mov r3, #3 + bl FUN_0200C13C + mov r0, #0 + str r0, [sp] + ldr r0, _021D89D4 ; =0x0000B8A9 + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [sp, #4] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #0x71 + mov r3, #6 + bl FUN_0200C13C + mov r3, #0 + mov r1, #0x11 + ldr r0, _021D89D8 ; =0x0000B8AA + str r3, [sp] + lsl r1, r1, #4 + str r0, [sp, #4] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #0x71 + bl FUN_0200C13C + mov r1, #0x11 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r2, _021D89E0 ; =0x0000B8AB + ldr r1, [r5, r1] + add r3, r2, #0 + bl FUN_0206E1D4 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D89D0: .word 0x0000B8A8 +_021D89D4: .word 0x0000B8A9 +_021D89D8: .word 0x0000B8AA +_021D89DC: .word 0x0000B8AC +_021D89E0: .word 0x0000B8AB + thumb_func_end MOD76_021D8854 + + thumb_func_start MOD76_021D89E4 +MOD76_021D89E4: ; 0x021D89E4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, [r5] + add r4, r2, #0 + ldrb r0, [r0, #0x14] + cmp r0, #0 + bne _021D8A00 + add r0, r1, #0 + mov r1, #3 + bl FUN_0206AB18 + add r6, r0, #0 + b _021D8A0C +_021D8A00: + add r0, r1, #0 + mov r1, #0xb + bl FUN_0206AB18 + add r6, r0, #0 + add r6, #0x12 +_021D8A0C: + bl FUN_0206E12C + add r7, r0, #0 + add r0, r6, #0 + bl FUN_0206E0F0 + add r3, r0, #0 + mov r0, #1 + str r0, [sp] + ldr r0, _021D8A54 ; =0x0000B8AC + mov r1, #0x11 + add r0, r4, r0 + lsl r1, r1, #4 + str r0, [sp, #4] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + add r2, r7, #0 + bl FUN_0200C9D8 + add r0, r6, #0 + bl FUN_0206E114 + add r1, r0, #0 + add r0, r4, #6 + lsl r0, r0, #2 + add r2, r5, r0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r2, r0] + add r1, r1, #2 + bl FUN_0200C66C + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8A54: .word 0x0000B8AC + thumb_func_end MOD76_021D89E4 + + thumb_func_start MOD76_021D8A58 +MOD76_021D8A58: ; 0x021D8A58 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r4, #0 + mov r7, #0x20 + add r5, r6, #0 +_021D8A62: + mov r0, #0x13 + lsl r0, r0, #4 + lsl r2, r7, #0x10 + ldr r0, [r5, r0] + mov r1, #0x98 + asr r2, r2, #0x10 + bl FUN_0200C714 + ldr r0, [r6] + mov r1, #0x61 + lsl r1, r1, #2 + ldrh r0, [r0, #0x12] + ldrb r1, [r6, r1] + add r0, r0, r4 + sub r1, r1, #1 + cmp r0, r1 + blo _021D8A92 + mov r0, #0x13 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200C644 + b _021D8AB4 +_021D8A92: + mov r0, #0x13 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_0200C644 + ldr r2, [r6] + add r0, r6, #0 + ldr r1, [r2, #0xc] + ldrh r2, [r2, #0x12] + add r2, r2, r4 + lsl r2, r2, #1 + ldrh r1, [r1, r2] + lsl r2, r4, #0x10 + lsr r2, r2, #0x10 + bl MOD76_021D89E4 +_021D8AB4: + add r4, r4, #1 + add r7, #0x10 + add r5, r5, #4 + cmp r4, #7 + blo _021D8A62 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD76_021D8A58 + + thumb_func_start MOD76_021D8AC0 +MOD76_021D8AC0: ; 0x021D8AC0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + str r2, [sp] + cmp r1, r2 + bhs _021D8B30 + ldr r0, [sp] + mov r6, #0 + add r0, r0, #6 + lsl r0, r0, #1 + add r4, r5, #0 + str r0, [sp, #4] + add r7, sp, #0xc +_021D8ADA: + mov r0, #0x13 + lsl r0, r0, #4 + add r1, sp, #0xc + ldr r0, [r4, r0] + add r1, #2 + add r2, sp, #0xc + bl FUN_0200C7A0 + mov r0, #0 + ldrsh r0, [r7, r0] + cmp r0, #0x20 + bne _021D8B10 + mov r0, #0x80 + strh r0, [r7] + ldr r0, [r5] + ldr r1, [r0, #0xc] + ldr r0, [sp, #4] + ldrh r1, [r0, r1] + ldr r0, _021D8BF4 ; =0x0000FFFF + cmp r1, r0 + beq _021D8B14 + lsl r2, r6, #0x10 + add r0, r5, #0 + lsr r2, r2, #0x10 + bl MOD76_021D89E4 + b _021D8B14 +_021D8B10: + sub r0, #0x10 + strh r0, [r7] +_021D8B14: + mov r0, #0x13 + mov r1, #2 + mov r2, #0 + lsl r0, r0, #4 + ldrsh r1, [r7, r1] + ldrsh r2, [r7, r2] + ldr r0, [r4, r0] + bl FUN_0200C714 + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #7 + blo _021D8ADA + b _021D8B94 +_021D8B30: + ldr r0, [sp] + cmp r1, r0 + bls _021D8BF0 + lsl r0, r0, #1 + mov r6, #0 + add r4, r5, #0 + str r0, [sp, #8] + add r7, sp, #0xc +_021D8B40: + mov r0, #0x13 + lsl r0, r0, #4 + add r1, sp, #0xc + ldr r0, [r4, r0] + add r1, #2 + add r2, sp, #0xc + bl FUN_0200C7A0 + mov r0, #0 + ldrsh r0, [r7, r0] + cmp r0, #0x80 + bne _021D8B76 + mov r0, #0x20 + strh r0, [r7] + ldr r0, [r5] + ldr r1, [r0, #0xc] + ldr r0, [sp, #8] + ldrh r1, [r0, r1] + ldr r0, _021D8BF4 ; =0x0000FFFF + cmp r1, r0 + beq _021D8B7A + lsl r2, r6, #0x10 + add r0, r5, #0 + lsr r2, r2, #0x10 + bl MOD76_021D89E4 + b _021D8B7A +_021D8B76: + add r0, #0x10 + strh r0, [r7] +_021D8B7A: + mov r0, #0x13 + mov r1, #2 + mov r2, #0 + lsl r0, r0, #4 + ldrsh r1, [r7, r1] + ldrsh r2, [r7, r2] + ldr r0, [r4, r0] + bl FUN_0200C714 + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #7 + blo _021D8B40 +_021D8B94: + mov r6, #0 + add r4, r5, #0 + add r7, sp, #0xc +_021D8B9A: + mov r0, #0x13 + lsl r0, r0, #4 + add r1, sp, #0xc + ldr r0, [r4, r0] + add r1, #2 + add r2, sp, #0xc + bl FUN_0200C7A0 + mov r0, #0 + ldrsh r1, [r7, r0] + sub r1, #0x20 + asr r0, r1, #3 + lsr r0, r0, #0x1c + add r0, r1, r0 + asr r0, r0, #4 + strh r0, [r7] + mov r0, #0 + ldrsh r1, [r7, r0] + ldr r0, [sp] + add r0, r0, r1 + mov r1, #0x61 + lsl r1, r1, #2 + ldrb r1, [r5, r1] + sub r1, r1, #1 + cmp r0, r1 + blt _021D8BDC + mov r0, #0x13 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C644 + b _021D8BE8 +_021D8BDC: + mov r0, #0x13 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_0200C644 +_021D8BE8: + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #7 + blo _021D8B9A +_021D8BF0: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8BF4: .word 0x0000FFFF + thumb_func_end MOD76_021D8AC0 + + thumb_func_start MOD76_021D8BF8 +MOD76_021D8BF8: ; 0x021D8BF8 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r0, #0 + add r0, r1, #0 + mov r1, #1 + bl FUN_0206AB18 + add r4, r0, #0 + bl FUN_0206E2A8 + add r6, r0, #0 + add r0, r4, #0 + bl FUN_0206E278 + add r3, r0, #0 + mov r0, #1 + str r0, [sp] + ldr r0, _021D8C48 ; =0x0000B8AB + mov r1, #0x11 + lsl r1, r1, #4 + str r0, [sp, #4] + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200C9D8 + add r0, r4, #0 + bl FUN_0206E290 + add r1, r0, #0 + mov r0, #0x4b + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r1, #2 + bl FUN_0200C66C + add sp, #8 + pop {r4, r5, r6, pc} + nop +_021D8C48: .word 0x0000B8AB + thumb_func_end MOD76_021D8BF8 + + thumb_func_start MOD76_021D8C4C +MOD76_021D8C4C: ; 0x021D8C4C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + bl MOD76_021D8758 + add r0, r6, #0 + bl MOD76_021D8854 + ldr r4, _021D8C84 ; =0x021D903C + mov r7, #0 + add r5, r6, #0 +_021D8C60: + mov r0, #0x11 + mov r1, #0x45 + lsl r0, r0, #4 + lsl r1, r1, #2 + ldr r0, [r6, r0] + ldr r1, [r6, r1] + add r2, r4, #0 + bl FUN_0200C154 + mov r1, #0x46 + lsl r1, r1, #2 + str r0, [r5, r1] + add r7, r7, #1 + add r4, #0x34 + add r5, r5, #4 + cmp r7, #0xd + blo _021D8C60 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8C84: .word 0x021D903C + thumb_func_end MOD76_021D8C4C + + thumb_func_start MOD76_021D8C88 +MOD76_021D8C88: ; 0x021D8C88 + push {r3, r4, r5, lr} + add r3, r1, #0 + add r5, r0, #0 + add r4, r2, #0 + mov r0, #0x4a + lsl r2, r3, #4 + lsl r0, r0, #2 + add r2, #0x20 + lsl r2, r2, #0x10 + ldr r0, [r5, r0] + mov r1, #0xc4 + asr r2, r2, #0x10 + bl FUN_0200C714 + mov r0, #0x4a + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200C66C + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD76_021D8C88 + + thumb_func_start MOD76_021D8CB4 +MOD76_021D8CB4: ; 0x021D8CB4 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x46 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + bl FUN_0200C644 + mov r0, #0x47 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0200C644 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD76_021D8CB4 + + thumb_func_start MOD76_021D8CD4 +MOD76_021D8CD4: ; 0x021D8CD4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldrh r0, [r0, #0x12] + cmp r0, #0 + beq _021D8CEE + mov r0, #0x12 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_0200C644 + b _021D8CFA +_021D8CEE: + mov r0, #0x12 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C644 +_021D8CFA: + ldr r0, [r4] + ldrh r0, [r0, #0x12] + add r2, r0, #7 + mov r0, #0x61 + lsl r0, r0, #2 + ldrb r1, [r4, r0] + cmp r2, r1 + bge _021D8D16 + sub r0, #0x60 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_0200C644 + pop {r4, pc} +_021D8D16: + sub r0, #0x60 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C644 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD76_021D8CD4 + + thumb_func_start MOD76_021D8D24 +MOD76_021D8D24: ; 0x021D8D24 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x12 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C644 + mov r0, #0x49 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200C644 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD76_021D8D24 + + thumb_func_start MOD76_021D8D44 +MOD76_021D8D44: ; 0x021D8D44 + push {r4, lr} + add r4, r0, #0 + mov r0, #1 + mov r1, #0x43 + bl FUN_02079A70 + mov r0, #6 + mov r1, #0xb + lsl r0, r0, #6 + str r1, [r4, r0] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD76_021D8D44 + + thumb_func_start MOD76_021D8D5C +MOD76_021D8D5C: ; 0x021D8D5C + push {r3, r4, lr} + sub sp, #4 + ldr r2, _021D8DE4 ; =0x021D8E48 + add r1, sp, #0 + ldrb r3, [r2] + add r4, r0, #0 + strb r3, [r1] + ldrb r3, [r2, #1] + ldrb r2, [r2, #2] + strb r3, [r1, #1] + strb r2, [r1, #2] + bl MOD76_021D76B8 + ldr r0, [r4] + mov r1, #0x53 + ldr r0, [r0] + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4] + ldr r2, [r0, #8] + add r0, r1, #4 + str r2, [r4, r0] + add r0, r1, #0 + mov r2, #0 + add r0, #0x11 + strb r2, [r4, r0] + add r0, r1, #0 + add r0, #0x14 + strb r2, [r4, r0] + mov r0, #1 + add r1, #0x13 + strb r0, [r4, r1] + add r0, r4, #0 + bl MOD76_021D8514 + mov r1, #0x59 + lsl r1, r1, #2 + strh r0, [r4, r1] + mov r2, #2 + sub r0, r1, #6 + strb r2, [r4, r0] + add r0, r1, #0 + mov r2, #1 + add r0, #0x14 + str r2, [r4, r0] + add r0, r1, #0 + mov r2, #0 + add r0, #0x10 + sub r1, #0x18 + str r2, [r4, r0] + add r0, r4, r1 + add r1, sp, #0 + bl FUN_0207B000 + mov r1, #0x53 + lsl r1, r1, #2 + ldr r0, _021D8DE8 ; =0x020FA6E8 + add r1, r4, r1 + mov r2, #0x43 + bl FUN_02006234 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0xc + add sp, #4 + pop {r3, r4, pc} + nop +_021D8DE4: .word 0x021D8E48 +_021D8DE8: .word 0x020FA6E8 + thumb_func_end MOD76_021D8D5C + + thumb_func_start MOD76_021D8DEC +MOD76_021D8DEC: ; 0x021D8DEC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02006290 + cmp r0, #0 + beq _021D8E3E + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02006260 + add r0, r4, #0 + bl MOD76_021D7638 + ldr r1, [r4] + add r0, r4, #0 + ldrh r1, [r1, #0x10] + mov r2, #1 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl MOD76_021D8C88 + add r0, r4, #0 + mov r1, #0 + bl MOD76_021D8CB4 + add r0, r4, #0 + bl MOD76_021D8D24 + ldr r0, _021D8E44 ; =0x00000162 + ldr r1, [r4] + ldrb r2, [r4, r0] + add r0, #0x1e + strb r2, [r1, #0x17] + mov r1, #7 + str r1, [r4, r0] + mov r0, #0 + pop {r4, pc} +_021D8E3E: + mov r0, #0xc + pop {r4, pc} + nop +_021D8E44: .word 0x00000162 + thumb_func_end MOD76_021D8DEC + + .section .rodata + ; 0x021D8E48 + .incbin "baserom.nds", 0x2D7568, 0x498 diff --git a/arm9/modules/77/asm/module_77.s b/arm9/modules/77/asm/module_77.s new file mode 100644 index 00000000..fdbd40cd --- /dev/null +++ b/arm9/modules/77/asm/module_77.s @@ -0,0 +1,3214 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD77_021D74E0 +MOD77_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F34 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D75D4 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D75D8 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #3 + mov r1, #0x32 + lsl r2, r2, #7 + bl FUN_0201681C + ldr r1, _021D75DC ; =0x0000C32C + add r0, r4, #0 + mov r2, #0x32 + bl FUN_02006268 + ldr r2, _021D75DC ; =0x0000C32C + mov r1, #0 + add r5, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x32 + str r0, [r5] + ldr r0, _021D75E0 ; =0x020ECAC4 + ldrb r0, [r0] + cmp r0, #1 + bne _021D753E + mov r1, #1 + b _021D7540 +_021D753E: + mov r1, #0 +_021D7540: + ldr r0, _021D75E4 ; =0x0000C2F0 + str r1, [r5, r0] + add r0, r4, #0 + bl FUN_0200628C + add r4, r0, #0 + bl FUN_02029AFC + str r0, [r5, #4] + bl FUN_02029B38 + ldr r1, _021D75E8 ; =0x0000C314 + str r0, [r5, r1] + ldr r0, [r5, #4] + bl FUN_02029B3C + ldr r1, _021D75EC ; =0x0000C318 + str r0, [r5, r1] + ldr r0, [r5, #4] + bl FUN_02029C00 + ldr r1, _021D75F0 ; =0x0000C324 + str r0, [r5, r1] + add r0, r4, #0 + bl LoadPlayerDataAddress + str r0, [r5, #8] + bl MOD77_021D7C24 + bl MOD77_021D7C44 + ldr r0, [r5] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201B2EC + ldr r0, [r5] + bl FUN_02016B94 + ldr r1, _021D75F4 ; =0x0000C010 + str r0, [r5, r1] + bl FUN_0201E788 + bl FUN_0201BD5C + ldr r2, [r5] + mov r0, #8 + mov r1, #0x40 + bl FUN_0200AA90 + ldr r1, _021D75F8 ; =0x0000C070 + str r0, [r5, r1] + ldr r0, [r5] + bl FUN_0201EB64 + ldr r1, _021D75FC ; =0x0000C2CC + str r0, [r5, r1] + mov r0, #0 + add r1, #0x1c + str r0, [r5, r1] + ldr r0, _021D7600 ; =0x021C4918 + mov r1, #1 + strb r1, [r0, #5] + bl FUN_0201E7A0 + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + add r0, r5, #0 + bl MOD77_021D7C64 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D75D4: .word 0xFFFFE0FF +_021D75D8: .word 0x04001000 +_021D75DC: .word 0x0000C32C +_021D75E0: .word 0x020ECAC4 +_021D75E4: .word 0x0000C2F0 +_021D75E8: .word 0x0000C314 +_021D75EC: .word 0x0000C318 +_021D75F0: .word 0x0000C324 +_021D75F4: .word 0x0000C010 +_021D75F8: .word 0x0000C070 +_021D75FC: .word 0x0000C2CC +_021D7600: .word 0x021C4918 + thumb_func_end MOD77_021D74E0 + + thumb_func_start MOD77_021D7604 +MOD77_021D7604: ; 0x021D7604 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + mov r7, #0 + cmp r1, #0x12 + bls _021D761A + b _021D7B66 +_021D761A: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D7626: ; jump table + .short _021D764C - _021D7626 - 2 ; case 0 + .short _021D76A8 - _021D7626 - 2 ; case 1 + .short _021D76B6 - _021D7626 - 2 ; case 2 + .short _021D76D6 - _021D7626 - 2 ; case 3 + .short _021D76FA - _021D7626 - 2 ; case 4 + .short _021D7744 - _021D7626 - 2 ; case 5 + .short _021D776C - _021D7626 - 2 ; case 6 + .short _021D77A2 - _021D7626 - 2 ; case 7 + .short _021D77DE - _021D7626 - 2 ; case 8 + .short _021D7838 - _021D7626 - 2 ; case 9 + .short _021D7886 - _021D7626 - 2 ; case 10 + .short _021D78DC - _021D7626 - 2 ; case 11 + .short _021D78EE - _021D7626 - 2 ; case 12 + .short _021D7916 - _021D7626 - 2 ; case 13 + .short _021D7964 - _021D7626 - 2 ; case 14 + .short _021D7A32 - _021D7626 - 2 ; case 15 + .short _021D7B0E - _021D7626 - 2 ; case 16 + .short _021D7B1C - _021D7626 - 2 ; case 17 + .short _021D7B3E - _021D7626 - 2 ; case 18 +_021D764C: + ldr r2, _021D7968 ; =0x0000013E + ldr r3, [r4] + mov r0, #1 + mov r1, #0x1a + bl FUN_0200A86C + ldr r1, _021D796C ; =0x0000C060 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD77_021D8814 + add r0, r4, #0 + bl MOD77_021D7FAC + add r0, r7, #0 + ldr r1, _021D7970 ; =0x0000C2EC + add r3, r0, #0 + str r0, [r4, r1] + mov r1, #6 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r2, [r4] + str r2, [sp, #8] + add r2, r1, #0 + bl FUN_0200E1D0 + mov r0, #4 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #1 + bl FUN_0201E74C + mov r0, #8 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #1 + bl FUN_0201E74C + mov r0, #1 + str r0, [r5] + b _021D7B66 +_021D76A8: + bl FUN_0200E308 + cmp r0, #1 + bne _021D7780 + mov r0, #2 + str r0, [r5] + b _021D7B66 +_021D76B6: + add r1, r7, #0 + mov r2, #1 + bl MOD77_021D8294 + cmp r0, #1 + bne _021D7780 + ldr r0, _021D7974 ; =0x0000C314 + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D76D0 + mov r0, #3 + str r0, [r5] + b _021D7B66 +_021D76D0: + mov r0, #0xe + str r0, [r5] + b _021D7B66 +_021D76D6: + mov r1, #1 + add r2, r1, #0 + bl MOD77_021D8294 + cmp r0, #1 + bne _021D7780 + ldr r0, _021D7978 ; =0x021D8F64 + ldr r1, _021D797C ; =0x0000C024 + str r0, [sp] + ldr r2, _021D7980 ; =0x021D8F18 + ldr r3, _021D7984 ; =0x021D8FB4 + add r0, r4, #0 + add r1, r4, r1 + bl MOD77_021D8370 + mov r0, #4 + str r0, [r5] + b _021D7B66 +_021D76FA: + ldr r0, _021D7988 ; =0x0000C054 + ldr r0, [r4, r0] + bl FUN_02001204 + add r6, r0, #0 + sub r0, r7, #1 + cmp r6, r0 + beq _021D7780 + add r0, r4, #0 + bl MOD77_021D84D8 + ldr r0, _021D798C ; =0x000005DC + bl FUN_020054C8 + add r0, r6, #2 + cmp r0, #4 + bhi _021D7732 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7728: ; jump table + .short _021D773E - _021D7728 - 2 ; case 0 + .short _021D7732 - _021D7728 - 2 ; case 1 + .short _021D7732 - _021D7728 - 2 ; case 2 + .short _021D7738 - _021D7728 - 2 ; case 3 + .short _021D773E - _021D7728 - 2 ; case 4 +_021D7732: + mov r0, #0xe + str r0, [r5] + b _021D7B66 +_021D7738: + mov r0, #5 + str r0, [r5] + b _021D7B66 +_021D773E: + mov r0, #0x11 + str r0, [r5] + b _021D7B66 +_021D7744: + mov r1, #2 + mov r2, #1 + bl MOD77_021D8294 + cmp r0, #1 + bne _021D7780 + ldr r0, [r4] + ldr r1, _021D7990 ; =0x021D8F38 + str r0, [sp] + ldr r0, _021D7994 ; =0x0000C010 + ldr r2, _021D7998 ; =0x000001D9 + ldr r0, [r4, r0] + mov r3, #7 + bl FUN_02002198 + ldr r1, _021D799C ; =0x0000C05C + str r0, [r4, r1] + mov r0, #6 + str r0, [r5] + b _021D7B66 +_021D776C: + ldr r0, _021D799C ; =0x0000C05C + ldr r1, [r4] + ldr r0, [r4, r0] + bl FUN_020021AC + cmp r0, #0 + beq _021D7782 + sub r1, r7, #2 + cmp r0, r1 + beq _021D779C +_021D7780: + b _021D7B66 +_021D7782: + ldr r0, _021D79A0 ; =0x0000C2F0 + ldr r1, [r4, r0] + cmp r1, #1 + bne _021D7796 + mov r1, #0x67 + add r0, #0x2c + str r1, [r4, r0] + mov r0, #9 + str r0, [r5] + b _021D7B66 +_021D7796: + mov r0, #7 + str r0, [r5] + b _021D7B66 +_021D779C: + mov r0, #3 + str r0, [r5] + b _021D7B66 +_021D77A2: + mov r1, #3 + mov r2, #1 + bl MOD77_021D8294 + cmp r0, #1 + bne _021D77EE + ldr r1, _021D79A4 ; =0x0000C31C + add r0, r7, #0 + str r0, [r4, r1] + bl FUN_02088DA0 + add r6, r0, #0 + add r0, r7, #0 + bl FUN_02088DBC + mov r1, #0x99 + lsl r1, r1, #2 + str r1, [sp] + ldr r1, _021D797C ; =0x0000C024 + str r6, [sp, #4] + str r0, [sp, #8] + ldr r2, _021D79A8 ; =0x021D8F20 + ldr r3, _021D79AC ; =0x021D8FD4 + add r0, r4, #0 + add r1, r4, r1 + bl MOD77_021D8418 + mov r0, #8 + str r0, [r5] + b _021D7B66 +_021D77DE: + ldr r0, _021D7988 ; =0x0000C054 + ldr r0, [r4, r0] + bl FUN_02001204 + add r6, r0, #0 + sub r0, r7, #1 + cmp r6, r0 + bne _021D77F0 +_021D77EE: + b _021D7B66 +_021D77F0: + add r0, r4, #0 + bl MOD77_021D84D8 + ldr r0, _021D798C ; =0x000005DC + bl FUN_020054C8 + sub r0, r7, #2 + cmp r6, r0 + beq _021D780A + add r0, r7, #0 + bl FUN_02088DA0 + ldrb r6, [r0, r6] +_021D780A: + mov r0, #1 + mvn r0, r0 + cmp r6, r0 + beq _021D7832 + ldr r0, _021D79A4 ; =0x0000C31C + str r6, [r4, r0] + ldr r0, [r4, r0] + bl MOD77_021D8F04 + cmp r0, #1 + bne _021D7826 + mov r0, #9 + str r0, [r5] + b _021D7B66 +_021D7826: + ldr r0, _021D79B0 ; =0x0000C320 + mov r1, #0 + str r1, [r4, r0] + mov r0, #0xb + str r0, [r5] + b _021D7B66 +_021D7832: + mov r0, #3 + str r0, [r5] + b _021D7B66 +_021D7838: + mov r1, #4 + mov r2, #1 + bl MOD77_021D8294 + cmp r0, #1 + bne _021D792A + ldr r0, _021D79B0 ; =0x0000C320 + add r1, r7, #0 + str r1, [r4, r0] + sub r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02088D20 + add r6, r0, #0 + bl FUN_02088D4C + str r0, [sp, #0xc] + add r0, r6, #0 + bl FUN_02088DA0 + str r0, [sp, #0x10] + add r0, r6, #0 + bl FUN_02088DBC + ldr r1, [sp, #0xc] + ldr r2, _021D79A8 ; =0x021D8F20 + str r1, [sp] + ldr r1, [sp, #0x10] + ldr r3, _021D79AC ; =0x021D8FD4 + str r1, [sp, #4] + ldr r1, _021D797C ; =0x0000C024 + str r0, [sp, #8] + add r0, r4, #0 + add r1, r4, r1 + bl MOD77_021D8418 + mov r0, #0xa + str r0, [r5] + b _021D7B66 +_021D7886: + ldr r0, _021D7988 ; =0x0000C054 + ldr r0, [r4, r0] + bl FUN_02001204 + add r6, r0, #0 + sub r0, r7, #1 + cmp r6, r0 + beq _021D792A + add r0, r4, #0 + bl MOD77_021D84D8 + ldr r0, _021D798C ; =0x000005DC + bl FUN_020054C8 + sub r0, r7, #2 + cmp r6, r0 + beq _021D78B6 + ldr r0, _021D79A4 ; =0x0000C31C + ldr r0, [r4, r0] + bl FUN_02088D20 + bl FUN_02088DA0 + ldrb r6, [r0, r6] +_021D78B6: + mov r0, #1 + mvn r0, r0 + cmp r6, r0 + beq _021D78C8 + ldr r0, _021D79B0 ; =0x0000C320 + str r6, [r4, r0] + mov r0, #0xb + str r0, [r5] + b _021D7B66 +_021D78C8: + ldr r0, _021D79A0 ; =0x0000C2F0 + ldr r0, [r4, r0] + cmp r0, #1 + bne _021D78D6 + mov r0, #3 + str r0, [r5] + b _021D7B66 +_021D78D6: + mov r0, #7 + str r0, [r5] + b _021D7B66 +_021D78DC: + ldr r2, _021D79A4 ; =0x0000C31C + ldr r1, [r4, r2] + add r2, r2, #4 + ldr r2, [r4, r2] + bl MOD77_021D85E0 + mov r0, #0xc + str r0, [r5] + b _021D7B66 +_021D78EE: + mov r1, #5 + mov r2, #1 + bl MOD77_021D8294 + cmp r0, #1 + bne _021D792A + ldr r0, [r4] + ldr r1, _021D7990 ; =0x021D8F38 + str r0, [sp] + ldr r0, _021D7994 ; =0x0000C010 + ldr r2, _021D7998 ; =0x000001D9 + ldr r0, [r4, r0] + mov r3, #7 + bl FUN_02002198 + ldr r1, _021D799C ; =0x0000C05C + str r0, [r4, r1] + mov r0, #0xd + str r0, [r5] + b _021D7B66 +_021D7916: + ldr r0, _021D799C ; =0x0000C05C + ldr r1, [r4] + ldr r0, [r4, r0] + bl FUN_020021AC + cmp r0, #0 + beq _021D792C + sub r1, r7, #2 + cmp r0, r1 + beq _021D7958 +_021D792A: + b _021D7B66 +_021D792C: + add r0, r4, #0 + bl MOD77_021D8698 + ldr r2, _021D79A4 ; =0x0000C31C + ldr r0, [r4, #4] + ldr r1, [r4, r2] + add r2, r2, #4 + ldr r2, [r4, r2] + bl FUN_02029B08 + ldr r0, _021D79A4 ; =0x0000C31C + add r1, r0, #0 + ldr r2, [r4, r0] + sub r1, #8 + str r2, [r4, r1] + add r1, r0, #4 + ldr r1, [r4, r1] + sub r0, r0, #4 + str r1, [r4, r0] + mov r0, #0xe + str r0, [r5] + b _021D7B66 +_021D7958: + add r0, r4, #0 + bl MOD77_021D8698 + mov r0, #3 + str r0, [r5] + b _021D7B66 +_021D7964: + ldr r1, _021D79A0 ; =0x0000C2F0 + b _021D79B4 + .align 2, 0 +_021D7968: .word 0x0000013E +_021D796C: .word 0x0000C060 +_021D7970: .word 0x0000C2EC +_021D7974: .word 0x0000C314 +_021D7978: .word 0x021D8F64 +_021D797C: .word 0x0000C024 +_021D7980: .word 0x021D8F18 +_021D7984: .word 0x021D8FB4 +_021D7988: .word 0x0000C054 +_021D798C: .word 0x000005DC +_021D7990: .word 0x021D8F38 +_021D7994: .word 0x0000C010 +_021D7998: .word 0x000001D9 +_021D799C: .word 0x0000C05C +_021D79A0: .word 0x0000C2F0 +_021D79A4: .word 0x0000C31C +_021D79A8: .word 0x021D8F20 +_021D79AC: .word 0x021D8FD4 +_021D79B0: .word 0x0000C320 +_021D79B4: + ldr r0, [r4, r1] + cmp r0, #1 + bne _021D79CA + add r0, r1, #0 + add r0, #0x34 + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D79CA + add r0, r1, #4 + strh r7, [r4, r0] + b _021D79D0 +_021D79CA: + ldr r0, _021D7B74 ; =0x0000C2F4 + mov r1, #1 + strh r1, [r4, r0] +_021D79D0: + add r0, r4, #0 + bl MOD77_021D8914 + add r0, r4, #0 + bl MOD77_021D7DCC + add r0, r4, #0 + bl MOD77_021D8970 + add r0, r4, #0 + bl MOD77_021D89F4 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + ldr r0, _021D7B78 ; =0x0000C014 + mov r2, #0 + add r0, r4, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D7B7C ; =0x0000C034 + ldr r2, _021D7B80 ; =0x000001D9 + add r0, r4, r0 + mov r1, #0 + mov r3, #7 + bl FUN_0200CCA4 + ldr r0, _021D7B84 ; =0x0000C314 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021D7A1A + add r0, r4, #0 + bl MOD77_021D8510 +_021D7A1A: + add r0, r4, #0 + bl MOD77_021D86B4 + ldr r0, _021D7B88 ; =0x0000C328 + mov r1, #0 + str r1, [r4, r0] + mov r1, #1 + sub r0, #0x40 + str r1, [r4, r0] + mov r0, #0xf + str r0, [r5] + b _021D7B66 +_021D7A32: + ldr r1, _021D7B8C ; =0x0000C2D8 + ldrh r6, [r4, r1] + bl MOD77_021D7E24 + ldr r0, _021D7B90 ; =0x021C48B8 + mov r3, #2 + ldr r1, [r0, #0x48] + add r0, r1, #0 + tst r0, r3 + bne _021D7A4E + ldr r0, _021D7B94 ; =0x0000C2F8 + ldr r2, [r4, r0] + tst r2, r3 + beq _021D7A94 +_021D7A4E: + ldr r0, _021D7B7C ; =0x0000C034 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _021D7B98 ; =0x000005DD + bl FUN_020054C8 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + ldr r0, _021D7B78 ; =0x0000C014 + mov r2, #0 + add r0, r4, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D7B84 ; =0x0000C314 + ldr r1, [r4, r0] + cmp r1, #0 + bne _021D7A88 + mov r1, #2 + sub r0, #0x2c + str r1, [r4, r0] + mov r0, #3 + str r0, [r5] + b _021D7B66 +_021D7A88: + add r0, r4, #0 + bl MOD77_021D8698 + mov r0, #0x11 + str r0, [r5] + b _021D7B66 +_021D7A94: + lsl r2, r3, #9 + tst r2, r1 + beq _021D7AC0 + add r2, r0, #0 + add r2, #0x30 + ldr r2, [r4, r2] + cmp r2, #0 + bne _021D7AC0 + mov r1, #1 + add r0, #0x30 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD77_021D86B4 + ldr r0, _021D7B88 ; =0x0000C328 + ldr r0, [r4, r0] + cmp r0, #1 + bne _021D7B66 + ldr r0, _021D7B98 ; =0x000005DD + bl FUN_020054C8 + b _021D7B66 +_021D7AC0: + ldr r0, _021D7B9C ; =0x00000403 + tst r0, r1 + beq _021D7ADA + ldr r0, _021D7B88 ; =0x0000C328 + ldr r2, [r4, r0] + cmp r2, #1 + bne _021D7ADA + mov r1, #0 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD77_021D86B4 + b _021D7B66 +_021D7ADA: + ldr r2, _021D7B90 ; =0x021C48B8 + add r0, r4, #0 + ldr r2, [r2, #0x44] + bl MOD77_021D8B20 + cmp r0, #1 + bne _021D7AFA + ldr r0, _021D7B88 ; =0x0000C328 + ldr r1, [r4, r0] + cmp r1, #1 + bne _021D7AFA + mov r1, #0 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD77_021D86B4 +_021D7AFA: + ldr r0, _021D7B8C ; =0x0000C2D8 + ldrh r0, [r4, r0] + cmp r6, r0 + beq _021D7B66 + mov r0, #0x10 + str r0, [r5] + ldr r0, _021D7B98 ; =0x000005DD + bl FUN_020054C8 + b _021D7B66 +_021D7B0E: + bl MOD77_021D8CF8 + cmp r0, #1 + bne _021D7B66 + mov r0, #0xf + str r0, [r5] + b _021D7B66 +_021D7B1C: + ldr r0, _021D7BA0 ; =0x0000C2EC + add r1, r7, #0 + str r7, [r4, r0] + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + add r2, r7, #0 + str r0, [sp, #8] + add r0, r7, #0 + add r3, r7, #0 + bl FUN_0200E1D0 + mov r0, #0x12 + str r0, [r5] + b _021D7B66 +_021D7B3E: + bl FUN_0200E308 + cmp r0, #1 + bne _021D7B66 + ldr r0, _021D7BA4 ; =0x0000C2E8 + mov r1, #1 + str r1, [r4, r0] + add r0, r4, #0 + bl MOD77_021D8248 + add r0, r4, #0 + bl MOD77_021D88D0 + ldr r0, _021D7BA8 ; =0x0000C060 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + add r0, r7, #0 + str r0, [r5] + mov r7, #1 +_021D7B66: + add r0, r4, #0 + bl MOD77_021D8D84 + add r0, r7, #0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021D7B74: .word 0x0000C2F4 +_021D7B78: .word 0x0000C014 +_021D7B7C: .word 0x0000C034 +_021D7B80: .word 0x000001D9 +_021D7B84: .word 0x0000C314 +_021D7B88: .word 0x0000C328 +_021D7B8C: .word 0x0000C2D8 +_021D7B90: .word 0x021C48B8 +_021D7B94: .word 0x0000C2F8 +_021D7B98: .word 0x000005DD +_021D7B9C: .word 0x00000403 +_021D7BA0: .word 0x0000C2EC +_021D7BA4: .word 0x0000C2E8 +_021D7BA8: .word 0x0000C060 + thumb_func_end MOD77_021D7604 + + thumb_func_start MOD77_021D7BAC +MOD77_021D7BAC: ; 0x021D7BAC + push {r4, r5, r6, lr} + add r6, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + mov r0, #4 + mov r1, #0 + ldr r5, [r4] + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E74C + mov r0, #8 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #0 + bl FUN_0201E74C + ldr r0, _021D7C14 ; =0x0000C2CC + ldr r0, [r4, r0] + bl FUN_0201EB70 + ldr r0, _021D7C18 ; =0x0000C070 + ldr r0, [r4, r0] + bl FUN_0200AB18 + bl FUN_0201B398 + ldr r0, _021D7C1C ; =0x0000C010 + ldr r0, [r4, r0] + bl FUN_02016A18 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + add r0, r6, #0 + bl FUN_0200627C + add r0, r5, #0 + bl FUN_020168D0 + ldr r0, _021D7C20 ; =0x021C4918 + mov r1, #0 + strb r1, [r0, #5] + mov r0, #1 + pop {r4, r5, r6, pc} + nop +_021D7C14: .word 0x0000C2CC +_021D7C18: .word 0x0000C070 +_021D7C1C: .word 0x0000C010 +_021D7C20: .word 0x021C4918 + thumb_func_end MOD77_021D7BAC + + thumb_func_start MOD77_021D7C24 +MOD77_021D7C24: ; 0x021D7C24 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7C40 ; =0x021D9084 + add r3, sp, #0 + mov r2, #5 +_021D7C2E: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7C2E + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7C40: .word 0x021D9084 + thumb_func_end MOD77_021D7C24 + + thumb_func_start MOD77_021D7C44 +MOD77_021D7C44: ; 0x021D7C44 + push {r4, lr} + sub sp, #0x10 + ldr r4, _021D7C60 ; =0x021D8F54 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021D7C60: .word 0x021D8F54 + thumb_func_end MOD77_021D7C44 + + thumb_func_start MOD77_021D7C64 +MOD77_021D7C64: ; 0x021D7C64 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + mov r2, #0 + str r0, [sp, #8] + str r2, [r0, #0xc] + str r2, [sp] + add r0, sp, #0x20 + str r0, [sp, #4] + ldr r3, [sp, #8] + mov r0, #0x66 + ldr r3, [r3] + mov r1, #0x12 + bl FUN_02006D18 + str r0, [sp, #0x18] + ldr r0, [sp, #0x20] + mov r1, #6 + bl _u32_div_f + add r7, r0, #0 + ldr r0, [sp, #0x18] + mov r5, #1 + add r4, r0, #6 + cmp r7, #1 + ble _021D7CCA + ldr r6, [sp, #8] + add r6, #0xc +_021D7C9A: + ldrh r0, [r4] + cmp r0, #2 + beq _021D7CC2 + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, [sp, #8] + mov r2, #2 + mov r3, #4 + add r1, r0, #0 + ldrsh r2, [r4, r2] + ldrsh r3, [r4, r3] + ldr r1, [r1, #0xc] + bl MOD77_021D7D58 + ldr r0, [r6] + add r0, r0, #1 + str r0, [r6] +_021D7CC2: + add r5, r5, #1 + add r4, r4, #6 + cmp r5, r7 + blt _021D7C9A +_021D7CCA: + ldr r0, [sp, #0x18] + bl FUN_02016A18 + mov r7, #1 + bl FUN_02088D1C + str r0, [sp, #0x10] + cmp r0, #1 + ble _021D7D52 + ldr r6, [sp, #8] + add r6, #0xc +_021D7CE0: + add r0, r7, #0 + bl FUN_02088D84 + add r1, r0, #0 + mov r0, #0 + str r0, [sp] + add r0, sp, #0x1c + str r0, [sp, #4] + ldr r3, [sp, #8] + mov r0, #0x66 + ldr r3, [r3] + mov r2, #0 + bl FUN_02006D18 + str r0, [sp, #0x14] + ldr r0, [sp, #0x1c] + mov r5, #1 + lsr r0, r0, #2 + str r0, [sp, #0xc] + ldr r0, [sp, #0x14] + add r4, r0, #4 + ldr r0, [sp, #0xc] + cmp r0, #1 + ble _021D7D44 +_021D7D10: + add r0, r7, #0 + bl FUN_02088D68 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp] + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] + ldr r0, [sp, #8] + mov r2, #0 + mov r3, #2 + add r1, r0, #0 + ldrsh r2, [r4, r2] + ldrsh r3, [r4, r3] + ldr r1, [r1, #0xc] + bl MOD77_021D7D58 + ldr r0, [r6] + add r5, r5, #1 + add r0, r0, #1 + str r0, [r6] + ldr r0, [sp, #0xc] + add r4, r4, #4 + cmp r5, r0 + blt _021D7D10 +_021D7D44: + ldr r0, [sp, #0x14] + bl FUN_02016A18 + ldr r0, [sp, #0x10] + add r7, r7, #1 + cmp r7, r0 + blt _021D7CE0 +_021D7D52: + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD77_021D7C64 + + thumb_func_start MOD77_021D7D58 +MOD77_021D7D58: ; 0x021D7D58 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + ldr r5, _021D7DC8 ; =0x021D903C + add r7, r2, #0 + add r6, r3, #0 + add r4, r0, #0 + mov ip, r1 + add r3, sp, #0xc + mov r2, #4 +_021D7D6A: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7D6A + ldr r0, [r5] + mov r1, #0x30 + str r0, [r3] + mov r0, ip + add r5, r0, #0 + mul r5, r1 + add r0, r4, r5 + strh r7, [r0, #0x10] + strh r6, [r0, #0x12] + mov r0, #0 + str r0, [sp, #8] + add r0, sp, #0xc + add r1, sp, #0 + str r7, [sp] + str r6, [sp, #4] + bl MOD77_021D8AA8 + add r3, r4, r5 + add r6, sp, #0xc + add r3, #0x14 + mov r2, #4 +_021D7D9C: + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7D9C + ldr r0, [r6] + add r2, sp, #0x38 + str r0, [r3] + ldrh r1, [r2, #0x10] + ldrh r2, [r2, #0x14] + ldr r0, [r4, #4] + bl FUN_02029B40 + add r2, r4, r5 + strh r0, [r2, #0x38] + add r0, sp, #0x38 + ldrh r1, [r0, #0x10] + strh r1, [r2, #0x3a] + ldrh r0, [r0, #0x14] + strh r0, [r2, #0x3c] + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D7DC8: .word 0x021D903C + thumb_func_end MOD77_021D7D58 + + thumb_func_start MOD77_021D7DCC +MOD77_021D7DCC: ; 0x021D7DCC + push {r4, r5, r6, r7} + ldr r1, [r0, #0xc] + mov r4, #0 + cmp r1, #0 + bls _021D7E0A + ldr r1, _021D7E10 ; =0x0000C318 + add r5, r0, #0 + mov r3, #3 + sub r2, r1, #4 +_021D7DDE: + ldrh r6, [r5, #0x3a] + ldr r7, [r0, r2] + cmp r7, r6 + bne _021D7E00 + ldrh r6, [r5, #0x3c] + ldr r7, [r0, r1] + cmp r7, r6 + bne _021D7E00 + strh r3, [r5, #0x38] + mov r6, #0x10 + ldrsh r7, [r5, r6] + ldr r6, _021D7E14 ; =0x0000C2B4 + str r7, [r0, r6] + mov r6, #0x12 + ldrsh r7, [r5, r6] + ldr r6, _021D7E18 ; =0x0000C2B8 + str r7, [r0, r6] +_021D7E00: + ldr r6, [r0, #0xc] + add r4, r4, #1 + add r5, #0x30 + cmp r4, r6 + blo _021D7DDE +_021D7E0A: + pop {r4, r5, r6, r7} + bx lr + nop +_021D7E10: .word 0x0000C318 +_021D7E14: .word 0x0000C2B4 +_021D7E18: .word 0x0000C2B8 + thumb_func_end MOD77_021D7DCC + + thumb_func_start MOD77_021D7E1C +MOD77_021D7E1C: ; 0x021D7E1C + ldr r3, _021D7E20 ; =FUN_02088D20 + bx r3 + .align 2, 0 +_021D7E20: .word FUN_02088D20 + thumb_func_end MOD77_021D7E1C + + thumb_func_start MOD77_021D7E24 +MOD77_021D7E24: ; 0x021D7E24 + push {r4, lr} + sub sp, #0x18 + add r4, r0, #0 + ldr r0, _021D7F2C ; =0x0000C2F8 + mov r1, #0 + str r1, [r4, r0] + ldr r1, _021D7F30 ; =0x021C48F8 + ldrh r2, [r1, #0x20] + cmp r2, #0 + beq _021D7E86 + ldrh r2, [r1, #0x1c] + cmp r2, #0xc8 + blo _021D7E54 + cmp r2, #0xf8 + bhi _021D7E54 + ldrh r1, [r1, #0x1e] + cmp r1, #0xa8 + blo _021D7E54 + cmp r1, #0xb8 + bhi _021D7E54 + mov r1, #2 + add sp, #0x18 + str r1, [r4, r0] + pop {r4, pc} +_021D7E54: + ldr r0, _021D7F34 ; =0x0000C2FC + mov r2, #0 + add r1, r0, #0 + str r2, [r4, r0] + add r1, #0xc + str r2, [r4, r1] + add r1, r0, #0 + add r1, #0x10 + str r2, [r4, r1] + add r1, r0, #0 + add r1, #0x14 + str r2, [r4, r1] + sub r1, r0, #4 + str r2, [r4, r1] + ldr r2, _021D7F30 ; =0x021C48F8 + add r1, r0, #4 + ldrh r3, [r2, #0x1c] + str r3, [r4, r1] + add r1, r0, #0 + ldrh r2, [r2, #0x1e] + add r1, #8 + add r0, #0x14 + str r2, [r4, r1] + mov r1, #4 + str r1, [r4, r0] +_021D7E86: + ldr r0, _021D7F30 ; =0x021C48F8 + ldrh r0, [r0, #0x22] + cmp r0, #0 + beq _021D7F02 + ldr r1, _021D7F34 ; =0x0000C2FC + ldr r2, [r4, r1] + cmp r2, #0 + beq _021D7E9E + cmp r2, #1 + beq _021D7EBA + add sp, #0x18 + pop {r4, pc} +_021D7E9E: + add r0, r1, #0 + add r0, #0x14 + ldr r0, [r4, r0] + cmp r0, #0 + bne _021D7EAE + add r0, r2, #1 + str r0, [r4, r1] + b _021D7EBA +_021D7EAE: + add r0, r1, #0 + add r0, #0x14 + ldr r0, [r4, r0] + add r1, #0x14 + sub r0, r0, #1 + str r0, [r4, r1] +_021D7EBA: + add r0, sp, #0xc + mov r1, #0xc3 + str r0, [sp] + add r0, sp, #8 + lsl r1, r1, #8 + str r0, [sp, #4] + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + add r2, sp, #0x14 + add r3, sp, #0x10 + bl MOD77_021D7F3C + ldr r1, [sp, #0x14] + ldr r0, [sp, #0xc] + orr r0, r1 + ldr r1, _021D7F2C ; =0x0000C2F8 + str r0, [r4, r1] + add r0, r1, #0 + ldr r2, [sp, #0x10] + add r0, #0x10 + str r2, [r4, r0] + ldr r2, [sp, #8] + add r0, r1, #0 + add r0, #0x14 + str r2, [r4, r0] + add r0, r1, #0 + ldr r2, _021D7F30 ; =0x021C48F8 + add r0, #8 + ldrh r3, [r2, #0x1c] + add r1, #0xc + add sp, #0x18 + str r3, [r4, r0] + ldrh r0, [r2, #0x1e] + str r0, [r4, r1] + pop {r4, pc} +_021D7F02: + ldr r0, _021D7F38 ; =0x0000C310 + ldr r1, [r4, r0] + cmp r1, #0 + beq _021D7F10 + mov r1, #1 + sub r0, #0x18 + str r1, [r4, r0] +_021D7F10: + ldr r1, _021D7F34 ; =0x0000C2FC + mov r2, #0 + add r0, r1, #0 + str r2, [r4, r1] + add r0, #0xc + str r2, [r4, r0] + add r0, r1, #0 + add r0, #0x10 + str r2, [r4, r0] + add r1, #0x14 + str r2, [r4, r1] + add sp, #0x18 + pop {r4, pc} + nop +_021D7F2C: .word 0x0000C2F8 +_021D7F30: .word 0x021C48F8 +_021D7F34: .word 0x0000C2FC +_021D7F38: .word 0x0000C310 + thumb_func_end MOD77_021D7E24 + + thumb_func_start MOD77_021D7F3C +MOD77_021D7F3C: ; 0x021D7F3C + push {r3, r4, r5, r6, r7, lr} + mov lr, r0 + ldr r0, _021D7FA4 ; =0x021C48F8 + mov ip, r1 + ldrh r5, [r0, #0x1c] + mov r1, #0 + add r7, r2, #0 + add r6, r3, #0 + ldr r0, _021D7FA8 ; =0x0000FFFF + add r2, r1, #0 + add r3, r1, #0 + add r4, r1, #0 + cmp r5, r0 + beq _021D7F6C + mov r0, lr + sub r3, r5, r0 + bpl _021D7F66 + sub r0, r1, #1 + eor r3, r0 + mov r1, #0x10 + b _021D7F6C +_021D7F66: + cmp r3, #0 + ble _021D7F6C + mov r1, #0x20 +_021D7F6C: + str r1, [r7] + mov r1, #0x3f + add r0, r3, #0 + and r0, r1 + str r0, [r6] + ldr r0, _021D7FA4 ; =0x021C48F8 + ldrh r3, [r0, #0x1e] + ldr r0, _021D7FA8 ; =0x0000FFFF + cmp r3, r0 + beq _021D7F94 + mov r0, ip + sub r4, r3, r0 + bpl _021D7F8E + sub r1, #0x40 + eor r4, r1 + mov r2, #0x80 + b _021D7F94 +_021D7F8E: + cmp r4, #0 + ble _021D7F94 + mov r2, #0x40 +_021D7F94: + ldr r0, [sp, #0x18] + add r1, r4, #0 + str r2, [r0] + mov r0, #0x3f + and r1, r0 + ldr r0, [sp, #0x1c] + str r1, [r0] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D7FA4: .word 0x021C48F8 +_021D7FA8: .word 0x0000FFFF + thumb_func_end MOD77_021D7F3C + + thumb_func_start MOD77_021D7FAC +MOD77_021D7FAC: ; 0x021D7FAC + push {r3, r4, r5, lr} + sub sp, #0x18 + add r5, r0, #0 + ldr r0, _021D8208 ; =0x0000C010 + ldr r2, _021D820C ; =0x021D8F7C + ldr r0, [r5, r0] + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + ldr r0, _021D8208 ; =0x0000C010 + mov r1, #6 + ldr r0, [r5, r0] + bl FUN_02018744 + ldr r0, _021D8208 ; =0x0000C010 + ldr r2, _021D8210 ; =0x021D8F98 + ldr r0, [r5, r0] + mov r1, #7 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r2, _021D8208 ; =0x0000C010 + str r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r0, #0x81 + mov r1, #5 + mov r3, #7 + bl FUN_0200687C + mov r0, #0x80 + str r0, [sp] + ldr r0, [r5] + mov r1, #6 + str r0, [sp, #4] + mov r0, #0x81 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + mov r1, #7 + str r0, [sp, #0xc] + ldr r2, _021D8208 ; =0x0000C010 + mov r0, #0x81 + ldr r2, [r5, r2] + add r3, r1, #0 + bl FUN_020068C8 + ldr r0, [r5, #8] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r5] + mov r1, #6 + str r0, [sp, #4] + ldr r0, _021D8208 ; =0x0000C010 + ldr r2, _021D8214 ; =0x000001E2 + ldr r0, [r5, r0] + add r3, r1, #0 + bl FUN_0200CD68 + mov r0, #0 + str r0, [sp] + ldr r0, [r5] + ldr r2, _021D8218 ; =0x000001D9 + str r0, [sp, #4] + ldr r0, _021D8208 ; =0x0000C010 + mov r1, #6 + ldr r0, [r5, r0] + mov r3, #7 + bl FUN_0200CB00 + ldr r2, [r5] + mov r0, #4 + mov r1, #0x80 + bl FUN_02002ED0 + ldr r3, [r5] + mov r0, #6 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r1, _021D821C ; =0x00004753 + mov r0, #6 + bl FUN_02017FE4 + ldr r1, _021D8208 ; =0x0000C010 + ldr r2, _021D8220 ; =0x021D8F40 + ldr r0, [r5, r1] + add r1, r1, #4 + add r1, r5, r1 + bl FUN_02019150 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + ldr r0, _021D8224 ; =0x0000C014 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D8224 ; =0x0000C014 + ldr r2, _021D8214 ; =0x000001E2 + add r0, r5, r0 + mov r1, #0 + mov r3, #6 + bl FUN_0200D0BC + ldr r0, _021D8228 ; =0x0000C064 + mov r3, #0 + str r3, [r5, r0] + sub r0, #0x54 + ldr r0, [r5, r0] + ldr r2, _021D820C ; =0x021D8F7C + mov r1, #2 + bl FUN_02016C18 + ldr r0, _021D8208 ; =0x0000C010 + mov r1, #2 + ldr r0, [r5, r0] + bl FUN_02018744 + ldr r0, _021D8208 ; =0x0000C010 + ldr r2, _021D8210 ; =0x021D8F98 + ldr r0, [r5, r0] + mov r1, #3 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r2, _021D8208 ; =0x0000C010 + str r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r0, #0x81 + mov r1, #5 + mov r3, #3 + bl FUN_0200687C + mov r0, #0x80 + str r0, [sp] + ldr r0, [r5] + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x81 + mov r1, #6 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r2, _021D8208 ; =0x0000C010 + str r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r0, #0x81 + mov r1, #7 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + ldr r0, [r5] + ldr r2, _021D8218 ; =0x000001D9 + str r0, [sp, #4] + ldr r0, _021D8208 ; =0x0000C010 + mov r1, #2 + ldr r0, [r5, r0] + mov r3, #7 + bl FUN_0200CB00 + ldr r2, [r5] + mov r0, #0 + mov r1, #0x80 + bl FUN_02002ED0 + ldr r3, [r5] + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + mov r0, #2 + mov r1, #0 + bl FUN_02017FE4 + ldr r1, [r5] + mov r0, #0x10 + bl FUN_020219F4 + add r4, r0, #0 + ldr r1, [r5] + mov r0, #2 + bl FUN_02002C50 + ldr r1, _021D822C ; =0x00004E56 + add r0, sp, #0x10 + strh r1, [r0, #6] + ldr r1, _021D8230 ; =0x00003571 + mov r3, #0x82 + strh r1, [r0, #4] + ldr r1, _021D8234 ; =0x0000208C + strh r1, [r0, #2] + ldr r1, _021D8238 ; =0x00007FFF + strh r1, [r0] + mov r0, #2 + add r1, sp, #0x14 + add r1, #2 + add r2, r0, #0 + bl FUN_02017FB4 + mov r0, #2 + add r1, sp, #0x14 + add r2, r0, #0 + mov r3, #0x84 + bl FUN_02017FB4 + mov r0, #2 + add r1, sp, #0x10 + add r1, #2 + add r2, r0, #0 + mov r3, #0x86 + bl FUN_02017FB4 + mov r0, #2 + add r1, sp, #0x10 + add r2, r0, #0 + mov r3, #0x9e + bl FUN_02017FB4 + ldr r1, _021D8208 ; =0x0000C010 + ldr r2, _021D823C ; =0x021D8F30 + ldr r0, [r5, r1] + add r1, #0x24 + add r1, r5, r1 + bl FUN_02019150 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + ldr r0, _021D8240 ; =0x0000C034 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D8244 ; =0x0000C060 + mov r1, #0xc + ldr r0, [r5, r0] + add r2, r4, #0 + bl FUN_0200A8E0 + mov r0, #2 + add r1, r4, #0 + mov r2, #0 + mov r3, #0x30 + bl FUN_02002F40 + mov r1, #0 + add r3, r0, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8240 ; =0x0000C034 + str r1, [sp, #8] + add r0, r5, r0 + mov r1, #2 + add r2, r4, #0 + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02021A20 + mov r0, #2 + bl FUN_02002CF8 + add sp, #0x18 + pop {r3, r4, r5, pc} + nop +_021D8208: .word 0x0000C010 +_021D820C: .word 0x021D8F7C +_021D8210: .word 0x021D8F98 +_021D8214: .word 0x000001E2 +_021D8218: .word 0x000001D9 +_021D821C: .word 0x00004753 +_021D8220: .word 0x021D8F40 +_021D8224: .word 0x0000C014 +_021D8228: .word 0x0000C064 +_021D822C: .word 0x00004E56 +_021D8230: .word 0x00003571 +_021D8234: .word 0x0000208C +_021D8238: .word 0x00007FFF +_021D823C: .word 0x021D8F30 +_021D8240: .word 0x0000C034 +_021D8244: .word 0x0000C060 + thumb_func_end MOD77_021D7FAC + + thumb_func_start MOD77_021D8248 +MOD77_021D8248: ; 0x021D8248 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D8288 ; =0x0000C034 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _021D828C ; =0x0000C014 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _021D8290 ; =0x0000C010 + mov r1, #2 + ldr r0, [r4, r0] + bl FUN_020178A0 + ldr r0, _021D8290 ; =0x0000C010 + mov r1, #6 + ldr r0, [r4, r0] + bl FUN_020178A0 + ldr r0, _021D8290 ; =0x0000C010 + mov r1, #3 + ldr r0, [r4, r0] + bl FUN_020178A0 + ldr r0, _021D8290 ; =0x0000C010 + mov r1, #7 + ldr r0, [r4, r0] + bl FUN_020178A0 + pop {r4, pc} + nop +_021D8288: .word 0x0000C034 +_021D828C: .word 0x0000C014 +_021D8290: .word 0x0000C010 + thumb_func_end MOD77_021D8248 + + thumb_func_start MOD77_021D8294 +MOD77_021D8294: ; 0x021D8294 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _021D8348 ; =0x0000C064 + add r6, r1, #0 + ldr r1, [r5, r0] + mov r4, #0 + cmp r1, #0 + beq _021D82B0 + cmp r1, #1 + beq _021D830A + cmp r1, #2 + beq _021D832A + b _021D8340 +_021D82B0: + mov r1, #0xd8 + str r1, [sp] + mov r1, #0x20 + sub r0, #0x50 + str r1, [sp, #4] + add r0, r5, r0 + mov r1, #0xf + add r2, r4, #0 + add r3, r4, #0 + bl FUN_020196F4 + mov r0, #1 + ldr r1, [r5] + lsl r0, r0, #0xa + bl FUN_020219F4 + ldr r2, _021D834C ; =0x0000C06C + add r1, r6, #0 + str r0, [r5, r2] + add r0, r2, #0 + sub r0, #0xc + ldr r0, [r5, r0] + ldr r2, [r5, r2] + bl FUN_0200A8E0 + ldr r0, [r5, #8] + bl FUN_02024FF4 + add r3, r4, #0 + str r3, [sp] + str r0, [sp, #4] + ldr r2, _021D8350 ; =0x0000C014 + str r3, [sp, #8] + add r0, r5, r2 + add r2, #0x58 + ldr r2, [r5, r2] + mov r1, #1 + bl FUN_0201BD84 + ldr r1, _021D8354 ; =0x0000C068 + mov r2, #1 + str r0, [r5, r1] + sub r0, r1, #4 + str r2, [r5, r0] + b _021D8340 +_021D830A: + add r0, r0, #4 + ldr r0, [r5, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _021D8340 + ldr r0, _021D834C ; =0x0000C06C + ldr r0, [r5, r0] + bl FUN_02021A20 + ldr r0, _021D8348 ; =0x0000C064 + mov r1, #2 + str r1, [r5, r0] + b _021D8340 +_021D832A: + cmp r2, #0 + bne _021D8338 + ldr r0, _021D8358 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _021D8340 +_021D8338: + ldr r0, _021D8348 ; =0x0000C064 + mov r1, #0 + str r1, [r5, r0] + mov r4, #1 +_021D8340: + add r0, r4, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021D8348: .word 0x0000C064 +_021D834C: .word 0x0000C06C +_021D8350: .word 0x0000C014 +_021D8354: .word 0x0000C068 +_021D8358: .word 0x021C48B8 + thumb_func_end MOD77_021D8294 + + thumb_func_start MOD77_021D835C +MOD77_021D835C: ; 0x021D835C + push {r3, lr} + cmp r2, #0 + bne _021D8368 + ldr r0, _021D836C ; =0x000005DC + bl FUN_020054C8 +_021D8368: + pop {r3, pc} + nop +_021D836C: .word 0x000005DC + thumb_func_end MOD77_021D835C + + thumb_func_start MOD77_021D8370 +MOD77_021D8370: ; 0x021D8370 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r0, #0 + ldr r0, _021D8400 ; =0x0000C010 + add r6, r3, #0 + ldr r0, [r5, r0] + str r1, [sp] + bl FUN_02019150 + ldrh r0, [r6, #0x10] + ldr r1, [r5] + bl FUN_02012838 + ldr r1, _021D8404 ; =0x0000C058 + mov r7, #0 + str r0, [r5, r1] + ldrh r0, [r6, #0x10] + cmp r0, #0 + ble _021D83B2 + ldr r4, [sp, #0x38] +_021D8398: + ldr r0, _021D8404 ; =0x0000C058 + ldr r1, _021D8408 ; =0x0000C060 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, [r4] + ldr r3, [r4, #4] + bl FUN_02012880 + ldrh r0, [r6, #0x10] + add r7, r7, #1 + add r4, #8 + cmp r7, r0 + blt _021D8398 +_021D83B2: + add r3, sp, #4 + add r2, r3, #0 + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r6!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, _021D8404 ; =0x0000C058 + mov r1, #0 + ldr r0, [r5, r0] + str r0, [sp, #4] + ldr r0, [sp] + str r0, [sp, #0x10] + ldr r0, _021D840C ; =MOD77_021D835C + str r0, [sp, #8] + ldr r3, [r5] + add r0, r2, #0 + lsl r3, r3, #0x18 + add r2, r1, #0 + lsr r3, r3, #0x18 + bl FUN_020010A8 + ldr r1, _021D8410 ; =0x0000C054 + ldr r2, _021D8414 ; =0x000001D9 + str r0, [r5, r1] + ldr r0, [sp, #0x10] + mov r1, #1 + mov r3, #7 + bl FUN_0200CCA4 + ldr r0, [sp] + bl FUN_020191D0 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + nop +_021D8400: .word 0x0000C010 +_021D8404: .word 0x0000C058 +_021D8408: .word 0x0000C060 +_021D840C: .word MOD77_021D835C +_021D8410: .word 0x0000C054 +_021D8414: .word 0x000001D9 + thumb_func_end MOD77_021D8370 + + thumb_func_start MOD77_021D8418 +MOD77_021D8418: ; 0x021D8418 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + add r5, r0, #0 + ldr r0, _021D84C4 ; =0x0000C010 + str r1, [sp] + ldr r0, [r5, r0] + str r3, [sp, #4] + ldr r7, [sp, #0x44] + ldr r6, [sp, #0x48] + bl FUN_02019150 + ldr r2, [sp, #0x40] + ldr r3, [r5] + mov r0, #0 + mov r1, #0x1a + bl FUN_0200A86C + str r0, [sp, #8] + ldr r1, [r5] + add r0, r6, #0 + bl FUN_02012838 + ldr r1, _021D84C8 ; =0x0000C058 + mov r4, #0 + str r0, [r5, r1] + cmp r6, #0 + bls _021D8462 +_021D844E: + ldr r0, _021D84C8 ; =0x0000C058 + ldrb r2, [r7, r4] + ldr r0, [r5, r0] + ldr r1, [sp, #8] + add r3, r4, #0 + bl FUN_02012880 + add r4, r4, #1 + cmp r4, r6 + blo _021D844E +_021D8462: + ldr r0, [sp, #8] + bl FUN_0200A8B8 + ldr r4, [sp, #4] + add r3, sp, #0xc + ldmia r4!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + str r4, [sp, #4] + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + str r4, [sp, #4] + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + str r4, [sp, #4] + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, _021D84C8 ; =0x0000C058 + mov r1, #0 + ldr r0, [r5, r0] + str r4, [sp, #4] + str r0, [sp, #0xc] + add r0, sp, #0xc + strh r6, [r0, #0x10] + ldr r0, [sp] + str r0, [sp, #0x18] + ldr r0, _021D84CC ; =MOD77_021D835C + str r0, [sp, #0x10] + ldr r3, [r5] + add r0, r2, #0 + lsl r3, r3, #0x18 + add r2, r1, #0 + lsr r3, r3, #0x18 + bl FUN_020010A8 + ldr r1, _021D84D0 ; =0x0000C054 + ldr r2, _021D84D4 ; =0x000001D9 + str r0, [r5, r1] + ldr r0, [sp, #0x18] + mov r1, #1 + mov r3, #7 + bl FUN_0200CCA4 + ldr r0, [sp] + bl FUN_020191D0 + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + nop +_021D84C4: .word 0x0000C010 +_021D84C8: .word 0x0000C058 +_021D84CC: .word MOD77_021D835C +_021D84D0: .word 0x0000C054 +_021D84D4: .word 0x000001D9 + thumb_func_end MOD77_021D8418 + + thumb_func_start MOD77_021D84D8 +MOD77_021D84D8: ; 0x021D84D8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D8504 ; =0x0000C024 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _021D8504 ; =0x0000C024 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _021D8508 ; =0x0000C054 + mov r1, #0 + ldr r0, [r4, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _021D850C ; =0x0000C058 + ldr r0, [r4, r0] + bl FUN_02012870 + pop {r4, pc} + .align 2, 0 +_021D8504: .word 0x0000C024 +_021D8508: .word 0x0000C054 +_021D850C: .word 0x0000C058 + thumb_func_end MOD77_021D84D8 + + thumb_func_start MOD77_021D8510 +MOD77_021D8510: ; 0x021D8510 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #1 + ldr r1, [r5] + lsl r0, r0, #0xa + bl FUN_020219F4 + add r4, r0, #0 + mov r0, #1 + ldr r1, [r5] + lsl r0, r0, #0xa + bl FUN_020219F4 + ldr r1, _021D85C4 ; =0x0000C010 + add r6, r0, #0 + ldr r0, [r5, r1] + add r1, #0x34 + ldr r2, _021D85C8 ; =0x021D8F28 + add r1, r5, r1 + bl FUN_02019150 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x30 + str r0, [sp, #4] + ldr r0, _021D85CC ; =0x0000C044 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D85CC ; =0x0000C044 + ldr r2, _021D85D0 ; =0x000001D9 + add r0, r5, r0 + mov r1, #0 + mov r3, #7 + bl FUN_0200CCA4 + ldr r0, _021D85D4 ; =0x0000C070 + ldr r2, _021D85D8 ; =0x0000C314 + ldr r0, [r5, r0] + ldr r2, [r5, r2] + mov r1, #0 + bl FUN_0200B4A0 + ldr r3, _021D85D8 ; =0x0000C314 + ldr r0, _021D85D4 ; =0x0000C070 + ldr r2, [r5, r3] + add r3, r3, #4 + ldr r0, [r5, r0] + ldr r3, [r5, r3] + mov r1, #1 + bl FUN_0200B4D8 + ldr r0, _021D85DC ; =0x0000C060 + mov r1, #0xd + ldr r0, [r5, r0] + add r2, r6, #0 + bl FUN_0200A8E0 + ldr r0, _021D85D4 ; =0x0000C070 + add r1, r4, #0 + ldr r0, [r5, r0] + add r2, r6, #0 + bl FUN_0200B7B8 + mov r1, #0 + ldr r0, _021D85CC ; =0x0000C044 + str r1, [sp] + str r1, [sp, #4] + add r0, r5, r0 + add r2, r4, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_02021A20 + ldr r0, _021D85CC ; =0x0000C044 + add r0, r5, r0 + bl FUN_020191D0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D85C4: .word 0x0000C010 +_021D85C8: .word 0x021D8F28 +_021D85CC: .word 0x0000C044 +_021D85D0: .word 0x000001D9 +_021D85D4: .word 0x0000C070 +_021D85D8: .word 0x0000C314 +_021D85DC: .word 0x0000C060 + thumb_func_end MOD77_021D8510 + + thumb_func_start MOD77_021D85E0 +MOD77_021D85E0: ; 0x021D85E0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + str r1, [sp, #0xc] + ldr r1, [r5] + mov r0, #0x40 + add r4, r2, #0 + bl FUN_020219F4 + add r7, r0, #0 + ldr r1, [r5] + mov r0, #0x40 + bl FUN_020219F4 + ldr r1, _021D8688 ; =0x0000C010 + add r6, r0, #0 + ldr r0, [r5, r1] + add r1, #0x34 + ldr r2, _021D868C ; =0x021D8F28 + add r1, r5, r1 + bl FUN_02019150 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x30 + str r0, [sp, #4] + ldr r0, _021D8690 ; =0x0000C044 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D8690 ; =0x0000C044 + ldr r2, _021D8694 ; =0x000001D9 + add r0, r5, r0 + mov r1, #0 + mov r3, #7 + bl FUN_0200CCA4 + ldr r0, [r5] + add r1, r4, #0 + str r0, [sp] + ldr r0, [sp, #0xc] + add r2, r7, #0 + add r3, r6, #0 + bl MOD77_021D8E9C + cmp r4, #0 + beq _021D865C + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r1, #0 + ldr r0, _021D8690 ; =0x0000C044 + add r2, r6, #0 + add r0, r5, r0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 +_021D865C: + mov r1, #0 + ldr r0, _021D8690 ; =0x0000C044 + str r1, [sp] + str r1, [sp, #4] + add r0, r5, r0 + add r2, r7, #0 + add r3, r1, #0 + str r1, [sp, #8] + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r7, #0 + bl FUN_02021A20 + ldr r0, _021D8690 ; =0x0000C044 + add r0, r5, r0 + bl FUN_020191D0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8688: .word 0x0000C010 +_021D868C: .word 0x021D8F28 +_021D8690: .word 0x0000C044 +_021D8694: .word 0x000001D9 + thumb_func_end MOD77_021D85E0 + + thumb_func_start MOD77_021D8698 +MOD77_021D8698: ; 0x021D8698 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D86B0 ; =0x0000C044 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _021D86B0 ; =0x0000C044 + add r0, r4, r0 + bl FUN_02019178 + pop {r4, pc} + .align 2, 0 +_021D86B0: .word 0x0000C044 + thumb_func_end MOD77_021D8698 + + thumb_func_start MOD77_021D86B4 +MOD77_021D86B4: ; 0x021D86B4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + ldr r0, _021D8808 ; =0x0000C328 + ldr r1, [r5, r0] + cmp r1, #0 + bne _021D870E + mov r0, #1 + ldr r1, [r5] + lsl r0, r0, #0xa + bl FUN_020219F4 + add r4, r0, #0 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x30 + str r0, [sp, #4] + ldr r0, _021D880C ; =0x0000C014 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, _021D8810 ; =0x0000C060 + mov r1, #0xe + ldr r0, [r5, r0] + add r2, r4, #0 + bl FUN_0200A8E0 + mov r3, #0 + ldr r0, _021D880C ; =0x0000C014 + str r3, [sp] + str r3, [sp, #4] + add r0, r5, r0 + mov r1, #1 + add r2, r4, #0 + str r3, [sp, #8] + bl FUN_0201BD84 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} +_021D870E: + add r2, r0, #0 + sub r2, #0x74 + ldr r3, [r5, r2] + mov r1, #0 + add r2, r3, #0 + sub r2, #0x30 + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add r3, #0x30 + str r2, [sp, #0x18] + lsl r2, r3, #0x10 + asr r2, r2, #0x10 + sub r0, #0x70 + str r2, [sp, #0x14] + ldr r2, [r5, r0] + str r1, [sp, #0x1c] + add r0, r2, #0 + sub r0, #0x30 + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add r2, #0x30 + str r0, [sp, #0x10] + lsl r0, r2, #0x10 + asr r0, r0, #0x10 + str r0, [sp, #0xc] + ldr r0, [r5, #0xc] + cmp r0, #0 + bls _021D87FA + add r4, r5, #0 +_021D8748: + mov r0, #0x10 + ldrsh r2, [r4, r0] + ldr r0, [sp, #0x18] + cmp r2, r0 + ble _021D87EC + ldr r0, [sp, #0x14] + cmp r2, r0 + bge _021D87EC + mov r0, #0x12 + ldrsh r2, [r4, r0] + ldr r0, [sp, #0x10] + cmp r2, r0 + ble _021D87EC + ldr r0, [sp, #0xc] + cmp r2, r0 + bge _021D87EC + ldrh r0, [r4, #0x38] + cmp r0, #0 + beq _021D87EC + ldr r1, [r5] + mov r0, #0x40 + bl FUN_020219F4 + add r7, r0, #0 + ldr r1, [r5] + mov r0, #0x40 + bl FUN_020219F4 + add r6, r0, #0 + mov r0, #0xd8 + str r0, [sp] + mov r0, #0x30 + str r0, [sp, #4] + ldr r0, _021D880C ; =0x0000C014 + mov r2, #0 + add r0, r5, r0 + mov r1, #0xf + add r3, r2, #0 + bl FUN_020196F4 + ldr r0, [r5] + add r2, r7, #0 + str r0, [sp] + ldrh r0, [r4, #0x3a] + ldrh r1, [r4, #0x3c] + add r3, r6, #0 + bl MOD77_021D8E9C + ldrh r0, [r4, #0x3c] + cmp r0, #0 + beq _021D87C8 + mov r0, #0x10 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + ldr r0, _021D880C ; =0x0000C014 + mov r1, #1 + add r0, r5, r0 + add r2, r6, #0 + mov r3, #0 + bl FUN_0201BD84 +_021D87C8: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, _021D880C ; =0x0000C014 + mov r1, #1 + add r0, r5, r0 + add r2, r7, #0 + mov r3, #0 + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r7, #0 + bl FUN_02021A20 + mov r1, #1 +_021D87EC: + ldr r0, [sp, #0x1c] + ldr r2, [r5, #0xc] + add r0, r0, #1 + add r4, #0x30 + str r0, [sp, #0x1c] + cmp r0, r2 + blo _021D8748 +_021D87FA: + cmp r1, #0 + bne _021D8804 + ldr r0, _021D8808 ; =0x0000C328 + mov r1, #0 + str r1, [r5, r0] +_021D8804: + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8808: .word 0x0000C328 +_021D880C: .word 0x0000C014 +_021D8810: .word 0x0000C060 + thumb_func_end MOD77_021D86B4 + + thumb_func_start MOD77_021D8814 +MOD77_021D8814: ; 0x021D8814 + push {r4, lr} + add r4, r0, #0 + ldr r2, [r4] + mov r0, #0x81 + mov r1, #0 + bl LoadFromNarc_2 + ldr r2, _021D88B4 ; =0x0000C0CC + str r0, [r4, r2] + add r0, r2, #0 + sub r1, r2, #4 + sub r0, #0x58 + add r0, r4, r0 + add r1, r4, r1 + add r2, r4, r2 + bl FUN_0201B234 + ldr r2, [r4] + mov r0, #0x81 + mov r1, #1 + bl LoadFromNarc_2 + ldr r2, _021D88B8 ; =0x0000C294 + str r0, [r4, r2] + add r0, r2, #0 + add r1, r2, #0 + sub r0, #0xc8 + sub r1, #0x14 + add r0, r4, r0 + add r1, r4, r1 + add r2, r4, r2 + bl FUN_0201B234 + ldr r2, [r4] + mov r0, #0x81 + mov r1, #2 + bl LoadFromNarc_2 + ldr r2, _021D88BC ; =0x0000C298 + str r0, [r4, r2] + add r0, r2, #0 + add r1, r2, #0 + sub r0, #0x78 + sub r1, #0x14 + add r0, r4, r0 + add r1, r4, r1 + add r2, r4, r2 + bl FUN_0201B234 + ldr r2, [r4] + mov r0, #0x81 + mov r1, #3 + bl LoadFromNarc_2 + ldr r2, _021D88C0 ; =0x0000C28C + str r0, [r4, r2] + add r1, r2, #0 + ldr r0, _021D88C4 ; =0x0000C124 + sub r1, #0x14 + add r0, r4, r0 + add r1, r4, r1 + add r2, r4, r2 + bl FUN_0201B234 + ldr r2, [r4] + mov r0, #0x81 + mov r1, #4 + bl LoadFromNarc_2 + ldr r2, _021D88C8 ; =0x0000C290 + str r0, [r4, r2] + add r1, r2, #0 + ldr r0, _021D88CC ; =0x0000C178 + sub r1, #0x14 + add r0, r4, r0 + add r1, r4, r1 + add r2, r4, r2 + bl FUN_0201B234 + pop {r4, pc} + .align 2, 0 +_021D88B4: .word 0x0000C0CC +_021D88B8: .word 0x0000C294 +_021D88BC: .word 0x0000C298 +_021D88C0: .word 0x0000C28C +_021D88C4: .word 0x0000C124 +_021D88C8: .word 0x0000C290 +_021D88CC: .word 0x0000C178 + thumb_func_end MOD77_021D8814 + + thumb_func_start MOD77_021D88D0 +MOD77_021D88D0: ; 0x021D88D0 + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D8900 ; =0x0000C290 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _021D8904 ; =0x0000C28C + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _021D8908 ; =0x0000C298 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _021D890C ; =0x0000C294 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _021D8910 ; =0x0000C0CC + ldr r0, [r4, r0] + bl FUN_02016A18 + pop {r4, pc} + nop +_021D8900: .word 0x0000C290 +_021D8904: .word 0x0000C28C +_021D8908: .word 0x0000C298 +_021D890C: .word 0x0000C294 +_021D8910: .word 0x0000C0CC + thumb_func_end MOD77_021D88D0 + + thumb_func_start MOD77_021D8914 +MOD77_021D8914: ; 0x021D8914 + push {r4, r5} + ldr r1, _021D896C ; =0x0000C29C + mov r3, #0 + str r3, [r0, r1] + add r2, r1, #4 + str r3, [r0, r2] + add r2, r1, #0 + add r2, #8 + str r3, [r0, r2] + mov r2, #1 + add r4, r1, #0 + lsl r2, r2, #0xc + add r4, #0xc + str r2, [r0, r4] + add r4, r1, #0 + add r4, #0x10 + str r2, [r0, r4] + add r4, r1, #0 + add r4, #0x14 + str r2, [r0, r4] + mov r5, #0x69 + add r4, r1, #0 + lsl r5, r5, #6 + add r4, #0x18 + str r5, [r0, r4] + mov r5, #0x1f + add r4, r1, #0 + lsl r5, r5, #0xa + add r4, #0x1c + str r5, [r0, r4] + add r4, r1, #0 + add r4, #0x20 + str r3, [r0, r4] + add r3, r1, #0 + add r3, #0x24 + str r2, [r0, r3] + add r3, r1, #0 + add r3, #0x28 + str r2, [r0, r3] + add r1, #0x2c + str r2, [r0, r1] + pop {r4, r5} + bx lr + nop +_021D896C: .word 0x0000C29C + thumb_func_end MOD77_021D8914 + + thumb_func_start MOD77_021D8970 +MOD77_021D8970: ; 0x021D8970 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + ldr r6, _021D89E4 ; =0x021D8F48 + add r4, r0, #0 + ldmia r6!, {r0, r1} + add r5, sp, #8 + add r2, r5, #0 + stmia r5!, {r0, r1} + ldr r0, [r6] + add r1, r2, #0 + str r0, [r5] + add r7, sp, #0x14 + mov r3, #0 + str r3, [r7] + str r3, [r7, #4] + str r3, [r7, #8] + ldr r0, _021D89E8 ; =0x0000C2CC + str r3, [sp] + ldr r0, [r4, r0] + ldr r2, _021D89EC ; =0x000005C1 + str r0, [sp, #4] + add r0, r7, #0 + bl FUN_0201ED5C + ldr r2, _021D89E8 ; =0x0000C2CC + mov r1, #0x19 + ldr r2, [r4, r2] + mov r0, #0 + lsl r1, r1, #0xe + bl FUN_0201EC94 + ldr r1, _021D89E8 ; =0x0000C2CC + mov r0, #0 + ldr r1, [r4, r1] + bl FUN_0201EE2C + ldr r0, _021D89E8 ; =0x0000C2CC + ldr r0, [r4, r0] + bl FUN_0201EB8C + ldr r0, _021D89F0 ; =0x0000C2F4 + ldrh r1, [r4, r0] + cmp r1, #0 + bne _021D89D0 + mov r1, #1 + sub r0, #0x1c + strh r1, [r4, r0] + b _021D89D6 +_021D89D0: + mov r1, #0 + sub r0, #0x1c + strh r1, [r4, r0] +_021D89D6: + add r0, r4, #0 + bl MOD77_021D8CF8 + cmp r0, #1 + bne _021D89D6 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D89E4: .word 0x021D8F48 +_021D89E8: .word 0x0000C2CC +_021D89EC: .word 0x000005C1 +_021D89F0: .word 0x0000C2F4 + thumb_func_end MOD77_021D8970 + + thumb_func_start MOD77_021D89F4 +MOD77_021D89F4: ; 0x021D89F4 + push {r4, lr} + ldr r3, _021D8A28 ; =0x0000C2DC + add r4, r0, #0 + mov r0, #0 + str r0, [r4, r3] + add r1, r3, #4 + str r0, [r4, r1] + add r1, r3, #0 + ldr r2, _021D8A2C ; =0xFFFFF001 + add r1, #8 + str r2, [r4, r1] + ldr r1, [r4, r3] + add r2, r3, #4 + add r3, #8 + ldr r2, [r4, r2] + ldr r3, [r4, r3] + lsl r1, r1, #0x10 + lsl r2, r2, #0x10 + lsl r3, r3, #0x10 + asr r1, r1, #0x10 + asr r2, r2, #0x10 + asr r3, r3, #0x10 + bl FUN_020B8418 + pop {r4, pc} + nop +_021D8A28: .word 0x0000C2DC +_021D8A2C: .word 0xFFFFF001 + thumb_func_end MOD77_021D89F4 + + thumb_func_start MOD77_021D8A30 +MOD77_021D8A30: ; 0x021D8A30 + push {r4, r5, lr} + sub sp, #0x24 + add r4, r1, #0 + ldr r1, [r4, #4] + ldr r3, _021D8AA4 ; =0x020FFA38 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + asr r1, r1, #4 + lsl r2, r1, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r5, r0, #0 + bl MTX_RotY33_ + ldr r0, [r4] + ldr r3, _021D8AA4 ; =0x020FFA38 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotX33_ + add r0, r5, #0 + add r1, sp, #0 + add r2, r5, #0 + bl MTX_Concat33 + ldr r0, [r4, #8] + ldr r3, _021D8AA4 ; =0x020FFA38 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotZ33_ + add r0, r5, #0 + add r1, sp, #0 + add r2, r5, #0 + bl MTX_Concat33 + add sp, #0x24 + pop {r4, r5, pc} + nop +_021D8AA4: .word 0x020FFA38 + thumb_func_end MOD77_021D8A30 + + thumb_func_start MOD77_021D8AA8 +MOD77_021D8AA8: ; 0x021D8AA8 + push {r4, r5, lr} + sub sp, #0x24 + add r4, r1, #0 + ldr r1, [r4] + ldr r3, _021D8B1C ; =0x020FFA38 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + asr r1, r1, #4 + lsl r2, r1, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r5, r0, #0 + bl MTX_RotY33_ + ldr r0, [r4, #4] + ldr r3, _021D8B1C ; =0x020FFA38 + neg r0, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotX33_ + add r0, r5, #0 + add r1, sp, #0 + add r2, r5, #0 + bl MTX_Concat33 + ldr r0, [r4, #8] + ldr r3, _021D8B1C ; =0x020FFA38 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #4 + lsl r2, r0, #1 + add r1, r2, #1 + lsl r1, r1, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #0 + bl MTX_RotZ33_ + add r0, r5, #0 + add r1, sp, #0 + add r2, r5, #0 + bl MTX_Concat33 + add sp, #0x24 + pop {r4, r5, pc} + .align 2, 0 +_021D8B1C: .word 0x020FFA38 + thumb_func_end MOD77_021D8AA8 + + thumb_func_start MOD77_021D8B20 +MOD77_021D8B20: ; 0x021D8B20 + push {r3, r4, r5, r6, r7, lr} + add r3, r0, #0 + ldr r0, _021D8CD8 ; =0x0000C2B4 + add r7, r2, #0 + add r4, r0, #4 + ldr r4, [r3, r4] + ldr r2, [r3, r0] + lsl r4, r4, #0x10 + asr r4, r4, #0x10 + lsl r2, r2, #0x10 + mov lr, r4 + mov r4, #1 + mov r6, #0 + asr r2, r2, #0x10 + tst r1, r4 + bne _021D8B4E + add r1, r0, #0 + add r1, #0x44 + ldr r4, [r3, r1] + mov r1, #1 + mov ip, r4 + tst r1, r4 + beq _021D8B72 +_021D8B4E: + ldr r1, _021D8CDC ; =0x0000C2F4 + ldrh r0, [r3, r1] + cmp r0, #1 + bne _021D8B6E + add r0, r1, #0 + sub r0, #0x1c + ldrh r0, [r3, r0] + cmp r0, #0 + bne _021D8B68 + mov r0, #1 + sub r1, #0x1c + strh r0, [r3, r1] + b _021D8B6E +_021D8B68: + mov r0, #0 + sub r1, #0x1c + strh r0, [r3, r1] +_021D8B6E: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D8B72: + add r1, r0, #0 + add r1, #0x24 + ldrh r1, [r3, r1] + cmp r1, #0 + bne _021D8BA4 + add r1, r0, #0 + add r1, #0x54 + ldr r1, [r3, r1] + cmp r1, #0 + bne _021D8B8E + add r0, #0x58 + ldr r0, [r3, r0] + cmp r0, #0 + beq _021D8B9C +_021D8B8E: + lsl r0, r1, #0x16 + ldr r1, _021D8CE0 ; =0x0000C30C + lsr r0, r0, #0x10 + ldr r1, [r3, r1] + lsl r1, r1, #0x16 + lsr r1, r1, #0x10 + b _021D8BC8 +_021D8B9C: + mov r0, #1 + lsl r0, r0, #9 + add r1, r0, #0 + b _021D8BC8 +_021D8BA4: + add r1, r0, #0 + add r1, #0x54 + ldr r1, [r3, r1] + cmp r1, #0 + bne _021D8BB6 + add r0, #0x58 + ldr r0, [r3, r0] + cmp r0, #0 + beq _021D8BC4 +_021D8BB6: + lsl r0, r1, #0x12 + ldr r1, _021D8CE0 ; =0x0000C30C + lsr r0, r0, #0x10 + ldr r1, [r3, r1] + lsl r1, r1, #0x12 + lsr r1, r1, #0x10 + b _021D8BC8 +_021D8BC4: + mov r0, #0x20 + add r1, r0, #0 +_021D8BC8: + mov r4, #0x20 + tst r4, r7 + bne _021D8BD6 + mov r5, ip + mov r4, #0x20 + tst r4, r5 + beq _021D8C02 +_021D8BD6: + ldr r6, _021D8CDC ; =0x0000C2F4 + ldrh r4, [r3, r6] + cmp r4, #1 + bne _021D8BEC + add r4, r6, #0 + sub r4, #0x3c + ldr r4, [r3, r4] + sub r6, #0x3c + add r4, r4, r0 + str r4, [r3, r6] + b _021D8C00 +_021D8BEC: + ldr r5, _021D8CE4 ; =0xFFFFD820 + mov r4, lr + cmp r4, r5 + bge _021D8C00 + add r4, r6, #0 + sub r4, #0x3c + ldr r4, [r3, r4] + sub r6, #0x3c + add r4, r4, r0 + str r4, [r3, r6] +_021D8C00: + mov r6, #1 +_021D8C02: + mov r4, #0x10 + tst r4, r7 + bne _021D8C12 + ldr r4, _021D8CE8 ; =0x0000C2F8 + ldr r5, [r3, r4] + mov r4, #0x10 + tst r4, r5 + beq _021D8C3E +_021D8C12: + ldr r5, _021D8CDC ; =0x0000C2F4 + ldrh r4, [r3, r5] + cmp r4, #1 + bne _021D8C28 + add r4, r5, #0 + sub r4, #0x3c + ldr r4, [r3, r4] + sub r5, #0x3c + sub r0, r4, r0 + str r0, [r3, r5] + b _021D8C3C +_021D8C28: + ldr r4, _021D8CEC ; =0xFFFFCC80 + mov r6, lr + cmp r6, r4 + ble _021D8C3C + add r4, r5, #0 + sub r4, #0x3c + ldr r4, [r3, r4] + sub r5, #0x3c + sub r0, r4, r0 + str r0, [r3, r5] +_021D8C3C: + mov r6, #1 +_021D8C3E: + mov r4, #0x40 + add r0, r7, #0 + tst r0, r4 + bne _021D8C4E + ldr r0, _021D8CE8 ; =0x0000C2F8 + ldr r0, [r3, r0] + tst r0, r4 + beq _021D8C88 +_021D8C4E: + ldr r4, _021D8CDC ; =0x0000C2F4 + ldrh r0, [r3, r4] + cmp r0, #1 + bne _021D8C74 + mov r0, #0x3e + add r5, r2, r1 + lsl r0, r0, #8 + cmp r5, r0 + bge _021D8C6E + add r0, r4, #0 + sub r0, #0x40 + ldr r0, [r3, r0] + sub r4, #0x40 + add r0, r0, r1 + str r0, [r3, r4] + b _021D8C86 +_021D8C6E: + sub r4, #0x40 + str r0, [r3, r4] + b _021D8C86 +_021D8C74: + ldr r0, _021D8CF0 ; =0x00002020 + cmp r2, r0 + bge _021D8C86 + add r0, r4, #0 + sub r0, #0x40 + ldr r0, [r3, r0] + sub r4, #0x40 + add r0, r0, r1 + str r0, [r3, r4] +_021D8C86: + mov r6, #1 +_021D8C88: + mov r4, #0x80 + add r0, r7, #0 + tst r0, r4 + bne _021D8C98 + ldr r0, _021D8CE8 ; =0x0000C2F8 + ldr r0, [r3, r0] + tst r0, r4 + beq _021D8CD2 +_021D8C98: + ldr r4, _021D8CDC ; =0x0000C2F4 + ldrh r0, [r3, r4] + cmp r0, #1 + bne _021D8CBC + ldr r0, _021D8CF4 ; =0xFFFFC200 + sub r2, r2, r1 + cmp r2, r0 + ble _021D8CB6 + add r0, r4, #0 + sub r0, #0x40 + ldr r0, [r3, r0] + sub r4, #0x40 + sub r0, r0, r1 + str r0, [r3, r4] + b _021D8CD0 +_021D8CB6: + sub r4, #0x40 + str r0, [r3, r4] + b _021D8CD0 +_021D8CBC: + mov r0, #0x13 + lsl r0, r0, #8 + cmp r2, r0 + ble _021D8CD0 + add r0, r4, #0 + sub r0, #0x40 + ldr r0, [r3, r0] + sub r4, #0x40 + sub r0, r0, r1 + str r0, [r3, r4] +_021D8CD0: + mov r6, #1 +_021D8CD2: + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8CD8: .word 0x0000C2B4 +_021D8CDC: .word 0x0000C2F4 +_021D8CE0: .word 0x0000C30C +_021D8CE4: .word 0xFFFFD820 +_021D8CE8: .word 0x0000C2F8 +_021D8CEC: .word 0xFFFFCC80 +_021D8CF0: .word 0x00002020 +_021D8CF4: .word 0xFFFFC200 + thumb_func_end MOD77_021D8B20 + + thumb_func_start MOD77_021D8CF8 +MOD77_021D8CF8: ; 0x021D8CF8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _021D8D7C ; =0x0000C2CC + ldr r0, [r5, r0] + bl FUN_0201F010 + ldr r1, _021D8D80 ; =0x0000C2D8 + mov r4, #0 + ldrh r2, [r5, r1] + cmp r2, #0 + beq _021D8D42 + cmp r2, #1 + bne _021D8D70 + mov r2, #0x16 + lsl r2, r2, #0xe + cmp r0, r2 + ble _021D8D3A + mov r2, #2 + lsl r2, r2, #0xe + sub r0, r0, r2 + add r2, r1, #0 + sub r2, #0x18 + ldr r3, [r5, r2] + add r2, r1, #0 + sub r3, #0x80 + sub r2, #0x18 + str r3, [r5, r2] + add r2, r1, #0 + sub r2, #0x18 + ldr r2, [r5, r2] + sub r1, #0x14 + str r2, [r5, r1] + b _021D8D70 +_021D8D3A: + mov r0, #5 + lsl r0, r0, #0x10 + mov r4, #1 + b _021D8D70 +_021D8D42: + mov r2, #0x12 + lsl r2, r2, #0x10 + cmp r0, r2 + bge _021D8D6A + mov r2, #2 + lsl r2, r2, #0xe + add r0, r0, r2 + add r2, r1, #0 + sub r2, #0x18 + ldr r3, [r5, r2] + add r2, r1, #0 + add r3, #0x80 + sub r2, #0x18 + str r3, [r5, r2] + add r2, r1, #0 + sub r2, #0x18 + ldr r2, [r5, r2] + sub r1, #0x14 + str r2, [r5, r1] + b _021D8D70 +_021D8D6A: + mov r0, #0x4a + lsl r0, r0, #0xe + mov r4, #1 +_021D8D70: + ldr r1, _021D8D7C ; =0x0000C2CC + ldr r1, [r5, r1] + bl FUN_0201EFE0 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8D7C: .word 0x0000C2CC +_021D8D80: .word 0x0000C2D8 + thumb_func_end MOD77_021D8CF8 + + thumb_func_start MOD77_021D8D84 +MOD77_021D8D84: ; 0x021D8D84 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x70 + ldr r4, _021D8E74 ; =0x021D8FF4 + add r5, r0, #0 + add r3, sp, #0x4c + mov r2, #4 +_021D8D90: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D8D90 + ldr r0, [r4] + str r0, [r3] + ldr r0, _021D8E78 ; =0x0000C2E8 + ldr r0, [r5, r0] + cmp r0, #0 + beq _021D8E6E + cmp r0, #1 + beq _021D8DC2 + cmp r0, #2 + bne _021D8E6E + bl FUN_020222AC + mov r0, #0 + mov r1, #1 + bl FUN_020222B4 + ldr r0, _021D8E78 ; =0x0000C2E8 + mov r1, #0 + add sp, #0x70 + str r1, [r5, r0] + pop {r3, r4, r5, r6, r7, pc} +_021D8DC2: + bl FUN_020222AC + bl FUN_0201EBA4 + ldr r1, _021D8E7C ; =0x0000C2B4 + add r0, sp, #0x4c + add r1, r5, r1 + bl MOD77_021D8A30 + ldr r3, _021D8E80 ; =0x0000C29C + ldr r0, _021D8E84 ; =0x0000C074 + add r1, r5, r3 + add r3, #0xc + add r0, r5, r0 + add r2, sp, #0x4c + add r3, r5, r3 + bl FUN_0201B26C + ldr r4, _021D8E88 ; =0x021D9060 + add r3, sp, #0x28 + mov r2, #4 +_021D8DEC: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D8DEC + ldr r0, [r4] + add r2, sp, #0x28 + str r0, [r3] + ldr r3, _021D8E8C ; =0x0000C220 + add r1, r3, #0 + add r0, r5, r3 + add r1, #0x7c + add r3, #0xa0 + add r1, r5, r1 + add r3, r5, r3 + bl FUN_0201B26C + ldr r4, _021D8E90 ; =0x021D9018 + add r3, sp, #4 + mov r2, #4 +_021D8E12: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D8E12 + ldr r0, [r4] + mov r7, #0 + str r0, [r3] + ldr r0, [r5, #0xc] + cmp r0, #0 + bls _021D8E66 + ldr r0, _021D8E94 ; =0x0000C0D0 + add r6, r5, #0 + add r0, r5, r0 + add r6, #0x14 + add r4, r5, #0 + str r0, [sp] +_021D8E32: + add r0, r6, #0 + add r1, sp, #0x4c + add r2, sp, #4 + bl MTX_Concat33 + ldrh r2, [r4, #0x38] + cmp r2, #0 + beq _021D8E5A + add r1, r2, #0 + mov r0, #0x54 + mul r1, r0 + ldr r0, [sp] + ldr r3, _021D8E98 ; =0x0000C2C0 + add r0, r0, r1 + ldr r1, _021D8E80 ; =0x0000C29C + add r2, sp, #4 + add r1, r5, r1 + add r3, r5, r3 + bl FUN_0201B26C +_021D8E5A: + ldr r0, [r5, #0xc] + add r7, r7, #1 + add r6, #0x30 + add r4, #0x30 + cmp r7, r0 + blo _021D8E32 +_021D8E66: + mov r0, #0 + mov r1, #1 + bl FUN_020222B4 +_021D8E6E: + add sp, #0x70 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D8E74: .word 0x021D8FF4 +_021D8E78: .word 0x0000C2E8 +_021D8E7C: .word 0x0000C2B4 +_021D8E80: .word 0x0000C29C +_021D8E84: .word 0x0000C074 +_021D8E88: .word 0x021D9060 +_021D8E8C: .word 0x0000C220 +_021D8E90: .word 0x021D9018 +_021D8E94: .word 0x0000C0D0 +_021D8E98: .word 0x0000C2C0 + thumb_func_end MOD77_021D8D84 + + thumb_func_start MOD77_021D8E9C +MOD77_021D8E9C: ; 0x021D8E9C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + str r1, [sp] + add r6, r2, #0 + str r3, [sp, #4] + bl MOD77_021D7E1C + ldr r7, [sp, #0x20] + mov r2, #0x99 + add r4, r0, #0 + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #2 + add r3, r7, #0 + bl FUN_0200A86C + str r0, [sp, #8] + add r1, r5, #0 + add r2, r6, #0 + bl FUN_0200A8E0 + ldr r0, [sp, #8] + bl FUN_0200A8B8 + cmp r4, #0 + bne _021D8EDA + mov r5, #0 + mov r4, #1 + str r5, [sp] + b _021D8EDC +_021D8EDA: + mov r5, #1 +_021D8EDC: + add r0, r4, #0 + bl FUN_02088D4C + add r2, r0, #0 + mov r0, #0 + mov r1, #0x1a + add r3, r7, #0 + bl FUN_0200A86C + ldr r1, [sp] + ldr r2, [sp, #4] + add r4, r0, #0 + bl FUN_0200A8E0 + add r0, r4, #0 + bl FUN_0200A8B8 + add r0, r5, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD77_021D8E9C + + thumb_func_start MOD77_021D8F04 +MOD77_021D8F04: ; 0x021D8F04 + push {r3, lr} + bl MOD77_021D7E1C + cmp r0, #0 + beq _021D8F12 + mov r0, #1 + pop {r3, pc} +_021D8F12: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD77_021D8F04 + + .section .rodata + ; 0x021D8F18 + .incbin "baserom.nds", 0x2D9638, 0x194 diff --git a/arm9/modules/78/asm/module_78.s b/arm9/modules/78/asm/module_78.s new file mode 100644 index 00000000..03fb6972 --- /dev/null +++ b/arm9/modules/78/asm/module_78.s @@ -0,0 +1,444 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD78_021D74E0 +MOD78_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + mov r2, #2 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x48 + lsl r2, r2, #0x10 + bl FUN_0201681C + add r0, r5, #0 + mov r1, #0xa0 + mov r2, #0x48 + bl FUN_02006268 + mov r1, #0 + mov r2, #0xa0 + add r4, r0, #0 + bl Call_FillMemWithValue + add r0, r5, #0 + bl FUN_0200628C + add r5, r0, #0 + add r0, r4, #0 + ldrb r1, [r5] + add r0, #0x9c + strb r1, [r0] + add r0, r4, #0 + mov r1, #0 + add r0, #0x9d + strb r1, [r0] + mov r0, #0x48 + bl FUN_0201EB64 + str r0, [r4] + bl MOD78_021D7708 + add r0, r4, #0 + bl MOD78_021D778C + add r0, sp, #0xc + mov r1, #0 + str r1, [r0] + str r1, [r0, #4] + str r1, [r0, #8] + str r1, [sp] + str r1, [sp, #4] + ldr r1, [r4] + ldr r2, _021D75C4 ; =0x021D789C + str r1, [sp, #8] + ldr r1, _021D75C8 ; =0x0029AEC1 + ldr r3, _021D75CC ; =0x000005C1 + bl FUN_0201ECA8 + ldr r0, [r4] + bl FUN_0201EB8C + mov r4, #0 + mov r7, #2 + mov r6, #4 +_021D7558: + ldr r2, [r5, #4] + mov r0, #6 + add r1, r4, #0 + mul r1, r0 + add r3, r2, r1 + ldrsh r1, [r2, r1] + ldrsh r2, [r3, r7] + ldrsh r3, [r3, r6] + add r0, r4, #0 + bl FUN_020B8418 + ldr r2, [r5, #4] + lsl r1, r4, #1 + add r1, r2, r1 + ldrh r1, [r1, #0x18] + add r0, r4, #0 + bl FUN_020B8404 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021D7558 + ldr r2, [r5, #4] + ldrh r0, [r2, #0x20] + ldrh r1, [r2, #0x22] + ldr r2, [r2, #0x28] + bl FUN_020B83E0 + ldr r2, [r5, #4] + ldrh r0, [r2, #0x24] + ldrh r1, [r2, #0x26] + ldr r2, [r2, #0x2c] + bl FUN_020B83BC + ldr r3, [r5, #4] + ldr r0, [r3, #0x40] + str r0, [sp] + ldr r0, [r3, #0x44] + str r0, [sp, #4] + ldr r0, [r3, #0x30] + ldr r1, [r3, #0x34] + ldr r2, [r3, #0x38] + ldr r3, [r3, #0x3c] + bl FUN_020B8390 + mov r0, #0 + mov r1, #0x48 + bl FUN_02079A70 + mov r0, #1 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D75C4: .word 0x021D789C +_021D75C8: .word 0x0029AEC1 +_021D75CC: .word 0x000005C1 + thumb_func_end MOD78_021D74E0 + + thumb_func_start MOD78_021D75D0 +MOD78_021D75D0: ; 0x021D75D0 + push {r3, r4, r5, r6, lr} + sub sp, #0x3c + ldr r6, _021D76AC ; =0x021D78AC + add r2, r0, #0 + add r5, r1, #0 + add r4, sp, #0x18 + mov r3, #4 +_021D75DE: + ldmia r6!, {r0, r1} + stmia r4!, {r0, r1} + sub r3, r3, #1 + bne _021D75DE + ldr r0, [r6] + add r3, sp, #0xc + str r0, [r4] + ldr r4, _021D76B0 ; =0x021D787C + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r4] + add r1, sp, #0 + str r0, [r3] + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + str r0, [r1, #8] + add r0, r2, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r5] + cmp r0, #0 + beq _021D7614 + cmp r0, #1 + beq _021D7622 + b _021D7662 +_021D7614: + ldr r0, _021D76B4 ; =0x000006DC + bl FUN_020054C8 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7662 +_021D7622: + add r0, r4, #0 + add r0, #0x9d + ldrb r0, [r0] + cmp r0, #0 + bne _021D7654 + add r0, r4, #0 + add r0, #0x80 + ldr r2, [r0] + mov r0, #1 + ldr r1, [r2] + lsl r0, r0, #0xc + add r1, r1, r0 + ldr r0, [r2, #8] + ldrh r0, [r0, #4] + lsl r0, r0, #0xc + cmp r1, r0 + bne _021D7662 + add r1, r4, #0 + mov r0, #1 + add r1, #0x9d + strb r0, [r1] + mov r1, #0x48 + bl FUN_02079A70 + b _021D7662 +_021D7654: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7662 + add sp, #0x3c + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D7662: + mov r3, #1 + mov r2, #0 + lsl r3, r3, #0xc +_021D7668: + lsl r0, r2, #2 + add r0, r4, r0 + add r0, #0x80 + ldr r1, [r0] + ldr r5, [r1, #8] + ldr r0, [r1] + ldrh r5, [r5, #4] + add r0, r0, r3 + lsl r5, r5, #0xc + cmp r0, r5 + bge _021D7680 + str r0, [r1] +_021D7680: + add r0, r2, #1 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r2, #4 + blo _021D7668 + bl FUN_020222AC + bl FUN_0201EBA4 + add r0, r4, #4 + add r1, sp, #0 + add r2, sp, #0x18 + add r3, sp, #0xc + bl FUN_0201B26C + mov r0, #1 + add r1, r0, #0 + bl FUN_020222B4 + mov r0, #0 + add sp, #0x3c + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021D76AC: .word 0x021D78AC +_021D76B0: .word 0x021D787C +_021D76B4: .word 0x000006DC + thumb_func_end MOD78_021D75D0 + + thumb_func_start MOD78_021D76B8 +MOD78_021D76B8: ; 0x021D76B8 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + bl FUN_02006278 + add r6, r0, #0 + add r7, r6, #0 + mov r4, #0 + add r7, #0x70 +_021D76C8: + lsl r0, r4, #2 + add r5, r6, r0 + add r1, r5, #0 + add r1, #0x80 + ldr r1, [r1] + add r0, r7, #0 + bl thunk_FUN_020ae84c + ldr r0, [r5, #0x60] + bl FUN_02016A18 + add r0, r4, #1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #4 + blo _021D76C8 + ldr r0, [r6, #0x5c] + bl FUN_02016A18 + ldr r0, [r6] + bl FUN_0201EB70 + ldr r0, [sp] + bl FUN_0200627C + bl FUN_0201B398 + mov r0, #0x48 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD78_021D76B8 + + thumb_func_start MOD78_021D7708 +MOD78_021D7708: ; 0x021D7708 + push {r3, lr} + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7758 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D775C ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + bl MOD78_021D776C + mov r0, #0x48 + bl FUN_0201B2EC + ldr r2, _021D7760 ; =0x04000060 + ldr r0, _021D7764 ; =0xFFFFCFFF + ldrh r1, [r2] + and r1, r0 + mov r0, #0x20 + orr r0, r1 + strh r0, [r2] + ldr r0, _021D7768 ; =0x021D7888 + bl G3X_SetEdgeColorTable + bl FUN_0201E7A0 + pop {r3, pc} + nop +_021D7758: .word 0xFFFFE0FF +_021D775C: .word 0x04001000 +_021D7760: .word 0x04000060 +_021D7764: .word 0xFFFFCFFF +_021D7768: .word 0x021D7888 + thumb_func_end MOD78_021D7708 + + thumb_func_start MOD78_021D776C +MOD78_021D776C: ; 0x021D776C + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7788 ; =0x021D78D0 + add r3, sp, #0 + mov r2, #5 +_021D7776: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7776 + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7788: .word 0x021D78D0 + thumb_func_end MOD78_021D776C + + thumb_func_start MOD78_021D778C +MOD78_021D778C: ; 0x021D778C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0x78 + mov r1, #0x48 + bl FUN_02006670 + str r0, [sp] + add r0, r5, #0 + add r0, #0x70 + mov r1, #0x48 + mov r2, #4 + bl FUN_02016B20 + add r1, r5, #0 + add r1, #0x9c + ldrb r2, [r1] + mov r1, #0xa + ldr r0, [sp] + add r3, r2, #0 + mul r3, r1 + ldr r1, _021D7878 ; =0x021D7900 + mov r2, #0x48 + ldrh r1, [r1, r3] + bl FUN_02006704 + add r1, r5, #0 + add r2, r5, #0 + str r0, [r5, #0x5c] + add r0, r5, #4 + add r1, #0x58 + add r2, #0x5c + bl FUN_0201B234 + ldr r0, [r5, #0x5c] + bl FUN_020BC0FC + str r0, [sp, #4] + ldr r0, [r5, #0x58] + mov r1, #0 + mov r2, #0x40 + bl FUN_020BC094 + ldr r0, [r5, #0x58] + mov r1, #0 + mov r2, #0x80 + bl FUN_020BC094 + mov r2, #2 + ldr r0, [r5, #0x58] + mov r1, #0 + lsl r2, r2, #8 + bl FUN_020BC094 + mov r2, #1 + ldr r0, [r5, #0x58] + mov r1, #0 + lsl r2, r2, #0xa + bl FUN_020BC094 + add r0, r5, #0 + str r0, [sp, #8] + add r0, #0x70 + mov r6, #0 + str r0, [sp, #8] +_021D780E: + add r1, r5, #0 + add r1, #0x9c + ldrb r3, [r1] + lsl r0, r6, #2 + add r4, r5, r0 + add r2, r3, #0 + mov r1, #0xa + mul r2, r1 + ldr r3, _021D7878 ; =0x021D7900 + lsl r1, r6, #1 + add r2, r3, r2 + add r1, r1, r2 + ldrh r1, [r1, #2] + ldr r0, [sp] + mov r2, #0x48 + bl FUN_02006704 + str r0, [r4, #0x60] + mov r1, #0 + bl FUN_020BC4C8 + add r7, r0, #0 + ldr r0, [sp, #8] + ldr r2, [r5, #0x58] + add r1, r7, #0 + bl FUN_020BB8D0 + add r1, r4, #0 + add r1, #0x80 + str r0, [r1] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + ldr r2, [r5, #0x58] + ldr r3, [sp, #4] + add r1, r7, #0 + bl FUN_020B8110 + add r4, #0x80 + ldr r1, [r4] + add r0, r5, #4 + bl FUN_020B7EFC + add r0, r6, #1 + lsl r0, r0, #0x18 + lsr r6, r0, #0x18 + cmp r6, #4 + blo _021D780E + ldr r0, [sp] + bl FUN_020066F4 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D7878: .word 0x021D7900 + thumb_func_end MOD78_021D778C + + .section .rodata + ; 0x021D787C + .incbin "baserom.nds", 0x2D9B9C, 0x7C + + .section .data + ; 0x021D7900 + .incbin "baserom.nds", 0x2D9C20, 0x40 diff --git a/arm9/modules/79/asm/module_79_arm.s b/arm9/modules/79/asm/module_79_arm.s new file mode 100644 index 00000000..3b45bc8c --- /dev/null +++ b/arm9/modules/79/asm/module_79_arm.s @@ -0,0 +1,4890 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + arm_func_start MOD79_0221248C +MOD79_0221248C: ; 0x0221248C + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + movs r7, r0 + mov r6, r1 + mov r5, r2 + bne _022124B8 + ldr r0, _02212544 ; =0x02216858 + ldr r1, _02212548 ; =0x0221686C + ldr r3, _0221254C ; =0x000001B7 + mov r2, #0 + bl __msl_assertion_failed +_022124B8: + cmp r5, #0 + bne _022124D4 + ldr r0, _02212550 ; =0x0221687C + ldr r1, _02212548 ; =0x0221686C + mov r2, #0 + mov r3, #0x1b8 + bl __msl_assertion_failed +_022124D4: + ldr r4, [r5] + cmp r4, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, pc} + ldr r3, [r7, #0x10] + ldr r0, [r7, #0xc] + sub r0, r0, r3 + cmp r0, #0 + addle sp, sp, #4 + movle r0, #0 + ldmleia sp!, {r4, r5, r6, r7, pc} + ldr r1, [r7, #4] + cmp r4, r0 + movge r4, r0 + mov r0, r6 + mov r2, r4 + add r1, r1, r3 + bl memcpy + mov r0, #0 + strb r0, [r6, r4] + str r4, [r5] + ldr r1, [r7, #0x10] + mov r0, #1 + add r1, r1, r4 + str r1, [r7, #0x10] + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, pc} + .align 2, 0 +_02212544: .word 0x02216858 +_02212548: .word 0x0221686C +_0221254C: .word 0x000001B7 +_02212550: .word 0x0221687C + arm_func_end MOD79_0221248C + + arm_func_start MOD79_02212554 +MOD79_02212554: ; 0x02212554 + stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0xc + mov r8, r0 + add r6, sp, #0 + add r5, sp, #4 + add r4, r8, #0x60 + mov r7, #0 + mvn sb, #0 +_02212574: + ldr r0, [r8, #0x48] + mov r1, r7 + mov r2, r6 + mov r3, r5 + bl MOD04_021EFF5C + cmp r0, sb + beq _0221259C + ldr r0, [sp, #4] + cmp r0, #0 + beq _022125C4 +_0221259C: + mov r0, #1 + str r0, [r8, #0xfc] + mov r0, #5 + str r0, [r8, #0x38] + ldr r0, [r8, #0x48] + bl MOD04_021EFB28 + str r0, [r8, #0x4c] + add sp, sp, #0xc + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} +_022125C4: + ldr r0, [sp] + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #1 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} + ldr r3, [r8, #0x60] + ldr r1, [r8, #0x54] + ldr r2, [r8, #0x5c] + mov r0, r8 + add r1, r1, r3 + sub r2, r2, r3 + bl MOD79_02212F68 + cmp r0, sb + addeq sp, sp, #0xc + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} + ldr r1, [r4] + add r0, r1, r0 + str r0, [r4] + ldr r1, [r8, #0x60] + ldr r0, [r8, #0x5c] + cmp r1, r0 + blt _02212574 + mov r0, #1 + add sp, sp, #0xc + ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + arm_func_end MOD79_02212554 + + arm_func_start MOD79_0221262C +MOD79_0221262C: ; 0x0221262C + stmdb sp!, {r4, lr} + movs r4, r0 + bne _0221264C + ldr r0, _02212664 ; =0x02216888 + ldr r1, _02212668 ; =0x0221686C + mov r2, #0 + mov r3, #0x16c + bl __msl_assertion_failed +_0221264C: + mov r1, #0 + str r1, [r4, #0xc] + str r1, [r4, #0x10] + ldr r0, [r4, #4] + strb r1, [r0] + ldmia sp!, {r4, pc} + .align 2, 0 +_02212664: .word 0x02216888 +_02212668: .word 0x0221686C + arm_func_end MOD79_0221262C + + arm_func_start MOD79_0221266C +MOD79_0221266C: ; 0x0221266C + stmdb sp!, {r4, lr} + sub sp, sp, #0x10 + mov r2, r1 + mov r4, r0 + ldr r1, _022126A0 ; =0x02216890 + add r0, sp, #0 + bl sprintf + add r1, sp, #0 + mov r0, r4 + mov r2, #0 + bl MOD79_02212794 + add sp, sp, #0x10 + ldmia sp!, {r4, pc} + .align 2, 0 +_022126A0: .word 0x02216890 + arm_func_end MOD79_0221266C + + arm_func_start MOD79_022126A4 +MOD79_022126A4: ; 0x022126A4 + stmdb sp!, {r4, lr} + sub sp, sp, #8 + movs r4, r0 + strb r1, [sp] + bne _022126CC + ldr r0, _022126F4 ; =0x02216888 + ldr r1, _022126F8 ; =0x0221686C + ldr r3, _022126FC ; =0x00000131 + mov r2, #0 + bl __msl_assertion_failed +_022126CC: + cmp r4, #0 + addeq sp, sp, #8 + moveq r0, #0 + ldmeqia sp!, {r4, pc} + add r1, sp, #0 + mov r0, r4 + mov r2, #1 + bl MOD79_02212794 + add sp, sp, #8 + ldmia sp!, {r4, pc} + .align 2, 0 +_022126F4: .word 0x02216888 +_022126F8: .word 0x0221686C +_022126FC: .word 0x00000131 + arm_func_end MOD79_022126A4 + + arm_func_start MOD79_02212700 +MOD79_02212700: ; 0x02212700 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r4, r2 + mov r2, #0 + mov r5, r0 + bl MOD79_02212794 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, pc} + ldr r1, _0221278C ; =0x02216894 + mov r0, r5 + mov r2, #2 + bl MOD79_02212794 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, pc} + mov r0, r5 + mov r1, r4 + mov r2, #0 + bl MOD79_02212794 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, pc} + ldr r1, _02212790 ; =0x02216898 + mov r0, r5 + mov r2, #2 + bl MOD79_02212794 + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #4 + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_0221278C: .word 0x02216894 +_02212790: .word 0x02216898 + arm_func_end MOD79_02212700 + + arm_func_start MOD79_02212794 +MOD79_02212794: ; 0x02212794 + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #0xc + movs r7, r0 + mov r6, r1 + ldr r5, [r7] + bne _022127C4 + ldr r0, _02212A40 ; =0x02216888 + ldr r1, _02212A44 ; =0x0221686C + mov r2, #0 + mov r3, #0xb7 + bl __msl_assertion_failed +_022127C4: + cmp r6, #0 + bne _022127E0 + ldr r0, _02212A48 ; =0x0221689C + ldr r1, _02212A44 ; =0x0221686C + mov r2, #0 + mov r3, #0xb8 + bl __msl_assertion_failed +_022127E0: + ldr r0, [sp, #0x28] + cmp r0, #0 + bge _02212800 + ldr r0, _02212A4C ; =0x022168A4 + ldr r1, _02212A44 ; =0x0221686C + mov r2, #0 + mov r3, #0xb9 + bl __msl_assertion_failed +_02212800: + cmp r7, #0 + addeq sp, sp, #0xc + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, lr} + addeq sp, sp, #0x10 + bxeq lr + cmp r6, #0 + addeq sp, sp, #0xc + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, lr} + addeq sp, sp, #0x10 + bxeq lr + ldr r0, [sp, #0x28] + cmp r0, #0 + addlt sp, sp, #0xc + movlt r0, #0 + ldmltia sp!, {r4, r5, r6, r7, lr} + addlt sp, sp, #0x10 + bxlt lr + cmp r0, #0 + bne _02212860 + mov r0, r6 + bl strlen + str r0, [sp, #0x28] +_02212860: + ldr r0, [r7, #0x20] + cmp r0, #1 + bne _02212968 + ldr r0, [r5, #0x168] + cmp r0, #0 + bne _0221288C + ldr r0, _02212A50 ; =0x022168B4 + ldr r1, _02212A44 ; =0x0221686C + mov r2, #0 + mov r3, #0xce + bl __msl_assertion_failed +_0221288C: + ldr r2, [r7, #8] + ldr r1, [r7, #0xc] + add r0, sp, #8 + sub r1, r2, r1 + str r1, [sp, #8] + ldr r2, [r7, #4] + ldr r1, [r7, #0xc] + add r3, sp, #0x28 + add r1, r2, r1 + str r1, [sp] + str r0, [sp, #4] + ldr r4, [r5, #0x17c] + mov r0, r5 + mov r2, r6 + add r1, r5, #0x164 + .word 0xE12FFF34 + mov r4, r0 + cmp r4, #2 + bne _0221294C + ldr r0, [r7, #0x18] + cmp r0, #0 + beq _02212910 + ldr r0, [r7] + mov r1, #1 + str r1, [r0, #0xfc] + ldr r0, [r7] + mov r1, #2 + str r1, [r0, #0x38] + add sp, sp, #0xc + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, lr} + add sp, sp, #0x10 + bx lr +_02212910: + ldr r1, [r7, #0x14] + mov r0, r7 + bl MOD79_02212CF0 + cmp r0, #0 + beq _0221295C + ldr r0, [r7] + mov r2, #1 + str r2, [r0, #0xfc] + ldr r1, [r7] + add sp, sp, #0xc + str r2, [r1, #0x38] + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, lr} + add sp, sp, #0x10 + bx lr +_0221294C: + ldr r1, [r7, #0xc] + ldr r0, [sp, #8] + add r0, r1, r0 + str r0, [r7, #0xc] +_0221295C: + cmp r4, #2 + beq _0221288C + b _02212A2C +_02212968: + ldr r2, [r7, #0xc] + ldr r1, [sp, #0x28] + ldr r0, [r7, #8] + add r4, r2, r1 + cmp r4, r0 + blt _02212A00 +_02212980: + ldr r0, [r7, #0x18] + cmp r0, #0 + beq _022129B8 + ldr r0, [r7] + mov r1, #1 + str r1, [r0, #0xfc] + ldr r0, [r7] + mov r1, #2 + str r1, [r0, #0x38] + add sp, sp, #0xc + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, lr} + add sp, sp, #0x10 + bx lr +_022129B8: + ldr r1, [r7, #0x14] + mov r0, r7 + bl MOD79_02212CF0 + cmp r0, #0 + bne _022129F4 + ldr r0, [r7] + mov r2, #1 + str r2, [r0, #0xfc] + ldr r1, [r7] + add sp, sp, #0xc + str r2, [r1, #0x38] + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, lr} + add sp, sp, #0x10 + bx lr +_022129F4: + ldr r0, [r7, #8] + cmp r4, r0 + bge _02212980 +_02212A00: + ldr r3, [r7, #4] + ldr r0, [r7, #0xc] + ldr r2, [sp, #0x28] + mov r1, r6 + add r0, r3, r0 + bl memcpy + str r4, [r7, #0xc] + ldr r1, [r7, #4] + ldr r0, [r7, #0xc] + mov r2, #0 + strb r2, [r1, r0] +_02212A2C: + mov r0, #1 + add sp, sp, #0xc + ldmia sp!, {r4, r5, r6, r7, lr} + add sp, sp, #0x10 + bx lr + .align 2, 0 +_02212A40: .word 0x02216888 +_02212A44: .word 0x0221686C +_02212A48: .word 0x0221689C +_02212A4C: .word 0x022168A4 +_02212A50: .word 0x022168B4 + arm_func_end MOD79_02212794 + + arm_func_start MOD79_02212A54 +MOD79_02212A54: ; 0x02212A54 + stmdb sp!, {r4, lr} + movs r4, r0 + bne _02212A74 + ldr r0, _02212AAC ; =0x02216888 + ldr r1, _02212AB0 ; =0x0221686C + mov r2, #0 + mov r3, #0x9b + bl __msl_assertion_failed +_02212A74: + cmp r4, #0 + ldmeqia sp!, {r4, pc} + ldr r0, [r4, #4] + cmp r0, #0 + ldmeqia sp!, {r4, pc} + ldr r1, [r4, #0x1c] + cmp r1, #0 + bne _02212A98 + bl MOD04_021DD82C +_02212A98: + mov r0, r4 + mov r1, #0 + mov r2, #0x24 + bl Call_FillMemWithValue + ldmia sp!, {r4, pc} + .align 2, 0 +_02212AAC: .word 0x02216888 +_02212AB0: .word 0x0221686C + arm_func_end MOD79_02212A54 + + arm_func_start MOD79_02212AB4 +MOD79_02212AB4: ; 0x02212AB4 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + movs r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bne _02212AE4 + ldr r0, _02212BB0 ; =0x022168F0 + ldr r1, _02212BB4 ; =0x0221686C + mov r2, #0 + mov r3, #0x74 + bl __msl_assertion_failed +_02212AE4: + cmp r6, #0 + bne _02212B00 + ldr r0, _02212BB8 ; =0x02216888 + ldr r1, _02212BB4 ; =0x0221686C + mov r2, #0 + mov r3, #0x75 + bl __msl_assertion_failed +_02212B00: + cmp r5, #0 + bne _02212B1C + ldr r0, _02212BBC ; =0x022168FC + ldr r1, _02212BB4 ; =0x0221686C + mov r2, #0 + mov r3, #0x76 + bl __msl_assertion_failed +_02212B1C: + cmp r4, #0 + bgt _02212B38 + ldr r0, _02212BC0 ; =0x02216908 + ldr r1, _02212BB4 ; =0x0221686C + mov r2, #0 + mov r3, #0x77 + bl __msl_assertion_failed +_02212B38: + cmp r7, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, pc} + cmp r6, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, pc} + cmp r5, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, pc} + cmp r4, #0 + addle sp, sp, #4 + movle r0, #0 + ldmleia sp!, {r4, r5, r6, r7, pc} + str r7, [r6] + str r5, [r6, #4] + str r4, [r6, #8] + mov r2, #0 + str r2, [r6, #0xc] + str r2, [r6, #0x14] + mov r0, #1 + str r0, [r6, #0x18] + str r0, [r6, #0x1c] + str r2, [r6, #0x20] + ldr r1, [r6, #4] + strb r2, [r1] + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, pc} + .align 2, 0 +_02212BB0: .word 0x022168F0 +_02212BB4: .word 0x0221686C +_02212BB8: .word 0x02216888 +_02212BBC: .word 0x022168FC +_02212BC0: .word 0x02216908 + arm_func_end MOD79_02212AB4 + + arm_func_start MOD79_02212BC4 +MOD79_02212BC4: ; 0x02212BC4 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + movs r7, r0 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bne _02212BF4 + ldr r0, _02212CDC ; =0x022168F0 + ldr r1, _02212CE0 ; =0x0221686C + mov r2, #0 + mov r3, #0x43 + bl __msl_assertion_failed +_02212BF4: + cmp r6, #0 + bne _02212C10 + ldr r0, _02212CE4 ; =0x02216888 + ldr r1, _02212CE0 ; =0x0221686C + mov r2, #0 + mov r3, #0x44 + bl __msl_assertion_failed +_02212C10: + cmp r5, #0 + bgt _02212C2C + ldr r0, _02212CE8 ; =0x02216914 + ldr r1, _02212CE0 ; =0x0221686C + mov r2, #0 + mov r3, #0x45 + bl __msl_assertion_failed +_02212C2C: + cmp r4, #0 + bgt _02212C48 + ldr r0, _02212CEC ; =0x02216924 + ldr r1, _02212CE0 ; =0x0221686C + mov r2, #0 + mov r3, #0x46 + bl __msl_assertion_failed +_02212C48: + cmp r7, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, pc} + cmp r6, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, pc} + cmp r5, #0 + addle sp, sp, #4 + movle r0, #0 + ldmleia sp!, {r4, r5, r6, r7, pc} + cmp r4, #0 + addle sp, sp, #4 + movle r0, #0 + ldmleia sp!, {r4, r5, r6, r7, pc} + str r7, [r6] + mov r2, #0 + str r2, [r6, #4] + str r2, [r6, #8] + str r2, [r6, #0xc] + str r2, [r6, #0x10] + str r4, [r6, #0x14] + str r2, [r6, #0x18] + str r2, [r6, #0x1c] + mov r0, r6 + mov r1, r5 + str r2, [r6, #0x20] + bl MOD79_02212CF0 + cmp r0, #0 + moveq r0, #0 + ldrne r0, [r6, #4] + movne r1, #0 + strneb r1, [r0] + movne r0, #1 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, pc} + .align 2, 0 +_02212CDC: .word 0x022168F0 +_02212CE0: .word 0x0221686C +_02212CE4: .word 0x02216888 +_02212CE8: .word 0x02216914 +_02212CEC: .word 0x02216924 + arm_func_end MOD79_02212BC4 + + arm_func_start MOD79_02212CF0 +MOD79_02212CF0: ; 0x02212CF0 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + movs r5, r0 + mov r4, r1 + bne _02212D18 + ldr r0, _02212D84 ; =0x02216888 + ldr r1, _02212D88 ; =0x0221686C + mov r2, #0 + mov r3, #0x20 + bl __msl_assertion_failed +_02212D18: + cmp r4, #0 + bgt _02212D34 + ldr r0, _02212D8C ; =0x02216924 + ldr r1, _02212D88 ; =0x0221686C + mov r2, #0 + mov r3, #0x21 + bl __msl_assertion_failed +_02212D34: + cmp r5, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, pc} + cmp r4, #0 + addle sp, sp, #4 + movle r0, #0 + ldmleia sp!, {r4, r5, pc} + ldr r1, [r5, #8] + ldr r0, [r5, #4] + add r4, r1, r4 + mov r1, r4 + bl MOD04_021DD844 + cmp r0, #0 + moveq r0, #0 + strne r0, [r5, #4] + strne r4, [r5, #8] + movne r0, #1 + add sp, sp, #4 + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_02212D84: .word 0x02216888 +_02212D88: .word 0x0221686C +_02212D8C: .word 0x02216924 + arm_func_end MOD79_02212CF0 + + arm_func_start MOD79_02212D90 +MOD79_02212D90: ; 0x02212D90 + stmdb sp!, {r4, lr} + sub sp, sp, #8 + movs r4, r0 + bne _02212DB4 + ldr r0, _02212DF8 ; =0x02216938 + ldr r1, _02212DFC ; =0x02216944 + mov r2, #0 + mov r3, #0x5e + bl __msl_assertion_failed +_02212DB4: + ldr r0, [r4, #0x150] + cmp r0, #0 + addeq sp, sp, #8 + ldmeqia sp!, {r4, pc} + ldr r0, [r4, #0x140] + bl MOD04_021EF06C + str r0, [sp] + ldr r0, [r4, #0x44] + str r0, [sp, #4] + ldr r0, [r4, #4] + ldr r1, [r4, #0x148] + ldr r2, [r4, #0x14c] + ldr r3, [r4, #0x144] + ldr ip, [r4, #0x150] + .word 0xE12FFF3C + add sp, sp, #8 + ldmia sp!, {r4, pc} + .align 2, 0 +_02212DF8: .word 0x02216938 +_02212DFC: .word 0x02216944 + arm_func_end MOD79_02212D90 + + arm_func_start MOD79_02212E00 +MOD79_02212E00: ; 0x02212E00 + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x10 + movs r6, r0 + mov r5, r1 + mov r4, r2 + bne _02212E2C + ldr r0, _02212E70 ; =0x02216938 + ldr r1, _02212E74 ; =0x02216944 + mov r2, #0 + mov r3, #0x45 + bl __msl_assertion_failed +_02212E2C: + ldr ip, [r6, #0x3c] + cmp ip, #0 + addeq sp, sp, #0x10 + ldmeqia sp!, {r4, r5, r6, pc} + ldr r0, [r6, #0x100] + mov r2, r5 + str r0, [sp] + ldr r0, [r6, #0x104] + mov r3, r4 + str r0, [sp, #4] + ldr r0, [r6, #0x44] + str r0, [sp, #8] + ldr r0, [r6, #4] + ldr r1, [r6, #0x10] + .word 0xE12FFF3C + add sp, sp, #0x10 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_02212E70: .word 0x02216938 +_02212E74: .word 0x02216944 + arm_func_end MOD79_02212E00 + + arm_func_start MOD79_02212E78 +MOD79_02212E78: ; 0x02212E78 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + movs r5, r0 + bne _02212E9C + ldr r0, _02212EFC ; =0x02216938 + ldr r1, _02212F00 ; =0x02216944 + mov r2, #0 + mov r3, #0x1b + bl __msl_assertion_failed +_02212E9C: + ldr ip, [r5, #0x40] + cmp ip, #0 + addeq sp, sp, #4 + ldmeqia sp!, {r4, r5, pc} + ldr r0, [r5, #0xc] + cmp r0, #0 + movne r4, #0 + movne r3, r4 + ldreq r4, [r5, #0xc0] + ldreq r3, [r5, #0x100] + ldr r0, [r5, #0x44] + mov r2, r4 + str r0, [sp] + ldr r0, [r5, #4] + ldr r1, [r5, #0x38] + .word 0xE12FFF3C + cmp r4, #0 + addeq sp, sp, #4 + ldmeqia sp!, {r4, r5, pc} + cmp r0, #0 + moveq r0, #1 + streq r0, [r5, #0xd8] + add sp, sp, #4 + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_02212EFC: .word 0x02216938 +_02212F00: .word 0x02216944 + arm_func_end MOD79_02212E78 + + arm_func_start MOD79_02212F04 +MOD79_02212F04: ; 0x02212F04 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r3, [r6, #0x5c] + mov r5, r1 + mov r4, r2 + cmp r3, #0 + mov r3, #0 + bne _02212F48 + bl MOD79_02212F68 + mov r3, r0 + mvn r0, #0 + cmp r3, r0 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + cmp r3, r4 + moveq r0, #1 + ldmeqia sp!, {r4, r5, r6, pc} +_02212F48: + add r0, r6, #0x50 + add r1, r5, r3 + sub r2, r4, r3 + bl MOD79_02212794 + cmp r0, #0 + moveq r0, #0 + movne r0, #2 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD79_02212F04 + + arm_func_start MOD79_02212F68 +MOD79_02212F68: ; 0x02212F68 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x48] + mov r3, #0 + bl MOD04_021EFC24 + mvn r1, #0 + cmp r0, r1 + bne _02212FD8 + ldr r0, [r4, #0x48] + bl MOD04_021EFB28 + mvn r1, #5 + cmp r0, r1 + beq _02212FB4 + mvn r1, #0x19 + cmp r0, r1 + beq _02212FB4 + mvn r1, #0x4b + cmp r0, r1 + bne _02212FBC +_02212FB4: + mov r0, #0 + ldmia sp!, {r4, pc} +_02212FBC: + mov r1, #1 + str r1, [r4, #0xfc] + mov r1, #5 + str r1, [r4, #0x38] + str r0, [r4, #0x4c] + mvn r0, #0 + ldmia sp!, {r4, pc} +_02212FD8: + ldr r1, [r4, #0x10] + cmp r1, #4 + ldreq r1, [r4, #0x148] + addeq r1, r1, r0 + streq r1, [r4, #0x148] + ldmia sp!, {r4, pc} + arm_func_end MOD79_02212F68 + + arm_func_start MOD79_02212FF0 +MOD79_02212FF0: ; 0x02212FF0 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + mov r7, r0 + mov r5, r2 + ldr r2, [r5] + ldr r0, [r7, #0x134] + mov r6, r1 + cmp r0, #0 + sub r4, r2, #1 + beq _02213050 + bl MOD04_021F025C + ldr r1, _02213230 ; =0x02216958 + ldr r2, [r7, #0x138] + ldr r1, [r1] + add r1, r2, r1 + cmp r0, r1 + addlo sp, sp, #4 + movlo r0, #1 + ldmloia sp!, {r4, r5, r6, r7, pc} + ldr r1, _02213234 ; =0x0221695C + str r0, [r7, #0x138] + ldr r0, [r1] + cmp r4, r0 + movge r4, r0 +_02213050: + ldr r1, [r7, #0x84] + ldr r0, [r7, #0x80] + cmp r1, r0 + bge _02213098 + mov r1, r6 + mov r2, r5 + add r0, r7, #0x74 + bl MOD79_0221248C + ldr r1, [r7, #0x84] + ldr r0, [r7, #0x80] + add sp, sp, #4 + cmp r1, r0 + ldreq r0, [r7, #0xf8] + streq r0, [r7, #0x80] + ldreq r0, [r7, #0xf8] + streq r0, [r7, #0x84] + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, pc} +_02213098: + ldr r0, [r7, #0x48] + mov r1, r6 + mov r2, r4 + mov r3, #0 + bl MOD04_021EFC78 + mov r2, r0 + mvn r0, #0 + str r2, [sp] + cmp r2, r0 + bne _0221311C + ldr r0, [r7, #0x48] + bl MOD04_021EFB28 + mvn r1, #5 + cmp r0, r1 + beq _022130EC + mvn r1, #0x19 + cmp r0, r1 + beq _022130EC + mvn r1, #0x4b + cmp r0, r1 + bne _022130F8 +_022130EC: + add sp, sp, #4 + mov r0, #1 + ldmia sp!, {r4, r5, r6, r7, pc} +_022130F8: + mov r2, #1 + str r2, [r7, #0xfc] + mov r1, #5 + str r1, [r7, #0x38] + str r0, [r7, #0x4c] + add sp, sp, #4 + str r2, [r7, #0x130] + mov r0, #3 + ldmia sp!, {r4, r5, r6, r7, pc} +_0221311C: + cmp r2, #0 + moveq r0, #1 + streq r0, [r7, #0x130] + addeq sp, sp, #4 + moveq r0, #2 + ldmeqia sp!, {r4, r5, r6, r7, pc} + ldr r0, [r7, #0x168] + cmp r0, #0 + beq _0221320C + mov r1, r6 + add r0, r7, #0x98 + bl MOD79_02212794 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #3 + ldmeqia sp!, {r4, r5, r6, r7, pc} + mov r0, r7 + bl MOD79_02213238 + cmp r0, #0 + bne _02213188 + mov r0, #1 + str r0, [r7, #0xfc] + mov r0, #0x11 + str r0, [r7, #0x38] + add sp, sp, #4 + mov r0, #3 + ldmia sp!, {r4, r5, r6, r7, pc} +_02213188: + ldr r1, [r7, #0x80] + ldr r0, [r7, #0x84] + sub r0, r1, r0 + cmp r0, #0 + movle r0, #0 + strleb r0, [r6] + strle r0, [r5] + addle sp, sp, #4 + movle r0, #1 + ldmleia sp!, {r4, r5, r6, r7, pc} + ldr r0, [r5] + add r2, sp, #0 + sub r3, r0, #1 + mov r1, r6 + add r0, r7, #0x74 + str r3, [sp] + bl MOD79_0221248C + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #3 + ldmeqia sp!, {r4, r5, r6, r7, pc} + ldr r1, [r7, #0x84] + ldr r0, [r7, #0x80] + cmp r1, r0 + ldreq r0, [r7, #0xf8] + streq r0, [r7, #0x80] + ldreq r0, [r7, #0xf8] + streq r0, [r7, #0x84] + ldr r2, [sp] + cmp r2, #0 + addle sp, sp, #4 + movle r0, #1 + ldmleia sp!, {r4, r5, r6, r7, pc} +_0221320C: + mov r0, #0 + strb r0, [r6, r2] + ldr r1, [sp] + str r1, [r5] + ldr r1, [sp] + cmp r1, #0 + movle r0, #1 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, pc} + .align 2, 0 +_02213230: .word 0x02216958 +_02213234: .word 0x0221695C + arm_func_end MOD79_02212FF0 + + arm_func_start MOD79_02213238 +MOD79_02213238: ; 0x02213238 + stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #0x14 + mov r1, #0 + mov r4, r0 + str r1, [sp, #8] + str r1, [sp, #0xc] + add r8, sp, #0xc + add r6, sp, #8 + add r5, r4, #0x74 + add r7, r4, #0x164 +_02213260: + ldr ip, [r4, #0xa8] + ldr r0, [r4, #0xa4] + ldr r2, [r4, #0x9c] + sub r0, r0, ip + str r0, [sp, #8] + ldr r3, [r4, #0x80] + ldr r0, [r4, #0x7c] + ldr r1, [r4, #0x78] + sub r0, r0, r3 + str r0, [sp, #0xc] + add r0, r1, r3 + str r0, [sp] + str r8, [sp, #4] + ldr sb, [r4, #0x180] + mov r0, r4 + mov r1, r7 + mov r3, r6 + add r2, r2, ip + .word 0xE12FFF39 + mov sb, r0 + cmp sb, #2 + bne _022132D4 + ldr r1, [r4, #0x88] + mov r0, r5 + bl MOD79_02212CF0 + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} +_022132D4: + cmp sb, #2 + bne _022132E8 + ldr r0, [sp, #0xc] + cmp r0, #0 + beq _02213260 +_022132E8: + ldr r1, [r4, #0xa8] + ldr r0, [sp, #8] + add r0, r1, r0 + str r0, [r4, #0xa8] + ldr r1, [r4, #0x80] + ldr r0, [sp, #0xc] + add r0, r1, r0 + str r0, [r4, #0x80] + ldr r1, [r4, #0xa8] + cmp r1, #0xff + ble _02213348 + ldr r0, [r4, #0xa4] + subs r5, r0, r1 + bne _0221332C + add r0, r4, #0x98 + bl MOD79_0221262C + b _02213348 +_0221332C: + ldr r0, [r4, #0x9c] + mov r2, r5 + add r1, r0, r1 + bl memmove + mov r0, #0 + str r0, [r4, #0xa8] + str r5, [r4, #0xa4] +_02213348: + cmp sb, #3 + addne sp, sp, #0x14 + movne r0, #1 + ldmneia sp!, {r4, r5, r6, r7, r8, sb, pc} + mov r0, #1 + str r0, [r4, #0xfc] + mov r0, #0x11 + str r0, [r4, #0x38] + mov r0, #0 + add sp, sp, #0x14 + ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + arm_func_end MOD79_02213238 + + arm_func_start MOD79_02213374 +MOD79_02213374: ; 0x02213374 + bx lr + arm_func_end MOD79_02213374 + + arm_func_start MOD79_02213378 +MOD79_02213378: ; 0x02213378 + bx lr + arm_func_end MOD79_02213378 + + arm_func_start MOD79_0221337C +MOD79_0221337C: ; 0x0221337C + bx lr + arm_func_end MOD79_0221337C + + arm_func_start MOD79_02213380 +MOD79_02213380: ; 0x02213380 + bx lr + arm_func_end MOD79_02213380 + + arm_func_start MOD79_02213384 +MOD79_02213384: ; 0x02213384 + stmdb sp!, {r4, r5, r6, lr} + ldr r0, _02213400 ; =0x02217138 + ldr r0, [r0] + cmp r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + ldr r0, _02213404 ; =MOD79_02213638 + bl MOD79_02213510 + ldr r5, _02213408 ; =0x0221712C + mov r6, #0 + ldr r0, [r5] + cmp r0, #0 + ble _022133D4 + ldr r4, _02213400 ; =0x02217138 +_022133B8: + ldr r0, [r4] + ldr r0, [r0, r6, lsl #2] + bl MOD04_021DD82C + ldr r0, [r5] + add r6, r6, #1 + cmp r6, r0 + blt _022133B8 +_022133D4: + ldr r0, _02213400 ; =0x02217138 + ldr r0, [r0] + bl MOD04_021DD82C + ldr r2, _02213400 ; =0x02217138 + mov r3, #0 + ldr r1, _02213408 ; =0x0221712C + ldr r0, _0221340C ; =0x02217130 + str r3, [r2] + str r3, [r1] + str r3, [r0] + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_02213400: .word 0x02217138 +_02213404: .word MOD79_02213638 +_02213408: .word 0x0221712C +_0221340C: .word 0x02217130 + arm_func_end MOD79_02213384 + + arm_func_start MOD79_02213410 +MOD79_02213410: ; 0x02213410 + stmdb sp!, {r4, lr} + movs r4, r0 + bne _02213430 + ldr r0, _022134FC ; =0x02216960 + ldr r1, _02213500 ; =0x0221696C + ldr r3, _02213504 ; =0x00000132 + mov r2, #0 + bl __msl_assertion_failed +_02213430: + ldr r0, [r4, #0x108] + cmp r0, #0 + bne _02213450 + ldr r0, _02213508 ; =0x02216980 + ldr r1, _02213500 ; =0x0221696C + ldr r3, _0221350C ; =0x00000133 + mov r2, #0 + bl __msl_assertion_failed +_02213450: + mov r0, #0 + str r0, [r4, #0x10] + ldr r0, [r4, #0x14] + bl MOD04_021DD82C + ldr r1, [r4, #0x108] + mov r0, #0 + str r1, [r4, #0x14] + str r0, [r4, #0x108] + ldr r0, [r4, #0x18] + bl MOD04_021DD82C + mov r0, #0 + str r0, [r4, #0x18] + str r0, [r4, #0x1c] + strh r0, [r4, #0x20] + ldr r0, [r4, #0x24] + bl MOD04_021DD82C + mov r0, #0 + str r0, [r4, #0x24] + ldr r0, [r4, #0x48] + mov r1, #2 + bl MOD04_021EFD80 + ldr r0, [r4, #0x48] + bl MOD04_021EFD9C + mvn r1, #0 + add r0, r4, #0x50 + str r1, [r4, #0x48] + bl MOD79_0221262C + add r0, r4, #0x74 + bl MOD79_0221262C + add r0, r4, #0x98 + bl MOD79_0221262C + mov r0, #0 + str r0, [r4, #0xe4] + str r0, [r4, #0xe8] + str r0, [r4, #0xec] + str r0, [r4, #0xf0] + str r0, [r4, #0xf4] + str r0, [r4, #0xf8] + str r0, [r4, #0x130] + ldr r0, [r4, #0x10c] + add r0, r0, #1 + str r0, [r4, #0x10c] + ldmia sp!, {r4, pc} + .align 2, 0 +_022134FC: .word 0x02216960 +_02213500: .word 0x0221696C +_02213504: .word 0x00000132 +_02213508: .word 0x02216980 +_0221350C: .word 0x00000133 + arm_func_end MOD79_02213410 + + arm_func_start MOD79_02213510 +MOD79_02213510: ; 0x02213510 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + ldr r1, _02213580 ; =0x02217130 + mov r5, r0 + ldr r0, [r1] + cmp r0, #0 + addle sp, sp, #4 + ldmleia sp!, {r4, r5, r6, r7, pc} + bl MOD79_02213378 + ldr r7, _02213584 ; =0x0221712C + mov r4, #0 + ldr r0, [r7] + cmp r0, #0 + ble _02213574 + ldr r6, _02213588 ; =0x02217138 +_0221354C: + ldr r0, [r6] + ldr r0, [r0, r4, lsl #2] + ldr r1, [r0] + cmp r1, #0 + beq _02213564 + .word 0xE12FFF35 +_02213564: + ldr r0, [r7] + add r4, r4, #1 + cmp r4, r0 + blt _0221354C +_02213574: + bl MOD79_02213374 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, pc} + .align 2, 0 +_02213580: .word 0x02217130 +_02213584: .word 0x0221712C +_02213588: .word 0x02217138 + arm_func_end MOD79_02213510 + + arm_func_start MOD79_0221358C +MOD79_0221358C: ; 0x0221358C + stmdb sp!, {r4, lr} + movs r4, r0 + bpl _022135AC + ldr r0, _0221361C ; =0x02216998 + ldr r1, _02213620 ; =0x0221696C + ldr r3, _02213624 ; =0x00000101 + mov r2, #0 + bl __msl_assertion_failed +_022135AC: + ldr r0, _02213628 ; =0x0221712C + ldr r0, [r0] + cmp r4, r0 + blt _022135D0 + ldr r0, _0221362C ; =0x022169A8 + ldr r1, _02213620 ; =0x0221696C + ldr r3, _02213630 ; =0x00000102 + mov r2, #0 + bl __msl_assertion_failed +_022135D0: + bl MOD79_02213378 + cmp r4, #0 + blt _022135EC + ldr r0, _02213628 ; =0x0221712C + ldr r0, [r0] + cmp r4, r0 + blt _022135F8 +_022135EC: + bl MOD79_02213374 + mov r0, #0 + ldmia sp!, {r4, pc} +_022135F8: + ldr r0, _02213634 ; =0x02217138 + ldr r0, [r0] + ldr r4, [r0, r4, lsl #2] + ldr r0, [r4] + cmp r0, #0 + moveq r4, #0 + bl MOD79_02213374 + mov r0, r4 + ldmia sp!, {r4, pc} + .align 2, 0 +_0221361C: .word 0x02216998 +_02213620: .word 0x0221696C +_02213624: .word 0x00000101 +_02213628: .word 0x0221712C +_0221362C: .word 0x022169A8 +_02213630: .word 0x00000102 +_02213634: .word 0x02217138 + arm_func_end MOD79_0221358C + + arm_func_start MOD79_02213638 +MOD79_02213638: ; 0x02213638 + stmdb sp!, {r4, lr} + movs r4, r0 + bne _02213658 + ldr r0, _02213800 ; =0x02216960 + ldr r1, _02213804 ; =0x0221696C + mov r2, #0 + mov r3, #0xb3 + bl __msl_assertion_failed +_02213658: + ldr r0, [r4, #4] + cmp r0, #0 + bge _02213678 + ldr r0, _02213808 ; =0x022169C4 + ldr r1, _02213804 ; =0x0221696C + mov r2, #0 + mov r3, #0xb4 + bl __msl_assertion_failed +_02213678: + ldr r0, _0221380C ; =0x0221712C + ldr r1, [r4, #4] + ldr r0, [r0] + cmp r1, r0 + blt _022136A0 + ldr r0, _02213810 ; =0x022169E0 + ldr r1, _02213804 ; =0x0221696C + mov r2, #0 + mov r3, #0xb5 + bl __msl_assertion_failed +_022136A0: + ldr r0, [r4] + cmp r0, #0 + bne _022136C0 + ldr r0, _02213814 ; =0x02216A08 + ldr r1, _02213804 ; =0x0221696C + mov r2, #0 + mov r3, #0xb6 + bl __msl_assertion_failed +_022136C0: + cmp r4, #0 + moveq r0, #0 + ldmeqia sp!, {r4, pc} + ldr r0, [r4] + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r4, pc} + ldr r1, [r4, #4] + cmp r1, #0 + movlt r0, #0 + ldmltia sp!, {r4, pc} + ldr r0, _0221380C ; =0x0221712C + ldr r0, [r0] + cmp r1, r0 + movge r0, #0 + ldmgeia sp!, {r4, pc} + bl MOD79_02213378 + ldr r0, [r4, #0x14] + bl MOD04_021DD82C + ldr r0, [r4, #0x18] + bl MOD04_021DD82C + ldr r0, [r4, #0x24] + bl MOD04_021DD82C + ldr r0, [r4, #0x28] + bl MOD04_021DD82C + ldr r0, [r4, #0x108] + bl MOD04_021DD82C + ldr r0, [r4, #0x15c] + bl MOD04_021DD82C + ldr r0, [r4, #0x48] + mvn r1, #0 + cmp r0, r1 + beq _02213754 + mov r1, #2 + bl MOD04_021EFD80 + ldr r0, [r4, #0x48] + bl MOD04_021EFD9C +_02213754: + add r0, r4, #0x50 + bl MOD79_02212A54 + add r0, r4, #0x74 + bl MOD79_02212A54 + add r0, r4, #0x98 + bl MOD79_02212A54 + add r0, r4, #0xbc + bl MOD79_02212A54 + ldr r0, [r4, #0x140] + cmp r0, #0 + beq _02213788 + mov r0, r4 + bl MOD79_022149E4 +_02213788: + ldr r0, [r4, #0x13c] + cmp r0, #0 + beq _022137B0 + bl MOD79_02215074 + cmp r0, #0 + beq _022137B0 + ldr r0, [r4, #0x13c] + bl MOD79_02215058 + mov r0, #0 + str r0, [r4, #0x13c] +_022137B0: + ldr r0, [r4, #0x16c] + cmp r0, #0 + beq _022137DC + ldr r2, [r4, #0x178] + cmp r2, #0 + beq _022137D4 + mov r0, r4 + add r1, r4, #0x164 + .word 0xE12FFF32 +_022137D4: + mov r0, #0 + str r0, [r4, #0x16c] +_022137DC: + mov r1, #0 + ldr r0, _02213818 ; =0x02217130 + str r1, [r4] + ldr r1, [r0] + sub r1, r1, #1 + str r1, [r0] + bl MOD79_02213374 + mov r0, #1 + ldmia sp!, {r4, pc} + .align 2, 0 +_02213800: .word 0x02216960 +_02213804: .word 0x0221696C +_02213808: .word 0x022169C4 +_0221380C: .word 0x0221712C +_02213810: .word 0x022169E0 +_02213814: .word 0x02216A08 +_02213818: .word 0x02217130 + arm_func_end MOD79_02213638 + + arm_func_start MOD79_0221381C +MOD79_0221381C: ; 0x0221381C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + bl MOD79_02213378 + bl MOD79_022139CC + mov r5, r0 + mvn r0, #0 + cmp r5, r0 + bne _0221384C + bl MOD79_02213374 + add sp, sp, #4 + mov r0, #0 + ldmia sp!, {r4, r5, pc} +_0221384C: + ldr r0, _022139C0 ; =0x02217138 + mov r1, #0 + ldr r0, [r0] + mov r2, #0x184 + ldr r4, [r0, r5, lsl #2] + mov r0, r4 + bl Call_FillMemWithValue + mov r0, #1 + str r0, [r4] + ldr r0, _022139C4 ; =0x02217134 + str r5, [r4, #4] + ldr r2, [r0] + mov ip, #0 + add r1, r2, #1 + str r1, [r0] + str r2, [r4, #8] + str ip, [r4, #0xc] + str ip, [r4, #0x10] + str ip, [r4, #0x14] + str ip, [r4, #0x18] + str ip, [r4, #0x1c] + strh ip, [r4, #0x20] + str ip, [r4, #0x24] + str ip, [r4, #0x28] + str ip, [r4, #0x2c] + str ip, [r4, #0x30] + str ip, [r4, #0x34] + str ip, [r4, #0x38] + str ip, [r4, #0x3c] + str ip, [r4, #0x40] + str ip, [r4, #0x44] + mvn r0, #0 + str r0, [r4, #0x48] + str ip, [r4, #0x4c] + str ip, [r4, #0xe0] + str ip, [r4, #0xe4] + str ip, [r4, #0xe8] + str ip, [r4, #0xec] + str ip, [r4, #0xf0] + str ip, [r4, #0xf4] + str ip, [r4, #0xf8] + str ip, [r4, #0xfc] + str ip, [r4, #0x100] + str r0, [r4, #0x104] + str ip, [r4, #0x108] + str ip, [r4, #0x10c] + str ip, [r4, #0x110] + str ip, [r4, #0x12c] + str ip, [r4, #0x134] + str ip, [r4, #0x138] + str ip, [r4, #0x13c] + mov r0, #0x1f4 + str r0, [r4, #0x158] + add r0, r4, #0x100 + mov r1, #0x50 + strh r1, [r0, #0x60] + str ip, [r4, #0x15c] + mov r0, r4 + add r1, r4, #0x50 + mov r2, #0x800 + mov r3, #0x1000 + str ip, [r4, #0x164] + bl MOD79_02212BC4 + cmp r0, #0 + beq _02213964 + mov r2, #0x800 + mov r0, r4 + mov r3, r2 + add r1, r4, #0x74 + bl MOD79_02212BC4 +_02213964: + cmp r0, #0 + beq _02213980 + mov r0, r4 + add r1, r4, #0x98 + mov r2, #0x800 + mov r3, #0x400 + bl MOD79_02212BC4 +_02213980: + cmp r0, #0 + bne _022139A0 + mov r0, r4 + bl MOD79_02213638 + bl MOD79_02213374 + add sp, sp, #4 + mov r0, #0 + ldmia sp!, {r4, r5, pc} +_022139A0: + ldr r0, _022139C8 ; =0x02217130 + ldr r1, [r0] + add r1, r1, #1 + str r1, [r0] + bl MOD79_02213374 + mov r0, r4 + add sp, sp, #4 + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_022139C0: .word 0x02217138 +_022139C4: .word 0x02217134 +_022139C8: .word 0x02217130 + arm_func_end MOD79_0221381C + + arm_func_start MOD79_022139CC +MOD79_022139CC: ; 0x022139CC + stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #4 + ldr r1, _02213AF4 ; =0x0221712C + mov r0, #0 + ldr r2, [r1] + cmp r2, #0 + ble _02213A10 + ldr r1, _02213AF8 ; =0x02217138 + ldr r3, [r1] +_022139F0: + ldr r1, [r3, r0, lsl #2] + ldr r1, [r1] + cmp r1, #0 + addeq sp, sp, #4 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} + add r0, r0, #1 + cmp r0, r2 + blt _022139F0 +_02213A10: + ldr r0, _02213AFC ; =0x02217130 + ldr r0, [r0] + cmp r0, r2 + beq _02213A34 + ldr r0, _02213B00 ; =0x02216A1C + ldr r1, _02213B04 ; =0x0221696C + mov r2, #0 + mov r3, #0x33 + bl __msl_assertion_failed +_02213A34: + ldr r1, _02213AF4 ; =0x0221712C + ldr r0, _02213AF8 ; =0x02217138 + ldr r7, [r1] + ldr r0, [r0] + add r6, r7, #4 + mov r1, r6, lsl #2 + bl MOD04_021DD844 + cmp r0, #0 + addeq sp, sp, #4 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} + ldr r8, _02213AF8 ; =0x02217138 + mov r5, r7 + str r0, [r8] + cmp r7, r6 + bge _02213AE0 + mov sb, #0 + mov r4, #0x184 +_02213A7C: + mov r0, r4 + bl MOD04_021DD860 + ldr r1, [r8] + str r0, [r1, r5, lsl #2] + ldr r0, [r8] + ldr r0, [r0, r5, lsl #2] + cmp r0, #0 + bne _02213AD0 + sub r5, r5, #1 + cmp r5, r7 + blt _02213AC4 + ldr r4, _02213AF8 ; =0x02217138 +_02213AAC: + ldr r0, [r4] + ldr r0, [r0, r5, lsl #2] + bl MOD04_021DD82C + sub r5, r5, #1 + cmp r5, r7 + bge _02213AAC +_02213AC4: + add sp, sp, #4 + mvn r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} +_02213AD0: + add r5, r5, #1 + str sb, [r0] + cmp r5, r6 + blt _02213A7C +_02213AE0: + ldr r1, _02213AF4 ; =0x0221712C + mov r0, r7 + str r6, [r1] + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02213AF4: .word 0x0221712C +_02213AF8: .word 0x02217138 +_02213AFC: .word 0x02217130 +_02213B00: .word 0x02216A1C +_02213B04: .word 0x0221696C + arm_func_end MOD79_022139CC + + arm_func_start MOD79_02213B08 +MOD79_02213B08: ; 0x02213B08 + ldr ip, _02213B14 ; =MOD79_02213510 + ldr r0, _02213B18 ; =MOD79_02213E84 + bx ip + .align 2, 0 +_02213B14: .word MOD79_02213510 +_02213B18: .word MOD79_02213E84 + arm_func_end MOD79_02213B08 + + arm_func_start MOD79_02213B1C +MOD79_02213B1C: ; 0x02213B1C + stmdb sp!, {r4, r5, r6, r7, r8, lr} + movs r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + beq _02213B40 + ldrsb r0, [r8] + cmp r0, #0 + bne _02213B54 +_02213B40: + ldr r0, _02213D64 ; =0x02216A50 + ldr r1, _02213D68 ; =0x02216A44 + mov r2, #0 + mov r3, #0x128 + bl __msl_assertion_failed +_02213B54: + cmp r5, #0 + bge _02213B70 + ldr r0, _02213D6C ; =0x02216A60 + ldr r1, _02213D68 ; =0x02216A44 + ldr r3, _02213D70 ; =0x00000129 + mov r2, #0 + bl __msl_assertion_failed +_02213B70: + cmp r6, #0 + beq _02213B94 + cmp r5, #0 + bne _02213B94 + ldr r0, _02213D74 ; =0x02216A70 + ldr r1, _02213D68 ; =0x02216A44 + ldr r3, _02213D78 ; =0x0000012A + mov r2, #0 + bl __msl_assertion_failed +_02213B94: + cmp r8, #0 + beq _02213BA8 + ldrsb r0, [r8] + cmp r0, #0 + bne _02213BB0 +_02213BA8: + mvn r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_02213BB0: + cmp r5, #0 + mvnlt r0, #0 + ldmltia sp!, {r4, r5, r6, r7, r8, pc} + cmp r6, #0 + beq _02213BD0 + cmp r5, #0 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, pc} +_02213BD0: + ldr r0, _02213D7C ; =0x0221713C + ldr r0, [r0] + cmp r0, #0 + bne _02213BE4 + bl MOD79_02213E24 +_02213BE4: + bl MOD79_0221381C + movs r4, r0 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, pc} + mov r1, #0 + mov r0, r8 + str r1, [r4, #0xc] + bl MOD04_021F0208 + str r0, [r4, #0x14] + ldr r0, [r4, #0x14] + cmp r0, #0 + bne _02213C24 + mov r0, r4 + bl MOD79_02213638 + mvn r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_02213C24: + cmp r7, #0 + beq _02213C60 + ldrsb r0, [r7] + cmp r0, #0 + beq _02213C60 + mov r0, r7 + bl MOD04_021F0208 + str r0, [r4, #0x28] + ldr r0, [r4, #0x28] + cmp r0, #0 + bne _02213C60 + mov r0, r4 + bl MOD79_02213638 + mvn r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_02213C60: + ldr r1, [sp, #0x18] + ldr r0, [sp, #0x20] + str r1, [r4, #0x13c] + str r0, [r4, #0x30] + ldr r1, [sp, #0x24] + ldr r0, [sp, #0x28] + str r1, [r4, #0x3c] + str r0, [r4, #0x40] + ldr r1, [sp, #0x2c] + ldr r0, [sp, #0x1c] + str r1, [r4, #0x44] + str r0, [r4, #0x134] + cmp r6, #0 + movne r0, #1 + moveq r0, #0 + str r0, [r4, #0xe0] + ldr r0, [r4, #0xe0] + cmp r0, #0 + beq _02213CC4 + mov r0, r4 + mov r2, r6 + mov r3, r5 + add r1, r4, #0xbc + bl MOD79_02212AB4 + b _02213CD8 +_02213CC4: + mov r2, #0x800 + mov r0, r4 + mov r3, r2 + add r1, r4, #0xbc + bl MOD79_02212BC4 +_02213CD8: + cmp r0, #0 + bne _02213CF0 + mov r0, r4 + bl MOD79_02213638 + mvn r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_02213CF0: + ldr r0, [sp, #0x18] + cmp r0, #0 + beq _02213D1C + mov r0, r4 + bl MOD79_02214A60 + cmp r0, #0 + bne _02213D1C + mov r0, r4 + bl MOD79_02213638 + mvn r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_02213D1C: + ldr r0, [sp, #0x20] + cmp r0, #0 + beq _02213D5C + mov r0, r4 + bl MOD79_02213E84 + cmp r0, #0 + bne _02213D54 + mov r5, #0xa +_02213D3C: + mov r0, r5 + bl MOD04_021F0250 + mov r0, r4 + bl MOD79_02213E84 + cmp r0, #0 + beq _02213D3C +_02213D54: + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_02213D5C: + ldr r0, [r4, #4] + ldmia sp!, {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02213D64: .word 0x02216A50 +_02213D68: .word 0x02216A44 +_02213D6C: .word 0x02216A60 +_02213D70: .word 0x00000129 +_02213D74: .word 0x02216A70 +_02213D78: .word 0x0000012A +_02213D7C: .word 0x0221713C + arm_func_end MOD79_02213B1C + + arm_func_start MOD79_02213D80 +MOD79_02213D80: ; 0x02213D80 + stmdb sp!, {lr} + sub sp, sp, #0x1c + mov ip, #0 + str ip, [sp] + str ip, [sp, #4] + str r1, [sp, #8] + str ip, [sp, #0xc] + str r2, [sp, #0x10] + str r3, [sp, #0x14] + mov r1, ip + mov r2, ip + mov r3, ip + bl MOD79_02213B1C + add sp, sp, #0x1c + ldmia sp!, {pc} + arm_func_end MOD79_02213D80 + + arm_func_start MOD79_02213DBC +MOD79_02213DBC: ; 0x02213DBC + stmdb sp!, {lr} + sub sp, sp, #4 + bl MOD79_02213378 + ldr r0, _02213E1C ; =0x0221713C + ldr r1, [r0] + subs r1, r1, #1 + str r1, [r0] + bne _02213E10 + bl MOD79_02213384 + ldr r0, _02213E20 ; =0x02217128 + ldr r0, [r0] + cmp r0, #0 + beq _02213E00 + bl MOD04_021DD82C + ldr r0, _02213E20 ; =0x02217128 + mov r1, #0 + str r1, [r0] +_02213E00: + bl MOD79_02213374 + bl MOD79_0221337C + add sp, sp, #4 + ldmia sp!, {pc} +_02213E10: + bl MOD79_02213374 + add sp, sp, #4 + ldmia sp!, {pc} + .align 2, 0 +_02213E1C: .word 0x0221713C +_02213E20: .word 0x02217128 + arm_func_end MOD79_02213DBC + + arm_func_start MOD79_02213E24 +MOD79_02213E24: ; 0x02213E24 + stmdb sp!, {lr} + sub sp, sp, #4 + bl MOD79_02213378 + ldr r0, _02213E78 ; =0x0221713C + ldr r1, [r0] + add r1, r1, #1 + str r1, [r0] + cmp r1, #1 + bne _02213E6C + bl MOD79_02213380 + ldr r1, _02213E7C ; =0x0221695C + mov r3, #0x7d + ldr r0, _02213E80 ; =0x02216958 + mov r2, #0xfa + str r3, [r1] + str r2, [r0] + add sp, sp, #4 + ldmia sp!, {pc} +_02213E6C: + bl MOD79_02213374 + add sp, sp, #4 + ldmia sp!, {pc} + .align 2, 0 +_02213E78: .word 0x0221713C +_02213E7C: .word 0x0221695C +_02213E80: .word 0x02216958 + arm_func_end MOD79_02213E24 + + arm_func_start MOD79_02213E84 +MOD79_02213E84: ; 0x02213E84 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + movs r4, r0 + bne _02213EA8 + ldr r0, _02213FE8 ; =0x02216A88 + ldr r1, _02213FEC ; =0x02216A44 + mov r2, #0 + mov r3, #0x5b + bl __msl_assertion_failed +_02213EA8: + ldr r0, [r4, #4] + bl MOD79_0221358C + cmp r0, r4 + beq _02213ECC + ldr r0, _02213FF0 ; =0x02216A94 + ldr r1, _02213FEC ; =0x02216A44 + mov r2, #0 + mov r3, #0x5c + bl __msl_assertion_failed +_02213ECC: + ldr r0, [r4, #0x12c] + cmp r0, #0 + addne sp, sp, #4 + movne r0, #0 + ldmneia sp!, {r4, r5, pc} + mov r0, #1 + str r0, [r4, #0x12c] + ldr r0, [r4, #0x10] + cmp r0, #0 + bne _02213EFC + mov r0, r4 + bl MOD79_02216478 +_02213EFC: + ldr r0, [r4, #0x10] + cmp r0, #1 + bne _02213F10 + mov r0, r4 + bl MOD79_0221621C +_02213F10: + ldr r0, [r4, #0x10] + cmp r0, #2 + bne _02213F24 + mov r0, r4 + bl MOD79_022160C0 +_02213F24: + ldr r0, [r4, #0x10] + cmp r0, #3 + bne _02213F38 + mov r0, r4 + bl MOD79_02215E40 +_02213F38: + ldr r0, [r4, #0x10] + cmp r0, #4 + bne _02213F4C + mov r0, r4 + bl MOD79_02215DA8 +_02213F4C: + ldr r0, [r4, #0x10] + cmp r0, #5 + bne _02213F60 + mov r0, r4 + bl MOD79_02215D28 +_02213F60: + ldr r0, [r4, #0x10] + cmp r0, #6 + bne _02213F74 + mov r0, r4 + bl MOD79_02215AA8 +_02213F74: + ldr r0, [r4, #0x10] + cmp r0, #7 + bne _02213F88 + mov r0, r4 + bl MOD79_02215174 +_02213F88: + ldr r0, [r4, #0x10] + cmp r0, #8 + bne _02213F9C + mov r0, r4 + bl MOD79_0221507C +_02213F9C: + ldr r0, [r4, #0x108] + cmp r0, #0 + beq _02213FB0 + mov r0, r4 + bl MOD79_02213410 +_02213FB0: + ldr r5, [r4, #0xfc] + cmp r5, #0 + moveq r0, #0 + streq r0, [r4, #0x12c] + beq _02213FDC + mov r0, r4 + bl MOD79_02213FF4 + mov r0, r4 + bl MOD79_02212E78 + mov r0, r4 + bl MOD79_02213638 +_02213FDC: + mov r0, r5 + add sp, sp, #4 + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_02213FE8: .word 0x02216A88 +_02213FEC: .word 0x02216A44 +_02213FF0: .word 0x02216A94 + arm_func_end MOD79_02213E84 + + arm_func_start MOD79_02213FF4 +MOD79_02213FF4: ; 0x02213FF4 + stmdb sp!, {lr} + sub sp, sp, #4 + ldr lr, [r0, #0xec] + ldr r3, _022140CC ; =0x51EB851F + mov r1, lr, lsr #0x1f + smull r2, ip, r3, lr + mov ip, ip, asr #5 + add ip, r1, ip + cmp ip, #5 + addls pc, pc, ip, lsl #2 + b _022140C4 +_02214020: ; jump table + b _022140C4 ; case 0 + b _02214038 ; case 1 + b _02214038 ; case 2 + b _02214038 ; case 3 + b _02214040 ; case 4 + b _022140BC ; case 5 +_02214038: + add sp, sp, #4 + ldmia sp!, {pc} +_02214040: + ldr r1, _022140D0 ; =0x00000191 + sub r1, lr, r1 + cmp r1, #9 + addls pc, pc, r1, lsl #2 + b _022140AC +_02214054: ; jump table + b _0221407C ; case 0 + b _022140AC ; case 1 + b _0221408C ; case 2 + b _0221409C ; case 3 + b _022140AC ; case 4 + b _022140AC ; case 5 + b _022140AC ; case 6 + b _022140AC ; case 7 + b _022140AC ; case 8 + b _0221409C ; case 9 +_0221407C: + mov r1, #9 + str r1, [r0, #0x38] + add sp, sp, #4 + ldmia sp!, {pc} +_0221408C: + mov r1, #0xa + str r1, [r0, #0x38] + add sp, sp, #4 + ldmia sp!, {pc} +_0221409C: + mov r1, #0xb + str r1, [r0, #0x38] + add sp, sp, #4 + ldmia sp!, {pc} +_022140AC: + mov r1, #8 + str r1, [r0, #0x38] + add sp, sp, #4 + ldmia sp!, {pc} +_022140BC: + mov r1, #0xc + str r1, [r0, #0x38] +_022140C4: + add sp, sp, #4 + ldmia sp!, {pc} + .align 2, 0 +_022140CC: .word 0x51EB851F +_022140D0: .word 0x00000191 + arm_func_end MOD79_02213FF4 + + arm_func_start MOD79_022140D4 +MOD79_022140D4: ; 0x022140D4 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #4 + movs sl, r0 + bne _022140F8 + ldr r0, _02214330 ; =0x02216AD0 + ldr r1, _02214334 ; =0x02216ADC + ldr r3, _02214338 ; =0x00000404 + mov r2, #0 + bl __msl_assertion_failed +_022140F8: + ldr r0, [sl, #0x13c] + cmp r0, #0 + bne _02214118 + ldr r0, _0221433C ; =0x02216AE8 + ldr r1, _02214334 ; =0x02216ADC + ldr r3, _02214340 ; =0x00000405 + mov r2, #0 + bl __msl_assertion_failed +_02214118: + ldr r0, [sl, #0x140] + cmp r0, #0 + bne _02214138 + ldr r0, _02214344 ; =0x02216AFC + ldr r1, _02214334 ; =0x02216ADC + ldr r3, _02214348 ; =0x00000406 + mov r2, #0 + bl __msl_assertion_failed +_02214138: + ldr r0, [sl, #0x13c] + ldr r0, [r0] + bl MOD04_021EF06C + mov r4, r0 + ldr r0, [sl, #0x140] + bl MOD04_021EF06C + cmp r4, r0 + beq _0221416C + ldr r0, _0221434C ; =0x02216B1C + ldr r1, _02214334 ; =0x02216ADC + ldr r3, _02214350 ; =0x00000407 + mov r2, #0 + bl __msl_assertion_failed +_0221416C: + ldr r0, [sl, #0x144] + cmp r0, #0 + bge _0221418C + ldr r0, _02214354 ; =0x02216B70 + ldr r1, _02214334 ; =0x02216ADC + ldr r3, _02214358 ; =0x00000408 + mov r2, #0 + bl __msl_assertion_failed +_0221418C: + ldr r0, [sl, #0x140] + bl MOD04_021EF06C + ldr r1, [sl, #0x144] + cmp r1, r0 + ble _022141B4 + ldr r0, _0221435C ; =0x02216B94 + ldr r1, _02214334 ; =0x02216ADC + ldr r3, _02214360 ; =0x00000409 + mov r2, #0 + bl __msl_assertion_failed +_022141B4: + ldr r0, [sl, #0x140] + add sb, sl, #0x140 + bl MOD04_021EF06C + ldr r1, [sl, #0x5c] + mov r7, r0 + cmp r1, #0 + beq _0221421C + mov r0, sl + bl MOD79_02212554 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [sl, #0x60] + ldr r0, [sl, #0x5c] + cmp r1, r0 + addlt sp, sp, #4 + movlt r0, #2 + ldmltia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + add r0, sl, #0x50 + bl MOD79_0221262C + ldr r0, [sl, #0x144] + cmp r0, r7 + addeq sp, sp, #4 + moveq r0, #1 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0221421C: + ldr r1, [sb, #4] + cmp r1, r7 + bge _022142E0 + ldr r6, _02214364 ; =0x02216BE4 + ldr fp, _02214334 ; =0x02216ADC + mov r5, #0 + mov r4, #1 +_02214238: + ldr r0, [sb] + bl MOD04_021EEFFC + movs r8, r0 + bne _0221425C + ldr r3, _02214368 ; =0x0000042F + mov r0, r6 + mov r1, fp + mov r2, r5 + bl __msl_assertion_failed +_0221425C: + ldr r0, [sb, #4] + mov r1, sl + cmp r0, #0 + moveq r2, r4 + movne r2, r5 + mov r0, r8 + bl MOD79_02214378 + cmp r0, #0 + bne _022142B8 + ldr r0, [sl, #0xfc] + cmp r0, #0 + beq _02214298 + ldr r0, [sl, #0x38] + cmp r0, #0 + bne _022142AC +_02214298: + ldr r0, _0221436C ; =0x02216BF0 + ldr r1, _02214334 ; =0x02216ADC + ldr r3, _02214370 ; =0x0000043B + mov r2, #0 + bl __msl_assertion_failed +_022142AC: + add sp, sp, #4 + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_022142B8: + cmp r0, #2 + addeq sp, sp, #4 + moveq r0, #2 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [sb, #4] + add r0, r0, #1 + str r0, [sb, #4] + ldr r1, [sb, #4] + cmp r1, r7 + blt _02214238 +_022142E0: + ldr r0, [sl, #0x13c] + ldr r0, [r0, #0xc] + cmp r0, #0 + beq _02214318 + ldr r0, _02214374 ; =0x02216C1C + bl strlen + mov r2, r0 + ldr r1, _02214374 ; =0x02216C1C + mov r0, sl + bl MOD79_02212F04 + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02214318: + ldr r0, [sl, #0x5c] + cmp r0, #0 + movne r0, #2 + moveq r0, #1 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02214330: .word 0x02216AD0 +_02214334: .word 0x02216ADC +_02214338: .word 0x00000404 +_0221433C: .word 0x02216AE8 +_02214340: .word 0x00000405 +_02214344: .word 0x02216AFC +_02214348: .word 0x00000406 +_0221434C: .word 0x02216B1C +_02214350: .word 0x00000407 +_02214354: .word 0x02216B70 +_02214358: .word 0x00000408 +_0221435C: .word 0x02216B94 +_02214360: .word 0x00000409 +_02214364: .word 0x02216BE4 +_02214368: .word 0x0000042F +_0221436C: .word 0x02216BF0 +_02214370: .word 0x0000043B +_02214374: .word 0x02216C1C + arm_func_end MOD79_022140D4 + + arm_func_start MOD79_02214378 +MOD79_02214378: ; 0x02214378 + stmdb sp!, {r4, r5, r6, lr} + ldr ip, _02214554 ; =0x00000808 + sub sp, sp, ip + mov r6, r0 + ldr r3, [r6, #4] + mvn r0, #0 + mov r5, r1 + mov r4, r2 + cmp r3, r0 + bne _022144D8 + mov r2, #0 + str r2, [r6, #4] + ldr r0, [r5, #0x13c] + ldr r0, [r0, #0xc] + cmp r0, #0 + bne _02214410 + ldr r0, [r6] + ldr r0, [r0] + cmp r0, #0 + beq _022143D8 + ldr r0, _02214558 ; =0x02216C48 + ldr r1, _0221455C ; =0x02216ADC + ldr r3, _02214560 ; =0x000003A9 + bl __msl_assertion_failed +_022143D8: + cmp r4, #0 + beq _022143F8 + ldr r1, [r6] + add r0, sp, #8 + ldr r2, [r1, #4] + ldr r1, _02214564 ; =0x02216C68 + bl sprintf + b _02214498 +_022143F8: + ldr r1, [r6] + add r0, sp, #8 + ldr r2, [r1, #4] + ldr r1, _02214568 ; =0x02216C6C + bl sprintf + b _02214498 +_02214410: + ldr r3, [r6] + ldr r1, [r3] + cmp r1, #0 + bne _02214440 + cmp r4, #0 + ldrne r2, _0221456C ; =0x02216C74 + ldr r3, [r3, #4] + ldreq r2, _02214570 ; =0x02216C9C + ldr r1, _02214574 ; =0x02216CC8 + add r0, sp, #8 + bl sprintf + b _02214498 +_02214440: + sub r0, r1, #1 + cmp r0, #1 + bhi _02214488 + cmp r1, #1 + ldreq r1, [r3, #0xc] + ldreq r0, [r3, #0x10] + ldrne r1, [r3, #0x10] + ldrne r0, [r3, #0x14] + cmp r4, #0 + str r1, [sp] + str r0, [sp, #4] + ldrne r2, _0221456C ; =0x02216C74 + ldr r3, [r3, #4] + ldreq r2, _02214570 ; =0x02216C9C + ldr r1, _02214578 ; =0x02216CF8 + add r0, sp, #8 + bl sprintf + b _02214498 +_02214488: + ldr r0, _0221457C ; =0x02216D4C + ldr r1, _0221455C ; =0x02216ADC + mov r3, #0x3dc + bl __msl_assertion_failed +_02214498: + add r0, sp, #8 + bl strlen + mov r2, r0 + add r1, sp, #8 + mov r0, r5 + bl MOD79_02212F04 + cmp r0, #0 + ldreq ip, _02214554 ; =0x00000808 + moveq r0, #0 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, r6, pc} + cmp r0, #2 + ldreq ip, _02214554 ; =0x00000808 + moveq r0, #2 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, r6, pc} +_022144D8: + ldr r0, [r6] + ldr r0, [r0] + cmp r0, #0 + bne _02214500 + mov r0, r6 + mov r1, r5 + bl MOD79_022147E8 + ldr ip, _02214554 ; =0x00000808 + add sp, sp, ip + ldmia sp!, {r4, r5, r6, pc} +_02214500: + cmp r0, #1 + bne _02214520 + mov r0, r6 + mov r1, r5 + bl MOD79_0221467C + ldr ip, _02214554 ; =0x00000808 + add sp, sp, ip + ldmia sp!, {r4, r5, r6, pc} +_02214520: + cmp r0, #2 + beq _0221453C + ldr r0, _02214580 ; =0x02216D50 + ldr r1, _0221455C ; =0x02216ADC + ldr r3, _02214584 ; =0x000003F5 + mov r2, #0 + bl __msl_assertion_failed +_0221453C: + mov r0, r6 + mov r1, r5 + bl MOD79_02214588 + ldr ip, _02214554 ; =0x00000808 + add sp, sp, ip + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_02214554: .word 0x00000808 +_02214558: .word 0x02216C48 +_0221455C: .word 0x02216ADC +_02214560: .word 0x000003A9 +_02214564: .word 0x02216C68 +_02214568: .word 0x02216C6C +_0221456C: .word 0x02216C74 +_02214570: .word 0x02216C9C +_02214574: .word 0x02216CC8 +_02214578: .word 0x02216CF8 +_0221457C: .word 0x02216D4C +_02214580: .word 0x02216D50 +_02214584: .word 0x000003F5 + arm_func_end MOD79_02214378 + + arm_func_start MOD79_02214588 +MOD79_02214588: ; 0x02214588 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + ldr r0, [r5, #4] + mov r4, r1 + cmp r0, #0 + bge _022145B8 + ldr r0, _02214668 ; =0x02216D74 + ldr r1, _0221466C ; =0x02216ADC + ldr r3, _02214670 ; =0x0000036E + mov r2, #0 + bl __msl_assertion_failed +_022145B8: + ldr r0, [r5] + ldr r1, [r0, #0xc] + cmp r1, #0 + addeq sp, sp, #4 + moveq r0, #1 + ldmeqia sp!, {r4, r5, pc} + ldr r0, [r5, #4] + cmp r0, r1 + blt _022145F0 + ldr r0, _02214674 ; =0x02216D84 + ldr r1, _0221466C ; =0x02216ADC + ldr r3, _02214678 ; =0x00000375 + mov r2, #0 + bl __msl_assertion_failed +_022145F0: + ldr r1, [r5] + ldr r3, [r5, #4] + ldr r0, [r1, #0xc] + ldr r1, [r1, #8] + sub r2, r0, r3 + cmp r2, #0x8000 + movge r2, #0x8000 + mov r0, r4 + add r1, r1, r3 + bl MOD79_02212F68 + mvn r1, #0 + cmp r0, r1 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, pc} + ldr r1, [r5, #4] + add r1, r1, r0 + str r1, [r5, #4] + ldr r2, [r5] + ldr r1, [r5, #4] + ldr r2, [r2, #0xc] + cmp r2, r1 + addeq sp, sp, #4 + moveq r0, #1 + ldmeqia sp!, {r4, r5, pc} + cmp r0, #0 + bne _022145F0 + mov r0, #2 + add sp, sp, #4 + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_02214668: .word 0x02216D74 +_0221466C: .word 0x02216ADC +_02214670: .word 0x0000036E +_02214674: .word 0x02216D84 +_02214678: .word 0x00000375 + arm_func_end MOD79_02214588 + + arm_func_start MOD79_0221467C +MOD79_0221467C: ; 0x0221467C + stmdb sp!, {r4, r5, lr} + ldr ip, _022147CC ; =0x00001004 + sub sp, sp, ip + mov r5, r0 + ldr r0, [r5, #4] + mov r4, r1 + cmp r0, #0 + bge _022146B0 + ldr r0, _022147D0 ; =0x02216D74 + ldr r1, _022147D4 ; =0x02216ADC + ldr r3, _022147D8 ; =0x00000336 + mov r2, #0 + bl __msl_assertion_failed +_022146B0: + ldr r1, [r5, #4] + ldr r0, [r5, #0xc] + cmp r1, r0 + blt _022146D4 + ldr r0, _022147DC ; =0x02216DB4 + ldr r1, _022147D4 ; =0x02216ADC + ldr r3, _022147E0 ; =0x00000337 + mov r2, #0 + bl __msl_assertion_failed +_022146D4: + ldr r0, [r5, #8] + bl ftell + ldr r1, [r5, #4] + cmp r1, r0 + beq _022146FC + ldr r0, _022147E4 ; =0x02216DDC + ldr r1, _022147D4 ; =0x02216ADC + mov r2, #0 + mov r3, #0x338 + bl __msl_assertion_failed +_022146FC: + ldr r3, [r5, #8] + add r0, sp, #0 + mov r1, #1 + mov r2, #0x1000 + bl fread + mov r2, r0 + cmp r2, #0 + bgt _0221473C + ldr ip, _022147CC ; =0x00001004 + mov r0, #1 + str r0, [r4, #0xfc] + mov r0, #0xe + str r0, [r4, #0x38] + add sp, sp, ip + mov r0, #0 + ldmia sp!, {r4, r5, pc} +_0221473C: + ldr r0, [r5, #4] + add r0, r0, r2 + str r0, [r5, #4] + ldr r1, [r5, #4] + ldr r0, [r5, #0xc] + cmp r1, r0 + ble _02214778 + ldr ip, _022147CC ; =0x00001004 + mov r0, #1 + str r0, [r4, #0xfc] + mov r0, #0xe + str r0, [r4, #0x38] + add sp, sp, ip + mov r0, #0 + ldmia sp!, {r4, r5, pc} +_02214778: + add r1, sp, #0 + mov r0, r4 + bl MOD79_02212F04 + cmp r0, #0 + ldreq ip, _022147CC ; =0x00001004 + moveq r0, #0 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, pc} + ldr r2, [r5, #4] + ldr r1, [r5, #0xc] + cmp r2, r1 + ldreq ip, _022147CC ; =0x00001004 + moveq r0, #1 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, pc} + cmp r0, #1 + beq _022146FC + mov r0, #2 + ldr ip, _022147CC ; =0x00001004 + add sp, sp, ip + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_022147CC: .word 0x00001004 +_022147D0: .word 0x02216D74 +_022147D4: .word 0x02216ADC +_022147D8: .word 0x00000336 +_022147DC: .word 0x02216DB4 +_022147E0: .word 0x00000337 +_022147E4: .word 0x02216DDC + arm_func_end MOD79_0221467C + + arm_func_start MOD79_022147E8 +MOD79_022147E8: ; 0x022147E8 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #4 + mov r4, r0 + ldr r0, [r4, #4] + mov sl, r1 + cmp r0, #0 + bge _02214818 + ldr r0, _022149BC ; =0x02216D74 + ldr r1, _022149C0 ; =0x02216ADC + ldr r3, _022149C4 ; =0x000002E7 + mov r2, #0 + bl __msl_assertion_failed +_02214818: + ldr r0, [r4] + ldr r1, [r0, #0xc] + cmp r1, #0 + addeq sp, sp, #4 + moveq r0, #1 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r4, #4] + cmp r0, r1 + blt _02214850 + ldr r0, _022149C8 ; =0x02216E14 + ldr r1, _022149C0 ; =0x02216ADC + ldr r3, _022149CC ; =0x000002EE + mov r2, #0 + bl __msl_assertion_failed +_02214850: + ldr r0, [sl, #0x13c] + ldr r0, [r0, #0xc] + cmp r0, #0 + bne _02214968 + ldr r1, [r4] + ldr r0, [r1, #0x10] + cmp r0, #0 + beq _02214968 + ldr r0, _022149D0 ; =0x02216738 + ldr r7, [r1, #8] + ldrb r3, [r0] + ldrb r2, [r0, #1] + ldrb r1, [r0, #2] + ldrb r0, [r0, #3] + strb r3, [sp] + strb r2, [sp, #1] + strb r1, [sp, #2] + strb r0, [sp, #3] + ldrsb r8, [r7] + mov sb, #0 + cmp r8, #0 + beq _0221495C + mov fp, sb + mov r4, #3 + mov r5, #0x2b +_022148B4: + ldr r0, _022149D4 ; =0x02216E40 + mov r1, r8 + bl strchr + cmp r0, #0 + beq _022148D8 + mov r1, r8 + add r0, sl, #0x50 + bl MOD79_022126A4 + b _0221494C +_022148D8: + cmp r8, #0x20 + bne _022148F0 + mov r1, r5 + add r0, sl, #0x50 + bl MOD79_022126A4 + b _0221494C +_022148F0: + mov r0, r8, asr #3 + add r0, r8, r0, lsr #28 + mov r6, r0, asr #4 + cmp r6, #0x10 + blt _02214918 + ldr r0, _022149D8 ; =0x02216E84 + ldr r1, _022149C0 ; =0x02216ADC + ldr r3, _022149DC ; =0x0000030D + mov r2, fp + bl __msl_assertion_failed +_02214918: + ldr r0, _022149E0 ; =0x02216E94 + mov r1, r8, lsr #0x1f + ldrsb r2, [r0, r6] + rsb r0, r1, r8, lsl #28 + add r1, r1, r0, ror #28 + ldr r0, _022149E0 ; =0x02216E94 + strb r2, [sp, #1] + ldrsb r2, [r0, r1] + add r1, sp, #0 + add r0, sl, #0x50 + strb r2, [sp, #2] + mov r2, r4 + bl MOD79_02212794 +_0221494C: + add sb, sb, #1 + ldrsb r8, [r7, sb] + cmp r8, #0 + bne _022148B4 +_0221495C: + add sp, sp, #4 + mov r0, #1 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02214968: + ldr r1, [r4] + ldr r0, [r4, #4] + ldr r2, [r1, #0xc] + ldr r1, [r1, #8] + sub r5, r2, r0 + mov r0, sl + mov r2, r5 + bl MOD79_02212F68 + mvn r1, #0 + cmp r0, r1 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r1, [r4, #4] + cmp r0, r5 + add r0, r1, r0 + str r0, [r4, #4] + moveq r0, #1 + movne r0, #2 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_022149BC: .word 0x02216D74 +_022149C0: .word 0x02216ADC +_022149C4: .word 0x000002E7 +_022149C8: .word 0x02216E14 +_022149CC: .word 0x000002EE +_022149D0: .word 0x02216738 +_022149D4: .word 0x02216E40 +_022149D8: .word 0x02216E84 +_022149DC: .word 0x0000030D +_022149E0: .word 0x02216E94 + arm_func_end MOD79_022147E8 + + arm_func_start MOD79_022149E4 +MOD79_022149E4: ; 0x022149E4 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r0, [r6, #0x140] + cmp r0, #0 + beq _02214A38 + bl MOD04_021EF06C + mov r4, r0 + cmp r4, #0 + mov r5, #0 + ble _02214A28 +_02214A0C: + ldr r0, [r6, #0x140] + mov r1, r5 + bl MOD04_021EEFFC + bl MOD79_02214BF4 + add r5, r5, #1 + cmp r5, r4 + blt _02214A0C +_02214A28: + ldr r0, [r6, #0x140] + bl MOD04_021EF074 + mov r0, #0 + str r0, [r6, #0x140] +_02214A38: + ldr r0, [r6, #0x13c] + cmp r0, #0 + ldmeqia sp!, {r4, r5, r6, pc} + ldr r1, [r0, #0x10] + cmp r1, #0 + ldmeqia sp!, {r4, r5, r6, pc} + bl MOD79_02215058 + mov r0, #0 + str r0, [r6, #0x13c] + ldmia sp!, {r4, r5, r6, pc} + arm_func_end MOD79_022149E4 + + arm_func_start MOD79_02214A60 +MOD79_02214A60: ; 0x02214A60 + stmdb sp!, {r4, r5, r6, r7, r8, lr} + sub sp, sp, #0x10 + mov r4, r0 + ldr r0, [r4, #0x13c] + cmp r0, #0 + bne _02214A8C + ldr r0, _02214BE4 ; =0x02216AE8 + ldr r1, _02214BE8 ; =0x02216ADC + mov r2, #0 + mov r3, #0x278 + bl __msl_assertion_failed +_02214A8C: + ldr r0, [r4, #0x13c] + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, pc} + mov r0, #0 + str r0, [r4, #0x144] + str r0, [r4, #0x148] + str r0, [r4, #0x14c] + ldr r0, [r4, #0x13c] + ldr r0, [r0, #4] + str r0, [r4, #0x150] + ldr r0, [r4, #0x13c] + ldr r0, [r0, #8] + str r0, [r4, #0x154] + ldr r0, [r4, #0x13c] + ldr r0, [r0] + bl MOD04_021EF06C + mov r7, r0 + mov r1, r7 + mov r0, #0x10 + mov r2, #0 + bl MOD04_021EF0E4 + str r0, [r4, #0x140] + ldr r0, [r4, #0x140] + cmp r0, #0 + addeq sp, sp, #0x10 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, pc} + cmp r7, #0 + mov r8, #0 + ble _02214B98 + add r6, sp, #0 + mov r5, r8 +_02214B14: + ldr r0, [r4, #0x13c] + mov r1, r8 + ldr r0, [r0] + bl MOD04_021EEFFC + str r5, [r6] + str r5, [r6, #4] + str r5, [r6, #8] + str r5, [r6, #0xc] + str r0, [sp] + mov r0, r6 + bl MOD79_02214C5C + cmp r0, #0 + bne _02214B80 + subs r8, r8, #1 + bmi _02214B68 +_02214B50: + ldr r0, [r4, #0x140] + mov r1, r8 + bl MOD04_021EEFFC + bl MOD79_02214BF4 + subs r8, r8, #1 + bpl _02214B50 +_02214B68: + ldr r0, [r4, #0x140] + bl MOD04_021EF074 + mov r0, #0 + add sp, sp, #0x10 + str r0, [r4, #0x140] + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_02214B80: + ldr r0, [r4, #0x140] + mov r1, r6 + bl MOD04_021EEFA8 + add r8, r8, #1 + cmp r8, r7 + blt _02214B14 +_02214B98: + ldr r0, [r4, #0x13c] + ldr r0, [r0] + bl MOD04_021EF06C + mov r5, r0 + ldr r0, [r4, #0x140] + bl MOD04_021EF06C + cmp r5, r0 + beq _02214BCC + ldr r0, _02214BEC ; =0x02216B1C + ldr r1, _02214BE8 ; =0x02216ADC + ldr r3, _02214BF0 ; =0x000002B1 + mov r2, #0 + bl __msl_assertion_failed +_02214BCC: + mov r0, r4 + bl MOD79_02214D0C + str r0, [r4, #0x14c] + mov r0, #1 + add sp, sp, #0x10 + ldmia sp!, {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02214BE4: .word 0x02216AE8 +_02214BE8: .word 0x02216ADC +_02214BEC: .word 0x02216B1C +_02214BF0: .word 0x000002B1 + arm_func_end MOD79_02214A60 + + arm_func_start MOD79_02214BF4 +MOD79_02214BF4: ; 0x02214BF4 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r0, [r4] + ldr r0, [r0] + cmp r0, #0 + ldmeqia sp!, {r4, pc} + cmp r0, #1 + bne _02214C30 + ldr r0, [r4, #8] + cmp r0, #0 + beq _02214C24 + bl fclose +_02214C24: + mov r0, #0 + str r0, [r4, #8] + ldmia sp!, {r4, pc} +_02214C30: + cmp r0, #2 + ldmeqia sp!, {r4, pc} + ldr r0, _02214C50 ; =0x02216D4C + ldr r1, _02214C54 ; =0x02216ADC + ldr r3, _02214C58 ; =0x00000269 + mov r2, #0 + bl __msl_assertion_failed + ldmia sp!, {r4, pc} + .align 2, 0 +_02214C50: .word 0x02216D4C +_02214C54: .word 0x02216ADC +_02214C58: .word 0x00000269 + arm_func_end MOD79_02214BF4 + + arm_func_start MOD79_02214C5C +MOD79_02214C5C: ; 0x02214C5C + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r1, [r4] + mvn r0, #0 + ldr r1, [r1] + str r0, [r4, #4] + cmp r1, #0 + beq _02214CFC + cmp r1, #1 + bne _02214CD8 + ldr r0, [r4, #8] + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r4, pc} + mov r1, #0 + mov r2, #2 + bl fseek + cmp r0, #0 + movne r0, #0 + ldmneia sp!, {r4, pc} + ldr r0, [r4, #8] + bl ftell + str r0, [r4, #0xc] + ldr r1, [r4, #0xc] + mvn r0, #0 + cmp r1, r0 + moveq r0, #0 + ldmeqia sp!, {r4, pc} + ldr r0, [r4, #8] + bl rewind + b _02214CFC +_02214CD8: + cmp r1, #2 + beq _02214CFC + ldr r0, _02214D04 ; =0x02216D4C + ldr r1, _02214D08 ; =0x02216ADC + mov r2, #0 + mov r3, #0x244 + bl __msl_assertion_failed + mov r0, #0 + ldmia sp!, {r4, pc} +_02214CFC: + mov r0, #1 + ldmia sp!, {r4, pc} + .align 2, 0 +_02214D04: .word 0x02216D4C +_02214D08: .word 0x02216ADC + arm_func_end MOD79_02214C5C + + arm_func_start MOD79_02214D0C +MOD79_02214D0C: ; 0x02214D0C + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r5, r0 + ldr r4, [r5, #0x13c] + cmp r4, #0 + bne _02214D38 + ldr r0, _02214D74 ; =0x02216EA8 + ldr r1, _02214D78 ; =0x02216ADC + mov r2, #0 + mov r3, #0x20c + bl __msl_assertion_failed +_02214D38: + cmp r4, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, pc} + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _02214D64 + mov r0, r5 + bl MOD79_02214D7C + add sp, sp, #4 + ldmia sp!, {r4, r5, pc} +_02214D64: + mov r0, r5 + bl MOD79_02214F48 + add sp, sp, #4 + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_02214D74: .word 0x02216EA8 +_02214D78: .word 0x02216ADC + arm_func_end MOD79_02214D0C + + arm_func_start MOD79_02214D7C +MOD79_02214D7C: ; 0x02214D7C + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #4 + ldr r1, _02214F24 ; =0x0221714C + mov r8, r0 + ldr r0, [r1] + ldr r7, [r8, #0x13c] + cmp r0, #0 + mov r4, #0 + bne _02214DD4 + ldr r0, _02214F28 ; =0x02216EB0 + bl strlen + ldr r5, _02214F24 ; =0x0221714C + ldr r3, _02214F2C ; =0x02217148 + add sl, r0, #0x2f + ldr r2, _02214F30 ; =0x02217144 + add sb, r0, #0x4c + ldr r1, _02214F34 ; =0x02217140 + add r6, r0, #4 + str r0, [r5] + str sl, [r3] + str sb, [r2] + str r6, [r1] +_02214DD4: + ldr r0, [r7] + bl MOD04_021EF06C + mov r5, r0 + cmp r5, #0 + mov r6, #0 + ble _02214F10 + mov fp, r6 + mov sb, #0x1ec +_02214DF4: + ldr r0, [r7] + mov r1, r6 + bl MOD04_021EEFFC + mov sl, r0 + ldr r0, [sl] + cmp r0, #0 + bne _02214E34 + ldr r0, _02214F2C ; =0x02217148 + ldr r1, [r0] + ldr r0, [sl, #4] + add r4, r4, r1 + bl strlen + add r1, r4, r0 + ldr r0, [sl, #0xc] + add r4, r1, r0 + b _02214F04 +_02214E34: + cmp r0, #1 + bne _02214EA0 + ldr r0, _02214F30 ; =0x02217144 + ldr r1, [r0] + ldr r0, [sl, #4] + add r4, r4, r1 + bl strlen + add r4, r4, r0 + ldr r0, [sl, #0xc] + bl strlen + add r4, r4, r0 + ldr r0, [sl, #0x10] + bl strlen + add r4, r4, r0 + ldr r0, [r8, #0x140] + mov r1, r6 + bl MOD04_021EEFFC + movs sl, r0 + bne _02214E94 + ldr r0, _02214F38 ; =0x02216ED8 + ldr r1, _02214F3C ; =0x02216ADC + mov r2, fp + mov r3, sb + bl __msl_assertion_failed +_02214E94: + ldr r0, [sl, #0xc] + add r4, r4, r0 + b _02214F04 +_02214EA0: + cmp r0, #2 + bne _02214EE4 + ldr r0, _02214F30 ; =0x02217144 + ldr r1, [r0] + ldr r0, [sl, #4] + add r4, r4, r1 + bl strlen + add r4, r4, r0 + ldr r0, [sl, #0x10] + bl strlen + add r4, r4, r0 + ldr r0, [sl, #0x14] + bl strlen + add r1, r4, r0 + ldr r0, [sl, #0xc] + add r4, r1, r0 + b _02214F04 +_02214EE4: + ldr r0, _02214F40 ; =0x02216D4C + ldr r1, _02214F3C ; =0x02216ADC + ldr r3, _02214F44 ; =0x000001F9 + mov r2, #0 + bl __msl_assertion_failed + add sp, sp, #4 + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02214F04: + add r6, r6, #1 + cmp r6, r5 + blt _02214DF4 +_02214F10: + ldr r0, _02214F34 ; =0x02217140 + ldr r0, [r0] + add r0, r4, r0 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02214F24: .word 0x0221714C +_02214F28: .word 0x02216EB0 +_02214F2C: .word 0x02217148 +_02214F30: .word 0x02217144 +_02214F34: .word 0x02217140 +_02214F38: .word 0x02216ED8 +_02214F3C: .word 0x02216ADC +_02214F40: .word 0x02216D4C +_02214F44: .word 0x000001F9 + arm_func_end MOD79_02214D7C + + arm_func_start MOD79_02214F48 +MOD79_02214F48: ; 0x02214F48 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #4 + ldr sl, [r0, #0x13c] + mov r6, #0 + ldr r0, [sl] + bl MOD04_021EF06C + movs r7, r0 + addeq sp, sp, #4 + moveq r0, r6 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + cmp r7, #0 + mov r8, r6 + ble _02214FE4 + ldr fp, _02214FF4 ; =0x02216EE0 + mov r5, r8 + mov r4, #0x1b0 +_02214F88: + ldr r0, [sl] + mov r1, r8 + bl MOD04_021EEFFC + mov sb, r0 + ldr r0, [sb] + cmp r0, #0 + beq _02214FB8 + ldr r1, _02214FF8 ; =0x02216ADC + mov r0, fp + mov r2, r5 + mov r3, r4 + bl __msl_assertion_failed +_02214FB8: + ldr r0, [sb, #4] + bl strlen + add r8, r8, #1 + ldr r1, [sb, #0xc] + add r2, r6, r0 + ldr r0, [sb, #0x14] + add r1, r2, r1 + add r0, r1, r0, lsl #1 + cmp r8, r7 + add r6, r0, #1 + blt _02214F88 +_02214FE4: + sub r0, r7, #1 + add r0, r6, r0 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02214FF4: .word 0x02216EE0 +_02214FF8: .word 0x02216ADC + arm_func_end MOD79_02214F48 + + arm_func_start MOD79_02214FFC +MOD79_02214FFC: ; 0x02214FFC + stmdb sp!, {r4, lr} + ldr r4, [r0, #0x13c] + cmp r4, #0 + bne _02215020 + ldr r0, _02215040 ; =0x02216EA8 + ldr r1, _02215044 ; =0x02216ADC + ldr r3, _02215048 ; =0x00000192 + mov r2, #0 + bl __msl_assertion_failed +_02215020: + cmp r4, #0 + ldreq r0, _0221504C ; =0x02216EF8 + ldmeqia sp!, {r4, pc} + ldr r0, [r4, #0xc] + cmp r0, #0 + ldrne r0, _02215050 ; =0x02216EFC + ldreq r0, _02215054 ; =0x02216F40 + ldmia sp!, {r4, pc} + .align 2, 0 +_02215040: .word 0x02216EA8 +_02215044: .word 0x02216ADC +_02215048: .word 0x00000192 +_0221504C: .word 0x02216EF8 +_02215050: .word 0x02216EFC +_02215054: .word 0x02216F40 + arm_func_end MOD79_02214FFC + + arm_func_start MOD79_02215058 +MOD79_02215058: ; 0x02215058 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r0, [r4] + bl MOD04_021EF074 + mov r0, r4 + bl MOD04_021DD82C + ldmia sp!, {r4, pc} + arm_func_end MOD79_02215058 + + arm_func_start MOD79_02215074 +MOD79_02215074: ; 0x02215074 + ldr r0, [r0, #0x10] + bx lr + arm_func_end MOD79_02215074 + + arm_func_start MOD79_0221507C +MOD79_0221507C: ; 0x0221507C + stmdb sp!, {r4, r5, r6, r7, r8, lr} + ldr ip, _02215170 ; =0x00002008 + sub sp, sp, ip + mov r5, r0 + bl MOD04_021F025C + mov r4, r0 + mov r1, #0 + mov r8, #0x2000 + add r7, sp, #4 + add r6, sp, #0 + b _02215144 +_022150A8: + mov r0, r5 + mov r1, r7 + mov r2, r6 + str r8, [sp] + bl MOD79_02212FF0 + cmp r0, #3 + ldreq ip, _02215170 ; =0x00002008 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, r6, r7, r8, pc} + cmp r0, #1 + ldreq ip, _02215170 ; =0x00002008 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, r6, r7, r8, pc} + cmp r0, #2 + bne _0221511C + mov r0, #1 + str r0, [r5, #0xfc] + ldr r1, [r5, #0x104] + cmp r1, #0 + ldrle ip, _02215170 ; =0x00002008 + addle sp, sp, ip + ldmleia sp!, {r4, r5, r6, r7, r8, pc} + ldr r0, [r5, #0x100] + ldr ip, _02215170 ; =0x00002008 + cmp r0, r1 + movlt r0, #0xf + add sp, sp, ip + strlt r0, [r5, #0x38] + ldmia sp!, {r4, r5, r6, r7, r8, pc} +_0221511C: + ldr r2, [sp] + mov r0, r5 + mov r1, r7 + bl MOD79_02215640 + cmp r0, #0 + ldreq ip, _02215170 ; =0x00002008 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, r6, r7, r8, pc} + bl MOD04_021F025C + sub r1, r0, r4 +_02215144: + ldr r0, [r5, #0xfc] + cmp r0, #0 + ldrne ip, _02215170 ; =0x00002008 + addne sp, sp, ip + ldmneia sp!, {r4, r5, r6, r7, r8, pc} + ldr r0, [r5, #0x158] + cmp r1, r0 + blo _022150A8 + ldr ip, _02215170 ; =0x00002008 + add sp, sp, ip + ldmia sp!, {r4, r5, r6, r7, r8, pc} + .align 2, 0 +_02215170: .word 0x00002008 + arm_func_end MOD79_0221507C + + arm_func_start MOD79_02215174 +MOD79_02215174: ; 0x02215174 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} + ldr ip, _02215618 ; =0x00001018 + sub sp, sp, ip + mov r3, #0x1000 + add r1, sp, #0x13 + add r2, sp, #4 + mov r6, r0 + str r3, [sp, #4] + bl MOD79_02212FF0 + mov r4, r0 + cmp r4, #3 + ldreq ip, _02215618 ; =0x00001018 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + cmp r4, #1 + bne _022151CC + ldr r1, [r6, #0x84] + ldr r0, [r6, #0x80] + cmp r1, r0 + ldreq ip, _02215618 ; =0x00001018 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} +_022151CC: + cmp r4, #0 + bne _022151F4 + ldr r2, [sp, #4] + add r1, sp, #0x13 + add r0, r6, #0x74 + bl MOD79_02212794 + cmp r0, #0 + ldreq ip, _02215618 ; =0x00001018 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} +_022151F4: + ldr r2, [r6, #0x84] + ldr r0, [r6, #0x78] + ldr r1, _0221561C ; =0x02216F64 + add r5, r0, r2 + mov r0, r5 + str r2, [r6, #0xf4] + bl strstr + cmp r0, #0 + bne _02215224 + ldr r1, _02215620 ; =0x02216F6C + mov r0, r5 + bl strstr +_02215224: + cmp r0, #0 + beq _022155E0 + mov r1, #0 + strb r1, [r0, #2] + ldr r7, [r6, #0x78] + add r3, r0, #2 + ldr r1, [r6, #0x80] + sub r2, r3, r7 + str r2, [r6, #0x80] + ldr r2, [r6, #0x78] + add r4, r0, #4 + sub r0, r3, r2 + str r0, [r6, #0xf8] + ldr r0, [r6, #0xf8] + sub r8, r4, r7 + str r0, [r6, #0x84] + ldr r2, [r6, #0xec] + ldr r3, _02215624 ; =0x51EB851F + mov r0, r2, lsr #0x1f + smull r2, r7, r3, r2 + mov r7, r7, asr #5 + add r7, r0, r7 + cmp r7, #1 + sub sl, r1, r8 + bne _022152DC + cmp sl, #0 + beq _022152B0 + ldr r0, [r6, #0x78] + mov r1, r4 + add r2, sl, #1 + bl memmove + str sl, [r6, #0x80] + mov r0, #0 + str r0, [r6, #0x84] + b _022152B8 +_022152B0: + add r0, r6, #0x74 + bl MOD79_0221262C +_022152B8: + mov r1, #0 + mov r3, #6 + mov r0, r6 + mov r2, r1 + str r3, [r6, #0x10] + bl MOD79_02212E00 + ldr ip, _02215618 ; =0x00001018 + add sp, sp, ip + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} +_022152DC: + cmp r7, #3 + bne _02215448 + ldr r0, [r6, #0x10c] + cmp r0, #0xa + ldrgt ip, _02215618 ; =0x00001018 + movgt r0, #1 + strgt r0, [r6, #0xfc] + movgt r0, #0xb + addgt sp, sp, ip + strgt r0, [r6, #0x38] + ldmgtia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + ldr r1, _02215628 ; =0x02216F70 + mov r0, r5 + bl strstr + cmp r0, #0 + beq _02215448 + add r4, r0, #9 + ldr r1, _0221562C ; =0x0210430C + mov r2, #0 + b _02215330 +_0221532C: + add r4, r4, #1 +_02215330: + ldrsb r0, [r4] + cmp r0, #0 + blt _02215344 + cmp r0, #0x80 + blt _0221534C +_02215344: + mov r0, r2 + b _02215358 +_0221534C: + mov r0, r0, lsl #1 + ldrh r0, [r1, r0] + and r0, r0, #0x100 +_02215358: + cmp r0, #0 + bne _0221532C + mov r3, r4 + ldr r1, _0221562C ; =0x0210430C + mov r2, #0 + b _02215374 +_02215370: + add r3, r3, #1 +_02215374: + ldrsb r0, [r3] + cmp r0, #0 + beq _022153AC + cmp r0, #0 + blt _02215390 + cmp r0, #0x80 + blt _02215398 +_02215390: + mov r0, r2 + b _022153A4 +_02215398: + mov r0, r0, lsl #1 + ldrh r0, [r1, r0] + and r0, r0, #0x100 +_022153A4: + cmp r0, #0 + beq _02215370 +_022153AC: + mov r0, #0 + strb r0, [r3] + ldrsb r0, [r4] + cmp r0, #0x2f + bne _0221541C + ldr r0, [r6, #0x18] + bl strlen + mov r5, r0 + mov r0, r4 + bl strlen + add r1, r5, #0xe + add r0, r1, r0 + bl MOD04_021DD860 + str r0, [r6, #0x108] + ldr r0, [r6, #0x108] + ldr r1, _02215630 ; =0x02216F7C + cmp r0, #0 + moveq r0, #1 + streq r0, [r6, #0xfc] + streq r0, [r6, #0x38] + str r4, [sp] + ldrh r3, [r6, #0x20] + ldr r0, [r6, #0x108] + ldr r2, [r6, #0x18] + bl sprintf + ldr ip, _02215618 ; =0x00001018 + add sp, sp, ip + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} +_0221541C: + mov r0, r4 + bl MOD04_021F0208 + str r0, [r6, #0x108] + ldr r0, [r6, #0x108] + ldr ip, _02215618 ; =0x00001018 + cmp r0, #0 + moveq r0, #1 + streq r0, [r6, #0xfc] + add sp, sp, ip + streq r0, [r6, #0x38] + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} +_02215448: + ldr r1, _02215634 ; =0x02216F8C + mov r0, r5 + bl strstr + movs sb, r0 + beq _02215530 + ldr r7, _02215638 ; =0x0221673C + add r3, sp, #8 + mov r2, #5 +_02215468: + ldrb r1, [r7], #1 + ldrb r0, [r7], #1 + subs r2, r2, #1 + strb r1, [r3], #1 + strb r0, [r3], #1 + bne _02215468 + ldrb r1, [r7] + add r8, sb, #0x10 + add r0, sp, #8 + mov r7, r8 + strb r1, [r3] + bl strlen + b _022154A0 +_0221549C: + add r7, r7, #1 +_022154A0: + cmp r7, #0 + beq _022154CC + ldrsb r1, [r7] + cmp r1, #0 + beq _022154CC + cmp r1, #0xa + beq _022154CC + cmp r1, #0xd + beq _022154CC + cmp r1, #0x20 + bne _0221549C +_022154CC: + sub r2, r7, r8 + cmp r2, r0 + ldrgt ip, _02215618 ; =0x00001018 + movgt r0, #1 + strgt r0, [r6, #0xfc] + movgt r0, #0x10 + addgt sp, sp, ip + strgt r0, [r6, #0x38] + ldmgtia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + cmp r0, r2 + bne _02215524 + add r1, sp, #8 + mov r0, r8 + bl strncmp + cmp r0, #0 + ldrge ip, _02215618 ; =0x00001018 + movge r0, #1 + strge r0, [r6, #0xfc] + movge r0, #0x10 + addge sp, sp, ip + strge r0, [r6, #0x38] + ldmgeia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} +_02215524: + mov r0, r8 + bl atol + str r0, [r6, #0x104] +_02215530: + ldr r1, _0221563C ; =0x02216F9C + mov r0, r5 + bl strstr + cmp r0, #0 + movne r0, #1 + moveq r0, #0 + str r0, [r6, #0x110] + ldr r0, [r6, #0x110] + cmp r0, #0 + movne r0, #0 + strneb r0, [r6, #0x114] + strne r0, [r6, #0x120] + strne r0, [r6, #0x124] + strne r0, [r6, #0x128] + ldr r0, [r6, #0xc] + sub r0, r0, #3 + cmp r0, #1 + ldrls ip, _02215618 ; =0x00001018 + movls r0, #1 + addls sp, sp, ip + strls r0, [r6, #0xfc] + ldmlsia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + mov r0, #8 + str r0, [r6, #0x10] + cmp sb, #0 + beq _022155B4 + ldr r0, [r6, #0x104] + cmp r0, #0 + ldreq ip, _02215618 ; =0x00001018 + moveq r0, #1 + addeq sp, sp, ip + streq r0, [r6, #0xfc] + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} +_022155B4: + cmp sl, #0 + ldrle ip, _02215618 ; =0x00001018 + addle sp, sp, ip + ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + mov r0, r6 + mov r1, r4 + mov r2, sl + bl MOD79_02215640 + ldr ip, _02215618 ; =0x00001018 + add sp, sp, ip + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} +_022155E0: + cmp r4, #2 + ldrne ip, _02215618 ; =0x00001018 + addne sp, sp, ip + ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + mov r0, #1 + str r0, [r6, #0xfc] + mov r0, #7 + str r0, [r6, #0x38] + ldr r0, [r6, #0x48] + bl MOD04_021EFB28 + str r0, [r6, #0x4c] + ldr ip, _02215618 ; =0x00001018 + add sp, sp, ip + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_02215618: .word 0x00001018 +_0221561C: .word 0x02216F64 +_02215620: .word 0x02216F6C +_02215624: .word 0x51EB851F +_02215628: .word 0x02216F70 +_0221562C: .word 0x0210430C +_02215630: .word 0x02216F7C +_02215634: .word 0x02216F8C +_02215638: .word 0x0221673C +_0221563C: .word 0x02216F9C + arm_func_end MOD79_02215174 + + arm_func_start MOD79_02215640 +MOD79_02215640: ; 0x02215640 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0xc + movs r6, r0 + mov r5, r1 + mov r4, r2 + bne _0221566C + ldr r0, _02215884 ; =0x02216FB8 + ldr r1, _02215888 ; =0x02216FC4 + ldr r3, _0221588C ; =0x0000035D + mov r2, #0 + bl __msl_assertion_failed +_0221566C: + cmp r5, #0 + bne _02215688 + ldr r0, _02215890 ; =0x02216FD4 + ldr r1, _02215888 ; =0x02216FC4 + ldr r3, _02215894 ; =0x0000035E + mov r2, #0 + bl __msl_assertion_failed +_02215688: + cmp r4, #0 + bgt _022156A4 + ldr r0, _02215898 ; =0x02216FDC + ldr r1, _02215888 ; =0x02216FC4 + ldr r3, _0221589C ; =0x0000035F + mov r2, #0 + bl __msl_assertion_failed +_022156A4: + ldr r0, [r6, #0x110] + cmp r0, #0 + beq _0221586C + cmp r4, #0 + ble _02215860 + mov r0, #2 + str r0, [sp, #4] + mov r0, #1 + add r8, r6, #0x124 + mov sl, #0xa + mov r7, #0 + str r0, [sp] + mov fp, #3 +_022156D8: + ldr r0, [r6, #0x128] + cmp r0, #0 + bne _02215780 + mov r0, r5 + mov r1, sl + bl strchr + movs sb, r0 + beq _02215764 + mov r0, r6 + mov r1, r5 + sub r2, sb, r5 + bl MOD79_022158A8 + add r1, sb, #1 + sub r2, r1, r5 + mov r0, r6 + mov r5, r1 + sub r4, r4, r2 + bl MOD79_02215984 + str r0, [r6, #0x124] + ldr r1, [r6, #0x124] + mvn r0, #0 + cmp r1, r0 + bne _02215750 + mov r0, #1 + str r0, [r6, #0xfc] + mov r0, #7 + str r0, [r6, #0x38] + add sp, sp, #0xc + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02215750: + cmp r1, #0 + ldrne r0, [sp] + streq fp, [r6, #0x128] + strne r0, [r6, #0x128] + b _02215858 +_02215764: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl MOD79_022158A8 + add sp, sp, #0xc + mov r0, #1 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02215780: + cmp r0, #1 + bne _022157DC + ldr sb, [r6, #0x124] + mov r0, r6 + cmp sb, r4 + movge sb, r4 + mov r1, r5 + mov r2, sb + bl MOD79_022159E4 + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, [r8] + add r5, r5, sb + sub r0, r0, sb + str r0, [r8] + ldr r0, [r6, #0x124] + sub r4, r4, sb + cmp r0, #0 + ldreq r0, [sp, #4] + streq r0, [r6, #0x128] + b _02215858 +_022157DC: + cmp r0, #2 + bne _02215824 + mov r0, r5 + mov r1, sl + bl strchr + cmp r0, #0 + addeq sp, sp, #0xc + moveq r0, #1 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + strb r7, [r6, #0x114] + str r7, [r6, #0x120] + add r0, r0, #1 + sub r1, r0, r5 + str r7, [r6, #0x124] + mov r5, r0 + str r7, [r6, #0x128] + sub r4, r4, r1 + b _02215858 +_02215824: + cmp r0, #3 + moveq r0, #1 + addeq sp, sp, #0xc + streq r0, [r6, #0xfc] + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + ldr r0, _022158A0 ; =0x02216FE4 + ldr r1, _02215888 ; =0x02216FC4 + ldr r3, _022158A4 ; =0x000003E3 + mov r2, #0 + bl __msl_assertion_failed + add sp, sp, #0xc + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_02215858: + cmp r4, #0 + bgt _022156D8 +_02215860: + add sp, sp, #0xc + mov r0, #1 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} +_0221586C: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl MOD79_022159E4 + add sp, sp, #0xc + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_02215884: .word 0x02216FB8 +_02215888: .word 0x02216FC4 +_0221588C: .word 0x0000035D +_02215890: .word 0x02216FD4 +_02215894: .word 0x0000035E +_02215898: .word 0x02216FDC +_0221589C: .word 0x0000035F +_022158A0: .word 0x02216FE4 +_022158A4: .word 0x000003E3 + arm_func_end MOD79_02215640 + + arm_func_start MOD79_022158A8 +MOD79_022158A8: ; 0x022158A8 + stmdb sp!, {r4, r5, r6, r7, lr} + sub sp, sp, #4 + movs r4, r0 + mov r7, r1 + mov r6, r2 + bne _022158D4 + ldr r0, _0221596C ; =0x02216FB8 + ldr r1, _02215970 ; =0x02216FC4 + ldr r3, _02215974 ; =0x00000333 + mov r2, #0 + bl __msl_assertion_failed +_022158D4: + cmp r7, #0 + bne _022158F0 + ldr r0, _02215978 ; =0x02216FD4 + ldr r1, _02215970 ; =0x02216FC4 + mov r2, #0 + mov r3, #0x334 + bl __msl_assertion_failed +_022158F0: + cmp r6, #0 + bge _0221590C + ldr r0, _0221597C ; =0x02216FE8 + ldr r1, _02215970 ; =0x02216FC4 + ldr r3, _02215980 ; =0x00000335 + mov r2, #0 + bl __msl_assertion_failed +_0221590C: + cmp r6, #0 + addeq sp, sp, #4 + ldmeqia sp!, {r4, r5, r6, r7, pc} + ldr r3, [r4, #0x120] + cmp r3, #0xa + addge sp, sp, #4 + ldmgeia sp!, {r4, r5, r6, r7, pc} + rsb r5, r3, #0xa + cmp r5, r6 + movge r5, r6 + add r0, r4, #0x114 + mov r1, r7 + mov r2, r5 + add r0, r0, r3 + bl memcpy + ldr r0, [r4, #0x120] + mov r1, #0 + add r0, r0, r5 + str r0, [r4, #0x120] + ldr r0, [r4, #0x120] + add r0, r4, r0 + strb r1, [r0, #0x114] + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, pc} + .align 2, 0 +_0221596C: .word 0x02216FB8 +_02215970: .word 0x02216FC4 +_02215974: .word 0x00000333 +_02215978: .word 0x02216FD4 +_0221597C: .word 0x02216FE8 +_02215980: .word 0x00000335 + arm_func_end MOD79_022158A8 + + arm_func_start MOD79_02215984 +MOD79_02215984: ; 0x02215984 + stmdb sp!, {r4, lr} + sub sp, sp, #8 + ldr r1, [r0, #0x120] + add r4, r0, #0x114 + cmp r1, #0 + bne _022159B0 + ldr r0, _022159D4 ; =0x02216FF4 + ldr r1, _022159D8 ; =0x02216FC4 + ldr r3, _022159DC ; =0x00000321 + mov r2, #0 + bl __msl_assertion_failed +_022159B0: + ldr r1, _022159E0 ; =0x02216FF8 + add r2, sp, #0 + mov r0, r4 + bl sscanf + cmp r0, #1 + mvnne r0, #0 + ldreq r0, [sp] + add sp, sp, #8 + ldmia sp!, {r4, pc} + .align 2, 0 +_022159D4: .word 0x02216FF4 +_022159D8: .word 0x02216FC4 +_022159DC: .word 0x00000321 +_022159E0: .word 0x02216FF8 + arm_func_end MOD79_02215984 + + arm_func_start MOD79_022159E4 +MOD79_022159E4: ; 0x022159E4 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r0, [r4, #0x100] + mov lr, #0 + add r0, r0, r2 + str r0, [r4, #0x100] + ldr r3, [r4, #0x100] + ldr r0, [r4, #0x104] + mov ip, lr + cmp r3, r0 + beq _02215A1C + ldr r0, [r4, #0x130] + cmp r0, #0 + beq _02215A24 +_02215A1C: + mov r0, #1 + str r0, [r4, #0xfc] +_02215A24: + ldr r0, [r4, #0xc] + cmp r0, #0 + bne _02215A50 + add r0, r4, #0xbc + bl MOD79_02212794 + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r4, pc} + ldr lr, [r4, #0xc0] + ldr ip, [r4, #0xc8] + b _02215A90 +_02215A50: + cmp r0, #1 + bne _02215A84 + cmp r2, #0 + beq _02215A78 + mov r0, #1 + str r0, [r4, #0xfc] + mov r0, #0xd + str r0, [r4, #0x38] + mov r0, #0 + ldmia sp!, {r4, pc} +_02215A78: + mov lr, r1 + mov ip, r2 + b _02215A90 +_02215A84: + cmp r0, #2 + moveq lr, r1 + moveq ip, r2 +_02215A90: + mov r0, r4 + mov r1, lr + mov r2, ip + bl MOD79_02212E00 + mov r0, #1 + ldmia sp!, {r4, pc} + arm_func_end MOD79_022159E4 + + arm_func_start MOD79_02215AA8 +MOD79_02215AA8: ; 0x02215AA8 + stmdb sp!, {r4, r5, lr} + ldr ip, _02215BD0 ; =0x00000404 + sub sp, sp, ip + mov r3, #0x400 + add r1, sp, #4 + add r2, sp, #0 + mov r4, r0 + str r3, [sp] + bl MOD79_02212FF0 + mov r5, r0 + cmp r5, #3 + ldreq ip, _02215BD0 ; =0x00000404 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, pc} + cmp r5, #1 + bne _02215B00 + ldr r1, [r4, #0x84] + ldr r0, [r4, #0x80] + cmp r1, r0 + ldreq ip, _02215BD0 ; =0x00000404 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, pc} +_02215B00: + cmp r5, #0 + bne _02215B28 + ldr r2, [sp] + add r1, sp, #4 + add r0, r4, #0x74 + bl MOD79_02212794 + cmp r0, #0 + ldreq ip, _02215BD0 ; =0x00000404 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, pc} +_02215B28: + ldr r0, [r4, #0x78] + ldr r1, _02215BD4 ; =0x02216FFC + bl strstr + cmp r0, #0 + beq _02215B98 + mov r1, #0 + strb r1, [r0] + ldr r1, [r4, #0x78] + sub r5, r0, r1 + add r1, r5, #1 + mov r0, r4 + str r1, [r4, #0xf8] + bl MOD79_02215BD8 + cmp r0, #0 + ldreq ip, _02215BD0 ; =0x00000404 + addeq sp, sp, ip + ldmeqia sp!, {r4, r5, pc} + add r3, r5, #2 + mov r1, #0 + str r3, [r4, #0x84] + mov r3, #7 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl MOD79_02212E00 + ldr ip, _02215BD0 ; =0x00000404 + add sp, sp, ip + ldmia sp!, {r4, r5, pc} +_02215B98: + cmp r5, #2 + ldrne ip, _02215BD0 ; =0x00000404 + addne sp, sp, ip + ldmneia sp!, {r4, r5, pc} + mov r0, #1 + str r0, [r4, #0xfc] + mov r0, #7 + str r0, [r4, #0x38] + ldr r0, [r4, #0x48] + bl MOD04_021EFB28 + str r0, [r4, #0x4c] + ldr ip, _02215BD0 ; =0x00000404 + add sp, sp, ip + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_02215BD0: .word 0x00000404 +_02215BD4: .word 0x02216FFC + arm_func_end MOD79_02215AA8 + + arm_func_start MOD79_02215BD8 +MOD79_02215BD8: ; 0x02215BD8 + stmdb sp!, {r4, lr} + sub sp, sp, #0x18 + movs r4, r0 + bne _02215BFC + ldr r0, _02215D0C ; =0x02216FB8 + ldr r1, _02215D10 ; =0x02216FC4 + ldr r3, _02215D14 ; =0x0000024E + mov r2, #0 + bl __msl_assertion_failed +_02215BFC: + ldr r0, [r4, #0x80] + cmp r0, #0 + bgt _02215C1C + ldr r0, _02215D18 ; =0x02217000 + ldr r1, _02215D10 ; =0x02216FC4 + ldr r3, _02215D1C ; =0x0000024F + mov r2, #0 + bl __msl_assertion_failed +_02215C1C: + add r1, sp, #0x10 + str r1, [sp] + add r0, sp, #0x14 + str r0, [sp, #4] + ldr r0, [r4, #0x78] + ldr r1, _02215D20 ; =0x02217020 + add r2, sp, #8 + add r3, sp, #0xc + bl sscanf + mov r3, #0 + mov ip, #1 + ldr r2, _02215D24 ; =0x0210430C + b _02215C5C +_02215C50: + ldr r1, [sp, #0x14] + add r1, r1, #1 + str r1, [sp, #0x14] +_02215C5C: + ldr lr, [r4, #0x78] + ldr r1, [sp, #0x14] + ldrsb lr, [lr, r1] + cmp lr, #0 + beq _02215CA0 + mov r1, ip + cmp lr, #0 + blt _02215C84 + cmp lr, #0x80 + movlt r1, r3 +_02215C84: + cmp r1, #0 + movne r1, r3 + moveq r1, lr, lsl #1 + ldreqh r1, [r2, r1] + andeq r1, r1, #0x100 + cmp r1, #0 + bne _02215C50 +_02215CA0: + cmp r0, #3 + bne _02215CC8 + ldr r1, [sp, #8] + cmp r1, #1 + blt _02215CC8 + ldr r0, [sp, #0x10] + cmp r0, #0x64 + blt _02215CC8 + cmp r0, #0x258 + blt _02215CE4 +_02215CC8: + mov r0, #1 + str r0, [r4, #0xfc] + mov r0, #7 + str r0, [r4, #0x38] + add sp, sp, #0x18 + mov r0, #0 + ldmia sp!, {r4, pc} +_02215CE4: + str r1, [r4, #0xe4] + ldr r1, [sp, #0xc] + mov r0, #1 + str r1, [r4, #0xe8] + ldr r1, [sp, #0x10] + str r1, [r4, #0xec] + ldr r1, [sp, #0x14] + str r1, [r4, #0xf0] + add sp, sp, #0x18 + ldmia sp!, {r4, pc} + .align 2, 0 +_02215D0C: .word 0x02216FB8 +_02215D10: .word 0x02216FC4 +_02215D14: .word 0x0000024E +_02215D18: .word 0x02217000 +_02215D1C: .word 0x0000024F +_02215D20: .word 0x02217020 +_02215D24: .word 0x0210430C + arm_func_end MOD79_02215BD8 + + arm_func_start MOD79_02215D28 +MOD79_02215D28: ; 0x02215D28 + stmdb sp!, {r4, lr} + sub sp, sp, #8 + mov r4, r0 + mov r2, #0 + ldr r0, [r4, #0x48] + add r1, sp, #0 + mov r3, r2 + bl MOD04_021EFF5C + mvn r1, #0 + cmp r0, r1 + bne _02215D78 + mov r0, #1 + str r0, [r4, #0xfc] + mov r0, #5 + str r0, [r4, #0x38] + ldr r0, [r4, #0x48] + bl MOD04_021EFB28 + add sp, sp, #8 + str r0, [r4, #0x4c] + ldmia sp!, {r4, pc} +_02215D78: + ldr r0, [sp] + cmp r0, #0 + addeq sp, sp, #8 + ldmeqia sp!, {r4, pc} + mov r1, #0 + mov r3, #6 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl MOD79_02212E00 + add sp, sp, #8 + ldmia sp!, {r4, pc} + arm_func_end MOD79_02215D28 + + arm_func_start MOD79_02215DA8 +MOD79_02215DA8: ; 0x02215DA8 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r4, [r6, #0x148] + bl MOD79_022140D4 + movs r5, r0 + bne _02215DF8 + ldr r0, [r6, #0xfc] + cmp r0, #0 + beq _02215DD8 + ldr r0, [r6, #0x38] + cmp r0, #0 + bne _02215DEC +_02215DD8: + ldr r0, _02215E38 ; =0x02217030 + ldr r1, _02215E3C ; =0x02216FC4 + mov r2, #0 + mov r3, #0x200 + bl __msl_assertion_failed +_02215DEC: + mov r0, r6 + bl MOD79_022149E4 + ldmia sp!, {r4, r5, r6, pc} +_02215DF8: + ldr r0, [r6, #0x148] + cmp r4, r0 + beq _02215E0C + mov r0, r6 + bl MOD79_02212D90 +_02215E0C: + cmp r5, #1 + ldmneia sp!, {r4, r5, r6, pc} + mov r0, r6 + bl MOD79_022149E4 + mov r1, #0 + mov r3, #5 + mov r0, r6 + mov r2, r1 + str r3, [r6, #0x10] + bl MOD79_02212E00 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 +_02215E38: .word 0x02217030 +_02215E3C: .word 0x02216FC4 + arm_func_end MOD79_02215DA8 + + arm_func_start MOD79_02215E40 +MOD79_02215E40: ; 0x02215E40 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #0x14 + mov r5, r0 + ldr r0, [r5, #0x5c] + cmp r0, #0 + bne _02216020 + ldr r0, [r5, #0x13c] + add r4, r5, #0x50 + cmp r0, #0 + ldrne r1, _02216080 ; =0x0221705C + bne _02215E7C + ldr r0, [r5, #0xc] + cmp r0, #3 + ldreq r1, _02216084 ; =0x02217064 + ldrne r1, _02216088 ; =0x0221706C +_02215E7C: + mov r0, r4 + mov r2, #0 + bl MOD79_02212794 + ldr r0, [r5, #0x15c] + cmp r0, #0 + bne _02215EA4 + ldr r0, _0221608C ; =0x02217128 + ldr r0, [r0] + cmp r0, #0 + beq _02215EB8 +_02215EA4: + ldr r1, [r5, #0x14] + mov r0, r4 + mov r2, #0 + bl MOD79_02212794 + b _02215EC8 +_02215EB8: + ldr r1, [r5, #0x24] + mov r0, r4 + mov r2, #0 + bl MOD79_02212794 +_02215EC8: + ldr r1, _02216090 ; =0x02217074 + mov r0, r4 + mov r2, #0 + bl MOD79_02212794 + ldrh r0, [r5, #0x20] + cmp r0, #0x50 + bne _02215EF8 + ldr r2, [r5, #0x18] + ldr r1, _02216094 ; =0x02217080 + mov r0, r4 + bl MOD79_02212700 + b _02215F40 +_02215EF8: + ldr r1, _02216098 ; =0x02217088 + mov r0, r4 + mov r2, #0 + bl MOD79_02212794 + ldr r1, [r5, #0x18] + mov r0, r4 + mov r2, #0 + bl MOD79_02212794 + mov r0, r4 + mov r1, #0x3a + bl MOD79_022126A4 + ldrh r1, [r5, #0x20] + mov r0, r4 + bl MOD79_0221266C + mov r0, r4 + ldr r1, _0221609C ; =0x02216FFC + mov r2, #2 + bl MOD79_02212794 +_02215F40: + ldr r0, [r5, #0x28] + cmp r0, #0 + beq _02215F5C + ldr r1, _022160A0 ; =0x02217090 + bl strstr + cmp r0, #0 + bne _02215F6C +_02215F5C: + ldr r1, _022160A0 ; =0x02217090 + ldr r2, _022160A4 ; =0x0221709C + mov r0, r4 + bl MOD79_02212700 +_02215F6C: + ldr r0, [r5, #0x34] + cmp r0, #0 + beq _02215F8C + ldr r1, _022160A8 ; =0x022170AC + ldr r2, _022160AC ; =0x022170B8 + mov r0, r4 + bl MOD79_02212700 + b _02215F9C +_02215F8C: + ldr r1, _022160A8 ; =0x022170AC + ldr r2, _022160B0 ; =0x022170C4 + mov r0, r4 + bl MOD79_02212700 +_02215F9C: + ldr r0, [r5, #0x13c] + cmp r0, #0 + beq _02215FE0 + ldr r2, [r5, #0x14c] + ldr r1, _022160B4 ; =0x022170CC + add r0, sp, #0 + bl sprintf + ldr r1, _022160B8 ; =0x022170D0 + add r2, sp, #0 + mov r0, r4 + bl MOD79_02212700 + mov r0, r5 + bl MOD79_02214FFC + mov r2, r0 + ldr r1, _022160BC ; =0x022170E0 + mov r0, r4 + bl MOD79_02212700 +_02215FE0: + ldr r1, [r5, #0x28] + cmp r1, #0 + beq _02215FF8 + mov r0, r4 + mov r2, #0 + bl MOD79_02212794 +_02215FF8: + ldr r1, _0221609C ; =0x02216FFC + mov r0, r4 + mov r2, #2 + bl MOD79_02212794 + add r0, r5, #0x50 + cmp r4, r0 + beq _02216020 + ldr r1, [r4, #4] + ldr r2, [r4, #0xc] + bl MOD79_02212794 +_02216020: + mov r0, r5 + bl MOD79_02212554 + cmp r0, #0 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4, r5, pc} + ldr r1, [r5, #0x60] + ldr r0, [r5, #0x5c] + cmp r1, r0 + addlt sp, sp, #0x14 + ldmltia sp!, {r4, r5, pc} + add r0, r5, #0x50 + bl MOD79_0221262C + ldr r0, [r5, #0x13c] + mov r1, #0 + cmp r0, #0 + movne r0, #4 + strne r0, [r5, #0x10] + moveq r0, #5 + streq r0, [r5, #0x10] + mov r0, r5 + mov r2, r1 + bl MOD79_02212E00 + add sp, sp, #0x14 + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_02216080: .word 0x0221705C +_02216084: .word 0x02217064 +_02216088: .word 0x0221706C +_0221608C: .word 0x02217128 +_02216090: .word 0x02217074 +_02216094: .word 0x02217080 +_02216098: .word 0x02217088 +_0221609C: .word 0x02216FFC +_022160A0: .word 0x02217090 +_022160A4: .word 0x0221709C +_022160A8: .word 0x022170AC +_022160AC: .word 0x022170B8 +_022160B0: .word 0x022170C4 +_022160B4: .word 0x022170CC +_022160B8: .word 0x022170D0 +_022160BC: .word 0x022170E0 + arm_func_end MOD79_02215E40 + + arm_func_start MOD79_022160C0 +MOD79_022160C0: ; 0x022160C0 + stmdb sp!, {r4, lr} + ldr ip, _02216208 ; =0x00000408 + sub sp, sp, ip + mov r4, r0 + ldr r1, [r4, #0x168] + cmp r1, #0 + bne _02216130 + ldr r0, [r4, #0x14] + ldr r1, _0221620C ; =0x022170F0 + mov r2, #8 + bl strncmp + cmp r0, #0 + ldreq ip, _02216208 ; =0x00000408 + moveq r0, #1 + streq r0, [r4, #0xfc] + moveq r0, #0x11 + addeq sp, sp, ip + streq r0, [r4, #0x38] + ldmeqia sp!, {r4, pc} + mov r1, #0 + mov r3, #3 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl MOD79_02212E00 + ldr ip, _02216208 ; =0x00000408 + add sp, sp, ip + ldmia sp!, {r4, pc} +_02216130: + ldr r1, [r4, #0x170] + cmp r1, #0 + beq _0221615C + mov r1, #0 + mov r3, #3 + mov r2, r1 + str r3, [r4, #0x10] + bl MOD79_02212E00 + ldr ip, _02216208 ; =0x00000408 + add sp, sp, ip + ldmia sp!, {r4, pc} +_0221615C: + ldr r1, [r4, #0x16c] + cmp r1, #0 + bne _0221619C + ldr r2, [r4, #0x174] + add r1, r4, #0x164 + .word 0xE12FFF32 + cmp r0, #3 + bne _0221619C + ldr r0, _02216210 ; =0x02216FE4 + ldr r1, _02216214 ; =0x02216FC4 + ldr r3, _02216218 ; =0x00000146 + mov r2, #0 + bl __msl_assertion_failed + ldr ip, _02216208 ; =0x00000408 + add sp, sp, ip + ldmia sp!, {r4, pc} +_0221619C: + ldr r1, [r4, #0x60] + ldr r0, [r4, #0x5c] + cmp r1, r0 + bge _022161E4 + mov r0, r4 + bl MOD79_02212554 + cmp r0, #0 + ldreq ip, _02216208 ; =0x00000408 + addeq sp, sp, ip + ldmeqia sp!, {r4, pc} + ldr r1, [r4, #0x60] + ldr r0, [r4, #0x5c] + cmp r1, r0 + ldrlt ip, _02216208 ; =0x00000408 + addlt sp, sp, ip + ldmltia sp!, {r4, pc} + add r0, r4, #0x50 + bl MOD79_0221262C +_022161E4: + mov r3, #0x400 + add r1, sp, #4 + add r2, sp, #0 + mov r0, r4 + str r3, [sp] + bl MOD79_02212FF0 + ldr ip, _02216208 ; =0x00000408 + add sp, sp, ip + ldmia sp!, {r4, pc} + .align 2, 0 +_02216208: .word 0x00000408 +_0221620C: .word 0x022170F0 +_02216210: .word 0x02216FE4 +_02216214: .word 0x02216FC4 +_02216218: .word 0x00000146 + arm_func_end MOD79_022160C0 + + arm_func_start MOD79_0221621C +MOD79_0221621C: ; 0x0221621C + stmdb sp!, {r4, lr} + sub sp, sp, #0x10 + mov r4, r0 + ldr r1, [r4, #0x48] + mvn r0, #0 + cmp r1, r0 + bne _022163D4 + mov r0, #2 + mov r1, #1 + mov r2, #0 + bl MOD04_021EFDB8 + str r0, [r4, #0x48] + ldr r0, [r4, #0x48] + mvn r1, #0 + cmp r0, r1 + bne _02216280 + mov r0, #1 + str r0, [r4, #0xfc] + mov r0, #5 + str r0, [r4, #0x38] + ldr r0, [r4, #0x48] + bl MOD04_021EFB28 + add sp, sp, #0x10 + str r0, [r4, #0x4c] + ldmia sp!, {r4, pc} +_02216280: + mov r1, #0 + bl MOD04_021F017C + cmp r0, #0 + bne _022162B4 + mov r0, #1 + str r0, [r4, #0xfc] + mov r0, #5 + str r0, [r4, #0x38] + ldr r0, [r4, #0x48] + bl MOD04_021EFB28 + add sp, sp, #0x10 + str r0, [r4, #0x4c] + ldmia sp!, {r4, pc} +_022162B4: + ldr r0, [r4, #0x134] + cmp r0, #0 + beq _022162D0 + ldr r1, _0221646C ; =0x0221695C + ldr r0, [r4, #0x48] + ldr r1, [r1] + bl MOD04_021F0130 +_022162D0: + add r1, sp, #0 + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + mov r0, #2 + strb r0, [sp, #1] + ldr r0, [r4, #0x15c] + cmp r0, #0 + beq _02216318 + add r0, r4, #0x100 + ldrh r0, [r0, #0x60] + mov r1, r0, asr #8 + mov r0, r0, lsl #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp, #2] + b _02216368 +_02216318: + ldr r0, _02216470 ; =0x02217128 + ldr r0, [r0] + cmp r0, #0 + beq _0221634C + ldr r0, _02216474 ; =0x02217124 + ldrh r0, [r0] + mov r1, r0, asr #8 + mov r0, r0, lsl #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp, #2] + b _02216368 +_0221634C: + ldrh r0, [r4, #0x20] + mov r1, r0, asr #8 + mov r0, r0, lsl #8 + and r1, r1, #0xff + and r0, r0, #0xff00 + orr r0, r1, r0 + strh r0, [sp, #2] +_02216368: + ldr r0, [r4, #0x1c] + add r1, sp, #0 + str r0, [sp, #4] + ldr r0, [r4, #0x48] + mov r2, #8 + bl MOD04_021EFCE4 + mvn r1, #0 + cmp r0, r1 + bne _022163D4 + ldr r0, [r4, #0x48] + bl MOD04_021EFB28 + mvn r1, #5 + cmp r0, r1 + beq _022163D4 + mvn r1, #0x19 + cmp r0, r1 + beq _022163D4 + mvn r1, #0x4b + cmp r0, r1 + beq _022163D4 + mov r1, #1 + str r1, [r4, #0xfc] + mov r1, #6 + str r1, [r4, #0x38] + add sp, sp, #0x10 + str r0, [r4, #0x4c] + ldmia sp!, {r4, pc} +_022163D4: + ldr r0, [r4, #0x48] + add r2, sp, #8 + add r3, sp, #0xc + mov r1, #0 + bl MOD04_021EFF5C + cmp r0, #0 + movgt r1, #1 + movle r1, #0 + mvn r0, #0 + cmp r1, r0 + beq _0221640C + ldr r0, [sp, #0xc] + cmp r0, #0 + beq _0221643C +_0221640C: + mov r0, #1 + str r0, [r4, #0xfc] + mov r0, #6 + cmp r1, #0 + addne sp, sp, #0x10 + str r0, [r4, #0x38] + ldmneia sp!, {r4, pc} + ldr r0, [r4, #0x48] + bl MOD04_021EFB28 + add sp, sp, #0x10 + str r0, [r4, #0x4c] + ldmia sp!, {r4, pc} +_0221643C: + ldr r0, [sp, #8] + cmp r0, #0 + addeq sp, sp, #0x10 + ldmeqia sp!, {r4, pc} + mov r1, #0 + mov r3, #2 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl MOD79_02212E00 + add sp, sp, #0x10 + ldmia sp!, {r4, pc} + .align 2, 0 +_0221646C: .word 0x0221695C +_02216470: .word 0x02217128 +_02216474: .word 0x02217124 + arm_func_end MOD79_0221621C + + arm_func_start MOD79_02216478 +MOD79_02216478: ; 0x02216478 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #4 + mov r1, #0 + mov r4, r0 + mov r2, r1 + bl MOD79_02212E00 + bl MOD04_021F024C + mov r0, r4 + bl MOD79_02216548 + cmp r0, #0 + moveq r0, #1 + streq r0, [r4, #0xfc] + moveq r0, #3 + addeq sp, sp, #4 + streq r0, [r4, #0x38] + ldmeqia sp!, {r4, r5, pc} + ldr r5, [r4, #0x15c] + cmp r5, #0 + bne _022164D4 + ldr r0, _02216544 ; =0x02217128 + ldr r5, [r0] + cmp r5, #0 + ldreq r5, [r4, #0x18] +_022164D4: + mov r0, r5 + bl MOD04_021EFB38 + str r0, [r4, #0x1c] + ldr r1, [r4, #0x1c] + mvn r0, #0 + cmp r1, r0 + bne _02216524 + mov r0, r5 + bl FUN_0209A6EC + cmp r0, #0 + moveq r0, #1 + streq r0, [r4, #0xfc] + moveq r0, #4 + addeq sp, sp, #4 + streq r0, [r4, #0x38] + ldmeqia sp!, {r4, r5, pc} + ldr r0, [r0, #0xc] + ldr r0, [r0] + ldr r0, [r0] + str r0, [r4, #0x1c] +_02216524: + mov r1, #0 + mov r3, #1 + mov r0, r4 + mov r2, r1 + str r3, [r4, #0x10] + bl MOD79_02212E00 + add sp, sp, #4 + ldmia sp!, {r4, r5, pc} + .align 2, 0 +_02216544: .word 0x02217128 + arm_func_end MOD79_02216478 + + arm_func_start MOD79_02216548 +MOD79_02216548: ; 0x02216548 + stmdb sp!, {r4, r5, r6, r7, r8, sb, lr} + sub sp, sp, #4 + movs r7, r0 + bne _0221656C + ldr r0, _02216704 ; =0x02216FB8 + ldr r1, _02216708 ; =0x02216FC4 + mov r2, #0 + mov r3, #0x25 + bl __msl_assertion_failed +_0221656C: + cmp r7, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} + ldr r0, [r7, #0x14] + cmp r0, #0 + bne _0221659C + ldr r0, _0221670C ; =0x022170FC + ldr r1, _02216708 ; =0x02216FC4 + mov r2, #0 + mov r3, #0x2b + bl __msl_assertion_failed +_0221659C: + ldr r6, [r7, #0x14] + cmp r6, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} + ldr r1, _02216710 ; =0x0221710C + mov r0, r6 + mov r2, #7 + bl strncmp + cmp r0, #0 + addeq r6, r6, #7 + moveq r4, #0 + beq _022165FC + ldr r1, _02216714 ; =0x022170F0 + mov r0, r6 + mov r2, #8 + bl strncmp + cmp r0, #0 + addeq r6, r6, #8 + moveq r4, #1 + beq _022165FC + add sp, sp, #4 + mov r0, #0 + ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} +_022165FC: + ldr r1, _02216718 ; =0x02217114 + mov r0, r6 + bl strspn + mov r8, r0 + ldrsb r5, [r6, r8] + mov r1, #0 + mov r0, r6 + strb r1, [r6, r8] + add sb, r6, r8 + bl MOD04_021F0208 + str r0, [r7, #0x18] + ldr r0, [r7, #0x18] + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} + strb r5, [sb] + ldrsb r0, [r6, r8]! + cmp r0, #0x3a + bne _02216688 + add r6, r6, #1 + mov r0, r6 + bl atol + strh r0, [r7, #0x20] + ldrh r0, [r7, #0x20] + cmp r0, #0 + addeq sp, sp, #4 + moveq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, sb, pc} +_02216670: + ldrsb r0, [r6, #1]! + cmp r0, #0 + beq _0221669C + cmp r0, #0x2f + bne _02216670 + b _0221669C +_02216688: + cmp r4, #0 + ldrne r0, _0221671C ; =0x000001BB + strneh r0, [r7, #0x20] + moveq r0, #0x50 + streqh r0, [r7, #0x20] +_0221669C: + ldrsb r0, [r6] + cmp r0, #0 + ldreq r6, _02216720 ; =0x02217118 + mov r0, r6 + bl MOD04_021F0208 + str r0, [r7, #0x24] + ldr r6, [r7, #0x24] + mov r1, #0x20 + mov r0, r6 + bl strchr + cmp r0, #0 + beq _022166F0 + mov r5, #0x2b + mov r4, #0x20 +_022166D4: + strb r5, [r0] + ldr r6, [r7, #0x24] + mov r1, r4 + mov r0, r6 + bl strchr + cmp r0, #0 + bne _022166D4 +_022166F0: + cmp r6, #0 + movne r0, #1 + moveq r0, #0 + add sp, sp, #4 + ldmia sp!, {r4, r5, r6, r7, r8, sb, pc} + .align 2, 0 +_02216704: .word 0x02216FB8 +_02216708: .word 0x02216FC4 +_0221670C: .word 0x022170FC +_02216710: .word 0x0221710C +_02216714: .word 0x022170F0 +_02216718: .word 0x02217114 +_0221671C: .word 0x000001BB +_02216720: .word 0x02217118 + arm_func_end MOD79_02216548 + ; 0x02216724 + + .section .rodata + ; 0x02216738 + .incbin "baserom.nds", 0x2DE6D8, 0x10 + + .section .data + ; 0x0221686C + .incbin "baserom.nds", 0x2DE80C, 0x8B4 diff --git a/arm9/modules/79/asm/module_79_thumb.s b/arm9/modules/79/asm/module_79_thumb.s new file mode 100644 index 00000000..26c700af --- /dev/null +++ b/arm9/modules/79/asm/module_79_thumb.s @@ -0,0 +1,851 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD79_02211E60 +MOD79_02211E60: ; 0x02211E60 + lsl r1, r0, #0x10 + orr r1, r0 + ldr r0, _02211E6C ; =0x02217120 + str r1, [r0] + bx lr + nop +_02211E6C: .word 0x02217120 + thumb_func_end MOD79_02211E60 + + thumb_func_start MOD79_02211E70 +MOD79_02211E70: ; 0x02211E70 + ldr r1, _02211E8C ; =0x02217120 + mov r0, #0x45 + ldr r2, [r1] + add r3, r2, #0 + mul r3, r0 + ldr r0, _02211E90 ; =0x00001111 + add r2, r3, r0 + ldr r0, _02211E94 ; =0x7FFFFFFF + and r0, r2 + str r0, [r1] + asr r0, r0, #0x10 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bx lr + .align 2, 0 +_02211E8C: .word 0x02217120 +_02211E90: .word 0x00001111 +_02211E94: .word 0x7FFFFFFF + thumb_func_end MOD79_02211E70 + + thumb_func_start MOD79_02211E98 +MOD79_02211E98: ; 0x02211E98 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r4, r0, #0 + mov r0, #0 + add r5, r2, #0 + str r0, [sp, #0x14] + add r0, r5, #0 + str r0, [sp, #0x10] + add r0, #8 + add r7, r1, #0 + str r3, [sp] + str r0, [sp, #0x10] + bl MOD79_02211FA4 + ldr r1, [sp, #0x30] + add r0, r0, #1 + cmp r1, r0 + bge _02211EC2 + add sp, #0x18 + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_02211EC2: + ldr r1, [sp, #0x10] + mov r0, #0xa + bl MOD04_021DD944 + add r6, r0, #0 + bne _02211ED4 + add sp, #0x18 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02211ED4: + lsr r0, r4, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldr r0, [sp, #0x14] + add r0, r0, r1 + lsr r1, r4, #0x10 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #8] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r0, r1 + lsr r1, r4, #8 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0xc] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r0, r0, r1 + lsl r1, r4, #0x18 + lsr r4, r1, #0x18 + lsl r1, r4, #0x18 + lsr r1, r1, #0x18 + add r0, r0, r1 + str r0, [sp, #0x14] + mov r0, #0 + cmp r5, #0 + ble _02211F20 +_02211F12: + ldrb r2, [r7, r0] + ldr r1, [sp, #0x14] + add r0, r0, #1 + add r1, r1, r2 + str r1, [sp, #0x14] + cmp r0, r5 + blt _02211F12 +_02211F20: + ldr r0, [sp, #0x14] + bl MOD79_02211E60 + bl MOD79_02211E70 + eor r0, r4 + strb r0, [r6, #4] + bl MOD79_02211E70 + ldr r1, [sp, #0xc] + eor r0, r1 + strb r0, [r6, #5] + bl MOD79_02211E70 + ldr r1, [sp, #8] + eor r0, r1 + strb r0, [r6, #6] + bl MOD79_02211E70 + ldr r1, [sp, #4] + mov r4, #0 + eor r0, r1 + strb r0, [r6, #7] + cmp r5, #0 + ble _02211F64 +_02211F52: + bl MOD79_02211E70 + ldrb r1, [r7, r4] + eor r1, r0 + add r0, r6, r4 + add r4, r4, #1 + strb r1, [r0, #8] + cmp r4, r5 + blt _02211F52 +_02211F64: + ldr r1, _02211FA0 ; =0x4A3B2C1D + ldr r0, [sp, #0x14] + add r5, #8 + eor r1, r0 + lsr r0, r1, #0x18 + strb r0, [r6] + lsr r0, r1, #0x10 + strb r0, [r6, #1] + lsr r0, r1, #8 + strb r0, [r6, #2] + strb r1, [r6, #3] + ldr r1, [sp] + add r0, r6, #0 + add r2, r5, #0 + mov r3, #2 + bl MOD04_021EF820 + ldr r0, [sp, #0x10] + bl MOD79_02211FA4 + ldr r1, [sp] + mov r2, #0 + strb r2, [r1, r0] + mov r0, #0xa + add r1, r6, #0 + bl MOD04_021DD904 + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02211FA0: .word 0x4A3B2C1D + thumb_func_end MOD79_02211E98 + + thumb_func_start MOD79_02211FA4 +MOD79_02211FA4: ; 0x02211FA4 + push {r3, r4, r5, lr} + mov r1, #3 + add r5, r0, #0 + bl _u32_div_f + cmp r1, #0 + beq _02211FB6 + mov r4, #1 + b _02211FB8 +_02211FB6: + mov r4, #0 +_02211FB8: + add r0, r5, #0 + mov r1, #3 + bl _u32_div_f + add r0, r0, r4 + lsl r0, r0, #2 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD79_02211FA4 + + thumb_func_start MOD79_02211FC8 +MOD79_02211FC8: ; 0x02211FC8 + add r0, #8 + cmp r0, #7 + bhi _02212022 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02211FDA: ; jump table + .short _02211FEA - _02211FDA - 2 ; case 0 + .short _02212022 - _02211FDA - 2 ; case 1 + .short _02211FF2 - _02211FDA - 2 ; case 2 + .short _02211FFA - _02211FDA - 2 ; case 3 + .short _02212002 - _02211FDA - 2 ; case 4 + .short _0221200A - _02211FDA - 2 ; case 5 + .short _02212012 - _02211FDA - 2 ; case 6 + .short _0221201A - _02211FDA - 2 ; case 7 +_02211FEA: + ldr r0, _0221202C ; =0x02216760 + mov r1, #0 + str r1, [r0, #8] + bx lr +_02211FF2: + ldr r0, _0221202C ; =0x02216760 + mov r1, #1 + str r1, [r0, #8] + bx lr +_02211FFA: + ldr r0, _0221202C ; =0x02216760 + mov r1, #2 + str r1, [r0, #8] + bx lr +_02212002: + ldr r0, _0221202C ; =0x02216760 + mov r1, #3 + str r1, [r0, #8] + bx lr +_0221200A: + ldr r0, _0221202C ; =0x02216760 + mov r1, #4 + str r1, [r0, #8] + bx lr +_02212012: + ldr r0, _0221202C ; =0x02216760 + mov r1, #5 + str r1, [r0, #8] + bx lr +_0221201A: + ldr r0, _0221202C ; =0x02216760 + mov r1, #6 + str r1, [r0, #8] + bx lr +_02212022: + ldr r0, _0221202C ; =0x02216760 + mov r1, #0 + str r1, [r0, #8] + bx lr + nop +_0221202C: .word 0x02216760 + thumb_func_end MOD79_02211FC8 + + thumb_func_start MOD79_02212030 +MOD79_02212030: ; 0x02212030 + push {r4, r5, r6, r7, lr} + sub sp, #0x4c + add r4, r1, #0 + mov r3, #0 + ldr r1, _022122B8 ; =0x02216760 + mvn r3, r3 + str r3, [r1, #4] + ldr r3, [r1] + add r6, r0, #0 + cmp r3, #1 + bne _02212048 + b _022122B2 +_02212048: + cmp r2, #0 + beq _0221204E + b _02212202 +_0221204E: + cmp r3, #4 + beq _0221205A + cmp r3, #6 + beq _02212126 + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_0221205A: + cmp r4, #0x20 + bne _0221211E + ldr r5, [r1, #0x28] + ldr r3, _022122BC ; =0x02216724 + add r5, #0x14 + add r2, sp, #4 + mov r1, #0x11 +_02212068: + ldrb r0, [r3] + add r3, r3, #1 + strb r0, [r2] + add r2, r2, #1 + sub r1, r1, #1 + bne _02212068 + add r3, sp, #0x14 + ldr r2, _022122C0 ; =0x02216794 + add r3, #1 + mov r1, #0x15 +_0221207C: + ldrb r0, [r2] + add r2, r2, #1 + strb r0, [r3] + add r3, r3, #1 + sub r1, r1, #1 + bne _0221207C + add r0, sp, #0x14 + add r0, #1 + add r1, r6, #0 + add r2, r4, #0 + bl strncat + add r0, sp, #0x14 + add r0, #1 + bl strlen + add r1, sp, #0x14 + add r2, r0, #0 + add r0, r5, #0 + add r1, #1 + bl MATH_CalcSHA1 + ldr r0, _022122B8 ; =0x02216760 + ldr r1, _022122C4 ; =0x022167AC + ldr r0, [r0, #0x24] + bl strcat + mov r2, #0 + ldr r4, _022122B8 ; =0x02216760 + add r3, r2, #0 + add r1, sp, #4 + mov r7, #0xf +_022120BC: + ldrb r0, [r5, r2] + asr r0, r0, #4 + ldrsb r6, [r1, r0] + ldr r0, [r4, #0x28] + strb r6, [r0, r3] + ldrb r0, [r5, r2] + ldr r6, [r4, #0x28] + add r2, r2, #1 + and r0, r7 + ldrsb r0, [r1, r0] + add r6, r6, r3 + add r3, r3, #2 + strb r0, [r6, #1] + cmp r2, #0x14 + blt _022120BC + ldr r0, _022122B8 ; =0x02216760 + mov r2, #0 + ldr r1, [r0, #0x28] + add r1, #0x28 + strb r2, [r1] + ldr r0, [r0, #0x24] + ldr r1, _022122C8 ; =0x022167B4 + bl strcat + ldr r3, _022122B8 ; =0x02216760 + ldr r0, [r3, #0x30] + str r0, [sp] + ldr r0, [r3, #0x10] + ldr r1, [r3, #0x14] + ldr r2, [r3, #0x18] + ldr r3, [r3, #0x2c] + bl MOD79_02211E98 + cmp r0, #0 + beq _02212114 + cmp r0, #1 + beq _0221210A + cmp r0, #2 + bne _02212114 +_0221210A: + ldr r0, _022122B8 ; =0x02216760 + mov r1, #1 + str r1, [r0] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_02212114: + ldr r0, _022122B8 ; =0x02216760 + mov r1, #5 + str r1, [r0] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_0221211E: + mov r0, #1 + str r0, [r1] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_02212126: + cmp r4, #0x16 + bne _022121D0 + ldr r1, _022122CC ; =0x022167BC + mov r2, #0x16 + bl strncmp + cmp r0, #0 + bne _02212144 + ldr r0, _022122B8 ; =0x02216760 + mov r1, #1 + str r1, [r0] + mov r1, #0x1a + str r1, [r0, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_02212144: + ldr r1, _022122D0 ; =0x022167D4 + add r0, r6, #0 + mov r2, #0x16 + bl strncmp + cmp r0, #0 + bne _02212160 + ldr r0, _022122B8 ; =0x02216760 + mov r1, #1 + str r1, [r0] + mov r1, #0x1b + str r1, [r0, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_02212160: + ldr r1, _022122D4 ; =0x022167EC + add r0, r6, #0 + mov r2, #0x16 + bl strncmp + cmp r0, #0 + bne _0221217C + ldr r0, _022122B8 ; =0x02216760 + mov r1, #1 + str r1, [r0] + mov r1, #0x1c + str r1, [r0, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_0221217C: + ldr r1, _022122D8 ; =0x02216804 + add r0, r6, #0 + mov r2, #0x16 + bl strncmp + cmp r0, #0 + bne _02212198 + ldr r0, _022122B8 ; =0x02216760 + mov r1, #1 + str r1, [r0] + mov r1, #0x1d + str r1, [r0, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_02212198: + ldr r1, _022122DC ; =0x0221681C + add r0, r6, #0 + mov r2, #0x16 + bl strncmp + cmp r0, #0 + bne _022121B4 + ldr r0, _022122B8 ; =0x02216760 + mov r1, #1 + str r1, [r0] + mov r1, #0x1e + str r1, [r0, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_022121B4: + ldr r1, _022122E0 ; =0x02216834 + add r0, r6, #0 + mov r2, #0x16 + bl strncmp + cmp r0, #0 + bne _022121D0 + ldr r0, _022122B8 ; =0x02216760 + mov r1, #1 + str r1, [r0] + mov r1, #0x1f + str r1, [r0, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_022121D0: + ldr r0, _022122B8 ; =0x02216760 + ldr r2, [r0, #0x20] + cmp r4, r2 + ldr r0, [r0, #0x1c] + bgt _022121EA + add r1, r6, #0 + add r2, r4, #0 + bl memcpy + ldr r0, _022122B8 ; =0x02216760 + mov r1, #7 + str r1, [r0] + b _022121FA +_022121EA: + add r1, r6, #0 + bl memcpy + ldr r0, _022122B8 ; =0x02216760 + mov r1, #1 + str r1, [r0] + mov r1, #0x20 + str r1, [r0, #8] +_022121FA: + ldr r0, _022122B8 ; =0x02216760 + add sp, #0x4c + str r4, [r0, #0xc] + pop {r4, r5, r6, r7, pc} +_02212202: + mov r0, #1 + str r0, [r1] + cmp r2, #0x13 + bhi _022122B2 + add r0, r2, r2 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02212216: ; jump table + .short _022122B2 - _02212216 - 2 ; case 0 + .short _0221223E - _02212216 - 2 ; case 1 + .short _02212246 - _02212216 - 2 ; case 2 + .short _0221224E - _02212216 - 2 ; case 3 + .short _02212256 - _02212216 - 2 ; case 4 + .short _0221225E - _02212216 - 2 ; case 5 + .short _02212266 - _02212216 - 2 ; case 6 + .short _0221226E - _02212216 - 2 ; case 7 + .short _02212276 - _02212216 - 2 ; case 8 + .short _0221227E - _02212216 - 2 ; case 9 + .short _02212286 - _02212216 - 2 ; case 10 + .short _0221228E - _02212216 - 2 ; case 11 + .short _02212296 - _02212216 - 2 ; case 12 + .short _022122B2 - _02212216 - 2 ; case 13 + .short _022122B2 - _02212216 - 2 ; case 14 + .short _0221229E - _02212216 - 2 ; case 15 + .short _022122A6 - _02212216 - 2 ; case 16 + .short _022122B2 - _02212216 - 2 ; case 17 + .short _022122B2 - _02212216 - 2 ; case 18 + .short _022122AE - _02212216 - 2 ; case 19 +_0221223E: + mov r0, #8 + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_02212246: + mov r0, #9 + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_0221224E: + mov r0, #0xa + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_02212256: + mov r0, #0xb + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_0221225E: + mov r0, #0xc + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_02212266: + mov r0, #0xd + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_0221226E: + mov r0, #0xe + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_02212276: + mov r0, #0xf + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_0221227E: + mov r0, #0x10 + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_02212286: + mov r0, #0x11 + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_0221228E: + mov r0, #0x12 + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_02212296: + mov r0, #0x13 + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_0221229E: + mov r0, #0x16 + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_022122A6: + mov r0, #0x17 + str r0, [r1, #8] + add sp, #0x4c + pop {r4, r5, r6, r7, pc} +_022122AE: + mov r0, #0x19 + str r0, [r1, #8] +_022122B2: + add sp, #0x4c + pop {r4, r5, r6, r7, pc} + nop +_022122B8: .word 0x02216760 +_022122BC: .word 0x02216724 +_022122C0: .word 0x02216794 +_022122C4: .word 0x022167AC +_022122C8: .word 0x022167B4 +_022122CC: .word 0x022167BC +_022122D0: .word 0x022167D4 +_022122D4: .word 0x022167EC +_022122D8: .word 0x02216804 +_022122DC: .word 0x0221681C +_022122E0: .word 0x02216834 + thumb_func_end MOD79_02212030 + + thumb_func_start MOD79_022122E4 +MOD79_022122E4: ; 0x022122E4 + push {r3, lr} + ldr r0, _02212304 ; =0x02216760 + mov r1, #2 + str r1, [r0] + sub r1, r1, #3 + str r1, [r0, #4] + mov r0, #0 + bl MOD04_021EB59C + cmp r0, #0 + bne _02212300 + ldr r0, _02212304 ; =0x02216760 + mov r1, #1 + str r1, [r0] +_02212300: + pop {r3, pc} + nop +_02212304: .word 0x02216760 + thumb_func_end MOD79_022122E4 + + thumb_func_start MOD79_02212308 +MOD79_02212308: ; 0x02212308 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + ldr r1, _02212398 ; =0x02216760 + add r4, r3, #0 + ldr r3, [r1] + add r7, r0, #0 + cmp r3, #2 + beq _0221231C + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0221231C: + str r5, [r1, #0x10] + str r2, [r1, #0x14] + str r4, [r1, #0x18] + ldr r2, [sp, #0x18] + add r4, #8 + str r2, [r1, #0x1c] + ldr r2, [sp, #0x1c] + str r2, [r1, #0x20] + bl strlen + add r6, r0, #0 + add r0, r4, #0 + bl MOD79_02211FA4 + add r1, r0, #0 + add r6, #0x45 + mov r0, #0xa + add r1, r6, r1 + bl MOD04_021DD944 + ldr r1, _02212398 ; =0x02216760 + cmp r0, #0 + str r0, [r1, #0x24] + bne _02212350 + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_02212350: + ldr r1, _0221239C ; =0x0221684C + add r2, r7, #0 + add r3, r5, #0 + bl sprintf + ldr r0, _02212398 ; =0x02216760 + ldr r5, [r0, #0x24] + add r0, r5, #0 + bl strlen + add r6, r0, #0 + ldr r0, _022123A0 ; =0x022167AC + bl strlen + add r1, r5, r6 + add r1, r1, r0 + ldr r0, _02212398 ; =0x02216760 + str r1, [r0, #0x28] + ldr r0, _022123A4 ; =0x022167B4 + bl strlen + ldr r1, _02212398 ; =0x02216760 + ldr r2, [r1, #0x28] + add r2, #0x28 + add r0, r2, r0 + str r0, [r1, #0x2c] + add r0, r4, #0 + bl MOD79_02211FA4 + add r1, r0, #1 + ldr r0, _02212398 ; =0x02216760 + str r1, [r0, #0x30] + mov r1, #3 + str r1, [r0] + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02212398: .word 0x02216760 +_0221239C: .word 0x0221684C +_022123A0: .word 0x022167AC +_022123A4: .word 0x022167B4 + thumb_func_end MOD79_02212308 + + thumb_func_start MOD79_022123A8 +MOD79_022123A8: ; 0x022123A8 + push {r3, lr} + ldr r1, _02212440 ; =0x02216760 + ldr r0, [r1] + cmp r0, #7 + bhi _02212438 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022123BE: ; jump table + .short _02212438 - _022123BE - 2 ; case 0 + .short _02212438 - _022123BE - 2 ; case 1 + .short _02212438 - _022123BE - 2 ; case 2 + .short _022123CE - _022123BE - 2 ; case 3 + .short _022123F4 - _022123BE - 2 ; case 4 + .short _02212404 - _022123BE - 2 ; case 5 + .short _0221242A - _022123BE - 2 ; case 6 + .short _02212438 - _022123BE - 2 ; case 7 +_022123CE: + ldr r0, [r1, #0x24] + ldr r1, _02212444 ; =MOD79_02212030 + ldr r2, _02212448 ; =0x02216760 + bl MOD04_021EB3B8 + ldr r1, _02212440 ; =0x02216760 + str r0, [r1, #4] + bl MOD79_02211FC8 + ldr r0, _02212440 ; =0x02216760 + ldr r1, [r0, #4] + cmp r1, #0 + blt _022123EE + mov r1, #4 + str r1, [r0] + b _02212438 +_022123EE: + mov r1, #1 + str r1, [r0] + b _02212438 +_022123F4: + bl MOD04_021EB524 + cmp r0, #0 + bne _02212438 + ldr r0, _02212440 ; =0x02216760 + mov r1, #1 + str r1, [r0] + b _02212438 +_02212404: + ldr r0, [r1, #0x24] + ldr r1, _02212444 ; =MOD79_02212030 + ldr r2, _02212448 ; =0x02216760 + bl MOD04_021EB3B8 + ldr r1, _02212440 ; =0x02216760 + str r0, [r1, #4] + bl MOD79_02211FC8 + ldr r0, _02212440 ; =0x02216760 + ldr r1, [r0, #4] + cmp r1, #0 + blt _02212424 + mov r1, #6 + str r1, [r0] + b _02212438 +_02212424: + mov r1, #1 + str r1, [r0] + b _02212438 +_0221242A: + bl MOD04_021EB524 + cmp r0, #0 + bne _02212438 + ldr r0, _02212440 ; =0x02216760 + mov r1, #1 + str r1, [r0] +_02212438: + ldr r0, _02212440 ; =0x02216760 + ldr r0, [r0] + pop {r3, pc} + nop +_02212440: .word 0x02216760 +_02212444: .word MOD79_02212030 +_02212448: .word 0x02216760 + thumb_func_end MOD79_022123A8 + + thumb_func_start MOD79_0221244C +MOD79_0221244C: ; 0x0221244C + push {r3, lr} + ldr r0, _02212470 ; =0x02216760 + ldr r1, [r0, #0x24] + cmp r1, #0 + beq _02212464 + mov r0, #0xa + mov r2, #0 + bl MOD04_021DD904 + ldr r0, _02212470 ; =0x02216760 + mov r1, #0 + str r1, [r0, #0x24] +_02212464: + bl MOD04_021EB550 + ldr r0, _02212470 ; =0x02216760 + mov r1, #1 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_02212470: .word 0x02216760 + thumb_func_end MOD79_0221244C + + thumb_func_start MOD79_02212474 +MOD79_02212474: ; 0x02212474 + ldr r0, _0221247C ; =0x02216760 + ldr r0, [r0, #8] + bx lr + nop +_0221247C: .word 0x02216760 + thumb_func_end MOD79_02212474 + + thumb_func_start MOD79_02212480 +MOD79_02212480: ; 0x02212480 + ldr r0, _02212488 ; =0x02216760 + ldr r0, [r0, #0xc] + bx lr + nop +_02212488: .word 0x02216760 + thumb_func_end MOD79_02212480 + + .section .rodata + ; 0x02216724 + .incbin "baserom.nds", 0x2DE6C4, 0x14 + + .section .data + ; 0x02216760 + .incbin "baserom.nds", 0x2DE700, 0x10C + + .section .bss + ; 0x2217120 + .space 0x40 diff --git a/arm9/modules/80/asm/module_80.s b/arm9/modules/80/asm/module_80.s new file mode 100644 index 00000000..45c6e1e3 --- /dev/null +++ b/arm9/modules/80/asm/module_80.s @@ -0,0 +1,19283 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD80_0222D5C0 +MOD80_0222D5C0: ; 0x0222D5C0 + push {r3, r4} + ldr r3, _0222D5D8 ; =0x02237CE0 + mov r4, #1 + str r4, [r3] + mov r4, #0 + str r4, [r3, #4] + str r0, [r3, #8] + str r1, [r3, #0xc] + str r2, [r3, #0x10] + pop {r3, r4} + bx lr + nop +_0222D5D8: .word 0x02237CE0 + thumb_func_end MOD80_0222D5C0 + + thumb_func_start MOD80_0222D5DC +MOD80_0222D5DC: ; 0x0222D5DC + push {r3, lr} + ldr r1, _0222D8D4 ; =0x02237CE0 + ldr r0, [r1] + cmp r0, #0x16 + bls _0222D5E8 + b _0222DB8A +_0222D5E8: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222D5F4: ; jump table + .short _0222DB8A - _0222D5F4 - 2 ; case 0 + .short _0222DB8A - _0222D5F4 - 2 ; case 1 + .short _0222D622 - _0222D5F4 - 2 ; case 2 + .short _0222DB7E - _0222D5F4 - 2 ; case 3 + .short _0222D6D0 - _0222D5F4 - 2 ; case 4 + .short _0222DB7E - _0222D5F4 - 2 ; case 5 + .short _0222D756 - _0222D5F4 - 2 ; case 6 + .short _0222DB7E - _0222D5F4 - 2 ; case 7 + .short _0222D7D6 - _0222D5F4 - 2 ; case 8 + .short _0222DB7E - _0222D5F4 - 2 ; case 9 + .short _0222D86A - _0222D5F4 - 2 ; case 10 + .short _0222DB7E - _0222D5F4 - 2 ; case 11 + .short _0222D8EA - _0222D5F4 - 2 ; case 12 + .short _0222DB7E - _0222D5F4 - 2 ; case 13 + .short _0222D970 - _0222D5F4 - 2 ; case 14 + .short _0222DB7E - _0222D5F4 - 2 ; case 15 + .short _0222D9E8 - _0222D5F4 - 2 ; case 16 + .short _0222DB7E - _0222D5F4 - 2 ; case 17 + .short _0222DABA - _0222D5F4 - 2 ; case 18 + .short _0222DB7E - _0222D5F4 - 2 ; case 19 + .short _0222DB0E - _0222D5F4 - 2 ; case 20 + .short _0222DB7E - _0222D5F4 - 2 ; case 21 + .short _0222DB8A - _0222D5F4 - 2 ; case 22 +_0222D622: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D630 + cmp r0, #7 + beq _0222D648 + pop {r3, pc} +_0222D630: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222D8D4 ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D648: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + ldr r2, _0222D8D8 ; =0x02237E00 + str r1, [r0] + ldrb r2, [r2, #0x1c] + cmp r2, #0xe + bhi _0222D6C2 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0222D662: ; jump table + .short _0222D6C2 - _0222D662 - 2 ; case 0 + .short _0222D680 - _0222D662 - 2 ; case 1 + .short _0222D686 - _0222D662 - 2 ; case 2 + .short _0222D68C - _0222D662 - 2 ; case 3 + .short _0222D6C2 - _0222D662 - 2 ; case 4 + .short _0222D6C2 - _0222D662 - 2 ; case 5 + .short _0222D6C2 - _0222D662 - 2 ; case 6 + .short _0222D692 - _0222D662 - 2 ; case 7 + .short _0222D6A4 - _0222D662 - 2 ; case 8 + .short _0222D6AA - _0222D662 - 2 ; case 9 + .short _0222D6B0 - _0222D662 - 2 ; case 10 + .short _0222D6B6 - _0222D662 - 2 ; case 11 + .short _0222D698 - _0222D662 - 2 ; case 12 + .short _0222D69E - _0222D662 - 2 ; case 13 + .short _0222D6BC - _0222D662 - 2 ; case 14 +_0222D680: + mov r1, #0 + str r1, [r0, #4] + b _0222D6CA +_0222D686: + sub r1, #0x1b + str r1, [r0, #4] + b _0222D6CA +_0222D68C: + sub r1, #0x1a + str r1, [r0, #4] + b _0222D6CA +_0222D692: + sub r1, #0x17 + str r1, [r0, #4] + b _0222D6CA +_0222D698: + sub r1, #0x1c + str r1, [r0, #4] + b _0222D6CA +_0222D69E: + sub r1, #0x1d + str r1, [r0, #4] + b _0222D6CA +_0222D6A4: + sub r1, #0x1e + str r1, [r0, #4] + b _0222D6CA +_0222D6AA: + sub r1, #0x1f + str r1, [r0, #4] + b _0222D6CA +_0222D6B0: + sub r1, #0x20 + str r1, [r0, #4] + b _0222D6CA +_0222D6B6: + sub r1, #0x21 + str r1, [r0, #4] + b _0222D6CA +_0222D6BC: + sub r1, #0x18 + str r1, [r0, #4] + b _0222D6CA +_0222D6C2: + mov r1, #0xc + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222D6CA: + bl MOD56_0221244C + pop {r3, pc} +_0222D6D0: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D6DE + cmp r0, #7 + beq _0222D6F6 + pop {r3, pc} +_0222D6DE: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222D8D4 ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D6F6: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r2, #0x16 + ldr r1, _0222D8D8 ; =0x02237E00 + str r2, [r0] + ldrb r1, [r1, #0x1c] + cmp r1, #5 + bgt _0222D720 + cmp r1, #0 + blt _0222D748 + add r3, r1, r1 + add r3, pc + ldrh r3, [r3, #6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 +_0222D714: ; jump table + .short _0222D748 - _0222D714 - 2 ; case 0 + .short _0222D726 - _0222D714 - 2 ; case 1 + .short _0222D72C - _0222D714 - 2 ; case 2 + .short _0222D732 - _0222D714 - 2 ; case 3 + .short _0222D748 - _0222D714 - 2 ; case 4 + .short _0222D738 - _0222D714 - 2 ; case 5 +_0222D720: + cmp r1, #0xe + beq _0222D73E + b _0222D748 +_0222D726: + mov r1, #0 + str r1, [r0, #4] + b _0222D750 +_0222D72C: + sub r2, #0x1b + str r2, [r0, #4] + b _0222D750 +_0222D732: + sub r2, #0x1a + str r2, [r0, #4] + b _0222D750 +_0222D738: + sub r2, #0x19 + str r2, [r0, #4] + b _0222D750 +_0222D73E: + mov r1, #1 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D750 +_0222D748: + mov r1, #0xc + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222D750: + bl MOD56_0221244C + pop {r3, pc} +_0222D756: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D764 + cmp r0, #7 + beq _0222D77C + pop {r3, pc} +_0222D764: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222D8D4 ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D77C: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212480 + mov r1, #0x49 + lsl r1, r1, #2 + cmp r0, r1 + bne _0222D796 + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0 + str r1, [r0, #4] + b _0222D7D0 +_0222D796: + ldr r0, _0222D8DC ; =0x02237DE0 + ldr r0, [r0, #0x40] + ldrb r0, [r0] + cmp r0, #3 + beq _0222D7B4 + cmp r0, #5 + beq _0222D7AA + cmp r0, #0xe + beq _0222D7BE + b _0222D7C8 +_0222D7AA: + mov r1, #2 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D7D0 +_0222D7B4: + mov r1, #3 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D7D0 +_0222D7BE: + mov r1, #1 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D7D0 +_0222D7C8: + mov r1, #0xc + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222D7D0: + bl MOD56_0221244C + pop {r3, pc} +_0222D7D6: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D7E4 + cmp r0, #7 + beq _0222D7FC + pop {r3, pc} +_0222D7E4: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222D8D4 ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D7FC: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212480 + mov r1, #0x49 + lsl r1, r1, #2 + cmp r0, r1 + bne _0222D816 + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #1 + str r1, [r0, #4] + b _0222D864 +_0222D816: + ldr r0, _0222D8DC ; =0x02237DE0 + ldr r0, [r0, #0x40] + ldrb r0, [r0] + cmp r0, #5 + bgt _0222D830 + cmp r0, #3 + blt _0222D85C + beq _0222D840 + cmp r0, #4 + beq _0222D84A + cmp r0, #5 + beq _0222D836 + b _0222D85C +_0222D830: + cmp r0, #0xe + beq _0222D852 + b _0222D85C +_0222D836: + mov r1, #2 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D864 +_0222D840: + mov r1, #3 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D864 +_0222D84A: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0 + str r1, [r0, #4] + b _0222D864 +_0222D852: + mov r1, #1 + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D864 +_0222D85C: + mov r1, #0xc + ldr r0, _0222D8D4 ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222D864: + bl MOD56_0221244C + pop {r3, pc} +_0222D86A: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D878 + cmp r0, #7 + beq _0222D890 + pop {r3, pc} +_0222D878: + ldr r0, _0222D8D4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222D8D4 ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D890: + ldr r1, _0222D8D4 ; =0x02237CE0 + mov r2, #0x16 + ldr r0, _0222D8D8 ; =0x02237E00 + str r2, [r1] + ldrb r0, [r0, #0x1c] + cmp r0, #5 + bgt _0222D8AE + cmp r0, #1 + blt _0222D8CC + beq _0222D8B4 + cmp r0, #3 + beq _0222D8C0 + cmp r0, #5 + beq _0222D8BA + b _0222D8CC +_0222D8AE: + cmp r0, #0xe + beq _0222D8C6 + b _0222D8CC +_0222D8B4: + mov r0, #0 + str r0, [r1, #4] + b _0222D8E4 +_0222D8BA: + sub r2, #0x19 + str r2, [r1, #4] + b _0222D8E4 +_0222D8C0: + sub r2, #0x1a + str r2, [r1, #4] + b _0222D8E4 +_0222D8C6: + sub r2, #0x18 + str r2, [r1, #4] + b _0222D8E4 +_0222D8CC: + mov r1, #0xc + ldr r0, _0222D8D4 ; =0x02237CE0 + b _0222D8E0 + nop +_0222D8D4: .word 0x02237CE0 +_0222D8D8: .word 0x02237E00 +_0222D8DC: .word 0x02237DE0 +_0222D8E0: + mvn r1, r1 + str r1, [r0, #4] +_0222D8E4: + bl MOD56_0221244C + pop {r3, pc} +_0222D8EA: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D8F8 + cmp r0, #7 + beq _0222D910 + pop {r3, pc} +_0222D8F8: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222DB8C ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D910: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r2, #0x16 + ldr r1, _0222DB90 ; =0x02237E00 + str r2, [r0] + ldrb r1, [r1, #0x1c] + cmp r1, #5 + bgt _0222D93A + cmp r1, #0 + blt _0222D962 + add r3, r1, r1 + add r3, pc + ldrh r3, [r3, #6] + lsl r3, r3, #0x10 + asr r3, r3, #0x10 + add pc, r3 +_0222D92E: ; jump table + .short _0222D962 - _0222D92E - 2 ; case 0 + .short _0222D940 - _0222D92E - 2 ; case 1 + .short _0222D94C - _0222D92E - 2 ; case 2 + .short _0222D952 - _0222D92E - 2 ; case 3 + .short _0222D962 - _0222D92E - 2 ; case 4 + .short _0222D946 - _0222D92E - 2 ; case 5 +_0222D93A: + cmp r1, #0xe + beq _0222D958 + b _0222D962 +_0222D940: + mov r1, #0 + str r1, [r0, #4] + b _0222D96A +_0222D946: + sub r2, #0x19 + str r2, [r0, #4] + b _0222D96A +_0222D94C: + sub r2, #0x1b + str r2, [r0, #4] + b _0222D96A +_0222D952: + sub r2, #0x1a + str r2, [r0, #4] + b _0222D96A +_0222D958: + mov r1, #1 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D96A +_0222D962: + mov r1, #0xc + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222D96A: + bl MOD56_0221244C + pop {r3, pc} +_0222D970: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D97E + cmp r0, #7 + beq _0222D996 + pop {r3, pc} +_0222D97E: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222DB8C ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D996: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212480 + mov r1, #0x49 + lsl r1, r1, #2 + cmp r0, r1 + blo _0222D9BA + bl MOD79_02212480 + mov r1, #0x49 + lsl r1, r1, #2 + bl _u32_div_f + ldr r1, _0222DB8C ; =0x02237CE0 + str r0, [r1, #4] + b _0222D9E2 +_0222D9BA: + cmp r0, #0 + bne _0222D9C6 + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0 + str r1, [r0, #4] + b _0222D9E2 +_0222D9C6: + ldr r0, _0222DB94 ; =0x02237DE0 + ldr r0, [r0, #0x40] + ldrb r0, [r0] + cmp r0, #0xe + bne _0222D9DA + mov r1, #1 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222D9E2 +_0222D9DA: + mov r1, #0xc + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222D9E2: + bl MOD56_0221244C + pop {r3, pc} +_0222D9E8: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D9F6 + cmp r0, #7 + beq _0222DA0E + pop {r3, pc} +_0222D9F6: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222DB8C ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222DA0E: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212480 + mov r1, #0x49 + lsl r1, r1, #2 + cmp r0, r1 + bne _0222DA28 + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0 + str r1, [r0, #4] + b _0222DAB4 +_0222DA28: + ldr r0, _0222DB94 ; =0x02237DE0 + ldr r0, [r0, #0x40] + ldrb r0, [r0] + cmp r0, #0xe + bhi _0222DAAC + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222DA3E: ; jump table + .short _0222DAAC - _0222DA3E - 2 ; case 0 + .short _0222DAAC - _0222DA3E - 2 ; case 1 + .short _0222DA5C - _0222DA3E - 2 ; case 2 + .short _0222DAAC - _0222DA3E - 2 ; case 3 + .short _0222DAAC - _0222DA3E - 2 ; case 4 + .short _0222DAAC - _0222DA3E - 2 ; case 5 + .short _0222DAAC - _0222DA3E - 2 ; case 6 + .short _0222DAAC - _0222DA3E - 2 ; case 7 + .short _0222DA7A - _0222DA3E - 2 ; case 8 + .short _0222DA84 - _0222DA3E - 2 ; case 9 + .short _0222DA8E - _0222DA3E - 2 ; case 10 + .short _0222DA98 - _0222DA3E - 2 ; case 11 + .short _0222DA66 - _0222DA3E - 2 ; case 12 + .short _0222DA70 - _0222DA3E - 2 ; case 13 + .short _0222DAA2 - _0222DA3E - 2 ; case 14 +_0222DA5C: + mov r1, #4 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DA66: + mov r1, #5 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DA70: + mov r1, #6 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DA7A: + mov r1, #7 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DA84: + mov r1, #8 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DA8E: + mov r1, #9 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DA98: + mov r1, #0xa + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DAA2: + mov r1, #1 + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] + b _0222DAB4 +_0222DAAC: + mov r1, #0xc + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222DAB4: + bl MOD56_0221244C + pop {r3, pc} +_0222DABA: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222DAC8 + cmp r0, #7 + beq _0222DAE0 + pop {r3, pc} +_0222DAC8: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222DB8C ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222DAE0: + ldr r1, _0222DB8C ; =0x02237CE0 + mov r2, #0x16 + ldr r0, _0222DB90 ; =0x02237E00 + str r2, [r1] + ldrb r0, [r0, #0x1c] + cmp r0, #1 + beq _0222DAF8 + cmp r0, #2 + beq _0222DB04 + cmp r0, #0xe + beq _0222DAFE + b _0222DB08 +_0222DAF8: + mov r0, #0 + str r0, [r1, #4] + b _0222DB08 +_0222DAFE: + sub r2, #0x18 + str r2, [r1, #4] + b _0222DB08 +_0222DB04: + sub r2, #0x1b + str r2, [r1, #4] +_0222DB08: + bl MOD56_0221244C + pop {r3, pc} +_0222DB0E: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222DB1C + cmp r0, #7 + beq _0222DB34 + pop {r3, pc} +_0222DB1C: + ldr r0, _0222DB8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + bl MOD79_02212474 + bl MOD80_0222DF38 + ldr r1, _0222DB8C ; =0x02237CE0 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222DB34: + ldr r1, _0222DB8C ; =0x02237CE0 + mov r2, #0x16 + ldr r0, _0222DB90 ; =0x02237E00 + str r2, [r1] + ldrb r0, [r0, #0x1c] + cmp r0, #7 + bgt _0222DB52 + cmp r0, #1 + blt _0222DB70 + beq _0222DB58 + cmp r0, #6 + beq _0222DB5E + cmp r0, #7 + beq _0222DB64 + b _0222DB70 +_0222DB52: + cmp r0, #0xe + beq _0222DB6A + b _0222DB70 +_0222DB58: + mov r0, #0 + str r0, [r1, #4] + b _0222DB78 +_0222DB5E: + mov r0, #1 + str r0, [r1, #4] + b _0222DB78 +_0222DB64: + mov r0, #2 + str r0, [r1, #4] + b _0222DB78 +_0222DB6A: + sub r2, #0x18 + str r2, [r1, #4] + b _0222DB78 +_0222DB70: + mov r1, #0xc + ldr r0, _0222DB8C ; =0x02237CE0 + mvn r1, r1 + str r1, [r0, #4] +_0222DB78: + bl MOD56_0221244C + pop {r3, pc} +_0222DB7E: + mov r0, #0x16 + str r0, [r1] + sub r0, #0x22 + str r0, [r1, #4] + bl MOD56_0221244C +_0222DB8A: + pop {r3, pc} + .align 2, 0 +_0222DB8C: .word 0x02237CE0 +_0222DB90: .word 0x02237E00 +_0222DB94: .word 0x02237DE0 + thumb_func_end MOD80_0222D5DC + + thumb_func_start MOD80_0222DB98 +MOD80_0222DB98: ; 0x0222DB98 + ldr r1, _0222DBB4 ; =0x02237CE0 + ldr r0, [r1] + cmp r0, #1 + beq _0222DBA6 + cmp r0, #0x16 + beq _0222DBAA + b _0222DBB0 +_0222DBA6: + mov r0, #1 + bx lr +_0222DBAA: + mov r0, #1 + str r0, [r1] + bx lr +_0222DBB0: + mov r0, #0 + bx lr + .align 2, 0 +_0222DBB4: .word 0x02237CE0 + thumb_func_end MOD80_0222DB98 + + thumb_func_start MOD80_0222DBB8 +MOD80_0222DBB8: ; 0x0222DBB8 + ldr r0, _0222DBC0 ; =0x02237CE0 + ldr r0, [r0, #4] + bx lr + nop +_0222DBC0: .word 0x02237CE0 + thumb_func_end MOD80_0222DBB8 + + thumb_func_start MOD80_0222DBC4 +MOD80_0222DBC4: ; 0x0222DBC4 + push {r3, lr} + add r1, r0, #0 + mov r2, #0x49 + ldr r0, _0222DC04 ; =0x02237CF4 + lsl r2, r2, #2 + bl memcpy + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + mov r2, #0x49 + ldr r0, _0222DC08 ; =0x02237680 + ldr r1, _0222DC04 ; =0x02237CF4 + ldr r3, _0222DC0C ; =0x02237E1C + lsl r2, r2, #2 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DBF4 + ldr r0, _0222DC10 ; =0x02237CE0 + mov r1, #2 + str r1, [r0] + pop {r3, pc} +_0222DBF4: + ldr r0, _0222DC10 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + .align 2, 0 +_0222DC04: .word 0x02237CF4 +_0222DC08: .word 0x02237680 +_0222DC0C: .word 0x02237E1C +_0222DC10: .word 0x02237CE0 + thumb_func_end MOD80_0222DBC4 + + thumb_func_start MOD80_0222DC14 +MOD80_0222DC14: ; 0x0222DC14 + push {r3, lr} + ldr r0, _0222DC54 ; =0x02237CEC + ldr r2, _0222DC58 ; =0x02237CF4 + ldr r1, [r0] + ldr r0, [r0, #4] + str r1, [r2] + str r0, [r2, #4] + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + ldr r0, _0222DC5C ; =0x022376CC + ldr r1, _0222DC58 ; =0x02237CF4 + ldr r3, _0222DC60 ; =0x02237E1C + mov r2, #8 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DC42 + ldr r0, _0222DC64 ; =0x02237CE0 + mov r1, #4 + str r1, [r0] + pop {r3, pc} +_0222DC42: + ldr r0, _0222DC64 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + nop +_0222DC54: .word 0x02237CEC +_0222DC58: .word 0x02237CF4 +_0222DC5C: .word 0x022376CC +_0222DC60: .word 0x02237E1C +_0222DC64: .word 0x02237CE0 + thumb_func_end MOD80_0222DC14 + + thumb_func_start MOD80_0222DC68 +MOD80_0222DC68: ; 0x0222DC68 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, _0222DCA8 ; =0x02237DE0 + str r4, [r0, #0x40] + bl MOD79_022122E4 + mov r0, #0x49 + lsl r0, r0, #2 + str r0, [sp] + ldr r0, _0222DCAC ; =0x0223771C + ldr r1, _0222DCB0 ; =0x02237CF4 + mov r2, #0 + add r3, r4, #0 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DC96 + ldr r0, _0222DCB4 ; =0x02237CE0 + mov r1, #6 + str r1, [r0] + add sp, #4 + pop {r3, r4, pc} +_0222DC96: + ldr r0, _0222DCB4 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222DCA8: .word 0x02237DE0 +_0222DCAC: .word 0x0223771C +_0222DCB0: .word 0x02237CF4 +_0222DCB4: .word 0x02237CE0 + thumb_func_end MOD80_0222DC68 + + thumb_func_start MOD80_0222DCB8 +MOD80_0222DCB8: ; 0x0222DCB8 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, _0222DCF8 ; =0x02237DE0 + str r4, [r0, #0x40] + bl MOD79_022122E4 + mov r0, #0x49 + lsl r0, r0, #2 + str r0, [sp] + ldr r0, _0222DCFC ; =0x02237764 + ldr r1, _0222DD00 ; =0x02237CF4 + mov r2, #0 + add r3, r4, #0 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DCE6 + ldr r0, _0222DD04 ; =0x02237CE0 + mov r1, #8 + str r1, [r0] + add sp, #4 + pop {r3, r4, pc} +_0222DCE6: + ldr r0, _0222DD04 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222DCF8: .word 0x02237DE0 +_0222DCFC: .word 0x02237764 +_0222DD00: .word 0x02237CF4 +_0222DD04: .word 0x02237CE0 + thumb_func_end MOD80_0222DCB8 + + thumb_func_start MOD80_0222DD08 +MOD80_0222DD08: ; 0x0222DD08 + push {r3, lr} + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + ldr r0, _0222DD3C ; =0x022377B0 + ldr r1, _0222DD40 ; =0x02237CF4 + ldr r3, _0222DD44 ; =0x02237E1C + mov r2, #0 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DD2A + ldr r0, _0222DD48 ; =0x02237CE0 + mov r1, #0xa + str r1, [r0] + pop {r3, pc} +_0222DD2A: + ldr r0, _0222DD48 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + nop +_0222DD3C: .word 0x022377B0 +_0222DD40: .word 0x02237CF4 +_0222DD44: .word 0x02237E1C +_0222DD48: .word 0x02237CE0 + thumb_func_end MOD80_0222DD08 + + thumb_func_start MOD80_0222DD4C +MOD80_0222DD4C: ; 0x0222DD4C + push {r3, lr} + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + ldr r0, _0222DD80 ; =0x022377FC + ldr r1, _0222DD84 ; =0x02237CF4 + ldr r3, _0222DD88 ; =0x02237E1C + mov r2, #0 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DD6E + ldr r0, _0222DD8C ; =0x02237CE0 + mov r1, #0xc + str r1, [r0] + pop {r3, pc} +_0222DD6E: + ldr r0, _0222DD8C ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + nop +_0222DD80: .word 0x022377FC +_0222DD84: .word 0x02237CF4 +_0222DD88: .word 0x02237E1C +_0222DD8C: .word 0x02237CE0 + thumb_func_end MOD80_0222DD4C + + thumb_func_start MOD80_0222DD90 +MOD80_0222DD90: ; 0x0222DD90 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + ldr r0, _0222DDF4 ; =0x02237DE0 + add r6, r2, #0 + str r6, [r0, #0x40] + add r4, r1, #0 + bl MOD79_022122E4 + ldrb r0, [r5] + ldr r1, _0222DDF8 ; =0x02237CF4 + mov r2, #7 + strb r0, [r1] + ldrb r0, [r5, #1] + add r3, r6, #0 + strb r0, [r1, #1] + ldrb r0, [r5, #2] + strb r0, [r1, #2] + ldrb r0, [r5, #3] + strb r0, [r1, #3] + ldrb r0, [r5, #4] + strb r0, [r1, #4] + ldrb r0, [r5, #5] + strb r0, [r1, #5] + ldr r0, _0222DDFC ; =0x02237CE0 + strb r4, [r0, #0x1a] + mov r0, #0x49 + lsl r0, r0, #2 + mul r0, r4 + str r0, [sp] + ldr r0, _0222DE00 ; =0x02237848 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DDE0 + ldr r0, _0222DDFC ; =0x02237CE0 + mov r1, #0xe + str r1, [r0] + add sp, #4 + pop {r3, r4, r5, r6, pc} +_0222DDE0: + ldr r0, _0222DDFC ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_0222DDF4: .word 0x02237DE0 +_0222DDF8: .word 0x02237CF4 +_0222DDFC: .word 0x02237CE0 +_0222DE00: .word 0x02237848 + thumb_func_end MOD80_0222DD90 + + thumb_func_start MOD80_0222DE04 +MOD80_0222DE04: ; 0x0222DE04 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + ldr r0, _0222DE58 ; =0x02237DE0 + add r6, r2, #0 + add r4, r1, #0 + str r6, [r0, #0x40] + bl MOD79_022122E4 + mov r2, #0x49 + ldr r0, _0222DE5C ; =0x02237CF4 + add r1, r4, #0 + lsl r2, r2, #2 + bl memcpy + ldr r0, _0222DE58 ; =0x02237DE0 + mov r2, #0x49 + str r5, [r0, #0x38] + lsl r2, r2, #2 + str r2, [sp] + ldr r0, _0222DE60 ; =0x02237894 + ldr r1, _0222DE5C ; =0x02237CF4 + add r2, r2, #4 + add r3, r6, #0 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DE46 + ldr r0, _0222DE64 ; =0x02237CE0 + mov r1, #0x10 + str r1, [r0] + add sp, #4 + pop {r3, r4, r5, r6, pc} +_0222DE46: + ldr r0, _0222DE64 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222DE58: .word 0x02237DE0 +_0222DE5C: .word 0x02237CF4 +_0222DE60: .word 0x02237894 +_0222DE64: .word 0x02237CE0 + thumb_func_end MOD80_0222DE04 + + thumb_func_start MOD80_0222DE68 +MOD80_0222DE68: ; 0x0222DE68 + push {r3, lr} + ldr r0, _0222DEA8 ; =0x02237CEC + ldr r2, _0222DEAC ; =0x02237CF4 + ldr r1, [r0] + ldr r0, [r0, #4] + str r1, [r2] + str r0, [r2, #4] + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + ldr r0, _0222DEB0 ; =0x022378E4 + ldr r1, _0222DEAC ; =0x02237CF4 + ldr r3, _0222DEB4 ; =0x02237E1C + mov r2, #8 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DE96 + ldr r0, _0222DEB8 ; =0x02237CE0 + mov r1, #0x12 + str r1, [r0] + pop {r3, pc} +_0222DE96: + ldr r0, _0222DEB8 ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + nop +_0222DEA8: .word 0x02237CEC +_0222DEAC: .word 0x02237CF4 +_0222DEB0: .word 0x022378E4 +_0222DEB4: .word 0x02237E1C +_0222DEB8: .word 0x02237CE0 + thumb_func_end MOD80_0222DE68 + + thumb_func_start MOD80_0222DEBC +MOD80_0222DEBC: ; 0x0222DEBC + push {r3, lr} + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + ldr r0, _0222DEF0 ; =0x02237938 + ldr r1, _0222DEF4 ; =0x02237CF4 + ldr r3, _0222DEF8 ; =0x02237E1C + mov r2, #0 + bl MOD80_0222DF00 + cmp r0, #0 + beq _0222DEDE + ldr r0, _0222DEFC ; =0x02237CE0 + mov r1, #0x14 + str r1, [r0] + pop {r3, pc} +_0222DEDE: + ldr r0, _0222DEFC ; =0x02237CE0 + mov r1, #0x16 + str r1, [r0] + sub r1, #0x23 + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + nop +_0222DEF0: .word 0x02237938 +_0222DEF4: .word 0x02237CF4 +_0222DEF8: .word 0x02237E1C +_0222DEFC: .word 0x02237CE0 + thumb_func_end MOD80_0222DEBC + + thumb_func_start MOD80_0222DF00 +MOD80_0222DF00: ; 0x0222DF00 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r1, #0 + ldr r1, [sp, #0x18] + str r3, [sp] + str r1, [sp, #4] + add r4, r2, #0 + ldr r1, _0222DF34 ; =0x02237CE0 + add r2, r5, #0 + ldr r1, [r1, #8] + add r3, r4, #0 + bl MOD79_02212308 + cmp r0, #0 + beq _0222DF26 + cmp r0, #1 + beq _0222DF2C + cmp r0, #2 + b _0222DF2C +_0222DF26: + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, pc} +_0222DF2C: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_0222DF34: .word 0x02237CE0 + thumb_func_end MOD80_0222DF00 + + thumb_func_start MOD80_0222DF38 +MOD80_0222DF38: ; 0x0222DF38 + push {r4, lr} + cmp r0, #0x20 + bhi _0222DFB0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222DF4A: ; jump table + .short _0222DF8C - _0222DF4A - 2 ; case 0 + .short _0222DF8C - _0222DF4A - 2 ; case 1 + .short _0222DF92 - _0222DF4A - 2 ; case 2 + .short _0222DF8C - _0222DF4A - 2 ; case 3 + .short _0222DF8C - _0222DF4A - 2 ; case 4 + .short _0222DF8C - _0222DF4A - 2 ; case 5 + .short _0222DF8C - _0222DF4A - 2 ; case 6 + .short _0222DFB0 - _0222DF4A - 2 ; case 7 + .short _0222DF92 - _0222DF4A - 2 ; case 8 + .short _0222DF8C - _0222DF4A - 2 ; case 9 + .short _0222DF8C - _0222DF4A - 2 ; case 10 + .short _0222DF98 - _0222DF4A - 2 ; case 11 + .short _0222DF9E - _0222DF4A - 2 ; case 12 + .short _0222DF9E - _0222DF4A - 2 ; case 13 + .short _0222DF8C - _0222DF4A - 2 ; case 14 + .short _0222DFAA - _0222DF4A - 2 ; case 15 + .short _0222DFA4 - _0222DF4A - 2 ; case 16 + .short _0222DFA4 - _0222DF4A - 2 ; case 17 + .short _0222DFA4 - _0222DF4A - 2 ; case 18 + .short _0222DFA4 - _0222DF4A - 2 ; case 19 + .short _0222DF8C - _0222DF4A - 2 ; case 20 + .short _0222DF8C - _0222DF4A - 2 ; case 21 + .short _0222DF8C - _0222DF4A - 2 ; case 22 + .short _0222DF8C - _0222DF4A - 2 ; case 23 + .short _0222DFB0 - _0222DF4A - 2 ; case 24 + .short _0222DF92 - _0222DF4A - 2 ; case 25 + .short _0222DFA4 - _0222DF4A - 2 ; case 26 + .short _0222DFA4 - _0222DF4A - 2 ; case 27 + .short _0222DFA4 - _0222DF4A - 2 ; case 28 + .short _0222DFA4 - _0222DF4A - 2 ; case 29 + .short _0222DFAA - _0222DF4A - 2 ; case 30 + .short _0222DFA4 - _0222DF4A - 2 ; case 31 + .short _0222DF8C - _0222DF4A - 2 ; case 32 +_0222DF8C: + mov r4, #0xc + mvn r4, r4 + b _0222DFB4 +_0222DF92: + mov r4, #0xc + mvn r4, r4 + b _0222DFB4 +_0222DF98: + mov r4, #0xe + mvn r4, r4 + b _0222DFB4 +_0222DF9E: + mov r4, #0xe + mvn r4, r4 + b _0222DFB4 +_0222DFA4: + mov r4, #1 + mvn r4, r4 + b _0222DFB4 +_0222DFAA: + mov r4, #1 + mvn r4, r4 + b _0222DFB4 +_0222DFB0: + mov r4, #0xc + mvn r4, r4 +_0222DFB4: + mov r0, #0xc + mvn r0, r0 + cmp r4, r0 + beq _0222DFCC + bl FUN_020A71F8 + cmp r0, #9 + beq _0222DFC8 + mov r4, #0xd + mvn r4, r4 +_0222DFC8: + bl MOD04_021DD6F0 +_0222DFCC: + add r0, r4, #0 + pop {r4, pc} + thumb_func_end MOD80_0222DF38 + + thumb_func_start MOD80_0222DFD0 +MOD80_0222DFD0: ; 0x0222DFD0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r1, #0 + add r6, r0, #0 + ldr r0, [r5] + cmp r0, #0 + beq _0222DFE4 + cmp r0, #1 + beq _0222E0E2 + b _0222E0F8 +_0222DFE4: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _0222E100 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _0222E104 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r2, #7 + mov r0, #3 + mov r1, #0x3e + lsl r2, r2, #0x10 + bl FUN_0201681C + ldr r1, _0222E108 ; =0x00001044 + add r0, r6, #0 + mov r2, #0x3e + bl FUN_02006268 + ldr r2, _0222E108 ; =0x00001044 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x3e + bl FUN_02016B94 + str r0, [r4, #4] + ldr r0, _0222E10C ; =0x02237E24 + add r2, sp, #0 + ldr r3, _0222E110 ; =0x02236E50 + str r4, [r0, #4] + add r7, r2, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r0, r7, #0 + bl FUN_02016BBC + mov r0, #0xb + mov r1, #0x40 + mov r2, #0x3e + bl FUN_0200AA90 + mov r1, #0xb3 + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r2, _0222E114 ; =0x0000024F + mov r0, #0 + mov r1, #0x1a + mov r3, #0x3e + bl FUN_0200A86C + ldr r1, _0222E118 ; =0x00000B34 + mov r2, #0x25 + str r0, [r4, r1] + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #4 + mov r3, #0x3e + bl FUN_0200A86C + ldr r1, _0222E11C ; =0x00000B3C + ldr r2, _0222E120 ; =0x00000265 + str r0, [r4, r1] + mov r0, #0 + mov r1, #0x1a + mov r3, #0x3e + bl FUN_0200A86C + mov r1, #0x2d + lsl r1, r1, #6 + str r0, [r4, r1] + ldr r2, _0222E124 ; =0x0000016A + mov r0, #0 + mov r1, #0x1a + mov r3, #0x3e + bl FUN_0200A86C + ldr r1, _0222E128 ; =0x00000B38 + str r0, [r4, r1] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + add r0, r4, #0 + add r1, r6, #0 + bl MOD80_0222E338 + add r0, r4, #0 + bl MOD80_0222E7C8 + ldr r1, _0222E12C ; =0x00000449 + mov r0, #4 + mov r2, #1 + bl FUN_0200433C + ldr r1, _0222E130 ; =0x00020020 + mov r0, #0x3e + bl FUN_02016998 + str r0, [r4, #0x48] + add r0, #0x1f + mov r1, #0x1f + bic r0, r1 + mov r1, #2 + lsl r1, r1, #0x10 + mov r2, #0 + bl tempName_NNS_FndCreateExpHeapEx + str r0, [r4, #0x4c] + mov r0, #1 + str r0, [r5] + b _0222E0F8 +_0222E0E2: + bl FUN_02088858 + bl FUN_020888BC + bl FUN_0202E49C + mov r0, #0 + str r0, [r5] + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0222E0F8: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E100: .word 0xFFFFE0FF +_0222E104: .word 0x04001000 +_0222E108: .word 0x00001044 +_0222E10C: .word 0x02237E24 +_0222E110: .word 0x02236E50 +_0222E114: .word 0x0000024F +_0222E118: .word 0x00000B34 +_0222E11C: .word 0x00000B3C +_0222E120: .word 0x00000265 +_0222E124: .word 0x0000016A +_0222E128: .word 0x00000B38 +_0222E12C: .word 0x00000449 +_0222E130: .word 0x00020020 + thumb_func_end MOD80_0222DFD0 + + thumb_func_start MOD80_0222E134 +MOD80_0222E134: ; 0x0222E134 + push {r4, r5, r6, lr} + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + bl MOD04_021DD984 + bl MOD80_0222D5DC + ldr r1, [r5] + cmp r1, #5 + bhi _0222E224 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222E158: ; jump table + .short _0222E164 - _0222E158 - 2 ; case 0 + .short _0222E180 - _0222E158 - 2 ; case 1 + .short _0222E1A4 - _0222E158 - 2 ; case 2 + .short _0222E1B2 - _0222E158 - 2 ; case 3 + .short _0222E1C6 - _0222E158 - 2 ; case 4 + .short _0222E220 - _0222E158 - 2 ; case 5 +_0222E164: + bl FUN_0202E4C8 + cmp r0, #0 + beq _0222E224 + ldr r1, [r4, #0x4c] + ldr r0, _0222E240 ; =0x02237E24 + str r1, [r0] + ldr r0, _0222E244 ; =MOD80_0222E750 + ldr r1, _0222E248 ; =MOD80_0222E778 + bl MOD04_021DD968 + mov r0, #1 + str r0, [r5] + b _0222E224 +_0222E180: + ldr r3, [r4, #0x14] + mov r2, #0xc + add r6, r3, #0 + mul r6, r2 + ldr r2, _0222E24C ; =0x02237984 + add r0, r4, #0 + ldr r2, [r2, r6] + blx r2 + str r0, [r5] + add r0, r4, #0 + add r0, #0xac + ldr r0, [r0] + cmp r0, #0 + beq _0222E224 + add r0, r4, #0 + bl MOD80_0222E7F0 + b _0222E224 +_0222E1A4: + bl FUN_0200E308 + cmp r0, #0 + beq _0222E224 + mov r0, #3 + str r0, [r5] + b _0222E224 +_0222E1B2: + ldr r3, [r4, #0x14] + mov r2, #0xc + add r6, r3, #0 + mul r6, r2 + ldr r2, _0222E250 ; =0x02237988 + add r0, r4, #0 + ldr r2, [r2, r6] + blx r2 + str r0, [r5] + b _0222E224 +_0222E1C6: + bl FUN_0200E308 + cmp r0, #0 + beq _0222E224 + add r0, r4, #0 + add r0, #0xac + ldr r0, [r0] + cmp r0, #0 + beq _0222E20A + add r0, r4, #0 + bl MOD80_0222E7C8 + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_020239CC + add r1, r0, #0 + add r0, r4, #0 + bl MOD80_02235850 + add r1, r4, #0 + add r1, #0xc0 + ldr r1, [r1] + add r0, r4, #0 + mov r2, #0 + bl MOD80_02235B90 + add r0, r4, #0 + bl MOD80_0222F338 + add r0, r4, #0 + mov r1, #0 + add r0, #0xac + str r1, [r0] +_0222E20A: + ldr r3, [r4, #0x14] + mov r2, #0xc + add r6, r3, #0 + mul r6, r2 + ldr r2, _0222E254 ; =0x0223798C + ldr r1, [r5] + ldr r2, [r2, r6] + add r0, r4, #0 + blx r2 + str r0, [r5] + b _0222E224 +_0222E220: + mov r0, #1 + pop {r4, r5, r6, pc} +_0222E224: + add r0, r4, #0 + bl MOD80_0222E85C + add r0, r4, #0 + bl MOD80_0222E87C + ldr r0, _0222E258 ; =0x00000B84 + ldr r0, [r4, r0] + cmp r0, #0 + beq _0222E23C + bl FUN_0201FDEC +_0222E23C: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E240: .word 0x02237E24 +_0222E244: .word MOD80_0222E750 +_0222E248: .word MOD80_0222E778 +_0222E24C: .word 0x02237984 +_0222E250: .word 0x02237988 +_0222E254: .word 0x0223798C +_0222E258: .word 0x00000B84 + thumb_func_end MOD80_0222E134 + + thumb_func_start MOD80_0222E25C +MOD80_0222E25C: ; 0x0222E25C + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r4, #0x48] + bl FUN_02016A18 + bl FUN_020888CC + bl FUN_02088868 + add r0, r4, #0 + bl MOD80_0222E7F0 + ldr r0, _0222E2D4 ; =0x00000B38 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x2d + lsl r0, r0, #6 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + ldr r0, _0222E2D8 ; =0x00000B3C + ldr r0, [r4, r0] + bl FUN_0200A8B8 + ldr r0, _0222E2DC ; =0x00000B34 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_0200AB18 + add r0, r4, #0 + bl MOD80_0222E398 + bl FUN_0202E4F0 + ldr r0, [r4, #4] + bl FUN_02016A18 + ldr r0, [r4] + bl FUN_02016A18 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x3e + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222E2D4: .word 0x00000B38 +_0222E2D8: .word 0x00000B3C +_0222E2DC: .word 0x00000B34 + thumb_func_end MOD80_0222E25C + + thumb_func_start MOD80_0222E2E0 +MOD80_0222E2E0: ; 0x0222E2E0 + push {r4, lr} + ldr r1, _0222E30C ; =0x00001014 + add r4, r0, #0 + ldr r1, [r4, r1] + cmp r1, #0 + beq _0222E2F4 + blx r1 + ldr r0, _0222E30C ; =0x00001014 + mov r1, #0 + str r1, [r4, r0] +_0222E2F4: + bl FUN_0201C30C + bl FUN_02009F80 + ldr r3, _0222E310 ; =0x027E0000 + ldr r1, _0222E314 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + nop +_0222E30C: .word 0x00001014 +_0222E310: .word 0x027E0000 +_0222E314: .word 0x00003FF8 + thumb_func_end MOD80_0222E2E0 + + thumb_func_start MOD80_0222E318 +MOD80_0222E318: ; 0x0222E318 + push {r4, lr} + sub sp, #0x28 + ldr r4, _0222E334 ; =0x02236E70 + add r3, sp, #0 + mov r2, #5 +_0222E322: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _0222E322 + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_0222E334: .word 0x02236E70 + thumb_func_end MOD80_0222E318 + + thumb_func_start MOD80_0222E338 +MOD80_0222E338: ; 0x0222E338 + push {r4, lr} + add r4, r0, #0 + add r0, r1, #0 + bl FUN_0200628C + mov r1, #0 + str r0, [r4] + add r0, r4, #0 + add r2, r1, #0 + str r1, [r4, #0x14] + bl MOD80_0222E7A8 + add r1, r4, #0 + mov r0, #0 + add r1, #0xb4 + strh r0, [r1] + ldr r1, _0222E390 ; =0x00000B22 + mov r3, #3 + strh r0, [r4, r1] + add r2, r1, #2 + strb r3, [r4, r2] + add r2, r1, #3 + strb r0, [r4, r2] + add r2, r1, #4 + strb r0, [r4, r2] + add r1, r1, #6 + strh r0, [r4, r1] + ldr r2, _0222E394 ; =0x00000FEC + add r1, r4, #0 + strh r0, [r4, r2] + mov r3, #0x12 + add r1, #0xb8 + strh r3, [r1] + add r1, r2, #0 + add r1, #0x1c + strh r0, [r4, r1] + add r1, r2, #0 + add r1, #0x1e + strh r0, [r4, r1] + add r1, r2, #2 + strh r0, [r4, r1] + sub r2, #0x14 + str r0, [r4, r2] + pop {r4, pc} + .align 2, 0 +_0222E390: .word 0x00000B22 +_0222E394: .word 0x00000FEC + thumb_func_end MOD80_0222E338 + + thumb_func_start MOD80_0222E398 +MOD80_0222E398: ; 0x0222E398 + bx lr + .align 2, 0 + thumb_func_end MOD80_0222E398 + + thumb_func_start MOD80_0222E39C +MOD80_0222E39C: ; 0x0222E39C + push {r4, lr} + sub sp, #0x10 + ldr r4, _0222E3C8 ; =0x02236E60 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #0x14 + mov r1, #0x3e + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_0222E3C8: .word 0x02236E60 + thumb_func_end MOD80_0222E39C + + thumb_func_start MOD80_0222E3CC +MOD80_0222E3CC: ; 0x0222E3CC + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x7e + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x3e + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + ldr r1, _0222E5C8 ; =0x00000B88 + mov r0, #0x4e + add r1, r5, r1 + mov r2, #0x3e + bl FUN_02008C9C + ldr r1, _0222E5CC ; =0x00000B84 + mov r2, #1 + str r0, [r5, r1] + add r0, r1, #4 + add r0, r5, r0 + mov r1, #0 + lsl r2, r2, #0x14 + bl FUN_02008D24 + mov r7, #0xcb + mov r6, #0 + add r4, r5, #0 + lsl r7, r7, #4 +_0222E414: + mov r0, #3 + add r1, r6, #0 + mov r2, #0x3e + bl FUN_02008DEC + str r0, [r4, r7] + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #4 + blt _0222E414 + mov r0, #0 + str r0, [sp] + mov r3, #1 + str r3, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0xcb + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0x68 + mov r2, #0x12 + bl FUN_02008F34 + mov r1, #0x33 + lsl r1, r1, #6 + str r0, [r5, r1] + mov r3, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + mov r0, #0x3e + sub r1, #0xc + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r2, #9 + bl FUN_02008FEC + ldr r1, _0222E5D0 ; =0x00000CC4 + mov r2, #0x13 + str r0, [r5, r1] + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x3e + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r3, #1 + bl FUN_020090AC + ldr r1, _0222E5D4 ; =0x00000CC8 + mov r2, #0x14 + str r0, [r5, r1] + mov r0, #0 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x3e + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r3, #1 + bl FUN_020090AC + ldr r1, _0222E5D8 ; =0x00000CCC + mov r3, #1 + str r0, [r5, r1] + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x3e + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r2, #0x20 + bl FUN_02008F34 + mov r1, #0xcd + lsl r1, r1, #4 + str r0, [r5, r1] + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #9 + str r0, [sp, #8] + mov r0, #0x3e + sub r1, #0x1c + str r0, [sp, #0xc] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r2, #8 + mov r3, #0 + bl FUN_02008FEC + ldr r1, _0222E5DC ; =0x00000CD4 + mov r3, #1 + str r0, [r5, r1] + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x3e + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r2, #0x21 + bl FUN_020090AC + ldr r1, _0222E5E0 ; =0x00000CD8 + mov r3, #1 + str r0, [r5, r1] + str r3, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x3e + sub r1, #0x1c + str r0, [sp, #8] + ldr r0, [r5, r1] + mov r1, #0x68 + mov r2, #0x22 + bl FUN_020090AC + ldr r1, _0222E5E4 ; =0x00000CDC + str r0, [r5, r1] + sub r1, #0x1c + ldr r0, [r5, r1] + bl FUN_02009A50 + mov r0, #0xcd + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02009A50 + ldr r0, _0222E5D0 ; =0x00000CC4 + ldr r0, [r5, r0] + bl FUN_02009CF0 + ldr r0, _0222E5DC ; =0x00000CD4 + ldr r0, [r5, r0] + bl FUN_02009CF0 + bl FUN_0206B888 + add r1, r0, #0 + mov r0, #0x13 + add r2, sp, #0x18 + mov r3, #0x3e + bl FUN_02006C08 + str r0, [sp, #0x14] + ldr r0, [sp, #0x18] + mov r1, #0x60 + ldr r0, [r0, #0xc] + bl DC_FlushRange + ldr r0, [sp, #0x18] + mov r1, #0x60 + ldr r0, [r0, #0xc] + add r2, r1, #0 + bl GX_LoadOBJPltt + ldr r0, [sp, #0x18] + mov r7, #0x1f + ldr r4, [r0, #0xc] + mov r3, #0 + add r5, r7, #0 +_0222E570: + ldrh r2, [r4] + mov r0, #0x1f + add r3, r3, #1 + add r1, r2, #0 + and r1, r0 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r1, r0, #1 + asr r0, r2, #0xa + add r6, r0, #0 + and r6, r7 + lsr r0, r6, #0x1f + add r0, r6, r0 + asr r2, r2, #5 + add r6, r2, #0 + and r6, r5 + lsr r2, r6, #0x1f + add r2, r6, r2 + asr r0, r0, #1 + asr r2, r2, #1 + lsl r0, r0, #0xa + lsl r2, r2, #5 + orr r0, r2 + orr r0, r1 + strh r0, [r4] + add r4, r4, #2 + cmp r3, #0x30 + blt _0222E570 + ldr r0, [sp, #0x18] + mov r1, #0x60 + ldr r0, [r0, #0xc] + bl DC_FlushRange + ldr r0, [sp, #0x18] + mov r1, #0xc0 + ldr r0, [r0, #0xc] + mov r2, #0x60 + bl GX_LoadOBJPltt + ldr r0, [sp, #0x14] + bl FUN_02016A18 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222E5C8: .word 0x00000B88 +_0222E5CC: .word 0x00000B84 +_0222E5D0: .word 0x00000CC4 +_0222E5D4: .word 0x00000CC8 +_0222E5D8: .word 0x00000CCC +_0222E5DC: .word 0x00000CD4 +_0222E5E0: .word 0x00000CD8 +_0222E5E4: .word 0x00000CDC + thumb_func_end MOD80_0222E3CC + + thumb_func_start MOD80_0222E5E8 +MOD80_0222E5E8: ; 0x0222E5E8 + push {r3, r4} + ldr r4, _0222E610 ; =0x00000B84 + ldr r1, [r1, r4] + str r1, [r0] + str r2, [r0, #4] + mov r2, #0 + mov r1, #1 + str r2, [r0, #0x10] + lsl r1, r1, #0xc + str r1, [r0, #0x14] + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + strh r2, [r0, #0x20] + mov r1, #1 + str r1, [r0, #0x24] + str r3, [r0, #0x28] + mov r1, #0x3e + str r1, [r0, #0x2c] + pop {r3, r4} + bx lr + .align 2, 0 +_0222E610: .word 0x00000B84 + thumb_func_end MOD80_0222E5E8 + + thumb_func_start MOD80_0222E614 +MOD80_0222E614: ; 0x0222E614 + push {r3, r4, lr} + sub sp, #0x2c + mov r1, #0 + add r4, r0, #0 + str r1, [sp] + sub r0, r1, #1 + str r0, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + mov r2, #0xcb + str r1, [sp, #0x10] + lsl r2, r2, #4 + ldr r0, [r4, r2] + add r3, r1, #0 + str r0, [sp, #0x14] + add r0, r2, #4 + ldr r0, [r4, r0] + str r0, [sp, #0x18] + add r0, r2, #0 + add r0, #8 + ldr r0, [r4, r0] + str r0, [sp, #0x1c] + add r0, r2, #0 + add r0, #0xc + ldr r0, [r4, r0] + add r2, #0x40 + str r0, [sp, #0x20] + str r1, [sp, #0x24] + add r0, r4, r2 + add r2, r1, #0 + str r1, [sp, #0x28] + bl FUN_02008AA4 + mov r1, #1 + mov r3, #0xcb + str r1, [sp] + sub r0, r1, #2 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r3, r3, #4 + ldr r2, [r4, r3] + str r2, [sp, #0x14] + add r2, r3, #4 + ldr r2, [r4, r2] + str r2, [sp, #0x18] + add r2, r3, #0 + add r2, #8 + ldr r2, [r4, r2] + str r2, [sp, #0x1c] + add r2, r3, #0 + add r2, #0xc + ldr r2, [r4, r2] + add r3, #0x64 + str r2, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, r4, r3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02008AA4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x2c + pop {r3, r4, pc} + thumb_func_end MOD80_0222E614 + + thumb_func_start MOD80_0222E6A8 +MOD80_0222E6A8: ; 0x0222E6A8 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + ldr r5, _0222E6D8 ; =0x02236E48 + add r4, sp, #4 + ldrh r6, [r5] + add r3, sp, #4 + strh r6, [r4] + ldrh r6, [r5, #2] + strh r6, [r4, #2] + ldrh r6, [r5, #4] + ldrh r5, [r5, #6] + strh r6, [r4, #4] + strh r5, [r4, #6] + strb r1, [r4, #2] + strh r2, [r4, #6] + mov r1, #0x3e + str r1, [sp] + add r1, r3, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_02002198 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222E6D8: .word 0x02236E48 + thumb_func_end MOD80_0222E6A8 + + thumb_func_start MOD80_0222E6DC +MOD80_0222E6DC: ; 0x0222E6DC + str r1, [r0, #0x2c] + str r2, [r0, #0x30] + bx lr + .align 2, 0 + thumb_func_end MOD80_0222E6DC + + thumb_func_start MOD80_0222E6E4 +MOD80_0222E6E4: ; 0x0222E6E4 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + add r5, r2, #0 + cmp r1, #0 + ble _0222E702 + lsl r0, r1, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _0222E710 +_0222E702: + lsl r0, r1, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_0222E710: + bl _ffix + str r0, [sp] + cmp r5, #0 + ble _0222E72C + lsl r0, r5, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _0222E73A +_0222E72C: + lsl r0, r5, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_0222E73A: + bl _ffix + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, sp, #0 + bl FUN_02020044 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD80_0222E6E4 + + thumb_func_start MOD80_0222E750 +MOD80_0222E750: ; 0x0222E750 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r4, r2, #0 + bl OS_DisableInterrupts + add r6, r0, #0 + ldr r0, _0222E774 ; =0x02237E24 + add r1, r5, #0 + ldr r0, [r0] + add r2, r4, #0 + bl tempName_NNS_FndAllocFromExpHeapEx + add r4, r0, #0 + add r0, r6, #0 + bl OS_RestoreInterrupts + add r0, r4, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E774: .word 0x02237E24 + thumb_func_end MOD80_0222E750 + + thumb_func_start MOD80_0222E778 +MOD80_0222E778: ; 0x0222E778 + push {r3, r4, r5, lr} + add r5, r1, #0 + beq _0222E794 + bl OS_DisableInterrupts + add r4, r0, #0 + ldr r0, _0222E798 ; =0x02237E24 + add r1, r5, #0 + ldr r0, [r0] + bl FUN_020ADDF0 + add r0, r4, #0 + bl OS_RestoreInterrupts +_0222E794: + pop {r3, r4, r5, pc} + nop +_0222E798: .word 0x02237E24 + thumb_func_end MOD80_0222E778 + + thumb_func_start MOD80_0222E79C +MOD80_0222E79C: ; 0x0222E79C + push {r3, lr} + bl MOD04_021DDB08 + mov r1, #3 + sub r0, r1, r0 + pop {r3, pc} + thumb_func_end MOD80_0222E79C + + thumb_func_start MOD80_0222E7A8 +MOD80_0222E7A8: ; 0x0222E7A8 + str r1, [r0, #0x18] + str r2, [r0, #0x24] + bx lr + .align 2, 0 + thumb_func_end MOD80_0222E7A8 + + thumb_func_start MOD80_0222E7B0 +MOD80_0222E7B0: ; 0x0222E7B0 + ldr r1, [r0, #0x14] + str r1, [r0, #0x20] + ldr r1, [r0, #0x18] + str r1, [r0, #0x14] + bx lr + .align 2, 0 + thumb_func_end MOD80_0222E7B0 + + thumb_func_start MOD80_0222E7BC +MOD80_0222E7BC: ; 0x0222E7BC + ldr r0, [r0] + ldr r3, _0222E7C4 ; =FUN_02024FF4 + ldr r0, [r0, #0x24] + bx r3 + .align 2, 0 +_0222E7C4: .word FUN_02024FF4 + thumb_func_end MOD80_0222E7BC + + thumb_func_start MOD80_0222E7C8 +MOD80_0222E7C8: ; 0x0222E7C8 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222E318 + bl MOD80_0222E39C + add r0, r4, #0 + bl MOD80_0222E3CC + add r0, r4, #0 + bl MOD80_0222E614 + ldr r0, _0222E7EC ; =MOD80_0222E2E0 + add r1, r4, #0 + bl FUN_02015F10 + pop {r4, pc} + nop +_0222E7EC: .word MOD80_0222E2E0 + thumb_func_end MOD80_0222E7C8 + + thumb_func_start MOD80_0222E7F0 +MOD80_0222E7F0: ; 0x0222E7F0 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + bl MOD80_02235D10 + mov r0, #0x33 + lsl r0, r0, #6 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0xcd + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009C0C + ldr r0, _0222E850 ; =0x00000CC4 + ldr r0, [r6, r0] + bl FUN_02009E04 + ldr r0, _0222E854 ; =0x00000CD4 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r7, #0xcb + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #4 +_0222E824: + ldr r0, [r5, r7] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0222E824 + ldr r0, _0222E858 ; =0x00000B84 + ldr r0, [r6, r0] + bl FUN_0201FD58 + ldr r0, _0222E858 ; =0x00000B84 + mov r1, #0 + str r1, [r6, r0] + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E850: .word 0x00000CC4 +_0222E854: .word 0x00000CD4 +_0222E858: .word 0x00000B84 + thumb_func_end MOD80_0222E7F0 + + thumb_func_start MOD80_0222E85C +MOD80_0222E85C: ; 0x0222E85C + ldrh r1, [r0, #0x3a] + cmp r1, #0 + beq _0222E866 + sub r1, r1, #1 + strh r1, [r0, #0x3a] +_0222E866: + bx lr + thumb_func_end MOD80_0222E85C + + thumb_func_start MOD80_0222E868 +MOD80_0222E868: ; 0x0222E868 + ldr r1, _0222E878 ; =0x0000100A + mov r2, #1 + strh r2, [r0, r1] + mov r2, #0 + sub r1, r1, #2 + strh r2, [r0, r1] + bx lr + nop +_0222E878: .word 0x0000100A + thumb_func_end MOD80_0222E868 + + thumb_func_start MOD80_0222E87C +MOD80_0222E87C: ; 0x0222E87C + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222E8B4 ; =0x0000100A + ldrh r1, [r4, r0] + cmp r1, #0 + beq _0222E8B0 + ldr r0, [r4] + sub r1, r1, #1 + ldr r0, [r0, #0xc] + bl FUN_0206B4E4 + ldr r1, _0222E8B8 ; =0x00001008 + ldrh r2, [r4, r1] + add r0, r2, r0 + strh r0, [r4, r1] + add r0, r1, #2 + ldrh r0, [r4, r0] + add r2, r0, #1 + add r0, r1, #2 + strh r2, [r4, r0] + ldrh r0, [r4, r0] + cmp r0, #0x13 + bne _0222E8B0 + mov r2, #0 + add r0, r1, #2 + strh r2, [r4, r0] +_0222E8B0: + pop {r4, pc} + nop +_0222E8B4: .word 0x0000100A +_0222E8B8: .word 0x00001008 + thumb_func_end MOD80_0222E87C + + thumb_func_start MOD80_0222E8BC +MOD80_0222E8BC: ; 0x0222E8BC + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222E8D0 ; =0x00000E98 + mov r1, #1 + add r0, r4, r0 + bl FUN_0200D858 + ldr r1, _0222E8D4 ; =0x00000FD8 + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 +_0222E8D0: .word 0x00000E98 +_0222E8D4: .word 0x00000FD8 + thumb_func_end MOD80_0222E8BC + + thumb_func_start MOD80_0222E8D8 +MOD80_0222E8D8: ; 0x0222E8D8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222E8F0 ; =0x00000FD8 + ldr r0, [r4, r0] + cmp r0, #0 + beq _0222E8EE + bl FUN_0200DBFC + ldr r0, _0222E8F0 ; =0x00000FD8 + mov r1, #0 + str r1, [r4, r0] +_0222E8EE: + pop {r4, pc} + .align 2, 0 +_0222E8F0: .word 0x00000FD8 + thumb_func_end MOD80_0222E8D8 + + thumb_func_start MOD80_0222E8F4 +MOD80_0222E8F4: ; 0x0222E8F4 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_0222EDE0 + ldr r0, [r4, #4] + bl MOD80_0222EA04 + add r0, r4, #0 + bl MOD80_0222EB6C + add r0, r4, #0 + bl MOD80_0222EC98 + add r0, r4, #0 + bl MOD80_0222EC24 + add r0, r4, #0 + bl MOD80_02236D84 + add r0, r4, #0 + bl MOD80_0222F20C + ldr r1, _0222E9B0 ; =0x00000449 + mov r0, #4 + mov r2, #1 + bl FUN_0200433C + ldrh r0, [r4, #0x34] + cmp r0, #0 + bne _0222E968 + add r0, r4, #0 + bl MOD80_0222EB40 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #1 + strh r0, [r4, #0x34] + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_020239CC + add r1, r0, #0 + add r0, r4, #0 + bl MOD80_02235900 + b _0222E9A2 +_0222E968: + ldr r0, _0222E9B4 ; =0x0000100C + ldr r0, [r4, r0] + cmp r0, #1 + bne _0222E988 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + b _0222E99E +_0222E988: + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 +_0222E99E: + mov r0, #5 + str r0, [r4, #0x2c] +_0222E9A2: + ldr r0, _0222E9B4 ; =0x0000100C + mov r1, #0 + str r1, [r4, r0] + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + nop +_0222E9B0: .word 0x00000449 +_0222E9B4: .word 0x0000100C + thumb_func_end MOD80_0222E8F4 + + thumb_func_start MOD80_0222E9B8 +MOD80_0222E9B8: ; 0x0222E9B8 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222E79C + bl FUN_02033EEC + ldr r1, [r4, #0x2c] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _0222E9D4 ; =0x022379FC + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0222E9D4: .word 0x022379FC + thumb_func_end MOD80_0222E9B8 + + thumb_func_start MOD80_0222E9D8 +MOD80_0222E9D8: ; 0x0222E9D8 + push {r4, lr} + add r4, r0, #0 + bl FUN_02033ED0 + add r0, r4, #0 + bl MOD80_0222EC88 + add r0, r4, #0 + bl MOD80_0222EE08 + add r0, r4, #0 + bl MOD80_0222ED9C + ldr r0, [r4, #4] + bl MOD80_0222EB14 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_0222E9D8 + + thumb_func_start MOD80_0222EA04 +MOD80_0222EA04: ; 0x0222EA04 + push {r4, r5, lr} + sub sp, #0x9c + ldr r5, _0222EAFC ; =0x02236EA4 + add r3, sp, #0x8c + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _0222EB00 ; =0x02236F04 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _0222EB04 ; =0x02236EE8 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _0222EB08 ; =0x02236F20 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _0222EB0C ; =0x02236F3C + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _0222EB10 ; =0x02236ECC + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + add r0, r4, #0 + mov r1, #5 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x9c + pop {r4, r5, pc} + nop +_0222EAFC: .word 0x02236EA4 +_0222EB00: .word 0x02236F04 +_0222EB04: .word 0x02236EE8 +_0222EB08: .word 0x02236F20 +_0222EB0C: .word 0x02236F3C +_0222EB10: .word 0x02236ECC + thumb_func_end MOD80_0222EA04 + + thumb_func_start MOD80_0222EB14 +MOD80_0222EB14: ; 0x0222EB14 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_0222EB14 + + thumb_func_start MOD80_0222EB40 +MOD80_0222EB40: ; 0x0222EB40 + push {r4, lr} + add r4, r0, #0 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + ldr r0, _0222EB68 ; =0x00000D5C + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_020200A0 + pop {r4, pc} + .align 2, 0 +_0222EB68: .word 0x00000D5C + thumb_func_end MOD80_0222EB40 + + thumb_func_start MOD80_0222EB6C +MOD80_0222EB6C: ; 0x0222EB6C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #4 + add r3, r2, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #3 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0xe + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x1e + add r2, r4, #0 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x1d + add r2, r4, #0 + mov r3, #2 + bl FUN_020068C8 + add r0, r5, #0 + bl MOD80_0222F338 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD80_0222EB6C + + thumb_func_start MOD80_0222EC24 +MOD80_0222EC24: ; 0x0222EC24 + push {r4, lr} + sub sp, #0x30 + mov r2, #0xcf + add r4, r0, #0 + lsl r2, r2, #4 + add r0, sp, #0 + add r1, r4, #0 + add r2, r4, r2 + mov r3, #1 + bl MOD80_0222E5E8 + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + lsl r1, r0, #2 + ldr r0, _0222EC7C ; =0x02236E98 + ldrh r0, [r0, r1] + lsl r0, r0, #0xc + str r0, [sp, #8] + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + lsl r1, r0, #2 + ldr r0, _0222EC80 ; =0x02236E9A + ldrh r0, [r0, r1] + lsl r0, r0, #0xc + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _0222EC84 ; =0x00000D5C + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_020200BC + ldr r0, _0222EC84 ; =0x00000D5C + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_02020130 + add sp, #0x30 + pop {r4, pc} + nop +_0222EC7C: .word 0x02236E98 +_0222EC80: .word 0x02236E9A +_0222EC84: .word 0x00000D5C + thumb_func_end MOD80_0222EC24 + + thumb_func_start MOD80_0222EC88 +MOD80_0222EC88: ; 0x0222EC88 + ldr r1, _0222EC90 ; =0x00000D5C + ldr r3, _0222EC94 ; =FUN_0201FFC8 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_0222EC90: .word 0x00000D5C +_0222EC94: .word FUN_0201FFC8 + thumb_func_end MOD80_0222EC88 + + thumb_func_start MOD80_0222EC98 +MOD80_0222EC98: ; 0x0222EC98 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + mov r3, #1 + add r7, r0, #0 + str r3, [sp] + mov r0, #0x1c + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + ldr r1, _0222ED88 ; =0x00000EB8 + str r0, [sp, #0x10] + ldr r0, [r7, #4] + add r1, r7, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _0222ED88 ; =0x00000EB8 + mov r1, #0 + add r0, r7, r0 + bl FUN_02019620 + mov r0, #2 + str r0, [sp] + mov r3, #0 + mov r2, #0xb5 + ldr r0, _0222ED8C ; =0x000F0400 + str r3, [sp, #4] + str r0, [sp, #8] + ldr r0, _0222ED88 ; =0x00000EB8 + str r3, [sp, #0xc] + lsl r2, r2, #4 + ldr r2, [r7, r2] + add r0, r7, r0 + mov r1, #1 + bl FUN_0201BDE0 + mov r0, #0 + str r0, [sp, #0x14] + ldr r0, _0222ED90 ; =0x00000ED8 + mov r6, #0x61 + mov r4, #6 + add r5, r7, r0 +_0222ECF2: + lsl r0, r4, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0xf + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r7, #4] + add r1, r5, #0 + mov r2, #1 + mov r3, #9 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + ldr r0, [sp, #0x14] + add r6, #0x1e + add r0, r0, #1 + add r4, r4, #5 + add r5, #0x10 + str r0, [sp, #0x14] + cmp r0, #3 + blt _0222ECF2 + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + ldr r1, _0222ED94 ; =0x00000E98 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x60 + str r0, [sp, #0x10] + ldr r0, [r7, #4] + add r1, r7, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _0222ED94 ; =0x00000E98 + mov r1, #0xf + add r0, r7, r0 + bl FUN_02019620 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x96 + ldr r1, _0222ED98 ; =0x00000FB8 + str r0, [sp, #0x10] + ldr r0, [r7, #4] + add r1, r7, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + ldr r0, _0222ED98 ; =0x00000FB8 + mov r1, #0xf + add r0, r7, r0 + bl FUN_02019620 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222ED88: .word 0x00000EB8 +_0222ED8C: .word 0x000F0400 +_0222ED90: .word 0x00000ED8 +_0222ED94: .word 0x00000E98 +_0222ED98: .word 0x00000FB8 + thumb_func_end MOD80_0222EC98 + + thumb_func_start MOD80_0222ED9C +MOD80_0222ED9C: ; 0x0222ED9C + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, _0222EDD0 ; =0x00000FB8 + add r0, r6, r0 + bl FUN_02019178 + ldr r0, _0222EDD4 ; =0x00000E98 + add r0, r6, r0 + bl FUN_02019178 + ldr r0, _0222EDD8 ; =0x00000ED8 + mov r4, #0 + add r5, r6, r0 +_0222EDB6: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #3 + blt _0222EDB6 + ldr r0, _0222EDDC ; =0x00000EB8 + add r0, r6, r0 + bl FUN_02019178 + pop {r4, r5, r6, pc} + nop +_0222EDD0: .word 0x00000FB8 +_0222EDD4: .word 0x00000E98 +_0222EDD8: .word 0x00000ED8 +_0222EDDC: .word 0x00000EB8 + thumb_func_end MOD80_0222ED9C + + thumb_func_start MOD80_0222EDE0 +MOD80_0222EDE0: ; 0x0222EDE0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _0222EE04 ; =0x00000B4C + str r0, [r4, r1] + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x27 + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r4, r1] + pop {r4, pc} + nop +_0222EE04: .word 0x00000B4C + thumb_func_end MOD80_0222EDE0 + + thumb_func_start MOD80_0222EE08 +MOD80_0222EE08: ; 0x0222EE08 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222EE20 ; =0x00000B4C + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0xb5 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + .align 2, 0 +_0222EE20: .word 0x00000B4C + thumb_func_end MOD80_0222EE08 + + thumb_func_start MOD80_0222EE24 +MOD80_0222EE24: ; 0x0222EE24 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222EE60 ; =0x00000FEC + ldrh r0, [r4, r0] + cmp r0, #0 + beq _0222EE5A + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r4, #0 + mov r1, #7 + mov r2, #0xb + bl MOD80_0222E7A8 + mov r0, #1 + str r0, [r4, #0x1c] + mov r0, #9 + str r0, [r4, #0x2c] +_0222EE5A: + mov r0, #3 + pop {r4, pc} + nop +_0222EE60: .word 0x00000FEC + thumb_func_end MOD80_0222EE24 + + thumb_func_start MOD80_0222EE64 +MOD80_0222EE64: ; 0x0222EE64 + push {r3, lr} + mov r1, #0xa + mov r2, #2 + bl MOD80_0222E6DC + mov r0, #3 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD80_0222EE64 + + thumb_func_start MOD80_0222EE74 +MOD80_0222EE74: ; 0x0222EE74 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + mov r0, #3 + str r0, [r4, #0x2c] + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD80_0222EE74 + + thumb_func_start MOD80_0222EE98 +MOD80_0222EE98: ; 0x0222EE98 + push {r4, lr} + add r4, r0, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _0222EEA8 + mov r0, #5 + str r0, [r4, #0x2c] +_0222EEA8: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_0222EE98 + + thumb_func_start MOD80_0222EEAC +MOD80_0222EEAC: ; 0x0222EEAC + push {r4, lr} + add r4, r0, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _0222EEBC + mov r0, #5 + str r0, [r4, #0x2c] +_0222EEBC: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_0222EEAC + + thumb_func_start MOD80_0222EEC0 +MOD80_0222EEC0: ; 0x0222EEC0 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222EEF4 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #4 + mov r2, #1 + mov r3, #0 + bl MOD80_0222F250 + add r0, r4, #0 + mov r1, #0xa + mov r2, #6 + bl MOD80_0222E6DC + ldr r0, _0222EEF8 ; =0x00000D5C + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_020200BC + add r0, r4, #0 + bl MOD80_0222E868 + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222EEF4: .word 0x00000F0F +_0222EEF8: .word 0x00000D5C + thumb_func_end MOD80_0222EEC0 + + thumb_func_start MOD80_0222EEFC +MOD80_0222EEFC: ; 0x0222EEFC + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222F084 ; =0x021C48B8 + mov r2, #2 + ldr r1, [r1, #0x48] + add r4, r0, #0 + tst r2, r1 + beq _0222EF36 + bl MOD80_0222E7BC + add r2, r0, #0 + ldr r0, _0222F088 ; =0x00000F0F + mov r1, #7 + str r0, [sp] + add r0, r4, #0 + mov r3, #0 + bl MOD80_0222F2A8 + add r0, r4, #0 + mov r1, #0xa + mov r2, #0xc + bl MOD80_0222E6DC + ldr r0, _0222F08C ; =0x00000D5C + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_020200BC + b _0222F07C +_0222EF36: + mov r2, #1 + tst r2, r1 + beq _0222F002 + add r1, r4, #0 + add r1, #0xb4 + ldrh r1, [r1] + cmp r1, #0 + beq _0222EF50 + cmp r1, #1 + beq _0222EFBE + cmp r1, #2 + beq _0222EFD2 + b _0222F07C +_0222EF50: + ldrh r1, [r4, #0x36] + cmp r1, #0 + bne _0222EF6A + mov r1, #5 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] + ldr r0, _0222F090 ; =0x000005DC + bl FUN_020054C8 + b _0222F07C +_0222EF6A: + ldrh r1, [r4, #0x3a] + cmp r1, #0 + bne _0222EF8C + mov r1, #7 + mov r2, #0xb + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r4, #0x1c] + mov r0, #9 + str r0, [r4, #0x2c] + ldr r0, _0222F094 ; =0x00000708 + strh r0, [r4, #0x3a] + ldr r0, _0222F090 ; =0x000005DC + bl FUN_020054C8 + b _0222F07C +_0222EF8C: + ldr r0, _0222F08C ; =0x00000D5C + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_020200BC + ldr r0, _0222F088 ; =0x00000F0F + mov r1, #0x22 + str r0, [sp] + add r0, r4, #0 + mov r2, #1 + mov r3, #0 + bl MOD80_0222F250 + add r0, r4, #0 + mov r1, #0xb + mov r2, #5 + bl MOD80_0222E6DC + ldr r0, _0222F098 ; =0x000005F3 + bl FUN_020054C8 + ldr r0, _0222F09C ; =0x00000FDC + mov r1, #0 + str r1, [r4, r0] + b _0222F07C +_0222EFBE: + mov r1, #4 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] + ldr r0, _0222F090 ; =0x000005DC + bl FUN_020054C8 + b _0222F07C +_0222EFD2: + bl MOD80_0222E7BC + add r2, r0, #0 + ldr r0, _0222F088 ; =0x00000F0F + mov r1, #7 + str r0, [sp] + add r0, r4, #0 + mov r3, #0 + bl MOD80_0222F2A8 + add r0, r4, #0 + mov r1, #0xa + mov r2, #0xc + bl MOD80_0222E6DC + ldr r0, _0222F08C ; =0x00000D5C + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_020200BC + ldr r0, _0222F090 ; =0x000005DC + bl FUN_020054C8 + b _0222F07C +_0222F002: + mov r0, #0x40 + tst r0, r1 + beq _0222F040 + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + cmp r0, #0 + beq _0222F07C + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + sub r1, r0, #1 + add r0, r4, #0 + add r0, #0xb4 + strh r1, [r0] + ldr r0, _0222F090 ; =0x000005DC + bl FUN_020054C8 + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + ldr r1, _0222F0A0 ; =0x02236E98 + ldr r2, _0222F0A4 ; =0x02236E9A + lsl r3, r0, #2 + ldr r0, _0222F08C ; =0x00000D5C + ldrh r1, [r1, r3] + ldrh r2, [r2, r3] + ldr r0, [r4, r0] + bl MOD80_0222E6E4 + b _0222F07C +_0222F040: + mov r0, #0x80 + tst r0, r1 + beq _0222F07C + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + cmp r0, #2 + bhs _0222F07C + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0xb4 + strh r1, [r0] + ldr r0, _0222F090 ; =0x000005DC + bl FUN_020054C8 + add r0, r4, #0 + add r0, #0xb4 + ldrh r0, [r0] + ldr r1, _0222F0A0 ; =0x02236E98 + ldr r2, _0222F0A4 ; =0x02236E9A + lsl r3, r0, #2 + ldr r0, _0222F08C ; =0x00000D5C + ldrh r1, [r1, r3] + ldrh r2, [r2, r3] + ldr r0, [r4, r0] + bl MOD80_0222E6E4 +_0222F07C: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222F084: .word 0x021C48B8 +_0222F088: .word 0x00000F0F +_0222F08C: .word 0x00000D5C +_0222F090: .word 0x000005DC +_0222F094: .word 0x00000708 +_0222F098: .word 0x000005F3 +_0222F09C: .word 0x00000FDC +_0222F0A0: .word 0x02236E98 +_0222F0A4: .word 0x02236E9A + thumb_func_end MOD80_0222EEFC + + thumb_func_start MOD80_0222F0A8 +MOD80_0222F0A8: ; 0x0222F0A8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_020239CC + add r1, r0, #0 + add r0, r4, #0 + bl MOD80_02235A10 + mov r0, #8 + str r0, [r4, #0x2c] + ldr r0, _0222F0CC ; =0x00000FEC + mov r1, #0 + strh r1, [r4, r0] + mov r0, #3 + pop {r4, pc} + nop +_0222F0CC: .word 0x00000FEC + thumb_func_end MOD80_0222F0A8 + + thumb_func_start MOD80_0222F0D0 +MOD80_0222F0D0: ; 0x0222F0D0 + ldr r1, _0222F0E0 ; =0x00000FEC + ldrh r1, [r0, r1] + cmp r1, #0 + beq _0222F0DC + mov r1, #9 + str r1, [r0, #0x2c] +_0222F0DC: + mov r0, #3 + bx lr + .align 2, 0 +_0222F0E0: .word 0x00000FEC + thumb_func_end MOD80_0222F0D0 + + thumb_func_start MOD80_0222F0E4 +MOD80_0222F0E4: ; 0x0222F0E4 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4, #0x18] + cmp r0, #0 + bne _0222F10A + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + b _0222F122 +_0222F10A: + mov r0, #6 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 +_0222F122: + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD80_0222F0E4 + + thumb_func_start MOD80_0222F12C +MOD80_0222F12C: ; 0x0222F12C + push {r4, lr} + add r4, r0, #0 + mov r1, #0xd + add r2, r1, #0 + ldr r0, [r4, #4] + add r2, #0xf5 + bl MOD80_0222E6A8 + ldr r1, _0222F148 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #0xd + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F148: .word 0x00000FCC + thumb_func_end MOD80_0222F12C + + thumb_func_start MOD80_0222F14C +MOD80_0222F14C: ; 0x0222F14C + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222F1AC ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0222F1A8 + sub r1, r1, #1 + cmp r0, r1 + ldr r0, _0222F1B0 ; =0x00000FB8 + bne _0222F18A + add r0, r4, r0 + mov r1, #1 + bl FUN_0200D0E0 + ldr r0, _0222F1B0 ; =0x00000FB8 + add r0, r4, r0 + bl FUN_02019570 + ldr r0, _0222F1B4 ; =0x00000D5C + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_020200BC + mov r0, #5 + str r0, [r4, #0x2c] + b _0222F1A8 +_0222F18A: + add r0, r4, r0 + mov r1, #1 + bl FUN_0200D0E0 + ldr r0, _0222F1B0 ; =0x00000FB8 + add r0, r4, r0 + bl FUN_02019570 + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #7 + str r0, [r4, #0x2c] +_0222F1A8: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F1AC: .word 0x00000FCC +_0222F1B0: .word 0x00000FB8 +_0222F1B4: .word 0x00000D5C + thumb_func_end MOD80_0222F14C + + thumb_func_start MOD80_0222F1B8 +MOD80_0222F1B8: ; 0x0222F1B8 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0222F1D2 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_0222F1D2: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_0222F1B8 + + thumb_func_start MOD80_0222F1D8 +MOD80_0222F1D8: ; 0x0222F1D8 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0222F204 + ldr r0, _0222F208 ; =0x00000FDC + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0x2d + ble _0222F204 + mov r1, #0 + str r1, [r4, r0] + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_0222F204: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F208: .word 0x00000FDC + thumb_func_end MOD80_0222F1D8 + + thumb_func_start MOD80_0222F20C +MOD80_0222F20C: ; 0x0222F20C + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + ldrh r1, [r7, #0x36] + mov r0, #0xc + ldr r2, _0222F240 ; =0x02236EB4 + mul r0, r1 + add r4, r2, r0 + ldr r0, _0222F244 ; =0x00000ED8 + mov r6, #0 + add r5, r7, r0 +_0222F220: + ldr r1, _0222F248 ; =0x00000B34 + ldr r2, [r4] + ldr r1, [r7, r1] + ldr r3, _0222F24C ; =0x00000F0F + add r0, r5, #0 + bl MOD80_0222F300 + add r0, r5, #0 + bl FUN_020191D0 + add r6, r6, #1 + add r4, r4, #4 + add r5, #0x10 + cmp r6, #3 + blt _0222F220 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222F240: .word 0x02236EB4 +_0222F244: .word 0x00000ED8 +_0222F248: .word 0x00000B34 +_0222F24C: .word 0x00000F0F + thumb_func_end MOD80_0222F20C + + thumb_func_start MOD80_0222F250 +MOD80_0222F250: ; 0x0222F250 + push {r4, r5, lr} + sub sp, #0xc + add r4, r2, #0 + ldr r2, _0222F29C ; =0x00000B34 + add r5, r0, #0 + ldr r0, [r5, r2] + add r2, #0x18 + ldr r2, [r5, r2] + bl FUN_0200A8E0 + ldr r0, _0222F2A0 ; =0x00000E98 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _0222F2A0 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _0222F2A0 ; =0x00000E98 + ldr r2, _0222F2A4 ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_0222F29C: .word 0x00000B34 +_0222F2A0: .word 0x00000E98 +_0222F2A4: .word 0x00000B4C + thumb_func_end MOD80_0222F250 + + thumb_func_start MOD80_0222F2A8 +MOD80_0222F2A8: ; 0x0222F2A8 + push {r4, r5, lr} + sub sp, #0xc + add r4, r2, #0 + ldr r2, _0222F2F4 ; =0x00000B34 + add r5, r0, #0 + ldr r0, [r5, r2] + add r2, #0x18 + ldr r2, [r5, r2] + bl FUN_0200A8E0 + ldr r0, _0222F2F8 ; =0x00000FB8 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _0222F2F8 ; =0x00000FB8 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _0222F2F8 ; =0x00000FB8 + ldr r2, _0222F2FC ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_0222F2F4: .word 0x00000B34 +_0222F2F8: .word 0x00000FB8 +_0222F2FC: .word 0x00000B4C + thumb_func_end MOD80_0222F2A8 + + thumb_func_start MOD80_0222F300 +MOD80_0222F300: ; 0x0222F300 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r0, r1, #0 + add r4, r3, #0 + add r1, r2, #0 + bl FUN_0200A914 + lsl r1, r4, #0x18 + add r6, r0, #0 + add r0, r5, #0 + lsr r1, r1, #0x18 + bl FUN_02019620 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + add r0, r5, #0 + mov r1, #1 + add r2, r6, #0 + str r3, [sp, #8] + bl FUN_0201BD84 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD80_0222F300 + + thumb_func_start MOD80_0222F338 +MOD80_0222F338: ; 0x0222F338 + push {r4, lr} + sub sp, #0x10 + ldr r4, [r0, #4] + mov r0, #2 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #5 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + mov r0, #0x2a + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0xf + add r2, r4, #0 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x1f + add r2, r4, #0 + mov r3, #5 + bl FUN_020068C8 + add sp, #0x10 + pop {r4, pc} + thumb_func_end MOD80_0222F338 + + thumb_func_start MOD80_0222F394 +MOD80_0222F394: ; 0x0222F394 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_0222F7F0 + ldr r0, [r4, #4] + bl MOD80_0222F494 + add r0, r4, #0 + bl MOD80_0222F5A8 + add r0, r4, #0 + bl MOD80_0222F6EC + add r0, r4, #0 + bl MOD80_0222F690 + add r0, r4, #0 + add r0, #0xd4 + bl FUN_020690E4 + str r0, [sp] + mov r0, #7 + lsl r0, r0, #6 + ldr r2, _0222F448 ; =0x00000B34 + add r0, r4, r0 + str r0, [sp, #4] + add r1, r2, #4 + ldr r0, [r4, r2] + sub r2, r2, #4 + ldr r3, _0222F44C ; =0x00000F08 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + add r3, r4, r3 + bl MOD80_0222FBC0 + ldr r0, _0222F448 ; =0x00000B34 + ldr r1, _0222F450 ; =0x00000F58 + mov r2, #0x1e + lsl r2, r2, #4 + ldr r0, [r4, r0] + add r1, r4, r1 + add r2, r4, r2 + bl MOD80_0222FD28 + ldr r1, _0222F454 ; =0x000001C7 + ldrsb r0, [r4, r1] + add r1, r1, #1 + ldrsb r1, [r4, r1] + bl MOD80_02234668 + mov r1, #0x71 + lsl r1, r1, #2 + ldrsh r2, [r4, r1] + ldr r3, _0222F458 ; =0x00000F78 + add r1, r1, #2 + str r2, [sp] + ldrsb r1, [r4, r1] + ldr r2, _0222F448 ; =0x00000B34 + add r3, r4, r3 + str r1, [sp, #4] + str r0, [sp, #8] + add r1, r2, #4 + ldr r0, [r4, r2] + sub r2, r2, #4 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + bl MOD80_02234048 + add r0, r4, #0 + add r0, #0xd4 + bl MOD80_0222FD88 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + nop +_0222F448: .word 0x00000B34 +_0222F44C: .word 0x00000F08 +_0222F450: .word 0x00000F58 +_0222F454: .word 0x000001C7 +_0222F458: .word 0x00000F78 + thumb_func_end MOD80_0222F394 + + thumb_func_start MOD80_0222F45C +MOD80_0222F45C: ; 0x0222F45C + push {r3, lr} + ldr r1, [r0, #0x2c] + lsl r2, r1, #2 + ldr r1, _0222F46C ; =0x02237A40 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + nop +_0222F46C: .word 0x02237A40 + thumb_func_end MOD80_0222F45C + + thumb_func_start MOD80_0222F470 +MOD80_0222F470: ; 0x0222F470 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222F6DC + add r0, r4, #0 + bl MOD80_0222F830 + add r0, r4, #0 + bl MOD80_0222F7B8 + ldr r0, [r4, #4] + bl MOD80_0222F57C + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_0222F470 + + thumb_func_start MOD80_0222F494 +MOD80_0222F494: ; 0x0222F494 + push {r4, r5, lr} + sub sp, #0x8c + ldr r5, _0222F568 ; =0x02236FC8 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x70 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _0222F56C ; =0x02236FAC + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _0222F570 ; =0x02236F90 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _0222F574 ; =0x02236F74 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _0222F578 ; =0x02236F58 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + add sp, #0x8c + pop {r4, r5, pc} + nop +_0222F568: .word 0x02236FC8 +_0222F56C: .word 0x02236FAC +_0222F570: .word 0x02236F90 +_0222F574: .word 0x02236F74 +_0222F578: .word 0x02236F58 + thumb_func_end MOD80_0222F494 + + thumb_func_start MOD80_0222F57C +MOD80_0222F57C: ; 0x0222F57C + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_0222F57C + + thumb_func_start MOD80_0222F5A8 +MOD80_0222F5A8: ; 0x0222F5A8 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #7 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #5 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #0xa + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x11 + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x19 + add r2, r4, #0 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + mov r0, #0x2a + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0xf + add r2, r4, #0 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x1f + add r2, r4, #0 + mov r3, #5 + bl FUN_020068C8 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_0222F5A8 + + thumb_func_start MOD80_0222F690 +MOD80_0222F690: ; 0x0222F690 + push {r4, lr} + sub sp, #0x30 + mov r2, #0xcf + add r4, r0, #0 + lsl r2, r2, #4 + add r0, sp, #0 + add r1, r4, #0 + add r2, r4, r2 + mov r3, #1 + bl MOD80_0222E5E8 + mov r0, #0x32 + lsl r0, r0, #0xe + str r0, [sp, #8] + mov r0, #0x3a + lsl r0, r0, #0xc + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _0222F6D8 ; =0x00000E6C + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_020200BC + ldr r0, _0222F6D8 ; =0x00000E6C + mov r1, #0x25 + ldr r0, [r4, r0] + bl FUN_02020130 + bl FUN_02033E74 + add sp, #0x30 + pop {r4, pc} + nop +_0222F6D8: .word 0x00000E6C + thumb_func_end MOD80_0222F690 + + thumb_func_start MOD80_0222F6DC +MOD80_0222F6DC: ; 0x0222F6DC + ldr r1, _0222F6E4 ; =0x00000E6C + ldr r3, _0222F6E8 ; =FUN_0201FFC8 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_0222F6E4: .word 0x00000E6C +_0222F6E8: .word FUN_0201FFC8 + thumb_func_end MOD80_0222F6DC + + thumb_func_start MOD80_0222F6EC +MOD80_0222F6EC: ; 0x0222F6EC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r0, [sp, #0x14] + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r2, _0222F7A8 ; =0x00000E98 + ldr r1, [sp, #0x14] + ldr r0, [r0, #4] + add r1, r1, r2 + mov r2, #0 + bl FUN_02019064 + ldr r1, _0222F7A8 ; =0x00000E98 + ldr r0, [sp, #0x14] + add r0, r0, r1 + mov r1, #0 + bl FUN_02019620 + mov r0, #0xf + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x5e + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r2, _0222F7AC ; =0x00000ED8 + ldr r1, [sp, #0x14] + ldr r0, [r0, #4] + add r1, r1, r2 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + ldr r1, _0222F7B0 ; =0x00000F08 + ldr r0, [sp, #0x14] + ldr r4, _0222F7B4 ; =0x02236FE4 + mov r6, #0x86 + mov r7, #0 + add r5, r0, r1 +_0222F754: + ldr r0, [r4, #4] + add r1, r5, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r4, #8] + mov r2, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, [r4, #0xc] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r3, [r4] + ldr r0, [r0, #4] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + ldr r1, [r4, #8] + ldr r0, [r4, #0xc] + add r7, r7, #1 + mul r0, r1 + add r6, r6, r0 + add r4, #0x10 + add r5, #0x10 + cmp r7, #0xa + blt _0222F754 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222F7A8: .word 0x00000E98 +_0222F7AC: .word 0x00000ED8 +_0222F7B0: .word 0x00000F08 +_0222F7B4: .word 0x02236FE4 + thumb_func_end MOD80_0222F6EC + + thumb_func_start MOD80_0222F7B8 +MOD80_0222F7B8: ; 0x0222F7B8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _0222F7E4 ; =0x00000E98 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _0222F7E8 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _0222F7EC ; =0x00000F08 + mov r4, #0 + add r5, r5, r0 +_0222F7D2: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #0xa + blt _0222F7D2 + pop {r3, r4, r5, pc} + nop +_0222F7E4: .word 0x00000E98 +_0222F7E8: .word 0x00000ED8 +_0222F7EC: .word 0x00000F08 + thumb_func_end MOD80_0222F7B8 + + thumb_func_start MOD80_0222F7F0 +MOD80_0222F7F0: ; 0x0222F7F0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _0222F82C ; =0x00000B4C + str r0, [r5, r1] + sub r1, #0x18 + ldr r0, [r5, r1] + mov r1, #0x27 + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r5, r1] + mov r4, #0 + mov r7, #0x14 + add r6, r1, #4 +_0222F816: + add r0, r7, #0 + mov r1, #0x3e + bl FUN_020219F4 + str r0, [r5, r6] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xa + blt _0222F816 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222F82C: .word 0x00000B4C + thumb_func_end MOD80_0222F7F0 + + thumb_func_start MOD80_0222F830 +MOD80_0222F830: ; 0x0222F830 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + ldr r6, _0222F85C ; =0x00000B54 + mov r4, #0 + add r5, r7, #0 +_0222F83A: + ldr r0, [r5, r6] + bl FUN_02021A20 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0xa + blt _0222F83A + ldr r0, _0222F860 ; =0x00000B4C + ldr r0, [r7, r0] + bl FUN_02021A20 + mov r0, #0xb5 + lsl r0, r0, #4 + ldr r0, [r7, r0] + bl FUN_02021A20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222F85C: .word 0x00000B54 +_0222F860: .word 0x00000B4C + thumb_func_end MOD80_0222F830 + + thumb_func_start MOD80_0222F864 +MOD80_0222F864: ; 0x0222F864 + mov r1, #1 + str r1, [r0, #0x2c] + mov r0, #3 + bx lr + thumb_func_end MOD80_0222F864 + + thumb_func_start MOD80_0222F86C +MOD80_0222F86C: ; 0x0222F86C + push {r4, lr} + sub sp, #8 + ldr r1, _0222F8C0 ; =0x021C48B8 + mov r2, #1 + ldr r3, [r1, #0x48] + add r4, r0, #0 + add r1, r3, #0 + tst r1, r2 + beq _0222F8A2 + ldr r1, _0222F8C4 ; =0x00000F0F + mov r3, #0 + str r1, [sp] + add r1, r4, #0 + add r1, #0xd4 + str r1, [sp, #4] + mov r1, #5 + bl MOD80_0222FB3C + add r0, r4, #0 + mov r1, #3 + mov r2, #7 + bl MOD80_0222E6DC + ldr r0, _0222F8C8 ; =0x000005DC + bl FUN_020054C8 + b _0222F8B8 +_0222F8A2: + mov r1, #2 + tst r3, r1 + beq _0222F8B8 + str r1, [r4, #0x2c] + add r1, r2, #0 + mov r2, #0 + bl MOD80_0222E7A8 + ldr r0, _0222F8C8 ; =0x000005DC + bl FUN_020054C8 +_0222F8B8: + mov r0, #3 + add sp, #8 + pop {r4, pc} + nop +_0222F8C0: .word 0x021C48B8 +_0222F8C4: .word 0x00000F0F +_0222F8C8: .word 0x000005DC + thumb_func_end MOD80_0222F86C + + thumb_func_start MOD80_0222F8CC +MOD80_0222F8CC: ; 0x0222F8CC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #6 + mov r1, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD80_0222F8CC + + thumb_func_start MOD80_0222F8F4 +MOD80_0222F8F4: ; 0x0222F8F4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _0222F910 ; =0x0000014E + mov r1, #0xf + bl MOD80_0222E6A8 + ldr r1, _0222F914 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #6 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + nop +_0222F910: .word 0x0000014E +_0222F914: .word 0x00000FCC + thumb_func_end MOD80_0222F8F4 + + thumb_func_start MOD80_0222F918 +MOD80_0222F918: ; 0x0222F918 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222F960 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0222F95C + sub r1, r1, #1 + cmp r0, r1 + bne _0222F942 + ldr r0, _0222F964 ; =0x00000E98 + mov r1, #0 + add r0, r4, r0 + str r1, [r4, #0x2c] + bl FUN_0200D0E0 + b _0222F956 +_0222F942: + mov r0, #2 + str r0, [r4, #0x2c] + ldr r0, _0222F968 ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #7 + mov r2, #8 + bl MOD80_0222E7A8 +_0222F956: + add r0, r4, #0 + bl MOD80_0222FE18 +_0222F95C: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F960: .word 0x00000FCC +_0222F964: .word 0x00000E98 +_0222F968: .word 0x0000100C + thumb_func_end MOD80_0222F918 + + thumb_func_start MOD80_0222F96C +MOD80_0222F96C: ; 0x0222F96C + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0 + add r2, sp, #8 + strb r0, [r2, #8] + mov r0, #1 + strb r0, [r2, #9] + mov r0, #2 + strb r0, [r2, #0xa] + ldrb r3, [r2, #0xb] + mov r1, #0xf + bic r3, r1 + strb r3, [r2, #0xb] + ldrb r3, [r2, #0xb] + mov r1, #0x30 + bic r3, r1 + strb r3, [r2, #0xb] + ldrb r3, [r2, #0xb] + mov r1, #0xc0 + bic r3, r1 + mov r1, #0x3e + strb r3, [r2, #0xb] + bl FUN_02012838 + ldr r1, _0222F9FC ; =0x00000FC8 + mov r2, #0x36 + str r0, [r4, r1] + ldr r0, [r4, r1] + ldr r1, _0222FA00 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl FUN_02012880 + ldr r0, _0222F9FC ; =0x00000FC8 + ldr r1, _0222FA00 ; =0x00000B34 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x37 + mov r3, #2 + bl FUN_02012880 + ldr r0, _0222F9FC ; =0x00000FC8 + mov r2, #0x1f + ldr r1, [r4, r0] + sub r0, #0xf0 + str r1, [sp, #8] + add r0, r4, r0 + mov r1, #0 + mov r3, #0xb + str r0, [sp, #0xc] + bl FUN_0200CCA4 + mov r0, #0x3e + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #8 + mov r1, #9 + add r3, r2, #0 + bl FUN_02001C14 + mov r1, #0xfd + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #8 + str r0, [r4, #0x2c] + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_0222F9FC: .word 0x00000FC8 +_0222FA00: .word 0x00000B34 + thumb_func_end MOD80_0222F96C + + thumb_func_start MOD80_0222FA04 +MOD80_0222FA04: ; 0x0222FA04 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02001C78 + cmp r0, #1 + beq _0222FA26 + cmp r0, #2 + beq _0222FAA4 + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0222FAA4 + b _0222FAD6 +_0222FA26: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0222FADC ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _0222FAE0 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + add r4, r5, #0 + add r4, #0xd4 + add r0, r4, #0 + bl MOD80_022331F8 + cmp r0, #0 + beq _0222FA80 + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_0206B9AC + cmp r0, #6 + bne _0222FA80 + ldr r0, _0222FAE4 ; =0x00000F0F + mov r1, #0x24 + str r0, [sp] + add r0, r5, #0 + mov r2, #1 + mov r3, #0 + str r4, [sp, #4] + bl MOD80_0222FB3C + add r0, r5, #0 + mov r1, #3 + mov r2, #1 + bl MOD80_0222E6DC + add sp, #8 + mov r0, #3 + pop {r3, r4, r5, pc} +_0222FA80: + ldr r0, _0222FAE4 ; =0x00000F0F + mov r1, #6 + str r0, [sp] + add r0, r5, #0 + mov r2, #1 + mov r3, #0 + str r4, [sp, #4] + bl MOD80_0222FB3C + add r0, r5, #0 + mov r1, #3 + mov r2, #5 + bl MOD80_0222E6DC + add r0, r5, #0 + bl MOD80_0222FE18 + b _0222FAD6 +_0222FAA4: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0222FADC ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _0222FAE0 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + mov r0, #2 + str r0, [r5, #0x2c] + add r0, r5, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + add r0, r5, #0 + bl MOD80_0222FE18 +_0222FAD6: + mov r0, #3 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222FADC: .word 0x00000FC8 +_0222FAE0: .word 0x00000ED8 +_0222FAE4: .word 0x00000F0F + thumb_func_end MOD80_0222FA04 + + thumb_func_start MOD80_0222FAE8 +MOD80_0222FAE8: ; 0x0222FAE8 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0222FB02 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_0222FB02: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_0222FAE8 + + thumb_func_start MOD80_0222FB08 +MOD80_0222FB08: ; 0x0222FB08 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0222FB34 + ldr r0, _0222FB38 ; =0x00000FDC + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0x2d + ble _0222FB34 + mov r1, #0 + str r1, [r4, r0] + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_0222FB34: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222FB38: .word 0x00000FDC + thumb_func_end MOD80_0222FB08 + + thumb_func_start MOD80_0222FB3C +MOD80_0222FB3C: ; 0x0222FB3C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, [sp, #0x24] + add r6, r1, #0 + add r4, r2, #0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200AC60 + ldr r0, _0222FBB4 ; =0x00000B34 + add r1, r6, #0 + ldr r0, [r5, r0] + bl FUN_0200A914 + mov r1, #0xb3 + add r6, r0, #0 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, #0x1c + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + ldr r0, _0222FBB8 ; =0x00000E98 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _0222FBB8 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _0222FBB8 ; =0x00000E98 + ldr r2, _0222FBBC ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222FBB4: .word 0x00000B34 +_0222FBB8: .word 0x00000E98 +_0222FBBC: .word 0x00000B4C + thumb_func_end MOD80_0222FB3C + + thumb_func_start MOD80_0222FBC0 +MOD80_0222FBC0: ; 0x0222FBC0 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r5, r0, #0 + str r1, [sp, #8] + mov r0, #0x16 + mov r1, #0x3e + add r7, r2, #0 + add r6, r3, #0 + ldr r4, [sp, #0x4c] + bl FUN_020219F4 + str r0, [sp, #0x1c] + mov r0, #0x12 + mov r1, #0x3e + bl FUN_020219F4 + str r0, [sp, #0x18] + ldr r0, [sp, #0x48] + ldr r2, [sp, #0x1c] + mov r1, #0x76 + bl FUN_020672BC + mov r2, #0 + ldrsh r0, [r4, r2] + mov r1, #6 + str r0, [sp, #0x10] + mov r0, #2 + ldrsb r0, [r4, r0] + str r0, [sp, #0x14] + mov r0, #3 + ldrsb r4, [r4, r0] + ldr r0, [sp, #0x48] + bl FUN_020672BC + str r0, [sp, #0x30] + add r0, r5, #0 + mov r1, #0x46 + bl FUN_0200A914 + str r0, [sp, #0x20] + ldr r0, [sp, #0x14] + ldr r2, _0222FD1C ; =0x022373C0 + lsl r0, r0, #2 + str r0, [sp, #0xc] + ldr r1, [sp, #0xc] + add r0, r5, #0 + ldr r1, [r2, r1] + bl FUN_0200A914 + str r0, [sp, #0x28] + mov r0, #0 + str r0, [sp] + mov r0, #1 + mov r1, #3 + str r0, [sp, #4] + add r0, r7, #0 + add r2, r4, #0 + add r3, r1, #0 + bl FUN_0200AD38 + add r0, r7, #0 + add r1, r5, #0 + mov r2, #0x66 + mov r3, #0x3e + bl FUN_0200A9C4 + str r0, [sp, #0x24] + ldr r0, [sp, #8] + ldr r1, [sp, #0x10] + bl FUN_0200A914 + ldr r1, [sp, #0x30] + str r0, [sp, #0x2c] + lsl r1, r1, #0x10 + ldr r0, [sp, #0x18] + lsr r1, r1, #0x10 + mov r2, #0x3e + bl FUN_0206E768 + mov r4, #0 + add r5, r6, #0 + add r7, r4, #0 +_0222FC64: + add r0, r5, #0 + add r1, r7, #0 + bl FUN_02019620 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #5 + blt _0222FC64 + mov r2, #0 + ldr r0, _0222FD20 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + ldr r1, [sp, #0x1c] + add r0, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + ldr r0, [sp, #0x14] + cmp r0, #3 + beq _0222FCA2 + mov r3, #0 + ldr r1, _0222FD24 ; =0x02237A34 + ldr r0, [sp, #0xc] + str r3, [sp] + ldr r0, [r1, r0] + ldr r1, [sp, #0x28] + str r0, [sp, #4] + add r0, r6, #0 + mov r2, #0x46 + bl MOD80_02236D50 +_0222FCA2: + mov r2, #0 + ldr r0, _0222FD20 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r6, #0 + ldr r1, [sp, #0x2c] + add r0, #0x10 + add r3, r2, #0 + bl MOD80_02236D50 + mov r0, #2 + str r0, [sp] + ldr r0, _0222FD20 ; =0x000F0200 + mov r2, #0 + str r0, [sp, #4] + add r0, r6, #0 + ldr r1, [sp, #0x24] + add r0, #0x20 + add r3, r2, #0 + bl MOD80_02236D50 + mov r2, #0 + ldr r0, _0222FD20 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r6, #0 + ldr r1, [sp, #0x20] + add r0, #0x30 + add r3, r2, #0 + bl MOD80_02236D50 + mov r2, #0 + ldr r0, _0222FD20 ; =0x000F0200 + str r2, [sp] + add r6, #0x40 + str r0, [sp, #4] + ldr r1, [sp, #0x18] + add r0, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + ldr r0, [sp, #0x20] + bl FUN_02021A20 + ldr r0, [sp, #0x18] + bl FUN_02021A20 + ldr r0, [sp, #0x24] + bl FUN_02021A20 + ldr r0, [sp, #0x28] + bl FUN_02021A20 + ldr r0, [sp, #0x1c] + bl FUN_02021A20 + ldr r0, [sp, #0x2c] + bl FUN_02021A20 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222FD1C: .word 0x022373C0 +_0222FD20: .word 0x000F0200 +_0222FD24: .word 0x02237A34 + thumb_func_end MOD80_0222FBC0 + + thumb_func_start MOD80_0222FD28 +MOD80_0222FD28: ; 0x0222FD28 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r0, #0 + add r5, r1, #0 + mov r0, #0x10 + mov r1, #0x3e + add r7, r2, #0 + bl FUN_020219F4 + add r4, r0, #0 + add r0, r6, #0 + mov r1, #0x30 + bl FUN_0200A914 + add r6, r0, #0 + add r0, r4, #0 + add r1, r7, #0 + bl FUN_02021E28 + mov r2, #0 + ldr r0, _0222FD84 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r1, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + mov r2, #0 + ldr r0, _0222FD84 ; =0x000F0200 + str r2, [sp] + add r5, #0x10 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + add r3, r2, #0 + bl MOD80_02236D50 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222FD84: .word 0x000F0200 + thumb_func_end MOD80_0222FD28 + + thumb_func_start MOD80_0222FD88 +MOD80_0222FD88: ; 0x0222FD88 + push {r4, r5, r6, lr} + sub sp, #0x30 + mov r1, #0x32 + add r5, r0, #0 + mov r0, #0x3e + lsl r1, r1, #6 + bl FUN_02016998 + add r4, r0, #0 + add r0, sp, #0x20 + add r1, r5, #0 + mov r2, #2 + bl FUN_02068B68 + mov r1, #0 + add r0, r5, #0 + add r2, r1, #0 + bl FUN_020671BC + add r6, r0, #0 + add r0, r5, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + mov r3, #0 + str r3, [sp] + mov r1, #0xa + str r1, [sp, #4] + str r1, [sp, #8] + str r4, [sp, #0xc] + str r6, [sp, #0x10] + str r3, [sp, #0x14] + mov r1, #2 + str r1, [sp, #0x18] + str r0, [sp, #0x1c] + add r1, sp, #0x20 + ldrh r0, [r1] + ldrh r1, [r1, #2] + mov r2, #0x3e + bl FUN_020124B4 + mov r1, #0x32 + add r0, r4, #0 + lsl r1, r1, #6 + bl DC_FlushRange + mov r1, #0x4a + mov r2, #0x32 + add r0, r4, #0 + lsl r1, r1, #8 + lsl r2, r2, #6 + bl GX_LoadOBJ + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3e + mov r3, #0x1a + str r0, [sp, #4] + add r1, sp, #0x20 + ldrh r0, [r1] + ldrh r1, [r1, #4] + mov r2, #1 + lsl r3, r3, #4 + bl FUN_02006930 + add r0, r4, #0 + bl FUN_02016A18 + add sp, #0x30 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD80_0222FD88 + + thumb_func_start MOD80_0222FE18 +MOD80_0222FE18: ; 0x0222FE18 + push {r3, r4, lr} + sub sp, #0xc + ldr r1, _0222FE54 ; =0x000001C7 + add r4, r0, #0 + ldrsb r0, [r4, r1] + add r1, r1, #1 + ldrsb r1, [r4, r1] + bl MOD80_02234668 + mov r1, #0x71 + lsl r1, r1, #2 + ldrsh r2, [r4, r1] + add r1, r1, #2 + ldr r3, _0222FE58 ; =0x00000F78 + str r2, [sp] + ldrsb r1, [r4, r1] + ldr r2, _0222FE5C ; =0x00000B34 + add r3, r4, r3 + str r1, [sp, #4] + str r0, [sp, #8] + add r1, r2, #4 + ldr r0, [r4, r2] + sub r2, r2, #4 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + bl MOD80_02234048 + add sp, #0xc + pop {r3, r4, pc} + nop +_0222FE54: .word 0x000001C7 +_0222FE58: .word 0x00000F78 +_0222FE5C: .word 0x00000B34 + thumb_func_end MOD80_0222FE18 + + thumb_func_start MOD80_0222FE60 +MOD80_0222FE60: ; 0x0222FE60 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_0223022C + ldr r0, [r4, #4] + bl MOD80_0222FF6C + add r0, r4, #0 + bl MOD80_02230054 + add r0, r4, #0 + bl MOD80_02230128 + add r0, r4, #0 + bl MOD80_022300CC + add r0, r4, #0 + add r0, #0xc4 + ldr r1, [r0] + mov r0, #0x49 + lsl r0, r0, #2 + add r5, r1, #0 + mul r5, r0 + add r0, #0xd4 + add r0, r4, r0 + add r0, r0, r5 + bl FUN_020690E4 + str r0, [sp] + mov r0, #0xb9 + lsl r0, r0, #2 + add r0, r4, r0 + ldr r2, _0222FF24 ; =0x00000B34 + add r0, r0, r5 + str r0, [sp, #4] + add r1, r2, #4 + ldr r0, [r4, r2] + sub r2, r2, #4 + ldr r3, _0222FF28 ; =0x00000F08 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + add r3, r4, r3 + bl MOD80_0222FBC0 + add r3, r4, #0 + add r3, #0xc4 + ldr r0, _0222FF24 ; =0x00000B34 + mov r2, #0xc1 + ldr r5, [r3] + mov r3, #0x49 + ldr r1, _0222FF2C ; =0x00000F58 + lsl r2, r2, #2 + lsl r3, r3, #2 + ldr r0, [r4, r0] + add r2, r4, r2 + mul r3, r5 + add r1, r4, r1 + add r2, r2, r3 + bl MOD80_0222FD28 + add r0, r4, #0 + mov r1, #0x7e + add r0, #0xc4 + lsl r1, r1, #2 + add r2, r4, r1 + ldr r0, [r0] + sub r1, #0xd4 + mul r1, r0 + add r0, r2, r1 + bl MOD80_0222FD88 + ldr r0, _0222FF24 ; =0x00000B34 + ldr r1, _0222FF30 ; =0x00000F78 + ldr r0, [r4, r0] + add r1, r4, r1 + bl MOD80_02230550 + add r0, r4, #0 + bl MOD80_0223043C + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #2 + add sp, #0xc + pop {r4, r5, pc} + nop +_0222FF24: .word 0x00000B34 +_0222FF28: .word 0x00000F08 +_0222FF2C: .word 0x00000F58 +_0222FF30: .word 0x00000F78 + thumb_func_end MOD80_0222FE60 + + thumb_func_start MOD80_0222FF34 +MOD80_0222FF34: ; 0x0222FF34 + push {r3, lr} + ldr r1, [r0, #0x2c] + lsl r2, r1, #2 + ldr r1, _0222FF44 ; =0x02237A64 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + nop +_0222FF44: .word 0x02237A64 + thumb_func_end MOD80_0222FF34 + + thumb_func_start MOD80_0222FF48 +MOD80_0222FF48: ; 0x0222FF48 + push {r4, lr} + add r4, r0, #0 + bl MOD80_02230118 + add r0, r4, #0 + bl MOD80_022302C4 + add r0, r4, #0 + bl MOD80_022301F4 + ldr r0, [r4, #4] + bl MOD80_02230030 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_0222FF48 + + thumb_func_start MOD80_0222FF6C +MOD80_0222FF6C: ; 0x0222FF6C + push {r3, r4, r5, lr} + sub sp, #0x70 + ldr r5, _02230020 ; =0x022370D8 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x54 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _02230024 ; =0x022370BC + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _02230028 ; =0x022370A0 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _0223002C ; =0x02237084 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + add sp, #0x70 + pop {r3, r4, r5, pc} + nop +_02230020: .word 0x022370D8 +_02230024: .word 0x022370BC +_02230028: .word 0x022370A0 +_0223002C: .word 0x02237084 + thumb_func_end MOD80_0222FF6C + + thumb_func_start MOD80_02230030 +MOD80_02230030: ; 0x02230030 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_02230030 + + thumb_func_start MOD80_02230054 +MOD80_02230054: ; 0x02230054 + push {r3, r4, r5, lr} + sub sp, #0x10 + mov r1, #0x1a + add r5, r0, #0 + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + ldr r4, [r5, #4] + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #0xa + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x11 + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #7 + add r3, r2, #0 + bl FUN_02006930 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD80_02230054 + + thumb_func_start MOD80_022300CC +MOD80_022300CC: ; 0x022300CC + push {r4, lr} + sub sp, #0x30 + mov r2, #0xcf + add r4, r0, #0 + lsl r2, r2, #4 + add r0, sp, #0 + add r1, r4, #0 + add r2, r4, r2 + mov r3, #1 + bl MOD80_0222E5E8 + mov r0, #0x32 + lsl r0, r0, #0xe + str r0, [sp, #8] + mov r0, #0x3a + lsl r0, r0, #0xc + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _02230114 ; =0x00000E6C + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_020200BC + ldr r0, _02230114 ; =0x00000E6C + mov r1, #0x25 + ldr r0, [r4, r0] + bl FUN_02020130 + bl FUN_02033E74 + add sp, #0x30 + pop {r4, pc} + nop +_02230114: .word 0x00000E6C + thumb_func_end MOD80_022300CC + + thumb_func_start MOD80_02230118 +MOD80_02230118: ; 0x02230118 + ldr r1, _02230120 ; =0x00000E6C + ldr r3, _02230124 ; =FUN_0201FFC8 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_02230120: .word 0x00000E6C +_02230124: .word FUN_0201FFC8 + thumb_func_end MOD80_02230118 + + thumb_func_start MOD80_02230128 +MOD80_02230128: ; 0x02230128 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r0, [sp, #0x14] + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r2, _022301E4 ; =0x00000E98 + ldr r1, [sp, #0x14] + ldr r0, [r0, #4] + add r1, r1, r2 + mov r2, #0 + bl FUN_02019064 + ldr r1, _022301E4 ; =0x00000E98 + ldr r0, [sp, #0x14] + add r0, r0, r1 + mov r1, #0 + bl FUN_02019620 + mov r0, #0xf + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x5e + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r2, _022301E8 ; =0x00000ED8 + ldr r1, [sp, #0x14] + ldr r0, [r0, #4] + add r1, r1, r2 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + ldr r1, _022301EC ; =0x00000F08 + ldr r0, [sp, #0x14] + ldr r4, _022301F0 ; =0x022370F4 + mov r6, #0x86 + mov r7, #0 + add r5, r0, r1 +_02230190: + ldr r0, [r4, #4] + add r1, r5, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r4, #8] + mov r2, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, [r4, #0xc] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r3, [r4] + ldr r0, [r0, #4] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + ldr r1, [r4, #8] + ldr r0, [r4, #0xc] + add r7, r7, #1 + mul r0, r1 + add r6, r6, r0 + add r4, #0x10 + add r5, #0x10 + cmp r7, #0xa + blo _02230190 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_022301E4: .word 0x00000E98 +_022301E8: .word 0x00000ED8 +_022301EC: .word 0x00000F08 +_022301F0: .word 0x022370F4 + thumb_func_end MOD80_02230128 + + thumb_func_start MOD80_022301F4 +MOD80_022301F4: ; 0x022301F4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _02230220 ; =0x00000E98 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02230224 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02230228 ; =0x00000F08 + mov r4, #0 + add r5, r5, r0 +_0223020E: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #0xa + blo _0223020E + pop {r3, r4, r5, pc} + nop +_02230220: .word 0x00000E98 +_02230224: .word 0x00000ED8 +_02230228: .word 0x00000F08 + thumb_func_end MOD80_022301F4 + + thumb_func_start MOD80_0223022C +MOD80_0223022C: ; 0x0223022C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r1, #0x7e + add r0, #0xc4 + lsl r1, r1, #2 + add r2, r5, r1 + ldr r0, [r0] + sub r1, #0xd4 + mul r1, r0 + add r4, r2, r1 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _022302B0 ; =0x00000B4C + str r0, [r5, r1] + sub r1, #0x1c + ldr r0, [r5, r1] + bl FUN_0200B84C + ldr r0, _022302B4 ; =0x0000011E + ldrb r2, [r4, r0] + cmp r2, #0 + beq _02230268 + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #8 + bl FUN_0200B4A0 +_02230268: + ldr r2, _022302B8 ; =0x0000011F + ldrb r3, [r4, r2] + cmp r3, #0 + beq _02230280 + mov r0, #0xb3 + sub r2, r2, #1 + lsl r0, r0, #4 + ldrb r2, [r4, r2] + ldr r0, [r5, r0] + mov r1, #9 + bl FUN_0200B4D8 +_02230280: + mov r1, #0xb3 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r2, #0x4f + mov r3, #0x3e + bl FUN_0200A9C4 + ldr r1, _022302BC ; =0x00000B54 + mov r2, #0x50 + str r0, [r5, r1] + add r0, r1, #0 + sub r0, #0x24 + sub r1, #0x20 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + mov r3, #0x3e + bl FUN_0200A9C4 + ldr r1, _022302C0 ; =0x00000B58 + str r0, [r5, r1] + pop {r3, r4, r5, pc} + nop +_022302B0: .word 0x00000B4C +_022302B4: .word 0x0000011E +_022302B8: .word 0x0000011F +_022302BC: .word 0x00000B54 +_022302C0: .word 0x00000B58 + thumb_func_end MOD80_0223022C + + thumb_func_start MOD80_022302C4 +MOD80_022302C4: ; 0x022302C4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022302E4 ; =0x00000B54 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _022302E8 ; =0x00000B58 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _022302EC ; =0x00000B4C + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + nop +_022302E4: .word 0x00000B54 +_022302E8: .word 0x00000B58 +_022302EC: .word 0x00000B4C + thumb_func_end MOD80_022302C4 + + thumb_func_start MOD80_022302F0 +MOD80_022302F0: ; 0x022302F0 + mov r1, #1 + str r1, [r0, #0x2c] + mov r0, #3 + bx lr + thumb_func_end MOD80_022302F0 + + thumb_func_start MOD80_022302F8 +MOD80_022302F8: ; 0x022302F8 + push {r3, r4, r5, lr} + ldr r1, _02230388 ; =0x021C48B8 + mov r2, #1 + ldr r1, [r1, #0x48] + add r4, r0, #0 + add r3, r1, #0 + tst r3, r2 + beq _02230326 + ldr r1, _0223038C ; =0x00000F0F + mov r3, #0 + str r1, [sp] + mov r1, #0x10 + bl MOD80_022304F8 + add r0, r4, #0 + mov r1, #3 + mov r2, #4 + bl MOD80_0222E6DC + ldr r0, _02230390 ; =0x000005DC + bl FUN_020054C8 + b _02230384 +_02230326: + mov r3, #2 + add r5, r1, #0 + tst r5, r3 + beq _02230340 + mov r1, #4 + mov r2, #0 + str r3, [r4, #0x2c] + bl MOD80_0222E7A8 + ldr r0, _02230390 ; =0x000005DC + bl FUN_020054C8 + b _02230384 +_02230340: + mov r0, #0x10 + tst r0, r1 + beq _02230362 + add r0, r4, #0 + add r0, #0xb6 + ldrh r0, [r0] + cmp r0, #0 + bne _02230384 + add r0, r4, #0 + add r0, #0xb6 + strh r2, [r0] + mov r0, #6 + str r0, [r4, #0x2c] + ldr r0, _02230390 ; =0x000005DC + bl FUN_020054C8 + b _02230384 +_02230362: + mov r0, #0x20 + tst r0, r1 + beq _02230384 + add r0, r4, #0 + add r0, #0xb6 + ldrh r0, [r0] + cmp r0, #0 + beq _02230384 + add r0, r4, #0 + mov r1, #0 + add r0, #0xb6 + strh r1, [r0] + mov r0, #6 + str r0, [r4, #0x2c] + ldr r0, _02230390 ; =0x000005DC + bl FUN_020054C8 +_02230384: + mov r0, #3 + pop {r3, r4, r5, pc} + .align 2, 0 +_02230388: .word 0x021C48B8 +_0223038C: .word 0x00000F0F +_02230390: .word 0x000005DC + thumb_func_end MOD80_022302F8 + + thumb_func_start MOD80_02230394 +MOD80_02230394: ; 0x02230394 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, _022303D0 ; =0x00000B34 + ldr r1, _022303D4 ; =0x00000F78 + ldr r0, [r4, r0] + add r1, r4, r1 + bl MOD80_02230550 + add r0, r4, #0 + bl MOD80_0223043C + mov r1, #0 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + nop +_022303D0: .word 0x00000B34 +_022303D4: .word 0x00000F78 + thumb_func_end MOD80_02230394 + + thumb_func_start MOD80_022303D8 +MOD80_022303D8: ; 0x022303D8 + push {r4, lr} + add r4, r0, #0 + mov r2, #0x73 + ldr r0, [r4, #4] + mov r1, #0xf + lsl r2, r2, #2 + bl MOD80_0222E6A8 + ldr r1, _022303F4 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #5 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022303F4: .word 0x00000FCC + thumb_func_end MOD80_022303D8 + + thumb_func_start MOD80_022303F8 +MOD80_022303F8: ; 0x022303F8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02230438 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02230432 + sub r1, r1, #1 + cmp r0, r1 + bne _02230424 + mov r0, #2 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #4 + mov r2, #0 + bl MOD80_0222E7A8 + b _02230432 +_02230424: + mov r0, #2 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #5 + mov r2, #6 + bl MOD80_0222E7A8 +_02230432: + mov r0, #3 + pop {r4, pc} + nop +_02230438: .word 0x00000FCC + thumb_func_end MOD80_022303F8 + + thumb_func_start MOD80_0223043C +MOD80_0223043C: ; 0x0223043C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + add r0, #0xb6 + ldrh r0, [r0] + cmp r0, #0 + bne _0223048C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x68 + mov r1, #0x1b + bl FUN_020068C8 + ldr r2, _022304BC ; =0x00000B34 + ldr r0, _022304C0 ; =0x00000F98 + mov r3, #0xba + ldr r1, [r4, r2] + add r2, r2, #4 + lsl r3, r3, #2 + add r0, r4, r0 + ldr r2, [r4, r2] + add r3, r4, r3 + add r4, #0xc4 + ldr r5, [r4] + mov r4, #0x49 + lsl r4, r4, #2 + mul r4, r5 + add r3, r3, r4 + bl MOD80_022305A8 + add sp, #0x10 + pop {r3, r4, r5, pc} +_0223048C: + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x68 + mov r1, #0x1c + bl FUN_020068C8 + ldr r2, _022304C4 ; =0x00000B54 + ldr r0, _022304C0 ; =0x00000F98 + ldr r1, [r4, r2] + add r2, r2, #4 + ldr r2, [r4, r2] + add r0, r4, r0 + bl MOD80_02230614 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_022304BC: .word 0x00000B34 +_022304C0: .word 0x00000F98 +_022304C4: .word 0x00000B54 + thumb_func_end MOD80_0223043C + + thumb_func_start MOD80_022304C8 +MOD80_022304C8: ; 0x022304C8 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0223043C + mov r0, #1 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_022304C8 + + thumb_func_start MOD80_022304D8 +MOD80_022304D8: ; 0x022304D8 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _022304F2 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_022304F2: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_022304D8 + + thumb_func_start MOD80_022304F8 +MOD80_022304F8: ; 0x022304F8 + push {r4, r5, lr} + sub sp, #0xc + add r4, r2, #0 + ldr r2, _02230544 ; =0x00000B34 + add r5, r0, #0 + ldr r0, [r5, r2] + add r2, #0x18 + ldr r2, [r5, r2] + bl FUN_0200A8E0 + ldr r0, _02230548 ; =0x00000E98 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _02230548 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _02230548 ; =0x00000E98 + ldr r2, _0223054C ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_02230544: .word 0x00000B34 +_02230548: .word 0x00000E98 +_0223054C: .word 0x00000B4C + thumb_func_end MOD80_022304F8 + + thumb_func_start MOD80_02230550 +MOD80_02230550: ; 0x02230550 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r1, #0 + add r6, r0, #0 + mov r1, #0x4a + bl FUN_0200A914 + add r4, r0, #0 + add r0, r6, #0 + mov r1, #0x4e + bl FUN_0200A914 + add r6, r0, #0 + mov r2, #0 + ldr r0, _022305A4 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + mov r3, #2 + bl MOD80_02236D50 + mov r0, #1 + str r0, [sp] + ldr r0, _022305A4 ; =0x000F0200 + add r5, #0x10 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r6, #0 + mov r2, #0 + mov r3, #2 + bl MOD80_02236D50 + add r0, r4, #0 + bl FUN_02021A20 + add r0, r6, #0 + bl FUN_02021A20 + add sp, #8 + pop {r4, r5, r6, pc} + nop +_022305A4: .word 0x000F0200 + thumb_func_end MOD80_02230550 + + thumb_func_start MOD80_022305A8 +MOD80_022305A8: ; 0x022305A8 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r6, r1, #0 + mov r1, #0 + add r5, r0, #0 + add r7, r2, #0 + add r4, r3, #0 + bl FUN_02019620 + mov r0, #3 + str r0, [sp] + ldr r0, _02230610 ; =0x000F0200 + mov r3, #0 + str r0, [sp, #4] + ldrsh r2, [r4, r3] + add r0, r5, #0 + add r1, r7, #0 + bl MOD80_02233EA4 + mov r0, #3 + str r0, [sp] + mov r0, #0x46 + str r0, [sp, #4] + ldr r0, _02230610 ; =0x000F0200 + mov r2, #2 + str r0, [sp, #8] + ldrsb r2, [r4, r2] + add r0, r5, #0 + add r1, r6, #0 + mov r3, #0 + bl MOD80_02233EF4 + mov r0, #3 + mov r1, #4 + ldrsb r0, [r4, r0] + ldrsb r1, [r4, r1] + bl MOD80_02234668 + add r2, r0, #0 + mov r0, #0x13 + str r0, [sp] + ldr r0, _02230610 ; =0x000F0200 + add r1, r6, #0 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + add r0, r5, #0 + mov r3, #0 + bl MOD80_02233F5C + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02230610: .word 0x000F0200 + thumb_func_end MOD80_022305A8 + + thumb_func_start MOD80_02230614 +MOD80_02230614: ; 0x02230614 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r1, #0 + mov r1, #0 + add r6, r0, #0 + add r4, r2, #0 + bl FUN_02019620 + cmp r5, #0 + beq _0223063A + mov r2, #0 + ldr r0, _02230658 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r6, #0 + add r1, r5, #0 + mov r3, #3 + bl MOD80_02236D50 +_0223063A: + cmp r4, #0 + beq _02230652 + mov r0, #0 + str r0, [sp] + ldr r0, _02230658 ; =0x000F0200 + add r1, r4, #0 + str r0, [sp, #4] + add r0, r6, #0 + mov r2, #8 + mov r3, #0x13 + bl MOD80_02236D50 +_02230652: + add sp, #8 + pop {r4, r5, r6, pc} + nop +_02230658: .word 0x000F0200 + thumb_func_end MOD80_02230614 + + thumb_func_start MOD80_0223065C +MOD80_0223065C: ; 0x0223065C + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_02230AC0 + ldr r0, [r4, #4] + bl MOD80_02230760 + add r0, r4, #0 + bl MOD80_02230840 + add r0, r4, #0 + bl MOD80_02230944 + add r0, r4, #0 + bl MOD80_022308EC + ldr r1, _02230708 ; =0x00000B34 + ldr r0, _0223070C ; =0x00000F08 + ldr r1, [r4, r1] + add r0, r4, r0 + bl MOD80_022318D4 + mov r0, #0 + str r0, [sp] + ldr r0, _02230710 ; =0x00010200 + ldr r2, _02230714 ; =0x00000B38 + str r0, [sp, #4] + ldr r1, [r4, r2] + sub r2, #0x16 + ldr r0, _02230718 ; =0x00000F18 + ldrsh r2, [r4, r2] + add r0, r4, r0 + mov r3, #2 + bl MOD80_02233EA4 + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _02230710 ; =0x00010200 + ldr r2, _02230708 ; =0x00000B34 + str r0, [sp, #8] + ldr r1, [r4, r2] + sub r2, #0x10 + ldr r0, _0223071C ; =0x00000F38 + ldrsb r2, [r4, r2] + add r0, r4, r0 + mov r3, #1 + bl MOD80_02233EF4 + ldr r1, _02230720 ; =0x00000B25 + ldrsb r0, [r4, r1] + add r1, r1, #1 + ldrsb r1, [r4, r1] + bl MOD80_02234668 + add r2, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _02230710 ; =0x00010200 + ldr r1, _02230708 ; =0x00000B34 + str r0, [sp, #4] + ldr r0, _02230724 ; =0x00000F58 + ldr r1, [r4, r1] + add r0, r4, r0 + mov r3, #2 + bl MOD80_02233F9C + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + nop +_02230708: .word 0x00000B34 +_0223070C: .word 0x00000F08 +_02230710: .word 0x00010200 +_02230714: .word 0x00000B38 +_02230718: .word 0x00000F18 +_0223071C: .word 0x00000F38 +_02230720: .word 0x00000B25 +_02230724: .word 0x00000F58 + thumb_func_end MOD80_0223065C + + thumb_func_start MOD80_02230728 +MOD80_02230728: ; 0x02230728 + push {r3, lr} + ldr r1, [r0, #0x2c] + lsl r2, r1, #2 + ldr r1, _02230738 ; =0x02237A94 + ldr r1, [r1, r2] + blx r1 + pop {r3, pc} + nop +_02230738: .word 0x02237A94 + thumb_func_end MOD80_02230728 + + thumb_func_start MOD80_0223073C +MOD80_0223073C: ; 0x0223073C + push {r4, lr} + add r4, r0, #0 + bl MOD80_02230934 + add r0, r4, #0 + bl MOD80_02230B2C + add r0, r4, #0 + bl MOD80_02230A88 + ldr r0, [r4, #4] + bl MOD80_02230814 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_0223073C + + thumb_func_start MOD80_02230760 +MOD80_02230760: ; 0x02230760 + push {r4, r5, lr} + sub sp, #0x54 + ldr r5, _02230808 ; =0x022371D0 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x38 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _0223080C ; =0x022371EC + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _02230810 ; =0x022371B4 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + add sp, #0x54 + pop {r4, r5, pc} + nop +_02230808: .word 0x022371D0 +_0223080C: .word 0x022371EC +_02230810: .word 0x022371B4 + thumb_func_end MOD80_02230760 + + thumb_func_start MOD80_02230814 +MOD80_02230814: ; 0x02230814 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_02230814 + + thumb_func_start MOD80_02230840 +MOD80_02230840: ; 0x02230840 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #3 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #5 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #0xa + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0xd + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x1a + add r2, r4, #0 + bl FUN_020068C8 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_02230840 + + thumb_func_start MOD80_022308EC +MOD80_022308EC: ; 0x022308EC + push {r4, lr} + sub sp, #0x30 + mov r2, #0xcf + add r4, r0, #0 + lsl r2, r2, #4 + add r0, sp, #0 + add r1, r4, #0 + add r2, r4, r2 + mov r3, #1 + bl MOD80_0222E5E8 + mov r0, #1 + lsl r0, r0, #0xc + str r0, [sp, #8] + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _02230930 ; =0x00000D5C + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_020200BC + ldr r0, _02230930 ; =0x00000D5C + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_02020130 + bl FUN_02033E74 + add sp, #0x30 + pop {r4, pc} + nop +_02230930: .word 0x00000D5C + thumb_func_end MOD80_022308EC + + thumb_func_start MOD80_02230934 +MOD80_02230934: ; 0x02230934 + ldr r1, _0223093C ; =0x00000D5C + ldr r3, _02230940 ; =FUN_0201FFC8 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_0223093C: .word 0x00000D5C +_02230940: .word FUN_0201FFC8 + thumb_func_end MOD80_02230934 + + thumb_func_start MOD80_02230944 +MOD80_02230944: ; 0x02230944 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + mov r3, #1 + str r0, [sp, #0x14] + str r3, [sp] + mov r0, #0x1c + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r2, _02230A6C ; =0x00000EB8 + ldr r1, [sp, #0x14] + ldr r0, [r0, #4] + add r1, r1, r2 + mov r2, #0 + bl FUN_02019064 + ldr r1, _02230A6C ; =0x00000EB8 + ldr r0, [sp, #0x14] + add r0, r0, r1 + mov r1, #0 + bl FUN_02019620 + mov r2, #0 + mov r3, #0xb5 + ldr r0, _02230A70 ; =0x000F0D00 + str r2, [sp] + str r0, [sp, #4] + ldr r1, _02230A6C ; =0x00000EB8 + ldr r0, [sp, #0x14] + lsl r3, r3, #4 + add r0, r0, r1 + ldr r1, [sp, #0x14] + ldr r1, [r1, r3] + mov r3, #1 + bl MOD80_02236D1C + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x60 + str r0, [sp, #0x10] + ldr r0, [sp, #0x14] + ldr r2, _02230A74 ; =0x00000E98 + ldr r1, [sp, #0x14] + ldr r0, [r0, #4] + add r1, r1, r2 + mov r2, #0 + bl FUN_02019064 + ldr r1, _02230A74 ; =0x00000E98 + ldr r0, [sp, #0x14] + add r0, r0, r1 + mov r1, #0 + bl FUN_02019620 + ldr r1, _02230A78 ; =0x00000F08 + ldr r0, [sp, #0x14] + ldr r4, _02230A7C ; =0x0223719C + mov r7, #0 + mov r6, #0x96 + add r5, r0, r1 +_022309D2: + ldrh r0, [r4, #2] + add r1, r5, #0 + mov r2, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldrh r3, [r4] + ldr r0, [sp, #0x14] + lsl r3, r3, #0x18 + ldr r0, [r0, #4] + lsr r3, r3, #0x18 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r7, r7, #1 + add r6, #0x16 + add r4, r4, #4 + add r5, #0x10 + cmp r7, #6 + blt _022309D2 + ldr r1, _02230A78 ; =0x00000F08 + ldr r0, [sp, #0x14] + ldr r6, _02230A80 ; =0x0000011A + add r0, r0, r1 + ldr r4, _02230A84 ; =0x02237194 + mov r5, #0 + str r0, [sp, #0x18] +_02230A20: + add r0, r5, #6 + lsl r7, r0, #4 + ldrh r0, [r4, #2] + ldr r1, [sp, #0x18] + mov r2, #2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldrh r3, [r4] + ldr r0, [sp, #0x14] + add r1, r1, r7 + lsl r3, r3, #0x18 + ldr r0, [r0, #4] + lsr r3, r3, #0x18 + bl FUN_02019064 + ldr r0, [sp, #0x18] + mov r1, #0 + add r0, r0, r7 + bl FUN_02019620 + add r5, r5, #1 + add r6, #0x10 + add r4, r4, #4 + cmp r5, #2 + blt _02230A20 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_02230A6C: .word 0x00000EB8 +_02230A70: .word 0x000F0D00 +_02230A74: .word 0x00000E98 +_02230A78: .word 0x00000F08 +_02230A7C: .word 0x0223719C +_02230A80: .word 0x0000011A +_02230A84: .word 0x02237194 + thumb_func_end MOD80_02230944 + + thumb_func_start MOD80_02230A88 +MOD80_02230A88: ; 0x02230A88 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _02230AB4 ; =0x00000E98 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02230AB8 ; =0x00000EB8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02230ABC ; =0x00000F08 + mov r4, #0 + add r5, r5, r0 +_02230AA2: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #8 + blt _02230AA2 + pop {r3, r4, r5, pc} + nop +_02230AB4: .word 0x00000E98 +_02230AB8: .word 0x00000EB8 +_02230ABC: .word 0x00000F08 + thumb_func_end MOD80_02230A88 + + thumb_func_start MOD80_02230AC0 +MOD80_02230AC0: ; 0x02230AC0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _02230B28 ; =0x00000B4C + str r0, [r4, r1] + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x29 + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #0x3e + mov r1, #0x30 + bl FUN_02016998 + mov r1, #0xfe + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r1, [r4, r1] + mov r0, #0 + mov r2, #0x30 + bl MIi_CpuClearFast + mov r2, #0xfe + lsl r2, r2, #4 + ldr r2, [r4, r2] + mov r0, #0x3e + mov r1, #0 + add r2, #0x1c + bl MOD80_02234204 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r1, [r4, r1] + str r0, [r1, #0x18] + mov r0, #0x3e + bl MOD80_02234228 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r2, [r4, r1] + add r1, #0x38 + str r0, [r2, #0x14] + add r0, r4, r1 + bl MOD80_022346D8 + pop {r4, pc} + .align 2, 0 +_02230B28: .word 0x00000B4C + thumb_func_end MOD80_02230AC0 + + thumb_func_start MOD80_02230B2C +MOD80_02230B2C: ; 0x02230B2C + push {r4, lr} + add r4, r0, #0 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x14] + bl FUN_02016A18 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x18] + bl FUN_02016A18 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _02230B68 ; =0x00000B4C + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0xb5 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + nop +_02230B68: .word 0x00000B4C + thumb_func_end MOD80_02230B2C + + thumb_func_start MOD80_02230B6C +MOD80_02230B6C: ; 0x02230B6C + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02230B90 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #8 + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02230B90: .word 0x00000F0F + thumb_func_end MOD80_02230B6C + + thumb_func_start MOD80_02230B94 +MOD80_02230B94: ; 0x02230B94 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl MOD80_02231008 + ldr r0, _02230CB4 ; =0x021C48B8 + mov r2, #1 + ldr r1, [r0, #0x48] + add r0, r1, #0 + tst r0, r2 + beq _02230C44 + add r0, r4, #0 + bl MOD80_02230FF0 + cmp r0, #4 + bhi _02230CAE + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02230BBE: ; jump table + .short _02230BC8 - _02230BBE - 2 ; case 0 + .short _02230BD4 - _02230BBE - 2 ; case 1 + .short _02230C10 - _02230BBE - 2 ; case 2 + .short _02230C1C - _02230BBE - 2 ; case 3 + .short _02230C22 - _02230BBE - 2 ; case 4 +_02230BC8: + mov r0, #3 + str r0, [r4, #0x2c] + ldr r0, _02230CB8 ; =0x000005DC + bl FUN_020054C8 + b _02230CAE +_02230BD4: + ldr r0, _02230CBC ; =0x00000B22 + ldrsh r0, [r4, r0] + cmp r0, #0 + beq _02230C04 + mov r1, #0x12 + bl FUN_02068678 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r2, [r4, r1] + str r0, [r2, #0x20] + ldr r1, [r4, r1] + ldr r0, _02230CBC ; =0x00000B22 + ldr r1, [r1, #0x20] + add r0, r4, r0 + bl MOD80_022338E0 + cmp r0, #0 + beq _02230C04 + ldr r0, _02230CB8 ; =0x000005DC + bl FUN_020054C8 + mov r0, #3 + pop {r3, r4, r5, pc} +_02230C04: + mov r0, #8 + str r0, [r4, #0x2c] + ldr r0, _02230CB8 ; =0x000005DC + bl FUN_020054C8 + b _02230CAE +_02230C10: + mov r0, #0xb + str r0, [r4, #0x2c] + ldr r0, _02230CB8 ; =0x000005DC + bl FUN_020054C8 + b _02230CAE +_02230C1C: + mov r0, #0xe + str r0, [r4, #0x2c] + b _02230CAE +_02230C22: + ldr r0, _02230CC0 ; =0x00000F0F + mov r1, #0xf + str r0, [sp] + add r0, r4, #0 + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0x16 + bl MOD80_0222E6DC + ldr r0, _02230CB8 ; =0x000005DC + bl FUN_020054C8 + b _02230CAE +_02230C44: + mov r0, #2 + tst r0, r1 + beq _02230C6A + ldr r0, _02230CC0 ; =0x00000F0F + mov r1, #0xf + str r0, [sp] + add r0, r4, #0 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0x16 + bl MOD80_0222E6DC + ldr r0, _02230CB8 ; =0x000005DC + bl FUN_020054C8 + b _02230CAE +_02230C6A: + add r0, r4, #0 + add r0, #0xc0 + ldr r0, [r0] + bl MOD80_02235B70 + add r5, r0, #0 + ldr r0, _02230CC4 ; =0x00000FEE + ldrh r0, [r4, r0] + cmp r0, #0 + beq _02230CAE + cmp r5, #0 + blt _02230CAE + add r0, r5, #1 + lsl r0, r0, #2 + add r1, r4, r0 + mov r0, #0xe7 + lsl r0, r0, #4 + ldr r0, [r1, r0] + lsl r1, r5, #2 + add r1, #0x10 + bl FUN_02020130 + mov r0, #2 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #3 + mov r2, #0 + bl MOD80_0222E7A8 + add r4, #0xc4 + ldr r0, _02230CB8 ; =0x000005DC + str r5, [r4] + bl FUN_020054C8 +_02230CAE: + mov r0, #3 + pop {r3, r4, r5, pc} + nop +_02230CB4: .word 0x021C48B8 +_02230CB8: .word 0x000005DC +_02230CBC: .word 0x00000B22 +_02230CC0: .word 0x00000F0F +_02230CC4: .word 0x00000FEE + thumb_func_end MOD80_02230B94 + + thumb_func_start MOD80_02230CC8 +MOD80_02230CC8: ; 0x02230CC8 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02230D54 ; =0x00000B22 + add r4, r0, #0 + ldrsh r2, [r4, r1] + cmp r2, #0 + bne _02230CF6 + ldr r1, _02230D58 ; =0x00000F0F + mov r2, #1 + str r1, [sp] + mov r1, #0xc + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + ldr r0, _02230D5C ; =0x000005F3 + bl FUN_020054C8 + b _02230D4C +_02230CF6: + add r0, r4, r1 + add r1, r1, #6 + add r1, r4, r1 + bl MOD80_022319C0 + cmp r0, #0 + beq _02230D26 + ldr r0, _02230D58 ; =0x00000F0F + mov r1, #0x21 + str r0, [sp] + add r0, r4, #0 + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + ldr r0, _02230D5C ; =0x000005F3 + bl FUN_020054C8 + b _02230D4C +_02230D26: + ldr r0, _02230D60 ; =0x000005FF + bl FUN_020054C8 + ldr r0, _02230D58 ; =0x00000F0F + mov r1, #0xd + str r0, [sp] + add r0, r4, #0 + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0xf + bl MOD80_0222E6DC + add r0, r4, #0 + bl MOD80_02235C40 +_02230D4C: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_02230D54: .word 0x00000B22 +_02230D58: .word 0x00000F0F +_02230D5C: .word 0x000005F3 +_02230D60: .word 0x000005FF + thumb_func_end MOD80_02230CC8 + + thumb_func_start MOD80_02230D64 +MOD80_02230D64: ; 0x02230D64 + push {r3, r4, lr} + sub sp, #0x2c + ldr r0, [r0] + ldr r0, [r0] + bl FUN_0202AC08 + lsr r1, r0, #0x18 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x1c] + lsr r1, r0, #0x10 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #0x20] + lsr r1, r0, #8 + lsl r1, r1, #0x18 + lsl r0, r0, #0x18 + lsr r1, r1, #0x18 + lsr r0, r0, #0x18 + str r1, [sp, #0x24] + str r0, [sp, #0x28] + add r0, sp, #0xc + add r1, sp, #0 + bl MOD04_021DE1F8 + add r0, sp, #0xc + bl RTC_ConvertDateToDay + add r4, r0, #0 + add r0, sp, #0x1c + bl RTC_ConvertDateToDay + sub r0, r4, r0 + bmi _02230DB2 + cmp r0, #3 + bge _02230DB2 + add sp, #0x2c + mov r0, #1 + pop {r3, r4, pc} +_02230DB2: + mov r0, #0 + add sp, #0x2c + pop {r3, r4, pc} + thumb_func_end MOD80_02230D64 + + thumb_func_start MOD80_02230DB8 +MOD80_02230DB8: ; 0x02230DB8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldrh r0, [r5, #0x36] + mov r4, #3 + cmp r0, #0 + beq _02230DC6 + add r4, r4, #2 +_02230DC6: + add r0, r5, #0 + bl MOD80_02230D64 + cmp r0, #0 + beq _02230DD2 + add r4, r4, #2 +_02230DD2: + ldr r0, _02230E0C ; =0x00000B22 + mov r2, #0x7e + lsl r2, r2, #2 + add r0, r5, r0 + add r1, r4, #0 + add r2, r5, r2 + bl MOD80_0222DD90 + ldr r1, _02230E0C ; =0x00000B22 + ldrh r2, [r5, r1] + add r0, r1, #6 + strh r2, [r5, r0] + add r0, r1, #2 + ldrh r2, [r5, r0] + add r0, r1, #0 + add r0, #8 + strh r2, [r5, r0] + add r0, r1, #4 + ldrh r0, [r5, r0] + add r1, #0xa + strh r0, [r5, r1] + mov r0, #0x10 + str r0, [r5, #0x2c] + ldr r0, _02230E10 ; =0x00000FEE + mov r1, #0 + strh r1, [r5, r0] + mov r0, #3 + pop {r3, r4, r5, pc} + nop +_02230E0C: .word 0x00000B22 +_02230E10: .word 0x00000FEE + thumb_func_end MOD80_02230DB8 + + thumb_func_start MOD80_02230E14 +MOD80_02230E14: ; 0x02230E14 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02230E94 + bl MOD80_0222DBB8 + add r5, r0, #0 + add r0, #0xf + cmp r0, #0x16 + bhi _02230E94 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02230E38: ; jump table + .short _02230E90 - _02230E38 - 2 ; case 0 + .short _02230E84 - _02230E38 - 2 ; case 1 + .short _02230E8A - _02230E38 - 2 ; case 2 + .short _02230E90 - _02230E38 - 2 ; case 3 + .short _02230E94 - _02230E38 - 2 ; case 4 + .short _02230E94 - _02230E38 - 2 ; case 5 + .short _02230E94 - _02230E38 - 2 ; case 6 + .short _02230E94 - _02230E38 - 2 ; case 7 + .short _02230E94 - _02230E38 - 2 ; case 8 + .short _02230E94 - _02230E38 - 2 ; case 9 + .short _02230E94 - _02230E38 - 2 ; case 10 + .short _02230E94 - _02230E38 - 2 ; case 11 + .short _02230E94 - _02230E38 - 2 ; case 12 + .short _02230E84 - _02230E38 - 2 ; case 13 + .short _02230E94 - _02230E38 - 2 ; case 14 + .short _02230E66 - _02230E38 - 2 ; case 15 + .short _02230E66 - _02230E38 - 2 ; case 16 + .short _02230E66 - _02230E38 - 2 ; case 17 + .short _02230E66 - _02230E38 - 2 ; case 18 + .short _02230E66 - _02230E38 - 2 ; case 19 + .short _02230E66 - _02230E38 - 2 ; case 20 + .short _02230E66 - _02230E38 - 2 ; case 21 + .short _02230E66 - _02230E38 - 2 ; case 22 +_02230E66: + add r0, r4, #0 + add r0, #0xc0 + str r5, [r0] + ldr r0, _02230E98 ; =0x000005FF + mov r1, #0 + bl FUN_020054F0 + add r0, r4, #0 + add r1, r5, #0 + mov r2, #1 + bl MOD80_02235B90 + mov r0, #0x11 + str r0, [r4, #0x2c] + b _02230E94 +_02230E84: + mov r0, #0x1a + str r0, [r4, #0x2c] + b _02230E94 +_02230E8A: + bl FUN_020335E0 + b _02230E94 +_02230E90: + mov r0, #0x13 + str r0, [r4, #0x2c] +_02230E94: + mov r0, #3 + pop {r3, r4, r5, pc} + .align 2, 0 +_02230E98: .word 0x000005FF + thumb_func_end MOD80_02230E14 + + thumb_func_start MOD80_02230E9C +MOD80_02230E9C: ; 0x02230E9C + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + add r1, r4, #0 + add r1, #0xc0 + ldr r1, [r1] + cmp r1, #0 + ldr r1, _02230EF0 ; =0x00000F0F + bne _02230ECC + str r1, [sp] + mov r1, #0xe + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + ldr r0, _02230EF4 ; =0x000005F3 + bl FUN_020054C8 + b _02230EE8 +_02230ECC: + str r1, [sp] + mov r1, #0x1e + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0x12 + bl MOD80_0222E6DC + ldr r0, _02230EF8 ; =0x00000FDC + mov r1, #0 + str r1, [r4, r0] +_02230EE8: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_02230EF0: .word 0x00000F0F +_02230EF4: .word 0x000005F3 +_02230EF8: .word 0x00000FDC + thumb_func_end MOD80_02230E9C + + thumb_func_start MOD80_02230EFC +MOD80_02230EFC: ; 0x02230EFC + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02230F34 ; =0x00000FDC + add r4, r0, #0 + ldr r2, [r4, r1] + add r2, r2, #1 + str r2, [r4, r1] + ldr r2, [r4, r1] + cmp r2, #0x2d + ble _02230F2E + sub r1, #0xcd + str r1, [sp] + mov r1, #0x20 + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + ldr r0, _02230F38 ; =0x00000FEE + mov r1, #1 + strh r1, [r4, r0] +_02230F2E: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02230F34: .word 0x00000FDC +_02230F38: .word 0x00000FEE + thumb_func_end MOD80_02230EFC + + thumb_func_start MOD80_02230F3C +MOD80_02230F3C: ; 0x02230F3C + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02230F6C ; =0x00000B28 + add r4, r0, #0 + mov r3, #0 + strh r3, [r4, r1] + ldr r1, _02230F70 ; =0x00000F0F + mov r2, #1 + str r1, [sp] + mov r1, #0x26 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + ldr r0, _02230F74 ; =0x000005F3 + bl FUN_020054C8 + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_02230F6C: .word 0x00000B28 +_02230F70: .word 0x00000F0F +_02230F74: .word 0x000005F3 + thumb_func_end MOD80_02230F3C + + thumb_func_start MOD80_02230F78 +MOD80_02230F78: ; 0x02230F78 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02230FA8 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x8f + mov r2, #4 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x15 + mov r2, #0x1b + bl MOD80_0222E6DC + ldr r0, _02230FAC ; =0x00000FDC + mov r1, #0 + str r1, [r4, r0] + ldr r0, _02230FB0 ; =0x000005F3 + bl FUN_020054C8 + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02230FA8: .word 0x00000F0F +_02230FAC: .word 0x00000FDC +_02230FB0: .word 0x000005F3 + thumb_func_end MOD80_02230F78 + + thumb_func_start MOD80_02230FB4 +MOD80_02230FB4: ; 0x02230FB4 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02230FE8 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x94 + mov r2, #4 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x15 + mov r2, #2 + bl MOD80_0222E6DC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + ldr r0, _02230FEC ; =0x000005F3 + bl FUN_020054C8 + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02230FE8: .word 0x00000F0F +_02230FEC: .word 0x000005F3 + thumb_func_end MOD80_02230FB4 + + thumb_func_start MOD80_02230FF0 +MOD80_02230FF0: ; 0x02230FF0 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r1, [r0, r1] + ldr r0, [r1, #0x24] + cmp r0, #0 + bne _02231000 + ldr r0, [r1, #0x28] + bx lr +_02231000: + ldr r0, [r1, #0x2c] + add r0, r0, #3 + bx lr + .align 2, 0 + thumb_func_end MOD80_02230FF0 + + thumb_func_start MOD80_02231008 +MOD80_02231008: ; 0x02231008 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, _02231100 ; =0x021C48B8 + mov r1, #0x40 + ldr r0, [r0, #0x48] + tst r1, r0 + beq _0223104E + mov r0, #0xfe + lsl r0, r0, #4 + ldr r1, [r4, r0] + ldr r0, [r1, #0x24] + cmp r0, #0 + bne _02231036 + ldr r0, [r1, #0x28] + cmp r0, #0 + ble _022310D0 + sub r0, r0, #1 + str r0, [r1, #0x28] + ldr r0, _02231104 ; =0x000005DC + bl FUN_020054C8 + b _022310D0 +_02231036: + ldr r0, [r1, #0x2c] + cmp r0, #0 + beq _02231042 + ldr r0, _02231104 ; =0x000005DC + bl FUN_020054C8 +_02231042: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + str r1, [r0, #0x2c] + b _022310D0 +_0223104E: + mov r1, #0x80 + tst r1, r0 + beq _0223108A + mov r0, #0xfe + lsl r0, r0, #4 + ldr r1, [r4, r0] + ldr r0, [r1, #0x24] + cmp r0, #0 + bne _02231072 + ldr r0, [r1, #0x28] + cmp r0, #2 + bge _022310D0 + add r0, r0, #1 + str r0, [r1, #0x28] + ldr r0, _02231104 ; =0x000005DC + bl FUN_020054C8 + b _022310D0 +_02231072: + ldr r0, [r1, #0x2c] + cmp r0, #1 + beq _0223107E + ldr r0, _02231104 ; =0x000005DC + bl FUN_020054C8 +_0223107E: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + str r1, [r0, #0x2c] + b _022310D0 +_0223108A: + mov r1, #0x10 + tst r1, r0 + beq _022310AE + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x24] + cmp r0, #1 + beq _022310A2 + ldr r0, _02231104 ; =0x000005DC + bl FUN_020054C8 +_022310A2: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + str r1, [r0, #0x24] + b _022310D0 +_022310AE: + mov r1, #0x20 + tst r0, r1 + beq _022310D0 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x24] + cmp r0, #0 + beq _022310C6 + ldr r0, _02231104 ; =0x000005DC + bl FUN_020054C8 +_022310C6: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + str r1, [r0, #0x24] +_022310D0: + add r0, r4, #0 + bl MOD80_02230FF0 + lsl r1, r0, #2 + ldr r0, _02231108 ; =0x02237A80 + ldrh r0, [r0, r1] + lsl r0, r0, #0xc + str r0, [sp] + add r0, r4, #0 + bl MOD80_02230FF0 + lsl r1, r0, #2 + ldr r0, _0223110C ; =0x02237A82 + ldrh r0, [r0, r1] + add r1, sp, #0 + lsl r0, r0, #0xc + str r0, [sp, #4] + ldr r0, _02231110 ; =0x00000D5C + ldr r0, [r4, r0] + bl FUN_02020044 + add sp, #0xc + pop {r3, r4, pc} + nop +_02231100: .word 0x021C48B8 +_02231104: .word 0x000005DC +_02231108: .word 0x02237A80 +_0223110C: .word 0x02237A82 +_02231110: .word 0x00000D5C + thumb_func_end MOD80_02231008 + + thumb_func_start MOD80_02231114 +MOD80_02231114: ; 0x02231114 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #6 + mov r1, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD80_02231114 + + thumb_func_start MOD80_0223113C +MOD80_0223113C: ; 0x0223113C + push {r3, r4, lr} + sub sp, #0x14 + ldr r1, _022311B4 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #9 + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #4 + bl MOD80_0222E6DC + mov r0, #5 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #0xd + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _022311B8 ; =0x0000013A + ldr r1, _022311BC ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0xf + bl FUN_02019064 + ldr r0, _022311BC ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #5 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #0xd + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _022311C0 ; =0x0000016E + ldr r1, _022311C4 ; =0x00000EE8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + ldr r0, _022311C4 ; =0x00000EE8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 +_022311B4: .word 0x00000F0F +_022311B8: .word 0x0000013A +_022311BC: .word 0x00000ED8 +_022311C0: .word 0x0000016E +_022311C4: .word 0x00000EE8 + thumb_func_end MOD80_0223113C + + thumb_func_start MOD80_022311C8 +MOD80_022311C8: ; 0x022311C8 + push {r4, lr} + ldr r2, _022311F0 ; =0x00000FC8 + add r4, r0, #0 + ldr r3, _022311F4 ; =0x00000B34 + add r1, r4, r2 + sub r2, #0xf0 + ldr r3, [r4, r3] + add r2, r4, r2 + bl MOD80_02234370 + ldr r1, _022311F8 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _022311FC ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #5 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022311F0: .word 0x00000FC8 +_022311F4: .word 0x00000B34 +_022311F8: .word 0x00000FD4 +_022311FC: .word 0x0000FFFF + thumb_func_end MOD80_022311C8 + + thumb_func_start MOD80_02231200 +MOD80_02231200: ; 0x02231200 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022312B4 ; =0x00000FD4 + add r1, r4, #0 + ldr r0, [r4, r0] + add r1, #0xb0 + bl MOD80_02234698 + cmp r0, #0xa + bhi _02231236 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02231220: ; jump table + .short _022312AE - _02231220 - 2 ; case 0 + .short _02231240 - _02231220 - 2 ; case 1 + .short _02231240 - _02231220 - 2 ; case 2 + .short _02231240 - _02231220 - 2 ; case 3 + .short _02231240 - _02231220 - 2 ; case 4 + .short _02231240 - _02231220 - 2 ; case 5 + .short _02231240 - _02231220 - 2 ; case 6 + .short _02231240 - _02231220 - 2 ; case 7 + .short _02231240 - _02231220 - 2 ; case 8 + .short _02231240 - _02231220 - 2 ; case 9 + .short _02231240 - _02231220 - 2 ; case 10 +_02231236: + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _02231266 + b _022312AE +_02231240: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #6 + ldr r0, [r4, r0] + add r2, r2, #4 + bl FUN_02001300 + ldr r0, _022312B8 ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _022312BC ; =0x000005DC + bl FUN_020054C8 + mov r0, #6 + str r0, [r4, #0x2c] + b _022312AE +_02231266: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #6 + ldr r0, [r4, r0] + add r2, r2, #4 + bl FUN_02001300 + ldr r0, _022312B8 ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _022312C0 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _022312C4 ; =0x00000E98 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200D0E0 + ldr r0, _022312C0 ; =0x00000ED8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _022312C8 ; =0x00000EE8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _022312BC ; =0x000005DC + bl FUN_020054C8 + mov r0, #0 + str r0, [r4, #0x2c] +_022312AE: + mov r0, #3 + pop {r4, pc} + nop +_022312B4: .word 0x00000FD4 +_022312B8: .word 0x00000FC8 +_022312BC: .word 0x000005DC +_022312C0: .word 0x00000ED8 +_022312C4: .word 0x00000E98 +_022312C8: .word 0x00000EE8 + thumb_func_end MOD80_02231200 + + thumb_func_start MOD80_022312CC +MOD80_022312CC: ; 0x022312CC + push {r3, r4, lr} + sub sp, #0xc + ldr r3, _02231310 ; =0x00000B38 + add r4, r0, #0 + ldr r1, [r4, r3] + mov r2, #0xfe + lsl r2, r2, #4 + str r1, [sp] + ldr r1, [r4, r2] + sub r3, r3, #4 + str r1, [sp, #4] + ldr r1, [r4] + ldr r1, [r1, #0x10] + str r1, [sp, #8] + add r1, r2, #0 + sub r1, #0x18 + sub r2, #0xf8 + ldr r3, [r4, r3] + add r1, r4, r1 + add r2, r4, r2 + bl MOD80_022344DC + ldr r1, _02231314 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _02231318 ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #7 + str r0, [r4, #0x2c] + mov r0, #3 + add sp, #0xc + pop {r3, r4, pc} + nop +_02231310: .word 0x00000B38 +_02231314: .word 0x00000FD4 +_02231318: .word 0x0000FFFF + thumb_func_end MOD80_022312CC + + thumb_func_start MOD80_0223131C +MOD80_0223131C: ; 0x0223131C + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, _02231464 ; =0x00000FD4 + add r1, r4, #0 + ldr r0, [r4, r0] + add r1, #0xb0 + bl MOD80_02234698 + add r5, r0, #0 + mov r0, #1 + mvn r0, r0 + cmp r5, r0 + beq _02231342 + add r0, r0, #1 + cmp r5, r0 + bne _02231340 + b _0223145C +_02231340: + b _0223138C +_02231342: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #0 + ldr r0, [r4, r0] + add r1, #0xa + add r2, #8 + bl FUN_02001300 + ldr r0, _02231468 ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _0223146C ; =0x00000EE8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _02231470 ; =0x000005DC + bl FUN_020054C8 + mov r0, #4 + str r0, [r4, #0x2c] + mov r0, #0xfe + lsl r0, r0, #4 + ldr r3, [r4, r0] + add r0, #0x38 + ldrh r2, [r3, #6] + ldrh r1, [r3, #4] + add r0, r4, r0 + add r1, r2, r1 + ldrh r2, [r3, #0xa] + ldrh r3, [r3, #8] + bl MOD80_022346F0 + b _0223145C +_0223138C: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #0 + ldr r0, [r4, r0] + add r1, #0xa + add r2, #8 + bl FUN_02001300 + ldr r0, _02231468 ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _02231474 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _0223146C ; =0x00000EE8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _02231474 ; =0x00000ED8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _0223146C ; =0x00000EE8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02231478 ; =0x00000B22 + strh r5, [r4, r0] + mov r0, #0 + str r0, [r4, #0x2c] + ldr r0, _02231470 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _0223147C ; =0x00000F18 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #0 + str r0, [sp] + ldr r0, _02231480 ; =0x00010200 + ldr r1, _02231484 ; =0x00000B38 + str r0, [sp, #4] + ldr r0, _0223147C ; =0x00000F18 + ldr r1, [r4, r1] + add r0, r4, r0 + add r2, r5, #0 + mov r3, #2 + bl MOD80_02233EA4 + add r0, r5, #0 + mov r1, #0x12 + bl FUN_02068678 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r2, [r4, r1] + str r0, [r2, #0x20] + ldr r3, [r4, r1] + add r1, #0x38 + add r0, r4, r1 + ldrh r2, [r3, #6] + ldrh r1, [r3, #4] + add r1, r2, r1 + ldrh r2, [r3, #0xa] + ldrh r3, [r3, #8] + bl MOD80_022346F0 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r1, [r4, r1] + ldr r0, _02231478 ; =0x00000B22 + ldr r1, [r1, #0x20] + add r0, r4, r0 + bl MOD80_022338E0 + cmp r0, #0 + beq _0223145C + ldr r0, _02231488 ; =0x00000F38 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _02231480 ; =0x00010200 + ldr r2, _0223148C ; =0x00000B34 + str r0, [sp, #8] + ldr r1, [r4, r2] + sub r2, #0x10 + ldr r0, _02231488 ; =0x00000F38 + ldrsb r2, [r4, r2] + add r0, r4, r0 + mov r3, #1 + bl MOD80_02233EF4 +_0223145C: + mov r0, #3 + add sp, #0xc + pop {r4, r5, pc} + nop +_02231464: .word 0x00000FD4 +_02231468: .word 0x00000FC8 +_0223146C: .word 0x00000EE8 +_02231470: .word 0x000005DC +_02231474: .word 0x00000ED8 +_02231478: .word 0x00000B22 +_0223147C: .word 0x00000F18 +_02231480: .word 0x00010200 +_02231484: .word 0x00000B38 +_02231488: .word 0x00000F38 +_0223148C: .word 0x00000B34 + thumb_func_end MOD80_0223131C + + thumb_func_start MOD80_02231490 +MOD80_02231490: ; 0x02231490 + push {r3, r4, lr} + sub sp, #0x14 + ldr r1, _022314E0 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0xa + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #9 + bl MOD80_0222E6DC + mov r0, #0xa + str r0, [sp] + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _022314E4 ; =0x0000013A + ldr r1, _022314E8 ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + ldr r0, _022314E8 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_022314E0: .word 0x00000F0F +_022314E4: .word 0x0000013A +_022314E8: .word 0x00000ED8 + thumb_func_end MOD80_02231490 + + thumb_func_start MOD80_022314EC +MOD80_022314EC: ; 0x022314EC + push {r4, lr} + ldr r1, _02231514 ; =0x00000FC8 + add r4, r0, #0 + ldr r2, _02231518 ; =0x00000B34 + add r0, r4, r1 + sub r1, #0xf0 + ldr r2, [r4, r2] + add r1, r4, r1 + bl MOD80_02234560 + ldr r1, _0223151C ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _02231520 ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #0xa + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02231514: .word 0x00000FC8 +_02231518: .word 0x00000B34 +_0223151C: .word 0x00000FD4 +_02231520: .word 0x0000FFFF + thumb_func_end MOD80_022314EC + + thumb_func_start MOD80_02231524 +MOD80_02231524: ; 0x02231524 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _022315F0 ; =0x00000FD4 + add r1, r5, #0 + ldr r0, [r5, r0] + add r1, #0xb0 + bl MOD80_02234698 + add r4, r0, #0 + cmp r4, #2 + bhi _0223154A + cmp r4, #0 + beq _0223158E + cmp r4, #1 + beq _0223158E + cmp r4, #2 + beq _0223158E + b _022315EA +_0223154A: + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + bne _022315EA + ldr r0, _022315F0 ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _022315F4 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _022315F8 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _022315FC ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200D0E0 + ldr r0, _022315F8 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02231600 ; =0x000005DC + bl FUN_020054C8 + mov r0, #0 + str r0, [r5, #0x2c] + b _022315EA +_0223158E: + ldr r0, _022315F0 ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _022315F4 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _022315F8 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _022315F8 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02231600 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _02231604 ; =0x00000B24 + add r1, r4, #1 + strb r1, [r5, r0] + ldr r0, _02231608 ; =0x00000F38 + mov r1, #0 + add r0, r5, r0 + str r1, [r5, #0x2c] + bl FUN_02019620 + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, _0223160C ; =0x00010200 + ldr r2, _02231610 ; =0x00000B34 + str r0, [sp, #8] + ldr r1, [r5, r2] + sub r2, #0x10 + ldr r0, _02231608 ; =0x00000F38 + ldrsb r2, [r5, r2] + add r0, r5, r0 + mov r3, #1 + bl MOD80_02233EF4 +_022315EA: + mov r0, #3 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_022315F0: .word 0x00000FD4 +_022315F4: .word 0x00000FC8 +_022315F8: .word 0x00000ED8 +_022315FC: .word 0x00000E98 +_02231600: .word 0x000005DC +_02231604: .word 0x00000B24 +_02231608: .word 0x00000F38 +_0223160C: .word 0x00010200 +_02231610: .word 0x00000B34 + thumb_func_end MOD80_02231524 + + thumb_func_start MOD80_02231614 +MOD80_02231614: ; 0x02231614 + push {r3, r4, lr} + sub sp, #0x14 + ldr r1, _02231664 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0xb + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #0xc + bl MOD80_0222E6DC + mov r0, #5 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + mov r0, #0xd + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _02231668 ; =0x0000013A + ldr r1, _0223166C ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0xf + bl FUN_02019064 + ldr r0, _0223166C ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02231664: .word 0x00000F0F +_02231668: .word 0x0000013A +_0223166C: .word 0x00000ED8 + thumb_func_end MOD80_02231614 + + thumb_func_start MOD80_02231670 +MOD80_02231670: ; 0x02231670 + push {r4, lr} + ldr r1, _02231698 ; =0x00000FC8 + add r4, r0, #0 + ldr r2, _0223169C ; =0x00000B34 + add r0, r4, r1 + sub r1, #0xf0 + ldr r2, [r4, r2] + add r1, r4, r1 + bl MOD80_022345D0 + ldr r1, _022316A0 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _022316A4 ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #0xd + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02231698: .word 0x00000FC8 +_0223169C: .word 0x00000B34 +_022316A0: .word 0x00000FD4 +_022316A4: .word 0x0000FFFF + thumb_func_end MOD80_02231670 + + thumb_func_start MOD80_022316A8 +MOD80_022316A8: ; 0x022316A8 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, _0223176C ; =0x00000FD4 + add r1, r5, #0 + ldr r0, [r5, r0] + add r1, #0xb0 + bl MOD80_02234698 + add r4, r0, #0 + cmp r4, #0xc + beq _022316D0 + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _022316D0 + add r0, r0, #1 + cmp r4, r0 + beq _02231766 + b _0223170C +_022316D0: + ldr r0, _0223176C ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _02231770 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02231774 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02231778 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200D0E0 + ldr r0, _02231774 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _0223177C ; =0x000005DC + bl FUN_020054C8 + mov r0, #0 + str r0, [r5, #0x2c] + b _02231766 +_0223170C: + ldr r0, _0223176C ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _02231770 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02231774 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02231774 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _0223177C ; =0x000005DC + bl FUN_020054C8 + ldr r0, _02231780 ; =0x00000B22 + add r1, r4, #0 + add r0, r5, r0 + bl MOD80_02234640 + ldr r0, _02231784 ; =0x00000F58 + mov r1, #0 + add r0, r5, r0 + str r1, [r5, #0x2c] + bl FUN_02019620 + mov r0, #0 + str r0, [sp] + ldr r0, _02231788 ; =0x00010200 + ldr r1, _0223178C ; =0x00000B34 + str r0, [sp, #4] + ldr r0, _02231784 ; =0x00000F58 + ldr r1, [r5, r1] + add r0, r5, r0 + add r2, r4, #0 + mov r3, #2 + bl MOD80_02233F9C +_02231766: + mov r0, #3 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223176C: .word 0x00000FD4 +_02231770: .word 0x00000FC8 +_02231774: .word 0x00000ED8 +_02231778: .word 0x00000E98 +_0223177C: .word 0x000005DC +_02231780: .word 0x00000B22 +_02231784: .word 0x00000F58 +_02231788: .word 0x00010200 +_0223178C: .word 0x00000B34 + thumb_func_end MOD80_022316A8 + + thumb_func_start MOD80_02231790 +MOD80_02231790: ; 0x02231790 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _022317AC ; =0x0000020A + mov r1, #0xf + bl MOD80_0222E6A8 + ldr r1, _022317B0 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #0x17 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + nop +_022317AC: .word 0x0000020A +_022317B0: .word 0x00000FCC + thumb_func_end MOD80_02231790 + + thumb_func_start MOD80_022317B4 +MOD80_022317B4: ; 0x022317B4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022317F4 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _022317F0 + sub r1, r1, #1 + cmp r0, r1 + bne _022317D6 + mov r0, #0 + str r0, [r4, #0x2c] + b _022317F0 +_022317D6: + mov r0, #2 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + add r0, r4, #0 + bl MOD80_02235C40 + mov r0, #0 + add r4, #0xc0 + str r0, [r4] +_022317F0: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022317F4: .word 0x00000FCC + thumb_func_end MOD80_022317B4 + + thumb_func_start MOD80_022317F8 +MOD80_022317F8: ; 0x022317F8 + mov r1, #1 + str r1, [r0, #0x2c] + mov r0, #3 + bx lr + thumb_func_end MOD80_022317F8 + + thumb_func_start MOD80_02231800 +MOD80_02231800: ; 0x02231800 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02231824 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x8e + mov r2, #1 + mov r3, #0 + bl MOD80_0223187C + add r0, r4, #0 + mov r1, #0x14 + mov r2, #1 + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02231824: .word 0x00000F0F + thumb_func_end MOD80_02231800 + + thumb_func_start MOD80_02231828 +MOD80_02231828: ; 0x02231828 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02231842 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02231842: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02231828 + + thumb_func_start MOD80_02231848 +MOD80_02231848: ; 0x02231848 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02231874 + ldr r0, _02231878 ; =0x00000FDC + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0x2d + ble _02231874 + mov r1, #0 + str r1, [r4, r0] + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02231874: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02231878: .word 0x00000FDC + thumb_func_end MOD80_02231848 + + thumb_func_start MOD80_0223187C +MOD80_0223187C: ; 0x0223187C + push {r4, r5, lr} + sub sp, #0xc + add r4, r2, #0 + ldr r2, _022318C8 ; =0x00000B34 + add r5, r0, #0 + ldr r0, [r5, r2] + add r2, #0x18 + ldr r2, [r5, r2] + bl FUN_0200A8E0 + ldr r0, _022318CC ; =0x00000E98 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _022318CC ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _022318CC ; =0x00000E98 + ldr r2, _022318D0 ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_022318C8: .word 0x00000B34 +_022318CC: .word 0x00000E98 +_022318D0: .word 0x00000B4C + thumb_func_end MOD80_0223187C + + thumb_func_start MOD80_022318D4 +MOD80_022318D4: ; 0x022318D4 + push {r4, r5, r6, lr} + sub sp, #8 + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #0x3b + bl FUN_0200A914 + add r6, r0, #0 + mov r2, #0 + ldr r0, _022319B8 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r1, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + mov r1, #0x3d + bl FUN_0200A914 + add r6, r0, #0 + mov r2, #0 + ldr r0, _022319B8 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0x20 + add r1, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + mov r1, #0x3f + bl FUN_0200A914 + add r6, r0, #0 + mov r2, #0 + ldr r0, _022319B8 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0x40 + add r1, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + mov r1, #0x41 + bl FUN_0200A914 + add r6, r0, #0 + add r3, r5, #0 + add r3, #0x67 + ldrb r3, [r3] + mov r0, #0 + add r1, r6, #0 + add r2, r0, #0 + lsl r3, r3, #3 + bl FUN_02002F40 + add r2, r0, #0 + mov r3, #0 + ldr r0, _022319BC ; =0x00010200 + str r3, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0x60 + add r1, r6, #0 + bl MOD80_02236D50 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + mov r1, #0x42 + bl FUN_0200A914 + add r4, r0, #0 + add r3, r5, #0 + add r3, #0x77 + ldrb r3, [r3] + mov r0, #0 + add r1, r4, #0 + add r2, r0, #0 + lsl r3, r3, #3 + bl FUN_02002F40 + add r2, r0, #0 + mov r3, #0 + ldr r0, _022319BC ; =0x00010200 + str r3, [sp] + add r5, #0x70 + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + bl MOD80_02236D50 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #8 + pop {r4, r5, r6, pc} + nop +_022319B8: .word 0x000F0200 +_022319BC: .word 0x00010200 + thumb_func_end MOD80_022318D4 + + thumb_func_start MOD80_022319C0 +MOD80_022319C0: ; 0x022319C0 + mov r2, #0 + ldrsh r3, [r0, r2] + ldrsh r2, [r1, r2] + cmp r3, r2 + bne _022319EC + mov r2, #2 + ldrsb r3, [r0, r2] + ldrsb r2, [r1, r2] + cmp r3, r2 + bne _022319EC + mov r2, #3 + ldrsb r3, [r0, r2] + ldrsb r2, [r1, r2] + cmp r3, r2 + bne _022319EC + mov r2, #4 + ldrsb r3, [r0, r2] + ldrsb r0, [r1, r2] + cmp r3, r0 + bne _022319EC + mov r0, #1 + bx lr +_022319EC: + mov r0, #0 + bx lr + thumb_func_end MOD80_022319C0 + + thumb_func_start MOD80_022319F0 +MOD80_022319F0: ; 0x022319F0 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_0223205C + ldr r0, [r4, #4] + bl MOD80_02231AB0 + add r0, r4, #0 + bl MOD80_02231BF4 + add r0, r4, #0 + bl MOD80_02231EA8 + add r0, r4, #0 + bl MOD80_02231CBC + ldr r0, [r4, #0x20] + cmp r0, #8 + bne _02231A30 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + b _02231A46 +_02231A30: + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 +_02231A46: + add r1, r4, #0 + add r1, #0xb8 + ldrh r1, [r1] + add r0, r4, #0 + bl MOD80_02232D7C + add r0, r4, #0 + bl MOD80_02236D84 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD80_022319F0 + + thumb_func_start MOD80_02231A64 +MOD80_02231A64: ; 0x02231A64 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222E79C + bl FUN_02033EEC + ldr r1, [r4, #0x2c] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _02231A80 ; =0x02237B04 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_02231A80: .word 0x02237B04 + thumb_func_end MOD80_02231A64 + + thumb_func_start MOD80_02231A84 +MOD80_02231A84: ; 0x02231A84 + push {r4, lr} + add r4, r0, #0 + bl FUN_02033ED0 + add r0, r4, #0 + bl MOD80_02231E44 + add r0, r4, #0 + bl MOD80_022320E8 + add r0, r4, #0 + bl MOD80_0223200C + ldr r0, [r4, #4] + bl MOD80_02231BC8 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02231A84 + + thumb_func_start MOD80_02231AB0 +MOD80_02231AB0: ; 0x02231AB0 + push {r4, r5, lr} + sub sp, #0x9c + ldr r5, _02231BB0 ; =0x02237210 + add r3, sp, #0x8c + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _02231BB4 ; =0x02237288 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _02231BB8 ; =0x022372A4 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _02231BBC ; =0x0223726C + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _02231BC0 ; =0x02237234 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _02231BC4 ; =0x02237250 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + add r0, r4, #0 + mov r1, #5 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x9c + pop {r4, r5, pc} + nop +_02231BB0: .word 0x02237210 +_02231BB4: .word 0x02237288 +_02231BB8: .word 0x022372A4 +_02231BBC: .word 0x0223726C +_02231BC0: .word 0x02237234 +_02231BC4: .word 0x02237250 + thumb_func_end MOD80_02231AB0 + + thumb_func_start MOD80_02231BC8 +MOD80_02231BC8: ; 0x02231BC8 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_02231BC8 + + thumb_func_start MOD80_02231BF4 +MOD80_02231BF4: ; 0x02231BF4 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #2 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #5 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #0xa + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0xc + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x18 + add r2, r4, #0 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x1d + add r2, r4, #0 + mov r3, #2 + bl FUN_020068C8 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD80_02231BF4 + + thumb_func_start MOD80_02231CBC +MOD80_02231CBC: ; 0x02231CBC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + mov r2, #0xcf + add r5, r0, #0 + lsl r2, r2, #4 + add r0, sp, #0 + add r1, r5, #0 + add r2, r5, r2 + mov r3, #1 + bl MOD80_0222E5E8 + add r0, r5, #0 + add r0, #0xba + ldrh r0, [r0] + lsl r1, r0, #2 + ldr r0, _02231E28 ; =0x022372C0 + ldrh r0, [r0, r1] + lsl r0, r0, #0xc + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xba + ldrh r0, [r0] + lsl r1, r0, #2 + ldr r0, _02231E2C ; =0x022372C2 + ldrh r0, [r0, r1] + lsl r0, r0, #0xc + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _02231E30 ; =0x00000D5C + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #1 + bl FUN_020200BC + ldr r0, _02231E30 ; =0x00000D5C + mov r1, #4 + ldr r0, [r5, r0] + bl FUN_02020130 + ldr r0, _02231E30 ; =0x00000D5C + mov r1, #1 + ldr r0, [r5, r0] + bl FUN_02020238 + ldr r6, _02231E28 ; =0x022372C0 + mov r7, #0 + add r4, r5, #0 +_02231D1E: + ldrh r0, [r6] + lsl r0, r0, #0xc + str r0, [sp, #8] + ldrh r0, [r6, #2] + lsl r0, r0, #0xc + str r0, [sp, #0xc] + mov r0, #0x14 + str r0, [sp, #0x24] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _02231E34 ; =0x00000D64 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + add r1, r7, #6 + bl FUN_02020130 + ldr r0, _02231E34 ; =0x00000D64 + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_02020238 + add r7, r7, #1 + add r6, r6, #4 + add r4, r4, #4 + cmp r7, #0x1e + blt _02231D1E + ldr r6, _02231E28 ; =0x022372C0 + mov r7, #0 + add r4, r5, #0 +_02231D5C: + ldrh r0, [r6] + add r0, r0, #4 + lsl r0, r0, #0xc + str r0, [sp, #8] + ldrh r0, [r6, #2] + add r0, r0, #6 + lsl r0, r0, #0xc + str r0, [sp, #0xc] + mov r0, #0xa + str r0, [sp, #0x24] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _02231E38 ; =0x00000DDC + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #0x28 + bl FUN_02020130 + ldr r0, _02231E38 ; =0x00000DDC + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_02020238 + add r7, r7, #1 + add r6, r6, #4 + add r4, r4, #4 + cmp r7, #0x1e + blt _02231D5C + ldr r6, _02231E28 ; =0x022372C0 + mov r7, #0 + add r4, r5, #0 +_02231D9E: + ldrh r0, [r6] + add r0, #0xc + lsl r0, r0, #0xc + str r0, [sp, #8] + ldrh r0, [r6, #2] + add r0, r0, #6 + lsl r0, r0, #0xc + str r0, [sp, #0xc] + mov r0, #0xa + str r0, [sp, #0x24] + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _02231E3C ; =0x00000E54 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #0x2a + bl FUN_02020130 + ldr r0, _02231E3C ; =0x00000E54 + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_02020238 + add r7, r7, #1 + add r6, r6, #4 + add r4, r4, #4 + cmp r7, #6 + blt _02231D9E + mov r7, #0xe9 + ldr r4, _02231E40 ; =0x02237208 + mov r6, #0 + lsl r7, r7, #4 +_02231DE2: + ldrh r0, [r4] + lsl r0, r0, #0xc + str r0, [sp, #8] + ldrh r0, [r4, #2] + lsl r0, r0, #0xc + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + mov r1, #0xe9 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0xe9 + lsl r0, r0, #4 + add r1, r6, #0 + ldr r0, [r5, r0] + add r1, #0x26 + bl FUN_02020130 + ldr r0, [r5, r7] + mov r1, #1 + bl FUN_02020238 + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #2 + blt _02231DE2 + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02231E28: .word 0x022372C0 +_02231E2C: .word 0x022372C2 +_02231E30: .word 0x00000D5C +_02231E34: .word 0x00000D64 +_02231E38: .word 0x00000DDC +_02231E3C: .word 0x00000E54 +_02231E40: .word 0x02237208 + thumb_func_end MOD80_02231CBC + + thumb_func_start MOD80_02231E44 +MOD80_02231E44: ; 0x02231E44 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + mov r7, #0xe9 + mov r6, #0 + add r4, r5, #0 + lsl r7, r7, #4 +_02231E50: + ldr r0, [r4, r7] + bl FUN_0201FFC8 + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #2 + blt _02231E50 + ldr r0, _02231E98 ; =0x00000D5C + ldr r0, [r5, r0] + bl FUN_0201FFC8 + ldr r7, _02231E9C ; =0x00000DDC + mov r6, #0 + add r4, r5, #0 +_02231E6C: + ldr r0, _02231EA0 ; =0x00000D64 + ldr r0, [r4, r0] + bl FUN_0201FFC8 + ldr r0, [r4, r7] + bl FUN_0201FFC8 + add r6, r6, #1 + add r4, r4, #4 + cmp r6, #0x1e + blt _02231E6C + ldr r6, _02231EA4 ; =0x00000E54 + mov r4, #0 +_02231E86: + ldr r0, [r5, r6] + bl FUN_0201FFC8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _02231E86 + pop {r3, r4, r5, r6, r7, pc} + nop +_02231E98: .word 0x00000D5C +_02231E9C: .word 0x00000DDC +_02231EA0: .word 0x00000D64 +_02231EA4: .word 0x00000E54 + thumb_func_end MOD80_02231E44 + + thumb_func_start MOD80_02231EA8 +MOD80_02231EA8: ; 0x02231EA8 + push {r3, r4, lr} + sub sp, #0x14 + mov r3, #1 + add r4, r0, #0 + str r3, [sp] + mov r0, #0x1c + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + ldr r1, _02231FDC ; =0x00000EB8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _02231FDC ; =0x00000EB8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r2, #0 + mov r1, #0xb5 + ldr r0, _02231FE0 ; =0x000F0E00 + str r2, [sp] + str r0, [sp, #4] + ldr r0, _02231FDC ; =0x00000EB8 + lsl r1, r1, #4 + ldr r1, [r4, r1] + add r0, r4, r0 + mov r3, #1 + bl MOD80_02236D50 + mov r1, #3 + str r1, [sp] + mov r0, #0xd + str r0, [sp, #4] + str r1, [sp, #8] + str r0, [sp, #0xc] + mov r0, #0x60 + ldr r1, _02231FE4 ; =0x00000EC8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #5 + bl FUN_02019064 + ldr r0, _02231FE4 ; =0x00000EC8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + ldr r0, _02231FE4 ; =0x00000EC8 + add r0, r4, r0 + bl FUN_020191D0 + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + ldr r1, _02231FE8 ; =0x00000E98 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + add r0, #0xfc + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _02231FE8 ; =0x00000E98 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _02231FEC ; =0x0000013F + ldr r1, _02231FF0 ; =0x00000FB8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + ldr r0, _02231FF0 ; =0x00000FB8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #0x15 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, _02231FF4 ; =0x00000165 + ldr r1, _02231FF8 ; =0x00000EE8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #1 + mov r3, #0x19 + bl FUN_02019064 + ldr r0, _02231FF8 ; =0x00000EE8 + mov r1, #6 + add r0, r4, r0 + bl FUN_02019620 + mov r3, #1 + ldr r0, _02231FFC ; =0x00010306 + str r3, [sp] + str r0, [sp, #4] + ldr r1, _02232000 ; =0x00000B48 + ldr r0, _02231FF8 ; =0x00000EE8 + ldr r1, [r4, r1] + add r0, r4, r0 + mov r2, #0 + bl MOD80_02236D50 + mov r1, #0xd + str r1, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, _02232004 ; =0x00000171 + ldr r1, _02232008 ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + add sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 +_02231FDC: .word 0x00000EB8 +_02231FE0: .word 0x000F0E00 +_02231FE4: .word 0x00000EC8 +_02231FE8: .word 0x00000E98 +_02231FEC: .word 0x0000013F +_02231FF0: .word 0x00000FB8 +_02231FF4: .word 0x00000165 +_02231FF8: .word 0x00000EE8 +_02231FFC: .word 0x00010306 +_02232000: .word 0x00000B48 +_02232004: .word 0x00000171 +_02232008: .word 0x00000ED8 + thumb_func_end MOD80_02231EA8 + + thumb_func_start MOD80_0223200C +MOD80_0223200C: ; 0x0223200C + push {r4, lr} + add r4, r0, #0 + ldr r0, _02232044 ; =0x00000FB8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02232048 ; =0x00000EE8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _0223204C ; =0x00000ED8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02232050 ; =0x00000E98 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02232054 ; =0x00000EC8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02232058 ; =0x00000EB8 + add r0, r4, r0 + bl FUN_02019178 + pop {r4, pc} + nop +_02232044: .word 0x00000FB8 +_02232048: .word 0x00000EE8 +_0223204C: .word 0x00000ED8 +_02232050: .word 0x00000E98 +_02232054: .word 0x00000EC8 +_02232058: .word 0x00000EB8 + thumb_func_end MOD80_0223200C + + thumb_func_start MOD80_0223205C +MOD80_0223205C: ; 0x0223205C + push {r4, lr} + add r4, r0, #0 + mov r0, #0x12 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _022320D4 ; =0x00000B44 + str r0, [r4, r1] + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _022320D8 ; =0x00000B4C + str r0, [r4, r1] + ldr r0, [r4, #0x24] + cmp r0, #5 + bne _02232090 + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x15 + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r4, r1] + b _022320A4 +_02232090: + cmp r0, #6 + bne _022320A4 + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x11 + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r4, r1] +_022320A4: + ldr r0, _022320DC ; =0x00000B34 + mov r1, #0x67 + ldr r0, [r4, r0] + bl FUN_0200A914 + ldr r1, _022320E0 ; =0x00000B48 + str r0, [r4, r1] + add r0, r4, #0 + add r0, #0xba + ldrh r0, [r0] + cmp r0, #0x1e + bne _022320C4 + add r0, r4, #0 + mov r1, #0 + add r0, #0xba + strh r1, [r0] +_022320C4: + mov r0, #0x3e + mov r1, #0x78 + bl FUN_02016998 + ldr r1, _022320E4 ; =0x00001004 + str r0, [r4, r1] + pop {r4, pc} + nop +_022320D4: .word 0x00000B44 +_022320D8: .word 0x00000B4C +_022320DC: .word 0x00000B34 +_022320E0: .word 0x00000B48 +_022320E4: .word 0x00001004 + thumb_func_end MOD80_0223205C + + thumb_func_start MOD80_022320E8 +MOD80_022320E8: ; 0x022320E8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02232118 ; =0x00001004 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _0223211C ; =0x00000B44 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _02232120 ; =0x00000B4C + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _02232124 ; =0x00000B48 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0xb5 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + .align 2, 0 +_02232118: .word 0x00001004 +_0223211C: .word 0x00000B44 +_02232120: .word 0x00000B4C +_02232124: .word 0x00000B48 + thumb_func_end MOD80_022320E8 + + thumb_func_start MOD80_02232128 +MOD80_02232128: ; 0x02232128 + push {r4, lr} + add r4, r0, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _02232138 + mov r0, #1 + str r0, [r4, #0x2c] +_02232138: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02232128 + + thumb_func_start MOD80_0223213C +MOD80_0223213C: ; 0x0223213C + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD80_0223237C + ldr r0, [r5, #0x24] + cmp r0, #5 + beq _0223214E + b _02232250 +_0223214E: + ldr r0, _02232370 ; =0x021C48B8 + ldr r2, [r0, #0x48] + mov r0, #2 + tst r0, r2 + beq _02232168 + add r0, r5, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r5, #0x2c] + b _02232368 +_02232168: + mov r1, #1 + add r0, r2, #0 + tst r0, r1 + beq _022321B6 + add r0, r5, #0 + add r0, #0xba + ldrh r0, [r0] + cmp r0, #0x1e + bne _0223218E + add r0, r5, #0 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r5, #0x2c] + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 + b _02232368 +_0223218E: + cmp r0, #0x1f + beq _022321B6 + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02233054 + cmp r0, #1 + beq _022321B8 + cmp r0, #2 + beq _02232232 +_022321B6: + b _02232368 +_022321B8: + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FF8 + cmp r0, #0 + beq _02232214 + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + add r2, r0, #0 + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_0200ACF8 + ldr r0, _02232378 ; =0x00000F0F + mov r3, #0 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x16 + mov r2, #1 + str r3, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #3 + mov r2, #7 + bl MOD80_0222E6DC + b _02232368 +_02232214: + ldr r0, _02232378 ; =0x00000F0F + mov r2, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x1a + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #4 + mov r2, #1 + bl MOD80_0222E6DC + b _02232368 +_02232232: + ldr r0, _02232378 ; =0x00000F0F + mov r2, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x1b + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #4 + mov r2, #1 + bl MOD80_0222E6DC + b _02232368 +_02232250: + cmp r0, #6 + bne _022322BA + ldr r0, _02232370 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + beq _02232274 + add r0, r5, #0 + mov r1, #3 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r5, #0x2c] + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 + b _02232368 +_02232274: + mov r0, #1 + tst r0, r1 + beq _02232368 + add r0, r5, #0 + add r0, #0xba + ldrh r3, [r0] + cmp r3, #0x1e + bne _0223229A + add r0, r5, #0 + mov r1, #3 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r5, #0x2c] + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 + b _02232368 +_0223229A: + cmp r3, #0x1f + beq _02232368 + add r2, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + ldr r0, [r1, #8] + ldrh r2, [r2] + ldr r1, [r1, #0xc] + bl MOD80_02233054 + cmp r0, #0 + beq _02232362 + cmp r0, #1 + beq _022322BC + cmp r0, #2 + beq _02232362 +_022322BA: + b _02232368 +_022322BC: + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + add r2, r5, #0 + add r2, #0xc4 + mov r1, #0xba + ldr r3, [r2] + mov r2, #0x49 + lsl r1, r1, #2 + lsl r2, r2, #2 + add r1, r5, r1 + mul r2, r3 + add r1, r1, r2 + add r4, r0, #0 + bl MOD80_022330E4 + cmp r0, #0 + beq _0223235A + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FF8 + cmp r0, #0 + beq _0223233C + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + add r2, r4, #0 + bl FUN_0200ACF8 + ldr r0, _02232378 ; =0x00000F0F + mov r3, #0 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x12 + mov r2, #1 + str r3, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #3 + mov r2, #9 + bl MOD80_0222E6DC + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 + b _02232368 +_0223233C: + ldr r0, _02232378 ; =0x00000F0F + mov r2, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x1a + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #4 + mov r2, #1 + bl MOD80_0222E6DC + b _02232368 +_0223235A: + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 + b _02232368 +_02232362: + ldr r0, _02232374 ; =0x000005DC + bl FUN_020054C8 +_02232368: + mov r0, #3 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_02232370: .word 0x021C48B8 +_02232374: .word 0x000005DC +_02232378: .word 0x00000F0F + thumb_func_end MOD80_0223213C + + thumb_func_start MOD80_0223237C +MOD80_0223237C: ; 0x0223237C + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _02232448 ; =0x021C48B8 + mov r4, #0 + ldr r0, [r0, #0x48] + mov r2, #0x40 + add r1, r4, #0 + tst r2, r0 + beq _02232392 + mov r1, #1 + b _022323AE +_02232392: + mov r2, #0x80 + tst r2, r0 + beq _0223239C + mov r1, #2 + b _022323AE +_0223239C: + mov r2, #0x20 + tst r2, r0 + beq _022323A6 + mov r1, #3 + b _022323AE +_022323A6: + mov r2, #0x10 + tst r0, r2 + beq _022323AE + mov r1, #4 +_022323AE: + cmp r1, #0 + beq _022323FE + add r0, r5, #0 + add r0, #0xba + ldrh r0, [r0] + ldr r3, _0223244C ; =0x02237340 + sub r2, r1, #1 + lsl r6, r0, #2 + add r1, r3, r6 + ldrb r2, [r2, r1] + cmp r2, r0 + beq _022323FE + cmp r2, #0x63 + beq _022323CE + cmp r2, #0x65 + bne _022323F6 +_022323CE: + add r0, r5, #0 + add r0, #0xb8 + ldrh r0, [r0] + mov r1, #0x13 + sub r2, #0x64 + bl MOD80_02232460 + add r1, r5, #0 + add r1, #0xb8 + strh r0, [r1] + add r1, r5, #0 + add r1, #0xb8 + ldrh r1, [r1] + add r0, r5, #0 + bl MOD80_02232D7C + ldr r0, _02232450 ; =0x000005DC + bl FUN_020054C8 + b _022323FE +_022323F6: + add r0, r5, #0 + add r0, #0xba + mov r4, #1 + strh r2, [r0] +_022323FE: + cmp r4, #0 + beq _02232420 + ldr r0, _02232450 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + add r0, #0xba + ldrh r0, [r0] + ldr r1, _02232454 ; =0x022372C0 + ldr r2, _02232458 ; =0x022372C2 + lsl r3, r0, #2 + ldr r0, _0223245C ; =0x00000D5C + ldrh r1, [r1, r3] + ldrh r2, [r2, r3] + ldr r0, [r5, r0] + bl MOD80_0222E6E4 +_02232420: + add r0, r5, #0 + add r0, #0xba + ldrh r0, [r0] + cmp r0, #0x1f + beq _0223242E + cmp r0, #5 + bhi _0223243A +_0223242E: + ldr r0, _0223245C ; =0x00000D5C + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_02020238 + pop {r4, r5, r6, pc} +_0223243A: + ldr r0, _0223245C ; =0x00000D5C + mov r1, #1 + ldr r0, [r5, r0] + bl FUN_02020238 + pop {r4, r5, r6, pc} + nop +_02232448: .word 0x021C48B8 +_0223244C: .word 0x02237340 +_02232450: .word 0x000005DC +_02232454: .word 0x022372C0 +_02232458: .word 0x022372C2 +_0223245C: .word 0x00000D5C + thumb_func_end MOD80_0223237C + + thumb_func_start MOD80_02232460 +MOD80_02232460: ; 0x02232460 + add r0, r0, r2 + bpl _02232468 + sub r0, r1, #1 + bx lr +_02232468: + cmp r0, r1 + bne _0223246E + mov r0, #0 +_0223246E: + bx lr + thumb_func_end MOD80_02232460 + + thumb_func_start MOD80_02232470 +MOD80_02232470: ; 0x02232470 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0 + add r2, sp, #8 + strb r0, [r2, #8] + mov r0, #1 + strb r0, [r2, #9] + mov r0, #3 + strb r0, [r2, #0xa] + ldrb r3, [r2, #0xb] + mov r1, #0xf + bic r3, r1 + strb r3, [r2, #0xb] + ldrb r3, [r2, #0xb] + mov r1, #0x30 + bic r3, r1 + strb r3, [r2, #0xb] + ldrb r3, [r2, #0xb] + mov r1, #0xc0 + bic r3, r1 + mov r1, #0x3e + strb r3, [r2, #0xb] + bl FUN_02012838 + ldr r1, _02232510 ; =0x00000FC8 + mov r2, #0x5e + str r0, [r4, r1] + ldr r0, [r4, r1] + ldr r1, _02232514 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl FUN_02012880 + ldr r0, _02232510 ; =0x00000FC8 + ldr r1, _02232514 ; =0x00000B34 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x5f + mov r3, #2 + bl FUN_02012880 + ldr r0, _02232510 ; =0x00000FC8 + ldr r1, _02232514 ; =0x00000B34 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x60 + mov r3, #3 + bl FUN_02012880 + ldr r0, _02232510 ; =0x00000FC8 + mov r2, #0x1f + ldr r1, [r4, r0] + sub r0, #0xf0 + str r1, [sp, #8] + add r0, r4, r0 + mov r1, #1 + mov r3, #0xb + str r0, [sp, #0xc] + bl FUN_0200CCA4 + mov r0, #0x3e + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #8 + mov r1, #9 + add r3, r2, #0 + bl FUN_02001C14 + mov r1, #0xfd + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #8 + str r0, [r4, #0x2c] + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02232510: .word 0x00000FC8 +_02232514: .word 0x00000B34 + thumb_func_end MOD80_02232470 + + thumb_func_start MOD80_02232518 +MOD80_02232518: ; 0x02232518 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02001C78 + cmp r0, #3 + bhi _0223253C + cmp r0, #1 + blo _0223253A + beq _02232546 + cmp r0, #2 + beq _02232574 + cmp r0, #3 + beq _0223262E +_0223253A: + b _0223265A +_0223253C: + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0223262E + b _0223265A +_02232546: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _02232660 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02232664 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + mov r0, #2 + str r0, [r5, #0x2c] + add r0, r5, #0 + mov r1, #8 + mov r2, #5 + bl MOD80_0222E7A8 + b _0223265A +_02232574: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _02232660 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02232664 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + bl MOD80_02233018 + cmp r0, #0 + beq _022325CE + ldr r0, _02232668 ; =0x00000F0F + mov r2, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x25 + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #4 + mov r2, #1 + bl MOD80_0222E6DC + b _0223265A +_022325CE: + add r0, r5, #0 + add r0, #0xb8 + ldrh r0, [r0] + mov r4, #0 + bl MOD80_02232FAC + cmp r0, #0 + beq _022325FE + add r1, r5, #0 + ldr r0, [r5] + add r1, #0xba + ldrh r1, [r1] + ldr r0, [r0, #8] + bl FUN_0206B9B0 + mov r1, #0xa1 + add r2, r4, #0 + bl FUN_020671BC + cmp r0, #0 + beq _022325FE + mov r0, #0xe + mov r4, #1 + str r0, [r5, #0x2c] +_022325FE: + cmp r4, #0 + bne _0223265A + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + add r1, r5, #0 + add r1, #0xbc + str r0, [r1] + mov r0, #2 + str r0, [r5, #0x2c] + add r0, r5, #0 + mov r1, #6 + mov r2, #0 + bl MOD80_0222E7A8 + b _0223265A +_0223262E: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _02232660 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02232664 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _0223266C ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200D0E0 + mov r0, #1 + str r0, [r5, #0x2c] +_0223265A: + mov r0, #3 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_02232660: .word 0x00000FC8 +_02232664: .word 0x00000ED8 +_02232668: .word 0x00000F0F +_0223266C: .word 0x00000E98 + thumb_func_end MOD80_02232518 + + thumb_func_start MOD80_02232670 +MOD80_02232670: ; 0x02232670 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0 + add r2, sp, #8 + strb r0, [r2, #8] + mov r0, #1 + strb r0, [r2, #9] + mov r0, #3 + strb r0, [r2, #0xa] + ldrb r3, [r2, #0xb] + mov r1, #0xf + bic r3, r1 + strb r3, [r2, #0xb] + ldrb r3, [r2, #0xb] + mov r1, #0x30 + bic r3, r1 + strb r3, [r2, #0xb] + ldrb r3, [r2, #0xb] + mov r1, #0xc0 + bic r3, r1 + mov r1, #0x3e + strb r3, [r2, #0xb] + bl FUN_02012838 + ldr r1, _02232710 ; =0x00000FC8 + mov r2, #0x54 + str r0, [r4, r1] + ldr r0, [r4, r1] + ldr r1, _02232714 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl FUN_02012880 + ldr r0, _02232710 ; =0x00000FC8 + ldr r1, _02232714 ; =0x00000B34 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x55 + mov r3, #2 + bl FUN_02012880 + ldr r0, _02232710 ; =0x00000FC8 + ldr r1, _02232714 ; =0x00000B34 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + mov r2, #0x56 + mov r3, #3 + bl FUN_02012880 + ldr r0, _02232710 ; =0x00000FC8 + mov r2, #0x1f + ldr r1, [r4, r0] + sub r0, #0xf0 + str r1, [sp, #8] + add r0, r4, r0 + mov r1, #0 + mov r3, #0xb + str r0, [sp, #0xc] + bl FUN_0200CCA4 + mov r0, #0x3e + str r0, [sp] + mov r0, #2 + mov r2, #0 + str r0, [sp, #4] + add r0, sp, #8 + mov r1, #9 + add r3, r2, #0 + bl FUN_02001C14 + mov r1, #0xfd + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #0xa + str r0, [r4, #0x2c] + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02232710: .word 0x00000FC8 +_02232714: .word 0x00000B34 + thumb_func_end MOD80_02232670 + + thumb_func_start MOD80_02232718 +MOD80_02232718: ; 0x02232718 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02001C78 + cmp r0, #3 + bhi _0223273C + cmp r0, #1 + blo _0223273A + beq _02232746 + cmp r0, #2 + beq _02232774 + cmp r0, #3 + beq _0223280A +_0223273A: + b _02232836 +_0223273C: + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _0223280A + b _02232836 +_02232746: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0223283C ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02232840 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + mov r0, #2 + str r0, [r5, #0x2c] + add r0, r5, #0 + mov r1, #8 + mov r2, #6 + bl MOD80_0222E7A8 + b _02232836 +_02232774: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0223283C ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02232840 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + add r2, r5, #0 + add r3, r5, #0 + ldr r1, [r5] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + bl MOD80_02233018 + cmp r0, #0 + beq _022327CE + ldr r0, _02232844 ; =0x00000F0F + mov r2, #1 + str r0, [sp] + add r0, r5, #0 + mov r1, #0x25 + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r5, #0 + mov r1, #4 + mov r2, #1 + bl MOD80_0222E6DC + b _02232836 +_022327CE: + add r0, r5, #0 + add r0, #0xb8 + ldrh r0, [r0] + mov r4, #0 + bl MOD80_02232FAC + cmp r0, #0 + beq _022327FE + add r1, r5, #0 + ldr r0, [r5] + add r1, #0xba + ldrh r1, [r1] + ldr r0, [r0, #8] + bl FUN_0206B9B0 + mov r1, #0xa1 + add r2, r4, #0 + bl FUN_020671BC + cmp r0, #0 + beq _022327FE + mov r0, #0xb + mov r4, #1 + str r0, [r5, #0x2c] +_022327FE: + cmp r4, #0 + bne _02232836 + add r0, r5, #0 + bl MOD80_02232990 + b _02232836 +_0223280A: + mov r0, #0xfd + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_02001C5C + ldr r0, _0223283C ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02232840 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02232848 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200D0E0 + mov r0, #1 + str r0, [r5, #0x2c] +_02232836: + mov r0, #3 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223283C: .word 0x00000FC8 +_02232840: .word 0x00000ED8 +_02232844: .word 0x00000F0F +_02232848: .word 0x00000E98 + thumb_func_end MOD80_02232718 + + thumb_func_start MOD80_0223284C +MOD80_0223284C: ; 0x0223284C + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4, #0x18] + cmp r0, #0 + beq _0223285C + cmp r0, #8 + bne _0223287C +_0223285C: + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, _022328A0 ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + b _02232894 +_0223287C: + mov r0, #6 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 +_02232894: + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + nop +_022328A0: .word 0x0000100C + thumb_func_end MOD80_0223284C + + thumb_func_start MOD80_022328A4 +MOD80_022328A4: ; 0x022328A4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _022328C0 ; =0x000001AD + mov r1, #0xf + bl MOD80_0222E6A8 + ldr r1, _022328C4 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #6 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + nop +_022328C0: .word 0x000001AD +_022328C4: .word 0x00000FCC + thumb_func_end MOD80_022328A4 + + thumb_func_start MOD80_022328C8 +MOD80_022328C8: ; 0x022328C8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022328FC ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _022328F8 + sub r1, r1, #1 + cmp r0, r1 + bne _022328EA + mov r0, #0 + str r0, [r4, #0x2c] + b _022328F8 +_022328EA: + mov r0, #2 + mov r1, #0 + str r0, [r4, #0x2c] + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 +_022328F8: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022328FC: .word 0x00000FCC + thumb_func_end MOD80_022328C8 + + thumb_func_start MOD80_02232900 +MOD80_02232900: ; 0x02232900 + push {r4, lr} + sub sp, #8 + ldr r1, _02232928 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r2, #1 + mov r1, #0x19 + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r4, #0 + mov r1, #3 + mov r2, #0xc + bl MOD80_0222E6DC + mov r0, #3 + add sp, #8 + pop {r4, pc} + nop +_02232928: .word 0x00000F0F + thumb_func_end MOD80_02232900 + + thumb_func_start MOD80_0223292C +MOD80_0223292C: ; 0x0223292C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _02232948 ; =0x000001AD + mov r1, #0xd + bl MOD80_0222E6A8 + ldr r1, _0223294C ; =0x00000FCC + str r0, [r4, r1] + mov r0, #0xd + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + nop +_02232948: .word 0x000001AD +_0223294C: .word 0x00000FCC + thumb_func_end MOD80_0223292C + + thumb_func_start MOD80_02232950 +MOD80_02232950: ; 0x02232950 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02232988 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02232982 + sub r1, r1, #1 + cmp r0, r1 + bne _0223297C + ldr r0, _0223298C ; =0x00000FB8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200D0E0 + mov r0, #1 + str r0, [r4, #0x2c] + b _02232982 +_0223297C: + add r0, r4, #0 + bl MOD80_02232990 +_02232982: + mov r0, #3 + pop {r4, pc} + nop +_02232988: .word 0x00000FCC +_0223298C: .word 0x00000FB8 + thumb_func_end MOD80_02232950 + + thumb_func_start MOD80_02232990 +MOD80_02232990: ; 0x02232990 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + mov r1, #0x7e + add r0, #0xc4 + lsl r1, r1, #2 + add r2, r4, r1 + ldr r0, [r0] + sub r1, #0xd4 + mul r1, r0 + add r0, r2, r1 + bl MOD80_022331F8 + cmp r0, #0 + beq _022329E6 + add r0, r4, #0 + add r0, #0xb8 + ldrh r0, [r0] + cmp r0, #0x12 + beq _022329E6 + ldr r0, [r4] + ldr r0, [r0, #8] + bl FUN_0206B9AC + cmp r0, #6 + bne _022329E6 + ldr r0, _02232A2C ; =0x00000F0F + mov r2, #1 + str r0, [sp] + add r0, r4, #0 + mov r1, #0x1c + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r4, #0 + mov r1, #4 + mov r2, #1 + bl MOD80_0222E6DC + add sp, #8 + mov r0, #0 + pop {r4, pc} +_022329E6: + add r2, r4, #0 + add r3, r4, #0 + ldr r1, [r4] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + add r1, r4, #0 + add r1, #0xbc + str r0, [r1] + mov r0, #2 + str r0, [r4, #0x2c] + ldr r0, _02232A30 ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #7 + mov r2, #9 + bl MOD80_0222E7A8 + add r0, r4, #0 + add r0, #0xd4 + add r1, r4, #0 + bl MOD80_0223311C + mov r0, #0 + add r4, #0xc0 + str r0, [r4] + mov r0, #1 + add sp, #8 + pop {r4, pc} + .align 2, 0 +_02232A2C: .word 0x00000F0F +_02232A30: .word 0x0000100C + thumb_func_end MOD80_02232990 + + thumb_func_start MOD80_02232A34 +MOD80_02232A34: ; 0x02232A34 + push {r4, lr} + sub sp, #8 + ldr r1, _02232A5C ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r2, #1 + mov r1, #0x19 + mov r3, #0 + str r2, [sp, #4] + bl MOD80_02232B34 + add r0, r4, #0 + mov r1, #3 + mov r2, #0xf + bl MOD80_0222E6DC + mov r0, #3 + add sp, #8 + pop {r4, pc} + nop +_02232A5C: .word 0x00000F0F + thumb_func_end MOD80_02232A34 + + thumb_func_start MOD80_02232A60 +MOD80_02232A60: ; 0x02232A60 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _02232A7C ; =0x000001AD + mov r1, #0xd + bl MOD80_0222E6A8 + ldr r1, _02232A80 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #0x10 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + nop +_02232A7C: .word 0x000001AD +_02232A80: .word 0x00000FCC + thumb_func_end MOD80_02232A60 + + thumb_func_start MOD80_02232A84 +MOD80_02232A84: ; 0x02232A84 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02232AE0 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02232ADA + sub r1, r1, #1 + cmp r0, r1 + bne _02232AB0 + ldr r0, _02232AE4 ; =0x00000FB8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200D0E0 + mov r0, #1 + str r0, [r4, #0x2c] + b _02232ADA +_02232AB0: + add r2, r4, #0 + add r3, r4, #0 + ldr r1, [r4] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + add r1, r4, #0 + add r1, #0xbc + str r0, [r1] + mov r0, #2 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #6 + mov r2, #0 + bl MOD80_0222E7A8 +_02232ADA: + mov r0, #3 + pop {r4, pc} + nop +_02232AE0: .word 0x00000FCC +_02232AE4: .word 0x00000FB8 + thumb_func_end MOD80_02232A84 + + thumb_func_start MOD80_02232AE8 +MOD80_02232AE8: ; 0x02232AE8 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02232B02 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02232B02: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02232AE8 + + thumb_func_start MOD80_02232B08 +MOD80_02232B08: ; 0x02232B08 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02232B2C + ldr r0, _02232B30 ; =0x00000FB8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200D0E0 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02232B2C: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02232B30: .word 0x00000FB8 + thumb_func_end MOD80_02232B08 + + thumb_func_start MOD80_02232B34 +MOD80_02232B34: ; 0x02232B34 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _02232B9C ; =0x00000B34 + add r6, r2, #0 + ldr r0, [r5, r0] + bl FUN_0200A914 + mov r1, #0xb3 + add r7, r0, #0 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, #0x1c + ldr r1, [r5, r1] + add r2, r7, #0 + bl FUN_0200B7B8 + ldr r0, [sp, #0x24] + cmp r0, #0 + bne _02232B60 + ldr r0, _02232BA0 ; =0x00000E98 + b _02232B62 +_02232B60: + ldr r0, _02232BA4 ; =0x00000FB8 +_02232B62: + add r4, r5, r0 + add r0, r4, #0 + mov r1, #0xf + bl FUN_02019620 + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r6, [sp, #4] + ldr r2, _02232BA8 ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r4, #0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add r0, r7, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02232B9C: .word 0x00000B34 +_02232BA0: .word 0x00000E98 +_02232BA4: .word 0x00000FB8 +_02232BA8: .word 0x00000B4C + thumb_func_end MOD80_02232B34 + + thumb_func_start MOD80_02232BAC +MOD80_02232BAC: ; 0x02232BAC + push {r3, r4, r5, lr} + add r5, r2, #0 + add r2, r3, #0 + bl FUN_02006704 + add r4, r0, #0 + beq _02232BCE + add r1, r5, #0 + bl FUN_020B0030 + cmp r0, #0 + bne _02232BCE + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #0 + pop {r3, r4, r5, pc} +_02232BCE: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_02232BAC + + thumb_func_start MOD80_02232BD4 +MOD80_02232BD4: ; 0x02232BD4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r1, #0 + add r6, r2, #0 + add r1, r6, #0 + add r2, r5, #0 + str r0, [sp] + add r7, r3, #0 + ldr r4, [sp, #0x28] + bl FUN_0206B6D4 + add r1, r0, #0 + ldr r0, [sp, #0x24] + add r2, sp, #8 + mov r3, #0x3e + bl MOD80_02232BAC + str r0, [sp, #4] + ldr r0, [sp, #8] + add r1, r4, #0 + mov r2, #2 + ldr r0, [r0, #0x14] + add r1, #0xc + lsl r2, r2, #8 + bl MIi_CpuCopyFast + lsl r0, r7, #4 + add r0, #0xc + lsl r0, r0, #5 + str r0, [r4] + ldr r0, [sp, #0x20] + add r1, r5, #0 + str r0, [r4, #8] + ldr r0, [sp] + add r2, r6, #0 + bl FUN_0206B7BC + add r0, r0, #3 + str r0, [r4, #4] + ldr r0, [sp, #4] + bl FUN_02016A18 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD80_02232BD4 + + thumb_func_start MOD80_02232C2C +MOD80_02232C2C: ; 0x02232C2C + push {r4, lr} + add r4, r1, #0 + bl FUN_020687C8 + strb r0, [r4, #3] + pop {r4, pc} + thumb_func_end MOD80_02232C2C + + thumb_func_start MOD80_02232C38 +MOD80_02232C38: ; 0x02232C38 + push {r3, r4, r5, r6, r7, lr} + ldr r1, _02232C84 ; =0x00001010 + mov r6, #2 + lsl r6, r6, #8 + add r7, r6, #0 + ldr r5, [r0, r1] + str r0, [sp] + mov r4, #0 + add r7, #0xc +_02232C4A: + ldr r0, [r5, #8] + cmp r0, #0 + beq _02232C6E + add r0, r5, #0 + add r0, #0xc + add r1, r6, #0 + bl DC_FlushRange + add r0, r5, #0 + ldr r1, [r5] + add r0, #0xc + add r2, r6, #0 + bl GX_LoadOBJ + ldr r0, [r5, #8] + ldr r1, [r5, #4] + bl FUN_02020248 +_02232C6E: + add r4, r4, #1 + add r5, r5, r7 + cmp r4, #0x1e + blt _02232C4A + ldr r1, _02232C84 ; =0x00001010 + ldr r0, [sp] + ldr r0, [r0, r1] + bl FUN_02016A18 + pop {r3, r4, r5, r6, r7, pc} + nop +_02232C84: .word 0x00001010 + thumb_func_end MOD80_02232C38 + + thumb_func_start MOD80_02232C88 +MOD80_02232C88: ; 0x02232C88 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + str r1, [sp, #0xc] + add r7, r2, #0 + add r6, r3, #0 + ldr r4, [sp, #0x40] + bl FUN_02066A6C + add r0, r5, #0 + mov r1, #0xab + mov r2, #0 + bl FUN_020672BC + str r0, [sp, #0x1c] + add r0, r5, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + strh r0, [r6] + add r0, r5, #0 + mov r1, #0x70 + mov r2, #0 + bl FUN_020672BC + str r0, [sp, #0x10] + add r0, r5, #0 + mov r1, #0x4c + mov r2, #0 + bl FUN_020672BC + str r0, [sp, #0x14] + add r0, r5, #0 + mov r1, #6 + mov r2, #0 + bl FUN_020672BC + str r0, [sp, #0x18] + ldrh r0, [r6] + mov r1, #0x6f + mov r2, #0 + strh r0, [r4] + add r0, r5, #0 + bl FUN_020672BC + add r0, r0, #1 + strb r0, [r4, #2] + ldr r0, [sp, #0x14] + cmp r0, #0 + beq _02232CF2 + mov r0, #0 + strb r0, [r4, #3] +_02232CF2: + add r0, r5, #0 + mov r1, #1 + bl FUN_02066A94 + ldr r0, [sp, #0x1c] + cmp r0, #0 + beq _02232D60 + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x10] + str r0, [sp] + ldr r0, [sp, #0x3c] + ldr r2, [sp, #0x14] + str r0, [sp, #4] + ldr r0, [sp, #0x44] + ldr r3, [sp, #0x38] + str r0, [sp, #8] + ldrh r0, [r6] + bl MOD80_02232BD4 + ldr r0, [sp, #0xc] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [sp, #0x18] + cmp r0, #0 + beq _02232D54 + add r0, r7, #0 + mov r1, #1 + bl FUN_020200A0 + ldr r0, [sp, #0x18] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0206EA98 + cmp r0, #0 + beq _02232D48 + add r0, r7, #0 + mov r1, #0x29 + bl FUN_02020130 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} +_02232D48: + add r0, r7, #0 + mov r1, #0x28 + bl FUN_02020130 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} +_02232D54: + add r0, r7, #0 + mov r1, #0 + bl FUN_020200A0 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} +_02232D60: + ldr r0, [sp, #0xc] + mov r1, #0 + bl FUN_020200A0 + add r0, r7, #0 + mov r1, #0 + bl FUN_020200A0 + ldr r0, [sp, #0x44] + mov r1, #0 + str r1, [r0, #8] + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD80_02232C88 + + thumb_func_start MOD80_02232D7C +MOD80_02232D7C: ; 0x02232D7C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x68 + add r5, r0, #0 + ldr r0, [r5] + str r1, [sp, #0x10] + ldr r0, [r0, #0xc] + ldr r1, _02232F7C ; =0x00003D68 + str r0, [sp, #0x20] + mov r0, #3 + bl FUN_020169D8 + ldr r1, _02232F80 ; =0x00001010 + str r0, [sp, #0x18] + str r0, [r5, r1] + mov r0, #0x13 + mov r1, #0x3e + bl FUN_02006670 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x10] + cmp r0, #0 + blt _02232E3A + cmp r0, #0x12 + bge _02232E3A + ldr r6, _02232F84 ; =0x00001004 + mov r4, #0 +_02232DB0: + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x10] + add r2, r4, #0 + bl FUN_0206B5E4 + ldr r2, [r5, r6] + lsl r1, r4, #2 + add r1, r2, r1 + bl MOD80_02232C2C + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x1e + blo _02232DB0 + mov r4, #0 +_02232DD0: + ldr r0, _02232F84 ; =0x00001004 + lsl r6, r4, #2 + ldr r1, [r5, r0] + mov r0, #0 + strh r0, [r1, r6] + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x10] + add r2, r4, #0 + add r7, r5, r6 + bl FUN_0206B5E4 + ldr r1, [sp, #0x1c] + str r4, [sp] + str r1, [sp, #4] + ldr r1, _02232F84 ; =0x00001004 + add r2, r4, #0 + ldr r1, [r5, r1] + add r3, sp, #0x2c + add r1, r1, r6 + str r1, [sp, #8] + mov r1, #0x83 + lsl r1, r1, #2 + mul r2, r1 + ldr r1, [sp, #0x18] + lsl r6, r4, #1 + add r1, r1, r2 + str r1, [sp, #0xc] + ldr r1, _02232F88 ; =0x00000D64 + ldr r2, _02232F8C ; =0x00000DDC + ldr r1, [r7, r1] + ldr r2, [r7, r2] + add r3, r3, r6 + bl MOD80_02232C88 + cmp r4, #6 + bhs _02232E22 + ldr r0, _02232F90 ; =0x00000E54 + mov r1, #0 + ldr r0, [r7, r0] + bl FUN_020200A0 +_02232E22: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x1e + blo _02232DD0 + ldr r2, _02232F94 ; =0x00000B44 + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x10] + ldr r2, [r5, r2] + bl FUN_0206B484 + b _02232F22 +_02232E3A: + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_0206B9AC + mov r4, #0 + str r0, [sp, #0x14] + cmp r0, #0 + ble _02232EC8 +_02232E4A: + ldr r0, [r5] + add r1, r4, #0 + ldr r0, [r0, #8] + bl FUN_0206B9B0 + str r0, [sp, #0x24] + bl FUN_020690E4 + ldr r1, _02232F84 ; =0x00001004 + lsl r6, r4, #2 + ldr r1, [r5, r1] + str r0, [sp, #0x28] + add r1, r1, r6 + bl MOD80_02232C2C + ldr r0, [sp, #0x1c] + str r4, [sp] + str r0, [sp, #4] + ldr r0, _02232F84 ; =0x00001004 + add r1, r4, #0 + ldr r0, [r5, r0] + ldr r2, _02232F8C ; =0x00000DDC + add r0, r0, r6 + str r0, [sp, #8] + mov r0, #0x83 + lsl r0, r0, #2 + mul r1, r0 + ldr r0, [sp, #0x18] + add r7, r5, r6 + add r0, r0, r1 + str r0, [sp, #0xc] + ldr r1, _02232F88 ; =0x00000D64 + ldr r0, [sp, #0x28] + ldr r1, [r7, r1] + ldr r2, [r7, r2] + lsl r6, r4, #1 + add r3, sp, #0x2c + add r3, r3, r6 + bl MOD80_02232C88 + ldr r0, [sp, #0x24] + mov r1, #0xa1 + mov r2, #0 + bl FUN_020671BC + cmp r0, #0 + ldr r0, _02232F90 ; =0x00000E54 + beq _02232EB4 + ldr r0, [r7, r0] + mov r1, #1 + bl FUN_020200A0 + b _02232EBC +_02232EB4: + ldr r0, [r7, r0] + mov r1, #0 + bl FUN_020200A0 +_02232EBC: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + ldr r0, [sp, #0x14] + cmp r4, r0 + blt _02232E4A +_02232EC8: + cmp r4, #0x1e + bhs _02232F14 + mov r7, #0 +_02232ECE: + ldr r0, _02232F84 ; =0x00001004 + lsl r1, r4, #2 + ldr r0, [r5, r0] + add r6, r5, r1 + strh r7, [r0, r1] + ldr r0, _02232F88 ; =0x00000D64 + add r1, r7, #0 + ldr r0, [r6, r0] + bl FUN_020200A0 + ldr r0, _02232F8C ; =0x00000DDC + mov r1, #0 + ldr r0, [r6, r0] + bl FUN_020200A0 + mov r0, #0x83 + lsl r0, r0, #2 + add r1, r4, #0 + mul r1, r0 + ldr r0, [sp, #0x18] + add r1, r0, r1 + mov r0, #0 + str r0, [r1, #8] + cmp r4, #6 + bhs _02232F0A + ldr r0, _02232F90 ; =0x00000E54 + mov r1, #0 + ldr r0, [r6, r0] + bl FUN_020200A0 +_02232F0A: + add r0, r4, #1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + cmp r4, #0x1e + blo _02232ECE +_02232F14: + ldr r2, _02232F98 ; =0x00000B34 + mov r1, #0x59 + ldr r0, [r5, r2] + add r2, #0x10 + ldr r2, [r5, r2] + bl FUN_0200A8E0 +_02232F22: + ldr r0, [sp, #0x1c] + bl FUN_020066F4 + ldr r0, _02232F9C ; =0x00000EC8 + mov r1, #0 + add r0, r5, r0 + bl FUN_02019620 + mov r0, #1 + str r0, [sp] + ldr r0, _02232FA0 ; =0x00010200 + ldr r1, _02232F94 ; =0x00000B44 + str r0, [sp, #4] + ldr r0, _02232F9C ; =0x00000EC8 + ldr r1, [r5, r1] + add r0, r5, r0 + mov r2, #0 + mov r3, #5 + bl MOD80_02236D50 + ldr r0, [r5, #0x24] + cmp r0, #6 + bne _02232F72 + add r3, r5, #0 + add r3, #0xc4 + mov r2, #0xba + ldr r4, [r3] + mov r3, #0x49 + ldr r0, _02232F84 ; =0x00001004 + lsl r2, r2, #2 + lsl r3, r3, #2 + ldr r1, _02232F88 ; =0x00000D64 + add r2, r5, r2 + mul r3, r4 + add r2, r2, r3 + ldr r0, [r5, r0] + ldr r3, [sp, #0x18] + add r1, r5, r1 + bl MOD80_022331C4 +_02232F72: + ldr r1, _02232FA4 ; =MOD80_02232C38 + ldr r0, _02232FA8 ; =0x00001014 + str r1, [r5, r0] + add sp, #0x68 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02232F7C: .word 0x00003D68 +_02232F80: .word 0x00001010 +_02232F84: .word 0x00001004 +_02232F88: .word 0x00000D64 +_02232F8C: .word 0x00000DDC +_02232F90: .word 0x00000E54 +_02232F94: .word 0x00000B44 +_02232F98: .word 0x00000B34 +_02232F9C: .word 0x00000EC8 +_02232FA0: .word 0x00010200 +_02232FA4: .word MOD80_02232C38 +_02232FA8: .word 0x00001014 + thumb_func_end MOD80_02232D7C + + thumb_func_start MOD80_02232FAC +MOD80_02232FAC: ; 0x02232FAC + cmp r0, #0x12 + bne _02232FB4 + mov r0, #1 + bx lr +_02232FB4: + mov r0, #0 + bx lr + thumb_func_end MOD80_02232FAC + + thumb_func_start MOD80_02232FB8 +MOD80_02232FB8: ; 0x02232FB8 + push {r3, r4, r5, r6, r7, lr} + add r6, r2, #0 + add r5, r0, #0 + add r0, r6, #0 + add r7, r1, #0 + add r4, r3, #0 + bl MOD80_02232FAC + cmp r0, #0 + beq _02232FEA + add r0, r5, #0 + bl FUN_0206B9AC + sub r0, r0, #1 + cmp r4, r0 + ble _02232FDC + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_02232FDC: + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0206B9B0 + bl FUN_020690E4 + pop {r3, r4, r5, r6, r7, pc} +_02232FEA: + add r0, r7, #0 + add r1, r6, #0 + add r2, r4, #0 + bl FUN_0206B5E4 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD80_02232FB8 + + thumb_func_start MOD80_02232FF8 +MOD80_02232FF8: ; 0x02232FF8 + push {r4, lr} + add r4, r0, #0 + add r0, r2, #0 + bl MOD80_02232FAC + cmp r0, #0 + beq _02233014 + add r0, r4, #0 + bl FUN_0206B9AC + cmp r0, #2 + bge _02233014 + mov r0, #0 + pop {r4, pc} +_02233014: + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_02232FF8 + + thumb_func_start MOD80_02233018 +MOD80_02233018: ; 0x02233018 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r4, #0 + bl FUN_02066A6C + ldr r5, _02233050 ; =0x02237220 + str r0, [sp] + add r6, r4, #0 +_02233028: + ldrh r1, [r5] + add r0, r7, #0 + mov r2, #0 + bl FUN_020672BC + add r6, r6, #1 + add r4, r4, r0 + add r5, r5, #2 + cmp r6, #0xa + blt _02233028 + ldr r1, [sp] + add r0, r7, #0 + bl FUN_02066A94 + cmp r4, #0 + beq _0223304C + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0223304C: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02233050: .word 0x02237220 + thumb_func_end MOD80_02233018 + + thumb_func_start MOD80_02233054 +MOD80_02233054: ; 0x02233054 + push {r4, lr} + bl MOD80_02232FB8 + add r4, r0, #0 + bne _02233062 + mov r0, #0 + pop {r4, pc} +_02233062: + mov r1, #0xab + mov r2, #0 + bl FUN_020672BC + cmp r0, #0 + bne _02233072 + mov r0, #0 + pop {r4, pc} +_02233072: + add r0, r4, #0 + mov r1, #0xac + mov r2, #0 + bl FUN_020672BC + cmp r0, #0 + beq _02233084 + mov r0, #2 + pop {r4, pc} +_02233084: + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_02233054 + + thumb_func_start MOD80_02233088 +MOD80_02233088: ; 0x02233088 + push {r3, r4} + mov r4, #0 + ldrsh r3, [r0, r4] + ldrsh r2, [r1, r4] + cmp r3, r2 + beq _0223309A + add r0, r4, #0 + pop {r3, r4} + bx lr +_0223309A: + mov r2, #2 + ldrsb r3, [r1, r2] + cmp r3, #3 + beq _022330AE + ldrsb r2, [r0, r2] + cmp r3, r2 + beq _022330AE + add r0, r4, #0 + pop {r3, r4} + bx lr +_022330AE: + mov r2, #3 + ldrsb r3, [r0, r2] + cmp r3, #0 + bne _022330BC + mov r0, #0 + pop {r3, r4} + bx lr +_022330BC: + ldrsb r0, [r1, r2] + cmp r0, #0 + beq _022330CC + cmp r0, r3 + ble _022330CC + mov r0, #0 + pop {r3, r4} + bx lr +_022330CC: + mov r0, #4 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _022330DE + cmp r0, r3 + bge _022330DE + mov r0, #0 + pop {r3, r4} + bx lr +_022330DE: + mov r0, #1 + pop {r3, r4} + bx lr + thumb_func_end MOD80_02233088 + + thumb_func_start MOD80_022330E4 +MOD80_022330E4: ; 0x022330E4 + push {r3, r4, r5, lr} + add r4, r1, #0 + mov r1, #5 + mov r2, #0 + add r5, r0, #0 + bl FUN_020672BC + add r1, sp, #0 + strh r0, [r1] + add r0, r5, #0 + mov r1, #0x6f + mov r2, #0 + bl FUN_020672BC + add r1, r0, #1 + add r0, sp, #0 + strb r1, [r0, #2] + add r0, r5, #0 + bl FUN_020687C8 + add r1, sp, #0 + strb r0, [r1, #3] + add r0, sp, #0 + add r1, r4, #0 + bl MOD80_02233088 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_022330E4 + + thumb_func_start MOD80_0223311C +MOD80_0223311C: ; 0x0223311C + push {r4, r5, lr} + sub sp, #0xc + add r5, r1, #0 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0xbc + ldr r0, [r0] + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + add r1, sp, #0 + strh r0, [r1, #6] + add r0, r5, #0 + add r0, #0xbc + ldr r0, [r0] + mov r1, #0x6f + mov r2, #0 + bl FUN_020672BC + add r1, r0, #1 + add r0, sp, #0 + strb r1, [r0, #8] + add r0, r5, #0 + add r0, #0xbc + ldr r0, [r0] + bl FUN_020687C8 + add r1, sp, #0 + strb r0, [r1, #9] + add r0, r4, #0 + ldrh r2, [r1, #6] + add r0, #0xec + strh r2, [r0] + add r0, r4, #0 + ldrh r1, [r1, #8] + add r0, #0xee + strh r1, [r0] + add r0, r4, #0 + add r1, r5, #0 + bl MOD80_02234288 + mov r0, #0x7e + lsl r0, r0, #2 + add r2, r5, r0 + add r5, #0xc4 + ldr r1, [r5] + sub r0, #0xd4 + mul r0, r1 + add r0, r2, r0 + bl FUN_020690E4 + mov r1, #5 + mov r2, #0 + add r5, r0, #0 + bl FUN_020672BC + add r1, sp, #0 + strh r0, [r1] + add r0, r5, #0 + mov r1, #0x6f + mov r2, #0 + bl FUN_020672BC + add r0, r0, #1 + add r1, sp, #0 + strb r0, [r1, #2] + mov r0, #0 + strb r0, [r1, #3] + strb r0, [r1, #4] + add r0, r4, #0 + ldrh r2, [r1] + add r0, #0xf0 + strh r2, [r0] + add r0, r4, #0 + ldrh r2, [r1, #2] + add r0, #0xf2 + add r4, #0xf4 + strh r2, [r0] + ldrh r0, [r1, #4] + strh r0, [r4] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_0223311C + + thumb_func_start MOD80_022331C4 +MOD80_022331C4: ; 0x022331C4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r2, #0 + add r4, r3, #0 + mov r6, #0 +_022331CE: + mov r0, #0 + ldrsh r0, [r5, r0] + cmp r0, #0 + beq _022331E8 + add r0, r5, #0 + add r1, r7, #0 + bl MOD80_02233088 + cmp r0, #0 + bne _022331E8 + ldr r0, [r4, #4] + add r0, r0, #3 + str r0, [r4, #4] +_022331E8: + mov r0, #0x83 + lsl r0, r0, #2 + add r6, r6, #1 + add r5, r5, #4 + add r4, r4, r0 + cmp r6, #0x1e + blt _022331CE + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD80_022331C4 + + thumb_func_start MOD80_022331F8 +MOD80_022331F8: ; 0x022331F8 + push {r3, lr} + mov r1, #6 + mov r2, #0 + bl FUN_020671BC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0206EA98 + cmp r0, #0 + beq _02233212 + mov r0, #1 + pop {r3, pc} +_02233212: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD80_022331F8 + + thumb_func_start MOD80_02233218 +MOD80_02233218: ; 0x02233218 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_02233618 + ldr r0, [r4, #4] + bl MOD80_02233358 + add r0, r4, #0 + bl MOD80_0223346C + add r0, r4, #0 + bl MOD80_02233500 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + add r0, r4, #0 + bl MOD80_02236D84 + mov r0, #0 + str r0, [sp] + mov r0, #3 + ldr r2, _02233298 ; =0x00000B34 + str r0, [sp, #4] + sub r0, r0, #4 + str r0, [sp, #8] + add r1, r2, #4 + ldr r0, [r4, r2] + sub r2, r2, #4 + ldr r3, _0223329C ; =0x00000F08 + ldr r1, [r4, r1] + ldr r2, [r4, r2] + add r3, r4, r3 + bl MOD80_02233FB4 + ldr r1, _022332A0 ; =0x00000B18 + add r3, r4, #0 + add r0, r4, r1 + str r0, [sp] + add r0, r1, #0 + add r0, #0x1c + add r1, #0x18 + ldr r2, _022332A4 ; =0x00000F38 + add r3, #0xbc + ldr r0, [r4, r0] + ldr r1, [r4, r1] + ldr r3, [r3] + add r2, r4, r2 + bl MOD80_022340DC + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_02233298: .word 0x00000B34 +_0223329C: .word 0x00000F08 +_022332A0: .word 0x00000B18 +_022332A4: .word 0x00000F38 + thumb_func_end MOD80_02233218 + + thumb_func_start MOD80_022332A8 +MOD80_022332A8: ; 0x022332A8 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222E79C + bl FUN_02033EEC + ldr r1, [r4, #0x2c] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _022332C4 ; =0x02237B84 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_022332C4: .word 0x02237B84 + thumb_func_end MOD80_022332A8 + + thumb_func_start MOD80_022332C8 +MOD80_022332C8: ; 0x022332C8 + push {r4, lr} + add r4, r0, #0 + bl FUN_02033ED0 + add r0, r4, #0 + bl MOD80_02233684 + add r0, r4, #0 + bl MOD80_022335E0 + ldr r0, [r4, #4] + bl MOD80_02233440 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_022332C8 + + thumb_func_start MOD80_022332EC +MOD80_022332EC: ; 0x022332EC + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _0223334C ; =0x00000B34 + add r4, r2, #0 + ldr r0, [r5, r0] + bl FUN_0200A914 + mov r1, #0xb3 + add r6, r0, #0 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, #0x1c + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + ldr r0, _02233350 ; =0x00000E98 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _02233350 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _02233350 ; =0x00000E98 + ldr r2, _02233354 ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0223334C: .word 0x00000B34 +_02233350: .word 0x00000E98 +_02233354: .word 0x00000B4C + thumb_func_end MOD80_022332EC + + thumb_func_start MOD80_02233358 +MOD80_02233358: ; 0x02233358 + push {r4, r5, lr} + sub sp, #0x8c + ldr r5, _0223342C ; =0x02237420 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x70 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _02233430 ; =0x0223743C + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _02233434 ; =0x02237458 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r5, _02233438 ; =0x02237404 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _0223343C ; =0x022373E8 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + add sp, #0x8c + pop {r4, r5, pc} + nop +_0223342C: .word 0x02237420 +_02233430: .word 0x0223743C +_02233434: .word 0x02237458 +_02233438: .word 0x02237404 +_0223343C: .word 0x022373E8 + thumb_func_end MOD80_02233358 + + thumb_func_start MOD80_02233440 +MOD80_02233440: ; 0x02233440 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_02233440 + + thumb_func_start MOD80_0223346C +MOD80_0223346C: ; 0x0223346C + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x60 + str r0, [sp] + mov r0, #0x3e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x68 + mov r1, #1 + add r3, r2, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r0, #0 + str r0, [sp] + mov r0, #0xa + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0xb + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x68 + mov r1, #0x17 + add r2, r4, #0 + bl FUN_020068C8 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD80_0223346C + + thumb_func_start MOD80_02233500 +MOD80_02233500: ; 0x02233500 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + mov r3, #1 + add r7, r0, #0 + str r3, [sp] + mov r0, #0x1c + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + ldr r1, _022335CC ; =0x00000EB8 + str r0, [sp, #0x10] + ldr r0, [r7, #4] + add r1, r7, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _022335CC ; =0x00000EB8 + mov r1, #0 + add r0, r7, r0 + bl FUN_02019620 + mov r2, #0 + mov r1, #0xb5 + ldr r0, _022335D0 ; =0x000F0E00 + str r2, [sp] + str r0, [sp, #4] + ldr r0, _022335CC ; =0x00000EB8 + lsl r1, r1, #4 + ldr r1, [r7, r1] + add r0, r7, r0 + mov r3, #1 + bl MOD80_02236D1C + mov r0, #0x15 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r3, #2 + ldr r1, _022335D4 ; =0x00000E98 + str r3, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x60 + str r0, [sp, #0x10] + ldr r0, [r7, #4] + add r1, r7, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _022335D4 ; =0x00000E98 + mov r1, #0 + add r0, r7, r0 + bl FUN_02019620 + mov r0, #0 + str r0, [sp, #0x14] + ldr r0, _022335D8 ; =0x00000F08 + ldr r4, _022335DC ; =0x022373D0 + mov r6, #0x96 + add r5, r7, r0 +_0223357E: + ldrh r0, [r4, #2] + add r1, r5, #0 + mov r2, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0xb + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + lsl r0, r6, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldrh r3, [r4] + ldr r0, [r7, #4] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r0, r5, #0 + bl FUN_020191D0 + ldr r0, [sp, #0x14] + add r6, #0x16 + add r0, r0, #1 + add r4, r4, #4 + add r5, #0x10 + str r0, [sp, #0x14] + cmp r0, #6 + blt _0223357E + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_022335CC: .word 0x00000EB8 +_022335D0: .word 0x000F0E00 +_022335D4: .word 0x00000E98 +_022335D8: .word 0x00000F08 +_022335DC: .word 0x022373D0 + thumb_func_end MOD80_02233500 + + thumb_func_start MOD80_022335E0 +MOD80_022335E0: ; 0x022335E0 + push {r4, r5, r6, lr} + add r6, r0, #0 + ldr r0, _0223360C ; =0x00000F08 + mov r4, #0 + add r5, r6, r0 +_022335EA: + add r0, r5, #0 + bl FUN_02019178 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #6 + blt _022335EA + ldr r0, _02233610 ; =0x00000E98 + add r0, r6, r0 + bl FUN_02019178 + ldr r0, _02233614 ; =0x00000EB8 + add r0, r6, r0 + bl FUN_02019178 + pop {r4, r5, r6, pc} + nop +_0223360C: .word 0x00000F08 +_02233610: .word 0x00000E98 +_02233614: .word 0x00000EB8 + thumb_func_end MOD80_022335E0 + + thumb_func_start MOD80_02233618 +MOD80_02233618: ; 0x02233618 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _02233680 ; =0x00000B4C + str r0, [r4, r1] + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0x5a + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #0x3e + mov r1, #0x30 + bl FUN_02016998 + mov r1, #0xfe + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r1, [r4, r1] + mov r0, #0 + mov r2, #0x30 + bl MIi_CpuClearFast + mov r2, #0xfe + lsl r2, r2, #4 + ldr r2, [r4, r2] + mov r0, #0x3e + mov r1, #0 + add r2, #0x1c + bl MOD80_02234204 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r1, [r4, r1] + str r0, [r1, #0x18] + mov r0, #0x3e + bl MOD80_02234228 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r2, [r4, r1] + add r1, #0x38 + str r0, [r2, #0x14] + add r0, r4, r1 + bl MOD80_022346D8 + pop {r4, pc} + .align 2, 0 +_02233680: .word 0x00000B4C + thumb_func_end MOD80_02233618 + + thumb_func_start MOD80_02233684 +MOD80_02233684: ; 0x02233684 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x14] + bl FUN_02016A18 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r0, [r0, #0x18] + bl FUN_02016A18 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02016A18 + ldr r0, _022336C0 ; =0x00000B4C + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0xb5 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + nop +_022336C0: .word 0x00000B4C + thumb_func_end MOD80_02233684 + + thumb_func_start MOD80_022336C4 +MOD80_022336C4: ; 0x022336C4 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl FUN_0200E308 + cmp r0, #0 + beq _022336EC + ldr r0, _022336F4 ; =0x00000F0F + mov r1, #9 + str r0, [sp] + add r0, r4, #0 + mov r2, #1 + mov r3, #0 + bl MOD80_022332EC + add r0, r4, #0 + mov r1, #0x10 + mov r2, #1 + bl MOD80_0222E6DC +_022336EC: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_022336F4: .word 0x00000F0F + thumb_func_end MOD80_022336C4 + + thumb_func_start MOD80_022336F8 +MOD80_022336F8: ; 0x022336F8 + push {r3, r4, lr} + sub sp, #0x14 + ldr r1, _02233770 ; =0x021C48B8 + add r4, r0, #0 + ldr r2, [r1, #0x48] + mov r1, #2 + tst r1, r2 + beq _02233714 + mov r1, #5 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r4, #0x2c] +_02233714: + mov r0, #5 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #0xd + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _02233774 ; =0x0000011A + ldr r1, _02233778 ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0xf + bl FUN_02019064 + ldr r0, _02233778 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #5 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #0xd + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _0223377C ; =0x0000014E + ldr r1, _02233780 ; =0x00000EE8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + ldr r0, _02233780 ; =0x00000EE8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #3 + str r0, [r4, #0x2c] + add sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 +_02233770: .word 0x021C48B8 +_02233774: .word 0x0000011A +_02233778: .word 0x00000ED8 +_0223377C: .word 0x0000014E +_02233780: .word 0x00000EE8 + thumb_func_end MOD80_022336F8 + + thumb_func_start MOD80_02233784 +MOD80_02233784: ; 0x02233784 + push {r4, lr} + ldr r2, _022337AC ; =0x00000FC8 + add r4, r0, #0 + ldr r3, _022337B0 ; =0x00000B34 + add r1, r4, r2 + sub r2, #0xf0 + ldr r3, [r4, r3] + add r2, r4, r2 + bl MOD80_02234370 + ldr r1, _022337B4 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _022337B8 ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #4 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022337AC: .word 0x00000FC8 +_022337B0: .word 0x00000B34 +_022337B4: .word 0x00000FD4 +_022337B8: .word 0x0000FFFF + thumb_func_end MOD80_02233784 + + thumb_func_start MOD80_022337BC +MOD80_022337BC: ; 0x022337BC + push {r4, lr} + add r4, r0, #0 + ldr r0, _02233878 ; =0x00000FD4 + add r1, r4, #0 + ldr r0, [r4, r0] + add r1, #0xb0 + bl MOD80_02234698 + cmp r0, #9 + bhi _022337F0 + add r1, r0, r0 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_022337DC: ; jump table + .short _02233872 - _022337DC - 2 ; case 0 + .short _022337FA - _022337DC - 2 ; case 1 + .short _022337FA - _022337DC - 2 ; case 2 + .short _022337FA - _022337DC - 2 ; case 3 + .short _022337FA - _022337DC - 2 ; case 4 + .short _022337FA - _022337DC - 2 ; case 5 + .short _022337FA - _022337DC - 2 ; case 6 + .short _022337FA - _022337DC - 2 ; case 7 + .short _022337FA - _022337DC - 2 ; case 8 + .short _022337FA - _022337DC - 2 ; case 9 +_022337F0: + mov r1, #1 + mvn r1, r1 + cmp r0, r1 + beq _02233820 + b _02233872 +_022337FA: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #6 + ldr r0, [r4, r0] + add r2, r2, #4 + bl FUN_02001300 + ldr r0, _0223387C ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + mov r0, #5 + str r0, [r4, #0x2c] + ldr r0, _02233880 ; =0x000005DC + bl FUN_020054C8 + b _02233872 +_02233820: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #6 + ldr r0, [r4, r0] + add r2, r2, #4 + bl FUN_02001300 + ldr r0, _0223387C ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _02233884 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _02233888 ; =0x00000E98 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200D0E0 + ldr r0, _02233884 ; =0x00000ED8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _0223388C ; =0x00000EE8 + add r0, r4, r0 + bl FUN_02019178 + mov r1, #5 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r4, #0x2c] + ldr r0, _02233880 ; =0x000005DC + bl FUN_020054C8 +_02233872: + mov r0, #3 + pop {r4, pc} + nop +_02233878: .word 0x00000FD4 +_0223387C: .word 0x00000FC8 +_02233880: .word 0x000005DC +_02233884: .word 0x00000ED8 +_02233888: .word 0x00000E98 +_0223388C: .word 0x00000EE8 + thumb_func_end MOD80_022337BC + + thumb_func_start MOD80_02233890 +MOD80_02233890: ; 0x02233890 + push {r3, r4, lr} + sub sp, #0xc + ldr r3, _022338D4 ; =0x00000B38 + add r4, r0, #0 + ldr r1, [r4, r3] + mov r2, #0xfe + lsl r2, r2, #4 + str r1, [sp] + ldr r1, [r4, r2] + sub r3, r3, #4 + str r1, [sp, #4] + ldr r1, [r4] + ldr r1, [r1, #0x10] + str r1, [sp, #8] + add r1, r2, #0 + sub r1, #0x18 + sub r2, #0xf8 + ldr r3, [r4, r3] + add r1, r4, r1 + add r2, r4, r2 + bl MOD80_022344DC + ldr r1, _022338D8 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _022338DC ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #6 + str r0, [r4, #0x2c] + mov r0, #3 + add sp, #0xc + pop {r3, r4, pc} + nop +_022338D4: .word 0x00000B38 +_022338D8: .word 0x00000FD4 +_022338DC: .word 0x0000FFFF + thumb_func_end MOD80_02233890 + + thumb_func_start MOD80_022338E0 +MOD80_022338E0: ; 0x022338E0 + cmp r1, #0 + beq _022338EE + cmp r1, #0xfe + beq _022338F6 + cmp r1, #0xff + beq _022338FE + b _02233906 +_022338EE: + mov r1, #1 + strb r1, [r0, #2] + add r0, r1, #0 + bx lr +_022338F6: + mov r1, #2 + strb r1, [r0, #2] + mov r0, #1 + bx lr +_022338FE: + mov r1, #3 + strb r1, [r0, #2] + mov r0, #1 + bx lr +_02233906: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD80_022338E0 + + thumb_func_start MOD80_0223390C +MOD80_0223390C: ; 0x0223390C + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, _02233A4C ; =0x00000FD4 + add r1, r4, #0 + ldr r0, [r4, r0] + add r1, #0xb0 + bl MOD80_02234698 + add r5, r0, #0 + mov r0, #1 + mvn r0, r0 + cmp r5, r0 + beq _02233932 + add r0, r0, #1 + cmp r5, r0 + bne _02233930 + b _02233A44 +_02233930: + b _0223398C +_02233932: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #0 + ldr r0, [r4, r0] + add r1, #0xa + add r2, #8 + bl FUN_02001300 + ldr r0, _02233A50 ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _02233A54 ; =0x00000EE8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _02233A58 ; =0x00000ED8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02233A54 ; =0x00000EE8 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0 + str r0, [r4, #0x2c] + ldr r0, _02233A5C ; =0x000005DC + bl FUN_020054C8 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r3, [r4, r0] + add r0, #0x38 + ldrh r2, [r3, #6] + ldrh r1, [r3, #4] + add r0, r4, r0 + add r1, r2, r1 + ldrh r2, [r3, #0xa] + ldrh r3, [r3, #8] + bl MOD80_022346F0 + b _02233A44 +_0223398C: + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r4, r0] + sub r0, #0xc + add r1, r2, #0 + ldr r0, [r4, r0] + add r1, #0xa + add r2, #8 + bl FUN_02001300 + ldr r0, _02233A50 ; =0x00000FC8 + ldr r0, [r4, r0] + bl FUN_02012870 + ldr r0, _02233A58 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _02233A54 ; =0x00000EE8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + ldr r0, _02233A58 ; =0x00000ED8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02233A54 ; =0x00000EE8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02233A60 ; =0x00000B1C + strh r5, [r4, r0] + ldr r0, _02233A5C ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + mov r1, #0x12 + bl FUN_02068678 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r2, [r4, r1] + str r0, [r2, #0x20] + ldr r1, [r4, r1] + ldr r0, _02233A60 ; =0x00000B1C + ldr r1, [r1, #0x20] + add r0, r4, r0 + bl MOD80_022338E0 + cmp r0, #0 + beq _02233A00 + mov r0, #0xa + str r0, [r4, #0x2c] + ldr r0, _02233A64 ; =0x00000B1E + ldrsb r1, [r4, r0] + b _02233A06 +_02233A00: + mov r0, #7 + str r0, [r4, #0x2c] + mov r1, #3 +_02233A06: + ldr r2, _02233A60 ; =0x00000B1C + ldr r3, _02233A68 ; =0x00000F08 + ldrsh r0, [r4, r2] + add r3, r4, r3 + str r0, [sp] + mov r0, #0 + str r1, [sp, #4] + mvn r0, r0 + str r0, [sp, #8] + add r0, r2, #0 + add r1, r2, #0 + add r0, #0x18 + add r1, #0x1c + add r2, #0x14 + ldr r0, [r4, r0] + ldr r1, [r4, r1] + ldr r2, [r4, r2] + bl MOD80_02233FB4 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r3, [r4, r0] + add r0, #0x38 + ldrh r2, [r3, #6] + ldrh r1, [r3, #4] + add r0, r4, r0 + add r1, r2, r1 + ldrh r2, [r3, #0xa] + ldrh r3, [r3, #8] + bl MOD80_022346F0 +_02233A44: + mov r0, #3 + add sp, #0xc + pop {r4, r5, pc} + nop +_02233A4C: .word 0x00000FD4 +_02233A50: .word 0x00000FC8 +_02233A54: .word 0x00000EE8 +_02233A58: .word 0x00000ED8 +_02233A5C: .word 0x000005DC +_02233A60: .word 0x00000B1C +_02233A64: .word 0x00000B1E +_02233A68: .word 0x00000F08 + thumb_func_end MOD80_0223390C + + thumb_func_start MOD80_02233A6C +MOD80_02233A6C: ; 0x02233A6C + push {r3, r4, lr} + sub sp, #0x14 + ldr r1, _02233ABC ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0xa + mov r2, #1 + mov r3, #0 + bl MOD80_022332EC + add r0, r4, #0 + mov r1, #0x10 + mov r2, #8 + bl MOD80_0222E6DC + mov r0, #0xa + str r0, [sp] + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + ldr r0, _02233AC0 ; =0x0000011A + ldr r1, _02233AC4 ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0x15 + bl FUN_02019064 + ldr r0, _02233AC4 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02233ABC: .word 0x00000F0F +_02233AC0: .word 0x0000011A +_02233AC4: .word 0x00000ED8 + thumb_func_end MOD80_02233A6C + + thumb_func_start MOD80_02233AC8 +MOD80_02233AC8: ; 0x02233AC8 + push {r4, lr} + ldr r1, _02233AF0 ; =0x00000FC8 + add r4, r0, #0 + ldr r2, _02233AF4 ; =0x00000B34 + add r0, r4, r1 + sub r1, #0xf0 + ldr r2, [r4, r2] + add r1, r4, r1 + bl MOD80_02234560 + ldr r1, _02233AF8 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _02233AFC ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #9 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02233AF0: .word 0x00000FC8 +_02233AF4: .word 0x00000B34 +_02233AF8: .word 0x00000FD4 +_02233AFC: .word 0x0000FFFF + thumb_func_end MOD80_02233AC8 + + thumb_func_start MOD80_02233B00 +MOD80_02233B00: ; 0x02233B00 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _02233BCC ; =0x00000FD4 + add r1, r5, #0 + ldr r0, [r5, r0] + add r1, #0xb0 + bl MOD80_02234698 + add r4, r0, #0 + cmp r4, #2 + bhi _02233B26 + cmp r4, #0 + beq _02233B6A + cmp r4, #1 + beq _02233B6A + cmp r4, #2 + beq _02233B6A + b _02233BC6 +_02233B26: + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + bne _02233BC6 + ldr r0, _02233BCC ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _02233BD0 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02233BD4 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02233BD8 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200D0E0 + ldr r0, _02233BD4 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02233BDC ; =0x000005DC + bl FUN_020054C8 + mov r0, #0 + str r0, [r5, #0x2c] + b _02233BC6 +_02233B6A: + ldr r0, _02233BCC ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _02233BD0 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02233BD4 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02233BD4 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02233BDC ; =0x000005DC + bl FUN_020054C8 + ldr r3, _02233BE0 ; =0x00000F08 + ldr r2, _02233BE4 ; =0x00000B1E + add r0, r4, #1 + strb r0, [r5, r2] + mov r1, #0xa + str r1, [r5, #0x2c] + sub r0, r2, #2 + ldrsh r0, [r5, r0] + sub r1, #0xb + add r3, r5, r3 + str r0, [sp] + ldrsb r0, [r5, r2] + str r0, [sp, #4] + str r1, [sp, #8] + add r0, r2, #0 + add r1, r2, #0 + add r0, #0x16 + add r1, #0x1a + add r2, #0x12 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl MOD80_02233FB4 +_02233BC6: + mov r0, #3 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_02233BCC: .word 0x00000FD4 +_02233BD0: .word 0x00000FC8 +_02233BD4: .word 0x00000ED8 +_02233BD8: .word 0x00000E98 +_02233BDC: .word 0x000005DC +_02233BE0: .word 0x00000F08 +_02233BE4: .word 0x00000B1E + thumb_func_end MOD80_02233B00 + + thumb_func_start MOD80_02233BE8 +MOD80_02233BE8: ; 0x02233BE8 + push {r3, r4, lr} + sub sp, #0x14 + ldr r1, _02233C38 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0xb + mov r2, #1 + mov r3, #0 + bl MOD80_022332EC + add r0, r4, #0 + mov r1, #0x10 + mov r2, #0xb + bl MOD80_0222E6DC + mov r0, #5 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + mov r0, #0xd + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _02233C3C ; =0x0000011A + ldr r1, _02233C40 ; =0x00000ED8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0xf + bl FUN_02019064 + ldr r0, _02233C40 ; =0x00000ED8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #3 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02233C38: .word 0x00000F0F +_02233C3C: .word 0x0000011A +_02233C40: .word 0x00000ED8 + thumb_func_end MOD80_02233BE8 + + thumb_func_start MOD80_02233C44 +MOD80_02233C44: ; 0x02233C44 + push {r4, lr} + ldr r1, _02233C6C ; =0x00000FC8 + add r4, r0, #0 + ldr r2, _02233C70 ; =0x00000B34 + add r0, r4, r1 + sub r1, #0xf0 + ldr r2, [r4, r2] + add r1, r4, r1 + bl MOD80_022345D0 + ldr r1, _02233C74 ; =0x00000FD4 + str r0, [r4, r1] + add r0, r4, #0 + ldr r1, _02233C78 ; =0x0000FFFF + add r0, #0xb0 + strh r1, [r0] + mov r0, #0xc + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02233C6C: .word 0x00000FC8 +_02233C70: .word 0x00000B34 +_02233C74: .word 0x00000FD4 +_02233C78: .word 0x0000FFFF + thumb_func_end MOD80_02233C44 + + thumb_func_start MOD80_02233C7C +MOD80_02233C7C: ; 0x02233C7C + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _02233D6C ; =0x00000FD4 + add r1, r5, #0 + ldr r0, [r5, r0] + add r1, #0xb0 + bl MOD80_02234698 + add r4, r0, #0 + cmp r4, #0xc + beq _02233CA4 + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _02233CA4 + add r0, r0, #1 + cmp r4, r0 + beq _02233D66 + b _02233CFA +_02233CA4: + ldr r0, _02233D6C ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _02233D70 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02233D74 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02233D78 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200D0E0 + ldr r0, _02233D74 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02233D7C ; =0x000005DC + bl FUN_020054C8 + mov r1, #0xfe + lsl r1, r1, #4 + ldr r1, [r5, r1] + ldr r0, _02233D80 ; =0x00000B1C + ldr r1, [r1, #0x20] + add r0, r5, r0 + bl MOD80_022338E0 + cmp r0, #0 + beq _02233CF4 + mov r0, #0 + str r0, [r5, #0x2c] + b _02233D66 +_02233CF4: + mov r0, #7 + str r0, [r5, #0x2c] + b _02233D66 +_02233CFA: + ldr r0, _02233D7C ; =0x000005DC + bl FUN_020054C8 + ldr r0, _02233D6C ; =0x00000FD4 + mov r1, #0 + ldr r0, [r5, r0] + add r2, r1, #0 + bl FUN_02001300 + ldr r0, _02233D70 ; =0x00000FC8 + ldr r0, [r5, r0] + bl FUN_02012870 + ldr r0, _02233D74 ; =0x00000ED8 + mov r1, #0 + add r0, r5, r0 + bl FUN_0200CCF8 + ldr r0, _02233D74 ; =0x00000ED8 + add r0, r5, r0 + bl FUN_02019178 + ldr r0, _02233D80 ; =0x00000B1C + add r1, r4, #0 + add r0, r5, r0 + bl MOD80_02234640 + mov r0, #0xd + ldr r1, _02233D84 ; =0x00000B1F + str r0, [r5, #0x2c] + ldrsb r0, [r5, r1] + add r1, r1, #1 + ldrsb r1, [r5, r1] + bl MOD80_02234668 + ldr r2, _02233D80 ; =0x00000B1C + ldr r3, _02233D88 ; =0x00000F08 + ldrsh r1, [r5, r2] + add r3, r5, r3 + str r1, [sp] + add r1, r2, #2 + ldrsb r1, [r5, r1] + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r2, #0 + add r1, r2, #0 + add r0, #0x18 + add r1, #0x1c + add r2, #0x14 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, [r5, r2] + bl MOD80_02233FB4 +_02233D66: + mov r0, #3 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_02233D6C: .word 0x00000FD4 +_02233D70: .word 0x00000FC8 +_02233D74: .word 0x00000ED8 +_02233D78: .word 0x00000E98 +_02233D7C: .word 0x000005DC +_02233D80: .word 0x00000B1C +_02233D84: .word 0x00000B1F +_02233D88: .word 0x00000F08 + thumb_func_end MOD80_02233C7C + + thumb_func_start MOD80_02233D8C +MOD80_02233D8C: ; 0x02233D8C + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02233DB0 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x17 + mov r2, #1 + mov r3, #0 + bl MOD80_022332EC + add r0, r4, #0 + mov r1, #0x10 + mov r2, #0xe + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02233DB0: .word 0x00000F0F + thumb_func_end MOD80_02233D8C + + thumb_func_start MOD80_02233DB4 +MOD80_02233DB4: ; 0x02233DB4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r2, _02233DD0 ; =0x000001EA + mov r1, #0xf + bl MOD80_0222E6A8 + ldr r1, _02233DD4 ; =0x00000FCC + str r0, [r4, r1] + mov r0, #0xf + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + nop +_02233DD0: .word 0x000001EA +_02233DD4: .word 0x00000FCC + thumb_func_end MOD80_02233DB4 + + thumb_func_start MOD80_02233DD8 +MOD80_02233DD8: ; 0x02233DD8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02233E28 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02233E22 + sub r1, r1, #1 + cmp r0, r1 + bne _02233E04 + mov r1, #5 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r4, #0x2c] + b _02233E22 +_02233E04: + mov r1, #7 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #2 + str r0, [r4, #0x2c] + ldr r0, _02233E2C ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + add r0, r4, #0 + add r0, #0xd4 + add r1, r4, #0 + bl MOD80_02234330 +_02233E22: + mov r0, #3 + pop {r4, pc} + nop +_02233E28: .word 0x00000FCC +_02233E2C: .word 0x0000100C + thumb_func_end MOD80_02233DD8 + + thumb_func_start MOD80_02233E30 +MOD80_02233E30: ; 0x02233E30 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r4, #0x18] + cmp r0, #0 + bne _02233E5C + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, _02233E80 ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + b _02233E74 +_02233E5C: + mov r0, #6 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 +_02233E74: + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + nop +_02233E80: .word 0x0000100C + thumb_func_end MOD80_02233E30 + + thumb_func_start MOD80_02233E84 +MOD80_02233E84: ; 0x02233E84 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02233E9E + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02233E9E: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02233E84 + + thumb_func_start MOD80_02233EA4 +MOD80_02233EA4: ; 0x02233EA4 + push {r4, r5, r6, lr} + sub sp, #8 + add r6, r0, #0 + add r5, r3, #0 + cmp r2, #0 + beq _02233ED2 + add r0, r1, #0 + add r1, r2, #0 + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, [sp, #0x1c] + str r5, [sp] + str r0, [sp, #4] + ldr r3, [sp, #0x18] + add r0, r6, #0 + add r1, r4, #0 + mov r2, #0 + bl MOD80_02236D50 + add r0, r4, #0 + bl FUN_02021A20 +_02233ED2: + add sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD80_02233EA4 + + thumb_func_start MOD80_02233ED8 +MOD80_02233ED8: ; 0x02233ED8 + cmp r0, #1 + bne _02233EE2 + ldr r0, _02233EF0 ; =0x02237B48 + ldr r0, [r0] + bx lr +_02233EE2: + cmp r0, #2 + bne _02233EEA + ldr r0, _02233EF0 ; =0x02237B48 + ldr r1, [r0, #4] +_02233EEA: + add r0, r1, #0 + bx lr + nop +_02233EF0: .word 0x02237B48 + thumb_func_end MOD80_02233ED8 + + thumb_func_start MOD80_02233EF4 +MOD80_02233EF4: ; 0x02233EF4 + push {r4, r5, r6, lr} + sub sp, #8 + add r6, r0, #0 + add r5, r2, #0 + cmp r3, #0 + bne _02233F04 + cmp r5, #3 + beq _02233F54 +_02233F04: + add r0, r1, #0 + ldr r1, _02233F58 ; =0x022373C0 + lsl r2, r5, #2 + ldr r1, [r1, r2] + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, [sp, #0x1c] + cmp r0, #3 + ble _02233F34 + ldr r1, [sp, #0x20] + add r0, r5, #0 + bl MOD80_02233ED8 + mov r1, #0 + str r1, [sp] + str r0, [sp, #4] + ldr r2, [sp, #0x1c] + ldr r3, [sp, #0x18] + add r0, r6, #0 + add r1, r4, #0 + bl MOD80_02236D50 + b _02233F4E +_02233F34: + ldr r1, [sp, #0x20] + add r0, r5, #0 + bl MOD80_02233ED8 + ldr r1, [sp, #0x1c] + ldr r3, [sp, #0x18] + str r1, [sp] + str r0, [sp, #4] + add r0, r6, #0 + add r1, r4, #0 + mov r2, #0 + bl MOD80_02236D50 +_02233F4E: + add r0, r4, #0 + bl FUN_02021A20 +_02233F54: + add sp, #8 + pop {r4, r5, r6, pc} + .align 2, 0 +_02233F58: .word 0x022373C0 + thumb_func_end MOD80_02233EF4 + + thumb_func_start MOD80_02233F5C +MOD80_02233F5C: ; 0x02233F5C + push {r4, r5, r6, lr} + sub sp, #8 + add r6, r0, #0 + mov r0, #0 + mvn r0, r0 + add r5, r3, #0 + cmp r2, r0 + beq _02233F92 + add r0, r1, #0 + ldr r1, _02233F98 ; =0x02237494 + lsl r2, r2, #3 + ldr r1, [r1, r2] + bl FUN_0200A914 + add r4, r0, #0 + ldr r0, [sp, #0x1c] + str r5, [sp] + str r0, [sp, #4] + ldr r2, [sp, #0x20] + ldr r3, [sp, #0x18] + add r0, r6, #0 + add r1, r4, #0 + bl MOD80_02236D50 + add r0, r4, #0 + bl FUN_02021A20 +_02233F92: + add sp, #8 + pop {r4, r5, r6, pc} + nop +_02233F98: .word 0x02237494 + thumb_func_end MOD80_02233F5C + + thumb_func_start MOD80_02233F9C +MOD80_02233F9C: ; 0x02233F9C + push {r3, r4, lr} + sub sp, #0xc + ldr r4, [sp, #0x18] + str r4, [sp] + ldr r4, [sp, #0x1c] + str r4, [sp, #4] + mov r4, #0 + str r4, [sp, #8] + bl MOD80_02233F5C + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD80_02233F9C + + thumb_func_start MOD80_02233FB4 +MOD80_02233FB4: ; 0x02233FB4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r1, [sp, #0x10] + mov r1, #0x61 + str r0, [sp, #0xc] + add r6, r3, #0 + bl FUN_0200A914 + str r0, [sp, #0x14] + mov r2, #0 + ldr r0, _02234044 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + ldr r1, [sp, #0x14] + add r0, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + add r5, r6, #0 + mov r4, #1 + add r5, #0x10 + mov r7, #0 +_02233FE0: + add r0, r5, #0 + add r1, r7, #0 + bl FUN_02019620 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #3 + blt _02233FE0 + mov r3, #0 + ldr r0, _02234044 ; =0x000F0200 + str r3, [sp] + str r0, [sp, #4] + add r0, r6, #0 + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x30] + add r0, #0x10 + bl MOD80_02233EA4 + ldr r2, [sp, #0x34] + sub r0, r2, #1 + cmp r0, #1 + bhi _02234022 + mov r3, #0 + str r3, [sp] + mov r0, #0x46 + str r0, [sp, #4] + ldr r0, _02234044 ; =0x000F0200 + ldr r1, [sp, #0xc] + str r0, [sp, #8] + add r0, r6, #0 + add r0, #0x10 + bl MOD80_02233EF4 +_02234022: + mov r0, #0 + str r0, [sp] + ldr r0, _02234044 ; =0x000F0200 + add r6, #0x20 + str r0, [sp, #4] + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x38] + add r0, r6, #0 + mov r3, #2 + bl MOD80_02233F9C + ldr r0, [sp, #0x14] + bl FUN_02021A20 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_02234044: .word 0x000F0200 + thumb_func_end MOD80_02233FB4 + + thumb_func_start MOD80_02234048 +MOD80_02234048: ; 0x02234048 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r1, [sp, #0x10] + mov r1, #0x61 + str r0, [sp, #0xc] + add r6, r3, #0 + bl FUN_0200A914 + str r0, [sp, #0x14] + mov r2, #0 + ldr r0, _022340D8 ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + ldr r1, [sp, #0x14] + add r0, r6, #0 + add r3, r2, #0 + bl MOD80_02236D50 + add r5, r6, #0 + mov r4, #1 + add r5, #0x10 + mov r7, #0 +_02234074: + add r0, r5, #0 + add r1, r7, #0 + bl FUN_02019620 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #3 + blt _02234074 + mov r3, #0 + ldr r0, _022340D8 ; =0x000F0200 + str r3, [sp] + str r0, [sp, #4] + add r0, r6, #0 + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x30] + add r0, #0x10 + bl MOD80_02233EA4 + ldr r2, [sp, #0x34] + sub r0, r2, #1 + cmp r0, #1 + bhi _022340B6 + mov r3, #0 + str r3, [sp] + mov r0, #0x46 + str r0, [sp, #4] + ldr r0, _022340D8 ; =0x000F0200 + ldr r1, [sp, #0xc] + str r0, [sp, #8] + add r0, r6, #0 + add r0, #0x10 + bl MOD80_02233EF4 +_022340B6: + mov r0, #0 + str r0, [sp] + ldr r0, _022340D8 ; =0x000F0200 + add r6, #0x20 + str r0, [sp, #4] + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x38] + add r0, r6, #0 + mov r3, #2 + bl MOD80_02233F9C + ldr r0, [sp, #0x14] + bl FUN_02021A20 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_022340D8: .word 0x000F0200 + thumb_func_end MOD80_02234048 + + thumb_func_start MOD80_022340DC +MOD80_022340DC: ; 0x022340DC + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r4, r0, #0 + add r5, r1, #0 + mov r0, #0xb + mov r1, #0x3e + str r2, [sp, #8] + str r3, [sp, #0xc] + ldr r7, [sp, #0x38] + bl FUN_020219F4 + str r0, [sp, #0x18] + mov r0, #0xb + mov r1, #0x3e + bl FUN_020219F4 + str r0, [sp, #0x14] + ldr r0, [sp, #0xc] + ldr r2, [sp, #0x18] + mov r1, #0x76 + bl FUN_020672BC + ldr r0, [sp, #0xc] + mov r1, #0x6f + mov r2, #0 + bl FUN_020672BC + add r6, r0, #1 + ldr r0, [sp, #0xc] + bl FUN_020687C8 + str r0, [sp, #0x10] + add r0, r4, #0 + mov r1, #0x64 + bl FUN_0200A914 + str r0, [sp, #0x20] + mov r0, #0 + str r0, [sp] + mov r0, #1 + mov r1, #3 + str r0, [sp, #4] + ldr r2, [sp, #0x10] + add r0, r5, #0 + add r3, r1, #0 + bl FUN_0200AD38 + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0x66 + mov r3, #0x3e + bl FUN_0200A9C4 + str r0, [sp, #0x1c] + cmp r6, #3 + beq _0223415A + ldr r1, _022341F8 ; =0x022373C0 + lsl r2, r6, #2 + ldr r1, [r1, r2] + ldr r2, [sp, #0x14] + add r0, r4, #0 + bl FUN_0200A8E0 +_0223415A: + ldr r5, [sp, #8] + mov r4, #0 +_0223415E: + add r0, r5, #0 + mov r1, #0 + bl FUN_02019620 + add r4, r4, #1 + add r5, #0x10 + cmp r4, #3 + blt _0223415E + mov r2, #0 + ldr r0, _022341FC ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + ldr r0, [sp, #8] + ldr r1, [sp, #0x20] + add r3, r2, #0 + bl MOD80_02236D50 + mov r2, #0 + ldr r0, _022341FC ; =0x000F0200 + str r2, [sp] + str r0, [sp, #4] + ldr r0, [sp, #8] + ldr r1, [sp, #0x18] + add r0, #0x10 + add r3, r2, #0 + bl MOD80_02236D50 + mov r0, #2 + str r0, [sp] + ldr r0, _022341FC ; =0x000F0200 + mov r2, #0 + str r0, [sp, #4] + ldr r0, [sp, #8] + ldr r1, [sp, #0x1c] + add r0, #0x20 + add r3, r2, #0 + bl MOD80_02236D50 + cmp r6, #3 + beq _022341CA + sub r0, r6, #1 + mov r3, #0 + lsl r1, r0, #2 + ldr r0, _02234200 ; =0x02237B48 + str r3, [sp] + ldr r0, [r0, r1] + ldr r1, [sp, #0x14] + str r0, [sp, #4] + ldr r0, [sp, #8] + mov r2, #0x46 + add r0, #0x10 + str r0, [sp, #8] + bl MOD80_02236D50 +_022341CA: + ldr r0, [sp, #0xc] + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + strh r0, [r7] + ldr r0, [sp, #0x10] + strb r6, [r7, #2] + strb r0, [r7, #3] + ldr r0, [sp, #0x1c] + bl FUN_02021A20 + ldr r0, [sp, #0x14] + bl FUN_02021A20 + ldr r0, [sp, #0x18] + bl FUN_02021A20 + ldr r0, [sp, #0x20] + bl FUN_02021A20 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_022341F8: .word 0x022373C0 +_022341FC: .word 0x000F0200 +_02234200: .word 0x02237B48 + thumb_func_end MOD80_022340DC + + thumb_func_start MOD80_02234204 +MOD80_02234204: ; 0x02234204 + push {r3, r4, lr} + sub sp, #0xc + add r4, r2, #0 + mov r2, #0 + add r3, r0, #0 + str r2, [sp] + add r0, sp, #8 + str r0, [sp, #4] + mov r0, #0x4b + mov r1, #0xd + bl FUN_02006D18 + ldr r1, [sp, #8] + lsr r1, r1, #1 + str r1, [r4] + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD80_02234204 + + thumb_func_start MOD80_02234228 +MOD80_02234228: ; 0x02234228 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + ldr r1, _02234280 ; =0x000001EE + add r5, r0, #0 + mov r0, #0x3e + bl FUN_02016998 + add r4, r0, #0 + ldr r2, _02234280 ; =0x000001EE + mov r0, #0 + add r1, r4, #0 + bl MIi_CpuClearFast + mov r2, #0 + str r2, [sp] + add r0, sp, #8 + str r0, [sp, #4] + mov r0, #0x4b + mov r1, #0xc + add r3, r5, #0 + bl FUN_02006D18 + add r7, r0, #0 + ldr r0, [sp, #8] + ldr r5, _02234284 ; =0x00000000 + lsr r3, r0, #1 + beq _02234274 + ldr r0, _02234280 ; =0x000001EE + add r6, r7, #0 + mov r1, #1 +_02234264: + ldrh r2, [r6] + cmp r2, r0 + bhs _0223426C + strb r1, [r4, r2] +_0223426C: + add r5, r5, #1 + add r6, r6, #2 + cmp r5, r3 + blo _02234264 +_02234274: + add r0, r7, #0 + bl FUN_02016A18 + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02234280: .word 0x000001EE +_02234284: .word 0x00000000 + thumb_func_end MOD80_02234228 + + thumb_func_start MOD80_02234288 +MOD80_02234288: ; 0x02234288 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0xb8 + ldrh r0, [r0] + bl MOD80_02232FAC + cmp r0, #0 + beq _022342B0 + bl FUN_020669BC + add r2, r0, #0 + add r0, r4, #0 + add r0, #0xbc + ldr r0, [r0] + add r1, r5, #0 + bl MIi_CpuCopyFast + b _022342BC +_022342B0: + add r0, r4, #0 + add r0, #0xbc + ldr r0, [r0] + add r1, r5, #0 + bl FUN_02069A64 +_022342BC: + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_0202398C + add r1, r0, #0 + mov r0, #0x43 + lsl r0, r0, #2 + add r0, r5, r0 + mov r2, #8 + bl StringCopyN + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_020239C0 + mov r1, #0x47 + lsl r1, r1, #2 + strh r0, [r5, r1] + ldr r0, [r4] + ldr r0, [r0, #0x18] + bl FUN_02029B38 + ldr r1, _02234324 ; =0x0000011E + strb r0, [r5, r1] + ldr r0, [r4] + ldr r0, [r0, #0x18] + bl FUN_02029B3C + ldr r1, _02234328 ; =0x0000011F + strb r0, [r5, r1] + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_02023A28 + mov r1, #0x12 + lsl r1, r1, #4 + strb r0, [r5, r1] + ldr r0, [r4] + ldr r0, [r0, #0x1c] + bl FUN_020239CC + add r1, r5, #0 + add r1, #0xf6 + strb r0, [r1] + ldr r0, _0223432C ; =0x00000122 + mov r1, #0xa + strb r1, [r5, r0] + mov r1, #2 + add r0, r0, #1 + strb r1, [r5, r0] + pop {r3, r4, r5, pc} + nop +_02234324: .word 0x0000011E +_02234328: .word 0x0000011F +_0223432C: .word 0x00000122 + thumb_func_end MOD80_02234288 + + thumb_func_start MOD80_02234330 +MOD80_02234330: ; 0x02234330 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD80_02234288 + ldr r0, _0223436C ; =0x00000B18 + add r1, r5, #0 + ldrh r2, [r4, r0] + add r1, #0xec + strh r2, [r1] + add r1, r0, #2 + ldrh r2, [r4, r1] + add r1, r5, #0 + add r1, #0xee + strh r2, [r1] + add r1, r0, #4 + ldrh r2, [r4, r1] + add r1, r5, #0 + add r1, #0xf0 + strh r2, [r1] + add r1, r0, #6 + ldrh r2, [r4, r1] + add r1, r5, #0 + add r1, #0xf2 + strh r2, [r1] + add r0, #8 + ldrh r0, [r4, r0] + add r5, #0xf4 + strh r0, [r5] + pop {r3, r4, r5, pc} + .align 2, 0 +_0223436C: .word 0x00000B18 + thumb_func_end MOD80_02234330 + + thumb_func_start MOD80_02234370 +MOD80_02234370: ; 0x02234370 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r7, r0, #0 + add r5, r1, #0 + mov r0, #9 + mov r1, #0x3e + str r2, [sp] + add r6, r3, #0 + bl FUN_02012838 + str r0, [r5] + mov r4, #0 +_02234388: + add r2, r4, #0 + ldr r0, [r5] + add r1, r6, #0 + add r2, #0x68 + add r3, r4, #1 + bl FUN_02012880 + add r4, r4, #1 + cmp r4, #9 + blt _02234388 + ldr r3, _022343D8 ; =0x02237474 + add r2, sp, #4 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [sp, #4] + ldr r0, [sp] + mov r2, #0x1f + mov r3, #0xb + str r0, [sp, #0x10] + bl FUN_0200CCA4 + mov r0, #0xfe + lsl r0, r0, #4 + ldr r2, [r7, r0] + add r0, sp, #4 + ldrh r1, [r2, #6] + ldrh r2, [r2, #4] + mov r3, #0x3e + bl FUN_020010A8 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_022343D8: .word 0x02237474 + thumb_func_end MOD80_02234370 + + thumb_func_start MOD80_022343DC +MOD80_022343DC: ; 0x022343DC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + str r0, [sp] + ldr r0, [sp, #0x38] + str r1, [sp, #4] + str r0, [sp, #0x38] + ldr r0, [sp, #0x40] + ldr r4, [sp, #0x44] + lsl r5, r0, #1 + add r0, r0, #1 + lsl r1, r0, #1 + ldr r0, _022344D8 ; =0x02237B50 + str r2, [sp, #8] + ldrh r1, [r0, r1] + ldrh r0, [r0, r5] + str r3, [sp, #0xc] + mov r6, #0 + sub r7, r1, r0 + add r0, r4, #0 + bl FUN_02024CA4 + str r0, [sp, #0x14] + ldr r0, _022344D8 ; =0x02237B50 + ldrh r0, [r0, r5] + str r0, [sp, #0x18] + add r0, r6, #0 + str r0, [sp, #0x1c] + cmp r7, #0 + ble _02234456 + ldr r0, [sp, #0x18] + lsl r1, r0, #1 + ldr r0, [sp, #0xc] + add r5, r0, r1 +_0223441E: + ldr r0, [sp, #0x14] + cmp r0, #0 + beq _02234434 + ldrh r1, [r5] + add r0, r4, #0 + bl FUN_020245F0 + cmp r0, #0 + beq _0223444A + add r6, r6, #1 + b _0223444A +_02234434: + ldrh r1, [r5] + ldr r0, [sp, #0x38] + ldrb r0, [r0, r1] + cmp r0, #0 + beq _0223444A + add r0, r4, #0 + bl FUN_020245F0 + cmp r0, #0 + beq _0223444A + add r6, r6, #1 +_0223444A: + ldr r0, [sp, #0x1c] + add r5, r5, #2 + add r0, r0, #1 + str r0, [sp, #0x1c] + cmp r0, r7 + blt _0223441E +_02234456: + add r0, r6, #1 + mov r1, #0x3e + bl FUN_02012838 + ldr r1, [sp] + str r0, [r1] + mov r0, #0 + str r0, [sp, #0x10] + cmp r7, #0 + ble _022344C2 + ldr r0, [sp, #0x18] + lsl r1, r0, #1 + ldr r0, [sp, #0xc] + add r5, r0, r1 +_02234472: + ldr r0, [sp, #0x14] + cmp r0, #0 + beq _02234494 + ldrh r1, [r5] + add r0, r4, #0 + bl FUN_020245F0 + cmp r0, #0 + beq _022344B6 + ldrh r2, [r5] + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r0, [r0] + add r3, r2, #0 + bl FUN_02012880 + b _022344B6 +_02234494: + ldrh r1, [r5] + ldr r0, [sp, #0x38] + ldrb r0, [r0, r1] + cmp r0, #0 + beq _022344B6 + add r0, r4, #0 + bl FUN_020245F0 + cmp r0, #0 + beq _022344B6 + ldrh r2, [r5] + ldr r0, [sp] + ldr r1, [sp, #4] + ldr r0, [r0] + add r3, r2, #0 + bl FUN_02012880 +_022344B6: + ldr r0, [sp, #0x10] + add r5, r5, #2 + add r0, r0, #1 + str r0, [sp, #0x10] + cmp r0, r7 + blt _02234472 +_022344C2: + ldr r0, [sp] + mov r2, #0x75 + add r3, r2, #0 + ldr r0, [r0] + ldr r1, [sp, #8] + sub r3, #0x77 + bl FUN_02012880 + add r0, r6, #1 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022344D8: .word 0x02237B50 + thumb_func_end MOD80_022343DC + + thumb_func_start MOD80_022344DC +MOD80_022344DC: ; 0x022344DC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x38 + ldr r5, [sp, #0x54] + add r7, r0, #0 + add r6, r1, #0 + add r0, r2, #0 + mov r1, #0xf + str r2, [sp, #0x10] + str r3, [sp, #0x14] + bl FUN_02019620 + ldrh r1, [r5, #6] + ldrh r0, [r5, #4] + ldr r2, [sp, #0x14] + add r4, r1, r0 + ldr r0, [r5, #0x14] + ldr r1, [sp, #0x50] + str r0, [sp] + ldr r0, [r5, #0x1c] + str r0, [sp, #4] + ldr r0, [sp, #0x58] + str r4, [sp, #8] + str r0, [sp, #0xc] + ldr r3, [r5, #0x18] + add r0, r6, #0 + bl MOD80_022343DC + ldr r3, _02234558 ; =0x02237474 + add r5, r0, #0 + add r2, sp, #0x18 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r0, sp, #0x18 + strh r5, [r0, #0x10] + ldr r0, [r6] + mov r1, #0 + str r0, [sp, #0x18] + ldr r0, [sp, #0x10] + mov r2, #0x1f + mov r3, #0xb + str r0, [sp, #0x24] + bl FUN_0200CCA4 + lsl r1, r4, #1 + ldr r2, _0223455C ; =0x0000101C + add r3, r7, r1 + ldrh r1, [r3, r2] + add r2, #0x14 + ldrh r2, [r3, r2] + add r0, sp, #0x18 + mov r3, #0x3e + bl FUN_020010A8 + add sp, #0x38 + pop {r3, r4, r5, r6, r7, pc} + nop +_02234558: .word 0x02237474 +_0223455C: .word 0x0000101C + thumb_func_end MOD80_022344DC + + thumb_func_start MOD80_02234560 +MOD80_02234560: ; 0x02234560 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r6, r0, #0 + str r1, [sp] + mov r0, #4 + mov r1, #0x3e + add r7, r2, #0 + bl FUN_02012838 + ldr r5, _022345C8 ; =0x02237B64 + str r0, [r6] + mov r4, #0 +_02234578: + ldr r0, [r6] + ldr r2, [r5] + ldr r3, [r5, #4] + add r1, r7, #0 + bl FUN_02012880 + add r4, r4, #1 + add r5, #8 + cmp r4, #4 + blt _02234578 + ldr r3, _022345CC ; =0x02237474 + add r2, sp, #4 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + mov r1, #4 + add r0, sp, #4 + strh r1, [r0, #0x10] + ldr r0, [r6] + mov r1, #0 + str r0, [sp, #4] + ldr r0, [sp] + mov r2, #0x1f + mov r3, #0xb + str r0, [sp, #0x10] + bl FUN_0200CCA4 + mov r1, #0 + add r0, sp, #4 + add r2, r1, #0 + mov r3, #0x3e + bl FUN_020010A8 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_022345C8: .word 0x02237B64 +_022345CC: .word 0x02237474 + thumb_func_end MOD80_02234560 + + thumb_func_start MOD80_022345D0 +MOD80_022345D0: ; 0x022345D0 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r6, r0, #0 + str r1, [sp] + mov r0, #0xd + mov r1, #0x3e + add r7, r2, #0 + bl FUN_02012838 + ldr r5, _02234638 ; =0x02237494 + str r0, [r6] + mov r4, #0 +_022345E8: + ldr r0, [r6] + ldr r2, [r5] + add r1, r7, #0 + add r3, r4, #0 + bl FUN_02012880 + add r4, r4, #1 + add r5, #8 + cmp r4, #0xd + blt _022345E8 + ldr r3, _0223463C ; =0x02237474 + add r2, sp, #4 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + mov r1, #0xd + add r0, sp, #4 + strh r1, [r0, #0x10] + ldr r0, [r6] + mov r1, #0 + str r0, [sp, #4] + ldr r0, [sp] + mov r2, #0x1f + mov r3, #0xb + str r0, [sp, #0x10] + bl FUN_0200CCA4 + mov r1, #0 + add r0, sp, #4 + add r2, r1, #0 + mov r3, #0x3e + bl FUN_020010A8 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02234638: .word 0x02237494 +_0223463C: .word 0x02237474 + thumb_func_end MOD80_022345D0 + + thumb_func_start MOD80_02234640 +MOD80_02234640: ; 0x02234640 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r4, r0, #0 + cmp r5, #0xc + blt _0223464E + bl ErrorHandling +_0223464E: + ldr r0, _02234660 ; =0x02237498 + lsl r1, r5, #3 + ldrsh r0, [r0, r1] + strb r0, [r4, #3] + ldr r0, _02234664 ; =0x0223749A + ldrsh r0, [r0, r1] + strb r0, [r4, #4] + pop {r3, r4, r5, pc} + nop +_02234660: .word 0x02237498 +_02234664: .word 0x0223749A + thumb_func_end MOD80_02234640 + + thumb_func_start MOD80_02234668 +MOD80_02234668: ; 0x02234668 + push {r3, r4, r5, r6} + ldr r6, _02234694 ; =0x02237494 + mov r5, #0 + mov r2, #6 + mov r3, #4 +_02234672: + ldrsh r4, [r6, r3] + cmp r0, r4 + bne _02234684 + ldrsh r4, [r6, r2] + cmp r1, r4 + bne _02234684 + add r0, r5, #0 + pop {r3, r4, r5, r6} + bx lr +_02234684: + add r5, r5, #1 + add r6, #8 + cmp r5, #0xd + blt _02234672 + mov r0, #0 + pop {r3, r4, r5, r6} + bx lr + nop +_02234694: .word 0x02237494 + thumb_func_end MOD80_02234668 + + thumb_func_start MOD80_02234698 +MOD80_02234698: ; 0x02234698 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02001204 + add r6, r0, #0 + add r0, r5, #0 + add r1, sp, #0 + bl FUN_0200143C + add r0, sp, #0 + ldrh r1, [r4] + ldrh r0, [r0] + cmp r1, r0 + beq _022346CA + ldr r0, _022346D0 ; =0x0000FFFF + cmp r1, r0 + beq _022346C4 + ldr r0, _022346D4 ; =0x000005DC + bl FUN_020054C8 +_022346C4: + add r0, sp, #0 + ldrh r0, [r0] + strh r0, [r4] +_022346CA: + add r0, r6, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_022346D0: .word 0x0000FFFF +_022346D4: .word 0x000005DC + thumb_func_end MOD80_02234698 + + thumb_func_start MOD80_022346D8 +MOD80_022346D8: ; 0x022346D8 + mov r2, #0 + add r3, r0, #0 + add r1, r2, #0 +_022346DE: + strh r1, [r3, #4] + strh r1, [r3, #0x18] + add r2, r2, #1 + add r3, r3, #2 + cmp r2, #0xa + blt _022346DE + strh r1, [r0] + strh r1, [r0, #2] + bx lr + thumb_func_end MOD80_022346D8 + + thumb_func_start MOD80_022346F0 +MOD80_022346F0: ; 0x022346F0 + lsl r1, r1, #1 + add r0, r0, r1 + strh r2, [r0, #4] + strh r3, [r0, #0x18] + bx lr + .align 2, 0 + thumb_func_end MOD80_022346F0 + + thumb_func_start MOD80_022346FC +MOD80_022346FC: ; 0x022346FC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_022349A4 + ldr r0, [r4, #4] + bl MOD80_02234780 + add r0, r4, #0 + bl MOD80_022348CC + add r0, r4, #0 + bl MOD80_02234958 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + add r0, r4, #0 + bl MOD80_02236D84 + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD80_022346FC + + thumb_func_start MOD80_02234740 +MOD80_02234740: ; 0x02234740 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222E79C + bl FUN_02033EEC + ldr r1, [r4, #0x2c] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _0223475C ; =0x02237BC8 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0223475C: .word 0x02237BC8 + thumb_func_end MOD80_02234740 + + thumb_func_start MOD80_02234760 +MOD80_02234760: ; 0x02234760 + push {r4, lr} + add r4, r0, #0 + bl MOD80_022349BC + add r0, r4, #0 + bl MOD80_02234994 + ldr r0, [r4, #4] + bl MOD80_022348A0 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02234760 + + thumb_func_start MOD80_02234780 +MOD80_02234780: ; 0x02234780 + push {r4, r5, lr} + sub sp, #0x9c + ldr r5, _02234888 ; =0x022374FC + add r3, sp, #0x8c + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _0223488C ; =0x02237544 + add r3, sp, #0x70 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _02234890 ; =0x02237528 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _02234894 ; =0x0223757C + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _02234898 ; =0x02237560 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _0223489C ; =0x0223750C + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x9c + pop {r4, r5, pc} + nop +_02234888: .word 0x022374FC +_0223488C: .word 0x02237544 +_02234890: .word 0x02237528 +_02234894: .word 0x0223757C +_02234898: .word 0x02237560 +_0223489C: .word 0x0223750C + thumb_func_end MOD80_02234780 + + thumb_func_start MOD80_022348A0 +MOD80_022348A0: ; 0x022348A0 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_022348A0 + + thumb_func_start MOD80_022348CC +MOD80_022348CC: ; 0x022348CC + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r0, #0x60 + mov r1, #0 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x68 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + ldr r0, _02234954 ; =0x00000FEC + ldrh r0, [r5, r0] + cmp r0, #0 + bne _02234944 + mov r0, #4 + mov r1, #0 + bl FUN_0201797C + mov r0, #5 + mov r1, #0 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E74C +_02234944: + ldr r0, [r5, #0x20] + cmp r0, #9 + bne _02234950 + add r0, r5, #0 + bl MOD80_0222F338 +_02234950: + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_02234954: .word 0x00000FEC + thumb_func_end MOD80_022348CC + + thumb_func_start MOD80_02234958 +MOD80_02234958: ; 0x02234958 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + ldr r1, _02234990 ; =0x00000E98 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + ldr r0, _02234990 ; =0x00000E98 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02234990: .word 0x00000E98 + thumb_func_end MOD80_02234958 + + thumb_func_start MOD80_02234994 +MOD80_02234994: ; 0x02234994 + ldr r1, _0223499C ; =0x00000E98 + ldr r3, _022349A0 ; =FUN_02019178 + add r0, r0, r1 + bx r3 + .align 2, 0 +_0223499C: .word 0x00000E98 +_022349A0: .word FUN_02019178 + thumb_func_end MOD80_02234994 + + thumb_func_start MOD80_022349A4 +MOD80_022349A4: ; 0x022349A4 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _022349B8 ; =0x00000B4C + str r0, [r4, r1] + pop {r4, pc} + nop +_022349B8: .word 0x00000B4C + thumb_func_end MOD80_022349A4 + + thumb_func_start MOD80_022349BC +MOD80_022349BC: ; 0x022349BC + ldr r1, _022349C4 ; =0x00000B4C + ldr r3, _022349C8 ; =FUN_02021A20 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_022349C4: .word 0x00000B4C +_022349C8: .word FUN_02021A20 + thumb_func_end MOD80_022349BC + + thumb_func_start MOD80_022349CC +MOD80_022349CC: ; 0x022349CC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r1, [r4, #0x24] + cmp r1, #0xc + bhi _02234AA4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_022349E4: ; jump table + .short _02234AA4 - _022349E4 - 2 ; case 0 + .short _02234AA4 - _022349E4 - 2 ; case 1 + .short _02234AA4 - _022349E4 - 2 ; case 2 + .short _02234AA4 - _022349E4 - 2 ; case 3 + .short _02234AA4 - _022349E4 - 2 ; case 4 + .short _02234AA4 - _022349E4 - 2 ; case 5 + .short _02234AA4 - _022349E4 - 2 ; case 6 + .short _022349FE - _022349E4 - 2 ; case 7 + .short _02234A1A - _022349E4 - 2 ; case 8 + .short _02234A36 - _022349E4 - 2 ; case 9 + .short _02234A52 - _022349E4 - 2 ; case 10 + .short _02234A74 - _022349E4 - 2 ; case 11 + .short _02234A8A - _022349E4 - 2 ; case 12 +_022349FE: + ldr r1, _02234AB4 ; =0x00000F0F + mov r2, #0x18 + str r1, [sp] + ldr r1, _02234AB8 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #2 + bl MOD80_0222E6DC + b _02234AA8 +_02234A1A: + ldr r1, _02234AB4 ; =0x00000F0F + mov r2, #0x18 + str r1, [sp] + ldr r1, _02234AB8 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #7 + bl MOD80_0222E6DC + b _02234AA8 +_02234A36: + ldr r1, _02234AB4 ; =0x00000F0F + mov r2, #0x18 + str r1, [sp] + ldr r1, _02234AB8 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0xc + bl MOD80_0222E6DC + b _02234AA8 +_02234A52: + ldr r1, _02234AB4 ; =0x00000F0F + mov r2, #0x18 + str r1, [sp] + ldr r1, _02234AB8 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x12 + bl MOD80_0222E6DC + ldr r0, _02234ABC ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + b _02234AA8 +_02234A74: + ldr r1, _02234AB4 ; =0x00000F0F + mov r2, #0x18 + str r1, [sp] + ldr r1, _02234AB8 ; =0x00000B34 + mov r3, #0 + ldr r1, [r4, r1] + bl MOD80_02236C70 + mov r0, #0x18 + str r0, [r4, #0x2c] + b _02234AA8 +_02234A8A: + ldr r1, _02234AB4 ; =0x00000F0F + mov r2, #0x8a + str r1, [sp] + ldr r1, _02234AB8 ; =0x00000B34 + mov r3, #1 + ldr r1, [r4, r1] + bl MOD80_02236C70 + mov r0, #1 + str r0, [r4, #0x18] + mov r0, #0x1d + str r0, [r4, #0x2c] + b _02234AA8 +_02234AA4: + bl ErrorHandling +_02234AA8: + add r0, r4, #0 + bl MOD80_0222E8BC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02234AB4: .word 0x00000F0F +_02234AB8: .word 0x00000B34 +_02234ABC: .word 0x0000100C + thumb_func_end MOD80_022349CC + + thumb_func_start MOD80_02234AC0 +MOD80_02234AC0: ; 0x02234AC0 + push {r4, lr} + add r4, r0, #0 + add r0, #0xd4 + bl FUN_0206AA84 + add r0, r4, #0 + add r0, #0xd4 + bl MOD80_0222DBC4 + mov r0, #3 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #4 + mov r2, #6 + bl MOD80_02235820 + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234AC0 + + thumb_func_start MOD80_02234AE4 +MOD80_02234AE4: ; 0x02234AE4 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234B5A + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0xf + bhi _02234B5A + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02234B08: ; jump table + .short _02234B4E - _02234B08 - 2 ; case 0 + .short _02234B4E - _02234B08 - 2 ; case 1 + .short _02234B56 - _02234B08 - 2 ; case 2 + .short _02234B46 - _02234B08 - 2 ; case 3 + .short _02234B3E - _02234B08 - 2 ; case 4 + .short _02234B3E - _02234B08 - 2 ; case 5 + .short _02234B3E - _02234B08 - 2 ; case 6 + .short _02234B3E - _02234B08 - 2 ; case 7 + .short _02234B3E - _02234B08 - 2 ; case 8 + .short _02234B3E - _02234B08 - 2 ; case 9 + .short _02234B3E - _02234B08 - 2 ; case 10 + .short _02234B46 - _02234B08 - 2 ; case 11 + .short _02234B5A - _02234B08 - 2 ; case 12 + .short _02234B4E - _02234B08 - 2 ; case 13 + .short _02234B36 - _02234B08 - 2 ; case 14 + .short _02234B28 - _02234B08 - 2 ; case 15 +_02234B28: + add r0, r4, #0 + mov r1, #1 + bl MOD80_02235534 + mov r0, #0x1e + str r0, [r4, #0x2c] + b _02234B5A +_02234B36: + str r0, [r4, #0x3c] + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02234B5A +_02234B3E: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _02234B5A +_02234B46: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _02234B5A +_02234B4E: + str r0, [r4, #0x3c] + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02234B5A +_02234B56: + bl FUN_020335E0 +_02234B5A: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02234AE4 + + thumb_func_start MOD80_02234B60 +MOD80_02234B60: ; 0x02234B60 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DC14 + mov r0, #5 + str r0, [r4, #0x2c] + mov r0, #1 + strh r0, [r4, #0x36] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234B60 + + thumb_func_start MOD80_02234B74 +MOD80_02234B74: ; 0x02234B74 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234BD2 + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0xf + bhi _02234BD2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02234B98: ; jump table + .short _02234BC6 - _02234B98 - 2 ; case 0 + .short _02234BC6 - _02234B98 - 2 ; case 1 + .short _02234BCE - _02234B98 - 2 ; case 2 + .short _02234BBE - _02234B98 - 2 ; case 3 + .short _02234BD2 - _02234B98 - 2 ; case 4 + .short _02234BD2 - _02234B98 - 2 ; case 5 + .short _02234BD2 - _02234B98 - 2 ; case 6 + .short _02234BD2 - _02234B98 - 2 ; case 7 + .short _02234BD2 - _02234B98 - 2 ; case 8 + .short _02234BD2 - _02234B98 - 2 ; case 9 + .short _02234BC6 - _02234B98 - 2 ; case 10 + .short _02234BBE - _02234B98 - 2 ; case 11 + .short _02234BC6 - _02234B98 - 2 ; case 12 + .short _02234BC6 - _02234B98 - 2 ; case 13 + .short _02234BC6 - _02234B98 - 2 ; case 14 + .short _02234BB8 - _02234B98 - 2 ; case 15 +_02234BB8: + mov r0, #0x21 + str r0, [r4, #0x2c] + b _02234BD2 +_02234BBE: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _02234BD2 +_02234BC6: + mov r0, #4 + bl FUN_020336A0 + b _02234BD2 +_02234BCE: + bl FUN_020335E0 +_02234BD2: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02234B74 + + thumb_func_start MOD80_02234BD8 +MOD80_02234BD8: ; 0x02234BD8 + push {r4, lr} + add r4, r0, #0 + add r0, #0xd4 + bl MOD80_0222DC68 + mov r0, #8 + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #9 + mov r2, #0xb + bl MOD80_02235820 + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234BD8 + + thumb_func_start MOD80_02234BF4 +MOD80_02234BF4: ; 0x02234BF4 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234C82 + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0xf + bhi _02234C82 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02234C18: ; jump table + .short _02234C76 - _02234C18 - 2 ; case 0 + .short _02234C76 - _02234C18 - 2 ; case 1 + .short _02234C7E - _02234C18 - 2 ; case 2 + .short _02234C6E - _02234C18 - 2 ; case 3 + .short _02234C82 - _02234C18 - 2 ; case 4 + .short _02234C82 - _02234C18 - 2 ; case 5 + .short _02234C82 - _02234C18 - 2 ; case 6 + .short _02234C82 - _02234C18 - 2 ; case 7 + .short _02234C82 - _02234C18 - 2 ; case 8 + .short _02234C82 - _02234C18 - 2 ; case 9 + .short _02234C82 - _02234C18 - 2 ; case 10 + .short _02234C68 - _02234C18 - 2 ; case 11 + .short _02234C62 - _02234C18 - 2 ; case 12 + .short _02234C76 - _02234C18 - 2 ; case 13 + .short _02234C82 - _02234C18 - 2 ; case 14 + .short _02234C38 - _02234C18 - 2 ; case 15 +_02234C38: + ldr r0, _02234C88 ; =0x000001F5 + ldrsb r5, [r4, r0] + cmp r5, #0 + beq _02234C46 + mov r0, #0x18 + str r0, [r4, #0x2c] + b _02234C82 +_02234C46: + ldr r0, [r4] + ldr r0, [r0] + bl FUN_0202AC18 + add r1, r4, #0 + add r2, r0, #0 + add r0, r4, #0 + add r1, #0xd4 + add r3, r5, #0 + bl MOD80_022355F0 + mov r0, #0x1e + str r0, [r4, #0x2c] + b _02234C82 +_02234C62: + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02234C82 +_02234C68: + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02234C82 +_02234C6E: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _02234C82 +_02234C76: + str r0, [r4, #0x3c] + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02234C82 +_02234C7E: + bl FUN_020335E0 +_02234C82: + mov r0, #3 + pop {r3, r4, r5, pc} + nop +_02234C88: .word 0x000001F5 + thumb_func_end MOD80_02234BF4 + + thumb_func_start MOD80_02234C8C +MOD80_02234C8C: ; 0x02234C8C + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DD4C + mov r0, #0xa + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234C8C + + thumb_func_start MOD80_02234C9C +MOD80_02234C9C: ; 0x02234C9C + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234CF8 + bl MOD80_0222DBB8 + add r0, #0xf + cmp r0, #0xf + bhi _02234CF8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02234CBE: ; jump table + .short _02234CEC - _02234CBE - 2 ; case 0 + .short _02234CEC - _02234CBE - 2 ; case 1 + .short _02234CF4 - _02234CBE - 2 ; case 2 + .short _02234CEC - _02234CBE - 2 ; case 3 + .short _02234CF8 - _02234CBE - 2 ; case 4 + .short _02234CF8 - _02234CBE - 2 ; case 5 + .short _02234CF8 - _02234CBE - 2 ; case 6 + .short _02234CF8 - _02234CBE - 2 ; case 7 + .short _02234CF8 - _02234CBE - 2 ; case 8 + .short _02234CF8 - _02234CBE - 2 ; case 9 + .short _02234CE4 - _02234CBE - 2 ; case 10 + .short _02234CE4 - _02234CBE - 2 ; case 11 + .short _02234CE4 - _02234CBE - 2 ; case 12 + .short _02234CEC - _02234CBE - 2 ; case 13 + .short _02234CF8 - _02234CBE - 2 ; case 14 + .short _02234CDE - _02234CBE - 2 ; case 15 +_02234CDE: + mov r0, #0x21 + str r0, [r4, #0x2c] + b _02234CF8 +_02234CE4: + mov r0, #3 + bl FUN_020336A0 + b _02234CF8 +_02234CEC: + mov r0, #4 + bl FUN_020336A0 + b _02234CF8 +_02234CF4: + bl FUN_020335E0 +_02234CF8: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234C9C + + thumb_func_start MOD80_02234CFC +MOD80_02234CFC: ; 0x02234CFC + push {r4, lr} + add r4, r0, #0 + add r0, #0xd4 + bl FUN_0206AA84 + add r0, r4, #0 + add r0, #0xc4 + ldr r1, [r0] + mov r0, #0x49 + lsl r0, r0, #2 + mul r0, r1 + add r1, r4, r0 + mov r0, #3 + lsl r0, r0, #8 + ldr r2, _02234D38 ; =0x000009F4 + ldr r0, [r1, r0] + add r1, r4, #0 + add r1, #0xd4 + add r2, r4, r2 + bl MOD80_0222DE04 + add r0, r4, #0 + mov r1, #0xe + mov r2, #0x10 + bl MOD80_02235820 + mov r0, #0xd + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02234D38: .word 0x000009F4 + thumb_func_end MOD80_02234CFC + + thumb_func_start MOD80_02234D3C +MOD80_02234D3C: ; 0x02234D3C + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234DEE + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0xf + bhi _02234DEE + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02234D60: ; jump table + .short _02234DE2 - _02234D60 - 2 ; case 0 + .short _02234DE2 - _02234D60 - 2 ; case 1 + .short _02234DEA - _02234D60 - 2 ; case 2 + .short _02234DDA - _02234D60 - 2 ; case 3 + .short _02234DD2 - _02234D60 - 2 ; case 4 + .short _02234DD2 - _02234D60 - 2 ; case 5 + .short _02234DD2 - _02234D60 - 2 ; case 6 + .short _02234DD2 - _02234D60 - 2 ; case 7 + .short _02234DD2 - _02234D60 - 2 ; case 8 + .short _02234DD2 - _02234D60 - 2 ; case 9 + .short _02234DCA - _02234D60 - 2 ; case 10 + .short _02234DEE - _02234D60 - 2 ; case 11 + .short _02234DEE - _02234D60 - 2 ; case 12 + .short _02234DE2 - _02234D60 - 2 ; case 13 + .short _02234DEE - _02234D60 - 2 ; case 14 + .short _02234D80 - _02234D60 - 2 ; case 15 +_02234D80: + mov r0, #0x1e + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #0 + bl MOD80_02235534 + add r2, r4, #0 + add r2, #0xb8 + ldr r1, _02234DF4 ; =0x000009F4 + ldrh r2, [r2] + add r0, r4, #0 + add r1, r4, r1 + bl MOD80_022356AC + ldr r0, [r4] + ldr r1, _02234DF4 ; =0x000009F4 + ldr r0, [r0, #0x18] + add r1, r4, r1 + bl MOD80_02235784 + ldr r0, [r4] + mov r1, #0x19 + ldr r0, [r0, #0x28] + bl FUN_0202A170 + ldr r0, [r4] + ldr r1, _02234DF4 ; =0x000009F4 + ldr r0, [r0, #0x2c] + add r1, r4, r1 + bl MOD80_022357A0 + ldr r0, [r4] + mov r1, #0x18 + ldr r0, [r0, #0x28] + bl FUN_0202A0E8 + b _02234DEE +_02234DCA: + str r0, [r4, #0x3c] + mov r0, #0x11 + str r0, [r4, #0x2c] + b _02234DEE +_02234DD2: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _02234DEE +_02234DDA: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _02234DEE +_02234DE2: + str r0, [r4, #0x3c] + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02234DEE +_02234DEA: + bl FUN_020335E0 +_02234DEE: + mov r0, #3 + pop {r4, pc} + nop +_02234DF4: .word 0x000009F4 + thumb_func_end MOD80_02234D3C + + thumb_func_start MOD80_02234DF8 +MOD80_02234DF8: ; 0x02234DF8 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DE68 + mov r0, #0xf + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234DF8 + + thumb_func_start MOD80_02234E08 +MOD80_02234E08: ; 0x02234E08 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234E64 + bl MOD80_0222DBB8 + add r0, #0xf + cmp r0, #0xf + bhi _02234E64 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02234E2A: ; jump table + .short _02234E58 - _02234E2A - 2 ; case 0 + .short _02234E58 - _02234E2A - 2 ; case 1 + .short _02234E60 - _02234E2A - 2 ; case 2 + .short _02234E58 - _02234E2A - 2 ; case 3 + .short _02234E64 - _02234E2A - 2 ; case 4 + .short _02234E64 - _02234E2A - 2 ; case 5 + .short _02234E64 - _02234E2A - 2 ; case 6 + .short _02234E64 - _02234E2A - 2 ; case 7 + .short _02234E64 - _02234E2A - 2 ; case 8 + .short _02234E64 - _02234E2A - 2 ; case 9 + .short _02234E50 - _02234E2A - 2 ; case 10 + .short _02234E64 - _02234E2A - 2 ; case 11 + .short _02234E64 - _02234E2A - 2 ; case 12 + .short _02234E58 - _02234E2A - 2 ; case 13 + .short _02234E64 - _02234E2A - 2 ; case 14 + .short _02234E4A - _02234E2A - 2 ; case 15 +_02234E4A: + mov r0, #0x21 + str r0, [r4, #0x2c] + b _02234E64 +_02234E50: + mov r0, #3 + bl FUN_020336A0 + b _02234E64 +_02234E58: + mov r0, #4 + bl FUN_020336A0 + b _02234E64 +_02234E60: + bl FUN_020335E0 +_02234E64: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02234E08 + + thumb_func_start MOD80_02234E68 +MOD80_02234E68: ; 0x02234E68 + push {r4, lr} + add r4, r0, #0 + add r0, #0xd4 + bl MOD80_0222DCB8 + mov r0, #0x19 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02234E68 + + thumb_func_start MOD80_02234E7C +MOD80_02234E7C: ; 0x02234E7C + push {r3, r4, r5, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02234EE2 + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0x10 + bhi _02234EE2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02234EA0: ; jump table + .short _02234FF4 - _02234EA0 - 2 ; case 0 + .short _02234FF4 - _02234EA0 - 2 ; case 1 + .short _02234FFC - _02234EA0 - 2 ; case 2 + .short _02234FF4 - _02234EA0 - 2 ; case 3 + .short _02235006 - _02234EA0 - 2 ; case 4 + .short _02235006 - _02234EA0 - 2 ; case 5 + .short _02235006 - _02234EA0 - 2 ; case 6 + .short _02235006 - _02234EA0 - 2 ; case 7 + .short _02235006 - _02234EA0 - 2 ; case 8 + .short _02235006 - _02234EA0 - 2 ; case 9 + .short _02235006 - _02234EA0 - 2 ; case 10 + .short _02234FA4 - _02234EA0 - 2 ; case 11 + .short _02234F38 - _02234EA0 - 2 ; case 12 + .short _02234FF4 - _02234EA0 - 2 ; case 13 + .short _02235006 - _02234EA0 - 2 ; case 14 + .short _02234EC2 - _02234EA0 - 2 ; case 15 + .short _02234EC8 - _02234EA0 - 2 ; case 16 +_02234EC2: + mov r0, #0x1a + str r0, [r4, #0x2c] + b _02235006 +_02234EC8: + mov r0, #1 + add r1, r4, #0 + strh r0, [r4, #0x36] + add r0, r4, #0 + add r1, #0xd4 + bl MOD80_022357DC + cmp r0, #0 + beq _02234F2C + cmp r0, #1 + beq _02234EE4 + cmp r0, #2 + beq _02234F08 +_02234EE2: + b _02235006 +_02234EE4: + add r0, r4, #0 + bl MOD80_0222E8D8 + ldr r0, _0223500C ; =0x00000F0F + ldr r1, _02235010 ; =0x00000B34 + str r0, [sp] + ldr r1, [r4, r1] + add r0, r4, #0 + mov r2, #0x1d + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x1c + bl MOD80_0222E6DC + b _02235006 +_02234F08: + add r0, r4, #0 + bl MOD80_0222E8D8 + ldr r0, _0223500C ; =0x00000F0F + ldr r1, _02235010 ; =0x00000B34 + str r0, [sp] + ldr r1, [r4, r1] + add r0, r4, #0 + mov r2, #0x23 + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x1c + bl MOD80_0222E6DC + b _02235006 +_02234F2C: + mov r0, #0x12 + str r0, [r4, #0x2c] + ldr r0, _02235014 ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + b _02235006 +_02234F38: + mov r0, #0 + strh r0, [r4, #0x36] + ldr r0, [r4] + ldr r0, [r0] + bl FUN_0202ABDC + cmp r0, #0 + beq _02234F9C + mov r0, #0x3e + bl FUN_020669C0 + add r5, r0, #0 + ldr r0, [r4] + add r1, r5, #0 + ldr r0, [r0] + bl FUN_0202ABEC + add r0, r5, #0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200ACF8 + mov r0, #2 + str r0, [r4, #0x28] + mov r0, #0x22 + str r0, [r4, #0x2c] + ldr r0, [r4] + ldr r0, [r0] + bl FUN_0202AC18 + add r2, r0, #0 + add r0, r4, #0 + add r1, r5, #0 + mov r3, #0 + bl MOD80_022355F0 + ldr r0, [r4] + mov r1, #0 + ldr r0, [r0] + bl FUN_0202ABE4 + add r0, r5, #0 + bl FUN_02016A18 + b _02235006 +_02234F9C: + add r0, r4, #0 + bl MOD80_022350C4 + b _02235006 +_02234FA4: + mov r0, #0 + strh r0, [r4, #0x36] + ldr r0, [r4] + ldr r0, [r0] + bl FUN_0202ABDC + cmp r0, #0 + beq _02235006 + mov r0, #0x3e + bl FUN_020669C0 + add r5, r0, #0 + ldr r0, [r4] + add r1, r5, #0 + ldr r0, [r0] + bl FUN_0202ABEC + add r0, r5, #0 + bl FUN_020690E4 + add r2, r0, #0 + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_0200ACF8 + mov r0, #3 + str r0, [r4, #0x28] + mov r0, #0x22 + str r0, [r4, #0x2c] + ldr r0, [r4] + mov r1, #0 + ldr r0, [r0] + bl FUN_0202ABE4 + add r0, r5, #0 + bl FUN_02016A18 + b _02235006 +_02234FF4: + str r0, [r4, #0x3c] + mov r0, #0x26 + str r0, [r4, #0x2c] + b _02235006 +_02234FFC: + mov r0, #3 + mov r1, #1 + mov r2, #0 + bl FUN_02033F70 +_02235006: + mov r0, #3 + pop {r3, r4, r5, pc} + nop +_0223500C: .word 0x00000F0F +_02235010: .word 0x00000B34 +_02235014: .word 0x0000100C + thumb_func_end MOD80_02234E7C + + thumb_func_start MOD80_02235018 +MOD80_02235018: ; 0x02235018 + push {r4, lr} + mov r1, #1 + mov r2, #0 + add r4, r0, #0 + bl MOD80_0222E7A8 + mov r0, #0x24 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02235018 + + thumb_func_start MOD80_0223502C +MOD80_0223502C: ; 0x0223502C + push {r4, lr} + add r4, r0, #0 + add r0, #0xd4 + bl MOD80_0222DC68 + mov r0, #0x1b + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_0223502C + + thumb_func_start MOD80_02235040 +MOD80_02235040: ; 0x02235040 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _022350BE + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0xf + bhi _022350B8 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02235064: ; jump table + .short _022350AC - _02235064 - 2 ; case 0 + .short _022350AC - _02235064 - 2 ; case 1 + .short _022350B4 - _02235064 - 2 ; case 2 + .short _022350A4 - _02235064 - 2 ; case 3 + .short _022350B8 - _02235064 - 2 ; case 4 + .short _022350B8 - _02235064 - 2 ; case 5 + .short _022350B8 - _02235064 - 2 ; case 6 + .short _022350B8 - _02235064 - 2 ; case 7 + .short _022350B8 - _02235064 - 2 ; case 8 + .short _022350B8 - _02235064 - 2 ; case 9 + .short _022350B8 - _02235064 - 2 ; case 10 + .short _022350B8 - _02235064 - 2 ; case 11 + .short _0223509E - _02235064 - 2 ; case 12 + .short _022350AC - _02235064 - 2 ; case 13 + .short _022350B8 - _02235064 - 2 ; case 14 + .short _02235084 - _02235064 - 2 ; case 15 +_02235084: + add r0, r4, #0 + bl MOD80_02235830 + cmp r0, #0 + beq _02235098 + mov r0, #0x16 + str r0, [r4, #0x2c] + mov r0, #0 + strh r0, [r4, #0x36] + b _022350B8 +_02235098: + mov r0, #1 + strh r0, [r4, #0x36] + b _022350B8 +_0223509E: + mov r0, #0 + strh r0, [r4, #0x36] + b _022350B8 +_022350A4: + str r0, [r4, #0x3c] + mov r0, #0x27 + str r0, [r4, #0x2c] + b _022350B8 +_022350AC: + str r0, [r4, #0x3c] + mov r0, #0x26 + str r0, [r4, #0x2c] + b _022350B8 +_022350B4: + bl FUN_020335E0 +_022350B8: + add r0, r4, #0 + bl MOD80_022350C4 +_022350BE: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235040 + + thumb_func_start MOD80_022350C4 +MOD80_022350C4: ; 0x022350C4 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x1c] + cmp r1, #1 + beq _022350D4 + cmp r1, #2 + beq _022350E2 + pop {r4, pc} +_022350D4: + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #0x24 + str r0, [r4, #0x2c] + pop {r4, pc} +_022350E2: + mov r1, #2 + mov r2, #3 + bl MOD80_0222E7A8 + mov r0, #0x24 + str r0, [r4, #0x2c] + pop {r4, pc} + thumb_func_end MOD80_022350C4 + + thumb_func_start MOD80_022350F0 +MOD80_022350F0: ; 0x022350F0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0] + bl FUN_0202AC18 + ldr r3, _02235154 ; =0x000001F5 + add r1, r4, #0 + add r2, r0, #0 + ldrsb r3, [r4, r3] + add r0, r4, #0 + add r1, #0xd4 + bl MOD80_022355F0 + ldr r0, [r4] + add r1, r4, #0 + ldr r0, [r0, #0x18] + add r1, #0xd4 + bl MOD80_02235784 + ldr r0, [r4] + mov r1, #0x19 + ldr r0, [r0, #0x28] + bl FUN_0202A170 + ldr r0, [r4] + add r1, r4, #0 + ldr r0, [r0, #0x2c] + add r1, #0xd4 + bl MOD80_022357A0 + ldr r0, [r4] + mov r1, #0x18 + ldr r0, [r0, #0x28] + bl FUN_0202A0E8 + ldr r0, [r4] + mov r1, #0 + ldr r0, [r0] + bl FUN_0202ABE4 + mov r0, #0x1e + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #0x13 + mov r2, #0xb + bl MOD80_02235820 + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02235154: .word 0x000001F5 + thumb_func_end MOD80_022350F0 + + thumb_func_start MOD80_02235158 +MOD80_02235158: ; 0x02235158 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DD08 + mov r0, #0x14 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02235158 + + thumb_func_start MOD80_02235168 +MOD80_02235168: ; 0x02235168 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _022351C8 + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0xf + bhi _022351C8 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0223518C: ; jump table + .short _022351BC - _0223518C - 2 ; case 0 + .short _022351BC - _0223518C - 2 ; case 1 + .short _022351C4 - _0223518C - 2 ; case 2 + .short _022351BA - _0223518C - 2 ; case 3 + .short _022351C8 - _0223518C - 2 ; case 4 + .short _022351C8 - _0223518C - 2 ; case 5 + .short _022351C8 - _0223518C - 2 ; case 6 + .short _022351C8 - _0223518C - 2 ; case 7 + .short _022351C8 - _0223518C - 2 ; case 8 + .short _022351C8 - _0223518C - 2 ; case 9 + .short _022351C8 - _0223518C - 2 ; case 10 + .short _022351BA - _0223518C - 2 ; case 11 + .short _022351B2 - _0223518C - 2 ; case 12 + .short _022351BC - _0223518C - 2 ; case 13 + .short _022351C8 - _0223518C - 2 ; case 14 + .short _022351AC - _0223518C - 2 ; case 15 +_022351AC: + mov r0, #0x21 + str r0, [r4, #0x2c] + b _022351C8 +_022351B2: + mov r0, #3 + bl FUN_020336A0 + b _022351C8 +_022351BA: + str r0, [r4, #0x3c] +_022351BC: + mov r0, #4 + bl FUN_020336A0 + b _022351C8 +_022351C4: + bl FUN_020335E0 +_022351C8: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02235168 + + thumb_func_start MOD80_022351CC +MOD80_022351CC: ; 0x022351CC + mov r0, #3 + bx lr + thumb_func_end MOD80_022351CC + + thumb_func_start MOD80_022351D0 +MOD80_022351D0: ; 0x022351D0 + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + strh r1, [r4, #0x36] + mov r1, #9 + mov r2, #7 + bl MOD80_0222E7A8 + mov r0, #0x24 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_022351D0 + + thumb_func_start MOD80_022351E8 +MOD80_022351E8: ; 0x022351E8 + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + strh r1, [r4, #0x36] + mov r1, #9 + mov r2, #8 + bl MOD80_0222E7A8 + mov r0, #0x24 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_022351E8 + + thumb_func_start MOD80_02235200 +MOD80_02235200: ; 0x02235200 + push {r4, lr} + mov r1, #9 + add r2, r1, #0 + add r4, r0, #0 + bl MOD80_0222E7A8 + mov r0, #0x24 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02235200 + + thumb_func_start MOD80_02235214 +MOD80_02235214: ; 0x02235214 + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + strh r1, [r4, #0x36] + mov r1, #9 + mov r2, #0xa + bl MOD80_0222E7A8 + mov r0, #0x1e + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02235214 + + thumb_func_start MOD80_0223522C +MOD80_0223522C: ; 0x0223522C + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DD4C + mov r0, #0x17 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_0223522C + + thumb_func_start MOD80_0223523C +MOD80_0223523C: ; 0x0223523C + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _022352A6 + bl MOD80_0222DBB8 + add r0, #0xf + cmp r0, #0xf + bhi _022352A6 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223525E: ; jump table + .short _0223529A - _0223525E - 2 ; case 0 + .short _0223529A - _0223525E - 2 ; case 1 + .short _022352A2 - _0223525E - 2 ; case 2 + .short _0223529A - _0223525E - 2 ; case 3 + .short _022352A6 - _0223525E - 2 ; case 4 + .short _022352A6 - _0223525E - 2 ; case 5 + .short _022352A6 - _0223525E - 2 ; case 6 + .short _022352A6 - _0223525E - 2 ; case 7 + .short _022352A6 - _0223525E - 2 ; case 8 + .short _022352A6 - _0223525E - 2 ; case 9 + .short _02235292 - _0223525E - 2 ; case 10 + .short _0223528C - _0223525E - 2 ; case 11 + .short _02235286 - _0223525E - 2 ; case 12 + .short _0223529A - _0223525E - 2 ; case 13 + .short _022352A6 - _0223525E - 2 ; case 14 + .short _0223527E - _0223525E - 2 ; case 15 +_0223527E: + add r0, r4, #0 + bl MOD80_022350C4 + b _022352A6 +_02235286: + add r0, r4, #0 + bl MOD80_022350C4 +_0223528C: + add r0, r4, #0 + bl MOD80_022350C4 +_02235292: + mov r0, #3 + bl FUN_020336A0 + b _022352A6 +_0223529A: + mov r0, #4 + bl FUN_020336A0 + b _022352A6 +_022352A2: + bl FUN_020335E0 +_022352A6: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_0223523C + + thumb_func_start MOD80_022352AC +MOD80_022352AC: ; 0x022352AC + push {r3, r4, lr} + sub sp, #4 + ldr r1, _022352E8 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _022352EC ; =0x00000B34 + mov r2, #0x89 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x24 + bl MOD80_0222E6DC + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + add r0, r4, #0 + bl MOD80_0222E8D8 + add r0, r4, #0 + bl MOD80_02235C40 + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_022352E8: .word 0x00000F0F +_022352EC: .word 0x00000B34 + thumb_func_end MOD80_022352AC + + thumb_func_start MOD80_022352F0 +MOD80_022352F0: ; 0x022352F0 + push {r3, lr} + ldr r1, [r0, #0x3c] + mov r2, #0x90 + add r1, #0xf + cmp r1, #0xe + bhi _02235330 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02235308: ; jump table + .short _02235330 - _02235308 - 2 ; case 0 + .short _0223532E - _02235308 - 2 ; case 1 + .short _02235330 - _02235308 - 2 ; case 2 + .short _02235330 - _02235308 - 2 ; case 3 + .short _02235326 - _02235308 - 2 ; case 4 + .short _02235326 - _02235308 - 2 ; case 5 + .short _02235326 - _02235308 - 2 ; case 6 + .short _02235326 - _02235308 - 2 ; case 7 + .short _02235326 - _02235308 - 2 ; case 8 + .short _02235326 - _02235308 - 2 ; case 9 + .short _02235330 - _02235308 - 2 ; case 10 + .short _02235330 - _02235308 - 2 ; case 11 + .short _02235330 - _02235308 - 2 ; case 12 + .short _0223532E - _02235308 - 2 ; case 13 + .short _0223532A - _02235308 - 2 ; case 14 +_02235326: + mov r2, #0x1a + b _02235330 +_0223532A: + mov r2, #0x8d + b _02235330 +_0223532E: + mov r2, #0x92 +_02235330: + ldr r1, _02235340 ; =0x00000F0F + mov r3, #1 + str r1, [sp] + ldr r1, _02235344 ; =0x00000B34 + ldr r1, [r0, r1] + bl MOD80_02236C70 + pop {r3, pc} + .align 2, 0 +_02235340: .word 0x00000F0F +_02235344: .word 0x00000B34 + thumb_func_end MOD80_022352F0 + + thumb_func_start MOD80_02235348 +MOD80_02235348: ; 0x02235348 + push {r4, lr} + add r4, r0, #0 + bl MOD80_022352F0 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x24 + bl MOD80_0222E6DC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + add r0, r4, #0 + bl MOD80_0222E8D8 + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235348 + + thumb_func_start MOD80_02235370 +MOD80_02235370: ; 0x02235370 + push {r4, lr} + add r4, r0, #0 + bl MOD80_022352F0 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x24 + bl MOD80_0222E6DC + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + add r0, r4, #0 + bl MOD80_0222E8D8 + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235370 + + thumb_func_start MOD80_02235398 +MOD80_02235398: ; 0x02235398 + push {r4, lr} + add r4, r0, #0 + mov r1, #0x25 + mov r2, #0x1e + bl MOD80_0222E6DC + add r0, r4, #0 + mov r1, #0x21 + mov r2, #0x24 + bl MOD80_02235820 + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235398 + + thumb_func_start MOD80_022353B4 +MOD80_022353B4: ; 0x022353B4 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl FUN_02022830 + ldr r0, [r4] + mov r1, #2 + ldr r0, [r0, #0x20] + bl FUN_02022840 + mov r0, #0x1f + str r0, [r4, #0x2c] + bl FUN_0201B9EC + ldr r1, _022353EC ; =0x00000445 + bl _s32_div_f + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + cmp r5, #0x3c + blo _022353E0 + bl ErrorHandling +_022353E0: + ldr r0, _022353F0 ; =0x00000FDC + add r1, r5, #2 + str r1, [r4, r0] + mov r0, #3 + pop {r3, r4, r5, pc} + nop +_022353EC: .word 0x00000445 +_022353F0: .word 0x00000FDC + thumb_func_end MOD80_022353B4 + + thumb_func_start MOD80_022353F4 +MOD80_022353F4: ; 0x022353F4 + ldr r1, _0223540C ; =0x00000FDC + ldr r2, [r0, r1] + sub r2, r2, #1 + str r2, [r0, r1] + ldr r1, [r0, r1] + cmp r1, #0 + bne _02235406 + mov r1, #0x20 + str r1, [r0, #0x2c] +_02235406: + mov r0, #3 + bx lr + nop +_0223540C: .word 0x00000FDC + thumb_func_end MOD80_022353F4 + + thumb_func_start MOD80_02235410 +MOD80_02235410: ; 0x02235410 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl FUN_02022854 + cmp r0, #1 + bne _02235426 + ldr r0, _0223542C ; =0x00000FE4 + ldrh r0, [r4, r0] + str r0, [r4, #0x2c] +_02235426: + mov r0, #3 + pop {r4, pc} + nop +_0223542C: .word 0x00000FE4 + thumb_func_end MOD80_02235410 + + thumb_func_start MOD80_02235430 +MOD80_02235430: ; 0x02235430 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl FUN_02022854 + cmp r0, #2 + bne _0223544C + ldr r0, _02235450 ; =0x00000FE6 + ldrh r0, [r4, r0] + str r0, [r4, #0x2c] + add r0, r4, #0 + bl MOD80_0222E8D8 +_0223544C: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02235450: .word 0x00000FE6 + thumb_func_end MOD80_02235430 + + thumb_func_start MOD80_02235454 +MOD80_02235454: ; 0x02235454 + push {r4, lr} + add r4, r0, #0 + bl FUN_02022830 + ldr r0, [r4] + mov r1, #2 + ldr r0, [r0, #0x20] + bl FUN_02022840 + mov r0, #0x23 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235454 + + thumb_func_start MOD80_02235470 +MOD80_02235470: ; 0x02235470 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl FUN_02022854 + cmp r0, #2 + bne _022354AE + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + add r0, r4, #0 + bl MOD80_0222E8D8 + ldr r0, _022354B4 ; =0x00000F0F + ldr r1, _022354B8 ; =0x00000B34 + str r0, [sp] + ldr r1, [r4, r1] + ldr r2, [r4, #0x28] + add r0, r4, #0 + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x1c + bl MOD80_0222E6DC +_022354AE: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_022354B4: .word 0x00000F0F +_022354B8: .word 0x00000B34 + thumb_func_end MOD80_02235470 + + thumb_func_start MOD80_022354BC +MOD80_022354BC: ; 0x022354BC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_0222E8D8 + bl FUN_02033ED0 + ldr r0, _02235510 ; =0x0000100C + ldr r0, [r4, r0] + cmp r0, #1 + bne _022354EC + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + b _02235504 +_022354EC: + mov r0, #6 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 +_02235504: + mov r0, #0 + str r0, [r4, #0x2c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + nop +_02235510: .word 0x0000100C + thumb_func_end MOD80_022354BC + + thumb_func_start MOD80_02235514 +MOD80_02235514: ; 0x02235514 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0223552E + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_0223552E: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235514 + + thumb_func_start MOD80_02235534 +MOD80_02235534: ; 0x02235534 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r0, #0xb8 + ldrh r0, [r0] + add r6, r1, #0 + cmp r0, #0x12 + beq _02235590 + mov r0, #0x3e + bl FUN_020669C0 + add r1, r5, #0 + add r2, r5, #0 + add r4, r0, #0 + ldr r0, [r5] + add r1, #0xb8 + add r2, #0xba + ldrh r1, [r1] + ldrh r2, [r2] + ldr r0, [r0, #0xc] + bl FUN_0206B5E4 + add r1, r4, #0 + bl FUN_02069A64 + add r2, r5, #0 + ldr r0, [r5] + add r2, #0xb8 + ldrh r2, [r2] + ldr r0, [r0] + add r1, r4, #0 + bl FUN_0202ABF8 + add r1, r5, #0 + add r2, r5, #0 + ldr r0, [r5] + add r1, #0xb8 + add r2, #0xba + ldrh r1, [r1] + ldrh r2, [r2] + ldr r0, [r0, #0xc] + bl FUN_0206B2FC + add r0, r4, #0 + bl FUN_02016A18 + b _022355DC +_02235590: + add r1, r5, #0 + ldr r0, [r5] + add r1, #0xba + ldrh r1, [r1] + ldr r0, [r0, #8] + bl FUN_0206B9B0 + add r4, r0, #0 + bl FUN_0206AA84 + add r2, r5, #0 + ldr r0, [r5] + add r2, #0xb8 + ldrh r2, [r2] + ldr r0, [r0] + add r1, r4, #0 + bl FUN_0202ABF8 + add r1, r5, #0 + ldr r0, [r5] + add r1, #0xba + ldrh r1, [r1] + ldr r0, [r0, #8] + bl FUN_0206B938 + ldr r0, [r5] + ldr r1, _022355EC ; =0x000001B9 + ldr r0, [r0, #8] + bl FUN_0206BAE4 + cmp r0, #0 + bne _022355DC + ldr r0, [r5] + ldr r0, [r0, #0x20] + bl FUN_02029EF8 + bl FUN_02029F08 +_022355DC: + cmp r6, #0 + beq _022355EA + ldr r0, [r5] + mov r1, #1 + ldr r0, [r0] + bl FUN_0202ABE4 +_022355EA: + pop {r4, r5, r6, pc} + .align 2, 0 +_022355EC: .word 0x000001B9 + thumb_func_end MOD80_02235534 + + thumb_func_start MOD80_022355F0 +MOD80_022355F0: ; 0x022355F0 + push {r0, r1, r2, r3} + push {r4, r5, r6, lr} + sub sp, #8 + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #6 + mov r2, #0 + add r6, r3, #0 + bl FUN_020671BC + ldr r0, [r5] + add r1, r4, #0 + ldr r0, [r0, #0x20] + bl FUN_0202C144 + mov r0, #0x12 + str r0, [sp, #0x20] + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_0206B9AC + cmp r0, #6 + bne _02235624 + mov r0, #0 + str r0, [sp, #0x20] +_02235624: + cmp r6, #0 + beq _02235640 + mov r1, #0x46 + add r0, sp, #0 + strb r1, [r0] + add r0, r4, #0 + mov r1, #9 + add r2, sp, #0 + bl FUN_02067830 + ldr r0, [r5] + ldr r0, [r0] + bl MOD80_02235754 +_02235640: + ldr r0, [sp, #0x20] + cmp r0, #0x12 + bne _02235664 + ldr r0, [r5] + add r1, r4, #0 + ldr r0, [r0, #8] + bl FUN_0206B900 + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_0206B9AC + add r1, r5, #0 + mov r2, #0x12 + add r1, #0xcc + str r2, [r1] + sub r1, r0, #1 + b _02235690 +_02235664: + mov r0, #0 + str r0, [sp, #4] + ldr r0, [r5] + add r1, sp, #0x20 + ldr r0, [r0, #0xc] + add r2, sp, #4 + bl FUN_0206B384 + add r0, r4, #0 + bl FUN_020690E4 + add r2, r0, #0 + ldr r0, [r5] + ldr r1, [sp, #0x20] + ldr r0, [r0, #0xc] + bl FUN_0206B244 + add r0, r5, #0 + ldr r1, [sp, #0x20] + add r0, #0xcc + str r1, [r0] + ldr r1, [sp, #4] +_02235690: + add r0, r5, #0 + add r0, #0xd0 + str r1, [r0] + ldr r0, [r5] + mov r1, #0 + ldr r0, [r0] + bl FUN_0202ABE4 + add sp, #8 + pop {r4, r5, r6} + pop {r3} + add sp, #0x10 + bx r3 + .align 2, 0 + thumb_func_end MOD80_022355F0 + + thumb_func_start MOD80_022356AC +MOD80_022356AC: ; 0x022356AC + push {r0, r1, r2, r3} + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, [r5] + add r4, r1, #0 + ldr r0, [r0, #0x20] + bl FUN_0202C144 + mov r0, #0x12 + str r0, [sp, #0x20] + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_0206B9AC + cmp r0, #6 + bne _022356D2 + mov r0, #0 + str r0, [sp, #0x20] +_022356D2: + mov r1, #0x46 + add r0, sp, #0 + strb r1, [r0] + add r0, r4, #0 + mov r1, #9 + add r2, sp, #0 + bl FUN_02067830 + ldr r0, [sp, #0x20] + cmp r0, #0x12 + bne _02235706 + ldr r0, [r5] + add r1, r4, #0 + ldr r0, [r0, #8] + bl FUN_0206B900 + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_0206B9AC + add r1, r5, #0 + mov r2, #0x12 + add r1, #0xcc + str r2, [r1] + sub r1, r0, #1 + b _02235732 +_02235706: + mov r0, #0 + str r0, [sp, #4] + ldr r0, [r5] + add r1, sp, #0x20 + ldr r0, [r0, #0xc] + add r2, sp, #4 + bl FUN_0206B384 + add r0, r4, #0 + bl FUN_020690E4 + add r2, r0, #0 + ldr r0, [r5] + ldr r1, [sp, #0x20] + ldr r0, [r0, #0xc] + bl FUN_0206B244 + add r0, r5, #0 + ldr r1, [sp, #0x20] + add r0, #0xcc + str r1, [r0] + ldr r1, [sp, #4] +_02235732: + add r0, r5, #0 + add r0, #0xd0 + str r1, [r0] + ldr r0, [r5] + mov r1, #0 + ldr r0, [r0] + bl FUN_0202ABE4 + ldr r0, [r5] + ldr r0, [r0] + bl MOD80_02235754 + add sp, #8 + pop {r3, r4, r5} + pop {r3} + add sp, #0x10 + bx r3 + thumb_func_end MOD80_022356AC + + thumb_func_start MOD80_02235754 +MOD80_02235754: ; 0x02235754 + push {r3, r4, lr} + sub sp, #0x1c + add r4, r0, #0 + add r0, sp, #0xc + add r1, sp, #0 + bl MOD04_021DE1F8 + ldr r1, [sp, #0x14] + ldr r3, [sp, #0xc] + add r0, r4, #0 + lsl r4, r3, #0x18 + ldr r3, [sp, #0x10] + lsl r1, r1, #0x18 + lsl r3, r3, #0x18 + lsr r3, r3, #8 + ldr r2, [sp, #0x18] + lsr r1, r1, #0x10 + orr r3, r4 + orr r1, r3 + orr r1, r2 + bl FUN_0202AC10 + add sp, #0x1c + pop {r3, r4, pc} + thumb_func_end MOD80_02235754 + + thumb_func_start MOD80_02235784 +MOD80_02235784: ; 0x02235784 + push {r4, lr} + ldr r3, _0223579C ; =0x0000011E + add r4, r1, #0 + add r2, r3, #1 + ldrb r1, [r4, r3] + add r3, r3, #5 + ldrb r2, [r4, r2] + ldrb r3, [r4, r3] + bl FUN_020337C8 + pop {r4, pc} + nop +_0223579C: .word 0x0000011E + thumb_func_end MOD80_02235784 + + thumb_func_start MOD80_022357A0 +MOD80_022357A0: ; 0x022357A0 + push {r4, r5, lr} + sub sp, #0x1c + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #0x74 + add r2, sp, #4 + bl FUN_020671BC + add r0, r4, #0 + bl FUN_020689E0 + add r3, r0, #0 + mov r0, #0x3e + str r0, [sp] + add r0, #0xce + add r0, r4, r0 + add r4, #0xf6 + ldrb r1, [r4] + add r2, sp, #4 + bl FUN_0202952C + add r1, r0, #0 + add r0, r5, #0 + mov r2, #4 + bl FUN_02028AD4 + add sp, #0x1c + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_022357A0 + + thumb_func_start MOD80_022357DC +MOD80_022357DC: ; 0x022357DC + push {r4, lr} + add r4, r0, #0 + add r0, r1, #0 + bl MOD80_022331F8 + cmp r0, #0 + beq _022357FA + ldr r0, [r4] + ldr r0, [r0, #8] + bl FUN_0206B9AC + cmp r0, #6 + bne _022357FA + mov r0, #2 + pop {r4, pc} +_022357FA: + ldr r0, _0223581C ; =0x00001008 + ldrh r1, [r4, r0] + mov r0, #0x87 + lsl r0, r0, #2 + cmp r1, r0 + bne _02235816 + ldr r0, [r4] + ldr r0, [r0, #8] + bl FUN_0206B9AC + cmp r0, #6 + bne _02235816 + mov r0, #1 + pop {r4, pc} +_02235816: + mov r0, #0 + pop {r4, pc} + nop +_0223581C: .word 0x00001008 + thumb_func_end MOD80_022357DC + + thumb_func_start MOD80_02235820 +MOD80_02235820: ; 0x02235820 + ldr r3, _0223582C ; =0x00000FE4 + strh r1, [r0, r3] + add r1, r3, #2 + strh r2, [r0, r1] + bx lr + nop +_0223582C: .word 0x00000FE4 + thumb_func_end MOD80_02235820 + + thumb_func_start MOD80_02235830 +MOD80_02235830: ; 0x02235830 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0] + bl FUN_0202ABDC + cmp r0, #0 + bne _0223584A + ldrh r0, [r4, #0x36] + cmp r0, #0 + beq _0223584A + mov r0, #1 + pop {r4, pc} +_0223584A: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02235830 + + thumb_func_start MOD80_02235850 +MOD80_02235850: ; 0x02235850 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + add r5, r0, #0 + add r4, r1, #0 + bl MOD80_02235C88 + ldr r2, _022358F0 ; =0x00000D14 + add r0, sp, #0 + add r1, r5, #0 + add r2, r5, r2 + mov r3, #2 + bl MOD80_0222E5E8 + mov r0, #2 + str r0, [sp, #0x28] + lsl r0, r0, #0x12 + str r0, [sp, #8] + ldr r0, _022358F4 ; =0x00182000 + str r0, [sp, #0xc] + add r0, sp, #0 + bl FUN_0201FE94 + mov r1, #0xe7 + lsl r1, r1, #4 + str r0, [r5, r1] + ldr r0, [r5, r1] + mov r1, #1 + bl FUN_020200BC + mov r0, #0xe7 + lsl r0, r0, #4 + mov r1, #7 + mul r1, r4 + ldr r0, [r5, r0] + add r1, r1, #3 + bl FUN_02020130 + mov r0, #0xe7 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r4, _022358F8 ; =0x022375A6 + mov r7, #0 + mov r6, #0xe +_022358AC: + add r0, sp, #0 + bl FUN_0201FE94 + ldr r1, _022358FC ; =0x00000E74 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + ldr r0, _022358FC ; =0x00000E74 + add r1, r6, #0 + ldr r0, [r5, r0] + bl FUN_02020130 + ldr r0, _022358FC ; =0x00000E74 + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_020200A0 + ldr r0, _022358FC ; =0x00000E74 + ldrh r1, [r4] + ldrh r2, [r4, #2] + ldr r0, [r5, r0] + bl MOD80_02235AFC + add r7, r7, #1 + add r5, r5, #4 + add r6, r6, #4 + add r4, r4, #4 + cmp r7, #7 + blt _022358AC + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022358F0: .word 0x00000D14 +_022358F4: .word 0x00182000 +_022358F8: .word 0x022375A6 +_022358FC: .word 0x00000E74 + thumb_func_end MOD80_02235850 + + thumb_func_start MOD80_02235900 +MOD80_02235900: ; 0x02235900 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD80_02235850 + ldr r0, _0223593C ; =MOD80_02235964 + mov r1, #0x10 + mov r2, #5 + mov r3, #0x3e + bl FUN_020061E8 + ldr r1, _02235940 ; =0x00000FE8 + str r0, [r5, r1] + ldr r0, [r5, r1] + bl FUN_0201B6C8 + mov r1, #0 + add r2, r1, #0 + str r1, [r0] + sub r2, #0x28 + str r2, [r0, #4] + str r4, [r0, #8] + str r5, [r0, #0xc] + bl MOD80_02235948 + ldr r0, _02235944 ; =0x0000062F + bl FUN_020054C8 + pop {r3, r4, r5, pc} + nop +_0223593C: .word MOD80_02235964 +_02235940: .word 0x00000FE8 +_02235944: .word 0x0000062F + thumb_func_end MOD80_02235900 + + thumb_func_start MOD80_02235948 +MOD80_02235948: ; 0x02235948 + add r3, r0, #0 + ldr r2, [r3, #0xc] + mov r0, #0xe7 + lsl r0, r0, #4 + ldr r0, [r2, r0] + ldr r3, [r3, #8] + mov r2, #7 + mul r2, r3 + ldr r3, _02235960 ; =FUN_02020130 + add r1, r1, r2 + bx r3 + nop +_02235960: .word FUN_02020130 + thumb_func_end MOD80_02235948 + + thumb_func_start MOD80_02235964 +MOD80_02235964: ; 0x02235964 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r6, r0, #0 + ldr r0, [r4] + ldr r5, [r4, #0xc] + cmp r0, #3 + bhi _02235A06 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223597E: ; jump table + .short _02235986 - _0223597E - 2 ; case 0 + .short _022359AE - _0223597E - 2 ; case 1 + .short _022359CA - _0223597E - 2 ; case 2 + .short _022359F2 - _0223597E - 2 ; case 3 +_02235986: + ldr r0, [r4, #4] + cmp r0, #0xa0 + ble _0223599A + mov r0, #0xa0 + str r0, [r4, #4] + mov r1, #1 + add r0, r4, #0 + str r1, [r4] + bl MOD80_02235948 +_0223599A: + ldr r0, [r4, #4] + mov r1, #0x80 + add r2, r0, #5 + mov r0, #0xe7 + str r2, [r4, #4] + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl MOD80_02235AFC + pop {r4, r5, r6, pc} +_022359AE: + mov r0, #0xe7 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02020388 + cmp r0, #0 + bne _02235A06 + add r0, r4, #0 + mov r1, #2 + bl MOD80_02235948 + mov r0, #2 + str r0, [r4] + pop {r4, r5, r6, pc} +_022359CA: + ldr r0, [r4, #4] + cmp r0, #0x82 + bge _022359DE + mov r0, #0x82 + str r0, [r4, #4] + mov r1, #3 + add r0, r4, #0 + str r1, [r4] + bl MOD80_02235948 +_022359DE: + ldr r0, [r4, #4] + mov r1, #0x80 + sub r2, r0, #2 + mov r0, #0xe7 + str r2, [r4, #4] + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl MOD80_02235AFC + pop {r4, r5, r6, pc} +_022359F2: + ldr r0, _02235A08 ; =0x0000060D + bl FUN_020054C8 + ldr r1, [r4, #0xc] + ldr r0, _02235A0C ; =0x00000FEC + mov r2, #1 + strh r2, [r1, r0] + add r0, r6, #0 + bl FUN_0200621C +_02235A06: + pop {r4, r5, r6, pc} + .align 2, 0 +_02235A08: .word 0x0000060D +_02235A0C: .word 0x00000FEC + thumb_func_end MOD80_02235964 + + thumb_func_start MOD80_02235A10 +MOD80_02235A10: ; 0x02235A10 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + ldr r0, _02235A48 ; =MOD80_02235A54 + mov r1, #0x10 + mov r2, #5 + mov r3, #0x3e + bl FUN_020061E8 + ldr r1, _02235A4C ; =0x00000FE8 + str r0, [r5, r1] + ldr r0, [r5, r1] + bl FUN_0201B6C8 + mov r1, #0 + str r1, [r0] + mov r1, #0x82 + str r1, [r0, #4] + str r4, [r0, #8] + mov r1, #5 + str r5, [r0, #0xc] + bl MOD80_02235948 + ldr r0, _02235A50 ; =0x0000060E + bl FUN_020054C8 + pop {r3, r4, r5, pc} + nop +_02235A48: .word MOD80_02235A54 +_02235A4C: .word 0x00000FE8 +_02235A50: .word 0x0000060E + thumb_func_end MOD80_02235A10 + + thumb_func_start MOD80_02235A54 +MOD80_02235A54: ; 0x02235A54 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r1, [r4] + ldr r5, [r4, #0xc] + cmp r1, #3 + bhi _02235AF4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02235A6C: ; jump table + .short _02235A74 - _02235A6C - 2 ; case 0 + .short _02235A9E - _02235A6C - 2 ; case 1 + .short _02235AC2 - _02235A6C - 2 ; case 2 + .short _02235AEA - _02235A6C - 2 ; case 3 +_02235A74: + ldr r0, [r4, #4] + cmp r0, #0xa0 + ble _02235A8A + mov r0, #0xa0 + str r0, [r4, #4] + mov r0, #1 + str r0, [r4] + add r0, r4, #0 + mov r1, #6 + bl MOD80_02235948 +_02235A8A: + ldr r0, [r4, #4] + mov r1, #0x80 + add r2, r0, #2 + mov r0, #0xe7 + str r2, [r4, #4] + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl MOD80_02235AFC + pop {r3, r4, r5, pc} +_02235A9E: + mov r0, #0xe7 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02020388 + cmp r0, #0 + bne _02235AF4 + add r0, r4, #0 + mov r1, #0 + bl MOD80_02235948 + mov r0, #2 + str r0, [r4] + mov r0, #0x63 + lsl r0, r0, #4 + bl FUN_020054C8 + pop {r3, r4, r5, pc} +_02235AC2: + mov r0, #0x13 + ldr r1, [r4, #4] + mvn r0, r0 + cmp r1, r0 + bge _02235AD6 + mov r1, #3 + add r0, r4, #0 + str r1, [r4] + bl MOD80_02235948 +_02235AD6: + ldr r0, [r4, #4] + mov r1, #0x80 + sub r2, r0, #5 + mov r0, #0xe7 + str r2, [r4, #4] + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl MOD80_02235AFC + pop {r3, r4, r5, pc} +_02235AEA: + ldr r1, _02235AF8 ; =0x00000FEC + mov r2, #1 + strh r2, [r5, r1] + bl FUN_0200621C +_02235AF4: + pop {r3, r4, r5, pc} + nop +_02235AF8: .word 0x00000FEC + thumb_func_end MOD80_02235A54 + + thumb_func_start MOD80_02235AFC +MOD80_02235AFC: ; 0x02235AFC + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + add r5, r2, #0 + cmp r1, #0 + ble _02235B1A + lsl r0, r1, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _02235B28 +_02235B1A: + lsl r0, r1, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_02235B28: + bl _ffix + sub r5, #8 + str r0, [sp] + cmp r5, #0 + ble _02235B46 + lsl r0, r5, #0xc + bl _fflt + add r1, r0, #0 + mov r0, #0x3f + lsl r0, r0, #0x18 + bl _fadd + b _02235B54 +_02235B46: + lsl r0, r5, #0xc + bl _fflt + mov r1, #0x3f + lsl r1, r1, #0x18 + bl _fsub +_02235B54: + bl _ffix + mov r1, #1 + lsl r1, r1, #0x14 + add r0, r0, r1 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, sp, #0 + bl FUN_02020044 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD80_02235AFC + + thumb_func_start MOD80_02235B70 +MOD80_02235B70: ; 0x02235B70 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02235B8C ; =0x022375C2 + bl FUN_02020988 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02235B86 + cmp r0, r4 + blt _02235B8A +_02235B86: + mov r0, #0 + mvn r0, r0 +_02235B8A: + pop {r4, pc} + .align 2, 0 +_02235B8C: .word 0x022375C2 + thumb_func_end MOD80_02235B70 + + thumb_func_start MOD80_02235B90 +MOD80_02235B90: ; 0x02235B90 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + str r0, [sp, #4] + str r1, [sp, #8] + str r2, [sp, #0xc] + add r0, r1, #0 + beq _02235BAA + add r0, r2, #0 + cmp r0, #1 + bne _02235BAA + ldr r0, _02235C24 ; =0x0000064F + bl FUN_020054C8 +_02235BAA: + ldr r4, [sp, #4] + mov r0, #0xe + mov r6, #0 + str r0, [sp, #0x10] + add r5, r4, #0 + mov r7, #0x11 +_02235BB6: + ldr r0, [sp, #8] + cmp r6, r0 + bge _02235C00 + ldr r0, _02235C28 ; =0x000002EE + ldr r1, [sp, #4] + ldrb r0, [r4, r0] + mov r3, #0xc6 + add r2, r1, #0 + str r0, [sp] + ldr r0, _02235C2C ; =0x00000FF4 + lsl r3, r3, #2 + ldr r0, [r1, r0] + ldr r1, _02235C30 ; =0x00000FFC + ldrb r3, [r4, r3] + ldr r1, [r2, r1] + add r2, r6, #0 + bl MOD80_02235CD0 + ldr r0, [sp, #0xc] + cmp r0, #0 + ldr r0, _02235C34 ; =0x00000E74 + beq _02235BEC + ldr r0, [r5, r0] + ldr r1, [sp, #0x10] + bl FUN_02020130 + b _02235BF4 +_02235BEC: + ldr r0, [r5, r0] + add r1, r7, #0 + bl FUN_02020130 +_02235BF4: + ldr r0, _02235C34 ; =0x00000E74 + mov r1, #1 + ldr r0, [r5, r0] + bl FUN_020200A0 + b _02235C0A +_02235C00: + ldr r0, _02235C34 ; =0x00000E74 + mov r1, #0 + ldr r0, [r5, r0] + bl FUN_020200A0 +_02235C0A: + mov r0, #0x49 + lsl r0, r0, #2 + add r4, r4, r0 + ldr r0, [sp, #0x10] + add r6, r6, #1 + add r0, r0, #4 + str r0, [sp, #0x10] + add r5, r5, #4 + add r7, r7, #4 + cmp r6, #7 + blt _02235BB6 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02235C24: .word 0x0000064F +_02235C28: .word 0x000002EE +_02235C2C: .word 0x00000FF4 +_02235C30: .word 0x00000FFC +_02235C34: .word 0x00000E74 + thumb_func_end MOD80_02235B90 + + thumb_func_start MOD80_02235C38 +MOD80_02235C38: ; 0x02235C38 + lsl r0, r0, #2 + add r0, #0xe + bx lr + .align 2, 0 + thumb_func_end MOD80_02235C38 + + thumb_func_start MOD80_02235C40 +MOD80_02235C40: ; 0x02235C40 + push {r3, r4, r5, r6, r7, lr} + ldr r7, _02235C84 ; =0x00000E74 + add r5, r0, #0 + mov r4, #0 +_02235C48: + ldr r0, [r5, r7] + bl FUN_02020128 + cmp r0, #0 + beq _02235C7A + ldr r0, _02235C84 ; =0x00000E74 + ldr r0, [r5, r0] + bl FUN_020201DC + add r6, r0, #0 + add r0, r4, #0 + bl MOD80_02235C38 + add r0, r0, #1 + cmp r6, r0 + beq _02235C7A + add r0, r4, #0 + bl MOD80_02235C38 + add r1, r0, #0 + ldr r0, _02235C84 ; =0x00000E74 + add r1, r1, #1 + ldr r0, [r5, r0] + bl FUN_02020130 +_02235C7A: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #7 + blt _02235C48 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02235C84: .word 0x00000E74 + thumb_func_end MOD80_02235C40 + + thumb_func_start MOD80_02235C88 +MOD80_02235C88: ; 0x02235C88 + push {r3, r4, lr} + sub sp, #4 + ldr r2, _02235CC8 ; =0x00000FFC + add r4, r0, #0 + mov r0, #0x56 + mov r1, #7 + add r2, r4, r2 + mov r3, #0x3e + bl FUN_02006C08 + ldr r3, _02235CCC ; =0x00000FF8 + mov r1, #9 + str r0, [r4, r3] + mov r0, #0x3e + sub r3, r3, #4 + str r0, [sp] + mov r0, #0x56 + mov r2, #1 + add r3, r4, r3 + bl FUN_02006BB0 + mov r1, #0xff + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r1, #4 + mov r1, #2 + ldr r0, [r4, r0] + lsl r1, r1, #0xe + bl DC_FlushRange + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02235CC8: .word 0x00000FFC +_02235CCC: .word 0x00000FF8 + thumb_func_end MOD80_02235C88 + + thumb_func_start MOD80_02235CD0 +MOD80_02235CD0: ; 0x02235CD0 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r6, r1, #0 + ldr r0, [sp, #0x18] + add r1, r3, #0 + add r5, r2, #0 + bl FUN_020536C8 + add r4, r0, #0 + mov r0, #6 + lsl r0, r0, #8 + ldr r1, [r7, #0x14] + mul r0, r4 + add r0, r1, r0 + ldr r1, _02235D0C ; =0x02237598 + lsl r2, r5, #1 + ldrh r1, [r1, r2] + mov r2, #2 + ldr r6, [r6, #0xc] + lsl r2, r2, #8 + bl GXS_LoadOBJ + lsl r0, r4, #5 + add r1, r5, #2 + add r0, r6, r0 + lsl r1, r1, #5 + mov r2, #0x20 + bl GXS_LoadOBJPltt + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02235D0C: .word 0x02237598 + thumb_func_end MOD80_02235CD0 + + thumb_func_start MOD80_02235D10 +MOD80_02235D10: ; 0x02235D10 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02235D30 ; =0x00000FEC + ldrh r1, [r4, r0] + cmp r1, #0 + beq _02235D2E + add r0, #0xc + ldr r0, [r4, r0] + bl FUN_02016A18 + mov r0, #0xff + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02016A18 +_02235D2E: + pop {r4, pc} + .align 2, 0 +_02235D30: .word 0x00000FEC + thumb_func_end MOD80_02235D10 + + thumb_func_start MOD80_02235D34 +MOD80_02235D34: ; 0x02235D34 + push {r4, lr} + add r4, r0, #0 + add r2, r4, #0 + add r3, r4, #0 + ldr r1, [r4] + add r2, #0xb8 + add r3, #0xba + ldr r0, [r1, #8] + ldrh r2, [r2] + ldrh r3, [r3] + ldr r1, [r1, #0xc] + bl MOD80_02232FB8 + str r0, [r4, #0x60] + add r0, r4, #0 + mov r1, #2 + add r0, #0x71 + strb r1, [r0] + add r0, r4, #0 + mov r2, #1 + add r0, #0x73 + strb r2, [r0] + add r0, r4, #0 + mov r1, #0 + add r0, #0x74 + strb r1, [r0] + add r0, r4, #0 + add r0, #0x72 + strb r2, [r0] + add r0, r4, #0 + add r0, #0x78 + strh r1, [r0] + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl FUN_02079C70 + add r1, r4, #0 + add r1, #0x8c + str r0, [r1] + ldr r0, [r4] + ldr r0, [r0, #0x34] + str r0, [r4, #0x7c] + ldr r0, [r4] + ldr r0, [r0, #0x24] + str r0, [r4, #0x64] + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl FUN_0202A918 + add r1, r4, #0 + add r1, #0x80 + str r0, [r1] + add r0, r4, #0 + ldr r1, _02235DCC ; =0x022375E4 + add r0, #0x60 + bl FUN_0207B000 + ldr r1, [r4] + add r0, r4, #0 + ldr r1, [r1, #0x1c] + add r0, #0x60 + bl FUN_0207C2A4 + add r1, r4, #0 + ldr r0, _02235DD0 ; =0x020FA6E8 + add r1, #0x60 + mov r2, #0x3e + bl FUN_02006234 + str r0, [r4, #0x5c] + mov r0, #1 + add r4, #0xac + str r0, [r4] + mov r0, #2 + pop {r4, pc} + nop +_02235DCC: .word 0x022375E4 +_02235DD0: .word 0x020FA6E8 + thumb_func_end MOD80_02235D34 + + thumb_func_start MOD80_02235DD4 +MOD80_02235DD4: ; 0x02235DD4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x5c] + mov r4, #3 + bl FUN_02006290 + cmp r0, #0 + beq _02235DF6 + ldr r0, [r5, #0x5c] + bl FUN_02006260 + ldr r2, [r5, #0x24] + add r0, r5, #0 + mov r1, #5 + bl MOD80_0222E7A8 + mov r4, #4 +_02235DF6: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD80_02235DD4 + + thumb_func_start MOD80_02235DFC +MOD80_02235DFC: ; 0x02235DFC + push {r3, lr} + bl MOD80_0222E7B0 + mov r0, #1 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD80_02235DFC + + thumb_func_start MOD80_02235E08 +MOD80_02235E08: ; 0x02235E08 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x3e + bl FUN_020669C0 + mov r1, #1 + lsl r1, r1, #0xc + str r0, [r4, r1] + ldr r0, [r4, #0x24] + cmp r0, #0xa + bls _02235E20 + b _02235F94 +_02235E20: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02235E2C: ; jump table + .short _02235F94 - _02235E2C - 2 ; case 0 + .short _02235F94 - _02235E2C - 2 ; case 1 + .short _02235F94 - _02235E2C - 2 ; case 2 + .short _02235F94 - _02235E2C - 2 ; case 3 + .short _02235F94 - _02235E2C - 2 ; case 4 + .short _02235F94 - _02235E2C - 2 ; case 5 + .short _02235F94 - _02235E2C - 2 ; case 6 + .short _02235E42 - _02235E2C - 2 ; case 7 + .short _02235E88 - _02235E2C - 2 ; case 8 + .short _02235F26 - _02235E2C - 2 ; case 9 + .short _02235ECE - _02235E2C - 2 ; case 10 +_02235E42: + add r0, r4, #0 + add r0, #0xd4 + bl FUN_020690E4 + add r1, r4, #0 + add r1, #0x90 + str r0, [r1] + add r0, r4, #0 + add r0, #0x90 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x94 + str r1, [r0] + add r0, r4, #0 + add r0, #0xd4 + bl MOD80_022361AC + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc8 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x98 + str r1, [r0] + add r0, r4, #0 + mov r1, #3 + add r0, #0x9c + str r1, [r0] + add r0, r4, #0 + mov r1, #2 + add r0, #0xa0 + str r1, [r0] + b _02235F94 +_02235E88: + add r0, r4, #0 + add r0, #0xd4 + bl FUN_020690E4 + add r1, r4, #0 + add r1, #0x94 + str r0, [r1] + add r0, r4, #0 + add r0, #0x94 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x90 + str r1, [r0] + add r0, r4, #0 + add r0, #0xd4 + bl MOD80_022361AC + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc8 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x98 + str r1, [r0] + add r0, r4, #0 + mov r1, #3 + add r0, #0x9c + str r1, [r0] + add r0, r4, #0 + mov r1, #4 + add r0, #0xa0 + str r1, [r0] + b _02235F94 +_02235ECE: + add r0, r4, #0 + add r0, #0xd4 + bl FUN_020690E4 + add r1, r4, #0 + add r1, #0x94 + str r0, [r1] + ldr r0, [r4] + mov r1, #1 + lsl r1, r1, #0xc + ldr r0, [r0] + ldr r1, [r4, r1] + bl FUN_0202ABEC + mov r0, #1 + lsl r0, r0, #0xc + ldr r0, [r4, r0] + bl FUN_020690E4 + add r1, r4, #0 + add r1, #0x90 + str r0, [r1] + add r0, r4, #0 + add r0, #0xd4 + bl MOD80_022361AC + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc8 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x98 + str r1, [r0] + add r0, r4, #0 + mov r1, #3 + add r0, #0x9c + str r1, [r0] + add r0, r4, #0 + mov r1, #1 + add r0, #0xa0 + str r1, [r0] + b _02235F94 +_02235F26: + ldr r0, [r4] + ldr r1, [r4, r1] + ldr r0, [r0] + bl FUN_0202ABEC + mov r0, #1 + lsl r0, r0, #0xc + ldr r0, [r4, r0] + bl FUN_020690E4 + add r1, r4, #0 + add r1, #0x90 + str r0, [r1] + add r0, r4, #0 + mov r1, #0x7e + add r0, #0xc4 + lsl r1, r1, #2 + add r2, r4, r1 + ldr r0, [r0] + sub r1, #0xd4 + mul r1, r0 + add r0, r2, r1 + bl FUN_020690E4 + add r1, r4, #0 + add r1, #0x94 + str r0, [r1] + add r0, r4, #0 + mov r1, #0x7e + add r0, #0xc4 + lsl r1, r1, #2 + add r2, r4, r1 + ldr r0, [r0] + sub r1, #0xd4 + mul r1, r0 + add r0, r2, r1 + bl MOD80_022361AC + add r1, r4, #0 + add r1, #0xc8 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc8 + ldr r1, [r0] + add r0, r4, #0 + add r0, #0x98 + str r1, [r0] + add r0, r4, #0 + mov r1, #3 + add r0, #0x9c + str r1, [r0] + add r0, r4, #0 + mov r1, #1 + add r0, #0xa0 + str r1, [r0] +_02235F94: + ldr r0, [r4] + mov r2, #0x3e + ldr r1, [r0, #0x24] + add r0, r4, #0 + add r0, #0xa4 + str r1, [r0] + add r1, r4, #0 + ldr r0, _02235FB8 ; =0x022375F0 + add r1, #0x90 + bl FUN_02006234 + str r0, [r4, #0x5c] + mov r0, #1 + add r4, #0xac + str r0, [r4] + mov r0, #2 + pop {r4, pc} + nop +_02235FB8: .word 0x022375F0 + thumb_func_end MOD80_02235E08 + + thumb_func_start MOD80_02235FBC +MOD80_02235FBC: ; 0x02235FBC + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r4, r0, #0 + ldr r0, [r4, #0x2c] + mov r6, #3 + cmp r0, #0 + beq _02235FD2 + cmp r0, #1 + bne _02235FD0 + b _02236148 +_02235FD0: + b _0223617E +_02235FD2: + ldr r0, [r4, #0x5c] + bl FUN_02006290 + cmp r0, #0 + bne _02235FDE + b _0223617E +_02235FDE: + ldr r0, [r4, #0x5c] + bl FUN_02006260 + ldr r1, [r4, #0x24] + cmp r1, #9 + bne _02236060 + add r0, r4, #0 + bl MOD80_022361E8 + mov r1, #6 + mov r2, #0 + add r7, r0, #0 + bl FUN_020671BC + add r3, r0, #0 + add r0, sp, #0x30 + lsl r3, r3, #0x10 + str r0, [sp] + mov r0, #0 + add r1, r7, #0 + mov r2, #1 + lsr r3, r3, #0x10 + bl FUN_02069168 + str r0, [sp, #0x24] + cmp r0, #0 + beq _02236052 + ldr r5, [r4] + ldr r0, [r5, #0x20] + bl FUN_0204C1A8 + ldr r1, [r5, #0x3c] + ldr r2, [sp, #0x24] + str r1, [sp] + ldr r1, [r5, #0x10] + str r1, [sp, #4] + ldr r1, [r5, #0x30] + str r1, [sp, #8] + ldr r1, [r5, #0x28] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [sp, #0x30] + add r1, r7, #0 + str r0, [sp, #0x14] + mov r0, #4 + str r0, [sp, #0x18] + mov r0, #0x3e + str r0, [sp, #0x1c] + ldr r3, [r5, #0x24] + mov r0, #0 + bl FUN_0206C700 + add r1, r4, #0 + add r1, #0xa8 + str r0, [r1] + mov r0, #1 + str r0, [r4, #0x2c] + b _0223617E +_02236052: + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r6, #4 + b _0223617E +_02236060: + cmp r1, #8 + beq _02236068 + cmp r1, #0xa + bne _0223613A +_02236068: + add r0, r4, #0 + bl MOD80_022361E8 + add r7, r0, #0 + mov r0, #0x3e + bl FUN_020669C0 + str r0, [sp, #0x20] + ldr r0, [r4] + ldr r1, [sp, #0x20] + ldr r0, [r0] + bl FUN_0202ABEC + add r0, r7, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + add r5, r0, #0 + ldr r0, [sp, #0x20] + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + cmp r5, r0 + bne _022360B6 + mov r1, #0 + add r0, r7, #0 + add r2, r1, #0 + bl FUN_020671BC + add r5, r0, #0 + mov r1, #0 + ldr r0, [sp, #0x20] + add r2, r1, #0 + bl FUN_020671BC + cmp r5, r0 + beq _02236126 +_022360B6: + add r0, r7, #0 + mov r1, #6 + mov r2, #0 + bl FUN_020671BC + add r3, r0, #0 + add r0, sp, #0x2c + lsl r3, r3, #0x10 + str r0, [sp] + mov r0, #0 + add r1, r7, #0 + mov r2, #1 + lsr r3, r3, #0x10 + bl FUN_02069168 + str r0, [sp, #0x28] + cmp r0, #0 + beq _02236118 + ldr r5, [r4] + ldr r0, [r5, #0x20] + bl FUN_0204C1A8 + ldr r1, [r5, #0x3c] + ldr r2, [sp, #0x28] + str r1, [sp] + ldr r1, [r5, #0x10] + str r1, [sp, #4] + ldr r1, [r5, #0x30] + str r1, [sp, #8] + ldr r1, [r5, #0x28] + str r1, [sp, #0xc] + str r0, [sp, #0x10] + ldr r0, [sp, #0x2c] + add r1, r7, #0 + str r0, [sp, #0x14] + mov r0, #4 + str r0, [sp, #0x18] + mov r0, #0x3e + str r0, [sp, #0x1c] + ldr r3, [r5, #0x24] + mov r0, #0 + bl FUN_0206C700 + add r1, r4, #0 + add r1, #0xa8 + str r0, [r1] + mov r0, #1 + str r0, [r4, #0x2c] + b _02236132 +_02236118: + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r6, #4 + b _02236132 +_02236126: + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r6, #4 +_02236132: + ldr r0, [sp, #0x20] + bl FUN_02016A18 + b _0223617E +_0223613A: + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r6, #4 + b _0223617E +_02236148: + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + bl FUN_0206C91C + cmp r0, #0 + beq _0223617E + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + bl FUN_0206C92C + add r0, r4, #0 + bl MOD80_02236218 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _02236184 ; =0xFFFF1FFF + and r0, r1 + str r0, [r2] + add r0, r4, #0 + mov r1, #7 + mov r2, #0xc + bl MOD80_0222E7A8 + mov r6, #4 +_0223617E: + add r0, r6, #0 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02236184: .word 0xFFFF1FFF + thumb_func_end MOD80_02235FBC + + thumb_func_start MOD80_02236188 +MOD80_02236188: ; 0x02236188 + push {r4, lr} + add r4, r0, #0 + mov r0, #1 + lsl r0, r0, #0xc + ldr r0, [r4, r0] + bl FUN_02016A18 + add r0, r4, #0 + add r0, #0xc8 + ldr r0, [r0] + bl FUN_02016A18 + add r0, r4, #0 + bl MOD80_0222E7B0 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02236188 + + thumb_func_start MOD80_022361AC +MOD80_022361AC: ; 0x022361AC + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x3e + bl FUN_02023928 + add r4, r0, #0 + bl FUN_02023948 + mov r1, #0x43 + lsl r1, r1, #2 + add r0, r4, #0 + add r1, r5, r1 + bl FUN_0202395C + ldr r1, _022361E0 ; =0x00000122 + add r0, r4, #0 + ldrb r1, [r5, r1] + bl FUN_02023A6C + ldr r1, _022361E4 ; =0x00000123 + add r0, r4, #0 + ldrb r1, [r5, r1] + bl FUN_02023A74 + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022361E0: .word 0x00000122 +_022361E4: .word 0x00000123 + thumb_func_end MOD80_022361AC + + thumb_func_start MOD80_022361E8 +MOD80_022361E8: ; 0x022361E8 + push {r3, lr} + cmp r1, #9 + bne _02236200 + mov r1, #0x7e + lsl r1, r1, #2 + add r2, r0, r1 + add r0, #0xc4 + ldr r0, [r0] + sub r1, #0xd4 + mul r1, r0 + add r0, r2, r1 + pop {r3, pc} +_02236200: + cmp r1, #0xa + bne _02236208 + add r0, #0xd4 + pop {r3, pc} +_02236208: + cmp r1, #8 + bne _02236210 + add r0, #0xd4 + pop {r3, pc} +_02236210: + bl ErrorHandling + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD80_022361E8 + + thumb_func_start MOD80_02236218 +MOD80_02236218: ; 0x02236218 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r1, [r5, #0x24] + bl MOD80_022361E8 + add r4, r0, #0 + add r0, r5, #0 + add r0, #0xcc + ldr r0, [r0] + cmp r0, #0x12 + bne _02236248 + ldr r0, [r5] + add r5, #0xd0 + ldr r0, [r0, #8] + ldr r1, [r5] + bl FUN_0206B9B0 + add r1, r0, #0 + add r0, r4, #0 + bl FUN_02069B88 + add sp, #8 + pop {r3, r4, r5, pc} +_02236248: + mov r0, #0 + add r1, r5, #0 + add r2, r5, #0 + str r0, [sp, #4] + str r0, [sp] + ldr r0, [r5] + add r1, #0xcc + add r2, #0xd0 + ldr r0, [r0, #0xc] + ldr r1, [r1] + ldr r2, [r2] + bl FUN_0206B2FC + ldr r0, [r5] + add r1, sp, #4 + ldr r0, [r0, #0xc] + add r2, sp, #0 + bl FUN_0206B384 + add r0, r4, #0 + bl FUN_020690E4 + add r2, r0, #0 + ldr r0, [r5] + ldr r1, [sp, #4] + ldr r0, [r0, #0xc] + bl FUN_0206B244 + add sp, #8 + pop {r3, r4, r5, pc} + thumb_func_end MOD80_02236218 + + thumb_func_start MOD80_02236284 +MOD80_02236284: ; 0x02236284 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD80_02236664 + mov r0, #6 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, [r4, #4] + bl MOD80_02236378 + add r0, r4, #0 + bl MOD80_02236488 + add r0, r4, #0 + bl MOD80_02236580 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E74C + mov r0, #2 + mov r1, #1 + bl FUN_0201E74C + ldr r0, [r4] + ldr r0, [r0, #0x20] + bl FUN_02033288 + add r0, r4, #0 + bl MOD80_02236D84 + bl MOD04_021DDD7C + cmp r0, #0 + bne _0223631E + ldr r0, [r4] + ldr r0, [r0, #0x40] + cmp r0, #0 + beq _02236318 + ldr r0, _02236328 ; =0x00000F0F + ldr r1, _0223632C ; =0x00000B3C + str r0, [sp] + mov r2, #1 + ldr r1, [r4, r1] + add r0, r4, #0 + add r3, r2, #0 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0xa + mov r2, #2 + bl MOD80_0222E6DC + add r0, r4, #0 + bl MOD80_0222E8BC + b _02236322 +_02236318: + mov r0, #0 + str r0, [r4, #0x2c] + b _02236322 +_0223631E: + mov r0, #0xf + str r0, [r4, #0x2c] +_02236322: + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_02236328: .word 0x00000F0F +_0223632C: .word 0x00000B3C + thumb_func_end MOD80_02236284 + + thumb_func_start MOD80_02236330 +MOD80_02236330: ; 0x02236330 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222E79C + bl FUN_02033EEC + ldr r1, [r4, #0x2c] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _0223634C ; =0x02237C68 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0223634C: .word 0x02237C68 + thumb_func_end MOD80_02236330 + + thumb_func_start MOD80_02236350 +MOD80_02236350: ; 0x02236350 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0223669C + add r0, r4, #0 + bl MOD80_02236638 + ldr r0, [r4, #4] + bl MOD80_02236464 + add r0, r4, #0 + bl MOD80_0222E7B0 + ldr r0, [r4, #0x14] + cmp r0, #0 + bne _02236374 + mov r0, #5 + pop {r4, pc} +_02236374: + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD80_02236350 + + thumb_func_start MOD80_02236378 +MOD80_02236378: ; 0x02236378 + push {r3, r4, r5, lr} + sub sp, #0x70 + ldr r5, _02236454 ; =0x02237638 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x54 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _02236458 ; =0x0223761C + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + ldr r5, _0223645C ; =0x02237654 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #1 + mov r1, #0 + bl FUN_0201E74C + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _02236460 ; =0x02237600 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #2 + mov r1, #0 + bl FUN_0201E74C + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x3e + bl FUN_02017F18 + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E74C + add sp, #0x70 + pop {r3, r4, r5, pc} + nop +_02236454: .word 0x02237638 +_02236458: .word 0x0223761C +_0223645C: .word 0x02237654 +_02236460: .word 0x02237600 + thumb_func_end MOD80_02236378 + + thumb_func_start MOD80_02236464 +MOD80_02236464: ; 0x02236464 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD80_02236464 + + thumb_func_start MOD80_02236488 +MOD80_02236488: ; 0x02236488 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r2, #0 + str r2, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x5c + mov r1, #3 + add r3, r2, #0 + bl FUN_02006930 + mov r3, #0 + str r3, [sp] + mov r0, #0x3e + str r0, [sp, #4] + mov r0, #0x5c + mov r1, #3 + mov r2, #4 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + mov r1, #0x1a + mov r0, #4 + lsl r1, r1, #4 + mov r2, #0x3e + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x24] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x3e + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r1, #0 + mov r0, #0x36 + str r1, [sp] + lsl r0, r0, #6 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #2 + add r2, r4, #0 + mov r3, #1 + bl FUN_0200687C + mov r1, #0 + mov r0, #6 + str r1, [sp] + lsl r0, r0, #8 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #4 + add r2, r4, #0 + mov r3, #1 + bl FUN_020068C8 + mov r1, #0 + mov r0, #0x36 + str r1, [sp] + lsl r0, r0, #6 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #9 + add r2, r4, #0 + mov r3, #5 + bl FUN_0200687C + mov r1, #0 + mov r0, #6 + str r1, [sp] + lsl r0, r0, #8 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x3e + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #0xa + add r2, r4, #0 + mov r3, #5 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl FUN_02017FE4 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD80_02236488 + + thumb_func_start MOD80_02236580 +MOD80_02236580: ; 0x02236580 + push {r3, r4, lr} + sub sp, #0x14 + mov r3, #4 + add r4, r0, #0 + str r3, [sp] + mov r0, #0x17 + str r0, [sp, #4] + mov r0, #0x10 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x94 + ldr r1, _02236628 ; =0x00000EC8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + bl FUN_02019064 + ldr r0, _02236628 ; =0x00000EC8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r0, #1 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x81 + lsl r0, r0, #2 + ldr r1, _0223662C ; =0x00000EB8 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #4 + bl FUN_02019064 + ldr r0, _0223662C ; =0x00000EB8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + mov r3, #1 + mov r1, #0xb5 + ldr r0, _02236630 ; =0x000F0E00 + str r3, [sp] + str r0, [sp, #4] + ldr r0, _0223662C ; =0x00000EB8 + lsl r1, r1, #4 + ldr r1, [r4, r1] + add r0, r4, r0 + mov r2, #0 + bl MOD80_02236D1C + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + ldr r1, _02236634 ; =0x00000E98 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + ldr r0, _02236634 ; =0x00000E98 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + add sp, #0x14 + pop {r3, r4, pc} + nop +_02236628: .word 0x00000EC8 +_0223662C: .word 0x00000EB8 +_02236630: .word 0x000F0E00 +_02236634: .word 0x00000E98 + thumb_func_end MOD80_02236580 + + thumb_func_start MOD80_02236638 +MOD80_02236638: ; 0x02236638 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02236658 ; =0x00000E98 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _0223665C ; =0x00000EB8 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, _02236660 ; =0x00000EC8 + add r0, r4, r0 + bl FUN_02019178 + pop {r4, pc} + nop +_02236658: .word 0x00000E98 +_0223665C: .word 0x00000EB8 +_02236660: .word 0x00000EC8 + thumb_func_end MOD80_02236638 + + thumb_func_start MOD80_02236664 +MOD80_02236664: ; 0x02236664 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb4 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _02236694 ; =0x00000B4C + str r0, [r4, r1] + mov r0, #1 + lsl r0, r0, #8 + mov r1, #0x3e + bl FUN_020219F4 + ldr r1, _02236698 ; =0x00000B7C + str r0, [r4, r1] + sub r1, #0x48 + ldr r0, [r4, r1] + mov r1, #0x1f + bl FUN_0200A914 + mov r1, #0xb5 + lsl r1, r1, #4 + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 +_02236694: .word 0x00000B4C +_02236698: .word 0x00000B7C + thumb_func_end MOD80_02236664 + + thumb_func_start MOD80_0223669C +MOD80_0223669C: ; 0x0223669C + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb5 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _022366BC ; =0x00000B7C + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _022366C0 ; =0x00000B4C + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + .align 2, 0 +_022366BC: .word 0x00000B7C +_022366C0: .word 0x00000B4C + thumb_func_end MOD80_0223669C + + thumb_func_start MOD80_022366C4 +MOD80_022366C4: ; 0x022366C4 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _022366F4 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x2d + lsl r1, r1, #6 + ldr r1, [r4, r1] + mov r2, #0x10 + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0xb + mov r2, #1 + bl MOD80_0222E6DC + ldr r0, _022366F8 ; =0x0000100A + mov r1, #1 + strh r1, [r4, r0] + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_022366F4: .word 0x00000F0F +_022366F8: .word 0x0000100A + thumb_func_end MOD80_022366C4 + + thumb_func_start MOD80_022366FC +MOD80_022366FC: ; 0x022366FC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, _02236758 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02236750 + sub r1, r1, #1 + cmp r0, r1 + bne _0223672E + bl FUN_020332DC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] + b _02236750 +_0223672E: + ldr r0, _0223675C ; =0x00000F0F + ldr r1, _02236760 ; =0x00000B3C + str r0, [sp] + mov r2, #1 + ldr r1, [r4, r1] + add r0, r4, #0 + add r3, r2, #0 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0xa + mov r2, #2 + bl MOD80_0222E6DC + add r0, r4, #0 + bl MOD80_0222E8BC +_02236750: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_02236758: .word 0x00000FCC +_0223675C: .word 0x00000F0F +_02236760: .word 0x00000B3C + thumb_func_end MOD80_022366FC + + thumb_func_start MOD80_02236764 +MOD80_02236764: ; 0x02236764 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0223678C ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _02236790 ; =0x00000B34 + mov r2, #7 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0xb + mov r2, #0xe + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0223678C: .word 0x00000F0F +_02236790: .word 0x00000B34 + thumb_func_end MOD80_02236764 + + thumb_func_start MOD80_02236794 +MOD80_02236794: ; 0x02236794 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022367F4 ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _022367F0 + sub r1, r1, #1 + cmp r0, r1 + bne _022367D2 + bl MOD04_021DDD7C + cmp r0, #0 + bne _022367BE + mov r0, #0 + str r0, [r4, #0x2c] + b _022367F0 +_022367BE: + add r0, r4, #0 + mov r1, #7 + mov r2, #0xb + bl MOD80_0222E7A8 + mov r0, #1 + str r0, [r4, #0x1c] + mov r0, #9 + str r0, [r4, #0x2c] + b _022367F0 +_022367D2: + bl MOD04_021DDD7C + cmp r0, #0 + beq _022367DE + bl MOD04_021DDBBC +_022367DE: + bl FUN_020332DC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] +_022367F0: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_022367F4: .word 0x00000FCC + thumb_func_end MOD80_02236794 + + thumb_func_start MOD80_022367F8 +MOD80_022367F8: ; 0x022367F8 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _02236820 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x2d + lsl r1, r1, #6 + ldr r1, [r4, r1] + mov r2, #0x19 + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0xa + mov r2, #0x10 + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_02236820: .word 0x00000F0F + thumb_func_end MOD80_022367F8 + + thumb_func_start MOD80_02236824 +MOD80_02236824: ; 0x02236824 + push {r4, lr} + add r4, r0, #0 + bl FUN_020332DC + bl MOD04_021DDBBC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #0x11 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02236824 + + thumb_func_start MOD80_02236844 +MOD80_02236844: ; 0x02236844 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0223686C ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x2d + lsl r1, r1, #6 + ldr r1, [r4, r1] + mov r2, #0x1a + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0x12 + mov r2, #9 + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0223686C: .word 0x00000F0F + thumb_func_end MOD80_02236844 + + thumb_func_start MOD80_02236870 +MOD80_02236870: ; 0x02236870 + push {r4, lr} + add r4, r0, #0 + add r0, #0x50 + mov r1, #2 + mov r2, #1 + mov r3, #0x14 + bl MOD04_021DDEE0 + mov r0, #2 + bl MOD04_021DDE7C + bl MOD04_021DDDCC + mov r0, #3 + str r0, [r4, #0x2c] + pop {r4, pc} + thumb_func_end MOD80_02236870 + + thumb_func_start MOD80_02236890 +MOD80_02236890: ; 0x02236890 + push {r3, r4, lr} + sub sp, #0x44 + add r4, r0, #0 + bl MOD04_021DDCE8 + bl MOD04_021DDD7C + cmp r0, #0 + beq _022368F4 + bl MOD04_021DDC1C + cmp r0, #4 + beq _022368EA + cmp r0, #7 + beq _022368B4 + cmp r0, #8 + beq _022368D4 + b _022368F4 +_022368B4: + add r0, sp, #4 + bl MOD04_021DD808 + str r0, [r4, #0x40] + ldr r0, [sp, #4] + str r0, [r4, #0x44] + bl MOD04_021DD6F0 + bl MOD04_021DDBBC + add r0, r4, #0 + bl MOD80_0222E8D8 + mov r0, #0x15 + str r0, [r4, #0x2c] + b _022368F4 +_022368D4: + add r0, sp, #0 + bl MOD04_021DD808 + add r0, r4, #0 + bl MOD80_0222E8D8 + mov r0, #0x13 + str r0, [r4, #0x2c] + sub r0, #0x15 + str r0, [r4, #0x3c] + b _022368F4 +_022368EA: + add r0, sp, #8 + bl MOD04_021DD9DC + mov r0, #4 + str r0, [r4, #0x2c] +_022368F4: + mov r0, #3 + add sp, #0x44 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD80_02236890 + + thumb_func_start MOD80_022368FC +MOD80_022368FC: ; 0x022368FC + push {r4, lr} + add r4, r0, #0 + bl MOD04_021DE05C + cmp r0, #0 + beq _0223690C + mov r0, #5 + str r0, [r4, #0x2c] +_0223690C: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_022368FC + + thumb_func_start MOD80_02236910 +MOD80_02236910: ; 0x02236910 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + bl MOD04_021DDF4C + cmp r0, #3 + beq _02236928 + cmp r0, #4 + beq _0223692E + cmp r0, #5 + beq _0223692E + b _02236998 +_02236928: + mov r0, #6 + str r0, [r4, #0x2c] + b _02236998 +_0223692E: + add r0, r4, #0 + bl MOD80_0222E8D8 + add r0, sp, #4 + add r1, sp, #0 + bl MOD04_021DD718 + str r0, [r4, #0x40] + ldr r0, [sp, #4] + str r0, [r4, #0x44] + bl MOD04_021DD6F0 + bl MOD04_021DDBBC + ldr r0, [sp] + cmp r0, #7 + bhi _02236986 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223695C: ; jump table + .short _02236986 - _0223695C - 2 ; case 0 + .short _0223696C - _0223695C - 2 ; case 1 + .short _0223696C - _0223695C - 2 ; case 2 + .short _02236986 - _0223695C - 2 ; case 3 + .short _02236972 - _0223695C - 2 ; case 4 + .short _02236986 - _0223695C - 2 ; case 5 + .short _0223697C - _0223695C - 2 ; case 6 + .short _02236982 - _0223695C - 2 ; case 7 +_0223696C: + mov r0, #0x15 + str r0, [r4, #0x2c] + b _02236986 +_02236972: + bl MOD04_021EB550 + mov r0, #0x15 + str r0, [r4, #0x2c] + b _02236986 +_0223697C: + mov r0, #0x15 + str r0, [r4, #0x2c] + b _02236986 +_02236982: + bl FUN_020335E0 +_02236986: + ldr r1, [sp, #4] + ldr r0, _022369A0 ; =0xFFFFB1E0 + cmp r1, r0 + bge _02236998 + ldr r0, _022369A4 ; =0xFFFF8AD1 + cmp r1, r0 + blt _02236998 + mov r0, #0x15 + str r0, [r4, #0x2c] +_02236998: + mov r0, #3 + add sp, #8 + pop {r4, pc} + nop +_022369A0: .word 0xFFFFB1E0 +_022369A4: .word 0xFFFF8AD1 + thumb_func_end MOD80_02236910 + + thumb_func_start MOD80_022369A8 +MOD80_022369A8: ; 0x022369A8 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5] + ldr r0, [r0, #0x14] + bl FUN_02028228 + add r4, r0, #0 + ldr r0, [r5] + ldr r0, [r0, #4] + bl FUN_02023830 + cmp r0, #0 + bne _022369CC + ldr r1, [r5] + ldr r0, [r1, #4] + ldr r1, [r1, #0x38] + bl FUN_02023834 +_022369CC: + ldr r0, [r5] + ldr r0, [r0, #4] + bl FUN_02023830 + add r6, r0, #0 + add r0, r4, #0 + bl FUN_02096D68 + add r3, r0, #0 + add r2, r1, #0 + add r0, r6, #0 + add r1, r3, #0 + bl MOD80_0222D5C0 + mov r0, #7 + str r0, [r5, #0x2c] + mov r0, #3 + pop {r4, r5, r6, pc} + thumb_func_end MOD80_022369A8 + + thumb_func_start MOD80_022369F0 +MOD80_022369F0: ; 0x022369F0 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DEBC + mov r0, #8 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_022369F0 + + thumb_func_start MOD80_02236A00 +MOD80_02236A00: ; 0x02236A00 + push {r4, lr} + add r4, r0, #0 + bl MOD80_0222DB98 + cmp r0, #0 + beq _02236A82 + bl MOD80_0222DBB8 + add r1, r0, #0 + add r1, #0xf + cmp r1, #0x11 + bhi _02236A82 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02236A24: ; jump table + .short _02236A68 - _02236A24 - 2 ; case 0 + .short _02236A70 - _02236A24 - 2 ; case 1 + .short _02236A78 - _02236A24 - 2 ; case 2 + .short _02236A68 - _02236A24 - 2 ; case 3 + .short _02236A82 - _02236A24 - 2 ; case 4 + .short _02236A82 - _02236A24 - 2 ; case 5 + .short _02236A82 - _02236A24 - 2 ; case 6 + .short _02236A82 - _02236A24 - 2 ; case 7 + .short _02236A82 - _02236A24 - 2 ; case 8 + .short _02236A82 - _02236A24 - 2 ; case 9 + .short _02236A82 - _02236A24 - 2 ; case 10 + .short _02236A82 - _02236A24 - 2 ; case 11 + .short _02236A82 - _02236A24 - 2 ; case 12 + .short _02236A70 - _02236A24 - 2 ; case 13 + .short _02236A60 - _02236A24 - 2 ; case 14 + .short _02236A48 - _02236A24 - 2 ; case 15 + .short _02236A58 - _02236A24 - 2 ; case 16 + .short _02236A60 - _02236A24 - 2 ; case 17 +_02236A48: + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] + b _02236A82 +_02236A58: + str r0, [r4, #0x3c] + mov r0, #0x13 + str r0, [r4, #0x2c] + b _02236A82 +_02236A60: + str r0, [r4, #0x3c] + mov r0, #0x13 + str r0, [r4, #0x2c] + b _02236A82 +_02236A68: + str r0, [r4, #0x3c] + mov r0, #0x13 + str r0, [r4, #0x2c] + b _02236A82 +_02236A70: + str r0, [r4, #0x3c] + mov r0, #0x13 + str r0, [r4, #0x2c] + b _02236A82 +_02236A78: + add r0, r4, #0 + bl MOD80_0222E8D8 + bl FUN_020335E0 +_02236A82: + add r0, r4, #0 + bl MOD80_0222E8D8 + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02236A00 + + thumb_func_start MOD80_02236A8C +MOD80_02236A8C: ; 0x02236A8C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x44] + neg r0, r0 + bl MOD04_021D80E0 + ldr r2, [r4, #0x44] + add r1, r0, #0 + add r0, r4, #0 + neg r2, r2 + bl MOD80_02236E04 + mov r0, #0x16 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD80_02236A8C + + thumb_func_start MOD80_02236AAC +MOD80_02236AAC: ; 0x02236AAC + push {r4, lr} + add r4, r0, #0 + ldr r0, _02236AD4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + bne _02236AC0 + mov r0, #2 + tst r0, r1 + beq _02236ACE +_02236AC0: + ldr r0, _02236AD8 ; =0x00000EC8 + mov r1, #0 + add r0, r4, r0 + bl FUN_0200CCF8 + mov r0, #0 + str r0, [r4, #0x2c] +_02236ACE: + mov r0, #3 + pop {r4, pc} + nop +_02236AD4: .word 0x021C48B8 +_02236AD8: .word 0x00000EC8 + thumb_func_end MOD80_02236AAC + + thumb_func_start MOD80_02236ADC +MOD80_02236ADC: ; 0x02236ADC + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl FUN_02033ED0 + add r0, r4, #0 + bl MOD80_0222E8D8 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3e + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x2c] + ldr r0, _02236B14 ; =0x0000100C + mov r1, #1 + str r1, [r4, r0] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_02236B14: .word 0x0000100C + thumb_func_end MOD80_02236ADC + + thumb_func_start MOD80_02236B18 +MOD80_02236B18: ; 0x02236B18 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02236B4C ; =0x00000FCC + mov r1, #0x3e + ldr r0, [r4, r0] + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _02236B48 + sub r1, r1, #1 + cmp r0, r1 + bne _02236B3A + mov r0, #0 + str r0, [r4, #0x2c] + b _02236B48 +_02236B3A: + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] +_02236B48: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_02236B4C: .word 0x00000FCC + thumb_func_end MOD80_02236B18 + + thumb_func_start MOD80_02236B50 +MOD80_02236B50: ; 0x02236B50 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + ldr r0, [r4, #0x3c] + mov r2, #0 + add r0, #0xf + cmp r0, #0x11 + bhi _02236B9E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02236B6C: ; jump table + .short _02236B9C - _02236B6C - 2 ; case 0 + .short _02236B98 - _02236B6C - 2 ; case 1 + .short _02236B9E - _02236B6C - 2 ; case 2 + .short _02236B9C - _02236B6C - 2 ; case 3 + .short _02236B9E - _02236B6C - 2 ; case 4 + .short _02236B9E - _02236B6C - 2 ; case 5 + .short _02236B9E - _02236B6C - 2 ; case 6 + .short _02236B9E - _02236B6C - 2 ; case 7 + .short _02236B9E - _02236B6C - 2 ; case 8 + .short _02236B9E - _02236B6C - 2 ; case 9 + .short _02236B9C - _02236B6C - 2 ; case 10 + .short _02236B9E - _02236B6C - 2 ; case 11 + .short _02236B9C - _02236B6C - 2 ; case 12 + .short _02236B98 - _02236B6C - 2 ; case 13 + .short _02236B94 - _02236B6C - 2 ; case 14 + .short _02236B9E - _02236B6C - 2 ; case 15 + .short _02236B90 - _02236B6C - 2 ; case 16 + .short _02236B94 - _02236B6C - 2 ; case 17 +_02236B90: + mov r2, #0x8c + b _02236B9E +_02236B94: + mov r2, #0x8d + b _02236B9E +_02236B98: + mov r2, #0x92 + b _02236B9E +_02236B9C: + mov r2, #0x91 +_02236B9E: + ldr r0, _02236BC0 ; =0x00000F0F + ldr r1, _02236BC4 ; =0x00000B34 + str r0, [sp] + ldr r1, [r4, r1] + add r0, r4, #0 + mov r3, #1 + bl MOD80_02236C70 + add r0, r4, #0 + mov r1, #0xa + mov r2, #0x14 + bl MOD80_0222E6DC + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_02236BC0: .word 0x00000F0F +_02236BC4: .word 0x00000B34 + thumb_func_end MOD80_02236B50 + + thumb_func_start MOD80_02236BC8 +MOD80_02236BC8: ; 0x02236BC8 + push {r4, lr} + add r4, r0, #0 + bl FUN_020332DC + bl MOD04_021DDBBC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD80_0222E7A8 + mov r0, #9 + str r0, [r4, #0x2c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02236BC8 + + thumb_func_start MOD80_02236BE8 +MOD80_02236BE8: ; 0x02236BE8 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02236C02 + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02236C02: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02236BE8 + + thumb_func_start MOD80_02236C08 +MOD80_02236C08: ; 0x02236C08 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02236C32 + ldr r0, _02236C38 ; =0x00000FDC + ldr r0, [r4, r0] + cmp r0, #0x1e + ble _02236C2A + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02236C2A: + ldr r0, _02236C38 ; =0x00000FDC + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] +_02236C32: + mov r0, #3 + pop {r4, pc} + nop +_02236C38: .word 0x00000FDC + thumb_func_end MOD80_02236C08 + + thumb_func_start MOD80_02236C3C +MOD80_02236C3C: ; 0x02236C3C + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02236C66 + mov r2, #0x8d + ldr r0, [r4, #4] + mov r1, #0xd + lsl r2, r2, #2 + bl MOD80_0222E6A8 + ldr r1, _02236C6C ; =0x00000FCC + str r0, [r4, r1] + ldr r0, [r4, #0x30] + str r0, [r4, #0x2c] +_02236C66: + mov r0, #3 + pop {r4, pc} + nop +_02236C6C: .word 0x00000FCC + thumb_func_end MOD80_02236C3C + + thumb_func_start MOD80_02236C70 +MOD80_02236C70: ; 0x02236C70 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r0, r1, #0 + add r1, r2, #0 + add r4, r3, #0 + bl FUN_0200A914 + mov r1, #0xb3 + add r6, r0, #0 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, #0x1c + ldr r1, [r5, r1] + add r2, r6, #0 + bl FUN_0200B7B8 + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, _02236CD8 ; =0x00000E98 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _02236CD8 ; =0x00000E98 + mov r1, #0 + add r0, r5, r0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + ldr r0, _02236CD8 ; =0x00000E98 + ldr r2, _02236CDC ; =0x00000B4C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + ldr r0, _02236CE0 ; =0x00000FDC + mov r1, #0 + str r1, [r5, r0] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_02236CD8: .word 0x00000E98 +_02236CDC: .word 0x00000B4C +_02236CE0: .word 0x00000FDC + thumb_func_end MOD80_02236C70 + + thumb_func_start MOD80_02236CE4 +MOD80_02236CE4: ; 0x02236CE4 + push {r4, lr} + add r4, r0, #0 + cmp r3, #1 + beq _02236CF2 + cmp r3, #2 + beq _02236D08 + b _02236D16 +_02236CF2: + ldr r0, [sp, #0xc] + mov r2, #0 + bl FUN_02002E14 + ldrb r1, [r4, #7] + lsl r1, r1, #3 + sub r1, r1, r0 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r2, r0, #1 + b _02236D16 +_02236D08: + ldr r0, [sp, #0xc] + mov r2, #0 + bl FUN_02002E14 + ldrb r1, [r4, #7] + lsl r1, r1, #3 + sub r2, r1, r0 +_02236D16: + add r0, r2, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD80_02236CE4 + + thumb_func_start MOD80_02236D1C +MOD80_02236D1C: ; 0x02236D1C + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r3, #0 + ldr r3, [sp, #0x24] + add r5, r0, #0 + str r3, [sp] + mov r3, #1 + str r3, [sp, #4] + ldr r3, [sp, #0x20] + add r6, r1, #0 + bl MOD80_02236CE4 + add r3, r0, #0 + str r4, [sp] + mov r1, #0 + ldr r0, [sp, #0x24] + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r5, #0 + mov r1, #1 + add r2, r6, #0 + bl FUN_0201BDE0 + add sp, #0x10 + pop {r4, r5, r6, pc} + thumb_func_end MOD80_02236D1C + + thumb_func_start MOD80_02236D50 +MOD80_02236D50: ; 0x02236D50 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r3, #0 + ldr r3, [sp, #0x24] + add r5, r0, #0 + str r3, [sp] + mov r3, #0 + str r3, [sp, #4] + ldr r3, [sp, #0x20] + add r6, r1, #0 + bl MOD80_02236CE4 + add r3, r0, #0 + str r4, [sp] + mov r1, #0 + ldr r0, [sp, #0x24] + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r2, r6, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD80_02236D50 + + thumb_func_start MOD80_02236D84 +MOD80_02236D84: ; 0x02236D84 + ldr r3, _02236D88 ; =FUN_02033E74 + bx r3 + .align 2, 0 +_02236D88: .word FUN_02033E74 + thumb_func_end MOD80_02236D84 + + thumb_func_start MOD80_02236D8C +MOD80_02236D8C: ; 0x02236D8C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #1 + add r6, r1, #0 + lsl r0, r0, #8 + mov r1, #0x3e + bl FUN_020219F4 + add r4, r0, #0 + mov r0, #0x2d + lsl r0, r0, #6 + ldr r0, [r5, r0] + add r1, r6, #0 + add r2, r4, #0 + bl FUN_0200A8E0 + mov r1, #0xb3 + lsl r1, r1, #4 + ldr r0, [r5, r1] + add r1, #0x4c + ldr r1, [r5, r1] + add r2, r4, #0 + bl FUN_0200B7B8 + ldr r0, _02236DFC ; =0x00000EC8 + mov r1, #0xf + add r0, r5, r0 + bl FUN_02019620 + ldr r0, _02236DFC ; =0x00000EC8 + mov r1, #1 + add r0, r5, r0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CCA4 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + ldr r0, _02236DFC ; =0x00000EC8 + ldr r2, _02236E00 ; =0x00000B7C + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r5, r1] + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02236DFC: .word 0x00000EC8 +_02236E00: .word 0x00000B7C + thumb_func_end MOD80_02236D8C + + thumb_func_start MOD80_02236E04 +MOD80_02236E04: ; 0x02236E04 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0 + add r4, r1, #0 + mvn r0, r0 + cmp r4, r0 + bne _02236E16 + mov r4, #0xb +_02236E16: + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0xb3 + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #0 + mov r3, #5 + bl FUN_0200AD38 + ldr r0, _02236E44 ; =0x00000E98 + mov r1, #1 + add r0, r5, r0 + bl FUN_0200D0E0 + add r0, r5, #0 + add r1, r4, #0 + bl MOD80_02236D8C + add sp, #8 + pop {r3, r4, r5, pc} + nop +_02236E44: .word 0x00000E98 + thumb_func_end MOD80_02236E04 + + .section .rodata + ; 0x02236E48 + .incbin "baserom.nds", 0x2E8A88, 0x828 + + .section .data + ; 0x02237680 + .incbin "baserom.nds", 0x2E92C0, 0x660 + + .section .bss + ; 0x02237CE0 + .space 0x160 diff --git a/arm9/modules/81/asm/module_81.s b/arm9/modules/81/asm/module_81.s new file mode 100644 index 00000000..c0b33a96 --- /dev/null +++ b/arm9/modules/81/asm/module_81.s @@ -0,0 +1,10353 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD81_02237E40 +MOD81_02237E40: ; 0x02237E40 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + bl FUN_0200E308 + cmp r0, #0 + bne _02237E50 + b _02237FC8 +_02237E50: + mov r0, #3 + mov r1, #0x39 + lsl r2, r0, #0xf + bl FUN_0201681C + mov r0, #3 + mov r1, #0x3a + lsl r2, r0, #0xf + bl FUN_0201681C + bl MOD81_02238858 + ldr r1, _02237FD0 ; =0x00000492 + mov r0, #3 + mov r2, #1 + bl FUN_0200433C + mov r1, #0x55 + add r0, r5, #0 + lsl r1, r1, #2 + mov r2, #0x39 + bl FUN_02006268 + add r4, r0, #0 + bne _02237E84 + b _02237FC2 +_02237E84: + add r0, r5, #0 + bl FUN_0200628C + str r0, [r4] + mov r0, #0 + str r0, [r4, #4] + mov r0, #0x39 + bl FUN_02016B94 + str r0, [r4, #8] + mov r0, #0x19 + lsl r0, r0, #4 + mov r1, #0x39 + bl FUN_020219F4 + str r0, [r4, #0x14] + ldr r2, _02237FD4 ; =0x00000137 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x39 + bl FUN_0200A86C + str r0, [r4, #0x10] + mov r0, #0x39 + bl FUN_0200AA80 + str r0, [r4, #0xc] + ldr r2, [r4] + ldr r0, [r2, #0x10] + cmp r0, #1 + beq _02237ECC + cmp r0, #2 + beq _02237EFE + cmp r0, #4 + beq _02237F0A + b _02237F22 +_02237ECC: + ldr r0, [r4, #0xc] + ldr r2, [r2] + mov r1, #0 + bl FUN_0200ACF8 + ldr r2, [r4] + ldr r0, [r4, #0xc] + ldr r2, [r2, #4] + mov r1, #1 + bl FUN_0200ACF8 + ldr r2, [r4] + ldr r0, [r4, #0xc] + ldr r2, [r2, #8] + mov r1, #2 + bl FUN_0200ABC0 + ldr r0, [r4] + ldr r0, [r0, #4] + bl MOD81_02237FE8 + mov r1, #0x52 + lsl r1, r1, #2 + str r0, [r4, r1] + b _02237F22 +_02237EFE: + ldr r0, [r4, #0xc] + ldr r2, [r2] + mov r1, #0 + bl FUN_0200ACF8 + b _02237F22 +_02237F0A: + ldr r0, [r4, #0xc] + ldr r2, [r2, #4] + mov r1, #1 + bl FUN_0200ACF8 + ldr r0, [r4] + ldr r0, [r0, #4] + bl MOD81_02237FE8 + mov r1, #0x52 + lsl r1, r1, #2 + str r0, [r4, r1] +_02237F22: + bl FUN_020B0FC0 + mov r0, #1 + str r0, [sp] + mov r0, #0x7f + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r1, #0x39 + str r1, [sp, #0x10] + mov r1, #0x80 + add r2, r0, #0 + bl FUN_02009EAC + add r1, r4, #0 + mov r0, #0x40 + add r1, #0x1c + mov r2, #0x39 + bl FUN_02008C9C + str r0, [r4, #0x18] + add r0, r4, #0 + mov r2, #0x3a + add r0, #0x1c + mov r1, #0 + lsl r2, r2, #0xe + bl FUN_02008D24 + ldr r0, [r4] + mov r1, #5 + ldr r0, [r0] + mov r2, #0 + bl FUN_020672BC + mov r1, #0x53 + lsl r1, r1, #2 + strh r0, [r4, r1] + ldr r0, [r4] + mov r1, #5 + ldr r0, [r0, #4] + mov r2, #0 + bl FUN_020672BC + ldr r1, _02237FD8 ; =0x0000014E + strh r0, [r4, r1] + mov r0, #0 + add r1, r1, #2 + str r0, [r4, r1] + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _02237FDC ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _02237FE0 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + ldr r0, _02237FE4 ; =MOD81_022380F4 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA7C + mov r1, #0x51 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0 + add r1, #0xc + str r0, [r4, r1] +_02237FC2: + add sp, #0x14 + mov r0, #1 + pop {r4, r5, pc} +_02237FC8: + mov r0, #0 + add sp, #0x14 + pop {r4, r5, pc} + nop +_02237FD0: .word 0x00000492 +_02237FD4: .word 0x00000137 +_02237FD8: .word 0x0000014E +_02237FDC: .word 0xFFFFE0FF +_02237FE0: .word 0x04001000 +_02237FE4: .word MOD81_022380F4 + thumb_func_end MOD81_02237E40 + + thumb_func_start MOD81_02237FE8 +MOD81_02237FE8: ; 0x02237FE8 + push {r3, lr} + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + mov r1, #0x1c + bl FUN_02068678 + cmp r0, #0 + bne _02238000 + mov r0, #1 + pop {r3, pc} +_02238000: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD81_02237FE8 + + thumb_func_start MOD81_02238004 +MOD81_02238004: ; 0x02238004 + push {r4, r5, r6, lr} + add r5, r0, #0 + bl OS_DisableInterrupts + add r6, r0, #0 + add r0, r5, #0 + bl FUN_02006278 + add r4, r0, #0 + mov r0, #0x51 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0200CAB4 + bl FUN_02033ED0 + ldr r0, [r4, #0xc] + bl FUN_0200AB18 + ldr r0, [r4, #0x10] + bl FUN_0200A8B8 + ldr r0, [r4, #0x14] + bl FUN_02021A20 + ldr r0, [r4, #8] + bl FUN_02016A18 + ldr r0, [r4, #0x18] + bl FUN_0201FD58 + bl FUN_02009FA0 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0x39 + bl FUN_020168D0 + mov r0, #0x3a + bl FUN_020168D0 + add r0, r6, #0 + bl OS_RestoreInterrupts + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD81_02238004 + + thumb_func_start MOD81_02238064 +MOD81_02238064: ; 0x02238064 + push {r4, r5, r6, lr} + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r3, [r4, #4] + cmp r3, #7 + bhs _022380E0 + ldr r1, [r4] + ldr r6, _022380E4 ; =0x0223CF90 + lsl r2, r3, #4 + ldr r1, [r1, #0x10] + ldr r6, [r6, r2] + tst r1, r6 + beq _022380D0 + mov r1, #0x15 + lsl r1, r1, #4 + ldr r1, [r4, r1] + cmp r1, #0 + bne _02238098 + ldr r1, _022380E8 ; =0x0223CF84 + ldr r1, [r1, r2] + blx r1 + mov r1, #0x15 + lsl r1, r1, #4 + str r0, [r4, r1] +_02238098: + ldr r2, [r4, #4] + mov r0, #0x15 + lsl r3, r2, #4 + ldr r2, _022380EC ; =0x0223CF88 + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r2, [r2, r3] + add r1, r5, #0 + blx r2 + cmp r0, #0 + beq _022380D8 + ldr r1, [r4, #4] + mov r0, #0x15 + lsl r2, r1, #4 + ldr r1, _022380F0 ; =0x0223CF8C + lsl r0, r0, #4 + ldr r0, [r4, r0] + ldr r1, [r1, r2] + blx r1 + mov r0, #0x15 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r4, r0] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + str r1, [r5] + b _022380D8 +_022380D0: + add r0, r3, #1 + str r0, [r4, #4] + mov r0, #0 + str r0, [r5] +_022380D8: + bl MOD81_02238864 + mov r0, #0 + pop {r4, r5, r6, pc} +_022380E0: + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 +_022380E4: .word 0x0223CF90 +_022380E8: .word 0x0223CF84 +_022380EC: .word 0x0223CF88 +_022380F0: .word 0x0223CF8C + thumb_func_end MOD81_02238064 + + thumb_func_start MOD81_022380F4 +MOD81_022380F4: ; 0x022380F4 + push {r3, lr} + ldr r0, [r1, #0x18] + bl FUN_0201FDEC + bl FUN_02009F80 + ldr r3, _02238110 ; =0x027E0000 + ldr r1, _02238114 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + nop +_02238110: .word 0x027E0000 +_02238114: .word 0x00003FF8 + thumb_func_end MOD81_022380F4 + + thumb_func_start MOD81_02238118 +MOD81_02238118: ; 0x02238118 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0x39 + add r6, r1, #0 + add r1, r0, #0 + add r1, #0xc7 + bl FUN_02016998 + add r4, r0, #0 + ldr r0, _022381DC ; =0x00000000 + str r0, [r5] + beq _022381D4 + mov r0, #0x5d + mov r1, #6 + add r2, sp, #4 + mov r3, #0x39 + bl FUN_02006C08 + add r7, r0, #0 + beq _02238152 + mov r0, #0 + add r1, r4, #0 + mov r2, #0x60 + bl MIi_CpuClear16 + add r0, r7, #0 + bl FUN_02016A18 +_02238152: + add r1, r4, #0 + mov r0, #0 + add r1, #0xec + str r0, [r1] + add r1, r4, #0 + add r1, #0xe8 + str r0, [r1] + add r1, r4, #0 + add r1, #0xf0 + str r0, [r1] + add r1, r4, #0 + add r1, #0xf4 + str r0, [r1] + add r1, r4, #0 + add r1, #0xe4 + str r5, [r1] + add r1, r4, #0 + add r1, #0xf8 + str r0, [r1] + add r1, r4, #0 + add r1, #0xfc + str r6, [r1] + add r3, r4, #0 + add r2, r0, #0 +_02238182: + add r1, r3, #0 + add r1, #0xc4 + add r0, r0, #1 + add r3, r3, #4 + str r2, [r1] + cmp r0, #8 + blt _02238182 + mov r0, #8 + str r0, [sp] + ldr r0, _022381E0 ; =0x04000050 + mov r1, #4 + mov r2, #0xc + mov r3, #0x10 + bl G2x_SetBlendAlpha_ + mov r0, #8 + str r0, [sp] + ldr r0, _022381E4 ; =0x04001050 + mov r1, #4 + mov r2, #0xc + mov r3, #0x10 + bl G2x_SetBlendAlpha_ + ldr r0, _022381E8 ; =MOD81_02238248 + add r1, r4, #0 + mov r2, #0x14 + bl FUN_0200CA44 + add r1, r4, #0 + add r1, #0xc0 + str r0, [r1] + add r0, r4, #0 + add r0, #0xc0 + ldr r0, [r0] + cmp r0, #0 + beq _022381D4 + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + mov r1, #1 + str r1, [r0] +_022381D4: + add r0, r4, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_022381DC: .word 0x00000000 +_022381E0: .word 0x04000050 +_022381E4: .word 0x04001050 +_022381E8: .word MOD81_02238248 + thumb_func_end MOD81_02238118 + + thumb_func_start MOD81_022381EC +MOD81_022381EC: ; 0x022381EC + add r1, r0, #0 + add r1, #0xe4 + ldr r1, [r1] + ldr r1, [r1] + cmp r1, #1 + bne _022381FE + mov r1, #1 + add r0, #0xe8 + str r1, [r0] +_022381FE: + bx lr + thumb_func_end MOD81_022381EC + + thumb_func_start MOD81_02238200 +MOD81_02238200: ; 0x02238200 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r0, #0xe4 + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #1 + bne _02238246 + mov r4, #0 + add r5, r6, #0 +_02238212: + add r0, r5, #0 + add r0, #0xc4 + ldr r0, [r0] + cmp r0, #0 + beq _02238224 + add r0, r6, #0 + add r1, r4, #0 + bl MOD81_0223840C +_02238224: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #8 + blt _02238212 + add r0, r6, #0 + add r0, #0xe4 + ldr r0, [r0] + mov r1, #0 + str r1, [r0] + add r0, r6, #0 + add r0, #0xc0 + ldr r0, [r0] + bl FUN_0200CAB4 + add r0, r6, #0 + bl FUN_02016A18 +_02238246: + pop {r4, r5, r6, pc} + thumb_func_end MOD81_02238200 + + thumb_func_start MOD81_02238248 +MOD81_02238248: ; 0x02238248 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0xe8 + ldr r0, [r0] + cmp r0, #0 + bne _022382C6 + add r0, r4, #0 + add r0, #0xf0 + ldr r0, [r0] + sub r1, r0, #1 + add r0, r4, #0 + add r0, #0xf0 + str r1, [r0] + add r0, r4, #0 + add r0, #0xf0 + ldr r0, [r0] + cmp r0, #0 + bgt _02238284 + ldr r0, _0223832C ; =0x000006AE + bl FUN_020054C8 + add r0, r4, #0 + mov r1, #0x1e + add r0, #0xf0 + str r1, [r0] + add r0, r4, #0 + bl MOD81_02238358 +_02238284: + add r0, r4, #0 + add r0, #0xec + ldr r0, [r0] + cmp r0, #0 + beq _02238328 + bl GX_BeginLoadBGExtPltt + bl GXS_BeginLoadBGExtPltt + add r0, r4, #0 + mov r1, #0x60 + bl DC_FlushRange + mov r1, #6 + add r0, r4, #0 + lsl r1, r1, #0xc + mov r2, #0x60 + bl GX_LoadBGExtPltt + mov r1, #6 + add r0, r4, #0 + lsl r1, r1, #0xc + mov r2, #0x60 + bl GXS_LoadBGExtPltt + bl GX_EndLoadBGExtPltt + bl GXS_EndLoadBGExtPltt + mov r0, #0 + add r4, #0xec + str r0, [r4] + pop {r3, r4, r5, pc} +_022382C6: + add r0, r4, #0 + add r0, #0xec + ldr r0, [r0] + cmp r0, #0 + beq _02238308 + bl GX_BeginLoadBGExtPltt + bl GXS_BeginLoadBGExtPltt + add r0, r4, #0 + mov r1, #0x60 + bl DC_FlushRange + mov r1, #6 + add r0, r4, #0 + lsl r1, r1, #0xc + mov r2, #0x60 + bl GX_LoadBGExtPltt + mov r1, #6 + add r0, r4, #0 + lsl r1, r1, #0xc + mov r2, #0x60 + bl GXS_LoadBGExtPltt + bl GX_EndLoadBGExtPltt + bl GXS_EndLoadBGExtPltt + add r0, r4, #0 + mov r1, #0 + add r0, #0xec + str r1, [r0] +_02238308: + add r0, r4, #0 + add r0, #0xf4 + ldr r0, [r0] + cmp r0, #0 + bne _02238328 + add r0, r4, #0 + add r0, #0xe4 + ldr r0, [r0] + mov r1, #0 + str r1, [r0] + add r0, r4, #0 + bl FUN_02016A18 + add r0, r5, #0 + bl FUN_0200CAB4 +_02238328: + pop {r3, r4, r5, pc} + nop +_0223832C: .word 0x000006AE + thumb_func_end MOD81_02238248 + + thumb_func_start MOD81_02238330 +MOD81_02238330: ; 0x02238330 + push {r3, r4} + cmp r1, #0 + blt _02238340 + cmp r1, #0x60 + bge _02238340 + mov r4, #0 + lsl r1, r1, #1 + strh r4, [r0, r1] +_02238340: + cmp r2, #0 + blt _0223834C + cmp r2, #0x60 + bge _0223834C + lsl r1, r2, #1 + strh r3, [r0, r1] +_0223834C: + mov r1, #1 + add r0, #0xec + str r1, [r0] + pop {r3, r4} + bx lr + .align 2, 0 + thumb_func_end MOD81_02238330 + + thumb_func_start MOD81_02238358 +MOD81_02238358: ; 0x02238358 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0xf8 + ldr r0, [r0] + lsl r0, r0, #2 + add r0, r5, r0 + add r0, #0xc4 + ldr r0, [r0] + cmp r0, #0 + bne _02238404 + mov r0, #0x39 + mov r1, #0x18 + bl FUN_02016998 + add r4, r0, #0 + beq _02238404 + add r0, r5, #0 + str r5, [r4] + add r0, #0xfc + ldr r0, [r0] + cmp r0, #1 + bne _0223838A + mov r0, #0 + mvn r0, r0 + b _0223838C +_0223838A: + mov r0, #0xf +_0223838C: + str r0, [r4, #4] + mov r0, #0 + str r0, [r4, #0xc] + mov r0, #2 + str r0, [r4, #8] + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + add r1, r4, #0 + str r0, [r4, #0x10] + add r0, r5, #0 + add r0, #0xfc + ldr r0, [r0] + mov r2, #0xa + str r0, [r4, #0x14] + ldr r0, _02238408 ; =MOD81_0223843C + bl FUN_0200CA44 + add r1, r5, #0 + add r1, #0xf8 + ldr r1, [r1] + lsl r1, r1, #2 + add r1, r5, r1 + add r1, #0xc4 + str r0, [r1] + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + lsl r0, r0, #2 + add r0, r5, r0 + add r0, #0xc4 + ldr r0, [r0] + cmp r0, #0 + beq _022383FE + add r0, r5, #0 + add r0, #0xf4 + ldr r0, [r0] + add r1, r0, #1 + add r0, r5, #0 + add r0, #0xf4 + str r1, [r0] + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + add r1, r0, #1 + add r0, r5, #0 + add r0, #0xf8 + str r1, [r0] + add r0, r5, #0 + add r0, #0xf8 + ldr r0, [r0] + cmp r0, #8 + blt _02238404 + mov r0, #0 + add r5, #0xf8 + str r0, [r5] + pop {r3, r4, r5, pc} +_022383FE: + add r0, r4, #0 + bl FUN_02016A18 +_02238404: + pop {r3, r4, r5, pc} + nop +_02238408: .word MOD81_0223843C + thumb_func_end MOD81_02238358 + + thumb_func_start MOD81_0223840C +MOD81_0223840C: ; 0x0223840C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r5, #0 + lsl r4, r1, #2 + add r6, #0xc4 + ldr r0, [r6, r4] + cmp r0, #0 + beq _0223843A + bl FUN_0201B6C8 + bl FUN_02016A18 + ldr r0, [r6, r4] + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r6, r4] + add r0, r5, #0 + add r0, #0xf4 + ldr r0, [r0] + add r5, #0xf4 + sub r0, r0, #1 + str r0, [r5] +_0223843A: + pop {r4, r5, r6, pc} + thumb_func_end MOD81_0223840C + + thumb_func_start MOD81_0223843C +MOD81_0223843C: ; 0x0223843C + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #0xc] + add r1, r0, #1 + str r1, [r4, #0xc] + ldr r0, [r4, #8] + cmp r1, r0 + blt _022384A4 + mov r3, #0 + str r3, [r4, #0xc] + ldr r0, [r4, #0x14] + cmp r0, #1 + bne _0223847C + ldr r1, [r4, #4] + ldr r0, [r4] + add r2, r1, #1 + cmp r2, #0xf + blt _0223846E + bl MOD81_02238330 + ldr r0, [r4] + ldr r1, [r4, #0x10] + bl MOD81_0223840C + pop {r4, pc} +_0223846E: + ldr r3, _022384A8 ; =0x00007FFF + bl MOD81_02238330 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + pop {r4, pc} +_0223847C: + ldr r2, [r4, #4] + ldr r0, [r4] + cmp r2, #0 + bge _02238496 + add r1, r2, #0 + add r2, r2, #1 + bl MOD81_02238330 + ldr r0, [r4] + ldr r1, [r4, #0x10] + bl MOD81_0223840C + pop {r4, pc} +_02238496: + ldr r3, _022384A8 ; =0x00007FFF + add r1, r2, #1 + bl MOD81_02238330 + ldr r0, [r4, #4] + sub r0, r0, #1 + str r0, [r4, #4] +_022384A4: + pop {r4, pc} + nop +_022384A8: .word 0x00007FFF + thumb_func_end MOD81_0223843C + + thumb_func_start MOD81_022384AC +MOD81_022384AC: ; 0x022384AC + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + str r0, [sp] + add r6, r1, #0 + mov r0, #0x39 + mov r1, #0x24 + add r7, r2, #0 + str r3, [sp, #4] + ldr r5, [sp, #0x28] + bl FUN_02016998 + add r4, r0, #0 + ldr r0, _0223850C ; =0x00000001 + str r0, [r5] + beq _02238504 + ldr r1, [sp] + str r1, [r4] + str r6, [r4, #8] + ldr r1, [sp, #4] + str r7, [r4, #0xc] + str r1, [r4, #0x10] + ldr r1, [sp, #0x20] + str r1, [r4, #0x14] + cmp r6, r7 + bge _022384E0 + mov r0, #0 +_022384E0: + str r0, [r4, #0x18] + ldr r0, [sp, #0x24] + mov r2, #0 + str r0, [r4, #0x1c] + str r5, [r4, #4] + ldr r0, _02238510 ; =MOD81_02238514 + add r1, r4, #0 + str r2, [r5] + bl FUN_0200CA60 + str r0, [r4, #0x20] + cmp r0, #0 + bne _02238504 + mov r0, #1 + str r0, [r5] + add r0, r4, #0 + bl FUN_02016A18 +_02238504: + add r0, r4, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_0223850C: .word 0x00000001 +_02238510: .word MOD81_02238514 + thumb_func_end MOD81_022384AC + + thumb_func_start MOD81_02238514 +MOD81_02238514: ; 0x02238514 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #8] + ldr r1, [r4, #0x10] + mul r1, r0 + asr r2, r1, #0xc + asr r1, r2, #4 + lsr r1, r1, #0x1b + add r1, r2, r1 + asr r2, r1, #5 + ldr r1, [r4, #0x18] + cmp r1, #0 + beq _02238536 + cmp r1, #1 + beq _0223854C + b _02238560 +_02238536: + ldr r1, [r4, #0xc] + add r0, r0, r2 + cmp r0, r1 + bge _02238542 + str r0, [r4, #8] + b _02238560 +_02238542: + str r1, [r4, #8] + ldr r0, [r4, #4] + mov r1, #1 + str r1, [r0] + b _02238560 +_0223854C: + ldr r1, [r4, #0xc] + sub r0, r0, r2 + cmp r0, r1 + ble _02238558 + str r0, [r4, #8] + b _02238560 +_02238558: + str r1, [r4, #8] + ldr r0, [r4, #4] + mov r1, #1 + str r1, [r0] +_02238560: + add r0, r4, #0 + bl MOD81_02238588 + ldr r0, [r4, #4] + ldr r0, [r0] + cmp r0, #0 + beq _0223857C + add r0, r4, #0 + bl MOD81_02238898 + add r0, r5, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} +_0223857C: + ldr r1, [r4, #0x10] + ldr r0, [r4, #0x14] + add r0, r1, r0 + str r0, [r4, #0x10] + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD81_02238514 + + thumb_func_start MOD81_02238588 +MOD81_02238588: ; 0x02238588 + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + ldr r0, [r4, #8] + add r2, sp, #4 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, [r4, #8] + mov r3, #0x80 + str r0, [sp, #0x10] + ldr r0, [r4, #0x1c] + lsl r1, r0, #2 + ldr r0, _022385CC ; =0x0223CF6C + ldr r0, [r0, r1] + mov r1, #2 + str r0, [sp] + ldr r0, [r4] + bl FUN_02017BD0 + ldr r0, [r4, #0x1c] + add r2, sp, #4 + lsl r1, r0, #2 + ldr r0, _022385CC ; =0x0223CF6C + mov r3, #0x80 + ldr r0, [r0, r1] + mov r1, #6 + str r0, [sp] + ldr r0, [r4] + bl FUN_02017BD0 + add sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 +_022385CC: .word 0x0223CF6C + thumb_func_end MOD81_02238588 + + thumb_func_start MOD81_022385D0 +MOD81_022385D0: ; 0x022385D0 + push {r4, r5, r6, r7, lr} + sub sp, #0x44 + add r5, r0, #0 + ldr r0, [sp, #0x58] + add r4, r1, #0 + str r2, [sp, #0x14] + str r3, [sp, #0x18] + cmp r0, #0 + beq _022385E8 + mov r6, #0x19 + lsl r6, r6, #8 + b _022385EC +_022385E8: + mov r6, #0x32 + lsl r6, r6, #6 +_022385EC: + mov r0, #0x39 + add r1, r6, #0 + bl FUN_020169D8 + add r7, r0, #0 + beq _02238690 + ldr r3, _022386B8 ; =0x0223CF74 + add r2, sp, #0x24 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + cmp r4, #0 + ldr r0, [r5] + bne _0223860E + ldr r4, [r0] + b _02238610 +_0223860E: + ldr r4, [r0, #4] +_02238610: + add r0, r4, #0 + bl FUN_02066A6C + str r0, [sp, #0x20] + add r0, sp, #0x34 + add r1, r4, #0 + mov r2, #2 + bl FUN_02068B70 + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl FUN_020672BC + str r0, [sp, #0x1c] + add r0, r4, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + lsl r0, r0, #0x10 + ldr r1, [sp, #0x58] + lsr r0, r0, #0x10 + cmp r1, #0 + beq _02238648 + ldr r1, [sp, #0x2c] + lsl r1, r1, #1 + str r1, [sp, #0x2c] +_02238648: + ldr r1, [sp, #0x1c] + str r7, [sp] + str r1, [sp, #4] + ldr r1, [sp, #0x58] + mov r2, #0x39 + str r1, [sp, #8] + mov r1, #2 + str r1, [sp, #0xc] + str r0, [sp, #0x10] + add r1, sp, #0x24 + ldrh r0, [r1, #0x10] + ldrh r1, [r1, #0x12] + add r3, sp, #0x24 + bl FUN_02012530 + add r0, r7, #0 + add r1, r6, #0 + bl DC_FlushRange + ldr r1, [sp, #0x14] + mov r0, #0 + str r0, [sp] + lsl r1, r1, #0x18 + ldr r0, [r5, #8] + lsr r1, r1, #0x18 + add r2, r7, #0 + add r3, r6, #0 + bl FUN_02017E14 + ldr r1, [sp, #0x20] + add r0, r4, #0 + bl FUN_02066A94 + add r0, r7, #0 + bl FUN_02016A18 +_02238690: + ldr r0, [sp, #0x14] + cmp r0, #4 + blo _0223869A + mov r2, #4 + b _0223869C +_0223869A: + mov r2, #0 +_0223869C: + mov r0, #0x20 + str r0, [sp] + mov r0, #0x39 + ldr r3, [sp, #0x18] + str r0, [sp, #4] + add r1, sp, #0x24 + ldrh r0, [r1, #0x10] + ldrh r1, [r1, #0x14] + lsl r3, r3, #5 + bl FUN_02006930 + add sp, #0x44 + pop {r4, r5, r6, r7, pc} + nop +_022386B8: .word 0x0223CF74 + thumb_func_end MOD81_022385D0 + + thumb_func_start MOD81_022386BC +MOD81_022386BC: ; 0x022386BC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r0, #0 + add r4, r2, #0 + add r6, r3, #0 + cmp r1, #0 + bne _022386CE + mov r1, #0xc6 + b _022386DE +_022386CE: + mov r0, #0x52 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0 + beq _022386DC + mov r1, #0xc7 + b _022386DE +_022386DC: + mov r1, #0xc6 +_022386DE: + mov r0, #0x39 + str r0, [sp] + mov r0, #7 + mov r2, #0 + add r3, sp, #0x1c + bl FUN_02006BDC + add r7, r0, #0 + beq _02238746 + mov r0, #0xa + str r0, [sp] + str r0, [sp, #4] + ldr r0, [sp, #0x1c] + ldr r2, [sp, #0x38] + add r0, #0xc + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r0, #0x20 + ldr r3, [sp, #0x3c] + str r0, [sp, #0x14] + str r0, [sp, #0x18] + lsl r1, r4, #0x18 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r5, #8] + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_02018170 + mov r0, #0xa + str r0, [sp] + str r0, [sp, #4] + lsl r0, r6, #0x18 + ldr r2, [sp, #0x38] + ldr r3, [sp, #0x3c] + lsr r0, r0, #0x18 + str r0, [sp, #8] + lsl r1, r4, #0x18 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r5, #8] + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_020186B4 + add r0, r7, #0 + bl FUN_02016A18 +_02238746: + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD81_022386BC + + thumb_func_start MOD81_0223874C +MOD81_0223874C: ; 0x0223874C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + add r4, r1, #0 + add r6, r3, #0 + mov r0, #0x3a + add r3, r5, #0 + str r0, [sp] + add r1, r2, #0 + add r0, r4, #0 + mov r2, #1 + add r3, #8 + bl FUN_02006C30 + str r0, [r5] + mov r0, #0x3a + add r3, r5, #0 + str r0, [sp] + add r0, r4, #0 + add r1, r6, #0 + mov r2, #1 + add r3, #0xc + bl FUN_02006C5C + str r0, [r5, #4] + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD81_0223874C + + thumb_func_start MOD81_02238784 +MOD81_02238784: ; 0x02238784 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _02238796 + bl FUN_02016A18 + mov r0, #0 + str r0, [r4] +_02238796: + ldr r0, [r4, #4] + cmp r0, #0 + beq _022387A4 + bl FUN_02016A18 + mov r0, #0 + str r0, [r4, #4] +_022387A4: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_02238784 + + thumb_func_start MOD81_022387A8 +MOD81_022387A8: ; 0x022387A8 + str r2, [r0] + str r3, [r0, #8] + ldr r2, [r1, #8] + str r2, [r0, #0xc] + ldr r1, [r1, #0xc] + ldr r2, [sp] + str r1, [r0, #0x10] + add r1, r0, #0 + add r1, #0x20 + strb r2, [r1] + mov r1, #0 + str r1, [r0, #4] + str r1, [r0, #0x14] + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + bx lr + thumb_func_end MOD81_022387A8 + + thumb_func_start MOD81_022387C8 +MOD81_022387C8: ; 0x022387C8 + push {r4, lr} + sub sp, #0x20 + ldr r0, [r0, #0x18] + str r0, [sp] + lsl r0, r2, #0xc + str r0, [sp, #8] + lsl r0, r3, #0xc + str r0, [sp, #0xc] + mov r0, #0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x28] + str r1, [sp, #4] + str r0, [sp, #0x14] + ldr r0, [sp, #0x2c] + str r0, [sp, #0x18] + mov r0, #0x39 + str r0, [sp, #0x1c] + add r0, sp, #0 + bl FUN_0201FF84 + add r4, r0, #0 + beq _02238804 + mov r1, #1 + bl FUN_020200BC + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_020200D8 +_02238804: + add r0, r4, #0 + add sp, #0x20 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_022387C8 + + thumb_func_start MOD81_0223880C +MOD81_0223880C: ; 0x0223880C + ldr r0, [r0, #8] + bx lr + thumb_func_end MOD81_0223880C + + thumb_func_start MOD81_02238810 +MOD81_02238810: ; 0x02238810 + ldr r0, [r0, #0xc] + bx lr + thumb_func_end MOD81_02238810 + + thumb_func_start MOD81_02238814 +MOD81_02238814: ; 0x02238814 + ldr r0, [r0, #0x10] + bx lr + thumb_func_end MOD81_02238814 + + thumb_func_start MOD81_02238818 +MOD81_02238818: ; 0x02238818 + ldr r0, [r0] + ldr r0, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD81_02238818 + + thumb_func_start MOD81_02238820 +MOD81_02238820: ; 0x02238820 + ldr r0, [r0] + ldr r0, [r0, #4] + bx lr + .align 2, 0 + thumb_func_end MOD81_02238820 + + thumb_func_start MOD81_02238828 +MOD81_02238828: ; 0x02238828 + ldr r0, [r0] + ldr r0, [r0, #0xc] + bx lr + .align 2, 0 + thumb_func_end MOD81_02238828 + + thumb_func_start MOD81_02238830 +MOD81_02238830: ; 0x02238830 + mov r1, #0x53 + lsl r1, r1, #2 + ldrh r0, [r0, r1] + bx lr + thumb_func_end MOD81_02238830 + + thumb_func_start MOD81_02238838 +MOD81_02238838: ; 0x02238838 + ldr r1, _02238840 ; =0x0000014E + ldrh r0, [r0, r1] + bx lr + nop +_02238840: .word 0x0000014E + thumb_func_end MOD81_02238838 + + thumb_func_start MOD81_02238844 +MOD81_02238844: ; 0x02238844 + ldr r0, [r0] + ldr r3, _0223884C ; =FUN_02025084 + ldr r0, [r0, #0x14] + bx r3 + .align 2, 0 +_0223884C: .word FUN_02025084 + thumb_func_end MOD81_02238844 + + thumb_func_start MOD81_02238850 +MOD81_02238850: ; 0x02238850 + ldr r0, [r0] + ldr r0, [r0, #0x10] + bx lr + .align 2, 0 + thumb_func_end MOD81_02238850 + + thumb_func_start MOD81_02238858 +MOD81_02238858: ; 0x02238858 + ldr r0, _02238860 ; =0x0223D3C0 + mov r1, #0 + str r1, [r0] + bx lr + .align 2, 0 +_02238860: .word 0x0223D3C0 + thumb_func_end MOD81_02238858 + + thumb_func_start MOD81_02238864 +MOD81_02238864: ; 0x02238864 + push {r4, r5, r6, lr} + ldr r6, _02238890 ; =0x0223D3C0 + ldr r0, [r6] + cmp r0, #0 + beq _0223888C + mov r4, #0 + cmp r0, #0 + ble _02238886 + ldr r5, _02238894 ; =0x0223D3C4 +_02238876: + ldr r0, [r5] + bl FUN_02016A18 + ldr r0, [r6] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, r0 + blt _02238876 +_02238886: + ldr r0, _02238890 ; =0x0223D3C0 + mov r1, #0 + str r1, [r0] +_0223888C: + pop {r4, r5, r6, pc} + nop +_02238890: .word 0x0223D3C0 +_02238894: .word 0x0223D3C4 + thumb_func_end MOD81_02238864 + + thumb_func_start MOD81_02238898 +MOD81_02238898: ; 0x02238898 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022388B8 ; =0x0223D3C0 + ldr r0, [r0] + cmp r0, #0x20 + blt _022388A8 + bl ErrorHandling +_022388A8: + ldr r0, _022388B8 ; =0x0223D3C0 + ldr r2, [r0] + add r1, r2, #1 + str r1, [r0] + ldr r0, _022388BC ; =0x0223D3C4 + lsl r1, r2, #2 + str r4, [r0, r1] + pop {r4, pc} + .align 2, 0 +_022388B8: .word 0x0223D3C0 +_022388BC: .word 0x0223D3C4 + thumb_func_end MOD81_02238898 + + thumb_func_start MOD81_022388C0 +MOD81_022388C0: ; 0x022388C0 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r4, r1, #0 + mov r0, #0x3a + mov r1, #0x20 + add r5, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r6, r0, #0 + beq _02238906 + ldr r3, [sp] + add r1, r4, #0 + add r2, r5, #0 + bl MOD81_02238CA0 + mov r1, #0x8c + mov r0, #0x3a + mul r1, r7 + bl FUN_02016998 + str r0, [r6, #0x18] + mov r4, #0 + str r7, [r6, #0x1c] + cmp r7, #0 + bls _02238906 + add r5, r4, #0 +_022388F6: + ldr r0, [r6, #0x18] + add r0, r0, r5 + bl MOD81_02238A38 + add r4, r4, #1 + add r5, #0x8c + cmp r4, r7 + blo _022388F6 +_02238906: + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD81_022388C0 + + thumb_func_start MOD81_0223890C +MOD81_0223890C: ; 0x0223890C + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5, #0x1c] + mov r6, #0 + cmp r0, #0 + bls _0223892C + add r4, r6, #0 +_0223891A: + ldr r0, [r5, #0x18] + add r0, r0, r4 + bl MOD81_02238A6C + ldr r0, [r5, #0x1c] + add r6, r6, #1 + add r4, #0x8c + cmp r6, r0 + blo _0223891A +_0223892C: + ldr r0, [r5, #0x18] + bl FUN_02016A18 + add r0, r5, #0 + bl MOD81_02238D0C + add r0, r5, #0 + bl FUN_02016A18 + pop {r4, r5, r6, pc} + thumb_func_end MOD81_0223890C + + thumb_func_start MOD81_02238940 +MOD81_02238940: ; 0x02238940 + push {r3, r4, r5, r6, lr} + sub sp, #4 + mov r1, #0 + add r5, r0, #0 + mov r0, #0x11 + add r2, r1, #0 + bl FUN_020BB1C0 + bl FUN_0201EBA4 + ldr r0, [r5, #0x1c] + mov r6, #0 + cmp r0, #0 + bls _02238976 + add r4, r6, #0 +_0223895E: + ldr r0, [r5, #0x18] + add r0, r0, r4 + ldr r1, [r0, #0x64] + cmp r1, #0 + beq _0223896C + bl MOD81_02238988 +_0223896C: + ldr r0, [r5, #0x1c] + add r6, r6, #1 + add r4, #0x8c + cmp r6, r0 + blo _0223895E +_02238976: + mov r2, #1 + mov r0, #0x12 + add r1, sp, #0 + str r2, [sp] + bl FUN_020BB1C0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD81_02238940 + + thumb_func_start MOD81_02238988 +MOD81_02238988: ; 0x02238988 + push {r4, lr} + sub sp, #0x50 + add r4, r0, #0 + add r0, sp, #0x2c + bl MTX_Identity33_ + add r0, r4, #0 + add r0, #0x80 + ldrh r0, [r0] + ldr r3, _02238A34 ; =0x020FFA38 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #8 + bl MTX_RotX33_ + add r1, sp, #0x2c + add r0, sp, #8 + add r2, r1, #0 + bl MTX_Concat33 + add r0, r4, #0 + add r0, #0x82 + ldrh r0, [r0] + ldr r3, _02238A34 ; =0x020FFA38 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #8 + bl MTX_RotY33_ + add r1, sp, #0x2c + add r0, sp, #8 + add r2, r1, #0 + bl MTX_Concat33 + add r0, r4, #0 + add r0, #0x84 + ldrh r0, [r0] + ldr r3, _02238A34 ; =0x020FFA38 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #8 + bl MTX_RotZ33_ + add r1, sp, #0x2c + add r0, sp, #8 + add r2, r1, #0 + bl MTX_Concat33 + add r0, r4, #0 + add r0, #0x88 + ldr r0, [r0] + cmp r0, #0x1f + beq _02238A20 + str r0, [sp] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + str r0, [sp, #4] + bl FUN_020B8390 +_02238A20: + add r1, r4, #0 + add r0, r4, #4 + add r4, #0x74 + add r1, #0x68 + add r2, sp, #0x2c + add r3, r4, #0 + bl FUN_0201B26C + add sp, #0x50 + pop {r4, pc} + .align 2, 0 +_02238A34: .word 0x020FFA38 + thumb_func_end MOD81_02238988 + + thumb_func_start MOD81_02238A38 +MOD81_02238A38: ; 0x02238A38 + mov r1, #0 + str r1, [r0, #0x64] + add r2, r0, #0 + str r1, [r0] + add r2, #0x84 + strh r1, [r2] + mov r2, #0x84 + ldrsh r3, [r0, r2] + add r2, r0, #0 + add r2, #0x82 + strh r3, [r2] + mov r2, #0x82 + ldrsh r3, [r0, r2] + add r2, r0, #0 + add r2, #0x80 + strh r3, [r2] + mov r2, #1 + lsl r2, r2, #0xc + str r2, [r0, #0x7c] + str r2, [r0, #0x78] + str r2, [r0, #0x74] + str r1, [r0, #0x70] + str r1, [r0, #0x6c] + str r1, [r0, #0x68] + bx lr + .align 2, 0 + thumb_func_end MOD81_02238A38 + + thumb_func_start MOD81_02238A6C +MOD81_02238A6C: ; 0x02238A6C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _02238A80 + bl FUN_02016A18 + mov r0, #0 + str r0, [r4] + str r0, [r4, #0x64] +_02238A80: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_02238A6C + + thumb_func_start MOD81_02238A84 +MOD81_02238A84: ; 0x02238A84 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + ldr r4, [r0, #0x18] + add r6, r1, #0 + mov r0, #0x8c + mul r6, r0 + add r7, r2, #0 + mov r0, #1 + str r0, [sp] + str r3, [sp, #4] + add r1, r3, #0 + add r0, r7, #0 + mov r2, #0 + mov r3, #0x3a + add r5, r4, r6 + bl FUN_02006C98 + str r0, [r4, r6] + ldr r1, [sp, #4] + add r0, r7, #0 + bl LoadFromNARC_7 + add r1, r0, #0 + ldr r0, [r4, r6] + bl DC_FlushRange + ldr r0, [r4, r6] + cmp r0, #0 + beq _02238B02 + bl FUN_020BC13C + str r0, [r5, #0x58] + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r0, r0, r1 + str r0, [r5, #0x5c] + ldr r0, [r5] + bl FUN_020BC0FC + str r0, [r5, #0x60] + bl FUN_0201B3C4 + ldr r0, [r5] + ldr r1, [r5, #0x60] + bl FUN_0201B3A8 + ldr r1, [r5, #0x5c] + add r0, r5, #4 + bl FUN_020B80B4 + ldr r0, [sp, #0x20] + mov r1, #0x1f + str r0, [r5, #0x68] + ldr r0, [sp, #0x24] + str r0, [r5, #0x6c] + ldr r0, [sp, #0x28] + str r0, [r5, #0x70] + add r0, r5, #0 + add r0, #0x88 + str r1, [r0] + ldr r0, [sp, #0x2c] + str r0, [r5, #0x64] +_02238B02: + add r0, r5, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD81_02238A84 + + thumb_func_start MOD81_02238B08 +MOD81_02238B08: ; 0x02238B08 + add r2, r0, #0 + add r2, #0x68 + add r3, r1, #0 + ldmia r2!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r2] + str r0, [r3] + bx lr + thumb_func_end MOD81_02238B08 + + thumb_func_start MOD81_02238B18 +MOD81_02238B18: ; 0x02238B18 + add r3, r1, #0 + add r2, r0, #0 + ldmia r3!, {r0, r1} + add r2, #0x68 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + bx lr + thumb_func_end MOD81_02238B18 + + thumb_func_start MOD81_02238B28 +MOD81_02238B28: ; 0x02238B28 + add r2, r0, #0 + add r2, #0x80 + ldrh r2, [r2] + strh r2, [r1] + add r2, r0, #0 + add r2, #0x82 + ldrh r2, [r2] + add r0, #0x84 + strh r2, [r1, #2] + ldrh r0, [r0] + strh r0, [r1, #4] + bx lr + thumb_func_end MOD81_02238B28 + + thumb_func_start MOD81_02238B40 +MOD81_02238B40: ; 0x02238B40 + ldrh r3, [r1] + add r2, r0, #0 + add r2, #0x80 + strh r3, [r2] + add r2, r0, #0 + ldrh r3, [r1, #2] + add r2, #0x82 + add r0, #0x84 + strh r3, [r2] + ldrh r1, [r1, #4] + strh r1, [r0] + bx lr + thumb_func_end MOD81_02238B40 + + thumb_func_start MOD81_02238B58 +MOD81_02238B58: ; 0x02238B58 + str r1, [r0, #0x64] + bx lr + thumb_func_end MOD81_02238B58 + + thumb_func_start MOD81_02238B5C +MOD81_02238B5C: ; 0x02238B5C + push {r3, lr} + add r2, r0, #0 + add r2, #0x88 + str r1, [r2] + cmp r1, #0x1f + ldr r0, [r0, #0x5c] + beq _02238B76 + mov r2, #0x1f + mov r1, #0 + lsl r2, r2, #0x10 + bl FUN_020BC02C + pop {r3, pc} +_02238B76: + mov r2, #0x1f + mov r1, #1 + lsl r2, r2, #0x10 + bl FUN_020BC02C + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD81_02238B5C + + thumb_func_start MOD81_02238B84 +MOD81_02238B84: ; 0x02238B84 + str r1, [r0, #0x74] + str r1, [r0, #0x78] + str r1, [r0, #0x7c] + bx lr + thumb_func_end MOD81_02238B84 + + thumb_func_start MOD81_02238B8C +MOD81_02238B8C: ; 0x02238B8C + push {r3, r4, lr} + sub sp, #0x4c + add r4, r0, #0 + add r0, sp, #0x28 + bl MTX_Identity33_ + add r0, r4, #0 + add r0, #0x80 + ldrh r0, [r0] + ldr r3, _02238C3C ; =0x020FFA38 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #4 + bl MTX_RotX33_ + add r1, sp, #0x28 + add r0, sp, #4 + add r2, r1, #0 + bl MTX_Concat33 + add r0, r4, #0 + add r0, #0x82 + ldrh r0, [r0] + ldr r3, _02238C3C ; =0x020FFA38 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #4 + bl MTX_RotY33_ + add r1, sp, #0x28 + add r0, sp, #4 + add r2, r1, #0 + bl MTX_Concat33 + add r0, r4, #0 + add r0, #0x84 + ldrh r0, [r0] + ldr r3, _02238C3C ; =0x020FFA38 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #4 + bl MTX_RotZ33_ + add r1, sp, #0x28 + add r0, sp, #4 + add r2, r1, #0 + bl MTX_Concat33 + mov r1, #0 + mov r0, #0x11 + add r2, r1, #0 + bl FUN_020BB1C0 + bl FUN_0201EBA4 + add r1, r4, #0 + ldr r0, [r4, #0x5c] + add r4, #0x74 + add r1, #0x68 + add r2, sp, #0x28 + add r3, r4, #0 + bl FUN_0201B6D0 + add r4, r0, #0 + mov r2, #1 + mov r0, #0x12 + add r1, sp, #0 + str r2, [sp] + bl FUN_020BB1C0 + add r0, r4, #0 + add sp, #0x4c + pop {r3, r4, pc} + .align 2, 0 +_02238C3C: .word 0x020FFA38 + thumb_func_end MOD81_02238B8C + + thumb_func_start MOD81_02238C40 +MOD81_02238C40: ; 0x02238C40 + push {r3, r4, lr} + sub sp, #0xc + add r2, r0, #0 + add r4, r1, #0 + ldr r1, [r2] + add r0, sp, #0 + bl FUN_0201F03C + add r2, sp, #0 + ldmia r2!, {r0, r1} + stmia r4!, {r0, r1} + ldr r0, [r2] + str r0, [r4] + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD81_02238C40 + + thumb_func_start MOD81_02238C60 +MOD81_02238C60: ; 0x02238C60 + ldr r3, _02238C6C ; =FUN_0201EF90 + add r2, r0, #0 + add r0, r1, #0 + ldr r1, [r2] + bx r3 + nop +_02238C6C: .word FUN_0201EF90 + thumb_func_end MOD81_02238C60 + + thumb_func_start MOD81_02238C70 +MOD81_02238C70: ; 0x02238C70 + ldr r3, _02238C7C ; =FUN_0201EFB4 + add r2, r0, #0 + add r0, r1, #0 + ldr r1, [r2] + bx r3 + nop +_02238C7C: .word FUN_0201EFB4 + thumb_func_end MOD81_02238C70 + + thumb_func_start MOD81_02238C80 +MOD81_02238C80: ; 0x02238C80 + ldr r3, _02238C8C ; =FUN_0201EE2C + add r2, r0, #0 + add r0, r1, #0 + ldr r1, [r2] + bx r3 + nop +_02238C8C: .word FUN_0201EE2C + thumb_func_end MOD81_02238C80 + + thumb_func_start MOD81_02238C90 +MOD81_02238C90: ; 0x02238C90 + ldr r3, _02238C9C ; =FUN_0201EEF0 + add r2, r0, #0 + add r0, r1, #0 + ldr r1, [r2] + bx r3 + nop +_02238C9C: .word FUN_0201EEF0 + thumb_func_end MOD81_02238C90 + + thumb_func_start MOD81_02238CA0 +MOD81_02238CA0: ; 0x02238CA0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r0, #0 + mov r0, #0x3a + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + bl FUN_0201EB64 + str r0, [r5] + str r4, [r5, #4] + str r6, [r5, #8] + mov r1, #0x4b + add r2, r5, #0 + str r7, [r5, #0xc] + mov r0, #0 + strh r0, [r5, #0x10] + strh r0, [r5, #0x12] + strh r0, [r5, #0x14] + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r5] + ldr r3, _02238D08 ; =0x00000FA4 + str r0, [sp, #8] + add r0, r5, #4 + lsl r1, r1, #0xe + add r2, #0x10 + bl FUN_0201ECA8 + mov r1, #0 + mov r0, #1 + lsl r0, r0, #0xc + str r0, [sp, #0x10] + str r1, [sp, #0xc] + str r1, [sp, #0x14] + ldr r1, [r5] + add r0, sp, #0xc + bl FUN_0201EC58 + ldr r0, [r5] + bl FUN_0201EB8C + mov r1, #0xfa + ldr r2, [r5] + mov r0, #0 + lsl r1, r1, #0xe + bl FUN_0201EC94 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_02238D08: .word 0x00000FA4 + thumb_func_end MOD81_02238CA0 + + thumb_func_start MOD81_02238D0C +MOD81_02238D0C: ; 0x02238D0C + ldr r3, _02238D14 ; =FUN_0201EB70 + ldr r0, [r0] + bx r3 + nop +_02238D14: .word FUN_0201EB70 + thumb_func_end MOD81_02238D0C + + thumb_func_start MOD81_02238D18 +MOD81_02238D18: ; 0x02238D18 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x3a + mov r1, #0x6c + bl FUN_02016998 + add r4, r0, #0 + beq _02238D60 + str r5, [r4] + mov r0, #0 + str r0, [r4, #4] + add r0, r5, #0 + bl MOD81_0223880C + str r0, [r4, #0x40] + mov r0, #0x3a + bl FUN_02006D98 + str r0, [r4, #0xc] + mov r0, #0 + str r0, [r4, #0x10] + mov r0, #0x4b + lsl r0, r0, #2 + mov r1, #0x3a + bl FUN_020219F4 + str r0, [r4, #0x54] + mov r0, #0x4b + lsl r0, r0, #2 + mov r1, #0x3a + bl FUN_020219F4 + str r0, [r4, #0x58] + mov r0, #0 + str r0, [r4, #0x64] + str r0, [r4, #0x68] +_02238D60: + add r0, r4, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD81_02238D18 + + thumb_func_start MOD81_02238D64 +MOD81_02238D64: ; 0x02238D64 + push {r4, lr} + add r4, r0, #0 + beq _02238DC2 + bl MOD81_0223951C + add r0, r4, #0 + bl MOD81_022395E8 + add r0, r4, #0 + bl MOD81_02239498 + ldr r0, [r4, #0x54] + bl FUN_02021A20 + ldr r0, [r4, #0x58] + bl FUN_02021A20 + ldr r0, [r4, #0x5c] + bl MOD81_0223890C + ldr r0, [r4, #0x40] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #0x40] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #0x40] + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + add r0, #0x44 + bl FUN_02019178 + ldr r0, [r4, #0x10] + cmp r0, #0 + beq _02238DB6 + bl FUN_02007534 +_02238DB6: + ldr r0, [r4, #0xc] + bl FUN_020072E8 + add r0, r4, #0 + bl FUN_02016A18 +_02238DC2: + pop {r4, pc} + thumb_func_end MOD81_02238D64 + + thumb_func_start MOD81_02238DC4 +MOD81_02238DC4: ; 0x02238DC4 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r2, [r4] + add r5, r0, #0 + cmp r2, #4 + bhs _02238DF2 + lsl r3, r2, #2 + ldr r2, _02238DF8 ; =0x0223CFFC + add r1, r5, #4 + ldr r2, [r2, r3] + blx r2 + cmp r0, #0 + beq _02238DE8 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + mov r0, #0 + str r0, [r5, #4] +_02238DE8: + add r0, r5, #0 + bl MOD81_02238DFC + mov r0, #0 + pop {r3, r4, r5, pc} +_02238DF2: + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_02238DF8: .word 0x0223CFFC + thumb_func_end MOD81_02238DC4 + + thumb_func_start MOD81_02238DFC +MOD81_02238DFC: ; 0x02238DFC + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl G3X_ResetMtxStack + mov r1, #0 + mov r0, #0x11 + add r2, r1, #0 + bl FUN_020BB1C0 + bl FUN_020BB394 + bl FUN_020B02C8 + ldr r0, [r4, #0xc] + bl FUN_020081C4 + ldr r0, [r4, #0xc] + bl FUN_02006ED4 + mov r2, #1 + str r2, [sp] + mov r0, #0x12 + add r1, sp, #0 + bl FUN_020BB1C0 + ldr r0, [r4, #0x5c] + bl MOD81_02238940 + mov r0, #0 + add r1, r0, #0 + bl FUN_020222B4 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD81_02238DFC + + thumb_func_start MOD81_02238E44 +MOD81_02238E44: ; 0x02238E44 + push {r3, r4, lr} + sub sp, #0x1c + add r4, r0, #0 + ldr r0, _02239040 ; =0x0223D054 + bl FUN_0201E66C + ldr r2, _02239044 ; =0x04000304 + ldr r0, _02239048 ; =0xFFFF7FFF + ldrh r1, [r2] + and r0, r1 + strh r0, [r2] + ldr r0, _0223904C ; =0x0223D00C + bl FUN_02016BBC + ldr r0, [r4, #0x40] + ldr r2, _02239050 ; =0x0223D01C + mov r1, #1 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x40] + ldr r2, _02239054 ; =0x0223D038 + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x40] + ldr r2, _02239054 ; =0x0223D038 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r2, _02239058 ; =0x04000008 + mov r0, #3 + ldrh r3, [r2] + mov r1, #1 + bic r3, r0 + add r0, r3, #0 + orr r0, r1 + strh r0, [r2] + mov r2, #0 + str r2, [sp] + ldr r0, [r4, #0x40] + add r3, r1, #0 + bl FUN_02017F48 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r4, #0x40] + mov r1, #1 + add r3, r2, #0 + bl FUN_02018540 + ldr r0, [r4] + bl MOD81_02238844 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3a + str r0, [sp, #4] + ldr r0, [r4, #0x40] + mov r1, #1 + mov r2, #0x6d + mov r3, #2 + bl FUN_0200CD68 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + add r1, r4, #0 + str r0, [sp, #8] + mov r2, #1 + str r2, [sp, #0xc] + str r2, [sp, #0x10] + ldr r0, [r4, #0x40] + add r1, #0x44 + mov r3, #2 + bl FUN_02019064 + add r0, r4, #0 + add r0, #0x44 + mov r1, #0xf + bl FUN_02019620 + mov r3, #0x20 + str r3, [sp] + mov r0, #0x3a + str r0, [sp, #4] + mov r0, #0xe + mov r1, #7 + mov r2, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0x40] + mov r0, #0x5d + mov r1, #0x16 + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0x40] + mov r0, #0x5d + mov r1, #0x15 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3a + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #0x17 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0x40] + mov r0, #0x5d + mov r1, #0x16 + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0x40] + mov r0, #0x5d + mov r1, #0x15 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3a + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #0x17 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + ldr r0, [r4, #0x40] + mov r1, #1 + bl FUN_02017CD0 + add r0, r4, #0 + bl MOD81_022392D8 + mov r1, #0 + mov r0, #1 + add r2, r1, #0 + add r3, r1, #0 + bl MOD81_022388C0 + str r0, [r4, #0x5c] + add r0, r4, #0 + bl MOD81_022393A4 + str r0, [r4, #0x10] + mov r1, #0 + mov r0, #0x6a + str r1, [sp] + lsl r0, r0, #0xa + str r0, [sp, #4] + ldr r0, _0223905C ; =0x00073800 + mov r2, #0x5d + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [r4, #0x5c] + mov r3, #0x1b + bl MOD81_02238A84 + ldr r2, _02239060 ; =0x0223CFF4 + str r0, [r4, #0x60] + ldrh r3, [r2] + add r0, sp, #0x14 + add r1, sp, #0x14 + strh r3, [r0] + ldrh r3, [r2, #2] + ldrh r2, [r2, #4] + strh r3, [r0, #2] + strh r2, [r0, #4] + ldr r0, [r4, #0x60] + bl MOD81_02238B40 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add r0, r4, #0 + bl MOD81_022393F4 + ldr r0, _02239064 ; =0x04000050 + mov r1, #0 + strh r1, [r0] + bl FUN_02033E74 + mov r0, #1 + mov r1, #0x39 + bl FUN_02033F04 + mov r0, #0x10 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #1 + add sp, #0x1c + pop {r3, r4, pc} + .align 2, 0 +_02239040: .word 0x0223D054 +_02239044: .word 0x04000304 +_02239048: .word 0xFFFF7FFF +_0223904C: .word 0x0223D00C +_02239050: .word 0x0223D01C +_02239054: .word 0x0223D038 +_02239058: .word 0x04000008 +_0223905C: .word 0x00073800 +_02239060: .word 0x0223CFF4 +_02239064: .word 0x04000050 + thumb_func_end MOD81_02238E44 + + thumb_func_start MOD81_02239068 +MOD81_02239068: ; 0x02239068 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r1] + cmp r0, #0 + bne _0223908E + bl FUN_0200E308 + cmp r0, #0 + beq _0223908E + ldr r0, [r4, #0x28] + mov r1, #1 + bl FUN_02020130 + ldr r0, [r4, #0x28] + mov r1, #1 + bl FUN_020200A0 + mov r0, #1 + pop {r4, pc} +_0223908E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_02239068 + + thumb_func_start MOD81_02239094 +MOD81_02239094: ; 0x02239094 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r1, #0 + add r4, r0, #0 + ldr r0, [r5] + cmp r0, #4 + bhi _022390CE + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022390AE: ; jump table + .short _022390B8 - _022390AE - 2 ; case 0 + .short _022390C4 - _022390AE - 2 ; case 1 + .short _02239138 - _022390AE - 2 ; case 2 + .short _022391BE - _022390AE - 2 ; case 3 + .short _022391DE - _022390AE - 2 ; case 4 +_022390B8: + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _022391EE +_022390C4: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0xa + bgt _022390D0 +_022390CE: + b _022391EE +_022390D0: + ldr r0, [r4] + bl MOD81_02238814 + str r0, [sp, #0xc] + ldr r0, [r4] + bl MOD81_02238810 + add r7, r0, #0 + ldr r0, [r4] + bl MOD81_02238850 + cmp r0, #1 + bne _022390F0 + mov r1, #0 + mov r6, #2 + b _022390F4 +_022390F0: + mov r1, #4 + mov r6, #3 +_022390F4: + ldr r0, [sp, #0xc] + ldr r2, [r4, #0x54] + bl FUN_0200A8E0 + ldr r1, [r4, #0x58] + ldr r2, [r4, #0x54] + add r0, r7, #0 + bl FUN_0200B7B8 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r3, [sp, #8] + add r0, r4, #0 + ldr r2, [r4, #0x58] + add r0, #0x44 + mov r1, #1 + bl FUN_0201BD84 + add r0, r4, #0 + add r0, #0x44 + mov r1, #0x6d + mov r2, #2 + bl FUN_0200D06C + add r0, r4, #0 + add r0, #0x44 + bl FUN_020191D0 + mov r0, #0 + str r0, [r4, #8] + str r6, [r5] + b _022391EE +_02239138: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0x3c + ble _022391EE + ldr r0, [r4] + bl MOD81_02238814 + add r6, r0, #0 + ldr r0, [r4] + bl MOD81_02238810 + add r7, r0, #0 + ldr r2, [r4, #0x54] + add r0, r6, #0 + mov r1, #1 + bl FUN_0200A8E0 + ldr r1, [r4, #0x58] + ldr r2, [r4, #0x54] + add r0, r7, #0 + bl FUN_0200B7B8 + ldr r0, [r4] + bl MOD81_02238818 + mov r1, #0x4c + mov r2, #0 + bl FUN_020672BC + cmp r0, #0 + bne _0223918A + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_02007314 + ldr r0, [r4] + bl MOD81_02238830 + bl FUN_02005578 +_0223918A: + add r0, r4, #0 + add r0, #0x44 + mov r1, #0xf + bl FUN_02019620 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r3, [sp, #8] + add r0, r4, #0 + ldr r2, [r4, #0x58] + add r0, #0x44 + mov r1, #1 + bl FUN_0201BD84 + add r0, r4, #0 + add r0, #0x44 + bl FUN_02019548 + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _022391EE +_022391BE: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0x3c + ble _022391EE + add r0, r4, #0 + add r0, #0x44 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _022391EE +_022391DE: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0x14 + ble _022391EE + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022391EE: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD81_02239094 + + thumb_func_start MOD81_022391F4 +MOD81_022391F4: ; 0x022391F4 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + ldr r1, [r4] + add r5, r0, #0 + cmp r1, #4 + bhi _022392CE + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0223920E: ; jump table + .short _02239218 - _0223920E - 2 ; case 0 + .short _02239232 - _0223920E - 2 ; case 1 + .short _02239258 - _0223920E - 2 ; case 2 + .short _02239284 - _0223920E - 2 ; case 3 + .short _022392B6 - _0223920E - 2 ; case 4 +_02239218: + ldr r0, _022392D4 ; =0x000006A8 + bl FUN_020054C8 + add r0, r5, #0 + mov r1, #0 + mov r2, #0x10 + mov r3, #0xc + bl MOD81_022394BC + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _022392CE +_02239232: + bl MOD81_0223950C + cmp r0, #0 + beq _022392CE + ldr r0, [r5, #0x10] + bl FUN_02007534 + ldr r0, [r5, #0x2c] + mov r1, #0 + bl FUN_02020130 + ldr r0, [r5, #0x2c] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _022392CE +_02239258: + ldr r0, [r5, #0x2c] + bl FUN_02020388 + cmp r0, #0 + bne _022392CE + ldr r0, [r5, #0x60] + mov r1, #1 + bl MOD81_02238B58 + mov r1, #0x10 + add r0, r5, #0 + mov r2, #0 + add r3, r1, #0 + bl MOD81_022394BC + add r0, r5, #0 + bl MOD81_02239578 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _022392CE +_02239284: + bl MOD81_022395D4 + cmp r0, #2 + bge _02239296 + add r0, r5, #0 + bl MOD81_022395C4 + cmp r0, #1 + bne _022392CE +_02239296: + mov r0, #0x18 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _022392CE +_022392B6: + bl FUN_0200E308 + cmp r0, #0 + beq _022392CE + add r0, r5, #0 + bl MOD81_022395C4 + cmp r0, #0 + beq _022392CE + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_022392CE: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_022392D4: .word 0x000006A8 + thumb_func_end MOD81_022391F4 + + thumb_func_start MOD81_022392D8 +MOD81_022392D8: ; 0x022392D8 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + bl FUN_020BB7F4 + bl G3X_InitMtxStack + ldr r0, _02239380 ; =0x04000060 + ldr r2, _02239384 ; =0xFFFFCFFD + ldrh r1, [r0] + and r1, r2 + strh r1, [r0] + ldrh r3, [r0] + add r1, r2, #2 + and r3, r1 + mov r1, #0x10 + orr r1, r3 + strh r1, [r0] + ldrh r3, [r0] + ldr r1, _02239388 ; =0x0000CFFB + and r1, r3 + strh r1, [r0] + add r1, r2, #2 + ldrh r3, [r0] + lsr r2, r2, #0x11 + and r3, r1 + mov r1, #8 + orr r1, r3 + strh r1, [r0] + mov r0, #0 + add r1, r0, #0 + mov r3, #0x3f + str r0, [sp] + bl G3X_SetClearColor + ldr r1, _0223938C ; =0x04000540 + mov r0, #2 + str r0, [r1] + ldr r0, _02239390 ; =0xBFFF0000 + str r0, [r1, #0x40] + mov r0, #1 + add r1, r0, #0 + bl FUN_020AEB70 + mov r0, #1 + lsl r0, r0, #0xe + mov r1, #1 + bl FUN_020AEDF4 + ldr r3, _02239394 ; =0x021064B8 + mov r0, #1 + mov r1, #0 + ldr r3, [r3] + lsl r0, r0, #0xe + add r2, r1, #0 + blx r3 + ldr r3, _02239398 ; =0x021064C0 + add r4, r0, #0 + ldr r3, [r3] + mov r0, #0x80 + mov r1, #0 + mov r2, #1 + blx r3 + ldr r2, _0223939C ; =0x7FFF0000 + add r6, r0, #0 + and r2, r4 + lsl r1, r4, #0x10 + lsr r2, r2, #0x10 + ldr r0, [r5, #0xc] + lsr r1, r1, #0xd + lsl r2, r2, #4 + bl FUN_020081A8 + ldr r2, _022393A0 ; =0xFFFF0000 + lsl r1, r6, #0x10 + and r2, r6 + lsr r2, r2, #0x10 + ldr r0, [r5, #0xc] + lsr r1, r1, #0xd + lsl r2, r2, #3 + bl FUN_020081B4 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02239380: .word 0x04000060 +_02239384: .word 0xFFFFCFFD +_02239388: .word 0x0000CFFB +_0223938C: .word 0x04000540 +_02239390: .word 0xBFFF0000 +_02239394: .word 0x021064B8 +_02239398: .word 0x021064C0 +_0223939C: .word 0x7FFF0000 +_022393A0: .word 0xFFFF0000 + thumb_func_end MOD81_022392D8 + + thumb_func_start MOD81_022393A4 +MOD81_022393A4: ; 0x022393A4 + push {r3, r4, r5, lr} + sub sp, #0x20 + add r4, r0, #0 + ldr r0, [r4] + bl MOD81_02238818 + add r5, r0, #0 + add r0, sp, #0x10 + add r1, r5, #0 + mov r2, #2 + bl FUN_02068B70 + ldr r0, [r4] + bl MOD81_02238830 + add r1, r0, #0 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02069010 + add r0, r5, #0 + mov r1, #2 + bl FUN_02068E1C + add r3, r0, #0 + mov r1, #0 + str r1, [sp] + add r0, r4, #0 + str r1, [sp, #4] + add r0, #0x14 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [r4, #0xc] + add r3, #0x50 + add r1, sp, #0x10 + mov r2, #0x80 + bl FUN_020073A0 + add sp, #0x20 + pop {r3, r4, r5, pc} + thumb_func_end MOD81_022393A4 + + thumb_func_start MOD81_022393F4 +MOD81_022393F4: ; 0x022393F4 + push {r4, lr} + sub sp, #0x70 + add r4, r0, #0 + add r0, #0x30 + mov r1, #0x5d + mov r2, #7 + mov r3, #8 + bl MOD81_0223874C + add r0, sp, #0x5c + bl FUN_020B19DC + add r0, sp, #0x38 + bl FUN_020B1A24 + mov r3, #0 + str r3, [sp] + mov r2, #1 + str r2, [sp, #4] + str r3, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + add r0, sp, #0x38 + str r0, [sp, #0x10] + mov r0, #0x5d + mov r1, #9 + bl FUN_02006AE4 + mov r0, #0x3a + str r0, [sp] + add r0, sp, #0x5c + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #0xa + mov r2, #1 + mov r3, #0 + bl FUN_02006A8C + mov r0, #2 + add r1, r4, #0 + str r0, [sp] + add r0, sp, #0x14 + add r1, #0x30 + add r2, sp, #0x38 + add r3, sp, #0x5c + bl MOD81_022387A8 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + add r1, sp, #0x14 + mov r2, #0x80 + mov r3, #0x64 + bl MOD81_022387C8 + str r0, [r4, #0x28] + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + add r1, sp, #0x14 + mov r2, #0x80 + mov r3, #0x5a + bl MOD81_022387C8 + str r0, [r4, #0x2c] + mov r1, #1 + bl FUN_02020238 + ldr r0, [r4, #0x28] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4, #0x2c] + mov r1, #0 + bl FUN_020200A0 + add sp, #0x70 + pop {r4, pc} + thumb_func_end MOD81_022393F4 + + thumb_func_start MOD81_02239498 +MOD81_02239498: ; 0x02239498 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_022394A0: + ldr r0, [r5, #0x28] + cmp r0, #0 + beq _022394AA + bl FUN_0201FFC8 +_022394AA: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #2 + blt _022394A0 + add r6, #0x30 + add r0, r6, #0 + bl MOD81_02238784 + pop {r4, r5, r6, pc} + thumb_func_end MOD81_02239498 + + thumb_func_start MOD81_022394BC +MOD81_022394BC: ; 0x022394BC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x3a + mov r1, #0x14 + str r2, [sp] + add r7, r3, #0 + bl FUN_02016998 + add r4, r0, #0 + beq _02239502 + str r5, [r4] + lsl r0, r6, #0xc + str r0, [r4, #4] + ldr r0, [sp] + lsl r1, r0, #0xc + str r1, [r4, #8] + ldr r0, [r4, #4] + sub r0, r1, r0 + add r1, r7, #0 + bl _s32_div_f + str r0, [r4, #0xc] + ldr r0, _02239504 ; =MOD81_0223953C + str r7, [r4, #0x10] + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA60 + str r0, [r5, #0x64] + ldr r0, _02239508 ; =0x04000050 + mov r1, #1 + add r2, r6, #0 + bl G2x_SetBlendBrightness_ +_02239502: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02239504: .word MOD81_0223953C +_02239508: .word 0x04000050 + thumb_func_end MOD81_022394BC + + thumb_func_start MOD81_0223950C +MOD81_0223950C: ; 0x0223950C + ldr r0, [r0, #0x64] + cmp r0, #0 + bne _02239516 + mov r0, #1 + bx lr +_02239516: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD81_0223950C + + thumb_func_start MOD81_0223951C +MOD81_0223951C: ; 0x0223951C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x64] + cmp r0, #0 + beq _02239538 + bl FUN_0201B6C8 + bl MOD81_02238898 + ldr r0, [r4, #0x64] + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x64] +_02239538: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223951C + + thumb_func_start MOD81_0223953C +MOD81_0223953C: ; 0x0223953C + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #0x10] + sub r0, r0, #1 + str r0, [r4, #0x10] + cmp r0, #0 + ble _0223955E + ldr r1, [r4, #4] + ldr r0, [r4, #0xc] + add r2, r1, r0 + str r2, [r4, #4] + ldr r0, _02239574 ; =0x04000050 + mov r1, #1 + asr r2, r2, #0xc + bl G2x_SetBlendBrightness_ + pop {r4, pc} +_0223955E: + ldr r2, [r4, #8] + ldr r0, _02239574 ; =0x04000050 + mov r1, #1 + asr r2, r2, #0xc + bl G2x_SetBlendBrightness_ + ldr r0, [r4] + bl MOD81_0223951C + pop {r4, pc} + nop +_02239574: .word 0x04000050 + thumb_func_end MOD81_0223953C + + thumb_func_start MOD81_02239578 +MOD81_02239578: ; 0x02239578 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x3a + mov r1, #0x30 + bl FUN_02016998 + add r4, r0, #0 + beq _022395B8 + str r5, [r4] + ldr r0, [r5, #0x60] + add r1, r4, #0 + str r0, [r4, #4] + add r1, #8 + bl MOD81_02238B08 + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x14 + bl MOD81_02238B28 + ldr r0, _022395BC ; =0x00002F60 + mov r2, #0 + str r0, [r4, #0x1c] + str r2, [r4, #0x20] + strh r2, [r4, #0x2c] + str r2, [r4, #0x24] + ldr r0, _022395C0 ; =MOD81_02239608 + add r1, r4, #0 + str r2, [r4, #0x28] + bl FUN_0200CA44 + str r0, [r5, #0x68] +_022395B8: + pop {r3, r4, r5, pc} + nop +_022395BC: .word 0x00002F60 +_022395C0: .word MOD81_02239608 + thumb_func_end MOD81_02239578 + + thumb_func_start MOD81_022395C4 +MOD81_022395C4: ; 0x022395C4 + ldr r0, [r0, #0x68] + cmp r0, #0 + bne _022395CE + mov r0, #1 + bx lr +_022395CE: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD81_022395C4 + + thumb_func_start MOD81_022395D4 +MOD81_022395D4: ; 0x022395D4 + push {r3, lr} + ldr r0, [r0, #0x68] + cmp r0, #0 + beq _022395E4 + bl FUN_0201B6C8 + ldr r0, [r0, #0x20] + pop {r3, pc} +_022395E4: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD81_022395D4 + + thumb_func_start MOD81_022395E8 +MOD81_022395E8: ; 0x022395E8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x68] + cmp r0, #0 + beq _02239604 + bl FUN_0201B6C8 + bl FUN_02016A18 + ldr r0, [r4, #0x68] + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x68] +_02239604: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_022395E8 + + thumb_func_start MOD81_02239608 +MOD81_02239608: ; 0x02239608 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r0, [r4, #0x24] + cmp r0, #0 + bne _0223967C + ldr r1, [r4, #0xc] + ldr r0, [r4, #0x1c] + add r0, r1, r0 + str r0, [r4, #0xc] + ldr r1, [r4, #0x1c] + cmp r1, #0 + blt _0223962A + mov r0, #0x1e + lsl r0, r0, #6 + sub r0, r1, r0 + str r0, [r4, #0x1c] + b _0223967C +_0223962A: + mov r0, #0x1e + lsl r0, r0, #6 + sub r0, r1, r0 + str r0, [r4, #0x1c] + ldr r1, [r4, #0xc] + ldr r0, _022396E0 ; =0xFFFFC000 + cmp r1, r0 + bgt _0223967C + str r0, [r4, #0xc] + ldr r1, [r4, #0x1c] + mov r0, #0x2c + mul r0, r1 + mov r1, #0x64 + bl _s32_div_f + neg r1, r0 + mov r0, #0xfa + lsl r0, r0, #4 + str r1, [r4, #0x1c] + cmp r1, r0 + bge _02239658 + mov r0, #1 + str r0, [r4, #0x24] +_02239658: + ldr r0, _022396E4 ; =0x000005E6 + bl FUN_020054C8 + ldr r0, [r4, #0x20] + add r0, r0, #1 + str r0, [r4, #0x20] + cmp r0, #1 + beq _0223966E + cmp r0, #3 + beq _02239674 + b _0223967C +_0223966E: + mov r0, #0xb0 + strh r0, [r4, #0x2c] + b _0223967C +_02239674: + mov r0, #0x2c + ldrsh r0, [r4, r0] + add r0, #0x50 + strh r0, [r4, #0x2c] +_0223967C: + mov r0, #0x14 + mov r2, #0x2c + ldrsh r3, [r4, r0] + ldrsh r0, [r4, r2] + add r1, r4, #0 + add r1, #0x14 + add r0, r3, r0 + strh r0, [r4, #0x14] + mov r0, #0x18 + ldrsh r3, [r4, r0] + ldrsh r0, [r4, r2] + sub r0, r3, r0 + strh r0, [r4, #0x18] + ldr r0, [r4, #4] + bl MOD81_02238B40 + mov r2, #0x2c + ldrsh r3, [r4, r2] + ldr r5, [r4, #8] + add r1, r4, #0 + lsl r0, r3, #2 + add r0, r3, r0 + add r0, r5, r0 + str r0, [r4, #8] + ldrsh r2, [r4, r2] + ldr r3, [r4, #0x10] + add r1, #8 + lsl r0, r2, #2 + add r0, r2, r0 + add r0, r3, r0 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + bl MOD81_02238B18 + ldr r0, [r4, #0x24] + cmp r0, #0 + beq _022396DE + mov r0, #0x2c + ldrsh r0, [r4, r0] + sub r0, #0xe + strh r0, [r4, #0x2c] + ldr r0, [r4, #0x28] + add r0, r0, #1 + str r0, [r4, #0x28] + cmp r0, #0x1e + ble _022396DE + ldr r0, [r4] + bl MOD81_022395E8 +_022396DE: + pop {r3, r4, r5, pc} + .align 2, 0 +_022396E0: .word 0xFFFFC000 +_022396E4: .word 0x000005E6 + thumb_func_end MOD81_02239608 + + thumb_func_start MOD81_022396E8 +MOD81_022396E8: ; 0x022396E8 + push {r3, r4, r5, lr} + mov r1, #0x5b + add r5, r0, #0 + mov r0, #0x3a + lsl r1, r1, #2 + bl FUN_02016998 + add r4, r0, #0 + beq _0223974A + str r5, [r4] + mov r0, #0 + str r0, [r4, #4] + add r0, r5, #0 + bl MOD81_0223880C + add r1, r4, #0 + add r1, #0xc0 + str r0, [r1] + add r0, r4, #0 + mov r1, #0 + add r0, #0xd4 + str r1, [r0] + add r0, r4, #0 + add r0, #0xc4 + str r1, [r0] + add r0, r4, #0 + add r0, #0xcc + str r1, [r0] + mov r0, #0x16 + lsl r0, r0, #4 + str r1, [r4, r0] + add r0, r0, #4 + str r1, [r4, r0] + bl FUN_0201BA60 + add r1, r4, #0 + add r1, #0xbc + str r0, [r1] + add r0, r4, #0 + mov r2, #0 + add r0, #0xd0 + str r2, [r0] + mov r0, #0x5a + lsl r0, r0, #2 + str r2, [r4, r0] + ldr r0, _02239750 ; =MOD81_02239F58 + add r1, r4, #0 + bl FUN_0200CA98 +_0223974A: + add r0, r4, #0 + pop {r3, r4, r5, pc} + nop +_02239750: .word MOD81_02239F58 + thumb_func_end MOD81_022396E8 + + thumb_func_start MOD81_02239754 +MOD81_02239754: ; 0x02239754 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl OS_DisableInterrupts + add r4, r0, #0 + cmp r5, #0 + beq _022397A0 + add r0, r5, #0 + bl MOD81_02239C94 + add r0, r5, #0 + bl MOD81_02239DF0 + add r0, r5, #0 + bl MOD81_02239F1C + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + cmp r0, #0 + beq _02239782 + bl FUN_0200CAB4 +_02239782: + mov r0, #0x59 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0 + beq _02239790 + bl MOD81_0223A1FC +_02239790: + add r0, r5, #0 + add r0, #0xbc + ldr r0, [r0] + bl FUN_0201BA1C + add r0, r5, #0 + bl FUN_02016A18 +_022397A0: + add r0, r4, #0 + bl OS_RestoreInterrupts + pop {r3, r4, r5, pc} + thumb_func_end MOD81_02239754 + + thumb_func_start MOD81_022397A8 +MOD81_022397A8: ; 0x022397A8 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r2, [r4] + add r5, r0, #0 + cmp r2, #4 + bhs _022397D6 + lsl r3, r2, #2 + ldr r2, _022397DC ; =0x0223D094 + add r1, r5, #4 + ldr r2, [r2, r3] + blx r2 + cmp r0, #0 + beq _022397CC + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + mov r0, #0 + str r0, [r5, #4] +_022397CC: + add r0, r5, #0 + bl MOD81_022397E0 + mov r0, #0 + pop {r3, r4, r5, pc} +_022397D6: + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_022397DC: .word 0x0223D094 + thumb_func_end MOD81_022397A8 + + thumb_func_start MOD81_022397E0 +MOD81_022397E0: ; 0x022397E0 + push {r4, lr} + add r4, r0, #0 + add r0, #0xd4 + ldr r0, [r0] + cmp r0, #0 + beq _02239800 + bl G3X_ResetMtxStack + add r4, #0xd4 + ldr r0, [r4] + bl MOD81_02238940 + mov r0, #0 + add r1, r0, #0 + bl FUN_020222B4 +_02239800: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_022397E0 + + thumb_func_start MOD81_02239804 +MOD81_02239804: ; 0x02239804 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD81_022399FC + add r0, r4, #0 + bl MOD81_02239CDC + add r0, r4, #0 + bl MOD81_02239E00 + mov r0, #8 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #1 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD81_02239804 + + thumb_func_start MOD81_02239838 +MOD81_02239838: ; 0x02239838 + push {r4, lr} + add r4, r1, #0 + ldr r1, [r4] + cmp r1, #0 + beq _02239848 + cmp r1, #1 + beq _0223985E + b _02239876 +_02239848: + bl FUN_0200E308 + cmp r0, #0 + beq _02239876 + ldr r0, _0223987C ; =0x0223D444 + mov r1, #0 + str r1, [r0] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _02239876 +_0223985E: + ldr r1, _0223987C ; =0x0223D444 + ldr r2, [r1] + cmp r2, #0x1e + bge _0223986A + add r2, r2, #1 + str r2, [r1] +_0223986A: + add r0, #0xd0 + ldr r0, [r0] + cmp r0, #0 + beq _02239876 + mov r0, #1 + pop {r4, pc} +_02239876: + mov r0, #0 + pop {r4, pc} + nop +_0223987C: .word 0x0223D444 + thumb_func_end MOD81_02239838 + + thumb_func_start MOD81_02239880 +MOD81_02239880: ; 0x02239880 + push {r3, r4, r5, lr} + add r5, r1, #0 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #4 + bhi _02239926 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02239898: ; jump table + .short _022398A2 - _02239898 - 2 ; case 0 + .short _022398AE - _02239898 - 2 ; case 1 + .short _022398F2 - _02239898 - 2 ; case 2 + .short _02239908 - _02239898 - 2 ; case 3 + .short _0223991E - _02239898 - 2 ; case 4 +_022398A2: + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _02239926 +_022398AE: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #8 + ble _02239926 + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + mov r1, #0 + mov r2, #0x1f + mov r3, #0x18 + bl MOD81_0223A228 + add r0, r4, #0 + bl MOD81_0223A2AC + mov r1, #0x16 + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r4, #0 + add r0, #0xd8 + ldr r0, [r0] + mov r1, #0 + bl MOD81_02238B5C + add r4, #0xd8 + ldr r0, [r4] + mov r1, #1 + bl MOD81_02238B58 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _02239926 +_022398F2: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl MOD81_0223A658 + cmp r0, #0 + beq _02239926 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _02239926 +_02239908: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl MOD81_0223A64C + cmp r0, #0 + beq _02239926 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _02239926 +_0223991E: + bl MOD81_02239F4C + mov r0, #1 + pop {r3, r4, r5, pc} +_02239926: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD81_02239880 + + thumb_func_start MOD81_0223992C +MOD81_0223992C: ; 0x0223992C + push {r4, r5, lr} + sub sp, #0xc + add r5, r1, #0 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #4 + bhi _022399F2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02239946: ; jump table + .short _02239950 - _02239946 - 2 ; case 0 + .short _02239966 - _02239946 - 2 ; case 1 + .short _02239984 - _02239946 - 2 ; case 2 + .short _022399A0 - _02239946 - 2 ; case 3 + .short _022399E4 - _02239946 - 2 ; case 4 +_02239950: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl MOD81_0223A664 + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _022399F2 +_02239966: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #2 + ble _022399F2 + mov r0, #0 + str r0, [r4, #8] + add r4, #0xc4 + ldr r0, [r4] + bl MOD81_022381EC + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _022399F2 +_02239984: + add r1, r4, #0 + add r1, #0xc8 + ldr r1, [r1] + cmp r1, #0 + bne _022399F2 + mov r1, #0x59 + lsl r1, r1, #2 + add r1, r4, r1 + bl MOD81_0223A104 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _022399F2 +_022399A0: + ldr r0, [r4, #8] + cmp r0, #0x28 + bge _022399B6 + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0x28 + bne _022399B6 + mov r0, #0x6b + lsl r0, r0, #4 + bl FUN_020054C8 +_022399B6: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl MOD81_0223A64C + cmp r0, #0 + beq _022399F2 + mov r0, #4 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0 + ldr r3, _022399F8 ; =0x00007FFF + add r1, r0, #0 + add r2, r0, #0 + bl FUN_0200E1D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _022399F2 +_022399E4: + bl FUN_0200E308 + cmp r0, #0 + beq _022399F2 + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_022399F2: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_022399F8: .word 0x00007FFF + thumb_func_end MOD81_0223992C + + thumb_func_start MOD81_022399FC +MOD81_022399FC: ; 0x022399FC + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, _02239C78 ; =0x0223D0EC + bl FUN_0201E66C + ldr r2, _02239C7C ; =0x04000304 + ldr r0, _02239C80 ; =0xFFFF7FFF + ldrh r1, [r2] + and r0, r1 + strh r0, [r2] + ldr r0, _02239C84 ; =0x0223D084 + bl FUN_02016BBC + add r0, r4, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r2, _02239C88 ; =0x0223D0B4 + mov r1, #2 + mov r3, #1 + bl FUN_02016C18 + add r0, r4, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r2, _02239C88 ; =0x0223D0B4 + mov r1, #6 + mov r3, #1 + bl FUN_02016C18 + bl OS_DisableInterrupts + add r5, r0, #0 + add r0, r4, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r2, _02239C8C ; =0x0223D0D0 + mov r1, #3 + mov r3, #2 + bl FUN_02016C18 + add r0, r4, #0 + add r0, #0xc0 + ldr r0, [r0] + ldr r2, _02239C8C ; =0x0223D0D0 + mov r1, #7 + mov r3, #2 + bl FUN_02016C18 + add r0, r5, #0 + bl OS_RestoreInterrupts + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + add r2, r4, #0 + str r0, [sp, #0xc] + add r2, #0xc0 + mov r1, #2 + ldr r2, [r2] + mov r0, #0x5d + add r3, r1, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + add r2, r4, #0 + str r0, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + mov r0, #0x5d + mov r1, #2 + mov r3, #6 + bl FUN_0200687C + mov r1, #0 + str r1, [sp] + add r2, r4, #0 + str r1, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + mov r0, #0x5d + mov r3, #2 + bl FUN_020068C8 + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + add r2, r4, #0 + str r0, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + mov r0, #0x5d + mov r3, #6 + bl FUN_020068C8 + ldr r0, [r4] + bl MOD81_02238828 + add r5, r0, #0 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3a + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #3 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3a + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #3 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + ldr r0, _02239C90 ; =0x0223D07C + lsl r1, r5, #1 + ldrh r5, [r0, r1] + mov r0, #0x20 + str r0, [sp] + mov r0, #0x40 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0x5d + mov r1, #3 + mov r2, #0 + add r3, r5, #0 + bl FUN_02006948 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x40 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0x5d + mov r1, #3 + mov r2, #4 + add r3, r5, #0 + bl FUN_02006948 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + add r2, r4, #0 + str r0, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + mov r0, #0x5d + mov r1, #5 + mov r3, #3 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + add r2, r4, #0 + str r0, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + mov r0, #0x5d + mov r1, #5 + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + add r2, r4, #0 + str r0, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + mov r0, #0x5d + mov r1, #4 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + add r2, r4, #0 + str r0, [sp, #0xc] + add r2, #0xc0 + ldr r2, [r2] + mov r0, #0x5d + mov r1, #4 + mov r3, #7 + bl FUN_020068C8 + mov r0, #0x3a + mov r1, #0x60 + bl FUN_02016998 + add r5, r0, #0 + beq _02239C02 + mov r0, #0 + add r1, r5, #0 + mov r2, #0x60 + bl MIi_CpuClear32 + add r0, r5, #0 + mov r1, #0x60 + bl DC_FlushRange + bl GX_BeginLoadBGExtPltt + bl GXS_BeginLoadBGExtPltt + mov r1, #6 + add r0, r5, #0 + lsl r1, r1, #0xc + mov r2, #0x60 + bl GX_LoadBGExtPltt + mov r1, #6 + add r0, r5, #0 + lsl r1, r1, #0xc + mov r2, #0x60 + bl GXS_LoadBGExtPltt + bl GX_EndLoadBGExtPltt + bl GXS_EndLoadBGExtPltt + add r0, r5, #0 + bl FUN_02016A18 +_02239C02: + add r0, r4, #0 + add r0, #0xc0 + mov r3, #0xff + ldr r0, [r0] + mov r1, #6 + mov r2, #3 + mvn r3, r3 + bl FUN_020179E0 + mov r0, #7 + mov r1, #0 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add r0, r4, #0 + add r0, #0xc0 + mov r1, #3 + ldr r0, [r0] + add r2, r1, #0 + mov r3, #0 + bl FUN_020179E0 + add r0, r4, #0 + add r0, #0xc8 + mov r1, #1 + bl MOD81_02238118 + add r1, r4, #0 + add r1, #0xc4 + str r0, [r1] + mov r0, #0x4a + lsl r0, r0, #2 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0xd0 + str r0, [sp, #8] + add r0, r4, #0 + add r0, #0xc0 + mov r1, #0x12 + mov r2, #1 + ldr r0, [r0] + lsl r1, r1, #6 + lsl r2, r2, #0xc + mov r3, #1 + bl MOD81_022384AC + add r4, #0xcc + str r0, [r4] + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_02239C78: .word 0x0223D0EC +_02239C7C: .word 0x04000304 +_02239C80: .word 0xFFFF7FFF +_02239C84: .word 0x0223D084 +_02239C88: .word 0x0223D0B4 +_02239C8C: .word 0x0223D0D0 +_02239C90: .word 0x0223D07C + thumb_func_end MOD81_022399FC + + thumb_func_start MOD81_02239C94 +MOD81_02239C94: ; 0x02239C94 + push {r4, lr} + add r4, r0, #0 + add r0, #0xc8 + ldr r0, [r0] + cmp r0, #0 + beq _02239CAA + add r0, r4, #0 + add r0, #0xc4 + ldr r0, [r0] + bl MOD81_02238200 +_02239CAA: + add r0, r4, #0 + add r0, #0xc0 + ldr r0, [r0] + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + add r0, #0xc0 + ldr r0, [r0] + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + add r0, #0xc0 + ldr r0, [r0] + mov r1, #3 + bl FUN_020178A0 + add r4, #0xc0 + ldr r0, [r4] + mov r1, #7 + bl FUN_020178A0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_02239C94 + + thumb_func_start MOD81_02239CDC +MOD81_02239CDC: ; 0x02239CDC + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + bl FUN_020BB7F4 + bl G3X_InitMtxStack + ldr r0, _02239DBC ; =0x04000060 + ldr r1, _02239DC0 ; =0xFFFFCFFD + ldrh r2, [r0] + and r2, r1 + strh r2, [r0] + ldrh r3, [r0] + add r2, r1, #2 + and r3, r2 + mov r2, #0x10 + orr r2, r3 + strh r2, [r0] + ldrh r3, [r0] + ldr r2, _02239DC4 ; =0x0000CFFB + and r2, r3 + strh r2, [r0] + add r2, r1, #2 + ldrh r3, [r0] + add r1, r1, #2 + and r3, r2 + mov r2, #8 + orr r2, r3 + strh r2, [r0] + ldrh r2, [r0] + and r2, r1 + mov r1, #0x20 + orr r1, r2 + strh r1, [r0] + ldr r0, _02239DC8 ; =0x0223D0A4 + bl G3X_SetEdgeColorTable + mov r1, #0 + ldr r0, _02239DCC ; =0x000043FF + ldr r2, _02239DD0 ; =0x00007FFF + mov r3, #0x3f + str r1, [sp] + bl G3X_SetClearColor + ldr r1, _02239DD4 ; =0x04000540 + mov r0, #2 + str r0, [r1] + ldr r0, _02239DD8 ; =0xBFFF0000 + str r0, [r1, #0x40] + mov r0, #1 + add r1, r0, #0 + bl FUN_020AEB70 + mov r0, #1 + lsl r0, r0, #0xe + mov r1, #1 + bl FUN_020AEDF4 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r1, _02239DDC ; =0x04000008 + mov r0, #3 + ldrh r2, [r1] + bic r2, r0 + strh r2, [r1] + mov r1, #0 + mov r0, #1 + add r2, r1, #0 + add r3, r1, #0 + bl MOD81_022388C0 + add r1, r4, #0 + add r1, #0xd4 + str r0, [r1] + mov r1, #0 + ldr r0, _02239DE0 ; =0xFFFC8800 + str r1, [sp] + str r0, [sp, #4] + str r1, [sp, #8] + add r0, r4, #0 + str r1, [sp, #0xc] + add r0, #0xd4 + ldr r0, [r0] + mov r2, #0x5d + mov r3, #0x1b + bl MOD81_02238A84 + add r1, r4, #0 + add r1, #0xd8 + str r0, [r1] + ldr r1, _02239DE4 ; =0x0000EBE0 + ldr r0, _02239DE8 ; =0x0223D444 + strh r1, [r0, #4] + mov r1, #0 + strh r1, [r0, #6] + strh r1, [r0, #8] + add r0, r4, #0 + add r0, #0xd4 + ldr r0, [r0] + ldr r1, _02239DEC ; =0x0223D448 + bl MOD81_02238C60 + add r4, #0xd8 + mov r1, #7 + ldr r0, [r4] + lsl r1, r1, #0xa + bl MOD81_02238B84 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02239DBC: .word 0x04000060 +_02239DC0: .word 0xFFFFCFFD +_02239DC4: .word 0x0000CFFB +_02239DC8: .word 0x0223D0A4 +_02239DCC: .word 0x000043FF +_02239DD0: .word 0x00007FFF +_02239DD4: .word 0x04000540 +_02239DD8: .word 0xBFFF0000 +_02239DDC: .word 0x04000008 +_02239DE0: .word 0xFFFC8800 +_02239DE4: .word 0x0000EBE0 +_02239DE8: .word 0x0223D444 +_02239DEC: .word 0x0223D448 + thumb_func_end MOD81_02239CDC + + thumb_func_start MOD81_02239DF0 +MOD81_02239DF0: ; 0x02239DF0 + push {r3, lr} + add r0, #0xd4 + ldr r0, [r0] + cmp r0, #0 + beq _02239DFE + bl MOD81_0223890C +_02239DFE: + pop {r3, pc} + thumb_func_end MOD81_02239DF0 + + thumb_func_start MOD81_02239E00 +MOD81_02239E00: ; 0x02239E00 + push {r4, r5, r6, r7, lr} + sub sp, #0x74 + add r7, r0, #0 + add r0, #0xc + mov r1, #0x5d + mov r2, #0xb + mov r3, #0xc + bl MOD81_0223874C + add r0, sp, #0x60 + bl FUN_020B19DC + add r0, sp, #0x3c + bl FUN_020B1A24 + mov r3, #0 + str r3, [sp] + mov r2, #1 + str r2, [sp, #4] + str r3, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + add r0, sp, #0x3c + str r0, [sp, #0x10] + mov r0, #0x5d + mov r1, #0xd + bl FUN_02006AE4 + mov r3, #0 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + str r3, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + add r0, sp, #0x3c + str r0, [sp, #0x10] + mov r0, #0x5d + mov r1, #0xd + mov r2, #1 + bl FUN_02006AE4 + mov r0, #0x3a + str r0, [sp] + add r0, sp, #0x60 + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #0xe + mov r2, #1 + mov r3, #0 + bl FUN_02006A8C + mov r0, #0x3a + str r0, [sp] + add r0, sp, #0x60 + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #0xe + mov r2, #2 + mov r3, #0 + bl FUN_02006A8C + mov r0, #1 + add r1, r7, #0 + str r0, [sp] + add r0, sp, #0x18 + add r1, #0xc + add r2, sp, #0x3c + add r3, sp, #0x60 + bl MOD81_022387A8 + ldr r0, _02239F18 ; =0x035947D1 + bl FUN_0201BA1C + mov r0, #0 + str r0, [sp, #0x14] + add r4, r7, #0 +_02239E9A: + bl FUN_0201BA60 + mov r1, #0xe8 + bl _u32_div_f + add r6, r1, #0 + add r6, #0xc + bl FUN_0201BA60 + mov r1, #0x71 + lsl r1, r1, #2 + bl _u32_div_f + add r5, r1, #0 + mov r0, #0 + str r0, [sp] + mov r0, #1 + sub r5, #0x1c + str r0, [sp, #4] + ldr r0, [r7] + add r1, sp, #0x18 + add r2, r6, #0 + add r3, r5, #0 + bl MOD81_022387C8 + str r0, [r4, #0x1c] + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + add r5, #0x38 + ldr r0, [r7] + add r1, sp, #0x18 + add r2, r6, #0 + add r3, r5, #0 + bl MOD81_022387C8 + str r0, [r4, #0x20] + ldr r0, [r4, #0x1c] + mov r1, #0 + bl FUN_02020130 + ldr r0, [r4, #0x20] + mov r1, #1 + bl FUN_02020130 + ldr r0, [r4, #0x1c] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4, #0x20] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [sp, #0x14] + add r4, #8 + add r0, r0, #1 + str r0, [sp, #0x14] + cmp r0, #0x14 + blt _02239E9A + add sp, #0x74 + pop {r4, r5, r6, r7, pc} + nop +_02239F18: .word 0x035947D1 + thumb_func_end MOD81_02239E00 + + thumb_func_start MOD81_02239F1C +MOD81_02239F1C: ; 0x02239F1C + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_02239F24: + ldr r0, [r5, #0x1c] + cmp r0, #0 + beq _02239F2E + bl FUN_0201FFC8 +_02239F2E: + ldr r0, [r5, #0x20] + cmp r0, #0 + beq _02239F38 + bl FUN_0201FFC8 +_02239F38: + add r4, r4, #1 + add r5, #8 + cmp r4, #0x14 + blt _02239F24 + add r6, #0xc + add r0, r6, #0 + bl MOD81_02238784 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD81_02239F1C + + thumb_func_start MOD81_02239F4C +MOD81_02239F4C: ; 0x02239F4C + mov r1, #0x5a + mov r2, #1 + lsl r1, r1, #2 + str r2, [r0, r1] + bx lr + .align 2, 0 + thumb_func_end MOD81_02239F4C + + thumb_func_start MOD81_02239F58 +MOD81_02239F58: ; 0x02239F58 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x5a + add r4, r1, #0 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #0 + beq _02239FAC + mov r1, #0 + str r1, [r4, r0] + add r0, r4, #0 + add r0, #0xc0 + mov r3, #0xff + ldr r0, [r0] + mov r1, #2 + mov r2, #3 + mvn r3, r3 + bl FUN_020179E0 + add r4, #0xc0 + ldr r0, [r4] + mov r1, #6 + mov r2, #3 + mov r3, #0 + bl FUN_020179E0 + mov r0, #3 + mov r1, #0 + bl FUN_0201797C + mov r0, #7 + mov r1, #1 + bl FUN_0201797C + ldr r2, _02239FB0 ; =0x04000304 + ldrh r1, [r2] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2] + add r0, r5, #0 + bl FUN_0200CAB4 +_02239FAC: + pop {r3, r4, r5, pc} + nop +_02239FB0: .word 0x04000304 + thumb_func_end MOD81_02239F58 + + thumb_func_start MOD81_02239FB4 +MOD81_02239FB4: ; 0x02239FB4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + str r5, [r2, #4] + add r0, r2, #0 + str r1, [r0] + mov r1, #0x52 + mov r7, #0 + lsl r1, r1, #2 + str r7, [r0, r1] + add r1, r1, #4 + str r2, [sp] + str r7, [r0, r1] + add r4, r2, #0 + add r6, r2, #0 +_02239FD0: + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r5, #0x1c] + bl FUN_0202011C + add r2, r6, #0 + add r3, r0, #0 + ldmia r3!, {r0, r1} + add r2, #0x58 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r7, r7, #1 + str r0, [r2] + add r4, r4, #4 + add r5, #8 + add r6, #0xc + cmp r7, #0x14 + blt _02239FD0 + ldr r0, _0223A018 ; =MOD81_0223A01C + ldr r1, [sp] + mov r2, #0 + bl FUN_0200CA44 + ldr r1, [sp] + ldr r1, [r1] + str r0, [r1] + ldr r0, [sp] + ldr r0, [r0] + ldr r0, [r0] + cmp r0, #0 + bne _0223A014 + ldr r0, [sp] + bl FUN_02016A18 +_0223A014: + pop {r3, r4, r5, r6, r7, pc} + nop +_0223A018: .word MOD81_0223A01C + thumb_func_end MOD81_02239FB4 + + thumb_func_start MOD81_0223A01C +MOD81_0223A01C: ; 0x0223A01C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r1, #0 + mov r1, #0x52 + lsl r1, r1, #2 + ldr r0, [r6, r1] + add r0, r0, #1 + str r0, [r6, r1] + ldr r0, [r6, r1] + cmp r0, #0xc + ble _0223A050 + mov r0, #0 + str r0, [r6, r1] + add r0, r1, #4 + ldr r0, [r6, r0] + cmp r0, #0x14 + bge _0223A050 + lsl r0, r0, #2 + mov r2, #1 + add r0, r6, r0 + str r2, [r0, #8] + add r0, r1, #4 + ldr r0, [r6, r0] + add r2, r0, #1 + add r0, r1, #4 + str r2, [r6, r0] +_0223A050: + mov r0, #0 + add r7, r6, #0 + str r0, [sp, #4] + add r5, r6, #0 + str r6, [sp] + add r4, r0, #0 + add r7, #0x58 +_0223A05E: + mov r1, #0x21 + ldr r2, [r5, #0x5c] + lsl r1, r1, #0xc + add r2, r2, r1 + mov r1, #0x6a + add r0, r5, #0 + lsl r1, r1, #0xe + add r0, #0x5c + str r2, [r5, #0x5c] + cmp r2, r1 + blt _0223A09E + mov r1, #0x71 + ldr r2, [r0] + lsl r1, r1, #0xe + sub r1, r2, r1 + str r1, [r0] + ldr r0, [sp] + ldr r0, [r0, #8] + cmp r0, #0 + beq _0223A09E + ldr r0, [r6, #4] + mov r1, #1 + add r0, r0, r4 + ldr r0, [r0, #0x1c] + bl FUN_020200A0 + ldr r0, [r6, #4] + mov r1, #1 + add r0, r0, r4 + ldr r0, [r0, #0x20] + bl FUN_020200A0 +_0223A09E: + ldr r0, [r6, #4] + add r1, r7, #0 + add r0, r0, r4 + ldr r0, [r0, #0x1c] + bl FUN_02020044 + add r2, r5, #0 + add r2, #0x58 + add r3, sp, #8 + ldmia r2!, {r0, r1} + mov ip, r3 + stmia r3!, {r0, r1} + ldr r0, [r2] + str r0, [r3] + mov r0, #0xe + ldr r1, [sp, #0xc] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0xc] + ldr r0, [r6, #4] + mov r1, ip + add r0, r0, r4 + ldr r0, [r0, #0x20] + bl FUN_02020044 + ldr r0, [sp] + add r5, #0xc + add r0, r0, #4 + str r0, [sp] + ldr r0, [sp, #4] + add r4, #8 + add r0, r0, #1 + add r7, #0xc + str r0, [sp, #4] + cmp r0, #0x14 + blt _0223A05E + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD81_0223A01C + + thumb_func_start MOD81_0223A0EC +MOD81_0223A0EC: ; 0x0223A0EC + push {r4, lr} + add r4, r0, #0 + beq _0223A102 + bl FUN_0201B6C8 + ldr r0, [r0] + mov r1, #0 + str r1, [r0] + add r0, r4, #0 + bl FUN_0200CAB4 +_0223A102: + pop {r4, pc} + thumb_func_end MOD81_0223A0EC + + thumb_func_start MOD81_0223A104 +MOD81_0223A104: ; 0x0223A104 + push {r4, r5, r6, lr} + add r5, r1, #0 + mov r1, #0x17 + add r6, r0, #0 + mov r0, #0x3a + lsl r1, r1, #4 + bl FUN_02016998 + add r4, r0, #0 + beq _0223A170 + str r6, [r4] + add r6, #0xc0 + mov r0, #0x55 + ldr r1, [r6] + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, [r4, r0] + mov r1, #2 + bl FUN_02017B54 + lsl r1, r0, #0xc + mov r0, #0x56 + lsl r0, r0, #2 + str r1, [r4, r0] + sub r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #6 + bl FUN_02017B54 + mov r1, #0x57 + lsl r0, r0, #0xc + lsl r1, r1, #2 + str r0, [r4, r1] + mov r2, #0 + add r0, r1, #4 + str r2, [r4, r0] + add r0, r1, #0 + add r0, #8 + str r2, [r4, r0] + add r0, r1, #0 + add r0, #0xc + str r5, [r4, r0] + add r1, #0x10 + str r2, [r4, r1] + ldr r0, _0223A174 ; =MOD81_0223A178 + add r1, r4, #0 + bl FUN_0200CA60 + str r0, [r5] + cmp r0, #0 + bne _0223A170 + add r0, r4, #0 + bl FUN_02016A18 +_0223A170: + pop {r4, r5, r6, pc} + nop +_0223A174: .word MOD81_0223A178 + thumb_func_end MOD81_0223A104 + + thumb_func_start MOD81_0223A178 +MOD81_0223A178: ; 0x0223A178 + push {r4, r5, r6, lr} + mov r3, #0x59 + add r4, r1, #0 + lsl r3, r3, #2 + mov r0, #2 + ldr r1, [r4, r3] + lsl r0, r0, #0x14 + cmp r1, r0 + bge _0223A1FA + sub r0, r3, #4 + ldr r1, [r4, r0] + add r0, r3, #0 + sub r0, #0x44 + add r1, r1, r0 + sub r0, r3, #4 + str r1, [r4, r0] + add r5, r3, #0 + ldr r1, [r4, r3] + ldr r0, [r4, r0] + sub r5, #0xc + add r0, r1, r0 + str r0, [r4, r3] + add r0, r3, #0 + sub r0, #0x10 + ldr r5, [r4, r5] + ldr r3, [r4, r3] + ldr r0, [r4, r0] + sub r3, r5, r3 + mov r1, #2 + mov r2, #3 + asr r3, r3, #0xc + bl FUN_020179E0 + mov r5, #0x55 + lsl r5, r5, #2 + add r3, r5, #0 + ldr r0, [r4, r5] + add r3, #8 + add r5, #0x10 + ldr r6, [r4, r3] + ldr r3, [r4, r5] + mov r1, #6 + sub r3, r6, r3 + mov r2, #3 + asr r3, r3, #0xc + bl FUN_020179E0 + mov r1, #0x59 + lsl r1, r1, #2 + mov r0, #2 + ldr r2, [r4, r1] + lsl r0, r0, #0x12 + cmp r2, r0 + blt _0223A1FA + add r0, r1, #0 + add r0, #8 + ldr r0, [r4, r0] + cmp r0, #0 + bne _0223A1FA + add r1, #8 + ldr r0, [r4] + add r1, r4, r1 + add r2, r4, #4 + bl MOD81_02239FB4 +_0223A1FA: + pop {r4, r5, r6, pc} + thumb_func_end MOD81_0223A178 + + thumb_func_start MOD81_0223A1FC +MOD81_0223A1FC: ; 0x0223A1FC + push {r3, r4, r5, lr} + add r5, r0, #0 + beq _0223A226 + bl FUN_0201B6C8 + add r4, r0, #0 + mov r0, #0x5a + lsl r0, r0, #2 + ldr r1, [r4, r0] + mov r2, #0 + str r2, [r1] + add r0, r0, #4 + ldr r0, [r4, r0] + bl MOD81_0223A0EC + add r0, r4, #0 + bl FUN_02016A18 + add r0, r5, #0 + bl FUN_0200CAB4 +_0223A226: + pop {r3, r4, r5, pc} + thumb_func_end MOD81_0223A1FC + + thumb_func_start MOD81_0223A228 +MOD81_0223A228: ; 0x0223A228 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + add r5, r1, #0 + mov r0, #0x3a + mov r1, #0x14 + add r7, r2, #0 + add r6, r3, #0 + bl FUN_02016998 + add r4, r0, #0 + beq _0223A268 + lsl r0, r5, #0xc + str r0, [r4] + lsl r1, r7, #0xc + str r1, [r4, #8] + ldr r0, [r4] + sub r0, r1, r0 + add r1, r6, #0 + bl _s32_div_f + str r0, [r4, #4] + ldr r0, [sp] + str r6, [r4, #0xc] + add r1, r5, #0 + str r0, [r4, #0x10] + bl MOD81_02238B5C + ldr r0, _0223A26C ; =MOD81_0223A270 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 +_0223A268: + pop {r3, r4, r5, r6, r7, pc} + nop +_0223A26C: .word MOD81_0223A270 + thumb_func_end MOD81_0223A228 + + thumb_func_start MOD81_0223A270 +MOD81_0223A270: ; 0x0223A270 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0xc] + sub r0, r0, #1 + str r0, [r4, #0xc] + cmp r0, #0 + ble _0223A292 + ldr r1, [r4] + ldr r0, [r4, #4] + add r1, r1, r0 + str r1, [r4] + ldr r0, [r4, #0x10] + asr r1, r1, #0xc + bl MOD81_02238B5C + pop {r3, r4, r5, pc} +_0223A292: + ldr r1, [r4, #8] + ldr r0, [r4, #0x10] + asr r1, r1, #0xc + bl MOD81_02238B5C + add r0, r4, #0 + bl FUN_02016A18 + add r0, r5, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD81_0223A270 + + thumb_func_start MOD81_0223A2AC +MOD81_0223A2AC: ; 0x0223A2AC + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r5, #0 + add r4, #0xdc + add r0, #0xd8 + add r1, r4, #0 + ldr r0, [r0] + add r1, #8 + bl MOD81_02238B08 + add r0, r5, #0 + add r0, #0xd8 + add r1, r4, #0 + ldr r0, [r0] + add r1, #0x20 + bl MOD81_02238B28 + add r3, r4, #0 + add r3, #8 + add r2, r4, #0 + ldmia r3!, {r0, r1} + add r2, #0x14 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + add r0, r5, #0 + add r0, #0xd4 + ldr r0, [r0] + str r0, [r4, #4] + add r0, r5, #0 + add r0, #0xd8 + ldr r0, [r0] + add r5, #0xdc + str r0, [r5] + ldr r0, [r4, #0xc] + str r0, [r4, #0x28] + ldr r1, [r4, #0xc] + ldr r0, _0223A37C ; =0xFFFF8000 + sub r0, r0, r1 + mov r1, #0x1e + bl _s32_div_f + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r2, #1 + mov r1, #0x1e + add r0, #0x80 + str r1, [r0] + mov r1, #0 + str r1, [r4, #0x38] + str r1, [r4, #0x3c] + str r1, [r4, #0x40] + add r0, r4, #0 + str r1, [r4, #0x44] + add r0, #0x54 + strh r1, [r0] + add r0, r4, #0 + lsl r2, r2, #0xe + add r0, #0x56 + strh r2, [r0] + add r0, r4, #0 + add r0, #0x5a + strh r1, [r0] + str r1, [r4, #0x7c] + add r2, r4, #0 + add r0, r1, #0 +_0223A330: + add r3, r2, #0 + add r3, #0x5c + strh r0, [r3] + add r3, r2, #0 + add r3, #0x5e + strh r0, [r3] + add r3, r2, #0 + add r3, #0x60 + strh r0, [r3] + add r3, r2, #0 + add r3, #0x62 + add r1, r1, #1 + add r2, #8 + strh r0, [r3] + cmp r1, #3 + blt _0223A330 + mov r1, #0xd + str r0, [r4, #0x78] + add r0, r4, #0 + lsl r1, r1, #8 + mov r2, #0x1e + bl MOD81_0223A384 + mov r1, #0x29 + mov r2, #5 + add r0, r4, #0 + lsl r1, r1, #0xc + lsl r2, r2, #0xe + mov r3, #0x1e + bl MOD81_0223A3C0 + ldr r0, _0223A380 ; =MOD81_0223A57C + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + pop {r3, r4, r5, pc} + nop +_0223A37C: .word 0xFFFF8000 +_0223A380: .word MOD81_0223A57C + thumb_func_end MOD81_0223A2AC + + thumb_func_start MOD81_0223A384 +MOD81_0223A384: ; 0x0223A384 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + beq _0223A3B2 + mov r0, #0x56 + ldrsh r0, [r5, r0] + add r1, r6, #0 + sub r0, r4, r0 + bl _s32_div_f + add r1, r5, #0 + add r1, #0x5a + strh r0, [r1] + mov r0, #0x56 + ldrsh r1, [r5, r0] + mov r0, #0x5a + ldrsh r0, [r5, r0] + add r1, r1, r0 + add r0, r5, #0 + add r0, #0x56 + strh r1, [r0] + b _0223A3B6 +_0223A3B2: + add r0, #0x56 + strh r4, [r0] +_0223A3B6: + add r0, r5, #0 + add r0, #0x58 + strh r4, [r0] + str r6, [r5, #0x74] + pop {r4, r5, r6, pc} + thumb_func_end MOD81_0223A384 + + thumb_func_start MOD81_0223A3C0 +MOD81_0223A3C0: ; 0x0223A3C0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + beq _0223A3F8 + ldr r0, [r5, #0x38] + add r1, r7, #0 + sub r0, r4, r0 + bl _s32_div_f + str r0, [r5, #0x40] + ldr r0, [r5, #0x3c] + add r1, r7, #0 + sub r0, r6, r0 + bl _s32_div_f + str r0, [r5, #0x44] + ldr r1, [r5, #0x38] + ldr r0, [r5, #0x40] + add r0, r1, r0 + str r0, [r5, #0x38] + ldr r1, [r5, #0x3c] + ldr r0, [r5, #0x44] + add r0, r1, r0 + str r0, [r5, #0x3c] + str r4, [r5, #0x48] + str r6, [r5, #0x4c] +_0223A3F8: + str r7, [r5, #0x50] + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD81_0223A3C0 + + thumb_func_start MOD81_0223A3FC +MOD81_0223A3FC: ; 0x0223A3FC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + beq _0223A422 + lsl r0, r4, #3 + str r0, [sp] + add r1, r5, r0 + mov r0, #0x5c + ldrsh r0, [r1, r0] + add r1, r7, #0 + sub r0, r6, r0 + bl _s32_div_f + ldr r1, [sp] + add r1, r5, r1 + add r1, #0x5e + strh r0, [r1] +_0223A422: + lsl r1, r4, #3 + add r0, r5, r1 + add r0, #0x60 + strh r6, [r0] + add r0, r5, r1 + add r0, #0x62 + strh r7, [r0] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD81_0223A3FC + + thumb_func_start MOD81_0223A434 +MOD81_0223A434: ; 0x0223A434 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5, #0x74] + cmp r0, #0 + beq _0223A460 + sub r0, r0, #1 + str r0, [r5, #0x74] + beq _0223A456 + mov r0, #0x56 + ldrsh r1, [r5, r0] + mov r0, #0x5a + ldrsh r0, [r5, r0] + add r1, r1, r0 + add r0, r5, #0 + add r0, #0x56 + strh r1, [r0] + b _0223A460 +_0223A456: + mov r0, #0x58 + ldrsh r1, [r5, r0] + add r0, r5, #0 + add r0, #0x56 + strh r1, [r0] +_0223A460: + mov r0, #0x54 + ldrsh r1, [r5, r0] + mov r0, #0x56 + ldrsh r0, [r5, r0] + add r1, r1, r0 + add r0, r5, #0 + add r0, #0x54 + strh r1, [r0] + add r0, r5, #0 + add r0, #0x54 + ldrh r0, [r0] + mov r1, #0xb6 + bl _s32_div_f + add r4, r0, #0 + mov r0, #0x5a + lsl r0, r0, #2 + cmp r4, r0 + blt _0223A488 + sub r4, r4, r0 +_0223A488: + ldr r0, [r5, #0x50] + cmp r0, #0 + beq _0223A4AE + ldr r1, [r5, #0x38] + ldr r0, [r5, #0x40] + add r0, r1, r0 + str r0, [r5, #0x38] + ldr r1, [r5, #0x3c] + ldr r0, [r5, #0x44] + add r0, r1, r0 + str r0, [r5, #0x3c] + ldr r0, [r5, #0x50] + sub r0, r0, #1 + str r0, [r5, #0x50] + bne _0223A4AE + ldr r0, [r5, #0x48] + str r0, [r5, #0x38] + ldr r0, [r5, #0x4c] + str r0, [r5, #0x3c] +_0223A4AE: + add r0, r4, #0 + add r0, #0x5a + lsl r1, r0, #2 + ldr r0, _0223A578 ; =0x020EDF50 + ldr r2, [r5, #0x38] + ldr r0, [r0, r1] + asr r3, r2, #0x1f + asr r1, r0, #0x1f + bl _ll_mul + mov r3, #2 + mov r6, #0 + lsl r3, r3, #0xa + add r3, r0, r3 + adc r1, r6 + lsl r0, r1, #0x14 + lsr r1, r3, #0xc + ldr r2, [r5, #8] + orr r1, r0 + add r0, r2, r1 + str r0, [r5, #0x14] + ldr r2, [r5, #0x3c] + ldr r0, _0223A578 ; =0x020EDF50 + lsl r1, r4, #2 + ldr r0, [r0, r1] + asr r3, r2, #0x1f + asr r1, r0, #0x1f + bl _ll_mul + mov r4, #2 + add r3, r6, #0 + lsl r4, r4, #0xa + add r4, r0, r4 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r4, #0xc + ldr r2, [r5, #0x10] + orr r1, r0 + add r0, r2, r1 + str r0, [r5, #0x1c] + mov r0, #0x22 + ldrsh r1, [r5, r0] + mov r0, #0x56 + ldrsh r0, [r5, r0] + mov r2, #0x5e + mov r6, #0x60 + add r0, r1, r0 + strh r0, [r5, #0x22] + add r0, r5, #0 + mov r1, #0x5c +_0223A512: + add r4, r0, #0 + add r4, #0x62 + ldrh r4, [r4] + cmp r4, #0 + beq _0223A54A + add r4, r0, #0 + add r4, #0x62 + ldrh r4, [r4] + sub r7, r4, #1 + add r4, r0, #0 + add r4, #0x62 + strh r7, [r4] + add r4, r0, #0 + add r4, #0x62 + ldrh r4, [r4] + cmp r4, #0 + bne _0223A53E + ldrsh r7, [r0, r6] + add r4, r0, #0 + add r4, #0x5c + strh r7, [r4] + b _0223A54A +_0223A53E: + ldrsh r7, [r0, r1] + ldrsh r4, [r0, r2] + add r7, r7, r4 + add r4, r0, #0 + add r4, #0x5c + strh r7, [r4] +_0223A54A: + add r3, r3, #1 + add r0, #8 + cmp r3, #3 + blt _0223A512 + mov r0, #0x20 + ldrsh r1, [r5, r0] + mov r0, #0x5c + ldrsh r0, [r5, r0] + add r0, r1, r0 + strh r0, [r5, #0x20] + mov r0, #0x22 + ldrsh r1, [r5, r0] + mov r0, #0x64 + ldrsh r0, [r5, r0] + add r0, r1, r0 + strh r0, [r5, #0x22] + mov r0, #0x24 + ldrsh r1, [r5, r0] + mov r0, #0x6c + ldrsh r0, [r5, r0] + add r0, r1, r0 + strh r0, [r5, #0x24] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0223A578: .word 0x020EDF50 + thumb_func_end MOD81_0223A434 + + thumb_func_start MOD81_0223A57C +MOD81_0223A57C: ; 0x0223A57C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #0 + beq _0223A5DC + ldr r1, [r4, #0x28] + ldr r0, [r4, #0x2c] + add r0, r1, r0 + str r0, [r4, #0x28] + str r0, [r4, #0x18] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + sub r1, r0, #1 + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #0 + bgt _0223A5DC + mov r1, #2 + lsl r1, r1, #8 + str r1, [r4, #0x30] + mov r0, #0 + lsl r1, r1, #5 + str r0, [r4, #0x2c] + add r0, r4, #0 + add r2, r1, #0 + mov r3, #0x3c + bl MOD81_0223A3C0 + ldr r2, _0223A5F8 ; =0xFFFFF800 + add r0, r4, #0 + mov r1, #0 + mov r3, #0x1e + bl MOD81_0223A3FC + mov r0, #1 + str r0, [r4, #0x7c] + ldr r1, _0223A5FC ; =MOD81_0223A600 + add r0, r5, #0 + bl FUN_0201B6C4 +_0223A5DC: + add r0, r4, #0 + bl MOD81_0223A434 + add r1, r4, #0 + ldr r0, [r4] + add r1, #0x14 + bl MOD81_02238B18 + ldr r0, [r4] + add r4, #0x20 + add r1, r4, #0 + bl MOD81_02238B40 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223A5F8: .word 0xFFFFF800 +_0223A5FC: .word MOD81_0223A600 + thumb_func_end MOD81_0223A57C + + thumb_func_start MOD81_0223A600 +MOD81_0223A600: ; 0x0223A600 + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #0x78] + cmp r0, #0 + bne _0223A64A + ldr r1, [r4, #0x2c] + ldr r0, [r4, #0x30] + add r1, r1, r0 + str r1, [r4, #0x2c] + ldr r0, [r4, #0x28] + add r0, r0, r1 + str r0, [r4, #0x28] + str r0, [r4, #0x18] + add r0, r4, #0 + bl MOD81_0223A434 + add r1, r4, #0 + ldr r0, [r4] + add r1, #0x14 + bl MOD81_02238B18 + add r1, r4, #0 + ldr r0, [r4] + add r1, #0x20 + bl MOD81_02238B40 + ldr r0, [r4] + bl MOD81_02238B8C + cmp r0, #0 + bne _0223A64A + ldr r0, [r4] + mov r1, #0 + bl MOD81_02238B58 + mov r0, #1 + str r0, [r4, #0x78] +_0223A64A: + pop {r4, pc} + thumb_func_end MOD81_0223A600 + + thumb_func_start MOD81_0223A64C +MOD81_0223A64C: ; 0x0223A64C + push {r3, lr} + bl FUN_0201B6C8 + ldr r0, [r0, #0x78] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD81_0223A64C + + thumb_func_start MOD81_0223A658 +MOD81_0223A658: ; 0x0223A658 + push {r3, lr} + bl FUN_0201B6C8 + ldr r0, [r0, #0x7c] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD81_0223A658 + + thumb_func_start MOD81_0223A664 +MOD81_0223A664: ; 0x0223A664 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + bl FUN_0201B6C8 + add r4, r0, #0 + mov r1, #0 + str r1, [r4, #0x78] + add r0, sp, #0 + strh r1, [r0, #4] + ldrh r1, [r0, #4] + strh r1, [r0, #2] + strh r1, [r0] + ldr r0, [r4, #4] + mov r1, #1 + bl MOD81_02238C80 + ldr r0, [r4, #4] + add r1, sp, #0 + bl MOD81_02238C60 + ldr r1, _0223A6EC ; =0x000058CC + mov r0, #2 + lsl r0, r0, #0x12 + str r1, [r4, #0x2c] + sub r0, r1, r0 + str r0, [r4, #0x28] + add r0, r4, #0 + mov r1, #0 + mov r3, #0x14 + add r0, #0x80 + str r3, [r0] + ldr r0, [r4, #0x28] + add r2, r1, #0 + str r0, [r4, #0x18] + add r0, r4, #0 + bl MOD81_0223A3C0 + mov r2, #0x56 + ldrsh r2, [r4, r2] + add r0, r4, #0 + mov r1, #1 + neg r2, r2 + mov r3, #0x1e + bl MOD81_0223A3FC + mov r1, #2 + add r2, r1, #0 + add r0, r4, #0 + add r2, #0xfe + mov r3, #0x32 + bl MOD81_0223A3FC + mov r1, #2 + ldr r0, [r4] + lsl r1, r1, #0xc + bl MOD81_02238B84 + ldr r0, [r4] + mov r1, #1 + bl MOD81_02238B58 + ldr r1, _0223A6F0 ; =MOD81_0223A6F4 + add r0, r5, #0 + bl FUN_0201B6C4 + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223A6EC: .word 0x000058CC +_0223A6F0: .word MOD81_0223A6F4 + thumb_func_end MOD81_0223A664 + + thumb_func_start MOD81_0223A6F4 +MOD81_0223A6F4: ; 0x0223A6F4 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + bl MOD81_0223A434 + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #0 + beq _0223A734 + ldr r1, [r4, #0x28] + ldr r0, [r4, #0x2c] + add r0, r1, r0 + str r0, [r4, #0x28] + str r0, [r4, #0x18] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + sub r1, r0, #1 + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #0 + bne _0223A734 + ldr r1, _0223A74C ; =MOD81_0223A750 + add r0, r5, #0 + bl FUN_0201B6C4 +_0223A734: + add r1, r4, #0 + ldr r0, [r4] + add r1, #0x14 + bl MOD81_02238B18 + ldr r0, [r4] + add r4, #0x20 + add r1, r4, #0 + bl MOD81_02238B40 + pop {r3, r4, r5, pc} + nop +_0223A74C: .word MOD81_0223A750 + thumb_func_end MOD81_0223A6F4 + + thumb_func_start MOD81_0223A750 +MOD81_0223A750: ; 0x0223A750 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + bl MOD81_0223A434 + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #0x6e + ble _0223A792 + ldr r1, [r4, #0x28] + ldr r0, _0223A7A8 ; =0xFFFC5800 + sub r0, r0, r1 + mov r1, #0x35 + bl _s32_div_f + str r0, [r4, #0x2c] + add r0, r4, #0 + mov r1, #0x35 + add r0, #0x80 + str r1, [r0] + ldr r1, _0223A7AC ; =MOD81_0223A7B0 + add r0, r5, #0 + bl FUN_0201B6C4 +_0223A792: + add r1, r4, #0 + ldr r0, [r4] + add r1, #0x14 + bl MOD81_02238B18 + ldr r0, [r4] + add r4, #0x20 + add r1, r4, #0 + bl MOD81_02238B40 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223A7A8: .word 0xFFFC5800 +_0223A7AC: .word MOD81_0223A7B0 + thumb_func_end MOD81_0223A750 + + thumb_func_start MOD81_0223A7B0 +MOD81_0223A7B0: ; 0x0223A7B0 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + bl MOD81_0223A434 + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #0 + beq _0223A7F0 + ldr r1, [r4, #0x28] + ldr r0, [r4, #0x2c] + add r0, r1, r0 + str r0, [r4, #0x28] + str r0, [r4, #0x18] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + sub r1, r0, #1 + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #0 + bne _0223A7F0 + ldr r1, _0223A808 ; =MOD81_0223A80C + add r0, r5, #0 + bl FUN_0201B6C4 +_0223A7F0: + add r1, r4, #0 + ldr r0, [r4] + add r1, #0x14 + bl MOD81_02238B18 + ldr r0, [r4] + add r4, #0x20 + add r1, r4, #0 + bl MOD81_02238B40 + pop {r3, r4, r5, pc} + nop +_0223A808: .word MOD81_0223A80C + thumb_func_end MOD81_0223A7B0 + + thumb_func_start MOD81_0223A80C +MOD81_0223A80C: ; 0x0223A80C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + bl MOD81_0223A434 + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #1 + ble _0223A83E + mov r0, #2 + lsl r0, r0, #0x10 + str r0, [r4, #0x2c] + ldr r1, _0223A854 ; =MOD81_0223A858 + add r0, r5, #0 + bl FUN_0201B6C4 +_0223A83E: + add r1, r4, #0 + ldr r0, [r4] + add r1, #0x14 + bl MOD81_02238B18 + ldr r0, [r4] + add r4, #0x20 + add r1, r4, #0 + bl MOD81_02238B40 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223A854: .word MOD81_0223A858 + thumb_func_end MOD81_0223A80C + + thumb_func_start MOD81_0223A858 +MOD81_0223A858: ; 0x0223A858 + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #0x78] + cmp r0, #0 + bne _0223A894 + add r0, r4, #0 + bl MOD81_0223A434 + ldr r1, [r4, #0x28] + ldr r0, [r4, #0x2c] + add r0, r1, r0 + str r0, [r4, #0x28] + str r0, [r4, #0x18] + add r1, r4, #0 + ldr r0, [r4] + add r1, #0x14 + bl MOD81_02238B18 + add r1, r4, #0 + ldr r0, [r4] + add r1, #0x20 + bl MOD81_02238B40 + ldr r0, [r4] + bl MOD81_02238B8C + cmp r0, #0 + bne _0223A894 + mov r0, #1 + str r0, [r4, #0x78] +_0223A894: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223A858 + + thumb_func_start MOD81_0223A898 +MOD81_0223A898: ; 0x0223A898 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x3a + mov r1, #0xa4 + bl FUN_02016998 + add r4, r0, #0 + beq _0223A8C2 + str r5, [r4] + mov r0, #0 + str r0, [r4, #4] + add r0, r5, #0 + bl MOD81_0223880C + str r0, [r4, #0x24] + mov r0, #0 + str r0, [r4, #0x28] + add r0, r4, #0 + add r0, #0x34 + bl MOD81_0223AD80 +_0223A8C2: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD81_0223A898 + + thumb_func_start MOD81_0223A8C8 +MOD81_0223A8C8: ; 0x0223A8C8 + push {r4, lr} + add r4, r0, #0 + beq _0223A8F6 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + add r0, r4, #0 + bl MOD81_0223ABC0 + add r0, r4, #0 + bl MOD81_0223ACD8 + add r0, r4, #0 + bl MOD81_0223AD68 + add r0, r4, #0 + add r0, #0x34 + bl MOD81_0223AD88 + add r0, r4, #0 + bl FUN_02016A18 +_0223A8F6: + pop {r4, pc} + thumb_func_end MOD81_0223A8C8 + + thumb_func_start MOD81_0223A8F8 +MOD81_0223A8F8: ; 0x0223A8F8 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r2, [r4] + add r5, r0, #0 + cmp r2, #2 + bhs _0223A926 + lsl r3, r2, #2 + ldr r2, _0223A92C ; =0x0223D114 + add r1, r5, #4 + ldr r2, [r2, r3] + blx r2 + cmp r0, #0 + beq _0223A91C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + mov r0, #0 + str r0, [r5, #4] +_0223A91C: + add r0, r5, #0 + bl MOD81_0223A930 + mov r0, #0 + pop {r3, r4, r5, pc} +_0223A926: + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_0223A92C: .word 0x0223D114 + thumb_func_end MOD81_0223A8F8 + + thumb_func_start MOD81_0223A930 +MOD81_0223A930: ; 0x0223A930 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _0223A94C + bl G3X_ResetMtxStack + ldr r0, [r4, #0x28] + bl MOD81_02238940 + mov r0, #0 + add r1, r0, #0 + bl FUN_020222B4 +_0223A94C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223A930 + + thumb_func_start MOD81_0223A950 +MOD81_0223A950: ; 0x0223A950 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD81_0223AA68 + add r0, r4, #0 + bl MOD81_0223ABD8 + add r0, r4, #0 + bl MOD81_0223ACE8 + mov r2, #0 + ldr r0, _0223A990 ; =MOD81_0223B090 + add r1, r4, #0 + str r2, [r4, #0xc] + bl FUN_0200CA98 + mov r0, #3 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + ldr r3, _0223A994 ; =0x00007FFF + mov r0, #0 + add r2, r1, #0 + bl FUN_0200E1D0 + mov r0, #1 + add sp, #0xc + pop {r3, r4, pc} + nop +_0223A990: .word MOD81_0223B090 +_0223A994: .word 0x00007FFF + thumb_func_end MOD81_0223A950 + + thumb_func_start MOD81_0223A998 +MOD81_0223A998: ; 0x0223A998 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #4 + bhi _0223AA54 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223A9B2: ; jump table + .short _0223A9BC - _0223A9B2 - 2 ; case 0 + .short _0223A9C8 - _0223A9B2 - 2 ; case 1 + .short _0223A9F2 - _0223A9B2 - 2 ; case 2 + .short _0223AA1C - _0223A9B2 - 2 ; case 3 + .short _0223AA46 - _0223A9B2 - 2 ; case 4 +_0223A9BC: + mov r0, #0 + str r0, [r5, #8] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0223AA54 +_0223A9C8: + ldr r0, [r5, #8] + add r0, r0, #1 + str r0, [r5, #8] + cmp r0, #0xa + ble _0223AA54 + ldr r0, _0223AA5C ; =0x000006AC + bl FUN_020054C8 + add r1, r5, #0 + add r0, r5, #0 + add r1, #0x34 + bl MOD81_0223AD9C + ldr r0, [r5, #0x2c] + mov r1, #1 + bl MOD81_02238B58 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0223AA54 +_0223A9F2: + add r0, r5, #0 + add r0, #0x34 + bl MOD81_0223AE48 + cmp r0, #0 + beq _0223AA54 + ldr r0, _0223AA60 ; =0x000006AD + bl FUN_020054C8 + ldr r0, [r5, #0x20] + mov r1, #3 + bl FUN_02020130 + ldr r0, [r5, #0x20] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0223AA54 +_0223AA1C: + ldr r0, [r5, #0x20] + bl FUN_02020388 + cmp r0, #0 + bne _0223AA54 + mov r0, #0x10 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0 + ldr r3, _0223AA64 ; =0x00007FFF + add r1, r0, #0 + add r2, r0, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0223AA54 +_0223AA46: + bl FUN_0200E308 + cmp r0, #0 + beq _0223AA54 + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_0223AA54: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + nop +_0223AA5C: .word 0x000006AC +_0223AA60: .word 0x000006AD +_0223AA64: .word 0x00007FFF + thumb_func_end MOD81_0223A998 + + thumb_func_start MOD81_0223AA68 +MOD81_0223AA68: ; 0x0223AA68 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r0, #0 + ldr r0, _0223ABAC ; =0x0223D158 + bl FUN_0201E66C + ldr r2, _0223ABB0 ; =0x04000304 + ldr r0, _0223ABB4 ; =0xFFFF7FFF + ldrh r1, [r2] + and r0, r1 + strh r0, [r2] + ldr r0, _0223ABB8 ; =0x0223D11C + bl FUN_02016BBC + ldr r0, [r4, #0x24] + ldr r2, _0223ABBC ; =0x0223D13C + mov r1, #3 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x24] + ldr r2, _0223ABBC ; =0x0223D13C + mov r1, #7 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4] + bl MOD81_02238828 + cmp r0, #3 + bhi _0223AABA + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223AAB2: ; jump table + .short _0223AABA - _0223AAB2 - 2 ; case 0 + .short _0223AAC6 - _0223AAB2 - 2 ; case 1 + .short _0223AAD2 - _0223AAB2 - 2 ; case 2 + .short _0223AADE - _0223AAB2 - 2 ; case 3 +_0223AABA: + mov r0, #0xf + str r0, [sp, #0x10] + mov r7, #0x10 + mov r6, #0x11 + mov r5, #0 + b _0223AAE8 +_0223AAC6: + mov r0, #0xf + str r0, [sp, #0x10] + mov r7, #0x10 + mov r6, #0x11 + mov r5, #0x20 + b _0223AAE8 +_0223AAD2: + mov r0, #0xf + str r0, [sp, #0x10] + mov r7, #0x10 + mov r6, #0x11 + mov r5, #0x40 + b _0223AAE8 +_0223AADE: + mov r0, #0x18 + str r0, [sp, #0x10] + mov r7, #0x19 + mov r6, #0x1a + mov r5, #0 +_0223AAE8: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0x24] + mov r0, #0x5d + add r1, r7, #0 + mov r3, #3 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0x24] + mov r0, #0x5d + add r1, r7, #0 + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r1, [sp, #0x10] + ldr r2, [r4, #0x24] + mov r0, #0x5d + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r1, [sp, #0x10] + ldr r2, [r4, #0x24] + mov r0, #0x5d + mov r3, #7 + bl FUN_020068C8 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0x5d + add r1, r6, #0 + add r3, r5, #0 + bl FUN_02006948 + mov r0, #0 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0x5d + add r1, r6, #0 + mov r2, #4 + add r3, r5, #0 + bl FUN_02006948 + mov r1, #3 + add r3, r1, #0 + ldr r0, [r4, #0x24] + add r2, r1, #0 + add r3, #0xfd + bl FUN_020179E0 + ldr r0, [r4, #0x24] + mov r1, #7 + mov r2, #3 + mov r3, #0 + bl FUN_020179E0 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0223ABAC: .word 0x0223D158 +_0223ABB0: .word 0x04000304 +_0223ABB4: .word 0xFFFF7FFF +_0223ABB8: .word 0x0223D11C +_0223ABBC: .word 0x0223D13C + thumb_func_end MOD81_0223AA68 + + thumb_func_start MOD81_0223ABC0 +MOD81_0223ABC0: ; 0x0223ABC0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x24] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #0x24] + mov r1, #7 + bl FUN_020178A0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223ABC0 + + thumb_func_start MOD81_0223ABD8 +MOD81_0223ABD8: ; 0x0223ABD8 + push {r3, r4, lr} + sub sp, #0x24 + add r4, r0, #0 + bl FUN_020BB7F4 + bl G3X_InitMtxStack + ldr r0, _0223ACAC ; =0x04000060 + ldr r1, _0223ACB0 ; =0xFFFFCFFD + ldrh r2, [r0] + and r2, r1 + strh r2, [r0] + ldrh r3, [r0] + add r2, r1, #2 + and r3, r2 + mov r2, #0x10 + orr r2, r3 + strh r2, [r0] + ldrh r3, [r0] + ldr r2, _0223ACB4 ; =0x0000CFFB + and r2, r3 + strh r2, [r0] + add r2, r1, #2 + ldrh r3, [r0] + add r1, r1, #2 + and r3, r2 + mov r2, #8 + orr r2, r3 + strh r2, [r0] + ldrh r2, [r0] + and r2, r1 + mov r1, #0x20 + orr r1, r2 + strh r1, [r0] + ldr r0, _0223ACB8 ; =0x0223D12C + bl G3X_SetEdgeColorTable + mov r1, #0 + ldr r0, _0223ACBC ; =0x000043FF + ldr r2, _0223ACC0 ; =0x00007FFF + mov r3, #0x3f + str r1, [sp] + bl G3X_SetClearColor + ldr r1, _0223ACC4 ; =0x04000540 + mov r0, #2 + str r0, [r1] + ldr r0, _0223ACC8 ; =0xBFFF0000 + str r0, [r1, #0x40] + mov r0, #1 + add r1, r0, #0 + bl FUN_020AEB70 + mov r0, #1 + lsl r0, r0, #0xe + mov r1, #1 + bl FUN_020AEDF4 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r1, _0223ACCC ; =0x04000008 + mov r0, #3 + ldrh r2, [r1] + bic r2, r0 + strh r2, [r1] + mov r1, #0 + mov r0, #1 + add r2, r1, #0 + add r3, r1, #0 + bl MOD81_022388C0 + str r0, [r4, #0x28] + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + str r1, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [r4, #0x28] + mov r2, #0x5d + mov r3, #0x1b + bl MOD81_02238A84 + ldr r1, _0223ACD0 ; =0x000018E3 + str r0, [r4, #0x2c] + add r0, sp, #0x10 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + strh r1, [r0, #4] + ldr r0, [r4, #0x28] + add r1, sp, #0x10 + bl MOD81_02238C60 + ldr r0, [r4, #0x28] + ldr r1, _0223ACD4 ; =0x000007D2 + bl MOD81_02238C90 + ldr r0, [r4, #0x28] + add r1, sp, #0x18 + bl MOD81_02238C40 + add sp, #0x24 + pop {r3, r4, pc} + nop +_0223ACAC: .word 0x04000060 +_0223ACB0: .word 0xFFFFCFFD +_0223ACB4: .word 0x0000CFFB +_0223ACB8: .word 0x0223D12C +_0223ACBC: .word 0x000043FF +_0223ACC0: .word 0x00007FFF +_0223ACC4: .word 0x04000540 +_0223ACC8: .word 0xBFFF0000 +_0223ACCC: .word 0x04000008 +_0223ACD0: .word 0x000018E3 +_0223ACD4: .word 0x000007D2 + thumb_func_end MOD81_0223ABD8 + + thumb_func_start MOD81_0223ACD8 +MOD81_0223ACD8: ; 0x0223ACD8 + push {r3, lr} + ldr r0, [r0, #0x28] + cmp r0, #0 + beq _0223ACE4 + bl MOD81_0223890C +_0223ACE4: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD81_0223ACD8 + + thumb_func_start MOD81_0223ACE8 +MOD81_0223ACE8: ; 0x0223ACE8 + push {r4, lr} + sub sp, #0x70 + add r4, r0, #0 + add r0, #0x10 + mov r1, #0x5d + mov r2, #7 + mov r3, #8 + bl MOD81_0223874C + add r0, sp, #0x5c + bl FUN_020B19DC + add r0, sp, #0x38 + bl FUN_020B1A24 + mov r3, #0 + str r3, [sp] + mov r2, #1 + str r2, [sp, #4] + str r3, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + add r0, sp, #0x38 + str r0, [sp, #0x10] + mov r0, #0x5d + mov r1, #9 + bl FUN_02006AE4 + mov r0, #0x3a + str r0, [sp] + add r0, sp, #0x5c + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #0xa + mov r2, #1 + mov r3, #0 + bl FUN_02006A8C + mov r0, #0 + add r1, r4, #0 + str r0, [sp] + add r0, sp, #0x14 + add r1, #0x10 + add r2, sp, #0x38 + add r3, sp, #0x5c + bl MOD81_022387A8 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + add r1, sp, #0x14 + mov r2, #0x80 + mov r3, #0x60 + bl MOD81_022387C8 + mov r1, #0 + str r0, [r4, #0x20] + bl FUN_020200A0 + add sp, #0x70 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223ACE8 + + thumb_func_start MOD81_0223AD68 +MOD81_0223AD68: ; 0x0223AD68 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + beq _0223AD76 + bl FUN_0201FFC8 +_0223AD76: + add r4, #0x10 + add r0, r4, #0 + bl MOD81_02238784 + pop {r4, pc} + thumb_func_end MOD81_0223AD68 + + thumb_func_start MOD81_0223AD80 +MOD81_0223AD80: ; 0x0223AD80 + mov r1, #0 + str r1, [r0, #4] + bx lr + .align 2, 0 + thumb_func_end MOD81_0223AD80 + + thumb_func_start MOD81_0223AD88 +MOD81_0223AD88: ; 0x0223AD88 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _0223AD9A + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #4] +_0223AD9A: + pop {r4, pc} + thumb_func_end MOD81_0223AD88 + + thumb_func_start MOD81_0223AD9C +MOD81_0223AD9C: ; 0x0223AD9C + push {r4, lr} + add r4, r1, #0 + str r0, [r4] + ldr r1, [r0, #0x2c] + ldr r2, _0223AE2C ; =0xFFFFD870 + str r1, [r4, #0xc] + ldr r0, [r0, #0x28] + ldr r1, _0223AE30 ; =0xFFF50E00 + str r0, [r4, #8] + mov r0, #0 + str r0, [r4, #0x10] + str r1, [r4, #0x14] + mov r1, #0xe2 + lsl r1, r1, #0xc + str r1, [r4, #0x18] + add r1, r4, #0 + add r1, #0x6c + strh r2, [r1] + add r1, r4, #0 + ldr r2, _0223AE34 ; =0xFFFFF550 + add r1, #0x6e + strh r2, [r1] + ldr r1, _0223AE38 ; =0x000134C4 + str r1, [r4, #0x3c] + ldr r1, _0223AE3C ; =0xFFFF4D56 + str r1, [r4, #0x40] + str r0, [r4, #0x60] + str r0, [r4, #0x64] + mov r1, #2 + str r0, [r4, #0x68] + lsl r1, r1, #0xc + strh r1, [r4, #0x34] + ldr r1, _0223AE40 ; =0xFFFFE000 + strh r1, [r4, #0x36] + strh r0, [r4, #0x38] + add r1, r4, #0 + ldr r0, [r4, #0xc] + add r1, #0x34 + bl MOD81_02238B40 + mov r0, #1 + lsl r0, r0, #0xc + str r0, [r4, #0x54] + mov r0, #0x4a + lsl r0, r0, #0xa + str r0, [r4, #0x44] + mov r0, #0x63 + lsl r0, r0, #0xa + str r0, [r4, #0x48] + mov r0, #0 + str r0, [r4, #0x5c] + add r0, r4, #0 + bl MOD81_0223AE90 + add r1, r4, #0 + ldr r0, [r4, #0xc] + add r1, #0x28 + bl MOD81_02238B18 + add r1, r4, #0 + ldr r0, [r4, #0xc] + add r1, #0x34 + bl MOD81_02238B28 + ldr r0, _0223AE44 ; =MOD81_0223AF5C + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + str r0, [r4, #4] + pop {r4, pc} + nop +_0223AE2C: .word 0xFFFFD870 +_0223AE30: .word 0xFFF50E00 +_0223AE34: .word 0xFFFFF550 +_0223AE38: .word 0x000134C4 +_0223AE3C: .word 0xFFFF4D56 +_0223AE40: .word 0xFFFFE000 +_0223AE44: .word MOD81_0223AF5C + thumb_func_end MOD81_0223AD9C + + thumb_func_start MOD81_0223AE48 +MOD81_0223AE48: ; 0x0223AE48 + ldr r0, [r0, #4] + cmp r0, #0 + bne _0223AE52 + mov r0, #1 + bx lr +_0223AE52: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD81_0223AE48 + + thumb_func_start MOD81_0223AE58 +MOD81_0223AE58: ; 0x0223AE58 + push {r3, r4, r5, r6, r7, lr} + ldr r4, [sp, #0x18] + add r5, r0, #0 + add r6, r2, #0 + add r7, r3, #0 + cmp r4, #0 + beq _0223AE8E + ldr r0, [r5, #0x44] + sub r0, r1, r0 + add r1, r4, #0 + bl _s32_div_f + str r0, [r5, #0x4c] + ldr r0, [r5, #0x48] + add r1, r4, #0 + sub r0, r6, r0 + bl _s32_div_f + str r0, [r5, #0x50] + ldr r0, [r5, #0x54] + add r1, r4, #0 + sub r0, r7, r0 + bl _s32_div_f + str r0, [r5, #0x58] + ldr r0, [sp, #0x18] + str r0, [r5, #0x5c] +_0223AE8E: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD81_0223AE58 + + thumb_func_start MOD81_0223AE90 +MOD81_0223AE90: ; 0x0223AE90 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r0, #0x6c + ldrh r0, [r0] + mov r1, #0xb6 + bl _s32_div_f + add r4, r0, #0 + mov r0, #0x5a + lsl r0, r0, #2 + cmp r4, r0 + blt _0223AEAA + sub r4, r4, r0 +_0223AEAA: + mov r0, #0x6c + ldrsh r1, [r5, r0] + mov r0, #0x6e + ldrsh r0, [r5, r0] + add r1, r1, r0 + add r0, r5, #0 + add r0, #0x6c + strh r1, [r0] + ldr r0, [r5, #0x5c] + cmp r0, #0 + beq _0223AEE4 + ldr r1, [r5, #0x44] + ldr r0, [r5, #0x4c] + add r0, r1, r0 + str r0, [r5, #0x44] + ldr r1, [r5, #0x48] + ldr r0, [r5, #0x50] + add r0, r1, r0 + str r0, [r5, #0x48] + ldr r1, [r5, #0x54] + ldr r0, [r5, #0x58] + add r1, r1, r0 + str r1, [r5, #0x54] + ldr r0, [r5, #0xc] + bl MOD81_02238B84 + ldr r0, [r5, #0x5c] + sub r0, r0, #1 + str r0, [r5, #0x5c] +_0223AEE4: + add r0, r4, #0 + add r0, #0x5a + lsl r1, r0, #2 + ldr r0, _0223AF58 ; =0x020EDF50 + ldr r2, [r5, #0x44] + ldr r0, [r0, r1] + asr r3, r2, #0x1f + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [r5, #0x1c] + ldr r2, [r5, #0x48] + ldr r0, _0223AF58 ; =0x020EDF50 + lsl r1, r4, #2 + ldr r0, [r0, r1] + asr r3, r2, #0x1f + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [r5, #0x20] + add r1, r5, #0 + str r3, [r5, #0x24] + mov r0, #0x34 + ldrsh r2, [r5, r0] + mov r0, #3 + lsl r0, r0, #8 + add r0, r2, r0 + strh r0, [r5, #0x34] + ldr r0, [r5, #0xc] + add r1, #0x34 + bl MOD81_02238B40 + add r0, r5, #0 + add r1, r5, #0 + add r5, #0x28 + add r0, #0x1c + add r1, #0x10 + add r2, r5, #0 + bl VEC_Add + pop {r3, r4, r5, pc} + nop +_0223AF58: .word 0x020EDF50 + thumb_func_end MOD81_0223AE90 + + thumb_func_start MOD81_0223AF5C +MOD81_0223AF5C: ; 0x0223AF5C + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + ldr r1, [r4, #0x68] + cmp r1, #0x3c + bge _0223AF6C + add r1, r1, #1 + str r1, [r4, #0x68] +_0223AF6C: + ldr r1, [r4, #0x60] + cmp r1, #4 + bls _0223AF74 + b _0223B084 +_0223AF74: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0223AF80: ; jump table + .short _0223AF8A - _0223AF80 - 2 ; case 0 + .short _0223AFBE - _0223AF80 - 2 ; case 1 + .short _0223AFFC - _0223AF80 - 2 ; case 2 + .short _0223B042 - _0223AF80 - 2 ; case 3 + .short _0223B072 - _0223AF80 - 2 ; case 4 +_0223AF8A: + ldr r1, [r4, #0x14] + ldr r0, [r4, #0x3c] + add r0, r1, r0 + str r0, [r4, #0x14] + ldr r1, [r4, #0x18] + ldr r0, [r4, #0x40] + add r0, r1, r0 + str r0, [r4, #0x18] + add r0, r4, #0 + bl MOD81_0223AE90 + add r1, r4, #0 + ldr r0, [r4, #0xc] + add r1, #0x28 + bl MOD81_02238B18 + ldr r0, [r4, #0xc] + bl MOD81_02238B8C + cmp r0, #0 + beq _0223B084 + ldr r0, [r4, #0x60] + add sp, #4 + add r0, r0, #1 + str r0, [r4, #0x60] + pop {r3, r4, pc} +_0223AFBE: + ldr r0, [r4, #0xc] + bl MOD81_02238B8C + cmp r0, #0 + bne _0223AFD8 + ldr r0, [r4] + bl MOD81_0223B088 + ldr r0, [r4, #0x60] + add sp, #4 + add r0, r0, #1 + str r0, [r4, #0x60] + pop {r3, r4, pc} +_0223AFD8: + ldr r1, [r4, #0x14] + ldr r0, [r4, #0x3c] + add r0, r1, r0 + str r0, [r4, #0x14] + ldr r1, [r4, #0x18] + ldr r0, [r4, #0x40] + add r0, r1, r0 + str r0, [r4, #0x18] + add r0, r4, #0 + bl MOD81_0223AE90 + ldr r0, [r4, #0xc] + add r4, #0x28 + add r1, r4, #0 + bl MOD81_02238B18 + add sp, #4 + pop {r3, r4, pc} +_0223AFFC: + ldr r1, [r4, #0x14] + ldr r0, [r4, #0x3c] + add r0, r1, r0 + str r0, [r4, #0x14] + ldr r1, [r4, #0x18] + ldr r0, [r4, #0x40] + add r0, r1, r0 + str r0, [r4, #0x18] + add r0, r4, #0 + bl MOD81_0223AE90 + add r1, r4, #0 + ldr r0, [r4, #0xc] + add r1, #0x28 + bl MOD81_02238B18 + ldr r0, [r4, #0x68] + cmp r0, #0x3c + blt _0223B084 + mov r1, #2 + lsl r1, r1, #0xa + mov r0, #0xc + str r0, [sp] + add r0, r4, #0 + add r2, r1, #0 + lsr r3, r1, #2 + bl MOD81_0223AE58 + mov r0, #0 + str r0, [r4, #0x64] + ldr r0, [r4, #0x60] + add sp, #4 + add r0, r0, #1 + str r0, [r4, #0x60] + pop {r3, r4, pc} +_0223B042: + add r0, r4, #0 + bl MOD81_0223AE90 + add r1, r4, #0 + ldr r0, [r4, #0xc] + add r1, #0x28 + bl MOD81_02238B18 + ldr r0, [r4, #0x64] + add r0, r0, #1 + str r0, [r4, #0x64] + cmp r0, #0xc + blt _0223B084 + ldr r0, [r4, #0xc] + mov r1, #0 + bl MOD81_02238B58 + mov r0, #0 + str r0, [r4, #0x64] + ldr r0, [r4, #0x60] + add sp, #4 + add r0, r0, #1 + str r0, [r4, #0x60] + pop {r3, r4, pc} +_0223B072: + ldr r1, [r4, #0x64] + add r1, r1, #1 + str r1, [r4, #0x64] + cmp r1, #8 + ble _0223B084 + mov r1, #0 + str r1, [r4, #4] + bl FUN_0200CAB4 +_0223B084: + add sp, #4 + pop {r3, r4, pc} + thumb_func_end MOD81_0223AF5C + + thumb_func_start MOD81_0223B088 +MOD81_0223B088: ; 0x0223B088 + mov r1, #1 + str r1, [r0, #0xc] + bx lr + .align 2, 0 + thumb_func_end MOD81_0223B088 + + thumb_func_start MOD81_0223B090 +MOD81_0223B090: ; 0x0223B090 + push {r3, r4, r5, lr} + sub sp, #8 + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _0223B0DC + mov r3, #0 + ldr r1, _0223B0E0 ; =0x00001150 + str r3, [r4, #0xc] + add r0, sp, #0 + strh r1, [r0] + strh r3, [r0, #2] + strh r3, [r0, #4] + mov r1, #3 + ldr r0, [r4, #0x24] + add r2, r1, #0 + bl FUN_020179E0 + mov r2, #3 + add r3, r2, #0 + ldr r0, [r4, #0x24] + mov r1, #7 + add r3, #0xfd + bl FUN_020179E0 + ldr r0, [r4, #0x28] + add r1, sp, #0 + bl MOD81_02238C70 + ldr r2, _0223B0E4 ; =0x04000304 + ldrh r1, [r2] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2] + add r0, r5, #0 + bl FUN_0200CAB4 +_0223B0DC: + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223B0E0: .word 0x00001150 +_0223B0E4: .word 0x04000304 + thumb_func_end MOD81_0223B090 + + thumb_func_start MOD81_0223B0E8 +MOD81_0223B0E8: ; 0x0223B0E8 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x3a + mov r1, #0x24 + bl FUN_02016998 + add r4, r0, #0 + beq _0223B106 + str r5, [r4] + mov r0, #0 + str r0, [r4, #4] + add r0, r5, #0 + bl MOD81_0223880C + str r0, [r4, #0xc] +_0223B106: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD81_0223B0E8 + + thumb_func_start MOD81_0223B10C +MOD81_0223B10C: ; 0x0223B10C + push {r4, lr} + add r4, r0, #0 + beq _0223B11C + bl MOD81_0223B478 + add r0, r4, #0 + bl FUN_02016A18 +_0223B11C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223B10C + + thumb_func_start MOD81_0223B120 +MOD81_0223B120: ; 0x0223B120 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r2, [r4] + add r5, r0, #0 + cmp r2, #2 + bhs _0223B148 + lsl r3, r2, #2 + ldr r2, _0223B14C ; =0x0223D180 + add r1, r5, #4 + ldr r2, [r2, r3] + blx r2 + cmp r0, #0 + beq _0223B144 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + mov r0, #0 + str r0, [r5, #4] +_0223B144: + mov r0, #0 + pop {r3, r4, r5, pc} +_0223B148: + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223B14C: .word 0x0223D180 + thumb_func_end MOD81_0223B120 + + thumb_func_start MOD81_0223B150 +MOD81_0223B150: ; 0x0223B150 + push {lr} + sub sp, #0xc + bl MOD81_0223B264 + mov r0, #8 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + ldr r3, _0223B174 ; =0x00007FFF + mov r0, #0 + add r2, r1, #0 + bl FUN_0200E1D0 + mov r0, #1 + add sp, #0xc + pop {pc} + .align 2, 0 +_0223B174: .word 0x00007FFF + thumb_func_end MOD81_0223B150 + + thumb_func_start MOD81_0223B178 +MOD81_0223B178: ; 0x0223B178 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _0223B190 + cmp r0, #1 + beq _0223B1C2 + cmp r0, #2 + beq _0223B1EE + b _0223B1FC +_0223B190: + bl FUN_0200E308 + cmp r0, #0 + beq _0223B1FC + ldr r0, _0223B204 ; =0xFFE80000 + mov r2, #0 + str r0, [r5, #0x10] + mov r0, #5 + lsl r0, r0, #0x10 + str r0, [r5, #0x14] + ldr r0, _0223B208 ; =0x00005999 + add r1, r5, #0 + str r0, [r5, #0x18] + ldr r0, _0223B20C ; =0xFFFFDDDE + str r0, [r5, #0x1c] + mov r0, #0x3c + str r0, [r5, #8] + ldr r0, _0223B210 ; =MOD81_0223B21C + str r2, [r5, #0x20] + bl FUN_0200CA60 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0223B1FC +_0223B1C2: + ldr r0, [r5, #0x20] + cmp r0, #0 + beq _0223B1FC + ldr r0, _0223B214 ; =0x000006A9 + bl FUN_020054C8 + mov r0, #0x10 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0 + ldr r3, _0223B218 ; =0x00007FFF + add r1, r0, #0 + add r2, r0, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0223B1FC +_0223B1EE: + bl FUN_0200E308 + cmp r0, #0 + beq _0223B1FC + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_0223B1FC: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + nop +_0223B204: .word 0xFFE80000 +_0223B208: .word 0x00005999 +_0223B20C: .word 0xFFFFDDDE +_0223B210: .word MOD81_0223B21C +_0223B214: .word 0x000006A9 +_0223B218: .word 0x00007FFF + thumb_func_end MOD81_0223B178 + + thumb_func_start MOD81_0223B21C +MOD81_0223B21C: ; 0x0223B21C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #8] + cmp r0, #0 + beq _0223B24A + sub r0, r0, #1 + str r0, [r4, #8] + ldr r1, [r4, #0x10] + ldr r0, [r4, #0x18] + add r0, r1, r0 + str r0, [r4, #0x10] + ldr r1, [r4, #0x14] + ldr r0, [r4, #0x1c] + add r2, r1, r0 + str r2, [r4, #0x14] + ldr r1, [r4, #0x10] + ldr r0, [r4, #0xc] + asr r1, r1, #0xc + asr r2, r2, #0xc + bl MOD81_0223B4B0 + pop {r3, r4, r5, pc} +_0223B24A: + mov r1, #0x2f + mvn r1, r1 + ldr r0, [r4, #0xc] + add r2, r1, #0 + bl MOD81_0223B4B0 + mov r0, #1 + str r0, [r4, #0x20] + add r0, r5, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD81_0223B21C + + thumb_func_start MOD81_0223B264 +MOD81_0223B264: ; 0x0223B264 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, _0223B45C ; =0x0223D1EC + bl FUN_0201E66C + ldr r2, _0223B460 ; =0x04000304 + ldrh r1, [r2] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2] + ldr r0, _0223B464 ; =0x0223D188 + bl FUN_02016BBC + ldr r0, [r4, #0xc] + ldr r2, _0223B468 ; =0x0223D198 + mov r1, #1 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0xc] + ldr r2, _0223B468 ; =0x0223D198 + mov r1, #5 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0xc] + ldr r2, _0223B46C ; =0x0223D1B4 + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0xc] + ldr r2, _0223B470 ; =0x0223D1D0 + mov r1, #3 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0xc] + ldr r2, _0223B470 ; =0x0223D1D0 + mov r1, #7 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x5d + mov r1, #0x13 + mov r3, #3 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x5d + mov r1, #0x13 + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x5d + mov r1, #0x12 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x5d + mov r1, #0x12 + mov r3, #7 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3a + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #0x14 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3a + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #0x14 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r0, #0xc8 + str r0, [sp] + mov r1, #1 + ldr r0, [r4, #0xc] + mov r2, #0 + add r3, r1, #0 + bl FUN_02017F48 + mov r0, #0xc8 + str r0, [sp] + ldr r0, [r4, #0xc] + mov r1, #5 + mov r2, #0 + mov r3, #1 + bl FUN_02017F48 + mov r0, #0xc8 + str r0, [sp] + ldr r0, [r4, #0xc] + mov r1, #2 + mov r2, #0 + mov r3, #1 + bl FUN_02017F48 + mov r1, #0 + str r1, [sp] + ldr r0, [r4] + mov r2, #1 + mov r3, #0xe + bl MOD81_022385D0 + mov r1, #0 + str r1, [sp] + ldr r0, [r4] + mov r2, #5 + mov r3, #0xe + bl MOD81_022385D0 + mov r0, #0 + str r0, [sp] + ldr r0, [r4] + mov r1, #1 + mov r2, #2 + mov r3, #0xf + bl MOD81_022385D0 + mov r3, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x40 + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r0, [r4, #0xc] + mov r1, #1 + mov r2, #0xc8 + bl FUN_02018540 + mov r3, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x40 + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r0, [r4, #0xc] + mov r1, #5 + mov r2, #0xc8 + bl FUN_02018540 + mov r3, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x40 + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r0, [r4, #0xc] + mov r1, #2 + mov r2, #0xc8 + bl FUN_02018540 + mov r0, #0x14 + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + ldr r0, [r4] + mov r2, #1 + mov r3, #0xe + bl MOD81_022386BC + mov r0, #0x14 + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + ldr r0, [r4] + mov r2, #5 + mov r3, #0xe + bl MOD81_022386BC + mov r2, #2 + str r2, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, [r4] + mov r1, #1 + mov r3, #0xf + bl MOD81_022386BC + ldr r0, [r4, #0xc] + mov r1, #1 + bl FUN_02017CD0 + ldr r0, [r4, #0xc] + mov r1, #5 + bl FUN_02017CD0 + ldr r0, [r4, #0xc] + mov r1, #2 + bl FUN_02017CD0 + ldr r0, [r4, #0xc] + ldr r2, _0223B474 ; =0xFFFFFE80 + mov r1, #0x50 + bl MOD81_0223B4B0 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_0223B45C: .word 0x0223D1EC +_0223B460: .word 0x04000304 +_0223B464: .word 0x0223D188 +_0223B468: .word 0x0223D198 +_0223B46C: .word 0x0223D1B4 +_0223B470: .word 0x0223D1D0 +_0223B474: .word 0xFFFFFE80 + thumb_func_end MOD81_0223B264 + + thumb_func_start MOD81_0223B478 +MOD81_0223B478: ; 0x0223B478 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0xc] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #7 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #6 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #5 + bl FUN_020178A0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223B478 + + thumb_func_start MOD81_0223B4B0 +MOD81_0223B4B0: ; 0x0223B4B0 + push {r4, r5, r6, lr} + ldr r3, _0223B4E4 ; =0x000001FF + add r4, r1, #0 + add r6, r2, #0 + and r4, r3 + add r5, r0, #0 + mov r1, #2 + mov r2, #3 + and r3, r6 + bl FUN_020179E0 + add r0, r5, #0 + mov r1, #1 + mov r2, #3 + add r3, r4, #0 + bl FUN_020179E0 + add r4, #0xc0 + add r0, r5, #0 + mov r1, #5 + mov r2, #3 + add r3, r4, #0 + bl FUN_020179E0 + pop {r4, r5, r6, pc} + nop +_0223B4E4: .word 0x000001FF + thumb_func_end MOD81_0223B4B0 + + thumb_func_start MOD81_0223B4E8 +MOD81_0223B4E8: ; 0x0223B4E8 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x3a + mov r1, #0xb0 + bl FUN_02016998 + add r4, r0, #0 + beq _0223B51C + str r5, [r4] + mov r0, #0 + str r0, [r4, #4] + add r0, r5, #0 + bl MOD81_0223880C + str r0, [r4, #0x24] + mov r0, #0 + str r0, [r4, #0x28] + str r0, [r4, #0xc] + add r0, r4, #0 + add r0, #0x34 + bl MOD81_0223B9A0 + ldr r0, _0223B520 ; =MOD81_0223BCA8 + add r1, r4, #0 + bl FUN_02015F10 +_0223B51C: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223B520: .word MOD81_0223BCA8 + thumb_func_end MOD81_0223B4E8 + + thumb_func_start MOD81_0223B524 +MOD81_0223B524: ; 0x0223B524 + push {r4, lr} + add r4, r0, #0 + beq _0223B552 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + add r0, r4, #0 + bl MOD81_0223B7D0 + add r0, r4, #0 + bl MOD81_0223B8F8 + add r0, r4, #0 + bl MOD81_0223B988 + add r0, r4, #0 + add r0, #0x34 + bl MOD81_0223B9A8 + add r0, r4, #0 + bl FUN_02016A18 +_0223B552: + pop {r4, pc} + thumb_func_end MOD81_0223B524 + + thumb_func_start MOD81_0223B554 +MOD81_0223B554: ; 0x0223B554 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r2, [r4] + add r5, r0, #0 + cmp r2, #2 + bhs _0223B57C + lsl r3, r2, #2 + ldr r2, _0223B580 ; =0x0223D214 + add r1, r5, #4 + ldr r2, [r2, r3] + blx r2 + cmp r0, #0 + beq _0223B578 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + mov r0, #0 + str r0, [r5, #4] +_0223B578: + mov r0, #0 + pop {r3, r4, r5, pc} +_0223B57C: + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223B580: .word 0x0223D214 + thumb_func_end MOD81_0223B554 + + thumb_func_start MOD81_0223B584 +MOD81_0223B584: ; 0x0223B584 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD81_0223B670 + add r0, r4, #0 + bl MOD81_0223B7E8 + add r0, r4, #0 + bl MOD81_0223B908 + mov r0, #8 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + ldr r3, _0223B5B8 ; =0x00007FFF + mov r0, #0 + add r2, r1, #0 + bl FUN_0200E1D0 + mov r0, #1 + add sp, #0xc + pop {r3, r4, pc} + nop +_0223B5B8: .word 0x00007FFF + thumb_func_end MOD81_0223B584 + + thumb_func_start MOD81_0223B5BC +MOD81_0223B5BC: ; 0x0223B5BC + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #3 + bhi _0223B662 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223B5D6: ; jump table + .short _0223B5DE - _0223B5D6 - 2 ; case 0 + .short _0223B5FE - _0223B5D6 - 2 ; case 1 + .short _0223B628 - _0223B5D6 - 2 ; case 2 + .short _0223B654 - _0223B5D6 - 2 ; case 3 +_0223B5DE: + bl FUN_0200E308 + cmp r0, #0 + beq _0223B662 + ldr r0, [r5, #0x20] + mov r1, #3 + bl FUN_02020130 + ldr r0, [r5, #0x20] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0223B662 +_0223B5FE: + ldr r0, [r5, #0x20] + bl FUN_02020388 + cmp r0, #0 + bne _0223B662 + ldr r0, _0223B668 ; =0x000006AB + bl FUN_020054C8 + add r1, r5, #0 + add r0, r5, #0 + add r1, #0x34 + bl MOD81_0223B9BC + ldr r0, [r5, #0x2c] + mov r1, #1 + bl MOD81_02238B58 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0223B662 +_0223B628: + add r5, #0x34 + add r0, r5, #0 + bl MOD81_0223BA7C + cmp r0, #0 + beq _0223B662 + mov r0, #0x10 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0 + ldr r3, _0223B66C ; =0x00007FFF + add r1, r0, #0 + add r2, r0, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0223B662 +_0223B654: + bl FUN_0200E308 + cmp r0, #0 + beq _0223B662 + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_0223B662: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_0223B668: .word 0x000006AB +_0223B66C: .word 0x00007FFF + thumb_func_end MOD81_0223B5BC + + thumb_func_start MOD81_0223B670 +MOD81_0223B670: ; 0x0223B670 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r0, #0 + ldr r0, _0223B7C0 ; =0x0223D258 + bl FUN_0201E66C + ldr r2, _0223B7C4 ; =0x04000304 + ldrh r1, [r2] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2] + ldr r0, _0223B7C8 ; =0x0223D21C + bl FUN_02016BBC + ldr r0, [r4, #0x24] + ldr r2, _0223B7CC ; =0x0223D23C + mov r1, #3 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x24] + ldr r2, _0223B7CC ; =0x0223D23C + mov r1, #7 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4] + bl MOD81_02238828 + cmp r0, #3 + bhi _0223B6C2 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223B6BA: ; jump table + .short _0223B6C2 - _0223B6BA - 2 ; case 0 + .short _0223B6CE - _0223B6BA - 2 ; case 1 + .short _0223B6DA - _0223B6BA - 2 ; case 2 + .short _0223B6E6 - _0223B6BA - 2 ; case 3 +_0223B6C2: + mov r0, #0xf + str r0, [sp, #0x10] + mov r7, #0x10 + mov r6, #0x11 + mov r5, #0 + b _0223B6F0 +_0223B6CE: + mov r0, #0xf + str r0, [sp, #0x10] + mov r7, #0x10 + mov r6, #0x11 + mov r5, #0x20 + b _0223B6F0 +_0223B6DA: + mov r0, #0xf + str r0, [sp, #0x10] + mov r7, #0x10 + mov r6, #0x11 + mov r5, #0x40 + b _0223B6F0 +_0223B6E6: + mov r0, #0x18 + str r0, [sp, #0x10] + mov r7, #0x19 + mov r6, #0x1a + mov r5, #0 +_0223B6F0: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0x24] + mov r0, #0x5d + add r1, r7, #0 + mov r3, #3 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0x24] + mov r0, #0x5d + add r1, r7, #0 + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r1, [sp, #0x10] + ldr r2, [r4, #0x24] + mov r0, #0x5d + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r1, [sp, #0x10] + ldr r2, [r4, #0x24] + mov r0, #0x5d + mov r3, #7 + bl FUN_020068C8 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0x5d + add r1, r6, #0 + add r3, r5, #0 + bl FUN_02006948 + mov r0, #0 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0x5d + add r1, r6, #0 + mov r2, #4 + add r3, r5, #0 + bl FUN_02006948 + mov r1, #3 + ldr r0, [r4, #0x24] + add r2, r1, #0 + mov r3, #0 + bl FUN_020179E0 + mov r2, #3 + add r3, r2, #0 + ldr r0, [r4, #0x24] + mov r1, #7 + add r3, #0xfd + bl FUN_020179E0 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + bl FUN_02033E74 + mov r0, #1 + mov r1, #0x39 + bl FUN_02033F04 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0223B7C0: .word 0x0223D258 +_0223B7C4: .word 0x04000304 +_0223B7C8: .word 0x0223D21C +_0223B7CC: .word 0x0223D23C + thumb_func_end MOD81_0223B670 + + thumb_func_start MOD81_0223B7D0 +MOD81_0223B7D0: ; 0x0223B7D0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x24] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #0x24] + mov r1, #7 + bl FUN_020178A0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223B7D0 + + thumb_func_start MOD81_0223B7E8 +MOD81_0223B7E8: ; 0x0223B7E8 + push {r3, r4, lr} + sub sp, #0x24 + add r4, r0, #0 + bl FUN_020BB7F4 + bl G3X_InitMtxStack + ldr r0, _0223B8C8 ; =0x04000060 + ldr r1, _0223B8CC ; =0xFFFFCFFD + ldrh r2, [r0] + and r2, r1 + strh r2, [r0] + ldrh r3, [r0] + add r2, r1, #2 + and r3, r2 + mov r2, #0x10 + orr r2, r3 + strh r2, [r0] + ldrh r3, [r0] + ldr r2, _0223B8D0 ; =0x0000CFFB + and r2, r3 + strh r2, [r0] + add r2, r1, #2 + ldrh r3, [r0] + add r1, r1, #2 + and r3, r2 + mov r2, #8 + orr r2, r3 + strh r2, [r0] + ldrh r2, [r0] + and r2, r1 + mov r1, #0x20 + orr r1, r2 + strh r1, [r0] + ldr r0, _0223B8D4 ; =0x0223D22C + bl G3X_SetEdgeColorTable + mov r1, #0 + ldr r0, _0223B8D8 ; =0x000043FF + ldr r2, _0223B8DC ; =0x00007FFF + mov r3, #0x3f + str r1, [sp] + bl G3X_SetClearColor + ldr r1, _0223B8E0 ; =0x04000540 + mov r0, #2 + str r0, [r1] + ldr r0, _0223B8E4 ; =0xBFFF0000 + str r0, [r1, #0x40] + mov r0, #1 + add r1, r0, #0 + bl FUN_020AEB70 + mov r0, #1 + lsl r0, r0, #0xe + mov r1, #1 + bl FUN_020AEDF4 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r1, _0223B8E8 ; =0x04000008 + mov r0, #3 + ldrh r2, [r1] + bic r2, r0 + strh r2, [r1] + mov r1, #0 + mov r0, #1 + add r2, r1, #0 + add r3, r1, #0 + bl MOD81_022388C0 + str r0, [r4, #0x28] + mov r1, #0 + str r1, [sp] + str r1, [sp, #4] + str r1, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [r4, #0x28] + mov r2, #0x5d + mov r3, #0x1b + bl MOD81_02238A84 + ldr r1, _0223B8EC ; =0x000018E3 + str r0, [r4, #0x2c] + add r0, sp, #0x10 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + strh r1, [r0, #4] + ldr r0, [r4, #0x28] + add r1, sp, #0x10 + bl MOD81_02238C60 + ldr r1, _0223B8F0 ; =0x00001150 + add r0, sp, #0x10 + strh r1, [r0] + ldr r0, [r4, #0x28] + add r1, sp, #0x10 + bl MOD81_02238C70 + ldr r0, [r4, #0x28] + ldr r1, _0223B8F4 ; =0x000007D2 + bl MOD81_02238C90 + ldr r0, [r4, #0x28] + add r1, sp, #0x18 + bl MOD81_02238C40 + add sp, #0x24 + pop {r3, r4, pc} + .align 2, 0 +_0223B8C8: .word 0x04000060 +_0223B8CC: .word 0xFFFFCFFD +_0223B8D0: .word 0x0000CFFB +_0223B8D4: .word 0x0223D22C +_0223B8D8: .word 0x000043FF +_0223B8DC: .word 0x00007FFF +_0223B8E0: .word 0x04000540 +_0223B8E4: .word 0xBFFF0000 +_0223B8E8: .word 0x04000008 +_0223B8EC: .word 0x000018E3 +_0223B8F0: .word 0x00001150 +_0223B8F4: .word 0x000007D2 + thumb_func_end MOD81_0223B7E8 + + thumb_func_start MOD81_0223B8F8 +MOD81_0223B8F8: ; 0x0223B8F8 + push {r3, lr} + ldr r0, [r0, #0x28] + cmp r0, #0 + beq _0223B904 + bl MOD81_0223890C +_0223B904: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD81_0223B8F8 + + thumb_func_start MOD81_0223B908 +MOD81_0223B908: ; 0x0223B908 + push {r4, lr} + sub sp, #0x70 + add r4, r0, #0 + add r0, #0x10 + mov r1, #0x5d + mov r2, #7 + mov r3, #8 + bl MOD81_0223874C + add r0, sp, #0x5c + bl FUN_020B19DC + add r0, sp, #0x38 + bl FUN_020B1A24 + mov r3, #0 + str r3, [sp] + mov r2, #1 + str r2, [sp, #4] + str r3, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + add r0, sp, #0x38 + str r0, [sp, #0x10] + mov r0, #0x5d + mov r1, #9 + bl FUN_02006AE4 + mov r0, #0x3a + str r0, [sp] + add r0, sp, #0x5c + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #0xa + mov r2, #1 + mov r3, #0 + bl FUN_02006A8C + mov r0, #1 + add r1, r4, #0 + str r0, [sp] + add r0, sp, #0x14 + add r1, #0x10 + add r2, sp, #0x38 + add r3, sp, #0x5c + bl MOD81_022387A8 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + add r1, sp, #0x14 + mov r2, #0x80 + mov r3, #0x60 + bl MOD81_022387C8 + mov r1, #0 + str r0, [r4, #0x20] + bl FUN_020200A0 + add sp, #0x70 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223B908 + + thumb_func_start MOD81_0223B988 +MOD81_0223B988: ; 0x0223B988 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + beq _0223B996 + bl FUN_0201FFC8 +_0223B996: + add r4, #0x10 + add r0, r4, #0 + bl MOD81_02238784 + pop {r4, pc} + thumb_func_end MOD81_0223B988 + + thumb_func_start MOD81_0223B9A0 +MOD81_0223B9A0: ; 0x0223B9A0 + mov r1, #0 + str r1, [r0, #4] + bx lr + .align 2, 0 + thumb_func_end MOD81_0223B9A0 + + thumb_func_start MOD81_0223B9A8 +MOD81_0223B9A8: ; 0x0223B9A8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _0223B9BA + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #4] +_0223B9BA: + pop {r4, pc} + thumb_func_end MOD81_0223B9A8 + + thumb_func_start MOD81_0223B9BC +MOD81_0223B9BC: ; 0x0223B9BC + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + str r0, [r4] + ldr r1, [r0, #0x2c] + ldr r2, _0223BA5C ; =0xFFFFD870 + str r1, [r4, #0xc] + ldr r0, [r0, #0x28] + ldr r1, _0223BA60 ; =0x003D6C00 + str r0, [r4, #8] + mov r0, #0 + str r0, [r4, #0x10] + str r1, [r4, #0x14] + ldr r1, _0223BA64 ; =0xFFE44000 + str r1, [r4, #0x18] + add r1, r4, #0 + add r1, #0x78 + strh r2, [r1] + add r1, r4, #0 + ldr r2, _0223BA68 ; =0xFFFFF550 + add r1, #0x7a + strh r2, [r1] + ldr r1, _0223BA6C ; =0xFFFEF2C6 + str r1, [r4, #0x3c] + ldr r1, _0223BA70 ; =0x0000936D + str r1, [r4, #0x40] + str r0, [r4, #0x6c] + str r0, [r4, #0x70] + mov r1, #2 + str r0, [r4, #0x74] + lsl r1, r1, #0xc + strh r1, [r4, #0x34] + ldr r1, _0223BA74 ; =0xFFFFE000 + strh r1, [r4, #0x36] + strh r0, [r4, #0x38] + add r1, r4, #0 + ldr r0, [r4, #0xc] + add r1, #0x34 + bl MOD81_02238B40 + mov r3, #2 + lsl r3, r3, #8 + mov r1, #0x4a + mov r2, #0x63 + str r3, [r4, #0x5c] + lsl r0, r3, #2 + str r0, [r4, #0x44] + str r0, [r4, #0x48] + mov r0, #0 + str r0, [r4, #0x68] + mov r0, #0xc + str r0, [sp] + add r0, r4, #0 + lsl r1, r1, #0xa + lsl r2, r2, #0xa + lsl r3, r3, #3 + bl MOD81_0223BA8C + add r0, r4, #0 + bl MOD81_0223BAD0 + add r1, r4, #0 + ldr r0, [r4, #0xc] + add r1, #0x28 + bl MOD81_02238B18 + add r1, r4, #0 + ldr r0, [r4, #0xc] + add r1, #0x34 + bl MOD81_02238B28 + ldr r0, _0223BA78 ; =MOD81_0223BBC8 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + str r0, [r4, #4] + add sp, #4 + pop {r3, r4, pc} + nop +_0223BA5C: .word 0xFFFFD870 +_0223BA60: .word 0x003D6C00 +_0223BA64: .word 0xFFE44000 +_0223BA68: .word 0xFFFFF550 +_0223BA6C: .word 0xFFFEF2C6 +_0223BA70: .word 0x0000936D +_0223BA74: .word 0xFFFFE000 +_0223BA78: .word MOD81_0223BBC8 + thumb_func_end MOD81_0223B9BC + + thumb_func_start MOD81_0223BA7C +MOD81_0223BA7C: ; 0x0223BA7C + ldr r0, [r0, #4] + cmp r0, #0 + bne _0223BA86 + mov r0, #1 + bx lr +_0223BA86: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD81_0223BA7C + + thumb_func_start MOD81_0223BA8C +MOD81_0223BA8C: ; 0x0223BA8C + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [sp, #0x18] + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + str r0, [sp] + cmp r0, #0 + beq _0223BACC + ldr r0, [r5, #0x44] + ldr r1, [sp] + sub r0, r4, r0 + bl _s32_div_f + str r0, [r5, #0x4c] + ldr r0, [r5, #0x48] + ldr r1, [sp] + sub r0, r6, r0 + bl _s32_div_f + str r0, [r5, #0x50] + ldr r0, [r5, #0x5c] + ldr r1, [sp] + sub r0, r7, r0 + bl _s32_div_f + str r0, [r5, #0x60] + str r4, [r5, #0x54] + str r6, [r5, #0x58] + ldr r0, [sp, #0x18] + str r7, [r5, #0x64] + str r0, [r5, #0x68] +_0223BACC: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD81_0223BA8C + + thumb_func_start MOD81_0223BAD0 +MOD81_0223BAD0: ; 0x0223BAD0 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _0223BBC0 ; =0x0223D3A0 + ldr r0, [r0] + cmp r0, #0 + beq _0223BBAE + add r0, r5, #0 + add r0, #0x78 + ldrh r0, [r0] + mov r1, #0xb6 + bl _s32_div_f + add r4, r0, #0 + mov r0, #0x5a + lsl r0, r0, #2 + cmp r4, r0 + blt _0223BAF4 + sub r4, r4, r0 +_0223BAF4: + mov r0, #0x78 + ldrsh r1, [r5, r0] + mov r0, #0x7a + ldrsh r0, [r5, r0] + sub r1, r1, r0 + add r0, r5, #0 + add r0, #0x78 + strh r1, [r0] + ldr r0, [r5, #0x68] + cmp r0, #0 + beq _0223BB3C + sub r0, r0, #1 + str r0, [r5, #0x68] + beq _0223BB28 + ldr r1, [r5, #0x44] + ldr r0, [r5, #0x4c] + add r0, r1, r0 + str r0, [r5, #0x44] + ldr r1, [r5, #0x48] + ldr r0, [r5, #0x50] + add r0, r1, r0 + str r0, [r5, #0x48] + ldr r1, [r5, #0x5c] + ldr r0, [r5, #0x60] + add r0, r1, r0 + b _0223BB32 +_0223BB28: + ldr r0, [r5, #0x54] + str r0, [r5, #0x44] + ldr r0, [r5, #0x58] + str r0, [r5, #0x48] + ldr r0, [r5, #0x64] +_0223BB32: + str r0, [r5, #0x5c] + ldr r0, [r5, #0xc] + ldr r1, [r5, #0x5c] + bl MOD81_02238B84 +_0223BB3C: + add r0, r4, #0 + add r0, #0x5a + lsl r1, r0, #2 + ldr r0, _0223BBC4 ; =0x020EDF50 + ldr r2, [r5, #0x44] + ldr r0, [r0, r1] + asr r3, r2, #0x1f + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [r5, #0x1c] + ldr r2, [r5, #0x48] + ldr r0, _0223BBC4 ; =0x020EDF50 + lsl r1, r4, #2 + ldr r0, [r0, r1] + asr r3, r2, #0x1f + asr r1, r0, #0x1f + bl _ll_mul + mov r2, #2 + mov r3, #0 + lsl r2, r2, #0xa + add r2, r0, r2 + adc r1, r3 + lsl r0, r1, #0x14 + lsr r1, r2, #0xc + orr r1, r0 + str r1, [r5, #0x20] + add r1, r5, #0 + str r3, [r5, #0x24] + mov r0, #0x34 + ldrsh r2, [r5, r0] + mov r0, #3 + lsl r0, r0, #8 + sub r0, r2, r0 + strh r0, [r5, #0x34] + ldr r0, [r5, #0xc] + add r1, #0x34 + bl MOD81_02238B40 + add r0, r5, #0 + add r1, r5, #0 + add r5, #0x28 + add r0, #0x1c + add r1, #0x10 + add r2, r5, #0 + bl VEC_Add + pop {r3, r4, r5, pc} +_0223BBAE: + add r2, r5, #0 + add r2, #0x10 + ldmia r2!, {r0, r1} + add r5, #0x28 + stmia r5!, {r0, r1} + ldr r0, [r2] + str r0, [r5] + pop {r3, r4, r5, pc} + nop +_0223BBC0: .word 0x0223D3A0 +_0223BBC4: .word 0x020EDF50 + thumb_func_end MOD81_0223BAD0 + + thumb_func_start MOD81_0223BBC8 +MOD81_0223BBC8: ; 0x0223BBC8 + push {r4, lr} + add r4, r1, #0 + ldr r1, [r4, #0x74] + cmp r1, #0x46 + bge _0223BBD6 + add r1, r1, #1 + str r1, [r4, #0x74] +_0223BBD6: + ldr r1, [r4, #0x6c] + cmp r1, #3 + bhi _0223BC9C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0223BBE8: ; jump table + .short _0223BBF0 - _0223BBE8 - 2 ; case 0 + .short _0223BC16 - _0223BBE8 - 2 ; case 1 + .short _0223BC50 - _0223BBE8 - 2 ; case 2 + .short _0223BC8A - _0223BBE8 - 2 ; case 3 +_0223BBF0: + add r0, r4, #0 + bl MOD81_0223BAD0 + add r1, r4, #0 + ldr r0, [r4, #0xc] + add r1, #0x28 + bl MOD81_02238B18 + ldr r0, [r4, #0x74] + add r0, r0, #1 + str r0, [r4, #0x74] + cmp r0, #0xc + blt _0223BC9C + mov r0, #0 + str r0, [r4, #0x74] + ldr r0, [r4, #0x6c] + add r0, r0, #1 + str r0, [r4, #0x6c] + pop {r4, pc} +_0223BC16: + ldr r0, [r4, #0xc] + bl MOD81_02238B8C + cmp r0, #0 + bne _0223BC2E + ldr r0, [r4] + bl MOD81_0223BCA0 + ldr r0, [r4, #0x6c] + add r0, r0, #1 + str r0, [r4, #0x6c] + pop {r4, pc} +_0223BC2E: + ldr r1, [r4, #0x14] + ldr r0, [r4, #0x3c] + add r0, r1, r0 + str r0, [r4, #0x14] + ldr r1, [r4, #0x18] + ldr r0, [r4, #0x40] + add r0, r1, r0 + str r0, [r4, #0x18] + add r0, r4, #0 + bl MOD81_0223BAD0 + ldr r0, [r4, #0xc] + add r4, #0x28 + add r1, r4, #0 + bl MOD81_02238B18 + pop {r4, pc} +_0223BC50: + ldr r1, [r4, #0x14] + ldr r0, [r4, #0x3c] + add r0, r1, r0 + str r0, [r4, #0x14] + ldr r1, [r4, #0x18] + ldr r0, [r4, #0x40] + add r0, r1, r0 + str r0, [r4, #0x18] + add r0, r4, #0 + bl MOD81_0223BAD0 + add r1, r4, #0 + ldr r0, [r4, #0xc] + add r1, #0x28 + bl MOD81_02238B18 + ldr r0, [r4, #0x74] + cmp r0, #0x46 + blt _0223BC9C + ldr r0, [r4, #0xc] + mov r1, #0 + bl MOD81_02238B58 + mov r0, #0 + str r0, [r4, #0x70] + ldr r0, [r4, #0x6c] + add r0, r0, #1 + str r0, [r4, #0x6c] + pop {r4, pc} +_0223BC8A: + ldr r1, [r4, #0x70] + add r1, r1, #1 + str r1, [r4, #0x70] + cmp r1, #8 + ble _0223BC9C + mov r1, #0 + str r1, [r4, #4] + bl FUN_0200CAB4 +_0223BC9C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223BBC8 + + thumb_func_start MOD81_0223BCA0 +MOD81_0223BCA0: ; 0x0223BCA0 + mov r1, #1 + str r1, [r0, #0xc] + bx lr + .align 2, 0 + thumb_func_end MOD81_0223BCA0 + + thumb_func_start MOD81_0223BCA8 +MOD81_0223BCA8: ; 0x0223BCA8 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _0223BCC6 + bl G3X_ResetMtxStack + ldr r0, [r4, #0x28] + bl MOD81_02238940 + mov r0, #0 + add r1, r0, #0 + bl FUN_020222B4 +_0223BCC6: + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _0223BD08 + ldr r1, _0223BD0C ; =0x0000EEB0 + add r0, sp, #0 + strh r1, [r0] + mov r1, #0 + strh r1, [r0, #2] + strh r1, [r0, #4] + mov r1, #3 + add r3, r1, #0 + ldr r0, [r4, #0x24] + add r2, r1, #0 + add r3, #0xfd + bl FUN_020179E0 + ldr r0, [r4, #0x24] + mov r1, #7 + mov r2, #3 + mov r3, #0 + bl FUN_020179E0 + ldr r0, [r4, #0x28] + add r1, sp, #0 + bl MOD81_02238C70 + ldr r2, _0223BD10 ; =0x04000304 + ldr r0, _0223BD14 ; =0xFFFF7FFF + ldrh r1, [r2] + and r0, r1 + strh r0, [r2] + mov r0, #0 + str r0, [r4, #0xc] +_0223BD08: + add sp, #8 + pop {r4, pc} + .align 2, 0 +_0223BD0C: .word 0x0000EEB0 +_0223BD10: .word 0x04000304 +_0223BD14: .word 0xFFFF7FFF + thumb_func_end MOD81_0223BCA8 + + thumb_func_start MOD81_0223BD18 +MOD81_0223BD18: ; 0x0223BD18 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x3a + mov r1, #0x3c + bl FUN_02016998 + add r4, r0, #0 + beq _0223BD46 + str r5, [r4] + mov r0, #0 + str r0, [r4, #4] + add r0, r5, #0 + bl MOD81_0223880C + str r0, [r4, #0xc] + mov r0, #0 + str r0, [r4, #0x20] + str r0, [r4, #0x10] + str r0, [r4, #0x14] + str r0, [r4, #0x18] + str r0, [r4, #0x30] + str r0, [r4, #0x34] + str r0, [r4, #0x38] +_0223BD46: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD81_0223BD18 + + thumb_func_start MOD81_0223BD4C +MOD81_0223BD4C: ; 0x0223BD4C + push {r4, lr} + add r4, r0, #0 + beq _0223BD80 + bl MOD81_0223C1A8 + add r0, r4, #0 + bl MOD81_0223C2EC + ldr r0, [r4, #0x30] + cmp r0, #0 + beq _0223BD66 + bl MOD81_0223C460 +_0223BD66: + ldr r0, [r4, #0x34] + cmp r0, #0 + beq _0223BD70 + bl MOD81_0223C3B0 +_0223BD70: + ldr r0, [r4, #0x38] + cmp r0, #0 + beq _0223BD7A + bl MOD81_0223C514 +_0223BD7A: + add r0, r4, #0 + bl FUN_02016A18 +_0223BD80: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223BD4C + + thumb_func_start MOD81_0223BD84 +MOD81_0223BD84: ; 0x0223BD84 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r2, [r4] + add r5, r0, #0 + cmp r2, #3 + bhs _0223BDB2 + lsl r3, r2, #2 + ldr r2, _0223BDB8 ; =0x0223D288 + add r1, r5, #4 + ldr r2, [r2, r3] + blx r2 + cmp r0, #0 + beq _0223BDA8 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + mov r0, #0 + str r0, [r5, #4] +_0223BDA8: + add r0, r5, #0 + bl MOD81_0223BDBC + mov r0, #0 + pop {r3, r4, r5, pc} +_0223BDB2: + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_0223BDB8: .word 0x0223D288 + thumb_func_end MOD81_0223BD84 + + thumb_func_start MOD81_0223BDBC +MOD81_0223BDBC: ; 0x0223BDBC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + beq _0223BDEE + mov r0, #0x2a + ldrsh r1, [r4, r0] + mov r0, #1 + lsl r0, r0, #0xc + add r0, r1, r0 + strh r0, [r4, #0x2a] + add r1, r4, #0 + ldr r0, [r4, #0x24] + add r1, #0x28 + bl MOD81_02238B40 + bl G3X_ResetMtxStack + ldr r0, [r4, #0x20] + bl MOD81_02238940 + mov r0, #0 + add r1, r0, #0 + bl FUN_020222B4 +_0223BDEE: + pop {r4, pc} + thumb_func_end MOD81_0223BDBC + + thumb_func_start MOD81_0223BDF0 +MOD81_0223BDF0: ; 0x0223BDF0 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD81_0223BF74 + add r0, r4, #0 + bl MOD81_0223C1DC + mov r0, #8 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + ldr r3, _0223BE1C ; =0x00007FFF + mov r0, #0 + add r2, r1, #0 + bl FUN_0200E1D0 + mov r0, #1 + add sp, #0xc + pop {r3, r4, pc} + .align 2, 0 +_0223BE1C: .word 0x00007FFF + thumb_func_end MOD81_0223BDF0 + + thumb_func_start MOD81_0223BE20 +MOD81_0223BE20: ; 0x0223BE20 + push {r3, r4, r5, lr} + add r5, r1, #0 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #6 + bhi _0223BEEA + add r2, r1, r1 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0223BE38: ; jump table + .short _0223BE46 - _0223BE38 - 2 ; case 0 + .short _0223BE64 - _0223BE38 - 2 ; case 1 + .short _0223BE7E - _0223BE38 - 2 ; case 2 + .short _0223BE90 - _0223BE38 - 2 ; case 3 + .short _0223BEA8 - _0223BE38 - 2 ; case 4 + .short _0223BECC - _0223BE38 - 2 ; case 5 + .short _0223BEE0 - _0223BE38 - 2 ; case 6 +_0223BE46: + bl FUN_0200E308 + cmp r0, #0 + beq _0223BEEA + mov r0, #0 + str r0, [r4, #8] + add r0, r4, #0 + add r4, #0x30 + add r1, r4, #0 + bl MOD81_0223C3CC + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0223BEEA +_0223BE64: + ldr r1, [r4, #8] + add r1, r1, #1 + str r1, [r4, #8] + cmp r1, #8 + ble _0223BEEA + add r4, #0x34 + add r1, r4, #0 + bl MOD81_0223C300 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0223BEEA +_0223BE7E: + ldr r0, [r4, #0x34] + cmp r0, #0 + bne _0223BEEA + ldr r0, [r4, #0x30] + cmp r0, #0 + bne _0223BEEA + add r0, r1, #1 + str r0, [r5] + b _0223BEEA +_0223BE90: + mov r1, #0 + add r0, #0x14 + mvn r1, r1 + bl MOD81_02238118 + str r0, [r4, #0x10] + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0223BEEA +_0223BEA8: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0x1e + ble _0223BEEA + add r0, r4, #0 + add r0, #0x38 + str r0, [sp] + ldr r0, [r4, #0x24] + mov r1, #0x1f + mov r2, #0 + mov r3, #0x28 + bl MOD81_0223C47C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0223BEEA +_0223BECC: + ldr r0, [r4, #0x38] + cmp r0, #0 + bne _0223BEEA + ldr r0, [r4, #0x10] + bl MOD81_022381EC + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0223BEEA +_0223BEE0: + ldr r0, [r4, #0x14] + cmp r0, #0 + bne _0223BEEA + mov r0, #1 + pop {r3, r4, r5, pc} +_0223BEEA: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD81_0223BE20 + + thumb_func_start MOD81_0223BEF0 +MOD81_0223BEF0: ; 0x0223BEF0 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _0223BF08 + cmp r0, #1 + beq _0223BF30 + cmp r0, #2 + beq _0223BF5A + b _0223BF6E +_0223BF08: + mov r0, #0x4a + lsl r0, r0, #2 + mov r3, #1 + str r0, [sp] + add r0, r5, #0 + str r3, [sp, #4] + add r0, #0x1c + str r0, [sp, #8] + ldr r0, [r5, #0xc] + lsl r1, r3, #0xc + lsl r2, r3, #0xa + bl MOD81_022384AC + str r0, [r5, #0x18] + mov r0, #0 + str r0, [r5, #8] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0223BF6E +_0223BF30: + ldr r0, [r5, #8] + add r0, r0, #1 + str r0, [r5, #8] + cmp r0, #0xd + ble _0223BF6E + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _0223BF6E +_0223BF5A: + bl FUN_0200E308 + cmp r0, #0 + beq _0223BF6E + ldr r0, [r5, #0x1c] + cmp r0, #0 + beq _0223BF6E + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_0223BF6E: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + thumb_func_end MOD81_0223BEF0 + + thumb_func_start MOD81_0223BF74 +MOD81_0223BF74: ; 0x0223BF74 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, _0223C18C ; =0x0223D2EC + bl FUN_0201E66C + ldr r2, _0223C190 ; =0x04000304 + ldrh r1, [r2] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2] + ldr r0, _0223C194 ; =0x0223D294 + bl FUN_02016BBC + ldr r0, [r4, #0xc] + ldr r2, _0223C198 ; =0x0223D2B4 + mov r1, #2 + mov r3, #1 + bl FUN_02016C18 + ldr r0, [r4, #0xc] + ldr r2, _0223C198 ; =0x0223D2B4 + mov r1, #6 + mov r3, #1 + bl FUN_02016C18 + bl OS_DisableInterrupts + add r5, r0, #0 + ldr r0, [r4, #0xc] + ldr r2, _0223C19C ; =0x0223D2D0 + mov r1, #3 + mov r3, #2 + bl FUN_02016C18 + ldr r0, [r4, #0xc] + ldr r2, _0223C19C ; =0x0223D2D0 + mov r1, #7 + mov r3, #2 + bl FUN_02016C18 + add r0, r5, #0 + bl OS_RestoreInterrupts + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + mov r1, #2 + ldr r2, [r4, #0xc] + mov r0, #0x5d + add r3, r1, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x5d + mov r1, #2 + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x5d + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x5d + mov r3, #6 + bl FUN_020068C8 + ldr r0, [r4] + bl MOD81_02238828 + add r5, r0, #0 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3a + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #3 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3a + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #3 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + ldr r0, _0223C1A0 ; =0x0223D280 + lsl r1, r5, #1 + ldrh r5, [r0, r1] + mov r0, #0x20 + str r0, [sp] + mov r0, #0x40 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0x5d + mov r1, #3 + mov r2, #0 + add r3, r5, #0 + bl FUN_02006948 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x40 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #0x5d + mov r1, #3 + mov r2, #4 + add r3, r5, #0 + bl FUN_02006948 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x5d + mov r1, #5 + mov r3, #3 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x5d + mov r1, #5 + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x5d + mov r1, #4 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0xc] + mov r0, #0x5d + mov r1, #4 + mov r3, #7 + bl FUN_020068C8 + mov r0, #0x3a + mov r1, #0x60 + bl FUN_02016998 + add r5, r0, #0 + beq _0223C14A + mov r0, #0 + add r1, r5, #0 + mov r2, #0x60 + bl MIi_CpuClear32 + add r0, r5, #0 + mov r1, #0x60 + bl DC_FlushRange + bl GX_BeginLoadBGExtPltt + bl GXS_BeginLoadBGExtPltt + mov r1, #6 + add r0, r5, #0 + lsl r1, r1, #0xc + mov r2, #0x60 + bl GX_LoadBGExtPltt + mov r1, #6 + add r0, r5, #0 + lsl r1, r1, #0xc + mov r2, #0x60 + bl GXS_LoadBGExtPltt + bl GX_EndLoadBGExtPltt + bl GXS_EndLoadBGExtPltt + add r0, r5, #0 + bl FUN_02016A18 +_0223C14A: + ldr r0, [r4, #0xc] + ldr r3, _0223C1A4 ; =0xFFFFFE80 + mov r1, #2 + mov r2, #3 + bl FUN_020179E0 + mov r2, #3 + add r3, r2, #0 + ldr r0, [r4, #0xc] + mov r1, #6 + sub r3, #0xc3 + bl FUN_020179E0 + mov r1, #3 + ldr r0, [r4, #0xc] + add r2, r1, #0 + mov r3, #0x43 + bl FUN_020179E0 + mov r0, #7 + mov r1, #0 + bl FUN_0201797C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223C18C: .word 0x0223D2EC +_0223C190: .word 0x04000304 +_0223C194: .word 0x0223D294 +_0223C198: .word 0x0223D2B4 +_0223C19C: .word 0x0223D2D0 +_0223C1A0: .word 0x0223D280 +_0223C1A4: .word 0xFFFFFE80 + thumb_func_end MOD81_0223BF74 + + thumb_func_start MOD81_0223C1A8 +MOD81_0223C1A8: ; 0x0223C1A8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _0223C1B8 + ldr r0, [r4, #0x10] + bl MOD81_02238200 +_0223C1B8: + ldr r0, [r4, #0xc] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #6 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #0xc] + mov r1, #7 + bl FUN_020178A0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223C1A8 + + thumb_func_start MOD81_0223C1DC +MOD81_0223C1DC: ; 0x0223C1DC + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + bl FUN_020BB7F4 + bl G3X_InitMtxStack + ldr r0, _0223C2C0 ; =0x04000060 + ldr r1, _0223C2C4 ; =0xFFFFCFFD + ldrh r2, [r0] + and r2, r1 + strh r2, [r0] + ldrh r3, [r0] + add r2, r1, #2 + and r3, r2 + mov r2, #0x10 + orr r2, r3 + strh r2, [r0] + ldrh r3, [r0] + ldr r2, _0223C2C8 ; =0x0000CFFB + and r2, r3 + strh r2, [r0] + add r2, r1, #2 + ldrh r3, [r0] + add r1, r1, #2 + and r3, r2 + mov r2, #8 + orr r2, r3 + strh r2, [r0] + ldrh r2, [r0] + and r2, r1 + mov r1, #0x20 + orr r1, r2 + strh r1, [r0] + ldr r0, _0223C2CC ; =0x0223D2A4 + bl G3X_SetEdgeColorTable + mov r1, #0 + ldr r0, _0223C2D0 ; =0x000043FF + ldr r2, _0223C2D4 ; =0x00007FFF + mov r3, #0x3f + str r1, [sp] + bl G3X_SetClearColor + ldr r1, _0223C2D8 ; =0x04000540 + mov r0, #2 + str r0, [r1] + ldr r0, _0223C2DC ; =0xBFFF0000 + str r0, [r1, #0x40] + mov r0, #1 + add r1, r0, #0 + bl FUN_020AEB70 + mov r0, #1 + lsl r0, r0, #0xe + mov r1, #1 + bl FUN_020AEDF4 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r1, _0223C2E0 ; =0x04000008 + mov r0, #3 + ldrh r2, [r1] + bic r2, r0 + strh r2, [r1] + mov r1, #0 + mov r0, #1 + add r2, r1, #0 + add r3, r1, #0 + bl MOD81_022388C0 + str r0, [r4, #0x20] + mov r1, #0 + mov r0, #0x23 + str r1, [sp] + lsl r0, r0, #0xe + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #1 + str r0, [sp, #0xc] + ldr r0, [r4, #0x20] + mov r2, #0x5d + mov r3, #0x1b + bl MOD81_02238A84 + str r0, [r4, #0x24] + ldr r0, _0223C2E4 ; =0x0223D450 + mov r1, #0 + strh r1, [r0] + strh r1, [r0, #2] + strh r1, [r0, #4] + ldr r0, [r4, #0x20] + ldr r1, _0223C2E8 ; =0x0223D450 + bl MOD81_02238C60 + ldr r0, [r4, #0x20] + mov r1, #1 + bl MOD81_02238C80 + mov r1, #2 + ldr r0, [r4, #0x24] + lsl r1, r1, #0xc + bl MOD81_02238B84 + ldr r0, [r4, #0x24] + add r4, #0x28 + add r1, r4, #0 + bl MOD81_02238B28 + add sp, #0x10 + pop {r4, pc} + nop +_0223C2C0: .word 0x04000060 +_0223C2C4: .word 0xFFFFCFFD +_0223C2C8: .word 0x0000CFFB +_0223C2CC: .word 0x0223D2A4 +_0223C2D0: .word 0x000043FF +_0223C2D4: .word 0x00007FFF +_0223C2D8: .word 0x04000540 +_0223C2DC: .word 0xBFFF0000 +_0223C2E0: .word 0x04000008 +_0223C2E4: .word 0x0223D450 +_0223C2E8: .word 0x0223D450 + thumb_func_end MOD81_0223C1DC + + thumb_func_start MOD81_0223C2EC +MOD81_0223C2EC: ; 0x0223C2EC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x20] + cmp r0, #0 + beq _0223C2FE + bl MOD81_0223890C + mov r0, #0 + str r0, [r4, #0x20] +_0223C2FE: + pop {r4, pc} + thumb_func_end MOD81_0223C2EC + + thumb_func_start MOD81_0223C300 +MOD81_0223C300: ; 0x0223C300 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #0x3a + mov r1, #0x24 + bl FUN_02016998 + add r4, r0, #0 + beq _0223C340 + str r6, [r4] + ldr r0, [r6, #0xc] + add r1, r4, #0 + str r0, [r4, #4] + ldr r0, _0223C344 ; =0xFFE80000 + mov r2, #0 + str r0, [r4, #0xc] + asr r0, r0, #1 + str r0, [r4, #0x10] + ldr r0, _0223C348 ; =0x00009999 + str r0, [r4, #0x14] + mov r0, #0x28 + str r0, [r4, #8] + ldr r0, _0223C34C ; =MOD81_0223C350 + str r5, [r4, #0x1c] + bl FUN_0200CA60 + str r0, [r5] + cmp r0, #0 + bne _0223C340 + add r0, r4, #0 + bl FUN_02016A18 +_0223C340: + pop {r4, r5, r6, pc} + nop +_0223C344: .word 0xFFE80000 +_0223C348: .word 0x00009999 +_0223C34C: .word MOD81_0223C350 + thumb_func_end MOD81_0223C300 + + thumb_func_start MOD81_0223C350 +MOD81_0223C350: ; 0x0223C350 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #8] + cmp r0, #0 + beq _0223C390 + ldr r1, [r4, #0xc] + ldr r0, [r4, #0x14] + mov r2, #3 + add r0, r1, r0 + str r0, [r4, #0xc] + ldr r1, [r4, #0x10] + ldr r0, [r4, #0x14] + add r0, r1, r0 + str r0, [r4, #0x10] + ldr r3, [r4, #0xc] + ldr r0, [r4, #4] + mov r1, #2 + asr r3, r3, #0xc + bl FUN_020179E0 + ldr r3, [r4, #0x10] + ldr r0, [r4, #4] + mov r1, #6 + mov r2, #3 + asr r3, r3, #0xc + bl FUN_020179E0 + ldr r0, [r4, #8] + sub r0, r0, #1 + str r0, [r4, #8] + pop {r3, r4, r5, pc} +_0223C390: + ldr r0, [r4, #4] + mov r1, #2 + mov r2, #3 + mov r3, #0 + bl FUN_020179E0 + ldr r0, [r4, #4] + mov r1, #6 + mov r2, #3 + mov r3, #0xc0 + bl FUN_020179E0 + add r0, r5, #0 + bl MOD81_0223C3B0 + pop {r3, r4, r5, pc} + thumb_func_end MOD81_0223C350 + + thumb_func_start MOD81_0223C3B0 +MOD81_0223C3B0: ; 0x0223C3B0 + push {r4, lr} + add r4, r0, #0 + beq _0223C3CA + bl FUN_0201B6C8 + ldr r1, [r0, #0x1c] + mov r2, #0 + str r2, [r1] + bl MOD81_02238898 + add r0, r4, #0 + bl FUN_0200CAB4 +_0223C3CA: + pop {r4, pc} + thumb_func_end MOD81_0223C3B0 + + thumb_func_start MOD81_0223C3CC +MOD81_0223C3CC: ; 0x0223C3CC + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #0x3a + mov r1, #0x1c + bl FUN_02016998 + add r4, r0, #0 + beq _0223C418 + str r5, [r4] + ldr r0, [r6, #0x24] + add r1, r4, #0 + str r0, [r4, #8] + add r1, #0xc + bl MOD81_02238B08 + mov r0, #0x32 + ldr r1, [r4, #0x10] + lsl r0, r0, #0xc + sub r1, r0, r1 + asr r0, r1, #3 + lsr r0, r0, #0x1c + add r0, r1, r0 + asr r0, r0, #4 + str r0, [r4, #0x18] + mov r0, #0x10 + str r0, [r4, #4] + ldr r0, _0223C41C ; =MOD81_0223C420 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + str r0, [r5] + cmp r0, #0 + bne _0223C418 + add r0, r4, #0 + bl FUN_02016A18 +_0223C418: + pop {r4, r5, r6, pc} + nop +_0223C41C: .word MOD81_0223C420 + thumb_func_end MOD81_0223C3CC + + thumb_func_start MOD81_0223C420 +MOD81_0223C420: ; 0x0223C420 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #4] + cmp r0, #0 + beq _0223C446 + ldr r1, [r4, #0x10] + ldr r0, [r4, #0x18] + add r0, r1, r0 + str r0, [r4, #0x10] + add r1, r4, #0 + ldr r0, [r4, #8] + add r1, #0xc + bl MOD81_02238B18 + ldr r0, [r4, #4] + sub r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, r5, pc} +_0223C446: + mov r0, #0x32 + lsl r0, r0, #0xc + str r0, [r4, #0x10] + ldr r0, [r4, #8] + add r4, #0xc + add r1, r4, #0 + bl MOD81_02238B18 + add r0, r5, #0 + bl MOD81_0223C460 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD81_0223C420 + + thumb_func_start MOD81_0223C460 +MOD81_0223C460: ; 0x0223C460 + push {r4, lr} + add r4, r0, #0 + beq _0223C47A + bl FUN_0201B6C8 + ldr r1, [r0] + mov r2, #0 + str r2, [r1] + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_0200CAB4 +_0223C47A: + pop {r4, pc} + thumb_func_end MOD81_0223C460 + + thumb_func_start MOD81_0223C47C +MOD81_0223C47C: ; 0x0223C47C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + str r0, [sp] + add r6, r1, #0 + mov r0, #0x3a + mov r1, #0x18 + str r2, [sp, #4] + add r7, r3, #0 + ldr r5, [sp, #0x20] + bl FUN_02016998 + add r4, r0, #0 + beq _0223C4D4 + str r5, [r4] + lsl r0, r6, #0xc + str r0, [r4, #4] + ldr r0, [sp, #4] + lsl r1, r0, #0xc + str r1, [r4, #0xc] + ldr r0, [r4, #4] + sub r0, r1, r0 + add r1, r7, #0 + bl _s32_div_f + str r0, [r4, #8] + ldr r0, [sp] + str r7, [r4, #0x10] + add r1, r6, #0 + str r0, [r4, #0x14] + bl MOD81_02238B5C + ldr r0, _0223C4DC ; =MOD81_0223C4E0 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + str r0, [r5] + cmp r0, #0 + bne _0223C4D8 + add r0, r4, #0 + bl FUN_02016A18 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_0223C4D4: + mov r0, #0 + str r0, [r5] +_0223C4D8: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0223C4DC: .word MOD81_0223C4E0 + thumb_func_end MOD81_0223C47C + + thumb_func_start MOD81_0223C4E0 +MOD81_0223C4E0: ; 0x0223C4E0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r1, #0x10] + sub r0, r0, #1 + str r0, [r1, #0x10] + cmp r0, #0 + ble _0223C500 + ldr r2, [r1, #4] + ldr r0, [r1, #8] + add r2, r2, r0 + str r2, [r1, #4] + ldr r0, [r1, #0x14] + asr r1, r2, #0xc + bl MOD81_02238B5C + pop {r4, pc} +_0223C500: + ldr r0, [r1, #0x14] + ldr r1, [r1, #0xc] + asr r1, r1, #0xc + bl MOD81_02238B5C + add r0, r4, #0 + bl MOD81_0223C514 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223C4E0 + + thumb_func_start MOD81_0223C514 +MOD81_0223C514: ; 0x0223C514 + push {r4, lr} + add r4, r0, #0 + beq _0223C52E + bl FUN_0201B6C8 + ldr r1, [r0] + mov r2, #0 + str r2, [r1] + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_0200CAB4 +_0223C52E: + pop {r4, pc} + thumb_func_end MOD81_0223C514 + + thumb_func_start MOD81_0223C530 +MOD81_0223C530: ; 0x0223C530 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x3a + mov r1, #0x70 + bl FUN_02016998 + add r4, r0, #0 + beq _0223C57A + str r5, [r4] + mov r0, #0 + str r0, [r4, #4] + add r0, r5, #0 + bl MOD81_0223880C + str r0, [r4, #0x44] + mov r0, #0x3a + bl FUN_02006D98 + str r0, [r4, #0x10] + mov r0, #0 + str r0, [r4, #0x14] + mov r0, #0x4b + lsl r0, r0, #2 + mov r1, #0x3a + bl FUN_020219F4 + str r0, [r4, #0x58] + mov r0, #0x4b + lsl r0, r0, #2 + mov r1, #0x3a + bl FUN_020219F4 + str r0, [r4, #0x5c] + mov r0, #0 + str r0, [r4, #0x68] + str r0, [r4, #0x6c] + str r0, [r4, #0x60] +_0223C57A: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD81_0223C530 + + thumb_func_start MOD81_0223C580 +MOD81_0223C580: ; 0x0223C580 + push {r4, lr} + add r4, r0, #0 + beq _0223C5D2 + bl MOD81_0223CD08 + add r0, r4, #0 + bl MOD81_0223CC84 + ldr r0, [r4, #0x6c] + bl MOD81_0223CDE0 + ldr r0, [r4, #0x58] + bl FUN_02021A20 + ldr r0, [r4, #0x5c] + bl FUN_02021A20 + ldr r0, [r4, #0x60] + cmp r0, #0 + beq _0223C5AC + bl MOD81_0223890C +_0223C5AC: + ldr r0, [r4, #0x44] + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + add r0, #0x48 + bl FUN_02019178 + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _0223C5C6 + bl FUN_02007534 +_0223C5C6: + ldr r0, [r4, #0x10] + bl FUN_020072E8 + add r0, r4, #0 + bl FUN_02016A18 +_0223C5D2: + pop {r4, pc} + thumb_func_end MOD81_0223C580 + + thumb_func_start MOD81_0223C5D4 +MOD81_0223C5D4: ; 0x0223C5D4 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r2, [r4] + add r5, r0, #0 + cmp r2, #4 + bhs _0223C602 + lsl r3, r2, #2 + ldr r2, _0223C608 ; =0x0223D31C + add r1, r5, #4 + ldr r2, [r2, r3] + blx r2 + cmp r0, #0 + beq _0223C5F8 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + mov r0, #0 + str r0, [r5, #4] +_0223C5F8: + add r0, r5, #0 + bl MOD81_0223C60C + mov r0, #0 + pop {r3, r4, r5, pc} +_0223C602: + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_0223C608: .word 0x0223D31C + thumb_func_end MOD81_0223C5D4 + + thumb_func_start MOD81_0223C60C +MOD81_0223C60C: ; 0x0223C60C + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl G3X_ResetMtxStack + mov r1, #0 + mov r0, #0x11 + add r2, r1, #0 + bl FUN_020BB1C0 + bl FUN_020BB394 + bl FUN_020B02C8 + ldr r0, [r4, #0x10] + bl FUN_020081C4 + ldr r0, [r4, #0x10] + bl FUN_02006ED4 + mov r2, #1 + str r2, [sp] + mov r0, #0x12 + add r1, sp, #0 + bl FUN_020BB1C0 + ldr r0, [r4, #0x60] + cmp r0, #0 + beq _0223C64A + bl MOD81_02238940 +_0223C64A: + mov r0, #0 + add r1, r0, #0 + bl FUN_020222B4 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223C60C + + thumb_func_start MOD81_0223C658 +MOD81_0223C658: ; 0x0223C658 + push {r3, r4, lr} + sub sp, #0x1c + add r4, r0, #0 + ldr r0, _0223C808 ; =0x0223D374 + bl FUN_0201E66C + ldr r2, _0223C80C ; =0x04000304 + ldrh r1, [r2] + lsr r0, r2, #0xb + orr r0, r1 + strh r0, [r2] + ldr r0, _0223C810 ; =0x0223D32C + bl FUN_02016BBC + ldr r0, [r4, #0x44] + ldr r2, _0223C814 ; =0x0223D33C + mov r1, #1 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x44] + ldr r2, _0223C818 ; =0x0223D358 + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r2, _0223C81C ; =0x04000008 + mov r0, #3 + ldrh r3, [r2] + mov r1, #1 + bic r3, r0 + add r0, r3, #0 + orr r0, r1 + strh r0, [r2] + mov r2, #0 + str r2, [sp] + ldr r0, [r4, #0x44] + add r3, r1, #0 + bl FUN_02017F48 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r4, #0x44] + mov r1, #1 + add r3, r2, #0 + bl FUN_02018540 + ldr r0, [r4] + bl MOD81_02238844 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x3a + str r0, [sp, #4] + ldr r0, [r4, #0x44] + mov r1, #1 + mov r2, #0x6d + mov r3, #2 + bl FUN_0200CD68 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + add r1, r4, #0 + str r0, [sp, #8] + mov r2, #1 + str r2, [sp, #0xc] + str r2, [sp, #0x10] + ldr r0, [r4, #0x44] + add r1, #0x48 + mov r3, #2 + bl FUN_02019064 + add r0, r4, #0 + add r0, #0x48 + mov r1, #0xf + bl FUN_02019620 + mov r3, #0x20 + str r3, [sp] + mov r0, #0x3a + str r0, [sp, #4] + mov r0, #0xe + mov r1, #7 + mov r2, #0 + bl FUN_02006930 + ldr r0, [r4, #0x44] + mov r1, #1 + bl FUN_02017CD0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0x44] + mov r0, #0x5d + mov r1, #0x16 + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + ldr r2, [r4, #0x44] + mov r0, #0x5d + mov r1, #0x15 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x3a + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #0x17 + add r3, r2, #0 + bl FUN_02006930 + add r0, r4, #0 + bl MOD81_0223CAC4 + mov r1, #0 + mov r0, #1 + add r2, r1, #0 + add r3, r1, #0 + bl MOD81_022388C0 + str r0, [r4, #0x60] + add r0, r4, #0 + bl MOD81_0223CB90 + mov r1, #6 + mov r2, #1 + str r0, [r4, #0x14] + bl FUN_02007558 + mov r1, #0 + mov r0, #0x13 + str r1, [sp] + lsl r0, r0, #0xc + str r0, [sp, #4] + mov r0, #0x1e + lsl r0, r0, #0xe + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [r4, #0x60] + mov r2, #0x5d + mov r3, #0x1b + bl MOD81_02238A84 + ldr r2, _0223C820 ; =0x0223D314 + str r0, [r4, #0x64] + ldrh r3, [r2] + add r0, sp, #0x14 + add r1, sp, #0x14 + strh r3, [r0] + ldrh r3, [r2, #2] + ldrh r2, [r2, #4] + strh r3, [r0, #2] + strh r2, [r0, #4] + ldr r0, [r4, #0x64] + bl MOD81_02238B40 + add r0, r4, #0 + bl MOD81_0223CBE0 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + mov r0, #0 + str r0, [sp] + ldr r0, _0223C824 ; =0x04000050 + mov r1, #1 + mov r2, #4 + mov r3, #0x10 + bl G2x_SetBlendAlpha_ + mov r0, #0x10 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + mov r3, #0 + bl FUN_0200E1D0 + mov r0, #1 + add sp, #0x1c + pop {r3, r4, pc} + .align 2, 0 +_0223C808: .word 0x0223D374 +_0223C80C: .word 0x04000304 +_0223C810: .word 0x0223D32C +_0223C814: .word 0x0223D33C +_0223C818: .word 0x0223D358 +_0223C81C: .word 0x04000008 +_0223C820: .word 0x0223D314 +_0223C824: .word 0x04000050 + thumb_func_end MOD81_0223C658 + + thumb_func_start MOD81_0223C828 +MOD81_0223C828: ; 0x0223C828 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r1] + cmp r0, #0 + bne _0223C84E + bl FUN_0200E308 + cmp r0, #0 + beq _0223C84E + ldr r0, [r4, #0x2c] + mov r1, #1 + bl FUN_02020130 + ldr r0, [r4, #0x2c] + mov r1, #1 + bl FUN_020200A0 + mov r0, #1 + pop {r4, pc} +_0223C84E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223C828 + + thumb_func_start MOD81_0223C854 +MOD81_0223C854: ; 0x0223C854 + push {r3, r4, r5, lr} + add r5, r1, #0 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #4 + bhi _0223C91C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0223C86C: ; jump table + .short _0223C876 - _0223C86C - 2 ; case 0 + .short _0223C884 - _0223C86C - 2 ; case 1 + .short _0223C8AE - _0223C86C - 2 ; case 2 + .short _0223C8D6 - _0223C86C - 2 ; case 3 + .short _0223C90E - _0223C86C - 2 ; case 4 +_0223C876: + add r1, r4, #0 + add r1, #0x6c + bl MOD81_0223CD64 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] +_0223C884: + ldr r0, [r4, #0x6c] + cmp r0, #0 + bne _0223C91C + ldr r0, [r4, #0x30] + mov r1, #2 + bl FUN_02020130 + ldr r0, [r4, #0x30] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r4, #0x64] + mov r1, #0 + bl MOD81_02238B58 + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0223C91C +_0223C8AE: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0xa + ble _0223C91C + ldr r0, [r4, #0x14] + mov r1, #6 + mov r2, #0 + bl FUN_02007558 + add r0, r4, #0 + mov r1, #0x10 + mov r2, #0 + mov r3, #0xc + bl MOD81_0223CCA8 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + b _0223C91C +_0223C8D6: + bl MOD81_0223CCF8 + cmp r0, #0 + beq _0223C91C + ldr r0, [r4] + bl MOD81_02238820 + mov r1, #0x4c + mov r2, #0 + bl FUN_020672BC + cmp r0, #0 + bne _0223C902 + ldr r0, [r4] + bl MOD81_02238838 + bl FUN_02005578 + ldr r0, [r4, #0x14] + mov r1, #1 + bl FUN_02007314 +_0223C902: + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0223C91C +_0223C90E: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0x1e + ble _0223C91C + mov r0, #1 + pop {r3, r4, r5, pc} +_0223C91C: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD81_0223C854 + + thumb_func_start MOD81_0223C920 +MOD81_0223C920: ; 0x0223C920 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r1, #0 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #5 + bhi _0223C95C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0223C93A: ; jump table + .short _0223C946 - _0223C93A - 2 ; case 0 + .short _0223C952 - _0223C93A - 2 ; case 1 + .short _0223C9D0 - _0223C93A - 2 ; case 2 + .short _0223CA32 - _0223C93A - 2 ; case 3 + .short _0223CA52 - _0223C93A - 2 ; case 4 + .short _0223CA7C - _0223C93A - 2 ; case 5 +_0223C946: + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0223CA8A +_0223C952: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0xa + bgt _0223C95E +_0223C95C: + b _0223CA8A +_0223C95E: + ldr r0, [r4] + bl MOD81_02238814 + str r0, [sp, #0xc] + ldr r0, [r4] + bl MOD81_02238810 + add r7, r0, #0 + ldr r0, [r4] + bl MOD81_02238850 + cmp r0, #1 + bne _0223C97E + mov r1, #2 + add r6, r1, #0 + b _0223C982 +_0223C97E: + mov r1, #5 + mov r6, #3 +_0223C982: + ldr r0, [sp, #0xc] + ldr r2, [r4, #0x58] + bl FUN_0200A8E0 + ldr r1, [r4, #0x5c] + ldr r2, [r4, #0x58] + add r0, r7, #0 + bl FUN_0200B7B8 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r3, [sp, #8] + add r0, r4, #0 + ldr r2, [r4, #0x5c] + add r0, #0x48 + mov r1, #1 + bl FUN_0201BD84 + add r0, r4, #0 + add r0, #0x48 + mov r1, #0x6d + mov r2, #2 + bl FUN_0200D06C + add r0, r4, #0 + add r0, #0x48 + bl FUN_020191D0 + ldr r0, _0223CA90 ; =0x00000484 + bl FUN_02005C28 + mov r0, #0 + str r0, [r4, #8] + mov r0, #1 + str r0, [r4, #0xc] + str r6, [r5] + b _0223CA8A +_0223C9D0: + mov r1, #0x3c + bl MOD81_0223CA94 + cmp r0, #0 + beq _0223CA8A + ldr r0, [r4] + bl MOD81_02238814 + add r6, r0, #0 + ldr r0, [r4] + bl MOD81_02238810 + add r7, r0, #0 + ldr r2, [r4, #0x58] + add r0, r6, #0 + mov r1, #3 + bl FUN_0200A8E0 + ldr r1, [r4, #0x5c] + ldr r2, [r4, #0x58] + add r0, r7, #0 + bl FUN_0200B7B8 + add r0, r4, #0 + add r0, #0x48 + mov r1, #0xf + bl FUN_02019620 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r3, [sp, #8] + add r0, r4, #0 + ldr r2, [r4, #0x5c] + add r0, #0x48 + mov r1, #1 + bl FUN_0201BD84 + add r0, r4, #0 + add r0, #0x48 + bl FUN_02019548 + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0223CA8A +_0223CA32: + mov r1, #0x3c + bl MOD81_0223CA94 + cmp r0, #0 + beq _0223CA8A + add r0, r4, #0 + add r0, #0x48 + mov r1, #0 + bl FUN_0200D0E0 + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0223CA8A +_0223CA52: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0xa + ble _0223CA8A + mov r0, #0x10 + str r0, [sp] + mov r1, #0 + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x3a + str r0, [sp, #8] + mov r0, #3 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _0223CA8A +_0223CA7C: + bl FUN_0200E308 + cmp r0, #0 + beq _0223CA8A + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0223CA8A: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0223CA90: .word 0x00000484 + thumb_func_end MOD81_0223C920 + + thumb_func_start MOD81_0223CA94 +MOD81_0223CA94: ; 0x0223CA94 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0xc] + add r4, r1, #0 + cmp r0, #0 + beq _0223CAA6 + bl FUN_02005CBC + str r0, [r5, #0xc] +_0223CAA6: + ldr r0, [r5, #8] + cmp r0, r4 + bge _0223CAB4 + add r0, r0, #1 + str r0, [r5, #8] + mov r0, #0 + pop {r3, r4, r5, pc} +_0223CAB4: + ldr r0, [r5, #0xc] + cmp r0, #0 + bne _0223CABE + mov r0, #1 + pop {r3, r4, r5, pc} +_0223CABE: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD81_0223CA94 + + thumb_func_start MOD81_0223CAC4 +MOD81_0223CAC4: ; 0x0223CAC4 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + bl FUN_020BB7F4 + bl G3X_InitMtxStack + ldr r0, _0223CB6C ; =0x04000060 + ldr r2, _0223CB70 ; =0xFFFFCFFD + ldrh r1, [r0] + and r1, r2 + strh r1, [r0] + ldrh r3, [r0] + add r1, r2, #2 + and r3, r1 + mov r1, #0x10 + orr r1, r3 + strh r1, [r0] + ldrh r3, [r0] + ldr r1, _0223CB74 ; =0x0000CFFB + and r1, r3 + strh r1, [r0] + add r1, r2, #2 + ldrh r3, [r0] + lsr r2, r2, #0x11 + and r3, r1 + mov r1, #8 + orr r1, r3 + strh r1, [r0] + mov r0, #0 + add r1, r0, #0 + mov r3, #0x3f + str r0, [sp] + bl G3X_SetClearColor + ldr r1, _0223CB78 ; =0x04000540 + mov r0, #2 + str r0, [r1] + ldr r0, _0223CB7C ; =0xBFFF0000 + str r0, [r1, #0x40] + mov r0, #1 + add r1, r0, #0 + bl FUN_020AEB70 + mov r0, #1 + lsl r0, r0, #0xe + mov r1, #1 + bl FUN_020AEDF4 + ldr r3, _0223CB80 ; =0x021064B8 + mov r0, #1 + mov r1, #0 + ldr r3, [r3] + lsl r0, r0, #0xe + add r2, r1, #0 + blx r3 + ldr r3, _0223CB84 ; =0x021064C0 + add r4, r0, #0 + ldr r3, [r3] + mov r0, #0x80 + mov r1, #0 + mov r2, #1 + blx r3 + ldr r2, _0223CB88 ; =0x7FFF0000 + add r6, r0, #0 + and r2, r4 + lsl r1, r4, #0x10 + lsr r2, r2, #0x10 + ldr r0, [r5, #0x10] + lsr r1, r1, #0xd + lsl r2, r2, #4 + bl FUN_020081A8 + ldr r2, _0223CB8C ; =0xFFFF0000 + lsl r1, r6, #0x10 + and r2, r6 + lsr r2, r2, #0x10 + ldr r0, [r5, #0x10] + lsr r1, r1, #0xd + lsl r2, r2, #3 + bl FUN_020081B4 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0223CB6C: .word 0x04000060 +_0223CB70: .word 0xFFFFCFFD +_0223CB74: .word 0x0000CFFB +_0223CB78: .word 0x04000540 +_0223CB7C: .word 0xBFFF0000 +_0223CB80: .word 0x021064B8 +_0223CB84: .word 0x021064C0 +_0223CB88: .word 0x7FFF0000 +_0223CB8C: .word 0xFFFF0000 + thumb_func_end MOD81_0223CAC4 + + thumb_func_start MOD81_0223CB90 +MOD81_0223CB90: ; 0x0223CB90 + push {r3, r4, r5, lr} + sub sp, #0x20 + add r4, r0, #0 + ldr r0, [r4] + bl MOD81_02238820 + add r5, r0, #0 + add r0, sp, #0x10 + add r1, r5, #0 + mov r2, #2 + bl FUN_02068B70 + ldr r0, [r4] + bl MOD81_02238838 + add r1, r0, #0 + add r0, r4, #0 + add r0, #0x18 + bl FUN_02069010 + add r0, r5, #0 + mov r1, #2 + bl FUN_02068E1C + add r3, r0, #0 + mov r1, #0 + str r1, [sp] + add r0, r4, #0 + str r1, [sp, #4] + add r0, #0x18 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [r4, #0x10] + add r3, #0x50 + add r1, sp, #0x10 + mov r2, #0x80 + bl FUN_020073A0 + add sp, #0x20 + pop {r3, r4, r5, pc} + thumb_func_end MOD81_0223CB90 + + thumb_func_start MOD81_0223CBE0 +MOD81_0223CBE0: ; 0x0223CBE0 + push {r4, lr} + sub sp, #0x70 + add r4, r0, #0 + add r0, #0x34 + mov r1, #0x5d + mov r2, #7 + mov r3, #8 + bl MOD81_0223874C + add r0, sp, #0x5c + bl FUN_020B19DC + add r0, sp, #0x38 + bl FUN_020B1A24 + mov r3, #0 + str r3, [sp] + mov r2, #1 + str r2, [sp, #4] + str r3, [sp, #8] + mov r0, #0x3a + str r0, [sp, #0xc] + add r0, sp, #0x38 + str r0, [sp, #0x10] + mov r0, #0x5d + mov r1, #9 + bl FUN_02006AE4 + mov r0, #0x3a + str r0, [sp] + add r0, sp, #0x5c + str r0, [sp, #4] + mov r0, #0x5d + mov r1, #0xa + mov r2, #1 + mov r3, #0 + bl FUN_02006A8C + mov r0, #2 + add r1, r4, #0 + str r0, [sp] + add r0, sp, #0x14 + add r1, #0x34 + add r2, sp, #0x38 + add r3, sp, #0x5c + bl MOD81_022387A8 + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + add r1, sp, #0x14 + mov r2, #0x80 + mov r3, #0x64 + bl MOD81_022387C8 + str r0, [r4, #0x2c] + mov r0, #0 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + add r1, sp, #0x14 + mov r2, #0x80 + mov r3, #0x5a + bl MOD81_022387C8 + str r0, [r4, #0x30] + mov r1, #1 + bl FUN_02020238 + ldr r0, [r4, #0x2c] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4, #0x30] + mov r1, #0 + bl FUN_020200A0 + add sp, #0x70 + pop {r4, pc} + thumb_func_end MOD81_0223CBE0 + + thumb_func_start MOD81_0223CC84 +MOD81_0223CC84: ; 0x0223CC84 + push {r4, r5, r6, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 +_0223CC8C: + ldr r0, [r5, #0x2c] + cmp r0, #0 + beq _0223CC96 + bl FUN_0201FFC8 +_0223CC96: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #2 + blt _0223CC8C + add r6, #0x34 + add r0, r6, #0 + bl MOD81_02238784 + pop {r4, r5, r6, pc} + thumb_func_end MOD81_0223CC84 + + thumb_func_start MOD81_0223CCA8 +MOD81_0223CCA8: ; 0x0223CCA8 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x3a + mov r1, #0x14 + str r2, [sp] + add r7, r3, #0 + bl FUN_02016998 + add r4, r0, #0 + beq _0223CCEE + str r5, [r4] + lsl r0, r6, #0xc + str r0, [r4, #4] + ldr r0, [sp] + lsl r1, r0, #0xc + str r1, [r4, #8] + ldr r0, [r4, #4] + sub r0, r1, r0 + add r1, r7, #0 + bl _s32_div_f + str r0, [r4, #0xc] + ldr r0, _0223CCF0 ; =MOD81_0223CD28 + str r7, [r4, #0x10] + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA60 + str r0, [r5, #0x68] + ldr r0, _0223CCF4 ; =0x04000050 + mov r1, #1 + add r2, r6, #0 + bl G2x_SetBlendBrightness_ +_0223CCEE: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0223CCF0: .word MOD81_0223CD28 +_0223CCF4: .word 0x04000050 + thumb_func_end MOD81_0223CCA8 + + thumb_func_start MOD81_0223CCF8 +MOD81_0223CCF8: ; 0x0223CCF8 + ldr r0, [r0, #0x68] + cmp r0, #0 + bne _0223CD02 + mov r0, #1 + bx lr +_0223CD02: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD81_0223CCF8 + + thumb_func_start MOD81_0223CD08 +MOD81_0223CD08: ; 0x0223CD08 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x68] + cmp r0, #0 + beq _0223CD24 + bl FUN_0201B6C8 + bl MOD81_02238898 + ldr r0, [r4, #0x68] + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x68] +_0223CD24: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD81_0223CD08 + + thumb_func_start MOD81_0223CD28 +MOD81_0223CD28: ; 0x0223CD28 + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #0x10] + sub r0, r0, #1 + str r0, [r4, #0x10] + cmp r0, #0 + ble _0223CD4A + ldr r1, [r4, #4] + ldr r0, [r4, #0xc] + add r2, r1, r0 + str r2, [r4, #4] + ldr r0, _0223CD60 ; =0x04000050 + mov r1, #1 + asr r2, r2, #0xc + bl G2x_SetBlendBrightness_ + pop {r4, pc} +_0223CD4A: + ldr r2, [r4, #8] + ldr r0, _0223CD60 ; =0x04000050 + mov r1, #1 + asr r2, r2, #0xc + bl G2x_SetBlendBrightness_ + ldr r0, [r4] + bl MOD81_0223CD08 + pop {r4, pc} + nop +_0223CD60: .word 0x04000050 + thumb_func_end MOD81_0223CD28 + + thumb_func_start MOD81_0223CD64 +MOD81_0223CD64: ; 0x0223CD64 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x3a + mov r1, #0x44 + bl FUN_02016998 + add r4, r0, #0 + beq _0223CDD2 + mov r1, #0 + str r1, [r4, #4] + str r6, [r4] + ldr r0, [r5, #0x60] + str r0, [r4, #0x10] + ldr r0, [r5, #0x64] + str r0, [r4, #0x14] + str r5, [r4, #8] + ldr r0, _0223CDD8 ; =0x000018CC + str r1, [r4, #0x18] + str r0, [r4, #0x1c] + mov r0, #0x14 + str r0, [r4, #0x20] + mov r0, #1 + lsl r0, r0, #0xc + strh r0, [r4, #0x3a] + str r1, [r4, #0x40] + ldr r0, [r4, #0x14] + bl MOD81_02238B5C + ldr r0, [r4, #0x14] + mov r1, #1 + bl MOD81_02238B58 + add r1, r4, #0 + ldr r0, [r4, #0x14] + add r1, #0x24 + bl MOD81_02238B08 + add r1, r4, #0 + ldr r0, [r4, #0x14] + add r1, #0x34 + bl MOD81_02238B28 + ldr r0, _0223CDDC ; =MOD81_0223CE54 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + str r0, [r6] + cmp r0, #0 + bne _0223CDD6 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, r5, r6, pc} +_0223CDD2: + mov r0, #0 + str r0, [r6] +_0223CDD6: + pop {r4, r5, r6, pc} + .align 2, 0 +_0223CDD8: .word 0x000018CC +_0223CDDC: .word MOD81_0223CE54 + thumb_func_end MOD81_0223CD64 + + thumb_func_start MOD81_0223CDE0 +MOD81_0223CDE0: ; 0x0223CDE0 + push {r4, lr} + add r4, r0, #0 + beq _0223CDFA + bl FUN_0201B6C8 + ldr r1, [r0] + mov r2, #0 + str r2, [r1] + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_0200CAB4 +_0223CDFA: + pop {r4, pc} + thumb_func_end MOD81_0223CDE0 + + thumb_func_start MOD81_0223CDFC +MOD81_0223CDFC: ; 0x0223CDFC + add r1, r0, #0 + ldr r0, [r1, #0x40] + cmp r0, #0 + beq _0223CE1E + mov r0, #0x3a + ldrsh r2, [r1, r0] + mov r0, #0x3c + ldrsh r0, [r1, r0] + add r0, r2, r0 + strh r0, [r1, #0x3a] + ldr r0, [r1, #0x40] + sub r0, r0, #1 + str r0, [r1, #0x40] + bne _0223CE1E + mov r0, #0x3e + ldrsh r0, [r1, r0] + strh r0, [r1, #0x3a] +_0223CE1E: + mov r0, #0x36 + ldrsh r2, [r1, r0] + mov r0, #0x3a + ldrsh r0, [r1, r0] + ldr r3, _0223CE34 ; =MOD81_02238B40 + add r0, r2, r0 + strh r0, [r1, #0x36] + ldr r0, [r1, #0x14] + add r1, #0x34 + bx r3 + nop +_0223CE34: .word MOD81_02238B40 + thumb_func_end MOD81_0223CDFC + + thumb_func_start MOD81_0223CE38 +MOD81_0223CE38: ; 0x0223CE38 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r2, #0 + beq _0223CE50 + mov r0, #0x3a + ldrsh r0, [r5, r0] + sub r0, r1, r0 + add r1, r4, #0 + bl _s32_div_f + strh r0, [r5, #0x3c] + str r4, [r5, #0x40] +_0223CE50: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD81_0223CE38 + + thumb_func_start MOD81_0223CE54 +MOD81_0223CE54: ; 0x0223CE54 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + add r0, r4, #0 + bl MOD81_0223CDFC + ldr r0, [r4, #4] + cmp r0, #5 + bhi _0223CF62 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223CE72: ; jump table + .short _0223CE7E - _0223CE72 - 2 ; case 0 + .short _0223CEAE - _0223CE72 - 2 ; case 1 + .short _0223CEC6 - _0223CE72 - 2 ; case 2 + .short _0223CEDC - _0223CE72 - 2 ; case 3 + .short _0223CF24 - _0223CE72 - 2 ; case 4 + .short _0223CF52 - _0223CE72 - 2 ; case 5 +_0223CE7E: + ldr r0, [r4, #0x20] + cmp r0, #0 + beq _0223CE9E + ldr r1, [r4, #0x18] + ldr r0, [r4, #0x1c] + add r0, r1, r0 + str r0, [r4, #0x18] + ldr r0, [r4, #0x20] + sub r0, r0, #1 + str r0, [r4, #0x20] + ldr r1, [r4, #0x18] + ldr r0, [r4, #0x14] + asr r1, r1, #0xc + bl MOD81_02238B5C + pop {r3, r4, r5, pc} +_0223CE9E: + ldr r0, [r4, #0x14] + mov r1, #0x1f + bl MOD81_02238B5C + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, r5, pc} +_0223CEAE: + mov r1, #6 + add r0, r4, #0 + lsl r1, r1, #6 + mov r2, #0x1e + bl MOD81_0223CE38 + mov r0, #0 + str r0, [r4, #0xc] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, r5, pc} +_0223CEC6: + ldr r0, [r4, #0xc] + add r0, r0, #1 + str r0, [r4, #0xc] + cmp r0, #0xa + ble _0223CF62 + mov r0, #0 + str r0, [r4, #0x30] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, r5, pc} +_0223CEDC: + ldr r1, [r4, #0x28] + ldr r0, [r4, #0x30] + add r0, r1, r0 + str r0, [r4, #0x28] + mov r0, #0x1e + ldr r1, [r4, #0x30] + lsl r0, r0, #6 + sub r0, r1, r0 + str r0, [r4, #0x30] + add r1, r4, #0 + ldr r0, [r4, #0x14] + add r1, #0x24 + bl MOD81_02238B18 + ldr r1, [r4, #0x28] + ldr r0, _0223CF64 ; =0xFFFF5000 + cmp r1, r0 + bge _0223CF62 + ldr r0, _0223CF68 ; =0x000005E6 + bl FUN_020054C8 + mov r0, #0 + ldr r1, [r4, #0x30] + mvn r0, r0 + mul r0, r1 + str r0, [r4, #0x30] + ldr r0, [r4, #8] + mov r1, #0 + mov r2, #0x10 + mov r3, #8 + bl MOD81_0223CCA8 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, r5, pc} +_0223CF24: + ldr r1, [r4, #0x28] + ldr r0, [r4, #0x30] + add r1, r1, r0 + mov r0, #0x13 + lsl r0, r0, #0xc + str r1, [r4, #0x28] + cmp r1, r0 + blt _0223CF36 + str r0, [r4, #0x28] +_0223CF36: + add r1, r4, #0 + ldr r0, [r4, #0x14] + add r1, #0x24 + bl MOD81_02238B18 + mov r0, #0x13 + ldr r1, [r4, #0x28] + lsl r0, r0, #0xc + cmp r1, r0 + bne _0223CF62 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + pop {r3, r4, r5, pc} +_0223CF52: + ldr r0, [r4, #8] + bl MOD81_0223CCF8 + cmp r0, #0 + beq _0223CF62 + add r0, r5, #0 + bl MOD81_0223CDE0 +_0223CF62: + pop {r3, r4, r5, pc} + .align 2, 0 +_0223CF64: .word 0xFFFF5000 +_0223CF68: .word 0x000005E6 + thumb_func_end MOD81_0223CE54 + + .section .rodata + ; 0x0223CF6C + .incbin "baserom.nds", 0x2EEB2C, 0x430 + + .section .data + ; 0x0223D3A0 + .incbin "baserom.nds", 0x2EEF60, 0x20 + + .section .bss + ; 0x0223D3C0 + .space 0xA0 diff --git a/arm9/modules/82/asm/module_82.s b/arm9/modules/82/asm/module_82.s new file mode 100644 index 00000000..962ebed4 --- /dev/null +++ b/arm9/modules/82/asm/module_82.s @@ -0,0 +1,4455 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD82_0222D5C0 +MOD82_0222D5C0: ; 0x0222D5C0 + push {r3, r4} + ldr r3, _0222D5D8 ; =0x0222FB00 + mov r4, #1 + str r4, [r3] + mov r4, #0 + str r4, [r3, #4] + str r0, [r3, #8] + str r1, [r3, #0xc] + str r2, [r3, #0x10] + pop {r3, r4} + bx lr + nop +_0222D5D8: .word 0x0222FB00 + thumb_func_end MOD82_0222D5C0 + + thumb_func_start MOD82_0222D5DC +MOD82_0222D5DC: ; 0x0222D5DC + push {r3, lr} + ldr r1, _0222D7B8 ; =0x0222FB00 + ldr r0, [r1] + cmp r0, #0xa + bls _0222D5E8 + b _0222D7B4 +_0222D5E8: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222D5F4: ; jump table + .short _0222D7B4 - _0222D5F4 - 2 ; case 0 + .short _0222D7B4 - _0222D5F4 - 2 ; case 1 + .short _0222D60A - _0222D5F4 - 2 ; case 2 + .short _0222D7A8 - _0222D5F4 - 2 ; case 3 + .short _0222D654 - _0222D5F4 - 2 ; case 4 + .short _0222D7A8 - _0222D5F4 - 2 ; case 5 + .short _0222D6C4 - _0222D5F4 - 2 ; case 6 + .short _0222D7A8 - _0222D5F4 - 2 ; case 7 + .short _0222D736 - _0222D5F4 - 2 ; case 8 + .short _0222D7A8 - _0222D5F4 - 2 ; case 9 + .short _0222D7B4 - _0222D5F4 - 2 ; case 10 +_0222D60A: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D618 + cmp r0, #7 + beq _0222D630 + pop {r3, pc} +_0222D618: + ldr r0, _0222D7B8 ; =0x0222FB00 + mov r1, #0xa + str r1, [r0] + bl MOD79_02212474 + bl MOD82_0222D99C + ldr r1, _0222D7B8 ; =0x0222FB00 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D630: + ldr r0, _0222D7B8 ; =0x0222FB00 + mov r1, #0xa + str r1, [r0] + bl MOD79_02212480 + cmp r0, #0 + ble _0222D646 + ldr r0, _0222D7BC ; =0x0222FC00 + ldrb r1, [r0, #3] + ldr r0, _0222D7B8 ; =0x0222FB00 + b _0222D64C +_0222D646: + mov r1, #1 + ldr r0, _0222D7B8 ; =0x0222FB00 + mvn r1, r1 +_0222D64C: + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D654: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D662 + cmp r0, #7 + beq _0222D67A + pop {r3, pc} +_0222D662: + ldr r0, _0222D7B8 ; =0x0222FB00 + mov r1, #0xa + str r1, [r0] + bl MOD79_02212474 + bl MOD82_0222D99C + ldr r1, _0222D7B8 ; =0x0222FB00 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D67A: + ldr r0, _0222D7B8 ; =0x0222FB00 + mov r1, #0xa + str r1, [r0] + bl MOD79_02212480 + ldr r1, _0222D7C0 ; =0x00000A38 + cmp r0, r1 + bne _0222D692 + ldr r0, _0222D7B8 ; =0x0222FB00 + mov r1, #0 + str r1, [r0, #4] + b _0222D6BE +_0222D692: + ldr r0, _0222D7BC ; =0x0222FC00 + ldr r0, [r0, #8] + ldrb r0, [r0] + cmp r0, #2 + beq _0222D6A2 + cmp r0, #5 + beq _0222D6AC + b _0222D6B6 +_0222D6A2: + mov r1, #2 + ldr r0, _0222D7B8 ; =0x0222FB00 + mvn r1, r1 + str r1, [r0, #4] + b _0222D6BE +_0222D6AC: + mov r1, #1 + ldr r0, _0222D7B8 ; =0x0222FB00 + mvn r1, r1 + str r1, [r0, #4] + b _0222D6BE +_0222D6B6: + mov r1, #4 + ldr r0, _0222D7B8 ; =0x0222FB00 + mvn r1, r1 + str r1, [r0, #4] +_0222D6BE: + bl MOD56_0221244C + pop {r3, pc} +_0222D6C4: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D6D2 + cmp r0, #7 + beq _0222D6EA + pop {r3, pc} +_0222D6D2: + ldr r0, _0222D7B8 ; =0x0222FB00 + mov r1, #0xa + str r1, [r0] + bl MOD79_02212474 + bl MOD82_0222D99C + ldr r1, _0222D7B8 ; =0x0222FB00 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D6EA: + ldr r0, _0222D7B8 ; =0x0222FB00 + mov r1, #0xa + ldr r2, _0222D7BC ; =0x0222FC00 + str r1, [r0] + ldrb r2, [r2, #3] + cmp r2, #5 + bhi _0222D728 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0222D704: ; jump table + .short _0222D728 - _0222D704 - 2 ; case 0 + .short _0222D710 - _0222D704 - 2 ; case 1 + .short _0222D716 - _0222D704 - 2 ; case 2 + .short _0222D728 - _0222D704 - 2 ; case 3 + .short _0222D71C - _0222D704 - 2 ; case 4 + .short _0222D722 - _0222D704 - 2 ; case 5 +_0222D710: + mov r1, #0 + str r1, [r0, #4] + b _0222D730 +_0222D716: + sub r1, #0xd + str r1, [r0, #4] + b _0222D730 +_0222D71C: + sub r1, #0xb + str r1, [r0, #4] + b _0222D730 +_0222D722: + sub r1, #0xc + str r1, [r0, #4] + b _0222D730 +_0222D728: + mov r1, #4 + ldr r0, _0222D7B8 ; =0x0222FB00 + mvn r1, r1 + str r1, [r0, #4] +_0222D730: + bl MOD56_0221244C + pop {r3, pc} +_0222D736: + bl MOD79_022123A8 + cmp r0, #1 + beq _0222D744 + cmp r0, #7 + beq _0222D75C + pop {r3, pc} +_0222D744: + ldr r0, _0222D7B8 ; =0x0222FB00 + mov r1, #0xa + str r1, [r0] + bl MOD79_02212474 + bl MOD82_0222D99C + ldr r1, _0222D7B8 ; =0x0222FB00 + str r0, [r1, #4] + bl MOD56_0221244C + pop {r3, pc} +_0222D75C: + ldr r0, _0222D7B8 ; =0x0222FB00 + mov r1, #0xa + ldr r2, _0222D7BC ; =0x0222FC00 + str r1, [r0] + ldrb r2, [r2, #3] + cmp r2, #5 + bhi _0222D79A + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0222D776: ; jump table + .short _0222D79A - _0222D776 - 2 ; case 0 + .short _0222D782 - _0222D776 - 2 ; case 1 + .short _0222D79A - _0222D776 - 2 ; case 2 + .short _0222D788 - _0222D776 - 2 ; case 3 + .short _0222D78E - _0222D776 - 2 ; case 4 + .short _0222D794 - _0222D776 - 2 ; case 5 +_0222D782: + mov r1, #0 + str r1, [r0, #4] + b _0222D7A2 +_0222D788: + mov r1, #1 + str r1, [r0, #4] + b _0222D7A2 +_0222D78E: + mov r1, #2 + str r1, [r0, #4] + b _0222D7A2 +_0222D794: + sub r1, #0xc + str r1, [r0, #4] + b _0222D7A2 +_0222D79A: + mov r1, #4 + ldr r0, _0222D7B8 ; =0x0222FB00 + mvn r1, r1 + str r1, [r0, #4] +_0222D7A2: + bl MOD56_0221244C + pop {r3, pc} +_0222D7A8: + mov r0, #0xa + str r0, [r1] + sub r0, #0xe + str r0, [r1, #4] + bl MOD56_0221244C +_0222D7B4: + pop {r3, pc} + nop +_0222D7B8: .word 0x0222FB00 +_0222D7BC: .word 0x0222FC00 +_0222D7C0: .word 0x00000A38 + thumb_func_end MOD82_0222D5DC + + thumb_func_start MOD82_0222D7C4 +MOD82_0222D7C4: ; 0x0222D7C4 + ldr r1, _0222D7E0 ; =0x0222FB00 + ldr r0, [r1] + cmp r0, #1 + beq _0222D7D2 + cmp r0, #0xa + beq _0222D7D6 + b _0222D7DC +_0222D7D2: + mov r0, #1 + bx lr +_0222D7D6: + mov r0, #1 + str r0, [r1] + bx lr +_0222D7DC: + mov r0, #0 + bx lr + .align 2, 0 +_0222D7E0: .word 0x0222FB00 + thumb_func_end MOD82_0222D7C4 + + thumb_func_start MOD82_0222D7E4 +MOD82_0222D7E4: ; 0x0222D7E4 + ldr r0, _0222D7EC ; =0x0222FB00 + ldr r0, [r0, #4] + bx lr + nop +_0222D7EC: .word 0x0222FB00 + thumb_func_end MOD82_0222D7E4 + + thumb_func_start MOD82_0222D7F0 +MOD82_0222D7F0: ; 0x0222D7F0 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + bl MOD79_022122E4 + ldr r0, _0222D830 ; =0x0222FB00 + sub r1, r4, #1 + strb r1, [r0, #0x14] + mov r0, #2 + str r0, [sp] + ldr r0, _0222D834 ; =0x0222F8E0 + ldr r1, _0222D838 ; =0x0222FB14 + ldr r3, _0222D83C ; =0x0222FC03 + mov r2, #1 + bl MOD82_0222D964 + cmp r0, #0 + beq _0222D81E + ldr r0, _0222D830 ; =0x0222FB00 + mov r1, #2 + str r1, [r0] + add sp, #4 + pop {r3, r4, pc} +_0222D81E: + ldr r0, _0222D830 ; =0x0222FB00 + mov r1, #0xa + str r1, [r0] + sub r1, #0xf + str r1, [r0, #4] + bl MOD56_0221244C + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222D830: .word 0x0222FB00 +_0222D834: .word 0x0222F8E0 +_0222D838: .word 0x0222FB14 +_0222D83C: .word 0x0222FC03 + thumb_func_end MOD82_0222D7F0 + + thumb_func_start MOD82_0222D840 +MOD82_0222D840: ; 0x0222D840 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + ldr r0, _0222D88C ; =0x0222FC00 + add r6, r2, #0 + add r4, r1, #0 + str r6, [r0, #8] + bl MOD79_022122E4 + ldr r0, _0222D890 ; =0x0222FB00 + sub r1, r5, #1 + strb r1, [r0, #0x14] + sub r1, r4, #1 + strb r1, [r0, #0x15] + ldr r0, _0222D894 ; =0x00000A38 + ldr r1, _0222D898 ; =0x0222FB14 + str r0, [sp] + ldr r0, _0222D89C ; =0x0222F92C + mov r2, #2 + add r3, r6, #0 + bl MOD82_0222D964 + cmp r0, #0 + beq _0222D87A + ldr r0, _0222D890 ; =0x0222FB00 + mov r1, #4 + str r1, [r0] + add sp, #4 + pop {r3, r4, r5, r6, pc} +_0222D87A: + ldr r0, _0222D890 ; =0x0222FB00 + mov r1, #0xa + str r1, [r0] + sub r1, #0xf + str r1, [r0, #4] + bl MOD56_0221244C + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222D88C: .word 0x0222FC00 +_0222D890: .word 0x0222FB00 +_0222D894: .word 0x00000A38 +_0222D898: .word 0x0222FB14 +_0222D89C: .word 0x0222F92C + thumb_func_end MOD82_0222D840 + + thumb_func_start MOD82_0222D8A0 +MOD82_0222D8A0: ; 0x0222D8A0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + bl MOD79_022122E4 + ldr r0, _0222D904 ; =0x0222FB14 + add r1, r7, #0 + mov r2, #0xe4 + bl memcpy + ldr r0, _0222D908 ; =0x0222FBE0 + sub r1, r5, #1 + strb r1, [r0, #0x18] + sub r1, r4, #1 + strb r1, [r0, #0x19] + ldr r3, _0222D90C ; =0x0222FBFB + ldr r2, _0222D910 ; =0x0222FB0C + strb r6, [r0, #0x1a] + mov r1, #8 +_0222D8CA: + ldrb r0, [r2] + add r2, r2, #1 + strb r0, [r3] + add r3, r3, #1 + sub r1, r1, #1 + bne _0222D8CA + mov r0, #2 + str r0, [sp] + ldr r0, _0222D914 ; =0x0222F978 + ldr r1, _0222D904 ; =0x0222FB14 + ldr r3, _0222D918 ; =0x0222FC03 + mov r2, #0xef + bl MOD82_0222D964 + cmp r0, #0 + beq _0222D8F2 + ldr r0, _0222D91C ; =0x0222FB00 + mov r1, #6 + str r1, [r0] + pop {r3, r4, r5, r6, r7, pc} +_0222D8F2: + ldr r0, _0222D91C ; =0x0222FB00 + mov r1, #0xa + str r1, [r0] + sub r1, #0xf + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, r4, r5, r6, r7, pc} + nop +_0222D904: .word 0x0222FB14 +_0222D908: .word 0x0222FBE0 +_0222D90C: .word 0x0222FBFB +_0222D910: .word 0x0222FB0C +_0222D914: .word 0x0222F978 +_0222D918: .word 0x0222FC03 +_0222D91C: .word 0x0222FB00 + thumb_func_end MOD82_0222D8A0 + + thumb_func_start MOD82_0222D920 +MOD82_0222D920: ; 0x0222D920 + push {r3, lr} + bl MOD79_022122E4 + mov r0, #2 + str r0, [sp] + ldr r0, _0222D954 ; =0x0222F9C4 + ldr r1, _0222D958 ; =0x0222FB14 + ldr r3, _0222D95C ; =0x0222FC03 + mov r2, #0 + bl MOD82_0222D964 + cmp r0, #0 + beq _0222D942 + ldr r0, _0222D960 ; =0x0222FB00 + mov r1, #8 + str r1, [r0] + pop {r3, pc} +_0222D942: + ldr r0, _0222D960 ; =0x0222FB00 + mov r1, #0xa + str r1, [r0] + sub r1, #0xf + str r1, [r0, #4] + bl MOD56_0221244C + pop {r3, pc} + nop +_0222D954: .word 0x0222F9C4 +_0222D958: .word 0x0222FB14 +_0222D95C: .word 0x0222FC03 +_0222D960: .word 0x0222FB00 + thumb_func_end MOD82_0222D920 + + thumb_func_start MOD82_0222D964 +MOD82_0222D964: ; 0x0222D964 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r1, #0 + ldr r1, [sp, #0x18] + str r3, [sp] + str r1, [sp, #4] + add r4, r2, #0 + ldr r1, _0222D998 ; =0x0222FB00 + add r2, r5, #0 + ldr r1, [r1, #8] + add r3, r4, #0 + bl MOD79_02212308 + cmp r0, #0 + beq _0222D98A + cmp r0, #1 + beq _0222D990 + cmp r0, #2 + b _0222D990 +_0222D98A: + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, pc} +_0222D990: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_0222D998: .word 0x0222FB00 + thumb_func_end MOD82_0222D964 + + thumb_func_start MOD82_0222D99C +MOD82_0222D99C: ; 0x0222D99C + push {r4, lr} + cmp r0, #0x20 + bhi _0222DA14 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222D9AE: ; jump table + .short _0222D9F0 - _0222D9AE - 2 ; case 0 + .short _0222D9F0 - _0222D9AE - 2 ; case 1 + .short _0222D9F6 - _0222D9AE - 2 ; case 2 + .short _0222D9F0 - _0222D9AE - 2 ; case 3 + .short _0222D9F0 - _0222D9AE - 2 ; case 4 + .short _0222D9F0 - _0222D9AE - 2 ; case 5 + .short _0222D9F0 - _0222D9AE - 2 ; case 6 + .short _0222DA14 - _0222D9AE - 2 ; case 7 + .short _0222D9F6 - _0222D9AE - 2 ; case 8 + .short _0222D9F0 - _0222D9AE - 2 ; case 9 + .short _0222D9F0 - _0222D9AE - 2 ; case 10 + .short _0222D9FC - _0222D9AE - 2 ; case 11 + .short _0222DA02 - _0222D9AE - 2 ; case 12 + .short _0222DA02 - _0222D9AE - 2 ; case 13 + .short _0222D9F0 - _0222D9AE - 2 ; case 14 + .short _0222DA0E - _0222D9AE - 2 ; case 15 + .short _0222DA08 - _0222D9AE - 2 ; case 16 + .short _0222DA08 - _0222D9AE - 2 ; case 17 + .short _0222DA08 - _0222D9AE - 2 ; case 18 + .short _0222DA08 - _0222D9AE - 2 ; case 19 + .short _0222D9F0 - _0222D9AE - 2 ; case 20 + .short _0222D9F0 - _0222D9AE - 2 ; case 21 + .short _0222D9F0 - _0222D9AE - 2 ; case 22 + .short _0222D9F0 - _0222D9AE - 2 ; case 23 + .short _0222DA14 - _0222D9AE - 2 ; case 24 + .short _0222D9F6 - _0222D9AE - 2 ; case 25 + .short _0222DA08 - _0222D9AE - 2 ; case 26 + .short _0222DA08 - _0222D9AE - 2 ; case 27 + .short _0222DA08 - _0222D9AE - 2 ; case 28 + .short _0222DA08 - _0222D9AE - 2 ; case 29 + .short _0222DA0E - _0222D9AE - 2 ; case 30 + .short _0222DA08 - _0222D9AE - 2 ; case 31 + .short _0222D9F0 - _0222D9AE - 2 ; case 32 +_0222D9F0: + mov r4, #4 + mvn r4, r4 + b _0222DA18 +_0222D9F6: + mov r4, #4 + mvn r4, r4 + b _0222DA18 +_0222D9FC: + mov r4, #6 + mvn r4, r4 + b _0222DA18 +_0222DA02: + mov r4, #6 + mvn r4, r4 + b _0222DA18 +_0222DA08: + mov r4, #1 + mvn r4, r4 + b _0222DA18 +_0222DA0E: + mov r4, #1 + mvn r4, r4 + b _0222DA18 +_0222DA14: + mov r4, #4 + mvn r4, r4 +_0222DA18: + mov r0, #4 + mvn r0, r0 + cmp r4, r0 + beq _0222DA30 + bl FUN_020A71F8 + cmp r0, #9 + beq _0222DA2C + mov r4, #5 + mvn r4, r4 +_0222DA2C: + bl MOD04_021DD6F0 +_0222DA30: + add r0, r4, #0 + pop {r4, pc} + thumb_func_end MOD82_0222D99C + + thumb_func_start MOD82_0222DA34 +MOD82_0222DA34: ; 0x0222DA34 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r1, #0 + add r6, r0, #0 + ldr r0, [r5] + cmp r0, #0 + beq _0222DA48 + cmp r0, #1 + beq _0222DB34 + b _0222DB4A +_0222DA48: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _0222DB50 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _0222DB54 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r2, #5 + mov r0, #3 + mov r1, #0x44 + lsl r2, r2, #0x10 + bl FUN_0201681C + ldr r1, _0222DB58 ; =0x00000EC8 + add r0, r6, #0 + mov r2, #0x44 + bl FUN_02006268 + ldr r2, _0222DB58 ; =0x00000EC8 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x44 + bl FUN_02016B94 + str r0, [r4, #4] + ldr r0, _0222DB5C ; =0x0222FC0C + add r2, sp, #0 + ldr r3, _0222DB60 ; =0x0222F814 + str r4, [r0] + add r7, r2, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r0, r7, #0 + bl FUN_02016BBC + mov r0, #0xb + mov r1, #0x20 + mov r2, #0x44 + bl FUN_0200AA90 + ldr r1, _0222DB64 ; =0x00000B78 + ldr r2, _0222DB68 ; =0x0000024E + str r0, [r4, r1] + mov r0, #0 + mov r1, #0x1a + mov r3, #0x44 + bl FUN_0200A86C + ldr r1, _0222DB6C ; =0x00000B7C + mov r2, #0x25 + str r0, [r4, r1] + mov r0, #0 + mov r1, #0x1a + lsl r2, r2, #4 + mov r3, #0x44 + bl FUN_0200A86C + mov r1, #0x2e + lsl r1, r1, #6 + str r0, [r4, r1] + ldr r2, _0222DB70 ; =0x00000265 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x44 + bl FUN_0200A86C + ldr r1, _0222DB74 ; =0x00000B84 + str r0, [r4, r1] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + add r0, r4, #0 + add r1, r6, #0 + bl MOD82_0222DD04 + add r0, r4, #0 + bl MOD82_0222DFD4 + mov r1, #0 + mov r0, #0x34 + add r2, r1, #0 + bl FUN_0200433C + ldr r1, _0222DB78 ; =0x00020020 + mov r0, #0x44 + bl FUN_02016998 + str r0, [r4, #0x24] + add r0, #0x1f + mov r1, #0x1f + bic r0, r1 + mov r1, #2 + lsl r1, r1, #0x10 + mov r2, #0 + bl tempName_NNS_FndCreateExpHeapEx + str r0, [r4, #0x28] + mov r0, #1 + str r0, [r5] + b _0222DB4A +_0222DB34: + bl FUN_02088858 + bl FUN_020888BC + bl FUN_0202E49C + mov r0, #0 + str r0, [r5] + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0222DB4A: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222DB50: .word 0xFFFFE0FF +_0222DB54: .word 0x04001000 +_0222DB58: .word 0x00000EC8 +_0222DB5C: .word 0x0222FC0C +_0222DB60: .word 0x0222F814 +_0222DB64: .word 0x00000B78 +_0222DB68: .word 0x0000024E +_0222DB6C: .word 0x00000B7C +_0222DB70: .word 0x00000265 +_0222DB74: .word 0x00000B84 +_0222DB78: .word 0x00020020 + thumb_func_end MOD82_0222DA34 + + thumb_func_start MOD82_0222DB7C +MOD82_0222DB7C: ; 0x0222DB7C + push {r4, r5, r6, lr} + add r4, r1, #0 + bl FUN_02006278 + add r5, r0, #0 + bl MOD04_021DD984 + bl MOD82_0222D5DC + bl MOD04_021DD984 + ldr r1, [r4] + cmp r1, #5 + bhi _0222DC24 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222DBA4: ; jump table + .short _0222DBB0 - _0222DBA4 - 2 ; case 0 + .short _0222DBCC - _0222DBA4 - 2 ; case 1 + .short _0222DBE0 - _0222DBA4 - 2 ; case 2 + .short _0222DBEE - _0222DBA4 - 2 ; case 3 + .short _0222DC02 - _0222DBA4 - 2 ; case 4 + .short _0222DC20 - _0222DBA4 - 2 ; case 5 +_0222DBB0: + bl FUN_0202E4C8 + cmp r0, #0 + beq _0222DC24 + ldr r1, [r5, #0x28] + ldr r0, _0222DC38 ; =0x0222FC0C + str r1, [r0, #4] + ldr r0, _0222DC3C ; =MOD82_0222DF74 + ldr r1, _0222DC40 ; =MOD82_0222DF9C + bl MOD04_021DD968 + mov r0, #1 + str r0, [r4] + b _0222DC24 +_0222DBCC: + ldr r3, [r5, #0x10] + mov r2, #0xc + add r6, r3, #0 + mul r6, r2 + ldr r2, _0222DC44 ; =0x0222FA0C + add r0, r5, #0 + ldr r2, [r2, r6] + blx r2 + str r0, [r4] + b _0222DC24 +_0222DBE0: + bl FUN_0200E308 + cmp r0, #0 + beq _0222DC24 + mov r0, #3 + str r0, [r4] + b _0222DC24 +_0222DBEE: + ldr r3, [r5, #0x10] + mov r2, #0xc + add r6, r3, #0 + mul r6, r2 + ldr r2, _0222DC48 ; =0x0222FA10 + add r0, r5, #0 + ldr r2, [r2, r6] + blx r2 + str r0, [r4] + b _0222DC24 +_0222DC02: + bl FUN_0200E308 + cmp r0, #0 + beq _0222DC24 + ldr r3, [r5, #0x10] + mov r2, #0xc + add r6, r3, #0 + mul r6, r2 + ldr r2, _0222DC4C ; =0x0222FA14 + ldr r1, [r4] + ldr r2, [r2, r6] + add r0, r5, #0 + blx r2 + str r0, [r4] + b _0222DC24 +_0222DC20: + mov r0, #1 + pop {r4, r5, r6, pc} +_0222DC24: + mov r0, #0xba + lsl r0, r0, #4 + ldr r0, [r5, r0] + cmp r0, #0 + beq _0222DC32 + bl FUN_0201FDEC +_0222DC32: + mov r0, #0 + pop {r4, r5, r6, pc} + nop +_0222DC38: .word 0x0222FC0C +_0222DC3C: .word MOD82_0222DF74 +_0222DC40: .word MOD82_0222DF9C +_0222DC44: .word 0x0222FA0C +_0222DC48: .word 0x0222FA10 +_0222DC4C: .word 0x0222FA14 + thumb_func_end MOD82_0222DB7C + + thumb_func_start MOD82_0222DC50 +MOD82_0222DC50: ; 0x0222DC50 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r4, #0x24] + bl FUN_02016A18 + bl FUN_020888CC + bl FUN_02088868 + add r0, r4, #0 + bl MOD82_0222DFFC + ldr r0, _0222DCB8 ; =0x00000B84 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + mov r0, #0x2e + lsl r0, r0, #6 + ldr r0, [r4, r0] + bl FUN_0200A8B8 + ldr r0, _0222DCBC ; =0x00000B7C + ldr r0, [r4, r0] + bl FUN_0200A8B8 + ldr r0, _0222DCC0 ; =0x00000B78 + ldr r0, [r4, r0] + bl FUN_0200AB18 + add r0, r4, #0 + bl MOD82_0222DD20 + bl FUN_0202E4F0 + ldr r0, [r4, #4] + bl FUN_02016A18 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0x44 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222DCB8: .word 0x00000B84 +_0222DCBC: .word 0x00000B7C +_0222DCC0: .word 0x00000B78 + thumb_func_end MOD82_0222DC50 + + thumb_func_start MOD82_0222DCC4 +MOD82_0222DCC4: ; 0x0222DCC4 + push {r3, lr} + bl FUN_0201C30C + bl FUN_02009F80 + ldr r3, _0222DCDC ; =0x027E0000 + ldr r1, _0222DCE0 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r3, pc} + .align 2, 0 +_0222DCDC: .word 0x027E0000 +_0222DCE0: .word 0x00003FF8 + thumb_func_end MOD82_0222DCC4 + + thumb_func_start MOD82_0222DCE4 +MOD82_0222DCE4: ; 0x0222DCE4 + push {r4, lr} + sub sp, #0x28 + ldr r4, _0222DD00 ; =0x0222F834 + add r3, sp, #0 + mov r2, #5 +_0222DCEE: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _0222DCEE + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_0222DD00: .word 0x0222F834 + thumb_func_end MOD82_0222DCE4 + + thumb_func_start MOD82_0222DD04 +MOD82_0222DD04: ; 0x0222DD04 + push {r4, lr} + add r4, r0, #0 + add r0, r1, #0 + bl FUN_0200628C + mov r1, #0 + str r0, [r4] + add r0, r4, #0 + add r2, r1, #0 + str r1, [r4, #0x10] + bl MOD82_0222DFCC + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222DD04 + + thumb_func_start MOD82_0222DD20 +MOD82_0222DD20: ; 0x0222DD20 + bx lr + .align 2, 0 + thumb_func_end MOD82_0222DD20 + + thumb_func_start MOD82_0222DD24 +MOD82_0222DD24: ; 0x0222DD24 + push {r4, lr} + sub sp, #0x10 + ldr r4, _0222DD50 ; =0x0222F824 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #0x14 + mov r1, #0x44 + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_0222DD50: .word 0x0222F824 + thumb_func_end MOD82_0222DD24 + + thumb_func_start MOD82_0222DD54 +MOD82_0222DD54: ; 0x0222DD54 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x7e + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x44 + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + ldr r1, _0222DE40 ; =0x00000BA4 + mov r0, #0xa + add r1, r6, r1 + mov r2, #0x44 + bl FUN_02008C9C + mov r1, #0xba + lsl r1, r1, #4 + str r0, [r6, r1] + add r0, r1, #4 + mov r2, #1 + add r0, r6, r0 + mov r1, #0 + lsl r2, r2, #0x14 + bl FUN_02008D24 + ldr r7, _0222DE44 ; =0x00000CCC + mov r4, #0 + add r5, r6, #0 +_0222DD9C: + mov r0, #2 + add r1, r4, #0 + mov r2, #0x44 + bl FUN_02008DEC + str r0, [r5, r7] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0222DD9C + mov r0, #0 + str r0, [sp] + mov r3, #1 + str r3, [sp, #4] + mov r0, #0x44 + str r0, [sp, #8] + ldr r0, _0222DE44 ; =0x00000CCC + mov r1, #0x68 + ldr r0, [r6, r0] + mov r2, #0x23 + bl FUN_02008F34 + ldr r1, _0222DE48 ; =0x00000CDC + mov r3, #0 + str r0, [r6, r1] + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + mov r0, #0x44 + sub r1, #0xc + str r0, [sp, #0xc] + ldr r0, [r6, r1] + mov r1, #0x68 + mov r2, #9 + bl FUN_02008FEC + mov r1, #0xce + lsl r1, r1, #4 + str r0, [r6, r1] + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x44 + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r6, r1] + mov r1, #0x68 + mov r2, #0x24 + mov r3, #1 + bl FUN_020090AC + ldr r1, _0222DE4C ; =0x00000CE4 + mov r2, #0x25 + str r0, [r6, r1] + mov r0, #0 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x44 + sub r1, #0xc + str r0, [sp, #8] + ldr r0, [r6, r1] + mov r1, #0x68 + mov r3, #1 + bl FUN_020090AC + ldr r1, _0222DE50 ; =0x00000CE8 + str r0, [r6, r1] + sub r1, #0xc + ldr r0, [r6, r1] + bl FUN_02009A50 + mov r0, #0xce + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009CF0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222DE40: .word 0x00000BA4 +_0222DE44: .word 0x00000CCC +_0222DE48: .word 0x00000CDC +_0222DE4C: .word 0x00000CE4 +_0222DE50: .word 0x00000CE8 + thumb_func_end MOD82_0222DD54 + + thumb_func_start MOD82_0222DE54 +MOD82_0222DE54: ; 0x0222DE54 + push {r3, r4} + mov r4, #0xba + lsl r4, r4, #4 + ldr r1, [r1, r4] + str r1, [r0] + str r2, [r0, #4] + mov r2, #0 + mov r1, #1 + str r2, [r0, #0x10] + lsl r1, r1, #0xc + str r1, [r0, #0x14] + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + strh r2, [r0, #0x20] + mov r1, #1 + str r1, [r0, #0x24] + str r3, [r0, #0x28] + mov r1, #0x44 + str r1, [r0, #0x2c] + pop {r3, r4} + bx lr + .align 2, 0 + thumb_func_end MOD82_0222DE54 + + thumb_func_start MOD82_0222DE80 +MOD82_0222DE80: ; 0x0222DE80 + push {r4, r5, r6, r7, lr} + sub sp, #0x5c + mov r1, #0 + add r5, r0, #0 + str r1, [sp] + sub r0, r1, #1 + str r0, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r2, _0222DF28 ; =0x00000CCC + str r1, [sp, #0x10] + ldr r0, [r5, r2] + add r3, r1, #0 + str r0, [sp, #0x14] + add r0, r2, #4 + ldr r0, [r5, r0] + str r0, [sp, #0x18] + add r0, r2, #0 + add r0, #8 + ldr r0, [r5, r0] + str r0, [sp, #0x1c] + add r0, r2, #0 + add r0, #0xc + ldr r0, [r5, r0] + add r2, #0x40 + str r0, [sp, #0x20] + str r1, [sp, #0x24] + add r0, r5, r2 + add r2, r1, #0 + str r1, [sp, #0x28] + bl FUN_02008AA4 + ldr r2, _0222DF2C ; =0x00000D0C + add r0, sp, #0x2c + add r1, r5, #0 + add r2, r5, r2 + mov r3, #1 + bl MOD82_0222DE54 + ldr r4, _0222DF30 ; =0x0222F80C + ldr r7, _0222DF34 ; =0x00000D78 + mov r6, #0 +_0222DED4: + ldrh r0, [r4] + lsl r0, r0, #0xc + str r0, [sp, #0x34] + ldrh r0, [r4, #2] + lsl r0, r0, #0xc + str r0, [sp, #0x38] + add r0, sp, #0x2c + bl FUN_0201FE94 + ldr r1, _0222DF34 ; =0x00000D78 + str r0, [r5, r1] + add r0, r1, #0 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + ldr r0, _0222DF34 ; =0x00000D78 + add r1, r6, #0 + ldr r0, [r5, r0] + bl FUN_02020130 + ldr r0, [r5, r7] + mov r1, #0 + bl FUN_020200A0 + add r6, r6, #1 + add r4, r4, #4 + add r5, r5, #4 + cmp r6, #2 + blt _0222DED4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + bl FUN_02033E74 + add sp, #0x5c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222DF28: .word 0x00000CCC +_0222DF2C: .word 0x00000D0C +_0222DF30: .word 0x0222F80C +_0222DF34: .word 0x00000D78 + thumb_func_end MOD82_0222DE80 + + thumb_func_start MOD82_0222DF38 +MOD82_0222DF38: ; 0x0222DF38 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + ldr r5, _0222DF68 ; =0x0222F804 + add r4, sp, #4 + ldrh r6, [r5] + add r3, sp, #4 + strh r6, [r4] + ldrh r6, [r5, #2] + strh r6, [r4, #2] + ldrh r6, [r5, #4] + ldrh r5, [r5, #6] + strh r6, [r4, #4] + strh r5, [r4, #6] + strb r1, [r4, #2] + strh r2, [r4, #6] + mov r1, #0x44 + str r1, [sp] + add r1, r3, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_02002198 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222DF68: .word 0x0222F804 + thumb_func_end MOD82_0222DF38 + + thumb_func_start MOD82_0222DF6C +MOD82_0222DF6C: ; 0x0222DF6C + str r1, [r0, #0x1c] + str r2, [r0, #0x20] + bx lr + .align 2, 0 + thumb_func_end MOD82_0222DF6C + + thumb_func_start MOD82_0222DF74 +MOD82_0222DF74: ; 0x0222DF74 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r4, r2, #0 + bl OS_DisableInterrupts + add r6, r0, #0 + ldr r0, _0222DF98 ; =0x0222FC0C + add r1, r5, #0 + ldr r0, [r0, #4] + add r2, r4, #0 + bl tempName_NNS_FndAllocFromExpHeapEx + add r4, r0, #0 + add r0, r6, #0 + bl OS_RestoreInterrupts + add r0, r4, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222DF98: .word 0x0222FC0C + thumb_func_end MOD82_0222DF74 + + thumb_func_start MOD82_0222DF9C +MOD82_0222DF9C: ; 0x0222DF9C + push {r3, r4, r5, lr} + add r5, r1, #0 + beq _0222DFB8 + bl OS_DisableInterrupts + add r4, r0, #0 + ldr r0, _0222DFBC ; =0x0222FC0C + add r1, r5, #0 + ldr r0, [r0, #4] + bl FUN_020ADDF0 + add r0, r4, #0 + bl OS_RestoreInterrupts +_0222DFB8: + pop {r3, r4, r5, pc} + nop +_0222DFBC: .word 0x0222FC0C + thumb_func_end MOD82_0222DF9C + + thumb_func_start MOD82_0222DFC0 +MOD82_0222DFC0: ; 0x0222DFC0 + push {r3, lr} + bl MOD04_021DDB08 + mov r1, #3 + sub r0, r1, r0 + pop {r3, pc} + thumb_func_end MOD82_0222DFC0 + + thumb_func_start MOD82_0222DFCC +MOD82_0222DFCC: ; 0x0222DFCC + str r1, [r0, #0x14] + str r2, [r0, #0x18] + bx lr + .align 2, 0 + thumb_func_end MOD82_0222DFCC + + thumb_func_start MOD82_0222DFD4 +MOD82_0222DFD4: ; 0x0222DFD4 + push {r4, lr} + add r4, r0, #0 + bl MOD82_0222DCE4 + bl MOD82_0222DD24 + add r0, r4, #0 + bl MOD82_0222DD54 + add r0, r4, #0 + bl MOD82_0222DE80 + ldr r0, _0222DFF8 ; =MOD82_0222DCC4 + mov r1, #0 + bl FUN_02015F10 + pop {r4, pc} + nop +_0222DFF8: .word MOD82_0222DCC4 + thumb_func_end MOD82_0222DFD4 + + thumb_func_start MOD82_0222DFFC +MOD82_0222DFFC: ; 0x0222DFFC + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, _0222E048 ; =0x00000CDC + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0xce + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009E04 + ldr r7, _0222E04C ; =0x00000CCC + mov r4, #0 + add r5, r6, #0 +_0222E018: + ldr r0, [r5, r7] + bl FUN_02008E2C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #4 + blt _0222E018 + mov r0, #0xba + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_0201FD58 + mov r0, #0xba + mov r1, #0 + lsl r0, r0, #4 + str r1, [r6, r0] + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E048: .word 0x00000CDC +_0222E04C: .word 0x00000CCC + thumb_func_end MOD82_0222DFFC + + thumb_func_start MOD82_0222E050 +MOD82_0222E050: ; 0x0222E050 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl MOD82_0222E4AC + mov r0, #8 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x44 + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, [r4, #4] + bl MOD82_0222E15C + add r0, r4, #0 + bl MOD82_0222E264 + add r0, r4, #0 + bl MOD82_0222E35C + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E74C + mov r0, #2 + mov r1, #1 + bl FUN_0201E74C + ldr r0, [r4] + ldr r0, [r0, #0xc] + bl FUN_02033288 + add r0, r4, #0 + bl MOD82_0222F6D0 + ldr r0, [r4] + mov r1, #0 + ldr r0, [r0] + bl FUN_0202A444 + str r0, [r4, #0x38] + str r0, [r4, #0x3c] + mov r0, #1 + str r0, [r4, #0x44] + ldr r0, _0222E110 ; =0x00000EB4 + mov r1, #0 + str r1, [r4, r0] + bl MOD04_021DDD7C + cmp r0, #0 + bne _0222E104 + ldr r0, [r4] + ldr r0, [r0, #0x24] + cmp r0, #0 + beq _0222E0FE + ldr r0, _0222E114 ; =0x00000F0F + mov r1, #0x2e + str r0, [sp] + lsl r1, r1, #6 + mov r2, #1 + ldr r1, [r4, r1] + add r0, r4, #0 + add r3, r2, #0 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2d + mov r2, #2 + bl MOD82_0222DF6C + add r0, r4, #0 + bl MOD82_0222F700 + b _0222E108 +_0222E0FE: + mov r0, #0 + str r0, [r4, #0x1c] + b _0222E108 +_0222E104: + mov r0, #0x31 + str r0, [r4, #0x1c] +_0222E108: + mov r0, #2 + add sp, #0xc + pop {r3, r4, pc} + nop +_0222E110: .word 0x00000EB4 +_0222E114: .word 0x00000F0F + thumb_func_end MOD82_0222E050 + + thumb_func_start MOD82_0222E118 +MOD82_0222E118: ; 0x0222E118 + push {r4, lr} + add r4, r0, #0 + bl MOD82_0222DFC0 + bl FUN_02033EEC + ldr r1, [r4, #0x1c] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _0222E134 ; =0x0222FA18 + ldr r1, [r1, r2] + blx r1 + pop {r4, pc} + nop +_0222E134: .word 0x0222FA18 + thumb_func_end MOD82_0222E118 + + thumb_func_start MOD82_0222E138 +MOD82_0222E138: ; 0x0222E138 + push {r4, lr} + add r4, r0, #0 + bl MOD82_0222E504 + add r0, r4, #0 + bl MOD82_0222E474 + ldr r0, [r4, #4] + bl MOD82_0222E240 + ldr r0, [r4, #0x14] + str r0, [r4, #0x10] + cmp r0, #0 + bne _0222E158 + mov r0, #5 + pop {r4, pc} +_0222E158: + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD82_0222E138 + + thumb_func_start MOD82_0222E15C +MOD82_0222E15C: ; 0x0222E15C + push {r3, r4, r5, lr} + sub sp, #0x70 + ldr r5, _0222E230 ; =0x0222F894 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0x54 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _0222E234 ; =0x0222F878 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + ldr r5, _0222E238 ; =0x0222F8B0 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #4 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #1 + mov r1, #0 + bl FUN_0201E74C + add r0, r4, #0 + mov r1, #4 + bl FUN_02018744 + ldr r5, _0222E23C ; =0x0222F85C + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #5 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + mov r0, #2 + mov r1, #0 + bl FUN_0201E74C + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x44 + bl FUN_02017F18 + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + mov r3, #0x44 + bl FUN_02017F18 + add sp, #0x70 + pop {r3, r4, r5, pc} + nop +_0222E230: .word 0x0222F894 +_0222E234: .word 0x0222F878 +_0222E238: .word 0x0222F8B0 +_0222E23C: .word 0x0222F85C + thumb_func_end MOD82_0222E15C + + thumb_func_start MOD82_0222E240 +MOD82_0222E240: ; 0x0222E240 + push {r4, lr} + add r4, r0, #0 + mov r1, #5 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #4 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #0 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD82_0222E240 + + thumb_func_start MOD82_0222E264 +MOD82_0222E264: ; 0x0222E264 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r4, [r5, #4] + mov r2, #0 + str r2, [sp] + mov r0, #0x44 + str r0, [sp, #4] + mov r0, #0x5c + mov r1, #3 + add r3, r2, #0 + bl FUN_02006930 + mov r3, #0 + str r3, [sp] + mov r0, #0x44 + str r0, [sp, #4] + mov r0, #0x5c + mov r1, #3 + mov r2, #4 + bl FUN_02006930 + mov r1, #0x1a + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x44 + bl FUN_02002EEC + mov r1, #0x1a + mov r0, #4 + lsl r1, r1, #4 + mov r2, #0x44 + bl FUN_02002EEC + ldr r0, [r5] + ldr r0, [r0, #0x10] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x44 + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200CD68 + mov r1, #0 + str r1, [sp] + mov r0, #0x44 + str r0, [sp, #4] + add r0, r4, #0 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CB00 + mov r1, #0 + mov r0, #0x36 + str r1, [sp] + lsl r0, r0, #6 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x44 + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #2 + add r2, r4, #0 + mov r3, #1 + bl FUN_0200687C + mov r1, #0 + mov r0, #6 + str r1, [sp] + lsl r0, r0, #8 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x44 + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #4 + add r2, r4, #0 + mov r3, #1 + bl FUN_020068C8 + mov r1, #0 + mov r0, #0x36 + str r1, [sp] + lsl r0, r0, #6 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x44 + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #9 + add r2, r4, #0 + mov r3, #5 + bl FUN_0200687C + mov r1, #0 + mov r0, #6 + str r1, [sp] + lsl r0, r0, #8 + str r0, [sp, #4] + str r1, [sp, #8] + mov r0, #0x44 + str r0, [sp, #0xc] + mov r0, #0x5c + mov r1, #0xa + add r2, r4, #0 + mov r3, #5 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl FUN_02017FE4 + mov r0, #4 + mov r1, #0 + bl FUN_02017FE4 + add sp, #0x10 + pop {r3, r4, r5, pc} + thumb_func_end MOD82_0222E264 + + thumb_func_start MOD82_0222E35C +MOD82_0222E35C: ; 0x0222E35C + push {r3, r4, lr} + sub sp, #0x14 + mov r3, #4 + add r4, r0, #0 + str r3, [sp] + mov r0, #0x17 + str r0, [sp, #4] + mov r0, #0x10 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0xa4 + mov r1, #0x37 + str r0, [sp, #0x10] + lsl r1, r1, #6 + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + bl FUN_02019064 + mov r0, #0x37 + lsl r0, r0, #6 + add r0, r4, r0 + mov r1, #0 + bl FUN_02019620 + mov r0, #0xe + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x94 + mov r1, #0xda + str r0, [sp, #0x10] + lsl r1, r1, #4 + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0x1a + bl FUN_02019064 + mov r0, #0xda + lsl r0, r0, #4 + add r0, r4, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0xe + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x9c + mov r1, #0xd9 + str r0, [sp, #0x10] + lsl r1, r1, #4 + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #0x1a + bl FUN_02019064 + mov r0, #0xd9 + lsl r0, r0, #4 + add r0, r4, r0 + mov r1, #0xf + bl FUN_02019620 + mov r2, #1 + mov r1, #0xdb + lsl r1, r1, #4 + str r2, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + mov r0, #0x85 + lsl r0, r0, #2 + str r0, [sp, #0x10] + ldr r0, [r4, #4] + add r1, r4, r1 + mov r3, #4 + bl FUN_02019064 + mov r0, #0xdb + lsl r0, r0, #4 + add r0, r4, r0 + mov r1, #6 + bl FUN_02019620 + mov r3, #1 + ldr r0, _0222E46C ; =0x00010406 + str r3, [sp] + str r0, [sp, #4] + ldr r1, _0222E470 ; =0x00000B8C + mov r0, #0xdb + lsl r0, r0, #4 + ldr r1, [r4, r1] + add r0, r4, r0 + mov r2, #0 + bl MOD82_0222F62C + mov r0, #0x13 + str r0, [sp] + mov r1, #0x1b + str r1, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0xd + str r0, [sp, #0xc] + mov r0, #0x28 + str r0, [sp, #0x10] + lsl r1, r1, #7 + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0 + mov r3, #2 + bl FUN_02019064 + mov r0, #0x36 + lsl r0, r0, #6 + add r0, r4, r0 + mov r1, #0xf + bl FUN_02019620 + add sp, #0x14 + pop {r3, r4, pc} + nop +_0222E46C: .word 0x00010406 +_0222E470: .word 0x00000B8C + thumb_func_end MOD82_0222E35C + + thumb_func_start MOD82_0222E474 +MOD82_0222E474: ; 0x0222E474 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x36 + lsl r0, r0, #6 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0xdb + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0xd9 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0xda + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #0x37 + lsl r0, r0, #6 + add r0, r4, r0 + bl FUN_02019178 + pop {r4, pc} + thumb_func_end MOD82_0222E474 + + thumb_func_start MOD82_0222E4AC +MOD82_0222E4AC: ; 0x0222E4AC + push {r4, lr} + add r4, r0, #0 + mov r0, #0xb4 + mov r1, #0x44 + bl FUN_020219F4 + ldr r1, _0222E4F4 ; =0x00000B88 + str r0, [r4, r1] + mov r0, #4 + mov r1, #0x44 + bl FUN_020219F4 + mov r1, #0xb9 + lsl r1, r1, #4 + str r0, [r4, r1] + mov r0, #3 + mov r1, #0x44 + bl FUN_020219F4 + ldr r1, _0222E4F8 ; =0x00000B94 + str r0, [r4, r1] + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #0xa + bl FUN_0200A914 + ldr r1, _0222E4FC ; =0x00000B8C + str r0, [r4, r1] + mov r0, #1 + lsl r0, r0, #8 + mov r1, #0x44 + bl FUN_020219F4 + ldr r1, _0222E500 ; =0x00000B98 + str r0, [r4, r1] + pop {r4, pc} + .align 2, 0 +_0222E4F4: .word 0x00000B88 +_0222E4F8: .word 0x00000B94 +_0222E4FC: .word 0x00000B8C +_0222E500: .word 0x00000B98 + thumb_func_end MOD82_0222E4AC + + thumb_func_start MOD82_0222E504 +MOD82_0222E504: ; 0x0222E504 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222E534 ; =0x00000B98 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _0222E538 ; =0x00000B8C + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _0222E53C ; =0x00000B94 + ldr r0, [r4, r0] + bl FUN_02021A20 + mov r0, #0xb9 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02021A20 + ldr r0, _0222E540 ; =0x00000B88 + ldr r0, [r4, r0] + bl FUN_02021A20 + pop {r4, pc} + .align 2, 0 +_0222E534: .word 0x00000B98 +_0222E538: .word 0x00000B8C +_0222E53C: .word 0x00000B94 +_0222E540: .word 0x00000B88 + thumb_func_end MOD82_0222E504 + + thumb_func_start MOD82_0222E544 +MOD82_0222E544: ; 0x0222E544 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222E56C ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222E570 ; =0x00000B84 + mov r2, #0x10 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2e + mov r2, #1 + bl MOD82_0222DF6C + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222E56C: .word 0x00000F0F +_0222E570: .word 0x00000B84 + thumb_func_end MOD82_0222E544 + + thumb_func_start MOD82_0222E574 +MOD82_0222E574: ; 0x0222E574 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #0xeb + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0x44 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0222E5CC + sub r1, r1, #1 + cmp r0, r1 + bne _0222E5A8 + bl FUN_020332DC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD82_0222DFCC + mov r0, #0x2c + str r0, [r4, #0x1c] + b _0222E5CC +_0222E5A8: + ldr r0, _0222E5D4 ; =0x00000F0F + mov r1, #0x2e + str r0, [sp] + lsl r1, r1, #6 + mov r2, #1 + ldr r1, [r4, r1] + add r0, r4, #0 + add r3, r2, #0 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2d + mov r2, #2 + bl MOD82_0222DF6C + add r0, r4, #0 + bl MOD82_0222F700 +_0222E5CC: + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222E5D4: .word 0x00000F0F + thumb_func_end MOD82_0222E574 + + thumb_func_start MOD82_0222E5D8 +MOD82_0222E5D8: ; 0x0222E5D8 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222E600 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + mov r1, #0x2e + lsl r1, r1, #6 + ldr r1, [r4, r1] + mov r2, #8 + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2e + mov r2, #0x32 + bl MOD82_0222DF6C + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222E600: .word 0x00000F0F + thumb_func_end MOD82_0222E5D8 + + thumb_func_start MOD82_0222E604 +MOD82_0222E604: ; 0x0222E604 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xeb + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0x44 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0222E656 + sub r1, r1, #1 + cmp r0, r1 + bne _0222E636 + bl MOD04_021DDD7C + cmp r0, #0 + bne _0222E630 + mov r0, #0 + str r0, [r4, #0x1c] + b _0222E656 +_0222E630: + mov r0, #0x27 + str r0, [r4, #0x1c] + b _0222E656 +_0222E636: + bl MOD04_021DDD7C + cmp r0, #0 + bne _0222E64C + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD82_0222DFCC + mov r0, #0x2c + b _0222E64E +_0222E64C: + mov r0, #0x27 +_0222E64E: + str r0, [r4, #0x1c] + ldr r0, [r4] + mov r1, #1 + str r1, [r0, #0x20] +_0222E656: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222E604 + + thumb_func_start MOD82_0222E65C +MOD82_0222E65C: ; 0x0222E65C + push {r4, lr} + add r4, r0, #0 + add r0, #0x2c + mov r1, #2 + mov r2, #1 + mov r3, #0x14 + bl MOD04_021DDEE0 + mov r0, #2 + bl MOD04_021DDE7C + bl MOD04_021DDDCC + mov r0, #3 + str r0, [r4, #0x1c] + pop {r4, pc} + thumb_func_end MOD82_0222E65C + + thumb_func_start MOD82_0222E67C +MOD82_0222E67C: ; 0x0222E67C + push {r3, r4, lr} + sub sp, #0x44 + add r4, r0, #0 + bl MOD04_021DDCE8 + bl MOD04_021DDD7C + cmp r0, #0 + beq _0222E6E8 + bl MOD04_021DDC1C + cmp r0, #4 + beq _0222E6DE + cmp r0, #7 + beq _0222E6A0 + cmp r0, #8 + beq _0222E6C4 + b _0222E6E8 +_0222E6A0: + add r0, sp, #4 + bl MOD04_021DD808 + ldr r1, _0222E6F0 ; =0x00000EB8 + str r0, [r4, r1] + ldr r2, [sp, #4] + add r0, r1, #4 + str r2, [r4, r0] + bl MOD04_021DD6F0 + bl MOD04_021DDBBC + add r0, r4, #0 + bl MOD82_0222F724 + mov r0, #0x35 + str r0, [r4, #0x1c] + b _0222E6E8 +_0222E6C4: + add r0, sp, #0 + bl MOD04_021DD808 + add r0, r4, #0 + bl MOD82_0222F724 + mov r1, #0x33 + mov r0, #0x3b + str r1, [r4, #0x1c] + sub r1, #0x35 + lsl r0, r0, #6 + str r1, [r4, r0] + b _0222E6E8 +_0222E6DE: + add r0, sp, #8 + bl MOD04_021DD9DC + mov r0, #4 + str r0, [r4, #0x1c] +_0222E6E8: + mov r0, #3 + add sp, #0x44 + pop {r3, r4, pc} + nop +_0222E6F0: .word 0x00000EB8 + thumb_func_end MOD82_0222E67C + + thumb_func_start MOD82_0222E6F4 +MOD82_0222E6F4: ; 0x0222E6F4 + push {r4, lr} + add r4, r0, #0 + bl MOD04_021DE05C + cmp r0, #0 + beq _0222E704 + mov r0, #5 + str r0, [r4, #0x1c] +_0222E704: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD82_0222E6F4 + + thumb_func_start MOD82_0222E708 +MOD82_0222E708: ; 0x0222E708 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + bl MOD04_021DDF4C + cmp r0, #3 + beq _0222E720 + cmp r0, #4 + beq _0222E726 + cmp r0, #5 + beq _0222E726 + b _0222E794 +_0222E720: + mov r0, #6 + str r0, [r4, #0x1c] + b _0222E794 +_0222E726: + add r0, r4, #0 + bl MOD82_0222F724 + add r0, sp, #4 + add r1, sp, #0 + bl MOD04_021DD718 + ldr r1, _0222E79C ; =0x00000EB8 + str r0, [r4, r1] + ldr r2, [sp, #4] + add r0, r1, #4 + str r2, [r4, r0] + bl MOD04_021DD6F0 + bl MOD04_021DDBBC + ldr r0, [sp] + cmp r0, #7 + bhi _0222E782 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222E758: ; jump table + .short _0222E782 - _0222E758 - 2 ; case 0 + .short _0222E768 - _0222E758 - 2 ; case 1 + .short _0222E768 - _0222E758 - 2 ; case 2 + .short _0222E782 - _0222E758 - 2 ; case 3 + .short _0222E76E - _0222E758 - 2 ; case 4 + .short _0222E782 - _0222E758 - 2 ; case 5 + .short _0222E778 - _0222E758 - 2 ; case 6 + .short _0222E77E - _0222E758 - 2 ; case 7 +_0222E768: + mov r0, #0x35 + str r0, [r4, #0x1c] + b _0222E782 +_0222E76E: + bl MOD04_021EB550 + mov r0, #0x35 + str r0, [r4, #0x1c] + b _0222E782 +_0222E778: + mov r0, #0x35 + str r0, [r4, #0x1c] + b _0222E782 +_0222E77E: + bl FUN_020335E0 +_0222E782: + ldr r1, [sp, #4] + ldr r0, _0222E7A0 ; =0xFFFFB1E0 + cmp r1, r0 + bge _0222E794 + ldr r0, _0222E7A4 ; =0xFFFF8AD1 + cmp r1, r0 + blt _0222E794 + mov r0, #0x35 + str r0, [r4, #0x1c] +_0222E794: + mov r0, #3 + add sp, #8 + pop {r4, pc} + nop +_0222E79C: .word 0x00000EB8 +_0222E7A0: .word 0xFFFFB1E0 +_0222E7A4: .word 0xFFFF8AD1 + thumb_func_end MOD82_0222E708 + + thumb_func_start MOD82_0222E7A8 +MOD82_0222E7A8: ; 0x0222E7A8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_02023830 + cmp r0, #0 + bne _0222E7C2 + ldr r1, [r5] + ldr r0, [r1, #8] + ldr r1, [r1, #0x1c] + bl FUN_02023834 +_0222E7C2: + ldr r0, [r5] + ldr r0, [r0, #8] + bl FUN_02023830 + add r4, r0, #0 + ldr r0, [r5] + ldr r0, [r0, #0x14] + bl FUN_02096D68 + add r3, r0, #0 + add r2, r1, #0 + add r0, r4, #0 + add r1, r3, #0 + bl MOD82_0222D5C0 + mov r0, #7 + str r0, [r5, #0x1c] + mov r0, #3 + pop {r3, r4, r5, pc} + thumb_func_end MOD82_0222E7A8 + + thumb_func_start MOD82_0222E7E8 +MOD82_0222E7E8: ; 0x0222E7E8 + push {r4, lr} + add r4, r0, #0 + bl MOD82_0222D920 + mov r0, #8 + str r0, [r4, #0x1c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD82_0222E7E8 + + thumb_func_start MOD82_0222E7F8 +MOD82_0222E7F8: ; 0x0222E7F8 + push {r4, lr} + add r4, r0, #0 + bl MOD82_0222D7C4 + cmp r0, #0 + beq _0222E8AA + bl MOD82_0222D7E4 + add r1, r0, #7 + cmp r1, #9 + bhi _0222E8AA + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222E81A: ; jump table + .short _0222E882 - _0222E81A - 2 ; case 0 + .short _0222E894 - _0222E81A - 2 ; case 1 + .short _0222E8A6 - _0222E81A - 2 ; case 2 + .short _0222E882 - _0222E81A - 2 ; case 3 + .short _0222E8AA - _0222E81A - 2 ; case 4 + .short _0222E894 - _0222E81A - 2 ; case 5 + .short _0222E870 - _0222E81A - 2 ; case 6 + .short _0222E82E - _0222E81A - 2 ; case 7 + .short _0222E85E - _0222E81A - 2 ; case 8 + .short _0222E870 - _0222E81A - 2 ; case 9 +_0222E82E: + add r0, r4, #0 + bl MOD82_0222F724 + ldr r0, [r4] + ldr r0, [r0, #0x18] + cmp r0, #0 + beq _0222E846 + cmp r0, #1 + beq _0222E852 + cmp r0, #2 + beq _0222E858 + b _0222E8AA +_0222E846: + add r0, r4, #0 + mov r1, #9 + mov r2, #0xb + bl MOD82_0222DF6C + b _0222E8AA +_0222E852: + mov r0, #0x17 + str r0, [r4, #0x1c] + b _0222E8AA +_0222E858: + mov r0, #0x1b + str r0, [r4, #0x1c] + b _0222E8AA +_0222E85E: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222E8AA +_0222E870: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222E8AA +_0222E882: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222E8AA +_0222E894: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222E8AA +_0222E8A6: + bl FUN_020335E0 +_0222E8AA: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222E7F8 + + thumb_func_start MOD82_0222E8B0 +MOD82_0222E8B0: ; 0x0222E8B0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x38] + bl MOD82_0222D7F0 + mov r0, #0xa + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F700 + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD82_0222E8B0 + + thumb_func_start MOD82_0222E8C8 +MOD82_0222E8C8: ; 0x0222E8C8 + push {r4, lr} + add r4, r0, #0 + bl MOD82_0222D7C4 + cmp r0, #0 + beq _0222E954 + bl MOD82_0222D7E4 + add r1, r0, #7 + cmp r1, #6 + bhi _0222E944 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222E8EA: ; jump table + .short _0222E928 - _0222E8EA - 2 ; case 0 + .short _0222E91C - _0222E8EA - 2 ; case 1 + .short _0222E934 - _0222E8EA - 2 ; case 2 + .short _0222E928 - _0222E8EA - 2 ; case 3 + .short _0222E910 - _0222E8EA - 2 ; case 4 + .short _0222E904 - _0222E8EA - 2 ; case 5 + .short _0222E8F8 - _0222E8EA - 2 ; case 6 +_0222E8F8: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + b _0222E94E +_0222E904: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + b _0222E94E +_0222E910: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + b _0222E94E +_0222E91C: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + b _0222E94E +_0222E928: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + b _0222E94E +_0222E934: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + bl FUN_020335E0 + b _0222E94E +_0222E944: + cmp r0, #0 + ble _0222E94E + str r0, [r4, #0x40] + ldr r0, [r4, #0x20] + str r0, [r4, #0x1c] +_0222E94E: + add r0, r4, #0 + bl MOD82_0222F724 +_0222E954: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD82_0222E8C8 + + thumb_func_start MOD82_0222E958 +MOD82_0222E958: ; 0x0222E958 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222E980 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222E984 ; =0x00000B7C + mov r2, #0 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2d + mov r2, #0xc + bl MOD82_0222DF6C + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222E980: .word 0x00000F0F +_0222E984: .word 0x00000B7C + thumb_func_end MOD82_0222E958 + + thumb_func_start MOD82_0222E988 +MOD82_0222E988: ; 0x0222E988 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xda + lsl r0, r0, #4 + add r0, r4, r0 + mov r1, #0 + mov r2, #0x1f + mov r3, #0xa + bl FUN_0200CCA4 + mov r1, #0xb9 + mov r0, #0xda + lsl r1, r1, #4 + lsl r0, r0, #4 + ldr r1, [r4, r1] + ldr r2, [r4, #0x44] + add r0, r4, r0 + mov r3, #3 + bl MOD82_0222F694 + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD82_0222F6D8 + mov r0, #0xda + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_020191D0 + mov r0, #0xd + str r0, [r4, #0x1c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD82_0222E988 + + thumb_func_start MOD82_0222E9CC +MOD82_0222E9CC: ; 0x0222E9CC + push {r3, r4, lr} + sub sp, #0x1c + ldr r2, _0222EA9C ; =0x021C48B8 + mov r1, #0x40 + ldr r3, [r2, #0x4c] + add r4, r0, #0 + tst r1, r3 + beq _0222EA08 + ldr r0, [r4, #0x44] + add r1, r0, #1 + str r1, [r4, #0x44] + ldr r0, [r4, #0x40] + cmp r1, r0 + ble _0222E9EC + mov r0, #1 + str r0, [r4, #0x44] +_0222E9EC: + mov r1, #0xb9 + mov r0, #0xda + lsl r1, r1, #4 + lsl r0, r0, #4 + ldr r1, [r4, r1] + ldr r2, [r4, #0x44] + add r0, r4, r0 + mov r3, #3 + bl MOD82_0222F694 + ldr r0, _0222EAA0 ; =0x000005DC + bl FUN_020054C8 + b _0222EA94 +_0222EA08: + mov r1, #0x80 + tst r1, r3 + beq _0222EA38 + ldr r0, [r4, #0x44] + sub r0, r0, #1 + str r0, [r4, #0x44] + cmp r0, #1 + bge _0222EA1C + ldr r0, [r4, #0x40] + str r0, [r4, #0x44] +_0222EA1C: + mov r1, #0xb9 + mov r0, #0xda + lsl r1, r1, #4 + lsl r0, r0, #4 + ldr r1, [r4, r1] + ldr r2, [r4, #0x44] + add r0, r4, r0 + mov r3, #3 + bl MOD82_0222F694 + ldr r0, _0222EAA0 ; =0x000005DC + bl FUN_020054C8 + b _0222EA94 +_0222EA38: + ldr r2, [r2, #0x48] + mov r1, #1 + tst r1, r2 + beq _0222EA7C + add r0, sp, #0 + add r1, sp, #0x10 + bl MOD04_021DE1F8 + ldr r0, [r4] + ldr r1, [r4, #0x3c] + ldr r2, [r4, #0x44] + lsl r1, r1, #0x18 + lsl r2, r2, #0x18 + ldr r0, [r0, #4] + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + add r3, sp, #0 + bl FUN_0202A6B4 + cmp r0, #0 + beq _0222EA66 + mov r0, #0x12 + b _0222EA68 +_0222EA66: + mov r0, #0xe +_0222EA68: + mov r1, #0 + str r0, [r4, #0x1c] + add r0, r4, #0 + add r2, r1, #0 + bl MOD82_0222F6D8 + ldr r0, _0222EAA0 ; =0x000005DC + bl FUN_020054C8 + b _0222EA94 +_0222EA7C: + mov r1, #2 + tst r1, r2 + beq _0222EA94 + mov r1, #0 + add r2, r1, #0 + bl MOD82_0222F6D8 + mov r0, #0x13 + str r0, [r4, #0x1c] + ldr r0, _0222EAA0 ; =0x000005DC + bl FUN_020054C8 +_0222EA94: + mov r0, #3 + add sp, #0x1c + pop {r3, r4, pc} + nop +_0222EA9C: .word 0x021C48B8 +_0222EAA0: .word 0x000005DC + thumb_func_end MOD82_0222E9CC + + thumb_func_start MOD82_0222EAA4 +MOD82_0222EAA4: ; 0x0222EAA4 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _0222EB00 ; =0x00000B78 + ldr r2, [r4, #0x44] + ldr r0, [r4, r0] + mov r1, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r3, #2 + str r3, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r0, _0222EB00 ; =0x00000B78 + ldr r2, [r4, #0x3c] + ldr r0, [r4, r0] + bl FUN_0200AD38 + ldr r0, _0222EB04 ; =0x00000F0F + mov r2, #1 + str r0, [sp] + ldr r1, _0222EB08 ; =0x00000B7C + add r0, r4, #0 + ldr r1, [r4, r1] + add r3, r2, #0 + bl MOD82_0222F4D8 + add r0, r4, #0 + mov r1, #0x2d + mov r2, #0xf + bl MOD82_0222DF6C + add r4, #0x48 + ldr r2, _0222EB0C ; =0x00000A38 + mov r0, #0 + add r1, r4, #0 + bl MIi_CpuClearFast + mov r0, #3 + add sp, #8 + pop {r4, pc} + .align 2, 0 +_0222EB00: .word 0x00000B78 +_0222EB04: .word 0x00000F0F +_0222EB08: .word 0x00000B7C +_0222EB0C: .word 0x00000A38 + thumb_func_end MOD82_0222EAA4 + + thumb_func_start MOD82_0222EB10 +MOD82_0222EB10: ; 0x0222EB10 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222EB38 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222EB3C ; =0x00000B7C + mov r2, #2 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F4D8 + add r0, r4, #0 + mov r1, #0x2d + mov r2, #0xb + bl MOD82_0222DF6C + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222EB38: .word 0x00000F0F +_0222EB3C: .word 0x00000B7C + thumb_func_end MOD82_0222EB10 + + thumb_func_start MOD82_0222EB40 +MOD82_0222EB40: ; 0x0222EB40 + push {r4, lr} + add r4, r0, #0 + add r2, r4, #0 + ldr r0, [r4, #0x38] + ldr r1, [r4, #0x44] + add r2, #0x48 + bl MOD82_0222D840 + add r0, r4, #0 + bl MOD82_0222F700 + mov r0, #0x10 + str r0, [r4, #0x1c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222EB40 + + thumb_func_start MOD82_0222EB60 +MOD82_0222EB60: ; 0x0222EB60 + push {r3, r4, lr} + sub sp, #0x1c + add r4, r0, #0 + bl MOD82_0222D7C4 + cmp r0, #0 + beq _0222EC44 + bl MOD82_0222D7E4 + add r1, r0, #7 + cmp r1, #7 + bhi _0222EC44 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222EB84: ; jump table + .short _0222EC1E - _0222EB84 - 2 ; case 0 + .short _0222EC0C - _0222EB84 - 2 ; case 1 + .short _0222EC30 - _0222EB84 - 2 ; case 2 + .short _0222EBFA - _0222EB84 - 2 ; case 3 + .short _0222EBFA - _0222EB84 - 2 ; case 4 + .short _0222EBE8 - _0222EB84 - 2 ; case 5 + .short _0222EBD6 - _0222EB84 - 2 ; case 6 + .short _0222EB94 - _0222EB84 - 2 ; case 7 +_0222EB94: + ldr r0, [r4] + ldr r2, [r4, #0x38] + ldr r3, [r4, #0x44] + add r1, r4, #0 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r0, #4] + add r1, #0x48 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_0202A754 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x11 + bl MOD82_0222DF6C + add r0, sp, #0 + add r1, sp, #0x10 + bl MOD04_021DE1F8 + ldr r0, [r4] + ldr r1, [r4, #0x3c] + ldr r2, [r4, #0x44] + lsl r1, r1, #0x18 + lsl r2, r2, #0x18 + ldr r0, [r0, #4] + lsr r1, r1, #0x18 + lsr r2, r2, #0x18 + add r3, sp, #0 + bl FUN_0202A60C + b _0222EC44 +_0222EBD6: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222EC44 +_0222EBE8: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222EC44 +_0222EBFA: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #9 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222EC44 +_0222EC0C: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222EC44 +_0222EC1E: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222EC44 +_0222EC30: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + bl FUN_020335E0 +_0222EC44: + mov r0, #3 + add sp, #0x1c + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222EB60 + + thumb_func_start MOD82_0222EC4C +MOD82_0222EC4C: ; 0x0222EC4C + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222EC80 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222EC84 ; =0x00000B7C + mov r2, #3 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2d + mov r2, #0x2b + bl MOD82_0222DF6C + add r0, r4, #0 + bl MOD82_0222F724 + ldr r0, [r4] + mov r1, #0 + str r1, [r0, #0x20] + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222EC80: .word 0x00000F0F +_0222EC84: .word 0x00000B7C + thumb_func_end MOD82_0222EC4C + + thumb_func_start MOD82_0222EC88 +MOD82_0222EC88: ; 0x0222EC88 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222ECB4 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222ECB8 ; =0x00000B7C + mov r2, #7 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2d + mov r2, #0x18 + bl MOD82_0222DF6C + add r0, r4, #0 + bl MOD82_0222F700 + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222ECB4: .word 0x00000F0F +_0222ECB8: .word 0x00000B7C + thumb_func_end MOD82_0222EC88 + + thumb_func_start MOD82_0222ECBC +MOD82_0222ECBC: ; 0x0222ECBC + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5] + ldr r0, [r0] + bl FUN_0202A524 + add r4, r0, #0 + ldr r0, [r5] + add r1, sp, #0 + ldr r0, [r0, #4] + bl FUN_0202A784 + ldr r0, [r5] + mov r2, #0x2a + lsl r2, r2, #6 + ldr r0, [r0, #0xc] + mov r1, #1 + add r2, r5, r2 + bl FUN_02066840 + add r1, sp, #0 + ldrb r0, [r1] + mov r3, #0x2a + lsl r3, r3, #6 + ldrb r1, [r1, #1] + add r2, r4, #0 + add r3, r5, r3 + bl MOD82_0222D8A0 + mov r0, #0x19 + str r0, [r5, #0x1c] + mov r0, #3 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD82_0222ECBC + + thumb_func_start MOD82_0222ED00 +MOD82_0222ED00: ; 0x0222ED00 + push {r4, lr} + add r4, r0, #0 + bl MOD82_0222D7C4 + cmp r0, #0 + beq _0222EDB8 + bl MOD82_0222D7E4 + add r1, r0, #7 + cmp r1, #7 + bhi _0222EDB8 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222ED22: ; jump table + .short _0222ED92 - _0222ED22 - 2 ; case 0 + .short _0222ED80 - _0222ED22 - 2 ; case 1 + .short _0222EDA4 - _0222ED22 - 2 ; case 2 + .short _0222ED92 - _0222ED22 - 2 ; case 3 + .short _0222ED6E - _0222ED22 - 2 ; case 4 + .short _0222ED5C - _0222ED22 - 2 ; case 5 + .short _0222ED4A - _0222ED22 - 2 ; case 6 + .short _0222ED32 - _0222ED22 - 2 ; case 7 +_0222ED32: + ldr r0, [r4] + mov r1, #5 + ldr r0, [r0] + mov r2, #2 + bl FUN_0202A578 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x1a + bl MOD82_0222DF6C + b _0222EDB8 +_0222ED4A: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222EDB8 +_0222ED5C: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222EDB8 +_0222ED6E: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222EDB8 +_0222ED80: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222EDB8 +_0222ED92: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222EDB8 +_0222EDA4: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + bl FUN_020335E0 +_0222EDB8: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD82_0222ED00 + + thumb_func_start MOD82_0222EDBC +MOD82_0222EDBC: ; 0x0222EDBC + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222EDF0 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222EDF4 ; =0x00000B7C + mov r2, #8 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2d + mov r2, #0x2b + bl MOD82_0222DF6C + add r0, r4, #0 + bl MOD82_0222F724 + ldr r0, [r4] + mov r1, #0 + str r1, [r0, #0x20] + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222EDF0: .word 0x00000F0F +_0222EDF4: .word 0x00000B7C + thumb_func_end MOD82_0222EDBC + + thumb_func_start MOD82_0222EDF8 +MOD82_0222EDF8: ; 0x0222EDF8 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222EE20 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222EE24 ; =0x00000B7C + mov r2, #5 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2d + mov r2, #0x1c + bl MOD82_0222DF6C + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222EE20: .word 0x00000F0F +_0222EE24: .word 0x00000B7C + thumb_func_end MOD82_0222EDF8 + + thumb_func_start MOD82_0222EE28 +MOD82_0222EE28: ; 0x0222EE28 + push {r4, lr} + add r4, r0, #0 + mov r0, #1 + str r0, [r4, #0x3c] + mov r0, #0xd9 + lsl r0, r0, #4 + add r0, r4, r0 + mov r1, #0 + mov r2, #0x1f + mov r3, #0xa + bl FUN_0200CCA4 + ldr r1, _0222EE70 ; =0x00000B94 + mov r0, #0xd9 + lsl r0, r0, #4 + ldr r1, [r4, r1] + ldr r2, [r4, #0x3c] + add r0, r4, r0 + mov r3, #2 + bl MOD82_0222F694 + mov r1, #1 + add r0, r4, #0 + add r2, r1, #0 + bl MOD82_0222F6D8 + mov r0, #0xd9 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_020191D0 + mov r0, #0x1d + str r0, [r4, #0x1c] + mov r0, #3 + pop {r4, pc} + nop +_0222EE70: .word 0x00000B94 + thumb_func_end MOD82_0222EE28 + + thumb_func_start MOD82_0222EE74 +MOD82_0222EE74: ; 0x0222EE74 + push {r4, lr} + ldr r2, _0222EF18 ; =0x021C48B8 + mov r1, #0x40 + ldr r3, [r2, #0x4c] + add r4, r0, #0 + tst r1, r3 + beq _0222EEAA + ldr r0, [r4, #0x3c] + add r0, r0, #1 + str r0, [r4, #0x3c] + cmp r0, #0xa + ble _0222EE90 + mov r0, #1 + str r0, [r4, #0x3c] +_0222EE90: + ldr r1, _0222EF1C ; =0x00000B94 + mov r0, #0xd9 + lsl r0, r0, #4 + ldr r1, [r4, r1] + ldr r2, [r4, #0x3c] + add r0, r4, r0 + mov r3, #2 + bl MOD82_0222F694 + ldr r0, _0222EF20 ; =0x000005DC + bl FUN_020054C8 + b _0222EF12 +_0222EEAA: + mov r1, #0x80 + tst r1, r3 + beq _0222EED8 + ldr r0, [r4, #0x3c] + sub r0, r0, #1 + str r0, [r4, #0x3c] + cmp r0, #1 + bge _0222EEBE + mov r0, #0xa + str r0, [r4, #0x3c] +_0222EEBE: + ldr r1, _0222EF1C ; =0x00000B94 + mov r0, #0xd9 + lsl r0, r0, #4 + ldr r1, [r4, r1] + ldr r2, [r4, #0x3c] + add r0, r4, r0 + mov r3, #2 + bl MOD82_0222F694 + ldr r0, _0222EF20 ; =0x000005DC + bl FUN_020054C8 + b _0222EF12 +_0222EED8: + ldr r2, [r2, #0x48] + mov r1, #1 + tst r1, r2 + beq _0222EEFA + mov r1, #0 + add r2, r1, #0 + bl MOD82_0222F6D8 + add r0, r4, #0 + mov r1, #9 + mov r2, #0x1e + bl MOD82_0222DF6C + ldr r0, _0222EF20 ; =0x000005DC + bl FUN_020054C8 + b _0222EF12 +_0222EEFA: + mov r1, #2 + tst r1, r2 + beq _0222EF12 + mov r1, #0 + add r2, r1, #0 + bl MOD82_0222F6D8 + mov r0, #0x15 + str r0, [r4, #0x1c] + ldr r0, _0222EF20 ; =0x000005DC + bl FUN_020054C8 +_0222EF12: + mov r0, #3 + pop {r4, pc} + nop +_0222EF18: .word 0x021C48B8 +_0222EF1C: .word 0x00000B94 +_0222EF20: .word 0x000005DC + thumb_func_end MOD82_0222EE74 + + thumb_func_start MOD82_0222EF24 +MOD82_0222EF24: ; 0x0222EF24 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222EF4C ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222EF50 ; =0x00000B7C + mov r2, #6 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2d + mov r2, #0x1f + bl MOD82_0222DF6C + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222EF4C: .word 0x00000F0F +_0222EF50: .word 0x00000B7C + thumb_func_end MOD82_0222EF24 + + thumb_func_start MOD82_0222EF54 +MOD82_0222EF54: ; 0x0222EF54 + push {r4, lr} + add r4, r0, #0 + mov r0, #1 + str r0, [r4, #0x44] + mov r0, #0xda + lsl r0, r0, #4 + add r0, r4, r0 + mov r1, #0 + mov r2, #0x1f + mov r3, #0xa + bl FUN_0200CCA4 + mov r1, #0xb9 + mov r0, #0xda + lsl r1, r1, #4 + lsl r0, r0, #4 + ldr r1, [r4, r1] + ldr r2, [r4, #0x44] + add r0, r4, r0 + mov r3, #3 + bl MOD82_0222F694 + add r0, r4, #0 + mov r1, #0 + mov r2, #1 + bl MOD82_0222F6D8 + mov r0, #0xda + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_020191D0 + mov r0, #0x20 + str r0, [r4, #0x1c] + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD82_0222EF54 + + thumb_func_start MOD82_0222EF9C +MOD82_0222EF9C: ; 0x0222EF9C + push {r4, lr} + ldr r2, _0222F040 ; =0x021C48B8 + mov r1, #0x40 + ldr r3, [r2, #0x4c] + add r4, r0, #0 + tst r1, r3 + beq _0222EFD8 + ldr r0, [r4, #0x44] + add r1, r0, #1 + str r1, [r4, #0x44] + ldr r0, [r4, #0x40] + add r0, r0, #1 + cmp r1, r0 + bne _0222EFBC + mov r0, #1 + str r0, [r4, #0x44] +_0222EFBC: + mov r1, #0xb9 + mov r0, #0xda + lsl r1, r1, #4 + lsl r0, r0, #4 + ldr r1, [r4, r1] + ldr r2, [r4, #0x44] + add r0, r4, r0 + mov r3, #3 + bl MOD82_0222F694 + ldr r0, _0222F044 ; =0x000005DC + bl FUN_020054C8 + b _0222F03C +_0222EFD8: + mov r1, #0x80 + tst r1, r3 + beq _0222F008 + ldr r0, [r4, #0x44] + sub r0, r0, #1 + str r0, [r4, #0x44] + cmp r0, #1 + bge _0222EFEC + ldr r0, [r4, #0x40] + str r0, [r4, #0x44] +_0222EFEC: + mov r1, #0xb9 + mov r0, #0xda + lsl r1, r1, #4 + lsl r0, r0, #4 + ldr r1, [r4, r1] + ldr r2, [r4, #0x44] + add r0, r4, r0 + mov r3, #3 + bl MOD82_0222F694 + ldr r0, _0222F044 ; =0x000005DC + bl FUN_020054C8 + b _0222F03C +_0222F008: + ldr r2, [r2, #0x48] + mov r1, #1 + tst r1, r2 + beq _0222F024 + mov r1, #0 + add r2, r1, #0 + bl MOD82_0222F6D8 + mov r0, #0x21 + str r0, [r4, #0x1c] + ldr r0, _0222F044 ; =0x000005DC + bl FUN_020054C8 + b _0222F03C +_0222F024: + mov r1, #2 + tst r1, r2 + beq _0222F03C + mov r1, #0 + add r2, r1, #0 + bl MOD82_0222F6D8 + mov r0, #0x1b + str r0, [r4, #0x1c] + ldr r0, _0222F044 ; =0x000005DC + bl FUN_020054C8 +_0222F03C: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F040: .word 0x021C48B8 +_0222F044: .word 0x000005DC + thumb_func_end MOD82_0222EF9C + + thumb_func_start MOD82_0222F048 +MOD82_0222F048: ; 0x0222F048 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _0222F09C ; =0x00000B78 + ldr r2, [r4, #0x44] + ldr r0, [r4, r0] + mov r1, #0 + mov r3, #3 + bl FUN_0200AD38 + mov r3, #2 + str r3, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r0, _0222F09C ; =0x00000B78 + ldr r2, [r4, #0x3c] + ldr r0, [r4, r0] + bl FUN_0200AD38 + ldr r0, _0222F0A0 ; =0x00000F0F + mov r2, #1 + str r0, [sp] + ldr r1, _0222F0A4 ; =0x00000B7C + add r0, r4, #0 + ldr r1, [r4, r1] + add r3, r2, #0 + bl MOD82_0222F4D8 + add r0, r4, #0 + mov r1, #0x2d + mov r2, #0x22 + bl MOD82_0222DF6C + mov r0, #0x22 + str r0, [r4, #0x1c] + mov r0, #3 + add sp, #8 + pop {r4, pc} + .align 2, 0 +_0222F09C: .word 0x00000B78 +_0222F0A0: .word 0x00000F0F +_0222F0A4: .word 0x00000B7C + thumb_func_end MOD82_0222F048 + + thumb_func_start MOD82_0222F0A8 +MOD82_0222F0A8: ; 0x0222F0A8 + push {r4, lr} + add r4, r0, #0 + add r2, r4, #0 + ldr r0, [r4, #0x3c] + ldr r1, [r4, #0x44] + add r2, #0x48 + bl MOD82_0222D840 + mov r0, #0x23 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F700 + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222F0A8 + + thumb_func_start MOD82_0222F0C8 +MOD82_0222F0C8: ; 0x0222F0C8 + push {r4, lr} + add r4, r0, #0 + bl MOD82_0222D7C4 + cmp r0, #0 + beq _0222F18C + bl MOD82_0222D7E4 + add r1, r0, #7 + cmp r1, #7 + bhi _0222F18C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222F0EA: ; jump table + .short _0222F166 - _0222F0EA - 2 ; case 0 + .short _0222F154 - _0222F0EA - 2 ; case 1 + .short _0222F178 - _0222F0EA - 2 ; case 2 + .short _0222F166 - _0222F0EA - 2 ; case 3 + .short _0222F142 - _0222F0EA - 2 ; case 4 + .short _0222F130 - _0222F0EA - 2 ; case 5 + .short _0222F11E - _0222F0EA - 2 ; case 6 + .short _0222F0FA - _0222F0EA - 2 ; case 7 +_0222F0FA: + ldr r0, [r4] + ldr r2, [r4, #0x3c] + ldr r3, [r4, #0x44] + ldr r1, _0222F190 ; =0x00000684 + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r0, #4] + add r1, r4, r1 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_0202A838 + add r0, r4, #0 + mov r1, #0x25 + mov r2, #0x24 + bl MOD82_0222DF6C + b _0222F18C +_0222F11E: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222F18C +_0222F130: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222F18C +_0222F142: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #9 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222F18C +_0222F154: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222F18C +_0222F166: + mov r1, #9 + str r1, [r4, #0x1c] + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD82_0222F724 + b _0222F18C +_0222F178: + mov r1, #0x3b + lsl r1, r1, #6 + str r0, [r4, r1] + mov r0, #0x33 + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 + bl FUN_020335E0 +_0222F18C: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F190: .word 0x00000684 + thumb_func_end MOD82_0222F0C8 + + thumb_func_start MOD82_0222F194 +MOD82_0222F194: ; 0x0222F194 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222F1C8 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222F1CC ; =0x00000B7C + mov r2, #3 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2d + mov r2, #0x2b + bl MOD82_0222DF6C + add r0, r4, #0 + bl MOD82_0222F724 + ldr r0, [r4] + mov r1, #0 + str r1, [r0, #0x20] + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222F1C8: .word 0x00000F0F +_0222F1CC: .word 0x00000B7C + thumb_func_end MOD82_0222F194 + + thumb_func_start MOD82_0222F1D0 +MOD82_0222F1D0: ; 0x0222F1D0 + mov r1, #0x27 + str r1, [r0, #0x1c] + mov r0, #3 + bx lr + thumb_func_end MOD82_0222F1D0 + + thumb_func_start MOD82_0222F1D8 +MOD82_0222F1D8: ; 0x0222F1D8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + mov r1, #2 + ldr r0, [r0, #0xc] + bl FUN_02022840 + mov r0, #0x26 + str r0, [r4, #0x1c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222F1D8 + + thumb_func_start MOD82_0222F1F0 +MOD82_0222F1F0: ; 0x0222F1F0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + ldr r0, [r0, #0xc] + bl FUN_02022854 + cmp r0, #2 + bne _0222F20A + ldr r0, [r4, #0x20] + str r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD82_0222F724 +_0222F20A: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222F1F0 + + thumb_func_start MOD82_0222F210 +MOD82_0222F210: ; 0x0222F210 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222F238 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222F23C ; =0x00000B7C + mov r2, #4 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2e + mov r2, #0x14 + bl MOD82_0222DF6C + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222F238: .word 0x00000F0F +_0222F23C: .word 0x00000B7C + thumb_func_end MOD82_0222F210 + + thumb_func_start MOD82_0222F240 +MOD82_0222F240: ; 0x0222F240 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xeb + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0x44 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0222F26E + sub r1, r1, #1 + cmp r0, r1 + bne _0222F264 + mov r0, #0xb + str r0, [r4, #0x1c] + b _0222F26E +_0222F264: + mov r0, #0x27 + str r0, [r4, #0x1c] + ldr r0, [r4] + mov r1, #1 + str r1, [r0, #0x20] +_0222F26E: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222F240 + + thumb_func_start MOD82_0222F274 +MOD82_0222F274: ; 0x0222F274 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222F29C ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222F2A0 ; =0x00000B7C + mov r2, #9 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2e + mov r2, #0x16 + bl MOD82_0222DF6C + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222F29C: .word 0x00000F0F +_0222F2A0: .word 0x00000B7C + thumb_func_end MOD82_0222F274 + + thumb_func_start MOD82_0222F2A4 +MOD82_0222F2A4: ; 0x0222F2A4 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xeb + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0x44 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0222F2D2 + sub r1, r1, #1 + cmp r0, r1 + bne _0222F2C8 + mov r0, #0x1b + str r0, [r4, #0x1c] + b _0222F2D2 +_0222F2C8: + mov r0, #0x27 + str r0, [r4, #0x1c] + ldr r0, [r4] + mov r1, #1 + str r1, [r0, #0x20] +_0222F2D2: + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222F2A4 + + thumb_func_start MOD82_0222F2D8 +MOD82_0222F2D8: ; 0x0222F2D8 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222F300 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222F304 ; =0x00000B84 + mov r2, #0x19 + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2d + mov r2, #0x28 + bl MOD82_0222DF6C + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + nop +_0222F300: .word 0x00000F0F +_0222F304: .word 0x00000B84 + thumb_func_end MOD82_0222F2D8 + + thumb_func_start MOD82_0222F308 +MOD82_0222F308: ; 0x0222F308 + push {r4, lr} + add r4, r0, #0 + bl MOD04_021DDBBC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD82_0222DFCC + mov r0, #0x29 + str r0, [r4, #0x1c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222F308 + + thumb_func_start MOD82_0222F324 +MOD82_0222F324: ; 0x0222F324 + push {r3, r4, lr} + sub sp, #4 + ldr r1, _0222F350 ; =0x00000F0F + add r4, r0, #0 + str r1, [sp] + ldr r1, _0222F354 ; =0x00000B84 + mov r2, #0x1a + ldr r1, [r4, r1] + mov r3, #1 + bl MOD82_0222F59C + add r0, r4, #0 + mov r1, #0x2f + mov r2, #0x2c + bl MOD82_0222DF6C + ldr r0, _0222F358 ; =0x00000EC4 + mov r1, #0 + str r1, [r4, r0] + mov r0, #3 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222F350: .word 0x00000F0F +_0222F354: .word 0x00000B84 +_0222F358: .word 0x00000EC4 + thumb_func_end MOD82_0222F324 + + thumb_func_start MOD82_0222F35C +MOD82_0222F35C: ; 0x0222F35C + mov r0, #3 + bx lr + thumb_func_end MOD82_0222F35C + + thumb_func_start MOD82_0222F360 +MOD82_0222F360: ; 0x0222F360 + push {r3, r4, lr} + sub sp, #0xc + add r4, r0, #0 + bl FUN_02033ED0 + bl FUN_020332DC + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x44 + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0 + str r0, [r4, #0x1c] + mov r0, #4 + add sp, #0xc + pop {r3, r4, pc} + thumb_func_end MOD82_0222F360 + + thumb_func_start MOD82_0222F390 +MOD82_0222F390: ; 0x0222F390 + push {r4, lr} + add r4, r0, #0 + mov r0, #0xeb + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0x44 + bl FUN_020021AC + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0222F3B8 + sub r1, r1, #1 + cmp r0, r1 + bne _0222F3B4 + mov r0, #0 + str r0, [r4, #0x1c] + b _0222F3B8 +_0222F3B4: + mov r0, #0x27 + str r0, [r4, #0x1c] +_0222F3B8: + mov r0, #3 + pop {r4, pc} + thumb_func_end MOD82_0222F390 + + thumb_func_start MOD82_0222F3BC +MOD82_0222F3BC: ; 0x0222F3BC + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x3b + lsl r0, r0, #6 + ldr r0, [r5, r0] + mov r4, #0 + add r0, r0, #7 + cmp r0, #9 + bhi _0222F400 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222F3DA: ; jump table + .short _0222F3FA - _0222F3DA - 2 ; case 0 + .short _0222F3EE - _0222F3DA - 2 ; case 1 + .short _0222F400 - _0222F3DA - 2 ; case 2 + .short _0222F3FA - _0222F3DA - 2 ; case 3 + .short _0222F3FE - _0222F3DA - 2 ; case 4 + .short _0222F3EE - _0222F3DA - 2 ; case 5 + .short _0222F3F6 - _0222F3DA - 2 ; case 6 + .short _0222F400 - _0222F3DA - 2 ; case 7 + .short _0222F3F2 - _0222F3DA - 2 ; case 8 + .short _0222F3F6 - _0222F3DA - 2 ; case 9 +_0222F3EE: + mov r4, #0xd + b _0222F400 +_0222F3F2: + mov r4, #0xb + b _0222F400 +_0222F3F6: + mov r4, #0xc + b _0222F400 +_0222F3FA: + mov r4, #0xe + b _0222F400 +_0222F3FE: + mov r4, #0xf +_0222F400: + add r0, r5, #0 + bl MOD82_0222F724 + ldr r0, _0222F428 ; =0x00000F0F + ldr r1, _0222F42C ; =0x00000B7C + str r0, [sp] + ldr r1, [r5, r1] + add r0, r5, #0 + add r2, r4, #0 + mov r3, #1 + bl MOD82_0222F59C + add r0, r5, #0 + mov r1, #0x2d + mov r2, #0x34 + bl MOD82_0222DF6C + mov r0, #3 + pop {r3, r4, r5, pc} + nop +_0222F428: .word 0x00000F0F +_0222F42C: .word 0x00000B7C + thumb_func_end MOD82_0222F3BC + + thumb_func_start MOD82_0222F430 +MOD82_0222F430: ; 0x0222F430 + push {r4, lr} + add r4, r0, #0 + bl FUN_020332DC + bl MOD04_021DDBBC + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD82_0222DFCC + mov r0, #0x2c + str r0, [r4, #0x1c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222F430 + + thumb_func_start MOD82_0222F450 +MOD82_0222F450: ; 0x0222F450 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222F46C ; =0x00000B9C + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0222F468 + ldr r0, [r4, #0x20] + str r0, [r4, #0x1c] +_0222F468: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F46C: .word 0x00000B9C + thumb_func_end MOD82_0222F450 + + thumb_func_start MOD82_0222F470 +MOD82_0222F470: ; 0x0222F470 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222F49C ; =0x00000B9C + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0222F498 + ldr r0, _0222F4A0 ; =0x00000EC4 + ldr r0, [r4, r0] + cmp r0, #0x1e + ble _0222F490 + ldr r0, [r4, #0x20] + str r0, [r4, #0x1c] +_0222F490: + ldr r0, _0222F4A0 ; =0x00000EC4 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] +_0222F498: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F49C: .word 0x00000B9C +_0222F4A0: .word 0x00000EC4 + thumb_func_end MOD82_0222F470 + + thumb_func_start MOD82_0222F4A4 +MOD82_0222F4A4: ; 0x0222F4A4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222F4D4 ; =0x00000B9C + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0222F4CE + mov r2, #0x91 + ldr r0, [r4, #4] + mov r1, #0xd + lsl r2, r2, #2 + bl MOD82_0222DF38 + mov r1, #0xeb + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r0, [r4, #0x20] + str r0, [r4, #0x1c] +_0222F4CE: + mov r0, #3 + pop {r4, pc} + nop +_0222F4D4: .word 0x00000B9C + thumb_func_end MOD82_0222F4A4 + + thumb_func_start MOD82_0222F4D8 +MOD82_0222F4D8: ; 0x0222F4D8 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + add r0, r1, #0 + add r1, r2, #0 + add r4, r3, #0 + bl FUN_0200A914 + add r6, r0, #0 + ldr r1, _0222F53C ; =0x00000B78 + add r2, r6, #0 + ldr r0, [r5, r1] + add r1, #0x10 + ldr r1, [r5, r1] + bl FUN_0200B7B8 + mov r0, #0x36 + lsl r0, r0, #6 + add r0, r5, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x36 + lsl r0, r0, #6 + add r0, r5, r0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + mov r0, #0x36 + lsl r0, r0, #6 + ldr r2, _0222F540 ; =0x00000B88 + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + ldr r1, _0222F544 ; =0x00000B9C + str r0, [r5, r1] + add r0, r6, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_0222F53C: .word 0x00000B78 +_0222F540: .word 0x00000B88 +_0222F544: .word 0x00000B9C + thumb_func_end MOD82_0222F4D8 + + thumb_func_start MOD82_0222F548 +MOD82_0222F548: ; 0x0222F548 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222F56C ; =0x00000EBC + ldr r0, [r4, r0] + neg r0, r0 + bl MOD04_021D80E0 + ldr r2, _0222F56C ; =0x00000EBC + add r1, r0, #0 + ldr r2, [r4, r2] + add r0, r4, #0 + neg r2, r2 + bl MOD82_0222F7C0 + mov r0, #0x36 + str r0, [r4, #0x1c] + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F56C: .word 0x00000EBC + thumb_func_end MOD82_0222F548 + + thumb_func_start MOD82_0222F570 +MOD82_0222F570: ; 0x0222F570 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222F598 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + bne _0222F584 + mov r0, #2 + tst r0, r1 + beq _0222F594 +_0222F584: + mov r0, #0x37 + lsl r0, r0, #6 + add r0, r4, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #0 + str r0, [r4, #0x1c] +_0222F594: + mov r0, #3 + pop {r4, pc} + .align 2, 0 +_0222F598: .word 0x021C48B8 + thumb_func_end MOD82_0222F570 + + thumb_func_start MOD82_0222F59C +MOD82_0222F59C: ; 0x0222F59C + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + add r0, r1, #0 + add r1, r2, #0 + ldr r2, _0222F5EC ; =0x00000B88 + add r4, r3, #0 + ldr r2, [r5, r2] + bl FUN_0200A8E0 + mov r0, #0x36 + lsl r0, r0, #6 + add r0, r5, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x36 + lsl r0, r0, #6 + add r0, r5, r0 + mov r1, #0 + mov r2, #1 + mov r3, #0xa + bl FUN_0200D0BC + mov r3, #0 + str r3, [sp] + str r4, [sp, #4] + mov r0, #0x36 + lsl r0, r0, #6 + ldr r2, _0222F5EC ; =0x00000B88 + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + ldr r1, _0222F5F0 ; =0x00000B9C + str r0, [r5, r1] + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_0222F5EC: .word 0x00000B88 +_0222F5F0: .word 0x00000B9C + thumb_func_end MOD82_0222F59C + + thumb_func_start MOD82_0222F5F4 +MOD82_0222F5F4: ; 0x0222F5F4 + push {r4, lr} + add r4, r0, #0 + cmp r3, #1 + beq _0222F602 + cmp r3, #2 + beq _0222F618 + b _0222F626 +_0222F602: + ldr r0, [sp, #0xc] + mov r2, #0 + bl FUN_02002E14 + ldrb r1, [r4, #7] + lsl r1, r1, #3 + sub r1, r1, r0 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r2, r0, #1 + b _0222F626 +_0222F618: + ldr r0, [sp, #0xc] + mov r2, #0 + bl FUN_02002E14 + ldrb r1, [r4, #7] + lsl r1, r1, #3 + sub r2, r1, r0 +_0222F626: + add r0, r2, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD82_0222F5F4 + + thumb_func_start MOD82_0222F62C +MOD82_0222F62C: ; 0x0222F62C + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r3, #0 + ldr r3, [sp, #0x24] + add r5, r0, #0 + str r3, [sp] + mov r3, #1 + str r3, [sp, #4] + ldr r3, [sp, #0x20] + add r6, r1, #0 + bl MOD82_0222F5F4 + add r3, r0, #0 + str r4, [sp] + mov r1, #0 + ldr r0, [sp, #0x24] + str r1, [sp, #4] + str r0, [sp, #8] + str r1, [sp, #0xc] + add r0, r5, #0 + mov r1, #1 + add r2, r6, #0 + bl FUN_0201BDE0 + add sp, #0x10 + pop {r4, r5, r6, pc} + thumb_func_end MOD82_0222F62C + + thumb_func_start MOD82_0222F660 +MOD82_0222F660: ; 0x0222F660 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r3, #0 + ldr r3, [sp, #0x24] + add r5, r0, #0 + str r3, [sp] + mov r3, #0 + str r3, [sp, #4] + ldr r3, [sp, #0x20] + add r6, r1, #0 + bl MOD82_0222F5F4 + add r3, r0, #0 + str r4, [sp] + mov r1, #0 + ldr r0, [sp, #0x24] + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r2, r6, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD82_0222F660 + + thumb_func_start MOD82_0222F694 +MOD82_0222F694: ; 0x0222F694 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r4, r1, #0 + mov r1, #0xf + add r5, r0, #0 + add r6, r2, #0 + add r7, r3, #0 + bl FUN_02019620 + mov r0, #1 + str r0, [sp] + add r0, r4, #0 + add r1, r6, #0 + add r2, r7, #0 + mov r3, #2 + bl FUN_02021B04 + mov r3, #1 + ldr r0, _0222F6CC ; =0x00010200 + str r3, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r1, r4, #0 + mov r2, #0 + bl MOD82_0222F660 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222F6CC: .word 0x00010200 + thumb_func_end MOD82_0222F694 + + thumb_func_start MOD82_0222F6D0 +MOD82_0222F6D0: ; 0x0222F6D0 + ldr r3, _0222F6D4 ; =FUN_02033E74 + bx r3 + .align 2, 0 +_0222F6D4: .word FUN_02033E74 + thumb_func_end MOD82_0222F6D0 + + thumb_func_start MOD82_0222F6D8 +MOD82_0222F6D8: ; 0x0222F6D8 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r2, #0 + cmp r1, #1 + bhi _0222F6F6 + ldr r0, _0222F6F8 ; =0x00000D78 + add r1, r4, #0 + ldr r0, [r5, r0] + bl FUN_020200A0 + ldr r0, _0222F6FC ; =0x00000D7C + add r1, r4, #0 + ldr r0, [r5, r0] + bl FUN_020200A0 +_0222F6F6: + pop {r3, r4, r5, pc} + .align 2, 0 +_0222F6F8: .word 0x00000D78 +_0222F6FC: .word 0x00000D7C + thumb_func_end MOD82_0222F6D8 + + thumb_func_start MOD82_0222F700 +MOD82_0222F700: ; 0x0222F700 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222F720 ; =0x00000EB4 + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222F71C + mov r0, #0x36 + lsl r0, r0, #6 + add r0, r4, r0 + mov r1, #1 + bl FUN_0200D858 + ldr r1, _0222F720 ; =0x00000EB4 + str r0, [r4, r1] +_0222F71C: + pop {r4, pc} + nop +_0222F720: .word 0x00000EB4 + thumb_func_end MOD82_0222F700 + + thumb_func_start MOD82_0222F724 +MOD82_0222F724: ; 0x0222F724 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222F73C ; =0x00000EB4 + ldr r0, [r4, r0] + cmp r0, #0 + beq _0222F73A + bl FUN_0200DBFC + ldr r0, _0222F73C ; =0x00000EB4 + mov r1, #0 + str r1, [r4, r0] +_0222F73A: + pop {r4, pc} + .align 2, 0 +_0222F73C: .word 0x00000EB4 + thumb_func_end MOD82_0222F724 + + thumb_func_start MOD82_0222F740 +MOD82_0222F740: ; 0x0222F740 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #1 + add r6, r1, #0 + lsl r0, r0, #8 + mov r1, #0x44 + bl FUN_020219F4 + add r4, r0, #0 + ldr r0, _0222F7B0 ; =0x00000B84 + add r1, r6, #0 + ldr r0, [r5, r0] + add r2, r4, #0 + bl FUN_0200A8E0 + ldr r1, _0222F7B4 ; =0x00000B78 + add r2, r4, #0 + ldr r0, [r5, r1] + add r1, #0x20 + ldr r1, [r5, r1] + bl FUN_0200B7B8 + mov r0, #0x37 + lsl r0, r0, #6 + add r0, r5, r0 + mov r1, #0xf + bl FUN_02019620 + mov r0, #0x37 + lsl r0, r0, #6 + add r0, r5, r0 + mov r1, #1 + mov r2, #0x1f + mov r3, #0xb + bl FUN_0200CCA4 + mov r3, #0 + str r3, [sp] + str r3, [sp, #4] + mov r0, #0x37 + lsl r0, r0, #6 + ldr r2, _0222F7B8 ; =0x00000B98 + str r3, [sp, #8] + ldr r2, [r5, r2] + add r0, r5, r0 + mov r1, #1 + bl FUN_0201BD84 + ldr r1, _0222F7BC ; =0x00000B9C + str r0, [r5, r1] + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222F7B0: .word 0x00000B84 +_0222F7B4: .word 0x00000B78 +_0222F7B8: .word 0x00000B98 +_0222F7BC: .word 0x00000B9C + thumb_func_end MOD82_0222F740 + + thumb_func_start MOD82_0222F7C0 +MOD82_0222F7C0: ; 0x0222F7C0 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0 + add r4, r1, #0 + mvn r0, r0 + cmp r4, r0 + bne _0222F7D2 + mov r4, #0xb +_0222F7D2: + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _0222F800 ; =0x00000B78 + mov r1, #0 + ldr r0, [r5, r0] + mov r3, #5 + bl FUN_0200AD38 + mov r0, #0x36 + lsl r0, r0, #6 + add r0, r5, r0 + mov r1, #1 + bl FUN_0200D0E0 + add r0, r5, #0 + add r1, r4, #0 + bl MOD82_0222F740 + add sp, #8 + pop {r3, r4, r5, pc} + nop +_0222F800: .word 0x00000B78 + thumb_func_end MOD82_0222F7C0 + + .section .rodata + ; 0x0222F804 + .incbin "baserom.nds", 0x2F1244, 0xC8 + + .section .data + ; 0x0222F8E0 + .incbin "baserom.nds", 0x2F1320, 0x220 + + .section .bss + ; 0x0222FB00 + .space 0x120 diff --git a/arm9/modules/83/asm/module_83.s b/arm9/modules/83/asm/module_83.s new file mode 100644 index 00000000..3bc1abb1 --- /dev/null +++ b/arm9/modules/83/asm/module_83.s @@ -0,0 +1,26448 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD83_0222D5C0 +MOD83_0222D5C0: ; 0x0222D5C0 + mov r0, #0 + bx lr + thumb_func_end MOD83_0222D5C0 + + thumb_func_start MOD83_0222D5C4 +MOD83_0222D5C4: ; 0x0222D5C4 + push {r4, r5, r6, r7, lr} + sub sp, #0x5c + add r5, r0, #0 + mov r0, #5 + lsl r0, r0, #6 + add r0, r5, r0 + bl FUN_02019048 + cmp r0, #0 + bne _0222D63C + mov r1, #0x4f + mov r0, #0 + add r3, r5, #0 + lsl r1, r1, #2 +_0222D5E0: + ldr r2, [r3, r1] + cmp r2, #1 + bne _0222D632 + lsl r1, r0, #2 + add r3, r5, r1 + mov r1, #0x4f + add r6, r0, #0 + mov r2, #0 + lsl r1, r1, #2 + str r2, [r3, r1] + mov r3, #0x1c + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + add r1, r1, #4 + ldr r7, _0222D670 ; =0x0223A794 + mul r6, r3 + add r4, r7, r6 + ldr r3, [r4, #0x10] + add r0, sp, #8 + add r1, r5, r1 + bl MOD83_022388E4 + ldr r1, [r4, #8] + ldr r2, [r4, #0xc] + add r0, sp, #8 + mov r3, #0x13 + bl MOD83_02238934 + ldr r0, [r4, #0x14] + add r1, sp, #8 + str r0, [sp] + ldr r0, [r5] + ldr r2, [r7, r6] + ldr r3, [r4, #4] + bl MOD83_02238A38 + add sp, #0x5c + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_0222D632: + add r0, r0, #1 + add r3, r3, #4 + cmp r0, #1 + blt _0222D5E0 + b _0222D668 +_0222D63C: + ldr r0, _0222D674 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _0222D662 + ldr r0, _0222D678 ; =0x000005DC + bl FUN_020054C8 + mov r0, #5 + lsl r0, r0, #6 + add r0, r5, r0 + mov r1, #0 + bl FUN_0200CCF8 + mov r0, #5 + lsl r0, r0, #6 + add r0, r5, r0 + bl FUN_02019178 +_0222D662: + add sp, #0x5c + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_0222D668: + mov r0, #0 + add sp, #0x5c + pop {r4, r5, r6, r7, pc} + nop +_0222D670: .word 0x0223A794 +_0222D674: .word 0x021C48B8 +_0222D678: .word 0x000005DC + thumb_func_end MOD83_0222D5C4 + + thumb_func_start MOD83_0222D67C +MOD83_0222D67C: ; 0x0222D67C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0 + bl MOD83_02236E18 + mov r4, #0 + str r4, [r5, #0x24] + cmp r0, #0 + bne _0222D6E6 + bl MOD83_02236E9C + cmp r0, #4 + bhi _0222D6BE + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222D6A2: ; jump table + .short _0222D6AC - _0222D6A2 - 2 ; case 0 + .short _0222D6B0 - _0222D6A2 - 2 ; case 1 + .short _0222D6B4 - _0222D6A2 - 2 ; case 2 + .short _0222D6B8 - _0222D6A2 - 2 ; case 3 + .short _0222D6BC - _0222D6A2 - 2 ; case 4 +_0222D6AC: + mov r4, #2 + b _0222D6BE +_0222D6B0: + mov r4, #1 + b _0222D6BE +_0222D6B4: + mov r4, #5 + b _0222D6BE +_0222D6B8: + mov r4, #4 + b _0222D6BE +_0222D6BC: + mov r4, #3 +_0222D6BE: + add r0, r4, #0 + bl FUN_02016438 + ldr r0, [r5, #8] + bl FUN_02024CA4 + cmp r0, #0 + beq _0222D6E6 + bl MOD83_02236EA8 + ldr r1, _0222D6E8 ; =0x020ECAC4 + ldrb r1, [r1] + cmp r1, r0 + bne _0222D6E6 + bl MOD83_02236E9C + add r0, r0, #1 + str r0, [r5, #0x24] + bl MOD83_02239490 +_0222D6E6: + pop {r3, r4, r5, pc} + .align 2, 0 +_0222D6E8: .word 0x020ECAC4 + thumb_func_end MOD83_0222D67C + + thumb_func_start MOD83_0222D6EC +MOD83_0222D6EC: ; 0x0222D6EC + push {r4, lr} + mov r1, #0x43 + add r4, r0, #0 + lsl r1, r1, #2 + ldr r0, [r4, r1] + sub r0, #0xa + cmp r0, #4 + bhi _0222D7DC + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222D708: ; jump table + .short _0222D712 - _0222D708 - 2 ; case 0 + .short _0222D718 - _0222D708 - 2 ; case 1 + .short _0222D7DC - _0222D708 - 2 ; case 2 + .short _0222D74C - _0222D708 - 2 ; case 3 + .short _0222D7D0 - _0222D708 - 2 ; case 4 +_0222D712: + mov r0, #0xb + str r0, [r4, r1] + pop {r4, pc} +_0222D718: + ldr r0, [r4, #4] + bl FUN_02032D44 + mov r1, #0x78 + add r0, r1, #0 + add r0, #0x98 + str r1, [r4, r0] + mov r1, #0xd + add r0, r1, #0 + add r0, #0xff + str r1, [r4, r0] + mov r0, #0 + str r0, [r4, #0x40] + ldr r0, [r4, #0x14] + bl FUN_0202AF50 + cmp r0, #1 + bne _0222D7DC + ldr r1, [r4, #0x40] + mov r0, #1 + orr r1, r0 + str r1, [r4, #0x40] + ldr r1, [r4, #0x44] + orr r0, r1 + str r0, [r4, #0x44] + pop {r4, pc} +_0222D74C: + add r1, #0xc + ldr r0, [r4, r1] + cmp r0, #0 + bne _0222D7DC + bl FUN_02032D9C + ldr r1, [r4, #0x40] + bic r0, r1 + beq _0222D7B2 + mov r2, #0x45 + lsl r2, r2, #2 + ldr r3, [r4, r2] + cmp r3, #0xf + bne _0222D7B2 + add r2, r2, #4 + ldr r2, [r4, r2] + cmp r2, #0 + bne _0222D7B2 + cmp r1, r0 + beq _0222D7B2 + mov r2, #1 + add r1, r0, #0 + str r2, [r4, #0x48] + tst r1, r2 + beq _0222D782 + str r2, [r4, #0x34] + add r0, r2, #0 +_0222D782: + mov r1, #2 + add r2, r0, #0 + tst r2, r1 + beq _0222D790 + mov r0, #1 + str r0, [r4, #0x2c] + add r0, r1, #0 +_0222D790: + mov r1, #4 + add r2, r0, #0 + tst r2, r1 + beq _0222D79E + mov r0, #1 + str r0, [r4, #0x30] + add r0, r1, #0 +_0222D79E: + mov r1, #3 + tst r1, r0 + beq _0222D7AC + mov r1, #0x4e + mov r2, #1 + lsl r1, r1, #2 + str r2, [r4, r1] +_0222D7AC: + ldr r1, [r4, #0x40] + orr r0, r1 + str r0, [r4, #0x40] +_0222D7B2: + mov r0, #0x11 + lsl r0, r0, #4 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222D7DC + bl FUN_02032D80 + mov r0, #0x43 + mov r1, #0xc + lsl r0, r0, #2 + str r1, [r4, r0] + pop {r4, pc} +_0222D7D0: + bl FUN_02032D80 + mov r0, #0x43 + mov r1, #0xc + lsl r0, r0, #2 + str r1, [r4, r0] +_0222D7DC: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_0222D6EC + + thumb_func_start MOD83_0222D7E0 +MOD83_0222D7E0: ; 0x0222D7E0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x60 + mov r1, #0x45 + add r4, r0, #0 + lsl r1, r1, #2 + ldr r0, [r4, r1] + sub r0, #0xf + cmp r0, #4 + bls _0222D7F4 + b _0222D994 +_0222D7F4: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222D800: ; jump table + .short _0222D80A - _0222D800 - 2 ; case 0 + .short _0222D832 - _0222D800 - 2 ; case 1 + .short _0222D85E - _0222D800 - 2 ; case 2 + .short _0222D932 - _0222D800 - 2 ; case 3 + .short _0222D974 - _0222D800 - 2 ; case 4 +_0222D80A: + add r0, r1, #4 + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222D818 + add sp, #0x60 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0222D818: + add r0, r1, #4 + ldr r0, [r4, r0] + sub r2, r0, #1 + add r0, r1, #4 + str r2, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222D82C + mov r0, #0x10 + str r0, [r4, r1] +_0222D82C: + add sp, #0x60 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0222D832: + mov r0, #0 + str r0, [sp] + mov r0, #0x51 + str r0, [sp, #4] + mov r1, #1 + ldr r0, [r4] + add r2, r1, #0 + mov r3, #2 + bl FUN_0200CB00 + ldr r0, [r4] + mov r1, #1 + bl FUN_02018744 + ldr r1, _0222D99C ; =0x00006B5A + ldr r0, _0222D9A0 ; =0x05000042 + strh r1, [r0] + mov r0, #0x45 + mov r1, #0x11 + lsl r0, r0, #2 + str r1, [r4, r0] + b _0222D994 +_0222D85E: + mov r0, #1 + str r0, [sp] + mov r0, #2 + add r1, #0x10 + str r0, [sp, #4] + add r0, sp, #0xc + add r1, r4, r1 + mov r2, #0 + mov r3, #0xc + bl MOD83_022388E4 + ldr r0, [r4, #0x44] + ldr r1, [r4, #0x40] + mvn r0, r0 + and r0, r1 + mov r1, #1 + add r2, r0, #0 + tst r2, r1 + beq _0222D892 + ldr r2, [r4, #0x38] + tst r1, r2 + beq _0222D88E + ldr r5, _0222D9A4 ; =0x0223A7F0 + b _0222D8B2 +_0222D88E: + ldr r5, _0222D9A8 ; =0x0223A804 + b _0222D8B2 +_0222D892: + mov r1, #2 + add r2, r0, #0 + tst r2, r1 + beq _0222D8A8 + ldr r2, [r4, #0x38] + tst r1, r2 + beq _0222D8A4 + ldr r5, _0222D9AC ; =0x0223A818 + b _0222D8B2 +_0222D8A4: + ldr r5, _0222D9B0 ; =0x0223A82C + b _0222D8B2 +_0222D8A8: + mov r1, #0x80 + tst r1, r0 + beq _0222D8B2 + ldr r5, _0222D9B4 ; =0x0223A840 + mov r0, #0 +_0222D8B2: + ldr r1, [r4, #0x44] + mov r3, #0x13 + orr r0, r1 + str r0, [r4, #0x44] + ldr r1, [r5, #8] + ldr r2, [r5, #0xc] + add r0, sp, #0xc + bl MOD83_02238934 + mov r0, #1 + str r0, [sp, #0x38] + ldr r0, [r5, #0x10] + add r1, sp, #0xc + str r0, [sp] + ldr r0, [r4] + ldr r2, [r5] + ldr r3, [r5, #4] + bl MOD83_02238A38 + ldr r0, [sp, #0x1c] + bl FUN_0201AB14 + add r6, r0, #0 + ldr r0, [sp, #0x1c] + bl FUN_0201AB18 + add r7, r0, #0 + ldr r0, [sp, #0x1c] + bl FUN_0201AB0C + add r5, r0, #0 + ldr r0, [sp, #0x1c] + bl FUN_0201AB10 + str r5, [sp] + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + ldr r0, [r4] + mov r1, #1 + add r2, r6, #0 + add r3, r7, #0 + bl FUN_020186B4 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #1 + bl FUN_0201E6E4 + mov r1, #0x1e + add r0, r1, #0 + add r0, #0xfe + str r1, [r4, r0] + mov r0, #0x12 + add r1, #0xf6 + str r0, [r4, r1] + b _0222D994 +_0222D932: + add r0, r1, #0 + add r0, #8 + ldr r0, [r4, r0] + cmp r0, #0 + beq _0222D94A + add r0, r1, #0 + add r0, #8 + ldr r0, [r4, r0] + add r1, #8 + sub r0, r0, #1 + str r0, [r4, r1] + b _0222D994 +_0222D94A: + ldr r0, _0222D9B8 ; =0x021C48B8 + ldr r2, [r0, #0x48] + mov r0, #3 + tst r0, r2 + beq _0222D994 + add r1, #0x10 + add r0, r4, r1 + bl FUN_02019178 + mov r0, #0x45 + mov r1, #0x13 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r1, _0222D9B8 ; =0x021C48B8 + add r0, #0xc + ldr r1, [r1, #0x48] + str r1, [r4, r0] + ldr r0, _0222D9BC ; =0x000005DC + bl FUN_020054C8 + b _0222D994 +_0222D974: + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #0x45 + mov r1, #0xf + lsl r0, r0, #2 + str r1, [r4, r0] +_0222D994: + mov r0, #1 + add sp, #0x60 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222D99C: .word 0x00006B5A +_0222D9A0: .word 0x05000042 +_0222D9A4: .word 0x0223A7F0 +_0222D9A8: .word 0x0223A804 +_0222D9AC: .word 0x0223A818 +_0222D9B0: .word 0x0223A82C +_0222D9B4: .word 0x0223A840 +_0222D9B8: .word 0x021C48B8 +_0222D9BC: .word 0x000005DC + thumb_func_end MOD83_0222D7E0 + + thumb_func_start MOD83_0222D9C0 +MOD83_0222D9C0: ; 0x0222D9C0 + push {r3, r4, r5, lr} + add r4, r0, #0 + mov r0, #0x42 + lsl r0, r0, #2 + ldr r1, [r4, r0] + sub r0, r0, #4 + ldr r0, [r4, r0] + cmp r0, r1 + beq _0222DA48 + sub r1, r1, r0 + asr r0, r1, #1 + lsr r0, r0, #0x1e + add r0, r1, r0 + asr r0, r0, #2 + asr r2, r0, #0x1f + add r1, r0, #0 + eor r1, r2 + sub r2, r1, r2 + mov r1, #3 + lsl r1, r1, #0xe + cmp r2, r1 + ble _0222D9F6 + cmp r0, #0 + ble _0222D9F4 + add r0, r1, #0 + b _0222D9F6 +_0222D9F4: + ldr r0, _0222DA4C ; =0xFFFF4000 +_0222D9F6: + mov r1, #0x41 + lsl r1, r1, #2 + ldr r2, [r4, r1] + add r0, r2, r0 + str r0, [r4, r1] + add r0, r1, #4 + ldr r0, [r4, r0] + ldr r2, [r4, r1] + sub r2, r0, r2 + asr r3, r2, #0x1f + eor r2, r3 + sub r3, r2, r3 + add r2, r1, #0 + add r2, #0xfc + cmp r3, r2 + bge _0222DA18 + str r0, [r4, r1] +_0222DA18: + mov r3, #0x41 + lsl r3, r3, #2 + ldr r5, [r4, r3] + ldr r0, [r4] + asr r3, r5, #0xb + lsr r3, r3, #0x14 + add r3, r5, r3 + mov r1, #0 + mov r2, #3 + asr r3, r3, #0xc + bl FUN_0201AEE4 + mov r3, #0x41 + lsl r3, r3, #2 + ldr r0, [r4] + ldr r4, [r4, r3] + mov r1, #2 + asr r3, r4, #0xb + lsr r3, r3, #0x14 + add r3, r4, r3 + mov r2, #3 + asr r3, r3, #0xc + bl FUN_0201AEE4 +_0222DA48: + pop {r3, r4, r5, pc} + nop +_0222DA4C: .word 0xFFFF4000 + thumb_func_end MOD83_0222D9C0 + + thumb_func_start MOD83_0222DA50 +MOD83_0222DA50: ; 0x0222DA50 + push {r3, r4, r5, lr} + sub sp, #0x40 + ldr r5, _0222DB4C ; =0x0223A380 + add r4, r0, #0 + add r3, sp, #0x18 + mov r2, #5 +_0222DA5C: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _0222DA5C + ldr r3, _0222DB50 ; =0x0223A370 + add r2, sp, #8 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r0, sp, #0x18 + bl FUN_0201E66C + add r0, sp, #8 + bl FUN_02016BBC + mov r1, #0 + str r1, [sp] + mov r3, #0xf + ldr r0, [r4] + mov r2, #2 + lsl r3, r3, #0xc + bl MOD83_022387D8 + ldr r1, _0222DB54 ; =0x04000008 + mov r0, #3 + ldrh r2, [r1] + mov r3, #0x51 + bic r2, r0 + mov r0, #2 + orr r0, r2 + strh r0, [r1] + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + bl FUN_02017F18 + mov r0, #2 + lsl r0, r0, #0xe + str r0, [sp] + mov r1, #1 + mov r3, #0x36 + ldr r0, [r4] + add r2, r1, #0 + lsl r3, r3, #0xa + bl MOD83_022387D8 + ldr r1, _0222DB58 ; =0x0400000A + mov r0, #3 + ldrh r2, [r1] + mov r3, #0x51 + bic r2, r0 + mov r0, #1 + orr r2, r0 + strh r2, [r1] + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + mov r0, #0 + str r0, [sp] + mov r1, #2 + mov r3, #0xe + ldr r0, [r4] + add r2, r1, #0 + lsl r3, r3, #0xc + bl MOD83_022387D8 + ldr r1, _0222DB5C ; =0x0400000C + mov r0, #3 + ldrh r2, [r1] + mov r3, #0x51 + bic r2, r0 + strh r2, [r1] + mov r0, #2 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + bl FUN_0201BD5C + mov r0, #0 + mov r1, #0x20 + mov r2, #0x51 + bl FUN_02002ED0 + mov r0, #0 + add r1, r0, #0 + mov r2, #0x51 + bl FUN_02002ED0 + mov r2, #5 + mov r1, #0 + lsl r2, r2, #0x18 + ldr r0, _0222DB60 ; =0x00006B5A + strh r1, [r2] + strh r0, [r2, #0x3e] + str r1, [sp] + mov r0, #0x51 + str r0, [sp, #4] + ldr r0, [r4] + mov r2, #1 + mov r3, #2 + bl FUN_0200CB00 + mov r0, #1 + str r0, [sp] + mov r0, #0x51 + str r0, [sp, #4] + ldr r0, [r4] + mov r1, #0 + mov r2, #0xa + mov r3, #3 + bl FUN_0200CB00 + ldr r1, _0222DB60 ; =0x00006B5A + ldr r0, _0222DB64 ; =0x05000042 + strh r1, [r0] + add sp, #0x40 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222DB4C: .word 0x0223A380 +_0222DB50: .word 0x0223A370 +_0222DB54: .word 0x04000008 +_0222DB58: .word 0x0400000A +_0222DB5C: .word 0x0400000C +_0222DB60: .word 0x00006B5A +_0222DB64: .word 0x05000042 + thumb_func_end MOD83_0222DA50 + + thumb_func_start MOD83_0222DB68 +MOD83_0222DB68: ; 0x0222DB68 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + bl MOD83_02238AFC + bl MOD83_02238B4C + mov r0, #0x25 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0x27 + mov r2, #0x24 + mov r3, #0x26 + bl MOD83_02238BC4 + mov r0, #0 + mov r1, #0x15 + str r0, [sp] + lsl r1, r1, #4 + ldr r1, [r4, r1] + mov r2, #0x80 + mov r3, #8 + bl MOD83_02238DBC + mov r1, #0x15 + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0 + bl FUN_020200A0 + mov r0, #1 + mov r1, #0x55 + str r0, [sp] + lsl r1, r1, #2 + ldr r1, [r4, r1] + mov r0, #0 + mov r2, #0x80 + mov r3, #0xb8 + bl MOD83_02238DBC + mov r1, #0x55 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #0 + bl FUN_020200A0 + add sp, #8 + pop {r4, pc} + thumb_func_end MOD83_0222DB68 + + thumb_func_start MOD83_0222DBD0 +MOD83_0222DBD0: ; 0x0222DBD0 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x51 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0x29 + mov r2, #0 + mov r3, #0x80 + bl FUN_02006930 + mov r0, #0xe + lsl r0, r0, #6 + str r0, [sp] + mov r0, #2 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r0, #0x51 + str r0, [sp, #0xc] + ldr r2, [r4] + mov r0, #0x74 + mov r1, #0x28 + mov r3, #2 + bl FUN_0200687C + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_0222DBD0 + + thumb_func_start MOD83_0222DC10 +MOD83_0222DC10: ; 0x0222DC10 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5] + add r4, r1, #0 + mov r1, #2 + add r6, r2, #0 + add r7, r3, #0 + bl FUN_0201886C + ldr r1, _0222DC5C ; =0x00004380 + cmp r7, #2 + bne _0222DC2A + add r1, r1, #2 +_0222DC2A: + lsl r2, r6, #5 + add r3, r4, r2 + lsl r2, r3, #1 + add r3, r3, #1 + strh r1, [r0, r2] + add r2, r1, #1 + lsl r3, r3, #1 + strh r2, [r0, r3] + add r3, r1, #0 + add r2, r6, #1 + lsl r2, r2, #5 + add r4, r4, r2 + add r3, #8 + lsl r2, r4, #1 + strh r3, [r0, r2] + add r2, r4, #1 + add r1, #9 + lsl r2, r2, #1 + strh r1, [r0, r2] + ldr r0, [r5] + mov r1, #2 + bl FUN_02017CD0 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222DC5C: .word 0x00004380 + thumb_func_end MOD83_0222DC10 + + thumb_func_start MOD83_0222DC60 +MOD83_0222DC60: ; 0x0222DC60 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5] + add r4, r1, #0 + add r6, r2, #0 + mov r1, #2 + bl FUN_0201886C + lsl r1, r6, #5 + add r3, r4, r1 + ldr r1, _0222DC9C ; =0x00004384 + lsl r2, r3, #1 + strh r1, [r0, r2] + add r2, r3, #1 + lsl r2, r2, #1 + strh r1, [r0, r2] + add r2, r6, #1 + lsl r2, r2, #5 + add r3, r4, r2 + lsl r2, r3, #1 + strh r1, [r0, r2] + add r2, r3, #1 + lsl r2, r2, #1 + strh r1, [r0, r2] + ldr r0, [r5] + mov r1, #2 + bl FUN_02017CD0 + pop {r4, r5, r6, pc} + nop +_0222DC9C: .word 0x00004384 + thumb_func_end MOD83_0222DC60 + + thumb_func_start MOD83_0222DCA0 +MOD83_0222DCA0: ; 0x0222DCA0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r6, r0, #0 + add r0, r2, #0 + add r7, r3, #0 + ldr r2, [sp, #0x28] + mov r3, #0x51 + bl FUN_0200A9C4 + add r5, r0, #0 + mov r0, #0 + mov r1, #2 + bl FUN_02002E4C + add r2, r0, #0 + mov r0, #0 + add r1, r5, #0 + bl FUN_02002E14 + add r4, r0, #0 + add r0, r6, #0 + bl FUN_0201AB0C + lsl r0, r0, #3 + add r4, #0x20 + sub r3, r0, r4 + ldr r0, [sp, #0x2c] + mov r1, #0 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r7, [sp, #8] + add r0, r6, #0 + add r2, r5, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r5, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD83_0222DCA0 + + thumb_func_start MOD83_0222DCF4 +MOD83_0222DCF4: ; 0x0222DCF4 + push {r3, lr} + sub sp, #8 + add r2, r1, #0 + cmp r2, #0x64 + blt _0222DD04 + mov r3, #3 + mov r1, #0 + b _0222DD12 +_0222DD04: + cmp r2, #0xa + blt _0222DD0E + mov r3, #3 + mov r1, #1 + b _0222DD12 +_0222DD0E: + mov r3, #2 + mov r1, #1 +_0222DD12: + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r1, #0 + bl FUN_0200AD38 + add sp, #8 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_0222DCF4 + + thumb_func_start MOD83_0222DD24 +MOD83_0222DD24: ; 0x0222DD24 + push {r4, r5, r6, r7, lr} + sub sp, #0x2c + str r2, [sp, #0x18] + str r0, [sp, #0x10] + str r1, [sp, #0x14] + add r4, r3, #0 + ldr r2, _0222DEB4 ; =0x000001EE + mov r0, #1 + mov r1, #0x1a + mov r3, #0x51 + bl FUN_0200A86C + str r0, [sp, #0x24] + mov r0, #0x51 + bl FUN_0200AA80 + str r0, [sp, #0x28] + ldr r0, [sp, #0x10] + ldr r0, [r0, #0xc] + bl FUN_020239CC + cmp r0, #1 + bne _0222DD58 + ldr r0, _0222DEB8 ; =0x0003040F + str r0, [sp, #0x1c] + b _0222DD5C +_0222DD58: + ldr r0, _0222DEBC ; =0x0007080F + str r0, [sp, #0x1c] +_0222DD5C: + ldr r0, [sp, #0x14] + ldr r1, _0222DEC0 ; =0x0223A85C + lsl r0, r0, #4 + str r0, [sp, #0x20] + ldr r0, [r1, r0] + ldr r1, [sp, #0x18] + str r0, [sp] + ldr r0, [sp, #0x10] + mov r2, #3 + ldr r0, [r0] + add r3, r4, #0 + bl MOD83_02238A38 + ldr r4, _0222DEC4 ; =0x0223A784 + mov r6, #1 + mov r5, #0x10 +_0222DD7C: + cmp r6, #4 + bne _0222DD88 + ldr r0, [sp, #0x10] + ldr r0, [r0, #0x4c] + cmp r0, #0 + beq _0222DDB8 +_0222DD88: + ldr r0, [sp, #0x28] + ldr r1, [sp, #0x24] + ldr r2, [r4] + mov r3, #0x51 + bl FUN_0200A9C4 + add r7, r0, #0 + str r5, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, [sp, #0x1c] + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x18] + add r2, r7, #0 + ldr r0, [r0, #0x10] + mov r3, #0x20 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 +_0222DDB8: + add r6, r6, #1 + add r4, r4, #4 + add r5, #0x10 + cmp r6, #5 + blo _0222DD7C + ldr r2, [sp, #0x10] + ldr r0, [sp, #0x28] + ldr r2, [r2, #0xc] + mov r1, #0 + bl FUN_0200ABC0 + mov r0, #0x10 + str r0, [sp] + str r0, [sp, #4] + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x24] + ldr r0, [r0, #0x10] + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x1c] + bl MOD83_0222DCA0 + ldr r0, [sp, #0x10] + ldr r0, [r0, #0x10] + bl FUN_02029EBC + add r1, r0, #0 + ldr r0, [sp, #0x28] + bl MOD83_0222DCF4 + ldr r0, [sp, #0x10] + ldr r0, [r0, #0x10] + bl FUN_02029EC0 + add r2, r0, #0 + mov r3, #2 + ldr r0, [sp, #0x28] + str r3, [sp] + mov r1, #1 + str r1, [sp, #4] + bl FUN_0200AD38 + mov r0, #0x11 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x24] + ldr r0, [r0, #0x10] + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x1c] + bl MOD83_0222DCA0 + mov r1, #0 + str r1, [sp] + mov r3, #1 + ldr r2, [sp, #0x10] + str r3, [sp, #4] + ldr r0, [sp, #0x28] + ldr r2, [r2, #0x50] + bl FUN_0200AD38 + mov r0, #0x13 + str r0, [sp] + mov r0, #0x30 + str r0, [sp, #4] + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x24] + ldr r0, [r0, #0x10] + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x1c] + bl MOD83_0222DCA0 + ldr r0, [sp, #0x10] + ldr r0, [r0, #0x4c] + cmp r0, #0 + beq _0222DE76 + ldr r0, [sp, #0x10] + ldr r0, [r0, #8] + bl FUN_02024440 + add r1, r0, #0 + ldr r0, [sp, #0x28] + bl MOD83_0222DCF4 + mov r0, #0x12 + str r0, [sp] + mov r0, #0x40 + str r0, [sp, #4] + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x24] + ldr r0, [r0, #0x10] + ldr r2, [sp, #0x28] + ldr r3, [sp, #0x1c] + bl MOD83_0222DCA0 +_0222DE76: + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x18] + ldr r0, [sp, #0x18] + ldr r2, [r2, #0x38] + ldr r3, [r3, #0x3c] + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [r0, #0x10] + mov r1, #0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_0200CCA4 + ldr r1, _0222DEC8 ; =0x0223A854 + ldr r0, [sp, #0x20] + ldr r2, [r1, r0] + ldr r0, [sp, #0x14] + lsl r1, r0, #2 + ldr r0, [sp, #0x10] + add r0, r0, r1 + add r0, #0xcc + str r2, [r0] + ldr r0, [sp, #0x28] + bl FUN_0200AB18 + ldr r0, [sp, #0x24] + bl FUN_0200A8B8 + mov r0, #1 + add sp, #0x2c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0222DEB4: .word 0x000001EE +_0222DEB8: .word 0x0003040F +_0222DEBC: .word 0x0007080F +_0222DEC0: .word 0x0223A85C +_0222DEC4: .word 0x0223A784 +_0222DEC8: .word 0x0223A854 + thumb_func_end MOD83_0222DD24 + + thumb_func_start MOD83_0222DECC +MOD83_0222DECC: ; 0x0222DECC + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r4, r0, #0 + add r5, r1, #0 + add r1, r2, #0 + ldr r2, [r4, #0x24] + add r6, r3, #0 + cmp r2, #0 + bne _0222DEE4 + add sp, #4 + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_0222DEE4: + sub r2, r2, #1 + cmp r2, #4 + bhi _0222DF12 + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_0222DEF6: ; jump table + .short _0222DF00 - _0222DEF6 - 2 ; case 0 + .short _0222DF04 - _0222DEF6 - 2 ; case 1 + .short _0222DF08 - _0222DEF6 - 2 ; case 2 + .short _0222DF0C - _0222DEF6 - 2 ; case 3 + .short _0222DF10 - _0222DEF6 - 2 ; case 4 +_0222DF00: + mov r0, #4 + b _0222DF12 +_0222DF04: + mov r0, #5 + b _0222DF12 +_0222DF08: + mov r0, #6 + b _0222DF12 +_0222DF0C: + mov r0, #7 + b _0222DF12 +_0222DF10: + mov r0, #8 +_0222DF12: + str r0, [sp] + ldr r0, [r4] + mov r2, #3 + add r3, r6, #0 + bl MOD83_02238A38 + add r0, r4, #0 + mov r1, #0x1a + add r2, r6, #0 + bl MOD83_0222DC60 + ldr r0, _0222DF3C ; =0x0223A854 + lsl r1, r5, #4 + ldr r1, [r0, r1] + lsl r0, r5, #2 + add r0, r4, r0 + add r0, #0xcc + str r1, [r0] + mov r0, #1 + add sp, #4 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222DF3C: .word 0x0223A854 + thumb_func_end MOD83_0222DECC + + thumb_func_start MOD83_0222DF40 +MOD83_0222DF40: ; 0x0222DF40 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, [r5, #0x34] + add r4, r1, #0 + add r7, r3, #0 + str r2, [sp, #4] + cmp r0, #0 + bne _0222DF88 + ldr r0, [r5, #0x14] + bl FUN_0202AF50 + cmp r0, #1 + bne _0222DF60 + mov r0, #1 + str r0, [r5, #0x34] +_0222DF60: + ldr r0, [r5, #4] + bl FUN_02023788 + bl FUN_02023820 + cmp r0, #1 + bne _0222DF72 + mov r0, #1 + str r0, [r5, #0x34] +_0222DF72: + mov r0, #0x51 + bl MOD83_022385FC + bl MOD83_02238700 + cmp r0, #0 + beq _0222DF88 + mov r0, #1 + str r0, [r5, #0x34] + bl MOD83_02239450 +_0222DF88: + ldr r0, [r5, #0x34] + cmp r0, #1 + bne _0222DF98 + ldr r0, [r5, #0x4c] + cmp r0, #0 + bne _0222DF98 + mov r0, #0 + str r0, [r5, #0x34] +_0222DF98: + ldr r0, [r5, #0x34] + cmp r0, #1 + bne _0222DFDC + ldr r0, _0222DFE4 ; =0x0223A85C + lsl r6, r4, #4 + ldr r0, [r0, r6] + ldr r1, [sp, #4] + str r0, [sp] + ldr r0, [r5] + mov r2, #3 + add r3, r7, #0 + bl MOD83_02238A38 + add r0, r5, #0 + mov r1, #0x1a + add r2, r7, #0 + bl MOD83_0222DC60 + ldr r0, _0222DFE8 ; =0x0223A854 + ldr r1, [r0, r6] + lsl r0, r4, #2 + add r0, r5, r0 + add r0, #0xcc + str r1, [r0] + ldr r1, [r5, #0x38] + mov r0, #1 + orr r0, r1 + str r0, [r5, #0x38] + ldr r0, [r5, #0x14] + bl FUN_0202AF60 + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0222DFDC: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222DFE4: .word 0x0223A85C +_0222DFE8: .word 0x0223A854 + thumb_func_end MOD83_0222DF40 + + thumb_func_start MOD83_0222DFEC +MOD83_0222DFEC: ; 0x0222DFEC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r0, [r5, #0x2c] + add r4, r1, #0 + add r7, r3, #0 + cmp r0, #1 + bne _0222E03C + ldr r0, [r5, #0x4c] + cmp r0, #1 + bne _0222E03C + ldr r0, _0222E040 ; =0x0223A85C + lsl r6, r4, #4 + ldr r0, [r0, r6] + add r1, r2, #0 + str r0, [sp] + ldr r0, [r5] + mov r2, #3 + bl MOD83_02238A38 + add r0, r5, #0 + mov r1, #0x1a + add r2, r7, #0 + mov r3, #1 + bl MOD83_0222DC10 + lsl r3, r4, #2 + add r1, r5, r3 + mov r0, #1 + add r1, #0xe8 + str r0, [r1] + ldr r1, _0222E044 ; =0x0223A854 + ldr r2, [r1, r6] + add r1, r5, r3 + add r1, #0xcc + str r2, [r1] + ldr r2, [r5, #0x38] + mov r1, #2 + orr r1, r2 + str r1, [r5, #0x38] + pop {r3, r4, r5, r6, r7, pc} +_0222E03C: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222E040: .word 0x0223A85C +_0222E044: .word 0x0223A854 + thumb_func_end MOD83_0222DFEC + + thumb_func_start MOD83_0222E048 +MOD83_0222E048: ; 0x0222E048 + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + add r5, r1, #0 + add r7, r3, #0 + cmp r0, #1 + bne _0222E08A + ldr r0, _0222E090 ; =0x0223A85C + lsl r6, r5, #4 + ldr r0, [r0, r6] + add r1, r2, #0 + str r0, [sp] + ldr r0, [r4] + mov r2, #3 + bl MOD83_02238A38 + lsl r5, r5, #2 + add r0, r4, r5 + mov r3, #1 + add r0, #0xe8 + str r3, [r0] + add r0, r4, #0 + mov r1, #0x1a + add r2, r7, #0 + bl MOD83_0222DC10 + ldr r0, _0222E094 ; =0x0223A854 + ldr r1, [r0, r6] + add r0, r4, r5 + add r0, #0xcc + str r1, [r0] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0222E08A: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222E090: .word 0x0223A85C +_0222E094: .word 0x0223A854 + thumb_func_end MOD83_0222E048 + + thumb_func_start MOD83_0222E098 +MOD83_0222E098: ; 0x0222E098 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, _0222E0D4 ; =0x0223A85C + lsl r6, r4, #4 + ldr r0, [r0, r6] + add r1, r2, #0 + str r0, [sp] + ldr r0, [r5] + mov r2, #3 + add r7, r3, #0 + bl MOD83_02238A38 + lsl r4, r4, #2 + add r0, r5, r4 + mov r3, #2 + add r0, #0xe8 + str r3, [r0] + add r0, r5, #0 + mov r1, #0x1a + add r2, r7, #0 + bl MOD83_0222DC10 + ldr r0, _0222E0D8 ; =0x0223A854 + ldr r1, [r0, r6] + add r0, r5, r4 + add r0, #0xcc + str r1, [r0] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222E0D4: .word 0x0223A85C +_0222E0D8: .word 0x0223A854 + thumb_func_end MOD83_0222E098 + + thumb_func_start MOD83_0222E0DC +MOD83_0222E0DC: ; 0x0222E0DC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x70 + add r7, r0, #0 + mov r0, #0 + str r0, [sp, #0xc] + mov r0, #0x13 + str r0, [r7, #0x20] + ldr r0, [sp, #0xc] + ldr r4, _0222E1F0 ; =0x0223A854 + str r0, [sp, #0x10] + add r0, r7, #0 + str r0, [sp, #8] + add r0, #0x5c + str r0, [sp, #8] + add r0, r7, #0 + str r0, [sp, #0x14] + add r0, #0x20 + mov r5, #1 + str r7, [sp, #0x18] + str r0, [sp, #0x14] +_0222E104: + mov r0, #1 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r1, [sp, #8] + ldr r3, _0222E1F4 ; =0x000001EE + add r0, sp, #0x1c + mov r2, #1 + bl MOD83_022388E4 + ldr r2, [r4, #4] + ldr r3, [r7, #0x20] + add r0, sp, #0x1c + mov r1, #0x1a + bl MOD83_02238934 + ldr r0, [r4, #0xc] + mov ip, r0 + cmp r0, #0 + beq _0222E1A4 + ldr r0, [sp, #0x18] + add r0, #0xcc + ldr r0, [r0] + cmp r0, #0 + beq _0222E188 + ldr r0, [sp, #0x2c] + mov r1, #3 + bl FUN_0201AB1C + lsl r1, r5, #0x18 + ldr r0, [sp, #0x2c] + lsr r1, r1, #0x18 + bl FUN_0201AB20 + ldr r2, [sp, #0x54] + ldr r3, [sp, #0x58] + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + ldr r0, [sp, #0x2c] + mov r1, #0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_0200CCA4 + ldr r0, [sp, #0x18] + add r0, #0xe8 + ldr r3, [r0] + cmp r3, #0 + beq _0222E172 + add r0, r7, #0 + mov r1, #0x1a + add r2, r5, #0 + bl MOD83_0222DC10 + b _0222E17C +_0222E172: + add r0, r7, #0 + mov r1, #0x1a + add r2, r5, #0 + bl MOD83_0222DC60 +_0222E17C: + ldr r0, [r4, #4] + add r0, r0, #2 + add r5, r5, r0 + mov r0, #1 + str r0, [sp, #0xc] + b _0222E1C2 +_0222E188: + ldr r1, [sp, #0x10] + add r0, r7, #0 + add r2, sp, #0x1c + add r3, r5, #0 + mov r6, ip + blx r6 + cmp r0, #1 + bne _0222E1C2 + ldr r0, [r4, #4] + add r0, r0, #2 + add r5, r5, r0 + mov r0, #1 + str r0, [sp, #0xc] + b _0222E1C2 +_0222E1A4: + ldr r0, [r4, #8] + add r1, sp, #0x1c + str r0, [sp] + ldr r0, [r7] + mov r2, #3 + add r3, r5, #0 + bl MOD83_02238A38 + ldr r0, [sp, #0x18] + ldr r1, [r4] + add r0, #0xcc + str r1, [r0] + ldr r0, [r4, #4] + add r0, r0, #2 + add r5, r5, r0 +_0222E1C2: + ldr r0, [sp, #0x14] + ldr r1, [r4, #4] + ldr r2, [r0] + mov r0, #0x1a + mul r0, r1 + add r1, r2, r0 + ldr r0, [sp, #0x14] + add r4, #0x10 + str r1, [r0] + ldr r0, [sp, #8] + add r0, #0x10 + str r0, [sp, #8] + ldr r0, [sp, #0x18] + add r0, r0, #4 + str r0, [sp, #0x18] + ldr r0, [sp, #0x10] + add r0, r0, #1 + str r0, [sp, #0x10] + cmp r0, #7 + blo _0222E104 + ldr r0, [sp, #0xc] + add sp, #0x70 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222E1F0: .word 0x0223A854 +_0222E1F4: .word 0x000001EE + thumb_func_end MOD83_0222E0DC + + thumb_func_start MOD83_0222E1F8 +MOD83_0222E1F8: ; 0x0222E1F8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r6, r0, #0 + add r5, r6, #0 + str r1, [sp, #0xc] + mov r4, #0 + add r5, #0x5c +_0222E206: + add r0, r5, #0 + bl FUN_02019048 + cmp r0, #0 + beq _0222E294 + ldr r0, [sp, #0xc] + cmp r4, r0 + bne _0222E256 + add r0, r5, #0 + mov r1, #1 + mov r2, #0xa + mov r3, #3 + bl FUN_0200CCA4 + add r0, r5, #0 + bl FUN_0201AB14 + str r0, [sp, #0x10] + add r0, r5, #0 + bl FUN_0201AB18 + str r0, [sp, #0x14] + add r0, r5, #0 + bl FUN_0201AB0C + add r7, r0, #0 + add r0, r5, #0 + bl FUN_0201AB10 + str r7, [sp] + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + ldr r0, [r6] + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x14] + mov r1, #0 + bl FUN_020186B4 + b _0222E294 +_0222E256: + mov r1, #1 + add r0, r5, #0 + add r2, r1, #0 + mov r3, #2 + bl FUN_0200CCA4 + add r0, r5, #0 + bl FUN_0201AB14 + str r0, [sp, #0x18] + add r0, r5, #0 + bl FUN_0201AB18 + str r0, [sp, #0x1c] + add r0, r5, #0 + bl FUN_0201AB0C + add r7, r0, #0 + add r0, r5, #0 + bl FUN_0201AB10 + str r7, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, [r6] + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x1c] + mov r1, #0 + bl FUN_020186B4 +_0222E294: + add r4, r4, #1 + add r5, #0x10 + cmp r4, #7 + blo _0222E206 + ldr r0, [r6] + mov r1, #0 + bl FUN_02017CD0 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD83_0222E1F8 + + thumb_func_start MOD83_0222E2A8 +MOD83_0222E2A8: ; 0x0222E2A8 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r2, r1, #0 + ldr r1, [r5, #0x54] + mov r7, #6 + add r4, r1, #0 + mov r0, #0 + sub r6, r7, #7 +_0222E2B8: + add r4, r4, r2 + cmp r4, r6 + bne _0222E2C0 + add r4, r0, #0 +_0222E2C0: + cmp r4, #7 + bne _0222E2C6 + add r4, r7, #0 +_0222E2C6: + cmp r4, r1 + beq _0222E2DC + lsl r3, r4, #2 + add r3, r5, r3 + add r3, #0xcc + ldr r3, [r3] + cmp r3, #0 + beq _0222E2B8 + ldr r0, _0222E2E0 ; =0x000005DC + bl FUN_020054C8 +_0222E2DC: + str r4, [r5, #0x54] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222E2E0: .word 0x000005DC + thumb_func_end MOD83_0222E2A8 + + thumb_func_start MOD83_0222E2E4 +MOD83_0222E2E4: ; 0x0222E2E4 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x54] + add r1, r5, #0 + add r1, #0x5c + lsl r0, r0, #4 + add r0, r1, r0 + bl FUN_0201AB18 + sub r0, r0, #1 + lsl r4, r0, #3 + ldr r0, [r5, #0x54] + add r1, r5, #0 + add r1, #0x5c + lsl r0, r0, #4 + add r0, r1, r0 + bl FUN_0201AB10 + add r0, r0, #2 + lsl r3, r0, #3 + mov r0, #0x42 + lsl r0, r0, #2 + ldr r2, [r5, r0] + asr r1, r2, #0xb + lsr r1, r1, #0x14 + add r1, r2, r1 + asr r2, r1, #0xc + cmp r2, r4 + ble _0222E322 + lsl r1, r4, #0xc + str r1, [r5, r0] +_0222E322: + add r2, #0xc0 + cmp r2, r4 + bgt _0222E334 + add r0, r4, r3 + sub r0, #0xc0 + lsl r1, r0, #0xc + mov r0, #0x42 + lsl r0, r0, #2 + str r1, [r5, r0] +_0222E334: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD83_0222E2E4 + + thumb_func_start MOD83_0222E338 +MOD83_0222E338: ; 0x0222E338 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r1, #0x42 + ldr r0, [sp] + lsl r1, r1, #2 + ldr r1, [r0, r1] + ldr r5, [sp] + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r7, r0, #0xc + add r0, r7, #0 + str r0, [sp, #0xc] + add r0, #0xc0 + ldr r6, [sp, #4] + add r5, #0x5c + str r0, [sp, #0xc] +_0222E362: + add r0, r5, #0 + bl FUN_02019048 + cmp r0, #0 + beq _0222E38E + add r0, r5, #0 + bl FUN_0201AB18 + sub r0, r0, #1 + lsl r4, r0, #3 + add r0, r5, #0 + bl FUN_0201AB10 + cmp r7, r4 + ble _0222E384 + mov r0, #1 + str r0, [sp, #8] +_0222E384: + ldr r0, [sp, #0xc] + cmp r0, r4 + bgt _0222E38E + mov r0, #1 + str r0, [sp, #4] +_0222E38E: + add r6, r6, #1 + add r5, #0x10 + cmp r6, #7 + blo _0222E362 + mov r1, #0x15 + ldr r0, [sp] + lsl r1, r1, #4 + ldr r0, [r0, r1] + ldr r1, [sp, #8] + bl FUN_020200A0 + mov r1, #0x55 + ldr r0, [sp] + lsl r1, r1, #2 + ldr r0, [r0, r1] + ldr r1, [sp, #4] + bl FUN_020200A0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD83_0222E338 + + thumb_func_start MOD83_0222E3B8 +MOD83_0222E3B8: ; 0x0222E3B8 + push {r3, r4, r5, r6, r7, lr} + bl FUN_02006278 + mov r1, #0x15 + add r7, r0, #0 + lsl r1, r1, #4 + ldr r0, [r7, r1] + cmp r0, #0 + bne _0222E3D2 + add r1, r1, #4 + ldr r1, [r7, r1] + cmp r1, #0 + beq _0222E3E4 +_0222E3D2: + bl FUN_0201FFC8 + mov r0, #0x55 + lsl r0, r0, #2 + ldr r0, [r7, r0] + bl FUN_0201FFC8 + bl MOD83_02238E48 +_0222E3E4: + add r5, r7, #0 + mov r6, #0 + add r4, r7, #0 + add r5, #0x5c +_0222E3EC: + ldr r0, [r4, #0x5c] + cmp r0, #0 + beq _0222E3FE + add r0, r5, #0 + bl FUN_02019570 + add r0, r5, #0 + bl FUN_02019178 +_0222E3FE: + add r6, r6, #1 + add r4, #0x10 + add r5, #0x10 + cmp r6, #7 + blo _0222E3EC + ldr r0, [r7] + mov r1, #0 + bl FUN_020178A0 + ldr r0, [r7] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r7] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r7] + bl FUN_02016A18 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD83_0222E3B8 + + thumb_func_start MOD83_0222E430 +MOD83_0222E430: ; 0x0222E430 + mov r1, #0x56 + lsl r1, r1, #2 + ldr r2, [r0, r1] + lsl r3, r2, #1 + ldr r2, _0222E45C ; =0x0223A7B0 + ldrh r2, [r2, r3] + cmp r2, #0 + bne _0222E444 + mov r2, #0 + str r2, [r0, r1] +_0222E444: + mov r1, #0x56 + lsl r1, r1, #2 + ldr r3, [r0, r1] + add r2, r3, #1 + str r2, [r0, r1] + ldr r0, _0222E45C ; =0x0223A7B0 + lsl r1, r3, #1 + ldrh r1, [r0, r1] + ldr r0, _0222E460 ; =0x0500006C + strh r1, [r0] + bx lr + nop +_0222E45C: .word 0x0223A7B0 +_0222E460: .word 0x0500006C + thumb_func_end MOD83_0222E430 + + thumb_func_start MOD83_0222E464 +MOD83_0222E464: ; 0x0222E464 + push {r4, lr} + add r4, r0, #0 + bl FUN_0201C30C + bl FUN_02009F80 + add r0, r4, #0 + bl FUN_0201AB60 + ldr r3, _0222E484 ; =0x027E0000 + ldr r1, _0222E488 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + .align 2, 0 +_0222E484: .word 0x027E0000 +_0222E488: .word 0x00003FF8 + thumb_func_end MOD83_0222E464 + + thumb_func_start MOD83_0222E48C +MOD83_0222E48C: ; 0x0222E48C + push {r3, r4, r5, lr} + mov r2, #1 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x51 + lsl r2, r2, #0x12 + bl FUN_0201681C + mov r1, #0x57 + add r0, r5, #0 + lsl r1, r1, #2 + mov r2, #0x51 + bl FUN_02006268 + mov r2, #0x57 + mov r1, #0 + lsl r2, r2, #2 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x51 + bl FUN_02016B94 + str r0, [r4] + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + add r0, r5, #0 + bl FUN_0200628C + ldr r0, [r0, #8] + str r0, [r4, #4] + bl FUN_0202251C + str r0, [r4, #0x14] + mov r0, #0x41 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, r0, #4 + str r1, [r4, r0] + ldr r0, [r4, #4] + bl FUN_020238F4 + str r0, [r4, #0xc] + ldr r0, [r4, #4] + bl FUN_02024DA0 + str r0, [r4, #8] + ldr r0, [r4, #4] + bl FUN_02023918 + str r0, [r4, #0x10] + ldr r0, [r4, #8] + bl FUN_02024D64 + str r0, [r4, #0x4c] + ldr r0, [r4, #0xc] + bl FUN_020239F4 + str r0, [r4, #0x50] + mov r0, #0x45 + mov r1, #0xf + lsl r0, r0, #2 + str r1, [r4, r0] + mov r0, #0x51 + bl MOD83_02238770 + ldr r0, [r4, #4] + bl FUN_02022804 + cmp r0, #0 + bne _0222E530 + mov r0, #0x4d + mov r1, #1 + lsl r0, r0, #2 + str r1, [r4, r0] +_0222E530: + mov r0, #0 + bl FUN_0200516C + mov r0, #0 + bl FUN_0200415C + mov r0, #1 + pop {r3, r4, r5, pc} + thumb_func_end MOD83_0222E48C + + thumb_func_start MOD83_0222E540 +MOD83_0222E540: ; 0x0222E540 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r4, #0x18] + add r0, r0, #1 + str r0, [r4, #0x18] + bl CTRDG_IsExisting + add r0, r4, #0 + bl MOD83_0222D7E0 + cmp r0, #1 + bne _0222E570 + add r0, r4, #0 + bl MOD83_0222D6EC + add r0, r4, #0 + bl MOD83_0222D9C0 + mov r0, #0 + pop {r4, r5, r6, pc} +_0222E570: + add r0, r4, #0 + bl MOD83_0222E430 + ldr r0, [r5] + cmp r0, #9 + bhi _0222E5D8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222E588: ; jump table + .short _0222E59C - _0222E588 - 2 ; case 0 + .short _0222E5A8 - _0222E588 - 2 ; case 1 + .short _0222E5CE - _0222E588 - 2 ; case 2 + .short _0222E5E8 - _0222E588 - 2 ; case 3 + .short _0222E616 - _0222E588 - 2 ; case 4 + .short _0222E656 - _0222E588 - 2 ; case 5 + .short _0222E74A - _0222E588 - 2 ; case 6 + .short _0222E772 - _0222E588 - 2 ; case 7 + .short _0222E77C - _0222E588 - 2 ; case 8 + .short _0222E784 - _0222E588 - 2 ; case 9 +_0222E59C: + add r0, r4, #0 + bl MOD83_0222DA50 + mov r0, #1 + str r0, [r5] + b _0222E788 +_0222E5A8: + add r0, r4, #0 + bl MOD83_0222D5C0 + cmp r0, #0 + bne _0222E5B8 + mov r0, #3 + str r0, [r5] + b _0222E788 +_0222E5B8: + mov r0, #1 + mov r1, #2 + add r2, r5, #0 + mov r3, #8 + bl MOD83_0223886C + mov r0, #5 + ldr r1, _0222E79C ; =0x00007D8C + lsl r0, r0, #0x18 + strh r1, [r0] + b _0222E788 +_0222E5CE: + add r0, r4, #0 + bl MOD83_0222D5C4 + cmp r0, #0 + beq _0222E5DA +_0222E5D8: + b _0222E788 +_0222E5DA: + mov r0, #0 + mov r1, #3 + add r2, r5, #0 + mov r3, #8 + bl MOD83_0223886C + b _0222E788 +_0222E5E8: + mov r0, #0x43 + mov r1, #0xc + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, #0x28 + ldr r0, [r4, r0] + cmp r0, #1 + bne _0222E60A + mov r0, #2 + str r0, [r4, #0x58] + mov r0, #0 + mov r1, #7 + add r2, r5, #0 + mov r3, #8 + bl MOD83_0223886C + b _0222E788 +_0222E60A: + add r0, r4, #0 + bl MOD83_0222D67C + mov r0, #4 + str r0, [r5] + b _0222E788 +_0222E616: + add r0, r4, #0 + bl MOD83_0222DB68 + add r0, r4, #0 + bl MOD83_0222DBD0 + ldr r0, _0222E7A0 ; =MOD83_0222E464 + ldr r1, [r4] + bl FUN_02015F10 + add r0, r4, #0 + bl MOD83_0222E0DC + ldr r1, [r4, #0x54] + add r0, r4, #0 + bl MOD83_0222E1F8 + mov r0, #1 + mov r1, #5 + add r2, r5, #0 + mov r3, #8 + bl MOD83_0223886C + mov r0, #5 + ldr r1, _0222E79C ; =0x00007D8C + lsl r0, r0, #0x18 + strh r1, [r0] + mov r0, #0x43 + mov r1, #0xa + lsl r0, r0, #2 + str r1, [r4, r0] + b _0222E788 +_0222E656: + ldr r0, _0222E7A4 ; =0x021C48B8 + mov r1, #3 + ldr r0, [r0, #0x48] + tst r1, r0 + beq _0222E6E8 + mov r1, #1 + tst r0, r1 + ldr r0, _0222E7A8 ; =0x000005DC + beq _0222E69A + bl FUN_020054C8 + ldr r0, [r4, #0x54] + lsl r0, r0, #2 + add r0, r4, r0 + add r0, #0xcc + ldr r0, [r0] + str r0, [r4, #0x58] + cmp r0, #5 + bne _0222E6A8 + bl CTRDG_IsPulledOut + cmp r0, #1 + bne _0222E6A8 + mov r0, #0x43 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0xc + beq _0222E692 + bl FUN_02032D80 +_0222E692: + mov r0, #0x51 + bl FUN_02089F24 + b _0222E6A8 +_0222E69A: + bl FUN_020054C8 + mov r0, #0 + str r0, [r4, #0x58] + mov r0, #1 + bl MOD83_02238860 +_0222E6A8: + ldr r0, [r4, #0x58] + cmp r0, #2 + bne _0222E6C2 + ldr r1, [r4, #0x40] + mov r0, #0x80 + orr r1, r0 + str r1, [r4, #0x40] + mov r1, #1 + add r0, #0x98 + str r1, [r4, r0] + mov r0, #6 + str r0, [r5] + b _0222E6D8 +_0222E6C2: + cmp r0, #6 + bne _0222E6CC + mov r0, #1 + bl MOD83_02238860 +_0222E6CC: + mov r0, #0 + mov r1, #7 + add r2, r5, #0 + mov r3, #8 + bl MOD83_0223886C +_0222E6D8: + mov r0, #0x43 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #0xd + bne _0222E788 + mov r1, #0xe + str r1, [r4, r0] + b _0222E788 +_0222E6E8: + ldr r1, [r4, #0x48] + cmp r1, #1 + bne _0222E6FA + add r0, r4, #0 + bl MOD83_0222E0DC + mov r0, #0 + str r0, [r4, #0x48] + b _0222E788 +_0222E6FA: + mov r1, #0x40 + tst r0, r1 + beq _0222E708 + add r0, r4, #0 + sub r1, #0x41 + bl MOD83_0222E2A8 +_0222E708: + ldr r0, _0222E7A4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #0x80 + tst r0, r1 + beq _0222E71A + add r0, r4, #0 + mov r1, #1 + bl MOD83_0222E2A8 +_0222E71A: + ldr r1, [r4, #0x54] + add r0, r4, #0 + bl MOD83_0222E1F8 + add r0, r4, #0 + bl MOD83_0222E2E4 + add r0, r4, #0 + bl MOD83_0222E338 + ldr r0, [r5] + cmp r0, #5 + bne _0222E788 + mov r0, #0x4e + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #1 + bne _0222E788 + mov r1, #0 + str r1, [r4, r0] + mov r1, #1 + sub r0, #0x20 + str r1, [r4, r0] + b _0222E788 +_0222E74A: + mov r0, #0x45 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #0xf + bne _0222E788 + add r0, #0xc + ldr r1, [r4, r0] + mov r0, #2 + tst r0, r1 + beq _0222E764 + mov r0, #5 + str r0, [r5] + b _0222E788 +_0222E764: + mov r0, #0 + mov r1, #7 + add r2, r5, #0 + mov r3, #8 + bl MOD83_0223886C + b _0222E788 +_0222E772: + add r0, r6, #0 + bl MOD83_0222E3B8 + mov r0, #1 + pop {r4, r5, r6, pc} +_0222E77C: + add r0, r5, #0 + bl MOD83_022388CC + b _0222E788 +_0222E784: + mov r0, #1 + pop {r4, r5, r6, pc} +_0222E788: + add r0, r4, #0 + bl MOD83_0222D6EC + add r0, r4, #0 + bl MOD83_0222D9C0 + bl MOD83_02238D58 + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222E79C: .word 0x00007D8C +_0222E7A0: .word MOD83_0222E464 +_0222E7A4: .word 0x021C48B8 +_0222E7A8: .word 0x000005DC + thumb_func_end MOD83_0222E540 + + thumb_func_start MOD83_0222E7AC +MOD83_0222E7AC: ; 0x0222E7AC + push {r3, lr} + ldr r0, [r0, #0x58] + cmp r0, #7 + bhi _0222E822 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222E7C0: ; jump table + .short _0222E81A - _0222E7C0 - 2 ; case 0 + .short _0222E7D0 - _0222E7C0 - 2 ; case 1 + .short _0222E7DA - _0222E7C0 - 2 ; case 2 + .short _0222E7E4 - _0222E7C0 - 2 ; case 3 + .short _0222E7F8 - _0222E7C0 - 2 ; case 4 + .short _0222E7EE - _0222E7C0 - 2 ; case 5 + .short _0222E802 - _0222E7C0 - 2 ; case 6 + .short _0222E80A - _0222E7C0 - 2 ; case 7 +_0222E7D0: + ldr r0, _0222E824 ; =SDK_OVERLAY_MODULE_52_ID + ldr r1, _0222E828 ; =0x021D76C8 + bl FUN_02000E7C + pop {r3, pc} +_0222E7DA: + ldr r0, _0222E824 ; =SDK_OVERLAY_MODULE_52_ID + ldr r1, _0222E82C ; =0x021D76E8 + bl FUN_02000E7C + pop {r3, pc} +_0222E7E4: + ldr r0, _0222E830 ; =SDK_OVERLAY_MODULE_83_ID + ldr r1, _0222E834 ; =0x0223A434 + bl FUN_02000E7C + pop {r3, pc} +_0222E7EE: + ldr r0, _0222E830 ; =SDK_OVERLAY_MODULE_83_ID + ldr r1, _0222E838 ; =0x0223A4FC + bl FUN_02000E7C + pop {r3, pc} +_0222E7F8: + ldr r0, _0222E830 ; =SDK_OVERLAY_MODULE_83_ID + ldr r1, _0222E83C ; =0x0223A3A8 + bl FUN_02000E7C + pop {r3, pc} +_0222E802: + ldr r0, _0222E840 ; =0x0223A8C4 + bl FUN_020224D8 + pop {r3, pc} +_0222E80A: + bl FUN_0200541C + mov r0, #0 + ldr r1, _0222E844 ; =0x020FD6D4 + mvn r0, r0 + bl FUN_02000E7C + pop {r3, pc} +_0222E81A: + ldr r0, _0222E848 ; =SDK_OVERLAY_MODULE_63_ID + ldr r1, _0222E84C ; =0x021DBAB8 + bl FUN_02000E7C +_0222E822: + pop {r3, pc} + .align 2, 0 +_0222E824: .word SDK_OVERLAY_MODULE_52_ID +_0222E828: .word 0x021D76C8 +_0222E82C: .word 0x021D76E8 +_0222E830: .word SDK_OVERLAY_MODULE_83_ID +_0222E834: .word 0x0223A434 +_0222E838: .word 0x0223A4FC +_0222E83C: .word 0x0223A3A8 +_0222E840: .word 0x0223A8C4 +_0222E844: .word 0x020FD6D4 +_0222E848: .word SDK_OVERLAY_MODULE_63_ID +_0222E84C: .word 0x021DBAB8 + thumb_func_end MOD83_0222E7AC + + thumb_func_start MOD83_0222E850 +MOD83_0222E850: ; 0x0222E850 + push {r4, lr} + add r4, r0, #0 + bl FUN_02006278 + bl MOD83_0222E7AC + add r0, r4, #0 + bl FUN_0200627C + mov r0, #0x51 + bl FUN_020168D0 + mov r0, #0 + bl MOD83_02239450 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_0222E850 + + thumb_func_start MOD83_0222E874 +MOD83_0222E874: ; 0x0222E874 + push {r3, r4} + ldr r4, _0222E89C ; =0x0223A8E0 + ldr r1, _0222E8A0 ; =0x00000123 + mov r3, #0 +_0222E87C: + ldrh r2, [r4, #2] + cmp r0, r2 + bne _0222E88C + ldr r0, _0222E89C ; =0x0223A8E0 + lsl r1, r3, #2 + ldrh r0, [r0, r1] + pop {r3, r4} + bx lr +_0222E88C: + add r3, r3, #1 + add r4, r4, #4 + cmp r3, r1 + blo _0222E87C + mov r0, #0x3f + pop {r3, r4} + bx lr + nop +_0222E89C: .word 0x0223A8E0 +_0222E8A0: .word 0x00000123 + thumb_func_end MOD83_0222E874 + + thumb_func_start MOD83_0222E8A4 +MOD83_0222E8A4: ; 0x0222E8A4 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r1, _0222E90C ; =0x00002710 + add r0, r4, #0 + bl _s32_div_f + add r0, #0x30 + strh r0, [r5] + ldr r1, _0222E90C ; =0x00002710 + add r0, r4, #0 + bl _s32_div_f + add r4, r1, #0 + mov r1, #0xfa + add r0, r4, #0 + lsl r1, r1, #2 + bl _s32_div_f + add r0, #0x30 + mov r1, #0xfa + strh r0, [r5, #2] + add r0, r4, #0 + lsl r1, r1, #2 + bl _s32_div_f + add r4, r1, #0 + add r0, r4, #0 + mov r1, #0x64 + bl _s32_div_f + add r0, #0x30 + strh r0, [r5, #4] + add r0, r4, #0 + mov r1, #0x64 + bl _s32_div_f + add r4, r1, #0 + add r0, r4, #0 + mov r1, #0xa + bl _s32_div_f + add r0, #0x30 + strh r0, [r5, #6] + add r0, r4, #0 + mov r1, #0xa + bl _s32_div_f + add r4, r1, #0 + add r4, #0x30 + strh r4, [r5, #8] + pop {r3, r4, r5, pc} + .align 2, 0 +_0222E90C: .word 0x00002710 + thumb_func_end MOD83_0222E8A4 + + thumb_func_start MOD83_0222E910 +MOD83_0222E910: ; 0x0222E910 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + ldr r0, [r7, #0x10] + bl FUN_0202398C + ldr r5, _0222E948 ; =0x0223B860 + add r4, r0, #0 + mov r6, #0 +_0222E920: + ldrh r0, [r4] + bl MOD83_0222E874 + strh r0, [r5] + add r6, r6, #1 + add r4, r4, #2 + add r5, r5, #2 + cmp r6, #8 + blt _0222E920 + ldr r0, [r7, #0x10] + bl FUN_020239C0 + add r1, r0, #0 + ldr r0, _0222E94C ; =0x0223B870 + bl MOD83_0222E8A4 + ldr r0, _0222E950 ; =0x0223B860 + mov r1, #0 + strh r1, [r0, #0x1a] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222E948: .word 0x0223B860 +_0222E94C: .word 0x0223B870 +_0222E950: .word 0x0223B860 + thumb_func_end MOD83_0222E910 + + thumb_func_start MOD83_0222E954 +MOD83_0222E954: ; 0x0222E954 + push {r3, r4, r5, lr} + sub sp, #0x48 + ldr r5, _0222EA80 ; =0x0223A3C8 + add r4, r0, #0 + add r3, sp, #0x20 + mov r2, #5 +_0222E960: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _0222E960 + ldr r3, _0222EA84 ; =0x0223A3B8 + add r2, sp, #0x10 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + add r0, sp, #0x20 + bl FUN_0201E66C + add r0, sp, #0x10 + bl FUN_02016BBC + mov r1, #0 + str r1, [sp] + mov r3, #0xf + ldr r0, [r4, #4] + mov r2, #1 + lsl r3, r3, #0xc + bl MOD83_022387D8 + mov r0, #1 + lsl r0, r0, #0xe + str r0, [sp] + mov r1, #1 + mov r3, #0x3e + ldr r0, [r4, #4] + add r2, r1, #0 + lsl r3, r3, #0xa + bl MOD83_022387D8 + mov r0, #0 + str r0, [sp] + mov r3, #0x1e + ldr r0, [r4, #4] + mov r1, #4 + mov r2, #1 + lsl r3, r3, #0xa + bl MOD83_022387D8 + mov r0, #1 + lsl r0, r0, #0xe + str r0, [sp] + mov r3, #7 + ldr r0, [r4, #4] + mov r1, #5 + mov r2, #1 + lsl r3, r3, #0xc + bl MOD83_022387D8 + bl FUN_0201BD5C + mov r0, #0 + ldr r2, [r4] + add r1, r0, #0 + bl FUN_02002ED0 + mov r1, #0 + str r1, [sp] + ldr r0, [r4] + mov r2, #1 + str r0, [sp, #4] + ldr r0, [r4, #4] + add r3, r2, #0 + bl FUN_0200CB00 + ldr r0, [r4, #0x14] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r4] + mov r1, #0 + str r0, [sp, #4] + ldr r0, [r4, #4] + mov r2, #0xa + mov r3, #2 + bl FUN_0200CD68 + mov r0, #0x20 + str r0, [sp] + ldr r0, [r4] + mov r1, #0 + str r0, [sp, #4] + mov r0, #0x74 + add r3, r0, #0 + add r2, r1, #0 + add r3, #0x8c + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + mov r0, #5 + lsl r0, r0, #0xa + mov r1, #1 + str r0, [sp, #4] + str r1, [sp, #8] + ldr r0, [r4] + add r3, r1, #0 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x74 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + ldr r0, [r4] + mov r1, #2 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x74 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r2, #0 + ldr r0, [r4, #4] + mov r1, #1 + add r3, r2, #0 + bl FUN_020186B4 + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_02017CD0 + add r0, r4, #0 + bl MOD83_0222EA88 + add sp, #0x48 + pop {r3, r4, r5, pc} + nop +_0222EA80: .word 0x0223A3C8 +_0222EA84: .word 0x0223A3B8 + thumb_func_end MOD83_0222E954 + + thumb_func_start MOD83_0222EA88 +MOD83_0222EA88: ; 0x0222EA88 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x20 + str r0, [sp] + ldr r0, [r4] + mov r2, #4 + add r3, r2, #0 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0 + add r3, #0xfc + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + mov r0, #5 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + ldr r0, [r4] + mov r3, #4 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x74 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, [r4] + mov r1, #2 + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x74 + mov r3, #4 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r2, #0 + ldr r0, [r4, #4] + mov r1, #4 + add r3, r2, #0 + bl FUN_020186B4 + ldr r0, [r4, #4] + mov r1, #4 + bl FUN_02017CD0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_0222EA88 + + thumb_func_start MOD83_0222EB04 +MOD83_0222EB04: ; 0x0222EB04 + push {r3, r4, lr} + sub sp, #0x5c + add r4, r0, #0 + add r0, #0x18 + bl FUN_02019048 + cmp r0, #0 + bne _0222EB4E + mov r0, #1 + str r0, [sp] + add r1, r4, #0 + str r0, [sp, #4] + add r0, sp, #8 + add r1, #0x18 + mov r2, #0 + mov r3, #0xc + bl MOD83_022388E4 + mov r3, #0x51 + lsl r3, r3, #2 + ldr r3, [r4, r3] + add r0, sp, #8 + mov r1, #0x16 + mov r2, #0x10 + bl MOD83_02238934 + mov r0, #2 + str r0, [sp] + ldr r0, [r4, #4] + add r1, sp, #8 + mov r2, #5 + mov r3, #4 + bl MOD83_02238A38 + add sp, #0x5c + mov r0, #1 + pop {r3, r4, pc} +_0222EB4E: + ldr r0, _0222EB78 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _0222EB70 + add r0, r4, #0 + add r0, #0x18 + mov r1, #0 + bl FUN_0200CCF8 + add r4, #0x18 + add r0, r4, #0 + bl FUN_02019178 + add sp, #0x5c + mov r0, #0 + pop {r3, r4, pc} +_0222EB70: + mov r0, #1 + add sp, #0x5c + pop {r3, r4, pc} + nop +_0222EB78: .word 0x021C48B8 + thumb_func_end MOD83_0222EB04 + + thumb_func_start MOD83_0222EB7C +MOD83_0222EB7C: ; 0x0222EB7C + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + mov r0, #0xa + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + add r0, r4, #0 + add r1, r4, #0 + ldr r3, _0222EC70 ; =0x00000172 + add r0, #0x48 + add r1, #0x28 + mov r2, #0 + bl MOD83_022388E4 + mov r3, #0x51 + lsl r3, r3, #2 + add r0, r4, #0 + ldr r3, [r4, r3] + add r0, #0x48 + mov r1, #0x1b + mov r2, #4 + bl MOD83_02238934 + add r0, r4, #0 + mov r1, #1 + add r0, #0x48 + add r2, r1, #0 + bl MOD83_0223893C + mov r0, #0x46 + str r0, [sp] + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x48 + mov r2, #2 + mov r3, #0x13 + bl MOD83_02238A38 + add r0, r4, #0 + add r0, #0x48 + bl MOD83_02238AF4 + mov r3, #0x51 + lsl r3, r3, #2 + ldr r1, [r4, r3] + mov r2, #0 + add r0, r1, r0 + str r0, [r4, r3] + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + add r0, r4, #0 + add r1, r4, #0 + add r0, #0x9c + add r1, #0x18 + add r3, #0x2e + bl MOD83_022388E4 + mov r3, #0x51 + lsl r3, r3, #2 + add r0, r4, #0 + ldr r3, [r4, r3] + add r0, #0x9c + mov r1, #0x1e + mov r2, #4 + bl MOD83_02238934 + add r0, r4, #0 + add r0, #0x9c + mov r1, #0 + mov r2, #1 + bl MOD83_0223893C + mov r0, #0xb + str r0, [sp] + add r1, r4, #0 + mov r2, #1 + ldr r0, [r4, #4] + add r1, #0x9c + add r3, r2, #0 + bl MOD83_02238A38 + add r0, r4, #0 + add r0, #0x9c + bl MOD83_02238AF4 + mov r1, #0x51 + lsl r1, r1, #2 + ldr r2, [r4, r1] + add r0, r2, r0 + str r0, [r4, r1] + bl MOD83_02238AFC + bl MOD83_02238B4C + mov r0, #8 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0xa + mov r2, #7 + mov r3, #9 + bl MOD83_02238BC4 + mov r0, #1 + str r0, [sp] + ldr r1, _0222EC74 ; =0x00003170 + mov r0, #0 + ldr r1, [r4, r1] + mov r2, #0x80 + mov r3, #0x4c + bl MOD83_02238DBC + ldr r1, _0222EC74 ; =0x00003170 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD83_0222EC78 + add sp, #8 + pop {r4, pc} + .align 2, 0 +_0222EC70: .word 0x00000172 +_0222EC74: .word 0x00003170 + thumb_func_end MOD83_0222EB7C + + thumb_func_start MOD83_0222EC78 +MOD83_0222EC78: ; 0x0222EC78 + push {r3, r4, r5, lr} + sub sp, #0x20 + add r5, r0, #0 + ldr r0, [r5] + bl FUN_0200AA80 + add r4, r0, #0 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + add r0, r5, #0 + add r1, r5, #0 + ldr r3, _0222ED84 ; =0x00000172 + add r0, #0xf0 + add r1, #0x38 + mov r2, #0 + bl MOD83_022388E4 + mov r3, #0x51 + lsl r3, r3, #2 + add r0, r5, #0 + ldr r3, [r5, r3] + add r0, #0xf0 + mov r1, #0x1a + mov r2, #4 + bl MOD83_02238934 + add r0, r5, #0 + add r0, #0xf0 + mov r1, #0 + mov r2, #1 + bl MOD83_0223893C + mov r0, #0x41 + lsl r0, r0, #2 + str r4, [r5, r0] + ldr r2, [r5, #0x10] + add r0, r4, #0 + mov r1, #0 + bl FUN_0200ABC0 + ldr r0, [r5, #0x10] + bl FUN_020239C0 + add r2, r0, #0 + mov r0, #2 + str r0, [sp] + mov r1, #1 + add r0, r4, #0 + mov r3, #5 + str r1, [sp, #4] + bl FUN_0200AD38 + mov r0, #0x42 + str r0, [sp] + add r1, r5, #0 + ldr r0, [r5, #4] + add r1, #0xf0 + mov r2, #3 + mov r3, #0xd + bl MOD83_02238A38 + add r1, r5, #0 + mov r0, #0 + add r1, #0xf8 + str r0, [r1] + mov r1, #1 + bl FUN_02002E4C + add r2, r0, #0 + add r0, r5, #0 + add r0, #0xf0 + mov r1, #0 + bl MOD83_02238944 + mov r2, #0x44 + str r2, [sp] + add r1, r5, #0 + sub r2, #0x45 + ldr r0, [r5, #4] + add r1, #0xf0 + add r3, r2, #0 + bl MOD83_02238A38 + add r0, sp, #0x10 + bl OS_GetMacAddress + add r0, sp, #0x10 + bl MOD83_02234704 + add r1, sp, #0x1c + add r2, sp, #0x18 + str r0, [sp, #8] + str r0, [sp, #0xc] + bl MOD83_02234748 + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r2, [sp, #0x1c] + add r0, r4, #0 + mov r1, #0 + mov r3, #4 + bl FUN_0200AD38 + mov r0, #2 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r2, [sp, #0x18] + add r0, r4, #0 + mov r3, #4 + bl FUN_0200AD38 + add r0, r5, #0 + mov r1, #1 + add r0, #0xfc + str r1, [r0] + mov r2, #0x45 + str r2, [sp] + ldr r0, [r5, #4] + add r5, #0xf0 + sub r2, #0x46 + add r1, r5, #0 + add r3, r2, #0 + bl MOD83_02238A38 + add r0, r4, #0 + bl FUN_0200AB18 + add sp, #0x20 + pop {r3, r4, r5, pc} + nop +_0222ED84: .word 0x00000172 + thumb_func_end MOD83_0222EC78 + + thumb_func_start MOD83_0222ED88 +MOD83_0222ED88: ; 0x0222ED88 + push {r4, lr} + bl FUN_02006278 + add r4, r0, #0 + bl MOD83_02238E48 + add r0, r4, #0 + add r0, #0x18 + bl FUN_02019048 + cmp r0, #1 + bne _0222EDD0 + add r0, r4, #0 + add r0, #0x18 + bl FUN_02019570 + add r0, r4, #0 + add r0, #0x18 + bl FUN_02019178 + add r0, r4, #0 + add r0, #0x28 + bl FUN_02019570 + add r0, r4, #0 + add r0, #0x28 + bl FUN_02019178 + add r0, r4, #0 + add r0, #0x38 + bl FUN_02019570 + add r0, r4, #0 + add r0, #0x38 + bl FUN_02019178 +_0222EDD0: + ldr r0, [r4, #4] + mov r1, #0 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #4 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #5 + bl FUN_020178A0 + ldr r0, [r4, #4] + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD83_0222ED88 + + thumb_func_start MOD83_0222EDF8 +MOD83_0222EDF8: ; 0x0222EDF8 + push {r3, r4, r5, lr} + mov r3, #2 + ldr r2, _0222EE80 ; =0x000034DC + mov r1, #0x55 + lsl r3, r3, #0x10 + add r5, r0, #0 + bl MOD83_022387A0 + add r4, r0, #0 + mov r0, #0x55 + str r0, [r4] + bl FUN_02016B94 + str r0, [r4, #4] + add r0, r5, #0 + bl FUN_0200628C + ldr r0, [r0, #8] + str r0, [r4, #8] + bl FUN_020238F4 + str r0, [r4, #0x10] + ldr r0, [r4, #8] + bl FUN_02024DA0 + str r0, [r4, #0xc] + ldr r0, [r4, #8] + bl LoadPlayerDataAddress + str r0, [r4, #0x14] + ldr r0, [r4] + bl MOD83_02238770 + ldr r0, [r4, #8] + bl FUN_0202251C + ldr r1, _0222EE84 ; =0x00003174 + mov r2, #0x53 + str r0, [r4, r1] + mov r0, #9 + lsl r2, r2, #2 + str r0, [r4, r2] + add r0, r2, #0 + mov r1, #0x28 + sub r0, #8 + str r1, [r4, r0] + add r1, r2, #0 + mov r0, #0 + add r1, #8 + str r0, [r4, r1] + add r1, r2, #0 + add r1, #0x10 + str r0, [r4, r1] + add r2, #0xc + str r0, [r4, r2] + mov r2, #3 + mov r1, #0x5b + lsl r2, r2, #8 + bl FUN_0201681C + ldr r1, _0222EE88 ; =0x00000496 + mov r0, #9 + mov r2, #1 + bl FUN_0200433C + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_0222EE80: .word 0x000034DC +_0222EE84: .word 0x00003174 +_0222EE88: .word 0x00000496 + thumb_func_end MOD83_0222EDF8 + + thumb_func_start MOD83_0222EE8C +MOD83_0222EE8C: ; 0x0222EE8C + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r1, #0 + add r6, r0, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #0xd + bhi _0222EEF2 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0222EEAC: ; jump table + .short _0222EEC8 - _0222EEAC - 2 ; case 0 + .short _0222EEEA - _0222EEAC - 2 ; case 1 + .short _0222EF08 - _0222EEAC - 2 ; case 2 + .short _0222EF5A - _0222EEAC - 2 ; case 3 + .short _0222EF86 - _0222EEAC - 2 ; case 4 + .short _0222EFC2 - _0222EEAC - 2 ; case 5 + .short _0222EFFC - _0222EEAC - 2 ; case 6 + .short _0222F02C - _0222EEAC - 2 ; case 7 + .short _0222F02C - _0222EEAC - 2 ; case 8 + .short _0222F02C - _0222EEAC - 2 ; case 9 + .short _0222F02C - _0222EEAC - 2 ; case 10 + .short _0222F012 - _0222EEAC - 2 ; case 11 + .short _0222F01A - _0222EEAC - 2 ; case 12 + .short _0222F026 - _0222EEAC - 2 ; case 13 +_0222EEC8: + bl MOD83_0222E954 + ldr r0, [r4, #0xc] + bl FUN_02024D64 + cmp r0, #0 + bne _0222EEE4 + mov r0, #1 + add r1, r0, #0 + add r2, r5, #0 + mov r3, #0xd + bl MOD83_0223886C + b _0222F02C +_0222EEE4: + mov r0, #2 + str r0, [r5] + b _0222F02C +_0222EEEA: + bl MOD83_0222EB04 + cmp r0, #0 + beq _0222EEF4 +_0222EEF2: + b _0222F02C +_0222EEF4: + mov r0, #1 + bl MOD83_02238860 + mov r0, #0 + mov r1, #0xc + add r2, r5, #0 + mov r3, #0xd + bl MOD83_0223886C + b _0222F02C +_0222EF08: + bl MOD83_0222EB7C + ldr r0, _0222F038 ; =0x00003174 + ldr r0, [r4, r0] + bl FUN_0202ADF0 + cmp r0, #0 + bne _0222EF44 + add r0, r4, #0 + mov r1, #1 + add r0, #0x98 + str r1, [r0] + mov r0, #0x15 + str r0, [sp] + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x48 + mov r2, #2 + mov r3, #0x13 + bl MOD83_02238A38 + ldr r1, _0222F03C ; =0x0000317C + add r2, r5, #0 + str r0, [r4, r1] + mov r0, #1 + mov r1, #3 + mov r3, #0xd + bl MOD83_0223886C + b _0222F02C +_0222EF44: + mov r0, #0x53 + mov r1, #7 + lsl r0, r0, #2 + str r1, [r4, r0] + mov r0, #1 + mov r1, #4 + add r2, r5, #0 + mov r3, #0xd + bl MOD83_0223886C + b _0222F02C +_0222EF5A: + ldr r0, _0222F03C ; =0x0000317C + ldr r0, [r4, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0222F02C + ldr r0, _0222F040 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r1, r0 + beq _0222F02C + bl MOD83_02238860 + mov r0, #0 + mov r1, #0xc + add r2, r5, #0 + mov r3, #0xd + bl MOD83_0223886C + b _0222F02C +_0222EF86: + bl MOD83_0222F210 + mov r1, #0x15 + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r0, [r4, r1] + cmp r0, #5 + bne _0222EFAA + mov r0, #1 + bl MOD83_02238860 + mov r0, #0 + mov r1, #0xc + add r2, r5, #0 + mov r3, #0xd + bl MOD83_0223886C + b _0222F02C +_0222EFAA: + cmp r0, #4 + bne _0222F02C + mov r0, #1 + bl MOD83_02238860 + mov r0, #0 + mov r1, #0xc + add r2, r5, #0 + mov r3, #0xd + bl MOD83_0223886C + b _0222F02C +_0222EFC2: + bl MOD83_0222EA88 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E74C + mov r0, #2 + mov r1, #0 + bl FUN_0201E74C + mov r1, #0xc6 + lsl r1, r1, #6 + ldr r0, [r4, #4] + add r1, r4, r1 + mov r2, #0x55 + bl MOD83_02233168 + mov r0, #1 + mov r1, #6 + add r2, r5, #0 + mov r3, #0xd + bl MOD83_0223886C + ldr r1, _0222F044 ; =0x000032D2 + mov r0, #4 + ldrb r2, [r4, r1] + bic r2, r0 + strb r2, [r4, r1] + b _0222F02C +_0222EFFC: + ldr r0, _0222F040 ; =0x021C48B8 + ldr r0, [r0, #0x48] + cmp r0, #0 + beq _0222F02C + mov r0, #0 + mov r1, #0xb + add r2, r5, #0 + mov r3, #0xd + bl MOD83_0223886C + b _0222F02C +_0222F012: + mov r0, #0 + bl OS_ResetSystem + b _0222F02C +_0222F01A: + add r0, r6, #0 + bl MOD83_0222ED88 + add sp, #4 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_0222F026: + add r0, r5, #0 + bl MOD83_022388CC +_0222F02C: + bl MOD83_02238D58 + mov r0, #0 + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_0222F038: .word 0x00003174 +_0222F03C: .word 0x0000317C +_0222F040: .word 0x021C48B8 +_0222F044: .word 0x000032D2 + thumb_func_end MOD83_0222EE8C + + thumb_func_start MOD83_0222F048 +MOD83_0222F048: ; 0x0222F048 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x5b + bl FUN_020168D0 + ldr r0, _0222F06C ; =SDK_OVERLAY_MODULE_63_ID + ldr r1, _0222F070 ; =0x021DBAB8 + bl FUN_02000E7C + add r0, r4, #0 + bl FUN_0200627C + mov r0, #0x55 + bl FUN_020168D0 + mov r0, #1 + pop {r4, pc} + nop +_0222F06C: .word SDK_OVERLAY_MODULE_63_ID +_0222F070: .word 0x021DBAB8 + thumb_func_end MOD83_0222F048 + + thumb_func_start MOD83_0222F074 +MOD83_0222F074: ; 0x0222F074 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r0, #0 + mov r0, #0xc6 + lsl r0, r0, #6 + add r4, r5, r0 + mov r2, #0xd6 + add r0, r4, #0 + mov r1, #0 + lsl r2, r2, #2 + bl MI_CpuFill8 + ldr r2, _0222F1A0 ; =0x00000172 + ldr r3, [r5] + mov r0, #1 + mov r1, #0x1a + bl FUN_0200A86C + add r6, r0, #0 + ldr r0, [r5] + bl FUN_0200AA80 + mov r1, #0xc6 + mov r2, #7 + lsl r1, r1, #6 + strh r2, [r5, r1] + ldr r3, [r5] + add r1, r6, #0 + mov r2, #0x4c + str r0, [sp] + bl FUN_0200A9C4 + mov r1, #0x41 + lsl r1, r1, #2 + add r7, r0, #0 + add r1, r4, r1 + mov r2, #0x24 + bl FUN_02021EF0 + add r0, r7, #0 + bl FUN_02021A20 + mov r0, #0xc + bl MOD83_02238EF4 + add r7, r0, #0 + mov r0, #0xa + bl MOD83_02238EF4 + str r0, [sp, #4] + mov r0, #0xb + bl MOD83_02238EF4 + ldr r1, [sp, #4] + mov r2, #1 + orr r0, r1 + add r1, r7, #0 + orr r1, r0 + mov r0, #0x53 + lsl r0, r0, #2 + str r1, [r4, r0] + add r1, r0, #4 + strh r2, [r4, r1] + add r1, r0, #6 + ldrb r2, [r4, r1] + mov r1, #1 + bic r2, r1 + add r1, r0, #6 + strb r2, [r4, r1] + ldrb r2, [r4, r1] + mov r1, #2 + bic r2, r1 + add r1, r0, #6 + strb r2, [r4, r1] + ldrb r2, [r4, r1] + mov r1, #4 + orr r2, r1 + add r1, r0, #6 + strb r2, [r4, r1] + ldrb r2, [r4, r1] + mov r1, #8 + orr r2, r1 + add r1, r0, #6 + strb r2, [r4, r1] + ldrb r2, [r4, r1] + mov r1, #0x20 + add r0, r0, #6 + bic r2, r1 + strb r2, [r4, r0] + ldr r0, [sp] + ldr r3, [r5] + add r1, r6, #0 + mov r2, #0x4b + bl FUN_0200A9C4 + add r7, r0, #0 + mov r1, #0x55 + lsl r1, r1, #2 + add r1, r4, r1 + mov r2, #0xfa + bl FUN_02021EF0 + add r0, r7, #0 + bl FUN_02021A20 + mov r0, #0xd2 + lsl r0, r0, #2 + mov r1, #0 + ldr r3, _0222F1A4 ; =0x000001EA + strb r1, [r4, r0] + add r2, r0, #2 + strh r3, [r4, r2] + add r2, r0, #4 + strh r1, [r4, r2] + add r2, r0, #6 + strh r1, [r4, r2] + add r0, #8 + strb r1, [r4, r0] + add r0, sp, #8 + bl FUN_020126B4 + add r0, sp, #8 + bl RTC_ConvertDateToDay + mov r1, #0xd5 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [sp] + bl FUN_0200AB18 + add r0, r6, #0 + bl FUN_0200A8B8 + ldr r0, _0222F1A8 ; =0x00003174 + add r1, r4, #0 + ldr r0, [r5, r0] + mov r2, #0 + bl FUN_0202AC98 + mov r0, #1 + mov r1, #0 + bl FUN_0201E74C + ldr r0, [r5, #4] + add r1, r4, #0 + bl MOD83_022391EC + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222F1A0: .word 0x00000172 +_0222F1A4: .word 0x000001EA +_0222F1A8: .word 0x00003174 + thumb_func_end MOD83_0222F074 + + thumb_func_start MOD83_0222F1AC +MOD83_0222F1AC: ; 0x0222F1AC + mov r2, #0x16 + lsl r2, r2, #4 + str r1, [r0, r2] + bx lr + thumb_func_end MOD83_0222F1AC + + thumb_func_start MOD83_0222F1B4 +MOD83_0222F1B4: ; 0x0222F1B4 + push {r3, r4, r5, lr} + add r5, r1, #0 + mov r1, #0x16 + lsl r1, r1, #4 + add r4, r3, #0 + ldr r3, [r0, r1] + sub r3, r3, #1 + str r3, [r0, r1] + ldr r0, [r0, r1] + cmp r0, #0 + bne _0222F1D6 + bl MOD83_02234518 + mov r0, #0x17 + str r0, [r5] + mov r0, #0 + pop {r3, r4, r5, pc} +_0222F1D6: + cmp r2, #0 + beq _0222F1EE + bl MOD83_022344E4 + cmp r0, #0 + bne _0222F1EE + bl MOD83_02234518 + mov r0, #0x16 + str r0, [r5] + mov r0, #0 + pop {r3, r4, r5, pc} +_0222F1EE: + cmp r4, #0 + beq _0222F206 + ldr r0, _0222F20C ; =0x021C48B8 + ldr r0, [r0, #0x48] + tst r0, r4 + beq _0222F206 + bl MOD83_02234518 + mov r0, #0x1a + str r0, [r5] + mov r0, #1 + pop {r3, r4, r5, pc} +_0222F206: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_0222F20C: .word 0x021C48B8 + thumb_func_end MOD83_0222F1B4 + + thumb_func_start MOD83_0222F210 +MOD83_0222F210: ; 0x0222F210 + push {r3, r4, r5, lr} + mov r5, #0x57 + lsl r5, r5, #2 + add r4, r0, #0 + sub r0, r5, #4 + ldr r0, [r4, r0] + cmp r0, #1 + bne _0222F236 + bl MOD83_0223438C + mov r1, #3 + sub r0, r1, r0 + bl FUN_02033EEC + bl MOD83_02234238 + mov r0, #1 + bl MOD83_022345C8 +_0222F236: + ldr r0, [r4, r5] + cmp r0, #0x1e + bls _0222F23E + b _0222F736 +_0222F23E: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0222F24A: ; jump table + .short _0222F288 - _0222F24A - 2 ; case 0 + .short _0222F29E - _0222F24A - 2 ; case 1 + .short _0222F2C4 - _0222F24A - 2 ; case 2 + .short _0222F2E6 - _0222F24A - 2 ; case 3 + .short _0222F310 - _0222F24A - 2 ; case 4 + .short _0222F736 - _0222F24A - 2 ; case 5 + .short _0222F736 - _0222F24A - 2 ; case 6 + .short _0222F342 - _0222F24A - 2 ; case 7 + .short _0222F3B8 - _0222F24A - 2 ; case 8 + .short _0222F3D6 - _0222F24A - 2 ; case 9 + .short _0222F420 - _0222F24A - 2 ; case 10 + .short _0222F45C - _0222F24A - 2 ; case 11 + .short _0222F476 - _0222F24A - 2 ; case 12 + .short _0222F4AA - _0222F24A - 2 ; case 13 + .short _0222F4EC - _0222F24A - 2 ; case 14 + .short _0222F50C - _0222F24A - 2 ; case 15 + .short _0222F524 - _0222F24A - 2 ; case 16 + .short _0222F53E - _0222F24A - 2 ; case 17 + .short _0222F594 - _0222F24A - 2 ; case 18 + .short _0222F61C - _0222F24A - 2 ; case 19 + .short _0222F664 - _0222F24A - 2 ; case 20 + .short _0222F736 - _0222F24A - 2 ; case 21 + .short _0222F698 - _0222F24A - 2 ; case 22 + .short _0222F69C - _0222F24A - 2 ; case 23 + .short _0222F736 - _0222F24A - 2 ; case 24 + .short _0222F736 - _0222F24A - 2 ; case 25 + .short _0222F704 - _0222F24A - 2 ; case 26 + .short _0222F736 - _0222F24A - 2 ; case 27 + .short _0222F6D0 - _0222F24A - 2 ; case 28 + .short _0222F35E - _0222F24A - 2 ; case 29 + .short _0222F39C - _0222F24A - 2 ; case 30 +_0222F288: + add r0, r4, #0 + bl MOD83_0222E910 + bl FUN_0202E49C + mov r0, #0x52 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r4, r0] + str r1, [r4, r5] + b _0222F736 +_0222F29E: + bl FUN_0202E4C8 + cmp r0, #0 + beq _0222F356 + mov r1, #0x5b + lsl r1, r1, #2 + ldr r0, _0222F5E0 ; =0x0223A8D4 + add r1, r4, r1 + bl MOD83_02233F94 + mov r0, #0x56 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r4, r0] + bl FUN_02033E74 + mov r0, #2 + str r0, [r4, r5] + b _0222F736 +_0222F2C4: + bl MOD83_0223427C + mov r1, #0x19 + add r0, r4, #0 + lsl r1, r1, #6 + bl MOD83_0222F1AC + add r0, r4, #0 + add r0, #0x28 + mov r1, #0xa + bl FUN_0200D858 + ldr r1, _0222F5E4 ; =0x000034D8 + str r0, [r4, r1] + mov r0, #3 + str r0, [r4, r5] + b _0222F736 +_0222F2E6: + bl MOD83_022343A4 + cmp r0, #0 + beq _0222F302 + sub r1, r0, #1 + mov r0, #0x59 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r1, _0222F5E8 ; =0x00000708 + add r0, r4, #0 + bl MOD83_0222F1AC + mov r0, #4 + str r0, [r4, r5] +_0222F302: + add r0, r4, #0 + add r1, r4, r5 + mov r2, #0 + mov r3, #2 + bl MOD83_0222F1B4 + b _0222F736 +_0222F310: + mov r0, #0x59 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD83_022342C8 + cmp r0, #0 + beq _0222F334 + mov r0, #0x59 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD83_02234304 + mov r0, #7 + str r0, [r4, r5] + mov r0, #0x16 + ldr r1, _0222F5E8 ; =0x00000708 + lsl r0, r0, #4 + str r1, [r4, r0] +_0222F334: + add r0, r4, #0 + add r1, r4, r5 + mov r2, #0 + mov r3, #2 + bl MOD83_0222F1B4 + b _0222F736 +_0222F342: + add r0, r4, #0 + add r1, r4, r5 + mov r2, #0 + mov r3, #2 + bl MOD83_0222F1B4 + bl MOD83_022344E4 + cmp r0, #0 + bne _0222F358 +_0222F356: + b _0222F736 +_0222F358: + mov r0, #0x1d + str r0, [r4, r5] + b _0222F736 +_0222F35E: + mov r0, #0x1e + str r0, [sp] + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x48 + mov r2, #2 + mov r3, #0x13 + bl MOD83_02238A38 + ldr r0, _0222F5EC ; =0x00003170 + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_020200A0 + ldr r0, _0222F5E4 ; =0x000034D8 + ldr r0, [r4, r0] + bl FUN_0200DBFC + ldr r0, _0222F5E4 ; =0x000034D8 + mov r1, #0 + str r1, [r4, r0] + ldr r0, _0222F5F0 ; =0x000005DC + bl FUN_020054C8 + mov r0, #0x16 + ldr r1, _0222F5E8 ; =0x00000708 + lsl r0, r0, #4 + str r1, [r4, r0] + mov r0, #0x1e + str r0, [r4, r5] + b _0222F736 +_0222F39C: + ldr r0, _0222F5F4 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _0222F3AA + mov r0, #8 + str r0, [r4, r5] +_0222F3AA: + add r0, r4, #0 + add r1, r4, r5 + mov r2, #1 + mov r3, #2 + bl MOD83_0222F1B4 + b _0222F736 +_0222F3B8: + bl MOD83_022343C4 + mov r0, #9 + str r0, [r4, r5] + mov r0, #0x16 + ldr r1, _0222F5E8 ; =0x00000708 + lsl r0, r0, #4 + str r1, [r4, r0] + add r0, r4, #0 + add r1, r4, r5 + mov r2, #1 + mov r3, #2 + bl MOD83_0222F1B4 + b _0222F736 +_0222F3D6: + bl MOD83_02234450 + cmp r0, #0 + beq _0222F412 + bl MOD83_022343F8 + mov r0, #0xa + str r0, [r4, r5] + mov r1, #0x32 + mov r0, #0x16 + lsl r1, r1, #6 + lsl r0, r0, #4 + str r1, [r4, r0] + mov r0, #0x22 + str r0, [sp] + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x48 + mov r2, #2 + mov r3, #0x13 + bl MOD83_02238A38 + ldr r0, _0222F5F0 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _0222F5E4 ; =0x000034D8 + mov r1, #0 + str r1, [r4, r0] + mov r0, #1 + pop {r3, r4, r5, pc} +_0222F412: + add r0, r4, #0 + add r1, r4, r5 + mov r2, #1 + mov r3, #2 + bl MOD83_0222F1B4 + b _0222F736 +_0222F420: + bl MOD83_02234450 + cmp r0, #0 + beq _0222F44E + mov r0, #0x47 + str r0, [sp] + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x48 + mov r2, #2 + mov r3, #0x13 + bl MOD83_02238A38 + ldr r0, _0222F5EC ; =0x00003170 + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_020200A0 + add r0, r4, #0 + bl MOD83_0222EC78 + mov r0, #0xb + str r0, [r4, r5] +_0222F44E: + add r0, r4, #0 + add r1, r4, r5 + mov r2, #1 + mov r3, #2 + bl MOD83_0222F1B4 + b _0222F736 +_0222F45C: + ldr r0, _0222F5F8 ; =0x0223AD6C + mov r1, #0x2a + mov r2, #1 + bl MOD83_02234424 + mov r0, #0xc + str r0, [r4, r5] + mov r1, #0x32 + mov r0, #0x16 + lsl r1, r1, #6 + lsl r0, r0, #4 + str r1, [r4, r0] + b _0222F736 +_0222F476: + bl MOD83_0223447C + cmp r0, #0 + beq _0222F49C + mov r0, #0xd + str r0, [r4, r5] + mov r0, #0x16 + mov r1, #0x3c + lsl r0, r0, #4 + str r1, [r4, r0] + mov r0, #0x47 + str r0, [sp] + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x48 + mov r2, #2 + mov r3, #0x13 + bl MOD83_02238A38 +_0222F49C: + add r0, r4, #0 + add r1, r4, r5 + mov r2, #1 + mov r3, #2 + bl MOD83_0222F1B4 + b _0222F736 +_0222F4AA: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222F51C + mov r0, #0x48 + str r0, [sp] + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x48 + mov r2, #2 + mov r3, #0x13 + bl MOD83_02238A38 + add r0, r4, #0 + add r0, #0x28 + mov r1, #0xa + bl FUN_0200D858 + ldr r1, _0222F5E4 ; =0x000034D8 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD83_0222F074 + ldr r0, [r4, #8] + bl MOD83_022394BC + mov r0, #0xe + str r0, [r4, r5] + b _0222F736 +_0222F4EC: + bl MOD83_022394CC + cmp r0, #1 + bne _0222F51C + mov r0, #0xf + str r0, [r4, r5] + bl OS_GetTickLo + mov r1, #0x36 + bl _s32_div_f + mov r0, #0x16 + add r1, r1, #6 + lsl r0, r0, #4 + str r1, [r4, r0] + b _0222F736 +_0222F50C: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + beq _0222F51E +_0222F51C: + b _0222F736 +_0222F51E: + mov r0, #0x10 + str r0, [r4, r5] + b _0222F736 +_0222F524: + ldr r0, _0222F5F8 ; =0x0223AD6C + mov r1, #0x2a + mov r2, #2 + bl MOD83_02234424 + mov r0, #0x11 + str r0, [r4, r5] + mov r1, #0x4b + mov r0, #0x16 + lsl r1, r1, #4 + lsl r0, r0, #4 + str r1, [r4, r0] + b _0222F736 +_0222F53E: + bl MOD83_022344A8 + cmp r0, #0 + beq _0222F55A + bl MOD83_02239544 + mov r0, #0x12 + str r0, [r4, r5] + mov r1, #0x32 + mov r0, #0x16 + lsl r1, r1, #4 + lsl r0, r0, #4 + str r1, [r4, r0] + b _0222F736 +_0222F55A: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222F57A + bl MOD83_02234518 + mov r0, #0x17 + mov r1, #0x78 + str r0, [r4, r5] + add r0, r1, #0 + add r0, #0xe8 + str r1, [r4, r0] +_0222F57A: + bl MOD83_022344E4 + cmp r0, #0 + bne _0222F62C + bl MOD83_02234518 + mov r0, #0x16 + mov r1, #0x78 + str r0, [r4, r5] + add r0, r1, #0 + add r0, #0xe8 + str r1, [r4, r0] + b _0222F736 +_0222F594: + bl MOD83_02239574 + cmp r0, #3 + bne _0222F5AE + bl MOD83_02234518 + mov r0, #0x16 + mov r1, #0x78 + str r0, [r4, r5] + add r0, r1, #0 + add r0, #0xe8 + str r1, [r4, r0] + b _0222F5FC +_0222F5AE: + bl MOD83_02239574 + cmp r0, #2 + beq _0222F5BC + bl MOD83_022394CC + b _0222F5FC +_0222F5BC: + bl MOD83_0223447C + cmp r0, #0 + bne _0222F5CC + bl MOD83_022344E4 + cmp r0, #0 + bne _0222F5FC +_0222F5CC: + mov r0, #0x13 + str r0, [r4, r5] + mov r0, #0x16 + mov r1, #1 + lsl r0, r0, #4 + str r1, [r4, r0] + bl MOD83_02234518 + b _0222F736 + nop +_0222F5E0: .word 0x0223A8D4 +_0222F5E4: .word 0x000034D8 +_0222F5E8: .word 0x00000708 +_0222F5EC: .word 0x00003170 +_0222F5F0: .word 0x000005DC +_0222F5F4: .word 0x021C48B8 +_0222F5F8: .word 0x0223AD6C +_0222F5FC: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222F61C + bl MOD83_02234518 + mov r0, #0x17 + str r0, [r4, r5] + mov r0, #0x16 + mov r1, #0xa + lsl r0, r0, #4 + str r1, [r4, r0] +_0222F61C: + mov r0, #0x16 + lsl r0, r0, #4 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + beq _0222F62E +_0222F62C: + b _0222F736 +_0222F62E: + mov r0, #0x14 + str r0, [r4, r5] + mov r0, #0x49 + str r0, [sp] + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x48 + mov r2, #2 + mov r3, #0x13 + bl MOD83_02238A38 + ldr r0, _0222F73C ; =0x00003170 + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_020200A0 + ldr r0, _0222F740 ; =0x000034D8 + ldr r0, [r4, r0] + bl FUN_0200DBFC + ldr r0, _0222F744 ; =0x000005DC + bl FUN_020054C8 + ldr r0, _0222F740 ; =0x000034D8 + mov r1, #0 + str r1, [r4, r0] + b _0222F736 +_0222F664: + bl MOD83_02234558 + cmp r0, #0 + beq _0222F736 + mov r0, #0x52 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #1 + bne _0222F686 + bl FUN_0202E4F0 + bl FUN_02033ED0 + mov r0, #0x52 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] +_0222F686: + ldr r0, _0222F748 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _0222F736 + mov r0, #0x1b + str r0, [r4, r5] + mov r0, #4 + pop {r3, r4, r5, pc} +_0222F698: + mov r0, #0x17 + str r0, [r4, r5] +_0222F69C: + mov r0, #0x4a + str r0, [sp] + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x48 + mov r2, #2 + mov r3, #0x13 + bl MOD83_02238A38 + ldr r0, _0222F73C ; =0x00003170 + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_020200A0 + ldr r0, _0222F740 ; =0x000034D8 + ldr r0, [r4, r0] + cmp r0, #0 + beq _0222F6C4 + bl FUN_0200DBFC +_0222F6C4: + ldr r0, _0222F740 ; =0x000034D8 + mov r1, #0 + str r1, [r4, r0] + mov r0, #0x1c + str r0, [r4, r5] + b _0222F736 +_0222F6D0: + bl MOD83_02234558 + cmp r0, #0 + beq _0222F736 + mov r0, #0x52 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #1 + bne _0222F6F2 + bl FUN_0202E4F0 + bl FUN_02033ED0 + mov r0, #0x52 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] +_0222F6F2: + ldr r0, _0222F748 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _0222F736 + mov r0, #0 + bl OS_ResetSystem + b _0222F736 +_0222F704: + bl MOD83_02234558 + cmp r0, #0 + beq _0222F736 + mov r0, #0x52 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #1 + bne _0222F736 + bl FUN_0202E4F0 + bl FUN_02033ED0 + mov r0, #0x52 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] + ldr r0, _0222F740 ; =0x000034D8 + ldr r0, [r4, r0] + cmp r0, #0 + beq _0222F732 + bl FUN_0200DBFC +_0222F732: + mov r0, #5 + pop {r3, r4, r5, pc} +_0222F736: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_0222F73C: .word 0x00003170 +_0222F740: .word 0x000034D8 +_0222F744: .word 0x000005DC +_0222F748: .word 0x021C48B8 + thumb_func_end MOD83_0222F210 + + thumb_func_start MOD83_0222F74C +MOD83_0222F74C: ; 0x0222F74C + push {r4, lr} + ldr r1, _0222F79C ; =0x0223B884 + add r4, r0, #0 + ldr r1, [r1] + cmp r1, #0 + bne _0222F798 + bl MOD83_0222F9F8 + mov r1, #0xf5 + mov r0, #0xf + lsl r1, r1, #2 + bl FUN_02016998 + ldr r1, _0222F79C ; =0x0223B884 + mov r2, #0xf5 + str r0, [r1] + mov r1, #0 + lsl r2, r2, #2 + bl MI_CpuFill8 + ldr r0, _0222F79C ; =0x0223B884 + mov r1, #0x32 + ldr r0, [r0] + mov r2, #0xa + strh r1, [r0, #0x24] + ldr r0, _0222F7A0 ; =MOD83_0222F89C + mov r1, #0 + bl FUN_0200CA44 + ldr r1, _0222F79C ; =0x0223B884 + ldr r2, [r1] + str r0, [r2, #0x1c] + ldr r0, [r1] + str r4, [r0] + ldr r0, [r1] + add r0, r0, #4 + bl FUN_020312BC +_0222F798: + pop {r4, pc} + nop +_0222F79C: .word 0x0223B884 +_0222F7A0: .word MOD83_0222F89C + thumb_func_end MOD83_0222F74C + + thumb_func_start MOD83_0222F7A4 +MOD83_0222F7A4: ; 0x0222F7A4 + ldr r2, _0222F7B0 ; =0x0223B884 + ldr r3, [r2] + str r0, [r3, #0x20] + ldr r0, [r2] + strh r1, [r0, #0x24] + bx lr + .align 2, 0 +_0222F7B0: .word 0x0223B884 + thumb_func_end MOD83_0222F7A4 + + thumb_func_start MOD83_0222F7B4 +MOD83_0222F7B4: ; 0x0222F7B4 + push {r4, lr} + bl FUN_02031190 + bl FUN_02030E7C + cmp r0, #0 + beq _0222F7E2 + mov r4, #0 + ldr r1, _0222F7E4 ; =0x0223B884 + ldr r0, _0222F7E8 ; =0x000003C1 + add r3, r4, #0 +_0222F7CA: + ldr r2, [r1] + add r2, r2, r4 + add r4, r4, #1 + strb r3, [r2, r0] + cmp r4, #0x10 + blt _0222F7CA + bl FUN_0202DBE0 + ldr r0, _0222F7EC ; =MOD83_0222F7F0 + mov r1, #0 + bl MOD83_0222F7A4 +_0222F7E2: + pop {r4, pc} + .align 2, 0 +_0222F7E4: .word 0x0223B884 +_0222F7E8: .word 0x000003C1 +_0222F7EC: .word MOD83_0222F7F0 + thumb_func_end MOD83_0222F7B4 + + thumb_func_start MOD83_0222F7F0 +MOD83_0222F7F0: ; 0x0222F7F0 + push {r4, r5, r6, lr} + mov r4, #0 + ldr r6, _0222F824 ; =0x0223B884 + add r5, r4, #0 +_0222F7F8: + ldr r0, [r6] + add r0, r0, r5 + ldr r0, [r0, #0x28] + cmp r0, #0 + bne _0222F81A + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #1 + bne _0222F81A + add r0, r4, #0 + bl FUN_0202DFA4 + ldr r1, [r6] + add r1, r1, r5 + str r0, [r1, #0x28] +_0222F81A: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0x10 + blt _0222F7F8 + pop {r4, r5, r6, pc} + .align 2, 0 +_0222F824: .word 0x0223B884 + thumb_func_end MOD83_0222F7F0 + + thumb_func_start MOD83_0222F828 +MOD83_0222F828: ; 0x0222F828 + push {r3, lr} + bl FUN_0202E4C8 + cmp r0, #0 + beq _0222F83A + ldr r0, _0222F83C ; =MOD83_0222F840 + mov r1, #0 + bl MOD83_0222F7A4 +_0222F83A: + pop {r3, pc} + .align 2, 0 +_0222F83C: .word MOD83_0222F840 + thumb_func_end MOD83_0222F828 + + thumb_func_start MOD83_0222F840 +MOD83_0222F840: ; 0x0222F840 + bx lr + .align 2, 0 + thumb_func_end MOD83_0222F840 + + thumb_func_start MOD83_0222F844 +MOD83_0222F844: ; 0x0222F844 + push {r3, lr} + ldr r0, _0222F85C ; =0x0223B884 + ldr r0, [r0] + add r0, #0x27 + ldrb r0, [r0] + bl FUN_020319D8 + ldr r0, _0222F860 ; =MOD83_0222F864 + mov r1, #0 + bl MOD83_0222F7A4 + pop {r3, pc} + .align 2, 0 +_0222F85C: .word 0x0223B884 +_0222F860: .word MOD83_0222F864 + thumb_func_end MOD83_0222F844 + + thumb_func_start MOD83_0222F864 +MOD83_0222F864: ; 0x0222F864 + push {r3, lr} + bl FUN_02031A2C + cmp r0, #0 + beq _0222F88C + ldr r0, _0222F890 ; =0x0223B884 + mov r2, #0 + ldr r1, [r0] + mov r0, #0xf + lsl r0, r0, #6 + strb r2, [r1, r0] + bl FUN_0202DBE0 + mov r0, #0xab + bl FUN_02031588 + ldr r0, _0222F894 ; =MOD83_0222F898 + mov r1, #0 + bl MOD83_0222F7A4 +_0222F88C: + pop {r3, pc} + nop +_0222F890: .word 0x0223B884 +_0222F894: .word MOD83_0222F898 + thumb_func_end MOD83_0222F864 + + thumb_func_start MOD83_0222F898 +MOD83_0222F898: ; 0x0222F898 + bx lr + .align 2, 0 + thumb_func_end MOD83_0222F898 + + thumb_func_start MOD83_0222F89C +MOD83_0222F89C: ; 0x0222F89C + push {r3, lr} + ldr r1, _0222F8C0 ; =0x0223B884 + ldr r2, [r1] + cmp r2, #0 + bne _0222F8AC + bl FUN_0200CAB4 + pop {r3, pc} +_0222F8AC: + ldr r1, [r2, #0x20] + cmp r1, #0 + beq _0222F8BC + add r2, #0x26 + ldrb r0, [r2] + cmp r0, #0 + bne _0222F8BC + blx r1 +_0222F8BC: + pop {r3, pc} + nop +_0222F8C0: .word 0x0223B884 + thumb_func_end MOD83_0222F89C + + thumb_func_start MOD83_0222F8C4 +MOD83_0222F8C4: ; 0x0222F8C4 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + bl FUN_02030F40 + cmp r0, #0 + bne _0222F8EA + add r0, r4, #0 + add r1, r6, #0 + bl FUN_02031C74 + add r0, r5, #0 + bl MOD83_0222F74C + ldr r0, _0222F8EC ; =MOD83_0222F7B4 + mov r1, #0 + bl MOD83_0222F7A4 +_0222F8EA: + pop {r4, r5, r6, pc} + .align 2, 0 +_0222F8EC: .word MOD83_0222F7B4 + thumb_func_end MOD83_0222F8C4 + + thumb_func_start MOD83_0222F8F0 +MOD83_0222F8F0: ; 0x0222F8F0 + add r3, r0, #0 + add r2, r1, #0 + add r1, r3, #0 + ldr r3, _0222F8FC ; =FUN_02030B3C + mov r0, #0x16 + bx r3 + .align 2, 0 +_0222F8FC: .word FUN_02030B3C + thumb_func_end MOD83_0222F8F0 + + thumb_func_start MOD83_0222F900 +MOD83_0222F900: ; 0x0222F900 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02030F40 + cmp r0, #0 + bne _0222F92C + bl MOD83_02231364 + bl FUN_0200628C + ldr r0, [r0, #8] + add r1, r4, #0 + bl FUN_02031CA8 + add r0, r5, #0 + bl MOD83_0222F74C + ldr r0, _0222F930 ; =MOD83_0222F828 + mov r1, #0 + bl MOD83_0222F7A4 +_0222F92C: + pop {r3, r4, r5, pc} + nop +_0222F930: .word MOD83_0222F828 + thumb_func_end MOD83_0222F900 + + thumb_func_start MOD83_0222F934 +MOD83_0222F934: ; 0x0222F934 + ldr r1, _0222F944 ; =0x0223B884 + ldr r3, _0222F948 ; =MOD83_0222F7A4 + ldr r1, [r1] + add r1, #0x27 + strb r0, [r1] + ldr r0, _0222F94C ; =MOD83_0222F844 + mov r1, #0 + bx r3 + .align 2, 0 +_0222F944: .word 0x0223B884 +_0222F948: .word MOD83_0222F7A4 +_0222F94C: .word MOD83_0222F844 + thumb_func_end MOD83_0222F934 + + thumb_func_start MOD83_0222F950 +MOD83_0222F950: ; 0x0222F950 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_0222F956: + add r0, r4, #0 + bl FUN_0202F124 + add r1, r0, #0 + beq _0222F976 + add r0, #0x4c + ldrh r0, [r0] + cmp r0, #0 + beq _0222F976 + add r5, #0x8c + add r0, r5, #0 + mov r2, #0x50 + bl memcpy + add r0, r4, #0 + pop {r3, r4, r5, pc} +_0222F976: + add r4, r4, #1 + cmp r4, #0x10 + blt _0222F956 + mov r0, #0 + mvn r0, r0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD83_0222F950 + + thumb_func_start MOD83_0222F984 +MOD83_0222F984: ; 0x0222F984 + ldr r1, _0222F99C ; =0x0223B884 + ldr r2, [r1] + add r1, r2, #0 + add r1, #0x27 + ldrb r1, [r1] + cmp r1, r0 + bne _0222F99A + mov r0, #0xf + mov r1, #1 + lsl r0, r0, #6 + strb r1, [r2, r0] +_0222F99A: + bx lr + .align 2, 0 +_0222F99C: .word 0x0223B884 + thumb_func_end MOD83_0222F984 + + thumb_func_start MOD83_0222F9A0 +MOD83_0222F9A0: ; 0x0222F9A0 + ldr r0, _0222F9AC ; =0x0223B884 + ldr r1, [r0] + mov r0, #0xf + lsl r0, r0, #6 + ldrb r0, [r1, r0] + bx lr + .align 2, 0 +_0222F9AC: .word 0x0223B884 + thumb_func_end MOD83_0222F9A0 + + thumb_func_start MOD83_0222F9B0 +MOD83_0222F9B0: ; 0x0222F9B0 + mov r0, #0xd6 + lsl r0, r0, #2 + bx lr + .align 2, 0 + thumb_func_end MOD83_0222F9B0 + + thumb_func_start MOD83_0222F9B8 +MOD83_0222F9B8: ; 0x0222F9B8 + ldr r0, _0222F9C0 ; =0x0223B884 + ldr r0, [r0] + add r0, #0x68 + bx lr + .align 2, 0 +_0222F9C0: .word 0x0223B884 + thumb_func_end MOD83_0222F9B8 + + thumb_func_start MOD83_0222F9C4 +MOD83_0222F9C4: ; 0x0222F9C4 + ldr r1, _0222F9D4 ; =0x0223B884 + mov r2, #1 + ldr r1, [r1] + add r1, r1, r0 + ldr r0, _0222F9D8 ; =0x000003C1 + strb r2, [r1, r0] + bx lr + nop +_0222F9D4: .word 0x0223B884 +_0222F9D8: .word 0x000003C1 + thumb_func_end MOD83_0222F9C4 + + thumb_func_start MOD83_0222F9DC +MOD83_0222F9DC: ; 0x0222F9DC + push {r3, lr} + ldr r1, _0222F9F4 ; =0x0223B884 + mov r0, #0xf + ldr r1, [r1] + bl FUN_02016A8C + ldr r0, _0222F9F4 ; =0x0223B884 + mov r1, #0 + str r1, [r0] + bl FUN_02031A08 + pop {r3, pc} + .align 2, 0 +_0222F9F4: .word 0x0223B884 + thumb_func_end MOD83_0222F9DC + + thumb_func_start MOD83_0222F9F8 +MOD83_0222F9F8: ; 0x0222F9F8 + ldr r3, _0222FA04 ; =FUN_0202D8D0 + add r2, r0, #0 + ldr r0, _0222FA08 ; =0x0223A3F0 + mov r1, #2 + bx r3 + nop +_0222FA04: .word FUN_0202D8D0 +_0222FA08: .word 0x0223A3F0 + thumb_func_end MOD83_0222F9F8 + + thumb_func_start MOD83_0222FA0C +MOD83_0222FA0C: ; 0x0222FA0C + push {r4, lr} + add r4, r0, #0 + cmp r1, #1 + ldr r0, _0222FA40 ; =0x00002994 + bne _0222FA2C + ldr r0, [r4, r0] + cmp r0, #0 + bne _0222FA3C + add r0, r4, #0 + add r0, #0x18 + mov r1, #1 + bl FUN_0200D858 + ldr r1, _0222FA40 ; =0x00002994 + str r0, [r4, r1] + pop {r4, pc} +_0222FA2C: + ldr r0, [r4, r0] + cmp r0, #0 + beq _0222FA36 + bl FUN_0200DBFC +_0222FA36: + ldr r0, _0222FA40 ; =0x00002994 + mov r1, #0 + str r1, [r4, r0] +_0222FA3C: + pop {r4, pc} + nop +_0222FA40: .word 0x00002994 + thumb_func_end MOD83_0222FA0C + + thumb_func_start MOD83_0222FA44 +MOD83_0222FA44: ; 0x0222FA44 + ldr r3, _0222FA48 ; =MOD83_0222FA0C + bx r3 + .align 2, 0 +_0222FA48: .word MOD83_0222FA0C + thumb_func_end MOD83_0222FA44 + + thumb_func_start MOD83_0222FA4C +MOD83_0222FA4C: ; 0x0222FA4C + push {r3, r4, r5, r6, r7, lr} + bl FUN_02006278 + add r7, r0, #0 + bl MOD83_02238E48 + ldr r0, [r7, #0x7c] + cmp r0, #0 + beq _0222FA62 + bl FUN_02012870 +_0222FA62: + ldr r0, [r7, #0x78] + cmp r0, #0 + beq _0222FA70 + mov r1, #0 + add r2, r1, #0 + bl FUN_02001300 +_0222FA70: + add r0, r7, #0 + add r0, #0x18 + bl FUN_02019570 + add r0, r7, #0 + add r0, #0x18 + bl FUN_02019178 + add r0, r7, #0 + add r0, #0x58 + bl FUN_02019048 + cmp r0, #0 + beq _0222FA9C + add r0, r7, #0 + add r0, #0x58 + bl FUN_02019570 + add r0, r7, #0 + add r0, #0x58 + bl FUN_02019178 +_0222FA9C: + add r5, r7, #0 + mov r6, #0 + add r4, r7, #0 + add r5, #0x28 +_0222FAA4: + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _0222FAB6 + add r0, r5, #0 + bl FUN_02019570 + add r0, r5, #0 + bl FUN_02019178 +_0222FAB6: + add r6, r6, #1 + add r4, #0x10 + add r5, #0x10 + cmp r6, #3 + blt _0222FAA4 + ldr r0, [r7] + mov r1, #0 + bl FUN_020178A0 + ldr r0, [r7] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r7] + mov r1, #4 + bl FUN_020178A0 + ldr r0, [r7] + mov r1, #5 + bl FUN_020178A0 + ldr r0, [r7] + bl FUN_02016A18 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD83_0222FA4C + + thumb_func_start MOD83_0222FAE8 +MOD83_0222FAE8: ; 0x0222FAE8 + push {r3, lr} + sub sp, #8 + bl MOD83_02238AFC + bl MOD83_02238B4C + mov r0, #8 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0xa + mov r2, #7 + mov r3, #9 + bl MOD83_02238BC4 + add sp, #8 + pop {r3, pc} + thumb_func_end MOD83_0222FAE8 + + thumb_func_start MOD83_0222FB0C +MOD83_0222FB0C: ; 0x0222FB0C + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r1, r0 + beq _0222FB32 + str r1, [sp] + ldr r1, _0222FB40 ; =0x000005C4 + mov r0, #0 + ldr r1, [r4, r1] + mov r2, #0x80 + mov r3, #0x64 + bl MOD83_02238DBC + ldr r1, _0222FB40 ; =0x000005C4 + add sp, #4 + str r0, [r4, r1] + pop {r3, r4, pc} +_0222FB32: + ldr r0, _0222FB40 ; =0x000005C4 + mov r1, #0 + ldr r0, [r4, r0] + bl FUN_020200A0 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_0222FB40: .word 0x000005C4 + thumb_func_end MOD83_0222FB0C + + thumb_func_start MOD83_0222FB44 +MOD83_0222FB44: ; 0x0222FB44 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02019048 + cmp r0, #1 + bne _0222FB5A + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0200CCF8 +_0222FB5A: + pop {r3, r4, r5, pc} + thumb_func_end MOD83_0222FB44 + + thumb_func_start MOD83_0222FB5C +MOD83_0222FB5C: ; 0x0222FB5C + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, _0222FBB0 ; =0x000015D4 + ldr r0, [r4, r0] + cmp r0, #2 + beq _0222FB7A + add r1, r4, #0 + add r0, r5, #0 + add r1, #0x18 + mov r2, #3 + bl MOD83_0223050C +_0222FB7A: + add r0, r4, #0 + add r0, #0x48 + mov r1, #0 + bl MOD83_0222FB44 + ldr r0, _0222FBB0 ; =0x000015D4 + ldr r0, [r4, r0] + cmp r0, #2 + beq _0222FBAA + add r0, r4, #0 + mov r1, #0xf + bl MOD83_0222F900 + ldr r1, _0222FBB4 ; =0x00001C20 + ldr r0, _0222FBB8 ; =0x00000434 + str r1, [r4, r0] + bl FUN_02033E74 + add r0, r4, #0 + mov r1, #1 + bl MOD83_0222FA0C + mov r0, #7 + pop {r3, r4, r5, pc} +_0222FBAA: + mov r0, #0x13 + pop {r3, r4, r5, pc} + nop +_0222FBB0: .word 0x000015D4 +_0222FBB4: .word 0x00001C20 +_0222FBB8: .word 0x00000434 + thumb_func_end MOD83_0222FB5C + + thumb_func_start MOD83_0222FBBC +MOD83_0222FBBC: ; 0x0222FBBC + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, #0x80 + ldr r1, [r0] + cmp r1, #1 + bne _0222FBD2 + mov r0, #0x30 + pop {r3, r4, r5, pc} +_0222FBD2: + sub r0, r1, #2 + cmp r0, #2 + bhi _0222FBDC + mov r0, #0x30 + pop {r3, r4, r5, pc} +_0222FBDC: + cmp r1, #5 + bne _0222FBE4 + mov r0, #0x30 + pop {r3, r4, r5, pc} +_0222FBE4: + ldr r0, _0222FC38 ; =0x000015D4 + ldr r0, [r4, r0] + cmp r0, #1 + bne _0222FBF4 + ldr r0, _0222FC3C ; =0x00000438 + ldr r0, [r4, r0] + bl MOD83_0222F934 +_0222FBF4: + add r1, r4, #0 + add r0, r5, #0 + add r1, #0x18 + mov r2, #6 + bl MOD83_0223050C + add r0, r4, #0 + add r0, #0x48 + mov r1, #0 + bl MOD83_0222FB44 + ldr r0, _0222FC38 ; =0x000015D4 + ldr r0, [r4, r0] + cmp r0, #1 + bne _0222FC22 + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FB0C + add r0, r4, #0 + mov r1, #1 + bl MOD83_0222FA0C +_0222FC22: + ldr r0, _0222FC38 ; =0x000015D4 + ldr r0, [r4, r0] + cmp r0, #1 + bne _0222FC34 + mov r0, #0xab + bl FUN_02031588 + mov r0, #9 + pop {r3, r4, r5, pc} +_0222FC34: + mov r0, #0x15 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222FC38: .word 0x000015D4 +_0222FC3C: .word 0x00000438 + thumb_func_end MOD83_0222FBBC + + thumb_func_start MOD83_0222FC40 +MOD83_0222FC40: ; 0x0222FC40 + push {r3, r4, r5, r6, r7, lr} + bl FUN_02006278 + add r4, r0, #0 + ldr r0, _0222FCA4 ; =0x000015D4 + add r5, r4, #0 + add r6, r4, #0 + ldr r0, [r4, r0] + add r5, #0xdc + add r6, #0x8c + cmp r0, #1 + beq _0222FC5E + cmp r0, #3 + beq _0222FC84 + b _0222FC9E +_0222FC5E: + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + bl MOD83_0222F9B8 + mov r2, #0xd6 + add r1, r0, #0 + add r0, r5, #0 + lsl r2, r2, #2 + bl memcpy + add r0, r4, #0 + add r4, #0xdc + add r0, #0x8c + add r1, r4, #0 + mov r2, #0x56 + bl MOD83_02239374 + b _0222FC9E +_0222FC84: + ldr r7, _0222FCA8 ; =0x000005D4 + mov r2, #0xd6 + add r1, r4, r7 + add r0, r5, #0 + add r1, #0x50 + lsl r2, r2, #2 + bl memcpy + add r0, r6, #0 + add r1, r4, r7 + mov r2, #0x50 + bl memcpy +_0222FC9E: + add r0, r5, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_0222FCA4: .word 0x000015D4 +_0222FCA8: .word 0x000005D4 + thumb_func_end MOD83_0222FC40 + + thumb_func_start MOD83_0222FCAC +MOD83_0222FCAC: ; 0x0222FCAC + push {r4, lr} + add r4, r0, #0 + ldr r0, _0222FCD8 ; =0x00002990 + ldr r1, [r4, r0] + cmp r1, #1 + bne _0222FCBE + mov r1, #0 + sub r0, r0, #4 + str r1, [r4, r0] +_0222FCBE: + bl MOD83_022394CC + sub r0, r0, #2 + cmp r0, #1 + bhi _0222FCD4 + ldr r0, _0222FCDC ; =0x0000061B + bl FUN_020054C8 + ldr r0, _0222FCE0 ; =0x0000298C + mov r1, #0 + str r1, [r4, r0] +_0222FCD4: + pop {r4, pc} + nop +_0222FCD8: .word 0x00002990 +_0222FCDC: .word 0x0000061B +_0222FCE0: .word 0x0000298C + thumb_func_end MOD83_0222FCAC + + thumb_func_start MOD83_0222FCE4 +MOD83_0222FCE4: ; 0x0222FCE4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r7, r0, #0 + bl FUN_02006278 + add r6, r0, #0 + add r4, r6, #0 + add r5, r6, #0 + add r0, r7, #0 + add r4, #0x8c + add r5, #0xdc + bl FUN_0200628C + ldr r0, [r0, #8] + str r0, [sp] + add r0, r4, #0 + add r0, #0x4e + ldrb r0, [r0] + lsl r0, r0, #0x1d + lsr r0, r0, #0x1f + bne _0222FD12 + mov r7, #0 + b _0222FD3E +_0222FD12: + mov r1, #0x35 + add r2, r4, #0 + mov r0, #0 + lsl r1, r1, #4 + strb r0, [r5, r1] + add r2, #0x4e + ldrb r2, [r2] + mov r7, #1 + lsl r2, r2, #0x1b + lsr r2, r2, #0x1f + bne _0222FD2C + sub r1, #8 + strb r0, [r5, r1] +_0222FD2C: + add r0, sp, #8 + bl FUN_020126B4 + add r0, sp, #8 + bl RTC_ConvertDateToDay + mov r1, #0xd5 + lsl r1, r1, #2 + str r0, [r5, r1] +_0222FD3E: + ldr r0, [sp] + bl FUN_0202251C + add r4, #0x4c + ldrh r1, [r4] + str r0, [sp, #4] + bl FUN_0202AF24 + cmp r7, #0 + bne _0222FD5E + ldr r0, [sp, #4] + add r1, r5, #0 + mov r2, #0 + bl FUN_0202AC98 + b _0222FD66 +_0222FD5E: + ldr r0, [sp, #4] + add r1, r5, #0 + bl FUN_0202AD08 +_0222FD66: + ldr r0, [sp] + bl MOD83_022394BC + ldr r0, _0222FD7C ; =0x00002990 + mov r1, #0 + str r1, [r6, r0] + ldr r1, _0222FD80 ; =MOD83_0222FCAC + sub r0, r0, #4 + str r1, [r6, r0] + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0222FD7C: .word 0x00002990 +_0222FD80: .word MOD83_0222FCAC + thumb_func_end MOD83_0222FCE4 + + thumb_func_start MOD83_0222FD84 +MOD83_0222FD84: ; 0x0222FD84 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r6, r0, #0 + add r4, r1, #0 + bl FUN_02006278 + cmp r4, #0 + bne _0222FD98 + mov r5, #4 + b _0222FD9C +_0222FD98: + mov r5, #0 + mvn r5, r5 +_0222FD9C: + ldr r1, [r0, #0x48] + add r4, r0, #0 + add r4, #0x48 + cmp r1, #0 + bne _0222FDC6 + mov r1, #0xa + str r1, [sp] + mov r1, #6 + str r1, [sp, #4] + mov r1, #4 + str r1, [sp, #8] + mov r2, #0 + mov r1, #0x6b + str r2, [sp, #0xc] + lsl r1, r1, #2 + str r1, [sp, #0x10] + ldr r0, [r0] + add r1, r4, #0 + mov r3, #0x17 + bl FUN_02019064 +_0222FDC6: + add r0, r4, #0 + mov r1, #1 + mov r2, #0x1f + mov r3, #3 + bl FUN_0200CCA4 + ldr r1, _0222FDE4 ; =0x0223ADD8 + add r0, r6, #0 + mov r2, #2 + add r3, r4, #0 + str r5, [sp] + bl MOD83_022303B0 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222FDE4: .word 0x0223ADD8 + thumb_func_end MOD83_0222FD84 + + thumb_func_start MOD83_0222FDE8 +MOD83_0222FDE8: ; 0x0222FDE8 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, #0x48 + mov r1, #0 + bl MOD83_0222FB44 + add r0, r4, #0 + add r0, #0x58 + mov r1, #0 + bl MOD83_0222FB44 + ldr r0, _0222FE20 ; =0x000015D4 + ldr r0, [r4, r0] + cmp r0, #1 + bne _0222FE14 + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C +_0222FE14: + bl FUN_02033ED0 + add r0, r5, #0 + bl MOD83_02230118 + pop {r3, r4, r5, pc} + .align 2, 0 +_0222FE20: .word 0x000015D4 + thumb_func_end MOD83_0222FDE8 + + thumb_func_start MOD83_0222FE24 +MOD83_0222FE24: ; 0x0222FE24 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r6, r0, #0 + bl FUN_02006278 + add r5, r0, #0 + bl MOD83_02238700 + cmp r0, #0 + beq _0222FE3C + mov r1, #2 + b _0222FE3E +_0222FE3C: + mov r1, #1 +_0222FE3E: + ldr r0, _0222FE98 ; =0x000015D4 + str r1, [r5, r0] + add r0, r5, #0 + add r0, #0x38 + mov r1, #0 + bl MOD83_0222FB44 + add r4, r5, #0 + ldr r0, [r5, #0x48] + add r4, #0x48 + cmp r0, #0 + bne _0222FE76 + mov r0, #0xa + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r2, #0 + mov r0, #0x6b + str r2, [sp, #0xc] + lsl r0, r0, #2 + str r0, [sp, #0x10] + ldr r0, [r5] + add r1, r4, #0 + mov r3, #0x17 + bl FUN_02019064 +_0222FE76: + add r0, r4, #0 + mov r1, #1 + mov r2, #0x1f + mov r3, #3 + bl FUN_0200CCA4 + mov r2, #2 + ldr r1, _0222FE9C ; =0x0223ADC8 + add r0, r6, #0 + add r3, r4, #0 + str r2, [sp] + bl MOD83_022303B0 + mov r0, #5 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + nop +_0222FE98: .word 0x000015D4 +_0222FE9C: .word 0x0223ADC8 + thumb_func_end MOD83_0222FE24 + + thumb_func_start MOD83_0222FEA0 +MOD83_0222FEA0: ; 0x0222FEA0 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r6, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, _0222FF08 ; =0x000015D4 + mov r1, #4 + str r1, [r4, r0] + add r0, r4, #0 + add r0, #0x38 + mov r1, #0 + bl MOD83_0222FB44 + add r5, r4, #0 + ldr r0, [r4, #0x48] + add r5, #0x48 + cmp r0, #0 + bne _0222FEE6 + mov r0, #0xa + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r2, #0 + mov r0, #0x6b + str r2, [sp, #0xc] + lsl r0, r0, #2 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, r5, #0 + mov r3, #0x17 + bl FUN_02019064 +_0222FEE6: + add r0, r5, #0 + mov r1, #1 + mov r2, #0x1f + mov r3, #3 + bl FUN_0200CCA4 + mov r0, #0x4e + str r0, [sp] + ldr r1, _0222FF0C ; =0x0223AD98 + add r0, r6, #0 + mov r2, #2 + add r3, r5, #0 + bl MOD83_022303B0 + mov r0, #5 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222FF08: .word 0x000015D4 +_0222FF0C: .word 0x0223AD98 + thumb_func_end MOD83_0222FEA0 + + thumb_func_start MOD83_0222FF10 +MOD83_0222FF10: ; 0x0222FF10 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r6, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, _0222FF78 ; =0x000015D4 + mov r1, #3 + str r1, [r4, r0] + add r0, r4, #0 + add r0, #0x38 + mov r1, #0 + bl MOD83_0222FB44 + add r5, r4, #0 + ldr r0, [r4, #0x48] + add r5, #0x48 + cmp r0, #0 + bne _0222FF56 + mov r0, #0xa + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r2, #0 + mov r0, #0x6b + str r2, [sp, #0xc] + lsl r0, r0, #2 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, r5, #0 + mov r3, #0x17 + bl FUN_02019064 +_0222FF56: + add r0, r5, #0 + mov r1, #1 + mov r2, #0x1f + mov r3, #3 + bl FUN_0200CCA4 + mov r0, #0x4d + str r0, [sp] + ldr r1, _0222FF7C ; =0x0223ADA8 + add r0, r6, #0 + mov r2, #2 + add r3, r5, #0 + bl MOD83_022303B0 + mov r0, #5 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_0222FF78: .word 0x000015D4 +_0222FF7C: .word 0x0223ADA8 + thumb_func_end MOD83_0222FF10 + + thumb_func_start MOD83_0222FF80 +MOD83_0222FF80: ; 0x0222FF80 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r1, [r0, #0x48] + add r4, #0x48 + cmp r1, #0 + bne _0222FFB4 + mov r1, #0xa + str r1, [sp] + mov r1, #6 + str r1, [sp, #4] + mov r1, #4 + str r1, [sp, #8] + mov r2, #0 + mov r1, #0x6b + str r2, [sp, #0xc] + lsl r1, r1, #2 + str r1, [sp, #0x10] + ldr r0, [r0] + add r1, r4, #0 + mov r3, #0x17 + bl FUN_02019064 +_0222FFB4: + add r0, r4, #0 + mov r1, #1 + mov r2, #0x1f + mov r3, #3 + bl FUN_0200CCA4 + mov r0, #4 + str r0, [sp] + ldr r1, _0222FFD4 ; =0x0223ADB8 + add r0, r5, #0 + mov r2, #2 + add r3, r4, #0 + bl MOD83_022303B0 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 +_0222FFD4: .word 0x0223ADB8 + thumb_func_end MOD83_0222FF80 + + thumb_func_start MOD83_0222FFD8 +MOD83_0222FFD8: ; 0x0222FFD8 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, #0x48 + mov r1, #0 + bl MOD83_0222FB44 + add r0, r4, #0 + add r0, #0x58 + mov r1, #0 + bl MOD83_0222FB44 + bl FUN_02033ED0 + ldr r0, _0223000C ; =0x000015D4 + ldr r0, [r4, r0] + cmp r0, #1 + bne _02230004 + bl MOD83_0222F9DC +_02230004: + add r0, r5, #0 + bl MOD83_02230118 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223000C: .word 0x000015D4 + thumb_func_end MOD83_0222FFD8 + + thumb_func_start MOD83_02230010 +MOD83_02230010: ; 0x02230010 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r1, r4, #0 + add r0, r5, #0 + add r1, #0x18 + mov r2, #3 + bl MOD83_0223050C + add r0, r4, #0 + add r0, #0x48 + mov r1, #0 + bl MOD83_0222FB44 + add r0, r4, #0 + mov r1, #1 + bl MOD83_0222FA0C + ldr r0, _02230044 ; =0x0223B888 + mov r1, #0x24 + str r1, [r0, #0x10] + mov r0, #0x20 + pop {r3, r4, r5, pc} + nop +_02230044: .word 0x0223B888 + thumb_func_end MOD83_02230010 + + thumb_func_start MOD83_02230048 +MOD83_02230048: ; 0x02230048 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r0, #0x80 + ldr r0, [r0] + sub r0, r0, #2 + cmp r0, #2 + bhi _02230060 + mov r0, #0x30 + pop {r3, r4, r5, pc} +_02230060: + add r0, r4, #0 + add r0, #0x48 + mov r1, #0 + bl MOD83_0222FB44 + add r0, r4, #0 + mov r1, #1 + bl MOD83_0222FB0C + add r4, #0x18 + add r0, r5, #0 + add r1, r4, #0 + mov r2, #7 + bl MOD83_0223050C + mov r0, #0x21 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD83_02230048 + + thumb_func_start MOD83_02230084 +MOD83_02230084: ; 0x02230084 + push {r3, lr} + ldr r0, _022300A8 ; =0x0223B888 + ldr r0, [r0, #0x10] + cmp r0, #0x27 + beq _02230096 + cmp r0, #0x28 + beq _02230096 + cmp r0, #0x2f + bne _022300A4 +_02230096: + bl MOD83_02239A14 + cmp r0, #0 + beq _022300A4 + ldr r0, _022300A8 ; =0x0223B888 + mov r1, #0x2a + str r1, [r0, #0x10] +_022300A4: + mov r0, #0x23 + pop {r3, pc} + .align 2, 0 +_022300A8: .word 0x0223B888 + thumb_func_end MOD83_02230084 + + thumb_func_start MOD83_022300AC +MOD83_022300AC: ; 0x022300AC + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + add r1, r4, #0 + add r0, r5, #0 + add r1, #0x18 + mov r2, #3 + bl MOD83_0223050C + add r0, r4, #0 + mov r1, #1 + bl MOD83_0222FA0C + add r0, r4, #0 + add r0, #0x48 + mov r1, #0 + bl MOD83_0222FB44 + add r0, r4, #0 + mov r1, #1 + bl MOD83_0222FA0C + mov r1, #1 + ldr r0, _022300F0 ; =0x000015DC + lsl r1, r1, #0xc + str r1, [r4, r0] + ldr r0, _022300F4 ; =0x00002620 + mov r1, #0 + str r1, [r4, r0] + mov r0, #0x1b + pop {r3, r4, r5, pc} + nop +_022300F0: .word 0x000015DC +_022300F4: .word 0x00002620 + thumb_func_end MOD83_022300AC + + thumb_func_start MOD83_022300F8 +MOD83_022300F8: ; 0x022300F8 + push {r4, lr} + add r4, r0, #0 + bl FUN_02006278 + add r0, #0x38 + mov r1, #0 + bl MOD83_0222FB44 + add r0, r4, #0 + mov r1, #0xc4 + mov r2, #0 + bl MOD83_02230464 + mov r0, #3 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_022300F8 + + thumb_func_start MOD83_02230118 +MOD83_02230118: ; 0x02230118 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r6, r0, #0 + bl FUN_02006278 + add r5, r0, #0 + ldr r0, [r5, #4] + bl FUN_0202251C + ldr r0, _02230194 ; =0x000005C8 + ldr r1, [r5, r0] + cmp r1, #0x1e + bne _0223013E + mov r1, #1 + add r0, r0, #4 + str r1, [r5, r0] + add r0, r5, #0 + bl MOD83_022313E4 +_0223013E: + add r0, r5, #0 + add r0, #0x28 + mov r1, #0 + bl MOD83_0222FB44 + add r4, r5, #0 + ldr r0, [r5, #0x38] + add r4, #0x38 + cmp r0, #0 + bne _02230172 + mov r0, #9 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + mov r2, #0 + mov r0, #0x49 + str r2, [sp, #0xc] + lsl r0, r0, #2 + str r0, [sp, #0x10] + ldr r0, [r5] + add r1, r4, #0 + mov r3, #0xf + bl FUN_02019064 +_02230172: + add r0, r4, #0 + mov r1, #1 + mov r2, #0x1f + mov r3, #3 + bl FUN_0200CCA4 + mov r0, #1 + str r0, [sp] + ldr r1, _02230198 ; =0x0223AE20 + add r0, r6, #0 + mov r2, #4 + add r3, r4, #0 + bl MOD83_022303B0 + mov r0, #4 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02230194: .word 0x000005C8 +_02230198: .word 0x0223AE20 + thumb_func_end MOD83_02230118 + + thumb_func_start MOD83_0223019C +MOD83_0223019C: ; 0x0223019C + push {r4, lr} + bl FUN_02006278 + ldr r1, _022301CC ; =0x000005C8 + add r4, r0, #0 + ldr r2, [r4, r1] + cmp r2, #0x1e + bne _022301B6 + mov r2, #1 + add r1, r1, #4 + str r2, [r4, r1] + bl MOD83_022313E4 +_022301B6: + ldr r2, _022301D0 ; =0x000015D8 + mov r0, #0 + ldr r2, [r4, r2] + mov r1, #0x35 + mov r3, #2 + bl MOD83_0223886C + mov r0, #0 + mvn r0, r0 + pop {r4, pc} + nop +_022301CC: .word 0x000005C8 +_022301D0: .word 0x000015D8 + thumb_func_end MOD83_0223019C + + thumb_func_start MOD83_022301D4 +MOD83_022301D4: ; 0x022301D4 + push {r4, lr} + bl FUN_02006278 + add r4, r0, #0 + ldr r0, _02230204 ; =0x000005C8 + ldr r1, [r4, r0] + cmp r1, #0x1e + bne _022301EA + mov r1, #1 + add r0, r0, #4 + str r1, [r4, r0] +_022301EA: + mov r0, #1 + bl MOD83_02238860 + ldr r2, _02230208 ; =0x000015D8 + mov r0, #0 + ldr r2, [r4, r2] + mov r1, #0x34 + mov r3, #2 + bl MOD83_0223886C + mov r0, #0 + mvn r0, r0 + pop {r4, pc} + .align 2, 0 +_02230204: .word 0x000005C8 +_02230208: .word 0x000015D8 + thumb_func_end MOD83_022301D4 + + thumb_func_start MOD83_0223020C +MOD83_0223020C: ; 0x0223020C + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r3, #0 + ldr r3, _02230254 ; =0x0223A418 + add r7, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + add r2, sp, #0 + ldmia r3!, {r0, r1} + mov ip, r2 + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + lsr r1, r6, #0xb + str r0, [r2] + add r0, sp, #0 + strb r1, [r0, #0x12] + lsr r1, r5, #0xe + strb r1, [r0, #0x13] + lsl r1, r4, #0x18 + add r0, r7, #0 + lsr r1, r1, #0x18 + mov r2, ip + mov r3, #0 + bl FUN_02016C18 + lsl r1, r4, #0x18 + add r0, r7, #0 + lsr r1, r1, #0x18 + bl FUN_02018744 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02230254: .word 0x0223A418 + thumb_func_end MOD83_0223020C + + thumb_func_start MOD83_02230258 +MOD83_02230258: ; 0x02230258 + push {r3, r4, r5, lr} + sub sp, #0x10 + ldr r5, _022302B0 ; =0x0223A408 + add r3, sp, #0 + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + mov r1, #0 + mov r2, #0xf + add r0, r4, #0 + lsl r2, r2, #0xc + add r3, r1, #0 + bl MOD83_0223020C + mov r1, #1 + mov r2, #0x3e + add r0, r4, #0 + lsl r2, r2, #0xa + lsl r3, r1, #0xf + bl MOD83_0223020C + mov r2, #0xe + add r0, r4, #0 + mov r1, #4 + lsl r2, r2, #0xa + mov r3, #0 + bl MOD83_0223020C + mov r2, #0x1e + mov r3, #1 + add r0, r4, #0 + mov r1, #5 + lsl r2, r2, #0xa + lsl r3, r3, #0xe + bl MOD83_0223020C + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_022302B0: .word 0x0223A408 + thumb_func_end MOD83_02230258 + + thumb_func_start MOD83_022302B4 +MOD83_022302B4: ; 0x022302B4 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x20 + mov r2, #4 + str r0, [sp] + mov r0, #0x56 + add r3, r2, #0 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0 + add r3, #0xfc + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + mov r0, #5 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r0, #0x56 + str r0, [sp, #0xc] + mov r0, #0x74 + add r2, r4, #0 + mov r3, #5 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x56 + str r0, [sp, #0xc] + mov r0, #0x74 + mov r1, #2 + add r2, r4, #0 + mov r3, #5 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #8 + mov r2, #0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #5 + add r3, r2, #0 + bl FUN_020186B4 + add r0, r4, #0 + mov r1, #5 + bl FUN_02017CD0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_022302B4 + + thumb_func_start MOD83_02230330 +MOD83_02230330: ; 0x02230330 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x56 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0 + add r3, r0, #0 + add r2, r1, #0 + add r3, #0x8c + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + mov r0, #5 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r0, #0x56 + str r0, [sp, #0xc] + mov r0, #0x74 + add r2, r4, #0 + add r3, r1, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x56 + str r0, [sp, #0xc] + mov r0, #0x74 + mov r1, #2 + add r2, r4, #0 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #8 + mov r2, #0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #1 + add r3, r2, #0 + bl FUN_020186B4 + add r0, r4, #0 + mov r1, #1 + bl FUN_02017CD0 + add r0, r4, #0 + bl MOD83_022302B4 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_02230330 + + thumb_func_start MOD83_022303B0 +MOD83_022303B0: ; 0x022303B0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + str r0, [sp] + add r5, r1, #0 + add r7, r2, #0 + str r3, [sp, #4] + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r4, #0x7c] + cmp r0, #0 + beq _022303CC + bl FUN_02012870 +_022303CC: + add r0, r7, #0 + mov r1, #0x56 + bl FUN_02012838 + str r0, [r4, #0x7c] + ldr r2, _0223045C ; =0x00000172 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x56 + bl FUN_0200A86C + mov r6, #0 + str r0, [r4, #0x10] + cmp r7, #0 + ble _022303FE +_022303EA: + ldr r0, [r4, #0x7c] + ldr r1, [r4, #0x10] + ldr r2, [r5] + ldr r3, [r5, #4] + bl FUN_02012880 + add r6, r6, #1 + add r5, #8 + cmp r6, r7 + blt _022303EA +_022303FE: + ldr r0, [r4, #0x10] + bl FUN_0200A8B8 + ldr r3, _02230460 ; =0x0223AE00 + add r2, sp, #8 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r4, #0x7c] + str r0, [sp, #8] + add r0, sp, #8 + strh r7, [r0, #0x12] + ldrh r1, [r0, #0x12] + strh r1, [r0, #0x10] + ldr r0, [sp, #4] + str r0, [sp, #0x14] + ldr r0, [r4, #0x78] + cmp r0, #0 + beq _02230436 + mov r1, #0 + add r2, r1, #0 + bl FUN_02001300 +_02230436: + mov r1, #0 + add r0, sp, #8 + add r2, r1, #0 + mov r3, #0x56 + bl FUN_020010A8 + str r0, [r4, #0x78] + mov r0, #0 + ldr r2, [sp, #0x40] + mvn r0, r0 + cmp r2, r0 + beq _02230458 + add r4, #0x18 + ldr r0, [sp] + add r1, r4, #0 + bl MOD83_0223050C +_02230458: + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0223045C: .word 0x00000172 +_02230460: .word 0x0223AE00 + thumb_func_end MOD83_022303B0 + + thumb_func_start MOD83_02230464 +MOD83_02230464: ; 0x02230464 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x40 + str r0, [sp, #0x14] + str r1, [sp, #0x1c] + str r2, [sp, #0x18] + bl FUN_02006278 + add r7, r0, #0 + ldr r0, [r7, #4] + mov r5, #0 + bl FUN_0202251C + ldr r1, _02230508 ; =0x0223AD98 + add r4, r7, #0 + ldr r2, [r1, #0x50] + ldr r1, [r1, #0x54] + add r4, #0x28 + add r5, r5, #1 + str r2, [sp, #0x20] + str r1, [sp, #0x24] + bl FUN_0202AE70 + cmp r0, #0 + beq _022304A8 + lsl r6, r5, #3 + add r0, sp, #0x20 + add r1, r0, r6 + ldr r0, _02230508 ; =0x0223AD98 + add r5, r5, #1 + ldr r3, [r0, #0x58] + ldr r2, [r0, #0x5c] + add r0, sp, #0x20 + str r3, [r0, r6] + str r2, [r1, #4] +_022304A8: + lsl r6, r5, #3 + add r0, sp, #0x20 + add r1, r0, r6 + ldr r0, _02230508 ; =0x0223AD98 + ldr r3, [r0, #0x60] + ldr r2, [r0, #0x64] + add r0, sp, #0x20 + str r3, [r0, r6] + str r2, [r1, #4] + ldr r0, [r4] + cmp r0, #0 + bne _022304E6 + mov r0, #7 + str r0, [sp] + mov r0, #0x10 + str r0, [sp, #4] + add r0, r5, #1 + lsl r0, r0, #0x19 + lsr r0, r0, #0x18 + str r0, [sp, #8] + ldr r0, [sp, #0x1c] + mov r2, #0 + lsl r0, r0, #0x10 + str r2, [sp, #0xc] + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, [r7] + add r1, r4, #0 + mov r3, #8 + bl FUN_02019064 +_022304E6: + add r0, r4, #0 + mov r1, #1 + mov r2, #0x1f + mov r3, #3 + bl FUN_0200CCA4 + ldr r0, [sp, #0x18] + add r1, sp, #0x20 + str r0, [sp] + ldr r0, [sp, #0x14] + add r2, r5, #1 + add r3, r4, #0 + bl MOD83_022303B0 + add sp, #0x40 + pop {r3, r4, r5, r6, r7, pc} + nop +_02230508: .word 0x0223AD98 + thumb_func_end MOD83_02230464 + + thumb_func_start MOD83_0223050C +MOD83_0223050C: ; 0x0223050C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r1, #0 + add r7, r2, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r2, _0223059C ; =0x00000172 + mov r0, #1 + mov r1, #0x1a + mov r3, #0x56 + bl FUN_0200A86C + str r0, [r4, #0x10] + mov r0, #0x56 + bl FUN_0200AA80 + str r0, [r4, #0xc] + mov r0, #1 + mov r1, #6 + bl FUN_02002E4C + add r1, r0, #0 + add r0, r5, #0 + bl FUN_02019620 + ldr r6, [r4, #0x14] + cmp r6, #0 + bne _02230554 + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + add r2, r7, #0 + mov r3, #0x56 + bl FUN_0200A9C4 + add r6, r0, #0 +_02230554: + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #0x68] + mov r1, #1 + str r0, [sp, #4] + ldr r0, _022305A0 ; =0x0001020F + add r2, r6, #0 + str r0, [sp, #8] + str r3, [sp, #0xc] + add r0, r5, #0 + bl FUN_0201BDE0 + str r0, [r4, #0x6c] + ldr r0, [r4, #0x14] + cmp r0, #0 + bne _0223057A + add r0, r6, #0 + bl FUN_02021A20 +_0223057A: + add r0, r5, #0 + mov r1, #0 + mov r2, #1 + mov r3, #2 + bl FUN_0200D0BC + ldr r0, [r4, #0x10] + bl FUN_0200A8B8 + ldr r0, [r4, #0xc] + bl FUN_0200AB18 + mov r0, #0xff + str r0, [r4, #0x68] + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_0223059C: .word 0x00000172 +_022305A0: .word 0x0001020F + thumb_func_end MOD83_0223050C + + thumb_func_start MOD83_022305A4 +MOD83_022305A4: ; 0x022305A4 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r1, #0 + add r6, r2, #0 + bl FUN_02006278 + mov r0, #0x25 + mov r1, #0x56 + bl FUN_020219F4 + add r1, r6, #0 + mov r2, #0x24 + add r4, r0, #0 + bl FUN_02021E8C + mov r0, #0 + mov r1, #6 + bl FUN_02002E4C + add r1, r0, #0 + add r0, r5, #0 + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02230600 ; =0x0001020F + add r2, r4, #0 + str r0, [sp, #8] + add r0, r5, #0 + add r3, r1, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r5, #0 + mov r1, #0 + mov r2, #0x1f + mov r3, #3 + bl FUN_0200CCA4 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_02230600: .word 0x0001020F + thumb_func_end MOD83_022305A4 + + thumb_func_start MOD83_02230604 +MOD83_02230604: ; 0x02230604 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r5, r1, #0 + add r6, r2, #0 + bl FUN_02006278 + ldr r0, [r0, #0x78] + bl FUN_02001204 + add r4, r0, #0 + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _02230628 + add r0, r0, #1 + cmp r4, r0 + beq _0223065E + b _02230642 +_02230628: + ldr r0, _02230660 ; =0x000005DC + bl FUN_020054C8 + cmp r6, #0 + beq _0223065E + add r0, r7, #0 + blx r6 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0223065E + str r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_02230642: + ldr r0, _02230660 ; =0x000005DC + bl FUN_020054C8 + cmp r4, #0 + beq _0223065E + ldr r0, _02230664 ; =0x0223B888 + str r4, [r0, #0xc] + add r0, r7, #0 + blx r4 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0223065E + str r0, [r5] +_0223065E: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02230660: .word 0x000005DC +_02230664: .word 0x0223B888 + thumb_func_end MOD83_02230604 + + thumb_func_start MOD83_02230668 +MOD83_02230668: ; 0x02230668 + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0201BD5C + mov r0, #0 + add r1, r0, #0 + mov r2, #0x56 + bl FUN_02002ED0 + mov r0, #0 + mov r1, #0x20 + mov r2, #0x56 + bl FUN_02002ED0 + ldr r0, [r4, #8] + bl FUN_02025084 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x56 + str r0, [sp, #4] + ldr r0, [r4] + mov r1, #0 + mov r2, #1 + mov r3, #2 + bl FUN_0200CD68 + mov r0, #1 + str r0, [sp] + mov r0, #0x56 + str r0, [sp, #4] + ldr r0, [r4] + mov r1, #0 + mov r2, #0x1f + mov r3, #3 + bl FUN_0200CB00 + mov r0, #5 + ldr r1, _02230710 ; =0x00007D8C + lsl r0, r0, #0x18 + strh r1, [r0] + add r0, r4, #0 + add r0, #0x18 + bl FUN_02019048 + cmp r0, #0 + bne _022306EC + mov r0, #0x13 + str r0, [sp] + mov r0, #0x1b + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r2, #0 + add r1, r4, #0 + str r2, [sp, #0xc] + mov r0, #0x28 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x18 + mov r3, #2 + bl FUN_02019064 +_022306EC: + add r1, r4, #0 + add r0, r5, #0 + add r1, #0x18 + mov r2, #0 + bl MOD83_0223050C + add r0, r5, #0 + mov r1, #0xc4 + mov r2, #0 + bl MOD83_02230464 + ldr r0, [r4] + bl MOD83_02230330 + mov r0, #1 + add sp, #0x14 + pop {r4, r5, pc} + nop +_02230710: .word 0x00007D8C + thumb_func_end MOD83_02230668 + + thumb_func_start MOD83_02230714 +MOD83_02230714: ; 0x02230714 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r1, _022307A4 ; =0x000015DC + add r0, r6, #0 + add r1, r4, r1 + bl MOD83_02239F34 + cmp r0, #4 + bhi _022307A2 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223073A: ; jump table + .short _022307A2 - _0223073A - 2 ; case 0 + .short _02230744 - _0223073A - 2 ; case 1 + .short _02230768 - _0223073A - 2 ; case 2 + .short _02230768 - _0223073A - 2 ; case 3 + .short _02230776 - _0223073A - 2 ; case 4 +_02230744: + ldr r1, _022307A8 ; =0x000015FC + add r0, r4, #0 + mov r2, #0xea + add r0, #0x8c + add r1, r4, r1 + lsl r2, r2, #2 + bl memcpy + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + mov r0, #0x1b + add r4, #0x84 + str r0, [r4] + mov r0, #0x13 + str r0, [r5] + pop {r4, r5, r6, pc} +_02230768: + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + mov r0, #0x11 + str r0, [r5] + pop {r4, r5, r6, pc} +_02230776: + ldr r0, _022307AC ; =0x00002624 + add r0, r4, r0 + bl FUN_02019570 + ldr r0, _022307AC ; =0x00002624 + add r0, r4, r0 + bl FUN_02019178 + ldr r0, [r4] + mov r1, #0 + bl FUN_02018744 + ldr r0, _022307B0 ; =0x000005DC + bl FUN_020054C8 + add r0, r6, #0 + mov r1, #0xc4 + mov r2, #0 + bl MOD83_02230464 + mov r0, #3 + str r0, [r5] +_022307A2: + pop {r4, r5, r6, pc} + .align 2, 0 +_022307A4: .word 0x000015DC +_022307A8: .word 0x000015FC +_022307AC: .word 0x00002624 +_022307B0: .word 0x000005DC + thumb_func_end MOD83_02230714 + + thumb_func_start MOD83_022307B4 +MOD83_022307B4: ; 0x022307B4 + push {r3, r4, r5, r6, lr} + sub sp, #0x5c + add r5, r0, #0 + ldr r0, _0223083C ; =0x00002610 + ldr r4, [r5, r0] + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _022307C8 + mov r4, #0xb +_022307C8: + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E6E4 + ldr r0, [r5] + mov r1, #0 + bl FUN_02018744 + mov r0, #0x56 + bl FUN_0200AA80 + mov r1, #2 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + ldr r2, _02230840 ; =0x00002614 + mov r1, #0 + ldr r2, [r5, r2] + mov r3, #5 + add r6, r0, #0 + bl FUN_0200AD38 + mov r0, #0x1f + ldr r1, _02230844 ; =0x00002624 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + ldr r3, _02230848 ; =0x00000265 + add r0, sp, #8 + add r1, r5, r1 + mov r2, #1 + bl MOD83_022388E4 + add r0, sp, #8 + mov r1, #0x18 + mov r2, #0x10 + mov r3, #0x64 + bl MOD83_02238934 + add r0, sp, #8 + mov r1, #0 + mov r2, #1 + bl MOD83_0223893C + str r6, [sp, #0x1c] + str r4, [sp] + mov r2, #4 + ldr r0, [r5] + add r1, sp, #8 + add r3, r2, #0 + bl MOD83_02238A38 + add r0, r6, #0 + bl FUN_0200AB18 + add sp, #0x5c + pop {r3, r4, r5, r6, pc} + nop +_0223083C: .word 0x00002610 +_02230840: .word 0x00002614 +_02230844: .word 0x00002624 +_02230848: .word 0x00000265 + thumb_func_end MOD83_022307B4 + + thumb_func_start MOD83_0223084C +MOD83_0223084C: ; 0x0223084C + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r1, r0, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #3 + bne _02230862 + mov r4, #0x15 + b _0223088C +_02230862: + cmp r0, #4 + bne _0223086A + mov r4, #0x19 + b _0223088C +_0223086A: + cmp r0, #2 + bne _02230872 + mov r4, #0x16 + b _0223088C +_02230872: + cmp r0, #1 + bne _0223087A + mov r4, #0x1b + b _0223088C +_0223087A: + cmp r0, #5 + bne _0223088C + add r0, r5, #0 + add r1, #0x18 + mov r2, #9 + mov r3, #0x33 + bl MOD83_0223089C + pop {r3, r4, r5, pc} +_0223088C: + add r0, r5, #0 + add r1, #0x18 + add r2, r4, #0 + mov r3, #0x32 + bl MOD83_0223089C + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD83_0223084C + + thumb_func_start MOD83_0223089C +MOD83_0223089C: ; 0x0223089C + push {r4, r5, r6, r7, lr} + sub sp, #0xc + str r0, [sp] + add r6, r1, #0 + add r5, r2, #0 + str r3, [sp, #4] + bl FUN_02006278 + add r4, r0, #0 + cmp r6, #0 + beq _022308F8 + cmp r5, #0 + beq _022308F8 + ldr r2, _02230920 ; =0x00000172 + mov r0, #1 + mov r1, #0x1a + mov r3, #0x56 + bl FUN_0200A86C + add r7, r0, #0 + mov r0, #0x56 + bl FUN_0200AA80 + add r1, r7, #0 + add r2, r5, #0 + mov r3, #0x56 + str r0, [sp, #8] + bl FUN_0200A9C4 + str r0, [r4, #0x14] + mov r0, #1 + str r0, [r4, #0x68] + ldr r0, [sp] + add r1, r6, #0 + add r2, r5, #0 + bl MOD83_0223050C + ldr r0, [sp, #4] + str r0, [r4, #0x74] + ldr r0, [sp, #8] + bl FUN_0200AB18 + add r0, r7, #0 + bl FUN_0200A8B8 + b _02230918 +_022308F8: + ldr r0, [r4, #0x6c] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02230918 + ldr r0, [r4, #0x14] + bl FUN_02021A20 + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x68] + add sp, #0xc + ldr r0, [r4, #0x74] + pop {r4, r5, r6, r7, pc} +_02230918: + mov r0, #0x31 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + nop +_02230920: .word 0x00000172 + thumb_func_end MOD83_0223089C + + thumb_func_start MOD83_02230924 +MOD83_02230924: ; 0x02230924 + push {r3, lr} + ldr r1, _02230950 ; =0x000015D4 + ldr r0, [r0, r1] + cmp r0, #4 + bhi _0223094C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223093A: ; jump table + .short _0223094C - _0223093A - 2 ; case 0 + .short _02230944 - _0223093A - 2 ; case 1 + .short _0223094C - _0223093A - 2 ; case 2 + .short _0223094C - _0223093A - 2 ; case 3 + .short _0223094C - _0223093A - 2 ; case 4 +_02230944: + bl MOD83_0222F9DC + bl FUN_02033ED0 +_0223094C: + pop {r3, pc} + nop +_02230950: .word 0x000015D4 + thumb_func_end MOD83_02230924 + + thumb_func_start MOD83_02230954 +MOD83_02230954: ; 0x02230954 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl MOD83_02231370 + mov r0, #3 + mov r1, #0x56 + lsl r2, r0, #0x10 + bl FUN_0201681C + ldr r1, _022309FC ; =0x00002998 + add r0, r5, #0 + mov r2, #0x56 + bl FUN_02006268 + ldr r2, _022309FC ; =0x00002998 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x56 + bl FUN_02016B94 + str r0, [r4] + bl FUN_0201E6D8 + bl FUN_0201E740 + bl MOD83_022331C0 + ldr r0, [r4] + bl MOD83_02230258 + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r1, _02230A00 ; =0x00000496 + mov r0, #0xa + mov r2, #1 + bl FUN_0200433C + mov r0, #0x56 + bl MOD83_022385FC + bl MOD83_02238700 + cmp r0, #0 + beq _022309D0 + ldr r0, _02230A04 ; =0x000015D4 + mov r1, #2 + str r1, [r4, r0] + ldr r0, _02230A08 ; =0x020ECAC0 + ldrb r0, [r0] + bl FUN_02016438 + mov r0, #1 + bl MOD83_02239450 +_022309D0: + ldr r0, _02230A0C ; =0x000005C8 + mov r1, #0x1d + str r1, [r4, r0] + add r0, r5, #0 + bl FUN_0200628C + ldr r0, [r0, #8] + str r0, [r4, #4] + bl LoadPlayerDataAddress + str r0, [r4, #8] + mov r0, #0xff + mov r2, #3 + str r0, [r4, #0x68] + mov r0, #0 + mov r1, #0x5b + lsl r2, r2, #8 + bl FUN_0201681C + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_022309FC: .word 0x00002998 +_02230A00: .word 0x00000496 +_02230A04: .word 0x000015D4 +_02230A08: .word 0x020ECAC0 +_02230A0C: .word 0x000005C8 + thumb_func_end MOD83_02230954 + + thumb_func_start MOD83_02230A10 +MOD83_02230A10: ; 0x02230A10 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + bl CTRDG_IsExisting + ldr r0, _02230D5C ; =0x000005C8 + ldr r0, [r4, r0] + cmp r0, #0x1d + beq _02230A30 + add r0, r4, #0 + bl MOD83_022313E4 +_02230A30: + ldr r3, [r5] + cmp r3, #0x38 + bls _02230A3A + bl _02231334 +_02230A3A: + add r0, r3, r3 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02230A46: ; jump table + .short _02230AB8 - _02230A46 - 2 ; case 0 + .short _02230ACA - _02230A46 - 2 ; case 1 + .short _02230AE8 - _02230A46 - 2 ; case 2 + .short _02230AF2 - _02230A46 - 2 ; case 3 + .short _02230B00 - _02230A46 - 2 ; case 4 + .short _02230B0E - _02230A46 - 2 ; case 5 + .short _02231334 - _02230A46 - 2 ; case 6 + .short _02230CA0 - _02230A46 - 2 ; case 7 + .short _02230D50 - _02230A46 - 2 ; case 8 + .short _02230D8C - _02230A46 - 2 ; case 9 + .short _02230E4C - _02230A46 - 2 ; case 10 + .short _02230E9A - _02230A46 - 2 ; case 11 + .short _02230EBC - _02230A46 - 2 ; case 12 + .short _02230F4C - _02230A46 - 2 ; case 13 + .short _02230FA2 - _02230A46 - 2 ; case 14 + .short _02230FCE - _02230A46 - 2 ; case 15 + .short _0223100E - _02230A46 - 2 ; case 16 + .short _02231030 - _02230A46 - 2 ; case 17 + .short _0223105A - _02230A46 - 2 ; case 18 + .short _0223107A - _02230A46 - 2 ; case 19 + .short _0223110E - _02230A46 - 2 ; case 20 + .short _0223111A - _02230A46 - 2 ; case 21 + .short _0223113C - _02230A46 - 2 ; case 22 + .short _02231172 - _02230A46 - 2 ; case 23 + .short _0223118C - _02230A46 - 2 ; case 24 + .short _02231204 - _02230A46 - 2 ; case 25 + .short _02231334 - _02230A46 - 2 ; case 26 + .short _02230B1C - _02230A46 - 2 ; case 27 + .short _02231334 - _02230A46 - 2 ; case 28 + .short _02231334 - _02230A46 - 2 ; case 29 + .short _02231334 - _02230A46 - 2 ; case 30 + .short _02230BD6 - _02230A46 - 2 ; case 31 + .short _02230B28 - _02230A46 - 2 ; case 32 + .short _02230BE8 - _02230A46 - 2 ; case 33 + .short _02230C0A - _02230A46 - 2 ; case 34 + .short _02230C7C - _02230A46 - 2 ; case 35 + .short _02231334 - _02230A46 - 2 ; case 36 + .short _02231334 - _02230A46 - 2 ; case 37 + .short _02231334 - _02230A46 - 2 ; case 38 + .short _02231334 - _02230A46 - 2 ; case 39 + .short _02231334 - _02230A46 - 2 ; case 40 + .short _02231334 - _02230A46 - 2 ; case 41 + .short _02231334 - _02230A46 - 2 ; case 42 + .short _02231334 - _02230A46 - 2 ; case 43 + .short _02231334 - _02230A46 - 2 ; case 44 + .short _02231334 - _02230A46 - 2 ; case 45 + .short _02231334 - _02230A46 - 2 ; case 46 + .short _02231334 - _02230A46 - 2 ; case 47 + .short _02231220 - _02230A46 - 2 ; case 48 + .short _02231244 - _02230A46 - 2 ; case 49 + .short _02231252 - _02230A46 - 2 ; case 50 + .short _0223126E - _02230A46 - 2 ; case 51 + .short _02231284 - _02230A46 - 2 ; case 52 + .short _02231298 - _02230A46 - 2 ; case 53 + .short _022312AA - _02230A46 - 2 ; case 54 + .short _022312EC - _02230A46 - 2 ; case 55 + .short _0223132E - _02230A46 - 2 ; case 56 +_02230AB8: + mov r0, #0x56 + bl MOD83_02238770 + ldr r0, _02230D60 ; =0x000015D8 + str r5, [r4, r0] + mov r0, #1 + str r0, [r5] + bl _02231334 +_02230ACA: + add r0, r6, #0 + add r1, r4, #0 + bl MOD83_02230668 + add r0, r4, #0 + bl MOD83_0222FAE8 + mov r0, #1 + mov r1, #3 + add r2, r5, #0 + mov r3, #2 + bl MOD83_0223886C + bl _02231334 +_02230AE8: + add r0, r5, #0 + bl MOD83_022388CC + bl _02231334 +_02230AF2: + ldr r2, _02230D64 ; =MOD83_022301D4 + add r0, r6, #0 + add r1, r5, #0 + bl MOD83_02230604 + bl _02231334 +_02230B00: + ldr r2, _02230D68 ; =MOD83_022300F8 + add r0, r6, #0 + add r1, r5, #0 + bl MOD83_02230604 + bl _02231334 +_02230B0E: + ldr r2, _02230D6C ; =MOD83_0222FDE8 + add r0, r6, #0 + add r1, r5, #0 + bl MOD83_02230604 + bl _02231334 +_02230B1C: + add r0, r6, #0 + add r1, r5, #0 + bl MOD83_02230714 + bl _02231334 +_02230B28: + add r0, r4, #0 + bl MOD83_022314B4 + ldr r0, _02230D70 ; =0x0223B888 + ldr r0, [r0, #0x10] + cmp r0, #0x2c + bne _02230BC0 + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + add r0, r6, #0 + bl MOD83_0222FC40 + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x8c + bl MOD83_022332B4 + add r1, r4, #0 + add r1, #0x80 + str r0, [r1] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #1 + bne _02230B6C + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + mov r0, #0x30 + str r0, [r5] + b _02230BC0 +_02230B6C: + add r0, r4, #0 + add r0, #0x58 + bl FUN_02019048 + cmp r0, #0 + bne _02230B9A + mov r0, #2 + str r0, [sp] + mov r0, #0x1a + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r2, #0 + mov r0, #0x71 + add r1, r4, #0 + str r2, [sp, #0xc] + lsl r0, r0, #2 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x58 + mov r3, #3 + bl FUN_02019064 +_02230B9A: + bl MOD83_02239DA0 + add r1, r4, #0 + add r2, r0, #0 + add r0, r6, #0 + add r1, #0x58 + bl MOD83_022305A4 + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r2, #4 + bl MOD83_0223050C + add r0, r6, #0 + bl MOD83_0222FF80 + mov r0, #0x1f + str r0, [r5] +_02230BC0: + ldr r0, _02230D70 ; =0x0223B888 + ldr r0, [r0, #0x10] + sub r0, #0x2d + cmp r0, #1 + bls _02230BCC + b _02231334 +_02230BCC: + bl MOD83_02231494 + mov r0, #0x11 + str r0, [r5] + b _02231334 +_02230BD6: + ldr r2, _02230D74 ; =MOD83_02230084 + add r0, r6, #0 + add r1, r5, #0 + bl MOD83_02230604 + add r0, r4, #0 + bl MOD83_022314B4 + b _02231334 +_02230BE8: + add r0, r6, #0 + bl MOD83_0222FC40 + add r1, r0, #0 + ldr r0, [r4] + bl MOD83_022391EC + add r0, r4, #0 + mov r1, #1 + bl MOD83_0222FA0C + add r0, r6, #0 + bl MOD83_0222FCE4 + mov r0, #0x22 + str r0, [r5] + b _02231334 +_02230C0A: + bl MOD83_02239574 + cmp r0, #4 + bne _02230C16 + bl MOD83_02239544 +_02230C16: + bl MOD83_02239574 + cmp r0, #2 + bne _02230C48 + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + mov r1, #0 + add r0, r4, #0 + mvn r1, r1 + bl MOD83_0222FB0C + ldr r0, _02230D78 ; =0x00000624 + bl FUN_020054C8 + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r2, #8 + mov r3, #0x36 + bl MOD83_0223089C + str r0, [r5] + b _02231334 +_02230C48: + bl MOD83_02239574 + cmp r0, #3 + bne _02230D38 + mov r1, #0 + add r0, r4, #0 + mvn r1, r1 + bl MOD83_0222FB0C + add r0, r4, #0 + add r0, #0xda + ldrb r1, [r0] + mov r0, #4 + mov r2, #0x1a + bic r1, r0 + add r0, r4, #0 + add r0, #0xda + strb r1, [r0] + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r3, #0x36 + bl MOD83_0223089C + str r0, [r5] + b _02231334 +_02230C7C: + add r0, r4, #0 + bl MOD83_022314B4 + ldr r0, _02230D70 ; =0x0223B888 + ldr r1, [r0, #0x10] + add r0, r1, #0 + sub r0, #0x2c + cmp r0, #2 + bhi _02230D38 + cmp r1, #0x2e + bne _02230C96 + bl MOD83_02231494 +_02230C96: + add r0, r6, #0 + bl MOD83_0222FFD8 + str r0, [r5] + b _02231334 +_02230CA0: + add r0, r4, #0 + bl MOD83_0222F950 + ldr r1, _02230D7C ; =0x00000438 + str r0, [r4, r1] + mov r0, #0 + ldr r1, [r4, r1] + mvn r0, r0 + cmp r1, r0 + beq _02230D20 + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x8c + bl MOD83_022332B4 + add r1, r4, #0 + add r1, #0x80 + str r0, [r1] + add r0, r4, #0 + add r0, #0x58 + bl FUN_02019048 + cmp r0, #0 + bne _02230CFA + mov r0, #2 + str r0, [sp] + mov r0, #0x1a + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r2, #0 + mov r0, #0x71 + add r1, r4, #0 + str r2, [sp, #0xc] + lsl r0, r0, #2 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x58 + mov r3, #3 + bl FUN_02019064 +_02230CFA: + add r1, r4, #0 + add r2, r4, #0 + add r0, r6, #0 + add r1, #0x58 + add r2, #0x8c + bl MOD83_022305A4 + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r2, #4 + bl MOD83_0223050C + add r0, r6, #0 + mov r1, #0 + bl MOD83_0222FD84 + mov r0, #8 + str r0, [r5] +_02230D20: + ldr r0, _02230D80 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + bne _02230D3A + ldr r0, _02230D84 ; =0x00000434 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + beq _02230D3A +_02230D38: + b _02231334 +_02230D3A: + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + bl MOD83_0222F9DC + bl FUN_02033ED0 + mov r0, #0x11 + str r0, [r5] + b _02231334 +_02230D50: + ldr r2, _02230D88 ; =MOD83_0222FFD8 + add r0, r6, #0 + add r1, r5, #0 + bl MOD83_02230604 + b _02231334 + .align 2, 0 +_02230D5C: .word 0x000005C8 +_02230D60: .word 0x000015D8 +_02230D64: .word MOD83_022301D4 +_02230D68: .word MOD83_022300F8 +_02230D6C: .word MOD83_0222FDE8 +_02230D70: .word 0x0223B888 +_02230D74: .word MOD83_02230084 +_02230D78: .word 0x00000624 +_02230D7C: .word 0x00000438 +_02230D80: .word 0x021C48B8 +_02230D84: .word 0x00000434 +_02230D88: .word MOD83_0222FFD8 +_02230D8C: + bl FUN_02031190 + add r7, r0, #0 + beq _02230DE4 + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0 + beq _02230DE4 + mov r0, #0xab + bl FUN_020315D8 + cmp r0, #1 + bne _02230E14 + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + mov r0, #1 + add r1, r0, #0 + bl FUN_020334E8 + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r2, #7 + bl MOD83_0223050C + add r0, r4, #0 + mov r1, #1 + bl MOD83_0222FB0C + add r0, r4, #0 + mov r1, #1 + bl MOD83_0222FA0C + mov r1, #0x96 + ldr r0, _02231120 ; =0x00000434 + lsl r1, r1, #2 + str r1, [r4, r0] + mov r0, #0xa + str r0, [r5] + b _02230E14 +_02230DE4: + cmp r7, #0 + beq _02230E14 + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0 + bne _02230E14 + bl MOD83_0222F9DC + bl FUN_02033ED0 + mov r1, #0 + add r0, r4, #0 + mvn r1, r1 + bl MOD83_0222FB0C + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + mov r0, #0x10 + str r0, [r5] + b _02231334 +_02230E14: + ldr r0, _02231124 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + bne _02230E2C + ldr r0, _02231120 ; =0x00000434 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _02230F1C +_02230E2C: + bl MOD83_0222F9DC + bl FUN_02033ED0 + mov r1, #0 + add r0, r4, #0 + mvn r1, r1 + bl MOD83_0222FB0C + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + mov r0, #0x11 + str r0, [r5] + b _02231334 +_02230E4C: + bl MOD83_0222F9A0 + cmp r0, #0 + beq _02230E58 + mov r0, #0xb + str r0, [r5] +_02230E58: + bl FUN_02031190 + ldr r1, _02231124 ; =0x021C48B8 + ldr r2, [r1, #0x48] + mov r1, #2 + tst r1, r2 + bne _02230E84 + ldr r1, _02231120 ; =0x00000434 + ldr r2, [r4, r1] + sub r2, r2, #1 + str r2, [r4, r1] + ldr r1, [r4, r1] + cmp r1, #0 + beq _02230E84 + cmp r0, #0 + beq _02230F1C + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0 + bne _02230F1C +_02230E84: + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + bl MOD83_0222F9DC + bl FUN_02033ED0 + mov r0, #0x11 + str r0, [r5] + b _02231334 +_02230E9A: + add r0, r6, #0 + bl MOD83_0222FC40 + add r1, r0, #0 + ldr r0, [r4] + bl MOD83_022391EC + mov r0, #0 + add r1, r0, #0 + bl FUN_020334E8 + add r0, r6, #0 + bl MOD83_0222FCE4 + mov r0, #0xc + str r0, [r5] + b _02231334 +_02230EBC: + bl FUN_02031190 + cmp r0, #0 + beq _02230EFA + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02030E7C + cmp r0, #0 + bne _02230EFA + bl MOD83_0222F9DC + ldr r0, _02231128 ; =0x00002990 + mov r1, #1 + str r1, [r4, r0] + bl MOD83_0223955C + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + bl FUN_02033ED0 + mov r1, #0 + add r0, r4, #0 + mvn r1, r1 + bl MOD83_0222FB0C + mov r0, #0xe + str r0, [r5] + b _02231334 +_02230EFA: + bl MOD83_02239574 + cmp r0, #4 + bne _02230F14 + mov r0, #0x93 + bl FUN_02031588 + mov r0, #0xd + str r0, [r5] + ldr r0, _0223112C ; =0x0000043C + mov r1, #0x78 + str r1, [r4, r0] + b _02231334 +_02230F14: + bl MOD83_02239574 + cmp r0, #3 + beq _02230F1E +_02230F1C: + b _02231334 +_02230F1E: + bl MOD83_0223955C + add r0, r4, #0 + add r0, #0xda + ldrb r1, [r0] + mov r0, #4 + bic r1, r0 + add r0, r4, #0 + add r0, #0xda + strb r1, [r0] + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r2, #0x1a + mov r3, #0x36 + bl MOD83_0223089C + str r0, [r5] + b _02231334 +_02230F4C: + mov r0, #0x93 + bl FUN_020315D8 + cmp r0, #1 + bne _02230F66 + bl MOD83_02239544 + ldr r0, _0223112C ; =0x0000043C + mov r1, #0xa + str r1, [r4, r0] + mov r0, #0xf + str r0, [r5] + b _02231334 +_02230F66: + ldr r0, _0223112C ; =0x0000043C + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _02231062 + bl MOD83_0223955C + add r0, r4, #0 + add r0, #0xda + ldrb r1, [r0] + mov r0, #4 + bic r1, r0 + add r0, r4, #0 + add r0, #0xda + strb r1, [r0] + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r2, #0x1a + mov r3, #0x36 + bl MOD83_0223089C + str r0, [r5] + b _02231334 +_02230FA2: + add r0, r4, #0 + add r0, #0x58 + mov r1, #0 + bl MOD83_0222FB44 + add r0, r4, #0 + add r0, #0xda + ldrb r1, [r0] + mov r0, #4 + mov r2, #0x1c + bic r1, r0 + add r0, r4, #0 + add r0, #0xda + strb r1, [r0] + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r3, #0x36 + bl MOD83_0223089C + str r0, [r5] + b _02231334 +_02230FCE: + ldr r0, _0223112C ; =0x0000043C + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _02231062 + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + bl MOD83_0222F9DC + bl FUN_02033ED0 + ldr r0, _02231130 ; =0x00000624 + bl FUN_020054C8 + mov r1, #0 + add r0, r4, #0 + mvn r1, r1 + bl MOD83_0222FB0C + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r2, #8 + mov r3, #0x36 + bl MOD83_0223089C + str r0, [r5] + b _02231334 +_0223100E: + ldr r0, _02231134 ; =0x000005DC + bl FUN_020054C8 + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r2, #0x18 + bl MOD83_0223050C + add r0, r4, #0 + add r0, #0x58 + mov r1, #0 + bl MOD83_0222FB44 + mov r0, #0x12 + str r0, [r5] + b _02231334 +_02231030: + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + ldr r0, _02231134 ; =0x000005DC + bl FUN_020054C8 + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r2, #0x17 + bl MOD83_0223050C + add r0, r4, #0 + add r0, #0x58 + mov r1, #0 + bl MOD83_0222FB44 + mov r0, #0x12 + str r0, [r5] + b _02231334 +_0223105A: + ldr r0, _02231124 ; =0x021C48B8 + ldr r0, [r0, #0x48] + cmp r0, #0 + bne _02231064 +_02231062: + b _02231334 +_02231064: + ldr r0, _02231134 ; =0x000005DC + bl FUN_020054C8 + add r0, r6, #0 + mov r1, #0xc4 + mov r2, #0 + bl MOD83_02230464 + mov r0, #3 + str r0, [r5] + b _02231334 +_0223107A: + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #0x1b + beq _02231090 + add r0, r4, #0 + mov r1, #0xea + add r0, #0x8c + lsl r1, r1, #2 + bl MOD83_02238728 +_02231090: + add r1, r4, #0 + ldr r0, [r4, #4] + add r1, #0x8c + bl MOD83_022332B4 + add r1, r4, #0 + add r1, #0x80 + str r0, [r1] + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #1 + bne _022310B8 + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + mov r0, #0x30 + str r0, [r5] + b _02231334 +_022310B8: + add r0, r4, #0 + add r0, #0x58 + bl FUN_02019048 + cmp r0, #0 + bne _022310E6 + mov r0, #2 + str r0, [sp] + mov r0, #0x1a + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r2, #0 + mov r0, #0x71 + add r1, r4, #0 + str r2, [sp, #0xc] + lsl r0, r0, #2 + str r0, [sp, #0x10] + ldr r0, [r4] + add r1, #0x58 + mov r3, #3 + bl FUN_02019064 +_022310E6: + add r1, r4, #0 + add r2, r4, #0 + add r0, r6, #0 + add r1, #0x58 + add r2, #0x8c + bl MOD83_022305A4 + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r2, #4 + bl MOD83_0223050C + add r0, r6, #0 + mov r1, #0 + bl MOD83_0222FD84 + mov r0, #0x14 + str r0, [r5] + b _02231334 +_0223110E: + ldr r2, _02231138 ; =MOD83_0222FFD8 + add r0, r6, #0 + add r1, r5, #0 + bl MOD83_02230604 + b _02231334 +_0223111A: + mov r0, #0x16 + str r0, [r5] + b _02231334 + .align 2, 0 +_02231120: .word 0x00000434 +_02231124: .word 0x021C48B8 +_02231128: .word 0x00002990 +_0223112C: .word 0x0000043C +_02231130: .word 0x00000624 +_02231134: .word 0x000005DC +_02231138: .word MOD83_0222FFD8 +_0223113C: + add r0, r6, #0 + bl MOD83_0222FC40 + add r1, r0, #0 + ldr r0, [r4] + bl MOD83_022391EC + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r2, #7 + bl MOD83_0223050C + add r0, r4, #0 + mov r1, #1 + bl MOD83_0222FB0C + add r0, r4, #0 + mov r1, #1 + bl MOD83_0222FA0C + ldr r0, _0223134C ; =0x0000043C + mov r1, #0x3c + str r1, [r4, r0] + mov r0, #0x17 + str r0, [r5] + b _02231334 +_02231172: + ldr r0, _0223134C ; =0x0000043C + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _02231212 + add r0, r6, #0 + bl MOD83_0222FCE4 + mov r0, #0x18 + str r0, [r5] + b _02231334 +_0223118C: + bl MOD83_02239574 + cmp r0, #4 + bne _02231198 + bl MOD83_02239544 +_02231198: + bl MOD83_02239574 + cmp r0, #2 + bne _022311D0 + ldr r0, _0223134C ; =0x0000043C + mov r1, #1 + str r1, [r4, r0] + add r0, r4, #0 + mov r1, #0 + bl MOD83_0222FA0C + mov r1, #0 + add r0, r4, #0 + mvn r1, r1 + bl MOD83_0222FB0C + ldr r0, _02231350 ; =0x00000624 + bl FUN_020054C8 + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r2, #8 + mov r3, #0x19 + bl MOD83_0223089C + str r0, [r5] + b _02231334 +_022311D0: + bl MOD83_02239574 + cmp r0, #3 + bne _02231212 + mov r1, #0 + add r0, r4, #0 + mvn r1, r1 + bl MOD83_0222FB0C + add r0, r4, #0 + add r0, #0xda + ldrb r1, [r0] + mov r0, #4 + mov r2, #0x1a + bic r1, r0 + add r0, r4, #0 + add r0, #0xda + strb r1, [r0] + add r1, r4, #0 + add r0, r6, #0 + add r1, #0x18 + mov r3, #0x36 + bl MOD83_0223089C + str r0, [r5] + b _02231334 +_02231204: + ldr r0, _0223134C ; =0x0000043C + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0 + beq _02231214 +_02231212: + b _02231334 +_02231214: + mov r1, #1 + lsl r1, r1, #0x10 + str r1, [r4, r0] + mov r0, #0x36 + str r0, [r5] + b _02231334 +_02231220: + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #5 + beq _02231230 + add r0, r4, #0 + bl MOD83_02230924 +_02231230: + add r0, r6, #0 + bl MOD83_0223084C + str r0, [r5] + add r0, r4, #0 + add r0, #0x48 + mov r1, #0 + bl MOD83_0222FB44 + b _02231334 +_02231244: + mov r1, #0 + add r0, r6, #0 + add r2, r1, #0 + bl MOD83_0223089C + str r0, [r5] + b _02231334 +_02231252: + ldr r0, _02231354 ; =0x021C48B8 + ldr r0, [r0, #0x48] + cmp r0, #0 + beq _02231334 + add r0, r4, #0 + add r0, #0x58 + mov r1, #0 + bl MOD83_0222FB44 + add r0, r6, #0 + bl MOD83_022300F8 + str r0, [r5] + b _02231334 +_0223126E: + add r0, r6, #0 + mov r1, #1 + bl MOD83_0222FD84 + mov r0, #8 + str r0, [r5] + add r0, r4, #0 + mov r1, #0 + add r0, #0x80 + str r1, [r0] + b _02231334 +_02231284: + add r0, r6, #0 + bl MOD83_0222FA4C + mov r0, #0x11 + mov r1, #0 + lsl r0, r0, #6 + str r1, [r4, r0] + add sp, #0x14 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_02231298: + add r0, r6, #0 + bl MOD83_0222FA4C + mov r1, #0x11 + mov r0, #1 + lsl r1, r1, #6 + add sp, #0x14 + str r0, [r4, r1] + pop {r4, r5, r6, r7, pc} +_022312AA: + ldr r0, _02231354 ; =0x021C48B8 + ldr r0, [r0, #0x48] + cmp r0, #0 + beq _02231334 + ldr r0, _02231358 ; =0x000005DC + bl FUN_020054C8 + add r0, r4, #0 + add r0, #0xda + ldrb r0, [r0] + lsl r0, r0, #0x1d + lsr r0, r0, #0x1f + cmp r0, #1 + bne _022312D6 + ldr r2, _0223135C ; =0x000015D8 + mov r0, #0 + ldr r2, [r4, r2] + mov r1, #0x37 + mov r3, #2 + bl MOD83_0223886C + b _02231334 +_022312D6: + mov r0, #1 + bl MOD83_02238860 + ldr r2, _0223135C ; =0x000015D8 + mov r0, #0 + ldr r2, [r4, r2] + mov r1, #0x38 + mov r3, #2 + bl MOD83_0223886C + b _02231334 +_022312EC: + ldr r0, [r4] + bl MOD83_022302B4 + mov r0, #1 + mov r1, #0 + bl FUN_0201E74C + mov r0, #2 + mov r1, #1 + bl FUN_0201E74C + add r1, r4, #0 + ldr r0, [r4] + add r1, #0xdc + mov r2, #0x56 + bl MOD83_02233168 + ldr r2, _0223135C ; =0x000015D8 + mov r0, #1 + ldr r2, [r4, r2] + mov r1, #0x36 + mov r3, #2 + bl MOD83_0223886C + add r0, r4, #0 + add r0, #0xda + ldrb r1, [r0] + mov r0, #4 + bic r1, r0 + add r0, r4, #0 + add r0, #0xda + strb r1, [r0] + b _02231334 +_0223132E: + mov r0, #0 + bl OS_ResetSystem +_02231334: + ldr r0, _02231360 ; =0x0000298C + ldr r1, [r4, r0] + cmp r1, #0 + beq _02231340 + add r0, r4, #0 + blx r1 +_02231340: + bl MOD83_02238D58 + mov r0, #0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_0223134C: .word 0x0000043C +_02231350: .word 0x00000624 +_02231354: .word 0x021C48B8 +_02231358: .word 0x000005DC +_0223135C: .word 0x000015D8 +_02231360: .word 0x0000298C + thumb_func_end MOD83_02230A10 + + thumb_func_start MOD83_02231364 +MOD83_02231364: ; 0x02231364 + ldr r0, _0223136C ; =0x0223B888 + ldr r0, [r0, #4] + bx lr + nop +_0223136C: .word 0x0223B888 + thumb_func_end MOD83_02231364 + + thumb_func_start MOD83_02231370 +MOD83_02231370: ; 0x02231370 + ldr r1, _02231378 ; =0x0223B888 + str r0, [r1, #4] + bx lr + nop +_02231378: .word 0x0223B888 + thumb_func_end MOD83_02231370 + + thumb_func_start MOD83_0223137C +MOD83_0223137C: ; 0x0223137C + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_02006278 + add r4, r0, #0 + mov r0, #0x11 + lsl r0, r0, #6 + ldr r0, [r4, r0] + cmp r0, #0 + bne _0223139A + ldr r0, _022313D0 ; =SDK_OVERLAY_MODULE_63_ID + ldr r1, _022313D4 ; =0x021DBAB8 + bl FUN_02000E7C + b _022313A6 +_0223139A: + cmp r0, #1 + bne _022313A6 + ldr r0, _022313D8 ; =SDK_OVERLAY_MODULE_83_ID + ldr r1, _022313DC ; =0x0223A444 + bl FUN_02000E7C +_022313A6: + mov r0, #0x5b + bl FUN_020168D0 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0x56 + bl FUN_020168D0 + ldr r0, _022313E0 ; =0x000015D4 + ldr r0, [r4, r0] + cmp r0, #2 + bne _022313C6 + mov r0, #0 + bl FUN_02016438 +_022313C6: + mov r0, #0 + bl MOD83_02239450 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_022313D0: .word SDK_OVERLAY_MODULE_63_ID +_022313D4: .word 0x021DBAB8 +_022313D8: .word SDK_OVERLAY_MODULE_83_ID +_022313DC: .word 0x0223A444 +_022313E0: .word 0x000015D4 + thumb_func_end MOD83_0223137C + + thumb_func_start MOD83_022313E4 +MOD83_022313E4: ; 0x022313E4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02231438 ; =0x000005C8 + ldr r0, [r4, r0] + cmp r0, #0x1c + beq _022313FA + cmp r0, #0x1d + beq _02231436 + cmp r0, #0x1e + beq _0223140E + pop {r4, pc} +_022313FA: + ldr r0, [r4, #4] + bl FUN_02032D44 + ldr r0, _0223143C ; =0x000005CC + mov r1, #0x78 + str r1, [r4, r0] + mov r1, #0x1e + sub r0, r0, #4 + str r1, [r4, r0] + pop {r4, pc} +_0223140E: + bl FUN_02032D9C + mov r1, #1 + tst r0, r1 + beq _0223141E + mov r0, #0x5d + lsl r0, r0, #4 + str r1, [r4, r0] +_0223141E: + ldr r0, _0223143C ; =0x000005CC + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _02231436 + bl FUN_02032D80 + ldr r0, _02231438 ; =0x000005C8 + mov r1, #0x1d + str r1, [r4, r0] +_02231436: + pop {r4, pc} + .align 2, 0 +_02231438: .word 0x000005C8 +_0223143C: .word 0x000005CC + thumb_func_end MOD83_022313E4 + + thumb_func_start MOD83_02231440 +MOD83_02231440: ; 0x02231440 + cmp r0, #4 + bhi _0223148C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02231450: ; jump table + .short _0223145A - _02231450 - 2 ; case 0 + .short _02231462 - _02231450 - 2 ; case 1 + .short _0223146A - _02231450 - 2 ; case 2 + .short _02231472 - _02231450 - 2 ; case 3 + .short _02231486 - _02231450 - 2 ; case 4 +_0223145A: + ldr r0, _02231490 ; =0x0223B888 + mov r1, #0x27 + str r1, [r0, #0x10] + bx lr +_02231462: + ldr r0, _02231490 ; =0x0223B888 + mov r1, #0x28 + str r1, [r0, #0x10] + bx lr +_0223146A: + ldr r0, _02231490 ; =0x0223B888 + mov r1, #0x29 + str r1, [r0, #0x10] + bx lr +_02231472: + ldr r0, _02231490 ; =0x0223B888 + ldr r1, [r0, #0x10] + cmp r1, #0x29 + bne _02231480 + mov r1, #0x2b + str r1, [r0, #0x10] + bx lr +_02231480: + mov r1, #0x2e + str r1, [r0, #0x10] + bx lr +_02231486: + ldr r0, _02231490 ; =0x0223B888 + mov r1, #0x2f + str r1, [r0, #0x10] +_0223148C: + bx lr + nop +_02231490: .word 0x0223B888 + thumb_func_end MOD83_02231440 + + thumb_func_start MOD83_02231494 +MOD83_02231494: ; 0x02231494 + push {r3, lr} + bl FUN_0202E4F0 + ldr r0, _022314B0 ; =0x0223B888 + ldr r0, [r0, #8] + bl FUN_02016A18 + bl FUN_02033ED0 + ldr r0, _022314B0 ; =0x0223B888 + mov r1, #0 + str r1, [r0, #8] + pop {r3, pc} + nop +_022314B0: .word 0x0223B888 + thumb_func_end MOD83_02231494 + + thumb_func_start MOD83_022314B4 +MOD83_022314B4: ; 0x022314B4 + push {r4, lr} + add r4, r0, #0 + ldr r0, _022315C0 ; =0x0223B888 + ldr r0, [r0, #0x10] + cmp r0, #0x2b + bne _022314DA + bl MOD83_02231494 + bl MOD83_02239CEC + cmp r0, #0 + beq _022314D4 + ldr r0, _022315C0 ; =0x0223B888 + mov r1, #0x2c + str r1, [r0, #0x10] + b _022314DA +_022314D4: + ldr r0, _022315C0 ; =0x0223B888 + mov r1, #0x2d + str r1, [r0, #0x10] +_022314DA: + ldr r0, _022315C0 ; =0x0223B888 + ldr r0, [r0, #0x10] + cmp r0, #0x24 + beq _022314F6 + cmp r0, #0x25 + beq _022314F6 + cmp r0, #0x26 + beq _022314F6 + cmp r0, #0x27 + beq _022314F6 + cmp r0, #0x28 + beq _022314F6 + cmp r0, #0x2a + bne _02231502 +_022314F6: + bl WM_GetLinkLevel + mov r1, #3 + sub r0, r1, r0 + bl FUN_02033EEC +_02231502: + ldr r1, _022315C0 ; =0x0223B888 + ldr r0, [r1, #0x10] + sub r0, #0x24 + cmp r0, #0xb + bhi _0223157C + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02231518: ; jump table + .short _02231530 - _02231518 - 2 ; case 0 + .short _0223153C - _02231518 - 2 ; case 1 + .short _0223157C - _02231518 - 2 ; case 2 + .short _0223157C - _02231518 - 2 ; case 3 + .short _02231572 - _02231518 - 2 ; case 4 + .short _0223157C - _02231518 - 2 ; case 5 + .short _0223157C - _02231518 - 2 ; case 6 + .short _0223157C - _02231518 - 2 ; case 7 + .short _0223157C - _02231518 - 2 ; case 8 + .short _0223157C - _02231518 - 2 ; case 9 + .short _0223157A - _02231518 - 2 ; case 10 + .short _0223157C - _02231518 - 2 ; case 11 +_02231530: + bl FUN_0202E49C + ldr r0, _022315C0 ; =0x0223B888 + mov r1, #0x25 + str r1, [r0, #0x10] + b _0223157C +_0223153C: + bl FUN_0202E4C8 + cmp r0, #1 + bne _0223157C + ldr r0, _022315C0 ; =0x0223B888 + mov r1, #0 + str r1, [r0] + bl MOD83_02239D98 + add r1, r0, #0 + mov r0, #0x56 + bl FUN_02016998 + add r2, r0, #0 + ldr r0, _022315C0 ; =0x0223B888 + ldr r1, _022315C4 ; =MOD83_02231440 + str r2, [r0, #8] + ldr r0, _022315C8 ; =0x000005D4 + add r0, r4, r0 + bl MOD83_02239A98 + ldr r0, _022315C0 ; =0x0223B888 + mov r1, #0x26 + str r1, [r0, #0x10] + bl FUN_02033E74 + b _0223157C +_02231572: + ldr r0, [r1] + add r0, r0, #1 + str r0, [r1] + b _0223157C +_0223157A: + pop {r4, pc} +_0223157C: + ldr r0, _022315CC ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + beq _022315BC + ldr r0, _022315C0 ; =0x0223B888 + ldr r0, [r0, #0x10] + sub r0, #0x27 + cmp r0, #8 + bhi _022315BC + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223159C: ; jump table + .short _022315AE - _0223159C - 2 ; case 0 + .short _022315AE - _0223159C - 2 ; case 1 + .short _022315BC - _0223159C - 2 ; case 2 + .short _022315BC - _0223159C - 2 ; case 3 + .short _022315BC - _0223159C - 2 ; case 4 + .short _022315BC - _0223159C - 2 ; case 5 + .short _022315BC - _0223159C - 2 ; case 6 + .short _022315BC - _0223159C - 2 ; case 7 + .short _022315AE - _0223159C - 2 ; case 8 +_022315AE: + bl MOD83_02239A14 + cmp r0, #0 + beq _022315BC + ldr r0, _022315C0 ; =0x0223B888 + mov r1, #0x2a + str r1, [r0, #0x10] +_022315BC: + pop {r4, pc} + nop +_022315C0: .word 0x0223B888 +_022315C4: .word MOD83_02231440 +_022315C8: .word 0x000005D4 +_022315CC: .word 0x021C48B8 + thumb_func_end MOD83_022314B4 + + thumb_func_start MOD83_022315D0 +MOD83_022315D0: ; 0x022315D0 + push {r3, lr} + sub sp, #8 + bl MOD83_022315F8 + bl MOD83_02238AFC + bl MOD83_02238B4C + mov r0, #0xd + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0xf + mov r2, #0xc + mov r3, #0xe + bl MOD83_02238BC4 + add sp, #8 + pop {r3, pc} + thumb_func_end MOD83_022315D0 + + thumb_func_start MOD83_022315F8 +MOD83_022315F8: ; 0x022315F8 + push {r4, lr} + add r4, r0, #0 + ldr r0, _0223165C ; =0x00002D64 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02231608 + bl FUN_0201FFC8 +_02231608: + ldr r0, _02231660 ; =0x00002D68 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02231614 + bl FUN_0201FFC8 +_02231614: + ldr r0, _02231660 ; =0x00002D68 + mov r1, #0 + str r1, [r4, r0] + ldr r2, [r4, r0] + sub r1, r0, #4 + str r2, [r4, r1] + add r0, r0, #4 + ldr r0, [r4, r0] + cmp r0, #0 + beq _0223162C + bl FUN_0201FFC8 +_0223162C: + ldr r0, _02231664 ; =0x00002D70 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02231638 + bl FUN_0201FFC8 +_02231638: + ldr r0, _02231668 ; =0x00002D74 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02231644 + bl FUN_0201FFC8 +_02231644: + ldr r1, _02231668 ; =0x00002D74 + mov r0, #0 + str r0, [r4, r1] + ldr r2, [r4, r1] + sub r0, r1, #4 + str r2, [r4, r0] + ldr r0, [r4, r0] + sub r1, #8 + str r0, [r4, r1] + bl MOD83_02238E48 + pop {r4, pc} + .align 2, 0 +_0223165C: .word 0x00002D64 +_02231660: .word 0x00002D68 +_02231664: .word 0x00002D70 +_02231668: .word 0x00002D74 + thumb_func_end MOD83_022315F8 + + thumb_func_start MOD83_0223166C +MOD83_0223166C: ; 0x0223166C + push {r3, r4, lr} + sub sp, #4 + ldr r1, _022316B4 ; =0x00003CEC + add r4, r0, #0 + mov r0, #0 + str r0, [r4, r1] + mov r1, #1 + str r1, [sp] + ldr r1, _022316B8 ; =0x00002D64 + mov r2, #0x48 + ldr r1, [r4, r1] + mov r3, #0xa8 + bl MOD83_02238DBC + ldr r1, _022316B8 ; =0x00002D64 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #2 + bl FUN_02020238 + mov r0, #0 + ldr r1, _022316BC ; =0x00002D68 + str r0, [sp] + ldr r1, [r4, r1] + mov r2, #0xb8 + mov r3, #0xa8 + bl MOD83_02238DBC + ldr r1, _022316BC ; =0x00002D68 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #2 + bl FUN_02020238 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_022316B4: .word 0x00003CEC +_022316B8: .word 0x00002D64 +_022316BC: .word 0x00002D68 + thumb_func_end MOD83_0223166C + + thumb_func_start MOD83_022316C0 +MOD83_022316C0: ; 0x022316C0 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02019048 + cmp r0, #1 + bne _022316D6 + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0200CCF8 +_022316D6: + pop {r3, r4, r5, pc} + thumb_func_end MOD83_022316C0 + + thumb_func_start MOD83_022316D8 +MOD83_022316D8: ; 0x022316D8 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02019048 + cmp r0, #1 + bne _022316EE + add r0, r5, #0 + add r1, r4, #0 + bl FUN_0200D0E0 +_022316EE: + pop {r3, r4, r5, pc} + thumb_func_end MOD83_022316D8 + + thumb_func_start MOD83_022316F0 +MOD83_022316F0: ; 0x022316F0 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r0, #0 + ldr r0, _02231794 ; =0x00002B6C + add r4, r1, #0 + ldr r0, [r5, r0] + add r7, r2, #0 + str r3, [sp] + cmp r0, #0 + beq _02231708 + bl FUN_02012870 +_02231708: + ldr r0, _02231798 ; =0x00002B68 + ldr r0, [r5, r0] + cmp r0, #0 + beq _02231718 + mov r1, #0 + add r2, r1, #0 + bl FUN_02001300 +_02231718: + add r0, r7, #0 + mov r1, #0x57 + bl FUN_02012838 + ldr r1, _02231794 ; =0x00002B6C + ldr r2, _0223179C ; =0x00000172 + str r0, [r5, r1] + mov r0, #0 + mov r1, #0x1a + mov r3, #0x57 + bl FUN_0200A86C + ldr r1, _022317A0 ; =0x000029A4 + mov r6, #0 + str r0, [r5, r1] + cmp r7, #0 + ble _02231752 +_0223173A: + ldr r0, _02231794 ; =0x00002B6C + ldr r1, _022317A0 ; =0x000029A4 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r2, [r4] + ldr r3, [r4, #4] + bl FUN_02012880 + add r6, r6, #1 + add r4, #8 + cmp r6, r7 + blt _0223173A +_02231752: + ldr r0, _022317A0 ; =0x000029A4 + ldr r0, [r5, r0] + bl FUN_0200A8B8 + ldr r4, _022317A4 ; =0x0223AE90 + add r3, sp, #4 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, _02231794 ; =0x00002B6C + mov r1, #0 + ldr r0, [r5, r0] + mov r3, #0x57 + str r0, [sp, #4] + add r0, sp, #4 + strh r7, [r0, #0x10] + ldr r0, [sp] + str r0, [sp, #0x10] + add r0, r2, #0 + add r2, r1, #0 + bl FUN_020010A8 + ldr r1, _02231798 ; =0x00002B68 + str r0, [r5, r1] + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + nop +_02231794: .word 0x00002B6C +_02231798: .word 0x00002B68 +_0223179C: .word 0x00000172 +_022317A0: .word 0x000029A4 +_022317A4: .word 0x0223AE90 + thumb_func_end MOD83_022316F0 + + thumb_func_start MOD83_022317A8 +MOD83_022317A8: ; 0x022317A8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + ldr r2, _02231818 ; =0x00000172 + add r5, r0, #0 + add r7, r1, #0 + mov r0, #1 + mov r1, #0x1a + mov r3, #0x57 + bl FUN_0200A86C + add r4, r0, #0 + mov r0, #0x57 + bl FUN_0200AA80 + add r6, r0, #0 + mov r0, #1 + mov r1, #6 + bl FUN_02002E4C + add r1, r0, #0 + add r0, r5, #0 + bl FUN_02019620 + add r0, r6, #0 + add r1, r4, #0 + add r2, r7, #0 + mov r3, #0x57 + bl FUN_0200A9C4 + add r7, r0, #0 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _0223181C ; =0x00010200 + mov r1, #1 + str r0, [sp, #8] + add r0, r5, #0 + add r2, r7, #0 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r5, #0 + bl FUN_020191D0 + add r0, r7, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_0200A8B8 + add r0, r6, #0 + bl FUN_0200AB18 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02231818: .word 0x00000172 +_0223181C: .word 0x00010200 + thumb_func_end MOD83_022317A8 + + thumb_func_start MOD83_02231820 +MOD83_02231820: ; 0x02231820 + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x57 + mov r3, #0x1e + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0xb + mov r2, #0 + lsl r3, r3, #4 + bl FUN_02006930 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x57 + mov r3, #6 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0x10 + mov r2, #0 + lsl r3, r3, #6 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + mov r0, #3 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x57 + str r0, [sp, #0xc] + mov r0, #0x74 + mov r1, #0x11 + add r2, r4, #0 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + mov r0, #0x57 + str r0, [sp, #0xc] + mov r0, #0x74 + mov r1, #0x12 + add r2, r4, #0 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #0xc + mov r2, #0 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #1 + add r3, r2, #0 + bl FUN_020186B4 + add r0, r4, #0 + mov r1, #1 + bl FUN_02017CD0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_02231820 + + thumb_func_start MOD83_022318B0 +MOD83_022318B0: ; 0x022318B0 + push {r4, lr} + bl FUN_02006278 + add r4, r0, #0 + bl MOD83_02231A00 + ldr r0, _022318DC ; =0x00002B70 + mov r1, #0x2e + add r0, r4, r0 + bl MOD83_022317A8 + mov r3, #0xae + lsl r3, r3, #6 + add r1, r4, r3 + add r3, #0x10 + ldr r3, [r4, r3] + add r0, r4, #0 + mov r2, #0xa + bl MOD83_02231F88 + mov r0, #0xd + pop {r4, pc} + .align 2, 0 +_022318DC: .word 0x00002B70 + thumb_func_end MOD83_022318B0 + + thumb_func_start MOD83_022318E0 +MOD83_022318E0: ; 0x022318E0 + push {r4, lr} + bl FUN_02006278 + add r4, r0, #0 + bl MOD83_02231A00 + mov r1, #0xad + lsl r1, r1, #6 + ldr r0, [r4, r1] + add r1, #0x20 + ldr r1, [r4, r1] + add r1, r1, #1 + bl FUN_0202AE90 + cmp r0, #1 + ldr r0, _0223192C ; =0x00002B70 + bne _0223190C + add r0, r4, r0 + mov r1, #0x3e + bl MOD83_022317A8 + b _02231914 +_0223190C: + add r0, r4, r0 + mov r1, #0x3d + bl MOD83_022317A8 +_02231914: + mov r3, #0xae + lsl r3, r3, #6 + add r1, r4, r3 + add r3, #0x10 + ldr r3, [r4, r3] + add r0, r4, #0 + mov r2, #9 + bl MOD83_02231F88 + mov r0, #0xc + pop {r4, pc} + nop +_0223192C: .word 0x00002B70 + thumb_func_end MOD83_022318E0 + + thumb_func_start MOD83_02231930 +MOD83_02231930: ; 0x02231930 + push {r4, lr} + bl FUN_02006278 + add r4, r0, #0 + bl MOD83_02231A00 + ldr r0, _022319C0 ; =0x00002B70 + mov r1, #0x3f + add r0, r4, r0 + bl MOD83_022317A8 + ldr r0, _022319C0 ; =0x00002B70 + mov r1, #0x13 + add r0, r4, r0 + bl FUN_0200D858 + ldr r1, _022319C4 ; =0x00003CF0 + str r0, [r4, r1] + mov r1, #0xad + lsl r1, r1, #6 + ldr r0, [r4, r1] + add r1, #0x20 + ldr r1, [r4, r1] + bl FUN_0202ADC8 + ldr r0, _022319C8 ; =0x00002B44 + ldr r0, [r4, r0] + bl FUN_02022720 + ldr r0, _022319C4 ; =0x00003CF0 + ldr r0, [r4, r0] + bl FUN_0200DBFC + mov r0, #0xad + lsl r0, r0, #6 + ldr r0, [r4, r0] + bl FUN_0202AE70 + cmp r0, #0 + bne _02231984 + mov r0, #0x1a + pop {r4, pc} +_02231984: + ldr r1, _022319CC ; =0x00002B60 + add r0, r4, #0 + ldr r1, [r4, r1] + mov r2, #1 + bl MOD83_022320A4 + ldr r1, _022319CC ; =0x00002B60 + str r0, [r4, r1] + add r1, #0x10 + add r0, r4, r1 + mov r1, #0x24 + bl MOD83_022317A8 + mov r3, #0xae + lsl r3, r3, #6 + add r1, r4, r3 + add r3, #0x10 + ldr r3, [r4, r3] + add r0, r4, #0 + mov r2, #8 + bl MOD83_02231F88 + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD83_02231DF0 + mov r0, #5 + pop {r4, pc} + nop +_022319C0: .word 0x00002B70 +_022319C4: .word 0x00003CF0 +_022319C8: .word 0x00002B44 +_022319CC: .word 0x00002B60 + thumb_func_end MOD83_02231930 + + thumb_func_start MOD83_022319D0 +MOD83_022319D0: ; 0x022319D0 + push {r4, lr} + bl FUN_02006278 + add r4, r0, #0 + bl MOD83_02231A00 + ldr r0, _022319FC ; =0x00002B70 + mov r1, #0x24 + add r0, r4, r0 + bl MOD83_022317A8 + mov r3, #0xae + lsl r3, r3, #6 + add r1, r4, r3 + add r3, #0x10 + ldr r3, [r4, r3] + add r0, r4, #0 + mov r2, #8 + bl MOD83_02231F88 + mov r0, #5 + pop {r4, pc} + .align 2, 0 +_022319FC: .word 0x00002B70 + thumb_func_end MOD83_022319D0 + + thumb_func_start MOD83_02231A00 +MOD83_02231A00: ; 0x02231A00 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02231A40 ; =0x00002B6C + ldr r0, [r4, r0] + bl FUN_02012870 + mov r1, #0 + ldr r0, _02231A40 ; =0x00002B6C + add r2, r1, #0 + str r1, [r4, r0] + sub r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02001300 + ldr r0, _02231A44 ; =0x00002B68 + mov r1, #0 + str r1, [r4, r0] + add r0, #0x18 + add r0, r4, r0 + bl MOD83_022316C0 + mov r0, #0xae + lsl r0, r0, #6 + add r0, r4, r0 + bl FUN_02019570 + mov r0, #0xae + lsl r0, r0, #6 + add r0, r4, r0 + bl FUN_02019178 + pop {r4, pc} + .align 2, 0 +_02231A40: .word 0x00002B6C +_02231A44: .word 0x00002B68 + thumb_func_end MOD83_02231A00 + + thumb_func_start MOD83_02231A48 +MOD83_02231A48: ; 0x02231A48 + mov r0, #1 + bx lr + thumb_func_end MOD83_02231A48 + + thumb_func_start MOD83_02231A4C +MOD83_02231A4C: ; 0x02231A4C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + add r7, r1, #0 + ldr r1, [r5] + mov r0, #0x25 + add r4, r2, #0 + bl FUN_020219F4 + ldr r1, _02231A9C ; =0x00002B60 + add r6, r0, #0 + ldr r2, [r5, r1] + sub r1, #0xc + lsl r2, r2, #2 + add r2, r5, r2 + ldr r2, [r2, r1] + mov r1, #0x41 + lsl r1, r1, #2 + add r1, r2, r1 + mov r2, #0x24 + bl FUN_02021E8C + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r4, [sp, #8] + add r0, r7, #0 + mov r1, #1 + add r2, r6, #0 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #1 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_02231A9C: .word 0x00002B60 + thumb_func_end MOD83_02231A4C + + thumb_func_start MOD83_02231AA0 +MOD83_02231AA0: ; 0x02231AA0 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r4, r0, #0 + ldr r0, _02231B10 ; =0x00002B60 + add r6, r1, #0 + ldr r1, [r4, r0] + add r5, r2, #0 + lsl r2, r1, #2 + add r3, r4, r2 + add r2, r0, #0 + sub r2, #0xc + ldr r3, [r3, r2] + ldr r2, _02231B14 ; =0x00000152 + ldrb r2, [r3, r2] + lsl r2, r2, #0x1c + lsr r2, r2, #0x1f + bne _02231AC6 + mov r2, #0x27 + b _02231ADE +_02231AC6: + sub r0, #0x20 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02231AD8 + add r1, r1, #1 + bl FUN_0202AE90 + cmp r0, #1 + bne _02231ADC +_02231AD8: + mov r2, #0x25 + b _02231ADE +_02231ADC: + mov r2, #0x26 +_02231ADE: + ldr r1, _02231B18 ; =0x000029A0 + ldr r3, [r4] + ldr r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + bl FUN_0200A9C4 + add r4, r0, #0 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r5, [sp, #8] + add r0, r6, #0 + mov r1, #1 + add r2, r4, #0 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + mov r0, #1 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_02231B10: .word 0x00002B60 +_02231B14: .word 0x00000152 +_02231B18: .word 0x000029A0 + thumb_func_end MOD83_02231AA0 + + thumb_func_start MOD83_02231B1C +MOD83_02231B1C: ; 0x02231B1C + push {r4, lr} + sub sp, #0x18 + ldr r1, _02231B7C ; =0x00002B60 + add r4, r0, #0 + ldr r2, [r4, r1] + sub r1, #0xc + lsl r2, r2, #2 + add r2, r4, r2 + ldr r2, [r2, r1] + mov r1, #0xd5 + lsl r1, r1, #2 + ldr r1, [r2, r1] + add r0, sp, #8 + bl RTC_ConvertDayToDate + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _02231B80 ; =0x000029A0 + mov r2, #0x7d + ldr r3, [sp, #8] + lsl r2, r2, #4 + add r2, r3, r2 + ldr r0, [r4, r0] + mov r1, #0 + mov r3, #4 + bl FUN_0200AD38 + ldr r0, _02231B80 ; =0x000029A0 + ldr r2, [sp, #0xc] + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_0200B764 + mov r1, #2 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _02231B80 ; =0x000029A0 + ldr r2, [sp, #0x10] + ldr r0, [r4, r0] + add r3, r1, #0 + bl FUN_0200AD38 + mov r0, #1 + add sp, #0x18 + pop {r4, pc} + .align 2, 0 +_02231B7C: .word 0x00002B60 +_02231B80: .word 0x000029A0 + thumb_func_end MOD83_02231B1C + + thumb_func_start MOD83_02231B84 +MOD83_02231B84: ; 0x02231B84 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r0, #0 + add r7, r1, #0 + mov r0, #0xfb + mov r1, #0x57 + add r4, r2, #0 + bl FUN_020219F4 + ldr r1, _02231BD4 ; =0x00002B60 + add r6, r0, #0 + ldr r2, [r5, r1] + sub r1, #0xc + lsl r2, r2, #2 + add r2, r5, r2 + ldr r2, [r2, r1] + mov r1, #0x55 + lsl r1, r1, #2 + add r1, r2, r1 + mov r2, #0xfa + bl FUN_02021E8C + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r4, [sp, #8] + add r0, r7, #0 + mov r1, #1 + add r2, r6, #0 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + nop +_02231BD4: .word 0x00002B60 + thumb_func_end MOD83_02231B84 + + thumb_func_start MOD83_02231BD8 +MOD83_02231BD8: ; 0x02231BD8 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r3, r0, #0 + ldr r0, _02231C50 ; =0x00002B60 + add r6, r1, #0 + ldr r1, [r3, r0] + sub r0, #0xc + lsl r1, r1, #2 + add r1, r3, r1 + ldr r1, [r1, r0] + mov r0, #0xd2 + lsl r0, r0, #2 + add r5, r2, #0 + ldrb r2, [r1, r0] + cmp r2, #0xff + bne _02231C2C + ldr r1, _02231C54 ; =0x000029A0 + mov r2, #0x33 + ldr r0, [r3, r1] + add r1, r1, #4 + ldr r1, [r3, r1] + mov r3, #0x57 + bl FUN_0200A9C4 + add r4, r0, #0 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r5, [sp, #8] + add r0, r6, #0 + mov r1, #1 + add r2, r4, #0 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + mov r0, #0 + pop {r4, r5, r6, pc} +_02231C2C: + cmp r2, #0 + beq _02231C48 + mov r1, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, _02231C54 ; =0x000029A0 + ldr r0, [r3, r0] + mov r3, #3 + bl FUN_0200AD38 + add sp, #0x10 + mov r0, #1 + pop {r4, r5, r6, pc} +_02231C48: + mov r0, #0 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_02231C50: .word 0x00002B60 +_02231C54: .word 0x000029A0 + thumb_func_end MOD83_02231BD8 + + thumb_func_start MOD83_02231C58 +MOD83_02231C58: ; 0x02231C58 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r5, r0, #0 + mov r0, #0 + add r7, r1, #0 + add r1, r0, #1 + ldr r0, _02231D38 ; =0x0223AE40 + ldr r2, _02231D38 ; =0x0223AE40 + ldr r0, [r0, #0x30] + ldr r2, [r2, #0x34] + str r0, [sp, #0x14] + ldr r0, _02231D3C ; =0x00002B60 + str r2, [sp, #0x18] + ldr r2, [r5, r0] + sub r0, #0xc + lsl r2, r2, #2 + add r2, r5, r2 + ldr r2, [r2, r0] + mov r0, #0xd2 + lsl r0, r0, #2 + ldrb r0, [r2, r0] + add r4, r1, #0 + add r6, sp, #0x14 + cmp r0, #0 + beq _02231C9C + ldr r0, _02231D38 ; =0x0223AE40 + ldr r2, _02231D38 ; =0x0223AE40 + ldr r0, [r0, #0x38] + add r4, r1, #1 + lsl r1, r1, #3 + ldr r2, [r2, #0x3c] + add r3, r6, r1 + str r0, [r6, r1] + str r2, [r3, #4] +_02231C9C: + mov r1, #0xad + lsl r1, r1, #6 + ldr r0, [r5, r1] + add r1, #0x20 + ldr r1, [r5, r1] + add r1, r1, #1 + bl FUN_0202AE90 + cmp r0, #0 + bne _02231CC2 + ldr r2, _02231D38 ; =0x0223AE40 + lsl r1, r4, #3 + ldr r0, [r2, #0x40] + add r6, sp, #0x14 + ldr r2, [r2, #0x44] + add r3, r6, r1 + str r0, [r6, r1] + add r4, r4, #1 + str r2, [r3, #4] +_02231CC2: + ldr r2, _02231D38 ; =0x0223AE40 + lsl r1, r4, #3 + ldr r0, [r2, #0x48] + add r6, sp, #0x14 + str r0, [r6, r1] + ldr r2, [r2, #0x4c] + add r3, r6, r1 + ldr r0, _02231D40 ; =0x00002B3C + str r2, [r3, #4] + ldr r6, [r5, r0] + add r0, r7, #0 + bl FUN_02019570 + add r0, r7, #0 + bl FUN_02019178 + add r1, r4, #1 + mov r0, #4 + sub r0, r0, r1 + ldr r1, [r6, #8] + lsl r0, r0, #1 + add r1, r1, r0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp] + ldr r1, [r6, #0xc] + mov r2, #2 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + str r1, [sp, #4] + ldr r1, [r6, #0x10] + sub r0, r1, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + ldr r0, _02231D44 ; =0x00002B38 + add r1, r7, #0 + ldr r0, [r5, r0] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, _02231D48 ; =0x0000299C + ldr r3, [r6, #4] + ldr r0, [r5, r0] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 + add r0, r5, #0 + add r1, sp, #0x14 + add r2, r4, #1 + add r3, r7, #0 + bl MOD83_022316F0 + mov r0, #1 + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02231D38: .word 0x0223AE40 +_02231D3C: .word 0x00002B60 +_02231D40: .word 0x00002B3C +_02231D44: .word 0x00002B38 +_02231D48: .word 0x0000299C + thumb_func_end MOD83_02231C58 + + thumb_func_start MOD83_02231D4C +MOD83_02231D4C: ; 0x02231D4C + push {r3, lr} + add r3, r1, #0 + ldr r1, _02231D5C ; =0x0223AE40 + mov r2, #2 + bl MOD83_022316F0 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02231D5C: .word 0x0223AE40 + thumb_func_end MOD83_02231D4C + + thumb_func_start MOD83_02231D60 +MOD83_02231D60: ; 0x02231D60 + push {r3, lr} + add r3, r1, #0 + ldr r1, _02231D70 ; =0x0223AE60 + mov r2, #2 + bl MOD83_022316F0 + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02231D70: .word 0x0223AE60 + thumb_func_end MOD83_02231D60 + + thumb_func_start MOD83_02231D74 +MOD83_02231D74: ; 0x02231D74 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _02231D94 ; =0x00002B70 + add r4, r1, #0 + add r0, r5, r0 + mov r1, #2 + bl MOD83_022317A8 + ldr r1, _02231D98 ; =0x0223AE50 + add r0, r5, #0 + mov r2, #2 + add r3, r4, #0 + bl MOD83_022316F0 + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_02231D94: .word 0x00002B70 +_02231D98: .word 0x0223AE50 + thumb_func_end MOD83_02231D74 + + thumb_func_start MOD83_02231D9C +MOD83_02231D9C: ; 0x02231D9C + push {r3, lr} + sub sp, #8 + mov r3, #1 + str r3, [sp] + ldr r1, _02231DB8 ; =0x000029A0 + str r3, [sp, #4] + ldr r0, [r0, r1] + mov r1, #0 + add r2, r1, #0 + bl FUN_0200AD38 + mov r0, #1 + add sp, #8 + pop {r3, pc} + .align 2, 0 +_02231DB8: .word 0x000029A0 + thumb_func_end MOD83_02231D9C + + thumb_func_start MOD83_02231DBC +MOD83_02231DBC: ; 0x02231DBC + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x57 + str r0, [sp, #8] + add r6, r2, #0 + mov r0, #0 + add r4, r3, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + cmp r4, #0 + beq _02231DE4 + mov r0, #0x1b + str r0, [r4] +_02231DE4: + ldr r0, _02231DEC ; =0x00002BE0 + str r6, [r5, r0] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_02231DEC: .word 0x00002BE0 + thumb_func_end MOD83_02231DBC + + thumb_func_start MOD83_02231DF0 +MOD83_02231DF0: ; 0x02231DF0 + push {r4, r5, r6, r7, lr} + sub sp, #0x34 + add r5, r0, #0 + str r2, [sp, #0x14] + ldr r2, _02231F68 ; =0x00000172 + ldr r3, [r5] + mov r0, #1 + mov r1, #0x1a + ldr r4, _02231F6C ; =0x0223AEB0 + bl FUN_0200A86C + ldr r1, _02231F70 ; =0x000029A4 + str r0, [r5, r1] + ldr r0, [r5] + bl FUN_0200AA80 + ldr r1, _02231F74 ; =0x000029A0 + str r0, [r5, r1] + ldr r1, _02231F78 ; =0x00002B64 + ldr r0, [sp, #0x14] + str r0, [r5, r1] + ldr r1, [sp, #0x14] + add r0, r5, #0 + bl MOD83_02232118 + mov r0, #0 + str r0, [sp, #0x2c] + ldr r0, _02231F7C ; =0x000029A8 + add r7, r4, #0 + str r5, [sp, #0x1c] + add r6, r5, r0 +_02231E2E: + ldr r1, [r7] + ldr r0, [sp, #0x14] + cmp r0, r1 + beq _02231E50 + cmp r1, #2 + beq _02231E50 + ldr r1, [sp, #0x1c] + ldr r0, _02231F7C ; =0x000029A8 + ldr r0, [r1, r0] + cmp r0, #0 + beq _02231E50 + add r0, r6, #0 + bl FUN_02019570 + add r0, r6, #0 + bl FUN_02019178 +_02231E50: + ldr r0, [sp, #0x1c] + add r7, #0x30 + add r0, #0x10 + str r0, [sp, #0x1c] + ldr r0, [sp, #0x2c] + add r6, #0x10 + add r0, r0, #1 + str r0, [sp, #0x2c] + cmp r0, #0x13 + blo _02231E2E + mov r0, #0 + str r0, [sp, #0x18] + ldr r0, _02231F7C ; =0x000029A8 + mov r7, #0x31 + str r5, [sp, #0x24] + str r5, [sp, #0x20] + add r6, r5, r0 +_02231E72: + ldr r1, [r4] + ldr r0, [sp, #0x14] + cmp r0, r1 + bne _02231F2E + ldr r1, [sp, #0x24] + ldr r0, _02231F7C ; =0x000029A8 + ldr r0, [r1, r0] + cmp r0, #0 + bne _02231EBE + ldr r1, [sp, #0x20] + ldr r0, _02231F80 ; =0x00002AE8 + mov r2, #0 + str r7, [r1, r0] + ldr r0, [r4, #8] + add r1, r6, #0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r4, #0xc] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, [r4, #0x10] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, _02231F84 ; =0x0000299C + ldr r3, [r4, #4] + ldr r0, [r5, r0] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 +_02231EBE: + ldr r0, [r4, #0x14] + ldr r1, [r4, #0x1c] + lsl r0, r0, #0x18 + lsl r1, r1, #0x18 + lsr r0, r0, #0x18 + lsr r1, r1, #0x18 + bl FUN_02002E4C + add r1, r0, #0 + add r0, r6, #0 + bl FUN_02019620 + ldr r0, [r4, #0x18] + ldr r3, [r4, #0x24] + str r0, [sp, #0x28] + ldr r2, [sp, #0x28] + add r0, r5, #0 + add r1, r6, #0 + blx r3 + cmp r0, #1 + bne _02231F20 + ldr r2, [r4, #0x20] + cmp r2, #0 + beq _02231F20 + ldr r0, _02231F74 ; =0x000029A0 + ldr r1, _02231F70 ; =0x000029A4 + ldr r0, [r5, r0] + ldr r1, [r5, r1] + ldr r3, [r5] + bl FUN_0200A9C4 + str r0, [sp, #0x30] + ldr r0, [r4, #0x2c] + ldr r2, [sp, #0x30] + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, [sp, #0x28] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r1, [r4, #0x14] + ldr r3, [r4, #0x28] + add r0, r6, #0 + bl FUN_0201BDE0 + ldr r0, [sp, #0x30] + bl FUN_02021A20 +_02231F20: + add r0, r6, #0 + bl FUN_020191D0 + ldr r1, [r4, #0xc] + ldr r0, [r4, #0x10] + mul r0, r1 + add r7, r7, r0 +_02231F2E: + ldr r0, [sp, #0x24] + add r4, #0x30 + add r0, #0x10 + str r0, [sp, #0x24] + ldr r0, [sp, #0x20] + add r6, #0x10 + add r0, r0, #4 + str r0, [sp, #0x20] + ldr r0, [sp, #0x18] + add r0, r0, #1 + str r0, [sp, #0x18] + cmp r0, #0x13 + blo _02231E72 + ldr r0, _02231F70 ; =0x000029A4 + ldr r0, [r5, r0] + bl FUN_0200A8B8 + ldr r0, _02231F74 ; =0x000029A0 + ldr r0, [r5, r0] + bl FUN_0200AB18 + ldr r0, [sp, #0x14] + cmp r0, #0 + bne _02231F64 + add r0, r5, #0 + bl MOD83_0223227C +_02231F64: + add sp, #0x34 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02231F68: .word 0x00000172 +_02231F6C: .word 0x0223AEB0 +_02231F70: .word 0x000029A4 +_02231F74: .word 0x000029A0 +_02231F78: .word 0x00002B64 +_02231F7C: .word 0x000029A8 +_02231F80: .word 0x00002AE8 +_02231F84: .word 0x0000299C + thumb_func_end MOD83_02231DF0 + + thumb_func_start MOD83_02231F88 +MOD83_02231F88: ; 0x02231F88 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r0, #0 + add r7, r3, #0 + mov r3, #0x30 + ldr r0, _02232084 ; =0x0223AEB0 + mul r3, r2 + add r6, r1, #0 + add r4, r0, r3 + ldr r0, [r6] + cmp r0, #0 + bne _02231FD2 + ldr r0, [r4, #8] + mov r2, #2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + ldr r0, [r4, #0xc] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #4] + ldr r0, [r4, #0x10] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x10] + ldr r0, _02232088 ; =0x0000299C + ldr r3, [r4, #4] + ldr r0, [r5, r0] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 +_02231FD2: + ldr r1, [r4, #0x1c] + add r0, r6, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_02019620 + ldr r0, [r4, #0x20] + cmp r0, #0 + beq _02231FFE + ldr r2, _0223208C ; =0x00000172 + mov r0, #1 + mov r1, #0x1a + mov r3, #0x57 + bl FUN_0200A86C + ldr r1, _02232090 ; =0x000029A4 + str r0, [r5, r1] + mov r0, #0x57 + bl FUN_0200AA80 + ldr r1, _02232094 ; =0x000029A0 + str r0, [r5, r1] +_02231FFE: + ldr r0, _02232098 ; =0x00002B38 + ldr r2, _0223209C ; =0x00010200 + str r7, [r5, r0] + add r0, r0, #4 + str r4, [r5, r0] + ldr r3, [r4, #0x24] + add r0, r5, #0 + add r1, r6, #0 + blx r3 + ldr r2, [r4, #0x20] + cmp r2, #0 + beq _02232054 + ldr r1, _02232094 ; =0x000029A0 + mov r3, #0x57 + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + bl FUN_0200A9C4 + str r0, [sp, #0x14] + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, [r4, #0x18] + ldr r2, [sp, #0x14] + str r0, [sp, #8] + str r3, [sp, #0xc] + ldr r1, [r4, #0x14] + add r0, r6, #0 + bl FUN_0201BDE0 + ldr r0, [sp, #0x14] + bl FUN_02021A20 + ldr r0, _02232090 ; =0x000029A4 + ldr r0, [r5, r0] + bl FUN_0200A8B8 + ldr r0, _02232094 ; =0x000029A0 + ldr r0, [r5, r0] + bl FUN_0200AB18 +_02232054: + ldr r0, _022320A0 ; =0x00002B70 + add r0, r5, r0 + cmp r6, r0 + bne _0223206A + add r0, r6, #0 + mov r1, #0 + mov r2, #0x13 + mov r3, #0xa + bl FUN_0200D0BC + b _02232076 +_0223206A: + add r0, r6, #0 + mov r1, #0 + mov r2, #0xa + mov r3, #0xe + bl FUN_0200CCA4 +_02232076: + ldr r1, [r4, #0xc] + ldr r0, [r4, #0x10] + mul r0, r1 + add r0, r7, r0 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_02232084: .word 0x0223AEB0 +_02232088: .word 0x0000299C +_0223208C: .word 0x00000172 +_02232090: .word 0x000029A4 +_02232094: .word 0x000029A0 +_02232098: .word 0x00002B38 +_0223209C: .word 0x00010200 +_022320A0: .word 0x00002B70 + thumb_func_end MOD83_02231F88 + + thumb_func_start MOD83_022320A4 +MOD83_022320A4: ; 0x022320A4 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r5, r0, #0 + add r6, r2, #0 + add r7, r4, #0 +_022320AE: + add r4, r4, r6 + cmp r4, #3 + bne _022320B6 + mov r4, #0 +_022320B6: + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + bne _022320C0 + mov r4, #2 +_022320C0: + cmp r7, r4 + beq _022320D4 + mov r0, #0xad + lsl r0, r0, #6 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_0202AE4C + cmp r0, #0 + beq _022320AE +_022320D4: + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD83_022320A4 + + thumb_func_start MOD83_022320D8 +MOD83_022320D8: ; 0x022320D8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r4, r2, #0 + mov r2, #1 + add r5, r0, #0 + str r2, [sp] + add r6, r3, #0 + ldr r3, [r5] + mov r0, #0x74 + bl FUN_02006C98 + add r1, sp, #4 + add r7, r0, #0 + bl FUN_020B0180 + ldr r0, _02232114 ; =0x0000299C + ldr r2, [sp, #4] + lsl r1, r4, #0x18 + ldr r0, [r5, r0] + lsr r1, r1, #0x18 + add r2, #0xc + add r3, r6, #0 + bl FUN_02017DFC + add r0, r7, #0 + bl FUN_02016A18 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_02232114: .word 0x0000299C + thumb_func_end MOD83_022320D8 + + thumb_func_start MOD83_02232118 +MOD83_02232118: ; 0x02232118 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + ldr r0, [r5] + mov r2, #0 + add r4, r1, #0 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #3 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + mov r0, #3 + lsl r0, r0, #0xc + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + ldr r0, [r5] + ldr r2, _02232204 ; =0x0000299C + str r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r0, #0x74 + mov r1, #6 + bl FUN_0200687C + cmp r4, #0 + beq _0223215E + cmp r4, #1 + beq _0223217E + b _0223219C +_0223215E: + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + ldr r0, [r5] + ldr r2, _02232204 ; =0x0000299C + str r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r0, #0x74 + mov r1, #4 + bl FUN_020068C8 + b _0223219C +_0223217E: + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r3, #1 + str r3, [sp, #8] + ldr r0, [r5] + ldr r2, _02232204 ; =0x0000299C + str r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r0, #0x74 + mov r1, #5 + bl FUN_020068C8 +_0223219C: + mov r0, #0x20 + str r0, [sp] + ldr r0, [r5] + mov r1, #0 + str r0, [sp, #4] + mov r0, #0x74 + add r3, r0, #0 + add r2, r1, #0 + add r3, #0xec + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + mov r0, #2 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + ldr r0, [r5] + ldr r2, _02232204 ; =0x0000299C + str r0, [sp, #0xc] + ldr r2, [r5, r2] + mov r0, #0x74 + mov r3, #3 + bl FUN_0200687C + mov r2, #3 + add r0, r5, #0 + mov r1, #2 + lsl r3, r2, #9 + bl MOD83_022320D8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #0xb + str r0, [sp, #8] + ldr r0, _02232204 ; =0x0000299C + mov r2, #0 + ldr r0, [r5, r0] + mov r1, #3 + add r3, r2, #0 + bl FUN_020186B4 + ldr r0, _02232204 ; =0x0000299C + mov r1, #3 + ldr r0, [r5, r0] + bl FUN_02017CD0 + add sp, #0x10 + pop {r3, r4, r5, pc} + .align 2, 0 +_02232204: .word 0x0000299C + thumb_func_end MOD83_02232118 + + thumb_func_start MOD83_02232208 +MOD83_02232208: ; 0x02232208 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r5, r1, #0 + add r6, r2, #0 + bl FUN_02006278 + ldr r1, _02232270 ; =0x00002B68 + ldr r0, [r0, r1] + bl FUN_02001204 + add r4, r0, #0 + mov r0, #1 + mvn r0, r0 + cmp r4, r0 + beq _0223222E + add r0, r0, #1 + cmp r4, r0 + beq _0223226C + b _02232248 +_0223222E: + ldr r0, _02232274 ; =0x000005DC + bl FUN_020054C8 + cmp r6, #0 + beq _0223226C + add r0, r7, #0 + blx r6 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0223226C + str r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_02232248: + ldr r0, _02232274 ; =0x000005DC + bl FUN_020054C8 + cmp r4, #0 + beq _0223226C + cmp r4, #0x1e + bhs _0223225A + str r4, [r5] + pop {r3, r4, r5, r6, r7, pc} +_0223225A: + ldr r0, _02232278 ; =0x0223B89C + str r4, [r0] + add r0, r7, #0 + blx r4 + mov r1, #0 + mvn r1, r1 + cmp r0, r1 + beq _0223226C + str r0, [r5] +_0223226C: + pop {r3, r4, r5, r6, r7, pc} + nop +_02232270: .word 0x00002B68 +_02232274: .word 0x000005DC +_02232278: .word 0x0223B89C + thumb_func_end MOD83_02232208 + + thumb_func_start MOD83_0223227C +MOD83_0223227C: ; 0x0223227C + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + ldr r1, _02232398 ; =0x00002D6C + add r5, r0, #0 + ldr r0, [r5, r1] + cmp r0, #0 + bne _022322DC + add r0, r1, #4 + ldr r0, [r5, r0] + cmp r0, #0 + bne _022322DC + add r1, #8 + ldr r0, [r5, r1] + cmp r0, #0 + bne _022322DC + bl MOD83_02238B38 + cmp r0, #1 + bne _022322A8 + add r0, r5, #0 + bl MOD83_022315F8 +_022322A8: + bl MOD83_02238AFC + bl MOD83_02238B4C + mov r0, #0x18 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0x1a + mov r2, #0x17 + mov r3, #0x19 + bl MOD83_02238BC4 + bl FUN_0206B888 + add r1, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, [r5] + mov r2, #1 + str r0, [sp, #4] + mov r0, #0x13 + mov r3, #0x60 + bl FUN_02006930 +_022322DC: + mov r0, #0xb2 + mov r6, #0 + str r0, [sp, #0x10] + str r6, [sp, #8] + add r4, r5, #0 + mov r7, #0x64 +_022322E8: + ldr r0, _0223239C ; =0x00002B60 + ldr r0, [r5, r0] + lsl r0, r0, #2 + add r1, r5, r0 + ldr r0, _022323A0 ; =0x00002B54 + ldr r1, [r1, r0] + ldr r0, [sp, #8] + add r1, r1, r0 + ldr r0, _022323A4 ; =0x0000034A + ldrh r0, [r1, r0] + str r0, [sp, #0xc] + cmp r0, #0 + bne _02232312 + ldr r0, _02232398 ; =0x00002D6C + ldr r0, [r4, r0] + cmp r0, #0 + beq _0223237C + mov r1, #0 + bl FUN_020200A0 + b _0223237C +_02232312: + add r0, r6, #0 + add r0, #0xa + str r0, [sp] + ldr r1, _02232398 ; =0x00002D6C + ldr r2, [sp, #0x10] + ldr r1, [r4, r1] + mov r0, #0 + mov r3, #0x10 + bl MOD83_02238DBC + ldr r1, _02232398 ; =0x00002D6C + str r0, [r4, r1] + mov r1, #0 + ldr r0, [sp, #0xc] + add r2, r1, #0 + bl FUN_0206B6D4 + add r1, r0, #0 + ldr r0, [r5] + mov r2, #0 + str r0, [sp] + mov r0, #0x13 + add r3, sp, #0x18 + bl FUN_02006BB0 + str r0, [sp, #0x14] + ldr r0, [sp, #0x18] + mov r1, #2 + ldr r0, [r0, #0x14] + lsl r1, r1, #8 + bl DC_FlushRange + ldr r0, [sp, #0x18] + mov r2, #2 + ldr r0, [r0, #0x14] + lsl r1, r7, #5 + lsl r2, r2, #8 + bl GX_LoadOBJ + mov r1, #0 + ldr r0, [sp, #0xc] + add r2, r1, #0 + bl FUN_0206B7BC + add r1, r0, #0 + ldr r0, _02232398 ; =0x00002D6C + add r1, r1, #3 + ldr r0, [r4, r0] + bl FUN_02020248 + ldr r0, [sp, #0x14] + bl FUN_02016A18 +_0223237C: + ldr r0, [sp, #8] + add r6, r6, #1 + add r0, r0, #2 + str r0, [sp, #8] + ldr r0, [sp, #0x10] + add r4, r4, #4 + add r0, #0x19 + add r7, #0x10 + str r0, [sp, #0x10] + cmp r6, #3 + blt _022322E8 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_02232398: .word 0x00002D6C +_0223239C: .word 0x00002B60 +_022323A0: .word 0x00002B54 +_022323A4: .word 0x0000034A + thumb_func_end MOD83_0223227C + + thumb_func_start MOD83_022323A8 +MOD83_022323A8: ; 0x022323A8 + push {r4, lr} + mov r2, #2 + add r4, r0, #0 + mov r0, #3 + mov r1, #0x57 + lsl r2, r2, #0x10 + bl FUN_0201681C + ldr r1, _0223240C ; =0x00003CF4 + add r0, r4, #0 + mov r2, #0x57 + bl FUN_02006268 + ldr r2, _0223240C ; =0x00003CF4 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x57 + bl FUN_02016B94 + ldr r1, _02232410 ; =0x0000299C + str r0, [r4, r1] + mov r0, #0x57 + str r0, [r4] + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + ldr r0, _02232414 ; =0x00002B60 + mov r1, #2 + str r1, [r4, r0] + mov r1, #1 + add r0, #0x7c + str r1, [r4, r0] + mov r0, #0x57 + bl MOD83_02238770 + mov r2, #3 + mov r0, #0 + mov r1, #0x5b + lsl r2, r2, #8 + bl FUN_0201681C + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_0223240C: .word 0x00003CF4 +_02232410: .word 0x0000299C +_02232414: .word 0x00002B60 + thumb_func_end MOD83_022323A8 + + thumb_func_start MOD83_02232418 +MOD83_02232418: ; 0x02232418 + push {r4, lr} + add r4, r1, #0 + bl FUN_020129C8 + mov r0, #3 + lsl r0, r0, #0xa + ldr r0, [r4, r0] + bl FUN_0201299C + ldr r1, _02232438 ; =0x04000010 + mov r2, #8 + mov r3, #1 + bl FUN_020129D8 + pop {r4, pc} + nop +_02232438: .word 0x04000010 + thumb_func_end MOD83_02232418 + + thumb_func_start MOD83_0223243C +MOD83_0223243C: ; 0x0223243C + push {r3, r4, r5, lr} + ldr r4, _02232490 ; =0x000030D0 + ldr r5, _02232494 ; =0x00000C14 + add r4, r0, r4 + add r0, r5, #0 + str r1, [r4, r5] + sub r0, #0xc + str r2, [r4, r0] + add r0, r5, #0 + sub r0, #8 + sub r5, #0x14 + str r3, [r4, r0] + ldr r0, [r4, r5] + cmp r0, #0 + bne _0223246E + mov r2, #6 + lsl r2, r2, #8 + mov r0, #0x57 + add r1, r4, #0 + add r2, r4, r2 + bl FUN_02012944 + mov r1, #3 + lsl r1, r1, #0xa + str r0, [r4, r1] +_0223246E: + ldr r0, _02232498 ; =0x00000C04 + ldr r0, [r4, r0] + cmp r0, #0 + bne _02232486 + mov r2, #1 + ldr r0, _0223249C ; =MOD83_02232418 + add r1, r4, #0 + lsl r2, r2, #0xa + bl FUN_0200CA60 + ldr r1, _02232498 ; =0x00000C04 + str r0, [r4, r1] +_02232486: + mov r0, #0xc1 + mov r1, #1 + lsl r0, r0, #4 + str r1, [r4, r0] + pop {r3, r4, r5, pc} + .align 2, 0 +_02232490: .word 0x000030D0 +_02232494: .word 0x00000C14 +_02232498: .word 0x00000C04 +_0223249C: .word MOD83_02232418 + thumb_func_end MOD83_0223243C + + thumb_func_start MOD83_022324A0 +MOD83_022324A0: ; 0x022324A0 + push {r4, lr} + ldr r1, _022324D4 ; =0x000030D0 + add r4, r0, r1 + mov r0, #3 + lsl r0, r0, #0xa + ldr r0, [r4, r0] + cmp r0, #0 + beq _022324B4 + bl FUN_02012974 +_022324B4: + ldr r0, _022324D8 ; =0x00000C04 + ldr r0, [r4, r0] + cmp r0, #0 + beq _022324C0 + bl FUN_0200CAB4 +_022324C0: + mov r0, #3 + mov r1, #0 + lsl r0, r0, #0xa + str r1, [r4, r0] + add r0, r0, #4 + str r1, [r4, r0] + bl FUN_020129C8 + pop {r4, pc} + nop +_022324D4: .word 0x000030D0 +_022324D8: .word 0x00000C04 + thumb_func_end MOD83_022324A0 + + thumb_func_start MOD83_022324DC +MOD83_022324DC: ; 0x022324DC + push {r3, r4, r5, r6, r7, lr} + ldr r1, _022325E4 ; =0x000030D0 + mov r5, #0x15 + add r4, r0, r1 + mov r0, #0xc1 + lsl r0, r0, #4 + ldr r1, [r4, r0] + lsl r5, r5, #0xe + cmp r1, #0 + bne _022324F4 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022324F4: + add r1, r0, #4 + ldr r1, [r4, r1] + cmp r1, #1 + bne _02232542 + add r1, r0, #0 + sub r1, #8 + ldr r2, [r4, r1] + sub r1, r0, #4 + ldr r1, [r4, r1] + add r2, r2, r1 + add r1, r0, #0 + sub r1, #8 + str r2, [r4, r1] + sub r1, r0, #4 + ldr r2, [r4, r1] + add r1, r2, #0 + add r2, r2, r1 + sub r1, r0, #4 + str r2, [r4, r1] + add r1, r0, #0 + sub r1, #8 + ldr r2, [r4, r1] + asr r1, r2, #0xb + lsr r1, r1, #0x14 + add r1, r2, r1 + asr r2, r1, #0xc + mov r1, #0xfa + lsl r1, r1, #2 + cmp r2, r1 + ble _0223257C + mov r2, #0 + add r1, r0, #0 + str r2, [r4, r0] + sub r1, #8 + str r2, [r4, r1] + sub r0, r0, #4 + mov r5, #0xa8 + str r2, [r4, r0] + b _0223257C +_02232542: + add r1, r0, #0 + sub r1, #8 + ldr r2, [r4, r1] + sub r1, r0, #4 + ldr r1, [r4, r1] + sub r2, r2, r1 + add r1, r0, #0 + sub r1, #8 + str r2, [r4, r1] + sub r1, r0, #4 + ldr r2, [r4, r1] + lsr r1, r2, #0x1f + add r1, r2, r1 + asr r2, r1, #1 + sub r1, r0, #4 + str r2, [r4, r1] + mov r2, #1 + ldr r1, [r4, r1] + lsl r2, r2, #0xa + cmp r1, r2 + bge _0223257C + mov r1, #0 + lsl r3, r2, #2 + add r2, r0, #0 + str r1, [r4, r0] + sub r2, #8 + str r3, [r4, r2] + sub r0, r0, #4 + str r1, [r4, r0] +_0223257C: + mov r0, #3 + lsl r0, r0, #0xa + ldr r0, [r4, r0] + bl FUN_02012988 + add r2, r0, #0 + mov r0, #0x54 + add r3, r0, #0 + add r3, #0xfc +_0223258E: + asr r1, r5, #0xb + lsr r1, r1, #0x14 + add r1, r5, r1 + asr r1, r1, #0xc + bpl _0223259A + mov r1, #0 +_0223259A: + cmp r1, #0xa8 + ble _022325A0 + mov r1, #0xa8 +_022325A0: + lsl r6, r3, #1 + add r7, r2, r6 + sub r6, r1, r0 + strh r6, [r7, #6] + ldrh r6, [r7, #6] + sub r1, r0, r1 + add r3, r3, #4 + strh r6, [r7, #2] + mov r6, #0xa8 + sub r6, r6, r0 + lsl r6, r6, #3 + add r6, r2, r6 + strh r1, [r6, #6] + ldrh r1, [r6, #6] + add r0, r0, #1 + strh r1, [r6, #2] + ldr r1, _022325E8 ; =0x00000C08 + ldr r1, [r4, r1] + add r5, r5, r1 + cmp r0, #0xa8 + blt _0223258E + mov r1, #6 + add r0, r2, #0 + lsl r1, r1, #8 + bl DC_FlushRange + mov r0, #3 + lsl r0, r0, #0xa + ldr r0, [r4, r0] + bl FUN_020129B4 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_022325E4: .word 0x000030D0 +_022325E8: .word 0x00000C08 + thumb_func_end MOD83_022324DC + + thumb_func_start MOD83_022325EC +MOD83_022325EC: ; 0x022325EC + push {r4, lr} + add r4, r0, #0 + bl MOD83_022394CC + sub r0, r0, #2 + cmp r0, #1 + bhi _02232606 + ldr r0, _02232608 ; =0x0000061B + bl FUN_020054C8 + ldr r0, _0223260C ; =0x00003CE8 + mov r1, #0 + str r1, [r4, r0] +_02232606: + pop {r4, pc} + .align 2, 0 +_02232608: .word 0x0000061B +_0223260C: .word 0x00003CE8 + thumb_func_end MOD83_022325EC + + thumb_func_start MOD83_02232610 +MOD83_02232610: ; 0x02232610 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02232658 ; =0x00002B60 + ldr r1, [r4, r0] + sub r0, #0xc + lsl r1, r1, #2 + add r1, r4, r1 + ldr r2, [r1, r0] + mov r0, #0x35 + lsl r0, r0, #4 + ldrb r1, [r2, r0] + cmp r1, #0xff + beq _0223262E + add r1, r1, #1 + strb r1, [r2, r0] +_0223262E: + ldr r0, _02232658 ; =0x00002B60 + ldr r1, [r4, r0] + sub r0, #0xc + lsl r1, r1, #2 + add r1, r4, r1 + ldr r2, [r1, r0] + mov r0, #0xd2 + lsl r0, r0, #2 + ldrb r1, [r2, r0] + cmp r1, #0xff + beq _02232648 + sub r1, r1, #1 + strb r1, [r2, r0] +_02232648: + ldr r0, _0223265C ; =0x00002B44 + ldr r0, [r4, r0] + bl MOD83_022394BC + ldr r1, _02232660 ; =MOD83_022325EC + ldr r0, _02232664 ; =0x00003CE8 + str r1, [r4, r0] + pop {r4, pc} + .align 2, 0 +_02232658: .word 0x00002B60 +_0223265C: .word 0x00002B44 +_02232660: .word MOD83_022325EC +_02232664: .word 0x00003CE8 + thumb_func_end MOD83_02232610 + + thumb_func_start MOD83_02232668 +MOD83_02232668: ; 0x02232668 + push {r3, r4, r5, r6, r7, lr} + add r7, r2, #0 + ldr r2, _02232768 ; =0x021C48B8 + add r6, r1, #0 + ldr r3, [r2, #0x48] + ldr r1, _0223276C ; =0x00003CEC + add r5, r0, #0 + mov r2, #0x10 + ldr r0, [r5, r1] + tst r2, r3 + beq _02232686 + cmp r0, #1 + beq _02232686 + mov r2, #1 + str r2, [r5, r1] +_02232686: + ldr r1, _02232768 ; =0x021C48B8 + ldr r2, [r1, #0x48] + mov r1, #0x20 + tst r1, r2 + beq _0223269C + ldr r1, _0223276C ; =0x00003CEC + ldr r2, [r5, r1] + cmp r2, #0 + beq _0223269C + mov r2, #0 + str r2, [r5, r1] +_0223269C: + ldr r1, _0223276C ; =0x00003CEC + ldr r1, [r5, r1] + cmp r0, r1 + beq _022326CC + cmp r1, #0 + bne _022326AC + mov r1, #1 + b _022326AE +_022326AC: + mov r1, #0 +_022326AE: + ldr r0, _02232770 ; =0x00002D64 + ldr r0, [r5, r0] + bl FUN_02020130 + ldr r0, _0223276C ; =0x00003CEC + ldr r0, [r5, r0] + cmp r0, #0 + beq _022326C2 + mov r1, #1 + b _022326C4 +_022326C2: + mov r1, #0 +_022326C4: + ldr r0, _02232774 ; =0x00002D68 + ldr r0, [r5, r0] + bl FUN_02020130 +_022326CC: + ldr r0, _02232768 ; =0x021C48B8 + mov r4, #0 + ldr r1, [r0, #0x48] + mov r0, #2 + add r2, r1, #0 + tst r2, r0 + beq _022326DE + add r4, r0, #0 + b _0223270E +_022326DE: + mov r0, #1 + and r1, r0 + beq _022326F4 + cmp r6, #0 + beq _022326F4 + ldr r2, _0223276C ; =0x00003CEC + ldr r2, [r5, r2] + cmp r2, #0 + bne _022326F4 + add r4, r0, #0 + b _0223270E +_022326F4: + cmp r1, #0 + beq _02232704 + ldr r0, _0223276C ; =0x00003CEC + ldr r0, [r5, r0] + cmp r0, #1 + bne _02232704 + mov r4, #2 + b _0223270E +_02232704: + cmp r1, #0 + beq _0223270E + cmp r6, #0 + bne _0223270E + mov r4, #3 +_0223270E: + cmp r4, #1 + bne _02232746 + ldr r0, _02232778 ; =0x000005DC + bl FUN_020054C8 + mov r0, #0xab + bl FUN_02031588 + mov r3, #0xa + ldr r1, _0223277C ; =0x00002BD4 + mov r0, #1 + str r0, [r5, r1] + mov r0, #0x15 + sub r1, #0x64 + str r0, [r7] + add r0, r5, #0 + add r1, r5, r1 + mov r2, #0x11 + lsl r3, r3, #6 + bl MOD83_02231F88 + ldr r0, _02232780 ; =0x00002B70 + mov r1, #0x13 + add r0, r5, r0 + bl FUN_0200D858 + ldr r1, _02232784 ; =0x00003CF0 + str r0, [r5, r1] +_02232746: + cmp r4, #2 + bne _0223275A + ldr r0, _02232778 ; =0x000005DC + bl FUN_020054C8 + add r0, r5, #0 + add r1, r7, #0 + mov r2, #0x13 + bl MOD83_02233084 +_0223275A: + cmp r4, #3 + bne _02232764 + ldr r0, _02232778 ; =0x000005DC + bl FUN_020054C8 +_02232764: + pop {r3, r4, r5, r6, r7, pc} + nop +_02232768: .word 0x021C48B8 +_0223276C: .word 0x00003CEC +_02232770: .word 0x00002D64 +_02232774: .word 0x00002D68 +_02232778: .word 0x000005DC +_0223277C: .word 0x00002BD4 +_02232780: .word 0x00002B70 +_02232784: .word 0x00003CF0 + thumb_func_end MOD83_02232668 + + thumb_func_start MOD83_02232788 +MOD83_02232788: ; 0x02232788 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r1, #0 + add r6, r0, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #0x1d + bls _0223279E + b _02232CF4 +_0223279E: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_022327AA: ; jump table + .short _022327E6 - _022327AA - 2 ; case 0 + .short _02232854 - _022327AA - 2 ; case 1 + .short _02232866 - _022327AA - 2 ; case 2 + .short _022328DC - _022327AA - 2 ; case 3 + .short _02232956 - _022327AA - 2 ; case 4 + .short _0223297E - _022327AA - 2 ; case 5 + .short _0223299E - _022327AA - 2 ; case 6 + .short _022329D6 - _022327AA - 2 ; case 7 + .short _022329FA - _022327AA - 2 ; case 8 + .short _02232A20 - _022327AA - 2 ; case 9 + .short _02232A4C - _022327AA - 2 ; case 10 + .short _02232A88 - _022327AA - 2 ; case 11 + .short _02232AAC - _022327AA - 2 ; case 12 + .short _02232AB8 - _022327AA - 2 ; case 13 + .short _02232AC4 - _022327AA - 2 ; case 14 + .short _02232AD6 - _022327AA - 2 ; case 15 + .short _02232AE2 - _022327AA - 2 ; case 16 + .short _02232B24 - _022327AA - 2 ; case 17 + .short _02232B3A - _022327AA - 2 ; case 18 + .short _02232BDC - _022327AA - 2 ; case 19 + .short _02232BE8 - _022327AA - 2 ; case 20 + .short _02232C36 - _022327AA - 2 ; case 21 + .short _02232C26 - _022327AA - 2 ; case 22 + .short _02232C6A - _022327AA - 2 ; case 23 + .short _02232C7E - _022327AA - 2 ; case 24 + .short _02232CB8 - _022327AA - 2 ; case 25 + .short _02232CC8 - _022327AA - 2 ; case 26 + .short _02232CD4 - _022327AA - 2 ; case 27 + .short _02232CE4 - _022327AA - 2 ; case 28 + .short _02232CF4 - _022327AA - 2 ; case 29 +_022327E6: + add r0, r6, #0 + bl FUN_0200628C + ldr r1, [r0, #8] + ldr r0, _02232B54 ; =0x00002B44 + str r1, [r4, r0] + ldr r0, [r4, r0] + bl FUN_0202251C + mov r1, #0xad + lsl r1, r1, #6 + str r0, [r4, r1] + add r0, r1, #4 + ldr r0, [r4, r0] + bl LoadPlayerDataAddress + ldr r1, _02232B58 ; =0x00002B48 + str r0, [r4, r1] + ldr r0, [r4, r1] + bl FUN_02025084 + ldr r1, _02232B5C ; =0x00002B4C + str r0, [r4, r1] + sub r1, #0xc + ldr r0, [r4, r1] + mov r1, #0 + bl FUN_0202AC64 + ldr r1, _02232B60 ; =0x00002B54 + str r0, [r4, r1] + sub r1, #0x14 + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_0202AC64 + ldr r1, _02232B64 ; =0x00002B58 + str r0, [r4, r1] + sub r1, #0x18 + ldr r0, [r4, r1] + mov r1, #2 + bl FUN_0202AC64 + ldr r1, _02232B68 ; =0x00002B5C + mov r2, #1 + str r0, [r4, r1] + add r1, r1, #4 + ldr r1, [r4, r1] + add r0, r4, #0 + bl MOD83_022320A4 + ldr r1, _02232B6C ; =0x00002B60 + str r0, [r4, r1] + mov r0, #1 + str r0, [r5] + b _02232CF4 +_02232854: + bl MOD83_022331C0 + ldr r0, _02232B70 ; =0x0000299C + ldr r0, [r4, r0] + bl MOD83_022331E0 + mov r0, #2 + str r0, [r5] + b _02232CF4 +_02232866: + bl FUN_0201BD5C + add r0, r4, #0 + mov r1, #0 + bl MOD83_02232118 + mov r1, #0x1e + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x57 + bl FUN_02002ED0 + mov r1, #0 + str r1, [sp] + mov r0, #0x57 + str r0, [sp, #4] + ldr r0, _02232B70 ; =0x0000299C + mov r2, #1 + ldr r0, [r4, r0] + mov r3, #0xd + bl FUN_0200CB00 + mov r0, #1 + str r0, [sp] + mov r0, #0x57 + str r0, [sp, #4] + ldr r0, _02232B70 ; =0x0000299C + mov r1, #0 + ldr r0, [r4, r0] + mov r2, #0xa + mov r3, #0xe + bl FUN_0200CB00 + ldr r0, _02232B5C ; =0x00002B4C + mov r1, #0 + ldr r0, [r4, r0] + mov r2, #0x13 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x57 + str r0, [sp, #4] + ldr r0, _02232B70 ; =0x0000299C + mov r3, #0xa + ldr r0, [r4, r0] + bl FUN_0200CD68 + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD83_02231DF0 + add r0, r4, #0 + mov r1, #1 + mov r2, #3 + add r3, r5, #0 + bl MOD83_02231DBC + b _02232CF4 +_022328DC: + ldr r1, _02232B6C ; =0x00002B60 + mov r2, #0x40 + ldr r6, [r4, r1] + ldr r1, _02232B74 ; =0x021C48B8 + ldr r1, [r1, #0x48] + add r3, r1, #0 + tst r3, r2 + beq _022328F8 + add r1, r6, #0 + sub r2, #0x41 + bl MOD83_022320A4 + add r6, r0, #0 + b _02232934 +_022328F8: + mov r2, #0x80 + tst r2, r1 + beq _0223290A + add r1, r6, #0 + mov r2, #1 + bl MOD83_022320A4 + add r6, r0, #0 + b _02232934 +_0223290A: + mov r0, #2 + tst r0, r1 + beq _02232924 + ldr r0, _02232B78 ; =0x000005DC + bl FUN_020054C8 + add r0, r4, #0 + mov r1, #0 + mov r2, #0x1c + add r3, r5, #0 + bl MOD83_02231DBC + b _02232934 +_02232924: + mov r0, #1 + tst r0, r1 + beq _02232934 + ldr r0, _02232B78 ; =0x000005DC + bl FUN_020054C8 + mov r0, #4 + str r0, [r5] +_02232934: + ldr r0, _02232B6C ; =0x00002B60 + ldr r0, [r4, r0] + cmp r0, r6 + bne _0223293E + b _02232CF4 +_0223293E: + mov r0, #6 + lsl r0, r0, #8 + bl FUN_020054C8 + ldr r0, _02232B6C ; =0x00002B60 + mov r1, #1 + str r6, [r4, r0] + add r0, r4, #0 + mov r2, #0 + bl MOD83_02231DF0 + b _02232CF4 +_02232956: + ldr r1, _02232B7C ; =0x00002B70 + mov r3, #0xa + add r1, r4, r1 + mov r2, #7 + lsl r3, r3, #6 + bl MOD83_02231F88 + ldr r3, _02232B80 ; =0x00002B90 + mov r2, #8 + add r1, r3, #0 + str r0, [r4, r3] + sub r1, #0x10 + ldr r3, [r4, r3] + add r0, r4, #0 + add r1, r4, r1 + bl MOD83_02231F88 + mov r0, #5 + str r0, [r5] + b _02232CF4 +_0223297E: + add r0, r6, #0 + add r1, r5, #0 + mov r2, #0 + bl MOD83_02232208 + ldr r0, _02232B74 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + beq _02232A54 + ldr r0, _02232B78 ; =0x000005DC + bl FUN_020054C8 + mov r0, #0xb + str r0, [r5] + b _02232CF4 +_0223299E: + mov r0, #6 + lsl r0, r0, #8 + bl FUN_020054C8 + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E6E4 + ldr r0, _02232B7C ; =0x00002B70 + mov r1, #0 + add r0, r4, r0 + bl MOD83_022316D8 + mov r0, #0xae + lsl r0, r0, #6 + add r0, r4, r0 + mov r1, #0 + bl MOD83_022316C0 + mov r1, #1 + add r0, r4, #0 + lsl r2, r1, #0xc + mov r3, #0x66 + bl MOD83_0223243C + mov r0, #7 + str r0, [r5] + b _02232CF4 +_022329D6: + bl MOD83_022324DC + cmp r0, #0 + beq _02232A54 + mov r1, #1 + add r0, r4, #0 + add r2, r1, #0 + bl MOD83_02231DF0 + ldr r2, _02232B84 ; =0x00708000 + add r0, r4, #0 + mov r1, #0 + lsr r3, r2, #1 + bl MOD83_0223243C + mov r0, #8 + str r0, [r5] + b _02232CF4 +_022329FA: + bl MOD83_022324DC + ldr r0, _02232B74 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r1, r0 + beq _02232A54 + lsl r0, r0, #9 + bl FUN_020054C8 + mov r1, #1 + add r0, r4, #0 + lsl r2, r1, #0xc + mov r3, #0x66 + bl MOD83_0223243C + mov r0, #9 + str r0, [r5] + b _02232CF4 +_02232A20: + bl MOD83_022324DC + cmp r0, #0 + beq _02232A54 + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD83_02231DF0 + ldr r2, _02232B84 ; =0x00708000 + add r0, r4, #0 + mov r1, #0 + lsr r3, r2, #1 + bl MOD83_0223243C + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #0xa + str r0, [r5] + b _02232CF4 +_02232A4C: + bl MOD83_022324DC + cmp r0, #0 + bne _02232A56 +_02232A54: + b _02232CF4 +_02232A56: + ldr r0, _02232B7C ; =0x00002B70 + mov r1, #0 + add r0, r4, r0 + mov r2, #0x13 + mov r3, #0xa + bl FUN_0200D0BC + mov r0, #0xae + lsl r0, r0, #6 + add r0, r4, r0 + mov r1, #0 + mov r2, #0xa + mov r3, #0xe + bl FUN_0200CCA4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add r0, r4, #0 + bl MOD83_022324A0 + mov r0, #5 + str r0, [r5] + b _02232CF4 +_02232A88: + bl MOD83_02231A00 + ldr r0, _02232B7C ; =0x00002B70 + mov r1, #0 + add r0, r4, r0 + bl MOD83_022316D8 + ldr r0, _02232B7C ; =0x00002B70 + add r0, r4, r0 + bl FUN_02019570 + ldr r0, _02232B7C ; =0x00002B70 + add r0, r4, r0 + bl FUN_02019178 + mov r0, #3 + str r0, [r5] + b _02232CF4 +_02232AAC: + ldr r2, _02232B88 ; =MOD83_022319D0 + add r0, r6, #0 + add r1, r5, #0 + bl MOD83_02232208 + b _02232CF4 +_02232AB8: + ldr r2, _02232B88 ; =MOD83_022319D0 + add r0, r6, #0 + add r1, r5, #0 + bl MOD83_02232208 + b _02232CF4 +_02232AC4: + mov r1, #0xae + lsl r1, r1, #6 + ldr r2, _02232B8C ; =0x00010200 + add r1, r4, r1 + bl MOD83_02231D74 + mov r0, #0xd + str r0, [r5] + b _02232CF4 +_02232AD6: + mov r1, #0 + mov r2, #0x10 + add r3, r5, #0 + bl MOD83_02231DBC + b _02232CF4 +_02232AE2: + bl MOD83_02231A00 + ldr r0, _02232B7C ; =0x00002B70 + mov r1, #0 + add r0, r4, r0 + bl MOD83_022316D8 + ldr r0, _02232B7C ; =0x00002B70 + add r0, r4, r0 + bl FUN_02019570 + ldr r0, _02232B7C ; =0x00002B70 + add r0, r4, r0 + bl FUN_02019178 + add r0, r4, #0 + mov r1, #0 + mov r2, #3 + bl MOD83_02231DF0 + ldr r0, _02232B70 ; =0x0000299C + ldr r0, [r4, r0] + bl MOD83_02231820 + add r0, r4, #0 + bl MOD83_022315D0 + add r0, r4, #0 + bl MOD83_0223166C + mov r0, #0x11 + str r0, [r5] + b _02232CF4 +_02232B24: + bl MOD83_02232D44 + bl FUN_02033E74 + add r0, r4, #0 + mov r1, #1 + mov r2, #0x12 + add r3, r5, #0 + bl MOD83_02231DBC + b _02232CF4 +_02232B3A: + mov r6, #0 + add r0, r6, #0 + bl FUN_02030E7C + cmp r0, #0 + beq _02232BD0 + add r0, r4, #0 + add r0, #0x90 + bl FUN_0202F10C + ldr r1, _02232B90 ; =0x00002AA8 + b _02232B94 + nop +_02232B54: .word 0x00002B44 +_02232B58: .word 0x00002B48 +_02232B5C: .word 0x00002B4C +_02232B60: .word 0x00002B54 +_02232B64: .word 0x00002B58 +_02232B68: .word 0x00002B5C +_02232B6C: .word 0x00002B60 +_02232B70: .word 0x0000299C +_02232B74: .word 0x021C48B8 +_02232B78: .word 0x000005DC +_02232B7C: .word 0x00002B70 +_02232B80: .word 0x00002B90 +_02232B84: .word 0x00708000 +_02232B88: .word MOD83_022319D0 +_02232B8C: .word 0x00010200 +_02232B90: .word 0x00002AA8 +_02232B94: + add r0, r4, #0 + add r1, r4, r1 + bl MOD83_02232E0C + add r6, r0, #0 + bne _02232BC0 + ldr r0, _02232D18 ; =0x00002BD0 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02232BC0 + ldr r0, _02232D1C ; =0x00002AA8 + mov r1, #0 + add r0, r4, r0 + bl FUN_02019620 + ldr r0, _02232D1C ; =0x00002AA8 + add r0, r4, r0 + bl FUN_020191D0 + ldr r0, _02232D18 ; =0x00002BD0 + mov r1, #0 + str r1, [r4, r0] +_02232BC0: + ldr r1, _02232D20 ; =0x00002A98 + add r0, r4, #0 + add r1, r4, r1 + add r2, r6, #0 + bl MOD83_02232FE4 + ldr r0, _02232D18 ; =0x00002BD0 + str r6, [r4, r0] +_02232BD0: + add r0, r4, #0 + add r1, r6, #0 + add r2, r5, #0 + bl MOD83_02232668 + b _02232CF4 +_02232BDC: + mov r1, #0 + mov r2, #0x14 + add r3, r5, #0 + bl MOD83_02231DBC + b _02232CF4 +_02232BE8: + bl MOD83_022315F8 + ldr r0, _02232D24 ; =0x00002B70 + mov r1, #0 + add r0, r4, r0 + bl MOD83_022316D8 + mov r0, #0xae + lsl r0, r0, #6 + add r0, r4, r0 + mov r1, #0 + bl MOD83_022316C0 + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD83_02231DF0 + mov r1, #0x1e + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x57 + bl FUN_02002ED0 + add r0, r4, #0 + mov r1, #1 + mov r2, #4 + add r3, r5, #0 + bl MOD83_02231DBC + b _02232CF4 +_02232C26: + bl FUN_02031810 + cmp r0, #0 + bne _02232CF4 + ldr r0, _02232D28 ; =0x00002BE0 + ldr r0, [r4, r0] + str r0, [r5] + b _02232CF4 +_02232C36: + ldr r0, _02232D2C ; =0x00002BD4 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _02232CF4 + ldr r1, _02232D30 ; =0x00002D78 + add r0, r4, #0 + ldr r2, [r4] + add r0, #0x90 + add r1, r4, r1 + bl MOD83_022392EC + ldr r0, _02232D30 ; =0x00002D78 + mov r1, #0xd6 + add r0, r4, r0 + lsl r1, r1, #2 + bl MOD83_0222F8F0 + add r0, r4, #0 + bl MOD83_02232610 + mov r0, #0x17 + str r0, [r5] + b _02232CF4 +_02232C6A: + bl MOD83_02239574 + cmp r0, #4 + bne _02232CF4 + mov r0, #0x93 + bl FUN_02031588 + mov r0, #0x18 + str r0, [r5] + b _02232CF4 +_02232C7E: + bl MOD83_02232DF0 + cmp r0, #0 + beq _02232C90 + mov r0, #0x93 + bl FUN_020315D8 + cmp r0, #1 + bne _02232CF4 +_02232C90: + bl MOD83_02239544 + ldr r1, _02232D24 ; =0x00002B70 + mov r3, #0xa + add r0, r4, #0 + add r1, r4, r1 + mov r2, #0x12 + lsl r3, r3, #6 + bl MOD83_02231F88 + ldr r0, _02232D34 ; =0x00003CF0 + ldr r0, [r4, r0] + bl FUN_0200DBFC + add r0, r4, #0 + add r1, r5, #0 + mov r2, #0x19 + bl MOD83_02233084 + b _02232CF4 +_02232CB8: + ldr r0, _02232D38 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #3 + tst r0, r1 + beq _02232CF4 + mov r0, #0x13 + str r0, [r5] + b _02232CF4 +_02232CC8: + mov r1, #0 + mov r2, #0x1c + add r3, r5, #0 + bl MOD83_02231DBC + b _02232CF4 +_02232CD4: + bl FUN_0200E308 + cmp r0, #0 + beq _02232CF4 + ldr r0, _02232D28 ; =0x00002BE0 + ldr r0, [r4, r0] + str r0, [r5] + b _02232CF4 +_02232CE4: + bl MOD83_022315F8 + add r0, r4, #0 + bl MOD83_022324A0 + add sp, #8 + mov r0, #1 + pop {r4, r5, r6, pc} +_02232CF4: + ldr r0, _02232D3C ; =0x00002BE4 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02232D00 + bl FUN_0201FDEC +_02232D00: + bl MOD83_02238D58 + ldr r0, _02232D40 ; =0x00003CE8 + ldr r1, [r4, r0] + cmp r1, #0 + beq _02232D10 + add r0, r4, #0 + blx r1 +_02232D10: + mov r0, #0 + add sp, #8 + pop {r4, r5, r6, pc} + nop +_02232D18: .word 0x00002BD0 +_02232D1C: .word 0x00002AA8 +_02232D20: .word 0x00002A98 +_02232D24: .word 0x00002B70 +_02232D28: .word 0x00002BE0 +_02232D2C: .word 0x00002BD4 +_02232D30: .word 0x00002D78 +_02232D34: .word 0x00003CF0 +_02232D38: .word 0x021C48B8 +_02232D3C: .word 0x00002BE4 +_02232D40: .word 0x00003CE8 + thumb_func_end MOD83_02232788 + + thumb_func_start MOD83_02232D44 +MOD83_02232D44: ; 0x02232D44 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, _02232DA8 ; =0x00002B60 + mov r2, #0xd6 + ldr r1, [r5, r0] + sub r0, #0xc + lsl r1, r1, #2 + add r1, r5, r1 + ldr r4, [r1, r0] + add r0, r5, #0 + add r0, #0xe0 + add r1, r4, #0 + lsl r2, r2, #2 + bl memcpy + mov r1, #0x41 + add r0, r5, #0 + lsl r1, r1, #2 + add r0, #0x90 + add r1, r4, r1 + mov r2, #0x50 + bl memcpy + ldr r0, _02232DAC ; =0x00000428 + mov r1, #0 + strb r1, [r5, r0] + add r0, r5, #0 + add r0, #0xde + ldrb r1, [r0] + mov r0, #0x10 + mov r2, #0xf + bic r1, r0 + add r0, r5, #0 + add r0, #0xde + strb r1, [r0] + add r0, r5, #0 + add r0, #0xde + ldrb r1, [r0] + mov r0, #0x20 + orr r1, r0 + add r0, r5, #0 + add r0, #0xde + strb r1, [r0] + ldr r1, _02232DB0 ; =0x00002B44 + add r0, r5, #4 + ldr r1, [r5, r1] + bl MOD83_0222F8C4 + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02232DA8: .word 0x00002B60 +_02232DAC: .word 0x00000428 +_02232DB0: .word 0x00002B44 + thumb_func_end MOD83_02232D44 + + thumb_func_start MOD83_02232DB4 +MOD83_02232DB4: ; 0x02232DB4 + push {r3, r4} + ldr r3, [r0] + ldr r1, [r0, #4] + add r2, r0, #0 + mov r4, #0 + cmp r1, r3 + bge _02232DC8 + add r3, r1, #0 + mov r4, #1 + add r2, r0, #4 +_02232DC8: + ldr r1, [r0, #8] + cmp r1, r3 + bge _02232DD6 + add r2, r0, #0 + add r3, r1, #0 + mov r4, #2 + add r2, #8 +_02232DD6: + ldr r1, [r0, #0xc] + cmp r1, r3 + bge _02232DE2 + add r2, r0, #0 + mov r4, #3 + add r2, #0xc +_02232DE2: + ldr r0, _02232DEC ; =0x3FFF0001 + str r0, [r2] + add r0, r4, #1 + pop {r3, r4} + bx lr + .align 2, 0 +_02232DEC: .word 0x3FFF0001 + thumb_func_end MOD83_02232DB4 + + thumb_func_start MOD83_02232DF0 +MOD83_02232DF0: ; 0x02232DF0 + push {r3, r4, r5, lr} + mov r5, #0 + mov r4, #1 +_02232DF6: + add r0, r4, #0 + bl FUN_0202DFA4 + cmp r0, #0 + beq _02232E02 + add r5, r5, #1 +_02232E02: + add r4, r4, #1 + cmp r4, #5 + blt _02232DF6 + add r0, r5, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD83_02232DF0 + + thumb_func_start MOD83_02232E0C +MOD83_02232E0C: ; 0x02232E0C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x48 + add r5, r0, #0 + mov r6, #0 + mov r0, #1 + str r1, [sp, #0x10] + add r7, r6, #0 + str r0, [sp, #0x24] + add r4, r5, #4 +_02232E1E: + ldr r0, [sp, #0x24] + bl FUN_0202DFA4 + cmp r0, #0 + bne _02232E40 + ldr r0, _02232FCC ; =0x00002BA8 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02232E32 + add r7, r7, #1 +_02232E32: + ldr r0, _02232FCC ; =0x00002BA8 + mov r1, #0 + str r1, [r4, r0] + ldr r1, _02232FD0 ; =0x3FFF0001 + add r0, #0x14 + str r1, [r4, r0] + b _02232E68 +_02232E40: + ldr r1, _02232FCC ; =0x00002BA8 + ldr r1, [r4, r1] + cmp r1, r0 + beq _02232E66 + ldr r1, _02232FCC ; =0x00002BA8 + add r7, r7, #1 + str r0, [r4, r1] + add r0, r1, #0 + add r1, #0x34 + ldr r1, [r5, r1] + add r0, #0x34 + add r2, r1, #1 + ldr r0, [r5, r0] + ldr r1, _02232FD4 ; =0x00002BDC + add r6, r6, #1 + str r2, [r5, r1] + sub r1, #0x20 + str r0, [r4, r1] + b _02232E68 +_02232E66: + add r6, r6, #1 +_02232E68: + ldr r0, [sp, #0x24] + add r4, r4, #4 + add r0, r0, #1 + str r0, [sp, #0x24] + cmp r0, #5 + blt _02232E1E + cmp r7, #0 + bne _02232E7E + add sp, #0x48 + add r0, r6, #0 + pop {r3, r4, r5, r6, r7, pc} +_02232E7E: + mov r1, #0xaf + lsl r1, r1, #6 + ldr r0, [r5, r1] + str r0, [sp, #0x38] + add r0, r1, #4 + ldr r0, [r5, r0] + str r0, [sp, #0x3c] + add r0, r1, #0 + add r0, #8 + ldr r0, [r5, r0] + add r1, #0xc + str r0, [sp, #0x40] + ldr r0, [r5, r1] + str r0, [sp, #0x44] + add r0, sp, #0x38 + bl MOD83_02232DB4 + str r0, [sp, #0x28] + add r0, sp, #0x38 + bl MOD83_02232DB4 + str r0, [sp, #0x2c] + add r0, sp, #0x38 + bl MOD83_02232DB4 + str r0, [sp, #0x30] + add r0, sp, #0x38 + bl MOD83_02232DB4 + str r0, [sp, #0x34] + mov r0, #0x57 + bl FUN_0200AA80 + add r4, r0, #0 + ldr r2, _02232FD8 ; =0x00000172 + mov r0, #1 + mov r1, #0x1a + mov r3, #0x57 + bl FUN_0200A86C + str r0, [sp, #0x1c] + mov r5, #0 + ldr r0, [sp, #0x10] + add r1, r5, #0 + bl FUN_02019620 + add r0, r5, #0 + str r0, [sp, #0x14] + cmp r6, #0 + ble _02232FAE + add r0, sp, #0x28 + str r0, [sp, #0x18] +_02232EE6: + ldr r0, [sp, #0x18] + ldr r0, [r0] + bl FUN_0202DFA4 + add r7, r0, #0 + beq _02232F9E + add r0, r4, #0 + mov r1, #0 + add r2, r7, #0 + bl FUN_0200ABC0 + ldr r1, [sp, #0x1c] + add r0, r4, #0 + mov r2, #0x35 + mov r3, #0x57 + bl FUN_0200A9C4 + str r0, [sp, #0x20] + add r0, r7, #0 + bl FUN_020239CC + cmp r0, #0 + str r5, [sp] + bne _02232F30 + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02232FDC ; =0x00050600 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x20] + add r3, r1, #0 + bl FUN_0201BDE0 + b _02232F4A +_02232F30: + mov r0, #0xff + str r0, [sp, #4] + mov r0, #0xc1 + lsl r0, r0, #0xa + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + mov r1, #0 + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x20] + add r3, r1, #0 + bl FUN_0201BDE0 +_02232F4A: + ldr r0, [sp, #0x20] + bl FUN_02021A20 + add r0, r7, #0 + bl FUN_020239BC + add r2, r0, #0 + mov r0, #2 + str r0, [sp] + mov r0, #1 + lsl r2, r2, #0x10 + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0 + lsr r2, r2, #0x10 + mov r3, #5 + bl FUN_0200AD38 + ldr r1, [sp, #0x1c] + add r0, r4, #0 + mov r2, #0x36 + mov r3, #0x57 + bl FUN_0200A9C4 + add r7, r0, #0 + str r5, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02232FE0 ; =0x000E0F00 + mov r1, #0 + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [sp, #0x10] + add r2, r7, #0 + mov r3, #0x50 + bl FUN_0201BDE0 + add r0, r7, #0 + bl FUN_02021A20 + add r5, #0x18 +_02232F9E: + ldr r0, [sp, #0x18] + add r0, r0, #4 + str r0, [sp, #0x18] + ldr r0, [sp, #0x14] + add r0, r0, #1 + str r0, [sp, #0x14] + cmp r0, r6 + blt _02232EE6 +_02232FAE: + cmp r6, #0 + beq _02232FB8 + ldr r0, [sp, #0x10] + bl FUN_020191D0 +_02232FB8: + ldr r0, [sp, #0x1c] + bl FUN_0200A8B8 + add r0, r4, #0 + bl FUN_0200AB18 + add r0, r6, #0 + add sp, #0x48 + pop {r3, r4, r5, r6, r7, pc} + nop +_02232FCC: .word 0x00002BA8 +_02232FD0: .word 0x3FFF0001 +_02232FD4: .word 0x00002BDC +_02232FD8: .word 0x00000172 +_02232FDC: .word 0x00050600 +_02232FE0: .word 0x000E0F00 + thumb_func_end MOD83_02232E0C + + thumb_func_start MOD83_02232FE4 +MOD83_02232FE4: ; 0x02232FE4 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + ldr r0, _02233070 ; =0x00002B94 + add r4, r1, #0 + str r2, [r5, r0] + ldr r2, _02233074 ; =0x00000172 + mov r0, #1 + mov r1, #0x1a + mov r3, #0x57 + bl FUN_0200A86C + ldr r1, _02233078 ; =0x000029A4 + str r0, [r5, r1] + mov r0, #0x57 + bl FUN_0200AA80 + ldr r1, _0223307C ; =0x000029A0 + str r0, [r5, r1] + add r0, r4, #0 + mov r1, #0 + bl FUN_02019620 + mov r3, #1 + str r3, [sp] + ldr r0, _0223307C ; =0x000029A0 + str r3, [sp, #4] + ldr r2, _02233070 ; =0x00002B94 + ldr r0, [r5, r0] + ldr r2, [r5, r2] + mov r1, #0 + bl FUN_0200AD38 + ldr r1, _0223307C ; =0x000029A0 + mov r2, #0x38 + ldr r0, [r5, r1] + add r1, r1, #4 + ldr r1, [r5, r1] + mov r3, #0x57 + bl FUN_0200A9C4 + add r6, r0, #0 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _02233080 ; =0x00010200 + mov r1, #1 + str r0, [sp, #8] + add r0, r4, #0 + add r2, r6, #0 + str r3, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_020191D0 + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, _02233078 ; =0x000029A4 + ldr r0, [r5, r0] + bl FUN_0200A8B8 + ldr r0, _0223307C ; =0x000029A0 + ldr r0, [r5, r0] + bl FUN_0200AB18 + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 +_02233070: .word 0x00002B94 +_02233074: .word 0x00000172 +_02233078: .word 0x000029A4 +_0223307C: .word 0x000029A0 +_02233080: .word 0x00010200 + thumb_func_end MOD83_02232FE4 + + thumb_func_start MOD83_02233084 +MOD83_02233084: ; 0x02233084 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + bl MOD83_0222F9DC + bl FUN_02033ED0 + ldr r0, _022330A0 ; =0x00002BE0 + str r6, [r5, r0] + mov r0, #0x16 + str r0, [r4] + pop {r4, r5, r6, pc} + nop +_022330A0: .word 0x00002BE0 + thumb_func_end MOD83_02233084 + + thumb_func_start MOD83_022330A4 +MOD83_022330A4: ; 0x022330A4 + push {r3, r4, r5, r6, r7, lr} + str r0, [sp] + bl FUN_02006278 + add r7, r0, #0 + ldr r0, _02233154 ; =0x000029A8 + mov r6, #0 + add r4, r7, #0 + add r5, r7, r0 +_022330B6: + ldr r0, _02233154 ; =0x000029A8 + ldr r0, [r4, r0] + cmp r0, #0 + beq _022330CA + add r0, r5, #0 + bl FUN_02019570 + add r0, r5, #0 + bl FUN_02019178 +_022330CA: + add r6, r6, #1 + add r4, #0x10 + add r5, #0x10 + cmp r6, #0x13 + blo _022330B6 + ldr r0, _02233158 ; =0x00002B70 + ldr r1, [r7, r0] + cmp r1, #0 + beq _022330EA + add r0, r7, r0 + bl FUN_02019570 + ldr r0, _02233158 ; =0x00002B70 + add r0, r7, r0 + bl FUN_02019178 +_022330EA: + mov r0, #0xae + lsl r0, r0, #6 + ldr r1, [r7, r0] + cmp r1, #0 + beq _02233104 + add r0, r7, r0 + bl FUN_02019570 + mov r0, #0xae + lsl r0, r0, #6 + add r0, r7, r0 + bl FUN_02019178 +_02233104: + ldr r0, _0223315C ; =0x0000299C + mov r1, #0 + ldr r0, [r7, r0] + bl FUN_020178A0 + ldr r0, _0223315C ; =0x0000299C + mov r1, #1 + ldr r0, [r7, r0] + bl FUN_020178A0 + ldr r0, _0223315C ; =0x0000299C + mov r1, #2 + ldr r0, [r7, r0] + bl FUN_020178A0 + ldr r0, _0223315C ; =0x0000299C + mov r1, #3 + ldr r0, [r7, r0] + bl FUN_020178A0 + ldr r0, _0223315C ; =0x0000299C + ldr r0, [r7, r0] + bl FUN_02016A18 + ldr r0, _02233160 ; =SDK_OVERLAY_MODULE_83_ID + ldr r1, _02233164 ; =0x0223A434 + bl FUN_02000E7C + mov r0, #0x5b + bl FUN_020168D0 + ldr r0, [sp] + bl FUN_0200627C + mov r0, #0x57 + bl FUN_020168D0 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + nop +_02233154: .word 0x000029A8 +_02233158: .word 0x00002B70 +_0223315C: .word 0x0000299C +_02233160: .word SDK_OVERLAY_MODULE_83_ID +_02233164: .word 0x0223A434 + thumb_func_end MOD83_022330A4 + + thumb_func_start MOD83_02233168 +MOD83_02233168: ; 0x02233168 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + add r5, r2, #0 + bl MOD83_022331E0 + ldr r1, _022331B4 ; =0x00003CF4 + add r0, r5, #0 + bl FUN_020169D8 + ldr r2, _022331B4 ; =0x00003CF4 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + ldr r0, _022331B8 ; =0x0000299C + mov r1, #0x1e + str r6, [r4, r0] + mov r0, #0 + lsl r1, r1, #4 + add r2, r5, #0 + str r5, [r4] + bl FUN_02002ED0 + ldr r0, _022331BC ; =0x00002B54 + mov r2, #0 + str r7, [r4, r0] + add r0, #0xc + str r2, [r4, r0] + add r0, r4, #0 + mov r1, #1 + bl MOD83_02231DF0 + add r0, r4, #0 + bl FUN_02016A18 + pop {r3, r4, r5, r6, r7, pc} + nop +_022331B4: .word 0x00003CF4 +_022331B8: .word 0x0000299C +_022331BC: .word 0x00002B54 + thumb_func_end MOD83_02233168 + + thumb_func_start MOD83_022331C0 +MOD83_022331C0: ; 0x022331C0 + push {r4, lr} + sub sp, #0x28 + ldr r4, _022331DC ; =0x0223A4D4 + add r3, sp, #0 + mov r2, #5 +_022331CA: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _022331CA + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_022331DC: .word 0x0223A4D4 + thumb_func_end MOD83_022331C0 + + thumb_func_start MOD83_022331E0 +MOD83_022331E0: ; 0x022331E0 + push {r3, r4, r5, lr} + sub sp, #0x80 + ldr r5, _022332A0 ; =0x0223A454 + add r3, sp, #0x70 + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _022332A4 ; =0x0223A480 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _022332A8 ; =0x0223A4B8 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _022332AC ; =0x0223A49C + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _022332B0 ; =0x0223A464 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #3 + bl FUN_02018744 + add sp, #0x80 + pop {r3, r4, r5, pc} + nop +_022332A0: .word 0x0223A454 +_022332A4: .word 0x0223A480 +_022332A8: .word 0x0223A4B8 +_022332AC: .word 0x0223A49C +_022332B0: .word 0x0223A464 + thumb_func_end MOD83_022331E0 + + thumb_func_start MOD83_022332B4 +MOD83_022332B4: ; 0x022332B4 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r7, r0, #0 + bl FUN_0202251C + mov r1, #0 + ldr r4, [r5, #0x48] + mvn r1, r1 + add r6, r0, #0 + cmp r4, r1 + bne _022332E8 + add r2, r5, #0 + add r2, #0x4c + ldrh r2, [r2] + lsr r1, r1, #0x10 + cmp r2, r1 + bne _022332E8 + bl FUN_0202AC28 + add r0, r7, #0 + mov r1, #0 + bl FUN_020227A0 + mov r0, #0 + bl OS_ResetSystem +_022332E8: + cmp r4, #0 + bne _022332F0 + mov r4, #0 + mvn r4, r4 +_022332F0: + mov r0, #1 + lsl r0, r0, #0xa + tst r0, r4 + bne _022332FC + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022332FC: + add r0, r5, #0 + add r0, #0x4e + ldrb r0, [r0] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + cmp r0, #1 + bne _0223331E + add r1, r5, #0 + add r1, #0x4c + ldrh r1, [r1] + add r0, r6, #0 + bl FUN_0202AEF4 + cmp r0, #1 + bne _0223331E + mov r0, #2 + pop {r3, r4, r5, r6, r7, pc} +_0223331E: + add r0, r5, #0 + add r0, #0x4e + ldrb r0, [r0] + lsl r0, r0, #0x1d + lsr r0, r0, #0x1f + cmp r0, #1 + bne _0223333A + add r0, r6, #0 + bl FUN_0202AE0C + cmp r0, #0 + bne _0223333A + mov r0, #4 + pop {r3, r4, r5, r6, r7, pc} +_0223333A: + add r0, r6, #0 + bl FUN_0202ADF0 + cmp r0, #0 + bne _02233348 + mov r0, #3 + pop {r3, r4, r5, r6, r7, pc} +_02233348: + add r5, #0x4e + ldrb r0, [r5] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1f + cmp r0, #1 + bne _02233358 + mov r0, #5 + pop {r3, r4, r5, r6, r7, pc} +_02233358: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD83_022332B4 + + thumb_func_start MOD83_0223335C +MOD83_0223335C: ; 0x0223335C + push {r3, lr} + mov r0, #4 + bl MOD83_02234580 + bl MOD83_02234C34 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_0223335C + + thumb_func_start MOD83_0223336C +MOD83_0223336C: ; 0x0223336C + push {r3, lr} + bl MOD83_02234704 + str r0, [sp] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_0223336C + + thumb_func_start MOD83_02233378 +MOD83_02233378: ; 0x02233378 + push {r3, lr} + bl MOD83_02234724 + add r1, sp, #0 + strh r0, [r1] + mov r0, #0 + ldrsh r0, [r1, r0] + pop {r3, pc} + thumb_func_end MOD83_02233378 + + thumb_func_start MOD83_02233388 +MOD83_02233388: ; 0x02233388 + push {r4, lr} + bl MOD83_0223458C + cmp r0, #0xc + bne _022333AA + bl MOD83_0223456C + add r4, r0, #0 + ldr r0, [r4, #0x1c] + cmp r0, #0 + bne _022333A6 + bl MOD83_02234C34 + mov r0, #1 + str r0, [r4, #0x1c] +_022333A6: + mov r0, #1 + pop {r4, pc} +_022333AA: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_02233388 + + thumb_func_start MOD83_022333B0 +MOD83_022333B0: ; 0x022333B0 + push {r4, lr} + add r4, r0, #0 + bl MOD83_0223466C + mov r3, #0 + add r1, r3, #0 +_022333BC: + ldr r2, [r0] + cmp r2, #0 + beq _022333CC + ldrh r2, [r0, #6] + cmp r4, r2 + bne _022333CC + strb r1, [r0, #8] + strb r1, [r0, #0xa] +_022333CC: + add r3, r3, #1 + add r0, #0xc + cmp r3, #8 + blt _022333BC + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_022333B0 + + thumb_func_start MOD83_022333D8 +MOD83_022333D8: ; 0x022333D8 + push {r3, lr} + bl MOD83_0223466C + add r1, r0, #0 + add r1, #0x62 + ldrh r3, [r1] + mov r2, #1 + add r1, r3, #0 + tst r1, r2 + beq _022333FE + add r1, r0, #0 + add r1, #0x62 + ldrh r3, [r1] + mov r1, #1 + add r0, #0x62 + bic r3, r1 + strh r3, [r0] + add r0, r2, #0 + pop {r3, pc} +_022333FE: + mov r1, #0x40 + add r2, r3, #0 + tst r2, r1 + beq _02233418 + add r1, r0, #0 + add r1, #0x62 + ldrh r2, [r1] + mov r1, #0x40 + add r0, #0x62 + bic r2, r1 + strh r2, [r0] + mov r0, #7 + pop {r3, pc} +_02233418: + lsl r1, r1, #6 + tst r1, r3 + beq _02233430 + add r1, r0, #0 + add r1, #0x62 + ldrh r2, [r1] + ldr r1, _02233434 ; =0xFFFFEFFF + add r0, #0x62 + and r1, r2 + strh r1, [r0] + mov r0, #0xd + pop {r3, pc} +_02233430: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_02233434: .word 0xFFFFEFFF + thumb_func_end MOD83_022333D8 + + thumb_func_start MOD83_02233438 +MOD83_02233438: ; 0x02233438 + push {r4, lr} + bl MOD83_0223466C + add r4, r0, #0 + mov r1, #1 + add r0, #0x60 + strb r1, [r0] + bl WM_GetAllowedChannel + add r1, r4, #0 + add r1, #0x62 + strh r0, [r1] + add r0, r4, #0 + add r0, #0x62 + ldrh r1, [r0] + cmp r1, #0 + beq _02233462 + mov r0, #2 + lsl r0, r0, #0xe + cmp r1, r0 + bne _02233466 +_02233462: + mov r0, #0 + pop {r4, pc} +_02233466: + add r0, r4, #0 + mov r1, #0x66 + add r0, #0x61 + strb r1, [r0] + mov r0, #0 + add r4, #0x64 + strb r0, [r4] + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD83_02233438 + + thumb_func_start MOD83_02233478 +MOD83_02233478: ; 0x02233478 + push {r4, lr} + bl MOD83_02234564 + add r4, r0, #0 + bl WM_GetDispersionBeaconPeriod + strh r0, [r4, #0x18] + bl WM_GetNextTgid + strh r0, [r4, #0xc] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_02233478 + + thumb_func_start MOD83_02233490 +MOD83_02233490: ; 0x02233490 + push {r4, lr} + bl MOD83_022345D4 + add r4, r0, #0 + bl MOD83_02234610 + str r0, [r4] + bl MOD83_02234564 + ldrh r0, [r0, #0x32] + strh r0, [r4, #4] + bl WM_GetDispersionScanPeriod + strh r0, [r4, #6] + mov r0, #0xff + strb r0, [r4, #8] + strb r0, [r4, #9] + strb r0, [r4, #0xa] + strb r0, [r4, #0xb] + strb r0, [r4, #0xc] + strb r0, [r4, #0xd] + pop {r4, pc} + thumb_func_end MOD83_02233490 + + thumb_func_start MOD83_022334BC +MOD83_022334BC: ; 0x022334BC + push {r3, r4, r5, r6, r7, lr} + bl MOD83_022345D4 + add r7, r0, #0 + bl WM_GetAllowedChannel + add r3, r0, #0 + beq _02233508 + ldrh r2, [r7, #4] + mov r1, #0 + mov r0, #1 + mov ip, r2 + mov r4, #0x1c +_022334D6: + lsr r6, r2, #0x1f + lsl r5, r2, #0x1c + sub r5, r5, r6 + ror r5, r4 + add r5, r6, r5 + add r6, r0, #0 + lsl r6, r5 + add r5, r3, #0 + tst r5, r6 + beq _02233500 + mov r0, ip + add r0, r0, r1 + lsr r2, r0, #0x1f + lsl r1, r0, #0x1c + sub r1, r1, r2 + mov r0, #0x1c + ror r1, r0 + add r0, r2, r1 + add r0, r0, #1 + strh r0, [r7, #4] + pop {r3, r4, r5, r6, r7, pc} +_02233500: + add r1, r1, #1 + add r2, r2, #1 + cmp r1, #0x10 + blt _022334D6 +_02233508: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD83_022334BC + + thumb_func_start MOD83_0223350C +MOD83_0223350C: ; 0x0223350C + push {r4, lr} + add r4, r0, #0 + ldrh r0, [r4, #4] + bl MOD83_0223495C + ldrh r0, [r4, #2] + cmp r0, #8 + bne _02233524 + bl MOD83_02234958 + bl MOD83_0223335C +_02233524: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_0223350C + + thumb_func_start MOD83_02233528 +MOD83_02233528: ; 0x02233528 + push {r4, lr} + add r4, r0, #0 + ldrh r0, [r4, #8] + bl MOD83_0223495C + ldrh r0, [r4, #2] + cmp r0, #0 + beq _0223353C + bl MOD83_02234958 +_0223353C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_02233528 + + thumb_func_start MOD83_02233540 +MOD83_02233540: ; 0x02233540 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + bne _02233576 + mov r0, #2 + bl MOD83_02234580 + bl MOD83_0223458C + cmp r0, #0xc + bne _02233562 + bl MOD83_022349CC + mov r0, #2 + bl MOD83_02234580 + pop {r3, pc} +_02233562: + bl MOD83_02234BF8 + cmp r0, #0 + bne _0223357E + bl MOD83_022349CC + mov r0, #2 + bl MOD83_02234580 + pop {r3, pc} +_02233576: + bl MOD83_02234958 + bl MOD83_022349CC +_0223357E: + pop {r3, pc} + thumb_func_end MOD83_02233540 + + thumb_func_start MOD83_02233580 +MOD83_02233580: ; 0x02233580 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + bne _022335AA + bl MOD83_0223458C + cmp r0, #0xc + bne _022335A2 + bl WM_Finish + mov r0, #0xc + bl MOD83_02234580 + mov r0, #1 + bl MOD83_0223464C + pop {r3, pc} +_022335A2: + mov r0, #1 + bl MOD83_02234580 + pop {r3, pc} +_022335AA: + bl MOD83_02234958 + mov r0, #4 + bl MOD83_02234580 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_02233580 + + thumb_func_start MOD83_022335B8 +MOD83_022335B8: ; 0x022335B8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldrh r0, [r5, #2] + cmp r0, #0 + bne _02233616 + bl MOD83_0223466C + add r4, r0, #0 + add r0, #0x61 + ldrh r1, [r5, #0xa] + ldrb r0, [r0] + cmp r0, r1 + ble _022335E0 + add r0, r4, #0 + add r0, #0x61 + strb r1, [r0] + add r0, r4, #0 + ldrh r1, [r5, #8] + add r0, #0x64 + strb r1, [r0] +_022335E0: + bl MOD83_022333D8 + cmp r0, #0 + beq _022335F6 + bl MOD83_022349EC + cmp r0, #0 + bne _0223361E + bl MOD83_0223335C + pop {r3, r4, r5, pc} +_022335F6: + add r4, #0x61 + ldrb r0, [r4] + cmp r0, #0x66 + bhs _02233610 + bl MOD83_02233478 + bl MOD83_02234A18 + cmp r0, #0 + bne _0223361E + bl MOD83_0223335C + pop {r3, r4, r5, pc} +_02233610: + bl MOD83_0223335C + pop {r3, r4, r5, pc} +_02233616: + bl MOD83_02234958 + bl MOD83_0223335C +_0223361E: + pop {r3, r4, r5, pc} + thumb_func_end MOD83_022335B8 + + thumb_func_start MOD83_02233620 +MOD83_02233620: ; 0x02233620 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + bne _0223363E + bl MOD83_02233388 + cmp r0, #0 + bne _02233646 + bl MOD83_02234A54 + cmp r0, #0 + bne _02233646 + bl MOD83_0223335C + pop {r3, pc} +_0223363E: + bl MOD83_02234958 + bl MOD83_0223335C +_02233646: + pop {r3, pc} + thumb_func_end MOD83_02233620 + + thumb_func_start MOD83_02233648 +MOD83_02233648: ; 0x02233648 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + ldrh r0, [r5, #8] + bl MOD83_0223495C + ldrh r0, [r5, #2] + cmp r0, #0 + beq _0223365C + b _0223376E +_0223365C: + bl MOD83_0223466C + add r4, r0, #0 + mov r0, #8 + bl MOD83_02234580 + bl MOD83_02233388 + cmp r0, #0 + beq _02233672 + b _02233776 +_02233672: + add r0, r4, #0 + add r0, #0x60 + ldrb r0, [r0] + cmp r0, #1 + bne _02233684 + add r0, r4, #0 + mov r1, #2 + add r0, #0x60 + strb r1, [r0] +_02233684: + ldrh r0, [r5, #8] + cmp r0, #7 + bgt _0223369C + bge _022336BE + cmp r0, #2 + bgt _02233776 + cmp r0, #0 + blt _02233776 + beq _022336A4 + add sp, #0xc + cmp r0, #2 + pop {r4, r5, pc} +_0223369C: + cmp r0, #9 + beq _02233764 + add sp, #0xc + pop {r4, r5, pc} +_022336A4: + bl MOD83_02234B80 + cmp r0, #0 + bne _022336B4 + bl MOD83_0223335C + add sp, #0xc + pop {r4, r5, pc} +_022336B4: + mov r0, #0 + bl MOD83_0223461C + add sp, #0xc + pop {r4, r5, pc} +_022336BE: + bl MOD83_0223466C + bl MOD83_02234968 + add r4, #0x60 + ldrb r0, [r4] + cmp r0, #2 + bne _02233776 + add r4, r5, #0 + add r4, #0x14 + bl MOD83_022346BC + ldr r1, [r5, #0x14] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, r0 + bne _02233776 + bl MOD83_022346CC + ldr r1, [r4] + lsl r1, r1, #0x14 + lsr r1, r1, #0x1c + cmp r1, r0 + bhi _02233776 + bl MOD83_022346DC + ldr r1, [r4, #4] + lsr r1, r1, #0x10 + cmp r1, r0 + bne _02233776 + bl MOD83_0223466C + add r4, r0, #0 + add r0, r5, #0 + add r0, #0xa + bl MOD83_0223336C + str r0, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0xa + bl MOD83_02233378 + add r1, sp, #0 + strh r0, [r1] + ldrh r0, [r1] + ldr r2, [sp, #8] + add r3, r4, #0 + strh r0, [r1, #2] + mov r0, #0 +_02233722: + ldr r1, [r3] + cmp r1, r2 + bne _0223373A + mov r1, #0xc + mul r1, r0 + ldrh r0, [r5, #0x10] + add r1, r4, r1 + add sp, #0xc + strh r0, [r1, #6] + mov r0, #1 + strb r0, [r1, #0xa] + pop {r4, r5, pc} +_0223373A: + cmp r1, #0 + bne _02233758 + mov r1, #0xc + mul r1, r0 + str r2, [r4, r1] + add r0, sp, #0 + ldrh r0, [r0, #2] + add r1, r4, r1 + add sp, #0xc + strh r0, [r1, #4] + ldrh r0, [r5, #0x10] + strh r0, [r1, #6] + mov r0, #1 + strb r0, [r1, #0xa] + pop {r4, r5, pc} +_02233758: + add r0, r0, #1 + add r3, #0xc + cmp r0, #8 + blt _02233722 + add sp, #0xc + pop {r4, r5, pc} +_02233764: + ldrh r0, [r5, #0x10] + bl MOD83_022333B0 + add sp, #0xc + pop {r4, r5, pc} +_0223376E: + bl MOD83_02234958 + bl MOD83_0223335C +_02233776: + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD83_02233648 + + thumb_func_start MOD83_0223377C +MOD83_0223377C: ; 0x0223377C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r4, r1, #0 + str r0, [sp] + bl MOD83_02234664 + add r7, r0, #0 + add r0, r4, #4 + bl MOD83_0223336C + str r0, [sp, #8] + str r0, [sp, #0xc] + add r0, r4, #4 + bl MOD83_02233378 + add r2, sp, #4 + strh r0, [r2] + ldrh r0, [r2] + ldr r6, [sp, #0xc] + add r1, r7, #0 + strh r0, [r2, #2] + ldrh r3, [r2, #2] + mov r0, #0 +_022337AA: + ldr r2, [r1] + add r5, r1, #0 + add r5, #0x34 + cmp r2, r6 + bne _022337C0 + ldrh r5, [r5] + cmp r5, r3 + bne _022337C0 + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022337C0: + cmp r2, #0 + bne _0223380C + mov r1, #0x38 + mul r1, r0 + ldr r0, [sp, #0xc] + add r5, r4, #0 + str r0, [r7, r1] + add r0, r7, r1 + add r5, #0x58 + add r3, r0, #4 + mov r2, #0xc +_022337D6: + ldrh r0, [r5] + add r5, r5, #2 + strh r0, [r3] + add r3, r3, #2 + sub r2, r2, #1 + bne _022337D6 + add r3, r7, r1 + add r4, #0x70 + add r3, #0x1c + mov r2, #0xc +_022337EA: + ldrh r0, [r4] + add r4, r4, #2 + strh r0, [r3] + add r3, r3, #2 + sub r2, r2, #1 + bne _022337EA + add r0, sp, #4 + ldrh r0, [r0, #2] + add r1, r7, r1 + strh r0, [r1, #0x34] + ldr r0, [sp] + add r1, #0x36 + ldrh r0, [r0, #0x12] + add sp, #0x10 + strb r0, [r1] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0223380C: + add r0, r0, #1 + add r1, #0x38 + cmp r0, #8 + blt _022337AA + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD83_0223377C + + thumb_func_start MOD83_0223381C +MOD83_0223381C: ; 0x0223381C + push {r3, lr} + bl MOD83_022334BC + bl MOD83_02234A70 + cmp r0, #0 + bne _0223382E + bl MOD83_0223335C +_0223382E: + pop {r3, pc} + thumb_func_end MOD83_0223381C + + thumb_func_start MOD83_02233830 +MOD83_02233830: ; 0x02233830 + push {r4, r5, r6, lr} + add r6, r0, #0 + bl MOD83_02234610 + add r4, r0, #0 + bl MOD83_02234664 + add r5, r0, #0 + bl MOD83_02233388 + cmp r0, #0 + beq _0223384C + mov r0, #1 + pop {r4, r5, r6, pc} +_0223384C: + mov r1, #0 + add r2, r1, #0 + add r3, r5, #0 +_02233852: + ldr r0, [r3] + cmp r0, #0 + beq _0223385C + mov r1, #1 + b _02233864 +_0223385C: + add r2, r2, #1 + add r3, #0x38 + cmp r2, #8 + blt _02233852 +_02233864: + cmp r1, #0 + beq _02233882 + mov r0, #7 + lsl r0, r0, #6 + ldrh r0, [r5, r0] + cmp r0, #0 + bne _02233882 + bl MOD83_02234B2C + cmp r0, #0 + bne _0223387E + bl MOD83_0223335C +_0223387E: + mov r0, #1 + pop {r4, r5, r6, pc} +_02233882: + add r0, r4, #0 + mov r1, #0xc0 + bl DC_InvalidateRange + bl MOD83_02234664 + bl MOD83_02234964 + ldrh r0, [r6, #0x36] + cmp r0, #8 + blo _0223390C + bl MOD83_022346B0 + ldr r1, [r4, #0x44] + cmp r1, r0 + bne _0223390C + add r5, r4, #0 + add r5, #0x50 + bl MOD83_022346BC + ldr r1, [r4, #0x50] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, r0 + bne _0223390C + bl MOD83_022346CC + ldr r1, [r5] + lsl r1, r1, #0x14 + lsr r1, r1, #0x1c + cmp r1, r0 + bhi _0223390C + bl MOD83_022346DC + ldr r1, [r5, #4] + lsr r1, r1, #0x10 + cmp r1, r0 + bne _0223390C + add r0, r6, #0 + add r1, r4, #0 + bl MOD83_0223377C + cmp r0, #0 + beq _022338FC + bl MOD83_02234664 + ldr r1, _02233910 ; =0x000001C2 + ldrb r2, [r0, r1] + add r2, r2, #1 + strb r2, [r0, r1] + ldrb r0, [r0, r1] + cmp r0, #0x1c + bls _0223390C + bl MOD83_02234B2C + cmp r0, #0 + bne _0223390C + bl MOD83_0223335C + mov r0, #1 + pop {r4, r5, r6, pc} +_022338FC: + bl MOD83_02234B2C + cmp r0, #0 + bne _02233908 + bl MOD83_0223335C +_02233908: + mov r0, #1 + pop {r4, r5, r6, pc} +_0223390C: + mov r0, #0 + pop {r4, r5, r6, pc} + .align 2, 0 +_02233910: .word 0x000001C2 + thumb_func_end MOD83_02233830 + + thumb_func_start MOD83_02233914 +MOD83_02233914: ; 0x02233914 + push {r4, lr} + add r4, r0, #0 + ldrh r0, [r4, #8] + bl MOD83_0223495C + ldrh r0, [r4, #2] + cmp r0, #0 + bne _0223397A + bl MOD83_02234610 + bl MOD83_02234960 + mov r0, #6 + bl MOD83_02234580 + bl MOD83_02233388 + cmp r0, #0 + bne _02233982 + bl MOD83_022345A4 + cmp r0, #1 + bne _02233954 + bl MOD83_02234664 + ldr r2, _02233984 ; =0x000001C3 + mov r1, #0xf0 + ldrb r3, [r0, r2] + bic r3, r1 + mov r1, #0x10 + orr r1, r3 + strb r1, [r0, r2] +_02233954: + ldrh r0, [r4, #8] + cmp r0, #4 + beq _02233968 + cmp r0, #5 + bne _0223396E + add r0, r4, #0 + bl MOD83_02233830 + cmp r0, #0 + bne _02233982 +_02233968: + bl MOD83_0223381C + pop {r4, pc} +_0223396E: + ldrh r0, [r4, #2] + bl MOD83_02234958 + bl MOD83_0223335C + pop {r4, pc} +_0223397A: + bl MOD83_02234958 + bl MOD83_0223335C +_02233982: + pop {r4, pc} + .align 2, 0 +_02233984: .word 0x000001C3 + thumb_func_end MOD83_02233914 + + thumb_func_start MOD83_02233988 +MOD83_02233988: ; 0x02233988 + push {r4, r5, r6, lr} + sub sp, #8 + bl MOD83_02234610 + add r4, r0, #0 + bl MOD83_02234664 + add r6, r0, #0 + bl MOD83_02234564 + bl MOD83_02233388 + cmp r0, #0 + beq _022339AA + add sp, #8 + mov r0, #1 + pop {r4, r5, r6, pc} +_022339AA: + add r0, r4, #0 + mov r1, #0xc0 + bl DC_InvalidateRange + bl MOD83_02234664 + bl MOD83_02234964 + ldrh r0, [r4, #0x3c] + cmp r0, #8 + blo _02233A24 + bl MOD83_022346B0 + ldr r1, [r4, #0x44] + cmp r1, r0 + bne _02233A24 + add r5, r4, #0 + add r5, #0x50 + bl MOD83_022346BC + ldr r1, [r4, #0x50] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, r0 + bne _02233A24 + bl MOD83_022346CC + ldr r1, [r5] + lsl r1, r1, #0x14 + lsr r1, r1, #0x1c + cmp r1, r0 + bhi _02233A24 + bl MOD83_022346DC + ldr r1, [r5, #4] + lsr r1, r1, #0x10 + cmp r1, r0 + bne _02233A24 + add r0, r4, #4 + bl MOD83_0223336C + ldr r1, _02233A2C ; =0x000001C3 + str r0, [sp] + ldrb r1, [r6, r1] + str r0, [sp, #4] + lsl r1, r1, #0x1c + lsr r2, r1, #0x1c + mov r1, #0x38 + mul r1, r2 + ldr r1, [r6, r1] + cmp r1, r0 + bne _02233A24 + bl MOD83_02234B2C + cmp r0, #0 + bne _02233A1E + bl MOD83_0223335C +_02233A1E: + add sp, #8 + mov r0, #1 + pop {r4, r5, r6, pc} +_02233A24: + mov r0, #0 + add sp, #8 + pop {r4, r5, r6, pc} + nop +_02233A2C: .word 0x000001C3 + thumb_func_end MOD83_02233988 + + thumb_func_start MOD83_02233A30 +MOD83_02233A30: ; 0x02233A30 + push {r4, lr} + add r4, r0, #0 + ldrh r0, [r4, #8] + bl MOD83_0223495C + ldrh r0, [r4, #2] + cmp r0, #0 + bne _02233A90 + bl MOD83_02234664 + ldr r2, _02233A9C ; =0x000001C3 + mov r1, #0xf0 + ldrb r3, [r0, r2] + bic r3, r1 + mov r1, #0x20 + orr r1, r3 + strb r1, [r0, r2] + mov r0, #6 + bl MOD83_02234580 + bl MOD83_02233388 + cmp r0, #0 + bne _02233A98 + ldrh r0, [r4, #8] + cmp r0, #4 + beq _02233A72 + cmp r0, #5 + bne _02233A84 + bl MOD83_02233988 + cmp r0, #0 + bne _02233A98 +_02233A72: + bl MOD83_022334BC + bl MOD83_02234A94 + cmp r0, #0 + bne _02233A98 + bl MOD83_0223335C + pop {r4, pc} +_02233A84: + ldrh r0, [r4, #2] + bl MOD83_02234958 + bl MOD83_0223335C + pop {r4, pc} +_02233A90: + bl MOD83_02234958 + bl MOD83_0223335C +_02233A98: + pop {r4, pc} + nop +_02233A9C: .word 0x000001C3 + thumb_func_end MOD83_02233A30 + + thumb_func_start MOD83_02233AA0 +MOD83_02233AA0: ; 0x02233AA0 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + bne _02233AE4 + mov r0, #7 + bl MOD83_02234580 + bl MOD83_02233388 + cmp r0, #0 + bne _02233AEC + bl MOD83_022345A4 + cmp r0, #1 + bne _02233AEC + bl MOD83_02234664 + ldr r1, _02233AF0 ; =0x000001C3 + ldrb r0, [r0, r1] + lsl r0, r0, #0x18 + lsr r0, r0, #0x1c + cmp r0, #2 + bne _02233AEC + bl MOD83_02234B48 + cmp r0, #0 + bne _02233ADC + bl MOD83_0223335C + pop {r3, pc} +_02233ADC: + mov r0, #3 + bl MOD83_02234580 + pop {r3, pc} +_02233AE4: + bl MOD83_02234958 + bl MOD83_0223335C +_02233AEC: + pop {r3, pc} + nop +_02233AF0: .word 0x000001C3 + thumb_func_end MOD83_02233AA0 + + thumb_func_start MOD83_02233AF4 +MOD83_02233AF4: ; 0x02233AF4 + push {r4, lr} + add r4, r0, #0 + ldrh r0, [r4, #8] + bl MOD83_0223495C + ldrh r0, [r4, #2] + cmp r0, #0 + bne _02233B7A + mov r0, #9 + bl MOD83_02234580 + bl MOD83_02233388 + cmp r0, #0 + bne _02233B82 + ldrh r0, [r4, #8] + cmp r0, #9 + bhi _02233B6E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02233B24: ; jump table + .short _02233B6E - _02233B24 - 2 ; case 0 + .short _02233B6E - _02233B24 - 2 ; case 1 + .short _02233B6E - _02233B24 - 2 ; case 2 + .short _02233B6E - _02233B24 - 2 ; case 3 + .short _02233B6E - _02233B24 - 2 ; case 4 + .short _02233B6E - _02233B24 - 2 ; case 5 + .short _02233B82 - _02233B24 - 2 ; case 6 + .short _02233B38 - _02233B24 - 2 ; case 7 + .short _02233B82 - _02233B24 - 2 ; case 8 + .short _02233B58 - _02233B24 - 2 ; case 9 +_02233B38: + ldrh r0, [r4, #0xa] + bl MOD83_0223461C + mov r0, #1 + bl MOD83_02234634 + mov r0, #0 + bl MOD83_02234640 + bl MOD83_02234B80 + cmp r0, #0 + bne _02233B82 + bl MOD83_0223335C + pop {r4, pc} +_02233B58: + bl MOD83_02234628 + cmp r0, #0 + beq _02233B66 + mov r0, #1 + bl MOD83_02234640 +_02233B66: + mov r0, #0 + bl MOD83_02234634 + pop {r4, pc} +_02233B6E: + ldrh r0, [r4, #2] + bl MOD83_02234958 + bl MOD83_0223335C + pop {r4, pc} +_02233B7A: + bl MOD83_02234958 + bl MOD83_0223335C +_02233B82: + pop {r4, pc} + thumb_func_end MOD83_02233AF4 + + thumb_func_start MOD83_02233B84 +MOD83_02233B84: ; 0x02233B84 + push {r3, lr} + bl MOD83_022345A4 + cmp r0, #1 + beq _02233BBE + cmp r0, #2 + bne _02233BD6 + bl MOD83_02233438 + cmp r0, #0 + beq _02233BB8 + bl MOD83_022333D8 + bl MOD83_022349EC + cmp r0, #0 + beq _02233BB8 + bl MOD83_0223466C + mov r1, #1 + add r0, #0x60 + strb r1, [r0] + mov r0, #3 + bl MOD83_02234580 + pop {r3, pc} +_02233BB8: + bl MOD83_0223335C + pop {r3, pc} +_02233BBE: + bl MOD83_02233490 + bl MOD83_02234A70 + cmp r0, #0 + bne _02233BD0 + bl MOD83_0223335C + pop {r3, pc} +_02233BD0: + mov r0, #3 + bl MOD83_02234580 +_02233BD6: + pop {r3, pc} + thumb_func_end MOD83_02233B84 + + thumb_func_start MOD83_02233BD8 +MOD83_02233BD8: ; 0x02233BD8 + push {r4, lr} + add r4, r0, #0 + ldrh r0, [r4, #4] + bl MOD83_0223495C + ldrh r0, [r4, #2] + cmp r0, #0 + bne _02233C12 + ldrh r0, [r4] + cmp r0, #0xe + bne _02233BF6 + bl MOD83_02233388 + cmp r0, #0 + bne _02233C22 +_02233BF6: + bl MOD83_022345A4 + cmp r0, #1 + beq _02233C0A + cmp r0, #2 + bne _02233C22 + mov r0, #0xa + bl MOD83_02234580 + pop {r4, pc} +_02233C0A: + mov r0, #0xb + bl MOD83_02234580 + pop {r4, pc} +_02233C12: + cmp r0, #9 + beq _02233C22 + cmp r0, #0xd + beq _02233C22 + cmp r0, #0xf + beq _02233C22 + bl MOD83_0223335C +_02233C22: + pop {r4, pc} + thumb_func_end MOD83_02233BD8 + + thumb_func_start MOD83_02233C24 +MOD83_02233C24: ; 0x02233C24 + push {r4, r5, r6, lr} + add r6, r0, #0 + bl MOD83_02234694 + add r4, r0, #0 + ldrb r0, [r4, #0x19] + cmp r0, #1 + bne _02233C9A + ldrh r1, [r6, #0x10] + ldr r0, [r6, #0xc] + ldr r5, [r4, #0xc] + bl DC_FlushRange + ldrh r2, [r6, #0x10] + ldr r0, [r6, #0xc] + ldr r1, [r4, #0xc] + bl MI_CpuCopy8 + bl MOD83_022346BC + ldr r1, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, r0 + bne _02233C9A + bl MOD83_022346CC + ldr r1, [r5] + lsl r1, r1, #0x14 + lsr r1, r1, #0x1c + cmp r1, r0 + bhi _02233C9A + ldr r0, [r4, #0xc] + bl MOD83_02234900 + ldr r0, [r5, #8] + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldrb r0, [r4, #0x1c] + cmp r1, r0 + bne _02233C9A + ldr r0, [r4, #0xc] + bl MOD83_0223496C + ldr r0, [r4, #0xc] + bl MOD83_02234934 + cmp r0, #0 + beq _02233C96 + ldr r0, [r5, #8] + lsl r0, r0, #0x10 + lsr r0, r0, #0x18 + cmp r0, #1 + beq _02233C96 + mov r0, #2 + strb r0, [r4, #0x19] + pop {r4, r5, r6, pc} +_02233C96: + mov r0, #0 + strb r0, [r4, #0x19] +_02233C9A: + pop {r4, r5, r6, pc} + thumb_func_end MOD83_02233C24 + + thumb_func_start MOD83_02233C9C +MOD83_02233C9C: ; 0x02233C9C + push {r4, r5, r6, lr} + add r6, r0, #0 + bl MOD83_02234694 + add r4, r0, #0 + bl MOD83_022345A4 + cmp r0, #2 + bne _02233D24 + ldrb r0, [r4, #0x19] + cmp r0, #2 + beq _02233D24 + ldrh r1, [r6, #0x10] + ldr r0, [r6, #0xc] + ldr r5, [r4, #0xc] + bl DC_FlushRange + ldrh r2, [r6, #0x10] + ldr r0, [r6, #0xc] + ldr r1, [r4, #0xc] + bl MI_CpuCopy8 + bl MOD83_022346BC + ldr r1, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, r0 + bne _02233D24 + bl MOD83_022346CC + ldr r1, [r5] + lsl r1, r1, #0x14 + lsr r1, r1, #0x1c + cmp r1, r0 + bhi _02233D24 + ldr r0, [r4, #0xc] + bl MOD83_02234900 + ldr r0, [r5, #8] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0xfd + bne _02233D24 + bl MOD83_0223466C + ldrh r5, [r6, #0x12] + mov r2, #0 + add r3, r0, #0 +_02233CFE: + ldrh r1, [r3, #6] + cmp r5, r1 + bne _02233D1C + mov r1, #0xc + mul r1, r2 + add r1, r0, r1 + mov r2, #1 + strb r2, [r1, #8] + mov r0, #3 + strb r0, [r1, #9] + mov r0, #0xb4 + strb r0, [r4, #0x1a] + mov r0, #0 + strb r0, [r4, #0x19] + pop {r4, r5, r6, pc} +_02233D1C: + add r2, r2, #1 + add r3, #0xc + cmp r2, #8 + blt _02233CFE +_02233D24: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD83_02233C9C + + thumb_func_start MOD83_02233D28 +MOD83_02233D28: ; 0x02233D28 + push {r4, r5, r6, lr} + add r6, r0, #0 + bl MOD83_02234694 + add r4, r0, #0 + ldrb r0, [r4, #0x1c] + cmp r0, #0xfd + bne _02233D40 + add r0, r6, #0 + bl MOD83_02233C9C + pop {r4, r5, r6, pc} +_02233D40: + ldrb r0, [r4, #0x19] + cmp r0, #1 + beq _02233D4C + ldrb r0, [r4, #0x19] + cmp r0, #3 + bne _02233DE8 +_02233D4C: + ldrb r0, [r4, #0x1b] + cmp r0, #0 + bne _02233DE8 + ldrh r1, [r6, #0x10] + ldr r0, [r6, #0xc] + ldr r5, [r4, #0xc] + bl DC_FlushRange + ldrh r2, [r6, #0x10] + ldr r0, [r6, #0xc] + ldr r1, [r4, #0xc] + bl MI_CpuCopy8 + bl MOD83_022346BC + ldr r1, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + cmp r1, r0 + bne _02233DE8 + bl MOD83_022346CC + ldr r1, [r5] + lsl r1, r1, #0x14 + lsr r1, r1, #0x1c + cmp r1, r0 + bhi _02233DE8 + ldr r0, [r4, #0xc] + bl MOD83_02234900 + ldr r0, [r5, #8] + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + ldrb r0, [r4, #0x1c] + cmp r1, r0 + bne _02233DE8 + ldr r0, [r4, #0xc] + bl MOD83_0223496C + mov r0, #0 + strb r0, [r4, #0x19] + ldr r0, [r4, #0xc] + bl MOD83_02234934 + cmp r0, #0 + beq _02233DDA + ldr r0, [r5, #8] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + cmp r0, #0xfd + bne _02233DBA + add r0, r6, #0 + bl MOD83_02233C9C + b _02233DCC +_02233DBA: + ldr r2, [r5, #0xc] + ldr r1, [r4, #0xc] + lsl r0, r2, #0x18 + lsr r0, r0, #0x18 + add r0, r1, r0 + ldr r1, [r4, #4] + lsr r2, r2, #8 + bl MI_CpuCopy8 +_02233DCC: + ldr r1, [r5, #8] + ldr r0, _02233DEC ; =0xFFFF00FF + and r0, r1 + str r0, [r5, #8] + mov r0, #4 + strb r0, [r4, #0x1b] + pop {r4, r5, r6, pc} +_02233DDA: + ldr r1, [r5, #8] + ldr r0, _02233DEC ; =0xFFFF00FF + and r1, r0 + mov r0, #1 + lsl r0, r0, #8 + orr r0, r1 + str r0, [r5, #8] +_02233DE8: + pop {r4, r5, r6, pc} + nop +_02233DEC: .word 0xFFFF00FF + thumb_func_end MOD83_02233D28 + + thumb_func_start MOD83_02233DF0 +MOD83_02233DF0: ; 0x02233DF0 + push {r4, lr} + add r4, r0, #0 + ldrh r0, [r4, #4] + bl MOD83_0223495C + ldrh r0, [r4, #2] + cmp r0, #0 + bne _02233E72 + ldrh r0, [r4, #4] + cmp r0, #7 + beq _02233E3A + cmp r0, #9 + beq _02233E48 + cmp r0, #0x15 + bne _02233E72 + bl MOD83_02234574 + cmp r0, #0xa + beq _02233E1A + cmp r0, #0xb + bne _02233E72 +_02233E1A: + bl MOD83_02234694 + ldrb r0, [r0, #0x18] + cmp r0, #1 + beq _02233E2A + cmp r0, #2 + beq _02233E32 + pop {r4, pc} +_02233E2A: + add r0, r4, #0 + bl MOD83_02233C24 + pop {r4, pc} +_02233E32: + add r0, r4, #0 + bl MOD83_02233D28 + pop {r4, pc} +_02233E3A: + mov r0, #1 + bl MOD83_02234634 + mov r0, #0 + bl MOD83_02234640 + pop {r4, pc} +_02233E48: + bl MOD83_02234628 + cmp r0, #0 + beq _02233E56 + mov r0, #1 + bl MOD83_02234640 +_02233E56: + bl MOD83_02234574 + cmp r0, #0xa + beq _02233E64 + cmp r0, #0xb + beq _02233E6C + pop {r4, pc} +_02233E64: + ldrh r0, [r4, #0x12] + bl MOD83_022333B0 + pop {r4, pc} +_02233E6C: + mov r0, #0 + bl MOD83_02234634 +_02233E72: + pop {r4, pc} + thumb_func_end MOD83_02233DF0 + + thumb_func_start MOD83_02233E74 +MOD83_02233E74: ; 0x02233E74 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + bne _02233E8A + bl MOD83_02233388 + cmp r0, #0 + bne _02233E94 + bl MOD83_02233B84 + pop {r3, pc} +_02233E8A: + bl MOD83_02234958 + mov r0, #4 + bl MOD83_02234580 +_02233E94: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_02233E74 + + thumb_func_start MOD83_02233E98 +MOD83_02233E98: ; 0x02233E98 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + bne _02233EB0 + bl MOD83_022349CC + cmp r0, #0 + beq _02233EB8 + mov r0, #2 + bl MOD83_02234580 + pop {r3, pc} +_02233EB0: + bl MOD83_02234958 + bl MOD83_0223335C +_02233EB8: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_02233E98 + + thumb_func_start MOD83_02233EBC +MOD83_02233EBC: ; 0x02233EBC + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + bne _02233EF2 + mov r0, #0 + bl MOD83_0223461C + bl MOD83_0223458C + cmp r0, #0xc + bne _02233EE2 + bl MOD83_02234C54 + cmp r0, #0 + beq _02233EFC + mov r0, #3 + bl MOD83_02234580 + pop {r3, pc} +_02233EE2: + bl MOD83_02234C14 + cmp r0, #0 + beq _02233EFC + mov r0, #3 + bl MOD83_02234580 + pop {r3, pc} +_02233EF2: + bl MOD83_02234958 + mov r0, #4 + bl MOD83_02234580 +_02233EFC: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_02233EBC + + thumb_func_start MOD83_02233F00 +MOD83_02233F00: ; 0x02233F00 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + bne _02233F16 + mov r0, #0xc + bl MOD83_02234580 + mov r0, #1 + bl MOD83_0223464C + pop {r3, pc} +_02233F16: + bl MOD83_02234958 + mov r0, #4 + bl MOD83_02234580 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_02233F00 + + thumb_func_start MOD83_02233F24 +MOD83_02233F24: ; 0x02233F24 + push {r3, lr} + ldr r0, _02233F40 ; =MOD83_0223350C + bl WM_SetIndCallback + cmp r0, #0 + beq _02233F3A + mov r0, #4 + bl MOD83_02234580 + mov r0, #0 + pop {r3, pc} +_02233F3A: + mov r0, #1 + pop {r3, pc} + nop +_02233F40: .word MOD83_0223350C + thumb_func_end MOD83_02233F24 + + thumb_func_start MOD83_02233F44 +MOD83_02233F44: ; 0x02233F44 + push {r3, lr} + bl MOD83_02234574 + cmp r0, #0 + beq _02233F56 + cmp r0, #1 + beq _02233F56 + cmp r0, #2 + bne _02233F5A +_02233F56: + bl MOD83_022349B0 +_02233F5A: + pop {r3, pc} + thumb_func_end MOD83_02233F44 + + thumb_func_start MOD83_02233F5C +MOD83_02233F5C: ; 0x02233F5C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + bl MOD83_02234564 + ldrh r0, [r0, #0x34] + cmp r4, r0 + bhi _02233F80 + add r0, r5, #0 + add r1, r4, #0 + bl DC_FlushRange + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD83_02234970 +_02233F80: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD83_02233F5C + + thumb_func_start MOD83_02233F84 +MOD83_02233F84: ; 0x02233F84 + mov r0, #0x17 + lsl r0, r0, #6 + bx lr + .align 2, 0 + thumb_func_end MOD83_02233F84 + + thumb_func_start MOD83_02233F8C +MOD83_02233F8C: ; 0x02233F8C + mov r0, #0x17 + lsl r0, r0, #6 + bx lr + .align 2, 0 + thumb_func_end MOD83_02233F8C + + thumb_func_start MOD83_02233F94 +MOD83_02233F94: ; 0x02233F94 + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + add r5, r0, #0 + bl MOD83_02234564 + bl MOD83_0223456C + add r4, r0, #0 + mov r0, #0x1f + add r1, r7, #0 + and r1, r0 + beq _02233FB2 + mov r0, #0x20 + sub r0, r0, r1 + add r7, r7, r0 +_02233FB2: + mov r1, #0 + strb r1, [r4] + strb r1, [r4, #1] + strb r1, [r4, #2] + mov r0, #4 + strb r0, [r4, #3] + ldr r0, _022340B8 ; =0x00400131 + str r0, [r4, #4] + mov r0, #0xf + strh r1, [r4, #0xc] + lsl r0, r0, #8 + str r7, [r4, #0x34] + add r7, r7, r0 + str r7, [r4, #0x38] + bl MOD83_02233F84 + str r0, [r4, #0x2c] + add r7, r7, r0 + str r7, [r4, #0x3c] + bl MOD83_02233F8C + add r7, r7, r0 + str r0, [r4, #0x30] + add r0, r7, #0 + str r7, [r4, #0x28] + add r0, #0xc0 + str r0, [r4, #0x24] + ldr r0, [r4, #0x34] + mov r1, #2 + add r7, #0xe0 + bl WM_Init + bl MOD83_02233F24 + str r0, [r4, #0x10] + mov r2, #0 + str r2, [r4, #0x14] + str r2, [r4, #0x18] + str r2, [r4, #0x1c] + str r2, [r4, #0x20] + ldr r0, [r4, #0x40] + mov r6, #0xff + bic r0, r6 + add r3, r0, #0 + mov r1, #0xf + orr r3, r1 + ldr r0, _022340BC ; =0xFFFFF0FF + add r1, #0xf1 + and r0, r3 + orr r1, r0 + ldr r0, _022340C0 ; =0xFFFF0FFF + and r1, r0 + mov r0, #1 + lsl r0, r0, #0xc + orr r0, r1 + str r0, [r4, #0x40] + ldr r3, [r5] + ldr r1, [r4, #0x44] + lsl r3, r3, #0x18 + lsr r3, r3, #0x18 + lsl r3, r3, #0x18 + add r0, r4, #0 + bic r1, r6 + lsr r3, r3, #0x18 + orr r3, r1 + ldr r1, _022340BC ; =0xFFFFF0FF + str r3, [r4, #0x44] + and r1, r3 + ldr r3, [r5] + add r0, #0x44 + lsl r3, r3, #0x14 + lsr r3, r3, #0x1c + lsl r3, r3, #0x1c + lsr r3, r3, #0x14 + orr r3, r1 + ldr r1, _022340C0 ; =0xFFFF0FFF + str r3, [r4, #0x44] + and r1, r3 + ldr r3, [r5] + lsl r3, r3, #0x10 + lsr r3, r3, #0x1c + lsl r3, r3, #0x1c + lsr r3, r3, #0x10 + orr r1, r3 + str r1, [r4, #0x44] + ldr r1, [r0] + ldr r3, [r5] + lsl r1, r1, #0x10 + lsr r3, r3, #0x10 + lsr r1, r1, #0x10 + lsl r3, r3, #0x10 + orr r1, r3 + str r1, [r0] + ldr r0, [r5, #8] + ldr r1, [r5, #4] + add r3, r4, #0 + b _0223408C +_02234074: + ldrh r6, [r0] + add r5, r3, #0 + add r5, #0x48 + strh r6, [r5] + add r5, r3, #0 + ldrh r6, [r1] + add r5, #0x60 + add r3, r3, #2 + strh r6, [r5] + add r2, r2, #1 + add r0, r0, #2 + add r1, r1, #2 +_0223408C: + cmp r0, #0 + beq _02234094 + cmp r2, #0xc + blo _02234074 +_02234094: + ldr r1, [r4, #0x40] + ldr r0, [r4, #0x44] + str r1, [r4, #0x78] + str r0, [r4, #0x7c] + bl MOD83_022346A4 + bl MOD83_02234694 + str r7, [r0, #8] + ldr r0, [r4, #0x2c] + add r7, r7, r0 + bl MOD83_02234694 + str r7, [r0, #0xc] + bl WM_GetNextTgid + pop {r3, r4, r5, r6, r7, pc} + nop +_022340B8: .word 0x00400131 +_022340BC: .word 0xFFFFF0FF +_022340C0: .word 0xFFFF0FFF + thumb_func_end MOD83_02233F94 + + thumb_func_start MOD83_022340C4 +MOD83_022340C4: ; 0x022340C4 + push {r3, r4, r5, lr} + bl MOD83_02234694 + add r4, r0, #0 + ldrb r0, [r4, #0x19] + cmp r0, #1 + bne _022340E2 + ldrb r0, [r4, #0x1a] + sub r0, r0, #1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0x1a] + cmp r0, #0 + bne _02234118 + mov r0, #0 + strb r0, [r4, #0x19] +_022340E2: + ldrb r0, [r4, #0x19] + cmp r0, #0 + bne _02234118 + bl MOD83_02234770 + mov r1, #0x40 + sub r5, r1, r0 + ldrb r0, [r4, #0x1c] + add r2, r5, #0 + mov r3, #3 + str r0, [sp] + ldr r0, [r4, #8] + ldr r1, [r4, #4] + bl MOD83_022347D0 + bl MOD83_02234770 + add r1, r0, #0 + ldr r0, [r4, #8] + ldr r2, _0223411C ; =0x0000FFFF + add r1, r5, r1 + bl MOD83_02233F5C + mov r0, #1 + strb r0, [r4, #0x19] + mov r0, #0x3c + strb r0, [r4, #0x1a] +_02234118: + pop {r3, r4, r5, pc} + nop +_0223411C: .word 0x0000FFFF + thumb_func_end MOD83_022340C4 + + thumb_func_start MOD83_02234120 +MOD83_02234120: ; 0x02234120 + push {r3, r4, r5, r6, r7, lr} + bl MOD83_02234694 + add r4, r0, #0 + ldrb r0, [r4, #0x19] + cmp r0, #0 + bne _022341D6 + ldrb r0, [r4, #0x1c] + cmp r0, #0xfd + bne _02234198 + bl MOD83_0223466C + add r5, r0, #0 + mov r1, #0 + add r2, r5, #0 +_0223413E: + ldrb r0, [r2, #9] + cmp r0, #0 + beq _0223417E + add r6, r1, #0 + mov r0, #0xc + mul r6, r0 + add r0, r5, r6 + ldrh r0, [r0, #6] + mov r1, #1 + mov r2, #0 + lsl r1, r0 + lsl r0, r1, #0x10 + lsr r7, r0, #0x10 + mov r0, #0xfd + str r0, [sp] + ldr r0, [r4, #8] + ldr r1, [r4, #4] + add r3, r2, #0 + bl MOD83_022347D0 + bl MOD83_02234770 + add r1, r0, #0 + ldr r0, [r4, #8] + add r2, r7, #0 + bl MOD83_02233F5C + add r5, #9 + ldrb r0, [r5, r6] + sub r0, r0, #1 + strb r0, [r5, r6] + pop {r3, r4, r5, r6, r7, pc} +_0223417E: + add r1, r1, #1 + add r2, #0xc + cmp r1, #8 + blt _0223413E + ldrb r0, [r4, #0x1a] + sub r0, r0, #1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0x1a] + cmp r0, #0 + bne _022341D6 + mov r0, #2 + strb r0, [r4, #0x19] + pop {r3, r4, r5, r6, r7, pc} +_02234198: + bl MOD83_02234770 + bl MOD83_02233F84 + ldr r0, [r4, #0xc] + ldr r0, [r0, #8] + lsl r0, r0, #0x10 + lsr r3, r0, #0x18 + bne _022341BA + ldrb r0, [r4, #0x1b] + cmp r0, #0 + bne _022341B6 + mov r0, #2 + strb r0, [r4, #0x19] + pop {r3, r4, r5, r6, r7, pc} +_022341B6: + sub r0, r0, #1 + strb r0, [r4, #0x1b] +_022341BA: + ldrb r0, [r4, #0x1c] + mov r2, #0 + str r0, [sp] + ldr r0, [r4, #8] + ldr r1, [r4, #4] + bl MOD83_022347D0 + bl MOD83_02234770 + add r1, r0, #0 + ldr r0, [r4, #8] + ldr r2, _022341D8 ; =0x0000FFFF + bl MOD83_02233F5C +_022341D6: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022341D8: .word 0x0000FFFF + thumb_func_end MOD83_02234120 + + thumb_func_start MOD83_022341DC +MOD83_022341DC: ; 0x022341DC + push {r3, lr} + bl MOD83_02234694 + ldrb r0, [r0, #0x18] + cmp r0, #1 + beq _022341EE + cmp r0, #2 + beq _022341F4 + pop {r3, pc} +_022341EE: + bl MOD83_022340C4 + pop {r3, pc} +_022341F4: + bl MOD83_02234120 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022341DC + + thumb_func_start MOD83_022341FC +MOD83_022341FC: ; 0x022341FC + push {r4, lr} + bl MOD83_02234664 + add r4, r0, #0 + bl MOD83_02234574 + cmp r0, #6 + beq _02234212 + cmp r0, #0xb + beq _02234222 + pop {r4, pc} +_02234212: + mov r0, #7 + lsl r0, r0, #6 + ldrh r1, [r4, r0] + cmp r1, #0 + beq _02234226 + sub r1, r1, #1 + strh r1, [r4, r0] + pop {r4, pc} +_02234222: + bl MOD83_022341DC +_02234226: + pop {r4, pc} + thumb_func_end MOD83_022341FC + + thumb_func_start MOD83_02234228 +MOD83_02234228: ; 0x02234228 + push {r3, lr} + bl MOD83_02234574 + cmp r0, #0xa + bne _02234236 + bl MOD83_022341DC +_02234236: + pop {r3, pc} + thumb_func_end MOD83_02234228 + + thumb_func_start MOD83_02234238 +MOD83_02234238: ; 0x02234238 + push {r3, lr} + bl MOD83_02234574 + cmp r0, #0xc + beq _0223427A + bl MOD83_0223458C + cmp r0, #0xc + bne _02234258 + bl MOD83_02234574 + cmp r0, #7 + bne _0223427A + bl MOD83_02234C34 + pop {r3, pc} +_02234258: + bl MOD83_022345A4 + cmp r0, #1 + beq _02234266 + cmp r0, #2 + beq _0223426C + b _02234272 +_02234266: + bl MOD83_022341FC + pop {r3, pc} +_0223426C: + bl MOD83_02234228 + pop {r3, pc} +_02234272: + bl MOD83_0223456C + bl MOD83_02234574 +_0223427A: + pop {r3, pc} + thumb_func_end MOD83_02234238 + + thumb_func_start MOD83_0223427C +MOD83_0223427C: ; 0x0223427C + push {r3, lr} + bl MOD83_02234674 + mov r0, #1 + bl MOD83_022345B0 + bl MOD83_02233F44 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_0223427C + + thumb_func_start MOD83_02234290 +MOD83_02234290: ; 0x02234290 + push {r4, lr} + bl MOD83_022345A4 + mov r4, #0 + cmp r0, #1 + bne _022342BE + bl MOD83_02234664 + ldr r1, _022342C4 ; =0x000001C3 + ldrb r1, [r0, r1] + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + cmp r1, #1 + bne _022342BE + add r2, r4, #0 +_022342AE: + ldr r1, [r0] + cmp r1, #0 + beq _022342B6 + add r4, r4, #1 +_022342B6: + add r2, r2, #1 + add r0, #0x38 + cmp r2, #8 + blo _022342AE +_022342BE: + add r0, r4, #0 + pop {r4, pc} + nop +_022342C4: .word 0x000001C3 + thumb_func_end MOD83_02234290 + + thumb_func_start MOD83_022342C8 +MOD83_022342C8: ; 0x022342C8 + push {r4, lr} + add r4, r0, #0 + bl MOD83_022345A4 + cmp r0, #1 + bne _022342FA + bl MOD83_02234574 + cmp r0, #7 + bne _022342FA + bl MOD83_02234664 + ldr r1, _02234300 ; =0x000001C3 + ldrb r1, [r0, r1] + lsl r1, r1, #0x18 + lsr r1, r1, #0x1c + cmp r1, #1 + bne _022342FA + mov r1, #0x38 + mul r1, r4 + ldr r0, [r0, r1] + cmp r0, #0 + beq _022342FA + mov r0, #1 + pop {r4, pc} +_022342FA: + mov r0, #0 + pop {r4, pc} + nop +_02234300: .word 0x000001C3 + thumb_func_end MOD83_022342C8 + + thumb_func_start MOD83_02234304 +MOD83_02234304: ; 0x02234304 + push {r3, r4, r5, lr} + add r4, r0, #0 + bl MOD83_022345A4 + cmp r0, #1 + bne _0223434E + bl MOD83_02234574 + cmp r0, #7 + bne _0223434E + bl MOD83_02234664 + ldr r2, _02234350 ; =0x000001C3 + ldrb r3, [r0, r2] + lsl r1, r3, #0x18 + lsr r1, r1, #0x1c + cmp r1, #1 + bne _0223434E + mov r1, #0x38 + add r5, r4, #0 + mul r5, r1 + ldr r5, [r0, r5] + cmp r5, #0 + beq _0223434E + mov r5, #0xf + lsl r4, r4, #0x18 + bic r3, r5 + lsr r5, r4, #0x18 + mov r4, #0xf + and r4, r5 + orr r3, r4 + strb r3, [r0, r2] + mov r2, #0x78 + lsl r1, r1, #3 + strh r2, [r0, r1] + bl MOD83_02234A94 +_0223434E: + pop {r3, r4, r5, pc} + .align 2, 0 +_02234350: .word 0x000001C3 + thumb_func_end MOD83_02234304 + + thumb_func_start MOD83_02234354 +MOD83_02234354: ; 0x02234354 + push {r4, lr} + bl MOD83_022345A4 + mov r4, #0 + cmp r0, #2 + bne _02234386 + bl MOD83_0223466C + add r1, r0, #0 + add r1, #0x60 + ldrb r1, [r1] + cmp r1, #2 + bne _02234386 + add r2, r4, #0 +_02234370: + ldr r1, [r0] + cmp r1, #0 + beq _0223437E + ldrb r1, [r0, #0xa] + cmp r1, #0 + beq _0223437E + add r4, r4, #1 +_0223437E: + add r2, r2, #1 + add r0, #0xc + cmp r2, #8 + blo _02234370 +_02234386: + add r0, r4, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_02234354 + + thumb_func_start MOD83_0223438C +MOD83_0223438C: ; 0x0223438C + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #0x20] + cmp r0, #0 + beq _0223439C + mov r0, #0 + pop {r3, pc} +_0223439C: + bl WM_GetLinkLevel + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_0223438C + + thumb_func_start MOD83_022343A4 +MOD83_022343A4: ; 0x022343A4 + push {r3, lr} + bl MOD83_022345A4 + cmp r0, #1 + beq _022343B4 + cmp r0, #2 + beq _022343BA + b _022343C0 +_022343B4: + bl MOD83_02234290 + pop {r3, pc} +_022343BA: + bl MOD83_02234354 + pop {r3, pc} +_022343C0: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD83_022343A4 + + thumb_func_start MOD83_022343C4 +MOD83_022343C4: ; 0x022343C4 + push {r3, r4, r5, lr} + bl MOD83_02234694 + add r5, r0, #0 + bl MOD83_022346EC + add r4, r0, #0 + bl MOD83_022345A4 + cmp r0, #1 + bne _022343F6 + mov r0, #1 + strb r0, [r5, #0x18] + mov r1, #0 + strb r1, [r5, #0x19] + add r4, #8 + str r4, [r5] + str r4, [r5, #4] + str r1, [r5, #0x10] + str r1, [r5, #0x14] + mov r0, #0x78 + strb r0, [r5, #0x1a] + strb r1, [r5, #0x1b] + mov r0, #0xfd + strb r0, [r5, #0x1c] +_022343F6: + pop {r3, r4, r5, pc} + thumb_func_end MOD83_022343C4 + + thumb_func_start MOD83_022343F8 +MOD83_022343F8: ; 0x022343F8 + push {r4, lr} + bl MOD83_02234694 + add r4, r0, #0 + bl MOD83_022346EC + mov r1, #1 + strb r1, [r4, #0x18] + mov r1, #0 + strb r1, [r4, #0x19] + add r0, #8 + str r0, [r4] + str r0, [r4, #4] + mov r0, #0x30 + str r0, [r4, #0x10] + str r0, [r4, #0x14] + mov r0, #0x78 + strb r0, [r4, #0x1a] + strb r1, [r4, #0x1b] + mov r0, #0xfe + strb r0, [r4, #0x1c] + pop {r4, pc} + thumb_func_end MOD83_022343F8 + + thumb_func_start MOD83_02234424 +MOD83_02234424: ; 0x02234424 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + add r4, r2, #0 + bl MOD83_02234694 + cmp r4, #0xf0 + bgt _0223444E + mov r1, #2 + strb r1, [r0, #0x18] + mov r1, #3 + strb r1, [r0, #0x19] + str r5, [r0] + str r5, [r0, #4] + str r6, [r0, #0x10] + mov r2, #0 + str r2, [r0, #0x14] + mov r1, #0x78 + strb r1, [r0, #0x1a] + strb r2, [r0, #0x1b] + strb r4, [r0, #0x1c] +_0223444E: + pop {r4, r5, r6, pc} + thumb_func_end MOD83_02234424 + + thumb_func_start MOD83_02234450 +MOD83_02234450: ; 0x02234450 + push {r3, lr} + bl MOD83_022345A4 + cmp r0, #1 + beq _0223445E + cmp r0, #2 + bne _02234478 +_0223445E: + bl MOD83_02234574 + cmp r0, #0xa + beq _0223446A + cmp r0, #0xb + bne _02234478 +_0223446A: + bl MOD83_02234694 + ldrb r0, [r0, #0x19] + cmp r0, #2 + bne _02234478 + mov r0, #1 + pop {r3, pc} +_02234478: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD83_02234450 + + thumb_func_start MOD83_0223447C +MOD83_0223447C: ; 0x0223447C + push {r3, lr} + bl MOD83_022345A4 + cmp r0, #1 + beq _0223448A + cmp r0, #2 + bne _022344A4 +_0223448A: + bl MOD83_02234574 + cmp r0, #0xa + beq _02234496 + cmp r0, #0xb + bne _022344A4 +_02234496: + bl MOD83_02234694 + ldrb r0, [r0, #0x19] + cmp r0, #2 + bne _022344A4 + mov r0, #1 + pop {r3, pc} +_022344A4: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD83_0223447C + + thumb_func_start MOD83_022344A8 +MOD83_022344A8: ; 0x022344A8 + push {r3, lr} + bl MOD83_022345A4 + cmp r0, #1 + beq _022344B6 + cmp r0, #2 + bne _022344E0 +_022344B6: + bl MOD83_02234574 + cmp r0, #0xa + beq _022344C2 + cmp r0, #0xb + bne _022344E0 +_022344C2: + bl MOD83_02234694 + ldrb r1, [r0, #0x19] + cmp r1, #0 + bne _022344E0 + ldr r1, [r0, #0xc] + ldr r1, [r1, #8] + lsl r1, r1, #0x10 + lsr r1, r1, #0x18 + bne _022344E0 + ldrb r0, [r0, #0x1b] + cmp r0, #4 + bhs _022344E0 + mov r0, #1 + pop {r3, pc} +_022344E0: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD83_022344A8 + + thumb_func_start MOD83_022344E4 +MOD83_022344E4: ; 0x022344E4 + push {r3, lr} + bl MOD83_022345A4 + cmp r0, #2 + bne _02234510 + bl MOD83_0223466C + mov r2, #0 +_022344F4: + ldr r1, [r0] + cmp r1, #0 + beq _02234504 + ldrb r1, [r0, #0xa] + cmp r1, #0 + beq _02234504 + mov r0, #1 + pop {r3, pc} +_02234504: + add r2, r2, #1 + add r0, #0xc + cmp r2, #8 + blt _022344F4 + mov r0, #0 + pop {r3, pc} +_02234510: + bl MOD83_02234628 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022344E4 + + thumb_func_start MOD83_02234518 +MOD83_02234518: ; 0x02234518 + push {r4, lr} + mov r0, #0xc + bl MOD83_02234598 + bl MOD83_02234574 + cmp r0, #0 + beq _02234532 + cmp r0, #1 + beq _02234532 + cmp r0, #9 + beq _0223453E + pop {r4, pc} +_02234532: + bl WM_Finish + mov r0, #1 + bl MOD83_0223464C + pop {r4, pc} +_0223453E: + bl MOD83_02234628 + cmp r0, #0 + bne _02234554 + bl MOD83_0223456C + add r4, r0, #0 + bl MOD83_02234C34 + mov r0, #1 + str r0, [r4, #0x1c] +_02234554: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_02234518 + + thumb_func_start MOD83_02234558 +MOD83_02234558: ; 0x02234558 + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #0x20] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_02234558 + + thumb_func_start MOD83_02234564 +MOD83_02234564: ; 0x02234564 + ldr r0, _02234568 ; =0x0223B240 + bx lr + .align 2, 0 +_02234568: .word 0x0223B240 + thumb_func_end MOD83_02234564 + + thumb_func_start MOD83_0223456C +MOD83_0223456C: ; 0x0223456C + ldr r0, _02234570 ; =0x0223B8A0 + bx lr + .align 2, 0 +_02234570: .word 0x0223B8A0 + thumb_func_end MOD83_0223456C + + thumb_func_start MOD83_02234574 +MOD83_02234574: ; 0x02234574 + push {r3, lr} + bl MOD83_0223456C + ldrb r0, [r0] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_02234574 + + thumb_func_start MOD83_02234580 +MOD83_02234580: ; 0x02234580 + push {r4, lr} + add r4, r0, #0 + bl MOD83_0223456C + strb r4, [r0] + pop {r4, pc} + thumb_func_end MOD83_02234580 + + thumb_func_start MOD83_0223458C +MOD83_0223458C: ; 0x0223458C + push {r3, lr} + bl MOD83_0223456C + ldrb r0, [r0, #1] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_0223458C + + thumb_func_start MOD83_02234598 +MOD83_02234598: ; 0x02234598 + push {r4, lr} + add r4, r0, #0 + bl MOD83_0223456C + strb r4, [r0, #1] + pop {r4, pc} + thumb_func_end MOD83_02234598 + + thumb_func_start MOD83_022345A4 +MOD83_022345A4: ; 0x022345A4 + push {r3, lr} + bl MOD83_0223456C + ldrb r0, [r0, #2] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022345A4 + + thumb_func_start MOD83_022345B0 +MOD83_022345B0: ; 0x022345B0 + push {r4, lr} + add r4, r0, #0 + bl MOD83_0223456C + strb r4, [r0, #2] + pop {r4, pc} + thumb_func_end MOD83_022345B0 + + thumb_func_start MOD83_022345BC +MOD83_022345BC: ; 0x022345BC + push {r3, lr} + bl MOD83_0223456C + ldrb r0, [r0, #3] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022345BC + + thumb_func_start MOD83_022345C8 +MOD83_022345C8: ; 0x022345C8 + push {r4, lr} + add r4, r0, #0 + bl MOD83_02234564 + strh r4, [r0, #0x32] + pop {r4, pc} + thumb_func_end MOD83_022345C8 + + thumb_func_start MOD83_022345D4 +MOD83_022345D4: ; 0x022345D4 + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #0x24] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022345D4 + + thumb_func_start MOD83_022345E0 +MOD83_022345E0: ; 0x022345E0 + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #0x2c] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022345E0 + + thumb_func_start MOD83_022345EC +MOD83_022345EC: ; 0x022345EC + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #0x30] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022345EC + + thumb_func_start MOD83_022345F8 +MOD83_022345F8: ; 0x022345F8 + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #0x38] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022345F8 + + thumb_func_start MOD83_02234604 +MOD83_02234604: ; 0x02234604 + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #0x3c] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_02234604 + + thumb_func_start MOD83_02234610 +MOD83_02234610: ; 0x02234610 + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #0x28] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_02234610 + + thumb_func_start MOD83_0223461C +MOD83_0223461C: ; 0x0223461C + push {r4, lr} + add r4, r0, #0 + bl MOD83_0223456C + strh r4, [r0, #0xc] + pop {r4, pc} + thumb_func_end MOD83_0223461C + + thumb_func_start MOD83_02234628 +MOD83_02234628: ; 0x02234628 + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #0x14] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_02234628 + + thumb_func_start MOD83_02234634 +MOD83_02234634: ; 0x02234634 + push {r4, lr} + add r4, r0, #0 + bl MOD83_0223456C + str r4, [r0, #0x14] + pop {r4, pc} + thumb_func_end MOD83_02234634 + + thumb_func_start MOD83_02234640 +MOD83_02234640: ; 0x02234640 + push {r4, lr} + add r4, r0, #0 + bl MOD83_0223456C + str r4, [r0, #0x18] + pop {r4, pc} + thumb_func_end MOD83_02234640 + + thumb_func_start MOD83_0223464C +MOD83_0223464C: ; 0x0223464C + push {r4, lr} + add r4, r0, #0 + bl MOD83_0223456C + str r4, [r0, #0x20] + pop {r4, pc} + thumb_func_end MOD83_0223464C + + thumb_func_start MOD83_02234658 +MOD83_02234658: ; 0x02234658 + push {r3, lr} + bl MOD83_0223456C + add r0, #0x90 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_02234658 + + thumb_func_start MOD83_02234664 +MOD83_02234664: ; 0x02234664 + ldr r3, _02234668 ; =MOD83_02234658 + bx r3 + .align 2, 0 +_02234668: .word MOD83_02234658 + thumb_func_end MOD83_02234664 + + thumb_func_start MOD83_0223466C +MOD83_0223466C: ; 0x0223466C + ldr r3, _02234670 ; =MOD83_02234658 + bx r3 + .align 2, 0 +_02234670: .word MOD83_02234658 + thumb_func_end MOD83_0223466C + + thumb_func_start MOD83_02234674 +MOD83_02234674: ; 0x02234674 + push {r4, lr} + bl MOD83_02234664 + mov r2, #0x71 + mov r1, #0 + lsl r2, r2, #2 + add r4, r0, #0 + bl MI_CpuFill8 + mov r1, #0x46 + lsl r1, r1, #2 + add r0, r1, #0 + add r0, #0xa8 + strh r1, [r4, r0] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_02234674 + + thumb_func_start MOD83_02234694 +MOD83_02234694: ; 0x02234694 + push {r3, lr} + bl MOD83_0223456C + mov r1, #0x95 + lsl r1, r1, #2 + add r0, r0, r1 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_02234694 + + thumb_func_start MOD83_022346A4 +MOD83_022346A4: ; 0x022346A4 + push {r3, lr} + bl MOD83_02234694 + mov r1, #0 + strb r1, [r0, #0x18] + pop {r3, pc} + thumb_func_end MOD83_022346A4 + + thumb_func_start MOD83_022346B0 +MOD83_022346B0: ; 0x022346B0 + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #4] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022346B0 + + thumb_func_start MOD83_022346BC +MOD83_022346BC: ; 0x022346BC + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #0x40] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022346BC + + thumb_func_start MOD83_022346CC +MOD83_022346CC: ; 0x022346CC + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #0x40] + lsl r0, r0, #0x14 + lsr r0, r0, #0x1c + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022346CC + + thumb_func_start MOD83_022346DC +MOD83_022346DC: ; 0x022346DC + push {r3, lr} + bl MOD83_0223456C + ldr r0, [r0, #0x44] + lsr r0, r0, #0x10 + pop {r3, pc} + thumb_func_end MOD83_022346DC + + thumb_func_start MOD83_022346E8 +MOD83_022346E8: ; 0x022346E8 + mov r0, #0x38 + bx lr + thumb_func_end MOD83_022346E8 + + thumb_func_start MOD83_022346EC +MOD83_022346EC: ; 0x022346EC + push {r3, lr} + bl MOD83_0223456C + add r0, #0x40 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022346EC + + thumb_func_start MOD83_022346F8 +MOD83_022346F8: ; 0x022346F8 + push {r3, lr} + bl MOD83_0223456C + add r0, #0x78 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022346F8 + + thumb_func_start MOD83_02234704 +MOD83_02234704: ; 0x02234704 + push {r3} + sub sp, #4 + mov r2, #0 + str r2, [sp] + add r3, sp, #0 +_0223470E: + add r1, r0, r2 + ldrb r1, [r1, #2] + add r2, r2, #1 + strb r1, [r3] + add r3, r3, #1 + cmp r2, #4 + blo _0223470E + ldr r0, [sp] + add sp, #4 + pop {r3} + bx lr + thumb_func_end MOD83_02234704 + + thumb_func_start MOD83_02234724 +MOD83_02234724: ; 0x02234724 + push {r3} + sub sp, #4 + mov r2, #0 + add r1, sp, #0 + strh r2, [r1] + add r3, sp, #0 +_02234730: + ldrb r1, [r0, r2] + add r2, r2, #1 + strb r1, [r3] + add r3, r3, #1 + cmp r2, #2 + blo _02234730 + add r1, sp, #0 + mov r0, #0 + ldrsh r0, [r1, r0] + add sp, #4 + pop {r3} + bx lr + thumb_func_end MOD83_02234724 + + thumb_func_start MOD83_02234748 +MOD83_02234748: ; 0x02234748 + push {r4, r5, r6, lr} + add r5, r1, #0 + ldr r1, _0223476C ; =0x00002710 + add r6, r0, #0 + add r4, r2, #0 + bl _u32_div_f + str r1, [r5] + ldr r1, _0223476C ; =0x00002710 + add r0, r6, #0 + bl _u32_div_f + ldr r1, _0223476C ; =0x00002710 + bl _u32_div_f + str r1, [r4] + pop {r4, r5, r6, pc} + nop +_0223476C: .word 0x00002710 + thumb_func_end MOD83_02234748 + + thumb_func_start MOD83_02234770 +MOD83_02234770: ; 0x02234770 + mov r0, #0x10 + bx lr + thumb_func_end MOD83_02234770 + + thumb_func_start MOD83_02234774 +MOD83_02234774: ; 0x02234774 + push {r4, lr} + ldr r0, _02234788 ; =0x04000006 + ldrh r4, [r0] + bl OS_GetTick + add r1, r0, r4 + mov r0, #1 + bic r1, r0 + add r0, r1, #1 + pop {r4, pc} + .align 2, 0 +_02234788: .word 0x04000006 + thumb_func_end MOD83_02234774 + + thumb_func_start MOD83_0223478C +MOD83_0223478C: ; 0x0223478C + push {r4, r5, r6, r7} + add r3, r0, #0 + mov r0, #0 + lsr r1, r1, #2 + beq _022347C2 + ldr r4, _022347C8 ; =0x00269EC3 +_02234798: + ldr r5, _022347CC ; =0x5D588B65 + ldr r6, _022347CC ; =0x5D588B65 + mul r5, r3 + ldr r3, _022347C8 ; =0x00269EC3 + add r0, r0, #1 + add r3, r5, r3 + lsr r5, r3, #0x10 + mul r6, r3 + add r3, r6, r4 + lsl r5, r5, #0x10 + lsr r7, r3, #0x10 + lsr r5, r5, #0x10 + lsl r7, r7, #0x10 + ldr r6, [r2] + lsl r5, r5, #0x10 + lsr r7, r7, #0x10 + orr r5, r7 + eor r5, r6 + stmia r2!, {r5} + cmp r0, r1 + blo _02234798 +_022347C2: + add r0, r3, #0 + pop {r4, r5, r6, r7} + bx lr + .align 2, 0 +_022347C8: .word 0x00269EC3 +_022347CC: .word 0x5D588B65 + thumb_func_end MOD83_0223478C + + thumb_func_start MOD83_022347D0 +MOD83_022347D0: ; 0x022347D0 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r7, r1, #0 + add r6, r2, #0 + str r3, [sp] + bl MOD83_022346EC + add r4, r0, #0 + ldr r0, [r5] + mov r1, #0xff + bic r0, r1 + ldr r1, [r4] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + orr r1, r0 + ldr r0, _022348F4 ; =0xFFFFF0FF + str r1, [r5] + and r0, r1 + ldr r1, [r4] + lsl r1, r1, #0x14 + lsr r1, r1, #0x1c + lsl r1, r1, #0x1c + lsr r1, r1, #0x14 + orr r1, r0 + ldr r0, _022348F8 ; =0xFFFF0FFF + str r1, [r5] + and r0, r1 + ldr r1, [r4] + lsl r1, r1, #0x10 + lsr r1, r1, #0x1c + lsl r1, r1, #0x1c + lsr r1, r1, #0x10 + orr r0, r1 + str r0, [r5] + bl MOD83_02234774 + ldr r1, [r5] + lsl r0, r0, #0x10 + lsl r1, r1, #0x10 + lsr r0, r0, #0x10 + lsr r1, r1, #0x10 + lsl r0, r0, #0x10 + orr r0, r1 + str r0, [r5] + ldr r2, [r4, #4] + ldr r1, [r5, #4] + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + mov r0, #0xff + lsl r2, r2, #0x18 + bic r1, r0 + lsr r2, r2, #0x18 + orr r2, r1 + ldr r1, _022348F4 ; =0xFFFFF0FF + str r2, [r5, #4] + and r1, r2 + ldr r2, [r4, #4] + lsl r2, r2, #0x14 + lsr r2, r2, #0x1c + lsl r2, r2, #0x1c + lsr r2, r2, #0x14 + orr r2, r1 + ldr r1, _022348F8 ; =0xFFFF0FFF + str r2, [r5, #4] + and r1, r2 + ldr r2, [r4, #4] + lsl r2, r2, #0x10 + lsr r2, r2, #0x1c + lsl r2, r2, #0x1c + lsr r2, r2, #0x10 + orr r1, r2 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + str r1, [r5, #4] + ldr r1, [r5, #8] + bic r1, r0 + ldr r0, [sp, #0x18] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + orr r1, r0 + ldr r0, _022348FC ; =0xFFFF00FF + and r0, r1 + ldr r1, [sp] + lsl r1, r1, #0x18 + lsr r1, r1, #0x10 + orr r0, r1 + str r0, [r5, #8] + mov r0, #0 + add r1, r7, #0 + add r2, r6, #0 + bl SVC_GetCRC16 + ldr r1, [r5, #8] + lsl r0, r0, #0x10 + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + orr r0, r1 + str r0, [r5, #8] + bl MOD83_02234770 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + lsl r0, r0, #0x18 + ldr r1, [r5, #0xc] + mov r2, #0xff + bic r1, r2 + lsr r0, r0, #0x18 + orr r0, r1 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + lsl r0, r6, #8 + orr r0, r1 + str r0, [r5, #0xc] + cmp r6, #0 + beq _022348CE + ldr r1, [r5, #0xc] + add r0, r7, #0 + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r1, r5, r1 + add r2, r6, #0 + bl MI_CpuCopy8 +_022348CE: + add r0, r5, #0 + bl MOD83_0223496C + ldr r0, [r4] + lsl r0, r0, #0x10 + lsr r0, r0, #0x1c + cmp r0, #1 + bne _022348F2 + ldr r1, [r5, #0xc] + ldr r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + add r1, r6, r1 + lsr r0, r0, #0x10 + sub r1, r1, #4 + add r2, r5, #4 + bl MOD83_0223478C +_022348F2: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022348F4: .word 0xFFFFF0FF +_022348F8: .word 0xFFFF0FFF +_022348FC: .word 0xFFFF00FF + thumb_func_end MOD83_022347D0 + + thumb_func_start MOD83_02234900 +MOD83_02234900: ; 0x02234900 + push {r4, lr} + add r4, r0, #0 + bl MOD83_022346EC + ldr r0, [r4] + lsl r1, r0, #0x10 + lsr r1, r1, #0x1c + cmp r1, #1 + bne _02234930 + lsr r0, r0, #0x10 + mov r1, #0xc + add r2, r4, #4 + bl MOD83_0223478C + ldr r1, [r4, #0xc] + add r4, #0x10 + lsl r2, r1, #0x18 + lsr r2, r2, #0x18 + lsr r1, r1, #8 + add r1, r2, r1 + sub r1, #0x10 + add r2, r4, #0 + bl MOD83_0223478C +_02234930: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_02234900 + + thumb_func_start MOD83_02234934 +MOD83_02234934: ; 0x02234934 + push {r4, lr} + add r4, r0, #0 + ldr r2, [r4, #0xc] + mov r0, #0 + lsl r1, r2, #0x18 + lsr r1, r1, #0x18 + add r1, r4, r1 + lsr r2, r2, #8 + bl SVC_GetCRC16 + ldr r1, [r4, #8] + lsr r1, r1, #0x10 + cmp r1, r0 + bne _02234954 + mov r0, #1 + pop {r4, pc} +_02234954: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD83_02234934 + + thumb_func_start MOD83_02234958 +MOD83_02234958: ; 0x02234958 + bx lr + .align 2, 0 + thumb_func_end MOD83_02234958 + + thumb_func_start MOD83_0223495C +MOD83_0223495C: ; 0x0223495C + bx lr + .align 2, 0 + thumb_func_end MOD83_0223495C + + thumb_func_start MOD83_02234960 +MOD83_02234960: ; 0x02234960 + bx lr + .align 2, 0 + thumb_func_end MOD83_02234960 + + thumb_func_start MOD83_02234964 +MOD83_02234964: ; 0x02234964 + bx lr + .align 2, 0 + thumb_func_end MOD83_02234964 + + thumb_func_start MOD83_02234968 +MOD83_02234968: ; 0x02234968 + bx lr + .align 2, 0 + thumb_func_end MOD83_02234968 + + thumb_func_start MOD83_0223496C +MOD83_0223496C: ; 0x0223496C + bx lr + .align 2, 0 + thumb_func_end MOD83_0223496C + + thumb_func_start MOD83_02234970 +MOD83_02234970: ; 0x02234970 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r6, r0, #0 + add r5, r1, #0 + add r4, r2, #0 + bl MOD83_022345BC + lsl r0, r0, #0x10 + lsl r3, r5, #0x10 + lsr r0, r0, #0x10 + str r4, [sp] + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + ldr r0, _022349AC ; =MOD83_02233528 + mov r1, #0 + add r2, r6, #0 + lsr r3, r3, #0x10 + bl WM_SetMPDataToPortEx + cmp r0, #2 + beq _022349A6 + bl MOD83_02234958 + add sp, #0xc + mov r0, #0 + pop {r3, r4, r5, r6, pc} +_022349A6: + mov r0, #1 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_022349AC: .word MOD83_02233528 + thumb_func_end MOD83_02234970 + + thumb_func_start MOD83_022349B0 +MOD83_022349B0: ; 0x022349B0 + push {r3, lr} + ldr r0, _022349C8 ; =MOD83_02233540 + bl WM_Enable + cmp r0, #2 + beq _022349C4 + bl MOD83_02234958 + mov r0, #0 + pop {r3, pc} +_022349C4: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_022349C8: .word MOD83_02233540 + thumb_func_end MOD83_022349B0 + + thumb_func_start MOD83_022349CC +MOD83_022349CC: ; 0x022349CC + push {r3, lr} + ldr r0, _022349E8 ; =MOD83_02233580 + bl WM_Disable + cmp r0, #2 + beq _022349E4 + bl MOD83_02234958 + bl OS_Terminate + mov r0, #0 + pop {r3, pc} +_022349E4: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_022349E8: .word MOD83_02233580 + thumb_func_end MOD83_022349CC + + thumb_func_start MOD83_022349EC +MOD83_022349EC: ; 0x022349EC + push {r3, lr} + add r3, r0, #0 + mov r0, #0x1e + str r0, [sp] + lsl r3, r3, #0x10 + ldr r0, _02234A14 ; =MOD83_022335B8 + mov r1, #3 + mov r2, #0x11 + lsr r3, r3, #0x10 + bl WM_MeasureChannel + cmp r0, #2 + beq _02234A0E + bl MOD83_02234958 + mov r0, #0 + pop {r3, pc} +_02234A0E: + mov r0, #1 + pop {r3, pc} + nop +_02234A14: .word MOD83_022335B8 + thumb_func_end MOD83_022349EC + + thumb_func_start MOD83_02234A18 +MOD83_02234A18: ; 0x02234A18 + push {r3, r4, r5, lr} + bl MOD83_02234564 + add r5, r0, #0 + bl MOD83_022346EC + add r4, r0, #0 + bl MOD83_0223466C + add r0, #0x64 + ldrb r0, [r0] + strh r0, [r5, #0x32] + str r4, [r5] + bl MOD83_022346E8 + strh r0, [r5, #4] + ldr r0, _02234A50 ; =MOD83_02233620 + add r1, r5, #0 + bl WM_SetParentParameter + cmp r0, #2 + beq _02234A4C + bl MOD83_02234958 + mov r0, #0 + pop {r3, r4, r5, pc} +_02234A4C: + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 +_02234A50: .word MOD83_02233620 + thumb_func_end MOD83_02234A18 + + thumb_func_start MOD83_02234A54 +MOD83_02234A54: ; 0x02234A54 + push {r3, lr} + ldr r0, _02234A6C ; =MOD83_02233648 + bl WM_StartParent + cmp r0, #2 + beq _02234A68 + bl MOD83_02234958 + mov r0, #0 + pop {r3, pc} +_02234A68: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02234A6C: .word MOD83_02233648 + thumb_func_end MOD83_02234A54 + + thumb_func_start MOD83_02234A70 +MOD83_02234A70: ; 0x02234A70 + push {r3, lr} + bl MOD83_022345D4 + add r1, r0, #0 + ldr r0, _02234A90 ; =MOD83_02233914 + bl WM_StartScan + cmp r0, #2 + beq _02234A8A + bl MOD83_02234958 + mov r0, #0 + pop {r3, pc} +_02234A8A: + mov r0, #1 + pop {r3, pc} + nop +_02234A90: .word MOD83_02233914 + thumb_func_end MOD83_02234A70 + + thumb_func_start MOD83_02234A94 +MOD83_02234A94: ; 0x02234A94 + push {r3, r4, r5, lr} + bl MOD83_022345D4 + add r4, r0, #0 + bl MOD83_02234664 + ldr r2, _02234B24 ; =0x000001C3 + mov r3, #0x38 + ldrb r1, [r0, r2] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + add r5, r1, #0 + mul r5, r3 + add r1, r0, r5 + add r1, #0x34 + ldrb r1, [r1] + strb r1, [r4, #8] + ldrb r1, [r0, r2] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + add r5, r1, #0 + mul r5, r3 + add r1, r0, r5 + add r1, #0x35 + ldrb r1, [r1] + strb r1, [r4, #9] + ldrb r1, [r0, r2] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + add r5, r1, #0 + mul r5, r3 + ldrb r1, [r0, r5] + strb r1, [r4, #0xa] + ldrb r1, [r0, r2] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + add r5, r1, #0 + mul r5, r3 + add r1, r0, r5 + ldrb r1, [r1, #1] + strb r1, [r4, #0xb] + ldrb r1, [r0, r2] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + add r5, r1, #0 + mul r5, r3 + add r1, r0, r5 + ldrb r1, [r1, #2] + strb r1, [r4, #0xc] + ldrb r1, [r0, r2] + lsl r1, r1, #0x1c + lsr r1, r1, #0x1c + add r2, r1, #0 + mul r2, r3 + add r0, r0, r2 + ldrb r0, [r0, #3] + strb r0, [r4, #0xd] + bl MOD83_022345D4 + add r1, r0, #0 + ldr r0, _02234B28 ; =MOD83_02233A30 + bl WM_StartScan + cmp r0, #2 + beq _02234B1E + bl MOD83_02234958 + mov r0, #0 + pop {r3, r4, r5, pc} +_02234B1E: + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_02234B24: .word 0x000001C3 +_02234B28: .word MOD83_02233A30 + thumb_func_end MOD83_02234A94 + + thumb_func_start MOD83_02234B2C +MOD83_02234B2C: ; 0x02234B2C + push {r3, lr} + ldr r0, _02234B44 ; =MOD83_02233AA0 + bl WM_EndScan + cmp r0, #2 + beq _02234B40 + bl MOD83_02234958 + mov r0, #0 + pop {r3, pc} +_02234B40: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02234B44: .word MOD83_02233AA0 + thumb_func_end MOD83_02234B2C + + thumb_func_start MOD83_02234B48 +MOD83_02234B48: ; 0x02234B48 + push {r3, r4, lr} + sub sp, #4 + bl MOD83_022346F8 + add r4, r0, #0 + bl MOD83_02234610 + add r1, r0, #0 + mov r0, #0 + str r0, [sp] + ldr r0, _02234B7C ; =MOD83_02233AF4 + add r2, r4, #0 + mov r3, #1 + bl WM_StartConnectEx + cmp r0, #2 + beq _02234B74 + bl MOD83_02234958 + add sp, #4 + mov r0, #0 + pop {r3, r4, pc} +_02234B74: + mov r0, #1 + add sp, #4 + pop {r3, r4, pc} + nop +_02234B7C: .word MOD83_02233AF4 + thumb_func_end MOD83_02234B48 + + thumb_func_start MOD83_02234B80 +MOD83_02234B80: ; 0x02234B80 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + ldr r1, _02234BF0 ; =MOD83_02233DF0 + mov r0, #4 + mov r2, #0 + bl WM_SetPortCallback + cmp r0, #0 + beq _02234B9C + bl MOD83_02234958 + add sp, #8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_02234B9C: + bl MOD83_02234564 + ldrh r0, [r0, #0x16] + cmp r0, #0 + bne _02234BAA + mov r5, #1 + b _02234BAC +_02234BAA: + mov r5, #0 +_02234BAC: + bl MOD83_02234604 + add r6, r0, #0 + bl MOD83_022345EC + add r4, r0, #0 + bl MOD83_022345F8 + add r7, r0, #0 + bl MOD83_022345E0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp] + lsl r0, r5, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] + lsl r2, r4, #0x10 + ldr r0, _02234BF4 ; =MOD83_02233BD8 + add r1, r6, #0 + lsr r2, r2, #0x10 + add r3, r7, #0 + bl WM_StartMP + cmp r0, #2 + beq _02234BEA + bl MOD83_02234958 + add sp, #8 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_02234BEA: + mov r0, #1 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02234BF0: .word MOD83_02233DF0 +_02234BF4: .word MOD83_02233BD8 + thumb_func_end MOD83_02234B80 + + thumb_func_start MOD83_02234BF8 +MOD83_02234BF8: ; 0x02234BF8 + push {r3, lr} + ldr r0, _02234C10 ; =MOD83_02233E74 + bl WM_PowerOn + cmp r0, #2 + beq _02234C0C + bl MOD83_02234958 + mov r0, #0 + pop {r3, pc} +_02234C0C: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02234C10: .word MOD83_02233E74 + thumb_func_end MOD83_02234BF8 + + thumb_func_start MOD83_02234C14 +MOD83_02234C14: ; 0x02234C14 + push {r3, lr} + ldr r0, _02234C30 ; =MOD83_02233E98 + bl WM_PowerOff + cmp r0, #2 + beq _02234C2C + bl MOD83_02234958 + bl OS_Terminate + mov r0, #0 + pop {r3, pc} +_02234C2C: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02234C30: .word MOD83_02233E98 + thumb_func_end MOD83_02234C14 + + thumb_func_start MOD83_02234C34 +MOD83_02234C34: ; 0x02234C34 + push {r3, lr} + ldr r0, _02234C50 ; =MOD83_02233EBC + bl WM_Reset + cmp r0, #2 + beq _02234C4C + bl MOD83_02234958 + bl OS_Terminate + mov r0, #0 + pop {r3, pc} +_02234C4C: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02234C50: .word MOD83_02233EBC + thumb_func_end MOD83_02234C34 + + thumb_func_start MOD83_02234C54 +MOD83_02234C54: ; 0x02234C54 + push {r3, lr} + ldr r0, _02234C70 ; =MOD83_02233F00 + bl WM_End + cmp r0, #2 + beq _02234C6C + bl MOD83_02234958 + bl OS_Terminate + mov r0, #0 + pop {r3, pc} +_02234C6C: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02234C70: .word MOD83_02233F00 + thumb_func_end MOD83_02234C54 + + thumb_func_start MOD83_02234C74 +MOD83_02234C74: ; 0x02234C74 + cmp r0, #0 + bgt _02234C7C + mov r0, #1 + bx lr +_02234C7C: + cmp r0, #0xfb + bgt _02234C84 + mov r0, #0 + bx lr +_02234C84: + ldr r1, _02234C9C ; =0x00000115 + cmp r0, r1 + bge _02234C8E + mov r0, #1 + bx lr +_02234C8E: + add r1, #0x86 + cmp r0, r1 + ble _02234C98 + mov r0, #1 + bx lr +_02234C98: + mov r0, #0 + bx lr + .align 2, 0 +_02234C9C: .word 0x00000115 + thumb_func_end MOD83_02234C74 + + thumb_func_start MOD83_02234CA0 +MOD83_02234CA0: ; 0x02234CA0 + push {r4, lr} + add r4, r0, #0 + bl MOD83_02236E9C + cmp r0, #4 + bhi _02234CE0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02234CB8: ; jump table + .short _02234CC2 - _02234CB8 - 2 ; case 0 + .short _02234CC8 - _02234CB8 - 2 ; case 1 + .short _02234CCE - _02234CB8 - 2 ; case 2 + .short _02234CD4 - _02234CB8 - 2 ; case 3 + .short _02234CDA - _02234CB8 - 2 ; case 4 +_02234CC2: + mov r0, #2 + str r0, [r4] + pop {r4, pc} +_02234CC8: + mov r0, #1 + str r0, [r4] + pop {r4, pc} +_02234CCE: + mov r0, #5 + str r0, [r4] + pop {r4, pc} +_02234CD4: + mov r0, #4 + str r0, [r4] + pop {r4, pc} +_02234CDA: + mov r0, #3 + str r0, [r4] + pop {r4, pc} +_02234CE0: + mov r0, #0 + mvn r0, r0 + str r0, [r4] + pop {r4, pc} + thumb_func_end MOD83_02234CA0 + + thumb_func_start MOD83_02234CE8 +MOD83_02234CE8: ; 0x02234CE8 + push {r3, r4, r5, lr} + sub sp, #0x10 + ldr r1, _02234E3C ; =0x0000E890 + add r5, r0, #0 + add r4, r5, r1 + ldr r1, [r4] + cmp r1, #9 + bls _02234CFA + b _02234E34 +_02234CFA: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02234D06: ; jump table + .short _02234D1A - _02234D06 - 2 ; case 0 + .short _02234D3A - _02234D06 - 2 ; case 1 + .short _02234D52 - _02234D06 - 2 ; case 2 + .short _02234D62 - _02234D06 - 2 ; case 3 + .short _02234D72 - _02234D06 - 2 ; case 4 + .short _02234D8E - _02234D06 - 2 ; case 5 + .short _02234DA2 - _02234D06 - 2 ; case 6 + .short _02234DBE - _02234D06 - 2 ; case 7 + .short _02234DEA - _02234D06 - 2 ; case 8 + .short _02234E10 - _02234D06 - 2 ; case 9 +_02234D1A: + bl MOD83_02234E6C + ldr r0, [r5, #0x10] + bl FUN_02022528 + add r5, r0, #0 + bl MOD83_02237448 + add r1, r0, #0 + add r0, r5, #0 + bl FUN_0202BF90 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _02234E34 +_02234D3A: + bl OS_GetTick + mov r2, #0x78 + mov r3, #0 + bl _ull_mod + add r0, r0, #1 + str r0, [r4, #4] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _02234E34 +_02234D52: + ldr r0, [r4, #4] + sub r0, r0, #1 + str r0, [r4, #4] + bne _02234E34 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _02234E34 +_02234D62: + ldr r0, [r5, #0x10] + mov r1, #2 + bl FUN_02022840 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _02234E34 +_02234D72: + ldr r0, [r5, #0x10] + bl FUN_02022854 + cmp r0, #3 + bne _02234D82 + add sp, #0x10 + mov r0, #0xc + pop {r3, r4, r5, pc} +_02234D82: + cmp r0, #1 + bne _02234E34 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _02234E34 +_02234D8E: + mov r0, #0 + add r1, r0, #0 + add r2, sp, #0 + mov r3, #0x10 + bl CTRDG_ReadAgbFlash + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _02234E34 +_02234DA2: + bl MOD83_0223736C + cmp r0, #0 + bne _02234DB6 + mov r0, #1 + bl FUN_02016454 + add sp, #0x10 + mov r0, #0xc + pop {r3, r4, r5, pc} +_02234DB6: + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _02234E34 +_02234DBE: + bl MOD83_022373F4 + cmp r0, #9 + beq _02234E34 + bl MOD83_022373F4 + cmp r0, #0xb + bne _02234DD6 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _02234E34 +_02234DD6: + bl MOD83_022373B4 + cmp r0, #8 + bne _02234E34 + mov r0, #1 + bl FUN_02016454 + add sp, #0x10 + mov r0, #0xc + pop {r3, r4, r5, pc} +_02234DEA: + ldr r0, [r5, #0x10] + bl FUN_02022854 + cmp r0, #3 + bne _02234DFA + add sp, #0x10 + mov r0, #0xc + pop {r3, r4, r5, pc} +_02234DFA: + cmp r0, #2 + bne _02234DEA + bl MOD83_022373B4 + mov r0, #1 + bl FUN_02016444 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _02234E34 +_02234E10: + bl MOD83_022373B4 + cmp r0, #8 + bne _02234E24 + mov r0, #1 + bl FUN_02016454 + add sp, #0x10 + mov r0, #0xc + pop {r3, r4, r5, pc} +_02234E24: + cmp r0, #0 + bne _02234E34 + mov r0, #1 + bl FUN_02016454 + add sp, #0x10 + mov r0, #0xb + pop {r3, r4, r5, pc} +_02234E34: + mov r0, #0xa + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_02234E3C: .word 0x0000E890 + thumb_func_end MOD83_02234CE8 + + thumb_func_start MOD83_02234E40 +MOD83_02234E40: ; 0x02234E40 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x10] + bl FUN_02022528 + add r4, r0, #0 + bl MOD83_02237448 + add r1, r0, #0 + add r0, r4, #0 + bl FUN_0202BF90 + mov r0, #4 + bl FUN_020166A8 + ldr r0, [r5, #0x10] + bl FUN_02022720 + mov r0, #4 + bl FUN_020166B8 + pop {r3, r4, r5, pc} + thumb_func_end MOD83_02234E40 + + thumb_func_start MOD83_02234E6C +MOD83_02234E6C: ; 0x02234E6C + push {r4, r5, r6, r7, lr} + sub sp, #0xf4 + add r7, r0, #0 + ldr r0, [r7, #0x10] + bl FUN_02022528 + str r0, [sp] + add r0, sp, #8 + bl FUN_020690E4 + add r6, r0, #0 + mov r4, #0 + add r5, r7, #0 +_02234E86: + ldr r0, _02234F04 ; =0x0000E880 + mov r1, #0x3d + lsl r1, r1, #4 + ldr r0, [r7, r0] + ldr r2, [r5, r1] + mov r1, #0x96 + lsl r1, r1, #4 + add r0, r0, #4 + mul r1, r2 + add r0, r0, r1 + mov r1, #0xf3 + lsl r1, r1, #2 + ldr r2, [r5, r1] + mov r1, #0x50 + mul r1, r2 + add r0, r0, r1 + add r1, r6, #0 + bl MOD83_02237F6C + ldr r0, [sp] + add r1, r6, #0 + add r2, r4, #0 + bl FUN_0202BF7C + add r4, r4, #1 + add r5, #0xc + cmp r4, #6 + blt _02234E86 + mov r5, #0 + add r0, sp, #4 + strh r5, [r0] + add r4, r7, #0 + sub r6, r5, #1 +_02234EC8: + mov r0, #0xf3 + lsl r0, r0, #2 + ldr r2, [r4, r0] + add r0, r0, #4 + ldr r1, [r4, r0] + cmp r2, r6 + beq _02234EF6 + cmp r1, #0xe + beq _02234EF6 + ldr r0, _02234F04 ; =0x0000E880 + mov r3, #0x96 + ldr r0, [r7, r0] + lsl r3, r3, #4 + mul r3, r1 + add r0, r0, #4 + mov r1, #0x50 + mul r1, r2 + add r0, r0, r3 + add r0, r0, r1 + mov r1, #0xb + add r2, sp, #4 + bl MOD83_02237D90 +_02234EF6: + add r5, r5, #1 + add r4, #0xc + cmp r5, #6 + blt _02234EC8 + add sp, #0xf4 + pop {r4, r5, r6, r7, pc} + nop +_02234F04: .word 0x0000E880 + thumb_func_end MOD83_02234E6C + + thumb_func_start MOD83_02234F08 +MOD83_02234F08: ; 0x02234F08 + push {r4, lr} + add r4, r0, #0 + mov r0, #1 + tst r2, r0 + beq _02234F26 + mov r2, #0 + bl FUN_02002E14 + ldr r1, [r4, #0x10] + lsl r1, r1, #3 + sub r1, r1, r0 + lsr r0, r1, #0x1f + add r0, r1, r0 + asr r0, r0, #1 + pop {r4, pc} +_02234F26: + ldr r0, [r4, #0x18] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_02234F08 + + thumb_func_start MOD83_02234F2C +MOD83_02234F2C: ; 0x02234F2C + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r1, #0 + ldr r6, [r5, #0x44] + add r4, r2, #0 + cmp r6, #0 + bne _02234F3C + mov r6, #0xff +_02234F3C: + ldr r1, [r5] + ldr r2, [r1] + cmp r2, #0 + bne _02234F7A + ldr r2, [r5, #0xc] + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + str r2, [sp] + ldr r2, [r5, #0x10] + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + str r2, [sp, #4] + ldr r2, [r5, #0x14] + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + str r2, [sp, #8] + mov r2, #0xf + str r2, [sp, #0xc] + ldr r2, [r5, #0x20] + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + str r2, [sp, #0x10] + ldr r2, [r5, #0x24] + ldr r3, [r5, #8] + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r0, #0x20] + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_02019064 +_02234F7A: + mov r0, #2 + tst r0, r4 + bne _02234F8C + ldr r1, [r5, #0x30] + ldr r0, [r5] + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_02019620 +_02234F8C: + mov r0, #0 + ldr r1, [r5, #0x34] + mvn r0, r0 + cmp r1, r0 + beq _02235004 + ldr r2, _022350B4 ; =0x00000193 + mov r0, #1 + mov r1, #0x1a + mov r3, #0x4e + bl FUN_0200A86C + ldr r7, [r5, #0x40] + str r0, [sp, #0x14] + cmp r7, #0 + bne _02234FB2 + mov r0, #0x4e + bl FUN_0200AA80 + add r7, r0, #0 +_02234FB2: + ldr r1, [sp, #0x14] + ldr r2, [r5, #0x34] + add r0, r7, #0 + mov r3, #0x4e + bl FUN_0200A9C4 + str r0, [sp, #0x18] + ldr r1, [sp, #0x18] + add r0, r5, #0 + add r2, r4, #0 + bl MOD83_02234F08 + add r3, r0, #0 + ldr r0, [r5, #0x1c] + ldr r2, [sp, #0x18] + str r0, [sp] + str r6, [sp, #4] + ldr r0, [r5, #0x2c] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [r5] + ldr r1, [r5, #0x28] + bl FUN_0201BDE0 + str r0, [r5, #0x48] + ldr r0, [sp, #0x18] + bl FUN_02021A20 + ldr r0, [r5, #0x40] + cmp r0, #0 + bne _02234FF8 + add r0, r7, #0 + bl FUN_0200AB18 +_02234FF8: + ldr r0, [sp, #0x14] + bl FUN_0200A8B8 + mov r0, #0 + mvn r0, r0 + str r0, [r5, #0x34] +_02235004: + ldr r0, [r5, #0x38] + cmp r0, #0 + beq _0223504C + mov r0, #0x40 + mov r1, #0x4e + bl FUN_020219F4 + ldr r1, [r5, #0x38] + add r7, r0, #0 + mov r2, #0x40 + bl FUN_02021E8C + add r0, r5, #0 + add r1, r7, #0 + add r2, r4, #0 + bl MOD83_02234F08 + add r3, r0, #0 + ldr r0, [r5, #0x1c] + add r2, r7, #0 + str r0, [sp] + str r6, [sp, #4] + ldr r0, [r5, #0x2c] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [r5] + ldr r1, [r5, #0x28] + bl FUN_0201BDE0 + str r0, [r5, #0x48] + add r0, r7, #0 + bl FUN_02021A20 + mov r0, #0 + str r0, [r5, #0x38] +_0223504C: + ldr r1, [r5, #0x3c] + cmp r1, #0 + beq _0223507A + add r0, r5, #0 + add r2, r4, #0 + bl MOD83_02234F08 + add r3, r0, #0 + ldr r0, [r5, #0x1c] + str r0, [sp] + str r6, [sp, #4] + ldr r0, [r5, #0x2c] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [r5] + ldr r1, [r5, #0x28] + ldr r2, [r5, #0x3c] + bl FUN_0201BDE0 + str r0, [r5, #0x48] + mov r0, #0 + str r0, [r5, #0x3c] +_0223507A: + mov r0, #4 + tst r0, r4 + bne _02235086 + ldr r0, [r5] + bl FUN_020191D0 +_02235086: + mov r0, #8 + tst r0, r4 + beq _022350AE + mov r0, #0x10 + tst r0, r4 + ldr r0, [r5] + beq _022350A2 + ldr r2, _022350B8 ; =0x000003D2 + mov r1, #0 + mov r3, #0xd + bl FUN_0200D0BC + add sp, #0x1c + pop {r4, r5, r6, r7, pc} +_022350A2: + mov r2, #0x3f + mov r1, #0 + lsl r2, r2, #4 + mov r3, #0xe + bl FUN_0200CCA4 +_022350AE: + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_022350B4: .word 0x00000193 +_022350B8: .word 0x000003D2 + thumb_func_end MOD83_02234F2C + + thumb_func_start MOD83_022350BC +MOD83_022350BC: ; 0x022350BC + push {r4, lr} + sub sp, #0x10 + ldr r4, _022350E8 ; =0x0223A50C + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_0201D040 + mov r0, #0x14 + mov r1, #0x4e + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_022350E8: .word 0x0223A50C + thumb_func_end MOD83_022350BC + + thumb_func_start MOD83_022350EC +MOD83_022350EC: ; 0x022350EC + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x7e + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x4e + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + add r1, r6, #0 + mov r0, #0x50 + add r1, #0x2c + mov r2, #0x4e + bl FUN_02008C9C + str r0, [r6, #0x28] + add r0, r6, #0 + mov r2, #1 + add r0, #0x2c + mov r1, #0 + lsl r2, r2, #0x14 + bl FUN_02008D24 + mov r7, #0x55 + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_02235132: + mov r0, #3 + add r1, r4, #0 + mov r2, #0x4e + bl FUN_02008DEC + str r0, [r5, r7] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _02235132 + mov r0, #0 + str r0, [sp] + mov r3, #1 + str r3, [sp, #4] + mov r0, #0x4e + str r0, [sp, #8] + mov r0, #0x55 + lsl r0, r0, #2 + ldr r0, [r6, r0] + mov r1, #0x74 + mov r2, #0x1a + bl FUN_02008F34 + mov r1, #0x5b + lsl r1, r1, #2 + str r0, [r6, r1] + mov r3, #0 + str r3, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #4 + str r0, [sp, #8] + mov r0, #0x4e + sub r1, #0x14 + str r0, [sp, #0xc] + ldr r0, [r6, r1] + mov r1, #0x74 + mov r2, #0x17 + bl FUN_02008FEC + mov r1, #0x17 + lsl r1, r1, #4 + str r0, [r6, r1] + mov r0, #0 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #0x4e + sub r1, #0x14 + str r0, [sp, #8] + ldr r0, [r6, r1] + mov r1, #0x74 + mov r2, #0x19 + mov r3, #1 + bl FUN_020090AC + mov r1, #0x5d + lsl r1, r1, #2 + str r0, [r6, r1] + mov r0, #0 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + mov r0, #0x4e + sub r1, #0x14 + str r0, [sp, #8] + ldr r0, [r6, r1] + mov r1, #0x74 + mov r2, #0x18 + mov r3, #1 + bl FUN_020090AC + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r6, r1] + sub r1, #0xc + ldr r0, [r6, r1] + bl FUN_02009A50 + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009CF0 + bl FUN_0206B888 + add r1, r0, #0 + mov r0, #0 + mov r2, #1 + str r0, [sp] + mov r0, #0x4e + add r3, r2, #0 + str r0, [sp, #4] + mov r0, #0x13 + add r3, #0xff + bl FUN_02006930 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD83_022350EC + + thumb_func_start MOD83_022351F8 +MOD83_022351F8: ; 0x022351F8 + push {lr} + sub sp, #0x2c + mov r1, #0 + str r1, [sp] + sub r2, r1, #1 + str r2, [sp, #4] + str r2, [sp, #8] + str r1, [sp, #0xc] + mov r3, #0x55 + str r1, [sp, #0x10] + lsl r3, r3, #2 + ldr r2, [r0, r3] + str r2, [sp, #0x14] + add r2, r3, #4 + ldr r2, [r0, r2] + str r2, [sp, #0x18] + add r2, r3, #0 + add r2, #8 + ldr r2, [r0, r2] + str r2, [sp, #0x1c] + add r2, r3, #0 + add r2, #0xc + ldr r2, [r0, r2] + add r3, #0x30 + str r2, [sp, #0x20] + str r1, [sp, #0x24] + add r0, r0, r3 + add r2, r1, #0 + add r3, r1, #0 + str r1, [sp, #0x28] + bl FUN_02008AA4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add sp, #0x2c + pop {pc} + thumb_func_end MOD83_022351F8 + + thumb_func_start MOD83_02235244 +MOD83_02235244: ; 0x02235244 + ldr r2, [r1, #0x28] + str r2, [r0] + mov r2, #0x61 + lsl r2, r2, #2 + add r1, r1, r2 + str r1, [r0, #4] + mov r2, #0 + mov r1, #1 + str r2, [r0, #0x10] + lsl r1, r1, #0xc + str r1, [r0, #0x14] + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + strh r2, [r0, #0x20] + mov r1, #0x14 + str r1, [r0, #0x24] + str r3, [r0, #0x28] + mov r1, #0x4e + str r1, [r0, #0x2c] + bx lr + thumb_func_end MOD83_02235244 + + thumb_func_start MOD83_0223526C +MOD83_0223526C: ; 0x0223526C + ldr r3, _02235288 ; =0x0000E880 + ldr r0, [r0, r3] + add r3, r0, #4 + mov r0, #0x96 + lsl r0, r0, #4 + mul r0, r1 + add r1, r3, r0 + mov r0, #0x50 + mul r0, r2 + add r0, r1, r0 + ldr r3, _0223528C ; =MOD83_02237A10 + mov r1, #0xb + mov r2, #0 + bx r3 + .align 2, 0 +_02235288: .word 0x0000E880 +_0223528C: .word MOD83_02237A10 + thumb_func_end MOD83_0223526C + + thumb_func_start MOD83_02235290 +MOD83_02235290: ; 0x02235290 + ldr r3, _022352AC ; =0x0000E880 + ldr r0, [r0, r3] + add r3, r0, #4 + mov r0, #0x96 + lsl r0, r0, #4 + mul r0, r1 + add r1, r3, r0 + mov r0, #0x50 + mul r0, r2 + add r0, r1, r0 + ldr r3, _022352B0 ; =MOD83_02237A10 + mov r1, #0x2d + mov r2, #0 + bx r3 + .align 2, 0 +_022352AC: .word 0x0000E880 +_022352B0: .word MOD83_02237A10 + thumb_func_end MOD83_02235290 + + thumb_func_start MOD83_022352B4 +MOD83_022352B4: ; 0x022352B4 + ldr r3, _022352D0 ; =0x0000E880 + ldr r0, [r0, r3] + add r3, r0, #4 + mov r0, #0x96 + lsl r0, r0, #4 + mul r0, r1 + add r1, r3, r0 + mov r0, #0x50 + mul r0, r2 + add r0, r1, r0 + mov r1, #0 + ldr r3, _022352D4 ; =MOD83_02237A10 + add r2, r1, #0 + bx r3 + .align 2, 0 +_022352D0: .word 0x0000E880 +_022352D4: .word MOD83_02237A10 + thumb_func_end MOD83_022352B4 + + thumb_func_start MOD83_022352D8 +MOD83_022352D8: ; 0x022352D8 + push {r4, r5} + ldr r5, [sp, #8] + lsr r4, r5, #0x1f + add r4, r5, r4 + asr r4, r4, #1 + sub r5, r2, r4 + strb r5, [r0] + lsr r5, r3, #0x1f + add r5, r3, r5 + asr r5, r5, #1 + sub r3, r1, r5 + strb r3, [r0, #2] + add r2, r2, r4 + strb r2, [r0, #1] + add r1, r1, r5 + strb r1, [r0, #3] + pop {r4, r5} + bx lr + thumb_func_end MOD83_022352D8 + + thumb_func_start MOD83_022352FC +MOD83_022352FC: ; 0x022352FC + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + mov r1, #1 + add r5, r0, #0 + add r0, r3, #0 + lsl r1, r1, #0xc + add r7, r2, #0 + bl FUN_020169D8 + add r4, r0, #0 + beq _02235330 + add r1, r5, #0 + add r2, r6, #0 + bl LoadFromNARC + add r0, r4, #0 + add r1, r7, #0 + bl FUN_020B0030 + cmp r0, #0 + bne _02235330 + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_02235330: + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD83_022352FC + + thumb_func_start MOD83_02235334 +MOD83_02235334: ; 0x02235334 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r5, r1, #0 + add r4, r2, #0 + add r0, r3, #0 + add r1, r6, #0 + bl FUN_02006774 + add r0, r4, #0 + add r1, r5, #0 + bl FUN_020B0030 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD83_02235334 + + thumb_func_start MOD83_02235350 +MOD83_02235350: ; 0x02235350 + push {r4, lr} + add r3, r1, #0 + mov r4, #0 + cmp r0, #0xc9 + beq _02235362 + ldr r1, _022353BC ; =0x00000182 + cmp r0, r1 + beq _0223538C + b _022353B6 +_02235362: + mov r4, #3 + lsl r0, r4, #8 + add r2, r3, #0 + and r0, r3 + lsr r1, r0, #6 + lsl r0, r4, #0x18 + and r2, r4 + and r0, r3 + lsl r4, r4, #0x10 + and r3, r4 + lsr r0, r0, #0x12 + lsr r3, r3, #0xc + orr r0, r3 + orr r0, r1 + orr r0, r2 + mov r1, #0x1c + bl _u32_div_f + lsl r0, r1, #0x18 + lsr r4, r0, #0x18 + b _022353B6 +_0223538C: + cmp r2, #5 + bhi _022353A8 + add r0, r2, r2 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223539C: ; jump table + .short _022353A8 - _0223539C - 2 ; case 0 + .short _022353A8 - _0223539C - 2 ; case 1 + .short _022353A8 - _0223539C - 2 ; case 2 + .short _022353B4 - _0223539C - 2 ; case 3 + .short _022353AC - _0223539C - 2 ; case 4 + .short _022353B0 - _0223539C - 2 ; case 5 +_022353A8: + mov r4, #0 + b _022353B6 +_022353AC: + mov r4, #1 + b _022353B6 +_022353B0: + mov r4, #2 + b _022353B6 +_022353B4: + mov r4, #3 +_022353B6: + add r0, r4, #0 + pop {r4, pc} + nop +_022353BC: .word 0x00000182 + thumb_func_end MOD83_02235350 + + thumb_func_start MOD83_022353C0 +MOD83_022353C0: ; 0x022353C0 + push {r3, r4, r5, r6, r7, lr} + add r6, r2, #0 + add r7, r3, #0 + add r5, r1, #0 + bl MOD83_02237EBC + add r1, r6, #0 + add r2, r7, #0 + add r4, r0, #0 + bl MOD83_02235350 + add r7, r0, #0 + add r0, r4, #0 + add r1, r5, #0 + add r2, r7, #0 + bl FUN_0206B6D4 + add r1, r0, #0 + mov r0, #0x13 + add r2, sp, #0 + mov r3, #0x4e + bl MOD83_022352FC + add r6, r0, #0 + ldr r0, [sp] + mov r1, #2 + ldr r0, [r0, #0x14] + lsl r1, r1, #8 + bl DC_FlushRange + ldr r1, [sp, #0x18] + ldr r0, [sp] + lsl r1, r1, #4 + add r1, #0x64 + mov r2, #2 + ldr r0, [r0, #0x14] + lsl r1, r1, #5 + lsl r2, r2, #8 + bl GX_LoadOBJ + add r0, r4, #0 + add r1, r7, #0 + add r2, r5, #0 + bl FUN_0206B7BC + add r1, r0, #0 + ldr r0, [sp, #0x1c] + add r1, #8 + bl FUN_02020248 + add r0, r6, #0 + bl FUN_02016A18 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD83_022353C0 + + thumb_func_start MOD83_0223542C +MOD83_0223542C: ; 0x0223542C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r1, #0 + ldr r1, _022354A8 ; =0x0223BB14 + str r2, [sp] + ldr r2, [r1] + mov r1, #0x83 + add r5, r3, #0 + lsl r1, r1, #2 + mul r1, r5 + add r4, r2, r1 + ldr r1, [sp, #0x20] + add r6, r0, #0 + cmp r1, #0 + beq _022354A0 + bl MOD83_02234C74 + cmp r0, #0 + bne _0223545C + add r0, r6, #0 + bl MOD83_02237EBC + add r6, r0, #0 + b _0223545E +_0223545C: + mov r6, #0 +_0223545E: + ldr r2, [sp] + add r0, r6, #0 + add r1, r7, #0 + bl FUN_0206B6D4 + ldr r2, [sp, #0x24] + ldr r3, [sp, #0x28] + add r1, sp, #4 + bl MOD83_02235334 + ldr r0, [sp, #4] + add r1, r4, #0 + mov r2, #2 + ldr r0, [r0, #0x14] + add r1, #0xc + lsl r2, r2, #8 + bl MIi_CpuCopyFast + lsl r0, r5, #4 + add r0, #0x64 + lsl r0, r0, #5 + str r0, [r4] + ldr r0, [sp, #0x20] + ldr r1, [sp] + str r0, [r4, #8] + add r0, r6, #0 + add r2, r7, #0 + bl FUN_0206B7BC + add r0, #8 + add sp, #8 + str r0, [r4, #4] + pop {r3, r4, r5, r6, r7, pc} +_022354A0: + mov r0, #0 + str r0, [r4, #8] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022354A8: .word 0x0223BB14 + thumb_func_end MOD83_0223542C + + thumb_func_start MOD83_022354AC +MOD83_022354AC: ; 0x022354AC + push {r3, r4, r5, r6, r7, lr} + ldr r0, _022354EC ; =0x0223BB14 + mov r6, #2 + lsl r6, r6, #8 + add r7, r6, #0 + ldr r5, [r0] + mov r4, #0 + add r7, #0xc +_022354BC: + ldr r0, [r5, #8] + cmp r0, #0 + beq _022354E0 + add r0, r5, #0 + add r0, #0xc + add r1, r6, #0 + bl DC_FlushRange + add r0, r5, #0 + ldr r1, [r5] + add r0, #0xc + add r2, r6, #0 + bl GX_LoadOBJ + ldr r0, [r5, #8] + ldr r1, [r5, #4] + bl FUN_02020248 +_022354E0: + add r4, r4, #1 + add r5, r5, r7 + cmp r4, #0x1e + blt _022354BC + pop {r3, r4, r5, r6, r7, pc} + nop +_022354EC: .word 0x0223BB14 + thumb_func_end MOD83_022354AC + + thumb_func_start MOD83_022354F0 +MOD83_022354F0: ; 0x022354F0 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r0, #0 + mov r0, #0x13 + mov r1, #0x4e + bl FUN_02006670 + mov r1, #1 + str r0, [sp, #0xc] + mov r0, #0x4e + lsl r1, r1, #0xc + bl FUN_020169D8 + mov r6, #0 + str r0, [sp, #0x10] + add r7, r6, #0 + add r4, r5, #0 +_02235512: + ldr r0, _02235634 ; =0x0000E880 + ldr r1, _02235638 ; =0x0000E884 + ldr r0, [r5, r0] + ldr r2, [r5, r1] + mov r1, #0x96 + lsl r1, r1, #4 + mul r1, r2 + add r0, r0, #4 + add r0, r0, r1 + add r0, r0, r7 + mov r1, #5 + mov r2, #0 + bl MOD83_02237A10 + cmp r0, #0 + beq _022355D2 + ldr r1, _02235638 ; =0x0000E884 + add r0, r5, #0 + ldr r1, [r5, r1] + add r2, r6, #0 + bl MOD83_0223526C + ldr r1, _02235638 ; =0x0000E884 + str r0, [sp, #0x1c] + ldr r1, [r5, r1] + add r0, r5, #0 + add r2, r6, #0 + bl MOD83_02235290 + ldr r1, _02235638 ; =0x0000E884 + str r0, [sp, #0x18] + ldr r1, [r5, r1] + add r0, r5, #0 + add r2, r6, #0 + bl MOD83_022352B4 + str r0, [sp, #0x20] + ldr r0, [sp, #0x1c] + bl MOD83_02237EBC + ldr r2, _0223563C ; =0x021C4918 + ldr r1, [sp, #0x20] + ldrb r2, [r2, #6] + bl MOD83_02235350 + str r0, [sp, #0x14] + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + ldr r1, [sp, #0x18] + str r0, [sp] + ldr r0, [sp, #0x10] + ldr r2, [sp, #0x14] + str r0, [sp, #4] + ldr r0, [sp, #0xc] + add r3, r6, #0 + str r0, [sp, #8] + ldr r0, [sp, #0x1c] + bl MOD83_0223542C + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + ldr r0, _02235634 ; =0x0000E880 + ldr r1, _02235638 ; =0x0000E884 + ldr r0, [r5, r0] + ldr r2, [r5, r1] + mov r1, #0x96 + lsl r1, r1, #4 + mul r1, r2 + add r0, r0, #4 + add r0, r0, r1 + add r0, r0, r7 + mov r1, #0xc + mov r2, #0 + bl MOD83_02237A10 + cmp r0, #0 + beq _022355C4 + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 + b _02235602 +_022355C4: + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + b _02235602 +_022355D2: + mov r0, #0 + str r0, [sp] + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x18] + str r0, [sp, #4] + ldr r0, [sp, #0xc] + ldr r2, [sp, #0x14] + str r0, [sp, #8] + ldr r0, [sp, #0x1c] + add r3, r6, #0 + bl MOD83_0223542C + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 +_02235602: + add r6, r6, #1 + add r7, #0x50 + add r4, #0xc + cmp r6, #0x1e + blt _02235512 + ldr r0, [sp, #0x10] + bl FUN_02016A18 + ldr r0, [sp, #0xc] + bl FUN_020066F4 + ldr r1, _02235640 ; =MOD83_022354AC + ldr r0, _02235644 ; =0x00012604 + str r1, [r5, r0] + ldr r1, _02235638 ; =0x0000E884 + add r0, r5, #0 + ldr r1, [r5, r1] + bl MOD83_02235B6C + add r0, r5, #0 + bl MOD83_02235B20 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + nop +_02235634: .word 0x0000E880 +_02235638: .word 0x0000E884 +_0223563C: .word 0x021C4918 +_02235640: .word MOD83_022354AC +_02235644: .word 0x00012604 + thumb_func_end MOD83_022354F0 + + thumb_func_start MOD83_02235648 +MOD83_02235648: ; 0x02235648 + push {r4, r5, r6, r7, lr} + sub sp, #0x44 + mov r2, #0x61 + add r5, r0, #0 + lsl r2, r2, #2 + add r0, sp, #0x14 + add r1, r5, #0 + add r2, r5, r2 + mov r3, #1 + bl MOD83_02235244 + mov r0, #0x28 + str r0, [sp, #8] + mov r0, #0x31 + mov r4, #0 + lsl r0, r0, #4 + str r4, [sp, #0xc] + add r7, r5, r0 +_0223566C: + mov r0, #0 + str r0, [sp, #0x10] + ldr r0, [sp, #8] + mov r6, #0x1c + lsl r0, r0, #0xc + str r0, [sp, #4] +_02235678: + mov r0, #0x1c + str r0, [sp] + ldr r2, [sp, #8] + add r0, r7, #0 + add r1, r6, #0 + mov r3, #0x1c + bl MOD83_022352D8 + lsl r0, r6, #0xc + str r0, [sp, #0x1c] + ldr r0, [sp, #4] + str r0, [sp, #0x20] + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0 + bne _022356A6 + add r0, sp, #0x14 + bl FUN_0201FE94 + mov r1, #0x6a + lsl r1, r1, #2 + str r0, [r5, r1] +_022356A6: + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x6a + lsl r0, r0, #2 + add r1, r4, #0 + ldr r0, [r5, r0] + add r1, #0xa + bl FUN_02020130 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02020238 + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0x6a + lsl r0, r0, #2 + add r1, r4, #0 + ldr r0, [r5, r0] + add r1, #0x64 + bl FUN_02020310 + mov r0, #6 + ldr r1, [sp, #0x1c] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [sp, #0x1c] + mov r0, #3 + ldr r1, [sp, #0x20] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp, #0x20] + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0 + bne _02235710 + add r0, sp, #0x14 + bl FUN_0201FE94 + mov r1, #0x6b + lsl r1, r1, #2 + str r0, [r5, r1] +_02235710: + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0x28 + bl FUN_02020130 + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_02020238 + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r4, #0 + bl FUN_02020310 + add r4, r4, #1 + add r7, r7, #4 + add r5, #0xc + cmp r4, #0x1e + beq _02235774 + ldr r0, [sp, #0x10] + add r6, #0x28 + add r0, r0, #1 + str r0, [sp, #0x10] + cmp r0, #6 + blt _02235678 + ldr r0, [sp, #8] + add r0, #0x18 + str r0, [sp, #8] + ldr r0, [sp, #0xc] + add r0, r0, #1 + str r0, [sp, #0xc] + cmp r0, #5 + bge _02235774 + b _0223566C +_02235774: + add sp, #0x44 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD83_02235648 + + thumb_func_start MOD83_02235778 +MOD83_02235778: ; 0x02235778 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + add r4, r2, #0 + mov r2, #0x61 + add r6, r0, #0 + lsl r2, r2, #2 + add r5, r1, #0 + add r7, r3, #0 + add r0, sp, #0 + add r1, r6, #0 + add r2, r6, r2 + mov r3, #1 + bl MOD83_02235244 + lsl r0, r5, #0xc + str r0, [sp, #8] + lsl r0, r4, #0xc + str r0, [sp, #0xc] + mov r0, #0xa + str r0, [sp, #0x24] + add r0, sp, #0 + bl FUN_0201FE94 + add r4, r0, #0 + mov r1, #1 + bl FUN_020200BC + add r0, r4, #0 + add r1, r7, #0 + bl FUN_02020130 + add r0, r4, #0 + mov r1, #1 + bl FUN_02020238 + ldr r1, [sp, #0x48] + add r0, r4, #0 + bl FUN_020200A0 + add r0, r4, #0 + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD83_02235778 + + thumb_func_start MOD83_022357CC +MOD83_022357CC: ; 0x022357CC + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r0, #0x20 + str r0, [sp] + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r6, r0 + mov r1, #0xe4 + mov r2, #0xb0 + mov r3, #0x32 + bl MOD83_022352D8 + mov r0, #1 + str r0, [sp] + add r0, r6, #0 + mov r1, #0xe4 + mov r2, #0xb0 + mov r3, #6 + bl MOD83_02235778 + mov r1, #0xe6 + lsl r1, r1, #2 + str r0, [r6, r1] + sub r1, #8 + add r0, r6, r1 + mov r1, #0xb0 + mov r3, #0x20 + add r2, r1, #0 + str r3, [sp] + bl MOD83_022352D8 + mov r0, #1 + mov r1, #0xb0 + str r0, [sp] + add r0, r6, #0 + add r2, r1, #0 + mov r3, #3 + bl MOD83_02235778 + mov r1, #0xea + lsl r1, r1, #2 + str r0, [r6, r1] + sub r1, #0x1c + mov r3, #0x20 + add r0, r6, r1 + mov r1, #0x18 + mov r2, #0xb0 + str r3, [sp] + bl MOD83_022352D8 + mov r0, #1 + str r0, [sp] + add r0, r6, #0 + mov r1, #0x18 + mov r2, #0xb0 + mov r3, #0 + bl MOD83_02235778 + mov r1, #0xee + lsl r1, r1, #2 + str r0, [r6, r1] + mov r7, #0 + mov r0, #0xff + sub r1, #0x24 + strb r0, [r6, r1] + add r4, r7, #0 + add r5, r6, #0 +_02235852: + mov r0, #0 + str r0, [sp] + add r0, r6, #0 + add r1, r4, #0 + mov r2, #0x40 + mov r3, #9 + bl MOD83_02235778 + mov r1, #0xf2 + lsl r1, r1, #2 + str r0, [r5, r1] + mov r1, #0 + mov r0, #0xf3 + mvn r1, r1 + lsl r0, r0, #2 + str r1, [r5, r0] + mov r1, #0xe + add r0, r0, #4 + str r1, [r5, r0] + add r7, r7, #1 + add r4, #0x24 + add r5, #0xc + cmp r7, #6 + blt _02235852 + mov r0, #0x41 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r6, r0] + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD83_022357CC + + thumb_func_start MOD83_0223588C +MOD83_0223588C: ; 0x0223588C + push {r3, lr} + ldr r3, _022358C0 ; =0x0000E880 + ldr r2, [r0, r3] + add r3, r3, #4 + ldr r3, [r0, r3] + mov r0, #0x96 + lsl r0, r0, #4 + add r2, r2, #4 + mul r0, r3 + add r2, r2, r0 + mov r0, #0x50 + mul r0, r1 + add r0, r2, r0 + mov r1, #0x41 + mov r2, #0 + bl MOD83_02237A10 + mov r1, #0x67 + lsl r1, r1, #2 + cmp r0, r1 + bne _022358BA + mov r0, #1 + pop {r3, pc} +_022358BA: + mov r0, #0 + pop {r3, pc} + nop +_022358C0: .word 0x0000E880 + thumb_func_end MOD83_0223588C + + thumb_func_start MOD83_022358C4 +MOD83_022358C4: ; 0x022358C4 + push {r3, r4, r5, r6, r7, lr} + ldr r3, _02235910 ; =0x0000E880 + mov r5, #0 + ldr r2, [r0, r3] + add r3, r3, #4 + ldr r3, [r0, r3] + mov r0, #0x96 + lsl r0, r0, #4 + add r2, r2, #4 + mul r0, r3 + add r4, r2, r0 + mov r0, #0x50 + add r6, r1, #0 + mul r6, r0 + add r7, r5, #0 +_022358E2: + add r1, r5, #0 + add r0, r4, r6 + add r1, #0xd + add r2, r7, #0 + bl MOD83_02237A10 + ldr r3, _02235914 ; =0x0223B2B8 + add r2, r0, #0 + mov r1, #0 +_022358F4: + ldr r0, [r3] + cmp r2, r0 + bne _022358FE + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022358FE: + add r1, r1, #1 + add r3, r3, #4 + cmp r1, #8 + blo _022358F4 + add r5, r5, #1 + cmp r5, #4 + blt _022358E2 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02235910: .word 0x0000E880 +_02235914: .word 0x0223B2B8 + thumb_func_end MOD83_022358C4 + + thumb_func_start MOD83_02235918 +MOD83_02235918: ; 0x02235918 + push {r3, lr} + ldr r3, _0223595C ; =0x0000E880 + ldr r2, [r0, r3] + add r3, r3, #4 + ldr r3, [r0, r3] + mov r0, #0x96 + lsl r0, r0, #4 + add r2, r2, #4 + mul r0, r3 + add r2, r2, r0 + mov r0, #0x50 + mul r0, r1 + add r0, r2, r0 + mov r1, #0xc + mov r2, #0 + bl MOD83_02237A10 + ldr r1, _02235960 ; =0x0223B2C8 + ldrh r1, [r1, #0x30] + cmp r1, #0 + beq _02235956 + ldr r2, _02235964 ; =0x0223B2F8 +_02235944: + ldrh r1, [r2] + cmp r0, r1 + bne _0223594E + mov r0, #1 + pop {r3, pc} +_0223594E: + add r2, r2, #2 + ldrh r1, [r2] + cmp r1, #0 + bne _02235944 +_02235956: + mov r0, #0 + pop {r3, pc} + nop +_0223595C: .word 0x0000E880 +_02235960: .word 0x0223B2C8 +_02235964: .word 0x0223B2F8 + thumb_func_end MOD83_02235918 + + thumb_func_start MOD83_02235968 +MOD83_02235968: ; 0x02235968 + push {r3, lr} + ldr r3, _02235990 ; =0x0000E880 + ldr r2, [r0, r3] + add r3, r3, #4 + ldr r3, [r0, r3] + mov r0, #0x96 + lsl r0, r0, #4 + add r2, r2, #4 + mul r0, r3 + add r2, r2, r0 + mov r0, #0x50 + mul r0, r1 + add r0, r2, r0 + mov r1, #0xb + mov r2, #0 + bl MOD83_02237A10 + bl MOD83_02234C74 + pop {r3, pc} + .align 2, 0 +_02235990: .word 0x0000E880 + thumb_func_end MOD83_02235968 + + thumb_func_start MOD83_02235994 +MOD83_02235994: ; 0x02235994 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r0, #0 + mov r0, #0x6a + lsl r0, r0, #2 + add r0, r4, r0 + str r0, [sp] + add r6, r1, #0 + mov r0, #0xc + mul r0, r6 + ldr r1, [sp] + str r0, [sp, #4] + ldr r0, [r1, r0] + cmp r0, #0 + beq _022359C0 + bl FUN_02020128 + cmp r0, #0 + bne _022359C0 + add sp, #0x14 + mov r0, #3 + pop {r4, r5, r6, r7, pc} +_022359C0: + mov r5, #0 + mov r7, #0x3d + mvn r5, r5 + mov r2, #0 + add r3, r4, #0 + lsl r7, r7, #4 + b _022359E8 +_022359CE: + ldr r0, _02235B1C ; =0x0000E884 + ldr r1, [r4, r0] + ldr r0, [r3, r7] + cmp r1, r0 + bne _022359E4 + mov r0, #0xf3 + lsl r0, r0, #2 + ldr r0, [r3, r0] + cmp r6, r0 + bne _022359E4 + add r5, r2, #0 +_022359E4: + add r3, #0xc + add r2, r2, #1 +_022359E8: + mov r0, #0 + mvn r0, r0 + cmp r5, r0 + bne _022359F4 + cmp r2, #6 + blt _022359CE +_022359F4: + add r0, r4, #0 + add r1, r6, #0 + bl MOD83_0223588C + cmp r0, #1 + bne _02235A06 + add sp, #0x14 + mov r0, #4 + pop {r4, r5, r6, r7, pc} +_02235A06: + add r0, r4, #0 + add r1, r6, #0 + bl MOD83_022358C4 + cmp r0, #1 + bne _02235A18 + add sp, #0x14 + mov r0, #5 + pop {r4, r5, r6, r7, pc} +_02235A18: + add r0, r4, #0 + add r1, r6, #0 + bl MOD83_02235918 + cmp r0, #1 + bne _02235A2A + add sp, #0x14 + mov r0, #6 + pop {r4, r5, r6, r7, pc} +_02235A2A: + add r0, r4, #0 + add r1, r6, #0 + bl MOD83_02235968 + cmp r0, #1 + bne _02235A3C + add sp, #0x14 + mov r0, #7 + pop {r4, r5, r6, r7, pc} +_02235A3C: + mov r0, #0 + mvn r0, r0 + cmp r5, r0 + bne _02235AE4 + mov r0, #0x41 + lsl r0, r0, #4 + ldr r0, [r4, r0] + cmp r0, #6 + bne _02235A54 + add sp, #0x14 + mov r0, #0 + pop {r4, r5, r6, r7, pc} +_02235A54: + mov r5, #0 + mov r0, #0xf3 + add r3, r4, #0 + lsl r0, r0, #2 + sub r1, r5, #1 +_02235A5E: + ldr r2, [r3, r0] + cmp r2, r1 + bne _02235ADA + ldr r1, [sp] + ldr r0, [sp, #4] + ldr r0, [r1, r0] + bl FUN_0202011C + add r1, r0, #0 + mov r0, #0xc + add r7, r5, #0 + mul r7, r0 + mov r0, #0xf2 + lsl r0, r0, #2 + add r5, r4, r0 + ldr r0, [r5, r7] + bl FUN_02020044 + ldr r0, [r5, r7] + bl FUN_0202011C + add r3, r0, #0 + add r2, sp, #8 + ldmia r3!, {r0, r1} + mov ip, r2 + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r1, #2 + str r0, [r2] + ldr r0, [sp, #8] + lsl r1, r1, #0xe + sub r0, r0, r1 + str r0, [sp, #8] + ldr r0, [sp, #0xc] + lsr r1, r1, #1 + sub r0, r0, r1 + str r0, [sp, #0xc] + ldr r0, [r5, r7] + mov r1, ip + bl FUN_02020044 + ldr r0, [r5, r7] + mov r1, #1 + bl FUN_020200A0 + mov r1, #0xf3 + add r3, r4, r7 + lsl r1, r1, #2 + ldr r0, _02235B1C ; =0x0000E884 + str r6, [r3, r1] + ldr r2, [r4, r0] + add r0, r1, #4 + str r2, [r3, r0] + add r0, r1, #0 + add r0, #0x44 + ldr r0, [r4, r0] + add r1, #0x44 + add r0, r0, #1 + str r0, [r4, r1] + add sp, #0x14 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_02235ADA: + add r5, r5, #1 + add r3, #0xc + cmp r5, #6 + blt _02235A5E + b _02235B16 +_02235AE4: + mov r0, #0xc + add r6, r5, #0 + mul r6, r0 + mov r0, #0xf2 + add r1, r4, r6 + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r1, #0 + bl FUN_020200A0 + mov r2, #0 + mov r1, #0xf3 + mvn r2, r2 + add r0, r4, r6 + lsl r1, r1, #2 + str r2, [r0, r1] + add r0, r1, #0 + add r0, #0x44 + ldr r0, [r4, r0] + add r1, #0x44 + sub r0, r0, #1 + str r0, [r4, r1] + add sp, #0x14 + mov r0, #2 + pop {r4, r5, r6, r7, pc} +_02235B16: + mov r0, #0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02235B1C: .word 0x0000E884 + thumb_func_end MOD83_02235994 + + thumb_func_start MOD83_02235B20 +MOD83_02235B20: ; 0x02235B20 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r4, #0 + add r5, r6, #0 + sub r7, r4, #1 +_02235B2A: + mov r0, #0xf3 + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, r7 + beq _02235B50 + ldr r0, _02235B68 ; =0x0000E884 + ldr r1, [r6, r0] + mov r0, #0x3d + lsl r0, r0, #4 + ldr r0, [r5, r0] + cmp r1, r0 + bne _02235B50 + mov r0, #0xf2 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #1 + bl FUN_020200A0 + b _02235B5C +_02235B50: + mov r0, #0xf2 + lsl r0, r0, #2 + ldr r0, [r5, r0] + mov r1, #0 + bl FUN_020200A0 +_02235B5C: + add r4, r4, #1 + add r5, #0xc + cmp r4, #6 + blt _02235B2A + pop {r3, r4, r5, r6, r7, pc} + nop +_02235B68: .word 0x0000E884 + thumb_func_end MOD83_02235B20 + + thumb_func_start MOD83_02235B6C +MOD83_02235B6C: ; 0x02235B6C + push {r3, r4, r5, lr} + sub sp, #0x60 + add r5, r0, #0 + mov r0, #0 + add r4, r1, #0 + add r3, sp, #0x14 + add r1, r0, #0 + mov r2, #4 +_02235B7C: + stmia r3!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _02235B7C + stmia r3!, {r0, r1} + str r0, [r3] + ldr r0, _02235BE4 ; =0x00000478 + add r0, r5, r0 + str r0, [sp, #0x14] + mov r0, #6 + str r0, [sp, #0x1c] + mov r0, #0x15 + str r0, [sp, #0x20] + mov r0, #0xd + str r0, [sp, #0x24] + mov r0, #2 + str r0, [sp, #0x28] + sub r0, r0, #3 + str r0, [sp, #0x48] + mov r0, #0 + str r0, [sp, #0x2c] + str r0, [sp, #0x30] + mov r0, #1 + str r0, [sp, #0x38] + str r0, [sp, #0x3c] + ldr r0, _02235BE8 ; =0x00010200 + str r0, [sp, #0x40] + mov r0, #0xa0 + str r0, [sp, #0x34] + bl MOD83_02236EA8 + add r3, r0, #0 + ldr r0, _02235BEC ; =0x0000E880 + mov r2, #9 + ldr r1, [r5, r0] + ldr r0, _02235BF0 ; =0x00008344 + add r1, r1, r0 + lsl r0, r4, #3 + add r0, r4, r0 + add r0, r1, r0 + add r1, sp, #0 + bl FUN_02015D88 + add r0, sp, #0 + str r0, [sp, #0x4c] + add r0, r5, #0 + add r1, sp, #0x14 + mov r2, #1 + bl MOD83_02234F2C + add sp, #0x60 + pop {r3, r4, r5, pc} + .align 2, 0 +_02235BE4: .word 0x00000478 +_02235BE8: .word 0x00010200 +_02235BEC: .word 0x0000E880 +_02235BF0: .word 0x00008344 + thumb_func_end MOD83_02235B6C + + thumb_func_start MOD83_02235BF4 +MOD83_02235BF4: ; 0x02235BF4 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, [r5, #0x20] + add r6, r1, #0 + mov r1, #2 + bl FUN_0201886C + add r4, r0, #0 + cmp r6, #0 + beq _02235C18 + add r0, r6, #0 + mov r1, #8 + mov r2, #0 + bl MOD83_02237A10 + lsl r0, r0, #0x18 + lsr r1, r0, #0x18 + b _02235C1A +_02235C18: + mov r1, #0 +_02235C1A: + mov r2, #0 + mov r0, #1 +_02235C1E: + add r3, r1, #0 + tst r3, r0 + beq _02235C2A + add r6, r2, #0 + add r6, #0x80 + b _02235C2E +_02235C2A: + add r6, r2, #0 + add r6, #0x60 +_02235C2E: + add r3, r4, #0 + add r3, #0xd6 + lsl r1, r1, #0x17 + add r2, r2, #1 + strh r6, [r3] + lsr r1, r1, #0x18 + add r4, r4, #2 + cmp r2, #4 + blt _02235C1E + ldr r0, [r5, #0x20] + mov r1, #2 + bl FUN_02017CD0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD83_02235BF4 + + thumb_func_start MOD83_02235C4C +MOD83_02235C4C: ; 0x02235C4C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x78 + add r5, r0, #0 + mov r0, #0 + add r4, r1, #0 + add r3, sp, #0x2c + add r1, r0, #0 + mov r2, #4 +_02235C5C: + stmia r3!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _02235C5C + stmia r3!, {r0, r1} + str r0, [r3] + mov r1, #0x20 + str r1, [sp, #0x3c] + mov r1, #1 + ldr r0, _02235DF8 ; =0x00000488 + str r1, [sp, #0x50] + str r1, [sp, #0x54] + mov r1, #0xbc + str r1, [sp, #0x4c] + ldr r1, _02235DFC ; =0x000F0200 + add r0, r5, r0 + str r1, [sp, #0x58] + mov r1, #0x2c + str r0, [sp, #0x2c] + mov r0, #0 + str r1, [sp, #0x60] + mov r1, #0x90 + mov r2, #4 + str r1, [sp, #0x44] + str r0, [sp, #0x34] + str r0, [sp, #0x38] + str r0, [sp, #0x64] + str r0, [sp, #0x48] + add r0, r5, #0 + add r1, sp, #0x2c + str r2, [sp, #0x40] + bl MOD83_02234F2C + mov r0, #0x2b + str r0, [sp, #0x60] + mov r0, #0x50 + str r0, [sp, #0x44] + mov r0, #8 + str r0, [sp, #0x48] + add r0, r5, #0 + add r1, sp, #0x2c + mov r2, #6 + bl MOD83_02234F2C + add r0, r5, #0 + add r1, r4, #0 + bl MOD83_02235BF4 + cmp r4, #0 + bne _02235CCA + ldr r0, [sp, #0x2c] + bl FUN_020191D0 + add sp, #0x78 + pop {r3, r4, r5, r6, r7, pc} +_02235CCA: + add r2, sp, #0x1c + add r0, r4, #0 + mov r1, #2 + add r2, #2 + bl MOD83_02237A10 + add r0, r4, #0 + mov r1, #3 + mov r2, #0 + bl MOD83_02237A10 + add r3, r0, #0 + add r0, sp, #0x1c + add r0, #2 + add r1, sp, #8 + mov r2, #0xb + bl FUN_02015D88 + add r0, sp, #8 + str r0, [sp, #0x64] + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x60] + mov r0, #8 + str r0, [sp, #0x44] + mov r0, #0 + str r0, [sp, #0x48] + add r0, r5, #0 + add r1, sp, #0x2c + mov r2, #6 + bl MOD83_02234F2C + mov r0, #0x40 + mov r1, #0x4e + bl FUN_020219F4 + add r6, r0, #0 + ldr r2, _02235E00 ; =0x0000016A + mov r0, #1 + mov r1, #0x1a + mov r3, #0x4e + bl FUN_0200A86C + add r7, r0, #0 + add r0, r4, #0 + mov r1, #0xb + mov r2, #0 + bl MOD83_02237A10 + bl MOD83_02237EBC + str r0, [sp, #4] + ldr r1, [sp, #4] + add r0, r7, #0 + add r2, r6, #0 + bl FUN_0200A8E0 + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x60] + mov r0, #0x10 + str r0, [sp, #0x44] + str r0, [sp, #0x48] + add r0, r5, #0 + add r1, sp, #0x2c + mov r2, #6 + str r6, [sp, #0x68] + bl MOD83_02234F2C + add r0, r7, #0 + bl FUN_0200A8B8 + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + mov r1, #0xc + mov r2, #0 + bl MOD83_02237A10 + cmp r0, #0 + beq _02235DAC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0206E6D8 + add r7, r0, #0 + mov r0, #0x40 + mov r1, #0x4e + bl FUN_020219F4 + lsl r1, r7, #0x10 + lsr r1, r1, #0x10 + mov r2, #0x4e + add r6, r0, #0 + bl FUN_0206E768 + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x60] + mov r0, #0x98 + str r0, [sp, #0x44] + mov r0, #0x10 + str r0, [sp, #0x48] + add r0, r5, #0 + add r1, sp, #0x2c + mov r2, #6 + str r6, [sp, #0x68] + bl MOD83_02234F2C + add r0, r6, #0 + bl FUN_02021A20 +_02235DAC: + add r0, r4, #0 + bl MOD83_02237EDC + add r6, r0, #0 + mov r0, #0xa + mov r1, #0x4e + bl FUN_020219F4 + mov r3, #1 + add r1, r6, #0 + mov r2, #3 + add r4, r0, #0 + str r3, [sp] + bl FUN_02021B04 + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x60] + mov r0, #0x64 + str r0, [sp, #0x44] + mov r0, #8 + str r0, [sp, #0x48] + add r0, r5, #0 + add r1, sp, #0x2c + mov r2, #2 + str r4, [sp, #0x68] + bl MOD83_02234F2C + add r0, r4, #0 + bl FUN_02021A20 + ldr r0, [sp, #4] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02005578 + add sp, #0x78 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02235DF8: .word 0x00000488 +_02235DFC: .word 0x000F0200 +_02235E00: .word 0x0000016A + thumb_func_end MOD83_02235C4C + + thumb_func_start MOD83_02235E04 +MOD83_02235E04: ; 0x02235E04 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4e + str r0, [sp, #8] + add r6, r2, #0 + mov r0, #0 + add r4, r3, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + cmp r4, #0 + beq _02235E2C + mov r0, #0x17 + str r0, [r4] +_02235E2C: + str r6, [r5, #0x24] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD83_02235E04 + + thumb_func_start MOD83_02235E34 +MOD83_02235E34: ; 0x02235E34 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #6 + str r0, [sp] + mov r0, #1 + add r4, r3, #0 + str r0, [sp, #4] + mov r0, #0x4e + add r6, r2, #0 + str r0, [sp, #8] + ldr r3, _02235E64 ; =0x00007FFF + mov r0, #0 + add r2, r1, #0 + bl FUN_0200E1D0 + cmp r4, #0 + beq _02235E5C + mov r0, #0x17 + str r0, [r4] +_02235E5C: + str r6, [r5, #0x24] + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_02235E64: .word 0x00007FFF + thumb_func_end MOD83_02235E34 + + thumb_func_start MOD83_02235E68 +MOD83_02235E68: ; 0x02235E68 + push {r3, r4, r5, lr} + sub sp, #0x80 + ldr r5, _02235F28 ; =0x0223A51C + add r3, sp, #0x70 + add r4, r0, #0 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _02235F2C ; =0x0223A52C + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + ldr r5, _02235F30 ; =0x0223A548 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _02235F34 ; =0x0223A564 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _02235F38 ; =0x0223A580 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #3 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #3 + bl FUN_02018744 + add sp, #0x80 + pop {r3, r4, r5, pc} + nop +_02235F28: .word 0x0223A51C +_02235F2C: .word 0x0223A52C +_02235F30: .word 0x0223A548 +_02235F34: .word 0x0223A564 +_02235F38: .word 0x0223A580 + thumb_func_end MOD83_02235E68 + + thumb_func_start MOD83_02235F3C +MOD83_02235F3C: ; 0x02235F3C + push {r3, r4, r5, lr} + sub sp, #0x38 + ldr r5, _02235FB4 ; =0x0223A59C + add r4, r0, #0 + add r3, sp, #0x10 + mov r2, #5 +_02235F48: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _02235F48 + add r0, sp, #0x10 + bl FUN_0201E66C + ldr r0, [r4, #0x20] + bl MOD83_02235E68 + ldr r0, _02235FB8 ; =0x021C4918 + mov r1, #1 + strb r1, [r0, #5] + bl FUN_0201E7A0 + bl FUN_0201BD5C + mov r1, #0x1e + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x4e + bl FUN_02002ED0 + mov r0, #0xc0 + str r0, [sp] + mov r0, #0x4e + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0x13 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + mov r0, #5 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x4e + str r0, [sp, #0xc] + ldr r2, [r4, #0x20] + mov r0, #0x74 + mov r1, #0x16 + mov r3, #2 + bl FUN_0200687C + mov r0, #2 + mov r1, #0x4e + bl FUN_02002C50 + add sp, #0x38 + pop {r3, r4, r5, pc} + .align 2, 0 +_02235FB4: .word 0x0223A59C +_02235FB8: .word 0x021C4918 + thumb_func_end MOD83_02235F3C + + thumb_func_start MOD83_02235FBC +MOD83_02235FBC: ; 0x02235FBC + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x4e + str r0, [sp, #0xc] + ldr r2, [r4, #0x20] + mov r0, #0x74 + mov r1, #0x14 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r2, #0 + ldr r1, [r4] + ldr r0, _02236008 ; =0x0223B280 + add r3, r2, #0 + ldrb r0, [r0, r1] + mov r1, #2 + str r0, [sp, #8] + ldr r0, [r4, #0x20] + bl FUN_020186B4 + ldr r0, [r4, #0x20] + mov r1, #2 + bl FUN_02017CD0 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02236008: .word 0x0223B280 + thumb_func_end MOD83_02235FBC + + thumb_func_start MOD83_0223600C +MOD83_0223600C: ; 0x0223600C + push {r4, lr} + sub sp, #8 + mov r1, #7 + add r4, r0, #0 + mov r0, #0 + lsl r1, r1, #6 + mov r2, #0x4e + bl FUN_02002ED0 + mov r1, #0 + mov r2, #0x3f + str r1, [sp] + mov r0, #0x4e + str r0, [sp, #4] + ldr r0, [r4, #0x20] + lsl r2, r2, #4 + mov r3, #0xe + bl FUN_0200CB00 + ldr r0, [r4, #0x1c] + ldr r2, _022360B4 ; =0x000003D2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x4e + str r0, [sp, #4] + ldr r0, [r4, #0x20] + mov r1, #0 + mov r3, #0xd + bl FUN_0200CD68 + ldr r0, _022360B8 ; =0x0000042C + mov r1, #0 + add r0, r4, r0 + mov r2, #0x4c + bl Call_FillMemWithValue + ldr r0, _022360BC ; =0x00000498 + mov r3, #0x1b + add r1, r0, #0 + add r2, r4, r0 + sub r1, #0x6c + str r2, [r4, r1] + add r1, r0, #0 + mov r2, #2 + sub r1, #0x64 + str r2, [r4, r1] + add r1, r0, #0 + mov r2, #1 + sub r1, #0x60 + str r2, [r4, r1] + add r1, r0, #0 + sub r1, #0x5c + str r3, [r4, r1] + add r1, r0, #0 + mov r3, #4 + sub r1, #0x58 + str r3, [r4, r1] + add r3, r0, #0 + mov r1, #0 + sub r3, #0x48 + str r1, [r4, r3] + add r3, r0, #0 + sub r3, #0x44 + str r2, [r4, r3] + add r3, r0, #0 + sub r3, #0x4c + str r2, [r4, r3] + add r2, r0, #0 + ldr r3, _022360C0 ; =0x0001020F + sub r2, #0x40 + str r3, [r4, r2] + add r2, r0, #0 + ldr r3, _022360C4 ; =0x000F020F + sub r2, #0x3c + str r3, [r4, r2] + add r2, r0, #0 + sub r2, #0x34 + str r1, [r4, r2] + sub r0, #0x30 + str r1, [r4, r0] + add sp, #8 + pop {r4, pc} + nop +_022360B4: .word 0x000003D2 +_022360B8: .word 0x0000042C +_022360BC: .word 0x00000498 +_022360C0: .word 0x0001020F +_022360C4: .word 0x000F020F + thumb_func_end MOD83_0223600C + + thumb_func_start MOD83_022360C8 +MOD83_022360C8: ; 0x022360C8 + push {r4, r5, r6, r7, lr} + sub sp, #0x4c + add r6, r0, #0 + mov r7, #0x6b + mov r5, #0 + add r4, r6, #0 + lsl r7, r7, #2 +_022360D6: + mov r0, #0x6a + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4, r7] + mov r1, #0 + bl FUN_020200A0 + add r5, r5, #1 + add r4, #0xc + cmp r5, #0x1e + blt _022360D6 + mov r7, #0xf2 + mov r5, #0 + add r4, r6, #0 + lsl r7, r7, #2 +_022360FA: + ldr r0, [r4, r7] + mov r1, #0 + bl FUN_020200A0 + add r5, r5, #1 + add r4, #0xc + cmp r5, #6 + blt _022360FA + mov r0, #0xe6 + lsl r0, r0, #2 + ldr r0, [r6, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0xee + lsl r0, r0, #2 + ldr r0, [r6, r0] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0xea + lsl r0, r0, #2 + ldr r0, [r6, r0] + mov r1, #0 + bl FUN_020200A0 + mov r2, #0x61 + lsl r2, r2, #2 + add r0, sp, #0x1c + add r1, r6, #0 + add r2, r6, r2 + mov r3, #1 + bl MOD83_02235244 + mov r0, #0x1c + mov r7, #0 + str r0, [sp, #0x10] + add r4, r6, #0 + add r5, r6, #0 +_02236148: + ldr r0, [sp, #0x10] + lsl r0, r0, #0xc + str r0, [sp, #0x24] + mov r0, #0x8e + lsl r0, r0, #0xc + str r0, [sp, #0x28] + add r0, sp, #0x1c + bl FUN_0201FE94 + ldr r1, _02236288 ; =0x00000414 + str r0, [r4, r1] + add r0, r1, #0 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200BC + ldr r0, _02236288 ; =0x00000414 + add r1, r7, #0 + ldr r0, [r4, r0] + add r1, #0xa + bl FUN_02020130 + ldr r0, _02236288 ; =0x00000414 + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_02020238 + ldr r0, _02236288 ; =0x00000414 + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_020200A0 + mov r1, #0x3d + mov r2, #0xf3 + lsl r1, r1, #4 + lsl r2, r2, #2 + ldr r1, [r5, r1] + ldr r2, [r5, r2] + add r0, r6, #0 + bl MOD83_0223526C + mov r1, #0x3d + mov r2, #0xf3 + lsl r1, r1, #4 + lsl r2, r2, #2 + str r0, [sp, #0x14] + ldr r1, [r5, r1] + ldr r2, [r5, r2] + add r0, r6, #0 + bl MOD83_02235290 + mov r1, #0x3d + mov r2, #0xf3 + lsl r1, r1, #4 + lsl r2, r2, #2 + str r0, [sp, #0x18] + ldr r1, [r5, r1] + ldr r2, [r5, r2] + add r0, r6, #0 + bl MOD83_022352B4 + add r2, r0, #0 + ldr r0, _02236288 ; =0x00000414 + str r7, [sp] + ldr r0, [r4, r0] + ldr r3, _0223628C ; =0x021C4918 + str r0, [sp, #4] + ldrb r3, [r3, #6] + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x18] + bl MOD83_022353C0 + ldr r0, [sp, #0x10] + add r7, r7, #1 + add r0, #0x28 + str r0, [sp, #0x10] + add r4, r4, #4 + add r5, #0xc + cmp r7, #6 + blt _02236148 + mov r0, #0 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #8 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0x4e + str r0, [sp, #0xc] + ldr r2, [r6, #0x20] + mov r0, #0x74 + mov r1, #0x15 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r2, #0 + ldr r1, [r6] + ldr r0, _02236290 ; =0x0223B280 + add r3, r2, #0 + ldrb r0, [r0, r1] + mov r1, #2 + str r0, [sp, #8] + ldr r0, [r6, #0x20] + bl FUN_020186B4 + ldr r0, [r6, #0x20] + mov r1, #2 + bl FUN_02017CD0 + mov r0, #2 + mov r1, #0 + bl FUN_0201E6E4 + mov r1, #7 + mov r0, #0 + lsl r1, r1, #6 + mov r2, #0x4e + bl FUN_02002ED0 + mov r1, #0 + mov r2, #0x3f + str r1, [sp] + mov r0, #0x4e + str r0, [sp, #4] + ldr r0, [r6, #0x20] + lsl r2, r2, #4 + mov r3, #0xe + bl FUN_0200CB00 + ldr r0, [r6, #0x1c] + ldr r2, _02236294 ; =0x000003D2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x4e + str r0, [sp, #4] + ldr r0, [r6, #0x20] + mov r1, #0 + mov r3, #0xd + bl FUN_0200CD68 + add r0, r6, #0 + bl MOD83_0223600C + mov r1, #0x46 + mov r0, #0xa + lsl r1, r1, #4 + str r0, [r6, r1] + sub r1, #0x34 + add r0, r6, #0 + add r1, r6, r1 + mov r2, #0x18 + bl MOD83_02234F2C + add sp, #0x4c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02236288: .word 0x00000414 +_0223628C: .word 0x021C4918 +_02236290: .word 0x0223B280 +_02236294: .word 0x000003D2 + thumb_func_end MOD83_022360C8 + + thumb_func_start MOD83_02236298 +MOD83_02236298: ; 0x02236298 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4] + cmp r1, #0 + beq _022362B4 + mov r1, #0 + bl FUN_0200D0E0 + add r0, r4, #0 + bl FUN_02019570 + add r0, r4, #0 + bl FUN_02019178 +_022362B4: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD83_02236298 + + thumb_func_start MOD83_022362B8 +MOD83_022362B8: ; 0x022362B8 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r7, _02236328 ; =0x00000414 + mov r4, #0 + add r5, r6, #0 +_022362C2: + ldr r0, [r5, r7] + bl FUN_0201FFC8 + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _022362C2 + mov r0, #2 + mov r1, #1 + bl FUN_0201E6E4 + ldr r0, _0223632C ; =0x00000498 + add r0, r6, r0 + bl MOD83_02236298 + mov r0, #0xe6 + lsl r0, r0, #2 + ldr r0, [r6, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xee + lsl r0, r0, #2 + ldr r0, [r6, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xea + lsl r0, r0, #2 + ldr r0, [r6, r0] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0xf3 + mov r5, #0 + lsl r0, r0, #2 + add r4, r6, #0 + sub r3, r5, #1 + mov r2, #0xe + add r1, r0, #4 +_02236312: + str r3, [r4, r0] + str r2, [r4, r1] + add r5, r5, #1 + add r4, #0xc + cmp r5, #6 + blt _02236312 + mov r0, #0x41 + mov r1, #0 + lsl r0, r0, #4 + str r1, [r6, r0] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02236328: .word 0x00000414 +_0223632C: .word 0x00000498 + thumb_func_end MOD83_022362B8 + + thumb_func_start MOD83_02236330 +MOD83_02236330: ; 0x02236330 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r7, #0x6a + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_02236344: + ldr r0, [r5, r7] + cmp r0, #0 + beq _0223634E + bl FUN_0201FFC8 +_0223634E: + mov r0, #0x6b + lsl r0, r0, #2 + ldr r0, [r5, r0] + cmp r0, #0 + beq _0223635C + bl FUN_0201FFC8 +_0223635C: + add r4, r4, #1 + add r5, #0xc + cmp r4, #0x1e + blt _02236344 + mov r7, #0xf2 + mov r5, #0 + add r4, r6, #0 + lsl r7, r7, #2 +_0223636C: + ldr r0, [r4, r7] + cmp r0, #0 + beq _02236376 + bl FUN_0201FFC8 +_02236376: + add r5, r5, #1 + add r4, #0xc + cmp r5, #6 + blt _0223636C + mov r0, #0xe6 + lsl r0, r0, #2 + ldr r0, [r6, r0] + cmp r0, #0 + beq _0223638C + bl FUN_0201FFC8 +_0223638C: + mov r0, #0xee + lsl r0, r0, #2 + ldr r0, [r6, r0] + cmp r0, #0 + beq _0223639A + bl FUN_0201FFC8 +_0223639A: + mov r0, #0xea + lsl r0, r0, #2 + ldr r0, [r6, r0] + cmp r0, #0 + beq _022363A8 + bl FUN_0201FFC8 +_022363A8: + ldr r0, _0223643C ; =0x00000478 + add r0, r6, r0 + bl MOD83_02236298 + ldr r0, _02236440 ; =0x00000488 + add r0, r6, r0 + bl MOD83_02236298 + ldr r0, _02236444 ; =0x00000498 + add r0, r6, r0 + bl MOD83_02236298 + mov r0, #2 + bl FUN_02002CF8 + mov r0, #0x5b + lsl r0, r0, #2 + ldr r0, [r6, r0] + bl FUN_02009C0C + mov r0, #0x17 + lsl r0, r0, #4 + ldr r0, [r6, r0] + bl FUN_02009E04 + mov r7, #0x55 + mov r5, #0 + add r4, r6, #0 + lsl r7, r7, #2 +_022363E2: + ldr r0, [r4, r7] + bl FUN_02008E2C + add r5, r5, #1 + add r4, r4, #4 + cmp r5, #6 + blt _022363E2 + ldr r0, [r6, #0x28] + bl FUN_0201FD58 + mov r0, #0 + str r0, [r6, #0x28] + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + ldr r0, _02236448 ; =0x0000E88C + ldr r0, [r6, r0] + bl FUN_020145A8 + ldr r0, _0223644C ; =0x021C4918 + mov r1, #0 + strb r1, [r0, #5] + bl FUN_0201E7A0 + ldr r0, [r6, #0x20] + mov r1, #0 + bl FUN_020178A0 + ldr r0, [r6, #0x20] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r6, #0x20] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r6, #0x20] + mov r1, #3 + bl FUN_020178A0 + pop {r3, r4, r5, r6, r7, pc} + nop +_0223643C: .word 0x00000478 +_02236440: .word 0x00000488 +_02236444: .word 0x00000498 +_02236448: .word 0x0000E88C +_0223644C: .word 0x021C4918 + thumb_func_end MOD83_02236330 + + thumb_func_start MOD83_02236450 +MOD83_02236450: ; 0x02236450 + push {lr} + sub sp, #0x14 + ldr r1, [r0, #0x20] + mov r2, #0x19 + str r1, [sp] + mov r1, #0 + str r1, [sp, #4] + mov r1, #2 + lsl r1, r1, #8 + str r1, [sp, #8] + mov r1, #8 + str r1, [sp, #0xc] + add r1, sp, #0 + strb r2, [r1, #0x10] + mov r2, #7 + strb r2, [r1, #0x11] + ldr r1, _02236480 ; =0x0000E88C + ldr r0, [r0, r1] + add r1, sp, #0 + bl FUN_020145C8 + add sp, #0x14 + pop {pc} + nop +_02236480: .word 0x0000E88C + thumb_func_end MOD83_02236450 + + thumb_func_start MOD83_02236484 +MOD83_02236484: ; 0x02236484 + push {r4, r5, r6, lr} + sub sp, #0x18 + add r5, r0, #0 + bl MOD83_02237464 + add r4, r0, #0 + bl MOD83_02236EA8 + add r3, r0, #0 + add r0, r4, #0 + add r1, sp, #8 + mov r2, #8 + bl FUN_02015D88 + mov r0, #0x4e + bl FUN_0200AA80 + add r4, r0, #0 + mov r0, #8 + mov r1, #0x4e + bl FUN_020219F4 + add r1, sp, #8 + add r6, r0, #0 + bl FUN_02021E28 + mov r1, #1 + str r1, [sp] + mov r0, #2 + str r0, [sp, #4] + add r0, r4, #0 + add r2, r6, #0 + mov r3, #0 + bl FUN_0200ABB4 + add r0, r5, #0 + bl MOD83_0223600C + ldr r0, [r5] + mov r2, #0x18 + lsl r1, r0, #2 + ldr r0, _02236508 ; =0x0223B2A0 + ldr r0, [r0, r1] + mov r1, #0x46 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + add r0, #0xc + sub r1, #0x34 + str r4, [r5, r0] + add r0, r5, #0 + add r1, r5, r1 + bl MOD83_02234F2C + add r0, r6, #0 + bl FUN_02021A20 + add r0, r4, #0 + bl FUN_0200AB18 + add r0, r5, #0 + bl MOD83_02236450 + add sp, #0x18 + pop {r4, r5, r6, pc} + nop +_02236508: .word 0x0223B2A0 + thumb_func_end MOD83_02236484 + + thumb_func_start MOD83_0223650C +MOD83_0223650C: ; 0x0223650C + push {r4, lr} + add r4, r0, #0 + ldr r0, _0223653C ; =0x00012604 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02236520 + blx r0 + ldr r0, _0223653C ; =0x00012604 + mov r1, #0 + str r1, [r4, r0] +_02236520: + bl FUN_0201C30C + bl FUN_02009F80 + ldr r0, [r4, #0x20] + bl FUN_0201AB60 + ldr r3, _02236540 ; =0x027E0000 + ldr r1, _02236544 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + .align 2, 0 +_0223653C: .word 0x00012604 +_02236540: .word 0x027E0000 +_02236544: .word 0x00003FF8 + thumb_func_end MOD83_0223650C + + thumb_func_start MOD83_02236548 +MOD83_02236548: ; 0x02236548 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + str r0, [sp] + ldr r0, [r0, #0x10] + bl FUN_02022528 + str r0, [sp, #8] + bl FUN_0202C0B8 + cmp r0, #0 + bne _0223659C + ldr r0, [sp, #8] + bl FUN_0202C060 + cmp r0, #0 + bne _0223656E + add sp, #0xc + mov r0, #3 + pop {r4, r5, r6, r7, pc} +_0223656E: + ldr r0, [sp, #8] + bl FUN_0202C094 + cmp r0, #0 + bne _0223657E + add sp, #0xc + mov r0, #4 + pop {r4, r5, r6, r7, pc} +_0223657E: + bl MOD83_02237448 + add r1, r0, #0 + ldr r0, [sp, #8] + bl FUN_0202C028 + cmp r0, #0 + bne _02236590 + ldr r0, _022365F8 ; =0x0002A300 +_02236590: + ldr r1, _022365FC ; =0x00015180 + cmp r0, r1 + bge _0223659C + add sp, #0xc + mov r0, #2 + pop {r4, r5, r6, r7, pc} +_0223659C: + mov r6, #0 + str r6, [sp, #4] + add r7, r6, #0 +_022365A2: + mov r4, #0 + add r5, r4, #0 +_022365A6: + ldr r1, [sp] + ldr r0, _02236600 ; =0x0000E880 + mov r2, #0 + ldr r0, [r1, r0] + mov r1, #5 + add r0, r0, #4 + add r0, r0, r7 + add r0, r0, r5 + bl MOD83_02237A10 + cmp r0, #0 + beq _022365C0 + add r6, r6, #1 +_022365C0: + add r4, r4, #1 + add r5, #0x50 + cmp r4, #0x1e + blt _022365A6 + mov r0, #0x96 + lsl r0, r0, #4 + add r7, r7, r0 + ldr r0, [sp, #4] + add r0, r0, #1 + str r0, [sp, #4] + cmp r0, #0xe + blt _022365A2 + cmp r6, #6 + bge _022365E2 + add sp, #0xc + mov r0, #5 + pop {r4, r5, r6, r7, pc} +_022365E2: + ldr r0, [sp, #8] + bl FUN_0202C000 + cmp r0, #0 + beq _022365F2 + add sp, #0xc + mov r0, #6 + pop {r4, r5, r6, r7, pc} +_022365F2: + mov r0, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_022365F8: .word 0x0002A300 +_022365FC: .word 0x00015180 +_02236600: .word 0x0000E880 + thumb_func_end MOD83_02236548 + + thumb_func_start MOD83_02236604 +MOD83_02236604: ; 0x02236604 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + ldr r1, [r5, #4] + cmp r1, #0 + beq _02236640 + bl MOD83_0223600C + mov r0, #1 + bl FUN_02002BB8 + ldr r0, _02236660 ; =0x0223B2D8 + lsl r1, r4, #2 + ldr r0, [r0, r1] + mov r1, #0x46 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + sub r1, #0x34 + mov r2, #1 + add r0, #0x10 + str r2, [r5, r0] + add r0, r5, #0 + add r1, r5, r1 + mov r2, #0x18 + bl MOD83_02234F2C + mov r0, #0 + str r0, [r5, #4] + b _0223665A +_02236640: + ldr r0, _02236664 ; =0x00000474 + ldr r0, [r5, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _0223665A + mov r0, #0 + bl FUN_02002BB8 + mov r0, #1 + pop {r3, r4, r5, pc} +_0223665A: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_02236660: .word 0x0223B2D8 +_02236664: .word 0x00000474 + thumb_func_end MOD83_02236604 + + thumb_func_start MOD83_02236668 +MOD83_02236668: ; 0x02236668 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + ldr r1, [r5, #4] + cmp r1, #0 + beq _022366A4 + bl MOD83_0223600C + mov r0, #1 + bl FUN_02002BB8 + ldr r0, _022366C8 ; =0x0223B2D8 + lsl r1, r4, #2 + ldr r0, [r0, r1] + mov r1, #0x46 + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + sub r1, #0x34 + mov r2, #1 + add r0, #0x10 + str r2, [r5, r0] + add r0, r5, #0 + add r1, r5, r1 + mov r2, #0x18 + bl MOD83_02234F2C + mov r0, #0 + str r0, [r5, #4] + b _022366C4 +_022366A4: + ldr r0, _022366CC ; =0x00000474 + ldr r0, [r5, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _022366C4 + add r0, r5, #0 + bl MOD83_02236450 + mov r0, #0 + bl FUN_02002BB8 + mov r0, #1 + pop {r3, r4, r5, pc} +_022366C4: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022366C8: .word 0x0223B2D8 +_022366CC: .word 0x00000474 + thumb_func_end MOD83_02236668 + + thumb_func_start MOD83_022366D0 +MOD83_022366D0: ; 0x022366D0 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r1, #0 + ldr r2, [r5, #8] + mvn r1, r1 + cmp r2, r1 + beq _02236712 + bl MOD83_0223600C + mov r0, #1 + bl FUN_02002BB8 + mov r1, #0x46 + ldr r0, [r5, #8] + lsl r1, r1, #4 + str r0, [r5, r1] + add r0, r1, #0 + add r0, #0x10 + sub r1, #0x34 + str r4, [r5, r0] + add r0, r5, #0 + add r1, r5, r1 + mov r2, #0x18 + bl MOD83_02234F2C + mov r0, #0 + mvn r0, r0 + str r0, [r5, #8] + ldr r0, _02236754 ; =0x000005DC + bl FUN_020054C8 + b _02236750 +_02236712: + cmp r4, #0 + beq _02236730 + ldr r0, _02236758 ; =0x00000474 + ldr r0, [r5, r0] + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_0201BD70 + cmp r0, #0 + bne _02236750 + mov r0, #0 + bl FUN_02002BB8 + mov r0, #1 + pop {r3, r4, r5, pc} +_02236730: + ldr r0, _0223675C ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + bne _02236740 + ldr r0, _02236760 ; =0x021C48B8 + ldr r0, [r0, #0x48] + cmp r0, #0 + beq _02236750 +_02236740: + mov r0, #0 + bl FUN_02002BB8 + ldr r0, _02236754 ; =0x000005DC + bl FUN_020054C8 + mov r0, #1 + pop {r3, r4, r5, pc} +_02236750: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02236754: .word 0x000005DC +_02236758: .word 0x00000474 +_0223675C: .word 0x021C48F8 +_02236760: .word 0x021C48B8 + thumb_func_end MOD83_022366D0 + + thumb_func_start MOD83_02236764 +MOD83_02236764: ; 0x02236764 + push {r3, r4, r5, lr} + mov r2, #0xa + add r5, r0, #0 + mov r0, #3 + mov r1, #0x4e + lsl r2, r2, #0xe + bl FUN_0201681C + ldr r1, _022367F0 ; =0x00012608 + add r0, r5, #0 + mov r2, #0x4e + bl FUN_02006268 + ldr r2, _022367F0 ; =0x00012608 + mov r1, #0 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x4e + bl FUN_02016B94 + str r0, [r4, #0x20] + mov r0, #0x4e + bl FUN_02014590 + ldr r1, _022367F4 ; =0x0000E88C + str r0, [r4, r1] + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + add r0, r5, #0 + bl FUN_0200628C + ldr r0, [r0, #8] + str r0, [r4, #0x10] + bl FUN_020238F4 + str r0, [r4, #0x14] + ldr r0, [r4, #0x10] + bl LoadPlayerDataAddress + str r0, [r4, #0x18] + bl FUN_02025084 + str r0, [r4, #0x1c] + ldr r1, _022367F8 ; =0x00000496 + mov r0, #9 + mov r2, #1 + bl FUN_0200433C + bl OS_IsTickAvailable + cmp r0, #0 + bne _022367DE + bl OS_InitTick +_022367DE: + bl MOD83_02239490 + ldr r0, _022367FC ; =0x0000E89C + add r1, r4, r0 + ldr r0, _02236800 ; =0x0223BB14 + str r1, [r0] + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_022367F0: .word 0x00012608 +_022367F4: .word 0x0000E88C +_022367F8: .word 0x00000496 +_022367FC: .word 0x0000E89C +_02236800: .word 0x0223BB14 + thumb_func_end MOD83_02236764 + + thumb_func_start MOD83_02236804 +MOD83_02236804: ; 0x02236804 + push {r4, r5, r6, lr} + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + bl CTRDG_IsExisting + bl CTRDG_IsPulledOut + cmp r0, #1 + beq _02236822 + ldr r0, _02236B3C ; =0x02106FA4 + ldr r0, [r0] + cmp r0, #0 + beq _02236828 +_02236822: + mov r0, #0x4e + bl FUN_02089F24 +_02236828: + ldr r0, [r4, #0xc] + add r0, r0, #1 + str r0, [r4, #0xc] + ldr r0, [r5] + cmp r0, #0x18 + bhi _02236924 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02236840: ; jump table + .short _02236872 - _02236840 - 2 ; case 0 + .short _022368BA - _02236840 - 2 ; case 1 + .short _02236900 - _02236840 - 2 ; case 2 + .short _02236914 - _02236840 - 2 ; case 3 + .short _0223694E - _02236840 - 2 ; case 4 + .short _02236966 - _02236840 - 2 ; case 5 + .short _022369BC - _02236840 - 2 ; case 6 + .short _022369CE - _02236840 - 2 ; case 7 + .short _022369EC - _02236840 - 2 ; case 8 + .short _022369FE - _02236840 - 2 ; case 9 + .short _02236A5C - _02236840 - 2 ; case 10 + .short _02236A74 - _02236840 - 2 ; case 11 + .short _02236A88 - _02236840 - 2 ; case 12 + .short _02236AC8 - _02236840 - 2 ; case 13 + .short _02236BF0 - _02236840 - 2 ; case 14 + .short _02236C0A - _02236840 - 2 ; case 15 + .short _02236C26 - _02236840 - 2 ; case 16 + .short _02236C40 - _02236840 - 2 ; case 17 + .short _02236C76 - _02236840 - 2 ; case 18 + .short _02236C9C - _02236840 - 2 ; case 19 + .short _02236D06 - _02236840 - 2 ; case 20 + .short _02236D12 - _02236840 - 2 ; case 21 + .short _02236D54 - _02236840 - 2 ; case 22 + .short _02236D78 - _02236840 - 2 ; case 23 + .short _02236D86 - _02236840 - 2 ; case 24 +_02236872: + bl MOD83_02236E90 + mov r0, #0x4b + lsl r0, r0, #4 + add r0, r4, r0 + bl MOD83_02236E18 + ldr r1, _02236B40 ; =0x000004A8 + str r0, [r4, r1] + ldr r0, [r4, r1] + cmp r0, #0 + bne _022368AE + bl MOD83_022371C4 + ldr r1, _02236B44 ; =0x000004AC + str r0, [r4, r1] + ldr r0, [r4, r1] + cmp r0, #0 + bne _022368AA + bl MOD83_0223742C + ldr r1, _02236B48 ; =0x0000E880 + str r0, [r4, r1] + ldr r0, [r4, r1] + ldrb r2, [r0] + add r0, r1, #4 + str r2, [r4, r0] + b _022368AE +_022368AA: + mov r0, #1 + str r0, [r4, #4] +_022368AE: + add r0, r4, #0 + bl MOD83_02234CA0 + mov r0, #1 + str r0, [r5] + b _02236D90 +_022368BA: + add r0, r4, #0 + bl MOD83_02235F3C + bl MOD83_022350BC + add r0, r4, #0 + bl MOD83_022350EC + add r0, r4, #0 + bl MOD83_022351F8 + add r0, r4, #0 + bl MOD83_022357CC + ldr r0, _02236B4C ; =MOD83_0223650C + add r1, r4, #0 + bl FUN_02015F10 + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E6E4 + ldr r0, [r4, #4] + cmp r0, #1 + bne _022368FA + add r0, r4, #0 + mov r1, #1 + mov r2, #0xb + add r3, r5, #0 + bl MOD83_02235E04 + b _02236D90 +_022368FA: + mov r0, #2 + str r0, [r5] + b _02236D90 +_02236900: + add r0, r4, #0 + bl MOD83_02236484 + add r0, r4, #0 + mov r1, #1 + mov r2, #3 + add r3, r5, #0 + bl MOD83_02235E04 + b _02236D90 +_02236914: + ldr r0, _02236B50 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_0201466C + cmp r0, #1 + beq _02236926 + cmp r0, #2 + beq _02236938 +_02236924: + b _02236D90 +_02236926: + ldr r0, _02236B50 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_020146C4 + mov r0, #0x22 + str r0, [r4, #8] + mov r0, #4 + str r0, [r5] + b _02236D90 +_02236938: + ldr r0, _02236B50 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_020146C4 + add r0, r4, #0 + mov r1, #0 + mov r2, #0x18 + add r3, r5, #0 + bl MOD83_02235E34 + b _02236D90 +_0223694E: + add r0, r4, #0 + mov r1, #1 + bl MOD83_022366D0 + cmp r0, #0 + beq _02236976 + add r0, r4, #0 + bl MOD83_02236450 + mov r0, #5 + str r0, [r5] + b _02236D90 +_02236966: + ldr r0, _02236B50 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_0201466C + cmp r0, #1 + beq _02236978 + cmp r0, #2 + beq _022369A6 +_02236976: + b _02236D90 +_02236978: + ldr r0, _02236B50 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_020146C4 + add r0, r4, #0 + bl MOD83_02236548 + str r0, [r4, #4] + cmp r0, #0 + beq _0223699E + sub r0, r0, #3 + cmp r0, #1 + bhi _02236998 + mov r0, #8 + str r0, [r5] + b _02236D90 +_02236998: + mov r0, #0xb + str r0, [r5] + b _02236D90 +_0223699E: + mov r0, #6 + str r0, [r4, #8] + str r0, [r5] + b _02236D90 +_022369A6: + ldr r0, _02236B50 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_020146C4 + add r0, r4, #0 + mov r1, #0 + mov r2, #0x18 + add r3, r5, #0 + bl MOD83_02235E34 + b _02236D90 +_022369BC: + add r0, r4, #0 + mov r1, #1 + bl MOD83_022366D0 + cmp r0, #0 + beq _02236A0E + mov r0, #7 + str r0, [r5] + b _02236D90 +_022369CE: + ldr r0, _02236B54 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + bne _022369DE + ldr r0, _02236B58 ; =0x021C48B8 + ldr r0, [r0, #0x48] + cmp r0, #0 + beq _02236A0E +_022369DE: + add r0, r4, #0 + mov r1, #0 + mov r2, #0xc + add r3, r5, #0 + bl MOD83_02235E04 + b _02236D90 +_022369EC: + ldr r1, [r4, #4] + add r0, r4, #0 + bl MOD83_02236668 + cmp r0, #0 + beq _02236A0E + mov r0, #9 + str r0, [r5] + b _02236D90 +_022369FE: + ldr r0, _02236B50 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_0201466C + cmp r0, #1 + beq _02236A10 + cmp r0, #2 + beq _02236A46 +_02236A0E: + b _02236D90 +_02236A10: + ldr r0, _02236B50 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_020146C4 + mov r1, #0x47 + lsl r1, r1, #4 + mov r2, #0 + add r0, r1, #0 + str r2, [r4, r1] + sub r1, #0x44 + mov r3, #0x28 + sub r0, #0x10 + str r3, [r4, r0] + add r0, r4, #0 + add r1, r4, r1 + bl MOD83_02234F2C + ldr r1, _02236B5C ; =0x00000498 + add r0, r4, r1 + sub r1, #0xc6 + bl FUN_0200D858 + ldr r1, _02236B60 ; =0x0000E898 + str r0, [r4, r1] + mov r0, #0xa + str r0, [r5] + b _02236D90 +_02236A46: + ldr r0, _02236B50 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_020146C4 + add r0, r4, #0 + mov r1, #0 + mov r2, #0x18 + add r3, r5, #0 + bl MOD83_02235E34 + b _02236D90 +_02236A5C: + add r0, r4, #0 + bl MOD83_02234E40 + ldr r0, _02236B60 ; =0x0000E898 + ldr r0, [r4, r0] + bl FUN_0200DBFC + mov r0, #7 + str r0, [r4, #4] + mov r0, #0xb + str r0, [r5] + b _02236D90 +_02236A74: + ldr r1, [r4, #4] + add r0, r4, #0 + bl MOD83_02236604 + cmp r0, #0 + bne _02236A82 + b _02236D90 +_02236A82: + mov r0, #0x16 + str r0, [r5] + b _02236D90 +_02236A88: + ldr r0, _02236B5C ; =0x00000498 + add r0, r4, r0 + bl MOD83_02236298 + add r0, r4, #0 + bl MOD83_02235FBC + add r0, r4, #0 + bl MOD83_02235648 + add r0, r4, #0 + bl MOD83_022354F0 + ldr r0, _02236B4C ; =MOD83_0223650C + add r1, r4, #0 + bl FUN_02015F10 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + add r0, r4, #0 + mov r1, #0 + bl MOD83_02235C4C + add r0, r4, #0 + mov r1, #1 + mov r2, #0xd + add r3, r5, #0 + bl MOD83_02235E04 + b _02236D90 +_02236AC8: + mov r0, #0x31 + lsl r0, r0, #4 + add r0, r4, r0 + bl FUN_02020988 + add r6, r0, #0 + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + beq _02236B9C + cmp r6, #0x1e + bge _02236B92 + add r0, r4, #0 + add r1, r6, #0 + bl MOD83_02235994 + cmp r0, #1 + bne _02236B20 + ldr r2, _02236B48 ; =0x0000E880 + add r0, r4, #0 + ldr r1, [r4, r2] + add r2, r2, #4 + ldr r3, [r4, r2] + mov r2, #0x96 + lsl r2, r2, #4 + add r1, r1, #4 + mul r2, r3 + add r2, r1, r2 + mov r1, #0x50 + mul r1, r6 + add r1, r2, r1 + bl MOD83_02235C4C + mov r0, #0x41 + lsl r0, r0, #4 + ldr r0, [r4, r0] + cmp r0, #6 + bne _02236B9C + ldr r0, _02236B64 ; =0x0000E888 + mov r1, #0x2d + str r1, [r4, r0] + mov r0, #0xf + str r0, [r5] + b _02236D90 +_02236B20: + cmp r0, #2 + bne _02236B2E + add r0, r4, #0 + mov r1, #0 + bl MOD83_02235C4C + b _02236D90 +_02236B2E: + cmp r0, #4 + bne _02236B68 + mov r0, #8 + str r0, [r4, #8] + mov r0, #0xe + str r0, [r5] + b _02236D90 + .align 2, 0 +_02236B3C: .word 0x02106FA4 +_02236B40: .word 0x000004A8 +_02236B44: .word 0x000004AC +_02236B48: .word 0x0000E880 +_02236B4C: .word MOD83_0223650C +_02236B50: .word 0x0000E88C +_02236B54: .word 0x021C48F8 +_02236B58: .word 0x021C48B8 +_02236B5C: .word 0x00000498 +_02236B60: .word 0x0000E898 +_02236B64: .word 0x0000E888 +_02236B68: + cmp r0, #5 + bne _02236B76 + mov r0, #9 + str r0, [r4, #8] + mov r0, #0xe + str r0, [r5] + b _02236D90 +_02236B76: + cmp r0, #6 + bne _02236B84 + mov r0, #0x26 + str r0, [r4, #8] + mov r0, #0xe + str r0, [r5] + b _02236D90 +_02236B84: + cmp r0, #7 + bne _02236B9C + mov r0, #0x26 + str r0, [r4, #8] + mov r0, #0xe + str r0, [r5] + b _02236D90 +_02236B92: + beq _02236BDC + cmp r6, #0x1f + beq _02236B9E + cmp r6, #0x20 + beq _02236BBC +_02236B9C: + b _02236D90 +_02236B9E: + ldr r0, _02236DA0 ; =0x0000E884 + ldr r1, [r4, r0] + cmp r1, #0 + bne _02236BAA + mov r1, #0xd + b _02236BAC +_02236BAA: + sub r1, r1, #1 +_02236BAC: + str r1, [r4, r0] + add r0, r4, #0 + bl MOD83_022354F0 + ldr r0, _02236DA4 ; =0x000005DC + bl FUN_020054C8 + b _02236D90 +_02236BBC: + ldr r0, _02236DA0 ; =0x0000E884 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #0xe + bne _02236BCE + mov r1, #0 + str r1, [r4, r0] +_02236BCE: + add r0, r4, #0 + bl MOD83_022354F0 + ldr r0, _02236DA4 ; =0x000005DC + bl FUN_020054C8 + b _02236D90 +_02236BDC: + add r0, r4, #0 + mov r1, #0 + mov r2, #0x18 + add r3, r5, #0 + bl MOD83_02235E34 + ldr r0, _02236DA4 ; =0x000005DC + bl FUN_020054C8 + b _02236D90 +_02236BF0: + add r0, r4, #0 + mov r1, #0 + bl MOD83_022366D0 + cmp r0, #0 + beq _02236C50 + ldr r0, _02236DA8 ; =0x00000498 + add r0, r4, r0 + bl MOD83_02236298 + mov r0, #0xd + str r0, [r5] + b _02236D90 +_02236C0A: + ldr r0, _02236DAC ; =0x0000E888 + ldr r1, [r4, r0] + sub r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, r0] + cmp r0, #0 + bne _02236C50 + add r0, r4, #0 + mov r1, #0 + mov r2, #0x10 + add r3, r5, #0 + bl MOD83_02235E04 + b _02236D90 +_02236C26: + add r0, r4, #0 + bl MOD83_022360C8 + add r0, r4, #0 + mov r1, #1 + mov r2, #0x11 + add r3, r5, #0 + bl MOD83_02235E04 + add r0, r4, #0 + bl MOD83_02236450 + b _02236D90 +_02236C40: + ldr r0, _02236DB0 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_0201466C + cmp r0, #1 + beq _02236C52 + cmp r0, #2 + beq _02236C60 +_02236C50: + b _02236D90 +_02236C52: + ldr r0, _02236DB0 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_020146C4 + mov r0, #0x12 + str r0, [r5] + b _02236D90 +_02236C60: + ldr r0, _02236DB0 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_020146C4 + add r0, r4, #0 + mov r1, #0 + mov r2, #0x14 + add r3, r5, #0 + bl MOD83_02235E04 + b _02236D90 +_02236C76: + mov r1, #0x46 + mov r0, #0xb + lsl r1, r1, #4 + str r0, [r4, r1] + sub r1, #0x34 + add r0, r4, #0 + add r1, r4, r1 + mov r2, #0 + bl MOD83_02234F2C + add r0, r4, #0 + bl MOD83_02236450 + ldr r0, _02236DA4 ; =0x000005DC + bl FUN_020054C8 + mov r0, #0x13 + str r0, [r5] + b _02236D90 +_02236C9C: + ldr r0, _02236DB0 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_0201466C + cmp r0, #1 + beq _02236CAE + cmp r0, #2 + beq _02236CF0 + b _02236D90 +_02236CAE: + ldr r0, [r4] + mov r2, #0 + lsl r1, r0, #2 + ldr r0, _02236DB4 ; =0x0223B288 + ldr r0, [r0, r1] + mov r1, #0x46 + lsl r1, r1, #4 + str r0, [r4, r1] + sub r1, #0x34 + add r0, r4, #0 + add r1, r4, r1 + bl MOD83_02234F2C + ldr r0, _02236DB0 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_020146C4 + ldr r0, _02236DB8 ; =0x0000E890 + mov r1, #0 + str r1, [r4, r0] + ldr r1, _02236DA8 ; =0x00000498 + add r0, r4, r1 + sub r1, #0xc6 + bl FUN_0200D858 + ldr r1, _02236DBC ; =0x0000E898 + str r0, [r4, r1] + mov r0, #0x15 + str r0, [r5] + mov r0, #4 + bl FUN_020166A8 + b _02236D90 +_02236CF0: + ldr r0, _02236DB0 ; =0x0000E88C + ldr r0, [r4, r0] + bl FUN_020146C4 + add r0, r4, #0 + mov r1, #0 + mov r2, #0x14 + add r3, r5, #0 + bl MOD83_02235E04 + b _02236D90 +_02236D06: + add r0, r4, #0 + bl MOD83_022362B8 + mov r0, #0xc + str r0, [r5] + b _02236D90 +_02236D12: + add r0, r4, #0 + bl MOD83_02234CE8 + add r6, r0, #0 + cmp r6, #0xa + beq _02236D90 + ldr r0, _02236DBC ; =0x0000E898 + ldr r0, [r4, r0] + bl FUN_0200DBFC + ldr r0, _02236DC0 ; =0x0000061B + bl FUN_020054C8 + cmp r6, #0xb + bne _02236D34 + mov r1, #0x1d + b _02236D36 +_02236D34: + mov r1, #0x24 +_02236D36: + mov r0, #0x46 + lsl r0, r0, #4 + str r1, [r4, r0] + ldr r1, _02236DC4 ; =0x0000042C + add r0, r4, #0 + add r1, r4, r1 + mov r2, #0 + bl MOD83_02234F2C + mov r0, #0x16 + str r0, [r5] + mov r0, #4 + bl FUN_020166B8 + b _02236D90 +_02236D54: + ldr r0, _02236DC8 ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + bne _02236D64 + ldr r0, _02236DCC ; =0x021C48B8 + ldr r0, [r0, #0x48] + cmp r0, #0 + beq _02236D90 +_02236D64: + add r0, r4, #0 + mov r1, #0 + mov r2, #0x18 + add r3, r5, #0 + bl MOD83_02235E34 + ldr r0, _02236DA4 ; =0x000005DC + bl FUN_020054C8 + b _02236D90 +_02236D78: + bl FUN_0200E308 + cmp r0, #0 + beq _02236D90 + ldr r0, [r4, #0x24] + str r0, [r5] + b _02236D90 +_02236D86: + add r0, r4, #0 + bl MOD83_02236330 + mov r0, #1 + pop {r4, r5, r6, pc} +_02236D90: + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _02236D9A + bl FUN_0201FDEC +_02236D9A: + mov r0, #0 + pop {r4, r5, r6, pc} + nop +_02236DA0: .word 0x0000E884 +_02236DA4: .word 0x000005DC +_02236DA8: .word 0x00000498 +_02236DAC: .word 0x0000E888 +_02236DB0: .word 0x0000E88C +_02236DB4: .word 0x0223B288 +_02236DB8: .word 0x0000E890 +_02236DBC: .word 0x0000E898 +_02236DC0: .word 0x0000061B +_02236DC4: .word 0x0000042C +_02236DC8: .word 0x021C48F8 +_02236DCC: .word 0x021C48B8 + thumb_func_end MOD83_02236804 + + thumb_func_start MOD83_02236DD0 +MOD83_02236DD0: ; 0x02236DD0 + push {r4, lr} + add r4, r0, #0 + bl FUN_02006278 + ldr r0, [r0, #0x20] + bl FUN_02016A18 + ldr r0, _02236DFC ; =SDK_OVERLAY_MODULE_63_ID + ldr r1, _02236E00 ; =0x021DBAB8 + bl FUN_02000E7C + add r0, r4, #0 + bl FUN_0200627C + mov r0, #0x4e + bl FUN_020168D0 + mov r0, #0 + bl MOD83_02239450 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_02236DFC: .word SDK_OVERLAY_MODULE_63_ID +_02236E00: .word 0x021DBAB8 + thumb_func_end MOD83_02236DD0 + + thumb_func_start MOD83_02236E04 +MOD83_02236E04: ; 0x02236E04 + push {r3, lr} + mov r0, #1 + bl CTRDG_IdentifyAgbBackup + cmp r0, #0 + bne _02236E14 + mov r0, #1 + pop {r3, pc} +_02236E14: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD83_02236E04 + + thumb_func_start MOD83_02236E18 +MOD83_02236E18: ; 0x02236E18 + push {r3, lr} + ldr r1, _02236E74 ; =0x0223BB18 + str r0, [r1, #8] + ldr r0, _02236E78 ; =0x0223B41C + ldr r0, [r0] + cmp r0, #0 + beq _02236E2A + mov r0, #0xc + pop {r3, pc} +_02236E2A: + ldr r0, _02236E7C ; =0x0223A5C4 + mov r1, #0x1e + bl MOD83_02236EB4 + cmp r0, #0 + bne _02236E72 + ldr r0, _02236E78 ; =0x0223B41C + ldr r0, [r0] + ldrb r0, [r0, #4] + cmp r0, #0 + bne _02236E5A + mov r0, #0x89 + ldr r1, _02236E80 ; =0x0223BB98 + lsl r0, r0, #4 + str r0, [r1, #0x20] + mov r0, #0xeb + lsl r0, r0, #6 + str r0, [r1, #0x24] + ldr r2, _02236E84 ; =0x00001220 + ldr r0, _02236E74 ; =0x0223BB18 + str r2, [r0, #0x68] + mov r0, #9 + str r0, [r1, #0x30] + b _02236E64 +_02236E5A: + ldr r0, _02236E88 ; =0x08000100 + ldr r1, _02236E8C ; =0x0223BB30 + mov r2, #0xfc + bl CTRDG_CpuCopy32 +_02236E64: + bl MOD83_02236E04 + cmp r0, #0 + bne _02236E70 + mov r0, #3 + pop {r3, pc} +_02236E70: + mov r0, #0 +_02236E72: + pop {r3, pc} + .align 2, 0 +_02236E74: .word 0x0223BB18 +_02236E78: .word 0x0223B41C +_02236E7C: .word 0x0223A5C4 +_02236E80: .word 0x0223BB98 +_02236E84: .word 0x00001220 +_02236E88: .word 0x08000100 +_02236E8C: .word 0x0223BB30 + thumb_func_end MOD83_02236E18 + + thumb_func_start MOD83_02236E90 +MOD83_02236E90: ; 0x02236E90 + ldr r0, _02236E98 ; =0x0223B41C + mov r1, #0 + str r1, [r0] + bx lr + .align 2, 0 +_02236E98: .word 0x0223B41C + thumb_func_end MOD83_02236E90 + + thumb_func_start MOD83_02236E9C +MOD83_02236E9C: ; 0x02236E9C + ldr r0, _02236EA4 ; =0x0223B41C + ldr r0, [r0] + ldrb r0, [r0, #5] + bx lr + .align 2, 0 +_02236EA4: .word 0x0223B41C + thumb_func_end MOD83_02236E9C + + thumb_func_start MOD83_02236EA8 +MOD83_02236EA8: ; 0x02236EA8 + ldr r0, _02236EB0 ; =0x0223B41C + ldr r0, [r0] + ldrh r0, [r0, #6] + bx lr + .align 2, 0 +_02236EB0: .word 0x0223B41C + thumb_func_end MOD83_02236EA8 + + thumb_func_start MOD83_02236EB4 +MOD83_02236EB4: ; 0x02236EB4 + push {r3, r4, r5, lr} + sub sp, #0xc0 + add r5, r0, #0 + add r4, r1, #0 + ldr r0, _02236F60 ; =0x0223B41C + mov r1, #0 + str r1, [r0] + bl CTRDG_IsAgbCartridge + cmp r0, #0 + bne _02236ED0 + add sp, #0xc0 + mov r0, #1 + pop {r3, r4, r5, pc} +_02236ED0: + bl CTRDG_GetAgbGameCode + mov r2, #0 + cmp r4, #0 + ble _02236EF4 + add r3, r5, #0 +_02236EDC: + ldr r1, [r3] + cmp r0, r1 + bne _02236EEC + lsl r0, r2, #3 + add r1, r5, r0 + ldr r0, _02236F60 ; =0x0223B41C + str r1, [r0] + b _02236EF4 +_02236EEC: + add r2, r2, #1 + add r3, #8 + cmp r2, r4 + blt _02236EDC +_02236EF4: + ldr r0, _02236F60 ; =0x0223B41C + ldr r0, [r0] + cmp r0, #0 + bne _02236F02 + add sp, #0xc0 + mov r0, #2 + pop {r3, r4, r5, pc} +_02236F02: + mov r0, #1 + bl CTRDG_Enable + add r4, sp, #0 + mov r0, #2 + lsl r0, r0, #0x1a + add r1, r4, #0 + mov r2, #0xc0 + bl CTRDG_CpuCopy32 + ldr r3, _02236F64 ; =0x0223B424 + mov r2, #0 +_02236F1A: + add r0, r4, r2 + ldrb r1, [r3] + ldrb r0, [r0, #4] + cmp r1, r0 + beq _02236F2A + add sp, #0xc0 + mov r0, #4 + pop {r3, r4, r5, pc} +_02236F2A: + add r2, r2, #1 + add r3, r3, #1 + cmp r2, #0x9c + blo _02236F1A + mov r2, #0 + mov r1, #0xa0 +_02236F36: + ldrb r0, [r4, r1] + add r1, r1, #1 + add r0, r2, r0 + lsl r0, r0, #0x18 + lsr r2, r0, #0x18 + cmp r1, #0xbc + ble _02236F36 + add r2, #0x19 + neg r0, r2 + lsl r0, r0, #0x18 + add r4, #0xbd + lsr r1, r0, #0x18 + ldrb r0, [r4] + cmp r0, r1 + beq _02236F5A + add sp, #0xc0 + mov r0, #4 + pop {r3, r4, r5, pc} +_02236F5A: + mov r0, #0 + add sp, #0xc0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02236F60: .word 0x0223B41C +_02236F64: .word 0x0223B424 + thumb_func_end MOD83_02236EB4 + + thumb_func_start MOD83_02236F68 +MOD83_02236F68: ; 0x02236F68 + push {r3, r4} + mov r2, #0 + lsr r4, r1, #2 + add r3, r2, #0 + cmp r4, #0 + ble _02236F84 +_02236F74: + ldr r1, [r0] + add r0, r0, #4 + add r2, r2, r1 + add r1, r3, #1 + lsl r1, r1, #0x10 + lsr r3, r1, #0x10 + cmp r3, r4 + blt _02236F74 +_02236F84: + lsr r0, r2, #0x10 + lsl r0, r0, #0x10 + lsr r1, r0, #0x10 + lsl r0, r2, #0x10 + lsr r0, r0, #0x10 + add r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + pop {r3, r4} + bx lr + thumb_func_end MOD83_02236F68 + + thumb_func_start MOD83_02236F98 +MOD83_02236F98: ; 0x02236F98 + push {r3, lr} + lsl r0, r0, #0x10 + mov r3, #1 + add r2, r1, #0 + lsr r0, r0, #0x10 + mov r1, #0 + lsl r3, r3, #0xc + bl CTRDG_ReadAgbFlash + pop {r3, pc} + thumb_func_end MOD83_02236F98 + + thumb_func_start MOD83_02236FAC +MOD83_02236FAC: ; 0x02236FAC + cmp r0, #0 + bne _02236FBA + ldr r0, _02236FE0 ; =0x0223BB98 + ldr r0, [r0, #0x20] + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr +_02236FBA: + cmp r0, #4 + bne _02236FCE + ldr r0, _02236FE0 ; =0x0223BB98 + ldr r1, [r0, #0x24] + mov r0, #0xba + lsl r0, r0, #6 + sub r0, r1, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bx lr +_02236FCE: + cmp r0, #0xd + bne _02236FD8 + mov r0, #0x7d + lsl r0, r0, #4 + bx lr +_02236FD8: + mov r0, #0x3e + lsl r0, r0, #6 + bx lr + nop +_02236FE0: .word 0x0223BB98 + thumb_func_end MOD83_02236FAC + + thumb_func_start MOD83_02236FE4 +MOD83_02236FE4: ; 0x02236FE4 + cmp r0, #0 + bne _02236FF4 + ldr r0, _02237034 ; =0x0223BB18 + ldr r1, [r0, #8] + mov r0, #1 + lsl r0, r0, #0xc + add r0, r1, r0 + bx lr +_02236FF4: + cmp r0, #1 + blt _02237012 + cmp r0, #4 + bgt _02237012 + ldr r1, _02237034 ; =0x0223BB18 + ldr r2, [r1, #8] + mov r1, #2 + lsl r1, r1, #0xc + add r2, r2, r1 + sub r1, r0, #1 + mov r0, #0x3e + lsl r0, r0, #6 + mul r0, r1 + add r0, r2, r0 + bx lr +_02237012: + cmp r0, #5 + blt _02237030 + cmp r0, #0xe + bge _02237030 + ldr r1, _02237034 ; =0x0223BB18 + ldr r2, [r1, #8] + mov r1, #6 + lsl r1, r1, #0xc + add r2, r2, r1 + sub r1, r0, #5 + mov r0, #0x3e + lsl r0, r0, #6 + mul r0, r1 + add r0, r2, r0 + bx lr +_02237030: + mov r0, #0 + bx lr + .align 2, 0 +_02237034: .word 0x0223BB18 + thumb_func_end MOD83_02236FE4 + + thumb_func_start MOD83_02237038 +MOD83_02237038: ; 0x02237038 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + mov r6, #0 + add r5, r1, #0 + str r6, [sp, #4] + add r1, r2, #0 + str r6, [r1] + ldr r1, _022370CC ; =0x0223BB18 + add r7, r0, #0 + str r6, [r1, #4] + mov r1, #0xe + str r2, [sp] + add r4, r6, #0 + mul r7, r1 +_02237054: + add r0, r4, #0 + mov r1, #0xe + bl _s32_div_f + add r0, r1, r7 + add r1, r5, #0 + bl MOD83_02236F98 + mov r1, #1 + add r0, r5, #0 + lsl r1, r1, #0xc + bl DC_FlushRange + ldr r0, _022370D0 ; =0x00000FF8 + ldr r1, [r5, r0] + ldr r0, _022370D4 ; =0x08012025 + cmp r1, r0 + bne _022370A6 + mov r0, #1 + str r0, [sp, #4] + ldr r0, _022370D8 ; =0x00000FF4 + ldrh r0, [r5, r0] + bl MOD83_02236FAC + add r1, r0, #0 + add r0, r5, #0 + bl MOD83_02236F68 + ldr r1, _022370DC ; =0x00000FF6 + ldrh r1, [r5, r1] + cmp r1, r0 + bne _022370A6 + ldr r0, _022370E0 ; =0x00000FFC + ldr r1, [r5, r0] + ldr r0, [sp] + str r1, [r0] + ldr r0, _022370D8 ; =0x00000FF4 + ldrh r1, [r5, r0] + mov r0, #1 + lsl r0, r1 + orr r6, r0 +_022370A6: + add r4, r4, #1 + cmp r4, #0xe + blt _02237054 + ldr r0, [sp, #4] + cmp r0, #0 + beq _022370C4 + ldr r0, _022370E4 ; =0x00003FFF + cmp r6, r0 + bne _022370BE + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_022370BE: + add sp, #8 + mov r0, #0xff + pop {r3, r4, r5, r6, r7, pc} +_022370C4: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_022370CC: .word 0x0223BB18 +_022370D0: .word 0x00000FF8 +_022370D4: .word 0x08012025 +_022370D8: .word 0x00000FF4 +_022370DC: .word 0x00000FF6 +_022370E0: .word 0x00000FFC +_022370E4: .word 0x00003FFF + thumb_func_end MOD83_02237038 + + thumb_func_start MOD83_022370E8 +MOD83_022370E8: ; 0x022370E8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r7, r0, #0 + add r5, r1, #0 + add r4, r2, #0 + mov r0, #0 + add r1, r7, #0 + add r2, sp, #4 + bl MOD83_02237038 + add r6, r0, #0 + mov r0, #1 + add r1, r7, #0 + add r2, sp, #0 + bl MOD83_02237038 + cmp r6, #1 + bne _02237160 + cmp r0, #1 + bne _02237160 + mov r1, #0 + ldr r0, [sp, #4] + mvn r1, r1 + cmp r0, r1 + bne _02237120 + ldr r3, [sp] + cmp r3, #0 + beq _0223712E +_02237120: + cmp r0, #0 + bne _02237146 + mov r1, #0 + ldr r3, [sp] + mvn r1, r1 + cmp r3, r1 + bne _02237146 +_0223712E: + add r2, r0, #1 + add r1, r3, #1 + cmp r2, r1 + bhs _0223713E + str r3, [r4] + mov r0, #1 + str r0, [r5] + b _0223715A +_0223713E: + str r0, [r4] + mov r0, #0 + str r0, [r5] + b _0223715A +_02237146: + ldr r1, [sp] + cmp r0, r1 + bhs _02237154 + str r1, [r4] + mov r0, #1 + str r0, [r5] + b _0223715A +_02237154: + str r0, [r4] + mov r0, #0 + str r0, [r5] +_0223715A: + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02237160: + cmp r6, #1 + bne _02237184 + cmp r0, #1 + beq _02237184 + ldr r1, [sp, #4] + cmp r0, #0xff + str r1, [r4] + bne _0223717A + mov r0, #0 + str r0, [r5] + add sp, #8 + mov r0, #0xff + pop {r3, r4, r5, r6, r7, pc} +_0223717A: + mov r0, #0 + str r0, [r5] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02237184: + cmp r0, #1 + bne _022371A6 + cmp r6, #1 + beq _022371A6 + ldr r0, [sp] + cmp r6, #0xff + str r0, [r4] + bne _0223719E + mov r0, #1 + str r0, [r5] + add sp, #8 + mov r0, #0xff + pop {r3, r4, r5, r6, r7, pc} +_0223719E: + mov r0, #1 + add sp, #8 + str r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_022371A6: + cmp r6, #0 + bne _022371B8 + cmp r0, #0 + bne _022371B8 + mov r0, #0 + str r0, [r4] + add sp, #8 + str r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_022371B8: + mov r0, #0 + str r0, [r4] + str r0, [r5] + mov r0, #2 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD83_022370E8 + + thumb_func_start MOD83_022371C4 +MOD83_022371C4: ; 0x022371C4 + push {r3, r4, r5, r6, r7, lr} + ldr r0, _02237278 ; =0x0223BB18 + ldr r1, _0223727C ; =0x0223BB18 + ldr r0, [r0, #8] + ldr r2, _02237280 ; =0x0223BB28 + bl MOD83_022370E8 + cmp r0, #1 + beq _022371EE + cmp r0, #0 + beq _022371E6 + cmp r0, #2 + beq _022371EA + cmp r0, #0xff + bne _022371EE + mov r0, #5 + pop {r3, r4, r5, r6, r7, pc} +_022371E6: + mov r0, #7 + pop {r3, r4, r5, r6, r7, pc} +_022371EA: + mov r0, #6 + pop {r3, r4, r5, r6, r7, pc} +_022371EE: + ldr r7, _02237278 ; =0x0223BB18 + ldr r0, [r7] + cmp r0, #1 + bhi _02237272 + mov r6, #0 + ldr r5, [r7, #8] + add r4, r6, #0 +_022371FC: + ldr r1, [r7] + mov r0, #0xe + mul r0, r1 + add r0, r4, r0 + add r1, r5, #0 + bl MOD83_02236F98 + ldr r0, _02237284 ; =0x00000FF8 + ldr r1, [r5, r0] + ldr r0, _02237288 ; =0x08012025 + cmp r1, r0 + bne _0223725E + ldr r0, _0223728C ; =0x00000FF4 + ldrh r0, [r5, r0] + bl MOD83_02236FAC + add r1, r0, #0 + add r0, r5, #0 + bl MOD83_02236F68 + ldr r1, _02237290 ; =0x00000FF6 + ldrh r1, [r5, r1] + cmp r1, r0 + bne _0223725E + ldr r0, _02237294 ; =0x00000FFC + mov r1, #1 + ldr r0, [r5, r0] + str r0, [r7, #0x10] + ldr r0, _0223728C ; =0x00000FF4 + ldrh r0, [r5, r0] + lsl r1, r0 + orr r6, r1 + bl MOD83_02236FAC + str r0, [sp] + ldr r0, _0223728C ; =0x00000FF4 + ldrh r0, [r5, r0] + bl MOD83_02236FE4 + add r1, r0, #0 + ldr r2, [sp] + add r0, r5, #0 + bl MIi_CpuCopy32 + ldr r0, _0223728C ; =0x00000FF4 + ldrh r0, [r5, r0] + cmp r0, #0 + bne _0223725E + str r4, [r7, #0xc] +_0223725E: + add r4, r4, #1 + cmp r4, #0xe + blt _022371FC + ldr r0, _02237298 ; =0x00003FFF + cmp r6, r0 + bne _0223726E + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0223726E: + mov r0, #4 + pop {r3, r4, r5, r6, r7, pc} +_02237272: + mov r0, #6 + pop {r3, r4, r5, r6, r7, pc} + nop +_02237278: .word 0x0223BB18 +_0223727C: .word 0x0223BB18 +_02237280: .word 0x0223BB28 +_02237284: .word 0x00000FF8 +_02237288: .word 0x08012025 +_0223728C: .word 0x00000FF4 +_02237290: .word 0x00000FF6 +_02237294: .word 0x00000FFC +_02237298: .word 0x00003FFF + thumb_func_end MOD83_022371C4 + + thumb_func_start MOD83_0223729C +MOD83_0223729C: ; 0x0223729C + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _02237318 ; =0x0223BB18 + mov r2, #1 + ldr r4, [r0, #8] + str r2, [r0, #0x14] + mov r0, #0 + add r1, r4, #0 + lsl r2, r2, #0xc + bl MIi_CpuClear32 + add r0, r5, #0 + bl MOD83_02236FAC + add r6, r0, #0 + add r0, r5, #0 + bl MOD83_02236FE4 + add r1, r4, #0 + add r2, r6, #0 + bl MIi_CpuCopy32 + ldr r0, _02237318 ; =0x0223BB18 + ldr r1, [r0, #0x10] + ldr r0, _0223731C ; =0x00000FFC + str r1, [r4, r0] + add r1, r0, #0 + sub r1, #8 + strh r5, [r4, r1] + ldr r1, _02237320 ; =0x08012025 + sub r0, r0, #4 + str r1, [r4, r0] + add r0, r5, #0 + bl MOD83_02236FAC + add r1, r0, #0 + add r0, r4, #0 + bl MOD83_02236F68 + ldr r1, _02237324 ; =0x00000FF6 + strh r0, [r4, r1] + ldr r0, _02237318 ; =0x0223BB18 + mov r1, #0xe + ldr r0, [r0, #0xc] + add r0, r5, r0 + add r0, r0, #1 + bl _s32_div_f + ldr r0, _02237328 ; =0x0223B41C + ldr r3, _0223732C ; =MOD83_02237330 + ldr r2, [r0, #4] + mov r0, #0xe + mul r0, r2 + add r0, r1, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + add r1, r4, #0 + mov r2, #4 + bl CTRDG_WriteAndVerifyAgbFlashAsync + pop {r4, r5, r6, pc} + nop +_02237318: .word 0x0223BB18 +_0223731C: .word 0x00000FFC +_02237320: .word 0x08012025 +_02237324: .word 0x00000FF6 +_02237328: .word 0x0223B41C +_0223732C: .word MOD83_02237330 + thumb_func_end MOD83_0223729C + + thumb_func_start MOD83_02237330 +MOD83_02237330: ; 0x02237330 + ldr r0, [r0, #8] + cmp r0, #0 + bne _0223735C + ldr r1, _02237368 ; =0x0223BB18 + ldr r0, [r1, #4] + add r0, r0, #1 + str r0, [r1, #4] + cmp r0, #0xe + blt _0223734A + mov r0, #0 + str r0, [r1, #4] + str r0, [r1, #0x14] + bx lr +_0223734A: + cmp r0, #0xd + bne _02237356 + mov r0, #2 + str r0, [r1, #0x14] + mov r0, #0 + bx lr +_02237356: + mov r0, #3 + str r0, [r1, #0x14] + b _02237362 +_0223735C: + ldr r0, _02237368 ; =0x0223BB18 + mov r1, #4 + str r1, [r0, #0x14] +_02237362: + mov r0, #0 + bx lr + nop +_02237368: .word 0x0223BB18 + thumb_func_end MOD83_02237330 + + thumb_func_start MOD83_0223736C +MOD83_0223736C: ; 0x0223736C + push {r3, lr} + ldr r1, _022373AC ; =0x0223BB18 + ldr r0, [r1, #4] + cmp r0, #0 + bne _02237392 + ldr r1, [r1] + cmp r1, #1 + bne _02237382 + mov r2, #0 + ldr r1, _022373B0 ; =0x0223B41C + b _02237386 +_02237382: + ldr r1, _022373B0 ; =0x0223B41C + mov r2, #1 +_02237386: + str r2, [r1, #4] + ldr r1, _022373AC ; =0x0223BB18 + ldr r2, [r1, #0x10] + add r2, r2, #1 + str r2, [r1, #0x10] + b _02237396 +_02237392: + mov r0, #0 + pop {r3, pc} +_02237396: + ldr r1, _022373B0 ; =0x0223B41C + ldr r1, [r1, #4] + cmp r1, #0 + bge _022373A2 + mov r0, #0 + pop {r3, pc} +_022373A2: + bl MOD83_0223729C + mov r0, #1 + pop {r3, pc} + nop +_022373AC: .word 0x0223BB18 +_022373B0: .word 0x0223B41C + thumb_func_end MOD83_0223736C + + thumb_func_start MOD83_022373B4 +MOD83_022373B4: ; 0x022373B4 + push {r3, lr} + ldr r1, _022373F0 ; =0x0223BB18 + ldr r0, [r1, #0x14] + cmp r0, #4 + bhi _022373EC + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022373CA: ; jump table + .short _022373EC - _022373CA - 2 ; case 0 + .short _022373E4 - _022373CA - 2 ; case 1 + .short _022373D4 - _022373CA - 2 ; case 2 + .short _022373DE - _022373CA - 2 ; case 3 + .short _022373E8 - _022373CA - 2 ; case 4 +_022373D4: + ldr r0, [r1, #4] + bl MOD83_0223729C + mov r0, #0 + pop {r3, pc} +_022373DE: + ldr r0, [r1, #4] + bl MOD83_0223729C +_022373E4: + mov r0, #0xa + pop {r3, pc} +_022373E8: + mov r0, #8 + pop {r3, pc} +_022373EC: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_022373F0: .word 0x0223BB18 + thumb_func_end MOD83_022373B4 + + thumb_func_start MOD83_022373F4 +MOD83_022373F4: ; 0x022373F4 + ldr r0, _02237428 ; =0x0223BB18 + ldr r0, [r0, #0x14] + cmp r0, #4 + bhi _02237422 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237408: ; jump table + .short _02237422 - _02237408 - 2 ; case 0 + .short _0223741A - _02237408 - 2 ; case 1 + .short _02237412 - _02237408 - 2 ; case 2 + .short _02237416 - _02237408 - 2 ; case 3 + .short _0223741E - _02237408 - 2 ; case 4 +_02237412: + mov r0, #0xb + bx lr +_02237416: + mov r0, #0xa + bx lr +_0223741A: + mov r0, #9 + bx lr +_0223741E: + mov r0, #8 + bx lr +_02237422: + mov r0, #0 + bx lr + nop +_02237428: .word 0x0223BB18 + thumb_func_end MOD83_022373F4 + + thumb_func_start MOD83_0223742C +MOD83_0223742C: ; 0x0223742C + ldr r0, _02237438 ; =0x0223BB18 + ldr r1, [r0, #8] + mov r0, #6 + lsl r0, r0, #0xc + add r0, r1, r0 + bx lr + .align 2, 0 +_02237438: .word 0x0223BB18 + thumb_func_end MOD83_0223742C + + thumb_func_start MOD83_0223743C +MOD83_0223743C: ; 0x0223743C + ldr r3, _02237444 ; =MOD83_02236FE4 + mov r0, #0 + bx r3 + nop +_02237444: .word MOD83_02236FE4 + thumb_func_end MOD83_0223743C + + thumb_func_start MOD83_02237448 +MOD83_02237448: ; 0x02237448 + push {r3, lr} + bl MOD83_0223743C + ldrb r2, [r0, #0xb] + ldrb r1, [r0, #0xa] + lsl r3, r2, #8 + ldrb r2, [r0, #0xd] + ldrb r0, [r0, #0xc] + lsl r2, r2, #0x18 + lsl r0, r0, #0x10 + orr r0, r2 + orr r0, r3 + orr r0, r1 + pop {r3, pc} + thumb_func_end MOD83_02237448 + + thumb_func_start MOD83_02237464 +MOD83_02237464: ; 0x02237464 + ldr r3, _02237468 ; =MOD83_0223743C + bx r3 + .align 2, 0 +_02237468: .word MOD83_0223743C + thumb_func_end MOD83_02237464 + + thumb_func_start MOD83_0223746C +MOD83_0223746C: ; 0x0223746C + push {r4, r5, r6, lr} + add r4, r0, #0 + add r0, r1, #0 + mov r1, #0x18 + add r5, r2, #0 + mov r6, #0 + bl _u32_div_f + cmp r1, #0x17 + bhi _022374C2 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223748C: ; jump table + .short _022374BC - _0223748C - 2 ; case 0 + .short _022374EE - _0223748C - 2 ; case 1 + .short _0223751E - _0223748C - 2 ; case 2 + .short _0223754E - _0223748C - 2 ; case 3 + .short _0223757E - _0223748C - 2 ; case 4 + .short _022375AE - _0223748C - 2 ; case 5 + .short _022375DE - _0223748C - 2 ; case 6 + .short _02237610 - _0223748C - 2 ; case 7 + .short _02237640 - _0223748C - 2 ; case 8 + .short _02237670 - _0223748C - 2 ; case 9 + .short _022376A0 - _0223748C - 2 ; case 10 + .short _022376D0 - _0223748C - 2 ; case 11 + .short _02237700 - _0223748C - 2 ; case 12 + .short _02237732 - _0223748C - 2 ; case 13 + .short _02237762 - _0223748C - 2 ; case 14 + .short _02237792 - _0223748C - 2 ; case 15 + .short _022377C2 - _0223748C - 2 ; case 16 + .short _022377F2 - _0223748C - 2 ; case 17 + .short _02237822 - _0223748C - 2 ; case 18 + .short _02237854 - _0223748C - 2 ; case 19 + .short _02237884 - _0223748C - 2 ; case 20 + .short _022378B4 - _0223748C - 2 ; case 21 + .short _022378E4 - _0223748C - 2 ; case 22 + .short _02237914 - _0223748C - 2 ; case 23 +_022374BC: + add r4, #0x20 + cmp r5, #3 + bls _022374C4 +_022374C2: + b _02237942 +_022374C4: + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022374D0: ; jump table + .short _022374D8 - _022374D0 - 2 ; case 0 + .short _022374DC - _022374D0 - 2 ; case 1 + .short _022374E2 - _022374D0 - 2 ; case 2 + .short _022374E8 - _022374D0 - 2 ; case 3 +_022374D8: + add r6, r4, #0 + b _02237942 +_022374DC: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_022374E2: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_022374E8: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_022374EE: + add r4, #0x20 + cmp r5, #3 + bhi _022375E4 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237500: ; jump table + .short _02237508 - _02237500 - 2 ; case 0 + .short _0223750C - _02237500 - 2 ; case 1 + .short _02237512 - _02237500 - 2 ; case 2 + .short _02237518 - _02237500 - 2 ; case 3 +_02237508: + add r6, r4, #0 + b _02237942 +_0223750C: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237512: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_02237518: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_0223751E: + add r4, #0x20 + cmp r5, #3 + bhi _022375E4 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237530: ; jump table + .short _02237538 - _02237530 - 2 ; case 0 + .short _0223753C - _02237530 - 2 ; case 1 + .short _02237542 - _02237530 - 2 ; case 2 + .short _02237548 - _02237530 - 2 ; case 3 +_02237538: + add r6, r4, #0 + b _02237942 +_0223753C: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_02237542: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237548: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_0223754E: + add r4, #0x20 + cmp r5, #3 + bhi _022375E4 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237560: ; jump table + .short _02237568 - _02237560 - 2 ; case 0 + .short _0223756C - _02237560 - 2 ; case 1 + .short _02237572 - _02237560 - 2 ; case 2 + .short _02237578 - _02237560 - 2 ; case 3 +_02237568: + add r6, r4, #0 + b _02237942 +_0223756C: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_02237572: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237578: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_0223757E: + add r4, #0x20 + cmp r5, #3 + bhi _022375E4 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237590: ; jump table + .short _02237598 - _02237590 - 2 ; case 0 + .short _0223759C - _02237590 - 2 ; case 1 + .short _022375A2 - _02237590 - 2 ; case 2 + .short _022375A8 - _02237590 - 2 ; case 3 +_02237598: + add r6, r4, #0 + b _02237942 +_0223759C: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_022375A2: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_022375A8: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_022375AE: + add r4, #0x20 + cmp r5, #3 + bhi _022375E4 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022375C0: ; jump table + .short _022375C8 - _022375C0 - 2 ; case 0 + .short _022375CC - _022375C0 - 2 ; case 1 + .short _022375D2 - _022375C0 - 2 ; case 2 + .short _022375D8 - _022375C0 - 2 ; case 3 +_022375C8: + add r6, r4, #0 + b _02237942 +_022375CC: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_022375D2: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_022375D8: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_022375DE: + add r4, #0x20 + cmp r5, #3 + bls _022375E6 +_022375E4: + b _02237942 +_022375E6: + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022375F2: ; jump table + .short _022375FA - _022375F2 - 2 ; case 0 + .short _02237600 - _022375F2 - 2 ; case 1 + .short _02237604 - _022375F2 - 2 ; case 2 + .short _0223760A - _022375F2 - 2 ; case 3 +_022375FA: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237600: + add r6, r4, #0 + b _02237942 +_02237604: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_0223760A: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_02237610: + add r4, #0x20 + cmp r5, #3 + bhi _02237706 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237622: ; jump table + .short _0223762A - _02237622 - 2 ; case 0 + .short _02237630 - _02237622 - 2 ; case 1 + .short _02237634 - _02237622 - 2 ; case 2 + .short _0223763A - _02237622 - 2 ; case 3 +_0223762A: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237630: + add r6, r4, #0 + b _02237942 +_02237634: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_0223763A: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_02237640: + add r4, #0x20 + cmp r5, #3 + bhi _02237706 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237652: ; jump table + .short _0223765A - _02237652 - 2 ; case 0 + .short _02237660 - _02237652 - 2 ; case 1 + .short _02237664 - _02237652 - 2 ; case 2 + .short _0223766A - _02237652 - 2 ; case 3 +_0223765A: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_02237660: + add r6, r4, #0 + b _02237942 +_02237664: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_0223766A: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_02237670: + add r4, #0x20 + cmp r5, #3 + bhi _02237706 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237682: ; jump table + .short _0223768A - _02237682 - 2 ; case 0 + .short _02237690 - _02237682 - 2 ; case 1 + .short _02237694 - _02237682 - 2 ; case 2 + .short _0223769A - _02237682 - 2 ; case 3 +_0223768A: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_02237690: + add r6, r4, #0 + b _02237942 +_02237694: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_0223769A: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_022376A0: + add r4, #0x20 + cmp r5, #3 + bhi _02237706 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022376B2: ; jump table + .short _022376BA - _022376B2 - 2 ; case 0 + .short _022376C0 - _022376B2 - 2 ; case 1 + .short _022376C4 - _022376B2 - 2 ; case 2 + .short _022376CA - _022376B2 - 2 ; case 3 +_022376BA: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_022376C0: + add r6, r4, #0 + b _02237942 +_022376C4: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_022376CA: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_022376D0: + add r4, #0x20 + cmp r5, #3 + bhi _02237706 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022376E2: ; jump table + .short _022376EA - _022376E2 - 2 ; case 0 + .short _022376F0 - _022376E2 - 2 ; case 1 + .short _022376F4 - _022376E2 - 2 ; case 2 + .short _022376FA - _022376E2 - 2 ; case 3 +_022376EA: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_022376F0: + add r6, r4, #0 + b _02237942 +_022376F4: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_022376FA: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237700: + add r4, #0x20 + cmp r5, #3 + bls _02237708 +_02237706: + b _02237942 +_02237708: + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237714: ; jump table + .short _0223771C - _02237714 - 2 ; case 0 + .short _02237722 - _02237714 - 2 ; case 1 + .short _02237728 - _02237714 - 2 ; case 2 + .short _0223772C - _02237714 - 2 ; case 3 +_0223771C: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237722: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_02237728: + add r6, r4, #0 + b _02237942 +_0223772C: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_02237732: + add r4, #0x20 + cmp r5, #3 + bhi _02237828 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237744: ; jump table + .short _0223774C - _02237744 - 2 ; case 0 + .short _02237752 - _02237744 - 2 ; case 1 + .short _02237758 - _02237744 - 2 ; case 2 + .short _0223775C - _02237744 - 2 ; case 3 +_0223774C: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237752: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_02237758: + add r6, r4, #0 + b _02237942 +_0223775C: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_02237762: + add r4, #0x20 + cmp r5, #3 + bhi _02237828 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237774: ; jump table + .short _0223777C - _02237774 - 2 ; case 0 + .short _02237782 - _02237774 - 2 ; case 1 + .short _02237788 - _02237774 - 2 ; case 2 + .short _0223778C - _02237774 - 2 ; case 3 +_0223777C: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_02237782: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237788: + add r6, r4, #0 + b _02237942 +_0223778C: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_02237792: + add r4, #0x20 + cmp r5, #3 + bhi _02237828 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022377A4: ; jump table + .short _022377AC - _022377A4 - 2 ; case 0 + .short _022377B2 - _022377A4 - 2 ; case 1 + .short _022377B8 - _022377A4 - 2 ; case 2 + .short _022377BC - _022377A4 - 2 ; case 3 +_022377AC: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_022377B2: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_022377B8: + add r6, r4, #0 + b _02237942 +_022377BC: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_022377C2: + add r4, #0x20 + cmp r5, #3 + bhi _02237828 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022377D4: ; jump table + .short _022377DC - _022377D4 - 2 ; case 0 + .short _022377E2 - _022377D4 - 2 ; case 1 + .short _022377E8 - _022377D4 - 2 ; case 2 + .short _022377EC - _022377D4 - 2 ; case 3 +_022377DC: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_022377E2: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_022377E8: + add r6, r4, #0 + b _02237942 +_022377EC: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_022377F2: + add r4, #0x20 + cmp r5, #3 + bhi _02237828 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237804: ; jump table + .short _0223780C - _02237804 - 2 ; case 0 + .short _02237812 - _02237804 - 2 ; case 1 + .short _02237818 - _02237804 - 2 ; case 2 + .short _0223781C - _02237804 - 2 ; case 3 +_0223780C: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_02237812: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_02237818: + add r6, r4, #0 + b _02237942 +_0223781C: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237822: + add r4, #0x20 + cmp r5, #3 + bls _0223782A +_02237828: + b _02237942 +_0223782A: + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237836: ; jump table + .short _0223783E - _02237836 - 2 ; case 0 + .short _02237844 - _02237836 - 2 ; case 1 + .short _0223784A - _02237836 - 2 ; case 2 + .short _02237850 - _02237836 - 2 ; case 3 +_0223783E: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237844: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_0223784A: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_02237850: + add r6, r4, #0 + b _02237942 +_02237854: + add r4, #0x20 + cmp r5, #3 + bhi _02237942 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237866: ; jump table + .short _0223786E - _02237866 - 2 ; case 0 + .short _02237874 - _02237866 - 2 ; case 1 + .short _0223787A - _02237866 - 2 ; case 2 + .short _02237880 - _02237866 - 2 ; case 3 +_0223786E: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237874: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_0223787A: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_02237880: + add r6, r4, #0 + b _02237942 +_02237884: + add r4, #0x20 + cmp r5, #3 + bhi _02237942 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237896: ; jump table + .short _0223789E - _02237896 - 2 ; case 0 + .short _022378A4 - _02237896 - 2 ; case 1 + .short _022378AA - _02237896 - 2 ; case 2 + .short _022378B0 - _02237896 - 2 ; case 3 +_0223789E: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_022378A4: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_022378AA: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_022378B0: + add r6, r4, #0 + b _02237942 +_022378B4: + add r4, #0x20 + cmp r5, #3 + bhi _02237942 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022378C6: ; jump table + .short _022378CE - _022378C6 - 2 ; case 0 + .short _022378D4 - _022378C6 - 2 ; case 1 + .short _022378DA - _022378C6 - 2 ; case 2 + .short _022378E0 - _022378C6 - 2 ; case 3 +_022378CE: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_022378D4: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_022378DA: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_022378E0: + add r6, r4, #0 + b _02237942 +_022378E4: + add r4, #0x20 + cmp r5, #3 + bhi _02237942 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022378F6: ; jump table + .short _022378FE - _022378F6 - 2 ; case 0 + .short _02237904 - _022378F6 - 2 ; case 1 + .short _0223790A - _022378F6 - 2 ; case 2 + .short _02237910 - _022378F6 - 2 ; case 3 +_022378FE: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_02237904: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_0223790A: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237910: + add r6, r4, #0 + b _02237942 +_02237914: + add r4, #0x20 + cmp r5, #3 + bhi _02237942 + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237926: ; jump table + .short _0223792E - _02237926 - 2 ; case 0 + .short _02237934 - _02237926 - 2 ; case 1 + .short _0223793A - _02237926 - 2 ; case 2 + .short _02237940 - _02237926 - 2 ; case 3 +_0223792E: + add r6, r4, #0 + add r6, #0x24 + b _02237942 +_02237934: + add r6, r4, #0 + add r6, #0x18 + b _02237942 +_0223793A: + add r6, r4, #0 + add r6, #0xc + b _02237942 +_02237940: + add r6, r4, #0 +_02237942: + add r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD83_0223746C + + thumb_func_start MOD83_02237948 +MOD83_02237948: ; 0x02237948 + push {r3, r4} + add r4, r0, #0 + mov r3, #0 + add r4, #0x20 +_02237950: + ldr r2, [r4] + ldr r1, [r0, #4] + add r3, r3, #1 + eor r2, r1 + str r2, [r4] + ldr r1, [r0] + eor r1, r2 + stmia r4!, {r1} + cmp r3, #0xc + blo _02237950 + pop {r3, r4} + bx lr + thumb_func_end MOD83_02237948 + + thumb_func_start MOD83_02237968 +MOD83_02237968: ; 0x02237968 + push {r3, r4} + add r4, r0, #0 + mov r3, #0 + add r4, #0x20 +_02237970: + ldr r2, [r4] + ldr r1, [r0] + add r3, r3, #1 + eor r2, r1 + str r2, [r4] + ldr r1, [r0, #4] + eor r1, r2 + stmia r4!, {r1} + cmp r3, #0xc + blo _02237970 + pop {r3, r4} + bx lr + thumb_func_end MOD83_02237968 + + thumb_func_start MOD83_02237988 +MOD83_02237988: ; 0x02237988 + push {r3, r4, r5, r6, r7, lr} + add r1, r0, #0 + mov r4, #0 + ldr r1, [r1] + str r0, [sp] + add r2, r4, #0 + bl MOD83_0223746C + add r5, r0, #0 + ldr r0, [sp] + mov r2, #1 + add r1, r0, #0 + ldr r1, [r1] + bl MOD83_0223746C + add r6, r0, #0 + ldr r0, [sp] + mov r2, #2 + add r1, r0, #0 + ldr r1, [r1] + bl MOD83_0223746C + add r7, r0, #0 + ldr r0, [sp] + mov r2, #3 + add r1, r0, #0 + ldr r1, [r1] + bl MOD83_0223746C + add r1, r4, #0 +_022379C4: + ldrh r2, [r5] + add r1, r1, #1 + add r5, r5, #2 + add r2, r4, r2 + lsl r2, r2, #0x10 + lsr r4, r2, #0x10 + cmp r1, #6 + blt _022379C4 + mov r2, #0 +_022379D6: + ldrh r1, [r6] + add r2, r2, #1 + add r6, r6, #2 + add r1, r4, r1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + cmp r2, #6 + blt _022379D6 + mov r2, #0 +_022379E8: + ldrh r1, [r7] + add r2, r2, #1 + add r7, r7, #2 + add r1, r4, r1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + cmp r2, #6 + blt _022379E8 + mov r2, #0 +_022379FA: + ldrh r1, [r0] + add r2, r2, #1 + add r0, r0, #2 + add r1, r4, r1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + cmp r2, #6 + blt _022379FA + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD83_02237988 + + thumb_func_start MOD83_02237A10 +MOD83_02237A10: ; 0x02237A10 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + mov r4, #0 + add r5, r0, #0 + str r1, [sp] + add r7, r2, #0 + add r6, r4, #0 + str r4, [sp, #0xc] + str r4, [sp, #8] + str r4, [sp, #4] + cmp r1, #0xa + ble _02237A86 + ldr r1, [r5] + add r2, r4, #0 + bl MOD83_0223746C + str r0, [sp, #0xc] + ldr r1, [r5] + add r0, r5, #0 + mov r2, #1 + bl MOD83_0223746C + str r0, [sp, #8] + ldr r1, [r5] + add r0, r5, #0 + mov r2, #2 + bl MOD83_0223746C + str r0, [sp, #4] + ldr r1, [r5] + add r0, r5, #0 + mov r2, #3 + bl MOD83_0223746C + add r6, r0, #0 + add r0, r5, #0 + bl MOD83_02237948 + add r0, r5, #0 + bl MOD83_02237988 + ldrh r1, [r5, #0x1c] + cmp r0, r1 + beq _02237A86 + ldrb r0, [r5, #0x13] + mov r1, #1 + bic r0, r1 + mov r1, #1 + orr r0, r1 + strb r0, [r5, #0x13] + ldrb r1, [r5, #0x13] + mov r0, #4 + orr r0, r1 + strb r0, [r5, #0x13] + mov r0, #1 + ldr r1, [r6, #4] + lsl r0, r0, #0x1e + orr r0, r1 + str r0, [r6, #4] +_02237A86: + ldr r0, [sp] + cmp r0, #0x50 + bls _02237A8E + b _02237D7C +_02237A8E: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237A9A: ; jump table + .short _02237B3C - _02237A9A - 2 ; case 0 + .short _02237B40 - _02237A9A - 2 ; case 1 + .short _02237B44 - _02237A9A - 2 ; case 2 + .short _02237B64 - _02237A9A - 2 ; case 3 + .short _02237B68 - _02237A9A - 2 ; case 4 + .short _02237B70 - _02237A9A - 2 ; case 5 + .short _02237B78 - _02237A9A - 2 ; case 6 + .short _02237B80 - _02237A9A - 2 ; case 7 + .short _02237B94 - _02237A9A - 2 ; case 8 + .short _02237B98 - _02237A9A - 2 ; case 9 + .short _02237B9C - _02237A9A - 2 ; case 10 + .short _02237BA0 - _02237A9A - 2 ; case 11 + .short _02237BB4 - _02237A9A - 2 ; case 12 + .short _02237BCC - _02237A9A - 2 ; case 13 + .short _02237BCC - _02237A9A - 2 ; case 14 + .short _02237BCC - _02237A9A - 2 ; case 15 + .short _02237BCC - _02237A9A - 2 ; case 16 + .short _02237BD8 - _02237A9A - 2 ; case 17 + .short _02237BD8 - _02237A9A - 2 ; case 18 + .short _02237BD8 - _02237A9A - 2 ; case 19 + .short _02237BD8 - _02237A9A - 2 ; case 20 + .short _02237BC0 - _02237A9A - 2 ; case 21 + .short _02237C08 - _02237A9A - 2 ; case 22 + .short _02237C0E - _02237A9A - 2 ; case 23 + .short _02237C14 - _02237A9A - 2 ; case 24 + .short _02237BBA - _02237A9A - 2 ; case 25 + .short _02237BE4 - _02237A9A - 2 ; case 26 + .short _02237BEA - _02237A9A - 2 ; case 27 + .short _02237BF0 - _02237A9A - 2 ; case 28 + .short _02237BF6 - _02237A9A - 2 ; case 29 + .short _02237BFC - _02237A9A - 2 ; case 30 + .short _02237C02 - _02237A9A - 2 ; case 31 + .short _02237BC6 - _02237A9A - 2 ; case 32 + .short _02237C1A - _02237A9A - 2 ; case 33 + .short _02237C2C - _02237A9A - 2 ; case 34 + .short _02237C34 - _02237A9A - 2 ; case 35 + .short _02237C3C - _02237A9A - 2 ; case 36 + .short _02237C44 - _02237A9A - 2 ; case 37 + .short _02237C4C - _02237A9A - 2 ; case 38 + .short _02237C5A - _02237A9A - 2 ; case 39 + .short _02237C62 - _02237A9A - 2 ; case 40 + .short _02237C6A - _02237A9A - 2 ; case 41 + .short _02237C72 - _02237A9A - 2 ; case 42 + .short _02237C7A - _02237A9A - 2 ; case 43 + .short _02237C82 - _02237A9A - 2 ; case 44 + .short _02237C8A - _02237A9A - 2 ; case 45 + .short _02237C92 - _02237A9A - 2 ; case 46 + .short _02237C20 - _02237A9A - 2 ; case 47 + .short _02237C26 - _02237A9A - 2 ; case 48 + .short _02237C54 - _02237A9A - 2 ; case 49 + .short _02237C98 - _02237A9A - 2 ; case 50 + .short _02237CA0 - _02237A9A - 2 ; case 51 + .short _02237CA8 - _02237A9A - 2 ; case 52 + .short _02237CB0 - _02237A9A - 2 ; case 53 + .short _02237CB8 - _02237A9A - 2 ; case 54 + .short _02237D7C - _02237A9A - 2 ; case 55 + .short _02237D7C - _02237A9A - 2 ; case 56 + .short _02237D7C - _02237A9A - 2 ; case 57 + .short _02237D7C - _02237A9A - 2 ; case 58 + .short _02237D7C - _02237A9A - 2 ; case 59 + .short _02237D7C - _02237A9A - 2 ; case 60 + .short _02237D7C - _02237A9A - 2 ; case 61 + .short _02237D7C - _02237A9A - 2 ; case 62 + .short _02237D7C - _02237A9A - 2 ; case 63 + .short _02237D7C - _02237A9A - 2 ; case 64 + .short _02237D2E - _02237A9A - 2 ; case 65 + .short _02237D4C - _02237A9A - 2 ; case 66 + .short _02237CC0 - _02237A9A - 2 ; case 67 + .short _02237CC8 - _02237A9A - 2 ; case 68 + .short _02237CD0 - _02237A9A - 2 ; case 69 + .short _02237CD8 - _02237A9A - 2 ; case 70 + .short _02237CE0 - _02237A9A - 2 ; case 71 + .short _02237CE8 - _02237A9A - 2 ; case 72 + .short _02237CF0 - _02237A9A - 2 ; case 73 + .short _02237CF8 - _02237A9A - 2 ; case 74 + .short _02237D00 - _02237A9A - 2 ; case 75 + .short _02237D08 - _02237A9A - 2 ; case 76 + .short _02237D10 - _02237A9A - 2 ; case 77 + .short _02237D18 - _02237A9A - 2 ; case 78 + .short _02237D20 - _02237A9A - 2 ; case 79 + .short _02237D28 - _02237A9A - 2 ; case 80 +_02237B3C: + ldr r4, [r5] + b _02237D7C +_02237B40: + ldr r4, [r5, #4] + b _02237D7C +_02237B44: + ldrb r0, [r5, #0x13] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + beq _02237B50 + mov r4, #0 + b _02237B5E +_02237B50: + mov r4, #0 +_02237B52: + add r0, r5, r4 + ldrb r0, [r0, #8] + strb r0, [r7, r4] + add r4, r4, #1 + cmp r4, #0xa + blo _02237B52 +_02237B5E: + mov r0, #0xff + strb r0, [r7, r4] + b _02237D7C +_02237B64: + ldrb r4, [r5, #0x12] + b _02237D7C +_02237B68: + ldrb r0, [r5, #0x13] + lsl r0, r0, #0x1f + lsr r4, r0, #0x1f + b _02237D7C +_02237B70: + ldrb r0, [r5, #0x13] + lsl r0, r0, #0x1e + lsr r4, r0, #0x1f + b _02237D7C +_02237B78: + ldrb r0, [r5, #0x13] + lsl r0, r0, #0x1d + lsr r4, r0, #0x1f + b _02237D7C +_02237B80: + mov r4, #0 +_02237B82: + add r0, r5, r4 + ldrb r0, [r0, #0x14] + strb r0, [r7, r4] + add r4, r4, #1 + cmp r4, #7 + blo _02237B82 + mov r0, #0xff + strb r0, [r7, r4] + b _02237D7C +_02237B94: + ldrb r4, [r5, #0x1b] + b _02237D7C +_02237B98: + ldrh r4, [r5, #0x1c] + b _02237D7C +_02237B9C: + ldrh r4, [r5, #0x1e] + b _02237D7C +_02237BA0: + ldrb r0, [r5, #0x13] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + beq _02237BAE + mov r4, #0x67 + lsl r4, r4, #2 + b _02237D7C +_02237BAE: + ldr r0, [sp, #0xc] + ldrh r4, [r0] + b _02237D7C +_02237BB4: + ldr r0, [sp, #0xc] + ldrh r4, [r0, #2] + b _02237D7C +_02237BBA: + ldr r0, [sp, #0xc] + ldr r4, [r0, #4] + b _02237D7C +_02237BC0: + ldr r0, [sp, #0xc] + ldrb r4, [r0, #8] + b _02237D7C +_02237BC6: + ldr r0, [sp, #0xc] + ldrb r4, [r0, #9] + b _02237D7C +_02237BCC: + ldr r0, [sp] + sub r0, #0xd + lsl r1, r0, #1 + ldr r0, [sp, #8] + ldrh r4, [r0, r1] + b _02237D7C +_02237BD8: + ldr r1, [sp] + ldr r0, [sp, #8] + sub r1, #0x11 + add r0, r0, r1 + ldrb r4, [r0, #8] + b _02237D7C +_02237BE4: + ldr r0, [sp, #4] + ldrb r4, [r0] + b _02237D7C +_02237BEA: + ldr r0, [sp, #4] + ldrb r4, [r0, #1] + b _02237D7C +_02237BF0: + ldr r0, [sp, #4] + ldrb r4, [r0, #2] + b _02237D7C +_02237BF6: + ldr r0, [sp, #4] + ldrb r4, [r0, #3] + b _02237D7C +_02237BFC: + ldr r0, [sp, #4] + ldrb r4, [r0, #4] + b _02237D7C +_02237C02: + ldr r0, [sp, #4] + ldrb r4, [r0, #5] + b _02237D7C +_02237C08: + ldr r0, [sp, #4] + ldrb r4, [r0, #6] + b _02237D7C +_02237C0E: + ldr r0, [sp, #4] + ldrb r4, [r0, #7] + b _02237D7C +_02237C14: + ldr r0, [sp, #4] + ldrb r4, [r0, #8] + b _02237D7C +_02237C1A: + ldr r0, [sp, #4] + ldrb r4, [r0, #9] + b _02237D7C +_02237C20: + ldr r0, [sp, #4] + ldrb r4, [r0, #0xa] + b _02237D7C +_02237C26: + ldr r0, [sp, #4] + ldrb r4, [r0, #0xb] + b _02237D7C +_02237C2C: + ldr r0, [r6] + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + b _02237D7C +_02237C34: + ldr r0, [r6] + lsl r0, r0, #0x10 + lsr r4, r0, #0x18 + b _02237D7C +_02237C3C: + ldr r0, [r6] + lsl r0, r0, #9 + lsr r4, r0, #0x19 + b _02237D7C +_02237C44: + ldr r0, [r6] + lsl r0, r0, #5 + lsr r4, r0, #0x1c + b _02237D7C +_02237C4C: + ldr r0, [r6] + lsl r0, r0, #1 + lsr r4, r0, #0x1c + b _02237D7C +_02237C54: + ldr r0, [r6] + lsr r4, r0, #0x1f + b _02237D7C +_02237C5A: + ldr r0, [r6, #4] + lsl r0, r0, #0x1b + lsr r4, r0, #0x1b + b _02237D7C +_02237C62: + ldr r0, [r6, #4] + lsl r0, r0, #0x16 + lsr r4, r0, #0x1b + b _02237D7C +_02237C6A: + ldr r0, [r6, #4] + lsl r0, r0, #0x11 + lsr r4, r0, #0x1b + b _02237D7C +_02237C72: + ldr r0, [r6, #4] + lsl r0, r0, #0xc + lsr r4, r0, #0x1b + b _02237D7C +_02237C7A: + ldr r0, [r6, #4] + lsl r0, r0, #7 + lsr r4, r0, #0x1b + b _02237D7C +_02237C82: + ldr r0, [r6, #4] + lsl r0, r0, #2 + lsr r4, r0, #0x1b + b _02237D7C +_02237C8A: + ldr r0, [r6, #4] + lsl r0, r0, #1 + lsr r4, r0, #0x1f + b _02237D7C +_02237C92: + ldr r0, [r6, #4] + lsr r4, r0, #0x1f + b _02237D7C +_02237C98: + ldr r0, [r6, #8] + lsl r0, r0, #0x1d + lsr r4, r0, #0x1d + b _02237D7C +_02237CA0: + ldr r0, [r6, #8] + lsl r0, r0, #0x1a + lsr r4, r0, #0x1d + b _02237D7C +_02237CA8: + ldr r0, [r6, #8] + lsl r0, r0, #0x17 + lsr r4, r0, #0x1d + b _02237D7C +_02237CB0: + ldr r0, [r6, #8] + lsl r0, r0, #0x14 + lsr r4, r0, #0x1d + b _02237D7C +_02237CB8: + ldr r0, [r6, #8] + lsl r0, r0, #0x11 + lsr r4, r0, #0x1d + b _02237D7C +_02237CC0: + ldr r0, [r6, #8] + lsl r0, r0, #0x10 + lsr r4, r0, #0x1f + b _02237D7C +_02237CC8: + ldr r0, [r6, #8] + lsl r0, r0, #0xf + lsr r4, r0, #0x1f + b _02237D7C +_02237CD0: + ldr r0, [r6, #8] + lsl r0, r0, #0xe + lsr r4, r0, #0x1f + b _02237D7C +_02237CD8: + ldr r0, [r6, #8] + lsl r0, r0, #0xd + lsr r4, r0, #0x1f + b _02237D7C +_02237CE0: + ldr r0, [r6, #8] + lsl r0, r0, #0xc + lsr r4, r0, #0x1f + b _02237D7C +_02237CE8: + ldr r0, [r6, #8] + lsl r0, r0, #0xb + lsr r4, r0, #0x1f + b _02237D7C +_02237CF0: + ldr r0, [r6, #8] + lsl r0, r0, #0xa + lsr r4, r0, #0x1f + b _02237D7C +_02237CF8: + ldr r0, [r6, #8] + lsl r0, r0, #9 + lsr r4, r0, #0x1f + b _02237D7C +_02237D00: + ldr r0, [r6, #8] + lsl r0, r0, #8 + lsr r4, r0, #0x1f + b _02237D7C +_02237D08: + ldr r0, [r6, #8] + lsl r0, r0, #7 + lsr r4, r0, #0x1f + b _02237D7C +_02237D10: + ldr r0, [r6, #8] + lsl r0, r0, #6 + lsr r4, r0, #0x1f + b _02237D7C +_02237D18: + ldr r0, [r6, #8] + lsl r0, r0, #5 + lsr r4, r0, #0x1f + b _02237D7C +_02237D20: + ldr r0, [r6, #8] + lsl r0, r0, #1 + lsr r4, r0, #0x1c + b _02237D7C +_02237D28: + ldr r0, [r6, #8] + lsr r4, r0, #0x1f + b _02237D7C +_02237D2E: + ldr r0, [sp, #0xc] + ldrh r4, [r0] + cmp r4, #0 + beq _02237D7C + ldr r0, [r6, #4] + lsl r0, r0, #1 + lsr r0, r0, #0x1f + bne _02237D46 + ldrb r0, [r5, #0x13] + lsl r0, r0, #0x1f + lsr r0, r0, #0x1f + beq _02237D7C +_02237D46: + mov r4, #0x67 + lsl r4, r4, #2 + b _02237D7C +_02237D4C: + ldr r4, [r6, #4] + lsl r0, r4, #2 + lsr r0, r0, #0x1b + lsl r6, r0, #0x19 + lsl r0, r4, #7 + lsr r0, r0, #0x1b + lsl r3, r0, #0x14 + lsl r0, r4, #0xc + lsr r0, r0, #0x1b + lsl r2, r0, #0xf + lsl r0, r4, #0x11 + lsr r0, r0, #0x1b + lsl r1, r0, #0xa + lsl r0, r4, #0x1b + lsl r4, r4, #0x16 + lsr r4, r4, #0x1b + lsr r0, r0, #0x1b + lsl r4, r4, #5 + orr r0, r4 + orr r0, r1 + orr r0, r2 + orr r0, r3 + add r4, r6, #0 + orr r4, r0 +_02237D7C: + ldr r0, [sp] + cmp r0, #0xa + ble _02237D88 + add r0, r5, #0 + bl MOD83_02237968 +_02237D88: + add r0, r4, #0 + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD83_02237A10 + + thumb_func_start MOD83_02237D90 +MOD83_02237D90: ; 0x02237D90 + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + add r4, r0, #0 + add r5, r2, #0 + mov r7, #0 + cmp r6, #0xa + ble _02237E04 + ldr r1, [r4] + add r2, r7, #0 + bl MOD83_0223746C + add r7, r0, #0 + ldr r1, [r4] + add r0, r4, #0 + mov r2, #1 + bl MOD83_0223746C + ldr r1, [r4] + add r0, r4, #0 + mov r2, #2 + bl MOD83_0223746C + ldr r1, [r4] + add r0, r4, #0 + mov r2, #3 + bl MOD83_0223746C + str r0, [sp] + add r0, r4, #0 + bl MOD83_02237948 + add r0, r4, #0 + bl MOD83_02237988 + ldrh r1, [r4, #0x1c] + cmp r0, r1 + beq _02237E04 + ldrb r1, [r4, #0x13] + mov r0, #1 + bic r1, r0 + mov r0, #1 + orr r0, r1 + strb r0, [r4, #0x13] + ldrb r1, [r4, #0x13] + mov r0, #4 + orr r0, r1 + strb r0, [r4, #0x13] + ldr r0, [sp] + ldr r1, [r0, #4] + mov r0, #1 + lsl r0, r0, #0x1e + orr r1, r0 + ldr r0, [sp] + str r1, [r0, #4] + add r0, r4, #0 + bl MOD83_02237968 + pop {r3, r4, r5, r6, r7, pc} +_02237E04: + cmp r6, #0xb + bhi _02237EA8 + add r0, r6, r6 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02237E14: ; jump table + .short _02237EA8 - _02237E14 - 2 ; case 0 + .short _02237EA8 - _02237E14 - 2 ; case 1 + .short _02237E2C - _02237E14 - 2 ; case 2 + .short _02237E3C - _02237E14 - 2 ; case 3 + .short _02237E42 - _02237E14 - 2 ; case 4 + .short _02237E54 - _02237E14 - 2 ; case 5 + .short _02237E66 - _02237E14 - 2 ; case 6 + .short _02237E78 - _02237E14 - 2 ; case 7 + .short _02237EA8 - _02237E14 - 2 ; case 8 + .short _02237EA8 - _02237E14 - 2 ; case 9 + .short _02237EA8 - _02237E14 - 2 ; case 10 + .short _02237E88 - _02237E14 - 2 ; case 11 +_02237E2C: + mov r2, #0 +_02237E2E: + ldrb r1, [r5, r2] + add r0, r4, r2 + add r2, r2, #1 + strb r1, [r0, #8] + cmp r2, #0xa + blt _02237E2E + b _02237EA8 +_02237E3C: + ldrb r0, [r5] + strb r0, [r4, #0x12] + b _02237EA8 +_02237E42: + ldrb r0, [r4, #0x13] + ldrb r2, [r5] + mov r1, #1 + bic r0, r1 + mov r1, #1 + and r1, r2 + orr r0, r1 + strb r0, [r4, #0x13] + b _02237EA8 +_02237E54: + ldrb r0, [r4, #0x13] + mov r1, #2 + bic r0, r1 + ldrb r1, [r5] + lsl r1, r1, #0x1f + lsr r1, r1, #0x1e + orr r0, r1 + strb r0, [r4, #0x13] + b _02237EA8 +_02237E66: + ldrb r0, [r4, #0x13] + mov r1, #4 + bic r0, r1 + ldrb r1, [r5] + lsl r1, r1, #0x1f + lsr r1, r1, #0x1d + orr r0, r1 + strb r0, [r4, #0x13] + b _02237EA8 +_02237E78: + mov r2, #0 +_02237E7A: + ldrb r1, [r5, r2] + add r0, r4, r2 + add r2, r2, #1 + strb r1, [r0, #0x14] + cmp r2, #7 + blt _02237E7A + b _02237EA8 +_02237E88: + ldrb r0, [r5, #1] + ldrb r1, [r5] + lsl r0, r0, #8 + add r0, r1, r0 + strh r0, [r7] + ldrh r0, [r7] + ldrb r1, [r4, #0x13] + cmp r0, #0 + beq _02237EA2 + mov r0, #2 + orr r0, r1 + strb r0, [r4, #0x13] + b _02237EA8 +_02237EA2: + mov r0, #2 + bic r1, r0 + strb r1, [r4, #0x13] +_02237EA8: + cmp r6, #0xa + ble _02237EBA + add r0, r4, #0 + bl MOD83_02237988 + strh r0, [r4, #0x1c] + add r0, r4, #0 + bl MOD83_02237968 +_02237EBA: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD83_02237D90 + + thumb_func_start MOD83_02237EBC +MOD83_02237EBC: ; 0x02237EBC + ldr r2, _02237ED4 ; =0x00000115 + cmp r0, r2 + blt _02237ED2 + add r1, r2, #0 + add r1, #0x86 + cmp r0, r1 + bgt _02237ED2 + sub r0, r0, r2 + lsl r1, r0, #1 + ldr r0, _02237ED8 ; =0x0223B57C + ldrh r0, [r0, r1] +_02237ED2: + bx lr + .align 2, 0 +_02237ED4: .word 0x00000115 +_02237ED8: .word 0x0223B57C + thumb_func_end MOD83_02237EBC + + thumb_func_start MOD83_02237EDC +MOD83_02237EDC: ; 0x02237EDC + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r1, #0xb + mov r2, #0 + bl MOD83_02237A10 + bl MOD83_02237EBC + add r4, r0, #0 + add r0, r5, #0 + mov r1, #0x19 + mov r2, #0 + bl MOD83_02237A10 + add r1, r0, #0 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_02068800 + pop {r3, r4, r5, pc} + thumb_func_end MOD83_02237EDC + + thumb_func_start MOD83_02237F04 +MOD83_02237F04: ; 0x02237F04 + push {r4, r5, r6, lr} + add r4, r0, #0 + add r0, r1, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + lsl r0, r0, #0x10 + lsr r5, r0, #0x10 + add r0, r4, #0 + mov r1, #0x2e + mov r2, #0 + bl MOD83_02237A10 + add r6, r0, #0 + add r0, r5, #0 + mov r1, #0x19 + bl FUN_02068678 + cmp r0, #0 + beq _02237F5E + ldr r2, _02237F68 ; =0x0223B4C0 + mov r4, #0 +_02237F32: + ldrh r1, [r2] + cmp r5, r1 + bne _02237F42 + add r0, r5, #0 + mov r1, #0x18 + bl FUN_02068678 + b _02237F4A +_02237F42: + add r4, r4, #1 + add r2, r2, #2 + cmp r4, #0x5e + blo _02237F32 +_02237F4A: + cmp r4, #0x5e + bne _02237F66 + mov r1, #1 + tst r1, r6 + bne _02237F66 + add r0, r5, #0 + mov r1, #0x18 + bl FUN_02068678 + pop {r4, r5, r6, pc} +_02237F5E: + add r0, r5, #0 + mov r1, #0x18 + bl FUN_02068678 +_02237F66: + pop {r4, r5, r6, pc} + .align 2, 0 +_02237F68: .word 0x0223B4C0 + thumb_func_end MOD83_02237F04 + + thumb_func_start MOD83_02237F6C +MOD83_02237F6C: ; 0x02237F6C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + add r4, r1, #0 + add r6, r0, #0 + add r0, r4, #0 + bl FUN_020669A0 + add r0, r4, #0 + bl FUN_02066A6C + mov r1, #0 + str r0, [sp] + add r0, r6, #0 + add r2, r1, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0xb + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + bl MOD83_02237EBC + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #5 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0xc + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + cmp r0, #0 + beq _02237FCE + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_0206E6D8 + str r0, [sp, #8] +_02237FCE: + add r0, r4, #0 + mov r1, #6 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #1 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #7 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x19 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #8 + add r2, sp, #8 + bl FUN_02067960 + mov r0, #0x46 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #9 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + add r1, r4, #0 + bl MOD83_02237F04 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0xa + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #8 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0xb + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #3 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #4] + add r0, r4, #0 + mov r1, #0xc + add r2, sp, #4 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x1a + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0xd + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x1b + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0xe + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x1c + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0xf + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x1d + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x10 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x1e + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x11 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x1f + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x12 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x16 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x13 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x17 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x14 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x18 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x15 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x21 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x16 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x2f + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x17 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x30 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x18 + add r2, sp, #8 + bl FUN_02067960 + mov r5, #0 + add r7, r5, #0 +_0223815E: + add r1, r5, #0 + add r0, r6, #0 + add r1, #0xd + mov r2, #0 + bl MOD83_02237A10 + add r1, r5, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, #0x36 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x15 + mov r2, #0 + bl MOD83_02237A10 + mov r1, #3 + lsl r1, r7 + str r0, [sp, #8] + and r0, r1 + lsr r0, r7 + add r1, r5, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, #0x3e + add r2, sp, #8 + bl FUN_02067960 + add r1, r5, #0 + add r0, r4, #0 + add r1, #0x42 + mov r2, #0 + bl FUN_020672BC + add r1, r5, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, #0x3a + add r2, sp, #8 + bl FUN_02067960 + add r5, r5, #1 + add r7, r7, #2 + cmp r5, #4 + blt _0223815E + add r0, r6, #0 + mov r1, #0x27 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x46 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x28 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x47 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x29 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x48 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x2a + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x49 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x2b + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x4a + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x2c + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x4b + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x2d + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x4c + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x32 + mov r2, #0 + bl MOD83_02237A10 + add r7, r0, #0 + cmp r7, #4 + bgt _02238282 + mov r5, #0 + cmp r7, #0 + ble _02238282 +_0223826C: + mov r0, #1 + add r1, r5, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, #0x4e + add r2, sp, #8 + bl FUN_02067960 + add r5, r5, #1 + cmp r5, r7 + blt _0223826C +_02238282: + add r0, r6, #0 + mov r1, #0x33 + mov r2, #0 + bl MOD83_02237A10 + add r7, r0, #0 + cmp r7, #4 + bgt _022382AE + mov r5, #0 + cmp r7, #0 + ble _022382AE +_02238298: + mov r0, #1 + add r1, r5, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, #0x52 + add r2, sp, #8 + bl FUN_02067960 + add r5, r5, #1 + cmp r5, r7 + blt _02238298 +_022382AE: + add r0, r6, #0 + mov r1, #0x34 + mov r2, #0 + bl MOD83_02237A10 + add r7, r0, #0 + cmp r7, #4 + bgt _022382DA + mov r5, #0 + cmp r7, #0 + ble _022382DA +_022382C4: + mov r0, #1 + add r1, r5, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, #0x56 + add r2, sp, #8 + bl FUN_02067960 + add r5, r5, #1 + cmp r5, r7 + blt _022382C4 +_022382DA: + add r0, r6, #0 + mov r1, #0x35 + mov r2, #0 + bl MOD83_02237A10 + add r7, r0, #0 + cmp r7, #4 + bgt _02238306 + mov r5, #0 + cmp r7, #0 + ble _02238306 +_022382F0: + mov r0, #1 + add r1, r5, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, #0x5a + add r2, sp, #8 + bl FUN_02067960 + add r5, r5, #1 + cmp r5, r7 + blt _022382F0 +_02238306: + add r0, r6, #0 + mov r1, #0x36 + mov r2, #0 + bl MOD83_02237A10 + add r7, r0, #0 + cmp r7, #4 + bgt _02238332 + mov r5, #0 + cmp r7, #0 + ble _02238332 +_0223831C: + mov r0, #1 + add r1, r5, #0 + str r0, [sp, #8] + add r0, r4, #0 + add r1, #0x5e + add r2, sp, #8 + bl FUN_02067960 + add r5, r5, #1 + cmp r5, r7 + blt _0223831C +_02238332: + add r0, r6, #0 + mov r1, #0x43 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x62 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x44 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x63 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x45 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x64 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x46 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x65 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x47 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x66 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x48 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x67 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x49 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x68 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x4a + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x69 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x4b + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x6a + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x4c + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x6b + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x4d + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x6c + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x4e + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x6d + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x50 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x6e + add r2, sp, #8 + bl FUN_02067960 + add r0, r4, #0 + bl FUN_020689E8 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x6f + add r2, sp, #8 + bl FUN_02067960 + add r0, r4, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + cmp r0, #0xc9 + bne _022384AE + mov r1, #0 + add r0, r6, #0 + add r2, r1, #0 + bl MOD83_02237A10 + add r3, r0, #0 + mov r7, #3 + lsl r0, r7, #8 + and r0, r3 + lsr r1, r0, #6 + lsl r0, r7, #0x18 + and r0, r3 + lsr r5, r0, #0x12 + lsl r0, r7, #0x10 + and r0, r3 + lsr r0, r0, #0xc + add r2, r3, #0 + orr r0, r5 + orr r0, r1 + and r2, r7 + str r3, [sp, #8] + orr r0, r2 + mov r1, #0x1c + bl _u32_div_f + str r1, [sp, #8] + add r0, r4, #0 + mov r1, #0x70 + add r2, sp, #8 + bl FUN_02067960 +_022384AE: + add r0, r4, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020672BC + ldr r1, _022385F0 ; =0x00000182 + cmp r0, r1 + bne _022384FE + ldr r0, _022385F4 ; =0x021C4918 + ldrb r0, [r0, #6] + cmp r0, #5 + bhi _022384DE + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022384D2: ; jump table + .short _022384DE - _022384D2 - 2 ; case 0 + .short _022384DE - _022384D2 - 2 ; case 1 + .short _022384DE - _022384D2 - 2 ; case 2 + .short _022384F0 - _022384D2 - 2 ; case 3 + .short _022384E4 - _022384D2 - 2 ; case 4 + .short _022384EA - _022384D2 - 2 ; case 5 +_022384DE: + mov r0, #0 + str r0, [sp, #8] + b _022384F4 +_022384E4: + mov r0, #1 + str r0, [sp, #8] + b _022384F4 +_022384EA: + mov r0, #2 + str r0, [sp, #8] + b _022384F4 +_022384F0: + mov r0, #3 + str r0, [sp, #8] +_022384F4: + add r0, r4, #0 + mov r1, #0x70 + add r2, sp, #8 + bl FUN_02067960 +_022384FE: + add r0, r6, #0 + mov r1, #2 + add r2, sp, #0x24 + bl MOD83_02237A10 + ldr r3, [sp, #4] + add r0, sp, #0x24 + add r1, sp, #0xc + mov r2, #0xc + bl FUN_02015D88 + add r0, r4, #0 + mov r1, #0x75 + add r2, sp, #0xc + bl FUN_02067960 + add r0, r6, #0 + mov r1, #3 + mov r2, #0 + bl MOD83_02237A10 + ldr r1, _022385F8 ; =0x020ECAC4 + ldrb r1, [r1] + cmp r1, r0 + beq _0223853E + mov r0, #1 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x4d + add r2, sp, #8 + bl FUN_02067960 +_0223853E: + add r0, r6, #0 + mov r1, #0x25 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x79 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #7 + add r2, sp, #0x24 + bl MOD83_02237A10 + ldr r3, [sp, #4] + add r0, sp, #0x24 + add r1, sp, #0xc + mov r2, #8 + bl FUN_02015D88 + add r0, r4, #0 + mov r1, #0x8f + add r2, sp, #0xc + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x23 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x98 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x22 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x99 + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x26 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x9a + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x24 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x9b + add r2, sp, #8 + bl FUN_02067960 + add r0, r6, #0 + mov r1, #0x31 + mov r2, #0 + bl MOD83_02237A10 + str r0, [sp, #8] + add r0, r4, #0 + mov r1, #0x9c + add r2, sp, #8 + bl FUN_02067960 + ldr r1, [sp] + add r0, r4, #0 + bl FUN_02066A94 + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + nop +_022385F0: .word 0x00000182 +_022385F4: .word 0x021C4918 +_022385F8: .word 0x020ECAC4 + thumb_func_end MOD83_02237F6C + + thumb_func_start MOD83_022385FC +MOD83_022385FC: ; 0x022385FC + ldr r1, _02238604 ; =0x0223BC2C + str r0, [r1] + bx lr + nop +_02238604: .word 0x0223BC2C + thumb_func_end MOD83_022385FC + + thumb_func_start MOD83_02238608 +MOD83_02238608: ; 0x02238608 + add r1, r0, #0 + ldr r0, _02238614 ; =0x0223BC2C + ldr r3, _02238618 ; =FUN_02016998 + ldr r0, [r0] + bx r3 + nop +_02238614: .word 0x0223BC2C +_02238618: .word FUN_02016998 + thumb_func_end MOD83_02238608 + + thumb_func_start MOD83_0223861C +MOD83_0223861C: ; 0x0223861C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x1fc + sub sp, #0x1fc + sub sp, #0x130 + bl CTRDG_GetAgbGameCode + lsr r1, r0, #0x18 + lsl r1, r1, #0x18 + lsr r2, r1, #0x18 + lsr r1, r0, #0x10 + lsl r3, r0, #0x18 + lsr r0, r0, #8 + lsl r0, r0, #0x18 + lsl r1, r1, #0x18 + lsr r0, r0, #8 + lsr r1, r1, #0x10 + orr r0, r3 + orr r0, r1 + add r6, r2, #0 + orr r6, r0 + ldr r0, _022386B0 ; =0x0223B69C + mov r4, #0 + ldr r0, [r0] + cmp r0, #0 + bls _022386A6 + ldr r5, _022386B4 ; =0x0223B69C + add r7, sp, #0x80 +_02238652: + ldr r0, [r5] + cmp r6, r0 + bne _0223869C + mov r0, #1 + bl CTRDG_Enable + mov r0, #0x81 + ldr r2, _022386B8 ; =0x000004A8 + lsl r0, r0, #0x14 + add r1, r7, #0 + bl CTRDG_CpuCopy8 + ldr r0, _022386BC ; =0x08020000 + add r1, sp, #0 + mov r2, #0x80 + bl CTRDG_CpuCopy8 + mov r0, #0 + bl CTRDG_Enable + ldr r0, _022386C0 ; =MOD83_02238608 + ldr r1, _022386C4 ; =FUN_02016A18 + bl SetCustomAllocator + ldr r1, _022386B8 ; =0x000004A8 + ldr r3, _022386C8 ; =0x0223A6B4 + add r0, r7, #0 + add r2, sp, #0 + bl FUN_020910EC + cmp r0, #0 + beq _0223869C + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x130 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0223869C: + add r5, r5, #4 + ldr r0, [r5] + add r4, r4, #1 + cmp r4, r0 + blo _02238652 +_022386A6: + mov r0, #0 + add sp, #0x1fc + add sp, #0x1fc + add sp, #0x130 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022386B0: .word 0x0223B69C +_022386B4: .word 0x0223B69C +_022386B8: .word 0x000004A8 +_022386BC: .word 0x08020000 +_022386C0: .word MOD83_02238608 +_022386C4: .word FUN_02016A18 +_022386C8: .word 0x0223A6B4 + thumb_func_end MOD83_0223861C + + thumb_func_start MOD83_022386CC +MOD83_022386CC: ; 0x022386CC + push {r3, lr} + bl CTRDG_Init + bl CTRDG_IsAgbCartridge + cmp r0, #0 + bne _022386DE + mov r0, #0 + pop {r3, pc} +_022386DE: + bl CTRDG_GetAgbMakerCode + ldr r1, _022386FC ; =0x00003130 + cmp r0, r1 + beq _022386EC + mov r0, #0 + pop {r3, pc} +_022386EC: + bl MOD83_0223861C + cmp r0, #0 + beq _022386F8 + mov r0, #1 + pop {r3, pc} +_022386F8: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_022386FC: .word 0x00003130 + thumb_func_end MOD83_022386CC + + thumb_func_start MOD83_02238700 +MOD83_02238700: ; 0x02238700 + push {r3, lr} + bl MOD83_022386CC + cmp r0, #0 + bne _0223870E + mov r0, #0 + pop {r3, pc} +_0223870E: + mov r0, #1 + bl CTRDG_Enable + mov r0, #0x81 + lsl r0, r0, #0x14 + add r1, sp, #0 + bl CTRDG_Read32 + mov r0, #0 + bl CTRDG_Enable + ldr r0, [sp] + pop {r3, pc} + thumb_func_end MOD83_02238700 + + thumb_func_start MOD83_02238728 +MOD83_02238728: ; 0x02238728 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD83_022386CC + cmp r0, #0 + bne _0223873A + mov r0, #0 + pop {r3, r4, r5, pc} +_0223873A: + cmp r4, #0 + bne _02238744 + bl MOD83_02238700 + add r4, r0, #0 +_02238744: + mov r0, #1 + bl CTRDG_Enable + ldr r0, _0223876C ; =0x08100100 + add r1, r5, #0 + add r2, r4, #0 + bl CTRDG_CpuCopy16 + add r4, r0, #0 + mov r0, #0 + bl CTRDG_Enable + bl CTRDG_IsExisting + cmp r0, #0 + bne _02238768 + mov r0, #0 + pop {r3, r4, r5, pc} +_02238768: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223876C: .word 0x08100100 + thumb_func_end MOD83_02238728 + + thumb_func_start MOD83_02238770 +MOD83_02238770: ; 0x02238770 + push {r3, r4, r5, r6} + add r4, r0, #0 + mov r0, #0 + ldr r6, _02238798 ; =0x0223BC30 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + mov r5, #0x75 +_02238780: + stmia r6!, {r0, r1, r2, r3} + stmia r6!, {r0, r1, r2, r3} + sub r5, r5, #1 + bne _02238780 + str r0, [r6] + ldr r0, _0223879C ; =0x0223BC30 + mov r1, #1 + str r1, [r0] + str r4, [r0, #4] + pop {r3, r4, r5, r6} + bx lr + nop +_02238798: .word 0x0223BC30 +_0223879C: .word 0x0223BC30 + thumb_func_end MOD83_02238770 + + thumb_func_start MOD83_022387A0 +MOD83_022387A0: ; 0x022387A0 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r2, #0 + add r6, r1, #0 + mov r0, #3 + add r2, r3, #0 + bl FUN_0201681C + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl FUN_02006268 + mov r1, #0 + add r2, r4, #0 + add r5, r0, #0 + bl Call_FillMemWithValue + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + add r0, r5, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD83_022387A0 + + thumb_func_start MOD83_022387D8 +MOD83_022387D8: ; 0x022387D8 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + ldr r5, _0223885C ; =0x0223A760 + add r6, r3, #0 + add r7, r0, #0 + add r4, r1, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + cmp r2, #4 + str r0, [r3] + add r0, sp, #0 + strb r2, [r0, #0x10] + bhi _02238832 + add r0, r2, r2 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0223880A: ; jump table + .short _02238832 - _0223880A - 2 ; case 0 + .short _02238814 - _0223880A - 2 ; case 1 + .short _0223881C - _0223880A - 2 ; case 2 + .short _02238824 - _0223880A - 2 ; case 3 + .short _0223882C - _0223880A - 2 ; case 4 +_02238814: + mov r0, #2 + lsl r0, r0, #0xa + str r0, [sp, #8] + b _02238832 +_0223881C: + mov r0, #1 + lsl r0, r0, #0xc + str r0, [sp, #8] + b _02238832 +_02238824: + mov r0, #1 + lsl r0, r0, #0xc + str r0, [sp, #8] + b _02238832 +_0223882C: + mov r0, #2 + lsl r0, r0, #0xc + str r0, [sp, #8] +_02238832: + lsr r1, r6, #0xb + add r0, sp, #0 + strb r1, [r0, #0x12] + ldr r1, [sp, #0x30] + add r2, sp, #0 + lsr r1, r1, #0xe + strb r1, [r0, #0x13] + lsl r1, r4, #0x18 + add r0, r7, #0 + lsr r1, r1, #0x18 + mov r3, #0 + bl FUN_02016C18 + lsl r1, r4, #0x18 + add r0, r7, #0 + lsr r1, r1, #0x18 + bl FUN_02018744 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_0223885C: .word 0x0223A760 + thumb_func_end MOD83_022387D8 + + thumb_func_start MOD83_02238860 +MOD83_02238860: ; 0x02238860 + ldr r1, _02238868 ; =0x0223BC30 + str r0, [r1, #0xc] + bx lr + nop +_02238868: .word 0x0223BC30 + thumb_func_end MOD83_02238860 + + thumb_func_start MOD83_0223886C +MOD83_0223886C: ; 0x0223886C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + str r0, [sp, #0xc] + ldr r0, _022388C0 ; =0x0223BC30 + add r5, r1, #0 + ldr r0, [r0, #0xc] + add r4, r2, #0 + add r6, r3, #0 + ldr r7, _022388C4 ; =0x0223BC30 + cmp r0, #0 + bne _0223889C + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r7, #4] + ldr r1, [sp, #0xc] + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + b _022388B4 +_0223889C: + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r7, #4] + ldr r1, [sp, #0xc] + str r0, [sp, #8] + ldr r3, _022388C8 ; =0x00007FFF + mov r0, #0 + add r2, r1, #0 + bl FUN_0200E1D0 +_022388B4: + cmp r4, #0 + beq _022388BA + str r6, [r4] +_022388BA: + str r5, [r7, #8] + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022388C0: .word 0x0223BC30 +_022388C4: .word 0x0223BC30 +_022388C8: .word 0x00007FFF + thumb_func_end MOD83_0223886C + + thumb_func_start MOD83_022388CC +MOD83_022388CC: ; 0x022388CC + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r5, _022388E0 ; =0x0223BC30 + bl FUN_0200E308 + cmp r0, #0 + beq _022388DE + ldr r0, [r5, #8] + str r0, [r4] +_022388DE: + pop {r3, r4, r5, pc} + .align 2, 0 +_022388E0: .word 0x0223BC30 + thumb_func_end MOD83_022388CC + + thumb_func_start MOD83_022388E4 +MOD83_022388E4: ; 0x022388E4 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r6, r2, #0 + mov r1, #0 + mov r2, #0x54 + add r5, r0, #0 + add r7, r3, #0 + bl Call_FillMemWithValue + mov r0, #1 + str r0, [r5, #4] + str r0, [r5, #8] + sub r0, r0, #2 + str r0, [r5, #0x4c] + str r4, [r5, #0x10] + str r6, [r5, #0x30] + ldr r0, [sp, #0x18] + str r7, [r5, #0x34] + str r0, [r5, #0x38] + ldr r0, [sp, #0x1c] + mov r2, #0 + str r0, [r5, #0x3c] + str r2, [r5, #0x2c] + ldr r0, _02238930 ; =0x0001020F + str r2, [r5, #0x40] + str r0, [r5, #0x44] + add r0, r5, #0 + mov r1, #0xf + add r0, #0x48 + strb r1, [r0] + str r2, [r5] + str r2, [r5, #0x24] + str r2, [r5, #0x20] + str r2, [r5, #0x14] + mov r0, #0xff + str r0, [r5, #0x50] + pop {r3, r4, r5, r6, r7, pc} + nop +_02238930: .word 0x0001020F + thumb_func_end MOD83_022388E4 + + thumb_func_start MOD83_02238934 +MOD83_02238934: ; 0x02238934 + str r1, [r0, #0x18] + str r2, [r0, #0x1c] + str r3, [r0, #0x28] + bx lr + thumb_func_end MOD83_02238934 + + thumb_func_start MOD83_0223893C +MOD83_0223893C: ; 0x0223893C + str r1, [r0] + str r2, [r0, #0x40] + bx lr + .align 2, 0 + thumb_func_end MOD83_0223893C + + thumb_func_start MOD83_02238944 +MOD83_02238944: ; 0x02238944 + str r1, [r0, #0x20] + str r2, [r0, #0x24] + bx lr + .align 2, 0 + thumb_func_end MOD83_02238944 + + thumb_func_start MOD83_0223894C +MOD83_0223894C: ; 0x0223894C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r5, r0, #0 + mov r0, #0 + mvn r0, r0 + ldr r4, _02238A34 ; =0x0223BC30 + cmp r1, r0 + beq _02238A2A + ldr r0, [r5, #0x4c] + cmp r0, r1 + beq _02238A2A + str r1, [r5, #0x4c] + ldr r0, [r5, #8] + cmp r0, #1 + bne _02238976 + add r1, r5, #0 + add r1, #0x48 + ldrb r1, [r1] + ldr r0, [r5, #0x10] + bl FUN_02019620 +_02238976: + mov r0, #0 + ldr r1, [r5, #0x4c] + mvn r0, r0 + cmp r1, r0 + beq _02238A2A + ldr r2, [r5, #0x34] + ldr r3, [r4, #4] + mov r0, #1 + mov r1, #0x1a + bl FUN_0200A86C + ldr r6, [r5, #0x14] + str r0, [sp, #0x10] + cmp r6, #0 + bne _0223899C + ldr r0, [r4, #4] + bl FUN_0200AA80 + add r6, r0, #0 +_0223899C: + ldr r1, [sp, #0x10] + ldr r2, [r5, #0x4c] + ldr r3, [r4, #4] + add r0, r6, #0 + bl FUN_0200A9C4 + add r4, r0, #0 + ldr r0, [r5, #0xc] + cmp r0, #0 + bne _022389D0 + ldr r0, [r5, #0x24] + add r2, r4, #0 + str r0, [sp] + ldr r0, [r5, #0x50] + str r0, [sp, #4] + ldr r0, [r5, #0x44] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [r5, #0x10] + ldr r1, [r5, #0x40] + ldr r3, [r5, #0x20] + bl FUN_0201BDE0 + add r7, r0, #0 + b _02238A12 +_022389D0: + ldr r0, [r5, #0x40] + mov r1, #2 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + bl FUN_02002E4C + add r2, r0, #0 + ldr r0, [r5, #0x40] + add r1, r4, #0 + bl FUN_02002E14 + add r7, r0, #0 + ldr r0, [r5, #0x10] + bl FUN_0201AB0C + lsl r0, r0, #3 + sub r3, r0, r7 + ldr r0, [r5, #0x24] + add r2, r4, #0 + str r0, [sp] + ldr r0, [r5, #0x50] + str r0, [sp, #4] + ldr r0, [r5, #0x44] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + ldr r0, [r5, #0x10] + ldr r1, [r5, #0x40] + bl FUN_0201BDE0 + add r7, r0, #0 + mov r0, #0 + str r0, [r5, #0xc] +_02238A12: + add r0, r4, #0 + bl FUN_02021A20 + ldr r0, [r5, #0x14] + cmp r0, #0 + bne _02238A24 + add r0, r6, #0 + bl FUN_0200AB18 +_02238A24: + ldr r0, [sp, #0x10] + bl FUN_0200A8B8 +_02238A2A: + mov r0, #0xff + str r0, [r5, #0x50] + add r0, r7, #0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02238A34: .word 0x0223BC30 + thumb_func_end MOD83_0223894C + + thumb_func_start MOD83_02238A38 +MOD83_02238A38: ; 0x02238A38 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r4, r1, #0 + ldr r1, [r4, #0x10] + add r6, r2, #0 + ldr r2, [r1] + add r5, r3, #0 + cmp r2, #0 + bne _02238A8A + lsl r2, r5, #0x18 + lsr r2, r2, #0x18 + str r2, [sp] + ldr r2, [r4, #0x18] + lsl r3, r6, #0x18 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + str r2, [sp, #4] + ldr r2, [r4, #0x1c] + lsr r3, r3, #0x18 + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + str r2, [sp, #8] + ldr r2, [r4, #0x30] + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + str r2, [sp, #0xc] + ldr r2, [r4, #0x28] + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + str r2, [sp, #0x10] + ldr r2, [r4, #0x2c] + lsl r2, r2, #0x18 + lsr r2, r2, #0x18 + bl FUN_02019064 + ldr r1, [sp, #0x28] + add r0, r4, #0 + bl MOD83_0223894C + add r5, r0, #0 + b _02238AB8 +_02238A8A: + mov r0, #0 + mvn r0, r0 + cmp r6, r0 + beq _02238A9C + add r0, r1, #0 + lsl r1, r6, #0x18 + lsr r1, r1, #0x18 + bl FUN_0201AB1C +_02238A9C: + mov r0, #0 + mvn r0, r0 + cmp r5, r0 + beq _02238AAE + lsl r1, r5, #0x18 + ldr r0, [r4, #0x10] + lsr r1, r1, #0x18 + bl FUN_0201AB20 +_02238AAE: + ldr r1, [sp, #0x28] + add r0, r4, #0 + bl MOD83_0223894C + add r5, r0, #0 +_02238AB8: + ldr r0, [r4, #4] + cmp r0, #1 + bne _02238AEC + ldr r0, [r4] + cmp r0, #0 + ldr r0, [r4, #0x10] + bne _02238ADA + ldr r2, [r4, #0x38] + ldr r3, [r4, #0x3c] + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + mov r1, #0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_0200CCA4 + b _02238AEC +_02238ADA: + ldr r2, [r4, #0x38] + ldr r3, [r4, #0x3c] + lsl r2, r2, #0x10 + lsl r3, r3, #0x18 + mov r1, #0 + lsr r2, r2, #0x10 + lsr r3, r3, #0x18 + bl FUN_0200D0BC +_02238AEC: + add r0, r5, #0 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD83_02238A38 + + thumb_func_start MOD83_02238AF4 +MOD83_02238AF4: ; 0x02238AF4 + ldr r1, [r0, #0x18] + ldr r0, [r0, #0x1c] + mul r0, r1 + bx lr + thumb_func_end MOD83_02238AF4 + + thumb_func_start MOD83_02238AFC +MOD83_02238AFC: ; 0x02238AFC + push {r4, lr} + sub sp, #0x10 + ldr r4, _02238B30 ; =0x0223A734 + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, _02238B34 ; =0x0223BC30 + ldr r0, [r0, #4] + str r0, [sp, #0xc] + add r0, r2, #0 + bl FUN_0201D040 + ldr r1, _02238B34 ; =0x0223BC30 + mov r0, #0x14 + ldr r1, [r1, #4] + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_02238B30: .word 0x0223A734 +_02238B34: .word 0x0223BC30 + thumb_func_end MOD83_02238AFC + + thumb_func_start MOD83_02238B38 +MOD83_02238B38: ; 0x02238B38 + ldr r0, _02238B48 ; =0x0223BC30 + ldr r0, [r0, #0x30] + cmp r0, #0 + beq _02238B44 + mov r0, #1 + bx lr +_02238B44: + mov r0, #0 + bx lr + .align 2, 0 +_02238B48: .word 0x0223BC30 + thumb_func_end MOD83_02238B38 + + thumb_func_start MOD83_02238B4C +MOD83_02238B4C: ; 0x02238B4C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + ldr r6, _02238BB4 ; =0x0223BC30 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x7e + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + ldr r2, _02238BB8 ; =0x0223BC30 + str r3, [sp, #0xc] + ldr r2, [r2, #4] + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + ldr r2, _02238BB8 ; =0x0223BC30 + ldr r1, _02238BBC ; =0x0223BC64 + ldr r2, [r2, #4] + mov r0, #0x46 + bl FUN_02008C9C + ldr r1, _02238BB8 ; =0x0223BC30 + mov r2, #1 + str r0, [r1, #0x30] + ldr r0, _02238BBC ; =0x0223BC64 + mov r1, #0 + lsl r2, r2, #0x14 + bl FUN_02008D24 + mov r1, #3 + mov r7, #0x57 + ldr r0, _02238BC0 ; =0x0223BE30 + lsl r1, r1, #0x12 + str r1, [r0, #0xc] + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #2 +_02238B9C: + ldr r2, [r6, #4] + mov r0, #3 + add r1, r4, #0 + bl FUN_02008DEC + str r0, [r5, r7] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _02238B9C + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02238BB4: .word 0x0223BC30 +_02238BB8: .word 0x0223BC30 +_02238BBC: .word 0x0223BC64 +_02238BC0: .word 0x0223BE30 + thumb_func_end MOD83_02238B4C + + thumb_func_start MOD83_02238BC4 +MOD83_02238BC4: ; 0x02238BC4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x38 + ldr r4, [sp, #0x54] + add r6, r0, #0 + mov ip, r1 + str r2, [sp, #0x2c] + str r3, [sp, #0x30] + ldr r5, _02238D30 ; =0x0223BC30 + cmp r4, #0 + bne _02238BDC + mov r7, #1 + b _02238BDE +_02238BDC: + mov r7, #2 +_02238BDE: + mov r0, #1 + str r0, [sp, #0x34] + cmp r6, #0x10 + bne _02238BEA + mov r0, #0 + str r0, [sp, #0x34] +_02238BEA: + mov r1, #0 + mvn r1, r1 + mov r0, ip + cmp r0, r1 + beq _02238C18 + str r4, [sp] + str r7, [sp, #4] + ldr r0, [r5, #4] + ldr r3, [sp, #0x34] + str r0, [sp, #8] + mov r0, #0x57 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r6, #0 + mov r2, ip + bl FUN_02008F34 + mov r1, #0x18 + mul r1, r4 + add r2, r5, r1 + mov r1, #0x5d + lsl r1, r1, #2 + str r0, [r2, r1] +_02238C18: + mov r1, #0 + ldr r0, [sp, #0x2c] + mvn r1, r1 + cmp r0, r1 + beq _02238C4A + str r4, [sp] + str r7, [sp, #4] + mov r0, #3 + str r0, [sp, #8] + ldr r0, [r5, #4] + ldr r2, [sp, #0x2c] + str r0, [sp, #0xc] + mov r0, #0x16 + lsl r0, r0, #4 + ldr r0, [r5, r0] + add r1, r6, #0 + mov r3, #0 + bl FUN_02008FEC + mov r1, #0x18 + mul r1, r4 + add r2, r5, r1 + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r2, r1] +_02238C4A: + mov r1, #0 + ldr r0, [sp, #0x30] + mvn r1, r1 + cmp r0, r1 + beq _02238C7A + str r4, [sp] + mov r0, #2 + str r0, [sp, #4] + ldr r0, [r5, #4] + ldr r2, [sp, #0x30] + str r0, [sp, #8] + mov r0, #0x59 + lsl r0, r0, #2 + ldr r0, [r5, r0] + ldr r3, [sp, #0x34] + add r1, r6, #0 + bl FUN_020090AC + mov r1, #0x18 + mul r1, r4 + add r2, r5, r1 + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r2, r1] +_02238C7A: + mov r0, #0 + ldr r2, [sp, #0x50] + mvn r0, r0 + cmp r2, r0 + beq _02238CA8 + str r4, [sp] + mov r0, #3 + str r0, [sp, #4] + ldr r0, [r5, #4] + ldr r3, [sp, #0x34] + str r0, [sp, #8] + mov r0, #0x5a + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r1, r6, #0 + bl FUN_020090AC + mov r1, #0x18 + add r2, r4, #0 + mul r2, r1 + add r2, r5, r2 + lsl r1, r1, #4 + str r0, [r2, r1] +_02238CA8: + mov r0, #0x18 + add r6, r4, #0 + mul r6, r0 + mov r0, #0x5d + add r1, r5, r6 + lsl r0, r0, #2 + ldr r0, [r1, r0] + bl FUN_02009A50 + mov r0, #0x5e + add r1, r5, r6 + lsl r0, r0, #2 + ldr r0, [r1, r0] + bl FUN_02009CF0 + mov r0, #0 + mov r2, #0x57 + str r4, [sp] + mvn r0, r0 + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + lsl r2, r2, #2 + ldr r1, [r5, r2] + add r3, r4, #0 + str r1, [sp, #0x14] + add r1, r2, #4 + ldr r1, [r5, r1] + str r1, [sp, #0x18] + add r1, r2, #0 + add r1, #8 + ldr r1, [r5, r1] + str r1, [sp, #0x1c] + add r1, r2, #0 + add r1, #0xc + ldr r1, [r5, r1] + add r2, #0x48 + str r1, [sp, #0x20] + str r0, [sp, #0x24] + str r0, [sp, #0x28] + mov r0, #0x24 + add r1, r5, r2 + mul r0, r4 + add r0, r1, r0 + add r1, r4, #0 + add r2, r4, #0 + bl FUN_02008AA4 + cmp r4, #0 + bne _02238D1A + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + b _02238D22 +_02238D1A: + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C +_02238D22: + ldr r0, _02238D34 ; =MOD83_02238F00 + mov r1, #0 + bl FUN_02015F10 + add sp, #0x38 + pop {r3, r4, r5, r6, r7, pc} + nop +_02238D30: .word 0x0223BC30 +_02238D34: .word MOD83_02238F00 + thumb_func_end MOD83_02238BC4 + + thumb_func_start MOD83_02238D38 +MOD83_02238D38: ; 0x02238D38 + push {r4, lr} + add r2, r0, #0 + add r4, r1, #0 + add r1, r2, #0 + ldr r0, _02238D50 ; =0x0223BC64 + add r2, r4, #0 + bl FUN_02008D24 + ldr r0, _02238D54 ; =0x0223BE30 + str r4, [r0, #0xc] + pop {r4, pc} + nop +_02238D50: .word 0x0223BC64 +_02238D54: .word 0x0223BE30 + thumb_func_end MOD83_02238D38 + + thumb_func_start MOD83_02238D58 +MOD83_02238D58: ; 0x02238D58 + push {r4, lr} + ldr r0, _02238DB4 ; =0x0223BE30 + ldr r4, _02238DB8 ; =0x0223BC30 + ldr r0, [r0, #4] + cmp r0, #0 + beq _02238DA6 + mov r0, #0x82 + lsl r0, r0, #2 + ldr r1, [r4, r0] + cmp r1, #0 + bne _02238DA2 + sub r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_02020128 + cmp r0, #0 + bne _02238D86 + mov r0, #0x81 + lsl r0, r0, #2 + ldr r0, [r4, r0] + mov r1, #1 + bl FUN_020200A0 +_02238D86: + mov r0, #0x81 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0202011C + mov r1, #6 + ldr r2, [r0, #4] + lsl r1, r1, #0x12 + cmp r2, r1 + bge _02238DA6 + lsr r1, r1, #7 + add r1, r2, r1 + str r1, [r0, #4] + b _02238DA6 +_02238DA2: + sub r1, r1, #1 + str r1, [r4, r0] +_02238DA6: + ldr r0, [r4, #0x30] + cmp r0, #0 + beq _02238DB0 + bl FUN_0201FDEC +_02238DB0: + pop {r4, pc} + nop +_02238DB4: .word 0x0223BE30 +_02238DB8: .word 0x0223BC30 + thumb_func_end MOD83_02238D58 + + thumb_func_start MOD83_02238DBC +MOD83_02238DBC: ; 0x02238DBC + push {r3, r4, r5, lr} + sub sp, #0x30 + add r4, r1, #0 + ldr r1, _02238E44 ; =0x0223BC30 + bne _02238E1E + ldr r4, [r1, #0x30] + lsl r2, r2, #0xc + str r4, [sp] + mov r4, #0x69 + lsl r4, r4, #2 + add r5, r1, r4 + mov r4, #0x24 + mul r4, r0 + add r4, r5, r4 + str r4, [sp, #4] + mov r4, #1 + lsl r4, r4, #0xc + mov r5, #0 + str r5, [sp, #0x10] + str r4, [sp, #0x14] + str r4, [sp, #0x18] + str r4, [sp, #0x1c] + add r4, sp, #0 + strh r5, [r4, #0x20] + str r2, [sp, #8] + lsl r2, r3, #0xc + str r2, [sp, #0xc] + mov r2, #0xa + str r2, [sp, #0x24] + cmp r0, #0 + bne _02238DFE + mov r2, #1 + b _02238E00 +_02238DFE: + mov r2, #2 +_02238E00: + ldr r0, [r1, #4] + str r2, [sp, #0x28] + str r0, [sp, #0x2c] + cmp r2, #2 + bne _02238E16 + mov r0, #0x83 + lsl r0, r0, #2 + ldr r2, [sp, #0xc] + ldr r0, [r1, r0] + add r0, r2, r0 + str r0, [sp, #0xc] +_02238E16: + add r0, sp, #0 + bl FUN_0201FE94 + add r4, r0, #0 +_02238E1E: + add r0, r4, #0 + mov r1, #1 + bl FUN_020200BC + add r0, r4, #0 + mov r1, #0 + bl FUN_02020238 + ldr r1, [sp, #0x40] + add r0, r4, #0 + bl FUN_02020130 + add r0, r4, #0 + mov r1, #1 + bl FUN_020200A0 + add r0, r4, #0 + add sp, #0x30 + pop {r3, r4, r5, pc} + .align 2, 0 +_02238E44: .word 0x0223BC30 + thumb_func_end MOD83_02238DBC + + thumb_func_start MOD83_02238E48 +MOD83_02238E48: ; 0x02238E48 + push {r3, r4, r5, r6, r7, lr} + ldr r0, _02238EE8 ; =0x0223BE30 + ldr r4, _02238EEC ; =0x0223BC30 + ldr r0, [r0, #4] + cmp r0, #0 + beq _02238E66 + mov r0, #0x81 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_0201FFC8 + mov r0, #0x81 + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] +_02238E66: + mov r1, #0x51 + ldr r0, _02238EF0 ; =0x0223BC60 + lsl r1, r1, #2 + ldr r0, [r0, r1] + cmp r0, #0 + beq _02238E76 + bl FUN_02009C0C +_02238E76: + mov r1, #0x57 + ldr r0, _02238EF0 ; =0x0223BC60 + lsl r1, r1, #2 + ldr r0, [r0, r1] + cmp r0, #0 + beq _02238E86 + bl FUN_02009C0C +_02238E86: + mov r1, #0x52 + ldr r0, _02238EF0 ; =0x0223BC60 + lsl r1, r1, #2 + ldr r0, [r0, r1] + cmp r0, #0 + beq _02238E96 + bl FUN_02009E04 +_02238E96: + mov r1, #0x16 + ldr r0, _02238EF0 ; =0x0223BC60 + lsl r1, r1, #4 + ldr r0, [r0, r1] + cmp r0, #0 + beq _02238EA6 + bl FUN_02009E04 +_02238EA6: + mov r4, #0 + mov r7, #0x4b + ldr r5, _02238EF0 ; =0x0223BC60 + add r6, r4, #0 + lsl r7, r7, #2 +_02238EB0: + mov r0, #0x4b + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02008E2C + str r6, [r5, r7] + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _02238EB0 + ldr r0, _02238EF0 ; =0x0223BC60 + ldr r0, [r0] + bl FUN_0201FD58 + ldr r0, _02238EF0 ; =0x0223BC60 + mov r1, #0 + str r1, [r0] + bl FUN_02009FA0 + bl FUN_0201D12C + bl FUN_0201E08C + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02238EE8: .word 0x0223BE30 +_02238EEC: .word 0x0223BC30 +_02238EF0: .word 0x0223BC60 + thumb_func_end MOD83_02238E48 + + thumb_func_start MOD83_02238EF4 +MOD83_02238EF4: ; 0x02238EF4 + mov r1, #1 + sub r0, #0xa + lsl r1, r0 + add r0, r1, #0 + bx lr + .align 2, 0 + thumb_func_end MOD83_02238EF4 + + thumb_func_start MOD83_02238F00 +MOD83_02238F00: ; 0x02238F00 + push {r4, lr} + ldr r0, _02238F34 ; =0x0223CAB0 + ldr r4, _02238F38 ; =0x0223BC30 + ldr r0, [r0, #0x20] + cmp r0, #0 + beq _02238F1E + mov r1, #0xea + lsl r1, r1, #4 + ldr r1, [r4, r1] + add r0, r4, #0 + blx r1 + mov r0, #0xea + mov r1, #0 + lsl r0, r0, #4 + str r1, [r4, r0] +_02238F1E: + bl FUN_0201C30C + bl FUN_02009F80 + ldr r3, _02238F3C ; =0x027E0000 + ldr r1, _02238F40 ; =0x00003FF8 + mov r0, #1 + ldr r2, [r3, r1] + orr r0, r2 + str r0, [r3, r1] + pop {r4, pc} + .align 2, 0 +_02238F34: .word 0x0223CAB0 +_02238F38: .word 0x0223BC30 +_02238F3C: .word 0x027E0000 +_02238F40: .word 0x00003FF8 + thumb_func_end MOD83_02238F00 + + thumb_func_start MOD83_02238F44 +MOD83_02238F44: ; 0x02238F44 + push {r4} + sub sp, #0x1c + ldr r4, _02238F90 ; =0x0223A744 + add r3, sp, #0 + mov r2, #0x1a +_02238F4E: + ldrb r1, [r4] + add r4, r4, #1 + strb r1, [r3] + add r3, r3, #1 + sub r2, r2, #1 + bne _02238F4E + add r1, sp, #0 + ldrb r2, [r1] + mov r3, #0 + sub r1, r3, #1 + cmp r2, r1 + beq _02238F88 + add r4, sp, #0 + sub r1, r3, #1 +_02238F6A: + ldrb r2, [r4] + cmp r0, r2 + bne _02238F7E + add r0, sp, #0 + lsl r1, r3, #1 + add r0, #1 + add sp, #0x1c + ldrb r0, [r0, r1] + pop {r4} + bx lr +_02238F7E: + add r4, r4, #2 + ldrb r2, [r4] + add r3, r3, #1 + cmp r2, r1 + bne _02238F6A +_02238F88: + mov r0, #0 + add sp, #0x1c + pop {r4} + bx lr + .align 2, 0 +_02238F90: .word 0x0223A744 + thumb_func_end MOD83_02238F44 + + thumb_func_start MOD83_02238F94 +MOD83_02238F94: ; 0x02238F94 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + str r0, [sp, #0x20] + add r5, r1, #0 + add r7, r2, #0 + add r6, r3, #0 + ldr r4, [sp, #0x40] + bl FUN_020689E0 + str r0, [sp, #0x24] + ldr r0, [sp, #0x20] + bl FUN_02068A80 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + lsl r0, r7, #0x18 + ldr r2, [sp, #0x24] + lsr r0, r0, #0x18 + str r0, [sp, #4] + mov r0, #0 + lsl r1, r5, #0x10 + lsl r2, r2, #0x18 + str r0, [sp, #8] + add r0, r4, #0 + lsr r1, r1, #0x10 + lsr r2, r2, #0x18 + mov r3, #2 + bl FUN_02068C00 + mov r1, #0 + ldr r0, [sp, #0x20] + add r2, r1, #0 + bl FUN_020671BC + mov r3, #0 + str r3, [sp] + mov r1, #0xa + str r1, [sp, #4] + str r1, [sp, #8] + str r6, [sp, #0xc] + str r0, [sp, #0x10] + str r3, [sp, #0x14] + mov r0, #2 + str r0, [sp, #0x18] + str r5, [sp, #0x1c] + ldr r2, _0223902C ; =0x0223BC30 + ldrh r0, [r4] + ldrh r1, [r4, #2] + ldr r2, [r2, #4] + bl FUN_020124B4 + mov r1, #0x32 + add r0, r6, #0 + lsl r1, r1, #6 + bl DC_FlushRange + mov r1, #0x32 + lsl r1, r1, #6 + add r0, r6, #0 + add r2, r1, #0 + bl GXS_LoadOBJ + mov r0, #0x20 + str r0, [sp] + ldr r0, _0223902C ; =0x0223BC30 + mov r2, #5 + ldr r0, [r0, #4] + mov r3, #0x60 + str r0, [sp, #4] + ldrh r0, [r4] + ldrh r1, [r4, #4] + bl FUN_02006930 + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0223902C: .word 0x0223BC30 + thumb_func_end MOD83_02238F94 + + thumb_func_start MOD83_02239030 +MOD83_02239030: ; 0x02239030 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + mov r0, #0x21 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0x23 + mov r2, #0x20 + mov r3, #0x22 + bl MOD83_02238BC4 + mov r1, #1 + mov r0, #0 + lsl r1, r1, #0x14 + bl MOD83_02238D38 + mov r3, #0 + mov r1, #0x81 + str r3, [sp] + lsl r1, r1, #2 + ldr r1, [r4, r1] + mov r0, #1 + mov r2, #0x80 + bl MOD83_02238DBC + mov r1, #0x81 + lsl r1, r1, #2 + str r0, [r4, r1] + add sp, #8 + pop {r4, pc} + thumb_func_end MOD83_02239030 + + thumb_func_start MOD83_02239070 +MOD83_02239070: ; 0x02239070 + push {r4, r5, r6, lr} + sub sp, #8 + add r5, r0, #0 + mov r0, #0xc + str r0, [sp] + mov r0, #1 + add r6, r1, #0 + add r4, r2, #0 + str r0, [sp, #4] + mov r0, #0x36 + mov r1, #0xa + mov r2, #0 + mov r3, #0xb + bl MOD83_02238BC4 + mov r1, #1 + mov r0, #0 + lsl r1, r1, #0x14 + bl MOD83_02238D38 + mov r0, #1 + mov r1, #0x81 + str r0, [sp] + lsl r1, r1, #2 + ldr r1, [r5, r1] + mov r2, #0x80 + mov r3, #0 + bl MOD83_02238DBC + mov r3, #0x81 + lsl r3, r3, #2 + add r4, #8 + str r0, [r5, r3] + cmp r6, #1 + beq _022390C2 + cmp r6, #2 + beq _022390F4 + cmp r6, #7 + beq _02239110 + add sp, #8 + pop {r4, r5, r6, pc} +_022390C2: + add r0, r4, #0 + mov r1, #5 + mov r2, #0 + bl FUN_020671BC + add r6, r0, #0 + add r0, r4, #0 + mov r1, #0x70 + mov r2, #0 + bl FUN_020671BC + add r2, r0, #0 + mov r0, #0xe9 + lsl r0, r0, #4 + mov r3, #0x21 + add r0, r5, r0 + lsl r3, r3, #4 + str r0, [sp] + add r0, r4, #0 + add r1, r6, #0 + add r3, r5, r3 + bl MOD83_02238F94 + add sp, #8 + pop {r4, r5, r6, pc} +_022390F4: + mov r0, #0xe9 + lsl r0, r0, #4 + add r1, r3, #0 + add r0, r5, r0 + add r3, #0xc + str r0, [sp] + add r0, r4, #0 + sub r1, #0x16 + mov r2, #0 + add r3, r5, r3 + bl MOD83_02238F94 + add sp, #8 + pop {r4, r5, r6, pc} +_02239110: + mov r0, #0xe9 + lsl r0, r0, #4 + add r1, r3, #0 + add r0, r5, r0 + add r3, #0xc + str r0, [sp] + add r0, r4, #0 + sub r1, #0x16 + mov r2, #1 + add r3, r5, r3 + bl MOD83_02238F94 + add sp, #8 + pop {r4, r5, r6, pc} + thumb_func_end MOD83_02239070 + + thumb_func_start MOD83_0223912C +MOD83_0223912C: ; 0x0223912C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + cmp r1, #0xa + bhi _02239168 + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02239142: ; jump table + .short _02239168 - _02239142 - 2 ; case 0 + .short _02239168 - _02239142 - 2 ; case 1 + .short _02239168 - _02239142 - 2 ; case 2 + .short _02239158 - _02239142 - 2 ; case 3 + .short _02239168 - _02239142 - 2 ; case 4 + .short _02239168 - _02239142 - 2 ; case 5 + .short _02239168 - _02239142 - 2 ; case 6 + .short _02239168 - _02239142 - 2 ; case 7 + .short _0223915C - _02239142 - 2 ; case 8 + .short _02239160 - _02239142 - 2 ; case 9 + .short _02239166 - _02239142 - 2 ; case 10 +_02239158: + ldr r4, [r2, #4] + b _02239168 +_0223915C: + ldr r4, _022391C4 ; =0x000001C6 + b _02239168 +_02239160: + mov r4, #0x71 + lsl r4, r4, #2 + b _02239168 +_02239166: + ldr r4, _022391C8 ; =0x000001C7 +_02239168: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + mov r1, #1 + bl FUN_0206E640 + add r7, r0, #0 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + mov r1, #2 + bl FUN_0206E640 + add r4, r0, #0 + bl FUN_0206E708 + add r6, r0, #0 + bl FUN_0206E70C + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x10 + add r1, r7, #0 + add r2, r4, #0 + add r3, r6, #0 + bl MOD83_02238BC4 + mov r1, #1 + mov r0, #0 + lsl r1, r1, #0x14 + bl MOD83_02238D38 + mov r3, #0 + mov r1, #0x81 + str r3, [sp] + lsl r1, r1, #2 + ldr r1, [r5, r1] + mov r0, #1 + mov r2, #0x80 + bl MOD83_02238DBC + mov r1, #0x81 + lsl r1, r1, #2 + str r0, [r5, r1] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_022391C4: .word 0x000001C6 +_022391C8: .word 0x000001C7 + thumb_func_end MOD83_0223912C + + thumb_func_start MOD83_022391CC +MOD83_022391CC: ; 0x022391CC + push {r3, lr} + sub sp, #8 + mov r1, #0xc0 + str r1, [sp] + ldr r0, [r0, #4] + mov r2, #4 + add r3, r2, #0 + str r0, [sp, #4] + mov r0, #0x74 + mov r1, #0x1d + add r3, #0xfc + bl FUN_02006930 + add sp, #8 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022391CC + + thumb_func_start MOD83_022391EC +MOD83_022391EC: ; 0x022391EC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r6, r1, #0 + ldrh r4, [r6] + add r5, r0, #0 + add r0, r4, #0 + bl MOD83_02238F44 + add r7, r0, #0 + mov r0, #0 + str r0, [sp] + mov r0, #5 + lsl r0, r0, #0xa + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, _022392DC ; =0x0223BC30 + mov r1, #0x1e + ldr r0, [r0, #4] + add r2, r5, #0 + str r0, [sp, #0xc] + mov r0, #0x74 + mov r3, #5 + bl FUN_0200687C + mov r2, #1 + ldr r3, _022392DC ; =0x0223BC30 + str r2, [sp] + ldr r3, [r3, #4] + mov r0, #0x74 + mov r1, #0x1f + bl FUN_02006C98 + add r1, sp, #0x14 + str r0, [sp, #0x10] + bl FUN_020B0180 + ldr r2, [sp, #0x14] + mov r3, #6 + add r0, r5, #0 + mov r1, #5 + add r2, #0xc + lsl r3, r3, #8 + bl FUN_02017DFC + ldr r0, [sp, #0x10] + bl FUN_02016A18 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + mov r2, #0 + add r7, #8 + str r0, [sp, #4] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #8] + add r0, r5, #0 + mov r1, #5 + add r3, r2, #0 + bl FUN_020186B4 + add r0, r5, #0 + mov r1, #5 + bl FUN_02017CD0 + ldr r1, _022392E0 ; =MOD83_022391CC + ldr r0, _022392E4 ; =0x0223CAB0 + cmp r4, #0xb + str r1, [r0, #0x20] + bhi _022392CA + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02239286: ; jump table + .short _022392CA - _02239286 - 2 ; case 0 + .short _022392B4 - _02239286 - 2 ; case 1 + .short _022392B4 - _02239286 - 2 ; case 2 + .short _022392C0 - _02239286 - 2 ; case 3 + .short _0223929E - _02239286 - 2 ; case 4 + .short _0223929E - _02239286 - 2 ; case 5 + .short _0223929E - _02239286 - 2 ; case 6 + .short _022392AA - _02239286 - 2 ; case 7 + .short _022392C0 - _02239286 - 2 ; case 8 + .short _022392C0 - _02239286 - 2 ; case 9 + .short _022392C0 - _02239286 - 2 ; case 10 + .short _0223929E - _02239286 - 2 ; case 11 +_0223929E: + ldr r0, _022392E8 ; =0x0223BC30 + add r1, r4, #0 + add r2, r6, #0 + bl MOD83_02239030 + b _022392CA +_022392AA: + mov r1, #0x82 + ldr r0, _022392E8 ; =0x0223BC30 + mov r2, #0x78 + lsl r1, r1, #2 + str r2, [r0, r1] +_022392B4: + ldr r0, _022392E8 ; =0x0223BC30 + add r1, r4, #0 + add r2, r6, #0 + bl MOD83_02239070 + b _022392CA +_022392C0: + ldr r0, _022392E8 ; =0x0223BC30 + add r1, r4, #0 + add r2, r6, #0 + bl MOD83_0223912C +_022392CA: + mov r1, #0x81 + ldr r0, _022392E8 ; =0x0223BC30 + lsl r1, r1, #2 + ldr r0, [r0, r1] + mov r1, #0 + bl FUN_020200A0 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022392DC: .word 0x0223BC30 +_022392E0: .word MOD83_022391CC +_022392E4: .word 0x0223CAB0 +_022392E8: .word 0x0223BC30 + thumb_func_end MOD83_022391EC + + thumb_func_start MOD83_022392EC +MOD83_022392EC: ; 0x022392EC + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r7, r1, #0 + mov r1, #2 + add r5, r0, #0 + add r0, r2, #0 + lsl r1, r1, #8 + str r2, [sp] + bl FUN_02016998 + ldr r1, _0223936C ; =0x0000A001 + add r4, r0, #0 + bl MATHi_CRC16InitTableRev + add r0, r4, #0 + add r1, r5, #0 + mov r2, #0x50 + bl MATH_CalcCRC16 + add r6, r0, #0 + add r0, r4, #0 + bl FUN_02016A18 + add r0, sp, #4 + bl OS_GetMacAddress + add r0, sp, #4 + ldrh r1, [r0, #2] + mov r2, #0 + add r3, sp, #4 + strh r1, [r0, #6] + ldr r1, _02239370 ; =0x0000D679 + strh r6, [r0, #2] +_0223932E: + ldrh r0, [r3] + add r2, r2, #1 + eor r0, r1 + strh r0, [r3] + ldrh r1, [r3] + add r3, r3, #2 + cmp r2, #4 + blt _0223932E + mov r1, #0x41 + ldr r0, [sp] + lsl r1, r1, #2 + bl FUN_02016998 + add r1, sp, #4 + mov r2, #8 + add r4, r0, #0 + bl FUN_0209521C + add r5, #0x50 + mov r2, #0xd6 + add r0, r4, #0 + add r1, r5, #0 + lsl r2, r2, #2 + add r3, r7, #0 + bl FUN_020952AC + add r0, r4, #0 + bl FUN_02016A18 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0223936C: .word 0x0000A001 +_02239370: .word 0x0000D679 + thumb_func_end MOD83_022392EC + + thumb_func_start MOD83_02239374 +MOD83_02239374: ; 0x02239374 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r7, r1, #0 + mov r1, #2 + add r5, r0, #0 + add r0, r2, #0 + lsl r1, r1, #8 + str r2, [sp] + bl FUN_02016998 + ldr r1, _0223940C ; =0x0000A001 + add r4, r0, #0 + bl MATHi_CRC16InitTableRev + add r0, r4, #0 + add r1, r5, #0 + mov r2, #0x50 + bl MATH_CalcCRC16 + add r6, r0, #0 + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #0 + bl FUN_0202EF18 + ldrb r2, [r0, #4] + add r1, sp, #4 + mov r3, #0 + strb r2, [r1] + ldrb r2, [r0, #5] + strb r2, [r1, #1] + ldrb r2, [r0, #6] + strb r2, [r1, #2] + ldrb r2, [r0, #7] + strb r2, [r1, #3] + ldrb r2, [r0, #8] + strb r2, [r1, #4] + ldrb r0, [r0, #9] + strb r0, [r1, #5] + add r0, sp, #4 + ldrh r2, [r0, #2] + strh r2, [r0, #6] + ldr r2, _02239410 ; =0x0000D679 + strh r6, [r0, #2] +_022393CE: + ldrh r0, [r1] + add r3, r3, #1 + eor r0, r2 + strh r0, [r1] + ldrh r2, [r1] + add r1, r1, #2 + cmp r3, #4 + blt _022393CE + mov r1, #0x41 + ldr r0, [sp] + lsl r1, r1, #2 + bl FUN_02016998 + add r1, sp, #4 + mov r2, #8 + add r4, r0, #0 + bl FUN_0209521C + add r5, #0x50 + mov r2, #0xd6 + add r0, r4, #0 + add r1, r5, #0 + lsl r2, r2, #2 + add r3, r7, #0 + bl FUN_020952AC + add r0, r4, #0 + bl FUN_02016A18 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0223940C: .word 0x0000A001 +_02239410: .word 0x0000D679 + thumb_func_end MOD83_02239374 + + thumb_func_start MOD83_02239414 +MOD83_02239414: ; 0x02239414 + push {r3, lr} + cmp r2, #0 + beq _0223941E + cmp r2, #1 + pop {r3, pc} +_0223941E: + ldr r0, _02239428 ; =0x000005DC + bl FUN_020054C8 + pop {r3, pc} + nop +_02239428: .word 0x000005DC + thumb_func_end MOD83_02239414 + + thumb_func_start MOD83_0223942C +MOD83_0223942C: ; 0x0223942C + push {r3, lr} + ldr r0, _0223944C ; =0x027FFFA8 + ldrh r1, [r0] + mov r0, #2 + lsl r0, r0, #0xe + and r0, r1 + asr r0, r0, #0xf + bne _02239448 + bl CTRDG_IsAgbCartridge + cmp r0, #0 + bne _02239448 + bl CTRDG_TerminateForPulledOut +_02239448: + pop {r3, pc} + nop +_0223944C: .word 0x027FFFA8 + thumb_func_end MOD83_0223942C + + thumb_func_start MOD83_02239450 +MOD83_02239450: ; 0x02239450 + push {r3, lr} + cmp r0, #1 + bne _02239478 + ldr r1, _02239484 ; =0x04000208 + ldrh r0, [r1] + mov r0, #0 + strh r0, [r1] + lsr r0, r1, #0xd + ldr r1, _02239488 ; =MOD83_0223942C + bl OS_SetIrqFunction + mov r0, #2 + lsl r0, r0, #0xc + bl OS_EnableIrqMask + ldr r1, _02239484 ; =0x04000208 + ldrh r0, [r1] + mov r0, #1 + strh r0, [r1] + pop {r3, pc} +_02239478: + mov r0, #2 + lsl r0, r0, #0xc + bl OS_DisableIrqMask + pop {r3, pc} + nop +_02239484: .word 0x04000208 +_02239488: .word MOD83_0223942C + thumb_func_end MOD83_02239450 + + thumb_func_start MOD83_0223948C +MOD83_0223948C: ; 0x0223948C + bx lr + .align 2, 0 + thumb_func_end MOD83_0223948C + + thumb_func_start MOD83_02239490 +MOD83_02239490: ; 0x02239490 + push {r3, lr} + ldr r1, _022394B4 ; =0x04000208 + ldrh r0, [r1] + mov r0, #0 + strh r0, [r1] + lsr r0, r1, #0xd + ldr r1, _022394B8 ; =MOD83_0223948C + bl OS_SetIrqFunction + mov r0, #2 + lsl r0, r0, #0xc + bl OS_EnableIrqMask + ldr r1, _022394B4 ; =0x04000208 + ldrh r0, [r1] + mov r0, #1 + strh r0, [r1] + pop {r3, pc} + .align 2, 0 +_022394B4: .word 0x04000208 +_022394B8: .word MOD83_0223948C + thumb_func_end MOD83_02239490 + + thumb_func_start MOD83_022394BC +MOD83_022394BC: ; 0x022394BC + ldr r1, _022394C8 ; =0x0223BC30 + str r0, [r1, #0x14] + mov r0, #0 + str r0, [r1, #0x10] + bx lr + nop +_022394C8: .word 0x0223BC30 + thumb_func_end MOD83_022394BC + + thumb_func_start MOD83_022394CC +MOD83_022394CC: ; 0x022394CC + push {r3, r4, r5, lr} + ldr r0, _0223953C ; =0x0223BC30 + ldr r4, _02239540 ; =0x0223BC30 + ldr r0, [r0, #0x10] + cmp r0, #4 + bhi _02239538 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022394E4: ; jump table + .short _022394EE - _022394E4 - 2 ; case 0 + .short _02239504 - _022394E4 - 2 ; case 1 + .short _02239538 - _022394E4 - 2 ; case 2 + .short _02239538 - _022394E4 - 2 ; case 3 + .short _02239538 - _022394E4 - 2 ; case 4 +_022394EE: + mov r0, #4 + bl FUN_020166A8 + ldr r0, [r4, #0x14] + mov r1, #2 + bl FUN_02022840 + ldr r0, [r4, #0x10] + add r0, r0, #1 + str r0, [r4, #0x10] + b _02239538 +_02239504: + ldr r0, [r4, #0x14] + bl FUN_02022854 + add r5, r0, #0 + cmp r5, #3 + bne _02239516 + mov r0, #3 + str r0, [r4, #0x10] + b _02239528 +_02239516: + cmp r5, #2 + bne _02239520 + mov r0, #2 + str r0, [r4, #0x10] + b _02239528 +_02239520: + cmp r5, #1 + bne _02239528 + mov r0, #4 + str r0, [r4, #0x10] +_02239528: + sub r0, r5, #2 + cmp r0, #1 + bhi _02239534 + mov r0, #4 + bl FUN_020166B8 +_02239534: + add r0, r5, #0 + pop {r3, r4, r5, pc} +_02239538: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_0223953C: .word 0x0223BC30 +_02239540: .word 0x0223BC30 + thumb_func_end MOD83_022394CC + + thumb_func_start MOD83_02239544 +MOD83_02239544: ; 0x02239544 + ldr r0, _02239554 ; =0x0223BC30 + ldr r1, _02239558 ; =0x0223BC30 + ldr r0, [r0, #0x10] + cmp r0, #4 + bne _02239552 + mov r0, #1 + str r0, [r1, #0x10] +_02239552: + bx lr + .align 2, 0 +_02239554: .word 0x0223BC30 +_02239558: .word 0x0223BC30 + thumb_func_end MOD83_02239544 + + thumb_func_start MOD83_0223955C +MOD83_0223955C: ; 0x0223955C + push {r3, lr} + ldr r0, _02239570 ; =0x0223BC30 + ldr r0, [r0, #0x14] + bl FUN_0202287C + mov r0, #4 + bl FUN_020166B8 + pop {r3, pc} + nop +_02239570: .word 0x0223BC30 + thumb_func_end MOD83_0223955C + + thumb_func_start MOD83_02239574 +MOD83_02239574: ; 0x02239574 + ldr r0, _0223957C ; =0x0223BC30 + ldr r0, [r0, #0x10] + bx lr + nop +_0223957C: .word 0x0223BC30 + thumb_func_end MOD83_02239574 + + thumb_func_start MOD83_02239580 +MOD83_02239580: ; 0x02239580 + push {r4, lr} + ldr r1, _022395BC ; =0x0223CAD4 + add r4, r0, #0 + ldr r2, [r1, #4] + cmp r2, #0 + beq _0223959C + ldr r3, [r1] + ldr r1, _022395C0 ; =0x00001150 + ldr r0, _022395C4 ; =0x0223B80C + ldr r1, [r3, r1] + lsl r3, r1, #2 + ldr r1, _022395C8 ; =0x0223B7E4 + ldr r1, [r1, r3] + blx r2 +_0223959C: + ldr r3, _022395BC ; =0x0223CAD4 + ldr r1, _022395C0 ; =0x00001150 + ldr r0, [r3] + str r4, [r0, r1] + ldr r2, [r3, #4] + cmp r2, #0 + beq _022395B8 + ldr r3, [r3] + ldr r0, _022395CC ; =0x0223B814 + ldr r1, [r3, r1] + lsl r3, r1, #2 + ldr r1, _022395C8 ; =0x0223B7E4 + ldr r1, [r1, r3] + blx r2 +_022395B8: + pop {r4, pc} + nop +_022395BC: .word 0x0223CAD4 +_022395C0: .word 0x00001150 +_022395C4: .word 0x0223B80C +_022395C8: .word 0x0223B7E4 +_022395CC: .word 0x0223B814 + thumb_func_end MOD83_02239580 + + thumb_func_start MOD83_022395D0 +MOD83_022395D0: ; 0x022395D0 + ldr r1, _022395E4 ; =0x0223CAD4 + ldr r3, [r1] + ldr r1, _022395E8 ; =0x00001150 + ldr r2, [r3, r1] + sub r2, #9 + cmp r2, #1 + bls _022395E2 + add r1, r1, #4 + str r0, [r3, r1] +_022395E2: + bx lr + .align 2, 0 +_022395E4: .word 0x0223CAD4 +_022395E8: .word 0x00001150 + thumb_func_end MOD83_022395D0 + + thumb_func_start MOD83_022395EC +MOD83_022395EC: ; 0x022395EC + push {r4, lr} + ldr r0, _02239658 ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _0223965C ; =0x00001150 + ldr r0, [r1, r0] + cmp r0, #4 + bne _022395FE + bl OS_Terminate +_022395FE: + mov r0, #2 + bl MOD83_02239580 + ldr r3, _02239658 ; =0x0223CAD4 + ldr r0, _02239660 ; =0x0000FFFF + ldr r2, [r3] + ldr r1, _02239664 ; =0x00000FCC + strh r0, [r2, r1] + sub r2, r1, #2 + ldr r4, [r3] + sub r1, r1, #4 + strh r0, [r4, r2] + ldr r2, [r3] + strh r0, [r2, r1] + bl MOD83_02239670 + cmp r0, #0 + bne _0223963C + mov r0, #9 + bl MOD83_02239580 + ldr r0, _02239658 ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _02239668 ; =0x0000117C + ldr r1, [r1, r0] + cmp r1, #0 + beq _02239638 + mov r0, #4 + blx r1 +_02239638: + mov r0, #0 + pop {r4, pc} +_0223963C: + ldr r1, _02239658 ; =0x0223CAD4 + ldr r0, _0223966C ; =0x00001158 + ldr r2, [r1] + mov r3, #2 + strh r3, [r2, r0] + ldr r1, [r1] + add r0, #0x24 + ldr r1, [r1, r0] + cmp r1, #0 + beq _02239654 + mov r0, #0 + blx r1 +_02239654: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_02239658: .word 0x0223CAD4 +_0223965C: .word 0x00001150 +_02239660: .word 0x0000FFFF +_02239664: .word 0x00000FCC +_02239668: .word 0x0000117C +_0223966C: .word 0x00001158 + thumb_func_end MOD83_022395EC + + thumb_func_start MOD83_02239670 +MOD83_02239670: ; 0x02239670 + push {r3, r4, r5, r6, r7, lr} + ldr r0, _02239748 ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _0223974C ; =0x00001150 + ldr r0, [r1, r0] + cmp r0, #2 + beq _02239684 + bl OS_Terminate + mov r0, #0 +_02239684: + bl WM_GetAllowedChannel + add r4, r0, #0 + mov r0, #2 + lsl r0, r0, #0xe + cmp r4, r0 + bne _0223969C + mov r0, #3 + bl MOD83_022395D0 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0223969C: + cmp r4, #0 + bne _022396AA + mov r0, #0x16 + bl MOD83_022395D0 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_022396AA: + ldr r0, _02239748 ; =0x0223CAD4 + ldr r2, [r0] + ldr r0, _02239750 ; =0x00001176 + ldrh r1, [r2, r0] + cmp r1, #0x10 + blo _022396EC + sub r1, #0x10 + mov r5, #0 + mov r7, #0xd + mov r6, #1 + b _022396D2 +_022396C0: + add r0, r1, #1 + add r1, r7, #0 + bl _s32_div_f + add r0, r6, #0 + lsl r0, r1 + tst r0, r4 + bne _022396D6 + add r5, r5, #1 +_022396D2: + cmp r5, #0xd + blt _022396C0 +_022396D6: + ldr r2, _02239748 ; =0x0223CAD4 + add r4, r1, #0 + ldr r3, [r2] + ldr r0, _02239750 ; =0x00001176 + add r4, #0x10 + strh r4, [r3, r0] + add r3, r1, #1 + ldr r1, [r2] + ldr r0, _02239754 ; =0x00000FC4 + strh r3, [r1, r0] + b _022396F0 +_022396EC: + ldr r0, _02239754 ; =0x00000FC4 + strh r1, [r2, r0] +_022396F0: + ldr r2, _02239748 ; =0x0223CAD4 + ldr r0, _02239758 ; =0x00000FC6 + ldr r1, [r2] + mov r3, #0xdc + strh r3, [r1, r0] + add r1, r0, #0 + ldr r3, [r2] + sub r1, #0xc6 + add r1, r3, r1 + sub r0, r0, #6 + str r1, [r3, r0] + ldr r1, [r2] + ldr r0, _0223975C ; =0x00001158 + ldrh r0, [r1, r0] + cmp r0, #3 + bne _02239726 + mov r5, #0 + ldr r0, _02239760 ; =0x00001170 + ldr r1, _02239764 ; =0x00000FC8 + b _02239722 +_02239718: + ldr r3, [r2] + add r4, r3, r5 + ldrb r3, [r4, r0] + add r5, r5, #1 + strb r3, [r4, r1] +_02239722: + cmp r5, #6 + blt _02239718 +_02239726: + ldr r1, _02239748 ; =0x0223CAD4 + ldr r0, _02239768 ; =MOD83_0223976C + ldr r2, [r1] + mov r1, #0x3f + lsl r1, r1, #6 + add r1, r2, r1 + bl WM_StartScan + cmp r0, #2 + beq _02239742 + bl MOD83_022395D0 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_02239742: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + nop +_02239748: .word 0x0223CAD4 +_0223974C: .word 0x00001150 +_02239750: .word 0x00001176 +_02239754: .word 0x00000FC4 +_02239758: .word 0x00000FC6 +_0223975C: .word 0x00001158 +_02239760: .word 0x00001170 +_02239764: .word 0x00000FC8 +_02239768: .word MOD83_0223976C + thumb_func_end MOD83_02239670 + + thumb_func_start MOD83_0223976C +MOD83_0223976C: ; 0x0223976C + push {r3, r4, r5, lr} + add r4, r0, #0 + ldrh r0, [r4, #2] + cmp r0, #0 + beq _02239792 + bl MOD83_022395D0 + mov r0, #9 + bl MOD83_02239580 + ldr r0, _02239880 ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _02239884 ; =0x0000117C + ldr r1, [r1, r0] + cmp r1, #0 + beq _0223987E + mov r0, #4 + blx r1 + pop {r3, r4, r5, pc} +_02239792: + ldr r0, _02239880 ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _02239888 ; =0x00001150 + ldr r0, [r1, r0] + cmp r0, #2 + beq _022397BE + bl MOD83_022398A4 + cmp r0, #0 + bne _0223987E + mov r0, #9 + bl MOD83_02239580 + ldr r0, _02239880 ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _02239884 ; =0x0000117C + ldr r1, [r1, r0] + cmp r1, #0 + beq _0223987E + mov r0, #4 + blx r1 + pop {r3, r4, r5, pc} +_022397BE: + ldrh r0, [r4, #8] + cmp r0, #3 + beq _0223987E + cmp r0, #4 + beq _02239860 + cmp r0, #5 + bne _02239860 + mov r0, #0xf + lsl r0, r0, #8 + add r0, r1, r0 + mov r1, #0xc0 + bl DC_InvalidateRange + ldrh r0, [r4, #0x36] + cmp r0, #8 + blo _022397E6 + ldr r1, [r4, #0x3c] + ldr r0, _0223988C ; =0x00400318 + cmp r1, r0 + beq _022397F8 +_022397E6: + ldr r0, _02239880 ; =0x0223CAD4 + ldr r3, [r0, #4] + cmp r3, #0 + beq _02239860 + ldr r0, _02239890 ; =0x0223B818 + ldr r1, [r4, #0x3c] + ldr r2, _0223988C ; =0x00400318 + blx r3 + b _02239860 +_022397F8: + ldr r1, _02239880 ; =0x0223CAD4 + ldrh r3, [r4, #0x12] + ldr r2, [r1] + ldr r0, _02239894 ; =0x0000116C + str r3, [r2, r0] + ldr r1, [r1] + sub r0, #0x14 + ldrh r0, [r1, r0] + cmp r0, #2 + bne _02239844 + add r0, r4, #0 + add r0, #0x48 + bl MOD83_02239B00 + ldr r2, _02239880 ; =0x0223CAD4 + ldr r1, _02239898 ; =0x00001170 + mov r0, #0 +_0223981A: + add r3, r4, r0 + ldrb r5, [r3, #0xa] + ldr r3, [r2] + add r3, r3, r0 + add r0, r0, #1 + strb r5, [r3, r1] + cmp r0, #6 + blt _0223981A + ldr r1, _02239880 ; =0x0223CAD4 + ldr r0, _0223989C ; =0x00001176 + ldr r3, [r1] + ldrh r2, [r3, r0] + sub r2, #0xf + strh r2, [r3, r0] + ldr r1, [r1] + add r0, r0, #6 + ldr r1, [r1, r0] + cmp r1, #0 + beq _02239844 + mov r0, #1 + blx r1 +_02239844: + add r4, #0x48 + add r0, r4, #0 + bl MOD83_02239B80 + cmp r0, #0 + beq _02239860 + ldr r0, _02239880 ; =0x0223CAD4 + mov r2, #4 + ldr r1, [r0] + ldr r0, _022398A0 ; =0x00001158 + strh r2, [r1, r0] + bl MOD83_02239A14 + pop {r3, r4, r5, pc} +_02239860: + bl MOD83_02239670 + cmp r0, #0 + bne _0223987E + mov r0, #9 + bl MOD83_02239580 + ldr r0, _02239880 ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _02239884 ; =0x0000117C + ldr r1, [r1, r0] + cmp r1, #0 + beq _0223987E + mov r0, #4 + blx r1 +_0223987E: + pop {r3, r4, r5, pc} + .align 2, 0 +_02239880: .word 0x0223CAD4 +_02239884: .word 0x0000117C +_02239888: .word 0x00001150 +_0223988C: .word 0x00400318 +_02239890: .word 0x0223B818 +_02239894: .word 0x0000116C +_02239898: .word 0x00001170 +_0223989C: .word 0x00001176 +_022398A0: .word 0x00001158 + thumb_func_end MOD83_0223976C + + thumb_func_start MOD83_022398A4 +MOD83_022398A4: ; 0x022398A4 + push {r3, lr} + ldr r0, _022398BC ; =MOD83_022398C0 + bl WM_EndScan + cmp r0, #2 + beq _022398B8 + bl MOD83_022395D0 + mov r0, #0 + pop {r3, pc} +_022398B8: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_022398BC: .word MOD83_022398C0 + thumb_func_end MOD83_022398A4 + + thumb_func_start MOD83_022398C0 +MOD83_022398C0: ; 0x022398C0 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _022398CE + bl MOD83_022395D0 + pop {r3, pc} +_022398CE: + mov r0, #1 + bl MOD83_02239580 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD83_022398C0 + + thumb_func_start MOD83_022398D8 +MOD83_022398D8: ; 0x022398D8 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _022398E8 + mov r0, #0xa + bl MOD83_02239580 + pop {r3, pc} +_022398E8: + mov r0, #0 + bl MOD83_02239580 + ldr r0, _02239900 ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _02239904 ; =0x0000117C + ldr r1, [r1, r0] + cmp r1, #0 + beq _022398FE + mov r0, #3 + blx r1 +_022398FE: + pop {r3, pc} + .align 2, 0 +_02239900: .word 0x0223CAD4 +_02239904: .word 0x0000117C + thumb_func_end MOD83_022398D8 + + thumb_func_start MOD83_02239908 +MOD83_02239908: ; 0x02239908 + push {r3, lr} + ldr r0, _02239924 ; =0x0223CAD4 + mov r2, #0 + ldr r1, [r0] + ldr r0, _02239928 ; =0x00001154 + str r2, [r1, r0] + bl MOD83_02239954 + cmp r0, #0 + beq _02239920 + mov r0, #1 + pop {r3, pc} +_02239920: + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_02239924: .word 0x0223CAD4 +_02239928: .word 0x00001154 + thumb_func_end MOD83_02239908 + + thumb_func_start MOD83_0223992C +MOD83_0223992C: ; 0x0223992C + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #8 + bne _0223994A + mov r0, #9 + bl MOD83_02239580 + ldr r0, _0223994C ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _02239950 ; =0x0000117C + ldr r1, [r1, r0] + cmp r1, #0 + beq _0223994A + mov r0, #4 + blx r1 +_0223994A: + pop {r3, pc} + .align 2, 0 +_0223994C: .word 0x0223CAD4 +_02239950: .word 0x0000117C + thumb_func_end MOD83_0223992C + + thumb_func_start MOD83_02239954 +MOD83_02239954: ; 0x02239954 + push {r3, lr} + mov r0, #3 + bl MOD83_02239580 + ldr r0, _02239980 ; =0x0223CAD4 + ldr r1, _02239984 ; =MOD83_02239988 + ldr r0, [r0] + mov r2, #2 + bl WM_Initialize + cmp r0, #2 + beq _0223997A + bl MOD83_022395D0 + mov r0, #0xa + bl MOD83_02239580 + mov r0, #0 + pop {r3, pc} +_0223997A: + mov r0, #1 + pop {r3, pc} + nop +_02239980: .word 0x0223CAD4 +_02239984: .word MOD83_02239988 + thumb_func_end MOD83_02239954 + + thumb_func_start MOD83_02239988 +MOD83_02239988: ; 0x02239988 + push {r3, lr} + ldrh r0, [r0, #2] + cmp r0, #0 + beq _0223999C + bl MOD83_022395D0 + mov r0, #0xa + bl MOD83_02239580 + pop {r3, pc} +_0223999C: + ldr r0, _022399C0 ; =MOD83_0223992C + bl WM_SetIndCallback + cmp r0, #0 + beq _022399B2 + bl MOD83_022395D0 + mov r0, #0xa + bl MOD83_02239580 + pop {r3, pc} +_022399B2: + mov r0, #1 + bl MOD83_02239580 + bl MOD83_022395EC + pop {r3, pc} + nop +_022399C0: .word MOD83_0223992C + thumb_func_end MOD83_02239988 + + thumb_func_start MOD83_022399C4 +MOD83_022399C4: ; 0x022399C4 + push {r3, lr} + ldr r0, _02239A04 ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _02239A08 ; =0x00001150 + ldr r0, [r1, r0] + cmp r0, #1 + beq _022399D6 + bl OS_Terminate +_022399D6: + mov r0, #3 + bl MOD83_02239580 + ldr r0, _02239A0C ; =MOD83_022398D8 + bl WM_End + cmp r0, #2 + beq _02239A00 + mov r0, #9 + bl MOD83_02239580 + ldr r0, _02239A04 ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _02239A10 ; =0x0000117C + ldr r1, [r1, r0] + cmp r1, #0 + beq _022399FC + mov r0, #4 + blx r1 +_022399FC: + mov r0, #0 + pop {r3, pc} +_02239A00: + mov r0, #1 + pop {r3, pc} + .align 2, 0 +_02239A04: .word 0x0223CAD4 +_02239A08: .word 0x00001150 +_02239A0C: .word MOD83_022398D8 +_02239A10: .word 0x0000117C + thumb_func_end MOD83_022399C4 + + thumb_func_start MOD83_02239A14 +MOD83_02239A14: ; 0x02239A14 + push {r3, lr} + ldr r0, _02239A30 ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _02239A34 ; =0x00001150 + ldr r0, [r1, r0] + cmp r0, #1 + bne _02239A28 + bl MOD83_022399C4 + pop {r3, pc} +_02239A28: + bl MOD83_02239A38 + pop {r3, pc} + nop +_02239A30: .word 0x0223CAD4 +_02239A34: .word 0x00001150 + thumb_func_end MOD83_02239A14 + + thumb_func_start MOD83_02239A38 +MOD83_02239A38: ; 0x02239A38 + push {r3, lr} + mov r0, #3 + bl MOD83_02239580 + ldr r0, _02239A58 ; =MOD83_02239A5C + bl WM_Reset + cmp r0, #2 + beq _02239A52 + bl MOD83_022395D0 + mov r0, #0 + pop {r3, pc} +_02239A52: + mov r0, #1 + pop {r3, pc} + nop +_02239A58: .word MOD83_02239A5C + thumb_func_end MOD83_02239A38 + + thumb_func_start MOD83_02239A5C +MOD83_02239A5C: ; 0x02239A5C + push {r4, lr} + add r4, r0, #0 + ldrh r0, [r4, #2] + cmp r0, #0 + beq _02239A84 + mov r0, #9 + bl MOD83_02239580 + ldrh r0, [r4, #2] + bl MOD83_022395D0 + ldr r0, _02239A90 ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _02239A94 ; =0x0000117C + ldr r1, [r1, r0] + cmp r1, #0 + beq _02239A8E + mov r0, #4 + blx r1 + pop {r4, pc} +_02239A84: + mov r0, #1 + bl MOD83_02239580 + bl MOD83_022399C4 +_02239A8E: + pop {r4, pc} + .align 2, 0 +_02239A90: .word 0x0223CAD4 +_02239A94: .word 0x0000117C + thumb_func_end MOD83_02239A5C + + thumb_func_start MOD83_02239A98 +MOD83_02239A98: ; 0x02239A98 + push {r3, r4, r5, r6, r7, lr} + add r3, r0, #0 + add r2, #0x1f + mov r0, #0x1f + bic r2, r0 + ldr r5, _02239AF4 ; =0x0223CAD4 + ldr r4, _02239AF8 ; =0x00001150 + str r2, [r5] + mov r0, #0 + str r0, [r2, r4] + add r2, r4, #0 + ldr r6, [r5] + mov r7, #1 + add r2, #8 + strh r7, [r6, r2] + add r2, r4, #0 + ldr r6, [r5] + add r2, #0x28 + str r3, [r6, r2] + add r2, r4, #0 + ldr r3, [r5] + add r2, #0xc + strh r0, [r3, r2] + add r2, r4, #0 + ldr r3, [r5] + add r2, #0xe + strh r0, [r3, r2] + add r2, r4, #0 + ldr r3, [r5] + add r2, #0x2c + str r1, [r3, r2] + add r2, r4, #0 + ldr r3, [r5] + mov r1, #0x10 + add r2, #0x26 + strh r1, [r3, r2] + ldr r3, [r5] + ldr r2, _02239AFC ; =0x00001048 + sub r1, #0x11 + str r0, [r3, r2] + ldr r0, [r5] + add r4, #0x1c + str r1, [r0, r4] + bl MOD83_02239908 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02239AF4: .word 0x0223CAD4 +_02239AF8: .word 0x00001150 +_02239AFC: .word 0x00001048 + thumb_func_end MOD83_02239A98 + + thumb_func_start MOD83_02239B00 +MOD83_02239B00: ; 0x02239B00 + push {r4, r5, r6, lr} + ldr r3, _02239B70 ; =0x0223CAD4 + ldr r1, _02239B74 ; =0x00001048 + ldr r2, [r3] + mov r4, #0 + str r4, [r2, r1] + ldr r1, [r3] + ldr r2, _02239B78 ; =0x00001158 + mov r4, #3 + strh r4, [r1, r2] + ldrh r5, [r0] + ldr r4, [r3] + add r1, r2, #2 + strh r5, [r4, r1] + ldr r4, [r0, #4] + add r0, r2, #0 + ldr r1, [r3] + add r0, #8 + str r4, [r1, r0] + ldr r4, [r3] + add r2, #8 + ldr r0, [r4, r2] + mov r1, #0x68 + sub r0, r0, #1 + bl _u32_div_f + ldr r2, _02239B7C ; =0x0000115C + add r0, r0, #1 + strh r0, [r4, r2] + ldr r4, _02239B70 ; =0x0223CAD4 + mov r0, #0 + ldr r3, [r4] + add r1, r2, #2 + strh r0, [r3, r1] + add r1, r2, #0 + ldr r3, [r4] + add r1, #8 + str r0, [r3, r1] + ldr r1, [r4] + ldrh r2, [r1, r2] + cmp r2, #0 + ble _02239B6C + mov r2, #0x46 + lsl r2, r2, #6 + add r3, r2, #0 + add r6, r0, #0 + sub r3, #0x24 +_02239B5E: + add r1, r1, r0 + strb r6, [r1, r2] + ldr r1, [r4] + add r0, r0, #1 + ldrh r5, [r1, r3] + cmp r0, r5 + blt _02239B5E +_02239B6C: + pop {r4, r5, r6, pc} + nop +_02239B70: .word 0x0223CAD4 +_02239B74: .word 0x00001048 +_02239B78: .word 0x00001158 +_02239B7C: .word 0x0000115C + thumb_func_end MOD83_02239B00 + + thumb_func_start MOD83_02239B80 +MOD83_02239B80: ; 0x02239B80 + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r0, _02239C9C ; =0x0223CAD4 + ldrh r1, [r4] + ldr r3, [r0] + ldr r0, _02239CA0 ; =0x0000115A + ldrh r2, [r3, r0] + cmp r2, r1 + bne _02239B9C + add r0, r0, #6 + ldr r1, [r3, r0] + ldr r0, [r4, #4] + cmp r1, r0 + beq _02239BC8 +_02239B9C: + ldr r0, _02239C9C ; =0x0223CAD4 + ldr r3, [r0] + ldr r0, _02239CA4 ; =0x00001164 + ldr r2, [r3, r0] + add r1, r2, #1 + str r1, [r3, r0] + cmp r2, #0x10 + blo _02239BC4 + add r0, r4, #0 + bl MOD83_02239B00 + ldr r0, _02239C9C ; =0x0223CAD4 + ldr r1, [r0] + ldr r0, _02239CA8 ; =0x0000117C + ldr r1, [r1, r0] + cmp r1, #0 + beq _02239BC8 + mov r0, #5 + blx r1 + b _02239BC8 +_02239BC4: + mov r0, #0 + pop {r3, r4, r5, pc} +_02239BC8: + ldrh r3, [r4, #2] + ldr r0, _02239CAC ; =0x0000FFFF + cmp r3, r0 + bne _02239BF0 + ldr r1, _02239C9C ; =0x0223CAD4 + add r4, #8 + ldr r2, [r1] + mov r1, #0xfe + lsl r1, r1, #4 + add r1, r2, r1 + add r0, r4, #0 + mov r2, #0x68 + bl MIi_CpuCopy32 + ldr r0, _02239C9C ; =0x0223CAD4 + mov r2, #1 + ldr r1, [r0] + ldr r0, _02239CB0 ; =0x00001048 + str r2, [r1, r0] + b _02239C98 +_02239BF0: + ldr r1, _02239C9C ; =0x0223CAD4 + ldr r0, _02239CB4 ; =0x00001168 + ldr r2, [r1] + str r3, [r2, r0] + ldr r3, [r1] + add r1, r0, #0 + sub r1, #0xc + ldrh r2, [r4, #2] + ldrh r1, [r3, r1] + cmp r2, r1 + blo _02239C18 + add r0, #0x14 + ldr r1, [r3, r0] + cmp r1, #0 + beq _02239C12 + mov r0, #4 + blx r1 +_02239C12: + mov r0, #9 + bl MOD83_02239580 +_02239C18: + ldr r0, _02239C9C ; =0x0223CAD4 + mov r2, #0x46 + ldr r1, [r0] + lsl r2, r2, #6 + ldrh r3, [r4, #2] + add r5, r1, r2 + ldrb r1, [r5, r3] + cmp r1, #0 + bne _02239C98 + mov r1, #1 + strb r1, [r5, r3] + ldr r5, [r0] + add r0, r2, #0 + sub r0, #0x24 + ldrh r0, [r5, r0] + ldrh r1, [r4, #2] + sub r0, r0, #1 + cmp r1, r0 + bne _02239C5C + add r3, r1, #0 + add r1, r2, #0 + sub r1, #8 + sub r2, #0x20 + mov r0, #0x68 + ldr r1, [r5, r1] + mul r3, r0 + ldr r2, [r5, r2] + add r4, #8 + add r0, r4, #0 + add r1, r1, r3 + sub r2, r2, r3 + bl MIi_CpuCopy32 + b _02239C70 +_02239C5C: + add r4, #8 + sub r2, #8 + add r0, r4, #0 + ldr r4, [r5, r2] + mov r2, #0x68 + add r3, r1, #0 + mul r3, r2 + add r1, r4, r3 + bl MIi_CpuCopy32 +_02239C70: + ldr r1, _02239C9C ; =0x0223CAD4 + ldr r0, _02239CB8 ; =0x0000115E + ldr r3, [r1] + ldrh r2, [r3, r0] + add r2, r2, #1 + strh r2, [r3, r0] + ldr r3, [r1] + sub r1, r0, #2 + ldrh r2, [r3, r0] + ldrh r1, [r3, r1] + cmp r2, r1 + bne _02239C98 + add r0, #0x1e + ldr r1, [r3, r0] + cmp r1, #0 + beq _02239C94 + mov r0, #2 + blx r1 +_02239C94: + mov r0, #1 + pop {r3, r4, r5, pc} +_02239C98: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_02239C9C: .word 0x0223CAD4 +_02239CA0: .word 0x0000115A +_02239CA4: .word 0x00001164 +_02239CA8: .word 0x0000117C +_02239CAC: .word 0x0000FFFF +_02239CB0: .word 0x00001048 +_02239CB4: .word 0x00001168 +_02239CB8: .word 0x0000115E + thumb_func_end MOD83_02239B80 + + thumb_func_start MOD83_02239CBC +MOD83_02239CBC: ; 0x02239CBC + push {r3, r4} + mov r2, #0 + add r3, r2, #0 + lsr r1, r1, #1 + beq _02239CE4 +_02239CC6: + lsl r4, r3, #1 + ldrh r4, [r0, r4] + add r3, r3, #1 + lsl r3, r3, #0x10 + add r2, r2, r4 + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + lsl r4, r2, #1 + asr r2, r2, #0xf + orr r2, r4 + lsl r2, r2, #0x10 + lsr r3, r3, #0x10 + lsr r2, r2, #0x10 + cmp r3, r1 + blo _02239CC6 +_02239CE4: + add r0, r2, #0 + pop {r3, r4} + bx lr + .align 2, 0 + thumb_func_end MOD83_02239CBC + + thumb_func_start MOD83_02239CEC +MOD83_02239CEC: ; 0x02239CEC + push {r4, lr} + sub sp, #8 + ldr r0, _02239D80 ; =0x0223CAD4 + add r1, sp, #0 + ldr r4, [r0] + ldr r0, _02239D84 ; =0x00001170 + add r3, r4, r0 + ldrh r2, [r3] + sub r0, #0x16 + strh r2, [r1] + ldrh r2, [r3, #2] + strh r2, [r1, #6] + ldrh r2, [r3, #4] + add r3, sp, #0 + strh r2, [r1, #4] + ldrh r0, [r4, r0] + ldr r2, _02239D88 ; =0x00003FA2 + strh r0, [r1, #2] + mov r1, #0 +_02239D12: + ldrh r0, [r3] + add r1, r1, #1 + eor r0, r2 + strh r0, [r3] + ldrh r2, [r3] + add r3, r3, #2 + cmp r1, #4 + blt _02239D12 + ldr r0, _02239D80 ; =0x0223CAD4 + mov r2, #8 + ldr r1, [r0] + ldr r0, _02239D8C ; =0x0000104C + add r0, r1, r0 + add r1, sp, #0 + bl FUN_0209521C + ldr r0, _02239D80 ; =0x0223CAD4 + ldr r2, _02239D90 ; =0x00001178 + ldr r3, [r0] + ldr r0, _02239D8C ; =0x0000104C + ldr r1, [r3, r2] + sub r2, #0x18 + ldr r2, [r3, r2] + add r0, r3, r0 + add r3, r1, #0 + bl FUN_020952AC + ldr r1, _02239D80 ; =0x0223CAD4 + ldr r2, _02239D8C ; =0x0000104C + ldr r1, [r1] + mov r0, #0 + add r1, r1, r2 + lsr r2, r2, #4 + bl MIi_CpuClear32 + ldr r0, _02239D80 ; =0x0223CAD4 + ldr r1, _02239D90 ; =0x00001178 + ldr r2, [r0] + ldr r0, [r2, r1] + sub r1, #0x18 + ldr r1, [r2, r1] + bl MOD83_02239CBC + ldr r1, _02239D80 ; =0x0223CAD4 + ldr r2, [r1] + ldr r1, _02239D94 ; =0x0000115A + ldrh r1, [r2, r1] + cmp r1, r0 + bne _02239D7A + add sp, #8 + mov r0, #1 + pop {r4, pc} +_02239D7A: + mov r0, #0 + add sp, #8 + pop {r4, pc} + .align 2, 0 +_02239D80: .word 0x0223CAD4 +_02239D84: .word 0x00001170 +_02239D88: .word 0x00003FA2 +_02239D8C: .word 0x0000104C +_02239D90: .word 0x00001178 +_02239D94: .word 0x0000115A + thumb_func_end MOD83_02239CEC + + thumb_func_start MOD83_02239D98 +MOD83_02239D98: ; 0x02239D98 + ldr r0, _02239D9C ; =0x000016A0 + bx lr + .align 2, 0 +_02239D9C: .word 0x000016A0 + thumb_func_end MOD83_02239D98 + + thumb_func_start MOD83_02239DA0 +MOD83_02239DA0: ; 0x02239DA0 + ldr r0, _02239DB8 ; =0x0223CAD4 + ldr r2, [r0] + ldr r0, _02239DBC ; =0x00001048 + ldr r1, [r2, r0] + cmp r1, #0 + beq _02239DB2 + sub r0, #0x68 + add r0, r2, r0 + bx lr +_02239DB2: + mov r0, #0 + bx lr + nop +_02239DB8: .word 0x0223CAD4 +_02239DBC: .word 0x00001048 + thumb_func_end MOD83_02239DA0 + + thumb_func_start MOD83_02239DC0 +MOD83_02239DC0: ; 0x02239DC0 + push {r3, lr} + add r1, #0x24 + mov r0, #0x1f + bic r1, r0 + add r1, #0x20 + mov r0, #0x56 + bl FUN_02016998 + add r2, r0, #0 + add r2, #0x20 + mov r1, #0x1f + bic r2, r1 + sub r1, r2, #4 + str r0, [r1] + add r0, r2, #0 + pop {r3, pc} + thumb_func_end MOD83_02239DC0 + + thumb_func_start MOD83_02239DE0 +MOD83_02239DE0: ; 0x02239DE0 + push {r3, lr} + cmp r1, #0 + beq _02239DEE + sub r0, r1, #4 + ldr r0, [r0] + bl FUN_02016A18 +_02239DEE: + pop {r3, pc} + thumb_func_end MOD83_02239DE0 + + thumb_func_start MOD83_02239DF0 +MOD83_02239DF0: ; 0x02239DF0 + push {r4, lr} + sub sp, #8 + add r4, r0, #0 + add r0, sp, #0 + add r1, sp, #4 + bl MOD04_021DD718 + ldr r0, [sp] + neg r0, r0 + bl MOD04_021D80E0 + ldr r1, _02239E34 ; =0x00002610 + str r0, [r4, r1] + ldr r0, [sp] + neg r2, r0 + add r0, r1, #4 + str r2, [r4, r0] + add r0, r1, #0 + ldr r2, [sp, #4] + add r0, #8 + str r2, [r4, r0] + sub r0, r1, #4 + mov r2, #1 + str r2, [r4, r0] + ldr r0, _02239E38 ; =0x0223CADC + mov r1, #0 + str r1, [r0, #0xc] + add r0, r4, #0 + bl MOD83_0222FA44 + ldr r0, _02239E3C ; =0x0000100E + add sp, #8 + pop {r4, pc} + nop +_02239E34: .word 0x00002610 +_02239E38: .word 0x0223CADC +_02239E3C: .word 0x0000100E + thumb_func_end MOD83_02239DF0 + + thumb_func_start MOD83_02239E40 +MOD83_02239E40: ; 0x02239E40 + push {r4, lr} + add r4, r0, #0 + ldr r0, _02239E70 ; =0x00002618 + ldr r0, [r4, r0] + cmp r0, #5 + beq _02239E50 + cmp r0, #6 + bne _02239E5C +_02239E50: + bl MOD04_021DDC1C + ldr r0, _02239E74 ; =0x0223CADC + mov r1, #1 + str r1, [r0, #0xc] + b _02239E62 +_02239E5C: + ldr r0, _02239E74 ; =0x0223CADC + mov r1, #1 + str r1, [r0, #0xc] +_02239E62: + bl FUN_02033ED0 + ldr r0, _02239E78 ; =0x0000260C + mov r1, #0 + str r1, [r4, r0] + ldr r0, _02239E7C ; =0x0000100F + pop {r4, pc} + .align 2, 0 +_02239E70: .word 0x00002618 +_02239E74: .word 0x0223CADC +_02239E78: .word 0x0000260C +_02239E7C: .word 0x0000100F + thumb_func_end MOD83_02239E40 + + thumb_func_start MOD83_02239E80 +MOD83_02239E80: ; 0x02239E80 + push {lr} + sub sp, #0x3c + bl MOD04_021DDC1C + cmp r0, #4 + beq _02239E94 + cmp r0, #7 + beq _02239EA0 + cmp r0, #8 + b _02239EA0 +_02239E94: + add r0, sp, #0 + bl MOD04_021DD9DC + add sp, #0x3c + mov r0, #1 + pop {pc} +_02239EA0: + mov r0, #0 + add sp, #0x3c + pop {pc} + .align 2, 0 + thumb_func_end MOD83_02239E80 + + thumb_func_start MOD83_02239EA8 +MOD83_02239EA8: ; 0x02239EA8 + push {r3, r4} + ldr r3, _02239EBC ; =0x0223CADC + mov r4, #0 + str r4, [r3] + ldr r3, _02239EC0 ; =0x000015F4 + str r2, [r0, r3] + ldr r0, _02239EC4 ; =0x00001011 + str r0, [r1] + pop {r3, r4} + bx lr + .align 2, 0 +_02239EBC: .word 0x0223CADC +_02239EC0: .word 0x000015F4 +_02239EC4: .word 0x00001011 + thumb_func_end MOD83_02239EA8 + + thumb_func_start MOD83_02239EC8 +MOD83_02239EC8: ; 0x02239EC8 + push {r3, r4, r5, lr} + ldr r4, _02239EE4 ; =0x0223CADC + mov r5, #0 + str r5, [r4, #8] + str r1, [r4, #4] + ldr r1, _02239EE8 ; =0x000015F4 + str r3, [r0, r1] + ldr r0, _02239EEC ; =0x00001012 + str r0, [r2] + ldr r0, _02239EF0 ; =MOD83_02239F28 + bl MOD04_021DE404 + pop {r3, r4, r5, pc} + nop +_02239EE4: .word 0x0223CADC +_02239EE8: .word 0x000015F4 +_02239EEC: .word 0x00001012 +_02239EF0: .word MOD83_02239F28 + thumb_func_end MOD83_02239EC8 + + thumb_func_start MOD83_02239EF4 +MOD83_02239EF4: ; 0x02239EF4 + push {r3, lr} + cmp r1, #6 + bhi _02239F1C + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02239F06: ; jump table + .short _02239F1C - _02239F06 - 2 ; case 0 + .short _02239F1C - _02239F06 - 2 ; case 1 + .short _02239F1C - _02239F06 - 2 ; case 2 + .short _02239F14 - _02239F06 - 2 ; case 3 + .short _02239F1C - _02239F06 - 2 ; case 4 + .short _02239F1C - _02239F06 - 2 ; case 5 + .short _02239F1C - _02239F06 - 2 ; case 6 +_02239F14: + cmp r0, #1 + bne _02239F1C + bl OS_Terminate +_02239F1C: + ldr r0, _02239F24 ; =0x0223CADC + mov r1, #1 + str r1, [r0] + pop {r3, pc} + .align 2, 0 +_02239F24: .word 0x0223CADC + thumb_func_end MOD83_02239EF4 + + thumb_func_start MOD83_02239F28 +MOD83_02239F28: ; 0x02239F28 + ldr r0, _02239F30 ; =0x0223CADC + mov r1, #1 + str r1, [r0, #8] + bx lr + .align 2, 0 +_02239F30: .word 0x0223CADC + thumb_func_end MOD83_02239F28 + + thumb_func_start MOD83_02239F34 +MOD83_02239F34: ; 0x02239F34 + push {r3, r4, r5, lr} + add r5, r1, #0 + bl FUN_02006278 + ldr r1, _0223A24C ; =0x0000260C + add r4, r0, #0 + ldr r1, [r4, r1] + cmp r1, #1 + bne _02239F4C + bl MOD83_02239E40 + str r0, [r5] +_02239F4C: + ldr r0, _0223A250 ; =0x00002620 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02239F62 + blx r0 + cmp r0, #1 + bne _02239F62 + add r0, r4, #0 + bl MOD83_02239DF0 + str r0, [r5] +_02239F62: + mov r3, #1 + ldr r0, [r5] + lsl r3, r3, #0xc + sub r0, r0, r3 + cmp r0, #0x12 + bls _02239F70 + b _0223A342 +_02239F70: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02239F7C: ; jump table + .short _02239FA2 - _02239F7C - 2 ; case 0 + .short _02239FB0 - _02239F7C - 2 ; case 1 + .short _02239FCC - _02239F7C - 2 ; case 2 + .short _02239FF4 - _02239F7C - 2 ; case 3 + .short _0223A046 - _02239F7C - 2 ; case 4 + .short _0223A05E - _02239F7C - 2 ; case 5 + .short _0223A09A - _02239F7C - 2 ; case 6 + .short _0223A0BE - _02239F7C - 2 ; case 7 + .short _0223A0F2 - _02239F7C - 2 ; case 8 + .short _0223A114 - _02239F7C - 2 ; case 9 + .short _0223A14E - _02239F7C - 2 ; case 10 + .short _0223A174 - _02239F7C - 2 ; case 11 + .short _0223A1E8 - _02239F7C - 2 ; case 12 + .short _0223A212 - _02239F7C - 2 ; case 13 + .short _0223A342 - _02239F7C - 2 ; case 14 + .short _0223A238 - _02239F7C - 2 ; case 15 + .short _0223A2D4 - _02239F7C - 2 ; case 16 + .short _0223A2F8 - _02239F7C - 2 ; case 17 + .short _0223A31E - _02239F7C - 2 ; case 18 +_02239FA2: + bl FUN_0202E49C + bl FUN_02088858 + ldr r0, _0223A254 ; =0x00001001 + str r0, [r5] + b _0223A342 +_02239FB0: + bl FUN_0202E4C8 + cmp r0, #0 + beq _0223A092 + ldr r0, _0223A258 ; =MOD83_02239DC0 + ldr r1, _0223A25C ; =MOD83_02239DE0 + bl MOD04_021DD968 + ldr r0, [r4, #4] + bl FUN_02033310 + ldr r0, _0223A260 ; =0x00001002 + str r0, [r5] + b _0223A342 +_02239FCC: + ldr r0, _0223A264 ; =0x000015E4 + mov r1, #2 + add r0, r4, r0 + mov r2, #1 + mov r3, #0x14 + bl MOD04_021DDEE0 + mov r0, #2 + bl MOD04_021DDE7C + bl MOD04_021DDDCC + bl FUN_02033E74 + ldr r0, _0223A268 ; =0x00001003 + mov r1, #0 + str r0, [r5] + ldr r0, _0223A26C ; =0x0000261C + str r1, [r4, r0] + b _0223A342 +_02239FF4: + bl MOD04_021DDD7C + cmp r0, #0 + bne _0223A002 + bl MOD04_021DDCE8 + b _0223A034 +_0223A002: + add r0, r4, #0 + bl MOD83_02239E80 + cmp r0, #1 + bne _0223A02C + ldr r0, _0223A26C ; =0x0000261C + ldr r1, [r4, r0] + cmp r1, #1 + bne _0223A020 + ldr r0, _0223A270 ; =0x0223CADC + mov r1, #3 + str r1, [r0, #4] + ldr r0, _0223A274 ; =0x0000100D + str r0, [r5] + b _0223A034 +_0223A020: + ldr r1, _0223A278 ; =0x021DD984 + add r0, r0, #4 + str r1, [r4, r0] + ldr r0, _0223A27C ; =0x00001004 + str r0, [r5] + b _0223A034 +_0223A02C: + add r0, r4, #0 + bl MOD83_02239DF0 + str r0, [r5] +_0223A034: + ldr r0, _0223A280 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + beq _0223A092 + ldr r0, _0223A26C ; =0x0000261C + mov r1, #1 + str r1, [r4, r0] + b _0223A342 +_0223A046: + bl MOD04_021DE05C + cmp r0, #0 + bne _0223A058 + add r0, r4, #0 + bl MOD83_02239DF0 + str r0, [r5] + b _0223A342 +_0223A058: + ldr r0, _0223A284 ; =0x00001005 + str r0, [r5] + b _0223A342 +_0223A05E: + bl MOD04_021DDF4C + cmp r0, #3 + bne _0223A06C + ldr r0, _0223A288 ; =0x00001006 + str r0, [r5] + b _0223A088 +_0223A06C: + cmp r0, #4 + bne _0223A07A + add r0, r4, #0 + bl MOD83_02239DF0 + str r0, [r5] + b _0223A088 +_0223A07A: + cmp r0, #5 + bne _0223A088 + ldr r0, _0223A270 ; =0x0223CADC + mov r1, #3 + str r1, [r0, #4] + ldr r0, _0223A274 ; =0x0000100D + str r0, [r5] +_0223A088: + ldr r0, _0223A280 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + bne _0223A094 +_0223A092: + b _0223A342 +_0223A094: + bl MOD04_021DDF40 + b _0223A342 +_0223A09A: + ldr r0, _0223A28C ; =MOD83_02239EF4 + ldr r1, _0223A290 ; =0x0223B838 + ldr r2, _0223A294 ; =0x0223B840 + bl MOD04_021DE45C + cmp r0, #0 + bne _0223A0B2 + add r0, r4, #0 + bl MOD83_02239DF0 + str r0, [r5] + b _0223A342 +_0223A0B2: + ldr r2, _0223A298 ; =0x00001007 + add r0, r4, #0 + add r1, r5, #0 + bl MOD83_02239EA8 + b _0223A342 +_0223A0BE: + ldr r0, _0223A26C ; =0x0000261C + ldr r0, [r4, r0] + cmp r0, #1 + bne _0223A0D4 + add r0, r4, #0 + mov r1, #3 + add r2, r5, #0 + add r3, #0xc + bl MOD83_02239EC8 + b _0223A342 +_0223A0D4: + ldr r0, _0223A29C ; =0x0223B854 + add r1, r0, #0 + add r2, r0, #0 + bl MOD04_021DE3D0 + cmp r0, #0 + bne _0223A0EC + add r0, r4, #0 + bl MOD83_02239DF0 + str r0, [r5] + b _0223A342 +_0223A0EC: + ldr r0, _0223A2A0 ; =0x00001008 + str r0, [r5] + b _0223A342 +_0223A0F2: + ldr r0, _0223A2A4 ; =0x000015F8 + add r0, r4, r0 + bl MOD04_021DE3AC + cmp r0, #0 + bne _0223A108 + add r0, r4, #0 + bl MOD83_02239DF0 + str r0, [r5] + b _0223A342 +_0223A108: + ldr r2, _0223A2A8 ; =0x00001009 + add r0, r4, #0 + add r1, r5, #0 + bl MOD83_02239EA8 + b _0223A342 +_0223A114: + ldr r0, _0223A2A4 ; =0x000015F8 + ldr r0, [r4, r0] + cmp r0, #1 + beq _0223A12A + add r0, r4, #0 + mov r1, #2 + add r2, r5, #0 + add r3, #0xd + bl MOD83_02239EC8 + b _0223A342 +_0223A12A: + ldr r0, _0223A2AC ; =0x0223CAEC + mov r1, #0 + mov r2, #0xa + bl MOD04_021DE364 + cmp r0, #0 + bne _0223A142 + add r0, r4, #0 + bl MOD83_02239DF0 + str r0, [r5] + b _0223A342 +_0223A142: + ldr r2, _0223A2B0 ; =0x0000100A + add r0, r4, #0 + add r1, r5, #0 + bl MOD83_02239EA8 + b _0223A342 +_0223A14E: + ldr r1, _0223A2B4 ; =0x000015FC + ldr r0, _0223A2AC ; =0x0223CAEC + add r1, r4, r1 + add r2, r3, #0 + bl MOD04_021DE330 + cmp r0, #0 + bne _0223A168 + add r0, r4, #0 + bl MOD83_02239DF0 + str r0, [r5] + b _0223A342 +_0223A168: + ldr r0, _0223A2B8 ; =0x0000100B + mov r1, #0 + str r0, [r5] + ldr r0, _0223A2BC ; =0x00002608 + str r1, [r4, r0] + b _0223A342 +_0223A174: + ldr r0, _0223A270 ; =0x0223CADC + ldr r0, [r0] + cmp r0, #0 + bne _0223A1C4 + ldr r0, _0223A280 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + beq _0223A194 + add r0, r4, #0 + mov r1, #3 + add r2, r5, #0 + add r3, #0xc + bl MOD83_02239EC8 + b _0223A342 +_0223A194: + mov r1, #0x26 + lsl r1, r1, #8 + add r0, r4, r1 + add r1, r1, #4 + add r1, r4, r1 + bl MOD04_021DE2D0 + cmp r0, #1 + bne _0223A21A + mov r1, #0x26 + lsl r1, r1, #8 + ldr r2, [r4, r1] + add r1, r1, #4 + mov r0, #0x64 + ldr r1, [r4, r1] + mul r0, r2 + bl _u32_div_f + ldr r1, _0223A2BC ; =0x00002608 + ldr r2, [r4, r1] + cmp r2, r0 + beq _0223A21A + str r0, [r4, r1] + b _0223A342 +_0223A1C4: + ldr r0, _0223A26C ; =0x0000261C + ldr r0, [r4, r0] + cmp r0, #0 + bne _0223A1DA + add r0, r4, #0 + mov r1, #1 + add r2, r5, #0 + add r3, #0xd + bl MOD83_02239EC8 + b _0223A342 +_0223A1DA: + add r0, r4, #0 + mov r1, #3 + add r2, r5, #0 + add r3, #0xd + bl MOD83_02239EC8 + b _0223A342 +_0223A1E8: + bl MOD04_021DE308 + cmp r0, #0 + bne _0223A1F6 + ldr r0, _0223A274 ; =0x0000100D + str r0, [r5] + b _0223A342 +_0223A1F6: + ldr r0, _0223A250 ; =0x00002620 + mov r1, #0 + str r1, [r4, r0] + bl FUN_02033ED0 + bl FUN_02033364 + bl FUN_02088868 + bl FUN_0202E4F0 + ldr r0, _0223A270 ; =0x0223CADC + ldr r0, [r0, #4] + pop {r3, r4, r5, pc} +_0223A212: + bl MOD04_021DDB40 + cmp r0, #1 + beq _0223A21C +_0223A21A: + b _0223A342 +_0223A21C: + ldr r0, _0223A250 ; =0x00002620 + mov r1, #0 + str r1, [r4, r0] + bl FUN_02033ED0 + bl FUN_020332DC + bl FUN_02088868 + bl FUN_0202E4F0 + ldr r0, _0223A270 ; =0x0223CADC + ldr r0, [r0, #4] + pop {r3, r4, r5, pc} +_0223A238: + ldr r0, _0223A270 ; =0x0223CADC + ldr r0, [r0, #0xc] + cmp r0, #1 + beq _0223A242 + b _0223A342 +_0223A242: + add r0, r4, #0 + bl MOD83_022307B4 + ldr r0, _0223A2C0 ; =0x00002618 + b _0223A2C4 + .align 2, 0 +_0223A24C: .word 0x0000260C +_0223A250: .word 0x00002620 +_0223A254: .word 0x00001001 +_0223A258: .word MOD83_02239DC0 +_0223A25C: .word MOD83_02239DE0 +_0223A260: .word 0x00001002 +_0223A264: .word 0x000015E4 +_0223A268: .word 0x00001003 +_0223A26C: .word 0x0000261C +_0223A270: .word 0x0223CADC +_0223A274: .word 0x0000100D +_0223A278: .word 0x021DD984 +_0223A27C: .word 0x00001004 +_0223A280: .word 0x021C48B8 +_0223A284: .word 0x00001005 +_0223A288: .word 0x00001006 +_0223A28C: .word MOD83_02239EF4 +_0223A290: .word 0x0223B838 +_0223A294: .word 0x0223B840 +_0223A298: .word 0x00001007 +_0223A29C: .word 0x0223B854 +_0223A2A0: .word 0x00001008 +_0223A2A4: .word 0x000015F8 +_0223A2A8: .word 0x00001009 +_0223A2AC: .word 0x0223CAEC +_0223A2B0: .word 0x0000100A +_0223A2B4: .word 0x000015FC +_0223A2B8: .word 0x0000100B +_0223A2BC: .word 0x00002608 +_0223A2C0: .word 0x00002618 +_0223A2C4: + ldr r0, [r4, r0] + cmp r0, #6 + bne _0223A2CE + bl MOD04_021DDBBC +_0223A2CE: + ldr r0, _0223A348 ; =0x00001010 + str r0, [r5] + b _0223A342 +_0223A2D4: + ldr r0, _0223A34C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + tst r0, r1 + beq _0223A342 + ldr r0, _0223A350 ; =0x00002620 + mov r1, #0 + str r1, [r4, r0] + bl MOD04_021DD6F0 + bl FUN_020332DC + bl FUN_02088868 + bl FUN_0202E4F0 + mov r0, #4 + pop {r3, r4, r5, pc} +_0223A2F8: + ldr r0, _0223A354 ; =0x0223CADC + ldr r1, [r0] + cmp r1, #1 + bne _0223A30C + mov r1, #0 + str r1, [r0] + ldr r0, _0223A358 ; =0x000015F4 + ldr r0, [r4, r0] + str r0, [r5] + b _0223A342 +_0223A30C: + ldr r0, _0223A34C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + beq _0223A342 + ldr r0, _0223A35C ; =0x0000261C + mov r1, #1 + str r1, [r4, r0] + b _0223A342 +_0223A31E: + ldr r0, _0223A354 ; =0x0223CADC + ldr r1, [r0, #8] + cmp r1, #1 + bne _0223A332 + mov r1, #0 + str r1, [r0, #8] + ldr r0, _0223A358 ; =0x000015F4 + ldr r0, [r4, r0] + str r0, [r5] + b _0223A342 +_0223A332: + ldr r0, _0223A34C ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #2 + tst r0, r1 + beq _0223A342 + ldr r0, _0223A35C ; =0x0000261C + mov r1, #1 + str r1, [r4, r0] +_0223A342: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_0223A348: .word 0x00001010 +_0223A34C: .word 0x021C48B8 +_0223A350: .word 0x00002620 +_0223A354: .word 0x0223CADC +_0223A358: .word 0x000015F4 +_0223A35C: .word 0x0000261C + thumb_func_end MOD83_02239F34 + + .section .rodata + ; 0x0223A360 + .incbin "baserom.nds", 0x2FE3A0, 0x41C + + .section .data + ; 0x0223A780 + .incbin "baserom.nds", 0x2FE7C0, 0x10E0 + + .section .bss + ; 0x0223B860 + .space 0x1980 diff --git a/arm9/modules/84/asm/module_84.s b/arm9/modules/84/asm/module_84.s new file mode 100644 index 00000000..47a474a3 --- /dev/null +++ b/arm9/modules/84/asm/module_84.s @@ -0,0 +1,6231 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD84_021D74E0 +MOD84_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r5, r1, #0 + ldr r1, [r5] + add r6, r0, #0 + cmp r1, #0 + beq _021D74FC + cmp r1, #1 + bne _021D74F4 + b _021D7620 +_021D74F4: + cmp r1, #2 + bne _021D74FA + b _021D765A +_021D74FA: + b _021D7668 +_021D74FC: + mov r0, #3 + mov r1, #0x4b + lsl r2, r0, #0x10 + bl FUN_0201681C + ldr r1, _021D7670 ; =0x00001244 + add r0, r6, #0 + mov r2, #0x4b + bl FUN_02006268 + add r4, r0, #0 + bne _021D7516 + b _021D7618 +_021D7516: + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7674 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D7678 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + add r0, r6, #0 + bl FUN_0200628C + str r0, [r4, #0x18] + mov r0, #0 + str r0, [r4, #0x1c] + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x80 + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x4b + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + add r1, r4, #0 + mov r0, #0x80 + add r1, #0xe0 + mov r2, #0x4b + bl FUN_02008C9C + add r1, r4, #0 + add r1, #0xdc + str r0, [r1] + add r0, r4, #0 + mov r2, #0xd + add r0, #0xe0 + mov r1, #0 + lsl r2, r2, #0x10 + bl FUN_02008D04 + add r0, r4, #0 + mov r1, #0 + add r0, #0xe0 + add r2, r1, #0 + bl FUN_02008D24 + add r0, r4, #0 + str r6, [r4] + bl MOD84_021D7968 + add r0, r4, #0 + bl MOD84_021D7AA0 + add r0, r4, #0 + bl MOD84_021D7F94 + add r0, r4, #0 + bl MOD84_021D82B8 + ldr r2, _021D767C ; =0x000001ED + mov r0, #0 + mov r1, #0x1a + mov r3, #0x4b + bl FUN_0200A86C + str r0, [r4, #0x14] + str r0, [sp] + mov r1, #0xef + ldr r0, [r4, #4] + mvn r1, r1 + mov r2, #1 + mov r3, #0 + bl MOD84_021D84F8 + str r0, [r4, #8] + ldr r0, [r4, #0x14] + ldr r1, _021D7680 ; =0xFFFFFE40 + str r0, [sp] + ldr r0, [r4, #4] + mov r2, #5 + mov r3, #0 + bl MOD84_021D84F8 + str r0, [r4, #0xc] + mov r1, #0 + ldr r2, _021D7684 ; =0x021DA6C8 + ldr r0, _021D7688 ; =0x00001224 + str r1, [r4, #0x10] + str r1, [r4, r0] + add r0, r0, #4 + str r1, [r4, r0] + ldr r1, [r4, #4] + ldr r2, [r2, #0x2c] + add r0, r4, #0 + blx r2 + ldr r1, _021D768C ; =0x0000122C + mov r2, #1 + str r0, [r4, r1] + ldr r1, _021D7690 ; =0x000004A2 + mov r0, #0xe + bl FUN_0200433C + ldr r0, _021D7694 ; =MOD84_021D7958 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA60 + ldr r1, _021D7698 ; =0x00001230 + str r0, [r4, r1] + ldr r0, _021D769C ; =MOD84_021D7950 + add r1, r4, #0 + bl FUN_02015F10 +_021D7618: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7668 +_021D7620: + bl FUN_02006278 + ldr r2, _021D7684 ; =0x021DA6C8 + ldr r1, _021D768C ; =0x0000122C + add r4, r0, #0 + ldr r0, [r4, r1] + sub r1, r1, #4 + ldr r2, [r2, #0x30] + add r1, r4, r1 + blx r2 + cmp r0, #0 + beq _021D7668 + ldr r1, _021D76A0 ; =0x00001228 + mov r0, #0 + str r0, [r4, r1] + mov r1, #0x20 + str r1, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r2, #0x4b + str r2, [sp, #8] + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D7668 +_021D765A: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7668 + add sp, #0x14 + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D7668: + mov r0, #0 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + nop +_021D7670: .word 0x00001244 +_021D7674: .word 0xFFFFE0FF +_021D7678: .word 0x04001000 +_021D767C: .word 0x000001ED +_021D7680: .word 0xFFFFFE40 +_021D7684: .word 0x021DA6C8 +_021D7688: .word 0x00001224 +_021D768C: .word 0x0000122C +_021D7690: .word 0x000004A2 +_021D7694: .word MOD84_021D7958 +_021D7698: .word 0x00001230 +_021D769C: .word MOD84_021D7950 +_021D76A0: .word 0x00001228 + thumb_func_end MOD84_021D74E0 + + thumb_func_start MOD84_021D76A4 +MOD84_021D76A4: ; 0x021D76A4 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r6, r0, #0 + bl FUN_02006278 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #3 + bhi _021D773E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D76C2: ; jump table + .short _021D76CA - _021D76C2 - 2 ; case 0 + .short _021D76EE - _021D76C2 - 2 ; case 1 + .short _021D771A - _021D76C2 - 2 ; case 2 + .short _021D772E - _021D76C2 - 2 ; case 3 +_021D76CA: + bl OS_DisableInterrupts + add r6, r0, #0 + ldr r0, _021D7744 ; =0x00001230 + ldr r0, [r5, r0] + bl FUN_0200CAB4 + add r0, r6, #0 + bl OS_RestoreInterrupts + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D773E +_021D76EE: + ldr r0, [r5, #0xc] + bl MOD84_021D85B8 + ldr r0, [r5, #8] + bl MOD84_021D85B8 + ldr r0, [r5, #0x14] + bl FUN_0200A8B8 + add r0, r5, #0 + bl MOD84_021D8000 + add r0, r5, #0 + bl MOD84_021D7AB8 + add r0, r5, #0 + bl MOD84_021D7A84 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D773E +_021D771A: + add r5, #0xdc + ldr r0, [r5] + bl FUN_0201FD58 + bl FUN_02009FA0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D773E +_021D772E: + add r0, r6, #0 + bl FUN_0200627C + mov r0, #0x4b + bl FUN_020168D0 + mov r0, #1 + pop {r4, r5, r6, pc} +_021D773E: + mov r0, #0 + pop {r4, r5, r6, pc} + nop +_021D7744: .word 0x00001230 + thumb_func_end MOD84_021D76A4 + + thumb_func_start MOD84_021D7748 +MOD84_021D7748: ; 0x021D7748 + push {r4, r5, lr} + sub sp, #0xc + add r5, r1, #0 + bl FUN_02006278 + add r4, r0, #0 + ldr r0, [r4, #8] + mov r1, #1 + bl MOD84_021D85EC + ldr r0, [r4, #0xc] + mov r1, #1 + bl MOD84_021D85EC + str r0, [r4, #0x10] + ldr r0, [r5] + cmp r0, #0xa + bhi _021D7804 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D7778: ; jump table + .short _021D778E - _021D7778 - 2 ; case 0 + .short _021D77EC - _021D7778 - 2 ; case 1 + .short _021D7826 - _021D7778 - 2 ; case 2 + .short _021D7846 - _021D7778 - 2 ; case 3 + .short _021D7868 - _021D7778 - 2 ; case 4 + .short _021D7874 - _021D7778 - 2 ; case 5 + .short _021D789C - _021D7778 - 2 ; case 6 + .short _021D78AA - _021D7778 - 2 ; case 7 + .short _021D78BE - _021D7778 - 2 ; case 8 + .short _021D7920 - _021D7778 - 2 ; case 9 + .short _021D7914 - _021D7778 - 2 ; case 10 +_021D778E: + ldr r0, [r4, #0x1c] + cmp r0, #0 + bne _021D77C8 + ldr r0, _021D7928 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #8 + tst r0, r1 + beq _021D77C8 + ldr r0, [r4, #0x18] + ldr r0, [r0, #4] + cmp r0, #0 + beq _021D77C8 + mov r0, #0x10 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4b + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #1 + str r0, [r4, #0x1c] + mov r0, #7 + str r0, [r5] + b _021D7920 +_021D77C8: + ldr r2, _021D792C ; =0x0000122C + sub r1, r2, #4 + ldr r0, [r4, r2] + sub r2, #8 + ldr r2, [r4, r2] + add r1, r4, r1 + lsl r3, r2, #4 + ldr r2, _021D7930 ; =0x021DA6FC + ldr r2, [r2, r3] + blx r2 + cmp r0, #0 + beq _021D7804 + ldr r0, _021D7934 ; =0x00001228 + mov r1, #0 + str r1, [r4, r0] + mov r0, #1 + str r0, [r5] + b _021D7920 +_021D77EC: + ldr r2, _021D792C ; =0x0000122C + sub r1, r2, #4 + ldr r0, [r4, r2] + sub r2, #8 + ldr r2, [r4, r2] + add r1, r4, r1 + lsl r3, r2, #4 + ldr r2, _021D7938 ; =0x021DA700 + ldr r2, [r2, r3] + blx r2 + cmp r0, #0 + bne _021D7806 +_021D7804: + b _021D7920 +_021D7806: + ldr r0, _021D793C ; =0x00001224 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + cmp r1, #7 + bhs _021D7820 + mov r1, #0 + add r0, r0, #4 + str r1, [r4, r0] + mov r0, #2 + str r0, [r5] + b _021D7920 +_021D7820: + mov r0, #4 + str r0, [r5] + b _021D7920 +_021D7826: + ldr r2, _021D793C ; =0x00001224 + ldr r1, [r4, #4] + ldr r2, [r4, r2] + add r0, r4, #0 + lsl r3, r2, #4 + ldr r2, _021D7940 ; =0x021DA6F4 + ldr r2, [r2, r3] + blx r2 + ldr r1, _021D792C ; =0x0000122C + mov r2, #0 + str r0, [r4, r1] + sub r0, r1, #4 + str r2, [r4, r0] + mov r0, #3 + str r0, [r5] + b _021D7920 +_021D7846: + ldr r2, _021D792C ; =0x0000122C + sub r1, r2, #4 + ldr r0, [r4, r2] + sub r2, #8 + ldr r2, [r4, r2] + add r1, r4, r1 + lsl r3, r2, #4 + ldr r2, _021D7944 ; =0x021DA6F8 + ldr r2, [r2, r3] + blx r2 + cmp r0, #0 + beq _021D7920 + ldr r0, _021D7934 ; =0x00001228 + mov r1, #0 + str r1, [r4, r0] + str r1, [r5] + b _021D7920 +_021D7868: + ldr r0, [r4, #0x10] + cmp r0, #0 + beq _021D7920 + mov r0, #5 + str r0, [r5] + b _021D7920 +_021D7874: + ldr r0, _021D7928 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #9 + tst r0, r1 + beq _021D7920 + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4b + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #6 + str r0, [r5] + b _021D7920 +_021D789C: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7920 + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021D78AA: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7920 + ldr r0, _021D7934 ; =0x00001228 + mov r1, #0 + str r1, [r4, r0] + mov r0, #8 + str r0, [r5] + b _021D7920 +_021D78BE: + ldr r2, _021D792C ; =0x0000122C + sub r1, r2, #4 + ldr r0, [r4, r2] + sub r2, #8 + ldr r2, [r4, r2] + add r1, r4, r1 + lsl r3, r2, #4 + ldr r2, _021D7938 ; =0x021DA700 + ldr r2, [r2, r3] + blx r2 + cmp r0, #0 + beq _021D7920 + ldr r0, [r4, #0xc] + mov r1, #1 + bl MOD84_021D87B0 + ldr r0, [r4, #8] + bl MOD84_021D881C + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7948 ; =0xFFFF1FFF + and r1, r0 + str r1, [r2] + ldr r2, _021D794C ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #0x20 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x4b + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #0xa + str r0, [r5] + b _021D7920 +_021D7914: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7920 + mov r0, #5 + str r0, [r5] +_021D7920: + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + nop +_021D7928: .word 0x021C48B8 +_021D792C: .word 0x0000122C +_021D7930: .word 0x021DA6FC +_021D7934: .word 0x00001228 +_021D7938: .word 0x021DA700 +_021D793C: .word 0x00001224 +_021D7940: .word 0x021DA6F4 +_021D7944: .word 0x021DA6F8 +_021D7948: .word 0xFFFF1FFF +_021D794C: .word 0x04001000 + thumb_func_end MOD84_021D7748 + + thumb_func_start MOD84_021D7950 +MOD84_021D7950: ; 0x021D7950 + ldr r3, _021D7954 ; =MOD84_021D7CFC + bx r3 + .align 2, 0 +_021D7954: .word MOD84_021D7CFC + thumb_func_end MOD84_021D7950 + + thumb_func_start MOD84_021D7958 +MOD84_021D7958: ; 0x021D7958 + push {r3, lr} + add r1, #0xdc + ldr r0, [r1] + bl FUN_0201FDEC + bl FUN_02009F80 + pop {r3, pc} + thumb_func_end MOD84_021D7958 + + thumb_func_start MOD84_021D7968 +MOD84_021D7968: ; 0x021D7968 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #0x4b + bl FUN_02016B94 + str r0, [r4, #4] + ldr r0, _021D7A60 ; =0x021DA68C + bl FUN_0201E66C + ldr r2, _021D7A64 ; =0x04000304 + ldr r0, _021D7A68 ; =0xFFFF7FFF + ldrh r1, [r2] + and r0, r1 + strh r0, [r2] + mov r0, #1 + mov r1, #0 + add r2, r0, #0 + bl GX_SetGraphicsMode + ldr r0, _021D7A6C ; =0x021DA650 + bl FUN_02016BBC + ldr r0, [r4, #4] + ldr r2, _021D7A70 ; =0x021DA670 + mov r1, #1 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #4] + ldr r2, _021D7A70 ; =0x021DA670 + mov r1, #5 + mov r3, #0 + bl FUN_02016C18 + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x4b + str r0, [sp, #8] + mov r0, #0x7f + mov r1, #0x42 + add r3, r2, #0 + bl FUN_02006948 + mov r3, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x4b + str r0, [sp, #8] + mov r0, #0x7f + mov r1, #0x42 + mov r2, #4 + bl FUN_02006948 + ldr r2, _021D7A74 ; =0x04000050 + mov r0, #0 + add r3, r2, #0 + add r7, r2, #0 + ldr r1, _021D7A78 ; =0x04001050 + strh r0, [r2] + strh r0, [r1] + mov r0, #0xff + sub r3, #0x10 + strh r0, [r3] + add r3, r2, #0 + ldr r4, _021D7A7C ; =0x00005EC0 + sub r3, #0xc + strh r4, [r3] + sub r7, #8 + ldrh r4, [r7] + mov r5, #0x3f + mov r3, #0x1d + bic r4, r5 + add r6, r4, #0 + orr r6, r3 + mov r4, #0x20 + orr r6, r4 + strh r6, [r7] + sub r7, r2, #6 + ldrh r6, [r7] + mov r2, #0x1f + bic r6, r5 + orr r6, r2 + orr r6, r4 + strh r6, [r7] + add r6, r1, #0 + sub r6, #0x10 + strh r0, [r6] + add r0, r1, #0 + mov r6, #0x18 + sub r0, #0xc + strh r6, [r0] + add r6, r1, #0 + sub r6, #8 + ldrh r0, [r6] + bic r0, r5 + orr r0, r3 + orr r0, r4 + sub r3, r1, #6 + strh r0, [r6] + ldrh r0, [r3] + sub r1, #0x50 + bic r0, r5 + orr r0, r2 + orr r0, r4 + strh r0, [r3] + lsl r3, r4, #0x15 + ldr r0, [r3] + ldr r2, _021D7A80 ; =0xFFFF1FFF + add r5, r0, #0 + and r5, r2 + lsl r0, r4, #8 + orr r0, r5 + str r0, [r3] + ldr r0, [r1] + and r2, r0 + lsl r0, r4, #8 + orr r0, r2 + str r0, [r1] + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D7A60: .word 0x021DA68C +_021D7A64: .word 0x04000304 +_021D7A68: .word 0xFFFF7FFF +_021D7A6C: .word 0x021DA650 +_021D7A70: .word 0x021DA670 +_021D7A74: .word 0x04000050 +_021D7A78: .word 0x04001050 +_021D7A7C: .word 0x00005EC0 +_021D7A80: .word 0xFFFF1FFF + thumb_func_end MOD84_021D7968 + + thumb_func_start MOD84_021D7A84 +MOD84_021D7A84: ; 0x021D7A84 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #5 + bl FUN_020178A0 + ldr r0, [r4, #4] + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD84_021D7A84 + + thumb_func_start MOD84_021D7AA0 +MOD84_021D7AA0: ; 0x021D7AA0 + push {r4, lr} + add r4, r0, #0 + bl MOD84_021D7AC8 + add r0, r4, #0 + bl MOD84_021D7B54 + add r0, r4, #0 + bl MOD84_021D7BC8 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D7AA0 + + thumb_func_start MOD84_021D7AB8 +MOD84_021D7AB8: ; 0x021D7AB8 + push {r4, lr} + add r4, r0, #0 + bl MOD84_021D7CD4 + add r0, r4, #0 + bl MOD84_021D7BBC + pop {r4, pc} + thumb_func_end MOD84_021D7AB8 + + thumb_func_start MOD84_021D7AC8 +MOD84_021D7AC8: ; 0x021D7AC8 + push {r3, lr} + bl FUN_020BB7F4 + bl G3X_InitMtxStack + ldr r0, _021D7B3C ; =0x04000060 + ldr r2, _021D7B40 ; =0xFFFFCFFD + ldrh r1, [r0] + and r1, r2 + strh r1, [r0] + add r1, r2, #2 + ldrh r3, [r0] + lsr r2, r2, #0x11 + and r3, r1 + mov r1, #0x10 + orr r1, r3 + strh r1, [r0] + ldrh r3, [r0] + ldr r1, _021D7B44 ; =0x0000CFFB + and r3, r1 + strh r3, [r0] + ldrh r3, [r0] + sub r1, r1, #4 + and r1, r3 + strh r1, [r0] + mov r0, #0 + add r1, r0, #0 + mov r3, #0x3f + str r0, [sp] + bl G3X_SetClearColor + ldr r1, _021D7B48 ; =0x04000540 + mov r0, #2 + str r0, [r1] + ldr r0, _021D7B4C ; =0xBFFF0000 + str r0, [r1, #0x40] + mov r0, #1 + add r1, r0, #0 + bl FUN_020AEB70 + mov r0, #1 + lsl r0, r0, #0xe + mov r1, #1 + bl FUN_020AEDF4 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + ldr r1, _021D7B50 ; =0x04000008 + mov r0, #3 + ldrh r2, [r1] + bic r2, r0 + mov r0, #1 + orr r0, r2 + strh r0, [r1] + pop {r3, pc} + nop +_021D7B3C: .word 0x04000060 +_021D7B40: .word 0xFFFFCFFD +_021D7B44: .word 0x0000CFFB +_021D7B48: .word 0x04000540 +_021D7B4C: .word 0xBFFF0000 +_021D7B50: .word 0x04000008 + thumb_func_end MOD84_021D7AC8 + + thumb_func_start MOD84_021D7B54 +MOD84_021D7B54: ; 0x021D7B54 + push {r4, lr} + sub sp, #0x18 + add r4, r0, #0 + mov r0, #0x4b + bl FUN_0201EB64 + str r0, [r4, #0x20] + mov r0, #0 + str r0, [r4, #0x24] + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + strh r0, [r4, #0x30] + strh r0, [r4, #0x32] + strh r0, [r4, #0x34] + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4, #0x20] + mov r1, #0x4b + str r0, [sp, #8] + add r0, r4, #0 + add r2, r4, #0 + ldr r3, _021D7BB8 ; =0x00000FA4 + add r0, #0x24 + lsl r1, r1, #0xe + add r2, #0x30 + bl FUN_0201ECA8 + mov r1, #0 + mov r0, #1 + lsl r0, r0, #0xc + str r0, [sp, #0x10] + str r1, [sp, #0xc] + str r1, [sp, #0x14] + ldr r1, [r4, #0x20] + add r0, sp, #0xc + bl FUN_0201EC58 + ldr r0, [r4, #0x20] + bl FUN_0201EB8C + mov r1, #0xfa + ldr r2, [r4, #0x20] + mov r0, #0 + lsl r1, r1, #0xe + bl FUN_0201EC94 + add sp, #0x18 + pop {r4, pc} + nop +_021D7BB8: .word 0x00000FA4 + thumb_func_end MOD84_021D7B54 + + thumb_func_start MOD84_021D7BBC +MOD84_021D7BBC: ; 0x021D7BBC + ldr r3, _021D7BC4 ; =FUN_0201EB70 + ldr r0, [r0, #0x20] + bx r3 + nop +_021D7BC4: .word FUN_0201EB70 + thumb_func_end MOD84_021D7BBC + + thumb_func_start MOD84_021D7BC8 +MOD84_021D7BC8: ; 0x021D7BC8 + push {r4, r5, lr} + sub sp, #0xc + mov r2, #0 + add r5, r0, #0 + add r4, r5, #0 + str r2, [sp] + add r0, sp, #8 + str r0, [sp, #4] + mov r0, #0x7f + mov r1, #1 + mov r3, #0x4b + add r4, #0x38 + bl FUN_02006D18 + str r0, [r5, #0x38] + ldr r1, [sp, #8] + bl DC_FlushRange + ldr r0, [r5, #0x38] + cmp r0, #0 + beq _021D7CCC + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + add r0, #0x88 + str r1, [r0] + add r0, r4, #0 + add r0, #0x8c + str r1, [r0] + add r0, r4, #0 + add r0, #0x90 + str r1, [r0] + mov r2, #0 + add r0, r4, #0 + ldr r1, _021D7CD0 ; =0xFFF8E000 + str r2, [r4, #0x7c] + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + add r0, #0x84 + str r2, [r0] + add r0, r4, #0 + add r0, #0x94 + strh r2, [r0] + mov r1, #0xa5 + add r0, r4, #0 + lsl r1, r1, #4 + add r0, #0x96 + strh r1, [r0] + add r0, r4, #0 + mov r1, #0x50 + add r0, #0x98 + strh r1, [r0] + ldr r0, [r4] + bl FUN_020BC13C + str r0, [r4, #0x5c] + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r0, r0, r1 + str r0, [r4, #0x60] + ldr r0, [r4] + bl FUN_020BC0FC + str r0, [r4, #0x64] + bl FUN_0201B3C4 + ldr r0, [r4] + ldr r1, [r4, #0x64] + bl FUN_0201B3A8 + add r0, r4, #0 + ldr r1, [r4, #0x60] + add r0, #8 + bl FUN_020B80B4 + mov r2, #0 + str r2, [sp] + add r0, sp, #8 + str r0, [sp, #4] + mov r0, #0x7f + mov r1, #3 + mov r3, #0x4b + bl FUN_02006D18 + str r0, [r4, #4] + cmp r0, #0 + beq _021D7CCC + ldr r1, [sp, #8] + bl DC_FlushRange + add r0, r4, #0 + add r0, #0x6c + mov r1, #0x4b + mov r2, #0x20 + bl FUN_02016B20 + ldr r0, [r4, #4] + mov r1, #0 + bl FUN_020BC4C8 + add r5, r0, #0 + add r0, r4, #0 + ldr r2, [r4, #0x60] + add r0, #0x6c + add r1, r5, #0 + bl FUN_020BB8D0 + str r0, [r4, #0x68] + ldr r2, [r4, #0x60] + ldr r3, [r4, #0x64] + add r1, r5, #0 + bl FUN_020B8110 + add r0, r4, #0 + ldr r1, [r4, #0x68] + add r0, #8 + bl FUN_020B7EFC + add r0, r4, #0 + mov r1, #0 + add r0, #0x9c + str r1, [r0] + ldr r0, [r4, #0x68] + add r4, #0xa0 + ldr r0, [r0, #8] + ldrh r0, [r0, #4] + lsl r0, r0, #0xc + str r0, [r4] +_021D7CCC: + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_021D7CD0: .word 0xFFF8E000 + thumb_func_end MOD84_021D7BC8 + + thumb_func_start MOD84_021D7CD4 +MOD84_021D7CD4: ; 0x021D7CD4 + push {r4, lr} + add r4, r0, #0 + add r4, #0x38 + ldr r0, [r4, #4] + cmp r0, #0 + beq _021D7CF0 + add r0, r4, #0 + ldr r1, [r4, #0x68] + add r0, #0x6c + bl thunk_FUN_020ae84c + ldr r0, [r4, #4] + bl FUN_02016A18 +_021D7CF0: + ldr r0, [r4] + cmp r0, #0 + beq _021D7CFA + bl FUN_02016A18 +_021D7CFA: + pop {r4, pc} + thumb_func_end MOD84_021D7CD4 + + thumb_func_start MOD84_021D7CFC +MOD84_021D7CFC: ; 0x021D7CFC + push {r3, r4, lr} + sub sp, #0x4c + add r4, r0, #0 + bl G3X_ResetMtxStack + mov r1, #0 + mov r0, #0x11 + add r2, r1, #0 + bl FUN_020BB1C0 + bl FUN_0201EBA4 + add r4, #0x38 + add r0, sp, #0x28 + bl MTX_Identity33_ + add r0, r4, #0 + add r0, #0x94 + ldrh r0, [r0] + ldr r3, _021D7DF0 ; =0x020FFA38 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #4 + bl MTX_RotX33_ + add r1, sp, #0x28 + add r0, sp, #4 + add r2, r1, #0 + bl MTX_Concat33 + add r0, r4, #0 + add r0, #0x96 + ldrh r0, [r0] + ldr r3, _021D7DF0 ; =0x020FFA38 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #4 + bl MTX_RotY33_ + add r1, sp, #0x28 + add r0, sp, #4 + add r2, r1, #0 + bl MTX_Concat33 + add r0, r4, #0 + add r0, #0x98 + ldrh r0, [r0] + ldr r3, _021D7DF0 ; =0x020FFA38 + asr r0, r0, #4 + lsl r2, r0, #1 + lsl r1, r2, #1 + add r2, r2, #1 + lsl r2, r2, #1 + ldrsh r1, [r3, r1] + ldrsh r2, [r3, r2] + add r0, sp, #4 + bl MTX_RotZ33_ + add r1, sp, #0x28 + add r0, sp, #4 + add r2, r1, #0 + bl MTX_Concat33 + add r1, r4, #0 + add r1, #0x9c + ldr r2, [r1] + mov r1, #2 + lsl r1, r1, #0xa + add r2, r2, r1 + add r1, r4, #0 + add r1, #0x9c + str r2, [r1] + add r1, r4, #0 + add r1, #0xa0 + ldr r2, [r1] + add r1, r4, #0 + add r1, #0x9c + add r0, r4, #0 + ldr r1, [r1] + add r0, #0x9c + cmp r1, r2 + blt _021D7DBA + ldr r1, [r0] + sub r1, r1, r2 + str r1, [r0] +_021D7DBA: + add r0, r4, #0 + add r0, #0x9c + ldr r1, [r0] + ldr r0, [r4, #0x68] + add r2, sp, #0x28 + str r1, [r0] + add r0, r4, #0 + add r1, r4, #0 + add r4, #0x88 + add r0, #8 + add r1, #0x7c + add r3, r4, #0 + bl FUN_0201B26C + mov r2, #1 + mov r0, #0x12 + add r1, sp, #0 + str r2, [sp] + bl FUN_020BB1C0 + mov r0, #0 + mov r1, #1 + bl FUN_020222B4 + add sp, #0x4c + pop {r3, r4, pc} + nop +_021D7DF0: .word 0x020FFA38 + thumb_func_end MOD84_021D7CFC + + thumb_func_start MOD84_021D7DF4 +MOD84_021D7DF4: ; 0x021D7DF4 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, [r0, #0x38] + add r5, r1, #0 + add r4, #0x38 + cmp r0, #0 + beq _021D7E08 + bl FUN_02016A18 +_021D7E08: + ldr r1, _021D7ED4 ; =0x021DA648 + lsl r3, r5, #1 + mov r2, #0 + ldrh r1, [r1, r3] + str r2, [sp] + add r0, sp, #8 + str r0, [sp, #4] + mov r0, #0x7f + mov r3, #0x4b + bl FUN_02006D18 + str r0, [r4] + cmp r0, #0 + beq _021D7E9A + ldr r1, [sp, #8] + bl DC_FlushRange + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + add r0, #0x88 + str r1, [r0] + add r0, r4, #0 + add r0, #0x8c + str r1, [r0] + add r0, r4, #0 + add r0, #0x90 + str r1, [r0] + mov r2, #0 + add r0, r4, #0 + ldr r1, _021D7ED8 ; =0xFFF8E000 + str r2, [r4, #0x7c] + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + add r0, #0x84 + str r2, [r0] + add r0, r4, #0 + add r0, #0x94 + strh r2, [r0] + mov r1, #0xa5 + add r0, r4, #0 + lsl r1, r1, #4 + add r0, #0x96 + strh r1, [r0] + add r0, r4, #0 + mov r1, #0x50 + add r0, #0x98 + strh r1, [r0] + ldr r0, [r4] + bl FUN_020BC13C + str r0, [r4, #0x5c] + ldrh r1, [r0, #0xe] + add r1, r0, r1 + ldr r1, [r1, #0xc] + add r0, r0, r1 + str r0, [r4, #0x60] + ldr r0, [r4] + bl FUN_020BC0FC + str r0, [r4, #0x64] + bl FUN_0201B3C4 + ldr r0, [r4] + ldr r1, [r4, #0x64] + bl FUN_0201B3A8 + add r0, r4, #0 + ldr r1, [r4, #0x60] + add r0, #8 + bl FUN_020B80B4 +_021D7E9A: + ldr r0, [r4, #4] + cmp r0, #0 + beq _021D7ED0 + mov r1, #0 + bl FUN_020BC4C8 + add r1, r0, #0 + ldr r0, [r4, #0x68] + ldr r2, [r4, #0x60] + ldr r3, [r4, #0x64] + bl FUN_020B8110 + add r0, r4, #0 + ldr r1, [r4, #0x68] + add r0, #8 + bl FUN_020B7EFC + add r0, r4, #0 + mov r1, #0 + add r0, #0x9c + str r1, [r0] + ldr r0, [r4, #0x68] + add r4, #0xa0 + ldr r0, [r0, #8] + ldrh r0, [r0, #4] + lsl r0, r0, #0xc + str r0, [r4] +_021D7ED0: + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_021D7ED4: .word 0x021DA648 +_021D7ED8: .word 0xFFF8E000 + thumb_func_end MOD84_021D7DF4 + + thumb_func_start MOD84_021D7EDC +MOD84_021D7EDC: ; 0x021D7EDC + push {r4, r5, lr} + sub sp, #0x14 + add r5, r0, #0 + mov r0, #0x82 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_020B1A24 + mov r0, #0x8b + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_020B1A24 + mov r0, #0x25 + lsl r0, r0, #4 + add r0, r5, r0 + bl FUN_020B1A24 + mov r0, #0x9d + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_020B19DC + mov r0, #0xa2 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_020B19DC + mov r0, #0xa7 + lsl r0, r0, #2 + add r0, r5, r0 + bl FUN_020B19DC + ldr r0, [r5, #0x18] + ldr r0, [r0] + cmp r0, #1 + bne _021D7F2A + mov r0, #1 + b _021D7F2C +_021D7F2A: + mov r0, #0 +_021D7F2C: + mov r2, #0 + lsl r4, r0, #3 + str r2, [sp] + mov r0, #1 + str r0, [sp, #4] + lsl r0, r0, #0xf + str r0, [sp, #8] + mov r0, #0x4b + ldr r1, _021D7F84 ; =0x021DA660 + str r0, [sp, #0xc] + mov r0, #0x82 + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [sp, #0x10] + ldrh r1, [r1, r4] + mov r0, #0x7f + add r3, r2, #0 + bl FUN_02006AE4 + mov r0, #0x4b + ldr r1, _021D7F88 ; =0x021DA662 + str r0, [sp] + mov r0, #0x9d + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [sp, #4] + ldrh r1, [r1, r4] + mov r0, #0x7f + mov r2, #1 + mov r3, #0 + bl FUN_02006A8C + ldr r1, _021D7F8C ; =0x021DA664 + ldr r2, _021D7F90 ; =0x021DA666 + ldrh r1, [r1, r4] + ldrh r2, [r2, r4] + mov r0, #0x7f + bl MOD84_021D81DC + mov r1, #0xad + lsl r1, r1, #2 + str r0, [r5, r1] + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 +_021D7F84: .word 0x021DA660 +_021D7F88: .word 0x021DA662 +_021D7F8C: .word 0x021DA664 +_021D7F90: .word 0x021DA666 + thumb_func_end MOD84_021D7EDC + + thumb_func_start MOD84_021D7F94 +MOD84_021D7F94: ; 0x021D7F94 + push {r4, lr} + sub sp, #0x30 + add r4, r0, #0 + bl MOD84_021D7EDC + mov r3, #0xad + mov r0, #1 + lsl r3, r3, #2 + str r0, [sp] + add r2, r3, #0 + ldr r1, [r4, r3] + sub r2, #0xac + sub r3, #0x40 + add r0, sp, #0xc + add r2, r4, r2 + add r3, r4, r3 + bl MOD84_021D8240 + mov r1, #0 + mov r2, #0xc8 + add r3, r2, #0 + str r1, [sp] + mov r0, #1 + str r0, [sp, #4] + str r1, [sp, #8] + add r0, r4, #0 + add r1, sp, #0xc + add r3, #0x98 + bl MOD84_021D8260 + mov r1, #0x2b + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r0, [r4, r1] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x2b + lsl r0, r0, #4 + mov r1, #1 + ldr r0, [r4, r0] + lsl r1, r1, #0xc + bl FUN_020200D8 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + add sp, #0x30 + pop {r4, pc} + thumb_func_end MOD84_021D7F94 + + thumb_func_start MOD84_021D8000 +MOD84_021D8000: ; 0x021D8000 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x2b + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl FUN_0201FFC8 + mov r0, #0xad + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD84_021D821C + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D8000 + + thumb_func_start MOD84_021D801C +MOD84_021D801C: ; 0x021D801C + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r5, r1, #0 + mov r0, #0x4b + mov r1, #0x30 + str r2, [sp] + add r6, r3, #0 + bl FUN_02016998 + add r4, r0, #0 + beq _021D8090 + ldr r0, [sp] + ldr r2, _021D8094 ; =0x021DA6B4 + lsl r1, r0, #4 + lsl r0, r5, #5 + add r2, r2, r0 + str r7, [r4] + ldr r2, [r1, r2] + str r6, [r4, #0x24] + str r2, [r4, #0x14] + ldr r2, _021D8098 ; =0x021DA6B8 + add r2, r2, r0 + ldr r2, [r1, r2] + str r2, [r4, #0x18] + ldr r2, _021D809C ; =0x021DA6BC + add r2, r2, r0 + ldr r2, [r1, r2] + str r2, [r4, #0x1c] + ldr r2, _021D80A0 ; =0x021DA6C0 + add r0, r2, r0 + ldr r0, [r1, r0] + cmp r5, #0 + str r0, [r4, #0x20] + bne _021D8068 + ldr r0, _021D80A4 ; =0x021D80B8 + str r0, [r4, #8] + ldr r0, _021D80A8 ; =0x021D80F0 + b _021D806E +_021D8068: + ldr r0, _021D80AC ; =0x021D8104 + str r0, [r4, #8] + ldr r0, _021D80B0 ; =0x021D813C +_021D806E: + str r0, [r4, #0xc] + mov r0, #0 + str r0, [r4, #0x28] + mov r0, #1 + lsl r0, r0, #0x10 + add r1, r6, #0 + bl _s32_div_f + str r0, [r4, #0x2c] + mov r0, #0 + str r0, [r4, #0x10] + ldr r0, _021D80B4 ; =0x021D8151 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA98 + str r0, [r4, #4] +_021D8090: + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8094: .word 0x021DA6B4 +_021D8098: .word 0x021DA6B8 +_021D809C: .word 0x021DA6BC +_021D80A0: .word 0x021DA6C0 +_021D80A4: .word 0x021D80B8 +_021D80A8: .word 0x021D80F0 +_021D80AC: .word 0x021D8104 +_021D80B0: .word 0x021D813C +_021D80B4: .word 0x021D8151 + thumb_func_end MOD84_021D801C + + thumb_func_start MOD84_021D80B8 +MOD84_021D80B8: ; 0x021D80B8 + and r0, r3 + thumb_func_end MOD84_021D80B8 + + non_word_aligned_thumb_func_start MOD84_021D80BA +MOD84_021D80BA: ; 0x021D80BA + thumb_func_end MOD84_021D80BA +_021D80BA: + .byte 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2 + .byte 0x00, 0x40, 0xA0, 0xE1, 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5 + .byte 0x14, 0x00, 0x9F, 0xE5, 0x04, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1 + .byte 0xFD, 0xBC, 0xFB, 0xEB, 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x50, 0x00, 0x00, 0x04 + .byte 0x08, 0x20, 0x9F, 0xE5, 0x01, 0x04, 0x80, 0xE1, 0xB0, 0x00, 0xC2, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1 + .byte 0x52, 0x00, 0x00, 0x04, 0x18, 0x40, 0x2D, 0xE9, 0x04, 0xD0, 0x4D, 0xE2, 0x00, 0x40, 0xA0, 0xE1 + .byte 0x01, 0xE0, 0xA0, 0xE1, 0x02, 0xC0, 0xA0, 0xE1, 0x00, 0x30, 0x8D, 0xE5, 0x14, 0x00, 0x9F, 0xE5 + .byte 0x04, 0x10, 0xA0, 0xE1, 0x0E, 0x20, 0xA0, 0xE1, 0x0C, 0x30, 0xA0, 0xE1, 0xEA, 0xBC, 0xFB, 0xEB + .byte 0x04, 0xD0, 0x8D, 0xE2, 0x18, 0x80, 0xBD, 0xE8, 0x50, 0x10, 0x00, 0x04, 0x08, 0x20, 0x9F, 0xE5 + .byte 0x01, 0x04, 0x80, 0xE1, 0xB0, 0x00, 0xC2, 0xE1, 0x1E, 0xFF, 0x2F, 0xE1, 0x52, 0x10, 0x00, 0x04 + .byte 0x70, 0xB5, 0x0D, 0x1C, 0x06, 0x1C, 0x28, 0x69, 0x00, 0x28, 0x04, 0xD0, 0x01, 0x28, 0x0C, 0xD0 + .byte 0x02, 0x28, 0x1A, 0xD0, 0x70, 0xBD, 0x28, 0x6A, 0xE9, 0x69, 0xAC, 0x68, 0x00, 0x22, 0x10, 0x23 + .byte 0xA0, 0x47, 0x28, 0x69, 0x40, 0x1C, 0x28, 0x61, 0x70, 0xBD, 0xA8, 0x69, 0x02, 0x21, 0x00, 0x06 + .byte 0x00, 0x0E, 0x3F, 0xF6, 0x9B, 0xFB, 0x68, 0x69, 0x03, 0x21, 0x00, 0x06, 0x00, 0x0E, 0x3F, 0xF6 + .byte 0x95, 0xFB, 0x28, 0x69, 0x40, 0x1C, 0x28, 0x61, 0x70, 0xBD, 0xA9, 0x6A, 0xE8, 0x6A, 0x08, 0x18 + .byte 0x04, 0x13, 0xA8, 0x62, 0x10, 0x2C, 0x00, 0xDB, 0x10, 0x24, 0x10, 0x21, 0xEA, 0x68, 0x20, 0x1C + .byte 0x09, 0x1B, 0x90, 0x47, 0x10, 0x2C, 0x04, 0xDB, 0x00, 0x20, 0x68, 0x60, 0x30, 0x1C, 0x34, 0xF6 + .byte 0x79, 0xFC, 0x70, 0xBD + + thumb_func_start MOD84_021D81C4 +MOD84_021D81C4: ; 0x021D81C4 + ldr r0, [r0, #4] + cmp r0, #0 + bne _021D81CE + mov r0, #1 + bx lr +_021D81CE: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD84_021D81C4 + + thumb_func_start MOD84_021D81D4 +MOD84_021D81D4: ; 0x021D81D4 + ldr r3, _021D81D8 ; =FUN_02016A18 + bx r3 + .align 2, 0 +_021D81D8: .word FUN_02016A18 + thumb_func_end MOD84_021D81D4 + + thumb_func_start MOD84_021D81DC +MOD84_021D81DC: ; 0x021D81DC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x4b + mov r1, #0x10 + add r7, r2, #0 + bl FUN_02016998 + add r4, r0, #0 + beq _021D8218 + mov r0, #0x4b + add r3, r4, #0 + str r0, [sp] + add r0, r5, #0 + add r1, r6, #0 + mov r2, #0 + add r3, #8 + bl FUN_02006C30 + str r0, [r4] + mov r0, #0x4b + add r3, r4, #0 + str r0, [sp] + add r0, r5, #0 + add r1, r7, #0 + mov r2, #0 + add r3, #0xc + bl FUN_02006C5C + str r0, [r4, #4] +_021D8218: + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD84_021D81DC + + thumb_func_start MOD84_021D821C +MOD84_021D821C: ; 0x021D821C + push {r4, lr} + add r4, r0, #0 + beq _021D823C + ldr r0, [r4] + cmp r0, #0 + beq _021D822C + bl FUN_02016A18 +_021D822C: + ldr r0, [r4, #4] + cmp r0, #0 + beq _021D8236 + bl FUN_02016A18 +_021D8236: + add r0, r4, #0 + bl FUN_02016A18 +_021D823C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D821C + + thumb_func_start MOD84_021D8240 +MOD84_021D8240: ; 0x021D8240 + str r2, [r0] + str r3, [r0, #8] + ldr r2, [r1, #8] + str r2, [r0, #0xc] + ldr r1, [r1, #0xc] + ldr r2, [sp] + str r1, [r0, #0x10] + add r1, r0, #0 + add r1, #0x20 + strb r2, [r1] + mov r1, #0 + str r1, [r0, #4] + str r1, [r0, #0x14] + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + bx lr + thumb_func_end MOD84_021D8240 + + thumb_func_start MOD84_021D8260 +MOD84_021D8260: ; 0x021D8260 + push {r4, lr} + sub sp, #0x20 + add r0, #0xdc + ldr r0, [r0] + str r0, [sp] + lsl r0, r2, #0xc + str r0, [sp, #8] + lsl r0, r3, #0xc + str r0, [sp, #0xc] + mov r0, #0 + str r0, [sp, #0x10] + ldr r0, [sp, #0x28] + str r1, [sp, #4] + str r0, [sp, #0x14] + ldr r0, [sp, #0x2c] + str r0, [sp, #0x18] + mov r0, #0x4b + str r0, [sp, #0x1c] + add r0, sp, #0 + bl FUN_0201FF84 + add r4, r0, #0 + beq _021D82A6 + mov r1, #1 + bl FUN_020200BC + mov r1, #1 + add r0, r4, #0 + lsl r1, r1, #0xc + bl FUN_020200D8 + ldr r1, [sp, #0x30] + add r0, r4, #0 + bl FUN_020200A0 +_021D82A6: + add r0, r4, #0 + add sp, #0x20 + pop {r4, pc} + thumb_func_end MOD84_021D8260 + + thumb_func_start MOD84_021D82AC +MOD84_021D82AC: ; 0x021D82AC + mov r1, #0x2b + lsl r1, r1, #4 + ldr r0, [r0, r1] + bx lr + thumb_func_end MOD84_021D82AC + + thumb_func_start MOD84_021D82B4 +MOD84_021D82B4: ; 0x021D82B4 + ldr r0, [r0, #0x10] + bx lr + thumb_func_end MOD84_021D82B4 + + thumb_func_start MOD84_021D82B8 +MOD84_021D82B8: ; 0x021D82B8 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r4, r0, #0 + ldr r0, _021D8428 ; =0x00001220 + mov r1, #3 + str r1, [r4, r0] + ldr r0, [r4, #0x18] + ldr r7, _021D8428 ; =0x00001220 + ldr r6, [r0, #8] + mov r5, #1 +_021D82CC: + ldr r0, _021D842C ; =0x00000186 + cmp r5, r0 + beq _021D8340 + add r0, r0, #3 + cmp r5, r0 + beq _021D8340 + ldr r0, _021D8430 ; =0x00000183 + cmp r5, r0 + beq _021D8340 + lsl r1, r5, #0x10 + add r0, r6, #0 + lsr r1, r1, #0x10 + bl FUN_02024594 + cmp r0, #0 + beq _021D8340 + lsl r0, r5, #0x10 + lsr r1, r0, #0x10 + ldr r0, _021D8428 ; =0x00001220 + ldr r0, [r4, r0] + lsl r0, r0, #3 + add r2, r4, r0 + mov r0, #0xae + lsl r0, r0, #2 + strh r1, [r2, r0] + add r0, r6, #0 + mov r2, #0 + bl FUN_02024674 + ldr r1, _021D8428 ; =0x00001220 + ldr r1, [r4, r1] + lsl r1, r1, #3 + add r2, r4, r1 + ldr r1, _021D8434 ; =0x000002BA + strb r0, [r2, r1] + bl FUN_0201B9EC + ldr r1, _021D8428 ; =0x00001220 + ldr r1, [r4, r1] + lsl r1, r1, #3 + add r2, r4, r1 + mov r1, #0xaf + lsl r1, r1, #2 + str r0, [r2, r1] + add r0, r6, #0 + add r1, r5, #0 + mov r2, #0 + bl FUN_02024DAC + ldr r1, _021D8428 ; =0x00001220 + ldr r1, [r4, r1] + lsl r1, r1, #3 + add r2, r4, r1 + ldr r1, _021D8438 ; =0x000002BB + strb r0, [r2, r1] + ldr r0, [r4, r7] + add r0, r0, #1 + str r0, [r4, r7] +_021D8340: + ldr r0, _021D843C ; =0x000001ED + add r5, r5, #1 + cmp r5, r0 + blt _021D82CC + ldr r0, _021D8428 ; =0x00001220 + mov r7, #3 + ldr r0, [r4, r0] + sub r0, r0, #1 + cmp r0, #3 + ble _021D83B0 + add r5, r4, #0 + add r5, #0x18 +_021D8358: + bl FUN_0201B9EC + ldr r1, _021D8428 ; =0x00001220 + ldr r1, [r4, r1] + sub r1, r1, r7 + bl _s32_div_f + add r0, r1, #3 + mov r2, #0xaf + lsl r2, r2, #2 + ldr r2, [r5, r2] + lsl r0, r0, #3 + mov r1, #0xae + lsl r1, r1, #2 + ldr r1, [r5, r1] + str r2, [sp] + str r2, [sp, #8] + mov r2, #0xae + add r0, r4, r0 + lsl r2, r2, #2 + ldr r3, [r0, r2] + add r2, r2, #4 + ldr r2, [r0, r2] + str r1, [sp, #4] + mov ip, r2 + mov r2, #0xae + lsl r2, r2, #2 + str r3, [r5, r2] + mov r3, ip + add r2, r2, #4 + str r3, [r5, r2] + mov r2, #0xae + lsl r2, r2, #2 + str r1, [r0, r2] + ldr r1, [sp] + add r2, r2, #4 + str r1, [r0, r2] + ldr r0, _021D8428 ; =0x00001220 + add r7, r7, #1 + ldr r0, [r4, r0] + add r5, #8 + sub r0, r0, #1 + cmp r7, r0 + blt _021D8358 +_021D83B0: + bl FUN_0201B9EC + mov r1, #3 + bl _s32_div_f + add r5, r1, #0 + mov r7, #0 +_021D83BE: + cmp r5, #0 + beq _021D83CC + cmp r5, #1 + beq _021D83D6 + cmp r5, #2 + beq _021D83E0 + b _021D83E8 +_021D83CC: + mov r0, #0xae + ldr r1, _021D842C ; =0x00000186 + lsl r0, r0, #2 + strh r1, [r4, r0] + b _021D83E8 +_021D83D6: + mov r0, #0xae + ldr r1, _021D8440 ; =0x00000189 + lsl r0, r0, #2 + strh r1, [r4, r0] + b _021D83E8 +_021D83E0: + mov r0, #0xae + ldr r1, _021D8430 ; =0x00000183 + lsl r0, r0, #2 + strh r1, [r4, r0] +_021D83E8: + mov r1, #0xae + lsl r1, r1, #2 + ldrh r1, [r4, r1] + add r0, r6, #0 + mov r2, #0 + bl FUN_02024674 + ldr r1, _021D8434 ; =0x000002BA + strb r0, [r4, r1] + bl FUN_0201B9EC + mov r1, #0xaf + lsl r1, r1, #2 + str r0, [r4, r1] + sub r1, r1, #4 + ldrh r1, [r4, r1] + add r0, r6, #0 + mov r2, #0 + bl FUN_02024DAC + ldr r1, _021D8438 ; =0x000002BB + add r5, r5, #1 + strb r0, [r4, r1] + cmp r5, #3 + blt _021D841C + mov r5, #0 +_021D841C: + add r7, r7, #1 + add r4, #8 + cmp r7, #3 + blt _021D83BE + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D8428: .word 0x00001220 +_021D842C: .word 0x00000186 +_021D8430: .word 0x00000183 +_021D8434: .word 0x000002BA +_021D8438: .word 0x000002BB +_021D843C: .word 0x000001ED +_021D8440: .word 0x00000189 + thumb_func_end MOD84_021D82B8 + + thumb_func_start MOD84_021D8444 +MOD84_021D8444: ; 0x021D8444 + ldr r1, _021D844C ; =0x00001220 + ldr r0, [r0, r1] + bx lr + nop +_021D844C: .word 0x00001220 + thumb_func_end MOD84_021D8444 + + thumb_func_start MOD84_021D8450 +MOD84_021D8450: ; 0x021D8450 + mov r1, #0xae + lsl r1, r1, #2 + add r0, r0, r1 + bx lr + thumb_func_end MOD84_021D8450 + + thumb_func_start MOD84_021D8458 +MOD84_021D8458: ; 0x021D8458 + add r1, r0, #0 + ldr r0, _021D8464 ; =0x00001234 + ldr r3, _021D8468 ; =MOD84_021D847C + add r0, r1, r0 + bx r3 + nop +_021D8464: .word 0x00001234 +_021D8468: .word MOD84_021D847C + thumb_func_end MOD84_021D8458 + + thumb_func_start MOD84_021D846C +MOD84_021D846C: ; 0x021D846C + ldr r1, _021D8474 ; =0x00001234 + ldr r3, _021D8478 ; =MOD84_021D84A0 + add r0, r0, r1 + bx r3 + .align 2, 0 +_021D8474: .word 0x00001234 +_021D8478: .word MOD84_021D84A0 + thumb_func_end MOD84_021D846C + + thumb_func_start MOD84_021D847C +MOD84_021D847C: ; 0x021D847C + push {r3, lr} + mov r3, #0 + str r3, [r0, #4] + str r1, [r0] + mov r1, #1 + str r3, [r0, #8] + lsl r1, r1, #0xa + str r1, [r0, #0xc] + mov r0, #0x10 + str r0, [sp] + ldr r0, _021D849C ; =0x04001050 + mov r1, #2 + mov r2, #0x3f + bl G2x_SetBlendAlpha_ + pop {r3, pc} + .align 2, 0 +_021D849C: .word 0x04001050 + thumb_func_end MOD84_021D847C + + thumb_func_start MOD84_021D84A0 +MOD84_021D84A0: ; 0x021D84A0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + ldr r1, [r4] + cmp r0, #0 + beq _021D84B2 + cmp r0, #1 + beq _021D84C2 + b _021D84EC +_021D84B2: + ldr r0, [r1, #0xc] + mov r1, #0 + bl MOD84_021D87B0 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + b _021D84F0 +_021D84C2: + ldr r1, [r4, #8] + ldr r0, [r4, #0xc] + add r0, r1, r0 + asr r2, r0, #0xc + str r0, [r4, #8] + cmp r2, #0x10 + blt _021D84D2 + mov r2, #0x10 +_021D84D2: + mov r0, #0x10 + sub r0, r0, r2 + lsl r0, r0, #8 + add r1, r2, #0 + orr r1, r0 + ldr r0, _021D84F4 ; =0x04001052 + cmp r2, #0x10 + strh r1, [r0] + bne _021D84F0 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + b _021D84F0 +_021D84EC: + mov r0, #1 + pop {r4, pc} +_021D84F0: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D84F4: .word 0x04001052 + thumb_func_end MOD84_021D84A0 + + thumb_func_start MOD84_021D84F8 +MOD84_021D84F8: ; 0x021D84F8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r6, r0, #0 + str r1, [sp, #0x14] + mov r0, #0x4b + mov r1, #0x38 + add r5, r2, #0 + add r7, r3, #0 + bl FUN_02016998 + add r4, r0, #0 + beq _021D85AC + ldr r0, [sp, #0x14] + str r6, [r4, #0x20] + str r0, [r4] + add r0, #0xc0 + str r0, [r4, #4] + str r0, [sp, #0x14] + ldr r0, [sp, #0x30] + str r5, [r4, #8] + str r0, [r4, #0x2c] + mov r0, #0 + str r0, [r4, #0xc] + str r0, [r4, #0x10] + str r0, [r4, #0x14] + str r0, [r4, #0x18] + str r0, [r4, #0x1c] + mov r0, #1 + lsl r0, r0, #8 + mov r1, #0x4b + bl FUN_020219F4 + str r0, [r4, #0x30] + mov r0, #0x4b + mov r1, #1 + bl FUN_02018FF4 + str r0, [r4, #0x24] + mov r3, #0 + lsl r2, r5, #0x18 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + str r0, [sp, #8] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + str r3, [sp, #0x10] + ldr r1, [r4, #0x24] + add r0, r6, #0 + lsr r2, r2, #0x18 + bl FUN_02019064 + ldr r0, [r4, #0x24] + mov r1, #0 + bl FUN_02019620 + ldr r0, [r4, #0x24] + bl FUN_02019270 + ldr r0, [r4, #0x24] + bl FUN_020191D0 + mov r0, #0x4b + mov r1, #1 + bl FUN_02018FF4 + str r0, [r4, #0x28] + mov r3, #0 + lsl r2, r5, #0x18 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #2 + str r0, [sp, #8] + lsl r0, r7, #0x18 + lsr r0, r0, #0x18 + str r0, [sp, #0xc] + str r3, [sp, #0x10] + ldr r1, [r4, #0x28] + add r0, r6, #0 + lsr r2, r2, #0x18 + bl FUN_02019064 + ldr r0, _021D85B4 ; =MOD84_021D8784 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA98 + str r0, [r4, #0x34] +_021D85AC: + add r0, r4, #0 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D85B4: .word MOD84_021D8784 + thumb_func_end MOD84_021D84F8 + + thumb_func_start MOD84_021D85B8 +MOD84_021D85B8: ; 0x021D85B8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x34] + cmp r0, #0 + beq _021D85C6 + bl FUN_0200CAB4 +_021D85C6: + ldr r0, [r4, #0x30] + bl FUN_02021A20 + ldr r0, [r4, #0x24] + bl FUN_02019178 + ldr r0, [r4, #0x28] + bl FUN_02019178 + ldr r0, [r4, #0x24] + bl FUN_02016A18 + ldr r0, [r4, #0x28] + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD84_021D85B8 + + thumb_func_start MOD84_021D85EC +MOD84_021D85EC: ; 0x021D85EC + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r0, #0 + ldr r2, [r5, #0x1c] + str r1, [sp, #0x18] + cmp r2, #2 + bne _021D8600 + add sp, #0x1c + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021D8600: + ldr r1, [r5, #4] + ldr r0, [sp, #0x18] + add r6, r1, r0 + cmp r2, #0 + bne _021D86E0 + ldr r2, [r5, #0xc] + mov r0, #6 + add r1, r2, #0 + mul r1, r0 + ldr r0, _021D8774 ; =0x021DA766 + ldrh r0, [r0, r1] + cmp r6, r0 + blt _021D86E0 + ldr r2, _021D8778 ; =0x021DA764 + ldr r0, [r5, #0x2c] + ldrh r1, [r2, r1] + ldr r2, [r5, #0x30] + bl FUN_0200A8E0 + ldr r1, [r5, #0xc] + mov r0, #6 + add r2, r1, #0 + mul r2, r0 + ldr r0, _021D877C ; =0x021DA768 + ldrh r0, [r0, r2] + cmp r0, #0 + beq _021D864A + mov r0, #0 + ldr r1, [r5, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #1 + lsl r1, r1, #8 + sub r0, r1, r0 + lsr r7, r0, #1 + b _021D864C +_021D864A: + mov r7, #0x20 +_021D864C: + ldr r1, [r5, #0xc] + mov r0, #6 + add r2, r1, #0 + mul r2, r0 + ldr r0, _021D8774 ; =0x021DA766 + mov r1, #0 + ldrh r0, [r0, r2] + add r3, r7, #0 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + str r4, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8780 ; =0x00010200 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [r5, #0x24] + ldr r2, [r5, #0x30] + bl FUN_0201BDE0 + cmp r4, #0xf0 + ble _021D86D0 + ldr r0, [r5, #0x28] + mov r1, #0 + bl FUN_02019620 + mov r1, #0 + str r1, [sp] + mov r0, #0xff + str r0, [sp, #4] + ldr r0, _021D8780 ; =0x00010200 + add r3, r7, #0 + str r0, [sp, #8] + str r1, [sp, #0xc] + ldr r0, [r5, #0x28] + ldr r2, [r5, #0x30] + bl FUN_0201BDE0 + ldr r1, [r5, #0x28] + sub r4, #0xf0 + ldrb r2, [r1, #7] + mov r0, #0x10 + sub r3, r0, r4 + add r4, r0, #0 + sub r0, r0, r3 + lsl r2, r2, #0x13 + lsr r2, r2, #0x10 + str r2, [sp] + ldrb r2, [r1, #8] + lsl r0, r0, #0x10 + lsl r3, r3, #0x10 + lsl r2, r2, #0x13 + lsr r2, r2, #0x10 + str r2, [sp, #4] + mov r2, #0 + str r2, [sp, #8] + str r2, [sp, #0xc] + add r4, #0xf0 + str r4, [sp, #0x10] + lsr r0, r0, #0x10 + str r0, [sp, #0x14] + ldr r0, [r5, #0x24] + ldr r1, [r1, #0xc] + lsr r3, r3, #0x10 + bl FUN_02019658 +_021D86D0: + mov r1, #1 + str r1, [r5, #0x18] + ldr r0, [r5, #0xc] + add r0, r0, #1 + str r0, [r5, #0xc] + cmp r0, #0xd6 + blo _021D86E0 + str r1, [r5, #0x1c] +_021D86E0: + str r6, [r5, #4] + ldr r0, [r5, #0x10] + mov r1, #6 + add r2, r0, #0 + ldr r0, _021D8774 ; =0x021DA766 + mul r2, r1 + ldrh r3, [r0, r2] + ldr r2, [r5] + add r0, r3, #0 + add r0, #0x10 + cmp r2, r0 + ble _021D8766 + lsl r0, r3, #0x18 + lsr r3, r0, #0x18 + cmp r3, #0xf0 + bgt _021D8718 + add r1, #0xfa + str r1, [sp] + mov r0, #0x10 + str r0, [sp, #4] + mov r1, #0 + lsl r3, r3, #0x10 + ldr r0, [r5, #0x24] + add r2, r1, #0 + lsr r3, r3, #0x10 + bl FUN_020196F4 + b _021D8754 +_021D8718: + add r1, r3, #0 + sub r1, #0xf0 + mov r0, #0x10 + sub r4, r0, r1 + add r0, #0xf0 + str r0, [sp] + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] + mov r1, #0 + lsl r3, r3, #0x10 + ldr r0, [r5, #0x24] + add r2, r1, #0 + lsr r3, r3, #0x10 + bl FUN_020196F4 + mov r1, #0 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0x10 + sub r0, r0, r4 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #4] + ldr r0, [r5, #0x24] + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 +_021D8754: + mov r0, #1 + str r0, [r5, #0x18] + ldr r0, [r5, #0x10] + add r0, r0, #1 + str r0, [r5, #0x10] + cmp r0, #0xd7 + blo _021D8766 + mov r0, #2 + str r0, [r5, #0x1c] +_021D8766: + ldr r1, [r5] + ldr r0, [sp, #0x18] + add r0, r1, r0 + str r0, [r5] + mov r0, #0 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D8774: .word 0x021DA766 +_021D8778: .word 0x021DA764 +_021D877C: .word 0x021DA768 +_021D8780: .word 0x00010200 + thumb_func_end MOD84_021D85EC + + thumb_func_start MOD84_021D8784 +MOD84_021D8784: ; 0x021D8784 + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #0x18] + cmp r0, #0 + beq _021D8798 + ldr r0, [r4, #0x24] + bl FUN_02019548 + mov r0, #0 + str r0, [r4, #0x18] +_021D8798: + ldr r1, [r4, #8] + ldr r3, [r4] + lsl r1, r1, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r4, #0x20] + lsr r1, r1, #0x18 + mov r2, #3 + lsr r3, r3, #0x18 + bl FUN_020179E0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D8784 + + thumb_func_start MOD84_021D87B0 +MOD84_021D87B0: ; 0x021D87B0 + push {r3, r4, r5, lr} + sub sp, #0x18 + add r5, r0, #0 + mov r0, #2 + str r0, [r5, #0x1c] + mov r0, #0 + str r0, [r5, #0x18] + cmp r1, #0 + beq _021D87CE + ldr r0, [r5, #0x24] + mov r1, #0xf + bl FUN_02019620 + ldr r4, _021D8814 ; =0x0001020F + b _021D87D0 +_021D87CE: + ldr r4, _021D8818 ; =0x00010200 +_021D87D0: + ldr r0, [r5, #0x2c] + ldr r2, [r5, #0x30] + mov r1, #0xd7 + bl FUN_0200A8E0 + mov r0, #0 + ldr r1, [r5, #0x30] + add r2, r0, #0 + bl FUN_02002E14 + mov r1, #1 + lsl r1, r1, #8 + sub r0, r1, r0 + mov r1, #0 + lsr r3, r0, #1 + str r1, [r5] + mov r0, #0x50 + str r0, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r4, [sp, #8] + mov r0, #3 + str r0, [sp, #0xc] + str r1, [sp, #0x10] + str r1, [sp, #0x14] + ldr r0, [r5, #0x24] + ldr r2, [r5, #0x30] + bl FUN_0201BE3C + ldr r0, [r5, #0x24] + bl FUN_02019548 + add sp, #0x18 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D8814: .word 0x0001020F +_021D8818: .word 0x00010200 + thumb_func_end MOD84_021D87B0 + + thumb_func_start MOD84_021D881C +MOD84_021D881C: ; 0x021D881C + push {r4, lr} + sub sp, #0x10 + add r4, r0, #0 + mov r0, #2 + str r0, [r4, #0x1c] + mov r0, #0 + str r0, [r4] + str r0, [r4, #0x18] + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #0x20] + ldr r3, [r4, #8] + mov r0, #0x7f + mov r1, #0x2a + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #0x20] + ldr r3, [r4, #8] + mov r0, #0x7f + mov r1, #0x2b + bl FUN_0200687C + mov r0, #0x20 + str r0, [sp] + mov r0, #0x4b + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x7f + mov r1, #0x2c + add r3, r2, #0 + bl FUN_02006930 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D881C + + thumb_func_start MOD84_021D8874 +MOD84_021D8874: ; 0x021D8874 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x4b + mov r1, #0x1c + bl FUN_02016998 + add r4, r0, #0 + beq _021D88A0 + str r5, [r4] + str r6, [r4, #4] + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + add r0, r5, #0 + bl MOD84_021D82AC + str r0, [r4, #8] + mov r0, #0 + str r0, [r4, #0xc] + sub r0, #0x36 + str r0, [r4, #0x10] +_021D88A0: + add r0, r4, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD84_021D8874 + + thumb_func_start MOD84_021D88A4 +MOD84_021D88A4: ; 0x021D88A4 + push {r4, lr} + add r4, r0, #0 + bl MOD84_021D8958 + cmp r0, #0 + beq _021D88C4 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_02020130 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020200A0 + mov r0, #1 + pop {r4, pc} +_021D88C4: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD84_021D88A4 + + thumb_func_start MOD84_021D88C8 +MOD84_021D88C8: ; 0x021D88C8 + push {r4, lr} + add r4, r0, #0 + bl MOD84_021D8A74 + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D88C8 + + thumb_func_start MOD84_021D88DC +MOD84_021D88DC: ; 0x021D88DC + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + ldr r1, [r5, #0xc] + ldr r0, [r5, #0x10] + mov r7, #1 + add r0, r1, r0 + str r0, [r5, #0xc] + asr r6, r0, #0xc + lsl r7, r7, #8 + ldr r0, [r5, #4] + mov r1, #2 + mov r2, #0 + add r3, r6, r7 + bl FUN_020179E0 + ldr r0, [r5, #4] + mov r1, #6 + mov r2, #0 + add r3, r6, r7 + bl FUN_020179E0 + ldr r0, [r4] + cmp r0, #0 + beq _021D8914 + cmp r0, #1 + beq _021D893A + b _021D8950 +_021D8914: + ldr r0, [r5, #0x14] + add r1, r0, #1 + ldr r0, _021D8954 ; =0x00000708 + str r1, [r5, #0x14] + cmp r1, r0 + blt _021D8950 + mov r0, #3 + str r0, [sp] + mov r0, #0x20 + add r1, r0, #0 + sub r1, #0x30 + mov r2, #0 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8950 +_021D893A: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021D8950 + ldr r0, [r5, #8] + mov r1, #0 + bl FUN_020200A0 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D8950: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D8954: .word 0x00000708 + thumb_func_end MOD84_021D88DC + + thumb_func_start MOD84_021D8958 +MOD84_021D8958: ; 0x021D8958 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #4 + bhi _021D8A50 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D8972: ; jump table + .short _021D897C - _021D8972 - 2 ; case 0 + .short _021D899C - _021D8972 - 2 ; case 1 + .short _021D89D8 - _021D8972 - 2 ; case 2 + .short _021D8A10 - _021D8972 - 2 ; case 3 + .short _021D8A30 - _021D8972 - 2 ; case 4 +_021D897C: + ldr r0, [r5, #4] + ldr r2, _021D8A6C ; =0x021DAC70 + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r5, #4] + ldr r2, _021D8A6C ; =0x021DAC70 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8A64 +_021D899C: + mov r0, #0x80 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #6 + str r0, [sp, #4] + mov r0, #0x4b + mov r2, #0 + str r0, [sp, #8] + mov r0, #0x7f + mov r1, #0x41 + add r3, r2, #0 + bl FUN_02006948 + mov r0, #0x80 + str r0, [sp] + mov r0, #6 + lsl r0, r0, #6 + str r0, [sp, #4] + mov r0, #0x4b + str r0, [sp, #8] + mov r0, #0x7f + mov r1, #0x41 + mov r2, #4 + mov r3, #0 + bl FUN_02006948 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8A64 +_021D89D8: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #4 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + mov r1, #6 + ldr r2, [r5, #4] + mov r0, #0x7f + add r3, r1, #0 + bl FUN_020068C8 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8A64 +_021D8A10: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #5 + mov r3, #2 + bl FUN_0200687C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8A64 +_021D8A30: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #7 + mov r3, #6 + bl FUN_0200687C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8A64 +_021D8A50: + ldr r0, _021D8A70 ; =0x04000050 + mov r1, #0 + mov r2, #0xc + mov r3, #0x10 + str r1, [sp] + bl G2x_SetBlendAlpha_ + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D8A64: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D8A6C: .word 0x021DAC70 +_021D8A70: .word 0x04000050 + thumb_func_end MOD84_021D8958 + + thumb_func_start MOD84_021D8A74 +MOD84_021D8A74: ; 0x021D8A74 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D8A74 + + thumb_func_start MOD84_021D8A8C +MOD84_021D8A8C: ; 0x021D8A8C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r0, #0x4b + mov r1, #0x10 + bl FUN_02016998 + cmp r0, #0 + beq _021D8AA8 + str r5, [r0] + str r4, [r0, #4] + mov r1, #0 + str r1, [r0, #8] + str r1, [r0, #0xc] +_021D8AA8: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD84_021D8A8C + + thumb_func_start MOD84_021D8AAC +MOD84_021D8AAC: ; 0x021D8AAC + push {r3, lr} + bl MOD84_021D8B70 + cmp r0, #0 + beq _021D8ABA + mov r0, #1 + pop {r3, pc} +_021D8ABA: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD84_021D8AAC + + thumb_func_start MOD84_021D8AC0 +MOD84_021D8AC0: ; 0x021D8AC0 + push {r4, lr} + add r4, r0, #0 + bl MOD84_021D8C3C + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D8AC0 + + thumb_func_start MOD84_021D8AD4 +MOD84_021D8AD4: ; 0x021D8AD4 + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + ldr r1, [r4] + cmp r1, #3 + bhi _021D8B66 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D8AEC: ; jump table + .short _021D8AF4 - _021D8AEC - 2 ; case 0 + .short _021D8B16 - _021D8AEC - 2 ; case 1 + .short _021D8B28 - _021D8AEC - 2 ; case 2 + .short _021D8B4E - _021D8AEC - 2 ; case 3 +_021D8AF4: + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r1, #0 + mov r0, #3 + add r2, r1, #0 + str r0, [sp] + mov r0, #0x20 + sub r2, #0x10 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8B66 +_021D8B16: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021D8B66 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8B66 +_021D8B28: + ldr r1, [r0, #8] + add r1, r1, #1 + str r1, [r0, #8] + ldr r0, _021D8B6C ; =0x000002DF + cmp r1, r0 + blt _021D8B66 + mov r0, #3 + str r0, [sp] + mov r0, #0x20 + add r1, r0, #0 + sub r1, #0x30 + mov r2, #0 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8B66 +_021D8B4E: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021D8B66 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + add sp, #4 + mov r0, #1 + pop {r3, r4, pc} +_021D8B66: + mov r0, #0 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021D8B6C: .word 0x000002DF + thumb_func_end MOD84_021D8AD4 + + thumb_func_start MOD84_021D8B70 +MOD84_021D8B70: ; 0x021D8B70 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #3 + bhi _021D8C2A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D8B8A: ; jump table + .short _021D8B92 - _021D8B8A - 2 ; case 0 + .short _021D8BB2 - _021D8B8A - 2 ; case 1 + .short _021D8BEA - _021D8B8A - 2 ; case 2 + .short _021D8C0A - _021D8B8A - 2 ; case 3 +_021D8B92: + ldr r0, [r5, #4] + ldr r2, _021D8C38 ; =0x021DAC8C + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r5, #4] + ldr r2, _021D8C38 ; =0x021DAC8C + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8C30 +_021D8BB2: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #0x24 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #0x22 + mov r3, #6 + bl FUN_020068C8 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8C30 +_021D8BEA: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #0x25 + mov r3, #2 + bl FUN_0200687C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8C30 +_021D8C0A: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #0x23 + mov r3, #6 + bl FUN_0200687C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D8C30 +_021D8C2A: + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D8C30: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D8C38: .word 0x021DAC8C + thumb_func_end MOD84_021D8B70 + + thumb_func_start MOD84_021D8C3C +MOD84_021D8C3C: ; 0x021D8C3C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D8C3C + + thumb_func_start MOD84_021D8C54 +MOD84_021D8C54: ; 0x021D8C54 + push {r4, r5, r6, lr} + add r6, r1, #0 + mov r1, #0xe + add r5, r0, #0 + mov r0, #0x4b + lsl r1, r1, #8 + bl FUN_02016998 + add r4, r0, #0 + beq _021D8CC6 + str r5, [r4] + ldr r1, _021D8CCC ; =0x00000DF4 + str r6, [r4, #4] + mov r2, #0 + str r2, [r4, r1] + add r0, r1, #4 + str r2, [r4, r0] + add r1, #0xa + strh r2, [r4, r1] + bl FUN_0201B9EC + ldr r1, _021D8CD0 ; =0x00000DFC + strh r0, [r4, r1] + add r0, r5, #0 + bl MOD84_021D8444 + mov r1, #0x17 + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r5, #0 + bl MOD84_021D8450 + mov r1, #0x5b + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, _021D8CD4 ; =MOD84_021D9278 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 + mov r1, #0x5a + lsl r1, r1, #2 + str r0, [r4, r1] + mov r2, #0 + str r2, [r4, #0xc] + mov r0, #0x15 + str r2, [r4, #8] + add r3, r4, #0 + add r1, r2, #0 + lsl r0, r0, #4 +_021D8CB8: + str r1, [r3, #0x60] + str r1, [r3, #0x48] + str r1, [r3, r0] + add r2, r2, #1 + add r3, r3, #4 + cmp r2, #6 + blt _021D8CB8 +_021D8CC6: + add r0, r4, #0 + pop {r4, r5, r6, pc} + nop +_021D8CCC: .word 0x00000DF4 +_021D8CD0: .word 0x00000DFC +_021D8CD4: .word MOD84_021D9278 + thumb_func_end MOD84_021D8C54 + + thumb_func_start MOD84_021D8CD8 +MOD84_021D8CD8: ; 0x021D8CD8 + push {r3, lr} + bl MOD84_021D8DF8 + cmp r0, #0 + beq _021D8CE6 + mov r0, #1 + pop {r3, pc} +_021D8CE6: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD84_021D8CD8 + + thumb_func_start MOD84_021D8CEC +MOD84_021D8CEC: ; 0x021D8CEC + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D8D08 ; =0x00000DFC + ldrh r0, [r4, r0] + bl FUN_0201B9E0 + add r0, r4, #0 + bl MOD84_021D9044 + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021D8D08: .word 0x00000DFC + thumb_func_end MOD84_021D8CEC + + thumb_func_start MOD84_021D8D0C +MOD84_021D8D0C: ; 0x021D8D0C + push {r3, r4, r5, lr} + add r5, r1, #0 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #3 + bhi _021D8DC8 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D8D24: ; jump table + .short _021D8D2C - _021D8D24 - 2 ; case 0 + .short _021D8D56 - _021D8D24 - 2 ; case 1 + .short _021D8D6E - _021D8D24 - 2 ; case 2 + .short _021D8D9E - _021D8D24 - 2 ; case 3 +_021D8D2C: + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #0 + bl FUN_0201E74C + mov r1, #0 + mov r0, #3 + add r2, r1, #0 + str r0, [sp] + mov r0, #0x20 + sub r2, #0x10 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D8DE6 +_021D8D56: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021D8DE6 + ldr r0, _021D8DEC ; =0x00000DF4 + mov r1, #0 + str r1, [r4, r0] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D8DE6 +_021D8D6E: + ldr r1, _021D8DEC ; =0x00000DF4 + ldr r2, [r4, r1] + cmp r2, #0 + bne _021D8D98 + mov r2, #0x64 + str r2, [r4, r1] + add r1, #0xa + ldrh r1, [r4, r1] + bl MOD84_021D90C4 + ldr r0, _021D8DF0 ; =0x00000DFE + ldrh r1, [r4, r0] + add r1, r1, #1 + strh r1, [r4, r0] + ldrh r0, [r4, r0] + cmp r0, #6 + blo _021D8DE6 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D8DE6 +_021D8D98: + sub r0, r2, #1 + str r0, [r4, r1] + b _021D8DE6 +_021D8D9E: + ldr r0, _021D8DEC ; =0x00000DF4 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, r0] + ldr r0, _021D8DF4 ; =0x000002FD + cmp r1, r0 + blt _021D8DE6 + mov r0, #3 + str r0, [sp] + mov r0, #0x20 + add r1, r0, #0 + sub r1, #0x30 + mov r2, #0 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D8DE6 +_021D8DC8: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021D8DE6 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + mov r0, #1 + pop {r3, r4, r5, pc} +_021D8DE6: + mov r0, #0 + pop {r3, r4, r5, pc} + nop +_021D8DEC: .word 0x00000DF4 +_021D8DF0: .word 0x00000DFE +_021D8DF4: .word 0x000002FD + thumb_func_end MOD84_021D8D0C + + thumb_func_start MOD84_021D8DF8 +MOD84_021D8DF8: ; 0x021D8DF8 + push {r4, r5, r6, r7, lr} + sub sp, #0x6c + add r4, r0, #0 + ldr r0, [r1] + str r1, [sp, #0x14] + cmp r0, #8 + bls _021D8E08 + b _021D9028 +_021D8E08: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D8E14: ; jump table + .short _021D8E26 - _021D8E14 - 2 ; case 0 + .short _021D8E4A - _021D8E14 - 2 ; case 1 + .short _021D8E86 - _021D8E14 - 2 ; case 2 + .short _021D8EAA - _021D8E14 - 2 ; case 3 + .short _021D8ECE - _021D8E14 - 2 ; case 4 + .short _021D8EF2 - _021D8E14 - 2 ; case 5 + .short _021D8F40 - _021D8E14 - 2 ; case 6 + .short _021D8F86 - _021D8E14 - 2 ; case 7 + .short _021D8FD4 - _021D8E14 - 2 ; case 8 +_021D8E26: + ldr r0, [r4, #4] + ldr r2, _021D903C ; =0x021DACB8 + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #4] + ldr r2, _021D903C ; =0x021DACB8 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021D9034 +_021D8E4A: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x22 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x22 + mov r3, #6 + bl FUN_020068C8 + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021D9034 +_021D8E86: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x23 + mov r3, #2 + bl FUN_0200687C + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021D9034 +_021D8EAA: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x23 + mov r3, #6 + bl FUN_0200687C + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021D9034 +_021D8ECE: + mov r0, #0x7f + mov r1, #0x35 + mov r2, #0x36 + bl MOD84_021D81DC + str r0, [r4, #8] + mov r0, #0x1b + mov r1, #0x29 + mov r2, #0x2a + bl MOD84_021D81DC + str r0, [r4, #0xc] + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021D9034 +_021D8EF2: + add r0, r4, #0 + add r0, #0x10 + bl FUN_020B1A24 + add r0, r4, #0 + add r0, #0x34 + bl FUN_020B19DC + mov r2, #0 + str r2, [sp] + mov r0, #1 + str r0, [sp, #4] + str r2, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0x10 + str r0, [sp, #0x10] + mov r0, #0x7f + mov r1, #0x37 + add r3, r2, #0 + bl FUN_02006AE4 + mov r0, #0x4b + str r0, [sp] + add r4, #0x34 + mov r0, #0x7f + mov r1, #0x38 + mov r2, #1 + mov r3, #0 + str r4, [sp, #4] + bl FUN_02006A8C + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021D9034 +_021D8F40: + mov r0, #1 + str r0, [sp] + add r2, r4, #0 + add r3, r4, #0 + ldr r1, [r4, #8] + add r0, sp, #0x48 + add r2, #0x10 + add r3, #0x34 + bl MOD84_021D8240 + mov r6, #0 + add r5, r4, #0 + add r7, r6, #0 +_021D8F5A: + mov r0, #2 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r7, [sp, #8] + ldr r0, [r4] + add r1, sp, #0x48 + add r2, r7, #0 + add r3, r7, #0 + bl MOD84_021D8260 + str r0, [r5, #0x48] + add r6, r6, #1 + add r5, r5, #4 + cmp r6, #6 + blt _021D8F5A + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021D9034 +_021D8F86: + mov r0, #0x4b + str r0, [sp] + mov r0, #0x1b + mov r1, #0x28 + mov r2, #0 + add r3, sp, #0x20 + bl FUN_02006BB0 + str r0, [sp, #0x18] + cmp r0, #0 + beq _021D8FC8 + mov r5, #0x19 + lsl r5, r5, #8 + mov r6, #0 + add r4, #0x78 + lsr r7, r5, #1 +_021D8FA6: + add r0, r4, #0 + bl FUN_020B1A24 + ldr r0, [sp, #0x20] + add r1, r5, #0 + mov r2, #1 + add r3, r4, #0 + bl FUN_020B1768 + add r6, r6, #1 + add r4, #0x24 + add r5, r5, r7 + cmp r6, #6 + blt _021D8FA6 + ldr r0, [sp, #0x18] + bl FUN_02016A18 +_021D8FC8: + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021D9034 +_021D8FD4: + add r0, r4, #0 + add r6, r4, #0 + str r0, [sp, #0x1c] + add r0, #0x34 + mov r7, #0 + add r6, #0x78 + add r5, r4, #0 + str r0, [sp, #0x1c] +_021D8FE4: + mov r0, #1 + str r0, [sp] + ldr r1, [r4, #0xc] + ldr r3, [sp, #0x1c] + add r0, sp, #0x24 + add r2, r6, #0 + bl MOD84_021D8240 + mov r0, #1 + str r0, [sp] + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r2, #0 + ldr r0, [r4] + add r1, sp, #0x24 + add r3, r2, #0 + bl MOD84_021D8260 + mov r1, #0xe + str r0, [r5, #0x60] + bl FUN_020202A8 + add r7, r7, #1 + add r6, #0x24 + add r5, r5, #4 + cmp r7, #6 + blt _021D8FE4 + ldr r0, [sp, #0x14] + ldr r0, [r0] + add r1, r0, #1 + ldr r0, [sp, #0x14] + str r1, [r0] + b _021D9034 +_021D9028: + ldr r0, _021D9040 ; =0x00003485 + bl FUN_0201B9E0 + add sp, #0x6c + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021D9034: + mov r0, #0 + add sp, #0x6c + pop {r4, r5, r6, r7, pc} + nop +_021D903C: .word 0x021DACB8 +_021D9040: .word 0x00003485 + thumb_func_end MOD84_021D8DF8 + + thumb_func_start MOD84_021D9044 +MOD84_021D9044: ; 0x021D9044 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + bl OS_DisableInterrupts + mov r7, #0x15 + str r0, [sp] + mov r4, #0 + add r5, r6, #0 + lsl r7, r7, #4 +_021D9056: + ldr r0, [r5, #0x48] + cmp r0, #0 + beq _021D9060 + bl FUN_0201FFC8 +_021D9060: + ldr r0, [r5, #0x60] + cmp r0, #0 + beq _021D906A + bl FUN_0201FFC8 +_021D906A: + ldr r0, [r5, r7] + cmp r0, #0 + beq _021D9082 + bl FUN_0201B6C8 + bl FUN_02016A18 + mov r0, #0x15 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_0200CAB4 +_021D9082: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _021D9056 + mov r0, #0x5a + lsl r0, r0, #2 + ldr r0, [r6, r0] + cmp r0, #0 + beq _021D9098 + bl FUN_0200CAB4 +_021D9098: + ldr r0, [r6, #8] + cmp r0, #0 + beq _021D90A2 + bl MOD84_021D821C +_021D90A2: + ldr r0, [r6, #0xc] + cmp r0, #0 + beq _021D90AC + bl MOD84_021D821C +_021D90AC: + ldr r0, [r6, #4] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r6, #4] + mov r1, #6 + bl FUN_020178A0 + ldr r0, [sp] + bl OS_RestoreInterrupts + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD84_021D9044 + + thumb_func_start MOD84_021D90C4 +MOD84_021D90C4: ; 0x021D90C4 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x4b + mov r1, #0x38 + bl FUN_02016998 + add r4, r0, #0 + bne _021D90DA + b _021D91F6 +_021D90DA: + mov r0, #1 + str r0, [r4] + str r5, [r4, #4] + mov r0, #0x17 + str r6, [r4, #8] + lsl r0, r0, #4 + ldr r1, [r5, r0] + cmp r6, r1 + blt _021D90F4 + add r0, r6, #0 + bl _s32_div_f + b _021D90F6 +_021D90F4: + add r1, r6, #0 +_021D90F6: + lsl r6, r6, #2 + str r1, [r4, #0xc] + add r1, r5, r6 + ldr r0, [r1, #0x48] + str r0, [r4, #0x14] + ldr r0, [r1, #0x60] + str r0, [r4, #0x10] + mov r0, #0x5b + lsl r0, r0, #2 + ldr r3, [r5, r0] + ldr r0, [r4, #0xc] + ldr r7, [r4, #8] + lsl r1, r0, #3 + mov r0, #0 + add r2, r3, r1 + str r0, [sp] + ldrb r0, [r2, #3] + str r0, [sp, #4] + ldr r0, [r2, #4] + str r0, [sp, #8] + ldrh r1, [r3, r1] + ldrb r2, [r2, #2] + add r0, sp, #0xc + mov r3, #2 + bl FUN_02068C00 + mov r0, #0x5d + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [sp] + add r1, sp, #0xc + ldrh r0, [r1] + ldrh r1, [r1, #2] + ldr r3, _021D91FC ; =0x021DACA8 + mov r2, #0x4b + bl FUN_02012400 + mov r0, #0x5d + lsl r0, r0, #2 + mov r1, #0x32 + add r0, r5, r0 + lsl r1, r1, #6 + bl DC_FlushRange + mov r2, #0x32 + mov r0, #0x5d + lsl r2, r2, #6 + add r1, r7, #0 + lsl r0, r0, #2 + mul r1, r2 + lsl r3, r2, #1 + add r0, r5, r0 + add r1, r1, r3 + bl GX_LoadOBJ + mov r0, #0x4e + lsl r0, r0, #0xe + str r0, [r4, #0x18] + bl FUN_0201B9EC + lsr r2, r0, #0x1f + lsl r1, r0, #0x19 + sub r1, r1, r2 + mov r0, #0x19 + ror r1, r0 + add r0, r2, r1 + add r0, #0xf0 + lsl r0, r0, #0xc + str r0, [r4, #0x1c] + mov r0, #0 + str r0, [r4, #0x20] + bl FUN_0201B9EC + ldr r1, _021D9200 ; =0x00000667 + bl _s32_div_f + ldr r0, _021D9204 ; =0x00000666 + add r0, r1, r0 + str r0, [r4, #0x24] + ldr r0, [r4, #0x1c] + str r0, [r4, #0x30] + mov r0, #0 + str r0, [r4, #0x28] + bl FUN_0201B9EC + lsr r2, r0, #0x1f + lsl r1, r0, #0x1f + sub r1, r1, r2 + mov r0, #0x1f + ror r1, r0 + add r0, r2, r1 + add r0, r0, #2 + lsl r0, r0, #0xc + str r0, [r4, #0x2c] + bl FUN_0201B9EC + mov r1, #0xc + bl _s32_div_f + add r0, r1, #4 + str r0, [r4, #0x34] + add r1, r4, #0 + ldr r0, [r4, #0x14] + add r1, #0x18 + bl FUN_02020044 + add r1, r4, #0 + ldr r0, [r4, #0x10] + add r1, #0x18 + bl FUN_02020044 + ldr r0, [r4, #0x14] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_020200A0 + ldr r0, _021D9208 ; =MOD84_021D920C + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA60 + mov r1, #0x15 + add r2, r5, r6 + lsl r1, r1, #4 + str r0, [r2, r1] +_021D91F6: + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + nop +_021D91FC: .word 0x021DACA8 +_021D9200: .word 0x00000667 +_021D9204: .word 0x00000666 +_021D9208: .word MOD84_021D920C + thumb_func_end MOD84_021D90C4 + + thumb_func_start MOD84_021D920C +MOD84_021D920C: ; 0x021D920C + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4] + cmp r0, #1 + bne _021D9270 + ldr r2, [r4, #0x28] + ldr r1, [r4, #0x2c] + add r0, r4, #0 + add r2, r2, r1 + mov r1, #0x5a + lsl r1, r1, #0xe + add r0, #0x28 + str r2, [r4, #0x28] + cmp r2, r1 + blt _021D9230 + ldr r2, [r0] + sub r1, r2, r1 + str r1, [r0] +_021D9230: + ldr r2, [r4, #0x28] + ldr r0, [r4, #0x34] + asr r2, r2, #0xc + lsl r3, r2, #2 + ldr r2, _021D9274 ; =0x020EDF50 + ldr r1, [r4, #0x30] + ldr r2, [r2, r3] + mul r2, r0 + add r0, r1, r2 + str r0, [r4, #0x1c] + ldr r2, [r4, #0x18] + ldr r0, [r4, #0x24] + add r1, r4, #0 + sub r0, r2, r0 + str r0, [r4, #0x18] + ldr r0, [r4, #0x14] + add r1, #0x18 + bl FUN_02020044 + add r1, r4, #0 + ldr r0, [r4, #0x10] + add r1, #0x18 + bl FUN_02020044 + ldr r0, [r4, #0x18] + asr r1, r0, #0xc + mov r0, #0x37 + mvn r0, r0 + cmp r1, r0 + bge _021D9270 + mov r0, #0 + str r0, [r4] +_021D9270: + pop {r4, pc} + nop +_021D9274: .word 0x020EDF50 + thumb_func_end MOD84_021D920C + + thumb_func_start MOD84_021D9278 +MOD84_021D9278: ; 0x021D9278 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + str r1, [sp, #0xc] + mov r7, #0 + add r6, r1, #0 +_021D9282: + mov r0, #0x15 + lsl r0, r0, #4 + ldr r0, [r6, r0] + cmp r0, #0 + beq _021D937A + bl FUN_0201B6C8 + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + bne _021D937A + mov r1, #0x17 + ldr r0, [r4, #0xc] + ldr r2, [sp, #0xc] + lsl r1, r1, #4 + ldr r1, [r2, r1] + add r0, r0, #6 + cmp r0, r1 + blt _021D92AE + bl _s32_div_f + add r0, r1, #0 +_021D92AE: + str r0, [r4, #0xc] + ldr r1, [r4, #8] + ldr r5, [r4, #4] + str r1, [sp, #0x10] + mov r1, #0x5b + lsl r1, r1, #2 + ldr r3, [r5, r1] + lsl r1, r0, #3 + mov r0, #0 + add r2, r3, r1 + str r0, [sp] + ldrb r0, [r2, #3] + str r0, [sp, #4] + ldr r0, [r2, #4] + str r0, [sp, #8] + ldrh r1, [r3, r1] + ldrb r2, [r2, #2] + add r0, sp, #0x14 + mov r3, #2 + bl FUN_02068C00 + mov r0, #0x5d + lsl r0, r0, #2 + add r0, r5, r0 + str r0, [sp] + add r0, sp, #0x14 + add r1, sp, #0x14 + ldrh r0, [r0] + ldrh r1, [r1, #2] + ldr r3, _021D9388 ; =0x021DACA8 + mov r2, #0x4b + bl FUN_02012400 + mov r0, #0x5d + lsl r0, r0, #2 + mov r1, #0x32 + add r0, r5, r0 + lsl r1, r1, #6 + bl DC_FlushRange + ldr r2, [sp, #0x10] + mov r1, #0x32 + mov r0, #0x5d + add r3, r2, #0 + lsl r1, r1, #6 + lsl r0, r0, #2 + mul r3, r1 + lsl r1, r1, #1 + mov r2, #0x32 + add r0, r5, r0 + add r1, r3, r1 + lsl r2, r2, #6 + bl GX_LoadOBJ + mov r0, #0x4e + lsl r0, r0, #0xe + str r0, [r4, #0x18] + bl FUN_0201B9EC + lsr r2, r0, #0x1f + lsl r1, r0, #0x19 + sub r1, r1, r2 + mov r0, #0x19 + ror r1, r0 + add r0, r2, r1 + add r0, #0xf0 + lsl r0, r0, #0xc + str r0, [r4, #0x1c] + mov r0, #0 + str r0, [r4, #0x20] + bl FUN_0201B9EC + ldr r1, _021D938C ; =0x00000667 + bl _s32_div_f + ldr r0, _021D9390 ; =0x00000666 + add r0, r1, r0 + str r0, [r4, #0x24] + ldr r0, [r4, #0x1c] + str r0, [r4, #0x30] + mov r0, #0 + str r0, [r4, #0x28] + bl FUN_0201B9EC + lsr r2, r0, #0x1f + lsl r1, r0, #0x1f + sub r1, r1, r2 + mov r0, #0x1f + ror r1, r0 + add r0, r2, r1 + add r0, r0, #2 + lsl r0, r0, #0xc + str r0, [r4, #0x2c] + bl FUN_0201B9EC + mov r1, #0xc + bl _s32_div_f + add r0, r1, #4 + str r0, [r4, #0x34] + mov r0, #1 + str r0, [r4] +_021D937A: + add r7, r7, #1 + add r6, r6, #4 + cmp r7, #6 + bge _021D9384 + b _021D9282 +_021D9384: + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021D9388: .word 0x021DACA8 +_021D938C: .word 0x00000667 +_021D9390: .word 0x00000666 + thumb_func_end MOD84_021D9278 + + thumb_func_start MOD84_021D9394 +MOD84_021D9394: ; 0x021D9394 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r0, #0x4b + mov r1, #0x10 + bl FUN_02016998 + cmp r0, #0 + beq _021D93B0 + str r5, [r0] + str r4, [r0, #4] + mov r1, #0 + str r1, [r0, #8] + str r1, [r0, #0xc] +_021D93B0: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD84_021D9394 + + thumb_func_start MOD84_021D93B4 +MOD84_021D93B4: ; 0x021D93B4 + push {r3, lr} + bl MOD84_021D9478 + cmp r0, #0 + beq _021D93C2 + mov r0, #1 + pop {r3, pc} +_021D93C2: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD84_021D93B4 + + thumb_func_start MOD84_021D93C8 +MOD84_021D93C8: ; 0x021D93C8 + push {r4, lr} + add r4, r0, #0 + bl MOD84_021D9544 + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D93C8 + + thumb_func_start MOD84_021D93DC +MOD84_021D93DC: ; 0x021D93DC + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + ldr r1, [r4] + cmp r1, #3 + bhi _021D946E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D93F4: ; jump table + .short _021D93FC - _021D93F4 - 2 ; case 0 + .short _021D941E - _021D93F4 - 2 ; case 1 + .short _021D9430 - _021D93F4 - 2 ; case 2 + .short _021D9456 - _021D93F4 - 2 ; case 3 +_021D93FC: + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r1, #0 + mov r0, #3 + add r2, r1, #0 + str r0, [sp] + mov r0, #0x20 + sub r2, #0x10 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D946E +_021D941E: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021D946E + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D946E +_021D9430: + ldr r1, [r0, #8] + add r1, r1, #1 + str r1, [r0, #8] + ldr r0, _021D9474 ; =0x0000032F + cmp r1, r0 + blt _021D946E + mov r0, #3 + str r0, [sp] + mov r0, #0x20 + add r1, r0, #0 + sub r1, #0x30 + mov r2, #0 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D946E +_021D9456: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021D946E + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + add sp, #4 + mov r0, #1 + pop {r3, r4, pc} +_021D946E: + mov r0, #0 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021D9474: .word 0x0000032F + thumb_func_end MOD84_021D93DC + + thumb_func_start MOD84_021D9478 +MOD84_021D9478: ; 0x021D9478 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #3 + bhi _021D9532 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D9492: ; jump table + .short _021D949A - _021D9492 - 2 ; case 0 + .short _021D94BA - _021D9492 - 2 ; case 1 + .short _021D94F2 - _021D9492 - 2 ; case 2 + .short _021D9512 - _021D9492 - 2 ; case 3 +_021D949A: + ldr r0, [r5, #4] + ldr r2, _021D9540 ; =0x021DACD4 + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r5, #4] + ldr r2, _021D9540 ; =0x021DACD4 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D9538 +_021D94BA: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #0x26 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #0x22 + mov r3, #6 + bl FUN_020068C8 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D9538 +_021D94F2: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #0x27 + mov r3, #2 + bl FUN_0200687C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D9538 +_021D9512: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #0x23 + mov r3, #6 + bl FUN_0200687C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D9538 +_021D9532: + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D9538: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D9540: .word 0x021DACD4 + thumb_func_end MOD84_021D9478 + + thumb_func_start MOD84_021D9544 +MOD84_021D9544: ; 0x021D9544 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D9544 + + thumb_func_start MOD84_021D955C +MOD84_021D955C: ; 0x021D955C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x4b + mov r1, #0x6c + bl FUN_02016998 + add r4, r0, #0 + beq _021D958E + str r5, [r4] + str r6, [r4, #4] + mov r0, #0 + str r0, [r4, #0x64] + str r0, [r4, #0x68] + add r0, r5, #0 + bl MOD84_021D82AC + str r0, [r4, #0x4c] + mov r0, #0 + str r0, [r4, #0x50] + str r0, [r4, #8] + str r0, [r4, #0xc] + str r0, [r4, #0x48] + str r0, [r4, #0x54] + str r0, [r4, #0x5c] +_021D958E: + add r0, r4, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD84_021D955C + + thumb_func_start MOD84_021D9594 +MOD84_021D9594: ; 0x021D9594 + push {r4, lr} + add r4, r0, #0 + bl MOD84_021D9804 + cmp r0, #0 + beq _021D95B4 + ldr r0, [r4, #0x4c] + mov r1, #0 + bl FUN_02020130 + ldr r0, [r4, #0x4c] + mov r1, #1 + bl FUN_020200A0 + mov r0, #1 + pop {r4, pc} +_021D95B4: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD84_021D9594 + + thumb_func_start MOD84_021D95B8 +MOD84_021D95B8: ; 0x021D95B8 + push {r4, lr} + add r4, r0, #0 + bl MOD84_021D9A04 + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D95B8 + + thumb_func_start MOD84_021D95CC +MOD84_021D95CC: ; 0x021D95CC + push {r3, r4, r5, r6, lr} + sub sp, #0x1c + add r4, r0, #0 + ldr r0, [r4, #0x54] + add r5, r1, #0 + add r0, #0x80 + asr r6, r0, #0xc + str r0, [r4, #0x54] + ldr r0, [r4, #4] + mov r1, #2 + mov r2, #0 + add r3, r6, #0 + bl FUN_020179E0 + ldr r0, [r4, #4] + mov r1, #6 + mov r2, #0 + add r3, r6, #0 + bl FUN_020179E0 + ldr r0, [r4, #4] + mov r1, #3 + mov r2, #0 + add r3, r6, #0 + bl FUN_020179E0 + ldr r0, [r4, #4] + mov r1, #7 + mov r2, #0 + add r3, r6, #0 + bl FUN_020179E0 + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _021D9632 + bl FUN_0202011C + add r3, r0, #0 + add r2, sp, #0x10 + ldmia r3!, {r0, r1} + add r6, r2, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, r6, #0 + str r0, [r2] + ldr r0, [sp, #0x14] + sub r0, #0x40 + str r0, [sp, #0x14] + ldr r0, [r4, #0x50] + bl FUN_02020044 +_021D9632: + ldr r0, [r5] + cmp r0, #7 + bhi _021D96D2 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D9644: ; jump table + .short _021D9654 - _021D9644 - 2 ; case 0 + .short _021D966E - _021D9644 - 2 ; case 1 + .short _021D968E - _021D9644 - 2 ; case 2 + .short _021D96BE - _021D9644 - 2 ; case 3 + .short _021D9750 - _021D9644 - 2 ; case 4 + .short _021D9780 - _021D9644 - 2 ; case 5 + .short _021D97B0 - _021D9644 - 2 ; case 6 + .short _021D97D8 - _021D9644 - 2 ; case 7 +_021D9654: + mov r1, #0 + mov r0, #3 + add r2, r1, #0 + str r0, [sp] + mov r0, #0x10 + sub r2, #0x10 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D97F0 +_021D966E: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021D96D2 + mov r1, #0 + ldr r0, _021D97F8 ; =0x04000050 + str r1, [sp] + mov r2, #0xc + mov r3, #0x10 + bl G2x_SetBlendAlpha_ + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D97F0 +_021D968E: + ldr r0, [r4, #0x64] + add r1, r0, #1 + ldr r0, _021D97FC ; =0x00000172 + str r1, [r4, #0x64] + cmp r1, r0 + blt _021D96D2 + mov r1, #0 + ldr r0, [r4] + add r2, r1, #0 + mov r3, #0x5a + bl MOD84_021D801C + str r0, [r4, #8] + ldr r0, [r4] + mov r1, #1 + mov r2, #0 + mov r3, #0x5a + bl MOD84_021D801C + str r0, [r4, #0xc] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D97F0 +_021D96BE: + ldr r0, [r4, #8] + bl MOD84_021D81C4 + cmp r0, #0 + beq _021D96D2 + ldr r0, [r4, #0xc] + bl MOD84_021D81C4 + cmp r0, #0 + bne _021D96D4 +_021D96D2: + b _021D97F0 +_021D96D4: + ldr r0, [r4, #8] + bl MOD84_021D81D4 + ldr r0, [r4, #0xc] + bl MOD84_021D81D4 + mov r0, #0 + str r0, [r4, #8] + str r0, [r4, #0xc] + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x10 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x12 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x11 + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x13 + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + str r0, [r4, #0x64] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D97F0 +_021D9750: + ldr r0, [r4, #0x64] + add r1, r0, #1 + ldr r0, _021D9800 ; =0x0000010E + str r1, [r4, #0x64] + cmp r1, r0 + blt _021D97F0 + ldr r0, [r4] + mov r1, #0 + mov r2, #1 + mov r3, #0x5a + bl MOD84_021D801C + str r0, [r4, #8] + mov r1, #1 + ldr r0, [r4] + add r2, r1, #0 + mov r3, #0x5a + bl MOD84_021D801C + str r0, [r4, #0xc] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D97F0 +_021D9780: + ldr r0, [r4, #8] + bl MOD84_021D81C4 + cmp r0, #0 + beq _021D97F0 + ldr r0, [r4, #0xc] + bl MOD84_021D81C4 + cmp r0, #0 + beq _021D97F0 + ldr r0, [r4, #8] + bl MOD84_021D81D4 + ldr r0, [r4, #0xc] + bl MOD84_021D81D4 + mov r0, #0 + str r0, [r4, #8] + str r0, [r4, #0xc] + str r0, [r4, #0x64] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D97F0 +_021D97B0: + ldr r0, [r4, #0x64] + add r1, r0, #1 + mov r0, #0x4b + lsl r0, r0, #2 + str r1, [r4, #0x64] + cmp r1, r0 + blt _021D97F0 + mov r0, #3 + str r0, [sp] + mov r0, #0x20 + add r1, r0, #0 + sub r1, #0x30 + mov r2, #0 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D97F0 +_021D97D8: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021D97F0 + ldr r0, [r4, #0x4c] + mov r1, #0 + bl FUN_020200A0 + add sp, #0x1c + mov r0, #1 + pop {r3, r4, r5, r6, pc} +_021D97F0: + mov r0, #0 + add sp, #0x1c + pop {r3, r4, r5, r6, pc} + nop +_021D97F8: .word 0x04000050 +_021D97FC: .word 0x00000172 +_021D9800: .word 0x0000010E + thumb_func_end MOD84_021D95CC + + thumb_func_start MOD84_021D9804 +MOD84_021D9804: ; 0x021D9804 + push {r3, r4, r5, lr} + sub sp, #0x38 + add r5, r1, #0 + add r4, r0, #0 + ldr r0, [r5] + cmp r0, #8 + bls _021D9814 + b _021D99F0 +_021D9814: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D9820: ; jump table + .short _021D9832 - _021D9820 - 2 ; case 0 + .short _021D986A - _021D9820 - 2 ; case 1 + .short _021D98A2 - _021D9820 - 2 ; case 2 + .short _021D98C2 - _021D9820 - 2 ; case 3 + .short _021D98E2 - _021D9820 - 2 ; case 4 + .short _021D991A - _021D9820 - 2 ; case 5 + .short _021D993A - _021D9820 - 2 ; case 6 + .short _021D995A - _021D9820 - 2 ; case 7 + .short _021D99E0 - _021D9820 - 2 ; case 8 +_021D9832: + ldr r0, [r4, #4] + ldr r2, _021D99FC ; =0x021DACF0 + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #4] + ldr r2, _021D9A00 ; =0x021DAD0C + mov r1, #3 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #4] + ldr r2, _021D99FC ; =0x021DACF0 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #4] + ldr r2, _021D9A00 ; =0x021DAD0C + mov r1, #7 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D99F6 +_021D986A: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #8 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0xa + mov r3, #6 + bl FUN_020068C8 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D99F6 +_021D98A2: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #9 + mov r3, #2 + bl FUN_0200687C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D99F6 +_021D98C2: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0xb + mov r3, #6 + bl FUN_0200687C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D99F6 +_021D98E2: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0xc + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0xe + mov r3, #7 + bl FUN_020068C8 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D99F6 +_021D991A: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0xd + mov r3, #3 + bl FUN_0200687C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D99F6 +_021D993A: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0xf + mov r3, #7 + bl FUN_0200687C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D99F6 +_021D995A: + mov r0, #0x7f + mov r1, #0x39 + mov r2, #0x3a + bl MOD84_021D81DC + str r0, [r4, #0x48] + add r0, r4, #0 + add r0, #0x10 + bl FUN_020B1A24 + mov r2, #0 + str r2, [sp] + mov r0, #1 + str r0, [sp, #4] + str r2, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0x10 + str r0, [sp, #0x10] + mov r0, #0x7f + mov r1, #0x3b + add r3, r2, #0 + bl FUN_02006AE4 + add r0, r4, #0 + add r0, #0x34 + bl FUN_020B19DC + mov r0, #0x4b + str r0, [sp] + add r0, r4, #0 + add r0, #0x34 + str r0, [sp, #4] + mov r0, #0x7f + mov r1, #0x3c + mov r2, #1 + mov r3, #0 + bl FUN_02006A8C + mov r0, #2 + str r0, [sp] + add r2, r4, #0 + add r3, r4, #0 + ldr r1, [r4, #0x48] + add r0, sp, #0x14 + add r2, #0x10 + add r3, #0x34 + bl MOD84_021D8240 + mov r0, #5 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + str r0, [sp, #8] + mov r3, #0x19 + ldr r0, [r4] + add r1, sp, #0x14 + mov r2, #0 + lsl r3, r3, #4 + bl MOD84_021D8260 + str r0, [r4, #0x50] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D99F6 +_021D99E0: + ldr r0, [r4] + mov r1, #0 + bl MOD84_021D7DF4 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021D99F6 +_021D99F0: + add sp, #0x38 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D99F6: + mov r0, #0 + add sp, #0x38 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D99FC: .word 0x021DACF0 +_021D9A00: .word 0x021DAD0C + thumb_func_end MOD84_021D9804 + + thumb_func_start MOD84_021D9A04 +MOD84_021D9A04: ; 0x021D9A04 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x50] + cmp r0, #0 + beq _021D9A12 + bl FUN_0201FFC8 +_021D9A12: + ldr r0, [r4, #8] + cmp r0, #0 + beq _021D9A1C + bl MOD84_021D81D4 +_021D9A1C: + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _021D9A26 + bl MOD84_021D81D4 +_021D9A26: + ldr r0, [r4, #0x48] + cmp r0, #0 + beq _021D9A30 + bl MOD84_021D821C +_021D9A30: + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #7 + bl FUN_020178A0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D9A04 + + thumb_func_start MOD84_021D9A54 +MOD84_021D9A54: ; 0x021D9A54 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r0, #0x4b + mov r1, #0x10 + bl FUN_02016998 + cmp r0, #0 + beq _021D9A70 + str r5, [r0] + str r4, [r0, #4] + mov r1, #0 + str r1, [r0, #8] + str r1, [r0, #0xc] +_021D9A70: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD84_021D9A54 + + thumb_func_start MOD84_021D9A74 +MOD84_021D9A74: ; 0x021D9A74 + push {r3, lr} + bl MOD84_021D9B38 + cmp r0, #0 + beq _021D9A82 + mov r0, #1 + pop {r3, pc} +_021D9A82: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD84_021D9A74 + + thumb_func_start MOD84_021D9A88 +MOD84_021D9A88: ; 0x021D9A88 + push {r4, lr} + add r4, r0, #0 + bl MOD84_021D9C04 + add r0, r4, #0 + bl FUN_02016A18 + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D9A88 + + thumb_func_start MOD84_021D9A9C +MOD84_021D9A9C: ; 0x021D9A9C + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + ldr r1, [r4] + cmp r1, #3 + bhi _021D9B2E + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D9AB4: ; jump table + .short _021D9ABC - _021D9AB4 - 2 ; case 0 + .short _021D9ADE - _021D9AB4 - 2 ; case 1 + .short _021D9AF0 - _021D9AB4 - 2 ; case 2 + .short _021D9B16 - _021D9AB4 - 2 ; case 3 +_021D9ABC: + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + mov r1, #0 + mov r0, #3 + add r2, r1, #0 + str r0, [sp] + mov r0, #0x20 + sub r2, #0x10 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D9B2E +_021D9ADE: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021D9B2E + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D9B2E +_021D9AF0: + ldr r1, [r0, #8] + add r1, r1, #1 + str r1, [r0, #8] + ldr r0, _021D9B34 ; =0x00000352 + cmp r1, r0 + blt _021D9B2E + mov r0, #3 + str r0, [sp] + mov r0, #0x20 + add r1, r0, #0 + sub r1, #0x30 + mov r2, #0 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D9B2E +_021D9B16: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021D9B2E + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + add sp, #4 + mov r0, #1 + pop {r3, r4, pc} +_021D9B2E: + mov r0, #0 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 +_021D9B34: .word 0x00000352 + thumb_func_end MOD84_021D9A9C + + thumb_func_start MOD84_021D9B38 +MOD84_021D9B38: ; 0x021D9B38 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4] + cmp r0, #3 + bhi _021D9BF2 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D9B52: ; jump table + .short _021D9B5A - _021D9B52 - 2 ; case 0 + .short _021D9B7A - _021D9B52 - 2 ; case 1 + .short _021D9BB2 - _021D9B52 - 2 ; case 2 + .short _021D9BD2 - _021D9B52 - 2 ; case 3 +_021D9B5A: + ldr r0, [r5, #4] + ldr r2, _021D9C00 ; =0x021DAD28 + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r5, #4] + ldr r2, _021D9C00 ; =0x021DAD28 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D9BF8 +_021D9B7A: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #0x28 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #0x22 + mov r3, #6 + bl FUN_020068C8 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D9BF8 +_021D9BB2: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #0x29 + mov r3, #2 + bl FUN_0200687C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D9BF8 +_021D9BD2: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0x7f + mov r1, #0x23 + mov r3, #6 + bl FUN_0200687C + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D9BF8 +_021D9BF2: + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D9BF8: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021D9C00: .word 0x021DAD28 + thumb_func_end MOD84_021D9B38 + + thumb_func_start MOD84_021D9C04 +MOD84_021D9C04: ; 0x021D9C04 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021D9C04 + + thumb_func_start MOD84_021D9C1C +MOD84_021D9C1C: ; 0x021D9C1C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x4b + mov r1, #0xf4 + bl FUN_02016998 + add r4, r0, #0 + beq _021D9C7C + str r5, [r4] + str r6, [r4, #4] + mov r1, #0 + add r0, #0xec + str r1, [r0] + add r0, r4, #0 + add r0, #0xf0 + str r1, [r0] + add r0, r5, #0 + bl MOD84_021D82AC + str r0, [r4, #0x10] + mov r0, #0 + str r0, [r4, #0x14] + str r0, [r4, #0x18] + str r0, [r4, #0x54] + str r0, [r4, #8] + str r0, [r4, #0xc] + str r0, [r4, #0x60] + add r2, r4, #0 + str r0, [r4, #0x64] + mov r0, #0x7f + mov r1, #0x41 + add r2, #0x5c + mov r3, #0x4b + bl FUN_02006C08 + str r0, [r4, #0x58] + cmp r0, #0 + beq _021D9C76 + ldr r0, [r4, #0x5c] + mov r1, #6 + ldr r0, [r0, #0xc] + lsl r1, r1, #6 + bl DC_FlushRange +_021D9C76: + add r0, r4, #0 + bl MOD84_021DA388 +_021D9C7C: + add r0, r4, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD84_021D9C1C + + thumb_func_start MOD84_021D9C80 +MOD84_021D9C80: ; 0x021D9C80 + push {r4, lr} + add r4, r0, #0 + bl MOD84_021DA078 + cmp r0, #0 + beq _021D9CA0 + ldr r0, [r4, #0x10] + mov r1, #2 + bl FUN_02020130 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_020200A0 + mov r0, #1 + pop {r4, pc} +_021D9CA0: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD84_021D9C80 + + thumb_func_start MOD84_021D9CA4 +MOD84_021D9CA4: ; 0x021D9CA4 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl OS_DisableInterrupts + add r4, r0, #0 + add r0, r5, #0 + bl MOD84_021DA390 + add r0, r5, #0 + bl MOD84_021DA31C + ldr r0, [r5, #0x58] + cmp r0, #0 + beq _021D9CC4 + bl FUN_02016A18 +_021D9CC4: + add r0, r5, #0 + bl FUN_02016A18 + add r0, r4, #0 + bl OS_RestoreInterrupts + mov r0, #1 + pop {r3, r4, r5, pc} + thumb_func_end MOD84_021D9CA4 + + thumb_func_start MOD84_021D9CD4 +MOD84_021D9CD4: ; 0x021D9CD4 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r1, #0 + ldr r1, [r5] + add r4, r0, #0 + cmp r1, #0xe + bls _021D9CE4 + b _021DA068 +_021D9CE4: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D9CF0: ; jump table + .short _021D9D0E - _021D9CF0 - 2 ; case 0 + .short _021D9D28 - _021D9CF0 - 2 ; case 1 + .short _021D9D48 - _021D9CF0 - 2 ; case 2 + .short _021D9D6A - _021D9CF0 - 2 ; case 3 + .short _021D9E00 - _021D9CF0 - 2 ; case 4 + .short _021D9E3C - _021D9CF0 - 2 ; case 5 + .short _021D9ECE - _021D9CF0 - 2 ; case 6 + .short _021D9F08 - _021D9CF0 - 2 ; case 7 + .short _021D9F3A - _021D9CF0 - 2 ; case 8 + .short _021D9F54 - _021D9CF0 - 2 ; case 9 + .short _021D9F78 - _021D9CF0 - 2 ; case 10 + .short _021D9F90 - _021D9CF0 - 2 ; case 11 + .short _021D9FBE - _021D9CF0 - 2 ; case 12 + .short _021DA02A - _021D9CF0 - 2 ; case 13 + .short _021DA058 - _021D9CF0 - 2 ; case 14 +_021D9D0E: + mov r1, #0 + mov r0, #3 + add r2, r1, #0 + str r0, [sp] + mov r0, #0x20 + sub r2, #0x10 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021D9D28: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021D9E16 + mov r1, #0 + ldr r0, _021DA070 ; =0x04000050 + str r1, [sp] + mov r2, #0xc + mov r3, #0xa + bl G2x_SetBlendAlpha_ + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021D9D48: + add r1, r4, #0 + add r1, #0xec + ldr r1, [r1] + add r2, r1, #1 + add r1, r4, #0 + add r1, #0xec + add r4, #0xec + str r2, [r1] + ldr r1, [r4] + cmp r1, #0xf0 + blt _021D9E16 + bl MOD84_021DA3A0 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021D9D6A: + bl MOD84_021DA3C8 + cmp r0, #0 + beq _021D9E16 + mov r0, #0x10 + str r0, [sp] + ldr r0, _021DA070 ; =0x04000050 + mov r1, #4 + mov r2, #8 + mov r3, #0 + bl G2x_SetBlendAlpha_ + mov r0, #0x10 + str r0, [sp] + ldr r0, _021DA074 ; =0x04001050 + mov r1, #4 + mov r2, #8 + mov r3, #0 + bl G2x_SetBlendAlpha_ + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x1c + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x18 + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x1d + mov r3, #2 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x19 + mov r3, #6 + bl FUN_0200687C + mov r0, #0 + add r4, #0xec + str r0, [r4] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021D9E00: + add r0, #0xec + ldr r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0xec + str r1, [r0] + add r0, r4, #0 + add r0, #0xec + ldr r0, [r0] + cmp r0, #0x96 + bgt _021D9E18 +_021D9E16: + b _021DA068 +_021D9E18: + ldr r0, [r4] + mov r1, #0 + mov r2, #1 + mov r3, #0x5a + bl MOD84_021D801C + str r0, [r4, #8] + mov r1, #1 + ldr r0, [r4] + add r2, r1, #0 + mov r3, #0x5a + bl MOD84_021D801C + str r0, [r4, #0xc] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021D9E3C: + ldr r0, [r4, #8] + bl MOD84_021D81C4 + cmp r0, #0 + beq _021D9F44 + ldr r0, [r4, #0xc] + bl MOD84_021D81C4 + cmp r0, #0 + beq _021D9F44 + ldr r0, [r4, #8] + bl MOD84_021D81D4 + ldr r0, [r4, #0xc] + bl MOD84_021D81D4 + mov r0, #0 + str r0, [r4, #8] + str r0, [r4, #0xc] + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x20 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x1e + mov r3, #7 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x21 + mov r3, #3 + bl FUN_0200687C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x1f + mov r3, #7 + bl FUN_0200687C + mov r0, #0 + add r4, #0xec + str r0, [r4] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021D9ECE: + add r0, #0xec + ldr r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0xec + str r1, [r0] + add r0, r4, #0 + add r0, #0xec + ldr r0, [r0] + cmp r0, #0xc8 + blt _021D9F44 + mov r1, #0 + ldr r0, [r4] + add r2, r1, #0 + mov r3, #0x5a + bl MOD84_021D801C + str r0, [r4, #8] + ldr r0, [r4] + mov r1, #1 + mov r2, #0 + mov r3, #0x5a + bl MOD84_021D801C + str r0, [r4, #0xc] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021D9F08: + ldr r0, [r4, #8] + bl MOD84_021D81C4 + cmp r0, #0 + beq _021D9F44 + ldr r0, [r4, #0xc] + bl MOD84_021D81C4 + cmp r0, #0 + beq _021D9F44 + ldr r0, [r4, #8] + bl MOD84_021D81D4 + ldr r0, [r4, #0xc] + bl MOD84_021D81D4 + mov r0, #0 + str r0, [r4, #8] + str r0, [r4, #0xc] + add r4, #0xec + str r0, [r4] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021D9F3A: + ldr r0, [r4] + bl MOD84_021D82B4 + cmp r0, #0 + bne _021D9F46 +_021D9F44: + b _021DA068 +_021D9F46: + mov r0, #0 + add r4, #0xec + str r0, [r4] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021D9F54: + add r0, #0xec + ldr r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0xec + str r1, [r0] + add r0, r4, #0 + add r0, #0xec + ldr r0, [r0] + cmp r0, #0x5a + blt _021DA068 + ldr r0, [r4] + bl MOD84_021D8458 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021D9F78: + ldr r0, [r4] + bl MOD84_021D846C + cmp r0, #0 + beq _021DA068 + mov r0, #0 + add r4, #0xec + str r0, [r4] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021D9F90: + add r0, #0xec + ldr r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0xec + add r4, #0xec + str r1, [r0] + ldr r0, [r4] + cmp r0, #0x96 + blt _021DA068 + mov r0, #3 + str r0, [sp] + mov r0, #0x20 + add r1, r0, #0 + sub r1, #0x30 + mov r2, #0 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021D9FBE: + mov r0, #3 + bl FUN_0200A344 + cmp r0, #0 + beq _021DA068 + mov r0, #1 + mov r1, #0 + bl FUN_0201E6E4 + ldr r0, [r4, #0x10] + mov r1, #0 + bl FUN_020200A0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x2a + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x2b + mov r3, #3 + bl FUN_0200687C + mov r0, #0x20 + str r0, [sp] + mov r0, #0x4b + mov r2, #0 + str r0, [sp, #4] + mov r0, #0x7f + mov r1, #0x2c + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0 + add r4, #0xec + str r0, [r4] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021DA02A: + add r0, #0xec + ldr r0, [r0] + add r1, r0, #1 + add r0, r4, #0 + add r0, #0xec + add r4, #0xec + str r1, [r0] + ldr r0, [r4] + cmp r0, #0x2d + blt _021DA068 + mov r1, #0 + mov r0, #1 + add r2, r1, #0 + str r0, [sp] + mov r0, #0x10 + sub r2, #0x10 + mov r3, #0x1d + bl FUN_0200A208 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA068 +_021DA058: + mov r0, #1 + bl FUN_0200A344 + cmp r0, #0 + beq _021DA068 + add sp, #0x10 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA068: + mov r0, #0 + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_021DA070: .word 0x04000050 +_021DA074: .word 0x04001050 + thumb_func_end MOD84_021D9CD4 + + thumb_func_start MOD84_021DA078 +MOD84_021DA078: ; 0x021DA078 + push {r3, r4, r5, lr} + sub sp, #0x38 + add r5, r1, #0 + add r4, r0, #0 + ldr r0, [r5] + cmp r0, #0xa + bls _021DA088 + b _021DA2FE +_021DA088: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021DA094: ; jump table + .short _021DA0AA - _021DA094 - 2 ; case 0 + .short _021DA0E2 - _021DA094 - 2 ; case 1 + .short _021DA11A - _021DA094 - 2 ; case 2 + .short _021DA13A - _021DA094 - 2 ; case 3 + .short _021DA15A - _021DA094 - 2 ; case 4 + .short _021DA192 - _021DA094 - 2 ; case 5 + .short _021DA1B2 - _021DA094 - 2 ; case 6 + .short _021DA1D2 - _021DA094 - 2 ; case 7 + .short _021DA1E2 - _021DA094 - 2 ; case 8 + .short _021DA238 - _021DA094 - 2 ; case 9 + .short _021DA2CE - _021DA094 - 2 ; case 10 +_021DA0AA: + ldr r0, [r4, #4] + ldr r2, _021DA30C ; =0x021DAD68 + mov r1, #2 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #4] + ldr r2, _021DA310 ; =0x021DAD4C + mov r1, #3 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #4] + ldr r2, _021DA30C ; =0x021DAD68 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #4] + ldr r2, _021DA310 ; =0x021DAD4C + mov r1, #7 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA304 +_021DA0E2: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x16 + mov r3, #2 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x1a + mov r3, #6 + bl FUN_020068C8 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA304 +_021DA11A: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x17 + mov r3, #2 + bl FUN_0200687C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA304 +_021DA13A: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x1b + mov r3, #6 + bl FUN_0200687C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA304 +_021DA15A: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x14 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x18 + mov r3, #7 + bl FUN_020068C8 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA304 +_021DA192: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x15 + mov r3, #3 + bl FUN_0200687C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA304 +_021DA1B2: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + ldr r2, [r4, #4] + mov r0, #0x7f + mov r1, #0x19 + mov r3, #7 + bl FUN_0200687C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA304 +_021DA1D2: + ldr r0, [r4] + mov r1, #2 + bl MOD84_021D7DF4 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA304 +_021DA1E2: + mov r0, #0x7f + mov r1, #0x3d + mov r2, #0x3e + bl MOD84_021D81DC + str r0, [r4, #0x54] + add r0, r4, #0 + add r0, #0x1c + bl FUN_020B1A24 + add r0, r4, #0 + add r0, #0x40 + bl FUN_020B19DC + mov r2, #0 + str r2, [sp] + mov r0, #1 + str r0, [sp, #4] + str r2, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0x1c + str r0, [sp, #0x10] + mov r0, #0x7f + mov r1, #0x3f + add r3, r2, #0 + bl FUN_02006AE4 + mov r0, #0x4b + str r0, [sp] + add r4, #0x40 + str r4, [sp, #4] + mov r0, #0x7f + mov r1, #0x40 + mov r2, #1 + mov r3, #0 + bl FUN_02006A8C + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA304 +_021DA238: + mov r2, #0 + str r2, [sp] + mov r0, #2 + str r0, [sp, #4] + str r2, [sp, #8] + mov r0, #0x4b + str r0, [sp, #0xc] + add r0, r4, #0 + add r0, #0x1c + str r0, [sp, #0x10] + mov r0, #0x7f + mov r1, #0x3f + add r3, r2, #0 + bl FUN_02006AE4 + mov r0, #0x4b + str r0, [sp] + add r0, r4, #0 + add r0, #0x40 + str r0, [sp, #4] + mov r0, #0x7f + mov r1, #0x40 + mov r2, #2 + mov r3, #0 + bl FUN_02006A8C + mov r0, #2 + str r0, [sp] + add r2, r4, #0 + add r3, r4, #0 + ldr r1, [r4, #0x54] + add r0, sp, #0x14 + add r2, #0x1c + add r3, #0x40 + bl MOD84_021D8240 + mov r0, #3 + str r0, [sp] + mov r0, #1 + mov r2, #0 + str r0, [sp, #4] + str r2, [sp, #8] + ldr r0, [r4] + add r1, sp, #0x14 + add r3, r2, #0 + bl MOD84_021D8260 + str r0, [r4, #0x14] + mov r0, #4 + str r0, [sp] + mov r0, #1 + mov r2, #0 + str r0, [sp, #4] + str r2, [sp, #8] + ldr r0, [r4] + add r1, sp, #0x14 + add r3, r2, #0 + bl MOD84_021D8260 + str r0, [r4, #0x18] + mov r1, #3 + bl FUN_02020238 + ldr r0, [r4, #0x18] + mov r1, #1 + bl FUN_02020398 + ldr r0, [r4, #0x18] + mov r1, #0 + bl FUN_02020130 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA304 +_021DA2CE: + ldr r0, [r4, #0x5c] + mov r1, #4 + ldr r0, [r0, #0xc] + mov r2, #3 + str r0, [sp] + ldr r0, _021DA314 ; =0x021DAD48 + mov r3, #0 + bl MOD84_021DA58C + str r0, [r4, #0x60] + ldr r0, [r4, #0x5c] + mov r1, #4 + ldr r0, [r0, #0xc] + mov r2, #5 + str r0, [sp] + ldr r0, _021DA318 ; =0x021DAD44 + mov r3, #1 + bl MOD84_021DA58C + str r0, [r4, #0x64] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + b _021DA304 +_021DA2FE: + add sp, #0x38 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA304: + mov r0, #0 + add sp, #0x38 + pop {r3, r4, r5, pc} + nop +_021DA30C: .word 0x021DAD68 +_021DA310: .word 0x021DAD4C +_021DA314: .word 0x021DAD48 +_021DA318: .word 0x021DAD44 + thumb_func_end MOD84_021DA078 + + thumb_func_start MOD84_021DA31C +MOD84_021DA31C: ; 0x021DA31C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x60] + cmp r0, #0 + beq _021DA32A + bl MOD84_021DA5D8 +_021DA32A: + ldr r0, [r4, #0x64] + cmp r0, #0 + beq _021DA334 + bl MOD84_021DA5D8 +_021DA334: + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _021DA33E + bl FUN_0201FFC8 +_021DA33E: + ldr r0, [r4, #0x18] + cmp r0, #0 + beq _021DA348 + bl FUN_0201FFC8 +_021DA348: + ldr r0, [r4, #0x54] + cmp r0, #0 + beq _021DA352 + bl MOD84_021D821C +_021DA352: + ldr r0, [r4, #8] + cmp r0, #0 + beq _021DA35C + bl MOD84_021D81D4 +_021DA35C: + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _021DA366 + bl MOD84_021D81D4 +_021DA366: + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_020178A0 + ldr r0, [r4, #4] + mov r1, #7 + bl FUN_020178A0 + pop {r4, pc} + thumb_func_end MOD84_021DA31C + + thumb_func_start MOD84_021DA388 +MOD84_021DA388: ; 0x021DA388 + mov r1, #0 + add r0, #0xe4 + str r1, [r0] + bx lr + thumb_func_end MOD84_021DA388 + + thumb_func_start MOD84_021DA390 +MOD84_021DA390: ; 0x021DA390 + push {r3, lr} + add r0, #0xe4 + ldr r0, [r0] + cmp r0, #0 + beq _021DA39E + bl FUN_0200CAB4 +_021DA39E: + pop {r3, pc} + thumb_func_end MOD84_021DA390 + + thumb_func_start MOD84_021DA3A0 +MOD84_021DA3A0: ; 0x021DA3A0 + push {r4, lr} + add r4, r0, #0 + mov r2, #0 + add r4, #0x68 + str r2, [r0, #0x68] + str r2, [r4, #4] + str r2, [r4, #8] + add r1, r4, #0 + str r2, [r4, #0x74] + add r1, #0x80 + str r0, [r1] + ldr r0, _021DA3C4 ; =MOD84_021DA3D8 + add r1, r4, #0 + bl FUN_0200CA60 + str r0, [r4, #0x7c] + pop {r4, pc} + nop +_021DA3C4: .word MOD84_021DA3D8 + thumb_func_end MOD84_021DA3A0 + + thumb_func_start MOD84_021DA3C8 +MOD84_021DA3C8: ; 0x021DA3C8 + add r0, #0xe4 + ldr r0, [r0] + cmp r0, #0 + bne _021DA3D4 + mov r0, #1 + bx lr +_021DA3D4: + mov r0, #0 + bx lr + thumb_func_end MOD84_021DA3C8 + + thumb_func_start MOD84_021DA3D8 +MOD84_021DA3D8: ; 0x021DA3D8 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r4, r1, #0 + add r1, #0x80 + ldr r5, [r1] + ldr r1, [r4] + cmp r1, #3 + bls _021DA3EA + b _021DA56C +_021DA3EA: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021DA3F6: ; jump table + .short _021DA3FE - _021DA3F6 - 2 ; case 0 + .short _021DA4B8 - _021DA3F6 - 2 ; case 1 + .short _021DA50A - _021DA3F6 - 2 ; case 2 + .short _021DA544 - _021DA3F6 - 2 ; case 3 +_021DA3FE: + ldr r2, [r4, #4] + mov r0, #0x18 + add r1, r2, #0 + ldr r2, _021DA570 ; =0x021DAD84 + mul r1, r0 + ldr r2, [r2, r1] + ldr r3, _021DA574 ; =0x021DAD88 + lsl r2, r2, #0xc + ldr r1, [r3, r1] + str r2, [r4, #0x14] + lsl r6, r1, #0xc + str r6, [r4, #0x18] + mov r1, #0 + str r1, [r4, #0x1c] + ldr r3, [r4, #4] + add r1, r3, #0 + ldr r3, _021DA578 ; =0x021DAD94 + mul r1, r0 + ldr r1, [r3, r1] + str r1, [r4, #0xc] + ldr r3, [r4, #4] + add r1, r3, #0 + ldr r3, _021DA57C ; =0x021DAD98 + mul r1, r0 + ldr r1, [r3, r1] + str r1, [r4, #0x10] + ldr r1, [r4, #4] + add r3, r1, #0 + mul r3, r0 + ldr r0, _021DA580 ; =0x021DAD8C + ldr r1, [r4, #0xc] + ldr r0, [r0, r3] + lsl r0, r0, #0xc + sub r0, r0, r2 + bl _s32_div_f + str r0, [r4, #0x20] + ldr r1, [r4, #4] + mov r0, #0x18 + add r2, r1, #0 + mul r2, r0 + ldr r0, _021DA584 ; =0x021DAD90 + ldr r1, [r4, #0xc] + ldr r0, [r0, r2] + lsl r0, r0, #0xc + sub r0, r0, r6 + bl _s32_div_f + str r0, [r4, #0x24] + mov r0, #0 + str r0, [r4, #0x28] + add r1, r4, #0 + ldr r0, [r5, #0x14] + add r1, #0x14 + bl FUN_02020044 + ldr r0, [r5, #0x14] + mov r1, #1 + bl FUN_020200A0 + ldr r0, [r5, #0x14] + mov r1, #1 + bl FUN_02020130 + add r0, r4, #0 + add r0, #0x20 + add r1, sp, #0 + bl VEC_Normalize + add r2, r4, #0 + add r3, r4, #0 + ldr r0, _021DA588 ; =0xFFFD8000 + add r1, sp, #0 + add r2, #0x14 + add r3, #0x2c + bl VEC_MultAdd + add r1, r4, #0 + ldr r0, [r5, #0x18] + add r1, #0x2c + bl FUN_02020044 + ldr r0, [r5, #0x18] + mov r1, #1 + bl FUN_020200A0 + mov r0, #0 + str r0, [r4, #0x74] + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021DA4B8: + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _021DA4F8 + add r0, r4, #0 + add r0, #0x14 + add r1, r4, #0 + add r1, #0x20 + add r2, r0, #0 + bl VEC_Add + add r0, r4, #0 + add r0, #0x2c + add r1, r4, #0 + add r1, #0x20 + add r2, r0, #0 + bl VEC_Add + add r1, r4, #0 + ldr r0, [r5, #0x14] + add r1, #0x14 + bl FUN_02020044 + add r1, r4, #0 + ldr r0, [r5, #0x18] + add r1, #0x2c + bl FUN_02020044 + ldr r0, [r4, #0xc] + add sp, #0xc + sub r0, r0, #1 + str r0, [r4, #0xc] + pop {r3, r4, r5, r6, pc} +_021DA4F8: + mov r0, #0x14 + str r0, [r4, #0xc] + ldr r0, [r5, #0x14] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] +_021DA50A: + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _021DA532 + add r0, r4, #0 + add r0, #0x2c + add r1, r4, #0 + add r1, #0x20 + add r2, r0, #0 + bl VEC_Add + add r1, r4, #0 + ldr r0, [r5, #0x18] + add r1, #0x2c + bl FUN_02020044 + ldr r0, [r4, #0xc] + add sp, #0xc + sub r0, r0, #1 + str r0, [r4, #0xc] + pop {r3, r4, r5, r6, pc} +_021DA532: + ldr r0, [r5, #0x18] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4] + add sp, #0xc + add r0, r0, #1 + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021DA544: + ldr r1, [r4, #0x10] + cmp r1, #0 + beq _021DA552 + sub r0, r1, #1 + add sp, #0xc + str r0, [r4, #0x10] + pop {r3, r4, r5, r6, pc} +_021DA552: + ldr r1, [r4, #4] + add r1, r1, #1 + str r1, [r4, #4] + cmp r1, #4 + bhs _021DA564 + mov r0, #0 + add sp, #0xc + str r0, [r4] + pop {r3, r4, r5, r6, pc} +_021DA564: + bl FUN_0200CAB4 + mov r0, #0 + str r0, [r4, #0x7c] +_021DA56C: + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021DA570: .word 0x021DAD84 +_021DA574: .word 0x021DAD88 +_021DA578: .word 0x021DAD94 +_021DA57C: .word 0x021DAD98 +_021DA580: .word 0x021DAD8C +_021DA584: .word 0x021DAD90 +_021DA588: .word 0xFFFD8000 + thumb_func_end MOD84_021DA3D8 + + thumb_func_start MOD84_021DA58C +MOD84_021DA58C: ; 0x021DA58C + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #0x4b + mov r1, #0x1c + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _021DA5CE + mov r0, #0 + str r0, [r4] + str r0, [r4, #8] + ldr r0, [sp, #0x18] + add r1, r4, #0 + str r0, [r4, #0x18] + str r5, [r4, #0x14] + str r6, [r4, #0xc] + ldr r0, [sp] + str r7, [r4, #4] + str r0, [r4, #0x10] + ldr r0, _021DA5D4 ; =MOD84_021DA5F0 + mov r2, #2 + bl FUN_0200CA98 + add r5, r0, #0 + bne _021DA5CA + add r0, r4, #0 + bl FUN_02016A18 +_021DA5CA: + add r0, r5, #0 + pop {r3, r4, r5, r6, r7, pc} +_021DA5CE: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_021DA5D4: .word MOD84_021DA5F0 + thumb_func_end MOD84_021DA58C + + thumb_func_start MOD84_021DA5D8 +MOD84_021DA5D8: ; 0x021DA5D8 + push {r4, lr} + add r4, r0, #0 + beq _021DA5EC + bl FUN_0201B6C8 + bl FUN_02016A18 + add r0, r4, #0 + bl FUN_0200CAB4 +_021DA5EC: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021DA5D8 + + thumb_func_start MOD84_021DA5F0 +MOD84_021DA5F0: ; 0x021DA5F0 + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4] + add r1, r0, #1 + str r1, [r4] + ldr r0, [r4, #4] + cmp r1, r0 + ble _021DA644 + ldr r1, [r4, #0x14] + ldr r0, [r4, #8] + ldrb r0, [r1, r0] + ldr r1, [r4, #0x18] + sub r0, r0, #4 + lsl r2, r0, #4 + ldr r0, [r4, #0x10] + cmp r0, #0 + bne _021DA622 + lsl r0, r2, #1 + add r0, r1, r0 + mov r1, #5 + lsl r1, r1, #6 + mov r2, #0x20 + bl GX_LoadBGPltt + b _021DA630 +_021DA622: + lsl r0, r2, #1 + add r0, r1, r0 + mov r1, #6 + lsl r1, r1, #6 + mov r2, #0x20 + bl GXS_LoadBGPltt +_021DA630: + ldr r0, [r4, #8] + add r1, r0, #1 + str r1, [r4, #8] + ldr r0, [r4, #0xc] + cmp r1, r0 + blt _021DA640 + mov r0, #0 + str r0, [r4, #8] +_021DA640: + mov r0, #0 + str r0, [r4] +_021DA644: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD84_021DA5F0 + + .section .rodata + ; 0x021DA648 + .incbin "baserom.nds", 0x302B68, 0x79C diff --git a/arm9/modules/85/asm/module_85.s b/arm9/modules/85/asm/module_85.s new file mode 100644 index 00000000..f158e85d --- /dev/null +++ b/arm9/modules/85/asm/module_85.s @@ -0,0 +1,16171 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD85_021D74E0 +MOD85_021D74E0: ; 0x021D74E0 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + bl FUN_02015F1C + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #2 + mov r0, #3 + mov r1, #0x4f + lsl r2, r2, #0x12 + bl FUN_0201681C + add r0, r5, #0 + mov r1, #8 + mov r2, #0x4f + bl FUN_02006268 + add r4, r0, #0 + mov r0, #0 + strb r0, [r4] + strb r0, [r4, #1] + strb r0, [r4, #2] + strb r0, [r4, #3] + strb r0, [r4, #4] + strb r0, [r4, #5] + strb r0, [r4, #6] + strb r0, [r4, #7] + add r0, r5, #0 + bl FUN_0200628C + str r0, [r4] + bl MOD85_021D76CC + add r5, r0, #0 + str r5, [r4, #4] + bl MOD85_021D811C + add r0, r5, #0 + bl MOD85_021D7FCC + add r0, r5, #0 + bl MOD85_021D76FC + add r0, r5, #0 + bl MOD85_021D797C + add r0, r5, #0 + bl MOD85_021D7B28 + bl MOD85_021D7C6C + add r0, r5, #0 + bl MOD85_021D7CB0 + add r0, r5, #0 + bl MOD85_021D8188 + add r0, r5, #0 + bl MOD85_021DC108 + add r0, r5, #0 + bl MOD85_021DC24C + add r0, r5, #0 + bl MOD85_021DC384 + mov r1, #0 + mov r0, #0x42 + add r2, r1, #0 + bl FUN_0200433C + add r0, r5, #0 + bl MOD85_021D8020 + mov r0, #8 + str r0, [sp] + mov r1, #1 + str r1, [sp, #4] + mov r0, #0x4f + str r0, [sp, #8] + mov r0, #0 + add r2, r1, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #1 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021D74E0 + + thumb_func_start MOD85_021D75A0 +MOD85_021D75A0: ; 0x021D75A0 + push {r4, r5, lr} + sub sp, #0xc + add r4, r1, #0 + bl FUN_02006278 + ldr r5, [r0, #4] + ldr r0, [r4] + cmp r0, #3 + bhi _021D7626 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021D75BE: ; jump table + .short _021D75C6 - _021D75BE - 2 ; case 0 + .short _021D75D6 - _021D75BE - 2 ; case 1 + .short _021D7608 - _021D75BE - 2 ; case 2 + .short _021D7616 - _021D75BE - 2 ; case 3 +_021D75C6: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7626 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + b _021D7626 +_021D75D6: + add r0, r5, #0 + bl MOD85_021D820C + cmp r0, #1 + bne _021D7626 + ldr r0, [r4] + mov r1, #0 + add r0, r0, #1 + str r0, [r4] + mov r0, #8 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + mov r0, #0x4f + str r0, [sp, #8] + mov r0, #2 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_0200E1D0 + add r0, r5, #0 + mov r1, #0 + bl MOD85_021D7FF4 + b _021D7626 +_021D7608: + bl FUN_0200E308 + cmp r0, #0 + beq _021D7626 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] +_021D7616: + add r0, r5, #0 + bl MOD85_021D8014 + cmp r0, #0 + bne _021D7626 + add sp, #0xc + mov r0, #1 + pop {r4, r5, pc} +_021D7626: + ldr r0, _021D7640 ; =0x0000044C + ldr r0, [r5, r0] + bl FUN_02064584 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl MOD85_021DE830 + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + nop +_021D7640: .word 0x0000044C + thumb_func_end MOD85_021D75A0 + + thumb_func_start MOD85_021D7644 +MOD85_021D7644: ; 0x021D7644 + push {r4, r5, r6, lr} + add r5, r0, #0 + bl FUN_02006278 + add r6, r0, #0 + mov r0, #0 + ldr r4, [r6, #4] + add r1, r0, #0 + bl FUN_02015F10 + add r0, r6, #0 + add r1, r4, #0 + bl MOD85_021D769C + add r0, r4, #0 + bl MOD85_021D7FE4 + add r0, r4, #0 + bl MOD85_021D77DC + add r0, r4, #0 + bl MOD85_021D7BB8 + add r0, r4, #0 + bl MOD85_021D81AC + add r0, r4, #0 + bl MOD85_021D8044 + add r0, r4, #0 + bl MOD85_021D8134 + add r0, r4, #0 + bl MOD85_021D76F4 + add r0, r5, #0 + bl FUN_0200627C + mov r0, #0x4f + bl FUN_020168D0 + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD85_021D7644 + + thumb_func_start MOD85_021D769C +MOD85_021D769C: ; 0x021D769C + push {r3, lr} + add r2, r1, #0 + ldr r3, [r2, #0x60] + ldr r1, _021D76C8 ; =0x0000C350 + cmp r3, r1 + bls _021D76AA + add r3, r1, #0 +_021D76AA: + ldr r1, [r0] + ldr r1, [r1] + str r3, [r1] + ldr r3, [r2, #0x20] + ldr r1, [r0] + str r3, [r1, #0xc] + ldr r0, [r0] + ldr r0, [r0, #8] + cmp r0, #0 + beq _021D76C6 + ldr r2, [r2, #0xc] + mov r1, #0xe + bl FUN_0202A11C +_021D76C6: + pop {r3, pc} + .align 2, 0 +_021D76C8: .word 0x0000C350 + thumb_func_end MOD85_021D769C + + thumb_func_start MOD85_021D76CC +MOD85_021D76CC: ; 0x021D76CC + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D76EC ; =0x000004C8 + bl MOD85_021D80F8 + ldr r1, [r4] + ldr r1, [r1] + str r1, [r0, #0x60] + add r1, r0, #0 + ldr r2, [r4, #4] + add r1, #0x88 + str r2, [r1] + ldr r2, [r4, #0x10] + ldr r1, _021D76F0 ; =0x000004C4 + str r2, [r0, r1] + pop {r4, pc} + .align 2, 0 +_021D76EC: .word 0x000004C8 +_021D76F0: .word 0x000004C4 + thumb_func_end MOD85_021D76CC + + thumb_func_start MOD85_021D76F4 +MOD85_021D76F4: ; 0x021D76F4 + ldr r3, _021D76F8 ; =FUN_02016A18 + bx r3 + .align 2, 0 +_021D76F8: .word FUN_02016A18 + thumb_func_end MOD85_021D76F4 + + thumb_func_start MOD85_021D76FC +MOD85_021D76FC: ; 0x021D76FC + push {r3, r4, r5, r6, r7, lr} + add r4, r0, #0 + mov r0, #0x4f + bl FUN_02016B94 + ldr r1, _021D77CC ; =0x0000043C + str r0, [r4, r1] + bl MOD85_021D77F8 + ldr r0, _021D77CC ; =0x0000043C + ldr r0, [r4, r0] + bl MOD85_021D7818 + bl MOD85_021D7930 + mov r0, #1 + add r1, r0, #0 + bl FUN_0201E6E4 + mov r0, #2 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #4 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #8 + mov r1, #0 + bl FUN_0201E6E4 + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E6E4 + mov r0, #1 + mov r1, #0 + bl FUN_0201E74C + mov r0, #2 + mov r1, #0 + bl FUN_0201E74C + mov r0, #4 + mov r1, #0 + bl FUN_0201E74C + mov r0, #8 + mov r1, #1 + bl FUN_0201E74C + mov r0, #0x10 + mov r1, #1 + bl FUN_0201E74C + ldr r0, _021D77D0 ; =0x04000008 + mov r2, #3 + ldrh r1, [r0] + mov r3, #1 + mov r7, #2 + bic r1, r2 + strh r1, [r0] + ldrh r1, [r0, #2] + ldr r6, _021D77D4 ; =0x04001008 + bic r1, r2 + orr r1, r3 + strh r1, [r0, #2] + ldrh r1, [r0, #4] + bic r1, r2 + orr r1, r7 + strh r1, [r0, #4] + ldrh r5, [r0, #6] + mov r1, #3 + bic r5, r2 + orr r5, r1 + strh r5, [r0, #6] + ldrh r5, [r6] + bic r5, r2 + strh r5, [r6] + ldrh r5, [r6, #2] + bic r5, r2 + orr r3, r5 + strh r3, [r6, #2] + ldrh r3, [r6, #4] + add r0, #0x48 + bic r3, r2 + orr r3, r7 + strh r3, [r6, #4] + ldrh r3, [r6, #6] + bic r3, r2 + orr r1, r3 + strh r1, [r6, #6] + mov r1, #9 + str r1, [sp] + mov r1, #4 + mov r2, #0x10 + mov r3, #8 + bl G2x_SetBlendAlpha_ + ldr r0, _021D77D8 ; =MOD85_021D80DC + add r1, r4, #0 + bl FUN_02015F10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021D77CC: .word 0x0000043C +_021D77D0: .word 0x04000008 +_021D77D4: .word 0x04001008 +_021D77D8: .word MOD85_021D80DC + thumb_func_end MOD85_021D76FC + + thumb_func_start MOD85_021D77DC +MOD85_021D77DC: ; 0x021D77DC + push {r4, lr} + add r4, r0, #0 + ldr r0, _021D77F4 ; =0x0000043C + ldr r0, [r4, r0] + bl MOD85_021D7904 + add r0, r4, #0 + bl MOD85_021D7D04 + bl MOD85_021D7CA4 + pop {r4, pc} + .align 2, 0 +_021D77F4: .word 0x0000043C + thumb_func_end MOD85_021D77DC + + thumb_func_start MOD85_021D77F8 +MOD85_021D77F8: ; 0x021D77F8 + push {r4, lr} + sub sp, #0x28 + ldr r4, _021D7814 ; =0x021DED7C + add r3, sp, #0 + mov r2, #5 +_021D7802: + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D7802 + add r0, sp, #0 + bl FUN_0201E66C + add sp, #0x28 + pop {r4, pc} + .align 2, 0 +_021D7814: .word 0x021DED7C + thumb_func_end MOD85_021D77F8 + + thumb_func_start MOD85_021D7818 +MOD85_021D7818: ; 0x021D7818 + push {r3, r4, r5, lr} + sub sp, #0x80 + ldr r2, _021D78EC ; =0x04000304 + add r4, r0, #0 + ldrh r1, [r2] + lsr r0, r2, #0xb + ldr r5, _021D78F0 ; =0x021DECEC + orr r0, r1 + strh r0, [r2] + add r3, sp, #0x70 + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D78F4 ; =0x021DED28 + add r3, sp, #0x54 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, r4, #0 + add r3, r1, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #0 + bl FUN_02018744 + mov r0, #0 + mov r1, #0x20 + add r2, r0, #0 + mov r3, #0x4f + bl FUN_02017F18 + ldr r5, _021D78F8 ; =0x021DED44 + add r3, sp, #0x38 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #1 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #1 + bl FUN_02018744 + ldr r5, _021D78FC ; =0x021DED60 + add r3, sp, #0x1c + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #2 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #2 + bl FUN_02018744 + ldr r5, _021D7900 ; =0x021DED0C + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #7 + str r0, [r3] + add r0, r4, #0 + mov r3, #0 + bl FUN_02016C18 + add r0, r4, #0 + mov r1, #7 + bl FUN_02018744 + add sp, #0x80 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D78EC: .word 0x04000304 +_021D78F0: .word 0x021DECEC +_021D78F4: .word 0x021DED28 +_021D78F8: .word 0x021DED44 +_021D78FC: .word 0x021DED60 +_021D7900: .word 0x021DED0C + thumb_func_end MOD85_021D7818 + + thumb_func_start MOD85_021D7904 +MOD85_021D7904: ; 0x021D7904 + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #1 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #2 + bl FUN_020178A0 + add r0, r4, #0 + mov r1, #7 + bl FUN_020178A0 + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D7904 + + thumb_func_start MOD85_021D7930 +MOD85_021D7930: ; 0x021D7930 + push {r4, r5} + mov r0, #1 + lsl r0, r0, #0x1a + ldr r2, [r0] + ldr r1, _021D7978 ; =0xFFFF1FFF + add r5, r0, #0 + and r2, r1 + lsr r1, r0, #0xd + orr r1, r2 + str r1, [r0] + add r5, #0x48 + ldrh r3, [r5] + mov r1, #0x3f + mov r2, #0x1f + bic r3, r1 + add r4, r3, #0 + orr r4, r2 + mov r3, #0x20 + orr r4, r3 + strh r4, [r5] + add r4, r0, #0 + add r4, #0x4a + ldrh r5, [r4] + bic r5, r1 + add r1, r5, #0 + orr r1, r2 + orr r1, r3 + strh r1, [r4] + add r1, r0, #0 + mov r2, #0xff + add r1, #0x40 + strh r2, [r1] + add r0, #0x44 + strh r2, [r0] + pop {r4, r5} + bx lr + .align 2, 0 +_021D7978: .word 0xFFFF1FFF + thumb_func_end MOD85_021D7930 + + thumb_func_start MOD85_021D797C +MOD85_021D797C: ; 0x021D797C + push {r3, r4, r5, lr} + mov r1, #3 + mov r2, #0 + add r4, r0, #0 + bl MOD85_021D8144 + ldr r1, _021D7B1C ; =0x00000448 + add r5, r0, #0 + add r1, r4, r1 + bl FUN_020B0138 + ldr r1, _021D7B1C ; =0x00000448 + mov r2, #0x1a + ldr r1, [r4, r1] + mov r0, #1 + ldr r1, [r1, #0xc] + lsl r2, r2, #4 + mov r3, #0 + bl FUN_02017FB4 + add r0, r5, #0 + bl FUN_02016A18 + mov r1, #0 + add r0, r4, #0 + add r2, r1, #0 + bl MOD85_021D8144 + ldr r1, _021D7B20 ; =0x00000444 + add r5, r0, #0 + add r1, r4, r1 + bl FUN_020B0088 + ldr r0, _021D7B20 ; =0x00000444 + mov r1, #0 + ldr r3, [r4, r0] + sub r0, #8 + str r1, [sp] + ldr r2, [r3, #0x14] + ldr r0, [r4, r0] + ldr r3, [r3, #0x10] + mov r1, #1 + bl FUN_02017E14 + add r0, r5, #0 + bl FUN_02016A18 + add r0, r4, #0 + mov r1, #1 + mov r2, #0 + bl MOD85_021D8144 + mov r1, #0x11 + lsl r1, r1, #6 + add r1, r4, r1 + add r5, r0, #0 + bl FUN_020B0180 + mov r0, #0x11 + lsl r0, r0, #6 + ldr r3, [r4, r0] + sub r0, r0, #4 + add r2, r3, #0 + ldr r0, [r4, r0] + ldr r3, [r3, #8] + mov r1, #1 + add r2, #0xc + bl FUN_02017DFC + ldr r0, _021D7B24 ; =0x0000043C + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_02017CD0 + add r0, r5, #0 + bl FUN_02016A18 + add r0, r4, #0 + mov r1, #8 + mov r2, #0 + bl MOD85_021D8144 + ldr r1, _021D7B20 ; =0x00000444 + add r5, r0, #0 + add r1, r4, r1 + bl FUN_020B0088 + ldr r0, _021D7B20 ; =0x00000444 + mov r1, #0 + ldr r3, [r4, r0] + sub r0, #8 + str r1, [sp] + ldr r2, [r3, #0x14] + ldr r0, [r4, r0] + ldr r3, [r3, #0x10] + mov r1, #2 + bl FUN_02017E14 + add r0, r5, #0 + bl FUN_02016A18 + add r0, r4, #0 + mov r1, #9 + mov r2, #0 + bl MOD85_021D8144 + mov r1, #0x11 + lsl r1, r1, #6 + add r1, r4, r1 + add r5, r0, #0 + bl FUN_020B0180 + mov r0, #0x11 + lsl r0, r0, #6 + ldr r3, [r4, r0] + sub r0, r0, #4 + add r2, r3, #0 + ldr r0, [r4, r0] + ldr r3, [r3, #8] + mov r1, #2 + add r2, #0xc + bl FUN_02017DFC + ldr r0, _021D7B24 ; =0x0000043C + mov r1, #2 + ldr r0, [r4, r0] + bl FUN_02017CD0 + add r0, r5, #0 + bl FUN_02016A18 + add r0, r4, #0 + mov r1, #3 + mov r2, #0 + bl MOD85_021D8144 + ldr r1, _021D7B1C ; =0x00000448 + add r5, r0, #0 + add r1, r4, r1 + bl FUN_020B0138 + ldr r1, _021D7B1C ; =0x00000448 + mov r2, #0x1a + ldr r1, [r4, r1] + mov r0, #7 + ldr r1, [r1, #0xc] + lsl r2, r2, #4 + mov r3, #0 + bl FUN_02017FB4 + add r0, r5, #0 + bl FUN_02016A18 + add r0, r4, #0 + mov r1, #2 + mov r2, #0 + bl MOD85_021D8144 + ldr r1, _021D7B20 ; =0x00000444 + add r5, r0, #0 + add r1, r4, r1 + bl FUN_020B0088 + ldr r0, _021D7B20 ; =0x00000444 + mov r1, #0 + ldr r3, [r4, r0] + sub r0, #8 + str r1, [sp] + ldr r2, [r3, #0x14] + ldr r0, [r4, r0] + ldr r3, [r3, #0x10] + mov r1, #7 + bl FUN_02017E14 + add r0, r5, #0 + bl FUN_02016A18 + add r0, r4, #0 + mov r1, #4 + mov r2, #0 + bl MOD85_021D8144 + mov r1, #0x11 + lsl r1, r1, #6 + add r1, r4, r1 + add r5, r0, #0 + bl FUN_020B0180 + mov r0, #0x11 + lsl r0, r0, #6 + ldr r3, [r4, r0] + sub r0, r0, #4 + add r2, r3, #0 + ldr r0, [r4, r0] + ldr r3, [r3, #8] + mov r1, #7 + add r2, #0xc + bl FUN_02017DFC + ldr r0, _021D7B24 ; =0x0000043C + mov r1, #7 + ldr r0, [r4, r0] + bl FUN_02017CD0 + add r0, r5, #0 + bl FUN_02016A18 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7B1C: .word 0x00000448 +_021D7B20: .word 0x00000444 +_021D7B24: .word 0x0000043C + thumb_func_end MOD85_021D797C + + thumb_func_start MOD85_021D7B28 +MOD85_021D7B28: ; 0x021D7B28 + push {r3, r4, r5, lr} + sub sp, #8 + add r5, r0, #0 + ldr r0, _021D7BA4 ; =0x00000408 + mov r1, #0 + add r4, r5, r0 + str r1, [sp] + mov r2, #0x4f + str r2, [sp, #4] + add r0, #0x34 + ldr r0, [r5, r0] + mov r2, #1 + mov r3, #0xf + bl FUN_0200CB00 + ldr r1, _021D7BA8 ; =0x000004C4 + mov r2, #0x1f + ldr r0, [r5, r1] + sub r1, #0x88 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x4f + str r0, [sp, #4] + ldr r0, [r5, r1] + mov r1, #0 + mov r3, #0xe + bl FUN_0200CD68 + mov r1, #0x1e + mov r0, #0 + lsl r1, r1, #4 + mov r2, #0x4f + bl FUN_02002EEC + ldr r2, _021D7BAC ; =0x000001E9 + mov r0, #0 + mov r1, #0x1a + mov r3, #0x4f + bl FUN_0200A86C + ldr r1, _021D7BA4 ; =0x00000408 + str r0, [r5, r1] + mov r0, #0x4f + bl FUN_0200AA80 + str r0, [r4, #4] + ldr r0, _021D7BB0 ; =0x0000043C + add r1, r4, #0 + ldr r0, [r5, r0] + ldr r2, _021D7BB4 ; =0x021DECE4 + add r1, #8 + bl FUN_02019150 + mov r0, #1 + lsl r0, r0, #8 + mov r1, #0x4f + bl FUN_020219F4 + str r0, [r4, #0x18] + add sp, #8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7BA4: .word 0x00000408 +_021D7BA8: .word 0x000004C4 +_021D7BAC: .word 0x000001E9 +_021D7BB0: .word 0x0000043C +_021D7BB4: .word 0x021DECE4 + thumb_func_end MOD85_021D7B28 + + thumb_func_start MOD85_021D7BB8 +MOD85_021D7BB8: ; 0x021D7BB8 + push {r4, r5, r6, lr} + add r5, r0, #0 + ldr r0, _021D7BE8 ; =0x00000408 + add r4, r5, r0 + add r6, r4, #0 + add r6, #8 + add r0, r6, #0 + bl FUN_02019570 + add r0, r6, #0 + bl FUN_02019178 + ldr r0, _021D7BE8 ; =0x00000408 + ldr r0, [r5, r0] + bl FUN_0200A8B8 + ldr r0, [r4, #4] + bl FUN_0200AB18 + ldr r0, [r4, #0x18] + bl FUN_02021A20 + pop {r4, r5, r6, pc} + nop +_021D7BE8: .word 0x00000408 + thumb_func_end MOD85_021D7BB8 + + thumb_func_start MOD85_021D7BEC +MOD85_021D7BEC: ; 0x021D7BEC + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r0, #0 + ldr r0, _021D7C40 ; =0x00000408 + add r6, r1, #0 + add r4, r5, r0 + add r0, r4, #0 + add r0, #8 + mov r1, #1 + mov r2, #0x1f + mov r3, #0xe + bl FUN_0200D0BC + add r0, r4, #0 + add r0, #8 + mov r1, #0xf + bl FUN_02019620 + ldr r0, _021D7C40 ; =0x00000408 + ldr r2, [r4, #0x18] + ldr r0, [r5, r0] + add r1, r6, #0 + bl FUN_0200A8E0 + mov r3, #0 + str r3, [sp] + mov r0, #0xff + str r0, [sp, #4] + str r3, [sp, #8] + add r0, r4, #0 + ldr r2, [r4, #0x18] + add r0, #8 + mov r1, #1 + bl FUN_0201BD84 + add r4, #8 + add r0, r4, #0 + bl FUN_02019220 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021D7C40: .word 0x00000408 + thumb_func_end MOD85_021D7BEC + + thumb_func_start MOD85_021D7C44 +MOD85_021D7C44: ; 0x021D7C44 + push {r3, r4, r5, lr} + ldr r4, _021D7C68 ; =0x00000408 + add r5, r0, #0 + add r0, r5, r4 + add r0, #8 + mov r1, #1 + bl FUN_0200D0E0 + add r0, r5, r4 + add r0, #8 + mov r1, #0 + bl FUN_02019620 + add r0, r5, r4 + add r0, #8 + bl FUN_02019220 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D7C68: .word 0x00000408 + thumb_func_end MOD85_021D7C44 + + thumb_func_start MOD85_021D7C6C +MOD85_021D7C6C: ; 0x021D7C6C + push {r4, lr} + sub sp, #0x10 + ldr r4, _021D7C9C ; =0x021DECFC + add r3, sp, #0 + add r2, r3, #0 + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r4!, {r0, r1} + stmia r3!, {r0, r1} + ldr r1, _021D7CA0 ; =0x00200010 + add r0, r2, #0 + add r2, r1, #0 + bl FUN_0201D060 + mov r0, #0x10 + mov r1, #0x4f + bl FUN_0201E00C + bl FUN_0201D168 + bl FUN_0201E0BC + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021D7C9C: .word 0x021DECFC +_021D7CA0: .word 0x00200010 + thumb_func_end MOD85_021D7C6C + + thumb_func_start MOD85_021D7CA4 +MOD85_021D7CA4: ; 0x021D7CA4 + push {r3, lr} + bl FUN_0201D12C + bl FUN_0201E08C + pop {r3, pc} + thumb_func_end MOD85_021D7CA4 + + thumb_func_start MOD85_021D7CB0 +MOD85_021D7CB0: ; 0x021D7CB0 + push {r3, r4, lr} + sub sp, #0x1c + add r4, r0, #0 + bl FUN_020B0FC0 + mov r0, #0 + str r0, [sp] + mov r1, #0x80 + str r1, [sp, #4] + str r0, [sp, #8] + mov r3, #0x20 + str r3, [sp, #0xc] + mov r2, #0x4f + str r2, [sp, #0x10] + add r2, r0, #0 + bl FUN_02009EAC + mov r0, #0x10 + str r0, [sp] + mov r1, #0x40 + str r1, [sp, #4] + mov r2, #0x20 + str r2, [sp, #8] + mov r3, #0xb + str r3, [sp, #0xc] + mov r0, #8 + str r0, [sp, #0x10] + str r3, [sp, #0x14] + str r3, [sp, #0x18] + mov r0, #0x4f + add r3, r1, #0 + bl MOD85_021DE5A4 + mov r1, #0x45 + lsl r1, r1, #4 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD85_021D7D1C + add sp, #0x1c + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D7CB0 + + thumb_func_start MOD85_021D7D04 +MOD85_021D7D04: ; 0x021D7D04 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021D7FC8 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + bl MOD85_021DE710 + bl FUN_02009FA0 + pop {r4, pc} + thumb_func_end MOD85_021D7D04 + + thumb_func_start MOD85_021D7D1C +MOD85_021D7D1C: ; 0x021D7D1C + push {r3, r4, lr} + sub sp, #4 + mov r2, #0x45 + add r4, r0, #0 + mov r0, #0 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #1 + mov r3, #0xb + bl MOD85_021DE840 + mov r1, #1 + mov r2, #0x45 + str r1, [sp] + lsl r2, r2, #4 + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r3, #0x15 + bl MOD85_021DE840 + mov r2, #0x45 + mov r0, #6 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #2 + mov r3, #0x44 + bl MOD85_021DE840 + mov r2, #0x45 + mov r0, #7 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #2 + mov r3, #0x47 + bl MOD85_021DE840 + mov r2, #0x45 + mov r0, #8 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #2 + mov r3, #0x40 + bl MOD85_021DE840 + mov r2, #0x45 + mov r0, #9 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #2 + mov r3, #0x3c + bl MOD85_021DE840 + mov r2, #0x45 + mov r0, #0 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #3 + mov r3, #0xa + bl MOD85_021DE910 + mov r1, #1 + mov r2, #0x45 + str r1, [sp] + lsl r2, r2, #4 + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r3, #0x14 + bl MOD85_021DE910 + mov r2, #0x45 + mov r0, #6 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #2 + mov r3, #0x43 + bl MOD85_021DE910 + mov r2, #0x45 + mov r0, #7 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #2 + mov r3, #0x3f + bl MOD85_021DE910 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0xc + mov r3, #0 + bl MOD85_021DE9E4 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x16 + mov r3, #1 + bl MOD85_021DE9E4 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x45 + mov r3, #6 + bl MOD85_021DE9E4 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x48 + mov r3, #7 + bl MOD85_021DE9E4 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x41 + mov r3, #8 + bl MOD85_021DE9E4 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x3d + mov r3, #9 + bl MOD85_021DE9E4 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0xd + mov r3, #0 + bl MOD85_021DEA4C + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x17 + mov r3, #1 + bl MOD85_021DEA4C + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x46 + mov r3, #6 + bl MOD85_021DEA4C + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x49 + mov r3, #7 + bl MOD85_021DEA4C + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x42 + mov r3, #8 + bl MOD85_021DEA4C + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x3e + mov r3, #9 + bl MOD85_021DEA4C + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl MOD85_021DE8A8 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl MOD85_021DE8A8 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #6 + bl MOD85_021DE8A8 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #7 + bl MOD85_021DE8A8 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #8 + bl MOD85_021DE8A8 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #9 + bl MOD85_021DE8A8 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl MOD85_021DE8DC + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl MOD85_021DE8DC + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #6 + bl MOD85_021DE8DC + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #7 + bl MOD85_021DE8DC + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #8 + bl MOD85_021DE8DC + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #9 + bl MOD85_021DE8DC + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl MOD85_021DE97C + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl MOD85_021DE97C + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #6 + bl MOD85_021DE97C + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #7 + bl MOD85_021DE97C + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #0 + bl MOD85_021DE9B0 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #1 + bl MOD85_021DE9B0 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #6 + bl MOD85_021DE9B0 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #7 + bl MOD85_021DE9B0 + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D7D1C + + thumb_func_start MOD85_021D7FC8 +MOD85_021D7FC8: ; 0x021D7FC8 + bx lr + .align 2, 0 + thumb_func_end MOD85_021D7FC8 + + thumb_func_start MOD85_021D7FCC +MOD85_021D7FCC: ; 0x021D7FCC + push {r4, lr} + add r4, r0, #0 + mov r0, #0x4f + mov r1, #0x80 + bl FUN_020643C0 + ldr r1, _021D7FE0 ; =0x0000044C + str r0, [r4, r1] + pop {r4, pc} + nop +_021D7FE0: .word 0x0000044C + thumb_func_end MOD85_021D7FCC + + thumb_func_start MOD85_021D7FE4 +MOD85_021D7FE4: ; 0x021D7FE4 + ldr r1, _021D7FEC ; =0x0000044C + ldr r3, _021D7FF0 ; =FUN_020643F0 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_021D7FEC: .word 0x0000044C +_021D7FF0: .word FUN_020643F0 + thumb_func_end MOD85_021D7FE4 + + thumb_func_start MOD85_021D7FF4 +MOD85_021D7FF4: ; 0x021D7FF4 + ldr r2, _021D8010 ; =0x00000424 + add r2, r0, r2 + ldr r0, [r2, #8] + cmp r0, r1 + beq _021D800C + ldr r0, [r2, #0xc] + cmp r0, r1 + beq _021D800C + str r1, [r2, #0xc] + mov r0, #1 + str r0, [r2] + str r0, [r2, #4] +_021D800C: + bx lr + nop +_021D8010: .word 0x00000424 + thumb_func_end MOD85_021D7FF4 + + thumb_func_start MOD85_021D8014 +MOD85_021D8014: ; 0x021D8014 + ldr r1, _021D801C ; =0x00000428 + ldr r0, [r0, r1] + bx lr + nop +_021D801C: .word 0x00000428 + thumb_func_end MOD85_021D8014 + + thumb_func_start MOD85_021D8020 +MOD85_021D8020: ; 0x021D8020 + push {r4, lr} + add r1, r0, #0 + ldr r0, _021D803C ; =0x00000424 + mov r2, #0x90 + add r4, r1, r0 + mov r0, #0 + str r0, [r4, #8] + mov r0, #3 + str r0, [r4, #0xc] + ldr r0, _021D8040 ; =MOD85_021D8054 + bl FUN_0200CA44 + str r0, [r4, #0x10] + pop {r4, pc} + .align 2, 0 +_021D803C: .word 0x00000424 +_021D8040: .word MOD85_021D8054 + thumb_func_end MOD85_021D8020 + + thumb_func_start MOD85_021D8044 +MOD85_021D8044: ; 0x021D8044 + ldr r1, _021D804C ; =0x00000434 + ldr r3, _021D8050 ; =FUN_0200CAB4 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_021D804C: .word 0x00000434 +_021D8050: .word FUN_0200CAB4 + thumb_func_end MOD85_021D8044 + + thumb_func_start MOD85_021D8054 +MOD85_021D8054: ; 0x021D8054 + push {r4, lr} + ldr r0, _021D80D8 ; =0x00000424 + add r4, r1, r0 + ldr r1, [r4] + cmp r1, #0 + beq _021D80D4 + cmp r1, #1 + beq _021D806A + cmp r1, #2 + beq _021D809E + pop {r4, pc} +_021D806A: + ldr r1, [r4, #8] + cmp r1, #0 + beq _021D807A + cmp r1, #1 + beq _021D8084 + cmp r1, #2 + beq _021D808E + b _021D8096 +_021D807A: + mov r0, #1 + add r1, r0, #0 + bl FUN_020047C8 + b _021D8096 +_021D8084: + add r0, #0x7c + mov r1, #0 + bl FUN_02005350 + b _021D8096 +_021D808E: + add r0, #0x7d + mov r1, #0 + bl FUN_02005350 +_021D8096: + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + pop {r4, pc} +_021D809E: + ldr r1, [r4, #0xc] + cmp r1, #0 + beq _021D80AE + cmp r1, #1 + beq _021D80B8 + cmp r1, #2 + beq _021D80C0 + b _021D80C6 +_021D80AE: + mov r0, #1 + mov r1, #0 + bl FUN_020047C8 + b _021D80C6 +_021D80B8: + add r0, #0x7c + bl FUN_020051F4 + b _021D80C6 +_021D80C0: + add r0, #0x7d + bl FUN_020051F4 +_021D80C6: + ldr r0, [r4, #0xc] + str r0, [r4, #8] + mov r0, #3 + str r0, [r4, #0xc] + mov r0, #0 + str r0, [r4, #4] + str r0, [r4] +_021D80D4: + pop {r4, pc} + nop +_021D80D8: .word 0x00000424 + thumb_func_end MOD85_021D8054 + + thumb_func_start MOD85_021D80DC +MOD85_021D80DC: ; 0x021D80DC + push {r4, lr} + add r4, r0, #0 + bl FUN_0201C30C + bl FUN_02009F80 + ldr r0, _021D80F4 ; =0x0000043C + ldr r0, [r4, r0] + bl FUN_0201AB60 + pop {r4, pc} + nop +_021D80F4: .word 0x0000043C + thumb_func_end MOD85_021D80DC + + thumb_func_start MOD85_021D80F8 +MOD85_021D80F8: ; 0x021D80F8 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x4f + add r1, r5, #0 + bl FUN_02016998 + add r4, r0, #0 + bne _021D810C + bl ErrorHandling +_021D810C: + add r0, r4, #0 + mov r1, #0 + add r2, r5, #0 + bl Call_FillMemWithValue + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021D80F8 + + thumb_func_start MOD85_021D811C +MOD85_021D811C: ; 0x021D811C + push {r4, lr} + add r4, r0, #0 + mov r0, #0x85 + mov r1, #0x4f + bl FUN_02006670 + ldr r1, _021D8130 ; =0x00000438 + str r0, [r4, r1] + pop {r4, pc} + nop +_021D8130: .word 0x00000438 + thumb_func_end MOD85_021D811C + + thumb_func_start MOD85_021D8134 +MOD85_021D8134: ; 0x021D8134 + ldr r1, _021D813C ; =0x00000438 + ldr r3, _021D8140 ; =FUN_020066F4 + ldr r0, [r0, r1] + bx r3 + .align 2, 0 +_021D813C: .word 0x00000438 +_021D8140: .word FUN_020066F4 + thumb_func_end MOD85_021D8134 + + thumb_func_start MOD85_021D8144 +MOD85_021D8144: ; 0x021D8144 + push {r4, r5, r6, lr} + add r4, r0, #0 + ldr r0, _021D8184 ; =0x00000438 + add r6, r1, #0 + ldr r0, [r4, r0] + add r5, r2, #0 + bl FUN_020067D0 + add r1, r0, #0 + cmp r5, #1 + bne _021D8162 + mov r0, #0x4f + bl FUN_02016998 + b _021D8168 +_021D8162: + mov r0, #0x4f + bl FUN_020169D8 +_021D8168: + add r5, r0, #0 + cmp r5, #0 + bne _021D8172 + bl ErrorHandling +_021D8172: + ldr r0, _021D8184 ; =0x00000438 + add r1, r6, #0 + ldr r0, [r4, r0] + add r2, r5, #0 + bl FUN_02006774 + add r0, r5, #0 + pop {r4, r5, r6, pc} + nop +_021D8184: .word 0x00000438 + thumb_func_end MOD85_021D8144 + + thumb_func_start MOD85_021D8188 +MOD85_021D8188: ; 0x021D8188 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021D81C8 + add r0, r4, #0 + bl MOD85_021D92E8 + add r0, r4, #0 + bl MOD85_021DAD20 + add r0, r4, #0 + bl MOD85_021DAEC0 + add r0, r4, #0 + bl MOD85_021DB494 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D8188 + + thumb_func_start MOD85_021D81AC +MOD85_021D81AC: ; 0x021D81AC + push {r4, lr} + add r4, r0, #0 + bl MOD85_021D931C + add r0, r4, #0 + bl MOD85_021DAD44 + add r0, r4, #0 + bl MOD85_021DAEE4 + add r0, r4, #0 + bl MOD85_021DB600 + pop {r4, pc} + thumb_func_end MOD85_021D81AC + + thumb_func_start MOD85_021D81C8 +MOD85_021D81C8: ; 0x021D81C8 + push {r3, r4, r5, r6, r7, lr} + mov r7, #0x15 + add r5, r0, #0 + mov r4, #0 + lsl r6, r7, #0x11 +_021D81D2: + bl FUN_0201B9EC + add r1, r7, #0 + bl _s32_div_f + add r0, r5, #0 + add r0, #0xa8 + str r1, [r0] + lsl r0, r1, #0x11 + sub r1, r6, r0 + add r0, r5, #0 + add r0, #0x90 + str r1, [r0] + add r0, r5, #0 + add r0, #0x90 + mov r1, #0x2a + ldr r0, [r0] + lsl r1, r1, #0x10 + bl _s32_div_f + add r0, r5, #0 + add r0, #0x90 + add r4, r4, #1 + add r5, r5, #4 + str r1, [r0] + cmp r4, #3 + blt _021D81D2 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021D81C8 + + thumb_func_start MOD85_021D820C +MOD85_021D820C: ; 0x021D820C + push {r3, r4, r5, lr} + ldr r4, _021D822C ; =0x021DEF94 + add r5, r0, #0 +_021D8212: + ldr r1, [r5] + add r0, r5, #0 + lsl r1, r1, #2 + ldr r1, [r4, r1] + blx r1 + cmp r0, #1 + beq _021D8212 + cmp r0, #2 + bne _021D8228 + mov r0, #1 + pop {r3, r4, r5, pc} +_021D8228: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021D822C: .word 0x021DEF94 + thumb_func_end MOD85_021D820C + + thumb_func_start MOD85_021D8230 +MOD85_021D8230: ; 0x021D8230 + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + str r1, [r4, #0x64] + mov r3, #1 + add r2, r4, #0 + str r1, [r4, #0x68] + lsl r3, r3, #0x10 + add r2, #0x8c + str r3, [r2] + str r1, [r4, #0x74] + str r1, [r4, #8] + mov r2, #1 + str r2, [r4] + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DC094 + add r0, r4, #0 + bl MOD85_021DB754 + add r0, r4, #0 + bl MOD85_021DB95C + ldr r1, [r4, #0x60] + cmp r1, #0 + bne _021D827C + mov r0, #0x3c + str r0, [r4] + mov r0, #0x3f + str r0, [r4, #4] + b _021D8298 +_021D827C: + cmp r1, #3 + bge _021D828A + mov r0, #0x3b + str r0, [r4] + mov r0, #0x3f + str r0, [r4, #4] + b _021D8298 +_021D828A: + ldr r0, _021D829C ; =0x0000C350 + cmp r1, r0 + blt _021D8298 + mov r0, #0x3d + str r0, [r4] + mov r0, #1 + str r0, [r4, #4] +_021D8298: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021D829C: .word 0x0000C350 + thumb_func_end MOD85_021D8230 + + thumb_func_start MOD85_021D82A0 +MOD85_021D82A0: ; 0x021D82A0 + push {r4, lr} + add r4, r0, #0 + mov r0, #8 + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D82BC + add r0, r4, #0 + bl MOD85_021DB9A0 + mov r0, #0x3f + str r0, [r4] + mov r0, #0 + pop {r4, pc} +_021D82BC: + mov r0, #1 + lsl r0, r0, #0xa + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D82F0 + ldr r0, [r4, #0x60] + sub r0, r0, #3 + str r0, [r4, #0x60] + ldr r0, _021D82F4 ; =0x0000045C + ldr r1, [r4, r0] + add r1, r1, #3 + str r1, [r4, r0] + mov r0, #2 + str r0, [r4] + ldr r0, _021D82F8 ; =0x000005ED + bl FUN_020054C8 + add r0, r4, #0 + bl MOD85_021DB9A0 + add r0, r4, #0 + bl MOD85_021DB76C + mov r0, #0 + pop {r4, pc} +_021D82F0: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D82F4: .word 0x0000045C +_021D82F8: .word 0x000005ED + thumb_func_end MOD85_021D82A0 + + thumb_func_start MOD85_021D82FC +MOD85_021D82FC: ; 0x021D82FC + push {r4, lr} + add r4, r0, #0 + mov r0, #8 + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D8318 + ldr r0, [r4, #0x60] + add r0, r0, #3 + str r0, [r4, #0x60] + mov r0, #0x3f + str r0, [r4] + mov r0, #0 + pop {r4, pc} +_021D8318: + mov r0, #0x12 + lsl r0, r0, #6 + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D832C + mov r0, #3 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D832C: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D82FC + + thumb_func_start MOD85_021D8330 +MOD85_021D8330: ; 0x021D8330 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DA804 + mov r0, #0x46 + lsl r0, r0, #4 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + add r1, r0, #4 + ldr r1, [r4, r1] + add r0, r0, #4 + add r1, r1, #1 + str r1, [r4, r0] + mov r0, #0 + str r0, [r4, #0x70] + ldr r1, [r4, #0x74] + mov r0, #0x33 + tst r0, r1 + beq _021D835C + mov r0, #1 + str r0, [r4, #0x70] +_021D835C: + mov r0, #0 + str r0, [r4, #0x30] + ldr r0, [r4, #0x74] + cmp r0, #0 + beq _021D8398 + add r0, r4, #0 + bl MOD85_021DA948 + cmp r0, #0 + bne _021D8378 + mov r0, #0x55 + mov r1, #4 + lsl r0, r0, #2 + b _021D838C +_021D8378: + ldr r0, [r4, #0x74] + bl MOD85_021DBF70 + mov r1, #0x55 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #0x49 + lsl r0, r0, #4 + ldr r1, [r4, r0] + add r1, r1, #1 +_021D838C: + str r1, [r4, r0] + mov r1, #1 + add r0, r4, #0 + str r1, [r4, #0x30] + bl MOD85_021DAEF4 +_021D8398: + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DC094 + add r0, r4, #0 + bl MOD85_021DB76C + add r0, r4, #0 + mov r1, #0 + bl MOD85_021D9338 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021D9338 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021D9338 + add r0, r4, #0 + bl MOD85_021DBFA4 + mov r1, #1 + add r0, r4, #0 + str r1, [r4, #0x7c] + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + add r0, #0x84 + str r1, [r0] + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #4 + str r0, [r4] + ldr r0, _021D83F8 ; =0x000005EE + bl FUN_020054C8 + mov r0, #1 + pop {r4, pc} + nop +_021D83F8: .word 0x000005EE + thumb_func_end MOD85_021D8330 + + thumb_func_start MOD85_021D83FC +MOD85_021D83FC: ; 0x021D83FC + mov r1, #1 + ldr r2, [r0, #0x6c] + lsl r1, r1, #0xc + add r2, r2, r1 + lsl r1, r1, #3 + str r2, [r0, #0x6c] + cmp r2, r1 + blt _021D8418 + mov r1, #0 + str r1, [r0, #0x6c] + mov r1, #5 + str r1, [r0] + mov r0, #1 + bx lr +_021D8418: + mov r0, #0 + bx lr + thumb_func_end MOD85_021D83FC + + thumb_func_start MOD85_021D841C +MOD85_021D841C: ; 0x021D841C + push {r4, lr} + ldr r1, _021D850C ; =0x021C48B8 + add r4, r0, #0 + ldr r2, [r1, #0x48] + ldr r1, [r4, #0x7c] + cmp r1, #1 + bne _021D8462 + mov r1, #2 + lsl r1, r1, #0xa + add r3, r2, #0 + tst r3, r1 + beq _021D8462 + mov r2, #2 + str r2, [r4, #0x7c] + bl MOD85_021DBFB4 + add r0, r4, #0 + bl MOD85_021DBFDC + cmp r0, #0 + bne _021D844A + mov r0, #0 + str r0, [r4, #0x70] +_021D844A: + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DC050 + add r0, r4, #0 + mov r1, #0 + bl MOD85_021D9350 + ldr r0, _021D8510 ; =0x00000626 + bl FUN_020054C8 + b _021D84EA +_021D8462: + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #1 + bne _021D84A6 + mov r1, #2 + add r0, r2, #0 + tst r0, r1 + beq _021D84A6 + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + bl MOD85_021DBFB4 + add r0, r4, #0 + bl MOD85_021DBFDC + cmp r0, #0 + bne _021D848E + mov r0, #0 + str r0, [r4, #0x70] +_021D848E: + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DC050 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021D9350 + ldr r0, _021D8510 ; =0x00000626 + bl FUN_020054C8 + b _021D84EA +_021D84A6: + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #1 + bne _021D84EA + mov r1, #1 + add r0, r2, #0 + tst r0, r1 + beq _021D84EA + add r0, r4, #0 + mov r2, #2 + add r0, #0x84 + str r2, [r0] + add r0, r4, #0 + bl MOD85_021DBFB4 + add r0, r4, #0 + bl MOD85_021DBFDC + cmp r0, #0 + bne _021D84D4 + mov r0, #0 + str r0, [r4, #0x70] +_021D84D4: + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DC050 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021D9350 + ldr r0, _021D8510 ; =0x00000626 + bl FUN_020054C8 +_021D84EA: + ldr r0, [r4, #0x7c] + cmp r0, #2 + bne _021D8508 + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #2 + bne _021D8508 + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #2 + bne _021D8508 + mov r0, #6 + str r0, [r4] +_021D8508: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D850C: .word 0x021C48B8 +_021D8510: .word 0x00000626 + thumb_func_end MOD85_021D841C + + thumb_func_start MOD85_021D8514 +MOD85_021D8514: ; 0x021D8514 + push {r4, lr} + mov r1, #0 + add r4, r0, #0 + bl MOD85_021D9360 + cmp r0, #1 + beq _021D853A + add r0, r4, #0 + mov r1, #1 + bl MOD85_021D9360 + cmp r0, #1 + beq _021D853A + add r0, r4, #0 + mov r1, #2 + bl MOD85_021D9360 + cmp r0, #1 + bne _021D853E +_021D853A: + mov r0, #0 + pop {r4, pc} +_021D853E: + add r0, r4, #0 + bl MOD85_021DB754 + mov r0, #7 + str r0, [r4] + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD85_021D8514 + + thumb_func_start MOD85_021D854C +MOD85_021D854C: ; 0x021D854C + push {r4, lr} + add r4, r0, #0 + add r2, r4, #0 + ldr r1, [r4, #0x74] + add r2, #0x48 + bl MOD85_021DBED4 + str r0, [r4, #0x44] + cmp r0, #6 + bne _021D8584 + ldr r1, [r4, #0x74] + mov r0, #0xaa + tst r0, r1 + beq _021D8570 + mov r0, #0x10 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8570: + cmp r1, #0 + beq _021D857C + mov r0, #0xa + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D857C: + mov r0, #8 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8584: + ldr r2, [r4, #0x74] + mov r1, #0xaa + tst r1, r2 + beq _021D859E + mov r0, #2 + tst r0, r2 + beq _021D8596 + mov r0, #0x15 + b _021D8598 +_021D8596: + mov r0, #0x13 +_021D8598: + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D859E: + cmp r0, #2 + bne _021D85AA + mov r0, #0xe + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D85AA: + mov r0, #0xc + str r0, [r4] + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D854C + + thumb_func_start MOD85_021D85B4 +MOD85_021D85B4: ; 0x021D85B4 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DB754 + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #9 + str r0, [r4] + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD85_021D85B4 + + thumb_func_start MOD85_021D85C8 +MOD85_021D85C8: ; 0x021D85C8 + mov r1, #1 + ldr r2, [r0, #0x6c] + lsl r1, r1, #0xc + add r2, r2, r1 + lsl r1, r1, #3 + str r2, [r0, #0x6c] + cmp r2, r1 + blt _021D85DE + mov r1, #0 + str r1, [r0, #0x6c] + str r1, [r0] +_021D85DE: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD85_021D85C8 + + thumb_func_start MOD85_021D85E4 +MOD85_021D85E4: ; 0x021D85E4 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DB754 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DAEF4 + mov r0, #0xb + str r0, [r4] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D85E4 + + thumb_func_start MOD85_021D85FC +MOD85_021D85FC: ; 0x021D85FC + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DAF08 + cmp r0, #1 + bne _021D8618 + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DAEF4 + mov r0, #0 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8618: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D85FC + + thumb_func_start MOD85_021D861C +MOD85_021D861C: ; 0x021D861C + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DC0D8 + ldr r1, _021D8648 ; =0x00000458 + str r0, [r4, #0x64] + ldr r2, [r4, r1] + add r0, r2, r0 + str r0, [r4, r1] + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #0xd + str r0, [r4] + add r0, r4, #0 + bl MOD85_021DAD54 + add r0, r4, #0 + mov r1, #0xb + bl MOD85_021DAEF4 + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D8648: .word 0x00000458 + thumb_func_end MOD85_021D861C + + thumb_func_start MOD85_021D864C +MOD85_021D864C: ; 0x021D864C + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + ldr r2, [r4, #0x6c] + lsl r1, r1, #0xc + add r2, r2, r1 + mov r1, #0x1e + lsl r1, r1, #0xc + str r2, [r4, #0x6c] + cmp r2, r1 + bne _021D866A + mov r1, #2 + bl MOD85_021DAEF4 + b _021D8690 +_021D866A: + ble _021D8690 + bl MOD85_021DAD68 + cmp r0, #1 + bne _021D8690 + add r0, r4, #0 + bl MOD85_021DAF08 + cmp r0, #1 + bne _021D8690 + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DAEF4 + mov r0, #0 + str r0, [r4, #0x6c] + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8690: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D864C + + thumb_func_start MOD85_021D8694 +MOD85_021D8694: ; 0x021D8694 + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + str r1, [r4, #0x64] + str r1, [r4, #0x6c] + mov r1, #0xf + str r1, [r4] + bl MOD85_021DAD54 + add r0, r4, #0 + mov r1, #0xb + bl MOD85_021DAEF4 + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D8694 + + thumb_func_start MOD85_021D86B4 +MOD85_021D86B4: ; 0x021D86B4 + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + ldr r2, [r4, #0x6c] + lsl r1, r1, #0xc + add r2, r2, r1 + mov r1, #0xf + lsl r1, r1, #0xc + str r2, [r4, #0x6c] + cmp r2, r1 + bne _021D86D2 + mov r1, #2 + bl MOD85_021DAEF4 + b _021D86FA +_021D86D2: + ble _021D86FA + bl MOD85_021DAD68 + cmp r0, #1 + bne _021D86FA + add r0, r4, #0 + bl MOD85_021DAF08 + cmp r0, #1 + bne _021D86FA + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DAEF4 + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #3 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D86FA: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D86B4 + + thumb_func_start MOD85_021D8700 +MOD85_021D8700: ; 0x021D8700 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DB754 + add r0, r4, #0 + bl MOD85_021DA96C + add r0, r4, #0 + bl MOD85_021DAA2C + add r0, r4, #0 + mov r1, #0xb + bl MOD85_021DAEF4 + mov r0, #0 + str r0, [r4, #0x6c] + mov r1, #0x11 + str r1, [r4] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D8700 + + thumb_func_start MOD85_021D8728 +MOD85_021D8728: ; 0x021D8728 + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + ldr r2, [r4, #0x6c] + lsl r1, r1, #0xc + add r2, r2, r1 + lsl r1, r1, #3 + str r2, [r4, #0x6c] + cmp r2, r1 + blt _021D874E + mov r1, #3 + bl MOD85_021DAEF4 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021D7FF4 + mov r0, #0x12 + str r0, [r4] +_021D874E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D8728 + + thumb_func_start MOD85_021D8754 +MOD85_021D8754: ; 0x021D8754 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DAF08 + cmp r0, #1 + bne _021D8768 + mov r0, #0x17 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8768: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D8754 + + thumb_func_start MOD85_021D876C +MOD85_021D876C: ; 0x021D876C + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DC0D8 + str r0, [r4, #0x64] + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #0x14 + str r0, [r4] + add r0, r4, #0 + bl MOD85_021DAD54 + add r0, r4, #0 + bl MOD85_021DA96C + add r0, r4, #0 + bl MOD85_021DAA2C + add r0, r4, #0 + mov r1, #0xb + bl MOD85_021DAEF4 + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D876C + + thumb_func_start MOD85_021D879C +MOD85_021D879C: ; 0x021D879C + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + ldr r2, [r4, #0x6c] + lsl r1, r1, #0xc + add r2, r2, r1 + mov r1, #0x1e + lsl r1, r1, #0xc + str r2, [r4, #0x6c] + cmp r2, r1 + bne _021D87C2 + mov r1, #1 + bl MOD85_021D7FF4 + add r0, r4, #0 + mov r1, #3 + bl MOD85_021DAEF4 + b _021D87E2 +_021D87C2: + blt _021D87E2 + bl MOD85_021DAD68 + cmp r0, #1 + bne _021D87E2 + add r0, r4, #0 + bl MOD85_021DAF08 + cmp r0, #1 + bne _021D87E2 + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #0x17 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D87E2: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D879C + + thumb_func_start MOD85_021D87E8 +MOD85_021D87E8: ; 0x021D87E8 + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + str r1, [r4, #0x6c] + mov r1, #0x16 + str r1, [r4] + bl MOD85_021DAD54 + add r0, r4, #0 + mov r1, #0xb + bl MOD85_021DAEF4 + add r0, r4, #0 + bl MOD85_021DA96C + add r0, r4, #0 + bl MOD85_021DAA2C + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D87E8 + + thumb_func_start MOD85_021D8810 +MOD85_021D8810: ; 0x021D8810 + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + ldr r2, [r4, #0x6c] + lsl r1, r1, #0xc + add r3, r2, r1 + lsl r2, r1, #3 + str r3, [r4, #0x6c] + cmp r3, r2 + bne _021D8834 + mov r1, #3 + bl MOD85_021DAEF4 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021D7FF4 + b _021D8858 +_021D8834: + lsl r1, r1, #3 + cmp r3, r1 + blt _021D8858 + bl MOD85_021DAD68 + cmp r0, #1 + bne _021D8858 + add r0, r4, #0 + bl MOD85_021DAF08 + cmp r0, #1 + bne _021D8858 + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #0x18 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8858: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D8810 + + thumb_func_start MOD85_021D885C +MOD85_021D885C: ; 0x021D885C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x50] + cmp r0, #6 + blt _021D886A + bl ErrorHandling +_021D886A: + mov r0, #0x19 + str r0, [r4] + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D885C + + thumb_func_start MOD85_021D8874 +MOD85_021D8874: ; 0x021D8874 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x50] + cmp r0, #6 + blt _021D8882 + bl ErrorHandling +_021D8882: + mov r0, #0x1c + str r0, [r4] + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D8874 + + thumb_func_start MOD85_021D888C +MOD85_021D888C: ; 0x021D888C + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + str r1, [r4, #0x64] + str r1, [r4, #0x68] + mov r2, #0x1a + str r2, [r4] + str r1, [r4, #0x74] + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DC094 + add r0, r4, #0 + bl MOD85_021DB754 + add r0, r4, #0 + bl MOD85_021DB95C + add r0, r4, #0 + mov r1, #7 + bl MOD85_021DAEF4 + ldr r1, [r4, #0x60] + cmp r1, #0 + bne _021D88D4 + mov r0, #0x3c + str r0, [r4] + mov r0, #0x3f + str r0, [r4, #4] + b _021D88F0 +_021D88D4: + cmp r1, #3 + bge _021D88E2 + mov r0, #0x3b + str r0, [r4] + mov r0, #0x3f + str r0, [r4, #4] + b _021D88F0 +_021D88E2: + ldr r0, _021D88F4 ; =0x0000C350 + cmp r1, r0 + blt _021D88F0 + mov r0, #0x3d + str r0, [r4] + mov r0, #0x1a + str r0, [r4, #4] +_021D88F0: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021D88F4: .word 0x0000C350 + thumb_func_end MOD85_021D888C + + thumb_func_start MOD85_021D88F8 +MOD85_021D88F8: ; 0x021D88F8 + push {r4, lr} + add r4, r0, #0 + mov r0, #8 + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D8914 + mov r0, #0x3f + str r0, [r4] + add r0, r4, #0 + bl MOD85_021DB9A0 + mov r0, #0 + pop {r4, pc} +_021D8914: + mov r0, #1 + lsl r0, r0, #0xa + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D8948 + ldr r0, [r4, #0x60] + sub r0, r0, #3 + str r0, [r4, #0x60] + ldr r0, _021D894C ; =0x0000045C + ldr r1, [r4, r0] + add r1, r1, #3 + str r1, [r4, r0] + mov r0, #0x1b + str r0, [r4] + ldr r0, _021D8950 ; =0x000005ED + bl FUN_020054C8 + add r0, r4, #0 + bl MOD85_021DB9A0 + add r0, r4, #0 + bl MOD85_021DB76C + mov r0, #0 + pop {r4, pc} +_021D8948: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D894C: .word 0x0000045C +_021D8950: .word 0x000005ED + thumb_func_end MOD85_021D88F8 + + thumb_func_start MOD85_021D8954 +MOD85_021D8954: ; 0x021D8954 + push {r4, lr} + add r4, r0, #0 + mov r0, #8 + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D8970 + ldr r0, [r4, #0x60] + add r0, r0, #3 + str r0, [r4, #0x60] + mov r0, #0x3f + str r0, [r4] + mov r0, #0 + pop {r4, pc} +_021D8970: + mov r0, #0x12 + lsl r0, r0, #6 + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D8984 + mov r0, #0x1c + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8984: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D8954 + + thumb_func_start MOD85_021D8988 +MOD85_021D8988: ; 0x021D8988 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DAAF0 + mov r1, #0x46 + lsl r1, r1, #4 + ldr r0, [r4, r1] + add r0, r0, #1 + str r0, [r4, r1] + add r0, r1, #0 + add r0, #8 + ldr r0, [r4, r0] + add r1, #8 + add r0, r0, #1 + str r0, [r4, r1] + mov r0, #0 + str r0, [r4, #0x70] + ldr r1, [r4, #0x74] + mov r0, #0x33 + tst r0, r1 + beq _021D89B6 + mov r0, #1 + str r0, [r4, #0x70] +_021D89B6: + mov r0, #0 + str r0, [r4, #0x30] + ldr r0, [r4, #0x74] + cmp r0, #0 + beq _021D89C4 + mov r0, #1 + str r0, [r4, #0x30] +_021D89C4: + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DC094 + add r0, r4, #0 + bl MOD85_021DB76C + add r0, r4, #0 + mov r1, #0 + bl MOD85_021D9338 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021D9338 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021D9338 + add r0, r4, #0 + bl MOD85_021DBFA4 + add r0, r4, #0 + mov r1, #9 + bl MOD85_021DAEF4 + mov r1, #1 + add r0, r4, #0 + str r1, [r4, #0x7c] + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + add r0, #0x84 + str r1, [r0] + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #0x1d + str r0, [r4] + ldr r0, _021D8A2C ; =0x000005EE + bl FUN_020054C8 + mov r0, #1 + pop {r4, pc} + nop +_021D8A2C: .word 0x000005EE + thumb_func_end MOD85_021D8988 + + thumb_func_start MOD85_021D8A30 +MOD85_021D8A30: ; 0x021D8A30 + mov r1, #1 + ldr r2, [r0, #0x6c] + lsl r1, r1, #0xc + add r2, r2, r1 + lsl r1, r1, #3 + str r2, [r0, #0x6c] + cmp r2, r1 + blt _021D8A4C + mov r1, #0 + str r1, [r0, #0x6c] + mov r1, #0x1e + str r1, [r0] + mov r0, #1 + bx lr +_021D8A4C: + mov r0, #0 + bx lr + thumb_func_end MOD85_021D8A30 + + thumb_func_start MOD85_021D8A50 +MOD85_021D8A50: ; 0x021D8A50 + push {r4, lr} + ldr r1, _021D8B40 ; =0x021C48B8 + add r4, r0, #0 + ldr r2, [r1, #0x48] + ldr r1, [r4, #0x7c] + cmp r1, #1 + bne _021D8A96 + mov r1, #2 + lsl r1, r1, #0xa + add r3, r2, #0 + tst r3, r1 + beq _021D8A96 + mov r2, #2 + str r2, [r4, #0x7c] + bl MOD85_021DBFB4 + add r0, r4, #0 + bl MOD85_021DBFDC + cmp r0, #0 + bne _021D8A7E + mov r0, #0 + str r0, [r4, #0x70] +_021D8A7E: + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DC050 + add r0, r4, #0 + mov r1, #0 + bl MOD85_021D9350 + ldr r0, _021D8B44 ; =0x00000626 + bl FUN_020054C8 + b _021D8B1E +_021D8A96: + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #1 + bne _021D8ADA + mov r1, #2 + add r0, r2, #0 + tst r0, r1 + beq _021D8ADA + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + bl MOD85_021DBFB4 + add r0, r4, #0 + bl MOD85_021DBFDC + cmp r0, #0 + bne _021D8AC2 + mov r0, #0 + str r0, [r4, #0x70] +_021D8AC2: + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DC050 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021D9350 + ldr r0, _021D8B44 ; =0x00000626 + bl FUN_020054C8 + b _021D8B1E +_021D8ADA: + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #1 + bne _021D8B1E + mov r1, #1 + add r0, r2, #0 + tst r0, r1 + beq _021D8B1E + add r0, r4, #0 + mov r2, #2 + add r0, #0x84 + str r2, [r0] + add r0, r4, #0 + bl MOD85_021DBFB4 + add r0, r4, #0 + bl MOD85_021DBFDC + cmp r0, #0 + bne _021D8B08 + mov r0, #0 + str r0, [r4, #0x70] +_021D8B08: + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DC050 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021D9350 + ldr r0, _021D8B44 ; =0x00000626 + bl FUN_020054C8 +_021D8B1E: + ldr r0, [r4, #0x7c] + cmp r0, #2 + bne _021D8B3C + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #2 + bne _021D8B3C + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #2 + bne _021D8B3C + mov r0, #0x1f + str r0, [r4] +_021D8B3C: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D8B40: .word 0x021C48B8 +_021D8B44: .word 0x00000626 + thumb_func_end MOD85_021D8A50 + + thumb_func_start MOD85_021D8B48 +MOD85_021D8B48: ; 0x021D8B48 + push {r4, lr} + mov r1, #0 + add r4, r0, #0 + bl MOD85_021D9360 + cmp r0, #1 + beq _021D8B6E + add r0, r4, #0 + mov r1, #1 + bl MOD85_021D9360 + cmp r0, #1 + beq _021D8B6E + add r0, r4, #0 + mov r1, #2 + bl MOD85_021D9360 + cmp r0, #1 + bne _021D8B72 +_021D8B6E: + mov r0, #0 + pop {r4, pc} +_021D8B72: + add r0, r4, #0 + bl MOD85_021DB754 + mov r0, #0x20 + str r0, [r4] + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD85_021D8B48 + + thumb_func_start MOD85_021D8B80 +MOD85_021D8B80: ; 0x021D8B80 + push {r4, lr} + add r4, r0, #0 + add r2, r4, #0 + ldr r1, [r4, #0x74] + add r2, #0x48 + bl MOD85_021DBED4 + str r0, [r4, #0x44] + cmp r0, #6 + bne _021D8B9C + mov r0, #0x21 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8B9C: + mov r1, #3 + ldr r2, [r4, #0x74] + lsl r1, r1, #8 + tst r1, r2 + beq _021D8BAE + mov r0, #0x27 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8BAE: + cmp r0, #2 + bne _021D8BBA + mov r0, #0x25 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8BBA: + mov r0, #0x23 + str r0, [r4] + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D8B80 + + thumb_func_start MOD85_021D8BC4 +MOD85_021D8BC4: ; 0x021D8BC4 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DB754 + add r0, r4, #0 + mov r1, #7 + bl MOD85_021DAEF4 + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #0x22 + str r0, [r4] + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD85_021D8BC4 + + thumb_func_start MOD85_021D8BE0 +MOD85_021D8BE0: ; 0x021D8BE0 + mov r1, #1 + ldr r2, [r0, #0x6c] + lsl r1, r1, #0xc + add r2, r2, r1 + lsl r1, r1, #3 + str r2, [r0, #0x6c] + cmp r2, r1 + blt _021D8BFC + mov r1, #0 + str r1, [r0, #0x6c] + mov r1, #0x19 + str r1, [r0] + mov r0, #1 + bx lr +_021D8BFC: + mov r0, #0 + bx lr + thumb_func_end MOD85_021D8BE0 + + thumb_func_start MOD85_021D8C00 +MOD85_021D8C00: ; 0x021D8C00 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DC0D8 + ldr r1, _021D8C2C ; =0x00000458 + str r0, [r4, #0x64] + ldr r2, [r4, r1] + add r0, r2, r0 + str r0, [r4, r1] + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #0x24 + str r0, [r4] + add r0, r4, #0 + bl MOD85_021DAD54 + add r0, r4, #0 + mov r1, #0xa + bl MOD85_021DAEF4 + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D8C2C: .word 0x00000458 + thumb_func_end MOD85_021D8C00 + + thumb_func_start MOD85_021D8C30 +MOD85_021D8C30: ; 0x021D8C30 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DAD68 + cmp r0, #1 + bne _021D8C4C + add r0, r4, #0 + mov r1, #7 + bl MOD85_021DAEF4 + mov r0, #0x19 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8C4C: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D8C30 + + thumb_func_start MOD85_021D8C50 +MOD85_021D8C50: ; 0x021D8C50 + push {r4, lr} + add r4, r0, #0 + mov r1, #0 + str r1, [r4, #0x64] + str r1, [r4, #0x6c] + mov r1, #0x26 + str r1, [r4] + bl MOD85_021DAD54 + add r0, r4, #0 + mov r1, #0xa + bl MOD85_021DAEF4 + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D8C50 + + thumb_func_start MOD85_021D8C70 +MOD85_021D8C70: ; 0x021D8C70 + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + ldr r2, [r4, #0x6c] + lsl r1, r1, #0xc + add r2, r2, r1 + mov r1, #0xf + lsl r1, r1, #0xc + str r2, [r4, #0x6c] + cmp r2, r1 + ble _021D8CA8 + bl MOD85_021DAD68 + cmp r0, #1 + bne _021D8CA8 + add r0, r4, #0 + mov r1, #7 + bl MOD85_021DAEF4 + add r0, r4, #0 + bl MOD85_021DB754 + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #0x1c + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8CA8: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D8C70 + + thumb_func_start MOD85_021D8CAC +MOD85_021D8CAC: ; 0x021D8CAC + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DC0D8 + ldr r1, _021D8CF0 ; =0x00000458 + str r0, [r4, #0x64] + ldr r2, [r4, r1] + add r0, r2, r0 + str r0, [r4, r1] + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #0x28 + str r0, [r4] + add r0, r4, #0 + bl MOD85_021DAD54 + add r0, r4, #0 + mov r1, #0xa + bl MOD85_021DAEF4 + add r0, r4, #0 + bl MOD85_021DBB0C + add r0, r4, #0 + mov r1, #2 + bl MOD85_021D7FF4 + add r0, r4, #0 + bl MOD85_021DE264 + ldr r1, _021D8CF4 ; =0x00000454 + str r0, [r4, r1] + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D8CF0: .word 0x00000458 +_021D8CF4: .word 0x00000454 + thumb_func_end MOD85_021D8CAC + + thumb_func_start MOD85_021D8CF8 +MOD85_021D8CF8: ; 0x021D8CF8 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DAD68 + cmp r0, #1 + bne _021D8D1C + ldr r0, _021D8D20 ; =0x00000454 + ldr r0, [r4, r0] + bl FUN_02064520 + add r0, r4, #0 + mov r1, #7 + bl MOD85_021DAEF4 + mov r0, #0x29 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8D1C: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D8D20: .word 0x00000454 + thumb_func_end MOD85_021D8CF8 + + thumb_func_start MOD85_021D8D24 +MOD85_021D8D24: ; 0x021D8D24 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DAF10 + mov r0, #0 + str r0, [r4, #0x1c] + str r0, [r4, #0x14] + mov r0, #1 + str r0, [r4, #8] + mov r1, #0x2a + str r1, [r4] + pop {r4, pc} + thumb_func_end MOD85_021D8D24 + + thumb_func_start MOD85_021D8D3C +MOD85_021D8D3C: ; 0x021D8D3C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0xc] + add r0, r0, #1 + str r0, [r4, #0xc] + ldr r0, [r4, #0x1c] + add r1, r0, #1 + ldr r0, _021D8D84 ; =0x000003E7 + str r1, [r4, #0x1c] + cmp r1, r0 + bls _021D8D54 + str r0, [r4, #0x1c] +_021D8D54: + ldr r1, [r4, #0x1c] + add r0, r4, #0 + bl MOD85_021DE118 + mov r0, #0x10 + str r0, [r4, #0x10] + mov r0, #1 + str r0, [r4, #8] + mov r0, #0 + str r0, [r4, #0x24] + str r0, [r4, #0x28] + str r0, [r4, #0x2c] + add r0, r4, #0 + bl MOD85_021DAC44 + cmp r0, #0 + bne _021D8D7A + mov r0, #1 + str r0, [r4, #0x2c] +_021D8D7A: + mov r0, #0x2b + str r0, [r4] + mov r0, #1 + pop {r4, pc} + nop +_021D8D84: .word 0x000003E7 + thumb_func_end MOD85_021D8D3C + + thumb_func_start MOD85_021D8D88 +MOD85_021D8D88: ; 0x021D8D88 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x10] + sub r0, r0, #1 + str r0, [r4, #0x10] + cmp r0, #1 + bge _021D8D9A + bl ErrorHandling +_021D8D9A: + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DC094 + add r0, r4, #0 + bl MOD85_021DB754 + add r0, r4, #0 + bl MOD85_021DB95C + add r0, r4, #0 + mov r1, #7 + bl MOD85_021DAEF4 + mov r2, #0x2c + str r2, [r4] + ldr r1, [r4, #0x60] + cmp r1, #0 + bne _021D8DDA + mov r0, #0x3c + str r0, [r4] + mov r0, #0x3f + str r0, [r4, #4] + b _021D8DF4 +_021D8DDA: + cmp r1, #1 + bge _021D8DE8 + mov r0, #0x3c + str r0, [r4] + mov r0, #0x3f + str r0, [r4, #4] + b _021D8DF4 +_021D8DE8: + ldr r0, _021D8DF8 ; =0x0000C350 + cmp r1, r0 + blt _021D8DF4 + mov r0, #0x3d + str r0, [r4] + str r2, [r4, #4] +_021D8DF4: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021D8DF8: .word 0x0000C350 + thumb_func_end MOD85_021D8D88 + + thumb_func_start MOD85_021D8DFC +MOD85_021D8DFC: ; 0x021D8DFC + push {r4, lr} + add r4, r0, #0 + mov r0, #8 + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D8E12 + mov r0, #0x3f + str r0, [r4] + mov r0, #0 + pop {r4, pc} +_021D8E12: + mov r0, #1 + lsl r0, r0, #0xa + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D8E58 + ldr r0, [r4, #0x60] + sub r0, r0, #1 + str r0, [r4, #0x60] + ldr r0, [r4, #0x14] + sub r0, r0, #1 + str r0, [r4, #0x14] + ldr r0, _021D8E5C ; =0x0000045C + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r0, [r4, #0x14] + cmp r0, #0 + bge _021D8E3C + mov r0, #0 + str r0, [r4, #0x14] +_021D8E3C: + mov r0, #0x2d + str r0, [r4] + ldr r0, _021D8E60 ; =0x000005ED + bl FUN_020054C8 + add r0, r4, #0 + bl MOD85_021DB9A0 + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DB714 + mov r0, #0 + pop {r4, pc} +_021D8E58: + mov r0, #0 + pop {r4, pc} + .align 2, 0 +_021D8E5C: .word 0x0000045C +_021D8E60: .word 0x000005ED + thumb_func_end MOD85_021D8DFC + + thumb_func_start MOD85_021D8E64 +MOD85_021D8E64: ; 0x021D8E64 + push {r4, lr} + add r4, r0, #0 + mov r0, #8 + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D8E80 + ldr r0, [r4, #0x60] + add r0, r0, #1 + str r0, [r4, #0x60] + mov r0, #0x3f + str r0, [r4] + mov r0, #0 + pop {r4, pc} +_021D8E80: + mov r0, #0x12 + lsl r0, r0, #6 + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D8E94 + mov r0, #0x2e + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D8E94: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D8E64 + + thumb_func_start MOD85_021D8E98 +MOD85_021D8E98: ; 0x021D8E98 + push {r4, lr} + mov r2, #0x46 + add r4, r0, #0 + lsl r2, r2, #4 + ldr r1, [r4, r2] + add r1, r1, #1 + str r1, [r4, r2] + add r1, r2, #0 + add r1, #0xc + ldr r1, [r4, r1] + add r2, #0xc + add r1, r1, #1 + str r1, [r4, r2] + mov r1, #1 + str r1, [r4, #0x74] + str r1, [r4, #0x30] + str r1, [r4, #0x70] + mov r1, #0 + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DC094 + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DB714 + add r0, r4, #0 + mov r1, #0 + bl MOD85_021D9338 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021D9338 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021D9338 + add r0, r4, #0 + bl MOD85_021DBFA4 + add r0, r4, #0 + bl MOD85_021DAD0C + mov r1, #1 + add r0, r4, #0 + str r1, [r4, #0x7c] + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + add r0, #0x84 + str r1, [r0] + mov r0, #0 + str r0, [r4, #0x6c] + mov r0, #0x2f + str r0, [r4] + ldr r0, _021D8F80 ; =0x000005EE + bl FUN_020054C8 + ldr r0, [r4, #0x24] + cmp r0, #0 + bne _021D8F4C + ldr r0, [r4, #0x28] + cmp r0, #0 + bne _021D8F4C + add r0, r4, #0 + bl MOD85_021DAC20 + cmp r0, #1 + bne _021D8F3E + mov r0, #1 + str r0, [r4, #0x28] + mov r0, #0x13 + lsl r0, r0, #6 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] +_021D8F3E: + ldr r0, [r4, #0x28] + cmp r0, #1 + bne _021D8F4C + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DBB54 +_021D8F4C: + ldr r0, [r4, #0x24] + cmp r0, #0 + bne _021D8F7C + ldr r0, [r4, #0x28] + cmp r0, #0 + bne _021D8F7C + add r0, r4, #0 + bl MOD85_021DABFC + cmp r0, #1 + bne _021D8F6E + mov r0, #1 + str r0, [r4, #0x24] + ldr r0, _021D8F84 ; =0x000004BC + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] +_021D8F6E: + ldr r0, [r4, #0x24] + cmp r0, #1 + bne _021D8F7C + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DBB54 +_021D8F7C: + mov r0, #1 + pop {r4, pc} + .align 2, 0 +_021D8F80: .word 0x000005EE +_021D8F84: .word 0x000004BC + thumb_func_end MOD85_021D8E98 + + thumb_func_start MOD85_021D8F88 +MOD85_021D8F88: ; 0x021D8F88 + push {r3, lr} + mov r1, #1 + ldr r2, [r0, #0x6c] + lsl r1, r1, #0xc + add r2, r2, r1 + lsl r1, r1, #3 + str r2, [r0, #0x6c] + cmp r2, r1 + blt _021D8FAC + mov r1, #0 + str r1, [r0, #0x6c] + mov r1, #0x30 + str r1, [r0] + mov r1, #6 + bl MOD85_021DAEF4 + mov r0, #1 + pop {r3, pc} +_021D8FAC: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD85_021D8F88 + + thumb_func_start MOD85_021D8FB0 +MOD85_021D8FB0: ; 0x021D8FB0 + push {r4, lr} + ldr r1, _021D90A8 ; =0x021C48B8 + add r4, r0, #0 + ldr r2, [r1, #0x48] + ldr r1, [r4, #0x7c] + cmp r1, #1 + bne _021D8FF8 + mov r1, #2 + lsl r1, r1, #0xa + add r3, r2, #0 + tst r3, r1 + beq _021D8FF8 + mov r2, #2 + str r2, [r4, #0x7c] + bl MOD85_021DBFB4 + add r0, r4, #0 + bl MOD85_021DC01C + cmp r0, #0 + bne _021D8FE0 + mov r0, #0 + str r0, [r4, #0x70] + str r0, [r4, #0x30] +_021D8FE0: + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DC050 + add r0, r4, #0 + mov r1, #0 + bl MOD85_021D9350 + ldr r0, _021D90AC ; =0x000005F5 + bl FUN_020054C8 + b _021D9084 +_021D8FF8: + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #1 + bne _021D903E + mov r1, #2 + add r0, r2, #0 + tst r0, r1 + beq _021D903E + add r0, r4, #0 + add r0, #0x80 + str r1, [r0] + add r0, r4, #0 + bl MOD85_021DBFB4 + add r0, r4, #0 + bl MOD85_021DC01C + cmp r0, #0 + bne _021D9026 + mov r0, #0 + str r0, [r4, #0x70] + str r0, [r4, #0x30] +_021D9026: + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DC050 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021D9350 + ldr r0, _021D90AC ; =0x000005F5 + bl FUN_020054C8 + b _021D9084 +_021D903E: + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #1 + bne _021D9084 + mov r1, #1 + add r0, r2, #0 + tst r0, r1 + beq _021D9084 + add r0, r4, #0 + mov r2, #2 + add r0, #0x84 + str r2, [r0] + add r0, r4, #0 + bl MOD85_021DBFB4 + add r0, r4, #0 + bl MOD85_021DC01C + cmp r0, #0 + bne _021D906E + mov r0, #0 + str r0, [r4, #0x70] + str r0, [r4, #0x30] +_021D906E: + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DC050 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021D9350 + ldr r0, _021D90AC ; =0x000005F5 + bl FUN_020054C8 +_021D9084: + ldr r0, [r4, #0x7c] + cmp r0, #2 + bne _021D90A2 + add r0, r4, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #2 + bne _021D90A2 + add r0, r4, #0 + add r0, #0x84 + ldr r0, [r0] + cmp r0, #2 + bne _021D90A2 + mov r0, #0x31 + str r0, [r4] +_021D90A2: + mov r0, #0 + pop {r4, pc} + nop +_021D90A8: .word 0x021C48B8 +_021D90AC: .word 0x000005F5 + thumb_func_end MOD85_021D8FB0 + + thumb_func_start MOD85_021D90B0 +MOD85_021D90B0: ; 0x021D90B0 + push {r4, lr} + mov r1, #0 + add r4, r0, #0 + bl MOD85_021D9360 + cmp r0, #1 + beq _021D90D6 + add r0, r4, #0 + mov r1, #1 + bl MOD85_021D9360 + cmp r0, #1 + beq _021D90D6 + add r0, r4, #0 + mov r1, #2 + bl MOD85_021D9360 + cmp r0, #1 + bne _021D90DA +_021D90D6: + mov r0, #0 + pop {r4, pc} +_021D90DA: + add r0, r4, #0 + bl MOD85_021DB754 + mov r0, #0x32 + str r0, [r4] + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD85_021D90B0 + + thumb_func_start MOD85_021D90E8 +MOD85_021D90E8: ; 0x021D90E8 + push {r4, lr} + add r4, r0, #0 + add r2, r4, #0 + ldr r1, [r4, #0x74] + add r2, #0x48 + bl MOD85_021DBF48 + str r0, [r4, #0x44] + cmp r0, #6 + ldr r0, [r4, #0x28] + bne _021D910E + cmp r0, #1 + bne _021D9106 + mov r0, #3 + str r0, [r4, #0x28] +_021D9106: + mov r0, #0x33 + str r0, [r4] + mov r0, #1 + pop {r4, pc} +_021D910E: + cmp r0, #1 + bne _021D9116 + mov r0, #2 + str r0, [r4, #0x28] +_021D9116: + mov r0, #0x34 + str r0, [r4] + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D90E8 + + thumb_func_start MOD85_021D9120 +MOD85_021D9120: ; 0x021D9120 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DB754 + add r0, r4, #0 + mov r1, #7 + bl MOD85_021DAEF4 + ldr r0, [r4, #0x10] + cmp r0, #1 + bgt _021D913A + mov r0, #0x36 + b _021D913C +_021D913A: + mov r0, #0x2b +_021D913C: + str r0, [r4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D9120 + + thumb_func_start MOD85_021D9144 +MOD85_021D9144: ; 0x021D9144 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x44] + lsl r2, r1, #2 + ldr r1, _021D9170 ; =0x021DFC4C + ldr r3, [r1, r2] + ldr r1, _021D9174 ; =0x00000458 + str r3, [r4, #0x64] + ldr r2, [r4, r1] + add r2, r2, r3 + str r2, [r4, r1] + bl MOD85_021DAD54 + add r0, r4, #0 + mov r1, #0xa + bl MOD85_021DAEF4 + mov r0, #0 + str r0, [r4, #0x6c] + mov r1, #0x35 + str r1, [r4] + pop {r4, pc} + .align 2, 0 +_021D9170: .word 0x021DFC4C +_021D9174: .word 0x00000458 + thumb_func_end MOD85_021D9144 + + thumb_func_start MOD85_021D9178 +MOD85_021D9178: ; 0x021D9178 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DAD68 + cmp r0, #0 + bne _021D9188 + mov r0, #0 + pop {r4, pc} +_021D9188: + add r0, r4, #0 + mov r1, #7 + bl MOD85_021DAEF4 + ldr r0, [r4, #0x10] + cmp r0, #1 + bgt _021D919A + mov r0, #0x36 + b _021D919C +_021D919A: + mov r0, #0x2b +_021D919C: + str r0, [r4] + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D9178 + + thumb_func_start MOD85_021D91A4 +MOD85_021D91A4: ; 0x021D91A4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x10] + sub r0, r0, #1 + str r0, [r4, #0x10] + beq _021D91B4 + bl ErrorHandling +_021D91B4: + ldr r0, [r4, #0x2c] + cmp r0, #1 + bne _021D91D0 + ldr r0, [r4, #0x24] + cmp r0, #0 + bne _021D91D0 + add r0, r4, #0 + mov r1, #8 + bl MOD85_021DAEF4 + mov r0, #0x3a + str r0, [r4] + mov r0, #0 + pop {r4, pc} +_021D91D0: + mov r0, #0x37 + str r0, [r4] + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD85_021D91A4 + + thumb_func_start MOD85_021D91D8 +MOD85_021D91D8: ; 0x021D91D8 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DAC58 + add r0, r4, #0 + bl MOD85_021DACAC + ldr r1, [r4, #0x24] + cmp r1, #1 + bne _021D91EE + mov r0, #2 +_021D91EE: + cmp r0, #2 + bne _021D9202 + add r0, r4, #0 + mov r1, #5 + bl MOD85_021DAEF4 + mov r0, #0x38 + str r0, [r4] + mov r0, #0 + pop {r4, pc} +_021D9202: + cmp r0, #1 + bne _021D9216 + add r0, r4, #0 + mov r1, #0xc + bl MOD85_021DAEF4 + mov r0, #0x39 + str r0, [r4] + mov r0, #0 + pop {r4, pc} +_021D9216: + mov r0, #0x23 + bl FUN_02005578 + mov r0, #0x2a + str r0, [r4] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D91D8 + + thumb_func_start MOD85_021D9224 +MOD85_021D9224: ; 0x021D9224 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DAF08 + cmp r0, #0 + bne _021D9234 + mov r0, #0 + pop {r4, pc} +_021D9234: + mov r0, #0x2a + str r0, [r4] + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD85_021D9224 + + thumb_func_start MOD85_021D923C +MOD85_021D923C: ; 0x021D923C + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DAF08 + cmp r0, #0 + bne _021D924C + mov r0, #0 + pop {r4, pc} +_021D924C: + mov r0, #0x2a + str r0, [r4] + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD85_021D923C + + thumb_func_start MOD85_021D9254 +MOD85_021D9254: ; 0x021D9254 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DAF08 + cmp r0, #0 + bne _021D9264 + mov r0, #0 + pop {r4, pc} +_021D9264: + ldr r1, [r4, #0x1c] + ldr r0, [r4, #0x20] + cmp r1, r0 + bls _021D926E + str r1, [r4, #0x20] +_021D926E: + add r0, r4, #0 + mov r1, #0 + bl MOD85_021D7FF4 + add r0, r4, #0 + bl MOD85_021DBB30 + mov r0, #0 + str r0, [r4] + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD85_021D9254 + + thumb_func_start MOD85_021D9284 +MOD85_021D9284: ; 0x021D9284 + push {r4, lr} + mov r1, #0 + add r4, r0, #0 + bl MOD85_021D7BEC + mov r0, #0x3e + str r0, [r4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D9284 + + thumb_func_start MOD85_021D9298 +MOD85_021D9298: ; 0x021D9298 + push {r4, lr} + mov r1, #2 + add r4, r0, #0 + bl MOD85_021D7BEC + mov r0, #0x3e + str r0, [r4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D9298 + + thumb_func_start MOD85_021D92AC +MOD85_021D92AC: ; 0x021D92AC + push {r4, lr} + mov r1, #1 + add r4, r0, #0 + bl MOD85_021D7BEC + mov r0, #0x3e + str r0, [r4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021D92AC + + thumb_func_start MOD85_021D92C0 +MOD85_021D92C0: ; 0x021D92C0 + push {r4, lr} + add r4, r0, #0 + mov r0, #3 + bl MOD85_021DBD54 + cmp r0, #0 + beq _021D92D8 + add r0, r4, #0 + bl MOD85_021D7C44 + ldr r0, [r4, #4] + str r0, [r4] +_021D92D8: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021D92C0 + + thumb_func_start MOD85_021D92DC +MOD85_021D92DC: ; 0x021D92DC + push {r3, lr} + bl MOD85_021DB9A0 + mov r0, #2 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021D92DC + + thumb_func_start MOD85_021D92E8 +MOD85_021D92E8: ; 0x021D92E8 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r5, r7, #0 + add r5, #0xb4 + mov r4, #0 + add r6, r5, #0 +_021D92F4: + mov r0, #0 + str r0, [r5] + add r2, r4, #0 + str r4, [r5, #0x10] + ldr r0, _021D9318 ; =MOD85_021D936C + add r1, r6, #0 + add r2, #0x81 + str r7, [r5, #0x20] + bl FUN_0200CA44 + str r0, [r5, #0x1c] + add r4, r4, #1 + add r5, #0x24 + add r6, #0x24 + cmp r4, #3 + blo _021D92F4 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D9318: .word MOD85_021D936C + thumb_func_end MOD85_021D92E8 + + thumb_func_start MOD85_021D931C +MOD85_021D931C: ; 0x021D931C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021D9322: + add r0, r5, #0 + add r0, #0xd0 + ldr r0, [r0] + bl FUN_0200CAB4 + add r4, r4, #1 + add r5, #0x24 + cmp r4, #3 + blo _021D9322 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021D931C + + thumb_func_start MOD85_021D9338 +MOD85_021D9338: ; 0x021D9338 + mov r2, #0x24 + add r3, r1, #0 + mul r3, r2 + add r1, r0, r3 + add r0, r0, r3 + mov r2, #1 + add r1, #0xb4 + str r2, [r1] + add r0, #0xb8 + str r2, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD85_021D9338 + + thumb_func_start MOD85_021D9350 +MOD85_021D9350: ; 0x021D9350 + mov r2, #0x24 + mul r2, r1 + add r0, r0, r2 + mov r3, #2 + add r0, #0xb4 + str r3, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD85_021D9350 + + thumb_func_start MOD85_021D9360 +MOD85_021D9360: ; 0x021D9360 + mov r2, #0x24 + mul r2, r1 + add r0, r0, r2 + add r0, #0xb8 + ldr r0, [r0] + bx lr + thumb_func_end MOD85_021D9360 + + thumb_func_start MOD85_021D936C +MOD85_021D936C: ; 0x021D936C + push {r4, r5, r6, lr} + add r5, r1, #0 + ldr r4, [r5, #0x20] + ldr r6, _021D9388 ; =0x021DEE20 +_021D9374: + ldr r2, [r5] + add r0, r5, #0 + lsl r2, r2, #2 + ldr r2, [r6, r2] + add r1, r4, #0 + blx r2 + cmp r0, #1 + beq _021D9374 + pop {r4, r5, r6, pc} + nop +_021D9388: .word 0x021DEE20 + thumb_func_end MOD85_021D936C + + thumb_func_start MOD85_021D938C +MOD85_021D938C: ; 0x021D938C + mov r0, #0 + bx lr + thumb_func_end MOD85_021D938C + + thumb_func_start MOD85_021D9390 +MOD85_021D9390: ; 0x021D9390 + push {r3, lr} + add r2, r0, #0 + add r0, r1, #0 + ldr r1, [r2, #0x10] + add r2, r0, #0 + add r2, #0x8c + ldr r2, [r2] + bl MOD85_021DA744 + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021D9390 + + thumb_func_start MOD85_021D93A8 +MOD85_021D93A8: ; 0x021D93A8 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r2, [r5] + add r4, r1, #0 + add r2, r2, #1 + str r2, [r5] + mov r2, #0 + str r2, [r5, #0x14] + str r2, [r5, #0x18] + ldr r2, [r4, #0x30] + cmp r2, #1 + ldr r2, [r4, #8] + bne _021D93F2 + cmp r2, #0 + bne _021D93DC + bl MOD85_021D94E4 + cmp r0, #0 + bne _021D9400 + add r0, r5, #0 + add r1, r4, #0 + bl MOD85_021D9EDC + mov r0, #0 + str r0, [r4, #0x30] + b _021D9400 +_021D93DC: + bl MOD85_021D951C + cmp r0, #0 + bne _021D9400 + add r0, r5, #0 + add r1, r4, #0 + bl MOD85_021D9F8C + mov r0, #0 + str r0, [r4, #0x30] + b _021D9400 +_021D93F2: + cmp r2, #0 + bne _021D93FC + bl MOD85_021D9EDC + b _021D9400 +_021D93FC: + bl MOD85_021D9F8C +_021D9400: + mov r0, #1 + pop {r3, r4, r5, pc} + thumb_func_end MOD85_021D93A8 + + thumb_func_start MOD85_021D9404 +MOD85_021D9404: ; 0x021D9404 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r0, #0 + add r3, r1, #0 + ldr r1, [r5, #0x10] + add r7, r3, #0 + lsl r0, r1, #2 + add r7, #0x90 + str r0, [sp] + ldr r0, [r7, r0] + mov r4, #0 + lsr r6, r0, #0x1f + lsl r2, r0, #0xf + sub r2, r2, r6 + mov r0, #0xf + ror r2, r0 + add r0, r6, r2 + beq _021D943E + add r2, r3, #0 + add r2, #0x8c + ldr r2, [r2] + mov r4, #1 + cmp r0, r2 + bge _021D9436 + add r2, r0, #0 +_021D9436: + add r0, r3, #0 + bl MOD85_021DA780 + b _021D9464 +_021D943E: + ldr r2, [r5, #0x18] + cmp r2, #0 + beq _021D9464 + sub r0, r2, #1 + str r0, [r5, #0x18] + add r0, r3, #0 + add r3, #0x8c + ldr r2, [r3] + mov r4, #1 + bl MOD85_021DA744 + ldr r0, [sp] + ldr r0, [r7, r0] + lsr r2, r0, #0x1f + lsl r1, r0, #0xf + sub r1, r1, r2 + mov r0, #0xf + ror r1, r0 + add r0, r2, r1 +_021D9464: + cmp r0, #0 + bne _021D94A0 + ldr r6, [r5, #0x18] + cmp r6, #0 + bne _021D94A0 + ldr r3, _021D94A8 ; =0x021DEE34 + add r2, sp, #4 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + cmp r6, #4 + str r0, [r2] + ble _021D9484 + mov r6, #4 +_021D9484: + lsl r1, r6, #2 + add r0, sp, #4 + ldr r0, [r0, r1] + str r0, [r5, #8] + mov r0, #0 + str r0, [r5, #0xc] + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + cmp r4, #0 + bne _021D94A0 + add sp, #0x18 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D94A0: + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + nop +_021D94A8: .word 0x021DEE34 + thumb_func_end MOD85_021D9404 + + thumb_func_start MOD85_021D94AC +MOD85_021D94AC: ; 0x021D94AC + push {r3, r4} + ldr r2, [r0, #0x10] + ldr r3, [r0, #8] + add r1, #0x9c + lsl r2, r2, #2 + str r3, [r1, r2] + ldr r3, [r0, #8] + neg r3, r3 + str r3, [r0, #8] + ldr r3, [r0, #0xc] + add r4, r3, #1 + mov r3, #1 + str r4, [r0, #0xc] + tst r3, r4 + bne _021D94D0 + ldr r3, [r0, #8] + asr r3, r3, #2 + str r3, [r0, #8] +_021D94D0: + ldr r3, [r0, #8] + cmp r3, #0 + bne _021D94DE + mov r3, #0 + str r3, [r0] + str r3, [r0, #4] + str r3, [r1, r2] +_021D94DE: + mov r0, #0 + pop {r3, r4} + bx lr + thumb_func_end MOD85_021D94AC + + thumb_func_start MOD85_021D94E4 +MOD85_021D94E4: ; 0x021D94E4 + push {r3, lr} + ldr r2, [r1, #0x74] + cmp r2, #0 + bne _021D94F0 + mov r0, #0 + pop {r3, pc} +_021D94F0: + ldr r2, [r0, #0x10] + cmp r2, #0 + beq _021D9500 + cmp r2, #1 + beq _021D9506 + cmp r2, #2 + beq _021D950C + b _021D9512 +_021D9500: + bl MOD85_021D953C + pop {r3, pc} +_021D9506: + bl MOD85_021D9578 + pop {r3, pc} +_021D950C: + bl MOD85_021D95B4 + pop {r3, pc} +_021D9512: + bl ErrorHandling + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021D94E4 + + thumb_func_start MOD85_021D951C +MOD85_021D951C: ; 0x021D951C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x74] + cmp r0, #0 + bne _021D952C + mov r0, #0 + pop {r3, r4, r5, pc} +_021D952C: + bl MOD85_021DBD74 + add r2, r0, #0 + add r0, r5, #0 + add r1, r4, #0 + bl MOD85_021D9E94 + pop {r3, r4, r5, pc} + thumb_func_end MOD85_021D951C + + thumb_func_start MOD85_021D953C +MOD85_021D953C: ; 0x021D953C + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x74] + bl MOD85_021DBD74 + add r6, r0, #0 + cmp r6, #6 + bne _021D9552 + mov r0, #0 + pop {r4, r5, r6, pc} +_021D9552: + add r0, r5, #0 + add r1, r4, #0 + bl MOD85_021DA058 + cmp r0, #1 + bne _021D956A + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD85_021D95F0 + pop {r4, r5, r6, pc} +_021D956A: + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD85_021D9708 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD85_021D953C + + thumb_func_start MOD85_021D9578 +MOD85_021D9578: ; 0x021D9578 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x74] + bl MOD85_021DBD74 + add r6, r0, #0 + cmp r6, #6 + bne _021D958E + mov r0, #0 + pop {r4, r5, r6, pc} +_021D958E: + add r0, r5, #0 + add r1, r4, #0 + bl MOD85_021DA058 + cmp r0, #1 + bne _021D95A6 + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD85_021D9A48 + pop {r4, r5, r6, pc} +_021D95A6: + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD85_021D9AF0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD85_021D9578 + + thumb_func_start MOD85_021D95B4 +MOD85_021D95B4: ; 0x021D95B4 + push {r4, r5, r6, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x74] + bl MOD85_021DBD74 + add r6, r0, #0 + cmp r6, #6 + bne _021D95CA + mov r0, #0 + pop {r4, r5, r6, pc} +_021D95CA: + add r0, r5, #0 + add r1, r4, #0 + bl MOD85_021DA058 + cmp r0, #1 + bne _021D95E2 + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD85_021D9A48 + pop {r4, r5, r6, pc} +_021D95E2: + add r0, r5, #0 + add r1, r4, #0 + add r2, r6, #0 + bl MOD85_021D9AF0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD85_021D95B4 + + thumb_func_start MOD85_021D95F0 +MOD85_021D95F0: ; 0x021D95F0 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + str r0, [sp] + ldr r0, [r0, #0x10] + add r4, r1, #0 + add r6, r2, #0 + str r0, [sp, #8] + mov r7, #1 +_021D9600: + ldr r1, [sp, #8] + add r0, r4, #0 + add r2, r7, #0 + bl MOD85_021DBD30 + cmp r6, r0 + bne _021D9638 + mov r5, #0 + cmp r7, #3 + bgt _021D9638 +_021D9614: + add r0, r4, #0 + add r1, r5, #0 + add r2, r6, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D9630 + ldr r0, [sp] + add r1, r7, r5 + str r1, [r0, #0x14] + str r5, [r0, #0x18] + add sp, #0x14 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021D9630: + add r5, r5, #1 + add r0, r7, r5 + cmp r0, #3 + ble _021D9614 +_021D9638: + add r7, r7, #1 + cmp r7, #3 + ble _021D9600 + mov r0, #4 + str r0, [sp, #0x10] + ldr r0, [r4, #0x70] + cmp r0, #1 + bne _021D964C + mov r0, #0x15 + str r0, [sp, #0x10] +_021D964C: + add r0, r4, #0 + add r0, #0xa8 + ldr r0, [r0] + mov r7, #1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x10] + cmp r0, #1 + blt _021D9700 +_021D965C: + mov r2, #1 + ldr r1, [sp, #8] + add r0, r4, #0 + sub r2, r2, r7 + bl MOD85_021DBD30 + cmp r6, r0 + bne _021D96F8 + mov r5, #0 +_021D966E: + add r0, r7, r5 + str r0, [sp, #4] + ldr r1, [sp, #4] + add r0, r4, #0 + add r2, r6, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D96F2 + cmp r5, #0 + bne _021D96B4 + ldr r0, [sp, #0xc] + ldr r1, [sp, #0xc] + lsr r0, r0, #0x1f + lsl r2, r1, #0x1e + sub r2, r2, r0 + mov r1, #0x1e + ror r2, r1 + add r0, r0, r2 + bne _021D96E2 + add r0, r4, #0 + add r1, r7, #2 + add r2, r6, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D96E2 + ldr r0, [sp] + mov r1, #3 + str r1, [r0, #0x14] + add r1, r7, #2 + str r1, [r0, #0x18] + add sp, #0x14 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021D96B4: + cmp r5, #1 + bne _021D96E2 + ldr r0, [sp, #0xc] + mov r1, #6 + bl _s32_div_f + cmp r1, #2 + bge _021D96E2 + add r0, r4, #0 + add r1, r7, #2 + add r2, r6, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D96E2 + ldr r0, [sp] + mov r1, #3 + str r1, [r0, #0x14] + add r1, r7, #2 + str r1, [r0, #0x18] + add sp, #0x14 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021D96E2: + ldr r0, [sp] + add r1, r5, #1 + str r1, [r0, #0x14] + ldr r1, [sp, #4] + add sp, #0x14 + str r1, [r0, #0x18] + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021D96F2: + add r5, r5, #1 + cmp r5, #3 + blt _021D966E +_021D96F8: + ldr r0, [sp, #0x10] + add r7, r7, #1 + cmp r7, r0 + ble _021D965C +_021D9700: + mov r0, #0 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021D95F0 + + thumb_func_start MOD85_021D9708 +MOD85_021D9708: ; 0x021D9708 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r4, r2, #0 + add r2, r0, #0 + ldr r7, [r2, #0x10] + add r2, sp, #0xc + str r2, [sp] + add r2, sp, #0x14 + add r3, sp, #0x10 + str r0, [sp, #4] + add r5, r1, #0 + bl MOD85_021DA0A8 + cmp r0, #0 + bne _021D972C + add sp, #0x18 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D972C: + add r0, r5, #0 + mov r1, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D979C + ldr r2, [sp, #0x14] + add r0, r5, #0 + add r1, r7, #0 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D9758 + ldr r1, [sp, #0x14] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + mov r1, #0 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9758: + ldr r2, [sp, #0x10] + cmp r2, #0 + beq _021D977A + add r0, r5, #0 + add r1, r7, #0 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D977A + ldr r1, [sp, #0x10] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + mov r1, #0 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D977A: + ldr r2, [sp, #0xc] + cmp r2, #0 + beq _021D979C + add r0, r5, #0 + add r1, r7, #0 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D979C + ldr r1, [sp, #0xc] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + mov r1, #0 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D979C: + mov r0, #4 + str r0, [sp, #8] + ldr r0, [r5, #0x70] + cmp r0, #1 + bne _021D97AA + mov r0, #0x15 + str r0, [sp, #8] +_021D97AA: + ldr r0, [sp, #0x10] + cmp r0, #0 + bne _021D97F2 + ldr r0, [sp, #8] + mov r6, #1 + cmp r0, #1 + blt _021D97EC +_021D97B8: + ldr r2, [sp, #0x14] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D97E4 + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D97E4 + ldr r1, [sp, #0x14] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D97E4: + ldr r0, [sp, #8] + add r6, r6, #1 + cmp r6, r0 + ble _021D97B8 +_021D97EC: + add sp, #0x18 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D97F2: + ldr r0, [sp, #0xc] + cmp r0, #0 + bne _021D98C4 + ldr r0, [sp, #8] + mov r6, #1 + cmp r0, #1 + blt _021D98BE +_021D9800: + mov r0, #1 + tst r0, r6 + beq _021D985E + ldr r2, [sp, #0x14] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D9832 + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D9832 + ldr r1, [sp, #0x14] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9832: + ldr r2, [sp, #0x10] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D98B6 + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D98B6 + ldr r1, [sp, #0x10] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D985E: + ldr r2, [sp, #0x10] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D988A + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D988A + ldr r1, [sp, #0x10] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D988A: + ldr r2, [sp, #0x14] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D98B6 + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D98B6 + ldr r1, [sp, #0x14] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D98B6: + ldr r0, [sp, #8] + add r6, r6, #1 + cmp r6, r0 + ble _021D9800 +_021D98BE: + add sp, #0x18 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D98C4: + ldr r0, [sp, #8] + mov r6, #1 + cmp r0, #1 + bge _021D98CE + b _021D9A42 +_021D98CE: + mov r0, #3 + and r0, r6 + bne _021D9958 + ldr r2, [sp, #0x14] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D9900 + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D9900 + ldr r1, [sp, #0x14] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9900: + ldr r2, [sp, #0x10] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D992C + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D992C + ldr r1, [sp, #0x10] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D992C: + ldr r2, [sp, #0xc] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D9A38 + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D9A38 + ldr r1, [sp, #0xc] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9958: + cmp r0, #1 + bne _021D99B4 + ldr r2, [sp, #0x10] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D9988 + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D9988 + ldr r1, [sp, #0x10] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9988: + ldr r2, [sp, #0x14] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D9A38 + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D9A38 + ldr r1, [sp, #0x14] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D99B4: + ldr r2, [sp, #0xc] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D99E0 + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D99E0 + ldr r1, [sp, #0xc] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D99E0: + ldr r2, [sp, #0x14] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D9A0C + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D9A0C + ldr r1, [sp, #0x14] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9A0C: + ldr r2, [sp, #0x10] + add r0, r5, #0 + add r1, r7, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + cmp r4, r0 + bne _021D9A38 + add r0, r5, #0 + add r1, r6, #0 + add r2, r4, #0 + bl MOD85_021DA290 + cmp r0, #1 + bne _021D9A38 + ldr r1, [sp, #0x10] + ldr r0, [sp, #4] + add sp, #0x18 + str r1, [r0, #0x14] + str r6, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9A38: + ldr r0, [sp, #8] + add r6, r6, #1 + cmp r6, r0 + bgt _021D9A42 + b _021D98CE +_021D9A42: + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021D9708 + + thumb_func_start MOD85_021D9A48 +MOD85_021D9A48: ; 0x021D9A48 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + ldr r7, [r0, #0x10] + str r0, [sp] + add r4, r1, #0 + add r6, r2, #0 + mov r5, #1 +_021D9A56: + add r0, r4, #0 + add r1, r7, #0 + add r2, r5, #0 + bl MOD85_021DBD30 + cmp r6, r0 + bne _021D9A72 + ldr r0, [sp] + mov r1, #0 + str r5, [r0, #0x14] + str r1, [r0, #0x18] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9A72: + add r5, r5, #1 + cmp r5, #3 + ble _021D9A56 + mov r0, #4 + str r0, [sp, #4] + ldr r0, [r4, #0x70] + cmp r0, #1 + bne _021D9A86 + mov r0, #0x15 + str r0, [sp, #4] +_021D9A86: + ldr r0, [sp, #4] + mov r5, #1 + cmp r0, #1 + blt _021D9AE8 +_021D9A8E: + mov r2, #1 + add r0, r4, #0 + add r1, r7, #0 + sub r2, r2, r5 + bl MOD85_021DBD30 + cmp r6, r0 + bne _021D9AE0 + lsr r2, r5, #0x1f + lsl r1, r5, #0x1e + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r0, r2, r1 + cmp r0, #1 + bne _021D9ABE + ldr r0, [sp] + mov r1, #3 + str r1, [r0, #0x14] + add r1, r5, #2 + str r1, [r0, #0x18] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9ABE: + sub r0, r0, #2 + cmp r0, #1 + bhi _021D9AD4 + ldr r0, [sp] + mov r1, #2 + str r1, [r0, #0x14] + add r1, r5, #1 + str r1, [r0, #0x18] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9AD4: + ldr r1, [sp] + mov r0, #1 + str r0, [r1, #0x14] + add sp, #8 + str r5, [r1, #0x18] + pop {r3, r4, r5, r6, r7, pc} +_021D9AE0: + ldr r0, [sp, #4] + add r5, r5, #1 + cmp r5, r0 + ble _021D9A8E +_021D9AE8: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021D9A48 + + thumb_func_start MOD85_021D9AF0 +MOD85_021D9AF0: ; 0x021D9AF0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x48 + add r5, r2, #0 + add r2, r0, #0 + ldr r7, [r2, #0x10] + add r2, sp, #0x3c + str r2, [sp] + add r2, sp, #0x44 + add r3, sp, #0x40 + str r0, [sp, #4] + add r6, r1, #0 + bl MOD85_021DA0A8 + cmp r0, #0 + bne _021D9B14 + add sp, #0x48 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D9B14: + ldr r2, [sp, #0x44] + add r0, r6, #0 + add r1, r7, #0 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9B32 + ldr r1, [sp, #0x44] + ldr r0, [sp, #4] + add sp, #0x48 + str r1, [r0, #0x14] + mov r1, #0 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9B32: + ldr r2, [sp, #0x40] + cmp r2, #0 + beq _021D9B54 + add r0, r6, #0 + add r1, r7, #0 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9B54 + ldr r1, [sp, #0x40] + ldr r0, [sp, #4] + add sp, #0x48 + str r1, [r0, #0x14] + mov r1, #0 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9B54: + ldr r2, [sp, #0x3c] + cmp r2, #0 + beq _021D9B76 + add r0, r6, #0 + add r1, r7, #0 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9B76 + ldr r1, [sp, #0x3c] + ldr r0, [sp, #4] + add sp, #0x48 + str r1, [r0, #0x14] + mov r1, #0 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9B76: + ldr r0, [r6, #0x70] + mov r4, #4 + cmp r0, #1 + bne _021D9B80 + mov r4, #0x15 +_021D9B80: + ldr r0, [sp, #0x40] + cmp r0, #0 + bne _021D9BC0 + mov r0, #1 + str r0, [sp, #0x38] + cmp r4, #1 + blt _021D9BBA +_021D9B8E: + ldr r3, [sp, #0x44] + ldr r2, [sp, #0x38] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9BB0 + ldr r1, [sp, #0x44] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #0x38] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9BB0: + ldr r0, [sp, #0x38] + add r0, r0, #1 + str r0, [sp, #0x38] + cmp r0, r4 + ble _021D9B8E +_021D9BBA: + add sp, #0x48 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D9BC0: + lsl r0, r7, #2 + add r0, r6, r0 + add r0, #0xa8 + ldr r1, [sp, #0x3c] + ldr r0, [r0] + cmp r1, #0 + bne _021D9CA6 + mov r1, #1 + str r1, [sp, #8] + tst r0, r1 + beq _021D9C3C + cmp r4, #1 + blt _021D9C06 +_021D9BDA: + ldr r3, [sp, #0x44] + ldr r2, [sp, #8] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9BFC + ldr r1, [sp, #0x44] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #8] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9BFC: + ldr r0, [sp, #8] + add r0, r0, #1 + str r0, [sp, #8] + cmp r0, r4 + ble _021D9BDA +_021D9C06: + mov r0, #1 + str r0, [sp, #0xc] + cmp r4, #1 + blt _021D9CA0 +_021D9C0E: + ldr r3, [sp, #0x40] + ldr r2, [sp, #0xc] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9C30 + ldr r1, [sp, #0x40] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #0xc] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9C30: + ldr r0, [sp, #0xc] + add r0, r0, #1 + str r0, [sp, #0xc] + cmp r0, r4 + ble _021D9C0E + b _021D9CA0 +_021D9C3C: + cmp r4, #1 + blt _021D9C6C +_021D9C40: + ldr r3, [sp, #0x40] + ldr r2, [sp, #8] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9C62 + ldr r1, [sp, #0x40] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #8] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9C62: + ldr r0, [sp, #8] + add r0, r0, #1 + str r0, [sp, #8] + cmp r0, r4 + ble _021D9C40 +_021D9C6C: + mov r0, #1 + str r0, [sp, #0x10] + cmp r4, #1 + blt _021D9CA0 +_021D9C74: + ldr r3, [sp, #0x44] + ldr r2, [sp, #0x10] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9C96 + ldr r1, [sp, #0x44] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #0x10] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9C96: + ldr r0, [sp, #0x10] + add r0, r0, #1 + str r0, [sp, #0x10] + cmp r0, r4 + ble _021D9C74 +_021D9CA0: + add sp, #0x48 + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_021D9CA6: + mov r1, #3 + bl _s32_div_f + cmp r1, #0 + bne _021D9D4E + mov r0, #1 + str r0, [sp, #0x14] + cmp r4, #1 + blt _021D9CE4 +_021D9CB8: + ldr r3, [sp, #0x44] + ldr r2, [sp, #0x14] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9CDA + ldr r1, [sp, #0x44] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #0x14] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9CDA: + ldr r0, [sp, #0x14] + add r0, r0, #1 + str r0, [sp, #0x14] + cmp r0, r4 + ble _021D9CB8 +_021D9CE4: + mov r0, #1 + str r0, [sp, #0x18] + cmp r4, #1 + blt _021D9D18 +_021D9CEC: + ldr r3, [sp, #0x40] + ldr r2, [sp, #0x18] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9D0E + ldr r1, [sp, #0x40] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #0x18] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9D0E: + ldr r0, [sp, #0x18] + add r0, r0, #1 + str r0, [sp, #0x18] + cmp r0, r4 + ble _021D9CEC +_021D9D18: + mov r0, #1 + str r0, [sp, #0x1c] + cmp r4, #1 + blt _021D9D4C +_021D9D20: + ldr r3, [sp, #0x3c] + ldr r2, [sp, #0x1c] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9D42 + ldr r1, [sp, #0x3c] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #0x1c] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9D42: + ldr r0, [sp, #0x1c] + add r0, r0, #1 + str r0, [sp, #0x1c] + cmp r0, r4 + ble _021D9D20 +_021D9D4C: + b _021D9E8C +_021D9D4E: + cmp r1, #1 + bne _021D9DF0 + mov r0, #1 + str r0, [sp, #0x20] + cmp r4, #1 + blt _021D9D86 +_021D9D5A: + ldr r3, [sp, #0x40] + ldr r2, [sp, #0x20] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9D7C + ldr r1, [sp, #0x40] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #0x20] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9D7C: + ldr r0, [sp, #0x20] + add r0, r0, #1 + str r0, [sp, #0x20] + cmp r0, r4 + ble _021D9D5A +_021D9D86: + mov r0, #1 + str r0, [sp, #0x24] + cmp r4, #1 + blt _021D9DBA +_021D9D8E: + ldr r3, [sp, #0x3c] + ldr r2, [sp, #0x24] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9DB0 + ldr r1, [sp, #0x3c] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #0x24] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9DB0: + ldr r0, [sp, #0x24] + add r0, r0, #1 + str r0, [sp, #0x24] + cmp r0, r4 + ble _021D9D8E +_021D9DBA: + mov r0, #1 + str r0, [sp, #0x28] + cmp r4, #1 + blt _021D9E8C +_021D9DC2: + ldr r3, [sp, #0x44] + ldr r2, [sp, #0x28] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9DE4 + ldr r1, [sp, #0x44] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #0x28] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9DE4: + ldr r0, [sp, #0x28] + add r0, r0, #1 + str r0, [sp, #0x28] + cmp r0, r4 + ble _021D9DC2 + b _021D9E8C +_021D9DF0: + mov r0, #1 + str r0, [sp, #0x2c] + cmp r4, #1 + blt _021D9E24 +_021D9DF8: + ldr r3, [sp, #0x3c] + ldr r2, [sp, #0x2c] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9E1A + ldr r1, [sp, #0x3c] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #0x2c] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9E1A: + ldr r0, [sp, #0x2c] + add r0, r0, #1 + str r0, [sp, #0x2c] + cmp r0, r4 + ble _021D9DF8 +_021D9E24: + mov r0, #1 + str r0, [sp, #0x30] + cmp r4, #1 + blt _021D9E58 +_021D9E2C: + ldr r3, [sp, #0x44] + ldr r2, [sp, #0x30] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9E4E + ldr r1, [sp, #0x44] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #0x30] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9E4E: + ldr r0, [sp, #0x30] + add r0, r0, #1 + str r0, [sp, #0x30] + cmp r0, r4 + ble _021D9E2C +_021D9E58: + mov r0, #1 + str r0, [sp, #0x34] + cmp r4, #1 + blt _021D9E8C +_021D9E60: + ldr r3, [sp, #0x40] + ldr r2, [sp, #0x34] + add r0, r6, #0 + add r1, r7, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + cmp r5, r0 + bne _021D9E82 + ldr r1, [sp, #0x40] + ldr r0, [sp, #4] + str r1, [r0, #0x14] + ldr r1, [sp, #0x34] + add sp, #0x48 + str r1, [r0, #0x18] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9E82: + ldr r0, [sp, #0x34] + add r0, r0, #1 + str r0, [sp, #0x34] + cmp r0, r4 + ble _021D9E60 +_021D9E8C: + mov r0, #0 + add sp, #0x48 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021D9AF0 + + thumb_func_start MOD85_021D9E94 +MOD85_021D9E94: ; 0x021D9E94 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + str r0, [sp] + ldr r0, [r0, #0x10] + add r6, r1, #0 + str r0, [sp, #4] + ldr r0, [r6, #0x70] + add r7, r2, #0 + mov r5, #4 + cmp r0, #1 + bne _021D9EAC + mov r5, #0x15 +_021D9EAC: + mov r4, #0 + cmp r5, #0 + blt _021D9ED6 +_021D9EB2: + mov r2, #2 + ldr r1, [sp, #4] + add r0, r6, #0 + sub r2, r2, r4 + bl MOD85_021DBD30 + cmp r7, r0 + bne _021D9ED0 + ldr r0, [sp] + mov r1, #2 + str r1, [r0, #0x14] + str r4, [r0, #0x18] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021D9ED0: + add r4, r4, #1 + cmp r4, r5 + ble _021D9EB2 +_021D9ED6: + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021D9E94 + + thumb_func_start MOD85_021D9EDC +MOD85_021D9EDC: ; 0x021D9EDC + push {r4, r5, r6, lr} + add r4, r1, #0 + add r6, r0, #0 + add r0, r4, #0 + bl MOD85_021DA040 + ldr r1, [r6, #0x10] + cmp r1, #0 + beq _021D9EF2 + cmp r0, #2 + blt _021D9F88 +_021D9EF2: + cmp r1, #0 + bne _021D9F18 + cmp r0, #2 + bge _021D9F18 + mov r5, #0 +_021D9EFC: + add r0, r4, #0 + add r1, r5, #0 + bl MOD85_021DA24C + cmp r0, #0 + bne _021D9F0C + str r5, [r6, #0x18] + pop {r4, r5, r6, pc} +_021D9F0C: + add r5, r5, #1 + cmp r5, #0x15 + ble _021D9EFC + bl ErrorHandling + pop {r4, r5, r6, pc} +_021D9F18: + cmp r1, #0 + beq _021D9F26 + cmp r1, #1 + beq _021D9F46 + cmp r1, #2 + beq _021D9F66 + b _021D9F84 +_021D9F26: + mov r5, #1 +_021D9F28: + add r0, r6, #0 + add r1, r4, #0 + add r2, r5, #0 + bl MOD85_021DA2AC + cmp r0, #0 + bne _021D9F3A + str r5, [r6, #0x18] + pop {r4, r5, r6, pc} +_021D9F3A: + add r5, r5, #1 + cmp r5, #0x15 + ble _021D9F28 + bl ErrorHandling + pop {r4, r5, r6, pc} +_021D9F46: + mov r5, #1 +_021D9F48: + add r0, r6, #0 + add r1, r4, #0 + add r2, r5, #0 + bl MOD85_021DA3F8 + cmp r0, #0 + bne _021D9F5A + str r5, [r6, #0x18] + pop {r4, r5, r6, pc} +_021D9F5A: + add r5, r5, #1 + cmp r5, #0x15 + ble _021D9F48 + bl ErrorHandling + b _021D9F84 +_021D9F66: + mov r5, #1 +_021D9F68: + add r0, r6, #0 + add r1, r4, #0 + add r2, r5, #0 + bl MOD85_021DA530 + cmp r0, #0 + bne _021D9F7A + str r5, [r6, #0x18] + pop {r4, r5, r6, pc} +_021D9F7A: + add r5, r5, #1 + cmp r5, #0x15 + ble _021D9F68 + bl ErrorHandling +_021D9F84: + bl ErrorHandling +_021D9F88: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD85_021D9EDC + + thumb_func_start MOD85_021D9F8C +MOD85_021D9F8C: ; 0x021D9F8C + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + add r6, r0, #0 + add r0, r4, #0 + bl MOD85_021DA040 + ldr r1, [r6, #0x10] + cmp r1, #0 + beq _021D9FA2 + cmp r0, #2 + blt _021DA03C +_021D9FA2: + cmp r1, #0 + bne _021D9FCA + cmp r0, #2 + bge _021D9FCA + mov r5, #0 + mov r7, #2 +_021D9FAE: + add r0, r4, #0 + mov r1, #0 + sub r2, r7, r5 + bl MOD85_021DBD30 + cmp r0, #3 + beq _021D9FC0 + str r5, [r6, #0x18] + pop {r3, r4, r5, r6, r7, pc} +_021D9FC0: + add r5, r5, #1 + cmp r5, #0x15 + blt _021D9FAE + bl ErrorHandling +_021D9FCA: + ldr r0, [r6, #0x10] + cmp r0, #0 + beq _021D9FDA + cmp r0, #1 + beq _021D9FFA + cmp r0, #2 + beq _021DA01A + b _021DA038 +_021D9FDA: + mov r5, #0 +_021D9FDC: + add r0, r6, #0 + add r1, r4, #0 + add r2, r5, #0 + bl MOD85_021DA668 + cmp r0, #0 + bne _021D9FEE + str r5, [r6, #0x18] + pop {r3, r4, r5, r6, r7, pc} +_021D9FEE: + add r5, r5, #1 + cmp r5, #0x15 + blt _021D9FDC + bl ErrorHandling + pop {r3, r4, r5, r6, r7, pc} +_021D9FFA: + mov r5, #0 +_021D9FFC: + add r0, r6, #0 + add r1, r4, #0 + add r2, r5, #0 + bl MOD85_021DA6B4 + cmp r0, #0 + bne _021DA00E + str r5, [r6, #0x18] + pop {r3, r4, r5, r6, r7, pc} +_021DA00E: + add r5, r5, #1 + cmp r5, #0x15 + ble _021D9FFC + bl ErrorHandling + pop {r3, r4, r5, r6, r7, pc} +_021DA01A: + mov r5, #0 +_021DA01C: + add r0, r6, #0 + add r1, r4, #0 + add r2, r5, #0 + bl MOD85_021DA6FC + cmp r0, #0 + bne _021DA02E + str r5, [r6, #0x18] + pop {r3, r4, r5, r6, r7, pc} +_021DA02E: + add r5, r5, #1 + cmp r5, #0x15 + ble _021DA01C + bl ErrorHandling +_021DA038: + bl ErrorHandling +_021DA03C: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021D9F8C + + thumb_func_start MOD85_021DA040 +MOD85_021DA040: ; 0x021DA040 + mov r2, #0 + add r3, r2, #0 +_021DA044: + ldr r1, [r0, #0x7c] + cmp r1, #1 + beq _021DA04C + add r3, r3, #1 +_021DA04C: + add r2, r2, #1 + add r0, r0, #4 + cmp r2, #3 + blt _021DA044 + add r0, r3, #0 + bx lr + thumb_func_end MOD85_021DA040 + + thumb_func_start MOD85_021DA058 +MOD85_021DA058: ; 0x021DA058 + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _021DA068 + cmp r0, #1 + beq _021DA07E + cmp r0, #2 + beq _021DA090 + b _021DA0A2 +_021DA068: + add r0, r1, #0 + add r0, #0x80 + ldr r0, [r0] + cmp r0, #1 + bne _021DA07A + add r1, #0x84 + ldr r0, [r1] + cmp r0, #1 + beq _021DA0A2 +_021DA07A: + mov r0, #0 + bx lr +_021DA07E: + ldr r0, [r1, #0x7c] + cmp r0, #1 + bne _021DA08C + add r1, #0x84 + ldr r0, [r1] + cmp r0, #1 + beq _021DA0A2 +_021DA08C: + mov r0, #0 + bx lr +_021DA090: + ldr r0, [r1, #0x7c] + cmp r0, #1 + bne _021DA09E + add r1, #0x80 + ldr r0, [r1] + cmp r0, #1 + beq _021DA0A2 +_021DA09E: + mov r0, #0 + bx lr +_021DA0A2: + mov r0, #1 + bx lr + .align 2, 0 + thumb_func_end MOD85_021DA058 + + thumb_func_start MOD85_021DA0A8 +MOD85_021DA0A8: ; 0x021DA0A8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + str r0, [sp] + add r5, r1, #0 + ldr r0, [sp, #0x20] + add r1, r3, #0 + str r0, [sp, #0x20] + add r0, r5, #0 + add r0, #0x80 + ldr r0, [r0] + ldr r7, [r5, #0x7c] + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0x84 + ldr r0, [r0] + mov r3, #0 + mov ip, r0 + add r0, r5, #0 + add r0, #0xc8 + ldr r4, [r0] + add r0, r5, #0 + add r0, #0xec + ldr r6, [r0] + mov r0, #0x11 + lsl r0, r0, #4 + ldr r5, [r5, r0] + ldr r0, [sp, #0x20] + str r3, [r2] + str r3, [r1] + str r3, [r0] + ldr r0, [sp] + ldr r0, [r0, #0x10] + cmp r0, #0 + beq _021DA0F6 + cmp r0, #1 + beq _021DA160 + cmp r0, #2 + beq _021DA1DC + b _021DA240 +_021DA0F6: + ldr r0, [sp, #4] + cmp r0, #1 + beq _021DA124 + mov r0, ip + cmp r0, #1 + beq _021DA124 + cmp r6, r5 + bne _021DA10E + add sp, #8 + str r6, [r2] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA10E: + cmp r5, #1 + bne _021DA11C + mov r0, #3 + str r0, [r2] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA11C: + mov r0, #1 + str r0, [r2] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_021DA124: + ldr r0, [sp, #4] + cmp r0, #1 + beq _021DA148 + cmp r6, #2 + bne _021DA140 + mov r0, #1 + str r0, [r2] + mov r2, #2 + str r2, [r1] + ldr r1, [sp, #0x20] + mov r2, #3 + str r2, [r1] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_021DA140: + add sp, #8 + str r6, [r2] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA148: + cmp r5, #2 + bne _021DA154 + add sp, #8 + str r5, [r2] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA154: + mov r0, #1 + str r0, [r2] + mov r2, #3 + str r2, [r1] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_021DA160: + cmp r7, #1 + beq _021DA180 + mov r0, ip + cmp r0, #1 + beq _021DA180 + cmp r4, r5 + bne _021DA176 + add sp, #8 + str r4, [r2] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA176: + mov r0, #2 + str r0, [r2] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA180: + cmp r7, #1 + beq _021DA1B0 + cmp r4, #2 + bne _021DA192 + mov r0, #2 + str r0, [r2] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA192: + cmp r4, #1 + bne _021DA1A2 + mov r0, #1 + str r0, [r2] + mov r2, #2 + str r2, [r1] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_021DA1A2: + mov r0, #2 + str r0, [r2] + mov r0, #3 + str r0, [r1] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA1B0: + cmp r5, #2 + bne _021DA1BE + mov r0, #2 + str r0, [r2] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA1BE: + cmp r5, #1 + bne _021DA1CE + mov r0, #1 + str r0, [r2] + mov r2, #2 + str r2, [r1] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_021DA1CE: + mov r0, #2 + str r0, [r2] + mov r0, #3 + str r0, [r1] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA1DC: + cmp r7, #1 + beq _021DA204 + ldr r0, [sp, #4] + cmp r0, #1 + beq _021DA204 + cmp r4, r6 + bne _021DA1F2 + add sp, #8 + str r4, [r2] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA1F2: + cmp r4, #1 + bne _021DA1FA + mov r0, #3 + b _021DA1FC +_021DA1FA: + mov r0, #1 +_021DA1FC: + str r0, [r2] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA204: + cmp r7, #1 + beq _021DA222 + cmp r4, #2 + bne _021DA216 + mov r0, #2 + str r0, [r2] + add sp, #8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA216: + mov r0, #1 + str r0, [r2] + mov r2, #3 + str r2, [r1] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_021DA222: + cmp r6, #2 + bne _021DA238 + mov r0, #1 + str r0, [r2] + mov r2, #2 + str r2, [r1] + ldr r1, [sp, #0x20] + mov r2, #3 + str r2, [r1] + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_021DA238: + add sp, #8 + str r6, [r2] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA240: + bl ErrorHandling + mov r0, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021DA0A8 + + thumb_func_start MOD85_021DA24C +MOD85_021DA24C: ; 0x021DA24C + push {r3, r4, r5, lr} + add r4, r1, #0 + mov r2, #1 + mov r1, #0 + sub r2, r2, r4 + add r5, r0, #0 + bl MOD85_021DBD30 + cmp r0, #3 + bne _021DA264 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA264: + mov r2, #2 + add r0, r5, #0 + mov r1, #0 + sub r2, r2, r4 + bl MOD85_021DBD30 + cmp r0, #3 + bne _021DA278 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA278: + mov r2, #3 + add r0, r5, #0 + mov r1, #0 + sub r2, r2, r4 + bl MOD85_021DBD30 + cmp r0, #3 + bne _021DA28C + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA28C: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD85_021DA24C + + thumb_func_start MOD85_021DA290 +MOD85_021DA290: ; 0x021DA290 + push {r3, lr} + cmp r2, #3 + bne _021DA29A + mov r0, #1 + pop {r3, pc} +_021DA29A: + bl MOD85_021DA24C + cmp r0, #0 + bne _021DA2A6 + mov r0, #1 + pop {r3, pc} +_021DA2A6: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021DA290 + + thumb_func_start MOD85_021DA2AC +MOD85_021DA2AC: ; 0x021DA2AC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r4, r1, #0 + add r0, r4, #0 + add r0, #0xf0 + ldr r7, [r0] + mov r0, #0x45 + lsl r0, r0, #2 + ldr r6, [r4, r0] + mov r1, #1 + add r0, r2, #0 + sub r0, r1, r0 + str r0, [sp, #0x10] + str r2, [sp] + ldr r2, [sp, #0x10] + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DBD30 + mov r1, #1 + add r5, r0, #0 + add r0, r4, #0 + sub r2, r1, r7 + bl MOD85_021DBD30 + str r0, [sp, #0x14] + mov r0, #1 + sub r0, r0, r6 + str r0, [sp, #4] + ldr r2, [sp, #4] + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DBD30 + cmp r5, #3 + beq _021DA2FE + ldr r1, [sp, #0x14] + cmp r5, r1 + bne _021DA304 + cmp r5, r0 + bne _021DA304 +_021DA2FE: + add sp, #0x20 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA304: + ldr r2, [sp] + mov r3, #2 + add r0, r4, #0 + mov r1, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + add r5, r0, #0 + mov r0, #2 + sub r0, r0, r7 + str r0, [sp, #0xc] + ldr r2, [sp, #0xc] + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DBD30 + mov r1, #2 + str r0, [sp, #0x18] + add r0, r4, #0 + sub r2, r1, r6 + bl MOD85_021DBD30 + cmp r5, #3 + beq _021DA33E + ldr r1, [sp, #0x18] + cmp r5, r1 + bne _021DA344 + cmp r5, r0 + bne _021DA344 +_021DA33E: + add sp, #0x20 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA344: + ldr r0, [sp] + mov r1, #3 + sub r0, r1, r0 + str r0, [sp, #8] + ldr r2, [sp, #8] + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DBD30 + mov r2, #3 + add r5, r0, #0 + add r0, r4, #0 + mov r1, #1 + sub r2, r2, r7 + bl MOD85_021DBD30 + add r7, r0, #0 + mov r0, #3 + sub r0, r0, r6 + str r0, [sp, #0x1c] + ldr r2, [sp, #0x1c] + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DBD30 + cmp r5, #3 + beq _021DA382 + cmp r5, r7 + bne _021DA388 + cmp r5, r0 + bne _021DA388 +_021DA382: + add sp, #0x20 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA388: + ldr r2, [sp, #0x10] + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DBD30 + add r5, r0, #0 + ldr r2, [sp, #0xc] + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DBD30 + add r6, r0, #0 + ldr r2, [sp, #0x1c] + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DBD30 + cmp r5, #3 + beq _021DA3B6 + cmp r5, r6 + bne _021DA3BC + cmp r5, r0 + bne _021DA3BC +_021DA3B6: + add sp, #0x20 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA3BC: + ldr r2, [sp, #8] + add r0, r4, #0 + mov r1, #0 + bl MOD85_021DBD30 + add r5, r0, #0 + ldr r2, [sp, #0xc] + add r0, r4, #0 + mov r1, #1 + bl MOD85_021DBD30 + add r6, r0, #0 + ldr r2, [sp, #4] + add r0, r4, #0 + mov r1, #2 + bl MOD85_021DBD30 + cmp r5, #3 + beq _021DA3EA + cmp r5, r6 + bne _021DA3F0 + cmp r5, r0 + bne _021DA3F0 +_021DA3EA: + add sp, #0x20 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA3F0: + mov r0, #0 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021DA2AC + + thumb_func_start MOD85_021DA3F8 +MOD85_021DA3F8: ; 0x021DA3F8 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + add r5, r1, #0 + add r0, r5, #0 + add r0, #0xcc + ldr r6, [r0] + mov r0, #0x45 + lsl r0, r0, #2 + ldr r4, [r5, r0] + mov r0, #1 + sub r0, r0, r6 + str r0, [sp, #0xc] + add r7, r2, #0 + ldr r2, [sp, #0xc] + add r0, r5, #0 + mov r1, #0 + bl MOD85_021DBD30 + mov r1, #1 + str r0, [sp, #0x10] + add r0, r5, #0 + sub r2, r1, r7 + bl MOD85_021DBD30 + str r0, [sp, #0x14] + mov r0, #1 + sub r0, r0, r4 + str r0, [sp] + ldr r2, [sp] + add r0, r5, #0 + mov r1, #2 + bl MOD85_021DBD30 + ldr r2, [sp, #0x10] + ldr r1, [sp, #0x14] + cmp r2, r1 + bne _021DA44E + add r1, r2, #0 + cmp r1, r0 + bne _021DA44E + add sp, #0x24 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021DA44E: + mov r2, #2 + add r0, r5, #0 + mov r1, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + str r0, [sp, #0x18] + mov r0, #2 + sub r0, r0, r7 + str r0, [sp, #8] + ldr r2, [sp, #8] + add r0, r5, #0 + mov r1, #1 + bl MOD85_021DBD30 + mov r1, #2 + str r0, [sp, #0x1c] + add r0, r5, #0 + sub r2, r1, r4 + bl MOD85_021DBD30 + ldr r2, [sp, #0x18] + ldr r1, [sp, #0x1c] + cmp r2, r1 + bne _021DA48C + add r1, r2, #0 + cmp r1, r0 + bne _021DA48C + add sp, #0x24 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021DA48C: + mov r0, #3 + sub r0, r0, r6 + str r0, [sp, #4] + ldr r2, [sp, #4] + add r0, r5, #0 + mov r1, #0 + bl MOD85_021DBD30 + mov r2, #3 + add r6, r0, #0 + add r0, r5, #0 + mov r1, #1 + sub r2, r2, r7 + bl MOD85_021DBD30 + str r0, [sp, #0x20] + mov r0, #3 + sub r7, r0, r4 + add r0, r5, #0 + mov r1, #2 + add r2, r7, #0 + bl MOD85_021DBD30 + ldr r1, [sp, #0x20] + cmp r6, r1 + bne _021DA4CA + cmp r6, r0 + bne _021DA4CA + add sp, #0x24 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021DA4CA: + ldr r2, [sp, #0xc] + add r0, r5, #0 + mov r1, #0 + bl MOD85_021DBD30 + add r4, r0, #0 + ldr r2, [sp, #8] + add r0, r5, #0 + mov r1, #1 + bl MOD85_021DBD30 + add r6, r0, #0 + add r0, r5, #0 + mov r1, #2 + add r2, r7, #0 + bl MOD85_021DBD30 + cmp r4, r6 + bne _021DA4FA + cmp r4, r0 + bne _021DA4FA + add sp, #0x24 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021DA4FA: + ldr r2, [sp, #4] + add r0, r5, #0 + mov r1, #0 + bl MOD85_021DBD30 + add r4, r0, #0 + ldr r2, [sp, #8] + add r0, r5, #0 + mov r1, #1 + bl MOD85_021DBD30 + add r6, r0, #0 + ldr r2, [sp] + add r0, r5, #0 + mov r1, #2 + bl MOD85_021DBD30 + cmp r4, r6 + bne _021DA52A + cmp r4, r0 + bne _021DA52A + add sp, #0x24 + mov r0, #1 + pop {r4, r5, r6, r7, pc} +_021DA52A: + mov r0, #0 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DA3F8 + + thumb_func_start MOD85_021DA530 +MOD85_021DA530: ; 0x021DA530 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r5, r1, #0 + add r0, r5, #0 + add r0, #0xcc + ldr r6, [r0] + add r0, r5, #0 + add r0, #0xf0 + ldr r4, [r0] + mov r0, #1 + sub r0, r0, r6 + str r0, [sp, #0xc] + add r7, r2, #0 + ldr r2, [sp, #0xc] + add r0, r5, #0 + mov r1, #0 + bl MOD85_021DBD30 + mov r1, #1 + str r0, [sp, #0x10] + add r0, r5, #0 + sub r2, r1, r4 + bl MOD85_021DBD30 + str r0, [sp, #0x14] + mov r0, #1 + sub r0, r0, r7 + str r0, [sp] + ldr r2, [sp] + add r0, r5, #0 + mov r1, #2 + bl MOD85_021DBD30 + ldr r2, [sp, #0x10] + ldr r1, [sp, #0x14] + cmp r2, r1 + bne _021DA586 + add r1, r2, #0 + cmp r1, r0 + bne _021DA586 + add sp, #0x20 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA586: + mov r2, #2 + add r0, r5, #0 + mov r1, #0 + sub r2, r2, r6 + bl MOD85_021DBD30 + str r0, [sp, #0x18] + mov r0, #2 + sub r0, r0, r4 + str r0, [sp, #8] + ldr r2, [sp, #8] + add r0, r5, #0 + mov r1, #1 + bl MOD85_021DBD30 + mov r1, #2 + str r0, [sp, #0x1c] + add r0, r5, #0 + sub r2, r1, r7 + bl MOD85_021DBD30 + ldr r2, [sp, #0x18] + ldr r1, [sp, #0x1c] + cmp r2, r1 + bne _021DA5C4 + add r1, r2, #0 + cmp r1, r0 + bne _021DA5C4 + add sp, #0x20 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA5C4: + mov r0, #3 + sub r0, r0, r6 + str r0, [sp, #4] + ldr r2, [sp, #4] + add r0, r5, #0 + mov r1, #0 + bl MOD85_021DBD30 + mov r2, #3 + add r6, r0, #0 + add r0, r5, #0 + mov r1, #1 + sub r2, r2, r4 + bl MOD85_021DBD30 + add r4, r0, #0 + mov r0, #3 + sub r7, r0, r7 + add r0, r5, #0 + mov r1, #2 + add r2, r7, #0 + bl MOD85_021DBD30 + cmp r6, r4 + bne _021DA600 + cmp r6, r0 + bne _021DA600 + add sp, #0x20 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA600: + ldr r2, [sp, #0xc] + add r0, r5, #0 + mov r1, #0 + bl MOD85_021DBD30 + add r4, r0, #0 + ldr r2, [sp, #8] + add r0, r5, #0 + mov r1, #1 + bl MOD85_021DBD30 + add r6, r0, #0 + add r0, r5, #0 + mov r1, #2 + add r2, r7, #0 + bl MOD85_021DBD30 + cmp r4, r6 + bne _021DA630 + cmp r4, r0 + bne _021DA630 + add sp, #0x20 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA630: + ldr r2, [sp, #4] + add r0, r5, #0 + mov r1, #0 + bl MOD85_021DBD30 + add r4, r0, #0 + ldr r2, [sp, #8] + add r0, r5, #0 + mov r1, #1 + bl MOD85_021DBD30 + add r6, r0, #0 + ldr r2, [sp] + add r0, r5, #0 + mov r1, #2 + bl MOD85_021DBD30 + cmp r4, r6 + bne _021DA660 + cmp r4, r0 + bne _021DA660 + add sp, #0x20 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA660: + mov r0, #0 + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021DA530 + + thumb_func_start MOD85_021DA668 +MOD85_021DA668: ; 0x021DA668 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r0, r5, #0 + add r0, #0xf0 + ldr r7, [r0] + mov r0, #0x45 + lsl r0, r0, #2 + mov r3, #2 + ldr r6, [r5, r0] + add r0, r5, #0 + mov r1, #0 + sub r2, r3, r2 + bl MOD85_021DBD30 + mov r2, #2 + add r4, r0, #0 + add r0, r5, #0 + mov r1, #1 + sub r2, r2, r7 + bl MOD85_021DBD30 + mov r1, #2 + add r7, r0, #0 + add r0, r5, #0 + sub r2, r1, r6 + bl MOD85_021DBD30 + cmp r4, #3 + beq _021DA6AA + cmp r4, r7 + bne _021DA6AE + cmp r4, r0 + bne _021DA6AE +_021DA6AA: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA6AE: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021DA668 + + thumb_func_start MOD85_021DA6B4 +MOD85_021DA6B4: ; 0x021DA6B4 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r7, r2, #0 + add r2, r5, #0 + add r2, #0xcc + mov r0, #0x45 + ldr r3, [r2] + lsl r0, r0, #2 + mov r2, #2 + ldr r6, [r5, r0] + add r0, r5, #0 + mov r1, #0 + sub r2, r2, r3 + bl MOD85_021DBD30 + mov r2, #2 + add r4, r0, #0 + add r0, r5, #0 + mov r1, #1 + sub r2, r2, r7 + bl MOD85_021DBD30 + mov r1, #2 + add r7, r0, #0 + add r0, r5, #0 + sub r2, r1, r6 + bl MOD85_021DBD30 + cmp r4, r7 + bne _021DA6F8 + cmp r4, r0 + bne _021DA6F8 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA6F8: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DA6B4 + + thumb_func_start MOD85_021DA6FC +MOD85_021DA6FC: ; 0x021DA6FC + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r7, r2, #0 + add r2, r5, #0 + add r2, #0xcc + add r0, r5, #0 + ldr r3, [r2] + add r0, #0xf0 + mov r2, #2 + ldr r6, [r0] + add r0, r5, #0 + mov r1, #0 + sub r2, r2, r3 + bl MOD85_021DBD30 + mov r2, #2 + add r4, r0, #0 + add r0, r5, #0 + mov r1, #1 + sub r2, r2, r6 + bl MOD85_021DBD30 + mov r1, #2 + add r6, r0, #0 + add r0, r5, #0 + sub r2, r1, r7 + bl MOD85_021DBD30 + cmp r4, r6 + bne _021DA740 + cmp r4, r0 + bne _021DA740 + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_021DA740: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DA6FC + + thumb_func_start MOD85_021DA744 +MOD85_021DA744: ; 0x021DA744 + push {r4, r5, r6, lr} + add r6, r0, #0 + add r4, r6, #0 + lsl r5, r1, #2 + add r4, #0x90 + ldr r0, [r4, r5] + mov r1, #0x2a + add r0, r0, r2 + str r0, [r4, r5] + ldr r0, [r4, r5] + lsl r1, r1, #0x10 + bl _s32_div_f + str r1, [r4, r5] + ldr r1, [r4, r5] + asr r0, r1, #0xb + lsr r0, r0, #0x14 + add r0, r1, r0 + asr r1, r0, #0xc + asr r0, r1, #4 + lsr r0, r0, #0x1b + add r0, r1, r0 + asr r1, r0, #5 + mov r0, #0x15 + sub r1, r0, r1 + add r0, r6, r5 + add r0, #0xa8 + str r1, [r0] + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD85_021DA744 + + thumb_func_start MOD85_021DA780 +MOD85_021DA780: ; 0x021DA780 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r5, r7, #0 + add r5, #0x90 + lsl r4, r1, #2 + ldr r0, [r5, r4] + lsr r6, r0, #0x1f + lsl r3, r0, #0xf + sub r3, r3, r6 + mov r0, #0xf + ror r3, r0 + add r0, r6, r3 + beq _021DA7B4 + cmp r0, r2 + bge _021DA7A0 + add r2, r0, #0 +_021DA7A0: + add r0, r7, #0 + bl MOD85_021DA744 + ldr r0, [r5, r4] + lsr r2, r0, #0x1f + lsl r1, r0, #0xf + sub r1, r1, r2 + mov r0, #0xf + ror r1, r0 + add r0, r2, r1 +_021DA7B4: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021DA780 + + thumb_func_start MOD85_021DA7B8 +MOD85_021DA7B8: ; 0x021DA7B8 + push {r3, lr} + bl FUN_0201B9EC + mov r1, #0x64 + bl _u32_div_f + add r0, r1, #0 + pop {r3, pc} + thumb_func_end MOD85_021DA7B8 + + thumb_func_start MOD85_021DA7C8 +MOD85_021DA7C8: ; 0x021DA7C8 + ldr r3, [r1] + sub r2, r3, r0 + str r2, [r1] + bpl _021DA7D4 + mov r2, #0 + str r2, [r1] +_021DA7D4: + cmp r3, r0 + bhs _021DA7DC + mov r0, #1 + bx lr +_021DA7DC: + mov r0, #0 + bx lr + thumb_func_end MOD85_021DA7C8 + + thumb_func_start MOD85_021DA7E0 +MOD85_021DA7E0: ; 0x021DA7E0 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DA7B8 + add r4, #0x88 + ldr r1, [r4] + lsl r2, r1, #2 + ldr r1, _021DA800 ; =0x021DFC7C + ldr r1, [r1, r2] + cmp r1, r0 + bls _021DA7FA + mov r0, #1 + pop {r4, pc} +_021DA7FA: + mov r0, #0 + pop {r4, pc} + nop +_021DA800: .word 0x021DFC7C + thumb_func_end MOD85_021DA7E0 + + thumb_func_start MOD85_021DA804 +MOD85_021DA804: ; 0x021DA804 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r1, #0 + str r1, [r5, #0x74] + bl MOD85_021DA7E0 + cmp r0, #1 + beq _021DA816 + b _021DA928 +_021DA816: + add r0, r5, #0 + bl MOD85_021DA7B8 + add r1, r5, #0 + str r0, [sp] + add r1, #0x88 + ldr r1, [r1] + ldr r0, _021DA92C ; =0x021DFD24 + lsl r3, r1, #4 + mov r1, #0x47 + lsl r1, r1, #4 + ldr r2, [r5, r1] + add r4, r0, r3 + add r2, r2, #1 + str r2, [r5, r1] + ldrh r0, [r0, r3] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #0 + beq _021DA856 + ldr r1, [r5, #0x74] + mov r0, #8 + orr r0, r1 + str r0, [r5, #0x74] + mov r0, #0x4a + lsl r0, r0, #4 + ldr r1, [r5, r0] + add r1, r1, #1 + str r1, [r5, r0] + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA856: + ldrh r0, [r4, #2] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #0 + beq _021DA876 + ldr r1, [r5, #0x74] + mov r0, #4 + orr r0, r1 + str r0, [r5, #0x74] + ldr r0, _021DA930 ; =0x0000049C + ldr r1, [r5, r0] + add r1, r1, #1 + str r1, [r5, r0] + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA876: + ldrh r0, [r4, #4] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #0 + beq _021DA898 + ldr r1, [r5, #0x74] + mov r0, #0x80 + orr r0, r1 + str r0, [r5, #0x74] + mov r0, #0x4b + lsl r0, r0, #4 + ldr r1, [r5, r0] + add r1, r1, #1 + str r1, [r5, r0] + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA898: + ldrh r0, [r4, #6] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #0 + beq _021DA8B8 + ldr r1, [r5, #0x74] + mov r0, #0x40 + orr r0, r1 + str r0, [r5, #0x74] + ldr r0, _021DA934 ; =0x000004AC + ldr r1, [r5, r0] + add r1, r1, #1 + str r1, [r5, r0] + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA8B8: + ldrh r0, [r4, #8] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #0 + beq _021DA8D8 + ldr r1, [r5, #0x74] + mov r0, #0x20 + orr r0, r1 + str r0, [r5, #0x74] + ldr r0, _021DA938 ; =0x000004A8 + ldr r1, [r5, r0] + add r1, r1, #1 + str r1, [r5, r0] + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA8D8: + ldrh r0, [r4, #0xa] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #0 + beq _021DA8F8 + ldr r1, [r5, #0x74] + mov r0, #0x10 + orr r0, r1 + str r0, [r5, #0x74] + ldr r0, _021DA93C ; =0x000004A4 + ldr r1, [r5, r0] + add r1, r1, #1 + str r1, [r5, r0] + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA8F8: + ldrh r0, [r4, #0xc] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #0 + ldr r1, [r5, #0x74] + beq _021DA918 + mov r0, #2 + orr r0, r1 + str r0, [r5, #0x74] + ldr r0, _021DA940 ; =0x00000498 + ldr r1, [r5, r0] + add r1, r1, #1 + str r1, [r5, r0] + mov r0, #1 + pop {r3, r4, r5, pc} +_021DA918: + mov r0, #1 + orr r1, r0 + str r1, [r5, #0x74] + ldr r1, _021DA944 ; =0x00000494 + ldr r2, [r5, r1] + add r2, r2, #1 + str r2, [r5, r1] + pop {r3, r4, r5, pc} +_021DA928: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DA92C: .word 0x021DFD24 +_021DA930: .word 0x0000049C +_021DA934: .word 0x000004AC +_021DA938: .word 0x000004A8 +_021DA93C: .word 0x000004A4 +_021DA940: .word 0x00000498 +_021DA944: .word 0x00000494 + thumb_func_end MOD85_021DA804 + + thumb_func_start MOD85_021DA948 +MOD85_021DA948: ; 0x021DA948 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DA7B8 + add r4, #0x88 + ldr r1, [r4] + lsl r2, r1, #2 + ldr r1, _021DA968 ; =0x021DFC34 + ldr r1, [r1, r2] + cmp r0, r1 + bhs _021DA962 + mov r0, #1 + pop {r4, pc} +_021DA962: + mov r0, #0 + pop {r4, pc} + nop +_021DA968: .word 0x021DFC34 + thumb_func_end MOD85_021DA948 + + thumb_func_start MOD85_021DA96C +MOD85_021DA96C: ; 0x021DA96C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + bl MOD85_021DA7B8 + str r0, [sp, #4] + add r0, r5, #0 + add r0, #0x88 + ldr r1, [r0] + mov r0, #0x48 + ldr r2, _021DAA1C ; =0x021E0090 + mul r0, r1 + add r0, r2, r0 + str r0, [sp] + mov r6, #0 + add r4, r0, #0 + add r7, sp, #4 +_021DA98E: + ldr r0, [r4] + add r1, r7, #0 + bl MOD85_021DA7C8 + cmp r0, #1 + bne _021DA9EE + mov r0, #0xc + add r1, r6, #0 + mul r1, r0 + ldr r0, [sp] + add r1, r0, r1 + ldr r0, [r1, #4] + str r0, [r5, #0x50] + ldr r0, [r1, #8] + str r0, [r5, #0x4c] + ldr r0, [r5, #0x50] + lsl r1, r0, #2 + ldr r0, _021DAA20 ; =0x021DFCC4 + ldr r0, [r0, r1] + str r0, [r5, #0x18] + ldr r0, [r5, #0x4c] + cmp r0, #0 + beq _021DA9C8 + cmp r0, #1 + beq _021DA9D4 + cmp r0, #2 + beq _021DA9E0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_021DA9C8: + ldr r0, _021DAA24 ; =0x00000478 + add sp, #8 + ldr r1, [r5, r0] + add r1, r1, #1 + str r1, [r5, r0] + pop {r3, r4, r5, r6, r7, pc} +_021DA9D4: + ldr r0, _021DAA28 ; =0x0000047C + add sp, #8 + ldr r1, [r5, r0] + add r1, r1, #1 + str r1, [r5, r0] + pop {r3, r4, r5, r6, r7, pc} +_021DA9E0: + mov r0, #0x12 + lsl r0, r0, #6 + ldr r1, [r5, r0] + add sp, #8 + add r1, r1, #1 + str r1, [r5, r0] + pop {r3, r4, r5, r6, r7, pc} +_021DA9EE: + add r6, r6, #1 + add r4, #0xc + cmp r6, #6 + blt _021DA98E + sub r1, r6, #1 + mov r0, #0xc + add r2, r1, #0 + mul r2, r0 + ldr r0, [sp] + add r1, r0, r2 + ldr r0, [r1, #4] + str r0, [r5, #0x50] + ldr r0, [r1, #8] + str r0, [r5, #0x4c] + ldr r0, [r5, #0x50] + lsl r1, r0, #2 + ldr r0, _021DAA20 ; =0x021DFCC4 + ldr r0, [r0, r1] + str r0, [r5, #0x18] + bl ErrorHandling + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DAA1C: .word 0x021E0090 +_021DAA20: .word 0x021DFCC4 +_021DAA24: .word 0x00000478 +_021DAA28: .word 0x0000047C + thumb_func_end MOD85_021DA96C + + thumb_func_start MOD85_021DAA2C +MOD85_021DAA2C: ; 0x021DAA2C + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r0, #0 + mov r4, #0 + bl MOD85_021DA7B8 + str r0, [sp, #4] + add r0, r6, #0 + add r0, #0x88 + ldr r1, [r0] + mov r0, #0x48 + mul r0, r1 + ldr r2, _021DAABC ; =0x021DFEE0 + ldr r1, [r6, #0x4c] + add r2, r2, r0 + mov r0, #0x18 + mul r0, r1 + add r5, r2, r0 + str r5, [sp] + add r7, sp, #4 +_021DAA54: + ldr r0, [r5] + add r1, r7, #0 + bl MOD85_021DA7C8 + cmp r0, #1 + bne _021DAAA4 + ldr r0, [sp] + lsl r1, r4, #3 + add r0, r0, r1 + ldr r1, [r0, #4] + mov r0, #0x56 + lsl r0, r0, #2 + str r1, [r6, r0] + ldr r0, [r6, r0] + cmp r0, #0 + beq _021DAA80 + cmp r0, #1 + beq _021DAA8C + cmp r0, #2 + beq _021DAA98 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} +_021DAA80: + ldr r0, _021DAAC0 ; =0x00000488 + add sp, #8 + ldr r1, [r6, r0] + add r1, r1, #1 + str r1, [r6, r0] + pop {r3, r4, r5, r6, r7, pc} +_021DAA8C: + ldr r0, _021DAAC4 ; =0x00000484 + add sp, #8 + ldr r1, [r6, r0] + add r1, r1, #1 + str r1, [r6, r0] + pop {r3, r4, r5, r6, r7, pc} +_021DAA98: + ldr r0, _021DAAC8 ; =0x0000048C + add sp, #8 + ldr r1, [r6, r0] + add r1, r1, #1 + str r1, [r6, r0] + pop {r3, r4, r5, r6, r7, pc} +_021DAAA4: + add r4, r4, #1 + add r5, #8 + cmp r4, #3 + blo _021DAA54 + mov r0, #0x56 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r6, r0] + bl ErrorHandling + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DAABC: .word 0x021DFEE0 +_021DAAC0: .word 0x00000488 +_021DAAC4: .word 0x00000484 +_021DAAC8: .word 0x0000048C + thumb_func_end MOD85_021DAA2C + + thumb_func_start MOD85_021DAACC +MOD85_021DAACC: ; 0x021DAACC + push {r4, lr} + add r1, r0, #0 + add r1, #0x88 + ldr r1, [r1] + lsl r2, r1, #2 + ldr r1, _021DAAEC ; =0x021DFC94 + ldr r4, [r1, r2] + bl MOD85_021DA7B8 + cmp r0, r4 + bhs _021DAAE6 + mov r0, #1 + pop {r4, pc} +_021DAAE6: + mov r0, #0 + pop {r4, pc} + nop +_021DAAEC: .word 0x021DFC94 + thumb_func_end MOD85_021DAACC + + thumb_func_start MOD85_021DAAF0 +MOD85_021DAAF0: ; 0x021DAAF0 + push {r3, r4, r5, lr} + add r4, r0, #0 + add r1, r4, #0 + add r1, #0x88 + ldr r1, [r1] + ldr r2, _021DABE4 ; =0x021DFD84 + lsl r1, r1, #4 + add r5, r2, r1 + bl MOD85_021DA7B8 + str r0, [sp] + mov r0, #0 + str r0, [r4, #0x74] + add r0, r4, #0 + bl MOD85_021DAACC + cmp r0, #0 + bne _021DAB7A + ldr r0, _021DABE8 ; =0x00000474 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + ldr r1, [r4, #0x50] + cmp r1, #5 + bhi _021DAB6A + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021DAB2E: ; jump table + .short _021DAB3A - _021DAB2E - 2 ; case 0 + .short _021DAB3A - _021DAB2E - 2 ; case 1 + .short _021DAB3A - _021DAB2E - 2 ; case 2 + .short _021DAB52 - _021DAB2E - 2 ; case 3 + .short _021DAB52 - _021DAB2E - 2 ; case 4 + .short _021DAB52 - _021DAB2E - 2 ; case 5 +_021DAB3A: + mov r1, #2 + ldr r2, [r4, #0x74] + lsl r1, r1, #8 + orr r1, r2 + str r1, [r4, #0x74] + add r1, r0, #0 + add r1, #0x44 + ldr r1, [r4, r1] + add r0, #0x44 + add r1, r1, #1 + str r1, [r4, r0] + pop {r3, r4, r5, pc} +_021DAB52: + mov r1, #1 + ldr r2, [r4, #0x74] + lsl r1, r1, #8 + orr r1, r2 + str r1, [r4, #0x74] + add r1, r0, #0 + add r1, #0x40 + ldr r1, [r4, r1] + add r0, #0x40 + add r1, r1, #1 + str r1, [r4, r0] + pop {r3, r4, r5, pc} +_021DAB6A: + bl ErrorHandling + mov r0, #2 + ldr r1, [r4, #0x74] + lsl r0, r0, #8 + orr r0, r1 + str r0, [r4, #0x74] + pop {r3, r4, r5, pc} +_021DAB7A: + ldr r0, [r5] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #1 + bne _021DAB98 + ldr r1, [r4, #0x74] + mov r0, #4 + orr r0, r1 + str r0, [r4, #0x74] + ldr r0, _021DABEC ; =0x0000049C + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + pop {r3, r4, r5, pc} +_021DAB98: + ldr r0, [r5, #4] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #1 + bne _021DABB6 + ldr r1, [r4, #0x74] + mov r0, #0x40 + orr r0, r1 + str r0, [r4, #0x74] + ldr r0, _021DABF0 ; =0x000004AC + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + pop {r3, r4, r5, pc} +_021DABB6: + ldr r0, [r5, #4] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #1 + bne _021DABD4 + ldr r1, [r4, #0x74] + mov r0, #0x10 + orr r0, r1 + str r0, [r4, #0x74] + ldr r0, _021DABF4 ; =0x000004A4 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + pop {r3, r4, r5, pc} +_021DABD4: + mov r0, #1 + str r0, [r4, #0x74] + ldr r0, _021DABF8 ; =0x00000494 + ldr r1, [r4, r0] + add r1, r1, #1 + str r1, [r4, r0] + pop {r3, r4, r5, pc} + nop +_021DABE4: .word 0x021DFD84 +_021DABE8: .word 0x00000474 +_021DABEC: .word 0x0000049C +_021DABF0: .word 0x000004AC +_021DABF4: .word 0x000004A4 +_021DABF8: .word 0x00000494 + thumb_func_end MOD85_021DAAF0 + + thumb_func_start MOD85_021DABFC +MOD85_021DABFC: ; 0x021DABFC + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DA7B8 + add r4, #0x88 + ldr r1, [r4] + lsl r2, r1, #2 + ldr r1, _021DAC1C ; =0x021DFCDC + ldr r1, [r1, r2] + cmp r0, r1 + bhs _021DAC16 + mov r0, #1 + pop {r4, pc} +_021DAC16: + mov r0, #0 + pop {r4, pc} + nop +_021DAC1C: .word 0x021DFCDC + thumb_func_end MOD85_021DABFC + + thumb_func_start MOD85_021DAC20 +MOD85_021DAC20: ; 0x021DAC20 + push {r4, lr} + add r4, r0, #0 + bl MOD85_021DA7B8 + add r4, #0x88 + ldr r1, [r4] + lsl r2, r1, #2 + ldr r1, _021DAC40 ; =0x021DFC64 + ldr r1, [r1, r2] + cmp r0, r1 + bhs _021DAC3A + mov r0, #1 + pop {r4, pc} +_021DAC3A: + mov r0, #0 + pop {r4, pc} + nop +_021DAC40: .word 0x021DFC64 + thumb_func_end MOD85_021DAC20 + + thumb_func_start MOD85_021DAC44 +MOD85_021DAC44: ; 0x021DAC44 + push {r4, lr} + ldr r4, [r0, #0x18] + bl MOD85_021DA7B8 + cmp r0, r4 + bhs _021DAC54 + mov r0, #1 + pop {r4, pc} +_021DAC54: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DAC44 + + thumb_func_start MOD85_021DAC58 +MOD85_021DAC58: ; 0x021DAC58 + push {r3, r4, r5, r6, lr} + sub sp, #4 + add r5, r0, #0 + ldr r4, [r5, #0x18] + bl MOD85_021DA7B8 + str r0, [sp] + add r0, r5, #0 + add r0, #0x88 + ldr r0, [r0] + ldr r1, _021DACA8 ; =0x021DFCF4 + lsl r0, r0, #3 + add r6, r1, r0 + ldr r0, [r5, #0x28] + cmp r0, #2 + bne _021DAC7C + sub r4, #0xa + b _021DAC9A +_021DAC7C: + ldr r0, [r6] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #1 + bne _021DAC8C + sub r4, #0xa + b _021DAC9A +_021DAC8C: + ldr r0, [r6, #4] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #1 + bne _021DAC9A + sub r4, r4, #5 +_021DAC9A: + cmp r4, #0 + bge _021DACA0 + mov r4, #0 +_021DACA0: + str r4, [r5, #0x18] + add sp, #4 + pop {r3, r4, r5, r6, pc} + nop +_021DACA8: .word 0x021DFCF4 + thumb_func_end MOD85_021DAC58 + + thumb_func_start MOD85_021DACAC +MOD85_021DACAC: ; 0x021DACAC + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r4, [r5, #0x18] + bl MOD85_021DA7B8 + str r0, [sp] + add r5, #0x88 + ldr r1, [r5] + mov r0, #0x90 + mul r0, r1 + ldr r2, _021DAD08 ; =0x021E0240 + mov r1, #0 + add r5, r2, r0 + add r2, r5, #0 +_021DACC8: + ldr r0, [r2] + cmp r4, r0 + blo _021DACF8 + lsl r4, r1, #4 + add r0, r5, r4 + ldr r0, [r0, #4] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #1 + bne _021DACE2 + mov r0, #1 + pop {r3, r4, r5, pc} +_021DACE2: + add r0, r5, r4 + ldr r0, [r0, #8] + add r1, sp, #0 + bl MOD85_021DA7C8 + cmp r0, #1 + bne _021DACF4 + mov r0, #0 + pop {r3, r4, r5, pc} +_021DACF4: + mov r0, #2 + pop {r3, r4, r5, pc} +_021DACF8: + add r1, r1, #1 + add r2, #0x10 + cmp r1, #9 + blt _021DACC8 + bl ErrorHandling + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DAD08: .word 0x021E0240 + thumb_func_end MOD85_021DACAC + + thumb_func_start MOD85_021DAD0C +MOD85_021DAD0C: ; 0x021DAD0C + push {r4, lr} + add r4, r0, #0 + bl FUN_0201B9EC + mov r1, #6 + bl _s32_div_f + str r1, [r4, #0x34] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DAD0C + + thumb_func_start MOD85_021DAD20 +MOD85_021DAD20: ; 0x021DAD20 + push {r4, lr} + mov r1, #0x12 + lsl r1, r1, #4 + add r4, r0, r1 + mov r1, #0 + str r1, [r4] + str r1, [r4, #4] + str r0, [r4, #0xc] + ldr r0, _021DAD40 ; =MOD85_021DAD70 + add r1, r4, #0 + mov r2, #0x8a + bl FUN_0200CA44 + str r0, [r4, #0x10] + pop {r4, pc} + nop +_021DAD40: .word MOD85_021DAD70 + thumb_func_end MOD85_021DAD20 + + thumb_func_start MOD85_021DAD44 +MOD85_021DAD44: ; 0x021DAD44 + mov r1, #0x13 + lsl r1, r1, #4 + ldr r3, _021DAD50 ; =FUN_0200CAB4 + ldr r0, [r0, r1] + bx r3 + nop +_021DAD50: .word FUN_0200CAB4 + thumb_func_end MOD85_021DAD44 + + thumb_func_start MOD85_021DAD54 +MOD85_021DAD54: ; 0x021DAD54 + mov r1, #0x49 + lsl r1, r1, #2 + mov r3, #0 + str r3, [r0, r1] + add r2, r1, #4 + str r3, [r0, r2] + mov r2, #1 + sub r1, r1, #4 + str r2, [r0, r1] + bx lr + thumb_func_end MOD85_021DAD54 + + thumb_func_start MOD85_021DAD68 +MOD85_021DAD68: ; 0x021DAD68 + mov r1, #0x49 + lsl r1, r1, #2 + ldr r0, [r0, r1] + bx lr + thumb_func_end MOD85_021DAD68 + + thumb_func_start MOD85_021DAD70 +MOD85_021DAD70: ; 0x021DAD70 + push {r3, r4, r5, lr} + add r5, r1, #0 + ldr r0, [r5] + ldr r4, [r5, #0xc] + cmp r0, #3 + bhi _021DAE5E + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021DAD88: ; jump table + .short _021DAE5E - _021DAD88 - 2 ; case 0 + .short _021DAD90 - _021DAD88 - 2 ; case 1 + .short _021DAD9E - _021DAD88 - 2 ; case 2 + .short _021DADC0 - _021DAD88 - 2 ; case 3 +_021DAD90: + add r0, r5, #0 + bl MOD85_021DAE70 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + pop {r3, r4, r5, pc} +_021DAD9E: + ldr r0, [r5, #0x14] + cmp r0, #0 + beq _021DADAC + bl MOD85_021DB7B8 + cmp r0, #1 + bne _021DAE5E +_021DADAC: + ldr r0, [r5, #0x18] + cmp r0, #0 + beq _021DADBA + bl MOD85_021DB7B8 + cmp r0, #1 + bne _021DAE5E +_021DADBA: + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] +_021DADC0: + mov r0, #1 + lsl r0, r0, #0xa + bl MOD85_021DBD54 + cmp r0, #0 + bne _021DADD2 + ldr r0, [r4, #0x64] + cmp r0, #0 + bne _021DAE20 +_021DADD2: + ldr r0, _021DAE60 ; =0x0000062D + bl FUN_020054C8 + ldr r1, [r4, #0x60] + ldr r0, [r4, #0x64] + add r1, r1, r0 + ldr r0, _021DAE64 ; =0x0000C350 + str r1, [r4, #0x60] + cmp r1, r0 + blt _021DADE8 + str r0, [r4, #0x60] +_021DADE8: + ldr r0, [r4, #8] + cmp r0, #1 + bne _021DADF6 + ldr r1, [r4, #0x14] + ldr r0, [r4, #0x64] + add r0, r1, r0 + str r0, [r4, #0x14] +_021DADF6: + mov r0, #0 + str r0, [r4, #0x64] + ldr r0, [r5, #0x14] + cmp r0, #0 + beq _021DAE08 + bl FUN_02064520 + mov r0, #0 + str r0, [r5, #0x14] +_021DAE08: + ldr r0, [r5, #0x18] + cmp r0, #0 + beq _021DAE16 + bl FUN_02064520 + mov r0, #0 + str r0, [r5, #0x18] +_021DAE16: + mov r0, #1 + str r0, [r5, #4] + mov r0, #0 + str r0, [r5] + pop {r3, r4, r5, pc} +_021DAE20: + ldr r1, _021DAE68 ; =0x021C48B8 + mov r0, #3 + ldr r2, [r1, #0x44] + ldr r1, _021DAE6C ; =0x00000C03 + tst r1, r2 + beq _021DAE2E + mov r0, #1 +_021DAE2E: + ldr r1, [r5, #8] + add r1, r1, #1 + str r1, [r5, #8] + tst r0, r1 + bne _021DAE5E + ldr r0, [r4, #0x64] + sub r0, r0, #1 + str r0, [r4, #0x64] + ldr r0, [r4, #0x60] + add r1, r0, #1 + ldr r0, _021DAE64 ; =0x0000C350 + str r1, [r4, #0x60] + cmp r1, r0 + blt _021DAE4C + str r0, [r4, #0x60] +_021DAE4C: + ldr r0, _021DAE60 ; =0x0000062D + bl FUN_020054C8 + ldr r0, [r4, #8] + cmp r0, #1 + bne _021DAE5E + ldr r0, [r4, #0x14] + add r0, r0, #1 + str r0, [r4, #0x14] +_021DAE5E: + pop {r3, r4, r5, pc} + .align 2, 0 +_021DAE60: .word 0x0000062D +_021DAE64: .word 0x0000C350 +_021DAE68: .word 0x021C48B8 +_021DAE6C: .word 0x00000C03 + thumb_func_end MOD85_021DAD70 + + thumb_func_start MOD85_021DAE70 +MOD85_021DAE70: ; 0x021DAE70 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldr r7, [r5, #0xc] + ldr r6, [r7, #0x48] + cmp r6, #0 + bne _021DAE80 + bl ErrorHandling +_021DAE80: + mov r4, #0 +_021DAE82: + mov r0, #1 + tst r0, r6 + beq _021DAEB4 + ldr r0, [r5, #0x14] + cmp r0, #0 + bne _021DAE9C + ldr r2, [r7, #0x64] + add r0, r7, #0 + add r1, r4, #0 + bl MOD85_021DB784 + str r0, [r5, #0x14] + b _021DAEB4 +_021DAE9C: + ldr r0, [r5, #0x18] + cmp r0, #0 + bne _021DAEB0 + ldr r2, [r7, #0x64] + add r0, r7, #0 + add r1, r4, #0 + bl MOD85_021DB784 + str r0, [r5, #0x18] + b _021DAEB4 +_021DAEB0: + bl ErrorHandling +_021DAEB4: + add r4, r4, #1 + lsr r6, r6, #1 + cmp r4, #5 + blt _021DAE82 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021DAE70 + + thumb_func_start MOD85_021DAEC0 +MOD85_021DAEC0: ; 0x021DAEC0 + push {r4, lr} + mov r1, #0x4f + lsl r1, r1, #2 + add r4, r0, r1 + mov r1, #0 + str r1, [r4] + str r1, [r4, #4] + str r0, [r4, #0x20] + ldr r0, _021DAEE0 ; =MOD85_021DAF80 + add r1, r4, #0 + mov r2, #0x84 + bl FUN_0200CA44 + str r0, [r4, #0x24] + pop {r4, pc} + nop +_021DAEE0: .word MOD85_021DAF80 + thumb_func_end MOD85_021DAEC0 + + thumb_func_start MOD85_021DAEE4 +MOD85_021DAEE4: ; 0x021DAEE4 + mov r1, #0x16 + lsl r1, r1, #4 + ldr r3, _021DAEF0 ; =FUN_0200CAB4 + ldr r0, [r0, r1] + bx r3 + nop +_021DAEF0: .word FUN_0200CAB4 + thumb_func_end MOD85_021DAEE4 + + thumb_func_start MOD85_021DAEF4 +MOD85_021DAEF4: ; 0x021DAEF4 + mov r2, #0x4f + lsl r2, r2, #2 + add r2, r0, r2 + str r1, [r2] + mov r0, #0 + str r0, [r2, #4] + str r0, [r2, #8] + str r0, [r2, #0x10] + bx lr + .align 2, 0 + thumb_func_end MOD85_021DAEF4 + + thumb_func_start MOD85_021DAF08 +MOD85_021DAF08: ; 0x021DAF08 + mov r1, #0x51 + lsl r1, r1, #2 + ldr r0, [r0, r1] + bx lr + thumb_func_end MOD85_021DAF08 + + thumb_func_start MOD85_021DAF10 +MOD85_021DAF10: ; 0x021DAF10 + push {r4, lr} + mov r1, #0x52 + add r4, r0, #0 + mov r2, #0 + lsl r1, r1, #2 + str r2, [r4, r1] + bl MOD85_021DD984 + mov r1, #0x5d + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD85_021DDB10 + mov r1, #0x5e + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD85_021DDCAC + mov r1, #0x5f + lsl r1, r1, #2 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD85_021DDE10 + mov r1, #6 + lsl r1, r1, #6 + str r0, [r4, r1] + pop {r4, pc} + thumb_func_end MOD85_021DAF10 + + thumb_func_start MOD85_021DAF4C +MOD85_021DAF4C: ; 0x021DAF4C + push {r4, lr} + add r4, r0, #0 + mov r0, #0x52 + mov r1, #1 + lsl r0, r0, #2 + str r1, [r4, r0] + add r0, #0x2c + ldr r0, [r4, r0] + bl FUN_02064520 + mov r0, #0x5e + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02064520 + mov r0, #0x5f + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl FUN_02064520 + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + bl FUN_02064520 + pop {r4, pc} + thumb_func_end MOD85_021DAF4C + + thumb_func_start MOD85_021DAF80 +MOD85_021DAF80: ; 0x021DAF80 + push {r3, r4, r5, lr} + ldr r4, _021DAF9C ; =0x021DEED0 + add r5, r1, #0 +_021DAF86: + ldr r1, [r5] + add r0, r5, #0 + lsl r1, r1, #2 + ldr r2, [r4, r1] + ldr r1, [r5, #4] + lsl r1, r1, #2 + ldr r1, [r2, r1] + blx r1 + cmp r0, #1 + beq _021DAF86 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DAF9C: .word 0x021DEED0 + thumb_func_end MOD85_021DAF80 + + thumb_func_start MOD85_021DAFA0 +MOD85_021DAFA0: ; 0x021DAFA0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x18] + bl MOD85_021DC4B4 + str r0, [r4, #0x28] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DAFA0 + + thumb_func_start MOD85_021DAFB8 +MOD85_021DAFB8: ; 0x021DAFB8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + bl MOD85_021DC520 + cmp r0, #0 + bne _021DAFCA + mov r0, #0 + pop {r4, pc} +_021DAFCA: + ldr r0, [r4, #0x28] + mov r1, #1 + bl MOD85_021DC4EC + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DAFB8 + + thumb_func_start MOD85_021DAFDC +MOD85_021DAFDC: ; 0x021DAFDC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + bl MOD85_021DC520 + cmp r0, #0 + bne _021DAFEE + mov r0, #0 + pop {r4, pc} +_021DAFEE: + ldr r0, [r4, #0x28] + mov r1, #5 + bl MOD85_021DC4EC + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DAFDC + + thumb_func_start MOD85_021DB004 +MOD85_021DB004: ; 0x021DB004 + mov r0, #0 + bx lr + thumb_func_end MOD85_021DB004 + + thumb_func_start MOD85_021DB008 +MOD85_021DB008: ; 0x021DB008 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + mov r1, #4 + bl MOD85_021DC4EC + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB008 + + thumb_func_start MOD85_021DB020 +MOD85_021DB020: ; 0x021DB020 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + bl MOD85_021DC520 + cmp r0, #1 + bne _021DB03E + ldr r0, [r4, #0x28] + bl FUN_02064520 + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB03E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB020 + + thumb_func_start MOD85_021DB044 +MOD85_021DB044: ; 0x021DB044 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + mov r1, #2 + bl MOD85_021DC4EC + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB044 + + thumb_func_start MOD85_021DB05C +MOD85_021DB05C: ; 0x021DB05C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + bl MOD85_021DC520 + cmp r0, #1 + bne _021DB082 + ldr r0, [r4, #0x20] + bl MOD85_021DCBE0 + str r0, [r4, #0x2c] + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x1c] + bl MOD85_021DCEC0 + str r0, [r4, #0x30] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB082: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB05C + + thumb_func_start MOD85_021DB088 +MOD85_021DB088: ; 0x021DB088 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + bl MOD85_021DCF0C + cmp r0, #1 + bne _021DB0AC + ldr r0, [r4, #0x30] + mov r1, #1 + bl MOD85_021DCEF8 + ldr r0, [r4, #0x28] + mov r1, #1 + bl MOD85_021DC500 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB0AC: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DB088 + + thumb_func_start MOD85_021DB0B0 +MOD85_021DB0B0: ; 0x021DB0B0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + bl MOD85_021DCF0C + cmp r0, #1 + bne _021DB0CE + ldr r0, [r4, #0x2c] + bl FUN_02064520 + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB0CE: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB0B0 + + thumb_func_start MOD85_021DB0D4 +MOD85_021DB0D4: ; 0x021DB0D4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x20] + bl MOD85_021DCBE0 + str r0, [r4, #0x2c] + ldr r0, [r4, #0x30] + mov r1, #2 + bl MOD85_021DCEF8 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB0D4 + + thumb_func_start MOD85_021DB0F4 +MOD85_021DB0F4: ; 0x021DB0F4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + bl MOD85_021DCF0C + cmp r0, #1 + bne _021DB124 + ldr r0, [r4, #0x30] + bl FUN_02064520 + ldr r0, [r4, #0x2c] + bl FUN_02064520 + ldr r0, [r4, #0x28] + mov r1, #0 + bl MOD85_021DC500 + ldr r0, [r4, #0x28] + mov r1, #3 + bl MOD85_021DC4EC + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB124: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DB0F4 + + thumb_func_start MOD85_021DB128 +MOD85_021DB128: ; 0x021DB128 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + bl MOD85_021DC520 + cmp r0, #1 + bne _021DB144 + ldr r0, [r4, #0x28] + mov r1, #4 + bl MOD85_021DC4EC + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB144: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DB128 + + thumb_func_start MOD85_021DB148 +MOD85_021DB148: ; 0x021DB148 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + bl MOD85_021DC520 + cmp r0, #1 + bne _021DB166 + ldr r0, [r4, #0x28] + bl FUN_02064520 + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB166: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB148 + + thumb_func_start MOD85_021DB16C +MOD85_021DB16C: ; 0x021DB16C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + mov r1, #3 + bl MOD85_021DCEF8 + ldr r0, [r4, #0x20] + bl MOD85_021DD54C + str r0, [r4, #0x34] + mov r0, #0 + str r0, [r4, #0x10] + ldr r1, [r4, #4] + add r1, r1, #1 + str r1, [r4, #4] + pop {r4, pc} + thumb_func_end MOD85_021DB16C + + thumb_func_start MOD85_021DB18C +MOD85_021DB18C: ; 0x021DB18C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x10] + add r0, r0, #1 + str r0, [r4, #0x10] + cmp r0, #0x30 + blt _021DB1B2 + mov r0, #0 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0x23 + bl FUN_02005578 + ldr r0, [r4, #0x30] + mov r1, #4 + bl MOD85_021DCEF8 +_021DB1B2: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB18C + + thumb_func_start MOD85_021DB1B8 +MOD85_021DB1B8: ; 0x021DB1B8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x34] + bl MOD85_021DD578 + cmp r0, #1 + bne _021DB1E2 + ldr r0, [r4, #0x30] + mov r1, #3 + bl MOD85_021DCEF8 + ldr r0, [r4, #0x34] + bl FUN_02064520 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + str r0, [r4, #0x10] + mov r0, #1 + str r0, [r4, #8] +_021DB1E2: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB1B8 + + thumb_func_start MOD85_021DB1E8 +MOD85_021DB1E8: ; 0x021DB1E8 + push {r3, lr} + ldr r1, [r0, #0x20] + ldr r3, _021DB210 ; =0x021DEF04 + ldr r2, [r1, #0x34] + mov r1, #0x18 + mul r1, r2 + add r2, r3, r1 + ldr r1, [r0, #4] + add r1, r1, #1 + str r1, [r0, #4] + mov r1, #0 + str r1, [r0, #0x14] + lsl r1, r1, #2 + add r1, r2, r1 + ldr r0, [r0, #0x30] + ldr r1, [r1, #0xc] + bl MOD85_021DCEF8 + mov r0, #0 + pop {r3, pc} + .align 2, 0 +_021DB210: .word 0x021DEF04 + thumb_func_end MOD85_021DB1E8 + + thumb_func_start MOD85_021DB214 +MOD85_021DB214: ; 0x021DB214 + push {r3, r4, r5, lr} + ldr r2, [r0, #0x20] + mov r1, #0 + add r4, r1, #0 + add r5, r2, #0 +_021DB21E: + ldr r3, [r5, #0x7c] + cmp r3, #1 + beq _021DB226 + add r1, r1, #1 +_021DB226: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #3 + blt _021DB21E + ldr r3, [r0, #0x14] + cmp r3, #2 + bge _021DB250 + cmp r3, r1 + beq _021DB250 + ldr r3, [r2, #0x34] + mov r2, #0x18 + ldr r4, _021DB254 ; =0x021DEF04 + str r1, [r0, #0x14] + mul r2, r3 + add r2, r4, r2 + lsl r1, r1, #2 + add r1, r2, r1 + ldr r0, [r0, #0x30] + ldr r1, [r1, #0xc] + bl MOD85_021DCEF8 +_021DB250: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DB254: .word 0x021DEF04 + thumb_func_end MOD85_021DB214 + + thumb_func_start MOD85_021DB258 +MOD85_021DB258: ; 0x021DB258 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + mov r1, #3 + bl MOD85_021DCEF8 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB258 + + thumb_func_start MOD85_021DB270 +MOD85_021DB270: ; 0x021DB270 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x20] + bl MOD85_021DAF4C + ldr r0, [r4, #0x20] + bl MOD85_021DCBE0 + str r0, [r4, #0x2c] + ldr r0, [r4, #0x30] + mov r1, #2 + bl MOD85_021DCEF8 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DB270 + + thumb_func_start MOD85_021DB294 +MOD85_021DB294: ; 0x021DB294 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + bl MOD85_021DCF0C + cmp r0, #1 + bne _021DB2C4 + ldr r0, [r4, #0x30] + bl FUN_02064520 + ldr r0, [r4, #0x2c] + bl FUN_02064520 + ldr r0, [r4, #0x28] + mov r1, #0 + bl MOD85_021DC500 + ldr r0, [r4, #0x28] + mov r1, #3 + bl MOD85_021DC4EC + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB2C4: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DB294 + + thumb_func_start MOD85_021DB2C8 +MOD85_021DB2C8: ; 0x021DB2C8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + bl MOD85_021DC520 + cmp r0, #1 + bne _021DB2F8 + ldr r0, [r4, #0x20] + bl MOD85_021DDA30 + ldr r0, [r4, #0x20] + bl MOD85_021DDBBC + ldr r0, [r4, #0x20] + mov r1, #0 + bl MOD85_021DDF40 + ldr r0, [r4, #0x20] + mov r1, #1 + bl MOD85_021DDF40 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB2F8: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DB2C8 + + thumb_func_start MOD85_021DB2FC +MOD85_021DB2FC: ; 0x021DB2FC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x10] + add r0, r0, #1 + str r0, [r4, #0x10] + cmp r0, #0x2d + blt _021DB31C + mov r0, #0 + str r0, [r4, #0x10] + ldr r0, [r4, #0x28] + mov r1, #4 + bl MOD85_021DC4EC + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB31C: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DB2FC + + thumb_func_start MOD85_021DB320 +MOD85_021DB320: ; 0x021DB320 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + bl MOD85_021DC520 + cmp r0, #1 + bne _021DB33E + ldr r0, [r4, #0x28] + bl FUN_02064520 + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB33E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB320 + + thumb_func_start MOD85_021DB344 +MOD85_021DB344: ; 0x021DB344 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + mov r1, #4 + bl MOD85_021DCEF8 + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB344 + + thumb_func_start MOD85_021DB360 +MOD85_021DB360: ; 0x021DB360 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + mov r1, #8 + bl MOD85_021DCEF8 + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB360 + + thumb_func_start MOD85_021DB37C +MOD85_021DB37C: ; 0x021DB37C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + mov r1, #6 + bl MOD85_021DC4EC + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #1 + str r0, [r4, #8] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB37C + + thumb_func_start MOD85_021DB398 +MOD85_021DB398: ; 0x021DB398 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x20] + bl MOD85_021DCBE0 + str r0, [r4, #0x2c] + ldr r0, [r4, #0x30] + mov r1, #2 + bl MOD85_021DCEF8 + mov r0, #1 + str r0, [r4, #0xc] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB398 + + thumb_func_start MOD85_021DB3BC +MOD85_021DB3BC: ; 0x021DB3BC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + bl MOD85_021DCF0C + cmp r0, #1 + bne _021DB3F0 + ldr r0, [r4, #0x2c] + bl FUN_02064520 + ldr r0, [r4, #0x30] + bl FUN_02064520 + ldr r0, [r4, #0x28] + mov r1, #0 + bl MOD85_021DC500 + ldr r0, [r4, #0x28] + mov r1, #3 + bl MOD85_021DC4EC + mov r0, #0 + str r0, [r4, #0x10] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB3F0: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DB3BC + + thumb_func_start MOD85_021DB3F4 +MOD85_021DB3F4: ; 0x021DB3F4 + push {r3, lr} + ldr r1, [r0, #0x10] + add r1, r1, #1 + str r1, [r0, #0x10] + cmp r1, #0x1e + blt _021DB412 + mov r1, #0 + str r1, [r0, #0x10] + ldr r1, [r0, #4] + add r1, r1, #1 + str r1, [r0, #4] + ldr r0, [r0, #0x28] + mov r1, #2 + bl MOD85_021DC4EC +_021DB412: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021DB3F4 + + thumb_func_start MOD85_021DB418 +MOD85_021DB418: ; 0x021DB418 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x28] + bl MOD85_021DC520 + cmp r0, #1 + bne _021DB442 + ldr r0, [r4, #0x20] + bl MOD85_021DCBE0 + str r0, [r4, #0x2c] + ldr r0, [r4, #0x20] + ldr r1, [r4, #0x1c] + bl MOD85_021DCEC0 + str r0, [r4, #0x30] + mov r0, #0 + str r0, [r4, #0xc] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB442: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB418 + + thumb_func_start MOD85_021DB448 +MOD85_021DB448: ; 0x021DB448 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + bl MOD85_021DCF0C + cmp r0, #1 + bne _021DB46C + ldr r0, [r4, #0x30] + mov r1, #1 + bl MOD85_021DCEF8 + ldr r0, [r4, #0x28] + mov r1, #1 + bl MOD85_021DC500 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB46C: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DB448 + + thumb_func_start MOD85_021DB470 +MOD85_021DB470: ; 0x021DB470 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x30] + bl MOD85_021DCF0C + cmp r0, #1 + bne _021DB48E + ldr r0, [r4, #0x2c] + bl FUN_02064520 + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DB48E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB470 + + thumb_func_start MOD85_021DB494 +MOD85_021DB494: ; 0x021DB494 + push {r3, r4, r5, r6, lr} + sub sp, #4 + mov r1, #0x61 + add r5, r0, #0 + lsl r1, r1, #2 + add r4, r5, r1 + mov r1, #3 + mov r2, #0 + str r5, [r4] + bl MOD85_021D8144 + add r1, sp, #0 + add r6, r0, #0 + bl FUN_020B0138 + ldr r0, [sp] + mov r1, #1 + add r2, r4, #4 + bl MOD85_021DB604 + add r2, r4, #0 + ldr r0, [sp] + mov r1, #2 + add r2, #0xa4 + bl MOD85_021DB604 + add r2, r4, #0 + ldr r0, [sp] + mov r1, #3 + add r2, #0xc4 + bl MOD85_021DB604 + add r2, r4, #0 + ldr r0, [sp] + mov r1, #3 + add r2, #0xe4 + bl MOD85_021DB604 + mov r2, #0x41 + lsl r2, r2, #2 + ldr r0, [sp] + mov r1, #4 + add r2, r4, r2 + bl MOD85_021DB604 + mov r2, #0x49 + lsl r2, r2, #2 + ldr r0, [sp] + mov r1, #4 + add r2, r4, r2 + bl MOD85_021DB604 + add r0, r6, #0 + bl FUN_02016A18 + add r0, r5, #0 + mov r1, #5 + mov r2, #0 + bl MOD85_021D8144 + add r1, sp, #0 + add r6, r0, #0 + bl FUN_020B0138 + add r2, r4, #0 + ldr r0, [sp] + mov r1, #0 + add r2, #0x24 + bl MOD85_021DB604 + add r0, r6, #0 + bl FUN_02016A18 + add r0, r5, #0 + mov r1, #6 + mov r2, #0 + bl MOD85_021D8144 + add r1, sp, #0 + add r6, r0, #0 + bl FUN_020B0138 + add r2, r4, #0 + ldr r0, [sp] + mov r1, #0 + add r2, #0x44 + bl MOD85_021DB604 + add r0, r6, #0 + bl FUN_02016A18 + add r0, r5, #0 + mov r1, #7 + mov r2, #0 + bl MOD85_021D8144 + add r1, sp, #0 + add r6, r0, #0 + bl FUN_020B0138 + add r2, r4, #0 + ldr r0, [sp] + mov r1, #0 + add r2, #0x64 + bl MOD85_021DB604 + add r0, r6, #0 + bl FUN_02016A18 + add r0, r5, #0 + mov r1, #0x4a + mov r2, #0 + bl MOD85_021D8144 + add r1, sp, #0 + add r6, r0, #0 + bl FUN_020B0138 + mov r2, #0x51 + lsl r2, r2, #2 + ldr r0, [sp] + mov r1, #0 + add r2, r4, r2 + bl MOD85_021DB604 + add r0, r6, #0 + bl FUN_02016A18 + add r0, r5, #0 + mov r1, #0x4b + mov r2, #0 + bl MOD85_021D8144 + add r1, sp, #0 + add r6, r0, #0 + bl FUN_020B0138 + mov r2, #0x59 + lsl r2, r2, #2 + ldr r0, [sp] + mov r1, #0 + add r2, r4, r2 + bl MOD85_021DB604 + mov r2, #0x61 + lsl r2, r2, #2 + ldr r0, [sp] + mov r1, #0 + add r2, r4, r2 + bl MOD85_021DB604 + add r0, r6, #0 + bl FUN_02016A18 + add r0, r5, #0 + mov r1, #0x4c + mov r2, #0 + bl MOD85_021D8144 + add r1, sp, #0 + add r5, r0, #0 + bl FUN_020B0138 + mov r2, #0x69 + lsl r2, r2, #2 + ldr r0, [sp] + mov r1, #0 + add r2, r4, r2 + bl MOD85_021DB604 + mov r2, #0x71 + lsl r2, r2, #2 + ldr r0, [sp] + mov r1, #0 + add r2, r4, r2 + bl MOD85_021DB604 + add r0, r5, #0 + bl FUN_02016A18 + add sp, #4 + pop {r3, r4, r5, r6, pc} + thumb_func_end MOD85_021DB494 + + thumb_func_start MOD85_021DB600 +MOD85_021DB600: ; 0x021DB600 + bx lr + .align 2, 0 + thumb_func_end MOD85_021DB600 + + thumb_func_start MOD85_021DB604 +MOD85_021DB604: ; 0x021DB604 + ldr r3, [r0, #0xc] + lsl r0, r1, #5 + add r3, r3, r0 + mov r1, #0 +_021DB60C: + ldrh r0, [r3] + add r1, r1, #1 + add r3, r3, #2 + strh r0, [r2] + add r2, r2, #2 + cmp r1, #0x10 + blt _021DB60C + bx lr + thumb_func_end MOD85_021DB604 + + thumb_func_start MOD85_021DB61C +MOD85_021DB61C: ; 0x021DB61C + push {r0, r1, r2, r3} + push {r3, r4, r5, r6} + add r1, r2, #0 + add r0, r3, #0 + add r2, sp, #0x10 + add r3, sp, #0x14 + cmp r1, #0x10 + bls _021DB62E + mov r1, #0x10 +_021DB62E: + ldrh r4, [r2] + ldrh r3, [r3] + lsl r2, r4, #0x16 + lsr r6, r2, #0x1b + lsl r2, r4, #0x1b + lsr r5, r2, #0x1b + lsl r2, r4, #0x11 + lsl r4, r3, #0x11 + lsr r2, r2, #0x1b + lsr r4, r4, #0x1b + sub r4, r4, r2 + mul r4, r1 + asr r4, r4, #4 + add r2, r2, r4 + lsl r4, r2, #0xa + lsl r2, r3, #0x1b + lsl r3, r3, #0x16 + lsr r3, r3, #0x1b + lsr r2, r2, #0x1b + sub r3, r3, r6 + sub r2, r2, r5 + mul r2, r1 + mul r3, r1 + asr r1, r3, #4 + asr r2, r2, #4 + add r1, r6, r1 + add r2, r5, r2 + lsl r1, r1, #5 + orr r1, r2 + orr r1, r4 + strh r1, [r0] + pop {r3, r4, r5, r6} + add sp, #0x10 + bx lr + .align 2, 0 + thumb_func_end MOD85_021DB61C + + thumb_func_start MOD85_021DB674 +MOD85_021DB674: ; 0x021DB674 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + str r2, [sp] + add r6, r3, #0 + mov r7, #0 +_021DB680: + ldrh r0, [r5] + ldrh r1, [r4] + ldr r2, [sp] + add r3, r6, #0 + bl MOD85_021DB61C + add r7, r7, #1 + add r6, r6, #2 + add r4, r4, #2 + add r5, r5, #2 + cmp r7, #0x10 + blt _021DB680 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021DB674 + + thumb_func_start MOD85_021DB69C +MOD85_021DB69C: ; 0x021DB69C + push {r4, lr} + add r4, r2, #0 + lsl r0, r1, #0x18 + add r1, r3, #0 + lsl r3, r4, #0x15 + lsr r0, r0, #0x18 + mov r2, #0x20 + lsr r3, r3, #0x10 + bl FUN_02017FB4 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB69C + + thumb_func_start MOD85_021DB6B4 +MOD85_021DB6B4: ; 0x021DB6B4 + push {r4, lr} + add r3, r1, #0 + lsl r4, r3, #2 + ldr r2, _021DB6D0 ; =0x021E05C0 + lsl r3, r3, #5 + ldr r2, [r2, r4] + mov r4, #0x8a + lsl r4, r4, #2 + add r4, r0, r4 + mov r1, #1 + add r3, r4, r3 + bl MOD85_021DB69C + pop {r4, pc} + .align 2, 0 +_021DB6D0: .word 0x021E05C0 + thumb_func_end MOD85_021DB6B4 + + thumb_func_start MOD85_021DB6D4 +MOD85_021DB6D4: ; 0x021DB6D4 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r2, #0x61 + lsl r2, r2, #2 + ldr r0, _021DB710 ; =0x021E05C0 + lsl r4, r1, #2 + ldr r6, [r0, r4] + add r0, r2, #0 + add r3, r7, r2 + add r0, #0x60 + add r4, r3, r0 + add r0, r3, #0 + sub r2, #0x40 + lsl r5, r1, #5 + add r1, r3, r2 + add r0, #0xa4 + add r0, r0, r5 + add r1, r1, r5 + mov r2, #0xa + add r3, r4, r5 + bl MOD85_021DB674 + add r0, r7, #0 + mov r1, #1 + add r2, r6, #0 + add r3, r4, r5 + bl MOD85_021DB69C + pop {r3, r4, r5, r6, r7, pc} + nop +_021DB710: .word 0x021E05C0 + thumb_func_end MOD85_021DB6D4 + + thumb_func_start MOD85_021DB714 +MOD85_021DB714: ; 0x021DB714 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + mov r2, #0x61 + lsl r2, r2, #2 + ldr r0, _021DB750 ; =0x021E05C0 + lsl r4, r1, #2 + ldr r6, [r0, r4] + add r0, r2, #0 + add r3, r7, r2 + add r0, #0x60 + add r4, r3, r0 + add r0, r3, #0 + sub r2, #0x40 + lsl r5, r1, #5 + add r1, r3, r2 + add r0, #0xa4 + add r0, r0, r5 + add r1, r1, r5 + mov r2, #0xc + add r3, r4, r5 + bl MOD85_021DB674 + add r0, r7, #0 + mov r1, #1 + add r2, r6, #0 + add r3, r4, r5 + bl MOD85_021DB69C + pop {r3, r4, r5, r6, r7, pc} + nop +_021DB750: .word 0x021E05C0 + thumb_func_end MOD85_021DB714 + + thumb_func_start MOD85_021DB754 +MOD85_021DB754: ; 0x021DB754 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021DB75A: + add r0, r5, #0 + add r1, r4, #0 + bl MOD85_021DB6B4 + add r4, r4, #1 + cmp r4, #5 + blt _021DB75A + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DB754 + + thumb_func_start MOD85_021DB76C +MOD85_021DB76C: ; 0x021DB76C + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r4, #0 +_021DB772: + add r0, r5, #0 + add r1, r4, #0 + bl MOD85_021DB6D4 + add r4, r4, #1 + cmp r4, #5 + blt _021DB772 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DB76C + + thumb_func_start MOD85_021DB784 +MOD85_021DB784: ; 0x021DB784 + push {r4, lr} + sub sp, #0x20 + add r4, sp, #0x14 + mov r3, #0 + str r3, [r4] + str r3, [r4, #4] + str r1, [sp, #8] + str r2, [sp, #0xc] + str r3, [r4, #8] + str r0, [sp, #0x10] + add r1, sp, #8 + str r1, [sp] + mov r1, #0x8f + str r1, [sp, #4] + ldr r1, _021DB7B0 ; =0x0000044C + add r2, r4, #0 + ldr r0, [r0, r1] + ldr r1, _021DB7B4 ; =0x021DEE0C + bl FUN_020644E4 + add sp, #0x20 + pop {r4, pc} + .align 2, 0 +_021DB7B0: .word 0x0000044C +_021DB7B4: .word 0x021DEE0C + thumb_func_end MOD85_021DB784 + + thumb_func_start MOD85_021DB7B8 +MOD85_021DB7B8: ; 0x021DB7B8 + push {r3, lr} + bl FUN_02064738 + ldr r0, [r0, #0xc] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021DB7B8 + + thumb_func_start MOD85_021DB7C4 +MOD85_021DB7C4: ; 0x021DB7C4 + push {r4, lr} + add r4, r1, #0 + bl FUN_0206475C + ldr r1, [r0, #8] + str r1, [r4, #0x1c] + ldr r1, [r0] + str r1, [r4, #0x10] + ldr r0, [r0, #4] + str r0, [r4, #0x14] + mov r0, #0x61 + ldr r1, [r4, #0x1c] + lsl r0, r0, #2 + add r0, r1, r0 + str r0, [r4, #0x20] + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB7C4 + + thumb_func_start MOD85_021DB7E8 +MOD85_021DB7E8: ; 0x021DB7E8 + ldr r3, _021DB7F0 ; =MOD85_021DB6B4 + ldr r0, [r1, #0x1c] + ldr r1, [r1, #0x10] + bx r3 + .align 2, 0 +_021DB7F0: .word MOD85_021DB6B4 + thumb_func_end MOD85_021DB7E8 + + thumb_func_start MOD85_021DB7F4 +MOD85_021DB7F4: ; 0x021DB7F4 + push {r3, r4, r5, r6, r7, lr} + add r4, r1, #0 + ldr r2, [r4, #0x10] + ldr r0, _021DB958 ; =0x021E05C0 + lsl r1, r2, #2 + ldr r0, [r0, r1] + lsl r5, r2, #5 + mov r1, #0x79 + ldr r2, [r4, #0x20] + lsl r1, r1, #2 + add r6, r2, r1 + sub r1, #0xa0 + str r0, [sp] + add r0, r2, #0 + add r1, r2, r1 + ldr r2, [r4] + add r0, #0xa4 + cmp r2, #4 + bls _021DB81C + b _021DB956 +_021DB81C: + add r2, r2, r2 + add r2, pc + ldrh r2, [r2, #6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_021DB828: ; jump table + .short _021DB832 - _021DB828 - 2 ; case 0 + .short _021DB874 - _021DB828 - 2 ; case 1 + .short _021DB8D8 - _021DB828 - 2 ; case 2 + .short _021DB91A - _021DB828 - 2 ; case 3 + .short _021DB956 - _021DB828 - 2 ; case 4 +_021DB832: + mov r7, #1 + ldr r2, [r4, #0x18] + lsl r7, r7, #0xe + add r3, r2, r7 + lsl r2, r7, #2 + str r3, [r4, #0x18] + cmp r3, r2 + ble _021DB844 + str r2, [r4, #0x18] +_021DB844: + ldr r2, [r4, #0x18] + asr r3, r2, #0xb + lsr r3, r3, #0x14 + add r3, r2, r3 + asr r2, r3, #0xc + cmp r2, #0x10 + bne _021DB858 + ldr r3, [r4] + add r3, r3, #1 + str r3, [r4] +_021DB858: + lsl r2, r2, #0x10 + add r0, r0, r5 + add r1, r1, r5 + lsr r2, r2, #0x10 + add r3, r6, r5 + bl MOD85_021DB674 + ldr r0, [r4, #0x1c] + ldr r2, [sp] + mov r1, #1 + add r3, r6, r5 + bl MOD85_021DB69C + pop {r3, r4, r5, r6, r7, pc} +_021DB874: + mov r2, #1 + ldr r3, [r4, #0x18] + lsl r2, r2, #0xe + sub r2, r3, r2 + str r2, [r4, #0x18] + bpl _021DB884 + mov r2, #0 + str r2, [r4, #0x18] +_021DB884: + ldr r2, [r4, #0x18] + asr r3, r2, #0xb + lsr r3, r3, #0x14 + add r3, r2, r3 + asr r2, r3, #0xc + bne _021DB8BC + ldr r3, [r4, #4] + add r3, r3, #1 + str r3, [r4, #4] + cmp r3, #4 + blt _021DB8B6 + ldr r3, [r4, #0x14] + cmp r3, #0 + beq _021DB8AC + ldr r3, [r4] + add r3, r3, #1 + str r3, [r4] + mov r3, #1 + str r3, [r4, #0xc] + b _021DB8BC +_021DB8AC: + mov r3, #4 + str r3, [r4] + mov r3, #1 + str r3, [r4, #0xc] + b _021DB8BC +_021DB8B6: + ldr r3, [r4] + sub r3, r3, #1 + str r3, [r4] +_021DB8BC: + lsl r2, r2, #0x10 + add r0, r0, r5 + add r1, r1, r5 + lsr r2, r2, #0x10 + add r3, r6, r5 + bl MOD85_021DB674 + ldr r0, [r4, #0x1c] + ldr r2, [sp] + mov r1, #1 + add r3, r6, r5 + bl MOD85_021DB69C + pop {r3, r4, r5, r6, r7, pc} +_021DB8D8: + mov r7, #2 + ldr r2, [r4, #0x18] + lsl r7, r7, #0xe + add r3, r2, r7 + lsl r2, r7, #1 + str r3, [r4, #0x18] + cmp r3, r2 + ble _021DB8EA + str r2, [r4, #0x18] +_021DB8EA: + ldr r2, [r4, #0x18] + asr r3, r2, #0xb + lsr r3, r3, #0x14 + add r3, r2, r3 + asr r2, r3, #0xc + cmp r2, #0x10 + bne _021DB8FE + ldr r3, [r4] + add r3, r3, #1 + str r3, [r4] +_021DB8FE: + lsl r2, r2, #0x10 + add r0, r0, r5 + add r1, r1, r5 + lsr r2, r2, #0x10 + add r3, r6, r5 + bl MOD85_021DB674 + ldr r0, [r4, #0x1c] + ldr r2, [sp] + mov r1, #1 + add r3, r6, r5 + bl MOD85_021DB69C + pop {r3, r4, r5, r6, r7, pc} +_021DB91A: + mov r2, #2 + ldr r3, [r4, #0x18] + lsl r2, r2, #0xe + sub r2, r3, r2 + str r2, [r4, #0x18] + bpl _021DB92A + mov r2, #0 + str r2, [r4, #0x18] +_021DB92A: + ldr r2, [r4, #0x18] + asr r3, r2, #0xb + lsr r3, r3, #0x14 + add r3, r2, r3 + asr r2, r3, #0xc + bne _021DB93C + ldr r3, [r4] + sub r3, r3, #1 + str r3, [r4] +_021DB93C: + lsl r2, r2, #0x10 + add r0, r0, r5 + add r1, r1, r5 + lsr r2, r2, #0x10 + add r3, r6, r5 + bl MOD85_021DB674 + ldr r0, [r4, #0x1c] + ldr r2, [sp] + mov r1, #1 + add r3, r6, r5 + bl MOD85_021DB69C +_021DB956: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DB958: .word 0x021E05C0 + thumb_func_end MOD85_021DB7F4 + + thumb_func_start MOD85_021DB95C +MOD85_021DB95C: ; 0x021DB95C + push {r3, r4, lr} + sub sp, #0x14 + add r4, r0, #0 + add r1, sp, #8 + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + str r0, [r1, #8] + mov r0, #0x4d + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021DB97A + bl ErrorHandling +_021DB97A: + str r4, [sp] + mov r0, #0x8f + str r0, [sp, #4] + ldr r0, _021DB998 ; =0x0000044C + ldr r1, _021DB99C ; =0x021DEE5C + ldr r0, [r4, r0] + add r2, sp, #8 + mov r3, #0 + bl FUN_020644E4 + mov r1, #0x4d + lsl r1, r1, #2 + str r0, [r4, r1] + add sp, #0x14 + pop {r3, r4, pc} + .align 2, 0 +_021DB998: .word 0x0000044C +_021DB99C: .word 0x021DEE5C + thumb_func_end MOD85_021DB95C + + thumb_func_start MOD85_021DB9A0 +MOD85_021DB9A0: ; 0x021DB9A0 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x4d + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0 + beq _021DB9BA + bl FUN_02064520 + mov r0, #0x4d + mov r1, #0 + lsl r0, r0, #2 + str r1, [r4, r0] +_021DB9BA: + add r0, r4, #0 + bl MOD85_021DB754 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DB9A0 + + thumb_func_start MOD85_021DB9C4 +MOD85_021DB9C4: ; 0x021DB9C4 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r6, r0, #0 + ldr r0, [r6, #4] + ldr r1, _021DBADC ; =0x021DF094 + lsl r0, r0, #4 + add r4, r1, r0 + mov r0, #1 + str r0, [sp, #8] + str r0, [sp, #0xc] + ldr r0, _021DBAE0 ; =0x021E05C0 + add r5, r6, #0 + str r0, [sp] + mov r7, #0 +_021DB9E0: + ldr r1, [r4] + ldr r0, [sp, #0xc] + tst r0, r1 + beq _021DBA6C + ldr r0, [r6, #8] + cmp r0, #0 + bne _021DB9F8 + ldr r0, [r4, #4] + str r0, [r5, #0x14] + mov r0, #0 + str r0, [sp, #8] + b _021DBA2C +_021DB9F8: + ldr r1, [r4, #4] + ldr r0, [r4, #8] + cmp r1, r0 + ldr r1, [r5, #0x14] + bge _021DBA18 + ldr r0, [r4, #0xc] + add r1, r1, r0 + str r1, [r5, #0x14] + ldr r0, [r4, #8] + cmp r1, r0 + blt _021DBA12 + str r0, [r5, #0x14] + b _021DBA2C +_021DBA12: + mov r0, #0 + str r0, [sp, #8] + b _021DBA2C +_021DBA18: + ldr r0, [r4, #0xc] + sub r1, r1, r0 + str r1, [r5, #0x14] + ldr r0, [r4, #8] + cmp r1, r0 + bgt _021DBA28 + str r0, [r5, #0x14] + b _021DBA2C +_021DBA28: + mov r0, #0 + str r0, [sp, #8] +_021DBA2C: + ldr r0, [sp] + mov r2, #0x51 + ldr r0, [r0] + ldr r1, [r6, #0x2c] + str r0, [sp, #4] + mov r0, #0x79 + lsl r0, r0, #2 + add r0, r1, r0 + str r0, [sp, #0x10] + add r0, r1, #0 + lsl r2, r2, #2 + add r1, r1, r2 + ldr r3, [r5, #0x14] + add r0, #0xa4 + asr r2, r3, #0xb + lsr r2, r2, #0x14 + add r2, r3, r2 + ldr r3, [sp, #0x10] + lsl r2, r2, #4 + add r0, r0, r7 + add r1, r1, r7 + lsr r2, r2, #0x10 + add r3, r3, r7 + bl MOD85_021DB674 + ldr r3, [sp, #0x10] + ldr r0, [r6, #0x28] + ldr r2, [sp, #4] + mov r1, #1 + add r3, r3, r7 + bl MOD85_021DB69C +_021DBA6C: + ldr r0, [sp] + add r5, r5, #4 + add r0, r0, #4 + str r0, [sp] + ldr r0, [sp, #0xc] + add r7, #0x20 + lsl r0, r0, #1 + str r0, [sp, #0xc] + cmp r0, #0x10 + bls _021DB9E0 + cmp r0, #0x20 + bhi _021DBAB6 + add r5, r6, #0 + mov r7, #1 + add r5, #0xc + mov r1, #0 + lsl r7, r7, #0xc + mov r0, #0x20 +_021DBA90: + ldr r2, [r4] + tst r2, r0 + beq _021DBAAC + ldr r2, [r5] + add r2, r2, r7 + str r2, [r5] + ldr r3, [r6, #0xc] + ldr r2, [r4, #4] + cmp r3, r2 + blt _021DBAA8 + str r1, [r6, #0xc] + b _021DBAAC +_021DBAA8: + mov r2, #0 + str r2, [sp, #8] +_021DBAAC: + ldr r2, [sp, #0xc] + lsl r2, r2, #1 + str r2, [sp, #0xc] + cmp r2, #0x20 + bls _021DBA90 +_021DBAB6: + mov r0, #1 + str r0, [r6, #8] + ldr r0, [sp, #8] + cmp r0, #1 + bne _021DBAD6 + mov r3, #0 + str r3, [r6, #8] + ldr r0, [r6, #4] + ldr r1, _021DBADC ; =0x021DF094 + add r0, r0, #1 + str r0, [r6, #4] + lsl r0, r0, #4 + ldr r0, [r1, r0] + cmp r0, #0x40 + bne _021DBAD6 + str r3, [r6, #4] +_021DBAD6: + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021DBADC: .word 0x021DF094 +_021DBAE0: .word 0x021E05C0 + thumb_func_end MOD85_021DB9C4 + + thumb_func_start MOD85_021DBAE4 +MOD85_021DBAE4: ; 0x021DBAE4 + push {r4, lr} + add r4, r1, #0 + bl FUN_0206475C + mov r1, #0x61 + lsl r1, r1, #2 + str r0, [r4, #0x28] + add r0, r0, r1 + str r0, [r4, #0x2c] + mov r0, #1 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DBAE4 + + thumb_func_start MOD85_021DBAFC +MOD85_021DBAFC: ; 0x021DBAFC + bx lr + .align 2, 0 + thumb_func_end MOD85_021DBAFC + + thumb_func_start MOD85_021DBB00 +MOD85_021DBB00: ; 0x021DBB00 + ldr r3, _021DBB08 ; =MOD85_021DB9C4 + add r0, r1, #0 + bx r3 + nop +_021DBB08: .word MOD85_021DB9C4 + thumb_func_end MOD85_021DBB00 + + thumb_func_start MOD85_021DBB0C +MOD85_021DBB0C: ; 0x021DBB0C + push {r4, lr} + add r4, r0, #0 + mov r0, #0x4f + mov r1, #0x10 + bl FUN_020169D8 + add r1, r0, #0 + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + ldr r0, _021DBB2C ; =MOD85_021DBB88 + mov r2, #0x8f + str r4, [r1, #0xc] + bl FUN_0200CA44 + pop {r4, pc} + .align 2, 0 +_021DBB2C: .word MOD85_021DBB88 + thumb_func_end MOD85_021DBB0C + + thumb_func_start MOD85_021DBB30 +MOD85_021DBB30: ; 0x021DBB30 + push {r4, lr} + add r4, r0, #0 + mov r0, #0x4f + mov r1, #0x10 + bl FUN_020169D8 + add r1, r0, #0 + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + ldr r0, _021DBB50 ; =MOD85_021DBBE8 + mov r2, #0x8f + str r4, [r1, #0xc] + bl FUN_0200CA44 + pop {r4, pc} + .align 2, 0 +_021DBB50: .word MOD85_021DBBE8 + thumb_func_end MOD85_021DBB30 + + thumb_func_start MOD85_021DBB54 +MOD85_021DBB54: ; 0x021DBB54 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + mov r0, #0x4f + mov r1, #0x10 + bl FUN_020169D8 + add r1, r0, #0 + mov r0, #0 + str r0, [r1] + mov r0, #2 + str r4, [r1, #8] + lsl r0, r0, #0xe + str r0, [r1, #4] + ldr r0, _021DBB84 ; =MOD85_021DBC48 + mov r2, #0x8f + str r5, [r1, #0xc] + bl FUN_0200CA44 + mov r0, #0x5f + lsl r0, r0, #4 + bl FUN_020054C8 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DBB84: .word MOD85_021DBC48 + thumb_func_end MOD85_021DBB54 + + thumb_func_start MOD85_021DBB88 +MOD85_021DBB88: ; 0x021DBB88 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r7, r0, #0 + mov r0, #0x61 + ldr r1, [r5, #0xc] + lsl r0, r0, #2 + add r2, r1, r0 + mov r0, #2 + ldr r3, [r5, #4] + lsl r0, r0, #0xa + add r0, r3, r0 + asr r3, r0, #0xb + lsr r3, r3, #0x14 + add r1, r2, #0 + add r6, r2, #0 + add r3, r0, r3 + str r0, [r5, #4] + lsl r0, r3, #4 + lsr r4, r0, #0x10 + add r1, #0x24 + add r6, #0x84 + cmp r4, #0x10 + bls _021DBBB8 + mov r4, #0x10 +_021DBBB8: + add r0, r2, #4 + add r2, r4, #0 + add r3, r6, #0 + bl MOD85_021DB674 + ldr r0, [r5, #0xc] + mov r1, #7 + mov r2, #1 + add r3, r6, #0 + bl MOD85_021DB69C + cmp r4, #0x10 + beq _021DBBDA + ldr r0, [r5, #0xc] + ldr r0, [r0] + cmp r0, #0x3f + bne _021DBBE6 +_021DBBDA: + add r0, r5, #0 + bl FUN_02016A18 + add r0, r7, #0 + bl FUN_0200CAB4 +_021DBBE6: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DBB88 + + thumb_func_start MOD85_021DBBE8 +MOD85_021DBBE8: ; 0x021DBBE8 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r7, r0, #0 + mov r0, #0x61 + ldr r1, [r5, #0xc] + lsl r0, r0, #2 + add r2, r1, r0 + mov r1, #2 + ldr r3, [r5, #4] + lsl r1, r1, #0xa + add r1, r3, r1 + asr r3, r1, #0xb + lsr r3, r3, #0x14 + add r0, r2, #0 + add r6, r2, #0 + add r3, r1, r3 + str r1, [r5, #4] + lsl r1, r3, #4 + lsr r4, r1, #0x10 + add r0, #0x24 + add r6, #0x84 + cmp r4, #0x10 + bls _021DBC18 + mov r4, #0x10 +_021DBC18: + add r1, r2, #4 + add r2, r4, #0 + add r3, r6, #0 + bl MOD85_021DB674 + ldr r0, [r5, #0xc] + mov r1, #7 + mov r2, #1 + add r3, r6, #0 + bl MOD85_021DB69C + cmp r4, #0x10 + beq _021DBC3A + ldr r0, [r5, #0xc] + ldr r0, [r0] + cmp r0, #0x3f + bne _021DBC46 +_021DBC3A: + add r0, r5, #0 + bl FUN_02016A18 + add r0, r7, #0 + bl FUN_0200CAB4 +_021DBC46: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DBBE8 + + thumb_func_start MOD85_021DBC48 +MOD85_021DBC48: ; 0x021DBC48 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + ldr r1, [r5, #0xc] + mov r2, #0x61 + lsl r2, r2, #2 + add r7, r0, #0 + add r0, r1, r2 + add r6, r1, r2 + ldr r3, [r1] + add r0, #0x24 + add r6, #0x84 + cmp r3, #0x3f + bne _021DBC70 + add r0, r5, #0 + bl FUN_02016A18 + add r0, r7, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, r6, r7, pc} +_021DBC70: + ldr r3, [r5, #8] + cmp r3, #0 + bne _021DBC7C + add r1, r1, r2 + add r1, #0x44 + b _021DBC80 +_021DBC7C: + add r1, r1, r2 + add r1, #0x64 +_021DBC80: + ldr r2, [r5] + cmp r2, #0 + beq _021DBC8C + cmp r2, #1 + beq _021DBCC2 + pop {r3, r4, r5, r6, r7, pc} +_021DBC8C: + mov r2, #1 + ldr r3, [r5, #4] + lsl r2, r2, #0xc + add r3, r3, r2 + asr r2, r3, #0xb + lsr r2, r2, #0x14 + add r2, r3, r2 + asr r2, r2, #0xc + str r3, [r5, #4] + cmp r2, #0x10 + ble _021DBCAA + ldr r3, [r5] + mov r2, #0x10 + add r3, r3, #1 + str r3, [r5] +_021DBCAA: + lsl r2, r2, #0x10 + lsr r2, r2, #0x10 + add r3, r6, #0 + bl MOD85_021DB674 + ldr r0, [r5, #0xc] + mov r1, #7 + mov r2, #1 + add r3, r6, #0 + bl MOD85_021DB69C + pop {r3, r4, r5, r6, r7, pc} +_021DBCC2: + mov r2, #1 + ldr r3, [r5, #4] + lsl r2, r2, #0xa + sub r2, r3, r2 + asr r3, r2, #0xb + lsr r3, r3, #0x14 + add r3, r2, r3 + str r2, [r5, #4] + asr r4, r3, #0xc + bpl _021DBCD8 + mov r4, #0 +_021DBCD8: + lsl r2, r4, #0x10 + lsr r2, r2, #0x10 + add r3, r6, #0 + bl MOD85_021DB674 + ldr r0, [r5, #0xc] + mov r1, #7 + mov r2, #1 + add r3, r6, #0 + bl MOD85_021DB69C + cmp r4, #0 + bne _021DBCFE + add r0, r5, #0 + bl FUN_02016A18 + add r0, r7, #0 + bl FUN_0200CAB4 +_021DBCFE: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DBC48 + + thumb_func_start MOD85_021DBD00 +MOD85_021DBD00: ; 0x021DBD00 + push {r4, lr} + add r4, r1, #0 + lsl r1, r4, #2 + add r0, r0, r1 + add r0, #0xa8 + ldr r0, [r0] + mov r1, #0x15 + add r0, r2, r0 + bl _s32_div_f + cmp r1, #0 + bge _021DBD1A + add r1, #0x15 +_021DBD1A: + mov r0, #0x54 + add r2, r4, #0 + mul r2, r0 + ldr r0, _021DBD2C ; =0x021DFDE4 + lsl r1, r1, #2 + add r0, r0, r2 + ldr r0, [r1, r0] + pop {r4, pc} + nop +_021DBD2C: .word 0x021DFDE4 + thumb_func_end MOD85_021DBD00 + + thumb_func_start MOD85_021DBD30 +MOD85_021DBD30: ; 0x021DBD30 + push {r4, r5, r6, lr} + lsl r4, r1, #2 + add r4, r0, r4 + add r4, #0x90 + ldr r4, [r4] + mov r3, #0 + lsr r6, r4, #0x1f + lsl r5, r4, #0xf + sub r5, r5, r6 + mov r4, #0xf + ror r5, r4 + add r4, r6, r5 + beq _021DBD4C + sub r3, r3, #1 +_021DBD4C: + add r2, r2, r3 + bl MOD85_021DBD00 + pop {r4, r5, r6, pc} + thumb_func_end MOD85_021DBD30 + + thumb_func_start MOD85_021DBD54 +MOD85_021DBD54: ; 0x021DBD54 + ldr r1, _021DBD70 ; =0x021C48B8 + ldr r1, [r1, #0x48] + and r1, r0 + cmp r1, r0 + bne _021DBD62 + mov r0, #2 + bx lr +_021DBD62: + tst r0, r1 + beq _021DBD6A + mov r0, #1 + bx lr +_021DBD6A: + mov r0, #0 + bx lr + nop +_021DBD70: .word 0x021C48B8 + thumb_func_end MOD85_021DBD54 + + thumb_func_start MOD85_021DBD74 +MOD85_021DBD74: ; 0x021DBD74 + mov r2, #3 + add r1, r0, #0 + tst r1, r2 + beq _021DBD80 + mov r0, #2 + bx lr +_021DBD80: + mov r1, #0xc + tst r1, r0 + beq _021DBD8A + add r0, r2, #0 + bx lr +_021DBD8A: + mov r1, #0x30 + tst r1, r0 + beq _021DBD94 + mov r0, #4 + bx lr +_021DBD94: + mov r1, #0xc0 + add r2, r0, #0 + tst r2, r1 + beq _021DBDA0 + mov r0, #5 + bx lr +_021DBDA0: + add r1, #0x40 + tst r1, r0 + beq _021DBDAA + mov r0, #1 + bx lr +_021DBDAA: + mov r1, #2 + lsl r1, r1, #8 + tst r0, r1 + beq _021DBDB6 + mov r0, #0 + bx lr +_021DBDB6: + mov r0, #6 + bx lr + .align 2, 0 + thumb_func_end MOD85_021DBD74 + + thumb_func_start MOD85_021DBDBC +MOD85_021DBDBC: ; 0x021DBDBC + push {r4, r5, r6, lr} + mov r1, #0 + mov r2, #1 + add r5, r0, #0 + bl MOD85_021DBD30 + mov r1, #1 + add r4, r0, #0 + add r0, r5, #0 + add r2, r1, #0 + bl MOD85_021DBD30 + add r6, r0, #0 + add r0, r5, #0 + mov r1, #2 + mov r2, #1 + bl MOD85_021DBD30 + cmp r4, #3 + beq _021DBDEC + cmp r4, r6 + bne _021DBDF0 + cmp r4, r0 + bne _021DBDF0 +_021DBDEC: + add r0, r4, #0 + pop {r4, r5, r6, pc} +_021DBDF0: + mov r0, #6 + pop {r4, r5, r6, pc} + thumb_func_end MOD85_021DBDBC + + thumb_func_start MOD85_021DBDF4 +MOD85_021DBDF4: ; 0x021DBDF4 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r1, #0 + mov r2, #2 + bl MOD85_021DBD30 + add r4, r0, #0 + add r0, r5, #0 + mov r1, #1 + mov r2, #2 + bl MOD85_021DBD30 + mov r1, #2 + add r6, r0, #0 + add r0, r5, #0 + add r2, r1, #0 + bl MOD85_021DBD30 + cmp r4, #3 + beq _021DBE24 + cmp r4, r6 + bne _021DBE28 + cmp r4, r0 + bne _021DBE28 +_021DBE24: + add r0, r4, #0 + pop {r4, r5, r6, pc} +_021DBE28: + mov r0, #6 + pop {r4, r5, r6, pc} + thumb_func_end MOD85_021DBDF4 + + thumb_func_start MOD85_021DBE2C +MOD85_021DBE2C: ; 0x021DBE2C + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r1, #0 + mov r2, #3 + bl MOD85_021DBD30 + add r4, r0, #0 + add r0, r5, #0 + mov r1, #1 + mov r2, #3 + bl MOD85_021DBD30 + add r6, r0, #0 + add r0, r5, #0 + mov r1, #2 + mov r2, #3 + bl MOD85_021DBD30 + cmp r4, #3 + beq _021DBE5C + cmp r4, r6 + bne _021DBE60 + cmp r4, r0 + bne _021DBE60 +_021DBE5C: + add r0, r4, #0 + pop {r4, r5, r6, pc} +_021DBE60: + mov r0, #6 + pop {r4, r5, r6, pc} + thumb_func_end MOD85_021DBE2C + + thumb_func_start MOD85_021DBE64 +MOD85_021DBE64: ; 0x021DBE64 + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r1, #0 + mov r2, #1 + bl MOD85_021DBD30 + add r4, r0, #0 + add r0, r5, #0 + mov r1, #1 + mov r2, #2 + bl MOD85_021DBD30 + add r6, r0, #0 + add r0, r5, #0 + mov r1, #2 + mov r2, #3 + bl MOD85_021DBD30 + cmp r4, #3 + beq _021DBE94 + cmp r4, r6 + bne _021DBE98 + cmp r4, r0 + bne _021DBE98 +_021DBE94: + add r0, r4, #0 + pop {r4, r5, r6, pc} +_021DBE98: + mov r0, #6 + pop {r4, r5, r6, pc} + thumb_func_end MOD85_021DBE64 + + thumb_func_start MOD85_021DBE9C +MOD85_021DBE9C: ; 0x021DBE9C + push {r4, r5, r6, lr} + add r5, r0, #0 + mov r1, #0 + mov r2, #3 + bl MOD85_021DBD30 + add r4, r0, #0 + add r0, r5, #0 + mov r1, #1 + mov r2, #2 + bl MOD85_021DBD30 + add r6, r0, #0 + add r0, r5, #0 + mov r1, #2 + mov r2, #1 + bl MOD85_021DBD30 + cmp r4, #3 + beq _021DBECC + cmp r4, r6 + bne _021DBED0 + cmp r4, r0 + bne _021DBED0 +_021DBECC: + add r0, r4, #0 + pop {r4, r5, r6, pc} +_021DBED0: + mov r0, #6 + pop {r4, r5, r6, pc} + thumb_func_end MOD85_021DBE9C + + thumb_func_start MOD85_021DBED4 +MOD85_021DBED4: ; 0x021DBED4 + push {r4, r5, r6, lr} + add r4, r2, #0 + mov r1, #0 + add r5, r0, #0 + str r1, [r4] + mov r6, #6 + bl MOD85_021DBDBC + cmp r0, #6 + beq _021DBEF2 + ldr r1, [r4] + add r6, r0, #0 + mov r0, #2 + orr r0, r1 + str r0, [r4] +_021DBEF2: + add r0, r5, #0 + bl MOD85_021DBDF4 + cmp r0, #6 + beq _021DBF06 + ldr r1, [r4] + add r6, r0, #0 + mov r0, #1 + orr r0, r1 + str r0, [r4] +_021DBF06: + add r0, r5, #0 + bl MOD85_021DBE2C + cmp r0, #6 + beq _021DBF1A + ldr r1, [r4] + add r6, r0, #0 + mov r0, #4 + orr r0, r1 + str r0, [r4] +_021DBF1A: + add r0, r5, #0 + bl MOD85_021DBE64 + cmp r0, #6 + beq _021DBF2E + ldr r1, [r4] + add r6, r0, #0 + mov r0, #8 + orr r0, r1 + str r0, [r4] +_021DBF2E: + add r0, r5, #0 + bl MOD85_021DBE9C + cmp r0, #6 + beq _021DBF42 + ldr r1, [r4] + add r6, r0, #0 + mov r0, #0x10 + orr r0, r1 + str r0, [r4] +_021DBF42: + add r0, r6, #0 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD85_021DBED4 + + thumb_func_start MOD85_021DBF48 +MOD85_021DBF48: ; 0x021DBF48 + push {r3, r4, r5, lr} + add r5, r2, #0 + mov r1, #0 + str r1, [r5] + bl MOD85_021DBDF4 + add r4, r0, #0 + cmp r4, #6 + beq _021DBF6A + cmp r4, #2 + beq _021DBF62 + bl ErrorHandling +_021DBF62: + ldr r1, [r5] + mov r0, #1 + orr r0, r1 + str r0, [r5] +_021DBF6A: + add r0, r4, #0 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DBF48 + + thumb_func_start MOD85_021DBF70 +MOD85_021DBF70: ; 0x021DBF70 + push {r3, lr} + mov r2, #3 + add r1, r0, #0 + tst r1, r2 + beq _021DBF7E + mov r0, #1 + pop {r3, pc} +_021DBF7E: + mov r1, #0xc + tst r1, r0 + beq _021DBF88 + mov r0, #0 + pop {r3, pc} +_021DBF88: + mov r1, #0x30 + tst r1, r0 + beq _021DBF92 + mov r0, #2 + pop {r3, pc} +_021DBF92: + mov r1, #0xc0 + tst r0, r1 + beq _021DBF9C + add r0, r2, #0 + pop {r3, pc} +_021DBF9C: + bl ErrorHandling + mov r0, #4 + pop {r3, pc} + thumb_func_end MOD85_021DBF70 + + thumb_func_start MOD85_021DBFA4 +MOD85_021DBFA4: ; 0x021DBFA4 + mov r2, #0 + add r1, r2, #0 +_021DBFA8: + add r2, r2, #1 + str r1, [r0, #0x54] + add r0, r0, #4 + cmp r2, #3 + blt _021DBFA8 + bx lr + thumb_func_end MOD85_021DBFA4 + + thumb_func_start MOD85_021DBFB4 +MOD85_021DBFB4: ; 0x021DBFB4 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r4, #0 + add r1, r5, #0 +_021DBFBE: + ldr r0, [r1, #0x54] + cmp r0, #0 + beq _021DBFCC + add r4, r4, #1 + add r1, r1, #4 + cmp r4, #3 + blt _021DBFBE +_021DBFCC: + cmp r4, #3 + blt _021DBFD4 + bl ErrorHandling +_021DBFD4: + lsl r0, r4, #2 + add r0, r5, r0 + str r6, [r0, #0x54] + pop {r4, r5, r6, pc} + thumb_func_end MOD85_021DBFB4 + + thumb_func_start MOD85_021DBFDC +MOD85_021DBFDC: ; 0x021DBFDC + push {r4, r5, r6} + sub sp, #0xc + ldr r6, _021DC018 ; =0x021DEDC8 + add r4, r0, #0 + ldmia r6!, {r0, r1} + add r5, sp, #0 + add r3, r5, #0 + stmia r5!, {r0, r1} + ldr r0, [r6] + mov r2, #0 + str r0, [r5] +_021DBFF2: + ldr r1, [r4, #0x54] + cmp r1, #0 + beq _021DC006 + ldr r0, [r3] + cmp r1, r0 + beq _021DC006 + add sp, #0xc + mov r0, #0 + pop {r4, r5, r6} + bx lr +_021DC006: + add r2, r2, #1 + add r4, r4, #4 + add r3, r3, #4 + cmp r2, #3 + blt _021DBFF2 + mov r0, #1 + add sp, #0xc + pop {r4, r5, r6} + bx lr + .align 2, 0 +_021DC018: .word 0x021DEDC8 + thumb_func_end MOD85_021DBFDC + + thumb_func_start MOD85_021DC01C +MOD85_021DC01C: ; 0x021DC01C + push {r3, r4} + ldr r2, [r0, #0x34] + mov r1, #0x18 + ldr r3, _021DC04C ; =0x021DEF04 + mul r1, r2 + mov r4, #0 + add r3, r3, r1 +_021DC02A: + ldr r2, [r0, #0x54] + cmp r2, #0 + beq _021DC03C + ldr r1, [r3] + cmp r2, r1 + beq _021DC03C + mov r0, #0 + pop {r3, r4} + bx lr +_021DC03C: + add r4, r4, #1 + add r0, r0, #4 + add r3, r3, #4 + cmp r4, #3 + blt _021DC02A + mov r0, #1 + pop {r3, r4} + bx lr + .align 2, 0 +_021DC04C: .word 0x021DEF04 + thumb_func_end MOD85_021DC01C + + thumb_func_start MOD85_021DC050 +MOD85_021DC050: ; 0x021DC050 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #3 + str r0, [sp] + mov r0, #2 + lsl r2, r1, #3 + ldr r3, _021DC08C ; =0x021DEE9C + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + add r5, r3, r2 + ldr r2, [r3, r2] + ldr r0, _021DC090 ; =0x0000043C + ldr r3, [r5, #4] + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r4, r0] + mov r1, #1 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_020186B4 + ldr r0, _021DC090 ; =0x0000043C + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_0201AC68 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_021DC08C: .word 0x021DEE9C +_021DC090: .word 0x0000043C + thumb_func_end MOD85_021DC050 + + thumb_func_start MOD85_021DC094 +MOD85_021DC094: ; 0x021DC094 + push {r4, r5, lr} + sub sp, #0xc + add r4, r0, #0 + mov r0, #3 + str r0, [sp] + mov r0, #2 + lsl r2, r1, #3 + ldr r3, _021DC0D0 ; =0x021DEE9C + str r0, [sp, #4] + mov r0, #5 + str r0, [sp, #8] + add r5, r3, r2 + ldr r2, [r3, r2] + ldr r0, _021DC0D4 ; =0x0000043C + ldr r3, [r5, #4] + lsl r2, r2, #0x18 + lsl r3, r3, #0x18 + ldr r0, [r4, r0] + mov r1, #1 + lsr r2, r2, #0x18 + lsr r3, r3, #0x18 + bl FUN_020186B4 + ldr r0, _021DC0D4 ; =0x0000043C + mov r1, #1 + ldr r0, [r4, r0] + bl FUN_0201AC68 + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_021DC0D0: .word 0x021DEE9C +_021DC0D4: .word 0x0000043C + thumb_func_end MOD85_021DC094 + + thumb_func_start MOD85_021DC0D8 +MOD85_021DC0D8: ; 0x021DC0D8 + push {r3, r4, r5, lr} + ldr r4, [r0, #0x44] + ldr r5, [r0, #0x48] + cmp r4, #6 + bne _021DC0E6 + bl ErrorHandling +_021DC0E6: + ldr r3, _021DC104 ; =0x021DFCAC + lsl r2, r4, #2 + mov r1, #0 + ldr r3, [r3, r2] + add r0, r1, #0 + mov r2, #1 +_021DC0F2: + add r4, r5, #0 + tst r4, r2 + beq _021DC0FA + add r0, r0, r3 +_021DC0FA: + add r1, r1, #1 + lsr r5, r5, #1 + cmp r1, #5 + blt _021DC0F2 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DC104: .word 0x021DFCAC + thumb_func_end MOD85_021DC0D8 + + thumb_func_start MOD85_021DC108 +MOD85_021DC108: ; 0x021DC108 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + add r7, r0, #0 + mov r4, #0 + add r0, sp, #8 + str r4, [r0] + str r4, [r0, #4] + mov r6, #0x11 + lsl r6, r6, #0xe + str r4, [r0, #8] + str r7, [sp, #0x14] + cmp r4, #3 + bge _021DC15A +_021DC122: + mov r5, #0 +_021DC124: + str r6, [sp, #8] + str r4, [sp, #0x1c] + str r5, [sp, #0x18] + add r0, sp, #0x14 + str r0, [sp] + mov r0, #0x8b + str r0, [sp, #4] + ldr r0, _021DC160 ; =0x0000044C + ldr r1, _021DC164 ; =0x021DF938 + ldr r0, [r7, r0] + add r2, sp, #8 + mov r3, #0 + bl FUN_020644E4 + mov r0, #2 + lsl r0, r0, #0x10 + add r5, r5, r0 + mov r0, #0xa + lsl r0, r0, #0x10 + cmp r5, r0 + blt _021DC124 + mov r0, #0xf + lsl r0, r0, #0xe + add r4, r4, #1 + add r6, r6, r0 + cmp r4, #3 + blt _021DC122 +_021DC15A: + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + nop +_021DC160: .word 0x0000044C +_021DC164: .word 0x021DF938 + thumb_func_end MOD85_021DC108 + + thumb_func_start MOD85_021DC168 +MOD85_021DC168: ; 0x021DC168 + push {r3, r4, r5, lr} + sub sp, #0x28 + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0206475C + add r3, r0, #0 + ldmia r3!, {r0, r1} + add r2, r4, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r1, sp, #0x1c + str r0, [r2] + add r0, r5, #0 + bl FUN_0206477C + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r0, #3 + str r0, [sp, #0x14] + mov r0, #2 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r4] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r4, #0 + add r1, #0xc + add r2, sp, #0x1c + mov r3, #1 + bl MOD85_021DEC00 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_020200BC + mov r0, #1 + add sp, #0x28 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DC168 + + thumb_func_start MOD85_021DC1C0 +MOD85_021DC1C0: ; 0x021DC1C0 + ldr r3, _021DC1C8 ; =MOD85_021DECA0 + add r1, #0xc + add r0, r1, #0 + bx r3 + .align 2, 0 +_021DC1C8: .word MOD85_021DECA0 + thumb_func_end MOD85_021DC1C0 + + thumb_func_start MOD85_021DC1CC +MOD85_021DC1CC: ; 0x021DC1CC + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r5, r1, #0 + ldr r7, [r5, #8] + str r0, [sp] + ldr r0, [r5] + lsl r6, r7, #2 + add r0, r0, r6 + add r0, #0x90 + ldr r1, [r5, #4] + ldr r0, [r0] + add r0, r1, r0 + mov r1, #0xa + lsl r1, r1, #0x10 + bl _s32_div_f + add r4, r1, #0 + ldr r0, [sp] + add r1, sp, #4 + bl FUN_0206477C + ldr r1, [r5] + mov r0, #1 + add r1, r1, r6 + add r1, #0x9c + lsl r0, r0, #0x10 + ldr r1, [r1] + add r0, r4, r0 + add r0, r0, r1 + str r0, [sp, #8] + ldr r0, [r5, #0x10] + add r1, sp, #4 + bl FUN_02020044 + asr r2, r4, #0x10 + lsr r2, r2, #0xf + add r2, r4, r2 + ldr r0, [r5] + add r1, r7, #0 + asr r2, r2, #0x11 + bl MOD85_021DBD00 + lsl r1, r0, #2 + ldr r0, _021DC244 ; =0x021DF9D8 + ldr r4, [r0, r1] + ldr r0, [r5, #0x10] + bl FUN_020201DC + cmp r4, r0 + beq _021DC240 + ldr r0, [r5, #0x10] + add r1, r4, #0 + bl FUN_02020130 + ldr r0, [r5, #0x10] + mov r1, #0 + bl FUN_02020208 +_021DC240: + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DC244: .word 0x021DF9D8 + thumb_func_end MOD85_021DC1CC + + thumb_func_start MOD85_021DC248 +MOD85_021DC248: ; 0x021DC248 + bx lr + .align 2, 0 + thumb_func_end MOD85_021DC248 + + thumb_func_start MOD85_021DC24C +MOD85_021DC24C: ; 0x021DC24C + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + ldr r3, _021DC290 ; =0x021DF628 + add r5, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #8 + add r6, r2, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r4, #1 + str r0, [r2] + mov r7, #0x8d +_021DC264: + str r5, [sp] + ldr r0, _021DC294 ; =0x0000044C + str r7, [sp, #4] + ldr r0, [r5, r0] + ldr r1, _021DC298 ; =0x021DF94C + add r2, r6, #0 + add r3, r4, #0 + bl FUN_020644E4 + mov r0, #0xa + mul r4, r0 + mov r0, #2 + ldr r1, [sp, #8] + lsl r0, r0, #0xe + sub r0, r1, r0 + str r0, [sp, #8] + ldr r0, _021DC29C ; =0x000186A0 + cmp r4, r0 + blo _021DC264 + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021DC290: .word 0x021DF628 +_021DC294: .word 0x0000044C +_021DC298: .word 0x021DF94C +_021DC29C: .word 0x000186A0 + thumb_func_end MOD85_021DC24C + + thumb_func_start MOD85_021DC2A0 +MOD85_021DC2A0: ; 0x021DC2A0 + push {r3, r4, r5, lr} + sub sp, #0x28 + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02064754 + mov r1, #0xa + str r0, [r4, #4] + mul r1, r0 + str r1, [r4, #8] + add r0, r5, #0 + bl FUN_0206475C + str r0, [r4] + add r0, r5, #0 + add r1, sp, #0x1c + bl FUN_0206477C + mov r0, #0 + str r0, [sp] + mov r3, #1 + str r3, [sp, #4] + str r3, [sp, #8] + str r3, [sp, #0xc] + str r3, [sp, #0x10] + str r3, [sp, #0x14] + str r3, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r4] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r4, #0 + add r1, #0xc + add r2, sp, #0x1c + bl MOD85_021DEC00 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_020200BC + mov r0, #1 + add sp, #0x28 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DC2A0 + + thumb_func_start MOD85_021DC2F8 +MOD85_021DC2F8: ; 0x021DC2F8 + ldr r3, _021DC300 ; =MOD85_021DECA0 + add r1, #0xc + add r0, r1, #0 + bx r3 + .align 2, 0 +_021DC300: .word MOD85_021DECA0 + thumb_func_end MOD85_021DC2F8 + + thumb_func_start MOD85_021DC304 +MOD85_021DC304: ; 0x021DC304 + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + add r6, r0, #0 + ldr r0, [r5] + ldr r4, [r0, #0x60] + ldr r0, [r5, #4] + cmp r0, #1 + bls _021DC326 + cmp r4, r0 + bhs _021DC326 + ldr r0, [r5, #0x10] + mov r1, #0 + bl FUN_020200A0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_021DC326: + ldr r0, [r5, #0x10] + mov r1, #1 + bl FUN_020200A0 + ldr r1, [r5, #8] + add r0, r4, #0 + bl _u32_div_f + add r4, r1, #0 + ldr r1, [r5, #4] + add r0, r4, #0 + bl _u32_div_f + add r4, r0, #0 + ldr r0, [r5, #0x10] + bl FUN_020201DC + cmp r4, r0 + beq _021DC35A + ldr r0, [r5, #0x10] + add r1, r4, #0 + bl FUN_02020130 + ldr r0, [r5, #0x10] + bl FUN_02020198 +_021DC35A: + add r0, r6, #0 + add r1, sp, #0 + bl FUN_0206477C + ldr r0, _021DC37C ; =0x021DFAD8 + lsl r1, r4, #2 + ldr r0, [r0, r1] + ldr r2, [sp] + add r1, sp, #0 + add r0, r2, r0 + str r0, [sp] + ldr r0, [r5, #0x10] + bl FUN_02020044 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021DC37C: .word 0x021DFAD8 + thumb_func_end MOD85_021DC304 + + thumb_func_start MOD85_021DC380 +MOD85_021DC380: ; 0x021DC380 + bx lr + .align 2, 0 + thumb_func_end MOD85_021DC380 + + thumb_func_start MOD85_021DC384 +MOD85_021DC384: ; 0x021DC384 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + ldr r3, _021DC3C8 ; =0x021DF6F4 + add r5, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #8 + add r6, r2, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r4, #1 + str r0, [r2] + mov r7, #0x8d +_021DC39C: + str r5, [sp] + ldr r0, _021DC3CC ; =0x0000044C + str r7, [sp, #4] + ldr r0, [r5, r0] + ldr r1, _021DC3D0 ; =0x021DF960 + add r2, r6, #0 + add r3, r4, #0 + bl FUN_020644E4 + mov r0, #0xa + mul r4, r0 + mov r0, #2 + ldr r1, [sp, #8] + lsl r0, r0, #0xe + sub r0, r1, r0 + str r0, [sp, #8] + ldr r0, _021DC3D4 ; =0x000186A0 + cmp r4, r0 + blo _021DC39C + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + nop +_021DC3C8: .word 0x021DF6F4 +_021DC3CC: .word 0x0000044C +_021DC3D0: .word 0x021DF960 +_021DC3D4: .word 0x000186A0 + thumb_func_end MOD85_021DC384 + + thumb_func_start MOD85_021DC3D8 +MOD85_021DC3D8: ; 0x021DC3D8 + push {r3, r4, r5, lr} + sub sp, #0x28 + add r5, r0, #0 + add r4, r1, #0 + bl FUN_02064754 + mov r1, #0xa + str r0, [r4, #4] + mul r1, r0 + str r1, [r4, #8] + add r0, r5, #0 + bl FUN_0206475C + str r0, [r4] + add r0, r5, #0 + add r1, sp, #0x1c + bl FUN_0206477C + mov r0, #0 + str r0, [sp] + mov r3, #1 + str r3, [sp, #4] + str r3, [sp, #8] + str r3, [sp, #0xc] + str r3, [sp, #0x10] + str r3, [sp, #0x14] + str r3, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r4] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r4, #0 + add r1, #0xc + add r2, sp, #0x1c + bl MOD85_021DEC00 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_020200BC + mov r0, #1 + add sp, #0x28 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DC3D8 + + thumb_func_start MOD85_021DC430 +MOD85_021DC430: ; 0x021DC430 + ldr r3, _021DC438 ; =MOD85_021DECA0 + add r1, #0xc + add r0, r1, #0 + bx r3 + .align 2, 0 +_021DC438: .word MOD85_021DECA0 + thumb_func_end MOD85_021DC430 + + thumb_func_start MOD85_021DC43C +MOD85_021DC43C: ; 0x021DC43C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + add r6, r0, #0 + ldr r0, [r5] + ldr r4, [r0, #0x64] + ldr r0, [r5, #4] + cmp r4, r0 + ldr r0, [r5, #0x10] + bhs _021DC45A + mov r1, #0 + bl FUN_020200A0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} +_021DC45A: + mov r1, #1 + bl FUN_020200A0 + ldr r1, [r5, #8] + add r0, r4, #0 + bl _u32_div_f + add r4, r1, #0 + ldr r1, [r5, #4] + add r0, r4, #0 + bl _u32_div_f + add r4, r0, #0 + ldr r0, [r5, #0x10] + bl FUN_020201DC + cmp r4, r0 + beq _021DC48C + ldr r0, [r5, #0x10] + add r1, r4, #0 + bl FUN_02020130 + ldr r0, [r5, #0x10] + bl FUN_02020198 +_021DC48C: + add r0, r6, #0 + add r1, sp, #0 + bl FUN_0206477C + ldr r0, _021DC4AC ; =0x021DFAB0 + lsl r1, r4, #2 + ldr r0, [r0, r1] + ldr r2, [sp] + add r1, sp, #0 + add r0, r2, r0 + str r0, [sp] + ldr r0, [r5, #0x10] + bl FUN_02020044 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021DC4AC: .word 0x021DFAB0 + thumb_func_end MOD85_021DC43C + + thumb_func_start MOD85_021DC4B0 +MOD85_021DC4B0: ; 0x021DC4B0 + bx lr + .align 2, 0 + thumb_func_end MOD85_021DC4B0 + + thumb_func_start MOD85_021DC4B4 +MOD85_021DC4B4: ; 0x021DC4B4 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + ldr r6, _021DC4E0 ; =0x021DF808 + add r5, sp, #8 + add r4, r0, #0 + add r3, r1, #0 + ldmia r6!, {r0, r1} + add r2, r5, #0 + stmia r5!, {r0, r1} + ldr r0, [r6] + ldr r1, _021DC4E4 ; =0x021DF974 + str r0, [r5] + str r4, [sp] + mov r0, #0x86 + str r0, [sp, #4] + ldr r0, _021DC4E8 ; =0x0000044C + ldr r0, [r4, r0] + bl FUN_020644E4 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + nop +_021DC4E0: .word 0x021DF808 +_021DC4E4: .word 0x021DF974 +_021DC4E8: .word 0x0000044C + thumb_func_end MOD85_021DC4B4 + + thumb_func_start MOD85_021DC4EC +MOD85_021DC4EC: ; 0x021DC4EC + push {r4, lr} + add r4, r1, #0 + bl FUN_02064738 + str r4, [r0] + mov r1, #0 + str r1, [r0, #4] + str r1, [r0, #8] + str r1, [r0, #0x30] + pop {r4, pc} + thumb_func_end MOD85_021DC4EC + + thumb_func_start MOD85_021DC500 +MOD85_021DC500: ; 0x021DC500 + push {r4, lr} + add r4, r1, #0 + bl FUN_02064738 + cmp r4, #1 + ldr r0, [r0, #0x40] + bne _021DC516 + mov r1, #0 + bl FUN_020200A0 + pop {r4, pc} +_021DC516: + mov r1, #1 + bl FUN_020200A0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DC500 + + thumb_func_start MOD85_021DC520 +MOD85_021DC520: ; 0x021DC520 + push {r3, lr} + bl FUN_02064738 + ldr r0, [r0, #8] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021DC520 + + thumb_func_start MOD85_021DC52C +MOD85_021DC52C: ; 0x021DC52C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0206475C + str r0, [r4, #0x38] + add r0, r5, #0 + bl FUN_02064754 + str r0, [r4, #0x10] + mov r0, #1 + pop {r3, r4, r5, pc} + thumb_func_end MOD85_021DC52C + + thumb_func_start MOD85_021DC544 +MOD85_021DC544: ; 0x021DC544 + push {r4, lr} + add r4, r1, #0 + ldr r0, [r4, #0x40] + cmp r0, #0 + beq _021DC55C + ldr r0, [r4, #0x38] + bl MOD85_021DCB00 + add r4, #0x3c + add r0, r4, #0 + bl MOD85_021DECA0 +_021DC55C: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DC544 + + thumb_func_start MOD85_021DC560 +MOD85_021DC560: ; 0x021DC560 + push {r3, r4, r5, lr} + ldr r4, _021DC57C ; =0x021DF9F0 + add r5, r1, #0 +_021DC566: + ldr r1, [r5] + add r0, r5, #0 + lsl r1, r1, #2 + ldr r2, [r4, r1] + ldr r1, [r5, #4] + lsl r1, r1, #2 + ldr r1, [r2, r1] + blx r1 + cmp r0, #1 + beq _021DC566 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DC57C: .word 0x021DF9F0 + thumb_func_end MOD85_021DC560 + + thumb_func_start MOD85_021DC580 +MOD85_021DC580: ; 0x021DC580 + bx lr + .align 2, 0 + thumb_func_end MOD85_021DC580 + + thumb_func_start MOD85_021DC584 +MOD85_021DC584: ; 0x021DC584 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4, #0x10] + bl MOD85_021DCA68 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DC584 + + thumb_func_start MOD85_021DC598 +MOD85_021DC598: ; 0x021DC598 + ldr r1, [r0, #0xc] + cmp r1, #2 + bne _021DC5A4 + ldr r1, [r0, #4] + add r1, r1, #1 + str r1, [r0, #4] +_021DC5A4: + mov r0, #0 + bx lr + thumb_func_end MOD85_021DC598 + + thumb_func_start MOD85_021DC5A8 +MOD85_021DC5A8: ; 0x021DC5A8 + push {r4, r5, lr} + sub sp, #0xc + ldr r5, _021DC5D8 ; =0x021DF820 + add r4, r0, #0 + ldmia r5!, {r0, r1} + add r3, sp, #0 + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r4, #0 + str r0, [r3] + ldr r0, [r4, #0x38] + add r1, #0x3c + bl MOD85_021DCB6C + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + add sp, #0xc + pop {r4, r5, pc} + nop +_021DC5D8: .word 0x021DF820 + thumb_func_end MOD85_021DC5A8 + + thumb_func_start MOD85_021DC5DC +MOD85_021DC5DC: ; 0x021DC5DC + mov r0, #0 + bx lr + thumb_func_end MOD85_021DC5DC + + thumb_func_start MOD85_021DC5E0 +MOD85_021DC5E0: ; 0x021DC5E0 + push {r3, r4, r5, lr} + sub sp, #0x18 + ldr r3, _021DC63C ; =0x021DF7E4 + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0xc + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021DC640 ; =0x021DF70C + str r0, [r2] + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r2, #0 + str r0, [r3] + ldr r0, [r4, #0x40] + bl FUN_02020064 + ldr r0, [r4, #0x40] + mov r1, #0 + bl FUN_02020088 + ldr r0, [r4, #0x40] + add r1, sp, #0xc + bl FUN_02020044 + ldr r0, [r4, #0x40] + mov r1, #0 + bl FUN_02020130 + ldr r0, [r4, #0x40] + mov r1, #0 + bl FUN_02020208 + ldr r0, _021DC644 ; =0x00000624 + bl FUN_020054C8 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, pc} + nop +_021DC63C: .word 0x021DF7E4 +_021DC640: .word 0x021DF70C +_021DC644: .word 0x00000624 + thumb_func_end MOD85_021DC5E0 + + thumb_func_start MOD85_021DC648 +MOD85_021DC648: ; 0x021DC648 + push {r4, lr} + sub sp, #0x18 + add r4, r0, #0 + ldr r0, [r4, #0x40] + add r1, sp, #0xc + bl MOD85_021DECBC + ldr r0, [r4, #0x40] + add r1, sp, #0 + bl MOD85_021DECD0 + mov r0, #1 + ldr r1, [sp, #0x10] + lsl r0, r0, #0xe + sub r1, r1, r0 + str r1, [sp, #0x10] + ldr r2, [sp] + ldr r1, _021DC6AC ; =0x000001C7 + sub r2, r2, r1 + str r2, [sp] + ldr r2, [sp, #4] + sub r1, r2, r1 + str r1, [sp, #4] + ldr r1, [r4, #0x30] + add r1, r1, #1 + str r1, [r4, #0x30] + cmp r1, #9 + blo _021DC696 + mov r1, #0x16 + lsr r0, r0, #2 + lsl r1, r1, #0x10 + str r1, [sp, #0x10] + str r0, [sp] + str r0, [sp, #4] + mov r0, #0 + str r0, [r4, #0x30] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DC696: + ldr r0, [r4, #0x40] + add r1, sp, #0xc + bl FUN_02020044 + ldr r0, [r4, #0x40] + add r1, sp, #0 + bl FUN_02020064 + mov r0, #0 + add sp, #0x18 + pop {r4, pc} + .align 2, 0 +_021DC6AC: .word 0x000001C7 + thumb_func_end MOD85_021DC648 + + thumb_func_start MOD85_021DC6B0 +MOD85_021DC6B0: ; 0x021DC6B0 + ldr r1, [r0, #0x30] + add r1, r1, #1 + str r1, [r0, #0x30] + cmp r1, #3 + blo _021DC6C8 + mov r1, #0 + str r1, [r0, #0x30] + mov r1, #1 + str r1, [r0, #8] + ldr r1, [r0, #4] + add r1, r1, #1 + str r1, [r0, #4] +_021DC6C8: + mov r0, #0 + bx lr + thumb_func_end MOD85_021DC6B0 + + thumb_func_start MOD85_021DC6CC +MOD85_021DC6CC: ; 0x021DC6CC + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x40] + mov r1, #1 + bl FUN_02020130 + ldr r0, [r4, #0x40] + bl FUN_02020198 + ldr r0, [r4, #0x40] + mov r1, #1 + bl FUN_020200BC + mov r0, #0x6d + lsl r0, r0, #4 + bl FUN_020054C8 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DC6CC + + thumb_func_start MOD85_021DC6F8 +MOD85_021DC6F8: ; 0x021DC6F8 + ldr r1, [r0, #0x30] + add r1, r1, #1 + str r1, [r0, #0x30] + cmp r1, #4 + blo _021DC710 + mov r1, #0 + str r1, [r0, #0x30] + mov r1, #1 + str r1, [r0, #8] + ldr r1, [r0, #4] + add r1, r1, #1 + str r1, [r0, #4] +_021DC710: + mov r0, #0 + bx lr + thumb_func_end MOD85_021DC6F8 + + thumb_func_start MOD85_021DC714 +MOD85_021DC714: ; 0x021DC714 + push {r3, r4, r5, lr} + sub sp, #0x18 + ldr r3, _021DC774 ; =0x021DF754 + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0xc + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021DC778 ; =0x021DF670 + str r0, [r2] + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r5, r2, #0 + str r0, [r3] + add r3, r4, #0 + ldmia r5!, {r0, r1} + add r3, #0x14 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r2, #0 + str r0, [r3] + ldr r0, [r4, #0x40] + bl FUN_02020044 + ldr r0, [r4, #0x40] + add r1, sp, #0xc + bl FUN_02020064 + ldr r0, [r4, #0x40] + mov r1, #0 + bl FUN_02020088 + ldr r0, [r4, #0x40] + mov r1, #3 + bl FUN_02020130 + ldr r0, [r4, #0x40] + bl FUN_02020198 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #1 + add sp, #0x18 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DC774: .word 0x021DF754 +_021DC778: .word 0x021DF670 + thumb_func_end MOD85_021DC714 + + thumb_func_start MOD85_021DC77C +MOD85_021DC77C: ; 0x021DC77C + push {r3, r4, r5, r6, lr} + sub sp, #0x2c + ldr r5, _021DC7DC ; =0x021DFA0C + add r4, r0, #0 + add r2, sp, #0 + ldmia r5!, {r0, r1} + add r3, r2, #0 + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r5!, {r0, r1} + add r6, r4, #0 + add r6, #0x14 + stmia r2!, {r0, r1} + add r5, sp, #0x20 + ldmia r6!, {r0, r1} + add r2, r5, #0 + stmia r5!, {r0, r1} + ldr r0, [r6] + str r0, [r5] + ldr r1, [r4, #0x30] + ldr r0, [sp, #0x24] + lsr r1, r1, #1 + lsl r1, r1, #2 + ldr r1, [r3, r1] + add r0, r0, r1 + str r0, [sp, #0x24] + ldr r0, [r4, #0x40] + add r1, r2, #0 + bl FUN_02020044 + ldr r0, [r4, #0x30] + add r0, r0, #1 + str r0, [r4, #0x30] + cmp r0, #0x10 + blo _021DC7D6 + mov r0, #0 + str r0, [r4, #0x30] + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DC7D6: + mov r0, #0 + add sp, #0x2c + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021DC7DC: .word 0x021DFA0C + thumb_func_end MOD85_021DC77C + + thumb_func_start MOD85_021DC7E0 +MOD85_021DC7E0: ; 0x021DC7E0 + push {r3, r4, r5, lr} + sub sp, #0x18 + ldr r3, _021DC840 ; =0x021DF640 + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0xc + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021DC844 ; =0x021DF730 + str r0, [r2] + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r5, r2, #0 + str r0, [r3] + add r3, r4, #0 + ldmia r5!, {r0, r1} + add r3, #0x14 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r2, #0 + str r0, [r3] + ldr r0, [r4, #0x40] + bl FUN_02020044 + ldr r0, [r4, #0x40] + add r1, sp, #0xc + bl FUN_02020064 + ldr r0, [r4, #0x40] + mov r1, #0 + bl FUN_02020088 + ldr r0, [r4, #0x40] + mov r1, #4 + bl FUN_02020130 + ldr r0, [r4, #0x40] + bl FUN_02020198 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #1 + add sp, #0x18 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DC840: .word 0x021DF640 +_021DC844: .word 0x021DF730 + thumb_func_end MOD85_021DC7E0 + + thumb_func_start MOD85_021DC848 +MOD85_021DC848: ; 0x021DC848 + push {r4, lr} + sub sp, #0x18 + add r4, r0, #0 + ldr r0, [r4, #0x40] + add r1, sp, #0xc + bl MOD85_021DECBC + ldr r0, [r4, #0x40] + add r1, sp, #0 + bl MOD85_021DECD0 + mov r0, #1 + ldr r1, [sp, #0x10] + lsl r0, r0, #0xe + add r1, r1, r0 + str r1, [sp, #0x10] + ldr r2, [sp] + ldr r1, _021DC8B0 ; =0x000001C7 + add r2, r2, r1 + str r2, [sp] + ldr r2, [sp, #4] + add r1, r2, r1 + str r1, [sp, #4] + ldr r1, [r4, #0x30] + add r1, r1, #1 + str r1, [r4, #0x30] + cmp r1, #0xa + blo _021DC89A + mov r1, #7 + lsr r0, r0, #2 + lsl r1, r1, #0x12 + str r1, [sp, #0x10] + str r0, [sp] + str r0, [sp, #4] + mov r0, #0 + str r0, [r4, #0x30] + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] +_021DC89A: + ldr r0, [r4, #0x40] + add r1, sp, #0xc + bl FUN_02020044 + ldr r0, [r4, #0x40] + add r1, sp, #0 + bl FUN_02020064 + mov r0, #0 + add sp, #0x18 + pop {r4, pc} + .align 2, 0 +_021DC8B0: .word 0x000001C7 + thumb_func_end MOD85_021DC848 + + thumb_func_start MOD85_021DC8B4 +MOD85_021DC8B4: ; 0x021DC8B4 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + ldr r3, _021DC934 ; =0x021DF6AC + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0x18 + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r3, _021DC938 ; =0x021DF61C + str r0, [r2] + add r2, sp, #0xc + ldmia r3!, {r0, r1} + add r6, r2, #0 + stmia r2!, {r0, r1} + ldr r0, [r3] + add r5, sp, #0 + mov r7, #0 + str r7, [r5] + str r0, [r2] + add r3, r6, #0 + str r7, [r5, #4] + add r2, r4, #0 + ldmia r3!, {r0, r1} + str r7, [r5, #8] + add r2, #0x14 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + add r2, r4, #0 + ldmia r5!, {r0, r1} + add r2, #0x20 + stmia r2!, {r0, r1} + ldr r0, [r5] + add r1, r6, #0 + str r0, [r2] + str r7, [r4, #0x30] + str r7, [r4, #0x34] + str r7, [r4, #0x2c] + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #0x40] + bl FUN_02020044 + ldr r0, [r4, #0x40] + add r1, sp, #0x18 + bl FUN_02020064 + ldr r0, [r4, #0x40] + add r1, r7, #0 + bl FUN_02020088 + ldr r0, [r4, #0x40] + mov r1, #2 + bl FUN_02020130 + ldr r0, [r4, #0x40] + bl FUN_02020198 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #1 + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_021DC934: .word 0x021DF6AC +_021DC938: .word 0x021DF61C + thumb_func_end MOD85_021DC8B4 + + thumb_func_start MOD85_021DC93C +MOD85_021DC93C: ; 0x021DC93C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x60 + ldr r3, _021DC9D8 ; =0x021DFA2C + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0x40 + add r6, r2, #0 + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r3, _021DC9DC ; =0x021DFA4C + add r2, sp, #0x20 + ldmia r3!, {r0, r1} + add r5, r2, #0 + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r3, _021DC9E0 ; =0x021DFA6C + add r2, sp, #0 + add r7, r2, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r1, [r4, #0x34] + ldr r0, [r4, #0x2c] + lsl r1, r1, #2 + ldr r1, [r6, r1] + add r0, r0, r1 + str r0, [r4, #0x2c] + ldr r0, [r4, #0x34] + ldr r1, [r4, #0x14] + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r0, r1, r0 + str r0, [r4, #0x14] + ldr r0, [r4, #0x30] + add r2, r0, #1 + str r2, [r4, #0x30] + ldr r1, [r4, #0x34] + lsl r0, r1, #2 + ldr r0, [r7, r0] + cmp r2, r0 + blo _021DC9BC + add r0, r1, #1 + str r0, [r4, #0x34] + cmp r0, #8 + blt _021DC9B8 + mov r0, #0 + str r0, [r4, #0x34] +_021DC9B8: + mov r0, #0 + str r0, [r4, #0x30] +_021DC9BC: + add r1, r4, #0 + ldr r0, [r4, #0x40] + add r1, #0x14 + bl FUN_02020044 + ldr r1, [r4, #0x2c] + ldr r0, [r4, #0x40] + lsl r1, r1, #0x10 + lsr r1, r1, #0x10 + bl FUN_02020088 + mov r0, #0 + add sp, #0x60 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DC9D8: .word 0x021DFA2C +_021DC9DC: .word 0x021DFA4C +_021DC9E0: .word 0x021DFA6C + thumb_func_end MOD85_021DC93C + + thumb_func_start MOD85_021DC9E4 +MOD85_021DC9E4: ; 0x021DC9E4 + push {r3, r4, r5, r6, lr} + sub sp, #0x24 + ldr r3, _021DCA60 ; =0x021DF5F8 + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0x18 + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021DCA64 ; =0x021DF658 + str r0, [r2] + add r2, sp, #0xc + add r3, r2, #0 + ldmia r5!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r5] + add r5, r4, #0 + str r0, [r2] + add r2, sp, #0 + mov r0, #0 + str r0, [r2] + str r0, [r2, #4] + add r6, r3, #0 + str r0, [r2, #8] + ldmia r6!, {r0, r1} + add r5, #0x14 + stmia r5!, {r0, r1} + ldr r0, [r6] + str r0, [r5] + add r5, r4, #0 + ldmia r2!, {r0, r1} + add r5, #0x20 + stmia r5!, {r0, r1} + ldr r0, [r2] + add r1, r3, #0 + str r0, [r5] + mov r0, #1 + str r0, [r4, #8] + ldr r0, [r4, #0x40] + bl FUN_02020044 + ldr r0, [r4, #0x40] + add r1, sp, #0x18 + bl FUN_02020064 + ldr r0, [r4, #0x40] + mov r1, #0 + bl FUN_02020088 + ldr r0, [r4, #0x40] + mov r1, #2 + bl FUN_02020130 + ldr r0, [r4, #0x40] + bl FUN_02020198 + ldr r0, [r4, #4] + add r0, r0, #1 + str r0, [r4, #4] + mov r0, #1 + add sp, #0x24 + pop {r3, r4, r5, r6, pc} + nop +_021DCA60: .word 0x021DF5F8 +_021DCA64: .word 0x021DF658 + thumb_func_end MOD85_021DC9E4 + + thumb_func_start MOD85_021DCA68 +MOD85_021DCA68: ; 0x021DCA68 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r5, r1, #0 + ldr r4, [r6, #0x38] + cmp r5, #5 + blt _021DCA78 + bl ErrorHandling +_021DCA78: + mov r1, #2 + mov r2, #0x45 + ldr r7, _021DCAF0 ; =0x021DFB30 + lsl r3, r5, #4 + str r1, [sp] + lsl r2, r2, #4 + ldr r0, [r4, r2] + sub r2, #0x18 + add r5, r7, r3 + ldr r2, [r4, r2] + ldr r3, [r7, r3] + bl MOD85_021DE840 + mov r1, #2 + mov r2, #0x45 + str r1, [sp] + lsl r2, r2, #4 + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + ldr r3, [r5, #4] + bl MOD85_021DE910 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + ldr r2, [r5, #8] + mov r3, #2 + bl MOD85_021DE9E4 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + ldr r2, [r5, #0xc] + mov r3, #2 + bl MOD85_021DEA4C + ldr r0, _021DCAF4 ; =MOD85_021DCB18 + ldr r2, _021DCAF8 ; =0x00000101 + add r1, r6, #0 + bl FUN_0200CA60 + cmp r0, #0 + bne _021DCADC + bl ErrorHandling +_021DCADC: + ldr r0, _021DCAFC ; =MOD85_021DCB44 + ldr r2, _021DCAF8 ; =0x00000101 + add r1, r6, #0 + bl FUN_0200CA98 + cmp r0, #0 + bne _021DCAEE + bl ErrorHandling +_021DCAEE: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DCAF0: .word 0x021DFB30 +_021DCAF4: .word MOD85_021DCB18 +_021DCAF8: .word 0x00000101 +_021DCAFC: .word MOD85_021DCB44 + thumb_func_end MOD85_021DCA68 + + thumb_func_start MOD85_021DCB00 +MOD85_021DCB00: ; 0x021DCB00 + push {r3, lr} + mov r1, #2 + mov r2, #0x45 + str r1, [sp] + lsl r2, r2, #4 + ldr r0, [r0, r2] + add r2, r1, #0 + add r3, r1, #0 + bl MOD85_021DEAB4 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021DCB00 + + thumb_func_start MOD85_021DCB18 +MOD85_021DCB18: ; 0x021DCB18 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r0, #0 + mov r0, #0x45 + ldr r4, [r5, #0x38] + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #2 + bl MOD85_021DE8A8 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #2 + bl MOD85_021DE97C + mov r0, #1 + str r0, [r5, #0xc] + add r0, r6, #0 + bl FUN_0200CAB4 + pop {r4, r5, r6, pc} + thumb_func_end MOD85_021DCB18 + + thumb_func_start MOD85_021DCB44 +MOD85_021DCB44: ; 0x021DCB44 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x38] + cmp r0, #1 + bne _021DCB68 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r1, r0] + mov r1, #2 + bl MOD85_021DE9B0 + mov r0, #2 + str r0, [r4, #0xc] + add r0, r5, #0 + bl FUN_0200CAB4 +_021DCB68: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DCB44 + + thumb_func_start MOD85_021DCB6C +MOD85_021DCB6C: ; 0x021DCB6C + push {r3, r4, r5, r6, lr} + sub sp, #0x34 + add r5, r0, #0 + add r4, r1, #0 + add r1, sp, #0x28 + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + ldr r6, _021DCBDC ; =0x021DF85C + str r0, [r1, #8] + ldmia r6!, {r0, r1} + add r3, sp, #0x1c + stmia r3!, {r0, r1} + ldr r0, [r6] + add r1, r4, #0 + str r0, [r3] + mov r0, #1 + str r0, [sp] + mov r3, #2 + str r3, [sp, #4] + str r3, [sp, #8] + str r3, [sp, #0xc] + str r3, [sp, #0x10] + str r3, [sp, #0x14] + mov r0, #7 + str r0, [sp, #0x18] + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl MOD85_021DEC00 + ldr r0, [r4, #4] + mov r1, #2 + bl FUN_020200EC + ldr r0, [r4, #4] + add r1, sp, #0x28 + bl FUN_02020054 + ldr r0, [r4, #4] + add r1, sp, #0x1c + bl FUN_02020064 + mov r0, #0 + bl FUN_0201B9A0 + add r1, r0, #0 + ldr r0, [r4, #4] + bl FUN_02020088 + ldr r0, [r4, #4] + mov r1, #1 + bl FUN_020200BC + add sp, #0x34 + pop {r3, r4, r5, r6, pc} + .align 2, 0 +_021DCBDC: .word 0x021DF85C + thumb_func_end MOD85_021DCB6C + + thumb_func_start MOD85_021DCBE0 +MOD85_021DCBE0: ; 0x021DCBE0 + push {r4, r5, lr} + sub sp, #0x14 + ldr r5, _021DCC0C ; =0x021DF6E8 + add r3, r0, #0 + ldmia r5!, {r0, r1} + add r4, sp, #8 + add r2, r4, #0 + stmia r4!, {r0, r1} + ldr r0, [r5] + ldr r1, _021DCC10 ; =0x021DF8AC + str r0, [r4] + str r3, [sp] + mov r0, #0x87 + str r0, [sp, #4] + ldr r0, _021DCC14 ; =0x0000044C + ldr r0, [r3, r0] + mov r3, #0 + bl FUN_020644E4 + add sp, #0x14 + pop {r4, r5, pc} + nop +_021DCC0C: .word 0x021DF6E8 +_021DCC10: .word 0x021DF8AC +_021DCC14: .word 0x0000044C + thumb_func_end MOD85_021DCBE0 + + thumb_func_start MOD85_021DCC18 +MOD85_021DCC18: ; 0x021DCC18 + push {r4, lr} + add r4, r1, #0 + bl FUN_0206475C + str r0, [r4, #0x10] + add r0, r4, #0 + bl MOD85_021DCD50 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD85_021DCC18 + + thumb_func_start MOD85_021DCC2C +MOD85_021DCC2C: ; 0x021DCC2C + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + ldr r0, [r4, #0x18] + cmp r0, #0 + beq _021DCC54 + mov r1, #3 + str r1, [sp] + mov r0, #0x45 + ldr r2, [r4, #0x10] + lsl r0, r0, #4 + ldr r0, [r2, r0] + add r2, r1, #0 + add r3, r1, #0 + bl MOD85_021DEAB4 + add r4, #0x14 + add r0, r4, #0 + bl MOD85_021DECA0 +_021DCC54: + add sp, #4 + pop {r3, r4, pc} + thumb_func_end MOD85_021DCC2C + + thumb_func_start MOD85_021DCC58 +MOD85_021DCC58: ; 0x021DCC58 + push {r4, lr} + sub sp, #0x28 + add r4, r1, #0 + ldr r1, [r4] + cmp r1, #3 + bhi _021DCCF4 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021DCC70: ; jump table + .short _021DCC78 - _021DCC70 - 2 ; case 0 + .short _021DCCBA - _021DCC70 - 2 ; case 1 + .short _021DCCD2 - _021DCC70 - 2 ; case 2 + .short _021DCCF4 - _021DCC70 - 2 ; case 3 +_021DCC78: + ldr r1, [r4, #0xc] + cmp r1, #2 + bne _021DCCF4 + add r1, sp, #0x1c + bl FUN_0206477C + mov r0, #1 + str r0, [sp] + mov r0, #3 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r3, #2 + str r3, [sp, #0x14] + mov r0, #5 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r4, #0x10] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r4, #0 + add r1, #0x14 + add r2, sp, #0x1c + bl MOD85_021DEC00 + ldr r0, [r4, #0x18] + mov r1, #1 + bl FUN_020200BC + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] +_021DCCBA: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #0xf + blo _021DCCF4 + ldr r0, [r4] + add sp, #0x28 + add r0, r0, #1 + str r0, [r4] + mov r0, #1 + str r0, [r4, #4] + pop {r4, pc} +_021DCCD2: + mov r1, #3 + str r1, [sp] + mov r0, #0x45 + ldr r2, [r4, #0x10] + lsl r0, r0, #4 + ldr r0, [r2, r0] + add r2, r1, #0 + add r3, r1, #0 + bl MOD85_021DEAB4 + add r0, r4, #0 + add r0, #0x14 + bl MOD85_021DECA0 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] +_021DCCF4: + add sp, #0x28 + pop {r4, pc} + thumb_func_end MOD85_021DCC58 + + thumb_func_start MOD85_021DCCF8 +MOD85_021DCCF8: ; 0x021DCCF8 + bx lr + .align 2, 0 + thumb_func_end MOD85_021DCCF8 + + thumb_func_start MOD85_021DCCFC +MOD85_021DCCFC: ; 0x021DCCFC + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r0, #0 + mov r0, #0x45 + ldr r4, [r5, #0x10] + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #3 + bl MOD85_021DE8A8 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #3 + bl MOD85_021DE97C + mov r0, #1 + str r0, [r5, #0xc] + add r0, r6, #0 + bl FUN_0200CAB4 + pop {r4, r5, r6, pc} + thumb_func_end MOD85_021DCCFC + + thumb_func_start MOD85_021DCD28 +MOD85_021DCD28: ; 0x021DCD28 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0xc] + ldr r1, [r4, #0x10] + cmp r0, #1 + bne _021DCD4C + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r1, r0] + mov r1, #3 + bl MOD85_021DE9B0 + mov r0, #2 + str r0, [r4, #0xc] + add r0, r5, #0 + bl FUN_0200CAB4 +_021DCD4C: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DCD28 + + thumb_func_start MOD85_021DCD50 +MOD85_021DCD50: ; 0x021DCD50 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r2, #0x45 + ldr r4, [r5, #0x10] + mov r0, #3 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #2 + mov r3, #0x2c + bl MOD85_021DE840 + mov r2, #0x45 + mov r0, #3 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #2 + mov r3, #0x2f + bl MOD85_021DE910 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x2d + mov r3, #3 + bl MOD85_021DE9E4 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x2e + mov r3, #3 + bl MOD85_021DEA4C + ldr r0, _021DCDCC ; =MOD85_021DCCFC + ldr r2, _021DCDD0 ; =0x00000101 + add r1, r5, #0 + bl FUN_0200CA60 + cmp r0, #0 + bne _021DCDB8 + bl ErrorHandling +_021DCDB8: + ldr r0, _021DCDD4 ; =MOD85_021DCD28 + ldr r2, _021DCDD0 ; =0x00000101 + add r1, r5, #0 + bl FUN_0200CA98 + cmp r0, #0 + bne _021DCDCA + bl ErrorHandling +_021DCDCA: + pop {r3, r4, r5, pc} + .align 2, 0 +_021DCDCC: .word MOD85_021DCCFC +_021DCDD0: .word 0x00000101 +_021DCDD4: .word MOD85_021DCD28 + thumb_func_end MOD85_021DCD50 + + thumb_func_start MOD85_021DCDD8 +MOD85_021DCDD8: ; 0x021DCDD8 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r0, #0 + mov r0, #0x45 + ldr r4, [r5, #0x20] + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #4 + bl MOD85_021DE8A8 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #4 + bl MOD85_021DE97C + mov r0, #1 + str r0, [r5, #0x10] + add r0, r6, #0 + bl FUN_0200CAB4 + pop {r4, r5, r6, pc} + thumb_func_end MOD85_021DCDD8 + + thumb_func_start MOD85_021DCE04 +MOD85_021DCE04: ; 0x021DCE04 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #0x10] + ldr r1, [r4, #0x20] + cmp r0, #1 + bne _021DCE28 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r1, r0] + mov r1, #4 + bl MOD85_021DE9B0 + mov r0, #2 + str r0, [r4, #0x10] + add r0, r5, #0 + bl FUN_0200CAB4 +_021DCE28: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DCE04 + + thumb_func_start MOD85_021DCE2C +MOD85_021DCE2C: ; 0x021DCE2C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + ldr r0, [r6, #0x18] + mov r2, #0x45 + lsl r3, r0, #4 + ldr r7, _021DCEB0 ; =0x021DFB00 + ldr r4, [r6, #0x20] + mov r0, #4 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + add r5, r7, r3 + ldr r2, [r4, r2] + ldr r3, [r7, r3] + mov r1, #2 + bl MOD85_021DE840 + mov r2, #0x45 + mov r0, #4 + str r0, [sp] + lsl r2, r2, #4 + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + ldr r3, [r5, #4] + mov r1, #2 + bl MOD85_021DE910 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + ldr r2, [r5, #8] + mov r3, #4 + bl MOD85_021DE9E4 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + ldr r2, [r5, #0xc] + mov r3, #4 + bl MOD85_021DEA4C + ldr r0, _021DCEB4 ; =MOD85_021DCDD8 + ldr r2, _021DCEB8 ; =0x00000101 + add r1, r6, #0 + bl FUN_0200CA60 + cmp r0, #0 + bne _021DCE9C + bl ErrorHandling +_021DCE9C: + ldr r0, _021DCEBC ; =MOD85_021DCE04 + ldr r2, _021DCEB8 ; =0x00000101 + add r1, r6, #0 + bl FUN_0200CA98 + cmp r0, #0 + bne _021DCEAE + bl ErrorHandling +_021DCEAE: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DCEB0: .word 0x021DFB00 +_021DCEB4: .word MOD85_021DCDD8 +_021DCEB8: .word 0x00000101 +_021DCEBC: .word MOD85_021DCE04 + thumb_func_end MOD85_021DCE2C + + thumb_func_start MOD85_021DCEC0 +MOD85_021DCEC0: ; 0x021DCEC0 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + ldr r6, _021DCEEC ; =0x021DF838 + add r5, sp, #8 + add r4, r0, #0 + add r3, r1, #0 + ldmia r6!, {r0, r1} + add r2, r5, #0 + stmia r5!, {r0, r1} + ldr r0, [r6] + ldr r1, _021DCEF0 ; =0x021DF8C0 + str r0, [r5] + str r4, [sp] + mov r0, #0x89 + str r0, [sp, #4] + ldr r0, _021DCEF4 ; =0x0000044C + ldr r0, [r4, r0] + bl FUN_020644E4 + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + nop +_021DCEEC: .word 0x021DF838 +_021DCEF0: .word 0x021DF8C0 +_021DCEF4: .word 0x0000044C + thumb_func_end MOD85_021DCEC0 + + thumb_func_start MOD85_021DCEF8 +MOD85_021DCEF8: ; 0x021DCEF8 + push {r4, lr} + add r4, r1, #0 + bl FUN_02064738 + str r4, [r0, #4] + mov r1, #0 + str r1, [r0, #8] + str r1, [r0, #0xc] + str r1, [r0, #0x14] + pop {r4, pc} + thumb_func_end MOD85_021DCEF8 + + thumb_func_start MOD85_021DCF0C +MOD85_021DCF0C: ; 0x021DCF0C + push {r3, lr} + bl FUN_02064738 + ldr r0, [r0, #0xc] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021DCF0C + + thumb_func_start MOD85_021DCF18 +MOD85_021DCF18: ; 0x021DCF18 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0206475C + str r0, [r4, #0x20] + add r0, r5, #0 + bl FUN_02064754 + str r0, [r4, #0x18] + add r0, r4, #0 + bl MOD85_021DCE2C + mov r0, #1 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DCF18 + + thumb_func_start MOD85_021DCF38 +MOD85_021DCF38: ; 0x021DCF38 + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + ldr r0, [r4, #0x28] + cmp r0, #0 + beq _021DCF60 + mov r1, #4 + str r1, [sp] + mov r0, #0x45 + ldr r2, [r4, #0x20] + lsl r0, r0, #4 + ldr r0, [r2, r0] + add r2, r1, #0 + add r3, r1, #0 + bl MOD85_021DEAB4 + add r4, #0x24 + add r0, r4, #0 + bl MOD85_021DECA0 +_021DCF60: + add sp, #4 + pop {r3, r4, pc} + thumb_func_end MOD85_021DCF38 + + thumb_func_start MOD85_021DCF64 +MOD85_021DCF64: ; 0x021DCF64 + push {r3, r4, r5, lr} + ldr r4, _021DCF80 ; =0x021DFA8C + add r5, r1, #0 +_021DCF6A: + ldr r1, [r5, #4] + add r0, r5, #0 + lsl r1, r1, #2 + ldr r2, [r4, r1] + ldr r1, [r5, #8] + lsl r1, r1, #2 + ldr r1, [r2, r1] + blx r1 + cmp r0, #1 + beq _021DCF6A + pop {r3, r4, r5, pc} + .align 2, 0 +_021DCF80: .word 0x021DFA8C + thumb_func_end MOD85_021DCF64 + + thumb_func_start MOD85_021DCF84 +MOD85_021DCF84: ; 0x021DCF84 + bx lr + .align 2, 0 + thumb_func_end MOD85_021DCF84 + + thumb_func_start MOD85_021DCF88 +MOD85_021DCF88: ; 0x021DCF88 + push {r4, r5, lr} + sub sp, #0x34 + add r4, r0, #0 + ldr r0, [r4, #0x10] + cmp r0, #2 + bne _021DCFFA + ldr r5, _021DD000 ; =0x021DF6D0 + add r3, sp, #0x28 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, sp, #0x1c + str r0, [r3] + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + str r0, [r1, #8] + mov r0, #1 + str r0, [sp] + mov r0, #4 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r3, #2 + str r3, [sp, #0x14] + mov r0, #6 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r4, #0x20] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r4, #0 + add r1, #0x24 + bl MOD85_021DEC00 + ldr r0, [r4, #0x28] + mov r1, #2 + bl FUN_020200EC + ldr r0, [r4, #0x28] + add r1, sp, #0x1c + bl FUN_02020054 + mov r0, #0 + bl FUN_0201B9A0 + add r1, r0, #0 + ldr r0, [r4, #0x28] + bl FUN_02020088 + mov r0, #1 + str r0, [r4, #0xc] + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] +_021DCFFA: + mov r0, #0 + add sp, #0x34 + pop {r4, r5, pc} + .align 2, 0 +_021DD000: .word 0x021DF6D0 + thumb_func_end MOD85_021DCF88 + + thumb_func_start MOD85_021DD004 +MOD85_021DD004: ; 0x021DD004 + mov r0, #0 + bx lr + thumb_func_end MOD85_021DD004 + + thumb_func_start MOD85_021DD008 +MOD85_021DD008: ; 0x021DD008 + push {r3, r4, r5, lr} + sub sp, #0x18 + ldr r3, _021DD05C ; =0x021DF7FC + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0xc + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021DD060 ; =0x021DF7F0 + str r0, [r2] + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r2, #0 + str r0, [r3] + ldr r0, [r4, #0x28] + bl FUN_02020064 + ldr r0, [r4, #0x28] + add r1, sp, #0xc + bl FUN_02020044 + ldr r0, [r4, #0x28] + mov r1, #1 + bl FUN_02020130 + ldr r0, [r4, #0x28] + mov r1, #0 + bl FUN_020200D8 + ldr r0, [r4, #0x28] + mov r1, #0 + bl FUN_020200BC + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DD05C: .word 0x021DF7FC +_021DD060: .word 0x021DF7F0 + thumb_func_end MOD85_021DD008 + + thumb_func_start MOD85_021DD064 +MOD85_021DD064: ; 0x021DD064 + push {r4, lr} + sub sp, #0x18 + add r4, r0, #0 + ldr r0, [r4, #0x28] + add r1, sp, #0xc + bl MOD85_021DECBC + ldr r0, [r4, #0x28] + add r1, sp, #0 + bl MOD85_021DECD0 + ldr r0, [sp] + add r0, #0xc0 + str r0, [sp] + ldr r0, [sp, #4] + add r0, #0xc0 + str r0, [sp, #4] + ldr r0, [r4, #0x14] + add r0, r0, #1 + str r0, [r4, #0x14] + cmp r0, #0x10 + blt _021DD0AE + mov r0, #5 + lsl r0, r0, #0x12 + str r0, [sp, #0x10] + mov r0, #1 + lsl r0, r0, #0xc + str r0, [sp] + str r0, [sp, #4] + mov r0, #0 + str r0, [r4, #0x14] + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #0x23 + bl FUN_02005578 +_021DD0AE: + ldr r0, [r4, #0x28] + add r1, sp, #0 + bl FUN_02020064 + ldr r0, [r4, #0x28] + add r1, sp, #0xc + bl FUN_02020044 + mov r0, #0 + add sp, #0x18 + pop {r4, pc} + thumb_func_end MOD85_021DD064 + + thumb_func_start MOD85_021DD0C4 +MOD85_021DD0C4: ; 0x021DD0C4 + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + ldr r0, [r4, #0x28] + lsl r1, r1, #0xc + bl FUN_020201E4 + ldr r0, [r4, #0x14] + add r0, r0, #1 + str r0, [r4, #0x14] + cmp r0, #9 + blt _021DD0EA + mov r0, #0 + str r0, [r4, #0x14] + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #1 + str r0, [r4, #0xc] +_021DD0EA: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DD0C4 + + thumb_func_start MOD85_021DD0F0 +MOD85_021DD0F0: ; 0x021DD0F0 + push {r3, r4, r5, lr} + sub sp, #0x18 + ldr r3, _021DD14C ; =0x021DF7D8 + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0xc + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021DD150 ; =0x021DF7CC + str r0, [r2] + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r2, #0 + str r0, [r3] + ldr r0, [r4, #0x28] + bl FUN_02020064 + ldr r0, [r4, #0x28] + add r1, sp, #0xc + bl FUN_02020044 + ldr r0, [r4, #0x28] + mov r1, #1 + bl FUN_02020130 + ldr r0, [r4, #0x28] + mov r1, #0 + bl FUN_020200D8 + ldr r0, [r4, #0x28] + mov r1, #0 + bl FUN_020200BC + ldr r0, _021DD154 ; =0x000006D1 + bl FUN_020054C8 + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, pc} + nop +_021DD14C: .word 0x021DF7D8 +_021DD150: .word 0x021DF7CC +_021DD154: .word 0x000006D1 + thumb_func_end MOD85_021DD0F0 + + thumb_func_start MOD85_021DD158 +MOD85_021DD158: ; 0x021DD158 + push {r4, lr} + sub sp, #0x18 + add r4, r0, #0 + ldr r0, [r4, #0x28] + add r1, sp, #0xc + bl MOD85_021DECBC + ldr r0, [r4, #0x28] + add r1, sp, #0 + bl MOD85_021DECD0 + mov r0, #6 + ldr r1, [sp] + lsl r0, r0, #6 + sub r1, r1, r0 + str r1, [sp] + ldr r1, [sp, #4] + sub r0, r1, r0 + str r0, [sp, #4] + ldr r0, [r4, #0x14] + add r0, r0, #1 + str r0, [r4, #0x14] + cmp r0, #8 + blt _021DD1A4 + mov r0, #0x1d + lsl r0, r0, #0x10 + str r0, [sp, #0x10] + mov r0, #1 + lsl r0, r0, #0xc + str r0, [sp] + str r0, [sp, #4] + mov r0, #0 + str r0, [r4, #0x14] + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #1 + str r0, [r4, #0xc] +_021DD1A4: + ldr r0, [r4, #0x28] + add r1, sp, #0 + bl FUN_02020064 + ldr r0, [r4, #0x28] + add r1, sp, #0xc + bl FUN_02020044 + mov r0, #0 + add sp, #0x18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DD158 + + thumb_func_start MOD85_021DD1BC +MOD85_021DD1BC: ; 0x021DD1BC + push {r3, r4, r5, lr} + sub sp, #0x18 + ldr r3, _021DD21C ; =0x021DF7B4 + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0xc + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021DD220 ; =0x021DF7A8 + str r0, [r2] + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r2, #0 + str r0, [r3] + ldr r0, [r4, #0x28] + bl FUN_02020064 + ldr r0, [r4, #0x28] + add r1, sp, #0xc + bl FUN_02020044 + ldr r0, [r4, #0x28] + mov r1, #0 + bl FUN_02020130 + ldr r0, [r4, #0x28] + mov r1, #0 + bl FUN_020200BC + ldr r0, [r4, #0x28] + mov r1, #0 + bl FUN_020200D8 + ldr r0, [r4, #0x28] + bl FUN_02020198 + mov r0, #1 + str r0, [r4, #0xc] + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, pc} + nop +_021DD21C: .word 0x021DF7B4 +_021DD220: .word 0x021DF7A8 + thumb_func_end MOD85_021DD1BC + + thumb_func_start MOD85_021DD224 +MOD85_021DD224: ; 0x021DD224 + push {r3, r4, r5, lr} + sub sp, #0x18 + ldr r3, _021DD290 ; =0x021DF760 + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0xc + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021DD294 ; =0x021DF6DC + str r0, [r2] + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r2, #0 + str r0, [r3] + ldr r0, [r4, #0x28] + bl FUN_02020064 + ldr r0, [r4, #0x28] + add r1, sp, #0xc + bl FUN_02020044 + ldr r0, [r4, #0x28] + mov r1, #1 + bl FUN_020200BC + mov r1, #2 + ldr r0, [r4, #0x28] + lsl r1, r1, #0xa + bl FUN_020200D8 + ldr r0, [r4, #0x28] + bl FUN_020201DC + cmp r0, #2 + beq _021DD27E + ldr r0, [r4, #0x28] + mov r1, #2 + bl FUN_02020130 + ldr r0, [r4, #0x28] + bl FUN_02020198 +_021DD27E: + mov r0, #1 + str r0, [r4, #0xc] + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, pc} + nop +_021DD290: .word 0x021DF760 +_021DD294: .word 0x021DF6DC + thumb_func_end MOD85_021DD224 + + thumb_func_start MOD85_021DD298 +MOD85_021DD298: ; 0x021DD298 + push {r3, r4, r5, lr} + sub sp, #0x18 + ldr r3, _021DD2F8 ; =0x021DF67C + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0xc + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021DD2FC ; =0x021DF850 + str r0, [r2] + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r2, #0 + str r0, [r3] + ldr r0, [r4, #0x28] + bl FUN_02020064 + ldr r0, [r4, #0x28] + add r1, sp, #0xc + bl FUN_02020044 + ldr r0, [r4, #0x28] + mov r1, #5 + bl FUN_02020130 + ldr r0, [r4, #0x28] + mov r1, #1 + bl FUN_020200BC + mov r1, #1 + ldr r0, [r4, #0x28] + lsl r1, r1, #0xc + bl FUN_020200D8 + ldr r0, [r4, #0x28] + bl FUN_02020198 + mov r0, #1 + str r0, [r4, #0xc] + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DD2F8: .word 0x021DF67C +_021DD2FC: .word 0x021DF850 + thumb_func_end MOD85_021DD298 + + thumb_func_start MOD85_021DD300 +MOD85_021DD300: ; 0x021DD300 + push {r3, r4, r5, lr} + sub sp, #0x18 + ldr r3, _021DD360 ; =0x021DF688 + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0xc + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021DD364 ; =0x021DF73C + str r0, [r2] + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r2, #0 + str r0, [r3] + ldr r0, [r4, #0x28] + bl FUN_02020064 + ldr r0, [r4, #0x28] + add r1, sp, #0xc + bl FUN_02020044 + ldr r0, [r4, #0x28] + mov r1, #4 + bl FUN_02020130 + ldr r0, [r4, #0x28] + mov r1, #1 + bl FUN_020200BC + mov r1, #1 + ldr r0, [r4, #0x28] + lsl r1, r1, #0xc + bl FUN_020200D8 + ldr r0, [r4, #0x28] + bl FUN_02020198 + mov r0, #1 + str r0, [r4, #0xc] + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DD360: .word 0x021DF688 +_021DD364: .word 0x021DF73C + thumb_func_end MOD85_021DD300 + + thumb_func_start MOD85_021DD368 +MOD85_021DD368: ; 0x021DD368 + push {r3, r4, r5, lr} + sub sp, #0x18 + ldr r3, _021DD3C8 ; =0x021DF718 + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0xc + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021DD3CC ; =0x021DF724 + str r0, [r2] + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r2, #0 + str r0, [r3] + ldr r0, [r4, #0x28] + bl FUN_02020064 + ldr r0, [r4, #0x28] + add r1, sp, #0xc + bl FUN_02020044 + ldr r0, [r4, #0x28] + mov r1, #3 + bl FUN_02020130 + ldr r0, [r4, #0x28] + mov r1, #1 + bl FUN_020200BC + mov r1, #1 + ldr r0, [r4, #0x28] + lsl r1, r1, #0xc + bl FUN_020200D8 + ldr r0, [r4, #0x28] + bl FUN_02020198 + mov r0, #1 + str r0, [r4, #0xc] + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + mov r0, #0 + add sp, #0x18 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DD3C8: .word 0x021DF718 +_021DD3CC: .word 0x021DF724 + thumb_func_end MOD85_021DD368 + + thumb_func_start MOD85_021DD3D0 +MOD85_021DD3D0: ; 0x021DD3D0 + push {r3, r4, r5, lr} + sub sp, #0x18 + ldr r3, _021DD434 ; =0x021DF778 + add r4, r0, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0xc + stmia r2!, {r0, r1} + ldr r0, [r3] + ldr r5, _021DD438 ; =0x021DF604 + str r0, [r2] + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + add r1, r2, #0 + str r0, [r3] + ldr r0, [r4, #0x28] + bl FUN_02020064 + ldr r0, [r4, #0x28] + add r1, sp, #0xc + bl FUN_02020044 + ldr r0, [r4, #0x28] + mov r1, #0 + bl FUN_020200BC + mov r1, #1 + ldr r0, [r4, #0x28] + lsl r1, r1, #0xc + bl FUN_020200D8 + ldr r0, [r4, #0x28] + mov r1, #5 + bl FUN_02020130 + ldr r0, [r4, #0x28] + bl FUN_02020198 + mov r0, #0 + str r0, [r4, #0x14] + mov r1, #1 + str r1, [r4, #0xc] + ldr r1, [r4, #8] + add r1, r1, #1 + str r1, [r4, #8] + add sp, #0x18 + pop {r3, r4, r5, pc} + nop +_021DD434: .word 0x021DF778 +_021DD438: .word 0x021DF604 + thumb_func_end MOD85_021DD3D0 + + thumb_func_start MOD85_021DD43C +MOD85_021DD43C: ; 0x021DD43C + push {r4, lr} + add r4, r0, #0 + mov r1, #1 + ldr r0, [r4, #0x28] + lsl r1, r1, #0xc + bl FUN_020201E4 + ldr r0, [r4, #0x28] + bl FUN_02020388 + cmp r0, #0 + bne _021DD468 + ldr r0, [r4, #0x14] + add r0, r0, #1 + str r0, [r4, #0x14] + cmp r0, #8 + blt _021DD468 + mov r0, #0 + str r0, [r4, #0x14] + ldr r0, [r4, #0x28] + bl FUN_02020198 +_021DD468: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD85_021DD43C + + thumb_func_start MOD85_021DD46C +MOD85_021DD46C: ; 0x021DD46C + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r0, #0 + mov r0, #0x45 + ldr r4, [r5, #0x2c] + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #5 + bl MOD85_021DE8A8 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #5 + bl MOD85_021DE97C + mov r0, #1 + str r0, [r5, #0x10] + add r0, r6, #0 + bl FUN_0200CAB4 + pop {r4, r5, r6, pc} + thumb_func_end MOD85_021DD46C + + thumb_func_start MOD85_021DD498 +MOD85_021DD498: ; 0x021DD498 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldr r1, [r4, #0x2c] + add r5, r0, #0 + mov r0, #1 + str r0, [r4, #0x10] + ldr r0, [r4, #0x10] + cmp r0, #0 + beq _021DD4C0 + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r1, r0] + mov r1, #5 + bl MOD85_021DE9B0 + mov r0, #2 + str r0, [r4, #0x10] + add r0, r5, #0 + bl FUN_0200CAB4 +_021DD4C0: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DD498 + + thumb_func_start MOD85_021DD4C4 +MOD85_021DD4C4: ; 0x021DD4C4 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r2, #0x45 + ldr r4, [r5, #0x2c] + mov r0, #5 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #2 + mov r3, #0x38 + bl MOD85_021DE840 + mov r2, #0x45 + mov r0, #5 + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #2 + mov r3, #0x3b + bl MOD85_021DE910 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x39 + mov r3, #5 + bl MOD85_021DE9E4 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x3a + mov r3, #5 + bl MOD85_021DEA4C + ldr r0, _021DD540 ; =MOD85_021DD46C + ldr r2, _021DD544 ; =0x00000101 + add r1, r5, #0 + bl FUN_0200CA60 + cmp r0, #0 + bne _021DD52C + bl ErrorHandling +_021DD52C: + ldr r0, _021DD548 ; =MOD85_021DD498 + ldr r2, _021DD544 ; =0x00000101 + add r1, r5, #0 + bl FUN_0200CA98 + cmp r0, #0 + bne _021DD53E + bl ErrorHandling +_021DD53E: + pop {r3, r4, r5, pc} + .align 2, 0 +_021DD540: .word MOD85_021DD46C +_021DD544: .word 0x00000101 +_021DD548: .word MOD85_021DD498 + thumb_func_end MOD85_021DD4C4 + + thumb_func_start MOD85_021DD54C +MOD85_021DD54C: ; 0x021DD54C + push {lr} + sub sp, #0x14 + add r2, sp, #8 + mov r3, #0 + str r3, [r2] + str r3, [r2, #4] + str r3, [r2, #8] + str r0, [sp] + mov r1, #0x88 + str r1, [sp, #4] + ldr r1, _021DD570 ; =0x0000044C + ldr r0, [r0, r1] + ldr r1, _021DD574 ; =0x021DF8D4 + bl FUN_020644E4 + add sp, #0x14 + pop {pc} + nop +_021DD570: .word 0x0000044C +_021DD574: .word 0x021DF8D4 + thumb_func_end MOD85_021DD54C + + thumb_func_start MOD85_021DD578 +MOD85_021DD578: ; 0x021DD578 + push {r3, lr} + bl FUN_02064738 + ldr r0, [r0, #4] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021DD578 + + thumb_func_start MOD85_021DD584 +MOD85_021DD584: ; 0x021DD584 + push {r4, lr} + add r4, r1, #0 + bl FUN_0206475C + str r0, [r4, #0x2c] + add r0, r4, #0 + bl MOD85_021DD4C4 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD85_021DD584 + + thumb_func_start MOD85_021DD598 +MOD85_021DD598: ; 0x021DD598 + push {r3, r4, lr} + sub sp, #4 + add r4, r1, #0 + ldr r0, [r4, #0x34] + cmp r0, #0 + beq _021DD5CE + mov r1, #5 + str r1, [sp] + mov r0, #0x45 + ldr r2, [r4, #0x2c] + lsl r0, r0, #4 + ldr r0, [r2, r0] + add r2, r1, #0 + add r3, r1, #0 + bl MOD85_021DEAB4 + add r0, r4, #0 + add r0, #0x30 + bl MOD85_021DECA0 + ldr r0, [r4, #0x40] + cmp r0, #0 + beq _021DD5CE + add r4, #0x3c + add r0, r4, #0 + bl MOD85_021DECA0 +_021DD5CE: + add sp, #4 + pop {r3, r4, pc} + .align 2, 0 + thumb_func_end MOD85_021DD598 + + thumb_func_start MOD85_021DD5D4 +MOD85_021DD5D4: ; 0x021DD5D4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + add r5, r1, #0 + add r1, sp, #0xc + add r7, r0, #0 + add r4, r2, #0 + add r6, r3, #0 + bl FUN_0206477C + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x10] + add r0, r0, r6 + str r0, [sp, #0xc] + ldr r0, [sp, #0x30] + add r0, r1, r0 + str r0, [sp, #0x10] + add r0, r7, #0 + add r1, sp, #0xc + bl FUN_0206476C + ldr r0, [sp, #0x38] + cmp r0, #0 + bne _021DD60A + ldr r0, [sp, #0xc] + add r0, r5, r0 + str r0, [sp] + b _021DD610 +_021DD60A: + ldr r0, [sp, #0xc] + sub r0, r5, r0 + str r0, [sp] +_021DD610: + ldr r0, [sp, #0x10] + add r1, sp, #0 + sub r0, r4, r0 + str r0, [sp, #4] + ldr r0, [sp, #0x34] + bl FUN_02020044 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021DD5D4 + + thumb_func_start MOD85_021DD624 +MOD85_021DD624: ; 0x021DD624 + push {r4, r5, r6, lr} + sub sp, #0x40 + add r4, r1, #0 + ldr r1, [r4] + add r6, r0, #0 + cmp r1, #0xa + bls _021DD634 + b _021DD96C +_021DD634: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021DD640: ; jump table + .short _021DD656 - _021DD640 - 2 ; case 0 + .short _021DD6C8 - _021DD640 - 2 ; case 1 + .short _021DD750 - _021DD640 - 2 ; case 2 + .short _021DD764 - _021DD640 - 2 ; case 3 + .short _021DD796 - _021DD640 - 2 ; case 4 + .short _021DD7C8 - _021DD640 - 2 ; case 5 + .short _021DD7FA - _021DD640 - 2 ; case 6 + .short _021DD842 - _021DD640 - 2 ; case 7 + .short _021DD858 - _021DD640 - 2 ; case 8 + .short _021DD8A4 - _021DD640 - 2 ; case 9 + .short _021DD904 - _021DD640 - 2 ; case 10 +_021DD656: + ldr r0, [r4, #0x10] + cmp r0, #2 + beq _021DD65E + b _021DD96C +_021DD65E: + ldr r5, _021DD970 ; =0x021DF82C + add r3, sp, #0x34 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldr r0, [r5] + str r0, [r3] + mov r0, #1 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r3, #2 + str r3, [sp, #0x14] + mov r0, #4 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r4, #0x2c] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r4, #0 + add r1, #0x30 + bl MOD85_021DEC00 + mov r0, #1 + str r0, [sp] + mov r0, #5 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r3, #2 + str r3, [sp, #0x14] + mov r0, #4 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r4, #0x2c] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r4, #0 + add r1, #0x3c + add r2, sp, #0x34 + bl MOD85_021DEC00 + ldr r0, [r4, #0x40] + mov r1, #1 + bl FUN_02020100 + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] +_021DD6C8: + add r0, r6, #0 + add r1, sp, #0x28 + mov r5, #0 + bl FUN_0206477C + mov r1, #2 + ldr r2, [sp, #0x2c] + lsl r1, r1, #0xe + ldr r0, [sp, #0x28] + add r2, r2, r1 + add r0, r0, r1 + str r2, [sp, #0x2c] + lsl r2, r1, #3 + str r0, [sp, #0x28] + cmp r0, r2 + blt _021DD6EE + add r0, r2, #0 + str r0, [sp, #0x28] + add r5, r5, #1 +_021DD6EE: + mov r0, #0xe + ldr r1, [sp, #0x2c] + lsl r0, r0, #0xe + cmp r1, r0 + blt _021DD700 + mov r0, #1 + lsl r0, r0, #0x12 + str r0, [sp, #0x2c] + add r5, r5, #1 +_021DD700: + add r0, r6, #0 + add r1, sp, #0x28 + bl FUN_0206476C + mov r0, #2 + ldr r1, [sp, #0x28] + lsl r0, r0, #0x10 + sub r0, r1, r0 + str r0, [sp, #0x1c] + mov r0, #0x69 + ldr r1, [sp, #0x2c] + lsl r0, r0, #0xe + sub r0, r0, r1 + str r0, [sp, #0x20] + ldr r0, [r4, #0x34] + add r1, sp, #0x1c + bl FUN_02020044 + mov r0, #0x12 + ldr r1, [sp, #0x28] + lsl r0, r0, #0x10 + sub r0, r0, r1 + str r0, [sp, #0x1c] + mov r0, #0x69 + ldr r1, [sp, #0x2c] + lsl r0, r0, #0xe + sub r0, r0, r1 + str r0, [sp, #0x20] + ldr r0, [r4, #0x40] + add r1, sp, #0x1c + bl FUN_02020044 + cmp r5, #2 + beq _021DD746 + b _021DD96C +_021DD746: + ldr r0, [r4] + add sp, #0x40 + add r0, r0, #1 + str r0, [r4] + pop {r4, r5, r6, pc} +_021DD750: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #8 + blo _021DD84C + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] +_021DD764: + ldr r3, _021DD974 ; =0xFFFFC000 + mov r2, #0x69 + str r3, [sp] + ldr r0, [r4, #0x34] + lsl r1, r3, #3 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + add r0, r6, #0 + lsl r2, r2, #0xe + asr r3, r3, #1 + bl MOD85_021DD5D4 + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #4 + blo _021DD84C + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r4] + add sp, #0x40 + add r0, r0, #1 + str r0, [r4] + pop {r4, r5, r6, pc} +_021DD796: + mov r3, #1 + lsl r3, r3, #0xe + str r3, [sp] + ldr r1, [r4, #0x34] + mov r2, #0x69 + str r1, [sp, #4] + mov r1, #0 + str r1, [sp, #8] + ldr r1, _021DD978 ; =0xFFFE0000 + lsl r2, r2, #0xe + lsr r3, r3, #1 + bl MOD85_021DD5D4 + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #4 + blo _021DD84C + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r4] + add sp, #0x40 + add r0, r0, #1 + str r0, [r4] + pop {r4, r5, r6, pc} +_021DD7C8: + ldr r3, _021DD974 ; =0xFFFFC000 + mov r2, #0x69 + str r3, [sp] + ldr r1, [r4, #0x40] + lsl r2, r2, #0xe + str r1, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r1, #0x12 + lsl r1, r1, #0x10 + asr r3, r3, #1 + bl MOD85_021DD5D4 + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #4 + blo _021DD84C + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r4] + add sp, #0x40 + add r0, r0, #1 + str r0, [r4] + pop {r4, r5, r6, pc} +_021DD7FA: + mov r1, #1 + lsl r1, r1, #0xe + str r1, [sp] + ldr r1, [r4, #0x40] + mov r2, #0x69 + str r1, [sp, #4] + mov r3, #1 + mov r1, #0x12 + str r3, [sp, #8] + lsl r1, r1, #0x10 + lsl r2, r2, #0xe + lsl r3, r3, #0xd + bl MOD85_021DD5D4 + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #4 + blo _021DD84C + mov r1, #0 + str r1, [r4, #8] + ldr r0, [r4, #0xc] + add r0, r0, #1 + str r0, [r4, #0xc] + cmp r0, #2 + bhs _021DD836 + mov r0, #3 + add sp, #0x40 + str r0, [r4] + pop {r4, r5, r6, pc} +_021DD836: + str r1, [r4, #0xc] + ldr r0, [r4] + add sp, #0x40 + add r0, r0, #1 + str r0, [r4] + pop {r4, r5, r6, pc} +_021DD842: + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #8 + bhs _021DD84E +_021DD84C: + b _021DD96C +_021DD84E: + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] +_021DD858: + ldr r3, _021DD974 ; =0xFFFFC000 + mov r2, #0x69 + str r3, [sp] + ldr r0, [r4, #0x34] + lsl r1, r3, #3 + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + add r0, r6, #0 + lsl r2, r2, #0xe + asr r3, r3, #1 + bl MOD85_021DD5D4 + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #0x40] + mov r1, #0x12 + str r0, [sp, #4] + mov r0, #1 + mov r2, #0x69 + str r0, [sp, #8] + add r0, r6, #0 + lsl r1, r1, #0x10 + lsl r2, r2, #0xe + bl MOD85_021DD5D4 + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #4 + blo _021DD96C + mov r0, #0 + str r0, [r4, #8] + ldr r0, [r4] + add sp, #0x40 + add r0, r0, #1 + str r0, [r4] + pop {r4, r5, r6, pc} +_021DD8A4: + mov r3, #1 + lsl r3, r3, #0xe + str r3, [sp] + ldr r1, [r4, #0x34] + mov r2, #0x69 + str r1, [sp, #4] + mov r1, #0 + str r1, [sp, #8] + ldr r1, _021DD978 ; =0xFFFE0000 + lsl r2, r2, #0xe + lsr r3, r3, #1 + bl MOD85_021DD5D4 + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #0x40] + mov r1, #0x12 + str r0, [sp, #4] + mov r0, #1 + mov r2, #0x69 + str r0, [sp, #8] + add r0, r6, #0 + lsl r1, r1, #0x10 + lsl r2, r2, #0xe + bl MOD85_021DD5D4 + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #4 + blo _021DD96C + mov r1, #0 + str r1, [r4, #8] + ldr r0, [r4, #0xc] + add r0, r0, #1 + str r0, [r4, #0xc] + cmp r0, #2 + bhs _021DD8F8 + mov r0, #8 + add sp, #0x40 + str r0, [r4] + pop {r4, r5, r6, pc} +_021DD8F8: + str r1, [r4, #0xc] + ldr r0, [r4] + add sp, #0x40 + add r0, r0, #1 + str r0, [r4] + pop {r4, r5, r6, pc} +_021DD904: + ldr r3, _021DD97C ; =0xFFFF8000 + mov r2, #0x69 + str r3, [sp] + ldr r1, [r4, #0x34] + lsl r2, r2, #0xe + str r1, [sp, #4] + mov r1, #0 + str r1, [sp, #8] + lsl r1, r3, #2 + bl MOD85_021DD5D4 + mov r3, #0 + str r3, [sp] + ldr r0, [r4, #0x40] + mov r1, #0x12 + str r0, [sp, #4] + mov r0, #1 + mov r2, #0x69 + str r0, [sp, #8] + add r0, r6, #0 + lsl r1, r1, #0x10 + lsl r2, r2, #0xe + bl MOD85_021DD5D4 + ldr r0, [r4, #8] + add r0, r0, #1 + str r0, [r4, #8] + cmp r0, #4 + blo _021DD962 + add r0, r4, #0 + add r0, #0x30 + bl MOD85_021DECA0 + add r0, r4, #0 + add r0, #0x3c + bl MOD85_021DECA0 + mov r1, #5 + str r1, [sp] + mov r0, #0x45 + ldr r2, [r4, #0x2c] + lsl r0, r0, #4 + ldr r0, [r2, r0] + add r2, r1, #0 + add r3, r1, #0 + bl MOD85_021DEAB4 +_021DD962: + ldr r0, [r4] + add r0, r0, #1 + str r0, [r4] + mov r0, #1 + str r0, [r4, #4] +_021DD96C: + add sp, #0x40 + pop {r4, r5, r6, pc} + .align 2, 0 +_021DD970: .word 0x021DF82C +_021DD974: .word 0xFFFFC000 +_021DD978: .word 0xFFFE0000 +_021DD97C: .word 0xFFFF8000 + thumb_func_end MOD85_021DD624 + + thumb_func_start MOD85_021DD980 +MOD85_021DD980: ; 0x021DD980 + bx lr + .align 2, 0 + thumb_func_end MOD85_021DD980 + + thumb_func_start MOD85_021DD984 +MOD85_021DD984: ; 0x021DD984 + push {r4, r5, lr} + sub sp, #0x14 + ldr r5, _021DD9B0 ; =0x021DF6B8 + add r3, r0, #0 + ldmia r5!, {r0, r1} + add r4, sp, #8 + add r2, r4, #0 + stmia r4!, {r0, r1} + ldr r0, [r5] + ldr r1, _021DD9B4 ; =0x021DF8E8 + str r0, [r4] + str r3, [sp] + mov r0, #0x8e + str r0, [sp, #4] + ldr r0, _021DD9B8 ; =0x0000044C + ldr r0, [r3, r0] + mov r3, #0 + bl FUN_020644E4 + add sp, #0x14 + pop {r4, r5, pc} + nop +_021DD9B0: .word 0x021DF6B8 +_021DD9B4: .word 0x021DF8E8 +_021DD9B8: .word 0x0000044C + thumb_func_end MOD85_021DD984 + + thumb_func_start MOD85_021DD9BC +MOD85_021DD9BC: ; 0x021DD9BC + push {r3, r4, r5, lr} + sub sp, #0x28 + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0206475C + str r0, [r4] + add r0, r5, #0 + add r1, sp, #0x1c + bl FUN_0206477C + mov r0, #0 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r3, #2 + str r3, [sp, #0x14] + mov r0, #3 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r4] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r4, #4 + add r2, sp, #0x1c + bl MOD85_021DEC00 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020200BC + mov r0, #1 + add sp, #0x28 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DD9BC + + thumb_func_start MOD85_021DDA08 +MOD85_021DDA08: ; 0x021DDA08 + ldr r3, _021DDA10 ; =MOD85_021DECA0 + add r0, r1, #4 + bx r3 + nop +_021DDA10: .word MOD85_021DECA0 + thumb_func_end MOD85_021DDA08 + + thumb_func_start MOD85_021DDA14 +MOD85_021DDA14: ; 0x021DDA14 + mov r0, #0x52 + ldr r2, [r1] + lsl r0, r0, #2 + ldr r0, [r2, r0] + mov r3, #1 + cmp r0, #1 + bne _021DDA24 + mov r3, #0 +_021DDA24: + ldr r0, [r1, #8] + add r1, r3, #0 + ldr r3, _021DDA2C ; =FUN_020200A0 + bx r3 + .align 2, 0 +_021DDA2C: .word FUN_020200A0 + thumb_func_end MOD85_021DDA14 + + thumb_func_start MOD85_021DDA30 +MOD85_021DDA30: ; 0x021DDA30 + push {lr} + sub sp, #0x14 + mov r1, #0x15 + lsl r1, r1, #0xe + str r1, [sp, #8] + mov r1, #0x13 + lsl r1, r1, #0x10 + str r1, [sp, #0xc] + str r0, [sp] + mov r1, #0x8e + str r1, [sp, #4] + ldr r1, _021DDA58 ; =0x0000044C + add r2, sp, #8 + ldr r0, [r0, r1] + ldr r1, _021DDA5C ; =0x021DF924 + mov r3, #0 + bl FUN_020644E4 + add sp, #0x14 + pop {pc} + .align 2, 0 +_021DDA58: .word 0x0000044C +_021DDA5C: .word 0x021DF924 + thumb_func_end MOD85_021DDA30 + + thumb_func_start MOD85_021DDA60 +MOD85_021DDA60: ; 0x021DDA60 + push {r3, r4, r5, lr} + sub sp, #0x40 + add r5, r0, #0 + add r4, r1, #0 + add r1, sp, #0x28 + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + ldr r3, _021DDAEC ; =0x021DF6A0 + str r0, [r1, #8] + ldmia r3!, {r0, r1} + add r2, sp, #0x1c + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + add r0, r5, #0 + bl FUN_0206475C + str r0, [r4, #4] + add r0, r5, #0 + add r1, sp, #0x34 + bl FUN_0206477C + mov r0, #0 + str r0, [sp] + mov r0, #6 + str r0, [sp, #4] + str r0, [sp, #8] + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r3, #2 + str r3, [sp, #0x14] + mov r0, #3 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r4, #4] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r4, #0 + add r1, #8 + add r2, sp, #0x34 + bl MOD85_021DEC00 + ldr r0, [r4, #0xc] + mov r1, #2 + bl FUN_020200EC + ldr r0, [r4, #0xc] + add r1, sp, #0x28 + bl FUN_02020054 + ldr r0, [r4, #0xc] + add r1, sp, #0x1c + bl FUN_02020064 + mov r0, #0 + bl FUN_0201B9A0 + add r1, r0, #0 + ldr r0, [r4, #0xc] + bl FUN_02020088 + ldr r0, [r4, #0xc] + mov r1, #1 + bl FUN_020200BC + mov r0, #1 + add sp, #0x40 + pop {r3, r4, r5, pc} + nop +_021DDAEC: .word 0x021DF6A0 + thumb_func_end MOD85_021DDA60 + + thumb_func_start MOD85_021DDAF0 +MOD85_021DDAF0: ; 0x021DDAF0 + ldr r3, _021DDAF8 ; =MOD85_021DECA0 + add r1, #8 + add r0, r1, #0 + bx r3 + .align 2, 0 +_021DDAF8: .word MOD85_021DECA0 + thumb_func_end MOD85_021DDAF0 + + thumb_func_start MOD85_021DDAFC +MOD85_021DDAFC: ; 0x021DDAFC + push {r3, lr} + ldr r2, [r1] + add r2, r2, #1 + str r2, [r1] + cmp r2, #0x2d + blt _021DDB0C + bl FUN_02064520 +_021DDB0C: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021DDAFC + + thumb_func_start MOD85_021DDB10 +MOD85_021DDB10: ; 0x021DDB10 + push {r4, r5, lr} + sub sp, #0x14 + ldr r5, _021DDB3C ; =0x021DF790 + add r3, r0, #0 + ldmia r5!, {r0, r1} + add r4, sp, #8 + add r2, r4, #0 + stmia r4!, {r0, r1} + ldr r0, [r5] + ldr r1, _021DDB40 ; =0x021DF988 + str r0, [r4] + str r3, [sp] + mov r0, #0x8e + str r0, [sp, #4] + ldr r0, _021DDB44 ; =0x0000044C + ldr r0, [r3, r0] + mov r3, #0 + bl FUN_020644E4 + add sp, #0x14 + pop {r4, r5, pc} + nop +_021DDB3C: .word 0x021DF790 +_021DDB40: .word 0x021DF988 +_021DDB44: .word 0x0000044C + thumb_func_end MOD85_021DDB10 + + thumb_func_start MOD85_021DDB48 +MOD85_021DDB48: ; 0x021DDB48 + push {r3, r4, r5, lr} + sub sp, #0x28 + add r5, r0, #0 + add r4, r1, #0 + bl FUN_0206475C + str r0, [r4] + add r0, r5, #0 + add r1, sp, #0x1c + bl FUN_0206477C + mov r0, #0 + str r0, [sp] + mov r1, #7 + str r1, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + str r1, [sp, #0xc] + str r1, [sp, #0x10] + mov r3, #2 + str r3, [sp, #0x14] + mov r0, #3 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r4] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r4, #4 + add r2, sp, #0x1c + bl MOD85_021DEC00 + ldr r0, [r4, #8] + mov r1, #1 + bl FUN_020200BC + mov r0, #1 + add sp, #0x28 + pop {r3, r4, r5, pc} + thumb_func_end MOD85_021DDB48 + + thumb_func_start MOD85_021DDB94 +MOD85_021DDB94: ; 0x021DDB94 + ldr r3, _021DDB9C ; =MOD85_021DECA0 + add r0, r1, #4 + bx r3 + nop +_021DDB9C: .word MOD85_021DECA0 + thumb_func_end MOD85_021DDB94 + + thumb_func_start MOD85_021DDBA0 +MOD85_021DDBA0: ; 0x021DDBA0 + mov r0, #0x52 + ldr r2, [r1] + lsl r0, r0, #2 + ldr r0, [r2, r0] + mov r3, #1 + cmp r0, #1 + bne _021DDBB0 + mov r3, #0 +_021DDBB0: + ldr r0, [r1, #8] + add r1, r3, #0 + ldr r3, _021DDBB8 ; =FUN_020200A0 + bx r3 + .align 2, 0 +_021DDBB8: .word FUN_020200A0 + thumb_func_end MOD85_021DDBA0 + + thumb_func_start MOD85_021DDBBC +MOD85_021DDBBC: ; 0x021DDBBC + push {r4, r5, lr} + sub sp, #0x14 + ldr r5, _021DDBF0 ; =0x021DF64C + add r3, r0, #0 + ldmia r5!, {r0, r1} + add r4, sp, #8 + add r2, r4, #0 + stmia r4!, {r0, r1} + ldr r0, [r5] + ldr r1, _021DDBF4 ; =0x021DF9B0 + str r0, [r4] + mov r0, #0x11 + lsl r0, r0, #0xe + str r0, [sp, #8] + lsl r0, r0, #2 + str r0, [sp, #0xc] + str r3, [sp] + mov r0, #0x8e + str r0, [sp, #4] + ldr r0, _021DDBF8 ; =0x0000044C + ldr r0, [r3, r0] + mov r3, #0 + bl FUN_020644E4 + add sp, #0x14 + pop {r4, r5, pc} + .align 2, 0 +_021DDBF0: .word 0x021DF64C +_021DDBF4: .word 0x021DF9B0 +_021DDBF8: .word 0x0000044C + thumb_func_end MOD85_021DDBBC + + thumb_func_start MOD85_021DDBFC +MOD85_021DDBFC: ; 0x021DDBFC + push {r3, r4, r5, lr} + sub sp, #0x40 + add r5, r0, #0 + add r4, r1, #0 + add r1, sp, #0x28 + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + ldr r3, _021DDC88 ; =0x021DF748 + str r0, [r1, #8] + ldmia r3!, {r0, r1} + add r2, sp, #0x1c + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + add r0, r5, #0 + bl FUN_0206475C + str r0, [r4, #4] + add r0, r5, #0 + add r1, sp, #0x34 + bl FUN_0206477C + mov r0, #0 + str r0, [sp] + mov r1, #7 + str r1, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + str r1, [sp, #0xc] + str r1, [sp, #0x10] + mov r3, #2 + str r3, [sp, #0x14] + mov r0, #3 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r4, #4] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r4, #0 + add r1, #8 + add r2, sp, #0x34 + bl MOD85_021DEC00 + ldr r0, [r4, #0xc] + mov r1, #2 + bl FUN_020200EC + ldr r0, [r4, #0xc] + add r1, sp, #0x28 + bl FUN_02020054 + ldr r0, [r4, #0xc] + add r1, sp, #0x1c + bl FUN_02020064 + mov r0, #0 + bl FUN_0201B9A0 + add r1, r0, #0 + ldr r0, [r4, #0xc] + bl FUN_02020088 + ldr r0, [r4, #0xc] + mov r1, #1 + bl FUN_020200BC + mov r0, #1 + add sp, #0x40 + pop {r3, r4, r5, pc} + .align 2, 0 +_021DDC88: .word 0x021DF748 + thumb_func_end MOD85_021DDBFC + + thumb_func_start MOD85_021DDC8C +MOD85_021DDC8C: ; 0x021DDC8C + ldr r3, _021DDC94 ; =MOD85_021DECA0 + add r1, #8 + add r0, r1, #0 + bx r3 + .align 2, 0 +_021DDC94: .word MOD85_021DECA0 + thumb_func_end MOD85_021DDC8C + + thumb_func_start MOD85_021DDC98 +MOD85_021DDC98: ; 0x021DDC98 + push {r3, lr} + ldr r2, [r1] + add r2, r2, #1 + str r2, [r1] + cmp r2, #0x2d + blt _021DDCA8 + bl FUN_02064520 +_021DDCA8: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021DDC98 + + thumb_func_start MOD85_021DDCAC +MOD85_021DDCAC: ; 0x021DDCAC + push {r4, r5, lr} + sub sp, #0x14 + ldr r5, _021DDCD8 ; =0x021DF610 + add r3, r0, #0 + ldmia r5!, {r0, r1} + add r4, sp, #8 + add r2, r4, #0 + stmia r4!, {r0, r1} + ldr r0, [r5] + ldr r1, _021DDCDC ; =0x021DF898 + str r0, [r4] + str r3, [sp] + mov r0, #0x8e + str r0, [sp, #4] + ldr r0, _021DDCE0 ; =0x0000044C + ldr r0, [r3, r0] + mov r3, #0 + bl FUN_020644E4 + add sp, #0x14 + pop {r4, r5, pc} + nop +_021DDCD8: .word 0x021DF610 +_021DDCDC: .word 0x021DF898 +_021DDCE0: .word 0x0000044C + thumb_func_end MOD85_021DDCAC + + thumb_func_start MOD85_021DDCE4 +MOD85_021DDCE4: ; 0x021DDCE4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + add r4, r0, #0 + add r7, r1, #0 + bl FUN_0206475C + str r0, [r7] + add r0, r4, #0 + add r1, sp, #0x1c + bl FUN_0206477C + mov r6, #0 + add r4, r7, #4 + add r5, r7, #0 +_021DDD00: + mov r0, #0 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r0, #2 + str r0, [sp, #0x14] + mov r0, #3 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r7] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r4, #0 + add r2, sp, #0x1c + mov r3, #2 + bl MOD85_021DEC00 + ldr r0, [r5, #8] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r5, #8] + mov r1, #1 + bl FUN_020200BC + add r6, r6, #1 + add r4, #0xc + add r5, #0xc + cmp r6, #2 + blt _021DDD00 + mov r0, #1 + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DDCE4 + + thumb_func_start MOD85_021DDD4C +MOD85_021DDD4C: ; 0x021DDD4C + push {r4, lr} + add r4, r1, #0 + add r0, r4, #4 + bl MOD85_021DECA0 + add r4, #0x10 + add r0, r4, #0 + bl MOD85_021DECA0 + pop {r4, pc} + thumb_func_end MOD85_021DDD4C + + thumb_func_start MOD85_021DDD60 +MOD85_021DDD60: ; 0x021DDD60 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r5, r1, #0 + mov r0, #0x4f + ldr r1, [r5] + lsl r0, r0, #2 + add r4, r1, r0 + ldr r0, [r5, #8] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r5, #0x14] + mov r1, #0 + bl FUN_020200A0 + ldr r0, [r4, #0xc] + cmp r0, #1 + beq _021DDE06 + ldr r3, _021DDE0C ; =0x021DF76C + add r2, sp, #0 + ldmia r3!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r6, #0 + str r0, [r2] + ldr r0, [r5] + ldr r7, [r0, #0x10] + cmp r7, #0x63 + bls _021DDD9C + mov r7, #0x63 +_021DDD9C: + add r0, r7, #0 + mov r1, #0x64 + bl _u32_div_f + add r0, r1, #0 + mov r1, #0xa + bl _u32_div_f + add r4, r0, #0 + beq _021DDDDA + ldr r0, [r5, #8] + add r1, sp, #0 + bl FUN_02020044 + ldr r0, [r5, #8] + add r1, r4, #0 + bl FUN_02020130 + ldr r0, [r5, #8] + bl FUN_02020198 + ldr r0, [r5, #8] + mov r1, #1 + bl FUN_020200A0 + mov r0, #2 + ldr r1, [sp] + lsl r0, r0, #0xe + add r0, r1, r0 + str r0, [sp] + add r6, r6, #1 +_021DDDDA: + mov r0, #0xc + add r4, r6, #0 + add r5, #8 + mul r4, r0 + ldr r0, [r5, r4] + add r1, sp, #0 + bl FUN_02020044 + add r0, r7, #0 + mov r1, #0xa + bl _u32_div_f + ldr r0, [r5, r4] + bl FUN_02020130 + ldr r0, [r5, r4] + bl FUN_02020198 + ldr r0, [r5, r4] + mov r1, #1 + bl FUN_020200A0 +_021DDE06: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + nop +_021DDE0C: .word 0x021DF76C + thumb_func_end MOD85_021DDD60 + + thumb_func_start MOD85_021DDE10 +MOD85_021DDE10: ; 0x021DDE10 + push {r4, r5, lr} + sub sp, #0x14 + ldr r5, _021DDE3C ; =0x021DF844 + add r3, r0, #0 + ldmia r5!, {r0, r1} + add r4, sp, #8 + add r2, r4, #0 + stmia r4!, {r0, r1} + ldr r0, [r5] + ldr r1, _021DDE40 ; =0x021DF8FC + str r0, [r4] + str r3, [sp] + mov r0, #0x8e + str r0, [sp, #4] + ldr r0, _021DDE44 ; =0x0000044C + ldr r0, [r3, r0] + mov r3, #0 + bl FUN_020644E4 + add sp, #0x14 + pop {r4, r5, pc} + nop +_021DDE3C: .word 0x021DF844 +_021DDE40: .word 0x021DF8FC +_021DDE44: .word 0x0000044C + thumb_func_end MOD85_021DDE10 + + thumb_func_start MOD85_021DDE48 +MOD85_021DDE48: ; 0x021DDE48 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x28 + ldr r3, _021DDEAC ; =0x021DF6C4 + add r4, r0, #0 + add r6, r1, #0 + ldmia r3!, {r0, r1} + add r2, sp, #0x1c + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + add r0, r4, #0 + bl FUN_0206475C + str r0, [r6] + mov r4, #0 + add r5, r6, #4 + mov r7, #2 +_021DDE6A: + mov r0, #0 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + str r7, [sp, #0x14] + mov r0, #3 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r6] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r5, #0 + add r2, sp, #0x1c + add r3, r7, #0 + bl MOD85_021DEC00 + mov r0, #2 + ldr r1, [sp, #0x1c] + lsl r0, r0, #0xe + add r0, r1, r0 + add r4, r4, #1 + add r5, #0xc + str r0, [sp, #0x1c] + cmp r4, #5 + blt _021DDE6A + mov r0, #1 + add sp, #0x28 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DDEAC: .word 0x021DF6C4 + thumb_func_end MOD85_021DDE48 + + thumb_func_start MOD85_021DDEB0 +MOD85_021DDEB0: ; 0x021DDEB0 + push {r3, r4, r5, lr} + mov r4, #0 + add r5, r1, #4 +_021DDEB6: + add r0, r5, #0 + bl MOD85_021DECA0 + add r4, r4, #1 + add r5, #0xc + cmp r4, #5 + blt _021DDEB6 + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DDEB0 + + thumb_func_start MOD85_021DDEC8 +MOD85_021DDEC8: ; 0x021DDEC8 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + mov r0, #0x52 + ldr r1, [r5] + lsl r0, r0, #2 + ldr r0, [r1, r0] + mov r7, #1 + cmp r0, #1 + bne _021DDEDC + mov r7, #0 +_021DDEDC: + mov r6, #0 + add r4, r5, #0 +_021DDEE0: + ldr r0, [r4, #8] + add r1, r7, #0 + bl FUN_020200A0 + add r6, r6, #1 + add r4, #0xc + cmp r6, #5 + blt _021DDEE0 + cmp r7, #0 + beq _021DDF34 + ldr r0, [r5] + ldr r6, [r0, #0x14] + ldr r0, _021DDF38 ; =0x0000C350 + cmp r6, r0 + ble _021DDF00 + add r6, r0, #0 +_021DDF00: + ldr r4, _021DDF3C ; =0x00002710 + mov r7, #0xa +_021DDF04: + add r1, r4, #0 + add r0, r6, #0 + mul r1, r7 + bl _s32_div_f + add r0, r1, #0 + add r1, r4, #0 + bl _s32_div_f + add r1, r0, #0 + ldr r0, [r5, #8] + bl FUN_02020130 + ldr r0, [r5, #8] + bl FUN_02020198 + add r0, r4, #0 + mov r1, #0xa + bl _s32_div_f + add r4, r0, #0 + add r5, #0xc + cmp r4, #1 + bge _021DDF04 +_021DDF34: + pop {r3, r4, r5, r6, r7, pc} + nop +_021DDF38: .word 0x0000C350 +_021DDF3C: .word 0x00002710 + thumb_func_end MOD85_021DDEC8 + + thumb_func_start MOD85_021DDF40 +MOD85_021DDF40: ; 0x021DDF40 + push {lr} + sub sp, #0x14 + add r3, r1, #0 + add r2, sp, #8 + mov r1, #0 + str r1, [r2] + str r1, [r2, #4] + str r1, [r2, #8] + str r0, [sp] + mov r1, #0x8e + str r1, [sp, #4] + ldr r1, _021DDF64 ; =0x0000044C + ldr r0, [r0, r1] + ldr r1, _021DDF68 ; =0x021DF99C + bl FUN_020644E4 + add sp, #0x14 + pop {pc} + .align 2, 0 +_021DDF64: .word 0x0000044C +_021DDF68: .word 0x021DF99C + thumb_func_end MOD85_021DDF40 + + thumb_func_start MOD85_021DDF6C +MOD85_021DDF6C: ; 0x021DDF6C + push {r4, r5, r6, r7, lr} + sub sp, #0x44 + add r6, r0, #0 + add r5, r1, #0 + add r1, sp, #0x2c + mov r0, #0 + str r0, [r1] + str r0, [r1, #4] + ldr r3, _021DE0D0 ; =0x021DF79C + str r0, [r1, #8] + ldmia r3!, {r0, r1} + add r2, sp, #0x20 + stmia r2!, {r0, r1} + ldr r0, [r3] + str r0, [r2] + add r0, r6, #0 + bl FUN_0206475C + add r4, r0, #0 + add r0, r6, #0 + bl FUN_02064754 + str r0, [r5] + str r4, [r5, #0x14] + ldr r0, [r5] + cmp r0, #0 + bne _021DDFD6 + ldr r1, [r4, #0x1c] + ldr r0, _021DE0D4 ; =0x000003E7 + str r1, [r5, #4] + cmp r1, r0 + bls _021DDFAE + str r0, [r5, #4] +_021DDFAE: + ldr r0, [r5, #4] + cmp r0, #0x64 + blo _021DDFBA + mov r0, #3 + str r0, [r5, #8] + b _021DDFC8 +_021DDFBA: + cmp r0, #0xa + blo _021DDFC4 + mov r0, #2 + str r0, [r5, #8] + b _021DDFC8 +_021DDFC4: + mov r0, #1 + str r0, [r5, #8] +_021DDFC8: + mov r0, #0x32 + lsl r0, r0, #0xe + str r0, [sp, #0x38] + mov r0, #0x13 + lsl r0, r0, #0x10 + str r0, [sp, #0x3c] + b _021DE022 +_021DDFD6: + ldr r1, [r4, #0x14] + ldr r0, _021DE0D8 ; =0x0001869F + str r1, [r5, #4] + cmp r1, r0 + bls _021DDFE2 + str r0, [r5, #4] +_021DDFE2: + ldr r1, [r5, #4] + ldr r0, _021DE0DC ; =0x00002710 + cmp r1, r0 + blo _021DDFF0 + mov r0, #5 + str r0, [r5, #8] + b _021DE016 +_021DDFF0: + mov r0, #0xfa + lsl r0, r0, #2 + cmp r1, r0 + blo _021DDFFE + mov r0, #4 + str r0, [r5, #8] + b _021DE016 +_021DDFFE: + cmp r1, #0x64 + blo _021DE008 + mov r0, #3 + str r0, [r5, #8] + b _021DE016 +_021DE008: + cmp r1, #0xa + blo _021DE012 + mov r0, #2 + str r0, [r5, #8] + b _021DE016 +_021DE012: + mov r0, #1 + str r0, [r5, #8] +_021DE016: + mov r0, #0x32 + lsl r0, r0, #0xe + str r0, [sp, #0x38] + mov r0, #0x11 + lsl r0, r0, #0x10 + str r0, [sp, #0x3c] +_021DE022: + ldr r0, [r5, #8] + mov r7, #0 + mov r6, #1 + cmp r0, #0 + bls _021DE0C6 + add r0, r5, #0 + str r0, [sp, #0x1c] + add r0, #0x18 + str r0, [sp, #0x1c] + add r4, r5, #0 +_021DE036: + mov r0, #0 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #6 + str r0, [sp, #8] + mov r0, #8 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r0, #2 + str r0, [sp, #0x14] + mov r0, #3 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r5, #0x14] + lsl r0, r0, #4 + ldr r0, [r1, r0] + ldr r1, [sp, #0x1c] + add r2, sp, #0x38 + mov r3, #2 + bl MOD85_021DEC00 + ldr r0, [r4, #0x1c] + mov r1, #2 + bl FUN_020200EC + ldr r0, [r4, #0x1c] + add r1, sp, #0x2c + bl FUN_02020054 + ldr r0, [r4, #0x1c] + add r1, sp, #0x20 + bl FUN_02020064 + mov r0, #0 + bl FUN_0201B9A0 + add r1, r0, #0 + ldr r0, [r4, #0x1c] + bl FUN_02020088 + mov r1, #0xa + ldr r0, [r5, #4] + mul r1, r6 + bl _u32_div_f + add r0, r1, #0 + add r1, r6, #0 + bl _u32_div_f + add r1, r0, #0 + ldr r0, [r4, #0x1c] + bl FUN_02020130 + ldr r0, [r4, #0x1c] + bl FUN_02020198 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x38] + add r0, #0xc + str r0, [sp, #0x1c] + mov r0, #0xa + mul r6, r0 + mov r0, #1 + lsl r0, r0, #0x10 + sub r0, r1, r0 + str r0, [sp, #0x38] + ldr r0, [r5, #8] + add r7, r7, #1 + add r4, #0xc + cmp r7, r0 + blo _021DE036 +_021DE0C6: + str r7, [r5, #0x10] + mov r0, #1 + add sp, #0x44 + pop {r4, r5, r6, r7, pc} + nop +_021DE0D0: .word 0x021DF79C +_021DE0D4: .word 0x000003E7 +_021DE0D8: .word 0x0001869F +_021DE0DC: .word 0x00002710 + thumb_func_end MOD85_021DDF6C + + thumb_func_start MOD85_021DE0E0 +MOD85_021DE0E0: ; 0x021DE0E0 + push {r4, r5, r6, lr} + add r6, r1, #0 + ldr r0, [r6, #0x10] + mov r4, #0 + cmp r0, #0 + ble _021DE100 + add r5, r6, #0 + add r5, #0x18 +_021DE0F0: + add r0, r5, #0 + bl MOD85_021DECA0 + ldr r0, [r6, #0x10] + add r4, r4, #1 + add r5, #0xc + cmp r4, r0 + blt _021DE0F0 +_021DE100: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD85_021DE0E0 + + thumb_func_start MOD85_021DE104 +MOD85_021DE104: ; 0x021DE104 + push {r3, lr} + ldr r2, [r1, #0xc] + add r2, r2, #1 + str r2, [r1, #0xc] + cmp r2, #0x2d + blt _021DE114 + bl FUN_02064520 +_021DE114: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021DE104 + + thumb_func_start MOD85_021DE118 +MOD85_021DE118: ; 0x021DE118 + push {r4, r5, lr} + sub sp, #0x14 + ldr r5, _021DE14C ; =0x021DF664 + add r2, r0, #0 + add r3, r1, #0 + ldmia r5!, {r0, r1} + add r4, sp, #8 + stmia r4!, {r0, r1} + ldr r0, [r5] + str r0, [r4] + ldr r0, _021DE150 ; =0x000003E7 + cmp r3, r0 + bls _021DE134 + add r3, r0, #0 +_021DE134: + str r2, [sp] + mov r0, #0x8e + str r0, [sp, #4] + ldr r0, _021DE154 ; =0x0000044C + ldr r1, _021DE158 ; =0x021DF9C4 + ldr r0, [r2, r0] + add r2, sp, #8 + bl FUN_020644E4 + add sp, #0x14 + pop {r4, r5, pc} + nop +_021DE14C: .word 0x021DF664 +_021DE150: .word 0x000003E7 +_021DE154: .word 0x0000044C +_021DE158: .word 0x021DF9C4 + thumb_func_end MOD85_021DE118 + + thumb_func_start MOD85_021DE15C +MOD85_021DE15C: ; 0x021DE15C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + add r4, r0, #0 + add r5, r1, #0 + bl FUN_0206475C + str r0, [r5, #8] + add r0, r4, #0 + bl FUN_02064754 + str r0, [sp, #0x20] + add r0, r4, #0 + add r1, sp, #0x24 + bl FUN_0206477C + ldr r0, [sp, #0x20] + cmp r0, #0x64 + blo _021DE192 + mov r0, #3 + str r0, [r5, #4] + mov r0, #1 + ldr r1, [sp, #0x24] + lsl r0, r0, #0x10 + sub r0, r1, r0 + mov r4, #0x64 + str r0, [sp, #0x24] + b _021DE1AA +_021DE192: + cmp r0, #0xa + blo _021DE1A6 + mov r0, #2 + str r0, [r5, #4] + ldr r1, [sp, #0x24] + lsl r0, r0, #0xe + sub r0, r1, r0 + mov r4, #0xa + str r0, [sp, #0x24] + b _021DE1AA +_021DE1A6: + mov r4, #1 + str r4, [r5, #4] +_021DE1AA: + ldr r0, [r5, #4] + mov r6, #0 + cmp r0, #0 + ble _021DE226 + add r0, r5, #0 + str r0, [sp, #0x1c] + add r0, #0xc + str r0, [sp, #0x1c] + add r7, r5, #0 +_021DE1BC: + mov r0, #0 + str r0, [sp] + mov r0, #9 + str r0, [sp, #4] + mov r0, #7 + str r0, [sp, #8] + mov r0, #9 + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r0, #2 + str r0, [sp, #0x14] + mov r0, #3 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r5, #8] + lsl r0, r0, #4 + ldr r0, [r1, r0] + ldr r1, [sp, #0x1c] + add r2, sp, #0x24 + mov r3, #2 + bl MOD85_021DEC00 + mov r1, #0xa + ldr r0, [sp, #0x20] + mul r1, r4 + bl _u32_div_f + add r0, r1, #0 + add r1, r4, #0 + bl _u32_div_f + add r1, r0, #0 + ldr r0, [r7, #0x10] + bl FUN_02020130 + ldr r0, [sp, #0x1c] + ldr r1, [sp, #0x24] + add r0, #0xc + str r0, [sp, #0x1c] + mov r0, #1 + lsl r0, r0, #0x10 + add r0, r1, r0 + str r0, [sp, #0x24] + add r0, r4, #0 + mov r1, #0xa + add r7, #0xc + add r6, r6, #1 + bl _u32_div_f + add r4, r0, #0 + ldr r0, [r5, #4] + cmp r6, r0 + blt _021DE1BC +_021DE226: + mov r0, #1 + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DE15C + + thumb_func_start MOD85_021DE22C +MOD85_021DE22C: ; 0x021DE22C + push {r4, r5, r6, lr} + add r6, r1, #0 + ldr r0, [r6, #4] + mov r4, #0 + cmp r0, #0 + ble _021DE24C + add r5, r6, #0 + add r5, #0xc +_021DE23C: + add r0, r5, #0 + bl MOD85_021DECA0 + ldr r0, [r6, #4] + add r4, r4, #1 + add r5, #0xc + cmp r4, r0 + blt _021DE23C +_021DE24C: + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD85_021DE22C + + thumb_func_start MOD85_021DE250 +MOD85_021DE250: ; 0x021DE250 + push {r3, lr} + ldr r2, [r1] + add r2, r2, #1 + str r2, [r1] + cmp r2, #0x3c + blt _021DE260 + bl FUN_02064520 +_021DE260: + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021DE250 + + thumb_func_start MOD85_021DE264 +MOD85_021DE264: ; 0x021DE264 + push {lr} + sub sp, #0x14 + add r2, sp, #8 + mov r3, #0 + str r3, [r2] + str r3, [r2, #4] + str r3, [r2, #8] + str r0, [sp] + mov r1, #0x8c + str r1, [sp, #4] + ldr r1, _021DE288 ; =0x0000044C + ldr r0, [r0, r1] + ldr r1, _021DE28C ; =0x021DF910 + bl FUN_020644E4 + add sp, #0x14 + pop {pc} + nop +_021DE288: .word 0x0000044C +_021DE28C: .word 0x021DF910 + thumb_func_end MOD85_021DE264 + + thumb_func_start MOD85_021DE290 +MOD85_021DE290: ; 0x021DE290 + push {r4, lr} + add r4, r1, #0 + bl FUN_0206475C + str r0, [r4, #0x44] + ldr r0, [r0, #0x44] + add r3, r4, #0 + str r0, [r4, #0x18] + ldr r0, [r4, #0x44] + add r3, #0x1c + ldr r0, [r0, #0x48] + mov r1, #1 +_021DE2A8: + add r2, r0, #0 + tst r2, r1 + bne _021DE2BC + ldr r2, [r3] + lsr r0, r0, #1 + add r2, r2, #1 + str r2, [r3] + ldr r2, [r4, #0x1c] + cmp r2, #5 + blt _021DE2A8 +_021DE2BC: + ldr r0, [r4, #0x1c] + cmp r0, #5 + blt _021DE2C6 + bl ErrorHandling +_021DE2C6: + add r0, r4, #0 + bl MOD85_021DE4F0 + mov r0, #1 + pop {r4, pc} + thumb_func_end MOD85_021DE290 + + thumb_func_start MOD85_021DE2D0 +MOD85_021DE2D0: ; 0x021DE2D0 + push {r3, r4, r5, r6, r7, lr} + add r7, r1, #0 + ldr r0, [r7, #0x14] + cmp r0, #0 + bne _021DE30C + add r5, r7, #0 + mov r6, #0 + add r4, r7, #0 + add r5, #0x20 +_021DE2E2: + ldr r0, [r4, #0x24] + cmp r0, #0 + beq _021DE2EE + add r0, r5, #0 + bl MOD85_021DECA0 +_021DE2EE: + add r6, r6, #1 + add r4, #0xc + add r5, #0xc + cmp r6, #3 + blt _021DE2E2 + mov r1, #0xa + str r1, [sp] + mov r0, #0x45 + ldr r2, [r7, #0x44] + lsl r0, r0, #4 + ldr r0, [r2, r0] + mov r2, #8 + add r3, r1, #0 + bl MOD85_021DEAB4 +_021DE30C: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021DE2D0 + + thumb_func_start MOD85_021DE310 +MOD85_021DE310: ; 0x021DE310 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x30 + add r5, r1, #0 + ldr r0, [r5] + cmp r0, #5 + bhi _021DE33A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_021DE328: ; jump table + .short _021DE334 - _021DE328 - 2 ; case 0 + .short _021DE3AE - _021DE328 - 2 ; case 1 + .short _021DE3F8 - _021DE328 - 2 ; case 2 + .short _021DE410 - _021DE328 - 2 ; case 3 + .short _021DE454 - _021DE328 - 2 ; case 4 + .short _021DE46C - _021DE328 - 2 ; case 5 +_021DE334: + ldr r0, [r5, #8] + cmp r0, #2 + beq _021DE33C +_021DE33A: + b _021DE4A0 +_021DE33C: + mov r4, #0 + add r7, r5, #0 + str r4, [sp, #0x20] + add r7, #0x20 + add r6, r5, #0 +_021DE346: + ldr r1, [r5, #0x1c] + mov r0, #0x24 + add r2, r1, #0 + mul r2, r0 + ldr r0, _021DE4A4 ; =0x021DFB80 + add r0, r0, r2 + add r3, r4, r0 + add r2, sp, #0x24 + ldmia r3!, {r0, r1} + mov ip, r2 + stmia r2!, {r0, r1} + ldr r0, [r3] + mov r3, #3 + str r0, [r2] + mov r0, #0 + str r0, [sp] + mov r0, #0xa + str r0, [sp, #4] + mov r0, #0 + str r0, [sp, #8] + mov r0, #0xa + str r0, [sp, #0xc] + str r0, [sp, #0x10] + mov r0, #1 + str r0, [sp, #0x14] + mov r0, #0 + str r0, [sp, #0x18] + mov r0, #0x45 + ldr r1, [r5, #0x44] + lsl r0, r0, #4 + ldr r0, [r1, r0] + add r1, r7, #0 + mov r2, ip + bl MOD85_021DEC00 + ldr r0, [r6, #0x24] + mov r1, #1 + bl FUN_020200BC + ldr r0, [sp, #0x20] + add r4, #0xc + add r0, r0, #1 + add r7, #0xc + add r6, #0xc + str r0, [sp, #0x20] + cmp r0, #3 + blt _021DE346 + ldr r0, [r5] + add sp, #0x30 + add r0, r0, #1 + str r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_021DE3AE: + mov r6, #0 + str r6, [sp, #0x1c] + add r4, r5, #0 + add r7, sp, #0x24 +_021DE3B6: + ldr r0, [r4, #0x24] + add r1, r7, #0 + bl MOD85_021DECBC + mov r0, #1 + ldr r1, [sp, #0x28] + lsl r0, r0, #0xe + add r1, r1, r0 + mov r0, #0xf + lsl r0, r0, #0x10 + str r1, [sp, #0x28] + cmp r1, r0 + blt _021DE3D4 + str r0, [sp, #0x28] + b _021DE3D8 +_021DE3D4: + mov r0, #1 + str r0, [sp, #0x1c] +_021DE3D8: + ldr r0, [r4, #0x24] + add r1, r7, #0 + bl FUN_02020044 + add r6, r6, #1 + add r4, #0xc + cmp r6, #3 + blt _021DE3B6 + ldr r0, [sp, #0x1c] + cmp r0, #0 + bne _021DE4A0 + ldr r0, [r5] + add sp, #0x30 + add r0, r0, #1 + str r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_021DE3F8: + ldr r0, [r5, #0xc] + add r0, r0, #1 + str r0, [r5, #0xc] + cmp r0, #0x1e + blt _021DE4A0 + mov r0, #0 + str r0, [r5, #0xc] + ldr r0, [r5] + add sp, #0x30 + add r0, r0, #1 + str r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_021DE410: + ldr r0, [r5, #0xc] + add r0, r0, #1 + str r0, [r5, #0xc] + cmp r0, #0xc + blt _021DE41E + mov r7, #1 + b _021DE420 +_021DE41E: + mov r7, #0 +_021DE420: + mov r6, #0 + add r4, r5, #0 +_021DE424: + ldr r0, [r4, #0x24] + add r1, r7, #0 + bl FUN_020200A0 + add r6, r6, #1 + add r4, #0xc + cmp r6, #3 + blt _021DE424 + ldr r0, [r5, #0xc] + cmp r0, #0x1e + blt _021DE4A0 + mov r1, #0 + str r1, [r5, #0xc] + ldr r0, [r5, #0x10] + add r0, r0, #1 + str r0, [r5, #0x10] + cmp r0, #3 + blt _021DE4A0 + str r1, [r5, #0x10] + ldr r0, [r5] + add sp, #0x30 + add r0, r0, #1 + str r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_021DE454: + ldr r0, [r5, #0xc] + add r0, r0, #1 + str r0, [r5, #0xc] + cmp r0, #0x1e + blt _021DE4A0 + mov r0, #0 + str r0, [r5, #0xc] + ldr r0, [r5] + add sp, #0x30 + add r0, r0, #1 + str r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_021DE46C: + add r4, r5, #0 + mov r6, #0 + add r4, #0x20 +_021DE472: + add r0, r4, #0 + bl MOD85_021DECA0 + add r6, r6, #1 + add r4, #0xc + cmp r6, #3 + blt _021DE472 + mov r1, #0xa + str r1, [sp] + mov r0, #0x45 + ldr r2, [r5, #0x44] + lsl r0, r0, #4 + ldr r0, [r2, r0] + mov r2, #8 + add r3, r1, #0 + bl MOD85_021DEAB4 + ldr r0, [r5] + add r0, r0, #1 + str r0, [r5] + mov r0, #1 + str r0, [r5, #4] + str r0, [r5, #0x14] +_021DE4A0: + add sp, #0x30 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_021DE4A4: .word 0x021DFB80 + thumb_func_end MOD85_021DE310 + + thumb_func_start MOD85_021DE4A8 +MOD85_021DE4A8: ; 0x021DE4A8 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + mov r0, #0x45 + ldr r1, [r4, #0x44] + lsl r0, r0, #4 + ldr r0, [r1, r0] + mov r1, #0xa + bl MOD85_021DE8A8 + mov r0, #1 + str r0, [r4, #8] + add r0, r5, #0 + bl FUN_0200CAB4 + pop {r3, r4, r5, pc} + thumb_func_end MOD85_021DE4A8 + + thumb_func_start MOD85_021DE4C8 +MOD85_021DE4C8: ; 0x021DE4C8 + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldr r0, [r4, #8] + ldr r1, [r4, #0x44] + cmp r0, #1 + bne _021DE4EC + mov r0, #0x45 + lsl r0, r0, #4 + ldr r0, [r1, r0] + mov r1, #0xa + bl MOD85_021DE8DC + mov r0, #2 + str r0, [r4, #8] + add r0, r5, #0 + bl FUN_0200CAB4 +_021DE4EC: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DE4C8 + + thumb_func_start MOD85_021DE4F0 +MOD85_021DE4F0: ; 0x021DE4F0 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldr r0, [r5, #0x18] + ldr r4, [r5, #0x44] + cmp r0, #0 + bne _021DE538 + mov r2, #0x45 + mov r0, #0xa + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #3 + mov r3, #0xe + bl MOD85_021DE840 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0xf + mov r3, #0xa + bl MOD85_021DE9E4 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x10 + mov r3, #0xa + bl MOD85_021DEA4C + b _021DE572 +_021DE538: + mov r2, #0x45 + mov r0, #0xa + lsl r2, r2, #4 + str r0, [sp] + ldr r0, [r4, r2] + sub r2, #0x18 + ldr r2, [r4, r2] + mov r1, #3 + mov r3, #0x11 + bl MOD85_021DE840 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x12 + mov r3, #0xa + bl MOD85_021DE9E4 + mov r1, #0x45 + lsl r1, r1, #4 + ldr r0, [r4, r1] + sub r1, #0x18 + ldr r1, [r4, r1] + mov r2, #0x13 + mov r3, #0xa + bl MOD85_021DEA4C +_021DE572: + ldr r0, _021DE598 ; =MOD85_021DE4A8 + ldr r2, _021DE59C ; =0x00000101 + add r1, r5, #0 + bl FUN_0200CA60 + cmp r0, #0 + bne _021DE584 + bl ErrorHandling +_021DE584: + ldr r0, _021DE5A0 ; =MOD85_021DE4C8 + ldr r2, _021DE59C ; =0x00000101 + add r1, r5, #0 + bl FUN_0200CA98 + cmp r0, #0 + bne _021DE596 + bl ErrorHandling +_021DE596: + pop {r3, r4, r5, pc} + .align 2, 0 +_021DE598: .word MOD85_021DE4A8 +_021DE59C: .word 0x00000101 +_021DE5A0: .word MOD85_021DE4C8 + thumb_func_end MOD85_021DE4F0 + + thumb_func_start MOD85_021DE5A4 +MOD85_021DE5A4: ; 0x021DE5A4 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + str r1, [sp, #4] + ldr r1, [sp, #0x28] + str r0, [sp] + str r1, [sp, #0x28] + mov r1, #0x57 + lsl r1, r1, #2 + str r2, [sp, #8] + add r7, r3, #0 + ldr r5, [sp, #0x20] + ldr r6, [sp, #0x24] + bl FUN_02016998 + add r4, r0, #0 + bne _021DE5C8 + bl ErrorHandling +_021DE5C8: + ldr r0, [sp] + add r1, r4, #0 + str r0, [r4] + strb r7, [r4, #4] + strb r5, [r4, #5] + ldr r0, [sp, #0x28] + strb r6, [r4, #6] + strb r0, [r4, #7] + ldr r0, [sp, #0x2c] + ldr r2, [sp] + strb r0, [r4, #8] + ldr r0, [sp, #0x30] + add r1, #0x10 + strb r0, [r4, #9] + ldr r0, [sp, #0x34] + strb r0, [r4, #0xa] + ldr r0, [sp, #0x38] + strb r0, [r4, #0xb] + ldr r0, [sp, #4] + bl FUN_02008C9C + str r0, [r4, #0xc] + ldr r0, [sp, #8] + ldr r1, [sp] + bl FUN_0201C328 + mov r1, #0x4e + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [sp, #8] + ldr r1, [sp] + bl FUN_0201C24C + ldr r2, [sp] + add r0, r7, #0 + mov r1, #0 + bl FUN_02008DEC + mov r1, #0x4f + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r2, [sp] + add r0, r5, #0 + mov r1, #1 + bl FUN_02008DEC + mov r1, #5 + lsl r1, r1, #6 + str r0, [r4, r1] + ldr r2, [sp] + add r0, r6, #0 + mov r1, #2 + bl FUN_02008DEC + mov r1, #0x51 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [sp, #0x28] + ldr r2, [sp] + mov r1, #3 + bl FUN_02008DEC + mov r1, #0x52 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [sp] + lsl r1, r7, #3 + bl FUN_02016998 + mov r1, #0x53 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [sp] + lsl r1, r5, #3 + bl FUN_02016998 + mov r1, #0x15 + lsl r1, r1, #4 + str r0, [r4, r1] + ldr r0, [sp] + lsl r1, r6, #3 + bl FUN_02016998 + mov r1, #0x55 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r1, [sp, #0x28] + ldr r0, [sp] + lsl r1, r1, #3 + bl FUN_02016998 + mov r1, #0x56 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r1, #0 + cmp r7, #0 + bls _021DE6A4 + bls _021DE6A4 + ldr r0, [sp, #0x2c] + add r2, r1, #0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 +_021DE694: + mov r3, #0x53 + lsl r3, r3, #2 + ldr r3, [r4, r3] + add r1, r1, #1 + strh r0, [r3, r2] + add r2, #8 + cmp r1, r7 + blo _021DE694 +_021DE6A4: + mov r3, #0 + cmp r5, #0 + bls _021DE6C4 + bls _021DE6C4 + ldr r0, [sp, #0x30] + mov r7, #0x15 + lsl r0, r0, #0x10 + add r2, r3, #0 + lsr r1, r0, #0x10 + lsl r7, r7, #4 +_021DE6B8: + ldr r0, [r4, r7] + add r3, r3, #1 + strh r1, [r0, r2] + add r2, #8 + cmp r3, r5 + blo _021DE6B8 +_021DE6C4: + mov r1, #0 + cmp r6, #0 + bls _021DE6E4 + bls _021DE6E4 + ldr r2, [sp, #0x34] + add r0, r1, #0 + lsl r2, r2, #0x10 + lsr r5, r2, #0x10 + mov r2, #0x55 + lsl r2, r2, #2 +_021DE6D8: + ldr r3, [r4, r2] + add r1, r1, #1 + strh r5, [r3, r0] + add r0, #8 + cmp r1, r6 + blo _021DE6D8 +_021DE6E4: + ldr r0, [sp, #0x28] + mov r1, #0 + cmp r0, #0 + bls _021DE708 + bls _021DE708 + ldr r2, [sp, #0x38] + mov r3, #0x56 + lsl r2, r2, #0x10 + add r0, r1, #0 + lsr r5, r2, #0x10 + lsl r3, r3, #2 +_021DE6FA: + ldr r2, [r4, r3] + add r1, r1, #1 + strh r5, [r2, r0] + ldr r2, [sp, #0x28] + add r0, #8 + cmp r1, r2 + blo _021DE6FA +_021DE708: + add r0, r4, #0 + add sp, #0xc + pop {r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021DE5A4 + + thumb_func_start MOD85_021DE710 +MOD85_021DE710: ; 0x021DE710 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + ldrb r0, [r5, #4] + mov r6, #0 + cmp r0, #0 + bls _021DE73E + mov r7, #0x53 + add r4, r6, #0 + lsl r7, r7, #2 +_021DE722: + ldr r1, [r5, r7] + ldrb r2, [r5, #8] + add r0, r1, r4 + ldrh r1, [r1, r4] + cmp r2, r1 + beq _021DE734 + ldr r0, [r0, #4] + bl FUN_02009C0C +_021DE734: + ldrb r0, [r5, #4] + add r6, r6, #1 + add r4, #8 + cmp r6, r0 + blo _021DE722 +_021DE73E: + ldrb r0, [r5, #5] + mov r6, #0 + cmp r0, #0 + bls _021DE768 + mov r7, #0x15 + add r4, r6, #0 + lsl r7, r7, #4 +_021DE74C: + ldr r1, [r5, r7] + ldrb r2, [r5, #9] + add r0, r1, r4 + ldrh r1, [r1, r4] + cmp r2, r1 + beq _021DE75E + ldr r0, [r0, #4] + bl FUN_02009E04 +_021DE75E: + ldrb r0, [r5, #5] + add r6, r6, #1 + add r4, #8 + cmp r6, r0 + blo _021DE74C +_021DE768: + ldrb r0, [r5, #6] + mov r6, #0 + cmp r0, #0 + bls _021DE792 + mov r7, #0x55 + add r4, r6, #0 + lsl r7, r7, #2 +_021DE776: + ldr r1, [r5, r7] + ldrb r2, [r5, #0xa] + add r0, r1, r4 + ldrh r1, [r1, r4] + cmp r2, r1 + beq _021DE788 + ldr r0, [r0, #4] + bl FUN_02009474 +_021DE788: + ldrb r0, [r5, #6] + add r6, r6, #1 + add r4, #8 + cmp r6, r0 + blo _021DE776 +_021DE792: + ldrb r0, [r5, #7] + mov r6, #0 + cmp r0, #0 + bls _021DE7BC + mov r7, #0x56 + add r4, r6, #0 + lsl r7, r7, #2 +_021DE7A0: + ldr r1, [r5, r7] + ldrb r2, [r5, #0xb] + add r0, r1, r4 + ldrh r1, [r1, r4] + cmp r2, r1 + beq _021DE7B2 + ldr r0, [r0, #4] + bl FUN_02009474 +_021DE7B2: + ldrb r0, [r5, #7] + add r6, r6, #1 + add r4, #8 + cmp r6, r0 + blo _021DE7A0 +_021DE7BC: + mov r0, #0x4f + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02008E2C + mov r0, #5 + lsl r0, r0, #6 + ldr r0, [r5, r0] + bl FUN_02008E2C + mov r0, #0x51 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02008E2C + mov r0, #0x52 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02008E2C + mov r0, #0x53 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02016A18 + mov r0, #0x15 + lsl r0, r0, #4 + ldr r0, [r5, r0] + bl FUN_02016A18 + mov r0, #0x55 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02016A18 + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_02016A18 + bl FUN_0201C29C + mov r0, #0x4e + lsl r0, r0, #2 + ldr r0, [r5, r0] + bl FUN_0201C350 + ldr r0, [r5, #0xc] + bl FUN_0201FDB4 + ldr r0, [r5, #0xc] + bl FUN_0201FD58 + add r0, r5, #0 + bl FUN_02016A18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021DE710 + + thumb_func_start MOD85_021DE830 +MOD85_021DE830: ; 0x021DE830 + push {r3, lr} + ldr r0, [r0, #0xc] + bl FUN_0201FDEC + bl FUN_0201C348 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD85_021DE830 + + thumb_func_start MOD85_021DE840 +MOD85_021DE840: ; 0x021DE840 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r4, r0, #0 + ldrb r5, [r4, #4] + add r7, r1, #0 + mov r1, #0 + str r2, [sp, #0xc] + mov ip, r3 + cmp r5, #0 + bls _021DE8A0 + mov r0, #0x53 + lsl r0, r0, #2 + ldr r6, [r4, r0] + ldrb r3, [r4, #8] + add r2, r6, #0 +_021DE85E: + ldrh r0, [r2] + cmp r3, r0 + bne _021DE898 + ldr r0, [sp, #0x28] + lsl r5, r1, #3 + mov r1, #0x53 + strh r0, [r6, r5] + lsl r1, r1, #2 + ldr r2, [r4, r1] + mov r3, #0 + add r2, r2, r5 + strh r3, [r2, #2] + str r0, [sp] + str r7, [sp, #4] + ldr r0, [r4] + sub r1, #0x10 + str r0, [sp, #8] + ldr r0, [r4, r1] + ldr r1, [sp, #0xc] + mov r2, ip + bl FUN_020091E0 + mov r1, #0x53 + lsl r1, r1, #2 + ldr r1, [r4, r1] + add sp, #0x10 + add r1, r1, r5 + str r0, [r1, #4] + pop {r3, r4, r5, r6, r7, pc} +_021DE898: + add r1, r1, #1 + add r2, #8 + cmp r1, r5 + blo _021DE85E +_021DE8A0: + bl ErrorHandling + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DE840 + + thumb_func_start MOD85_021DE8A8 +MOD85_021DE8A8: ; 0x021DE8A8 + push {r3, r4, r5, lr} + ldrb r2, [r0, #4] + mov r4, #0 + cmp r2, #0 + bls _021DE8D4 + mov r3, #0x53 + lsl r3, r3, #2 + ldr r5, [r0, r3] + add r3, r5, #0 +_021DE8BA: + ldrh r0, [r3] + cmp r1, r0 + bne _021DE8CC + lsl r0, r4, #3 + add r0, r5, r0 + ldr r0, [r0, #4] + bl FUN_02009B04 + pop {r3, r4, r5, pc} +_021DE8CC: + add r4, r4, #1 + add r3, #8 + cmp r4, r2 + blo _021DE8BA +_021DE8D4: + bl ErrorHandling + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DE8A8 + + thumb_func_start MOD85_021DE8DC +MOD85_021DE8DC: ; 0x021DE8DC + push {r3, r4, r5, lr} + ldrb r2, [r0, #4] + mov r4, #0 + cmp r2, #0 + bls _021DE908 + mov r3, #0x53 + lsl r3, r3, #2 + ldr r5, [r0, r3] + add r3, r5, #0 +_021DE8EE: + ldrh r0, [r3] + cmp r1, r0 + bne _021DE900 + lsl r0, r4, #3 + add r0, r5, r0 + ldr r0, [r0, #4] + bl FUN_02009474 + pop {r3, r4, r5, pc} +_021DE900: + add r4, r4, #1 + add r3, #8 + cmp r4, r2 + blo _021DE8EE +_021DE908: + bl ErrorHandling + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DE8DC + + thumb_func_start MOD85_021DE910 +MOD85_021DE910: ; 0x021DE910 + push {r4, r5, r6, r7, lr} + sub sp, #0x14 + add r4, r0, #0 + ldrb r5, [r4, #4] + add r7, r1, #0 + mov r1, #0 + str r2, [sp, #0x10] + mov ip, r3 + cmp r5, #0 + bls _021DE974 + mov r0, #0x15 + lsl r0, r0, #4 + ldr r6, [r4, r0] + ldrb r3, [r4, #9] + add r2, r6, #0 +_021DE92E: + ldrh r0, [r2] + cmp r3, r0 + bne _021DE96C + ldr r0, [sp, #0x28] + lsl r5, r1, #3 + mov r1, #0x15 + strh r0, [r6, r5] + lsl r1, r1, #4 + ldr r2, [r4, r1] + mov r3, #0 + add r2, r2, r5 + strh r3, [r2, #2] + str r0, [sp] + str r7, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r0, [r4] + sub r1, #0x10 + str r0, [sp, #0xc] + ldr r0, [r4, r1] + ldr r1, [sp, #0x10] + mov r2, ip + bl FUN_02009298 + mov r1, #0x15 + lsl r1, r1, #4 + ldr r1, [r4, r1] + add sp, #0x14 + add r1, r1, r5 + str r0, [r1, #4] + pop {r4, r5, r6, r7, pc} +_021DE96C: + add r1, r1, #1 + add r2, #8 + cmp r1, r5 + blo _021DE92E +_021DE974: + bl ErrorHandling + add sp, #0x14 + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DE910 + + thumb_func_start MOD85_021DE97C +MOD85_021DE97C: ; 0x021DE97C + push {r3, r4, r5, lr} + ldrb r2, [r0, #5] + mov r4, #0 + cmp r2, #0 + bls _021DE9A8 + mov r3, #0x15 + lsl r3, r3, #4 + ldr r5, [r0, r3] + add r3, r5, #0 +_021DE98E: + ldrh r0, [r3] + cmp r1, r0 + bne _021DE9A0 + lsl r0, r4, #3 + add r0, r5, r0 + ldr r0, [r0, #4] + bl FUN_02009D68 + pop {r3, r4, r5, pc} +_021DE9A0: + add r4, r4, #1 + add r3, #8 + cmp r4, r2 + blo _021DE98E +_021DE9A8: + bl ErrorHandling + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DE97C + + thumb_func_start MOD85_021DE9B0 +MOD85_021DE9B0: ; 0x021DE9B0 + push {r3, r4, r5, lr} + ldrb r2, [r0, #5] + mov r4, #0 + cmp r2, #0 + bls _021DE9DC + mov r3, #0x15 + lsl r3, r3, #4 + ldr r5, [r0, r3] + add r3, r5, #0 +_021DE9C2: + ldrh r0, [r3] + cmp r1, r0 + bne _021DE9D4 + lsl r0, r4, #3 + add r0, r5, r0 + ldr r0, [r0, #4] + bl FUN_02009474 + pop {r3, r4, r5, pc} +_021DE9D4: + add r4, r4, #1 + add r3, #8 + cmp r4, r2 + blo _021DE9C2 +_021DE9DC: + bl ErrorHandling + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD85_021DE9B0 + + thumb_func_start MOD85_021DE9E4 +MOD85_021DE9E4: ; 0x021DE9E4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r4, r0, #0 + ldrb r5, [r4, #4] + str r1, [sp, #0xc] + mov ip, r2 + add r6, r3, #0 + mov r1, #0 + cmp r5, #0 + bls _021DEA44 + mov r0, #0x55 + lsl r0, r0, #2 + ldr r7, [r4, r0] + ldrb r3, [r4, #0xa] + add r2, r7, #0 +_021DEA02: + ldrh r0, [r2] + cmp r3, r0 + bne _021DEA3C + lsl r5, r1, #3 + mov r0, #0x55 + strh r6, [r7, r5] + lsl r0, r0, #2 + ldr r1, [r4, r0] + mov r3, #0 + add r1, r1, r5 + strh r3, [r1, #2] + str r6, [sp] + mov r1, #2 + str r1, [sp, #4] + ldr r1, [r4] + sub r0, #0x10 + str r1, [sp, #8] + ldr r0, [r4, r0] + ldr r1, [sp, #0xc] + mov r2, ip + bl FUN_02009358 + mov r1, #0x55 + lsl r1, r1, #2 + ldr r1, [r4, r1] + add sp, #0x10 + add r1, r1, r5 + str r0, [r1, #4] + pop {r3, r4, r5, r6, r7, pc} +_021DEA3C: + add r1, r1, #1 + add r2, #8 + cmp r1, r5 + blo _021DEA02 +_021DEA44: + bl ErrorHandling + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DE9E4 + + thumb_func_start MOD85_021DEA4C +MOD85_021DEA4C: ; 0x021DEA4C + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x10 + add r4, r0, #0 + ldrb r5, [r4, #4] + str r1, [sp, #0xc] + mov ip, r2 + add r6, r3, #0 + mov r1, #0 + cmp r5, #0 + bls _021DEAAC + mov r0, #0x56 + lsl r0, r0, #2 + ldr r7, [r4, r0] + ldrb r3, [r4, #0xb] + add r2, r7, #0 +_021DEA6A: + ldrh r0, [r2] + cmp r3, r0 + bne _021DEAA4 + lsl r5, r1, #3 + mov r0, #0x56 + strh r6, [r7, r5] + lsl r0, r0, #2 + ldr r1, [r4, r0] + mov r3, #0 + add r1, r1, r5 + strh r3, [r1, #2] + str r6, [sp] + mov r1, #3 + str r1, [sp, #4] + ldr r1, [r4] + sub r0, #0x10 + str r1, [sp, #8] + ldr r0, [r4, r0] + ldr r1, [sp, #0xc] + mov r2, ip + bl FUN_02009358 + mov r1, #0x56 + lsl r1, r1, #2 + ldr r1, [r4, r1] + add sp, #0x10 + add r1, r1, r5 + str r0, [r1, #4] + pop {r3, r4, r5, r6, r7, pc} +_021DEAA4: + add r1, r1, #1 + add r2, #8 + cmp r1, r5 + blo _021DEA6A +_021DEAAC: + bl ErrorHandling + add sp, #0x10 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DEA4C + + thumb_func_start MOD85_021DEAB4 +MOD85_021DEAB4: ; 0x021DEAB4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r4, r0, #0 + add r0, r1, #0 + ldrb r1, [r4, #8] + add r7, r2, #0 + str r3, [sp] + ldr r6, [sp, #0x20] + cmp r0, r1 + beq _021DEB10 + ldrb r5, [r4, #4] + mov r2, #0 + cmp r5, #0 + bls _021DEB10 + mov r1, #0x53 + lsl r1, r1, #2 + ldr r3, [r4, r1] + mov ip, r3 +_021DEAD8: + ldrh r1, [r3] + cmp r0, r1 + bne _021DEB08 + lsl r5, r2, #3 + mov r0, ip + add r0, r0, r5 + ldr r0, [r0, #4] + bl FUN_02009C0C + mov r1, #0x4f + lsl r1, r1, #2 + ldr r0, [r4, r1] + add r1, #0x10 + ldr r1, [r4, r1] + add r1, r1, r5 + ldr r1, [r1, #4] + bl FUN_02009490 + mov r0, #0x53 + lsl r0, r0, #2 + ldrb r1, [r4, #8] + ldr r0, [r4, r0] + strh r1, [r0, r5] + b _021DEB10 +_021DEB08: + add r2, r2, #1 + add r3, #8 + cmp r2, r5 + blo _021DEAD8 +_021DEB10: + ldrb r0, [r4, #9] + cmp r7, r0 + beq _021DEB5E + ldrb r0, [r4, #5] + mov r1, #0 + cmp r0, #0 + bls _021DEB5E + mov r2, #0x15 + lsl r2, r2, #4 + ldr r3, [r4, r2] + str r3, [sp, #4] +_021DEB26: + ldrh r2, [r3] + cmp r7, r2 + bne _021DEB56 + ldr r0, [sp, #4] + lsl r5, r1, #3 + add r0, r0, r5 + ldr r0, [r0, #4] + bl FUN_02009E04 + mov r1, #5 + lsl r1, r1, #6 + ldr r0, [r4, r1] + add r1, #0x10 + ldr r1, [r4, r1] + add r1, r1, r5 + ldr r1, [r1, #4] + bl FUN_02009490 + mov r0, #0x15 + lsl r0, r0, #4 + ldrb r1, [r4, #9] + ldr r0, [r4, r0] + strh r1, [r0, r5] + b _021DEB5E +_021DEB56: + add r1, r1, #1 + add r3, #8 + cmp r1, r0 + blo _021DEB26 +_021DEB5E: + ldrb r1, [r4, #0xa] + ldr r0, [sp] + cmp r0, r1 + beq _021DEBAE + ldrb r3, [r4, #6] + mov r5, #0 + cmp r3, #0 + bls _021DEBAE + mov r0, #0x55 + lsl r0, r0, #2 + ldr r7, [r4, r0] + add r2, r7, #0 +_021DEB76: + ldrh r1, [r2] + ldr r0, [sp] + cmp r0, r1 + bne _021DEBA6 + lsl r5, r5, #3 + add r0, r7, r5 + ldr r0, [r0, #4] + bl FUN_02009474 + mov r1, #0x51 + lsl r1, r1, #2 + ldr r0, [r4, r1] + add r1, #0x10 + ldr r1, [r4, r1] + add r1, r1, r5 + ldr r1, [r1, #4] + bl FUN_02009490 + mov r0, #0x55 + lsl r0, r0, #2 + ldrb r1, [r4, #0xa] + ldr r0, [r4, r0] + strh r1, [r0, r5] + b _021DEBAE +_021DEBA6: + add r5, r5, #1 + add r2, #8 + cmp r5, r3 + blo _021DEB76 +_021DEBAE: + ldrb r0, [r4, #0xb] + cmp r6, r0 + beq _021DEBFC + ldrb r1, [r4, #7] + mov r2, #0 + cmp r1, #0 + bls _021DEBFC + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r4, r0] + add r5, r0, #0 +_021DEBC4: + ldrh r3, [r5] + cmp r6, r3 + bne _021DEBF4 + lsl r5, r2, #3 + add r0, r0, r5 + ldr r0, [r0, #4] + bl FUN_02009474 + mov r1, #0x52 + lsl r1, r1, #2 + ldr r0, [r4, r1] + add r1, #0x10 + ldr r1, [r4, r1] + add r1, r1, r5 + ldr r1, [r1, #4] + bl FUN_02009490 + mov r0, #0x56 + lsl r0, r0, #2 + ldrb r1, [r4, #0xb] + ldr r0, [r4, r0] + add sp, #8 + strh r1, [r0, r5] + pop {r3, r4, r5, r6, r7, pc} +_021DEBF4: + add r2, r2, #1 + add r5, #8 + cmp r2, r1 + blo _021DEBC4 +_021DEBFC: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD85_021DEAB4 + + thumb_func_start MOD85_021DEC00 +MOD85_021DEC00: ; 0x021DEC00 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x70 + add r5, r0, #0 + ldrb r0, [r5, #0xb] + add r4, r1, #0 + ldr r1, [sp, #0x98] + add r6, r2, #0 + add r7, r3, #0 + cmp r1, r0 + bne _021DEC1A + mov r0, #0 + mvn r0, r0 + str r0, [sp, #0x98] +_021DEC1A: + ldr r0, [sp, #0x98] + mov r1, #0x4f + str r0, [sp] + mov r0, #0 + mvn r0, r0 + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [sp, #0x88] + lsl r1, r1, #2 + str r0, [sp, #0xc] + ldr r0, [sp, #0x9c] + ldr r2, [sp, #0x90] + str r0, [sp, #0x10] + ldr r0, [r5, r1] + ldr r3, [sp, #0x94] + str r0, [sp, #0x14] + add r0, r1, #4 + ldr r0, [r5, r0] + str r0, [sp, #0x18] + add r0, r1, #0 + add r0, #8 + ldr r0, [r5, r0] + add r1, #0xc + str r0, [sp, #0x1c] + ldr r0, [r5, r1] + ldr r1, [sp, #0x8c] + str r0, [sp, #0x20] + mov r0, #0 + str r0, [sp, #0x24] + str r0, [sp, #0x28] + add r0, sp, #0x4c + bl FUN_02008AA4 + ldr r0, [sp, #0x88] + cmp r0, #1 + bne _021DEC6A + ldr r0, [sp, #0x4c] + str r0, [r4, #8] + mov r0, #1 + b _021DEC6C +_021DEC6A: + mov r0, #0 +_021DEC6C: + str r0, [r4] + ldr r0, [r5, #0xc] + add r2, sp, #0x34 + str r0, [sp, #0x2c] + add r0, sp, #0x4c + str r0, [sp, #0x30] + ldmia r6!, {r0, r1} + stmia r2!, {r0, r1} + ldr r0, [r6] + str r0, [r2] + ldr r0, [sp, #0xa0] + str r7, [sp, #0x44] + str r0, [sp, #0x40] + ldr r0, [r5] + str r0, [sp, #0x48] + add r0, sp, #0x2c + bl FUN_0201FF84 + str r0, [r4, #4] + cmp r0, #0 + bne _021DEC9A + bl ErrorHandling +_021DEC9A: + add sp, #0x70 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD85_021DEC00 + + thumb_func_start MOD85_021DECA0 +MOD85_021DECA0: ; 0x021DECA0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #1 + bne _021DECB0 + ldr r0, [r4, #8] + bl FUN_02009CDC +_021DECB0: + ldr r0, [r4, #4] + bl FUN_0201FFC8 + mov r0, #0 + str r0, [r4, #4] + pop {r4, pc} + thumb_func_end MOD85_021DECA0 + + thumb_func_start MOD85_021DECBC +MOD85_021DECBC: ; 0x021DECBC + push {r4, lr} + add r4, r1, #0 + bl FUN_0202011C + add r2, r0, #0 + ldmia r2!, {r0, r1} + stmia r4!, {r0, r1} + ldr r0, [r2] + str r0, [r4] + pop {r4, pc} + thumb_func_end MOD85_021DECBC + + thumb_func_start MOD85_021DECD0 +MOD85_021DECD0: ; 0x021DECD0 + push {r4, lr} + add r4, r1, #0 + bl FUN_02020120 + add r2, r0, #0 + ldmia r2!, {r0, r1} + stmia r4!, {r0, r1} + ldr r0, [r2] + str r0, [r4] + pop {r4, pc} + thumb_func_end MOD85_021DECD0 + + .section .rodata + ; 0x021DECE4 + .incbin "baserom.nds", 0x30AC04, 0x18BC + + .section .data + ; 0x021E05C0 + .incbin "baserom.nds", 0x30C4E0, 0x20 diff --git a/arm9/modules/86/asm/module_86.s b/arm9/modules/86/asm/module_86.s new file mode 100644 index 00000000..922a98f3 --- /dev/null +++ b/arm9/modules/86/asm/module_86.s @@ -0,0 +1,917 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD86_021D74E0 +MOD86_021D74E0: ; 0x021D74E0 + push {r3, r4, r5, lr} + mov r2, #2 + add r5, r0, #0 + mov r0, #3 + mov r1, #0x54 + lsl r2, r2, #0x10 + bl FUN_0201681C + add r0, r5, #0 + mov r1, #0x44 + mov r2, #0x54 + bl FUN_02006268 + mov r1, #0 + mov r2, #0x44 + add r4, r0, #0 + bl Call_FillMemWithValue + mov r0, #0x54 + str r0, [r4] + add r0, r5, #0 + bl FUN_0200628C + ldr r1, [r0] + str r1, [r4, #8] + ldr r0, [r0, #4] + str r0, [r4, #4] + ldr r0, [r4, #8] + bl FUN_020238F4 + str r0, [r4, #0xc] + mov r0, #0 + add r1, r0, #0 + bl FUN_0200E3A0 + mov r0, #1 + mov r1, #0 + bl FUN_0200E3A0 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F34 + bl FUN_0201E6D8 + bl FUN_0201E740 + mov r2, #1 + lsl r2, r2, #0x1a + ldr r1, [r2] + ldr r0, _021D7580 ; =0xFFFFE0FF + and r1, r0 + str r1, [r2] + ldr r2, _021D7584 ; =0x04001000 + ldr r1, [r2] + and r0, r1 + str r0, [r2] + mov r0, #4 + mov r1, #8 + bl FUN_0201669C + add r0, r4, #0 + bl MOD86_021D76EC + add r0, r4, #0 + bl MOD86_021D78D4 + ldr r0, _021D7588 ; =MOD86_021D76E0 + add r1, r4, #0 + bl FUN_02015F10 + bl FUN_0201E788 + mov r0, #1 + pop {r3, r4, r5, pc} + nop +_021D7580: .word 0xFFFFE0FF +_021D7584: .word 0x04001000 +_021D7588: .word MOD86_021D76E0 + thumb_func_end MOD86_021D74E0 + + thumb_func_start MOD86_021D758C +MOD86_021D758C: ; 0x021D758C + push {r3, r4, r5, r6, lr} + sub sp, #0xc + add r5, r1, #0 + bl FUN_02006278 + ldr r1, [r5] + add r4, r0, #0 + mov r6, #0 + cmp r1, #5 + bhi _021D76A0 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_021D75AC: ; jump table + .short _021D75B8 - _021D75AC - 2 ; case 0 + .short _021D7614 - _021D75AC - 2 ; case 1 + .short _021D7626 - _021D75AC - 2 ; case 2 + .short _021D7638 - _021D75AC - 2 ; case 3 + .short _021D765C - _021D75AC - 2 ; case 4 + .short _021D7696 - _021D75AC - 2 ; case 5 +_021D75B8: + bl MOD86_021D7984 + add r0, r4, #0 + bl MOD86_021D79D4 + add r0, r4, #0 + bl MOD86_021D7B80 + add r0, r6, #0 + mov r1, #1 + bl FUN_0201797C + mov r0, #1 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #3 + mov r1, #1 + bl FUN_0201797C + mov r0, #4 + mov r1, #1 + bl FUN_0201797C + mov r0, #5 + mov r1, #1 + bl FUN_0201797C + mov r0, #7 + mov r1, #1 + bl FUN_0201797C + mov r0, #6 + mov r1, #1 + str r0, [sp] + str r1, [sp, #4] + ldr r0, [r4] + add r2, r1, #0 + str r0, [sp, #8] + add r0, r6, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #1 + str r0, [r5] + b _021D76A0 +_021D7614: + bl FUN_0200E308 + cmp r0, #1 + bne _021D76A0 + add r0, r6, #0 + str r0, [r4, #0x40] + mov r0, #2 + str r0, [r5] + b _021D76A0 +_021D7626: + ldr r0, [r4, #0x40] + cmp r0, #0x3c + bge _021D7632 + add r0, r0, #1 + str r0, [r4, #0x40] + b _021D76A0 +_021D7632: + mov r0, #3 + str r0, [r5] + b _021D76A0 +_021D7638: + mov r2, #0x3c + ldrsh r3, [r4, r2] + add r1, r2, #0 + sub r1, #0xfc + cmp r3, r1 + ble _021D764E + sub r1, r3, #4 + strh r1, [r4, #0x3c] + bl MOD86_021D7990 + b _021D76A0 +_021D764E: + sub r2, #0xfc + strh r2, [r4, #0x3c] + bl MOD86_021D7990 + mov r0, #4 + str r0, [r5] + b _021D76A0 +_021D765C: + ldr r0, _021D76A8 ; =0x021C48B8 + ldr r1, [r0, #0x48] + mov r0, #1 + and r0, r1 + cmp r0, #1 + beq _021D7678 + mov r0, #2 + and r0, r1 + cmp r0, #2 + beq _021D7678 + ldr r0, _021D76AC ; =0x021C48F8 + ldrh r0, [r0, #0x20] + cmp r0, #0 + beq _021D76A0 +_021D7678: + mov r0, #6 + str r0, [sp] + mov r0, #1 + str r0, [sp, #4] + ldr r0, [r4] + str r0, [sp, #8] + mov r0, #0 + add r1, r0, #0 + add r2, r0, #0 + add r3, r0, #0 + bl FUN_0200E1D0 + mov r0, #5 + str r0, [r5] + b _021D76A0 +_021D7696: + bl FUN_0200E308 + cmp r0, #1 + bne _021D76A0 + mov r6, #1 +_021D76A0: + add r0, r6, #0 + add sp, #0xc + pop {r3, r4, r5, r6, pc} + nop +_021D76A8: .word 0x021C48B8 +_021D76AC: .word 0x021C48F8 + thumb_func_end MOD86_021D758C + + thumb_func_start MOD86_021D76B0 +MOD86_021D76B0: ; 0x021D76B0 + push {r4, r5, r6, lr} + add r5, r0, #0 + bl FUN_02006278 + add r6, r0, #0 + ldr r4, [r6] + bl MOD86_021D7964 + add r0, r6, #0 + bl MOD86_021D7858 + mov r0, #0 + add r1, r0, #0 + bl FUN_02015F10 + add r0, r5, #0 + bl FUN_0200627C + add r0, r4, #0 + bl FUN_020168D0 + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD86_021D76B0 + + thumb_func_start MOD86_021D76E0 +MOD86_021D76E0: ; 0x021D76E0 + ldr r3, _021D76E8 ; =FUN_0201AB60 + ldr r0, [r0, #0x10] + bx r3 + nop +_021D76E8: .word FUN_0201AB60 + thumb_func_end MOD86_021D76E0 + + thumb_func_start MOD86_021D76EC +MOD86_021D76EC: ; 0x021D76EC + push {r4, r5, lr} + sub sp, #0x54 + ldr r5, _021D784C ; =0x021D7CBC + add r4, r0, #0 + add r3, sp, #0x2c + mov r2, #5 +_021D76F8: + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + sub r2, r2, #1 + bne _021D76F8 + add r0, sp, #0x2c + bl FUN_0201E66C + ldr r0, [r4] + bl FUN_02016B94 + add r3, sp, #0x1c + ldr r5, _021D7850 ; =0x021D7C90 + str r0, [r4, #0x10] + add r2, r3, #0 + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + add r0, r2, #0 + bl FUN_02016BBC + ldr r5, _021D7854 ; =0x021D7CA0 + add r3, sp, #0 + ldmia r5!, {r0, r1} + add r2, r3, #0 + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldmia r5!, {r0, r1} + stmia r3!, {r0, r1} + ldr r0, [r5] + mov r1, #0 + str r0, [r3] + add r0, sp, #0 + strb r1, [r0, #0x12] + mov r3, #4 + strb r3, [r0, #0x13] + lsl r3, r3, #0xa + str r3, [sp, #8] + mov r3, #2 + strb r3, [r0, #0x10] + ldr r0, [r4, #0x10] + add r3, r1, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + mov r1, #0 + bl FUN_02018744 + mov r2, #2 + add r0, sp, #0 + strb r2, [r0, #0x12] + strb r2, [r0, #0x13] + lsl r1, r2, #0xb + str r1, [sp, #8] + strb r2, [r0, #0x10] + ldr r0, [r4, #0x10] + mov r1, #1 + add r2, sp, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_02018744 + mov r1, #4 + add r0, sp, #0 + strb r1, [r0, #0x12] + mov r2, #1 + strb r2, [r0, #0x13] + lsl r1, r2, #0xb + str r1, [sp, #8] + strb r2, [r0, #0x10] + ldr r0, [r4, #0x10] + mov r1, #3 + add r2, sp, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + mov r1, #3 + bl FUN_02018744 + mov r1, #4 + mov r3, #0 + add r0, sp, #0 + strb r3, [r0, #0x12] + strb r1, [r0, #0x13] + lsl r2, r1, #0xa + str r2, [sp, #8] + mov r2, #2 + strb r2, [r0, #0x10] + ldr r0, [r4, #0x10] + add r2, sp, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + mov r1, #4 + bl FUN_02018744 + mov r2, #2 + add r0, sp, #0 + strb r2, [r0, #0x12] + strb r2, [r0, #0x13] + lsl r1, r2, #0xb + str r1, [sp, #8] + strb r2, [r0, #0x10] + ldr r0, [r4, #0x10] + mov r1, #5 + add r2, sp, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + mov r1, #5 + bl FUN_02018744 + mov r1, #4 + add r0, sp, #0 + strb r1, [r0, #0x12] + mov r2, #1 + strb r2, [r0, #0x13] + lsl r1, r2, #0xb + str r1, [sp, #8] + strb r2, [r0, #0x10] + ldr r0, [r4, #0x10] + mov r1, #7 + add r2, sp, #0 + mov r3, #0 + bl FUN_02016C18 + ldr r0, [r4, #0x10] + mov r1, #7 + bl FUN_02018744 + mov r0, #0 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #1 + mov r1, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #0 + bl FUN_0201797C + mov r0, #3 + mov r1, #0 + bl FUN_0201797C + mov r0, #4 + mov r1, #0 + bl FUN_0201797C + mov r0, #5 + mov r1, #0 + bl FUN_0201797C + mov r0, #6 + mov r1, #0 + bl FUN_0201797C + mov r0, #7 + mov r1, #0 + bl FUN_0201797C + add sp, #0x54 + pop {r4, r5, pc} + .align 2, 0 +_021D784C: .word 0x021D7CBC +_021D7850: .word 0x021D7C90 +_021D7854: .word 0x021D7CA0 + thumb_func_end MOD86_021D76EC + + thumb_func_start MOD86_021D7858 +MOD86_021D7858: ; 0x021D7858 + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + add r1, r0, #0 + bl FUN_0201797C + mov r0, #1 + mov r1, #0 + bl FUN_0201797C + mov r0, #2 + mov r1, #0 + bl FUN_0201797C + mov r0, #3 + mov r1, #0 + bl FUN_0201797C + mov r0, #4 + mov r1, #0 + bl FUN_0201797C + mov r0, #5 + mov r1, #0 + bl FUN_0201797C + mov r0, #6 + mov r1, #0 + bl FUN_0201797C + mov r0, #7 + mov r1, #0 + bl FUN_0201797C + ldr r0, [r4, #0x10] + mov r1, #0 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #1 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #3 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #4 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #5 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + mov r1, #7 + bl FUN_020178A0 + ldr r0, [r4, #0x10] + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD86_021D7858 + + thumb_func_start MOD86_021D78D4 +MOD86_021D78D4: ; 0x021D78D4 + push {r4, lr} + sub sp, #0x10 + ldr r1, _021D7960 ; =0x021D7C88 + add r4, r0, #0 + ldrh r2, [r1] + add r0, sp, #8 + strh r2, [r0] + ldrh r2, [r1, #2] + strh r2, [r0, #2] + ldrh r2, [r1, #4] + ldrh r1, [r1, #6] + strh r2, [r0, #4] + strh r1, [r0, #6] + bl FUN_0201BD5C + mov r0, #1 + ldr r3, [r4] + mov r1, #0x1a + add r2, r0, #0 + bl FUN_0200A86C + str r0, [r4, #0x34] + ldr r0, [r4] + bl FUN_0200AA80 + str r0, [r4, #0x38] + mov r1, #0 + add r0, sp, #8 + strb r1, [r0] + add r1, r4, #0 + ldr r0, [r4, #0x10] + add r1, #0x14 + add r2, sp, #8 + bl FUN_02019150 + mov r1, #0 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0xc0 + str r0, [sp, #4] + add r0, r4, #0 + add r0, #0x14 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + mov r1, #4 + add r0, sp, #8 + strb r1, [r0] + add r1, r4, #0 + ldr r0, [r4, #0x10] + add r1, #0x24 + add r2, sp, #8 + bl FUN_02019150 + mov r1, #0 + mov r0, #1 + lsl r0, r0, #8 + str r0, [sp] + mov r0, #0xc0 + add r4, #0x24 + str r0, [sp, #4] + add r0, r4, #0 + add r2, r1, #0 + add r3, r1, #0 + bl FUN_020196F4 + add sp, #0x10 + pop {r4, pc} + .align 2, 0 +_021D7960: .word 0x021D7C88 + thumb_func_end MOD86_021D78D4 + + thumb_func_start MOD86_021D7964 +MOD86_021D7964: ; 0x021D7964 + push {r4, lr} + add r4, r0, #0 + add r0, #0x24 + bl FUN_02019178 + add r0, r4, #0 + add r0, #0x14 + bl FUN_02019178 + ldr r0, [r4, #0x38] + bl FUN_0200AB18 + ldr r0, [r4, #0x34] + bl FUN_0200A8B8 + pop {r4, pc} + thumb_func_end MOD86_021D7964 + + thumb_func_start MOD86_021D7984 +MOD86_021D7984: ; 0x021D7984 + ldr r3, _021D798C ; =MOD86_021D7990 + mov r1, #0 + strh r1, [r0, #0x3c] + bx r3 + .align 2, 0 +_021D798C: .word MOD86_021D7990 + thumb_func_end MOD86_021D7984 + + thumb_func_start MOD86_021D7990 +MOD86_021D7990: ; 0x021D7990 + push {r4, lr} + add r4, r0, #0 + mov r3, #0x3c + ldrsh r3, [r4, r3] + ldr r0, [r4, #0x10] + mov r1, #1 + mov r2, #3 + bl FUN_020179E0 + mov r3, #0x3c + ldrsh r3, [r4, r3] + ldr r0, [r4, #0x10] + mov r1, #5 + mov r2, #3 + add r3, #0xc0 + bl FUN_020179E0 + mov r3, #0x3c + ldrsh r3, [r4, r3] + ldr r0, [r4, #0x10] + mov r1, #0 + mov r2, #3 + bl FUN_020179E0 + mov r3, #0x3c + ldrsh r3, [r4, r3] + ldr r0, [r4, #0x10] + mov r1, #4 + mov r2, #3 + add r3, #0xc0 + bl FUN_020179E0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD86_021D7990 + + thumb_func_start MOD86_021D79D4 +MOD86_021D79D4: ; 0x021D79D4 + push {r4, r5, r6, r7, lr} + sub sp, #0x1c + add r5, r0, #0 + ldr r0, [r5, #4] + cmp r0, #0 + bne _021D79F4 + mov r0, #2 + str r0, [sp, #0x18] + mov r0, #6 + str r0, [sp, #0x14] + mov r0, #8 + mov r7, #0xa + str r0, [sp, #0x10] + mov r6, #0 + mov r4, #4 + b _021D7A06 +_021D79F4: + mov r0, #3 + str r0, [sp, #0x18] + mov r0, #7 + str r0, [sp, #0x14] + mov r0, #9 + mov r7, #0xb + str r0, [sp, #0x10] + mov r6, #1 + mov r4, #5 +_021D7A06: + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + add r1, r7, #0 + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #3 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r1, [sp, #0x18] + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #3 + bl FUN_0200687C + mov r0, #0x20 + str r0, [sp] + ldr r0, [r5] + mov r2, #0 + str r0, [sp, #4] + ldr r1, [sp, #0x14] + mov r0, #0x84 + add r3, r2, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + add r1, r7, #0 + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #7 + bl FUN_020068C8 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r1, [sp, #0x18] + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #7 + bl FUN_0200687C + mov r0, #0x20 + str r0, [sp] + ldr r0, [r5] + ldr r1, [sp, #0x14] + str r0, [sp, #4] + mov r0, #0x84 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r1, [sp, #0x10] + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #1 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r1, #1 + str r1, [sp, #8] + mov r2, #0 + ldr r0, [r5, #0x10] + add r3, r2, #0 + bl FUN_020186B4 + ldr r0, [r5, #0x10] + mov r1, #1 + bl FUN_02017CD0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + add r1, r6, #0 + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #1 + bl FUN_0200687C + mov r3, #0x20 + str r3, [sp] + ldr r0, [r5] + add r1, r4, #0 + str r0, [sp, #4] + mov r0, #0x84 + mov r2, #0 + bl FUN_02006930 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + ldr r1, [sp, #0x10] + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #5 + bl FUN_020068C8 + mov r0, #0x20 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r2, #0 + ldr r0, [r5, #0x10] + mov r1, #5 + add r3, r2, #0 + bl FUN_020186B4 + ldr r0, [r5, #0x10] + mov r1, #5 + bl FUN_02017CD0 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + ldr r0, [r5] + add r1, r6, #0 + str r0, [sp, #0xc] + ldr r2, [r5, #0x10] + mov r0, #0x84 + mov r3, #5 + bl FUN_0200687C + mov r3, #0x20 + str r3, [sp] + ldr r0, [r5] + add r1, r4, #0 + str r0, [sp, #4] + mov r0, #0x84 + mov r2, #4 + bl FUN_02006930 + mov r0, #0 + ldr r3, [r5] + mov r1, #0x20 + add r2, r0, #0 + bl FUN_02017F18 + ldr r3, [r5] + mov r0, #4 + mov r1, #0x20 + mov r2, #0 + bl FUN_02017F18 + ldr r2, [r5] + mov r0, #0 + mov r1, #0x40 + bl FUN_02002ED0 + ldr r2, [r5] + mov r0, #4 + mov r1, #0x40 + bl FUN_02002ED0 + add sp, #0x1c + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD86_021D79D4 + + thumb_func_start MOD86_021D7B80 +MOD86_021D7B80: ; 0x021D7B80 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r0, #0 + mov r0, #2 + ldr r1, [r5] + lsl r0, r0, #8 + bl FUN_020219F4 + add r4, r0, #0 + mov r0, #2 + ldr r1, [r5] + lsl r0, r0, #8 + bl FUN_020219F4 + add r6, r0, #0 + ldr r0, [r5, #0x34] + mov r1, #0 + add r2, r6, #0 + bl FUN_0200A8E0 + ldr r0, [r5, #0x38] + ldr r2, [r5, #0xc] + mov r1, #0 + bl FUN_0200ABC0 + ldr r0, [r5, #0x38] + add r1, r4, #0 + add r2, r6, #0 + bl FUN_0200B7B8 + mov r0, #0x20 + str r0, [sp] + mov r1, #0 + ldr r0, _021D7C84 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x14 + add r2, r4, #0 + mov r3, #0x30 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + mov r0, #0x20 + str r0, [sp] + mov r1, #0 + ldr r0, _021D7C84 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x24 + add r2, r4, #0 + mov r3, #0x30 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r6, #0 + bl FUN_02021A20 + ldr r0, [r5, #4] + cmp r0, #0 + bne _021D7C00 + mov r1, #1 + b _021D7C02 +_021D7C00: + mov r1, #2 +_021D7C02: + ldr r0, [r5, #0x34] + add r2, r4, #0 + bl FUN_0200A8E0 + mov r3, #0x40 + str r3, [sp] + mov r1, #0 + ldr r0, _021D7C84 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x14 + add r2, r4, #0 + str r1, [sp, #0xc] + bl FUN_0201BDE0 + mov r3, #0x40 + str r3, [sp] + mov r1, #0 + ldr r0, _021D7C84 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + str r1, [sp, #0xc] + add r0, #0x24 + add r2, r4, #0 + bl FUN_0201BDE0 + ldr r0, [r5, #0x34] + mov r1, #3 + add r2, r4, #0 + bl FUN_0200A8E0 + mov r0, #0x90 + str r0, [sp] + mov r1, #0 + ldr r0, _021D7C84 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r0, r5, #0 + add r0, #0x14 + add r2, r4, #0 + mov r3, #0x8a + str r1, [sp, #0xc] + bl FUN_0201BDE0 + mov r0, #0x90 + str r0, [sp] + mov r1, #0 + ldr r0, _021D7C84 ; =0x00010200 + str r1, [sp, #4] + str r0, [sp, #8] + add r5, #0x24 + add r0, r5, #0 + add r2, r4, #0 + mov r3, #0x8a + str r1, [sp, #0xc] + bl FUN_0201BDE0 + add r0, r4, #0 + bl FUN_02021A20 + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_021D7C84: .word 0x00010200 + thumb_func_end MOD86_021D7B80 + + .section .rodata + ; 0x021D7C88 + .incbin "baserom.nds", 0x30CDA8, 0x5C diff --git a/arm9/src/FUN_02000DF4.c b/arm9/src/FUN_02000DF4.c deleted file mode 100644 index 80e80b30..00000000 --- a/arm9/src/FUN_02000DF4.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "global.h" -#include "main.h" - -extern struct Unk2106FA0 gBacklightTop; - -THUMB_FUNC void FUN_02000DF4(void) -{ - gBacklightTop.unk8 = -1; - gBacklightTop.unkC = 0; - gBacklightTop.unk10 = -1; - gBacklightTop.unk14 = 0; -} diff --git a/arm9/src/FUN_020910A4.c b/arm9/src/FUN_020910A4.c index 850486d4..c5b7c916 100644 --- a/arm9/src/FUN_020910A4.c +++ b/arm9/src/FUN_020910A4.c @@ -1,10 +1,32 @@ #include "global.h" -void * (* gUnk021C8C70)(u32); +typedef void * (* AllocFunc)(u32 size); +typedef void (* FreeFunc)(void * ptr); +static FreeFunc gUnk021C8C74; +static AllocFunc gUnk021C8C70; + +// Custom allocator ARM_FUNC void* FUN_020910A4(u32 size) { - if (gUnk021C8C70 != NULL) - return gUnk021C8C70(size); - return OS_AllocFromHeap(OS_ARENA_MAIN, -1, size); + if (gUnk021C8C70 != NULL) + return gUnk021C8C70(size); + else + return OS_AllocFromHeap(OS_ARENA_MAIN, -1, size); +} + +// Custom destructor +ARM_FUNC void FUN_0209105C(void * ptr) +{ + if (gUnk021C8C74 != NULL) + gUnk021C8C74(ptr); + else + OS_FreeToHeap(OS_ARENA_MAIN, -1, ptr); +} + +// Custom alloc/free setter +ARM_FUNC void SetCustomAllocator(AllocFunc allocator, FreeFunc destructor) +{ + gUnk021C8C70 = allocator; + gUnk021C8C74 = destructor; } diff --git a/arm9/src/main.c b/arm9/src/main.c index 73b63332..8c80d686 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -1,26 +1,73 @@ #include "global.h" #include "main.h" +#include "PAD_pad.h" +#include "CARD_pullOut.h" +#include "CARD_backup.h" +#include "CTRDG_common.h" +#include "poke_overlay.h" + +FS_EXTERN_OVERLAY(MODULE_52); +FS_EXTERN_OVERLAY(MODULE_63); + +#define SOFT_RESET_KEY (PAD_BUTTON_L | PAD_BUTTON_R | PAD_BUTTON_START | PAD_BUTTON_SELECT) -extern struct Unk2106FA0 gBacklightTop; -extern struct Unk2106FA0 gBacklightTop_2; // same as the first one, it's referenced twice in the constant pool... extern struct Unk21C48B8 gUnknown21C48B8; -extern s32 gUnk027FFC20; extern struct { s32 unk0; - s32 unk4; + u8 unk4; + u8 unk5; + u8 unk6; + u8 unk7; u8 unk8; } gUnk021C4918; -extern void PM_GetBackLight(); extern void OS_WaitIrq(); extern void FUN_02016438(s32); +extern void InitSystemForTheGame(void); +extern void InitGraphicMemory(void); +extern void FUN_020163BC(void); +extern void FUN_02022294(void); +extern void FUN_0201259C(void); +extern void FUN_02000DF4(void); +extern void FUN_02002C14(void); +extern void FUN_02002C50(int, int); +extern int FUN_0202254C(void); +extern void FUN_02003B98(int, int); +extern int FUN_02029EF8(int); +extern int LoadPlayerDataAddress(int); +extern void FUN_02020AFC(void); +extern int FUN_020337E8(int); +extern void FUN_02034188(int, int); +extern int FUN_020227FC(int); +extern void FUN_02089D90(int); +extern void FUN_02000E7C(FSOverlayID, struct Unk21DBE18 *); +extern void ErrorHandling(void); +extern void FUN_02000FA4(void); +extern void FUN_0200A2AC(void); +extern void FUN_02015E30(void); +extern void FUN_02000EE8(void); +extern void FUN_02000FE8(void); +extern void FUN_02016464(void); +void DoSoftReset(u32 parameter); +extern BOOL FUN_0202FB80(void); +extern void FUN_02000E0C(void); +extern void FUN_0201B5CC(int); +extern void FUN_020125D4(void); +extern void FUN_02015E60(void); +extern void FUN_020222C4(void); +extern void FUN_0200A318(void); +extern void FUN_0200E2D8(void); +extern void FUN_02003C10(void); +void FUN_02000F4C(int arg0, int arg1); +extern BOOL FUN_02006234(struct Unk21DBE18 *, s32 *, int); +extern BOOL FUN_02006290(int); +extern void FUN_02006260(int); +extern BOOL FUN_02033678(void); +extern int FUN_020335B8(void); -extern const s32 CONST_3F; // 0x0000003F -extern const s32 CONST_34; // 0x00000034 - -extern struct Unk21DBE18 gUnk021DBE18; -extern struct Unk21DBE18 gUnk021D76C8; +extern struct Unk21DBE18 MOD63_UNK_021DBE18; +extern struct Unk21DBE18 MOD52_UNK_021D76C8; THUMB_FUNC void NitroMain(void) @@ -30,7 +77,7 @@ THUMB_FUNC void NitroMain(void) FUN_020163BC(); FUN_02016438(0); - PM_GetBackLight(&gBacklightTop_2, 0); + PM_GetBackLight(&gBacklightTop_2.unk0, NULL); FUN_02022294(); FUN_0201259C(); @@ -51,15 +98,15 @@ THUMB_FUNC void NitroMain(void) } else { - switch (gUnk027FFC20) + switch (*((s32 *)HW_RESET_PARAMETER_BUF)) { case 0: gBacklightTop.unk1C = 0; - FUN_02000E7C(&CONST_3F, &gUnk021DBE18); + FUN_02000E7C(FS_OVERLAY_ID(MODULE_63), &MOD63_UNK_021DBE18); break; case 1: gBacklightTop.unk1C = 1; - FUN_02000E7C(&CONST_34, &gUnk021D76C8); + FUN_02000E7C(FS_OVERLAY_ID(MODULE_52), &MOD52_UNK_021D76C8); break; default: ErrorHandling(); @@ -77,9 +124,9 @@ THUMB_FUNC void NitroMain(void) FUN_02000EE8(); FUN_02000FE8(); FUN_02016464(); - if ((gUnknown21C48B8.unk38 & 0x30C) == 0x30C && !gUnk021C4918.unk8) // soft reset? + if ((gUnknown21C48B8.unk38 & SOFT_RESET_KEY) == SOFT_RESET_KEY && !gUnk021C4918.unk8) // soft reset? { - FUN_02000F18(0); // soft reset? + DoSoftReset(0); // soft reset? } if (FUN_0202FB80()) { @@ -106,4 +153,199 @@ THUMB_FUNC void NitroMain(void) FUN_02003C10(); FUN_0201B5CC(gUnknown21C48B8.unk20); } -}
\ No newline at end of file +} + +THUMB_FUNC void FUN_02000DF4(void) +{ + gBacklightTop.unk8 = -1; + gBacklightTop.unkC = 0; + gBacklightTop.unk10 = -1; // overlay invalid + gBacklightTop.unk14 = NULL; +} + +THUMB_FUNC void FUN_02000E0C(void) +{ + if (!gBacklightTop.unkC) + { + if (gBacklightTop.unk14 == NULL) + return; + if (gBacklightTop.unk10 != -1u) + HandleLoadOverlay(gBacklightTop.unk10, 0); + gBacklightTop.unk8 = gBacklightTop.unk10; + gBacklightTop.unkC = FUN_02006234(gBacklightTop.unk14, &gBacklightTop.unk18, 0); + gBacklightTop.unk10 = -1u; + gBacklightTop.unk14 = NULL; + } + if (FUN_02006290(gBacklightTop.unkC)) + { + FUN_02006260(gBacklightTop.unkC); + gBacklightTop.unkC = 0; + if (gBacklightTop.unk8 != -1u) + UnloadOverlayByID(gBacklightTop.unk8); + } +} + +THUMB_FUNC void FUN_02000E7C(FSOverlayID id, struct Unk21DBE18 * arg1) +{ + if (gBacklightTop.unk14 != NULL) + ErrorHandling(); + gBacklightTop.unk10 = id; + gBacklightTop.unk14 = arg1; +} + +THUMB_FUNC void FUN_02000E9C(void) +{ + FUN_0202FB80(); + OS_WaitIrq(1, 1); + gUnknown21C48B8.unk2C++; + gUnknown21C48B8.unk30 = 0; + if (gUnknown21C48B8.unk0 != NULL) + gUnknown21C48B8.unk0(gUnknown21C48B8.unk4); +} + +THUMB_FUNC void FUN_02000EC8(u32 parameter) +{ + if (FUN_02033678() && CARD_TryWaitBackupAsync() == TRUE) + { + OS_ResetSystem(parameter); + } + FUN_02000E9C(); +} + +THUMB_FUNC void FUN_02000EE8(void) +{ + int r1 = FUN_020335B8(); + switch (r1) + { + case 1: + FUN_02000F4C(1, r1); + break; + case 2: + FUN_02000F4C(0, r1); + break; + case 3: + FUN_02000F4C(1, r1); + break; + } +} + +extern void FUN_0200E3A0(int, int); +extern BOOL FUN_02032DAC(void); +extern void FUN_020225F8(void); +extern void FUN_0202287C(void); + +// No Return +THUMB_FUNC void DoSoftReset(u32 parameter) +{ + FUN_0200E3A0(0, 0x7FFF); + FUN_0200E3A0(1, 0x7FFF); + if (FUN_02032DAC()) + { + FUN_020225F8(); + FUN_0202287C(); + } + do + { + FUN_02000FE8(); + FUN_02000EC8(parameter); + } while (1); +} + +extern void FUN_02033F70(int, int, int); + +THUMB_FUNC void FUN_02000F4C(int arg0, int arg1) +{ + if (arg1 == 3) + { + FUN_02033F70(0, 3, 0); + } + else if (arg0 == 0) + { + FUN_02033F70(0, 2, 0); + } + else + { + FUN_02033F70(0, 0, 0); + } + FUN_02032DAC(); + while (1) + { + FUN_02000FE8(); + FUN_02016464(); + if (gUnknown21C48B8.unk48 & 1) + break; + FUN_02000E9C(); + } + DoSoftReset(arg0); +} + +extern void FUN_0201265C(struct Unk21C4818 *, struct Unk21C4828 *); +extern void FUN_0201BA1C(int); +extern void FUN_0201B9E0(int); + +void FUN_02000FA4(void) +{ + struct Unk21C4818 spC; + struct Unk21C4828 sp0; + FUN_0201265C(&spC, &sp0); + { + int r4 = gUnknown21C48B8.unk2C; + int r5 = ((sp0.unk4 + sp0.unk8) << 24) + (spC.unk0 + ((256 * spC.unk4 * spC.unk8) << 16) + (sp0.unk0 << 16)); + FUN_0201BA1C(r4 + r5); + FUN_0201B9E0(r4 + r5); + } +} + +extern void FUN_0201CE04(void); +extern void FUN_0201CDD0(void); + +void FUN_02000FE8(void) +{ + PMBackLightSwitch top, bottom; + if (PAD_DetectFold()) + { + if (!gUnk021C4918.unk7) + { + FUN_0201CE04(); + if (CTRDG_IsPulledOut() == TRUE) + { + gBacklightTop.unk4 = 1; + } + { + int r1 = gBacklightTop.unk4; + while (1) + { + PMWakeUpTrigger trigger = PM_TRIGGER_COVER_OPEN | PM_TRIGGER_CARD; + if (gUnk021C4918.unk6 && !r1) + trigger |= PM_TRIGGER_CARTRIDGE; + PM_GoSleepMode(trigger, PM_PAD_LOGIC_OR, 0); + if (CARD_IsPulledOut()) + { + PM_ForceToPowerOff(); + break; + } + else if (PAD_DetectFold()) + { + r1 = gBacklightTop.unk4 = 1; + } + else + break; + } + FUN_0201CDD0(); + return; + } + } + else + { + PM_GetBackLight(&top, &bottom); + if (top == PM_BACKLIGHT_ON) + PM_SetBackLight(PM_LCD_ALL, PM_BACKLIGHT_OFF); + } + } + else + { + PM_GetBackLight(&top, &bottom); + if (top == PM_BACKLIGHT_OFF) + PM_SetBackLight(PM_LCD_ALL, gBacklightTop.unk0); + } +} diff --git a/arm9/src/poke_overlay.c b/arm9/src/poke_overlay.c index 105881d8..4cf1ea67 100644 --- a/arm9/src/poke_overlay.c +++ b/arm9/src/poke_overlay.c @@ -1,11 +1,7 @@ #include "global.h" #include "nitro.h" #include "FS_file.h" -#include "FS_overlay.h" - -#define OVERLAY_LOAD_WRAM 0 -#define OVERLAY_LOAD_ITCM 1 -#define OVERLAY_LOAD_DTCM 2 +#include "poke_overlay.h" extern void ErrorHandling(void); |