diff options
author | Demki <mordbz@gmail.com> | 2020-05-01 09:08:03 +0300 |
---|---|---|
committer | Demki <mordbz@gmail.com> | 2020-05-01 09:08:03 +0300 |
commit | 4c5341831c0af7573552629a76b9ef5baadc81a9 (patch) | |
tree | 7e0a565279d62cadd4bf8bef08db9b4bdcf5da51 | |
parent | 081bd6efce613ed078407ab8fd24765275385f9f (diff) |
add thumb/arm macros and change makefiles to reflect that.
and decompilation of FUN_020910A4.c
-rw-r--r-- | Makefile | 16 | ||||
-rw-r--r-- | arm7/Makefile | 16 | ||||
-rw-r--r-- | arm9/Makefile | 18 | ||||
-rw-r--r-- | arm9/arm9.lcf | 2 | ||||
-rw-r--r-- | arm9/asm/unk_0208AC14.s | 35521 | ||||
-rw-r--r-- | arm9/asm/unk_020910EC.s | 35502 | ||||
-rw-r--r-- | arm9/global.inc | 3 | ||||
-rw-r--r-- | arm9/lib/src/OS_arena.c | 22 | ||||
-rw-r--r-- | arm9/modules/01/src/module_01.c | 4 | ||||
-rw-r--r-- | arm9/src/FUN_02000DF4.c | 2 | ||||
-rw-r--r-- | arm9/src/FUN_020910A4.c | 10 | ||||
-rw-r--r-- | arm9/src/main.c | 3 | ||||
-rw-r--r-- | arm9/src/script.c | 26 | ||||
-rw-r--r-- | arm9/src/string_util.c | 16 | ||||
-rw-r--r-- | arm9/undefined_syms.txt | 2 | ||||
-rw-r--r-- | include-mw/function_target.h | 7 | ||||
-rw-r--r-- | include/global.h | 1 | ||||
-rw-r--r-- | undefined_syms.txt | 1 |
18 files changed, 35587 insertions, 35585 deletions
@@ -59,30 +59,30 @@ ARM7BIN := arm7/build/arm7.sbin ##################### Compiler Options ####################### -MWCCVERSION := 2.0/base +MWCCVERSION = 2.0/base CROSS := arm-none-eabi- -MWCCARM := tools/mwccarm/$(MWCCVERSION)/mwccarm.exe +MWCCARM = tools/mwccarm/$(MWCCVERSION)/mwccarm.exe # Argh... due to EABI version shenanigans, we can't use GNU LD to link together # MWCC built objects and GNU built ones. mwldarm, however, doesn't care, so we # have to use mwldarm for now. # TODO: Is there a hack workaround to let us go back to GNU LD? Ideally, the # only dependency should be MWCCARM. -MWLDARM := tools/mwccarm/$(MWCCVERSION)/mwldarm.exe -MWASMARM := tools/mwccarm/$(MWCCVERSION)/mwasmarm.exe +MWLDARM = tools/mwccarm/$(MWCCVERSION)/mwldarm.exe +MWASMARM = tools/mwccarm/$(MWCCVERSION)/mwasmarm.exe -AS := $(WINE) $(MWASMARM) -CC := $(WINE) $(MWCCARM) +AS = $(WINE) $(MWASMARM) +CC = $(WINE) $(MWCCARM) CPP := cpp -P -LD := $(WINE) $(MWLDARM) +LD = $(WINE) $(MWLDARM) AR := $(CROSS)ar OBJDUMP := $(CROSS)objdump OBJCOPY := $(CROSS)objcopy # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o ASFLAGS = -proc arm5te -CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c99 -Cpp_exceptions off -ir include +CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -ir include -ir include-mw LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start ####################### Other Tools ######################### diff --git a/arm7/Makefile b/arm7/Makefile index cdbb27d7..6be0f66a 100644 --- a/arm7/Makefile +++ b/arm7/Makefile @@ -58,32 +58,32 @@ O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \ ##################### Compiler Options ####################### -MWCCVERSION := 2.0/base +MWCCVERSION = 2.0/base TOOLS_DIR = ../tools CROSS := arm-none-eabi- -MWCCARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwccarm.exe +MWCCARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwccarm.exe # Argh... due to EABI version shenanigans, we can't use GNU LD to link together # MWCC built objects and GNU built ones. mwldarm, however, doesn't care, so we # have to use mwldarm for now. # TODO: Is there a hack workaround to let us go back to GNU LD? Ideally, the # only dependency should be MWCCARM. -MWLDARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwldarm.exe -MWASMARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwasmarm.exe +MWLDARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwldarm.exe +MWASMARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwasmarm.exe MAKELSF := $(WINE) $(TOOLS_DIR)/bin/makelcf.exe -AS := $(WINE) $(MWASMARM) -CC := $(WINE) $(MWCCARM) +AS = $(WINE) $(MWASMARM) +CC = $(WINE) $(MWCCARM) CPP := cpp -P -LD := $(WINE) $(MWLDARM) +LD = $(WINE) $(MWLDARM) AR := $(CROSS)ar OBJDUMP := $(CROSS)objdump OBJCOPY := $(CROSS)objcopy # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm7_thumb.s -o arm7.o ASFLAGS = -proc arm4t -i .. -CFLAGS = -O4,p -proc v4t -thumb -fp soft -lang c99 -Cpp_exceptions off -ir ../include +CFLAGS = -O4,p -proc v4t -fp soft -lang c99 -Cpp_exceptions off -ir ../include -ir ../include-mw LDFLAGS = -map -nodead -w off -proc v4t -interworking -map -symtab -m _start ####################### Other Tools ######################### diff --git a/arm9/Makefile b/arm9/Makefile index 3d2b8fef..d84513a4 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -67,28 +67,28 @@ TOOLS_DIR = ../tools CROSS := arm-none-eabi- -MWCCARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwccarm.exe +MWCCARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwccarm.exe # Argh... due to EABI version shenanigans, we can't use GNU LD to link together # MWCC built objects and GNU built ones. mwldarm, however, doesn't care, so we # have to use mwldarm for now. # TODO: Is there a hack workaround to let us go back to GNU LD? Ideally, the # only dependency should be MWCCARM. -MWLDARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwldarm.exe -MWASMARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwasmarm.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) +AS = $(WINE) $(MWASMARM) +CC = $(WINE) $(MWCCARM) CPP := cpp -P -LD := $(WINE) $(MWLDARM) +LD = $(WINE) $(MWLDARM) AR := $(CROSS)ar OBJDUMP := $(CROSS)objdump OBJCOPY := $(CROSS)objcopy # ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o ASFLAGS = -proc arm5te -i .. -CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c99 -Cpp_exceptions off -ir ../include +CFLAGS = -O4,p -proc arm946e -fp soft -lang c99 -Cpp_exceptions off -ir ../include -ir ../include-mw -interworking LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start ####################### Other Tools ######################### @@ -146,8 +146,8 @@ ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS)) ######################## Special Rules ######################## # TODO: Move out to lib/Makefile -build/lib/src/%.o: CC := $(WINE) $(TOOLS_DIR)/mwccarm/1.2/sp2p3/mwccarm.exe -build/lib/src/%.o: CFLAGS := -O4,p -proc arm9tdmi -interworking -ir include -ir ../include -lang c99 +build/lib/src/%.o: MWCCVERSION = 1.2/sp2p3 +build/src/FUN_020910A4.o: MWCCVERSION = 1.2/sp2p3 ####################### Everything Else ###################### diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf index ad1f4958..2eaefb46 100644 --- a/arm9/arm9.lcf +++ b/arm9/arm9.lcf @@ -117,6 +117,8 @@ SECTIONS { scrcmd.o (.text) unk_02046030.o (.text) unk_0208AC14.o (.text) + FUN_020910A4.o (.text) + unk_020910EC.o (.text) unk_020AF030.o (.text) /* Nitro SDK */ FX_mtx22.o (.text) diff --git a/arm9/asm/unk_0208AC14.s b/arm9/asm/unk_0208AC14.s index 8fbcff45..e2ac3396 100644 --- a/arm9/asm/unk_0208AC14.s +++ b/arm9/asm/unk_0208AC14.s @@ -6928,35524 +6928,3 @@ _02091088: bx lr .balign 4 _020910A0: .word 0x021C8C74 - - arm_func_start FUN_020910A4 -FUN_020910A4: - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _020910E8 ; =0x021C8C70 - mov r2, r0 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - beq _020910D0 - blx r1 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020910D0: - mov r0, #0x0 - mvn r1, #0x0 - bl OS_AllocFromHeap - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020910E8: .word 0x021C8C70 - - arm_func_start FUN_020910EC -FUN_020910EC: ; 0x020910EC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x14 - mov r12, r0 - mov r4, r1 - mov r5, r2 - mov r2, r4 - add r0, sp, #0x0 - mov r1, r12 - mov r4, r3 - bl MATH_CalcSHA1 -_02091114: ; 0x02091114 - add r0, sp, #0x0 - mov r1, r5 - mov r2, r4 - bl FUN_02091130 - add sp, sp, #0x14 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_02091130 -FUN_02091130: ; 0x02091130 - stmdb sp!, {r4,lr} - sub sp, sp, #0x120 - mov r3, #0x0 - str r3, [sp, #0x10] - str r3, [sp, #0x18] - str r2, [sp, #0x0] - mov r3, #0x80 - mov r4, r0 - mov r2, r1 - ldr ip, _0209122C ; =0x00010001 - str r3, [sp, #0x4] - add r0, sp, #0x1c - mov r1, #0x100 - str r12, [sp, #0x8] - bl FUN_0209156C - mov r1, r0 - add r0, sp, #0x1c - add r2, sp, #0xc - add r3, sp, #0x10 - bl FUN_020913D4 -_02091180: ; 0x02091180 - cmp r0, #0x0 - addeq sp, sp, #0x120 - moveq r0, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - add r1, sp, #0x14 - add r0, sp, #0x18 - str r1, [sp, #0x0] - str r0, [sp, #0x4] - mov r2, #0x0 - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x10] - mov r3, r2 - bl FUN_02091230 -_020911B8: ; 0x020911B8 - cmp r0, #0x0 - addeq sp, sp, #0x120 - moveq r0, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r0, [sp, #0x18] - cmp r0, #0x14 - addne sp, sp, #0x120 - movne r0, #0x0 - ldmneia sp!, {r4,lr} - bxne lr - ldr r2, [sp, #0x14] - mov r3, #0x0 -_020911EC: - ldrb r1, [r2, #0x0] - ldrb r0, [r4, #0x0] - cmp r1, r0 - addne sp, sp, #0x120 - movne r0, #0x0 - ldmneia sp!, {r4,lr} - bxne lr - add r3, r3, #0x1 - cmp r3, #0x14 - add r4, r4, #0x1 - add r2, r2, #0x1 - blt _020911EC - mov r0, #0x1 - add sp, sp, #0x120 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_0209122C: .word 0x00010001 - - arm_func_start FUN_02091230 -FUN_02091230: - stmdb sp!, {r0-r3} - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r2 - mov r4, r3 - add r0, sp, #0x10 - add r1, sp, #0x14 - mov r2, #0x30 - mov r3, #0x0 - bl FUN_02091498 -_02091258: ; 0x02091258 - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,lr} - addeq sp, sp, #0x10 - bxeq lr - add r0, sp, #0x10 - add r1, sp, #0x14 - mov r2, #0x30 - mov r3, #0x0 - bl FUN_02091498 -_02091284: ; 0x02091284 - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,lr} - addeq sp, sp, #0x10 - bxeq lr - add r0, sp, #0x10 - add r1, sp, #0x14 - add r3, sp, #0x0 - mov r2, #0x6 - bl FUN_02091498 -_020912B0: ; 0x020912B0 - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,lr} - addeq sp, sp, #0x10 - bxeq lr - cmp r5, #0x0 - ldrne r0, [sp, #0x10] - strne r0, [r5, #0x0] - cmp r4, #0x0 - ldrne r0, [sp, #0x0] - strne r0, [r4, #0x0] - ldr r2, [sp, #0x0] - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - add r0, r0, r2 - str r0, [sp, #0x10] - cmp r1, r2 - addcc sp, sp, #0x4 - movcc r0, #0x0 - ldmccia sp!, {r4-r5,lr} - addcc sp, sp, #0x10 - bxcc lr - sub r12, r1, r2 - add r0, sp, #0x10 - add r1, sp, #0x14 - add r3, sp, #0x0 - mov r2, #0x5 - str r12, [sp, #0x14] - bl FUN_02091498 -_02091328: ; 0x02091328 - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r2, [sp, #0x0] - ldr r0, [sp, #0x10] - ldr r1, [sp, #0x14] - add r0, r0, r2 - str r0, [sp, #0x10] - cmp r1, r2 - addcc sp, sp, #0x4 - movcc r0, #0x0 - ldmccia sp!, {r4-r5,lr} - addcc sp, sp, #0x10 - bxcc lr - sub r12, r1, r2 - add r0, sp, #0x10 - add r1, sp, #0x14 - add r3, sp, #0x0 - mov r2, #0x4 - str r12, [sp, #0x14] - bl FUN_02091498 -_02091388: ; 0x02091388 - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,lr} - addeq sp, sp, #0x10 - bxeq lr - ldr r1, [sp, #0x20] - cmp r1, #0x0 - ldrne r0, [sp, #0x10] - strne r0, [r1, #0x0] - ldr r1, [sp, #0x24] - cmp r1, #0x0 - ldrne r0, [sp, #0x0] - strne r0, [r1, #0x0] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - add sp, sp, #0x10 - bx lr - - arm_func_start FUN_020913D4 -FUN_020913D4: - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r1, #0xa - addcc sp, sp, #0x4 - movcc r0, #0x0 - ldmccia sp!, {lr} - bxcc lr - ldrb r12, [r0, #0x0] - add lr, r0, r1 - cmp r12, #0x1 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {lr} - bxne lr - add r12, r0, #0x1 - mov r1, #0x0 -_02091414: - ldrb r0, [r12], #0x1 - cmp r0, #0xff - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {lr} - bxne lr - add r1, r1, #0x1 - cmp r1, #0x8 - blt _02091414 - cmp r12, lr - beq _02091458 -_02091440: - ldrb r0, [r12, #0x0] - cmp r0, #0xff - bne _02091458 - add r12, r12, #0x1 - cmp r12, lr - bne _02091440 -_02091458: - cmp r12, lr - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {lr} - bxeq lr - ldrb r0, [r12, #0x0] - cmp r0, #0x0 - movne r0, #0x0 - addeq r0, r12, #0x1 - subeq r1, lr, r0 - streq r1, [r3, #0x0] - streq r0, [r2, #0x0] - moveq r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_02091498 -FUN_02091498: - stmdb sp!, {r4-r6,lr} - ldr r5, [r0, #0x0] - mov r6, #0x0 - ldrb r4, [r5, #0x0] - add r5, r5, #0x1 - mov r12, r6 - cmp r4, r2 - ldr r2, [r1, #0x0] - movne r0, r6 - ldmneia sp!, {r4-r6,lr} - bxne lr - cmp r2, #0x1 - movcc r0, r6 - ldmccia sp!, {r4-r6,lr} - bxcc lr - ldrb lr, [r5, #0x0] - sub r4, r2, #0x1 - ands r2, lr, #0x80 - beq _02091534 - and r2, lr, #0x7f - and lr, r2, #0xff - add r2, lr, #0x1 - cmp r4, r2 - movcc r0, r6 - ldmccia sp!, {r4-r6,lr} - bxcc lr - cmp r3, #0x0 - sub r6, r4, lr - beq _0209152C - ldrb r2, [r5, #0x1] - add r5, r5, #0x1 - and r4, r2, #0x7f -_02091518: - sub r2, lr, #0x1 - add r12, r4, r12, lsl #0x7 - ands lr, r2, #0xff - bne _02091518 - b _02091550 -_0209152C: - add r5, r5, lr - b _02091550 -_02091534: - add r5, r5, #0x1 - cmp r4, #0x1 - mov r12, lr - movcc r0, r6 - ldmccia sp!, {r4-r6,lr} - bxcc lr - sub r6, r4, #0x1 -_02091550: - str r5, [r0, #0x0] - str r6, [r1, #0x0] - cmp r3, #0x0 - strne r12, [r3, #0x0] - mov r0, #0x1 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_0209156C -FUN_0209156C: ; 0x0209156C - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x58 - movs r6, r0 - mov r5, r1 - mov r8, r2 - mov r7, r3 - beq _0209159C - cmp r8, #0x0 - beq _0209159C - ldr r0, [sp, #0x70] - cmp r0, #0x0 - bne _020915AC -_0209159C: - add sp, sp, #0x58 - mvn r0, #0x2 - ldmia sp!, {r4-r8,lr} - bx lr -_020915AC: - bl FUN_02094FAC - mov r4, r0 - add r0, sp, #0x4 - bl FUN_0209502C - add r0, sp, #0x18 - bl FUN_0209502C - add r0, sp, #0x2c - bl FUN_0209502C - add r0, sp, #0x40 - bl FUN_0209502C -_020915D4: ; 0x020915D4 - cmp r4, #0x0 - mvneq r5, #0x1 - beq _02091688 - add r2, sp, #0x4 - mov r0, r8 - mov r1, r7 - bl FUN_02094C68 -_020915F0: ; 0x020915F0 - cmp r0, #0x0 - mvneq r5, #0x1 - beq _02091688 - ldr r1, [sp, #0x78] - add r0, sp, #0x2c - bl FUN_02094D7C -_02091608: ; 0x02091608 - cmp r0, #0x0 - mvneq r5, #0x1 - beq _02091688 - ldr r0, [sp, #0x70] - ldr r1, [sp, #0x74] - add r2, sp, #0x40 - bl FUN_02094C68 -_02091624: ; 0x02091624 - cmp r0, #0x0 - mvneq r5, #0x1 - beq _02091688 - add r0, sp, #0x18 - add r1, sp, #0x4 - add r2, sp, #0x2c - add r3, sp, #0x40 - str r4, [sp, #0x0] - bl FUN_020931B8 -_02091648: ; 0x02091648 - cmp r0, #0x0 - mvneq r5, #0x1 - beq _02091688 - add r0, sp, #0x18 - bl FUN_02095188 - add r1, r0, #0x7 - mov r0, r1, asr #0x2 - add r0, r1, r0, lsr #0x1d - mov r0, r0, asr #0x3 - cmp r0, r5 - mvngt r5, #0x0 - bgt _02091688 - add r0, sp, #0x18 - mov r1, r6 - bl FUN_02094BEC - mov r5, r0 -_02091688: - add r0, sp, #0x4 - bl FUN_0209510C - add r0, sp, #0x18 - bl FUN_0209510C - add r0, sp, #0x2c - bl FUN_0209510C - add r0, sp, #0x40 - bl FUN_0209510C -_020916A8: ; 0x020916A8 - cmp r4, #0x0 - beq _020916B8 - mov r0, r4 - bl FUN_02094F3C -_020916B8: - mov r0, r5 - add sp, sp, #0x58 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_020916C8 -FUN_020916C8: ; 0x020916C8 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x7c - mov r4, #0x0 - mov r5, r3 - mov r3, r4 - str r3, [sp, #0x34] - ldr r3, [r5, #0x0] - str r0, [sp, #0x4] - mov r0, r4 - ldr r3, [r3, #0x0] - str r0, [sp, #0x1c] - str r0, [sp, #0x20] - ands r0, r3, #0x1 - ldr r0, [sp, #0xa0] - str r4, [sp, #0x8] - str r0, [sp, #0xa0] - mov r7, r1 - mov r6, r2 - addeq sp, sp, #0x7c - moveq r0, r4 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - ldr r1, [r7, #0x4] - ldr r0, [r0, #0x0] - cmp r1, #0x0 - str r0, [sp, #0xc] - beq _0209174C - cmp r1, #0x1 - bne _02091768 - ldr r0, [r7, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02091768 -_0209174C: - ldr r0, [sp, #0x4] - mov r1, #0x0 - bl FUN_02094D7C - add sp, sp, #0x7c - mov r0, #0x1 - ldmia sp!, {r4-r11,lr} - bx lr -_02091768: - ldr r1, [r6, #0x4] - cmp r1, #0x0 - beq _0209178C - cmp r1, #0x1 - bne _020917A8 - ldr r0, [r6, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020917A8 -_0209178C: - ldr r0, [sp, #0x4] - mov r1, #0x1 - bl FUN_02094D7C - add sp, sp, #0x7c - mov r0, #0x1 - ldmia sp!, {r4-r11,lr} - bx lr -_020917A8: - cmp r1, #0x1 - bne _020917DC - ldr r0, [r6, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x1 - bne _020917DC - ldr r0, [sp, #0x4] - mov r1, r7 - bl FUN_02094E24 - add sp, sp, #0x7c - mov r0, #0x1 - ldmia sp!, {r4-r11,lr} - bx lr -_020917DC: - ldr r0, [sp, #0xa4] - str r0, [sp, #0x18] - cmp r0, #0x0 - bne _02091810 - bl FUN_02092860 - str r0, [sp, #0x18] - cmp r0, #0x0 - beq _02091E6C - ldr r2, [sp, #0xa0] - mov r1, r5 - bl FUN_02092894 -_02091808: ; 0x02091808 - cmp r0, #0x0 - beq _02091E6C -_02091810: - ldr r3, [sp, #0xa0] - add r1, sp, #0x34 - mov r4, r3 - ldr r4, [r4, #0x10c] - mov r0, r6 - mov r2, #0x0 - str r4, [sp, #0x1c] - bl FUN_02092C28 -_02091830: ; 0x02091830 - cmp r0, #0x0 - beq _02091E6C - ldr r0, [sp, #0xa0] - ldr r0, [r0, #0x0] - add r1, r0, #0x1 - ldr r0, [sp, #0xa0] - str r1, [r0, #0x0] - ldr r0, [sp, #0x34] - ldrb r1, [r0, #0x2] - ldrb r0, [r0, #0x3] - str r0, [sp, #0x10] - add r0, r1, #0x3f - bl _s32_div_f - ldr r1, [sp, #0x34] - mov r4, r0 - add r0, r1, #0x4 - str r0, [sp, #0x34] - ldr r0, [sp, #0x18] - ldr r3, [r7, #0x4] - ldr r10, [r0, #0x24] - cmp r3, r10 - bne _020918A8 - ldr r1, [r7, #0x0] - sub r2, r10, #0x1 - ldr r0, [r5, #0x0] - ldr r1, [r1, r2, lsl #0x2] - ldr r0, [r0, r2, lsl #0x2] - cmp r1, r0 - strcc r7, [sp, #0x14] - blo _02091960 -_020918A8: - cmp r3, r10 - bge _0209191C - ldr r0, [sp, #0xa0] - ldr r3, [r0, #0x0] - add r1, r0, #0x4 - add r2, r3, #0x1 - str r2, [r0, #0x0] - mov r0, #0x14 - mla r0, r3, r0, r1 - ldr r2, [r7, #0x4] - mov r1, r0 - str r2, [r1, #0x4] - mov r1, r10 - str r0, [sp, #0x14] - bl FUN_0209508C - ldr r0, [r7, #0x4] - mov r2, #0x0 - cmp r0, #0x0 - ble _02091960 -_020918F4: - ldr r1, [r7, #0x0] - ldr r0, [sp, #0x14] - ldr r1, [r1, r2, lsl #0x2] - ldr r0, [r0, #0x0] - str r1, [r0, r2, lsl #0x2] - ldr r0, [r7, #0x4] - add r2, r2, #0x1 - cmp r2, r0 - blt _020918F4 - b _02091960 -_0209191C: - ldr r0, [sp, #0xa0] - mov r2, r5 - ldr r3, [r0, #0x0] - mov r1, r7 - add r5, r3, #0x1 - str r5, [r0, #0x0] - add r5, r0, #0x4 - mov r0, #0x14 - mla r0, r3, r0, r5 - ldr r3, [sp, #0xa0] - str r0, [sp, #0x14] - bl FUN_02093214 -_0209194C: ; 0x0209194C - cmp r0, #0x0 - beq _02091E6C - ldr r0, [sp, #0x14] - mov r1, r10 - bl FUN_0209508C -_02091960: - ldr r0, [sp, #0xa0] - ldr r3, [r0, #0x0] - ldr r0, [r6, #0x4] - add r1, r3, #0x1 - mul r2, r0, r4 - ldr r0, [sp, #0xa0] - mov r4, r2, lsl #0x1 - str r1, [r0, #0x0] - ldr r1, [r0, #0x0] - add r4, r4, #0x7 - add r2, r1, #0x1 - str r2, [r0, #0x0] - ldr r2, [sp, #0x10] - ldr r0, [r0, #0x0] - mul r5, r2, r10 - mov r2, r4, asr #0x1 - add r2, r4, r2, lsr #0x1e - add r5, r5, r2, asr #0x2 - ldr r2, [sp, #0xa0] - mov r6, #0x14 - add r2, r2, #0x4 - mla r8, r1, r6, r2 - mla r4, r3, r6, r2 - ldr r1, [sp, #0xa0] - add r3, r0, #0x1 - mla r7, r0, r6, r2 - str r3, [r1, #0x0] - mov r0, r1 - ldr r0, [r0, #0x0] - mla r6, r0, r6, r2 - add r1, r0, #0x1 - ldr r0, [sp, #0xa0] - str r1, [r0, #0x0] - ldr r0, [sp, #0x4] - ldr r0, [r0, #0x8] - cmp r10, r0 - ldrle r0, [sp, #0x4] - ble _02091A04 - ldr r0, [sp, #0x4] - mov r1, r10 - bl FUN_02094EBC -_02091A04: - cmp r0, #0x0 - beq _02091E6C - ldr r0, [r8, #0x8] - mov r1, r10, lsl #0x2 - cmp r1, r0 - movle r0, r8 - ble _02091A28 - mov r0, r8 - bl FUN_02094EBC -_02091A28: - cmp r0, #0x0 - beq _02091E6C - ldr r1, [r7, #0x8] - mov r0, r10, lsl #0x1 - str r0, [sp, #0x24] - cmp r0, r1 - movle r0, r7 - ble _02091A54 - ldr r1, [sp, #0x24] - mov r0, r7 - bl FUN_02094EBC -_02091A54: - cmp r0, #0x0 - beq _02091E6C - ldr r0, [r4, #0x8] - cmp r5, r0 - movle r0, r4 - ble _02091A78 - mov r1, r5 - mov r0, r4 - bl FUN_02094EBC -_02091A78: - cmp r0, #0x0 - beq _02091E6C - ldr r1, [r6, #0x8] - ldr r0, [sp, #0x24] - cmp r0, r1 - movle r0, r6 - ble _02091AA0 - ldr r1, [sp, #0x24] - mov r0, r6 - bl FUN_02094EBC -_02091AA0: - cmp r0, #0x0 - beq _02091E6C - ldr r0, [sp, #0x18] - ldr r11, [r8, #0x0] - ldr r8, [r7, #0x0] - ldr r6, [r6, #0x0] - ldr r1, [r4, #0x0] - ldr r7, [r0, #0x48] - ldr r5, [r0, #0x20] - ldr r3, [sp, #0x18] - str r1, [sp, #0x38] - str r10, [sp, #0x0] - ldr r1, [sp, #0x14] - ldr r3, [r3, #0xc] - ldr r1, [r1, #0x0] - mov r0, r6 - mov r2, r10 - bl FUN_020937E8 - str r7, [sp, #0x0] - ldr r0, [sp, #0x38] - mov r1, r6 - mov r2, r5 - mov r3, r10 - bl FUN_02092E30 - ldr r0, [sp, #0x10] - cmp r0, #0x1 - ble _02091BA8 - ldr r1, [sp, #0x38] - mov r0, r6 - mov r2, r10 - mov r3, r11 - bl FUN_02092F70 - mov r0, r11 - mov r1, r6 - mov r2, r5 - mov r3, r10 - str r7, [sp, #0x0] - bl FUN_02092E30 - ldr r0, [sp, #0x10] - mov r4, #0x1 - cmp r0, #0x1 - ble _02091BA8 - mov r0, r10, lsl #0x2 - str r0, [sp, #0x28] - add r9, sp, #0x38 -_02091B54: - sub r3, r4, #0x1 - ldr r2, [r9, r3, lsl #0x2] - ldr r1, [sp, #0x28] - mov r0, r6 - add r1, r2, r1 - str r1, [r9, r4, lsl #0x2] - str r10, [sp, #0x0] - ldr r1, [r9, r3, lsl #0x2] - mov r2, r10 - mov r3, r11 - bl FUN_020937E8 - str r7, [sp, #0x0] - ldr r0, [r9, r4, lsl #0x2] - mov r1, r6 - mov r2, r5 - mov r3, r10 - bl FUN_02092E30 - ldr r0, [sp, #0x10] - add r4, r4, #0x1 - cmp r4, r0 - blt _02091B54 -_02091BA8: - ldr r3, [sp, #0x34] - add r0, r3, #0x1 - str r0, [sp, #0x34] - add r2, r0, #0x1 - ldrb r1, [r3, #0x0] - str r2, [sp, #0x34] - ldrb r9, [r3, #0x1] - cmp r9, #0xff - bne _02091C28 - cmp r1, #0x0 - bne _02091C28 - add r0, r2, #0x1 - str r0, [sp, #0x34] - ldrb r1, [r2, #0x0] - b _02091BF8 -_02091BE4: - add r9, r9, #0x100 - ldr r1, [sp, #0x34] - add r1, r1, #0x2 - str r1, [sp, #0x34] - ldrb r1, [r0, #0x1] -_02091BF8: - ldr r0, [sp, #0x34] - ldrb r2, [r0, #0x0] - cmp r2, #0xff - bne _02091C10 - cmp r1, #0x0 - beq _02091BE4 -_02091C10: - ldr r2, [sp, #0x34] - add r2, r2, #0x1 - str r2, [sp, #0x34] - ldrb r0, [r0, #0x0] - add r0, r0, #0x1 - add r9, r9, r0 -_02091C28: - mov r2, r1, asr #0x1 - add r0, sp, #0x38 - ldr r0, [r0, r2, lsl #0x2] - mov r1, r8 - mov r2, r10, lsl #0x2 - bl MI_CpuCopy8 -_02091C40: ; 0x02091C40 - cmp r9, #0x0 - beq _02091E00 - mov r0, #0xff - str r0, [sp, #0x2c] - mov r0, #0x0 - str r0, [sp, #0x30] -_02091C58: - ldr r0, [sp, #0x1c] - cmp r0, #0x0 - beq _02091C8C - mov r3, r0 - ldr r1, [sp, #0x2c] - ldr r2, [sp, #0x20] - ldr r3, [r3, #0x0] - blx r3 - cmp r0, #0x0 - ldr r0, [sp, #0x20] - add r0, r0, #0x1 - str r0, [sp, #0x20] - bne _02091E6C -_02091C8C: - ldr r0, [sp, #0xa0] - ldr r0, [r0, #0x108] - ands r0, r0, #0x4000 - bne _02091E6C - cmp r9, #0x0 - ldr r4, [sp, #0x30] - ble _02091CE0 -_02091CA8: - mov r0, r6 - mov r1, r8 - mov r2, r10 - mov r3, r11 - bl FUN_02092F70 - str r7, [sp, #0x0] - mov r0, r8 - mov r1, r6 - mov r2, r5 - mov r3, r10 - bl FUN_02092E30 - add r4, r4, #0x1 - cmp r4, r9 - blt _02091CA8 -_02091CE0: - ldr r2, [sp, #0x34] - add r0, r2, #0x1 - str r0, [sp, #0x34] - add r1, r0, #0x1 - ldrb r0, [r2, #0x0] - str r1, [sp, #0x34] - ldrb r9, [r2, #0x1] - cmp r9, #0xff - bne _02091D60 - cmp r0, #0x0 - bne _02091D60 - add r0, r1, #0x1 - str r0, [sp, #0x34] - ldrb r0, [r1, #0x0] - b _02091D30 -_02091D1C: - add r9, r9, #0x100 - ldr r0, [sp, #0x34] - add r0, r0, #0x2 - str r0, [sp, #0x34] - ldrb r0, [r1, #0x1] -_02091D30: - ldr r1, [sp, #0x34] - ldrb r2, [r1, #0x0] - cmp r2, #0xff - bne _02091D48 - cmp r0, #0x0 - beq _02091D1C -_02091D48: - ldr r2, [sp, #0x34] - add r2, r2, #0x1 - str r2, [sp, #0x34] - ldrb r1, [r1, #0x0] - add r1, r1, #0x1 - add r9, r9, r1 -_02091D60: - cmp r0, #0x0 - bne _02091D70 - cmp r9, #0x0 - beq _02091E00 -_02091D70: - cmp r9, #0x0 - bne _02091D80 - cmp r0, #0x1 - beq _02091DBC -_02091D80: - mov r1, r0, asr #0x1 - str r10, [sp, #0x0] - add r0, sp, #0x38 - ldr r3, [r0, r1, lsl #0x2] - mov r0, r6 - mov r1, r8 - mov r2, r10 - bl FUN_020937E8 - mov r0, r8 - mov r1, r6 - mov r2, r5 - mov r3, r10 - str r7, [sp, #0x0] - bl FUN_02092E30 - b _02091DF8 -_02091DBC: - ldr r0, [sp, #0x14] - str r10, [sp, #0x0] - ldr r3, [r0, #0x0] - mov r0, r6 - mov r1, r8 - mov r2, r10 - bl FUN_020937E8 - ldr r0, [sp, #0x4] - str r7, [sp, #0x0] - ldr r0, [r0, #0x0] - mov r1, r6 - mov r2, r5 - mov r3, r10 - bl FUN_02092E30 - b _02091E44 -_02091DF8: - cmp r9, #0x0 - bne _02091C58 -_02091E00: - ldr r0, [sp, #0x24] - mov r2, r10 - cmp r10, r0 - bge _02091E28 - mov r1, #0x0 -_02091E14: - ldr r0, [sp, #0x24] - str r1, [r8, r2, lsl #0x2] - add r2, r2, #0x1 - cmp r2, r0 - blt _02091E14 -_02091E28: - ldr r0, [sp, #0x4] - str r7, [sp, #0x0] - ldr r0, [r0, #0x0] - mov r1, r8 - mov r2, r5 - mov r3, r10 - bl FUN_02092E30 -_02091E44: - ldr r0, [sp, #0xa0] - ldr r0, [r0, #0x108] - ands r0, r0, #0x4000 - bne _02091E6C - ldr r0, [sp, #0x4] - mov r1, r0 - str r10, [r1, #0x4] - bl FUN_02095040 - mov r0, #0x1 - str r0, [sp, #0x8] -_02091E6C: - ldr r0, [sp, #0x1c] - cmp r0, #0x0 - beq _02091E94 - ldr r3, [r0, #0x0] - mov r1, #0xff - mvn r2, #0x0 - blx r3 - cmp r0, #0x0 - movne r0, #0x0 - strne r0, [sp, #0x8] -_02091E94: - ldr r0, [sp, #0xa4] - cmp r0, #0x0 - bne _02091EB0 - ldr r0, [sp, #0x18] - cmp r0, #0x0 - beq _02091EB0 - bl FUN_020927E4 -_02091EB0: - ldr r2, [sp, #0xc] - ldr r1, [sp, #0xa0] - ldr r0, [sp, #0x8] - str r2, [r1, #0x0] - add sp, sp, #0x7c - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_02091ECC -FUN_02091ECC: ; 0x02091ECC - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x18c - mov r10, r0 - mov r0, #0x0 - str r0, [sp, #0x8] - mov r5, r1 - ldr r1, [sp, #0x8] - mov r0, r2 - str r2, [sp, #0x4] - mov r4, r3 - str r1, [sp, #0xc] - ldr r9, [sp, #0x1b0] - bl FUN_02095188 - ldr r1, [r5, #0x4] - mov r8, r0 - cmp r1, #0x0 - beq _02091F28 - cmp r1, #0x1 - bne _02091F44 - ldr r0, [r5, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02091F44 -_02091F28: - mov r0, r10 - mov r1, #0x0 - bl FUN_02094D7C - add sp, sp, #0x18c - mov r0, #0x1 - ldmia sp!, {r4-r11,lr} - bx lr -_02091F44: - ldr r0, [sp, #0x4] - ldr r1, [r0, #0x4] - cmp r1, #0x0 - beq _02091F6C - cmp r1, #0x1 - bne _02091F88 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02091F88 -_02091F6C: - mov r0, r10 - mov r1, #0x1 - bl FUN_02094D7C - add sp, sp, #0x18c - mov r0, #0x1 - ldmia sp!, {r4-r11,lr} - bx lr -_02091F88: - cmp r1, #0x1 - bne _02091FC0 - ldr r0, [sp, #0x4] - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x1 - bne _02091FC0 - mov r0, r10 - mov r1, r5 - bl FUN_02094E24 - add sp, sp, #0x18c - mov r0, #0x1 - ldmia sp!, {r4-r11,lr} - bx lr -_02091FC0: - add r0, sp, #0x18 - bl FUN_020927BC - add r0, sp, #0x18 - mov r1, r4 - mov r2, r9 - bl FUN_02092744 -_02091FD8: ; 0x02091FD8 - cmp r0, #0x0 - ble _0209220C - add r0, sp, #0x4c - bl FUN_0209502C - ldr r2, [r9, #0x0] - add r1, r9, #0x4 - mov r0, #0x14 - mla r6, r2, r0, r1 - add r1, r2, #0x1 - str r1, [r9, #0x0] - mov r2, r4 - mov r4, #0x1 - add r0, sp, #0x4c - mov r1, r5 - mov r3, r9 - str r4, [sp, #0xc] - bl FUN_02093214 -_0209201C: ; 0x0209201C - cmp r0, #0x0 - beq _0209220C - add r1, sp, #0x4c - add r3, sp, #0x18 - mov r0, r6 - mov r2, r1 - str r9, [sp, #0x0] - bl FUN_02092698 -_0209203C: ; 0x0209203C - cmp r0, #0x0 - beq _0209220C - cmp r8, #0x11 - movle r11, r4 - ble _02092068 - cmp r8, #0x100 - movge r11, #0x5 - bge _02092068 - cmp r8, #0x80 - movge r11, #0x4 - movlt r11, #0x3 -_02092068: - sub r0, r11, #0x1 - mov r4, #0x1 - mov r7, r4, lsl r0 - cmp r7, #0x1 - ble _020920C4 - add r5, sp, #0x60 -_02092080: - mov r0, r5 - bl FUN_0209502C - sub r3, r4, #0x1 - mov r2, #0x14 - add r1, sp, #0x4c - mla r1, r3, r2, r1 - mov r0, r5 - mov r2, r6 - add r3, sp, #0x18 - str r9, [sp, #0x0] - bl FUN_02092698 -_020920AC: ; 0x020920AC - cmp r0, #0x0 - beq _0209220C - add r4, r4, #0x1 - cmp r4, r7 - add r5, r5, #0x14 - blt _02092080 -_020920C4: - mov r5, #0x1 - mov r0, r10 - mov r1, r5 - str r4, [sp, #0xc] - sub r8, r8, #0x1 - bl FUN_02094D7C -_020920DC: ; 0x020920DC - cmp r0, #0x0 - beq _0209220C - mov r0, r5 - str r0, [sp, #0x10] - mov r0, #0x0 - str r0, [sp, #0x14] -_020920F4: - ldr r0, [sp, #0x4] - mov r1, r8 - bl FUN_02094A8C -_02092100: ; 0x02092100 - cmp r0, #0x0 - bne _02092140 - cmp r5, #0x0 - bne _02092130 - mov r0, r10 - mov r1, r10 - mov r2, r10 - add r3, sp, #0x18 - str r9, [sp, #0x0] - bl FUN_02092698 -_02092128: ; 0x02092128 - cmp r0, #0x0 - beq _0209220C -_02092130: - cmp r8, #0x0 - beq _02092204 - sub r8, r8, #0x1 - b _020920F4 -_02092140: - ldr r6, [sp, #0x10] - ldr r7, [sp, #0x14] - cmp r11, #0x1 - mov r4, r6 - ble _02092184 -_02092154: - subs r1, r8, r4 - bmi _02092184 - ldr r0, [sp, #0x4] - bl FUN_02094A8C -_02092164: ; 0x02092164 - cmp r0, #0x0 - subne r0, r4, r7 - movne r0, r6, lsl r0 - movne r7, r4 - add r4, r4, #0x1 - orrne r6, r0, #0x1 - cmp r4, r11 - blt _02092154 -_02092184: - cmp r5, #0x0 - add r5, r7, #0x1 - bne _020921C8 - cmp r5, #0x0 - ldr r4, [sp, #0x14] - ble _020921C8 -_0209219C: - mov r0, r10 - mov r1, r10 - mov r2, r10 - add r3, sp, #0x18 - str r9, [sp, #0x0] - bl FUN_02092698 -_020921B4: ; 0x020921B4 - cmp r0, #0x0 - beq _0209220C - add r4, r4, #0x1 - cmp r4, r5 - blt _0209219C -_020921C8: - mov r3, r6, asr #0x1 - mov r1, #0x14 - add r0, sp, #0x4c - mla r2, r3, r1, r0 - mov r0, r10 - mov r1, r10 - add r3, sp, #0x18 - str r9, [sp, #0x0] - bl FUN_02092698 -_020921EC: ; 0x020921EC - cmp r0, #0x0 - beq _0209220C - add r0, r7, #0x1 - ldr r5, [sp, #0x14] - subs r8, r8, r0 - bpl _020920F4 -_02092204: - mov r0, #0x1 - str r0, [sp, #0x8] -_0209220C: - ldr r0, [sp, #0xc] - ldr r1, [r9, #0x0] - cmp r0, #0x0 - sub r0, r1, #0x1 - str r0, [r9, #0x0] - mov r4, #0x0 - ble _02092248 - add r5, sp, #0x4c -_0209222C: - mov r0, r5 - bl FUN_02095164 - ldr r0, [sp, #0xc] - add r4, r4, #0x1 - cmp r4, r0 - add r5, r5, #0x14 - blt _0209222C -_02092248: - add r0, sp, #0x18 - bl FUN_02092788 - ldr r0, [sp, #0x8] - add sp, sp, #0x18c - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_02092260 -FUN_02092260: ; 0x02092260 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - movs r8, r2 - mov r10, r0 - mov r9, r1 - mov r11, #0x0 - mov r5, #0x2 - addeq sp, sp, #0x4 - mvneq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - mov r0, r8 - bl FUN_020951BC - cmp r0, #0x20 - beq _020922B4 - mov r1, #0x1 - cmp r10, r1, lsl r0 - addhi sp, sp, #0x4 - movhi r0, r11 - ldmhiia sp!, {r4-r11,lr} - bxhi lr -_020922B4: - cmp r10, r8 - rsb r2, r0, #0x20 - subcs r10, r10, r8 - cmp r2, #0x0 - movne r1, r10, lsl r2 - rsbne r0, r2, #0x20 - orrne r10, r1, r9, lsr r0 - movne r8, r8, lsl r2 - ldr r4, _0209239C ; =0x0000FFFF - movne r9, r9, lsl r2 - and r7, r4, r8, lsr #0x10 - and r6, r8, r4 -_020922E4: - mov r0, r10, lsr #0x10 - cmp r0, r7 - moveq r0, r4 - beq _02092300 - mov r0, r10 - mov r1, r7 - bl _u32_div_f -_02092300: - mul r12, r0, r7 - mul r3, r0, r6 - and r2, r4, r9, lsr #0x10 -_0209230C: - mov lr, #0x10000 - sub r1, r10, r12 - rsb lr, lr, #0x0 - ands lr, r1, lr - bne _02092338 - add r1, r2, r1, lsl #0x10 - cmp r3, r1 - subhi r12, r12, r7 - subhi r3, r3, r6 - subhi r0, r0, #0x1 - bhi _0209230C -_02092338: - mul r2, r0, r6 - and r1, r2, r4 - mul r3, r0, r7 - mov r1, r1, lsl #0x10 - cmp r9, r1 - add r2, r3, r2, lsr #0x10 - addcc r2, r2, #0x1 - cmp r10, r2 - addcc r10, r10, r8 - sub r9, r9, r1 - subcc r0, r0, #0x1 - sub r1, r10, r2 - subs r5, r5, #0x1 - beq _0209238C - and r2, r0, r4 - mov r1, r1, lsl #0x10 - and r0, r9, r4 - orr r10, r1, r9, lsr #0x10 - mov r11, r2, lsl #0x10 - mov r9, r0, lsl #0x10 - b _020922E4 -_0209238C: - orr r0, r11, r0 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_0209239C: .word 0x0000FFFF - - arm_func_start FUN_020923A0 -FUN_020923A0: ; 0x020923A0 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x18 - mov r8, r0 - add r0, sp, #0x4 - mov r7, r1 - mov r6, r2 - mov r5, r3 - mvn r4, #0x0 - bl FUN_0209502C - add r0, sp, #0x4 - mov r1, #0x0 - bl FUN_02094D7C - add r0, sp, #0x4 - mov r1, r6 - bl FUN_02094AFC -_020923DC: ; 0x020923DC - cmp r0, #0x0 - beq _02092404 - add r2, sp, #0x4 - mov r0, r8 - mov r3, r7 - mov r1, #0x0 - str r5, [sp, #0x0] - bl FUN_02093248 -_020923FC: ; 0x020923FC - cmp r0, #0x0 - movne r4, r6 -_02092404: - add r0, sp, #0x4 - bl FUN_0209510C - mov r0, r4 - add sp, sp, #0x18 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_0209241C -FUN_0209241C: ; 0x0209241C - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - ldr r6, [sp, #0x30] - mov r9, r1 - ldr r11, [r6, #0x0] - movs r10, r0 - add r0, r11, #0x1 - str r0, [r6, #0x0] - ldr r7, [r6, #0x0] - add r4, r6, #0x4 - mov r0, #0x14 - mla r5, r11, r0, r4 - add r12, r7, #0x1 - mov r1, #0x0 - str r5, [sp, #0x4] - mla r5, r7, r0, r4 - str r12, [r6, #0x0] - str r1, [sp, #0x0] - ldreq r1, [r6, #0x0] - mov r8, r2 - mlaeq r10, r1, r0, r4 - addeq r0, r1, #0x1 - streq r0, [r6, #0x0] - mov r7, r3 - cmp r9, #0x0 - bne _0209249C - ldr r2, [r6, #0x0] - add r1, r6, #0x4 - mov r0, #0x14 - mla r9, r2, r0, r1 - add r0, r2, #0x1 - str r0, [r6, #0x0] -_0209249C: - mov r0, r8 - mov r1, r7 - bl FUN_02094B98 -_020924A8: ; 0x020924A8 - cmp r0, #0x0 - bge _020924DC - mov r0, r10 - mov r1, #0x0 - bl FUN_02094D7C - mov r0, r9 - mov r1, r8 - bl FUN_02094E24 - add sp, sp, #0xc - str r11, [r6, #0x0] - mov r0, #0x1 - ldmia sp!, {r4-r11,lr} - bx lr -_020924DC: - mov r0, r8 - bl FUN_02095188 - ldr r1, [r7, #0x28] - mov r2, r0 - mov r0, r1, lsl #0x1 - cmp r0, r2 - movgt r2, r0 - suble r0, r2, r0 - movgt r4, #0x0 - addle r0, r0, r0, lsr #0x1f - movle r4, r0, asr #0x1 - ldr r1, [r7, #0x2c] - add r0, r2, r2, lsr #0x1f - mov r0, r0, asr #0x1 - cmp r2, r1 - str r0, [sp, #0x8] - beq _02092534 - mov r1, r7 - mov r3, r6 - add r0, r7, #0x14 - bl FUN_020923A0 - str r0, [r7, #0x2c] -_02092534: - ldr r2, [sp, #0x8] - ldr r0, [sp, #0x4] - mov r1, r8 - sub r2, r2, r4 - bl FUN_02094134 -_02092548: ; 0x02092548 - cmp r0, #0x0 - beq _02092684 - ldr r1, [sp, #0x4] - mov r0, r5 - mov r3, r6 - add r2, r7, #0x14 - bl FUN_0209390C -_02092564: ; 0x02092564 - cmp r0, #0x0 - beq _02092684 - ldr r2, [sp, #0x8] - mov r0, r10 - mov r1, r5 - add r2, r2, r4 - bl FUN_02094134 -_02092580: ; 0x02092580 - cmp r0, #0x0 - beq _02092684 - mov r4, #0x0 - mov r0, r5 - mov r1, r7 - mov r2, r10 - mov r3, r6 - str r4, [r10, #0xc] - bl FUN_0209390C -_020925A4: ; 0x020925A4 - cmp r0, #0x0 - beq _02092684 - mov r0, r9 - mov r1, r8 - mov r2, r5 - bl FUN_02093B50 -_020925BC: ; 0x020925BC - cmp r0, #0x0 - beq _02092684 - mov r5, r4 - mov r0, r9 - mov r1, r7 - str r5, [r9, #0xc] - bl FUN_02094B98 -_020925D8: ; 0x020925D8 - cmp r0, #0x0 - blt _02092630 - mov r4, #0x1 -_020925E4: - cmp r5, #0x2 - add r5, r5, #0x1 - bgt _02092684 - mov r0, r9 - mov r1, r9 - mov r2, r7 - bl FUN_02093B50 -_02092600: ; 0x02092600 - cmp r0, #0x0 - beq _02092684 - mov r0, r10 - mov r1, r4 - bl FUN_0209400C -_02092614: ; 0x02092614 - cmp r0, #0x0 - beq _02092684 - mov r0, r9 - mov r1, r7 - bl FUN_02094B98 -_02092628: ; 0x02092628 - cmp r0, #0x0 - bge _020925E4 -_02092630: - ldr r0, [r9, #0x4] - mov r1, #0x1 - cmp r0, #0x0 - beq _0209265C - cmp r0, #0x1 - bne _02092658 - ldr r0, [r9, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0209265C -_02092658: - mov r1, #0x0 -_0209265C: - cmp r1, #0x0 - movne r0, #0x0 - ldreq r0, [r8, #0xc] - str r0, [r9, #0xc] - mov r0, #0x1 - ldr r2, [r8, #0xc] - ldr r1, [r7, #0xc] - str r0, [sp, #0x0] - eor r0, r2, r1 - str r0, [r10, #0xc] -_02092684: - ldr r0, [sp, #0x0] - str r11, [r6, #0x0] - add sp, sp, #0xc - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_02092698 -FUN_02092698: - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - ldr r4, [sp, #0x20] - mov r12, #0x14 - ldr r5, [r4, #0x0] - add lr, r4, #0x4 - mla r6, r5, r12, lr - add r12, r5, #0x1 - mov r8, r0 - mov r7, r3 - str r12, [r4, #0x0] - cmp r2, #0x0 - mov r5, #0x0 - beq _02092708 - cmp r1, r2 - bne _020926F0 - mov r0, r6 - mov r2, r4 - bl FUN_0209305C -_020926E4: ; 0x020926E4 - cmp r0, #0x0 - bne _0209270C - b _02092728 -_020926F0: - mov r0, r6 - mov r3, r4 - bl FUN_0209390C -_020926FC: ; 0x020926FC - cmp r0, #0x0 - bne _0209270C - b _02092728 -_02092708: - mov r6, r1 -_0209270C: - mov r1, r8 - mov r2, r6 - mov r3, r7 - mov r0, #0x0 - str r4, [sp, #0x0] - bl FUN_0209241C - mov r5, #0x1 -_02092728: - ldr r1, [r4, #0x0] - mov r0, r5 - sub r1, r1, #0x1 - str r1, [r4, #0x0] - add sp, sp, #0x8 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_02092744 -FUN_02092744: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - bl FUN_02094E24 - add r0, r5, #0x14 - mov r1, #0x0 - bl FUN_02094D7C - mov r0, r4 - bl FUN_02095188 - str r0, [r5, #0x28] - mov r0, #0x0 - str r0, [r5, #0x2c] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_02092788 -FUN_02092788: ; 0x02092788 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_0209510C - add r0, r4, #0x14 - bl FUN_0209510C - ldr r0, [r4, #0x30] - ands r0, r0, #0x1 - ldmeqia sp!, {r4,lr} - bxeq lr - mov r0, r4 - bl FUN_0209105C - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020927BC -FUN_020927BC: ; 0x020927BC - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_0209502C - add r0, r4, #0x14 - bl FUN_0209502C -_020927D0: ; 0x020927D0 - mov r0, #0x0 - str r0, [r4, #0x28] - str r0, [r4, #0x30] - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020927E4 -FUN_020927E4: ; 0x020927E4 - stmdb sp!, {r4,lr} - mov r4, r0 - add r0, r4, #0xc - bl FUN_0209510C - add r0, r4, #0x20 - bl FUN_0209510C - add r0, r4, #0x34 - bl FUN_0209510C - ldr r0, [r4, #0x4c] - ands r0, r0, #0x1 - ldmeqia sp!, {r4,lr} - bxeq lr - mov r0, r4 - bl FUN_0209105C - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_02092824 -FUN_02092824: ; 0x02092824 - stmdb sp!, {r4,lr} - mov r4, r0 - mov r1, #0x0 - str r1, [r4, #0x0] - add r0, r4, #0xc - str r1, [r4, #0x8] - bl FUN_0209502C - add r0, r4, #0x20 - bl FUN_0209502C - add r0, r4, #0x34 - bl FUN_0209502C -_02092850: ; 0x02092850 - mov r0, #0x0 - str r0, [r4, #0x4c] - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_02092860 -FUN_02092860: ; 0x02092860 - stmdb sp!, {r4,lr} - mov r0, #0x50 - bl FUN_020910A4 - movs r4, r0 - moveq r0, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - bl FUN_02092824 - mov r1, #0x1 - mov r0, r4 - str r1, [r4, #0x4c] - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_02092894 -FUN_02092894: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x14 - mov r6, r1 - ldr r3, [r6, #0x4] - mov r7, r0 - cmp r3, #0x0 - mov r5, r2 - addeq sp, sp, #0x14 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - add r0, r7, #0x20 - add r4, r7, #0xc - bl FUN_02094E24 -_020928CC: ; 0x020928CC - cmp r0, #0x0 - addeq sp, sp, #0x14 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - add r0, sp, #0x0 - bl FUN_0209502C - mov r1, #0x1 - mov r0, r6 - str r1, [r7, #0x0] - bl FUN_02095188 - add r1, r0, #0x1f - mov r0, r1, asr #0x4 - add r0, r1, r0, lsr #0x1b - mov r2, r0, asr #0x5 - mov r0, r4 - mov r1, #0x0 - str r2, [r7, #0x8] - bl FUN_02094D7C -_02092918: ; 0x02092918 - cmp r0, #0x0 - addeq sp, sp, #0x14 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - mov r0, r4 - mov r1, #0x20 - bl FUN_02094AFC -_02092938: ; 0x02092938 - cmp r0, #0x0 - beq _02092A38 - ldr r0, [r6, #0x0] - ldr r4, [r0, #0x0] - mov r0, r4 - bl FUN_02092D9C - mov r1, r0 - add r0, sp, #0x0 - bl FUN_02094D7C -_0209295C: ; 0x0209295C - cmp r0, #0x0 - beq _02092A38 - add r0, sp, #0x0 - mov r2, #0x20 - mov r1, r0 - bl FUN_02094250 -_02092974: ; 0x02092974 - cmp r0, #0x0 - beq _02092A38 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - beq _020929B0 - cmp r0, #0x1 - bne _020929A0 - ldr r0, [sp, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020929B0 -_020929A0: - add r0, sp, #0x0 - mov r1, #0x1 - bl FUN_02093EAC - b _020929C4 -_020929B0: - add r0, sp, #0x0 - mvn r1, #0x0 - bl FUN_02094D7C -_020929BC: ; 0x020929BC - cmp r0, #0x0 - beq _02092A38 -_020929C4: - ldr r2, [sp, #0x4] - cmp r2, #0x1 - ldrge r0, [sp, #0x0] - ldrge r1, [r0, #0x0] - movlt r1, #0x0 - cmp r2, #0x2 - ldrge r0, [sp, #0x0] - mov r2, r4 - ldrge r0, [r0, #0x4] - movlt r0, #0x0 - bl FUN_02092260 - str r0, [r7, #0x48] - add r0, r7, #0xc - mov r1, #0x0 - bl FUN_02094D7C - ldr r1, [r7, #0x8] - add r0, r7, #0xc - mov r1, r1, lsl #0x6 - bl FUN_02094AFC -_02092A10: ; 0x02092A10 - cmp r0, #0x0 - beq _02092A38 - add r0, r7, #0xc - mov r1, r0 - mov r3, r5 - add r2, r7, #0x20 - bl FUN_02093214 - ldr r1, [r7, #0x8] - add r0, r7, #0xc - bl FUN_0209508C -_02092A38: - add r0, sp, #0x0 - bl FUN_0209510C - mov r0, #0x1 - add sp, sp, #0x14 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_02092A50 -FUN_02092A50: ; 0x02092A50 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r4, r2 - mov r7, r1 - cmp r4, #0x6 - mov r5, r0 - movgt r4, #0x6 - mov r1, #0x1 - mov r2, r1, lsl r4 - ldr r0, [r7, #0x4] - sub r2, r2, #0x1 - add r0, r4, r0, lsl #0x5 - ldr r3, _02092C24 ; =0x02106170 - str r2, [sp, #0x0] - ldr r2, [r3, r4, lsl #0x2] - mov r1, r4 - sub r0, r0, #0x1 - str r2, [sp, #0x4] - mov r6, #0x0 - bl _s32_div_f - mov r12, #0x0 - mov r0, r0, lsl #0x1 - add r0, r0, #0x2 - mov r8, r6 - add r1, r5, r0 - strb r8, [r5, r0] - strb r8, [r1, #-0x1] - ldr r0, [r7, #0x0] - ldr r2, [r7, #0x4] - ldr r7, [r0, #0x0] - add lr, r0, #0x4 - cmp r2, #0x1 - sub r9, r1, #0x2 - ldrgt r8, [lr], #0x4 - mov r10, r7 - mov r0, r12 - str r12, [sp, #0x8] - mov r1, #0xff - mov r11, r12 -_02092AEC: - ldr r3, [sp, #0x0] - and r3, r10, r3 - ldr r10, [sp, #0x4] - ldrb r10, [r10, r3] - cmp r10, #0x0 - beq _02092B4C - add r12, r12, r10 - add r6, r6, r10 - cmp r6, #0x20 - blo _02092B34 - cmp r2, #0x1 - ble _02092B4C - sub r2, r2, #0x1 - mov r7, r8 - cmp r2, #0x1 - movle r8, r11 - ldrgt r8, [lr], #0x4 - sub r6, r6, #0x20 -_02092B34: - cmp r6, #0x0 - moveq r10, r7 - movne r10, r7, lsr r6 - rsbne r3, r6, #0x20 - orrne r10, r10, r8, lsl r3 - b _02092AEC -_02092B4C: - cmp r3, #0x0 - beq _02092BD0 - strb r12, [r9, #0x0] - strb r3, [r9, #-0x1] - cmp r12, #0x100 - sub r9, r9, #0x2 - blo _02092B88 - cmp r12, #0x100 - blo _02092B88 -_02092B70: - strb r1, [r9, #0x0] - sub r12, r12, #0x100 - strb r0, [r9, #-0x1] - sub r9, r9, #0x2 - cmp r12, #0x100 - bhs _02092B70 -_02092B88: - mov r12, r4 - add r6, r6, r4 - cmp r6, #0x20 - blo _02092BB8 - cmp r2, #0x1 - ble _02092BD0 - sub r2, r2, #0x1 - mov r7, r8 - cmp r2, #0x1 - ldrle r8, [sp, #0x8] - sub r6, r6, #0x20 - ldrgt r8, [lr], #0x4 -_02092BB8: - cmp r6, #0x0 - moveq r10, r7 - movne r10, r7, lsr r6 - rsbne r3, r6, #0x20 - orrne r10, r10, r8, lsl r3 - b _02092AEC -_02092BD0: - add r9, r9, #0x1 - mov r0, #0x2 - b _02092BF4 -_02092BDC: - strb r2, [r5, #0x0] - ldrb r1, [r9, #0x1] - add r9, r9, #0x2 - add r0, r0, #0x2 - strb r1, [r5, #0x1] - add r5, r5, #0x2 -_02092BF4: - ldrb r2, [r9, #0x0] - cmp r2, #0x0 - bne _02092BDC - ldrb r1, [r9, #0x1] - cmp r1, #0x0 - bne _02092BDC - mov r1, #0x0 - strb r1, [r5, #0x0] - strb r1, [r5, #0x1] - add sp, sp, #0xc - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_02092C24: .word 0x02106170 - - arm_func_start FUN_02092C28 -FUN_02092C28: - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - ldr r5, [r3], #0x4 - mov r2, #0x14 - mla r4, r5, r2, r3 - mov r9, r0 - ldr r0, [r9, #0x4] - mov r8, r1 - cmp r0, #0x0 - mov r5, #0x0 - mov r1, r0, lsl #0x5 - addeq sp, sp, #0x4 - moveq r0, r5 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - cmp r0, #0x1 - bne _02092CC8 - cmp r0, #0x1 - bne _02092C8C - ldr r2, [r9, #0x0] - ldr r1, _02092D8C ; =0x00010001 - ldr r2, [r2, #0x0] - cmp r2, r1 - ldreq r5, _02092D90 ; =0x020FF500 - beq _02092CB8 -_02092C8C: - ldr r1, [r9, #0x0] - ldr r1, [r1, #0x0] - cmp r1, #0x11 - bne _02092CA8 - cmp r0, #0x1 - ldreq r5, _02092D94 ; =0x020FF518 - beq _02092CB8 -_02092CA8: - cmp r1, #0x3 - bne _02092CB8 - cmp r0, #0x1 - ldreq r5, _02092D98 ; =0x020FF50C -_02092CB8: - mov r7, #0x1 - mov r6, r7 - mov r1, #0x20 - b _02092CF8 -_02092CC8: - cmp r1, #0x100 - movge r7, #0x5 - movge r6, #0x10 - movge r1, #0x7 - bge _02092CF8 - cmp r1, #0x80 - movge r6, #0x8 - movge r1, r6 - movge r7, #0x4 - movlt r7, #0x3 - movlt r6, #0x4 - movlt r1, #0xb -_02092CF8: - mul r1, r0, r1 - mov r0, r1, lsl #0x1 - add r1, r0, #0x7 - mov r0, r1, asr #0x1 - add r0, r1, r0, lsr #0x1e - cmp r5, #0x0 - mov r1, r0, asr #0x2 - bne _02092D74 - ldr r0, [r4, #0x8] - cmp r1, r0 - movle r0, r4 - ble _02092D30 - mov r0, r4 - bl FUN_02094EBC -_02092D30: - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - ldr r5, [r4, #0x0] - mov r1, r9 - mov r2, r7 - add r0, r5, #0x4 - bl FUN_02092A50 - add r1, r0, #0x2 - mov r0, r1, asr #0x8 - strb r0, [r5, #0x0] - strb r1, [r5, #0x1] - strb r7, [r5, #0x2] - strb r6, [r5, #0x3] - b _02092D78 -_02092D74: - mov r1, #0x8 -_02092D78: - str r5, [r8, #0x0] - add r0, r1, #0x2 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - .balign 4 -_02092D8C: .word 0x00010001 -_02092D90: .word 0x020FF500 -_02092D94: .word 0x020FF518 -_02092D98: .word 0x020FF50C - - arm_func_start FUN_02092D9C -FUN_02092D9C: ; 0x02092D9C - stmdb sp!, {r4-r10,lr} - mov r10, r0 - mov r1, r10 - rsb r0, r10, #0x0 - bl _u32_div_f - movs r8, r1 - mov r7, r10 - mov r5, #0x0 - mov r6, #0x1 - mvn r4, #0x0 - beq _02092E04 -_02092DC8: - mov r0, r7 - mov r1, r8 - bl _u32_div_f - mov r9, r1 - mov r0, r7 - mov r1, r8 - bl _u32_div_f - mla r1, r0, r6, r5 - mov r5, r6 - mov r7, r8 - mov r6, r1 - mov r8, r9 - cmp r9, #0x0 - rsb r4, r4, #0x0 - bne _02092DC8 -_02092E04: - cmp r4, #0x0 - sublt r5, r10, r5 - cmp r7, #0x1 - movne r1, #0x0 - bne _02092E24 - mov r0, r5 - mov r1, r10 - bl _u32_div_f -_02092E24: - mov r0, r1 - ldmia sp!, {r4-r10,lr} - bx lr - - arm_func_start FUN_02092E30 -FUN_02092E30: ; 0x02092E30 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r7, r3 - mov r9, r1 - mov r6, #0x0 - mov r10, r0 - mov r8, r2 - mov r4, r6 - cmp r7, #0x0 - add r5, r9, r7, lsl #0x2 - ldr r11, [sp, #0x30] - ble _02092EC0 - mov r0, #0x1 - str r6, [sp, #0x4] - str r0, [sp, #0x0] -_02092E6C: - ldr r1, [r9, #0x0] - mov r0, r9 - mul r3, r1, r11 - mov r1, r8 - mov r2, r7 - bl FUN_020948AC - add r1, r0, r6 - ldr r0, [r5, #0x0] - cmp r1, r6 - ldrcc r6, [sp, #0x0] - add r0, r0, r1 - str r0, [r5, #0x0] - ldr r0, [r5, #0x0] - ldrcs r6, [sp, #0x4] - cmp r0, r1 - add r4, r4, #0x1 - addcc r6, r6, #0x1 - cmp r4, r7 - add r9, r9, #0x4 - add r5, r5, #0x4 - blt _02092E6C -_02092EC0: - cmp r6, #0x0 - sub r2, r7, #0x1 - bne _02092F14 - ldr r1, [r9, r2, lsl #0x2] - ldr r0, [r8, r2, lsl #0x2] - cmp r1, r0 - bne _02092F00 - cmp r2, #0x0 - ble _02092F00 -_02092EE4: - ldr r1, [r9, r2, lsl #0x2] - ldr r0, [r8, r2, lsl #0x2] - cmp r1, r0 - bne _02092F00 - sub r2, r2, #0x1 - cmp r2, #0x0 - bgt _02092EE4 -_02092F00: - ldr r1, [r9, r2, lsl #0x2] - ldr r0, [r8, r2, lsl #0x2] - cmp r1, r0 - movcs r6, #0x1 - movcc r6, #0x0 -_02092F14: - cmp r6, #0x0 - beq _02092F3C - mov r0, r10 - mov r1, r9 - mov r2, r8 - mov r3, r7 - bl FUN_02094354 - add sp, sp, #0xc - ldmia sp!, {r4-r11,lr} - bx lr -_02092F3C: - cmp r7, #0x0 - addle sp, sp, #0xc - mov r1, #0x0 - ldmleia sp!, {r4-r11,lr} - bxle lr -_02092F50: - ldr r0, [r9, r1, lsl #0x2] - str r0, [r10, r1, lsl #0x2] - add r1, r1, #0x1 - cmp r1, r7 - blt _02092F50 - add sp, sp, #0xc - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_02092F70 -FUN_02092F70: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r11, r2 - mov r6, r11, lsl #0x1 - mov r10, r0 - mov r7, r11 - mov r9, r1 - sub r7, r7, #0x1 - sub r2, r6, #0x1 - mov r0, #0x0 - str r0, [r10, r2, lsl #0x2] - ldr r0, [r10, r2, lsl #0x2] - str r3, [sp, #0x0] - mov r5, r9 - str r0, [r10, #0x0] - cmp r7, #0x0 - add r4, r10, #0x4 - ble _02092FD8 - add r5, r5, #0x4 - ldr r3, [r9, #0x0] - mov r0, r4 - mov r1, r5 - mov r2, r7 - bl FUN_0209470C - str r0, [r4, r7, lsl #0x2] - add r4, r4, #0x8 -_02092FD8: - sub r8, r11, #0x2 - cmp r8, #0x0 - ble _02093018 -_02092FE4: - mov r0, r5 - sub r7, r7, #0x1 - add r5, r5, #0x4 - ldr r3, [r0, #0x0] - mov r0, r4 - mov r1, r5 - mov r2, r7 - bl FUN_020948AC - sub r8, r8, #0x1 - str r0, [r4, r7, lsl #0x2] - cmp r8, #0x0 - add r4, r4, #0x8 - bgt _02092FE4 -_02093018: - mov r0, r10 - mov r1, r10 - mov r2, r10 - mov r3, r6 - bl FUN_02094468 -_0209302C: ; 0x0209302C - ldr r0, [sp, #0x0] - mov r1, r9 - mov r2, r11 - bl FUN_020945B8 - ldr r2, [sp, #0x0] - mov r0, r10 - mov r1, r10 - mov r3, r6 - bl FUN_02094468 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_0209305C -FUN_0209305C: - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x64 - ldr r5, [r2, #0x0] - mov r9, r0 - mov r8, r1 - cmp r8, r9 - add r3, r2, #0x4 - mov r2, #0x14 - movne r7, r9 - addeq r0, r5, #0x1 - mla r4, r5, r2, r3 - mlaeq r7, r0, r2, r3 - ldr r5, [r8, #0x4] - cmp r5, #0x0 - movle r0, #0x0 - strle r0, [r9, #0x4] - addle sp, sp, #0x64 - movle r0, #0x1 - ldmleia sp!, {r4-r9,lr} - bxle lr - ldr r0, [r7, #0x8] - mov r6, r5, lsl #0x1 - cmp r6, r0 - movle r0, r7 - ble _020930CC - mov r0, r7 - mov r1, r6 - bl FUN_02094EBC -_020930CC: - cmp r0, #0x0 - addeq sp, sp, #0x64 - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - str r6, [r7, #0x4] - mov r0, #0x0 - str r0, [r7, #0xc] - cmp r5, #0x4 - bne _0209310C - ldr r0, [r7, #0x0] - ldr r1, [r8, #0x0] - add r3, sp, #0x0 - mov r2, #0x4 - bl FUN_02092F70 - b _02093170 -_0209310C: - cmp r5, #0x8 - bne _0209312C - ldr r0, [r7, #0x0] - ldr r1, [r8, #0x0] - add r3, sp, #0x20 - mov r2, #0x8 - bl FUN_02092F70 - b _02093170 -_0209312C: - ldr r0, [r4, #0x8] - cmp r6, r0 - movle r0, r4 - ble _02093148 - mov r0, r4 - mov r1, r6 - bl FUN_02094EBC -_02093148: - cmp r0, #0x0 - addeq sp, sp, #0x64 - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - ldr r0, [r7, #0x0] - ldr r1, [r8, #0x0] - ldr r3, [r4, #0x0] - mov r2, r5 - bl FUN_02092F70 -_02093170: - cmp r6, #0x0 - ble _02093194 - ldr r1, [r7, #0x0] - sub r0, r6, #0x1 - ldr r0, [r1, r0, lsl #0x2] - cmp r0, #0x0 - ldreq r0, [r7, #0x4] - subeq r0, r0, #0x1 - streq r0, [r7, #0x4] -_02093194: - cmp r7, r9 - beq _020931A8 - mov r0, r9 - mov r1, r7 - bl FUN_02094E24 -_020931A8: - mov r0, #0x1 - add sp, sp, #0x64 - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start FUN_020931B8 -FUN_020931B8: - stmdb sp!, {lr} - sub sp, sp, #0xc - ldr r12, [r3, #0x4] - cmp r12, #0x0 - ble _020931FC - ldr r12, [r3, #0x0] - ldr r12, [r12, #0x0] - ands r12, r12, #0x1 - beq _020931FC - ldr lr, [sp, #0x10] - mov r12, #0x0 - str lr, [sp, #0x0] - str r12, [sp, #0x4] - bl FUN_020916C8 - add sp, sp, #0xc - ldmia sp!, {lr} - bx lr -_020931FC: - ldr r12, [sp, #0x10] - str r12, [sp, #0x0] - bl FUN_02091ECC - add sp, sp, #0xc - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_02093214 -FUN_02093214: - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov lr, r1 - mov r12, r2 - str r3, [sp, #0x0] - mov r1, r0 - mov r2, lr - mov r3, r12 - mov r0, #0x0 - bl FUN_02093248 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_02093248 -FUN_02093248: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4c - mov r6, r3 - ldr r3, [r6, #0x4] - mov r8, r0 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - cmp r3, #0x0 - ldr r4, [sp, #0x70] - beq _02093288 - cmp r3, #0x1 - bne _02093298 - ldr r0, [r6, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02093298 -_02093288: - add sp, sp, #0x4c - mov r0, #0x0 - ldmia sp!, {r4-r11,lr} - bx lr -_02093298: - ldr r0, [sp, #0x4] - mov r1, r6 - bl FUN_02094B98 -_020932A4: ; 0x020932A4 - cmp r0, #0x0 - bge _020932F8 - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _020932D4 - ldr r1, [sp, #0x4] - bl FUN_02094E24 -_020932C0: ; 0x020932C0 - cmp r0, #0x0 - addeq sp, sp, #0x4c - moveq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - bxeq lr -_020932D4: - cmp r8, #0x0 - beq _020932E8 - mov r0, r8 - mov r1, #0x0 - bl FUN_02094D7C -_020932E8: - add sp, sp, #0x4c - mov r0, #0x1 - ldmia sp!, {r4-r11,lr} - bx lr -_020932F8: - ldr r3, [r4, #0x0] - add r0, r4, #0x4 - mov r2, #0x14 - mla r1, r3, r2, r0 - mov r3, #0x0 - str r3, [r1, #0xc] - ldr r5, [r4, #0x0] - str r1, [sp, #0x14] - add r4, r5, #0x1 - mla r1, r4, r2, r0 - add r3, r5, #0x2 - str r1, [sp, #0x18] - mla r1, r3, r2, r0 - cmp r8, #0x0 - str r1, [sp, #0x1c] - addeq r1, r5, #0x3 - mlaeq r8, r1, r2, r0 - mov r0, r6 - bl FUN_02095188 - mov r1, r0, lsr #0x1f - rsb r0, r1, r0, lsl #0x1b - add r0, r1, r0, ror #0x1b - rsb r0, r0, #0x20 - str r0, [sp, #0x8] - ldr r0, [sp, #0x1c] - ldr r2, [sp, #0x8] - mov r1, r6 - bl FUN_02094250 -_02093368: ; 0x02093368 - cmp r0, #0x0 - addeq sp, sp, #0x4c - moveq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - ldr r2, [sp, #0x8] - ldr r0, [sp, #0x18] - ldr r1, [sp, #0x4] - ldr r3, [sp, #0x1c] - mov r4, #0x0 - add r2, r2, #0x20 - str r4, [r3, #0xc] - bl FUN_02094250 -_0209339C: ; 0x0209339C - cmp r0, #0x0 - addeq sp, sp, #0x4c - moveq r0, r4 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - ldr r0, [sp, #0x18] - mov r1, r4 - str r1, [r0, #0xc] - ldr r0, [sp, #0x1c] - ldr r0, [r0, #0x4] - str r0, [sp, #0x28] - ldr r0, [sp, #0x18] - ldr r1, [sp, #0x28] - ldr r4, [r0, #0x4] - add r0, sp, #0x38 - sub r1, r4, r1 - str r1, [sp, #0x10] - bl FUN_0209502C - ldr r0, [sp, #0x18] - ldr r2, [r0, #0x0] - ldr r0, [sp, #0x28] - sub r1, r0, #0x1 - ldr r0, [sp, #0x10] - add r0, r2, r0, lsl #0x2 - str r0, [sp, #0x38] - ldr r0, [sp, #0x28] - str r0, [sp, #0x3c] - ldr r0, [sp, #0x18] - ldr r2, [r0, #0x8] - ldr r0, [sp, #0x28] - cmp r0, #0x1 - add r0, r2, #0x1 - str r0, [sp, #0x40] - ldr r0, [sp, #0x1c] - moveq r5, #0x0 - ldr r2, [r0, #0x0] - ldr r0, [r2, r1, lsl #0x2] - str r0, [sp, #0x24] - ldrne r0, [sp, #0x28] - subne r0, r0, #0x2 - ldrne r5, [r2, r0, lsl #0x2] - ldr r0, [sp, #0x18] - ldr r2, [r8, #0x8] - ldr r1, [r0, #0x0] - sub r0, r4, #0x1 - add r7, r1, r0, lsl #0x2 - ldr r0, [sp, #0x10] - add r1, r0, #0x1 - cmp r1, r2 - movle r0, r8 - ble _02093470 - mov r0, r8 - bl FUN_02094EBC -_02093470: - cmp r0, #0x0 - beq _020937D4 - ldr r0, [sp, #0x4] - ldr r1, [r6, #0xc] - ldr r3, [r0, #0xc] - ldr r0, [sp, #0x10] - sub r2, r0, #0x1 - eor r0, r3, r1 - str r0, [r8, #0xc] - ldr r0, [sp, #0x10] - str r0, [r8, #0x4] - ldr r0, [sp, #0x28] - ldr r3, [r8, #0x0] - add r1, r0, #0x1 - add r0, r3, r2, lsl #0x2 - str r0, [sp, #0x20] - ldr r0, [sp, #0x14] - ldr r0, [r0, #0x8] - cmp r1, r0 - ldrle r0, [sp, #0x14] - ble _020934CC - ldr r0, [sp, #0x14] - bl FUN_02094EBC -_020934CC: - cmp r0, #0x0 - beq _020937D4 - ldr r1, [sp, #0x1c] - add r0, sp, #0x38 - bl FUN_02094B98 -_020934E0: ; 0x020934E0 - cmp r0, #0x0 - blt _02093520 - add r0, sp, #0x38 - ldr r2, [sp, #0x1c] - mov r1, r0 - bl FUN_02093B50 -_020934F8: ; 0x020934F8 - cmp r0, #0x0 - beq _020937D4 - ldr r0, [sp, #0x20] - mov r2, #0x1 - str r2, [r0, #0x0] - ldr r0, [r8, #0x4] - ldr r1, [r8, #0x0] - sub r0, r0, #0x1 - str r2, [r1, r0, lsl #0x2] - b _0209352C -_02093520: - ldr r0, [r8, #0x4] - sub r0, r0, #0x1 - str r0, [r8, #0x4] -_0209352C: - ldr r0, [sp, #0x10] - sub r1, r0, #0x1 - ldr r0, [sp, #0x20] - cmp r1, #0x0 - sub r0, r0, #0x4 - str r0, [sp, #0x20] - mov r0, #0x0 - str r0, [sp, #0xc] - ble _0209377C - ldr r8, _020937E4 ; =0x0000FFFF - cmp r1, #0x0 - and r0, r5, r8 - str r0, [sp, #0x2c] - and r0, r8, r5, lsr #0x10 - str r0, [sp, #0x30] - ldr r0, [sp, #0x24] - and r4, r0, r8 - ble _0209377C - and r9, r8, r0, lsr #0x10 - mvn r0, #0x0 - str r0, [sp, #0x34] -_02093580: - ldr r1, [sp, #0x38] - ldr r0, [sp, #0x3c] - sub r1, r1, #0x4 - add r0, r0, #0x1 - str r0, [sp, #0x3c] - str r1, [sp, #0x38] - ldr r11, [r7, #0x0] - ldr r0, [sp, #0x24] - ldr r5, [r7, #-0x4] - cmp r11, r0 - ldreq r6, [sp, #0x34] - beq _020935C4 - ldr r2, [sp, #0x24] - mov r0, r11 - mov r1, r5 - bl FUN_02092260 - mov r6, r0 -_020935C4: - ldr r0, [sp, #0x2c] - and r2, r6, r8 - mul r12, r0, r2 - ldr r0, [sp, #0x30] - and lr, r8, r6, lsr #0x10 - ldr r1, [sp, #0x30] - mul r0, r2, r0 - mul r3, r1, lr - ldr r1, [sp, #0x2c] - mul r10, r9, lr - mla r1, lr, r1, r0 - cmp r1, r0 - addcc r3, r3, #0x10000 - and r0, r8, r1, lsr #0x10 - add r3, r3, r0 - and r0, r1, r8 - add r12, r12, r0, lsl #0x10 - cmp r12, r0, lsl #0x10 - mul r0, r2, r9 - mul r1, r4, r2 - mla r2, lr, r4, r0 - addcc r3, r3, #0x1 - cmp r2, r0 - addcc r10, r10, #0x10000 - and r0, r8, r2, lsr #0x10 - add r10, r10, r0 - and r0, r2, r8 - add r1, r1, r0, lsl #0x10 - cmp r1, r0, lsl #0x10 - addcc r10, r10, #0x1 - sub r1, r5, r1 - cmp r1, r5 - addhi r10, r10, #0x1 - subs r0, r11, r10 - bne _02093674 - cmp r3, r1 - blo _02093674 - cmp r3, r1 - bne _0209366C - ldr r0, [r7, #-0x8] - cmp r12, r0 - bls _02093674 -_0209366C: - sub r6, r6, #0x1 - b _020935C4 -_02093674: - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x1c] - ldr r0, [r0, #0x0] - ldr r1, [r1, #0x0] - ldr r2, [sp, #0x28] - mov r3, r6 - bl FUN_0209470C - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x28] - ldr r3, [r1, #0x0] - ldr r1, [sp, #0x28] - str r0, [r3, r2, lsl #0x2] - add r1, r1, #0x1 - cmp r1, #0x0 - ble _020936D4 - ldr r0, [sp, #0x14] - ldr r2, [r0, #0x0] -_020936B8: - sub r0, r1, #0x1 - ldr r0, [r2, r0, lsl #0x2] - cmp r0, #0x0 - bne _020936D4 - sub r1, r1, #0x1 - cmp r1, #0x0 - bgt _020936B8 -_020936D4: - ldr r0, [sp, #0x14] - ldr r2, [sp, #0x14] - str r1, [r0, #0x4] - add r0, sp, #0x38 - mov r1, r0 - ldr r5, [sp, #0x3c] - bl FUN_02093A0C - ldr r0, [sp, #0x18] - ldr r1, [r0, #0x4] - ldr r0, [sp, #0x3c] - add r0, r1, r0 - sub r1, r0, r5 - ldr r0, [sp, #0x18] - str r1, [r0, #0x4] - ldr r0, [sp, #0x44] - cmp r0, #0x0 - beq _0209374C - add r0, sp, #0x38 - ldr r2, [sp, #0x1c] - mov r1, r0 - sub r6, r6, #0x1 - ldr r5, [sp, #0x3c] - bl FUN_02093DD0 - ldr r0, [sp, #0x18] - ldr r1, [r0, #0x4] - ldr r0, [sp, #0x3c] - sub r0, r0, r5 - add r1, r1, r0 - ldr r0, [sp, #0x18] - str r1, [r0, #0x4] -_0209374C: - ldr r0, [sp, #0x20] - sub r7, r7, #0x4 - str r6, [r0], #-0x4 - str r0, [sp, #0x20] - ldr r0, [sp, #0xc] - add r0, r0, #0x1 - str r0, [sp, #0xc] - ldr r0, [sp, #0x10] - sub r1, r0, #0x1 - ldr r0, [sp, #0xc] - cmp r0, r1 - blt _02093580 -_0209377C: - ldr r0, [sp, #0x18] - bl FUN_02095040 -_02093784: ; 0x02093784 - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _020937C4 - ldr r2, [sp, #0x8] - ldr r3, [sp, #0x4] - ldr r1, [sp, #0x18] - add r2, r2, #0x20 - ldr r4, [r3, #0xc] - bl FUN_02094134 -_020937A8: ; 0x020937A8 - cmp r0, #0x0 - addeq sp, sp, #0x4c - moveq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - ldr r0, [sp, #0x0] - str r4, [r0, #0xc] -_020937C4: - add sp, sp, #0x4c - mov r0, #0x1 - ldmia sp!, {r4-r11,lr} - bx lr -_020937D4: - mov r0, #0x0 - add sp, sp, #0x4c - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020937E4: .word 0x0000FFFF - - arm_func_start FUN_020937E8 -FUN_020937E8: ; 0x020937E8 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - ldr r5, [sp, #0x20] - mov r7, r2 - mov r9, r0 - mov r8, r1 - mov r6, r3 - cmp r7, r5 - bge _02093824 - mov r1, r7 - mov r0, r8 - mov r7, r5 - mov r8, r6 - mov r5, r1 - mov r6, r0 -_02093824: - ldr r3, [r6, #0x0] - mov r0, r9 - mov r1, r8 - mov r2, r7 - add r4, r9, r7, lsl #0x2 - bl FUN_0209470C - str r0, [r9, r7, lsl #0x2] -_02093840: - sub r0, r5, #0x1 - cmp r0, #0x0 - addle sp, sp, #0x4 - ldmleia sp!, {r4-r9,lr} - bxle lr - ldr r3, [r6, #0x4] - mov r1, r8 - mov r2, r7 - add r0, r9, #0x4 - bl FUN_020948AC - sub r1, r5, #0x2 - cmp r1, #0x0 - addle sp, sp, #0x4 - str r0, [r4, #0x4] - ldmleia sp!, {r4-r9,lr} - bxle lr - ldr r3, [r6, #0x8] - mov r1, r8 - mov r2, r7 - add r0, r9, #0x8 - bl FUN_020948AC - sub r1, r5, #0x3 - cmp r1, #0x0 - addle sp, sp, #0x4 - str r0, [r4, #0x8] - ldmleia sp!, {r4-r9,lr} - bxle lr - ldr r3, [r6, #0xc] - mov r1, r8 - mov r2, r7 - add r0, r9, #0xc - bl FUN_020948AC - sub r5, r5, #0x4 - cmp r5, #0x0 - addle sp, sp, #0x4 - str r0, [r4, #0xc] - ldmleia sp!, {r4-r9,lr} - bxle lr - ldr r3, [r6, #0x10] - mov r1, r8 - mov r2, r7 - add r0, r9, #0x10 - bl FUN_020948AC - str r0, [r4, #0x10] - add r4, r4, #0x10 - add r9, r9, #0x10 - add r6, r6, #0x10 - b _02093840 -_02093900: ; 0x02093900 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start FUN_0209390C -FUN_0209390C: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r9, r1 - ldr r6, [r9, #0x4] - mov r8, r2 - mov r10, r0 - cmp r6, #0x0 - ldr r5, [r8, #0x4] - beq _02093938 - cmp r5, #0x0 - bne _02093954 -_02093938: - mov r0, r10 - mov r1, #0x0 - bl FUN_02094D7C - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r11,lr} - bx lr -_02093954: - ldr r1, [r9, #0xc] - ldr r0, [r8, #0xc] - cmp r10, r9 - add r7, r6, r5 - eor r11, r1, r0 - beq _02093974 - cmp r10, r8 - bne _0209398C -_02093974: - ldr r0, [r3, #0x0] - add r2, r3, #0x4 - add r1, r0, #0x1 - mov r0, #0x14 - mla r4, r1, r0, r2 - b _02093990 -_0209398C: - mov r4, r10 -_02093990: - ldr r0, [r4, #0x8] - cmp r7, r0 - movle r0, r4 - ble _020939AC - mov r0, r4 - mov r1, r7 - bl FUN_02094EBC -_020939AC: - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - str r7, [r4, #0x4] - str r5, [sp, #0x0] - ldr r0, [r4, #0x0] - ldr r1, [r9, #0x0] - ldr r3, [r8, #0x0] - mov r2, r6 - bl FUN_020937E8 - mov r0, r4 - str r11, [r10, #0xc] - bl FUN_02095040 - cmp r10, r4 - beq _020939FC - mov r0, r10 - mov r1, r4 - bl FUN_02094E24 -_020939FC: - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_02093A0C -FUN_02093A0C: ; 0x02093A0C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r6, r1 - ldr r1, [r6, #0xc] - mov r3, #0x0 - mov r7, r0 - mov r5, r2 - mov r4, r3 - cmp r1, #0x0 - beq _02093A54 - ldr r0, [r5, #0xc] - cmp r0, #0x0 - movne r0, r6 - moveq r3, #0x1 - movne r6, r5 - movne r5, r0 - moveq r4, r3 - b _02093A60 -_02093A54: - ldr r0, [r5, #0xc] - cmp r0, #0x0 - movne r3, #0x1 -_02093A60: - cmp r3, #0x0 - beq _02093A94 - mov r0, r7 - mov r1, r6 - mov r2, r5 - bl FUN_02093CB4 -_02093A78: ; 0x02093A78 - cmp r0, #0x0 - moveq r0, #0x0 - add sp, sp, #0x4 - strne r4, [r7, #0xc] - movne r0, #0x1 - ldmia sp!, {r4-r7,lr} - bx lr -_02093A94: - ldr r0, [r5, #0x4] - ldr r1, [r6, #0x4] - cmp r1, r0 - movle r1, r0 - ldr r0, [r7, #0x8] - cmp r1, r0 - movle r0, r7 - ble _02093ABC - mov r0, r7 - bl FUN_02094EBC -_02093ABC: - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - mov r0, r6 - mov r1, r5 - bl FUN_02094B98 -_02093ADC: ; 0x02093ADC - cmp r0, #0x0 - bge _02093B14 - mov r0, r7 - mov r1, r5 - mov r2, r6 - bl FUN_02093B50 -_02093AF4: ; 0x02093AF4 - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - mov r0, #0x1 - str r0, [r7, #0xc] - b _02093B40 -_02093B14: - mov r0, r7 - mov r1, r6 - mov r2, r5 - bl FUN_02093B50 -_02093B24: ; 0x02093B24 - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - mov r0, #0x0 - str r0, [r7, #0xc] -_02093B40: - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_02093B50 -FUN_02093B50: - stmdb sp!, {r4-r10,lr} - mov r8, r1 - mov r7, r2 - ldr r5, [r7, #0x4] - ldr r6, [r8, #0x4] - mov r4, r0 - cmp r6, r5 - movlt r0, #0x0 - ldmltia sp!, {r4-r10,lr} - bxlt lr - ldr r1, [r4, #0x8] - cmp r6, r1 - ble _02093B8C - mov r1, r6 - bl FUN_02094EBC -_02093B8C: - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r10,lr} - bxeq lr - mov r3, #0x0 - mov r0, r3 - cmp r5, #0x0 - ldr r2, [r8, #0x0] - ldr r9, [r7, #0x0] - ldr r1, [r4, #0x0] - ble _02093C0C - mov r12, r3 - mov r7, r3 - mov lr, #0x1 -_02093BC4: - cmp r3, #0x0 - ldr r10, [r2], #0x4 - ldr r8, [r9], #0x4 - beq _02093BEC - cmp r10, r8 - movls r3, lr - sub r8, r10, r8 - movhi r3, r12 - sub r10, r8, #0x1 - b _02093BFC -_02093BEC: - cmp r10, r8 - movcc r3, lr - movcs r3, r7 - sub r10, r10, r8 -_02093BFC: - add r0, r0, #0x1 - cmp r0, r5 - str r10, [r1], #0x4 - blt _02093BC4 -_02093C0C: - cmp r3, #0x0 - beq _02093C3C - cmp r0, r6 - bge _02093C3C -_02093C1C: - ldr r5, [r2], #0x4 - add r0, r0, #0x1 - sub r3, r5, #0x1 - cmp r5, r3 - str r3, [r1], #0x4 - bhi _02093C3C - cmp r0, r6 - blt _02093C1C -_02093C3C: - cmp r1, r2 - beq _02093C9C -_02093C44: - cmp r0, r6 - bge _02093C9C - ldr r5, [r2, #0x0] - add r3, r0, #0x1 - str r5, [r1, #0x0] - cmp r3, r6 - bge _02093C9C - ldr r5, [r2, #0x4] - add r3, r0, #0x2 - str r5, [r1, #0x4] - cmp r3, r6 - bge _02093C9C - ldr r5, [r2, #0x8] - add r3, r0, #0x3 - str r5, [r1, #0x8] - cmp r3, r6 - ldrlt r3, [r2, #0xc] - add r0, r0, #0x4 - strlt r3, [r1, #0xc] - addlt r2, r2, #0x10 - addlt r1, r1, #0x10 - blt _02093C44 -_02093C9C: - mov r0, r4 - str r6, [r4, #0x4] - bl FUN_02095040 - mov r0, #0x1 - ldmia sp!, {r4-r10,lr} - bx lr - - arm_func_start FUN_02093CB4 -FUN_02093CB4: - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r8, r2 - ldr r2, [r4, #0x4] - ldr r1, [r8, #0x4] - mov r9, r0 - cmp r2, r1 - movlt r0, r4 - movlt r4, r8 - movlt r8, r0 - ldr r6, [r4, #0x4] - ldr r0, [r9, #0x8] - add r1, r6, #0x1 - cmp r1, r0 - ldr r7, [r8, #0x4] - movle r0, r9 - ble _02093D04 - mov r0, r9 - bl FUN_02094EBC -_02093D04: - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - str r6, [r9, #0x4] - ldr r5, [r4, #0x0] - ldr r4, [r9, #0x0] - ldr r2, [r8, #0x0] - mov r0, r4 - mov r1, r5 - mov r3, r7 - bl FUN_02094468 -_02093D38: ; 0x02093D38 - cmp r0, #0x0 - add r4, r4, r7, lsl #0x2 - add r5, r5, r7, lsl #0x2 - beq _02093D9C - cmp r7, r6 - bge _02093D7C -_02093D50: - ldr r2, [r5], #0x4 - mov r3, r4 - add r1, r2, #0x1 - str r1, [r4], #0x4 - ldr r1, [r3, #0x0] - add r7, r7, #0x1 - cmp r1, r2 - movcs r0, #0x0 - bhs _02093D7C - cmp r7, r6 - blt _02093D50 -_02093D7C: - cmp r7, r6 - blt _02093D9C - cmp r0, #0x0 - movne r0, #0x1 - strne r0, [r4], #0x4 - ldrne r0, [r9, #0x4] - addne r0, r0, #0x1 - strne r0, [r9, #0x4] -_02093D9C: - cmp r4, r5 - beq _02093DC0 - cmp r7, r6 - bge _02093DC0 -_02093DAC: - ldr r0, [r5], #0x4 - add r7, r7, #0x1 - cmp r7, r6 - str r0, [r4], #0x4 - blt _02093DAC -_02093DC0: - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start FUN_02093DD0 -FUN_02093DD0: ; 0x02093DD0 - stmdb sp!, {r4-r6,lr} - mov r5, r1 - mov r4, r2 - ldr r2, [r5, #0xc] - ldr r1, [r4, #0xc] - mov r6, r0 - eors r0, r2, r1 - beq _02093E74 - cmp r2, #0x0 - movne r0, r5 - movne r5, r4 - movne r4, r0 - mov r0, r5 - mov r1, r4 - bl FUN_02094B98 -_02093E0C: ; 0x02093E0C - cmp r0, #0x0 - bge _02093E40 - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl FUN_02093B50 -_02093E24: ; 0x02093E24 - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - mov r0, #0x1 - str r0, [r6, #0xc] - b _02093E68 -_02093E40: - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_02093B50 -_02093E50: ; 0x02093E50 - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - mov r0, #0x0 - str r0, [r6, #0xc] -_02093E68: - mov r0, #0x1 - ldmia sp!, {r4-r6,lr} - bx lr -_02093E74: - cmp r2, #0x0 - movne r0, #0x1 - strne r0, [r6, #0xc] - moveq r0, #0x0 - streq r0, [r6, #0xc] - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_02093CB4 -_02093E98: ; 0x02093E98 - cmp r0, #0x0 - moveq r0, #0x0 - movne r0, #0x1 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_02093EAC -FUN_02093EAC: ; 0x02093EAC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - movs r4, r1 - mov r5, r0 - addeq sp, sp, #0x4 - moveq r0, #0x1 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldr r2, [r5, #0xc] - cmp r2, #0x0 - beq _02093EF8 - mov r2, #0x0 - str r2, [r5, #0xc] - bl FUN_0209400C - mov r1, #0x1 - add sp, sp, #0x4 - str r1, [r5, #0xc] - ldmia sp!, {r4-r5,lr} - bx lr -_02093EF8: - ldr r1, [r5, #0x4] - cmp r1, #0x1 - bgt _02093F9C - cmp r1, #0x0 - bne _02093F54 - ldr r1, [r5, #0x8] - cmp r1, #0x1 - bge _02093F20 - mov r1, #0x1 - bl FUN_02094EBC -_02093F20: - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldr r1, [r5, #0x0] - mov r0, #0x1 - str r4, [r1, #0x0] - str r0, [r5, #0xc] - add sp, sp, #0x4 - str r0, [r5, #0x4] - ldmia sp!, {r4-r5,lr} - bx lr -_02093F54: - ldr r2, [r5, #0x0] - ldr r1, [r2, #0x0] - cmp r1, r4 - moveq r0, #0x0 - streq r0, [r5, #0x4] - beq _02093F8C - cmp r1, r4 - subhi r0, r1, r4 - strhi r0, [r2, #0x0] - movls r0, #0x1 - strls r0, [r5, #0xc] - ldrls r0, [r5, #0x0] - subls r1, r4, r1 - strls r1, [r0, #0x0] -_02093F8C: - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r5,lr} - bx lr -_02093F9C: - mov r0, #0x0 - mov r1, #0x1 -_02093FA4: - ldr r12, [r5, #0x0] - mov r3, r0, lsl #0x2 - ldr r2, [r12, r0, lsl #0x2] - cmp r2, r4 - ldrcs r1, [r12, r3] - subcs r1, r1, r4 - strcs r1, [r12, r3] - bhs _02093FDC - ldr r2, [r12, r3] - add r0, r0, #0x1 - sub r2, r2, r4 - mov r4, r1 - str r2, [r12, r3] - b _02093FA4 -_02093FDC: - ldr r1, [r5, #0x0] - ldr r1, [r1, r3] - cmp r1, #0x0 - bne _02093FFC - ldr r1, [r5, #0x4] - sub r1, r1, #0x1 - cmp r0, r1 - streq r1, [r5, #0x4] -_02093FFC: - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_0209400C -FUN_0209400C: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - movs r4, r1 - mov r5, r0 - addeq sp, sp, #0x4 - moveq r0, #0x1 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldr r2, [r5, #0xc] - cmp r2, #0x0 - beq _020940B4 - ldr r2, [r5, #0x4] - cmp r2, #0x1 - ble _02094064 - mov r2, #0x0 - str r2, [r5, #0xc] - bl FUN_02093EAC - mov r1, #0x1 - add sp, sp, #0x4 - str r1, [r5, #0xc] - ldmia sp!, {r4-r5,lr} - bx lr -_02094064: - ldr r2, [r5, #0x0] - ldr r1, [r2, #0x0] - cmp r1, r4 - subhi r0, r1, r4 - strhi r0, [r2, #0x0] - bhi _020940A4 - cmp r1, r4 - movcs r0, #0x0 - strcs r0, [r5, #0xc] - strcs r0, [r5, #0x4] - bhs _020940A4 - mov r0, #0x0 - str r0, [r5, #0xc] - ldr r0, [r5, #0x0] - sub r1, r4, r1 - str r1, [r0, #0x0] -_020940A4: - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r5,lr} - bx lr -_020940B4: - ldr r1, [r5, #0x4] - ldr r2, [r5, #0x8] - add r1, r1, #0x1 - cmp r1, r2 - ble _020940CC - bl FUN_02094EBC -_020940CC: - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldr r1, [r5, #0x0] - ldr r0, [r5, #0x4] - mov r3, #0x0 - str r3, [r1, r0, lsl #0x2] - mov r0, #0x1 -_020940F4: - ldr r2, [r5, #0x0] - ldr r1, [r2, r3, lsl #0x2] - add r1, r4, r1 - cmp r4, r1 - str r1, [r2, r3, lsl #0x2] - movhi r4, r0 - addhi r3, r3, #0x1 - bhi _020940F4 - ldr r0, [r5, #0x4] - cmp r3, r0 - addge r0, r0, #0x1 - strge r0, [r5, #0x4] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_02094134 -FUN_02094134: - stmdb sp!, {r4-r8,lr} - mov r7, r1 - mov r1, r2, asr #0x4 - mov r3, r2, lsr #0x1f - add r1, r2, r1, lsr #0x1b - rsb r2, r3, r2, lsl #0x1b - add r4, r3, r2, ror #0x1b - ldr r2, [r7, #0x4] - mov r6, r1, asr #0x5 - mov r8, r0 - cmp r6, r2 - rsb r5, r4, #0x20 - ble _0209417C - mov r1, #0x0 - bl FUN_02094D7C - mov r0, #0x1 - ldmia sp!, {r4-r8,lr} - bx lr -_0209417C: - cmp r8, r7 - beq _020941B4 - sub r1, r2, r6 - ldr r2, [r8, #0x8] - add r1, r1, #0x2 - cmp r1, r2 - ble _0209419C - bl FUN_02094EBC -_0209419C: - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - ldr r0, [r7, #0xc] - str r0, [r8, #0xc] -_020941B4: - ldr r0, [r7, #0x0] - ldr r1, [r7, #0x4] - add r2, r0, r6, lsl #0x2 - ldr r0, [r8, #0x0] - sub r7, r1, r6 - mov r6, r2 - str r7, [r8, #0x4] - cmp r4, #0x0 - bne _020941FC - add r2, r7, #0x1 - cmp r2, #0x0 - ble _0209423C -_020941E4: - ldr r1, [r6], #0x4 - sub r2, r2, #0x1 - cmp r2, #0x0 - str r1, [r0], #0x4 - bgt _020941E4 - b _0209423C -_020941FC: - cmp r7, #0x1 - add r6, r2, #0x4 - ldr r3, [r2, #0x0] - mov r2, #0x1 - ble _0209422C -_02094210: - mov r1, r3, lsr r4 - ldr r3, [r6], #0x4 - add r2, r2, #0x1 - orr r1, r1, r3, lsl r5 - cmp r2, r7 - str r1, [r0], #0x4 - blt _02094210 -_0209422C: - mov r1, r3, lsr r4 - str r1, [r0, #0x0] - mov r1, #0x0 - str r1, [r0, #0x4] -_0209423C: - mov r0, r8 - bl FUN_02095040 - mov r0, #0x1 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_02094250 -FUN_02094250: - stmdb sp!, {r4-r10,lr} - mov r4, r1 - mov r7, r2 - mov r1, r7, asr #0x4 - mov r5, r0 - add r2, r7, r1, lsr #0x1b - ldr r1, [r4, #0x4] - ldr r3, [r5, #0x8] - add r1, r1, r2, asr #0x5 - add r1, r1, #0x1 - cmp r1, r3 - mov r6, r2, asr #0x5 - ble _02094288 - bl FUN_02094EBC -_02094288: - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r10,lr} - bxeq lr - ldr r0, [r4, #0xc] - mov r1, r7, lsr #0x1f - str r0, [r5, #0xc] - ldr r3, [r4, #0x4] - rsb r0, r1, r7, lsl #0x1b - adds r12, r1, r0, ror #0x1b - ldr r2, [r4, #0x0] - ldr r0, [r5, #0x0] - add r1, r3, r6 - mov r3, #0x0 - str r3, [r0, r1, lsl #0x2] - rsb r3, r12, #0x20 - bne _020942F0 - ldr r1, [r4, #0x4] - subs r7, r1, #0x1 - bmi _02094324 -_020942D8: - ldr r3, [r2, r7, lsl #0x2] - add r1, r6, r7 - str r3, [r0, r1, lsl #0x2] - subs r7, r7, #0x1 - bpl _020942D8 - b _02094324 -_020942F0: - ldr r1, [r4, #0x4] - subs r1, r1, #0x1 - bmi _02094324 -_020942FC: - add r9, r6, r1 - add r8, r9, #0x1 - ldr r10, [r2, r1, lsl #0x2] - ldr lr, [r0, r8, lsl #0x2] - mov r7, r10, lsl r12 - orr lr, lr, r10, lsr r3 - str lr, [r0, r8, lsl #0x2] - str r7, [r0, r9, lsl #0x2] - subs r1, r1, #0x1 - bpl _020942FC -_02094324: - mov r2, r6, lsl #0x2 - mov r1, #0x0 - bl MI_CpuFill8 - ldr r1, [r4, #0x4] - mov r0, r5 - add r1, r1, r6 - add r1, r1, #0x1 - str r1, [r5, #0x4] - bl FUN_02095040 - mov r0, #0x1 - ldmia sp!, {r4-r10,lr} - bx lr - - arm_func_start FUN_02094354 -FUN_02094354: ; 0x02094354 - stmdb sp!, {r4-r10,lr} - cmp r3, #0x0 - movle r0, #0x0 - ldmleia sp!, {r4-r10,lr} - bxle lr - mov r6, #0x0 - mov r4, r6 - mov lr, r6 - mov r12, r6 - mov r7, r6 - mov r5, #0x1 -_02094380: - ldr r10, [r1, #0x0] - ldr r9, [r2, #0x0] - sub r8, r10, r9 - sub r8, r8, r6 - str r8, [r0, #0x0] - cmp r10, r9 - beq _020943A8 - cmp r10, r9 - movcc r6, r5 - movcs r6, r4 -_020943A8: - sub r8, r3, #0x1 - cmp r8, #0x0 - ble _0209445C - ldr r10, [r1, #0x4] - ldr r9, [r2, #0x4] - sub r8, r10, r9 - sub r8, r8, r6 - str r8, [r0, #0x4] - cmp r10, r9 - beq _020943DC - cmp r10, r9 - movcc r6, r5 - movcs r6, lr -_020943DC: - sub r8, r3, #0x2 - cmp r8, #0x0 - ble _0209445C - ldr r10, [r1, #0x8] - ldr r9, [r2, #0x8] - sub r8, r10, r9 - sub r8, r8, r6 - str r8, [r0, #0x8] - cmp r10, r9 - beq _02094410 - cmp r10, r9 - movcc r6, r5 - movcs r6, r12 -_02094410: - sub r8, r3, #0x3 - cmp r8, #0x0 - ble _0209445C - ldr r10, [r1, #0xc] - ldr r9, [r2, #0xc] - sub r8, r10, r9 - sub r8, r8, r6 - str r8, [r0, #0xc] - cmp r10, r9 - beq _02094444 - cmp r10, r9 - movcc r6, r5 - movcs r6, r7 -_02094444: - sub r3, r3, #0x4 - cmp r3, #0x0 - addgt r1, r1, #0x10 - addgt r2, r2, #0x10 - addgt r0, r0, #0x10 - bgt _02094380 -_0209445C: - mov r0, r6 - ldmia sp!, {r4-r10,lr} - bx lr - - arm_func_start FUN_02094468 -FUN_02094468: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - cmp r3, #0x0 - addle sp, sp, #0xc - movle r0, #0x0 - ldmleia sp!, {r4-r11,lr} - bxle lr - mov r12, #0x0 - mov r7, r12 - mov r6, r12 - mov r5, r12 - mov r4, r12 - mov lr, r12 - mov r11, r12 - str r12, [sp, #0x0] - str r12, [sp, #0x4] - mov r8, #0x1 -_020944AC: - ldr r9, [r1, #0x0] - add r10, r9, r12 - ldr r9, [r2, #0x0] - cmp r10, r12 - movcc r12, r8 - add r9, r10, r9 - movcs r12, r7 - cmp r9, r10 - movcc r10, r8 - movcs r10, r6 - str r9, [r0, #0x0] - sub r9, r3, #0x1 - add r12, r12, r10 - cmp r9, #0x0 - ble _020945A8 - ldr r9, [r1, #0x4] - ldr r10, [r2, #0x4] - add r9, r9, r12 - cmp r9, r12 - movcc r12, r8 - add r10, r9, r10 - movcs r12, r5 - cmp r10, r9 - movcc r9, r8 - movcs r9, r4 - add r12, r12, r9 - sub r9, r3, #0x2 - str r10, [r0, #0x4] - cmp r9, #0x0 - ble _020945A8 - ldr r9, [r1, #0x8] - ldr r10, [r2, #0x8] - add r9, r9, r12 - cmp r9, r12 - movcc r12, r8 - add r10, r9, r10 - movcs r12, lr - cmp r10, r9 - movcc r9, r8 - movcs r9, r11 - add r12, r12, r9 - sub r9, r3, #0x3 - str r10, [r0, #0x8] - cmp r9, #0x0 - ble _020945A8 - ldr r9, [r1, #0xc] - ldr r10, [r2, #0xc] - add r9, r9, r12 - cmp r9, r12 - movcc r12, r8 - add r10, r9, r10 - ldrcs r12, [sp, #0x0] - cmp r10, r9 - movcc r9, r8 - ldrcs r9, [sp, #0x4] - sub r3, r3, #0x4 - cmp r3, #0x0 - str r10, [r0, #0xc] - add r12, r12, r9 - addgt r1, r1, #0x10 - addgt r2, r2, #0x10 - addgt r0, r0, #0x10 - bgt _020944AC -_020945A8: - mov r0, r12 - add sp, sp, #0xc - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_020945B8 -FUN_020945B8: ; 0x020945B8 - stmdb sp!, {r4-r8,lr} - cmp r2, #0x0 - ldmleia sp!, {r4-r8,lr} - bxle lr - mov r3, #0x8000 - ldr lr, _02094708 ; =0x0000FFFF - rsb r12, r3, #0x0 -_020945D4: - ldr r5, [r1, #0x0] - mov r3, #0x8000 - and r4, r5, lr - and r7, lr, r5, lsr #0x10 - mul r6, r4, r7 - mul r5, r4, r4 - and r4, r6, lr - add r8, r5, r4, lsl #0x11 - rsb r3, r3, #0x0 - mul r5, r7, r7 - and r3, r6, r3 - add r3, r5, r3, lsr #0xf - cmp r8, r4, lsl #0x11 - addcc r3, r3, #0x1 - str r8, [r0, #0x0] - str r3, [r0, #0x4] - subs r3, r2, #0x1 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - ldr r4, [r1, #0x4] - and r7, lr, r4, lsr #0x10 - and r3, r4, lr - mul r6, r3, r7 - mul r4, r3, r3 - and r3, r6, lr - add r8, r4, r3, lsl #0x11 - mul r5, r7, r7 - and r4, r6, r12 - cmp r8, r3, lsl #0x11 - add r3, r5, r4, lsr #0xf - addcc r3, r3, #0x1 - str r8, [r0, #0x8] - str r3, [r0, #0xc] - subs r3, r2, #0x2 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - ldr r5, [r1, #0x8] - mov r3, #0x8000 - and r4, r5, lr - and r7, lr, r5, lsr #0x10 - mul r6, r4, r7 - mul r5, r4, r4 - and r4, r6, lr - add r8, r5, r4, lsl #0x11 - rsb r3, r3, #0x0 - mul r5, r7, r7 - and r3, r6, r3 - add r3, r5, r3, lsr #0xf - cmp r8, r4, lsl #0x11 - addcc r3, r3, #0x1 - str r8, [r0, #0x10] - str r3, [r0, #0x14] - subs r3, r2, #0x3 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - ldr r5, [r1, #0xc] - mov r3, #0x8000 - and r4, r5, lr - and r7, lr, r5, lsr #0x10 - mul r6, r4, r7 - mul r5, r4, r4 - and r4, r6, lr - add r8, r5, r4, lsl #0x11 - rsb r3, r3, #0x0 - mul r5, r7, r7 - and r3, r6, r3 - add r3, r5, r3, lsr #0xf - cmp r8, r4, lsl #0x11 - addcc r3, r3, #0x1 - str r8, [r0, #0x18] - subs r2, r2, #0x4 - str r3, [r0, #0x1c] - addne r1, r1, #0x10 - addne r0, r0, #0x20 - bne _020945D4 - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_02094708: .word 0x0000FFFF - - arm_func_start FUN_0209470C -FUN_0209470C: ; 0x0209470C - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - cmp r2, #0x0 - mov r4, #0x0 - addle sp, sp, #0x4 - movle r0, r4 - ldmleia sp!, {r4-r9,lr} - bxle lr - ldr r5, _020948A8 ; =0x0000FFFF - and lr, r3, r5 - and r12, r5, r3, lsr #0x10 -_02094738: - ldr r3, [r1, #0x0] - and r7, r5, r3, lsr #0x10 - mul r6, lr, r7 - and r3, r3, r5 - mla r9, r12, r3, r6 - mul r8, r3, lr - mul r3, r7, r12 - cmp r9, r6 - and r6, r9, r5 - addcc r3, r3, #0x10000 - and r7, r5, r9, lsr #0x10 - add r8, r8, r6, lsl #0x10 - cmp r8, r6, lsl #0x10 - add r3, r3, r7 - add r6, r8, r4 - addcc r3, r3, #0x1 - cmp r6, r4 - addcc r3, r3, #0x1 - str r6, [r0, #0x0] - mov r4, r3 - subs r6, r2, #0x1 - beq _02094898 - ldr r4, [r1, #0x4] - and r7, r5, r4, lsr #0x10 - mul r6, lr, r7 - and r4, r4, r5 - mla r9, r12, r4, r6 - mul r8, r4, lr - mul r4, r7, r12 - cmp r9, r6 - and r6, r9, r5 - addcc r4, r4, #0x10000 - and r7, r5, r9, lsr #0x10 - add r8, r8, r6, lsl #0x10 - cmp r8, r6, lsl #0x10 - add r4, r4, r7 - add r6, r8, r3 - addcc r4, r4, #0x1 - cmp r6, r3 - addcc r4, r4, #0x1 - str r6, [r0, #0x4] - subs r3, r2, #0x2 - beq _02094898 - ldr r3, [r1, #0x8] - and r7, r5, r3, lsr #0x10 - mul r6, lr, r7 - and r3, r3, r5 - mla r9, r12, r3, r6 - mul r8, r3, lr - mul r3, r7, r12 - cmp r9, r6 - and r6, r9, r5 - addcc r3, r3, #0x10000 - and r7, r5, r9, lsr #0x10 - add r8, r8, r6, lsl #0x10 - cmp r8, r6, lsl #0x10 - add r3, r3, r7 - add r6, r8, r4 - addcc r3, r3, #0x1 - cmp r6, r4 - addcc r3, r3, #0x1 - str r6, [r0, #0x8] - mov r4, r3 - subs r6, r2, #0x3 - beq _02094898 - ldr r4, [r1, #0xc] - and r7, r5, r4, lsr #0x10 - mul r6, lr, r7 - and r4, r4, r5 - mla r9, r12, r4, r6 - mul r8, r4, lr - mul r4, r7, r12 - cmp r9, r6 - and r6, r9, r5 - addcc r4, r4, #0x10000 - and r7, r5, r9, lsr #0x10 - add r8, r8, r6, lsl #0x10 - cmp r8, r6, lsl #0x10 - add r4, r4, r7 - add r6, r8, r3 - addcc r4, r4, #0x1 - cmp r6, r3 - addcc r4, r4, #0x1 - subs r2, r2, #0x4 - str r6, [r0, #0xc] - addne r1, r1, #0x10 - addne r0, r0, #0x10 - bne _02094738 -_02094898: - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - .balign 4 -_020948A8: .word 0x0000FFFF - - arm_func_start FUN_020948AC -FUN_020948AC: ; 0x020948AC - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - cmp r2, #0x0 - mov r12, #0x0 - addle sp, sp, #0x4 - movle r0, r12 - ldmleia sp!, {r4-r9,lr} - bxle lr - ldr r5, _02094A88 ; =0x0000FFFF - and r4, r3, r5 - and lr, r5, r3, lsr #0x10 -_020948D8: - ldr r3, [r1, #0x0] - and r7, r5, r3, lsr #0x10 - mul r6, r4, r7 - and r3, r3, r5 - mla r9, lr, r3, r6 - mul r8, r3, r4 - mul r3, r7, lr - cmp r9, r6 - and r6, r9, r5 - addcc r3, r3, #0x10000 - and r7, r5, r9, lsr #0x10 - add r8, r8, r6, lsl #0x10 - cmp r8, r6, lsl #0x10 - add r3, r3, r7 - ldr r6, [r0, #0x0] - addcc r3, r3, #0x1 - add r7, r8, r12 - cmp r7, r12 - add r7, r7, r6 - addcc r3, r3, #0x1 - cmp r7, r6 - addcc r3, r3, #0x1 - mov r12, r3 - str r7, [r0, #0x0] - subs r6, r2, #0x1 - beq _02094A78 - ldr r12, [r1, #0x4] - and r7, r5, r12, lsr #0x10 - mul r6, r4, r7 - and r12, r12, r5 - mla r9, lr, r12, r6 - mul r8, r12, r4 - mul r12, r7, lr - cmp r9, r6 - and r6, r9, r5 - addcc r12, r12, #0x10000 - and r7, r5, r9, lsr #0x10 - add r8, r8, r6, lsl #0x10 - cmp r8, r6, lsl #0x10 - add r12, r12, r7 - add r6, r8, r3 - addcc r12, r12, #0x1 - cmp r6, r3 - ldr r3, [r0, #0x4] - addcc r12, r12, #0x1 - add r6, r6, r3 - cmp r6, r3 - addcc r12, r12, #0x1 - str r6, [r0, #0x4] - subs r3, r2, #0x2 - beq _02094A78 - ldr r3, [r1, #0x8] - and r7, r5, r3, lsr #0x10 - mul r6, r4, r7 - and r3, r3, r5 - mla r9, lr, r3, r6 - mul r8, r3, r4 - mul r3, r7, lr - cmp r9, r6 - and r6, r9, r5 - addcc r3, r3, #0x10000 - and r7, r5, r9, lsr #0x10 - add r8, r8, r6, lsl #0x10 - cmp r8, r6, lsl #0x10 - add r3, r3, r7 - ldr r6, [r0, #0x8] - addcc r3, r3, #0x1 - add r7, r8, r12 - cmp r7, r12 - add r7, r7, r6 - addcc r3, r3, #0x1 - cmp r7, r6 - addcc r3, r3, #0x1 - mov r12, r3 - str r7, [r0, #0x8] - subs r6, r2, #0x3 - beq _02094A78 - ldr r12, [r1, #0xc] - and r7, r5, r12, lsr #0x10 - mul r6, r4, r7 - and r12, r12, r5 - mla r9, lr, r12, r6 - mul r8, r12, r4 - mul r12, r7, lr - cmp r9, r6 - and r6, r9, r5 - addcc r12, r12, #0x10000 - and r7, r5, r9, lsr #0x10 - add r8, r8, r6, lsl #0x10 - cmp r8, r6, lsl #0x10 - add r12, r12, r7 - add r6, r8, r3 - addcc r12, r12, #0x1 - cmp r6, r3 - ldr r3, [r0, #0xc] - addcc r12, r12, #0x1 - add r6, r6, r3 - cmp r6, r3 - addcc r12, r12, #0x1 - subs r2, r2, #0x4 - str r6, [r0, #0xc] - addne r1, r1, #0x10 - addne r0, r0, #0x10 - bne _020948D8 -_02094A78: - mov r0, r12 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - .balign 4 -_02094A88: .word 0x0000FFFF - - arm_func_start FUN_02094A8C -FUN_02094A8C: - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r1, #0x0 - addlt sp, sp, #0x4 - movlt r0, #0x0 - ldmltia sp!, {lr} - bxlt lr - mov r2, r1, asr #0x4 - add r2, r1, r2, lsr #0x1b - mov r3, r1, lsr #0x1f - ldr r12, [r0, #0x4] - mov lr, r2, asr #0x5 - cmp r12, lr - rsb r1, r3, r1, lsl #0x1b - addle sp, sp, #0x4 - add r2, r3, r1, ror #0x1b - movle r0, #0x0 - ldmleia sp!, {lr} - bxle lr - ldr r1, [r0, #0x0] - mov r0, #0x1 - mov r2, r0, lsl r2 - ldr r1, [r1, lr, lsl #0x2] - ands r1, r2, r1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_02094AFC -FUN_02094AFC: - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r2, r1, asr #0x4 - add r2, r1, r2, lsr #0x1b - mov r3, r1, lsr #0x1f - rsb r1, r3, r1, lsl #0x1b - ldr r4, [r6, #0x4] - mov r5, r2, asr #0x5 - cmp r4, r5 - add r4, r3, r1, ror #0x1b - bgt _02094B7C - ldr r2, [r6, #0x8] - add r1, r5, #0x1 - cmp r1, r2 - ble _02094B3C - bl FUN_02094EBC -_02094B3C: - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldr r3, [r6, #0x4] - add r2, r5, #0x1 - cmp r3, r2 - bge _02094B74 - mov r1, #0x0 -_02094B60: - ldr r0, [r6, #0x0] - str r1, [r0, r3, lsl #0x2] - add r3, r3, #0x1 - cmp r3, r2 - blt _02094B60 -_02094B74: - add r0, r5, #0x1 - str r0, [r6, #0x4] -_02094B7C: - ldr r2, [r6, #0x0] - mov r0, #0x1 - ldr r1, [r2, r5, lsl #0x2] - orr r1, r1, r0, lsl r4 - str r1, [r2, r5, lsl #0x2] - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_02094B98 -FUN_02094B98: - ldr r3, [r0, #0x4] - ldr r2, [r1, #0x4] - subs r2, r3, r2 - movne r0, r2 - bxne lr - subs r2, r3, #0x1 - ldr r12, [r0, #0x0] - ldr r3, [r1, #0x0] - bmi _02094BE4 -_02094BBC: - ldr r1, [r12, r2, lsl #0x2] - ldr r0, [r3, r2, lsl #0x2] - cmp r1, r0 - beq _02094BDC - cmp r1, r0 - movhi r0, #0x1 - mvnls r0, #0x0 - bx lr -_02094BDC: - subs r2, r2, #0x1 - bpl _02094BBC -_02094BE4: - mov r0, #0x0 - bx lr - - arm_func_start FUN_02094BEC -FUN_02094BEC: ; 0x02094BEC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - bl FUN_02095188 - add r1, r0, #0x7 - mov r0, r1, asr #0x2 - add r0, r1, r0, lsr #0x1d - mov r0, r0, asr #0x3 - cmp r0, #0x0 - addle sp, sp, #0x4 - sub r12, r0, #0x1 - ldmleia sp!, {r4-r5,lr} - bxle lr -_02094C24: - mov r3, r12, lsr #0x1f - mov r1, r12, asr #0x1 - rsb r2, r3, r12, lsl #0x1e - add r1, r12, r1, lsr #0x1e - add r2, r3, r2, ror #0x1e - ldr r3, [r5, #0x0] - mov r1, r1, asr #0x2 - ldr r3, [r3, r1, lsl #0x2] - mov r1, r2, lsl #0x3 - mov r1, r3, lsr r1 - cmp r12, #0x0 - strb r1, [r4], #0x1 - sub r12, r12, #0x1 - bgt _02094C24 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_02094C68 -FUN_02094C68: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - movs r5, r2 - mov r7, r0 - mov r6, r1 - bne _02094C88 - bl FUN_02094FE0 - mov r5, r0 -_02094C88: - cmp r5, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - cmp r6, #0x0 - mov r4, #0x0 - addeq sp, sp, #0x4 - moveq r0, r5 - streq r4, [r5, #0x4] - ldmeqia sp!, {r4-r7,lr} - bxeq lr - add r0, r6, #0x2 - mov r2, r0, lsl #0x3 - add r1, r2, #0x1f - mov r0, r1, asr #0x4 - add r0, r1, r0, lsr #0x1b - ldr r1, [r5, #0x8] - mov r0, r0, asr #0x5 - cmp r0, r1 - movle r0, r5 - ble _02094CF8 - mov r0, r2, asr #0x4 - add r0, r2, r0, lsr #0x1b - mov r1, r0, asr #0x5 - mov r0, r5 - add r1, r1, #0x1 - bl FUN_02094EBC -_02094CF8: - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - sub r0, r6, #0x1 - mov r1, r0, lsr #0x2 - add r12, r1, #0x1 - cmp r6, #0x0 - str r12, [r5, #0x4] - and r3, r0, #0x3 - sub r6, r6, #0x1 - beq _02094D64 - mov r1, #0x0 - mov r0, #0x3 -_02094D34: - ldrb r2, [r7], #0x1 - cmp r3, #0x0 - sub r3, r3, #0x1 - orr r4, r2, r4, lsl #0x8 - ldreq r2, [r5, #0x0] - subeq r12, r12, #0x1 - streq r4, [r2, r12, lsl #0x2] - moveq r4, r1 - moveq r3, r0 - cmp r6, #0x0 - sub r6, r6, #0x1 - bne _02094D34 -_02094D64: - mov r0, r5 - bl FUN_02095040 - mov r0, r5 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_02094D7C -FUN_02094D7C: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r0 - ldr r2, [r4, #0x8] - mov r5, r1 - cmp r2, #0x1 - bge _02094DA0 - mov r1, #0x2 - bl FUN_02094EBC -_02094DA0: - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - mov r0, #0x0 - str r0, [r4, #0xc] - str r0, [r4, #0x4] - ldr r0, [r4, #0x0] - str r5, [r0, #0x0] - ldr r0, [r4, #0x0] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - movne r0, #0x1 - strne r0, [r4, #0x4] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_02094DEC -FUN_02094DEC: ; 0x02094DEC - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _02094E10 - ldr r2, [r4, #0x8] - mov r1, #0x0 - mov r2, r2, lsl #0x2 - bl MI_CpuFill8 -_02094E10: - mov r0, #0x0 - str r0, [r4, #0x4] - str r0, [r4, #0xc] - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_02094E24 -FUN_02094E24: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - cmp r5, r4 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldr r1, [r4, #0x4] - ldr r2, [r5, #0x8] - cmp r1, r2 - ble _02094E58 - bl FUN_02094EBC -_02094E58: - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldr r2, [r4, #0x4] - ldr r0, [r4, #0x0] - ldr r1, [r5, #0x0] - mov r2, r2, lsl #0x2 - bl MI_CpuCopy8 - ldr r0, [r4, #0x4] - str r0, [r5, #0x4] - ldr r0, [r5, #0x4] - cmp r0, #0x0 - bne _02094EA4 - ldr r1, [r5, #0x0] - cmp r1, #0x0 - movne r0, #0x0 - strne r0, [r1, #0x0] -_02094EA4: - ldr r1, [r4, #0xc] - mov r0, r5 - str r1, [r5, #0xc] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_02094EBC -FUN_02094EBC: - stmdb sp!, {r4-r6,lr} - mov r5, r0 - ldr r0, [r5, #0x8] - mov r4, r1 - cmp r4, r0 - ble _02094F30 - ldr r0, [r5, #0x10] - ands r0, r0, #0x2 - movne r0, #0x0 - ldmneia sp!, {r4-r6,lr} - bxne lr - add r0, r4, #0x1 - mov r0, r0, lsl #0x2 - bl FUN_020910A4 - movs r6, r0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldr r0, [r5, #0x0] - cmp r0, #0x0 - beq _02094F28 - ldr r2, [r5, #0x4] - mov r1, r6 - mov r2, r2, lsl #0x2 - bl MI_CpuCopy8 -_02094F20: ; 0x02094F20 - ldr r0, [r5, #0x0] - bl FUN_0209105C -_02094F28: - str r6, [r5, #0x0] - str r4, [r5, #0x8] -_02094F30: - mov r0, r5 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_02094F3C -FUN_02094F3C: ; 0x02094F3C - stmdb sp!, {r4-r6,lr} - mov r6, r0 - add r4, r6, #0x4 - mov r5, #0x0 -_02094F4C: - mov r0, r4 - bl FUN_02095164 - add r5, r5, #0x1 - cmp r5, #0xc - add r4, r4, #0x14 - blt _02094F4C - ldr r0, [r6, #0x108] - ands r0, r0, #0x1 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - mov r0, r6 - bl FUN_0209105C - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_02094F84 -FUN_02094F84: ; 0x02094F84 - stmdb sp!, {r4,lr} - mov r1, #0x0 - mov r2, #0x110 - mov r4, r0 - bl MI_CpuFill8 -_02094F98: ; 0x02094F98 - mov r0, #0x0 - str r0, [r4, #0x0] - str r0, [r4, #0x108] - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_02094FAC -FUN_02094FAC: ; 0x02094FAC - stmdb sp!, {r4,lr} - mov r0, #0x110 - bl FUN_020910A4 - movs r4, r0 - moveq r0, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - bl FUN_02094F84 - mov r1, #0x1 - mov r0, r4 - str r1, [r4, #0x108] - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_02094FE0 -FUN_02094FE0: ; 0x02094FE0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r0, #0x14 - bl FUN_020910A4 -_02094FF0: ; 0x02094FF0 - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {lr} - bxeq lr - mov r1, #0x1 - str r1, [r0, #0x10] - mov r1, #0x0 - str r1, [r0, #0x4] - str r1, [r0, #0xc] - str r1, [r0, #0x8] - str r1, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_0209502C -FUN_0209502C: - ldr ip, _0209503C ; =MI_CpuFill8 - mov r1, #0x0 - mov r2, #0x14 - bx r12 - .balign 4 -_0209503C: .word MI_CpuFill8 - - arm_func_start FUN_02095040 -FUN_02095040: - ldr r3, [r0, #0x4] - cmp r3, #0x0 - bxle lr - ldr r2, [r0, #0x0] - sub r1, r3, #0x1 - cmp r3, #0x0 - add r3, r2, r1, lsl #0x2 - bxle lr - add r2, r0, #0x4 -_02095064: - ldr r1, [r3], #-0x4 - cmp r1, #0x0 - bxne lr - ldr r1, [r2, #0x0] - sub r1, r1, #0x1 - str r1, [r2, #0x0] - ldr r1, [r0, #0x4] - cmp r1, #0x0 - bgt _02095064 - bx lr - - arm_func_start FUN_0209508C -FUN_0209508C: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r2, [r5, #0x4] - mov r4, r1 - cmp r2, r4 - addge sp, sp, #0x4 - ldmgeia sp!, {r4-r5,lr} - bxge lr - ldr r2, [r5, #0x8] - cmp r4, r2 - ble _020950C0 - bl FUN_02094EBC -_020950C0: - ldr r0, [r5, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldr r2, [r5, #0x4] - cmp r2, r4 - addge sp, sp, #0x4 - ldmgeia sp!, {r4-r5,lr} - bxge lr - mov r1, #0x0 -_020950EC: - ldr r0, [r5, #0x0] - str r1, [r0, r2, lsl #0x2] - add r2, r2, #0x1 - cmp r2, r4 - blt _020950EC - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_0209510C -FUN_0209510C: - stmdb sp!, {r4,lr} - movs r4, r0 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _02095138 - ldr r1, [r4, #0x10] - ands r1, r1, #0x2 - bne _02095138 - bl FUN_0209105C -_02095138: - ldr r0, [r4, #0x10] - orr r0, r0, #0x8000 - str r0, [r4, #0x10] - ldr r0, [r4, #0x10] - ands r0, r0, #0x1 - ldmeqia sp!, {r4,lr} - bxeq lr - mov r0, r4 - bl FUN_0209105C - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_02095164 -FUN_02095164: ; 0x02095164 - stmdb sp!, {r4,lr} - movs r4, r0 - ldmeqia sp!, {r4,lr} - bxeq lr - bl FUN_02094DEC - mov r0, r4 - bl FUN_0209510C - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_02095188 -FUN_02095188: ; 0x02095188 - stmdb sp!, {r4,lr} - ldr r1, [r0, #0x4] - cmp r1, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r0, [r0, #0x0] - sub r4, r1, #0x1 - ldr r0, [r0, r4, lsl #0x2] - bl FUN_020951BC - add r0, r0, r4, lsl #0x5 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020951BC -FUN_020951BC: ; 0x020951BC - mov r1, #0x10000 - rsb r1, r1, #0x0 - ands r1, r0, r1 - beq _020951DC - ands r1, r0, #0xff000000 - movne r2, #0x18 - moveq r2, #0x10 - b _020951E8 -_020951DC: - ands r1, r0, #0xff00 - movne r2, #0x8 - moveq r2, #0x0 -_020951E8: - mov r1, r0, lsr r2 - ands r0, r1, #0xf0 - ldreq r0, _02095218 ; =0x020FF524 - ldreqsb r0, [r0, r1] - addeq r0, r0, r2 - bxeq lr - ldr r0, _02095218 ; =0x020FF524 - mov r1, r1, lsr #0x4 - ldrsb r0, [r0, r1] - add r0, r0, r2 - add r0, r0, #0x4 - bx lr - .balign 4 -_02095218: .word 0x020FF524 - - arm_func_start FUN_0209521C -FUN_0209521C: ; 0x0209521C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r3, #0x0 - strb r3, [r0, #0x0] - cmp r2, #0x10 - strb r3, [r0, #0x1] - movhi r2, #0x10 - add r0, r0, #0x4 -_0209523C: - strb r3, [r0, r3] - add r3, r3, #0x1 - cmp r3, #0x100 - blt _0209523C - mov r6, #0x0 - mov r7, r6 - mov r4, r6 - mov r3, r6 - and r12, r2, #0xff -_02095260: - ldrb r5, [r0, r4] - ldrb lr, [r1, r7] - add r2, r7, #0x1 - and r7, r2, #0xff - add r2, r5, lr - add r2, r6, r2 - and r6, r2, #0xff - ldrb r2, [r0, r6] - add lr, r0, r4 - add r4, r4, #0x1 - strb r2, [lr, #0x0] - cmp r7, r12 - moveq r7, r3 - cmp r4, #0x100 - strb r5, [r0, r6] - blt _02095260 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_020952AC -FUN_020952AC: ; 0x020952AC - stmdb sp!, {r4-r9,lr} - ldrb r7, [r0, #0x0] - ldrb r6, [r0, #0x1] - add r0, r0, #0x4 - mov lr, #0x1000000 - add r7, lr, r7, lsl #0x18 - mov r6, r6, lsl #0x18 - ldrb r9, [r0, r7, lsr #0x18] - subs r2, r2, #0x1 - bmi _0209530C -_020952D4: - add r6, r6, r9, lsl #0x18 - subs r2, r2, #0x1 - ldrb r8, [r0, r6, lsr #0x18] - ldrb r5, [r1], #0x1 - strb r8, [r0, r7, lsr #0x18] - strb r9, [r0, r6, lsr #0x18] - add r4, r9, r8 - and r4, r4, #0xff - add r7, r7, lr - ldrb r4, [r0, r4] - ldrb r9, [r0, r7, lsr #0x18] - eor r5, r5, r4 - strb r5, [r3], #0x1 - bge _020952D4 -_0209530C: - sub r7, r7, lr - mov r7, r7, lsr #0x18 - mov r6, r6, lsr #0x18 - strb r7, [r0, #-0x4] - strb r6, [r0, #-0x3] - ldmia sp!, {r4-r9,pc} -_02095324: ; 0x02095324 - ldr r0, _0209532C ; =0x021C8C84 - bx lr - .balign 4 -_0209532C: .word 0x021C8C84 - - arm_func_start FUN_02095330 -FUN_02095330: ; 0x02095330 - stmdb sp!, {r4,lr} - sub sp, sp, #0x8 - mov r4, r0 - ldr r3, [r4, #0x8] - ldr r2, [r4, #0xc] - ldr r1, _020953E4 ; =0x021C8C84 - str r2, [sp, #0x4] - str r3, [sp, #0x0] - mov r2, #0x5 - bl MI_CpuCopy8 - ldr r1, [sp, #0x0] - ldr r2, [r4, #0x4] - ldr r0, [sp, #0x4] - mov r2, r2, lsr #0x8 - mov r12, r1, lsr #0x5 - mov r3, r0, lsr #0x5 - orr r12, r12, r0, lsl #0x1b - and lr, r2, #0x7 - and r0, r1, #0x1f - orr lr, lr, r0, lsl #0x3 - ldr r2, _020953E4 ; =0x021C8C84 - ldr r1, _020953E8 ; =0x021C8C8A - strb lr, [r2, #0x5] - add r0, sp, #0x0 - str r12, [sp, #0x0] - str r3, [sp, #0x4] - mov r2, #0x4 - bl MI_CpuCopy8 - ldrh r0, [r4, #0x10] - ldr r1, [sp, #0x4] - ldr r3, _020953E4 ; =0x021C8C84 - and r1, r1, #0x3f - and r0, r0, #0x3 - orr r0, r1, r0, lsl #0x6 - strb r0, [r3, #0xa] - ldrh r2, [r4, #0x10] - add r0, r4, #0x12 - ldr r1, _020953EC ; =0x021C8C90 - mov r4, r2, asr #0x2 - mov r2, #0x2 - strb r4, [r3, #0xb] - bl MI_CpuCopy8 - ldr r0, _020953E4 ; =0x021C8C84 - add sp, sp, #0x8 - ldmia sp!, {r4,pc} - .balign 4 -_020953E4: .word 0x021C8C84 -_020953E8: .word 0x021C8C8A -_020953EC: .word 0x021C8C90 - - arm_func_start FUN_020953F0 -FUN_020953F0: ; 0x020953F0 - ldr r3, _02095420 ; =0x021C8C78 - and r12, r1, #0xff - ldr r0, _02095424 ; =0x021C8C7C - mov r1, #0x1 - strh r12, [r3, #0x0] - str r1, [r0, #0x0] - cmp r2, #0x0 - movne r0, #0xff - strneh r0, [r3, #0x0] - ldr r0, _02095420 ; =0x021C8C78 - ldrh r0, [r0, #0x0] - bx lr - .balign 4 -_02095420: .word 0x021C8C78 -_02095424: .word 0x021C8C7C - - arm_func_start FUN_02095428 -FUN_02095428: - stmdb sp!, {r4-r6,lr} - mov r5, #0x4 - mov r4, #0x1 -_02095434: - mov r0, r5 - mov r1, r4 - bl PXI_IsCallbackReady -_02095440: ; 0x02095440 - cmp r0, #0x0 - beq _02095434 - ldr r1, _02095490 ; =FUN_020953F0 - mov r0, #0x4 - bl PXI_SetFifoRecvCallback - mov r4, #0x40000 - mov r6, #0x7 - mov r5, #0x0 -_02095460: - mov r0, r6 - mov r1, r5 - mov r2, r5 - mov r3, r5 - bl FUN_020955F4 - cmp r0, #0x1 - beq _02095488 - mov r0, r4 - blx SVC_WaitByLoop - b _02095460 -_02095488: - mov r0, #0x1 - ldmia sp!, {r4-r6,pc} - .balign 4 -_02095490: .word FUN_020953F0 - - arm_func_start FUN_02095494 -FUN_02095494: - stmdb sp!, {r4-r6,lr} - mov r5, r2 - mov r4, r3 - mov r6, r0 - mov r0, r1 - mov r1, r5 - mov r2, r4 - bl FUN_0209555C -_020954B4: ; 0x020954B4 - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} -_020954C0: ; 0x020954C0 - mov r0, r6 - mov r1, r4 - mov r2, r5 - bl memcmp -_020954D0: ; 0x020954D0 - cmp r0, #0x0 - moveq r0, #0x1 - movne r0, #0x0 - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_020954E0 -FUN_020954E0: ; 0x020954E0 - stmdb sp!, {r4-r8,lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, #0x4 - mov r4, #0x1 -_020954F8: - mov r0, r5 - mov r1, r4 - bl PXI_IsCallbackReady -_02095504: ; 0x02095504 - cmp r0, #0x0 - beq _020954F8 - ldr r1, _02095558 ; =FUN_020953F0 - mov r0, #0x4 - bl PXI_SetFifoRecvCallback - mov r0, r6 - mov r1, r7 - bl DC_StoreRange - mov r4, #0x40000 - mov r5, #0x2 -_0209552C: - mov r0, r5 - mov r1, r8 - mov r2, r7 - mov r3, r6 - bl FUN_020955F4 - cmp r0, #0x1 - ldmeqia sp!, {r4-r8,pc} -_02095548: ; 0x02095548 - mov r0, r4 - blx SVC_WaitByLoop - b _0209552C -_02095554: ; 0x02095554 - ldmia sp!, {r4-r8,pc} - .balign 4 -_02095558: .word FUN_020953F0 - - arm_func_start FUN_0209555C -FUN_0209555C: - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r4, r2 - mov r6, r0 - mov r0, r4 - mov r5, r1 - bl DC_InvalidateRange - mov r8, #0x4 - mov r7, #0x1 -_02095580: - mov r0, r8 - mov r1, r7 - bl PXI_IsCallbackReady -_0209558C: ; 0x0209558C - cmp r0, #0x0 - beq _02095580 - ldr r1, _020955F0 ; =FUN_020953F0 - mov r0, #0x4 - bl PXI_SetFifoRecvCallback - mov r0, r5, lsl #0x10 - mov r8, r0, lsr #0x10 - mov r7, #0x40000 - mov r9, #0x1 -_020955B0: - mov r0, r9 - mov r1, r6 - mov r2, r8 - mov r3, r4 - bl FUN_020955F4 - cmp r0, #0x1 - beq _020955D8 - mov r0, r7 - blx SVC_WaitByLoop - b _020955B0 -_020955D8: - mov r0, r4 - mov r1, r5 - bl DC_InvalidateRange - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - .balign 4 -_020955F0: .word FUN_020953F0 - - arm_func_start FUN_020955F4 -FUN_020955F4: ; 0x020955F4 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc4 - ldr ip, _02095AAC ; =0x0000FFFF - ldr sl, _02095AB0 ; =0x021C8CA0 - and r8, r2, r12 - and r7, r1, r12 - mov r5, r1, lsr #0x10 - mov r4, r3, lsr #0x10 - and r1, r3, r12 - orr r3, r8, #0x30000 - str r3, [sp, #0xc] - ldr r3, _02095AB4 ; =0x01050000 - orr r2, r2, #0x20000 - orr r3, r1, r3 - str r3, [sp, #0x14] - orr r1, r1, #0x1040000 - mov r9, r0 - and r0, r5, #0xff - str r2, [sp, #0x1c] - str r1, [sp, #0x24] - ldr r1, _02095AB8 ; =0x02002200 - mov r8, #0x0 - orr r2, r4, #0x40000 - orr r1, r1, r10, lsr #0x18 - str r1, [sp, #0x28] - and r1, r12, r10, lsr #0x8 - orr r1, r1, #0x10000 - ldr r3, _02095ABC ; =0x02002300 - str r2, [sp, #0x10] - orr r2, r0, r3 - str r2, [sp, #0x8] - orr r2, r4, #0x30000 - str r2, [sp, #0x20] - ldr r2, _02095AC0 ; =0x02002500 - mov r6, r10, lsl #0x8 - str r1, [sp, #0x2c] - and r1, r6, #0xff00 - orr r0, r0, r2 - ldr r3, _02095AC4 ; =0x01020000 - str r0, [sp, #0x18] - orr r0, r1, r3 - str r0, [sp, #0x30] - mov r0, #0x20000 - str r0, [sp, #0x40] - mov r0, #0x5 - str r0, [sp, #0xac] - mov r0, #0x3 - str r0, [sp, #0xb0] - mov r0, #0x6 - str r0, [sp, #0xb8] - mov r0, #0x4000 - orr r7, r7, #0x10000 - str r8, [sp, #0xb4] - mov r4, #0x1 - str r8, [sp, #0xa8] - mov r5, #0x4 - str r8, [sp, #0xa4] - str r8, [sp, #0xa0] - str r8, [sp, #0x90] - str r8, [sp, #0x98] - str r8, [sp, #0x9c] - str r8, [sp, #0x94] - str r8, [sp, #0x8c] - str r8, [sp, #0x6c] - str r8, [sp, #0x74] - str r8, [sp, #0x7c] - str r8, [sp, #0x84] - str r8, [sp, #0x88] - str r8, [sp, #0x80] - str r8, [sp, #0x78] - str r8, [sp, #0x70] - str r8, [sp, #0x68] - str r8, [sp, #0x64] - str r8, [sp, #0x38] - str r8, [sp, #0x44] - str r8, [sp, #0x4c] - str r8, [sp, #0x54] - str r8, [sp, #0x5c] - str r8, [sp, #0x60] - str r8, [sp, #0x58] - str r8, [sp, #0x50] - str r8, [sp, #0x48] - str r8, [sp, #0x3c] - str r8, [sp, #0x34] - mov r6, r8 - str r0, [sp, #0xbc] -_0209574C: - cmp r8, #0x0 - bne _02095988 - ldr r0, _02095AC8 ; =0x021C8C7C - cmp r9, #0x7 - str r6, [r0, #0x0] - addls pc, pc, r9, lsl #0x2 - b _0209574C -_02095768: - b _0209574C -_0209576C: - b _02095788 -_02095770: - b _02095834 -_02095774: - b _02095854 -_02095778: - b _020958F0 -_0209577C: - b _020958F0 -_02095780: - b _02095948 -_02095784: - b _02095968 -_02095788: - ldr r1, [sp, #0x8] - mov r0, r5 - mov r2, r6 - bl PXI_SendWordByFifo -_02095798: ; 0x02095798 - cmp r0, #0x0 - ldrlt r8, [sp, #0x34] - blt _0209574C - ldr r2, [sp, #0x38] - mov r0, r5 - mov r1, r7 - bl PXI_SendWordByFifo -_020957B4: ; 0x020957B4 - cmp r0, #0x0 - ldrlt r8, [sp, #0x3c] - blt _0209574C - ldr r1, [sp, #0x40] - ldr r2, [sp, #0x44] - mov r0, r5 - bl PXI_SendWordByFifo -_020957D0: ; 0x020957D0 - cmp r0, #0x0 - ldrlt r8, [sp, #0x48] - blt _0209574C - ldr r1, [sp, #0xc] - ldr r2, [sp, #0x4c] - mov r0, r5 - bl PXI_SendWordByFifo -_020957EC: ; 0x020957EC - cmp r0, #0x0 - ldrlt r8, [sp, #0x50] - blt _0209574C - ldr r1, [sp, #0x10] - ldr r2, [sp, #0x54] - mov r0, r5 - bl PXI_SendWordByFifo -_02095808: ; 0x02095808 - cmp r0, #0x0 - ldrlt r8, [sp, #0x58] - blt _0209574C - ldr r1, [sp, #0x14] - ldr r2, [sp, #0x5c] - mov r0, r5 - bl PXI_SendWordByFifo -_02095824: ; 0x02095824 - cmp r0, #0x0 - ldrlt r8, [sp, #0x60] - movge r8, r4 - b _0209574C -_02095834: - ldr r1, _02095ACC ; =0x03002000 - mov r0, r5 - mov r2, r6 - bl PXI_SendWordByFifo -_02095844: ; 0x02095844 - cmp r0, #0x0 - movge r8, r4 - ldrlt r8, [sp, #0x64] - b _0209574C -_02095854: - ldr r1, [sp, #0x18] - mov r0, r5 - mov r2, r6 - bl PXI_SendWordByFifo -_02095864: ; 0x02095864 - cmp r0, #0x0 - ldrlt r8, [sp, #0x68] - blt _020958E0 - ldr r2, [sp, #0x6c] - mov r0, r5 - mov r1, r7 - bl PXI_SendWordByFifo -_02095880: ; 0x02095880 - cmp r0, #0x0 - ldrlt r8, [sp, #0x70] - blt _020958E0 - ldr r1, [sp, #0x1c] - ldr r2, [sp, #0x74] - mov r0, r5 - bl PXI_SendWordByFifo -_0209589C: ; 0x0209589C - cmp r0, #0x0 - ldrlt r8, [sp, #0x78] - blt _020958E0 - ldr r1, [sp, #0x20] - ldr r2, [sp, #0x7c] - mov r0, r5 - bl PXI_SendWordByFifo -_020958B8: ; 0x020958B8 - cmp r0, #0x0 - ldrlt r8, [sp, #0x80] - blt _020958E0 - ldr r1, [sp, #0x24] - ldr r2, [sp, #0x84] - mov r0, r5 - bl PXI_SendWordByFifo -_020958D4: ; 0x020958D4 - cmp r0, #0x0 - ldrlt r8, [sp, #0x88] - movge r8, r4 -_020958E0: - bl OS_GetTick -_020958E4: ; 0x020958E4 - str r0, [sp, #0x0] - mov r11, r1 - b _0209574C -_020958F0: - ldr r1, [sp, #0x28] - mov r0, r5 - mov r2, r6 - bl PXI_SendWordByFifo -_02095900: ; 0x02095900 - cmp r0, #0x0 - ldrlt r8, [sp, #0x8c] - blt _0209574C - ldr r1, [sp, #0x2c] - ldr r2, [sp, #0x90] - mov r0, r5 - bl PXI_SendWordByFifo -_0209591C: ; 0x0209591C - cmp r0, #0x0 - ldrlt r8, [sp, #0x94] - blt _0209574C - ldr r1, [sp, #0x30] - ldr r2, [sp, #0x98] - mov r0, r5 - bl PXI_SendWordByFifo -_02095938: ; 0x02095938 - cmp r0, #0x0 - ldrlt r8, [sp, #0x9c] - movge r8, r4 - b _0209574C -_02095948: - ldr r1, _02095AD0 ; =0x03002D00 - mov r0, r5 - mov r2, r6 - bl PXI_SendWordByFifo -_02095958: ; 0x02095958 - cmp r0, #0x0 - movge r8, r4 - ldrlt r8, [sp, #0xa0] - b _0209574C -_02095968: - ldr r1, _02095AD4 ; =0x03002100 - mov r0, r5 - mov r2, r6 - bl PXI_SendWordByFifo -_02095978: ; 0x02095978 - cmp r0, #0x0 - movge r8, r4 - ldrlt r8, [sp, #0xa4] - b _0209574C -_02095988: - ldr r0, _02095AC8 ; =0x021C8C7C - ldr r0, [r0, #0x0] - cmp r0, #0x1 - bne _0209574C - ldr r0, _02095AD8 ; =0x021C8C78 - ldr r8, [sp, #0xa8] - ldrh r0, [r0, #0x0] - cmp r0, #0x0 - bne _02095AA0 - cmp r9, #0x7 - addls pc, pc, r9, lsl #0x2 - b _0209574C -_020959B8: ; 0x020959B8 - b _0209574C -_020959BC: ; 0x020959BC - b _020959D8 -_020959C0: ; 0x020959C0 - b _020959E4 -_020959C4: ; 0x020959C4 - b _020959EC -_020959C8: ; 0x020959C8 - b _020959F4 -_020959CC: ; 0x020959CC - b _020959F4 -_020959D0: ; 0x020959D0 - b _02095A88 -_020959D4: ; 0x020959D4 - b _02095A94 -_020959D8: - add sp, sp, #0xc4 - mov r0, #0x1 - ldmia sp!, {r4-r11,pc} -_020959E4: - mov r9, r5 - b _0209574C -_020959EC: - ldr r9, [sp, #0xac] - b _0209574C -_020959F4: - mov r0, r10 - mov r1, r4 - bl DC_InvalidateRange - cmp r9, #0x4 - bne _02095A24 - ldrb r0, [r10, #0x0] - ands r0, r0, #0x2 - ldrne r9, [sp, #0xb0] - bne _0209574C - add sp, sp, #0xc4 - mov r0, #0x0 - ldmia sp!, {r4-r11,pc} -_02095A24: - ldrb r1, [r10, #0x0] - ands r0, r1, #0x1 - addeq sp, sp, #0xc4 - moveq r0, #0x1 - ldmeqia sp!, {r4-r11,pc} -_02095A38: ; 0x02095A38 - ands r0, r1, #0x20 - bne _02095A74 - bl OS_GetTick - ldr r2, [sp, #0x0] - ldr r3, [sp, #0xb4] - subs r2, r0, r2 - sbc r0, r1, r11 - mov r1, r0, lsl #0x6 - orr r1, r1, r2, lsr #0x1a - mov r0, r2, lsl #0x6 - ldr r2, _02095ADC ; =0x000082EA - bl _ll_udiv -_02095A68: ; 0x02095A68 - cmp r1, #0x0 - cmpeq r0, #0xfa0 - bls _02095A7C -_02095A74: - ldr r9, [sp, #0xb8] - b _0209574C -_02095A7C: - ldr r0, [sp, #0xbc] - blx SVC_WaitByLoop - b _0209574C -_02095A88: - add sp, sp, #0xc4 - mov r0, r8 - ldmia sp!, {r4-r11,pc} -_02095A94: - add sp, sp, #0xc4 - mov r0, #0x1 - ldmia sp!, {r4-r11,pc} -_02095AA0: - mov r0, r8 - add sp, sp, #0xc4 - ldmia sp!, {r4-r11,pc} - .balign 4 -_02095AAC: .word 0x0000FFFF -_02095AB0: .word 0x021C8CA0 -_02095AB4: .word 0x01050000 -_02095AB8: .word 0x02002200 -_02095ABC: .word 0x02002300 -_02095AC0: .word 0x02002500 -_02095AC4: .word 0x01020000 -_02095AC8: .word 0x021C8C7C -_02095ACC: .word 0x03002000 -_02095AD0: .word 0x03002D00 -_02095AD4: .word 0x03002100 -_02095AD8: .word 0x021C8C78 -_02095ADC: .word 0x000082EA - - arm_func_start FUN_02095AE0 -FUN_02095AE0: - ldrb r0, [r0, #0x0] - cmp r0, #0x7f - moveq r0, #0x0 - bxeq lr - cmp r0, #0x1 - movcc r0, #0x0 - bxcc lr - cmp r0, #0xdf - movls r0, #0x1 - movhi r0, #0x0 - bx lr - - arm_func_start FUN_02095B0C -FUN_02095B0C: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0xc - mov r5, r0 - mov r4, r1 - bl FUN_02095AE0 -_02095B20: ; 0x02095B20 - cmp r0, #0x0 - addeq sp, sp, #0xc - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,pc} -_02095B30: ; 0x02095B30 - add r1, sp, #0x0 - mov r0, r5 - mov r2, #0x4 - bl MI_CpuCopy8 - add r1, sp, #0x4 - mov r0, r4 - mov r2, #0x4 - bl MI_CpuCopy8 - ldr r3, [sp, #0x4] - ldr r2, [sp, #0x0] - mvn r0, #0x1 - orr r1, r2, r3 - cmp r1, r0 - addeq sp, sp, #0xc - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,pc} -_02095B70: ; 0x02095B70 - mvn r0, r3 - ands r0, r2, r0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0xc - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_02095B88 -FUN_02095B88: - mov r2, #0x0 -_02095B8C: - ldrb r1, [r0, r2] - cmp r1, #0x0 - movne r0, #0x1 - bxne lr - add r2, r2, #0x1 - cmp r2, #0x20 - blt _02095B8C - mov r0, #0x0 - bx lr - - arm_func_start FUN_02095BB0 -FUN_02095BB0: ; 0x02095BB0 - mvn r2, #0x0 - mov r12, #0x0 - eor r3, r2, r2, lsr r0 - mov r2, r12 -_02095BC0: - rsb r0, r2, #0x18 - mov r0, r3, lsr r0 - strb r0, [r1, r12] - add r12, r12, #0x1 - cmp r12, #0x4 - add r2, r2, #0x8 - blt _02095BC0 - bx lr - - arm_func_start FUN_02095BE0 -FUN_02095BE0: ; 0x02095BE0 - stmdb sp!, {r4,lr} - mov lr, #0x0 - mov r4, lr - mov r2, lr -_02095BF0: - ldrb r3, [r0, lr] - mov r12, r2 -_02095BF8: - mov r1, r3, asr r12 - ands r1, r1, #0x1 - add r12, r12, #0x1 - addne r4, r4, #0x1 - cmp r12, #0x8 - blt _02095BF8 - add lr, lr, #0x1 - cmp lr, #0x4 - blt _02095BF0 - and r0, r4, #0xff - ldmia sp!, {r4,pc} - - arm_func_start FUN_02095C24 -FUN_02095C24: ; 0x02095C24 - ldr ip, _02095C34 ; =MI_CpuCopy8 - ldr r1, _02095C38 ; =0x021C8C84 - mov r2, #0xe - bx r12 - .balign 4 -_02095C34: .word MI_CpuCopy8 -_02095C38: .word 0x021C8C84 - - arm_func_start FUN_02095C3C -FUN_02095C3C: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - ldr r1, _02095CD8 ; =0x021C8C80 - mov r10, r0 - ldr r8, [r1, #0x0] - mov r7, r10 - mov r9, #0x0 - add r4, r10, #0x400 - add r6, r10, #0x500 - mov r5, #0x100 - mov r11, #0xfe -_02095C68: - mov r0, r6 - mov r1, r7 - mov r2, r11 - bl MATH_CalcCRC16 - add r1, r10, r9, lsl #0x8 - strh r0, [r1, #0xfe] -_02095C80: - mov r0, r8 - mov r1, r5 - mov r2, r7 - bl FUN_020954E0 - mov r0, r7 - mov r1, r8 - mov r2, r5 - mov r3, r4 - bl FUN_02095494 -_02095CA4: ; 0x02095CA4 - cmp r0, #0x0 - beq _02095C80 - add r9, r9, #0x1 - cmp r9, #0x4 - add r7, r7, #0x100 - add r8, r8, #0x100 - blt _02095C68 - bl FUN_02095428 -_02095CC4: ; 0x02095CC4 - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - .balign 4 -_02095CD8: .word 0x021C8C80 - - arm_func_start FUN_02095CDC -FUN_02095CDC: ; 0x02095CDC - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - ldr r3, _02095D64 ; =0x021C8C80 - mov r4, r0 - ldr r6, [r3, #0x0] - mov r9, r1 - mov r8, r2 - mov r7, #0x0 - mov r5, #0x100 -_02095D00: - ldr r0, [r9, r7, lsl #0x2] - cmp r0, #0x0 - beq _02095D38 -_02095D0C: - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_020954E0 - mov r0, r4 - mov r1, r6 - mov r2, r5 - mov r3, r8 - bl FUN_02095494 -_02095D30: ; 0x02095D30 - cmp r0, #0x0 - beq _02095D0C -_02095D38: - add r7, r7, #0x1 - cmp r7, #0x4 - add r4, r4, #0x100 - add r6, r6, #0x100 - blt _02095D00 - bl FUN_02095428 -_02095D50: ; 0x02095D50 - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - .balign 4 -_02095D64: .word 0x021C8C80 - - arm_func_start FUN_02095D68 -FUN_02095D68: - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _02095D98 ; =0x021C8C80 - mov r2, r0 - ldr r0, [r1, #0x0] - mov r1, #0x400 - bl FUN_0209555C -_02095D84: ; 0x02095D84 - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_02095D98: .word 0x021C8C80 - - arm_func_start FUN_02095D9C -FUN_02095D9C: - stmdb sp!, {r4,lr} - mov r4, r0 - mov r0, #0x20 - mov r1, r0 - mov r2, r4 - bl FUN_0209555C -_02095DB4: ; 0x02095DB4 - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_02095DC0: ; 0x02095DC0 - ldrh r2, [r4, #0x0] - ldr r1, _02095DDC ; =0x021C8C80 - mov r0, #0x1 - mov r2, r2, lsl #0x3 - sub r2, r2, #0x400 - str r2, [r1, #0x0] - ldmia sp!, {r4,pc} - .balign 4 -_02095DDC: .word 0x021C8C80 - - arm_func_start FUN_02095DE0 -FUN_02095DE0: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - ldr r2, _02095EBC ; =0x021C8C80 - mov r10, r1 - ldr r8, [r2, #0x0] - bl FUN_02095330 - ldr r1, _02095EC0 ; =0x0000A001 - add r0, r10, #0x200 - bl MATHi_CRC16InitTableRev - mov r9, #0x0 - add r4, r10, #0x100 - add r6, r10, #0xf0 - mov r7, #0x100 - mov r5, #0xe - mov r11, #0xfe -_02095E1C: - mov r0, r8 - mov r1, r7 - mov r2, r10 - bl FUN_0209555C -_02095E2C: ; 0x02095E2C - cmp r0, #0x0 - bne _02095E44 - bl OS_Terminate - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r11,pc} -_02095E44: - ldr r0, _02095EC4 ; =0x021C8C84 - mov r1, r6 - mov r2, r5 - bl MI_CpuCopy8 - mov r1, r10 - mov r2, r11 - add r0, r10, #0x200 - bl MATH_CalcCRC16 - strh r0, [r10, #0xfe] -_02095E68: - mov r0, r8 - mov r1, r7 - mov r2, r10 - bl FUN_020954E0 - mov r0, r10 - mov r1, r8 - mov r2, r7 - mov r3, r4 - bl FUN_02095494 -_02095E8C: ; 0x02095E8C - cmp r0, #0x0 - beq _02095E68 - add r9, r9, #0x1 - cmp r9, #0x2 - add r8, r8, #0x100 - blt _02095E1C - bl FUN_02095428 -_02095EA8: ; 0x02095EA8 - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - .balign 4 -_02095EBC: .word 0x021C8C80 -_02095EC0: .word 0x0000A001 -_02095EC4: .word 0x021C8C84 - - arm_func_start FUN_02095EC8 -FUN_02095EC8: - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, _02095F90 ; =0x021C8C84 - mov r1, r4 - mov r2, #0x6 - bl MI_CpuCopy8 - ldr r3, [r4, #0x0] - mvn r0, #0x0 - ldr r2, [r4, #0x4] - ldr r1, _02095F94 ; =0x000007FF - and r0, r3, r0 - str r0, [r4, #0x0] - and r1, r2, r1 - ldr r0, _02095F98 ; =0x021C8C89 - str r1, [r4, #0x4] - add r1, r4, #0x8 - mov r2, #0x6 - bl MI_CpuCopy8 - add r12, r4, #0x8 - ldr r1, [r4, #0x8] - ldr r0, [r12, #0x4] - mov r1, r1, lsr #0x3 - orr r1, r1, r0, lsl #0x1d - str r1, [r4, #0x8] - mov r0, r0, lsr #0x3 - str r0, [r12, #0x4] - ldr r3, [r4, #0x8] - mvn r0, #0x0 - ldr r2, [r12, #0x4] - ldr r1, _02095F94 ; =0x000007FF - and r0, r3, r0 - str r0, [r4, #0x8] - and r1, r2, r1 - ldr r0, _02095F9C ; =0x021C8C8E - str r1, [r12, #0x4] - add r1, r4, #0x10 - mov r2, #0x2 - bl MI_CpuCopy8 - ldrh r1, [r4, #0x10] - ldr r3, _02095FA0 ; =0x000003FF - ldr r0, _02095FA4 ; =0x021C8C90 - mov r1, r1, asr #0x6 - strh r1, [r4, #0x10] - ldrh r12, [r4, #0x10] - add r1, r4, #0x12 - mov r2, #0x2 - and r3, r12, r3 - strh r3, [r4, #0x10] - bl MI_CpuCopy8 - ldmia sp!, {r4,pc} - .balign 4 -_02095F90: .word 0x021C8C84 -_02095F94: .word 0x000007FF -_02095F98: .word 0x021C8C89 -_02095F9C: .word 0x021C8C8E -_02095FA0: .word 0x000003FF -_02095FA4: .word 0x021C8C90 - - arm_func_start FUN_02095FA8 -FUN_02095FA8: ; 0x02095FA8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _02095FD8 ; =0x021C8C80 - mov r2, r0 - ldr r0, [r1, #0x0] - mov r1, #0x300 - bl FUN_0209555C -_02095FC4: ; 0x02095FC4 - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_02095FD8: .word 0x021C8C80 - - arm_func_start FUN_02095FDC -FUN_02095FDC: ; 0x02095FDC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - add r1, r5, r4, lsl #0x8 - mov r0, #0x0 - mov r2, #0x100 - bl MIi_CpuClear16 - add r0, r5, r4, lsl #0x8 - mov r1, #0xff - strb r1, [r0, #0xe7] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_02096010 -FUN_02096010: ; 0x02096010 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x14 - mov r7, r0 - mov r1, r7 - mov r0, #0x0 - mov r2, #0x400 - bl MIi_CpuClear16 - mov r2, #0x0 - mov r1, #0xff -_02096034: - add r0, r7, r2, lsl #0x8 - add r2, r2, #0x1 - strb r1, [r0, #0xe7] - cmp r2, #0x3 - blt _02096034 - add r0, sp, #0x0 - bl FUN_020967A4 -_02096050: ; 0x02096050 - add r0, sp, #0x0 - bl FUN_02095330 - mov r6, r0 - mov r5, #0x0 - mov r4, #0xe -_02096064: - mov r0, r6 - mov r2, r4 - add r1, r7, #0xf0 - bl MI_CpuCopy8 - add r5, r5, #0x1 - cmp r5, #0x2 - add r7, r7, #0x100 - blt _02096064 - mov r0, #0x0 - add sp, sp, #0x14 - ldmia sp!, {r4-r7,pc} - - arm_func_start FUN_02096090 -FUN_02096090: - stmdb sp!, {r4,lr} - sub sp, sp, #0x8 - mov r4, r0 - ldrb r0, [r4, #0xe7] - cmp r0, #0xff - addeq sp, sp, #0x8 - moveq r0, #0x1 - ldmeqia sp!, {r4,pc} -_020960B0: ; 0x020960B0 - cmp r0, #0x2 - addhi sp, sp, #0x8 - movhi r0, #0x0 - ldmhiia sp!, {r4,pc} -_020960C0: ; 0x020960C0 - add r0, r4, #0x40 - bl FUN_02095B88 -_020960C8: ; 0x020960C8 - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_020960D8: ; 0x020960D8 - ldr r1, _0209618C ; =0x020FF574 - add r0, r4, #0xc0 - mov r2, #0x4 - bl memcmp -_020960E8: ; 0x020960E8 - cmp r0, #0x0 - beq _02096140 - add r0, r4, #0xc4 - bl FUN_02095AE0 -_020960F8: ; 0x020960F8 - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_02096108: ; 0x02096108 - ldrb r0, [r4, #0xd0] - cmp r0, #0x20 - addhi sp, sp, #0x8 - movhi r0, #0x0 - ldmhiia sp!, {r4,pc} -_0209611C: ; 0x0209611C - add r1, sp, #0x0 - bl FUN_02095BB0 - add r1, sp, #0x0 - add r0, r4, #0xc0 - bl FUN_02095B0C -_02096130: ; 0x02096130 - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_02096140: - ldr r1, _0209618C ; =0x020FF574 - add r0, r4, #0xc8 - mov r2, #0x4 - bl memcmp -_02096150: ; 0x02096150 - cmp r0, #0x0 - beq _02096180 - add r0, r4, #0xc8 - bl FUN_02095AE0 -_02096160: ; 0x02096160 - cmp r0, #0x0 - bne _02096180 - add r0, r4, #0xcc - bl FUN_02095AE0 -_02096170: ; 0x02096170 - cmp r0, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_02096180: - mov r0, #0x1 - add sp, sp, #0x8 - ldmia sp!, {r4,pc} - .balign 4 -_0209618C: .word 0x020FF574 - - arm_func_start FUN_02096190 -FUN_02096190: ; 0x02096190 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x14 - mov r10, r0 - mov r1, #0x0 - mov r2, #0x700 - bl MI_CpuFill8 - mov r0, r10 - bl FUN_02095D9C -_020961B0: ; 0x020961B0 - cmp r0, #0x0 - addeq sp, sp, #0x14 - ldreq r0, _020964B4 ; =0xFFFFD8EF - ldmeqia sp!, {r4-r11,pc} -_020961C0: ; 0x020961C0 - ldr r1, _020964B8 ; =0x0000A001 - add r0, r10, #0x500 - bl MATHi_CRC16InitTableRev - mov r0, r10 - bl FUN_02095D68 -_020961D4: ; 0x020961D4 - cmp r0, #0x0 - addeq sp, sp, #0x14 - ldreq r0, _020964B4 ; =0xFFFFD8EF - ldmeqia sp!, {r4-r11,pc} -_020961E4: ; 0x020961E4 - add r0, sp, #0x0 - mov r1, #0x0 - mov r2, #0x10 - bl MI_CpuFill8 - mov r8, r10 - mov r7, r10 - mov r9, #0x0 - add r11, sp, #0x0 - add r6, r10, #0x500 - mov r4, #0x1 - mov r5, #0xfe -_02096210: - mov r0, r6 - mov r1, r8 - mov r2, r5 - bl MATH_CalcCRC16 - add r1, r10, r9, lsl #0x8 - ldrh r1, [r1, #0xfe] - cmp r0, r1 - bne _02096240 - mov r0, r7 - bl FUN_02096090 -_02096238: ; 0x02096238 - cmp r0, #0x0 - strne r4, [r11, r9, lsl #0x2] -_02096240: - add r9, r9, #0x1 - cmp r9, #0x3 - add r8, r8, #0x100 - add r7, r7, #0x100 - blt _02096210 - add r0, r10, #0x500 - add r1, r10, #0x300 - mov r2, #0xfe - bl MATH_CalcCRC16 - add r1, r10, #0x300 - ldrh r1, [r1, #0xfe] - cmp r0, r1 - moveq r0, #0x1 - ldr r1, [sp, #0x0] - streq r0, [sp, #0xc] - cmp r1, #0x0 - beq _020962BC - ldr r0, [sp, #0x4] - cmp r0, #0x0 - beq _020962BC - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _020962BC - ldr r0, [sp, #0xc] - cmp r0, #0x0 - beq _020962BC - add r0, r10, #0xf0 - bl FUN_02095C24 - add sp, sp, #0x14 - mov r0, #0x0 - ldmia sp!, {r4-r11,pc} -_020962BC: - cmp r1, #0x0 - bne _0209630C - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bne _0209630C - ldr r0, [sp, #0x8] - cmp r0, #0x0 - bne _0209630C - ldr r0, [sp, #0xc] - cmp r0, #0x0 - bne _0209630C - mov r0, r10 - bl FUN_02096010 - mov r0, r10 - bl FUN_02095C3C -_020962F8: ; 0x020962F8 - cmp r0, #0x0 - movne r0, #0x0 - add sp, sp, #0x14 - ldreq r0, _020964BC ; =0xFFFFD8F0 - ldmia sp!, {r4-r11,pc} -_0209630C: - cmp r1, #0x0 - beq _02096320 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bne _0209635C -_02096320: - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _02096338 - ldr r0, [sp, #0xc] - cmp r0, #0x0 - bne _0209635C -_02096338: - mov r0, r10 - bl FUN_02096010 - mov r0, r10 - bl FUN_02095C3C -_02096348: ; 0x02096348 - cmp r0, #0x0 - movne r0, #0x0 - add sp, sp, #0x14 - ldreq r0, _020964BC ; =0xFFFFD8F0 - ldmia sp!, {r4-r11,pc} -_0209635C: - cmp r1, #0x0 - bne _02096394 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bne _02096394 - mov r0, r10 - bl FUN_02096010 - mov r0, r10 - bl FUN_02095C3C -_02096380: ; 0x02096380 - cmp r0, #0x0 - ldrne r0, _020964C0 ; =0xFFFFD8ED - add sp, sp, #0x14 - ldreq r0, _020964BC ; =0xFFFFD8F0 - ldmia sp!, {r4-r11,pc} -_02096394: - cmp r1, #0x0 - bne _020963C4 - mov r0, r10 - mov r1, #0x0 - bl FUN_02095FDC - add r0, r10, #0x1f0 - add r1, r10, #0xf0 - mov r2, #0xe - bl MI_CpuCopy8 - ldrb r0, [r10, #0x1ef] - strb r0, [r10, #0xef] - b _020963F4 -_020963C4: - ldr r0, [sp, #0x4] - cmp r0, #0x0 - bne _020963F4 - mov r0, r10 - mov r1, #0x1 - bl FUN_02095FDC - add r0, r10, #0xf0 - add r1, r10, #0x1f0 - mov r2, #0xe - bl MI_CpuCopy8 - ldrb r0, [r10, #0xef] - strb r0, [r10, #0x1ef] -_020963F4: - add r0, r10, #0xf0 - bl FUN_02095C24 - ldr r0, [sp, #0x8] - cmp r0, #0x0 - bne _02096414 - mov r0, r10 - mov r1, #0x2 - bl FUN_02095FDC -_02096414: - ldr r0, [sp, #0xc] - cmp r0, #0x0 - bne _02096430 - add r1, r10, #0x300 - mov r0, #0x0 - mov r2, #0x100 - bl MIi_CpuClear16 -_02096430: - mov r4, #0x0 - mov r1, r4 - add r0, sp, #0x0 - add r5, r10, #0xef - mov r6, #0x1 -_02096444: - ldr r2, [r0, r1, lsl #0x2] - cmp r2, #0x0 - bne _0209647C - ldrb r2, [r10, #0xef] - mov r7, r6, lsl r1 - ands r2, r2, r7 - beq _0209647C - ldrb r3, [r5, #0x0] - mvn r2, r7 - mov r4, r6 - and r2, r3, r2 - strb r2, [r5, #0x0] - ldrb r2, [r10, #0xef] - strb r2, [r10, #0x1ef] -_0209647C: - add r1, r1, #0x1 - cmp r1, #0x3 - blt _02096444 - mov r0, r10 - bl FUN_02095C3C -_02096490: ; 0x02096490 - cmp r0, #0x0 - addeq sp, sp, #0x14 - ldreq r0, _020964BC ; =0xFFFFD8F0 - ldmeqia sp!, {r4-r11,pc} -_020964A0: ; 0x020964A0 - cmp r4, #0x0 - ldrne r0, _020964C4 ; =0xFFFFD8EE - moveq r0, #0x0 - add sp, sp, #0x14 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020964B4: .word 0xFFFFD8EF -_020964B8: .word 0x0000A001 -_020964BC: .word 0xFFFFD8F0 -_020964C0: .word 0xFFFFD8ED -_020964C4: .word 0xFFFFD8EE - - arm_func_start FUN_020964C8 -FUN_020964C8: - stmdb sp!, {lr} - sub sp, sp, #0x14 - add r0, sp, #0x0 - bl FUN_02095EC8 - ldr r2, [sp, #0x8] - ldr r1, [sp, #0xc] - mov r0, #0x0 - cmp r1, r0 - cmpeq r2, r0 - bne _0209650C - ldr r1, [sp, #0x4] - ldr r2, [sp, #0x0] - cmp r1, r0 - cmpeq r2, r0 - addeq sp, sp, #0x14 - moveq r0, #0x1 - ldmeqia sp!, {pc} -_0209650C: - mov r0, #0x0 - add sp, sp, #0x14 - ldmia sp!, {pc} - - arm_func_start FUN_02096518 -FUN_02096518: ; 0x02096518 - stmdb sp!, {r4,lr} - sub sp, sp, #0x18 - mov r4, r0 - add r0, sp, #0x0 - bl FUN_02095EC8 -_0209652C: ; 0x0209652C - add r0, sp, #0x0 - ldmia r0, {r2-r3} - stmia r4, {r2-r3} - add r1, sp, #0x8 - add r0, r4, #0x8 - ldmia r1, {r2-r3} - stmia r0, {r2-r3} - ldr r2, [sp, #0x0] - ldr r1, [sp, #0x4] - mov r0, #0x0 - cmp r1, r0 - cmpeq r2, r0 - streq r0, [r4, #0x10] - movne r0, #0x1 - strne r0, [r4, #0x10] - add sp, sp, #0x18 - ldmia sp!, {r4,pc} - - arm_func_start FUN_02096570 -FUN_02096570: ; 0x02096570 - stmdb sp!, {r4-r10,lr} - sub sp, sp, #0x28 - add r2, sp, #0x0 - mov r1, #0x0 - strb r1, [r2, #0x0] - strb r1, [r2, #0x1] - strb r1, [r2, #0x2] - strb r1, [r2, #0x3] - strb r1, [r2, #0x4] - mov r5, r0 - strb r1, [r2, #0x5] - bl FUN_02095EC8 - bl RTC_Init - add r0, sp, #0x8 - bl RTC_GetDate -_020965AC: ; 0x020965AC - cmp r0, #0x0 - addne sp, sp, #0x28 - movne r0, #0x0 - ldmneia sp!, {r4-r10,pc} -_020965BC: ; 0x020965BC - add r0, sp, #0x18 - bl RTC_GetTime -_020965C4: ; 0x020965C4 - cmp r0, #0x0 - addne sp, sp, #0x28 - movne r0, #0x0 - ldmneia sp!, {r4-r10,pc} -_020965D4: ; 0x020965D4 - add r0, sp, #0x8 - add r1, sp, #0x18 - bl RTC_ConvertDateTimeToSecond - mov r4, r0 - mov r0, #0x0 - subs r2, r4, r0 - sbcs r2, r1, r0 - addlt sp, sp, #0x28 - ldmltia sp!, {r4-r10,pc} -_020965F8: ; 0x020965F8 - bl OS_IsTickAvailable -_020965FC: ; 0x020965FC - cmp r0, #0x0 - beq _0209660C - ldr r0, _02096700 ; =OS_GetTick - adds r4, r4, r0 -_0209660C: - add r0, sp, #0x0 - bl OS_GetMacAddress - ldrb r1, [sp, #0x0] - ldr r6, _02096704 ; =0x5D588B65 - ldr r7, _02096708 ; =0x00269EC3 - ldrb r0, [sp, #0x1] - mla r9, r4, r6, r7 - mov r1, r1, lsl #0x10 - orr r1, r1, r0, lsl #0x8 - ldrb r2, [sp, #0x2] - ldr r0, _0209670C ; =0x000009BF - ldrb r8, [sp, #0x3] - orr r1, r2, r1 - cmp r1, r0 - movne r1, #0x1 - mov r2, r9, lsr #0x10 - mov r0, #0x3e8 - mul r3, r2, r0 - mov r2, r3, lsr #0x10 - mov r3, r8, lsl #0x10 - ldrb r4, [sp, #0x4] - ldrb r0, [sp, #0x5] - mov r8, #0x0 - orr r10, r3, r4, lsl #0x8 - strh r2, [r5, #0x10] - str r8, [r5, #0x8] - str r8, [r5, #0xc] - moveq r1, #0x0 - ldr r2, [r5, #0xc] - ldr r3, [r5, #0x8] - cmp r2, r8 - cmpeq r3, r8 - and r4, r1, #0xff - orr r10, r0, r10 - bne _020966F4 -_02096698: - mla r9, r6, r9, r7 - b _020966A4 -_020966A0: - mla r9, r6, r9, r7 -_020966A4: - cmp r9, #0x0 - beq _020966A0 - ldrh r1, [r5, #0x12] - mov r0, r9, lsl #0x10 - mov r0, r0, lsr #0x10 - cmp r1, r0 - beq _020966A0 - strh r0, [r5, #0x12] - ldrh r0, [r5, #0x12] - mov r1, r10 - mov r2, r4 - mov r3, r8 - bl FUN_02096988 - str r0, [r5, #0x8] - str r1, [r5, #0xc] - ldr r0, [r5, #0xc] - ldr r1, [r5, #0x8] - cmp r0, r8 - cmpeq r1, r8 - beq _02096698 -_020966F4: - mov r0, #0x1 - add sp, sp, #0x28 - ldmia sp!, {r4-r10,pc} - .balign 4 -_02096700: .word OS_GetTick -_02096704: .word 0x5D588B65 -_02096708: .word 0x00269EC3 -_0209670C: .word 0x000009BF - - arm_func_start FUN_02096710 -FUN_02096710: ; 0x02096710 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x14 - mov r5, r0 - add r0, sp, #0x0 - mov r4, r1 - bl FUN_02095EC8 - add r12, r5, #0x8 - ldmia r12, {r2-r3} - stmia r5, {r2-r3} - add r1, sp, #0x8 - ldmia r1, {r2-r3} - mov r0, r5 - mov r1, r4 - stmia r12, {r2-r3} - bl FUN_02095DE0 -_0209674C: ; 0x0209674C - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x14 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_02096760 -FUN_02096760: ; 0x02096760 - stmdb sp!, {r4,lr} - sub sp, sp, #0x18 - mov r4, r0 - add r0, sp, #0x0 - bl FUN_020967A4 -_02096774: ; 0x02096774 - cmp r0, #0x0 - addeq sp, sp, #0x18 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_02096784: ; 0x02096784 - add r0, sp, #0x0 - mov r1, r4 - bl FUN_02095DE0 -_02096790: ; 0x02096790 - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x18 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020967A4 -FUN_020967A4: - stmdb sp!, {r4-r10,lr} - sub sp, sp, #0x28 - mov r8, r0 - bl FUN_02095EC8 - bl RTC_Init - add r0, sp, #0x8 - bl RTC_GetDate -_020967C0: ; 0x020967C0 - cmp r0, #0x0 - addne sp, sp, #0x28 - movne r0, #0x0 - ldmneia sp!, {r4-r10,pc} -_020967D0: ; 0x020967D0 - add r0, sp, #0x18 - bl RTC_GetTime -_020967D8: ; 0x020967D8 - cmp r0, #0x0 - addne sp, sp, #0x28 - movne r0, #0x0 - ldmneia sp!, {r4-r10,pc} -_020967E8: ; 0x020967E8 - add r0, sp, #0x8 - add r1, sp, #0x18 - bl RTC_ConvertDateTimeToSecond - mov r4, r0 - mov r0, #0x0 - subs r2, r4, r0 - sbcs r2, r1, r0 - addlt sp, sp, #0x28 - ldmltia sp!, {r4-r10,pc} -_0209680C: ; 0x0209680C - bl OS_IsTickAvailable -_02096810: ; 0x02096810 - cmp r0, #0x0 - beq _02096820 - ldr r0, _02096978 ; =OS_GetTick - adds r4, r4, r0 -_02096820: - add r0, sp, #0x0 - bl OS_GetMacAddress - ldrb r1, [sp, #0x0] - ldr sb, _0209697C ; =0x5D588B65 - ldr sl, _02096980 ; =0x00269EC3 - ldrb r0, [sp, #0x1] - mla r5, r4, r9, r10 - mov r1, r1, lsl #0x10 - orr r1, r1, r0, lsl #0x8 - ldrb r2, [sp, #0x2] - ldr r0, _02096984 ; =0x000009BF - ldrb r6, [sp, #0x3] - orr r1, r2, r1 - cmp r1, r0 - movne r1, #0x1 - moveq r1, #0x0 - mov r2, r5, lsr #0x10 - mov r0, #0x3e8 - mul r3, r2, r0 - mov r2, r3, lsr #0x10 - ldrb r0, [sp, #0x5] - ldrb r4, [sp, #0x4] - mov r3, r6, lsl #0x10 - and r7, r1, #0xff - orr r3, r3, r4, lsl #0x8 - strh r2, [r8, #0x10] - mov r4, #0x0 - str r4, [r8, #0x0] - str r4, [r8, #0x4] - ldrh r2, [r8, #0x12] - orr r6, r0, r3 - cmp r2, #0x0 - bne _02096910 - str r4, [r8, #0x8] - str r4, [r8, #0xc] - ldr r0, [r8, #0xc] - ldr r1, [r8, #0x8] - cmp r0, r4 - cmpeq r1, r4 - bne _0209696C -_020968C0: - mul r0, r5, r9 - adds r5, r0, r10 - bne _020968D8 -_020968CC: - mul r0, r5, r9 - adds r5, r0, r10 - beq _020968CC -_020968D8: - strh r5, [r8, #0x12] - ldrh r0, [r8, #0x12] - mov r1, r6 - mov r2, r7 - mov r3, r4 - bl FUN_02096988 - str r0, [r8, #0x8] - str r1, [r8, #0xc] - ldr r0, [r8, #0xc] - ldr r1, [r8, #0x8] - cmp r0, r4 - cmpeq r1, #0x0 - beq _020968C0 - b _0209696C -_02096910: - str r4, [r8, #0x8] - str r4, [r8, #0xc] - ldr r0, [r8, #0xc] - ldr r1, [r8, #0x8] - cmp r0, r4 - cmpeq r1, r4 - bne _0209696C - add r5, r8, #0x12 -_02096930: - ldrh r0, [r5, #0x0] - mov r1, r6 - mov r2, r7 - add r0, r0, #0x1 - strh r0, [r5, #0x0] - ldrh r0, [r8, #0x12] - mov r3, r4 - bl FUN_02096988 - str r0, [r8, #0x8] - str r1, [r8, #0xc] - ldr r0, [r8, #0xc] - ldr r1, [r8, #0x8] - cmp r0, r4 - cmpeq r1, r4 - beq _02096930 -_0209696C: - mov r0, #0x1 - add sp, sp, #0x28 - ldmia sp!, {r4-r10,pc} - .balign 4 -_02096978: .word OS_GetTick -_0209697C: .word 0x5D588B65 -_02096980: .word 0x00269EC3 -_02096984: .word 0x000009BF - - arm_func_start FUN_02096988 -FUN_02096988: ; 0x02096988 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x14 - mov lr, #0x0 - and r12, lr, #0x0 - mvn r5, #0xff000000 - ldr r4, _02096B08 ; =0x0000FFFF - and r2, r2, #0x1 - mov r6, r12, lsl #0x2 - and r3, r3, #0x3 - and r5, r1, r5 - orr r1, r3, r2, lsl #0x2 - orr r6, r6, r2, lsr #0x1e - mov r7, r12, lsl #0x3 - and r2, r0, r4 - orr r0, r1, r5, lsl #0x3 - orr r1, r0, r2, lsl #0x1b - mov r3, r12, lsl #0x1b - orr r3, r3, r2, lsr #0x5 - orr r7, r7, r5, lsr #0x1d - orr r0, r12, r6 - orr r0, r7, r0 - orr r0, r3, r0 - add r2, sp, #0x0 - str r1, [sp, #0x0] - str r0, [sp, #0x4] -_020969EC: - ldrb r0, [r2, #0x0] - add lr, lr, #0x1 - cmp lr, #0x6 - eor r0, r0, #0xd6 - strb r0, [r2], #0x1 - blt _020969EC - ldr r2, _02096B0C ; =0x020FF580 - add r5, sp, #0x0 - mov r4, #0x0 -_02096A10: - ldrb r3, [r5, #0x0] - add r4, r4, #0x1 - cmp r4, #0x5 - mov r0, r3, asr #0x4 - and r1, r0, #0xf - and r0, r3, #0xf - ldrb r1, [r2, r1] - ldrb r0, [r2, r0] - orr r0, r0, r1, lsl #0x4 - strb r0, [r5], #0x1 - blt _02096A10 - add r0, sp, #0x0 - add r1, sp, #0x8 - mov r2, #0x8 - bl MI_CpuCopy8 - ldr r4, _02096B10 ; =0x020FF578 - add r5, sp, #0x8 - mov r3, #0x0 - add r1, sp, #0x0 -_02096A5C: - ldrb r2, [r5, #0x0] - ldrb r0, [r4, #0x0] - add r3, r3, #0x1 - cmp r3, #0x5 - strb r2, [r1, r0] - add r5, r5, #0x1 - add r4, r4, #0x1 - blt _02096A5C - ldrb r2, [sp, #0x5] - mov r0, #0x0 - ldr r3, [sp, #0x0] - and r2, r2, #0x7 - strb r0, [sp, #0x7] - strb r0, [sp, #0x6] - strb r2, [sp, #0x5] - ldr r2, [sp, #0x4] - mov r4, r3, lsl #0x1 - mov r2, r2, lsl #0x1 - orr r2, r2, r3, lsr #0x1f - str r2, [sp, #0x4] - ldrb r2, [sp, #0x5] - str r4, [sp, #0x0] - ldrb r3, [sp, #0x0] - mov r2, r2, asr #0x3 - and r2, r2, #0x1 - orr r2, r3, r2 - strb r2, [sp, #0x0] -_02096AC8: - ldrb r2, [r1, #0x0] - add r0, r0, #0x1 - cmp r0, #0x6 - eor r2, r2, #0x67 - strb r2, [r1], #0x1 - blt _02096AC8 - ldrb r0, [sp, #0x5] - mov r1, #0x0 - strb r1, [sp, #0x7] - and r0, r0, #0x7 - strb r1, [sp, #0x6] - strb r0, [sp, #0x5] - ldr r0, [sp, #0x0] - ldr r1, [sp, #0x4] - add sp, sp, #0x14 - ldmia sp!, {r4-r7,pc} - .balign 4 -_02096B08: .word 0x0000FFFF -_02096B0C: .word 0x020FF580 -_02096B10: .word 0x020FF578 - - arm_func_start FUN_02096B14 -FUN_02096B14: ; 0x02096B14 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldr r0, _02096B74 ; =0x02000B8C - mov r4, #0x0 - bl OSi_ReferSymbol - mov r0, r6 - bl FUN_02096190 - mov r5, r0 - bl FUN_020964C8 -_02096B38: ; 0x02096B38 - cmp r0, #0x0 - beq _02096B4C - mov r0, r6 - bl FUN_02096760 - mov r4, #0x1 -_02096B4C: - cmp r5, #0x0 - bge _02096B64 - cmp r4, #0x0 - movne r0, #0x2 - moveq r0, #0x3 - ldmia sp!, {r4-r6,pc} -_02096B64: - cmp r4, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - ldmia sp!, {r4-r6,pc} - .balign 4 -_02096B74: .word 0x02000B8C - - arm_func_start FUN_02096B78 -FUN_02096B78: ; 0x02096B78 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r7, r0 - bl FUN_020974C8 - mov r5, r0 - mov r0, r4 - bl FUN_020974C8 -_02096B98: ; 0x02096B98 - cmp r5, r0 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {r4-r7,pc} -_02096BA8: ; 0x02096BA8 - cmp r5, #0x3 - bne _02096BD8 - mov r0, r7 - bl FUN_02097544 - mov r5, r0 - mov r0, r4 - bl FUN_02097544 -_02096BC4: ; 0x02096BC4 - cmp r5, r0 - moveq r0, #0x1 - add sp, sp, #0x4 - movne r0, #0x0 - ldmia sp!, {r4-r7,pc} -_02096BD8: - cmp r5, #0x1 - bne _02096C34 - mov r0, r7 - bl FUN_02097568 - mov r5, r0 - mov r6, r1 - mov r0, r4 - bl FUN_02097568 - cmp r6, r1 - cmpeq r5, r0 - bne _02096C28 - mov r0, r7 - bl FUN_02097560 - mov r5, r0 - mov r0, r4 - bl FUN_02097560 -_02096C18: ; 0x02096C18 - cmp r5, r0 - addeq sp, sp, #0x4 - moveq r0, #0x1 - ldmeqia sp!, {r4-r7,pc} -_02096C28: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r7,pc} -_02096C34: - cmp r5, #0x2 - bne _02096C6C - mov r0, r7 - bl FUN_0209754C - mov r5, r0 - mov r6, r1 - mov r0, r4 - bl FUN_0209754C - cmp r6, r1 - cmpeq r5, r0 - moveq r0, #0x1 - add sp, sp, #0x4 - movne r0, #0x0 - ldmia sp!, {r4-r7,pc} -_02096C6C: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - - arm_func_start FUN_02096C78 -FUN_02096C78: ; 0x02096C78 - ldr ip, _02096C8C ; =FUN_02097218 - mov r3, r0 - mov r0, r1 - ldr r1, [r3, #0x24] - bx r12 - .balign 4 -_02096C8C: .word FUN_02097218 - - arm_func_start FUN_02096C90 -FUN_02096C90: ; 0x02096C90 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r5, r0 - mov r1, #0x0 - mov r2, #0xc - bl MI_CpuFill8 - mov r0, r5 - mov r1, r4 - bl FUN_020974F4 - mov r0, r5 - mov r1, #0x3 - bl FUN_02097440 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_02096CCC -FUN_02096CCC: ; 0x02096CCC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r5, r0 - mov r0, r4 - mov r1, #0x0 - mov r2, #0xc - bl MI_CpuFill8 - mov r0, r5 - bl FUN_0209702C -_02096CF4: ; 0x02096CF4 - cmp r0, #0x0 - addeq r0, r5, #0x4 - ldmeqia r0, {r0-r2} - addeq sp, sp, #0x4 - stmeqia r4, {r0-r2} - ldmeqia sp!, {r4-r5,pc} -_02096D0C: ; 0x02096D0C - ldr r1, [r5, #0x1c] - mov r0, r4 - bl FUN_020974F4 - mov r0, r4 - mov r1, #0x3 - bl FUN_02097440 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_02096D2C -FUN_02096D2C: ; 0x02096D2C - stmdb sp!, {r4-r6,lr} - mov r5, r1 - mov r4, r2 - mov r6, r0 - mov r1, #0x0 - mov r2, #0xc - bl MI_CpuFill8 - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_020974FC - mov r0, r6 - mov r1, #0x2 - bl FUN_02097440 - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_02096D68 -FUN_02096D68: ; 0x02096D68 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r3, r0 - ldr r0, [r3, #0x1c] - mov r2, #0x0 - mov r1, r2 - cmp r0, #0x0 - beq _02096D94 - ldr r1, [r3, #0x24] - bl FUN_020973D0 - mov r2, r0 -_02096D94: - mov r0, r2 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_02096DA0 -FUN_02096DA0: ; 0x02096DA0 - stmdb sp!, {r4-r6,lr} - mov r4, r1 - mov r6, r0 - mov r0, r4 - bl FUN_020974C8 - cmp r0, #0x1 - beq _02096E14 - cmp r0, #0x2 - beq _02096DD0 - cmp r0, #0x3 - beq _02096E08 - b _02096E1C -_02096DD0: - mov r0, r4 - bl FUN_0209754C - ldr r2, [r6, #0x24] - mov r4, r0 - mov r5, r1 - bl FUN_02097344 -_02096DE8: ; 0x02096DE8 - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} -_02096DF4: ; 0x02096DF4 - ldr r2, [r6, #0x24] - mov r0, r4 - mov r1, r5 - bl FUN_02097324 - ldmia sp!, {r4-r6,pc} -_02096E08: - mov r0, r4 - bl FUN_02097544 - ldmia sp!, {r4-r6,pc} -_02096E14: - mvn r0, #0x0 - ldmia sp!, {r4-r6,pc} -_02096E1C: - mov r0, #0x0 - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_02096E24 -FUN_02096E24: ; 0x02096E24 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020974C8 - cmp r0, #0x2 - movne r0, #0x0 - movne r1, r0 - ldmneia sp!, {r4,pc} -_02096E40: ; 0x02096E40 - mov r0, r4 - bl FUN_0209754C - ldmia sp!, {r4,pc} - - arm_func_start FUN_02096E4C -FUN_02096E4C: ; 0x02096E4C - stmdb sp!, {r4,lr} - sub sp, sp, #0x400 - mov r4, r0 - ldr r1, [r4, #0x20] - add r0, sp, #0x0 - bic r2, r1, #0x1 - ldr r1, _02096E8C ; =0xEDB88320 - str r2, [r4, #0x20] - bl MATHi_CRC32InitTableRev -_02096E70: ; 0x02096E70 - add r0, sp, #0x0 - mov r1, r4 - mov r2, #0x3c - bl MATH_CalcCRC32 - str r0, [r4, #0x3c] - add sp, sp, #0x400 - ldmia sp!, {r4,pc} - .balign 4 -_02096E8C: .word 0xEDB88320 - - arm_func_start thunk_FUN_02096e4c -thunk_FUN_02096e4c: ; 0x02096E90 - ldr ip, _02096E98 ; =FUN_02096E4C - bx r12 - .balign 4 -_02096E98: .word FUN_02096E4C - - arm_func_start FUN_02096E9C -FUN_02096E9C: ; 0x02096E9C - ldr r0, [r0, #0x20] - and r0, r0, #0x1 - cmp r0, #0x1 - moveq r0, #0x1 - movne r0, #0x0 - bx lr - - arm_func_start FUN_02096EB4 -FUN_02096EB4: ; 0x02096EB4 - ldr ip, _02096EBC ; =FUN_02096E9C - bx r12 - .balign 4 -_02096EBC: .word FUN_02096E9C - - arm_func_start FUN_02096EC0 -FUN_02096EC0: ; 0x02096EC0 - stmdb sp!, {r4,lr} - sub sp, sp, #0x400 - mov r4, r0 - add r3, r4, #0x10 - mov r12, r2 - ldmia r1, {r0-r2} - stmia r3, {r0-r2} - ldr r1, _02096F14 ; =0xEDB88320 - add r0, sp, #0x0 - str r12, [r4, #0x1c] - bl MATHi_CRC32InitTableRev -_02096EEC: ; 0x02096EEC - add r0, sp, #0x0 - mov r1, r4 - mov r2, #0x3c - bl MATH_CalcCRC32 - str r0, [r4, #0x3c] - ldr r0, [r4, #0x20] - orr r0, r0, #0x1 - str r0, [r4, #0x20] - add sp, sp, #0x400 - ldmia sp!, {r4,pc} - .balign 4 -_02096F14: .word 0xEDB88320 - - arm_func_start FUN_02096F18 -FUN_02096F18: ; 0x02096F18 - stmdb sp!, {r4,lr} - sub sp, sp, #0x18 - mov r4, r0 - add r0, r4, #0x10 - bl FUN_020974C8 -_02096F2C: ; 0x02096F2C - cmp r0, #0x0 - addeq sp, sp, #0x18 - moveq r0, #0x1 - ldmeqia sp!, {r4,pc} -_02096F3C: ; 0x02096F3C - add r0, sp, #0x0 - bl FUN_02096518 - ldr r0, [sp, #0x10] - cmp r0, #0x0 - addeq sp, sp, #0x18 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_02096F58: ; 0x02096F58 - add r0, r4, #0x10 - bl FUN_02097568 - ldr r2, [sp, #0x4] - ldr r3, [sp, #0x0] - cmp r2, r1 - cmpeq r3, r0 - moveq r0, #0x1 - movne r0, #0x0 - add sp, sp, #0x18 - ldmia sp!, {r4,pc} - - arm_func_start FUN_02096F80 -FUN_02096F80: ; 0x02096F80 - stmdb sp!, {r4,lr} - mov r4, r0 - add r0, r4, #0x10 - bl FUN_0209703C -_02096F90: ; 0x02096F90 - cmp r0, #0x0 - beq _02096FA8 - ldr r0, [r4, #0x1c] - cmp r0, #0x0 - movgt r0, #0x1 - ldmgtia sp!, {r4,pc} -_02096FA8: - mov r0, #0x0 - ldmia sp!, {r4,pc} - - arm_func_start FUN_02096FB0 -FUN_02096FB0: ; 0x02096FB0 - stmdb sp!, {r4,lr} - sub sp, sp, #0x400 - ldr r1, _02096FF0 ; =0xEDB88320 - mov r4, r0 - add r0, sp, #0x0 - bl MATHi_CRC32InitTableRev -_02096FC8: ; 0x02096FC8 - add r0, sp, #0x0 - mov r1, r4 - mov r2, #0x3c - bl MATH_CalcCRC32 - ldr r1, [r4, #0x3c] - cmp r0, r1 - moveq r0, #0x1 - movne r0, #0x0 - add sp, sp, #0x400 - ldmia sp!, {r4,pc} - .balign 4 -_02096FF0: .word 0xEDB88320 - - arm_func_start thunk_FUN_02097190 -thunk_FUN_02097190: ; 0x02096FF4 - ldr ip, _02096FFC ; =FUN_02097190 - bx r12 - .balign 4 -_02096FFC: .word FUN_02097190 - - arm_func_start FUN_02097000 -FUN_02097000: ; 0x02097000 - ldr ip, _02097008 ; =FUN_0209700C - bx r12 - .balign 4 -_02097008: .word FUN_0209700C - - arm_func_start FUN_0209700C -FUN_0209700C: ; 0x0209700C - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_020974C8 -_02097018: ; 0x02097018 - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_0209702C -FUN_0209702C: - ldr ip, _02097038 ; =FUN_0209703C - add r0, r0, #0x10 - bx r12 - .balign 4 -_02097038: .word FUN_0209703C - - arm_func_start FUN_0209703C -FUN_0209703C: - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_020974C8 - cmp r0, #0x1 - moveq r0, #0x1 - movne r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_0209705C -FUN_0209705C: ; 0x0209705C - stmdb sp!, {r4,lr} - sub sp, sp, #0x18 - mov r4, r0 - add r0, sp, #0x0 - bl FUN_02096518 - ldr r0, [sp, #0x10] - cmp r0, #0x0 - beq _020970A4 - mov r0, r4 - bl FUN_02097568 - ldr r2, [sp, #0x4] - ldr r3, [sp, #0x0] - cmp r2, r1 - cmpeq r3, r0 - moveq r0, #0x1 - add sp, sp, #0x18 - movne r0, #0x0 - ldmia sp!, {r4,pc} -_020970A4: - mov r0, r4 - bl FUN_02097568 - ldr r2, [sp, #0xc] - ldr r3, [sp, #0x8] - cmp r2, r1 - cmpeq r3, r0 - moveq r0, #0x1 - movne r0, #0x0 - add sp, sp, #0x18 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020970CC -FUN_020970CC: ; 0x020970CC - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x38 - mov r6, r0 - add r0, sp, #0x14 - bl OS_GetLowEntropyData - mov r3, #0x1 - add r2, sp, #0x14 -_020970E8: - add r0, r2, r3, lsl #0x2 - ldr r1, [r2, r3, lsl #0x2] - ldr r0, [r0, #-0x4] - eor r0, r1, r0 - str r0, [r2, r3, lsl #0x2] - add r3, r3, #0x1 - cmp r3, #0x8 - blo _020970E8 - add r0, sp, #0x0 - ldr r5, [sp, #0x30] - mov r4, #0x0 - bl FUN_02096518 - ldr r0, [sp, #0x10] - cmp r0, #0x0 - beq _02097138 - ldr r1, [sp, #0x0] - ldr r2, [sp, #0x4] - mov r0, r6 - bl FUN_02097510 - b _02097148 -_02097138: - ldr r1, [sp, #0x8] - ldr r2, [sp, #0xc] - mov r0, r6 - bl FUN_02097510 -_02097148: - ldr r0, _02097184 ; =0x6C078965 - ldr r1, _02097188 ; =0x5D588B65 - umull r3, r2, r5, r0 - mla r2, r5, r1, r2 - ldr r1, _0209718C ; =0x00269EC3 - mla r2, r4, r0, r2 - adds r0, r3, r1 - mov r0, r6 - adc r1, r2, #0x0 - bl FUN_02097508 - mov r0, r6 - mov r1, #0x1 - bl FUN_02097440 - add sp, sp, #0x38 - ldmia sp!, {r4-r6,pc} - .balign 4 -_02097184: .word 0x6C078965 -_02097188: .word 0x5D588B65 -_0209718C: .word 0x00269EC3 - - arm_func_start FUN_02097190 -FUN_02097190: ; 0x02097190 - stmdb sp!, {r4-r5,lr} - ldr ip, _02097210 ; =0x00000404 - sub sp, sp, r12 - mov r4, r1 - mov r1, #0x0 - mov r2, #0x40 - mov r5, r0 - bl MI_CpuFill8 - mov r0, #0x40 - str r0, [r5, #0x0] - mov r0, #0x0 - str r0, [r5, #0x1c] - add r0, r5, #0x4 - str r4, [r5, #0x24] - bl FUN_020970CC - add r0, r5, #0x10 - mov r1, #0x0 - bl FUN_02097440 - ldr r1, _02097214 ; =0xEDB88320 - add r0, sp, #0x0 - bl MATHi_CRC32InitTableRev -_020971E4: ; 0x020971E4 - add r0, sp, #0x0 - mov r1, r5 - mov r2, #0x3c - bl MATH_CalcCRC32 - str r0, [r5, #0x3c] - ldr r0, [r5, #0x20] - orr r0, r0, #0x1 - str r0, [r5, #0x20] - ldr ip, _02097210 ; =0x00000404 - add sp, sp, r12 - ldmia sp!, {r4-r5,pc} - .balign 4 -_02097210: .word 0x00000404 -_02097214: .word 0xEDB88320 - - arm_func_start FUN_02097218 -FUN_02097218: ; 0x02097218 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x40 - mov r6, r0 - mov r4, r1 - mov r5, r2 - bl FUN_02097568 - add r3, sp, #0x14 - mov r2, #0x2b - bl FUN_020972A8 - mov r0, r6 - bl FUN_02097560 - mov r1, #0x0 - mov r2, #0x20 - add r3, sp, #0x29 - bl FUN_020972A8 - mov r1, r4, lsr #0x18 - and r1, r1, #0xff - str r1, [sp, #0x0] - mov r1, r4, lsr #0x10 - and r1, r1, #0xff - str r1, [sp, #0x4] - mov r1, r4, lsr #0x8 - and r1, r1, #0xff - str r1, [sp, #0x8] - and r1, r4, #0xff - str r1, [sp, #0xc] - add r2, sp, #0x29 - str r2, [sp, #0x10] - ldr r2, _020972A4 ; =0x0210618C - mov r0, r5 - mov r1, #0x15 - add r3, sp, #0x14 - bl OS_SNPrintf - add sp, sp, #0x40 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020972A4: .word 0x0210618C - - arm_func_start FUN_020972A8 -FUN_020972A8: ; 0x020972A8 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr lr, _0209731C ; =0x66666667 - add r4, r2, #0x4 - smull r12, r2, lr, r4 - mov r2, r2, asr #0x1 - mov r12, r4, lsr #0x1f - add r2, r12, r2 - cmp r2, #0x0 - ldr r6, _02097320 ; =0x0210619C - mov r7, #0x0 - ble _0209730C - add r4, r3, r2 - sub r4, r4, #0x1 - mov r12, #0x1f -_020972E4: - and r5, r0, r12 - ldrsb r5, [r6, r5] - mov r0, r0, lsr #0x5 - mov lr, r1, lsr #0x5 - strb r5, [r4, -r7] - add r7, r7, #0x1 - orr r0, r0, r1, lsl #0x1b - mov r1, lr - cmp r7, r2 - blt _020972E4 -_0209730C: - mov r0, #0x0 - strb r0, [r3, r2] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_0209731C: .word 0x66666667 -_02097320: .word 0x0210619C - - arm_func_start FUN_02097324 -FUN_02097324: ; 0x02097324 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_02097344 -_02097330: ; 0x02097330 - cmp r0, #0x0 - mvnne r0, #0x0 - andne r0, r4, r0 - moveq r0, #0x0 - ldmia sp!, {r4,pc} - - arm_func_start FUN_02097344 -FUN_02097344: - stmdb sp!, {r4,lr} - sub sp, sp, #0x108 - mov r4, r1 - and r3, r4, #0x0 - mov r1, #0x0 - and r12, r0, #0x80000000 - cmp r3, r1 - cmpeq r12, r1 - addne sp, sp, #0x108 - movne r0, r1 - ldmneia sp!, {r4,pc} -_02097370: ; 0x02097370 - str r0, [sp, #0x0] - add r0, sp, #0x8 - mov r1, #0x7 - str r2, [sp, #0x4] - bl MATHi_CRC8InitTable - add r0, sp, #0x8 - add r1, sp, #0x0 - mov r2, #0x8 - bl MATH_CalcCRC8 - and r2, r0, #0x7f - mov r1, r2, asr #0x1f - mov r0, #0x0 - cmp r1, r0 - cmpeq r2, r4 - moveq r0, #0x1 - add sp, sp, #0x108 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020973B4 -FUN_020973B4: ; 0x020973B4 - ldr ip, _020973CC ; =FUN_02097344 - mov r3, r0 - mov r0, r1 - mov r1, r2 - ldr r2, [r3, #0x24] - bx r12 - .balign 4 -_020973CC: .word FUN_02097344 - - arm_func_start FUN_020973D0 -FUN_020973D0: ; 0x020973D0 - stmdb sp!, {r4,lr} - sub sp, sp, #0x108 - mov r4, r0 - str r1, [sp, #0x4] - add r0, sp, #0x8 - mov r1, #0x7 - str r4, [sp, #0x0] - bl MATHi_CRC8InitTable - add r0, sp, #0x8 - add r1, sp, #0x0 - mov r2, #0x8 - bl MATH_CalcCRC8 - and r0, r0, #0x7f - orr r1, r0, #0x0 - orr r0, r4, #0x0 - add sp, sp, #0x108 - ldmia sp!, {r4,pc} - - arm_func_start FUN_02097414 -FUN_02097414: ; 0x02097414 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020974C8 - cmp r0, #0x3 - ldmneia sp!, {r4,pc} -_02097428: ; 0x02097428 - mov r0, r4 - bl FUN_020974E0 - orr r1, r0, #0x4 - mov r0, r4 - bl FUN_0209746C - ldmia sp!, {r4,pc} - - arm_func_start FUN_02097440 -FUN_02097440: ; 0x02097440 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - bl FUN_020974E0 - bic r1, r0, #0x3 - mov r0, r5 - orr r1, r1, r4 - bl FUN_0209746C - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_0209746C -FUN_0209746C: ; 0x0209746C - ldr ip, _0209747C ; =FUN_02097588 - ldr r3, _02097480 ; =0x001FFFFF - mov r2, #0xb - bx r12 - .balign 4 -_0209747C: .word FUN_02097588 -_02097480: .word 0x001FFFFF - - arm_func_start FUN_02097484 -FUN_02097484: ; 0x02097484 - ldr ip, _0209748C ; =FUN_020974C8 - bx r12 - .balign 4 -_0209748C: .word FUN_020974C8 - - arm_func_start FUN_02097490 -FUN_02097490: ; 0x02097490 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020974C8 - cmp r0, #0x3 - bne _020974C0 - mov r0, r4 - bl FUN_020974E0 - and r0, r0, #0x4 - cmp r0, #0x4 - moveq r0, #0x1 - movne r0, #0x0 - ldmia sp!, {r4,pc} -_020974C0: - mov r0, #0x0 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020974C8 -FUN_020974C8: ; 0x020974C8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_020974E0 - and r0, r0, #0x3 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020974E0 -FUN_020974E0: ; 0x020974E0 - ldr r1, [r0, #0x0] - ldr r0, _020974F0 ; =0x001FFFFF - and r0, r0, r1, lsr #0xb - bx lr - .balign 4 -_020974F0: .word 0x001FFFFF - - arm_func_start FUN_020974F4 -FUN_020974F4: ; 0x020974F4 - str r1, [r0, #0x4] - bx lr - - arm_func_start FUN_020974FC -FUN_020974FC: ; 0x020974FC - str r1, [r0, #0x4] - str r2, [r0, #0x8] - bx lr - - arm_func_start FUN_02097508 -FUN_02097508: ; 0x02097508 - str r1, [r0, #0x8] - bx lr - - arm_func_start FUN_02097510 -FUN_02097510: ; 0x02097510 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r12, #0x0 - mov r4, r1 - mov r1, r2 - ldr r3, _02097540 ; =0x000007FF - mov r2, r12 - mov r5, r0 - bl FUN_02097588 - str r4, [r5, #0x4] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_02097540: .word 0x000007FF - - arm_func_start FUN_02097544 -FUN_02097544: - ldr r0, [r0, #0x4] - bx lr - - arm_func_start FUN_0209754C -FUN_0209754C: ; 0x0209754C - ldr r1, [r0, #0x8] - ldr r0, [r0, #0x4] - orr r1, r1, #0x0 - orr r0, r0, #0x0 - bx lr - - arm_func_start FUN_02097560 -FUN_02097560: - ldr r0, [r0, #0x8] - bx lr - - arm_func_start FUN_02097568 -FUN_02097568: ; 0x02097568 - ldr r2, [r0, #0x0] - ldr r1, _02097584 ; =0x000007FF - ldr r0, [r0, #0x4] - and r1, r2, r1 - orr r1, r1, #0x0 - orr r0, r0, #0x0 - bx lr - .balign 4 -_02097584: .word 0x000007FF - - arm_func_start FUN_02097588 -FUN_02097588: ; 0x02097588 - mvn r12, r3 - ands r12, r1, r12 - movne r0, #0x0 - bxne lr - mvn r3, r3, lsl r2 - ldr r12, [r0, #0x0] - and r3, r12, r3 - orr r1, r3, r1, lsl r2 - str r1, [r0, #0x0] - mov r0, #0x1 - bx lr - - arm_func_start FUN_020975B4 -FUN_020975B4: ; 0x020975B4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_020A8850 -_020975C0: ; 0x020975C0 - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_020975D8 -FUN_020975D8: ; 0x020975D8 - ldr r0, _020975EC ; =0x021C8CCC - ldr r1, [r0, #0x0] - orr r1, r1, #0x2 - str r1, [r0, #0x0] - bx lr - .balign 4 -_020975EC: .word 0x021C8CCC - - arm_func_start FUN_020975F0 -FUN_020975F0: ; 0x020975F0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _02097654 ; =0x021C8CC0 - ldr r0, _02097658 ; =0x021C8CCC - ldr lr, [r1, #0x0] - ldr r3, [r0, #0x0] - ldr r12, [lr, #0x4] - ldr r2, _0209765C ; =0x021C8F04 - ldr r1, _02097660 ; =0x021C8ED0 - str r12, [r2, #0x0] - ldr r12, [lr, #0x8] - ldr r2, _02097664 ; =0x021C8EE0 - str r12, [r1, #0x0] - ldr r12, [lr, #0xc] - ldr r1, _02097668 ; =0x021C8F1C - str r12, [r2, #0x0] - ldr r12, [lr, #0x10] - orr r2, r3, #0x2 - str r12, [r1, #0x0] - ldr r3, [lr, #0x14] - str r3, [r1, #0x4] - str r2, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_02097654: .word 0x021C8CC0 -_02097658: .word 0x021C8CCC -_0209765C: .word 0x021C8F04 -_02097660: .word 0x021C8ED0 -_02097664: .word 0x021C8EE0 -_02097668: .word 0x021C8F1C - - arm_func_start FUN_0209766C -FUN_0209766C: ; 0x0209766C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r0, _020977C0 ; =0x021C8CC0 - ldr r5, _020977C4 ; =0x021C8CD4 - ldr r4, [r0, #0x0] - mov r0, r5 - mov r1, #0x0 - mov r2, #0x30 - bl MI_CpuFill8 - ldr r0, _020977C8 ; =0x021C8CC4 - ldr r2, [r4, #0x18] - mov r1, r5 - str r2, [r1, #0x4] - ldr r12, [r4, #0x1c] - mov r2, #0x0 - ldr r3, _020977CC ; =FUN_020975B4 - ldr r0, [r0, #0x0] - str r12, [r1, #0x8] - str r3, [r1, #0x10] - str r2, [r1, #0x14] - str r2, [r1, #0x18] - str r0, [r1, #0x2c] - ldr r0, [r4, #0x24] - cmp r0, #0x0 - strne r0, [r5, #0x20] - moveq r0, #0x4000 - streq r0, [r5, #0x20] - ldr r0, [r4, #0x28] - cmp r0, #0x0 - strne r0, [r5, #0x1c] - bne _02097700 - ldr r1, _020977C0 ; =0x021C8CC0 - ldr r0, [r5, #0x20] - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x18] - blx r1 - str r0, [r5, #0x1c] -_02097700: - ldr r0, [r4, #0x30] - ldr r12, [r4, #0x34] - cmp r0, #0x0 - moveq r0, #0x240 - cmp r12, #0x0 - sub r2, r0, #0x28 - moveq r12, #0x10c0 - add r0, r12, r12, lsr #0x1f - str r2, [r5, #0x24] - ldr r1, _020977D0 ; =0x021061DC - mov r3, r0, asr #0x1 - ldr r0, _020977D4 ; =0x021C8F04 - mov r2, #0x0 - strh r12, [r1, #0x2] - strh r3, [r1, #0x4] - str r2, [r0, #0x0] - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _02097774 - ldr r0, _020977D8 ; =0x021C8CCC - mov r1, #0x1 - str r1, [r0, #0x0] - ldr r1, _020977DC ; =FUN_020975D8 - str r2, [r5, #0x0] - ldr r0, _020977E0 ; =0x021C8CC8 - str r1, [r5, #0xc] - ldr r0, [r0, #0x0] - str r0, [r5, #0x28] - b _0209778C -_02097774: - ldr r0, _020977D8 ; =0x021C8CCC - mov r1, #0x1 - str r2, [r0, #0x0] - ldr r0, _020977E4 ; =FUN_020975F0 - str r1, [r5, #0x0] - str r0, [r5, #0xc] -_0209778C: - ldr r0, [r4, #0x2c] - cmp r0, #0x0 - moveq r0, #0xb - bl FUN_0209FC88 - ldr r0, _020977E8 ; =FUN_0209F65C - bl FUN_020A87BC - ldr r0, _020977EC ; =FUN_020996C0 - bl FUN_0209FD24 - mov r0, r5 - bl FUN_0209FD94 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020977C0: .word 0x021C8CC0 -_020977C4: .word 0x021C8CD4 -_020977C8: .word 0x021C8CC4 -_020977CC: .word FUN_020975B4 -_020977D0: .word 0x021061DC -_020977D4: .word 0x021C8F04 -_020977D8: .word 0x021C8CCC -_020977DC: .word FUN_020975D8 -_020977E0: .word 0x021C8CC8 -_020977E4: .word FUN_020975F0 -_020977E8: .word FUN_0209F65C -_020977EC: .word FUN_020996C0 - - arm_func_start FUN_020977F0 -FUN_020977F0: ; 0x020977F0 - stmdb sp!, {r4,lr} - ldr r0, _02097828 ; =0x021C8CC0 - ldr r0, [r0, #0x0] - ldr r0, [r0, #0x20] - bl FUN_02097B78 - movs r4, r0 - bmi _0209781C - ldr r0, _0209782C ; =0x021061F4 - bl FUN_02097F70 - ldr r1, _02097830 ; =0x021C8CD0 - str r0, [r1, #0x0] -_0209781C: - mov r0, r4 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_02097828: .word 0x021C8CC0 -_0209782C: .word 0x021061F4 -_02097830: .word 0x021C8CD0 - - arm_func_start FUN_02097834 -FUN_02097834: ; 0x02097834 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, _02097870 ; =0x02000BC4 - bl OSi_ReferSymbol - ldr r0, _02097874 ; =0x021C8CC0 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - movne r0, #0x0 - ldmneia sp!, {r4,lr} - bxne lr - str r4, [r0, #0x0] - bl FUN_0209766C - bl FUN_020977F0 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_02097870: .word 0x02000BC4 -_02097874: .word 0x021C8CC0 - - arm_func_start FUN_02097878 -FUN_02097878: ; 0x02097878 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r9, r0 - add r6, sp, #0x0 - mov r4, #0x0 - mov r5, #0x1 -_02097890: - mov r0, r9 - mov r1, r6 - mov r2, r5 - bl OS_ReadMessage -_020978A0: ; 0x020978A0 - ldr r0, [sp, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - ldr r1, [r0, #0x0] - blx r1 - mov r7, r0 - bl OS_DisableInterrupts - mov r8, r0 - bl OS_DisableScheduler - mov r0, r9 - mov r1, r4 - mov r2, r4 - bl OS_ReceiveMessage -_020978DC: ; 0x020978DC - ldr r0, [sp, #0x0] - ldr r0, [r0, #0x4] - cmp r0, #0x0 - strne r7, [r0, #0x6c] - ldr r0, [sp, #0x0] - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _02097908 - mov r1, r7 - mov r2, r4 - bl OS_SendMessage -_02097908: - ldr r0, [sp, #0x0] - bl FUN_02097A64 - bl OS_EnableScheduler - mov r0, r8 - bl OS_RestoreInterrupts - b _02097890 -_02097920: ; 0x02097920 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start FUN_0209792C -FUN_0209792C: ; 0x0209792C - stmdb sp!, {r4,lr} - mov r4, r1 - bl FUN_02097A50 - mov r1, r4 - bl FUN_02097968 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_02097948 -FUN_02097948: - ldr ip, _02097954 ; =FUN_02097968 - ldr r0, [r0, #0x68] - bx r12 - .balign 4 -_02097954: .word FUN_02097968 - - arm_func_start FUN_02097958 -FUN_02097958: ; 0x02097958 - ldr ip, _02097964 ; =FUN_02097968 - ldr r0, [r0, #0x64] - bx r12 - .balign 4 -_02097964: .word FUN_02097968 - - arm_func_start FUN_02097968 -FUN_02097968: ; 0x02097968 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x2c - mov r4, r1 - ldrsb r2, [r4, #0xd] - mov r5, r0 - cmp r2, #0x1 - bne _020979BC - add r0, sp, #0x8 - add r1, sp, #0x4 - mov r2, #0x1 - bl OS_InitMessageQueue - add r2, sp, #0x8 - mov r0, r5 - mov r1, r4 - str r2, [r4, #0x8] - bl FUN_020979F8 - add r0, sp, #0x8 - add r1, sp, #0x0 - mov r2, #0x1 - bl OS_ReceiveMessage - b _020979CC -_020979BC: - mov r2, #0x0 - str r2, [r4, #0x8] - bl FUN_020979F8 -_020979C8: ; 0x020979C8 - str r0, [sp, #0x0] -_020979CC: - ldr r0, [sp, #0x0] - add sp, sp, #0x2c - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_020979DC -FUN_020979DC: - stmdb sp!, {r4,lr} - mov r4, r1 - bl FUN_02097A50 - mov r1, r4 - bl FUN_020979F8 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020979F8 -FUN_020979F8: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - movs r5, r1 - beq _02097A14 - ldrsb r1, [r5, #0xd] - ands r1, r1, #0x1 - beq _02097A1C -_02097A14: - mov r2, #0x1 - b _02097A20 -_02097A1C: - mov r2, #0x0 -_02097A20: - mov r1, r5 - bl OS_SendMessage - movs r4, r0 - bne _02097A38 - mov r0, r5 - bl FUN_02097A64 -_02097A38: - cmp r4, #0x0 - movne r0, #0x0 - mvneq r0, #0x29 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_02097A50 -FUN_02097A50: ; 0x02097A50 - ldr r1, [r0, #0x64] - cmp r1, #0x0 - ldreq r1, [r0, #0x68] - mov r0, r1 - bx lr - - arm_func_start FUN_02097A64 -FUN_02097A64: - stmdb sp!, {lr} - sub sp, sp, #0x4 - movs r1, r0 - addeq sp, sp, #0x4 - ldmeqia sp!, {lr} - bxeq lr - ldr r0, _02097A94 ; =0x021C8D08 - mov r2, #0x0 - bl OS_SendMessage - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_02097A94: .word 0x021C8D08 - - arm_func_start FUN_02097A98 -FUN_02097A98: ; 0x02097A98 - stmdb sp!, {r4-r6,lr} - mov r4, r2 - mov r6, r0 - mov r0, r4 - mov r5, r1 - bl FUN_02097AE0 -_02097AB0: ; 0x02097AB0 - cmp r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - str r6, [r0, #0x0] - str r5, [r0, #0x4] - mov r1, #0x0 - str r1, [r0, #0x8] - ldrsb r1, [r5, #0x73] - strb r1, [r0, #0xc] - strb r4, [r0, #0xd] - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_02097AE0 -FUN_02097AE0: - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r2, r0 - ldr r0, _02097B10 ; =0x021C8D08 - add r1, sp, #0x0 - bl OS_ReceiveMessage -_02097AF8: ; 0x02097AF8 - cmp r0, #0x0 - ldrne r0, [sp, #0x0] - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_02097B10: .word 0x021C8D08 - - arm_func_start FUN_02097B14 -FUN_02097B14: ; 0x02097B14 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _02097B6C ; =0x021C8D08 - ldr r1, [r0, #0x1c] - ldr r0, [r0, #0x14] - cmp r1, r0 - addlt sp, sp, #0x4 - mvnlt r0, #0x0 - ldmltia sp!, {lr} - bxlt lr - ldr r0, _02097B70 ; =0x021C8CC0 - ldr r1, _02097B74 ; =0x021C8D04 - ldr r2, [r0, #0x0] - ldr r0, [r1, #0x0] - ldr r1, [r2, #0x1c] - blx r1 - ldr r1, _02097B74 ; =0x021C8D04 - mov r0, #0x0 - str r0, [r1, #0x0] - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_02097B6C: .word 0x021C8D08 -_02097B70: .word 0x021C8CC0 -_02097B74: .word 0x021C8D04 - - arm_func_start FUN_02097B78 -FUN_02097B78: ; 0x02097B78 - stmdb sp!, {r4-r6,lr} - mov r4, r0 - mov r0, #0x2c - mul r1, r4, r0 - ldr r0, _02097C08 ; =0x021C8CC0 - mov r2, r4, lsl #0x2 - add r2, r2, #0x3 - ldr r0, [r0, #0x0] - add r1, r1, #0x3 - bic r5, r2, #0x3 - bic r2, r1, #0x3 - ldr r1, [r0, #0x18] - add r0, r2, r5 - blx r1 - movs r6, r0 - mvneq r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldr r0, _02097C0C ; =0x021C8D08 - mov r1, r6 - mov r2, r4 - bl OS_InitMessageQueue -_02097BD0: ; 0x02097BD0 - cmp r4, #0x0 - add r5, r6, r5 - ble _02097BF4 -_02097BDC: - mov r0, r5 - bl FUN_02097A64 - sub r4, r4, #0x1 - cmp r4, #0x0 - add r5, r5, #0x2c - bgt _02097BDC -_02097BF4: - ldr r1, _02097C10 ; =0x021C8D04 - mov r0, #0x0 - str r6, [r1, #0x0] - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_02097C08: .word 0x021C8CC0 -_02097C0C: .word 0x021C8D08 -_02097C10: .word 0x021C8D04 - - arm_func_start FUN_02097C14 -FUN_02097C14: ; 0x02097C14 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0xc - mov r5, r2 - mov r7, r0 - mov r0, r5 - mov r6, r1 - bl FUN_02097DC4 - add r4, r7, r0 - ldrb r2, [r5, #0x3] - mov r0, r6 - mov r1, r7 - bl OS_InitMessageQueue - add r0, r6, #0xe0 - bl OS_InitMutex - ldrh r2, [r5, #0x0] - add r0, r6, #0x20 - ldr r1, _02097C88 ; =FUN_02097878 - str r2, [sp, #0x0] - ldrb r12, [r5, #0x2] - mov r2, r6 - mov r3, r4 - str r12, [sp, #0x4] - bl OS_CreateThread - add r0, r6, #0x20 - bl OS_WakeupThreadDirect - mov r0, r4 - add sp, sp, #0xc - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_02097C88: .word FUN_02097878 - - arm_func_start FUN_02097C8C -FUN_02097C8C: ; 0x02097C8C - stmdb sp!, {r4,lr} - mov r4, r0 - cmp r2, #0x0 - moveq r0, #0x0 - str r0, [r1, #0x4] - mov r0, r2 - str r2, [r1, #0x0] - bl FUN_02099F6C -_02097CAC: ; 0x02097CAC - add r0, r4, r0 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_02097CB8 -FUN_02097CB8: ; 0x02097CB8 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r6, r1 - ldrsb r1, [r6, #0x0] - mov r7, r0 - add r4, r7, #0x80 - strb r1, [r7, #0x73] - ldrsb r0, [r6, #0x1] - strb r0, [r7, #0x72] - ldrh r0, [r6, #0x2] - cmp r0, #0x0 - beq _02097D40 - str r4, [r7, #0x64] - ldrh r2, [r6, #0x4] - mov r1, r4 - add r0, r4, #0x114 - strh r2, [r4, #0xfc] - add r2, r6, #0x10 - mov r5, r4 - bl FUN_02097C14 - ldrh r2, [r6, #0x2] - add r1, r7, #0x3c - bl FUN_02097C8C - ldrh r2, [r6, #0x8] - add r1, r7, #0x50 - bl FUN_02097C8C - ldrh r3, [r6, #0xe] - add r1, r5, #0x100 - mov r2, #0x0 - strh r3, [r1, #0xa] - str r2, [r5, #0x110] - ldr r1, [r5, #0x110] - mov r4, r0 - str r1, [r5, #0x10c] -_02097D40: - ldrh r0, [r6, #0x6] - cmp r0, #0x0 - ldreq r0, _02097DC0 ; =0x021C8CD0 - ldreq r0, [r0, #0x0] - ldreq r0, [r0, #0x68] - streq r0, [r7, #0x68] - beq _02097DB0 - str r4, [r7, #0x68] - mov r1, r4 - str r7, [r4, #0x10c] - add r0, r4, #0x110 - add r2, r6, #0x14 - mov r5, r4 - bl FUN_02097C14 - ldrh r2, [r6, #0x6] - add r1, r7, #0x48 - bl FUN_02097C8C - ldrh r2, [r6, #0xa] - add r1, r7, #0x58 - bl FUN_02097C8C - ldrh r2, [r6, #0xc] - add r1, r4, #0xf8 - bl FUN_02097C8C - mov r1, #0x0 - str r1, [r5, #0x108] - ldr r1, [r5, #0x108] - mov r4, r0 - str r1, [r5, #0x104] -_02097DB0: - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_02097DC0: .word 0x021C8CD0 - - arm_func_start FUN_02097DC4 -FUN_02097DC4: ; 0x02097DC4 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldrb r0, [r5, #0x3] - mov r0, r0, lsl #0x2 - bl FUN_02099F6C - mov r4, r0 - ldrh r0, [r5, #0x0] - bl FUN_02099F6C -_02097DE8: ; 0x02097DE8 - add r0, r4, r0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_02097DF8 -FUN_02097DF8: ; 0x02097DF8 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldrh r0, [r5, #0x2] - mov r4, #0x80 - cmp r0, #0x0 - beq _02097E38 - add r4, r4, #0x114 - bl FUN_02099F6C - add r4, r4, r0 - ldrh r0, [r5, #0x8] - bl FUN_02099F6C - add r4, r4, r0 - add r0, r5, #0x10 - bl FUN_02097DC4 - add r4, r4, r0 -_02097E38: - ldrh r0, [r5, #0x6] - cmp r0, #0x0 - beq _02097E74 - add r4, r4, #0x110 - bl FUN_02099F6C - add r4, r4, r0 - ldrh r0, [r5, #0xa] - bl FUN_02099F6C - add r4, r4, r0 - ldrh r0, [r5, #0xc] - bl FUN_02099F6C - add r4, r4, r0 - add r0, r5, #0x14 - bl FUN_02097DC4 - add r4, r4, r0 -_02097E74: - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_02097E84 -FUN_02097E84: ; 0x02097E84 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - bl FUN_02097DF8 - mov r4, r0 - bl OS_DisableInterrupts - ldr r1, _02097EF4 ; =0x021C8CC0 - mov r5, r0 - ldr r1, [r1, #0x0] - mov r0, r4 - ldr r1, [r1, #0x18] - blx r1 - movs r6, r0 - beq _02097EDC - mov r2, r4 - mov r1, #0x0 - bl MI_CpuFill8 - mov r0, r6 - mov r1, r7 - bl FUN_02097CB8 - mov r0, r6 - bl FUN_0209A094 -_02097EDC: - mov r0, r5 - bl OS_RestoreInterrupts - mov r0, r6 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_02097EF4: .word 0x021C8CC0 - - arm_func_start FUN_02097EF8 -FUN_02097EF8: ; 0x02097EF8 - stmdb sp!, {r4,lr} - ldr r4, [r0, #0x4] - mov r0, r4 - bl FUN_0209CC28 - ldrsb r0, [r4, #0x73] - ldr r1, [r4, #0x68] - cmp r0, #0x4 - addls pc, pc, r0, lsl #0x2 - b _02097F58 -_02097F1C: - b _02097F30 -_02097F20: - b _02097F40 -_02097F24: - b _02097F54 -_02097F28: - b _02097F58 -_02097F2C: - b _02097F30 -_02097F30: - add r0, r1, #0x20 - bl FUN_0209CB0C - bl FUN_0209CB44 - b _02097F58 -_02097F40: - bl FUN_0209CB44 - bl FUN_0209CBE8 - ldr r0, _02097F6C ; =FUN_02098550 - bl FUN_0209CAA8 -_02097F50: ; 0x02097F50 - b _02097F58 -_02097F54: - bl FUN_0209CBE8 -_02097F58: - mov r0, #0x1 - strh r0, [r4, #0x70] - mov r0, #0x0 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_02097F6C: .word FUN_02098550 - - arm_func_start FUN_02097F70 -FUN_02097F70: ; 0x02097F70 - stmdb sp!, {r4,lr} - bl FUN_02097E84 - movs r4, r0 - mvneq r0, #0x30 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r0, _02097FB0 ; =FUN_02097EF8 - mov r1, r4 - mov r2, #0x1 - bl FUN_02097A98 - mov r1, r0 - mov r0, r4 - bl FUN_0209792C - mov r0, r4 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_02097FB0: .word FUN_02097EF8 - - arm_func_start FUN_02097FB4 -FUN_02097FB4: ; 0x02097FB4 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - mov r6, r0 - ldr r4, [r6, #0x4] - ldr r5, [r4, #0x64] - add r0, r5, #0xe0 - bl OS_LockMutex - mov r1, #0x0 - ldrh r0, [r6, #0x10] - mov r2, r1 - bl FUN_0209CB78 - bl FUN_0209CA54 - mov r2, #0x0 - add r0, sp, #0x0 - add r1, sp, #0x4 - str r2, [r5, #0xf8] - bl FUN_0209C8E0 - ldrh r2, [sp, #0x0] - ldr r1, [r6, #0x14] - strh r2, [r1, #0x0] - ldr r1, [r6, #0x18] - str r0, [r1, #0x0] - ldrsh r1, [r4, #0x70] - add r0, r5, #0xe0 - orr r1, r1, #0x4 - strh r1, [r4, #0x70] - bl OS_UnlockMutex -_02098020: ; 0x02098020 - mov r0, #0x0 - add sp, sp, #0x8 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_02098030 -FUN_02098030: - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_02099FA8 -_02098044: ; 0x02098044 - cmp r0, #0x0 - mvnne r0, #0x1b - ldmneia sp!, {r4-r6,lr} - bxne lr - cmp r6, #0x0 - mov r1, #0x0 - beq _0209806C - ldrsh r0, [r6, #0x70] - ands r0, r0, #0x1 - movne r1, #0x1 -_0209806C: - cmp r1, #0x0 - mvneq r0, #0x26 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldrsh r0, [r6, #0x70] - ands r0, r0, #0x2 - mvnne r0, #0x1b - ldmneia sp!, {r4-r6,lr} - bxne lr - ldrsb r0, [r6, #0x73] - mov r1, #0x1 - cmp r0, #0x0 - beq _020980A8 - cmp r0, #0x4 - movne r1, #0x0 -_020980A8: - cmp r1, #0x0 - mvneq r0, #0x1b - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldrsb r2, [r6, #0x72] - cmp r2, #0x1 - mvnne r0, #0x5 - ldmneia sp!, {r4-r6,lr} - bxne lr - ldrh r0, [r6, #0x74] - cmp r0, #0x0 - mvneq r0, #0x1b - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldr r0, _0209811C ; =FUN_02097FB4 - mov r1, r6 - bl FUN_02097A98 - mov r1, r0 - ldrh r2, [r6, #0x74] - mov r0, r6 - strh r2, [r1, #0x10] - str r5, [r1, #0x14] - str r4, [r1, #0x18] - ldrsh r2, [r6, #0x70] - orr r2, r2, #0x2 - strh r2, [r6, #0x70] - bl FUN_02097958 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_0209811C: .word FUN_02097FB4 - - arm_func_start FUN_02098120 -FUN_02098120: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_02099FA8 -_02098138: ; 0x02098138 - cmp r0, #0x0 - addne sp, sp, #0x4 - mvnne r0, #0x1b - ldmneia sp!, {r4-r7,lr} - bxne lr - cmp r6, #0x0 - mov r1, #0x0 - beq _02098164 - ldrsh r0, [r6, #0x70] - ands r0, r0, #0x1 - movne r1, #0x1 -_02098164: - cmp r1, #0x0 - addeq sp, sp, #0x4 - mvneq r0, #0x26 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - ldrsh r0, [r6, #0x70] - ands r0, r0, #0x2 - addne sp, sp, #0x4 - mvnne r0, #0x1b - ldmneia sp!, {r4-r7,lr} - bxne lr - ldrsb r0, [r6, #0x73] - mov r1, #0x1 - cmp r0, #0x0 - beq _020981A8 - cmp r0, #0x4 - movne r1, #0x0 -_020981A8: - cmp r1, #0x0 - addeq sp, sp, #0x4 - mvneq r0, #0x1b - ldmeqia sp!, {r4-r7,lr} - bxeq lr - ldrsb r0, [r6, #0x72] - cmp r0, #0x1 - addne sp, sp, #0x4 - mvnne r0, #0x5 - ldmneia sp!, {r4-r7,lr} - bxne lr - ldr r0, _02098228 ; =0x021061DC - bl FUN_02097F70 - movs r7, r0 - addmi sp, sp, #0x4 - ldmmiia sp!, {r4-r7,lr} - bxmi lr - ldrh r1, [r6, #0x74] - bl FUN_020984B4 -_020981F4: ; 0x020981F4 - cmp r0, #0x0 - addlt sp, sp, #0x4 - ldmltia sp!, {r4-r7,lr} - bxlt lr - mov r0, r7 - mov r1, r5 - mov r2, r4 - bl FUN_02098030 -_02098214: ; 0x02098214 - cmp r0, #0x0 - movge r0, r7 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_02098228: .word 0x021061DC - - arm_func_start FUN_0209822C -FUN_0209822C: ; 0x0209822C - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_02099FA8 -_02098238: ; 0x02098238 - cmp r0, #0x0 - mvnne r0, #0x1b - ldmneia sp!, {r4,lr} - bxne lr - cmp r4, #0x0 - mov r1, #0x0 - beq _02098260 - ldrsh r0, [r4, #0x70] - ands r0, r0, #0x1 - movne r1, #0x1 -_02098260: - cmp r1, #0x0 - mvneq r0, #0x26 - ldmeqia sp!, {r4,lr} - bxeq lr - ldrsh r0, [r4, #0x70] - ands r0, r0, #0x2 - mvnne r0, #0x1b - ldmneia sp!, {r4,lr} - bxne lr - ldrsb r0, [r4, #0x73] - mov r1, #0x1 - cmp r0, #0x0 - beq _0209829C - cmp r0, #0x4 - movne r1, #0x0 -_0209829C: - cmp r1, #0x0 - mvneq r0, #0x1b - ldmeqia sp!, {r4,lr} - bxeq lr - ldrsb r0, [r4, #0x72] - cmp r0, #0x1 - moveq r0, #0x0 - mvnne r0, #0x5 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020982C4 -FUN_020982C4: ; 0x020982C4 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - ldr r4, [r7, #0x4] - mov r5, #0x0 - ldr r6, [r4, #0x64] - add r0, r6, #0xe0 - bl OS_LockMutex - ldrh r0, [r7, #0x10] - ldrh r1, [r7, #0x12] - ldr r2, [r7, #0x14] - bl FUN_0209CB78 - mov r0, r5 - str r0, [r6, #0xf8] - ldrsb r0, [r7, #0xc] - cmp r0, #0x0 - beq _02098310 - cmp r0, #0x4 - bne _02098318 -_02098310: - bl FUN_0209C934 - mov r5, r0 -_02098318: - add r0, r6, #0xe0 - bl OS_UnlockMutex -_02098320: ; 0x02098320 - cmp r5, #0x0 - ldrnesh r1, [r4, #0x70] - mvnne r0, #0x4b - moveq r0, #0x0 - orrne r1, r1, #0x40 - strneh r1, [r4, #0x70] - ldreqsh r1, [r4, #0x70] - orreq r1, r1, #0x4 - streqh r1, [r4, #0x70] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_02098350 -FUN_02098350: ; 0x02098350 - stmdb sp!, {r4,lr} - mov r4, r0 - ldrsb r2, [r4, #0x72] - ldr r0, _020983AC ; =FUN_020982C4 - mov r1, r4 - bl FUN_02097A98 - movs r1, r0 - mvneq r0, #0x20 - ldmeqia sp!, {r4,lr} - bxeq lr - ldrh r2, [r4, #0x74] - mov r0, r4 - strh r2, [r1, #0x10] - ldrh r2, [r4, #0x76] - strh r2, [r1, #0x12] - ldr r2, [r4, #0x78] - str r2, [r1, #0x14] - ldrsh r2, [r4, #0x70] - orr r2, r2, #0x2 - strh r2, [r4, #0x70] - bl FUN_02097958 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020983AC: .word FUN_020982C4 - - arm_func_start FUN_020983B0 -FUN_020983B0: ; 0x020983B0 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_02099FA8 -_020983C4: ; 0x020983C4 - cmp r0, #0x0 - bne _020983D8 - ldrsh r0, [r6, #0x70] - ands r0, r0, #0x8 - beq _020983E4 -_020983D8: - mvn r0, #0x1b - ldmia sp!, {r4-r6,lr} - bx lr -_020983E4: - cmp r6, #0x0 - mov r1, #0x0 - beq _020983FC - ldrsh r0, [r6, #0x70] - ands r0, r0, #0x1 - movne r1, #0x1 -_020983FC: - cmp r1, #0x0 - mvneq r0, #0x26 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldrsb r0, [r6, #0x73] - mov r1, #0x1 - cmp r0, #0x0 - beq _02098424 - cmp r0, #0x4 - movne r1, #0x0 -_02098424: - cmp r1, #0x0 - beq _0209849C - ldrsh r0, [r6, #0x70] - ands r0, r0, #0x4 - beq _02098450 - ldrsb r0, [r6, #0x72] - cmp r0, #0x1 - mvneq r0, #0x1d - movne r0, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr -_02098450: - ldrsh r0, [r6, #0x70] - ands r0, r0, #0x2 - beq _02098478 - ldrsh r0, [r6, #0x70] - ands r0, r0, #0x40 - ldrne r0, [r6, #0x6c] - ldreq r0, _020984B0 ; =0x021061C0 - ldreq r0, [r0, #0x0] - ldmia sp!, {r4-r6,lr} - bx lr -_02098478: - strh r5, [r6, #0x76] - mov r0, r6 - str r4, [r6, #0x78] - bl FUN_02098350 - ldrsb r1, [r6, #0x72] - cmp r1, #0x1 - mvnne r0, #0x19 - ldmia sp!, {r4-r6,lr} - bx lr -_0209849C: - strh r5, [r6, #0x76] - str r4, [r6, #0x78] - mov r0, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020984B0: .word 0x021061C0 - - arm_func_start FUN_020984B4 -FUN_020984B4: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r0 - mov r5, r1 - bl FUN_02099FA8 -_020984C8: ; 0x020984C8 - cmp r0, #0x0 - addne sp, sp, #0x4 - mvnne r0, #0x1b - ldmneia sp!, {r4-r5,lr} - bxne lr - cmp r4, #0x0 - mov r1, #0x0 - beq _020984F4 - ldrsh r0, [r4, #0x70] - ands r0, r0, #0x1 - movne r1, #0x1 -_020984F4: - cmp r1, #0x0 - addeq sp, sp, #0x4 - mvneq r0, #0x26 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldrsh r0, [r4, #0x70] - ands r0, r0, #0x2 - addne sp, sp, #0x4 - mvnne r0, #0x6 - ldmneia sp!, {r4-r5,lr} - bxne lr - strh r5, [r4, #0x74] - ldrsb r0, [r4, #0x73] - cmp r0, #0x1 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {r4-r5,lr} - bxne lr - mov r0, r4 - bl FUN_02098350 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_02098550 -FUN_02098550: ; 0x02098550 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r7, r2 - ldr r6, [r7, #0x64] - mov r9, r0 - mov r8, r1 - bl OS_DisableInterrupts - add r1, r6, #0x100 - ldrh r2, [r1, #0x8] - ldrh r1, [r1, #0xa] - mov r4, r0 - add r0, r2, r8 - cmp r1, r0 - blo _02098618 - ldr r1, _02098668 ; =0x021C8CC0 - add r0, r8, #0xc - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x18] - blx r1 - movs r5, r0 - beq _02098604 - add r1, r6, #0x100 - ldrh r3, [r1, #0x8] - mov r2, #0x0 - mov r0, r9 - add r3, r3, r8 - strh r3, [r1, #0x8] - str r2, [r5, #0x0] - strh r8, [r5, #0x4] - ldrh r3, [r7, #0x18] - mov r2, r8 - add r1, r5, #0xc - strh r3, [r5, #0x6] - ldr r3, [r7, #0x1c] - str r3, [r5, #0x8] - bl MI_CpuCopy8 - ldr r0, [r6, #0x100] - cmp r0, #0x0 - ldrne r0, [r6, #0x100] - strne r5, [r0, #0x0] - str r5, [r6, #0x100] - ldr r0, [r6, #0x104] - cmp r0, #0x0 - streq r5, [r6, #0x104] - b _02098628 -_02098604: - ldr r0, _0209866C ; =0x021C8D28 - ldr r1, [r0, #0x0] - add r1, r1, #0x1 - str r1, [r0, #0x0] - b _02098628 -_02098618: - ldr r0, _0209866C ; =0x021C8D28 - ldr r1, [r0, #0x4] - add r1, r1, #0x1 - str r1, [r0, #0x4] -_02098628: - ldrh r0, [r7, #0x74] - cmp r0, #0x0 - ldreqh r0, [r7, #0xa] - streqh r0, [r7, #0x74] - ldrh r1, [r7, #0x1a] - add r0, r6, #0x10c - strh r1, [r7, #0x18] - ldr r1, [r7, #0x20] - str r1, [r7, #0x1c] - bl OS_WakeupThread - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - .balign 4 -_02098668: .word 0x021C8CC0 -_0209866C: .word 0x021C8D28 - - arm_func_start FUN_02098670 -FUN_02098670: ; 0x02098670 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x14 - mov r10, r0 - ldr r9, [r10, #0x64] - str r1, [sp, #0x0] - ldr r0, [r9, #0x104] - str r2, [sp, #0x4] - str r3, [sp, #0x8] - bl OS_DisableInterrupts - ldr r8, [r9, #0x104] - str r0, [sp, #0xc] - cmp r8, #0x0 - bne _02098710 - ldr r0, [sp, #0x3c] - and r7, r0, #0x1 - add r6, r9, #0x10c - mov r4, #0x1 - mov r5, #0x0 -_020986B8: - cmp r7, #0x0 - mvneq r11, #0x5 - beq _02098710 - mov r0, r6 - bl OS_SleepThread - mov r0, r10 - bl FUN_02099FA8 -_020986D4: ; 0x020986D4 - cmp r0, #0x0 - bne _020986FC - mov r1, r5 - cmp r10, #0x0 - beq _020986F4 - ldrsh r0, [r10, #0x70] - ands r0, r0, #0x1 - movne r1, r4 -_020986F4: - cmp r1, #0x0 - bne _02098704 -_020986FC: - mvn r11, #0x37 - b _02098710 -_02098704: - ldr r8, [r9, #0x104] - cmp r8, #0x0 - beq _020986B8 -_02098710: - cmp r8, #0x0 - beq _020987A4 - ldrh r1, [r8, #0x4] - ldr r0, [sp, #0x4] - cmp r0, r1 - strgt r1, [sp, #0x4] - ldr r1, [sp, #0x0] - ldr r2, [sp, #0x4] - add r0, r8, #0xc - bl MI_CpuCopy8 - ldr r0, [sp, #0x8] - cmp r0, #0x0 - ldrneh r1, [r8, #0x6] - strneh r1, [r0, #0x0] - ldr r1, [sp, #0x38] - cmp r1, #0x0 - ldrne r0, [r8, #0x8] - strne r0, [r1, #0x0] - ldrsb r0, [r9, #0xfe] - ldrh r11, [r8, #0x4] - cmp r0, #0x0 - bne _020987A4 - ldr r0, [r8, #0x0] - ldr r1, _020987BC ; =0x021C8CC0 - str r0, [r9, #0x104] - ldr r0, [r8, #0x0] - cmp r0, #0x0 - moveq r0, #0x0 - streq r0, [r9, #0x100] - ldr r1, [r1, #0x0] - mov r0, r8 - ldr r1, [r1, #0x1c] - blx r1 - add r0, r9, #0x100 - ldrh r1, [r0, #0x8] - sub r1, r1, r11 - strh r1, [r0, #0x8] -_020987A4: - ldr r0, [sp, #0xc] - bl OS_RestoreInterrupts - mov r0, r11 - add sp, sp, #0x14 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020987BC: .word 0x021C8CC0 - - arm_func_start FUN_020987C0 -FUN_020987C0: ; 0x020987C0 - stmdb sp!, {r4-r6,lr} - ldr r6, [r0, #0x64] - bl OS_DisableInterrupts - ldr r4, [r6, #0xf8] - mov r5, r0 - cmp r4, #0x0 - beq _020987EC - mov r1, #0x0 - mov r0, r4 - str r1, [r6, #0xf8] - bl FUN_0209C52C -_020987EC: - mov r0, r5 - bl OS_RestoreInterrupts - mov r0, r4 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_02098800 -FUN_02098800: ; 0x02098800 - ldr ip, _0209880C ; =FUN_020987C0 - ldr r0, [r0, #0x4] - bx r12 - .balign 4 -_0209880C: .word FUN_020987C0 - - arm_func_start FUN_02098810 -FUN_02098810: - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r1, [r4, #0x64] - ldrh r0, [r1, #0xfc] - ldr r1, [r1, #0xf8] - cmp r1, r0 - movlt r0, #0x0 - ldmltia sp!, {r4,lr} - bxlt lr - ldr r0, _02098864 ; =FUN_02098800 - mov r1, r4 - mov r2, #0x0 - bl FUN_02097A98 - movs r1, r0 - mvneq r0, #0x20 - ldmeqia sp!, {r4,lr} - bxeq lr - mov r0, r4 - bl FUN_02097958 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_02098864: .word FUN_02098800 - - arm_func_start FUN_02098868 -FUN_02098868: ; 0x02098868 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x14 - ldr r9, [r0, #0x4] - ldr r1, [r0, #0x10] - ldr r8, [r9, #0x64] - str r1, [sp, #0x4] - ldr r1, [r0, #0x18] - ldr r10, [r0, #0x14] - ldr r0, [r0, #0x1c] - ldr r7, [r8, #0xf8] - str r1, [sp, #0x8] - str r0, [sp, #0xc] - add r11, sp, #0x10 - mov r5, #0x0 - mov r6, #0x1 - mov r4, #0xa -_020988A8: - mov r0, r11 - bl FUN_0209C638 -_020988B0: ; 0x020988B0 - cmp r0, #0x0 - beq _02098904 - ldr r1, [sp, #0x10] - sub r1, r1, r7 - cmp r1, #0x0 - bgt _02098904 - ldrsb r0, [r9, #0x73] - mov r1, r6 - cmp r0, #0x0 - beq _020988E0 - cmp r0, #0x4 - movne r1, r5 -_020988E0: - cmp r1, #0x0 - beq _020988F8 - ldrb r0, [r9, #0x8] - cmp r0, #0x4 - movne r0, #0x0 - bne _02098904 -_020988F8: - mov r0, r4 - bl OS_Sleep - b _020988A8 -_02098904: - ldrsb r1, [r9, #0x73] - cmp r1, #0x4 - bne _02098954 - cmp r0, #0x0 - addeq sp, sp, #0x14 - moveq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - ldr r1, [sp, #0x10] - cmp r10, r1 - movhi r10, r1 - ldr r1, [sp, #0x4] - mov r2, r10 - bl MI_CpuCopy8 - mov r0, r10 - bl FUN_0209C52C - add sp, sp, #0x14 - mov r0, r10 - ldmia sp!, {r4-r11,lr} - bx lr -_02098954: - cmp r0, #0x0 - moveq r4, #0x0 - beq _02098980 - ldr r4, [sp, #0xc] - ldr r1, [sp, #0x4] - ldr r3, [sp, #0x8] - mov r0, r9 - mov r2, r10 - str r4, [sp, #0x0] - bl FUN_02098AA4 - mov r4, r0 -_02098980: - cmp r4, #0x0 - addle sp, sp, #0x14 - movle r0, r4 - ldmleia sp!, {r4-r11,lr} - bxle lr - ldrh r0, [r8, #0xfc] - ldr r1, [r8, #0xf8] - cmp r1, r0 - blt _020989AC - mov r0, r9 - bl FUN_020987C0 -_020989AC: - mov r0, r4 - add sp, sp, #0x14 - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_020989BC -FUN_020989BC: ; 0x020989BC - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - mov r6, r1 - mov r5, r2 - ldr r0, _02098A10 ; =FUN_02098868 - mov r1, r7 - mov r2, #0x1 - mov r4, r3 - bl FUN_02097A98 - mov r1, r0 - str r6, [r1, #0x10] - str r5, [r1, #0x14] - ldr r2, [sp, #0x18] - str r4, [r1, #0x18] - mov r0, r7 - str r2, [r1, #0x1c] - bl FUN_02097958 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_02098A10: .word FUN_02098868 - - arm_func_start FUN_02098A14 -FUN_02098A14: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r0, [r0, #0x64] - ldr r5, [r0, #0xc4] - ldr r4, [r0, #0xf8] - ldr r0, [r5, #0x44] - subs lr, r0, r4 - bmi _02098A78 - ldrh r12, [r5, #0xa] - ldr r0, [sp, #0x10] - cmp lr, #0x0 - strh r12, [r2, #0x0] - ldrh r2, [r5, #0x18] - strh r2, [r3, #0x0] - ldr r2, [r5, #0x1c] - str r2, [r0, #0x0] - str lr, [r1, #0x0] - bne _02098A90 - ldrb r0, [r5, #0x8] - cmp r0, #0x4 - beq _02098A90 - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r5,lr} - bx lr -_02098A78: - mvn r0, #0x0 - str r0, [r1, #0x0] - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r5,lr} - bx lr -_02098A90: - ldr r0, [r5, #0x40] - add r0, r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_02098AA4 -FUN_02098AA4: ; 0x02098AA4 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x14 - mov r9, r0 - mov r8, r1 - mov r7, r2 - mov r6, r3 - bl OS_DisableInterrupts - add r1, sp, #0xc - mov r5, r0 - str r1, [sp, #0x0] - add r1, sp, #0x8 - mov r0, r9 - add r2, sp, #0x4 - add r3, sp, #0x6 - bl FUN_02098A14 -_02098AE0: ; 0x02098AE0 - cmp r0, #0x0 - beq _02098B48 - ldr r4, [sp, #0x8] - cmp r4, #0x0 - mvneq r4, #0x5 - beq _02098B64 - ldrsb r1, [r9, #0x73] - cmp r7, r4 - movgt r7, r4 - mov r2, #0x1 - cmp r1, #0x0 - beq _02098B18 - cmp r1, #0x4 - movne r2, #0x0 -_02098B18: - cmp r2, #0x0 - mov r1, r8 - mov r2, r7 - movne r4, r7 - bl MI_CpuCopy8 - ldr r1, [r9, #0x64] - ldrsb r0, [r1, #0xfe] - cmp r0, #0x0 - ldreq r0, [r1, #0xf8] - addeq r0, r0, r4 - streq r0, [r1, #0xf8] - b _02098B64 -_02098B48: - ldr r0, [sp, #0x8] - cmp r0, #0x0 - ldrsh r0, [r9, #0x70] - moveq r4, #0x0 - mvnne r4, #0x1b - bic r0, r0, #0x6 - strh r0, [r9, #0x70] -_02098B64: - cmp r4, #0x0 - blt _02098B9C - cmp r6, #0x0 - beq _02098B8C - ldr r1, [sp, #0x30] - cmp r1, #0x0 - ldrneh r0, [sp, #0x6] - strneh r0, [r6, #0x0] - ldrne r0, [sp, #0xc] - strne r0, [r1, #0x0] -_02098B8C: - ldrh r0, [r9, #0x74] - cmp r0, #0x0 - ldreqh r0, [sp, #0x4] - streqh r0, [r9, #0x74] -_02098B9C: - mov r0, r5 - bl OS_RestoreInterrupts - mov r0, r4 - add sp, sp, #0x14 - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start FUN_02098BB4 -FUN_02098BB4: ; 0x02098BB4 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - ldrsb r12, [r7, #0x73] - mov r6, r1 - mov r5, r2 - mov r4, r3 - cmp r12, #0x4 - bne _02098BF0 - ldr r4, [sp, #0x18] - str r4, [sp, #0x0] - bl FUN_020989BC - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr -_02098BF0: - ldr r12, [sp, #0x18] - str r12, [sp, #0x0] - bl FUN_02098AA4 - mvn r1, #0x5 - cmp r0, r1 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr - ldr r1, [sp, #0x1c] - ands r1, r1, #0x1 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - ldr r12, [sp, #0x18] - mov r0, r7 - mov r1, r6 - mov r2, r5 - mov r3, r4 - str r12, [sp, #0x0] - bl FUN_020989BC - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_02098C4C -FUN_02098C4C: ; 0x02098C4C - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - ldr r5, [sp, #0x28] - mov r7, r0 - ands r0, r5, #0x2 - ldr r5, [r7, #0x64] - beq _02098C74 - cmp r5, #0x0 - movne r6, #0x1 - bne _02098C78 -_02098C74: - mov r6, #0x0 -_02098C78: - cmp r6, #0x0 - ldrnesb r4, [r5, #0xfe] - movne r0, #0x1 - strneb r0, [r5, #0xfe] - ldrsb r0, [r7, #0x73] - cmp r0, #0x1 - bne _02098CB4 - ldr r0, [sp, #0x20] - ldr r12, [sp, #0x24] - str r0, [sp, #0x0] - mov r0, r7 - str r12, [sp, #0x4] - bl FUN_02098670 - mov r8, r0 - b _02098CDC -_02098CB4: - ldr r0, [sp, #0x20] - ldr r12, [sp, #0x24] - str r0, [sp, #0x0] - mov r0, r7 - str r12, [sp, #0x4] - bl FUN_02098BB4 - movs r8, r0 - bmi _02098CDC - mov r0, r7 - bl FUN_02098810 -_02098CDC: - cmp r6, #0x0 - strneb r4, [r5, #0xfe] - mov r0, r8 - add sp, sp, #0x8 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_02098CF4 -FUN_02098CF4: - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0xc - mov r9, r0 - mov r8, r1 - mov r7, r2 - mov r6, r3 - bl FUN_02099FA8 -_02098D10: ; 0x02098D10 - cmp r0, #0x0 - addne sp, sp, #0xc - mvnne r0, #0x1b - ldmneia sp!, {r4-r9,lr} - bxne lr - ldr r0, [sp, #0x2c] - ands r0, r0, #0x4 - bne _02098D3C - ldrsb r0, [r9, #0x72] - cmp r0, #0x0 - bne _02098D5C -_02098D3C: - ldrsb r0, [r9, #0x73] - cmp r0, #0x4 - addeq sp, sp, #0xc - mvneq r0, #0x1b - ldmeqia sp!, {r4-r9,lr} - bxeq lr - mov r4, #0x0 - b _02098D78 -_02098D5C: - bl OS_GetProcMode - cmp r0, #0x12 - addeq sp, sp, #0xc - mvneq r0, #0x1b - ldmeqia sp!, {r4-r9,lr} - bxeq lr - mov r4, #0x1 -_02098D78: - cmp r9, #0x0 - mov r1, #0x0 - beq _02098D90 - ldrsh r0, [r9, #0x70] - ands r0, r0, #0x1 - movne r1, #0x1 -_02098D90: - cmp r1, #0x0 - addeq sp, sp, #0xc - mvneq r0, #0x26 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - ldrsb r0, [r9, #0x73] - mov r1, #0x1 - cmp r0, #0x0 - beq _02098DBC - cmp r0, #0x4 - movne r1, #0x0 -_02098DBC: - cmp r1, #0x0 - beq _02098DEC - ldrsh r0, [r9, #0x70] - ands r0, r0, #0x4 - beq _02098DDC - ldrsh r0, [r9, #0x70] - ands r0, r0, #0x8 - beq _02098DEC -_02098DDC: - add sp, sp, #0xc - mvn r0, #0x37 - ldmia sp!, {r4-r9,lr} - bx lr -_02098DEC: - ands r0, r4, #0x1 - ldr r5, [r9, #0x64] - bne _02098E18 - add r0, r5, #0xe0 - bl OS_TryLockMutex -_02098E00: ; 0x02098E00 - cmp r0, #0x0 - bne _02098E20 - add sp, sp, #0xc - mvn r0, #0x5 - ldmia sp!, {r4-r9,lr} - bx lr -_02098E18: - add r0, r5, #0xe0 - bl OS_LockMutex -_02098E20: - ldr r0, [sp, #0x28] - ldr r12, [sp, #0x2c] - str r0, [sp, #0x0] - str r4, [sp, #0x4] - mov r0, r9 - mov r1, r8 - mov r2, r7 - mov r3, r6 - str r12, [sp, #0x8] - bl FUN_02098C4C - mov r4, r0 - add r0, r5, #0xe0 - bl OS_UnlockMutex - mov r0, r4 - add sp, sp, #0xc - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start FUN_02098E64 -FUN_02098E64: ; 0x02098E64 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r6, r2 - ldr r5, [r6, #0x14] - ldr r4, [r6, #0x1c] - cmp r5, r1 - mov r7, r0 - movgt r5, r1 - movgt r4, #0x0 - bgt _02098E98 - sub r0, r1, r5 - cmp r4, r0 - movgt r4, r0 -_02098E98: - cmp r5, #0x0 - ble _02098EC8 - ldr r0, [r6, #0x10] - mov r1, r7 - mov r2, r5 - bl MI_CpuCopy8 - ldr r0, [r6, #0x10] - add r0, r0, r5 - str r0, [r6, #0x10] - ldr r0, [r6, #0x14] - sub r0, r0, r5 - str r0, [r6, #0x14] -_02098EC8: - cmp r4, #0x0 - ble _02098EF8 - ldr r0, [r6, #0x18] - mov r2, r4 - add r1, r7, r5 - bl MI_CpuCopy8 - ldr r0, [r6, #0x18] - add r0, r0, r4 - str r0, [r6, #0x18] - ldr r0, [r6, #0x1c] - sub r0, r0, r4 - str r0, [r6, #0x1c] -_02098EF8: - add r0, r5, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_02098F08 -FUN_02098F08: ; 0x02098F08 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r1, _02098FBC ; =0x021D3498 - mov r4, r0 - ldr r0, [r1, #0x4] - ldr r5, [r0, #0xa4] - bl OS_DisableInterrupts -_02098F24: ; 0x02098F24 - cmp r5, #0x0 - beq _02098F74 - ldrh r3, [r5, #0x2e] - cmp r3, #0x0 - beq _02098F64 - ldrh r2, [r5, #0x2c] - cmp r2, #0x0 - beq _02098F64 - ldr r1, _02098FC0 ; =0x021C8CD4 - cmp r3, r2 - ldr r1, [r1, #0x24] - movgt r3, r2 - cmp r3, r1 - movgt r3, r1 - mov r5, r3, lsl #0x1 - b _02098F80 -_02098F64: - ldr r1, _02098FC0 ; =0x021C8CD4 - ldr r1, [r1, #0x24] - mov r5, r1, lsl #0x1 - b _02098F80 -_02098F74: - ldr r1, _02098FC0 ; =0x021C8CD4 - ldr r1, [r1, #0x24] - mov r5, r1, lsl #0x1 -_02098F80: - bl OS_RestoreInterrupts -_02098F84: ; 0x02098F84 - cmp r5, #0x0 - ble _02098FAC - mov r0, r4 - mov r1, r5 - bl _s32_div_f -_02098F98: ; 0x02098F98 - cmp r0, #0x0 - mulgt r0, r5, r0 - addgt sp, sp, #0x4 - ldmgtia sp!, {r4-r5,lr} - bxgt lr -_02098FAC: - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_02098FBC: .word 0x021D3498 -_02098FC0: .word 0x021C8CD4 - - arm_func_start FUN_02098FC4 -FUN_02098FC4: ; 0x02098FC4 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r8, r0 - ldr r7, [r8, #0x4] - mov r4, #0x0 - ldrsb r0, [r7, #0x73] - ldr r6, [r7, #0x68] - mov r1, #0x1 - cmp r0, #0x0 - beq _02098FF4 - cmp r0, #0x4 - movne r1, r4 -_02098FF4: - cmp r1, #0x0 - beq _02099008 - ldrsh r0, [r7, #0x70] - ands r0, r0, #0x4 - beq _020990DC -_02099008: - ldr r2, [r8, #0x28] - cmp r2, #0x0 - beq _02099020 - ldrh r0, [r8, #0x24] - ldrh r1, [r8, #0x26] - bl FUN_0209CB78 -_02099020: - ldrsb r1, [r7, #0x73] - mov r0, #0x1 - cmp r1, #0x0 - beq _02099038 - cmp r1, #0x4 - movne r0, #0x0 -_02099038: - cmp r0, #0x0 - movne r2, #0x36 - moveq r2, #0x2a - ldr r0, [r7, #0x4c] - cmp r1, #0x0 - add r5, r0, r2 - beq _0209905C - cmp r1, #0x4 - bne _02099070 -_0209905C: - ldr r0, [r7, #0x48] - sub r0, r0, r2 - bl FUN_02098F08 - mov r9, r0 - b _02099078 -_02099070: - ldr r0, [r7, #0x48] - sub r9, r0, r2 -_02099078: - mov r0, r5 - mov r1, r9 - mov r2, r8 - bl FUN_02098E64 - mov r1, r0 - cmp r1, #0x0 - ble _020990E0 - mov r0, r5 - bl FUN_0209C030 -_0209909C: ; 0x0209909C - cmp r0, #0x0 - bgt _020990D4 - ldrsb r0, [r7, #0x73] - mov r1, #0x1 - cmp r0, #0x0 - beq _020990BC - cmp r0, #0x4 - movne r1, #0x0 -_020990BC: - cmp r1, #0x0 - ldrnesh r0, [r7, #0x70] - mvn r4, #0x4b - bicne r0, r0, #0xe - strneh r0, [r7, #0x70] - b _020990E0 -_020990D4: - add r4, r4, r0 - b _02099078 -_020990DC: - mvn r4, #0x4b -_020990E0: - ldrh r2, [r8, #0x20] - add r1, r6, #0x100 - add r0, r6, #0x104 - strh r2, [r1, #0x2] - bl OS_WakeupThread - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start FUN_02099104 -FUN_02099104: - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r9, r0 - ldr r6, [r9, #0x68] - mov r4, r1 - mov r8, r2 - ldr r1, [r6, #0x10c] - ldr r2, [sp, #0x28] - ldr r0, _0209929C ; =FUN_02098FC4 - mov r7, r3 - bl FUN_02097A98 - movs r5, r0 - addeq sp, sp, #0x4 - mvneq r0, #0x20 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - ldr r0, [sp, #0x28] - ands r0, r0, #0x1 - beq _02099164 - ldrsb r0, [r9, #0x73] - cmp r0, #0x1 - movne r0, #0x3 - strneb r0, [r5, #0xd] - bne _0209916C -_02099164: - mov r0, #0x0 - strb r0, [r5, #0xd] -_0209916C: - ldr r2, [r6, #0xf8] - add r1, r7, r8 - cmp r1, r2 - ldr r3, [r6, #0xfc] - bge _020991A0 - add r0, r3, r7 - str r0, [r5, #0x10] - str r8, [r5, #0x14] - mov r0, #0x0 - str r0, [r5, #0x18] - mov r7, r1 - str r0, [r5, #0x1c] - b _020991D8 -_020991A0: - add r0, r3, r7 - str r0, [r5, #0x10] - sub r0, r2, r7 - str r0, [r5, #0x14] - str r3, [r5, #0x18] - ldr r0, [r5, #0x14] - sub r0, r8, r0 - str r0, [r5, #0x1c] - ldr r7, [r5, #0x1c] - ldr r0, [r5, #0x14] - ldr r1, [r5, #0x18] - mov r2, r7 - add r0, r4, r0 - bl MI_CpuCopy8 -_020991D8: - ldr r1, [r5, #0x10] - ldr r2, [r5, #0x14] - mov r0, r4 - bl MI_CpuCopy8 - add r0, r6, #0x100 - ldrh r4, [r0, #0x0] - strh r7, [r5, #0x20] - ldrh r1, [r5, #0x20] - strh r1, [r0, #0x0] - ldrsb r0, [r9, #0x73] - cmp r0, #0x1 - bne _02099268 - ldrh r0, [r9, #0x74] - cmp r0, #0x0 - bne _02099224 - bl FUN_0209CC8C - strh r0, [r9, #0x74] - ldrh r0, [r9, #0x74] - strh r0, [r9, #0xa] -_02099224: - ldrh r0, [r9, #0x74] - strh r0, [r5, #0x24] - ldr r1, [r9, #0x78] - cmp r1, #0x0 - beq _02099244 - ldr r0, [sp, #0x24] - cmp r0, #0x0 - beq _02099258 -_02099244: - ldr r1, [sp, #0x24] - ldrh r0, [sp, #0x20] - str r1, [r5, #0x28] - strh r0, [r5, #0x26] - b _02099270 -_02099258: - str r1, [r5, #0x28] - ldrh r0, [r9, #0x76] - strh r0, [r5, #0x26] - b _02099270 -_02099268: - mov r0, #0x0 - str r0, [r5, #0x28] -_02099270: - ldr r0, [r6, #0x10c] - mov r1, r5 - bl FUN_02097948 -_0209927C: ; 0x0209927C - cmp r0, #0x0 - addne r0, r6, #0x100 - movne r8, #0x0 - strneh r4, [r0, #0x0] - mov r0, r8 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - .balign 4 -_0209929C: .word FUN_02098FC4 - - arm_func_start FUN_020992A0 -FUN_020992A0: - ldr r2, [r0, #0x68] - add r0, r2, #0x100 - ldrh r1, [r0, #0x0] - ldrh r0, [r0, #0x2] - ldr r2, [r2, #0xf8] - sub r0, r0, r1 - subs r0, r0, #0x1 - addmi r0, r0, r2 - bx lr - - arm_func_start FUN_020992C4 -FUN_020992C4: ; 0x020992C4 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r10, r0 - mov r9, r1 - mov r8, r2 - cmp r8, r9 - mov r11, r3 - ldr r7, [r10, #0x68] - movgt r8, r9 - bl OS_DisableInterrupts - ldr r1, [sp, #0x28] - str r0, [sp, #0x0] - and r5, r1, #0x1 - add r4, r7, #0x104 -_020992FC: - mov r0, r10 - bl FUN_020992A0 - mov r6, r0 - cmp r6, r8 - blt _02099328 - add r0, r7, #0x100 - ldrh r0, [r0, #0x0] - cmp r6, r9 - movge r6, r9 - str r0, [r11, #0x0] - b _02099340 -_02099328: - cmp r5, #0x0 - moveq r6, #0x0 - beq _02099340 - mov r0, r4 - bl OS_SleepThread - b _020992FC -_02099340: - ldr r0, [sp, #0x0] - bl OS_RestoreInterrupts - mov r0, r6 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_02099358 -FUN_02099358: ; 0x02099358 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x1c - mov r10, r0 - ldr r4, [r10, #0x68] - ldrsb r0, [r10, #0x73] - ldr r4, [r4, #0x10c] - mov r9, r1 - cmp r0, #0x1 - ldr r0, [r4, #0x48] - mov r8, r2 - str r3, [sp, #0xc] - ldr r7, [sp, #0x40] - ldr r6, [sp, #0x44] - mov r4, #0x0 - bne _020993B4 - sub r0, r0, #0x2a - cmp r8, r0 - addgt sp, sp, #0x1c - mvngt r0, #0x22 - ldmgtia sp!, {r4-r11,lr} - bxgt lr - str r8, [sp, #0x10] - b _020993C4 -_020993B4: - sub r0, r0, #0x36 - str r0, [sp, #0x10] - cmp r8, r0 - strle r8, [sp, #0x10] -_020993C4: - cmp r8, #0x0 - ble _02099460 - and r11, r6, #0x1 -_020993D0: - ldr r2, [sp, #0x10] - mov r0, r10 - mov r1, r8 - add r3, sp, #0x14 - str r6, [sp, #0x0] - bl FUN_020992C4 - mov r5, r0 - cmp r5, #0x0 - ble _02099438 - ldr r0, [sp, #0xc] - mov r1, r9 - str r0, [sp, #0x0] - str r7, [sp, #0x4] - str r6, [sp, #0x8] - ldr r3, [sp, #0x14] - mov r0, r10 - mov r2, r5 - bl FUN_02099104 -_02099418: ; 0x02099418 - cmp r0, #0x0 - addle sp, sp, #0x1c - mvnle r0, #0x5 - ldmleia sp!, {r4-r11,lr} - bxle lr - add r9, r9, r5 - sub r8, r8, r5 - add r4, r4, r5 -_02099438: - cmp r11, #0x0 - bne _02099458 - cmp r5, #0x0 - bgt _02099460 - add sp, sp, #0x1c - mvn r0, #0x5 - ldmia sp!, {r4-r11,lr} - bx lr -_02099458: - cmp r8, #0x0 - bgt _020993D0 -_02099460: - mov r0, r4 - add sp, sp, #0x1c - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_02099470 -FUN_02099470: ; 0x02099470 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, r3 - bl FUN_02099FA8 -_0209948C: ; 0x0209948C - cmp r0, #0x0 - addne sp, sp, #0x8 - mvnne r0, #0x1b - ldmneia sp!, {r4-r8,lr} - bxne lr - cmp r8, #0x0 - mov r1, #0x0 - beq _020994B8 - ldrsh r0, [r8, #0x70] - ands r0, r0, #0x1 - movne r1, #0x1 -_020994B8: - cmp r1, #0x0 - addeq sp, sp, #0x8 - mvneq r0, #0x26 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - ldrsb r0, [r8, #0x73] - mov r1, #0x1 - cmp r0, #0x0 - beq _020994E4 - cmp r0, #0x4 - movne r1, #0x0 -_020994E4: - cmp r1, #0x0 - beq _02099514 - ldrsh r0, [r8, #0x70] - ands r0, r0, #0x4 - beq _02099504 - ldrsh r0, [r8, #0x70] - ands r0, r0, #0x8 - beq _02099514 -_02099504: - add sp, sp, #0x8 - mvn r0, #0x37 - ldmia sp!, {r4-r8,lr} - bx lr -_02099514: - ldr r0, [sp, #0x24] - ldr r4, [r8, #0x68] - ands r0, r0, #0x4 - bne _02099530 - ldrsb r0, [r8, #0x72] - cmp r0, #0x0 - bne _02099554 -_02099530: - add r0, r4, #0xe0 - bl OS_TryLockMutex -_02099538: ; 0x02099538 - cmp r0, #0x0 - addeq sp, sp, #0x8 - mvneq r0, #0x5 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - mov r12, #0x0 - b _02099560 -_02099554: - add r0, r4, #0xe0 - bl OS_LockMutex - mov r12, #0x1 -_02099560: - ldr r1, [sp, #0x20] - mov r0, r8 - str r1, [sp, #0x0] - mov r1, r7 - mov r2, r6 - mov r3, r5 - str r12, [sp, #0x4] - bl FUN_02099358 - mov r5, r0 - add r0, r4, #0xe0 - bl OS_UnlockMutex - mov r0, r5 - add sp, sp, #0x8 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_0209959C -FUN_0209959C: ; 0x0209959C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, [r0, #0x4] - mov r1, #0x1 - ldrsb r0, [r0, #0x73] - cmp r0, #0x0 - beq _020995C0 - cmp r0, #0x4 - movne r1, #0x0 -_020995C0: - cmp r1, #0x0 - beq _020995CC - bl FUN_0209C840 -_020995CC: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_020995DC -FUN_020995DC: ; 0x020995DC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r0 - bl FUN_02099FA8 -_020995EC: ; 0x020995EC - cmp r0, #0x0 - addne sp, sp, #0x4 - mvnne r0, #0x1b - ldmneia sp!, {r4-r5,lr} - bxne lr - cmp r4, #0x0 - mov r1, #0x0 - beq _02099618 - ldrsh r0, [r4, #0x70] - ands r0, r0, #0x1 - movne r1, #0x1 -_02099618: - cmp r1, #0x0 - addeq sp, sp, #0x4 - mvneq r0, #0x26 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldrsh r0, [r4, #0x70] - ands r0, r0, #0x4 - beq _02099644 - ldrsh r0, [r4, #0x70] - ands r0, r0, #0x8 - beq _02099654 -_02099644: - add sp, sp, #0x4 - mvn r0, #0x37 - ldmia sp!, {r4-r5,lr} - bx lr -_02099654: - ldrsh r0, [r4, #0x70] - orr r0, r0, #0x8 - strh r0, [r4, #0x70] - ldr r5, [r4, #0x68] - cmp r5, #0x0 - beq _020996AC - ldr r1, [r5, #0x10c] - cmp r1, #0x0 - beq _020996AC - ldrsb r2, [r4, #0x72] - ldr r0, _020996BC ; =FUN_0209959C - bl FUN_02097A98 - movs r1, r0 - addeq sp, sp, #0x4 - mvneq r0, #0x20 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldr r0, [r5, #0x10c] - bl FUN_02097948 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr -_020996AC: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020996BC: .word FUN_0209959C - - arm_func_start FUN_020996C0 -FUN_020996C0: ; 0x020996C0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - bl OS_DisableInterrupts - ldr r4, _02099704 ; =0x021C8D34 - mov r5, r0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _020996F0 -_020996E0: - bl FUN_020997B8 -_020996E4: ; 0x020996E4 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - bne _020996E0 -_020996F0: - mov r0, r5 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_02099704: .word 0x021C8D34 - - arm_func_start FUN_02099708 -FUN_02099708: ; 0x02099708 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - movs r8, r0 - addeq sp, sp, #0x8 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - add r0, r8, #0x20 - bl OS_JoinThread - bl OS_DisableInterrupts - mov r7, r0 - bl OS_DisableScheduler - add r1, sp, #0x0 - mov r0, r8 - mov r2, #0x0 - bl OS_ReceiveMessage -_02099744: ; 0x02099744 - cmp r0, #0x0 - beq _0209979C - add r4, sp, #0x0 - mvn r6, #0xa - mov r5, #0x0 -_02099758: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _02099784 - ldr r0, [r0, #0x8] - cmp r0, #0x0 - beq _0209977C - mov r1, r6 - mov r2, r5 - bl OS_SendMessage -_0209977C: - ldr r0, [sp, #0x0] - bl FUN_02097A64 -_02099784: - mov r0, r8 - mov r1, r4 - mov r2, r5 - bl OS_ReceiveMessage -_02099794: ; 0x02099794 - cmp r0, #0x0 - bne _02099758 -_0209979C: - bl OS_EnableScheduler - bl OS_RescheduleThread - mov r0, r7 - bl OS_RestoreInterrupts - add sp, sp, #0x8 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_020997B8 -FUN_020997B8: - stmdb sp!, {r4-r6,lr} - movs r4, r0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - mov r0, #0x0 - strh r0, [r4, #0x70] - ldrsb r1, [r4, #0x73] - mov r2, #0x1 - cmp r1, #0x0 - beq _020997E8 - cmp r1, #0x4 - movne r2, r0 -_020997E8: - cmp r2, #0x0 - beq _02099804 - ldr r0, [r4, #0x68] - bl FUN_02099708 - ldr r0, [r4, #0x64] - bl FUN_02099708 - b _02099884 -_02099804: - cmp r1, #0x1 - bne _02099874 - ldr r0, [r4, #0x64] - ldr r0, [r0, #0x104] - cmp r0, #0x0 - beq _0209983C - ldr r5, _020998C0 ; =0x021C8CC0 -_02099820: - ldr r1, [r5, #0x0] - ldr r6, [r0, #0x0] - ldr r1, [r1, #0x1c] - blx r1 - mov r0, r6 - cmp r6, #0x0 - bne _02099820 -_0209983C: - ldr r0, [r4, #0x64] - mov r1, #0x0 - add r0, r0, #0x100 - strh r1, [r0, #0x8] - ldr r0, [r4, #0x64] - str r1, [r0, #0x100] - ldr r0, [r4, #0x64] - str r1, [r0, #0x104] - ldr r0, [r4, #0x64] - add r0, r0, #0x10c - bl OS_WakeupThread - ldr r0, [r4, #0x64] - bl FUN_02099708 - b _02099884 -_02099874: - cmp r1, #0x2 - bne _02099884 - ldr r0, [r4, #0x68] - bl FUN_02099708 -_02099884: - bl OS_DisableInterrupts - mov r5, r0 - mov r0, r4 - bl FUN_0209A054 - mov r0, r4 - bl FUN_02099FF0 - ldr r1, _020998C0 ; =0x021C8CC0 - mov r0, r4 - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x1c] - blx r1 - mov r0, r5 - bl OS_RestoreInterrupts - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020998C0: .word 0x021C8CC0 - - arm_func_start FUN_020998C4 -FUN_020998C4: ; 0x020998C4 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r4, [r0, #0x4] - mov r1, #0x1 - ldrsb r0, [r4, #0x73] - cmp r0, #0x0 - beq _020998E8 - cmp r0, #0x4 - movne r1, #0x0 -_020998E8: - cmp r1, #0x0 - beq _02099908 - ldr r0, [r4, #0x68] - add r0, r0, #0x20 - bl OS_JoinThread - bl FUN_0209C840 - bl FUN_0209C7AC - bl FUN_0209CB24 -_02099908: - bl FUN_0209CC10 - ldrsh r0, [r4, #0x70] - mov r1, #0x0 - bic r0, r0, #0x6 - strh r0, [r4, #0x70] - ldrsb r0, [r4, #0x73] - cmp r0, #0x2 - ldreq r0, [r4, #0x68] - ldrne r0, [r4, #0x64] - bl FUN_020979F8 - bl OS_DisableInterrupts - mov r5, r0 - mov r0, r4 - bl FUN_0209A054 - mov r0, r4 - bl FUN_0209A06C - mov r0, r5 - bl OS_RestoreInterrupts - ldrsh r1, [r4, #0x70] - mov r0, #0x0 - orr r1, r1, #0x20 - strh r1, [r4, #0x70] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_0209996C -FUN_0209996C: ; 0x0209996C - stmdb sp!, {r4,lr} - mov r4, r0 - cmp r4, #0x0 - mvnle r0, #0x1b - ldmleia sp!, {r4,lr} - bxle lr - bl FUN_02099F78 -_02099988: ; 0x02099988 - cmp r0, #0x0 - mvnne r0, #0x19 - ldmneia sp!, {r4,lr} - bxne lr - mov r0, r4 - bl FUN_02099FA8 -_020999A0: ; 0x020999A0 - cmp r0, #0x0 - movne r0, #0x0 - ldmneia sp!, {r4,lr} - bxne lr - cmp r4, #0x0 - mov r1, #0x0 - beq _020999C8 - ldrsh r0, [r4, #0x70] - ands r0, r0, #0x1 - movne r1, #0x1 -_020999C8: - cmp r1, #0x0 - mvneq r0, #0x26 - ldmeqia sp!, {r4,lr} - bxeq lr - ldrsh r0, [r4, #0x70] - ands r0, r0, #0x10 - mvnne r0, #0x19 - ldmneia sp!, {r4,lr} - bxne lr - ldrsh r0, [r4, #0x70] - mov r1, #0x1 - orr r0, r0, #0x18 - strh r0, [r4, #0x70] - ldrsb r0, [r4, #0x73] - cmp r0, #0x0 - beq _02099A10 - cmp r0, #0x4 - movne r1, #0x0 -_02099A10: - cmp r1, #0x0 - beq _02099A24 - ldr r0, [r4, #0x68] - mov r1, #0x0 - bl FUN_020979F8 -_02099A24: - ldr r0, _02099A54 ; =FUN_020998C4 - mov r1, r4 - mov r2, #0x1 - bl FUN_02097A98 - mov r1, r0 - mov r2, #0x0 - mov r0, r4 - str r2, [r1, #0x8] - bl FUN_020979DC -_02099A48: ; 0x02099A48 - mov r0, #0x0 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_02099A54: .word FUN_020998C4 - - arm_func_start FUN_02099A58 -FUN_02099A58: - stmdb sp!, {r4,lr} - movs r4, r0 - bmi _02099A88 - bl FUN_02099FA8 -_02099A68: ; 0x02099A68 - cmp r0, #0x0 - beq _02099A88 - mov r0, r4 - bl FUN_02099F78 -_02099A78: ; 0x02099A78 - cmp r0, #0x0 - moveq r0, #0x1 - ldmeqia sp!, {r4,lr} - bxeq lr -_02099A88: - mov r0, #0x0 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_02099A94 -FUN_02099A94: ; 0x02099A94 - stmdb sp!, {r4,lr} - ldr r0, _02099B10 ; =0x021C8CD0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02099AE8 - bl FUN_02099B14 - movs r4, r0 - bne _02099AE0 - ldr r0, _02099B10 ; =0x021C8CD0 - ldr r0, [r0, #0x0] - bl FUN_0209996C - ldr r0, _02099B10 ; =0x021C8CD0 - ldr r0, [r0, #0x0] - bl FUN_02099A58 -_02099ACC: ; 0x02099ACC - cmp r0, #0x0 - ldrne r0, _02099B10 ; =0x021C8CD0 - movne r1, #0x0 - strne r1, [r0, #0x0] - mvn r4, #0x19 -_02099AE0: - bl FUN_020996C0 - b _02099B04 -_02099AE8: - bl FUN_0209FD34 -_02099AEC: ; 0x02099AEC - cmp r0, #0x0 - mvneq r4, #0x19 - beq _02099B04 - mov r0, #0x0 - bl FUN_020A87BC - mov r4, #0x0 -_02099B04: - mov r0, r4 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_02099B10: .word 0x021C8CD0 - - arm_func_start FUN_02099B14 -FUN_02099B14: ; 0x02099B14 - stmdb sp!, {r4-r6,lr} - ldr r4, _02099BBC ; =0x021C8CD0 - ldr r5, _02099BC0 ; =0x021C8D30 -_02099B20: - bl OS_DisableInterrupts - ldr r6, [r5, #0x0] - cmp r6, #0x0 - beq _02099B54 - ldr r2, [r4, #0x0] -_02099B34: - cmp r6, r2 - beq _02099B48 - ldrsh r1, [r6, #0x70] - ands r1, r1, #0x10 - beq _02099B54 -_02099B48: - ldr r6, [r6, #0x7c] - cmp r6, #0x0 - bne _02099B34 -_02099B54: - bl OS_RestoreInterrupts -_02099B58: ; 0x02099B58 - cmp r6, #0x0 - beq _02099B6C - mov r0, r6 - bl FUN_0209996C - b _02099B20 -_02099B6C: - ldr r0, _02099BC0 ; =0x021C8D30 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _02099B98 - ldr r0, _02099BBC ; =0x021C8CD0 - ldr r0, [r0, #0x0] - cmp r1, r0 - bne _02099BB0 - ldr r0, [r1, #0x7c] - cmp r0, #0x0 - bne _02099BB0 -_02099B98: - ldr r0, _02099BC4 ; =0x021C8D34 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr -_02099BB0: - mvn r0, #0x19 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_02099BBC: .word 0x021C8CD0 -_02099BC0: .word 0x021C8D30 -_02099BC4: .word 0x021C8D34 - - arm_func_start FUN_02099BC8 -FUN_02099BC8: ; 0x02099BC8 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r1, _02099C68 ; =0x021C8CC8 - ldr r0, [r1, #0x0] - cmp r0, #0x0 - ldreq r0, _02099C6C ; =0x021C8F04 - ldreq r0, [r0, #0x0] - streq r0, [r1, #0x0] - bl FUN_02099A94 - mvn r4, #0x19 - cmp r0, r4 - bne _02099C10 - mov r5, #0x64 -_02099BFC: - mov r0, r5 - bl OS_Sleep - bl FUN_02099A94 - cmp r0, r4 - beq _02099BFC -_02099C10: - bl FUN_02097B14 - movs r4, r0 - bmi _02099C58 - bl FUN_0209FCC4 -_02099C20: ; 0x02099C20 - mov r0, #0x0 - bl FUN_0209FD24 - ldr r0, _02099C70 ; =0x021C8CC0 - ldr r1, [r0, #0x0] - ldr r0, [r1, #0x28] - cmp r0, #0x0 - bne _02099C4C - ldr r0, _02099C74 ; =0x021C8CD4 - ldr r1, [r1, #0x1c] - ldr r0, [r0, #0x1c] - blx r1 -_02099C4C: - ldr r0, _02099C70 ; =0x021C8CC0 - mov r1, #0x0 - str r1, [r0, #0x0] -_02099C58: - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_02099C68: .word 0x021C8CC8 -_02099C6C: .word 0x021C8F04 -_02099C70: .word 0x021C8CC0 -_02099C74: .word 0x021C8CD4 - - arm_func_start FUN_02099C78 -FUN_02099C78: - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _02099CE0 ; =0x021C8F04 - ldr r2, [r0, #0x0] - cmp r2, #0x0 - bne _02099CBC - ldr r0, _02099CE4 ; =0x021C8CCC - ldr r0, [r0, #0x0] - and r0, r0, #0x3 - cmp r0, #0x1 - bne _02099CCC - bl OS_GetProcMode - cmp r0, #0x12 - beq _02099CCC - mov r0, #0xa - bl OS_Sleep - b _02099CCC -_02099CBC: - ldr r0, _02099CE8 ; =0x021C8CC8 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - streq r2, [r0, #0x0] -_02099CCC: - ldr r0, _02099CE0 ; =0x021C8F04 - ldr r0, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_02099CE0: .word 0x021C8F04 -_02099CE4: .word 0x021C8CCC -_02099CE8: .word 0x021C8CC8 - - arm_func_start FUN_02099CEC -FUN_02099CEC: ; 0x02099CEC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - bl FUN_02099C78 -_02099D00: ; 0x02099D00 - cmp r0, #0x0 - ldrne r1, _02099D24 ; =0x021C8F1C - mvneq r0, #0x26 - movne r0, #0x0 - strne r5, [r1, #0x0] - strne r4, [r1, #0x4] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_02099D24: .word 0x021C8F1C - - arm_func_start FUN_02099D28 -FUN_02099D28: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r4, r0 - bl OS_DisableInterrupts - ldr r1, _02099D84 ; =0x021C8F1C - mov r5, r0 - ldr r7, [r1, #0x0] - mov r2, #0x0 - ldr r6, [r1, #0x4] - mov r0, r4 - str r2, [r1, #0x0] - str r2, [r1, #0x4] - bl FUN_0209AB80 - ldr r1, _02099D84 ; =0x021C8F1C - mov r4, r0 - mov r0, r5 - str r7, [r1, #0x0] - str r6, [r1, #0x4] - bl OS_RestoreInterrupts - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_02099D84: .word 0x021C8F1C - - arm_func_start FUN_02099D88 -FUN_02099D88: ; 0x02099D88 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x64 - movs r4, r0 - addeq sp, sp, #0x64 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldr r1, _02099E34 ; =0x021C8CC0 - mov r0, #0xfd0 - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x18] - blx r1 - movs r5, r0 - addeq sp, sp, #0x64 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - add r0, sp, #0x0 - mov r1, #0x0 - mov r2, #0x64 - bl MI_CpuFill8 - ldr r3, _02099E38 ; =0x00000B68 - ldr r1, _02099E3C ; =0x00000466 - add r2, r5, r3 - add r0, sp, #0x0 - str r5, [sp, #0x40] - str r3, [sp, #0x3c] - str r2, [sp, #0x4c] - str r1, [sp, #0x48] - bl FUN_0209CC28 - mov r0, r4 - bl FUN_0209AB80 - mov r4, r0 - bl FUN_0209CC10 - ldr r1, _02099E34 ; =0x021C8CC0 - mov r0, r5 - ldr r1, [r1, #0x0] - ldr r1, [r1, #0x1c] - blx r1 - mov r0, r4 - add sp, sp, #0x64 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_02099E34: .word 0x021C8CC0 -_02099E38: .word 0x00000B68 -_02099E3C: .word 0x00000466 - - arm_func_start FUN_02099E40 -FUN_02099E40: - ldr r2, [r0, #0x64] - mov r3, #0x0 - cmp r2, #0x0 - beq _02099E88 - ldrsb r1, [r0, #0x73] - cmp r1, #0x1 - bne _02099E6C - ldr r0, [r2, #0x104] - cmp r0, #0x0 - ldrneh r3, [r0, #0x4] - b _02099E88 -_02099E6C: - cmp r1, #0x0 - beq _02099E7C - cmp r1, #0x4 - bne _02099E88 -_02099E7C: - ldr r1, [r0, #0x44] - ldr r0, [r2, #0xf8] - sub r3, r1, r0 -_02099E88: - mov r0, r3 - bx lr - - arm_func_start FUN_02099E90 -FUN_02099E90: - stmdb sp!, {r4-r6,lr} - mov r4, #0x0 - mov r5, r0 - bl FUN_02099FA8 -_02099EA0: ; 0x02099EA0 - cmp r0, #0x0 - orrne r4, r4, #0x80 - bne _02099F60 - ldrsh r0, [r5, #0x70] - ands r0, r0, #0x40 - ldrsb r0, [r5, #0x73] - orrne r4, r4, #0x20 - cmp r0, #0x1 - beq _02099ED0 - ldrsh r0, [r5, #0x70] - ands r0, r0, #0x4 - beq _02099F00 -_02099ED0: - bl OS_DisableInterrupts - mov r6, r0 - mov r0, r5 - bl FUN_02099E40 -_02099EE0: ; 0x02099EE0 - cmp r0, #0x0 - mov r0, r5 - orrgt r4, r4, #0x1 - bl FUN_020992A0 -_02099EF0: ; 0x02099EF0 - cmp r0, #0x0 - mov r0, r6 - orrgt r4, r4, #0x8 - bl OS_RestoreInterrupts -_02099F00: - ldrsb r0, [r5, #0x73] - mov r1, #0x1 - cmp r0, #0x0 - beq _02099F18 - cmp r0, #0x4 - movne r1, #0x0 -_02099F18: - cmp r1, #0x0 - beq _02099F60 - ldrsh r0, [r5, #0x70] - ands r0, r0, #0x4 - beq _02099F48 - ldrb r0, [r5, #0x8] - cmp r0, #0x4 - beq _02099F48 - ands r0, r4, #0x1 - ldreqsh r0, [r5, #0x70] - biceq r0, r0, #0x6 - streqh r0, [r5, #0x70] -_02099F48: - ldrsh r0, [r5, #0x70] - ands r0, r0, #0x2 - bne _02099F60 - ldrsh r0, [r5, #0x70] - ands r0, r0, #0x4 - orreq r4, r4, #0x40 -_02099F60: - mov r0, r4 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_02099F6C -FUN_02099F6C: - add r0, r0, #0x3 - bic r0, r0, #0x3 - bx lr - - arm_func_start FUN_02099F78 -FUN_02099F78: - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r1, r0 - ldr r0, _02099FA4 ; =0x021C8D34 - bl FUN_0209A008 -_02099F8C: ; 0x02099F8C - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_02099FA4: .word 0x021C8D34 - - arm_func_start FUN_02099FA8 -FUN_02099FA8: - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r1, r0 - cmp r1, #0x0 - ble _02099FCC - ldr r0, _02099FEC ; =0x021C8D30 - bl FUN_0209A008 -_02099FC4: ; 0x02099FC4 - cmp r0, #0x0 - bne _02099FDC -_02099FCC: - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {lr} - bx lr -_02099FDC: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_02099FEC: .word 0x021C8D30 - - arm_func_start FUN_02099FF0 -FUN_02099FF0: ; 0x02099FF0 - ldr ip, _0209A000 ; =FUN_0209A034 - mov r1, r0 - ldr r0, _0209A004 ; =0x021C8D34 - bx r12 - .balign 4 -_0209A000: .word FUN_0209A034 -_0209A004: .word 0x021C8D34 - - arm_func_start FUN_0209A008 -FUN_0209A008: - ldr r2, [r0, #0x0] - cmp r2, #0x0 - beq _0209A02C -_0209A014: - cmp r2, r1 - bxeq lr - add r0, r2, #0x7c - ldr r2, [r2, #0x7c] - cmp r2, #0x0 - bne _0209A014 -_0209A02C: - mov r0, #0x0 - bx lr - - arm_func_start FUN_0209A034 -FUN_0209A034: ; 0x0209A034 - stmdb sp!, {r4,lr} - mov r4, r1 - bl FUN_0209A008 -_0209A040: ; 0x0209A040 - cmp r0, #0x0 - ldrne r1, [r4, #0x7c] - strne r1, [r0, #0x0] - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_0209A054 -FUN_0209A054: ; 0x0209A054 - ldr ip, _0209A064 ; =FUN_0209A034 - mov r1, r0 - ldr r0, _0209A068 ; =0x021C8D30 - bx r12 - .balign 4 -_0209A064: .word FUN_0209A034 -_0209A068: .word 0x021C8D30 - - arm_func_start FUN_0209A06C -FUN_0209A06C: ; 0x0209A06C - ldr ip, _0209A07C ; =FUN_0209A084 - mov r1, r0 - ldr r0, _0209A080 ; =0x021C8D34 - bx r12 - .balign 4 -_0209A07C: .word FUN_0209A084 -_0209A080: .word 0x021C8D34 - - arm_func_start FUN_0209A084 -FUN_0209A084: ; 0x0209A084 - ldr r2, [r0, #0x0] - str r2, [r1, #0x7c] - str r1, [r0, #0x0] - bx lr - - arm_func_start FUN_0209A094 -FUN_0209A094: ; 0x0209A094 - ldr ip, _0209A0A4 ; =FUN_0209A084 - mov r1, r0 - ldr r0, _0209A0A8 ; =0x021C8D30 - bx r12 - .balign 4 -_0209A0A4: .word FUN_0209A084 -_0209A0A8: .word 0x021C8D30 - - arm_func_start FUN_0209A0AC -FUN_0209A0AC: ; 0x0209A0AC - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r9, r2 - str r0, [sp, #0x0] - mov r0, #0x1 - str r0, [sp, #0x8] - mov r0, #0x0 - mov r8, r3 - mvn r2, #0x0 - cmp r8, r2 - cmpeq r9, r2 - movne r11, #0x1 - mov r10, r1 - moveq r11, #0x0 - str r0, [sp, #0x4] -_0209A0E8: - ldr r5, [sp, #0x4] - ldr r7, [sp, #0x0] - mov r6, r5 - cmp r10, #0x0 - bls _0209A128 -_0209A0FC: - ldrsh r1, [r7, #0x4] - ldr r0, [r7, #0x0] - orr r4, r1, #0xe0 - bl FUN_02099E90 -_0209A10C: ; 0x0209A10C - ands r0, r4, r0 - strh r0, [r7, #0x6] - add r6, r6, #0x1 - addne r5, r5, #0x1 - cmp r6, r10 - add r7, r7, #0x8 - blo _0209A0FC -_0209A128: - cmp r5, #0x0 - bgt _0209A160 - cmp r11, #0x0 - beq _0209A148 - mov r1, #0x0 - subs r0, r1, r9 - sbcs r0, r1, r8 - bge _0209A160 -_0209A148: - ldr r0, [sp, #0x8] - bl OS_Sleep - ldr r0, _0209A170 ; =0x0000020B - subs r9, r9, r0 - sbc r8, r8, #0x0 - b _0209A0E8 -_0209A160: - mov r0, r5 - add sp, sp, #0xc - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_0209A170: .word 0x0000020B - - arm_func_start FUN_0209A174 -FUN_0209A174: ; 0x0209A174 - mov r2, r0, lsr #0x18 - strb r2, [r1, #0x0] - mov r2, r0, lsr #0x10 - strb r2, [r1, #0x1] - mov r2, r0, lsr #0x8 - strb r2, [r1, #0x2] - strb r0, [r1, #0x3] - bx lr - - arm_func_start FUN_0209A194 -FUN_0209A194: ; 0x0209A194 - stmdb sp!, {r4,lr} - sub sp, sp, #0x18 - cmp r0, #0x2 - mov r4, r2 - addne sp, sp, #0x18 - movne r0, #0x0 - ldmneia sp!, {r4,lr} - bxne lr - cmp r3, #0x10 - addcc sp, sp, #0x18 - movcc r0, #0x0 - ldmccia sp!, {r4,lr} - bxcc lr - mov r0, r1 - add r1, sp, #0xc - mov r2, #0x4 - bl MI_CpuCopy8 - ldr r0, [sp, #0xc] - add r1, sp, #0x10 - bl FUN_0209A174 - ldrb r1, [sp, #0x12] - ldr r2, _0209A220 ; =0x0210620C - mov r0, r4 - str r1, [sp, #0x0] - ldrb r3, [sp, #0x11] - mov r1, #0x10 - str r3, [sp, #0x4] - ldrb r3, [sp, #0x10] - str r3, [sp, #0x8] - ldrb r3, [sp, #0x13] - bl OS_SNPrintf - mov r0, r4 - add sp, sp, #0x18 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_0209A220: .word 0x0210620C - - arm_func_start FUN_0209A224 -FUN_0209A224: ; 0x0209A224 - stmdb sp!, {r4,lr} - mov r4, r1 - bl FUN_02099D28 -_0209A230: ; 0x0209A230 - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - mov r2, r0, lsr #0x18 - mov r1, r0, lsr #0x8 - mov r3, r0, lsl #0x8 - mov r12, r0, lsl #0x18 - and r2, r2, #0xff - and r0, r1, #0xff00 - and r1, r3, #0xff0000 - orr r0, r2, r0 - and r2, r12, #0xff000000 - orr r0, r1, r0 - orr r0, r2, r0 - str r0, [r4, #0x0] - mov r0, #0x1 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_0209A27C -FUN_0209A27C: ; 0x0209A27C - stmdb sp!, {r0-r3} - - arm_func_start FUN_0209A280 -FUN_0209A280: ; 0x0209A280 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, _0209A2B0 ; =0x021C8D5C - add r1, sp, #0x8 - mov r0, #0x2 - mov r3, #0x10 - bl FUN_0209A194 - ldr r0, _0209A2B0 ; =0x021C8D5C - add sp, sp, #0x4 - ldmia sp!, {lr} - add sp, sp, #0x10 - bx lr - .balign 4 -_0209A2B0: .word 0x021C8D5C - - arm_func_start THUNK_FUN_02099BC8 -THUNK_FUN_02099BC8: ; 0x0209A2B4 - ldr ip, _0209A2BC ; =FUN_02099BC8 - bx r12 - .balign 4 -_0209A2BC: .word FUN_02099BC8 - - arm_func_start FUN_0209A2C0 -FUN_0209A2C0: ; 0x0209A2C0 - stmdb sp!, {r4-r8,lr} - ldr r1, [r0, #0xc] - ldr ip, _0209A430 ; =0x021C8D6C - cmp r1, #0x1 - moveq r1, #0x1 - movne r1, #0x0 - str r1, [r12, #0x0] - ldr r6, [r0, #0x10] - ldr r5, _0209A434 ; =FUN_0209A484 - mov r2, r6, lsr #0x18 - mov r1, r6, lsr #0x8 - mov r3, r6, lsl #0x8 - and r2, r2, #0xff - and r1, r1, #0xff00 - mov r6, r6, lsl #0x18 - orr r1, r2, r1 - and r3, r3, #0xff0000 - orr r1, r3, r1 - and r2, r6, #0xff000000 - orr r1, r2, r1 - str r1, [r12, #0x4] - ldr r7, [r0, #0x14] - ldr r4, _0209A438 ; =FUN_0209A444 - mov r2, r7, lsr #0x18 - mov r1, r7, lsr #0x8 - mov r6, r7, lsl #0x8 - and r2, r2, #0xff - and r1, r1, #0xff00 - mov r7, r7, lsl #0x18 - orr r1, r2, r1 - and r6, r6, #0xff0000 - and r2, r7, #0xff000000 - orr r1, r6, r1 - orr r1, r2, r1 - str r1, [r12, #0x8] - ldr r1, [r0, #0x18] - ldr r3, _0209A43C ; =0x021C8D40 - mov r7, r1, lsr #0x18 - mov r6, r1, lsr #0x8 - mov r8, r1, lsl #0x8 - and r7, r7, #0xff - and r6, r6, #0xff00 - mov r1, r1, lsl #0x18 - orr r6, r7, r6 - and r8, r8, #0xff0000 - and r7, r1, #0xff000000 - orr r1, r8, r6 - orr r1, r7, r1 - str r1, [r12, #0xc] - ldr r1, [r0, #0x1c] - ldr r2, _0209A440 ; =0x021C8D3C - mov r7, r1, lsr #0x18 - mov r6, r1, lsr #0x8 - mov r8, r1, lsl #0x8 - and r7, r7, #0xff - and r6, r6, #0xff00 - mov r1, r1, lsl #0x18 - orr r6, r7, r6 - and r8, r8, #0xff0000 - and r7, r1, #0xff000000 - orr r1, r8, r6 - orr r1, r7, r1 - str r1, [r12, #0x10] - ldr r1, [r0, #0x20] - mov lr, #0x40 - mov r7, r1, lsr #0x18 - mov r6, r1, lsr #0x8 - mov r8, r1, lsl #0x8 - and r7, r7, #0xff - and r6, r6, #0xff00 - mov r1, r1, lsl #0x18 - orr r6, r7, r6 - and r8, r8, #0xff0000 - and r7, r1, #0xff000000 - orr r1, r8, r6 - orr r1, r7, r1 - str r5, [r12, #0x18] - str r4, [r12, #0x1c] - str r1, [r12, #0x14] - ldr r1, [r0, #0x4] - str r1, [r3, #0x0] - ldr r1, [r0, #0x8] - str lr, [r12, #0x20] - str r1, [r2, #0x0] - ldr r1, [r0, #0x2c] - str r1, [r12, #0x30] - ldr r1, [r0, #0x30] - mov r0, r12 - str r1, [r12, #0x34] - bl FUN_02097834 - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_0209A430: .word 0x021C8D6C -_0209A434: .word FUN_0209A484 -_0209A438: .word FUN_0209A444 -_0209A43C: .word 0x021C8D40 -_0209A440: .word 0x021C8D3C - - arm_func_start FUN_0209A444 -FUN_0209A444: ; 0x0209A444 - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {lr} - bxeq lr - ldr r1, _0209A480 ; =0x021C8D3C - ldr r2, [r0, #-0x4] - ldr r3, [r1, #0x0] - sub r1, r0, #0x4 - mov r0, #0x0 - blx r3 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_0209A480: .word 0x021C8D3C - - arm_func_start FUN_0209A484 -FUN_0209A484: ; 0x0209A484 - stmdb sp!, {r4,lr} - ldr r1, _0209A4B0 ; =0x021C8D40 - add r4, r0, #0x4 - ldr r2, [r1, #0x0] - mov r1, r4 - mov r0, #0x0 - blx r2 - cmp r0, #0x0 - strne r4, [r0], #0x4 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_0209A4B0: .word 0x021C8D40 - - arm_func_start FUN_0209A4B4 -FUN_0209A4B4: ; 0x0209A4B4 - cmp r0, #0x0 - mvneq r0, #0x0 - bxeq lr - cmp r1, #0x3 - beq _0209A4D4 - cmp r1, #0x4 - beq _0209A4E8 - b _0209A4FC -_0209A4D4: - ldrsb r0, [r0, #0x72] - cmp r0, #0x1 - moveq r0, #0x0 - movne r0, #0x4 - bx lr -_0209A4E8: - ands r1, r2, #0x4 - movne r1, #0x0 - strneb r1, [r0, #0x72] - moveq r1, #0x1 - streqb r1, [r0, #0x72] -_0209A4FC: - mov r0, #0x0 - bx lr - - arm_func_start FUN_0209A504 -FUN_0209A504: ; 0x0209A504 - stmdb sp!, {r4,lr} - sub sp, sp, #0x8 - mov r4, r1 - add r1, sp, #0x0 - add r2, sp, #0x4 - bl FUN_02098120 -_0209A51C: ; 0x0209A51C - cmp r0, #0x0 - addlt sp, sp, #0x8 - ldmltia sp!, {r4,lr} - bxlt lr - ldrh r1, [sp, #0x0] - mov r2, r1, asr #0x8 - mov r1, r1, lsl #0x8 - and r2, r2, #0xff - and r1, r1, #0xff00 - orr r1, r2, r1 - strh r1, [r4, #0x2] - ldr r12, [sp, #0x4] - mov r2, r12, lsr #0x18 - mov r1, r12, lsr #0x8 - mov r3, r12, lsl #0x8 - mov r12, r12, lsl #0x18 - and r2, r2, #0xff - and r1, r1, #0xff00 - and r3, r3, #0xff0000 - orr r1, r2, r1 - and r2, r12, #0xff000000 - orr r1, r3, r1 - orr r1, r2, r1 - str r1, [r4, #0x4] - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_0209A588 -FUN_0209A588: ; 0x0209A588 - ldr ip, _0209A590 ; =FUN_0209822C - bx r12 - .balign 4 -_0209A590: .word FUN_0209822C - - arm_func_start FUN_0209A594 -FUN_0209A594: ; 0x0209A594 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r12, [r1, #0x0] - ldr r0, [r0, #0x0] - mov r2, r12, lsr #0x18 - mov r4, r0, lsr #0x18 - mov lr, r0, lsr #0x8 - mov r1, r12, lsr #0x8 - mov r5, r0, lsl #0x8 - mov r3, r12, lsl #0x8 - mov r0, r0, lsl #0x18 - mov r12, r12, lsl #0x18 - and r4, r4, #0xff - and lr, lr, #0xff00 - and r2, r2, #0xff - and r1, r1, #0xff00 - and r5, r5, #0xff0000 - orr r4, r4, lr - and r3, r3, #0xff0000 - orr r1, r2, r1 - and lr, r0, #0xff000000 - orr r0, r5, r4 - and r2, r12, #0xff000000 - orr r1, r3, r1 - orr r0, lr, r0 - orr r1, r2, r1 - bl FUN_02099CEC - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_0209A60C -FUN_0209A60C: ; 0x0209A60C - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_02099C78 - mov r2, r0, lsr #0x18 - mov r1, r0, lsr #0x8 - mov r3, r0, lsl #0x8 - mov r12, r0, lsl #0x18 - and r2, r2, #0xff - and r0, r1, #0xff00 - and r1, r3, #0xff0000 - orr r0, r2, r0 - and r2, r12, #0xff000000 - orr r0, r1, r0 - orr r0, r2, r0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_0209A650 -FUN_0209A650: ; 0x0209A650 - stmdb sp!, {r4-r6,lr} - movs r5, r0 - mov r4, r1 - mvneq r0, #0x26 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - bl FUN_02099C78 -_0209A66C: ; 0x0209A66C - cmp r5, #0x0 - ldrneh r1, [r5, #0x74] - mov r2, r0, lsr #0x18 - mov r6, #0x8 - moveq r1, #0x0 - cmp r0, #0x0 - moveq r1, #0x0 - mov r1, r1, lsl #0x10 - mov r3, r1, lsr #0x10 - mov r5, r3, asr #0x8 - mov lr, r3, lsl #0x8 - strb r6, [r4, #0x0] - mov r6, #0x2 - mov r1, r0, lsr #0x8 - mov r3, r0, lsl #0x8 - mov r12, r0, lsl #0x18 - and r0, r1, #0xff00 - and r2, r2, #0xff - orr r0, r2, r0 - and r1, r3, #0xff0000 - and r5, r5, #0xff - and lr, lr, #0xff00 - strb r6, [r4, #0x1] - orr r3, r5, lr - and r2, r12, #0xff000000 - orr r0, r1, r0 - strh r3, [r4, #0x2] - orr r0, r2, r0 - str r0, [r4, #0x4] - mov r0, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_0209A6EC -FUN_0209A6EC: ; 0x0209A6EC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - bl FUN_02099D88 - movs r4, r0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldr r0, _0209A7A4 ; =0x021C8DA4 - ldr r2, _0209A7A8 ; =0x00000101 - mov r1, #0x0 - bl MI_CpuFill8 - ldr r0, _0209A7A4 ; =0x021C8DA4 - ldr r2, _0209A7A8 ; =0x00000101 - mov r1, r5 - bl STD_CopyLString - mov r1, r4, lsr #0x18 - mov r0, r4, lsr #0x8 - mov r2, r4, lsl #0x8 - mov r3, r4, lsl #0x18 - and r1, r1, #0xff - and r0, r0, #0xff00 - and r2, r2, #0xff0000 - orr r0, r1, r0 - and r3, r3, #0xff000000 - orr r1, r2, r0 - ldr r5, _0209A7A4 ; =0x021C8DA4 - ldr r0, _0209A7AC ; =0x021C8D4C - ldr ip, _0209A7B0 ; =0x021C8D44 - mov r4, #0x0 - ldr r2, _0209A7B4 ; =0x021C8D38 - orr r1, r3, r1 - mov lr, #0x2 - mov r3, #0x4 - str r5, [r0, #0x0] - str r4, [r0, #0x4] - strh lr, [r0, #0x8] - strh r3, [r0, #0xa] - str r12, [r0, #0xc] - str r2, [r12, #0x0] - str r4, [r12, #0x4] - str r1, [r2, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_0209A7A4: .word 0x021C8DA4 -_0209A7A8: .word 0x00000101 -_0209A7AC: .word 0x021C8D4C -_0209A7B0: .word 0x021C8D44 -_0209A7B4: .word 0x021C8D38 - - arm_func_start thunk_FUN_0209996c -thunk_FUN_0209996c: ; 0x0209A7B8 - ldr ip, _0209A7C0 ; =FUN_0209996C - bx r12 - .balign 4 -_0209A7C0: .word FUN_0209996C - - arm_func_start thunk_FUN_020995dc -thunk_FUN_020995dc: ; 0x0209A7C4 - ldr ip, _0209A7CC ; =FUN_020995DC - bx r12 - .balign 4 -_0209A7CC: .word FUN_020995DC - - arm_func_start FUN_0209A7D0 -FUN_0209A7D0: ; 0x0209A7D0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0xc - ldr r5, [sp, #0x20] - cmp r5, #0x0 - moveq r5, #0x0 - moveq r4, r5 - beq _0209A83C - ldrh r4, [r5, #0x2] - ldr r6, [r5, #0x4] - mov r7, r4, asr #0x8 - mov r12, r4, lsl #0x8 - mov r4, r6, lsr #0x18 - mov lr, r6, lsr #0x8 - mov r5, r6, lsl #0x8 - mov r6, r6, lsl #0x18 - and r7, r7, #0xff - and r12, r12, #0xff00 - orr r7, r7, r12 - and r4, r4, #0xff - and lr, lr, #0xff00 - and r5, r5, #0xff0000 - orr r4, r4, lr - mov r12, r7, lsl #0x10 - orr r4, r5, r4 - and r6, r6, #0xff000000 - mov r5, r12, lsr #0x10 - orr r4, r6, r4 -_0209A83C: - str r4, [sp, #0x0] - str r3, [sp, #0x4] - mov r3, r5 - bl FUN_02099470 - add sp, sp, #0xc - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_0209A858 -FUN_0209A858: ; 0x0209A858 - stmdb sp!, {lr} - sub sp, sp, #0xc - mov r12, #0x0 - str r12, [sp, #0x0] - str r3, [sp, #0x4] - mov r3, r12 - bl FUN_02099470 - add sp, sp, #0xc - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_0209A880 -FUN_0209A880: ; 0x0209A880 - stmdb sp!, {lr} - sub sp, sp, #0x14 - add r12, sp, #0xc - str r12, [sp, #0x0] - str r3, [sp, #0x4] - add r3, sp, #0x8 - bl FUN_02098CF4 -_0209A89C: ; 0x0209A89C - cmp r0, #0x0 - addlt sp, sp, #0x14 - ldmltia sp!, {lr} - bxlt lr - ldr r1, [sp, #0x18] - cmp r1, #0x0 - addeq sp, sp, #0x14 - ldmeqia sp!, {lr} - bxeq lr - ldrh r2, [sp, #0x8] - mov r3, r2, asr #0x8 - mov r2, r2, lsl #0x8 - and r3, r3, #0xff - and r2, r2, #0xff00 - orr r2, r3, r2 - strh r2, [r1, #0x2] - ldr lr, [sp, #0xc] - mov r3, lr, lsr #0x18 - mov r2, lr, lsr #0x8 - mov r12, lr, lsl #0x8 - mov lr, lr, lsl #0x18 - and r3, r3, #0xff - and r2, r2, #0xff00 - and r12, r12, #0xff0000 - orr r2, r3, r2 - and r3, lr, #0xff000000 - orr r2, r12, r2 - orr r2, r3, r2 - str r2, [r1, #0x4] - add sp, sp, #0x14 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_0209A91C -FUN_0209A91C: ; 0x0209A91C - stmdb sp!, {lr} - sub sp, sp, #0xc - mov r12, #0x0 - str r12, [sp, #0x0] - str r3, [sp, #0x4] - mov r3, r12 - bl FUN_02098CF4 - add sp, sp, #0xc - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_0209A944 -FUN_0209A944: ; 0x0209A944 - stmdb sp!, {r4,lr} - ldrh r2, [r1, #0x2] - ldr lr, [r1, #0x4] - mov r4, r2, asr #0x8 - mov r1, r2, lsl #0x8 - mov r3, lr, lsr #0x18 - mov r2, lr, lsr #0x8 - mov r12, lr, lsl #0x8 - mov lr, lr, lsl #0x18 - and r4, r4, #0xff - and r1, r1, #0xff00 - orr r1, r4, r1 - mov r1, r1, lsl #0x10 - and r3, r3, #0xff - and r2, r2, #0xff00 - and r12, r12, #0xff0000 - orr r2, r3, r2 - and r3, lr, #0xff000000 - orr r2, r12, r2 - mov r1, r1, lsr #0x10 - orr r2, r3, r2 - bl FUN_020983B0 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_0209A9A4 -FUN_0209A9A4: ; 0x0209A9A4 - ldrh r1, [r1, #0x2] - ldr ip, _0209A9CC ; =FUN_020984B4 - mov r2, r1, asr #0x8 - mov r1, r1, lsl #0x8 - and r2, r2, #0xff - and r1, r1, #0xff00 - orr r1, r2, r1 - mov r1, r1, lsl #0x10 - mov r1, r1, lsr #0x10 - bx r12 - .balign 4 -_0209A9CC: .word FUN_020984B4 - - arm_func_start FUN_0209A9D0 -FUN_0209A9D0: ; 0x0209A9D0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r1, #0x1 - bne _0209A9F4 - ldr r0, _0209AA08 ; =0x021061DC - bl FUN_02097F70 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_0209A9F4: - ldr r0, _0209AA0C ; =0x021061C4 - bl FUN_02097F70 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_0209AA08: .word 0x021061DC -_0209AA0C: .word 0x021061C4 - - arm_func_start FUN_0209AA10 -FUN_0209AA10: ; 0x0209AA10 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - ldr r6, [r7, #0x4] - ldr r5, [r6, #0x64] - add r0, r5, #0xe0 - ldr r4, [r5, #0xc4] - bl OS_LockMutex - ldr r1, [r7, #0x10] - cmp r1, #0x0 - beq _0209AA54 - mov r0, #0x1 - str r1, [r4, #0xc] - bl FUN_020A02EC - mov r0, #0x4 - strb r0, [r6, #0x73] - b _0209AA68 -_0209AA54: - mov r0, #0x0 - strb r0, [r6, #0x73] - bl FUN_020A02EC -_0209AA60: ; 0x0209AA60 - mov r0, #0x0 - str r0, [r4, #0xc] -_0209AA68: - add r0, r5, #0xe0 - bl OS_UnlockMutex -_0209AA70: ; 0x0209AA70 - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_0209AA80 -FUN_0209AA80: ; 0x0209AA80 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - ldr r0, _0209AACC ; =FUN_0209AA10 - mov r1, r5 - mov r2, #0x1 - bl FUN_02097A98 - movs r1, r0 - addeq sp, sp, #0x4 - mvneq r0, #0x20 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - mov r0, r5 - str r4, [r1, #0x10] - bl FUN_02097958 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_0209AACC: .word FUN_0209AA10 - - arm_func_start FUN_0209AAD0 -FUN_0209AAD0: ; 0x0209AAD0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - bl FUN_02099FA8 -_0209AAE4: ; 0x0209AAE4 - cmp r0, #0x0 - addne sp, sp, #0x4 - mvnne r0, #0x1b - ldmneia sp!, {r4-r5,lr} - bxne lr - ldrsb r0, [r5, #0x73] - mov r1, #0x1 - cmp r0, #0x0 - beq _0209AB10 - cmp r0, #0x4 - movne r1, #0x0 -_0209AB10: - cmp r1, #0x0 - addeq sp, sp, #0x4 - mvneq r0, #0x1b - ldmeqia sp!, {r4-r5,lr} - bxeq lr - cmp r5, #0x0 - mov r1, #0x0 - beq _0209AB3C - ldrsh r0, [r5, #0x70] - ands r0, r0, #0x1 - movne r1, #0x1 -_0209AB3C: - cmp r1, #0x0 - addeq sp, sp, #0x4 - mvneq r0, #0x26 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldrsh r0, [r5, #0x70] - ands r0, r0, #0x2 - addne sp, sp, #0x4 - mvnne r0, #0x1b - ldmneia sp!, {r4-r5,lr} - bxne lr - mov r0, r5 - mov r1, r4 - bl FUN_0209AA80 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_0209AB80 -FUN_0209AB80: ; 0x0209AB80 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - ldr r6, _0209ACC0 ; =0x021C8F24 - mov r9, #0x0 - ldr r11, [r6, #0x8] - ldr r2, [r6, #0x0] - ldr r1, [r6, #0x4] - umull r5, r4, r11, r2 - mla r4, r11, r1, r4 - ldr r10, [r6, #0xc] - ldr r3, [r6, #0x10] - mla r4, r10, r2, r4 - adds r5, r3, r5 - ldr r1, [r6, #0x14] - umull r8, r7, r11, r5 - adc r4, r1, r4 - mla r7, r11, r4, r7 - mla r7, r10, r5, r7 - mov r2, r9, lsl #0x10 - adds r8, r3, r8 - str r5, [r6, #0x0] - adc r5, r1, r7 - mov r3, r9, lsl #0x10 - orr r2, r2, r4, lsr #0x10 - str r4, [r6, #0x4] - orr r3, r3, r5, lsr #0x10 - add r1, sp, #0x4 - mov r10, r0 - strh r2, [sp, #0x8] - str r8, [r6, #0x0] - str r5, [r6, #0x4] - strh r3, [sp, #0xa] - bl FUN_0209AD34 -_0209AC04: ; 0x0209AC04 - cmp r0, #0x0 - ldrne r0, [sp, #0x4] - addne sp, sp, #0xc - ldmneia sp!, {r4-r11,lr} - bxne lr - mov r0, #0x1 - ldr r6, _0209ACC4 ; =0x021C8F1C - strb r0, [sp, #0x0] - strb r0, [sp, #0x1] - add r5, sp, #0x8 - mov r4, r9 - mov r11, r9 -_0209AC34: - mov r8, r11 - add r7, sp, #0x0 -_0209AC3C: - ldrb r0, [r7, #0x0] - cmp r0, #0x0 - beq _0209AC80 - mov r0, r8, lsl #0x1 - ldrh r2, [r5, r0] - ldr r1, [r6, r8, lsl #0x2] - mov r0, r10 - bl FUN_0209ACC8 - str r0, [sp, #0x4] - cmp r0, #0x0 - beq _0209AC74 - mvn r1, #0x0 - cmp r0, r1 - bne _0209AC9C -_0209AC74: - mvn r1, #0x0 - cmp r0, r1 - streqb r4, [r7, #0x0] -_0209AC80: - add r8, r8, #0x1 - cmp r8, #0x2 - add r7, r7, #0x1 - blt _0209AC3C - add r9, r9, #0x1 - cmp r9, #0x3 - blt _0209AC34 -_0209AC9C: - ldr r1, [sp, #0x4] - mvn r0, #0x0 - cmp r1, r0 - moveq r0, #0x0 - streq r0, [sp, #0x4] - ldr r0, [sp, #0x4] - add sp, sp, #0xc - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_0209ACC0: .word 0x021C8F24 -_0209ACC4: .word 0x021C8F1C - - arm_func_start FUN_0209ACC8 -FUN_0209ACC8: ; 0x0209ACC8 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - movs r5, r1 - mov r6, r0 - mov r4, r2 - addeq sp, sp, #0x8 - mvneq r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - bl FUN_0209CB44 - bl FUN_0209CBE8 - mov r2, r5 - mov r0, #0x0 - mov r1, #0x35 - bl FUN_0209CB78 - mov r0, r6 - mov r2, r4 - mov r3, #0x0 - str r3, [sp, #0x0] - mov r1, #0x1 - bl FUN_0209AE18 - mov r4, r0 - bl FUN_0209CB24 - mov r0, r4 - add sp, sp, #0x8 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_0209AD34 -FUN_0209AD34: - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - mov r6, #0x0 - mov r8, r0 - mov r7, r1 - mov r5, r6 - add r4, sp, #0x0 -_0209AD50: - mov r0, r8 - mov r1, r4 - mov r6, r6, lsl #0x8 - bl FUN_0209ADE4 - ldr r2, [sp, #0x0] - cmp r8, r2 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - mov r8, r2 - cmp r0, #0xff - bhi _0209ADB0 - cmp r5, #0x3 - beq _0209AD9C - ldrb r1, [r2, #0x0] - add r8, r2, #0x1 - cmp r1, #0x2e - bne _0209ADB0 -_0209AD9C: - cmp r5, #0x3 - bne _0209ADC0 - ldrb r1, [r8, #0x0] - cmp r1, #0x0 - beq _0209ADC0 -_0209ADB0: - add sp, sp, #0x8 - mov r0, #0x0 - ldmia sp!, {r4-r8,lr} - bx lr -_0209ADC0: - add r5, r5, #0x1 - cmp r5, #0x4 - orr r6, r6, r0 - blt _0209AD50 - str r6, [r7, #0x0] - mov r0, #0x1 - add sp, sp, #0x8 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_0209ADE4 -FUN_0209ADE4: ; 0x0209ADE4 - str r0, [r1, #0x0] - mov r12, #0x0 - mov r2, #0xa -_0209ADF0: - ldrb r3, [r0, #0x0] - sub r3, r3, #0x30 - and r3, r3, #0xff - cmp r3, #0x9 - mlals r12, r2, r12, r3 - addls r0, r0, #0x1 - strls r0, [r1, #0x0] - bls _0209ADF0 - mov r0, r12 - bx lr - - arm_func_start FUN_0209AE18 -FUN_0209AE18: ; 0x0209AE18 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4c - mov r9, r2 - mov r2, r9, asr #0x8 - mov r10, r1 - orr r1, r2, r9, lsl #0x8 - strh r1, [sp, #0x10] - cmp r10, #0x20 - mov r5, #0x0 - movne r1, #0x1 - strneh r1, [sp, #0x12] - ldreq r1, _0209B0C8 ; =0x00001001 - strh r5, [sp, #0x16] - streqh r1, [sp, #0x12] - mov r1, #0x100 - strh r1, [sp, #0x14] - add r1, sp, #0x1c - strh r5, [sp, #0x18] - strh r5, [sp, #0x1a] - str r5, [sp, #0xc] - ldrb r6, [r0], #0x1 - str r3, [sp, #0x0] - ldr r8, [sp, #0x70] - add r2, r1, #0x1 - cmp r6, #0x0 - beq _0209AED8 - add r4, sp, #0x10 -_0209AE84: - cmp r6, #0x2e - beq _0209AEB8 - sub r3, r2, r4 - cmp r3, #0x3c - addge sp, sp, #0x4c - mvnge r0, #0x0 - ldmgeia sp!, {r4-r11,lr} - bxge lr - strb r6, [r2], #0x1 - ldr r3, [sp, #0xc] - add r3, r3, #0x1 - str r3, [sp, #0xc] - b _0209AECC -_0209AEB8: - ldr r3, [sp, #0xc] - strb r3, [r1, #0x0] - mov r1, r2 - str r5, [sp, #0xc] - add r2, r2, #0x1 -_0209AECC: - ldrb r6, [r0], #0x1 - cmp r6, #0x0 - bne _0209AE84 -_0209AED8: - ldr r0, [sp, #0xc] - mov r3, #0x0 - strb r0, [r1, #0x0] - strb r3, [r2, #0x0] - mov r0, r10, lsr #0x8 - strb r0, [r2, #0x1] - strb r10, [r2, #0x2] - strb r3, [r2, #0x3] - mov r3, #0x1 - add r0, sp, #0x10 - add r1, r2, #0x5 - sub r1, r1, r0 - strb r3, [r2, #0x4] - bl FUN_0209C030 - mov r6, #0x0 - bl OS_GetTick - mov r5, r0, lsr #0x10 - mov r0, #0x2 - str r0, [sp, #0x8] - mov r0, #0x1 - orr r5, r5, r1, lsl #0x10 - str r0, [sp, #0x4] - mvn r11, #0x0 - b _0209B084 -_0209AF38: - bl FUN_0209BF9C -_0209AF3C: ; 0x0209AF3C - cmp r0, #0x0 - bne _0209AF4C - bl FUN_020A005C - b _0209B084 -_0209AF4C: - add r0, sp, #0xc - bl FUN_0209C638 - ldr r1, [sp, #0xc] - cmp r1, #0xc - bls _0209B07C - ldrh r3, [r0, #0x0] - mov r2, r3, asr #0x8 - orr r2, r2, r3, lsl #0x8 - mov r2, r2, lsl #0x10 - cmp r9, r2, lsr #0x10 - bne _0209B07C - ldrb r2, [r0, #0x3] - and r2, r2, #0xf - cmp r2, #0x3 - moveq r6, r11 - beq _0209B07C - cmp r2, #0x0 - bne _0209B07C - ldrb r2, [r0, #0x4] - add r4, r0, r1 - ldrb r1, [r0, #0x5] - add r0, r0, #0xc - orr r1, r1, r2, lsl #0x8 - mov r1, r1, lsl #0x10 - movs r1, r1, lsr #0x10 - sub r7, r1, #0x1 - beq _0209AFCC -_0209AFB8: - bl FUN_0209B0D0 -_0209AFBC: ; 0x0209AFBC - cmp r7, #0x0 - add r0, r0, #0x4 - sub r7, r7, #0x1 - bne _0209AFB8 -_0209AFCC: - cmp r0, r4 - bhs _0209B07C -_0209AFD4: - bl FUN_0209B0D0 - ldrb r7, [r0, #0x8] - ldrb r1, [r0, #0x9] - ldrb r3, [r0, #0x0] - ldrb r2, [r0, #0x1] - orr r1, r1, r7, lsl #0x8 - mov r1, r1, lsl #0x10 - orr r3, r2, r3, lsl #0x8 - mov r2, r1, lsr #0x10 - mov r1, r3, lsl #0x10 - cmp r10, r1, lsr #0x10 - bne _0209B06C - cmp r10, #0xc - beq _0209B04C - add r1, r0, #0x6 - add r3, r1, r2 - add r4, r0, #0x8 - ldrb r1, [r1, r2] - ldrb r0, [r3, #0x1] - add r3, r4, r2 - ldrb r2, [r4, r2] - orr r0, r0, r1, lsl #0x8 - ldrb r1, [r3, #0x1] - mov r0, r0, lsl #0x10 - mov r3, r0, lsr #0x10 - orr r0, r1, r2, lsl #0x8 - mov r1, r3, lsl #0x10 - mov r0, r0, lsl #0x10 - orr r6, r1, r0, lsr #0x10 - b _0209B07C -_0209B04C: - cmp r2, r8 - ldrhi r6, [sp, #0x8] - bhi _0209B07C - ldr r1, [sp, #0x0] - add r0, r0, #0xa - bl MI_CpuCopy8 - ldr r6, [sp, #0x4] - b _0209B07C -_0209B06C: - add r1, r2, #0xa - add r0, r0, r1 - cmp r0, r4 - blo _0209AFD4 -_0209B07C: - ldr r0, [sp, #0xc] - bl FUN_0209C52C -_0209B084: - ldr r0, _0209B0CC ; =0x021C8EFC - ldr r0, [r0, #0x0] - blx r0 - cmp r0, #0x0 - beq _0209B0B8 - cmp r6, #0x0 - bne _0209B0B8 - bl OS_GetTick - mov r0, r0, lsr #0x10 - orr r0, r0, r1, lsl #0x10 - sub r0, r0, r5 - cmp r0, #0xf - blt _0209AF38 -_0209B0B8: - mov r0, r6 - add sp, sp, #0x4c - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_0209B0C8: .word 0x00001001 -_0209B0CC: .word 0x021C8EFC - - arm_func_start FUN_0209B0D0 -FUN_0209B0D0: - ldrb r2, [r0], #0x1 - cmp r2, #0x0 - bxeq lr -_0209B0DC: - and r1, r2, #0xc0 - cmp r1, #0xc0 - addeq r0, r0, #0x1 - bxeq lr - add r0, r0, r2 - ldrb r2, [r0], #0x1 - cmp r2, #0x0 - bne _0209B0DC - bx lr - - arm_func_start FUN_0209B100 -FUN_0209B100: ; 0x0209B100 - stmdb sp!, {r4,lr} - bl FUN_0209CB44 - bl FUN_0209CBE8 - ldr r1, _0209B168 ; =0x021C8ED4 - mov r0, #0x44 - ldr r2, [r1, #0x0] - mov r1, #0x43 - bl FUN_0209CB78 - ldr r4, _0209B16C ; =0x021C924A - mov r1, #0x7 - mov r0, r4 - mov r2, #0x0 - bl FUN_0209B8E0 - mov r1, #0xff - add r2, r0, #0x1 - strb r1, [r0, #0x0] - mov r0, #0x0 - mov r1, #0x12c - sub r3, r2, r4 - bl FUN_0209B8A0 - sub r1, r0, r4 - mov r0, r4 - bl FUN_0209C030 - bl FUN_0209CB24 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_0209B168: .word 0x021C8ED4 -_0209B16C: .word 0x021C924A - - arm_func_start FUN_0209B170 -FUN_0209B170: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r5, r0 - bl FUN_0209CB44 - bl FUN_0209CBE8 - cmp r4, #0x1 - bne _0209B1A8 - ldr r1, _0209B28C ; =0x021C8ED4 - mov r0, #0x44 - ldr r2, [r1, #0x0] - mov r1, #0x43 - bl FUN_0209CB78 - b _0209B1B8 -_0209B1A8: - mov r0, #0x44 - mov r1, #0x43 - mvn r2, #0x0 - bl FUN_0209CB78 -_0209B1B8: - mov r6, #0x0 -_0209B1BC: - mov r0, r4 - bl FUN_0209B6BC - mov r1, r6 - bl FUN_0209B2FC - movs r7, r0 - bne _0209B1E0 - add r6, r6, #0x1 - cmp r6, #0x4 - blt _0209B1BC -_0209B1E0: - bl FUN_0209CB24 - cmp r7, #0x2 - bne _0209B224 - ldr r0, _0209B290 ; =0x021C8F00 - mov r1, #0x3 - ldr r3, [r0, #0x0] - ldr r2, _0209B294 ; =0x021C8EEC - mov r3, r3, lsr #0x1 - str r3, [r5, #0x0] - ldr r3, [r0, #0x0] - add sp, sp, #0x4 - mul r1, r3, r1 - mov r1, r1, lsr #0x3 - str r1, [r2, #0x0] - mov r0, #0x1 - ldmia sp!, {r4-r7,lr} - bx lr -_0209B224: - ldr r1, _0209B294 ; =0x021C8EEC - cmp r4, #0x1 - ldr r0, [r1, #0x0] - mov r0, r0, lsr #0x1 - str r0, [r1, #0x0] - str r0, [r5, #0x0] - beq _0209B24C - cmp r4, #0x2 - beq _0209B270 - b _0209B27C -_0209B24C: - cmp r0, #0x3c - bhs _0209B27C - mov r2, #0x1 - ldr r0, _0209B290 ; =0x021C8F00 - str r2, [r5, #0x0] - ldr r0, [r0, #0x0] - mov r0, r0, lsr #0x3 - str r0, [r1, #0x0] - b _0209B27C -_0209B270: - cmp r0, #0x3c - movcc r0, #0x1 - strcc r0, [r5, #0x0] -_0209B27C: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_0209B28C: .word 0x021C8ED4 -_0209B290: .word 0x021C8F00 -_0209B294: .word 0x021C8EEC - - arm_func_start FUN_0209B298 -FUN_0209B298: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - bl FUN_0209CB44 - bl FUN_0209CBE8 - mov r0, #0x44 - mov r1, #0x43 - mvn r2, #0x0 - bl FUN_0209CB78 - mov r4, #0x0 -_0209B2BC: - bl FUN_0209B7D8 - mov r1, r4 - bl FUN_0209B2FC - mov r5, r0 - cmp r5, #0x1 - beq _0209B2E0 - add r4, r4, #0x1 - cmp r4, #0x4 - blt _0209B2BC -_0209B2E0: - bl FUN_0209CB24 - cmp r5, #0x1 - moveq r0, #0x1 - movne r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_0209B2FC -FUN_0209B2FC: ; 0x0209B2FC - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x14 - add r2, r1, #0x1 - mov r1, #0xf - mul r1, r2, r1 - str r1, [sp, #0x8] - str r0, [sp, #0x0] - bl OS_GetTick - mov r0, r0, lsr #0x10 - str r0, [sp, #0x4] - orr r0, r0, r1, lsl #0x10 - mov r4, #0x0 - str r0, [sp, #0x4] - mov r0, #0x3 - mov r9, r4 - ldr r5, _0209B698 ; =0x021C8F1C - mov r7, #0x2 - mov r8, #0x1 - ldr fp, _0209B69C ; =0x021C8EE0 - ldr r6, _0209B6A0 ; =0x021C8ED0 - str r0, [sp, #0xc] - b _0209B64C -_0209B354: - bl FUN_0209BF9C -_0209B358: ; 0x0209B358 - cmp r0, #0x0 - bne _0209B368 - bl FUN_020A005C - b _0209B64C -_0209B368: - add r0, sp, #0x10 - bl FUN_0209C638 - mov r10, r0 - ldr r0, [sp, #0x10] - cmp r0, #0xf0 - bls _0209B644 - ldrb r0, [r10, #0x0] - cmp r0, #0x2 - bne _0209B644 - ldrh r1, [r10, #0x6] - ldrh r2, [r10, #0x4] - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - mov r1, r0, lsl #0x10 - mov r0, r2, asr #0x8 - orr r0, r0, r2, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r0, r0, lsl #0x10 - orr r1, r0, r1, lsr #0x10 - ldr r0, [sp, #0x0] - cmp r0, r1 - bne _0209B644 - ldr r1, _0209B6A4 ; =0x021C8F14 - add r0, r10, #0x1c - bl FUN_0209F9A0 -_0209B3D0: ; 0x0209B3D0 - cmp r0, #0x0 - bne _0209B644 - ldrb r3, [r10, #0x10] - ldrb r0, [r10, #0x11] - ldrb r2, [r10, #0x12] - ldrb r1, [r10, #0x13] - orr r0, r0, r3, lsl #0x8 - mov r0, r0, lsl #0x10 - orr r1, r1, r2, lsl #0x8 - mov r0, r0, lsr #0x10 - mov r2, r0, lsl #0x10 - mov r0, r1, lsl #0x10 - orr r0, r2, r0, lsr #0x10 - ldrb r2, [r10, #0xec] - ldr r1, [sp, #0x10] - ldr r4, [sp, #0xc] - add r1, r10, r1 - cmp r2, #0x63 - bne _0209B644 - ldrb r2, [r10, #0xed] - cmp r2, #0x82 - bne _0209B644 - ldrb r2, [r10, #0xee] - cmp r2, #0x53 - bne _0209B644 - add r2, r10, #0xf0 - ldrb r3, [r10, #0xef] - cmp r3, #0x63 - bne _0209B644 - b _0209B630 -_0209B448: - cmp r3, #0x0 - beq _0209B630 - cmp r3, #0x33 - bgt _0209B48C - cmp r3, #0x33 - bge _0209B588 - cmp r3, #0x6 - bgt _0209B624 - cmp r3, #0x1 - blt _0209B624 - cmp r3, #0x1 - beq _0209B4AC - cmp r3, #0x3 - beq _0209B4E0 - cmp r3, #0x6 - beq _0209B514 - b _0209B624 -_0209B48C: - cmp r3, #0x35 - bgt _0209B4A0 - cmp r3, #0x35 - beq _0209B5C0 - b _0209B624 -_0209B4A0: - cmp r3, #0x36 - beq _0209B5F0 - b _0209B624 -_0209B4AC: - ldrb lr, [r2, #0x1] - ldrb r12, [r2, #0x2] - ldrb r10, [r2, #0x3] - ldrb r3, [r2, #0x4] - orr r12, r12, lr, lsl #0x8 - mov r12, r12, lsl #0x10 - orr r3, r3, r10, lsl #0x8 - mov r10, r12, lsr #0x10 - mov r10, r10, lsl #0x10 - mov r3, r3, lsl #0x10 - orr r3, r10, r3, lsr #0x10 - str r3, [r6, #0x0] - b _0209B624 -_0209B4E0: - ldrb lr, [r2, #0x1] - ldrb r12, [r2, #0x2] - ldrb r10, [r2, #0x3] - ldrb r3, [r2, #0x4] - orr r12, r12, lr, lsl #0x8 - mov r12, r12, lsl #0x10 - orr r3, r3, r10, lsl #0x8 - mov r10, r12, lsr #0x10 - mov r10, r10, lsl #0x10 - mov r3, r3, lsl #0x10 - orr r3, r10, r3, lsr #0x10 - str r3, [r11, #0x0] - b _0209B624 -_0209B514: - ldrb r3, [r2, #0x0] - cmp r3, #0x8 - strcc r9, [r5, #0x4] - blo _0209B554 - ldrb lr, [r2, #0x5] - ldrb r12, [r2, #0x6] - ldrb r10, [r2, #0x7] - ldrb r3, [r2, #0x8] - orr r12, r12, lr, lsl #0x8 - mov r12, r12, lsl #0x10 - orr r3, r3, r10, lsl #0x8 - mov r10, r12, lsr #0x10 - mov r10, r10, lsl #0x10 - mov r3, r3, lsl #0x10 - orr r3, r10, r3, lsr #0x10 - str r3, [r5, #0x4] -_0209B554: - ldrb lr, [r2, #0x1] - ldrb r12, [r2, #0x2] - ldrb r10, [r2, #0x3] - ldrb r3, [r2, #0x4] - orr r12, r12, lr, lsl #0x8 - mov r12, r12, lsl #0x10 - orr r3, r3, r10, lsl #0x8 - mov r10, r12, lsr #0x10 - mov r10, r10, lsl #0x10 - mov r3, r3, lsl #0x10 - orr r3, r10, r3, lsr #0x10 - str r3, [r5, #0x0] - b _0209B624 -_0209B588: - ldrb lr, [r2, #0x1] - ldrb r12, [r2, #0x2] - ldrb r10, [r2, #0x3] - ldrb r3, [r2, #0x4] - orr r12, r12, lr, lsl #0x8 - mov r12, r12, lsl #0x10 - orr r3, r3, r10, lsl #0x8 - mov r10, r12, lsr #0x10 - mov r10, r10, lsl #0x10 - mov r3, r3, lsl #0x10 - orr r10, r10, r3, lsr #0x10 - ldr r3, _0209B6A8 ; =0x021C8F00 - str r10, [r3, #0x0] - b _0209B624 -_0209B5C0: - ldrb r3, [r2, #0x1] - cmp r3, #0x2 - beq _0209B5E0 - cmp r3, #0x5 - ldreq r3, _0209B6AC ; =0x021C8F04 - moveq r4, r7 - streq r0, [r3, #0x0] - b _0209B624 -_0209B5E0: - ldr r3, _0209B6B0 ; =0x021C8EE8 - mov r4, r8 - str r0, [r3, #0x0] - b _0209B624 -_0209B5F0: - ldrb lr, [r2, #0x1] - ldrb r12, [r2, #0x2] - ldrb r10, [r2, #0x3] - ldrb r3, [r2, #0x4] - orr r12, r12, lr, lsl #0x8 - mov r12, r12, lsl #0x10 - orr r3, r3, r10, lsl #0x8 - mov r10, r12, lsr #0x10 - mov r10, r10, lsl #0x10 - mov r3, r3, lsl #0x10 - orr r10, r10, r3, lsr #0x10 - ldr r3, _0209B6B4 ; =0x021C8ED4 - str r10, [r3, #0x0] -_0209B624: - ldrb r3, [r2, #0x0] - add r3, r3, #0x1 - add r2, r2, r3 -_0209B630: - cmp r2, r1 - bhs _0209B644 - ldrb r3, [r2], #0x1 - cmp r3, #0xff - bne _0209B448 -_0209B644: - ldr r0, [sp, #0x10] - bl FUN_0209C52C -_0209B64C: - ldr r0, _0209B6B8 ; =0x021C8EFC - ldr r0, [r0, #0x0] - blx r0 - cmp r0, #0x0 - beq _0209B688 - cmp r4, #0x0 - bne _0209B688 - bl OS_GetTick - mov r2, r0, lsr #0x10 - ldr r0, [sp, #0x4] - orr r2, r2, r1, lsl #0x10 - sub r1, r2, r0 - ldr r0, [sp, #0x8] - cmp r1, r0 - blt _0209B354 -_0209B688: - mov r0, r4 - add sp, sp, #0x14 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_0209B698: .word 0x021C8F1C -_0209B69C: .word 0x021C8EE0 -_0209B6A0: .word 0x021C8ED0 -_0209B6A4: .word 0x021C8F14 -_0209B6A8: .word 0x021C8F00 -_0209B6AC: .word 0x021C8F04 -_0209B6B0: .word 0x021C8EE8 -_0209B6B4: .word 0x021C8ED4 -_0209B6B8: .word 0x021C8EFC - - arm_func_start FUN_0209B6BC -FUN_0209B6BC: ; 0x0209B6BC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r4, _0209B7CC ; =0x021C924A - mov r5, r0 - add r2, sp, #0x0 - mov r0, r4 - mov r1, #0x3 - bl FUN_0209B8E0 - mov r12, r0 - cmp r5, #0x0 - bne _0209B790 - mov r0, #0x32 - strb r0, [r12, #0x0] - mov r0, #0x4 - ldr r3, _0209B7D0 ; =0x021C8EE8 - strb r0, [r12, #0x1] - ldr r1, [r3, #0x0] - mov lr, #0x36 - mov r1, r1, lsr #0x10 - mov r1, r1, lsl #0x10 - mov r1, r1, lsr #0x10 - mov r1, r1, asr #0x8 - strb r1, [r12, #0x2] - ldr r1, [r3, #0x0] - ldr r2, _0209B7D4 ; =0x021C8ED4 - mov r1, r1, lsr #0x10 - strb r1, [r12, #0x3] - ldr r1, [r3, #0x0] - mov r1, r1, lsl #0x10 - mov r1, r1, lsr #0x10 - mov r1, r1, asr #0x8 - strb r1, [r12, #0x4] - ldr r1, [r3, #0x0] - strb r1, [r12, #0x5] - strb lr, [r12, #0x6] - strb r0, [r12, #0x7] - ldr r0, [r2, #0x0] - mov r0, r0, lsr #0x10 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r0, r0, asr #0x8 - strb r0, [r12, #0x8] - ldr r0, [r2, #0x0] - mov r0, r0, lsr #0x10 - strb r0, [r12, #0x9] - ldr r0, [r2, #0x0] - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r0, r0, asr #0x8 - strb r0, [r12, #0xa] - ldr r0, [r2, #0x0] - strb r0, [r12, #0xb] - add r12, r12, #0xc -_0209B790: - add r2, r12, #0x1 - mov lr, #0xff - sub r3, r2, r4 - mov r0, #0x0 - mov r1, #0x12c - strb lr, [r12, #0x0] - bl FUN_0209B8A0 - mov r1, r0 - mov r0, r4 - sub r1, r1, r4 - bl FUN_0209C030 -_0209B7BC: ; 0x0209B7BC - ldr r0, [sp, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_0209B7CC: .word 0x021C924A -_0209B7D0: .word 0x021C8EE8 -_0209B7D4: .word 0x021C8ED4 - - arm_func_start FUN_0209B7D8 -FUN_0209B7D8: ; 0x0209B7D8 - stmdb sp!, {r4,lr} - sub sp, sp, #0x8 - ldr r4, _0209B898 ; =0x021C924A - add r2, sp, #0x0 - mov r0, r4 - mov r1, #0x1 - bl FUN_0209B8E0 - ldr r1, _0209B89C ; =0x021C8EE8 - mov r12, r0 - ldr r0, [r1, #0x0] - cmp r0, #0x0 - beq _0209B85C - mov r0, #0x32 - strb r0, [r12, #0x0] - mov r0, #0x4 - strb r0, [r12, #0x1] - ldr r0, [r1, #0x0] - mov r0, r0, lsr #0x10 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r0, r0, asr #0x8 - strb r0, [r12, #0x2] - ldr r0, [r1, #0x0] - mov r0, r0, lsr #0x10 - strb r0, [r12, #0x3] - ldr r0, [r1, #0x0] - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - mov r0, r0, asr #0x8 - strb r0, [r12, #0x4] - ldr r0, [r1, #0x0] - strb r0, [r12, #0x5] - add r12, r12, #0x6 -_0209B85C: - add r2, r12, #0x1 - mov lr, #0xff - sub r3, r2, r4 - mov r0, #0x0 - mov r1, #0x12c - strb lr, [r12, #0x0] - bl FUN_0209B8A0 - mov r1, r0 - mov r0, r4 - sub r1, r1, r4 - bl FUN_0209C030 -_0209B888: ; 0x0209B888 - ldr r0, [sp, #0x0] - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_0209B898: .word 0x021C924A -_0209B89C: .word 0x021C8EE8 - - arm_func_start FUN_0209B8A0 -FUN_0209B8A0: ; 0x0209B8A0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r12, r0 - mov r5, r2 - cmp r3, r1 - bhs _0209B8D0 - sub r4, r1, r3 - mov r0, r5 - mov r1, r12 - mov r2, r4 - bl MI_CpuFill8 - add r5, r5, r4 -_0209B8D0: - mov r0, r5 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_0209B8E0 -FUN_0209B8E0: ; 0x0209B8E0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r1 - mov r4, r2 - mov r1, #0x0 - mov r2, #0xec - mov r6, r0 - bl MI_CpuFill8 - ldr r0, _0209BA5C ; =0x00000101 - mov r1, #0x6 - strh r0, [r6, #0x0] - ldr r0, _0209BA60 ; =0x021C8F24 - strb r1, [r6, #0x2] - ldr r3, [r0, #0x8] - ldr r2, [r0, #0x0] - ldr r1, [r0, #0x4] - umull lr, r12, r3, r2 - mla r12, r3, r1, r12 - ldr r1, [r0, #0xc] - ldr r7, [r0, #0x10] - mla r12, r1, r2, r12 - adds r3, r7, lr - ldr r1, [r0, #0x14] - str r3, [r0, #0x0] - adc r1, r1, r12 - str r1, [r0, #0x4] - mov r0, r1, lsr #0x10 - mov r0, r0, lsl #0x10 - mov r3, r0, lsr #0x10 - cmp r4, #0x0 - mov r2, r3, asr #0x8 - mov r0, r1, lsl #0x10 - strne r1, [r4, #0x0] - mov r1, r0, lsr #0x10 - orr r2, r2, r3, lsl #0x8 - mov r0, r1, asr #0x8 - strh r2, [r6, #0x4] - orr r0, r0, r1, lsl #0x8 - strh r0, [r6, #0x6] - ldr r2, _0209BA64 ; =0x021C8F04 - ldr r0, _0209BA68 ; =0x021C8F14 - ldr r1, [r2, #0x0] - mov r1, r1, lsr #0x10 - mov r1, r1, lsl #0x10 - mov r3, r1, lsr #0x10 - mov r1, r3, asr #0x8 - orr r1, r1, r3, lsl #0x8 - strh r1, [r6, #0xc] - ldr r2, [r2, #0x0] - add r1, r6, #0x1c - mov r2, r2, lsl #0x10 - mov r3, r2, lsr #0x10 - mov r2, r3, asr #0x8 - orr r3, r2, r3, lsl #0x8 - mov r2, #0x6 - strh r3, [r6, #0xe] - bl MI_CpuCopy8 - ldr r0, _0209BA6C ; =0x00008263 - ldr r1, _0209BA70 ; =0x00006353 - strh r0, [r6, #0xec] - strh r1, [r6, #0xee] - ldr r0, _0209BA74 ; =0x00000135 - mov r1, #0x7 - strh r0, [r6, #0xf0] - strb r5, [r6, #0xf2] - mov r0, #0x3d - strb r0, [r6, #0xf3] - strb r1, [r6, #0xf4] - mov r3, #0x1 - ldr r0, _0209BA68 ; =0x021C8F14 - add r1, r6, #0xf6 - mov r2, #0x6 - strb r3, [r6, #0xf5] - bl MI_CpuCopy8 - mov r1, #0xc - strb r1, [r6, #0xfc] - mov r2, #0xa - ldr r0, _0209BA78 ; =0x02106224 - add r1, r6, #0xfe - strb r2, [r6, #0xfd] - bl MI_CpuCopy8 - mov r1, #0x37 - strb r1, [r6, #0x108] - mov r2, #0x3 - ldr r0, _0209BA7C ; =0x0000010D - strb r2, [r6, #0x109] - mov r1, #0x1 - strb r1, [r6, #0x10a] - strb r2, [r6, #0x10b] - mov r1, #0x6 - strb r1, [r6, #0x10c] - add r0, r6, r0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_0209BA5C: .word 0x00000101 -_0209BA60: .word 0x021C8F24 -_0209BA64: .word 0x021C8F04 -_0209BA68: .word 0x021C8F14 -_0209BA6C: .word 0x00008263 -_0209BA70: .word 0x00006353 -_0209BA74: .word 0x00000135 -_0209BA78: .word 0x02106224 -_0209BA7C: .word 0x0000010D - - arm_func_start FUN_0209BA80 -FUN_0209BA80: ; 0x0209BA80 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x54 - ldr r3, _0209BE40 ; =0x021C8EF8 - mov r1, #0x0 - ldr r0, _0209BE44 ; =0x021C8FD8 - mov r2, #0x64 - str r1, [r3, #0x0] - bl MI_CpuFill8 - ldr r0, _0209BE44 ; =0x021C8FD8 - mov r3, #0x180 - ldr r2, _0209BE48 ; =0x021C93A0 - ldr r1, _0209BE4C ; =0x021C9220 - str r3, [r0, #0x3c] - str r2, [r0, #0x40] - str r3, [r0, #0x48] - str r1, [r0, #0x4c] - bl FUN_0209CC28 - mov r11, #0x0 - mov r0, #0x1 - str r0, [sp, #0x0] - str r0, [sp, #0x4] - str r0, [sp, #0x4c] - mov r1, r0 - ldr r0, _0209BE50 ; =0x021C8EC0 - ldr r5, [sp, #0x0] - str r1, [r0, #0x0] - mov r0, #0x2 - str r0, [sp, #0x10] - mov r0, r5 - str r0, [sp, #0x34] - str r0, [sp, #0x3c] - mov r0, #0x3 - str r0, [sp, #0x1c] - mov r0, r5 - str r0, [sp, #0x30] - str r0, [sp, #0x28] - str r0, [sp, #0x24] - str r0, [sp, #0x20] - str r0, [sp, #0xc] - mov r0, #0x69 - str r0, [sp, #0x44] - mov r0, #0x3e8 - mov r6, r11 - mov r4, r11 - mov r10, r11 - str r11, [sp, #0x14] - str r11, [sp, #0x18] - str r11, [sp, #0x38] - str r11, [sp, #0x2c] - str r11, [sp, #0x40] - str r11, [sp, #0x48] - str r0, [sp, #0x8] -_0209BB50: - ldr r0, [sp, #0x8] - bl OS_Sleep - ldr r0, _0209BE40 ; =0x021C8EF8 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _0209BE14 - bl OS_GetTick - mov r9, r0, lsr #0x10 - ldr r0, _0209BE54 ; =0x021C8EFC - orr r9, r9, r1, lsl #0x10 - ldr r0, [r0, #0x0] - blx r0 - cmp r0, #0x0 - beq _0209BC8C - ldr r0, [sp, #0x4c] - subs r0, r0, #0x1 - str r0, [sp, #0x4c] - bne _0209BCA4 - ldr r0, _0209BE58 ; =0x021C8EC4 - ldr r0, [r0, #0x0] - ands r0, r0, #0x1 - beq _0209BBBC - cmp r11, #0x0 - bne _0209BCA4 - bl FUN_0209BE78 - ldr r11, [sp, #0xc] - b _0209BCA4 -_0209BBBC: - cmp r11, #0x3 - addls pc, pc, r11, lsl #0x2 - b _0209BCA4 -_0209BBC8: - b _0209BBD8 -_0209BBCC: - b _0209BC28 -_0209BBD0: - b _0209BC4C -_0209BBD4: - b _0209BCA4 -_0209BBD8: - ldr r0, [sp, #0x4] - cmp r0, #0x0 - ldrne r1, [sp, #0x10] - ldrne r0, _0209BE50 ; =0x021C8EC0 - strne r1, [r0, #0x0] - ldrne r0, [sp, #0x14] - strne r0, [sp, #0x4] - bl FUN_0209B298 -_0209BBF8: ; 0x0209BBF8 - cmp r0, #0x0 - beq _0209BC14 - ldr r1, [sp, #0x18] - add r0, sp, #0x4c - bl FUN_0209B170 -_0209BC0C: ; 0x0209BC0C - cmp r0, #0x0 - bne _0209BC20 -_0209BC14: - bl FUN_0209BE78 - ldr r11, [sp, #0x1c] - b _0209BCA4 -_0209BC20: - ldr r11, [sp, #0x20] - b _0209BCA4 -_0209BC28: - ldr r1, [sp, #0x24] - add r0, sp, #0x4c - bl FUN_0209B170 -_0209BC34: ; 0x0209BC34 - cmp r0, #0x0 - bne _0209BCA4 - ldr r0, [sp, #0x4c] - cmp r0, #0x3c - ldrcc r11, [sp, #0x10] - b _0209BCA4 -_0209BC4C: - ldr r1, [sp, #0x10] - add r0, sp, #0x4c - bl FUN_0209B170 -_0209BC58: ; 0x0209BC58 - cmp r0, #0x0 - ldrne r11, [sp, #0x28] - bne _0209BCA4 - ldr r0, [sp, #0x4c] - cmp r0, #0x3c - bhs _0209BCA4 - ldr r0, [sp, #0x1c] - bl FUN_020A0098 - ldr r0, [sp, #0x30] - ldr r11, [sp, #0x2c] - str r0, [sp, #0x4c] - str r0, [sp, #0x0] - b _0209BCA4 -_0209BC8C: - ldr r0, [sp, #0x34] - bl FUN_020A0098 - ldr r0, [sp, #0x3c] - ldr r11, [sp, #0x38] - str r0, [sp, #0x4c] - str r0, [sp, #0x0] -_0209BCA4: - ldr r1, [sp, #0x40] - ldr r0, _0209BE5C ; =0x021C8F78 -_0209BCAC: - ldr r2, [r0, #0x0] - cmp r2, #0x0 - beq _0209BCD4 - ldrh r2, [r0, #0xa] - sub r2, r9, r2 - mov r2, r2, lsl #0x10 - mov r3, r2, asr #0x10 - ldr r2, _0209BE60 ; =0x000003BD - cmp r3, r2 - strgt r6, [r0, #0x0] -_0209BCD4: - add r0, r0, #0xc - add r1, r1, #0x1 - cmp r1, #0x8 - blt _0209BCAC - ldr r0, _0209BE64 ; =0x021C8EE0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0209BD10 - ldr r1, [sp, #0x0] - subs r1, r1, #0x1 - str r1, [sp, #0x0] - bne _0209BD10 - bl FUN_0209F338 - ldr r0, [sp, #0x44] - str r0, [sp, #0x0] -_0209BD10: - ldr r0, _0209BE68 ; =0x021D3498 - ldr r7, [r0, #0x8] - cmp r7, #0x0 - beq _0209BDAC -_0209BD20: - ldr r0, [r7, #0xa4] - cmp r0, #0x0 - beq _0209BDA0 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - beq _0209BDA0 - ldrb r2, [r0, #0x8] - cmp r2, #0x3 - bne _0209BD6C - ldr r1, [r0, #0x10] - sub r1, r9, r1 - cmp r1, #0x27 - ble _0209BD6C - strb r5, [r0, #0x8] - ldrh r1, [r0, #0x1a] - strh r1, [r0, #0x18] - ldr r1, [r0, #0x20] - str r1, [r0, #0x1c] - b _0209BDA0 -_0209BD6C: - cmp r2, #0x2 - bne _0209BDA0 - ldr r1, [r0, #0x10] - sub r1, r9, r1 - cmp r1, #0x27 - ble _0209BDA0 - ldr r1, [r0, #0x4] - cmp r1, #0x1 - bne _0209BDA0 - strb r4, [r0, #0x8] - str r4, [r0, #0x4] - ldr r0, [r0, #0x0] - bl OS_WakeupThreadDirect -_0209BDA0: - ldr r7, [r7, #0x68] - cmp r7, #0x0 - bne _0209BD20 -_0209BDAC: - ldr r7, [sp, #0x48] - ldr r8, _0209BE6C ; =0x021C9520 -_0209BDB4: - ldrh r0, [r8, #0x4] - cmp r0, #0x0 - beq _0209BDE4 - ldr r0, [r8, #0x2c] - sub r0, r9, r0 - cmp r0, #0xef - ble _0209BDE4 - ldr r1, _0209BE70 ; =0x021C8EF4 - ldr r0, [r8, #0x34] - ldr r1, [r1, #0x0] - blx r1 - strh r10, [r8, #0x4] -_0209BDE4: - add r8, r8, #0x38 - add r7, r7, #0x1 - cmp r7, #0x8 - blt _0209BDB4 - mov r0, r9 - bl FUN_020A01FC - ldr r0, _0209BE74 ; =0x021C8EF0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0209BB50 - blx r0 - b _0209BB50 -_0209BE14: - ldr r0, _0209BE58 ; =0x021C8EC4 - ldr r0, [r0, #0x0] - ands r0, r0, #0x1 - bne _0209BE30 - cmp r11, #0x3 - beq _0209BE30 - bl FUN_0209B100 -_0209BE30: - bl FUN_0209CC10 - add sp, sp, #0x54 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_0209BE40: .word 0x021C8EF8 -_0209BE44: .word 0x021C8FD8 -_0209BE48: .word 0x021C93A0 -_0209BE4C: .word 0x021C9220 -_0209BE50: .word 0x021C8EC0 -_0209BE54: .word 0x021C8EFC -_0209BE58: .word 0x021C8EC4 -_0209BE5C: .word 0x021C8F78 -_0209BE60: .word 0x000003BD -_0209BE64: .word 0x021C8EE0 -_0209BE68: .word 0x021D3498 -_0209BE6C: .word 0x021C9520 -_0209BE70: .word 0x021C8EF4 -_0209BE74: .word 0x021C8EF0 - - arm_func_start FUN_0209BE78 -FUN_0209BE78: ; 0x0209BE78 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr r0, _0209BF3C ; =0x021C8ECC - ldr r0, [r0, #0x0] - blx r0 - ldr r0, _0209BF40 ; =0x021C8F04 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - bl FUN_0209F338 - mov r0, #0x64 - bl OS_Sleep - ldr r0, _0209BF40 ; =0x021C8F04 - ldr r0, [r0, #0x0] - bl FUN_0209F338 - bl OS_GetTick - mov r4, r0, lsr #0x10 - orr r4, r4, r1, lsl #0x10 - ldr r6, _0209BF44 ; =0x021C8EAC - mov r7, #0x64 - ldr r5, _0209BF48 ; =0x021C8EFC - b _0209BF00 -_0209BED8: - ldrb r0, [r6, #0x0] - cmp r0, #0x0 - beq _0209BEF8 - mov r0, #0x4 - bl FUN_020A0098 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr -_0209BEF8: - mov r0, r7 - bl OS_Sleep -_0209BF00: - ldr r0, [r5, #0x0] - blx r0 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - bl OS_GetTick - mov r0, r0, lsr #0x10 - orr r0, r0, r1, lsl #0x10 - sub r0, r0, r4 - cmp r0, #0x17 - blt _0209BED8 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_0209BF3C: .word 0x021C8ECC -_0209BF40: .word 0x021C8F04 -_0209BF44: .word 0x021C8EAC -_0209BF48: .word 0x021C8EFC - - arm_func_start FUN_0209BF4C -FUN_0209BF4C: ; 0x0209BF4C - stmdb sp!, {r4,lr} - ldr r0, _0209BF98 ; =0x021D3498 - ldr r0, [r0, #0x4] - ldr r4, [r0, #0xa4] - cmp r4, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r1, [r4, #0x60] - cmp r1, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - mov r2, #0x0 - ldr r0, [r4, #0x5c] - mov r3, r2 - bl FUN_0209C0E8 -_0209BF88: ; 0x0209BF88 - mov r0, #0x0 - str r0, [r4, #0x60] - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_0209BF98: .word 0x021D3498 - - arm_func_start FUN_0209BF9C -FUN_0209BF9C: - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _0209C02C ; =0x021D3498 - ldr r0, [r0, #0x4] - ldr r0, [r0, #0xa4] - cmp r0, #0x0 - beq _0209C01C - ldrb r1, [r0, #0x9] - cmp r1, #0x0 - beq _0209BFD4 - bl FUN_020A0538 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_0209BFD4: - ldr r1, [r0, #0x44] - cmp r1, #0x0 - bne _0209BFFC - ldrb r0, [r0, #0x8] - cmp r0, #0x4 - beq _0209BFFC - add r0, r0, #0xf6 - and r0, r0, #0xff - cmp r0, #0x1 - bhi _0209C00C -_0209BFFC: - add sp, sp, #0x4 - mov r0, r1 - ldmia sp!, {lr} - bx lr -_0209C00C: - add sp, sp, #0x4 - mvn r0, #0x0 - ldmia sp!, {lr} - bx lr -_0209C01C: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_0209C02C: .word 0x021D3498 - - arm_func_start FUN_0209C030 -FUN_0209C030: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r3, _0209C0E4 ; =0x021D3498 - mov r2, r0 - ldr r4, [r3, #0x4] - mov r3, r1 - ldr r5, [r4, #0xa4] - cmp r5, #0x0 - beq _0209C0D4 - ldr r4, [r5, #0x60] - cmp r4, #0x0 - beq _0209C0BC - ldr r0, [r5, #0x5c] - mov r1, r4 - bl FUN_0209C0E8 - ldr r1, [r5, #0x60] - mov r4, r0 - cmp r4, r1 - movcs r0, #0x0 - strcs r0, [r5, #0x60] - addcs sp, sp, #0x4 - subcs r0, r4, r1 - ldmcsia sp!, {r4-r5,lr} - bxcs lr - ldr r0, [r5, #0x5c] - sub r2, r1, r4 - add r1, r0, r4 - bl memmove - ldr r1, [r5, #0x60] - add sp, sp, #0x4 - sub r1, r1, r4 - mov r0, #0x0 - str r1, [r5, #0x60] - ldmia sp!, {r4-r5,lr} - bx lr -_0209C0BC: - mov r2, #0x0 - mov r3, r2 - bl FUN_0209C0E8 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr -_0209C0D4: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_0209C0E4: .word 0x021D3498 - - arm_func_start FUN_0209C0E8 -FUN_0209C0E8: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr ip, _0209C1CC ; =0x021D3498 - mov r7, r1 - ldr r12, [r12, #0x4] - mov r6, r2 - ldr r4, [r12, #0xa4] - mov r5, r3 - cmp r4, #0x0 - beq _0209C1BC - ldrb r12, [r4, #0x8] - cmp r12, #0xa - bne _0209C14C - cmp r7, #0x0 - beq _0209C12C - mov r2, r4 - bl FUN_0209EB00 -_0209C12C: - cmp r5, #0x0 - beq _0209C144 - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_0209EB00 -_0209C144: - add r0, r7, r5 - b _0209C1A4 -_0209C14C: - cmp r12, #0xb - bne _0209C184 - cmp r7, #0x0 - beq _0209C164 - mov r2, r4 - bl FUN_0209EC40 -_0209C164: - cmp r5, #0x0 - beq _0209C17C - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_0209EC40 -_0209C17C: - add r0, r7, r5 - b _0209C1A4 -_0209C184: - ldrb r12, [r4, #0x9] - cmp r12, #0x0 - beq _0209C19C - str r4, [sp, #0x0] - bl FUN_020A03E0 - b _0209C1A4 -_0209C19C: - str r4, [sp, #0x0] - bl FUN_0209C1D4 -_0209C1A4: - ldr r1, _0209C1D0 ; =0x021C8EA8 - ldrb r1, [r1, #0x0] - cmp r1, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr -_0209C1BC: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_0209C1CC: .word 0x021D3498 -_0209C1D0: .word 0x021C8EA8 - - arm_func_start FUN_0209C1D4 -FUN_0209C1D4: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x1c - mov r4, #0x0 - mov r10, r0 - ldr r8, [sp, #0x40] - mov r0, r4 - str r4, [sp, #0xc] - mov r9, r1 - mov r11, r2 - str r3, [sp, #0x8] - mov r6, r4 - str r0, [r8, #0x34] - bl OS_GetTick - mov r0, r0, lsr #0x10 - str r0, [sp, #0x10] - orr r0, r0, r1, lsl #0x10 - str r0, [sp, #0x10] - mov r0, r6 - str r0, [sp, #0x18] - mov r0, #0x1 - ldr r4, _0209C3EC ; =0x021C8EFC - str r0, [sp, #0x14] - b _0209C39C -_0209C230: - ldr r7, [r8, #0x28] - ldr r3, [sp, #0x8] - str r8, [sp, #0x0] - mov r0, r10 - mov r1, r9 - mov r2, r11 - str r6, [sp, #0x4] - bl FUN_0209C3F0 - bl OS_GetTick - mov r5, r0, lsr #0x10 - orr r5, r5, r1, lsl #0x10 -_0209C25C: - bl FUN_020A005C -_0209C260: ; 0x0209C260 - ldr r0, [r4, #0x0] - blx r0 - cmp r0, #0x0 - beq _0209C2B8 - ldrb r0, [r8, #0x8] - cmp r0, #0x4 - bne _0209C2B8 - ldr r1, [r8, #0x28] - ldr r0, [r8, #0x30] - cmp r1, r0 - beq _0209C2B8 - bl OS_GetTick - mov r0, r0, lsr #0x10 - orr r0, r0, r1, lsl #0x10 - sub r0, r0, r5 - cmp r0, #0xf - bge _0209C2B8 - cmp r6, #0x0 - beq _0209C25C - ldrh r0, [r8, #0x2c] - cmp r0, #0x0 - beq _0209C25C -_0209C2B8: - ldr r0, [r8, #0x30] - subs r7, r0, r7 - ldr r0, [sp, #0xc] - add r0, r0, r7 - str r0, [sp, #0xc] - beq _0209C2E4 - bl OS_GetTick - mov r0, r0, lsr #0x10 - str r0, [sp, #0x10] - orr r0, r0, r1, lsl #0x10 - str r0, [sp, #0x10] -_0209C2E4: - ldr r0, [r8, #0x30] - str r0, [r8, #0x28] - ldrb r0, [r8, #0x8] - cmp r0, #0x4 - bne _0209C36C - ldrh r0, [r8, #0x2c] - cmp r0, #0x0 - bne _0209C36C - cmp r7, #0x0 - bne _0209C36C - cmp r6, #0x0 - bne _0209C370 - bl OS_GetTick - mov r5, r0, lsr #0x10 - orr r5, r5, r1, lsl #0x10 - b _0209C334 -_0209C324: - bl FUN_020A005C - ldrh r0, [r8, #0x2c] - cmp r0, #0x0 - bne _0209C35C -_0209C334: - ldr r0, [r4, #0x0] - blx r0 - cmp r0, #0x0 - beq _0209C35C - bl OS_GetTick - mov r0, r0, lsr #0x10 - orr r0, r0, r1, lsl #0x10 - sub r0, r0, r5 - cmp r0, #0xf - blt _0209C324 -_0209C35C: - ldrh r0, [r8, #0x2c] - cmp r0, #0x0 - ldreq r6, [sp, #0x14] - b _0209C370 -_0209C36C: - ldr r6, [sp, #0x18] -_0209C370: - cmp r7, r9 - addcc r10, r10, r7 - subcc r9, r9, r7 - blo _0209C39C - sub r1, r7, r9 - add r10, r11, r1 - ldr r0, [sp, #0x8] - ldr r11, [sp, #0x18] - sub r9, r0, r1 - mov r0, r11 - str r0, [sp, #0x8] -_0209C39C: - ldr r0, [r4, #0x0] - blx r0 - cmp r0, #0x0 - beq _0209C3DC - cmp r9, #0x0 - beq _0209C3DC - ldrb r0, [r8, #0x8] - cmp r0, #0x4 - bne _0209C3DC - bl OS_GetTick - mov r2, r0, lsr #0x10 - ldr r0, [sp, #0x10] - orr r2, r2, r1, lsl #0x10 - sub r0, r2, r0 - cmp r0, #0x9f - blt _0209C230 -_0209C3DC: - ldr r0, [sp, #0xc] - add sp, sp, #0x1c - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_0209C3EC: .word 0x021C8EFC - - arm_func_start FUN_0209C3F0 -FUN_0209C3F0: ; 0x0209C3F0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r2 - mov r4, r3 - ldr r2, [sp, #0x10] - ldr r3, [sp, #0x14] - bl FUN_0209C44C -_0209C40C: ; 0x0209C40C - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - cmp r4, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - ldr r2, [sp, #0x10] - mov r0, r5 - mov r1, r4 - mov r3, #0x0 - bl FUN_0209C44C - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_0209C44C -FUN_0209C44C: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r8, r2 - ldr r11, [r8, #0x34] - mov r10, r0 - movs r0, r3 - mov r0, r11, lsl #0x1 - movne r6, #0x1 - add r5, r0, #0x4 - mov r0, #0x18 - str r3, [sp, #0x4] - mov r9, r1 - ldreqh r6, [r8, #0x2c] - mov r4, #0x0 - str r0, [sp, #0x8] - b _0209C504 -_0209C48C: - ldr r0, _0209C528 ; =0x021C8EB0 - ldrh r7, [r8, #0x2e] - ldrh r0, [r0, #0x0] - ldr r1, [r8, #0x34] - cmp r7, r6 - movcs r7, r6 - cmp r0, r7 - movcc r7, r0 - ldr r0, [sp, #0x4] - cmp r0, #0x0 - biceq r7, r7, #0x1 - cmp r9, r7 - sub r0, r1, r11 - movcc r7, r9 - adds r0, r5, r0 - moveq r7, r4 - mov r11, r1 - sub r5, r0, #0x1 - cmp r7, #0x0 - beq _0209C518 - ldr r3, [sp, #0x8] - mov r0, r10 - mov r1, r7 - mov r2, r8 - str r4, [sp, #0x0] - sub r6, r6, r7 - bl FUN_0209E878 - bl OS_YieldThread - add r10, r10, r7 - sub r9, r9, r7 -_0209C504: - cmp r9, #0x0 - beq _0209C518 - ldrb r0, [r8, #0x8] - cmp r0, #0x4 - beq _0209C48C -_0209C518: - mov r0, r7 - add sp, sp, #0xc - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_0209C528: .word 0x021C8EB0 - - arm_func_start FUN_0209C52C -FUN_0209C52C: ; 0x0209C52C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _0209C57C ; =0x021D3498 - ldr r1, [r1, #0x4] - ldr r1, [r1, #0xa4] - cmp r1, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {lr} - bxeq lr - ldrb r2, [r1, #0x9] - cmp r2, #0x0 - beq _0209C56C - bl FUN_020A0738 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_0209C56C: - bl FUN_0209C580 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_0209C57C: .word 0x021D3498 - - arm_func_start FUN_0209C580 -FUN_0209C580: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r7, r0 - bl OS_DisableInterrupts - ldr r2, [r4, #0x44] - ldr r1, [r4, #0x3c] - mov r6, r0 - cmp r2, r1 - mov r5, #0x0 - bne _0209C5B4 - cmp r7, #0x0 - movne r5, #0x1 -_0209C5B4: - cmp r7, r2 - movcs r0, #0x0 - strcs r0, [r4, #0x44] - bhs _0209C5D8 - ldr r0, [r4, #0x40] - sub r2, r2, r7 - add r1, r0, r7 - str r2, [r4, #0x44] - bl memmove -_0209C5D8: - mov r0, r6 - bl OS_RestoreInterrupts - ldrb r0, [r4, #0x8] - cmp r0, #0xa - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - cmp r0, #0xb - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - ldr r0, [r4, #0x44] - cmp r0, #0x0 - beq _0209C620 - cmp r5, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr -_0209C620: - mov r0, r4 - mov r1, #0x1b - bl FUN_0209DF84 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_0209C638 -FUN_0209C638: - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _0209C6BC ; =0x021D3498 - ldr r1, [r1, #0x4] - ldr r1, [r1, #0xa4] - cmp r1, #0x0 - beq _0209C6A4 - ldrb r2, [r1, #0x8] - add r2, r2, #0xf6 - and r2, r2, #0xff - cmp r2, #0x1 - bhi _0209C678 - bl FUN_0209C74C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_0209C678: - ldrb r2, [r1, #0x9] - cmp r2, #0x0 - beq _0209C694 - bl FUN_020A0790 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_0209C694: - bl FUN_0209C6C0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_0209C6A4: - mov r1, #0x0 - str r1, [r0, #0x0] - mov r0, r1 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_0209C6BC: .word 0x021D3498 - - arm_func_start FUN_0209C6C0 -FUN_0209C6C0: ; 0x0209C6C0 - stmdb sp!, {r4-r8,lr} - mov r4, r1 - ldr r1, [r4, #0x44] - mov r5, r0 - cmp r1, #0x0 - bne _0209C728 - ldrb r0, [r4, #0x8] - cmp r0, #0x4 - bne _0209C728 - bl OS_DisableInterrupts - mov r8, r0 - mov r7, #0x2 - mov r6, #0x0 - b _0209C704 -_0209C6F8: - mov r0, r6 - str r7, [r4, #0x4] - bl OS_SleepThread -_0209C704: - ldr r0, [r4, #0x44] - cmp r0, #0x0 - bne _0209C71C - ldrb r0, [r4, #0x8] - cmp r0, #0x4 - beq _0209C6F8 -_0209C71C: - mov r0, r8 - bl OS_RestoreInterrupts -_0209C724: ; 0x0209C724 - b _0209C72C -_0209C728: - bl OS_YieldThread -_0209C72C: - ldr r0, [r4, #0x44] - str r0, [r5, #0x0] - ldr r0, [r5, #0x0] - cmp r0, #0x0 - ldrne r0, [r4, #0x40] - moveq r0, #0x0 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_0209C74C -FUN_0209C74C: ; 0x0209C74C - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r8, r1 - mov r9, r0 - bl OS_DisableInterrupts - ldr r7, [r8, #0x44] - mov r6, r0 - cmp r7, #0x0 - bne _0209C790 - mov r5, #0x3 - mov r4, #0x0 -_0209C778: - mov r0, r4 - str r5, [r8, #0x4] - bl OS_SleepThread - ldr r7, [r8, #0x44] - cmp r7, #0x0 - beq _0209C778 -_0209C790: - mov r0, r6 - bl OS_RestoreInterrupts - str r7, [r9, #0x0] - ldr r0, [r8, #0x40] - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start FUN_0209C7AC -FUN_0209C7AC: ; 0x0209C7AC - stmdb sp!, {r4-r6,lr} - ldr r0, _0209C838 ; =0x021D3498 - ldr r0, [r0, #0x4] - ldr r4, [r0, #0xa4] - cmp r4, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldrb r0, [r4, #0x9] - cmp r0, #0x0 - beq _0209C7DC - mov r0, r4 - bl FUN_020A0320 -_0209C7DC: - bl OS_GetTick - mov r6, r0, lsr #0x10 - orr r6, r6, r1, lsl #0x10 - ldr r5, _0209C83C ; =0x021C8EFC - b _0209C7F4 -_0209C7F0: - bl FUN_020A005C -_0209C7F4: - ldr r0, [r5, #0x0] - blx r0 - cmp r0, #0x0 - beq _0209C828 - ldrb r0, [r4, #0x8] - cmp r0, #0x0 - beq _0209C828 - bl OS_GetTick - mov r0, r0, lsr #0x10 - orr r0, r0, r1, lsl #0x10 - sub r0, r0, r6 - cmp r0, #0x27 - blt _0209C7F0 -_0209C828: - mov r0, #0x0 - strb r0, [r4, #0x8] - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_0209C838: .word 0x021D3498 -_0209C83C: .word 0x021C8EFC - - arm_func_start FUN_0209C840 -FUN_0209C840: - stmdb sp!, {r4,lr} - ldr r0, _0209C880 ; =0x021D3498 - ldr r0, [r0, #0x4] - ldr r4, [r0, #0xa4] - cmp r4, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - ldrb r0, [r4, #0x9] - cmp r0, #0x0 - beq _0209C870 - mov r0, r4 - bl FUN_020A035C -_0209C870: - mov r0, r4 - bl FUN_0209C884 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_0209C880: .word 0x021D3498 - - arm_func_start FUN_0209C884 -FUN_0209C884: ; 0x0209C884 - stmdb sp!, {r4,lr} - mov r4, r0 - bl OS_YieldThread - ldrb r1, [r4, #0x8] - add r0, r1, #0xfd - and r0, r0, #0xff - cmp r0, #0x1 - bhi _0209C8C0 - mov r0, r4 - mov r1, #0x19 - bl FUN_0209DF70 - mov r0, #0x7 - strb r0, [r4, #0x8] - ldmia sp!, {r4,lr} - bx lr -_0209C8C0: - cmp r1, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - mov r0, r4 - mov r1, #0x1a - bl FUN_0209DF84 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_0209C8E0 -FUN_0209C8E0: ; 0x0209C8E0 - ldr r2, _0209C930 ; =0x021D3498 - ldr r2, [r2, #0x4] - ldr r3, [r2, #0xa4] - cmp r3, #0x0 - beq _0209C928 - ldrb r2, [r3, #0x8] - cmp r2, #0x4 - beq _0209C908 - cmp r2, #0xa - bne _0209C928 -_0209C908: - cmp r0, #0x0 - ldrneh r2, [r3, #0x18] - strneh r2, [r0, #0x0] - cmp r1, #0x0 - ldrne r0, [r3, #0x14] - strne r0, [r1, #0x0] - ldr r0, [r3, #0x1c] - bx lr -_0209C928: - mov r0, #0x0 - bx lr - .balign 4 -_0209C930: .word 0x021D3498 - - arm_func_start FUN_0209C934 -FUN_0209C934: ; 0x0209C934 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _0209C98C ; =0x021D3498 - ldr r0, [r0, #0x4] - ldr r0, [r0, #0xa4] - cmp r0, #0x0 - beq _0209C97C - ldrb r1, [r0, #0x9] - cmp r1, #0x0 - beq _0209C96C - bl FUN_020A0874 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_0209C96C: - bl FUN_0209C990 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_0209C97C: - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_0209C98C: .word 0x021D3498 - - arm_func_start FUN_0209C990 -FUN_0209C990: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r10, r0 - bl FUN_0209CC3C - mov r8, r0 - mov r9, #0x0 - mov r11, r9 - mov r4, #0x1 - mov r6, #0x2 - mov r5, #0x18 -_0209C9B8: - str r8, [r10, #0x28] - strb r6, [r10, #0x8] - bl OS_GetTick - mov r2, r0, lsr #0x10 - orr r2, r2, r1, lsl #0x10 - str r2, [r10, #0x10] - mov r0, r10 - mov r1, r6 - mov r2, r5 - bl FUN_0209DF98 - bl OS_DisableInterrupts - mov r7, r0 - ldr r0, _0209CA50 ; =0x021C8F04 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0209CA04 - mov r0, r11 - str r4, [r10, #0x4] - bl OS_SleepThread -_0209CA04: - mov r0, r7 - bl OS_RestoreInterrupts - ldrb r0, [r10, #0x8] - cmp r0, #0x4 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - ldr r0, _0209CA50 ; =0x021C8F04 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _0209CA40 - add r9, r9, #0x1 - cmp r9, #0x3 - blo _0209C9B8 -_0209CA40: - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_0209CA50: .word 0x021C8F04 - - arm_func_start FUN_0209CA54 -FUN_0209CA54: ; 0x0209CA54 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _0209CAA4 ; =0x021D3498 - ldr r0, [r0, #0x4] - ldr r0, [r0, #0xa4] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {lr} - bxeq lr - ldrb r1, [r0, #0x9] - cmp r1, #0x0 - beq _0209CA94 - bl FUN_020A09CC - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_0209CA94: - bl FUN_0209CAC4 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_0209CAA4: .word 0x021D3498 - - arm_func_start FUN_0209CAA8 -FUN_0209CAA8: - ldr r1, _0209CAC0 ; =0x021D3498 - ldr r1, [r1, #0x4] - ldr r1, [r1, #0xa4] - cmp r1, #0x0 - strne r0, [r1, #0x38] - bx lr - .balign 4 -_0209CAC0: .word 0x021D3498 - - arm_func_start FUN_0209CAC4 -FUN_0209CAC4: ; 0x0209CAC4 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - bl FUN_0209CC3C - str r0, [r5, #0x28] - mov r0, #0x1 - strb r0, [r5, #0x8] - bl OS_DisableInterrupts - mov r4, r0 - mov r1, #0x1 - mov r0, #0x0 - str r1, [r5, #0x4] - bl OS_SleepThread - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_0209CB0C -FUN_0209CB0C: ; 0x0209CB0C - ldr r1, _0209CB20 ; =0x021D3498 - ldr r1, [r1, #0x4] - ldr r1, [r1, #0xa4] - str r1, [r0, #0xa4] - bx lr - .balign 4 -_0209CB20: .word 0x021D3498 - - arm_func_start FUN_0209CB24 -FUN_0209CB24: ; 0x0209CB24 - ldr r0, _0209CB40 ; =0x021D3498 - ldr r0, [r0, #0x4] - ldr r1, [r0, #0xa4] - cmp r1, #0x0 - movne r0, #0x0 - strne r0, [r1, #0x0] - bx lr - .balign 4 -_0209CB40: .word 0x021D3498 - - arm_func_start FUN_0209CB44 -FUN_0209CB44: ; 0x0209CB44 - ldr r0, _0209CB74 ; =0x021D3498 - ldr r0, [r0, #0x4] - ldr r1, [r0, #0xa4] - cmp r1, #0x0 - bxeq lr - str r0, [r1, #0x0] - mov r0, #0x0 - strb r0, [r1, #0x8] - str r0, [r1, #0x44] - str r0, [r1, #0x60] - str r0, [r1, #0x38] - bx lr - .balign 4 -_0209CB74: .word 0x021D3498 - - arm_func_start FUN_0209CB78 -FUN_0209CB78: ; 0x0209CB78 - stmdb sp!, {r4,lr} - ldr r3, _0209CBDC ; =0x021D3498 - ldr r3, [r3, #0x4] - ldr r4, [r3, #0xa4] - cmp r4, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r3, _0209CBE0 ; =0x7F000001 - cmp r2, r3 - ldreq r2, _0209CBE4 ; =0x021C8F04 - ldreq r2, [r2, #0x0] - cmp r0, #0x0 - strh r1, [r4, #0x1a] - ldrh r1, [r4, #0x1a] - strh r1, [r4, #0x18] - str r2, [r4, #0x20] - ldr r1, [r4, #0x20] - str r1, [r4, #0x1c] - strneh r0, [r4, #0xa] - ldmneia sp!, {r4,lr} - bxne lr - bl FUN_0209CC8C - strh r0, [r4, #0xa] - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_0209CBDC: .word 0x021D3498 -_0209CBE0: .word 0x7F000001 -_0209CBE4: .word 0x021C8F04 - - arm_func_start FUN_0209CBE8 -FUN_0209CBE8: ; 0x0209CBE8 - ldr r0, _0209CC0C ; =0x021D3498 - ldr r0, [r0, #0x4] - ldr r1, [r0, #0xa4] - cmp r1, #0x0 - movne r0, #0xa - strneb r0, [r1, #0x8] - movne r0, #0x0 - strne r0, [r1, #0x44] - bx lr - .balign 4 -_0209CC0C: .word 0x021D3498 - - arm_func_start FUN_0209CC10 -FUN_0209CC10: ; 0x0209CC10 - ldr r0, _0209CC24 ; =0x021D3498 - mov r1, #0x0 - ldr r0, [r0, #0x4] - str r1, [r0, #0xa4] - bx lr - .balign 4 -_0209CC24: .word 0x021D3498 - - arm_func_start FUN_0209CC28 -FUN_0209CC28: ; 0x0209CC28 - ldr r1, _0209CC38 ; =0x021D3498 - ldr r1, [r1, #0x4] - str r0, [r1, #0xa4] - bx lr - .balign 4 -_0209CC38: .word 0x021D3498 - - arm_func_start FUN_0209CC3C -FUN_0209CC3C: ; 0x0209CC3C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _0209CC88 ; =0x021C8F24 - ldr r3, [r1, #0x8] - ldr r2, [r1, #0x0] - ldr r0, [r1, #0x4] - umull lr, r12, r3, r2 - mla r12, r3, r0, r12 - ldr r0, [r1, #0xc] - ldr r3, [r1, #0x10] - mla r12, r0, r2, r12 - adds r2, r3, lr - ldr r0, [r1, #0x14] - str r2, [r1, #0x0] - adc r0, r0, r12 - str r0, [r1, #0x4] - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_0209CC88: .word 0x021C8F24 - - arm_func_start FUN_0209CC8C -FUN_0209CC8C: ; 0x0209CC8C - stmdb sp!, {r4-r8,lr} - ldr r0, _0209CD30 ; =0x021D3498 - ldr r6, [r0, #0x8] - ldr r2, _0209CD34 ; =0x021C8EBC - mov r4, #0x400 - mov r3, #0x1 - mov r5, #0x0 - ldr r1, _0209CD38 ; =0x00001388 -_0209CCAC: - ldrh r12, [r2, #0x0] - mov r0, r5 - add r12, r12, #0x1 - strh r12, [r2, #0x0] - ldrh r12, [r2, #0x0] - cmp r12, #0x400 - blo _0209CCD0 - cmp r12, r1 - blo _0209CCD4 -_0209CCD0: - strh r4, [r2, #0x0] -_0209CCD4: - mov r8, r6 - cmp r6, #0x0 - beq _0209CD18 - ldrh r7, [r2, #0x0] -_0209CCE4: - ldr lr, [r8, #0xa4] - cmp lr, #0x0 - beq _0209CD0C - ldr r12, [lr, #0x0] - cmp r12, #0x0 - beq _0209CD0C - ldrh r12, [lr, #0xa] - cmp r12, r7 - moveq r0, r3 - beq _0209CD18 -_0209CD0C: - ldr r8, [r8, #0x68] - cmp r8, #0x0 - bne _0209CCE4 -_0209CD18: - cmp r0, #0x0 - bne _0209CCAC - ldr r0, _0209CD34 ; =0x021C8EBC - ldrh r0, [r0, #0x0] - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_0209CD30: .word 0x021D3498 -_0209CD34: .word 0x021C8EBC -_0209CD38: .word 0x00001388 - - arm_func_start FUN_0209CD3C -FUN_0209CD3C: ; 0x0209CD3C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r5, _0209CDAC ; =0x00000806 - add r4, sp, #0x0 -_0209CD4C: - mov r0, r4 - bl FUN_0209F57C - ldr r3, [sp, #0x0] - cmp r3, #0x22 - bls _0209CDA4 - ldrh r2, [r0, #0xc] - mov r1, r2, asr #0x8 - orr r1, r1, r2, lsl #0x8 - mov r1, r1, lsl #0x10 - mov r1, r1, lsr #0x10 - cmp r1, #0x800 - beq _0209CD88 - cmp r1, r5 - beq _0209CD98 - b _0209CDA4 -_0209CD88: - add r0, r0, #0xe - sub r1, r3, #0xe - bl FUN_0209CDB0 - b _0209CDA4 -_0209CD98: - add r0, r0, #0xe - sub r1, r3, #0xe - bl FUN_0209E614 -_0209CDA4: - bl FUN_0209F51C - b _0209CD4C - .balign 4 -_0209CDAC: .word 0x00000806 - - arm_func_start FUN_0209CDB0 -FUN_0209CDB0: ; 0x0209CDB0 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - mov r4, r0 - ldrh r12, [r4, #0xc] - ldrh r6, [r4, #0x10] - ldrh r2, [r4, #0xe] - ldrh r0, [r4, #0x12] - mov r5, r6, asr #0x8 - mov r3, r12, asr #0x8 - orr r5, r5, r6, lsl #0x8 - orr r12, r3, r12, lsl #0x8 - mov r3, r5, lsl #0x10 - mov r5, r0, asr #0x8 - mov r12, r12, lsl #0x10 - mov lr, r2, asr #0x8 - mov r6, r3, lsr #0x10 - orr r0, r5, r0, lsl #0x8 - mov r3, r12, lsr #0x10 - orr r2, lr, r2, lsl #0x8 - mov r5, r6, lsl #0x10 - mov r0, r0, lsl #0x10 - mov r3, r3, lsl #0x10 - mov r2, r2, lsl #0x10 - orr r0, r5, r0, lsr #0x10 - orr r2, r3, r2, lsr #0x10 - mov r5, r1 - cmp r0, r2 - beq _0209CEF0 - bl FUN_0209F9CC -_0209CE24: ; 0x0209CE24 - cmp r0, #0x0 - addeq sp, sp, #0x8 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldrh r1, [r4, #0x2] - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - mov r0, r0, lsl #0x10 - cmp r5, r0, lsr #0x10 - addcc sp, sp, #0x8 - ldmccia sp!, {r4-r6,lr} - bxcc lr - ldrb r1, [r4, #0x0] - mov r0, r4 - and r1, r1, #0xf - mov r1, r1, lsl #0x2 - bl FUN_0209FB84 - ldr r1, _0209CFA0 ; =0x0000FFFF - cmp r0, r1 - addne sp, sp, #0x8 - ldmneia sp!, {r4-r6,lr} - bxne lr - ldrh r2, [r4, #0x10] - ldrh r12, [r4, #0x12] - ldr r1, _0209CFA4 ; =0x021C8F04 - mov r0, r2, asr #0x8 - orr r0, r0, r2, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r2, r12, asr #0x8 - mov r3, r0, lsr #0x10 - orr r0, r2, r12, lsl #0x8 - mov r2, r3, lsl #0x10 - mov r0, r0, lsl #0x10 - ldr r1, [r1, #0x0] - orr r0, r2, r0, lsr #0x10 - cmp r1, r0 - bne _0209CEF0 - ldrh r2, [r4, #0xc] - ldrh r12, [r4, #0xe] - sub r0, r4, #0x8 - mov r1, r2, asr #0x8 - orr r1, r1, r2, lsl #0x8 - mov r1, r1, lsl #0x10 - mov r2, r12, asr #0x8 - mov r3, r1, lsr #0x10 - orr r1, r2, r12, lsl #0x8 - mov r2, r3, lsl #0x10 - mov r1, r1, lsl #0x10 - orr r1, r2, r1, lsr #0x10 - mov r2, #0x1 - bl FUN_0209F12C -_0209CEF0: - add r1, sp, #0x0 - mov r0, r4 - bl FUN_0209CFAC - movs r4, r0 - addeq sp, sp, #0x8 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldrh r2, [r4, #0x2] - ldrb r3, [r4, #0x0] - ldrb r12, [r4, #0x9] - mov r1, r2, asr #0x8 - orr r1, r1, r2, lsl #0x8 - mov r1, r1, lsl #0x10 - and r3, r3, #0xf - mov r2, r1, lsr #0x10 - cmp r12, #0x11 - add r1, r4, r3, lsl #0x2 - sub r2, r2, r3, lsl #0x2 - bne _0209CF44 - bl FUN_0209D2BC - b _0209CF70 -_0209CF44: - ldr r3, _0209CFA4 ; =0x021C8F04 - ldr r3, [r3, #0x0] - cmp r3, #0x0 - beq _0209CF70 - cmp r12, #0x1 - bne _0209CF64 - bl FUN_0209E2E0 - b _0209CF70 -_0209CF64: - cmp r12, #0x6 - bne _0209CF70 - bl FUN_0209D4D8 -_0209CF70: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x8 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldr r1, _0209CFA8 ; =0x021C8EF4 - sub r0, r4, #0xe - ldr r1, [r1, #0x0] - blx r1 - add sp, sp, #0x8 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_0209CFA0: .word 0x0000FFFF -_0209CFA4: .word 0x021C8F04 -_0209CFA8: .word 0x021C8EF4 - - arm_func_start FUN_0209CFAC -FUN_0209CFAC: ; 0x0209CFAC - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x14 - mov r6, #0x0 - mov r10, r0 - str r6, [r1, #0x0] - ldrh r3, [r10, #0x6] - str r1, [sp, #0x0] - ldr r2, _0209D2A4 ; =0x00003FFF - mov r1, r3, asr #0x8 - orr r1, r1, r3, lsl #0x8 - mov r1, r1, lsl #0x10 - mov r1, r1, lsr #0x10 - str r1, [sp, #0x4] - ands r1, r1, r2 - addeq sp, sp, #0x14 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - ldrh r1, [r10, #0xc] - ldrh r3, [r10, #0xe] - ldrb r4, [r10, #0x0] - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r1, r3, asr #0x8 - mov r2, r0, lsr #0x10 - orr r0, r1, r3, lsl #0x8 - and r3, r4, #0xf - ldrh r9, [r10, #0x4] - mov r2, r2, lsl #0x10 - mov r1, r0, lsl #0x10 - ldr r5, _0209D2A8 ; =0x021C9520 - mov r0, r6 - mov r7, r3, lsl #0x2 - orr r4, r2, r1, lsr #0x10 -_0209D034: - ldrh r2, [r5, #0x4] - cmp r2, #0x0 - beq _0209D058 - ldr r1, [r5, #0x0] - cmp r1, r4 - bne _0209D058 - ldrh r1, [r5, #0x6] - cmp r1, r9 - beq _0209D078 -_0209D058: - cmp r2, #0x0 - bne _0209D068 - cmp r6, #0x0 - moveq r6, r5 -_0209D068: - add r0, r0, #0x1 - cmp r0, #0x8 - add r5, r5, #0x38 - blo _0209D034 -_0209D078: - ldrh r2, [r10, #0x2] - cmp r0, #0x8 - ldr r1, _0209D2AC ; =0x00001FFF - mov r0, r2, asr #0x8 - orr r0, r0, r2, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r2, r0, lsr #0x10 - ldr r0, [sp, #0x4] - and r8, r0, r1 - sub r0, r2, r7 - str r0, [sp, #0x8] - mov r0, r8, lsl #0x3 - str r0, [sp, #0xc] - ldr r0, [sp, #0x8] - add r11, r0, r8, lsl #0x3 - bne _0209D150 - cmp r6, #0x0 - beq _0209D0C8 - cmp r11, #0x1000 - bls _0209D0D8 -_0209D0C8: - add sp, sp, #0x14 - mov r0, #0x0 - ldmia sp!, {r4-r11,lr} - bx lr -_0209D0D8: - ldr r1, _0209D2B0 ; =0x021C8EC8 - ldr r0, _0209D2B4 ; =0x0000100E - ldr r1, [r1, #0x0] - add r0, r7, r0 - mov r5, r6 - blx r1 - str r0, [r6, #0x34] - ldr r0, [r6, #0x34] - cmp r0, #0x0 - addeq sp, sp, #0x14 - moveq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - str r4, [r6, #0x0] - strh r9, [r6, #0x6] - mov r0, #0x0 - strh r0, [r6, #0x8] - bl OS_GetTick - mov r0, r0, lsr #0x10 - orr r0, r0, r1, lsl #0x10 - str r0, [r6, #0x2c] - ldr r1, [r6, #0x34] - mov r0, r10 - add r1, r1, #0xe - add r1, r1, r7 - str r1, [r6, #0x30] - ldr r1, [r6, #0x34] - mov r2, r7 - add r1, r1, #0xe - bl MI_CpuCopy8 -_0209D150: - ldrh r0, [r5, #0x4] - cmp r0, #0x8 - beq _0209D164 - cmp r11, #0x1000 - bls _0209D18C -_0209D164: - mov r0, #0x0 - strh r0, [r5, #0x4] - ldr r1, _0209D2B8 ; =0x021C8EF4 - ldr r0, [r5, #0x34] - ldr r1, [r1, #0x0] - blx r1 - add sp, sp, #0x14 - mov r0, #0x0 - ldmia sp!, {r4-r11,lr} - bx lr -_0209D18C: - ldr r0, [sp, #0x8] - ldr r2, [sp, #0x8] - add r0, r0, #0x7 - add r1, r8, r0, lsr #0x3 - ldr r0, [sp, #0x4] - ands r0, r0, #0x2000 - streqh r11, [r5, #0xa] - streqh r1, [r5, #0x8] - ldrh r3, [r5, #0x4] - add r0, r10, r7 - add r3, r5, r3, lsl #0x1 - strh r8, [r3, #0xc] - ldrh r3, [r5, #0x4] - add r3, r5, r3, lsl #0x1 - strh r1, [r3, #0x1c] - ldrh r1, [r5, #0x4] - add r1, r1, #0x1 - strh r1, [r5, #0x4] - ldr r3, [r5, #0x30] - ldr r1, [sp, #0xc] - add r1, r3, r1 - bl MI_CpuCopy8 - ldrh r6, [r5, #0x8] - cmp r6, #0x0 - addeq sp, sp, #0x14 - moveq r0, #0x0 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - ldrh r7, [r5, #0x4] - mov r3, #0x0 - mov r4, r3 - cmp r7, #0x0 - bls _0209D244 - mov r0, r3 -_0209D214: - add r2, r5, r4, lsl #0x1 - ldrh r1, [r2, #0xc] - cmp r1, r3 - bhi _0209D238 - ldrh r1, [r2, #0x1c] - cmp r3, r1 - movcc r3, r1 - movcc r4, r0 - blo _0209D23C -_0209D238: - add r4, r4, #0x1 -_0209D23C: - cmp r4, r7 - blo _0209D214 -_0209D244: - cmp r3, r6 - addcc sp, sp, #0x14 - movcc r0, #0x0 - ldmccia sp!, {r4-r11,lr} - bxcc lr - ldr r0, [r5, #0x34] - ldrh r3, [r5, #0xa] - ldrb r1, [r0, #0xe] - add r0, r0, #0xe - mov r2, #0x0 - and r1, r1, #0xf - add r1, r3, r1, lsl #0x2 - mov r1, r1, lsl #0x10 - mov r3, r1, lsr #0x10 - mov r1, r3, asr #0x8 - orr r1, r1, r3, lsl #0x8 - strh r1, [r0, #0x2] - strh r2, [r5, #0x4] - ldr r1, [sp, #0x0] - mov r2, #0x1 - str r2, [r1, #0x0] - add sp, sp, #0x14 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_0209D2A4: .word 0x00003FFF -_0209D2A8: .word 0x021C9520 -_0209D2AC: .word 0x00001FFF -_0209D2B0: .word 0x021C8EC8 -_0209D2B4: .word 0x0000100E -_0209D2B8: .word 0x021C8EF4 - - arm_func_start FUN_0209D2BC -FUN_0209D2BC: ; 0x0209D2BC - stmdb sp!, {r4-r8,lr} - mov r6, r1 - ldrh r1, [r6, #0x6] - mov r7, r0 - mov r5, r2 - cmp r1, #0x0 - beq _0209D2F8 - mov r0, r6 - mov r1, r5 - mov r2, r7 - mov r3, #0x11 - bl FUN_0209FB28 -_0209D2EC: ; 0x0209D2EC - cmp r0, #0x0 - ldmneia sp!, {r4-r8,lr} - bxne lr -_0209D2F8: - bl OS_DisableInterrupts - ldr r1, _0209D4D4 ; =0x021D3498 - mov r8, r0 - ldr r2, [r1, #0x8] - cmp r2, #0x0 - beq _0209D4C4 - mvn r12, #0x0 -_0209D314: - ldr r4, [r2, #0xa4] - cmp r4, #0x0 - beq _0209D4B8 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _0209D4B8 - ldrb r0, [r4, #0x8] - cmp r0, #0xa - bne _0209D4B8 - ldrh r3, [r6, #0x2] - ldrh r1, [r4, #0xa] - mov r0, r3, asr #0x8 - orr r0, r0, r3, lsl #0x8 - mov r0, r0, lsl #0x10 - cmp r1, r0, lsr #0x10 - bne _0209D4B8 - ldrh r3, [r4, #0x18] - cmp r3, #0x0 - beq _0209D378 - ldrh r1, [r6, #0x0] - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - mov r0, r0, lsl #0x10 - cmp r3, r0, lsr #0x10 - bne _0209D4B8 -_0209D378: - ldr r1, [r4, #0x1c] - cmp r1, #0x0 - beq _0209D3C0 - cmp r1, r12 - beq _0209D3C0 - ldrh lr, [r7, #0xc] - ldrh r0, [r7, #0xe] - mov r3, lr, asr #0x8 - orr r3, r3, lr, lsl #0x8 - mov r3, r3, lsl #0x10 - mov lr, r0, asr #0x8 - mov r3, r3, lsr #0x10 - orr r0, lr, r0, lsl #0x8 - mov r3, r3, lsl #0x10 - mov r0, r0, lsl #0x10 - orr r0, r3, r0, lsr #0x10 - cmp r1, r0 - bne _0209D4B8 -_0209D3C0: - ldrh r1, [r7, #0x10] - ldrh r3, [r7, #0x12] - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r1, r3, asr #0x8 - mov r2, r0, lsr #0x10 - orr r0, r1, r3, lsl #0x8 - mov r1, r2, lsl #0x10 - mov r0, r0, lsl #0x10 - orr r0, r1, r0, lsr #0x10 - str r0, [r4, #0x14] - ldr r0, [r4, #0x1c] - cmp r0, #0x0 - bne _0209D43C - ldrh r1, [r7, #0xc] - ldrh r3, [r7, #0xe] - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r1, r3, asr #0x8 - mov r2, r0, lsr #0x10 - orr r0, r1, r3, lsl #0x8 - mov r1, r2, lsl #0x10 - mov r0, r0, lsl #0x10 - orr r0, r1, r0, lsr #0x10 - str r0, [r4, #0x1c] - ldrh r1, [r6, #0x0] - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - strh r0, [r4, #0x18] -_0209D43C: - ldr r0, [r4, #0x44] - cmp r0, #0x0 - bne _0209D4C4 - ldr r1, [r4, #0x3c] - sub r0, r5, #0x8 - cmp r0, r1 - strhi r1, [r4, #0x44] - strls r0, [r4, #0x44] - ldr r1, [r4, #0x40] - ldr r2, [r4, #0x44] - add r0, r6, #0x8 - bl MI_CpuCopy8 - ldr r0, [r4, #0x4] - cmp r0, #0x3 - bne _0209D48C - mov r0, #0x0 - str r0, [r4, #0x4] - ldr r0, [r4, #0x0] - bl OS_WakeupThreadDirect - b _0209D4C4 -_0209D48C: - ldr r3, [r4, #0x38] - cmp r3, #0x0 - beq _0209D4C4 - ldr r0, [r4, #0x40] - ldr r1, [r4, #0x44] - mov r2, r4 - blx r3 - cmp r0, #0x0 - movne r0, #0x0 - strne r0, [r4, #0x44] - b _0209D4C4 -_0209D4B8: - ldr r2, [r2, #0x68] - cmp r2, #0x0 - bne _0209D314 -_0209D4C4: - mov r0, r8 - bl OS_RestoreInterrupts - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_0209D4D4: .word 0x021D3498 - - arm_func_start FUN_0209D4D8 -FUN_0209D4D8: - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - mov r0, r5 - mov r1, r4 - mov r2, r6 - mov r3, #0x6 - bl FUN_0209FB28 -_0209D4FC: ; 0x0209D4FC - cmp r0, #0x0 - ldmneia sp!, {r4-r6,lr} - bxne lr - ldrb r0, [r5, #0xc] - ldrb r2, [r5, #0xd] - and r1, r0, #0xf0 - mov r0, r1, asr #0x1 - add r0, r1, r0, lsr #0x1e - and r1, r2, #0x17 - cmp r1, #0x10 - sub r4, r4, r0, asr #0x2 - bgt _0209D558 - cmp r1, #0x10 - bge _0209D5C4 - cmp r1, #0x2 - bgt _0209D5F4 - cmp r1, #0x1 - blt _0209D5F4 - cmp r1, #0x1 - beq _0209D5DC - cmp r1, #0x2 - beq _0209D57C - b _0209D5F4 -_0209D558: - cmp r1, #0x12 - bgt _0209D5F4 - cmp r1, #0x11 - blt _0209D5F4 - cmp r1, #0x11 - beq _0209D5C4 - cmp r1, #0x12 - beq _0209D5A0 - b _0209D5F4 -_0209D57C: - ands r0, r2, #0x28 - ldmneia sp!, {r4-r6,lr} - bxne lr - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_0209DBB0 - ldmia sp!, {r4-r6,lr} - bx lr -_0209D5A0: - ands r0, r2, #0x28 - ldmneia sp!, {r4-r6,lr} - bxne lr - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_0209DA9C - ldmia sp!, {r4-r6,lr} - bx lr -_0209D5C4: - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_0209D774 - ldmia sp!, {r4-r6,lr} - bx lr -_0209D5DC: - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_0209D674 - ldmia sp!, {r4-r6,lr} - bx lr -_0209D5F4: - ands r0, r2, #0x4 - beq _0209D610 - mov r0, r6 - mov r1, r5 - bl FUN_0209D62C - ldmia sp!, {r4-r6,lr} - bx lr -_0209D610: - mov r0, r6 - mov r1, r5 - mov r2, r4 - mov r3, #0x0 - bl FUN_0209DE34 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_0209D62C -FUN_0209D62C: ; 0x0209D62C - stmdb sp!, {r4,lr} - bl FUN_0209E0C8 - movs r4, r0 - ldmeqia sp!, {r4,lr} - bxeq lr - bl OS_YieldThread - mov r1, #0x0 - strb r1, [r4, #0x8] - ldr r0, [r4, #0x4] - sub r0, r0, #0x1 - cmp r0, #0x1 - ldmhiia sp!, {r4,lr} - bxhi lr - str r1, [r4, #0x4] - ldr r0, [r4, #0x0] - bl OS_WakeupThreadDirect - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_0209D674 -FUN_0209D674: ; 0x0209D674 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - mov r6, r1 - mov r5, r2 - bl FUN_0209E0C8 - movs r4, r0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - ldrb r1, [r4, #0x8] - cmp r1, #0x4 - beq _0209D72C - cmp r1, #0x7 - beq _0209D6BC - cmp r1, #0x8 - beq _0209D6E4 - b _0209D754 -_0209D6BC: - ldr r2, [r4, #0x24] - mov r1, #0x0 - add r2, r2, #0x1 - str r2, [r4, #0x24] - bl FUN_0209DF84 - mov r0, #0x9 - add sp, sp, #0x4 - strb r0, [r4, #0x8] - ldmia sp!, {r4-r7,lr} - bx lr -_0209D6E4: - ldr r2, [r4, #0x24] - mov r1, #0x0 - add r2, r2, #0x1 - str r2, [r4, #0x24] - bl FUN_0209DF84 - mov r1, #0x0 - strb r1, [r4, #0x8] - ldr r0, [r4, #0x4] - cmp r0, #0x2 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr - str r1, [r4, #0x4] - ldr r0, [r4, #0x0] - bl OS_WakeupThreadDirect - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr -_0209D72C: - ldr r2, [r4, #0x24] - mov r1, #0x0 - add r2, r2, #0x1 - str r2, [r4, #0x24] - bl FUN_0209DF70 - mov r0, #0x6 - add sp, sp, #0x4 - strb r0, [r4, #0x8] - ldmia sp!, {r4-r7,lr} - bx lr -_0209D754: - mov r0, r7 - mov r1, r6 - mov r2, r5 - mov r3, #0x0 - bl FUN_0209DE34 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_0209D774 -FUN_0209D774: ; 0x0209D774 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r8, r0 - mov r7, r1 - mov r6, r2 - bl FUN_0209E0C8 - movs r5, r0 - bne _0209D7B4 - mov r0, r8 - mov r1, r7 - mov r2, r6 - mov r3, #0x0 - bl FUN_0209DE34 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr -_0209D7B4: - ldrh r3, [r7, #0x8] - ldrh r1, [r7, #0xa] - ldrb r4, [r7, #0xd] - mov r2, r3, asr #0x8 - orr r2, r2, r3, lsl #0x8 - mov r2, r2, lsl #0x10 - mov r3, r1, asr #0x8 - mov r2, r2, lsr #0x10 - orr r1, r3, r1, lsl #0x8 - mov r2, r2, lsl #0x10 - mov r1, r1, lsl #0x10 - orr r1, r2, r1, lsr #0x10 - str r1, [r5, #0x30] - ldrh r9, [r7, #0x4] - ldrh r1, [r7, #0x6] - ldrb r3, [r5, #0x8] - mov r2, r9, asr #0x8 - orr r2, r2, r9, lsl #0x8 - mov r2, r2, lsl #0x10 - mov r9, r1, asr #0x8 - mov r2, r2, lsr #0x10 - orr r1, r9, r1, lsl #0x8 - mov r2, r2, lsl #0x10 - mov r1, r1, lsl #0x10 - cmp r3, #0x4 - orr r2, r2, r1, lsr #0x10 - bne _0209D840 - ldr r1, [r5, #0x24] - cmp r1, r2 - beq _0209D840 - mov r1, #0x0 - bl FUN_0209DF84 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr -_0209D840: - ldrh r1, [r7, #0xe] - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - strh r0, [r5, #0x2c] - ldrb r0, [r5, #0x8] - cmp r0, #0x9 - addls pc, pc, r0, lsl #0x2 - b _0209DA70 -_0209D860: - b _0209D888 -_0209D864: - b _0209DA70 -_0209D868: - b _0209D888 -_0209D86C: - b _0209D8A0 -_0209D870: - b _0209D8CC -_0209D874: - b _0209DA70 -_0209D878: - b _0209DA4C -_0209D87C: - b _0209D9D8 -_0209D880: - b _0209D9D8 -_0209D884: - b _0209DA4C -_0209D888: - mov r0, r8 - mov r1, r7 - mov r2, r6 - mov r3, #0x0 - bl FUN_0209DE34 - b _0209DA8C -_0209D8A0: - mov r0, #0x4 - strb r0, [r5, #0x8] - ldr r0, [r5, #0x4] - cmp r0, #0x1 - bne _0209D8C4 - mov r0, #0x0 - str r0, [r5, #0x4] - ldr r0, [r5, #0x0] - bl OS_WakeupThreadDirect -_0209D8C4: - cmp r6, #0x0 - beq _0209DA8C -_0209D8CC: - ldr r0, [r5, #0x34] - add r0, r0, #0x1 - str r0, [r5, #0x34] - ldr r1, [r5, #0x3c] - ldr r0, [r5, #0x44] - sub r0, r1, r0 - cmp r6, r0 - movhi r9, #0x0 - movhi r6, r0 - movls r9, #0x1 - cmp r6, #0x0 - beq _0209D968 - bl OS_DisableInterrupts - ldrb r1, [r7, #0xc] - ldr r12, [r5, #0x40] - ldr r3, [r5, #0x44] - and r2, r1, #0xf0 - mov r1, r2, asr #0x1 - add r1, r2, r1, lsr #0x1e - mov r8, r0 - mov r2, r6 - add r0, r7, r1, asr #0x2 - add r1, r12, r3 - bl MI_CpuCopy8 - ldr r1, [r5, #0x44] - mov r0, r8 - add r1, r1, r6 - str r1, [r5, #0x44] - ldr r1, [r5, #0x24] - add r1, r1, r6 - str r1, [r5, #0x24] - bl OS_RestoreInterrupts - ldr r0, [r5, #0x4] - cmp r0, #0x2 - bne _0209D968 - mov r0, #0x0 - str r0, [r5, #0x4] - ldr r0, [r5, #0x0] - bl OS_WakeupThreadDirect -_0209D968: - cmp r9, #0x0 - beq _0209D9C0 - ands r0, r4, #0x1 - beq _0209D9C0 - mov r0, #0x6 - strb r0, [r5, #0x8] - ldr r1, [r5, #0x24] - mov r0, r5 - add r2, r1, #0x1 - mov r1, #0x0 - str r2, [r5, #0x24] - bl FUN_0209DF70 -_0209D998: ; 0x0209D998 - cmp r6, #0x0 - bne _0209DA8C - ldr r0, [r5, #0x4] - cmp r0, #0x2 - bne _0209DA8C - mov r0, #0x0 - str r0, [r5, #0x4] - ldr r0, [r5, #0x0] - bl OS_WakeupThreadDirect - b _0209DA8C -_0209D9C0: - cmp r6, #0x0 - beq _0209DA8C - mov r0, r5 - mov r1, #0x0 - bl FUN_0209DF84 - b _0209DA8C -_0209D9D8: - ands r0, r4, #0x1 - beq _0209DA20 - ldr r1, [r5, #0x24] - add r0, r6, #0x1 - add r2, r1, r0 - mov r0, r5 - mov r1, #0x0 - str r2, [r5, #0x24] - bl FUN_0209DF84 - mov r1, #0x0 - strb r1, [r5, #0x8] - ldr r0, [r5, #0x4] - cmp r0, #0x2 - bne _0209DA8C - str r1, [r5, #0x4] - ldr r0, [r5, #0x0] - bl OS_WakeupThreadDirect - b _0209DA8C -_0209DA20: - cmp r6, #0x0 - beq _0209DA40 - ldr r1, [r5, #0x24] - mov r0, r5 - add r2, r1, r6 - mov r1, #0x0 - str r2, [r5, #0x24] - bl FUN_0209DF84 -_0209DA40: - mov r0, #0x8 - strb r0, [r5, #0x8] - b _0209DA8C -_0209DA4C: - mov r1, #0x0 - strb r1, [r5, #0x8] - ldr r0, [r5, #0x4] - cmp r0, #0x2 - bne _0209DA8C - str r1, [r5, #0x4] - ldr r0, [r5, #0x0] - bl OS_WakeupThreadDirect - b _0209DA8C -_0209DA70: - ands r0, r4, #0x1 - ldrne r0, [r5, #0x24] - mov r1, #0x0 - addne r0, r0, #0x1 - strne r0, [r5, #0x24] - mov r0, r5 - bl FUN_0209DF84 -_0209DA8C: - bl OS_YieldThread - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start FUN_0209DA9C -FUN_0209DA9C: ; 0x0209DA9C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - mov r5, r1 - mov r6, r2 - bl FUN_0209E0C8 - movs r4, r0 - beq _0209DAC8 - ldrb r0, [r4, #0x8] - cmp r0, #0x2 - beq _0209DAE8 -_0209DAC8: - mov r0, r7 - mov r1, r5 - mov r2, r6 - mov r3, #0x0 - bl FUN_0209DE34 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr -_0209DAE8: - bl OS_YieldThread - ldrh r2, [r5, #0x4] - ldrh r12, [r5, #0x6] - mov r0, r5 - mov r1, r2, asr #0x8 - orr r1, r1, r2, lsl #0x8 - mov r1, r1, lsl #0x10 - mov r2, r12, asr #0x8 - mov r3, r1, lsr #0x10 - orr r1, r2, r12, lsl #0x8 - mov r2, r3, lsl #0x10 - mov r1, r1, lsl #0x10 - orr r1, r2, r1, lsr #0x10 - add r1, r1, #0x1 - str r1, [r4, #0x24] - ldrh r3, [r5, #0x8] - ldrh lr, [r5, #0xa] - mov r1, r4 - mov r2, r3, asr #0x8 - orr r2, r2, r3, lsl #0x8 - mov r2, r2, lsl #0x10 - mov r3, lr, asr #0x8 - mov r12, r2, lsr #0x10 - orr r2, r3, lr, lsl #0x8 - mov r3, r12, lsl #0x10 - mov r2, r2, lsl #0x10 - orr r2, r3, r2, lsr #0x10 - str r2, [r4, #0x30] - ldrh r3, [r5, #0xe] - mov r2, r3, asr #0x8 - orr r2, r2, r3, lsl #0x8 - strh r2, [r4, #0x2c] - bl FUN_0209E044 - mov r0, r4 - mov r1, #0x0 - bl FUN_0209DF84 - mov r0, #0x4 - strb r0, [r4, #0x8] - ldr r0, [r4, #0x4] - cmp r0, #0x1 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr - mov r0, #0x0 - str r0, [r4, #0x4] - ldr r0, [r4, #0x0] - bl OS_WakeupThreadDirect - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_0209DBB0 -FUN_0209DBB0: ; 0x0209DBB0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r4, r0 - ldrh r12, [r4, #0x10] - ldrh r7, [r4, #0xc] - ldrh r3, [r4, #0x12] - mov r5, r12, asr #0x8 - mov r6, r7, asr #0x8 - orr r5, r5, r12, lsl #0x8 - orr r6, r6, r7, lsl #0x8 - mov r12, r6, lsl #0x10 - ldrh r0, [r4, #0xe] - mov lr, r5, lsl #0x10 - mov r5, r3, asr #0x8 - mov r6, r0, asr #0x8 - mov r7, r12, lsr #0x10 - orr r0, r6, r0, lsl #0x8 - orr r3, r5, r3, lsl #0x8 - mov r12, lr, lsr #0x10 - mov r6, r7, lsl #0x10 - mov r0, r0, lsl #0x10 - mov r5, r12, lsl #0x10 - mov r3, r3, lsl #0x10 - mov r7, r1 - orr r1, r5, r3, lsr #0x10 - orr r0, r6, r0, lsr #0x10 - mov r5, r2 - bl FUN_0209E3DC -_0209DC20: ; 0x0209DC20 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - mov r0, r4 - mov r1, r7 - mov r2, r5 - bl FUN_0209DCB4 -_0209DC40: ; 0x0209DC40 - cmp r0, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr - mov r0, r4 - mov r1, r7 - bl FUN_0209E200 - movs r2, r0 - beq _0209DC7C - mov r0, r4 - mov r1, r7 - bl FUN_0209DD44 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr -_0209DC7C: - bl OS_YieldThread - mov r0, r4 - mov r1, r7 - bl FUN_0209E200 - movs r2, r0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - mov r0, r4 - mov r1, r7 - bl FUN_0209DD44 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_0209DCB4 -FUN_0209DCB4: - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - bl FUN_0209E0C8 - movs r2, r0 - beq _0209DD38 - ldrb r0, [r2, #0x8] - cmp r0, #0x1 - bne _0209DCEC - mov r0, r6 - mov r1, r5 - bl FUN_0209DD44 - b _0209DD2C -_0209DCEC: - add r0, r0, #0xfd - and r0, r0, #0xff - cmp r0, #0x1 - bhi _0209DD18 - ldr r1, [r2, #0x28] - mov r0, r6 - sub r3, r1, #0x1 - mov r1, r5 - str r3, [r2, #0x28] - bl FUN_0209DD44 - b _0209DD2C -_0209DD18: - mov r0, r6 - mov r1, r5 - mov r2, r4 - mov r3, #0x0 - bl FUN_0209DE34 -_0209DD2C: - mov r0, #0x1 - ldmia sp!, {r4-r6,lr} - bx lr -_0209DD38: - mov r0, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_0209DD44 -FUN_0209DD44: ; 0x0209DD44 - stmdb sp!, {r4-r6,lr} - mov r4, r2 - mov r2, #0x3 - mov r6, r0 - mov r5, r1 - strb r2, [r4, #0x8] - bl OS_GetTick - mov r0, r0, lsr #0x10 - orr r0, r0, r1, lsl #0x10 - str r0, [r4, #0x10] - ldrh r2, [r6, #0x10] - ldrh r3, [r6, #0x12] - mov r0, r5 - mov r1, r2, asr #0x8 - orr r1, r1, r2, lsl #0x8 - mov r1, r1, lsl #0x10 - mov r2, r3, asr #0x8 - orr r2, r2, r3, lsl #0x8 - mov r1, r1, lsr #0x10 - mov r3, r1, lsl #0x10 - mov r1, r2, lsl #0x10 - orr r1, r3, r1, lsr #0x10 - str r1, [r4, #0x14] - ldrh r3, [r5, #0x0] - mov r1, r4 - mov r2, r3, asr #0x8 - orr r2, r2, r3, lsl #0x8 - strh r2, [r4, #0x18] - ldrh r3, [r6, #0xc] - ldrh r6, [r6, #0xe] - mov r2, r3, asr #0x8 - orr r2, r2, r3, lsl #0x8 - mov r2, r2, lsl #0x10 - mov r3, r6, asr #0x8 - orr r3, r3, r6, lsl #0x8 - mov r2, r2, lsr #0x10 - mov r6, r2, lsl #0x10 - mov r2, r3, lsl #0x10 - orr r2, r6, r2, lsr #0x10 - str r2, [r4, #0x1c] - ldrh r3, [r5, #0x4] - ldrh r6, [r5, #0x6] - mov r2, r3, asr #0x8 - orr r2, r2, r3, lsl #0x8 - mov r2, r2, lsl #0x10 - mov r3, r6, asr #0x8 - mov r5, r2, lsr #0x10 - orr r2, r3, r6, lsl #0x8 - mov r3, r5, lsl #0x10 - mov r2, r2, lsl #0x10 - orr r2, r3, r2, lsr #0x10 - add r2, r2, #0x1 - str r2, [r4, #0x24] - bl FUN_0209E044 - mov r0, r4 - mov r1, #0x12 - mov r2, #0x0 - bl FUN_0209DF98 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_0209DE34 -FUN_0209DE34: ; 0x0209DE34 - stmdb sp!, {r4-r8,lr} - ldr r4, _0209DF6C ; =0x021C903C - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r0, r4 - mov r1, #0x0 - mov r2, #0x64 - mov r5, r3 - bl MI_CpuFill8 - ldrh r2, [r7, #0x2] - mov r1, r4 - mov r0, r2, asr #0x8 - orr r0, r0, r2, lsl #0x8 - strh r0, [r1, #0xa] - ldrh r2, [r7, #0x0] - mov r0, r2, asr #0x8 - orr r0, r0, r2, lsl #0x8 - strh r0, [r1, #0x18] - ldrh r2, [r8, #0xc] - ldrh r8, [r8, #0xe] - mov r0, r2, asr #0x8 - orr r0, r0, r2, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r2, r8, asr #0x8 - mov r3, r0, lsr #0x10 - orr r0, r2, r8, lsl #0x8 - mov r2, r3, lsl #0x10 - mov r0, r0, lsl #0x10 - orr r0, r2, r0, lsr #0x10 - str r0, [r1, #0x1c] - ldrb r0, [r7, #0xd] - ands r0, r0, #0x10 - beq _0209DF04 - ldrh r2, [r7, #0x8] - ldrh r6, [r7, #0xa] - mov r0, r4 - mov r1, r2, asr #0x8 - orr r1, r1, r2, lsl #0x8 - mov r1, r1, lsl #0x10 - mov r2, r6, asr #0x8 - mov r3, r1, lsr #0x10 - orr r1, r2, r6, lsl #0x8 - mov r2, r3, lsl #0x10 - mov r1, r1, lsl #0x10 - orr r3, r2, r1, lsr #0x10 - mov r2, r5 - mov r1, #0x4 - str r3, [r4, #0x28] - bl FUN_0209DF98 - ldmia sp!, {r4-r8,lr} - bx lr -_0209DF04: - mov r0, #0x0 - str r0, [r4, #0x28] - ldrh r1, [r7, #0x4] - ldrh r3, [r7, #0x6] - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r1, r3, asr #0x8 - mov r2, r0, lsr #0x10 - orr r0, r1, r3, lsl #0x8 - mov r1, r2, lsl #0x10 - mov r0, r0, lsl #0x10 - orr r0, r1, r0, lsr #0x10 - add r0, r6, r0 - str r0, [r4, #0x24] - ldrb r0, [r7, #0xd] - mov r2, r5 - mov r1, #0x14 - ands r0, r0, #0x3 - ldrne r0, [r4, #0x24] - addne r0, r0, #0x1 - strne r0, [r4, #0x24] - mov r0, r4 - bl FUN_0209DF98 - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_0209DF6C: .word 0x021C903C - - arm_func_start FUN_0209DF70 -FUN_0209DF70: - ldr ip, _0209DF80 ; =FUN_0209DF98 - mov r2, r1 - mov r1, #0x11 - bx r12 - .balign 4 -_0209DF80: .word FUN_0209DF98 - - arm_func_start FUN_0209DF84 -FUN_0209DF84: ; 0x0209DF84 - ldr ip, _0209DF94 ; =FUN_0209DF98 - mov r2, r1 - mov r1, #0x10 - bx r12 - .balign 4 -_0209DF94: .word FUN_0209DF98 - - arm_func_start FUN_0209DF98 -FUN_0209DF98: ; 0x0209DF98 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - mov r6, r0 - ldr r0, [r6, #0x1c] - mov r5, r1 - mov r4, r2 - bl FUN_0209E014 -_0209DFB4: ; 0x0209DFB4 - cmp r0, #0x0 - bne _0209DFD0 - ldr r0, _0209E00C ; =0x021D3498 - ldr r1, _0209E010 ; =0x021C9160 - ldr r0, [r0, #0x4] - cmp r0, r1 - beq _0209DFF4 -_0209DFD0: - mov r0, #0x0 - mov r1, r0 - mov r2, r6 - mov r3, r5 - str r4, [sp, #0x0] - bl FUN_0209E878 - add sp, sp, #0x8 - ldmia sp!, {r4-r6,lr} - bx lr -_0209DFF4: - ldr r0, [r6, #0x1c] - bl FUN_0209FAB0 - bl FUN_0209F338 - add sp, sp, #0x8 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_0209E00C: .word 0x021D3498 -_0209E010: .word 0x021C9160 - - arm_func_start FUN_0209E014 -FUN_0209E014: - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_0209FAB0 -_0209E020: ; 0x0209E020 - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x1 - ldmeqia sp!, {lr} - bxeq lr - bl FUN_0209F438 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_0209E044 -FUN_0209E044: ; 0x0209E044 - mov r2, #0x218 - strh r2, [r1, #0x2e] - ldrb r2, [r0, #0xc] - add r3, r0, #0x14 - and r2, r2, #0xf0 - mov r0, r2, asr #0x1 - add r0, r2, r0, lsr #0x1e - mov r0, r0, asr #0x2 - subs r0, r0, #0x14 - sub r12, r0, #0x1 - bxeq lr -_0209E070: - ldrb r0, [r3], #0x1 - cmp r0, #0x0 - bxeq lr - cmp r0, #0x1 - beq _0209E0B8 - cmp r0, #0x2 - bne _0209E0A8 - ldrb r2, [r3, #0x1] - ldrb r0, [r3, #0x2] - add r3, r3, #0x3 - sub r12, r12, #0x3 - orr r0, r0, r2, lsl #0x8 - strh r0, [r1, #0x2e] - b _0209E0B8 -_0209E0A8: - ldrb r0, [r3, #0x0] - sub r0, r0, #0x1 - sub r12, r12, r0 - add r3, r3, r0 -_0209E0B8: - cmp r12, #0x0 - sub r12, r12, #0x1 - bne _0209E070 - bx lr - - arm_func_start FUN_0209E0C8 -FUN_0209E0C8: ; 0x0209E0C8 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr r2, _0209E140 ; =0x021D3498 - mov r7, r0 - ldr r4, [r2, #0x8] - mov r6, r1 - cmp r4, #0x0 - beq _0209E130 -_0209E0E8: - ldr r5, [r4, #0xa4] - cmp r5, #0x0 - beq _0209E124 - ldr r0, [r5, #0x0] - cmp r0, #0x0 - beq _0209E124 - mov r0, r7 - mov r1, r6 - mov r2, r5 - bl FUN_0209E144 -_0209E110: ; 0x0209E110 - cmp r0, #0x0 - addne sp, sp, #0x4 - movne r0, r5 - ldmneia sp!, {r4-r7,lr} - bxne lr -_0209E124: - ldr r4, [r4, #0x68] - cmp r4, #0x0 - bne _0209E0E8 -_0209E130: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_0209E140: .word 0x021D3498 - - arm_func_start FUN_0209E144 -FUN_0209E144: - stmdb sp!, {r4-r6,lr} - ldrb r4, [r2, #0x8] - mov r12, #0x0 - mov r3, r12 - mov r6, r12 - mov r5, r12 - cmp r4, #0xa - beq _0209E16C - cmp r4, #0xb - movne r5, #0x1 -_0209E16C: - cmp r5, #0x0 - beq _0209E190 - ldrh lr, [r1, #0x2] - ldrh r5, [r2, #0xa] - mov r4, lr, asr #0x8 - orr r4, r4, lr, lsl #0x8 - mov lr, r4, lsl #0x10 - cmp r5, lr, lsr #0x10 - moveq r6, #0x1 -_0209E190: - cmp r6, #0x0 - beq _0209E1B4 - ldrh r4, [r1, #0x0] - ldrh lr, [r2, #0x18] - mov r1, r4, asr #0x8 - orr r1, r1, r4, lsl #0x8 - mov r1, r1, lsl #0x10 - cmp lr, r1, lsr #0x10 - moveq r3, #0x1 -_0209E1B4: - cmp r3, #0x0 - beq _0209E1F4 - ldrh r1, [r0, #0xc] - ldrh lr, [r0, #0xe] - ldr r3, [r2, #0x1c] - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r1, lr, asr #0x8 - mov r2, r0, lsr #0x10 - orr r0, r1, lr, lsl #0x8 - mov r1, r2, lsl #0x10 - mov r0, r0, lsl #0x10 - orr r0, r1, r0, lsr #0x10 - cmp r3, r0 - moveq r12, #0x1 -_0209E1F4: - mov r0, r12 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_0209E200 -FUN_0209E200: ; 0x0209E200 - stmdb sp!, {r4-r6,lr} - ldr r2, _0209E2DC ; =0x021D3498 - ldr r3, [r2, #0x8] - cmp r3, #0x0 - beq _0209E2D0 -_0209E214: - ldr r12, [r3, #0xa4] - cmp r12, #0x0 - beq _0209E2C4 - ldr r2, [r12, #0x0] - cmp r2, #0x0 - beq _0209E2C4 - ldrb r2, [r12, #0x8] - cmp r2, #0x1 - bne _0209E2C4 - ldrh r5, [r1, #0x2] - ldrh r4, [r12, #0xa] - mov r2, r5, asr #0x8 - orr r2, r2, r5, lsl #0x8 - mov r2, r2, lsl #0x10 - cmp r4, r2, lsr #0x10 - bne _0209E2C4 - ldrh r5, [r12, #0x18] - cmp r5, #0x0 - beq _0209E278 - ldrh r4, [r1, #0x0] - mov r2, r4, asr #0x8 - orr r2, r2, r4, lsl #0x8 - mov r2, r2, lsl #0x10 - cmp r5, r2, lsr #0x10 - bne _0209E2C4 -_0209E278: - ldr r2, [r12, #0x1c] - cmp r2, #0x0 - beq _0209E2B8 - ldrh r5, [r0, #0xc] - ldrh r6, [r0, #0xe] - mov r4, r5, asr #0x8 - orr r4, r4, r5, lsl #0x8 - mov lr, r4, lsl #0x10 - mov r4, r6, asr #0x8 - mov lr, lr, lsr #0x10 - orr r4, r4, r6, lsl #0x8 - mov r5, lr, lsl #0x10 - mov lr, r4, lsl #0x10 - orr r4, r5, lr, lsr #0x10 - cmp r2, r4 - bne _0209E2C4 -_0209E2B8: - mov r0, r12 - ldmia sp!, {r4-r6,lr} - bx lr -_0209E2C4: - ldr r3, [r3, #0x68] - cmp r3, #0x0 - bne _0209E214 -_0209E2D0: - mov r0, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_0209E2DC: .word 0x021D3498 - - arm_func_start FUN_0209E2E0 -FUN_0209E2E0: ; 0x0209E2E0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r1 - mov r4, r2 - mov r6, r0 - mov r0, r5 - mov r1, r4 - bl FUN_0209FB84 - ldr r1, _0209E3D8 ; =0x0000FFFF - cmp r0, r1 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr - ldrh r12, [r6, #0x10] - ldrh r7, [r6, #0xc] - ldrh r0, [r6, #0xe] - ldrh r1, [r6, #0x12] - mov r3, r7, asr #0x8 - mov lr, r0, asr #0x8 - orr r0, lr, r0, lsl #0x8 - mov r2, r12, asr #0x8 - orr r7, r3, r7, lsl #0x8 - orr r3, r2, r12, lsl #0x8 - mov r2, r7, lsl #0x10 - mov r12, r1, asr #0x8 - orr r1, r12, r1, lsl #0x8 - mov r3, r3, lsl #0x10 - mov r7, r2, lsr #0x10 - mov r2, r3, lsr #0x10 - mov r3, r7, lsl #0x10 - mov r0, r0, lsl #0x10 - mov r2, r2, lsl #0x10 - mov r1, r1, lsl #0x10 - orr r0, r3, r0, lsr #0x10 - orr r1, r2, r1, lsr #0x10 - bl FUN_0209E3DC -_0209E370: ; 0x0209E370 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - ldrb r0, [r5, #0x0] - cmp r0, #0x0 - beq _0209E3A0 - cmp r0, #0x8 - beq _0209E3BC - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr -_0209E3A0: - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_0209E40C - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr -_0209E3BC: - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl FUN_0209E524 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_0209E3D8: .word 0x0000FFFF - - arm_func_start FUN_0209E3DC -FUN_0209E3DC: - cmp r0, #0x0 - beq _0209E404 - mvn r2, #0x0 - cmp r0, r2 - beq _0209E404 - cmp r1, #0x0 - beq _0209E404 - cmp r1, r2 - movne r0, #0x1 - bxne lr -_0209E404: - mov r0, #0x0 - bx lr - - arm_func_start FUN_0209E40C -FUN_0209E40C: ; 0x0209E40C - stmdb sp!, {r4-r8,lr} - mov r7, r0 - mov r6, r1 - mov r5, r2 - bl OS_DisableInterrupts - ldr r1, _0209E520 ; =0x021D3498 - mov r8, r0 - ldr r2, [r1, #0x8] - cmp r2, #0x0 - beq _0209E510 -_0209E434: - ldr r4, [r2, #0xa4] - cmp r4, #0x0 - beq _0209E504 - ldr r3, [r4, #0x0] - cmp r3, #0x0 - beq _0209E504 - ldrb r0, [r4, #0x8] - cmp r0, #0xb - bne _0209E504 - ldrh r1, [r6, #0x4] - mov r0, r3, lsl #0x10 - mov r0, r0, lsr #0x10 - cmp r0, r1 - bne _0209E504 - ldrh r1, [r4, #0xa] - ldrh r0, [r6, #0x6] - cmp r1, r0 - bne _0209E504 - ldr r0, [r4, #0x44] - cmp r0, #0x0 - bne _0209E504 - ldrh r12, [r7, #0xc] - ldrh r1, [r7, #0xe] - ldr r0, [r4, #0x1c] - mov r3, r12, asr #0x8 - orr r3, r3, r12, lsl #0x8 - mov r3, r3, lsl #0x10 - mov r12, r1, asr #0x8 - mov r3, r3, lsr #0x10 - orr r1, r12, r1, lsl #0x8 - mov r3, r3, lsl #0x10 - mov r1, r1, lsl #0x10 - orr r1, r3, r1, lsr #0x10 - cmp r0, r1 - bne _0209E504 - ldr r1, [r4, #0x3c] - sub r0, r5, #0x8 - cmp r0, r1 - strhi r1, [r4, #0x44] - strls r0, [r4, #0x44] - ldr r1, [r4, #0x40] - ldr r2, [r4, #0x44] - add r0, r6, #0x8 - bl MI_CpuCopy8 - ldr r0, [r4, #0x4] - cmp r0, #0x3 - bne _0209E510 - mov r0, #0x0 - str r0, [r4, #0x4] - ldr r0, [r4, #0x0] - bl OS_WakeupThreadDirect - b _0209E510 -_0209E504: - ldr r2, [r2, #0x68] - cmp r2, #0x0 - bne _0209E434 -_0209E510: - mov r0, r8 - bl OS_RestoreInterrupts - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_0209E520: .word 0x021D3498 - - arm_func_start FUN_0209E524 -FUN_0209E524: ; 0x0209E524 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0xc - mov r6, r0 - ldrh r3, [r6, #0xc] - ldrh r4, [r6, #0xe] - mov r5, r1 - mov r0, r3, asr #0x8 - orr r0, r0, r3, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r1, r4, asr #0x8 - mov r3, r0, lsr #0x10 - orr r0, r1, r4, lsl #0x8 - mov r1, r3, lsl #0x10 - mov r0, r0, lsl #0x10 - orr r0, r1, r0, lsr #0x10 - mov r4, r2 - bl FUN_0209FAB0 - movs r7, r0 - addeq sp, sp, #0xc - ldmeqia sp!, {r4-r7,lr} - bxeq lr - bl FUN_0209F438 -_0209E57C: ; 0x0209E57C - cmp r0, #0x0 - bne _0209E598 - mov r0, r7 - bl FUN_0209F338 - add sp, sp, #0xc - ldmia sp!, {r4-r7,lr} - bx lr -_0209E598: - mov r2, #0x0 - strb r2, [r5, #0x0] - mov r0, r5 - mov r1, r4 - strh r2, [r5, #0x2] - bl FUN_0209FB84 - mov r1, r0, asr #0x8 - orr r0, r1, r0, lsl #0x8 - strh r0, [r5, #0x2] - ldrh r1, [r6, #0xc] - ldrh r6, [r6, #0xe] - mov r2, #0x0 - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r1, r6, asr #0x8 - mov r3, r0, lsr #0x10 - orr r0, r1, r6, lsl #0x8 - mov r1, r3, lsl #0x10 - mov r0, r0, lsl #0x10 - orr r6, r1, r0, lsr #0x10 - mov r0, r5 - mov r1, r4 - mov r3, r2 - str r6, [sp, #0x0] - mov r4, #0x1 - str r4, [sp, #0x4] - bl FUN_0209ECFC - add sp, sp, #0xc - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_0209E614 -FUN_0209E614: ; 0x0209E614 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - cmp r1, #0x1c - mov r6, r0 - addcc sp, sp, #0x4 - ldmccia sp!, {r4-r7,lr} - bxcc lr - ldr r1, _0209E7BC ; =0x021C8F14 - add r0, r6, #0x8 - bl FUN_0209F9A0 -_0209E63C: ; 0x0209E63C - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - ldr r0, _0209E7C0 ; =0x021C8F04 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - ldrh r0, [r6, #0x0] - cmp r0, #0x100 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr - ldrh r0, [r6, #0x2] - cmp r0, #0x8 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr - ldrh r1, [r6, #0x4] - ldr r0, _0209E7C4 ; =0x00000406 - cmp r1, r0 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr - ldrh r1, [r6, #0x6] - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r4, r0, lsr #0x10 - cmp r4, #0x1 - beq _0209E6D0 - cmp r4, #0x2 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr -_0209E6D0: - ldrh r1, [r6, #0xe] - ldrh r5, [r6, #0x10] - ldr r2, _0209E7C0 ; =0x021C8F04 - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - mov r0, r0, lsl #0x10 - mov r3, r0, lsr #0x10 - mov r1, r5, asr #0x8 - orr r0, r1, r5, lsl #0x8 - mov r1, r0, lsl #0x10 - mov r3, r3, lsl #0x10 - orr r1, r3, r1, lsr #0x10 - ldr r0, [r2, #0x0] - ldrh r3, [r6, #0x18] - ldrh lr, [r6, #0x1a] - cmp r1, r0 - mov r2, r3, asr #0x8 - orr r2, r2, r3, lsl #0x8 - mov r2, r2, lsl #0x10 - moveq r5, #0x1 - mov r3, lr, asr #0x8 - mov r12, r2, lsr #0x10 - orr r2, r3, lr, lsl #0x8 - mov r3, r12, lsl #0x10 - mov r2, r2, lsl #0x10 - orr r2, r3, r2, lsr #0x10 - movne r5, #0x0 - cmp r0, r2 - moveq r7, #0x1 - movne r7, #0x0 - cmp r5, #0x0 - bne _0209E75C - mov r2, r7 - add r0, r6, #0x8 - bl FUN_0209F12C -_0209E75C: - cmp r4, #0x1 - bne _0209E780 - cmp r7, #0x0 - beq _0209E780 - mov r0, r6 - bl FUN_0209E7CC - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr -_0209E780: - cmp r4, #0x2 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr - cmp r7, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - cmp r5, #0x0 - ldrne r0, _0209E7C8 ; =0x021C8EAC - movne r1, #0x1 - strneb r1, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_0209E7BC: .word 0x021C8F14 -_0209E7C0: .word 0x021C8F04 -_0209E7C4: .word 0x00000406 -_0209E7C8: .word 0x021C8EAC - - arm_func_start FUN_0209E7CC -FUN_0209E7CC: ; 0x0209E7CC - stmdb sp!, {r4,lr} - mov r4, r0 - mov r3, #0x200 - add r0, r4, #0x8 - add r1, r4, #0x12 - mov r2, #0xa - strh r3, [r4, #0x6] - bl MI_CpuCopy8 - ldr r0, _0209E870 ; =0x021C8F14 - add r1, r4, #0x8 - mov r2, #0x6 - bl MI_CpuCopy8 - ldr r3, _0209E874 ; =0x021C8F04 - add r0, r4, #0x12 - ldr r2, [r3, #0x0] - sub r1, r4, #0xe - mov r2, r2, lsr #0x10 - mov r2, r2, lsl #0x10 - mov r12, r2, lsr #0x10 - mov r2, r12, asr #0x8 - orr r2, r2, r12, lsl #0x8 - strh r2, [r4, #0xe] - ldr r3, [r3, #0x0] - mov r2, #0x6 - mov r3, r3, lsl #0x10 - mov r12, r3, lsr #0x10 - mov r3, r12, asr #0x8 - orr r3, r3, r12, lsl #0x8 - strh r3, [r4, #0x10] - bl MI_CpuCopy8 - ldr r0, _0209E870 ; =0x021C8F14 - sub r1, r4, #0x8 - mov r2, #0x6 - bl MI_CpuCopy8 - sub r0, r4, #0xe - mov r1, #0x2a - mov r2, #0x0 - mov r3, r2 - bl FUN_0209F930 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_0209E870: .word 0x021C8F14 -_0209E874: .word 0x021C8F04 - - arm_func_start FUN_0209E878 -FUN_0209E878: ; 0x0209E878 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0xc - mov r7, r2 - ldrb r2, [r7, #0x8] - mov r9, r0 - mov r8, r1 - cmp r2, #0x0 - mov r6, r3 - addeq sp, sp, #0xc - ldmeqia sp!, {r4-r9,lr} - bxeq lr - ldr r0, _0209EAEC ; =0x021D3498 - ldr r3, _0209EAF0 ; =0x021C8F04 - ldr r1, _0209EAF4 ; =0x021C9160 - ldr r0, [r0, #0x4] - ldr r12, [r3, #0x0] - cmp r0, r1 - ldreq r4, _0209EAF8 ; =0x021C8F5E - ldrne r0, [r7, #0x4c] - addne r4, r0, #0x22 - ands r0, r6, #0x2 - movne r5, #0x18 - moveq r5, #0x14 - add r1, r5, r8 - mov r2, r1, lsl #0x10 - mov r1, r12, lsr #0x10 - mov r1, r1, lsl #0x10 - mov r12, r1, lsr #0x10 - mov r1, r12, asr #0x8 - orr r1, r1, r12, lsl #0x8 - strh r1, [r4, #-0xc] - ldr r1, [r3, #0x0] - mov r12, r2, lsr #0x10 - mov r1, r1, lsl #0x10 - mov r2, r1, lsr #0x10 - mov r1, r2, asr #0x8 - orr r1, r1, r2, lsl #0x8 - strh r1, [r4, #-0xa] - ldr r1, [r7, #0x1c] - mov r3, r12, asr #0x8 - mov r1, r1, lsr #0x10 - mov r1, r1, lsl #0x10 - mov r2, r1, lsr #0x10 - mov r1, r2, asr #0x8 - orr r1, r1, r2, lsl #0x8 - strh r1, [r4, #-0x8] - ldr r1, [r7, #0x1c] - mov r2, r5, lsr #0x2 - mov r1, r1, lsl #0x10 - mov lr, r1, lsr #0x10 - mov r1, lr, asr #0x8 - orr r1, r1, lr, lsl #0x8 - strh r1, [r4, #-0x6] - mov r1, #0x600 - strh r1, [r4, #-0x4] - orr r1, r3, r12, lsl #0x8 - strh r1, [r4, #-0x2] - ldrh r12, [r7, #0xa] - cmp r0, #0x0 - mov r2, r2, lsl #0x4 - mov r3, r12, asr #0x8 - orr r3, r3, r12, lsl #0x8 - strh r3, [r4, #0x0] - ldrh r3, [r7, #0x18] - mov r1, #0x0 - mov r0, r3, asr #0x8 - orr r0, r0, r3, lsl #0x8 - strh r0, [r4, #0x2] - ldr r0, [r7, #0x28] - mov r0, r0, lsr #0x10 - mov r0, r0, lsl #0x10 - mov r3, r0, lsr #0x10 - mov r0, r3, asr #0x8 - orr r0, r0, r3, lsl #0x8 - strh r0, [r4, #0x4] - ldr r0, [r7, #0x28] - mov r0, r0, lsl #0x10 - mov r3, r0, lsr #0x10 - mov r0, r3, asr #0x8 - orr r0, r0, r3, lsl #0x8 - strh r0, [r4, #0x6] - ldr r0, [r7, #0x24] - mov r0, r0, lsr #0x10 - mov r0, r0, lsl #0x10 - mov r3, r0, lsr #0x10 - mov r0, r3, asr #0x8 - orr r0, r0, r3, lsl #0x8 - strh r0, [r4, #0x8] - ldr r0, [r7, #0x24] - mov r0, r0, lsl #0x10 - mov r3, r0, lsr #0x10 - mov r0, r3, asr #0x8 - orr r0, r0, r3, lsl #0x8 - strh r0, [r4, #0xa] - strb r2, [r4, #0xc] - strb r6, [r4, #0xd] - ldr r2, [r7, #0x3c] - ldr r0, [r7, #0x44] - sub r0, r2, r0 - mov r0, r0, lsl #0x10 - mov r2, r0, lsr #0x10 - mov r0, r2, asr #0x8 - orr r0, r0, r2, lsl #0x8 - strh r0, [r4, #0xe] - strh r1, [r4, #0x10] - strh r1, [r4, #0x12] - beq _0209EA64 - ldr r1, _0209EAFC ; =0x021C8EB0 - ldrh r0, [r1, #0x0] - add r0, r0, #0x2040000 - mov r0, r0, lsr #0x10 - mov r0, r0, lsl #0x10 - mov r2, r0, lsr #0x10 - mov r0, r2, asr #0x8 - orr r0, r0, r2, lsl #0x8 - strh r0, [r4, #0x14] - ldrh r0, [r1, #0x0] - add r0, r0, #0x2040000 - mov r0, r0, lsl #0x10 - mov r1, r0, lsr #0x10 - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - strh r0, [r4, #0x16] -_0209EA64: - sub r0, r4, #0xc - add r1, r5, #0xc - mov r2, #0x0 - bl FUN_0209FBC8 - mov r2, r0 - mov r0, r9 - mov r1, r8 - bl FUN_0209FBC8 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - bl FUN_0209FBAC - mov r3, r0, asr #0x8 - orr r0, r3, r0, lsl #0x8 - strh r0, [r4, #0x10] - mov r0, r4 - ldr r4, [r7, #0x1c] - mov r3, #0x6 - str r4, [sp, #0x0] - str r3, [sp, #0x4] - mov r1, r5 - mov r2, r9 - mov r3, r8 - bl FUN_0209ECFC - ands r0, r6, #0x3 - ldr r0, [r7, #0x28] - add r1, r7, #0x28 - add r0, r0, r8 - str r0, [r7, #0x28] - ldrne r0, [r1, #0x0] - addne r0, r0, #0x1 - strne r0, [r1, #0x0] - add sp, sp, #0xc - ldmia sp!, {r4-r9,lr} - bx lr - .balign 4 -_0209EAEC: .word 0x021D3498 -_0209EAF0: .word 0x021C8F04 -_0209EAF4: .word 0x021C9160 -_0209EAF8: .word 0x021C8F5E -_0209EAFC: .word 0x021C8EB0 - - arm_func_start FUN_0209EB00 -FUN_0209EB00: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0xc - ldr r7, _0209EC3C ; =0x021C8F04 - mov r5, r2 - ldr r2, [r7, #0x0] - mov r6, r1 - mov r1, r2, lsr #0x10 - mov r1, r1, lsl #0x10 - mov r2, r1, lsr #0x10 - ldr r3, [r5, #0x4c] - mov r1, r2, asr #0x8 - add r4, r3, #0x22 - orr r1, r1, r2, lsl #0x8 - strh r1, [r4, #-0xc] - ldr r1, [r7, #0x0] - add r2, r6, #0x8 - mov r1, r1, lsl #0x10 - mov r7, r1, lsr #0x10 - mov r1, r7, asr #0x8 - orr r1, r1, r7, lsl #0x8 - strh r1, [r4, #-0xa] - ldr r1, [r5, #0x1c] - mov r2, r2, lsl #0x10 - mov r1, r1, lsr #0x10 - mov r1, r1, lsl #0x10 - mov r7, r1, lsr #0x10 - mov r1, r7, asr #0x8 - orr r1, r1, r7, lsl #0x8 - strh r1, [r4, #-0x8] - ldr r1, [r5, #0x1c] - mov r2, r2, lsr #0x10 - mov r1, r1, lsl #0x10 - mov r7, r1, lsr #0x10 - mov r1, r7, asr #0x8 - orr r7, r1, r7, lsl #0x8 - mov r1, r2, asr #0x8 - strh r7, [r4, #-0x6] - mov r7, #0x1100 - strh r7, [r4, #-0x4] - orr r1, r1, r2, lsl #0x8 - strh r1, [r4, #0x4] - ldrh r1, [r4, #0x4] - mov r7, r0 - sub r0, r4, #0xc - strh r1, [r4, #-0x2] - ldrh lr, [r5, #0x18] - mov r2, #0x0 - mov r1, #0x14 - mov r12, lr, asr #0x8 - orr r12, r12, lr, lsl #0x8 - strh r12, [r4, #0x2] - ldrh lr, [r5, #0xa] - mov r12, lr, asr #0x8 - orr r12, r12, lr, lsl #0x8 - strh r12, [r3, #0x22] - strh r2, [r4, #0x6] - bl FUN_0209FBC8 - mov r2, r0 - mov r0, r7 - mov r1, r6 - bl FUN_0209FBC8 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - bl FUN_0209FBAC - mov r2, r7 - mov r3, r6 - mov r1, r0, asr #0x8 - orr r0, r1, r0, lsl #0x8 - strh r0, [r4, #0x6] - ldr r1, [r5, #0x1c] - mov r0, r4 - str r1, [sp, #0x0] - mov r1, #0x11 - str r1, [sp, #0x4] - mov r1, #0x8 - bl FUN_0209ECFC - add sp, sp, #0xc - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_0209EC3C: .word 0x021C8F04 - - arm_func_start FUN_0209EC40 -FUN_0209EC40: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0xc - mov r5, r2 - ldr r3, [r5, #0x4c] - mov r6, r1 - mov r1, #0x8 - ldr r2, _0209ECF4 ; =0x021D3498 - strh r1, [r3, #0x22] - ldr r2, [r2, #0x4] - add r4, r3, #0x22 - strh r2, [r4, #0x4] - mov r2, #0x0 - ldr r3, _0209ECF8 ; =0x021C8EB4 - strh r2, [r4, #0x2] - ldrh lr, [r3, #0x0] - mov r7, r0 - mov r0, r4 - strh lr, [r5, #0xa] - ldrh r12, [r3, #0x0] - add r12, r12, #0x1 - strh r12, [r3, #0x0] - strh lr, [r4, #0x6] - bl FUN_0209FBC8 - mov r2, r0 - mov r0, r7 - mov r1, r6 - bl FUN_0209FBC8 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - bl FUN_0209FBAC - mov r2, r7 - mov r3, r6 - mov r1, r0, asr #0x8 - orr r0, r1, r0, lsl #0x8 - strh r0, [r4, #0x2] - ldr r1, [r5, #0x1c] - mov r0, r4 - str r1, [sp, #0x0] - mov r1, #0x1 - str r1, [sp, #0x4] - mov r1, #0x8 - bl FUN_0209ECFC - add sp, sp, #0xc - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_0209ECF4: .word 0x021D3498 -_0209ECF8: .word 0x021C8EB4 - - arm_func_start FUN_0209ECFC -FUN_0209ECFC: ; 0x0209ECFC - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r10, r0 - mov r0, #0x45 - strb r0, [r10, #-0x14] - mov r5, #0x0 - ldr r0, _0209EF0C ; =0x021C8EB8 - strb r5, [r10, #-0x13] - ldrh r7, [r0, #0x0] - ldr r6, [sp, #0x30] - ldrb r4, [sp, #0x34] - add r7, r7, #0x1 - strh r7, [r0, #0x0] - ldrh r9, [r0, #0x0] - mov r0, r6, lsr #0x10 - mov r7, #0x80 - mov r8, r9, asr #0x8 - orr r8, r8, r9, lsl #0x8 - strh r8, [r10, #-0x10] - strb r7, [r10, #-0xc] - ldr r7, _0209EF10 ; =0x021C8F04 - strb r4, [r10, #-0xb] - ldr r8, [r7, #0x0] - mov r4, r0, lsl #0x10 - mov r0, r8, lsr #0x10 - mov r0, r0, lsl #0x10 - mov r8, r0, lsr #0x10 - mov r0, r8, asr #0x8 - orr r0, r0, r8, lsl #0x8 - strh r0, [r10, #-0x8] - ldr r0, [r7, #0x0] - mov r8, r4, lsr #0x10 - mov r0, r0, lsl #0x10 - mov r7, r0, lsr #0x10 - mov r4, r7, asr #0x8 - mov r0, r6, lsl #0x10 - orr r9, r4, r7, lsl #0x8 - mov r7, r8, asr #0x8 - mov r4, r0, lsr #0x10 - mov r0, r4, asr #0x8 - strh r9, [r10, #-0x6] - orr r7, r7, r8, lsl #0x8 - ldr fp, _0209EF14 ; =0x000005C8 - mov r9, r1 - strh r7, [r10, #-0x4] - orr r0, r0, r4, lsl #0x8 - mov r8, r2 - mov r7, r3 - strh r0, [r10, #-0x2] - cmp r9, r11 - bls _0209EE74 - mov r4, r10 - cmp r9, r11 - bls _0209EE14 - str r5, [sp, #0x8] -_0209EDD8: - ldr r1, [sp, #0x8] - mov r0, r10 - mov r2, r4 - mov r3, r11 - str r6, [sp, #0x0] - orr r12, r5, #0x2000 - str r12, [sp, #0x4] - bl FUN_0209EF18 - add r0, r5, #0xb9 - sub r9, r9, r11 - mov r0, r0, lsl #0x10 - cmp r9, r11 - add r4, r4, r11 - mov r5, r0, lsr #0x10 - bhi _0209EDD8 -_0209EE14: - cmp r9, #0x0 - beq _0209EE74 - cmp r7, #0x0 - beq _0209EE48 - mov r0, r10 - mov r2, r4 - mov r3, r9 - str r6, [sp, #0x0] - orr r4, r5, #0x2000 - mov r1, #0x0 - str r4, [sp, #0x4] - bl FUN_0209EF18 - b _0209EE64 -_0209EE48: - str r6, [sp, #0x0] - mov r0, r10 - mov r2, r4 - mov r3, r9 - mov r1, #0x0 - str r5, [sp, #0x4] - bl FUN_0209EF18 -_0209EE64: - add r0, r5, r9, lsr #0x3 - mov r0, r0, lsl #0x10 - mov r5, r0, lsr #0x10 - mov r9, #0x0 -_0209EE74: - ldr r0, _0209EF14 ; =0x000005C8 - add r1, r9, r7 - cmp r1, r0 - bls _0209EED4 - mov r11, #0x0 -_0209EE88: - ldr r0, _0209EF14 ; =0x000005C8 - mov r1, r9 - sub r4, r0, r9 - mov r0, r10 - mov r2, r8 - mov r3, r4 - str r6, [sp, #0x0] - orr r9, r5, #0x2000 - str r9, [sp, #0x4] - bl FUN_0209EF18 - add r0, r5, #0xb9 - mov r1, r0, lsl #0x10 - ldr r0, _0209EF14 ; =0x000005C8 - sub r7, r7, r4 - mov r9, r11 - cmp r7, r0 - add r8, r8, r4 - mov r5, r1, lsr #0x10 - bhi _0209EE88 -_0209EED4: - adds r0, r9, r7 - addeq sp, sp, #0xc - ldmeqia sp!, {r4-r11,lr} - bxeq lr - str r6, [sp, #0x0] - mov r0, r10 - mov r1, r9 - mov r2, r8 - mov r3, r7 - str r5, [sp, #0x4] - bl FUN_0209EF18 - add sp, sp, #0xc - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_0209EF0C: .word 0x021C8EB8 -_0209EF10: .word 0x021C8F04 -_0209EF14: .word 0x000005C8 - - arm_func_start FUN_0209EF18 -FUN_0209EF18: ; 0x0209EF18 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - mov r7, r1 - mov r5, r3 - add r1, r7, #0x14 - add r1, r1, r5 - ldr r3, [sp, #0x24] - mov r1, r1, lsl #0x10 - mov r4, r1, lsr #0x10 - mov r1, r3, lsl #0x10 - mov r3, r4, asr #0x8 - mov r1, r1, lsr #0x10 - mov r8, r0 - orr r3, r3, r4, lsl #0x8 - mov r0, r1, asr #0x8 - strh r3, [r8, #-0x12] - orr r0, r0, r1, lsl #0x8 - strh r0, [r8, #-0xe] - mov r3, #0x0 - sub r0, r8, #0x14 - mov r1, #0x14 - mov r6, r2 - strh r3, [r8, #-0xa] - ldr r4, [sp, #0x20] - bl FUN_0209FB84 - mov r2, r0, asr #0x8 - ldr r1, _0209F040 ; =0x7F000001 - orr r0, r2, r0, lsl #0x8 - strh r0, [r8, #-0xa] - cmp r4, r1 - beq _0209EFC4 - ldr r0, _0209F044 ; =0x021C8F04 - ldr r0, [r0, #0x0] - cmp r4, r0 - beq _0209EFC4 - mov r2, r6 - mov r3, r5 - str r4, [sp, #0x0] - mov r12, #0x800 - sub r0, r8, #0x14 - add r1, r7, #0x14 - str r12, [sp, #0x4] - bl FUN_0209F050 -_0209EFC4: - ldr r0, _0209F040 ; =0x7F000001 - cmp r4, r0 - beq _0209EFF8 - ldr r0, _0209F044 ; =0x021C8F04 - ldr r0, [r0, #0x0] - cmp r4, r0 - beq _0209EFF8 - mov r0, r4 - bl FUN_0209FA54 -_0209EFE8: ; 0x0209EFE8 - cmp r0, #0x0 - addeq sp, sp, #0x8 - ldmeqia sp!, {r4-r8,lr} - bxeq lr -_0209EFF8: - ldr r0, _0209F048 ; =0x02106230 - sub r1, r8, #0x1c - mov r2, #0x8 - bl MI_CpuCopy8 - bl OS_DisableInterrupts - mov r4, r0 - ldr r0, _0209F04C ; =0x021C8F14 - str r6, [sp, #0x0] - mov r1, r0 - str r5, [sp, #0x4] - sub r2, r8, #0x1c - add r3, r7, #0x1c - bl FUN_0209F6C0 - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x8 - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_0209F040: .word 0x7F000001 -_0209F044: .word 0x021C8F04 -_0209F048: .word 0x02106230 -_0209F04C: .word 0x021C8F14 - - arm_func_start FUN_0209F050 -FUN_0209F050: ; 0x0209F050 - stmdb sp!, {r4-r8,lr} - ldrh r5, [sp, #0x1c] - ldr r4, [sp, #0x18] - mov r8, r0 - mov r0, r5, asr #0x8 - orr r12, r0, r5, lsl #0x8 - mov r0, r4 - mov r7, r1 - mov r6, r2 - mov r5, r3 - strh r12, [r8, #-0x2] - bl FUN_0209FA54 -_0209F080: ; 0x0209F080 - cmp r0, #0x0 - bne _0209F0CC - mov r0, r4 - bl FUN_0209FAB0 - movs r4, r0 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - bl FUN_0209F438 -_0209F0A0: ; 0x0209F0A0 - cmp r0, #0x0 - bne _0209F0B0 - mov r0, r4 - bl FUN_0209F2AC -_0209F0B0: - cmp r0, #0x0 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - sub r1, r8, #0xe - mov r2, #0x6 - bl MI_CpuCopy8 - b _0209F0FC -_0209F0CC: - mov r0, #0x1 - strb r0, [r8, #-0xe] - mov r1, #0x0 - mov r0, r4, lsr #0x10 - strb r1, [r8, #-0xd] - mov r1, #0x5e - strb r1, [r8, #-0xc] - and r0, r0, #0x7f - strb r0, [r8, #-0xb] - mov r0, r4, lsr #0x8 - strb r0, [r8, #-0xa] - strb r4, [r8, #-0x9] -_0209F0FC: - ldr r0, _0209F128 ; =0x021C8F14 - sub r1, r8, #0x8 - mov r2, #0x6 - bl MI_CpuCopy8 - mov r2, r6 - mov r3, r5 - sub r0, r8, #0xe - add r1, r7, #0xe - bl FUN_0209F930 - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_0209F128: .word 0x021C8F14 - - arm_func_start FUN_0209F12C -FUN_0209F12C: ; 0x0209F12C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr r3, _0209F29C ; =0x7F000001 - mov r6, r1 - cmp r6, r3 - mov r7, r0 - mov r4, r2 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - ldr r0, _0209F2A0 ; =0x021C8F04 - ldr r0, [r0, #0x0] - cmp r6, r0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - mov r0, r6 - bl FUN_0209FAD8 -_0209F174: ; 0x0209F174 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - mov r0, r6 - bl FUN_0209FA54 -_0209F18C: ; 0x0209F18C - cmp r0, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr - bl OS_GetTick - mov r0, r0, lsr #0x10 - orr r0, r0, r1, lsl #0x10 - mov r0, r0, lsl #0x10 - ldr r1, _0209F2A4 ; =0x021C8F78 - mov r5, r0, lsr #0x10 - mov r2, #0x0 -_0209F1B8: - ldr r0, [r1, #0x0] - cmp r6, r0 - bne _0209F1F8 - mov r0, #0xc - mul r4, r2, r0 - ldr r0, _0209F2A4 ; =0x021C8F78 - ldr r3, _0209F2A8 ; =0x021C8F82 - add r1, r0, r4 - mov r0, r7 - add r1, r1, #0x4 - mov r2, #0x6 - strh r5, [r3, r4] - bl MI_CpuCopy8 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr -_0209F1F8: - add r2, r2, #0x1 - cmp r2, #0x8 - add r1, r1, #0xc - blo _0209F1B8 - cmp r4, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - mov r12, #0x0 - ldr r4, _0209F2A4 ; =0x021C8F78 - mov r0, r12 - mov r3, r12 -_0209F228: - ldr r1, [r4, #0x0] - cmp r1, #0x0 - moveq r0, r3 - beq _0209F264 - ldrh r1, [r4, #0xa] - add r4, r4, #0xc - sub r1, r5, r1 - mov r1, r1, lsl #0x10 - mov r2, r1, asr #0x10 - cmp r2, r12 - movgt r0, r3 - add r3, r3, #0x1 - movgt r12, r1, lsr #0x10 - cmp r3, #0x8 - blo _0209F228 -_0209F264: - mov r1, #0xc - mul r4, r0, r1 - ldr r3, _0209F2A4 ; =0x021C8F78 - mov r0, r7 - add r1, r3, r4 - add r1, r1, #0x4 - mov r2, #0x6 - str r6, [r3, r4] - bl MI_CpuCopy8 - ldr r0, _0209F2A8 ; =0x021C8F82 - strh r5, [r0, r4] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_0209F29C: .word 0x7F000001 -_0209F2A0: .word 0x021C8F04 -_0209F2A4: .word 0x021C8F78 -_0209F2A8: .word 0x021C8F82 - - arm_func_start FUN_0209F2AC -FUN_0209F2AC: - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r9, r0 - mov r8, #0x0 - ldr r4, _0209F334 ; =0x021C8F04 - mov r6, r8 - mov r5, #0x64 -_0209F2C8: - mov r0, r9 - bl FUN_0209F338 - mov r7, r6 -_0209F2D4: - ldr r0, [r4, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - mov r0, r5 - bl OS_Sleep - mov r0, r9 - bl FUN_0209F438 -_0209F2FC: ; 0x0209F2FC - cmp r0, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r9,lr} - bxne lr - add r7, r7, #0x1 - cmp r7, #0x14 - blo _0209F2D4 - add r8, r8, #0x1 - cmp r8, #0x8 - blo _0209F2C8 - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - .balign 4 -_0209F334: .word 0x021C8F04 - - arm_func_start FUN_0209F338 -FUN_0209F338: ; 0x0209F338 - stmdb sp!, {r4,lr} - sub sp, sp, #0x30 - mov r4, r0 - add r0, sp, #0x0 - mov r1, #0x0 - mov r2, #0x2a - bl MI_CpuFill8 -_0209F354: ; 0x0209F354 - add r0, sp, #0x0 - mov r1, #0xff - mov r2, #0x6 - bl MI_CpuFill8 - ldr r0, _0209F428 ; =0x021C8F14 - add r1, sp, #0x6 - mov r2, #0x6 - bl MI_CpuCopy8 - mov r0, #0x1 - ldr r1, _0209F42C ; =0x00000608 - strb r0, [sp, #0xf] - strh r1, [sp, #0xc] - strb r0, [sp, #0x15] - mov r0, #0x8 - ldr r1, _0209F430 ; =0x00000406 - strb r0, [sp, #0x10] - strh r1, [sp, #0x12] - ldr r0, _0209F428 ; =0x021C8F14 - add r1, sp, #0x16 - mov r2, #0x6 - bl MI_CpuCopy8 - ldr r0, _0209F434 ; =0x021C8F04 - mov r1, r4, lsr #0x10 - ldr r3, [r0, #0x0] - mov r0, r1, lsl #0x10 - mov r2, r0, lsr #0x10 - mov r0, r4, lsl #0x10 - mov r1, r0, lsr #0x10 - mov r0, r3, lsr #0x10 - mov r0, r0, lsl #0x10 - mov r4, r0, lsr #0x10 - mov r0, r3, lsl #0x10 - mov r3, r0, lsr #0x10 - mov r0, r4, asr #0x8 - orr r0, r0, r4, lsl #0x8 - strh r0, [sp, #0x1c] - mov r0, r3, asr #0x8 - orr r0, r0, r3, lsl #0x8 - strh r0, [sp, #0x1e] - mov r0, r2, asr #0x8 - orr r0, r0, r2, lsl #0x8 - strh r0, [sp, #0x26] - mov r0, r1, asr #0x8 - orr r0, r0, r1, lsl #0x8 - mov r2, #0x0 - strh r0, [sp, #0x28] - add r0, sp, #0x0 - mov r1, #0x2a - mov r3, r2 - bl FUN_0209F930 - add sp, sp, #0x30 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_0209F428: .word 0x021C8F14 -_0209F42C: .word 0x00000608 -_0209F430: .word 0x00000406 -_0209F434: .word 0x021C8F04 - - arm_func_start FUN_0209F438 -FUN_0209F438: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - bl OS_DisableInterrupts - ldr r1, _0209F504 ; =0x7F000001 - mov r4, r0 - cmp r7, r1 - mov r5, #0x0 - beq _0209F46C - ldr r0, _0209F508 ; =0x021C8F04 - ldr r0, [r0, #0x0] - cmp r7, r0 - bne _0209F474 -_0209F46C: - ldr r5, _0209F50C ; =0x021C8F14 - b _0209F4EC -_0209F474: - mov r0, r7 - bl FUN_0209FA68 -_0209F47C: ; 0x0209F47C - cmp r0, #0x0 - bne _0209F494 - mov r0, r7 - bl FUN_0209FA54 -_0209F48C: ; 0x0209F48C - cmp r0, #0x0 - beq _0209F49C -_0209F494: - ldr r5, _0209F510 ; =0x0210621C - b _0209F4EC -_0209F49C: - ldr r1, _0209F514 ; =0x021C8F78 - mov r6, r5 -_0209F4A4: - ldr r0, [r1, #0x0] - cmp r7, r0 - bne _0209F4DC - bl OS_GetTick - mov r2, #0xc - mul r3, r6, r2 - ldr r2, _0209F514 ; =0x021C8F78 - mov r5, r0, lsr #0x10 - add r0, r2, r3 - ldr r2, _0209F518 ; =0x021C8F82 - orr r5, r5, r1, lsl #0x10 - strh r5, [r2, r3] - add r5, r0, #0x4 - b _0209F4EC -_0209F4DC: - add r6, r6, #0x1 - cmp r6, #0x8 - add r1, r1, #0xc - blo _0209F4A4 -_0209F4EC: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, r5 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_0209F504: .word 0x7F000001 -_0209F508: .word 0x021C8F04 -_0209F50C: .word 0x021C8F14 -_0209F510: .word 0x0210621C -_0209F514: .word 0x021C8F78 -_0209F518: .word 0x021C8F82 - - arm_func_start FUN_0209F51C -FUN_0209F51C: ; 0x0209F51C - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl OS_DisableInterrupts - ldr r2, _0209F570 ; =0x021C8EE4 - ldr r1, _0209F574 ; =0x021C8F0C - ldr lr, [r2, #0x0] - ldr r12, [r1, #0x0] - ldr r3, [r2, #0x0] - ldr r1, _0209F578 ; =0x021C8F10 - ldrh r3, [r12, r3] - add r3, lr, r3 - str r3, [r2, #0x0] - ldr r3, [r2, #0x0] - ldr r1, [r1, #0x0] - cmp r3, r1 - movcs r1, #0x0 - strcs r1, [r2, #0x0] - bl OS_RestoreInterrupts - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_0209F570: .word 0x021C8EE4 -_0209F574: .word 0x021C8F0C -_0209F578: .word 0x021C8F10 - - arm_func_start FUN_0209F57C -FUN_0209F57C: ; 0x0209F57C - stmdb sp!, {r4-r10,lr} - mov r6, r0 - bl OS_DisableInterrupts - ldr sl, _0209F644 ; =0x021C8EE4 - ldr sb, _0209F648 ; =0x021C8EDC - ldr r2, [r10, #0x0] - ldr r1, [r9, #0x0] - mov r5, r0 - cmp r2, r1 - bne _0209F5D4 - ldr r8, _0209F64C ; =0x021D3498 - ldr r7, _0209F650 ; =0x021C8F08 - mov r4, #0x0 -_0209F5B0: - ldr r1, [r8, #0x4] - mov r0, r4 - str r1, [r7, #0x0] - bl OS_SleepThread - str r4, [r7, #0x0] - ldr r1, [r10, #0x0] - ldr r0, [r9, #0x0] - cmp r1, r0 - beq _0209F5B0 -_0209F5D4: - mov r0, r5 - bl OS_RestoreInterrupts - ldr r0, _0209F654 ; =0x021C8F0C - ldr r5, [r0, #0x0] - ldr r0, _0209F644 ; =0x021C8EE4 - ldr r1, _0209F658 ; =0x021C8F10 - mov r3, #0x0 -_0209F5F0: - ldr r4, [r1, #0x0] - ldr r2, [r0, #0x0] - sub r2, r4, r2 - cmp r2, #0x2 - strcc r3, [r0, #0x0] - ldr r2, [r0, #0x0] - ldrh r2, [r5, r2] - cmp r2, #0x0 - streq r3, [r0, #0x0] - cmp r2, #0x0 - beq _0209F5F0 - sub r0, r2, #0x2 - ldr r1, _0209F654 ; =0x021C8F0C - str r0, [r6, #0x0] - ldr r0, _0209F644 ; =0x021C8EE4 - ldr r1, [r1, #0x0] - ldr r0, [r0, #0x0] - add r0, r1, r0 - add r0, r0, #0x2 - ldmia sp!, {r4-r10,lr} - bx lr - .balign 4 -_0209F644: .word 0x021C8EE4 -_0209F648: .word 0x021C8EDC -_0209F64C: .word 0x021D3498 -_0209F650: .word 0x021C8F08 -_0209F654: .word 0x021C8F0C -_0209F658: .word 0x021C8F10 - - arm_func_start FUN_0209F65C -FUN_0209F65C: ; 0x0209F65C - stmdb sp!, {lr} - sub sp, sp, #0xc - mov r12, #0x0 - str r12, [sp, #0x0] - str r12, [sp, #0x4] - bl FUN_0209F6C0 - ldr r0, _0209F6BC ; =0x021C8F08 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - addeq sp, sp, #0xc - ldmeqia sp!, {lr} - bxeq lr - ldr r0, [r0, #0x0] - bl OS_IsThreadTerminated -_0209F694: ; 0x0209F694 - cmp r0, #0x0 - addne sp, sp, #0xc - ldmneia sp!, {lr} - bxne lr - ldr r0, _0209F6BC ; =0x021C8F08 - ldr r0, [r0, #0x0] - bl OS_WakeupThreadDirect - add sp, sp, #0xc - ldmia sp!, {lr} - bx lr - .balign 4 -_0209F6BC: .word 0x021C8F08 - - arm_func_start FUN_0209F6C0 -FUN_0209F6C0: ; 0x0209F6C0 - stmdb sp!, {r4-r8,lr} - ldr r4, _0209F918 ; =0x021C8F0C - mov r7, r0 - ldr r0, [r4, #0x0] - mov r6, r2 - mov r5, r3 - cmp r0, #0x0 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - ldr r2, _0209F91C ; =0x021C8F10 - ldr r2, [r2, #0x0] - cmp r2, #0x0 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - ldr r2, [sp, #0x1c] - add r2, r5, r2 - cmp r2, #0x8 - ldmccia sp!, {r4-r8,lr} - bxcc lr - ldr r3, _0209F920 ; =0x000005E4 - cmp r2, r3 - ldmhiia sp!, {r4-r8,lr} - bxhi lr - ldr r3, _0209F924 ; =0x02106230 - ldrb r8, [r6, #0x0] - ldrb r4, [r3, #0x0] - cmp r8, r4 - ldmneia sp!, {r4-r8,lr} - bxne lr - ldrb r8, [r6, #0x1] - ldrb r4, [r3, #0x1] - cmp r8, r4 - ldmneia sp!, {r4-r8,lr} - bxne lr - ldrb r4, [r6, #0x2] - ldrb r3, [r3, #0x2] - cmp r4, r3 - ldmneia sp!, {r4-r8,lr} - bxne lr - ldrb r3, [r6, #0x6] - cmp r3, #0x8 - ldmneia sp!, {r4-r8,lr} - bxne lr - ldrb r3, [r6, #0x7] - cmp r3, #0x0 - beq _0209F784 - cmp r3, #0x6 - ldmneia sp!, {r4-r8,lr} - bxne lr -_0209F784: - ldr r4, _0209F928 ; =0x021C8EDC - add r2, r2, #0x9 - bic r2, r2, #0x1 - ldr lr, [r4, #0x0] - mov r3, r2, lsl #0x10 - ldr ip, _0209F92C ; =0x021C8EE4 - ldr r8, [r4, #0x0] - ldr r4, [r12, #0x0] - mov r2, r3, lsr #0x10 - cmp r8, r4 - add r4, lr, r3, lsr #0x10 - bhs _0209F7C4 - ldr r3, [r12, #0x0] - cmp r3, r4 - ldmlsia sp!, {r4-r8,lr} - bxls lr -_0209F7C4: - ldr r3, _0209F91C ; =0x021C8F10 - ldr r8, [r3, #0x0] - cmp r4, r8 - bne _0209F7F0 - ldr r3, _0209F92C ; =0x021C8EE4 - mov r4, #0x0 - ldr r3, [r3, #0x0] - cmp r3, #0x0 - bne _0209F814 - ldmia sp!, {r4-r8,lr} - bx lr -_0209F7F0: - ldr r3, [r3, #0x0] - cmp r4, r3 - bls _0209F814 - ldr r3, _0209F92C ; =0x021C8EE4 - mov r4, r2 - ldr r3, [r3, #0x0] - cmp r3, r2 - ldmlsia sp!, {r4-r8,lr} - bxls lr -_0209F814: - ldr ip, _0209F928 ; =0x021C8EDC - ldr r3, _0209F91C ; =0x021C8F10 - ldr lr, [r12, #0x0] - ldr r8, [r3, #0x0] - add lr, lr, r2 - cmp lr, r8 - bls _0209F858 - ldr r8, [r3, #0x0] - ldr r3, [r12, #0x0] - sub r3, r8, r3 - cmp r3, #0x2 - ldrcs r3, [r12, #0x0] - movcs r8, #0x0 - strcsh r8, [r0, r3] - ldr r0, _0209F928 ; =0x021C8EDC - mov r3, #0x0 - str r3, [r0, #0x0] -_0209F858: - ldr ip, _0209F918 ; =0x021C8F0C - ldr r3, _0209F928 ; =0x021C8EDC - ldr r8, [r12, #0x0] - ldr lr, [r3, #0x0] - mov r0, r1 - strh r2, [r8, lr] - ldr r12, [r12, #0x0] - ldr r1, [r3, #0x0] - mov r2, #0x6 - add r1, r12, r1 - add r1, r1, #0x2 - bl MI_CpuCopy8 - ldr r1, _0209F918 ; =0x021C8F0C - ldr r0, _0209F928 ; =0x021C8EDC - ldr r2, [r1, #0x0] - ldr r1, [r0, #0x0] - mov r0, r7 - add r1, r2, r1 - add r1, r1, #0x8 - mov r2, #0x6 - bl MI_CpuCopy8 - ldr r1, _0209F918 ; =0x021C8F0C - ldr r0, _0209F928 ; =0x021C8EDC - ldr r2, [r1, #0x0] - ldr r1, [r0, #0x0] - add r0, r6, #0x6 - add r1, r2, r1 - add r1, r1, #0xe - sub r2, r5, #0x6 - bl MI_CpuCopy8 - ldr r0, [sp, #0x18] - cmp r0, #0x0 - beq _0209F908 - ldr r2, [sp, #0x1c] - cmp r2, #0x0 - beq _0209F908 - ldr r3, _0209F918 ; =0x021C8F0C - ldr r1, _0209F928 ; =0x021C8EDC - ldr r3, [r3, #0x0] - ldr r1, [r1, #0x0] - add r1, r3, r1 - add r1, r1, #0x8 - add r1, r1, r5 - bl MI_CpuCopy8 -_0209F908: - ldr r0, _0209F928 ; =0x021C8EDC - str r4, [r0, #0x0] - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_0209F918: .word 0x021C8F0C -_0209F91C: .word 0x021C8F10 -_0209F920: .word 0x000005E4 -_0209F924: .word 0x02106230 -_0209F928: .word 0x021C8EDC -_0209F92C: .word 0x021C8EE4 - - arm_func_start FUN_0209F930 -FUN_0209F930: ; 0x0209F930 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - add r1, r6, r5 - mov r4, r3 - cmp r1, r2 - beq _0209F958 - mov r0, r2 - mov r2, r4 - bl MI_CpuCopy8 -_0209F958: - ldr r0, _0209F998 ; =0x02106230 - add r1, r6, #0x6 - mov r2, #0x6 - bl MI_CpuCopy8 - add r2, r5, r4 - mov r0, r6 - add r1, r6, #0x6 - sub r2, r2, #0x6 - bl FUN_020A8644 -_0209F97C: ; 0x0209F97C - cmp r0, #0x0 - movlt r1, #0x1 - ldr r0, _0209F99C ; =0x021C8EA8 - movge r1, #0x0 - strb r1, [r0, #0x0] - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_0209F998: .word 0x02106230 -_0209F99C: .word 0x021C8EA8 - - arm_func_start FUN_0209F9A0 -FUN_0209F9A0: - mov r12, #0x0 -_0209F9A4: - ldrh r3, [r0], #0x2 - ldrh r2, [r1], #0x2 - cmp r3, r2 - movne r0, #0x1 - bxne lr - add r12, r12, #0x1 - cmp r12, #0x3 - blt _0209F9A4 - mov r0, #0x0 - bx lr - - arm_func_start FUN_0209F9CC -FUN_0209F9CC: - stmdb sp!, {r4-r6,lr} - ldr r1, _0209FA4C ; =0x021C8F04 - mov r5, #0x1 - ldr r1, [r1, #0x0] - mov r6, r0 - mov r4, r5 - mov r2, r5 - mov r0, r5 - cmp r1, #0x0 - beq _0209F9FC - cmp r6, r1 - movne r0, #0x0 -_0209F9FC: - cmp r0, #0x0 - bne _0209FA10 - ldr r0, _0209FA50 ; =0x7F000001 - cmp r6, r0 - movne r2, #0x0 -_0209FA10: - cmp r2, #0x0 - bne _0209FA28 - mov r0, r6 - bl FUN_0209FA68 -_0209FA20: ; 0x0209FA20 - cmp r0, #0x0 - moveq r4, #0x0 -_0209FA28: - cmp r4, #0x0 - bne _0209FA40 - mov r0, r6 - bl FUN_0209FA54 -_0209FA38: ; 0x0209FA38 - cmp r0, #0x0 - moveq r5, #0x0 -_0209FA40: - mov r0, r5 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_0209FA4C: .word 0x021C8F04 -_0209FA50: .word 0x7F000001 - - arm_func_start FUN_0209FA54 -FUN_0209FA54: - and r0, r0, #0xf0000000 - cmp r0, #0xe0000000 - moveq r0, #0x1 - movne r0, #0x0 - bx lr - - arm_func_start FUN_0209FA68 -FUN_0209FA68: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, #0x0 - bl FUN_0209FAD8 -_0209FA7C: ; 0x0209FA7C - cmp r0, #0x0 - beq _0209FA9C - ldr r0, _0209FAAC ; =0x021C8ED0 - ldr r0, [r0, #0x0] - mvn r1, r0 - and r0, r1, r5 - cmp r1, r0 - moveq r4, #0x1 -_0209FA9C: - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_0209FAAC: .word 0x021C8ED0 - - arm_func_start FUN_0209FAB0 -FUN_0209FAB0: - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_0209FAD8 -_0209FABC: ; 0x0209FABC - cmp r0, #0x0 - ldreq r0, _0209FAD4 ; =0x021C8EE0 - ldreq r4, [r0, #0x0] - mov r0, r4 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_0209FAD4: .word 0x021C8EE0 - - arm_func_start FUN_0209FAD8 -FUN_0209FAD8: - mvn r1, #0x0 - cmp r0, r1 - mov r12, #0x1 - beq _0209FB14 - ldr r1, _0209FB1C ; =0x7F000001 - cmp r0, r1 - beq _0209FB14 - ldr r2, _0209FB20 ; =0x021C8ED0 - ldr r1, _0209FB24 ; =0x021C8F04 - ldr r3, [r2, #0x0] - ldr r1, [r1, #0x0] - and r2, r0, r3 - and r0, r1, r3 - cmp r2, r0 - movne r12, #0x0 -_0209FB14: - mov r0, r12 - bx lr - .balign 4 -_0209FB1C: .word 0x7F000001 -_0209FB20: .word 0x021C8ED0 -_0209FB24: .word 0x021C8F04 - - arm_func_start FUN_0209FB28 -FUN_0209FB28: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r2 - mov r2, r3 - mov r5, r1 - bl FUN_0209FBC8 - mov r2, r0 - add r0, r4, #0xc - mov r1, #0x8 - bl FUN_0209FBC8 - add r1, r0, r5 - ands r0, r1, #0x10000 - ldrne r0, _0209FB80 ; =0x0000FFFF - addne r1, r1, #0x1 - andne r1, r1, r0 - ldr r0, _0209FB80 ; =0x0000FFFF - cmp r1, r0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_0209FB80: .word 0x0000FFFF - - arm_func_start FUN_0209FB84 -FUN_0209FB84: ; 0x0209FB84 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r2, #0x0 - bl FUN_0209FBC8 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - bl FUN_0209FBAC - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_0209FBAC -FUN_0209FBAC: ; 0x0209FBAC - ldr r1, _0209FBC4 ; =0x0000FFFF - eor r0, r0, r1 - mov r0, r0, lsl #0x10 - movs r0, r0, lsr #0x10 - moveq r0, r1 - bx lr - .balign 4 -_0209FBC4: .word 0x0000FFFF - - arm_func_start FUN_0209FBC8 -FUN_0209FBC8: ; 0x0209FBC8 - ands r3, r0, #0x1 - beq _0209FC00 - cmp r1, #0x1 - bls _0209FC54 -_0209FBD8: - ldrb r12, [r0, #0x0] - ldrb r3, [r0, #0x1] - sub r1, r1, #0x2 - cmp r1, #0x1 - orr r3, r3, r12, lsl #0x8 - mov r3, r3, lsl #0x10 - add r2, r2, r3, lsr #0x10 - add r0, r0, #0x2 - bhi _0209FBD8 - b _0209FC54 -_0209FC00: - mov r2, r2, lsl #0x10 - mov r3, r2, lsr #0x10 - mov r2, r3, asr #0x8 - orr r2, r2, r3, lsl #0x8 - mov r2, r2, lsl #0x10 - cmp r1, #0x1 - mov r2, r2, lsr #0x10 - bls _0209FC38 -_0209FC20: - ldrh r3, [r0, #0x0] - sub r1, r1, #0x2 - cmp r1, #0x1 - add r2, r2, r3 - add r0, r0, #0x2 - bhi _0209FC20 -_0209FC38: - ldr r3, _0209FC7C ; =0x00FF00FF - ldr ip, _0209FC80 ; =0xFF00FF00 - and r3, r3, r2, lsr #0x8 - and r2, r12, r2, lsl #0x8 - orr r3, r3, r2 - mov r2, r3, lsr #0x10 - orr r2, r2, r3, lsl #0x10 -_0209FC54: - cmp r1, #0x0 - ldrneb r0, [r0, #0x0] - addne r2, r2, r0, lsl #0x8 - ldr r0, _0209FC84 ; =0x0000FFFF - and r0, r2, r0 - add r0, r0, r2, lsr #0x10 - add r0, r0, r0, lsr #0x10 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - bx lr - .balign 4 -_0209FC7C: .word 0x00FF00FF -_0209FC80: .word 0xFF00FF00 -_0209FC84: .word 0x0000FFFF - - arm_func_start FUN_0209FC88 -FUN_0209FC88: ; 0x0209FC88 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r2, _0209FCB8 ; =0x02106218 - ldr r0, _0209FCBC ; =0x021C9160 - mov r1, r4 - str r4, [r2, #0x0] - bl OS_SetThreadPriority - ldr r0, _0209FCC0 ; =0x021C90A0 - mov r1, r4 - bl OS_SetThreadPriority - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_0209FCB8: .word 0x02106218 -_0209FCBC: .word 0x021C9160 -_0209FCC0: .word 0x021C90A0 - - arm_func_start FUN_0209FCC4 -FUN_0209FCC4: - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_0209FD34 - ldr r0, _0209FD10 ; =0x021C90A0 - bl OS_JoinThread - ldr r0, _0209FD14 ; =0x021C9160 - bl OS_DestroyThread - ldr r1, _0209FD18 ; =0x021C8F08 - mov r0, #0x0 - str r0, [r1, #0x0] - bl FUN_020A0098 - ldr r1, _0209FD1C ; =0x021C8F0C - mov r2, #0x0 - ldr r0, _0209FD20 ; =0x021C8F10 - str r2, [r1, #0x0] - str r2, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_0209FD10: .word 0x021C90A0 -_0209FD14: .word 0x021C9160 -_0209FD18: .word 0x021C8F08 -_0209FD1C: .word 0x021C8F0C -_0209FD20: .word 0x021C8F10 - - arm_func_start FUN_0209FD24 -FUN_0209FD24: ; 0x0209FD24 - ldr r1, _0209FD30 ; =0x021C8EF0 - str r0, [r1, #0x0] - bx lr - .balign 4 -_0209FD30: .word 0x021C8EF0 - - arm_func_start FUN_0209FD34 -FUN_0209FD34: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - bl OS_DisableInterrupts - mov r5, r0 - ldr r0, _0209FD8C ; =0x021C90A0 - bl OS_IsThreadTerminated - movs r4, r0 - bne _0209FD74 - ldr r1, _0209FD90 ; =0x021C8EF8 - ldr r0, [r1, #0x0] - cmp r0, #0x0 - bne _0209FD74 - ldr r0, _0209FD8C ; =0x021C90A0 - mov r2, #0x1 - str r2, [r1, #0x0] - bl OS_WakeupThreadDirect -_0209FD74: - mov r0, r5 - bl OS_RestoreInterrupts - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_0209FD8C: .word 0x021C90A0 -_0209FD90: .word 0x021C8EF8 - - arm_func_start FUN_0209FD94 -FUN_0209FD94: ; 0x0209FD94 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - mov r4, r0 - ldr r0, _0209FFD4 ; =0x02000BEC - bl OSi_ReferSymbol - ldr r12, [r4, #0x14] - ldr r6, [r4, #0x18] - mov r1, #0x0 - cmp r6, r1 - cmpeq r12, r1 - beq _0209FDEC - ldr r0, _0209FFD8 ; =0x021C8F24 - ldr r5, _0209FFDC ; =0x6C078965 - ldr r3, _0209FFE0 ; =0x5D588B65 - ldr r2, _0209FFE4 ; =0x00269EC3 - str r12, [r0, #0x0] - str r6, [r0, #0x4] - str r5, [r0, #0x8] - str r3, [r0, #0xc] - str r2, [r0, #0x10] - str r1, [r0, #0x14] - b _0209FE1C -_0209FDEC: - bl OS_GetTick - ldr r2, _0209FFD8 ; =0x021C8F24 - ldr ip, _0209FFDC ; =0x6C078965 - ldr r6, _0209FFE0 ; =0x5D588B65 - ldr r5, _0209FFE4 ; =0x00269EC3 - mov r3, #0x0 - str r0, [r2, #0x0] - str r1, [r2, #0x4] - str r12, [r2, #0x8] - str r6, [r2, #0xc] - str r5, [r2, #0x10] - str r3, [r2, #0x14] -_0209FE1C: - ldr r2, [r4, #0x4] - cmp r2, #0x0 - beq _0209FE4C - ldr r0, [r4, #0x8] - cmp r0, #0x0 - beq _0209FE4C - ldr r1, _0209FFE8 ; =0x021C8EC8 - ldr r0, _0209FFEC ; =0x021C8EF4 - str r2, [r1, #0x0] - ldr r1, [r4, #0x8] - str r1, [r0, #0x0] - b _0209FE60 -_0209FE4C: - ldr r2, _0209FFF0 ; =FUN_020A0058 - ldr r1, _0209FFE8 ; =0x021C8EC8 - ldr r0, _0209FFEC ; =0x021C8EF4 - str r2, [r1, #0x0] - str r2, [r0, #0x0] -_0209FE60: - ldr r1, [r4, #0x0] - ldr r0, _0209FFF4 ; =0x021C8EC4 - ldr ip, _0209FFD8 ; =0x021C8F24 - str r1, [r0, #0x0] - ldr r1, [r4, #0x24] - ldr r3, [r12, #0x8] - cmp r1, #0x0 - ldrne r0, _0209FFF8 ; =0x021C8EB0 - strneh r1, [r0, #0x0] - ldreq r1, _0209FFFC ; =0x000005B4 - ldreq r0, _0209FFF8 ; =0x021C8EB0 - streqh r1, [r0, #0x0] - ldr r2, [r4, #0x28] - ldr r1, _020A0000 ; =0x021C8EE8 - ldr r0, _020A0004 ; =0x021C8ED8 - str r2, [r1, #0x0] - ldr r1, [r4, #0x2c] - ldr r2, [r12, #0x0] - str r1, [r0, #0x0] - ldr r1, [r4, #0xc] - umull lr, r5, r3, r2 - cmp r1, #0x0 - ldrne r0, _020A0008 ; =0x021C8ECC - strne r1, [r0, #0x0] - ldreq r1, _0209FFF0 ; =FUN_020A0058 - ldreq r0, _020A0008 ; =0x021C8ECC - streq r1, [r0, #0x0] - ldr r1, [r4, #0x10] - cmp r1, #0x0 - ldrne r0, _020A000C ; =0x021C8EFC - strne r1, [r0, #0x0] - ldreq r1, _020A0010 ; =FUN_020A0050 - ldreq r0, _020A000C ; =0x021C8EFC - streq r1, [r0, #0x0] - ldr r1, [r12, #0x4] - ldr r0, _020A0014 ; =0x00000F88 - mla r5, r3, r1, r5 - ldr r1, [r12, #0xc] - ldr r3, [r12, #0x10] - mla r5, r1, r2, r5 - adds r2, r3, lr - ldr r1, [r12, #0x14] - mov r3, #0x0 - adc r1, r1, r5 - umull lr, r5, r1, r0 - mla r5, r1, r3, r5 - mla r5, r3, r0, r5 - ldr r6, [r4, #0x1c] - ldr r0, _020A0018 ; =0x021C8F0C - ldr lr, _020A001C ; =0x021C8F10 - str r6, [r0, #0x0] - ldr r4, [r4, #0x20] - ldr r0, _020A0020 ; =0x021C8EE4 - str r4, [lr, #0x0] - str r3, [r0, #0x0] - ldr lr, _020A0024 ; =0x021C8EDC - ldr r4, _020A0028 ; =0x021C8EBC - add r5, r5, #0x400 - ldr r0, _020A002C ; =0x021C8F14 - str r3, [lr, #0x0] - str r2, [r12, #0x0] - str r1, [r12, #0x4] - strh r5, [r4, #0x0] - bl OS_GetMacAddress - ldr r0, _020A0030 ; =0x021C8EAC - mov r2, #0x0 - strb r2, [r0, #0x0] - mov r1, #0x800 - str r1, [sp, #0x0] - ldr r0, _020A0034 ; =0x02106218 - ldr r1, _020A0038 ; =FUN_0209CD3C - ldr r4, [r0, #0x0] - ldr r0, _020A003C ; =0x021C9160 - ldr r3, _020A0040 ; =0x021CA6E0 - str r4, [sp, #0x4] - bl OS_CreateThread - mov r1, #0x800 - ldr r0, _020A0034 ; =0x02106218 - str r1, [sp, #0x0] - ldr r1, [r0, #0x0] - ldr r0, _020A0044 ; =0x021C90A0 - str r1, [sp, #0x4] - ldr r1, _020A0048 ; =FUN_0209BA80 - ldr r3, _020A004C ; =0x021C9EE0 - mov r2, #0x0 - bl OS_CreateThread - ldr r0, _020A003C ; =0x021C9160 - bl OS_WakeupThreadDirect - ldr r0, _020A0044 ; =0x021C90A0 - bl OS_WakeupThreadDirect - add sp, sp, #0x8 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_0209FFD4: .word 0x02000BEC -_0209FFD8: .word 0x021C8F24 -_0209FFDC: .word 0x6C078965 -_0209FFE0: .word 0x5D588B65 -_0209FFE4: .word 0x00269EC3 -_0209FFE8: .word 0x021C8EC8 -_0209FFEC: .word 0x021C8EF4 -_0209FFF0: .word FUN_020A0058 -_0209FFF4: .word 0x021C8EC4 -_0209FFF8: .word 0x021C8EB0 -_0209FFFC: .word 0x000005B4 -_020A0000: .word 0x021C8EE8 -_020A0004: .word 0x021C8ED8 -_020A0008: .word 0x021C8ECC -_020A000C: .word 0x021C8EFC -_020A0010: .word FUN_020A0050 -_020A0014: .word 0x00000F88 -_020A0018: .word 0x021C8F0C -_020A001C: .word 0x021C8F10 -_020A0020: .word 0x021C8EE4 -_020A0024: .word 0x021C8EDC -_020A0028: .word 0x021C8EBC -_020A002C: .word 0x021C8F14 -_020A0030: .word 0x021C8EAC -_020A0034: .word 0x02106218 -_020A0038: .word FUN_0209CD3C -_020A003C: .word 0x021C9160 -_020A0040: .word 0x021CA6E0 -_020A0044: .word 0x021C90A0 -_020A0048: .word FUN_0209BA80 -_020A004C: .word 0x021C9EE0 - - arm_func_start FUN_020A0050 -FUN_020A0050: ; 0x020A0050 - mov r0, #0x1 - bx lr - - arm_func_start FUN_020A0058 -FUN_020A0058: ; 0x020A0058 - bx lr - - arm_func_start FUN_020A005C -FUN_020A005C: - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _020A0094 ; =0x021C8ED8 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020A0084 - bl OS_YieldThread - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A0084: - bl OS_Sleep - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A0094: .word 0x021C8ED8 - - arm_func_start FUN_020A0098 -FUN_020A0098: ; 0x020A0098 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr r1, _020A01B8 ; =0x021C8F04 - ldr r5, _020A01BC ; =0x021C8EC0 - ldr r1, [r1, #0x0] - ldr r3, _020A01C0 ; =0x021C8F1C - cmp r1, #0x0 - mov r1, #0x0 - movne r6, #0x1 - ldr ip, _020A01C4 ; =0x021C8ED0 - ldr r2, _020A01C8 ; =0x021C8ED4 - moveq r6, #0x0 - ldr lr, _020A01B8 ; =0x021C8F04 - ldr r4, _020A01CC ; =0x021C8EE0 - cmp r6, #0x0 - str r1, [r12, #0x0] - str r1, [r3, #0x0] - str r1, [r3, #0x4] - str r1, [r2, #0x0] - addeq sp, sp, #0x4 - str r0, [r5, #0x0] - str r1, [lr, #0x0] - str r1, [r4, #0x0] - ldmeqia sp!, {r4-r7,lr} - bxeq lr - ldr r0, _020A01D0 ; =0x021C8F78 - mov r2, #0x60 - bl MI_CpuFill8 - ldr r0, _020A01D4 ; =0x021D3498 - ldr r5, [r0, #0x8] - cmp r5, #0x0 - beq _020A016C - mov r4, #0x0 -_020A011C: - ldr r1, [r5, #0xa4] - cmp r1, #0x0 - beq _020A0160 - ldr r0, [r1, #0x0] - cmp r0, #0x0 - beq _020A0160 - ldrb r0, [r1, #0x8] - cmp r0, #0xa - beq _020A0148 - cmp r0, #0xb - strneb r4, [r1, #0x8] -_020A0148: - ldr r0, [r1, #0x4] - cmp r0, #0x0 - beq _020A0160 - str r4, [r1, #0x4] - ldr r0, [r1, #0x0] - bl OS_WakeupThreadDirect -_020A0160: - ldr r5, [r5, #0x68] - cmp r5, #0x0 - bne _020A011C -_020A016C: - ldr r6, _020A01D8 ; =0x021C9520 - mov r7, #0x0 - ldr r4, _020A01DC ; =0x021C8EF4 - mov r5, r7 -_020A017C: - ldrh r0, [r6, #0x4] - cmp r0, #0x0 - beq _020A0198 - ldr r0, [r6, #0x34] - ldr r1, [r4, #0x0] - blx r1 - strh r5, [r6, #0x4] -_020A0198: - add r7, r7, #0x1 - cmp r7, #0x8 - add r6, r6, #0x38 - blt _020A017C - bl FUN_020A01E0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_020A01B8: .word 0x021C8F04 -_020A01BC: .word 0x021C8EC0 -_020A01C0: .word 0x021C8F1C -_020A01C4: .word 0x021C8ED0 -_020A01C8: .word 0x021C8ED4 -_020A01CC: .word 0x021C8EE0 -_020A01D0: .word 0x021C8F78 -_020A01D4: .word 0x021D3498 -_020A01D8: .word 0x021C9520 -_020A01DC: .word 0x021C8EF4 - - arm_func_start FUN_020A01E0 -FUN_020A01E0: ; 0x020A01E0 - ldr ip, _020A01F4 ; =MI_CpuFill8 - ldr r0, _020A01F8 ; =0x021CA6FC - mov r1, #0x0 - mov r2, #0x170 - bx r12 - .balign 4 -_020A01F4: .word MI_CpuFill8 -_020A01F8: .word 0x021CA6FC - - arm_func_start FUN_020A01FC -FUN_020A01FC: ; 0x020A01FC - stmdb sp!, {r4-r6,lr} - mov r5, r0 - bl OS_DisableInterrupts - ldr r4, _020A02E0 ; =0x021CA6FC - mov r6, #0x0 - mov r2, r6 - ldr r1, _020A02E4 ; =0x000003BD -_020A0218: - ldrb r3, [r4, #0x5a] - cmp r3, #0x0 - beq _020A0234 - ldr r3, [r4, #0x50] - sub r3, r5, r3 - cmp r3, r1 - strgtb r2, [r4, #0x5a] -_020A0234: - add r6, r6, #0x1 - cmp r6, #0x4 - add r4, r4, #0x5c - blt _020A0218 - bl OS_RestoreInterrupts - ldr r0, _020A02E8 ; =0x021D3498 - ldr r4, [r0, #0x8] - cmp r4, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - mov r6, #0x0 -_020A0260: - ldr r1, [r4, #0xa4] - cmp r1, #0x0 - beq _020A02CC - ldr r0, [r1, #0x0] - cmp r0, #0x0 - beq _020A02CC - ldrb r0, [r1, #0x9] - cmp r0, #0x0 - beq _020A02CC - ldrb r0, [r1, #0x8] - cmp r0, #0x4 - bne _020A02CC - ldr r0, [r1, #0xc] - ldrb r0, [r0, #0x455] - cmp r0, #0x8 - bhs _020A02CC - ldr r0, [r1, #0x10] - sub r0, r5, r0 - cmp r0, #0xef - ble _020A02CC - ldr r0, [r1, #0x4] - cmp r0, #0x2 - bne _020A02CC - strb r6, [r1, #0x8] - str r6, [r1, #0x4] - ldr r0, [r1, #0x0] - bl OS_WakeupThreadDirect -_020A02CC: - ldr r4, [r4, #0x68] - cmp r4, #0x0 - bne _020A0260 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A02E0: .word 0x021CA6FC -_020A02E4: .word 0x000003BD -_020A02E8: .word 0x021D3498 - - arm_func_start FUN_020A02EC -FUN_020A02EC: - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, _020A0318 ; =0x02000C04 - bl OSi_ReferSymbol - ldr r0, _020A031C ; =0x021D3498 - ldr r0, [r0, #0x4] - ldr r0, [r0, #0xa4] - cmp r0, #0x0 - strneb r4, [r0, #0x9] - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A0318: .word 0x02000C04 -_020A031C: .word 0x021D3498 - - arm_func_start FUN_020A0320 -FUN_020A0320: ; 0x020A0320 - stmdb sp!, {r4,lr} - ldr r4, [r0, #0xc] - mov r0, #0x0 - strb r0, [r4, #0x455] - ldr r0, [r4, #0x824] - cmp r0, #0x0 - beq _020A0348 - ldr r1, _020A0358 ; =0x021C8EF4 - ldr r1, [r1, #0x0] - blx r1 -_020A0348: - mov r0, #0x0 - str r0, [r4, #0x824] - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A0358: .word 0x021C8EF4 - - arm_func_start FUN_020A035C -FUN_020A035C: ; 0x020A035C - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x20 - mov r5, r0 - ldr r4, [r5, #0xc] - ldrb r0, [r4, #0x455] - cmp r0, #0x8 - bne _020A03CC - mov r12, #0x0 - mov r6, #0x15 - mov lr, #0x3 - mov r3, #0x2 - mov r2, #0x1 - add r1, sp, #0x4 - mov r0, r4 - strb r6, [sp, #0x4] - strb lr, [sp, #0x5] - strb r12, [sp, #0x6] - strb r12, [sp, #0x7] - strb r3, [sp, #0x8] - strb r2, [sp, #0x9] - strb r12, [sp, #0xa] - bl FUN_020A19F4 - mov r2, #0x0 - mov r1, r0 - add r0, sp, #0x4 - mov r3, r2 - str r5, [sp, #0x0] - bl FUN_0209C1D4 -_020A03CC: - mov r0, #0x0 - strb r0, [r4, #0x455] - add sp, sp, #0x20 - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_020A03E0 -FUN_020A03E0: ; 0x020A03E0 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x24 - ldr r4, [sp, #0x48] - mov r9, r1 - mov r1, r4 - mov r10, r0 - mov r0, #0x0 - ldr r1, [r1, #0xc] - str r0, [sp, #0x8] - str r0, [sp, #0x1c] - str r0, [sp, #0x14] - str r0, [sp, #0x18] - mov r0, #0x17 - str r0, [sp, #0xc] - mov r0, #0x3 - str r4, [sp, #0x48] - str r1, [sp, #0x4] - mov r8, r2 - add r6, r9, r3 - str r0, [sp, #0x10] -_020A0430: - ldr r0, _020A052C ; =0x00000B4F - ldr r1, _020A0530 ; =0x021C8EC8 - cmp r6, r0 - movgt r5, r0 - movle r5, r6 - ldr r1, [r1, #0x0] - add r0, r5, #0x19 - blx r1 - movs r7, r0 - beq _020A051C - cmp r9, r5 - movcs r4, r5 - movcc r4, r9 - mov r0, r10 - add r1, r7, #0x5 - mov r2, r4 - sub r11, r5, r4 - bl MI_CpuCopy8 - add r1, r7, #0x5 - mov r0, r8 - add r1, r1, r4 - mov r2, r11 - add r10, r10, r4 - sub r9, r9, r4 - bl MI_CpuCopy8 - ldr r0, [sp, #0xc] - mov r1, r7 - strb r0, [r7, #0x0] - ldr r0, [sp, #0x10] - add r8, r8, r11 - strb r0, [r7, #0x1] - ldr r0, [sp, #0x14] - strb r0, [r7, #0x2] - mov r0, r5, asr #0x8 - strb r0, [r7, #0x3] - ldr r0, [sp, #0x4] - strb r5, [r7, #0x4] - bl FUN_020A19F4 - ldr r1, [sp, #0x48] - ldr r2, [sp, #0x18] - mov r4, r0 - str r1, [sp, #0x0] - mov r0, r7 - mov r1, r4 - mov r3, r2 - bl FUN_0209C1D4 - cmp r0, r4 - ldr r1, _020A0534 ; =0x021C8EF4 - mov r0, r7 - ldr r1, [r1, #0x0] - ldrcc r5, [sp, #0x1c] - blx r1 - ldr r0, [sp, #0x8] - subs r6, r6, r5 - add r0, r0, r5 - str r0, [sp, #0x8] - beq _020A051C - cmp r5, #0x0 - bne _020A0430 -_020A051C: - ldr r0, [sp, #0x8] - add sp, sp, #0x24 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020A052C: .word 0x00000B4F -_020A0530: .word 0x021C8EC8 -_020A0534: .word 0x021C8EF4 - - arm_func_start FUN_020A0538 -FUN_020A0538: ; 0x020A0538 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r4, [r5, #0xc] - ldr r0, [r4, #0x824] - cmp r0, #0x0 - beq _020A0560 - ldrb r0, [r4, #0x456] - cmp r0, #0x0 - bne _020A0568 -_020A0560: - mov r0, r5 - bl FUN_020A05D4 -_020A0568: - ldr r1, [r4, #0x824] - cmp r1, #0x0 - beq _020A0594 - ldrb r0, [r4, #0x456] - cmp r0, #0x0 - ldrne r1, [r4, #0x828] - ldrne r0, [r4, #0x82c] - addne sp, sp, #0x4 - subne r0, r1, r0 - ldmneia sp!, {r4-r5,lr} - bxne lr -_020A0594: - cmp r1, #0x0 - bne _020A05C4 - ldrb r0, [r5, #0x8] - cmp r0, #0x4 - bne _020A05B4 - ldrb r0, [r4, #0x455] - cmp r0, #0x9 - bne _020A05C4 -_020A05B4: - add sp, sp, #0x4 - mvn r0, #0x0 - ldmia sp!, {r4-r5,lr} - bx lr -_020A05C4: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_020A05D4 -FUN_020A05D4: ; 0x020A05D4 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - mov r5, r0 - ldr r4, [r5, #0xc] - ldr r0, [r4, #0x824] - cmp r0, #0x0 - bne _020A0684 - ldr r0, [r5, #0x44] - cmp r0, #0x5 - addcc sp, sp, #0x8 - ldmccia sp!, {r4-r6,lr} - bxcc lr - add r0, sp, #0x0 - mov r1, r5 - bl FUN_0209C6C0 - ldrb r2, [r0, #0x3] - ldrb r0, [r0, #0x4] - ldr r1, _020A0730 ; =0x00004805 - add r0, r0, r2, lsl #0x8 - add r0, r0, #0x5 - str r0, [sp, #0x0] - cmp r0, r1 - movhi r0, #0x9 - addhi sp, sp, #0x8 - strhib r0, [r4, #0x455] - ldmhiia sp!, {r4-r6,lr} - bxhi lr - ldr r1, _020A0734 ; =0x021C8EC8 - ldr r1, [r1, #0x0] - blx r1 - str r0, [r4, #0x824] - ldr r0, [r4, #0x824] - cmp r0, #0x0 - moveq r0, #0x9 - addeq sp, sp, #0x8 - streqb r0, [r4, #0x455] - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldr r1, [sp, #0x0] - mov r0, #0x0 - str r1, [r4, #0x828] - str r0, [r4, #0x82c] - strb r0, [r4, #0x456] - b _020A0698 -_020A0684: - ldr r0, [r5, #0x44] - cmp r0, #0x0 - addeq sp, sp, #0x8 - ldmeqia sp!, {r4-r6,lr} - bxeq lr -_020A0698: - add r0, sp, #0x0 - mov r1, r5 - bl FUN_0209C6C0 - ldr r3, [r4, #0x828] - ldr r2, [r4, #0x82c] - ldr r1, [sp, #0x0] - sub r2, r3, r2 - cmp r1, r2 - strcs r2, [sp, #0x0] - movcs r6, #0x1 - ldr r3, [r4, #0x824] - ldr r1, [r4, #0x82c] - ldr r2, [sp, #0x0] - add r1, r3, r1 - movcc r6, #0x0 - bl MI_CpuCopy8 -_020A06D8: ; 0x020A06D8 - ldr r0, [sp, #0x0] - mov r1, r5 - bl FUN_0209C580 -_020A06E4: ; 0x020A06E4 - cmp r6, #0x0 - beq _020A0714 - ldr r1, [r4, #0x824] - mov r0, r4 - bl FUN_020A16E8 - ldrb r0, [r4, #0x456] - add sp, sp, #0x8 - cmp r0, #0x0 - moveq r0, #0x0 - streq r0, [r4, #0x824] - ldmia sp!, {r4-r6,lr} - bx lr -_020A0714: - ldr r1, [r4, #0x82c] - ldr r0, [sp, #0x0] - add r0, r1, r0 - str r0, [r4, #0x82c] - add sp, sp, #0x8 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A0730: .word 0x00004805 -_020A0734: .word 0x021C8EC8 - - arm_func_start FUN_020A0738 -FUN_020A0738: ; 0x020A0738 - stmdb sp!, {r4,lr} - ldr r4, [r1, #0xc] - ldr r2, [r4, #0x828] - ldr r1, [r4, #0x82c] - sub r2, r2, r1 - cmp r0, r2 - blo _020A077C - ldr r0, [r4, #0x824] - cmp r0, #0x0 - beq _020A076C - ldr r1, _020A078C ; =0x021C8EF4 - ldr r1, [r1, #0x0] - blx r1 -_020A076C: - mov r0, #0x0 - str r0, [r4, #0x824] - ldmia sp!, {r4,lr} - bx lr -_020A077C: - add r0, r1, r0 - str r0, [r4, #0x82c] - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A078C: .word 0x021C8EF4 - - arm_func_start FUN_020A0790 -FUN_020A0790: ; 0x020A0790 - stmdb sp!, {r4-r6,lr} - mov r5, r1 - ldr r4, [r5, #0xc] - mov r6, r0 - ldr r12, [r4, #0x824] - cmp r12, #0x0 - beq _020A0818 - ldrb r0, [r4, #0x456] - cmp r0, #0x0 - bne _020A0818 - ldr r3, [r4, #0x82c] - ldr r1, [r4, #0x828] - mov r2, r5 - add r0, r12, r3 - sub r1, r1, r3 - bl FUN_020A1974 -_020A07D0: ; 0x020A07D0 - cmp r0, #0x0 - beq _020A07FC - ldr r1, _020A0870 ; =0x021C8EF4 - ldr r0, [r4, #0x824] - ldr r1, [r1, #0x0] - blx r1 - mov r0, #0x0 - str r0, [r4, #0x824] - str r0, [r6, #0x0] - ldmia sp!, {r4-r6,lr} - bx lr -_020A07FC: - ldr r1, [r4, #0x824] - mov r0, r4 - bl FUN_020A16E8 - ldrb r0, [r4, #0x456] - cmp r0, #0x0 - moveq r0, #0x0 - streq r0, [r4, #0x824] -_020A0818: - ldr r0, [r4, #0x824] - cmp r0, #0x0 - bne _020A084C -_020A0824: - mov r0, r5 - bl FUN_020A1528 - cmp r0, #0x9 - moveq r0, #0x0 - streq r0, [r6, #0x0] - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldr r0, [r4, #0x824] - cmp r0, #0x0 - beq _020A0824 -_020A084C: - ldr r1, [r4, #0x828] - ldr r0, [r4, #0x82c] - sub r0, r1, r0 - str r0, [r6, #0x0] - ldr r1, [r4, #0x824] - ldr r0, [r4, #0x82c] - add r0, r1, r0 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A0870: .word 0x021C8EF4 - - arm_func_start FUN_020A0874 -FUN_020A0874: ; 0x020A0874 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldrb r1, [r5, #0x8] - ldr r4, [r5, #0xc] - cmp r1, #0x4 - beq _020A08A8 - bl FUN_0209C990 -_020A0894: ; 0x020A0894 - cmp r0, #0x0 - addne sp, sp, #0x4 - movne r0, #0x1 - ldmneia sp!, {r4-r5,lr} - bxne lr -_020A08A8: - mov r1, #0x0 - strb r1, [r4, #0x455] - str r1, [r4, #0x1d4] - add r0, r4, #0x2ec - strb r1, [r4, #0x454] - bl FUN_020A41CC - add r0, r4, #0x3a4 - bl FUN_020A3B8C - mov r0, r5 - bl FUN_020A08DC - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_020A08DC -FUN_020A08DC: ; 0x020A08DC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r4, [r5, #0xc] - bl FUN_020A0DE4 -_020A08F0: - mov r0, r5 - bl FUN_020A1528 - cmp r0, #0x9 - addeq sp, sp, #0x4 - moveq r0, #0x1 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - cmp r0, #0x4 - beq _020A0920 - ldrb r0, [r4, #0x31] - cmp r0, #0x0 - beq _020A08F0 -_020A0920: - ldrb r0, [r4, #0x31] - cmp r0, #0x0 - beq _020A095C - mov r0, r4 - bl FUN_020A215C - mov r0, r5 - bl FUN_020A0AF4 -_020A093C: ; 0x020A093C - cmp r0, #0x0 - addne sp, sp, #0x4 - movne r0, #0x1 - ldmneia sp!, {r4-r5,lr} - bxne lr - mov r0, r5 - bl FUN_020A0F94 - b _020A09B4 -_020A095C: - mov r0, r5 - bl FUN_020A0B2C - mov r0, r4 - bl FUN_020A2364 - ldrb r0, [r4, #0x30] - cmp r0, #0x0 - beq _020A0988 - ldrh r2, [r5, #0x18] - ldr r1, [r5, #0x1c] - mov r0, r4 - bl FUN_020A3808 -_020A0988: - mov r0, r4 - bl FUN_020A215C - mov r0, r5 - bl FUN_020A0F94 - mov r0, r5 - bl FUN_020A0AF4 -_020A09A0: ; 0x020A09A0 - cmp r0, #0x0 - addne sp, sp, #0x4 - movne r0, #0x1 - ldmneia sp!, {r4-r5,lr} - bxne lr -_020A09B4: - mov r0, #0x8 - strb r0, [r4, #0x455] - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_020A09CC -FUN_020A09CC: ; 0x020A09CC - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r9, r0 - ldr r8, [r9, #0xc] - add r5, r8, #0x2ec - add r4, r8, #0x3a4 - mov r7, #0x0 - mov r6, #0x1 -_020A09EC: - mov r0, r9 - bl FUN_0209CAC4 - strb r7, [r8, #0x455] - str r7, [r8, #0x1d4] - mov r0, r5 - strb r6, [r8, #0x454] - bl FUN_020A41CC - mov r0, r4 - bl FUN_020A3B8C - mov r0, r9 - bl FUN_020A0A58 -_020A0A18: ; 0x020A0A18 - cmp r0, #0x0 - moveq r0, #0x8 - addeq sp, sp, #0x4 - streqb r0, [r8, #0x455] - ldmeqia sp!, {r4-r9,lr} - bxeq lr - mov r0, r9 - bl FUN_0209C884 - ldrh r0, [r9, #0x1a] - strh r0, [r9, #0x18] - ldr r0, [r9, #0x20] - str r0, [r9, #0x1c] - b _020A09EC -_020A0A4C: ; 0x020A0A4C - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start FUN_020A0A58 -FUN_020A0A58: - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020A1528 - cmp r0, #0x1 - movne r0, #0x1 - ldmneia sp!, {r4,lr} - bxne lr - mov r0, r4 - bl FUN_020A10F4 -_020A0A7C: ; 0x020A0A7C - cmp r0, #0x0 - beq _020A0AB0 - ldr r0, [r4, #0xc] - bl FUN_020A215C - mov r0, r4 - bl FUN_020A0F94 - mov r0, r4 - bl FUN_020A0AF4 -_020A0A9C: ; 0x020A0A9C - cmp r0, #0x0 - beq _020A0AE8 - mov r0, #0x1 - ldmia sp!, {r4,lr} - bx lr -_020A0AB0: - mov r0, r4 - bl FUN_020A1528 - cmp r0, #0x5 - movne r0, #0x1 - ldmneia sp!, {r4,lr} - bxne lr - mov r0, r4 - bl FUN_020A0AF4 -_020A0AD0: ; 0x020A0AD0 - cmp r0, #0x0 - movne r0, #0x1 - ldmneia sp!, {r4,lr} - bxne lr - mov r0, r4 - bl FUN_020A0F94 -_020A0AE8: - mov r0, #0x0 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020A0AF4 -FUN_020A0AF4: - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020A1528 - cmp r0, #0x7 - movne r0, #0x1 - ldmneia sp!, {r4,lr} - bxne lr - mov r0, r4 - bl FUN_020A1528 - cmp r0, #0x6 - movne r0, #0x1 - moveq r0, #0x0 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020A0B2C -FUN_020A0B2C: ; 0x020A0B2C - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r11, r0 - ldr r10, [r11, #0xc] - mov r0, #0x3 - strb r0, [r10, #0x0] - mov r0, #0x0 - strb r0, [r10, #0x1] - add r0, r10, #0x2 - mov r1, #0x2e - bl FUN_020A13E0 - ldr r4, [r10, #0x594] - ldr r0, _020A0DD4 ; =0x021C8EC8 - mov r1, r4, lsl #0x1 - ldr r2, [r0, #0x0] - add r1, r1, r1, lsr #0x1f - mov r0, r4 - mov r6, r1, asr #0x1 - blx r2 - movs r5, r0 - moveq r0, #0x9 - addeq sp, sp, #0xc - streqb r0, [r10, #0x455] - ldmeqia sp!, {r4-r11,lr} - bxeq lr - mov r0, #0x0 - strb r0, [r5, #0x0] - mov r2, #0x2 - add r0, r5, #0x2 - sub r1, r4, #0x33 - strb r2, [r5, #0x1] - bl FUN_020A13E0 - add r1, r5, r4 - mov r0, r10 - sub r3, r4, #0x31 - mov r7, #0x0 - sub r1, r1, #0x30 - mov r2, #0x30 - strb r7, [r5, r3] - bl MI_CpuCopy8 - ldr r1, _020A0DD4 ; =0x021C8EC8 - mov r0, r6, lsl #0x3 - ldr r1, [r1, #0x0] - blx r1 - movs r9, r0 - bne _020A0C08 - ldr r1, _020A0DD8 ; =0x021C8EF4 - mov r0, r5 - ldr r1, [r1, #0x0] - blx r1 - mov r0, #0x9 - add sp, sp, #0xc - strb r0, [r10, #0x455] - ldmia sp!, {r4-r11,lr} - bx lr -_020A0C08: - add r0, r9, r6, lsl #0x1 - add r8, r0, r6, lsl #0x1 - mov r1, r5 - mov r2, r4 - mov r3, r6 - str r0, [sp, #0x4] - add r7, r8, r6, lsl #0x1 - bl FUN_020A4B50 - ldr r1, _020A0DDC ; =0x00000598 - ldr r2, [r10, #0x5a0] - mov r0, r8 - add r1, r10, r1 - mov r3, r6 - bl FUN_020A4B50 - ldr r1, _020A0DE0 ; =0x00000494 - mov r0, r7 - mov r2, r4 - add r1, r10, r1 - mov r3, r6 - bl FUN_020A4B50 - bl FUN_020A36EC - mov r3, r6 - mov r6, r0 - ldr r1, [sp, #0x4] - mov r2, r8 - mov r0, r9 - str r7, [sp, #0x0] - bl FUN_020A507C - mov r0, r6 - bl FUN_020A36B4 - ldr r1, _020A0DD4 ; =0x021C8EC8 - add r0, r4, #0x49 - ldr r1, [r1, #0x0] - blx r1 - movs r6, r0 - bne _020A0CCC - ldr r1, _020A0DD8 ; =0x021C8EF4 - mov r0, r5 - ldr r1, [r1, #0x0] - blx r1 - ldr r1, _020A0DD8 ; =0x021C8EF4 - mov r0, r9 - ldr r1, [r1, #0x0] - blx r1 - mov r0, #0x9 - add sp, sp, #0xc - strb r0, [r10, #0x455] - ldmia sp!, {r4-r11,lr} - bx lr -_020A0CCC: - mov r0, #0x16 - strb r0, [r6, #0x0] - mov r1, #0x3 - add r0, r4, #0x4 - strb r1, [r6, #0x1] - mov r1, #0x0 - strb r1, [r6, #0x2] - mov r1, r0, asr #0x8 - strb r1, [r6, #0x3] - add r2, r6, #0x9 - strb r0, [r6, #0x4] - mov r0, #0x10 - strb r0, [r6, #0x5] - mov r0, r4, asr #0x10 - strb r0, [r6, #0x6] - mov r0, r4, asr #0x8 - strb r0, [r6, #0x7] - mov r0, r2 - strb r4, [r6, #0x8] - ands r1, r4, #0x1 - beq _020A0D38 - add r0, r4, r4, lsr #0x1f - mov r0, r0, asr #0x1 - mov r0, r0, lsl #0x1 - ldrh r1, [r9, r0] - add r0, r2, #0x1 - strb r1, [r2, #0x0] -_020A0D38: - add r1, r4, r4, lsr #0x1f - mov r1, r1, asr #0x1 - subs r7, r1, #0x1 - bmi _020A0D70 -_020A0D48: - mov r3, r7, lsl #0x1 - ldrh r1, [r9, r3] - add r2, r0, #0x1 - subs r7, r7, #0x1 - mov r1, r1, asr #0x8 - strb r1, [r0, #0x0] - ldrh r1, [r9, r3] - add r0, r0, #0x2 - strb r1, [r2, #0x0] - bpl _020A0D48 -_020A0D70: - mov r2, #0x0 - mov r0, r6 - mov r3, r2 - add r1, r4, #0x9 - str r11, [sp, #0x0] - bl FUN_0209C1D4 - mov r0, r10 - add r1, r6, #0x5 - add r2, r4, #0x4 - bl FUN_020A1944 - ldr r1, _020A0DD8 ; =0x021C8EF4 - mov r0, r6 - ldr r1, [r1, #0x0] - blx r1 - ldr r1, _020A0DD8 ; =0x021C8EF4 - mov r0, r9 - ldr r1, [r1, #0x0] - blx r1 - ldr r1, _020A0DD8 ; =0x021C8EF4 - mov r0, r5 - ldr r1, [r1, #0x0] - blx r1 - add sp, sp, #0xc - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020A0DD4: .word 0x021C8EC8 -_020A0DD8: .word 0x021C8EF4 -_020A0DDC: .word 0x00000598 -_020A0DE0: .word 0x00000494 - - arm_func_start FUN_020A0DE4 -FUN_020A0DE4: ; 0x020A0DE4 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - ldr r1, _020A0F88 ; =0x021C8EC8 - mov r8, r0 - ldr r1, [r1, #0x0] - mov r0, #0x98 - ldr r7, [r8, #0xc] - blx r1 - movs r6, r0 - moveq r0, #0x9 - addeq sp, sp, #0x8 - streqb r0, [r7, #0x455] - ldmeqia sp!, {r4-r8,lr} - bxeq lr - mov r0, #0x3 - strb r0, [r6, #0x9] - add r5, r6, #0x9 - mov r0, #0x0 - strb r0, [r5, #0x1] - bl FUN_020A375C - mov r1, r0, lsr #0x18 - strb r1, [r7, #0x34] - mov r1, r0, lsr #0x10 - strb r1, [r7, #0x35] - mov r1, r0, lsr #0x8 - strb r1, [r7, #0x36] - strb r0, [r7, #0x37] - add r0, r7, #0x38 - mov r1, #0x1c - bl FUN_020A13E0 - add r0, r7, #0x34 - add r1, r5, #0x2 - mov r2, #0x20 - bl MI_CpuCopy8 - ldrh r2, [r8, #0x18] - ldr r1, [r8, #0x1c] - mov r0, r7 - bl FUN_020A3908 - ldrb r0, [r7, #0x30] - cmp r0, #0x0 - moveq r0, #0x0 - streqb r0, [r5, #0x22] - addeq r5, r5, #0x23 - beq _020A0EAC - mov r2, #0x20 - add r0, r7, #0x74 - add r1, r5, #0x23 - strb r2, [r5, #0x22] - bl MI_CpuCopy8 - add r5, r5, #0x43 -_020A0EAC: - mov r4, #0x0 - strb r4, [r5, #0x0] - mov r0, #0x4 - strb r0, [r5, #0x1] - ldr r2, _020A0F8C ; =0x0210623C - add r5, r5, #0x2 -_020A0EC4: - mov r3, r4, lsl #0x1 - ldrh r0, [r2, r3] - add r4, r4, #0x1 - add r1, r5, #0x1 - mov r0, r0, asr #0x8 - strb r0, [r5, #0x0] - ldrh r0, [r2, r3] - cmp r4, #0x2 - add r5, r5, #0x2 - strb r0, [r1, #0x0] - blo _020A0EC4 - mov r3, #0x1 - mov r2, #0x0 - strb r3, [r5, #0x0] - add r0, r5, #0x2 - sub r0, r0, r6 - sub r4, r0, #0x5 - strb r2, [r5, #0x1] - sub r1, r4, #0x4 - mov r0, #0x16 - strb r0, [r6, #0x0] - mov r0, #0x3 - strb r0, [r6, #0x1] - strb r2, [r6, #0x2] - mov r0, r4, asr #0x8 - strb r0, [r6, #0x3] - strb r4, [r6, #0x4] - strb r3, [r6, #0x5] - mov r0, r1, asr #0x10 - strb r0, [r6, #0x6] - mov r0, r1, asr #0x8 - strb r0, [r6, #0x7] - strb r1, [r6, #0x8] - mov r0, r6 - mov r3, r2 - add r1, r4, #0x5 - str r8, [sp, #0x0] - bl FUN_0209C1D4 - mov r0, r7 - mov r2, r4 - add r1, r6, #0x5 - bl FUN_020A1944 - ldr r1, _020A0F90 ; =0x021C8EF4 - mov r0, r6 - ldr r1, [r1, #0x0] - blx r1 - add sp, sp, #0x8 - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_020A0F88: .word 0x021C8EC8 -_020A0F8C: .word 0x0210623C -_020A0F90: .word 0x021C8EF4 - - arm_func_start FUN_020A0F94 -FUN_020A0F94: - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - ldr r1, _020A10EC ; =0x021C8EC8 - mov r6, r0 - ldr r1, [r1, #0x0] - mov r0, #0x83 - ldr r5, [r6, #0xc] - blx r1 - movs r4, r0 - moveq r0, #0x9 - addeq sp, sp, #0x8 - streqb r0, [r5, #0x455] - ldmeqia sp!, {r4-r6,lr} - bxeq lr - mov r0, #0x14 - strb r0, [r4, #0x0] - mov r0, #0x3 - strb r0, [r4, #0x1] - mov r1, #0x0 - strb r1, [r4, #0x2] - strb r1, [r4, #0x3] - mov r3, #0x1 - strb r3, [r4, #0x4] - add r0, r5, #0x1cc - mov r2, #0x8 - strb r3, [r4, #0x5] - bl MI_CpuFill8 - mov r0, #0x16 - strb r0, [r4, #0x6] - mov r0, #0x3 - strb r0, [r4, #0x7] - mov r1, #0x0 - strb r1, [r4, #0x8] - strb r1, [r4, #0x9] - mov r0, #0x28 - strb r0, [r4, #0xa] - mov r0, #0x14 - strb r0, [r4, #0xb] - strb r1, [r4, #0xc] - strb r1, [r4, #0xd] - mov r3, #0x24 - add r0, r5, #0x3a4 - add r1, r5, #0x3fc - mov r2, #0x58 - strb r3, [r4, #0xe] - bl MI_CpuCopy8 - mov r0, r5 - add r1, r4, #0xf - mov r2, #0x0 - bl FUN_020A2034 - add r0, r5, #0x3fc - add r1, r5, #0x3a4 - mov r2, #0x58 - bl MI_CpuCopy8 - add r0, r5, #0x2ec - add r1, r5, #0x348 - mov r2, #0x5c - bl MI_CpuCopy8 - mov r0, r5 - add r1, r4, #0x1f - mov r2, #0x0 - bl FUN_020A1F4C - add r0, r5, #0x348 - add r1, r5, #0x2ec - mov r2, #0x5c - bl MI_CpuCopy8 - mov r0, r5 - add r1, r4, #0xb - mov r2, #0x28 - bl FUN_020A1944 - mov r0, r5 - add r1, r4, #0x6 - bl FUN_020A19F4 - mov r2, #0x0 - add r1, r0, #0x6 - mov r0, r4 - mov r3, r2 - str r6, [sp, #0x0] - bl FUN_0209C1D4 - ldr r1, _020A10F0 ; =0x021C8EF4 - mov r0, r4 - ldr r1, [r1, #0x0] - blx r1 - add sp, sp, #0x8 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A10EC: .word 0x021C8EC8 -_020A10F0: .word 0x021C8EF4 - - arm_func_start FUN_020A10F4 -FUN_020A10F4: - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r9, r0 - ldr r7, [r9, #0xc] - ldr r4, [r7, #0x820] - cmp r4, #0x0 - ldrne r8, [r4, #0x0] - moveq r8, #0x0 - bl FUN_020A375C - mov r1, r0, lsr #0x18 - strb r1, [r7, #0x54] - mov r1, r0, lsr #0x10 - strb r1, [r7, #0x55] - mov r1, r0, lsr #0x8 - strb r1, [r7, #0x56] - strb r0, [r7, #0x57] - add r0, r7, #0x58 - mov r1, #0x1c - bl FUN_020A13E0 - ldr r1, _020A1360 ; =0x021C8EC8 - add r0, r8, #0x9d - ldr r1, [r1, #0x0] - blx r1 - movs r6, r0 - moveq r0, #0x9 - streqb r0, [r7, #0x455] - addeq sp, sp, #0x4 - moveq r0, #0x1 - ldmeqia sp!, {r4-r9,lr} - bxeq lr - mov r0, #0x2 - add r5, r6, #0x5 - strb r0, [r6, #0x5] - mov r3, #0x0 - strb r3, [r5, #0x1] - strb r3, [r5, #0x2] - mov r0, #0x46 - strb r0, [r5, #0x3] - mov r0, #0x3 - strb r0, [r5, #0x4] - add r0, r7, #0x54 - add r1, r5, #0x6 - mov r2, #0x20 - strb r3, [r5, #0x5] - bl MI_CpuCopy8 - mov r2, #0x20 - strb r2, [r5, #0x26] - ldrb r0, [r7, #0x30] - cmp r0, #0x0 - beq _020A11D8 - add r0, r7, #0x74 - add r1, r5, #0x27 - bl MI_CpuCopy8 - mov r0, #0x1 - strb r0, [r7, #0x31] - add r5, r5, #0x47 - b _020A1238 -_020A11D8: - add r0, r5, #0x27 - mov r1, #0x1c - bl FUN_020A13E0 - ldr r0, _020A1364 ; =0x021CA6E4 - add r2, r5, #0x46 - ldr r3, [r0, #0x0] - add r1, r7, #0x74 - mov r0, r3, lsr #0x18 - strb r0, [r5, #0x43] - mov r0, r3, lsr #0x10 - strb r0, [r5, #0x44] - mov r0, r3, lsr #0x8 - strb r0, [r5, #0x45] - add r5, r5, #0x47 - sub r0, r5, #0x20 - strb r3, [r2, #0x0] - mov r2, #0x20 - bl MI_CpuCopy8 - ldr r0, _020A1364 ; =0x021CA6E4 - mov r1, #0x0 - ldr r2, [r0, #0x0] - add r2, r2, #0x1 - str r2, [r0, #0x0] - strb r1, [r7, #0x31] -_020A1238: - ldrh r2, [r7, #0x32] - mov r0, #0x0 - mov r2, r2, asr #0x8 - strb r2, [r5, #0x0] - ldrh r2, [r7, #0x32] - strb r2, [r5, #0x1] - strb r0, [r5, #0x2] - ldrb r0, [r7, #0x31] - add r5, r5, #0x3 - cmp r0, #0x0 - bne _020A12EC - cmp r8, #0x0 - beq _020A12D0 - mov r0, #0xb - add r2, r8, #0x6 - strb r0, [r5, #0x0] - mov r0, r2, asr #0x10 - strb r0, [r5, #0x1] - mov r0, r2, asr #0x8 - strb r0, [r5, #0x2] - add r1, r8, #0x3 - strb r2, [r5, #0x3] - mov r0, r1, asr #0x10 - strb r0, [r5, #0x4] - mov r0, r1, asr #0x8 - strb r0, [r5, #0x5] - strb r1, [r5, #0x6] - mov r0, r8, asr #0x10 - strb r0, [r5, #0x7] - mov r0, r8, asr #0x8 - strb r0, [r5, #0x8] - strb r8, [r5, #0x9] - add r5, r5, #0xa - ldr r0, [r4, #0x4] - mov r1, r5 - mov r2, r8 - bl MI_CpuCopy8 - add r5, r5, r8 -_020A12D0: - mov r0, #0xe - strb r0, [r5, #0x0] - mov r1, #0x0 - strb r1, [r5, #0x1] - strb r1, [r5, #0x2] - strb r1, [r5, #0x3] - add r5, r5, #0x4 -_020A12EC: - mov r0, #0x16 - sub r1, r5, r6 - sub r4, r1, #0x5 - strb r0, [r6, #0x0] - mov r0, #0x3 - strb r0, [r6, #0x1] - mov r0, #0x0 - strb r0, [r6, #0x2] - mov r0, r4, asr #0x8 - strb r0, [r6, #0x3] - mov r0, r7 - mov r2, r4 - add r1, r6, #0x5 - strb r4, [r6, #0x4] - bl FUN_020A1944 - mov r2, #0x0 - mov r0, r6 - mov r3, r2 - add r1, r4, #0x5 - str r9, [sp, #0x0] - bl FUN_0209C1D4 - ldr r1, _020A1368 ; =0x021C8EF4 - mov r0, r6 - ldr r1, [r1, #0x0] - blx r1 - ldrb r0, [r7, #0x31] - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - .balign 4 -_020A1360: .word 0x021C8EC8 -_020A1364: .word 0x021CA6E4 -_020A1368: .word 0x021C8EF4 - - arm_func_start FUN_020A136C -FUN_020A136C: - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x60 - mov r6, r0 - add r0, sp, #0x0 - mov r5, r1 - bl FUN_020A41CC - bl OS_DisableInterrupts - mov r4, r0 - ldr r1, _020A13D8 ; =0x021CA6E8 - add r0, sp, #0x0 - mov r2, #0x14 - bl FUN_020A410C - mov r1, r6 - mov r2, r5 - add r0, sp, #0x0 - bl FUN_020A410C - ldr r1, _020A13D8 ; =0x021CA6E8 - add r0, sp, #0x0 - bl FUN_020A4098 - mov r0, r4 - bl OS_RestoreInterrupts - ldr r0, _020A13DC ; =0x021CA6E0 - mov r1, #0x1 - strb r1, [r0, #0x0] - add sp, sp, #0x60 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A13D8: .word 0x021CA6E8 -_020A13DC: .word 0x021CA6E0 - - arm_func_start FUN_020A13E0 -FUN_020A13E0: ; 0x020A13E0 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x7c - ldr r2, _020A1518 ; =0x021CA6E0 - mov r10, r0 - ldrb r0, [r2, #0x0] - mov r9, r1 - cmp r0, #0x0 - bne _020A1448 - ldr r2, _020A151C ; =0x021C8F24 - add r0, sp, #0x4 - ldr r4, [r2, #0x8] - ldr r3, [r2, #0x0] - ldr r1, [r2, #0x4] - umull r6, r5, r4, r3 - mla r5, r4, r1, r5 - ldr r1, [r2, #0xc] - ldr r4, [r2, #0x10] - mla r5, r1, r3, r5 - adds r4, r4, r6 - ldr r3, [r2, #0x14] - mov r1, #0x4 - adc r3, r3, r5 - str r4, [r2, #0x0] - str r3, [r2, #0x4] - str r3, [sp, #0x4] - bl FUN_020A136C -_020A1448: - cmp r9, #0x0 - mov r7, #0x0 - addle sp, sp, #0x7c - mov r1, #0x14 - ldmleia sp!, {r4-r11,lr} - bxle lr - add r6, sp, #0x1c - mov r11, r1 - str r7, [sp, #0x0] - mov r5, #0x1 - mov r4, #0x13 -_020A1474: - cmp r1, #0x14 - bne _020A14EC - mov r0, r6 - bl FUN_020A41CC - bl OS_DisableInterrupts - mov r8, r0 - ldr r1, _020A1520 ; =0x021CA6E8 - mov r0, r6 - mov r2, r11 - bl FUN_020A410C - mov r0, r6 - add r1, sp, #0x8 - bl FUN_020A405C - ldr r2, _020A1524 ; =0x021CA6FB - mov r12, r5 - mov lr, r4 - add r3, sp, #0x1b -_020A14B8: - ldrb r1, [r2, #0x0] - ldrb r0, [r3], #-0x1 - subs lr, lr, #0x1 - add r0, r1, r0 - add r0, r12, r0 - strb r0, [r2, #0x0] - mov r12, r0, lsr #0x8 - sub r2, r2, #0x1 - bpl _020A14B8 - str r0, [sp, #0x4] - mov r0, r8 - bl OS_RestoreInterrupts - ldr r1, [sp, #0x0] -_020A14EC: - add r0, sp, #0x8 - ldrb r0, [r0, r1] - add r1, r1, #0x1 - cmp r0, #0x0 - strneb r0, [r10, r7] - addne r7, r7, #0x1 - cmp r7, r9 - blt _020A1474 - add sp, sp, #0x7c - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020A1518: .word 0x021CA6E0 -_020A151C: .word 0x021C8F24 -_020A1520: .word 0x021CA6E8 -_020A1524: .word 0x021CA6FB - - arm_func_start FUN_020A1528 -FUN_020A1528: ; 0x020A1528 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - mov r5, r0 - ldr r4, [r5, #0xc] - add r6, sp, #0x0 -_020A153C: - mov r0, r6 - mov r1, r5 - bl FUN_0209C6C0 - ldr r1, [sp, #0x0] - cmp r1, #0x0 - moveq r0, #0x9 - addeq sp, sp, #0x8 - streqb r0, [r4, #0x455] - ldmeqia sp!, {r4-r6,lr} - bxeq lr - cmp r1, #0x5 - blo _020A153C - ldrb r1, [r0, #0x0] - cmp r1, #0x80 - bne _020A1634 - ldrb r1, [r4, #0x454] - cmp r1, #0x0 - beq _020A1628 - ldrb r1, [r4, #0x455] - cmp r1, #0x0 - bne _020A1628 - ldrb r2, [r0, #0x1] - mov r1, r5 - mov r0, #0x2 - str r2, [sp, #0x0] - bl FUN_0209C580 - ldr r1, _020A16DC ; =0x021C8EC8 - ldr r0, [sp, #0x0] - ldr r1, [r1, #0x0] - blx r1 - movs r6, r0 - moveq r0, #0x9 - addeq sp, sp, #0x8 - streqb r0, [r4, #0x455] - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldr r1, [sp, #0x0] - mov r2, r5 - bl FUN_020A1974 -_020A15D8: ; 0x020A15D8 - cmp r0, #0x0 - bne _020A15FC - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - bne _020A15FC - mov r0, r4 - add r1, r6, #0x1 - bl FUN_020A2774 - b _020A1604 -_020A15FC: - mov r0, #0x9 - strb r0, [r4, #0x455] -_020A1604: - ldr r2, [sp, #0x0] - mov r0, r4 - mov r1, r6 - bl FUN_020A1944 - ldr r1, _020A16E0 ; =0x021C8EF4 - mov r0, r6 - ldr r1, [r1, #0x0] - blx r1 - b _020A16CC -_020A1628: - mov r0, #0x9 - strb r0, [r4, #0x455] - b _020A16CC -_020A1634: - ldrb r2, [r0, #0x3] - ldrb r0, [r0, #0x4] - ldr r1, _020A16E4 ; =0x00004805 - add r0, r0, r2, lsl #0x8 - add r0, r0, #0x5 - str r0, [sp, #0x0] - cmp r0, r1 - movhi r0, #0x9 - addhi sp, sp, #0x8 - strhib r0, [r4, #0x455] - ldmhiia sp!, {r4-r6,lr} - bxhi lr - ldr r1, _020A16DC ; =0x021C8EC8 - ldr r1, [r1, #0x0] - blx r1 - movs r6, r0 - moveq r0, #0x9 - addeq sp, sp, #0x8 - streqb r0, [r4, #0x455] - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldr r1, [sp, #0x0] - mov r2, r5 - bl FUN_020A1974 -_020A1694: ; 0x020A1694 - cmp r0, #0x0 - beq _020A16C0 - ldr r1, _020A16E0 ; =0x021C8EF4 - mov r0, r6 - ldr r1, [r1, #0x0] - blx r1 - mov r0, #0x9 - add sp, sp, #0x8 - strb r0, [r4, #0x455] - ldmia sp!, {r4-r6,lr} - bx lr -_020A16C0: - mov r0, r4 - mov r1, r6 - bl FUN_020A16E8 -_020A16CC: - ldrb r0, [r4, #0x455] - add sp, sp, #0x8 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A16DC: .word 0x021C8EC8 -_020A16E0: .word 0x021C8EF4 -_020A16E4: .word 0x00004805 - - arm_func_start FUN_020A16E8 -FUN_020A16E8: ; 0x020A16E8 - stmdb sp!, {r4-r8,lr} - mov r8, r0 - ldrb r0, [r8, #0x455] - mov r7, r1 - cmp r0, #0x9 - bne _020A1718 - ldr r1, _020A1940 ; =0x021C8EF4 - mov r0, r7 - ldr r1, [r1, #0x0] - blx r1 - ldmia sp!, {r4-r8,lr} - bx lr -_020A1718: - ldrb r2, [r7, #0x3] - ldrb r1, [r7, #0x4] - add r0, r0, #0xf9 - and r0, r0, #0xff - add r1, r1, r2, lsl #0x8 - cmp r0, #0x1 - add r5, r1, #0x5 - ldrb r4, [r7, #0x0] - bhi _020A1744 - cmp r4, #0x15 - bne _020A1754 -_020A1744: - cmp r4, #0x15 - bne _020A1764 - cmp r5, #0x7 - bls _020A1764 -_020A1754: - mov r0, r8 - mov r1, r7 - bl FUN_020A1C08 - mov r5, r0 -_020A1764: - sub r0, r4, #0x14 - cmp r0, #0x3 - add r6, r7, #0x5 - sub r5, r5, #0x5 - addls pc, pc, r0, lsl #0x2 - b _020A1920 -_020A177C: ; 0x020A177C - b _020A178C -_020A1780: ; 0x020A1780 - b _020A17BC -_020A1784: ; 0x020A1784 - b _020A17D0 -_020A1788: ; 0x020A1788 - b _020A18FC -_020A178C: - ldr r0, [r8, #0x1d4] - cmp r0, #0x0 - moveq r0, #0x9 - streqb r0, [r8, #0x455] - beq _020A1928 - add r0, r8, #0x2e4 - mov r1, #0x0 - mov r2, #0x8 - bl MI_CpuFill8 - mov r0, #0x7 - strb r0, [r8, #0x455] - b _020A1928 -_020A17BC: - ldrb r0, [r6, #0x0] - cmp r0, #0x2 - moveq r0, #0x9 - streqb r0, [r8, #0x455] - b _020A1928 -_020A17D0: - ldrb r1, [r6, #0x1] - ldrb r0, [r6, #0x2] - ldrb r3, [r6, #0x0] - ldrb r2, [r6, #0x3] - mov r1, r1, lsl #0x10 - add r0, r1, r0, lsl #0x8 - cmp r3, #0xb - add r4, r2, r0 - add r6, r6, #0x4 - bgt _020A1824 - cmp r3, #0xb - bge _020A1898 - cmp r3, #0x2 - bgt _020A18C4 - cmp r3, #0x1 - blt _020A18C4 - cmp r3, #0x1 - beq _020A1850 - cmp r3, #0x2 - beq _020A1888 - b _020A18C4 -_020A1824: - cmp r3, #0x14 - bgt _020A18C4 - cmp r3, #0xe - blt _020A18C4 - cmp r3, #0xe - beq _020A18A8 - cmp r3, #0x10 - beq _020A1878 - cmp r3, #0x14 - beq _020A18B4 - b _020A18C4 -_020A1850: - ldrb r0, [r8, #0x454] - cmp r0, #0x0 - beq _020A18CC - ldrb r0, [r8, #0x455] - cmp r0, #0x0 - bne _020A18CC - mov r0, r8 - mov r1, r6 - bl FUN_020A26D0 - b _020A18CC -_020A1878: - mov r0, r8 - mov r1, r6 - bl FUN_020A211C - b _020A18CC -_020A1888: - mov r0, r8 - mov r1, r6 - bl FUN_020A2914 - b _020A18CC -_020A1898: - mov r0, r8 - mov r1, r6 - bl FUN_020A29DC - b _020A18CC -_020A18A8: - mov r0, #0x4 - strb r0, [r8, #0x455] - b _020A18CC -_020A18B4: - mov r0, r8 - mov r1, r6 - bl FUN_020A1E84 - b _020A18CC -_020A18C4: - mov r0, #0x9 - strb r0, [r8, #0x455] -_020A18CC: - mov r0, r8 - sub r1, r6, #0x4 - add r2, r4, #0x4 - bl FUN_020A1944 - add r0, r4, #0x4 - add r6, r6, r4 - subs r5, r5, r0 - beq _020A1928 - ldrb r0, [r8, #0x455] - cmp r0, #0x9 - bne _020A17D0 - b _020A1928 -_020A18FC: - str r7, [r8, #0x824] - mov r0, #0x5 - str r0, [r8, #0x82c] - add r0, r5, #0x5 - str r0, [r8, #0x828] - mov r0, #0x1 - strb r0, [r8, #0x456] - ldmia sp!, {r4-r8,lr} - bx lr -_020A1920: - mov r0, #0x9 - strb r0, [r8, #0x455] -_020A1928: - ldr r1, _020A1940 ; =0x021C8EF4 - mov r0, r7 - ldr r1, [r1, #0x0] - blx r1 - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_020A1940: .word 0x021C8EF4 - - arm_func_start FUN_020A1944 -FUN_020A1944: ; 0x020A1944 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - mov r4, r2 - add r0, r6, #0x2ec - bl FUN_020A410C - mov r1, r5 - mov r2, r4 - add r0, r6, #0x3a4 - bl FUN_020A3ACC - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_020A1974 -FUN_020A1974: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - mov r6, r1 - mov r5, r2 - add r4, sp, #0x0 -_020A198C: - mov r0, r4 - mov r1, r5 - bl FUN_0209C6C0 - ldr r1, [sp, #0x0] - cmp r1, #0x0 - addeq sp, sp, #0x4 - mvneq r0, #0x0 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - cmp r1, r6 - strhi r6, [sp, #0x0] - ldr r2, [sp, #0x0] - mov r1, r7 - bl MI_CpuCopy8 -_020A19C4: ; 0x020A19C4 - ldr r0, [sp, #0x0] - mov r1, r5 - bl FUN_0209C580 -_020A19D0: ; 0x020A19D0 - ldr r0, [sp, #0x0] - sub r6, r6, r0 - cmp r6, #0x0 - add r7, r7, r0 - bgt _020A198C - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_020A19F4 -FUN_020A19F4: ; 0x020A19F4 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x30 - mov r5, r1 - mov r6, r0 - ldrh r0, [r6, #0x32] - ldrb r3, [r5, #0x3] - ldrb r2, [r5, #0x4] - add r1, r5, #0x5 - cmp r0, #0x4 - add r4, r2, r3, lsl #0x8 - add r8, r1, r4 - beq _020A1A30 - cmp r0, #0x5 - beq _020A1B04 - b _020A1BD4 -_020A1A30: - add r7, r6, #0x3fc - mov r0, r7 - bl FUN_020A3B8C - ldr r1, [r6, #0xbc] - mov r0, r7 - mov r2, #0x10 - bl FUN_020A3ACC -_020A1A4C: ; 0x020A1A4C - add r0, sp, #0x0 - mov r1, #0x36 - mov r2, #0x30 - bl MI_CpuFill8 - mov r0, r7 - add r1, sp, #0x0 - mov r2, #0x30 - bl FUN_020A3ACC - mov r0, r7 - add r1, r6, #0x1cc - mov r2, #0x8 - bl FUN_020A3ACC - mov r0, r7 - mov r1, r5 - mov r2, #0x1 - bl FUN_020A3ACC - mov r0, r7 - add r1, r5, #0x3 - add r2, r4, #0x2 - bl FUN_020A3ACC - mov r0, r7 - mov r1, r8 - bl FUN_020A3A58 - mov r0, r7 - bl FUN_020A3B8C - ldr r1, [r6, #0xbc] - mov r0, r7 - mov r2, #0x10 - bl FUN_020A3ACC -_020A1AC0: ; 0x020A1AC0 - add r0, sp, #0x0 - mov r1, #0x5c - mov r2, #0x30 - bl MI_CpuFill8 - mov r0, r7 - add r1, sp, #0x0 - mov r2, #0x30 - bl FUN_020A3ACC - mov r0, r7 - mov r1, r8 - mov r2, #0x10 - bl FUN_020A3ACC - mov r0, r7 - mov r1, r8 - bl FUN_020A3A58 - add r4, r4, #0x10 - b _020A1BD4 -_020A1B04: - add r7, r6, #0x348 - mov r0, r7 - bl FUN_020A41CC - ldr r1, [r6, #0xbc] - mov r0, r7 - mov r2, #0x14 - bl FUN_020A410C -_020A1B20: ; 0x020A1B20 - add r0, sp, #0x0 - mov r1, #0x36 - mov r2, #0x28 - bl MI_CpuFill8 - mov r0, r7 - add r1, sp, #0x0 - mov r2, #0x28 - bl FUN_020A410C - mov r0, r7 - add r1, r6, #0x1cc - mov r2, #0x8 - bl FUN_020A410C - mov r0, r7 - mov r1, r5 - mov r2, #0x1 - bl FUN_020A410C - mov r0, r7 - add r1, r5, #0x3 - add r2, r4, #0x2 - bl FUN_020A410C - mov r0, r7 - mov r1, r8 - bl FUN_020A4098 - mov r0, r7 - bl FUN_020A41CC - ldr r1, [r6, #0xbc] - mov r0, r7 - mov r2, #0x14 - bl FUN_020A410C -_020A1B94: ; 0x020A1B94 - add r0, sp, #0x0 - mov r1, #0x5c - mov r2, #0x28 - bl MI_CpuFill8 - mov r0, r7 - add r1, sp, #0x0 - mov r2, #0x28 - bl FUN_020A410C - mov r0, r7 - mov r1, r8 - mov r2, #0x14 - bl FUN_020A410C - mov r0, r7 - mov r1, r8 - bl FUN_020A4098 - add r4, r4, #0x14 -_020A1BD4: - mov r0, r4, asr #0x8 - strb r0, [r5, #0x3] - mov r2, r4 - add r0, r6, #0xc8 - add r1, r5, #0x5 - strb r4, [r5, #0x4] - bl FUN_020A49CC - add r0, r6, #0x1d4 - bl FUN_020A1E60 - add r0, r4, #0x5 - add sp, sp, #0x30 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_020A1C08 -FUN_020A1C08: ; 0x020A1C08 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x44 - mov r6, r1 - ldrb r3, [r6, #0x3] - ldrb r2, [r6, #0x4] - mov r7, r0 - add r1, r6, #0x5 - add r2, r2, r3, lsl #0x8 - bl FUN_020A1E44 - ldrh r1, [r7, #0x32] - mov r5, r0 - cmp r1, #0x4 - beq _020A1C48 - cmp r1, #0x5 - beq _020A1D2C - b _020A1E0C -_020A1C48: - sub r5, r5, #0x10 - mov r0, r5, asr #0x8 - strb r0, [r6, #0x3] - add r4, r7, #0x3fc - mov r0, r4 - strb r5, [r6, #0x4] - bl FUN_020A3B8C - ldr r1, [r7, #0x1d4] - mov r0, r4 - mov r2, #0x10 - bl FUN_020A3ACC - add r0, sp, #0x14 - mov r1, #0x36 - mov r2, #0x30 - bl MI_CpuFill8 - mov r0, r4 - add r1, sp, #0x14 - mov r2, #0x30 - bl FUN_020A3ACC - mov r0, r4 - add r1, r7, #0x2e4 - mov r2, #0x8 - bl FUN_020A3ACC - mov r0, r4 - mov r1, r6 - mov r2, #0x1 - bl FUN_020A3ACC - mov r0, r4 - add r1, r6, #0x3 - add r2, r5, #0x2 - bl FUN_020A3ACC - mov r0, r4 - add r1, sp, #0x0 - bl FUN_020A3A58 - mov r0, r4 - bl FUN_020A3B8C - ldr r1, [r7, #0x1d4] - mov r0, r4 - mov r2, #0x10 - bl FUN_020A3ACC - add r0, sp, #0x14 - mov r1, #0x5c - mov r2, #0x30 - bl MI_CpuFill8 - mov r0, r4 - add r1, sp, #0x14 - mov r2, #0x30 - bl FUN_020A3ACC - mov r0, r4 - add r1, sp, #0x0 - mov r2, #0x10 - bl FUN_020A3ACC - mov r0, r4 - add r1, sp, #0x0 - bl FUN_020A3A58 - mov r4, #0x10 - b _020A1E0C -_020A1D2C: - sub r5, r5, #0x14 - mov r0, r5, asr #0x8 - strb r0, [r6, #0x3] - add r4, r7, #0x348 - mov r0, r4 - strb r5, [r6, #0x4] - bl FUN_020A41CC - ldr r1, [r7, #0x1d4] - mov r0, r4 - mov r2, #0x14 - bl FUN_020A410C - add r0, sp, #0x14 - mov r1, #0x36 - mov r2, #0x28 - bl MI_CpuFill8 - mov r0, r4 - add r1, sp, #0x14 - mov r2, #0x28 - bl FUN_020A410C - mov r0, r4 - add r1, r7, #0x2e4 - mov r2, #0x8 - bl FUN_020A410C - mov r0, r4 - mov r1, r6 - mov r2, #0x1 - bl FUN_020A410C - mov r0, r4 - add r1, r6, #0x3 - add r2, r5, #0x2 - bl FUN_020A410C - mov r0, r4 - add r1, sp, #0x0 - bl FUN_020A4098 - mov r0, r4 - bl FUN_020A41CC - ldr r1, [r7, #0x1d4] - mov r0, r4 - mov r2, #0x14 - bl FUN_020A410C - add r0, sp, #0x14 - mov r1, #0x5c - mov r2, #0x28 - bl MI_CpuFill8 - mov r0, r4 - add r1, sp, #0x14 - mov r2, #0x28 - bl FUN_020A410C - mov r0, r4 - add r1, sp, #0x0 - mov r2, #0x14 - bl FUN_020A410C - mov r0, r4 - add r1, sp, #0x0 - bl FUN_020A4098 - mov r4, #0x14 -_020A1E0C: - add r0, r6, #0x5 - add r1, sp, #0x0 - mov r2, r4 - add r0, r0, r5 - bl memcmp -_020A1E20: ; 0x020A1E20 - cmp r0, #0x0 - movne r0, #0x9 - strneb r0, [r7, #0x455] - add r0, r7, #0x2ec - bl FUN_020A1E60 - add r0, r5, #0x5 - add sp, sp, #0x44 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_020A1E44 -FUN_020A1E44: ; 0x020A1E44 - stmdb sp!, {r4,lr} - add r0, r0, #0x1e0 - mov r4, r2 - bl FUN_020A49CC - mov r0, r4 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020A1E60 -FUN_020A1E60: ; 0x020A1E60 - mov r2, #0x8 -_020A1E64: - ldrb r1, [r0, #-0x1]! - add r1, r1, #0x1 - ands r1, r1, #0xff - strb r1, [r0, #0x0] - bxne lr - subs r2, r2, #0x1 - bne _020A1E64 - bx lr - - arm_func_start FUN_020A1E84 -FUN_020A1E84: ; 0x020A1E84 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x14 - mov r5, r0 - mov r4, r1 - add r0, r5, #0x3a4 - add r1, r5, #0x3fc - mov r2, #0x58 - bl MI_CpuCopy8 - add r1, sp, #0x0 - mov r0, r5 - mov r2, #0x1 - bl FUN_020A2034 - add r0, r5, #0x3fc - add r1, r5, #0x3a4 - mov r2, #0x58 - bl MI_CpuCopy8 - add r1, sp, #0x0 - mov r0, r4 - mov r2, #0x10 - bl memcmp -_020A1ED4: ; 0x020A1ED4 - cmp r0, #0x0 - movne r0, #0x9 - addne sp, sp, #0x14 - strneb r0, [r5, #0x455] - ldmneia sp!, {r4-r5,lr} - bxne lr - add r0, r5, #0x2ec - add r1, r5, #0x348 - mov r2, #0x5c - bl MI_CpuCopy8 - add r1, sp, #0x0 - mov r0, r5 - mov r2, #0x1 - bl FUN_020A1F4C - add r0, r5, #0x348 - add r1, r5, #0x2ec - mov r2, #0x5c - bl MI_CpuCopy8 - add r1, sp, #0x0 - add r0, r4, #0x10 - mov r2, #0x14 - bl memcmp -_020A1F2C: ; 0x020A1F2C - cmp r0, #0x0 - movne r0, #0x9 - strneb r0, [r5, #0x455] - moveq r0, #0x6 - streqb r0, [r5, #0x455] - add sp, sp, #0x14 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_020A1F4C -FUN_020A1F4C: ; 0x020A1F4C - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x28 - mov r6, r0 - ldrb r0, [r6, #0x454] - mov r5, r1 - add r4, r6, #0x2ec - eors r0, r0, r2 - beq _020A1F80 - ldr r1, _020A202C ; =0x02106290 - mov r0, r4 - mov r2, #0x4 - bl FUN_020A410C - b _020A1F90 -_020A1F80: - ldr r1, _020A2030 ; =0x02106298 - mov r0, r4 - mov r2, #0x4 - bl FUN_020A410C -_020A1F90: - mov r0, r4 - mov r1, r6 - mov r2, #0x30 - bl FUN_020A410C -_020A1FA0: ; 0x020A1FA0 - add r0, sp, #0x0 - mov r1, #0x36 - mov r2, #0x28 - bl MI_CpuFill8 - add r1, sp, #0x0 - mov r0, r4 - mov r2, #0x28 - bl FUN_020A410C - mov r0, r4 - mov r1, r5 - bl FUN_020A4098 - mov r0, r4 - bl FUN_020A41CC - mov r1, r6 - mov r0, r4 - mov r2, #0x30 - bl FUN_020A410C -_020A1FE4: ; 0x020A1FE4 - add r0, sp, #0x0 - mov r1, #0x5c - mov r2, #0x28 - bl MI_CpuFill8 - mov r0, r4 - add r1, sp, #0x0 - mov r2, #0x28 - bl FUN_020A410C - mov r0, r4 - mov r1, r5 - mov r2, #0x14 - bl FUN_020A410C - mov r0, r4 - mov r1, r5 - bl FUN_020A4098 - add sp, sp, #0x28 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A202C: .word 0x02106290 -_020A2030: .word 0x02106298 - - arm_func_start FUN_020A2034 -FUN_020A2034: ; 0x020A2034 - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x30 - mov r6, r0 - ldrb r0, [r6, #0x454] - mov r5, r1 - add r4, r6, #0x3a4 - eors r0, r0, r2 - beq _020A2068 - ldr r1, _020A2114 ; =0x02106290 - mov r0, r4 - mov r2, #0x4 - bl FUN_020A3ACC - b _020A2078 -_020A2068: - ldr r1, _020A2118 ; =0x02106298 - mov r0, r4 - mov r2, #0x4 - bl FUN_020A3ACC -_020A2078: - mov r0, r4 - mov r1, r6 - mov r2, #0x30 - bl FUN_020A3ACC -_020A2088: ; 0x020A2088 - add r0, sp, #0x0 - mov r1, #0x36 - mov r2, #0x30 - bl MI_CpuFill8 - add r1, sp, #0x0 - mov r0, r4 - mov r2, #0x30 - bl FUN_020A3ACC - mov r0, r4 - mov r1, r5 - bl FUN_020A3A58 - mov r0, r4 - bl FUN_020A3B8C - mov r1, r6 - mov r0, r4 - mov r2, #0x30 - bl FUN_020A3ACC -_020A20CC: ; 0x020A20CC - add r0, sp, #0x0 - mov r1, #0x5c - mov r2, #0x30 - bl MI_CpuFill8 - mov r0, r4 - add r1, sp, #0x0 - mov r2, #0x30 - bl FUN_020A3ACC - mov r0, r4 - mov r1, r5 - mov r2, #0x10 - bl FUN_020A3ACC - mov r0, r4 - mov r1, r5 - bl FUN_020A3A58 - add sp, sp, #0x30 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A2114: .word 0x02106290 -_020A2118: .word 0x02106298 - - arm_func_start FUN_020A211C -FUN_020A211C: ; 0x020A211C - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r2, [r4, #0x81c] - bl FUN_020A2470 - mov r0, r4 - bl FUN_020A2364 - mov r1, #0x0 - mov r0, r4 - mov r2, r1 - bl FUN_020A3808 - mov r0, r4 - bl FUN_020A215C - mov r0, #0x5 - strb r0, [r4, #0x455] - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020A215C -FUN_020A215C: ; 0x020A215C - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x34 - mov r10, r0 - ldrh r0, [r10, #0x32] - cmp r0, #0x4 - beq _020A2190 - cmp r0, #0x5 - moveq r0, #0x14 - streq r0, [sp, #0x0] - moveq r0, #0x10 - streq r0, [sp, #0x4] - moveq r2, #0x0 - b _020A21A0 -_020A2190: - mov r0, #0x10 - str r0, [sp, #0x0] - str r0, [sp, #0x4] - mov r2, #0x0 -_020A21A0: - ldr r1, [sp, #0x0] - ldr r0, [sp, #0x4] - mov r9, #0x0 - add r0, r1, r0 - add r0, r2, r0 - mov r0, r0, lsl #0x1 - str r0, [sp, #0x8] - cmp r0, #0x0 - ble _020A22B8 - mov r0, #0x20 - str r0, [sp, #0x10] - mov r0, #0x14 - mov r6, r9 - add r5, sp, #0x18 - str r9, [sp, #0xc] - mov r4, #0x1 - mov r11, #0x30 - str r0, [sp, #0x14] -_020A21E8: - add r7, r10, #0x348 - mov r0, r7 - bl FUN_020A41CC - add r0, r9, #0x41 - strb r0, [sp, #0x18] - add r0, r9, #0x1 - ldr r8, [sp, #0xc] - cmp r0, #0x0 - ble _020A222C -_020A220C: - mov r0, r7 - mov r1, r5 - mov r2, r4 - bl FUN_020A410C - add r8, r8, #0x1 - add r0, r9, #0x1 - cmp r8, r0 - blt _020A220C -_020A222C: - mov r0, r7 - mov r1, r10 - mov r2, r11 - bl FUN_020A410C - ldr r2, [sp, #0x10] - mov r0, r7 - add r1, r10, #0x54 - bl FUN_020A410C - ldr r2, [sp, #0x10] - mov r0, r7 - add r1, r10, #0x34 - bl FUN_020A410C - mov r0, r7 - add r1, sp, #0x19 - bl FUN_020A4098 - add r7, r10, #0x3fc - mov r0, r7 - bl FUN_020A3B8C - mov r0, r7 - mov r1, r10 - mov r2, r11 - bl FUN_020A3ACC - ldr r2, [sp, #0x14] - mov r0, r7 - add r1, sp, #0x19 - bl FUN_020A3ACC - add r1, r10, #0x74 - mov r0, r7 - add r1, r1, r6 - bl FUN_020A3A58 - ldr r0, [sp, #0x8] - add r6, r6, #0x10 - cmp r6, r0 - add r9, r9, #0x1 - blt _020A21E8 -_020A22B8: - ldrb r0, [r10, #0x454] - cmp r0, #0x0 - beq _020A2300 - add r1, r10, #0x74 - str r1, [r10, #0x1d4] - ldr r0, [sp, #0x0] - ldr r2, [r10, #0x1d4] - add r1, r1, r0 - add r0, r2, r0, lsl #0x1 - str r0, [r10, #0x1d8] - str r1, [r10, #0xbc] - ldr r1, [r10, #0xbc] - ldr r0, [sp, #0x0] - add r1, r1, r0 - ldr r0, [sp, #0x4] - add r0, r1, r0 - str r0, [r10, #0xc0] - b _020A2338 -_020A2300: - add r1, r10, #0x74 - str r1, [r10, #0xbc] - ldr r0, [sp, #0x0] - ldr r2, [r10, #0xbc] - add r1, r1, r0 - add r0, r2, r0, lsl #0x1 - str r0, [r10, #0xc0] - str r1, [r10, #0x1d4] - ldr r1, [r10, #0x1d4] - ldr r0, [sp, #0x0] - add r1, r1, r0 - ldr r0, [sp, #0x4] - add r0, r1, r0 - str r0, [r10, #0x1d8] -_020A2338: - ldr r1, [r10, #0x1d8] - add r0, r10, #0x1e0 - mov r2, #0x10 - bl FUN_020A4A3C - ldr r1, [r10, #0xc0] - add r0, r10, #0xc8 - mov r2, #0x10 - bl FUN_020A4A3C - add sp, sp, #0x34 - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_020A2364 -FUN_020A2364: ; 0x020A2364 - stmdb sp!, {r4,lr} - sub sp, sp, #0x30 - mov r4, r0 - ldr r1, _020A23BC ; =0x021062A0 - add r0, sp, #0x0 - mov r2, r4 - bl FUN_020A23C8 - ldr r1, _020A23C0 ; =0x021062A4 - add r0, sp, #0x10 - mov r2, r4 - bl FUN_020A23C8 - ldr r1, _020A23C4 ; =0x021062A8 - add r0, sp, #0x20 - mov r2, r4 - bl FUN_020A23C8 -_020A23A0: ; 0x020A23A0 - add r0, sp, #0x0 - mov r1, r4 - mov r2, #0x30 - bl MI_CpuCopy8 - add sp, sp, #0x30 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A23BC: .word 0x021062A0 -_020A23C0: .word 0x021062A4 -_020A23C4: .word 0x021062A8 - - arm_func_start FUN_020A23C8 -FUN_020A23C8: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x14 - mov r5, r2 - add r4, r5, #0x348 - mov r7, r0 - mov r6, r1 - mov r0, r4 - bl FUN_020A41CC - mov r0, r6 - bl strlen - mov r2, r0 - mov r1, r6 - mov r0, r4 - bl FUN_020A410C - mov r0, r4 - mov r1, r5 - mov r2, #0x30 - bl FUN_020A410C - mov r0, r4 - add r1, r5, #0x34 - mov r2, #0x40 - bl FUN_020A410C - mov r0, r4 - add r1, sp, #0x0 - bl FUN_020A4098 - add r4, r5, #0x3fc - mov r0, r4 - bl FUN_020A3B8C - mov r1, r5 - mov r0, r4 - mov r2, #0x30 - bl FUN_020A3ACC - mov r0, r4 - add r1, sp, #0x0 - mov r2, #0x14 - bl FUN_020A3ACC - mov r0, r4 - mov r1, r7 - bl FUN_020A3A58 - add sp, sp, #0x14 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_020A2470 -FUN_020A2470: ; 0x020A2470 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x1c - movs r10, r2 - str r0, [sp, #0x8] - mov r11, r1 - addeq sp, sp, #0x1c - ldmeqia sp!, {r4-r11,lr} - bxeq lr - ldr r0, [r10, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x1c - ldmeqia sp!, {r4-r11,lr} - bxeq lr - mov r0, r0, lsl #0x1 - add r0, r0, r0, lsr #0x1f - mov r0, r0, asr #0x1 - add r9, r0, #0x1 - mov r0, #0x14 - mul r0, r9, r0 - ldr r1, _020A26C8 ; =0x021C8EC8 - ldr r1, [r1, #0x0] - blx r1 - movs r8, r0 - addeq sp, sp, #0x1c - ldmeqia sp!, {r4-r11,lr} - bxeq lr - add r7, r8, r9, lsl #0x1 - add r6, r7, r9, lsl #0x1 - add r1, r6, r9, lsl #0x1 - str r1, [sp, #0xc] - add r1, r1, r9, lsl #0x1 - add r5, r1, r9, lsl #0x1 - str r1, [sp, #0x10] - ldr r2, [r10, #0x0] - add r4, r5, r9, lsl #0x1 - mov r1, r11 - mov r3, r9 - add r11, r4, r9, lsl #0x1 - bl FUN_020A4B50 - ldr r1, [r10, #0x1c] - ldr r2, [r10, #0x18] - mov r0, r7 - mov r3, r9 - bl FUN_020A4B50 - ldr r1, [r10, #0xc] - ldr r2, [r10, #0x8] - mov r0, r5 - mov r3, r9 - bl FUN_020A4B50 - bl FUN_020A36EC - str r0, [sp, #0x14] - ldr r0, [sp, #0xc] - str r5, [sp, #0x0] - mov r1, r8 - mov r2, r7 - mov r3, r9 - bl FUN_020A4BB0 - ldr r1, [r10, #0x24] - ldr r2, [r10, #0x20] - mov r0, r7 - mov r3, r9 - bl FUN_020A4B50 - ldr r1, [r10, #0x14] - ldr r2, [r10, #0x10] - mov r0, r5 - mov r3, r9 - bl FUN_020A4B50 - ldr r0, [sp, #0x10] - mov r1, r8 - mov r2, r7 - mov r3, r9 - str r5, [sp, #0x0] - bl FUN_020A4BB0 - ldr r0, [sp, #0x14] - bl FUN_020A36B4 - ldr r1, [sp, #0xc] - ldr r2, [sp, #0x10] - mov r0, r8 - mov r3, r9 - bl FUN_020A57BC - ldr r1, [r10, #0x2c] - ldr r2, [r10, #0x28] - mov r0, r7 - mov r3, r9 - bl FUN_020A4B50 - mov r0, r6 - mov r1, r8 - mov r2, r7 - mov r3, r9 - bl FUN_020A5608 - ldr r1, [r10, #0x14] - ldr r2, [r10, #0x10] - mov r0, r7 - mov r3, r9 - bl FUN_020A4B50 - mov r0, r8 - mov r1, r6 - mov r2, r7 - mov r3, r9 - bl FUN_020A5608 - ldr r2, [sp, #0x10] - mov r0, r6 - mov r1, r8 - mov r3, r9 - bl FUN_020A5930 - ldr r1, [r10, #0x4] - ldr r2, [r10, #0x0] - mov r0, r7 - mov r3, r9 - bl FUN_020A4B50 - mov r0, r6 - mov r1, r9 - bl FUN_020A59DC -_020A2634: ; 0x020A2634 - cmp r0, #0x0 - bge _020A267C - mov r0, r6 - mov r1, r9 - bl FUN_020A5874 - str r9, [sp, #0x0] - mov r1, r6 - mov r2, r7 - mov r3, r4 - mov r0, #0x0 - str r11, [sp, #0x4] - bl FUN_020A5240 - mov r0, r4 - mov r1, r7 - mov r2, r4 - mov r3, r9 - bl FUN_020A57BC - b _020A2698 -_020A267C: - str r9, [sp, #0x0] - mov r1, r6 - mov r2, r7 - mov r3, r4 - mov r0, #0x0 - str r11, [sp, #0x4] - bl FUN_020A5240 -_020A2698: - ldr r0, [sp, #0x8] - mov r1, r4 - mov r3, r9 - mov r2, #0x30 - bl FUN_020A4B08 - ldr r1, _020A26CC ; =0x021C8EF4 - mov r0, r8 - ldr r1, [r1, #0x0] - blx r1 - add sp, sp, #0x1c - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020A26C8: .word 0x021C8EC8 -_020A26CC: .word 0x021C8EF4 - - arm_func_start FUN_020A26D0 -FUN_020A26D0: ; 0x020A26D0 - stmdb sp!, {r4-r6,lr} - mov r6, r1 - mov r4, r0 - ldrb r0, [r6, #0x0] - ldrb r1, [r6, #0x1] - bl FUN_020A284C -_020A26E8: ; 0x020A26E8 - cmp r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - add r0, r6, #0x2 - add r1, r4, #0x34 - mov r2, #0x20 - bl MI_CpuCopy8 - ldrb r5, [r6, #0x22] - add r6, r6, #0x23 - cmp r5, #0x20 - movne r0, #0x0 - strneb r0, [r4, #0x30] - bne _020A2734 - mov r0, r6 - add r1, r4, #0x74 - mov r2, #0x20 - bl MI_CpuCopy8 - mov r0, r4 - bl FUN_020A39B0 -_020A2734: - add r0, r6, r5 - ldrb r1, [r0, #0x1] - ldrb r3, [r6, r5] - add r0, r0, #0x2 - mov r2, #0x2 - add r1, r1, r3, lsl #0x8 - add r1, r1, r1, lsr #0x1f - mov r1, r1, asr #0x1 - bl FUN_020A285C - mov r0, r0, lsl #0x10 - movs r0, r0, lsr #0x10 - strh r0, [r4, #0x32] - movne r0, #0x1 - strneb r0, [r4, #0x455] - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_020A2774 -FUN_020A2774: ; 0x020A2774 - stmdb sp!, {r4-r6,lr} - mov r5, r1 - mov r6, r0 - ldrb r0, [r5, #0x0] - ldrb r1, [r5, #0x1] - bl FUN_020A284C -_020A278C: ; 0x020A278C - cmp r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldrb r2, [r5, #0x2] - ldrb r1, [r5, #0x3] - ldr r3, _020A2848 ; =0x55555556 - add r0, r5, #0x8 - add r4, r1, r2, lsl #0x8 - smull r2, r1, r3, r4 - add r1, r1, r4, lsr #0x1f - mov r2, #0x3 - bl FUN_020A285C - mov r0, r0, lsl #0x10 - movs r0, r0, lsr #0x10 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - strh r0, [r6, #0x32] - ldrb r12, [r5, #0x4] - ldrb r0, [r5, #0x5] - ldrb r3, [r5, #0x6] - ldrb r2, [r5, #0x7] - mov r1, #0x0 - add r12, r0, r12, lsl #0x8 - add r0, r4, #0x8 - add r4, r2, r3, lsl #0x8 - add r0, r0, r12 - strb r1, [r6, #0x30] - cmp r4, #0x20 - add r5, r5, r0 - blt _020A2818 - mov r0, r5 - add r1, r6, #0x34 - mov r2, #0x20 - bl MI_CpuCopy8 - b _020A2838 -_020A2818: - add r0, r6, #0x34 - rsb r2, r4, #0x20 - bl MI_CpuFill8 - add r1, r6, #0x54 - mov r0, r5 - mov r2, r4 - sub r1, r1, r4 - bl MI_CpuCopy8 -_020A2838: - mov r0, #0x1 - strb r0, [r6, #0x455] - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A2848: .word 0x55555556 - - arm_func_start FUN_020A284C -FUN_020A284C: - cmp r0, #0x3 - moveq r0, #0x1 - movne r0, #0x0 - bx lr - - arm_func_start FUN_020A285C -FUN_020A285C: ; 0x020A285C - stmdb sp!, {r4-r8,lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - mov r5, #0x0 - ldr r4, _020A28BC ; =0x0210623C -_020A2874: - mov r0, r5, lsl #0x1 - ldrh r3, [r4, r0] - mov r0, r8 - mov r1, r7 - mov r2, r6 - bl FUN_020A28C0 -_020A288C: ; 0x020A288C - cmp r0, #0x0 - ldrne r0, _020A28BC ; =0x0210623C - movne r1, r5, lsl #0x1 - ldrneh r0, [r0, r1] - ldmneia sp!, {r4-r8,lr} - bxne lr - add r5, r5, #0x1 - cmp r5, #0x2 - blo _020A2874 - mov r0, #0x0 - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_020A28BC: .word 0x0210623C - - arm_func_start FUN_020A28C0 -FUN_020A28C0: - stmdb sp!, {r4,lr} - cmp r1, #0x0 - mov r4, #0x0 - ble _020A2908 -_020A28D0: - ldrb lr, [r0, #0x0] - ldrb r12, [r0, #0x1] - cmp r2, #0x3 - add lr, r12, lr, lsl #0x8 - ldreqb r12, [r0, #0x2] - addeq lr, r12, lr, lsl #0x8 - cmp lr, r3 - moveq r0, #0x1 - ldmeqia sp!, {r4,lr} - bxeq lr - add r4, r4, #0x1 - cmp r4, r1 - add r0, r0, r2 - blt _020A28D0 -_020A2908: - mov r0, #0x0 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020A2914 -FUN_020A2914: ; 0x020A2914 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r6, r0 - mov r5, r1 - add r0, r5, #0x2 - add r1, r6, #0x54 - mov r2, #0x20 - bl MI_CpuCopy8 - add r0, r5, #0x22 - ldrb r7, [r6, #0x30] - add r5, r5, #0x23 - ldrb r4, [r0, #0x0] - cmp r7, #0x0 - beq _020A2974 - cmp r4, #0x20 - bne _020A2974 - mov r1, r5 - add r0, r6, #0x74 - mov r2, #0x20 - bl memcmp -_020A2964: ; 0x020A2964 - cmp r0, #0x0 - moveq r0, #0x1 - streqb r0, [r6, #0x31] - beq _020A29B4 -_020A2974: - cmp r7, #0x0 - beq _020A2984 - mov r0, r6 - bl FUN_020A3798 -_020A2984: - cmp r4, #0x0 - moveq r0, #0x0 - streqb r0, [r6, #0x30] - beq _020A29AC - mov r0, r5 - add r1, r6, #0x74 - mov r2, #0x20 - bl MI_CpuCopy8 - mov r0, #0x1 - strb r0, [r6, #0x30] -_020A29AC: - mov r0, #0x0 - strb r0, [r6, #0x31] -_020A29B4: - add r0, r5, r4 - ldrb r2, [r5, r4] - ldrb r1, [r0, #0x1] - mov r0, #0x2 - add r1, r1, r2, lsl #0x8 - strh r1, [r6, #0x32] - strb r0, [r6, #0x455] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_020A29DC -FUN_020A29DC: ; 0x020A29DC - stmdb sp!, {r0-r3} - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x24 - ldr r1, [sp, #0x4c] - mov r10, r0 - ldrb r4, [r1, #0x2] - ldrb r3, [r1, #0x0] - ldrb r2, [r1, #0x1] - add r0, r1, #0x3 - mvn r1, #0x0 - str r0, [sp, #0x4c] - add r2, r2, r3, lsl #0x8 - add r0, sp, #0x14 - str r1, [r10, #0x45c] - add r7, r4, r2, lsl #0x8 - bl RTC_GetDate - mov r8, #0x0 - ldr r0, [sp, #0x14] - ldr r2, [sp, #0x1c] - add r1, r0, #0x7d0 - ldr r0, [sp, #0x18] - mov r1, r1, lsl #0x10 - add r0, r1, r0, lsl #0x8 - add r0, r2, r0 - str r0, [r10, #0x80c] - strb r8, [r10, #0x6b0] - str r8, [r10, #0x5a0] - ldr r0, [r10, #0x5a0] - mov r6, r8 - str r0, [r10, #0x594] - add r0, r10, #0x7b0 - str r0, [sp, #0x4] - mov r0, #0x1 - str r8, [sp, #0x8] - mov r4, r8 - mov r11, #0x2 - str r0, [sp, #0xc] - mvn r5, #0x0 -_020A2A74: - ldr r1, [sp, #0x4c] - mov r0, r10 - ldrb r2, [r1, #0x2] - ldrb r12, [r1, #0x0] - ldrb r3, [r1, #0x1] - add r9, r1, #0x3 - add r1, sp, #0x4c - str r9, [sp, #0x4c] - str r5, [r10, #0x458] - strb r4, [r10, #0x5ad] - strb r4, [r10, #0x5ac] - strb r4, [r10, #0x5af] - strb r4, [r10, #0x6b0] - strb r4, [r10, #0x5b0] - strb r4, [r10, #0x7b0] - add r3, r3, r12, lsl #0x8 - ldr r9, [sp, #0x4c] - add r3, r2, r3, lsl #0x8 - add r2, r3, #0x3 - str r9, [r10, #0x804] - str r3, [r10, #0x808] - sub r7, r7, r2 - mov r2, r4 - mov r3, r4 - str r8, [sp, #0x0] - bl FUN_020A2F98 -_020A2ADC: ; 0x020A2ADC - cmp r0, #0x0 - bne _020A2AFC - ldr r0, [r10, #0x594] - cmp r0, #0x33 - blo _020A2AFC - ldr r0, [r10, #0x5a0] - cmp r0, #0x0 - bne _020A2B14 -_020A2AFC: - mov r0, #0x9 - add sp, sp, #0x24 - strb r0, [r10, #0x455] - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr -_020A2B14: - mov r0, r10 - bl FUN_020A2CBC - mov r8, r0 - cmp r6, #0x0 - bne _020A2B44 - ldr r0, [r10, #0x800] - cmp r0, #0x0 - beq _020A2B44 - ldr r1, [sp, #0x4] - bl FUN_020A2C18 -_020A2B3C: ; 0x020A2B3C - cmp r0, #0x0 - orrne r8, r8, #0x4000 -_020A2B44: - and r9, r8, #0xff - cmp r9, #0x1 - bne _020A2BB4 - cmp r7, #0x0 - beq _020A2BB4 - ldr r1, [sp, #0x4c] - ldr r2, [sp, #0x8] - add r1, r1, #0x3 - str r1, [sp, #0x10] - ldr r1, [sp, #0x8] - mov r0, r10 - strb r1, [r10, #0x5ad] - add r1, sp, #0x10 - mov r3, r2 - str r11, [sp, #0x0] - bl FUN_020A2F98 -_020A2B84: ; 0x020A2B84 - cmp r0, #0x0 - movne r0, #0x9 - addne sp, sp, #0x24 - strneb r0, [r10, #0x455] - ldmneia sp!, {r4-r11,lr} - addne sp, sp, #0x10 - bxne lr - mov r0, r10 - add r1, r10, #0x480 - bl FUN_020A2DBC - bic r1, r8, #0xff - orr r8, r1, r0 -_020A2BB4: - ldr r3, [r10, #0x810] - cmp r3, #0x0 - beq _020A2BD4 - mov r0, r8 - mov r1, r10 - mov r2, r6 - blx r3 - mov r8, r0 -_020A2BD4: - cmp r9, #0x0 - add r6, r6, #0x1 - beq _020A2BF4 - cmp r8, #0x0 - bne _020A2BF4 - cmp r7, #0x0 - ldrne r8, [sp, #0xc] - bne _020A2A74 -_020A2BF4: - cmp r8, #0x0 - moveq r0, #0x3 - streqb r0, [r10, #0x455] - movne r0, #0x9 - strneb r0, [r10, #0x455] - add sp, sp, #0x24 - ldmia sp!, {r4-r11,lr} - add sp, sp, #0x10 - bx lr - - arm_func_start FUN_020A2C18 -FUN_020A2C18: - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - b _020A2C38 -_020A2C28: - cmp r1, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,lr} - bxeq lr -_020A2C38: - ldrsb r0, [r5], #0x1 - ldrsb r1, [r6], #0x1 - cmp r1, r0 - beq _020A2C28 - cmp r0, #0x2a - movne r0, #0x1 - ldmneia sp!, {r4-r6,lr} - bxne lr - sub r6, r6, #0x1 - mov r0, r6 - bl FUN_020A2C94 - mov r4, r0 - mov r0, r5 - bl FUN_020A2C94 - cmp r0, r4 - movgt r0, #0x1 - ldmgtia sp!, {r4-r6,lr} - bxgt lr - sub r0, r4, r0 - add r6, r6, r0 - b _020A2C38 -_020A2C8C: ; 0x020A2C8C - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_020A2C94 -FUN_020A2C94: ; 0x020A2C94 - mov r2, r0 - b _020A2CA0 -_020A2C9C: - add r0, r0, #0x1 -_020A2CA0: - ldrsb r1, [r0, #0x0] - cmp r1, #0x2e - beq _020A2CB4 - cmp r1, #0x0 - bne _020A2C9C -_020A2CB4: - sub r0, r0, r2 - bx lr - - arm_func_start FUN_020A2CBC -FUN_020A2CBC: ; 0x020A2CBC - stmdb sp!, {r4-r6,lr} - mov r5, r0 - ldrb r0, [r5, #0x5af] - ldr r1, [r5, #0x45c] - cmp r0, #0x0 - movne r4, #0x0 - moveq r4, #0x8000 - mvn r0, #0x0 - cmp r1, r0 - orreq r0, r4, #0x4 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - ldr r0, [r5, #0x458] - cmp r0, #0x3 - beq _020A2D04 - cmp r0, #0x4 - beq _020A2D40 - b _020A2D7C -_020A2D04: - add r6, r5, #0x3fc - mov r0, r6 - bl FUN_020A3B8C - ldr r1, [r5, #0x460] - ldr r2, [r5, #0x464] - mov r0, r6 - sub r2, r2, r1 - bl FUN_020A3ACC - ldr r1, _020A2DB8 ; =0x00000468 - mov r0, r6 - add r1, r5, r1 - bl FUN_020A3A58 - mov r0, #0x10 - str r0, [r5, #0x47c] - b _020A2D88 -_020A2D40: - add r6, r5, #0x348 - mov r0, r6 - bl FUN_020A41CC - ldr r1, [r5, #0x460] - ldr r2, [r5, #0x464] - mov r0, r6 - sub r2, r2, r1 - bl FUN_020A410C - ldr r1, _020A2DB8 ; =0x00000468 - mov r0, r6 - add r1, r5, r1 - bl FUN_020A4098 - mov r0, #0x14 - str r0, [r5, #0x47c] - b _020A2D88 -_020A2D7C: - orr r0, r4, #0x3 - ldmia sp!, {r4-r6,lr} - bx lr -_020A2D88: - mov r0, r5 - add r1, r5, #0x5b0 - bl FUN_020A3628 - movs r1, r0 - orreq r0, r4, #0x1 - ldmeqia sp!, {r4-r6,lr} - bxeq lr - mov r0, r5 - bl FUN_020A2DBC -_020A2DAC: ; 0x020A2DAC - orr r0, r4, r0 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A2DB8: .word 0x00000468 - - arm_func_start FUN_020A2DBC -FUN_020A2DBC: - stmdb sp!, {r4-r10,lr} - sub sp, sp, #0x8 - mov r8, r0 - ldr r0, [r8, #0x5a4] - mov r7, r1 - cmp r0, #0x0 - beq _020A2E14 - ldr r0, [r8, #0x5a8] - cmp r0, #0x0 - beq _020A2E14 - ldr r0, [r7, #0x10] - cmp r0, #0x0 - beq _020A2E14 - ldr r0, [r7, #0xc] - cmp r0, #0x0 - beq _020A2E14 - ldr r0, [r7, #0x8] - cmp r0, #0x0 - beq _020A2E14 - ldr r0, [r7, #0x4] - cmp r0, #0x0 - bne _020A2E24 -_020A2E14: - add sp, sp, #0x8 - mov r0, #0x2 - ldmia sp!, {r4-r10,lr} - bx lr -_020A2E24: - mov r0, r0, lsl #0x1 - ldr r1, _020A2F8C ; =0x021C8EC8 - add r0, r0, r0, lsr #0x1f - mov r4, r0, asr #0x1 - ldr r1, [r1, #0x0] - mov r0, r4, lsl #0x3 - blx r1 - movs r6, r0 - addeq sp, sp, #0x8 - moveq r0, #0x2 - ldmeqia sp!, {r4-r10,lr} - bxeq lr - add r5, r6, r4, lsl #0x1 - add r10, r5, r4, lsl #0x1 - ldr r1, [r8, #0x5a4] - ldr r2, [r8, #0x5a8] - mov r0, r5 - mov r3, r4 - add r9, r10, r4, lsl #0x1 - bl FUN_020A4B50 - ldr r1, [r7, #0x10] - ldr r2, [r7, #0xc] - mov r0, r10 - mov r3, r4 - bl FUN_020A4B50 - mov r0, r9 - ldr r1, [r7, #0x8] - ldr r2, [r7, #0x4] - mov r3, r4 - bl FUN_020A4B50 - bl FUN_020A36EC - str r9, [sp, #0x0] - mov r2, r10 - mov r9, r0 - mov r0, r6 - mov r1, r5 - mov r3, r4 - bl FUN_020A507C - mov r0, r9 - bl FUN_020A36B4 - mov r0, r5 - mov r1, r6 - ldr r2, [r7, #0x4] - mov r3, r4 - bl FUN_020A4B08 - ldrb r0, [r6, r4, lsl #0x1] - mov r4, #0x0 - cmp r0, #0x0 - bne _020A2EF4 - ldrb r0, [r5, #0x1] - cmp r0, #0x1 - beq _020A2EFC -_020A2EF4: - mov r4, #0x2 - b _020A2F6C -_020A2EFC: - ldr r3, [r7, #0x4] - mov r2, #0x2 - cmp r3, #0x2 - ble _020A2F24 -_020A2F0C: - ldrb r0, [r5, r2] - cmp r0, #0xff - bne _020A2F24 - add r2, r2, #0x1 - cmp r2, r3 - blt _020A2F0C -_020A2F24: - add r1, r2, #0x1 - cmp r1, r3 - bge _020A2F68 - ldrb r0, [r5, r2] - cmp r0, #0x0 - bne _020A2F68 - ldrb r0, [r5, r1] - cmp r0, #0x30 - bne _020A2F68 - ldr r0, _020A2F90 ; =0x00000468 - ldr r2, [r8, #0x47c] - add r1, r5, r3 - add r0, r8, r0 - sub r1, r1, r2 - bl memcmp -_020A2F60: ; 0x020A2F60 - cmp r0, #0x0 - beq _020A2F6C -_020A2F68: - mov r4, #0x2 -_020A2F6C: - ldr r1, _020A2F94 ; =0x021C8EF4 - mov r0, r6 - ldr r1, [r1, #0x0] - blx r1 - mov r0, r4 - add sp, sp, #0x8 - ldmia sp!, {r4-r10,lr} - bx lr - .balign 4 -_020A2F8C: .word 0x021C8EC8 -_020A2F90: .word 0x00000468 -_020A2F94: .word 0x021C8EF4 - - arm_func_start FUN_020A2F98 -FUN_020A2F98: - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - str r1, [sp, #0x4] - ldr r1, [r1, #0x0] - mov r9, r0 - str r1, [sp, #0x8] - add r0, r1, #0x1 - str r0, [sp, #0x8] - add r0, sp, #0x8 - mov r5, r2 - mov r4, r3 - ldr r8, [sp, #0x30] - ldrb r6, [r1, #0x0] - bl FUN_020A35D8 - movs r7, r0 - bmi _020A2FE0 - cmp r7, #0x7d0 - ble _020A2FF0 -_020A2FE0: - add sp, sp, #0xc - mov r0, #0x1 - ldmia sp!, {r4-r11,lr} - bx lr -_020A2FF0: - and r1, r6, #0x1f - cmp r1, #0x18 - addls pc, pc, r1, lsl #0x2 - b _020A3430 -_020A3000: - b _020A3430 -_020A3004: - b _020A3430 -_020A3008: - b _020A3064 -_020A300C: - b _020A315C -_020A3010: - b _020A3430 -_020A3014: - b _020A3430 -_020A3018: - b _020A31DC -_020A301C: - b _020A3430 -_020A3020: - b _020A3430 -_020A3024: - b _020A3430 -_020A3028: - b _020A3430 -_020A302C: - b _020A3430 -_020A3030: - b _020A3274 -_020A3034: - b _020A3430 -_020A3038: - b _020A3430 -_020A303C: - b _020A3430 -_020A3040: - b _020A3348 -_020A3044: - b _020A33D8 -_020A3048: - b _020A3430 -_020A304C: - b _020A3274 -_020A3050: - b _020A3274 -_020A3054: - b _020A3430 -_020A3058: - b _020A3274 -_020A305C: - b _020A32F4 -_020A3060: - b _020A32F4 -_020A3064: - ldrb r0, [r9, #0x5ad] - cmp r0, #0x0 - beq _020A314C - cmp r4, #0x0 - bne _020A30E0 - ldr r0, [sp, #0x8] - ldrb r1, [r0, #0x0] - cmp r1, #0x0 - bne _020A30A4 -_020A3088: - ldr r1, [sp, #0x8] - sub r7, r7, #0x1 - add r0, r1, #0x1 - str r0, [sp, #0x8] - ldrb r1, [r1, #0x1] - cmp r1, #0x0 - beq _020A3088 -_020A30A4: - cmp r8, #0x0 - beq _020A30C0 - cmp r8, #0x2 - streq r7, [r9, #0x484] - ldreq r0, [sp, #0x8] - streq r0, [r9, #0x488] - b _020A314C -_020A30C0: - cmp r7, #0x100 - bgt _020A314C - ldr r1, _020A34B8 ; =0x00000494 - mov r2, r7 - add r1, r9, r1 - bl MI_CpuCopy8 - str r7, [r9, #0x594] - b _020A314C -_020A30E0: - cmp r4, #0x1 - bne _020A314C - ldr r0, [sp, #0x8] - ldrb r1, [r0, #0x0] - cmp r1, #0x0 - bne _020A3114 -_020A30F8: - ldr r1, [sp, #0x8] - sub r7, r7, #0x1 - add r0, r1, #0x1 - str r0, [sp, #0x8] - ldrb r1, [r1, #0x1] - cmp r1, #0x0 - beq _020A30F8 -_020A3114: - cmp r8, #0x0 - beq _020A3130 - cmp r8, #0x2 - streq r7, [r9, #0x48c] - ldreq r0, [sp, #0x8] - streq r0, [r9, #0x490] - b _020A314C -_020A3130: - cmp r7, #0x8 - bgt _020A314C - ldr r1, _020A34BC ; =0x00000598 - mov r2, r7 - add r1, r9, r1 - bl MI_CpuCopy8 - str r7, [r9, #0x5a0] -_020A314C: - ldr r0, [sp, #0x8] - add r0, r0, r7 - str r0, [sp, #0x8] - b _020A349C -_020A315C: - cmp r5, #0x1 - bne _020A317C - cmp r8, #0x2 - ldrne r1, [sp, #0x8] - subne r0, r7, #0x1 - addne r1, r1, #0x1 - strne r1, [r9, #0x5a4] - strne r0, [r9, #0x5a8] -_020A317C: - ldrb r0, [r9, #0x5ad] - cmp r0, #0x0 - beq _020A31CC - ldr r0, [sp, #0x8] - add r1, sp, #0x8 - add r0, r0, #0x1 - str r0, [sp, #0x8] - mov r0, r9 - mov r2, r5 - mov r3, #0x0 - str r8, [sp, #0x0] - bl FUN_020A2F98 -_020A31AC: ; 0x020A31AC - cmp r0, #0x0 - addne sp, sp, #0xc - movne r0, #0x1 - ldmneia sp!, {r4-r11,lr} - bxne lr - mov r0, #0x0 - strb r0, [r9, #0x5ad] - b _020A349C -_020A31CC: - ldr r0, [sp, #0x8] - add r0, r0, r7 - str r0, [sp, #0x8] - b _020A349C -_020A31DC: - ldr r5, [sp, #0x8] - mov r6, #0x0 - ldr sl, _020A34C0 ; =0x02106278 -_020A31E8: - ldr r4, [r10, r6, lsl #0x2] - mov r0, r4 - bl strlen - mov r2, r0 - mov r0, r5 - mov r1, r4 - bl memcmp -_020A3204: ; 0x020A3204 - cmp r0, #0x0 - bne _020A3258 - cmp r6, #0x5 - addls pc, pc, r6, lsl #0x2 - b _020A3264 -_020A3218: ; 0x020A3218 - b _020A3264 -_020A321C: ; 0x020A321C - b _020A3230 -_020A3220: ; 0x020A3220 - b _020A3230 -_020A3224: ; 0x020A3224 - b _020A3240 -_020A3228: ; 0x020A3228 - b _020A3240 -_020A322C: ; 0x020A322C - b _020A324C -_020A3230: - cmp r8, #0x0 - streq r6, [r9, #0x45c] - strb r6, [r9, #0x5ad] - b _020A3264 -_020A3240: - cmp r8, #0x2 - strne r6, [r9, #0x458] - b _020A3264 -_020A324C: - cmp r8, #0x2 - strneb r6, [r9, #0x5ae] - b _020A3264 -_020A3258: - add r6, r6, #0x1 - cmp r6, #0x6 - blt _020A31E8 -_020A3264: - ldr r0, [sp, #0x8] - add r0, r0, r7 - str r0, [sp, #0x8] - b _020A349C -_020A3274: - cmp r8, #0x2 - beq _020A32DC - ldrb r0, [r9, #0x5ac] - cmp r0, #0x0 - beq _020A32CC - ldr r1, [sp, #0x8] - mov r2, r7 - add r0, r9, #0x6b0 - bl FUN_020A3554 - ldrb r0, [r9, #0x5ae] - cmp r0, #0x5 - bne _020A32DC - cmp r7, #0x4f - bgt _020A32DC - ldr r0, [sp, #0x8] - mov r2, r7 - add r1, r9, #0x7b0 - bl MI_CpuCopy8 - add r0, r9, r7 - mov r1, #0x0 - strb r1, [r0, #0x7b0] - b _020A32DC -_020A32CC: - ldr r1, [sp, #0x8] - mov r2, r7 - add r0, r9, #0x5b0 - bl FUN_020A3554 -_020A32DC: - mov r0, #0x0 - strb r0, [r9, #0x5ae] - ldr r0, [sp, #0x8] - add r0, r0, r7 - str r0, [sp, #0x8] - b _020A349C -_020A32F4: - cmp r8, #0x2 - beq _020A3330 - ldr r0, [sp, #0x8] - bl FUN_020A34C4 -_020A3304: ; 0x020A3304 - cmp r4, #0x0 - bne _020A3320 - ldr r1, [r9, #0x80c] - cmp r1, r0 - movcs r0, #0x1 - strcsb r0, [r9, #0x5af] - b _020A3330 -_020A3320: - ldr r1, [r9, #0x80c] - cmp r1, r0 - movhi r0, #0x0 - strhib r0, [r9, #0x5af] -_020A3330: - ldr r1, [sp, #0x8] - mov r0, #0x1 - add r1, r1, r7 - str r1, [sp, #0x8] - strb r0, [r9, #0x5ac] - b _020A349C -_020A3348: - cmp r5, #0x0 - bne _020A3364 - cmp r4, #0x0 - bne _020A3364 - cmp r8, #0x2 - ldrne r0, [sp, #0x8] - strne r0, [r9, #0x460] -_020A3364: - ldr r0, [sp, #0x8] - mov r10, #0x0 - add r7, r0, r7 - cmp r0, r7 - bhs _020A33BC - add r11, sp, #0x8 - add r6, r5, #0x1 -_020A3380: - mov r0, r9 - mov r1, r11 - mov r2, r6 - mov r3, r10 - str r8, [sp, #0x0] - bl FUN_020A2F98 -_020A3398: ; 0x020A3398 - cmp r0, #0x0 - add r10, r10, #0x1 - addne sp, sp, #0xc - movne r0, #0x1 - ldmneia sp!, {r4-r11,lr} - bxne lr - ldr r0, [sp, #0x8] - cmp r0, r7 - blo _020A3380 -_020A33BC: - cmp r5, #0x1 - bne _020A349C - cmp r4, #0x0 - bne _020A349C - cmp r8, #0x2 - strne r0, [r9, #0x464] - b _020A349C -_020A33D8: - ldr r0, [sp, #0x8] - add r6, r0, r7 - cmp r0, r6 - bhs _020A349C - add r7, r5, #0x1 - add r4, sp, #0x8 - mov r5, #0x0 -_020A33F4: - mov r0, r9 - mov r1, r4 - mov r2, r7 - mov r3, r5 - str r8, [sp, #0x0] - bl FUN_020A2F98 -_020A340C: ; 0x020A340C - cmp r0, #0x0 - addne sp, sp, #0xc - movne r0, #0x1 - ldmneia sp!, {r4-r11,lr} - bxne lr - ldr r0, [sp, #0x8] - cmp r0, r6 - blo _020A33F4 - b _020A349C -_020A3430: - cmp r6, #0xa0 - bne _020A3490 - ldr r0, [sp, #0x8] - add r6, r0, r7 - cmp r0, r6 - bhs _020A349C - add r7, r5, #0x1 - add r4, sp, #0x8 - mov r5, #0x0 -_020A3454: - mov r0, r9 - mov r1, r4 - mov r2, r7 - mov r3, r5 - str r8, [sp, #0x0] - bl FUN_020A2F98 -_020A346C: ; 0x020A346C - cmp r0, #0x0 - addne sp, sp, #0xc - movne r0, #0x1 - ldmneia sp!, {r4-r11,lr} - bxne lr - ldr r0, [sp, #0x8] - cmp r0, r6 - blo _020A3454 - b _020A349C -_020A3490: - ldr r0, [sp, #0x8] - add r0, r0, r7 - str r0, [sp, #0x8] -_020A349C: - ldr r2, [sp, #0x8] - ldr r1, [sp, #0x4] - mov r0, #0x0 - str r2, [r1, #0x0] - add sp, sp, #0xc - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020A34B8: .word 0x00000494 -_020A34BC: .word 0x00000598 -_020A34C0: .word 0x02106278 - - arm_func_start FUN_020A34C4 -FUN_020A34C4: - stmdb sp!, {r4,lr} - ldrb r12, [r0, #0x1] - ldrb r3, [r0, #0x0] - mov r2, #0xa - cmp r1, #0x17 - mla r1, r3, r2, r12 - sub lr, r1, #0x210 - add r0, r0, #0x2 - bne _020A34FC - cmp lr, #0x32 - ldrhs r1, _020A3550 ; =0x0000076C - addcc r4, lr, #0x7d0 - addcs r4, lr, r1 - b _020A3518 -_020A34FC: - ldrb r12, [r0, #0x1] - ldrb r3, [r0, #0x0] - mov r1, #0x64 - add r0, r0, #0x2 - mla r2, r3, r2, r12 - sub r2, r2, #0x210 - mla r4, lr, r1, r2 -_020A3518: - ldrb r12, [r0, #0x1] - ldrb r3, [r0, #0x0] - mov r1, #0xa - ldrb r2, [r0, #0x3] - ldrb r0, [r0, #0x2] - mla r12, r3, r1, r12 - mla r1, r0, r1, r2 - mov r2, r4, lsl #0x10 - sub r0, r12, #0x210 - add r2, r2, r0, lsl #0x8 - sub r0, r1, #0x210 - add r0, r2, r0 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A3550: .word 0x0000076C - - arm_func_start FUN_020A3554 -FUN_020A3554: - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrsb r3, [r0, #0x0] - mov lr, r0 - cmp r3, #0x0 - beq _020A35AC -_020A356C: - ldrsb r3, [r0, #0x1]! - cmp r3, #0x0 - bne _020A356C - sub r3, r0, lr - cmp r3, #0xff - addge sp, sp, #0x4 - ldmgeia sp!, {lr} - bxge lr - mov r3, #0x2c - strb r3, [r0, #0x0] - mov r3, #0x20 - strb r3, [r0, #0x1] - add r0, r0, #0x2 - b _020A35AC -_020A35A4: - ldrsb r3, [r1], #0x1 - strb r3, [r0], #0x1 -_020A35AC: - cmp r2, #0x0 - sub r2, r2, #0x1 - beq _020A35C4 - sub r3, r0, lr - cmp r3, #0xff - blt _020A35A4 -_020A35C4: - mov r1, #0x0 - strb r1, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_020A35D8 -FUN_020A35D8: ; 0x020A35D8 - ldr r1, [r0, #0x0] - ldrb r3, [r1, #0x0] - add r12, r1, #0x1 - ands r1, r3, #0x80 - beq _020A361C - ands r1, r3, #0x7f - sub r2, r1, #0x1 - mov r3, #0x0 - beq _020A361C -_020A35FC: - ands r1, r3, #0xff000000 - mvnne r0, #0x0 - bxne lr - ldrb r1, [r12], #0x1 - cmp r2, #0x0 - sub r2, r2, #0x1 - add r3, r1, r3, lsl #0x8 - bne _020A35FC -_020A361C: - str r12, [r0, #0x0] - mov r0, r3 - bx lr - - arm_func_start FUN_020A3628 -FUN_020A3628: ; 0x020A3628 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr r4, [r0, #0x818] - mov r7, r1 - cmp r4, #0x0 - mov r6, #0x0 - ble _020A3678 - ldr r5, [r0, #0x814] -_020A3648: - ldr r0, [r5, r6, lsl #0x2] - mov r1, r7 - ldr r0, [r0, #0x0] - bl strcmp -_020A3658: ; 0x020A3658 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldreq r0, [r5, r6, lsl #0x2] - ldmeqia sp!, {r4-r7,lr} - bxeq lr - add r6, r6, #0x1 - cmp r6, r4 - blt _020A3648 -_020A3678: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_020A3688 -FUN_020A3688: ; 0x020A3688 - ldr r2, _020A36B0 ; =0x021D3498 - ldr r2, [r2, #0x4] - ldr r2, [r2, #0xa4] - cmp r2, #0x0 - bxeq lr - ldr r2, [r2, #0xc] - cmp r2, #0x0 - strne r0, [r2, #0x814] - strne r1, [r2, #0x818] - bx lr - .balign 4 -_020A36B0: .word 0x021D3498 - - arm_func_start FUN_020A36B4 -FUN_020A36B4: ; 0x020A36B4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r1, r0 - cmp r1, #0x20 - addcs sp, sp, #0x4 - ldmcsia sp!, {lr} - bxcs lr - ldr r0, _020A36E8 ; =0x021D3498 - ldr r0, [r0, #0x4] - bl OS_SetThreadPriority - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A36E8: .word 0x021D3498 - - arm_func_start FUN_020A36EC -FUN_020A36EC: ; 0x020A36EC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r0, _020A3744 ; =0x02106244 - ldr r0, [r0, #0x0] - cmp r0, #0x20 - addcs sp, sp, #0x4 - mvncs r0, #0x0 - ldmcsia sp!, {r4-r5,lr} - bxcs lr - ldr r0, _020A3748 ; =0x021D3498 - ldr r5, [r0, #0x4] - mov r0, r5 - bl OS_GetThreadPriority - ldr r1, _020A3744 ; =0x02106244 - mov r4, r0 - ldr r1, [r1, #0x0] - mov r0, r5 - bl OS_SetThreadPriority - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020A3744: .word 0x02106244 -_020A3748: .word 0x021D3498 - - arm_func_start FUN_020A374C -FUN_020A374C: ; 0x020A374C - ldr r1, _020A3758 ; =0x02106244 - str r0, [r1, #0x0] - bx lr - .balign 4 -_020A3758: .word 0x02106244 - - arm_func_start FUN_020A375C -FUN_020A375C: ; 0x020A375C - stmdb sp!, {lr} - sub sp, sp, #0x1c - add r0, sp, #0x0 - bl RTC_GetDate - add r0, sp, #0x10 - bl RTC_GetTime -_020A3774: ; 0x020A3774 - add r0, sp, #0x0 - add r1, sp, #0x10 - bl RTC_ConvertDateTimeToSecond - ldr r1, _020A3794 ; =0x386D4380 - add r0, r0, r1 - add sp, sp, #0x1c - ldmia sp!, {lr} - bx lr - .balign 4 -_020A3794: .word 0x386D4380 - - arm_func_start FUN_020A3798 -FUN_020A3798: - stmdb sp!, {r4-r8,lr} - mov r4, r0 - bl OS_DisableInterrupts - ldr r6, _020A3804 ; =0x021CA6FC - mov r7, r0 - mov r8, #0x0 - add r5, r4, #0x74 - mov r4, #0x20 -_020A37B8: - ldrb r0, [r6, #0x5a] - cmp r0, #0x0 - beq _020A37E4 - mov r0, r6 - mov r1, r5 - mov r2, r4 - bl memcmp -_020A37D4: ; 0x020A37D4 - cmp r0, #0x0 - moveq r0, #0x0 - streqb r0, [r6, #0x5a] - beq _020A37F4 -_020A37E4: - add r8, r8, #0x1 - cmp r8, #0x4 - add r6, r6, #0x5c - blt _020A37B8 -_020A37F4: - mov r0, r7 - bl OS_RestoreInterrupts - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_020A3804: .word 0x021CA6FC - - arm_func_start FUN_020A3808 -FUN_020A3808: ; 0x020A3808 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r9, r0 - mov r8, r1 - mov r7, r2 - bl OS_DisableInterrupts - mov r5, r0 - bl OS_GetTick - ldr r6, _020A3904 ; =0x021CA6FC - mov r4, r0, lsr #0x10 - mov r3, #0x0 - mov r12, r3 - mov r2, r6 - orr r4, r4, r1, lsl #0x10 - mvn r0, #0x0 -_020A3844: - ldrb r1, [r2, #0x5a] - cmp r1, #0x0 - beq _020A387C - cmp r8, #0x0 - beq _020A387C - ldr lr, [r2, #0x54] - cmp r8, lr - bne _020A387C - cmp r7, #0x0 - beq _020A387C - ldrh lr, [r2, #0x58] - cmp r7, lr - moveq r6, r2 - beq _020A38BC -_020A387C: - mvn lr, #0x0 - cmp r3, lr - beq _020A38AC - cmp r1, #0x0 - moveq r3, r0 - moveq r6, r2 - beq _020A38AC - ldr r1, [r2, #0x50] - sub r1, r4, r1 - cmp r1, r3 - movhi r3, r1 - movhi r6, r2 -_020A38AC: - add r12, r12, #0x1 - cmp r12, #0x4 - add r2, r2, #0x5c - blt _020A3844 -_020A38BC: - mov r1, r6 - add r0, r9, #0x74 - mov r2, #0x20 - bl MI_CpuCopy8 - mov r0, r9 - add r1, r6, #0x20 - mov r2, #0x30 - bl MI_CpuCopy8 - str r4, [r6, #0x50] - mov r0, #0x1 - strb r0, [r6, #0x5a] - str r8, [r6, #0x54] - mov r0, r5 - strh r7, [r6, #0x58] - bl OS_RestoreInterrupts - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - .balign 4 -_020A3904: .word 0x021CA6FC - - arm_func_start FUN_020A3908 -FUN_020A3908: ; 0x020A3908 - stmdb sp!, {r4-r8,lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - bl OS_DisableInterrupts - mov r1, #0x0 - ldr r4, _020A39AC ; =0x021CA6FC - mov r5, r0 - strb r1, [r8, #0x30] -_020A392C: - ldrb r0, [r4, #0x5a] - cmp r0, #0x0 - beq _020A398C - ldr r0, [r4, #0x54] - cmp r0, r7 - bne _020A398C - ldrh r0, [r4, #0x58] - cmp r0, r6 - bne _020A398C - mov r0, r4 - add r1, r8, #0x74 - mov r2, #0x20 - bl MI_CpuCopy8 - mov r1, r8 - add r0, r4, #0x20 - mov r2, #0x30 - bl MI_CpuCopy8 - bl OS_GetTick - mov r0, r0, lsr #0x10 - orr r0, r0, r1, lsl #0x10 - str r0, [r4, #0x50] - mov r0, #0x1 - strb r0, [r8, #0x30] - b _020A399C -_020A398C: - add r1, r1, #0x1 - cmp r1, #0x4 - add r4, r4, #0x5c - blt _020A392C -_020A399C: - mov r0, r5 - bl OS_RestoreInterrupts - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_020A39AC: .word 0x021CA6FC - - arm_func_start FUN_020A39B0 -FUN_020A39B0: ; 0x020A39B0 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r7, r0 - bl OS_DisableInterrupts - mov r6, #0x0 - ldr r4, _020A3A54 ; =0x021CA6FC - mov r5, r0 - strb r6, [r7, #0x30] - add r9, r7, #0x74 - mov r8, #0x20 -_020A39D8: - ldrb r0, [r4, #0x5a] - cmp r0, #0x0 - beq _020A3A30 - ldr r0, [r4, #0x54] - cmp r0, #0x0 - bne _020A3A30 - ldrh r0, [r4, #0x58] - cmp r0, #0x0 - bne _020A3A30 - mov r0, r4 - mov r1, r9 - mov r2, r8 - bl memcmp -_020A3A0C: ; 0x020A3A0C - cmp r0, #0x0 - bne _020A3A30 - mov r1, r7 - add r0, r4, #0x20 - mov r2, #0x30 - bl MI_CpuCopy8 - mov r0, #0x1 - strb r0, [r7, #0x30] - b _020A3A40 -_020A3A30: - add r6, r6, #0x1 - cmp r6, #0x4 - add r4, r4, #0x5c - blt _020A39D8 -_020A3A40: - mov r0, r5 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - .balign 4 -_020A3A54: .word 0x021CA6FC - - arm_func_start FUN_020A3A58 -FUN_020A3A58: ; 0x020A3A58 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - mov r0, r4 - add r1, r5, #0x10 - mov r2, #0x8 - bl FUN_020A4044 - ldr r0, [r5, #0x10] - ldr r1, _020A3AC8 ; =0x021062EC - mov r0, r0, lsr #0x3 - and r0, r0, #0x3f - cmp r0, #0x38 - rsblt r2, r0, #0x38 - rsbge r2, r0, #0x78 - mov r0, r5 - bl FUN_020A3ACC - mov r0, r5 - mov r1, r4 - mov r2, #0x8 - bl FUN_020A3ACC - mov r0, r4 - mov r1, r5 - mov r2, #0x10 - bl FUN_020A4044 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020A3AC8: .word 0x021062EC - - arm_func_start FUN_020A3ACC -FUN_020A3ACC: - stmdb sp!, {r4-r8,lr} - mov r8, r0 - ldr r3, [r8, #0x10] - mov r6, r2 - add r0, r3, r6, lsl #0x3 - str r0, [r8, #0x10] - ldr r0, [r8, #0x10] - mov r2, r3, lsr #0x3 - cmp r0, r6, lsl #0x3 - ldrcc r0, [r8, #0x14] - and r4, r2, #0x3f - addcc r0, r0, #0x1 - strcc r0, [r8, #0x14] - ldr r0, [r8, #0x14] - rsb r5, r4, #0x40 - add r0, r0, r6, lsr #0x1d - mov r7, r1 - str r0, [r8, #0x14] - cmp r6, r5 - blo _020A3B6C - add r1, r8, #0x18 - mov r0, r7 - mov r2, r5 - add r1, r1, r4 - bl MI_CpuCopy8 - mov r0, r8 - add r1, r8, #0x18 - mov r4, #0x0 - bl FUN_020A3BD8 - add r0, r5, #0x3f - cmp r0, r6 - bhs _020A3B70 -_020A3B4C: - mov r0, r8 - add r1, r7, r5 - bl FUN_020A3BD8 - add r5, r5, #0x40 - add r0, r5, #0x3f - cmp r0, r6 - blo _020A3B4C - b _020A3B70 -_020A3B6C: - mov r5, #0x0 -_020A3B70: - add r1, r8, #0x18 - add r0, r7, r5 - add r1, r1, r4 - sub r2, r6, r5 - bl MI_CpuCopy8 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_020A3B8C -FUN_020A3B8C: ; 0x020A3B8C - stmdb sp!, {r4,lr} - mov r1, #0x0 - mov r2, #0x58 - mov r4, r0 - bl MI_CpuFill8 - ldr r1, _020A3BC8 ; =0x67452301 - ldr r0, _020A3BCC ; =0xEFCDAB89 - str r1, [r4, #0x0] - ldr r1, _020A3BD0 ; =0x98BADCFE - str r0, [r4, #0x4] - ldr r0, _020A3BD4 ; =0x10325476 - str r1, [r4, #0x8] - str r0, [r4, #0xc] - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A3BC8: .word 0x67452301 -_020A3BCC: .word 0xEFCDAB89 -_020A3BD0: .word 0x98BADCFE -_020A3BD4: .word 0x10325476 - - arm_func_start FUN_020A3BD8 -FUN_020A3BD8: ; 0x020A3BD8 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x44 - str r0, [sp, #0x0] - ldr r3, [sp, #0x0] - add r0, sp, #0x4 - mov r2, #0x40 - ldr r7, [r3, #0x0] - ldr r6, [r3, #0x4] - ldr r5, [r3, #0x8] - ldr r4, [r3, #0xc] - bl FUN_020A402C - ldr r2, _020A4024 ; =0x021062AC - mov r3, #0x0 - ldr r1, _020A4028 ; =0x0210632C - mov r11, r3 - add r0, sp, #0x4 - mov r10, r2 -_020A3C1C: - ldrb r9, [r2, #0x0] - add r8, r3, #0x1 - eor r12, r5, r4 - and r12, r6, r12 - eor r12, r4, r12 - ldr r9, [r0, r9, lsl #0x2] - ldr lr, [r1, r3, lsl #0x2] - add r9, r12, r9 - add r9, lr, r9 - add r9, r7, r9 - mov r7, r9, lsl #0x7 - orr r7, r7, r9, lsr #0x19 - ldrb r9, [r10, r8] - add r7, r6, r7 - ldr r8, [r1, r8, lsl #0x2] - ldr r9, [r0, r9, lsl #0x2] - eor r12, r6, r5 - and r12, r7, r12 - eor r12, r5, r12 - add r9, r12, r9 - add r9, r8, r9 - add r8, r3, #0x2 - add r9, r4, r9 - mov r4, r9, lsl #0xc - orr r4, r4, r9, lsr #0x14 - add r4, r7, r4 - ldr r9, [r1, r8, lsl #0x2] - ldrb r12, [r10, r8] - eor r8, r7, r6 - and r8, r4, r8 - eor r8, r6, r8 - ldr lr, [r0, r12, lsl #0x2] - add r12, r3, #0x3 - add r8, r8, lr - add r8, r9, r8 - add r8, r5, r8 - mov r5, r8, lsl #0x11 - orr r5, r5, r8, lsr #0xf - add r5, r4, r5 - ldr r9, [r1, r12, lsl #0x2] - ldrb r12, [r10, r12] - eor r8, r4, r7 - and r8, r5, r8 - eor r8, r7, r8 - ldr r12, [r0, r12, lsl #0x2] - add r2, r2, #0x4 - add r8, r8, r12 - add r8, r9, r8 - add r8, r6, r8 - mov r6, r8, lsl #0x16 - orr r6, r6, r8, lsr #0xa - add r6, r5, r6 - add r3, r3, #0x4 - add r11, r11, #0x1 - cmp r11, #0x4 - blt _020A3C1C - add r8, r10, r3 - mov r2, #0x0 - ldr r1, _020A4028 ; =0x0210632C - add r0, sp, #0x4 - ldr lr, _020A4024 ; =0x021062AC -_020A3D10: - ldrb r10, [r8, #0x0] - add r9, r3, #0x1 - eor r11, r6, r5 - and r11, r4, r11 - eor r11, r5, r11 - ldr r10, [r0, r10, lsl #0x2] - ldr r12, [r1, r3, lsl #0x2] - add r10, r11, r10 - add r10, r12, r10 - add r10, r7, r10 - mov r7, r10, lsl #0x5 - orr r7, r7, r10, lsr #0x1b - ldrb r10, [lr, r9] - add r7, r6, r7 - ldr r9, [r1, r9, lsl #0x2] - ldr r10, [r0, r10, lsl #0x2] - eor r11, r7, r6 - and r11, r5, r11 - eor r11, r6, r11 - add r10, r11, r10 - add r10, r9, r10 - add r9, r3, #0x2 - add r10, r4, r10 - mov r4, r10, lsl #0x9 - orr r4, r4, r10, lsr #0x17 - add r4, r7, r4 - ldr r12, [r1, r9, lsl #0x2] - ldrb r9, [lr, r9] - eor r10, r4, r7 - and r10, r6, r10 - eor r11, r7, r10 - ldr r10, [r0, r9, lsl #0x2] - add r9, r3, #0x3 - add r10, r11, r10 - add r10, r12, r10 - add r10, r5, r10 - mov r5, r10, lsl #0xe - orr r5, r5, r10, lsr #0x12 - add r5, r4, r5 - ldr r10, [r1, r9, lsl #0x2] - ldrb r11, [lr, r9] - eor r9, r5, r4 - and r9, r7, r9 - eor r9, r4, r9 - ldr r11, [r0, r11, lsl #0x2] - add r8, r8, #0x4 - add r9, r9, r11 - add r9, r10, r9 - add r9, r6, r9 - mov r6, r9, lsl #0x14 - orr r6, r6, r9, lsr #0xc - add r6, r5, r6 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r2, #0x4 - blt _020A3D10 - add r8, lr, r3 - mov lr, #0x0 - ldr r2, _020A4028 ; =0x0210632C - add r0, sp, #0x4 -_020A3E00: - ldrb r1, [r8, #0x0] - eor r12, r6, r5 - add lr, lr, #0x1 - ldr r11, [r0, r1, lsl #0x2] - eor r12, r4, r12 - ldr r1, [r2, r3, lsl #0x2] - add r11, r12, r11 - add r1, r1, r11 - add r7, r7, r1 - mov r1, r7, lsl #0x4 - orr r1, r1, r7, lsr #0x1c - add r7, r6, r1 - add r10, r3, #0x1 - ldr r1, _020A4024 ; =0x021062AC - ldr r12, [r2, r10, lsl #0x2] - ldrb r1, [r1, r10] - eor r10, r7, r6 - eor r11, r5, r10 - ldr r10, [r0, r1, lsl #0x2] - add r9, r3, #0x2 - add r10, r11, r10 - add r10, r12, r10 - add r4, r4, r10 - ldr sl, _020A4024 ; =0x021062AC - ldr r1, [r2, r9, lsl #0x2] - ldrb r9, [r10, r9] - mov r10, r4, lsl #0xb - orr r4, r10, r4, lsr #0x15 - add r4, r7, r4 - eor r10, r4, r7 - ldr r9, [r0, r9, lsl #0x2] - eor r10, r6, r10 - add r9, r10, r9 - add r1, r1, r9 - add r5, r5, r1 - add r10, r3, #0x3 - ldr sb, _020A4024 ; =0x021062AC - mov r1, r5, lsl #0x10 - ldrb r9, [r9, r10] - orr r1, r1, r5, lsr #0x10 - add r5, r4, r1 - ldr r1, [r2, r10, lsl #0x2] - eor r10, r5, r4 - ldr r9, [r0, r9, lsl #0x2] - eor r10, r7, r10 - add r9, r10, r9 - add r1, r1, r9 - add r6, r6, r1 - mov r1, r6, lsl #0x17 - orr r1, r1, r6, lsr #0x9 - add r8, r8, #0x4 - add r6, r5, r1 - add r3, r3, #0x4 - cmp lr, #0x4 - blt _020A3E00 - ldr r0, _020A4024 ; =0x021062AC - ldr r1, _020A4028 ; =0x0210632C - add r8, r0, r3 - ldr lr, _020A4024 ; =0x021062AC - mov r2, #0x0 - add r0, sp, #0x4 -_020A3EF4: - ldrb r10, [r8, #0x0] - add r9, r3, #0x1 - mvn r11, r4 - orr r11, r6, r11 - eor r11, r5, r11 - ldr r10, [r0, r10, lsl #0x2] - ldr r12, [r1, r3, lsl #0x2] - add r10, r11, r10 - add r10, r12, r10 - add r10, r7, r10 - mov r7, r10, lsl #0x6 - orr r7, r7, r10, lsr #0x1a - ldrb r10, [lr, r9] - add r7, r6, r7 - ldr r9, [r1, r9, lsl #0x2] - ldr r10, [r0, r10, lsl #0x2] - mvn r11, r5 - orr r11, r7, r11 - eor r11, r6, r11 - add r10, r11, r10 - add r10, r9, r10 - add r9, r3, #0x2 - add r10, r4, r10 - mov r4, r10, lsl #0xa - orr r4, r4, r10, lsr #0x16 - add r4, r7, r4 - ldr r12, [r1, r9, lsl #0x2] - ldrb r9, [lr, r9] - mvn r10, r6 - orr r10, r4, r10 - eor r11, r7, r10 - ldr r10, [r0, r9, lsl #0x2] - add r9, r3, #0x3 - add r10, r11, r10 - add r10, r12, r10 - add r10, r5, r10 - mov r5, r10, lsl #0xf - orr r5, r5, r10, lsr #0x11 - add r5, r4, r5 - ldr r10, [r1, r9, lsl #0x2] - ldrb r11, [lr, r9] - mvn r9, r7 - orr r9, r5, r9 - eor r9, r4, r9 - ldr r11, [r0, r11, lsl #0x2] - add r8, r8, #0x4 - add r9, r9, r11 - add r9, r10, r9 - add r9, r6, r9 - mov r6, r9, lsl #0x15 - orr r6, r6, r9, lsr #0xb - add r6, r5, r6 - add r3, r3, #0x4 - add r2, r2, #0x1 - cmp r2, #0x4 - blt _020A3EF4 - ldr r0, [sp, #0x0] - ldr r0, [r0, #0x0] - add r1, r0, r7 - ldr r0, [sp, #0x0] - str r1, [r0, #0x0] - ldr r0, [r0, #0x4] - add r1, r0, r6 - ldr r0, [sp, #0x0] - str r1, [r0, #0x4] - ldr r0, [r0, #0x8] - add r1, r0, r5 - ldr r0, [sp, #0x0] - str r1, [r0, #0x8] - ldr r0, [r0, #0xc] - add r1, r0, r4 - ldr r0, [sp, #0x0] - str r1, [r0, #0xc] - add sp, sp, #0x44 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020A4024: .word 0x021062AC -_020A4028: .word 0x0210632C - - arm_func_start FUN_020A402C -FUN_020A402C: ; 0x020A402C - ldr ip, _020A4040 ; =MI_CpuCopy8 - mov r3, r0 - mov r0, r1 - mov r1, r3 - bx r12 - .balign 4 -_020A4040: .word MI_CpuCopy8 - - arm_func_start FUN_020A4044 -FUN_020A4044: ; 0x020A4044 - ldr ip, _020A4058 ; =MI_CpuCopy8 - mov r3, r0 - mov r0, r1 - mov r1, r3 - bx r12 - .balign 4 -_020A4058: .word MI_CpuCopy8 - - arm_func_start FUN_020A405C -FUN_020A405C: ; 0x020A405C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r1 - ldr r1, _020A4094 ; =0x0210642D - mov r5, r0 - mov r2, #0x2c - bl FUN_020A410C - mov r0, r4 - mov r1, r5 - mov r2, #0x14 - bl FUN_020A4930 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020A4094: .word 0x0210642D - - arm_func_start FUN_020A4098 -FUN_020A4098: ; 0x020A4098 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - mov r0, r4 - add r1, r5, #0x14 - mov r2, #0x8 - bl FUN_020A4930 - ldr r0, [r5, #0x18] - ldr r1, _020A4108 ; =0x0210642C - mov r0, r0, lsr #0x3 - and r0, r0, #0x3f - cmp r0, #0x38 - rsblt r2, r0, #0x38 - rsbge r2, r0, #0x78 - mov r0, r5 - bl FUN_020A410C - mov r0, r5 - mov r1, r4 - mov r2, #0x8 - bl FUN_020A410C - mov r0, r4 - mov r1, r5 - mov r2, #0x14 - bl FUN_020A4930 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020A4108: .word 0x0210642C - - arm_func_start FUN_020A410C -FUN_020A410C: - stmdb sp!, {r4-r8,lr} - mov r8, r0 - ldr r3, [r8, #0x18] - mov r6, r2 - add r0, r3, r6, lsl #0x3 - str r0, [r8, #0x18] - ldr r0, [r8, #0x18] - mov r2, r3, lsr #0x3 - cmp r0, r6, lsl #0x3 - ldrcc r0, [r8, #0x14] - and r4, r2, #0x3f - addcc r0, r0, #0x1 - strcc r0, [r8, #0x14] - ldr r0, [r8, #0x14] - rsb r5, r4, #0x40 - add r0, r0, r6, lsr #0x1d - mov r7, r1 - str r0, [r8, #0x14] - cmp r6, r5 - blo _020A41AC - add r1, r8, #0x1c - mov r0, r7 - mov r2, r5 - add r1, r1, r4 - bl MI_CpuCopy8 - mov r0, r8 - add r1, r8, #0x1c - mov r4, #0x0 - bl FUN_020A4224 - add r0, r5, #0x3f - cmp r0, r6 - bhs _020A41B0 -_020A418C: - mov r0, r8 - add r1, r7, r5 - bl FUN_020A4224 - add r5, r5, #0x40 - add r0, r5, #0x3f - cmp r0, r6 - blo _020A418C - b _020A41B0 -_020A41AC: - mov r5, #0x0 -_020A41B0: - add r1, r8, #0x1c - add r0, r7, r5 - add r1, r1, r4 - sub r2, r6, r5 - bl MI_CpuCopy8 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_020A41CC -FUN_020A41CC: ; 0x020A41CC - stmdb sp!, {r4,lr} - mov r1, #0x0 - mov r2, #0x5c - mov r4, r0 - bl MI_CpuFill8 - ldr r0, _020A4210 ; =0x67452301 - ldr r1, _020A4214 ; =0xEFCDAB89 - str r0, [r4, #0x0] - ldr r0, _020A4218 ; =0x98BADCFE - str r1, [r4, #0x4] - ldr r1, _020A421C ; =0x10325476 - str r0, [r4, #0x8] - ldr r0, _020A4220 ; =0xC3D2E1F0 - str r1, [r4, #0xc] - str r0, [r4, #0x10] - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A4210: .word 0x67452301 -_020A4214: .word 0xEFCDAB89 -_020A4218: .word 0x98BADCFE -_020A421C: .word 0x10325476 -_020A4220: .word 0xC3D2E1F0 - - arm_func_start FUN_020A4224 -FUN_020A4224: ; 0x020A4224 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x54 - str r0, [sp, #0x0] - ldr r3, [sp, #0x0] - add r0, sp, #0x10 - mov r2, #0x40 - ldr r6, [r3, #0x0] - ldr r7, [r3, #0x4] - ldr r8, [r3, #0x8] - ldr r5, [r3, #0xc] - ldr r4, [r3, #0x10] - bl FUN_020A48CC - mov r2, #0x0 - ldr r3, _020A48BC ; =0x5A827999 - mov r0, r2 - add r1, sp, #0x10 -_020A4264: - eor r9, r8, r5 - mov r10, r6, lsl #0x5 - and r9, r7, r9 - orr r10, r10, r6, lsr #0x1b - eor r9, r5, r9 - mov r11, r7, lsl #0x1e - orr r7, r11, r7, lsr #0x2 - eor r11, r7, r8 - add r9, r10, r9 - ldr r12, [r1, r2, lsl #0x2] - and r10, r6, r11 - add r9, r12, r9 - add r9, r9, r3 - add r4, r4, r9 - add r9, r2, #0x1 - ldr r9, [r1, r9, lsl #0x2] - eor r10, r8, r10 - mov r11, r4, lsl #0x5 - orr r11, r11, r4, lsr #0x1b - add r10, r11, r10 - add r10, r9, r10 - mov r9, r6, lsl #0x1e - add r10, r10, r3 - add r5, r5, r10 - orr r6, r9, r6, lsr #0x2 - add r9, r2, #0x2 - ldr r10, [r1, r9, lsl #0x2] - mov r9, r5, lsl #0x5 - orr r9, r9, r5, lsr #0x1b - eor r11, r6, r7 - and r11, r4, r11 - eor r11, r7, r11 - add r9, r9, r11 - add r9, r10, r9 - add r9, r9, r3 - add r8, r8, r9 - mov r9, r4, lsl #0x1e - orr r4, r9, r4, lsr #0x2 - add r9, r2, #0x3 - ldr r10, [r1, r9, lsl #0x2] - mov r9, r8, lsl #0x5 - orr r9, r9, r8, lsr #0x1b - eor r11, r4, r6 - and r11, r5, r11 - eor r11, r6, r11 - add r9, r9, r11 - add r9, r10, r9 - add r9, r9, r3 - add r7, r7, r9 - mov r9, r5, lsl #0x1e - orr r5, r9, r5, lsr #0x2 - add r9, r2, #0x4 - ldr r10, [r1, r9, lsl #0x2] - mov r9, r7, lsl #0x5 - orr r9, r9, r7, lsr #0x1b - eor r11, r5, r4 - and r11, r8, r11 - eor r11, r4, r11 - add r9, r9, r11 - add r9, r10, r9 - add r9, r9, r3 - add r6, r6, r9 - mov r9, r8, lsl #0x1e - orr r8, r9, r8, lsr #0x2 - add r2, r2, #0x5 - add r0, r0, #0x1 - cmp r0, #0x3 - blt _020A4264 - eor r0, r8, r5 - mov r2, r6, lsl #0x5 - and r0, r7, r0 - orr r3, r2, r6, lsr #0x1b - eor r0, r5, r0 - add r3, r3, r0 - ldr r9, [sp, #0x4c] - ldr r0, _020A48BC ; =0x5A827999 - add r3, r9, r3 - add r3, r3, r0 - mov r2, r7, lsl #0x1e - orr r9, r2, r7, lsr #0x2 - mov r0, #0x0 - add r4, r4, r3 - bl FUN_020A4988 - eor r1, r9, r8 - mov r3, r4, lsl #0x5 - and r1, r6, r1 - mov r2, r6, lsl #0x1e - orr r3, r3, r4, lsr #0x1b - eor r1, r8, r1 - add r1, r3, r1 - add r3, r1, r0 - ldr r0, _020A48BC ; =0x5A827999 - add r1, sp, #0x10 - add r3, r3, r0 - orr r10, r2, r6, lsr #0x2 - mov r0, #0x1 - add r5, r5, r3 - bl FUN_020A4988 - eor r1, r10, r9 - mov r2, r5, lsl #0x5 - and r1, r4, r1 - orr r2, r2, r5, lsr #0x1b - eor r1, r9, r1 - add r1, r2, r1 - add r2, r1, r0 - ldr r0, _020A48BC ; =0x5A827999 - mov r1, r4, lsl #0x1e - add r0, r2, r0 - orr r6, r1, r4, lsr #0x2 - add r8, r8, r0 - add r1, sp, #0x10 - mov r0, #0x2 - bl FUN_020A4988 - mov r1, r8, lsl #0x5 - orr r2, r1, r8, lsr #0x1b - eor r1, r6, r10 - and r1, r5, r1 - eor r1, r10, r1 - add r1, r2, r1 - add r2, r1, r0 - ldr r0, _020A48BC ; =0x5A827999 - mov r1, r5, lsl #0x1e - add r0, r2, r0 - orr r7, r1, r5, lsr #0x2 - add r9, r9, r0 - mov r0, #0x3 - add r1, sp, #0x10 - bl FUN_020A4988 - mov r1, r9, lsl #0x5 - orr r2, r1, r9, lsr #0x1b - eor r1, r7, r6 - and r1, r8, r1 - eor r1, r6, r1 - add r1, r2, r1 - add r2, r1, r0 - ldr r0, _020A48BC ; =0x5A827999 - mov r1, r8, lsl #0x1e - add r0, r2, r0 - add r10, r10, r0 - mov r0, #0x0 - ldr r4, _020A48C0 ; =0x6ED9EBA1 - orr r8, r1, r8, lsr #0x2 - mov r5, #0x4 - str r0, [sp, #0xc] - add r11, sp, #0x10 -_020A44A8: - mov r0, r5 - mov r1, r11 - bl FUN_020A4988 - mov r2, r10, lsl #0x5 - eor r1, r9, r8 - orr r2, r2, r10, lsr #0x1b - eor r1, r7, r1 - add r1, r2, r1 - add r0, r1, r0 - add r1, r0, r4 - mov r0, r9, lsl #0x1e - add r6, r6, r1 - orr r9, r0, r9, lsr #0x2 - add r0, r5, #0x1 - mov r1, r11 - bl FUN_020A4988 - mov r1, r6, lsl #0x5 - orr r2, r1, r6, lsr #0x1b - eor r1, r10, r9 - eor r1, r8, r1 - add r1, r2, r1 - add r0, r1, r0 - add r0, r0, r4 - add r7, r7, r0 - mov r0, r10, lsl #0x1e - orr r10, r0, r10, lsr #0x2 - add r0, r5, #0x2 - and r5, r0, #0xf - mov r0, r5 - mov r1, r11 - bl FUN_020A4988 - mov r1, r7, lsl #0x5 - orr r2, r1, r7, lsr #0x1b - eor r1, r6, r10 - eor r1, r9, r1 - add r1, r2, r1 - add r0, r1, r0 - add r0, r0, r4 - add r8, r8, r0 - mov r0, r6, lsl #0x1e - orr r6, r0, r6, lsr #0x2 - add r0, r5, #0x1 - mov r1, r11 - bl FUN_020A4988 - mov r1, r8, lsl #0x5 - orr r2, r1, r8, lsr #0x1b - eor r1, r7, r6 - eor r1, r10, r1 - add r1, r2, r1 - add r0, r1, r0 - add r0, r0, r4 - add r9, r9, r0 - mov r0, r7, lsl #0x1e - orr r7, r0, r7, lsr #0x2 - add r0, r5, #0x2 - mov r1, r11 - bl FUN_020A4988 - mov r1, r9, lsl #0x5 - orr r2, r1, r9, lsr #0x1b - eor r1, r8, r7 - eor r1, r6, r1 - add r1, r2, r1 - add r0, r1, r0 - add r0, r0, r4 - add r10, r10, r0 - mov r0, r8, lsl #0x1e - orr r8, r0, r8, lsr #0x2 - ldr r0, [sp, #0xc] - add r5, r5, #0x3 - add r0, r0, #0x1 - str r0, [sp, #0xc] - cmp r0, #0x4 - blt _020A44A8 - mov r0, #0x0 - ldr r4, _020A48C4 ; =0x8F1BBCDC - str r0, [sp, #0x8] - add r11, sp, #0x10 -_020A45DC: - mov r0, r5 - mov r1, r11 - bl FUN_020A4988 - orr r2, r8, r7 - mov r1, r10, lsl #0x5 - and r3, r9, r2 - and r2, r8, r7 - orr r1, r1, r10, lsr #0x1b - orr r2, r3, r2 - add r1, r1, r2 - add r1, r1, r0 - mov r0, r9, lsl #0x1e - add r1, r1, r4 - add r6, r6, r1 - orr r9, r0, r9, lsr #0x2 - add r0, r5, #0x1 - mov r1, r11 - bl FUN_020A4988 - orr r2, r9, r8 - mov r1, r6, lsl #0x5 - and r3, r10, r2 - and r2, r9, r8 - orr r1, r1, r6, lsr #0x1b - orr r2, r3, r2 - add r1, r1, r2 - add r0, r1, r0 - add r0, r0, r4 - add r7, r7, r0 - mov r0, r10, lsl #0x1e - orr r10, r0, r10, lsr #0x2 - add r0, r5, #0x2 - mov r1, r11 - bl FUN_020A4988 - orr r2, r10, r9 - mov r1, r7, lsl #0x5 - and r3, r6, r2 - and r2, r10, r9 - orr r1, r1, r7, lsr #0x1b - orr r2, r3, r2 - add r1, r1, r2 - add r0, r1, r0 - add r0, r0, r4 - add r8, r8, r0 - mov r0, r6, lsl #0x1e - orr r6, r0, r6, lsr #0x2 - add r0, r5, #0x3 - and r5, r0, #0xf - mov r0, r5 - mov r1, r11 - bl FUN_020A4988 - orr r2, r6, r10 - mov r1, r8, lsl #0x5 - and r3, r7, r2 - and r2, r6, r10 - orr r1, r1, r8, lsr #0x1b - orr r2, r3, r2 - add r1, r1, r2 - add r0, r1, r0 - add r0, r0, r4 - add r9, r9, r0 - mov r0, r7, lsl #0x1e - orr r7, r0, r7, lsr #0x2 - add r0, r5, #0x1 - mov r1, r11 - bl FUN_020A4988 - orr r2, r7, r6 - mov r1, r9, lsl #0x5 - and r3, r8, r2 - and r2, r7, r6 - orr r1, r1, r9, lsr #0x1b - orr r2, r3, r2 - add r1, r1, r2 - add r0, r1, r0 - add r0, r0, r4 - add r10, r10, r0 - mov r0, r8, lsl #0x1e - orr r8, r0, r8, lsr #0x2 - ldr r0, [sp, #0x8] - add r5, r5, #0x2 - add r0, r0, #0x1 - str r0, [sp, #0x8] - cmp r0, #0x4 - blt _020A45DC - mov r0, #0x0 - ldr r4, _020A48C8 ; =0xCA62C1D6 - str r0, [sp, #0x4] - add r11, sp, #0x10 -_020A4738: - mov r0, r5 - mov r1, r11 - bl FUN_020A4988 - mov r2, r10, lsl #0x5 - eor r1, r9, r8 - orr r2, r2, r10, lsr #0x1b - eor r1, r7, r1 - add r1, r2, r1 - add r0, r1, r0 - add r1, r0, r4 - mov r0, r9, lsl #0x1e - add r6, r6, r1 - orr r9, r0, r9, lsr #0x2 - add r0, r5, #0x1 - mov r1, r11 - bl FUN_020A4988 - mov r1, r6, lsl #0x5 - orr r2, r1, r6, lsr #0x1b - eor r1, r10, r9 - eor r1, r8, r1 - add r1, r2, r1 - add r0, r1, r0 - add r0, r0, r4 - add r7, r7, r0 - mov r0, r10, lsl #0x1e - orr r10, r0, r10, lsr #0x2 - add r0, r5, #0x2 - mov r1, r11 - bl FUN_020A4988 - mov r1, r7, lsl #0x5 - orr r2, r1, r7, lsr #0x1b - eor r1, r6, r10 - eor r1, r9, r1 - add r1, r2, r1 - add r0, r1, r0 - add r0, r0, r4 - add r8, r8, r0 - mov r0, r6, lsl #0x1e - orr r6, r0, r6, lsr #0x2 - add r0, r5, #0x3 - mov r1, r11 - bl FUN_020A4988 - mov r1, r8, lsl #0x5 - orr r2, r1, r8, lsr #0x1b - eor r1, r7, r6 - eor r1, r10, r1 - add r1, r2, r1 - add r0, r1, r0 - add r0, r0, r4 - add r9, r9, r0 - mov r0, r7, lsl #0x1e - orr r7, r0, r7, lsr #0x2 - add r0, r5, #0x4 - and r5, r0, #0xf - mov r0, r5 - mov r1, r11 - bl FUN_020A4988 - mov r1, r9, lsl #0x5 - orr r2, r1, r9, lsr #0x1b - eor r1, r8, r7 - eor r1, r6, r1 - add r1, r2, r1 - add r0, r1, r0 - add r0, r0, r4 - add r10, r10, r0 - mov r0, r8, lsl #0x1e - orr r8, r0, r8, lsr #0x2 - ldr r0, [sp, #0x4] - add r5, r5, #0x1 - add r0, r0, #0x1 - str r0, [sp, #0x4] - cmp r0, #0x4 - blt _020A4738 - ldr r0, [sp, #0x0] - ldr r0, [r0, #0x0] - add r1, r0, r10 - ldr r0, [sp, #0x0] - str r1, [r0, #0x0] - ldr r0, [r0, #0x4] - add r1, r0, r9 - ldr r0, [sp, #0x0] - str r1, [r0, #0x4] - ldr r0, [r0, #0x8] - add r1, r0, r8 - ldr r0, [sp, #0x0] - str r1, [r0, #0x8] - ldr r0, [r0, #0xc] - add r1, r0, r7 - ldr r0, [sp, #0x0] - str r1, [r0, #0xc] - ldr r0, [r0, #0x10] - add r1, r0, r6 - ldr r0, [sp, #0x0] - str r1, [r0, #0x10] - add sp, sp, #0x54 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020A48BC: .word 0x5A827999 -_020A48C0: .word 0x6ED9EBA1 -_020A48C4: .word 0x8F1BBCDC -_020A48C8: .word 0xCA62C1D6 - - arm_func_start FUN_020A48CC -FUN_020A48CC: ; 0x020A48CC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - cmp r2, #0x0 - addls sp, sp, #0x4 - mov r3, #0x0 - ldmlsia sp!, {r4-r5,lr} - bxls lr -_020A48E8: - add r12, r3, #0x1 - ldrb lr, [r1, r3] - add r4, r3, #0x2 - add r5, r3, #0x3 - ldrb r12, [r1, r12] - mov lr, lr, lsl #0x18 - add r3, r3, #0x4 - ldrb r4, [r1, r4] - orr r12, lr, r12, lsl #0x10 - ldrb lr, [r1, r5] - orr r4, r12, r4, lsl #0x8 - cmp r3, r2 - orr r4, lr, r4 - str r4, [r0], #0x4 - blo _020A48E8 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_020A4930 -FUN_020A4930: ; 0x020A4930 - stmdb sp!, {lr} - sub sp, sp, #0x4 - movs r12, r2, lsr #0x2 - mov lr, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {lr} - bxeq lr -_020A494C: - ldr r3, [r1], #0x4 - add lr, lr, #0x1 - mov r2, r3, lsr #0x18 - strb r2, [r0, #0x0] - mov r2, r3, lsr #0x10 - strb r2, [r0, #0x1] - mov r2, r3, lsr #0x8 - strb r2, [r0, #0x2] - strb r3, [r0, #0x3] - cmp lr, r12 - add r0, r0, #0x4 - blo _020A494C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_020A4988 -FUN_020A4988: ; 0x020A4988 - add r2, r0, #0xd - add r12, r0, #0x2 - and r3, r2, #0xf - eor r2, r0, #0x8 - and r12, r12, #0xf - ldr r3, [r1, r3, lsl #0x2] - ldr r2, [r1, r2, lsl #0x2] - ldr r12, [r1, r12, lsl #0x2] - eor r2, r3, r2 - ldr r3, [r1, r0, lsl #0x2] - eor r2, r12, r2 - eor r3, r3, r2 - mov r2, r3, lsl #0x1 - orr r2, r2, r3, lsr #0x1f - str r2, [r1, r0, lsl #0x2] - ldr r0, [r1, r0, lsl #0x2] - bx lr - - arm_func_start FUN_020A49CC -FUN_020A49CC: ; 0x020A49CC - stmdb sp!, {r4-r6,lr} - cmp r2, #0x0 - add r3, r0, #0x2 - ldrb lr, [r0, #0x0] - ldrb r12, [r0, #0x1] - mov r4, #0x0 - ble _020A4A2C -_020A49E8: - add r5, lr, #0x1 - and lr, r5, #0xff - ldrb r6, [r3, lr] - add r5, r12, r6 - and r12, r5, #0xff - ldrb r5, [r3, r12] - strb r5, [r3, lr] - add r5, r6, r5 - strb r6, [r3, r12] - and r5, r5, #0xff - ldrb r6, [r1, r4] - ldrb r5, [r3, r5] - eor r5, r6, r5 - strb r5, [r1, r4] - add r4, r4, #0x1 - cmp r4, r2 - blt _020A49E8 -_020A4A2C: - strb lr, [r0, #0x0] - strb r12, [r0, #0x1] - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_020A4A3C -FUN_020A4A3C: ; 0x020A4A3C - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r3, #0x0 - strb r3, [r0, #0x0] - strb r3, [r0, #0x1] - add r7, r0, #0x2 -_020A4A54: - strb r3, [r7, r3] - add r3, r3, #0x1 - cmp r3, #0x100 - blt _020A4A54 - mov r5, #0x0 - mov r6, r5 - mov r4, r5 - mov r0, r5 -_020A4A74: - ldrb lr, [r7, r4] - ldrb r12, [r1, r5] - add r3, r5, #0x1 - and r5, r3, #0xff - add r3, lr, r12 - add r3, r6, r3 - and r6, r3, #0xff - ldrb r3, [r7, r6] - cmp r5, r2 - movge r5, r0 - strb r3, [r7, r4] - add r4, r4, #0x1 - strb lr, [r7, r6] - cmp r4, #0x100 - blt _020A4A74 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_020A4ABC -FUN_020A4ABC: ; 0x020A4ABC - ldrh r1, [r0, #0x0] - mov r0, #0x0 - bx lr - - arm_func_start FUN_020A4AC8 -FUN_020A4AC8: ; 0x020A4AC8 - ldrh r1, [r0, #0x0] - ldrh r0, [r0, #-0x2] - mov r0, r0, lsl #0x10 - bx lr - - arm_func_start FUN_020A4AD8 -FUN_020A4AD8: ; 0x020A4AD8 - ldrh r1, [r0, #0x0] - ldrh r2, [r0, #-0x2] - ldrh r3, [r0, #-0x4] - orr r0, r3, r2, lsl #0x10 - bx lr - - arm_func_start FUN_020A4AEC -FUN_020A4AEC: ; 0x020A4AEC - ldrh r2, [r0, #0x0] - ldrh r3, [r0, #-0x2] - orr r1, r3, r2, lsl #0x10 - ldrh r2, [r0, #-0x4] - ldrh r3, [r0, #-0x6] - orr r0, r3, r2, lsl #0x10 - bx lr - - arm_func_start FUN_020A4B08 -FUN_020A4B08: ; 0x020A4B08 - sub r3, r2, #0x1 - cmp r2, #0x1 - add r0, r0, r3 - ble _020A4B40 -_020A4B18: - ldrh r3, [r1, #0x0] - sub r2, r2, #0x2 - sub r12, r0, #0x1 - strb r3, [r0, #0x0] - ldrh r3, [r1], #0x2 - cmp r2, #0x1 - sub r0, r0, #0x2 - mov r3, r3, asr #0x8 - strb r3, [r12, #0x0] - bgt _020A4B18 -_020A4B40: - cmp r2, #0x0 - ldrgth r1, [r1, #0x0] - strgtb r1, [r0, #0x0] - bx lr - - arm_func_start FUN_020A4B50 -FUN_020A4B50: ; 0x020A4B50 - stmdb sp!, {r4-r6,lr} - mov r6, r1 - mov r5, r2 - mov r2, r3, lsl #0x1 - mov r1, #0x0 - mov r4, r0 - bl MI_CpuFill8 - sub r0, r5, #0x1 - cmp r5, #0x1 - add r6, r6, r0 - ble _020A4B9C -_020A4B7C: - ldrb r1, [r6, #0x0] - ldrb r0, [r6, #-0x1] - sub r5, r5, #0x2 - cmp r5, #0x1 - add r0, r1, r0, lsl #0x8 - strh r0, [r4], #0x2 - sub r6, r6, #0x2 - bgt _020A4B7C -_020A4B9C: - cmp r5, #0x0 - ldrgtb r0, [r6, #0x0] - strgth r0, [r4, #0x0] - ldmia sp!, {r4-r6,lr} - bx lr - - arm_func_start FUN_020A4BB0 -FUN_020A4BB0: ; 0x020A4BB0 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x34 - mov r10, r3 - mov r3, #0x16 - mul r4, r10, r3 - ldr r3, _020A4DE0 ; =0x021C8EC8 - mov r11, r0 - ldr r3, [r3, #0x0] - mov r0, r4 - ldr r9, [sp, #0x58] - str r1, [sp, #0x14] - str r2, [sp, #0x18] - blx r3 - str r0, [sp, #0x1c] - cmp r0, #0x0 - addeq sp, sp, #0x34 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - mov r2, r4 - mov r1, #0x0 - bl MI_CpuFill8 - ldr r0, [sp, #0x1c] - mov r1, r10 - add r6, r0, r10, lsl #0x1 - add r0, r6, r10, lsl #0x1 - add r5, r0, r10, lsl #0x1 - add r4, r5, r10, lsl #0x1 - str r0, [sp, #0x20] - add r0, r4, r10, lsl #0x1 - str r0, [sp, #0x24] - add r7, r0, r10, lsl #0x1 - mov r0, r9 - bl thunk_FUN_020a5a28 - mov r8, r0 - ldr r0, [sp, #0x1c] - mov r2, #0x1 - mov r1, r8, lsl #0x1 - strh r2, [r0, r1] - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x1c] - str r0, [sp, #0x0] - mov r0, r6 - mov r2, r9 - mov r3, r10 - bl FUN_020A4F2C - ldr r1, [sp, #0x1c] - mov r0, r5 - mov r2, r6 - mov r3, r10 - bl FUN_020A5608 - mov r0, r6 - mov r1, r5 - mov r2, #0x1 - mov r3, r10 - bl FUN_020A5748 - str r10, [sp, #0x0] - mov r0, r6 - mov r1, r6 - mov r2, r9 - mov r3, #0x0 - str r7, [sp, #0x4] - bl FUN_020A5240 - ldr r1, [sp, #0x14] - ldr r0, [sp, #0x20] - ldr r2, [sp, #0x1c] - mov r3, r10 - bl FUN_020A5608 - ldr r1, [sp, #0x20] - str r10, [sp, #0x0] - mov r0, #0x0 - mov r2, r9 - mov r3, r1 - str r7, [sp, #0x4] - bl FUN_020A5240 - str r10, [sp, #0x0] - ldr r1, [sp, #0x1c] - mov r0, #0x0 - mov r2, r9 - mov r3, r11 - str r7, [sp, #0x4] - bl FUN_020A5240 - movs r0, r8, lsl #0x4 - mov r7, #0x0 - str r0, [sp, #0x28] - beq _020A4D9C - mov r0, #0x1 - str r0, [sp, #0x2c] - mov r0, #0x8000 - str r0, [sp, #0x30] -_020A4D14: - str r8, [sp, #0x0] - str r9, [sp, #0x4] - str r6, [sp, #0x8] - str r5, [sp, #0xc] - ldr r1, [sp, #0x24] - ldr r2, [sp, #0x2c] - mov r0, r11 - mov r3, r10 - str r4, [sp, #0x10] - bl FUN_020A4DE8 - ldr r0, [sp, #0x30] - and r1, r7, #0xf - mov r0, r0, lsr r1 - sub r1, r8, r7, asr #0x4 - sub r1, r1, #0x1 - mov r2, r1, lsl #0x1 - ldr r1, [sp, #0x18] - ldrh r1, [r1, r2] - ands r0, r0, r1 - beq _020A4D8C - str r8, [sp, #0x0] - str r9, [sp, #0x4] - str r6, [sp, #0x8] - str r5, [sp, #0xc] - ldr r1, [sp, #0x24] - ldr r2, [sp, #0x20] - mov r0, r11 - mov r3, r10 - str r4, [sp, #0x10] - bl FUN_020A4DE8 -_020A4D8C: - ldr r0, [sp, #0x28] - add r7, r7, #0x1 - cmp r7, r0 - blo _020A4D14 -_020A4D9C: - str r8, [sp, #0x0] - str r9, [sp, #0x4] - str r6, [sp, #0x8] - str r5, [sp, #0xc] - ldr r1, [sp, #0x24] - mov r0, r11 - mov r3, r10 - mov r2, #0x0 - str r4, [sp, #0x10] - bl FUN_020A4DE8 - ldr r1, _020A4DE4 ; =0x021C8EF4 - ldr r0, [sp, #0x1c] - ldr r1, [r1, #0x0] - blx r1 - add sp, sp, #0x34 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020A4DE0: .word 0x021C8EC8 -_020A4DE4: .word 0x021C8EF4 - - arm_func_start FUN_020A4DE8 -FUN_020A4DE8: ; 0x020A4DE8 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - mov r5, r3 - mov r7, r5, lsl #0x1 - mov r8, r2 - mov r2, r7 - mov r6, r0 - mov r9, r1 - ldr r4, [sp, #0x20] - bl MI_CpuCopy8 - cmp r8, #0x1 - bne _020A4E2C - mov r0, r6 - mov r1, r9 - mov r2, r5 - bl FUN_020A5438 - b _020A4E48 -_020A4E2C: - cmp r8, #0x0 - beq _020A4E48 - mov r0, r6 - mov r1, r9 - mov r2, r8 - mov r3, r5 - bl FUN_020A5608 -_020A4E48: - ldr r0, [sp, #0x2c] - ldr r2, [sp, #0x28] - mov r1, r6 - mov r3, r4 - bl FUN_020A5608 - sub r1, r5, r4 - ldr r0, [sp, #0x2c] - mov r8, r1, lsl #0x1 - mov r2, r8 - add r0, r0, r4, lsl #0x1 - mov r1, #0x0 - bl MI_CpuFill8 - ldr r0, [sp, #0x30] - ldr r1, [sp, #0x2c] - ldr r2, [sp, #0x24] - mov r3, r5 - bl FUN_020A5608 - mov r0, r6 - mov r1, r6 - ldr r2, [sp, #0x30] - mov r3, r5 - bl FUN_020A5930 - mov r2, r8 - mov r0, r6 - add r1, r6, r4, lsl #0x1 - bl memmove - add r0, r6, r5, lsl #0x1 - sub r0, r0, r4, lsl #0x1 - mov r2, r4, lsl #0x1 - mov r1, #0x0 - bl MI_CpuFill8 - mov r0, r6 - ldr r1, [sp, #0x24] - mov r2, r5 - bl FUN_020A570C -_020A4ED4: ; 0x020A4ED4 - cmp r0, #0x0 - beq _020A4EF0 - cmp r0, #0x1 - beq _020A4F0C - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr -_020A4EF0: - mov r0, r6 - mov r2, r7 - mov r1, #0x0 - bl MI_CpuFill8 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr -_020A4F0C: - ldr r2, [sp, #0x24] - mov r0, r6 - mov r1, r6 - mov r3, r5 - bl FUN_020A57BC - add sp, sp, #0x4 - ldmia sp!, {r4-r9,lr} - bx lr - - arm_func_start FUN_020A4F2C -FUN_020A4F2C: ; 0x020A4F2C - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x14 - ldr r9, [sp, #0x38] - mov r10, r3 - add r11, r9, r10, lsl #0x1 - add r8, r11, r10, lsl #0x1 - add r7, r8, r10, lsl #0x1 - add r6, r7, r10, lsl #0x1 - add r5, r6, r10, lsl #0x1 - str r0, [sp, #0x8] - mov r0, r1 - add r1, r5, r10, lsl #0x1 - str r1, [sp, #0x10] - mov r4, r10, lsl #0x1 - str r2, [sp, #0xc] - mov r1, r9 - mov r2, r4 - bl MI_CpuCopy8 - ldr r0, [sp, #0xc] - mov r1, r8 - mov r2, r4 - bl MI_CpuCopy8 - mov r0, #0x1 - strh r0, [r8, r4] - mov r0, r9 - mov r1, r10 - bl FUN_020A59DC -_020A4F98: ; 0x020A4F98 - cmp r0, #0x0 - ble _020A503C -_020A4FA0: - ldr r3, [sp, #0x10] - str r10, [sp, #0x0] - str r3, [sp, #0x4] - mov r0, r11 - mov r1, r8 - mov r2, r9 - mov r3, r5 - bl FUN_020A5240 - mov r0, r9 - mov r1, r8 - mov r2, r4 - bl MI_CpuCopy8 - mov r0, r5 - mov r1, r9 - mov r2, r4 - bl MI_CpuCopy8 - mov r0, r5 - mov r1, r11 - mov r2, r7 - mov r3, r10 - bl FUN_020A5608 - mov r0, r5 - mov r1, r6 - mov r2, r5 - mov r3, r10 - bl FUN_020A57BC - mov r0, r7 - mov r1, r6 - mov r2, r4 - bl MI_CpuCopy8 - mov r0, r5 - mov r1, r7 - mov r2, r4 - bl MI_CpuCopy8 - mov r0, r9 - mov r1, r10 - bl FUN_020A59DC -_020A5034: ; 0x020A5034 - cmp r0, #0x0 - bgt _020A4FA0 -_020A503C: - ldr r2, [sp, #0xc] - mov r0, r6 - mov r1, r6 - mov r3, r10 - bl FUN_020A5930 - ldr r2, [sp, #0xc] - ldr r3, [sp, #0x8] - ldr r4, [sp, #0x10] - str r10, [sp, #0x0] - mov r1, r6 - mov r0, #0x0 - str r4, [sp, #0x4] - bl FUN_020A5240 - add sp, sp, #0x14 - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_020A507C -FUN_020A507C: ; 0x020A507C - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x1c - ldr r4, _020A5238 ; =0x021C8EC8 - mov r8, r3 - ldr r3, [r4, #0x0] - mov r10, r0 - mov r0, r8, lsl #0x3 - ldr r7, [sp, #0x40] - str r1, [sp, #0x8] - mov r9, r2 - blx r3 - movs r6, r0 - addeq sp, sp, #0x1c - ldmeqia sp!, {r4-r11,lr} - bxeq lr - sub r1, r8, #0x1 - add r0, r10, #0x2 - mov r2, r1, lsl #0x1 - mov r1, #0x0 - add r11, r6, r8, lsl #0x1 - bl MI_CpuFill8 - mov r2, #0x1 - mov r0, r9 - mov r1, r8 - strh r2, [r10, #0x0] - bl thunk_FUN_020a5a28 -_020A50E4: ; 0x020A50E4 - sub r0, r8, r0 - mov r5, r0, lsl #0x4 - mov r4, r8, lsl #0x4 - cmp r5, r4 - bhs _020A5140 - mov r0, #0x8000 -_020A50FC: - sub r1, r8, r5, asr #0x4 - sub r1, r1, #0x1 - mov r1, r1, lsl #0x1 - and r2, r5, #0xf - ldrh r1, [r9, r1] - mov r2, r0, lsr r2 - ands r1, r2, r1 - beq _020A5134 - ldr r0, [sp, #0x8] - mov r1, r10 - mov r2, r8, lsl #0x1 - bl MI_CpuCopy8 - add r5, r5, #0x1 - b _020A5140 -_020A5134: - add r5, r5, #0x1 - cmp r5, r4 - blo _020A50FC -_020A5140: - cmp r5, r4 - bhs _020A521C - mov r0, r8, lsl #0x1 - str r0, [sp, #0xc] - mov r0, #0x0 - str r0, [sp, #0x10] - mov r0, #0x8000 - str r0, [sp, #0x14] -_020A5160: - mov r0, r6 - mov r1, r10 - mov r2, r8 - bl FUN_020A5438 - ldr r2, [sp, #0xc] - mov r0, r6 - mov r1, r10 - bl MI_CpuCopy8 -_020A5180: ; 0x020A5180 - cmp r7, #0x0 - beq _020A51A4 - ldr r0, [sp, #0x10] - str r8, [sp, #0x0] - mov r1, r10 - mov r2, r7 - mov r3, r10 - str r11, [sp, #0x4] - bl FUN_020A5240 -_020A51A4: - sub r0, r8, r5, asr #0x4 - sub r0, r0, #0x1 - mov r1, r0, lsl #0x1 - ldr r0, [sp, #0x14] - and r2, r5, #0xf - mov r2, r0, lsr r2 - ldrh r0, [r9, r1] - ands r0, r2, r0 - beq _020A5210 - ldr r2, [sp, #0x8] - mov r0, r6 - mov r1, r10 - mov r3, r8 - bl FUN_020A5608 - ldr r2, [sp, #0xc] - mov r0, r6 - mov r1, r10 - bl MI_CpuCopy8 -_020A51EC: ; 0x020A51EC - cmp r7, #0x0 - beq _020A5210 - ldr r0, [sp, #0x10] - str r8, [sp, #0x0] - mov r1, r10 - mov r2, r7 - mov r3, r10 - str r11, [sp, #0x4] - bl FUN_020A5240 -_020A5210: - add r5, r5, #0x1 - cmp r5, r4 - blo _020A5160 -_020A521C: - ldr r1, _020A523C ; =0x021C8EF4 - mov r0, r6 - ldr r1, [r1, #0x0] - blx r1 - add sp, sp, #0x1c - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020A5238: .word 0x021C8EC8 -_020A523C: .word 0x021C8EF4 - - arm_func_start FUN_020A5240 -FUN_020A5240: ; 0x020A5240 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x24 - ldr r9, [sp, #0x48] - ldr r6, [sp, #0x4c] - str r1, [sp, #0x4] - add r5, r6, r9, lsl #0x1 - str r0, [sp, #0x0] - mov r10, r2 - mov r0, r5 - mov r2, r9, lsl #0x2 - mov r1, #0x0 - str r3, [sp, #0x8] - add r4, r5, r9, lsl #0x1 - bl MI_CpuFill8 - ldr r0, [sp, #0x4] - mov r1, r9 - bl thunk_FUN_020a5a28 - mov r11, r0 - mov r0, r10 - mov r1, r9 - bl thunk_FUN_020a5a28 - mov r7, r0 - cmp r11, #0x0 - ble _020A53E8 - cmp r7, #0x0 - ble _020A53E8 - sub r0, r9, r11 - add r0, r7, r0 - sub r8, r0, #0x1 - cmp r8, r9 - blt _020A52D0 - ldr r0, [sp, #0x4] - mov r1, r4 - mov r2, r9, lsl #0x1 - bl MI_CpuCopy8 - b _020A53E8 -_020A52D0: - ldr r0, [sp, #0x4] - add r1, r5, r8, lsl #0x1 - mov r2, r11, lsl #0x1 - bl MI_CpuCopy8 - cmp r7, #0x2 - ble _020A5304 - add r0, r10, r7, lsl #0x1 - sub r0, r0, #0x2 - mov r7, r7, lsl #0x1 - bl FUN_020A4AD8 - str r0, [sp, #0x14] - str r1, [sp, #0x10] - b _020A5340 -_020A5304: - cmp r7, #0x1 - ble _020A5328 - add r0, r10, r7, lsl #0x1 - sub r0, r0, #0x2 - mov r7, r7, lsl #0x1 - bl FUN_020A4AC8 - str r0, [sp, #0x14] - str r1, [sp, #0x10] - b _020A5340 -_020A5328: - add r0, r10, r7, lsl #0x1 - sub r0, r0, #0x2 - mov r7, r7, lsl #0x1 - bl FUN_020A4ABC - str r0, [sp, #0x14] - str r1, [sp, #0x10] -_020A5340: - cmp r8, r9 - bge _020A53E8 - mov r0, r9, lsl #0x1 - sub r0, r0, #0x1 - mov r11, r0, lsl #0x1 - add r0, r4, r7 - str r0, [sp, #0x1c] -_020A535C: - mov r1, r5 - add r0, r5, #0x2 - mov r2, r11 - bl memmove - ldr r0, [sp, #0x1c] - bl FUN_020A4AEC - ldr r2, [sp, #0x14] - ldr r3, [sp, #0x10] - bl _ll_udiv - mov r7, r0 - ldr r0, _020A5434 ; =0x0000FFFF - cmp r7, r0 - movhi r7, r0 -_020A5390: - mov r2, r7, lsl #0x10 - mov r0, r6 - mov r1, r10 - mov r2, r2, lsr #0x10 - mov r3, r9 - bl FUN_020A5584 - mov r0, r4 - mov r1, r6 - mov r2, r9 - bl FUN_020A570C -_020A53B8: ; 0x020A53B8 - cmp r0, #0x0 - sublt r7, r7, #0x1 - blt _020A5390 - mov r0, r4 - mov r1, r4 - mov r2, r6 - mov r3, r9 - bl FUN_020A57BC - strh r7, [r5, #0x0] - add r8, r8, #0x1 - cmp r8, r9 - blt _020A535C -_020A53E8: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _020A5404 - ldr r1, [sp, #0x0] - mov r0, r5 - mov r2, r9, lsl #0x1 - bl MI_CpuCopy8 -_020A5404: - ldr r0, [sp, #0x8] - cmp r0, #0x0 - addeq sp, sp, #0x24 - ldmeqia sp!, {r4-r11,lr} - bxeq lr - ldr r1, [sp, #0x8] - mov r0, r4 - mov r2, r9, lsl #0x1 - bl MI_CpuCopy8 - add sp, sp, #0x24 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020A5434: .word 0x0000FFFF - - arm_func_start FUN_020A5438 -FUN_020A5438: ; 0x020A5438 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r9, r1 - mov r8, r2 - mov r10, r0 - mov r0, r9 - mov r1, r8 - bl thunk_FUN_020a5a28 - mov r11, r0 - mov r0, r11, lsl #0x1 - cmp r0, r8 - bge _020A547C - sub r1, r8, r0 - add r0, r10, r0, lsl #0x1 - mov r2, r1, lsl #0x1 - mov r1, #0x0 - bl MI_CpuFill8 -_020A547C: - cmp r11, #0x0 - mov r1, #0x0 - ble _020A54D4 - mov r0, r1 - sub r4, r8, #0x1 -_020A5490: - cmp r0, r8 - bge _020A54D4 - mov r2, r1, lsl #0x1 - ldrh r5, [r9, r2] - mov r2, r0, lsl #0x1 - cmp r0, r4 - mul r3, r5, r5 - strh r3, [r10, r2] - beq _020A54D4 - add r2, r0, #0x1 - add r1, r1, #0x1 - mov r3, r3, lsr #0x10 - mov r2, r2, lsl #0x1 - strh r3, [r10, r2] - cmp r1, r11 - add r0, r0, #0x2 - blt _020A5490 -_020A54D4: - cmp r11, #0x0 - mov r6, #0x0 - addle sp, sp, #0x4 - ldmleia sp!, {r4-r11,lr} - bxle lr -_020A54E8: - add r7, r6, #0x1 - b _020A5554 -_020A54F0: - mov r1, r7, lsl #0x1 - mov r0, r6, lsl #0x1 - ldrh r1, [r9, r1] - ldrh r0, [r9, r0] - mul r4, r1, r0 - ldr r0, _020A5580 ; =0x7FFF8000 - cmp r4, r0 - bhi _020A5528 - mov r0, r10 - mov r2, r5 - mov r3, r8 - mov r1, r4, lsl #0x1 - bl FUN_020A56C4 - b _020A5550 -_020A5528: - mov r0, r10 - mov r1, r4 - mov r2, r5 - mov r3, r8 - bl FUN_020A56C4 - mov r0, r10 - mov r1, r4 - mov r2, r5 - mov r3, r8 - bl FUN_020A56C4 -_020A5550: - add r7, r7, #0x1 -_020A5554: - cmp r7, r11 - bge _020A5568 - add r5, r6, r7 - cmp r5, r8 - blt _020A54F0 -_020A5568: - add r6, r6, #0x1 - cmp r6, r11 - blt _020A54E8 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,lr} - bx lr - .balign 4 -_020A5580: .word 0x7FFF8000 - - arm_func_start FUN_020A5584 -FUN_020A5584: ; 0x020A5584 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r6, r1 - mov r4, r3 - mov r7, r0 - mov r0, r6 - mov r1, r4 - mov r5, r2 - bl thunk_FUN_020a5a28 - mov r3, #0x0 - mov r12, r3 - cmp r0, #0x0 - ble _020A55D8 -_020A55B8: - mov r2, r12, lsl #0x1 - ldrh r1, [r6, r2] - add r12, r12, #0x1 - cmp r12, r0 - mla r1, r5, r1, r3 - strh r1, [r7, r2] - mov r3, r1, lsr #0x10 - blt _020A55B8 -_020A55D8: - cmp r12, r4 - movlt r0, r12, lsl #0x1 - addlt r12, r12, #0x1 - sub r1, r4, r12 - strlth r3, [r7, r0] - mov r2, r1, lsl #0x1 - add r0, r7, r12, lsl #0x1 - mov r1, #0x0 - bl MI_CpuFill8 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_020A5608 -FUN_020A5608: ; 0x020A5608 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - mov r8, r3 - mov r10, r1 - mov r9, r2 - mov r2, r8, lsl #0x1 - mov r1, #0x0 - mov r11, r0 - bl MI_CpuFill8 - mov r0, r10 - mov r1, r8 - bl thunk_FUN_020a5a28 - mov r5, r0 - mov r0, r9 - mov r1, r8 - bl thunk_FUN_020a5a28 -_020A5648: ; 0x020A5648 - str r0, [sp, #0x0] - cmp r0, #0x0 - mov r7, #0x0 - addle sp, sp, #0xc - ldmleia sp!, {r4-r11,lr} - bxle lr - str r7, [sp, #0x4] -_020A5664: - ldr r6, [sp, #0x4] - sub r4, r8, r7 - b _020A5698 -_020A5670: - mov r1, r6, lsl #0x1 - mov r0, r7, lsl #0x1 - ldrh r2, [r10, r1] - ldrh r1, [r9, r0] - mov r0, r11 - mov r3, r8 - mul r1, r2, r1 - add r2, r7, r6 - bl FUN_020A56C4 - add r6, r6, #0x1 -_020A5698: - cmp r6, r5 - bge _020A56A8 - cmp r6, r4 - blt _020A5670 -_020A56A8: - ldr r0, [sp, #0x0] - add r7, r7, #0x1 - cmp r7, r0 - blt _020A5664 - add sp, sp, #0xc - ldmia sp!, {r4-r11,lr} - bx lr - - arm_func_start FUN_020A56C4 -FUN_020A56C4: ; 0x020A56C4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - b _020A56E8 -_020A56D0: - mov lr, r2, lsl #0x1 - ldrh r12, [r0, lr] - add r2, r2, #0x1 - add r1, r1, r12 - strh r1, [r0, lr] - mov r1, r1, lsr #0x10 -_020A56E8: - cmp r1, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {lr} - bxeq lr - cmp r2, r3 - blt _020A56D0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_020A570C -FUN_020A570C: - subs r12, r2, #0x1 - bmi _020A5740 -_020A5714: - mov r2, r12, lsl #0x1 - ldrh r3, [r1, r2] - ldrh r2, [r0, r2] - cmp r2, r3 - movhi r0, #0x1 - bxhi lr - cmp r2, r3 - mvncc r0, #0x0 - bxcc lr - subs r12, r12, #0x1 - bpl _020A5714 -_020A5740: - mov r0, #0x0 - bx lr - - arm_func_start FUN_020A5748 -FUN_020A5748: ; 0x020A5748 - stmdb sp!, {r4,lr} - cmp r3, #0x0 - mov r4, #0x0 - ble _020A5780 -_020A5758: - mov lr, r4, lsl #0x1 - ldrh r12, [r1, lr] - sub r12, r12, r2 - mov r2, r12, lsr #0x10 - strh r12, [r0, lr] - ands r2, r2, #0x1 - beq _020A5780 - add r4, r4, #0x1 - cmp r4, r3 - blt _020A5758 -_020A5780: - cmp r0, r1 - ldmeqia sp!, {r4,lr} - bxeq lr - add r4, r4, #0x1 - cmp r4, r3 - ldmgeia sp!, {r4,lr} - bxge lr -_020A579C: - mov r12, r4, lsl #0x1 - ldrh r2, [r1, r12] - add r4, r4, #0x1 - cmp r4, r3 - strh r2, [r0, r12] - blt _020A579C - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020A57BC -FUN_020A57BC: ; 0x020A57BC - stmdb sp!, {r4-r8,lr} - mov r7, r1 - mov r5, r3 - mov r8, r0 - mov r6, r2 - mov r0, r7 - mov r1, r5 - bl thunk_FUN_020a5a28 - mov r4, r0 - mov r0, r6 - mov r1, r5 - bl thunk_FUN_020a5a28 -_020A57EC: ; 0x020A57EC - cmp r4, r0 - movlt r4, r0 - mov r3, #0x0 - cmp r4, r5 - addne r4, r4, #0x1 - mov r12, r3 - b _020A5828 -_020A5808: - mov r2, r12, lsl #0x1 - ldrh r1, [r7, r2] - ldrh r0, [r6, r2] - add r12, r12, #0x1 - sub r0, r1, r0 - add r0, r3, r0 - strh r0, [r8, r2] - mov r3, r0, asr #0x10 -_020A5828: - cmp r12, r4 - blt _020A5808 - cmp r12, r5 - bge _020A5840 - cmp r3, #0x0 - bne _020A5808 -_020A5840: - cmp r8, r7 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - cmp r8, r6 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - sub r1, r5, r12 - add r0, r8, r12, lsl #0x1 - mov r2, r1, lsl #0x1 - mov r1, #0x0 - bl MI_CpuFill8 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_020A5874 -FUN_020A5874: ; 0x020A5874 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r3, r1 - cmp r3, #0x0 - mov r12, #0x0 - ble _020A58A8 -_020A588C: - mov r2, r12, lsl #0x1 - ldrh r1, [r0, r2] - add r12, r12, #0x1 - cmp r12, r3 - mvn r1, r1 - strh r1, [r0, r2] - blt _020A588C -_020A58A8: - mov r1, r0 - mov r2, #0x1 - bl FUN_020A58C0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_020A58C0 -FUN_020A58C0: ; 0x020A58C0 - stmdb sp!, {r4,lr} - cmp r3, #0x0 - mov r4, #0x0 - ble _020A58F4 -_020A58D0: - mov lr, r4, lsl #0x1 - ldrh r12, [r1, lr] - add r2, r2, r12 - strh r2, [r0, lr] - movs r2, r2, lsr #0x10 - beq _020A58F4 - add r4, r4, #0x1 - cmp r4, r3 - blt _020A58D0 -_020A58F4: - cmp r0, r1 - ldmeqia sp!, {r4,lr} - bxeq lr - add r4, r4, #0x1 - cmp r4, r3 - ldmgeia sp!, {r4,lr} - bxge lr -_020A5910: - mov r12, r4, lsl #0x1 - ldrh r2, [r1, r12] - add r4, r4, #0x1 - cmp r4, r3 - strh r2, [r0, r12] - blt _020A5910 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020A5930 -FUN_020A5930: ; 0x020A5930 - stmdb sp!, {r4-r8,lr} - mov r7, r1 - mov r5, r3 - mov r8, r0 - mov r6, r2 - mov r0, r7 - mov r1, r5 - bl thunk_FUN_020a5a28 - mov r4, r0 - mov r0, r6 - mov r1, r5 - bl thunk_FUN_020a5a28 -_020A5960: ; 0x020A5960 - cmp r4, r0 - movlt r4, r0 - cmp r4, r5 - addne r4, r4, #0x1 - mov r3, #0x0 - mov r12, r3 - cmp r4, #0x0 - ble _020A59A8 -_020A5980: - mov r2, r12, lsl #0x1 - ldrh r1, [r7, r2] - ldrh r0, [r6, r2] - add r12, r12, #0x1 - cmp r12, r4 - add r0, r1, r0 - add r0, r3, r0 - strh r0, [r8, r2] - mov r3, r0, lsr #0x10 - blt _020A5980 -_020A59A8: - cmp r8, r7 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - cmp r8, r6 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - sub r1, r5, r12 - add r0, r8, r12, lsl #0x1 - mov r2, r1, lsl #0x1 - mov r1, #0x0 - bl MI_CpuFill8 - ldmia sp!, {r4-r8,lr} - bx lr - - arm_func_start FUN_020A59DC -FUN_020A59DC: - stmdb sp!, {lr} - sub sp, sp, #0x4 - sub r2, r1, #0x1 - mov r2, r2, lsl #0x1 - ldrh r2, [r0, r2] - ands r2, r2, #0x8000 - addne sp, sp, #0x4 - mvnne r0, #0x0 - ldmneia sp!, {lr} - bxne lr - bl thunk_FUN_020a5a28 -_020A5A08: ; 0x020A5A08 - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start thunk_FUN_020a5a28 -thunk_FUN_020a5a28: - b _020A5A28 -_020A5A24: - sub r1, r1, #0x1 -_020A5A28: - cmp r1, #0x0 - beq _020A5A44 - sub r2, r1, #0x1 - mov r2, r2, lsl #0x1 - ldrh r2, [r0, r2] - cmp r2, #0x0 - beq _020A5A24 -_020A5A44: - mov r0, r1 - bx lr - - arm_func_start FUN_020A5A4C -FUN_020A5A4C: ; 0x020A5A4C - mov r1, r0 - mov r0, #0x0 - mov r3, #0x1 -_020A5A58: - clz r2, r1 - rsbs r2, r2, #0x1f - bxcc lr - bic r1, r1, r3, lsl r2 - add r0, r0, #0x1 - b _020A5A58 - - arm_func_start FUN_020A5A70 -FUN_020A5A70: ; 0x020A5A70 - clz r0, r0 - bx lr - - arm_func_start FUN_020A5A78 -FUN_020A5A78: ; 0x020A5A78 - stmdb sp!, {r4,lr} - sub sp, sp, #0x8 - ldrh r0, [r0, #0x2] - cmp r0, #0x0 - bne _020A5D80 - ldr r2, _020A5DA8 ; =0x021CA86C - mov r0, #0x0 - ldr r1, [r2, #0x0] - add r1, r1, #0x2000 - strb r0, [r1, #0x26b] - ldr r1, [r2, #0x0] - add r1, r1, #0x2200 - strh r0, [r1, #0x82] - ldr r3, [r2, #0x0] - add r1, r3, #0x2000 - ldr r1, [r1, #0x260] - cmp r1, #0xd - addls pc, pc, r1, lsl #0x2 - b _020A5D4C -_020A5AC4: - b _020A5D4C -_020A5AC8: - b _020A5D4C -_020A5ACC: - b _020A5D4C -_020A5AD0: - b _020A5D4C -_020A5AD4: - b _020A5D4C -_020A5AD8: - b _020A5AFC -_020A5ADC: - b _020A5AFC -_020A5AE0: - b _020A5B24 -_020A5AE4: - b _020A5B4C -_020A5AE8: - b _020A5C74 -_020A5AEC: - b _020A5CA4 -_020A5AF0: - b _020A5D4C -_020A5AF4: - b _020A5C74 -_020A5AF8: - b _020A5CD4 -_020A5AFC: - mov r0, #0x3 - bl FUN_020A6C38 - mov r1, #0x0 - ldr r3, _020A5DAC ; =0x000008F5 - mov r2, r1 - mov r0, #0x1 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr -_020A5B24: - mov r0, #0x3 - bl FUN_020A6C38 -_020A5B2C: ; 0x020A5B2C - mov r0, #0x0 - ldr r3, _020A5DB0 ; =0x000008FB - mov r1, r0 - mov r2, r0 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr -_020A5B4C: - add r1, r3, #0x2200 - ldrh r4, [r1, #0xf8] - strh r0, [r1, #0xf8] - cmp r4, #0x12 - bne _020A5C44 - ldr r1, [r2, #0x0] - add r1, r1, #0x2100 - ldrh r3, [r1, #0x70] - and r12, r3, #0x24 - cmp r12, #0x24 - beq _020A5C44 - orr r3, r3, #0x24 - strh r3, [r1, #0x70] - ldr r2, [r2, #0x0] - add r1, r2, #0x2000 - ldr r3, [r1, #0x264] - and r1, r3, #0xc0000 - cmp r1, #0xc0000 - moveq r0, #0x1 - mov r0, r0, lsl #0x10 - mov r12, r0, lsr #0x10 - and r1, r3, #0x30000 - cmp r1, #0x30000 - movne r3, #0x1 - add r1, r2, #0x2140 - ldr r0, _020A5DB4 ; =FUN_020A6144 - moveq r3, #0x0 - mov r2, #0x0 - str r12, [sp, #0x0] - bl WM_StartConnectEx - cmp r0, #0x2 - addeq sp, sp, #0x8 - ldmeqia sp!, {r4,lr} - bxeq lr - cmp r0, #0x3 - beq _020A5C14 - cmp r0, #0x8 - bne _020A5C14 - mov r0, #0xc - bl FUN_020A6C38 - ldr r0, _020A5DA8 ; =0x021CA86C - ldr r3, _020A5DB8 ; =0x0000091C - ldr r0, [r0, #0x0] - mov r2, r4 - add r1, r0, #0x2140 - mov r0, #0x1 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr -_020A5C14: - mov r0, #0xb - bl FUN_020A6C38 - ldr r0, _020A5DA8 ; =0x021CA86C - ldr r3, _020A5DBC ; =0x00000925 - ldr r0, [r0, #0x0] - mov r2, r4 - add r1, r0, #0x2140 - mov r0, #0x7 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr -_020A5C44: - mov r0, #0x3 - bl FUN_020A6C38 - ldr r0, _020A5DA8 ; =0x021CA86C - ldr r3, _020A5DC0 ; =0x0000092D - ldr r0, [r0, #0x0] - mov r2, r4 - add r1, r0, #0x2140 - mov r0, #0x1 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr -_020A5C74: - mov r0, #0x3 - bl FUN_020A6C38 - ldr r0, _020A5DA8 ; =0x021CA86C - ldr r3, _020A5DC4 ; =0x00000935 - ldr r1, [r0, #0x0] - mov r0, #0x0 - add r1, r1, #0x2140 - mov r2, #0x1 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr -_020A5CA4: - mov r0, #0x3 - bl FUN_020A6C38 - ldr r1, _020A5DA8 ; =0x021CA86C - mov r0, #0x0 - ldr r1, [r1, #0x0] - ldr r3, _020A5DC8 ; =0x0000093C - mov r2, r0 - add r1, r1, #0x2140 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr -_020A5CD4: - ldr r0, _020A5DCC ; =FUN_020A6768 - bl WM_PowerOff - cmp r0, #0x2 - addeq sp, sp, #0x8 - ldmeqia sp!, {r4,lr} - bxeq lr - cmp r0, #0x3 - beq _020A5D24 - cmp r0, #0x8 - bne _020A5D24 - mov r0, #0xc - bl FUN_020A6C38 - mov r1, #0x0 - ldr r3, _020A5DD0 ; =0x0000094A - mov r2, r1 - mov r0, #0x1 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr -_020A5D24: - mov r0, #0xb - bl FUN_020A6C38 - mov r1, #0x0 - ldr r3, _020A5DD4 ; =0x00000953 - mov r2, r1 - mov r0, #0x7 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr -_020A5D4C: - mov r0, #0xb - bl FUN_020A6C38 - ldr r0, _020A5DA8 ; =0x021CA86C - ldr r3, _020A5DD8 ; =0x00000959 - ldr r1, [r0, #0x0] - mov r0, #0x7 - add r1, r1, #0x2000 - ldr r2, [r1, #0x260] - mov r1, #0x0 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr -_020A5D80: - mov r0, #0xb - bl FUN_020A6C38 - mov r1, #0x0 - mov r2, r1 - mov r0, #0x7 - mov r3, #0x960 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A5DA8: .word 0x021CA86C -_020A5DAC: .word 0x000008F5 -_020A5DB0: .word 0x000008FB -_020A5DB4: .word FUN_020A6144 -_020A5DB8: .word 0x0000091C -_020A5DBC: .word 0x00000925 -_020A5DC0: .word 0x0000092D -_020A5DC4: .word 0x00000935 -_020A5DC8: .word 0x0000093C -_020A5DCC: .word FUN_020A6768 -_020A5DD0: .word 0x0000094A -_020A5DD4: .word 0x00000953 -_020A5DD8: .word 0x00000959 - - arm_func_start FUN_020A5DDC -FUN_020A5DDC: ; 0x020A5DDC - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrh r0, [r0, #0x2] - cmp r0, #0x4 - addls pc, pc, r0, lsl #0x2 - b _020A5EF4 -_020A5DF4: - b _020A5E08 -_020A5DF8: - b _020A5EDC -_020A5DFC: - b _020A5EF4 -_020A5E00: - b _020A5EDC -_020A5E04: - b _020A5EF4 -_020A5E08: - ldr r0, _020A5F24 ; =0x021CA86C - ldr r0, [r0, #0x0] - add r0, r0, #0x2000 - ldr r0, [r0, #0x260] - cmp r0, #0xc - bne _020A5E38 - mov r0, #0xa - bl FUN_020A6C38 - bl FUN_020A6B28 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A5E38: - ldr r0, _020A5F28 ; =FUN_020A6058 - mov r1, #0x0 - bl WM_Disconnect - cmp r0, #0x2 - addeq sp, sp, #0x4 - ldmeqia sp!, {lr} - bxeq lr - cmp r0, #0x3 - beq _020A5E94 - cmp r0, #0x8 - bne _020A5EAC - mov r0, #0xc - bl FUN_020A6C38 - ldr r0, _020A5F24 ; =0x021CA86C - ldr r3, _020A5F2C ; =0x000008B4 - ldr r1, [r0, #0x0] - mov r0, #0x1 - add r1, r1, #0x2140 - mov r2, #0x0 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A5E94: - mov r0, #0xa - bl FUN_020A6C38 - bl FUN_020A6B28 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A5EAC: - mov r0, #0xb - bl FUN_020A6C38 - ldr r1, _020A5F24 ; =0x021CA86C - mov r0, #0x7 - ldr r1, [r1, #0x0] - mov r2, #0x0 - add r1, r1, #0x2140 - mov r3, #0x8c0 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A5EDC: - mov r0, #0xa - bl FUN_020A6C38 - bl FUN_020A6B28 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A5EF4: - mov r0, #0xb - bl FUN_020A6C38 - ldr r0, _020A5F24 ; =0x021CA86C - ldr r3, _020A5F30 ; =0x000008D3 - ldr r1, [r0, #0x0] - mov r0, #0x7 - add r1, r1, #0x2140 - mov r2, #0x0 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A5F24: .word 0x021CA86C -_020A5F28: .word FUN_020A6058 -_020A5F2C: .word 0x000008B4 -_020A5F30: .word 0x000008D3 - - arm_func_start FUN_020A5F34 -FUN_020A5F34: ; 0x020A5F34 - stmdb sp!, {r4,lr} - mov r4, r0 - ldrh r0, [r4, #0x2] - cmp r0, #0x0 - beq _020A5F50 - cmp r0, #0x4 - b _020A601C -_020A5F50: - ldrh r0, [r4, #0x4] - cmp r0, #0xe - beq _020A5F68 - cmp r0, #0xf - beq _020A5FC0 - b _020A5FF0 -_020A5F68: - ldr r0, _020A6048 ; =0x021CA86C - ldr r0, [r0, #0x0] - add r0, r0, #0x2000 - ldr r0, [r0, #0x260] - cmp r0, #0xc - bne _020A5F94 - mov r0, #0x8 - bl FUN_020A6C38 - bl FUN_020A6B28 - ldmia sp!, {r4,lr} - bx lr -_020A5F94: - mov r0, #0x9 - bl FUN_020A6C38 - ldr r1, _020A6048 ; =0x021CA86C - mov r0, #0x0 - ldr r1, [r1, #0x0] - ldr r3, _020A604C ; =0x00000872 - mov r2, r0 - add r1, r1, #0x2140 - bl FUN_020A6D3C - ldmia sp!, {r4,lr} - bx lr -_020A5FC0: - ldr r0, [r4, #0x8] - ldrh r0, [r0, #0xe] - mov r0, r0, asr #0x8 - and r0, r0, #0xff - bl FUN_020A89D0 - ldr r0, [r4, #0x8] - mov r1, #0x620 - bl DC_InvalidateRange - ldr r0, [r4, #0x8] - bl FUN_020A8934 - ldmia sp!, {r4,lr} - bx lr -_020A5FF0: - mov r0, #0xb - bl FUN_020A6C38 - ldr r0, _020A6048 ; =0x021CA86C - ldrh r2, [r4, #0x4] - ldr r0, [r0, #0x0] - ldr r3, _020A6050 ; =0x00000881 - add r1, r0, #0x2140 - mov r0, #0x7 - bl FUN_020A6D3C - ldmia sp!, {r4,lr} - bx lr -_020A601C: - mov r0, #0xb - bl FUN_020A6C38 - ldr r0, _020A6048 ; =0x021CA86C - ldr r3, _020A6054 ; =0x0000088C - ldr r1, [r0, #0x0] - mov r0, #0x7 - add r1, r1, #0x2140 - mov r2, #0x0 - bl FUN_020A6D3C - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A6048: .word 0x021CA86C -_020A604C: .word 0x00000872 -_020A6050: .word 0x00000881 -_020A6054: .word 0x0000088C - - arm_func_start FUN_020A6058 -FUN_020A6058: ; 0x020A6058 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrh r0, [r0, #0x2] - cmp r0, #0x4 - addls pc, pc, r0, lsl #0x2 - b _020A6108 -_020A6070: - b _020A6084 -_020A6074: - b _020A60F0 -_020A6078: - b _020A6108 -_020A607C: - b _020A60F0 -_020A6080: - b _020A6108 -_020A6084: - ldr r0, _020A6138 ; =0x021CA86C - ldr r1, [r0, #0x0] - add r0, r1, #0x2000 - ldr r0, [r0, #0x260] - cmp r0, #0xc - bne _020A60B4 - mov r0, #0xa - bl FUN_020A6C38 - bl FUN_020A6B28 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A60B4: - add r1, r1, #0x2200 - mov r2, #0x0 - mov r0, #0x3 - strh r2, [r1, #0x82] - bl FUN_020A6C38 - ldr r1, _020A6138 ; =0x021CA86C - mov r0, #0x0 - ldr r1, [r1, #0x0] - ldr r3, _020A613C ; =0x0000083D - mov r2, r0 - add r1, r1, #0x2140 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A60F0: - mov r0, #0xa - bl FUN_020A6C38 - bl FUN_020A6B28 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A6108: - mov r0, #0xb - bl FUN_020A6C38 - ldr r0, _020A6138 ; =0x021CA86C - ldr r3, _020A6140 ; =0x0000084F - ldr r1, [r0, #0x0] - mov r0, #0x7 - add r1, r1, #0x2140 - mov r2, #0x0 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A6138: .word 0x021CA86C -_020A613C: .word 0x0000083D -_020A6140: .word 0x0000084F - - arm_func_start FUN_020A6144 -FUN_020A6144: ; 0x020A6144 - stmdb sp!, {r4,lr} - mov r4, r0 - ldrh r0, [r4, #0x2] - cmp r0, #0xc - addls pc, pc, r0, lsl #0x2 - b _020A638C -_020A615C: - b _020A6190 -_020A6160: - b _020A6364 -_020A6164: - b _020A638C -_020A6168: - b _020A638C -_020A616C: - b _020A638C -_020A6170: - b _020A638C -_020A6174: - b _020A6378 -_020A6178: - b _020A638C -_020A617C: - b _020A638C -_020A6180: - b _020A638C -_020A6184: - b _020A638C -_020A6188: - b _020A6378 -_020A618C: - b _020A6378 -_020A6190: - ldrh r0, [r4, #0x8] - cmp r0, #0x9 - bgt _020A61D0 - cmp r0, #0x0 - addge pc, pc, r0, lsl #0x2 - b _020A6338 -_020A61A8: ; 0x020A61A8 - b _020A6338 -_020A61AC: ; 0x020A61AC - b _020A6338 -_020A61B0: ; 0x020A61B0 - b _020A6338 -_020A61B4: ; 0x020A61B4 - b _020A6338 -_020A61B8: ; 0x020A61B8 - b _020A6338 -_020A61BC: ; 0x020A61BC - b _020A6338 -_020A61C0: ; 0x020A61C0 - b _020A63B0 -_020A61C4: ; 0x020A61C4 - b _020A6258 -_020A61C8: ; 0x020A61C8 - b _020A61E0 -_020A61CC: ; 0x020A61CC - b _020A61E0 -_020A61D0: - cmp r0, #0x1a - ldmeqia sp!, {r4,lr} - bxeq lr - b _020A6338 -_020A61E0: - ldr r1, _020A63B8 ; =0x021CA86C - ldr r2, [r1, #0x0] - add r0, r2, #0x2000 - ldr r0, [r0, #0x260] - sub r0, r0, #0x8 - cmp r0, #0x4 - addls pc, pc, r0, lsl #0x2 - b _020A63B0 -_020A6200: - b _020A6220 -_020A6204: - b _020A6230 -_020A6208: - b _020A6214 -_020A620C: - b _020A63B0 -_020A6210: - b _020A624C -_020A6214: - add r0, r2, #0x2200 - mov r1, #0x0 - strh r1, [r0, #0x82] -_020A6220: - mov r0, #0xc - bl FUN_020A6C38 - ldmia sp!, {r4,lr} - bx lr -_020A6230: - add r0, r2, #0x2200 - mov r2, #0x0 - strh r2, [r0, #0x82] - ldr r0, [r1, #0x0] - mov r1, #0x6 - add r0, r0, #0x2200 - strh r1, [r0, #0x80] -_020A624C: - bl FUN_020A6B28 - ldmia sp!, {r4,lr} - bx lr -_020A6258: - ldr r1, _020A63B8 ; =0x021CA86C - ldr r3, [r1, #0x0] - add r0, r3, #0x2000 - ldr r0, [r0, #0x260] - cmp r0, #0xc - bne _020A6284 - mov r0, #0x8 - bl FUN_020A6C38 - bl FUN_020A6B28 - ldmia sp!, {r4,lr} - bx lr -_020A6284: - ldrh r2, [r4, #0xa] - cmp r2, #0x1 - blo _020A632C - ldr r0, _020A63BC ; =0x000007D7 - cmp r2, r0 - bhi _020A632C - add r0, r3, #0x2200 - strh r2, [r0, #0x82] - ldr r1, [r1, #0x0] - ldr r0, _020A63C0 ; =FUN_020A5F34 - add r1, r1, #0x1500 - mov r2, #0x620 - bl WM_StartDCF - cmp r0, #0x2 - ldmeqia sp!, {r4,lr} - bxeq lr - cmp r0, #0x3 - beq _020A6300 - cmp r0, #0x8 - bne _020A6300 - mov r0, #0xc - bl FUN_020A6C38 - ldr r0, _020A63B8 ; =0x021CA86C - ldr r3, _020A63C4 ; =0x000007ED - ldr r1, [r0, #0x0] - mov r0, #0x1 - add r1, r1, #0x2140 - mov r2, #0x0 - bl FUN_020A6D3C - ldmia sp!, {r4,lr} - bx lr -_020A6300: - mov r0, #0xb - bl FUN_020A6C38 - ldr r0, _020A63B8 ; =0x021CA86C - ldr r3, _020A63C8 ; =0x000007F6 - ldr r1, [r0, #0x0] - mov r0, #0x7 - add r1, r1, #0x2140 - mov r2, #0x0 - bl FUN_020A6D3C - ldmia sp!, {r4,lr} - bx lr -_020A632C: - bl FUN_020A6B28 - ldmia sp!, {r4,lr} - bx lr -_020A6338: - mov r0, #0xb - bl FUN_020A6C38 - ldr r0, _020A63B8 ; =0x021CA86C - ldrh r2, [r4, #0x8] - ldr r0, [r0, #0x0] - ldr r3, _020A63CC ; =0x00000804 - add r1, r0, #0x2140 - mov r0, #0x7 - bl FUN_020A6D3C - ldmia sp!, {r4,lr} - bx lr -_020A6364: - ldr r0, _020A63B8 ; =0x021CA86C - ldrh r1, [r4, #0xe] - ldr r0, [r0, #0x0] - add r0, r0, #0x2200 - strh r1, [r0, #0xf8] -_020A6378: - mov r0, #0x8 - bl FUN_020A6C38 - bl FUN_020A6B28 - ldmia sp!, {r4,lr} - bx lr -_020A638C: - mov r0, #0xb - bl FUN_020A6C38 - ldr r0, _020A63B8 ; =0x021CA86C - ldr r3, _020A63D0 ; =0x0000081B - ldr r1, [r0, #0x0] - mov r0, #0x7 - add r1, r1, #0x2140 - mov r2, #0x0 - bl FUN_020A6D3C -_020A63B0: - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A63B8: .word 0x021CA86C -_020A63BC: .word 0x000007D7 -_020A63C0: .word FUN_020A5F34 -_020A63C4: .word 0x000007ED -_020A63C8: .word 0x000007F6 -_020A63CC: .word 0x00000804 -_020A63D0: .word 0x0000081B - - arm_func_start FUN_020A63D4 -FUN_020A63D4: ; 0x020A63D4 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrh r0, [r0, #0x2] - cmp r0, #0x4 - addls pc, pc, r0, lsl #0x2 - b _020A6438 -_020A63EC: - b _020A6400 -_020A63F0: - b _020A6428 -_020A63F4: - b _020A6438 -_020A63F8: - b _020A6438 -_020A63FC: - b _020A6438 -_020A6400: - mov r0, #0x3 - bl FUN_020A6C38 -_020A6408: ; 0x020A6408 - mov r0, #0x0 - ldr r3, _020A6460 ; =0x00000783 - mov r1, r0 - mov r2, r0 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A6428: - bl FUN_020A6B28 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A6438: - mov r0, #0xb - bl FUN_020A6C38 - mov r1, #0x0 - ldr r3, _020A6464 ; =0x00000793 - mov r2, r1 - mov r0, #0x7 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A6460: .word 0x00000783 -_020A6464: .word 0x00000793 - - arm_func_start FUN_020A6468 -FUN_020A6468: ; 0x020A6468 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - mov r5, r0 - ldrh r0, [r5, #0x2] - mov r4, #0x14 - cmp r0, #0x4 - addls pc, pc, r0, lsl #0x2 - b _020A6714 -_020A6488: - b _020A649C -_020A648C: - b _020A6704 -_020A6490: - b _020A6714 -_020A6494: - b _020A6714 -_020A6498: - b _020A6714 -_020A649C: - ldr r0, _020A673C ; =0x021CA86C - ldr r0, [r0, #0x0] - add r0, r0, #0x2000 - ldr r0, [r0, #0x260] - cmp r0, #0x5 - bne _020A64D0 - mov r0, #0x6 - bl FUN_020A6C38 -_020A64BC: ; 0x020A64BC - mov r0, #0x0 - ldr r3, _020A6740 ; =0x00000704 - mov r1, r0 - mov r2, r0 - bl FUN_020A6D3C -_020A64D0: - ldr r1, _020A673C ; =0x021CA86C - ldr r2, [r1, #0x0] - add r0, r2, #0x2000 - ldr r0, [r0, #0x260] - cmp r0, #0x6 - beq _020A64FC - cmp r0, #0x7 - beq _020A6674 - cmp r0, #0xd - beq _020A6684 - b _020A6694 -_020A64FC: - add r0, r2, #0x2200 - mov r2, #0x7 - strh r2, [r0, #0x80] - ldrh r0, [r5, #0x8] - cmp r0, #0x5 - bne _020A6588 - ldr r0, [r1, #0x0] - add r1, r0, #0x2200 - add r0, r0, #0x2000 - ldrh r1, [r1, #0x8c] - ldr r0, [r0, #0x288] - bl DC_InvalidateRange - ldrh r0, [r5, #0xe] - mov r4, #0x0 - cmp r0, #0x0 - ble _020A6588 - ldr r8, _020A6744 ; =0x0000071A - mov r6, r4 - mov r7, #0x7 -_020A6548: - add r0, r5, r4, lsl #0x1 - add r2, r5, r4, lsl #0x2 - ldrh r1, [r0, #0x50] - ldr r0, [r2, #0x10] - bl FUN_020A8298 - str r8, [sp, #0x0] - add r0, r5, r4, lsl #0x2 - ldr r2, [r0, #0x10] - mov r0, r7 - mov r1, r6 - mov r3, r5 - bl FUN_020A6CE0 - ldrh r0, [r5, #0xe] - add r4, r4, #0x1 - cmp r4, r0 - blt _020A6548 -_020A6588: - ldr r0, _020A673C ; =0x021CA86C - ldr r0, [r0, #0x0] - add r0, r0, #0x2000 - ldr r1, [r0, #0x264] - and r0, r1, #0xc00000 - cmp r0, #0xc00000 - bne _020A65F4 - ldr r0, _020A6748 ; =0x00003FFE - and r0, r1, r0 - bl FUN_020A5A4C - movs r1, r0 - beq _020A65F4 - ldr r0, _020A673C ; =0x021CA86C - ldr r0, [r0, #0x0] - add r0, r0, #0x2000 - ldr r6, [r0, #0x284] - mov r0, r6 - bl _u32_div_f -_020A65D0: ; 0x020A65D0 - cmp r1, #0x0 - bne _020A65F4 - ldr r4, _020A674C ; =0x00000728 - mov r1, #0x0 - mov r2, r6 - mov r3, r1 - mov r0, #0x8 - str r4, [sp, #0x0] - bl FUN_020A6CE0 -_020A65F4: - ldrh r0, [r5, #0xa] - bl FUN_020A5A70 - rsb r0, r0, #0x20 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - bl FUN_020A6D8C - ldr r1, _020A673C ; =0x021CA86C - mov r2, #0x1 - mov r2, r2, lsl r0 - ldr r0, [r1, #0x0] - mov r2, r2, asr #0x1 - add r0, r0, #0x2200 - strh r2, [r0, #0x8e] - ldr r0, [r1, #0x0] - add r1, r0, #0x2200 - add r0, r0, #0x2000 - ldrh r1, [r1, #0x8c] - ldr r0, [r0, #0x288] - bl DC_InvalidateRange - ldr r3, _020A673C ; =0x021CA86C - ldr r2, _020A6750 ; =0x00002288 - ldr r1, [r3, #0x0] - ldr r0, _020A6754 ; =FUN_020A6468 - add r1, r1, #0x2000 - ldr r4, [r1, #0x284] - add r4, r4, #0x1 - str r4, [r1, #0x284] - ldr r1, [r3, #0x0] - add r1, r1, r2 - bl WM_StartScanEx - mov r4, r0 - b _020A6694 -_020A6674: - ldr r0, _020A6758 ; =FUN_020A63D4 - bl WM_EndScan - mov r4, r0 - b _020A6694 -_020A6684: - bl FUN_020A6B28 - add sp, sp, #0x8 - ldmia sp!, {r4-r8,lr} - bx lr -_020A6694: - cmp r4, #0x2 - addeq sp, sp, #0x8 - ldmeqia sp!, {r4-r8,lr} - bxeq lr - cmp r4, #0x3 - beq _020A66DC - cmp r4, #0x8 - bne _020A66DC - mov r0, #0xc - bl FUN_020A6C38 - mov r1, #0x0 - ldr r3, _020A675C ; =0x00000753 - mov r2, r1 - mov r0, #0x1 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4-r8,lr} - bx lr -_020A66DC: - mov r0, #0xb - bl FUN_020A6C38 - mov r1, #0x0 - ldr r3, _020A6760 ; =0x0000075C - mov r2, r1 - mov r0, #0x7 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4-r8,lr} - bx lr -_020A6704: - bl FUN_020A6B28 - add sp, sp, #0x8 - ldmia sp!, {r4-r8,lr} - bx lr -_020A6714: - mov r0, #0xb - bl FUN_020A6C38 - mov r1, #0x0 - ldr r3, _020A6764 ; =0x0000076D - mov r2, r1 - mov r0, #0x7 - bl FUN_020A6D3C - add sp, sp, #0x8 - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_020A673C: .word 0x021CA86C -_020A6740: .word 0x00000704 -_020A6744: .word 0x0000071A -_020A6748: .word 0x00003FFE -_020A674C: .word 0x00000728 -_020A6750: .word 0x00002288 -_020A6754: .word FUN_020A6468 -_020A6758: .word FUN_020A63D4 -_020A675C: .word 0x00000753 -_020A6760: .word 0x0000075C -_020A6764: .word 0x0000076D - - arm_func_start FUN_020A6768 -FUN_020A6768: ; 0x020A6768 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrh r1, [r0, #0x2] - mov r2, #0x14 - cmp r1, #0x4 - addls pc, pc, r1, lsl #0x2 - b _020A6A0C -_020A6784: - b _020A6798 -_020A6788: - b _020A69CC -_020A678C: - b _020A6A0C -_020A6790: - b _020A6A0C -_020A6794: - b _020A6A0C -_020A6798: - ldrh r0, [r0, #0x0] - cmp r0, #0x19 - bgt _020A67D4 - cmp r0, #0x19 - bge _020A68B4 - cmp r0, #0x6 - addls pc, pc, r0, lsl #0x2 - b _020A692C -_020A67B8: - b _020A692C -_020A67BC: - b _020A692C -_020A67C0: - b _020A692C -_020A67C4: - b _020A67F4 -_020A67C8: - b _020A6804 -_020A67CC: - b _020A6868 -_020A67D0: - b _020A6890 -_020A67D4: - cmp r0, #0x1d - bgt _020A67E8 - cmp r0, #0x1d - beq _020A68A0 - b _020A692C -_020A67E8: - cmp r0, #0x27 - beq _020A68DC - b _020A692C -_020A67F4: - ldr r0, _020A6A4C ; =FUN_020A6768 - bl WM_PowerOn - mov r2, r0 - b _020A692C -_020A6804: - bl WM_Finish -_020A6808: ; 0x020A6808 - cmp r0, #0x0 - beq _020A6818 - cmp r0, #0x4 - b _020A6840 -_020A6818: - mov r0, #0x1 - bl FUN_020A6C38 -_020A6820: ; 0x020A6820 - mov r0, #0x0 - ldr r3, _020A6A50 ; =0x00000663 - mov r1, r0 - mov r2, r0 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A6840: - mov r0, #0xb - bl FUN_020A6C38 - mov r1, #0x0 - ldr r3, _020A6A54 ; =0x0000066C - mov r2, r1 - mov r0, #0x7 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A6868: - mov r0, #0x3 - bl FUN_020A6C38 -_020A6870: ; 0x020A6870 - mov r0, #0x0 - ldr r3, _020A6A58 ; =0x00000673 - mov r1, r0 - mov r2, r0 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A6890: - ldr r0, _020A6A4C ; =FUN_020A6768 - bl WM_Disable - mov r2, r0 - b _020A692C -_020A68A0: - ldr r0, _020A6A4C ; =FUN_020A6768 - mov r1, #0x0 - bl WM_SetBeaconIndication - mov r2, r0 - b _020A692C -_020A68B4: - ldr r1, _020A6A5C ; =0x021CA86C - ldr r0, _020A6A4C ; =FUN_020A6768 - ldr r3, [r1, #0x0] - add r2, r3, #0x2000 - ldrb r1, [r2, #0x250] - ldrb r2, [r2, #0x251] - add r3, r3, #0x2200 - bl WM_SetWEPKeyEx - mov r2, r0 - b _020A692C -_020A68DC: - ldr r0, _020A6A5C ; =0x021CA86C - ldr r2, [r0, #0x0] - add r0, r2, #0x2000 - ldr r1, [r0, #0x264] - and r0, r1, #0xc0000 - cmp r0, #0xc0000 - moveq r0, #0x1 - movne r0, #0x0 - mov r0, r0, lsl #0x10 - mov r12, r0, lsr #0x10 - and r1, r1, #0x30000 - cmp r1, #0x30000 - movne r3, #0x1 - add r1, r2, #0x2140 - ldr r0, _020A6A60 ; =FUN_020A6144 - moveq r3, #0x0 - mov r2, #0x0 - str r12, [sp, #0x0] - bl WM_StartConnectEx - mov r2, r0 -_020A692C: - cmp r2, #0x2 - addeq sp, sp, #0x4 - ldmeqia sp!, {lr} - bxeq lr - cmp r2, #0x3 - beq _020A698C - cmp r2, #0x8 - bne _020A698C - mov r0, #0xc - bl FUN_020A6C38 - ldr r0, _020A6A5C ; =0x021CA86C - ldr r3, _020A6A64 ; =0x000006AF - ldr r1, [r0, #0x0] - mov r2, #0x0 - add r0, r1, #0x2200 - ldrsh r0, [r0, #0x80] - cmp r0, #0x5 - addeq r1, r1, #0x2140 - movne r1, #0x0 - mov r0, #0x1 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A698C: - mov r0, #0xb - bl FUN_020A6C38 - ldr r0, _020A6A5C ; =0x021CA86C - ldr r3, _020A6A68 ; =0x000006B8 - ldr r1, [r0, #0x0] - mov r2, #0x0 - add r0, r1, #0x2200 - ldrsh r0, [r0, #0x80] - cmp r0, #0x5 - addeq r1, r1, #0x2140 - movne r1, #0x0 - mov r0, #0x7 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A69CC: - mov r0, #0xc - bl FUN_020A6C38 - ldr r0, _020A6A5C ; =0x021CA86C - ldr r3, _020A6A6C ; =0x000006DE - ldr r1, [r0, #0x0] - mov r2, #0x0 - add r0, r1, #0x2200 - ldrsh r0, [r0, #0x80] - cmp r0, #0x5 - addeq r1, r1, #0x2140 - movne r1, #0x0 - mov r0, #0x1 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A6A0C: - mov r0, #0xb - bl FUN_020A6C38 - ldr r0, _020A6A5C ; =0x021CA86C - ldr r3, _020A6A70 ; =0x000006E8 - ldr r1, [r0, #0x0] - mov r2, #0x0 - add r0, r1, #0x2200 - ldrsh r0, [r0, #0x80] - cmp r0, #0x5 - addeq r1, r1, #0x2140 - movne r1, #0x0 - mov r0, #0x7 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A6A4C: .word FUN_020A6768 -_020A6A50: .word 0x00000663 -_020A6A54: .word 0x0000066C -_020A6A58: .word 0x00000673 -_020A6A5C: .word 0x021CA86C -_020A6A60: .word FUN_020A6144 -_020A6A64: .word 0x000006AF -_020A6A68: .word 0x000006B8 -_020A6A6C: .word 0x000006DE -_020A6A70: .word 0x000006E8 - - arm_func_start FUN_020A6A74 -FUN_020A6A74: ; 0x020A6A74 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrh r1, [r0, #0x2] - cmp r1, #0x8 - addne sp, sp, #0x4 - ldmneia sp!, {lr} - bxne lr - ldrh r1, [r0, #0x4] - cmp r1, #0x16 - addne sp, sp, #0x4 - ldmneia sp!, {lr} - bxne lr - ldrh r0, [r0, #0x6] - cmp r0, #0x25 - addne sp, sp, #0x4 - ldmneia sp!, {lr} - bxne lr - ldr r0, _020A6B24 ; =0x021CA86C - ldr r0, [r0, #0x0] - add r0, r0, #0x2000 - ldr r0, [r0, #0x260] - sub r0, r0, #0x8 - cmp r0, #0x4 - addls pc, pc, r0, lsl #0x2 - b _020A6B18 -_020A6AD8: - b _020A6AEC -_020A6ADC: - b _020A6B00 -_020A6AE0: - b _020A6B10 -_020A6AE4: - b _020A6B18 -_020A6AE8: - b _020A6B00 -_020A6AEC: - mov r0, #0xc - bl FUN_020A6C38 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A6B00: - bl FUN_020A6B28 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A6B10: - mov r0, #0xc - bl FUN_020A6C38 -_020A6B18: - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A6B24: .word 0x021CA86C - - arm_func_start FUN_020A6B28 -FUN_020A6B28: ; 0x020A6B28 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _020A6B98 ; =0x021CA86C - ldr r0, [r0, #0x0] - add r1, r0, #0x2000 - ldrb r0, [r1, #0x26b] - cmp r0, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {lr} - bxne lr - ldr r0, _020A6B9C ; =FUN_020A5A78 - mov r2, #0x1 - strb r2, [r1, #0x26b] - bl WM_Reset - cmp r0, #0x2 - addeq sp, sp, #0x4 - ldmeqia sp!, {lr} - bxeq lr - mov r0, #0xb - bl FUN_020A6C38 - mov r1, #0x0 - mov r2, r1 - mov r0, #0x7 - mov r3, #0x610 - bl FUN_020A6D3C - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A6B98: .word 0x021CA86C -_020A6B9C: .word FUN_020A5A78 - - arm_func_start FUN_020A6BA0 -FUN_020A6BA0: ; 0x020A6BA0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_020A88A8 - bl FUN_020A6BBC - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_020A6BBC -FUN_020A6BBC: ; 0x020A6BBC - stmdb sp!, {r4,lr} - sub sp, sp, #0x8 - bl OS_DisableInterrupts - ldr r2, _020A6C28 ; =0x021CA86C - ldr r1, _020A6C2C ; =0x000022CC - ldr r2, [r2, #0x0] - mov r4, r0 - add r0, r2, r1 - bl OS_CancelAlarm - ldr r0, _020A6C28 ; =0x021CA86C - ldr r12, [r0, #0x0] - add r0, r12, #0x2000 - ldr r0, [r0, #0x260] - cmp r0, #0x9 - bne _020A6C14 - ldr r0, _020A6C2C ; =0x000022CC - ldr r1, _020A6C30 ; =0x022F5341 - mov r2, #0x0 - ldr r3, _020A6C34 ; =FUN_020A6BA0 - add r0, r12, r0 - str r2, [sp, #0x0] - bl OS_SetAlarm -_020A6C14: - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x8 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A6C28: .word 0x021CA86C -_020A6C2C: .word 0x000022CC -_020A6C30: .word 0x022F5341 -_020A6C34: .word FUN_020A6BA0 - - arm_func_start FUN_020A6C38 -FUN_020A6C38: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - bl OS_DisableInterrupts - ldr r1, _020A6CD0 ; =0x021CA86C - mov r4, r0 - ldr r1, [r1, #0x0] - add r0, r1, #0x2000 - ldr r0, [r0, #0x260] - cmp r0, #0x9 - bne _020A6C78 - cmp r5, #0x9 - beq _020A6C78 - ldr r0, _020A6CD4 ; =0x000022CC - add r0, r1, r0 - bl OS_CancelAlarm -_020A6C78: - ldr r0, _020A6CD0 ; =0x021CA86C - ldr r0, [r0, #0x0] - add r0, r0, #0x2000 - ldr r1, [r0, #0x260] - cmp r1, #0xb - strne r5, [r0, #0x260] - cmp r5, #0x9 - bne _020A6CBC - mov r2, #0x0 - ldr r0, _020A6CD0 ; =0x021CA86C - str r2, [sp, #0x0] - ldr r5, [r0, #0x0] - ldr r0, _020A6CD4 ; =0x000022CC - ldr r1, _020A6CD8 ; =0x022F5341 - ldr r3, _020A6CDC ; =FUN_020A6BA0 - add r0, r5, r0 - bl OS_SetAlarm -_020A6CBC: - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020A6CD0: .word 0x021CA86C -_020A6CD4: .word 0x000022CC -_020A6CD8: .word 0x022F5341 -_020A6CDC: .word FUN_020A6BA0 - - arm_func_start FUN_020A6CE0 -FUN_020A6CE0: ; 0x020A6CE0 - stmdb sp!, {lr} - sub sp, sp, #0x14 - ldr ip, _020A6D38 ; =0x021CA86C - ldr r12, [r12, #0x0] - add r12, r12, #0x2000 - ldr lr, [r12, #0x27c] - cmp lr, #0x0 - addeq sp, sp, #0x14 - ldmeqia sp!, {lr} - bxeq lr - ldr lr, [sp, #0x18] - strh r0, [sp, #0x0] - str r2, [sp, #0x4] - str r3, [sp, #0x8] - str lr, [sp, #0xc] - strh r1, [sp, #0x2] - ldr r1, [r12, #0x27c] - add r0, sp, #0x0 - blx r1 - add sp, sp, #0x14 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A6D38: .word 0x021CA86C - - arm_func_start FUN_020A6D3C -FUN_020A6D3C: ; 0x020A6D3C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr ip, _020A6D88 ; =0x021CA86C - mov r5, r0 - ldr r0, [r12, #0x0] - mov r4, r1 - add r1, r0, #0x2200 - ldrsh r0, [r1, #0x80] - mov r12, #0x0 - mov lr, r2 - strh r12, [r1, #0x80] - str r3, [sp, #0x0] - mov r1, r5 - mov r2, r4 - mov r3, lr - bl FUN_020A6CE0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020A6D88: .word 0x021CA86C - - arm_func_start FUN_020A6D8C -FUN_020A6D8C: ; 0x020A6D8C - stmdb sp!, {r4-r6,lr} - ldr r1, _020A6E24 ; =0x021CA86C - mov r2, r0 - ldr r1, [r1, #0x0] - mov r3, #0x0 - add r1, r1, #0x2000 - ldr r1, [r1, #0x264] - mov r6, #0x1 - ldr r5, _020A6E28 ; =0x4EC4EC4F - ldr r4, _020A6E2C ; =0x0000000D -_020A6DB4: - smull r12, lr, r5, r2 - mov lr, lr, asr #0x2 - mov r12, r2, lsr #0x1f - add lr, r12, lr - smull r12, lr, r4, lr - sub lr, r2, r12 - add r12, lr, #0x1 - mov r12, r6, lsl r12 - ands r12, r1, r12 - bne _020A6DEC - add r3, r3, #0x1 - cmp r3, #0xd - add r2, r2, #0x1 - blt _020A6DB4 -_020A6DEC: - ldr r1, _020A6E28 ; =0x4EC4EC4F - add r3, r0, r3 - smull r0, r4, r1, r3 - mov r4, r4, asr #0x2 - mov r0, r3, lsr #0x1f - ldr r2, _020A6E2C ; =0x0000000D - add r4, r0, r4 - smull r0, r1, r2, r4 - sub r4, r3, r0 - add r0, r4, #0x1 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A6E24: .word 0x021CA86C -_020A6E28: .word 0x4EC4EC4F -_020A6E2C: .word 0x0000000D - - arm_func_start FUN_020A6E30 -FUN_020A6E30: ; 0x020A6E30 - ldr r0, _020A6E48 ; =0x021CA86C - ldr r1, _020A6E4C ; =0x00AAA082 - ldr r0, [r0, #0x0] - add r0, r0, #0x2000 - str r1, [r0, #0x264] - bx lr - .balign 4 -_020A6E48: .word 0x021CA86C -_020A6E4C: .word 0x00AAA082 - - arm_func_start FUN_020A6E50 -FUN_020A6E50: ; 0x020A6E50 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r0, r2 - mov r4, r1 - bl FUN_020A7148 - ldr r2, _020A6FF4 ; =0x021CA86C - mov r3, #0x400 - ldr r1, [r2, #0x0] - mov r0, #0x0 - add r12, r1, #0x1500 - add r1, r1, #0x2000 - str r12, [r1, #0x288] - ldr r1, [r2, #0x0] - add r1, r1, #0x2200 - strh r3, [r1, #0x8c] - bl FUN_020A6D8C - ldr r1, _020A6FF4 ; =0x021CA86C - mov r2, #0x1 - mov r2, r2, lsl r0 - ldr r0, [r1, #0x0] - mov r2, r2, asr #0x1 - add r0, r0, #0x2200 - strh r2, [r0, #0x8e] - ldr r0, [r1, #0x0] - add r0, r0, #0x2200 - ldrh r0, [r0, #0x68] - cmp r0, #0x0 - bne _020A6EC8 - bl WM_GetDispersionScanPeriod -_020A6EC8: - ldr r2, _020A6FF4 ; =0x021CA86C - ldr r1, [r2, #0x0] - add r1, r1, #0x2200 - strh r0, [r1, #0x90] - ldr r1, [r2, #0x0] - add r0, r1, #0x2000 - ldr r0, [r0, #0x264] - and r0, r0, #0x300000 - cmp r0, #0x300000 - movne r2, #0x1 - moveq r2, #0x0 - add r0, r1, #0x2200 - strh r2, [r0, #0x98] - cmp r5, #0x0 - bne _020A6F24 - ldr r0, _020A6FF4 ; =0x021CA86C - ldr r1, _020A6FF8 ; =0x00002292 - ldr r2, [r0, #0x0] - ldr r0, _020A6FFC ; =0x020FF590 - add r1, r2, r1 - mov r2, #0x6 - bl MI_CpuCopy8 - b _020A6F40 -_020A6F24: - ldr r0, _020A6FF4 ; =0x021CA86C - ldr r1, _020A6FF8 ; =0x00002292 - ldr r2, [r0, #0x0] - mov r0, r5 - add r1, r2, r1 - mov r2, #0x6 - bl MI_CpuCopy8 -_020A6F40: - cmp r4, #0x0 - beq _020A6F54 - ldr r0, _020A7000 ; =0x020FF598 - cmp r4, r0 - bne _020A6F88 -_020A6F54: - ldr r0, _020A6FF4 ; =0x021CA86C - ldr r1, _020A7004 ; =0x0000229C - ldr r2, [r0, #0x0] - ldr r0, _020A7000 ; =0x020FF598 - add r1, r2, r1 - mov r2, #0x20 - bl MI_CpuCopy8 - ldr r0, _020A6FF4 ; =0x021CA86C - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, r0, #0x2200 - strh r1, [r0, #0x9a] - b _020A6FD4 -_020A6F88: - ldr r0, _020A6FF4 ; =0x021CA86C - ldr r1, _020A7004 ; =0x0000229C - ldr r2, [r0, #0x0] - mov r0, r4 - add r1, r2, r1 - mov r2, #0x20 - bl MI_CpuCopy8 - mov r1, #0x0 -_020A6FA8: - ldrb r0, [r4, #0x0] - cmp r0, #0x0 - beq _020A6FC4 - add r1, r1, #0x1 - cmp r1, #0x20 - add r4, r4, #0x1 - blt _020A6FA8 -_020A6FC4: - ldr r0, _020A6FF4 ; =0x021CA86C - ldr r0, [r0, #0x0] - add r0, r0, #0x2200 - strh r1, [r0, #0x9a] -_020A6FD4: - ldr r0, _020A6FF4 ; =0x021CA86C - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, r0, #0x2000 - str r1, [r0, #0x284] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020A6FF4: .word 0x021CA86C -_020A6FF8: .word 0x00002292 -_020A6FFC: .word 0x020FF590 -_020A7000: .word 0x020FF598 -_020A7004: .word 0x0000229C - - arm_func_start FUN_020A7008 -FUN_020A7008: ; 0x020A7008 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - movs r5, r0 - mov r4, r1 - bne _020A705C - ldr r1, _020A7134 ; =0x021CA86C - mov r3, #0x3 - ldr r0, [r1, #0x0] - mov r2, #0x0 - add r0, r0, #0x2000 - str r3, [r0, #0x26c] - ldr r0, [r1, #0x0] - add r0, r0, #0x2000 - str r2, [r0, #0x270] - ldr r0, [r1, #0x0] - add r0, r0, #0x2000 - str r2, [r0, #0x274] - ldr r0, [r1, #0x0] - add r0, r0, #0x2000 - str r2, [r0, #0x278] - b _020A7118 -_020A705C: - ldr r1, _020A7134 ; =0x021CA86C - ldr r2, [r5, #0x0] - ldr r0, [r1, #0x0] - and r2, r2, #0x3 - add r0, r0, #0x2000 - str r2, [r0, #0x26c] - ldr r3, [r5, #0x4] - ldr r0, [r5, #0x8] - and r2, r3, #0x3 - rsb r2, r2, #0x4 - and r2, r2, #0x3 - add r2, r2, #0xc - cmp r2, r0 - bls _020A70B4 - ldr r0, [r1, #0x0] - mov r2, #0x0 - add r0, r0, #0x2000 - str r2, [r0, #0x270] - ldr r0, [r1, #0x0] - add r0, r0, #0x2000 - str r2, [r0, #0x274] - b _020A7104 -_020A70B4: - ldr r0, [r1, #0x0] - add r2, r3, #0x3 - bic r2, r2, #0x3 - add r0, r0, #0x2000 - str r2, [r0, #0x270] - ldr r2, [r5, #0x4] - ldr r0, [r1, #0x0] - and r2, r2, #0x3 - rsb r2, r2, #0x4 - ldr r3, [r5, #0x8] - and r2, r2, #0x3 - sub r2, r3, r2 - add r0, r0, #0x2000 - str r2, [r0, #0x274] - ldr r0, [r1, #0x0] - mov r1, #0x0 - add r2, r0, #0x2000 - ldr r0, [r2, #0x270] - ldr r2, [r2, #0x274] - bl MI_CpuFill8 -_020A7104: - ldr r0, _020A7134 ; =0x021CA86C - ldr r1, [r5, #0xc] - ldr r0, [r0, #0x0] - add r0, r0, #0x2000 - str r1, [r0, #0x278] -_020A7118: - ldr r0, _020A7134 ; =0x021CA86C - ldr r0, [r0, #0x0] - add r0, r0, #0x2000 - str r4, [r0, #0x27c] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020A7134: .word 0x021CA86C - - arm_func_start FUN_020A7138 -FUN_020A7138: - ldr r0, _020A7144 ; =0x021CA86C - ldr r0, [r0, #0x0] - bx lr - .balign 4 -_020A7144: .word 0x021CA86C - - arm_func_start FUN_020A7148 -FUN_020A7148: ; 0x020A7148 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - bl OS_DisableInterrupts - ldr r1, _020A71EC ; =0x021CA86C - mov r2, #0x0 - ldr r1, [r1, #0x0] - add r3, r1, #0x2000 - cmp r1, #0x0 - ldr r4, [r3, #0x264] - bne _020A7188 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r5,lr} - bx lr -_020A7188: - ands r3, r5, #0x8000 - beq _020A71A4 - ldr r3, _020A71F0 ; =0x00003FFE - orr r2, r2, r3 - ands r3, r5, r3 - ldreq r3, _020A71F4 ; =0x0000A082 - orreq r5, r5, r3 -_020A71A4: - ands r3, r5, #0x20000 - orrne r2, r2, #0x10000 - ands r3, r5, #0x80000 - orrne r2, r2, #0x40000 - ands r3, r5, #0x200000 - orrne r2, r2, #0x100000 - ands r3, r5, #0x800000 - orrne r2, r2, #0x400000 - mvn r2, r2 - and r2, r4, r2 - orr r2, r5, r2 - add r1, r1, #0x2000 - str r2, [r1, #0x264] - bl OS_RestoreInterrupts - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020A71EC: .word 0x021CA86C -_020A71F0: .word 0x00003FFE -_020A71F4: .word 0x0000A082 - - arm_func_start FUN_020A71F8 -FUN_020A71F8: ; 0x020A71F8 - stmdb sp!, {r4,lr} - bl OS_DisableInterrupts - ldr r1, _020A7228 ; =0x021CA86C - mov r4, #0x0 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - addne r1, r1, #0x2000 - ldrne r4, [r1, #0x260] - bl OS_RestoreInterrupts - mov r0, r4 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A7228: .word 0x021CA86C - - arm_func_start FUN_020A722C -FUN_020A722C: ; 0x020A722C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - bl OS_DisableInterrupts - ldr r1, _020A747C ; =0x021CA86C - mov r4, r0 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - bne _020A7260 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r5,lr} - bx lr -_020A7260: - add r1, r1, #0x2000 - ldr r2, [r1, #0x260] - cmp r2, #0xd - addls pc, pc, r2, lsl #0x2 - b _020A7308 -_020A7274: - b _020A7308 -_020A7278: - b _020A72C0 -_020A727C: - b _020A7308 -_020A7280: - b _020A7320 -_020A7284: - b _020A7308 -_020A7288: - b _020A7308 -_020A728C: - b _020A72D4 -_020A7290: - b _020A7308 -_020A7294: - b _020A7308 -_020A7298: - b _020A7320 -_020A729C: - b _020A7308 -_020A72A0: - b _020A7308 -_020A72A4: - b _020A7320 -_020A72A8: - b _020A72AC -_020A72AC: - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x2 - ldmia sp!, {r4-r5,lr} - bx lr -_020A72C0: - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r5,lr} - bx lr -_020A72D4: - mov r0, #0xd - bl FUN_020A6C38 - ldr r1, _020A747C ; =0x021CA86C - mov r0, r4 - ldr r1, [r1, #0x0] - mov r2, #0x9 - add r1, r1, #0x2200 - strh r2, [r1, #0x80] - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x3 - ldmia sp!, {r4-r5,lr} - bx lr -_020A7308: - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r5,lr} - bx lr -_020A7320: - ldrb r0, [r1, #0x26b] - cmp r0, #0x1 - bne _020A734C - mov r0, #0xd - bl FUN_020A6C38 - ldr r0, _020A747C ; =0x021CA86C - mov r1, #0x9 - ldr r0, [r0, #0x0] - add r0, r0, #0x2200 - strh r1, [r0, #0x80] - b _020A7464 -_020A734C: - bl WMi_GetStatusAddress - mov r5, r0 - mov r1, #0x2 - bl DC_InvalidateRange - ldrh r0, [r5, #0x0] - cmp r0, #0x0 - beq _020A737C - cmp r0, #0x1 - beq _020A73BC - cmp r0, #0x2 - beq _020A73C8 - b _020A73D4 -_020A737C: - bl WM_Finish -_020A7380: ; 0x020A7380 - cmp r0, #0x0 - bne _020A73F0 - mov r0, #0x1 - bl FUN_020A6C38 - ldr r1, _020A747C ; =0x021CA86C - mov r0, r4 - ldr r1, [r1, #0x0] - mov r2, #0x0 - add r1, r1, #0x2200 - strh r2, [r1, #0x80] - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r5,lr} - bx lr -_020A73BC: - ldr r0, _020A7480 ; =FUN_020A6768 - bl WM_Disable - b _020A73F0 -_020A73C8: - ldr r0, _020A7480 ; =FUN_020A6768 - bl WM_PowerOff - b _020A73F0 -_020A73D4: - ldr r1, _020A747C ; =0x021CA86C - ldr r0, _020A7484 ; =FUN_020A5A78 - ldr r1, [r1, #0x0] - mov r2, #0x1 - add r1, r1, #0x2000 - strb r2, [r1, #0x26b] - bl WM_Reset -_020A73F0: - cmp r0, #0x2 - beq _020A740C - cmp r0, #0x3 - beq _020A7444 - cmp r0, #0x8 - beq _020A742C - b _020A7444 -_020A740C: - mov r0, #0xd - bl FUN_020A6C38 - ldr r0, _020A747C ; =0x021CA86C - mov r1, #0x9 - ldr r0, [r0, #0x0] - add r0, r0, #0x2200 - strh r1, [r0, #0x80] - b _020A7464 -_020A742C: - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr -_020A7444: - mov r0, #0xb - bl FUN_020A6C38 - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x7 - ldmia sp!, {r4-r5,lr} - bx lr -_020A7464: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x3 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020A747C: .word 0x021CA86C -_020A7480: .word FUN_020A6768 -_020A7484: .word FUN_020A5A78 - - arm_func_start FUN_020A7488 -FUN_020A7488: ; 0x020A7488 - stmdb sp!, {r4,lr} - bl OS_DisableInterrupts - ldr r1, _020A75B8 ; =0x021CA86C - mov r4, r0 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - bne _020A74B4 - bl OS_RestoreInterrupts - mov r0, #0x1 - ldmia sp!, {r4,lr} - bx lr -_020A74B4: - add r1, r1, #0x2000 - ldr r2, [r1, #0x260] - cmp r2, #0x3 - beq _020A74E4 - cmp r2, #0x9 - beq _020A7504 - cmp r2, #0xa - bne _020A74F4 - bl OS_RestoreInterrupts - mov r0, #0x2 - ldmia sp!, {r4,lr} - bx lr -_020A74E4: - bl OS_RestoreInterrupts -_020A74E8: ; 0x020A74E8 - mov r0, #0x0 - ldmia sp!, {r4,lr} - bx lr -_020A74F4: - bl OS_RestoreInterrupts - mov r0, #0x1 - ldmia sp!, {r4,lr} - bx lr -_020A7504: - ldrb r0, [r1, #0x26b] - cmp r0, #0x1 - bne _020A7530 - mov r0, #0xa - bl FUN_020A6C38 - ldr r0, _020A75B8 ; =0x021CA86C - mov r1, #0x6 - ldr r0, [r0, #0x0] - add r0, r0, #0x2200 - strh r1, [r0, #0x80] - b _020A75A4 -_020A7530: - ldr r0, _020A75BC ; =FUN_020A5DDC - bl WM_EndDCF - cmp r0, #0x2 - beq _020A7554 - cmp r0, #0x3 - beq _020A7588 - cmp r0, #0x8 - beq _020A7574 - b _020A7588 -_020A7554: - mov r0, #0xa - bl FUN_020A6C38 - ldr r0, _020A75B8 ; =0x021CA86C - mov r1, #0x6 - ldr r0, [r0, #0x0] - add r0, r0, #0x2200 - strh r1, [r0, #0x80] - b _020A75A4 -_020A7574: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x4 - ldmia sp!, {r4,lr} - bx lr -_020A7588: - mov r0, #0xb - bl FUN_020A6C38 - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x7 - ldmia sp!, {r4,lr} - bx lr -_020A75A4: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x3 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A75B8: .word 0x021CA86C -_020A75BC: .word FUN_020A5DDC - - arm_func_start FUN_020A75C0 -FUN_020A75C0: ; 0x020A75C0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - mov r6, r1 - mov r5, r2 - bl OS_DisableInterrupts - ldr r2, _020A7814 ; =0x021CA86C - mov r4, r0 - ldr r12, [r2, #0x0] - cmp r12, #0x0 - bne _020A7600 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r7,lr} - bx lr -_020A7600: - add r1, r12, #0x2000 - ldr r3, [r1, #0x260] - cmp r3, #0x3 - beq _020A7624 - cmp r3, #0x8 - beq _020A7734 - cmp r3, #0x9 - beq _020A7748 - b _020A775C -_020A7624: - cmp r7, #0x0 - bne _020A7640 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r7,lr} - bx lr -_020A7640: - ldrh r3, [r7, #0x3c] - cmp r3, #0x0 - beq _020A7660 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r7,lr} - bx lr -_020A7660: - cmp r6, #0x0 - beq _020A76E8 - ldrb r3, [r6, #0x0] - cmp r3, #0x4 - bhs _020A7680 - ldrb r0, [r6, #0x1] - cmp r0, #0x4 - blo _020A7698 -_020A7680: - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r7,lr} - bx lr -_020A7698: - strb r3, [r1, #0x250] - ldr r0, [r2, #0x0] - ldrb r1, [r6, #0x1] - add r0, r0, #0x2000 - strb r1, [r0, #0x251] - ldr r1, [r2, #0x0] - add r0, r1, #0x2000 - ldrb r0, [r0, #0x250] - cmp r0, #0x0 - bne _020A76D4 - add r0, r1, #0x2200 - mov r1, #0x0 - mov r2, #0x50 - bl MI_CpuFill8 - b _020A76F8 -_020A76D4: - add r0, r6, #0x2 - add r1, r1, #0x2200 - mov r2, #0x50 - bl MI_CpuCopy8 - b _020A76F8 -_020A76E8: - add r0, r12, #0x2200 - mov r1, #0x0 - mov r2, #0x52 - bl MI_CpuFill8 -_020A76F8: - ldr r1, _020A7814 ; =0x021CA86C - mov r0, r7 - ldr r1, [r1, #0x0] - mov r2, #0xc0 - add r1, r1, #0x2140 - bl MI_CpuCopy8 - ldr r1, _020A7814 ; =0x021CA86C - mov r0, r5 - ldr r1, [r1, #0x0] - add r1, r1, #0x2100 - ldrh r2, [r1, #0x6e] - orr r2, r2, #0x3 - strh r2, [r1, #0x70] - bl FUN_020A7148 - b _020A7770 -_020A7734: - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x2 - ldmia sp!, {r4-r7,lr} - bx lr -_020A7748: - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r7,lr} - bx lr -_020A775C: - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r7,lr} - bx lr -_020A7770: - ldr r1, _020A7818 ; =0x0000FFFF - ldr r0, _020A781C ; =FUN_020A6768 - mov r3, r1 - mov r2, #0x50 - str r1, [sp, #0x0] - bl WM_SetLifeTime - cmp r0, #0x2 - beq _020A77A4 - cmp r0, #0x3 - beq _020A77DC - cmp r0, #0x8 - beq _020A77C4 - b _020A77DC -_020A77A4: - mov r0, #0x8 - bl FUN_020A6C38 - ldr r0, _020A7814 ; =0x021CA86C - mov r1, #0x5 - ldr r0, [r0, #0x0] - add r0, r0, #0x2200 - strh r1, [r0, #0x80] - b _020A77FC -_020A77C4: - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr -_020A77DC: - mov r0, #0xb - bl FUN_020A6C38 - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x7 - ldmia sp!, {r4-r7,lr} - bx lr -_020A77FC: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x3 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_020A7814: .word 0x021CA86C -_020A7818: .word 0x0000FFFF -_020A781C: .word FUN_020A6768 - - arm_func_start FUN_020A7820 -FUN_020A7820: ; 0x020A7820 - stmdb sp!, {r4,lr} - bl OS_DisableInterrupts - ldr r1, _020A78D4 ; =0x021CA86C - mov r4, r0 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - bne _020A784C - bl OS_RestoreInterrupts - mov r0, #0x1 - ldmia sp!, {r4,lr} - bx lr -_020A784C: - add r1, r1, #0x2000 - ldr r1, [r1, #0x260] - cmp r1, #0x3 - beq _020A78A0 - cmp r1, #0x6 - beq _020A7870 - cmp r1, #0x7 - beq _020A7890 - b _020A78B0 -_020A7870: - mov r0, #0x7 - bl FUN_020A6C38 - ldr r0, _020A78D4 ; =0x021CA86C - mov r1, #0x4 - ldr r0, [r0, #0x0] - add r0, r0, #0x2200 - strh r1, [r0, #0x80] - b _020A78C0 -_020A7890: - bl OS_RestoreInterrupts - mov r0, #0x2 - ldmia sp!, {r4,lr} - bx lr -_020A78A0: - bl OS_RestoreInterrupts -_020A78A4: ; 0x020A78A4 - mov r0, #0x0 - ldmia sp!, {r4,lr} - bx lr -_020A78B0: - bl OS_RestoreInterrupts - mov r0, #0x1 - ldmia sp!, {r4,lr} - bx lr -_020A78C0: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x3 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A78D4: .word 0x021CA86C - - arm_func_start FUN_020A78D8 -FUN_020A78D8: ; 0x020A78D8 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, r0 - mov r6, r1 - mov r5, r2 - bl OS_DisableInterrupts - ldr r1, _020A7A84 ; =0x021CA86C - mov r4, r0 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - bne _020A7918 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r7,lr} - bx lr -_020A7918: - add r1, r1, #0x2000 - ldr r1, [r1, #0x260] - cmp r1, #0x3 - beq _020A79A0 - cmp r1, #0x5 - beq _020A793C - cmp r1, #0x6 - beq _020A7964 - b _020A798C -_020A793C: - mov r0, r7 - mov r1, r6 - mov r2, r5 - bl FUN_020A6E50 - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x2 - ldmia sp!, {r4-r7,lr} - bx lr -_020A7964: - mov r0, r7 - mov r1, r6 - mov r2, r5 - bl FUN_020A6E50 - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r7,lr} - bx lr -_020A798C: - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r7,lr} - bx lr -_020A79A0: - mov r0, r7 - mov r1, r6 - mov r2, r5 - bl FUN_020A6E50 - ldr r0, _020A7A84 ; =0x021CA86C - ldr r0, [r0, #0x0] - add r1, r0, #0x2200 - add r0, r0, #0x2000 - ldrh r1, [r1, #0x8c] - ldr r0, [r0, #0x288] - bl DC_InvalidateRange - ldr r3, _020A7A84 ; =0x021CA86C - ldr r2, _020A7A88 ; =0x00002288 - ldr r1, [r3, #0x0] - ldr r0, _020A7A8C ; =FUN_020A6468 - add r1, r1, #0x2000 - ldr r5, [r1, #0x284] - add r5, r5, #0x1 - str r5, [r1, #0x284] - ldr r1, [r3, #0x0] - add r1, r1, r2 - bl WM_StartScanEx - cmp r0, #0x2 - beq _020A7A14 - cmp r0, #0x3 - beq _020A7A4C - cmp r0, #0x8 - beq _020A7A34 - b _020A7A4C -_020A7A14: - mov r0, #0x5 - bl FUN_020A6C38 - ldr r0, _020A7A84 ; =0x021CA86C - mov r1, #0x3 - ldr r0, [r0, #0x0] - add r0, r0, #0x2200 - strh r1, [r0, #0x80] - b _020A7A6C -_020A7A34: - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr -_020A7A4C: - mov r0, #0xb - bl FUN_020A6C38 - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x7 - ldmia sp!, {r4-r7,lr} - bx lr -_020A7A6C: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x3 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_020A7A84: .word 0x021CA86C -_020A7A88: .word 0x00002288 -_020A7A8C: .word FUN_020A6468 - - arm_func_start FUN_020A7A90 -FUN_020A7A90: ; 0x020A7A90 - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r0, #0x0 - beq _020A7AA8 - cmp r1, #0x0 - bne _020A7AB8 -_020A7AA8: - bl FUN_020A7820 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr -_020A7AB8: - bl FUN_020A78D8 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_020A7AC8 -FUN_020A7AC8: ; 0x020A7AC8 - stmdb sp!, {r4,lr} - bl OS_DisableInterrupts - ldr r1, _020A7BCC ; =0x021CA86C - mov r4, r0 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - bne _020A7AF4 - bl OS_RestoreInterrupts - mov r0, #0x1 - ldmia sp!, {r4,lr} - bx lr -_020A7AF4: - add r1, r1, #0x2000 - ldr r1, [r1, #0x260] - cmp r1, #0x1 - beq _020A7B24 - cmp r1, #0x3 - beq _020A7B44 - cmp r1, #0x4 - bne _020A7B34 - bl OS_RestoreInterrupts - mov r0, #0x2 - ldmia sp!, {r4,lr} - bx lr -_020A7B24: - bl OS_RestoreInterrupts -_020A7B28: ; 0x020A7B28 - mov r0, #0x0 - ldmia sp!, {r4,lr} - bx lr -_020A7B34: - bl OS_RestoreInterrupts - mov r0, #0x1 - ldmia sp!, {r4,lr} - bx lr -_020A7B44: - ldr r0, _020A7BD0 ; =FUN_020A6768 - bl WM_PowerOff - cmp r0, #0x2 - beq _020A7B68 - cmp r0, #0x3 - beq _020A7B9C - cmp r0, #0x8 - beq _020A7B88 - b _020A7B9C -_020A7B68: - mov r0, #0x4 - bl FUN_020A6C38 - ldr r0, _020A7BCC ; =0x021CA86C - mov r1, #0x2 - ldr r0, [r0, #0x0] - add r0, r0, #0x2200 - strh r1, [r0, #0x80] - b _020A7BB8 -_020A7B88: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x4 - ldmia sp!, {r4,lr} - bx lr -_020A7B9C: - mov r0, #0xb - bl FUN_020A6C38 - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x7 - ldmia sp!, {r4,lr} - bx lr -_020A7BB8: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x3 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A7BCC: .word 0x021CA86C -_020A7BD0: .word FUN_020A6768 - - arm_func_start FUN_020A7BD4 -FUN_020A7BD4: ; 0x020A7BD4 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - bl OS_DisableInterrupts - ldr r1, _020A7E00 ; =0x021CA86C - mov r4, r0 - ldr r1, [r1, #0x0] - cmp r1, #0x0 - bne _020A7C08 - bl OS_RestoreInterrupts - mov r0, #0x1 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7C08: - add r1, r1, #0x2000 - ldr r1, [r1, #0x260] - cmp r1, #0x1 - beq _020A7C2C - cmp r1, #0x2 - beq _020A7C3C - cmp r1, #0x3 - beq _020A7C4C - b _020A7C5C -_020A7C2C: - mov r0, r6 - mov r1, r5 - bl FUN_020A7008 - b _020A7C6C -_020A7C3C: - bl OS_RestoreInterrupts - mov r0, #0x2 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7C4C: - bl OS_RestoreInterrupts -_020A7C50: ; 0x020A7C50 - mov r0, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7C5C: - bl OS_RestoreInterrupts - mov r0, #0x1 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7C6C: - ldr r0, _020A7E00 ; =0x021CA86C - ldr r0, [r0, #0x0] - add r1, r0, #0x2000 - ldr r1, [r1, #0x26c] - mov r1, r1, lsl #0x10 - mov r1, r1, lsr #0x10 - bl WM_Init - cmp r0, #0x6 - addls pc, pc, r0, lsl #0x2 - b _020A7CE0 -_020A7C94: - b _020A7CFC -_020A7C98: - b _020A7CE0 -_020A7C9C: - b _020A7CE0 -_020A7CA0: - b _020A7CB0 -_020A7CA4: - b _020A7CCC -_020A7CA8: - b _020A7CE0 -_020A7CAC: - b _020A7CE0 -_020A7CB0: - mov r0, #0xb - bl FUN_020A6C38 - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x7 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7CCC: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x5 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7CE0: - mov r0, #0xb - bl FUN_020A6C38 - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x7 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7CFC: - bl WM_GetAllowedChannel -_020A7D00: ; 0x020A7D00 - cmp r0, #0x0 - bne _020A7D44 - bl WM_Finish -_020A7D0C: ; 0x020A7D0C - cmp r0, #0x0 - beq _020A7D30 - mov r0, #0xb - bl FUN_020A6C38 - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x7 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7D30: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x5 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7D44: - ldr r0, _020A7E04 ; =FUN_020A6A74 - bl WM_SetIndCallback -_020A7D4C: ; 0x020A7D4C - cmp r0, #0x0 - beq _020A7D70 - mov r0, #0xb - bl FUN_020A6C38 - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x7 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7D70: - ldr r0, _020A7E08 ; =FUN_020A6768 - bl WM_Enable - cmp r0, #0x2 - beq _020A7D94 - cmp r0, #0x3 - beq _020A7DD0 - cmp r0, #0x8 - beq _020A7DB4 - b _020A7DD0 -_020A7D94: - mov r0, #0x2 - bl FUN_020A6C38 - ldr r0, _020A7E00 ; =0x021CA86C - mov r1, #0x1 - ldr r0, [r0, #0x0] - add r0, r0, #0x2200 - strh r1, [r0, #0x80] - b _020A7DEC -_020A7DB4: - mov r0, #0xc - bl FUN_020A6C38 - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x1 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7DD0: - mov r0, #0xb - bl FUN_020A6C38 - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x7 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7DEC: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, #0x3 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A7E00: .word 0x021CA86C -_020A7E04: .word FUN_020A6A74 -_020A7E08: .word FUN_020A6768 - - arm_func_start FUN_020A7E0C -FUN_020A7E0C: ; 0x020A7E0C - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl OS_DisableInterrupts - ldr r2, _020A7E7C ; =0x021CA86C - ldr r1, [r2, #0x0] - cmp r1, #0x0 - bne _020A7E3C - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {lr} - bx lr -_020A7E3C: - add r1, r1, #0x2000 - ldr r1, [r1, #0x260] - cmp r1, #0x1 - beq _020A7E60 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {lr} - bx lr -_020A7E60: - mov r1, #0x0 - str r1, [r2, #0x0] - bl OS_RestoreInterrupts -_020A7E6C: ; 0x020A7E6C - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A7E7C: .word 0x021CA86C - - arm_func_start FUN_020A7E80 -FUN_020A7E80: ; 0x020A7E80 - stmdb sp!, {r4-r6,lr} - mov r6, r0 - mov r5, r1 - bl OS_DisableInterrupts - ldr r2, _020A7FA8 ; =0x021CA86C - mov r4, r0 - ldr r1, [r2, #0x0] - cmp r1, #0x0 - beq _020A7EB4 - bl OS_RestoreInterrupts - mov r0, #0x1 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7EB4: - cmp r6, #0x0 - bne _020A7ECC - bl OS_RestoreInterrupts - mov r0, #0x1 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7ECC: - ands r1, r6, #0x1f - beq _020A7EE4 - bl OS_RestoreInterrupts - mov r0, #0x1 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7EE4: - cmp r5, #0x2300 - bhs _020A7EFC - bl OS_RestoreInterrupts - mov r0, #0x6 - ldmia sp!, {r4-r6,lr} - bx lr -_020A7EFC: - str r6, [r2, #0x0] - add r0, r6, #0x2000 - mov r1, #0x1 - str r1, [r0, #0x260] - ldr r1, [r2, #0x0] - mov r0, #0x0 - add r1, r1, #0x2200 - strh r0, [r1, #0x80] - ldr r1, [r2, #0x0] - add r1, r1, #0x2200 - strh r0, [r1, #0x68] - ldr r1, [r2, #0x0] - add r1, r1, #0x2000 - strb r0, [r1, #0x26a] - ldr r1, [r2, #0x0] - add r1, r1, #0x2000 - strb r0, [r1, #0x26b] - ldr r1, [r2, #0x0] - add r1, r1, #0x2200 - strh r0, [r1, #0x82] - ldr r1, [r2, #0x0] - add r1, r1, #0x2200 - strh r0, [r1, #0xf8] - bl FUN_020A6E30 - bl FUN_020A897C - bl OS_IsTickAvailable -_020A7F64: ; 0x020A7F64 - cmp r0, #0x0 - bne _020A7F70 - bl OS_InitTick -_020A7F70: - bl OS_IsAlarmAvailable -_020A7F74: ; 0x020A7F74 - cmp r0, #0x0 - bne _020A7F80 - bl OS_InitAlarm -_020A7F80: - ldr r1, _020A7FA8 ; =0x021CA86C - ldr r0, _020A7FAC ; =0x000022CC - ldr r1, [r1, #0x0] - add r0, r1, r0 - bl OS_CreateAlarm - mov r0, r4 - bl OS_RestoreInterrupts -_020A7F9C: ; 0x020A7F9C - mov r0, #0x0 - ldmia sp!, {r4-r6,lr} - bx lr - .balign 4 -_020A7FA8: .word 0x021CA86C -_020A7FAC: .word 0x000022CC - - arm_func_start FUN_020A7FB0 -FUN_020A7FB0: ; 0x020A7FB0 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020A7138 - add r1, r0, #0x2000 - cmp r4, #0x0 - ldr r0, [r1, #0x270] - ldmeqia sp!, {r4,lr} - bxeq lr - cmp r0, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r1, [r1, #0x274] - cmp r1, #0xc - ldmlsia sp!, {r4,lr} - bxls lr - ldr r3, [r0, #0x4] - cmp r3, #0x0 - beq _020A8040 -_020A7FF8: - cmp r3, r4 - bne _020A8034 - ldr r2, [r3, #0x8] - cmp r2, #0x0 - ldrne r1, [r3, #0xc] - strne r1, [r2, #0xc] - ldreq r1, [r3, #0xc] - streq r1, [r0, #0x4] - ldr r2, [r3, #0xc] - cmp r2, #0x0 - ldrne r1, [r3, #0x8] - strne r1, [r2, #0x8] - ldreq r1, [r3, #0x8] - streq r1, [r0, #0x8] - b _020A8040 -_020A8034: - ldr r3, [r3, #0xc] - cmp r3, #0x0 - bne _020A7FF8 -_020A8040: - mov r1, #0x0 - str r1, [r4, #0xc] - ldr r1, [r0, #0x8] - str r1, [r4, #0x8] - str r4, [r0, #0x8] - ldr r1, [r4, #0x8] - cmp r1, #0x0 - strne r4, [r1, #0xc] - streq r4, [r0, #0x4] - cmp r3, #0x0 - ldreq r1, [r0, #0x0] - streq r1, [r4, #0x4] - ldreq r1, [r0, #0x0] - addeq r1, r1, #0x1 - streq r1, [r0, #0x0] - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020A8084 -FUN_020A8084: ; 0x020A8084 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020A7138 - add r1, r0, #0x2000 - ldr r2, [r1, #0x270] - mov r0, #0x0 - cmp r2, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r1, [r1, #0x274] - cmp r1, #0xc - ldmlsia sp!, {r4,lr} - bxls lr - ldr r0, [r2, #0x4] - cmp r0, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr -_020A80C8: - ldr r1, [r0, #0x4] - cmp r1, r4 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r0, [r0, #0xc] - cmp r0, #0x0 - bne _020A80C8 - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020A80EC -FUN_020A80EC: ; 0x020A80EC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - bl FUN_020A7138 - add r0, r0, #0x2000 - cmp r5, #0x0 - mov r4, #0x0 - ldr r1, [r0, #0x270] - addeq sp, sp, #0x4 - moveq r0, r4 - ldmeqia sp!, {r4-r5,lr} - bxeq lr - cmp r1, #0x0 - beq _020A8160 - ldr r0, [r0, #0x274] - cmp r0, #0xc - bls _020A8160 - ldr r4, [r1, #0x4] - cmp r4, #0x0 - beq _020A8160 -_020A813C: - add r0, r4, #0x10 - mov r1, r5 - add r0, r0, #0x4 - bl FUN_020A8B78 -_020A814C: ; 0x020A814C - cmp r0, #0x0 - bne _020A8160 - ldr r4, [r4, #0xc] - cmp r4, #0x0 - bne _020A813C -_020A8160: - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_020A8170 -FUN_020A8170: ; 0x020A8170 - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_020A7138 - add r0, r0, #0x2000 - ldr r1, [r0, #0x270] - cmp r1, #0x0 - beq _020A81A4 - ldr r0, [r0, #0x274] - cmp r0, #0xc - addhi sp, sp, #0x4 - ldrhi r0, [r1, #0x4] - ldmhiia sp!, {lr} - bxhi lr -_020A81A4: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_020A81B4 -FUN_020A81B4: ; 0x020A81B4 - stmdb sp!, {r4,lr} - bl FUN_020A7138 - add r2, r0, #0x2000 - ldr r1, [r2, #0x270] - mov r0, #0x0 - cmp r1, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r3, [r2, #0x274] - cmp r3, #0xc - ldmlsia sp!, {r4,lr} - bxls lr - ldr r2, _020A8294 ; =0x4EC4EC4F - sub r3, r3, #0xc - umull r2, r4, r3, r2 - movs r4, r4, lsr #0x6 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r2, [r1, #0x0] - cmp r4, r2 - ldmlsia sp!, {r4,lr} - bxls lr - mov lr, r0 - cmp r4, #0x0 - bls _020A8240 - add r12, r1, #0xc - mov r2, #0xd0 -_020A8220: - mul r0, lr, r2 - ldrb r3, [r12, r0] - add r0, r12, r0 - cmp r3, #0x0 - beq _020A8240 - add lr, lr, #0x1 - cmp lr, r4 - blo _020A8220 -_020A8240: - cmp lr, r4 - ldmcsia sp!, {r4,lr} - bxcs lr - mov r2, #0x1 - strb r2, [r0, #0x0] - ldr r3, [r1, #0x0] - mov r2, #0x0 - str r3, [r0, #0x4] - str r2, [r0, #0xc] - ldr r2, [r1, #0x8] - str r2, [r0, #0x8] - str r0, [r1, #0x8] - ldr r2, [r0, #0x8] - cmp r2, #0x0 - strne r0, [r2, #0xc] - streq r0, [r1, #0x4] - ldr r2, [r1, #0x0] - add r2, r2, #0x1 - str r2, [r1, #0x0] - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A8294: .word 0x4EC4EC4F - - arm_func_start FUN_020A8298 -FUN_020A8298: ; 0x020A8298 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - bl FUN_020A7138 - movs r7, r0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - add r0, r7, #0x2000 - ldrb r0, [r0, #0x26a] - cmp r0, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr - ldrh r0, [r5, #0x3c] - cmp r0, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r7,lr} - bxne lr - add r0, r5, #0x4 - bl FUN_020A80EC - movs r6, r0 - bne _020A8300 - bl FUN_020A81B4 - mov r6, r0 -_020A8300: - cmp r6, #0x0 - bne _020A8320 - add r0, r7, #0x2000 - ldr r0, [r0, #0x278] - cmp r0, #0x1 - bne _020A8320 - bl FUN_020A8170 - mov r6, r0 -_020A8320: - cmp r6, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,lr} - bxeq lr - mov r0, r5 - add r1, r6, #0x10 - mov r2, #0xc0 - strh r4, [r6, #0x2] - bl MIi_CpuCopyFast - mov r0, r6 - bl FUN_020A7FB0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - - arm_func_start FUN_020A8358 -FUN_020A8358: ; 0x020A8358 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r0 - bl OS_DisableInterrupts - mov r5, r0 - bl FUN_020A7138 -_020A8370: ; 0x020A8370 - cmp r0, #0x0 - bne _020A8390 - mov r0, r5 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r5,lr} - bx lr -_020A8390: - mov r0, r4 - bl FUN_020A8084 - movs r4, r0 - bne _020A83B8 - mov r0, r5 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r5,lr} - bx lr -_020A83B8: - mov r0, r5 - bl OS_RestoreInterrupts - add r0, r4, #0x10 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_020A83D0 -FUN_020A83D0: ; 0x020A83D0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - bl OS_DisableInterrupts - mov r4, r0 - bl FUN_020A7138 -_020A83E8: ; 0x020A83E8 - cmp r0, #0x0 - bne _020A8408 - mov r0, r4 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r5,lr} - bx lr -_020A8408: - cmp r5, #0x0 - beq _020A8434 - add r1, r0, #0x2000 - ldrb r1, [r1, #0x26a] - add r0, r0, #0x2000 - cmp r1, #0x0 - movne r5, #0x1 - mov r1, #0x1 - moveq r5, #0x0 - strb r1, [r0, #0x26a] - b _020A8454 -_020A8434: - add r1, r0, #0x2000 - ldrb r1, [r1, #0x26a] - add r0, r0, #0x2000 - cmp r1, #0x0 - movne r5, #0x1 - mov r1, #0x0 - moveq r5, #0x0 - strb r1, [r0, #0x26a] -_020A8454: - mov r0, r4 - bl OS_RestoreInterrupts - mov r0, r5 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_020A846C -FUN_020A846C: ; 0x020A846C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - bl OS_DisableInterrupts - mov r5, r0 - bl FUN_020A7138 -_020A8480: ; 0x020A8480 - cmp r0, #0x0 - mov r4, #0x0 - bne _020A84A4 - mov r0, r5 - bl OS_RestoreInterrupts - add sp, sp, #0x4 - mov r0, r4 - ldmia sp!, {r4-r5,lr} - bx lr -_020A84A4: - add r0, r0, #0x2000 - ldr r1, [r0, #0x270] - cmp r1, #0x0 - beq _020A84C0 - ldr r0, [r0, #0x274] - cmp r0, #0xc - ldrhi r4, [r1, #0x0] -_020A84C0: - mov r0, r5 - bl OS_RestoreInterrupts - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_020A84D8 -FUN_020A84D8: ; 0x020A84D8 - stmdb sp!, {r4,lr} - bl OS_DisableInterrupts - mov r4, r0 - bl FUN_020A7138 -_020A84E8: ; 0x020A84E8 - cmp r0, #0x0 - bne _020A8500 - mov r0, r4 - bl OS_RestoreInterrupts - ldmia sp!, {r4,lr} - bx lr -_020A8500: - add r1, r0, #0x2000 - ldr r0, [r1, #0x270] - cmp r0, #0x0 - beq _020A8524 - ldr r2, [r1, #0x274] - cmp r2, #0x0 - ble _020A8524 - mov r1, #0x0 - bl MI_CpuFill8 -_020A8524: - mov r0, r4 - bl OS_RestoreInterrupts - ldmia sp!, {r4,lr} - bx lr - - arm_func_start FUN_020A8534 -FUN_020A8534: ; 0x020A8534 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, [r0, #0x8] - ldr r1, _020A858C ; =0x01FF8000 - cmp r2, r1 - addne sp, sp, #0x4 - ldmneia sp!, {lr} - bxne lr - ldr r1, [r0, #0xc] - sub r1, r1, #0x1 - str r1, [r0, #0xc] - ldr r1, [r0, #0xc] - cmp r1, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {lr} - bxne lr - mov r1, #0x0 - str r1, [r0, #0x8] - bl OS_WakeupThread - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A858C: .word 0x01FF8000 - - arm_func_start FUN_020A8590 -FUN_020A8590: - ldr r2, [r0, #0x8] - cmp r2, #0x0 - bne _020A85B8 - ldr r1, _020A85D8 ; =0x01FF8000 - str r1, [r0, #0x8] - ldr r1, [r0, #0xc] - add r1, r1, #0x1 - str r1, [r0, #0xc] - mov r0, #0x1 - bx lr -_020A85B8: - ldr r1, _020A85D8 ; =0x01FF8000 - cmp r2, r1 - ldreq r1, [r0, #0xc] - addeq r1, r1, #0x1 - streq r1, [r0, #0xc] - moveq r0, #0x1 - movne r0, #0x0 - bx lr - .balign 4 -_020A85D8: .word 0x01FF8000 - - arm_func_start FUN_020A85DC -FUN_020A85DC: ; 0x020A85DC - ldr ip, _020A85E8 ; =FUN_020A8534 - ldr r0, _020A85EC ; =0x021CA87C - bx r12 - .balign 4 -_020A85E8: .word FUN_020A8534 -_020A85EC: .word 0x021CA87C - - arm_func_start FUN_020A85F0 -FUN_020A85F0: ; 0x020A85F0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrh r1, [r0, #0x0] - cmp r1, #0x12 - addne sp, sp, #0x4 - ldmneia sp!, {lr} - bxne lr - ldrh r2, [r0, #0x2] - ldr r1, _020A863C ; =0x021CA870 - str r2, [r1, #0x24] - ldrh r0, [r0, #0x2] - cmp r0, #0x0 - bne _020A8628 - bl FUN_020A6BBC -_020A8628: - ldr r0, _020A8640 ; =0x021CA874 - bl OS_WakeupThread - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A863C: .word 0x021CA870 -_020A8640: .word 0x021CA874 - - arm_func_start FUN_020A8644 -FUN_020A8644: - stmdb sp!, {r4-r8,lr} - mov r8, r0 - mov r7, r1 - mov r6, r2 - bl OS_DisableInterrupts - mov r5, r0 - bl FUN_020A7138 -_020A8660: ; 0x020A8660 - cmp r0, #0x0 - bne _020A867C - mov r0, r5 - bl OS_RestoreInterrupts -_020A8670: ; 0x020A8670 - mvn r0, #0x0 - ldmia sp!, {r4-r8,lr} - bx lr -_020A867C: - ldr r0, _020A87AC ; =0x021CA87C - bl OS_LockMutex - bl FUN_020A7138 - movs r4, r0 - bne _020A86AC - ldr r0, _020A87AC ; =0x021CA87C - bl OS_UnlockMutex - mov r0, r5 - bl OS_RestoreInterrupts -_020A86A0: ; 0x020A86A0 - mvn r0, #0x0 - ldmia sp!, {r4-r8,lr} - bx lr -_020A86AC: - add r0, r4, #0x2000 - ldr r1, [r0, #0x260] - cmp r1, #0x9 - bne _020A86C8 - ldrb r0, [r0, #0x26b] - cmp r0, #0x1 - bne _020A86E4 -_020A86C8: - ldr r0, _020A87AC ; =0x021CA87C - bl OS_UnlockMutex - mov r0, r5 - bl OS_RestoreInterrupts - mvn r0, #0x3 - ldmia sp!, {r4-r8,lr} - bx lr -_020A86E4: - mov r0, r7 - mov r2, r6 - add r1, r4, #0xf00 - bl MI_CpuCopy8 - mov r3, r6, lsl #0x10 - ldr r0, _020A87B0 ; =FUN_020A85F0 - mov r1, r8 - add r2, r4, #0xf00 - mov r3, r3, lsr #0x10 - bl WM_SetDCFData - cmp r0, #0x8 - addls pc, pc, r0, lsl #0x2 - b _020A873C -_020A8718: - b _020A873C -_020A871C: - b _020A873C -_020A8720: - b _020A8758 -_020A8724: - b _020A873C -_020A8728: - b _020A873C -_020A872C: - b _020A873C -_020A8730: - b _020A873C -_020A8734: - b _020A873C -_020A8738: - b _020A873C -_020A873C: - ldr r0, _020A87AC ; =0x021CA87C - bl OS_UnlockMutex - mov r0, r5 - bl OS_RestoreInterrupts - mvn r0, #0x4 - ldmia sp!, {r4-r8,lr} - bx lr -_020A8758: - ldr r0, _020A87B4 ; =0x021CA874 - bl OS_SleepThread - ldr r0, _020A87B8 ; =0x021CA870 - ldr r0, [r0, #0x24] - cmp r0, #0x0 - beq _020A8790 - cmp r0, #0x1 - ldr r0, _020A87AC ; =0x021CA87C - bl OS_UnlockMutex - mov r0, r5 - bl OS_RestoreInterrupts - mvn r0, #0x4 - ldmia sp!, {r4-r8,lr} - bx lr -_020A8790: - ldr r0, _020A87AC ; =0x021CA87C - bl OS_UnlockMutex - mov r0, r5 - bl OS_RestoreInterrupts - mov r0, r6 - ldmia sp!, {r4-r8,lr} - bx lr - .balign 4 -_020A87AC: .word 0x021CA87C -_020A87B0: .word FUN_020A85F0 -_020A87B4: .word 0x021CA874 -_020A87B8: .word 0x021CA870 - - arm_func_start FUN_020A87BC -FUN_020A87BC: ; 0x020A87BC - stmdb sp!, {r4,lr} - mov r4, r0 - bl OS_DisableInterrupts - ldr r1, _020A87DC ; =0x021CA870 - str r4, [r1, #0x28] - bl OS_RestoreInterrupts - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A87DC: .word 0x021CA870 - - arm_func_start FUN_020A87E0 -FUN_020A87E0: ; 0x020A87E0 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r7, #0x0 - mov r4, r0 - mov r6, r7 - bl FUN_020A7138 - mov r5, r0 - bl OS_DisableInterrupts -_020A8800: ; 0x020A8800 - cmp r5, #0x0 - beq _020A8830 - add r1, r5, #0x2000 - ldr r2, [r1, #0x260] - cmp r2, #0x9 - bne _020A8830 - ldrb r1, [r1, #0x26b] - cmp r1, #0x0 - addeq r2, r5, #0x2100 - ldreq r1, _020A884C ; =0x0000214C - ldreqh r6, [r2, #0x4a] - addeq r7, r5, r1 -_020A8830: - bl OS_RestoreInterrupts -_020A8834: ; 0x020A8834 - cmp r4, #0x0 - strneh r6, [r4, #0x0] - mov r0, r7 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,lr} - bx lr - .balign 4 -_020A884C: .word 0x0000214C - - arm_func_start FUN_020A8850 -FUN_020A8850: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, #0x0 - bl FUN_020A7138 - mov r4, r0 - bl OS_DisableInterrupts -_020A8868: ; 0x020A8868 - cmp r4, #0x0 - beq _020A8890 - add r1, r4, #0x2000 - ldr r2, [r1, #0x260] - cmp r2, #0x9 - bne _020A8890 - ldrb r1, [r1, #0x26b] - cmp r1, #0x0 - ldreq r1, _020A88A4 ; =0x00002144 - addeq r5, r4, r1 -_020A8890: - bl OS_RestoreInterrupts - mov r0, r5 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - .balign 4 -_020A88A4: .word 0x00002144 - - arm_func_start FUN_020A88A8 -FUN_020A88A8: ; 0x020A88A8 - stmdb sp!, {r4,lr} - bl FUN_020A7138 - movs r4, r0 - ldmeqia sp!, {r4,lr} - bxeq lr - add r0, r4, #0x2000 - ldr r1, [r0, #0x260] - cmp r1, #0x9 - ldmneia sp!, {r4,lr} - bxne lr - ldrb r0, [r0, #0x26b] - cmp r0, #0x1 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r0, _020A8928 ; =0x021CA87C - bl FUN_020A8590 -_020A88E8: ; 0x020A88E8 - cmp r0, #0x0 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r1, _020A892C ; =0x00002144 - ldr r0, _020A8930 ; =FUN_020A85DC - add r1, r4, r1 - add r2, r4, #0xf00 - mov r3, #0x0 - bl WM_SetDCFData - cmp r0, #0x2 - ldmeqia sp!, {r4,lr} - bxeq lr - ldr r0, _020A8928 ; =0x021CA87C - bl FUN_020A8534 - ldmia sp!, {r4,lr} - bx lr - .balign 4 -_020A8928: .word 0x021CA87C -_020A892C: .word 0x00002144 -_020A8930: .word FUN_020A85DC - - arm_func_start FUN_020A8934 -FUN_020A8934: ; 0x020A8934 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _020A8978 ; =0x021CA870 - mov r2, r0 - ldr r12, [r1, #0x28] - cmp r12, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {lr} - bxeq lr - ldrh r3, [r2, #0x6] - add r0, r2, #0x1e - add r1, r2, #0x18 - add r2, r2, #0x2c - blx r12 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A8978: .word 0x021CA870 - - arm_func_start FUN_020A897C -FUN_020A897C: ; 0x020A897C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _020A89C8 ; =0x021CA870 - ldrb r0, [r1, #0x0] - cmp r0, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {lr} - bxne lr - ldr r0, _020A89CC ; =0x021CA87C - mov r2, #0x0 - mov r3, #0x1 - strb r3, [r1, #0x0] - str r2, [r1, #0x24] - str r2, [r1, #0x8] - str r2, [r1, #0x4] - bl OS_InitMutex - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A89C8: .word 0x021CA870 -_020A89CC: .word 0x021CA87C - - arm_func_start FUN_020A89D0 -FUN_020A89D0: ; 0x020A89D0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, _020A8A48 ; =0x021CA89C - ands r1, r0, #0x2 - ldrb r12, [r2, #0x0] - movne r0, r0, asr #0x2 - andne lr, r0, #0xff - moveq r0, r0, asr #0x2 - addeq r0, r0, #0x19 - andeq lr, r0, #0xff - mov r1, r12, lsr #0x1f - rsb r0, r1, r12, lsl #0x1c - cmp r12, #0x10 - ldr r3, _020A8A4C ; =0x021CA8A0 - add r0, r1, r0, ror #0x1c - strb lr, [r3, r0] - addcc r0, r12, #0x1 - strccb r0, [r2, #0x0] - addcc sp, sp, #0x4 - ldmccia sp!, {lr} - bxcc lr - add r0, r12, #0x1 - mov r1, r0, lsr #0x1f - rsb r0, r1, r0, lsl #0x1c - add r0, r1, r0, ror #0x1c - add r0, r0, #0x10 - strb r0, [r2, #0x0] - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A8A48: .word 0x021CA89C -_020A8A4C: .word 0x021CA8A0 - - arm_func_start FUN_020A8A50 -FUN_020A8A50: ; 0x020A8A50 - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_020A8A90 - mov r1, #0x0 - cmp r0, #0x1c - movcs r1, #0x3 - bhs _020A8A80 - cmp r0, #0x16 - movcs r1, #0x2 - bhs _020A8A80 - cmp r0, #0x10 - movcs r1, #0x1 -_020A8A80: - mov r0, r1 - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - - arm_func_start FUN_020A8A90 -FUN_020A8A90: ; 0x020A8A90 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _020A8B20 ; =0x021CA89C - mov r0, #0x0 - ldrb r1, [r1, #0x0] - cmp r1, #0x10 - bls _020A8ADC - ldr r2, _020A8B24 ; =0x021CA8A0 - mov r3, r0 -_020A8AB4: - ldrb r1, [r2, #0x0] - add r3, r3, #0x1 - cmp r3, #0x10 - add r0, r0, r1 - add r2, r2, #0x1 - blt _020A8AB4 - mov r1, r0, asr #0x3 - add r0, r0, r1, lsr #0x1c - mov r0, r0, asr #0x4 - b _020A8B10 -_020A8ADC: - cmp r1, #0x0 - beq _020A8B10 - mov r3, r0 - cmp r1, #0x0 - ble _020A8B0C - ldr ip, _020A8B24 ; =0x021CA8A0 -_020A8AF4: - ldrb r2, [r12, #0x0] - add r3, r3, #0x1 - cmp r3, r1 - add r0, r0, r2 - add r12, r12, #0x1 - blt _020A8AF4 -_020A8B0C: - bl _s32_div_f -_020A8B10: - and r0, r0, #0xff - add sp, sp, #0x4 - ldmia sp!, {lr} - bx lr - .balign 4 -_020A8B20: .word 0x021CA89C -_020A8B24: .word 0x021CA8A0 - - arm_func_start FUN_020A8B28 -FUN_020A8B28: ; 0x020A8B28 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - bl OS_DisableInterrupts - mov r5, r0 - bl FUN_020A7138 -_020A8B3C: ; 0x020A8B3C - cmp r0, #0x0 - mov r4, #0x0 - beq _020A8B60 - add r0, r0, #0x2000 - ldr r0, [r0, #0x260] - cmp r0, #0x9 - bne _020A8B60 - bl FUN_020A8A50 - mov r4, r0 -_020A8B60: - mov r0, r5 - bl OS_RestoreInterrupts - mov r0, r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,lr} - bx lr - - arm_func_start FUN_020A8B78 -FUN_020A8B78: - mov r12, #0x0 -_020A8B7C: - ldrb r3, [r0, r12] - ldrb r2, [r1, r12] - cmp r3, r2 - movne r0, #0x0 - bxne lr - add r12, r12, #0x1 - cmp r12, #0x6 - blt _020A8B7C - mov r0, #0x1 - bx lr - - arm_func_start FUN_020A8BA4 -FUN_020A8BA4: ; 0x020A8BA4 - ldr ip, _020A8BAC ; =DGT_Hash1GetDigest_R - bx r12 - .balign 4 -_020A8BAC: .word DGT_Hash1GetDigest_R - - arm_func_start FUN_020A8BB0 -FUN_020A8BB0: ; 0x020A8BB0 - ldr ip, _020A8BB8 ; =DGT_Hash1SetSource - bx r12 - .balign 4 -_020A8BB8: .word DGT_Hash1SetSource - - arm_func_start FUN_020A8BBC -FUN_020A8BBC: ; 0x020A8BBC - ldr ip, _020A8BC4 ; =DGT_Hash1Reset - bx r12 - .balign 4 -_020A8BC4: .word DGT_Hash1Reset - - arm_func_start FUN_020A8BC8 -FUN_020A8BC8: ; 0x020A8BC8 - stmdb sp!, {r4,lr} - ldrsh r4, [r3, #0x0] - ldr r12, [sp, #0x8] - mov lr, #0x0 - strh r4, [r0, #0x0] - ldrb r4, [r3, #0x2] - cmp r12, #0x2 - strb r4, [r0, #0x2] - strb lr, [r0, #0x3] - beq _020A8C04 - cmp r12, #0x3 - beq _020A8C10 - cmp r12, #0x4 - beq _020A8C1C - ldmia sp!, {r4,pc} -_020A8C04: - add r0, r0, #0x4 - bl FUN_020A8CA8 - ldmia sp!, {r4,pc} -_020A8C10: - add r0, r0, #0x4 - bl FUN_020A91D8 - ldmia sp!, {r4,pc} -_020A8C1C: - add r0, r0, #0x4 - bl FUN_020A9D18 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020A8C28 -FUN_020A8C28: ; 0x020A8C28 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrsh r12, [r0, #0x0] - cmp r3, #0x2 - strh r12, [sp, #0x0] - ldrb r12, [r0, #0x2] - strb r12, [sp, #0x2] - beq _020A8C60 - cmp r3, #0x3 - beq _020A8C78 - cmp r3, #0x4 - beq _020A8C90 - add sp, sp, #0x4 - ldmia sp!, {pc} -_020A8C60: - add r3, sp, #0x0 - add r0, r0, #0x4 - sub r2, r2, #0x4 - bl FUN_020A8F58 - add sp, sp, #0x4 - ldmia sp!, {pc} -_020A8C78: - add r3, sp, #0x0 - add r0, r0, #0x4 - sub r2, r2, #0x4 - bl FUN_020A97DC - add sp, sp, #0x4 - ldmia sp!, {pc} -_020A8C90: - add r3, sp, #0x0 - add r0, r0, #0x4 - sub r2, r2, #0x4 - bl FUN_020A9F10 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020A8CA8 -FUN_020A8CA8: ; 0x020A8CA8 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x3c - movs r2, r2, lsr #0x2 - str r2, [sp, #0x4] - mov r2, #0x0 - str r2, [sp, #0x0] - addeq sp, sp, #0x3c - ldmeqia sp!, {r4-r11,pc} -_020A8CC8: ; 0x020A8CC8 - mov r5, #0x8000 - ldr fp, _020A8F4C ; =0x020FF5D4 - ldr r4, _020A8F50 ; =0x00007FFF - str r2, [sp, #0x8] - str r2, [sp, #0xc] - str r2, [sp, #0x10] - str r2, [sp, #0x14] - str r2, [sp, #0x18] - rsb r5, r5, #0x0 - mov r6, #0x2 - mov lr, #0x58 - str r2, [sp, #0x1c] - str r2, [sp, #0x20] - str r2, [sp, #0x24] - str r2, [sp, #0x28] - str r2, [sp, #0x2c] - str r2, [sp, #0x30] - str r2, [sp, #0x34] -_020A8D10: - ldrb r9, [r3, #0x2] - ldrsh r2, [r3, #0x0] - ldrsh r7, [r1, #0x0] - mov r10, r9, lsl #0x1 - ldrsh r10, [r11, r10] - subs r8, r7, r2 - movmi r7, r6 - ldrpl r7, [sp, #0x8] - rsbmi r8, r8, #0x0 - cmp r8, r10 - orrge r7, r7, #0x1 - ands r8, r7, #0x1 - ldreq r10, [sp, #0xc] - ands r8, r7, #0x2 - rsbne r10, r10, #0x0 - mov r8, #0x8000 - add r2, r2, r10 - rsb r8, r8, #0x0 - cmp r2, r8 - ldr r8, _020A8F54 ; =0x020FF5B8 - movlt r2, r5 - cmp r2, r4 - ldrsb r8, [r8, r7] - movgt r2, r4 - adds r9, r9, r8 - ldrmi r9, [sp, #0x10] - bmi _020A8D84 - cmp r9, #0x58 - movgt r9, lr -_020A8D84: - strh r2, [r3, #0x0] - strb r9, [r3, #0x2] - ldrb r10, [r3, #0x2] - and r2, r7, #0xff - ldrsh r7, [r3, #0x0] - ldrsh r8, [r1, #0x2] - mov r12, r10, lsl #0x1 - ldrsh r12, [r11, r12] - subs r9, r8, r7 - movmi r8, r6 - ldrpl r8, [sp, #0x14] - rsbmi r9, r9, #0x0 - cmp r9, r12 - orrge r8, r8, #0x1 - ands r9, r8, #0x1 - ldreq r12, [sp, #0x18] - ands r9, r8, #0x2 - rsbne r12, r12, #0x0 - mov r9, #0x8000 - add r7, r7, r12 - rsb r9, r9, #0x0 - cmp r7, r9 - ldr sb, _020A8F54 ; =0x020FF5B8 - movlt r7, r5 - cmp r7, r4 - ldrsb r9, [r9, r8] - movgt r7, r4 - adds r10, r10, r9 - ldrmi r10, [sp, #0x1c] - bmi _020A8E04 - cmp r10, #0x58 - movgt r10, lr -_020A8E04: - strh r7, [r3, #0x0] - strb r10, [r3, #0x2] - and r7, r8, #0xff - orr r2, r2, r7, lsl #0x2 - ldrb r10, [r3, #0x2] - ldrsh r7, [r3, #0x0] - ldrsh r8, [r1, #0x4] - mov r12, r10, lsl #0x1 - ldrsh r12, [r11, r12] - subs r9, r8, r7 - movmi r8, r6 - ldrpl r8, [sp, #0x20] - rsbmi r9, r9, #0x0 - cmp r9, r12 - orrge r8, r8, #0x1 - ands r9, r8, #0x1 - ldreq r12, [sp, #0x24] - ands r9, r8, #0x2 - rsbne r12, r12, #0x0 - mov r9, #0x8000 - add r7, r7, r12 - rsb r9, r9, #0x0 - cmp r7, r9 - ldr sb, _020A8F54 ; =0x020FF5B8 - movlt r7, r5 - cmp r7, r4 - ldrsb r9, [r9, r8] - movgt r7, r4 - and r2, r2, #0xff - adds r10, r10, r9 - ldrmi r10, [sp, #0x28] - bmi _020A8E8C - cmp r10, #0x58 - movgt r10, lr -_020A8E8C: - strh r7, [r3, #0x0] - strb r10, [r3, #0x2] - and r7, r8, #0xff - orr r2, r2, r7, lsl #0x4 - ldrb r10, [r3, #0x2] - ldrsh r8, [r1, #0x6] - ldrsh r7, [r3, #0x0] - mov r12, r10, lsl #0x1 - ldrsh r12, [r11, r12] - subs r9, r8, r7 - movmi r8, r6 - ldrpl r8, [sp, #0x2c] - rsbmi r9, r9, #0x0 - cmp r9, r12 - orrge r8, r8, #0x1 - ands r9, r8, #0x1 - ldreq r12, [sp, #0x30] - ands r9, r8, #0x2 - rsbne r12, r12, #0x0 - mov r9, #0x8000 - add r7, r7, r12 - rsb r9, r9, #0x0 - cmp r7, r9 - ldr sb, _020A8F54 ; =0x020FF5B8 - movlt r7, r5 - cmp r7, r4 - ldrsb r9, [r9, r8] - movgt r7, r4 - and r2, r2, #0xff - adds r10, r10, r9 - add r1, r1, #0x8 - ldrmi r10, [sp, #0x34] - bmi _020A8F18 - cmp r10, #0x58 - movgt r10, lr -_020A8F18: - strh r7, [r3, #0x0] - and r7, r8, #0xff - strb r10, [r3, #0x2] - orr r2, r2, r7, lsl #0x6 - strb r2, [r0], #0x1 - ldr r2, [sp, #0x0] - add r7, r2, #0x1 - ldr r2, [sp, #0x4] - str r7, [sp, #0x0] - cmp r7, r2 - blo _020A8D10 - add sp, sp, #0x3c - ldmia sp!, {r4-r11,pc} - .balign 4 -_020A8F4C: .word 0x020FF5D4 -_020A8F50: .word 0x00007FFF -_020A8F54: .word 0x020FF5B8 - - arm_func_start FUN_020A8F58 -FUN_020A8F58: ; 0x020A8F58 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x34 - cmp r2, #0x0 - addls sp, sp, #0x34 - mov r12, #0x0 - ldmlsia sp!, {r4-r11,pc} -_020A8F70: ; 0x020A8F70 - mov r4, #0x8000 - rsb r6, r4, #0x0 - ldr r5, _020A91CC ; =0x00007FFF - ldr fp, _020A91D0 ; =0x020FF5D4 - str r12, [sp, #0x0] - str r12, [sp, #0x8] - str r12, [sp, #0xc] - str r12, [sp, #0x14] - str r12, [sp, #0x18] - mov r4, #0x58 - str r12, [sp, #0x20] - str r12, [sp, #0x24] - str r12, [sp, #0x2c] -_020A8FA4: - ldrb r7, [r0, #0x0] - ldrb r8, [r3, #0x2] - ldrsh r9, [r3, #0x0] - and r10, r7, #0x3 - ands r7, r10, #0x1 - mov r7, r8, lsl #0x1 - ldrsh r7, [r11, r7] - ldreq r7, [sp, #0x0] - ands lr, r10, #0x2 - str lr, [sp, #0x4] - beq _020A8FE8 - sub r9, r9, r7 - mov r7, #0x8000 - rsb r7, r7, #0x0 - cmp r9, r7 - movlt r9, r6 - b _020A8FF4 -_020A8FE8: - add r9, r9, r7 - cmp r9, r5 - movgt r9, r5 -_020A8FF4: - ldr r7, _020A91D4 ; =0x020FF5B8 - ldrsb r7, [r7, r10] - adds r8, r8, r7 - ldrmi r8, [sp, #0x8] - bmi _020A9010 - cmp r8, #0x58 - movgt r8, r4 -_020A9010: - mov r7, r9, lsl #0x10 - mov r7, r7, asr #0x10 - strh r7, [r3, #0x0] - strb r8, [r3, #0x2] - strh r7, [r1, #0x0] - ldrb r7, [r0, #0x0] - ldrb r8, [r3, #0x2] - ldrsh r9, [r3, #0x0] - mov r7, r7, asr #0x2 - and r10, r7, #0x3 - ands r7, r10, #0x1 - mov r7, r8, lsl #0x1 - ldrsh r7, [r11, r7] - ldreq r7, [sp, #0xc] - ands lr, r10, #0x2 - str lr, [sp, #0x10] - beq _020A906C - sub r9, r9, r7 - mov r7, #0x8000 - rsb r7, r7, #0x0 - cmp r9, r7 - movlt r9, r6 - b _020A9078 -_020A906C: - add r9, r9, r7 - cmp r9, r5 - movgt r9, r5 -_020A9078: - ldr r7, _020A91D4 ; =0x020FF5B8 - ldrsb r7, [r7, r10] - adds r8, r8, r7 - ldrmi r8, [sp, #0x14] - bmi _020A9094 - cmp r8, #0x58 - movgt r8, r4 -_020A9094: - mov r7, r9, lsl #0x10 - mov r7, r7, asr #0x10 - strh r7, [r3, #0x0] - strb r8, [r3, #0x2] - strh r7, [r1, #0x2] - ldrb r7, [r0, #0x0] - ldrb r8, [r3, #0x2] - ldrsh r9, [r3, #0x0] - mov r7, r7, asr #0x4 - and r10, r7, #0x3 - ands r7, r10, #0x1 - mov r7, r8, lsl #0x1 - ldrsh r7, [r11, r7] - ldreq r7, [sp, #0x18] - ands lr, r10, #0x2 - str lr, [sp, #0x1c] - beq _020A90F0 - sub r9, r9, r7 - mov r7, #0x8000 - rsb r7, r7, #0x0 - cmp r9, r7 - movlt r9, r6 - b _020A90FC -_020A90F0: - add r9, r9, r7 - cmp r9, r5 - movgt r9, r5 -_020A90FC: - ldr r7, _020A91D4 ; =0x020FF5B8 - ldrsb r7, [r7, r10] - adds r8, r8, r7 - ldrmi r8, [sp, #0x20] - bmi _020A9118 - cmp r8, #0x58 - movgt r8, r4 -_020A9118: - mov r7, r9, lsl #0x10 - mov r7, r7, asr #0x10 - strh r7, [r3, #0x0] - strb r8, [r3, #0x2] - strh r7, [r1, #0x4] - ldrb r7, [r0, #0x0] - ldrb r8, [r3, #0x2] - ldrsh r9, [r3, #0x0] - mov r7, r7, asr #0x6 - and r10, r7, #0x3 - ands r7, r10, #0x1 - mov r7, r8, lsl #0x1 - ldrsh r7, [r11, r7] - ldreq r7, [sp, #0x24] - ands lr, r10, #0x2 - str lr, [sp, #0x28] - beq _020A9174 - sub r9, r9, r7 - mov r7, #0x8000 - rsb r7, r7, #0x0 - cmp r9, r7 - movlt r9, r6 - b _020A9180 -_020A9174: - add r9, r9, r7 - cmp r9, r5 - movgt r9, r5 -_020A9180: - ldr r7, _020A91D4 ; =0x020FF5B8 - ldrsb r7, [r7, r10] - adds r8, r8, r7 - ldrmi r8, [sp, #0x2c] - bmi _020A919C - cmp r8, #0x58 - movgt r8, r4 -_020A919C: - mov r7, r9, lsl #0x10 - mov r9, r7, asr #0x10 - strh r9, [r3, #0x0] - strb r8, [r3, #0x2] - add r12, r12, #0x1 - strh r9, [r1, #0x6] - add r1, r1, #0x8 - add r0, r0, #0x1 - cmp r12, r2 - blo _020A8FA4 - add sp, sp, #0x34 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020A91CC: .word 0x00007FFF -_020A91D0: .word 0x020FF5D4 -_020A91D4: .word 0x020FF5B8 - - arm_func_start FUN_020A91D8 -FUN_020A91D8: ; 0x020A91D8 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x54 - movs r2, r2, lsr #0x3 - str r2, [sp, #0x4] - mov r2, #0x0 - str r2, [sp, #0x0] - addeq sp, sp, #0x54 - ldmeqia sp!, {r4-r11,pc} -_020A91F8: ; 0x020A91F8 - ldr r5, [sp, #0x0] - mov r4, #0x8000 - rsb lr, r4, #0x0 - ldr ip, _020A97D0 ; =0x00007FFF - str r2, [sp, #0x10] - str r2, [sp, #0x14] - str r2, [sp, #0x18] - str r2, [sp, #0x1c] - str r2, [sp, #0x20] - mov r4, #0x4 - mov r2, #0x58 - str r5, [sp, #0x24] - str r5, [sp, #0x28] - str r5, [sp, #0x2c] - str r5, [sp, #0x30] - str r5, [sp, #0x34] - str r5, [sp, #0x38] - str r5, [sp, #0x3c] - str r5, [sp, #0x40] - str r5, [sp, #0x44] - str r5, [sp, #0x48] - str r5, [sp, #0x4c] -_020A9250: - ldrsh r8, [r3, #0x0] - ldrsh r6, [r1, #0x0] - ldrb r5, [r3, #0x2] - subs r7, r6, r8 - movmi r10, r4 - ldr r6, _020A97D4 ; =0x020FF5D4 - mov r9, r5, lsl #0x1 - ldrsh r6, [r6, r9] - ldrpl r10, [sp, #0x10] - rsbmi r7, r7, #0x0 - cmp r7, r6 - orrge r10, r10, #0x2 - subge r7, r7, r6 - mov r9, r6, asr #0x1 - cmp r7, r9 - orrge r10, r10, #0x1 - ands r7, r10, #0x2 - mov r7, r6, asr #0x2 - addne r7, r7, r6 - ands r6, r10, #0x1 - addne r7, r7, r9 - ands r6, r10, #0x4 - rsbne r7, r7, #0x0 - add r6, r8, r7 - mov r7, #0x8000 - rsb r7, r7, #0x0 - cmp r6, r7 - ldr r7, _020A97D8 ; =0x020FF5BC - movlt r6, lr - cmp r6, r12 - ldrsb r7, [r7, r10] - movgt r6, r12 - adds r5, r5, r7 - ldrmi r5, [sp, #0x14] - bmi _020A92E4 - cmp r5, #0x58 - movgt r5, r2 -_020A92E4: - strh r6, [r3, #0x0] - strb r5, [r3, #0x2] - and r5, r10, #0xff - mov r5, r5, lsl #0x5 - and r10, r5, #0xff - ldrb r8, [r3, #0x2] - ldrsh r11, [r3, #0x0] - ldrsh r5, [r1, #0x2] - mov r9, r8, lsl #0x1 - subs r7, r5, r11 - ldr r5, _020A97D4 ; =0x020FF5D4 - movmi r6, r4 - ldrsh r9, [r5, r9] - ldrpl r6, [sp, #0x18] - rsbmi r7, r7, #0x0 - cmp r7, r9 - orrge r6, r6, #0x2 - subge r7, r7, r9 - mov r5, r9, asr #0x1 - cmp r7, r5 - orrge r6, r6, #0x1 - ands r7, r6, #0x2 - mov r7, r9, asr #0x2 - addne r7, r7, r9 - ands r9, r6, #0x1 - addne r7, r7, r5 - ands r5, r6, #0x4 - rsbne r7, r7, #0x0 - add r5, r11, r7 - mov r7, #0x8000 - rsb r7, r7, #0x0 - cmp r5, r7 - ldr r7, _020A97D8 ; =0x020FF5BC - movlt r5, lr - cmp r5, r12 - ldrsb r7, [r7, r6] - movgt r5, r12 - adds r8, r8, r7 - ldrmi r8, [sp, #0x1c] - bmi _020A938C - cmp r8, #0x58 - movgt r8, r2 -_020A938C: - strh r5, [r3, #0x0] - strb r8, [r3, #0x2] - and r5, r6, #0xff - orr r5, r10, r5, lsl #0x2 - and r10, r5, #0xff - ldrb r8, [r3, #0x2] - ldrsh r11, [r3, #0x0] - ldrsh r5, [r1, #0x4] - mov r9, r8, lsl #0x1 - subs r7, r5, r11 - ldr r5, _020A97D4 ; =0x020FF5D4 - movmi r6, r4 - ldrsh r9, [r5, r9] - ldrpl r6, [sp, #0x20] - rsbmi r7, r7, #0x0 - cmp r7, r9 - orrge r6, r6, #0x2 - subge r7, r7, r9 - mov r5, r9, asr #0x1 - cmp r7, r5 - orrge r6, r6, #0x1 - ands r7, r6, #0x2 - mov r7, r9, asr #0x2 - addne r7, r7, r9 - ands r9, r6, #0x1 - addne r7, r7, r5 - ands r5, r6, #0x4 - rsbne r7, r7, #0x0 - add r5, r11, r7 - mov r7, #0x8000 - rsb r7, r7, #0x0 - cmp r5, r7 - ldr r7, _020A97D8 ; =0x020FF5BC - movlt r5, lr - cmp r5, r12 - ldrsb r7, [r7, r6] - movgt r5, r12 - adds r8, r8, r7 - ldrmi r8, [sp, #0x24] - bmi _020A9434 - cmp r8, #0x58 - movgt r8, r2 -_020A9434: - strh r5, [r3, #0x0] - and r5, r6, #0xff - str r5, [sp, #0x8] - strb r8, [r3, #0x2] - orr r5, r10, r5, asr #0x1 - strb r5, [r0, #0x0] - ldrb r5, [r3, #0x2] - ldrsh r8, [r3, #0x0] - ldrsh r6, [r1, #0x6] - mov r9, r5, lsl #0x1 - subs r7, r6, r8 - ldr r6, _020A97D4 ; =0x020FF5D4 - movmi r10, r4 - ldrsh r6, [r6, r9] - ldrpl r10, [sp, #0x28] - rsbmi r7, r7, #0x0 - cmp r7, r6 - orrge r10, r10, #0x2 - subge r7, r7, r6 - mov r9, r6, asr #0x1 - cmp r7, r9 - orrge r10, r10, #0x1 - ands r7, r10, #0x2 - mov r7, r6, asr #0x2 - addne r7, r7, r6 - ands r6, r10, #0x1 - addne r7, r7, r9 - ands r6, r10, #0x4 - rsbne r7, r7, #0x0 - add r6, r8, r7 - mov r7, #0x8000 - rsb r7, r7, #0x0 - cmp r6, r7 - ldr r7, _020A97D8 ; =0x020FF5BC - movlt r6, lr - cmp r6, r12 - ldrsb r7, [r7, r10] - movgt r6, r12 - adds r5, r5, r7 - ldrmi r5, [sp, #0x2c] - bmi _020A94E0 - cmp r5, #0x58 - movgt r5, r2 -_020A94E0: - strh r6, [r3, #0x0] - strb r5, [r3, #0x2] - ldrsh r11, [r3, #0x0] - ldrsh r6, [r1, #0x8] - ldrb r9, [r3, #0x2] - and r5, r10, #0xff - subs r8, r6, r11 - movmi r7, r4 - ldr r6, _020A97D4 ; =0x020FF5D4 - mov r10, r9, lsl #0x1 - ldrsh r10, [r6, r10] - ldrpl r7, [sp, #0x30] - rsbmi r8, r8, #0x0 - cmp r8, r10 - orrge r7, r7, #0x2 - subge r8, r8, r10 - mov r6, r10, asr #0x1 - cmp r8, r6 - orrge r7, r7, #0x1 - ands r8, r7, #0x2 - mov r8, r10, asr #0x2 - addne r8, r8, r10 - ands r10, r7, #0x1 - addne r8, r8, r6 - ands r6, r7, #0x4 - rsbne r8, r8, #0x0 - add r6, r11, r8 - mov r8, #0x8000 - rsb r8, r8, #0x0 - cmp r6, r8 - ldr r8, _020A97D8 ; =0x020FF5BC - movlt r6, lr - mov r5, r5, lsl #0x4 - cmp r6, r12 - ldrsb r8, [r8, r7] - movgt r6, r12 - and r5, r5, #0xff - adds r9, r9, r8 - ldrmi r9, [sp, #0x34] - bmi _020A9588 - cmp r9, #0x58 - movgt r9, r2 -_020A9588: - strh r6, [r3, #0x0] - strb r9, [r3, #0x2] - and r6, r7, #0xff - orr r5, r5, r6, lsl #0x1 - ldrb r9, [r3, #0x2] - ldrsh r11, [r3, #0x0] - ldrsh r6, [r1, #0xa] - mov r10, r9, lsl #0x1 - and r5, r5, #0xff - subs r8, r6, r11 - ldr r6, _020A97D4 ; =0x020FF5D4 - movmi r7, r4 - ldrsh r10, [r6, r10] - ldrpl r7, [sp, #0x38] - rsbmi r8, r8, #0x0 - cmp r8, r10 - orrge r7, r7, #0x2 - subge r8, r8, r10 - mov r6, r10, asr #0x1 - cmp r8, r6 - orrge r7, r7, #0x1 - ands r8, r7, #0x2 - mov r8, r10, asr #0x2 - addne r8, r8, r10 - ands r10, r7, #0x1 - addne r8, r8, r6 - ands r6, r7, #0x4 - rsbne r8, r8, #0x0 - add r6, r11, r8 - mov r8, #0x8000 - rsb r8, r8, #0x0 - cmp r6, r8 - ldr r8, _020A97D8 ; =0x020FF5BC - movlt r6, lr - cmp r6, r12 - ldrsb r8, [r8, r7] - movgt r6, r12 - adds r9, r9, r8 - ldrmi r9, [sp, #0x3c] - bmi _020A9630 - cmp r9, #0x58 - movgt r9, r2 -_020A9630: - ldr r8, [sp, #0x8] - strh r6, [r3, #0x0] - orr r8, r5, r8, lsl #0x7 - and r5, r7, #0xff - str r5, [sp, #0xc] - strb r9, [r3, #0x2] - orr r5, r8, r5, asr #0x2 - strb r5, [r0, #0x1] - ldrb r5, [r3, #0x2] - ldrsh r8, [r3, #0x0] - ldrsh r6, [r1, #0xc] - mov r9, r5, lsl #0x1 - subs r7, r6, r8 - ldr r6, _020A97D4 ; =0x020FF5D4 - movmi r10, r4 - ldrsh r6, [r6, r9] - ldrpl r10, [sp, #0x40] - rsbmi r7, r7, #0x0 - cmp r7, r6 - orrge r10, r10, #0x2 - subge r7, r7, r6 - mov r9, r6, asr #0x1 - cmp r7, r9 - orrge r10, r10, #0x1 - ands r7, r10, #0x2 - mov r7, r6, asr #0x2 - addne r7, r7, r6 - ands r6, r10, #0x1 - addne r7, r7, r9 - ands r6, r10, #0x4 - rsbne r7, r7, #0x0 - add r6, r8, r7 - mov r7, #0x8000 - rsb r7, r7, #0x0 - cmp r6, r7 - ldr r7, _020A97D8 ; =0x020FF5BC - movlt r6, lr - cmp r6, r12 - ldrsb r7, [r7, r10] - movgt r6, r12 - adds r5, r5, r7 - ldrmi r5, [sp, #0x44] - bmi _020A96E4 - cmp r5, #0x58 - movgt r5, r2 -_020A96E4: - strh r6, [r3, #0x0] - strb r5, [r3, #0x2] - and r5, r10, #0xff - mov r5, r5, lsl #0x3 - and r11, r5, #0xff - ldrsh r6, [r1, #0xe] - ldrsh r5, [r3, #0x0] - ldrb r9, [r3, #0x2] - add r1, r1, #0x10 - subs r8, r6, r5 - movmi r7, r4 - ldr r6, _020A97D4 ; =0x020FF5D4 - mov r10, r9, lsl #0x1 - ldrsh r10, [r6, r10] - ldrpl r7, [sp, #0x48] - rsbmi r8, r8, #0x0 - cmp r8, r10 - orrge r7, r7, #0x2 - subge r8, r8, r10 - mov r6, r10, asr #0x1 - cmp r8, r6 - orrge r7, r7, #0x1 - ands r8, r7, #0x2 - mov r8, r10, asr #0x2 - addne r8, r8, r10 - ands r10, r7, #0x1 - addne r8, r8, r6 - ands r6, r7, #0x4 - rsbne r8, r8, #0x0 - mov r6, #0x8000 - add r5, r5, r8 - rsb r6, r6, #0x0 - cmp r5, r6 - ldr r6, _020A97D8 ; =0x020FF5BC - movlt r5, lr - cmp r5, r12 - ldrsb r6, [r6, r7] - movgt r5, r12 - adds r9, r9, r6 - ldrmi r9, [sp, #0x4c] - bmi _020A9790 - cmp r9, #0x58 - movgt r9, r2 -_020A9790: - strh r5, [r3, #0x0] - and r5, r7, #0xff - orr r6, r11, r5 - ldr r5, [sp, #0xc] - strb r9, [r3, #0x2] - orr r5, r6, r5, lsl #0x6 - strb r5, [r0, #0x2] - ldr r5, [sp, #0x0] - add r0, r0, #0x3 - add r6, r5, #0x1 - ldr r5, [sp, #0x4] - str r6, [sp, #0x0] - cmp r6, r5 - blo _020A9250 - add sp, sp, #0x54 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020A97D0: .word 0x00007FFF -_020A97D4: .word 0x020FF5D4 -_020A97D8: .word 0x020FF5BC - - arm_func_start FUN_020A97DC -FUN_020A97DC: ; 0x020A97DC - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4c - ldr r5, _020A9D08 ; =0xAAAAAAAB - mov r4, #0x0 - str r4, [sp, #0x0] - umull r5, r4, r2, r5 - str r4, [sp, #0xc] - movs r2, r4, lsr #0x1 - str r2, [sp, #0xc] - addeq sp, sp, #0x4c - ldmeqia sp!, {r4-r11,pc} -_020A9808: ; 0x020A9808 - ldr r2, [sp, #0x0] - mov r4, #0x8000 - ldr lr, _020A9D0C ; =0x00007FFF - str r2, [sp, #0x18] - str r2, [sp, #0x24] - str r2, [sp, #0x2c] - str r2, [sp, #0x34] - str r2, [sp, #0x3c] - rsb r4, r4, #0x0 - mov r12, #0x58 - str r2, [sp, #0x40] - str r2, [sp, #0x44] - str r2, [sp, #0x48] -_020A983C: - ldrb r8, [r3, #0x2] - ldr r5, _020A9D10 ; =0x020FF5D4 - ldrb r6, [r0, #0x0] - mov r7, r8, lsl #0x1 - ldrsh r5, [r5, r7] - ldrb r11, [r0, #0x1] - ldrb r2, [r0, #0x2] - str r5, [sp, #0x4] - mov r5, r6, asr #0x5 - ands r7, r5, #0x2 - ldr r7, [sp, #0x4] - ldrne r10, [sp, #0x4] - mov r7, r7, asr #0x2 - addne r7, r7, r10 - ands r10, r5, #0x1 - str r10, [sp, #0x10] - ldrne r10, [sp, #0x4] - ldrsh r9, [r3, #0x0] - addne r7, r7, r10, asr #0x1 - ands r10, r5, #0x4 - str r10, [sp, #0x14] - beq _020A98AC - sub r9, r9, r7 - mov r7, #0x8000 - rsb r7, r7, #0x0 - cmp r9, r7 - movlt r9, r4 - b _020A98B8 -_020A98AC: - add r9, r9, r7 - cmp r9, lr - movgt r9, lr -_020A98B8: - ldr r7, _020A9D14 ; =0x020FF5BC - ldrsb r5, [r7, r5] - adds r8, r8, r5 - ldrmi r8, [sp, #0x18] - bmi _020A98D4 - cmp r8, #0x58 - movgt r8, r12 -_020A98D4: - mov r5, r9, lsl #0x10 - mov r5, r5, asr #0x10 - strh r5, [r3, #0x0] - strb r8, [r3, #0x2] - strh r5, [r1, #0x0] - ldrb r8, [r3, #0x2] - mov r5, r6, asr #0x2 - ands r7, r5, #0x2 - ldr r7, _020A9D10 ; =0x020FF5D4 - mov r10, r8, lsl #0x1 - ldrsh r7, [r7, r10] - ldrsh r9, [r3, #0x0] - str r7, [sp, #0x8] - ldrne r10, [sp, #0x8] - mov r7, r7, asr #0x2 - addne r7, r7, r10 - ands r10, r5, #0x1 - str r10, [sp, #0x1c] - ldrne r10, [sp, #0x8] - addne r7, r7, r10, asr #0x1 - ands r10, r5, #0x4 - str r10, [sp, #0x20] - beq _020A9948 - sub r9, r9, r7 - mov r7, #0x8000 - rsb r7, r7, #0x0 - cmp r9, r7 - movlt r9, r4 - b _020A9954 -_020A9948: - add r9, r9, r7 - cmp r9, lr - movgt r9, lr -_020A9954: - and r7, r5, #0x7 - ldr r5, _020A9D14 ; =0x020FF5BC - ldrsb r5, [r5, r7] - adds r8, r8, r5 - ldrmi r8, [sp, #0x24] - bmi _020A9974 - cmp r8, #0x58 - movgt r8, r12 -_020A9974: - mov r5, r9, lsl #0x10 - mov r5, r5, asr #0x10 - strh r5, [r3, #0x0] - mov r6, r6, lsl #0x1 - strb r8, [r3, #0x2] - strh r5, [r1, #0x2] - and r6, r6, #0x7 - orr r6, r6, r11, asr #0x7 - ldrb r8, [r3, #0x2] - ands r5, r6, #0x2 - ldr r5, _020A9D10 ; =0x020FF5D4 - mov r7, r8, lsl #0x1 - ldrsh r10, [r5, r7] - ldrsh r9, [r3, #0x0] - mov r7, r10, asr #0x2 - addne r7, r7, r10 - ands r5, r6, #0x1 - str r5, [sp, #0x28] - addne r7, r7, r10, asr #0x1 - ands r5, r6, #0x4 - beq _020A99E0 - mov r5, #0x8000 - sub r9, r9, r7 - rsb r5, r5, #0x0 - cmp r9, r5 - movlt r9, r4 - b _020A99EC -_020A99E0: - add r9, r9, r7 - cmp r9, lr - movgt r9, lr -_020A99EC: - ldr r5, _020A9D14 ; =0x020FF5BC - ldrsb r5, [r5, r6] - adds r8, r8, r5 - ldrmi r8, [sp, #0x2c] - bmi _020A9A08 - cmp r8, #0x58 - movgt r8, r12 -_020A9A08: - mov r5, r9, lsl #0x10 - mov r5, r5, asr #0x10 - strh r5, [r3, #0x0] - strb r8, [r3, #0x2] - strh r5, [r1, #0x4] - ldrb r8, [r3, #0x2] - mov r6, r11, asr #0x4 - ands r5, r6, #0x2 - ldr r5, _020A9D10 ; =0x020FF5D4 - mov r7, r8, lsl #0x1 - ldrsh r10, [r5, r7] - ldrsh r9, [r3, #0x0] - mov r7, r10, asr #0x2 - addne r7, r7, r10 - ands r5, r6, #0x1 - str r5, [sp, #0x30] - addne r7, r7, r10, asr #0x1 - ands r5, r6, #0x4 - beq _020A9A6C - mov r5, #0x8000 - sub r9, r9, r7 - rsb r5, r5, #0x0 - cmp r9, r5 - movlt r9, r4 - b _020A9A78 -_020A9A6C: - add r9, r9, r7 - cmp r9, lr - movgt r9, lr -_020A9A78: - ldr r5, _020A9D14 ; =0x020FF5BC - and r6, r6, #0x7 - ldrsb r5, [r5, r6] - adds r8, r8, r5 - ldrmi r8, [sp, #0x34] - bmi _020A9A98 - cmp r8, #0x58 - movgt r8, r12 -_020A9A98: - mov r5, r9, lsl #0x10 - mov r5, r5, asr #0x10 - strh r5, [r3, #0x0] - strb r8, [r3, #0x2] - strh r5, [r1, #0x6] - ldrb r8, [r3, #0x2] - mov r6, r11, asr #0x1 - ands r5, r6, #0x2 - ldr r5, _020A9D10 ; =0x020FF5D4 - mov r7, r8, lsl #0x1 - ldrsh r10, [r5, r7] - ldrsh r9, [r3, #0x0] - mov r7, r10, asr #0x2 - addne r7, r7, r10 - ands r5, r6, #0x1 - str r5, [sp, #0x38] - addne r7, r7, r10, asr #0x1 - ands r5, r6, #0x4 - beq _020A9AFC - mov r5, #0x8000 - sub r9, r9, r7 - rsb r5, r5, #0x0 - cmp r9, r5 - movlt r9, r4 - b _020A9B08 -_020A9AFC: - add r9, r9, r7 - cmp r9, lr - movgt r9, lr -_020A9B08: - ldr r5, _020A9D14 ; =0x020FF5BC - and r6, r6, #0x7 - ldrsb r5, [r5, r6] - adds r8, r8, r5 - ldrmi r8, [sp, #0x3c] - bmi _020A9B28 - cmp r8, #0x58 - movgt r8, r12 -_020A9B28: - mov r5, r9, lsl #0x10 - mov r6, r5, asr #0x10 - mov r5, r11, lsl #0x2 - and r5, r5, #0x7 - strh r6, [r3, #0x0] - strb r8, [r3, #0x2] - strh r6, [r1, #0x8] - orr r5, r5, r2, asr #0x6 - ands r6, r5, #0x2 - ldrb r6, [r3, #0x2] - ldr r8, _020A9D10 ; =0x020FF5D4 - ldrsh r7, [r3, #0x0] - mov r9, r6, lsl #0x1 - ldrsh r10, [r8, r9] - mov r9, r10, asr #0x2 - addne r9, r9, r10 - ands r8, r5, #0x1 - addne r9, r9, r10, asr #0x1 - ands r8, r5, #0x4 - beq _020A9B90 - mov r8, #0x8000 - sub r7, r7, r9 - rsb r8, r8, #0x0 - cmp r7, r8 - movlt r7, r4 - b _020A9B9C -_020A9B90: - add r7, r7, r9 - cmp r7, lr - movgt r7, lr -_020A9B9C: - ldr r8, _020A9D14 ; =0x020FF5BC - ldrsb r5, [r8, r5] - adds r6, r6, r5 - ldrmi r6, [sp, #0x40] - bmi _020A9BB8 - cmp r6, #0x58 - movgt r6, r12 -_020A9BB8: - mov r5, r7, lsl #0x10 - mov r5, r5, asr #0x10 - strh r5, [r3, #0x0] - strb r6, [r3, #0x2] - strh r5, [r1, #0xa] - ldrb r6, [r3, #0x2] - mov r5, r2, asr #0x3 - ands r8, r5, #0x2 - ldr r8, _020A9D10 ; =0x020FF5D4 - mov r9, r6, lsl #0x1 - ldrsh r10, [r8, r9] - ldrsh r7, [r3, #0x0] - mov r9, r10, asr #0x2 - addne r9, r9, r10 - ands r8, r5, #0x1 - addne r9, r9, r10, asr #0x1 - ands r8, r5, #0x4 - beq _020A9C18 - mov r8, #0x8000 - sub r7, r7, r9 - rsb r8, r8, #0x0 - cmp r7, r8 - movlt r7, r4 - b _020A9C24 -_020A9C18: - add r7, r7, r9 - cmp r7, lr - movgt r7, lr -_020A9C24: - and r8, r5, #0x7 - ldr r5, _020A9D14 ; =0x020FF5BC - ldrsb r5, [r5, r8] - adds r6, r6, r5 - ldrmi r6, [sp, #0x44] - bmi _020A9C44 - cmp r6, #0x58 - movgt r6, r12 -_020A9C44: - mov r5, r7, lsl #0x10 - mov r5, r5, asr #0x10 - strh r5, [r3, #0x0] - strb r6, [r3, #0x2] - strh r5, [r1, #0xc] - ands r5, r2, #0x2 - ldrb r5, [r3, #0x2] - ldr r7, _020A9D10 ; =0x020FF5D4 - ldrsh r6, [r3, #0x0] - mov r8, r5, lsl #0x1 - ldrsh r9, [r7, r8] - mov r8, r9, asr #0x2 - addne r8, r8, r9 - ands r7, r2, #0x1 - addne r8, r8, r9, asr #0x1 - ands r7, r2, #0x4 - beq _020A9CA0 - mov r7, #0x8000 - sub r6, r6, r8 - rsb r7, r7, #0x0 - cmp r6, r7 - movlt r6, r4 - b _020A9CAC -_020A9CA0: - add r6, r6, r8 - cmp r6, lr - movgt r6, lr -_020A9CAC: - and r7, r2, #0x7 - ldr r2, _020A9D14 ; =0x020FF5BC - ldrsb r2, [r2, r7] - adds r5, r5, r2 - ldrmi r5, [sp, #0x48] - bmi _020A9CCC - cmp r5, #0x58 - movgt r5, r12 -_020A9CCC: - mov r2, r6, lsl #0x10 - mov r2, r2, asr #0x10 - strh r2, [r3, #0x0] - strb r5, [r3, #0x2] - strh r2, [r1, #0xe] - ldr r2, [sp, #0x0] - add r0, r0, #0x3 - add r5, r2, #0x1 - ldr r2, [sp, #0xc] - add r1, r1, #0x10 - str r5, [sp, #0x0] - cmp r5, r2 - blo _020A983C - add sp, sp, #0x4c - ldmia sp!, {r4-r11,pc} - .balign 4 -_020A9D08: .word 0xAAAAAAAB -_020A9D0C: .word 0x00007FFF -_020A9D10: .word 0x020FF5D4 -_020A9D14: .word 0x020FF5BC - - arm_func_start FUN_020A9D18 -FUN_020A9D18: ; 0x020A9D18 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x1c - movs r2, r2, lsr #0x1 - str r2, [sp, #0x4] - mov r2, #0x0 - str r2, [sp, #0x0] - addeq sp, sp, #0x1c - ldmeqia sp!, {r4-r11,pc} -_020A9D38: ; 0x020A9D38 - mov r4, #0x8000 - rsb r5, r4, #0x0 - ldr fp, _020A9F04 ; =0x00007FFF - str r2, [sp, #0xc] - str r2, [sp, #0x10] - str r2, [sp, #0x14] - str r2, [sp, #0x18] - mov r6, #0x8 - mov r4, #0x58 -_020A9D5C: - ldrb r2, [r3, #0x2] - ldrsh r8, [r3, #0x0] - ldrsh r7, [r1, #0x0] - ldr sb, _020A9F08 ; =0x020FF5D4 - mov r12, r2, lsl #0x1 - subs r7, r7, r8 - ldrsh r12, [r9, r12] - movmi r10, r6 - ldrpl r10, [sp, #0xc] - rsbmi r7, r7, #0x0 - cmp r7, r12 - orrge r10, r10, #0x4 - subge r7, r7, r12 - mov lr, r12, asr #0x1 - cmp r7, lr - orrge r10, r10, #0x2 - subge r7, r7, lr - mov r9, r12, asr #0x2 - cmp r7, r9 - orrge r10, r10, #0x1 - ands r7, r10, #0x4 - mov r7, r12, asr #0x3 - addne r7, r7, r12 - ands r12, r10, #0x2 - addne r7, r7, lr - ands r12, r10, #0x1 - addne r7, r7, r9 - ands r9, r10, #0x8 - rsbne r7, r7, #0x0 - add r7, r8, r7 - mov r8, #0x8000 - rsb r8, r8, #0x0 - cmp r7, r8 - ldr r8, _020A9F0C ; =0x020FF5C4 - movlt r7, r5 - cmp r7, r11 - ldrsb r8, [r8, r10] - movgt r7, r11 - adds r2, r2, r8 - ldrmi r2, [sp, #0x10] - bmi _020A9E08 - cmp r2, #0x58 - movgt r2, r4 -_020A9E08: - strh r7, [r3, #0x0] - strb r2, [r3, #0x2] - ldrsh r2, [r3, #0x0] - ldrsh r8, [r1, #0x2] - and lr, r10, #0xff - str r2, [sp, #0x8] - ldrb r2, [r3, #0x2] - ldr r7, [sp, #0x8] - add r1, r1, #0x4 - subs r7, r8, r7 - movmi r10, r6 - ldr r8, _020A9F08 ; =0x020FF5D4 - mov r9, r2, lsl #0x1 - ldrsh r12, [r8, r9] - ldrpl r10, [sp, #0x14] - rsbmi r7, r7, #0x0 - cmp r7, r12 - orrge r10, r10, #0x4 - subge r7, r7, r12 - mov r9, r12, asr #0x1 - cmp r7, r9 - orrge r10, r10, #0x2 - subge r7, r7, r9 - mov r8, r12, asr #0x2 - cmp r7, r8 - orrge r10, r10, #0x1 - ands r7, r10, #0x4 - mov r7, r12, asr #0x3 - addne r7, r7, r12 - ands r12, r10, #0x2 - addne r7, r7, r9 - ands r9, r10, #0x1 - addne r7, r7, r8 - ands r8, r10, #0x8 - ldr r8, [sp, #0x8] - rsbne r7, r7, #0x0 - add r7, r8, r7 - mov r8, #0x8000 - rsb r8, r8, #0x0 - cmp r7, r8 - ldr r8, _020A9F0C ; =0x020FF5C4 - movlt r7, r5 - cmp r7, r11 - ldrsb r8, [r8, r10] - movgt r7, r11 - adds r2, r2, r8 - ldrmi r2, [sp, #0x18] - bmi _020A9ED0 - cmp r2, #0x58 - movgt r2, r4 -_020A9ED0: - strh r7, [r3, #0x0] - strb r2, [r3, #0x2] - and r2, r10, #0xff - orr r2, lr, r2, lsl #0x4 - strb r2, [r0], #0x1 - ldr r2, [sp, #0x0] - add r7, r2, #0x1 - ldr r2, [sp, #0x4] - str r7, [sp, #0x0] - cmp r7, r2 - blo _020A9D5C - add sp, sp, #0x1c - ldmia sp!, {r4-r11,pc} - .balign 4 -_020A9F04: .word 0x00007FFF -_020A9F08: .word 0x020FF5D4 -_020A9F0C: .word 0x020FF5C4 - - arm_func_start FUN_020A9F10 -FUN_020A9F10: ; 0x020A9F10 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x1c - cmp r2, #0x0 - addls sp, sp, #0x1c - mov r12, #0x0 - ldmlsia sp!, {r4-r11,pc} -_020A9F28: ; 0x020A9F28 - mov r4, #0x8000 - ldr fp, _020AA098 ; =0x00007FFF - str r12, [sp, #0x8] - str r12, [sp, #0x14] - rsb r4, r4, #0x0 - mov lr, #0x58 -_020A9F40: - ldrb r5, [r0, #0x0] - ldrb r6, [r3, #0x2] - ldrsh r7, [r3, #0x0] - and r9, r5, #0xf - ldr r5, _020AA09C ; =0x020FF5D4 - mov r8, r6, lsl #0x1 - ldrsh r8, [r5, r8] - ands r5, r9, #0x4 - mov r5, r8, asr #0x3 - addne r5, r5, r8 - ands r10, r9, #0x2 - str r10, [sp, #0x0] - addne r5, r5, r8, asr #0x1 - ands r10, r9, #0x1 - addne r5, r5, r8, asr #0x2 - str r10, [sp, #0x4] - ands r8, r9, #0x8 - beq _020A9FA0 - sub r7, r7, r5 - mov r5, #0x8000 - rsb r5, r5, #0x0 - cmp r7, r5 - movlt r7, r4 - b _020A9FAC -_020A9FA0: - add r7, r7, r5 - cmp r7, r11 - movgt r7, r11 -_020A9FAC: - ldr r5, _020AA0A0 ; =0x020FF5C4 - ldrsb r5, [r5, r9] - adds r6, r6, r5 - ldrmi r6, [sp, #0x8] - bmi _020A9FC8 - cmp r6, #0x58 - movgt r6, lr -_020A9FC8: - mov r5, r7, lsl #0x10 - mov r5, r5, asr #0x10 - strh r5, [r3, #0x0] - strb r6, [r3, #0x2] - strh r5, [r1, #0x0] - ldrb r5, [r0, #0x0] - ldrb r6, [r3, #0x2] - ldrsh r7, [r3, #0x0] - mov r5, r5, asr #0x4 - and r9, r5, #0xf - ldr r5, _020AA09C ; =0x020FF5D4 - mov r8, r6, lsl #0x1 - ldrsh r8, [r5, r8] - ands r5, r9, #0x4 - mov r5, r8, asr #0x3 - addne r5, r5, r8 - ands r10, r9, #0x2 - str r10, [sp, #0xc] - addne r5, r5, r8, asr #0x1 - ands r10, r9, #0x1 - addne r5, r5, r8, asr #0x2 - str r10, [sp, #0x10] - ands r8, r9, #0x8 - beq _020AA040 - sub r7, r7, r5 - mov r5, #0x8000 - rsb r5, r5, #0x0 - cmp r7, r5 - movlt r7, r4 - b _020AA04C -_020AA040: - add r7, r7, r5 - cmp r7, r11 - movgt r7, r11 -_020AA04C: - ldr r5, _020AA0A0 ; =0x020FF5C4 - ldrsb r5, [r5, r9] - adds r6, r6, r5 - ldrmi r6, [sp, #0x14] - bmi _020AA068 - cmp r6, #0x58 - movgt r6, lr -_020AA068: - mov r5, r7, lsl #0x10 - mov r7, r5, asr #0x10 - strh r7, [r3, #0x0] - strb r6, [r3, #0x2] - add r12, r12, #0x1 - strh r7, [r1, #0x2] - cmp r12, r2 - add r1, r1, #0x4 - add r0, r0, #0x1 - blo _020A9F40 - add sp, sp, #0x1c - ldmia sp!, {r4-r11,pc} - .balign 4 -_020AA098: .word 0x00007FFF -_020AA09C: .word 0x020FF5D4 -_020AA0A0: .word 0x020FF5C4 - - arm_func_start FUN_020AA0A4 -FUN_020AA0A4: - stmdb sp!, {r4-r8,lr} - ldr r0, _020AA1B4 ; =0x021CA8D0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - moveq r0, #0x1 - ldmeqia sp!, {r4-r8,pc} -_020AA0BC: ; 0x020AA0BC - ldr r1, _020AA1B8 ; =0x021CAF00 - ldr r0, [r1, #0x8c8] - cmp r0, #0x0 - bne _020AA0FC - bl FUN_020AA4C0 - ldr r1, _020AA1B8 ; =0x021CAF00 - cmp r0, #0x0 - str r0, [r1, #0x8c8] - beq _020AA0F4 - ldr r0, _020AA1BC ; =0x021CA8C8 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - movne r0, #0x0 - ldmneia sp!, {r4-r8,pc} -_020AA0F4: - mov r0, #0x1 - ldmia sp!, {r4-r8,pc} -_020AA0FC: - ldr r0, _020AA1C0 ; =0x021CCD20 - mov r5, #0x1 - ldr r0, [r0, #0x10] - cmp r0, #0x2 - bne _020AA130 - ldr r3, [r1, #0x8d4] - ldr r2, _020AA1C4 ; =0x020FF694 - mov r0, #0x3 - mla r0, r3, r0, r2 - ldr r3, [r1, #0x8d0] - add r2, r3, #0x1 - ldrb r5, [r3, r0] - str r2, [r1, #0x8d0] -_020AA130: - mov r4, #0x0 - ldr r7, _020AA1B8 ; =0x021CAF00 - mov r8, #0x80000000 - ldr r6, _020AA1C8 ; =0x021CA8BC - b _020AA1A4 -_020AA144: - ldr r1, [r7, #0x8cc] - mov r2, r1 - clz r2, r2 - cmp r2, #0x20 - beq _020AA1AC - mvn r0, r8, lsr r2 - and r3, r1, r0 - rsb r0, r2, #0x1f - ldr r1, [r7, #0x8c8] - ldr r2, [r6, #0x0] - str r3, [r7, #0x8cc] - and r0, r0, #0xff - bl FUN_021EAE90 - ldr r0, [r7, #0x8cc] - cmp r0, #0x0 - bne _020AA1A0 - ldr r1, [r7, #0x8c0] - mov r0, #0x0 - add r1, r1, #0x1 - str r1, [r7, #0x8c0] - str r0, [r7, #0x8c8] - str r0, [r7, #0x8cc] - b _020AA1AC -_020AA1A0: - add r4, r4, #0x1 -_020AA1A4: - cmp r4, r5 - blt _020AA144 -_020AA1AC: - mov r0, #0x1 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020AA1B4: .word 0x021CA8D0 -_020AA1B8: .word 0x021CAF00 -_020AA1BC: .word 0x021CA8C8 -_020AA1C0: .word 0x021CCD20 -_020AA1C4: .word 0x020FF694 -_020AA1C8: .word 0x021CA8BC - - arm_func_start FUN_020AA1CC -FUN_020AA1CC: ; 0x020AA1CC - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - bl FUN_020AB154 -_020AA1D8: ; 0x020AA1D8 - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,pc} -_020AA1E8: ; 0x020AA1E8 - ldrb r5, [r0, #0x11] - mov r0, r5 - bl FUN_020AB144 - mov r6, r0 - cmp r6, #0x0 - mov r7, #0x0 - ble _020AA294 -_020AA204: - mov r0, r5 - bl FUN_020AB10C - mov r4, r0 - ldr r3, [r4, #0xc] - cmp r3, #0x2 - blt _020AA230 - ldr r0, [r4, #0x474] - ldr r2, [r4, #0x14] - add r1, r4, #0x1c - bl FUN_020A8C28 - b _020AA25C -_020AA230: - cmp r3, #0x1 - bne _020AA24C - ldr r0, [r4, #0x474] - ldr r2, [r4, #0x14] - add r1, r4, #0x1c - bl FUN_020AB328 - b _020AA25C -_020AA24C: - ldr r0, [r4, #0x474] - ldr r2, [r4, #0x14] - add r1, r4, #0x1c - bl FUN_020AB2C0 -_020AA25C: - add r1, r4, #0x1c - mov r0, r4 - str r1, [r4, #0x474] - bl FUN_020AB088 - ldrb r1, [r4, #0x11] - mov r0, r4 - bl FUN_020AB500 -_020AA278: ; 0x020AA278 - cmp r0, #0x0 - bge _020AA288 - mov r0, r4 - bl FUN_020ACD90 -_020AA288: - add r7, r7, #0x1 - cmp r7, r6 - blt _020AA204 -_020AA294: - mov r0, r6 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - - arm_func_start FUN_020AA2A0 -FUN_020AA2A0: ; 0x020AA2A0 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - ldr r4, _020AA4A8 ; =0x021CA8D0 - mov r10, r0 - ldr r0, [r4, #0x0] - ldr r7, [sp, #0x28] - cmp r0, #0x0 - mov r5, #0x0 - mov r9, r1 - mov r8, r2 - mov r11, r3 - addeq sp, sp, #0x4 - moveq r0, r5 - ldmeqia sp!, {r4-r11,pc} -_020AA2D8: ; 0x020AA2D8 - ldr r1, _020AA4AC ; =0x021CA8E8 - mov r2, r5 -_020AA2E0: - ldr r0, [r1, #0x38] - cmp r10, r0 - ldreq r1, _020AA4AC ; =0x021CA8E8 - moveq r0, #0x94 - mlaeq r5, r2, r0, r1 - beq _020AA308 - add r2, r2, #0x1 - cmp r2, #0x3 - add r1, r1, #0x94 - blo _020AA2E0 -_020AA308: - cmp r5, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r11,pc} -_020AA318: ; 0x020AA318 - ldrb r0, [r9, #0x4] - cmp r0, #0x41 - bne _020AA344 - ldrh r2, [r9, #0x6] - mov r0, #0x0 - mov r1, #0x1 - str r2, [r5, #0x30] - str r0, [r5, #0x4c] - add sp, sp, #0x4 - str r1, [r5, #0x6c] - ldmia sp!, {r4-r11,pc} -_020AA344: - cmp r0, #0x40 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {r4-r11,pc} -_020AA354: ; 0x020AA354 - ldrb r0, [r9, #0x5] - and r4, r0, #0x7f - cmp r4, #0x5 - addge sp, sp, #0x4 - str r4, [r5, #0x24] - movge r0, #0x0 - ldmgeia sp!, {r4-r11,pc} -_020AA370: ; 0x020AA370 - ldr r1, _020AA4B0 ; =0x020FF689 - ldr r0, _020AA4B4 ; =0x020FF688 - ldrb r2, [r1, r4, lsl #0x1] - ldrb r1, [r0, r4, lsl #0x1] - mov r0, #0x44 - mla r0, r1, r0, r2 - add r0, r0, #0xc - cmp r8, r0 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {r4-r11,pc} -_020AA39C: ; 0x020AA39C - cmp r10, #0x0 - movne r0, #0x1 - movne r1, r0, lsl r10 - ldr r0, _020AA4B8 ; =0x021CA8B4 - moveq r1, #0x1 - ldr r0, [r0, #0x0] - ands r0, r0, r1 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r11,pc} -_020AA3C4: ; 0x020AA3C4 - bl FUN_020ACDC8 - movs r6, r0 - bne _020AA40C - ldr r0, [r5, #0x34] - bl FUN_020AB6C4 - ldr r0, [r5, #0x34] - bl FUN_020AB234 - bl FUN_020ACDC8 - movs r6, r0 - bne _020AA3FC - bl FUN_020AB630 - bl FUN_020AB1E4 - bl FUN_020ACDC8 - mov r6, r0 -_020AA3FC: - cmp r6, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r11,pc} -_020AA40C: - ldr r0, _020AA4BC ; =0x0000045C - sub r2, r8, #0xc - add r0, r6, r0 - sub r1, r0, r2 - add r0, r9, #0xc - str r1, [sp, #0x0] - bl MI_CpuCopy8 - ldr r0, [r5, #0x34] - sub r1, r8, #0xc - strb r0, [r6, #0x11] - ldr r0, [sp, #0x0] - str r4, [r6, #0xc] - str r0, [r6, #0x474] - str r1, [r6, #0x14] - str r11, [r6, #0x464] - str r7, [r6, #0x468] - strb r10, [r6, #0x10] - ldrb r2, [r9, #0x5] - mov r0, r5 - mov r1, r6 - and r2, r2, #0x80 - str r2, [r6, #0x45c] - ldr r2, [r9, #0x8] - str r2, [r6, #0x460] - ldrh r2, [r9, #0x6] - str r2, [r6, #0x18] - bl FUN_020AB760 -_020AA478: ; 0x020AA478 - cmp r0, #0x0 - bne _020AA494 - mov r0, r6 - bl FUN_020ACD90 - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r11,pc} -_020AA494: - mov r0, r6 - bl FUN_020AB164 - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020AA4A8: .word 0x021CA8D0 -_020AA4AC: .word 0x021CA8E8 -_020AA4B0: .word 0x020FF689 -_020AA4B4: .word 0x020FF688 -_020AA4B8: .word 0x021CA8B4 -_020AA4BC: .word 0x0000045C - - arm_func_start FUN_020AA4C0 -FUN_020AA4C0: ; 0x020AA4C0 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x8 - ldr r0, _020AA728 ; =0x021CAF00 - ldr r1, _020AA72C ; =0x021CA8CC - ldr r3, [r0, #0x8c4] - ldr r2, [r0, #0x8c0] - ldr r5, [r1, #0x0] - sub r1, r3, r2 - cmp r1, #0x1 - subhi r1, r3, #0x1 - strhi r1, [r0, #0x8c0] - movhi r1, #0x1 - cmp r1, #0x0 - addeq sp, sp, #0x8 - moveq r0, #0x0 - ldmeqia sp!, {r4-r8,pc} -_020AA500: ; 0x020AA500 - ldr r0, _020AA728 ; =0x021CAF00 - ldr r0, [r0, #0x8c0] - ands r0, r0, #0x1 - movne r1, #0x0 - moveq r1, #0x460 - ldr r0, _020AA728 ; =0x021CAF00 - cmp r5, #0x2 - add r8, r0, r1 - ldr r1, _020AA730 ; =0x021CA8D4 - add r7, r8, #0xc - addge r7, r7, #0x4 - ldr r1, [r1, #0x0] - mov r0, r7 - bl FUN_020AD500 - ldr r2, _020AA734 ; =0x040002B0 - mov r3, #0x0 - ldr r1, _020AA738 ; =0x040002B8 - mov r6, r0 - strh r3, [r2, #0x0] - str r6, [r1, #0x0] -_020AA550: - ldrh r0, [r2, #0x0] - ands r0, r0, #0x8000 - bne _020AA550 - ldr r0, _020AA73C ; =0x021CA8C8 - ldr r1, _020AA740 ; =0x040002B4 - ldr r0, [r0, #0x0] - ldr r4, [r1, #0x0] - cmp r0, #0x0 - beq _020AA588 - ldr r1, _020AA730 ; =0x021CA8D4 - mov r0, r7 - ldr r1, [r1, #0x0] - mov r2, r4 - bl FUN_020AD1CC -_020AA588: - ldr r0, _020AA744 ; =0x0210646C - strb r5, [r8, #0x5] - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020AA5FC - mov r0, r6 - mov r1, r4 - mov r2, #0x0 - bl FUN_020ACF38 - ldr r1, _020AA748 ; =0x021CA8D8 - cmp r0, #0x0 - str r0, [r1, #0x0] - beq _020AA5D4 - cmp r0, #0x1 - beq _020AA5F0 - cmp r0, #0x3 - moveq r0, #0x41 - streqb r0, [r8, #0x4] - b _020AA5FC -_020AA5D4: - ldr r1, _020AA728 ; =0x021CAF00 - add sp, sp, #0x8 - ldr r2, [r1, #0x8c0] - mov r0, #0x0 - add r2, r2, #0x1 - str r2, [r1, #0x8c0] - ldmia sp!, {r4-r8,pc} -_020AA5F0: - ldrb r0, [r8, #0x5] - orr r0, r0, #0x80 - strb r0, [r8, #0x5] -_020AA5FC: - ldr r0, _020AA744 ; =0x0210646C - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020AA62C - ldr r0, _020AA74C ; =0x021CA8B8 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - ldrneb r2, [r8, #0x5] - movne r1, #0x0 - orrne r2, r2, #0x80 - strneb r2, [r8, #0x5] - strne r1, [r0, #0x0] -_020AA62C: - ldr r0, _020AA750 ; =0x021CA8C4 - ldr r1, [r0, #0x0] - cmp r1, #0x0 - ldrneb r2, [r8, #0x5] - movne r1, #0x0 - orrne r2, r2, #0x80 - strneb r2, [r8, #0x5] - strne r1, [r0, #0x0] - cmp r5, #0x2 - blt _020AA690 - ldrb r0, [r8, #0x5] - ldr r3, _020AA754 ; =0x021CA8C0 - ands r0, r0, #0x80 - ldrne r0, _020AA754 ; =0x021CA8C0 - movne r1, #0x0 - strneh r1, [r0, #0x0] - strneb r1, [r0, #0x2] - ldr r0, _020AA730 ; =0x021CA8D4 - str r5, [sp, #0x0] - ldr r2, [r0, #0x0] - mov r1, r7 - sub r0, r7, #0x4 - mov r2, r2, lsr #0x1 - bl FUN_020A8BC8 - b _020AA6D4 -_020AA690: - cmp r5, #0x1 - bne _020AA6B4 - ldr r1, _020AA730 ; =0x021CA8D4 - mov r0, r7 - ldr r2, [r1, #0x0] - mov r1, r7 - mov r2, r2, lsr #0x1 - bl FUN_020AB37C - b _020AA6D4 -_020AA6B4: - cmp r5, #0x0 - bne _020AA6D4 - ldr r1, _020AA730 ; =0x021CA8D4 - mov r0, r7 - ldr r2, [r1, #0x0] - mov r1, r7 - mov r2, r2, lsr #0x1 - bl FUN_020AB2FC -_020AA6D4: - ldr r0, _020AA758 ; =0x021CCD20 - ldr r1, _020AA75C ; =0x021CA8B4 - ldrb r0, [r0, #0x0] - mov r2, #0x1 - ldr r3, [r1, #0x0] - mvn r0, r2, lsl r0 - ldr r1, _020AA728 ; =0x021CAF00 - and r0, r3, r0 - str r3, [r1, #0x8cc] - str r0, [r1, #0x8cc] - bl MATH_CountPopulation - sub r0, r0, #0x1 - ldr r1, _020AA728 ; =0x021CAF00 - cmp r0, #0x7 - str r0, [r1, #0x8d4] - movgt r0, #0x0 - movle r2, #0x0 - movle r0, r8 - strle r2, [r1, #0x8d0] - add sp, sp, #0x8 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020AA728: .word 0x021CAF00 -_020AA72C: .word 0x021CA8CC -_020AA730: .word 0x021CA8D4 -_020AA734: .word 0x040002B0 -_020AA738: .word 0x040002B8 -_020AA73C: .word 0x021CA8C8 -_020AA740: .word 0x040002B4 -_020AA744: .word 0x0210646C -_020AA748: .word 0x021CA8D8 -_020AA74C: .word 0x021CA8B8 -_020AA750: .word 0x021CA8C4 -_020AA754: .word 0x021CA8C0 -_020AA758: .word 0x021CCD20 -_020AA75C: .word 0x021CA8B4 - - arm_func_start FUN_020AA760 -FUN_020AA760: ; 0x020AA760 - ldr r1, _020AA76C ; =0x021CA8C8 - str r0, [r1, #0x0] - bx lr - .balign 4 -_020AA76C: .word 0x021CA8C8 - - arm_func_start FUN_020AA770 -FUN_020AA770: ; 0x020AA770 - stmdb sp!, {r4,lr} - ldr r1, _020AA798 ; =0x0210646C - mov r4, r0 - str r4, [r1, #0x0] - bl FUN_020AD170 -_020AA784: ; 0x020AA784 - cmp r4, #0x0 - ldreq r0, _020AA79C ; =0x021CA8B8 - moveq r1, #0x1 - streq r1, [r0, #0x0] - ldmia sp!, {r4,pc} - .balign 4 -_020AA798: .word 0x0210646C -_020AA79C: .word 0x021CA8B8 - - arm_func_start FUN_020AA7A0 -FUN_020AA7A0: ; 0x020AA7A0 - cmp r0, #0x5 - movge r0, #0x0 - bxge lr - ldr r1, _020AA80C ; =0x021CCD20 - ldr r1, [r1, #0x10] - cmp r1, #0x1 - beq _020AA7C8 - cmp r0, #0x1 - movls r0, #0x0 - bxls lr -_020AA7C8: - ldr r2, _020AA810 ; =0x020FF689 - ldr r1, _020AA814 ; =0x020FF688 - ldrb r12, [r2, r0, lsl #0x1] - ldrb r3, [r1, r0, lsl #0x1] - mov r1, #0x44 - ldr r2, _020AA818 ; =0x021CA8CC - mla r12, r3, r1, r12 - str r0, [r2, #0x0] - ldr r1, _020AA81C ; =0x021CA8BC - add r3, r12, #0xc - ldr r0, _020AA820 ; =0x021CA8C0 - mov r2, #0x0 - str r3, [r1, #0x0] - strh r2, [r0, #0x0] - strb r2, [r0, #0x2] - mov r0, #0x1 - bx lr - .balign 4 -_020AA80C: .word 0x021CCD20 -_020AA810: .word 0x020FF689 -_020AA814: .word 0x020FF688 -_020AA818: .word 0x021CA8CC -_020AA81C: .word 0x021CA8BC -_020AA820: .word 0x021CA8C0 - - arm_func_start FUN_020AA824 -FUN_020AA824: ; 0x020AA824 - stmdb sp!, {r4-r10,lr} - movs r5, r2 - mov r7, r0 - movne r0, #0x0 - strne r0, [r5, #0x0] - ldr r0, _020AA958 ; =0x021CA8D4 - mov r6, r1 - ldr r0, [r0, #0x0] - mov r4, #0x0 - cmp r6, r0 - bne _020AA920 - ldr r8, _020AA95C ; =0x021CA8D0 - ldr r0, [r8, #0x0] - cmp r0, #0x0 - beq _020AA920 - mov r9, r4 - cmp r0, #0x0 - bls _020AA89C -_020AA86C: - mov r0, r7 - mov r1, r6 - mov r2, r9 - mov r3, r5 - bl FUN_020AA968 - cmp r0, #0x1 - moveq r4, #0x1 - beq _020AA89C - ldr r0, [r8, #0x0] - add r9, r9, #0x1 - cmp r9, r0 - blo _020AA86C -_020AA89C: - cmp r4, #0x0 - beq _020AA90C - ldr r8, _020AA95C ; =0x021CA8D0 - add r10, r9, #0x1 - ldr r0, [r8, #0x0] - cmp r10, r0 - moveq r4, #0x1 - beq _020AA934 - cmp r10, r0 - bhs _020AA934 - ldr sb, _020AA960 ; =0x021CAAA4 -_020AA8C8: - mov r0, r9 - mov r1, r6 - mov r2, r10 - mov r3, r5 - bl FUN_020AA968 - cmp r0, #0x1 - bne _020AA8F8 - mov r0, r7 - mov r1, r9 - mov r2, r7 - mov r3, r6 - bl FUN_020AD61C -_020AA8F8: - ldr r0, [r8, #0x0] - add r10, r10, #0x1 - cmp r10, r0 - blo _020AA8C8 - b _020AA934 -_020AA90C: - mov r1, r7 - mov r2, r6 - mov r0, #0x0 - bl MIi_CpuClearFast - b _020AA934 -_020AA920: - mov r1, r7 - mov r2, r6 - mov r0, #0x0 - bl MIi_CpuClearFast - mov r4, #0x0 -_020AA934: - ldr r0, _020AA964 ; =0x021CA8C8 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _020AA950 - mov r0, r7 - mov r1, r6 - bl FUN_020AD45C -_020AA950: - mov r0, r4 - ldmia sp!, {r4-r10,pc} - .balign 4 -_020AA958: .word 0x021CA8D4 -_020AA95C: .word 0x021CA8D0 -_020AA960: .word 0x021CAAA4 -_020AA964: .word 0x021CA8C8 - - arm_func_start FUN_020AA968 -FUN_020AA968: ; 0x020AA968 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0xc - ldr r4, _020AABD4 ; =0x021CA8E8 - mov r10, r2 - mov r2, #0x94 - mla r6, r10, r2, r4 - str r0, [sp, #0x0] - mov r0, r10 - str r1, [sp, #0x4] - str r3, [sp, #0x8] - mov r5, #0x1 - bl FUN_020AB434 - movs r8, r0 - beq _020AABB0 - mov r11, #0x0 -_020AA9A4: - bl OS_GetTick - mov r4, r0 - mov r0, r10 - mov r9, r1 - bl FUN_020AB4B8 - movs r7, r0 - beq _020AAB98 - mov r0, #0x34 - adds r2, r4, r0 - ldr r8, [r7, #0x46c] - ldr r3, [r7, #0x470] - mov r1, #0x0 - adc r0, r9, #0x0 - cmp r3, r0 - cmpeq r8, r2 - bls _020AAA68 - ldr r0, [r7, #0x45c] - cmp r0, #0x0 - bne _020AAA5C - ldr r0, [r6, #0x3c] - cmp r0, #0x0 - beq _020AAA5C - ldr r0, [r6, #0x20] - ldr r1, [sp, #0x0] - add r0, r0, #0x1 - str r0, [r6, #0x20] - ldr r0, [r6, #0x3c] - ldr r2, [sp, #0x4] - ldr r0, [r0, #0x474] - bl MIi_CpuCopyFast - ldr r0, [r6, #0x3c] - bl FUN_020ACD90 -_020AAA24: ; 0x020AAA24 - mov r0, #0x0 - str r0, [r6, #0x3c] - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _020AAA50 - ldrb r1, [r7, #0x10] - ldr r2, [r0, #0x0] - mov r0, #0x1 - orr r1, r2, r0, lsl r1 - ldr r0, [sp, #0x8] - str r1, [r0, #0x0] -_020AAA50: - add sp, sp, #0xc - mov r0, #0x1 - ldmia sp!, {r4-r11,pc} -_020AAA5C: - add sp, sp, #0xc - mov r0, #0x0 - ldmia sp!, {r4-r11,pc} -_020AAA68: - ldr r0, _020AABD8 ; =0x00008B4C - adds r2, r8, r0 - adc r0, r3, r1 - cmp r9, r0 - cmpeq r4, r2 - bls _020AAAA8 - ldr r2, [r7, #0x18] - mov r0, r6 - mov r1, r7 - str r2, [r6, #0x58] - bl FUN_020ABC0C - mov r8, r0 - mov r0, r10 - bl FUN_020AB4B8 - mov r5, r11 - b _020AABA8 -_020AAAA8: - ldr r1, [r6, #0x58] - ldr r2, [r7, #0x18] - add r0, r1, #0x1 - cmp r0, r2 - beq _020AAAE0 - cmp r1, #0x0 - beq _020AAAE0 - cmp r1, r2 - bhi _020AAAE0 - ldr r0, [r7, #0x45c] - cmp r0, #0x0 - ldreq r0, [r6, #0x14] - addeq r0, r0, #0x1 - streq r0, [r6, #0x14] -_020AAAE0: - ldr r0, [r7, #0x18] - cmp r5, #0x0 - str r0, [r6, #0x58] - beq _020AAB24 - ldr r0, [r6, #0x70] - cmp r0, #0x0 - beq _020AAB24 - mov r0, r6 - mov r1, r7 - bl FUN_020ABC0C - mov r8, r0 - mov r0, r10 - bl FUN_020AB4B8 - ldr r0, [r6, #0x70] - sub r0, r0, #0x1 - str r0, [r6, #0x70] - b _020AABA8 -_020AAB24: - ldr r1, [r7, #0x464] - ldr r0, [r6, #0x28] - subs r2, r4, r1 - str r2, [r6, #0x28] - ldr r1, [r6, #0x28] - sub r0, r2, r0 - sub r0, r0, r1 - add r0, r1, r0, lsr #0x4 - str r0, [r6, #0x2c] - str r0, [r6, #0x0] - ldr r0, [r7, #0x474] - ldr r1, [sp, #0x0] - ldr r2, [sp, #0x4] - bl MIi_CpuCopyFast - mov r0, r6 - mov r1, r7 - bl FUN_020ABC0C - ldr r0, [sp, #0x8] - cmp r0, #0x0 - beq _020AAB8C - ldrb r1, [r7, #0x10] - ldr r2, [r0, #0x0] - mov r0, #0x1 - orr r1, r2, r0, lsl r1 - ldr r0, [sp, #0x8] - str r1, [r0, #0x0] -_020AAB8C: - add sp, sp, #0xc - mov r0, #0x1 - ldmia sp!, {r4-r11,pc} -_020AAB98: - add sp, sp, #0xc - str r8, [r6, #0x8] - mov r0, #0x0 - ldmia sp!, {r4-r11,pc} -_020AABA8: - cmp r8, #0x0 - bne _020AA9A4 -_020AABB0: - ldr r0, [r6, #0x3c] - cmp r0, #0x0 - beq _020AABC8 - bl FUN_020ACD90 -_020AABC0: ; 0x020AABC0 - mov r0, #0x0 - str r0, [r6, #0x3c] -_020AABC8: - mov r0, #0x0 - add sp, sp, #0xc - ldmia sp!, {r4-r11,pc} - .balign 4 -_020AABD4: .word 0x021CA8E8 -_020AABD8: .word 0x00008B4C - - arm_func_start FUN_020AABDC -FUN_020AABDC: ; 0x020AABDC - stmdb sp!, {r4,lr} - ldr r3, _020AACE0 ; =0x021CA8D4 - mov r2, r1 - ldr r1, [r3, #0x0] - mov r12, #0x0 - cmp r2, r1 - movne r0, r12 - ldmneia sp!, {r4,pc} -_020AABFC: ; 0x020AABFC - ldr r1, _020AACE4 ; =0x021CA8D0 - ldr r4, [r1, #0x0] - cmp r4, #0x0 - moveq r0, r12 - ldmeqia sp!, {r4,pc} -_020AAC10: ; 0x020AAC10 - mov lr, r12 - cmp r4, #0x0 - bls _020AAC48 - ldr r3, _020AACE8 ; =0x021CA8DC -_020AAC20: - ldr r1, [r3, lr, lsl #0x2] - cmp r1, #0x0 - beq _020AAC3C - ldr r1, [r1, #0xc] - cmp r1, #0x2 - moveq r12, #0x1 - beq _020AAC48 -_020AAC3C: - add lr, lr, #0x1 - cmp lr, r4 - blo _020AAC20 -_020AAC48: - cmp r12, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_020AAC54: ; 0x020AAC54 - ldr r1, _020AACEC ; =0x021CAF00 - ldr r4, _020AACEC ; =0x021CAF00 - ldr r1, [r1, #0x8c4] - ldr r3, _020AACF0 ; =0x5F564354 - ands r1, r1, #0x1 - movne r12, #0x0 - moveq r12, #0x460 - str r3, [r4, r12] - ldr r1, _020AACF4 ; =0x021CA8CC - add r4, r4, r12 - ldr r1, [r1, #0x0] - cmp r1, #0x2 - blt _020AAC94 - add r1, r4, #0x10 - bl MIi_CpuCopyFast - b _020AAC9C -_020AAC94: - add r1, r4, #0xc - bl MIi_CpuCopyFast -_020AAC9C: - mov r1, #0x40 - ldr r0, _020AACF8 ; =0x021CA8B0 - strb r1, [r4, #0x4] - ldrh r2, [r0, #0x0] - add r1, r2, #0x1 - strh r1, [r0, #0x0] - strh r2, [r4, #0x6] - bl OS_GetTick - mov r0, r0, lsr #0x6 - orr r0, r0, r1, lsl #0x1a - ldr r1, _020AACEC ; =0x021CAF00 - str r0, [r4, #0x8] - ldr r2, [r1, #0x8c4] - mov r0, #0x1 - add r2, r2, #0x1 - str r2, [r1, #0x8c4] - ldmia sp!, {r4,pc} - .balign 4 -_020AACE0: .word 0x021CA8D4 -_020AACE4: .word 0x021CA8D0 -_020AACE8: .word 0x021CA8DC -_020AACEC: .word 0x021CAF00 -_020AACF0: .word 0x5F564354 -_020AACF4: .word 0x021CA8CC -_020AACF8: .word 0x021CA8B0 - - arm_func_start FUN_020AACFC -FUN_020AACFC: ; 0x020AACFC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, #0x0 - ldr ip, _020AADB8 ; =0x021CA8DC -_020AAD10: - ldr r0, [r12, r4, lsl #0x2] - mov lr, r4, lsl #0x2 - cmp r0, r5 - bne _020AAD74 - ldr r1, _020AADBC ; =0x021CA8E8 - mov r0, #0x94 - mla r0, r4, r0, r1 - ldr r1, _020AADC0 ; =0x021CA8D0 - mov r3, #0x0 - ldr r2, [r1, #0x0] - str r3, [r12, lr] - sub r2, r2, #0x1 - str r2, [r1, #0x0] - bl FUN_020ABC40 - mov r0, r4 - bl FUN_020AB6C4 - mov r0, r4 - bl FUN_020AB234 - ldr r0, _020AADC4 ; =0x021CA8B4 - ldr r1, [r5, #0x8] - ldr r2, [r0, #0x0] - mvn r1, r1 - and r1, r2, r1 - str r1, [r0, #0x0] - b _020AAD80 -_020AAD74: - add r4, r4, #0x1 - cmp r4, #0x3 - blo _020AAD10 -_020AAD80: - ldr r0, _020AADC0 ; =0x021CA8D0 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r5,pc} -_020AAD94: ; 0x020AAD94 - ldr r0, _020AADC8 ; =0x021CA8C4 - mov r1, #0x1 - str r1, [r0, #0x0] - bl FUN_020AD170 - ldr r0, _020AADC4 ; =0x021CA8B4 - mov r1, #0x0 - str r1, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AADB8: .word 0x021CA8DC -_020AADBC: .word 0x021CA8E8 -_020AADC0: .word 0x021CA8D0 -_020AADC4: .word 0x021CA8B4 -_020AADC8: .word 0x021CA8C4 - - arm_func_start FUN_020AADCC -FUN_020AADCC: ; 0x020AADCC - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - movs r5, r0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,pc} -_020AADE4: ; 0x020AADE4 - ldr r0, _020AAF24 ; =0x021CA8D0 - ldr r0, [r0, #0x0] - cmp r0, #0x3 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,pc} -_020AADFC: ; 0x020AADFC - ldr r0, [r5, #0xc] - cmp r0, #0x2 - beq _020AAE18 - cmp r0, #0x3 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {r4-r5,pc} -_020AAE18: - ldr r1, _020AAF28 ; =0x021CA8DC - mov r2, #0x0 -_020AAE20: - ldr r0, [r1, r2, lsl #0x2] - cmp r0, r5 - addeq sp, sp, #0x4 - moveq r0, #0x1 - ldmeqia sp!, {r4-r5,pc} -_020AAE34: ; 0x020AAE34 - add r2, r2, #0x1 - cmp r2, #0x3 - blo _020AAE20 - ldr r1, _020AAF28 ; =0x021CA8DC - mov r4, #0x0 -_020AAE48: - ldr r0, [r1, r4, lsl #0x2] - mov r2, r4, lsl #0x2 - cmp r0, #0x0 - streq r5, [r1, r2] - beq _020AAE68 - add r4, r4, #0x1 - cmp r4, #0x3 - blo _020AAE48 -_020AAE68: - ldr r0, _020AAF24 ; =0x021CA8D0 - ldr r1, _020AAF2C ; =0x021CA8B4 - ldr r3, [r0, #0x0] - ldr r2, _020AAF30 ; =0x021CA8E8 - add r3, r3, #0x1 - str r3, [r0, #0x0] - mov r0, #0x94 - ldr r12, [r1, #0x0] - ldr r3, [r5, #0x8] - mla r0, r4, r0, r2 - orr r2, r12, r3 - str r2, [r1, #0x0] - ldrb r2, [r5, #0x5] - mov r1, r4 - bl FUN_020ABC6C - mov r0, r4 - bl FUN_020AB714 - ldr r0, [r5, #0xc] - cmp r0, #0x2 - addne sp, sp, #0x4 - movne r0, #0x1 - ldmneia sp!, {r4-r5,pc} -_020AAEC0: ; 0x020AAEC0 - ldr r0, _020AAF24 ; =0x021CA8D0 - ldr r0, [r0, #0x0] - cmp r0, #0x1 - bne _020AAF18 - bl FUN_020AD170 - bl OS_GetTickLo - ldr r4, _020AAF34 ; =0x021CA8B0 - ldr r3, _020AAF38 ; =0x021CA8C0 - mov r12, #0x0 - ldr r1, _020AAF3C ; =0x021CAF00 - ldr r2, _020AAF40 ; =0x021CA8C4 - mov r5, #0x1 - strh r0, [r4, #0x0] - strh r12, [r3, #0x0] - strb r12, [r3, #0x2] - str r5, [r2, #0x0] - str r12, [r1, #0x8c0] - str r12, [r1, #0x8c4] - str r12, [r1, #0x8cc] - str r12, [r1, #0x8c8] - str r12, [r1, #0x8d0] - str r12, [r1, #0x8d4] -_020AAF18: - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AAF24: .word 0x021CA8D0 -_020AAF28: .word 0x021CA8DC -_020AAF2C: .word 0x021CA8B4 -_020AAF30: .word 0x021CA8E8 -_020AAF34: .word 0x021CA8B0 -_020AAF38: .word 0x021CA8C0 -_020AAF3C: .word 0x021CAF00 -_020AAF40: .word 0x021CA8C4 - - arm_func_start FUN_020AAF44 -FUN_020AAF44: ; 0x020AAF44 - ldr r0, _020AAF54 ; =0x021CA8D0 - mov r1, #0x0 - str r1, [r0, #0x0] - bx lr - .balign 4 -_020AAF54: .word 0x021CA8D0 - - arm_func_start FUN_020AAF58 -FUN_020AAF58: - stmdb sp!, {r4-r8,lr} - bl OS_GetTickLo - ldr r1, _020AB054 ; =0x021CCD20 - ldr ip, _020AB058 ; =0x021CA8B0 - ldr r4, [r1, #0x10] - strh r0, [r12, #0x0] - cmp r4, #0x1 - ldreq r0, _020AB05C ; =0x021CA8CC - mov r5, #0x0 - ldr r1, _020AB060 ; =0x021CA8B4 - streq r5, [r0, #0x0] - str r5, [r1, #0x0] - ldr r2, _020AB064 ; =0x021CA8D0 - ldrne r0, _020AB05C ; =0x021CA8CC - movne r1, #0x4 - strne r1, [r0, #0x0] - str r5, [r2, #0x0] - ldr r0, _020AB05C ; =0x021CA8CC - ldr r3, _020AB068 ; =0x0210646C - ldr r2, [r0, #0x0] - mov r6, #0x1 - ldr r1, _020AB06C ; =0x020FF689 - str r6, [r3, #0x0] - ldr r0, _020AB070 ; =0x020FF688 - ldrb r3, [r1, r2, lsl #0x1] - ldrb r1, [r0, r2, lsl #0x1] - mov r0, #0x44 - ldr r2, _020AB074 ; =0x021CA8D4 - mla r0, r1, r0, r3 - add r4, r0, #0xc - ldr r1, _020AB078 ; =0x021CA8BC - mov r5, #0x440 - ldr r0, _020AB07C ; =0x021CAF00 - mov r3, #0x0 - str r5, [r2, #0x0] - str r4, [r1, #0x0] - str r3, [r0, #0x8c0] - str r3, [r0, #0x8c4] - str r3, [r0, #0x8cc] - str r3, [r0, #0x8c8] - str r3, [r0, #0x8d0] - str r3, [r0, #0x8d4] - bl FUN_020ACF10 - mov r8, #0x0 - ldr r7, _020AB080 ; =0x021CA8E8 - ldr r5, _020AB084 ; =0x021CA8DC - mov r6, r8 - mvn r4, #0x0 -_020AB018: - mov r0, r8 - str r6, [r5, r8, lsl #0x2] - bl FUN_020AB714 - mov r0, r7 - mov r1, r8 - mov r2, r4 - bl FUN_020ABC6C - add r8, r8, #0x1 - cmp r8, #0x3 - add r7, r7, #0x94 - blo _020AB018 - bl FUN_020AB284 - bl FUN_020AD474 - mov r0, #0x1 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020AB054: .word 0x021CCD20 -_020AB058: .word 0x021CA8B0 -_020AB05C: .word 0x021CA8CC -_020AB060: .word 0x021CA8B4 -_020AB064: .word 0x021CA8D0 -_020AB068: .word 0x0210646C -_020AB06C: .word 0x020FF689 -_020AB070: .word 0x020FF688 -_020AB074: .word 0x021CA8D4 -_020AB078: .word 0x021CA8BC -_020AB07C: .word 0x021CAF00 -_020AB080: .word 0x021CA8E8 -_020AB084: .word 0x021CA8DC - - arm_func_start FUN_020AB088 -FUN_020AB088: ; 0x020AB088 - ldr r2, [r0, #0x4] - cmp r2, #0x0 - ldrne r1, [r0, #0x8] - strne r1, [r2, #0x8] - bne _020AB0B4 - ldr r2, [r0, #0x8] - ldr r1, _020AB100 ; =0x021CB7D8 - cmp r2, #0x0 - str r2, [r1, #0x0] - movne r1, #0x0 - strne r1, [r2, #0x4] -_020AB0B4: - ldr r2, [r0, #0x8] - cmp r2, #0x0 - ldrne r1, [r0, #0x4] - strne r1, [r2, #0x4] - bne _020AB0E0 - ldr r2, [r0, #0x4] - ldr r1, _020AB104 ; =0x021CB7DC - cmp r2, #0x0 - str r2, [r1, #0x0] - movne r1, #0x0 - strne r1, [r2, #0x8] -_020AB0E0: - ldrb r2, [r0, #0x11] - ldr r3, _020AB108 ; =0x021CB7E0 - ldr r1, [r3, r2, lsl #0x2] - sub r1, r1, #0x1 - str r1, [r3, r2, lsl #0x2] - ldrb r0, [r0, #0x11] - ldr r0, [r3, r0, lsl #0x2] - bx lr - .balign 4 -_020AB100: .word 0x021CB7D8 -_020AB104: .word 0x021CB7DC -_020AB108: .word 0x021CB7E0 - - arm_func_start FUN_020AB10C -FUN_020AB10C: ; 0x020AB10C - ldr r1, _020AB140 ; =0x021CB7D8 - ldr r2, [r1, #0x0] - cmp r2, #0x0 - beq _020AB138 -_020AB11C: - ldrb r1, [r2, #0x11] - cmp r1, r0 - moveq r0, r2 - bxeq lr - ldr r2, [r2, #0x8] - cmp r2, #0x0 - bne _020AB11C -_020AB138: - mov r0, #0x0 - bx lr - .balign 4 -_020AB140: .word 0x021CB7D8 - - arm_func_start FUN_020AB144 -FUN_020AB144: ; 0x020AB144 - ldr r1, _020AB150 ; =0x021CB7E0 - ldr r0, [r1, r0, lsl #0x2] - bx lr - .balign 4 -_020AB150: .word 0x021CB7E0 - - arm_func_start FUN_020AB154 -FUN_020AB154: - ldr r0, _020AB160 ; =0x021CB7D8 - ldr r0, [r0, #0x0] - bx lr - .balign 4 -_020AB160: .word 0x021CB7D8 - - arm_func_start FUN_020AB164 -FUN_020AB164: ; 0x020AB164 - ldr r2, _020AB1D8 ; =0x021CB7D8 - ldr r1, [r2, #0x0] - cmp r1, #0x0 - bne _020AB198 - str r0, [r2, #0x0] - mov r12, #0x0 - str r12, [r0, #0x4] - ldr r3, [r2, #0x0] - ldr r1, _020AB1DC ; =0x021CB7DC - str r12, [r3, #0x8] - ldr r2, [r2, #0x0] - str r2, [r1, #0x0] - b _020AB1B8 -_020AB198: - ldr r1, _020AB1DC ; =0x021CB7DC - mov r2, #0x0 - ldr r3, [r1, #0x0] - str r3, [r0, #0x4] - str r2, [r0, #0x8] - ldr r2, [r1, #0x0] - str r0, [r2, #0x8] - str r0, [r1, #0x0] -_020AB1B8: - ldrb r2, [r0, #0x11] - ldr r3, _020AB1E0 ; =0x021CB7E0 - ldr r1, [r3, r2, lsl #0x2] - add r1, r1, #0x1 - str r1, [r3, r2, lsl #0x2] - ldrb r0, [r0, #0x11] - ldr r0, [r3, r0, lsl #0x2] - bx lr - .balign 4 -_020AB1D8: .word 0x021CB7D8 -_020AB1DC: .word 0x021CB7DC -_020AB1E0: .word 0x021CB7E0 - - arm_func_start FUN_020AB1E4 -FUN_020AB1E4: ; 0x020AB1E4 - stmdb sp!, {r4,lr} - ldr r0, _020AB22C ; =0x021CB7D8 - ldr r4, [r0, #0x0] - cmp r4, #0x0 - beq _020AB20C -_020AB1F8: - mov r0, r4 - ldr r4, [r4, #0x8] - bl FUN_020ACD90 -_020AB204: ; 0x020AB204 - cmp r4, #0x0 - bne _020AB1F8 -_020AB20C: - mov r2, #0x0 - ldr r0, _020AB230 ; =0x021CB7E0 - mov r1, r2 -_020AB218: - str r1, [r0, r2, lsl #0x2] - add r2, r2, #0x1 - cmp r2, #0x3 - blt _020AB218 - ldmia sp!, {r4,pc} - .balign 4 -_020AB22C: .word 0x021CB7D8 -_020AB230: .word 0x021CB7E0 - - arm_func_start FUN_020AB234 -FUN_020AB234: ; 0x020AB234 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - bl FUN_020AB10C - movs r4, r0 - beq _020AB26C -_020AB24C: - mov r0, r4 - bl FUN_020AB088 - mov r0, r4 - bl FUN_020ACD90 - mov r0, r5 - bl FUN_020AB10C - movs r4, r0 - bne _020AB24C -_020AB26C: - ldr r0, _020AB280 ; =0x021CB7E0 - mov r1, #0x0 - str r1, [r0, r5, lsl #0x2] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AB280: .word 0x021CB7E0 - - arm_func_start FUN_020AB284 -FUN_020AB284: ; 0x020AB284 - ldr r1, _020AB2B4 ; =0x021CB7DC - mov r2, #0x0 - ldr r0, _020AB2B8 ; =0x021CB7D8 - str r2, [r1, #0x0] - str r2, [r0, #0x0] - ldr r0, _020AB2BC ; =0x021CB7E0 - mov r1, r2 -_020AB2A0: - str r1, [r0, r2, lsl #0x2] - add r2, r2, #0x1 - cmp r2, #0x3 - blt _020AB2A0 - bx lr - .balign 4 -_020AB2B4: .word 0x021CB7DC -_020AB2B8: .word 0x021CB7D8 -_020AB2BC: .word 0x021CB7E0 - - arm_func_start FUN_020AB2C0 -FUN_020AB2C0: ; 0x020AB2C0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r2, #0x0 - addls sp, sp, #0x4 - mov lr, #0x0 - ldmlsia sp!, {pc} -_020AB2D8: - ldrsb r12, [r0, lr] - mov r3, lr, lsl #0x1 - add lr, lr, #0x1 - mov r12, r12, lsl #0x8 - strh r12, [r1, r3] - cmp lr, r2 - blo _020AB2D8 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020AB2FC -FUN_020AB2FC: ; 0x020AB2FC - cmp r2, #0x0 - mov r12, #0x0 - bxls lr -_020AB308: - mov r3, r12, lsl #0x1 - ldrsh r3, [r1, r3] - mov r3, r3, asr #0x8 - strb r3, [r0, r12] - add r12, r12, #0x1 - cmp r12, r2 - blo _020AB308 - bx lr - - arm_func_start FUN_020AB328 -FUN_020AB328: ; 0x020AB328 - stmdb sp!, {r4,lr} - mov r4, #0x0 - cmp r2, #0x0 - ldmlsia sp!, {r4,pc} -_020AB338: - ldrb r3, [r0, r4] - mvn lr, r3 - and r3, lr, #0xf - mov r12, r3, lsl #0x3 - and r3, lr, #0x70 - add r12, r12, #0x84 - mov r3, r3, asr #0x4 - mov r12, r12, lsl r3 - ands r3, lr, #0x80 - rsbne r12, r12, #0x84 - mov r3, r4, lsl #0x1 - subeq r12, r12, #0x84 - add r4, r4, #0x1 - strh r12, [r1, r3] - cmp r4, r2 - blo _020AB338 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020AB37C -FUN_020AB37C: ; 0x020AB37C - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - cmp r2, #0x0 - mov r8, #0x0 - addls sp, sp, #0x4 - ldmlsia sp!, {r4-r11,pc} -_020AB394: ; 0x020AB394 - mov r12, r8 - mov lr, #0xff - mov r4, #0x7f - mov r3, #0x8 -_020AB3A4: - mov r5, r8, lsl #0x1 - ldrsh r5, [r1, r5] - ldr fp, _020AB42C ; =0x02106470 - movs r7, r5, asr #0x2 - movmi r6, r4 - ldr r5, _020AB430 ; =0x00001FDF - rsbmi r7, r7, #0x0 - movpl r6, lr - cmp r7, r5 - movgt r7, r5 - mov r5, r12 - add r10, r7, #0x21 -_020AB3D4: - ldr r9, [r11], #0x4 - cmp r10, r9 - ble _020AB3F0 - add r5, r5, #0x1 - cmp r5, #0x8 - blt _020AB3D4 - mov r5, r3 -_020AB3F0: - cmp r5, #0x8 - eorge r5, r6, #0x7f - bge _020AB414 - add r9, r7, #0x21 - add r7, r5, #0x1 - mov r7, r9, asr r7 - and r7, r7, #0xf - orr r5, r7, r5, lsl #0x4 - eor r5, r5, r6 -_020AB414: - strb r5, [r0, r8] - add r8, r8, #0x1 - cmp r8, r2 - blo _020AB3A4 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020AB42C: .word 0x02106470 -_020AB430: .word 0x00001FDF - - arm_func_start FUN_020AB434 -FUN_020AB434: ; 0x020AB434 - ldr r1, _020AB440 ; =0x021CB7FC - ldr r0, [r1, r0, lsl #0x2] - bx lr - .balign 4 -_020AB440: .word 0x021CB7FC - - arm_func_start FUN_020AB444 -FUN_020AB444: ; 0x020AB444 - stmdb sp!, {r4,lr} - mov r4, r0 - bl OS_DisableInterrupts - ldr r3, _020AB4AC ; =0x021CB7F0 - ldr r1, _020AB4B0 ; =0x021CB7EC - ldr r2, [r3, r4, lsl #0x2] - str r0, [r1, #0x0] - cmp r2, #0x0 - mov r12, r4, lsl #0x2 - beq _020AB494 - ldr r1, _020AB4B4 ; =0x021CB7FC - ldr r2, [r2, #0x8] - ldr r0, [r1, r12] - sub r0, r0, #0x1 - str r0, [r1, r12] - str r2, [r3, r12] - ldr r1, [r3, r12] - cmp r1, #0x0 - movne r0, #0x0 - strne r0, [r1, #0x4] -_020AB494: - ldr r0, _020AB4B0 ; =0x021CB7EC - ldr r0, [r0, #0x0] - bl OS_RestoreInterrupts - ldr r0, _020AB4B4 ; =0x021CB7FC - ldr r0, [r0, r4, lsl #0x2] - ldmia sp!, {r4,pc} - .balign 4 -_020AB4AC: .word 0x021CB7F0 -_020AB4B0: .word 0x021CB7EC -_020AB4B4: .word 0x021CB7FC - - arm_func_start FUN_020AB4B8 -FUN_020AB4B8: ; 0x020AB4B8 - stmdb sp!, {r4,lr} - mov r4, r0 - bl OS_DisableInterrupts - ldr r2, _020AB4F8 ; =0x021CB7F0 - ldr r1, _020AB4FC ; =0x021CB7EC - ldr r2, [r2, r4, lsl #0x2] - str r0, [r1, #0x0] - cmp r2, #0x0 - beq _020AB4EC - bl OS_RestoreInterrupts - ldr r0, _020AB4F8 ; =0x021CB7F0 - ldr r0, [r0, r4, lsl #0x2] - ldmia sp!, {r4,pc} -_020AB4EC: - bl OS_RestoreInterrupts -_020AB4F0: ; 0x020AB4F0 - mov r0, #0x0 - ldmia sp!, {r4,pc} - .balign 4 -_020AB4F8: .word 0x021CB7F0 -_020AB4FC: .word 0x021CB7EC - - arm_func_start FUN_020AB500 -FUN_020AB500: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - movs r5, r0 - mov r4, r1 - addeq sp, sp, #0x4 - mvneq r0, #0x0 - ldmeqia sp!, {r4-r5,pc} -_020AB51C: ; 0x020AB51C - cmp r4, #0x3 - addcs sp, sp, #0x4 - mvncs r0, #0x0 - ldmcsia sp!, {r4-r5,pc} -_020AB52C: ; 0x020AB52C - bl OS_DisableInterrupts - ldr r3, _020AB620 ; =0x021CB7F0 - ldr r1, _020AB624 ; =0x021CB7EC - ldr r2, [r3, r4, lsl #0x2] - str r0, [r1, #0x0] - cmp r2, #0x0 - mov r12, r4, lsl #0x2 - bne _020AB574 - str r5, [r3, r12] - ldr r0, [r3, r12] - mov r2, #0x0 - str r2, [r0, #0x4] - ldr r1, [r3, r12] - ldr r0, _020AB628 ; =0x021CB808 - str r2, [r1, #0x8] - ldr r1, [r3, r12] - str r1, [r0, r12] - b _020AB5F4 -_020AB574: - ldr r0, _020AB628 ; =0x021CB808 - ldr r3, [r0, r12] - cmp r3, #0x0 - beq _020AB5D4 - ldr r1, [r5, #0x18] -_020AB588: - ldr r0, [r3, #0x18] - cmp r0, r1 - bhs _020AB5C8 - str r3, [r5, #0x4] - ldr r0, [r3, #0x8] - ldr r1, _020AB628 ; =0x021CB808 - str r0, [r5, #0x8] - str r5, [r3, #0x8] - ldr r0, [r5, #0x8] - mov r2, r4, lsl #0x2 - cmp r0, #0x0 - strne r5, [r0, #0x4] - ldr r0, [r1, r4, lsl #0x2] - cmp r3, r0 - streq r5, [r1, r2] - b _020AB5F4 -_020AB5C8: - ldr r3, [r3, #0x4] - cmp r3, #0x0 - bne _020AB588 -_020AB5D4: - mov r0, #0x0 - ldr r1, _020AB620 ; =0x021CB7F0 - str r0, [r5, #0x4] - ldr r0, [r1, r4, lsl #0x2] - str r0, [r5, #0x8] - ldr r0, [r1, r4, lsl #0x2] - str r5, [r0, #0x4] - str r5, [r1, r4, lsl #0x2] -_020AB5F4: - ldr r2, _020AB62C ; =0x021CB7FC - ldr r0, _020AB624 ; =0x021CB7EC - ldr r1, [r2, r4, lsl #0x2] - add r1, r1, #0x1 - str r1, [r2, r4, lsl #0x2] - ldr r0, [r0, #0x0] - bl OS_RestoreInterrupts - ldr r0, _020AB62C ; =0x021CB7FC - ldr r0, [r0, r4, lsl #0x2] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AB620: .word 0x021CB7F0 -_020AB624: .word 0x021CB7EC -_020AB628: .word 0x021CB808 -_020AB62C: .word 0x021CB7FC - - arm_func_start FUN_020AB630 -FUN_020AB630: ; 0x020AB630 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - bl OS_DisableInterrupts - mov r7, #0x0 - ldr r1, _020AB6B8 ; =0x021CB7EC - mov r4, r7 - mov r9, r7 - str r0, [r1, #0x0] - ldr r5, _020AB6BC ; =0x021CB7F0 - ldr r8, _020AB6C0 ; =0x021CB7FC - b _020AB69C -_020AB65C: - ldr r0, [r5, r7, lsl #0x2] - mov r6, r7, lsl #0x2 - cmp r0, #0x0 - beq _020AB694 -_020AB66C: - ldr r0, [r5, r6] - ldr r1, [r0, #0x8] - str r1, [r5, r6] - ldr r1, [r5, r6] - cmp r1, #0x0 - strne r4, [r1, #0x4] - bl FUN_020ACD90 - ldr r0, [r5, r6] - cmp r0, #0x0 - bne _020AB66C -_020AB694: - str r9, [r8, r7, lsl #0x2] - add r7, r7, #0x1 -_020AB69C: - cmp r7, #0x3 - blt _020AB65C - ldr r0, _020AB6B8 ; =0x021CB7EC - ldr r0, [r0, #0x0] - bl OS_RestoreInterrupts - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - .balign 4 -_020AB6B8: .word 0x021CB7EC -_020AB6BC: .word 0x021CB7F0 -_020AB6C0: .word 0x021CB7FC - - arm_func_start FUN_020AB6C4 -FUN_020AB6C4: ; 0x020AB6C4 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - bl FUN_020AB4B8 - movs r4, r0 - beq _020AB6FC -_020AB6DC: - mov r0, r5 - bl FUN_020AB444 - mov r0, r4 - bl FUN_020ACD90 - mov r0, r5 - bl FUN_020AB4B8 - movs r4, r0 - bne _020AB6DC -_020AB6FC: - ldr r0, _020AB710 ; =0x021CB7FC - mov r1, #0x0 - str r1, [r0, r5, lsl #0x2] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AB710: .word 0x021CB7FC - - arm_func_start FUN_020AB714 -FUN_020AB714: ; 0x020AB714 - stmdb sp!, {r4,lr} - mov r4, r0 - bl OS_DisableInterrupts - ldr r1, _020AB750 ; =0x021CB7EC - ldr r3, _020AB754 ; =0x021CB808 - mov lr, #0x0 - str lr, [r3, r4, lsl #0x2] - ldr r2, _020AB758 ; =0x021CB7FC - ldr r12, [r3, r4, lsl #0x2] - ldr r3, _020AB75C ; =0x021CB7F0 - str r0, [r1, #0x0] - str r12, [r3, r4, lsl #0x2] - str lr, [r2, r4, lsl #0x2] - bl OS_RestoreInterrupts - ldmia sp!, {r4,pc} - .balign 4 -_020AB750: .word 0x021CB7EC -_020AB754: .word 0x021CB808 -_020AB758: .word 0x021CB7FC -_020AB75C: .word 0x021CB7F0 - - arm_func_start FUN_020AB760 -FUN_020AB760: - stmdb sp!, {r4-r8,lr} - mov r7, r0 - ldr r2, [r7, #0x5c] - mov r6, r1 - cmp r2, #0x0 - mov r4, #0x0 - beq _020AB790 - ldr r1, [r6, #0x18] - mov r1, r1, lsl #0x10 - mov r1, r1, lsr #0x10 - bl FUN_020ABBEC - b _020AB820 -_020AB790: - ldr r2, [r6, #0x18] - mov r2, r2, lsl #0x10 - mov r2, r2, lsr #0x10 - bl FUN_020ABB1C -_020AB7A0: ; 0x020AB7A0 - cmp r0, #0x0 - ldreq r1, [r7, #0x14] - moveq r0, r4 - addeq r1, r1, #0x1 - streq r1, [r7, #0x14] - ldmeqia sp!, {r4-r8,pc} -_020AB7B8: ; 0x020AB7B8 - ldr r0, [r6, #0x18] - str r0, [r7, #0x10] - ldr r2, [r6, #0x18] - ldr r1, [r7, #0x54] - cmp r1, r2 - ldreq r1, [r7, #0x14] - moveq r0, r4 - addeq r1, r1, #0x1 - streq r1, [r7, #0x14] - ldmeqia sp!, {r4-r8,pc} -_020AB7E0: ; 0x020AB7E0 - add r0, r1, #0x1 - cmp r0, r2 - beq _020AB820 - ldr r0, [r6, #0x45c] - cmp r0, #0x0 - bne _020AB820 - subs r0, r2, r1 - rsbmi r0, r0, #0x0 - cmp r0, #0x64 - strgt r2, [r7, #0x54] - movgt r0, #0x0 - ldmgtia sp!, {r4-r8,pc} -_020AB810: ; 0x020AB810 - cmp r1, r2 - ldrhi r0, [r7, #0x1c] - addhi r0, r0, #0x1 - strhi r0, [r7, #0x1c] -_020AB820: - ldr r0, [r6, #0x18] - str r0, [r7, #0x54] - ldr r0, [r7, #0x4c] - cmp r0, #0x0 - bne _020AB858 - ldr r1, [r6, #0x460] - ldr r0, _020ABAF4 ; =0x00000464 - str r1, [r7, #0x4c] - add r1, r6, r0 - add r0, r7, #0x44 - ldmia r1, {r2-r3} - stmia r0, {r2-r3} - mov r0, #0x0 - str r0, [r7, #0x6c] -_020AB858: - ldr r3, [r6, #0x460] - ldr r1, [r7, #0x4c] - ldr r2, [r6, #0x464] - ldr r0, [r7, #0x44] - sub r1, r3, r1 - ldr r3, [r7, #0x80] - mov r1, r1, lsl #0x6 - subs r0, r2, r0 - subs r5, r1, r0 - cmp r3, #0x0 - mov r0, #0x0 - beq _020AB894 - ldr r2, [r6, #0x45c] - cmp r2, #0x0 - beq _020AB89C -_020AB894: - str r5, [r7, #0x80] - b _020AB918 -_020AB89C: - str r5, [r7, #0x80] - subs r2, r5, r3 - ldr r8, [r7, #0x7c] - ldr r3, _020ABAF8 ; =0x00008B18 - ldr ip, _020ABAFC ; =0x0000CC8D - add r3, r8, r3 - mov r8, r3, lsl #0x1 - rsbmi r2, r2, #0x0 - mov r3, r8, asr #0x1f - adds r8, r8, r12 - mov r12, r2, asr #0x1f - adc r3, r3, #0x0 - cmp r12, r3 - cmpeq r2, r8 - bls _020AB8F4 - ldr lr, _020ABB00 ; =0x75CA82CB - mov r3, r2, lsr #0x1f - smull r12, r8, lr, r2 - mov r8, r8, asr #0xe - add r8, r3, r8 - add r3, r8, #0x2 - str r3, [r7, #0x84] -_020AB8F4: - ldr r3, [r7, #0x84] - cmp r3, #0x0 - bgt _020AB918 - ldr r3, [r7, #0x7c] - sub r2, r2, r3 - add r2, r3, r2, asr #0x4 - str r2, [r7, #0x7c] - ldr r2, [r7, #0x7c] - str r2, [r7, #0x18] -_020AB918: - ldr r3, [r7, #0x44] - ldr r12, [r7, #0x4] - ldr r2, [r7, #0x48] - adds r1, r1, r3 - adc r0, r0, r2 - adds r1, r12, r1 - str r1, [r6, #0x46c] - adc r0, r0, #0x0 - str r0, [r6, #0x470] - bl OS_GetTick - ldr r12, [r6, #0x46c] - ldr r2, _020ABAF8 ; =0x00008B18 - ldr lr, [r6, #0x470] - adds r6, r12, r2 - adc r3, lr, #0x0 - cmp r3, r1 - mov r3, #0x0 - cmpeq r6, r0 - movcc r0, r3 - ldmccia sp!, {r4-r8,pc} -_020AB968: ; 0x020AB968 - ldr r6, _020ABB04 ; =0x0007FD88 - adds r6, r0, r6 - adc r0, r1, r3 - cmp lr, r0 - cmpeq r12, r6 - movhi r0, r3 - ldmhiia sp!, {r4-r8,pc} -_020AB984: ; 0x020AB984 - ldr r0, [r7, #0x84] - cmp r0, #0x0 - bgt _020ABAE0 - ldr r1, [r7, #0x7c] - mov r0, #0x3 - mul lr, r1, r0 - ldr r6, _020ABB00 ; =0x75CA82CB - ldr r12, [r7, #0x8c] - smull r1, r0, r6, lr - mov r0, r0, asr #0xe - mov r1, lr, lsr #0x1f - cmp lr, r12 - add r0, r1, r0 - bls _020AB9EC - ldr r1, _020ABB08 ; =0x000134DF - add r6, r0, #0x1 - mla r12, r6, r2, r1 - str r12, [r7, #0x8c] - mla r1, r0, r2, r1 - ldr r2, [r7, #0x8c] - ldr r0, _020ABB0C ; =0xFFFF2F5C - add r0, r2, r0 - str r0, [r7, #0x88] - str r1, [r7, #0x4] - str r3, [r7, #0x90] - b _020ABA50 -_020AB9EC: - ldr r1, [r7, #0x88] - cmp lr, r1 - bge _020ABA50 - ldr r1, [r7, #0x90] - add r1, r1, #0x1 - str r1, [r7, #0x90] - ldr r1, [r7, #0x90] - cmp r1, #0x46 - bls _020ABA50 - ldr r1, _020ABB08 ; =0x000134DF - add r12, r0, #0x1 - mla lr, r12, r2, r1 - ldr r6, _020ABB10 ; =0xFFFFBA74 - str lr, [r7, #0x8c] - mla r1, r0, r2, r6 - str r1, [r7, #0x88] - ldr r1, [r7, #0x88] - ldr r2, _020ABB08 ; =0x000134DF - cmp r1, #0x0 - ldr r1, _020ABAF8 ; =0x00008B18 - strlt r3, [r7, #0x88] - mla r1, r0, r1, r2 - mov r3, #0x0 - str r1, [r7, #0x4] - str r3, [r7, #0x90] -_020ABA50: - ldr r1, [r7, #0x4] - ldr r0, _020ABB14 ; =0x00068520 - cmp r1, r0 - strhi r0, [r7, #0x4] - ldr r0, [r7, #0x6c] - cmp r0, #0x10 - addcc r0, r0, #0x1 - strcc r0, [r7, #0x6c] - strcc r5, [r7, #0x74] - strcc r5, [r7, #0x78] - blo _020ABA98 - ldr r1, [r7, #0x74] - mov r0, #0x1f - mla r2, r1, r0, r5 - mov r0, r2, asr #0x4 - add r0, r2, r0, lsr #0x1b - mov r0, r0, asr #0x5 - str r0, [r7, #0x74] -_020ABA98: - ldr r2, [r7, #0x78] - ldr r1, [r7, #0x74] - ldr r0, _020ABB18 ; =0x00008701 - sub r1, r2, r1 - str r1, [r7, #0xc] - ldr r1, [r7, #0xc] - cmp r1, r0 - mvn r0, #0x8700 - movgt r4, #0x1 - cmp r1, r0 - ldrlt r0, [r7, #0x70] - mvnlt r4, #0x0 - addlt r0, r0, #0x1 - strlt r0, [r7, #0x70] - cmp r4, #0x0 - movne r0, #0x0 - strne r0, [r7, #0x6c] - strne r0, [r7, #0x4c] -_020ABAE0: - ldr r1, [r7, #0x84] - mov r0, #0x1 - sub r1, r1, #0x1 - str r1, [r7, #0x84] - ldmia sp!, {r4-r8,pc} - .balign 4 -_020ABAF4: .word 0x00000464 -_020ABAF8: .word 0x00008B18 -_020ABAFC: .word 0x0000CC8D -_020ABB00: .word 0x75CA82CB -_020ABB04: .word 0x0007FD88 -_020ABB08: .word 0x000134DF -_020ABB0C: .word 0xFFFF2F5C -_020ABB10: .word 0xFFFFBA74 -_020ABB14: .word 0x00068520 -_020ABB18: .word 0x00008701 - - arm_func_start FUN_020ABB1C -FUN_020ABB1C: - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldrh r12, [r6, #0x68] - mov r4, r2 - ldr r3, _020ABBE4 ; =0x00000BB8 - sub r2, r4, r12 - mov r2, r2, lsl #0x10 - mov r2, r2, lsr #0x10 - mov r5, r1 - cmp r2, r3 - bhs _020ABB60 - cmp r4, r12 - ldrcc r0, [r6, #0x60] - addcc r0, r0, #0x10000 - strcc r0, [r6, #0x60] - strh r4, [r6, #0x68] - b _020ABBD0 -_020ABB60: - ldr r1, _020ABBE8 ; =0x0000FF9C - cmp r2, r1 - bhi _020ABBAC - ldr r1, [r6, #0x64] - cmp r4, r1 - bne _020ABB94 - mov r1, r4 - bl FUN_020ABBEC - sub r0, r4, #0x1 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - str r0, [r6, #0x54] - b _020ABBD0 -_020ABB94: - add r0, r4, #0x1 - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - str r0, [r6, #0x64] - mov r0, #0x0 - ldmia sp!, {r4-r6,pc} -_020ABBAC: - ldr r2, [r6, #0x60] - ldr r0, [r6, #0x54] - add r2, r4, r2 - add r0, r0, r1 - cmp r2, r0 - subhi r0, r2, #0x10000 - strhi r0, [r5, #0x18] - movhi r0, #0x1 - ldmhiia sp!, {r4-r6,pc} -_020ABBD0: - ldr r1, [r6, #0x60] - mov r0, #0x1 - add r1, r4, r1 - str r1, [r5, #0x18] - ldmia sp!, {r4-r6,pc} - .balign 4 -_020ABBE4: .word 0x00000BB8 -_020ABBE8: .word 0x0000FF9C - - arm_func_start FUN_020ABBEC -FUN_020ABBEC: ; 0x020ABBEC - ldr r2, _020ABC08 ; =0x00010001 - strh r1, [r0, #0x68] - str r2, [r0, #0x64] - mov r1, #0x0 - str r1, [r0, #0x60] - str r1, [r0, #0x5c] - bx lr - .balign 4 -_020ABC08: .word 0x00010001 - - arm_func_start FUN_020ABC0C -FUN_020ABC0C: ; 0x020ABC0C - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r0, [r5, #0x3c] - mov r4, r1 - cmp r0, #0x0 - beq _020ABC2C - bl FUN_020ACD90 -_020ABC2C: - str r4, [r5, #0x3c] - ldr r0, [r5, #0x34] - bl FUN_020AB444 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020ABC40 -FUN_020ABC40: ; 0x020ABC40 - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, [r4, #0x3c] - cmp r0, #0x0 - beq _020ABC60 - bl FUN_020ACD90 -_020ABC58: ; 0x020ABC58 - mov r0, #0x0 - str r0, [r4, #0x3c] -_020ABC60: - mvn r0, #0x0 - str r0, [r4, #0x38] - ldmia sp!, {r4,pc} - - arm_func_start FUN_020ABC6C -FUN_020ABC6C: ; 0x020ABC6C - stmdb sp!, {r4-r6,lr} - mov r5, r1 - mov r4, r2 - mov r1, #0x0 - mov r2, #0x28 - mov r6, r0 - bl MI_CpuFill8 - ldr r0, _020ABCF4 ; =0x000134DF - mov r1, #0x0 - str r0, [r6, #0x4] - str r1, [r6, #0x28] - str r1, [r6, #0x2c] - str r5, [r6, #0x34] - str r4, [r6, #0x38] - str r1, [r6, #0x7c] - str r1, [r6, #0x80] - str r1, [r6, #0x84] - str r1, [r6, #0x88] - str r0, [r6, #0x8c] - str r1, [r6, #0x90] - str r1, [r6, #0x4c] - str r1, [r6, #0x44] - str r1, [r6, #0x48] - str r1, [r6, #0x6c] - str r1, [r6, #0x70] - str r1, [r6, #0x50] - str r1, [r6, #0x54] - str r1, [r6, #0x58] - mov r0, #0x1 - str r0, [r6, #0x5c] - str r1, [r6, #0x3c] - str r1, [r6, #0x40] - str r1, [r6, #0x30] - ldmia sp!, {r4-r6,pc} - .balign 4 -_020ABCF4: .word 0x000134DF - - arm_func_start FUN_020ABCF8 -FUN_020ABCF8: ; 0x020ABCF8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r3, _020ABE34 ; =0x021CCD20 - ldr r2, [r3, #0x10] - cmp r2, #0x2 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {pc} - ldrb r12, [r3, #0x1] - ldrb r2, [r0, #0x8] - cmp r12, r2 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {pc} - ldrb r2, [r0, #0xa] - cmp r2, #0x0 - beq _020ABD48 - cmp r2, #0x1 - beq _020ABDA4 - b _020ABE1C -_020ABD48: - ldr r0, _020ABE38 ; =0x021CB824 - ldr r2, [r0, #0x2c] - cmp r2, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {pc} - ldr r0, [r0, #0x38] - cmp r0, #0x5 - beq _020ABD74 - cmp r0, #0x2 - bne _020ABD80 -_020ABD74: - mov r0, #0x9 - str r0, [r1, #0x0] - b _020ABD88 -_020ABD80: - mov r0, #0x5 - str r0, [r1, #0x0] -_020ABD88: - ldr r0, _020ABE38 ; =0x021CB824 - mov r3, #0x0 - ldr r2, _020ABE3C ; =0x021CB850 - str r3, [r0, #0x2c] - str r3, [r0, #0x38] - str r2, [r1, #0x4] - b _020ABE28 -_020ABDA4: - ldr r2, _020ABE38 ; =0x021CB824 - mov lr, #0x2 - str lr, [r2, #0x2c] - ldrb r12, [r0, #0xb] - ldrb r3, [r3, #0x0] - cmp r12, r3 - bne _020ABDD8 - str lr, [r2, #0x38] - mov r3, #0x7 - str r3, [r1, #0x0] - ldr r3, [r0, #0xc] - str r3, [r2, #0x34] - b _020ABE04 -_020ABDD8: - mov r3, #0x3 - str r3, [r2, #0x38] - mov r2, #0x6 - str r2, [r1, #0x0] - ldrb r3, [r0, #0xb] - cmp r3, #0x0 - movne r2, #0x1 - movne r3, r2, lsl r3 - ldr r2, _020ABE38 ; =0x021CB824 - moveq r3, #0x1 - str r3, [r2, #0x34] -_020ABE04: - ldrb r3, [r0, #0xb] - ldr r0, _020ABE38 ; =0x021CB824 - ldr r2, _020ABE3C ; =0x021CB850 - strb r3, [r0, #0x31] - str r2, [r1, #0x4] - b _020ABE28 -_020ABE1C: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {pc} -_020ABE28: - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020ABE34: .word 0x021CCD20 -_020ABE38: .word 0x021CB824 -_020ABE3C: .word 0x021CB850 - - arm_func_start FUN_020ABE40 -FUN_020ABE40: ; 0x020ABE40 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldrb r0, [r5, #0x4] - mov r4, r1 - cmp r0, #0xff - bne _020ABE70 - ldrb r0, [r5, #0x6] - cmp r0, #0x4 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,pc} -_020ABE70: - ldrb r0, [r5, #0x8] - bl FUN_020AC1E8 -_020ABE78: ; 0x020ABE78 - cmp r0, #0x0 - beq _020ABEA4 - mov r1, #0x2 - str r1, [r4, #0x0] - str r0, [r4, #0x4] - mov r2, #0x0 - str r2, [r0, #0x0] - bl FUN_020AC708 - add sp, sp, #0x4 - mov r0, #0x1 - ldmia sp!, {r4-r5,pc} -_020ABEA4: - ldrb r1, [r5, #0x8] - ldr r0, _020ABEC8 ; =0x021CB838 - bl FUN_020AC5A4 - ldr r0, _020ABEC8 ; =0x021CB838 - mov r1, #0x2 - bl FUN_020AC708 -_020ABEBC: ; 0x020ABEBC - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020ABEC8: .word 0x021CB838 - - arm_func_start FUN_020ABECC -FUN_020ABECC: ; 0x020ABECC - stmdb sp!, {r4-r6,lr} - ldr r2, _020AC070 ; =0x021CB824 - mov r6, r0 - ldr r0, [r2, #0x2c] - mov r5, r1 - cmp r0, #0x2 - bne _020ABF84 - ldrb r1, [r2, #0x30] - ldrb r0, [r6, #0x8] - cmp r1, r0 - bne _020ABF74 - ldr r0, _020AC074 ; =0x021CB850 - mov r1, r6 - bl FUN_020AC350 - mov r4, r0 - mvn r0, #0x2 - cmp r4, r0 - beq _020ABF48 - mvn r0, #0x1 - cmp r4, r0 - beq _020ABF30 - mvn r0, #0x0 - cmp r4, r0 - beq _020ABF48 - b _020ABF50 -_020ABF30: - mov r0, #0xc - str r0, [r5, #0x0] - mov r0, #0x0 - str r0, [r5, #0x4] - mov r0, #0x1 - ldmia sp!, {r4-r6,pc} -_020ABF48: - mov r0, #0x0 - ldmia sp!, {r4-r6,pc} -_020ABF50: - ldr r1, _020AC074 ; =0x021CB850 - mov r0, r6 - bl FUN_020AC4A0 - ldr r1, _020AC074 ; =0x021CB850 - str r0, [r5, #0x0] - str r1, [r5, #0x4] - ldr r0, [r5, #0x4] - str r4, [r0, #0xc] - b _020AC028 -_020ABF74: - mov r0, #0x1 - bl FUN_020AC5E8 -_020ABF7C: ; 0x020ABF7C - mov r0, #0x0 - ldmia sp!, {r4-r6,pc} -_020ABF84: - ldrb r12, [r6, #0x8] - cmp r12, #0x0 - movne r0, #0x1 - movne r1, r0, lsl r12 - ldr r0, _020AC078 ; =0x021CB818 - moveq r1, #0x1 - ldr r0, [r0, #0x0] - ands r0, r0, r1 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} -_020ABFAC: ; 0x020ABFAC - ldr r2, _020AC070 ; =0x021CB824 - mov r4, #0x2 - mov r3, #0x0 - ldr r0, _020AC074 ; =0x021CB850 - mov r1, r6 - strb r12, [r2, #0x30] - str r4, [r2, #0x2c] - str r3, [r2, #0x38] - bl FUN_020AC350 - mov r4, r0 - mvn r0, #0x2 - cmp r4, r0 - beq _020ABFF8 - mvn r0, #0x1 - cmp r4, r0 - beq _020ABFF8 - mvn r0, #0x0 - cmp r4, r0 - bne _020AC008 -_020ABFF8: - ldr r1, _020AC070 ; =0x021CB824 - mov r0, #0x0 - str r0, [r1, #0x2c] - ldmia sp!, {r4-r6,pc} -_020AC008: - ldr r1, _020AC074 ; =0x021CB850 - mov r0, r6 - bl FUN_020AC4A0 - ldr r1, _020AC074 ; =0x021CB850 - str r0, [r5, #0x0] - str r1, [r5, #0x4] - ldr r0, [r5, #0x4] - str r4, [r0, #0xc] -_020AC028: - ldr r0, [r5, #0x0] - cmp r0, #0xa - bne _020AC050 - mov r0, #0x1 - bl FUN_020AC5E8 - bl OS_GetTick - ldr r2, _020AC07C ; =0x021CB81C - str r0, [r2, #0x0] - str r1, [r2, #0x4] - b _020AC068 -_020AC050: - mov r0, #0x0 - bl FUN_020AC5E8 - ldr r0, _020AC07C ; =0x021CB81C - mov r1, #0x0 - str r1, [r0, #0x0] - str r1, [r0, #0x4] -_020AC068: - mov r0, #0x1 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020AC070: .word 0x021CB824 -_020AC074: .word 0x021CB850 -_020AC078: .word 0x021CB818 -_020AC07C: .word 0x021CB81C - - arm_func_start FUN_020AC080 -FUN_020AC080: ; 0x020AC080 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - mov r6, r0 - ldrb r2, [r6, #0x4] - mov r5, r1 - cmp r2, #0xff - bne _020AC0C4 - ldrb r2, [r6, #0x6] - cmp r2, #0x4 - bne _020AC0B4 - bl FUN_020ABCF8 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} -_020AC0B4: - cmp r2, #0x3 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,pc} -_020AC0C4: - ldrb r0, [r6, #0x8] - bl FUN_020AC1E8 - movs r4, r0 - beq _020AC154 - mov r1, r6 - bl FUN_020AC350 - mov r7, r0 - mvn r0, #0x1 - cmp r7, r0 - beq _020AC104 - mvn r0, #0x0 - cmp r7, r0 - bne _020AC124 - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r7,pc} -_020AC104: - mov r0, #0xc - str r0, [r5, #0x0] - mov r0, #0x0 - str r0, [r4, #0x0] - add sp, sp, #0x4 - str r4, [r5, #0x4] - mov r0, #0x1 - ldmia sp!, {r4-r7,pc} -_020AC124: - mov r0, r6 - mov r1, r4 - bl FUN_020AC4A0 -_020AC130: ; 0x020AC130 - str r0, [r5, #0x0] - str r4, [r5, #0x4] - str r7, [r4, #0xc] - ldr r0, [r5, #0x0] - add sp, sp, #0x4 - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - ldmia sp!, {r4-r7,pc} -_020AC154: - ldrb r0, [r6, #0x8] - bl FUN_020AC790 - movs r7, r0 - bne _020AC188 - ldrb r1, [r6, #0x8] - ldr r0, _020AC1E4 ; =0x021CB838 - bl FUN_020AC5A4 - ldr r0, _020AC1E4 ; =0x021CB838 - mov r1, #0x3 - bl FUN_020AC708 - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r7,pc} -_020AC188: - mov r1, r6 - bl FUN_020AC350 - mov r4, r0 - add r0, r4, #0x2 - cmp r0, #0x1 - bhi _020AC1B4 - mov r0, r7 - bl FUN_020ACC84 - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r7,pc} -_020AC1B4: - mov r0, r6 - mov r1, r7 - bl FUN_020AC4A0 -_020AC1C0: ; 0x020AC1C0 - str r0, [r5, #0x0] - str r7, [r5, #0x4] - str r4, [r7, #0xc] - ldr r0, [r5, #0x0] - cmp r0, #0x0 - movne r0, #0x1 - moveq r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020AC1E4: .word 0x021CB838 - - arm_func_start FUN_020AC1E8 -FUN_020AC1E8: - ldr r1, _020AC25C ; =0x021CCD20 - ldr r2, _020AC260 ; =0x021CB824 - ldr r1, [r1, #0x10] - ldr r3, [r2, #0x4] - cmp r1, #0x2 - bne _020AC224 - ldr r1, [r2, #0x2c] - cmp r1, #0x0 - beq _020AC21C - ldrb r1, [r2, #0x30] - cmp r1, r0 - ldreq r0, _020AC264 ; =0x021CB850 - bxeq lr -_020AC21C: - mov r0, #0x0 - bx lr -_020AC224: - cmp r3, #0x0 - beq _020AC254 -_020AC22C: - ldr r1, [r3, #0x0] - cmp r1, #0x0 - beq _020AC248 - ldrb r1, [r3, #0x4] - cmp r1, r0 - moveq r0, r3 - bxeq lr -_020AC248: - ldr r3, [r3, #0x14] - cmp r3, #0x0 - bne _020AC22C -_020AC254: - mov r0, #0x0 - bx lr - .balign 4 -_020AC25C: .word 0x021CCD20 -_020AC260: .word 0x021CB824 -_020AC264: .word 0x021CB850 - - arm_func_start FUN_020AC268 -FUN_020AC268: - ldrb r2, [r1, #0x4] - ldrb r12, [r1, #0x6] - cmp r2, #0x0 - addeq r12, r12, #0x5 - cmp r12, #0x0 - blt _020AC288 - cmp r12, #0xb - blt _020AC28C -_020AC288: - mvn r12, #0x0 -_020AC28C: - cmp r12, #0x0 - mvnlt r0, #0x0 - bxlt lr - ldr r1, _020AC2F8 ; =0x021CCD20 - ldr r1, [r1, #0x10] - cmp r1, #0x1 - ldrne r3, [r0, #0xc] - ldrne r2, _020AC2FC ; =0x020FF788 - movne r1, #0xb - mlane r1, r3, r1, r2 - ldrnesb r2, [r12, r1] - bne _020AC2D0 - ldr r3, [r0, #0xc] - ldr r2, _020AC300 ; =0x020FF744 - mov r1, #0xb - mla r1, r3, r1, r2 - ldrsb r2, [r12, r1] -_020AC2D0: - mvn r1, #0x0 - cmp r2, r1 - moveq r0, #0x1 - bxeq lr - mvn r1, #0x1 - cmp r2, r1 - moveq r0, #0x0 - strne r2, [r0, #0xc] - movne r0, #0x1 - bx lr - .balign 4 -_020AC2F8: .word 0x021CCD20 -_020AC2FC: .word 0x020FF788 -_020AC300: .word 0x020FF744 - - arm_func_start FUN_020AC304 -FUN_020AC304: - ldr r1, _020AC34C ; =0x021CB824 - ldr r2, [r1, #0x4] - cmp r2, #0x0 - beq _020AC344 -_020AC314: - ldr r1, [r2, #0x0] - cmp r1, #0x0 - beq _020AC338 - ldr r1, [r2, #0xc] - cmp r1, #0x2 - bne _020AC338 - cmp r0, r2 - movne r0, #0x0 - bxne lr -_020AC338: - ldr r2, [r2, #0x14] - cmp r2, #0x0 - bne _020AC314 -_020AC344: - mov r0, #0x1 - bx lr - .balign 4 -_020AC34C: .word 0x021CB824 - - arm_func_start FUN_020AC350 -FUN_020AC350: ; 0x020AC350 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldrb r2, [r1, #0x4] - ldrb r3, [r1, #0x6] - mov r4, r0 - cmp r2, #0x0 - addeq r3, r3, #0x5 - cmp r3, #0x0 - blt _020AC37C - cmp r3, #0xb - blt _020AC380 -_020AC37C: - mvn r3, #0x0 -_020AC380: - cmp r3, #0x0 - addlt sp, sp, #0x4 - mvnlt r0, #0x0 - ldmltia sp!, {r4-r5,pc} -_020AC390: ; 0x020AC390 - ldr r0, _020AC44C ; =0x021CCD20 - ldr r0, [r0, #0x10] - cmp r0, #0x1 - ldrne r2, [r4, #0xc] - ldrne r1, _020AC450 ; =0x020FF700 - movne r0, #0xb - mlane r0, r2, r0, r1 - ldrnesb r5, [r3, r0] - bne _020AC3C8 - ldr r2, [r4, #0xc] - ldr r1, _020AC454 ; =0x020FF6BC - mov r0, #0xb - mla r0, r2, r0, r1 - ldrsb r5, [r3, r0] -_020AC3C8: - mvn r0, #0x2 - cmp r5, r0 - beq _020AC41C - mvn r0, #0x1 - cmp r5, r0 - beq _020AC3F8 - mvn r0, #0x0 - cmp r5, r0 - bne _020AC440 - add sp, sp, #0x4 - mov r0, r5 - ldmia sp!, {r4-r5,pc} -_020AC3F8: - mov r0, r4 - mov r1, #0x1 - bl FUN_020AC708 - mov r1, #0x0 - str r1, [r4, #0xc] - add sp, sp, #0x4 - mov r0, r5 - str r1, [r4, #0x0] - ldmia sp!, {r4-r5,pc} -_020AC41C: - mov r0, r4 - mov r1, #0x3 - bl FUN_020AC708 - mov r1, #0x0 - str r1, [r4, #0xc] - add sp, sp, #0x4 - mov r0, r5 - str r1, [r4, #0x0] - ldmia sp!, {r4-r5,pc} -_020AC440: - mov r0, r5 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AC44C: .word 0x021CCD20 -_020AC450: .word 0x020FF700 -_020AC454: .word 0x020FF6BC - - arm_func_start FUN_020AC458 -FUN_020AC458: - ldr ip, _020AC498 ; =0x5F564354 - mov r3, #0x10 - str r12, [r1, #0x0] - strb r3, [r1, #0x5] - ldr r3, _020AC49C ; =0x021CCD20 - strb r2, [r1, #0x6] - ldrb r2, [r3, #0x0] - strb r2, [r1, #0x8] - ldrb r2, [r0, #0x4] - mov r0, #0x0 - strb r2, [r1, #0x9] - strb r0, [r1, #0xa] - ldrb r2, [r3, #0x0] - strb r2, [r1, #0xb] - str r0, [r1, #0xc] - bx lr - .balign 4 -_020AC498: .word 0x5F564354 -_020AC49C: .word 0x021CCD20 - - arm_func_start FUN_020AC4A0 -FUN_020AC4A0: - ldrb r2, [r0, #0xb] - strb r2, [r1, #0x5] - ldrb r2, [r0, #0x4] - cmp r2, #0xff - bne _020AC4E8 - ldrb r2, [r0, #0x6] - cmp r2, #0x0 - bne _020AC4D8 - ldrb r3, [r1, #0x4] - cmp r3, #0x0 - movne r2, #0x1 - movne r2, r2, lsl r3 - moveq r2, #0x1 - str r2, [r1, #0x8] -_020AC4D8: - ldrb r1, [r0, #0x6] - ldr r0, _020AC54C ; =0x020FF6AC - ldrb r0, [r0, r1] - bx lr -_020AC4E8: - cmp r2, #0x0 - bne _020AC544 - ldrb r2, [r0, #0x6] - cmp r2, #0x0 - bne _020AC538 - ldr r0, [r1, #0xc] - cmp r0, #0x1 - bne _020AC528 - ldrb r2, [r1, #0x4] - cmp r2, #0x0 - movne r0, #0x1 - movne r0, r0, lsl r2 - moveq r0, #0x1 - str r0, [r1, #0x8] - mov r0, #0x7 - bx lr -_020AC528: - cmp r0, #0x5 - moveq r0, #0x9 - movne r0, #0xc - bx lr -_020AC538: - ldr r0, _020AC550 ; =0x020FF6B4 - ldrb r0, [r0, r2] - bx lr -_020AC544: - mov r0, #0xc - bx lr - .balign 4 -_020AC54C: .word 0x020FF6AC -_020AC550: .word 0x020FF6B4 - - arm_func_start FUN_020AC554 -FUN_020AC554: - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrb r2, [r1, #0x4] - cmp r2, #0xff - bne _020AC57C - ldrb r2, [r1, #0x6] - cmp r2, #0x4 - bne _020AC57C - bl FUN_020AC628 - b _020AC598 -_020AC57C: - ldrb r0, [r0, #0x4] - mov r2, #0x10 - bl FUN_021EB044 -_020AC588: ; 0x020AC588 - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {pc} -_020AC598: - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020AC5A4 -FUN_020AC5A4: ; 0x020AC5A4 - mov r12, r0 - mov r3, #0x6 - mov r2, #0x0 -_020AC5B0: - strb r2, [r12], #0x1 - strb r2, [r12], #0x1 - strb r2, [r12], #0x1 - strb r2, [r12], #0x1 - subs r3, r3, #0x1 - bne _020AC5B0 - ldr r2, _020AC5E4 ; =0x021CCD20 - mov r3, #0x0 - ldr r2, [r2, #0x10] - str r2, [r0, #0x0] - str r3, [r0, #0xc] - strb r1, [r0, #0x4] - bx lr - .balign 4 -_020AC5E4: .word 0x021CCD20 - - arm_func_start FUN_020AC5E8 -FUN_020AC5E8: - stmdb sp!, {r4,lr} - sub sp, sp, #0x10 - mov r4, r0 - mov r3, #0xff - ldr r0, _020AC624 ; =0x021CB850 - add r1, sp, #0x0 - mov r2, #0x4 - strb r3, [sp, #0x4] - bl FUN_020AC458 - ldr r0, _020AC624 ; =0x021CB850 - add r1, sp, #0x0 - strb r4, [sp, #0xa] - bl FUN_020AC628 - add sp, sp, #0x10 - ldmia sp!, {r4,pc} - .balign 4 -_020AC624: .word 0x021CB850 - - arm_func_start FUN_020AC628 -FUN_020AC628: ; 0x020AC628 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - mov r11, r0 - mov r10, r1 - mov r9, #0x0 - bl FUN_020AC6E4 - ldr r4, _020AC6DC ; =0x021CCD20 - ldr r5, _020AC6E0 ; =0x021CB818 - mov r8, r9 - mov r7, #0x1 - mov r6, #0x10 -_020AC654: - cmp r8, #0x0 - movne r1, r7, lsl r8 - ldr r0, [r5, #0x0] - moveq r1, r7 - ands r0, r0, r1 - beq _020AC694 - ldrb r0, [r4, #0x0] - cmp r8, r0 - beq _020AC694 - mov r0, r8 - mov r1, r10 - mov r2, r6 - strb r8, [r10, #0x9] - bl FUN_021EB044 -_020AC68C: ; 0x020AC68C - cmp r0, #0x0 - addne r9, r9, #0x1 -_020AC694: - add r0, r8, #0x1 - and r8, r0, #0xff - cmp r8, #0x20 - blo _020AC654 - ldrb r0, [r10, #0xa] - cmp r0, #0x1 - ldreq r0, _020AC6E0 ; =0x021CB818 - ldreq r0, [r0, #0x0] - streq r0, [r11, #0x8] - beq _020AC6C8 - cmp r0, #0x0 - moveq r0, #0x0 - streq r0, [r11, #0x8] -_020AC6C8: - cmp r9, #0x0 - mvneq r0, #0x3 - movne r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020AC6DC: .word 0x021CCD20 -_020AC6E0: .word 0x021CB818 - - arm_func_start FUN_020AC6E4 -FUN_020AC6E4: ; 0x020AC6E4 - ldrb r2, [r1, #0xa] - cmp r2, #0x1 - ldreqb r2, [r0, #0x4] - ldreq r0, _020AC704 ; =0x021CB818 - streqb r2, [r1, #0xb] - ldreq r0, [r0, #0x0] - streq r0, [r1, #0xc] - bx lr - .balign 4 -_020AC704: .word 0x021CB818 - - arm_func_start FUN_020AC708 -FUN_020AC708: - stmdb sp!, {r4,lr} - sub sp, sp, #0x10 - add r2, sp, #0x0 - mov r3, #0x10 - mov r4, r0 - bl FUN_020ACAE0 -_020AC720: ; 0x020AC720 - cmp r0, #0x0 - addne sp, sp, #0x10 - ldmneia sp!, {r4,pc} -_020AC72C: ; 0x020AC72C - add r1, sp, #0x0 - mov r0, r4 - bl FUN_020AC554 -_020AC738: ; 0x020AC738 - cmp r0, #0x0 - movne r0, #0x0 - mvneq r0, #0x3 - add sp, sp, #0x10 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020AC74C -FUN_020AC74C: ; 0x020AC74C - stmdb sp!, {r4,lr} - sub sp, sp, #0x10 - add r2, sp, #0x0 - mov r3, #0x10 - mov r4, r0 - bl FUN_020ACBD0 -_020AC764: ; 0x020AC764 - cmp r0, #0x0 - addne sp, sp, #0x10 - ldmneia sp!, {r4,pc} -_020AC770: ; 0x020AC770 - add r1, sp, #0x0 - mov r0, r4 - bl FUN_020AC554 -_020AC77C: ; 0x020AC77C - cmp r0, #0x0 - movne r0, #0x0 - mvneq r0, #0x3 - add sp, sp, #0x10 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020AC790 -FUN_020AC790: ; 0x020AC790 - stmdb sp!, {r4,lr} - mov r1, r0 - cmp r1, #0x20 - movcs r0, #0x0 - ldmcsia sp!, {r4,pc} -_020AC7A4: ; 0x020AC7A4 - ldr r0, _020AC7F4 ; =0x021CCD20 - ldrb r0, [r0, #0x0] - cmp r1, r0 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_020AC7B8: ; 0x020AC7B8 - ldr r2, _020AC7F8 ; =0x021CB824 - ldr r4, [r2, #0x0] - cmp r4, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_020AC7CC: ; 0x020AC7CC - ldr r3, [r4, #0x14] - mov r0, r4 - str r3, [r2, #0x0] - bl FUN_020AC5A4 - ldr r1, _020AC7F8 ; =0x021CB824 - mov r0, r4 - ldr r2, [r1, #0x4] - str r2, [r4, #0x14] - str r4, [r1, #0x4] - ldmia sp!, {r4,pc} - .balign 4 -_020AC7F4: .word 0x021CCD20 -_020AC7F8: .word 0x021CB824 - - arm_func_start FUN_020AC7FC -FUN_020AC7FC: - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r2, #0x10 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {pc} - ldrb r2, [r1, #0x8] - cmp r2, r0 - bne _020AC834 - ldr r0, _020AC894 ; =0x021CCD20 - ldrb r12, [r1, #0x9] - ldrb r2, [r0, #0x0] - cmp r12, r2 - beq _020AC840 -_020AC834: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {pc} -_020AC840: - ldrb r2, [r1, #0x5] - cmp r2, #0x10 - beq _020AC860 - mov r0, r1 - mov r1, r3 - bl FUN_020ABE40 - add sp, sp, #0x4 - ldmia sp!, {pc} -_020AC860: - ldr r0, [r0, #0xc] - cmp r0, #0x0 - bne _020AC880 - mov r0, r1 - mov r1, r3 - bl FUN_020AC080 - add sp, sp, #0x4 - ldmia sp!, {pc} -_020AC880: - mov r0, r1 - mov r1, r3 - bl FUN_020ABECC - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AC894: .word 0x021CCD20 - - arm_func_start FUN_020AC898 -FUN_020AC898: ; 0x020AC898 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - bl OS_GetTick - ldr r2, _020AC950 ; =0x021CCD20 - ldr r3, [r2, #0x10] - cmp r3, #0x2 - addne sp, sp, #0x4 - ldmneia sp!, {r4-r5,pc} -_020AC8B8: ; 0x020AC8B8 - ldr r2, [r2, #0xc] - cmp r2, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} -_020AC8C8: ; 0x020AC8C8 - ldr r3, _020AC954 ; =0x021CB81C - mov r12, #0x0 - ldr r5, [r3, #0x4] - ldr r4, [r3, #0x0] - cmp r5, r12 - cmpeq r4, r12 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} -_020AC8E8: ; 0x020AC8E8 - ldr r2, _020AC958 ; =0x02106490 - subs r4, r0, r4 - ldr lr, [r2, #0x0] - ldr r0, [r2, #0x4] - sbc r1, r1, r5 - cmp r1, r0 - cmpeq r4, lr - addls sp, sp, #0x4 - ldmlsia sp!, {r4-r5,pc} -_020AC90C: ; 0x020AC90C - ldr r1, _020AC95C ; =0x021CB824 - mov r0, r12 - str r12, [r3, #0x0] - str r12, [r3, #0x4] - str r12, [r1, #0x2c] - str r12, [r1, #0x38] - bl FUN_020AC5E8 - ldr r1, _020AC950 ; =0x021CCD20 - ldr r0, _020AC95C ; =0x021CB824 - ldr r3, [r1, #0x8] - ldrb r0, [r0, #0x30] - ldr r12, [r1, #0x4] - ldr r2, _020AC960 ; =0x021CB850 - mov r1, #0x9 - blx r12 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AC950: .word 0x021CCD20 -_020AC954: .word 0x021CB81C -_020AC958: .word 0x02106490 -_020AC95C: .word 0x021CB824 -_020AC960: .word 0x021CB850 - - arm_func_start FUN_020AC964 -FUN_020AC964: ; 0x020AC964 - ldr r0, _020AC978 ; =0x021CB824 - mov r1, #0x0 - str r1, [r0, #0x4] - str r1, [r0, #0x0] - bx lr - .balign 4 -_020AC978: .word 0x021CB824 - - arm_func_start FUN_020AC97C -FUN_020AC97C: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _020AC9A8 - ldr r1, [r4, #0x4] - cmp r1, #0x0 - beq _020AC9A8 - cmp r1, #0x8 - bls _020AC9B4 -_020AC9A8: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r5,pc} -_020AC9B4: - ldr r1, _020ACA8C ; =0x021CB824 - mov r2, #0x18 - str r0, [r1, #0x0] - ldr r3, [r4, #0x4] - mov r1, #0x0 - mul r2, r3, r2 - bl MI_CpuFill8 - ldr r0, _020ACA90 ; =0x021CB850 - mov r1, #0x0 - mov r2, #0x18 - bl MI_CpuFill8 - ldr r0, _020ACA94 ; =0x021CB838 - mov r1, #0x0 - mov r2, #0x18 - bl MI_CpuFill8 - ldr r12, [r4, #0x4] - mov lr, #0x0 - subs r0, r12, #0x1 - beq _020ACA34 - ldr r1, _020ACA8C ; =0x021CB824 - mov r5, lr - mov r0, #0x18 -_020ACA0C: - ldr r2, [r1, #0x0] - add lr, lr, #0x1 - mla r3, lr, r0, r2 - add r2, r2, r5 - str r3, [r2, #0x14] - ldr r12, [r4, #0x4] - add r5, r5, #0x18 - sub r2, r12, #0x1 - cmp lr, r2 - blo _020ACA0C -_020ACA34: - ldr r3, _020ACA8C ; =0x021CB824 - mov r0, #0x18 - ldr r1, [r3, #0x0] - mov r5, #0x0 - mla r0, r12, r0, r1 - str r5, [r0, #-0x4] - ldr r2, _020ACA98 ; =0x021CB818 - ldr r1, _020ACA9C ; =0x021CB814 - ldr r0, _020ACAA0 ; =0x021CCD20 - ldr lr, _020ACAA4 ; =OS_GetTick - ldr ip, _020ACAA8 ; =0x5D588B65 - ldr r4, _020ACAAC ; =0x00269EC3 - str r5, [r3, #0x4] - str r5, [r2, #0x0] - str r5, [r1, #0x0] - str r5, [r0, #0x14] - str lr, [r3, #0x8] - str r12, [r3, #0xc] - str r4, [r3, #0x10] - mov r0, #0x1 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020ACA8C: .word 0x021CB824 -_020ACA90: .word 0x021CB850 -_020ACA94: .word 0x021CB838 -_020ACA98: .word 0x021CB818 -_020ACA9C: .word 0x021CB814 -_020ACAA0: .word 0x021CCD20 -_020ACAA4: .word OS_GetTick -_020ACAA8: .word 0x5D588B65 -_020ACAAC: .word 0x00269EC3 - - arm_func_start FUN_020ACAB0 -FUN_020ACAB0: ; 0x020ACAB0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, _020ACADC ; =0x021CCD20 - ldr r2, [r2, #0x10] - cmp r2, #0x2 - addeq sp, sp, #0x4 - mvneq r0, #0x2 - ldmeqia sp!, {pc} - bl FUN_020AC708 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020ACADC: .word 0x021CCD20 - - arm_func_start FUN_020ACAE0 -FUN_020ACAE0: - stmdb sp!, {r4-r6,lr} - movs r5, r0 - mov r6, r1 - mov r4, r2 - mvneq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} -_020ACAF8: ; 0x020ACAF8 - cmp r3, #0x10 - mvncc r0, #0x0 - ldmccia sp!, {r4-r6,pc} -_020ACB04: ; 0x020ACB04 - cmp r6, #0x0 - blt _020ACB14 - cmp r6, #0x6 - blt _020ACB1C -_020ACB14: - mvn r0, #0x2 - ldmia sp!, {r4-r6,pc} -_020ACB1C: - mov r3, #0x0 - mov r1, r4 - and r2, r6, #0xff - strb r3, [r4, #0x4] - bl FUN_020AC458 -_020ACB30: ; 0x020ACB30 - cmp r6, #0x0 - bne _020ACB80 - ldr r0, _020ACB9C ; =0x021CCD20 - ldr r0, [r0, #0x10] - cmp r0, #0x1 - bne _020ACB68 - ldr r0, [r5, #0xc] - cmp r0, #0x4 - bne _020ACB68 - mov r0, r5 - bl FUN_020AC304 -_020ACB5C: ; 0x020ACB5C - cmp r0, #0x0 - mvneq r0, #0x2 - ldmeqia sp!, {r4-r6,pc} -_020ACB68: - ldrb r1, [r5, #0x4] - cmp r1, #0x0 - movne r0, #0x1 - movne r0, r0, lsl r1 - moveq r0, #0x1 - str r0, [r5, #0x8] -_020ACB80: - mov r0, r5 - mov r1, r4 - bl FUN_020AC268 -_020ACB8C: ; 0x020ACB8C - cmp r0, #0x0 - mvneq r0, #0x2 - movne r0, #0x0 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020ACB9C: .word 0x021CCD20 - - arm_func_start FUN_020ACBA0 -FUN_020ACBA0: ; 0x020ACBA0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, _020ACBCC ; =0x021CCD20 - ldr r2, [r2, #0x10] - cmp r2, #0x2 - addeq sp, sp, #0x4 - mvneq r0, #0x2 - ldmeqia sp!, {pc} - bl FUN_020AC74C - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020ACBCC: .word 0x021CCD20 - - arm_func_start FUN_020ACBD0 -FUN_020ACBD0: - stmdb sp!, {r4-r6,lr} - movs r5, r0 - mov r4, r1 - mov r6, r2 - mvneq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} -_020ACBE8: ; 0x020ACBE8 - cmp r3, #0x10 - mvncc r0, #0x0 - ldmccia sp!, {r4-r6,pc} -_020ACBF4: ; 0x020ACBF4 - ldr r1, _020ACC80 ; =0x021CCD20 - ldr r1, [r1, #0xc] - cmp r1, #0x1 - mvneq r0, #0x2 - ldmeqia sp!, {r4-r6,pc} -_020ACC08: ; 0x020ACC08 - cmp r4, #0x0 - blt _020ACC18 - cmp r4, #0x5 - blt _020ACC20 -_020ACC18: - mvn r0, #0x2 - ldmia sp!, {r4-r6,pc} -_020ACC20: - mov r3, #0xff - mov r1, r6 - and r2, r4, #0xff - strb r3, [r6, #0x4] - bl FUN_020AC458 - mov r0, r5 - mov r1, r6 - bl FUN_020AC268 -_020ACC40: ; 0x020ACC40 - cmp r0, #0x0 - mvneq r0, #0x2 - ldmeqia sp!, {r4-r6,pc} -_020ACC4C: ; 0x020ACC4C - ldr r0, _020ACC80 ; =0x021CCD20 - ldr r0, [r0, #0x10] - cmp r0, #0x1 - bne _020ACC78 - cmp r4, #0x0 - bne _020ACC78 - mov r0, r5 - bl FUN_020AC304 -_020ACC6C: ; 0x020ACC6C - cmp r0, #0x0 - mvneq r0, #0x2 - ldmeqia sp!, {r4-r6,pc} -_020ACC78: - mov r0, #0x0 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020ACC80: .word 0x021CCD20 - - arm_func_start FUN_020ACC84 -FUN_020ACC84: ; 0x020ACC84 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, _020ACD48 ; =0x021CB824 - cmp r0, #0x0 - mov lr, #0x0 - addeq sp, sp, #0x4 - ldr r12, [r2, #0x4] - moveq r0, lr - ldmeqia sp!, {pc} - ldr r1, _020ACD4C ; =0x021CCD20 - ldr r1, [r1, #0x10] - cmp r1, #0x2 - bne _020ACCD0 - ldr r1, _020ACD50 ; =0x021CB850 - add sp, sp, #0x4 - cmp r0, r1 - streq lr, [r2, #0x2c] - mov r0, #0x1 - ldmia sp!, {pc} -_020ACCD0: - cmp r12, #0x0 - beq _020ACD3C -_020ACCD8: - cmp r12, r0 - bne _020ACD2C - mov r3, #0x0 - str r3, [r0, #0x0] - cmp lr, #0x0 - ldrne r1, [r0, #0x14] - strne r1, [lr, #0x14] - bne _020ACD10 - ldr r2, [r12, #0x14] - cmp r2, #0x0 - ldrne r1, _020ACD48 ; =0x021CB824 - strne r2, [r1, #0x4] - ldreq r1, _020ACD48 ; =0x021CB824 - streq r3, [r1, #0x4] -_020ACD10: - ldr r1, _020ACD48 ; =0x021CB824 - add sp, sp, #0x4 - ldr r2, [r1, #0x0] - str r2, [r0, #0x14] - str r0, [r1, #0x0] - mov r0, #0x1 - ldmia sp!, {pc} -_020ACD2C: - mov lr, r12 - ldr r12, [r12, #0x14] - cmp r12, #0x0 - bne _020ACCD8 -_020ACD3C: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020ACD48: .word 0x021CB824 -_020ACD4C: .word 0x021CCD20 -_020ACD50: .word 0x021CB850 - - arm_func_start FUN_020ACD54 -FUN_020ACD54: ; 0x020ACD54 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _020ACD8C ; =0x021CCD20 - ldr r1, [r1, #0x10] - cmp r1, #0x0 - beq _020ACD74 - cmp r1, #0x2 - bne _020ACD80 -_020ACD74: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {pc} -_020ACD80: - bl FUN_020AC790 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020ACD8C: .word 0x021CCD20 - - arm_func_start FUN_020ACD90 -FUN_020ACD90: - stmdb sp!, {r4,lr} - mov r4, r0 - bl OS_DisableInterrupts - ldr r1, _020ACDC0 ; =0x021CB86C - ldr r2, _020ACDC4 ; =0x021CB868 - ldr r3, [r1, #0x0] - str r0, [r2, #0x0] - str r3, [r4, #0x0] - ldr r0, [r2, #0x0] - str r4, [r1, #0x0] - bl OS_RestoreInterrupts - ldmia sp!, {r4,pc} - .balign 4 -_020ACDC0: .word 0x021CB86C -_020ACDC4: .word 0x021CB868 - - arm_func_start FUN_020ACDC8 -FUN_020ACDC8: ; 0x020ACDC8 - stmdb sp!, {r4,lr} - mov r4, #0x0 - bl OS_DisableInterrupts - ldr r1, _020ACE08 ; =0x021CB86C - ldr r2, _020ACE0C ; =0x021CB868 - ldr r3, [r1, #0x0] - str r0, [r2, #0x0] - cmp r3, #0x0 - ldrne r0, [r3, #0x0] - movne r4, r3 - strne r0, [r1, #0x0] - ldr r0, _020ACE0C ; =0x021CB868 - ldr r0, [r0, #0x0] - bl OS_RestoreInterrupts - mov r0, r4 - ldmia sp!, {r4,pc} - .balign 4 -_020ACE08: .word 0x021CB86C -_020ACE0C: .word 0x021CB868 - - arm_func_start FUN_020ACE10 -FUN_020ACE10: - ldr r1, _020ACE28 ; =0x021CB86C - mov r2, #0x0 - ldr r0, _020ACE2C ; =0x021CB870 - str r2, [r1, #0x0] - str r2, [r0, #0x0] - bx lr - .balign 4 -_020ACE28: .word 0x021CB86C -_020ACE2C: .word 0x021CB870 - - arm_func_start FUN_020ACE30 -FUN_020ACE30: - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - ldr r3, _020ACF00 ; =0xE525982B - mov r2, r1 - umull r1, r4, r2, r3 - ldr r1, _020ACF04 ; =0x021CB870 - mov r4, r4, lsr #0xa - str r0, [r1, #0x0] - cmp r4, #0x4 - blo _020ACE60 - cmp r4, #0x48 - bls _020ACE6C -_020ACE60: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r5,pc} -_020ACE6C: - cmp r0, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r5,pc} -_020ACE7C: ; 0x020ACE7C - ands r3, r0, #0x1f - movne r0, #0x0 - strne r0, [r1, #0x0] - addne sp, sp, #0x4 - ldmneia sp!, {r4-r5,pc} -_020ACE90: ; 0x020ACE90 - mov r1, r0 - mov r0, #0x0 - bl MIi_CpuClearFast - subs r12, r4, #0x1 - mov r5, #0x0 - beq _020ACED0 - ldr r1, _020ACF04 ; =0x021CB870 - ldr r0, _020ACF08 ; =0x00000478 - mov lr, r5 -_020ACEB4: - ldr r3, [r1, #0x0] - add r5, r5, #0x1 - mla r2, r5, r0, r3 - str r2, [r3, lr] - cmp r5, r12 - add lr, lr, r0 - blo _020ACEB4 -_020ACED0: - ldr r1, _020ACF04 ; =0x021CB870 - ldr r0, _020ACF08 ; =0x00000478 - ldr r2, [r1, #0x0] - mov r3, #0x0 - mla r0, r4, r0, r2 - str r3, [r0, #-0x478] - ldr r2, [r1, #0x0] - ldr r1, _020ACF0C ; =0x021CB86C - mov r0, #0x1 - str r2, [r1, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020ACF00: .word 0xE525982B -_020ACF04: .word 0x021CB870 -_020ACF08: .word 0x00000478 -_020ACF0C: .word 0x021CB86C - - arm_func_start FUN_020ACF10 -FUN_020ACF10: ; 0x020ACF10 - mov r2, #0xf - mov r0, #0x44 - mul r1, r2, r0 - ldr r0, _020ACF30 ; =0x02106498 - ldr ip, _020ACF34 ; =FUN_020AD170 - str r2, [r0, #0x8] - str r1, [r0, #0xc] - bx r12 - .balign 4 -_020ACF30: .word 0x02106498 -_020ACF34: .word FUN_020AD170 - - arm_func_start FUN_020ACF38 -FUN_020ACF38: ; 0x020ACF38 - stmdb sp!, {r4,lr} - ldr r3, _020AD124 ; =0x02106498 - mov r12, r1, lsr #0x8 - str r12, [r3, #0x4] - cmp r2, #0x0 - strneb r12, [r2, #0x0] - ldr r2, _020AD124 ; =0x02106498 - ldr r2, [r2, #0x0] - cmp r2, #0x0 - bne _020AD05C - mov r4, #0x0 - mov r12, r4 - ldr r3, _020AD128 ; =0x021CB880 -_020ACF6C: - ldr r2, [r3, r12, lsl #0x2] - add r12, r12, #0x1 - cmp r12, #0x4 - add r4, r4, r2 - blt _020ACF6C - ldr ip, _020AD12C ; =0x040002B0 - mov r3, #0x0 - ldr r2, _020AD130 ; =0x040002B8 - strh r3, [r12, #0x0] - mov r3, r4, lsr #0x2 - str r3, [r2, #0x0] -_020ACF98: - ldrh r2, [r12, #0x0] - ands r2, r2, #0x8000 - bne _020ACF98 - ldr r2, _020AD134 ; =0x040002B4 - cmp r1, #0x0 - ldr r2, [r2, #0x0] - beq _020AD038 - cmp r1, r2, lsl #0x1 - blo _020AD038 - mov r4, #0x0 - mov r3, r4 - ldr r2, _020AD128 ; =0x021CB880 -_020ACFC8: - ldr r1, [r2, r3, lsl #0x2] - add r3, r3, #0x1 - cmp r3, #0x4 - add r4, r4, r1 - blo _020ACFC8 - ldr r3, _020AD12C ; =0x040002B0 - mov r2, #0x0 - ldr r1, _020AD130 ; =0x040002B8 - strh r2, [r3, #0x0] - mov r2, r4, lsr #0x2 - str r2, [r1, #0x0] -_020ACFF4: - ldrh r1, [r3, #0x0] - ands r1, r1, #0x8000 - bne _020ACFF4 - ldr r2, _020AD134 ; =0x040002B4 - mov r1, #0x3 - ldr r2, [r2, #0x0] - ldr r3, _020AD138 ; =0x021CB874 - mul r1, r2, r1 - mov lr, r1, lsr #0x1 - ldr r2, _020AD13C ; =0x021CB878 - mov r12, #0x0 - ldr r1, _020AD124 ; =0x02106498 - mov r4, #0x1 - str lr, [r3, #0x0] - str r12, [r2, #0x0] - str r4, [r1, #0x0] - b _020AD03C -_020AD038: - mov r4, #0x0 -_020AD03C: - ldr r1, _020AD13C ; =0x021CB878 - ldr r3, _020AD128 ; =0x021CB880 - ldr r12, [r1, #0x0] - add r2, r12, #0x1 - and r2, r2, #0x3 - str r0, [r3, r12, lsl #0x2] - str r2, [r1, #0x0] - b _020AD11C -_020AD05C: - ldr r1, _020AD13C ; =0x021CB878 - mov lr, #0x0 - ldr r12, [r1, #0x0] - ldr r3, _020AD128 ; =0x021CB880 - add r2, r12, #0x1 - and r2, r2, #0x3 - mov r4, lr - str r0, [r3, r12, lsl #0x2] - str r2, [r1, #0x0] -_020AD080: - ldr r0, [r3, r4, lsl #0x2] - add r4, r4, #0x1 - cmp r4, #0x4 - add lr, lr, r0 - blt _020AD080 - ldr r2, _020AD12C ; =0x040002B0 - mov r1, #0x0 - ldr r0, _020AD130 ; =0x040002B8 - strh r1, [r2, #0x0] - mov r1, lr, lsr #0x2 - str r1, [r0, #0x0] -_020AD0AC: - ldrh r0, [r2, #0x0] - ands r0, r0, #0x8000 - bne _020AD0AC - ldr r1, _020AD134 ; =0x040002B4 - ldr r0, _020AD138 ; =0x021CB874 - ldr r1, [r1, #0x0] - ldr r0, [r0, #0x0] - cmp r1, r0 - bhi _020AD10C - ldr r2, _020AD140 ; =0x021CB87C - ldr r1, _020AD124 ; =0x02106498 - ldr r3, [r2, #0x0] - ldr r0, [r1, #0x8] - add r3, r3, #0x1 - str r3, [r2, #0x0] - cmp r3, r0 - ble _020AD118 - ldr r0, _020AD13C ; =0x021CB878 - mov r3, #0x0 - str r3, [r0, #0x0] - str r3, [r1, #0x0] - str r3, [r2, #0x0] - mov r0, #0x3 - ldmia sp!, {r4,pc} -_020AD10C: - ldr r0, _020AD140 ; =0x021CB87C - mov r1, #0x0 - str r1, [r0, #0x0] -_020AD118: - mov r4, #0x2 -_020AD11C: - mov r0, r4 - ldmia sp!, {r4,pc} - .balign 4 -_020AD124: .word 0x02106498 -_020AD128: .word 0x021CB880 -_020AD12C: .word 0x040002B0 -_020AD130: .word 0x040002B8 -_020AD134: .word 0x040002B4 -_020AD138: .word 0x021CB874 -_020AD13C: .word 0x021CB878 -_020AD140: .word 0x021CB87C - - arm_func_start FUN_020AD144 -FUN_020AD144: ; 0x020AD144 - stmdb sp!, {lr} - sub sp, sp, #0x4 - movs r1, r0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldr r0, _020AD16C ; =0x02106498 - mov r2, #0x10 - bl MI_CpuCopy8 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AD16C: .word 0x02106498 - - arm_func_start FUN_020AD170 -FUN_020AD170: - ldr r0, _020AD1B8 ; =0x021CB880 - mov r2, #0x0 - mov r1, #0x1000000 -_020AD17C: - str r1, [r0, r2, lsl #0x2] - add r2, r2, #0x1 - cmp r2, #0x4 - blt _020AD17C - ldr r3, _020AD1BC ; =0x021CB878 - mov r12, #0x0 - ldr r1, _020AD1C0 ; =0x02106498 - ldr r2, _020AD1C4 ; =0x021CB874 - ldr r0, _020AD1C8 ; =0x021CB87C - str r12, [r3, #0x0] - str r12, [r2, #0x0] - str r12, [r1, #0x0] - str r12, [r1, #0x4] - str r12, [r0, #0x0] - bx lr - .balign 4 -_020AD1B8: .word 0x021CB880 -_020AD1BC: .word 0x021CB878 -_020AD1C0: .word 0x02106498 -_020AD1C4: .word 0x021CB874 -_020AD1C8: .word 0x021CB87C - - arm_func_start FUN_020AD1CC -FUN_020AD1CC: ; 0x020AD1CC - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov r12, r1 - mov r3, r2 - ldr r1, _020AD1F0 ; =0x021CB8D4 - mov r2, r12 - bl FUN_020AD1F4 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AD1F0: .word 0x021CB8D4 - - arm_func_start FUN_020AD1F4 -FUN_020AD1F4: ; 0x020AD1F4 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x14 - mov r4, #0x0 - str r4, [sp, #0x0] - str r4, [sp, #0x4] - mov r9, r4 - movs r8, r2, lsr #0x1 - beq _020AD330 - mov r4, #0xc0000000 - ldr ip, _020AD420 ; =0x021CB8BC - ldr r2, _020AD424 ; =0x021CB8A4 - str r4, [sp, #0xc] -_020AD224: - ldr r4, _020AD428 ; =0x021CB894 - ldr lr, [r2, #0x10] - ldr r7, [r4, #0x0] - mov r4, r9, lsl #0x1 - ldrsh r10, [r1, r4] - ldr r4, _020AD42C ; =0x021CB898 - mov r5, r7, lsl #0x1 - ldr r6, [r4, #0x0] - ldr r4, _020AD430 ; =0x021CBD14 - ldr r11, [r2, #0x14] - strh r10, [r4, r5] - ldr r10, [r12, #0x10] - mov r5, r6, lsl #0x1 - ldrsh r5, [r4, r5] - ldr r4, [r12, #0x14] - mul lr, r10, lr - str r10, [sp, #0x8] - str r10, [r12, #0x14] - mla r10, r4, r11, lr - ldr r4, [r12, #0xc] - ldr r11, [r2, #0xc] - str r4, [r12, #0x10] - mla r10, r4, r11, r10 - ldr r4, [r12, #0x8] - ldr r11, [r2, #0x8] - str r4, [r12, #0xc] - mla r10, r4, r11, r10 - ldr r4, [r12, #0x4] - ldr r11, [r2, #0x4] - str r4, [r12, #0x8] - mla r10, r4, r11, r10 - ldr r4, [r2, #0x0] - str r5, [r12, #0x0] - mla r4, r5, r4, r10 - str r5, [r12, #0x4] - ldr r5, _020AD434 ; =0x3FFF8000 - cmp r4, r5 - movgt r4, r5 - bgt _020AD2C8 - cmp r4, #0xc0000000 - ldrlt r4, [sp, #0xc] -_020AD2C8: - ldr r5, _020AD438 ; =0x000007FF - add r7, r7, #0x1 - and r7, r7, r5 - ldr r5, _020AD428 ; =0x021CB894 - add r6, r6, #0x1 - str r7, [r5, #0x0] - ldr r5, _020AD438 ; =0x000007FF - mov r7, r9, lsl #0x1 - and r6, r6, r5 - ldr r5, _020AD42C ; =0x021CB898 - mov r4, r4, asr #0xf - str r6, [r5, #0x0] - strh r4, [r1, r7] - ldrsh r6, [r1, r7] - ldrsh r4, [r0, r7] - add r9, r9, #0x1 - mul r5, r6, r6 - strh r4, [r1, r7] - ldr r4, [sp, #0x0] - adds r4, r4, r5 - str r4, [sp, #0x0] - ldr r4, [sp, #0x4] - adc r4, r4, r5, asr #0x1f - str r4, [sp, #0x4] - cmp r9, r8 - blo _020AD224 -_020AD330: - ldr r5, _020AD43C ; =0x04000280 - mov r1, #0x1 - strh r1, [r5, #0x0] - ldr r4, _020AD440 ; =0x04000290 - ldr r1, [sp, #0x0] - ldr r2, _020AD444 ; =0x04000298 - str r1, [r4, #0x0] - ldr r1, [sp, #0x4] - str r1, [r4, #0x4] - str r8, [r2, #0x0] - mov r1, #0x0 - str r1, [r2, #0x4] -_020AD360: - ldrh r1, [r5, #0x0] - ands r1, r1, #0x8000 - bne _020AD360 - ldr r1, _020AD448 ; =0x040002A0 - ldr r2, _020AD44C ; =0x040002B0 - ldr r5, [r1, #0x0] - mov r4, #0x0 - ldr r1, _020AD450 ; =0x040002B8 - strh r4, [r2, #0x0] - str r5, [r1, #0x0] -_020AD388: - ldrh r1, [r2, #0x0] - ands r1, r1, #0x8000 - bne _020AD388 - ldr r2, _020AD454 ; =0x040002B4 - mov r1, #0x3 - ldr r4, [r2, #0x0] - mov r2, r3, lsl #0x1 - mul r1, r4, r1 - cmp r2, r1 - ldrhi r0, _020AD458 ; =0x021CB890 - movhi r1, #0x0 - strhih r1, [r0, #0x0] - addhi sp, sp, #0x14 - ldmhiia sp!, {r4-r11,pc} -_020AD3C0: ; 0x020AD3C0 - cmp r3, r4 - ldrlo r1, _020AD458 ; =0x021CB890 - movcc r2, #0x4 - strcch r2, [r1, #0x0] - ldr r1, _020AD458 ; =0x021CB890 - mov r3, #0x0 - ldrsh r2, [r1, #0x0] - cmp r2, #0x4 - addlt r2, r2, #0x1 - strlth r2, [r1, #0x0] - cmp r8, #0x0 - addls sp, sp, #0x14 - ldmlsia sp!, {r4-r11,pc} -_020AD3F4: ; 0x020AD3F4 - ldr r1, _020AD458 ; =0x021CB890 - ldrsh r4, [r1, #0x0] -_020AD3FC: - mov r2, r3, lsl #0x1 - ldrsh r1, [r0, r2] - add r3, r3, #0x1 - cmp r3, r8 - mov r1, r1, asr r4 - strh r1, [r0, r2] - blo _020AD3FC - add sp, sp, #0x14 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020AD420: .word 0x021CB8BC -_020AD424: .word 0x021CB8A4 -_020AD428: .word 0x021CB894 -_020AD42C: .word 0x021CB898 -_020AD430: .word 0x021CBD14 -_020AD434: .word 0x3FFF8000 -_020AD438: .word 0x000007FF -_020AD43C: .word 0x04000280 -_020AD440: .word 0x04000290 -_020AD444: .word 0x04000298 -_020AD448: .word 0x040002A0 -_020AD44C: .word 0x040002B0 -_020AD450: .word 0x040002B8 -_020AD454: .word 0x040002B4 -_020AD458: .word 0x021CB890 - - arm_func_start FUN_020AD45C -FUN_020AD45C: ; 0x020AD45C - ldr ip, _020AD46C ; =MIi_CpuCopyFast - mov r2, r1 - ldr r1, _020AD470 ; =0x021CB8D4 - bx r12 - .balign 4 -_020AD46C: .word MIi_CpuCopyFast -_020AD470: .word 0x021CB8D4 - - arm_func_start FUN_020AD474 -FUN_020AD474: ; 0x020AD474 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r1, _020AD4E4 ; =0x021CB894 - mov r3, #0x0 - ldr r2, _020AD4E8 ; =0x0000019D - ldr r0, _020AD4EC ; =0x021CB898 - ldr lr, _020AD4F0 ; =0x021064A8 - str r3, [r1, #0x0] - str r2, [r0, #0x0] - ldr r0, _020AD4F4 ; =0x021CBD14 - mov r12, r3 -_020AD4A0: - mov r1, r3, lsl #0x1 - add r3, r3, #0x1 - strh r12, [r0, r1] - cmp r3, #0x800 - blt _020AD4A0 - ldr r2, _020AD4F8 ; =0x021CB8BC - ldr r0, _020AD4FC ; =0x021CB8A4 - mov r3, #0x0 -_020AD4C0: - str r3, [r2, r12, lsl #0x2] - mov r1, r12, lsl #0x1 - ldrsh r1, [lr, r1] - str r1, [r0, r12, lsl #0x2] - add r12, r12, #0x1 - cmp r12, #0x6 - blt _020AD4C0 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AD4E4: .word 0x021CB894 -_020AD4E8: .word 0x0000019D -_020AD4EC: .word 0x021CB898 -_020AD4F0: .word 0x021064A8 -_020AD4F4: .word 0x021CBD14 -_020AD4F8: .word 0x021CB8BC -_020AD4FC: .word 0x021CB8A4 - - arm_func_start FUN_020AD500 -FUN_020AD500: ; 0x020AD500 - stmdb sp!, {r4-r11,lr} - sub sp, sp, #0x4 - ldrsh r2, [r0, #0x0] - ldr r6, _020AD5FC ; =0x00000E9F - ldr sb, _020AD600 ; =0x021CB89C - ldr r8, _020AD604 ; =0x021CB8A0 - smulbb r10, r2, r6 - ldr r3, [r9, #0x0] - ldr r2, [r8, #0x0] - ldr r7, _020AD608 ; =0x00000D3E - add r3, r10, r3 - mla r5, r2, r7, r3 - mov r3, r5, asr #0xc - mul r4, r3, r3 - str r5, [r8, #0x0] - rsb r2, r10, #0x0 - mov r12, r1, lsr #0x1 - str r3, [r8, #0x0] - str r2, [r9, #0x0] - cmp r12, #0x1 - mov lr, r4, asr #0x1f - mov r5, #0x1 - bls _020AD5AC -_020AD55C: - mov r2, r5, lsl #0x1 - ldrsh r10, [r0, r2] - ldr r3, [r8, #0x0] - add r2, r0, r5, lsl #0x1 - strh r3, [r2, #-0x2] - smulbb r11, r10, r6 - ldr r2, [r9, #0x0] - rsb r10, r11, #0x0 - add r2, r11, r2 - mla r2, r3, r7, r2 - mov r3, r2, asr #0xc - mul r11, r3, r3 - str r2, [r8, #0x0] - adds r4, r4, r11 - str r10, [r9, #0x0] - add r5, r5, #0x1 - adc lr, lr, r11, asr #0x1f - str r3, [r8, #0x0] - cmp r5, r12 - blo _020AD55C -_020AD5AC: - bic r1, r1, #0x1 - add r0, r0, r1 - ldr r2, _020AD60C ; =0x04000280 - strh r3, [r0, #-0x2] - mov r0, #0x1 - ldr r1, _020AD610 ; =0x04000290 - strh r0, [r2, #0x0] - str r4, [r1, #0x0] - ldr r0, _020AD614 ; =0x04000298 - str lr, [r1, #0x4] - str r12, [r0, #0x0] - mov r1, #0x0 - str r1, [r0, #0x4] -_020AD5E0: - ldrh r0, [r2, #0x0] - ands r0, r0, #0x8000 - bne _020AD5E0 - ldr r0, _020AD618 ; =0x040002A0 - ldr r0, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r11,pc} - .balign 4 -_020AD5FC: .word 0x00000E9F -_020AD600: .word 0x021CB89C -_020AD604: .word 0x021CB8A0 -_020AD608: .word 0x00000D3E -_020AD60C: .word 0x04000280 -_020AD610: .word 0x04000290 -_020AD614: .word 0x04000298 -_020AD618: .word 0x040002A0 - - arm_func_start FUN_020AD61C -FUN_020AD61C: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - movs lr, r3, lsr #0x1 - mov r4, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r7,pc} -_020AD634: ; 0x020AD634 - mov r3, #0x8000 - ldr ip, _020AD720 ; =0x00007FFF - rsb r3, r3, #0x0 -_020AD640: - mov r5, r4, lsl #0x1 - ldrsh r6, [r0, r5] - ldrsh r5, [r1, r5] - add r6, r6, r5 - cmp r6, r12 - movgt r6, r12 - bgt _020AD664 - cmp r6, r3 - movlt r6, r3 -_020AD664: - mov r5, r4, lsl #0x1 - add r7, r4, #0x1 - strh r6, [r2, r5] - mov r5, r7, lsl #0x1 - ldrsh r6, [r0, r5] - ldrsh r5, [r1, r5] - add r6, r6, r5 - cmp r6, r12 - movgt r6, r12 - bgt _020AD694 - cmp r6, r3 - movlt r6, r3 -_020AD694: - mov r5, r7, lsl #0x1 - add r7, r4, #0x2 - strh r6, [r2, r5] - mov r5, r7, lsl #0x1 - ldrsh r6, [r0, r5] - ldrsh r5, [r1, r5] - add r6, r6, r5 - cmp r6, r12 - movgt r6, r12 - bgt _020AD6CC - mov r5, #0x8000 - rsb r5, r5, #0x0 - cmp r6, r5 - movlt r6, r3 -_020AD6CC: - mov r5, r7, lsl #0x1 - add r7, r4, #0x3 - strh r6, [r2, r5] - mov r5, r7, lsl #0x1 - ldrsh r6, [r0, r5] - ldrsh r5, [r1, r5] - add r6, r6, r5 - cmp r6, r12 - movgt r6, r12 - bgt _020AD704 - mov r5, #0x8000 - rsb r5, r5, #0x0 - cmp r6, r5 - movlt r6, r3 -_020AD704: - mov r5, r7, lsl #0x1 - add r4, r4, #0x4 - strh r6, [r2, r5] - cmp r4, lr - blo _020AD640 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020AD720: .word 0x00007FFF - - arm_func_start FUN_020AD724 -FUN_020AD724: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - movs r6, r1 - mov r7, r0 - mov r5, r2 - mov r4, r3 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r7,pc} -_020AD748: ; 0x020AD748 - ldr r1, [r6, #0x0] - ldr r0, _020AD824 ; =0x5F564354 - cmp r1, r0 - addne sp, sp, #0x4 - movne r0, #0x2 - ldmneia sp!, {r4-r7,pc} -_020AD760: ; 0x020AD760 - ldr r0, _020AD828 ; =0x021CCD20 - ldr r0, [r0, #0x10] - cmp r0, #0x0 - beq _020AD780 - ldr r0, _020AD82C ; =0x021CCD1C - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020AD78C -_020AD780: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r7,pc} -_020AD78C: - mov r0, #0x0 - str r0, [r4, #0x0] - str r0, [r4, #0x4] - bl OS_GetTick - ldrb r3, [r6, #0x4] - and r2, r3, #0xf0 - cmp r2, #0x40 - bne _020AD7E0 - ldr r2, _020AD830 ; =0x021CCD18 - mov r3, r0 - ldr r4, [r2, #0x0] - mov r0, r7 - add r4, r4, #0x1 - str r4, [r2, #0x0] - str r1, [sp, #0x0] - mov r1, r6 - mov r2, r5 - bl FUN_020AA2A0 - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {r4-r7,pc} -_020AD7E0: - cmp r3, #0x0 - beq _020AD7F0 - cmp r3, #0xff - bne _020AD818 -_020AD7F0: - mov r0, r7 - mov r1, r6 - mov r2, r5 - mov r3, r4 - bl FUN_020AC7FC -_020AD804: ; 0x020AD804 - cmp r0, #0x0 - movne r0, #0x1 - add sp, sp, #0x4 - moveq r0, #0x0 - ldmia sp!, {r4-r7,pc} -_020AD818: - mov r0, #0x0 - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020AD824: .word 0x5F564354 -_020AD828: .word 0x021CCD20 -_020AD82C: .word 0x021CCD1C -_020AD830: .word 0x021CCD18 - - arm_func_start FUN_020AD834 -FUN_020AD834: ; 0x020AD834 - stmdb sp!, {r4,lr} - sub sp, sp, #0x8 - add r3, sp, #0x0 - mov r4, r0 - bl FUN_020AD724 -_020AD848: ; 0x020AD848 - cmp r0, #0x0 - beq _020AD898 - cmp r0, #0x1 - beq _020AD864 - cmp r0, #0x2 - beq _020AD88C - b _020AD898 -_020AD864: - ldr r0, _020AD8A4 ; =0x021CCD20 - ldr r1, [sp, #0x0] - ldr r2, [sp, #0x4] - ldr r3, [r0, #0x8] - ldr r12, [r0, #0x4] - mov r0, r4 - blx r12 - add sp, sp, #0x8 - mov r0, #0x1 - ldmia sp!, {r4,pc} -_020AD88C: - add sp, sp, #0x8 - mov r0, #0x0 - ldmia sp!, {r4,pc} -_020AD898: - mov r0, #0x1 - add sp, sp, #0x8 - ldmia sp!, {r4,pc} - .balign 4 -_020AD8A4: .word 0x021CCD20 - - arm_func_start FUN_020AD8A8 -FUN_020AD8A8: ; 0x020AD8A8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r0, _020AD8FC ; =0x021CCD1C - ldr r0, [r0, #0x0] - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - ldr r0, _020AD900 ; =0x021CCD14 - ldr r1, [r0, #0x0] - add r1, r1, #0x1 - str r1, [r0, #0x0] - ands r0, r1, #0xf - bne _020AD8E0 - bl FUN_020AC898 -_020AD8E0: - bl FUN_020AA0A4 -_020AD8E4: ; 0x020AD8E4 - cmp r0, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {pc} - bl FUN_020AA1CC - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AD8FC: .word 0x021CCD1C -_020AD900: .word 0x021CCD14 - - arm_func_start FUN_020AD904 -FUN_020AD904: ; 0x020AD904 - stmdb sp!, {lr} - sub sp, sp, #0x4 - bl FUN_020AAF44 - bl FUN_020AC964 - bl FUN_020ACE10 - ldr r1, _020AD934 ; =0x021CCD20 - mov r2, #0x0 - ldr r0, _020AD938 ; =0x021CCD1C - str r2, [r1, #0x10] - str r2, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AD934: .word 0x021CCD20 -_020AD938: .word 0x021CCD1C - - arm_func_start FUN_020AD93C -FUN_020AD93C: ; 0x020AD93C - stmdb sp!, {r4,lr} - mov r4, r0 - ldr r0, _020ADA78 ; =0x02000C1C - bl OSi_ReferSymbol -_020AD94C: ; 0x020AD94C - cmp r4, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_020AD958: ; 0x020AD958 - ldr r0, _020ADA7C ; =0x021CCD1C - ldr r0, [r0, #0x0] - cmp r0, #0x0 - movne r0, #0x1 - ldmneia sp!, {r4,pc} -_020AD96C: ; 0x020AD96C - ldr r0, [r4, #0x8] - cmp r0, #0x1 - beq _020AD98C - cmp r0, #0x2 - beq _020AD98C - cmp r0, #0x3 - movne r0, #0x0 - ldmneia sp!, {r4,pc} -_020AD98C: - ldr r0, [r4, #0x18] - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4,pc} -_020AD99C: ; 0x020AD99C - ldr r2, [r4, #0x10] - cmp r2, #0x0 - beq _020AD9B4 - ldr r0, [r4, #0x14] - cmp r0, #0x0 - bne _020AD9BC -_020AD9B4: - mov r0, #0x0 - ldmia sp!, {r4,pc} -_020AD9BC: - mov r1, r2, lsr #0x1f - rsb r0, r1, r2, lsl #0x1b - adds r0, r1, r0, ror #0x1b - movne r0, #0x0 - ldmneia sp!, {r4,pc} -_020AD9D0: ; 0x020AD9D0 - ldr r0, _020ADA80 ; =0x021CCD20 - mov r1, #0x0 - mov r2, #0x18 - bl MI_CpuFill8 - ldr r2, [r4, #0x18] - ldr r1, _020ADA80 ; =0x021CCD20 - mov r0, #0x0 - str r2, [r1, #0x4] - ldr r2, [r4, #0x1c] - str r2, [r1, #0x8] - ldr r2, [r4, #0x8] - str r0, [r1, #0xc] - str r2, [r1, #0x10] - ldrb r2, [r4, #0xc] - cmp r2, #0x20 - ldmcsia sp!, {r4,pc} -_020ADA10: ; 0x020ADA10 - strb r2, [r1, #0x0] - ldr r0, [r4, #0x10] - ldr r1, [r4, #0x14] - bl FUN_020ACE30 -_020ADA20: ; 0x020ADA20 - cmp r0, #0x0 - bne _020ADA34 - bl FUN_020ACE10 -_020ADA2C: ; 0x020ADA2C - mov r0, #0x0 - ldmia sp!, {r4,pc} -_020ADA34: - mov r0, r4 - bl FUN_020AC97C -_020ADA3C: ; 0x020ADA3C - cmp r0, #0x0 - bne _020ADA50 - bl FUN_020ACE10 -_020ADA48: ; 0x020ADA48 - mov r0, #0x0 - ldmia sp!, {r4,pc} -_020ADA50: - bl FUN_020AAF58 -_020ADA54: ; 0x020ADA54 - cmp r0, #0x0 - ldrne r1, _020ADA7C ; =0x021CCD1C - movne r0, #0x1 - strne r0, [r1, #0x0] - ldmneia sp!, {r4,pc} -_020ADA68: ; 0x020ADA68 - bl FUN_020AC964 - bl FUN_020ACE10 -_020ADA70: ; 0x020ADA70 - mov r0, #0x0 - ldmia sp!, {r4,pc} - .balign 4 -_020ADA78: .word 0x02000C1C -_020ADA7C: .word 0x021CCD1C -_020ADA80: .word 0x021CCD20 - - arm_func_start FUN_020ADA84 -FUN_020ADA84: ; 0x020ADA84 - cmp r1, #0x0 - ldreq r0, [r0, #0x4] - ldrneh r0, [r0, #0xa] - ldrne r0, [r1, r0] - bx lr - - arm_func_start FUN_020ADA98 -FUN_020ADA98: ; 0x020ADA98 - cmp r1, #0x0 - ldreq r0, [r0, #0x0] - ldrneh r0, [r0, #0xa] - addne r0, r1, r0 - ldrne r0, [r0, #0x4] - bx lr - - arm_func_start FUN_020ADAB0 -FUN_020ADAB0: ; 0x020ADAB0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldrh r12, [r0, #0xa] - ldr r3, [r1, r12] - add lr, r1, r12 - cmp r3, #0x0 - ldreq r1, [lr, #0x4] - streq r1, [r0, #0x0] - ldrne r2, [lr, #0x4] - addne r1, r3, r12 - strne r2, [r1, #0x4] - ldr r3, [lr, #0x4] - cmp r3, #0x0 - ldreq r1, [lr, #0x0] - streq r1, [r0, #0x4] - ldrneh r1, [r0, #0xa] - ldrne r2, [lr, #0x0] - strne r2, [r3, r1] - mov r1, #0x0 - str r1, [lr, #0x0] - str r1, [lr, #0x4] - ldrh r1, [r0, #0x8] - sub r1, r1, #0x1 - strh r1, [r0, #0x8] - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020ADB18 -FUN_020ADB18: ; 0x020ADB18 - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r1, #0x0 - bne _020ADB38 - mov r1, r2 - bl FUN_020ADBE8 - add sp, sp, #0x4 - ldmia sp!, {pc} -_020ADB38: - ldr r3, [r0, #0x0] - cmp r1, r3 - bne _020ADB54 - mov r1, r2 - bl FUN_020ADB8C - add sp, sp, #0x4 - ldmia sp!, {pc} -_020ADB54: - ldrh lr, [r0, #0xa] - ldr r3, [r1, lr] - add r12, r2, lr - str r3, [r2, lr] - str r1, [r12, #0x4] - add r3, r3, lr - str r2, [r3, #0x4] - ldrh r3, [r0, #0xa] - str r2, [r1, r3] - ldrh r1, [r0, #0x8] - add r1, r1, #0x1 - strh r1, [r0, #0x8] - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020ADB8C -FUN_020ADB8C: ; 0x020ADB8C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, [r0, #0x0] - cmp r2, #0x0 - bne _020ADBAC - bl FUN_020ADC48 - add sp, sp, #0x4 - ldmia sp!, {pc} -_020ADBAC: - ldrh r3, [r0, #0xa] - mov r2, #0x0 - str r2, [r1, r3] - ldr r2, [r0, #0x0] - add r3, r1, r3 - str r2, [r3, #0x4] - ldrh r2, [r0, #0xa] - ldr r3, [r0, #0x0] - str r1, [r3, r2] - str r1, [r0, #0x0] - ldrh r1, [r0, #0x8] - add r1, r1, #0x1 - strh r1, [r0, #0x8] - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020ADBE8 -FUN_020ADBE8: ; 0x020ADBE8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, [r0, #0x0] - cmp r2, #0x0 - bne _020ADC08 - bl FUN_020ADC48 - add sp, sp, #0x4 - ldmia sp!, {pc} -_020ADC08: - ldrh r12, [r0, #0xa] - ldr r3, [r0, #0x4] - mov r2, #0x0 - str r3, [r1, r12] - add r3, r1, r12 - str r2, [r3, #0x4] - ldrh r2, [r0, #0xa] - ldr r3, [r0, #0x4] - add r2, r3, r2 - str r1, [r2, #0x4] - str r1, [r0, #0x4] - ldrh r1, [r0, #0x8] - add r1, r1, #0x1 - strh r1, [r0, #0x8] - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020ADC48 -FUN_020ADC48: ; 0x020ADC48 - ldrh r3, [r0, #0xa] - mov r2, #0x0 - add r12, r1, r3 - str r2, [r12, #0x4] - str r2, [r1, r3] - str r1, [r0, #0x0] - str r1, [r0, #0x4] - ldrh r1, [r0, #0x8] - add r1, r1, #0x1 - strh r1, [r0, #0x8] - bx lr - - arm_func_start FUN_020ADC74 -FUN_020ADC74: ; 0x020ADC74 - mov r2, #0x0 - str r2, [r0, #0x0] - str r2, [r0, #0x4] - strh r2, [r0, #0x8] - strh r1, [r0, #0xa] - bx lr - - arm_func_start FUN_020ADC8C -FUN_020ADC8C: ; 0x020ADC8C - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020ADD30 - mov r1, r4 - bl FUN_020ADAB0 - ldmia sp!, {r4,pc} - - arm_func_start FUN_020ADCA4 -FUN_020ADCA4: - stmdb sp!, {r4,lr} - mov r4, r0 - str r1, [r4, #0x0] - str r2, [r4, #0x18] - str r3, [r4, #0x1c] - mov r0, #0x0 - str r0, [r4, #0x20] - ldr r1, [r4, #0x20] - ldrh r0, [sp, #0x8] - bic r1, r1, #0xff - str r1, [r4, #0x20] - ldr r1, [r4, #0x20] - and r0, r0, #0xff - orr r2, r1, r0 - add r0, r4, #0xc - mov r1, #0x4 - str r2, [r4, #0x20] - bl FUN_020ADC74 - ldr r0, _020ADD28 ; =0x021CCD38 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _020ADD14 - ldr r0, _020ADD2C ; =0x021CCD3C - mov r1, #0x4 - bl FUN_020ADC74 - ldr r0, _020ADD28 ; =0x021CCD38 - mov r1, #0x1 - str r1, [r0, #0x0] -_020ADD14: - mov r0, r4 - bl FUN_020ADD30 - mov r1, r4 - bl FUN_020ADBE8 - ldmia sp!, {r4,pc} - .balign 4 -_020ADD28: .word 0x021CCD38 -_020ADD2C: .word 0x021CCD3C - - arm_func_start FUN_020ADD30 -FUN_020ADD30: ; 0x020ADD30 - stmdb sp!, {r4,lr} - ldr r4, _020ADD54 ; =0x021CCD3C - mov r1, r0 - mov r0, r4 - bl FUN_020ADD58 -_020ADD44: ; 0x020ADD44 - cmp r0, #0x0 - addne r4, r0, #0xc - mov r0, r4 - ldmia sp!, {r4,pc} - .balign 4 -_020ADD54: .word 0x021CCD3C - - arm_func_start FUN_020ADD58 -FUN_020ADD58: - stmdb sp!, {r4-r6,lr} - mov r5, r1 - mov r1, #0x0 - mov r6, r0 - bl FUN_020ADA98 - movs r4, r0 - beq _020ADDB8 -_020ADD74: - ldr r0, [r4, #0x18] - cmp r0, r5 - bhi _020ADDA4 - ldr r0, [r4, #0x1c] - cmp r5, r0 - bhs _020ADDA4 - mov r1, r5 - add r0, r4, #0xc - bl FUN_020ADD58 -_020ADD98: ; 0x020ADD98 - cmp r0, #0x0 - moveq r0, r4 - ldmia sp!, {r4-r6,pc} -_020ADDA4: - mov r0, r6 - mov r1, r4 - bl FUN_020ADA98 - movs r4, r0 - bne _020ADD74 -_020ADDB8: - mov r0, #0x0 - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_020ADDC0 -FUN_020ADDC0: ; 0x020ADDC0 - ldr r0, [r0, #-0xc] - bx lr - - arm_func_start FUN_020ADDC8 -FUN_020ADDC8: ; 0x020ADDC8 - ldr r2, [r0, #0x24] - mov r0, #0x0 - cmp r2, #0x0 - bxeq lr -_020ADDD8: - ldr r1, [r2, #0x4] - ldr r2, [r2, #0xc] - add r0, r0, r1 - cmp r2, #0x0 - bne _020ADDD8 - bx lr - - arm_func_start FUN_020ADDF0 -FUN_020ADDF0: ; 0x020ADDF0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0xc - sub r4, r1, #0x10 - add r5, r0, #0x24 - add r0, sp, #0x0 - mov r1, r4 - bl FUN_020AE528 - mov r1, r4 - add r0, r5, #0x8 - bl FUN_020AE500 - add r1, sp, #0x0 - mov r0, r5 - bl FUN_020AE02C - add sp, sp, #0xc - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020ADE2C -FUN_020ADE2C: ; 0x020ADE2C - stmdb sp!, {r4-r10,lr} - sub sp, sp, #0x10 - mov r4, r1 - mov r10, r2 - sub r6, r4, #0x10 - add r1, r10, #0x3 - mov r5, r0 - ldr r8, [r6, #0x4] - bic r10, r1, #0x3 - cmp r10, r8 - add r7, r5, #0x24 - addeq sp, sp, #0x10 - moveq r0, r10 - ldmeqia sp!, {r4-r10,pc} -_020ADE64: ; 0x020ADE64 - cmp r10, r8 - bls _020ADF60 - ldr r9, [r7, #0x0] - add r0, r6, #0x10 - cmp r9, #0x0 - add r0, r8, r0 - beq _020ADE94 -_020ADE80: - cmp r9, r0 - beq _020ADE94 - ldr r9, [r9, #0xc] - cmp r9, #0x0 - bne _020ADE80 -_020ADE94: - cmp r9, #0x0 - beq _020ADEB0 - ldr r0, [r9, #0x4] - add r1, r8, #0x10 - add r0, r1, r0 - cmp r10, r0 - bls _020ADEBC -_020ADEB0: - add sp, sp, #0x10 - mov r0, #0x0 - ldmia sp!, {r4-r10,pc} -_020ADEBC: - add r0, sp, #0x0 - mov r1, r9 - bl FUN_020AE528 - mov r0, r7 - mov r1, r9 - bl FUN_020AE500 - ldr r2, [sp, #0x4] - add r3, r10, r4 - ldr r9, [sp, #0x0] - sub r1, r2, r3 - str r3, [sp, #0x0] - cmp r1, #0x10 - strcc r2, [sp, #0x0] - mov r8, r0 - ldr r0, [sp, #0x0] - sub r0, r0, r4 - str r0, [r6, #0x4] - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x0] - sub r0, r1, r0 - cmp r0, #0x10 - blo _020ADF30 - ldr r1, _020ADF9C ; =0x00004652 - add r0, sp, #0x0 - bl FUN_020AE4A0 - mov r1, r0 - mov r0, r7 - mov r2, r8 - bl FUN_020AE4D0 -_020ADF30: - ldr r0, [r5, #0x20] - ldr r1, [sp, #0x0] - and r0, r0, #0xff - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - sub r2, r1, r9 - ands r0, r0, #0x1 - beq _020ADF90 - mov r1, r9 - mov r0, #0x0 - bl MIi_CpuClear32 - b _020ADF90 -_020ADF60: - add r0, r10, r4 - str r0, [sp, #0x8] - ldr r1, [r6, #0x4] - add r0, r6, #0x10 - add r0, r1, r0 - str r0, [sp, #0xc] - add r1, sp, #0x8 - mov r0, r7 - str r10, [r6, #0x4] - bl FUN_020AE02C -_020ADF88: ; 0x020ADF88 - cmp r0, #0x0 - streq r8, [r6, #0x4] -_020ADF90: - ldr r0, [r6, #0x4] - add sp, sp, #0x10 - ldmia sp!, {r4-r10,pc} - .balign 4 -_020ADF9C: .word 0x00004652 - - arm_func_start tempName_NNS_FndAllocFromExpHeapEx -tempName_NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r1, #0x0 - moveq r1, #0x1 - add r1, r1, #0x3 - cmp r2, #0x0 - bic r1, r1, #0x3 - blt _020ADFCC - bl FUN_020AE1D8 - add sp, sp, #0x4 - ldmia sp!, {pc} -_020ADFCC: - rsb r2, r2, #0x0 - bl FUN_020AE11C - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start thunk_FUN_020adc8c -thunk_FUN_020adc8c: ; 0x020ADFDC - ldr ip, _020ADFE4 ; =FUN_020ADC8C - bx r12 - .balign 4 -_020ADFE4: .word FUN_020ADC8C - - arm_func_start tempName_NNS_FndCreateExpHeapEx -tempName_NNS_FndCreateExpHeapEx: ; 0x020ADFE8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - add r1, r1, r0 - add r0, r0, #0x3 - bic r1, r1, #0x3 - bic r0, r0, #0x3 - cmp r0, r1 - bhi _020AE014 - sub r3, r1, r0 - cmp r3, #0x4c - bhs _020AE020 -_020AE014: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {pc} -_020AE020: - bl FUN_020AE420 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020AE02C -FUN_020AE02C: - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - mov r5, r1 - ldr r2, [r5, #0x0] - ldr r1, [r5, #0x4] - mov r6, r0 - str r2, [sp, #0x0] - str r1, [sp, #0x4] - ldr r1, [r6, #0x0] - mov r4, #0x0 - cmp r1, #0x0 - beq _020AE0A0 - ldr r0, [r5, #0x0] -_020AE060: - cmp r1, r0 - movcc r4, r1 - blo _020AE094 - ldr r0, [r5, #0x4] - cmp r1, r0 - bne _020AE0A0 - ldr r2, [r1, #0x4] - add r0, r1, #0x10 - add r2, r2, r0 - mov r0, r6 - str r2, [sp, #0x4] - bl FUN_020AE500 - b _020AE0A0 -_020AE094: - ldr r1, [r1, #0xc] - cmp r1, #0x0 - bne _020AE060 -_020AE0A0: - cmp r4, #0x0 - beq _020AE0D4 - ldr r2, [r4, #0x4] - add r1, r4, #0x10 - ldr r0, [r5, #0x0] - add r1, r2, r1 - cmp r1, r0 - bne _020AE0D4 - mov r0, r6 - mov r1, r4 - str r4, [sp, #0x0] - bl FUN_020AE500 - mov r4, r0 -_020AE0D4: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x0] - sub r0, r1, r0 - cmp r0, #0x10 - addcc sp, sp, #0x8 - movcc r0, #0x0 - ldmccia sp!, {r4-r6,pc} -_020AE0F0: ; 0x020AE0F0 - ldr r1, _020AE118 ; =0x00004652 - add r0, sp, #0x0 - bl FUN_020AE4A0 - mov r1, r0 - mov r0, r6 - mov r2, r4 - bl FUN_020AE4D0 - mov r0, #0x1 - add sp, sp, #0x8 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020AE118: .word 0x00004652 - - arm_func_start FUN_020AE11C -FUN_020AE11C: ; 0x020AE11C - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - add r0, r0, #0x24 - ldrh r4, [r0, #0x12] - mov r3, r1 - mvn lr, #0x0 - and r1, r4, #0x1 - mov r1, r1, lsl #0x10 - movs r1, r1, lsr #0x10 - moveq r5, #0x1 - mov r1, #0x0 - ldr r4, [r0, #0x4] - movne r5, #0x0 - mov r12, r1 - cmp r4, #0x0 - beq _020AE1B0 - sub r2, r2, #0x1 - mvn r2, r2 -_020AE164: - ldr r8, [r4, #0x4] - add r9, r4, #0x10 - add r6, r8, r9 - sub r6, r6, r3 - and r7, r2, r6 - subs r6, r7, r9 - bmi _020AE1A4 - cmp lr, r8 - bls _020AE1A4 - mov r1, r4 - mov lr, r8 - mov r12, r7 - cmp r5, #0x0 - bne _020AE1B0 - cmp r8, r3 - beq _020AE1B0 -_020AE1A4: - ldr r4, [r4, #0x8] - cmp r4, #0x0 - bne _020AE164 -_020AE1B0: - cmp r1, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,pc} -_020AE1C0: ; 0x020AE1C0 - mov r4, #0x1 - mov r2, r12 - str r4, [sp, #0x0] - bl FUN_020AE298 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - - arm_func_start FUN_020AE1D8 -FUN_020AE1D8: ; 0x020AE1D8 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - add r0, r0, #0x24 - ldrh r4, [r0, #0x12] - mov r3, r1 - ldr r5, [r0, #0x0] - and r1, r4, #0x1 - mov r1, r1, lsl #0x10 - movs r1, r1, lsr #0x10 - moveq r6, #0x1 - mov r1, #0x0 - movne r6, #0x0 - mov lr, r1 - cmp r5, #0x0 - mvn r4, #0x0 - beq _020AE270 - sub r12, r2, #0x1 - mvn r2, r12 -_020AE220: - add r8, r5, #0x10 - add r7, r12, r8 - and r9, r2, r7 - sub r7, r9, r8 - ldr r8, [r5, #0x4] - add r7, r3, r7 - cmp r8, r7 - blo _020AE264 - cmp r4, r8 - bls _020AE264 - mov r1, r5 - mov r4, r8 - mov lr, r9 - cmp r6, #0x0 - bne _020AE270 - cmp r8, r3 - beq _020AE270 -_020AE264: - ldr r5, [r5, #0xc] - cmp r5, #0x0 - bne _020AE220 -_020AE270: - cmp r1, #0x0 - addeq sp, sp, #0x4 - moveq r0, #0x0 - ldmeqia sp!, {r4-r9,pc} -_020AE280: ; 0x020AE280 - mov r4, #0x0 - mov r2, lr - str r4, [sp, #0x0] - bl FUN_020AE298 - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - - arm_func_start FUN_020AE298 -FUN_020AE298: ; 0x020AE298 - stmdb sp!, {r4-r8,lr} - sub sp, sp, #0x18 - mov r7, r0 - add r0, sp, #0x0 - mov r8, r1 - mov r6, r2 - mov r5, r3 - bl FUN_020AE528 - ldr r3, [sp, #0x4] - sub r4, r6, #0x10 - add r2, r5, r6 - mov r0, r7 - mov r1, r8 - str r4, [sp, #0x4] - str r3, [sp, #0xc] - str r2, [sp, #0x8] - bl FUN_020AE500 - ldr r2, [sp, #0x0] - ldr r1, [sp, #0x4] - mov r5, r0 - sub r0, r1, r2 - cmp r0, #0x10 - strcc r2, [sp, #0x4] - blo _020AE318 - ldr r1, _020AE418 ; =0x00004652 - add r0, sp, #0x0 - bl FUN_020AE4A0 - mov r1, r0 - mov r0, r7 - mov r2, r5 - bl FUN_020AE4D0 - mov r5, r0 -_020AE318: - ldr r1, [sp, #0xc] - ldr r0, [sp, #0x8] - sub r0, r1, r0 - cmp r0, #0x10 - strcc r1, [sp, #0x8] - blo _020AE34C - ldr r1, _020AE418 ; =0x00004652 - add r0, sp, #0x8 - bl FUN_020AE4A0 - mov r1, r0 - mov r0, r7 - mov r2, r5 - bl FUN_020AE4D0 -_020AE34C: - ldr r0, [r7, #-0x4] - ldr r1, [sp, #0x4] - and r0, r0, #0xff - mov r0, r0, lsl #0x10 - ldr r2, [sp, #0x8] - mov r0, r0, lsr #0x10 - sub r2, r2, r1 - ands r0, r0, #0x1 - beq _020AE378 - mov r0, #0x0 - bl MIi_CpuClear32 -_020AE378: - ldr r2, [sp, #0x8] - ldr r1, _020AE41C ; =0x00005544 - add r0, sp, #0x10 - str r4, [sp, #0x10] - str r2, [sp, #0x14] - bl FUN_020AE4A0 - mov r1, r0 - ldrh r3, [r1, #0x2] - ldrh r2, [sp, #0x30] - add r0, r7, #0x8 - bic r3, r3, #0x8000 - strh r3, [r1, #0x2] - ldrh r3, [r1, #0x2] - and r2, r2, #0x1 - orr r2, r3, r2, lsl #0xf - strh r2, [r1, #0x2] - ldrh r2, [r1, #0x2] - ldr r3, [sp, #0x4] - bic r2, r2, #0x7f00 - strh r2, [r1, #0x2] - sub r2, r1, r3 - mov r2, r2, lsl #0x10 - mov r2, r2, lsr #0x10 - ldrh r3, [r1, #0x2] - and r2, r2, #0x7f - orr r2, r3, r2, lsl #0x8 - strh r2, [r1, #0x2] - ldrh r2, [r1, #0x2] - ldrh r3, [r7, #0x10] - bic r2, r2, #0xff - strh r2, [r1, #0x2] - ldrh r2, [r1, #0x2] - and r3, r3, #0xff - orr r2, r2, r3 - strh r2, [r1, #0x2] - ldr r2, [r7, #0xc] - bl FUN_020AE4D0 - mov r0, r6 - add sp, sp, #0x18 - ldmia sp!, {r4-r8,pc} - .balign 4 -_020AE418: .word 0x00004652 -_020AE41C: .word 0x00005544 - - arm_func_start FUN_020AE420 -FUN_020AE420: ; 0x020AE420 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0xc - mov r5, r0 - mov r3, r1 - add r4, r5, #0x24 - str r2, [sp, #0x0] - ldr r1, _020AE498 ; =0x45585048 - add r2, r4, #0x14 - bl FUN_020ADCA4 -_020AE444: ; 0x020AE444 - mov r0, #0x0 - strh r0, [r4, #0x10] - strh r0, [r4, #0x12] - ldrh r2, [r4, #0x12] - ldr r1, _020AE49C ; =0x00004652 - add r0, sp, #0x4 - bic r2, r2, #0x1 - strh r2, [r4, #0x12] - ldr r2, [r5, #0x18] - str r2, [sp, #0x4] - ldr r2, [r5, #0x1c] - str r2, [sp, #0x8] - bl FUN_020AE4A0 - str r0, [r5, #0x24] - str r0, [r4, #0x4] - mov r1, #0x0 - str r1, [r4, #0x8] - mov r0, r5 - str r1, [r4, #0xc] - add sp, sp, #0xc - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AE498: .word 0x45585048 -_020AE49C: .word 0x00004652 - - arm_func_start FUN_020AE4A0 -FUN_020AE4A0: ; 0x020AE4A0 - ldr r3, [r0, #0x0] - mov r2, #0x0 - strh r1, [r3, #0x0] - strh r2, [r3, #0x2] - ldr r1, [r0, #0x4] - add r0, r3, #0x10 - sub r0, r1, r0 - str r0, [r3, #0x4] - str r2, [r3, #0x8] - mov r0, r3 - str r2, [r3, #0xc] - bx lr - - arm_func_start FUN_020AE4D0 -FUN_020AE4D0: ; 0x020AE4D0 - str r2, [r1, #0x8] - cmp r2, #0x0 - ldrne r3, [r2, #0xc] - strne r1, [r2, #0xc] - ldreq r3, [r0, #0x0] - streq r1, [r0, #0x0] - str r3, [r1, #0xc] - cmp r3, #0x0 - strne r1, [r3, #0x8] - streq r1, [r0, #0x4] - mov r0, r1 - bx lr - - arm_func_start FUN_020AE500 -FUN_020AE500: ; 0x020AE500 - ldr r2, [r1, #0x8] - ldr r1, [r1, #0xc] - cmp r2, #0x0 - strne r1, [r2, #0xc] - streq r1, [r0, #0x0] - cmp r1, #0x0 - strne r2, [r1, #0x8] - streq r2, [r0, #0x4] - mov r0, r2 - bx lr - - arm_func_start FUN_020AE528 -FUN_020AE528: ; 0x020AE528 - ldrh r2, [r1, #0x2] - add r3, r1, #0x10 - mov r2, r2, asr #0x8 - and r2, r2, #0x7f - mov r2, r2, lsl #0x10 - sub r2, r1, r2, lsr #0x10 - str r2, [r0, #0x0] - ldr r1, [r1, #0x4] - add r1, r1, r3 - str r1, [r0, #0x4] - bx lr - - arm_func_start FUN_020AE554 -FUN_020AE554: ; 0x020AE554 - add r2, r0, #0x24 - cmp r1, #0x0 - ldr r3, [r2, #0x8] - beq _020AE584 - cmp r3, #0x0 - beq _020AE584 -_020AE56C: - ldr r0, [r3, #0x0] - cmp r0, r1 - beq _020AE584 - ldr r3, [r3, #0xc] - cmp r3, #0x0 - bne _020AE56C -_020AE584: - cmp r3, #0x0 - moveq r0, #0x0 - bxeq lr - ldr r1, [r3, #0x4] - mov r0, #0x1 - str r1, [r2, #0x0] - ldr r1, [r3, #0x8] - str r1, [r2, #0x4] - ldr r1, [r3, #0xc] - str r1, [r2, #0x8] - bx lr - - arm_func_start FUN_020AE5B0 -FUN_020AE5B0: ; 0x020AE5B0 - stmdb sp!, {r4-r6,lr} - add r4, r0, #0x24 - ldr r5, [r0, #0x24] - mov r6, r1 - mov r0, r4 - mov r1, #0x10 - mov r2, #0x4 - bl FUN_020AE77C -_020AE5D0: ; 0x020AE5D0 - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r6,pc} -_020AE5DC: ; 0x020AE5DC - str r6, [r0, #0x0] - str r5, [r0, #0x4] - ldr r1, [r4, #0x4] - str r1, [r0, #0x8] - ldr r1, [r4, #0x8] - str r1, [r0, #0xc] - str r0, [r4, #0x8] - mov r0, #0x1 - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_020AE600 -FUN_020AE600: ; 0x020AE600 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r4, r1 - mov r5, r0 - ands r1, r4, #0x1 - beq _020AE61C - bl FUN_020AE6F8 -_020AE61C: - ands r0, r4, #0x2 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} -_020AE628: ; 0x020AE628 - mov r0, r5 - bl FUN_020AE6C8 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020AE638 -FUN_020AE638: ; 0x020AE638 - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r1, #0x0 - moveq r1, #0x1 - add r1, r1, #0x3 - add r0, r0, #0x24 - cmp r2, #0x0 - bic r1, r1, #0x3 - blt _020AE668 - bl FUN_020AE77C - add sp, sp, #0x4 - ldmia sp!, {pc} -_020AE668: - rsb r2, r2, #0x0 - bl FUN_020AE710 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start thunk_FUN_020adc8c_2 -thunk_FUN_020adc8c_2: ; 0x020AE678 - ldr ip, _020AE680 ; =FUN_020ADC8C - bx r12 - .balign 4 -_020AE680: .word FUN_020ADC8C - - arm_func_start FUN_020AE684 -FUN_020AE684: ; 0x020AE684 - stmdb sp!, {lr} - sub sp, sp, #0x4 - add r1, r1, r0 - add r0, r0, #0x3 - bic r1, r1, #0x3 - bic r0, r0, #0x3 - cmp r0, r1 - bhi _020AE6B0 - sub r3, r1, r0 - cmp r3, #0x30 - bhs _020AE6BC -_020AE6B0: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {pc} -_020AE6BC: - bl FUN_020AE7E0 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020AE6C8 -FUN_020AE6C8: ; 0x020AE6C8 - add r2, r0, #0x24 - ldr r3, [r2, #0x8] - cmp r3, #0x0 - beq _020AE6EC -_020AE6D8: - ldr r1, [r0, #0x1c] - str r1, [r3, #0x8] - ldr r3, [r3, #0xc] - cmp r3, #0x0 - bne _020AE6D8 -_020AE6EC: - ldr r0, [r0, #0x1c] - str r0, [r2, #0x4] - bx lr - - arm_func_start FUN_020AE6F8 -FUN_020AE6F8: ; 0x020AE6F8 - ldr r1, [r0, #0x18] - add r2, r0, #0x24 - str r1, [r0, #0x24] - mov r0, #0x0 - str r0, [r2, #0x8] - bx lr - - arm_func_start FUN_020AE710 -FUN_020AE710: ; 0x020AE710 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r3, [r5, #0x4] - sub r0, r2, #0x1 - mvn r2, r0 - sub r1, r3, r1 - ldr r0, [r5, #0x0] - and r4, r2, r1 - cmp r4, r0 - addcc sp, sp, #0x4 - movcc r0, #0x0 - ldmccia sp!, {r4-r5,pc} -_020AE744: ; 0x020AE744 - ldr r0, [r5, #-0x4] - sub r2, r3, r4 - and r0, r0, #0xff - mov r0, r0, lsl #0x10 - mov r0, r0, lsr #0x10 - ands r0, r0, #0x1 - beq _020AE76C - mov r1, r4 - mov r0, #0x0 - bl MIi_CpuClear32 -_020AE76C: - mov r0, r4 - str r4, [r5, #0x4] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - - arm_func_start FUN_020AE77C -FUN_020AE77C: - stmdb sp!, {r4-r6,lr} - mov r6, r0 - ldr r0, [r6, #0x0] - sub r2, r2, #0x1 - mvn r3, r2 - add r2, r2, r0 - and r5, r3, r2 - ldr r2, [r6, #0x4] - add r4, r1, r5 - cmp r4, r2 - movhi r0, #0x0 - ldmhiia sp!, {r4-r6,pc} -_020AE7AC: ; 0x020AE7AC - ldr r1, [r6, #-0x4] - sub r2, r4, r0 - and r1, r1, #0xff - mov r1, r1, lsl #0x10 - mov r1, r1, lsr #0x10 - ands r1, r1, #0x1 - beq _020AE7D4 - mov r1, r0 - mov r0, #0x0 - bl MIi_CpuClear32 -_020AE7D4: - mov r0, r5 - str r4, [r6, #0x0] - ldmia sp!, {r4-r6,pc} - - arm_func_start FUN_020AE7E0 -FUN_020AE7E0: ; 0x020AE7E0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r3, r1 - add r4, r5, #0x24 - str r2, [sp, #0x0] - ldr r1, _020AE828 ; =0x46524D48 - add r2, r4, #0xc - bl FUN_020ADCA4 - ldr r0, [r5, #0x18] - mov r1, #0x0 - str r0, [r5, #0x24] - ldr r2, [r5, #0x1c] - mov r0, r5 - str r2, [r4, #0x4] - str r1, [r4, #0x8] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AE828: .word 0x46524D48 - - arm_func_start FUN_020AE82C -FUN_020AE82C: ; 0x020AE82C - ldr ip, _020AE848 ; =0x020FF7CC - mov r3, #0x0 - str r12, [r0, #0x0] - str r1, [r0, #0x4] - str r2, [r0, #0x8] - str r3, [r0, #0xc] - bx lr - .balign 4 -_020AE848: .word 0x020FF7CC - - arm_func_start FUN_020AE84C -FUN_020AE84C: ; 0x020AE84C - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, [r0, #0x0] - ldr r2, [r2, #0x4] - blx r2 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020AE868 -FUN_020AE868: ; 0x020AE868 - stmdb sp!, {lr} - sub sp, sp, #0x4 - ldr r2, [r0, #0x0] - ldr r2, [r2, #0x0] - blx r2 - add sp, sp, #0x4 - ldmia sp!, {pc} - - arm_func_start FUN_020AE884 -FUN_020AE884: ; 0x020AE884 - ldr ip, _020AE890 ; =FUN_020ADDF0 - ldr r0, [r0, #0x4] - bx r12 - .balign 4 -_020AE890: .word FUN_020ADDF0 - - arm_func_start FUN_020AE894 -FUN_020AE894: ; 0x020AE894 - ldr ip, _020AE8A8 ; =tempName_NNS_FndAllocFromExpHeapEx - mov r2, r0 - ldr r0, [r2, #0x4] - ldr r2, [r2, #0x8] - bx r12 - .balign 4 -_020AE8A8: .word tempName_NNS_FndAllocFromExpHeapEx - - arm_func_start FUN_020AE8AC -FUN_020AE8AC: ; 0x020AE8AC - mvn r0, #0x0 - bx lr - - arm_func_start FUN_020AE8B4 -FUN_020AE8B4: ; 0x020AE8B4 - mov r0, #0x0 - bx lr - - arm_func_start FUN_020AE8BC -FUN_020AE8BC: ; 0x020AE8BC - mvn r0, #0x0 - bx lr - - arm_func_start FUN_020AE8C4 -FUN_020AE8C4: ; 0x020AE8C4 - mov r0, #0x0 - bx lr - - arm_func_start FUN_020AE8CC -FUN_020AE8CC: ; 0x020AE8CC - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov lr, #0x0 - ldr r3, _020AE914 ; =0x021064E4 - mov r12, lr - mov r2, #0x1 -_020AE8E4: - ldr r1, [r0, r12, lsl #0x2] - add lr, lr, #0x1 - str r1, [r3, #0x0] - ldr r1, [r0, r2, lsl #0x2] - cmp lr, #0x5 - str r1, [r3, #0x4] - add r12, r12, #0x2 - add r3, r3, #0x18 - add r2, r2, #0x2 - blt _020AE8E4 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AE914: .word 0x021064E4 - - arm_func_start FUN_020AE918 -FUN_020AE918: ; 0x020AE918 - stmdb sp!, {lr} - sub sp, sp, #0x4 - mov lr, #0x0 - ldr ip, _020AE960 ; =0x021064E4 - mov r3, lr - mov r2, #0x1 -_020AE930: - ldr r1, [r12, #0x0] - add lr, lr, #0x1 - str r1, [r0, r3, lsl #0x2] - ldr r1, [r12, #0x4] - cmp lr, #0x5 - str r1, [r0, r2, lsl #0x2] - add r12, r12, #0x18 - add r3, r3, #0x2 - add r2, r2, #0x2 - blt _020AE930 - add sp, sp, #0x4 - ldmia sp!, {pc} - .balign 4 -_020AE960: .word 0x021064E4 - - arm_func_start FUN_020AE964 -FUN_020AE964: ; 0x020AE964 - mov r0, #0x0 - bx lr - - arm_func_start FUN_020AE96C -FUN_020AE96C: ; 0x020AE96C - stmdb sp!, {r4-r10,lr} - cmp r0, #0x0 - moveq r7, #0x10 - addne r0, r0, #0xf - bicne r7, r0, #0xf - ldr r0, _020AEADC ; =0x0007FFF0 - cmp r7, r0 - movcs r0, #0x0 - ldmcsia sp!, {r4-r10,pc} -_020AE990: ; 0x020AE990 - cmp r1, #0x0 - beq _020AEA5C - mov lr, r7, lsr #0x1 - mov r6, #0x0 - ldr r2, _020AEAE0 ; =0x02106514 - ldr r3, _020AEAE4 ; =0x021064FC - ldr ip, _020AEAE8 ; =0x021064C8 - mov r0, r6 -_020AE9B0: - ldr r5, [r12, r6, lsl #0x2] - ldr r4, [r5, #0x8] - cmp r4, #0x0 - beq _020AEA48 - ldr r9, [r5, #0x4] - ldr r4, [r5, #0x0] - sub r4, r9, r4 - cmp r4, r7 - blo _020AEA48 - ldrh r4, [r5, #0x10] - cmp r4, #0x0 - beq _020AE9EC - cmp r4, #0x3 - beq _020AE9F4 - b _020AE9FC -_020AE9EC: - mov r4, r3 - b _020AEA00 -_020AE9F4: - mov r4, r2 - b _020AEA00 -_020AE9FC: - mov r4, r0 -_020AEA00: - ldr r9, [r4, #0x8] - cmp r9, #0x0 - beq _020AEA48 - ldr r10, [r4, #0x4] - ldr r9, [r4, #0x0] - sub r9, r10, r9 - cmp r9, lr - blo _020AEA48 - ldr r3, [r5, #0x0] - mov r0, #0x1 - add r2, r3, r7 - str r2, [r5, #0x0] - ldr r2, [r4, #0x0] - add r2, r2, lr - str r2, [r4, #0x0] - ldr r2, [r5, #0x14] - add r8, r3, r2 - b _020AEAB8 -_020AEA48: - add r6, r6, #0x1 - cmp r6, #0x2 - blt _020AE9B0 - mov r0, #0x0 - b _020AEAB8 -_020AEA5C: - ldr r3, _020AEAEC ; =0x021064D0 - mov r5, #0x0 -_020AEA64: - ldr r4, [r3, r5, lsl #0x2] - ldr r0, [r4, #0x8] - cmp r0, #0x0 - beq _020AEAA8 - ldr r2, [r4, #0x4] - ldr r0, [r4, #0x0] - sub r0, r2, r0 - cmp r0, r7 - blo _020AEAA8 - ldr r2, [r4, #0x4] - mov r0, #0x1 - sub r2, r2, r7 - str r2, [r4, #0x4] - ldr r3, [r4, #0x4] - ldr r2, [r4, #0x14] - add r8, r3, r2 - b _020AEAB8 -_020AEAA8: - add r5, r5, #0x1 - cmp r5, #0x5 - blt _020AEA64 - mov r0, #0x0 -_020AEAB8: - cmp r0, #0x0 - moveq r0, #0x0 - ldmeqia sp!, {r4-r10,pc} -_020AEAC4: ; 0x020AEAC4 - ldr r0, _020AEAF0 ; =0x0000FFFF - mov r2, r7, lsr #0x4 - and r0, r0, r8, lsr #0x3 - orr r0, r0, r2, lsl #0x10 - orr r0, r0, r1, lsl #0x1f - ldmia sp!, {r4-r10,pc} - .balign 4 -_020AEADC: .word 0x0007FFF0 -_020AEAE0: .word 0x02106514 -_020AEAE4: .word 0x021064FC -_020AEAE8: .word 0x021064C8 -_020AEAEC: .word 0x021064D0 -_020AEAF0: .word 0x0000FFFF - - arm_func_start FUN_020AEAF4 -FUN_020AEAF4: - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr r0, _020AEB68 ; =0x021CCD48 - mov r6, #0x0 - ldrh r7, [r0, #0x0] - ldr r5, _020AEB6C ; =0x021064E4 - mov lr, r6 - cmp r7, #0x1 - addhi r7, r7, #0x1 - mov r1, r6 - mov r3, r6 - mov r4, #0x1 - mov r0, #0x20000 - mov r2, #0x10000 -_020AEB2C: - cmp r6, r7 - strlt r4, [r5, #0x8] - strge lr, [r5, #0x8] - ldr r12, [r5, #0xc] - add r6, r6, #0x1 - cmp r12, #0x0 - strne r3, [r5, #0x0] - strne r2, [r5, #0x4] - streq r1, [r5, #0x0] - streq r0, [r5, #0x4] - cmp r6, #0x5 - add r5, r5, #0x18 - blt _020AEB2C - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020AEB68: .word 0x021CCD48 -_020AEB6C: .word 0x021064E4 - - arm_func_start FUN_020AEB70 -FUN_020AEB70: ; 0x020AEB70 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - mov r4, r1 - cmp r5, #0x2 - bhi _020AEBA8 - mov r12, #0x1 - mov r0, #0x4 - mov r1, #0x3 - mov r2, #0x2 - mov r3, #0x0 - str r12, [sp, #0x0] - bl FUN_020AEC10 - b _020AEBC4 -_020AEBA8: - mov r12, #0x1 - mov r0, #0x4 - mov r1, #0x3 - mov r2, #0x0 - mov r3, #0x2 - str r12, [sp, #0x0] - bl FUN_020AEC10 -_020AEBC4: - ldr r0, _020AEBFC ; =0x021CCD48 - strh r5, [r0, #0x0] - bl FUN_020AEAF4 -_020AEBD0: ; 0x020AEBD0 - cmp r4, #0x0 - addeq sp, sp, #0x4 - ldmeqia sp!, {r4-r5,pc} -_020AEBDC: ; 0x020AEBDC - ldr r3, _020AEC00 ; =FUN_020AE96C - ldr r1, _020AEC04 ; =0x021064B8 - ldr r2, _020AEC08 ; =FUN_020AE964 - ldr r0, _020AEC0C ; =0x021064BC - str r3, [r1, #0x0] - str r2, [r0, #0x0] - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AEBFC: .word 0x021CCD48 -_020AEC00: .word FUN_020AE96C -_020AEC04: .word 0x021064B8 -_020AEC08: .word FUN_020AE964 -_020AEC0C: .word 0x021064BC - - arm_func_start FUN_020AEC10 -FUN_020AEC10: ; 0x020AEC10 - stmdb sp!, {r4-r7,lr} - sub sp, sp, #0x4 - ldr lr, [sp, #0x18] - ldr r6, _020AEC58 ; =0x021064E4 - mov r12, #0x18 - mla r7, r0, r12, r6 - ldr r0, _020AEC5C ; =0x021064D0 - mla r5, r1, r12, r6 - mla r4, r2, r12, r6 - mla r2, r3, r12, r6 - mla r1, lr, r12, r6 - str r7, [r0, #0x0] - str r5, [r0, #0x4] - str r4, [r0, #0x8] - str r2, [r0, #0xc] - str r1, [r0, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r7,pc} - .balign 4 -_020AEC58: .word 0x021064E4 -_020AEC5C: .word 0x021064D0 - - arm_func_start FUN_020AEC60 -FUN_020AEC60: - ldr r0, _020AEC78 ; =0x021CCD4C - mov r2, #0x0 - ldr r1, [r0, #0x8] - str r2, [r0, #0x0] - str r1, [r0, #0x4] - bx lr - .balign 4 -_020AEC78: .word 0x021CCD4C - - arm_func_start FUN_020AEC7C -FUN_020AEC7C: ; 0x020AEC7C - ldr r2, [r0, #0x0] - ldr r1, _020AEC94 ; =0x021CCD4C - str r2, [r1, #0x0] - ldr r0, [r0, #0x4] - str r0, [r1, #0x4] - bx lr - .balign 4 -_020AEC94: .word 0x021CCD4C - - arm_func_start FUN_020AEC98 -FUN_020AEC98: ; 0x020AEC98 - ldr r1, _020AECB0 ; =0x021CCD4C - ldr r2, [r1, #0x0] - str r2, [r0, #0x0] - ldr r1, [r1, #0x4] - str r1, [r0, #0x4] - bx lr - .balign 4 -_020AECB0: .word 0x021CCD4C - - arm_func_start FUN_020AECB4 -FUN_020AECB4: ; 0x020AECB4 - mov r0, #0x0 - bx lr - - arm_func_start FUN_020AECBC -FUN_020AECBC: ; 0x020AECBC - stmdb sp!, {r4,lr} - cmp r0, #0x0 - moveq r0, #0x8 - addne r0, r0, #0x7 - ldr ip, _020AEDE8 ; =0x0007FFF8 - bicne r0, r0, #0x7 - cmp r0, r12 - mov r3, #0x0 - movcs r0, #0x0 - ldmcsia sp!, {r4,pc} -_020AECE4: ; 0x020AECE4 - cmp r2, #0x1 - bne _020AED64 - ldr r2, _020AEDEC ; =0x021CCD4C - cmp r1, #0x0 - ldr r12, [r2, #0x0] - andne r2, r12, #0x7 - rsbne r2, r2, #0x8 - andne r4, r2, #0x7 - andeq r2, r12, #0xf - rsbeq r2, r2, #0x10 - andeq r4, r2, #0xf - ldr r2, _020AEDEC ; =0x021CCD4C - add lr, r0, r4 - ldr r2, [r2, #0x4] - sub r2, r2, r12 - cmp r2, lr - blo _020AED5C - cmp r1, #0x0 - add r1, r12, lr - beq _020AED40 - cmp r1, #0x10000 - movhi r12, #0x0 - bhi _020AEDCC -_020AED40: - ldr r1, _020AEDEC ; =0x021CCD4C - add r3, r12, r4 - ldr r2, [r1, #0x0] - mov r12, #0x1 - add r2, r2, lr - str r2, [r1, #0x0] - b _020AEDCC -_020AED5C: - mov r12, #0x0 - b _020AEDCC -_020AED64: - ldr r2, _020AEDEC ; =0x021CCD4C - ldr r12, [r2, #0x4] - cmp r12, r0 - blo _020AEDC8 - sub r2, r12, r0 - cmp r1, #0x0 - andne r4, r2, #0x7 - andeq r4, r2, #0xf - ldr r2, _020AEDEC ; =0x021CCD4C - add lr, r0, r4 - ldr r2, [r2, #0x0] - sub r2, r12, r2 - cmp r2, lr - blo _020AEDC8 - cmp r1, #0x0 - beq _020AEDB0 - cmp r12, #0x10000 - movhi r12, #0x0 - bhi _020AEDCC -_020AEDB0: - ldr r1, _020AEDEC ; =0x021CCD4C - mov r12, #0x1 - ldr r2, [r1, #0x4] - sub r3, r2, lr - str r3, [r1, #0x4] - b _020AEDCC -_020AEDC8: - mov r12, #0x0 -_020AEDCC: - cmp r12, #0x0 - ldrne r1, _020AEDF0 ; =0x0000FFFF - movne r2, r0, lsr #0x3 - andne r0, r1, r3, lsr #0x3 - orrne r0, r0, r2, lsl #0x10 - moveq r0, #0x0 - ldmia sp!, {r4,pc} - .balign 4 -_020AEDE8: .word 0x0007FFF8 -_020AEDEC: .word 0x021CCD4C -_020AEDF0: .word 0x0000FFFF - - arm_func_start FUN_020AEDF4 -FUN_020AEDF4: ; 0x020AEDF4 - stmdb sp!, {r4,lr} - ldr r2, _020AEE2C ; =0x021CCD4C - mov r4, r1 - str r0, [r2, #0x8] - bl FUN_020AEC60 -_020AEE08: ; 0x020AEE08 - cmp r4, #0x0 - ldmeqia sp!, {r4,pc} -_020AEE10: ; 0x020AEE10 - ldr r3, _020AEE30 ; =FUN_020AECBC - ldr r1, _020AEE34 ; =0x021064C0 - ldr r2, _020AEE38 ; =FUN_020AECB4 - ldr r0, _020AEE3C ; =0x021064C4 - str r3, [r1, #0x0] - str r2, [r0, #0x0] - ldmia sp!, {r4,pc} - .balign 4 -_020AEE2C: .word 0x021CCD4C -_020AEE30: .word FUN_020AECBC -_020AEE34: .word 0x021064C0 -_020AEE38: .word FUN_020AECB4 -_020AEE3C: .word 0x021064C4 - - arm_func_start FUN_020AEE40 -FUN_020AEE40: ; 0x020AEE40 - stmdb sp!, {r4-r9,lr} - sub sp, sp, #0x4 - ldr r5, _020AEEB4 ; =0x021CCD58 - mov r9, r0 - mov r0, r5 - mov r8, r1 - mov r7, r2 - mov r6, r3 - bl FUN_020AF2F4 -_020AEE64: ; 0x020AEE64 - cmp r0, #0x0 - addne sp, sp, #0x4 - movne r0, #0x0 - ldmneia sp!, {r4-r9,pc} -_020AEE74: ; 0x020AEE74 - mov r0, r5 - bl FUN_020AEF78 - mov r4, r0 - str r9, [r4, #0x0] - str r7, [r4, #0x4] - str r8, [r4, #0x8] - mov r0, r5 - str r6, [r4, #0xc] - bl FUN_020AEF98 - ldr r2, [r5, #0x10] - ldr r1, [r4, #0xc] - mov r0, #0x1 - add r1, r2, r1 - str r1, [r5, #0x10] - add sp, sp, #0x4 - ldmia sp!, {r4-r9,pc} - .balign 4 -_020AEEB4: .word 0x021CCD58 - - arm_func_start FUN_020AEEB8 -FUN_020AEEB8: ; 0x020AEEB8 - stmdb sp!, {r4-r6,lr} - ldr r6, _020AEF18 ; =0x021CCD58 - mov r0, r6 - bl FUN_020AEF88 - mov r5, r0 - mov r0, r6 - bl FUN_020AEF3C -_020AEED4: ; 0x020AEED4 - cmp r0, #0x0 - ldmeqia sp!, {r4-r6,pc} -_020AEEDC: ; 0x020AEEDC - add r4, r6, #0x10 -_020AEEE0: - mov r0, r5 - bl FUN_020AEFF0 - ldr r2, [r4, #0x0] - ldr r1, [r5, #0xc] - mov r0, r6 - sub r1, r2, r1 - str r1, [r4, #0x0] - bl FUN_020AEF88 - mov r5, r0 - mov r0, r6 - bl FUN_020AEF3C -_020AEF0C: ; 0x020AEF0C - cmp r0, #0x0 - bne _020AEEE0 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020AEF18: .word 0x021CCD58 - - arm_func_start FUN_020AEF1C -FUN_020AEF1C: ; 0x020AEF1C - ldr r2, _020AEF34 ; =0x021CCD58 - ldr ip, _020AEF38 ; =FUN_020AEFD4 - str r0, [r2, #0x0] - mov r0, r2 - str r1, [r2, #0x4] - bx r12 - .balign 4 -_020AEF34: .word 0x021CCD58 -_020AEF38: .word FUN_020AEFD4 - - arm_func_start FUN_020AEF3C -FUN_020AEF3C: - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020AF2E0 -_020AEF48: ; 0x020AEF48 - cmp r0, #0x0 - movne r0, #0x0 - ldmneia sp!, {r4,pc} -_020AEF54: ; 0x020AEF54 - ldrh r1, [r4, #0x8] - mov r0, r4 - bl FUN_020AF30C - strh r0, [r4, #0x8] - ldrh r1, [r4, #0xc] - mov r0, #0x1 - sub r1, r1, #0x1 - strh r1, [r4, #0xc] - ldmia sp!, {r4,pc} - - arm_func_start FUN_020AEF78 -FUN_020AEF78: ; 0x020AEF78 - ldrh r1, [r0, #0xa] - ldr r0, [r0, #0x0] - add r0, r0, r1, lsl #0x4 - bx lr - - arm_func_start FUN_020AEF88 -FUN_020AEF88: ; 0x020AEF88 - ldrh r1, [r0, #0x8] - ldr r0, [r0, #0x0] - add r0, r0, r1, lsl #0x4 - bx lr - - arm_func_start FUN_020AEF98 -FUN_020AEF98: ; 0x020AEF98 - stmdb sp!, {r4,lr} - mov r4, r0 - bl FUN_020AF2F4 -_020AEFA4: ; 0x020AEFA4 - cmp r0, #0x0 - movne r0, #0x0 - ldmneia sp!, {r4,pc} -_020AEFB0: ; 0x020AEFB0 - ldrh r1, [r4, #0xa] - mov r0, r4 - bl FUN_020AF30C - strh r0, [r4, #0xa] - ldrh r1, [r4, #0xc] - mov r0, #0x1 - add r1, r1, #0x1 - strh r1, [r4, #0xc] - ldmia sp!, {r4,pc} - - arm_func_start FUN_020AEFD4 -FUN_020AEFD4: ; 0x020AEFD4 - mov r2, #0x0 - strh r2, [r0, #0xa] - ldrh r1, [r0, #0xa] - strh r1, [r0, #0x8] - strh r2, [r0, #0xc] - str r2, [r0, #0x10] - bx lr - - arm_func_start FUN_020AEFF0 -FUN_020AEFF0: ; 0x020AEFF0 - stmdb sp!, {r4-r5,lr} - sub sp, sp, #0x4 - mov r5, r0 - ldr r3, [r5, #0x0] - ldr r2, _020AF02C ; =0x020FF7D4 - ldr r0, [r5, #0x4] - ldr r1, [r5, #0xc] - ldr r4, [r2, r3, lsl #0x2] - bl DC_FlushRange - ldr r0, [r5, #0x4] - ldr r1, [r5, #0x8] - ldr r2, [r5, #0xc] - blx r4 - add sp, sp, #0x4 - ldmia sp!, {r4-r5,pc} - .balign 4 -_020AF02C: .word 0x020FF7D4 diff --git a/arm9/asm/unk_020910EC.s b/arm9/asm/unk_020910EC.s new file mode 100644 index 00000000..e5d80405 --- /dev/null +++ b/arm9/asm/unk_020910EC.s @@ -0,0 +1,35502 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + arm_func_start FUN_020910EC +FUN_020910EC: ; 0x020910EC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x14 + mov r12, r0 + mov r4, r1 + mov r5, r2 + mov r2, r4 + add r0, sp, #0x0 + mov r1, r12 + mov r4, r3 + bl MATH_CalcSHA1 +_02091114: ; 0x02091114 + add r0, sp, #0x0 + mov r1, r5 + mov r2, r4 + bl FUN_02091130 + add sp, sp, #0x14 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_02091130 +FUN_02091130: ; 0x02091130 + stmdb sp!, {r4,lr} + sub sp, sp, #0x120 + mov r3, #0x0 + str r3, [sp, #0x10] + str r3, [sp, #0x18] + str r2, [sp, #0x0] + mov r3, #0x80 + mov r4, r0 + mov r2, r1 + ldr ip, _0209122C ; =0x00010001 + str r3, [sp, #0x4] + add r0, sp, #0x1c + mov r1, #0x100 + str r12, [sp, #0x8] + bl FUN_0209156C + mov r1, r0 + add r0, sp, #0x1c + add r2, sp, #0xc + add r3, sp, #0x10 + bl FUN_020913D4 +_02091180: ; 0x02091180 + cmp r0, #0x0 + addeq sp, sp, #0x120 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + add r1, sp, #0x14 + add r0, sp, #0x18 + str r1, [sp, #0x0] + str r0, [sp, #0x4] + mov r2, #0x0 + ldr r0, [sp, #0xc] + ldr r1, [sp, #0x10] + mov r3, r2 + bl FUN_02091230 +_020911B8: ; 0x020911B8 + cmp r0, #0x0 + addeq sp, sp, #0x120 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r0, [sp, #0x18] + cmp r0, #0x14 + addne sp, sp, #0x120 + movne r0, #0x0 + ldmneia sp!, {r4,lr} + bxne lr + ldr r2, [sp, #0x14] + mov r3, #0x0 +_020911EC: + ldrb r1, [r2, #0x0] + ldrb r0, [r4, #0x0] + cmp r1, r0 + addne sp, sp, #0x120 + movne r0, #0x0 + ldmneia sp!, {r4,lr} + bxne lr + add r3, r3, #0x1 + cmp r3, #0x14 + add r4, r4, #0x1 + add r2, r2, #0x1 + blt _020911EC + mov r0, #0x1 + add sp, sp, #0x120 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_0209122C: .word 0x00010001 + + arm_func_start FUN_02091230 +FUN_02091230: + stmdb sp!, {r0-r3} + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r2 + mov r4, r3 + add r0, sp, #0x10 + add r1, sp, #0x14 + mov r2, #0x30 + mov r3, #0x0 + bl FUN_02091498 +_02091258: ; 0x02091258 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + addeq sp, sp, #0x10 + bxeq lr + add r0, sp, #0x10 + add r1, sp, #0x14 + mov r2, #0x30 + mov r3, #0x0 + bl FUN_02091498 +_02091284: ; 0x02091284 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + addeq sp, sp, #0x10 + bxeq lr + add r0, sp, #0x10 + add r1, sp, #0x14 + add r3, sp, #0x0 + mov r2, #0x6 + bl FUN_02091498 +_020912B0: ; 0x020912B0 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + addeq sp, sp, #0x10 + bxeq lr + cmp r5, #0x0 + ldrne r0, [sp, #0x10] + strne r0, [r5, #0x0] + cmp r4, #0x0 + ldrne r0, [sp, #0x0] + strne r0, [r4, #0x0] + ldr r2, [sp, #0x0] + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + add r0, r0, r2 + str r0, [sp, #0x10] + cmp r1, r2 + addcc sp, sp, #0x4 + movcc r0, #0x0 + ldmccia sp!, {r4-r5,lr} + addcc sp, sp, #0x10 + bxcc lr + sub r12, r1, r2 + add r0, sp, #0x10 + add r1, sp, #0x14 + add r3, sp, #0x0 + mov r2, #0x5 + str r12, [sp, #0x14] + bl FUN_02091498 +_02091328: ; 0x02091328 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + addeq sp, sp, #0x10 + bxeq lr + ldr r2, [sp, #0x0] + ldr r0, [sp, #0x10] + ldr r1, [sp, #0x14] + add r0, r0, r2 + str r0, [sp, #0x10] + cmp r1, r2 + addcc sp, sp, #0x4 + movcc r0, #0x0 + ldmccia sp!, {r4-r5,lr} + addcc sp, sp, #0x10 + bxcc lr + sub r12, r1, r2 + add r0, sp, #0x10 + add r1, sp, #0x14 + add r3, sp, #0x0 + mov r2, #0x4 + str r12, [sp, #0x14] + bl FUN_02091498 +_02091388: ; 0x02091388 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + addeq sp, sp, #0x10 + bxeq lr + ldr r1, [sp, #0x20] + cmp r1, #0x0 + ldrne r0, [sp, #0x10] + strne r0, [r1, #0x0] + ldr r1, [sp, #0x24] + cmp r1, #0x0 + ldrne r0, [sp, #0x0] + strne r0, [r1, #0x0] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + add sp, sp, #0x10 + bx lr + + arm_func_start FUN_020913D4 +FUN_020913D4: + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0xa + addcc sp, sp, #0x4 + movcc r0, #0x0 + ldmccia sp!, {lr} + bxcc lr + ldrb r12, [r0, #0x0] + add lr, r0, r1 + cmp r12, #0x1 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {lr} + bxne lr + add r12, r0, #0x1 + mov r1, #0x0 +_02091414: + ldrb r0, [r12], #0x1 + cmp r0, #0xff + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {lr} + bxne lr + add r1, r1, #0x1 + cmp r1, #0x8 + blt _02091414 + cmp r12, lr + beq _02091458 +_02091440: + ldrb r0, [r12, #0x0] + cmp r0, #0xff + bne _02091458 + add r12, r12, #0x1 + cmp r12, lr + bne _02091440 +_02091458: + cmp r12, lr + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {lr} + bxeq lr + ldrb r0, [r12, #0x0] + cmp r0, #0x0 + movne r0, #0x0 + addeq r0, r12, #0x1 + subeq r1, lr, r0 + streq r1, [r3, #0x0] + streq r0, [r2, #0x0] + moveq r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_02091498 +FUN_02091498: + stmdb sp!, {r4-r6,lr} + ldr r5, [r0, #0x0] + mov r6, #0x0 + ldrb r4, [r5, #0x0] + add r5, r5, #0x1 + mov r12, r6 + cmp r4, r2 + ldr r2, [r1, #0x0] + movne r0, r6 + ldmneia sp!, {r4-r6,lr} + bxne lr + cmp r2, #0x1 + movcc r0, r6 + ldmccia sp!, {r4-r6,lr} + bxcc lr + ldrb lr, [r5, #0x0] + sub r4, r2, #0x1 + ands r2, lr, #0x80 + beq _02091534 + and r2, lr, #0x7f + and lr, r2, #0xff + add r2, lr, #0x1 + cmp r4, r2 + movcc r0, r6 + ldmccia sp!, {r4-r6,lr} + bxcc lr + cmp r3, #0x0 + sub r6, r4, lr + beq _0209152C + ldrb r2, [r5, #0x1] + add r5, r5, #0x1 + and r4, r2, #0x7f +_02091518: + sub r2, lr, #0x1 + add r12, r4, r12, lsl #0x7 + ands lr, r2, #0xff + bne _02091518 + b _02091550 +_0209152C: + add r5, r5, lr + b _02091550 +_02091534: + add r5, r5, #0x1 + cmp r4, #0x1 + mov r12, lr + movcc r0, r6 + ldmccia sp!, {r4-r6,lr} + bxcc lr + sub r6, r4, #0x1 +_02091550: + str r5, [r0, #0x0] + str r6, [r1, #0x0] + cmp r3, #0x0 + strne r12, [r3, #0x0] + mov r0, #0x1 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_0209156C +FUN_0209156C: ; 0x0209156C + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x58 + movs r6, r0 + mov r5, r1 + mov r8, r2 + mov r7, r3 + beq _0209159C + cmp r8, #0x0 + beq _0209159C + ldr r0, [sp, #0x70] + cmp r0, #0x0 + bne _020915AC +_0209159C: + add sp, sp, #0x58 + mvn r0, #0x2 + ldmia sp!, {r4-r8,lr} + bx lr +_020915AC: + bl FUN_02094FAC + mov r4, r0 + add r0, sp, #0x4 + bl FUN_0209502C + add r0, sp, #0x18 + bl FUN_0209502C + add r0, sp, #0x2c + bl FUN_0209502C + add r0, sp, #0x40 + bl FUN_0209502C +_020915D4: ; 0x020915D4 + cmp r4, #0x0 + mvneq r5, #0x1 + beq _02091688 + add r2, sp, #0x4 + mov r0, r8 + mov r1, r7 + bl FUN_02094C68 +_020915F0: ; 0x020915F0 + cmp r0, #0x0 + mvneq r5, #0x1 + beq _02091688 + ldr r1, [sp, #0x78] + add r0, sp, #0x2c + bl FUN_02094D7C +_02091608: ; 0x02091608 + cmp r0, #0x0 + mvneq r5, #0x1 + beq _02091688 + ldr r0, [sp, #0x70] + ldr r1, [sp, #0x74] + add r2, sp, #0x40 + bl FUN_02094C68 +_02091624: ; 0x02091624 + cmp r0, #0x0 + mvneq r5, #0x1 + beq _02091688 + add r0, sp, #0x18 + add r1, sp, #0x4 + add r2, sp, #0x2c + add r3, sp, #0x40 + str r4, [sp, #0x0] + bl FUN_020931B8 +_02091648: ; 0x02091648 + cmp r0, #0x0 + mvneq r5, #0x1 + beq _02091688 + add r0, sp, #0x18 + bl FUN_02095188 + add r1, r0, #0x7 + mov r0, r1, asr #0x2 + add r0, r1, r0, lsr #0x1d + mov r0, r0, asr #0x3 + cmp r0, r5 + mvngt r5, #0x0 + bgt _02091688 + add r0, sp, #0x18 + mov r1, r6 + bl FUN_02094BEC + mov r5, r0 +_02091688: + add r0, sp, #0x4 + bl FUN_0209510C + add r0, sp, #0x18 + bl FUN_0209510C + add r0, sp, #0x2c + bl FUN_0209510C + add r0, sp, #0x40 + bl FUN_0209510C +_020916A8: ; 0x020916A8 + cmp r4, #0x0 + beq _020916B8 + mov r0, r4 + bl FUN_02094F3C +_020916B8: + mov r0, r5 + add sp, sp, #0x58 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_020916C8 +FUN_020916C8: ; 0x020916C8 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x7c + mov r4, #0x0 + mov r5, r3 + mov r3, r4 + str r3, [sp, #0x34] + ldr r3, [r5, #0x0] + str r0, [sp, #0x4] + mov r0, r4 + ldr r3, [r3, #0x0] + str r0, [sp, #0x1c] + str r0, [sp, #0x20] + ands r0, r3, #0x1 + ldr r0, [sp, #0xa0] + str r4, [sp, #0x8] + str r0, [sp, #0xa0] + mov r7, r1 + mov r6, r2 + addeq sp, sp, #0x7c + moveq r0, r4 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldr r1, [r7, #0x4] + ldr r0, [r0, #0x0] + cmp r1, #0x0 + str r0, [sp, #0xc] + beq _0209174C + cmp r1, #0x1 + bne _02091768 + ldr r0, [r7, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02091768 +_0209174C: + ldr r0, [sp, #0x4] + mov r1, #0x0 + bl FUN_02094D7C + add sp, sp, #0x7c + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_02091768: + ldr r1, [r6, #0x4] + cmp r1, #0x0 + beq _0209178C + cmp r1, #0x1 + bne _020917A8 + ldr r0, [r6, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020917A8 +_0209178C: + ldr r0, [sp, #0x4] + mov r1, #0x1 + bl FUN_02094D7C + add sp, sp, #0x7c + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020917A8: + cmp r1, #0x1 + bne _020917DC + ldr r0, [r6, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x1 + bne _020917DC + ldr r0, [sp, #0x4] + mov r1, r7 + bl FUN_02094E24 + add sp, sp, #0x7c + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020917DC: + ldr r0, [sp, #0xa4] + str r0, [sp, #0x18] + cmp r0, #0x0 + bne _02091810 + bl FUN_02092860 + str r0, [sp, #0x18] + cmp r0, #0x0 + beq _02091E6C + ldr r2, [sp, #0xa0] + mov r1, r5 + bl FUN_02092894 +_02091808: ; 0x02091808 + cmp r0, #0x0 + beq _02091E6C +_02091810: + ldr r3, [sp, #0xa0] + add r1, sp, #0x34 + mov r4, r3 + ldr r4, [r4, #0x10c] + mov r0, r6 + mov r2, #0x0 + str r4, [sp, #0x1c] + bl FUN_02092C28 +_02091830: ; 0x02091830 + cmp r0, #0x0 + beq _02091E6C + ldr r0, [sp, #0xa0] + ldr r0, [r0, #0x0] + add r1, r0, #0x1 + ldr r0, [sp, #0xa0] + str r1, [r0, #0x0] + ldr r0, [sp, #0x34] + ldrb r1, [r0, #0x2] + ldrb r0, [r0, #0x3] + str r0, [sp, #0x10] + add r0, r1, #0x3f + bl _s32_div_f + ldr r1, [sp, #0x34] + mov r4, r0 + add r0, r1, #0x4 + str r0, [sp, #0x34] + ldr r0, [sp, #0x18] + ldr r3, [r7, #0x4] + ldr r10, [r0, #0x24] + cmp r3, r10 + bne _020918A8 + ldr r1, [r7, #0x0] + sub r2, r10, #0x1 + ldr r0, [r5, #0x0] + ldr r1, [r1, r2, lsl #0x2] + ldr r0, [r0, r2, lsl #0x2] + cmp r1, r0 + strcc r7, [sp, #0x14] + blo _02091960 +_020918A8: + cmp r3, r10 + bge _0209191C + ldr r0, [sp, #0xa0] + ldr r3, [r0, #0x0] + add r1, r0, #0x4 + add r2, r3, #0x1 + str r2, [r0, #0x0] + mov r0, #0x14 + mla r0, r3, r0, r1 + ldr r2, [r7, #0x4] + mov r1, r0 + str r2, [r1, #0x4] + mov r1, r10 + str r0, [sp, #0x14] + bl FUN_0209508C + ldr r0, [r7, #0x4] + mov r2, #0x0 + cmp r0, #0x0 + ble _02091960 +_020918F4: + ldr r1, [r7, #0x0] + ldr r0, [sp, #0x14] + ldr r1, [r1, r2, lsl #0x2] + ldr r0, [r0, #0x0] + str r1, [r0, r2, lsl #0x2] + ldr r0, [r7, #0x4] + add r2, r2, #0x1 + cmp r2, r0 + blt _020918F4 + b _02091960 +_0209191C: + ldr r0, [sp, #0xa0] + mov r2, r5 + ldr r3, [r0, #0x0] + mov r1, r7 + add r5, r3, #0x1 + str r5, [r0, #0x0] + add r5, r0, #0x4 + mov r0, #0x14 + mla r0, r3, r0, r5 + ldr r3, [sp, #0xa0] + str r0, [sp, #0x14] + bl FUN_02093214 +_0209194C: ; 0x0209194C + cmp r0, #0x0 + beq _02091E6C + ldr r0, [sp, #0x14] + mov r1, r10 + bl FUN_0209508C +_02091960: + ldr r0, [sp, #0xa0] + ldr r3, [r0, #0x0] + ldr r0, [r6, #0x4] + add r1, r3, #0x1 + mul r2, r0, r4 + ldr r0, [sp, #0xa0] + mov r4, r2, lsl #0x1 + str r1, [r0, #0x0] + ldr r1, [r0, #0x0] + add r4, r4, #0x7 + add r2, r1, #0x1 + str r2, [r0, #0x0] + ldr r2, [sp, #0x10] + ldr r0, [r0, #0x0] + mul r5, r2, r10 + mov r2, r4, asr #0x1 + add r2, r4, r2, lsr #0x1e + add r5, r5, r2, asr #0x2 + ldr r2, [sp, #0xa0] + mov r6, #0x14 + add r2, r2, #0x4 + mla r8, r1, r6, r2 + mla r4, r3, r6, r2 + ldr r1, [sp, #0xa0] + add r3, r0, #0x1 + mla r7, r0, r6, r2 + str r3, [r1, #0x0] + mov r0, r1 + ldr r0, [r0, #0x0] + mla r6, r0, r6, r2 + add r1, r0, #0x1 + ldr r0, [sp, #0xa0] + str r1, [r0, #0x0] + ldr r0, [sp, #0x4] + ldr r0, [r0, #0x8] + cmp r10, r0 + ldrle r0, [sp, #0x4] + ble _02091A04 + ldr r0, [sp, #0x4] + mov r1, r10 + bl FUN_02094EBC +_02091A04: + cmp r0, #0x0 + beq _02091E6C + ldr r0, [r8, #0x8] + mov r1, r10, lsl #0x2 + cmp r1, r0 + movle r0, r8 + ble _02091A28 + mov r0, r8 + bl FUN_02094EBC +_02091A28: + cmp r0, #0x0 + beq _02091E6C + ldr r1, [r7, #0x8] + mov r0, r10, lsl #0x1 + str r0, [sp, #0x24] + cmp r0, r1 + movle r0, r7 + ble _02091A54 + ldr r1, [sp, #0x24] + mov r0, r7 + bl FUN_02094EBC +_02091A54: + cmp r0, #0x0 + beq _02091E6C + ldr r0, [r4, #0x8] + cmp r5, r0 + movle r0, r4 + ble _02091A78 + mov r1, r5 + mov r0, r4 + bl FUN_02094EBC +_02091A78: + cmp r0, #0x0 + beq _02091E6C + ldr r1, [r6, #0x8] + ldr r0, [sp, #0x24] + cmp r0, r1 + movle r0, r6 + ble _02091AA0 + ldr r1, [sp, #0x24] + mov r0, r6 + bl FUN_02094EBC +_02091AA0: + cmp r0, #0x0 + beq _02091E6C + ldr r0, [sp, #0x18] + ldr r11, [r8, #0x0] + ldr r8, [r7, #0x0] + ldr r6, [r6, #0x0] + ldr r1, [r4, #0x0] + ldr r7, [r0, #0x48] + ldr r5, [r0, #0x20] + ldr r3, [sp, #0x18] + str r1, [sp, #0x38] + str r10, [sp, #0x0] + ldr r1, [sp, #0x14] + ldr r3, [r3, #0xc] + ldr r1, [r1, #0x0] + mov r0, r6 + mov r2, r10 + bl FUN_020937E8 + str r7, [sp, #0x0] + ldr r0, [sp, #0x38] + mov r1, r6 + mov r2, r5 + mov r3, r10 + bl FUN_02092E30 + ldr r0, [sp, #0x10] + cmp r0, #0x1 + ble _02091BA8 + ldr r1, [sp, #0x38] + mov r0, r6 + mov r2, r10 + mov r3, r11 + bl FUN_02092F70 + mov r0, r11 + mov r1, r6 + mov r2, r5 + mov r3, r10 + str r7, [sp, #0x0] + bl FUN_02092E30 + ldr r0, [sp, #0x10] + mov r4, #0x1 + cmp r0, #0x1 + ble _02091BA8 + mov r0, r10, lsl #0x2 + str r0, [sp, #0x28] + add r9, sp, #0x38 +_02091B54: + sub r3, r4, #0x1 + ldr r2, [r9, r3, lsl #0x2] + ldr r1, [sp, #0x28] + mov r0, r6 + add r1, r2, r1 + str r1, [r9, r4, lsl #0x2] + str r10, [sp, #0x0] + ldr r1, [r9, r3, lsl #0x2] + mov r2, r10 + mov r3, r11 + bl FUN_020937E8 + str r7, [sp, #0x0] + ldr r0, [r9, r4, lsl #0x2] + mov r1, r6 + mov r2, r5 + mov r3, r10 + bl FUN_02092E30 + ldr r0, [sp, #0x10] + add r4, r4, #0x1 + cmp r4, r0 + blt _02091B54 +_02091BA8: + ldr r3, [sp, #0x34] + add r0, r3, #0x1 + str r0, [sp, #0x34] + add r2, r0, #0x1 + ldrb r1, [r3, #0x0] + str r2, [sp, #0x34] + ldrb r9, [r3, #0x1] + cmp r9, #0xff + bne _02091C28 + cmp r1, #0x0 + bne _02091C28 + add r0, r2, #0x1 + str r0, [sp, #0x34] + ldrb r1, [r2, #0x0] + b _02091BF8 +_02091BE4: + add r9, r9, #0x100 + ldr r1, [sp, #0x34] + add r1, r1, #0x2 + str r1, [sp, #0x34] + ldrb r1, [r0, #0x1] +_02091BF8: + ldr r0, [sp, #0x34] + ldrb r2, [r0, #0x0] + cmp r2, #0xff + bne _02091C10 + cmp r1, #0x0 + beq _02091BE4 +_02091C10: + ldr r2, [sp, #0x34] + add r2, r2, #0x1 + str r2, [sp, #0x34] + ldrb r0, [r0, #0x0] + add r0, r0, #0x1 + add r9, r9, r0 +_02091C28: + mov r2, r1, asr #0x1 + add r0, sp, #0x38 + ldr r0, [r0, r2, lsl #0x2] + mov r1, r8 + mov r2, r10, lsl #0x2 + bl MI_CpuCopy8 +_02091C40: ; 0x02091C40 + cmp r9, #0x0 + beq _02091E00 + mov r0, #0xff + str r0, [sp, #0x2c] + mov r0, #0x0 + str r0, [sp, #0x30] +_02091C58: + ldr r0, [sp, #0x1c] + cmp r0, #0x0 + beq _02091C8C + mov r3, r0 + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x20] + ldr r3, [r3, #0x0] + blx r3 + cmp r0, #0x0 + ldr r0, [sp, #0x20] + add r0, r0, #0x1 + str r0, [sp, #0x20] + bne _02091E6C +_02091C8C: + ldr r0, [sp, #0xa0] + ldr r0, [r0, #0x108] + ands r0, r0, #0x4000 + bne _02091E6C + cmp r9, #0x0 + ldr r4, [sp, #0x30] + ble _02091CE0 +_02091CA8: + mov r0, r6 + mov r1, r8 + mov r2, r10 + mov r3, r11 + bl FUN_02092F70 + str r7, [sp, #0x0] + mov r0, r8 + mov r1, r6 + mov r2, r5 + mov r3, r10 + bl FUN_02092E30 + add r4, r4, #0x1 + cmp r4, r9 + blt _02091CA8 +_02091CE0: + ldr r2, [sp, #0x34] + add r0, r2, #0x1 + str r0, [sp, #0x34] + add r1, r0, #0x1 + ldrb r0, [r2, #0x0] + str r1, [sp, #0x34] + ldrb r9, [r2, #0x1] + cmp r9, #0xff + bne _02091D60 + cmp r0, #0x0 + bne _02091D60 + add r0, r1, #0x1 + str r0, [sp, #0x34] + ldrb r0, [r1, #0x0] + b _02091D30 +_02091D1C: + add r9, r9, #0x100 + ldr r0, [sp, #0x34] + add r0, r0, #0x2 + str r0, [sp, #0x34] + ldrb r0, [r1, #0x1] +_02091D30: + ldr r1, [sp, #0x34] + ldrb r2, [r1, #0x0] + cmp r2, #0xff + bne _02091D48 + cmp r0, #0x0 + beq _02091D1C +_02091D48: + ldr r2, [sp, #0x34] + add r2, r2, #0x1 + str r2, [sp, #0x34] + ldrb r1, [r1, #0x0] + add r1, r1, #0x1 + add r9, r9, r1 +_02091D60: + cmp r0, #0x0 + bne _02091D70 + cmp r9, #0x0 + beq _02091E00 +_02091D70: + cmp r9, #0x0 + bne _02091D80 + cmp r0, #0x1 + beq _02091DBC +_02091D80: + mov r1, r0, asr #0x1 + str r10, [sp, #0x0] + add r0, sp, #0x38 + ldr r3, [r0, r1, lsl #0x2] + mov r0, r6 + mov r1, r8 + mov r2, r10 + bl FUN_020937E8 + mov r0, r8 + mov r1, r6 + mov r2, r5 + mov r3, r10 + str r7, [sp, #0x0] + bl FUN_02092E30 + b _02091DF8 +_02091DBC: + ldr r0, [sp, #0x14] + str r10, [sp, #0x0] + ldr r3, [r0, #0x0] + mov r0, r6 + mov r1, r8 + mov r2, r10 + bl FUN_020937E8 + ldr r0, [sp, #0x4] + str r7, [sp, #0x0] + ldr r0, [r0, #0x0] + mov r1, r6 + mov r2, r5 + mov r3, r10 + bl FUN_02092E30 + b _02091E44 +_02091DF8: + cmp r9, #0x0 + bne _02091C58 +_02091E00: + ldr r0, [sp, #0x24] + mov r2, r10 + cmp r10, r0 + bge _02091E28 + mov r1, #0x0 +_02091E14: + ldr r0, [sp, #0x24] + str r1, [r8, r2, lsl #0x2] + add r2, r2, #0x1 + cmp r2, r0 + blt _02091E14 +_02091E28: + ldr r0, [sp, #0x4] + str r7, [sp, #0x0] + ldr r0, [r0, #0x0] + mov r1, r8 + mov r2, r5 + mov r3, r10 + bl FUN_02092E30 +_02091E44: + ldr r0, [sp, #0xa0] + ldr r0, [r0, #0x108] + ands r0, r0, #0x4000 + bne _02091E6C + ldr r0, [sp, #0x4] + mov r1, r0 + str r10, [r1, #0x4] + bl FUN_02095040 + mov r0, #0x1 + str r0, [sp, #0x8] +_02091E6C: + ldr r0, [sp, #0x1c] + cmp r0, #0x0 + beq _02091E94 + ldr r3, [r0, #0x0] + mov r1, #0xff + mvn r2, #0x0 + blx r3 + cmp r0, #0x0 + movne r0, #0x0 + strne r0, [sp, #0x8] +_02091E94: + ldr r0, [sp, #0xa4] + cmp r0, #0x0 + bne _02091EB0 + ldr r0, [sp, #0x18] + cmp r0, #0x0 + beq _02091EB0 + bl FUN_020927E4 +_02091EB0: + ldr r2, [sp, #0xc] + ldr r1, [sp, #0xa0] + ldr r0, [sp, #0x8] + str r2, [r1, #0x0] + add sp, sp, #0x7c + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_02091ECC +FUN_02091ECC: ; 0x02091ECC + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x18c + mov r10, r0 + mov r0, #0x0 + str r0, [sp, #0x8] + mov r5, r1 + ldr r1, [sp, #0x8] + mov r0, r2 + str r2, [sp, #0x4] + mov r4, r3 + str r1, [sp, #0xc] + ldr r9, [sp, #0x1b0] + bl FUN_02095188 + ldr r1, [r5, #0x4] + mov r8, r0 + cmp r1, #0x0 + beq _02091F28 + cmp r1, #0x1 + bne _02091F44 + ldr r0, [r5, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02091F44 +_02091F28: + mov r0, r10 + mov r1, #0x0 + bl FUN_02094D7C + add sp, sp, #0x18c + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_02091F44: + ldr r0, [sp, #0x4] + ldr r1, [r0, #0x4] + cmp r1, #0x0 + beq _02091F6C + cmp r1, #0x1 + bne _02091F88 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02091F88 +_02091F6C: + mov r0, r10 + mov r1, #0x1 + bl FUN_02094D7C + add sp, sp, #0x18c + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_02091F88: + cmp r1, #0x1 + bne _02091FC0 + ldr r0, [sp, #0x4] + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x1 + bne _02091FC0 + mov r0, r10 + mov r1, r5 + bl FUN_02094E24 + add sp, sp, #0x18c + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_02091FC0: + add r0, sp, #0x18 + bl FUN_020927BC + add r0, sp, #0x18 + mov r1, r4 + mov r2, r9 + bl FUN_02092744 +_02091FD8: ; 0x02091FD8 + cmp r0, #0x0 + ble _0209220C + add r0, sp, #0x4c + bl FUN_0209502C + ldr r2, [r9, #0x0] + add r1, r9, #0x4 + mov r0, #0x14 + mla r6, r2, r0, r1 + add r1, r2, #0x1 + str r1, [r9, #0x0] + mov r2, r4 + mov r4, #0x1 + add r0, sp, #0x4c + mov r1, r5 + mov r3, r9 + str r4, [sp, #0xc] + bl FUN_02093214 +_0209201C: ; 0x0209201C + cmp r0, #0x0 + beq _0209220C + add r1, sp, #0x4c + add r3, sp, #0x18 + mov r0, r6 + mov r2, r1 + str r9, [sp, #0x0] + bl FUN_02092698 +_0209203C: ; 0x0209203C + cmp r0, #0x0 + beq _0209220C + cmp r8, #0x11 + movle r11, r4 + ble _02092068 + cmp r8, #0x100 + movge r11, #0x5 + bge _02092068 + cmp r8, #0x80 + movge r11, #0x4 + movlt r11, #0x3 +_02092068: + sub r0, r11, #0x1 + mov r4, #0x1 + mov r7, r4, lsl r0 + cmp r7, #0x1 + ble _020920C4 + add r5, sp, #0x60 +_02092080: + mov r0, r5 + bl FUN_0209502C + sub r3, r4, #0x1 + mov r2, #0x14 + add r1, sp, #0x4c + mla r1, r3, r2, r1 + mov r0, r5 + mov r2, r6 + add r3, sp, #0x18 + str r9, [sp, #0x0] + bl FUN_02092698 +_020920AC: ; 0x020920AC + cmp r0, #0x0 + beq _0209220C + add r4, r4, #0x1 + cmp r4, r7 + add r5, r5, #0x14 + blt _02092080 +_020920C4: + mov r5, #0x1 + mov r0, r10 + mov r1, r5 + str r4, [sp, #0xc] + sub r8, r8, #0x1 + bl FUN_02094D7C +_020920DC: ; 0x020920DC + cmp r0, #0x0 + beq _0209220C + mov r0, r5 + str r0, [sp, #0x10] + mov r0, #0x0 + str r0, [sp, #0x14] +_020920F4: + ldr r0, [sp, #0x4] + mov r1, r8 + bl FUN_02094A8C +_02092100: ; 0x02092100 + cmp r0, #0x0 + bne _02092140 + cmp r5, #0x0 + bne _02092130 + mov r0, r10 + mov r1, r10 + mov r2, r10 + add r3, sp, #0x18 + str r9, [sp, #0x0] + bl FUN_02092698 +_02092128: ; 0x02092128 + cmp r0, #0x0 + beq _0209220C +_02092130: + cmp r8, #0x0 + beq _02092204 + sub r8, r8, #0x1 + b _020920F4 +_02092140: + ldr r6, [sp, #0x10] + ldr r7, [sp, #0x14] + cmp r11, #0x1 + mov r4, r6 + ble _02092184 +_02092154: + subs r1, r8, r4 + bmi _02092184 + ldr r0, [sp, #0x4] + bl FUN_02094A8C +_02092164: ; 0x02092164 + cmp r0, #0x0 + subne r0, r4, r7 + movne r0, r6, lsl r0 + movne r7, r4 + add r4, r4, #0x1 + orrne r6, r0, #0x1 + cmp r4, r11 + blt _02092154 +_02092184: + cmp r5, #0x0 + add r5, r7, #0x1 + bne _020921C8 + cmp r5, #0x0 + ldr r4, [sp, #0x14] + ble _020921C8 +_0209219C: + mov r0, r10 + mov r1, r10 + mov r2, r10 + add r3, sp, #0x18 + str r9, [sp, #0x0] + bl FUN_02092698 +_020921B4: ; 0x020921B4 + cmp r0, #0x0 + beq _0209220C + add r4, r4, #0x1 + cmp r4, r5 + blt _0209219C +_020921C8: + mov r3, r6, asr #0x1 + mov r1, #0x14 + add r0, sp, #0x4c + mla r2, r3, r1, r0 + mov r0, r10 + mov r1, r10 + add r3, sp, #0x18 + str r9, [sp, #0x0] + bl FUN_02092698 +_020921EC: ; 0x020921EC + cmp r0, #0x0 + beq _0209220C + add r0, r7, #0x1 + ldr r5, [sp, #0x14] + subs r8, r8, r0 + bpl _020920F4 +_02092204: + mov r0, #0x1 + str r0, [sp, #0x8] +_0209220C: + ldr r0, [sp, #0xc] + ldr r1, [r9, #0x0] + cmp r0, #0x0 + sub r0, r1, #0x1 + str r0, [r9, #0x0] + mov r4, #0x0 + ble _02092248 + add r5, sp, #0x4c +_0209222C: + mov r0, r5 + bl FUN_02095164 + ldr r0, [sp, #0xc] + add r4, r4, #0x1 + cmp r4, r0 + add r5, r5, #0x14 + blt _0209222C +_02092248: + add r0, sp, #0x18 + bl FUN_02092788 + ldr r0, [sp, #0x8] + add sp, sp, #0x18c + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_02092260 +FUN_02092260: ; 0x02092260 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + movs r8, r2 + mov r10, r0 + mov r9, r1 + mov r11, #0x0 + mov r5, #0x2 + addeq sp, sp, #0x4 + mvneq r0, #0x0 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + mov r0, r8 + bl FUN_020951BC + cmp r0, #0x20 + beq _020922B4 + mov r1, #0x1 + cmp r10, r1, lsl r0 + addhi sp, sp, #0x4 + movhi r0, r11 + ldmhiia sp!, {r4-r11,lr} + bxhi lr +_020922B4: + cmp r10, r8 + rsb r2, r0, #0x20 + subcs r10, r10, r8 + cmp r2, #0x0 + movne r1, r10, lsl r2 + rsbne r0, r2, #0x20 + orrne r10, r1, r9, lsr r0 + movne r8, r8, lsl r2 + ldr r4, _0209239C ; =0x0000FFFF + movne r9, r9, lsl r2 + and r7, r4, r8, lsr #0x10 + and r6, r8, r4 +_020922E4: + mov r0, r10, lsr #0x10 + cmp r0, r7 + moveq r0, r4 + beq _02092300 + mov r0, r10 + mov r1, r7 + bl _u32_div_f +_02092300: + mul r12, r0, r7 + mul r3, r0, r6 + and r2, r4, r9, lsr #0x10 +_0209230C: + mov lr, #0x10000 + sub r1, r10, r12 + rsb lr, lr, #0x0 + ands lr, r1, lr + bne _02092338 + add r1, r2, r1, lsl #0x10 + cmp r3, r1 + subhi r12, r12, r7 + subhi r3, r3, r6 + subhi r0, r0, #0x1 + bhi _0209230C +_02092338: + mul r2, r0, r6 + and r1, r2, r4 + mul r3, r0, r7 + mov r1, r1, lsl #0x10 + cmp r9, r1 + add r2, r3, r2, lsr #0x10 + addcc r2, r2, #0x1 + cmp r10, r2 + addcc r10, r10, r8 + sub r9, r9, r1 + subcc r0, r0, #0x1 + sub r1, r10, r2 + subs r5, r5, #0x1 + beq _0209238C + and r2, r0, r4 + mov r1, r1, lsl #0x10 + and r0, r9, r4 + orr r10, r1, r9, lsr #0x10 + mov r11, r2, lsl #0x10 + mov r9, r0, lsl #0x10 + b _020922E4 +_0209238C: + orr r0, r11, r0 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_0209239C: .word 0x0000FFFF + + arm_func_start FUN_020923A0 +FUN_020923A0: ; 0x020923A0 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x18 + mov r8, r0 + add r0, sp, #0x4 + mov r7, r1 + mov r6, r2 + mov r5, r3 + mvn r4, #0x0 + bl FUN_0209502C + add r0, sp, #0x4 + mov r1, #0x0 + bl FUN_02094D7C + add r0, sp, #0x4 + mov r1, r6 + bl FUN_02094AFC +_020923DC: ; 0x020923DC + cmp r0, #0x0 + beq _02092404 + add r2, sp, #0x4 + mov r0, r8 + mov r3, r7 + mov r1, #0x0 + str r5, [sp, #0x0] + bl FUN_02093248 +_020923FC: ; 0x020923FC + cmp r0, #0x0 + movne r4, r6 +_02092404: + add r0, sp, #0x4 + bl FUN_0209510C + mov r0, r4 + add sp, sp, #0x18 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_0209241C +FUN_0209241C: ; 0x0209241C + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + ldr r6, [sp, #0x30] + mov r9, r1 + ldr r11, [r6, #0x0] + movs r10, r0 + add r0, r11, #0x1 + str r0, [r6, #0x0] + ldr r7, [r6, #0x0] + add r4, r6, #0x4 + mov r0, #0x14 + mla r5, r11, r0, r4 + add r12, r7, #0x1 + mov r1, #0x0 + str r5, [sp, #0x4] + mla r5, r7, r0, r4 + str r12, [r6, #0x0] + str r1, [sp, #0x0] + ldreq r1, [r6, #0x0] + mov r8, r2 + mlaeq r10, r1, r0, r4 + addeq r0, r1, #0x1 + streq r0, [r6, #0x0] + mov r7, r3 + cmp r9, #0x0 + bne _0209249C + ldr r2, [r6, #0x0] + add r1, r6, #0x4 + mov r0, #0x14 + mla r9, r2, r0, r1 + add r0, r2, #0x1 + str r0, [r6, #0x0] +_0209249C: + mov r0, r8 + mov r1, r7 + bl FUN_02094B98 +_020924A8: ; 0x020924A8 + cmp r0, #0x0 + bge _020924DC + mov r0, r10 + mov r1, #0x0 + bl FUN_02094D7C + mov r0, r9 + mov r1, r8 + bl FUN_02094E24 + add sp, sp, #0xc + str r11, [r6, #0x0] + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020924DC: + mov r0, r8 + bl FUN_02095188 + ldr r1, [r7, #0x28] + mov r2, r0 + mov r0, r1, lsl #0x1 + cmp r0, r2 + movgt r2, r0 + suble r0, r2, r0 + movgt r4, #0x0 + addle r0, r0, r0, lsr #0x1f + movle r4, r0, asr #0x1 + ldr r1, [r7, #0x2c] + add r0, r2, r2, lsr #0x1f + mov r0, r0, asr #0x1 + cmp r2, r1 + str r0, [sp, #0x8] + beq _02092534 + mov r1, r7 + mov r3, r6 + add r0, r7, #0x14 + bl FUN_020923A0 + str r0, [r7, #0x2c] +_02092534: + ldr r2, [sp, #0x8] + ldr r0, [sp, #0x4] + mov r1, r8 + sub r2, r2, r4 + bl FUN_02094134 +_02092548: ; 0x02092548 + cmp r0, #0x0 + beq _02092684 + ldr r1, [sp, #0x4] + mov r0, r5 + mov r3, r6 + add r2, r7, #0x14 + bl FUN_0209390C +_02092564: ; 0x02092564 + cmp r0, #0x0 + beq _02092684 + ldr r2, [sp, #0x8] + mov r0, r10 + mov r1, r5 + add r2, r2, r4 + bl FUN_02094134 +_02092580: ; 0x02092580 + cmp r0, #0x0 + beq _02092684 + mov r4, #0x0 + mov r0, r5 + mov r1, r7 + mov r2, r10 + mov r3, r6 + str r4, [r10, #0xc] + bl FUN_0209390C +_020925A4: ; 0x020925A4 + cmp r0, #0x0 + beq _02092684 + mov r0, r9 + mov r1, r8 + mov r2, r5 + bl FUN_02093B50 +_020925BC: ; 0x020925BC + cmp r0, #0x0 + beq _02092684 + mov r5, r4 + mov r0, r9 + mov r1, r7 + str r5, [r9, #0xc] + bl FUN_02094B98 +_020925D8: ; 0x020925D8 + cmp r0, #0x0 + blt _02092630 + mov r4, #0x1 +_020925E4: + cmp r5, #0x2 + add r5, r5, #0x1 + bgt _02092684 + mov r0, r9 + mov r1, r9 + mov r2, r7 + bl FUN_02093B50 +_02092600: ; 0x02092600 + cmp r0, #0x0 + beq _02092684 + mov r0, r10 + mov r1, r4 + bl FUN_0209400C +_02092614: ; 0x02092614 + cmp r0, #0x0 + beq _02092684 + mov r0, r9 + mov r1, r7 + bl FUN_02094B98 +_02092628: ; 0x02092628 + cmp r0, #0x0 + bge _020925E4 +_02092630: + ldr r0, [r9, #0x4] + mov r1, #0x1 + cmp r0, #0x0 + beq _0209265C + cmp r0, #0x1 + bne _02092658 + ldr r0, [r9, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0209265C +_02092658: + mov r1, #0x0 +_0209265C: + cmp r1, #0x0 + movne r0, #0x0 + ldreq r0, [r8, #0xc] + str r0, [r9, #0xc] + mov r0, #0x1 + ldr r2, [r8, #0xc] + ldr r1, [r7, #0xc] + str r0, [sp, #0x0] + eor r0, r2, r1 + str r0, [r10, #0xc] +_02092684: + ldr r0, [sp, #0x0] + str r11, [r6, #0x0] + add sp, sp, #0xc + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_02092698 +FUN_02092698: + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + ldr r4, [sp, #0x20] + mov r12, #0x14 + ldr r5, [r4, #0x0] + add lr, r4, #0x4 + mla r6, r5, r12, lr + add r12, r5, #0x1 + mov r8, r0 + mov r7, r3 + str r12, [r4, #0x0] + cmp r2, #0x0 + mov r5, #0x0 + beq _02092708 + cmp r1, r2 + bne _020926F0 + mov r0, r6 + mov r2, r4 + bl FUN_0209305C +_020926E4: ; 0x020926E4 + cmp r0, #0x0 + bne _0209270C + b _02092728 +_020926F0: + mov r0, r6 + mov r3, r4 + bl FUN_0209390C +_020926FC: ; 0x020926FC + cmp r0, #0x0 + bne _0209270C + b _02092728 +_02092708: + mov r6, r1 +_0209270C: + mov r1, r8 + mov r2, r6 + mov r3, r7 + mov r0, #0x0 + str r4, [sp, #0x0] + bl FUN_0209241C + mov r5, #0x1 +_02092728: + ldr r1, [r4, #0x0] + mov r0, r5 + sub r1, r1, #0x1 + str r1, [r4, #0x0] + add sp, sp, #0x8 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_02092744 +FUN_02092744: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + bl FUN_02094E24 + add r0, r5, #0x14 + mov r1, #0x0 + bl FUN_02094D7C + mov r0, r4 + bl FUN_02095188 + str r0, [r5, #0x28] + mov r0, #0x0 + str r0, [r5, #0x2c] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_02092788 +FUN_02092788: ; 0x02092788 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_0209510C + add r0, r4, #0x14 + bl FUN_0209510C + ldr r0, [r4, #0x30] + ands r0, r0, #0x1 + ldmeqia sp!, {r4,lr} + bxeq lr + mov r0, r4 + bl FUN_0209105C + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020927BC +FUN_020927BC: ; 0x020927BC + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_0209502C + add r0, r4, #0x14 + bl FUN_0209502C +_020927D0: ; 0x020927D0 + mov r0, #0x0 + str r0, [r4, #0x28] + str r0, [r4, #0x30] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020927E4 +FUN_020927E4: ; 0x020927E4 + stmdb sp!, {r4,lr} + mov r4, r0 + add r0, r4, #0xc + bl FUN_0209510C + add r0, r4, #0x20 + bl FUN_0209510C + add r0, r4, #0x34 + bl FUN_0209510C + ldr r0, [r4, #0x4c] + ands r0, r0, #0x1 + ldmeqia sp!, {r4,lr} + bxeq lr + mov r0, r4 + bl FUN_0209105C + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_02092824 +FUN_02092824: ; 0x02092824 + stmdb sp!, {r4,lr} + mov r4, r0 + mov r1, #0x0 + str r1, [r4, #0x0] + add r0, r4, #0xc + str r1, [r4, #0x8] + bl FUN_0209502C + add r0, r4, #0x20 + bl FUN_0209502C + add r0, r4, #0x34 + bl FUN_0209502C +_02092850: ; 0x02092850 + mov r0, #0x0 + str r0, [r4, #0x4c] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_02092860 +FUN_02092860: ; 0x02092860 + stmdb sp!, {r4,lr} + mov r0, #0x50 + bl FUN_020910A4 + movs r4, r0 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + bl FUN_02092824 + mov r1, #0x1 + mov r0, r4 + str r1, [r4, #0x4c] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_02092894 +FUN_02092894: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x14 + mov r6, r1 + ldr r3, [r6, #0x4] + mov r7, r0 + cmp r3, #0x0 + mov r5, r2 + addeq sp, sp, #0x14 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + add r0, r7, #0x20 + add r4, r7, #0xc + bl FUN_02094E24 +_020928CC: ; 0x020928CC + cmp r0, #0x0 + addeq sp, sp, #0x14 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + add r0, sp, #0x0 + bl FUN_0209502C + mov r1, #0x1 + mov r0, r6 + str r1, [r7, #0x0] + bl FUN_02095188 + add r1, r0, #0x1f + mov r0, r1, asr #0x4 + add r0, r1, r0, lsr #0x1b + mov r2, r0, asr #0x5 + mov r0, r4 + mov r1, #0x0 + str r2, [r7, #0x8] + bl FUN_02094D7C +_02092918: ; 0x02092918 + cmp r0, #0x0 + addeq sp, sp, #0x14 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + mov r0, r4 + mov r1, #0x20 + bl FUN_02094AFC +_02092938: ; 0x02092938 + cmp r0, #0x0 + beq _02092A38 + ldr r0, [r6, #0x0] + ldr r4, [r0, #0x0] + mov r0, r4 + bl FUN_02092D9C + mov r1, r0 + add r0, sp, #0x0 + bl FUN_02094D7C +_0209295C: ; 0x0209295C + cmp r0, #0x0 + beq _02092A38 + add r0, sp, #0x0 + mov r2, #0x20 + mov r1, r0 + bl FUN_02094250 +_02092974: ; 0x02092974 + cmp r0, #0x0 + beq _02092A38 + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _020929B0 + cmp r0, #0x1 + bne _020929A0 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020929B0 +_020929A0: + add r0, sp, #0x0 + mov r1, #0x1 + bl FUN_02093EAC + b _020929C4 +_020929B0: + add r0, sp, #0x0 + mvn r1, #0x0 + bl FUN_02094D7C +_020929BC: ; 0x020929BC + cmp r0, #0x0 + beq _02092A38 +_020929C4: + ldr r2, [sp, #0x4] + cmp r2, #0x1 + ldrge r0, [sp, #0x0] + ldrge r1, [r0, #0x0] + movlt r1, #0x0 + cmp r2, #0x2 + ldrge r0, [sp, #0x0] + mov r2, r4 + ldrge r0, [r0, #0x4] + movlt r0, #0x0 + bl FUN_02092260 + str r0, [r7, #0x48] + add r0, r7, #0xc + mov r1, #0x0 + bl FUN_02094D7C + ldr r1, [r7, #0x8] + add r0, r7, #0xc + mov r1, r1, lsl #0x6 + bl FUN_02094AFC +_02092A10: ; 0x02092A10 + cmp r0, #0x0 + beq _02092A38 + add r0, r7, #0xc + mov r1, r0 + mov r3, r5 + add r2, r7, #0x20 + bl FUN_02093214 + ldr r1, [r7, #0x8] + add r0, r7, #0xc + bl FUN_0209508C +_02092A38: + add r0, sp, #0x0 + bl FUN_0209510C + mov r0, #0x1 + add sp, sp, #0x14 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_02092A50 +FUN_02092A50: ; 0x02092A50 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r4, r2 + mov r7, r1 + cmp r4, #0x6 + mov r5, r0 + movgt r4, #0x6 + mov r1, #0x1 + mov r2, r1, lsl r4 + ldr r0, [r7, #0x4] + sub r2, r2, #0x1 + add r0, r4, r0, lsl #0x5 + ldr r3, _02092C24 ; =0x02106170 + str r2, [sp, #0x0] + ldr r2, [r3, r4, lsl #0x2] + mov r1, r4 + sub r0, r0, #0x1 + str r2, [sp, #0x4] + mov r6, #0x0 + bl _s32_div_f + mov r12, #0x0 + mov r0, r0, lsl #0x1 + add r0, r0, #0x2 + mov r8, r6 + add r1, r5, r0 + strb r8, [r5, r0] + strb r8, [r1, #-0x1] + ldr r0, [r7, #0x0] + ldr r2, [r7, #0x4] + ldr r7, [r0, #0x0] + add lr, r0, #0x4 + cmp r2, #0x1 + sub r9, r1, #0x2 + ldrgt r8, [lr], #0x4 + mov r10, r7 + mov r0, r12 + str r12, [sp, #0x8] + mov r1, #0xff + mov r11, r12 +_02092AEC: + ldr r3, [sp, #0x0] + and r3, r10, r3 + ldr r10, [sp, #0x4] + ldrb r10, [r10, r3] + cmp r10, #0x0 + beq _02092B4C + add r12, r12, r10 + add r6, r6, r10 + cmp r6, #0x20 + blo _02092B34 + cmp r2, #0x1 + ble _02092B4C + sub r2, r2, #0x1 + mov r7, r8 + cmp r2, #0x1 + movle r8, r11 + ldrgt r8, [lr], #0x4 + sub r6, r6, #0x20 +_02092B34: + cmp r6, #0x0 + moveq r10, r7 + movne r10, r7, lsr r6 + rsbne r3, r6, #0x20 + orrne r10, r10, r8, lsl r3 + b _02092AEC +_02092B4C: + cmp r3, #0x0 + beq _02092BD0 + strb r12, [r9, #0x0] + strb r3, [r9, #-0x1] + cmp r12, #0x100 + sub r9, r9, #0x2 + blo _02092B88 + cmp r12, #0x100 + blo _02092B88 +_02092B70: + strb r1, [r9, #0x0] + sub r12, r12, #0x100 + strb r0, [r9, #-0x1] + sub r9, r9, #0x2 + cmp r12, #0x100 + bhs _02092B70 +_02092B88: + mov r12, r4 + add r6, r6, r4 + cmp r6, #0x20 + blo _02092BB8 + cmp r2, #0x1 + ble _02092BD0 + sub r2, r2, #0x1 + mov r7, r8 + cmp r2, #0x1 + ldrle r8, [sp, #0x8] + sub r6, r6, #0x20 + ldrgt r8, [lr], #0x4 +_02092BB8: + cmp r6, #0x0 + moveq r10, r7 + movne r10, r7, lsr r6 + rsbne r3, r6, #0x20 + orrne r10, r10, r8, lsl r3 + b _02092AEC +_02092BD0: + add r9, r9, #0x1 + mov r0, #0x2 + b _02092BF4 +_02092BDC: + strb r2, [r5, #0x0] + ldrb r1, [r9, #0x1] + add r9, r9, #0x2 + add r0, r0, #0x2 + strb r1, [r5, #0x1] + add r5, r5, #0x2 +_02092BF4: + ldrb r2, [r9, #0x0] + cmp r2, #0x0 + bne _02092BDC + ldrb r1, [r9, #0x1] + cmp r1, #0x0 + bne _02092BDC + mov r1, #0x0 + strb r1, [r5, #0x0] + strb r1, [r5, #0x1] + add sp, sp, #0xc + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_02092C24: .word 0x02106170 + + arm_func_start FUN_02092C28 +FUN_02092C28: + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + ldr r5, [r3], #0x4 + mov r2, #0x14 + mla r4, r5, r2, r3 + mov r9, r0 + ldr r0, [r9, #0x4] + mov r8, r1 + cmp r0, #0x0 + mov r5, #0x0 + mov r1, r0, lsl #0x5 + addeq sp, sp, #0x4 + moveq r0, r5 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r0, #0x1 + bne _02092CC8 + cmp r0, #0x1 + bne _02092C8C + ldr r2, [r9, #0x0] + ldr r1, _02092D8C ; =0x00010001 + ldr r2, [r2, #0x0] + cmp r2, r1 + ldreq r5, _02092D90 ; =0x020FF500 + beq _02092CB8 +_02092C8C: + ldr r1, [r9, #0x0] + ldr r1, [r1, #0x0] + cmp r1, #0x11 + bne _02092CA8 + cmp r0, #0x1 + ldreq r5, _02092D94 ; =0x020FF518 + beq _02092CB8 +_02092CA8: + cmp r1, #0x3 + bne _02092CB8 + cmp r0, #0x1 + ldreq r5, _02092D98 ; =0x020FF50C +_02092CB8: + mov r7, #0x1 + mov r6, r7 + mov r1, #0x20 + b _02092CF8 +_02092CC8: + cmp r1, #0x100 + movge r7, #0x5 + movge r6, #0x10 + movge r1, #0x7 + bge _02092CF8 + cmp r1, #0x80 + movge r6, #0x8 + movge r1, r6 + movge r7, #0x4 + movlt r7, #0x3 + movlt r6, #0x4 + movlt r1, #0xb +_02092CF8: + mul r1, r0, r1 + mov r0, r1, lsl #0x1 + add r1, r0, #0x7 + mov r0, r1, asr #0x1 + add r0, r1, r0, lsr #0x1e + cmp r5, #0x0 + mov r1, r0, asr #0x2 + bne _02092D74 + ldr r0, [r4, #0x8] + cmp r1, r0 + movle r0, r4 + ble _02092D30 + mov r0, r4 + bl FUN_02094EBC +_02092D30: + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + ldr r5, [r4, #0x0] + mov r1, r9 + mov r2, r7 + add r0, r5, #0x4 + bl FUN_02092A50 + add r1, r0, #0x2 + mov r0, r1, asr #0x8 + strb r0, [r5, #0x0] + strb r1, [r5, #0x1] + strb r7, [r5, #0x2] + strb r6, [r5, #0x3] + b _02092D78 +_02092D74: + mov r1, #0x8 +_02092D78: + str r5, [r8, #0x0] + add r0, r1, #0x2 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_02092D8C: .word 0x00010001 +_02092D90: .word 0x020FF500 +_02092D94: .word 0x020FF518 +_02092D98: .word 0x020FF50C + + arm_func_start FUN_02092D9C +FUN_02092D9C: ; 0x02092D9C + stmdb sp!, {r4-r10,lr} + mov r10, r0 + mov r1, r10 + rsb r0, r10, #0x0 + bl _u32_div_f + movs r8, r1 + mov r7, r10 + mov r5, #0x0 + mov r6, #0x1 + mvn r4, #0x0 + beq _02092E04 +_02092DC8: + mov r0, r7 + mov r1, r8 + bl _u32_div_f + mov r9, r1 + mov r0, r7 + mov r1, r8 + bl _u32_div_f + mla r1, r0, r6, r5 + mov r5, r6 + mov r7, r8 + mov r6, r1 + mov r8, r9 + cmp r9, #0x0 + rsb r4, r4, #0x0 + bne _02092DC8 +_02092E04: + cmp r4, #0x0 + sublt r5, r10, r5 + cmp r7, #0x1 + movne r1, #0x0 + bne _02092E24 + mov r0, r5 + mov r1, r10 + bl _u32_div_f +_02092E24: + mov r0, r1 + ldmia sp!, {r4-r10,lr} + bx lr + + arm_func_start FUN_02092E30 +FUN_02092E30: ; 0x02092E30 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r7, r3 + mov r9, r1 + mov r6, #0x0 + mov r10, r0 + mov r8, r2 + mov r4, r6 + cmp r7, #0x0 + add r5, r9, r7, lsl #0x2 + ldr r11, [sp, #0x30] + ble _02092EC0 + mov r0, #0x1 + str r6, [sp, #0x4] + str r0, [sp, #0x0] +_02092E6C: + ldr r1, [r9, #0x0] + mov r0, r9 + mul r3, r1, r11 + mov r1, r8 + mov r2, r7 + bl FUN_020948AC + add r1, r0, r6 + ldr r0, [r5, #0x0] + cmp r1, r6 + ldrcc r6, [sp, #0x0] + add r0, r0, r1 + str r0, [r5, #0x0] + ldr r0, [r5, #0x0] + ldrcs r6, [sp, #0x4] + cmp r0, r1 + add r4, r4, #0x1 + addcc r6, r6, #0x1 + cmp r4, r7 + add r9, r9, #0x4 + add r5, r5, #0x4 + blt _02092E6C +_02092EC0: + cmp r6, #0x0 + sub r2, r7, #0x1 + bne _02092F14 + ldr r1, [r9, r2, lsl #0x2] + ldr r0, [r8, r2, lsl #0x2] + cmp r1, r0 + bne _02092F00 + cmp r2, #0x0 + ble _02092F00 +_02092EE4: + ldr r1, [r9, r2, lsl #0x2] + ldr r0, [r8, r2, lsl #0x2] + cmp r1, r0 + bne _02092F00 + sub r2, r2, #0x1 + cmp r2, #0x0 + bgt _02092EE4 +_02092F00: + ldr r1, [r9, r2, lsl #0x2] + ldr r0, [r8, r2, lsl #0x2] + cmp r1, r0 + movcs r6, #0x1 + movcc r6, #0x0 +_02092F14: + cmp r6, #0x0 + beq _02092F3C + mov r0, r10 + mov r1, r9 + mov r2, r8 + mov r3, r7 + bl FUN_02094354 + add sp, sp, #0xc + ldmia sp!, {r4-r11,lr} + bx lr +_02092F3C: + cmp r7, #0x0 + addle sp, sp, #0xc + mov r1, #0x0 + ldmleia sp!, {r4-r11,lr} + bxle lr +_02092F50: + ldr r0, [r9, r1, lsl #0x2] + str r0, [r10, r1, lsl #0x2] + add r1, r1, #0x1 + cmp r1, r7 + blt _02092F50 + add sp, sp, #0xc + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_02092F70 +FUN_02092F70: + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r11, r2 + mov r6, r11, lsl #0x1 + mov r10, r0 + mov r7, r11 + mov r9, r1 + sub r7, r7, #0x1 + sub r2, r6, #0x1 + mov r0, #0x0 + str r0, [r10, r2, lsl #0x2] + ldr r0, [r10, r2, lsl #0x2] + str r3, [sp, #0x0] + mov r5, r9 + str r0, [r10, #0x0] + cmp r7, #0x0 + add r4, r10, #0x4 + ble _02092FD8 + add r5, r5, #0x4 + ldr r3, [r9, #0x0] + mov r0, r4 + mov r1, r5 + mov r2, r7 + bl FUN_0209470C + str r0, [r4, r7, lsl #0x2] + add r4, r4, #0x8 +_02092FD8: + sub r8, r11, #0x2 + cmp r8, #0x0 + ble _02093018 +_02092FE4: + mov r0, r5 + sub r7, r7, #0x1 + add r5, r5, #0x4 + ldr r3, [r0, #0x0] + mov r0, r4 + mov r1, r5 + mov r2, r7 + bl FUN_020948AC + sub r8, r8, #0x1 + str r0, [r4, r7, lsl #0x2] + cmp r8, #0x0 + add r4, r4, #0x8 + bgt _02092FE4 +_02093018: + mov r0, r10 + mov r1, r10 + mov r2, r10 + mov r3, r6 + bl FUN_02094468 +_0209302C: ; 0x0209302C + ldr r0, [sp, #0x0] + mov r1, r9 + mov r2, r11 + bl FUN_020945B8 + ldr r2, [sp, #0x0] + mov r0, r10 + mov r1, r10 + mov r3, r6 + bl FUN_02094468 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_0209305C +FUN_0209305C: + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x64 + ldr r5, [r2, #0x0] + mov r9, r0 + mov r8, r1 + cmp r8, r9 + add r3, r2, #0x4 + mov r2, #0x14 + movne r7, r9 + addeq r0, r5, #0x1 + mla r4, r5, r2, r3 + mlaeq r7, r0, r2, r3 + ldr r5, [r8, #0x4] + cmp r5, #0x0 + movle r0, #0x0 + strle r0, [r9, #0x4] + addle sp, sp, #0x64 + movle r0, #0x1 + ldmleia sp!, {r4-r9,lr} + bxle lr + ldr r0, [r7, #0x8] + mov r6, r5, lsl #0x1 + cmp r6, r0 + movle r0, r7 + ble _020930CC + mov r0, r7 + mov r1, r6 + bl FUN_02094EBC +_020930CC: + cmp r0, #0x0 + addeq sp, sp, #0x64 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + str r6, [r7, #0x4] + mov r0, #0x0 + str r0, [r7, #0xc] + cmp r5, #0x4 + bne _0209310C + ldr r0, [r7, #0x0] + ldr r1, [r8, #0x0] + add r3, sp, #0x0 + mov r2, #0x4 + bl FUN_02092F70 + b _02093170 +_0209310C: + cmp r5, #0x8 + bne _0209312C + ldr r0, [r7, #0x0] + ldr r1, [r8, #0x0] + add r3, sp, #0x20 + mov r2, #0x8 + bl FUN_02092F70 + b _02093170 +_0209312C: + ldr r0, [r4, #0x8] + cmp r6, r0 + movle r0, r4 + ble _02093148 + mov r0, r4 + mov r1, r6 + bl FUN_02094EBC +_02093148: + cmp r0, #0x0 + addeq sp, sp, #0x64 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + ldr r0, [r7, #0x0] + ldr r1, [r8, #0x0] + ldr r3, [r4, #0x0] + mov r2, r5 + bl FUN_02092F70 +_02093170: + cmp r6, #0x0 + ble _02093194 + ldr r1, [r7, #0x0] + sub r0, r6, #0x1 + ldr r0, [r1, r0, lsl #0x2] + cmp r0, #0x0 + ldreq r0, [r7, #0x4] + subeq r0, r0, #0x1 + streq r0, [r7, #0x4] +_02093194: + cmp r7, r9 + beq _020931A8 + mov r0, r9 + mov r1, r7 + bl FUN_02094E24 +_020931A8: + mov r0, #0x1 + add sp, sp, #0x64 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start FUN_020931B8 +FUN_020931B8: + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr r12, [r3, #0x4] + cmp r12, #0x0 + ble _020931FC + ldr r12, [r3, #0x0] + ldr r12, [r12, #0x0] + ands r12, r12, #0x1 + beq _020931FC + ldr lr, [sp, #0x10] + mov r12, #0x0 + str lr, [sp, #0x0] + str r12, [sp, #0x4] + bl FUN_020916C8 + add sp, sp, #0xc + ldmia sp!, {lr} + bx lr +_020931FC: + ldr r12, [sp, #0x10] + str r12, [sp, #0x0] + bl FUN_02091ECC + add sp, sp, #0xc + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_02093214 +FUN_02093214: + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r12, r2 + str r3, [sp, #0x0] + mov r1, r0 + mov r2, lr + mov r3, r12 + mov r0, #0x0 + bl FUN_02093248 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_02093248 +FUN_02093248: + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4c + mov r6, r3 + ldr r3, [r6, #0x4] + mov r8, r0 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + cmp r3, #0x0 + ldr r4, [sp, #0x70] + beq _02093288 + cmp r3, #0x1 + bne _02093298 + ldr r0, [r6, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02093298 +_02093288: + add sp, sp, #0x4c + mov r0, #0x0 + ldmia sp!, {r4-r11,lr} + bx lr +_02093298: + ldr r0, [sp, #0x4] + mov r1, r6 + bl FUN_02094B98 +_020932A4: ; 0x020932A4 + cmp r0, #0x0 + bge _020932F8 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _020932D4 + ldr r1, [sp, #0x4] + bl FUN_02094E24 +_020932C0: ; 0x020932C0 + cmp r0, #0x0 + addeq sp, sp, #0x4c + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,lr} + bxeq lr +_020932D4: + cmp r8, #0x0 + beq _020932E8 + mov r0, r8 + mov r1, #0x0 + bl FUN_02094D7C +_020932E8: + add sp, sp, #0x4c + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020932F8: + ldr r3, [r4, #0x0] + add r0, r4, #0x4 + mov r2, #0x14 + mla r1, r3, r2, r0 + mov r3, #0x0 + str r3, [r1, #0xc] + ldr r5, [r4, #0x0] + str r1, [sp, #0x14] + add r4, r5, #0x1 + mla r1, r4, r2, r0 + add r3, r5, #0x2 + str r1, [sp, #0x18] + mla r1, r3, r2, r0 + cmp r8, #0x0 + str r1, [sp, #0x1c] + addeq r1, r5, #0x3 + mlaeq r8, r1, r2, r0 + mov r0, r6 + bl FUN_02095188 + mov r1, r0, lsr #0x1f + rsb r0, r1, r0, lsl #0x1b + add r0, r1, r0, ror #0x1b + rsb r0, r0, #0x20 + str r0, [sp, #0x8] + ldr r0, [sp, #0x1c] + ldr r2, [sp, #0x8] + mov r1, r6 + bl FUN_02094250 +_02093368: ; 0x02093368 + cmp r0, #0x0 + addeq sp, sp, #0x4c + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldr r2, [sp, #0x8] + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x4] + ldr r3, [sp, #0x1c] + mov r4, #0x0 + add r2, r2, #0x20 + str r4, [r3, #0xc] + bl FUN_02094250 +_0209339C: ; 0x0209339C + cmp r0, #0x0 + addeq sp, sp, #0x4c + moveq r0, r4 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldr r0, [sp, #0x18] + mov r1, r4 + str r1, [r0, #0xc] + ldr r0, [sp, #0x1c] + ldr r0, [r0, #0x4] + str r0, [sp, #0x28] + ldr r0, [sp, #0x18] + ldr r1, [sp, #0x28] + ldr r4, [r0, #0x4] + add r0, sp, #0x38 + sub r1, r4, r1 + str r1, [sp, #0x10] + bl FUN_0209502C + ldr r0, [sp, #0x18] + ldr r2, [r0, #0x0] + ldr r0, [sp, #0x28] + sub r1, r0, #0x1 + ldr r0, [sp, #0x10] + add r0, r2, r0, lsl #0x2 + str r0, [sp, #0x38] + ldr r0, [sp, #0x28] + str r0, [sp, #0x3c] + ldr r0, [sp, #0x18] + ldr r2, [r0, #0x8] + ldr r0, [sp, #0x28] + cmp r0, #0x1 + add r0, r2, #0x1 + str r0, [sp, #0x40] + ldr r0, [sp, #0x1c] + moveq r5, #0x0 + ldr r2, [r0, #0x0] + ldr r0, [r2, r1, lsl #0x2] + str r0, [sp, #0x24] + ldrne r0, [sp, #0x28] + subne r0, r0, #0x2 + ldrne r5, [r2, r0, lsl #0x2] + ldr r0, [sp, #0x18] + ldr r2, [r8, #0x8] + ldr r1, [r0, #0x0] + sub r0, r4, #0x1 + add r7, r1, r0, lsl #0x2 + ldr r0, [sp, #0x10] + add r1, r0, #0x1 + cmp r1, r2 + movle r0, r8 + ble _02093470 + mov r0, r8 + bl FUN_02094EBC +_02093470: + cmp r0, #0x0 + beq _020937D4 + ldr r0, [sp, #0x4] + ldr r1, [r6, #0xc] + ldr r3, [r0, #0xc] + ldr r0, [sp, #0x10] + sub r2, r0, #0x1 + eor r0, r3, r1 + str r0, [r8, #0xc] + ldr r0, [sp, #0x10] + str r0, [r8, #0x4] + ldr r0, [sp, #0x28] + ldr r3, [r8, #0x0] + add r1, r0, #0x1 + add r0, r3, r2, lsl #0x2 + str r0, [sp, #0x20] + ldr r0, [sp, #0x14] + ldr r0, [r0, #0x8] + cmp r1, r0 + ldrle r0, [sp, #0x14] + ble _020934CC + ldr r0, [sp, #0x14] + bl FUN_02094EBC +_020934CC: + cmp r0, #0x0 + beq _020937D4 + ldr r1, [sp, #0x1c] + add r0, sp, #0x38 + bl FUN_02094B98 +_020934E0: ; 0x020934E0 + cmp r0, #0x0 + blt _02093520 + add r0, sp, #0x38 + ldr r2, [sp, #0x1c] + mov r1, r0 + bl FUN_02093B50 +_020934F8: ; 0x020934F8 + cmp r0, #0x0 + beq _020937D4 + ldr r0, [sp, #0x20] + mov r2, #0x1 + str r2, [r0, #0x0] + ldr r0, [r8, #0x4] + ldr r1, [r8, #0x0] + sub r0, r0, #0x1 + str r2, [r1, r0, lsl #0x2] + b _0209352C +_02093520: + ldr r0, [r8, #0x4] + sub r0, r0, #0x1 + str r0, [r8, #0x4] +_0209352C: + ldr r0, [sp, #0x10] + sub r1, r0, #0x1 + ldr r0, [sp, #0x20] + cmp r1, #0x0 + sub r0, r0, #0x4 + str r0, [sp, #0x20] + mov r0, #0x0 + str r0, [sp, #0xc] + ble _0209377C + ldr r8, _020937E4 ; =0x0000FFFF + cmp r1, #0x0 + and r0, r5, r8 + str r0, [sp, #0x2c] + and r0, r8, r5, lsr #0x10 + str r0, [sp, #0x30] + ldr r0, [sp, #0x24] + and r4, r0, r8 + ble _0209377C + and r9, r8, r0, lsr #0x10 + mvn r0, #0x0 + str r0, [sp, #0x34] +_02093580: + ldr r1, [sp, #0x38] + ldr r0, [sp, #0x3c] + sub r1, r1, #0x4 + add r0, r0, #0x1 + str r0, [sp, #0x3c] + str r1, [sp, #0x38] + ldr r11, [r7, #0x0] + ldr r0, [sp, #0x24] + ldr r5, [r7, #-0x4] + cmp r11, r0 + ldreq r6, [sp, #0x34] + beq _020935C4 + ldr r2, [sp, #0x24] + mov r0, r11 + mov r1, r5 + bl FUN_02092260 + mov r6, r0 +_020935C4: + ldr r0, [sp, #0x2c] + and r2, r6, r8 + mul r12, r0, r2 + ldr r0, [sp, #0x30] + and lr, r8, r6, lsr #0x10 + ldr r1, [sp, #0x30] + mul r0, r2, r0 + mul r3, r1, lr + ldr r1, [sp, #0x2c] + mul r10, r9, lr + mla r1, lr, r1, r0 + cmp r1, r0 + addcc r3, r3, #0x10000 + and r0, r8, r1, lsr #0x10 + add r3, r3, r0 + and r0, r1, r8 + add r12, r12, r0, lsl #0x10 + cmp r12, r0, lsl #0x10 + mul r0, r2, r9 + mul r1, r4, r2 + mla r2, lr, r4, r0 + addcc r3, r3, #0x1 + cmp r2, r0 + addcc r10, r10, #0x10000 + and r0, r8, r2, lsr #0x10 + add r10, r10, r0 + and r0, r2, r8 + add r1, r1, r0, lsl #0x10 + cmp r1, r0, lsl #0x10 + addcc r10, r10, #0x1 + sub r1, r5, r1 + cmp r1, r5 + addhi r10, r10, #0x1 + subs r0, r11, r10 + bne _02093674 + cmp r3, r1 + blo _02093674 + cmp r3, r1 + bne _0209366C + ldr r0, [r7, #-0x8] + cmp r12, r0 + bls _02093674 +_0209366C: + sub r6, r6, #0x1 + b _020935C4 +_02093674: + ldr r0, [sp, #0x14] + ldr r1, [sp, #0x1c] + ldr r0, [r0, #0x0] + ldr r1, [r1, #0x0] + ldr r2, [sp, #0x28] + mov r3, r6 + bl FUN_0209470C + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x28] + ldr r3, [r1, #0x0] + ldr r1, [sp, #0x28] + str r0, [r3, r2, lsl #0x2] + add r1, r1, #0x1 + cmp r1, #0x0 + ble _020936D4 + ldr r0, [sp, #0x14] + ldr r2, [r0, #0x0] +_020936B8: + sub r0, r1, #0x1 + ldr r0, [r2, r0, lsl #0x2] + cmp r0, #0x0 + bne _020936D4 + sub r1, r1, #0x1 + cmp r1, #0x0 + bgt _020936B8 +_020936D4: + ldr r0, [sp, #0x14] + ldr r2, [sp, #0x14] + str r1, [r0, #0x4] + add r0, sp, #0x38 + mov r1, r0 + ldr r5, [sp, #0x3c] + bl FUN_02093A0C + ldr r0, [sp, #0x18] + ldr r1, [r0, #0x4] + ldr r0, [sp, #0x3c] + add r0, r1, r0 + sub r1, r0, r5 + ldr r0, [sp, #0x18] + str r1, [r0, #0x4] + ldr r0, [sp, #0x44] + cmp r0, #0x0 + beq _0209374C + add r0, sp, #0x38 + ldr r2, [sp, #0x1c] + mov r1, r0 + sub r6, r6, #0x1 + ldr r5, [sp, #0x3c] + bl FUN_02093DD0 + ldr r0, [sp, #0x18] + ldr r1, [r0, #0x4] + ldr r0, [sp, #0x3c] + sub r0, r0, r5 + add r1, r1, r0 + ldr r0, [sp, #0x18] + str r1, [r0, #0x4] +_0209374C: + ldr r0, [sp, #0x20] + sub r7, r7, #0x4 + str r6, [r0], #-0x4 + str r0, [sp, #0x20] + ldr r0, [sp, #0xc] + add r0, r0, #0x1 + str r0, [sp, #0xc] + ldr r0, [sp, #0x10] + sub r1, r0, #0x1 + ldr r0, [sp, #0xc] + cmp r0, r1 + blt _02093580 +_0209377C: + ldr r0, [sp, #0x18] + bl FUN_02095040 +_02093784: ; 0x02093784 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _020937C4 + ldr r2, [sp, #0x8] + ldr r3, [sp, #0x4] + ldr r1, [sp, #0x18] + add r2, r2, #0x20 + ldr r4, [r3, #0xc] + bl FUN_02094134 +_020937A8: ; 0x020937A8 + cmp r0, #0x0 + addeq sp, sp, #0x4c + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldr r0, [sp, #0x0] + str r4, [r0, #0xc] +_020937C4: + add sp, sp, #0x4c + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020937D4: + mov r0, #0x0 + add sp, sp, #0x4c + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020937E4: .word 0x0000FFFF + + arm_func_start FUN_020937E8 +FUN_020937E8: ; 0x020937E8 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + ldr r5, [sp, #0x20] + mov r7, r2 + mov r9, r0 + mov r8, r1 + mov r6, r3 + cmp r7, r5 + bge _02093824 + mov r1, r7 + mov r0, r8 + mov r7, r5 + mov r8, r6 + mov r5, r1 + mov r6, r0 +_02093824: + ldr r3, [r6, #0x0] + mov r0, r9 + mov r1, r8 + mov r2, r7 + add r4, r9, r7, lsl #0x2 + bl FUN_0209470C + str r0, [r9, r7, lsl #0x2] +_02093840: + sub r0, r5, #0x1 + cmp r0, #0x0 + addle sp, sp, #0x4 + ldmleia sp!, {r4-r9,lr} + bxle lr + ldr r3, [r6, #0x4] + mov r1, r8 + mov r2, r7 + add r0, r9, #0x4 + bl FUN_020948AC + sub r1, r5, #0x2 + cmp r1, #0x0 + addle sp, sp, #0x4 + str r0, [r4, #0x4] + ldmleia sp!, {r4-r9,lr} + bxle lr + ldr r3, [r6, #0x8] + mov r1, r8 + mov r2, r7 + add r0, r9, #0x8 + bl FUN_020948AC + sub r1, r5, #0x3 + cmp r1, #0x0 + addle sp, sp, #0x4 + str r0, [r4, #0x8] + ldmleia sp!, {r4-r9,lr} + bxle lr + ldr r3, [r6, #0xc] + mov r1, r8 + mov r2, r7 + add r0, r9, #0xc + bl FUN_020948AC + sub r5, r5, #0x4 + cmp r5, #0x0 + addle sp, sp, #0x4 + str r0, [r4, #0xc] + ldmleia sp!, {r4-r9,lr} + bxle lr + ldr r3, [r6, #0x10] + mov r1, r8 + mov r2, r7 + add r0, r9, #0x10 + bl FUN_020948AC + str r0, [r4, #0x10] + add r4, r4, #0x10 + add r9, r9, #0x10 + add r6, r6, #0x10 + b _02093840 +_02093900: ; 0x02093900 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start FUN_0209390C +FUN_0209390C: + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r9, r1 + ldr r6, [r9, #0x4] + mov r8, r2 + mov r10, r0 + cmp r6, #0x0 + ldr r5, [r8, #0x4] + beq _02093938 + cmp r5, #0x0 + bne _02093954 +_02093938: + mov r0, r10 + mov r1, #0x0 + bl FUN_02094D7C + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_02093954: + ldr r1, [r9, #0xc] + ldr r0, [r8, #0xc] + cmp r10, r9 + add r7, r6, r5 + eor r11, r1, r0 + beq _02093974 + cmp r10, r8 + bne _0209398C +_02093974: + ldr r0, [r3, #0x0] + add r2, r3, #0x4 + add r1, r0, #0x1 + mov r0, #0x14 + mla r4, r1, r0, r2 + b _02093990 +_0209398C: + mov r4, r10 +_02093990: + ldr r0, [r4, #0x8] + cmp r7, r0 + movle r0, r4 + ble _020939AC + mov r0, r4 + mov r1, r7 + bl FUN_02094EBC +_020939AC: + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + str r7, [r4, #0x4] + str r5, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r1, [r9, #0x0] + ldr r3, [r8, #0x0] + mov r2, r6 + bl FUN_020937E8 + mov r0, r4 + str r11, [r10, #0xc] + bl FUN_02095040 + cmp r10, r4 + beq _020939FC + mov r0, r10 + mov r1, r4 + bl FUN_02094E24 +_020939FC: + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_02093A0C +FUN_02093A0C: ; 0x02093A0C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r1 + ldr r1, [r6, #0xc] + mov r3, #0x0 + mov r7, r0 + mov r5, r2 + mov r4, r3 + cmp r1, #0x0 + beq _02093A54 + ldr r0, [r5, #0xc] + cmp r0, #0x0 + movne r0, r6 + moveq r3, #0x1 + movne r6, r5 + movne r5, r0 + moveq r4, r3 + b _02093A60 +_02093A54: + ldr r0, [r5, #0xc] + cmp r0, #0x0 + movne r3, #0x1 +_02093A60: + cmp r3, #0x0 + beq _02093A94 + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl FUN_02093CB4 +_02093A78: ; 0x02093A78 + cmp r0, #0x0 + moveq r0, #0x0 + add sp, sp, #0x4 + strne r4, [r7, #0xc] + movne r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_02093A94: + ldr r0, [r5, #0x4] + ldr r1, [r6, #0x4] + cmp r1, r0 + movle r1, r0 + ldr r0, [r7, #0x8] + cmp r1, r0 + movle r0, r7 + ble _02093ABC + mov r0, r7 + bl FUN_02094EBC +_02093ABC: + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + mov r0, r6 + mov r1, r5 + bl FUN_02094B98 +_02093ADC: ; 0x02093ADC + cmp r0, #0x0 + bge _02093B14 + mov r0, r7 + mov r1, r5 + mov r2, r6 + bl FUN_02093B50 +_02093AF4: ; 0x02093AF4 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + mov r0, #0x1 + str r0, [r7, #0xc] + b _02093B40 +_02093B14: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl FUN_02093B50 +_02093B24: ; 0x02093B24 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + mov r0, #0x0 + str r0, [r7, #0xc] +_02093B40: + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_02093B50 +FUN_02093B50: + stmdb sp!, {r4-r10,lr} + mov r8, r1 + mov r7, r2 + ldr r5, [r7, #0x4] + ldr r6, [r8, #0x4] + mov r4, r0 + cmp r6, r5 + movlt r0, #0x0 + ldmltia sp!, {r4-r10,lr} + bxlt lr + ldr r1, [r4, #0x8] + cmp r6, r1 + ble _02093B8C + mov r1, r6 + bl FUN_02094EBC +_02093B8C: + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r10,lr} + bxeq lr + mov r3, #0x0 + mov r0, r3 + cmp r5, #0x0 + ldr r2, [r8, #0x0] + ldr r9, [r7, #0x0] + ldr r1, [r4, #0x0] + ble _02093C0C + mov r12, r3 + mov r7, r3 + mov lr, #0x1 +_02093BC4: + cmp r3, #0x0 + ldr r10, [r2], #0x4 + ldr r8, [r9], #0x4 + beq _02093BEC + cmp r10, r8 + movls r3, lr + sub r8, r10, r8 + movhi r3, r12 + sub r10, r8, #0x1 + b _02093BFC +_02093BEC: + cmp r10, r8 + movcc r3, lr + movcs r3, r7 + sub r10, r10, r8 +_02093BFC: + add r0, r0, #0x1 + cmp r0, r5 + str r10, [r1], #0x4 + blt _02093BC4 +_02093C0C: + cmp r3, #0x0 + beq _02093C3C + cmp r0, r6 + bge _02093C3C +_02093C1C: + ldr r5, [r2], #0x4 + add r0, r0, #0x1 + sub r3, r5, #0x1 + cmp r5, r3 + str r3, [r1], #0x4 + bhi _02093C3C + cmp r0, r6 + blt _02093C1C +_02093C3C: + cmp r1, r2 + beq _02093C9C +_02093C44: + cmp r0, r6 + bge _02093C9C + ldr r5, [r2, #0x0] + add r3, r0, #0x1 + str r5, [r1, #0x0] + cmp r3, r6 + bge _02093C9C + ldr r5, [r2, #0x4] + add r3, r0, #0x2 + str r5, [r1, #0x4] + cmp r3, r6 + bge _02093C9C + ldr r5, [r2, #0x8] + add r3, r0, #0x3 + str r5, [r1, #0x8] + cmp r3, r6 + ldrlt r3, [r2, #0xc] + add r0, r0, #0x4 + strlt r3, [r1, #0xc] + addlt r2, r2, #0x10 + addlt r1, r1, #0x10 + blt _02093C44 +_02093C9C: + mov r0, r4 + str r6, [r4, #0x4] + bl FUN_02095040 + mov r0, #0x1 + ldmia sp!, {r4-r10,lr} + bx lr + + arm_func_start FUN_02093CB4 +FUN_02093CB4: + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r8, r2 + ldr r2, [r4, #0x4] + ldr r1, [r8, #0x4] + mov r9, r0 + cmp r2, r1 + movlt r0, r4 + movlt r4, r8 + movlt r8, r0 + ldr r6, [r4, #0x4] + ldr r0, [r9, #0x8] + add r1, r6, #0x1 + cmp r1, r0 + ldr r7, [r8, #0x4] + movle r0, r9 + ble _02093D04 + mov r0, r9 + bl FUN_02094EBC +_02093D04: + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + str r6, [r9, #0x4] + ldr r5, [r4, #0x0] + ldr r4, [r9, #0x0] + ldr r2, [r8, #0x0] + mov r0, r4 + mov r1, r5 + mov r3, r7 + bl FUN_02094468 +_02093D38: ; 0x02093D38 + cmp r0, #0x0 + add r4, r4, r7, lsl #0x2 + add r5, r5, r7, lsl #0x2 + beq _02093D9C + cmp r7, r6 + bge _02093D7C +_02093D50: + ldr r2, [r5], #0x4 + mov r3, r4 + add r1, r2, #0x1 + str r1, [r4], #0x4 + ldr r1, [r3, #0x0] + add r7, r7, #0x1 + cmp r1, r2 + movcs r0, #0x0 + bhs _02093D7C + cmp r7, r6 + blt _02093D50 +_02093D7C: + cmp r7, r6 + blt _02093D9C + cmp r0, #0x0 + movne r0, #0x1 + strne r0, [r4], #0x4 + ldrne r0, [r9, #0x4] + addne r0, r0, #0x1 + strne r0, [r9, #0x4] +_02093D9C: + cmp r4, r5 + beq _02093DC0 + cmp r7, r6 + bge _02093DC0 +_02093DAC: + ldr r0, [r5], #0x4 + add r7, r7, #0x1 + cmp r7, r6 + str r0, [r4], #0x4 + blt _02093DAC +_02093DC0: + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start FUN_02093DD0 +FUN_02093DD0: ; 0x02093DD0 + stmdb sp!, {r4-r6,lr} + mov r5, r1 + mov r4, r2 + ldr r2, [r5, #0xc] + ldr r1, [r4, #0xc] + mov r6, r0 + eors r0, r2, r1 + beq _02093E74 + cmp r2, #0x0 + movne r0, r5 + movne r5, r4 + movne r4, r0 + mov r0, r5 + mov r1, r4 + bl FUN_02094B98 +_02093E0C: ; 0x02093E0C + cmp r0, #0x0 + bge _02093E40 + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl FUN_02093B50 +_02093E24: ; 0x02093E24 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + mov r0, #0x1 + str r0, [r6, #0xc] + b _02093E68 +_02093E40: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_02093B50 +_02093E50: ; 0x02093E50 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + mov r0, #0x0 + str r0, [r6, #0xc] +_02093E68: + mov r0, #0x1 + ldmia sp!, {r4-r6,lr} + bx lr +_02093E74: + cmp r2, #0x0 + movne r0, #0x1 + strne r0, [r6, #0xc] + moveq r0, #0x0 + streq r0, [r6, #0xc] + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_02093CB4 +_02093E98: ; 0x02093E98 + cmp r0, #0x0 + moveq r0, #0x0 + movne r0, #0x1 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_02093EAC +FUN_02093EAC: ; 0x02093EAC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + movs r4, r1 + mov r5, r0 + addeq sp, sp, #0x4 + moveq r0, #0x1 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r2, [r5, #0xc] + cmp r2, #0x0 + beq _02093EF8 + mov r2, #0x0 + str r2, [r5, #0xc] + bl FUN_0209400C + mov r1, #0x1 + add sp, sp, #0x4 + str r1, [r5, #0xc] + ldmia sp!, {r4-r5,lr} + bx lr +_02093EF8: + ldr r1, [r5, #0x4] + cmp r1, #0x1 + bgt _02093F9C + cmp r1, #0x0 + bne _02093F54 + ldr r1, [r5, #0x8] + cmp r1, #0x1 + bge _02093F20 + mov r1, #0x1 + bl FUN_02094EBC +_02093F20: + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r1, [r5, #0x0] + mov r0, #0x1 + str r4, [r1, #0x0] + str r0, [r5, #0xc] + add sp, sp, #0x4 + str r0, [r5, #0x4] + ldmia sp!, {r4-r5,lr} + bx lr +_02093F54: + ldr r2, [r5, #0x0] + ldr r1, [r2, #0x0] + cmp r1, r4 + moveq r0, #0x0 + streq r0, [r5, #0x4] + beq _02093F8C + cmp r1, r4 + subhi r0, r1, r4 + strhi r0, [r2, #0x0] + movls r0, #0x1 + strls r0, [r5, #0xc] + ldrls r0, [r5, #0x0] + subls r1, r4, r1 + strls r1, [r0, #0x0] +_02093F8C: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r5,lr} + bx lr +_02093F9C: + mov r0, #0x0 + mov r1, #0x1 +_02093FA4: + ldr r12, [r5, #0x0] + mov r3, r0, lsl #0x2 + ldr r2, [r12, r0, lsl #0x2] + cmp r2, r4 + ldrcs r1, [r12, r3] + subcs r1, r1, r4 + strcs r1, [r12, r3] + bhs _02093FDC + ldr r2, [r12, r3] + add r0, r0, #0x1 + sub r2, r2, r4 + mov r4, r1 + str r2, [r12, r3] + b _02093FA4 +_02093FDC: + ldr r1, [r5, #0x0] + ldr r1, [r1, r3] + cmp r1, #0x0 + bne _02093FFC + ldr r1, [r5, #0x4] + sub r1, r1, #0x1 + cmp r0, r1 + streq r1, [r5, #0x4] +_02093FFC: + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_0209400C +FUN_0209400C: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + movs r4, r1 + mov r5, r0 + addeq sp, sp, #0x4 + moveq r0, #0x1 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r2, [r5, #0xc] + cmp r2, #0x0 + beq _020940B4 + ldr r2, [r5, #0x4] + cmp r2, #0x1 + ble _02094064 + mov r2, #0x0 + str r2, [r5, #0xc] + bl FUN_02093EAC + mov r1, #0x1 + add sp, sp, #0x4 + str r1, [r5, #0xc] + ldmia sp!, {r4-r5,lr} + bx lr +_02094064: + ldr r2, [r5, #0x0] + ldr r1, [r2, #0x0] + cmp r1, r4 + subhi r0, r1, r4 + strhi r0, [r2, #0x0] + bhi _020940A4 + cmp r1, r4 + movcs r0, #0x0 + strcs r0, [r5, #0xc] + strcs r0, [r5, #0x4] + bhs _020940A4 + mov r0, #0x0 + str r0, [r5, #0xc] + ldr r0, [r5, #0x0] + sub r1, r4, r1 + str r1, [r0, #0x0] +_020940A4: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r5,lr} + bx lr +_020940B4: + ldr r1, [r5, #0x4] + ldr r2, [r5, #0x8] + add r1, r1, #0x1 + cmp r1, r2 + ble _020940CC + bl FUN_02094EBC +_020940CC: + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r1, [r5, #0x0] + ldr r0, [r5, #0x4] + mov r3, #0x0 + str r3, [r1, r0, lsl #0x2] + mov r0, #0x1 +_020940F4: + ldr r2, [r5, #0x0] + ldr r1, [r2, r3, lsl #0x2] + add r1, r4, r1 + cmp r4, r1 + str r1, [r2, r3, lsl #0x2] + movhi r4, r0 + addhi r3, r3, #0x1 + bhi _020940F4 + ldr r0, [r5, #0x4] + cmp r3, r0 + addge r0, r0, #0x1 + strge r0, [r5, #0x4] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_02094134 +FUN_02094134: + stmdb sp!, {r4-r8,lr} + mov r7, r1 + mov r1, r2, asr #0x4 + mov r3, r2, lsr #0x1f + add r1, r2, r1, lsr #0x1b + rsb r2, r3, r2, lsl #0x1b + add r4, r3, r2, ror #0x1b + ldr r2, [r7, #0x4] + mov r6, r1, asr #0x5 + mov r8, r0 + cmp r6, r2 + rsb r5, r4, #0x20 + ble _0209417C + mov r1, #0x0 + bl FUN_02094D7C + mov r0, #0x1 + ldmia sp!, {r4-r8,lr} + bx lr +_0209417C: + cmp r8, r7 + beq _020941B4 + sub r1, r2, r6 + ldr r2, [r8, #0x8] + add r1, r1, #0x2 + cmp r1, r2 + ble _0209419C + bl FUN_02094EBC +_0209419C: + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r0, [r7, #0xc] + str r0, [r8, #0xc] +_020941B4: + ldr r0, [r7, #0x0] + ldr r1, [r7, #0x4] + add r2, r0, r6, lsl #0x2 + ldr r0, [r8, #0x0] + sub r7, r1, r6 + mov r6, r2 + str r7, [r8, #0x4] + cmp r4, #0x0 + bne _020941FC + add r2, r7, #0x1 + cmp r2, #0x0 + ble _0209423C +_020941E4: + ldr r1, [r6], #0x4 + sub r2, r2, #0x1 + cmp r2, #0x0 + str r1, [r0], #0x4 + bgt _020941E4 + b _0209423C +_020941FC: + cmp r7, #0x1 + add r6, r2, #0x4 + ldr r3, [r2, #0x0] + mov r2, #0x1 + ble _0209422C +_02094210: + mov r1, r3, lsr r4 + ldr r3, [r6], #0x4 + add r2, r2, #0x1 + orr r1, r1, r3, lsl r5 + cmp r2, r7 + str r1, [r0], #0x4 + blt _02094210 +_0209422C: + mov r1, r3, lsr r4 + str r1, [r0, #0x0] + mov r1, #0x0 + str r1, [r0, #0x4] +_0209423C: + mov r0, r8 + bl FUN_02095040 + mov r0, #0x1 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_02094250 +FUN_02094250: + stmdb sp!, {r4-r10,lr} + mov r4, r1 + mov r7, r2 + mov r1, r7, asr #0x4 + mov r5, r0 + add r2, r7, r1, lsr #0x1b + ldr r1, [r4, #0x4] + ldr r3, [r5, #0x8] + add r1, r1, r2, asr #0x5 + add r1, r1, #0x1 + cmp r1, r3 + mov r6, r2, asr #0x5 + ble _02094288 + bl FUN_02094EBC +_02094288: + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r10,lr} + bxeq lr + ldr r0, [r4, #0xc] + mov r1, r7, lsr #0x1f + str r0, [r5, #0xc] + ldr r3, [r4, #0x4] + rsb r0, r1, r7, lsl #0x1b + adds r12, r1, r0, ror #0x1b + ldr r2, [r4, #0x0] + ldr r0, [r5, #0x0] + add r1, r3, r6 + mov r3, #0x0 + str r3, [r0, r1, lsl #0x2] + rsb r3, r12, #0x20 + bne _020942F0 + ldr r1, [r4, #0x4] + subs r7, r1, #0x1 + bmi _02094324 +_020942D8: + ldr r3, [r2, r7, lsl #0x2] + add r1, r6, r7 + str r3, [r0, r1, lsl #0x2] + subs r7, r7, #0x1 + bpl _020942D8 + b _02094324 +_020942F0: + ldr r1, [r4, #0x4] + subs r1, r1, #0x1 + bmi _02094324 +_020942FC: + add r9, r6, r1 + add r8, r9, #0x1 + ldr r10, [r2, r1, lsl #0x2] + ldr lr, [r0, r8, lsl #0x2] + mov r7, r10, lsl r12 + orr lr, lr, r10, lsr r3 + str lr, [r0, r8, lsl #0x2] + str r7, [r0, r9, lsl #0x2] + subs r1, r1, #0x1 + bpl _020942FC +_02094324: + mov r2, r6, lsl #0x2 + mov r1, #0x0 + bl MI_CpuFill8 + ldr r1, [r4, #0x4] + mov r0, r5 + add r1, r1, r6 + add r1, r1, #0x1 + str r1, [r5, #0x4] + bl FUN_02095040 + mov r0, #0x1 + ldmia sp!, {r4-r10,lr} + bx lr + + arm_func_start FUN_02094354 +FUN_02094354: ; 0x02094354 + stmdb sp!, {r4-r10,lr} + cmp r3, #0x0 + movle r0, #0x0 + ldmleia sp!, {r4-r10,lr} + bxle lr + mov r6, #0x0 + mov r4, r6 + mov lr, r6 + mov r12, r6 + mov r7, r6 + mov r5, #0x1 +_02094380: + ldr r10, [r1, #0x0] + ldr r9, [r2, #0x0] + sub r8, r10, r9 + sub r8, r8, r6 + str r8, [r0, #0x0] + cmp r10, r9 + beq _020943A8 + cmp r10, r9 + movcc r6, r5 + movcs r6, r4 +_020943A8: + sub r8, r3, #0x1 + cmp r8, #0x0 + ble _0209445C + ldr r10, [r1, #0x4] + ldr r9, [r2, #0x4] + sub r8, r10, r9 + sub r8, r8, r6 + str r8, [r0, #0x4] + cmp r10, r9 + beq _020943DC + cmp r10, r9 + movcc r6, r5 + movcs r6, lr +_020943DC: + sub r8, r3, #0x2 + cmp r8, #0x0 + ble _0209445C + ldr r10, [r1, #0x8] + ldr r9, [r2, #0x8] + sub r8, r10, r9 + sub r8, r8, r6 + str r8, [r0, #0x8] + cmp r10, r9 + beq _02094410 + cmp r10, r9 + movcc r6, r5 + movcs r6, r12 +_02094410: + sub r8, r3, #0x3 + cmp r8, #0x0 + ble _0209445C + ldr r10, [r1, #0xc] + ldr r9, [r2, #0xc] + sub r8, r10, r9 + sub r8, r8, r6 + str r8, [r0, #0xc] + cmp r10, r9 + beq _02094444 + cmp r10, r9 + movcc r6, r5 + movcs r6, r7 +_02094444: + sub r3, r3, #0x4 + cmp r3, #0x0 + addgt r1, r1, #0x10 + addgt r2, r2, #0x10 + addgt r0, r0, #0x10 + bgt _02094380 +_0209445C: + mov r0, r6 + ldmia sp!, {r4-r10,lr} + bx lr + + arm_func_start FUN_02094468 +FUN_02094468: + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + cmp r3, #0x0 + addle sp, sp, #0xc + movle r0, #0x0 + ldmleia sp!, {r4-r11,lr} + bxle lr + mov r12, #0x0 + mov r7, r12 + mov r6, r12 + mov r5, r12 + mov r4, r12 + mov lr, r12 + mov r11, r12 + str r12, [sp, #0x0] + str r12, [sp, #0x4] + mov r8, #0x1 +_020944AC: + ldr r9, [r1, #0x0] + add r10, r9, r12 + ldr r9, [r2, #0x0] + cmp r10, r12 + movcc r12, r8 + add r9, r10, r9 + movcs r12, r7 + cmp r9, r10 + movcc r10, r8 + movcs r10, r6 + str r9, [r0, #0x0] + sub r9, r3, #0x1 + add r12, r12, r10 + cmp r9, #0x0 + ble _020945A8 + ldr r9, [r1, #0x4] + ldr r10, [r2, #0x4] + add r9, r9, r12 + cmp r9, r12 + movcc r12, r8 + add r10, r9, r10 + movcs r12, r5 + cmp r10, r9 + movcc r9, r8 + movcs r9, r4 + add r12, r12, r9 + sub r9, r3, #0x2 + str r10, [r0, #0x4] + cmp r9, #0x0 + ble _020945A8 + ldr r9, [r1, #0x8] + ldr r10, [r2, #0x8] + add r9, r9, r12 + cmp r9, r12 + movcc r12, r8 + add r10, r9, r10 + movcs r12, lr + cmp r10, r9 + movcc r9, r8 + movcs r9, r11 + add r12, r12, r9 + sub r9, r3, #0x3 + str r10, [r0, #0x8] + cmp r9, #0x0 + ble _020945A8 + ldr r9, [r1, #0xc] + ldr r10, [r2, #0xc] + add r9, r9, r12 + cmp r9, r12 + movcc r12, r8 + add r10, r9, r10 + ldrcs r12, [sp, #0x0] + cmp r10, r9 + movcc r9, r8 + ldrcs r9, [sp, #0x4] + sub r3, r3, #0x4 + cmp r3, #0x0 + str r10, [r0, #0xc] + add r12, r12, r9 + addgt r1, r1, #0x10 + addgt r2, r2, #0x10 + addgt r0, r0, #0x10 + bgt _020944AC +_020945A8: + mov r0, r12 + add sp, sp, #0xc + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_020945B8 +FUN_020945B8: ; 0x020945B8 + stmdb sp!, {r4-r8,lr} + cmp r2, #0x0 + ldmleia sp!, {r4-r8,lr} + bxle lr + mov r3, #0x8000 + ldr lr, _02094708 ; =0x0000FFFF + rsb r12, r3, #0x0 +_020945D4: + ldr r5, [r1, #0x0] + mov r3, #0x8000 + and r4, r5, lr + and r7, lr, r5, lsr #0x10 + mul r6, r4, r7 + mul r5, r4, r4 + and r4, r6, lr + add r8, r5, r4, lsl #0x11 + rsb r3, r3, #0x0 + mul r5, r7, r7 + and r3, r6, r3 + add r3, r5, r3, lsr #0xf + cmp r8, r4, lsl #0x11 + addcc r3, r3, #0x1 + str r8, [r0, #0x0] + str r3, [r0, #0x4] + subs r3, r2, #0x1 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r4, [r1, #0x4] + and r7, lr, r4, lsr #0x10 + and r3, r4, lr + mul r6, r3, r7 + mul r4, r3, r3 + and r3, r6, lr + add r8, r4, r3, lsl #0x11 + mul r5, r7, r7 + and r4, r6, r12 + cmp r8, r3, lsl #0x11 + add r3, r5, r4, lsr #0xf + addcc r3, r3, #0x1 + str r8, [r0, #0x8] + str r3, [r0, #0xc] + subs r3, r2, #0x2 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r5, [r1, #0x8] + mov r3, #0x8000 + and r4, r5, lr + and r7, lr, r5, lsr #0x10 + mul r6, r4, r7 + mul r5, r4, r4 + and r4, r6, lr + add r8, r5, r4, lsl #0x11 + rsb r3, r3, #0x0 + mul r5, r7, r7 + and r3, r6, r3 + add r3, r5, r3, lsr #0xf + cmp r8, r4, lsl #0x11 + addcc r3, r3, #0x1 + str r8, [r0, #0x10] + str r3, [r0, #0x14] + subs r3, r2, #0x3 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r5, [r1, #0xc] + mov r3, #0x8000 + and r4, r5, lr + and r7, lr, r5, lsr #0x10 + mul r6, r4, r7 + mul r5, r4, r4 + and r4, r6, lr + add r8, r5, r4, lsl #0x11 + rsb r3, r3, #0x0 + mul r5, r7, r7 + and r3, r6, r3 + add r3, r5, r3, lsr #0xf + cmp r8, r4, lsl #0x11 + addcc r3, r3, #0x1 + str r8, [r0, #0x18] + subs r2, r2, #0x4 + str r3, [r0, #0x1c] + addne r1, r1, #0x10 + addne r0, r0, #0x20 + bne _020945D4 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_02094708: .word 0x0000FFFF + + arm_func_start FUN_0209470C +FUN_0209470C: ; 0x0209470C + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + cmp r2, #0x0 + mov r4, #0x0 + addle sp, sp, #0x4 + movle r0, r4 + ldmleia sp!, {r4-r9,lr} + bxle lr + ldr r5, _020948A8 ; =0x0000FFFF + and lr, r3, r5 + and r12, r5, r3, lsr #0x10 +_02094738: + ldr r3, [r1, #0x0] + and r7, r5, r3, lsr #0x10 + mul r6, lr, r7 + and r3, r3, r5 + mla r9, r12, r3, r6 + mul r8, r3, lr + mul r3, r7, r12 + cmp r9, r6 + and r6, r9, r5 + addcc r3, r3, #0x10000 + and r7, r5, r9, lsr #0x10 + add r8, r8, r6, lsl #0x10 + cmp r8, r6, lsl #0x10 + add r3, r3, r7 + add r6, r8, r4 + addcc r3, r3, #0x1 + cmp r6, r4 + addcc r3, r3, #0x1 + str r6, [r0, #0x0] + mov r4, r3 + subs r6, r2, #0x1 + beq _02094898 + ldr r4, [r1, #0x4] + and r7, r5, r4, lsr #0x10 + mul r6, lr, r7 + and r4, r4, r5 + mla r9, r12, r4, r6 + mul r8, r4, lr + mul r4, r7, r12 + cmp r9, r6 + and r6, r9, r5 + addcc r4, r4, #0x10000 + and r7, r5, r9, lsr #0x10 + add r8, r8, r6, lsl #0x10 + cmp r8, r6, lsl #0x10 + add r4, r4, r7 + add r6, r8, r3 + addcc r4, r4, #0x1 + cmp r6, r3 + addcc r4, r4, #0x1 + str r6, [r0, #0x4] + subs r3, r2, #0x2 + beq _02094898 + ldr r3, [r1, #0x8] + and r7, r5, r3, lsr #0x10 + mul r6, lr, r7 + and r3, r3, r5 + mla r9, r12, r3, r6 + mul r8, r3, lr + mul r3, r7, r12 + cmp r9, r6 + and r6, r9, r5 + addcc r3, r3, #0x10000 + and r7, r5, r9, lsr #0x10 + add r8, r8, r6, lsl #0x10 + cmp r8, r6, lsl #0x10 + add r3, r3, r7 + add r6, r8, r4 + addcc r3, r3, #0x1 + cmp r6, r4 + addcc r3, r3, #0x1 + str r6, [r0, #0x8] + mov r4, r3 + subs r6, r2, #0x3 + beq _02094898 + ldr r4, [r1, #0xc] + and r7, r5, r4, lsr #0x10 + mul r6, lr, r7 + and r4, r4, r5 + mla r9, r12, r4, r6 + mul r8, r4, lr + mul r4, r7, r12 + cmp r9, r6 + and r6, r9, r5 + addcc r4, r4, #0x10000 + and r7, r5, r9, lsr #0x10 + add r8, r8, r6, lsl #0x10 + cmp r8, r6, lsl #0x10 + add r4, r4, r7 + add r6, r8, r3 + addcc r4, r4, #0x1 + cmp r6, r3 + addcc r4, r4, #0x1 + subs r2, r2, #0x4 + str r6, [r0, #0xc] + addne r1, r1, #0x10 + addne r0, r0, #0x10 + bne _02094738 +_02094898: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_020948A8: .word 0x0000FFFF + + arm_func_start FUN_020948AC +FUN_020948AC: ; 0x020948AC + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + cmp r2, #0x0 + mov r12, #0x0 + addle sp, sp, #0x4 + movle r0, r12 + ldmleia sp!, {r4-r9,lr} + bxle lr + ldr r5, _02094A88 ; =0x0000FFFF + and r4, r3, r5 + and lr, r5, r3, lsr #0x10 +_020948D8: + ldr r3, [r1, #0x0] + and r7, r5, r3, lsr #0x10 + mul r6, r4, r7 + and r3, r3, r5 + mla r9, lr, r3, r6 + mul r8, r3, r4 + mul r3, r7, lr + cmp r9, r6 + and r6, r9, r5 + addcc r3, r3, #0x10000 + and r7, r5, r9, lsr #0x10 + add r8, r8, r6, lsl #0x10 + cmp r8, r6, lsl #0x10 + add r3, r3, r7 + ldr r6, [r0, #0x0] + addcc r3, r3, #0x1 + add r7, r8, r12 + cmp r7, r12 + add r7, r7, r6 + addcc r3, r3, #0x1 + cmp r7, r6 + addcc r3, r3, #0x1 + mov r12, r3 + str r7, [r0, #0x0] + subs r6, r2, #0x1 + beq _02094A78 + ldr r12, [r1, #0x4] + and r7, r5, r12, lsr #0x10 + mul r6, r4, r7 + and r12, r12, r5 + mla r9, lr, r12, r6 + mul r8, r12, r4 + mul r12, r7, lr + cmp r9, r6 + and r6, r9, r5 + addcc r12, r12, #0x10000 + and r7, r5, r9, lsr #0x10 + add r8, r8, r6, lsl #0x10 + cmp r8, r6, lsl #0x10 + add r12, r12, r7 + add r6, r8, r3 + addcc r12, r12, #0x1 + cmp r6, r3 + ldr r3, [r0, #0x4] + addcc r12, r12, #0x1 + add r6, r6, r3 + cmp r6, r3 + addcc r12, r12, #0x1 + str r6, [r0, #0x4] + subs r3, r2, #0x2 + beq _02094A78 + ldr r3, [r1, #0x8] + and r7, r5, r3, lsr #0x10 + mul r6, r4, r7 + and r3, r3, r5 + mla r9, lr, r3, r6 + mul r8, r3, r4 + mul r3, r7, lr + cmp r9, r6 + and r6, r9, r5 + addcc r3, r3, #0x10000 + and r7, r5, r9, lsr #0x10 + add r8, r8, r6, lsl #0x10 + cmp r8, r6, lsl #0x10 + add r3, r3, r7 + ldr r6, [r0, #0x8] + addcc r3, r3, #0x1 + add r7, r8, r12 + cmp r7, r12 + add r7, r7, r6 + addcc r3, r3, #0x1 + cmp r7, r6 + addcc r3, r3, #0x1 + mov r12, r3 + str r7, [r0, #0x8] + subs r6, r2, #0x3 + beq _02094A78 + ldr r12, [r1, #0xc] + and r7, r5, r12, lsr #0x10 + mul r6, r4, r7 + and r12, r12, r5 + mla r9, lr, r12, r6 + mul r8, r12, r4 + mul r12, r7, lr + cmp r9, r6 + and r6, r9, r5 + addcc r12, r12, #0x10000 + and r7, r5, r9, lsr #0x10 + add r8, r8, r6, lsl #0x10 + cmp r8, r6, lsl #0x10 + add r12, r12, r7 + add r6, r8, r3 + addcc r12, r12, #0x1 + cmp r6, r3 + ldr r3, [r0, #0xc] + addcc r12, r12, #0x1 + add r6, r6, r3 + cmp r6, r3 + addcc r12, r12, #0x1 + subs r2, r2, #0x4 + str r6, [r0, #0xc] + addne r1, r1, #0x10 + addne r0, r0, #0x10 + bne _020948D8 +_02094A78: + mov r0, r12 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_02094A88: .word 0x0000FFFF + + arm_func_start FUN_02094A8C +FUN_02094A8C: + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0x0 + addlt sp, sp, #0x4 + movlt r0, #0x0 + ldmltia sp!, {lr} + bxlt lr + mov r2, r1, asr #0x4 + add r2, r1, r2, lsr #0x1b + mov r3, r1, lsr #0x1f + ldr r12, [r0, #0x4] + mov lr, r2, asr #0x5 + cmp r12, lr + rsb r1, r3, r1, lsl #0x1b + addle sp, sp, #0x4 + add r2, r3, r1, ror #0x1b + movle r0, #0x0 + ldmleia sp!, {lr} + bxle lr + ldr r1, [r0, #0x0] + mov r0, #0x1 + mov r2, r0, lsl r2 + ldr r1, [r1, lr, lsl #0x2] + ands r1, r2, r1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_02094AFC +FUN_02094AFC: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r2, r1, asr #0x4 + add r2, r1, r2, lsr #0x1b + mov r3, r1, lsr #0x1f + rsb r1, r3, r1, lsl #0x1b + ldr r4, [r6, #0x4] + mov r5, r2, asr #0x5 + cmp r4, r5 + add r4, r3, r1, ror #0x1b + bgt _02094B7C + ldr r2, [r6, #0x8] + add r1, r5, #0x1 + cmp r1, r2 + ble _02094B3C + bl FUN_02094EBC +_02094B3C: + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r3, [r6, #0x4] + add r2, r5, #0x1 + cmp r3, r2 + bge _02094B74 + mov r1, #0x0 +_02094B60: + ldr r0, [r6, #0x0] + str r1, [r0, r3, lsl #0x2] + add r3, r3, #0x1 + cmp r3, r2 + blt _02094B60 +_02094B74: + add r0, r5, #0x1 + str r0, [r6, #0x4] +_02094B7C: + ldr r2, [r6, #0x0] + mov r0, #0x1 + ldr r1, [r2, r5, lsl #0x2] + orr r1, r1, r0, lsl r4 + str r1, [r2, r5, lsl #0x2] + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_02094B98 +FUN_02094B98: + ldr r3, [r0, #0x4] + ldr r2, [r1, #0x4] + subs r2, r3, r2 + movne r0, r2 + bxne lr + subs r2, r3, #0x1 + ldr r12, [r0, #0x0] + ldr r3, [r1, #0x0] + bmi _02094BE4 +_02094BBC: + ldr r1, [r12, r2, lsl #0x2] + ldr r0, [r3, r2, lsl #0x2] + cmp r1, r0 + beq _02094BDC + cmp r1, r0 + movhi r0, #0x1 + mvnls r0, #0x0 + bx lr +_02094BDC: + subs r2, r2, #0x1 + bpl _02094BBC +_02094BE4: + mov r0, #0x0 + bx lr + + arm_func_start FUN_02094BEC +FUN_02094BEC: ; 0x02094BEC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + bl FUN_02095188 + add r1, r0, #0x7 + mov r0, r1, asr #0x2 + add r0, r1, r0, lsr #0x1d + mov r0, r0, asr #0x3 + cmp r0, #0x0 + addle sp, sp, #0x4 + sub r12, r0, #0x1 + ldmleia sp!, {r4-r5,lr} + bxle lr +_02094C24: + mov r3, r12, lsr #0x1f + mov r1, r12, asr #0x1 + rsb r2, r3, r12, lsl #0x1e + add r1, r12, r1, lsr #0x1e + add r2, r3, r2, ror #0x1e + ldr r3, [r5, #0x0] + mov r1, r1, asr #0x2 + ldr r3, [r3, r1, lsl #0x2] + mov r1, r2, lsl #0x3 + mov r1, r3, lsr r1 + cmp r12, #0x0 + strb r1, [r4], #0x1 + sub r12, r12, #0x1 + bgt _02094C24 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_02094C68 +FUN_02094C68: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + movs r5, r2 + mov r7, r0 + mov r6, r1 + bne _02094C88 + bl FUN_02094FE0 + mov r5, r0 +_02094C88: + cmp r5, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + cmp r6, #0x0 + mov r4, #0x0 + addeq sp, sp, #0x4 + moveq r0, r5 + streq r4, [r5, #0x4] + ldmeqia sp!, {r4-r7,lr} + bxeq lr + add r0, r6, #0x2 + mov r2, r0, lsl #0x3 + add r1, r2, #0x1f + mov r0, r1, asr #0x4 + add r0, r1, r0, lsr #0x1b + ldr r1, [r5, #0x8] + mov r0, r0, asr #0x5 + cmp r0, r1 + movle r0, r5 + ble _02094CF8 + mov r0, r2, asr #0x4 + add r0, r2, r0, lsr #0x1b + mov r1, r0, asr #0x5 + mov r0, r5 + add r1, r1, #0x1 + bl FUN_02094EBC +_02094CF8: + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + sub r0, r6, #0x1 + mov r1, r0, lsr #0x2 + add r12, r1, #0x1 + cmp r6, #0x0 + str r12, [r5, #0x4] + and r3, r0, #0x3 + sub r6, r6, #0x1 + beq _02094D64 + mov r1, #0x0 + mov r0, #0x3 +_02094D34: + ldrb r2, [r7], #0x1 + cmp r3, #0x0 + sub r3, r3, #0x1 + orr r4, r2, r4, lsl #0x8 + ldreq r2, [r5, #0x0] + subeq r12, r12, #0x1 + streq r4, [r2, r12, lsl #0x2] + moveq r4, r1 + moveq r3, r0 + cmp r6, #0x0 + sub r6, r6, #0x1 + bne _02094D34 +_02094D64: + mov r0, r5 + bl FUN_02095040 + mov r0, r5 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_02094D7C +FUN_02094D7C: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + ldr r2, [r4, #0x8] + mov r5, r1 + cmp r2, #0x1 + bge _02094DA0 + mov r1, #0x2 + bl FUN_02094EBC +_02094DA0: + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + mov r0, #0x0 + str r0, [r4, #0xc] + str r0, [r4, #0x4] + ldr r0, [r4, #0x0] + str r5, [r0, #0x0] + ldr r0, [r4, #0x0] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + movne r0, #0x1 + strne r0, [r4, #0x4] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_02094DEC +FUN_02094DEC: ; 0x02094DEC + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02094E10 + ldr r2, [r4, #0x8] + mov r1, #0x0 + mov r2, r2, lsl #0x2 + bl MI_CpuFill8 +_02094E10: + mov r0, #0x0 + str r0, [r4, #0x4] + str r0, [r4, #0xc] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_02094E24 +FUN_02094E24: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + cmp r5, r4 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r1, [r4, #0x4] + ldr r2, [r5, #0x8] + cmp r1, r2 + ble _02094E58 + bl FUN_02094EBC +_02094E58: + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r2, [r4, #0x4] + ldr r0, [r4, #0x0] + ldr r1, [r5, #0x0] + mov r2, r2, lsl #0x2 + bl MI_CpuCopy8 + ldr r0, [r4, #0x4] + str r0, [r5, #0x4] + ldr r0, [r5, #0x4] + cmp r0, #0x0 + bne _02094EA4 + ldr r1, [r5, #0x0] + cmp r1, #0x0 + movne r0, #0x0 + strne r0, [r1, #0x0] +_02094EA4: + ldr r1, [r4, #0xc] + mov r0, r5 + str r1, [r5, #0xc] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_02094EBC +FUN_02094EBC: + stmdb sp!, {r4-r6,lr} + mov r5, r0 + ldr r0, [r5, #0x8] + mov r4, r1 + cmp r4, r0 + ble _02094F30 + ldr r0, [r5, #0x10] + ands r0, r0, #0x2 + movne r0, #0x0 + ldmneia sp!, {r4-r6,lr} + bxne lr + add r0, r4, #0x1 + mov r0, r0, lsl #0x2 + bl FUN_020910A4 + movs r6, r0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _02094F28 + ldr r2, [r5, #0x4] + mov r1, r6 + mov r2, r2, lsl #0x2 + bl MI_CpuCopy8 +_02094F20: ; 0x02094F20 + ldr r0, [r5, #0x0] + bl FUN_0209105C +_02094F28: + str r6, [r5, #0x0] + str r4, [r5, #0x8] +_02094F30: + mov r0, r5 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_02094F3C +FUN_02094F3C: ; 0x02094F3C + stmdb sp!, {r4-r6,lr} + mov r6, r0 + add r4, r6, #0x4 + mov r5, #0x0 +_02094F4C: + mov r0, r4 + bl FUN_02095164 + add r5, r5, #0x1 + cmp r5, #0xc + add r4, r4, #0x14 + blt _02094F4C + ldr r0, [r6, #0x108] + ands r0, r0, #0x1 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + mov r0, r6 + bl FUN_0209105C + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_02094F84 +FUN_02094F84: ; 0x02094F84 + stmdb sp!, {r4,lr} + mov r1, #0x0 + mov r2, #0x110 + mov r4, r0 + bl MI_CpuFill8 +_02094F98: ; 0x02094F98 + mov r0, #0x0 + str r0, [r4, #0x0] + str r0, [r4, #0x108] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_02094FAC +FUN_02094FAC: ; 0x02094FAC + stmdb sp!, {r4,lr} + mov r0, #0x110 + bl FUN_020910A4 + movs r4, r0 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + bl FUN_02094F84 + mov r1, #0x1 + mov r0, r4 + str r1, [r4, #0x108] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_02094FE0 +FUN_02094FE0: ; 0x02094FE0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, #0x14 + bl FUN_020910A4 +_02094FF0: ; 0x02094FF0 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {lr} + bxeq lr + mov r1, #0x1 + str r1, [r0, #0x10] + mov r1, #0x0 + str r1, [r0, #0x4] + str r1, [r0, #0xc] + str r1, [r0, #0x8] + str r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_0209502C +FUN_0209502C: + ldr ip, _0209503C ; =MI_CpuFill8 + mov r1, #0x0 + mov r2, #0x14 + bx r12 + .balign 4 +_0209503C: .word MI_CpuFill8 + + arm_func_start FUN_02095040 +FUN_02095040: + ldr r3, [r0, #0x4] + cmp r3, #0x0 + bxle lr + ldr r2, [r0, #0x0] + sub r1, r3, #0x1 + cmp r3, #0x0 + add r3, r2, r1, lsl #0x2 + bxle lr + add r2, r0, #0x4 +_02095064: + ldr r1, [r3], #-0x4 + cmp r1, #0x0 + bxne lr + ldr r1, [r2, #0x0] + sub r1, r1, #0x1 + str r1, [r2, #0x0] + ldr r1, [r0, #0x4] + cmp r1, #0x0 + bgt _02095064 + bx lr + + arm_func_start FUN_0209508C +FUN_0209508C: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r2, [r5, #0x4] + mov r4, r1 + cmp r2, r4 + addge sp, sp, #0x4 + ldmgeia sp!, {r4-r5,lr} + bxge lr + ldr r2, [r5, #0x8] + cmp r4, r2 + ble _020950C0 + bl FUN_02094EBC +_020950C0: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r2, [r5, #0x4] + cmp r2, r4 + addge sp, sp, #0x4 + ldmgeia sp!, {r4-r5,lr} + bxge lr + mov r1, #0x0 +_020950EC: + ldr r0, [r5, #0x0] + str r1, [r0, r2, lsl #0x2] + add r2, r2, #0x1 + cmp r2, r4 + blt _020950EC + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_0209510C +FUN_0209510C: + stmdb sp!, {r4,lr} + movs r4, r0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02095138 + ldr r1, [r4, #0x10] + ands r1, r1, #0x2 + bne _02095138 + bl FUN_0209105C +_02095138: + ldr r0, [r4, #0x10] + orr r0, r0, #0x8000 + str r0, [r4, #0x10] + ldr r0, [r4, #0x10] + ands r0, r0, #0x1 + ldmeqia sp!, {r4,lr} + bxeq lr + mov r0, r4 + bl FUN_0209105C + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_02095164 +FUN_02095164: ; 0x02095164 + stmdb sp!, {r4,lr} + movs r4, r0 + ldmeqia sp!, {r4,lr} + bxeq lr + bl FUN_02094DEC + mov r0, r4 + bl FUN_0209510C + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_02095188 +FUN_02095188: ; 0x02095188 + stmdb sp!, {r4,lr} + ldr r1, [r0, #0x4] + cmp r1, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r0, [r0, #0x0] + sub r4, r1, #0x1 + ldr r0, [r0, r4, lsl #0x2] + bl FUN_020951BC + add r0, r0, r4, lsl #0x5 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020951BC +FUN_020951BC: ; 0x020951BC + mov r1, #0x10000 + rsb r1, r1, #0x0 + ands r1, r0, r1 + beq _020951DC + ands r1, r0, #0xff000000 + movne r2, #0x18 + moveq r2, #0x10 + b _020951E8 +_020951DC: + ands r1, r0, #0xff00 + movne r2, #0x8 + moveq r2, #0x0 +_020951E8: + mov r1, r0, lsr r2 + ands r0, r1, #0xf0 + ldreq r0, _02095218 ; =0x020FF524 + ldreqsb r0, [r0, r1] + addeq r0, r0, r2 + bxeq lr + ldr r0, _02095218 ; =0x020FF524 + mov r1, r1, lsr #0x4 + ldrsb r0, [r0, r1] + add r0, r0, r2 + add r0, r0, #0x4 + bx lr + .balign 4 +_02095218: .word 0x020FF524 + + arm_func_start FUN_0209521C +FUN_0209521C: ; 0x0209521C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r3, #0x0 + strb r3, [r0, #0x0] + cmp r2, #0x10 + strb r3, [r0, #0x1] + movhi r2, #0x10 + add r0, r0, #0x4 +_0209523C: + strb r3, [r0, r3] + add r3, r3, #0x1 + cmp r3, #0x100 + blt _0209523C + mov r6, #0x0 + mov r7, r6 + mov r4, r6 + mov r3, r6 + and r12, r2, #0xff +_02095260: + ldrb r5, [r0, r4] + ldrb lr, [r1, r7] + add r2, r7, #0x1 + and r7, r2, #0xff + add r2, r5, lr + add r2, r6, r2 + and r6, r2, #0xff + ldrb r2, [r0, r6] + add lr, r0, r4 + add r4, r4, #0x1 + strb r2, [lr, #0x0] + cmp r7, r12 + moveq r7, r3 + cmp r4, #0x100 + strb r5, [r0, r6] + blt _02095260 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_020952AC +FUN_020952AC: ; 0x020952AC + stmdb sp!, {r4-r9,lr} + ldrb r7, [r0, #0x0] + ldrb r6, [r0, #0x1] + add r0, r0, #0x4 + mov lr, #0x1000000 + add r7, lr, r7, lsl #0x18 + mov r6, r6, lsl #0x18 + ldrb r9, [r0, r7, lsr #0x18] + subs r2, r2, #0x1 + bmi _0209530C +_020952D4: + add r6, r6, r9, lsl #0x18 + subs r2, r2, #0x1 + ldrb r8, [r0, r6, lsr #0x18] + ldrb r5, [r1], #0x1 + strb r8, [r0, r7, lsr #0x18] + strb r9, [r0, r6, lsr #0x18] + add r4, r9, r8 + and r4, r4, #0xff + add r7, r7, lr + ldrb r4, [r0, r4] + ldrb r9, [r0, r7, lsr #0x18] + eor r5, r5, r4 + strb r5, [r3], #0x1 + bge _020952D4 +_0209530C: + sub r7, r7, lr + mov r7, r7, lsr #0x18 + mov r6, r6, lsr #0x18 + strb r7, [r0, #-0x4] + strb r6, [r0, #-0x3] + ldmia sp!, {r4-r9,pc} +_02095324: ; 0x02095324 + ldr r0, _0209532C ; =0x021C8C84 + bx lr + .balign 4 +_0209532C: .word 0x021C8C84 + + arm_func_start FUN_02095330 +FUN_02095330: ; 0x02095330 + stmdb sp!, {r4,lr} + sub sp, sp, #0x8 + mov r4, r0 + ldr r3, [r4, #0x8] + ldr r2, [r4, #0xc] + ldr r1, _020953E4 ; =0x021C8C84 + str r2, [sp, #0x4] + str r3, [sp, #0x0] + mov r2, #0x5 + bl MI_CpuCopy8 + ldr r1, [sp, #0x0] + ldr r2, [r4, #0x4] + ldr r0, [sp, #0x4] + mov r2, r2, lsr #0x8 + mov r12, r1, lsr #0x5 + mov r3, r0, lsr #0x5 + orr r12, r12, r0, lsl #0x1b + and lr, r2, #0x7 + and r0, r1, #0x1f + orr lr, lr, r0, lsl #0x3 + ldr r2, _020953E4 ; =0x021C8C84 + ldr r1, _020953E8 ; =0x021C8C8A + strb lr, [r2, #0x5] + add r0, sp, #0x0 + str r12, [sp, #0x0] + str r3, [sp, #0x4] + mov r2, #0x4 + bl MI_CpuCopy8 + ldrh r0, [r4, #0x10] + ldr r1, [sp, #0x4] + ldr r3, _020953E4 ; =0x021C8C84 + and r1, r1, #0x3f + and r0, r0, #0x3 + orr r0, r1, r0, lsl #0x6 + strb r0, [r3, #0xa] + ldrh r2, [r4, #0x10] + add r0, r4, #0x12 + ldr r1, _020953EC ; =0x021C8C90 + mov r4, r2, asr #0x2 + mov r2, #0x2 + strb r4, [r3, #0xb] + bl MI_CpuCopy8 + ldr r0, _020953E4 ; =0x021C8C84 + add sp, sp, #0x8 + ldmia sp!, {r4,pc} + .balign 4 +_020953E4: .word 0x021C8C84 +_020953E8: .word 0x021C8C8A +_020953EC: .word 0x021C8C90 + + arm_func_start FUN_020953F0 +FUN_020953F0: ; 0x020953F0 + ldr r3, _02095420 ; =0x021C8C78 + and r12, r1, #0xff + ldr r0, _02095424 ; =0x021C8C7C + mov r1, #0x1 + strh r12, [r3, #0x0] + str r1, [r0, #0x0] + cmp r2, #0x0 + movne r0, #0xff + strneh r0, [r3, #0x0] + ldr r0, _02095420 ; =0x021C8C78 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 +_02095420: .word 0x021C8C78 +_02095424: .word 0x021C8C7C + + arm_func_start FUN_02095428 +FUN_02095428: + stmdb sp!, {r4-r6,lr} + mov r5, #0x4 + mov r4, #0x1 +_02095434: + mov r0, r5 + mov r1, r4 + bl PXI_IsCallbackReady +_02095440: ; 0x02095440 + cmp r0, #0x0 + beq _02095434 + ldr r1, _02095490 ; =FUN_020953F0 + mov r0, #0x4 + bl PXI_SetFifoRecvCallback + mov r4, #0x40000 + mov r6, #0x7 + mov r5, #0x0 +_02095460: + mov r0, r6 + mov r1, r5 + mov r2, r5 + mov r3, r5 + bl FUN_020955F4 + cmp r0, #0x1 + beq _02095488 + mov r0, r4 + blx SVC_WaitByLoop + b _02095460 +_02095488: + mov r0, #0x1 + ldmia sp!, {r4-r6,pc} + .balign 4 +_02095490: .word FUN_020953F0 + + arm_func_start FUN_02095494 +FUN_02095494: + stmdb sp!, {r4-r6,lr} + mov r5, r2 + mov r4, r3 + mov r6, r0 + mov r0, r1 + mov r1, r5 + mov r2, r4 + bl FUN_0209555C +_020954B4: ; 0x020954B4 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} +_020954C0: ; 0x020954C0 + mov r0, r6 + mov r1, r4 + mov r2, r5 + bl memcmp +_020954D0: ; 0x020954D0 + cmp r0, #0x0 + moveq r0, #0x1 + movne r0, #0x0 + ldmia sp!, {r4-r6,pc} + + arm_func_start FUN_020954E0 +FUN_020954E0: ; 0x020954E0 + stmdb sp!, {r4-r8,lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, #0x4 + mov r4, #0x1 +_020954F8: + mov r0, r5 + mov r1, r4 + bl PXI_IsCallbackReady +_02095504: ; 0x02095504 + cmp r0, #0x0 + beq _020954F8 + ldr r1, _02095558 ; =FUN_020953F0 + mov r0, #0x4 + bl PXI_SetFifoRecvCallback + mov r0, r6 + mov r1, r7 + bl DC_StoreRange + mov r4, #0x40000 + mov r5, #0x2 +_0209552C: + mov r0, r5 + mov r1, r8 + mov r2, r7 + mov r3, r6 + bl FUN_020955F4 + cmp r0, #0x1 + ldmeqia sp!, {r4-r8,pc} +_02095548: ; 0x02095548 + mov r0, r4 + blx SVC_WaitByLoop + b _0209552C +_02095554: ; 0x02095554 + ldmia sp!, {r4-r8,pc} + .balign 4 +_02095558: .word FUN_020953F0 + + arm_func_start FUN_0209555C +FUN_0209555C: + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r4, r2 + mov r6, r0 + mov r0, r4 + mov r5, r1 + bl DC_InvalidateRange + mov r8, #0x4 + mov r7, #0x1 +_02095580: + mov r0, r8 + mov r1, r7 + bl PXI_IsCallbackReady +_0209558C: ; 0x0209558C + cmp r0, #0x0 + beq _02095580 + ldr r1, _020955F0 ; =FUN_020953F0 + mov r0, #0x4 + bl PXI_SetFifoRecvCallback + mov r0, r5, lsl #0x10 + mov r8, r0, lsr #0x10 + mov r7, #0x40000 + mov r9, #0x1 +_020955B0: + mov r0, r9 + mov r1, r6 + mov r2, r8 + mov r3, r4 + bl FUN_020955F4 + cmp r0, #0x1 + beq _020955D8 + mov r0, r7 + blx SVC_WaitByLoop + b _020955B0 +_020955D8: + mov r0, r4 + mov r1, r5 + bl DC_InvalidateRange + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + .balign 4 +_020955F0: .word FUN_020953F0 + + arm_func_start FUN_020955F4 +FUN_020955F4: ; 0x020955F4 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc4 + ldr ip, _02095AAC ; =0x0000FFFF + ldr sl, _02095AB0 ; =0x021C8CA0 + and r8, r2, r12 + and r7, r1, r12 + mov r5, r1, lsr #0x10 + mov r4, r3, lsr #0x10 + and r1, r3, r12 + orr r3, r8, #0x30000 + str r3, [sp, #0xc] + ldr r3, _02095AB4 ; =0x01050000 + orr r2, r2, #0x20000 + orr r3, r1, r3 + str r3, [sp, #0x14] + orr r1, r1, #0x1040000 + mov r9, r0 + and r0, r5, #0xff + str r2, [sp, #0x1c] + str r1, [sp, #0x24] + ldr r1, _02095AB8 ; =0x02002200 + mov r8, #0x0 + orr r2, r4, #0x40000 + orr r1, r1, r10, lsr #0x18 + str r1, [sp, #0x28] + and r1, r12, r10, lsr #0x8 + orr r1, r1, #0x10000 + ldr r3, _02095ABC ; =0x02002300 + str r2, [sp, #0x10] + orr r2, r0, r3 + str r2, [sp, #0x8] + orr r2, r4, #0x30000 + str r2, [sp, #0x20] + ldr r2, _02095AC0 ; =0x02002500 + mov r6, r10, lsl #0x8 + str r1, [sp, #0x2c] + and r1, r6, #0xff00 + orr r0, r0, r2 + ldr r3, _02095AC4 ; =0x01020000 + str r0, [sp, #0x18] + orr r0, r1, r3 + str r0, [sp, #0x30] + mov r0, #0x20000 + str r0, [sp, #0x40] + mov r0, #0x5 + str r0, [sp, #0xac] + mov r0, #0x3 + str r0, [sp, #0xb0] + mov r0, #0x6 + str r0, [sp, #0xb8] + mov r0, #0x4000 + orr r7, r7, #0x10000 + str r8, [sp, #0xb4] + mov r4, #0x1 + str r8, [sp, #0xa8] + mov r5, #0x4 + str r8, [sp, #0xa4] + str r8, [sp, #0xa0] + str r8, [sp, #0x90] + str r8, [sp, #0x98] + str r8, [sp, #0x9c] + str r8, [sp, #0x94] + str r8, [sp, #0x8c] + str r8, [sp, #0x6c] + str r8, [sp, #0x74] + str r8, [sp, #0x7c] + str r8, [sp, #0x84] + str r8, [sp, #0x88] + str r8, [sp, #0x80] + str r8, [sp, #0x78] + str r8, [sp, #0x70] + str r8, [sp, #0x68] + str r8, [sp, #0x64] + str r8, [sp, #0x38] + str r8, [sp, #0x44] + str r8, [sp, #0x4c] + str r8, [sp, #0x54] + str r8, [sp, #0x5c] + str r8, [sp, #0x60] + str r8, [sp, #0x58] + str r8, [sp, #0x50] + str r8, [sp, #0x48] + str r8, [sp, #0x3c] + str r8, [sp, #0x34] + mov r6, r8 + str r0, [sp, #0xbc] +_0209574C: + cmp r8, #0x0 + bne _02095988 + ldr r0, _02095AC8 ; =0x021C8C7C + cmp r9, #0x7 + str r6, [r0, #0x0] + addls pc, pc, r9, lsl #0x2 + b _0209574C +_02095768: + b _0209574C +_0209576C: + b _02095788 +_02095770: + b _02095834 +_02095774: + b _02095854 +_02095778: + b _020958F0 +_0209577C: + b _020958F0 +_02095780: + b _02095948 +_02095784: + b _02095968 +_02095788: + ldr r1, [sp, #0x8] + mov r0, r5 + mov r2, r6 + bl PXI_SendWordByFifo +_02095798: ; 0x02095798 + cmp r0, #0x0 + ldrlt r8, [sp, #0x34] + blt _0209574C + ldr r2, [sp, #0x38] + mov r0, r5 + mov r1, r7 + bl PXI_SendWordByFifo +_020957B4: ; 0x020957B4 + cmp r0, #0x0 + ldrlt r8, [sp, #0x3c] + blt _0209574C + ldr r1, [sp, #0x40] + ldr r2, [sp, #0x44] + mov r0, r5 + bl PXI_SendWordByFifo +_020957D0: ; 0x020957D0 + cmp r0, #0x0 + ldrlt r8, [sp, #0x48] + blt _0209574C + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x4c] + mov r0, r5 + bl PXI_SendWordByFifo +_020957EC: ; 0x020957EC + cmp r0, #0x0 + ldrlt r8, [sp, #0x50] + blt _0209574C + ldr r1, [sp, #0x10] + ldr r2, [sp, #0x54] + mov r0, r5 + bl PXI_SendWordByFifo +_02095808: ; 0x02095808 + cmp r0, #0x0 + ldrlt r8, [sp, #0x58] + blt _0209574C + ldr r1, [sp, #0x14] + ldr r2, [sp, #0x5c] + mov r0, r5 + bl PXI_SendWordByFifo +_02095824: ; 0x02095824 + cmp r0, #0x0 + ldrlt r8, [sp, #0x60] + movge r8, r4 + b _0209574C +_02095834: + ldr r1, _02095ACC ; =0x03002000 + mov r0, r5 + mov r2, r6 + bl PXI_SendWordByFifo +_02095844: ; 0x02095844 + cmp r0, #0x0 + movge r8, r4 + ldrlt r8, [sp, #0x64] + b _0209574C +_02095854: + ldr r1, [sp, #0x18] + mov r0, r5 + mov r2, r6 + bl PXI_SendWordByFifo +_02095864: ; 0x02095864 + cmp r0, #0x0 + ldrlt r8, [sp, #0x68] + blt _020958E0 + ldr r2, [sp, #0x6c] + mov r0, r5 + mov r1, r7 + bl PXI_SendWordByFifo +_02095880: ; 0x02095880 + cmp r0, #0x0 + ldrlt r8, [sp, #0x70] + blt _020958E0 + ldr r1, [sp, #0x1c] + ldr r2, [sp, #0x74] + mov r0, r5 + bl PXI_SendWordByFifo +_0209589C: ; 0x0209589C + cmp r0, #0x0 + ldrlt r8, [sp, #0x78] + blt _020958E0 + ldr r1, [sp, #0x20] + ldr r2, [sp, #0x7c] + mov r0, r5 + bl PXI_SendWordByFifo +_020958B8: ; 0x020958B8 + cmp r0, #0x0 + ldrlt r8, [sp, #0x80] + blt _020958E0 + ldr r1, [sp, #0x24] + ldr r2, [sp, #0x84] + mov r0, r5 + bl PXI_SendWordByFifo +_020958D4: ; 0x020958D4 + cmp r0, #0x0 + ldrlt r8, [sp, #0x88] + movge r8, r4 +_020958E0: + bl OS_GetTick +_020958E4: ; 0x020958E4 + str r0, [sp, #0x0] + mov r11, r1 + b _0209574C +_020958F0: + ldr r1, [sp, #0x28] + mov r0, r5 + mov r2, r6 + bl PXI_SendWordByFifo +_02095900: ; 0x02095900 + cmp r0, #0x0 + ldrlt r8, [sp, #0x8c] + blt _0209574C + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x90] + mov r0, r5 + bl PXI_SendWordByFifo +_0209591C: ; 0x0209591C + cmp r0, #0x0 + ldrlt r8, [sp, #0x94] + blt _0209574C + ldr r1, [sp, #0x30] + ldr r2, [sp, #0x98] + mov r0, r5 + bl PXI_SendWordByFifo +_02095938: ; 0x02095938 + cmp r0, #0x0 + ldrlt r8, [sp, #0x9c] + movge r8, r4 + b _0209574C +_02095948: + ldr r1, _02095AD0 ; =0x03002D00 + mov r0, r5 + mov r2, r6 + bl PXI_SendWordByFifo +_02095958: ; 0x02095958 + cmp r0, #0x0 + movge r8, r4 + ldrlt r8, [sp, #0xa0] + b _0209574C +_02095968: + ldr r1, _02095AD4 ; =0x03002100 + mov r0, r5 + mov r2, r6 + bl PXI_SendWordByFifo +_02095978: ; 0x02095978 + cmp r0, #0x0 + movge r8, r4 + ldrlt r8, [sp, #0xa4] + b _0209574C +_02095988: + ldr r0, _02095AC8 ; =0x021C8C7C + ldr r0, [r0, #0x0] + cmp r0, #0x1 + bne _0209574C + ldr r0, _02095AD8 ; =0x021C8C78 + ldr r8, [sp, #0xa8] + ldrh r0, [r0, #0x0] + cmp r0, #0x0 + bne _02095AA0 + cmp r9, #0x7 + addls pc, pc, r9, lsl #0x2 + b _0209574C +_020959B8: ; 0x020959B8 + b _0209574C +_020959BC: ; 0x020959BC + b _020959D8 +_020959C0: ; 0x020959C0 + b _020959E4 +_020959C4: ; 0x020959C4 + b _020959EC +_020959C8: ; 0x020959C8 + b _020959F4 +_020959CC: ; 0x020959CC + b _020959F4 +_020959D0: ; 0x020959D0 + b _02095A88 +_020959D4: ; 0x020959D4 + b _02095A94 +_020959D8: + add sp, sp, #0xc4 + mov r0, #0x1 + ldmia sp!, {r4-r11,pc} +_020959E4: + mov r9, r5 + b _0209574C +_020959EC: + ldr r9, [sp, #0xac] + b _0209574C +_020959F4: + mov r0, r10 + mov r1, r4 + bl DC_InvalidateRange + cmp r9, #0x4 + bne _02095A24 + ldrb r0, [r10, #0x0] + ands r0, r0, #0x2 + ldrne r9, [sp, #0xb0] + bne _0209574C + add sp, sp, #0xc4 + mov r0, #0x0 + ldmia sp!, {r4-r11,pc} +_02095A24: + ldrb r1, [r10, #0x0] + ands r0, r1, #0x1 + addeq sp, sp, #0xc4 + moveq r0, #0x1 + ldmeqia sp!, {r4-r11,pc} +_02095A38: ; 0x02095A38 + ands r0, r1, #0x20 + bne _02095A74 + bl OS_GetTick + ldr r2, [sp, #0x0] + ldr r3, [sp, #0xb4] + subs r2, r0, r2 + sbc r0, r1, r11 + mov r1, r0, lsl #0x6 + orr r1, r1, r2, lsr #0x1a + mov r0, r2, lsl #0x6 + ldr r2, _02095ADC ; =0x000082EA + bl _ll_udiv +_02095A68: ; 0x02095A68 + cmp r1, #0x0 + cmpeq r0, #0xfa0 + bls _02095A7C +_02095A74: + ldr r9, [sp, #0xb8] + b _0209574C +_02095A7C: + ldr r0, [sp, #0xbc] + blx SVC_WaitByLoop + b _0209574C +_02095A88: + add sp, sp, #0xc4 + mov r0, r8 + ldmia sp!, {r4-r11,pc} +_02095A94: + add sp, sp, #0xc4 + mov r0, #0x1 + ldmia sp!, {r4-r11,pc} +_02095AA0: + mov r0, r8 + add sp, sp, #0xc4 + ldmia sp!, {r4-r11,pc} + .balign 4 +_02095AAC: .word 0x0000FFFF +_02095AB0: .word 0x021C8CA0 +_02095AB4: .word 0x01050000 +_02095AB8: .word 0x02002200 +_02095ABC: .word 0x02002300 +_02095AC0: .word 0x02002500 +_02095AC4: .word 0x01020000 +_02095AC8: .word 0x021C8C7C +_02095ACC: .word 0x03002000 +_02095AD0: .word 0x03002D00 +_02095AD4: .word 0x03002100 +_02095AD8: .word 0x021C8C78 +_02095ADC: .word 0x000082EA + + arm_func_start FUN_02095AE0 +FUN_02095AE0: + ldrb r0, [r0, #0x0] + cmp r0, #0x7f + moveq r0, #0x0 + bxeq lr + cmp r0, #0x1 + movcc r0, #0x0 + bxcc lr + cmp r0, #0xdf + movls r0, #0x1 + movhi r0, #0x0 + bx lr + + arm_func_start FUN_02095B0C +FUN_02095B0C: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0xc + mov r5, r0 + mov r4, r1 + bl FUN_02095AE0 +_02095B20: ; 0x02095B20 + cmp r0, #0x0 + addeq sp, sp, #0xc + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,pc} +_02095B30: ; 0x02095B30 + add r1, sp, #0x0 + mov r0, r5 + mov r2, #0x4 + bl MI_CpuCopy8 + add r1, sp, #0x4 + mov r0, r4 + mov r2, #0x4 + bl MI_CpuCopy8 + ldr r3, [sp, #0x4] + ldr r2, [sp, #0x0] + mvn r0, #0x1 + orr r1, r2, r3 + cmp r1, r0 + addeq sp, sp, #0xc + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,pc} +_02095B70: ; 0x02095B70 + mvn r0, r3 + ands r0, r2, r0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0xc + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_02095B88 +FUN_02095B88: + mov r2, #0x0 +_02095B8C: + ldrb r1, [r0, r2] + cmp r1, #0x0 + movne r0, #0x1 + bxne lr + add r2, r2, #0x1 + cmp r2, #0x20 + blt _02095B8C + mov r0, #0x0 + bx lr + + arm_func_start FUN_02095BB0 +FUN_02095BB0: ; 0x02095BB0 + mvn r2, #0x0 + mov r12, #0x0 + eor r3, r2, r2, lsr r0 + mov r2, r12 +_02095BC0: + rsb r0, r2, #0x18 + mov r0, r3, lsr r0 + strb r0, [r1, r12] + add r12, r12, #0x1 + cmp r12, #0x4 + add r2, r2, #0x8 + blt _02095BC0 + bx lr + + arm_func_start FUN_02095BE0 +FUN_02095BE0: ; 0x02095BE0 + stmdb sp!, {r4,lr} + mov lr, #0x0 + mov r4, lr + mov r2, lr +_02095BF0: + ldrb r3, [r0, lr] + mov r12, r2 +_02095BF8: + mov r1, r3, asr r12 + ands r1, r1, #0x1 + add r12, r12, #0x1 + addne r4, r4, #0x1 + cmp r12, #0x8 + blt _02095BF8 + add lr, lr, #0x1 + cmp lr, #0x4 + blt _02095BF0 + and r0, r4, #0xff + ldmia sp!, {r4,pc} + + arm_func_start FUN_02095C24 +FUN_02095C24: ; 0x02095C24 + ldr ip, _02095C34 ; =MI_CpuCopy8 + ldr r1, _02095C38 ; =0x021C8C84 + mov r2, #0xe + bx r12 + .balign 4 +_02095C34: .word MI_CpuCopy8 +_02095C38: .word 0x021C8C84 + + arm_func_start FUN_02095C3C +FUN_02095C3C: + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + ldr r1, _02095CD8 ; =0x021C8C80 + mov r10, r0 + ldr r8, [r1, #0x0] + mov r7, r10 + mov r9, #0x0 + add r4, r10, #0x400 + add r6, r10, #0x500 + mov r5, #0x100 + mov r11, #0xfe +_02095C68: + mov r0, r6 + mov r1, r7 + mov r2, r11 + bl MATH_CalcCRC16 + add r1, r10, r9, lsl #0x8 + strh r0, [r1, #0xfe] +_02095C80: + mov r0, r8 + mov r1, r5 + mov r2, r7 + bl FUN_020954E0 + mov r0, r7 + mov r1, r8 + mov r2, r5 + mov r3, r4 + bl FUN_02095494 +_02095CA4: ; 0x02095CA4 + cmp r0, #0x0 + beq _02095C80 + add r9, r9, #0x1 + cmp r9, #0x4 + add r7, r7, #0x100 + add r8, r8, #0x100 + blt _02095C68 + bl FUN_02095428 +_02095CC4: ; 0x02095CC4 + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + .balign 4 +_02095CD8: .word 0x021C8C80 + + arm_func_start FUN_02095CDC +FUN_02095CDC: ; 0x02095CDC + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + ldr r3, _02095D64 ; =0x021C8C80 + mov r4, r0 + ldr r6, [r3, #0x0] + mov r9, r1 + mov r8, r2 + mov r7, #0x0 + mov r5, #0x100 +_02095D00: + ldr r0, [r9, r7, lsl #0x2] + cmp r0, #0x0 + beq _02095D38 +_02095D0C: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_020954E0 + mov r0, r4 + mov r1, r6 + mov r2, r5 + mov r3, r8 + bl FUN_02095494 +_02095D30: ; 0x02095D30 + cmp r0, #0x0 + beq _02095D0C +_02095D38: + add r7, r7, #0x1 + cmp r7, #0x4 + add r4, r4, #0x100 + add r6, r6, #0x100 + blt _02095D00 + bl FUN_02095428 +_02095D50: ; 0x02095D50 + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + .balign 4 +_02095D64: .word 0x021C8C80 + + arm_func_start FUN_02095D68 +FUN_02095D68: + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _02095D98 ; =0x021C8C80 + mov r2, r0 + ldr r0, [r1, #0x0] + mov r1, #0x400 + bl FUN_0209555C +_02095D84: ; 0x02095D84 + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_02095D98: .word 0x021C8C80 + + arm_func_start FUN_02095D9C +FUN_02095D9C: + stmdb sp!, {r4,lr} + mov r4, r0 + mov r0, #0x20 + mov r1, r0 + mov r2, r4 + bl FUN_0209555C +_02095DB4: ; 0x02095DB4 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} +_02095DC0: ; 0x02095DC0 + ldrh r2, [r4, #0x0] + ldr r1, _02095DDC ; =0x021C8C80 + mov r0, #0x1 + mov r2, r2, lsl #0x3 + sub r2, r2, #0x400 + str r2, [r1, #0x0] + ldmia sp!, {r4,pc} + .balign 4 +_02095DDC: .word 0x021C8C80 + + arm_func_start FUN_02095DE0 +FUN_02095DE0: + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + ldr r2, _02095EBC ; =0x021C8C80 + mov r10, r1 + ldr r8, [r2, #0x0] + bl FUN_02095330 + ldr r1, _02095EC0 ; =0x0000A001 + add r0, r10, #0x200 + bl MATHi_CRC16InitTableRev + mov r9, #0x0 + add r4, r10, #0x100 + add r6, r10, #0xf0 + mov r7, #0x100 + mov r5, #0xe + mov r11, #0xfe +_02095E1C: + mov r0, r8 + mov r1, r7 + mov r2, r10 + bl FUN_0209555C +_02095E2C: ; 0x02095E2C + cmp r0, #0x0 + bne _02095E44 + bl OS_Terminate + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r11,pc} +_02095E44: + ldr r0, _02095EC4 ; =0x021C8C84 + mov r1, r6 + mov r2, r5 + bl MI_CpuCopy8 + mov r1, r10 + mov r2, r11 + add r0, r10, #0x200 + bl MATH_CalcCRC16 + strh r0, [r10, #0xfe] +_02095E68: + mov r0, r8 + mov r1, r7 + mov r2, r10 + bl FUN_020954E0 + mov r0, r10 + mov r1, r8 + mov r2, r7 + mov r3, r4 + bl FUN_02095494 +_02095E8C: ; 0x02095E8C + cmp r0, #0x0 + beq _02095E68 + add r9, r9, #0x1 + cmp r9, #0x2 + add r8, r8, #0x100 + blt _02095E1C + bl FUN_02095428 +_02095EA8: ; 0x02095EA8 + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + .balign 4 +_02095EBC: .word 0x021C8C80 +_02095EC0: .word 0x0000A001 +_02095EC4: .word 0x021C8C84 + + arm_func_start FUN_02095EC8 +FUN_02095EC8: + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, _02095F90 ; =0x021C8C84 + mov r1, r4 + mov r2, #0x6 + bl MI_CpuCopy8 + ldr r3, [r4, #0x0] + mvn r0, #0x0 + ldr r2, [r4, #0x4] + ldr r1, _02095F94 ; =0x000007FF + and r0, r3, r0 + str r0, [r4, #0x0] + and r1, r2, r1 + ldr r0, _02095F98 ; =0x021C8C89 + str r1, [r4, #0x4] + add r1, r4, #0x8 + mov r2, #0x6 + bl MI_CpuCopy8 + add r12, r4, #0x8 + ldr r1, [r4, #0x8] + ldr r0, [r12, #0x4] + mov r1, r1, lsr #0x3 + orr r1, r1, r0, lsl #0x1d + str r1, [r4, #0x8] + mov r0, r0, lsr #0x3 + str r0, [r12, #0x4] + ldr r3, [r4, #0x8] + mvn r0, #0x0 + ldr r2, [r12, #0x4] + ldr r1, _02095F94 ; =0x000007FF + and r0, r3, r0 + str r0, [r4, #0x8] + and r1, r2, r1 + ldr r0, _02095F9C ; =0x021C8C8E + str r1, [r12, #0x4] + add r1, r4, #0x10 + mov r2, #0x2 + bl MI_CpuCopy8 + ldrh r1, [r4, #0x10] + ldr r3, _02095FA0 ; =0x000003FF + ldr r0, _02095FA4 ; =0x021C8C90 + mov r1, r1, asr #0x6 + strh r1, [r4, #0x10] + ldrh r12, [r4, #0x10] + add r1, r4, #0x12 + mov r2, #0x2 + and r3, r12, r3 + strh r3, [r4, #0x10] + bl MI_CpuCopy8 + ldmia sp!, {r4,pc} + .balign 4 +_02095F90: .word 0x021C8C84 +_02095F94: .word 0x000007FF +_02095F98: .word 0x021C8C89 +_02095F9C: .word 0x021C8C8E +_02095FA0: .word 0x000003FF +_02095FA4: .word 0x021C8C90 + + arm_func_start FUN_02095FA8 +FUN_02095FA8: ; 0x02095FA8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _02095FD8 ; =0x021C8C80 + mov r2, r0 + ldr r0, [r1, #0x0] + mov r1, #0x300 + bl FUN_0209555C +_02095FC4: ; 0x02095FC4 + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_02095FD8: .word 0x021C8C80 + + arm_func_start FUN_02095FDC +FUN_02095FDC: ; 0x02095FDC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + add r1, r5, r4, lsl #0x8 + mov r0, #0x0 + mov r2, #0x100 + bl MIi_CpuClear16 + add r0, r5, r4, lsl #0x8 + mov r1, #0xff + strb r1, [r0, #0xe7] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_02096010 +FUN_02096010: ; 0x02096010 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x14 + mov r7, r0 + mov r1, r7 + mov r0, #0x0 + mov r2, #0x400 + bl MIi_CpuClear16 + mov r2, #0x0 + mov r1, #0xff +_02096034: + add r0, r7, r2, lsl #0x8 + add r2, r2, #0x1 + strb r1, [r0, #0xe7] + cmp r2, #0x3 + blt _02096034 + add r0, sp, #0x0 + bl FUN_020967A4 +_02096050: ; 0x02096050 + add r0, sp, #0x0 + bl FUN_02095330 + mov r6, r0 + mov r5, #0x0 + mov r4, #0xe +_02096064: + mov r0, r6 + mov r2, r4 + add r1, r7, #0xf0 + bl MI_CpuCopy8 + add r5, r5, #0x1 + cmp r5, #0x2 + add r7, r7, #0x100 + blt _02096064 + mov r0, #0x0 + add sp, sp, #0x14 + ldmia sp!, {r4-r7,pc} + + arm_func_start FUN_02096090 +FUN_02096090: + stmdb sp!, {r4,lr} + sub sp, sp, #0x8 + mov r4, r0 + ldrb r0, [r4, #0xe7] + cmp r0, #0xff + addeq sp, sp, #0x8 + moveq r0, #0x1 + ldmeqia sp!, {r4,pc} +_020960B0: ; 0x020960B0 + cmp r0, #0x2 + addhi sp, sp, #0x8 + movhi r0, #0x0 + ldmhiia sp!, {r4,pc} +_020960C0: ; 0x020960C0 + add r0, r4, #0x40 + bl FUN_02095B88 +_020960C8: ; 0x020960C8 + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} +_020960D8: ; 0x020960D8 + ldr r1, _0209618C ; =0x020FF574 + add r0, r4, #0xc0 + mov r2, #0x4 + bl memcmp +_020960E8: ; 0x020960E8 + cmp r0, #0x0 + beq _02096140 + add r0, r4, #0xc4 + bl FUN_02095AE0 +_020960F8: ; 0x020960F8 + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} +_02096108: ; 0x02096108 + ldrb r0, [r4, #0xd0] + cmp r0, #0x20 + addhi sp, sp, #0x8 + movhi r0, #0x0 + ldmhiia sp!, {r4,pc} +_0209611C: ; 0x0209611C + add r1, sp, #0x0 + bl FUN_02095BB0 + add r1, sp, #0x0 + add r0, r4, #0xc0 + bl FUN_02095B0C +_02096130: ; 0x02096130 + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} +_02096140: + ldr r1, _0209618C ; =0x020FF574 + add r0, r4, #0xc8 + mov r2, #0x4 + bl memcmp +_02096150: ; 0x02096150 + cmp r0, #0x0 + beq _02096180 + add r0, r4, #0xc8 + bl FUN_02095AE0 +_02096160: ; 0x02096160 + cmp r0, #0x0 + bne _02096180 + add r0, r4, #0xcc + bl FUN_02095AE0 +_02096170: ; 0x02096170 + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} +_02096180: + mov r0, #0x1 + add sp, sp, #0x8 + ldmia sp!, {r4,pc} + .balign 4 +_0209618C: .word 0x020FF574 + + arm_func_start FUN_02096190 +FUN_02096190: ; 0x02096190 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x14 + mov r10, r0 + mov r1, #0x0 + mov r2, #0x700 + bl MI_CpuFill8 + mov r0, r10 + bl FUN_02095D9C +_020961B0: ; 0x020961B0 + cmp r0, #0x0 + addeq sp, sp, #0x14 + ldreq r0, _020964B4 ; =0xFFFFD8EF + ldmeqia sp!, {r4-r11,pc} +_020961C0: ; 0x020961C0 + ldr r1, _020964B8 ; =0x0000A001 + add r0, r10, #0x500 + bl MATHi_CRC16InitTableRev + mov r0, r10 + bl FUN_02095D68 +_020961D4: ; 0x020961D4 + cmp r0, #0x0 + addeq sp, sp, #0x14 + ldreq r0, _020964B4 ; =0xFFFFD8EF + ldmeqia sp!, {r4-r11,pc} +_020961E4: ; 0x020961E4 + add r0, sp, #0x0 + mov r1, #0x0 + mov r2, #0x10 + bl MI_CpuFill8 + mov r8, r10 + mov r7, r10 + mov r9, #0x0 + add r11, sp, #0x0 + add r6, r10, #0x500 + mov r4, #0x1 + mov r5, #0xfe +_02096210: + mov r0, r6 + mov r1, r8 + mov r2, r5 + bl MATH_CalcCRC16 + add r1, r10, r9, lsl #0x8 + ldrh r1, [r1, #0xfe] + cmp r0, r1 + bne _02096240 + mov r0, r7 + bl FUN_02096090 +_02096238: ; 0x02096238 + cmp r0, #0x0 + strne r4, [r11, r9, lsl #0x2] +_02096240: + add r9, r9, #0x1 + cmp r9, #0x3 + add r8, r8, #0x100 + add r7, r7, #0x100 + blt _02096210 + add r0, r10, #0x500 + add r1, r10, #0x300 + mov r2, #0xfe + bl MATH_CalcCRC16 + add r1, r10, #0x300 + ldrh r1, [r1, #0xfe] + cmp r0, r1 + moveq r0, #0x1 + ldr r1, [sp, #0x0] + streq r0, [sp, #0xc] + cmp r1, #0x0 + beq _020962BC + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _020962BC + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _020962BC + ldr r0, [sp, #0xc] + cmp r0, #0x0 + beq _020962BC + add r0, r10, #0xf0 + bl FUN_02095C24 + add sp, sp, #0x14 + mov r0, #0x0 + ldmia sp!, {r4-r11,pc} +_020962BC: + cmp r1, #0x0 + bne _0209630C + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bne _0209630C + ldr r0, [sp, #0x8] + cmp r0, #0x0 + bne _0209630C + ldr r0, [sp, #0xc] + cmp r0, #0x0 + bne _0209630C + mov r0, r10 + bl FUN_02096010 + mov r0, r10 + bl FUN_02095C3C +_020962F8: ; 0x020962F8 + cmp r0, #0x0 + movne r0, #0x0 + add sp, sp, #0x14 + ldreq r0, _020964BC ; =0xFFFFD8F0 + ldmia sp!, {r4-r11,pc} +_0209630C: + cmp r1, #0x0 + beq _02096320 + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bne _0209635C +_02096320: + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _02096338 + ldr r0, [sp, #0xc] + cmp r0, #0x0 + bne _0209635C +_02096338: + mov r0, r10 + bl FUN_02096010 + mov r0, r10 + bl FUN_02095C3C +_02096348: ; 0x02096348 + cmp r0, #0x0 + movne r0, #0x0 + add sp, sp, #0x14 + ldreq r0, _020964BC ; =0xFFFFD8F0 + ldmia sp!, {r4-r11,pc} +_0209635C: + cmp r1, #0x0 + bne _02096394 + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bne _02096394 + mov r0, r10 + bl FUN_02096010 + mov r0, r10 + bl FUN_02095C3C +_02096380: ; 0x02096380 + cmp r0, #0x0 + ldrne r0, _020964C0 ; =0xFFFFD8ED + add sp, sp, #0x14 + ldreq r0, _020964BC ; =0xFFFFD8F0 + ldmia sp!, {r4-r11,pc} +_02096394: + cmp r1, #0x0 + bne _020963C4 + mov r0, r10 + mov r1, #0x0 + bl FUN_02095FDC + add r0, r10, #0x1f0 + add r1, r10, #0xf0 + mov r2, #0xe + bl MI_CpuCopy8 + ldrb r0, [r10, #0x1ef] + strb r0, [r10, #0xef] + b _020963F4 +_020963C4: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bne _020963F4 + mov r0, r10 + mov r1, #0x1 + bl FUN_02095FDC + add r0, r10, #0xf0 + add r1, r10, #0x1f0 + mov r2, #0xe + bl MI_CpuCopy8 + ldrb r0, [r10, #0xef] + strb r0, [r10, #0x1ef] +_020963F4: + add r0, r10, #0xf0 + bl FUN_02095C24 + ldr r0, [sp, #0x8] + cmp r0, #0x0 + bne _02096414 + mov r0, r10 + mov r1, #0x2 + bl FUN_02095FDC +_02096414: + ldr r0, [sp, #0xc] + cmp r0, #0x0 + bne _02096430 + add r1, r10, #0x300 + mov r0, #0x0 + mov r2, #0x100 + bl MIi_CpuClear16 +_02096430: + mov r4, #0x0 + mov r1, r4 + add r0, sp, #0x0 + add r5, r10, #0xef + mov r6, #0x1 +_02096444: + ldr r2, [r0, r1, lsl #0x2] + cmp r2, #0x0 + bne _0209647C + ldrb r2, [r10, #0xef] + mov r7, r6, lsl r1 + ands r2, r2, r7 + beq _0209647C + ldrb r3, [r5, #0x0] + mvn r2, r7 + mov r4, r6 + and r2, r3, r2 + strb r2, [r5, #0x0] + ldrb r2, [r10, #0xef] + strb r2, [r10, #0x1ef] +_0209647C: + add r1, r1, #0x1 + cmp r1, #0x3 + blt _02096444 + mov r0, r10 + bl FUN_02095C3C +_02096490: ; 0x02096490 + cmp r0, #0x0 + addeq sp, sp, #0x14 + ldreq r0, _020964BC ; =0xFFFFD8F0 + ldmeqia sp!, {r4-r11,pc} +_020964A0: ; 0x020964A0 + cmp r4, #0x0 + ldrne r0, _020964C4 ; =0xFFFFD8EE + moveq r0, #0x0 + add sp, sp, #0x14 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020964B4: .word 0xFFFFD8EF +_020964B8: .word 0x0000A001 +_020964BC: .word 0xFFFFD8F0 +_020964C0: .word 0xFFFFD8ED +_020964C4: .word 0xFFFFD8EE + + arm_func_start FUN_020964C8 +FUN_020964C8: + stmdb sp!, {lr} + sub sp, sp, #0x14 + add r0, sp, #0x0 + bl FUN_02095EC8 + ldr r2, [sp, #0x8] + ldr r1, [sp, #0xc] + mov r0, #0x0 + cmp r1, r0 + cmpeq r2, r0 + bne _0209650C + ldr r1, [sp, #0x4] + ldr r2, [sp, #0x0] + cmp r1, r0 + cmpeq r2, r0 + addeq sp, sp, #0x14 + moveq r0, #0x1 + ldmeqia sp!, {pc} +_0209650C: + mov r0, #0x0 + add sp, sp, #0x14 + ldmia sp!, {pc} + + arm_func_start FUN_02096518 +FUN_02096518: ; 0x02096518 + stmdb sp!, {r4,lr} + sub sp, sp, #0x18 + mov r4, r0 + add r0, sp, #0x0 + bl FUN_02095EC8 +_0209652C: ; 0x0209652C + add r0, sp, #0x0 + ldmia r0, {r2-r3} + stmia r4, {r2-r3} + add r1, sp, #0x8 + add r0, r4, #0x8 + ldmia r1, {r2-r3} + stmia r0, {r2-r3} + ldr r2, [sp, #0x0] + ldr r1, [sp, #0x4] + mov r0, #0x0 + cmp r1, r0 + cmpeq r2, r0 + streq r0, [r4, #0x10] + movne r0, #0x1 + strne r0, [r4, #0x10] + add sp, sp, #0x18 + ldmia sp!, {r4,pc} + + arm_func_start FUN_02096570 +FUN_02096570: ; 0x02096570 + stmdb sp!, {r4-r10,lr} + sub sp, sp, #0x28 + add r2, sp, #0x0 + mov r1, #0x0 + strb r1, [r2, #0x0] + strb r1, [r2, #0x1] + strb r1, [r2, #0x2] + strb r1, [r2, #0x3] + strb r1, [r2, #0x4] + mov r5, r0 + strb r1, [r2, #0x5] + bl FUN_02095EC8 + bl RTC_Init + add r0, sp, #0x8 + bl RTC_GetDate +_020965AC: ; 0x020965AC + cmp r0, #0x0 + addne sp, sp, #0x28 + movne r0, #0x0 + ldmneia sp!, {r4-r10,pc} +_020965BC: ; 0x020965BC + add r0, sp, #0x18 + bl RTC_GetTime +_020965C4: ; 0x020965C4 + cmp r0, #0x0 + addne sp, sp, #0x28 + movne r0, #0x0 + ldmneia sp!, {r4-r10,pc} +_020965D4: ; 0x020965D4 + add r0, sp, #0x8 + add r1, sp, #0x18 + bl RTC_ConvertDateTimeToSecond + mov r4, r0 + mov r0, #0x0 + subs r2, r4, r0 + sbcs r2, r1, r0 + addlt sp, sp, #0x28 + ldmltia sp!, {r4-r10,pc} +_020965F8: ; 0x020965F8 + bl OS_IsTickAvailable +_020965FC: ; 0x020965FC + cmp r0, #0x0 + beq _0209660C + ldr r0, _02096700 ; =OS_GetTick + adds r4, r4, r0 +_0209660C: + add r0, sp, #0x0 + bl OS_GetMacAddress + ldrb r1, [sp, #0x0] + ldr r6, _02096704 ; =0x5D588B65 + ldr r7, _02096708 ; =0x00269EC3 + ldrb r0, [sp, #0x1] + mla r9, r4, r6, r7 + mov r1, r1, lsl #0x10 + orr r1, r1, r0, lsl #0x8 + ldrb r2, [sp, #0x2] + ldr r0, _0209670C ; =0x000009BF + ldrb r8, [sp, #0x3] + orr r1, r2, r1 + cmp r1, r0 + movne r1, #0x1 + mov r2, r9, lsr #0x10 + mov r0, #0x3e8 + mul r3, r2, r0 + mov r2, r3, lsr #0x10 + mov r3, r8, lsl #0x10 + ldrb r4, [sp, #0x4] + ldrb r0, [sp, #0x5] + mov r8, #0x0 + orr r10, r3, r4, lsl #0x8 + strh r2, [r5, #0x10] + str r8, [r5, #0x8] + str r8, [r5, #0xc] + moveq r1, #0x0 + ldr r2, [r5, #0xc] + ldr r3, [r5, #0x8] + cmp r2, r8 + cmpeq r3, r8 + and r4, r1, #0xff + orr r10, r0, r10 + bne _020966F4 +_02096698: + mla r9, r6, r9, r7 + b _020966A4 +_020966A0: + mla r9, r6, r9, r7 +_020966A4: + cmp r9, #0x0 + beq _020966A0 + ldrh r1, [r5, #0x12] + mov r0, r9, lsl #0x10 + mov r0, r0, lsr #0x10 + cmp r1, r0 + beq _020966A0 + strh r0, [r5, #0x12] + ldrh r0, [r5, #0x12] + mov r1, r10 + mov r2, r4 + mov r3, r8 + bl FUN_02096988 + str r0, [r5, #0x8] + str r1, [r5, #0xc] + ldr r0, [r5, #0xc] + ldr r1, [r5, #0x8] + cmp r0, r8 + cmpeq r1, r8 + beq _02096698 +_020966F4: + mov r0, #0x1 + add sp, sp, #0x28 + ldmia sp!, {r4-r10,pc} + .balign 4 +_02096700: .word OS_GetTick +_02096704: .word 0x5D588B65 +_02096708: .word 0x00269EC3 +_0209670C: .word 0x000009BF + + arm_func_start FUN_02096710 +FUN_02096710: ; 0x02096710 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x14 + mov r5, r0 + add r0, sp, #0x0 + mov r4, r1 + bl FUN_02095EC8 + add r12, r5, #0x8 + ldmia r12, {r2-r3} + stmia r5, {r2-r3} + add r1, sp, #0x8 + ldmia r1, {r2-r3} + mov r0, r5 + mov r1, r4 + stmia r12, {r2-r3} + bl FUN_02095DE0 +_0209674C: ; 0x0209674C + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x14 + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_02096760 +FUN_02096760: ; 0x02096760 + stmdb sp!, {r4,lr} + sub sp, sp, #0x18 + mov r4, r0 + add r0, sp, #0x0 + bl FUN_020967A4 +_02096774: ; 0x02096774 + cmp r0, #0x0 + addeq sp, sp, #0x18 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} +_02096784: ; 0x02096784 + add r0, sp, #0x0 + mov r1, r4 + bl FUN_02095DE0 +_02096790: ; 0x02096790 + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x18 + ldmia sp!, {r4,pc} + + arm_func_start FUN_020967A4 +FUN_020967A4: + stmdb sp!, {r4-r10,lr} + sub sp, sp, #0x28 + mov r8, r0 + bl FUN_02095EC8 + bl RTC_Init + add r0, sp, #0x8 + bl RTC_GetDate +_020967C0: ; 0x020967C0 + cmp r0, #0x0 + addne sp, sp, #0x28 + movne r0, #0x0 + ldmneia sp!, {r4-r10,pc} +_020967D0: ; 0x020967D0 + add r0, sp, #0x18 + bl RTC_GetTime +_020967D8: ; 0x020967D8 + cmp r0, #0x0 + addne sp, sp, #0x28 + movne r0, #0x0 + ldmneia sp!, {r4-r10,pc} +_020967E8: ; 0x020967E8 + add r0, sp, #0x8 + add r1, sp, #0x18 + bl RTC_ConvertDateTimeToSecond + mov r4, r0 + mov r0, #0x0 + subs r2, r4, r0 + sbcs r2, r1, r0 + addlt sp, sp, #0x28 + ldmltia sp!, {r4-r10,pc} +_0209680C: ; 0x0209680C + bl OS_IsTickAvailable +_02096810: ; 0x02096810 + cmp r0, #0x0 + beq _02096820 + ldr r0, _02096978 ; =OS_GetTick + adds r4, r4, r0 +_02096820: + add r0, sp, #0x0 + bl OS_GetMacAddress + ldrb r1, [sp, #0x0] + ldr sb, _0209697C ; =0x5D588B65 + ldr sl, _02096980 ; =0x00269EC3 + ldrb r0, [sp, #0x1] + mla r5, r4, r9, r10 + mov r1, r1, lsl #0x10 + orr r1, r1, r0, lsl #0x8 + ldrb r2, [sp, #0x2] + ldr r0, _02096984 ; =0x000009BF + ldrb r6, [sp, #0x3] + orr r1, r2, r1 + cmp r1, r0 + movne r1, #0x1 + moveq r1, #0x0 + mov r2, r5, lsr #0x10 + mov r0, #0x3e8 + mul r3, r2, r0 + mov r2, r3, lsr #0x10 + ldrb r0, [sp, #0x5] + ldrb r4, [sp, #0x4] + mov r3, r6, lsl #0x10 + and r7, r1, #0xff + orr r3, r3, r4, lsl #0x8 + strh r2, [r8, #0x10] + mov r4, #0x0 + str r4, [r8, #0x0] + str r4, [r8, #0x4] + ldrh r2, [r8, #0x12] + orr r6, r0, r3 + cmp r2, #0x0 + bne _02096910 + str r4, [r8, #0x8] + str r4, [r8, #0xc] + ldr r0, [r8, #0xc] + ldr r1, [r8, #0x8] + cmp r0, r4 + cmpeq r1, r4 + bne _0209696C +_020968C0: + mul r0, r5, r9 + adds r5, r0, r10 + bne _020968D8 +_020968CC: + mul r0, r5, r9 + adds r5, r0, r10 + beq _020968CC +_020968D8: + strh r5, [r8, #0x12] + ldrh r0, [r8, #0x12] + mov r1, r6 + mov r2, r7 + mov r3, r4 + bl FUN_02096988 + str r0, [r8, #0x8] + str r1, [r8, #0xc] + ldr r0, [r8, #0xc] + ldr r1, [r8, #0x8] + cmp r0, r4 + cmpeq r1, #0x0 + beq _020968C0 + b _0209696C +_02096910: + str r4, [r8, #0x8] + str r4, [r8, #0xc] + ldr r0, [r8, #0xc] + ldr r1, [r8, #0x8] + cmp r0, r4 + cmpeq r1, r4 + bne _0209696C + add r5, r8, #0x12 +_02096930: + ldrh r0, [r5, #0x0] + mov r1, r6 + mov r2, r7 + add r0, r0, #0x1 + strh r0, [r5, #0x0] + ldrh r0, [r8, #0x12] + mov r3, r4 + bl FUN_02096988 + str r0, [r8, #0x8] + str r1, [r8, #0xc] + ldr r0, [r8, #0xc] + ldr r1, [r8, #0x8] + cmp r0, r4 + cmpeq r1, r4 + beq _02096930 +_0209696C: + mov r0, #0x1 + add sp, sp, #0x28 + ldmia sp!, {r4-r10,pc} + .balign 4 +_02096978: .word OS_GetTick +_0209697C: .word 0x5D588B65 +_02096980: .word 0x00269EC3 +_02096984: .word 0x000009BF + + arm_func_start FUN_02096988 +FUN_02096988: ; 0x02096988 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x14 + mov lr, #0x0 + and r12, lr, #0x0 + mvn r5, #0xff000000 + ldr r4, _02096B08 ; =0x0000FFFF + and r2, r2, #0x1 + mov r6, r12, lsl #0x2 + and r3, r3, #0x3 + and r5, r1, r5 + orr r1, r3, r2, lsl #0x2 + orr r6, r6, r2, lsr #0x1e + mov r7, r12, lsl #0x3 + and r2, r0, r4 + orr r0, r1, r5, lsl #0x3 + orr r1, r0, r2, lsl #0x1b + mov r3, r12, lsl #0x1b + orr r3, r3, r2, lsr #0x5 + orr r7, r7, r5, lsr #0x1d + orr r0, r12, r6 + orr r0, r7, r0 + orr r0, r3, r0 + add r2, sp, #0x0 + str r1, [sp, #0x0] + str r0, [sp, #0x4] +_020969EC: + ldrb r0, [r2, #0x0] + add lr, lr, #0x1 + cmp lr, #0x6 + eor r0, r0, #0xd6 + strb r0, [r2], #0x1 + blt _020969EC + ldr r2, _02096B0C ; =0x020FF580 + add r5, sp, #0x0 + mov r4, #0x0 +_02096A10: + ldrb r3, [r5, #0x0] + add r4, r4, #0x1 + cmp r4, #0x5 + mov r0, r3, asr #0x4 + and r1, r0, #0xf + and r0, r3, #0xf + ldrb r1, [r2, r1] + ldrb r0, [r2, r0] + orr r0, r0, r1, lsl #0x4 + strb r0, [r5], #0x1 + blt _02096A10 + add r0, sp, #0x0 + add r1, sp, #0x8 + mov r2, #0x8 + bl MI_CpuCopy8 + ldr r4, _02096B10 ; =0x020FF578 + add r5, sp, #0x8 + mov r3, #0x0 + add r1, sp, #0x0 +_02096A5C: + ldrb r2, [r5, #0x0] + ldrb r0, [r4, #0x0] + add r3, r3, #0x1 + cmp r3, #0x5 + strb r2, [r1, r0] + add r5, r5, #0x1 + add r4, r4, #0x1 + blt _02096A5C + ldrb r2, [sp, #0x5] + mov r0, #0x0 + ldr r3, [sp, #0x0] + and r2, r2, #0x7 + strb r0, [sp, #0x7] + strb r0, [sp, #0x6] + strb r2, [sp, #0x5] + ldr r2, [sp, #0x4] + mov r4, r3, lsl #0x1 + mov r2, r2, lsl #0x1 + orr r2, r2, r3, lsr #0x1f + str r2, [sp, #0x4] + ldrb r2, [sp, #0x5] + str r4, [sp, #0x0] + ldrb r3, [sp, #0x0] + mov r2, r2, asr #0x3 + and r2, r2, #0x1 + orr r2, r3, r2 + strb r2, [sp, #0x0] +_02096AC8: + ldrb r2, [r1, #0x0] + add r0, r0, #0x1 + cmp r0, #0x6 + eor r2, r2, #0x67 + strb r2, [r1], #0x1 + blt _02096AC8 + ldrb r0, [sp, #0x5] + mov r1, #0x0 + strb r1, [sp, #0x7] + and r0, r0, #0x7 + strb r1, [sp, #0x6] + strb r0, [sp, #0x5] + ldr r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add sp, sp, #0x14 + ldmia sp!, {r4-r7,pc} + .balign 4 +_02096B08: .word 0x0000FFFF +_02096B0C: .word 0x020FF580 +_02096B10: .word 0x020FF578 + + arm_func_start FUN_02096B14 +FUN_02096B14: ; 0x02096B14 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldr r0, _02096B74 ; =0x02000B8C + mov r4, #0x0 + bl OSi_ReferSymbol + mov r0, r6 + bl FUN_02096190 + mov r5, r0 + bl FUN_020964C8 +_02096B38: ; 0x02096B38 + cmp r0, #0x0 + beq _02096B4C + mov r0, r6 + bl FUN_02096760 + mov r4, #0x1 +_02096B4C: + cmp r5, #0x0 + bge _02096B64 + cmp r4, #0x0 + movne r0, #0x2 + moveq r0, #0x3 + ldmia sp!, {r4-r6,pc} +_02096B64: + cmp r4, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + ldmia sp!, {r4-r6,pc} + .balign 4 +_02096B74: .word 0x02000B8C + + arm_func_start FUN_02096B78 +FUN_02096B78: ; 0x02096B78 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r7, r0 + bl FUN_020974C8 + mov r5, r0 + mov r0, r4 + bl FUN_020974C8 +_02096B98: ; 0x02096B98 + cmp r5, r0 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {r4-r7,pc} +_02096BA8: ; 0x02096BA8 + cmp r5, #0x3 + bne _02096BD8 + mov r0, r7 + bl FUN_02097544 + mov r5, r0 + mov r0, r4 + bl FUN_02097544 +_02096BC4: ; 0x02096BC4 + cmp r5, r0 + moveq r0, #0x1 + add sp, sp, #0x4 + movne r0, #0x0 + ldmia sp!, {r4-r7,pc} +_02096BD8: + cmp r5, #0x1 + bne _02096C34 + mov r0, r7 + bl FUN_02097568 + mov r5, r0 + mov r6, r1 + mov r0, r4 + bl FUN_02097568 + cmp r6, r1 + cmpeq r5, r0 + bne _02096C28 + mov r0, r7 + bl FUN_02097560 + mov r5, r0 + mov r0, r4 + bl FUN_02097560 +_02096C18: ; 0x02096C18 + cmp r5, r0 + addeq sp, sp, #0x4 + moveq r0, #0x1 + ldmeqia sp!, {r4-r7,pc} +_02096C28: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,pc} +_02096C34: + cmp r5, #0x2 + bne _02096C6C + mov r0, r7 + bl FUN_0209754C + mov r5, r0 + mov r6, r1 + mov r0, r4 + bl FUN_0209754C + cmp r6, r1 + cmpeq r5, r0 + moveq r0, #0x1 + add sp, sp, #0x4 + movne r0, #0x0 + ldmia sp!, {r4-r7,pc} +_02096C6C: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + + arm_func_start FUN_02096C78 +FUN_02096C78: ; 0x02096C78 + ldr ip, _02096C8C ; =FUN_02097218 + mov r3, r0 + mov r0, r1 + ldr r1, [r3, #0x24] + bx r12 + .balign 4 +_02096C8C: .word FUN_02097218 + + arm_func_start FUN_02096C90 +FUN_02096C90: ; 0x02096C90 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r5, r0 + mov r1, #0x0 + mov r2, #0xc + bl MI_CpuFill8 + mov r0, r5 + mov r1, r4 + bl FUN_020974F4 + mov r0, r5 + mov r1, #0x3 + bl FUN_02097440 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_02096CCC +FUN_02096CCC: ; 0x02096CCC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r5, r0 + mov r0, r4 + mov r1, #0x0 + mov r2, #0xc + bl MI_CpuFill8 + mov r0, r5 + bl FUN_0209702C +_02096CF4: ; 0x02096CF4 + cmp r0, #0x0 + addeq r0, r5, #0x4 + ldmeqia r0, {r0-r2} + addeq sp, sp, #0x4 + stmeqia r4, {r0-r2} + ldmeqia sp!, {r4-r5,pc} +_02096D0C: ; 0x02096D0C + ldr r1, [r5, #0x1c] + mov r0, r4 + bl FUN_020974F4 + mov r0, r4 + mov r1, #0x3 + bl FUN_02097440 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_02096D2C +FUN_02096D2C: ; 0x02096D2C + stmdb sp!, {r4-r6,lr} + mov r5, r1 + mov r4, r2 + mov r6, r0 + mov r1, #0x0 + mov r2, #0xc + bl MI_CpuFill8 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_020974FC + mov r0, r6 + mov r1, #0x2 + bl FUN_02097440 + ldmia sp!, {r4-r6,pc} + + arm_func_start FUN_02096D68 +FUN_02096D68: ; 0x02096D68 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r3, r0 + ldr r0, [r3, #0x1c] + mov r2, #0x0 + mov r1, r2 + cmp r0, #0x0 + beq _02096D94 + ldr r1, [r3, #0x24] + bl FUN_020973D0 + mov r2, r0 +_02096D94: + mov r0, r2 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_02096DA0 +FUN_02096DA0: ; 0x02096DA0 + stmdb sp!, {r4-r6,lr} + mov r4, r1 + mov r6, r0 + mov r0, r4 + bl FUN_020974C8 + cmp r0, #0x1 + beq _02096E14 + cmp r0, #0x2 + beq _02096DD0 + cmp r0, #0x3 + beq _02096E08 + b _02096E1C +_02096DD0: + mov r0, r4 + bl FUN_0209754C + ldr r2, [r6, #0x24] + mov r4, r0 + mov r5, r1 + bl FUN_02097344 +_02096DE8: ; 0x02096DE8 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} +_02096DF4: ; 0x02096DF4 + ldr r2, [r6, #0x24] + mov r0, r4 + mov r1, r5 + bl FUN_02097324 + ldmia sp!, {r4-r6,pc} +_02096E08: + mov r0, r4 + bl FUN_02097544 + ldmia sp!, {r4-r6,pc} +_02096E14: + mvn r0, #0x0 + ldmia sp!, {r4-r6,pc} +_02096E1C: + mov r0, #0x0 + ldmia sp!, {r4-r6,pc} + + arm_func_start FUN_02096E24 +FUN_02096E24: ; 0x02096E24 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020974C8 + cmp r0, #0x2 + movne r0, #0x0 + movne r1, r0 + ldmneia sp!, {r4,pc} +_02096E40: ; 0x02096E40 + mov r0, r4 + bl FUN_0209754C + ldmia sp!, {r4,pc} + + arm_func_start FUN_02096E4C +FUN_02096E4C: ; 0x02096E4C + stmdb sp!, {r4,lr} + sub sp, sp, #0x400 + mov r4, r0 + ldr r1, [r4, #0x20] + add r0, sp, #0x0 + bic r2, r1, #0x1 + ldr r1, _02096E8C ; =0xEDB88320 + str r2, [r4, #0x20] + bl MATHi_CRC32InitTableRev +_02096E70: ; 0x02096E70 + add r0, sp, #0x0 + mov r1, r4 + mov r2, #0x3c + bl MATH_CalcCRC32 + str r0, [r4, #0x3c] + add sp, sp, #0x400 + ldmia sp!, {r4,pc} + .balign 4 +_02096E8C: .word 0xEDB88320 + + arm_func_start thunk_FUN_02096e4c +thunk_FUN_02096e4c: ; 0x02096E90 + ldr ip, _02096E98 ; =FUN_02096E4C + bx r12 + .balign 4 +_02096E98: .word FUN_02096E4C + + arm_func_start FUN_02096E9C +FUN_02096E9C: ; 0x02096E9C + ldr r0, [r0, #0x20] + and r0, r0, #0x1 + cmp r0, #0x1 + moveq r0, #0x1 + movne r0, #0x0 + bx lr + + arm_func_start FUN_02096EB4 +FUN_02096EB4: ; 0x02096EB4 + ldr ip, _02096EBC ; =FUN_02096E9C + bx r12 + .balign 4 +_02096EBC: .word FUN_02096E9C + + arm_func_start FUN_02096EC0 +FUN_02096EC0: ; 0x02096EC0 + stmdb sp!, {r4,lr} + sub sp, sp, #0x400 + mov r4, r0 + add r3, r4, #0x10 + mov r12, r2 + ldmia r1, {r0-r2} + stmia r3, {r0-r2} + ldr r1, _02096F14 ; =0xEDB88320 + add r0, sp, #0x0 + str r12, [r4, #0x1c] + bl MATHi_CRC32InitTableRev +_02096EEC: ; 0x02096EEC + add r0, sp, #0x0 + mov r1, r4 + mov r2, #0x3c + bl MATH_CalcCRC32 + str r0, [r4, #0x3c] + ldr r0, [r4, #0x20] + orr r0, r0, #0x1 + str r0, [r4, #0x20] + add sp, sp, #0x400 + ldmia sp!, {r4,pc} + .balign 4 +_02096F14: .word 0xEDB88320 + + arm_func_start FUN_02096F18 +FUN_02096F18: ; 0x02096F18 + stmdb sp!, {r4,lr} + sub sp, sp, #0x18 + mov r4, r0 + add r0, r4, #0x10 + bl FUN_020974C8 +_02096F2C: ; 0x02096F2C + cmp r0, #0x0 + addeq sp, sp, #0x18 + moveq r0, #0x1 + ldmeqia sp!, {r4,pc} +_02096F3C: ; 0x02096F3C + add r0, sp, #0x0 + bl FUN_02096518 + ldr r0, [sp, #0x10] + cmp r0, #0x0 + addeq sp, sp, #0x18 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} +_02096F58: ; 0x02096F58 + add r0, r4, #0x10 + bl FUN_02097568 + ldr r2, [sp, #0x4] + ldr r3, [sp, #0x0] + cmp r2, r1 + cmpeq r3, r0 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x18 + ldmia sp!, {r4,pc} + + arm_func_start FUN_02096F80 +FUN_02096F80: ; 0x02096F80 + stmdb sp!, {r4,lr} + mov r4, r0 + add r0, r4, #0x10 + bl FUN_0209703C +_02096F90: ; 0x02096F90 + cmp r0, #0x0 + beq _02096FA8 + ldr r0, [r4, #0x1c] + cmp r0, #0x0 + movgt r0, #0x1 + ldmgtia sp!, {r4,pc} +_02096FA8: + mov r0, #0x0 + ldmia sp!, {r4,pc} + + arm_func_start FUN_02096FB0 +FUN_02096FB0: ; 0x02096FB0 + stmdb sp!, {r4,lr} + sub sp, sp, #0x400 + ldr r1, _02096FF0 ; =0xEDB88320 + mov r4, r0 + add r0, sp, #0x0 + bl MATHi_CRC32InitTableRev +_02096FC8: ; 0x02096FC8 + add r0, sp, #0x0 + mov r1, r4 + mov r2, #0x3c + bl MATH_CalcCRC32 + ldr r1, [r4, #0x3c] + cmp r0, r1 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x400 + ldmia sp!, {r4,pc} + .balign 4 +_02096FF0: .word 0xEDB88320 + + arm_func_start thunk_FUN_02097190 +thunk_FUN_02097190: ; 0x02096FF4 + ldr ip, _02096FFC ; =FUN_02097190 + bx r12 + .balign 4 +_02096FFC: .word FUN_02097190 + + arm_func_start FUN_02097000 +FUN_02097000: ; 0x02097000 + ldr ip, _02097008 ; =FUN_0209700C + bx r12 + .balign 4 +_02097008: .word FUN_0209700C + + arm_func_start FUN_0209700C +FUN_0209700C: ; 0x0209700C + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_020974C8 +_02097018: ; 0x02097018 + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_0209702C +FUN_0209702C: + ldr ip, _02097038 ; =FUN_0209703C + add r0, r0, #0x10 + bx r12 + .balign 4 +_02097038: .word FUN_0209703C + + arm_func_start FUN_0209703C +FUN_0209703C: + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_020974C8 + cmp r0, #0x1 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_0209705C +FUN_0209705C: ; 0x0209705C + stmdb sp!, {r4,lr} + sub sp, sp, #0x18 + mov r4, r0 + add r0, sp, #0x0 + bl FUN_02096518 + ldr r0, [sp, #0x10] + cmp r0, #0x0 + beq _020970A4 + mov r0, r4 + bl FUN_02097568 + ldr r2, [sp, #0x4] + ldr r3, [sp, #0x0] + cmp r2, r1 + cmpeq r3, r0 + moveq r0, #0x1 + add sp, sp, #0x18 + movne r0, #0x0 + ldmia sp!, {r4,pc} +_020970A4: + mov r0, r4 + bl FUN_02097568 + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x8] + cmp r2, r1 + cmpeq r3, r0 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x18 + ldmia sp!, {r4,pc} + + arm_func_start FUN_020970CC +FUN_020970CC: ; 0x020970CC + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x38 + mov r6, r0 + add r0, sp, #0x14 + bl OS_GetLowEntropyData + mov r3, #0x1 + add r2, sp, #0x14 +_020970E8: + add r0, r2, r3, lsl #0x2 + ldr r1, [r2, r3, lsl #0x2] + ldr r0, [r0, #-0x4] + eor r0, r1, r0 + str r0, [r2, r3, lsl #0x2] + add r3, r3, #0x1 + cmp r3, #0x8 + blo _020970E8 + add r0, sp, #0x0 + ldr r5, [sp, #0x30] + mov r4, #0x0 + bl FUN_02096518 + ldr r0, [sp, #0x10] + cmp r0, #0x0 + beq _02097138 + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x4] + mov r0, r6 + bl FUN_02097510 + b _02097148 +_02097138: + ldr r1, [sp, #0x8] + ldr r2, [sp, #0xc] + mov r0, r6 + bl FUN_02097510 +_02097148: + ldr r0, _02097184 ; =0x6C078965 + ldr r1, _02097188 ; =0x5D588B65 + umull r3, r2, r5, r0 + mla r2, r5, r1, r2 + ldr r1, _0209718C ; =0x00269EC3 + mla r2, r4, r0, r2 + adds r0, r3, r1 + mov r0, r6 + adc r1, r2, #0x0 + bl FUN_02097508 + mov r0, r6 + mov r1, #0x1 + bl FUN_02097440 + add sp, sp, #0x38 + ldmia sp!, {r4-r6,pc} + .balign 4 +_02097184: .word 0x6C078965 +_02097188: .word 0x5D588B65 +_0209718C: .word 0x00269EC3 + + arm_func_start FUN_02097190 +FUN_02097190: ; 0x02097190 + stmdb sp!, {r4-r5,lr} + ldr ip, _02097210 ; =0x00000404 + sub sp, sp, r12 + mov r4, r1 + mov r1, #0x0 + mov r2, #0x40 + mov r5, r0 + bl MI_CpuFill8 + mov r0, #0x40 + str r0, [r5, #0x0] + mov r0, #0x0 + str r0, [r5, #0x1c] + add r0, r5, #0x4 + str r4, [r5, #0x24] + bl FUN_020970CC + add r0, r5, #0x10 + mov r1, #0x0 + bl FUN_02097440 + ldr r1, _02097214 ; =0xEDB88320 + add r0, sp, #0x0 + bl MATHi_CRC32InitTableRev +_020971E4: ; 0x020971E4 + add r0, sp, #0x0 + mov r1, r5 + mov r2, #0x3c + bl MATH_CalcCRC32 + str r0, [r5, #0x3c] + ldr r0, [r5, #0x20] + orr r0, r0, #0x1 + str r0, [r5, #0x20] + ldr ip, _02097210 ; =0x00000404 + add sp, sp, r12 + ldmia sp!, {r4-r5,pc} + .balign 4 +_02097210: .word 0x00000404 +_02097214: .word 0xEDB88320 + + arm_func_start FUN_02097218 +FUN_02097218: ; 0x02097218 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x40 + mov r6, r0 + mov r4, r1 + mov r5, r2 + bl FUN_02097568 + add r3, sp, #0x14 + mov r2, #0x2b + bl FUN_020972A8 + mov r0, r6 + bl FUN_02097560 + mov r1, #0x0 + mov r2, #0x20 + add r3, sp, #0x29 + bl FUN_020972A8 + mov r1, r4, lsr #0x18 + and r1, r1, #0xff + str r1, [sp, #0x0] + mov r1, r4, lsr #0x10 + and r1, r1, #0xff + str r1, [sp, #0x4] + mov r1, r4, lsr #0x8 + and r1, r1, #0xff + str r1, [sp, #0x8] + and r1, r4, #0xff + str r1, [sp, #0xc] + add r2, sp, #0x29 + str r2, [sp, #0x10] + ldr r2, _020972A4 ; =0x0210618C + mov r0, r5 + mov r1, #0x15 + add r3, sp, #0x14 + bl OS_SNPrintf + add sp, sp, #0x40 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020972A4: .word 0x0210618C + + arm_func_start FUN_020972A8 +FUN_020972A8: ; 0x020972A8 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr lr, _0209731C ; =0x66666667 + add r4, r2, #0x4 + smull r12, r2, lr, r4 + mov r2, r2, asr #0x1 + mov r12, r4, lsr #0x1f + add r2, r12, r2 + cmp r2, #0x0 + ldr r6, _02097320 ; =0x0210619C + mov r7, #0x0 + ble _0209730C + add r4, r3, r2 + sub r4, r4, #0x1 + mov r12, #0x1f +_020972E4: + and r5, r0, r12 + ldrsb r5, [r6, r5] + mov r0, r0, lsr #0x5 + mov lr, r1, lsr #0x5 + strb r5, [r4, -r7] + add r7, r7, #0x1 + orr r0, r0, r1, lsl #0x1b + mov r1, lr + cmp r7, r2 + blt _020972E4 +_0209730C: + mov r0, #0x0 + strb r0, [r3, r2] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_0209731C: .word 0x66666667 +_02097320: .word 0x0210619C + + arm_func_start FUN_02097324 +FUN_02097324: ; 0x02097324 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_02097344 +_02097330: ; 0x02097330 + cmp r0, #0x0 + mvnne r0, #0x0 + andne r0, r4, r0 + moveq r0, #0x0 + ldmia sp!, {r4,pc} + + arm_func_start FUN_02097344 +FUN_02097344: + stmdb sp!, {r4,lr} + sub sp, sp, #0x108 + mov r4, r1 + and r3, r4, #0x0 + mov r1, #0x0 + and r12, r0, #0x80000000 + cmp r3, r1 + cmpeq r12, r1 + addne sp, sp, #0x108 + movne r0, r1 + ldmneia sp!, {r4,pc} +_02097370: ; 0x02097370 + str r0, [sp, #0x0] + add r0, sp, #0x8 + mov r1, #0x7 + str r2, [sp, #0x4] + bl MATHi_CRC8InitTable + add r0, sp, #0x8 + add r1, sp, #0x0 + mov r2, #0x8 + bl MATH_CalcCRC8 + and r2, r0, #0x7f + mov r1, r2, asr #0x1f + mov r0, #0x0 + cmp r1, r0 + cmpeq r2, r4 + moveq r0, #0x1 + add sp, sp, #0x108 + ldmia sp!, {r4,pc} + + arm_func_start FUN_020973B4 +FUN_020973B4: ; 0x020973B4 + ldr ip, _020973CC ; =FUN_02097344 + mov r3, r0 + mov r0, r1 + mov r1, r2 + ldr r2, [r3, #0x24] + bx r12 + .balign 4 +_020973CC: .word FUN_02097344 + + arm_func_start FUN_020973D0 +FUN_020973D0: ; 0x020973D0 + stmdb sp!, {r4,lr} + sub sp, sp, #0x108 + mov r4, r0 + str r1, [sp, #0x4] + add r0, sp, #0x8 + mov r1, #0x7 + str r4, [sp, #0x0] + bl MATHi_CRC8InitTable + add r0, sp, #0x8 + add r1, sp, #0x0 + mov r2, #0x8 + bl MATH_CalcCRC8 + and r0, r0, #0x7f + orr r1, r0, #0x0 + orr r0, r4, #0x0 + add sp, sp, #0x108 + ldmia sp!, {r4,pc} + + arm_func_start FUN_02097414 +FUN_02097414: ; 0x02097414 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020974C8 + cmp r0, #0x3 + ldmneia sp!, {r4,pc} +_02097428: ; 0x02097428 + mov r0, r4 + bl FUN_020974E0 + orr r1, r0, #0x4 + mov r0, r4 + bl FUN_0209746C + ldmia sp!, {r4,pc} + + arm_func_start FUN_02097440 +FUN_02097440: ; 0x02097440 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + bl FUN_020974E0 + bic r1, r0, #0x3 + mov r0, r5 + orr r1, r1, r4 + bl FUN_0209746C + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_0209746C +FUN_0209746C: ; 0x0209746C + ldr ip, _0209747C ; =FUN_02097588 + ldr r3, _02097480 ; =0x001FFFFF + mov r2, #0xb + bx r12 + .balign 4 +_0209747C: .word FUN_02097588 +_02097480: .word 0x001FFFFF + + arm_func_start FUN_02097484 +FUN_02097484: ; 0x02097484 + ldr ip, _0209748C ; =FUN_020974C8 + bx r12 + .balign 4 +_0209748C: .word FUN_020974C8 + + arm_func_start FUN_02097490 +FUN_02097490: ; 0x02097490 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020974C8 + cmp r0, #0x3 + bne _020974C0 + mov r0, r4 + bl FUN_020974E0 + and r0, r0, #0x4 + cmp r0, #0x4 + moveq r0, #0x1 + movne r0, #0x0 + ldmia sp!, {r4,pc} +_020974C0: + mov r0, #0x0 + ldmia sp!, {r4,pc} + + arm_func_start FUN_020974C8 +FUN_020974C8: ; 0x020974C8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_020974E0 + and r0, r0, #0x3 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020974E0 +FUN_020974E0: ; 0x020974E0 + ldr r1, [r0, #0x0] + ldr r0, _020974F0 ; =0x001FFFFF + and r0, r0, r1, lsr #0xb + bx lr + .balign 4 +_020974F0: .word 0x001FFFFF + + arm_func_start FUN_020974F4 +FUN_020974F4: ; 0x020974F4 + str r1, [r0, #0x4] + bx lr + + arm_func_start FUN_020974FC +FUN_020974FC: ; 0x020974FC + str r1, [r0, #0x4] + str r2, [r0, #0x8] + bx lr + + arm_func_start FUN_02097508 +FUN_02097508: ; 0x02097508 + str r1, [r0, #0x8] + bx lr + + arm_func_start FUN_02097510 +FUN_02097510: ; 0x02097510 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r12, #0x0 + mov r4, r1 + mov r1, r2 + ldr r3, _02097540 ; =0x000007FF + mov r2, r12 + mov r5, r0 + bl FUN_02097588 + str r4, [r5, #0x4] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_02097540: .word 0x000007FF + + arm_func_start FUN_02097544 +FUN_02097544: + ldr r0, [r0, #0x4] + bx lr + + arm_func_start FUN_0209754C +FUN_0209754C: ; 0x0209754C + ldr r1, [r0, #0x8] + ldr r0, [r0, #0x4] + orr r1, r1, #0x0 + orr r0, r0, #0x0 + bx lr + + arm_func_start FUN_02097560 +FUN_02097560: + ldr r0, [r0, #0x8] + bx lr + + arm_func_start FUN_02097568 +FUN_02097568: ; 0x02097568 + ldr r2, [r0, #0x0] + ldr r1, _02097584 ; =0x000007FF + ldr r0, [r0, #0x4] + and r1, r2, r1 + orr r1, r1, #0x0 + orr r0, r0, #0x0 + bx lr + .balign 4 +_02097584: .word 0x000007FF + + arm_func_start FUN_02097588 +FUN_02097588: ; 0x02097588 + mvn r12, r3 + ands r12, r1, r12 + movne r0, #0x0 + bxne lr + mvn r3, r3, lsl r2 + ldr r12, [r0, #0x0] + and r3, r12, r3 + orr r1, r3, r1, lsl r2 + str r1, [r0, #0x0] + mov r0, #0x1 + bx lr + + arm_func_start FUN_020975B4 +FUN_020975B4: ; 0x020975B4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_020A8850 +_020975C0: ; 0x020975C0 + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_020975D8 +FUN_020975D8: ; 0x020975D8 + ldr r0, _020975EC ; =0x021C8CCC + ldr r1, [r0, #0x0] + orr r1, r1, #0x2 + str r1, [r0, #0x0] + bx lr + .balign 4 +_020975EC: .word 0x021C8CCC + + arm_func_start FUN_020975F0 +FUN_020975F0: ; 0x020975F0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _02097654 ; =0x021C8CC0 + ldr r0, _02097658 ; =0x021C8CCC + ldr lr, [r1, #0x0] + ldr r3, [r0, #0x0] + ldr r12, [lr, #0x4] + ldr r2, _0209765C ; =0x021C8F04 + ldr r1, _02097660 ; =0x021C8ED0 + str r12, [r2, #0x0] + ldr r12, [lr, #0x8] + ldr r2, _02097664 ; =0x021C8EE0 + str r12, [r1, #0x0] + ldr r12, [lr, #0xc] + ldr r1, _02097668 ; =0x021C8F1C + str r12, [r2, #0x0] + ldr r12, [lr, #0x10] + orr r2, r3, #0x2 + str r12, [r1, #0x0] + ldr r3, [lr, #0x14] + str r3, [r1, #0x4] + str r2, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_02097654: .word 0x021C8CC0 +_02097658: .word 0x021C8CCC +_0209765C: .word 0x021C8F04 +_02097660: .word 0x021C8ED0 +_02097664: .word 0x021C8EE0 +_02097668: .word 0x021C8F1C + + arm_func_start FUN_0209766C +FUN_0209766C: ; 0x0209766C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, _020977C0 ; =0x021C8CC0 + ldr r5, _020977C4 ; =0x021C8CD4 + ldr r4, [r0, #0x0] + mov r0, r5 + mov r1, #0x0 + mov r2, #0x30 + bl MI_CpuFill8 + ldr r0, _020977C8 ; =0x021C8CC4 + ldr r2, [r4, #0x18] + mov r1, r5 + str r2, [r1, #0x4] + ldr r12, [r4, #0x1c] + mov r2, #0x0 + ldr r3, _020977CC ; =FUN_020975B4 + ldr r0, [r0, #0x0] + str r12, [r1, #0x8] + str r3, [r1, #0x10] + str r2, [r1, #0x14] + str r2, [r1, #0x18] + str r0, [r1, #0x2c] + ldr r0, [r4, #0x24] + cmp r0, #0x0 + strne r0, [r5, #0x20] + moveq r0, #0x4000 + streq r0, [r5, #0x20] + ldr r0, [r4, #0x28] + cmp r0, #0x0 + strne r0, [r5, #0x1c] + bne _02097700 + ldr r1, _020977C0 ; =0x021C8CC0 + ldr r0, [r5, #0x20] + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x18] + blx r1 + str r0, [r5, #0x1c] +_02097700: + ldr r0, [r4, #0x30] + ldr r12, [r4, #0x34] + cmp r0, #0x0 + moveq r0, #0x240 + cmp r12, #0x0 + sub r2, r0, #0x28 + moveq r12, #0x10c0 + add r0, r12, r12, lsr #0x1f + str r2, [r5, #0x24] + ldr r1, _020977D0 ; =0x021061DC + mov r3, r0, asr #0x1 + ldr r0, _020977D4 ; =0x021C8F04 + mov r2, #0x0 + strh r12, [r1, #0x2] + strh r3, [r1, #0x4] + str r2, [r0, #0x0] + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02097774 + ldr r0, _020977D8 ; =0x021C8CCC + mov r1, #0x1 + str r1, [r0, #0x0] + ldr r1, _020977DC ; =FUN_020975D8 + str r2, [r5, #0x0] + ldr r0, _020977E0 ; =0x021C8CC8 + str r1, [r5, #0xc] + ldr r0, [r0, #0x0] + str r0, [r5, #0x28] + b _0209778C +_02097774: + ldr r0, _020977D8 ; =0x021C8CCC + mov r1, #0x1 + str r2, [r0, #0x0] + ldr r0, _020977E4 ; =FUN_020975F0 + str r1, [r5, #0x0] + str r0, [r5, #0xc] +_0209778C: + ldr r0, [r4, #0x2c] + cmp r0, #0x0 + moveq r0, #0xb + bl FUN_0209FC88 + ldr r0, _020977E8 ; =FUN_0209F65C + bl FUN_020A87BC + ldr r0, _020977EC ; =FUN_020996C0 + bl FUN_0209FD24 + mov r0, r5 + bl FUN_0209FD94 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020977C0: .word 0x021C8CC0 +_020977C4: .word 0x021C8CD4 +_020977C8: .word 0x021C8CC4 +_020977CC: .word FUN_020975B4 +_020977D0: .word 0x021061DC +_020977D4: .word 0x021C8F04 +_020977D8: .word 0x021C8CCC +_020977DC: .word FUN_020975D8 +_020977E0: .word 0x021C8CC8 +_020977E4: .word FUN_020975F0 +_020977E8: .word FUN_0209F65C +_020977EC: .word FUN_020996C0 + + arm_func_start FUN_020977F0 +FUN_020977F0: ; 0x020977F0 + stmdb sp!, {r4,lr} + ldr r0, _02097828 ; =0x021C8CC0 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x20] + bl FUN_02097B78 + movs r4, r0 + bmi _0209781C + ldr r0, _0209782C ; =0x021061F4 + bl FUN_02097F70 + ldr r1, _02097830 ; =0x021C8CD0 + str r0, [r1, #0x0] +_0209781C: + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_02097828: .word 0x021C8CC0 +_0209782C: .word 0x021061F4 +_02097830: .word 0x021C8CD0 + + arm_func_start FUN_02097834 +FUN_02097834: ; 0x02097834 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, _02097870 ; =0x02000BC4 + bl OSi_ReferSymbol + ldr r0, _02097874 ; =0x021C8CC0 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + movne r0, #0x0 + ldmneia sp!, {r4,lr} + bxne lr + str r4, [r0, #0x0] + bl FUN_0209766C + bl FUN_020977F0 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_02097870: .word 0x02000BC4 +_02097874: .word 0x021C8CC0 + + arm_func_start FUN_02097878 +FUN_02097878: ; 0x02097878 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r9, r0 + add r6, sp, #0x0 + mov r4, #0x0 + mov r5, #0x1 +_02097890: + mov r0, r9 + mov r1, r6 + mov r2, r5 + bl OS_ReadMessage +_020978A0: ; 0x020978A0 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + ldr r1, [r0, #0x0] + blx r1 + mov r7, r0 + bl OS_DisableInterrupts + mov r8, r0 + bl OS_DisableScheduler + mov r0, r9 + mov r1, r4 + mov r2, r4 + bl OS_ReceiveMessage +_020978DC: ; 0x020978DC + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x4] + cmp r0, #0x0 + strne r7, [r0, #0x6c] + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _02097908 + mov r1, r7 + mov r2, r4 + bl OS_SendMessage +_02097908: + ldr r0, [sp, #0x0] + bl FUN_02097A64 + bl OS_EnableScheduler + mov r0, r8 + bl OS_RestoreInterrupts + b _02097890 +_02097920: ; 0x02097920 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start FUN_0209792C +FUN_0209792C: ; 0x0209792C + stmdb sp!, {r4,lr} + mov r4, r1 + bl FUN_02097A50 + mov r1, r4 + bl FUN_02097968 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_02097948 +FUN_02097948: + ldr ip, _02097954 ; =FUN_02097968 + ldr r0, [r0, #0x68] + bx r12 + .balign 4 +_02097954: .word FUN_02097968 + + arm_func_start FUN_02097958 +FUN_02097958: ; 0x02097958 + ldr ip, _02097964 ; =FUN_02097968 + ldr r0, [r0, #0x64] + bx r12 + .balign 4 +_02097964: .word FUN_02097968 + + arm_func_start FUN_02097968 +FUN_02097968: ; 0x02097968 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x2c + mov r4, r1 + ldrsb r2, [r4, #0xd] + mov r5, r0 + cmp r2, #0x1 + bne _020979BC + add r0, sp, #0x8 + add r1, sp, #0x4 + mov r2, #0x1 + bl OS_InitMessageQueue + add r2, sp, #0x8 + mov r0, r5 + mov r1, r4 + str r2, [r4, #0x8] + bl FUN_020979F8 + add r0, sp, #0x8 + add r1, sp, #0x0 + mov r2, #0x1 + bl OS_ReceiveMessage + b _020979CC +_020979BC: + mov r2, #0x0 + str r2, [r4, #0x8] + bl FUN_020979F8 +_020979C8: ; 0x020979C8 + str r0, [sp, #0x0] +_020979CC: + ldr r0, [sp, #0x0] + add sp, sp, #0x2c + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020979DC +FUN_020979DC: + stmdb sp!, {r4,lr} + mov r4, r1 + bl FUN_02097A50 + mov r1, r4 + bl FUN_020979F8 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020979F8 +FUN_020979F8: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + movs r5, r1 + beq _02097A14 + ldrsb r1, [r5, #0xd] + ands r1, r1, #0x1 + beq _02097A1C +_02097A14: + mov r2, #0x1 + b _02097A20 +_02097A1C: + mov r2, #0x0 +_02097A20: + mov r1, r5 + bl OS_SendMessage + movs r4, r0 + bne _02097A38 + mov r0, r5 + bl FUN_02097A64 +_02097A38: + cmp r4, #0x0 + movne r0, #0x0 + mvneq r0, #0x29 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_02097A50 +FUN_02097A50: ; 0x02097A50 + ldr r1, [r0, #0x64] + cmp r1, #0x0 + ldreq r1, [r0, #0x68] + mov r0, r1 + bx lr + + arm_func_start FUN_02097A64 +FUN_02097A64: + stmdb sp!, {lr} + sub sp, sp, #0x4 + movs r1, r0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + ldr r0, _02097A94 ; =0x021C8D08 + mov r2, #0x0 + bl OS_SendMessage + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_02097A94: .word 0x021C8D08 + + arm_func_start FUN_02097A98 +FUN_02097A98: ; 0x02097A98 + stmdb sp!, {r4-r6,lr} + mov r4, r2 + mov r6, r0 + mov r0, r4 + mov r5, r1 + bl FUN_02097AE0 +_02097AB0: ; 0x02097AB0 + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + str r6, [r0, #0x0] + str r5, [r0, #0x4] + mov r1, #0x0 + str r1, [r0, #0x8] + ldrsb r1, [r5, #0x73] + strb r1, [r0, #0xc] + strb r4, [r0, #0xd] + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_02097AE0 +FUN_02097AE0: + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r0 + ldr r0, _02097B10 ; =0x021C8D08 + add r1, sp, #0x0 + bl OS_ReceiveMessage +_02097AF8: ; 0x02097AF8 + cmp r0, #0x0 + ldrne r0, [sp, #0x0] + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_02097B10: .word 0x021C8D08 + + arm_func_start FUN_02097B14 +FUN_02097B14: ; 0x02097B14 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _02097B6C ; =0x021C8D08 + ldr r1, [r0, #0x1c] + ldr r0, [r0, #0x14] + cmp r1, r0 + addlt sp, sp, #0x4 + mvnlt r0, #0x0 + ldmltia sp!, {lr} + bxlt lr + ldr r0, _02097B70 ; =0x021C8CC0 + ldr r1, _02097B74 ; =0x021C8D04 + ldr r2, [r0, #0x0] + ldr r0, [r1, #0x0] + ldr r1, [r2, #0x1c] + blx r1 + ldr r1, _02097B74 ; =0x021C8D04 + mov r0, #0x0 + str r0, [r1, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_02097B6C: .word 0x021C8D08 +_02097B70: .word 0x021C8CC0 +_02097B74: .word 0x021C8D04 + + arm_func_start FUN_02097B78 +FUN_02097B78: ; 0x02097B78 + stmdb sp!, {r4-r6,lr} + mov r4, r0 + mov r0, #0x2c + mul r1, r4, r0 + ldr r0, _02097C08 ; =0x021C8CC0 + mov r2, r4, lsl #0x2 + add r2, r2, #0x3 + ldr r0, [r0, #0x0] + add r1, r1, #0x3 + bic r5, r2, #0x3 + bic r2, r1, #0x3 + ldr r1, [r0, #0x18] + add r0, r2, r5 + blx r1 + movs r6, r0 + mvneq r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r0, _02097C0C ; =0x021C8D08 + mov r1, r6 + mov r2, r4 + bl OS_InitMessageQueue +_02097BD0: ; 0x02097BD0 + cmp r4, #0x0 + add r5, r6, r5 + ble _02097BF4 +_02097BDC: + mov r0, r5 + bl FUN_02097A64 + sub r4, r4, #0x1 + cmp r4, #0x0 + add r5, r5, #0x2c + bgt _02097BDC +_02097BF4: + ldr r1, _02097C10 ; =0x021C8D04 + mov r0, #0x0 + str r6, [r1, #0x0] + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_02097C08: .word 0x021C8CC0 +_02097C0C: .word 0x021C8D08 +_02097C10: .word 0x021C8D04 + + arm_func_start FUN_02097C14 +FUN_02097C14: ; 0x02097C14 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0xc + mov r5, r2 + mov r7, r0 + mov r0, r5 + mov r6, r1 + bl FUN_02097DC4 + add r4, r7, r0 + ldrb r2, [r5, #0x3] + mov r0, r6 + mov r1, r7 + bl OS_InitMessageQueue + add r0, r6, #0xe0 + bl OS_InitMutex + ldrh r2, [r5, #0x0] + add r0, r6, #0x20 + ldr r1, _02097C88 ; =FUN_02097878 + str r2, [sp, #0x0] + ldrb r12, [r5, #0x2] + mov r2, r6 + mov r3, r4 + str r12, [sp, #0x4] + bl OS_CreateThread + add r0, r6, #0x20 + bl OS_WakeupThreadDirect + mov r0, r4 + add sp, sp, #0xc + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_02097C88: .word FUN_02097878 + + arm_func_start FUN_02097C8C +FUN_02097C8C: ; 0x02097C8C + stmdb sp!, {r4,lr} + mov r4, r0 + cmp r2, #0x0 + moveq r0, #0x0 + str r0, [r1, #0x4] + mov r0, r2 + str r2, [r1, #0x0] + bl FUN_02099F6C +_02097CAC: ; 0x02097CAC + add r0, r4, r0 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_02097CB8 +FUN_02097CB8: ; 0x02097CB8 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r1 + ldrsb r1, [r6, #0x0] + mov r7, r0 + add r4, r7, #0x80 + strb r1, [r7, #0x73] + ldrsb r0, [r6, #0x1] + strb r0, [r7, #0x72] + ldrh r0, [r6, #0x2] + cmp r0, #0x0 + beq _02097D40 + str r4, [r7, #0x64] + ldrh r2, [r6, #0x4] + mov r1, r4 + add r0, r4, #0x114 + strh r2, [r4, #0xfc] + add r2, r6, #0x10 + mov r5, r4 + bl FUN_02097C14 + ldrh r2, [r6, #0x2] + add r1, r7, #0x3c + bl FUN_02097C8C + ldrh r2, [r6, #0x8] + add r1, r7, #0x50 + bl FUN_02097C8C + ldrh r3, [r6, #0xe] + add r1, r5, #0x100 + mov r2, #0x0 + strh r3, [r1, #0xa] + str r2, [r5, #0x110] + ldr r1, [r5, #0x110] + mov r4, r0 + str r1, [r5, #0x10c] +_02097D40: + ldrh r0, [r6, #0x6] + cmp r0, #0x0 + ldreq r0, _02097DC0 ; =0x021C8CD0 + ldreq r0, [r0, #0x0] + ldreq r0, [r0, #0x68] + streq r0, [r7, #0x68] + beq _02097DB0 + str r4, [r7, #0x68] + mov r1, r4 + str r7, [r4, #0x10c] + add r0, r4, #0x110 + add r2, r6, #0x14 + mov r5, r4 + bl FUN_02097C14 + ldrh r2, [r6, #0x6] + add r1, r7, #0x48 + bl FUN_02097C8C + ldrh r2, [r6, #0xa] + add r1, r7, #0x58 + bl FUN_02097C8C + ldrh r2, [r6, #0xc] + add r1, r4, #0xf8 + bl FUN_02097C8C + mov r1, #0x0 + str r1, [r5, #0x108] + ldr r1, [r5, #0x108] + mov r4, r0 + str r1, [r5, #0x104] +_02097DB0: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_02097DC0: .word 0x021C8CD0 + + arm_func_start FUN_02097DC4 +FUN_02097DC4: ; 0x02097DC4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldrb r0, [r5, #0x3] + mov r0, r0, lsl #0x2 + bl FUN_02099F6C + mov r4, r0 + ldrh r0, [r5, #0x0] + bl FUN_02099F6C +_02097DE8: ; 0x02097DE8 + add r0, r4, r0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_02097DF8 +FUN_02097DF8: ; 0x02097DF8 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldrh r0, [r5, #0x2] + mov r4, #0x80 + cmp r0, #0x0 + beq _02097E38 + add r4, r4, #0x114 + bl FUN_02099F6C + add r4, r4, r0 + ldrh r0, [r5, #0x8] + bl FUN_02099F6C + add r4, r4, r0 + add r0, r5, #0x10 + bl FUN_02097DC4 + add r4, r4, r0 +_02097E38: + ldrh r0, [r5, #0x6] + cmp r0, #0x0 + beq _02097E74 + add r4, r4, #0x110 + bl FUN_02099F6C + add r4, r4, r0 + ldrh r0, [r5, #0xa] + bl FUN_02099F6C + add r4, r4, r0 + ldrh r0, [r5, #0xc] + bl FUN_02099F6C + add r4, r4, r0 + add r0, r5, #0x14 + bl FUN_02097DC4 + add r4, r4, r0 +_02097E74: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_02097E84 +FUN_02097E84: ; 0x02097E84 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + bl FUN_02097DF8 + mov r4, r0 + bl OS_DisableInterrupts + ldr r1, _02097EF4 ; =0x021C8CC0 + mov r5, r0 + ldr r1, [r1, #0x0] + mov r0, r4 + ldr r1, [r1, #0x18] + blx r1 + movs r6, r0 + beq _02097EDC + mov r2, r4 + mov r1, #0x0 + bl MI_CpuFill8 + mov r0, r6 + mov r1, r7 + bl FUN_02097CB8 + mov r0, r6 + bl FUN_0209A094 +_02097EDC: + mov r0, r5 + bl OS_RestoreInterrupts + mov r0, r6 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_02097EF4: .word 0x021C8CC0 + + arm_func_start FUN_02097EF8 +FUN_02097EF8: ; 0x02097EF8 + stmdb sp!, {r4,lr} + ldr r4, [r0, #0x4] + mov r0, r4 + bl FUN_0209CC28 + ldrsb r0, [r4, #0x73] + ldr r1, [r4, #0x68] + cmp r0, #0x4 + addls pc, pc, r0, lsl #0x2 + b _02097F58 +_02097F1C: + b _02097F30 +_02097F20: + b _02097F40 +_02097F24: + b _02097F54 +_02097F28: + b _02097F58 +_02097F2C: + b _02097F30 +_02097F30: + add r0, r1, #0x20 + bl FUN_0209CB0C + bl FUN_0209CB44 + b _02097F58 +_02097F40: + bl FUN_0209CB44 + bl FUN_0209CBE8 + ldr r0, _02097F6C ; =FUN_02098550 + bl FUN_0209CAA8 +_02097F50: ; 0x02097F50 + b _02097F58 +_02097F54: + bl FUN_0209CBE8 +_02097F58: + mov r0, #0x1 + strh r0, [r4, #0x70] + mov r0, #0x0 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_02097F6C: .word FUN_02098550 + + arm_func_start FUN_02097F70 +FUN_02097F70: ; 0x02097F70 + stmdb sp!, {r4,lr} + bl FUN_02097E84 + movs r4, r0 + mvneq r0, #0x30 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r0, _02097FB0 ; =FUN_02097EF8 + mov r1, r4 + mov r2, #0x1 + bl FUN_02097A98 + mov r1, r0 + mov r0, r4 + bl FUN_0209792C + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_02097FB0: .word FUN_02097EF8 + + arm_func_start FUN_02097FB4 +FUN_02097FB4: ; 0x02097FB4 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r6, r0 + ldr r4, [r6, #0x4] + ldr r5, [r4, #0x64] + add r0, r5, #0xe0 + bl OS_LockMutex + mov r1, #0x0 + ldrh r0, [r6, #0x10] + mov r2, r1 + bl FUN_0209CB78 + bl FUN_0209CA54 + mov r2, #0x0 + add r0, sp, #0x0 + add r1, sp, #0x4 + str r2, [r5, #0xf8] + bl FUN_0209C8E0 + ldrh r2, [sp, #0x0] + ldr r1, [r6, #0x14] + strh r2, [r1, #0x0] + ldr r1, [r6, #0x18] + str r0, [r1, #0x0] + ldrsh r1, [r4, #0x70] + add r0, r5, #0xe0 + orr r1, r1, #0x4 + strh r1, [r4, #0x70] + bl OS_UnlockMutex +_02098020: ; 0x02098020 + mov r0, #0x0 + add sp, sp, #0x8 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_02098030 +FUN_02098030: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl FUN_02099FA8 +_02098044: ; 0x02098044 + cmp r0, #0x0 + mvnne r0, #0x1b + ldmneia sp!, {r4-r6,lr} + bxne lr + cmp r6, #0x0 + mov r1, #0x0 + beq _0209806C + ldrsh r0, [r6, #0x70] + ands r0, r0, #0x1 + movne r1, #0x1 +_0209806C: + cmp r1, #0x0 + mvneq r0, #0x26 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldrsh r0, [r6, #0x70] + ands r0, r0, #0x2 + mvnne r0, #0x1b + ldmneia sp!, {r4-r6,lr} + bxne lr + ldrsb r0, [r6, #0x73] + mov r1, #0x1 + cmp r0, #0x0 + beq _020980A8 + cmp r0, #0x4 + movne r1, #0x0 +_020980A8: + cmp r1, #0x0 + mvneq r0, #0x1b + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldrsb r2, [r6, #0x72] + cmp r2, #0x1 + mvnne r0, #0x5 + ldmneia sp!, {r4-r6,lr} + bxne lr + ldrh r0, [r6, #0x74] + cmp r0, #0x0 + mvneq r0, #0x1b + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r0, _0209811C ; =FUN_02097FB4 + mov r1, r6 + bl FUN_02097A98 + mov r1, r0 + ldrh r2, [r6, #0x74] + mov r0, r6 + strh r2, [r1, #0x10] + str r5, [r1, #0x14] + str r4, [r1, #0x18] + ldrsh r2, [r6, #0x70] + orr r2, r2, #0x2 + strh r2, [r6, #0x70] + bl FUN_02097958 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_0209811C: .word FUN_02097FB4 + + arm_func_start FUN_02098120 +FUN_02098120: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl FUN_02099FA8 +_02098138: ; 0x02098138 + cmp r0, #0x0 + addne sp, sp, #0x4 + mvnne r0, #0x1b + ldmneia sp!, {r4-r7,lr} + bxne lr + cmp r6, #0x0 + mov r1, #0x0 + beq _02098164 + ldrsh r0, [r6, #0x70] + ands r0, r0, #0x1 + movne r1, #0x1 +_02098164: + cmp r1, #0x0 + addeq sp, sp, #0x4 + mvneq r0, #0x26 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + ldrsh r0, [r6, #0x70] + ands r0, r0, #0x2 + addne sp, sp, #0x4 + mvnne r0, #0x1b + ldmneia sp!, {r4-r7,lr} + bxne lr + ldrsb r0, [r6, #0x73] + mov r1, #0x1 + cmp r0, #0x0 + beq _020981A8 + cmp r0, #0x4 + movne r1, #0x0 +_020981A8: + cmp r1, #0x0 + addeq sp, sp, #0x4 + mvneq r0, #0x1b + ldmeqia sp!, {r4-r7,lr} + bxeq lr + ldrsb r0, [r6, #0x72] + cmp r0, #0x1 + addne sp, sp, #0x4 + mvnne r0, #0x5 + ldmneia sp!, {r4-r7,lr} + bxne lr + ldr r0, _02098228 ; =0x021061DC + bl FUN_02097F70 + movs r7, r0 + addmi sp, sp, #0x4 + ldmmiia sp!, {r4-r7,lr} + bxmi lr + ldrh r1, [r6, #0x74] + bl FUN_020984B4 +_020981F4: ; 0x020981F4 + cmp r0, #0x0 + addlt sp, sp, #0x4 + ldmltia sp!, {r4-r7,lr} + bxlt lr + mov r0, r7 + mov r1, r5 + mov r2, r4 + bl FUN_02098030 +_02098214: ; 0x02098214 + cmp r0, #0x0 + movge r0, r7 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_02098228: .word 0x021061DC + + arm_func_start FUN_0209822C +FUN_0209822C: ; 0x0209822C + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_02099FA8 +_02098238: ; 0x02098238 + cmp r0, #0x0 + mvnne r0, #0x1b + ldmneia sp!, {r4,lr} + bxne lr + cmp r4, #0x0 + mov r1, #0x0 + beq _02098260 + ldrsh r0, [r4, #0x70] + ands r0, r0, #0x1 + movne r1, #0x1 +_02098260: + cmp r1, #0x0 + mvneq r0, #0x26 + ldmeqia sp!, {r4,lr} + bxeq lr + ldrsh r0, [r4, #0x70] + ands r0, r0, #0x2 + mvnne r0, #0x1b + ldmneia sp!, {r4,lr} + bxne lr + ldrsb r0, [r4, #0x73] + mov r1, #0x1 + cmp r0, #0x0 + beq _0209829C + cmp r0, #0x4 + movne r1, #0x0 +_0209829C: + cmp r1, #0x0 + mvneq r0, #0x1b + ldmeqia sp!, {r4,lr} + bxeq lr + ldrsb r0, [r4, #0x72] + cmp r0, #0x1 + moveq r0, #0x0 + mvnne r0, #0x5 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020982C4 +FUN_020982C4: ; 0x020982C4 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + ldr r4, [r7, #0x4] + mov r5, #0x0 + ldr r6, [r4, #0x64] + add r0, r6, #0xe0 + bl OS_LockMutex + ldrh r0, [r7, #0x10] + ldrh r1, [r7, #0x12] + ldr r2, [r7, #0x14] + bl FUN_0209CB78 + mov r0, r5 + str r0, [r6, #0xf8] + ldrsb r0, [r7, #0xc] + cmp r0, #0x0 + beq _02098310 + cmp r0, #0x4 + bne _02098318 +_02098310: + bl FUN_0209C934 + mov r5, r0 +_02098318: + add r0, r6, #0xe0 + bl OS_UnlockMutex +_02098320: ; 0x02098320 + cmp r5, #0x0 + ldrnesh r1, [r4, #0x70] + mvnne r0, #0x4b + moveq r0, #0x0 + orrne r1, r1, #0x40 + strneh r1, [r4, #0x70] + ldreqsh r1, [r4, #0x70] + orreq r1, r1, #0x4 + streqh r1, [r4, #0x70] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_02098350 +FUN_02098350: ; 0x02098350 + stmdb sp!, {r4,lr} + mov r4, r0 + ldrsb r2, [r4, #0x72] + ldr r0, _020983AC ; =FUN_020982C4 + mov r1, r4 + bl FUN_02097A98 + movs r1, r0 + mvneq r0, #0x20 + ldmeqia sp!, {r4,lr} + bxeq lr + ldrh r2, [r4, #0x74] + mov r0, r4 + strh r2, [r1, #0x10] + ldrh r2, [r4, #0x76] + strh r2, [r1, #0x12] + ldr r2, [r4, #0x78] + str r2, [r1, #0x14] + ldrsh r2, [r4, #0x70] + orr r2, r2, #0x2 + strh r2, [r4, #0x70] + bl FUN_02097958 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020983AC: .word FUN_020982C4 + + arm_func_start FUN_020983B0 +FUN_020983B0: ; 0x020983B0 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl FUN_02099FA8 +_020983C4: ; 0x020983C4 + cmp r0, #0x0 + bne _020983D8 + ldrsh r0, [r6, #0x70] + ands r0, r0, #0x8 + beq _020983E4 +_020983D8: + mvn r0, #0x1b + ldmia sp!, {r4-r6,lr} + bx lr +_020983E4: + cmp r6, #0x0 + mov r1, #0x0 + beq _020983FC + ldrsh r0, [r6, #0x70] + ands r0, r0, #0x1 + movne r1, #0x1 +_020983FC: + cmp r1, #0x0 + mvneq r0, #0x26 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldrsb r0, [r6, #0x73] + mov r1, #0x1 + cmp r0, #0x0 + beq _02098424 + cmp r0, #0x4 + movne r1, #0x0 +_02098424: + cmp r1, #0x0 + beq _0209849C + ldrsh r0, [r6, #0x70] + ands r0, r0, #0x4 + beq _02098450 + ldrsb r0, [r6, #0x72] + cmp r0, #0x1 + mvneq r0, #0x1d + movne r0, #0x0 + ldmia sp!, {r4-r6,lr} + bx lr +_02098450: + ldrsh r0, [r6, #0x70] + ands r0, r0, #0x2 + beq _02098478 + ldrsh r0, [r6, #0x70] + ands r0, r0, #0x40 + ldrne r0, [r6, #0x6c] + ldreq r0, _020984B0 ; =0x021061C0 + ldreq r0, [r0, #0x0] + ldmia sp!, {r4-r6,lr} + bx lr +_02098478: + strh r5, [r6, #0x76] + mov r0, r6 + str r4, [r6, #0x78] + bl FUN_02098350 + ldrsb r1, [r6, #0x72] + cmp r1, #0x1 + mvnne r0, #0x19 + ldmia sp!, {r4-r6,lr} + bx lr +_0209849C: + strh r5, [r6, #0x76] + str r4, [r6, #0x78] + mov r0, #0x0 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020984B0: .word 0x021061C0 + + arm_func_start FUN_020984B4 +FUN_020984B4: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + mov r5, r1 + bl FUN_02099FA8 +_020984C8: ; 0x020984C8 + cmp r0, #0x0 + addne sp, sp, #0x4 + mvnne r0, #0x1b + ldmneia sp!, {r4-r5,lr} + bxne lr + cmp r4, #0x0 + mov r1, #0x0 + beq _020984F4 + ldrsh r0, [r4, #0x70] + ands r0, r0, #0x1 + movne r1, #0x1 +_020984F4: + cmp r1, #0x0 + addeq sp, sp, #0x4 + mvneq r0, #0x26 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldrsh r0, [r4, #0x70] + ands r0, r0, #0x2 + addne sp, sp, #0x4 + mvnne r0, #0x6 + ldmneia sp!, {r4-r5,lr} + bxne lr + strh r5, [r4, #0x74] + ldrsb r0, [r4, #0x73] + cmp r0, #0x1 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {r4-r5,lr} + bxne lr + mov r0, r4 + bl FUN_02098350 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_02098550 +FUN_02098550: ; 0x02098550 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r7, r2 + ldr r6, [r7, #0x64] + mov r9, r0 + mov r8, r1 + bl OS_DisableInterrupts + add r1, r6, #0x100 + ldrh r2, [r1, #0x8] + ldrh r1, [r1, #0xa] + mov r4, r0 + add r0, r2, r8 + cmp r1, r0 + blo _02098618 + ldr r1, _02098668 ; =0x021C8CC0 + add r0, r8, #0xc + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x18] + blx r1 + movs r5, r0 + beq _02098604 + add r1, r6, #0x100 + ldrh r3, [r1, #0x8] + mov r2, #0x0 + mov r0, r9 + add r3, r3, r8 + strh r3, [r1, #0x8] + str r2, [r5, #0x0] + strh r8, [r5, #0x4] + ldrh r3, [r7, #0x18] + mov r2, r8 + add r1, r5, #0xc + strh r3, [r5, #0x6] + ldr r3, [r7, #0x1c] + str r3, [r5, #0x8] + bl MI_CpuCopy8 + ldr r0, [r6, #0x100] + cmp r0, #0x0 + ldrne r0, [r6, #0x100] + strne r5, [r0, #0x0] + str r5, [r6, #0x100] + ldr r0, [r6, #0x104] + cmp r0, #0x0 + streq r5, [r6, #0x104] + b _02098628 +_02098604: + ldr r0, _0209866C ; =0x021C8D28 + ldr r1, [r0, #0x0] + add r1, r1, #0x1 + str r1, [r0, #0x0] + b _02098628 +_02098618: + ldr r0, _0209866C ; =0x021C8D28 + ldr r1, [r0, #0x4] + add r1, r1, #0x1 + str r1, [r0, #0x4] +_02098628: + ldrh r0, [r7, #0x74] + cmp r0, #0x0 + ldreqh r0, [r7, #0xa] + streqh r0, [r7, #0x74] + ldrh r1, [r7, #0x1a] + add r0, r6, #0x10c + strh r1, [r7, #0x18] + ldr r1, [r7, #0x20] + str r1, [r7, #0x1c] + bl OS_WakeupThread + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_02098668: .word 0x021C8CC0 +_0209866C: .word 0x021C8D28 + + arm_func_start FUN_02098670 +FUN_02098670: ; 0x02098670 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x14 + mov r10, r0 + ldr r9, [r10, #0x64] + str r1, [sp, #0x0] + ldr r0, [r9, #0x104] + str r2, [sp, #0x4] + str r3, [sp, #0x8] + bl OS_DisableInterrupts + ldr r8, [r9, #0x104] + str r0, [sp, #0xc] + cmp r8, #0x0 + bne _02098710 + ldr r0, [sp, #0x3c] + and r7, r0, #0x1 + add r6, r9, #0x10c + mov r4, #0x1 + mov r5, #0x0 +_020986B8: + cmp r7, #0x0 + mvneq r11, #0x5 + beq _02098710 + mov r0, r6 + bl OS_SleepThread + mov r0, r10 + bl FUN_02099FA8 +_020986D4: ; 0x020986D4 + cmp r0, #0x0 + bne _020986FC + mov r1, r5 + cmp r10, #0x0 + beq _020986F4 + ldrsh r0, [r10, #0x70] + ands r0, r0, #0x1 + movne r1, r4 +_020986F4: + cmp r1, #0x0 + bne _02098704 +_020986FC: + mvn r11, #0x37 + b _02098710 +_02098704: + ldr r8, [r9, #0x104] + cmp r8, #0x0 + beq _020986B8 +_02098710: + cmp r8, #0x0 + beq _020987A4 + ldrh r1, [r8, #0x4] + ldr r0, [sp, #0x4] + cmp r0, r1 + strgt r1, [sp, #0x4] + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x4] + add r0, r8, #0xc + bl MI_CpuCopy8 + ldr r0, [sp, #0x8] + cmp r0, #0x0 + ldrneh r1, [r8, #0x6] + strneh r1, [r0, #0x0] + ldr r1, [sp, #0x38] + cmp r1, #0x0 + ldrne r0, [r8, #0x8] + strne r0, [r1, #0x0] + ldrsb r0, [r9, #0xfe] + ldrh r11, [r8, #0x4] + cmp r0, #0x0 + bne _020987A4 + ldr r0, [r8, #0x0] + ldr r1, _020987BC ; =0x021C8CC0 + str r0, [r9, #0x104] + ldr r0, [r8, #0x0] + cmp r0, #0x0 + moveq r0, #0x0 + streq r0, [r9, #0x100] + ldr r1, [r1, #0x0] + mov r0, r8 + ldr r1, [r1, #0x1c] + blx r1 + add r0, r9, #0x100 + ldrh r1, [r0, #0x8] + sub r1, r1, r11 + strh r1, [r0, #0x8] +_020987A4: + ldr r0, [sp, #0xc] + bl OS_RestoreInterrupts + mov r0, r11 + add sp, sp, #0x14 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020987BC: .word 0x021C8CC0 + + arm_func_start FUN_020987C0 +FUN_020987C0: ; 0x020987C0 + stmdb sp!, {r4-r6,lr} + ldr r6, [r0, #0x64] + bl OS_DisableInterrupts + ldr r4, [r6, #0xf8] + mov r5, r0 + cmp r4, #0x0 + beq _020987EC + mov r1, #0x0 + mov r0, r4 + str r1, [r6, #0xf8] + bl FUN_0209C52C +_020987EC: + mov r0, r5 + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_02098800 +FUN_02098800: ; 0x02098800 + ldr ip, _0209880C ; =FUN_020987C0 + ldr r0, [r0, #0x4] + bx r12 + .balign 4 +_0209880C: .word FUN_020987C0 + + arm_func_start FUN_02098810 +FUN_02098810: + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r1, [r4, #0x64] + ldrh r0, [r1, #0xfc] + ldr r1, [r1, #0xf8] + cmp r1, r0 + movlt r0, #0x0 + ldmltia sp!, {r4,lr} + bxlt lr + ldr r0, _02098864 ; =FUN_02098800 + mov r1, r4 + mov r2, #0x0 + bl FUN_02097A98 + movs r1, r0 + mvneq r0, #0x20 + ldmeqia sp!, {r4,lr} + bxeq lr + mov r0, r4 + bl FUN_02097958 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_02098864: .word FUN_02098800 + + arm_func_start FUN_02098868 +FUN_02098868: ; 0x02098868 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x14 + ldr r9, [r0, #0x4] + ldr r1, [r0, #0x10] + ldr r8, [r9, #0x64] + str r1, [sp, #0x4] + ldr r1, [r0, #0x18] + ldr r10, [r0, #0x14] + ldr r0, [r0, #0x1c] + ldr r7, [r8, #0xf8] + str r1, [sp, #0x8] + str r0, [sp, #0xc] + add r11, sp, #0x10 + mov r5, #0x0 + mov r6, #0x1 + mov r4, #0xa +_020988A8: + mov r0, r11 + bl FUN_0209C638 +_020988B0: ; 0x020988B0 + cmp r0, #0x0 + beq _02098904 + ldr r1, [sp, #0x10] + sub r1, r1, r7 + cmp r1, #0x0 + bgt _02098904 + ldrsb r0, [r9, #0x73] + mov r1, r6 + cmp r0, #0x0 + beq _020988E0 + cmp r0, #0x4 + movne r1, r5 +_020988E0: + cmp r1, #0x0 + beq _020988F8 + ldrb r0, [r9, #0x8] + cmp r0, #0x4 + movne r0, #0x0 + bne _02098904 +_020988F8: + mov r0, r4 + bl OS_Sleep + b _020988A8 +_02098904: + ldrsb r1, [r9, #0x73] + cmp r1, #0x4 + bne _02098954 + cmp r0, #0x0 + addeq sp, sp, #0x14 + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldr r1, [sp, #0x10] + cmp r10, r1 + movhi r10, r1 + ldr r1, [sp, #0x4] + mov r2, r10 + bl MI_CpuCopy8 + mov r0, r10 + bl FUN_0209C52C + add sp, sp, #0x14 + mov r0, r10 + ldmia sp!, {r4-r11,lr} + bx lr +_02098954: + cmp r0, #0x0 + moveq r4, #0x0 + beq _02098980 + ldr r4, [sp, #0xc] + ldr r1, [sp, #0x4] + ldr r3, [sp, #0x8] + mov r0, r9 + mov r2, r10 + str r4, [sp, #0x0] + bl FUN_02098AA4 + mov r4, r0 +_02098980: + cmp r4, #0x0 + addle sp, sp, #0x14 + movle r0, r4 + ldmleia sp!, {r4-r11,lr} + bxle lr + ldrh r0, [r8, #0xfc] + ldr r1, [r8, #0xf8] + cmp r1, r0 + blt _020989AC + mov r0, r9 + bl FUN_020987C0 +_020989AC: + mov r0, r4 + add sp, sp, #0x14 + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_020989BC +FUN_020989BC: ; 0x020989BC + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + ldr r0, _02098A10 ; =FUN_02098868 + mov r1, r7 + mov r2, #0x1 + mov r4, r3 + bl FUN_02097A98 + mov r1, r0 + str r6, [r1, #0x10] + str r5, [r1, #0x14] + ldr r2, [sp, #0x18] + str r4, [r1, #0x18] + mov r0, r7 + str r2, [r1, #0x1c] + bl FUN_02097958 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_02098A10: .word FUN_02098868 + + arm_func_start FUN_02098A14 +FUN_02098A14: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, [r0, #0x64] + ldr r5, [r0, #0xc4] + ldr r4, [r0, #0xf8] + ldr r0, [r5, #0x44] + subs lr, r0, r4 + bmi _02098A78 + ldrh r12, [r5, #0xa] + ldr r0, [sp, #0x10] + cmp lr, #0x0 + strh r12, [r2, #0x0] + ldrh r2, [r5, #0x18] + strh r2, [r3, #0x0] + ldr r2, [r5, #0x1c] + str r2, [r0, #0x0] + str lr, [r1, #0x0] + bne _02098A90 + ldrb r0, [r5, #0x8] + cmp r0, #0x4 + beq _02098A90 + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r5,lr} + bx lr +_02098A78: + mvn r0, #0x0 + str r0, [r1, #0x0] + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r5,lr} + bx lr +_02098A90: + ldr r0, [r5, #0x40] + add r0, r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_02098AA4 +FUN_02098AA4: ; 0x02098AA4 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x14 + mov r9, r0 + mov r8, r1 + mov r7, r2 + mov r6, r3 + bl OS_DisableInterrupts + add r1, sp, #0xc + mov r5, r0 + str r1, [sp, #0x0] + add r1, sp, #0x8 + mov r0, r9 + add r2, sp, #0x4 + add r3, sp, #0x6 + bl FUN_02098A14 +_02098AE0: ; 0x02098AE0 + cmp r0, #0x0 + beq _02098B48 + ldr r4, [sp, #0x8] + cmp r4, #0x0 + mvneq r4, #0x5 + beq _02098B64 + ldrsb r1, [r9, #0x73] + cmp r7, r4 + movgt r7, r4 + mov r2, #0x1 + cmp r1, #0x0 + beq _02098B18 + cmp r1, #0x4 + movne r2, #0x0 +_02098B18: + cmp r2, #0x0 + mov r1, r8 + mov r2, r7 + movne r4, r7 + bl MI_CpuCopy8 + ldr r1, [r9, #0x64] + ldrsb r0, [r1, #0xfe] + cmp r0, #0x0 + ldreq r0, [r1, #0xf8] + addeq r0, r0, r4 + streq r0, [r1, #0xf8] + b _02098B64 +_02098B48: + ldr r0, [sp, #0x8] + cmp r0, #0x0 + ldrsh r0, [r9, #0x70] + moveq r4, #0x0 + mvnne r4, #0x1b + bic r0, r0, #0x6 + strh r0, [r9, #0x70] +_02098B64: + cmp r4, #0x0 + blt _02098B9C + cmp r6, #0x0 + beq _02098B8C + ldr r1, [sp, #0x30] + cmp r1, #0x0 + ldrneh r0, [sp, #0x6] + strneh r0, [r6, #0x0] + ldrne r0, [sp, #0xc] + strne r0, [r1, #0x0] +_02098B8C: + ldrh r0, [r9, #0x74] + cmp r0, #0x0 + ldreqh r0, [sp, #0x4] + streqh r0, [r9, #0x74] +_02098B9C: + mov r0, r5 + bl OS_RestoreInterrupts + mov r0, r4 + add sp, sp, #0x14 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start FUN_02098BB4 +FUN_02098BB4: ; 0x02098BB4 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + ldrsb r12, [r7, #0x73] + mov r6, r1 + mov r5, r2 + mov r4, r3 + cmp r12, #0x4 + bne _02098BF0 + ldr r4, [sp, #0x18] + str r4, [sp, #0x0] + bl FUN_020989BC + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_02098BF0: + ldr r12, [sp, #0x18] + str r12, [sp, #0x0] + bl FUN_02098AA4 + mvn r1, #0x5 + cmp r0, r1 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr + ldr r1, [sp, #0x1c] + ands r1, r1, #0x1 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + ldr r12, [sp, #0x18] + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, r4 + str r12, [sp, #0x0] + bl FUN_020989BC + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_02098C4C +FUN_02098C4C: ; 0x02098C4C + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + ldr r5, [sp, #0x28] + mov r7, r0 + ands r0, r5, #0x2 + ldr r5, [r7, #0x64] + beq _02098C74 + cmp r5, #0x0 + movne r6, #0x1 + bne _02098C78 +_02098C74: + mov r6, #0x0 +_02098C78: + cmp r6, #0x0 + ldrnesb r4, [r5, #0xfe] + movne r0, #0x1 + strneb r0, [r5, #0xfe] + ldrsb r0, [r7, #0x73] + cmp r0, #0x1 + bne _02098CB4 + ldr r0, [sp, #0x20] + ldr r12, [sp, #0x24] + str r0, [sp, #0x0] + mov r0, r7 + str r12, [sp, #0x4] + bl FUN_02098670 + mov r8, r0 + b _02098CDC +_02098CB4: + ldr r0, [sp, #0x20] + ldr r12, [sp, #0x24] + str r0, [sp, #0x0] + mov r0, r7 + str r12, [sp, #0x4] + bl FUN_02098BB4 + movs r8, r0 + bmi _02098CDC + mov r0, r7 + bl FUN_02098810 +_02098CDC: + cmp r6, #0x0 + strneb r4, [r5, #0xfe] + mov r0, r8 + add sp, sp, #0x8 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_02098CF4 +FUN_02098CF4: + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0xc + mov r9, r0 + mov r8, r1 + mov r7, r2 + mov r6, r3 + bl FUN_02099FA8 +_02098D10: ; 0x02098D10 + cmp r0, #0x0 + addne sp, sp, #0xc + mvnne r0, #0x1b + ldmneia sp!, {r4-r9,lr} + bxne lr + ldr r0, [sp, #0x2c] + ands r0, r0, #0x4 + bne _02098D3C + ldrsb r0, [r9, #0x72] + cmp r0, #0x0 + bne _02098D5C +_02098D3C: + ldrsb r0, [r9, #0x73] + cmp r0, #0x4 + addeq sp, sp, #0xc + mvneq r0, #0x1b + ldmeqia sp!, {r4-r9,lr} + bxeq lr + mov r4, #0x0 + b _02098D78 +_02098D5C: + bl OS_GetProcMode + cmp r0, #0x12 + addeq sp, sp, #0xc + mvneq r0, #0x1b + ldmeqia sp!, {r4-r9,lr} + bxeq lr + mov r4, #0x1 +_02098D78: + cmp r9, #0x0 + mov r1, #0x0 + beq _02098D90 + ldrsh r0, [r9, #0x70] + ands r0, r0, #0x1 + movne r1, #0x1 +_02098D90: + cmp r1, #0x0 + addeq sp, sp, #0xc + mvneq r0, #0x26 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + ldrsb r0, [r9, #0x73] + mov r1, #0x1 + cmp r0, #0x0 + beq _02098DBC + cmp r0, #0x4 + movne r1, #0x0 +_02098DBC: + cmp r1, #0x0 + beq _02098DEC + ldrsh r0, [r9, #0x70] + ands r0, r0, #0x4 + beq _02098DDC + ldrsh r0, [r9, #0x70] + ands r0, r0, #0x8 + beq _02098DEC +_02098DDC: + add sp, sp, #0xc + mvn r0, #0x37 + ldmia sp!, {r4-r9,lr} + bx lr +_02098DEC: + ands r0, r4, #0x1 + ldr r5, [r9, #0x64] + bne _02098E18 + add r0, r5, #0xe0 + bl OS_TryLockMutex +_02098E00: ; 0x02098E00 + cmp r0, #0x0 + bne _02098E20 + add sp, sp, #0xc + mvn r0, #0x5 + ldmia sp!, {r4-r9,lr} + bx lr +_02098E18: + add r0, r5, #0xe0 + bl OS_LockMutex +_02098E20: + ldr r0, [sp, #0x28] + ldr r12, [sp, #0x2c] + str r0, [sp, #0x0] + str r4, [sp, #0x4] + mov r0, r9 + mov r1, r8 + mov r2, r7 + mov r3, r6 + str r12, [sp, #0x8] + bl FUN_02098C4C + mov r4, r0 + add r0, r5, #0xe0 + bl OS_UnlockMutex + mov r0, r4 + add sp, sp, #0xc + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start FUN_02098E64 +FUN_02098E64: ; 0x02098E64 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r2 + ldr r5, [r6, #0x14] + ldr r4, [r6, #0x1c] + cmp r5, r1 + mov r7, r0 + movgt r5, r1 + movgt r4, #0x0 + bgt _02098E98 + sub r0, r1, r5 + cmp r4, r0 + movgt r4, r0 +_02098E98: + cmp r5, #0x0 + ble _02098EC8 + ldr r0, [r6, #0x10] + mov r1, r7 + mov r2, r5 + bl MI_CpuCopy8 + ldr r0, [r6, #0x10] + add r0, r0, r5 + str r0, [r6, #0x10] + ldr r0, [r6, #0x14] + sub r0, r0, r5 + str r0, [r6, #0x14] +_02098EC8: + cmp r4, #0x0 + ble _02098EF8 + ldr r0, [r6, #0x18] + mov r2, r4 + add r1, r7, r5 + bl MI_CpuCopy8 + ldr r0, [r6, #0x18] + add r0, r0, r4 + str r0, [r6, #0x18] + ldr r0, [r6, #0x1c] + sub r0, r0, r4 + str r0, [r6, #0x1c] +_02098EF8: + add r0, r5, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_02098F08 +FUN_02098F08: ; 0x02098F08 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r1, _02098FBC ; =0x021D3498 + mov r4, r0 + ldr r0, [r1, #0x4] + ldr r5, [r0, #0xa4] + bl OS_DisableInterrupts +_02098F24: ; 0x02098F24 + cmp r5, #0x0 + beq _02098F74 + ldrh r3, [r5, #0x2e] + cmp r3, #0x0 + beq _02098F64 + ldrh r2, [r5, #0x2c] + cmp r2, #0x0 + beq _02098F64 + ldr r1, _02098FC0 ; =0x021C8CD4 + cmp r3, r2 + ldr r1, [r1, #0x24] + movgt r3, r2 + cmp r3, r1 + movgt r3, r1 + mov r5, r3, lsl #0x1 + b _02098F80 +_02098F64: + ldr r1, _02098FC0 ; =0x021C8CD4 + ldr r1, [r1, #0x24] + mov r5, r1, lsl #0x1 + b _02098F80 +_02098F74: + ldr r1, _02098FC0 ; =0x021C8CD4 + ldr r1, [r1, #0x24] + mov r5, r1, lsl #0x1 +_02098F80: + bl OS_RestoreInterrupts +_02098F84: ; 0x02098F84 + cmp r5, #0x0 + ble _02098FAC + mov r0, r4 + mov r1, r5 + bl _s32_div_f +_02098F98: ; 0x02098F98 + cmp r0, #0x0 + mulgt r0, r5, r0 + addgt sp, sp, #0x4 + ldmgtia sp!, {r4-r5,lr} + bxgt lr +_02098FAC: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_02098FBC: .word 0x021D3498 +_02098FC0: .word 0x021C8CD4 + + arm_func_start FUN_02098FC4 +FUN_02098FC4: ; 0x02098FC4 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r8, r0 + ldr r7, [r8, #0x4] + mov r4, #0x0 + ldrsb r0, [r7, #0x73] + ldr r6, [r7, #0x68] + mov r1, #0x1 + cmp r0, #0x0 + beq _02098FF4 + cmp r0, #0x4 + movne r1, r4 +_02098FF4: + cmp r1, #0x0 + beq _02099008 + ldrsh r0, [r7, #0x70] + ands r0, r0, #0x4 + beq _020990DC +_02099008: + ldr r2, [r8, #0x28] + cmp r2, #0x0 + beq _02099020 + ldrh r0, [r8, #0x24] + ldrh r1, [r8, #0x26] + bl FUN_0209CB78 +_02099020: + ldrsb r1, [r7, #0x73] + mov r0, #0x1 + cmp r1, #0x0 + beq _02099038 + cmp r1, #0x4 + movne r0, #0x0 +_02099038: + cmp r0, #0x0 + movne r2, #0x36 + moveq r2, #0x2a + ldr r0, [r7, #0x4c] + cmp r1, #0x0 + add r5, r0, r2 + beq _0209905C + cmp r1, #0x4 + bne _02099070 +_0209905C: + ldr r0, [r7, #0x48] + sub r0, r0, r2 + bl FUN_02098F08 + mov r9, r0 + b _02099078 +_02099070: + ldr r0, [r7, #0x48] + sub r9, r0, r2 +_02099078: + mov r0, r5 + mov r1, r9 + mov r2, r8 + bl FUN_02098E64 + mov r1, r0 + cmp r1, #0x0 + ble _020990E0 + mov r0, r5 + bl FUN_0209C030 +_0209909C: ; 0x0209909C + cmp r0, #0x0 + bgt _020990D4 + ldrsb r0, [r7, #0x73] + mov r1, #0x1 + cmp r0, #0x0 + beq _020990BC + cmp r0, #0x4 + movne r1, #0x0 +_020990BC: + cmp r1, #0x0 + ldrnesh r0, [r7, #0x70] + mvn r4, #0x4b + bicne r0, r0, #0xe + strneh r0, [r7, #0x70] + b _020990E0 +_020990D4: + add r4, r4, r0 + b _02099078 +_020990DC: + mvn r4, #0x4b +_020990E0: + ldrh r2, [r8, #0x20] + add r1, r6, #0x100 + add r0, r6, #0x104 + strh r2, [r1, #0x2] + bl OS_WakeupThread + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start FUN_02099104 +FUN_02099104: + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r9, r0 + ldr r6, [r9, #0x68] + mov r4, r1 + mov r8, r2 + ldr r1, [r6, #0x10c] + ldr r2, [sp, #0x28] + ldr r0, _0209929C ; =FUN_02098FC4 + mov r7, r3 + bl FUN_02097A98 + movs r5, r0 + addeq sp, sp, #0x4 + mvneq r0, #0x20 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + ldr r0, [sp, #0x28] + ands r0, r0, #0x1 + beq _02099164 + ldrsb r0, [r9, #0x73] + cmp r0, #0x1 + movne r0, #0x3 + strneb r0, [r5, #0xd] + bne _0209916C +_02099164: + mov r0, #0x0 + strb r0, [r5, #0xd] +_0209916C: + ldr r2, [r6, #0xf8] + add r1, r7, r8 + cmp r1, r2 + ldr r3, [r6, #0xfc] + bge _020991A0 + add r0, r3, r7 + str r0, [r5, #0x10] + str r8, [r5, #0x14] + mov r0, #0x0 + str r0, [r5, #0x18] + mov r7, r1 + str r0, [r5, #0x1c] + b _020991D8 +_020991A0: + add r0, r3, r7 + str r0, [r5, #0x10] + sub r0, r2, r7 + str r0, [r5, #0x14] + str r3, [r5, #0x18] + ldr r0, [r5, #0x14] + sub r0, r8, r0 + str r0, [r5, #0x1c] + ldr r7, [r5, #0x1c] + ldr r0, [r5, #0x14] + ldr r1, [r5, #0x18] + mov r2, r7 + add r0, r4, r0 + bl MI_CpuCopy8 +_020991D8: + ldr r1, [r5, #0x10] + ldr r2, [r5, #0x14] + mov r0, r4 + bl MI_CpuCopy8 + add r0, r6, #0x100 + ldrh r4, [r0, #0x0] + strh r7, [r5, #0x20] + ldrh r1, [r5, #0x20] + strh r1, [r0, #0x0] + ldrsb r0, [r9, #0x73] + cmp r0, #0x1 + bne _02099268 + ldrh r0, [r9, #0x74] + cmp r0, #0x0 + bne _02099224 + bl FUN_0209CC8C + strh r0, [r9, #0x74] + ldrh r0, [r9, #0x74] + strh r0, [r9, #0xa] +_02099224: + ldrh r0, [r9, #0x74] + strh r0, [r5, #0x24] + ldr r1, [r9, #0x78] + cmp r1, #0x0 + beq _02099244 + ldr r0, [sp, #0x24] + cmp r0, #0x0 + beq _02099258 +_02099244: + ldr r1, [sp, #0x24] + ldrh r0, [sp, #0x20] + str r1, [r5, #0x28] + strh r0, [r5, #0x26] + b _02099270 +_02099258: + str r1, [r5, #0x28] + ldrh r0, [r9, #0x76] + strh r0, [r5, #0x26] + b _02099270 +_02099268: + mov r0, #0x0 + str r0, [r5, #0x28] +_02099270: + ldr r0, [r6, #0x10c] + mov r1, r5 + bl FUN_02097948 +_0209927C: ; 0x0209927C + cmp r0, #0x0 + addne r0, r6, #0x100 + movne r8, #0x0 + strneh r4, [r0, #0x0] + mov r0, r8 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_0209929C: .word FUN_02098FC4 + + arm_func_start FUN_020992A0 +FUN_020992A0: + ldr r2, [r0, #0x68] + add r0, r2, #0x100 + ldrh r1, [r0, #0x0] + ldrh r0, [r0, #0x2] + ldr r2, [r2, #0xf8] + sub r0, r0, r1 + subs r0, r0, #0x1 + addmi r0, r0, r2 + bx lr + + arm_func_start FUN_020992C4 +FUN_020992C4: ; 0x020992C4 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r10, r0 + mov r9, r1 + mov r8, r2 + cmp r8, r9 + mov r11, r3 + ldr r7, [r10, #0x68] + movgt r8, r9 + bl OS_DisableInterrupts + ldr r1, [sp, #0x28] + str r0, [sp, #0x0] + and r5, r1, #0x1 + add r4, r7, #0x104 +_020992FC: + mov r0, r10 + bl FUN_020992A0 + mov r6, r0 + cmp r6, r8 + blt _02099328 + add r0, r7, #0x100 + ldrh r0, [r0, #0x0] + cmp r6, r9 + movge r6, r9 + str r0, [r11, #0x0] + b _02099340 +_02099328: + cmp r5, #0x0 + moveq r6, #0x0 + beq _02099340 + mov r0, r4 + bl OS_SleepThread + b _020992FC +_02099340: + ldr r0, [sp, #0x0] + bl OS_RestoreInterrupts + mov r0, r6 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_02099358 +FUN_02099358: ; 0x02099358 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x1c + mov r10, r0 + ldr r4, [r10, #0x68] + ldrsb r0, [r10, #0x73] + ldr r4, [r4, #0x10c] + mov r9, r1 + cmp r0, #0x1 + ldr r0, [r4, #0x48] + mov r8, r2 + str r3, [sp, #0xc] + ldr r7, [sp, #0x40] + ldr r6, [sp, #0x44] + mov r4, #0x0 + bne _020993B4 + sub r0, r0, #0x2a + cmp r8, r0 + addgt sp, sp, #0x1c + mvngt r0, #0x22 + ldmgtia sp!, {r4-r11,lr} + bxgt lr + str r8, [sp, #0x10] + b _020993C4 +_020993B4: + sub r0, r0, #0x36 + str r0, [sp, #0x10] + cmp r8, r0 + strle r8, [sp, #0x10] +_020993C4: + cmp r8, #0x0 + ble _02099460 + and r11, r6, #0x1 +_020993D0: + ldr r2, [sp, #0x10] + mov r0, r10 + mov r1, r8 + add r3, sp, #0x14 + str r6, [sp, #0x0] + bl FUN_020992C4 + mov r5, r0 + cmp r5, #0x0 + ble _02099438 + ldr r0, [sp, #0xc] + mov r1, r9 + str r0, [sp, #0x0] + str r7, [sp, #0x4] + str r6, [sp, #0x8] + ldr r3, [sp, #0x14] + mov r0, r10 + mov r2, r5 + bl FUN_02099104 +_02099418: ; 0x02099418 + cmp r0, #0x0 + addle sp, sp, #0x1c + mvnle r0, #0x5 + ldmleia sp!, {r4-r11,lr} + bxle lr + add r9, r9, r5 + sub r8, r8, r5 + add r4, r4, r5 +_02099438: + cmp r11, #0x0 + bne _02099458 + cmp r5, #0x0 + bgt _02099460 + add sp, sp, #0x1c + mvn r0, #0x5 + ldmia sp!, {r4-r11,lr} + bx lr +_02099458: + cmp r8, #0x0 + bgt _020993D0 +_02099460: + mov r0, r4 + add sp, sp, #0x1c + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_02099470 +FUN_02099470: ; 0x02099470 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl FUN_02099FA8 +_0209948C: ; 0x0209948C + cmp r0, #0x0 + addne sp, sp, #0x8 + mvnne r0, #0x1b + ldmneia sp!, {r4-r8,lr} + bxne lr + cmp r8, #0x0 + mov r1, #0x0 + beq _020994B8 + ldrsh r0, [r8, #0x70] + ands r0, r0, #0x1 + movne r1, #0x1 +_020994B8: + cmp r1, #0x0 + addeq sp, sp, #0x8 + mvneq r0, #0x26 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldrsb r0, [r8, #0x73] + mov r1, #0x1 + cmp r0, #0x0 + beq _020994E4 + cmp r0, #0x4 + movne r1, #0x0 +_020994E4: + cmp r1, #0x0 + beq _02099514 + ldrsh r0, [r8, #0x70] + ands r0, r0, #0x4 + beq _02099504 + ldrsh r0, [r8, #0x70] + ands r0, r0, #0x8 + beq _02099514 +_02099504: + add sp, sp, #0x8 + mvn r0, #0x37 + ldmia sp!, {r4-r8,lr} + bx lr +_02099514: + ldr r0, [sp, #0x24] + ldr r4, [r8, #0x68] + ands r0, r0, #0x4 + bne _02099530 + ldrsb r0, [r8, #0x72] + cmp r0, #0x0 + bne _02099554 +_02099530: + add r0, r4, #0xe0 + bl OS_TryLockMutex +_02099538: ; 0x02099538 + cmp r0, #0x0 + addeq sp, sp, #0x8 + mvneq r0, #0x5 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r12, #0x0 + b _02099560 +_02099554: + add r0, r4, #0xe0 + bl OS_LockMutex + mov r12, #0x1 +_02099560: + ldr r1, [sp, #0x20] + mov r0, r8 + str r1, [sp, #0x0] + mov r1, r7 + mov r2, r6 + mov r3, r5 + str r12, [sp, #0x4] + bl FUN_02099358 + mov r5, r0 + add r0, r4, #0xe0 + bl OS_UnlockMutex + mov r0, r5 + add sp, sp, #0x8 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_0209959C +FUN_0209959C: ; 0x0209959C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, [r0, #0x4] + mov r1, #0x1 + ldrsb r0, [r0, #0x73] + cmp r0, #0x0 + beq _020995C0 + cmp r0, #0x4 + movne r1, #0x0 +_020995C0: + cmp r1, #0x0 + beq _020995CC + bl FUN_0209C840 +_020995CC: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_020995DC +FUN_020995DC: ; 0x020995DC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + bl FUN_02099FA8 +_020995EC: ; 0x020995EC + cmp r0, #0x0 + addne sp, sp, #0x4 + mvnne r0, #0x1b + ldmneia sp!, {r4-r5,lr} + bxne lr + cmp r4, #0x0 + mov r1, #0x0 + beq _02099618 + ldrsh r0, [r4, #0x70] + ands r0, r0, #0x1 + movne r1, #0x1 +_02099618: + cmp r1, #0x0 + addeq sp, sp, #0x4 + mvneq r0, #0x26 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldrsh r0, [r4, #0x70] + ands r0, r0, #0x4 + beq _02099644 + ldrsh r0, [r4, #0x70] + ands r0, r0, #0x8 + beq _02099654 +_02099644: + add sp, sp, #0x4 + mvn r0, #0x37 + ldmia sp!, {r4-r5,lr} + bx lr +_02099654: + ldrsh r0, [r4, #0x70] + orr r0, r0, #0x8 + strh r0, [r4, #0x70] + ldr r5, [r4, #0x68] + cmp r5, #0x0 + beq _020996AC + ldr r1, [r5, #0x10c] + cmp r1, #0x0 + beq _020996AC + ldrsb r2, [r4, #0x72] + ldr r0, _020996BC ; =FUN_0209959C + bl FUN_02097A98 + movs r1, r0 + addeq sp, sp, #0x4 + mvneq r0, #0x20 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r0, [r5, #0x10c] + bl FUN_02097948 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020996AC: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020996BC: .word FUN_0209959C + + arm_func_start FUN_020996C0 +FUN_020996C0: ; 0x020996C0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + bl OS_DisableInterrupts + ldr r4, _02099704 ; =0x021C8D34 + mov r5, r0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020996F0 +_020996E0: + bl FUN_020997B8 +_020996E4: ; 0x020996E4 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + bne _020996E0 +_020996F0: + mov r0, r5 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_02099704: .word 0x021C8D34 + + arm_func_start FUN_02099708 +FUN_02099708: ; 0x02099708 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + movs r8, r0 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + add r0, r8, #0x20 + bl OS_JoinThread + bl OS_DisableInterrupts + mov r7, r0 + bl OS_DisableScheduler + add r1, sp, #0x0 + mov r0, r8 + mov r2, #0x0 + bl OS_ReceiveMessage +_02099744: ; 0x02099744 + cmp r0, #0x0 + beq _0209979C + add r4, sp, #0x0 + mvn r6, #0xa + mov r5, #0x0 +_02099758: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _02099784 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + beq _0209977C + mov r1, r6 + mov r2, r5 + bl OS_SendMessage +_0209977C: + ldr r0, [sp, #0x0] + bl FUN_02097A64 +_02099784: + mov r0, r8 + mov r1, r4 + mov r2, r5 + bl OS_ReceiveMessage +_02099794: ; 0x02099794 + cmp r0, #0x0 + bne _02099758 +_0209979C: + bl OS_EnableScheduler + bl OS_RescheduleThread + mov r0, r7 + bl OS_RestoreInterrupts + add sp, sp, #0x8 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_020997B8 +FUN_020997B8: + stmdb sp!, {r4-r6,lr} + movs r4, r0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + mov r0, #0x0 + strh r0, [r4, #0x70] + ldrsb r1, [r4, #0x73] + mov r2, #0x1 + cmp r1, #0x0 + beq _020997E8 + cmp r1, #0x4 + movne r2, r0 +_020997E8: + cmp r2, #0x0 + beq _02099804 + ldr r0, [r4, #0x68] + bl FUN_02099708 + ldr r0, [r4, #0x64] + bl FUN_02099708 + b _02099884 +_02099804: + cmp r1, #0x1 + bne _02099874 + ldr r0, [r4, #0x64] + ldr r0, [r0, #0x104] + cmp r0, #0x0 + beq _0209983C + ldr r5, _020998C0 ; =0x021C8CC0 +_02099820: + ldr r1, [r5, #0x0] + ldr r6, [r0, #0x0] + ldr r1, [r1, #0x1c] + blx r1 + mov r0, r6 + cmp r6, #0x0 + bne _02099820 +_0209983C: + ldr r0, [r4, #0x64] + mov r1, #0x0 + add r0, r0, #0x100 + strh r1, [r0, #0x8] + ldr r0, [r4, #0x64] + str r1, [r0, #0x100] + ldr r0, [r4, #0x64] + str r1, [r0, #0x104] + ldr r0, [r4, #0x64] + add r0, r0, #0x10c + bl OS_WakeupThread + ldr r0, [r4, #0x64] + bl FUN_02099708 + b _02099884 +_02099874: + cmp r1, #0x2 + bne _02099884 + ldr r0, [r4, #0x68] + bl FUN_02099708 +_02099884: + bl OS_DisableInterrupts + mov r5, r0 + mov r0, r4 + bl FUN_0209A054 + mov r0, r4 + bl FUN_02099FF0 + ldr r1, _020998C0 ; =0x021C8CC0 + mov r0, r4 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x1c] + blx r1 + mov r0, r5 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020998C0: .word 0x021C8CC0 + + arm_func_start FUN_020998C4 +FUN_020998C4: ; 0x020998C4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r4, [r0, #0x4] + mov r1, #0x1 + ldrsb r0, [r4, #0x73] + cmp r0, #0x0 + beq _020998E8 + cmp r0, #0x4 + movne r1, #0x0 +_020998E8: + cmp r1, #0x0 + beq _02099908 + ldr r0, [r4, #0x68] + add r0, r0, #0x20 + bl OS_JoinThread + bl FUN_0209C840 + bl FUN_0209C7AC + bl FUN_0209CB24 +_02099908: + bl FUN_0209CC10 + ldrsh r0, [r4, #0x70] + mov r1, #0x0 + bic r0, r0, #0x6 + strh r0, [r4, #0x70] + ldrsb r0, [r4, #0x73] + cmp r0, #0x2 + ldreq r0, [r4, #0x68] + ldrne r0, [r4, #0x64] + bl FUN_020979F8 + bl OS_DisableInterrupts + mov r5, r0 + mov r0, r4 + bl FUN_0209A054 + mov r0, r4 + bl FUN_0209A06C + mov r0, r5 + bl OS_RestoreInterrupts + ldrsh r1, [r4, #0x70] + mov r0, #0x0 + orr r1, r1, #0x20 + strh r1, [r4, #0x70] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_0209996C +FUN_0209996C: ; 0x0209996C + stmdb sp!, {r4,lr} + mov r4, r0 + cmp r4, #0x0 + mvnle r0, #0x1b + ldmleia sp!, {r4,lr} + bxle lr + bl FUN_02099F78 +_02099988: ; 0x02099988 + cmp r0, #0x0 + mvnne r0, #0x19 + ldmneia sp!, {r4,lr} + bxne lr + mov r0, r4 + bl FUN_02099FA8 +_020999A0: ; 0x020999A0 + cmp r0, #0x0 + movne r0, #0x0 + ldmneia sp!, {r4,lr} + bxne lr + cmp r4, #0x0 + mov r1, #0x0 + beq _020999C8 + ldrsh r0, [r4, #0x70] + ands r0, r0, #0x1 + movne r1, #0x1 +_020999C8: + cmp r1, #0x0 + mvneq r0, #0x26 + ldmeqia sp!, {r4,lr} + bxeq lr + ldrsh r0, [r4, #0x70] + ands r0, r0, #0x10 + mvnne r0, #0x19 + ldmneia sp!, {r4,lr} + bxne lr + ldrsh r0, [r4, #0x70] + mov r1, #0x1 + orr r0, r0, #0x18 + strh r0, [r4, #0x70] + ldrsb r0, [r4, #0x73] + cmp r0, #0x0 + beq _02099A10 + cmp r0, #0x4 + movne r1, #0x0 +_02099A10: + cmp r1, #0x0 + beq _02099A24 + ldr r0, [r4, #0x68] + mov r1, #0x0 + bl FUN_020979F8 +_02099A24: + ldr r0, _02099A54 ; =FUN_020998C4 + mov r1, r4 + mov r2, #0x1 + bl FUN_02097A98 + mov r1, r0 + mov r2, #0x0 + mov r0, r4 + str r2, [r1, #0x8] + bl FUN_020979DC +_02099A48: ; 0x02099A48 + mov r0, #0x0 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_02099A54: .word FUN_020998C4 + + arm_func_start FUN_02099A58 +FUN_02099A58: + stmdb sp!, {r4,lr} + movs r4, r0 + bmi _02099A88 + bl FUN_02099FA8 +_02099A68: ; 0x02099A68 + cmp r0, #0x0 + beq _02099A88 + mov r0, r4 + bl FUN_02099F78 +_02099A78: ; 0x02099A78 + cmp r0, #0x0 + moveq r0, #0x1 + ldmeqia sp!, {r4,lr} + bxeq lr +_02099A88: + mov r0, #0x0 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_02099A94 +FUN_02099A94: ; 0x02099A94 + stmdb sp!, {r4,lr} + ldr r0, _02099B10 ; =0x021C8CD0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02099AE8 + bl FUN_02099B14 + movs r4, r0 + bne _02099AE0 + ldr r0, _02099B10 ; =0x021C8CD0 + ldr r0, [r0, #0x0] + bl FUN_0209996C + ldr r0, _02099B10 ; =0x021C8CD0 + ldr r0, [r0, #0x0] + bl FUN_02099A58 +_02099ACC: ; 0x02099ACC + cmp r0, #0x0 + ldrne r0, _02099B10 ; =0x021C8CD0 + movne r1, #0x0 + strne r1, [r0, #0x0] + mvn r4, #0x19 +_02099AE0: + bl FUN_020996C0 + b _02099B04 +_02099AE8: + bl FUN_0209FD34 +_02099AEC: ; 0x02099AEC + cmp r0, #0x0 + mvneq r4, #0x19 + beq _02099B04 + mov r0, #0x0 + bl FUN_020A87BC + mov r4, #0x0 +_02099B04: + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_02099B10: .word 0x021C8CD0 + + arm_func_start FUN_02099B14 +FUN_02099B14: ; 0x02099B14 + stmdb sp!, {r4-r6,lr} + ldr r4, _02099BBC ; =0x021C8CD0 + ldr r5, _02099BC0 ; =0x021C8D30 +_02099B20: + bl OS_DisableInterrupts + ldr r6, [r5, #0x0] + cmp r6, #0x0 + beq _02099B54 + ldr r2, [r4, #0x0] +_02099B34: + cmp r6, r2 + beq _02099B48 + ldrsh r1, [r6, #0x70] + ands r1, r1, #0x10 + beq _02099B54 +_02099B48: + ldr r6, [r6, #0x7c] + cmp r6, #0x0 + bne _02099B34 +_02099B54: + bl OS_RestoreInterrupts +_02099B58: ; 0x02099B58 + cmp r6, #0x0 + beq _02099B6C + mov r0, r6 + bl FUN_0209996C + b _02099B20 +_02099B6C: + ldr r0, _02099BC0 ; =0x021C8D30 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _02099B98 + ldr r0, _02099BBC ; =0x021C8CD0 + ldr r0, [r0, #0x0] + cmp r1, r0 + bne _02099BB0 + ldr r0, [r1, #0x7c] + cmp r0, #0x0 + bne _02099BB0 +_02099B98: + ldr r0, _02099BC4 ; =0x021C8D34 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr +_02099BB0: + mvn r0, #0x19 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_02099BBC: .word 0x021C8CD0 +_02099BC0: .word 0x021C8D30 +_02099BC4: .word 0x021C8D34 + + arm_func_start FUN_02099BC8 +FUN_02099BC8: ; 0x02099BC8 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r1, _02099C68 ; =0x021C8CC8 + ldr r0, [r1, #0x0] + cmp r0, #0x0 + ldreq r0, _02099C6C ; =0x021C8F04 + ldreq r0, [r0, #0x0] + streq r0, [r1, #0x0] + bl FUN_02099A94 + mvn r4, #0x19 + cmp r0, r4 + bne _02099C10 + mov r5, #0x64 +_02099BFC: + mov r0, r5 + bl OS_Sleep + bl FUN_02099A94 + cmp r0, r4 + beq _02099BFC +_02099C10: + bl FUN_02097B14 + movs r4, r0 + bmi _02099C58 + bl FUN_0209FCC4 +_02099C20: ; 0x02099C20 + mov r0, #0x0 + bl FUN_0209FD24 + ldr r0, _02099C70 ; =0x021C8CC0 + ldr r1, [r0, #0x0] + ldr r0, [r1, #0x28] + cmp r0, #0x0 + bne _02099C4C + ldr r0, _02099C74 ; =0x021C8CD4 + ldr r1, [r1, #0x1c] + ldr r0, [r0, #0x1c] + blx r1 +_02099C4C: + ldr r0, _02099C70 ; =0x021C8CC0 + mov r1, #0x0 + str r1, [r0, #0x0] +_02099C58: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_02099C68: .word 0x021C8CC8 +_02099C6C: .word 0x021C8F04 +_02099C70: .word 0x021C8CC0 +_02099C74: .word 0x021C8CD4 + + arm_func_start FUN_02099C78 +FUN_02099C78: + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _02099CE0 ; =0x021C8F04 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + bne _02099CBC + ldr r0, _02099CE4 ; =0x021C8CCC + ldr r0, [r0, #0x0] + and r0, r0, #0x3 + cmp r0, #0x1 + bne _02099CCC + bl OS_GetProcMode + cmp r0, #0x12 + beq _02099CCC + mov r0, #0xa + bl OS_Sleep + b _02099CCC +_02099CBC: + ldr r0, _02099CE8 ; =0x021C8CC8 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + streq r2, [r0, #0x0] +_02099CCC: + ldr r0, _02099CE0 ; =0x021C8F04 + ldr r0, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_02099CE0: .word 0x021C8F04 +_02099CE4: .word 0x021C8CCC +_02099CE8: .word 0x021C8CC8 + + arm_func_start FUN_02099CEC +FUN_02099CEC: ; 0x02099CEC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + bl FUN_02099C78 +_02099D00: ; 0x02099D00 + cmp r0, #0x0 + ldrne r1, _02099D24 ; =0x021C8F1C + mvneq r0, #0x26 + movne r0, #0x0 + strne r5, [r1, #0x0] + strne r4, [r1, #0x4] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_02099D24: .word 0x021C8F1C + + arm_func_start FUN_02099D28 +FUN_02099D28: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r4, r0 + bl OS_DisableInterrupts + ldr r1, _02099D84 ; =0x021C8F1C + mov r5, r0 + ldr r7, [r1, #0x0] + mov r2, #0x0 + ldr r6, [r1, #0x4] + mov r0, r4 + str r2, [r1, #0x0] + str r2, [r1, #0x4] + bl FUN_0209AB80 + ldr r1, _02099D84 ; =0x021C8F1C + mov r4, r0 + mov r0, r5 + str r7, [r1, #0x0] + str r6, [r1, #0x4] + bl OS_RestoreInterrupts + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_02099D84: .word 0x021C8F1C + + arm_func_start FUN_02099D88 +FUN_02099D88: ; 0x02099D88 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x64 + movs r4, r0 + addeq sp, sp, #0x64 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r1, _02099E34 ; =0x021C8CC0 + mov r0, #0xfd0 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x18] + blx r1 + movs r5, r0 + addeq sp, sp, #0x64 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + add r0, sp, #0x0 + mov r1, #0x0 + mov r2, #0x64 + bl MI_CpuFill8 + ldr r3, _02099E38 ; =0x00000B68 + ldr r1, _02099E3C ; =0x00000466 + add r2, r5, r3 + add r0, sp, #0x0 + str r5, [sp, #0x40] + str r3, [sp, #0x3c] + str r2, [sp, #0x4c] + str r1, [sp, #0x48] + bl FUN_0209CC28 + mov r0, r4 + bl FUN_0209AB80 + mov r4, r0 + bl FUN_0209CC10 + ldr r1, _02099E34 ; =0x021C8CC0 + mov r0, r5 + ldr r1, [r1, #0x0] + ldr r1, [r1, #0x1c] + blx r1 + mov r0, r4 + add sp, sp, #0x64 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_02099E34: .word 0x021C8CC0 +_02099E38: .word 0x00000B68 +_02099E3C: .word 0x00000466 + + arm_func_start FUN_02099E40 +FUN_02099E40: + ldr r2, [r0, #0x64] + mov r3, #0x0 + cmp r2, #0x0 + beq _02099E88 + ldrsb r1, [r0, #0x73] + cmp r1, #0x1 + bne _02099E6C + ldr r0, [r2, #0x104] + cmp r0, #0x0 + ldrneh r3, [r0, #0x4] + b _02099E88 +_02099E6C: + cmp r1, #0x0 + beq _02099E7C + cmp r1, #0x4 + bne _02099E88 +_02099E7C: + ldr r1, [r0, #0x44] + ldr r0, [r2, #0xf8] + sub r3, r1, r0 +_02099E88: + mov r0, r3 + bx lr + + arm_func_start FUN_02099E90 +FUN_02099E90: + stmdb sp!, {r4-r6,lr} + mov r4, #0x0 + mov r5, r0 + bl FUN_02099FA8 +_02099EA0: ; 0x02099EA0 + cmp r0, #0x0 + orrne r4, r4, #0x80 + bne _02099F60 + ldrsh r0, [r5, #0x70] + ands r0, r0, #0x40 + ldrsb r0, [r5, #0x73] + orrne r4, r4, #0x20 + cmp r0, #0x1 + beq _02099ED0 + ldrsh r0, [r5, #0x70] + ands r0, r0, #0x4 + beq _02099F00 +_02099ED0: + bl OS_DisableInterrupts + mov r6, r0 + mov r0, r5 + bl FUN_02099E40 +_02099EE0: ; 0x02099EE0 + cmp r0, #0x0 + mov r0, r5 + orrgt r4, r4, #0x1 + bl FUN_020992A0 +_02099EF0: ; 0x02099EF0 + cmp r0, #0x0 + mov r0, r6 + orrgt r4, r4, #0x8 + bl OS_RestoreInterrupts +_02099F00: + ldrsb r0, [r5, #0x73] + mov r1, #0x1 + cmp r0, #0x0 + beq _02099F18 + cmp r0, #0x4 + movne r1, #0x0 +_02099F18: + cmp r1, #0x0 + beq _02099F60 + ldrsh r0, [r5, #0x70] + ands r0, r0, #0x4 + beq _02099F48 + ldrb r0, [r5, #0x8] + cmp r0, #0x4 + beq _02099F48 + ands r0, r4, #0x1 + ldreqsh r0, [r5, #0x70] + biceq r0, r0, #0x6 + streqh r0, [r5, #0x70] +_02099F48: + ldrsh r0, [r5, #0x70] + ands r0, r0, #0x2 + bne _02099F60 + ldrsh r0, [r5, #0x70] + ands r0, r0, #0x4 + orreq r4, r4, #0x40 +_02099F60: + mov r0, r4 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_02099F6C +FUN_02099F6C: + add r0, r0, #0x3 + bic r0, r0, #0x3 + bx lr + + arm_func_start FUN_02099F78 +FUN_02099F78: + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r1, r0 + ldr r0, _02099FA4 ; =0x021C8D34 + bl FUN_0209A008 +_02099F8C: ; 0x02099F8C + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_02099FA4: .word 0x021C8D34 + + arm_func_start FUN_02099FA8 +FUN_02099FA8: + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r1, r0 + cmp r1, #0x0 + ble _02099FCC + ldr r0, _02099FEC ; =0x021C8D30 + bl FUN_0209A008 +_02099FC4: ; 0x02099FC4 + cmp r0, #0x0 + bne _02099FDC +_02099FCC: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {lr} + bx lr +_02099FDC: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_02099FEC: .word 0x021C8D30 + + arm_func_start FUN_02099FF0 +FUN_02099FF0: ; 0x02099FF0 + ldr ip, _0209A000 ; =FUN_0209A034 + mov r1, r0 + ldr r0, _0209A004 ; =0x021C8D34 + bx r12 + .balign 4 +_0209A000: .word FUN_0209A034 +_0209A004: .word 0x021C8D34 + + arm_func_start FUN_0209A008 +FUN_0209A008: + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _0209A02C +_0209A014: + cmp r2, r1 + bxeq lr + add r0, r2, #0x7c + ldr r2, [r2, #0x7c] + cmp r2, #0x0 + bne _0209A014 +_0209A02C: + mov r0, #0x0 + bx lr + + arm_func_start FUN_0209A034 +FUN_0209A034: ; 0x0209A034 + stmdb sp!, {r4,lr} + mov r4, r1 + bl FUN_0209A008 +_0209A040: ; 0x0209A040 + cmp r0, #0x0 + ldrne r1, [r4, #0x7c] + strne r1, [r0, #0x0] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_0209A054 +FUN_0209A054: ; 0x0209A054 + ldr ip, _0209A064 ; =FUN_0209A034 + mov r1, r0 + ldr r0, _0209A068 ; =0x021C8D30 + bx r12 + .balign 4 +_0209A064: .word FUN_0209A034 +_0209A068: .word 0x021C8D30 + + arm_func_start FUN_0209A06C +FUN_0209A06C: ; 0x0209A06C + ldr ip, _0209A07C ; =FUN_0209A084 + mov r1, r0 + ldr r0, _0209A080 ; =0x021C8D34 + bx r12 + .balign 4 +_0209A07C: .word FUN_0209A084 +_0209A080: .word 0x021C8D34 + + arm_func_start FUN_0209A084 +FUN_0209A084: ; 0x0209A084 + ldr r2, [r0, #0x0] + str r2, [r1, #0x7c] + str r1, [r0, #0x0] + bx lr + + arm_func_start FUN_0209A094 +FUN_0209A094: ; 0x0209A094 + ldr ip, _0209A0A4 ; =FUN_0209A084 + mov r1, r0 + ldr r0, _0209A0A8 ; =0x021C8D30 + bx r12 + .balign 4 +_0209A0A4: .word FUN_0209A084 +_0209A0A8: .word 0x021C8D30 + + arm_func_start FUN_0209A0AC +FUN_0209A0AC: ; 0x0209A0AC + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r9, r2 + str r0, [sp, #0x0] + mov r0, #0x1 + str r0, [sp, #0x8] + mov r0, #0x0 + mov r8, r3 + mvn r2, #0x0 + cmp r8, r2 + cmpeq r9, r2 + movne r11, #0x1 + mov r10, r1 + moveq r11, #0x0 + str r0, [sp, #0x4] +_0209A0E8: + ldr r5, [sp, #0x4] + ldr r7, [sp, #0x0] + mov r6, r5 + cmp r10, #0x0 + bls _0209A128 +_0209A0FC: + ldrsh r1, [r7, #0x4] + ldr r0, [r7, #0x0] + orr r4, r1, #0xe0 + bl FUN_02099E90 +_0209A10C: ; 0x0209A10C + ands r0, r4, r0 + strh r0, [r7, #0x6] + add r6, r6, #0x1 + addne r5, r5, #0x1 + cmp r6, r10 + add r7, r7, #0x8 + blo _0209A0FC +_0209A128: + cmp r5, #0x0 + bgt _0209A160 + cmp r11, #0x0 + beq _0209A148 + mov r1, #0x0 + subs r0, r1, r9 + sbcs r0, r1, r8 + bge _0209A160 +_0209A148: + ldr r0, [sp, #0x8] + bl OS_Sleep + ldr r0, _0209A170 ; =0x0000020B + subs r9, r9, r0 + sbc r8, r8, #0x0 + b _0209A0E8 +_0209A160: + mov r0, r5 + add sp, sp, #0xc + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_0209A170: .word 0x0000020B + + arm_func_start FUN_0209A174 +FUN_0209A174: ; 0x0209A174 + mov r2, r0, lsr #0x18 + strb r2, [r1, #0x0] + mov r2, r0, lsr #0x10 + strb r2, [r1, #0x1] + mov r2, r0, lsr #0x8 + strb r2, [r1, #0x2] + strb r0, [r1, #0x3] + bx lr + + arm_func_start FUN_0209A194 +FUN_0209A194: ; 0x0209A194 + stmdb sp!, {r4,lr} + sub sp, sp, #0x18 + cmp r0, #0x2 + mov r4, r2 + addne sp, sp, #0x18 + movne r0, #0x0 + ldmneia sp!, {r4,lr} + bxne lr + cmp r3, #0x10 + addcc sp, sp, #0x18 + movcc r0, #0x0 + ldmccia sp!, {r4,lr} + bxcc lr + mov r0, r1 + add r1, sp, #0xc + mov r2, #0x4 + bl MI_CpuCopy8 + ldr r0, [sp, #0xc] + add r1, sp, #0x10 + bl FUN_0209A174 + ldrb r1, [sp, #0x12] + ldr r2, _0209A220 ; =0x0210620C + mov r0, r4 + str r1, [sp, #0x0] + ldrb r3, [sp, #0x11] + mov r1, #0x10 + str r3, [sp, #0x4] + ldrb r3, [sp, #0x10] + str r3, [sp, #0x8] + ldrb r3, [sp, #0x13] + bl OS_SNPrintf + mov r0, r4 + add sp, sp, #0x18 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_0209A220: .word 0x0210620C + + arm_func_start FUN_0209A224 +FUN_0209A224: ; 0x0209A224 + stmdb sp!, {r4,lr} + mov r4, r1 + bl FUN_02099D28 +_0209A230: ; 0x0209A230 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + mov r2, r0, lsr #0x18 + mov r1, r0, lsr #0x8 + mov r3, r0, lsl #0x8 + mov r12, r0, lsl #0x18 + and r2, r2, #0xff + and r0, r1, #0xff00 + and r1, r3, #0xff0000 + orr r0, r2, r0 + and r2, r12, #0xff000000 + orr r0, r1, r0 + orr r0, r2, r0 + str r0, [r4, #0x0] + mov r0, #0x1 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_0209A27C +FUN_0209A27C: ; 0x0209A27C + stmdb sp!, {r0-r3} + + arm_func_start FUN_0209A280 +FUN_0209A280: ; 0x0209A280 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, _0209A2B0 ; =0x021C8D5C + add r1, sp, #0x8 + mov r0, #0x2 + mov r3, #0x10 + bl FUN_0209A194 + ldr r0, _0209A2B0 ; =0x021C8D5C + add sp, sp, #0x4 + ldmia sp!, {lr} + add sp, sp, #0x10 + bx lr + .balign 4 +_0209A2B0: .word 0x021C8D5C + + arm_func_start THUNK_FUN_02099BC8 +THUNK_FUN_02099BC8: ; 0x0209A2B4 + ldr ip, _0209A2BC ; =FUN_02099BC8 + bx r12 + .balign 4 +_0209A2BC: .word FUN_02099BC8 + + arm_func_start FUN_0209A2C0 +FUN_0209A2C0: ; 0x0209A2C0 + stmdb sp!, {r4-r8,lr} + ldr r1, [r0, #0xc] + ldr ip, _0209A430 ; =0x021C8D6C + cmp r1, #0x1 + moveq r1, #0x1 + movne r1, #0x0 + str r1, [r12, #0x0] + ldr r6, [r0, #0x10] + ldr r5, _0209A434 ; =FUN_0209A484 + mov r2, r6, lsr #0x18 + mov r1, r6, lsr #0x8 + mov r3, r6, lsl #0x8 + and r2, r2, #0xff + and r1, r1, #0xff00 + mov r6, r6, lsl #0x18 + orr r1, r2, r1 + and r3, r3, #0xff0000 + orr r1, r3, r1 + and r2, r6, #0xff000000 + orr r1, r2, r1 + str r1, [r12, #0x4] + ldr r7, [r0, #0x14] + ldr r4, _0209A438 ; =FUN_0209A444 + mov r2, r7, lsr #0x18 + mov r1, r7, lsr #0x8 + mov r6, r7, lsl #0x8 + and r2, r2, #0xff + and r1, r1, #0xff00 + mov r7, r7, lsl #0x18 + orr r1, r2, r1 + and r6, r6, #0xff0000 + and r2, r7, #0xff000000 + orr r1, r6, r1 + orr r1, r2, r1 + str r1, [r12, #0x8] + ldr r1, [r0, #0x18] + ldr r3, _0209A43C ; =0x021C8D40 + mov r7, r1, lsr #0x18 + mov r6, r1, lsr #0x8 + mov r8, r1, lsl #0x8 + and r7, r7, #0xff + and r6, r6, #0xff00 + mov r1, r1, lsl #0x18 + orr r6, r7, r6 + and r8, r8, #0xff0000 + and r7, r1, #0xff000000 + orr r1, r8, r6 + orr r1, r7, r1 + str r1, [r12, #0xc] + ldr r1, [r0, #0x1c] + ldr r2, _0209A440 ; =0x021C8D3C + mov r7, r1, lsr #0x18 + mov r6, r1, lsr #0x8 + mov r8, r1, lsl #0x8 + and r7, r7, #0xff + and r6, r6, #0xff00 + mov r1, r1, lsl #0x18 + orr r6, r7, r6 + and r8, r8, #0xff0000 + and r7, r1, #0xff000000 + orr r1, r8, r6 + orr r1, r7, r1 + str r1, [r12, #0x10] + ldr r1, [r0, #0x20] + mov lr, #0x40 + mov r7, r1, lsr #0x18 + mov r6, r1, lsr #0x8 + mov r8, r1, lsl #0x8 + and r7, r7, #0xff + and r6, r6, #0xff00 + mov r1, r1, lsl #0x18 + orr r6, r7, r6 + and r8, r8, #0xff0000 + and r7, r1, #0xff000000 + orr r1, r8, r6 + orr r1, r7, r1 + str r5, [r12, #0x18] + str r4, [r12, #0x1c] + str r1, [r12, #0x14] + ldr r1, [r0, #0x4] + str r1, [r3, #0x0] + ldr r1, [r0, #0x8] + str lr, [r12, #0x20] + str r1, [r2, #0x0] + ldr r1, [r0, #0x2c] + str r1, [r12, #0x30] + ldr r1, [r0, #0x30] + mov r0, r12 + str r1, [r12, #0x34] + bl FUN_02097834 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_0209A430: .word 0x021C8D6C +_0209A434: .word FUN_0209A484 +_0209A438: .word FUN_0209A444 +_0209A43C: .word 0x021C8D40 +_0209A440: .word 0x021C8D3C + + arm_func_start FUN_0209A444 +FUN_0209A444: ; 0x0209A444 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + ldr r1, _0209A480 ; =0x021C8D3C + ldr r2, [r0, #-0x4] + ldr r3, [r1, #0x0] + sub r1, r0, #0x4 + mov r0, #0x0 + blx r3 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_0209A480: .word 0x021C8D3C + + arm_func_start FUN_0209A484 +FUN_0209A484: ; 0x0209A484 + stmdb sp!, {r4,lr} + ldr r1, _0209A4B0 ; =0x021C8D40 + add r4, r0, #0x4 + ldr r2, [r1, #0x0] + mov r1, r4 + mov r0, #0x0 + blx r2 + cmp r0, #0x0 + strne r4, [r0], #0x4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_0209A4B0: .word 0x021C8D40 + + arm_func_start FUN_0209A4B4 +FUN_0209A4B4: ; 0x0209A4B4 + cmp r0, #0x0 + mvneq r0, #0x0 + bxeq lr + cmp r1, #0x3 + beq _0209A4D4 + cmp r1, #0x4 + beq _0209A4E8 + b _0209A4FC +_0209A4D4: + ldrsb r0, [r0, #0x72] + cmp r0, #0x1 + moveq r0, #0x0 + movne r0, #0x4 + bx lr +_0209A4E8: + ands r1, r2, #0x4 + movne r1, #0x0 + strneb r1, [r0, #0x72] + moveq r1, #0x1 + streqb r1, [r0, #0x72] +_0209A4FC: + mov r0, #0x0 + bx lr + + arm_func_start FUN_0209A504 +FUN_0209A504: ; 0x0209A504 + stmdb sp!, {r4,lr} + sub sp, sp, #0x8 + mov r4, r1 + add r1, sp, #0x0 + add r2, sp, #0x4 + bl FUN_02098120 +_0209A51C: ; 0x0209A51C + cmp r0, #0x0 + addlt sp, sp, #0x8 + ldmltia sp!, {r4,lr} + bxlt lr + ldrh r1, [sp, #0x0] + mov r2, r1, asr #0x8 + mov r1, r1, lsl #0x8 + and r2, r2, #0xff + and r1, r1, #0xff00 + orr r1, r2, r1 + strh r1, [r4, #0x2] + ldr r12, [sp, #0x4] + mov r2, r12, lsr #0x18 + mov r1, r12, lsr #0x8 + mov r3, r12, lsl #0x8 + mov r12, r12, lsl #0x18 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r3, r3, #0xff0000 + orr r1, r2, r1 + and r2, r12, #0xff000000 + orr r1, r3, r1 + orr r1, r2, r1 + str r1, [r4, #0x4] + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_0209A588 +FUN_0209A588: ; 0x0209A588 + ldr ip, _0209A590 ; =FUN_0209822C + bx r12 + .balign 4 +_0209A590: .word FUN_0209822C + + arm_func_start FUN_0209A594 +FUN_0209A594: ; 0x0209A594 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r12, [r1, #0x0] + ldr r0, [r0, #0x0] + mov r2, r12, lsr #0x18 + mov r4, r0, lsr #0x18 + mov lr, r0, lsr #0x8 + mov r1, r12, lsr #0x8 + mov r5, r0, lsl #0x8 + mov r3, r12, lsl #0x8 + mov r0, r0, lsl #0x18 + mov r12, r12, lsl #0x18 + and r4, r4, #0xff + and lr, lr, #0xff00 + and r2, r2, #0xff + and r1, r1, #0xff00 + and r5, r5, #0xff0000 + orr r4, r4, lr + and r3, r3, #0xff0000 + orr r1, r2, r1 + and lr, r0, #0xff000000 + orr r0, r5, r4 + and r2, r12, #0xff000000 + orr r1, r3, r1 + orr r0, lr, r0 + orr r1, r2, r1 + bl FUN_02099CEC + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_0209A60C +FUN_0209A60C: ; 0x0209A60C + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_02099C78 + mov r2, r0, lsr #0x18 + mov r1, r0, lsr #0x8 + mov r3, r0, lsl #0x8 + mov r12, r0, lsl #0x18 + and r2, r2, #0xff + and r0, r1, #0xff00 + and r1, r3, #0xff0000 + orr r0, r2, r0 + and r2, r12, #0xff000000 + orr r0, r1, r0 + orr r0, r2, r0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_0209A650 +FUN_0209A650: ; 0x0209A650 + stmdb sp!, {r4-r6,lr} + movs r5, r0 + mov r4, r1 + mvneq r0, #0x26 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + bl FUN_02099C78 +_0209A66C: ; 0x0209A66C + cmp r5, #0x0 + ldrneh r1, [r5, #0x74] + mov r2, r0, lsr #0x18 + mov r6, #0x8 + moveq r1, #0x0 + cmp r0, #0x0 + moveq r1, #0x0 + mov r1, r1, lsl #0x10 + mov r3, r1, lsr #0x10 + mov r5, r3, asr #0x8 + mov lr, r3, lsl #0x8 + strb r6, [r4, #0x0] + mov r6, #0x2 + mov r1, r0, lsr #0x8 + mov r3, r0, lsl #0x8 + mov r12, r0, lsl #0x18 + and r0, r1, #0xff00 + and r2, r2, #0xff + orr r0, r2, r0 + and r1, r3, #0xff0000 + and r5, r5, #0xff + and lr, lr, #0xff00 + strb r6, [r4, #0x1] + orr r3, r5, lr + and r2, r12, #0xff000000 + orr r0, r1, r0 + strh r3, [r4, #0x2] + orr r0, r2, r0 + str r0, [r4, #0x4] + mov r0, #0x0 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_0209A6EC +FUN_0209A6EC: ; 0x0209A6EC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl FUN_02099D88 + movs r4, r0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r0, _0209A7A4 ; =0x021C8DA4 + ldr r2, _0209A7A8 ; =0x00000101 + mov r1, #0x0 + bl MI_CpuFill8 + ldr r0, _0209A7A4 ; =0x021C8DA4 + ldr r2, _0209A7A8 ; =0x00000101 + mov r1, r5 + bl STD_CopyLString + mov r1, r4, lsr #0x18 + mov r0, r4, lsr #0x8 + mov r2, r4, lsl #0x8 + mov r3, r4, lsl #0x18 + and r1, r1, #0xff + and r0, r0, #0xff00 + and r2, r2, #0xff0000 + orr r0, r1, r0 + and r3, r3, #0xff000000 + orr r1, r2, r0 + ldr r5, _0209A7A4 ; =0x021C8DA4 + ldr r0, _0209A7AC ; =0x021C8D4C + ldr ip, _0209A7B0 ; =0x021C8D44 + mov r4, #0x0 + ldr r2, _0209A7B4 ; =0x021C8D38 + orr r1, r3, r1 + mov lr, #0x2 + mov r3, #0x4 + str r5, [r0, #0x0] + str r4, [r0, #0x4] + strh lr, [r0, #0x8] + strh r3, [r0, #0xa] + str r12, [r0, #0xc] + str r2, [r12, #0x0] + str r4, [r12, #0x4] + str r1, [r2, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_0209A7A4: .word 0x021C8DA4 +_0209A7A8: .word 0x00000101 +_0209A7AC: .word 0x021C8D4C +_0209A7B0: .word 0x021C8D44 +_0209A7B4: .word 0x021C8D38 + + arm_func_start thunk_FUN_0209996c +thunk_FUN_0209996c: ; 0x0209A7B8 + ldr ip, _0209A7C0 ; =FUN_0209996C + bx r12 + .balign 4 +_0209A7C0: .word FUN_0209996C + + arm_func_start thunk_FUN_020995dc +thunk_FUN_020995dc: ; 0x0209A7C4 + ldr ip, _0209A7CC ; =FUN_020995DC + bx r12 + .balign 4 +_0209A7CC: .word FUN_020995DC + + arm_func_start FUN_0209A7D0 +FUN_0209A7D0: ; 0x0209A7D0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0xc + ldr r5, [sp, #0x20] + cmp r5, #0x0 + moveq r5, #0x0 + moveq r4, r5 + beq _0209A83C + ldrh r4, [r5, #0x2] + ldr r6, [r5, #0x4] + mov r7, r4, asr #0x8 + mov r12, r4, lsl #0x8 + mov r4, r6, lsr #0x18 + mov lr, r6, lsr #0x8 + mov r5, r6, lsl #0x8 + mov r6, r6, lsl #0x18 + and r7, r7, #0xff + and r12, r12, #0xff00 + orr r7, r7, r12 + and r4, r4, #0xff + and lr, lr, #0xff00 + and r5, r5, #0xff0000 + orr r4, r4, lr + mov r12, r7, lsl #0x10 + orr r4, r5, r4 + and r6, r6, #0xff000000 + mov r5, r12, lsr #0x10 + orr r4, r6, r4 +_0209A83C: + str r4, [sp, #0x0] + str r3, [sp, #0x4] + mov r3, r5 + bl FUN_02099470 + add sp, sp, #0xc + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_0209A858 +FUN_0209A858: ; 0x0209A858 + stmdb sp!, {lr} + sub sp, sp, #0xc + mov r12, #0x0 + str r12, [sp, #0x0] + str r3, [sp, #0x4] + mov r3, r12 + bl FUN_02099470 + add sp, sp, #0xc + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_0209A880 +FUN_0209A880: ; 0x0209A880 + stmdb sp!, {lr} + sub sp, sp, #0x14 + add r12, sp, #0xc + str r12, [sp, #0x0] + str r3, [sp, #0x4] + add r3, sp, #0x8 + bl FUN_02098CF4 +_0209A89C: ; 0x0209A89C + cmp r0, #0x0 + addlt sp, sp, #0x14 + ldmltia sp!, {lr} + bxlt lr + ldr r1, [sp, #0x18] + cmp r1, #0x0 + addeq sp, sp, #0x14 + ldmeqia sp!, {lr} + bxeq lr + ldrh r2, [sp, #0x8] + mov r3, r2, asr #0x8 + mov r2, r2, lsl #0x8 + and r3, r3, #0xff + and r2, r2, #0xff00 + orr r2, r3, r2 + strh r2, [r1, #0x2] + ldr lr, [sp, #0xc] + mov r3, lr, lsr #0x18 + mov r2, lr, lsr #0x8 + mov r12, lr, lsl #0x8 + mov lr, lr, lsl #0x18 + and r3, r3, #0xff + and r2, r2, #0xff00 + and r12, r12, #0xff0000 + orr r2, r3, r2 + and r3, lr, #0xff000000 + orr r2, r12, r2 + orr r2, r3, r2 + str r2, [r1, #0x4] + add sp, sp, #0x14 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_0209A91C +FUN_0209A91C: ; 0x0209A91C + stmdb sp!, {lr} + sub sp, sp, #0xc + mov r12, #0x0 + str r12, [sp, #0x0] + str r3, [sp, #0x4] + mov r3, r12 + bl FUN_02098CF4 + add sp, sp, #0xc + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_0209A944 +FUN_0209A944: ; 0x0209A944 + stmdb sp!, {r4,lr} + ldrh r2, [r1, #0x2] + ldr lr, [r1, #0x4] + mov r4, r2, asr #0x8 + mov r1, r2, lsl #0x8 + mov r3, lr, lsr #0x18 + mov r2, lr, lsr #0x8 + mov r12, lr, lsl #0x8 + mov lr, lr, lsl #0x18 + and r4, r4, #0xff + and r1, r1, #0xff00 + orr r1, r4, r1 + mov r1, r1, lsl #0x10 + and r3, r3, #0xff + and r2, r2, #0xff00 + and r12, r12, #0xff0000 + orr r2, r3, r2 + and r3, lr, #0xff000000 + orr r2, r12, r2 + mov r1, r1, lsr #0x10 + orr r2, r3, r2 + bl FUN_020983B0 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_0209A9A4 +FUN_0209A9A4: ; 0x0209A9A4 + ldrh r1, [r1, #0x2] + ldr ip, _0209A9CC ; =FUN_020984B4 + mov r2, r1, asr #0x8 + mov r1, r1, lsl #0x8 + and r2, r2, #0xff + and r1, r1, #0xff00 + orr r1, r2, r1 + mov r1, r1, lsl #0x10 + mov r1, r1, lsr #0x10 + bx r12 + .balign 4 +_0209A9CC: .word FUN_020984B4 + + arm_func_start FUN_0209A9D0 +FUN_0209A9D0: ; 0x0209A9D0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0x1 + bne _0209A9F4 + ldr r0, _0209AA08 ; =0x021061DC + bl FUN_02097F70 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_0209A9F4: + ldr r0, _0209AA0C ; =0x021061C4 + bl FUN_02097F70 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_0209AA08: .word 0x021061DC +_0209AA0C: .word 0x021061C4 + + arm_func_start FUN_0209AA10 +FUN_0209AA10: ; 0x0209AA10 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + ldr r6, [r7, #0x4] + ldr r5, [r6, #0x64] + add r0, r5, #0xe0 + ldr r4, [r5, #0xc4] + bl OS_LockMutex + ldr r1, [r7, #0x10] + cmp r1, #0x0 + beq _0209AA54 + mov r0, #0x1 + str r1, [r4, #0xc] + bl FUN_020A02EC + mov r0, #0x4 + strb r0, [r6, #0x73] + b _0209AA68 +_0209AA54: + mov r0, #0x0 + strb r0, [r6, #0x73] + bl FUN_020A02EC +_0209AA60: ; 0x0209AA60 + mov r0, #0x0 + str r0, [r4, #0xc] +_0209AA68: + add r0, r5, #0xe0 + bl OS_UnlockMutex +_0209AA70: ; 0x0209AA70 + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_0209AA80 +FUN_0209AA80: ; 0x0209AA80 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + ldr r0, _0209AACC ; =FUN_0209AA10 + mov r1, r5 + mov r2, #0x1 + bl FUN_02097A98 + movs r1, r0 + addeq sp, sp, #0x4 + mvneq r0, #0x20 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + mov r0, r5 + str r4, [r1, #0x10] + bl FUN_02097958 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_0209AACC: .word FUN_0209AA10 + + arm_func_start FUN_0209AAD0 +FUN_0209AAD0: ; 0x0209AAD0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + bl FUN_02099FA8 +_0209AAE4: ; 0x0209AAE4 + cmp r0, #0x0 + addne sp, sp, #0x4 + mvnne r0, #0x1b + ldmneia sp!, {r4-r5,lr} + bxne lr + ldrsb r0, [r5, #0x73] + mov r1, #0x1 + cmp r0, #0x0 + beq _0209AB10 + cmp r0, #0x4 + movne r1, #0x0 +_0209AB10: + cmp r1, #0x0 + addeq sp, sp, #0x4 + mvneq r0, #0x1b + ldmeqia sp!, {r4-r5,lr} + bxeq lr + cmp r5, #0x0 + mov r1, #0x0 + beq _0209AB3C + ldrsh r0, [r5, #0x70] + ands r0, r0, #0x1 + movne r1, #0x1 +_0209AB3C: + cmp r1, #0x0 + addeq sp, sp, #0x4 + mvneq r0, #0x26 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldrsh r0, [r5, #0x70] + ands r0, r0, #0x2 + addne sp, sp, #0x4 + mvnne r0, #0x1b + ldmneia sp!, {r4-r5,lr} + bxne lr + mov r0, r5 + mov r1, r4 + bl FUN_0209AA80 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_0209AB80 +FUN_0209AB80: ; 0x0209AB80 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + ldr r6, _0209ACC0 ; =0x021C8F24 + mov r9, #0x0 + ldr r11, [r6, #0x8] + ldr r2, [r6, #0x0] + ldr r1, [r6, #0x4] + umull r5, r4, r11, r2 + mla r4, r11, r1, r4 + ldr r10, [r6, #0xc] + ldr r3, [r6, #0x10] + mla r4, r10, r2, r4 + adds r5, r3, r5 + ldr r1, [r6, #0x14] + umull r8, r7, r11, r5 + adc r4, r1, r4 + mla r7, r11, r4, r7 + mla r7, r10, r5, r7 + mov r2, r9, lsl #0x10 + adds r8, r3, r8 + str r5, [r6, #0x0] + adc r5, r1, r7 + mov r3, r9, lsl #0x10 + orr r2, r2, r4, lsr #0x10 + str r4, [r6, #0x4] + orr r3, r3, r5, lsr #0x10 + add r1, sp, #0x4 + mov r10, r0 + strh r2, [sp, #0x8] + str r8, [r6, #0x0] + str r5, [r6, #0x4] + strh r3, [sp, #0xa] + bl FUN_0209AD34 +_0209AC04: ; 0x0209AC04 + cmp r0, #0x0 + ldrne r0, [sp, #0x4] + addne sp, sp, #0xc + ldmneia sp!, {r4-r11,lr} + bxne lr + mov r0, #0x1 + ldr r6, _0209ACC4 ; =0x021C8F1C + strb r0, [sp, #0x0] + strb r0, [sp, #0x1] + add r5, sp, #0x8 + mov r4, r9 + mov r11, r9 +_0209AC34: + mov r8, r11 + add r7, sp, #0x0 +_0209AC3C: + ldrb r0, [r7, #0x0] + cmp r0, #0x0 + beq _0209AC80 + mov r0, r8, lsl #0x1 + ldrh r2, [r5, r0] + ldr r1, [r6, r8, lsl #0x2] + mov r0, r10 + bl FUN_0209ACC8 + str r0, [sp, #0x4] + cmp r0, #0x0 + beq _0209AC74 + mvn r1, #0x0 + cmp r0, r1 + bne _0209AC9C +_0209AC74: + mvn r1, #0x0 + cmp r0, r1 + streqb r4, [r7, #0x0] +_0209AC80: + add r8, r8, #0x1 + cmp r8, #0x2 + add r7, r7, #0x1 + blt _0209AC3C + add r9, r9, #0x1 + cmp r9, #0x3 + blt _0209AC34 +_0209AC9C: + ldr r1, [sp, #0x4] + mvn r0, #0x0 + cmp r1, r0 + moveq r0, #0x0 + streq r0, [sp, #0x4] + ldr r0, [sp, #0x4] + add sp, sp, #0xc + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_0209ACC0: .word 0x021C8F24 +_0209ACC4: .word 0x021C8F1C + + arm_func_start FUN_0209ACC8 +FUN_0209ACC8: ; 0x0209ACC8 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + movs r5, r1 + mov r6, r0 + mov r4, r2 + addeq sp, sp, #0x8 + mvneq r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + bl FUN_0209CB44 + bl FUN_0209CBE8 + mov r2, r5 + mov r0, #0x0 + mov r1, #0x35 + bl FUN_0209CB78 + mov r0, r6 + mov r2, r4 + mov r3, #0x0 + str r3, [sp, #0x0] + mov r1, #0x1 + bl FUN_0209AE18 + mov r4, r0 + bl FUN_0209CB24 + mov r0, r4 + add sp, sp, #0x8 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_0209AD34 +FUN_0209AD34: + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + mov r6, #0x0 + mov r8, r0 + mov r7, r1 + mov r5, r6 + add r4, sp, #0x0 +_0209AD50: + mov r0, r8 + mov r1, r4 + mov r6, r6, lsl #0x8 + bl FUN_0209ADE4 + ldr r2, [sp, #0x0] + cmp r8, r2 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r8, r2 + cmp r0, #0xff + bhi _0209ADB0 + cmp r5, #0x3 + beq _0209AD9C + ldrb r1, [r2, #0x0] + add r8, r2, #0x1 + cmp r1, #0x2e + bne _0209ADB0 +_0209AD9C: + cmp r5, #0x3 + bne _0209ADC0 + ldrb r1, [r8, #0x0] + cmp r1, #0x0 + beq _0209ADC0 +_0209ADB0: + add sp, sp, #0x8 + mov r0, #0x0 + ldmia sp!, {r4-r8,lr} + bx lr +_0209ADC0: + add r5, r5, #0x1 + cmp r5, #0x4 + orr r6, r6, r0 + blt _0209AD50 + str r6, [r7, #0x0] + mov r0, #0x1 + add sp, sp, #0x8 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_0209ADE4 +FUN_0209ADE4: ; 0x0209ADE4 + str r0, [r1, #0x0] + mov r12, #0x0 + mov r2, #0xa +_0209ADF0: + ldrb r3, [r0, #0x0] + sub r3, r3, #0x30 + and r3, r3, #0xff + cmp r3, #0x9 + mlals r12, r2, r12, r3 + addls r0, r0, #0x1 + strls r0, [r1, #0x0] + bls _0209ADF0 + mov r0, r12 + bx lr + + arm_func_start FUN_0209AE18 +FUN_0209AE18: ; 0x0209AE18 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4c + mov r9, r2 + mov r2, r9, asr #0x8 + mov r10, r1 + orr r1, r2, r9, lsl #0x8 + strh r1, [sp, #0x10] + cmp r10, #0x20 + mov r5, #0x0 + movne r1, #0x1 + strneh r1, [sp, #0x12] + ldreq r1, _0209B0C8 ; =0x00001001 + strh r5, [sp, #0x16] + streqh r1, [sp, #0x12] + mov r1, #0x100 + strh r1, [sp, #0x14] + add r1, sp, #0x1c + strh r5, [sp, #0x18] + strh r5, [sp, #0x1a] + str r5, [sp, #0xc] + ldrb r6, [r0], #0x1 + str r3, [sp, #0x0] + ldr r8, [sp, #0x70] + add r2, r1, #0x1 + cmp r6, #0x0 + beq _0209AED8 + add r4, sp, #0x10 +_0209AE84: + cmp r6, #0x2e + beq _0209AEB8 + sub r3, r2, r4 + cmp r3, #0x3c + addge sp, sp, #0x4c + mvnge r0, #0x0 + ldmgeia sp!, {r4-r11,lr} + bxge lr + strb r6, [r2], #0x1 + ldr r3, [sp, #0xc] + add r3, r3, #0x1 + str r3, [sp, #0xc] + b _0209AECC +_0209AEB8: + ldr r3, [sp, #0xc] + strb r3, [r1, #0x0] + mov r1, r2 + str r5, [sp, #0xc] + add r2, r2, #0x1 +_0209AECC: + ldrb r6, [r0], #0x1 + cmp r6, #0x0 + bne _0209AE84 +_0209AED8: + ldr r0, [sp, #0xc] + mov r3, #0x0 + strb r0, [r1, #0x0] + strb r3, [r2, #0x0] + mov r0, r10, lsr #0x8 + strb r0, [r2, #0x1] + strb r10, [r2, #0x2] + strb r3, [r2, #0x3] + mov r3, #0x1 + add r0, sp, #0x10 + add r1, r2, #0x5 + sub r1, r1, r0 + strb r3, [r2, #0x4] + bl FUN_0209C030 + mov r6, #0x0 + bl OS_GetTick + mov r5, r0, lsr #0x10 + mov r0, #0x2 + str r0, [sp, #0x8] + mov r0, #0x1 + orr r5, r5, r1, lsl #0x10 + str r0, [sp, #0x4] + mvn r11, #0x0 + b _0209B084 +_0209AF38: + bl FUN_0209BF9C +_0209AF3C: ; 0x0209AF3C + cmp r0, #0x0 + bne _0209AF4C + bl FUN_020A005C + b _0209B084 +_0209AF4C: + add r0, sp, #0xc + bl FUN_0209C638 + ldr r1, [sp, #0xc] + cmp r1, #0xc + bls _0209B07C + ldrh r3, [r0, #0x0] + mov r2, r3, asr #0x8 + orr r2, r2, r3, lsl #0x8 + mov r2, r2, lsl #0x10 + cmp r9, r2, lsr #0x10 + bne _0209B07C + ldrb r2, [r0, #0x3] + and r2, r2, #0xf + cmp r2, #0x3 + moveq r6, r11 + beq _0209B07C + cmp r2, #0x0 + bne _0209B07C + ldrb r2, [r0, #0x4] + add r4, r0, r1 + ldrb r1, [r0, #0x5] + add r0, r0, #0xc + orr r1, r1, r2, lsl #0x8 + mov r1, r1, lsl #0x10 + movs r1, r1, lsr #0x10 + sub r7, r1, #0x1 + beq _0209AFCC +_0209AFB8: + bl FUN_0209B0D0 +_0209AFBC: ; 0x0209AFBC + cmp r7, #0x0 + add r0, r0, #0x4 + sub r7, r7, #0x1 + bne _0209AFB8 +_0209AFCC: + cmp r0, r4 + bhs _0209B07C +_0209AFD4: + bl FUN_0209B0D0 + ldrb r7, [r0, #0x8] + ldrb r1, [r0, #0x9] + ldrb r3, [r0, #0x0] + ldrb r2, [r0, #0x1] + orr r1, r1, r7, lsl #0x8 + mov r1, r1, lsl #0x10 + orr r3, r2, r3, lsl #0x8 + mov r2, r1, lsr #0x10 + mov r1, r3, lsl #0x10 + cmp r10, r1, lsr #0x10 + bne _0209B06C + cmp r10, #0xc + beq _0209B04C + add r1, r0, #0x6 + add r3, r1, r2 + add r4, r0, #0x8 + ldrb r1, [r1, r2] + ldrb r0, [r3, #0x1] + add r3, r4, r2 + ldrb r2, [r4, r2] + orr r0, r0, r1, lsl #0x8 + ldrb r1, [r3, #0x1] + mov r0, r0, lsl #0x10 + mov r3, r0, lsr #0x10 + orr r0, r1, r2, lsl #0x8 + mov r1, r3, lsl #0x10 + mov r0, r0, lsl #0x10 + orr r6, r1, r0, lsr #0x10 + b _0209B07C +_0209B04C: + cmp r2, r8 + ldrhi r6, [sp, #0x8] + bhi _0209B07C + ldr r1, [sp, #0x0] + add r0, r0, #0xa + bl MI_CpuCopy8 + ldr r6, [sp, #0x4] + b _0209B07C +_0209B06C: + add r1, r2, #0xa + add r0, r0, r1 + cmp r0, r4 + blo _0209AFD4 +_0209B07C: + ldr r0, [sp, #0xc] + bl FUN_0209C52C +_0209B084: + ldr r0, _0209B0CC ; =0x021C8EFC + ldr r0, [r0, #0x0] + blx r0 + cmp r0, #0x0 + beq _0209B0B8 + cmp r6, #0x0 + bne _0209B0B8 + bl OS_GetTick + mov r0, r0, lsr #0x10 + orr r0, r0, r1, lsl #0x10 + sub r0, r0, r5 + cmp r0, #0xf + blt _0209AF38 +_0209B0B8: + mov r0, r6 + add sp, sp, #0x4c + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_0209B0C8: .word 0x00001001 +_0209B0CC: .word 0x021C8EFC + + arm_func_start FUN_0209B0D0 +FUN_0209B0D0: + ldrb r2, [r0], #0x1 + cmp r2, #0x0 + bxeq lr +_0209B0DC: + and r1, r2, #0xc0 + cmp r1, #0xc0 + addeq r0, r0, #0x1 + bxeq lr + add r0, r0, r2 + ldrb r2, [r0], #0x1 + cmp r2, #0x0 + bne _0209B0DC + bx lr + + arm_func_start FUN_0209B100 +FUN_0209B100: ; 0x0209B100 + stmdb sp!, {r4,lr} + bl FUN_0209CB44 + bl FUN_0209CBE8 + ldr r1, _0209B168 ; =0x021C8ED4 + mov r0, #0x44 + ldr r2, [r1, #0x0] + mov r1, #0x43 + bl FUN_0209CB78 + ldr r4, _0209B16C ; =0x021C924A + mov r1, #0x7 + mov r0, r4 + mov r2, #0x0 + bl FUN_0209B8E0 + mov r1, #0xff + add r2, r0, #0x1 + strb r1, [r0, #0x0] + mov r0, #0x0 + mov r1, #0x12c + sub r3, r2, r4 + bl FUN_0209B8A0 + sub r1, r0, r4 + mov r0, r4 + bl FUN_0209C030 + bl FUN_0209CB24 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_0209B168: .word 0x021C8ED4 +_0209B16C: .word 0x021C924A + + arm_func_start FUN_0209B170 +FUN_0209B170: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r5, r0 + bl FUN_0209CB44 + bl FUN_0209CBE8 + cmp r4, #0x1 + bne _0209B1A8 + ldr r1, _0209B28C ; =0x021C8ED4 + mov r0, #0x44 + ldr r2, [r1, #0x0] + mov r1, #0x43 + bl FUN_0209CB78 + b _0209B1B8 +_0209B1A8: + mov r0, #0x44 + mov r1, #0x43 + mvn r2, #0x0 + bl FUN_0209CB78 +_0209B1B8: + mov r6, #0x0 +_0209B1BC: + mov r0, r4 + bl FUN_0209B6BC + mov r1, r6 + bl FUN_0209B2FC + movs r7, r0 + bne _0209B1E0 + add r6, r6, #0x1 + cmp r6, #0x4 + blt _0209B1BC +_0209B1E0: + bl FUN_0209CB24 + cmp r7, #0x2 + bne _0209B224 + ldr r0, _0209B290 ; =0x021C8F00 + mov r1, #0x3 + ldr r3, [r0, #0x0] + ldr r2, _0209B294 ; =0x021C8EEC + mov r3, r3, lsr #0x1 + str r3, [r5, #0x0] + ldr r3, [r0, #0x0] + add sp, sp, #0x4 + mul r1, r3, r1 + mov r1, r1, lsr #0x3 + str r1, [r2, #0x0] + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_0209B224: + ldr r1, _0209B294 ; =0x021C8EEC + cmp r4, #0x1 + ldr r0, [r1, #0x0] + mov r0, r0, lsr #0x1 + str r0, [r1, #0x0] + str r0, [r5, #0x0] + beq _0209B24C + cmp r4, #0x2 + beq _0209B270 + b _0209B27C +_0209B24C: + cmp r0, #0x3c + bhs _0209B27C + mov r2, #0x1 + ldr r0, _0209B290 ; =0x021C8F00 + str r2, [r5, #0x0] + ldr r0, [r0, #0x0] + mov r0, r0, lsr #0x3 + str r0, [r1, #0x0] + b _0209B27C +_0209B270: + cmp r0, #0x3c + movcc r0, #0x1 + strcc r0, [r5, #0x0] +_0209B27C: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_0209B28C: .word 0x021C8ED4 +_0209B290: .word 0x021C8F00 +_0209B294: .word 0x021C8EEC + + arm_func_start FUN_0209B298 +FUN_0209B298: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + bl FUN_0209CB44 + bl FUN_0209CBE8 + mov r0, #0x44 + mov r1, #0x43 + mvn r2, #0x0 + bl FUN_0209CB78 + mov r4, #0x0 +_0209B2BC: + bl FUN_0209B7D8 + mov r1, r4 + bl FUN_0209B2FC + mov r5, r0 + cmp r5, #0x1 + beq _0209B2E0 + add r4, r4, #0x1 + cmp r4, #0x4 + blt _0209B2BC +_0209B2E0: + bl FUN_0209CB24 + cmp r5, #0x1 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_0209B2FC +FUN_0209B2FC: ; 0x0209B2FC + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x14 + add r2, r1, #0x1 + mov r1, #0xf + mul r1, r2, r1 + str r1, [sp, #0x8] + str r0, [sp, #0x0] + bl OS_GetTick + mov r0, r0, lsr #0x10 + str r0, [sp, #0x4] + orr r0, r0, r1, lsl #0x10 + mov r4, #0x0 + str r0, [sp, #0x4] + mov r0, #0x3 + mov r9, r4 + ldr r5, _0209B698 ; =0x021C8F1C + mov r7, #0x2 + mov r8, #0x1 + ldr fp, _0209B69C ; =0x021C8EE0 + ldr r6, _0209B6A0 ; =0x021C8ED0 + str r0, [sp, #0xc] + b _0209B64C +_0209B354: + bl FUN_0209BF9C +_0209B358: ; 0x0209B358 + cmp r0, #0x0 + bne _0209B368 + bl FUN_020A005C + b _0209B64C +_0209B368: + add r0, sp, #0x10 + bl FUN_0209C638 + mov r10, r0 + ldr r0, [sp, #0x10] + cmp r0, #0xf0 + bls _0209B644 + ldrb r0, [r10, #0x0] + cmp r0, #0x2 + bne _0209B644 + ldrh r1, [r10, #0x6] + ldrh r2, [r10, #0x4] + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + mov r1, r0, lsl #0x10 + mov r0, r2, asr #0x8 + orr r0, r0, r2, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r0, r0, lsl #0x10 + orr r1, r0, r1, lsr #0x10 + ldr r0, [sp, #0x0] + cmp r0, r1 + bne _0209B644 + ldr r1, _0209B6A4 ; =0x021C8F14 + add r0, r10, #0x1c + bl FUN_0209F9A0 +_0209B3D0: ; 0x0209B3D0 + cmp r0, #0x0 + bne _0209B644 + ldrb r3, [r10, #0x10] + ldrb r0, [r10, #0x11] + ldrb r2, [r10, #0x12] + ldrb r1, [r10, #0x13] + orr r0, r0, r3, lsl #0x8 + mov r0, r0, lsl #0x10 + orr r1, r1, r2, lsl #0x8 + mov r0, r0, lsr #0x10 + mov r2, r0, lsl #0x10 + mov r0, r1, lsl #0x10 + orr r0, r2, r0, lsr #0x10 + ldrb r2, [r10, #0xec] + ldr r1, [sp, #0x10] + ldr r4, [sp, #0xc] + add r1, r10, r1 + cmp r2, #0x63 + bne _0209B644 + ldrb r2, [r10, #0xed] + cmp r2, #0x82 + bne _0209B644 + ldrb r2, [r10, #0xee] + cmp r2, #0x53 + bne _0209B644 + add r2, r10, #0xf0 + ldrb r3, [r10, #0xef] + cmp r3, #0x63 + bne _0209B644 + b _0209B630 +_0209B448: + cmp r3, #0x0 + beq _0209B630 + cmp r3, #0x33 + bgt _0209B48C + cmp r3, #0x33 + bge _0209B588 + cmp r3, #0x6 + bgt _0209B624 + cmp r3, #0x1 + blt _0209B624 + cmp r3, #0x1 + beq _0209B4AC + cmp r3, #0x3 + beq _0209B4E0 + cmp r3, #0x6 + beq _0209B514 + b _0209B624 +_0209B48C: + cmp r3, #0x35 + bgt _0209B4A0 + cmp r3, #0x35 + beq _0209B5C0 + b _0209B624 +_0209B4A0: + cmp r3, #0x36 + beq _0209B5F0 + b _0209B624 +_0209B4AC: + ldrb lr, [r2, #0x1] + ldrb r12, [r2, #0x2] + ldrb r10, [r2, #0x3] + ldrb r3, [r2, #0x4] + orr r12, r12, lr, lsl #0x8 + mov r12, r12, lsl #0x10 + orr r3, r3, r10, lsl #0x8 + mov r10, r12, lsr #0x10 + mov r10, r10, lsl #0x10 + mov r3, r3, lsl #0x10 + orr r3, r10, r3, lsr #0x10 + str r3, [r6, #0x0] + b _0209B624 +_0209B4E0: + ldrb lr, [r2, #0x1] + ldrb r12, [r2, #0x2] + ldrb r10, [r2, #0x3] + ldrb r3, [r2, #0x4] + orr r12, r12, lr, lsl #0x8 + mov r12, r12, lsl #0x10 + orr r3, r3, r10, lsl #0x8 + mov r10, r12, lsr #0x10 + mov r10, r10, lsl #0x10 + mov r3, r3, lsl #0x10 + orr r3, r10, r3, lsr #0x10 + str r3, [r11, #0x0] + b _0209B624 +_0209B514: + ldrb r3, [r2, #0x0] + cmp r3, #0x8 + strcc r9, [r5, #0x4] + blo _0209B554 + ldrb lr, [r2, #0x5] + ldrb r12, [r2, #0x6] + ldrb r10, [r2, #0x7] + ldrb r3, [r2, #0x8] + orr r12, r12, lr, lsl #0x8 + mov r12, r12, lsl #0x10 + orr r3, r3, r10, lsl #0x8 + mov r10, r12, lsr #0x10 + mov r10, r10, lsl #0x10 + mov r3, r3, lsl #0x10 + orr r3, r10, r3, lsr #0x10 + str r3, [r5, #0x4] +_0209B554: + ldrb lr, [r2, #0x1] + ldrb r12, [r2, #0x2] + ldrb r10, [r2, #0x3] + ldrb r3, [r2, #0x4] + orr r12, r12, lr, lsl #0x8 + mov r12, r12, lsl #0x10 + orr r3, r3, r10, lsl #0x8 + mov r10, r12, lsr #0x10 + mov r10, r10, lsl #0x10 + mov r3, r3, lsl #0x10 + orr r3, r10, r3, lsr #0x10 + str r3, [r5, #0x0] + b _0209B624 +_0209B588: + ldrb lr, [r2, #0x1] + ldrb r12, [r2, #0x2] + ldrb r10, [r2, #0x3] + ldrb r3, [r2, #0x4] + orr r12, r12, lr, lsl #0x8 + mov r12, r12, lsl #0x10 + orr r3, r3, r10, lsl #0x8 + mov r10, r12, lsr #0x10 + mov r10, r10, lsl #0x10 + mov r3, r3, lsl #0x10 + orr r10, r10, r3, lsr #0x10 + ldr r3, _0209B6A8 ; =0x021C8F00 + str r10, [r3, #0x0] + b _0209B624 +_0209B5C0: + ldrb r3, [r2, #0x1] + cmp r3, #0x2 + beq _0209B5E0 + cmp r3, #0x5 + ldreq r3, _0209B6AC ; =0x021C8F04 + moveq r4, r7 + streq r0, [r3, #0x0] + b _0209B624 +_0209B5E0: + ldr r3, _0209B6B0 ; =0x021C8EE8 + mov r4, r8 + str r0, [r3, #0x0] + b _0209B624 +_0209B5F0: + ldrb lr, [r2, #0x1] + ldrb r12, [r2, #0x2] + ldrb r10, [r2, #0x3] + ldrb r3, [r2, #0x4] + orr r12, r12, lr, lsl #0x8 + mov r12, r12, lsl #0x10 + orr r3, r3, r10, lsl #0x8 + mov r10, r12, lsr #0x10 + mov r10, r10, lsl #0x10 + mov r3, r3, lsl #0x10 + orr r10, r10, r3, lsr #0x10 + ldr r3, _0209B6B4 ; =0x021C8ED4 + str r10, [r3, #0x0] +_0209B624: + ldrb r3, [r2, #0x0] + add r3, r3, #0x1 + add r2, r2, r3 +_0209B630: + cmp r2, r1 + bhs _0209B644 + ldrb r3, [r2], #0x1 + cmp r3, #0xff + bne _0209B448 +_0209B644: + ldr r0, [sp, #0x10] + bl FUN_0209C52C +_0209B64C: + ldr r0, _0209B6B8 ; =0x021C8EFC + ldr r0, [r0, #0x0] + blx r0 + cmp r0, #0x0 + beq _0209B688 + cmp r4, #0x0 + bne _0209B688 + bl OS_GetTick + mov r2, r0, lsr #0x10 + ldr r0, [sp, #0x4] + orr r2, r2, r1, lsl #0x10 + sub r1, r2, r0 + ldr r0, [sp, #0x8] + cmp r1, r0 + blt _0209B354 +_0209B688: + mov r0, r4 + add sp, sp, #0x14 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_0209B698: .word 0x021C8F1C +_0209B69C: .word 0x021C8EE0 +_0209B6A0: .word 0x021C8ED0 +_0209B6A4: .word 0x021C8F14 +_0209B6A8: .word 0x021C8F00 +_0209B6AC: .word 0x021C8F04 +_0209B6B0: .word 0x021C8EE8 +_0209B6B4: .word 0x021C8ED4 +_0209B6B8: .word 0x021C8EFC + + arm_func_start FUN_0209B6BC +FUN_0209B6BC: ; 0x0209B6BC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r4, _0209B7CC ; =0x021C924A + mov r5, r0 + add r2, sp, #0x0 + mov r0, r4 + mov r1, #0x3 + bl FUN_0209B8E0 + mov r12, r0 + cmp r5, #0x0 + bne _0209B790 + mov r0, #0x32 + strb r0, [r12, #0x0] + mov r0, #0x4 + ldr r3, _0209B7D0 ; =0x021C8EE8 + strb r0, [r12, #0x1] + ldr r1, [r3, #0x0] + mov lr, #0x36 + mov r1, r1, lsr #0x10 + mov r1, r1, lsl #0x10 + mov r1, r1, lsr #0x10 + mov r1, r1, asr #0x8 + strb r1, [r12, #0x2] + ldr r1, [r3, #0x0] + ldr r2, _0209B7D4 ; =0x021C8ED4 + mov r1, r1, lsr #0x10 + strb r1, [r12, #0x3] + ldr r1, [r3, #0x0] + mov r1, r1, lsl #0x10 + mov r1, r1, lsr #0x10 + mov r1, r1, asr #0x8 + strb r1, [r12, #0x4] + ldr r1, [r3, #0x0] + strb r1, [r12, #0x5] + strb lr, [r12, #0x6] + strb r0, [r12, #0x7] + ldr r0, [r2, #0x0] + mov r0, r0, lsr #0x10 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r0, r0, asr #0x8 + strb r0, [r12, #0x8] + ldr r0, [r2, #0x0] + mov r0, r0, lsr #0x10 + strb r0, [r12, #0x9] + ldr r0, [r2, #0x0] + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r0, r0, asr #0x8 + strb r0, [r12, #0xa] + ldr r0, [r2, #0x0] + strb r0, [r12, #0xb] + add r12, r12, #0xc +_0209B790: + add r2, r12, #0x1 + mov lr, #0xff + sub r3, r2, r4 + mov r0, #0x0 + mov r1, #0x12c + strb lr, [r12, #0x0] + bl FUN_0209B8A0 + mov r1, r0 + mov r0, r4 + sub r1, r1, r4 + bl FUN_0209C030 +_0209B7BC: ; 0x0209B7BC + ldr r0, [sp, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_0209B7CC: .word 0x021C924A +_0209B7D0: .word 0x021C8EE8 +_0209B7D4: .word 0x021C8ED4 + + arm_func_start FUN_0209B7D8 +FUN_0209B7D8: ; 0x0209B7D8 + stmdb sp!, {r4,lr} + sub sp, sp, #0x8 + ldr r4, _0209B898 ; =0x021C924A + add r2, sp, #0x0 + mov r0, r4 + mov r1, #0x1 + bl FUN_0209B8E0 + ldr r1, _0209B89C ; =0x021C8EE8 + mov r12, r0 + ldr r0, [r1, #0x0] + cmp r0, #0x0 + beq _0209B85C + mov r0, #0x32 + strb r0, [r12, #0x0] + mov r0, #0x4 + strb r0, [r12, #0x1] + ldr r0, [r1, #0x0] + mov r0, r0, lsr #0x10 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r0, r0, asr #0x8 + strb r0, [r12, #0x2] + ldr r0, [r1, #0x0] + mov r0, r0, lsr #0x10 + strb r0, [r12, #0x3] + ldr r0, [r1, #0x0] + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + mov r0, r0, asr #0x8 + strb r0, [r12, #0x4] + ldr r0, [r1, #0x0] + strb r0, [r12, #0x5] + add r12, r12, #0x6 +_0209B85C: + add r2, r12, #0x1 + mov lr, #0xff + sub r3, r2, r4 + mov r0, #0x0 + mov r1, #0x12c + strb lr, [r12, #0x0] + bl FUN_0209B8A0 + mov r1, r0 + mov r0, r4 + sub r1, r1, r4 + bl FUN_0209C030 +_0209B888: ; 0x0209B888 + ldr r0, [sp, #0x0] + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_0209B898: .word 0x021C924A +_0209B89C: .word 0x021C8EE8 + + arm_func_start FUN_0209B8A0 +FUN_0209B8A0: ; 0x0209B8A0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r12, r0 + mov r5, r2 + cmp r3, r1 + bhs _0209B8D0 + sub r4, r1, r3 + mov r0, r5 + mov r1, r12 + mov r2, r4 + bl MI_CpuFill8 + add r5, r5, r4 +_0209B8D0: + mov r0, r5 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_0209B8E0 +FUN_0209B8E0: ; 0x0209B8E0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r1 + mov r4, r2 + mov r1, #0x0 + mov r2, #0xec + mov r6, r0 + bl MI_CpuFill8 + ldr r0, _0209BA5C ; =0x00000101 + mov r1, #0x6 + strh r0, [r6, #0x0] + ldr r0, _0209BA60 ; =0x021C8F24 + strb r1, [r6, #0x2] + ldr r3, [r0, #0x8] + ldr r2, [r0, #0x0] + ldr r1, [r0, #0x4] + umull lr, r12, r3, r2 + mla r12, r3, r1, r12 + ldr r1, [r0, #0xc] + ldr r7, [r0, #0x10] + mla r12, r1, r2, r12 + adds r3, r7, lr + ldr r1, [r0, #0x14] + str r3, [r0, #0x0] + adc r1, r1, r12 + str r1, [r0, #0x4] + mov r0, r1, lsr #0x10 + mov r0, r0, lsl #0x10 + mov r3, r0, lsr #0x10 + cmp r4, #0x0 + mov r2, r3, asr #0x8 + mov r0, r1, lsl #0x10 + strne r1, [r4, #0x0] + mov r1, r0, lsr #0x10 + orr r2, r2, r3, lsl #0x8 + mov r0, r1, asr #0x8 + strh r2, [r6, #0x4] + orr r0, r0, r1, lsl #0x8 + strh r0, [r6, #0x6] + ldr r2, _0209BA64 ; =0x021C8F04 + ldr r0, _0209BA68 ; =0x021C8F14 + ldr r1, [r2, #0x0] + mov r1, r1, lsr #0x10 + mov r1, r1, lsl #0x10 + mov r3, r1, lsr #0x10 + mov r1, r3, asr #0x8 + orr r1, r1, r3, lsl #0x8 + strh r1, [r6, #0xc] + ldr r2, [r2, #0x0] + add r1, r6, #0x1c + mov r2, r2, lsl #0x10 + mov r3, r2, lsr #0x10 + mov r2, r3, asr #0x8 + orr r3, r2, r3, lsl #0x8 + mov r2, #0x6 + strh r3, [r6, #0xe] + bl MI_CpuCopy8 + ldr r0, _0209BA6C ; =0x00008263 + ldr r1, _0209BA70 ; =0x00006353 + strh r0, [r6, #0xec] + strh r1, [r6, #0xee] + ldr r0, _0209BA74 ; =0x00000135 + mov r1, #0x7 + strh r0, [r6, #0xf0] + strb r5, [r6, #0xf2] + mov r0, #0x3d + strb r0, [r6, #0xf3] + strb r1, [r6, #0xf4] + mov r3, #0x1 + ldr r0, _0209BA68 ; =0x021C8F14 + add r1, r6, #0xf6 + mov r2, #0x6 + strb r3, [r6, #0xf5] + bl MI_CpuCopy8 + mov r1, #0xc + strb r1, [r6, #0xfc] + mov r2, #0xa + ldr r0, _0209BA78 ; =0x02106224 + add r1, r6, #0xfe + strb r2, [r6, #0xfd] + bl MI_CpuCopy8 + mov r1, #0x37 + strb r1, [r6, #0x108] + mov r2, #0x3 + ldr r0, _0209BA7C ; =0x0000010D + strb r2, [r6, #0x109] + mov r1, #0x1 + strb r1, [r6, #0x10a] + strb r2, [r6, #0x10b] + mov r1, #0x6 + strb r1, [r6, #0x10c] + add r0, r6, r0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_0209BA5C: .word 0x00000101 +_0209BA60: .word 0x021C8F24 +_0209BA64: .word 0x021C8F04 +_0209BA68: .word 0x021C8F14 +_0209BA6C: .word 0x00008263 +_0209BA70: .word 0x00006353 +_0209BA74: .word 0x00000135 +_0209BA78: .word 0x02106224 +_0209BA7C: .word 0x0000010D + + arm_func_start FUN_0209BA80 +FUN_0209BA80: ; 0x0209BA80 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x54 + ldr r3, _0209BE40 ; =0x021C8EF8 + mov r1, #0x0 + ldr r0, _0209BE44 ; =0x021C8FD8 + mov r2, #0x64 + str r1, [r3, #0x0] + bl MI_CpuFill8 + ldr r0, _0209BE44 ; =0x021C8FD8 + mov r3, #0x180 + ldr r2, _0209BE48 ; =0x021C93A0 + ldr r1, _0209BE4C ; =0x021C9220 + str r3, [r0, #0x3c] + str r2, [r0, #0x40] + str r3, [r0, #0x48] + str r1, [r0, #0x4c] + bl FUN_0209CC28 + mov r11, #0x0 + mov r0, #0x1 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + str r0, [sp, #0x4c] + mov r1, r0 + ldr r0, _0209BE50 ; =0x021C8EC0 + ldr r5, [sp, #0x0] + str r1, [r0, #0x0] + mov r0, #0x2 + str r0, [sp, #0x10] + mov r0, r5 + str r0, [sp, #0x34] + str r0, [sp, #0x3c] + mov r0, #0x3 + str r0, [sp, #0x1c] + mov r0, r5 + str r0, [sp, #0x30] + str r0, [sp, #0x28] + str r0, [sp, #0x24] + str r0, [sp, #0x20] + str r0, [sp, #0xc] + mov r0, #0x69 + str r0, [sp, #0x44] + mov r0, #0x3e8 + mov r6, r11 + mov r4, r11 + mov r10, r11 + str r11, [sp, #0x14] + str r11, [sp, #0x18] + str r11, [sp, #0x38] + str r11, [sp, #0x2c] + str r11, [sp, #0x40] + str r11, [sp, #0x48] + str r0, [sp, #0x8] +_0209BB50: + ldr r0, [sp, #0x8] + bl OS_Sleep + ldr r0, _0209BE40 ; =0x021C8EF8 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _0209BE14 + bl OS_GetTick + mov r9, r0, lsr #0x10 + ldr r0, _0209BE54 ; =0x021C8EFC + orr r9, r9, r1, lsl #0x10 + ldr r0, [r0, #0x0] + blx r0 + cmp r0, #0x0 + beq _0209BC8C + ldr r0, [sp, #0x4c] + subs r0, r0, #0x1 + str r0, [sp, #0x4c] + bne _0209BCA4 + ldr r0, _0209BE58 ; =0x021C8EC4 + ldr r0, [r0, #0x0] + ands r0, r0, #0x1 + beq _0209BBBC + cmp r11, #0x0 + bne _0209BCA4 + bl FUN_0209BE78 + ldr r11, [sp, #0xc] + b _0209BCA4 +_0209BBBC: + cmp r11, #0x3 + addls pc, pc, r11, lsl #0x2 + b _0209BCA4 +_0209BBC8: + b _0209BBD8 +_0209BBCC: + b _0209BC28 +_0209BBD0: + b _0209BC4C +_0209BBD4: + b _0209BCA4 +_0209BBD8: + ldr r0, [sp, #0x4] + cmp r0, #0x0 + ldrne r1, [sp, #0x10] + ldrne r0, _0209BE50 ; =0x021C8EC0 + strne r1, [r0, #0x0] + ldrne r0, [sp, #0x14] + strne r0, [sp, #0x4] + bl FUN_0209B298 +_0209BBF8: ; 0x0209BBF8 + cmp r0, #0x0 + beq _0209BC14 + ldr r1, [sp, #0x18] + add r0, sp, #0x4c + bl FUN_0209B170 +_0209BC0C: ; 0x0209BC0C + cmp r0, #0x0 + bne _0209BC20 +_0209BC14: + bl FUN_0209BE78 + ldr r11, [sp, #0x1c] + b _0209BCA4 +_0209BC20: + ldr r11, [sp, #0x20] + b _0209BCA4 +_0209BC28: + ldr r1, [sp, #0x24] + add r0, sp, #0x4c + bl FUN_0209B170 +_0209BC34: ; 0x0209BC34 + cmp r0, #0x0 + bne _0209BCA4 + ldr r0, [sp, #0x4c] + cmp r0, #0x3c + ldrcc r11, [sp, #0x10] + b _0209BCA4 +_0209BC4C: + ldr r1, [sp, #0x10] + add r0, sp, #0x4c + bl FUN_0209B170 +_0209BC58: ; 0x0209BC58 + cmp r0, #0x0 + ldrne r11, [sp, #0x28] + bne _0209BCA4 + ldr r0, [sp, #0x4c] + cmp r0, #0x3c + bhs _0209BCA4 + ldr r0, [sp, #0x1c] + bl FUN_020A0098 + ldr r0, [sp, #0x30] + ldr r11, [sp, #0x2c] + str r0, [sp, #0x4c] + str r0, [sp, #0x0] + b _0209BCA4 +_0209BC8C: + ldr r0, [sp, #0x34] + bl FUN_020A0098 + ldr r0, [sp, #0x3c] + ldr r11, [sp, #0x38] + str r0, [sp, #0x4c] + str r0, [sp, #0x0] +_0209BCA4: + ldr r1, [sp, #0x40] + ldr r0, _0209BE5C ; =0x021C8F78 +_0209BCAC: + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _0209BCD4 + ldrh r2, [r0, #0xa] + sub r2, r9, r2 + mov r2, r2, lsl #0x10 + mov r3, r2, asr #0x10 + ldr r2, _0209BE60 ; =0x000003BD + cmp r3, r2 + strgt r6, [r0, #0x0] +_0209BCD4: + add r0, r0, #0xc + add r1, r1, #0x1 + cmp r1, #0x8 + blt _0209BCAC + ldr r0, _0209BE64 ; =0x021C8EE0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0209BD10 + ldr r1, [sp, #0x0] + subs r1, r1, #0x1 + str r1, [sp, #0x0] + bne _0209BD10 + bl FUN_0209F338 + ldr r0, [sp, #0x44] + str r0, [sp, #0x0] +_0209BD10: + ldr r0, _0209BE68 ; =0x021D3498 + ldr r7, [r0, #0x8] + cmp r7, #0x0 + beq _0209BDAC +_0209BD20: + ldr r0, [r7, #0xa4] + cmp r0, #0x0 + beq _0209BDA0 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + beq _0209BDA0 + ldrb r2, [r0, #0x8] + cmp r2, #0x3 + bne _0209BD6C + ldr r1, [r0, #0x10] + sub r1, r9, r1 + cmp r1, #0x27 + ble _0209BD6C + strb r5, [r0, #0x8] + ldrh r1, [r0, #0x1a] + strh r1, [r0, #0x18] + ldr r1, [r0, #0x20] + str r1, [r0, #0x1c] + b _0209BDA0 +_0209BD6C: + cmp r2, #0x2 + bne _0209BDA0 + ldr r1, [r0, #0x10] + sub r1, r9, r1 + cmp r1, #0x27 + ble _0209BDA0 + ldr r1, [r0, #0x4] + cmp r1, #0x1 + bne _0209BDA0 + strb r4, [r0, #0x8] + str r4, [r0, #0x4] + ldr r0, [r0, #0x0] + bl OS_WakeupThreadDirect +_0209BDA0: + ldr r7, [r7, #0x68] + cmp r7, #0x0 + bne _0209BD20 +_0209BDAC: + ldr r7, [sp, #0x48] + ldr r8, _0209BE6C ; =0x021C9520 +_0209BDB4: + ldrh r0, [r8, #0x4] + cmp r0, #0x0 + beq _0209BDE4 + ldr r0, [r8, #0x2c] + sub r0, r9, r0 + cmp r0, #0xef + ble _0209BDE4 + ldr r1, _0209BE70 ; =0x021C8EF4 + ldr r0, [r8, #0x34] + ldr r1, [r1, #0x0] + blx r1 + strh r10, [r8, #0x4] +_0209BDE4: + add r8, r8, #0x38 + add r7, r7, #0x1 + cmp r7, #0x8 + blt _0209BDB4 + mov r0, r9 + bl FUN_020A01FC + ldr r0, _0209BE74 ; =0x021C8EF0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0209BB50 + blx r0 + b _0209BB50 +_0209BE14: + ldr r0, _0209BE58 ; =0x021C8EC4 + ldr r0, [r0, #0x0] + ands r0, r0, #0x1 + bne _0209BE30 + cmp r11, #0x3 + beq _0209BE30 + bl FUN_0209B100 +_0209BE30: + bl FUN_0209CC10 + add sp, sp, #0x54 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_0209BE40: .word 0x021C8EF8 +_0209BE44: .word 0x021C8FD8 +_0209BE48: .word 0x021C93A0 +_0209BE4C: .word 0x021C9220 +_0209BE50: .word 0x021C8EC0 +_0209BE54: .word 0x021C8EFC +_0209BE58: .word 0x021C8EC4 +_0209BE5C: .word 0x021C8F78 +_0209BE60: .word 0x000003BD +_0209BE64: .word 0x021C8EE0 +_0209BE68: .word 0x021D3498 +_0209BE6C: .word 0x021C9520 +_0209BE70: .word 0x021C8EF4 +_0209BE74: .word 0x021C8EF0 + + arm_func_start FUN_0209BE78 +FUN_0209BE78: ; 0x0209BE78 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r0, _0209BF3C ; =0x021C8ECC + ldr r0, [r0, #0x0] + blx r0 + ldr r0, _0209BF40 ; =0x021C8F04 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + bl FUN_0209F338 + mov r0, #0x64 + bl OS_Sleep + ldr r0, _0209BF40 ; =0x021C8F04 + ldr r0, [r0, #0x0] + bl FUN_0209F338 + bl OS_GetTick + mov r4, r0, lsr #0x10 + orr r4, r4, r1, lsl #0x10 + ldr r6, _0209BF44 ; =0x021C8EAC + mov r7, #0x64 + ldr r5, _0209BF48 ; =0x021C8EFC + b _0209BF00 +_0209BED8: + ldrb r0, [r6, #0x0] + cmp r0, #0x0 + beq _0209BEF8 + mov r0, #0x4 + bl FUN_020A0098 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_0209BEF8: + mov r0, r7 + bl OS_Sleep +_0209BF00: + ldr r0, [r5, #0x0] + blx r0 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + bl OS_GetTick + mov r0, r0, lsr #0x10 + orr r0, r0, r1, lsl #0x10 + sub r0, r0, r4 + cmp r0, #0x17 + blt _0209BED8 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_0209BF3C: .word 0x021C8ECC +_0209BF40: .word 0x021C8F04 +_0209BF44: .word 0x021C8EAC +_0209BF48: .word 0x021C8EFC + + arm_func_start FUN_0209BF4C +FUN_0209BF4C: ; 0x0209BF4C + stmdb sp!, {r4,lr} + ldr r0, _0209BF98 ; =0x021D3498 + ldr r0, [r0, #0x4] + ldr r4, [r0, #0xa4] + cmp r4, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r1, [r4, #0x60] + cmp r1, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + mov r2, #0x0 + ldr r0, [r4, #0x5c] + mov r3, r2 + bl FUN_0209C0E8 +_0209BF88: ; 0x0209BF88 + mov r0, #0x0 + str r0, [r4, #0x60] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_0209BF98: .word 0x021D3498 + + arm_func_start FUN_0209BF9C +FUN_0209BF9C: + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _0209C02C ; =0x021D3498 + ldr r0, [r0, #0x4] + ldr r0, [r0, #0xa4] + cmp r0, #0x0 + beq _0209C01C + ldrb r1, [r0, #0x9] + cmp r1, #0x0 + beq _0209BFD4 + bl FUN_020A0538 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_0209BFD4: + ldr r1, [r0, #0x44] + cmp r1, #0x0 + bne _0209BFFC + ldrb r0, [r0, #0x8] + cmp r0, #0x4 + beq _0209BFFC + add r0, r0, #0xf6 + and r0, r0, #0xff + cmp r0, #0x1 + bhi _0209C00C +_0209BFFC: + add sp, sp, #0x4 + mov r0, r1 + ldmia sp!, {lr} + bx lr +_0209C00C: + add sp, sp, #0x4 + mvn r0, #0x0 + ldmia sp!, {lr} + bx lr +_0209C01C: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_0209C02C: .word 0x021D3498 + + arm_func_start FUN_0209C030 +FUN_0209C030: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r3, _0209C0E4 ; =0x021D3498 + mov r2, r0 + ldr r4, [r3, #0x4] + mov r3, r1 + ldr r5, [r4, #0xa4] + cmp r5, #0x0 + beq _0209C0D4 + ldr r4, [r5, #0x60] + cmp r4, #0x0 + beq _0209C0BC + ldr r0, [r5, #0x5c] + mov r1, r4 + bl FUN_0209C0E8 + ldr r1, [r5, #0x60] + mov r4, r0 + cmp r4, r1 + movcs r0, #0x0 + strcs r0, [r5, #0x60] + addcs sp, sp, #0x4 + subcs r0, r4, r1 + ldmcsia sp!, {r4-r5,lr} + bxcs lr + ldr r0, [r5, #0x5c] + sub r2, r1, r4 + add r1, r0, r4 + bl memmove + ldr r1, [r5, #0x60] + add sp, sp, #0x4 + sub r1, r1, r4 + mov r0, #0x0 + str r1, [r5, #0x60] + ldmia sp!, {r4-r5,lr} + bx lr +_0209C0BC: + mov r2, #0x0 + mov r3, r2 + bl FUN_0209C0E8 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_0209C0D4: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_0209C0E4: .word 0x021D3498 + + arm_func_start FUN_0209C0E8 +FUN_0209C0E8: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr ip, _0209C1CC ; =0x021D3498 + mov r7, r1 + ldr r12, [r12, #0x4] + mov r6, r2 + ldr r4, [r12, #0xa4] + mov r5, r3 + cmp r4, #0x0 + beq _0209C1BC + ldrb r12, [r4, #0x8] + cmp r12, #0xa + bne _0209C14C + cmp r7, #0x0 + beq _0209C12C + mov r2, r4 + bl FUN_0209EB00 +_0209C12C: + cmp r5, #0x0 + beq _0209C144 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_0209EB00 +_0209C144: + add r0, r7, r5 + b _0209C1A4 +_0209C14C: + cmp r12, #0xb + bne _0209C184 + cmp r7, #0x0 + beq _0209C164 + mov r2, r4 + bl FUN_0209EC40 +_0209C164: + cmp r5, #0x0 + beq _0209C17C + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_0209EC40 +_0209C17C: + add r0, r7, r5 + b _0209C1A4 +_0209C184: + ldrb r12, [r4, #0x9] + cmp r12, #0x0 + beq _0209C19C + str r4, [sp, #0x0] + bl FUN_020A03E0 + b _0209C1A4 +_0209C19C: + str r4, [sp, #0x0] + bl FUN_0209C1D4 +_0209C1A4: + ldr r1, _0209C1D0 ; =0x021C8EA8 + ldrb r1, [r1, #0x0] + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr +_0209C1BC: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_0209C1CC: .word 0x021D3498 +_0209C1D0: .word 0x021C8EA8 + + arm_func_start FUN_0209C1D4 +FUN_0209C1D4: + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x1c + mov r4, #0x0 + mov r10, r0 + ldr r8, [sp, #0x40] + mov r0, r4 + str r4, [sp, #0xc] + mov r9, r1 + mov r11, r2 + str r3, [sp, #0x8] + mov r6, r4 + str r0, [r8, #0x34] + bl OS_GetTick + mov r0, r0, lsr #0x10 + str r0, [sp, #0x10] + orr r0, r0, r1, lsl #0x10 + str r0, [sp, #0x10] + mov r0, r6 + str r0, [sp, #0x18] + mov r0, #0x1 + ldr r4, _0209C3EC ; =0x021C8EFC + str r0, [sp, #0x14] + b _0209C39C +_0209C230: + ldr r7, [r8, #0x28] + ldr r3, [sp, #0x8] + str r8, [sp, #0x0] + mov r0, r10 + mov r1, r9 + mov r2, r11 + str r6, [sp, #0x4] + bl FUN_0209C3F0 + bl OS_GetTick + mov r5, r0, lsr #0x10 + orr r5, r5, r1, lsl #0x10 +_0209C25C: + bl FUN_020A005C +_0209C260: ; 0x0209C260 + ldr r0, [r4, #0x0] + blx r0 + cmp r0, #0x0 + beq _0209C2B8 + ldrb r0, [r8, #0x8] + cmp r0, #0x4 + bne _0209C2B8 + ldr r1, [r8, #0x28] + ldr r0, [r8, #0x30] + cmp r1, r0 + beq _0209C2B8 + bl OS_GetTick + mov r0, r0, lsr #0x10 + orr r0, r0, r1, lsl #0x10 + sub r0, r0, r5 + cmp r0, #0xf + bge _0209C2B8 + cmp r6, #0x0 + beq _0209C25C + ldrh r0, [r8, #0x2c] + cmp r0, #0x0 + beq _0209C25C +_0209C2B8: + ldr r0, [r8, #0x30] + subs r7, r0, r7 + ldr r0, [sp, #0xc] + add r0, r0, r7 + str r0, [sp, #0xc] + beq _0209C2E4 + bl OS_GetTick + mov r0, r0, lsr #0x10 + str r0, [sp, #0x10] + orr r0, r0, r1, lsl #0x10 + str r0, [sp, #0x10] +_0209C2E4: + ldr r0, [r8, #0x30] + str r0, [r8, #0x28] + ldrb r0, [r8, #0x8] + cmp r0, #0x4 + bne _0209C36C + ldrh r0, [r8, #0x2c] + cmp r0, #0x0 + bne _0209C36C + cmp r7, #0x0 + bne _0209C36C + cmp r6, #0x0 + bne _0209C370 + bl OS_GetTick + mov r5, r0, lsr #0x10 + orr r5, r5, r1, lsl #0x10 + b _0209C334 +_0209C324: + bl FUN_020A005C + ldrh r0, [r8, #0x2c] + cmp r0, #0x0 + bne _0209C35C +_0209C334: + ldr r0, [r4, #0x0] + blx r0 + cmp r0, #0x0 + beq _0209C35C + bl OS_GetTick + mov r0, r0, lsr #0x10 + orr r0, r0, r1, lsl #0x10 + sub r0, r0, r5 + cmp r0, #0xf + blt _0209C324 +_0209C35C: + ldrh r0, [r8, #0x2c] + cmp r0, #0x0 + ldreq r6, [sp, #0x14] + b _0209C370 +_0209C36C: + ldr r6, [sp, #0x18] +_0209C370: + cmp r7, r9 + addcc r10, r10, r7 + subcc r9, r9, r7 + blo _0209C39C + sub r1, r7, r9 + add r10, r11, r1 + ldr r0, [sp, #0x8] + ldr r11, [sp, #0x18] + sub r9, r0, r1 + mov r0, r11 + str r0, [sp, #0x8] +_0209C39C: + ldr r0, [r4, #0x0] + blx r0 + cmp r0, #0x0 + beq _0209C3DC + cmp r9, #0x0 + beq _0209C3DC + ldrb r0, [r8, #0x8] + cmp r0, #0x4 + bne _0209C3DC + bl OS_GetTick + mov r2, r0, lsr #0x10 + ldr r0, [sp, #0x10] + orr r2, r2, r1, lsl #0x10 + sub r0, r2, r0 + cmp r0, #0x9f + blt _0209C230 +_0209C3DC: + ldr r0, [sp, #0xc] + add sp, sp, #0x1c + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_0209C3EC: .word 0x021C8EFC + + arm_func_start FUN_0209C3F0 +FUN_0209C3F0: ; 0x0209C3F0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r2 + mov r4, r3 + ldr r2, [sp, #0x10] + ldr r3, [sp, #0x14] + bl FUN_0209C44C +_0209C40C: ; 0x0209C40C + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r2, [sp, #0x10] + mov r0, r5 + mov r1, r4 + mov r3, #0x0 + bl FUN_0209C44C + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_0209C44C +FUN_0209C44C: + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r8, r2 + ldr r11, [r8, #0x34] + mov r10, r0 + movs r0, r3 + mov r0, r11, lsl #0x1 + movne r6, #0x1 + add r5, r0, #0x4 + mov r0, #0x18 + str r3, [sp, #0x4] + mov r9, r1 + ldreqh r6, [r8, #0x2c] + mov r4, #0x0 + str r0, [sp, #0x8] + b _0209C504 +_0209C48C: + ldr r0, _0209C528 ; =0x021C8EB0 + ldrh r7, [r8, #0x2e] + ldrh r0, [r0, #0x0] + ldr r1, [r8, #0x34] + cmp r7, r6 + movcs r7, r6 + cmp r0, r7 + movcc r7, r0 + ldr r0, [sp, #0x4] + cmp r0, #0x0 + biceq r7, r7, #0x1 + cmp r9, r7 + sub r0, r1, r11 + movcc r7, r9 + adds r0, r5, r0 + moveq r7, r4 + mov r11, r1 + sub r5, r0, #0x1 + cmp r7, #0x0 + beq _0209C518 + ldr r3, [sp, #0x8] + mov r0, r10 + mov r1, r7 + mov r2, r8 + str r4, [sp, #0x0] + sub r6, r6, r7 + bl FUN_0209E878 + bl OS_YieldThread + add r10, r10, r7 + sub r9, r9, r7 +_0209C504: + cmp r9, #0x0 + beq _0209C518 + ldrb r0, [r8, #0x8] + cmp r0, #0x4 + beq _0209C48C +_0209C518: + mov r0, r7 + add sp, sp, #0xc + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_0209C528: .word 0x021C8EB0 + + arm_func_start FUN_0209C52C +FUN_0209C52C: ; 0x0209C52C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _0209C57C ; =0x021D3498 + ldr r1, [r1, #0x4] + ldr r1, [r1, #0xa4] + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + ldrb r2, [r1, #0x9] + cmp r2, #0x0 + beq _0209C56C + bl FUN_020A0738 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_0209C56C: + bl FUN_0209C580 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_0209C57C: .word 0x021D3498 + + arm_func_start FUN_0209C580 +FUN_0209C580: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r7, r0 + bl OS_DisableInterrupts + ldr r2, [r4, #0x44] + ldr r1, [r4, #0x3c] + mov r6, r0 + cmp r2, r1 + mov r5, #0x0 + bne _0209C5B4 + cmp r7, #0x0 + movne r5, #0x1 +_0209C5B4: + cmp r7, r2 + movcs r0, #0x0 + strcs r0, [r4, #0x44] + bhs _0209C5D8 + ldr r0, [r4, #0x40] + sub r2, r2, r7 + add r1, r0, r7 + str r2, [r4, #0x44] + bl memmove +_0209C5D8: + mov r0, r6 + bl OS_RestoreInterrupts + ldrb r0, [r4, #0x8] + cmp r0, #0xa + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + cmp r0, #0xb + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + ldr r0, [r4, #0x44] + cmp r0, #0x0 + beq _0209C620 + cmp r5, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr +_0209C620: + mov r0, r4 + mov r1, #0x1b + bl FUN_0209DF84 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_0209C638 +FUN_0209C638: + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _0209C6BC ; =0x021D3498 + ldr r1, [r1, #0x4] + ldr r1, [r1, #0xa4] + cmp r1, #0x0 + beq _0209C6A4 + ldrb r2, [r1, #0x8] + add r2, r2, #0xf6 + and r2, r2, #0xff + cmp r2, #0x1 + bhi _0209C678 + bl FUN_0209C74C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_0209C678: + ldrb r2, [r1, #0x9] + cmp r2, #0x0 + beq _0209C694 + bl FUN_020A0790 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_0209C694: + bl FUN_0209C6C0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_0209C6A4: + mov r1, #0x0 + str r1, [r0, #0x0] + mov r0, r1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_0209C6BC: .word 0x021D3498 + + arm_func_start FUN_0209C6C0 +FUN_0209C6C0: ; 0x0209C6C0 + stmdb sp!, {r4-r8,lr} + mov r4, r1 + ldr r1, [r4, #0x44] + mov r5, r0 + cmp r1, #0x0 + bne _0209C728 + ldrb r0, [r4, #0x8] + cmp r0, #0x4 + bne _0209C728 + bl OS_DisableInterrupts + mov r8, r0 + mov r7, #0x2 + mov r6, #0x0 + b _0209C704 +_0209C6F8: + mov r0, r6 + str r7, [r4, #0x4] + bl OS_SleepThread +_0209C704: + ldr r0, [r4, #0x44] + cmp r0, #0x0 + bne _0209C71C + ldrb r0, [r4, #0x8] + cmp r0, #0x4 + beq _0209C6F8 +_0209C71C: + mov r0, r8 + bl OS_RestoreInterrupts +_0209C724: ; 0x0209C724 + b _0209C72C +_0209C728: + bl OS_YieldThread +_0209C72C: + ldr r0, [r4, #0x44] + str r0, [r5, #0x0] + ldr r0, [r5, #0x0] + cmp r0, #0x0 + ldrne r0, [r4, #0x40] + moveq r0, #0x0 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_0209C74C +FUN_0209C74C: ; 0x0209C74C + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r8, r1 + mov r9, r0 + bl OS_DisableInterrupts + ldr r7, [r8, #0x44] + mov r6, r0 + cmp r7, #0x0 + bne _0209C790 + mov r5, #0x3 + mov r4, #0x0 +_0209C778: + mov r0, r4 + str r5, [r8, #0x4] + bl OS_SleepThread + ldr r7, [r8, #0x44] + cmp r7, #0x0 + beq _0209C778 +_0209C790: + mov r0, r6 + bl OS_RestoreInterrupts + str r7, [r9, #0x0] + ldr r0, [r8, #0x40] + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start FUN_0209C7AC +FUN_0209C7AC: ; 0x0209C7AC + stmdb sp!, {r4-r6,lr} + ldr r0, _0209C838 ; =0x021D3498 + ldr r0, [r0, #0x4] + ldr r4, [r0, #0xa4] + cmp r4, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldrb r0, [r4, #0x9] + cmp r0, #0x0 + beq _0209C7DC + mov r0, r4 + bl FUN_020A0320 +_0209C7DC: + bl OS_GetTick + mov r6, r0, lsr #0x10 + orr r6, r6, r1, lsl #0x10 + ldr r5, _0209C83C ; =0x021C8EFC + b _0209C7F4 +_0209C7F0: + bl FUN_020A005C +_0209C7F4: + ldr r0, [r5, #0x0] + blx r0 + cmp r0, #0x0 + beq _0209C828 + ldrb r0, [r4, #0x8] + cmp r0, #0x0 + beq _0209C828 + bl OS_GetTick + mov r0, r0, lsr #0x10 + orr r0, r0, r1, lsl #0x10 + sub r0, r0, r6 + cmp r0, #0x27 + blt _0209C7F0 +_0209C828: + mov r0, #0x0 + strb r0, [r4, #0x8] + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_0209C838: .word 0x021D3498 +_0209C83C: .word 0x021C8EFC + + arm_func_start FUN_0209C840 +FUN_0209C840: + stmdb sp!, {r4,lr} + ldr r0, _0209C880 ; =0x021D3498 + ldr r0, [r0, #0x4] + ldr r4, [r0, #0xa4] + cmp r4, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldrb r0, [r4, #0x9] + cmp r0, #0x0 + beq _0209C870 + mov r0, r4 + bl FUN_020A035C +_0209C870: + mov r0, r4 + bl FUN_0209C884 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_0209C880: .word 0x021D3498 + + arm_func_start FUN_0209C884 +FUN_0209C884: ; 0x0209C884 + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_YieldThread + ldrb r1, [r4, #0x8] + add r0, r1, #0xfd + and r0, r0, #0xff + cmp r0, #0x1 + bhi _0209C8C0 + mov r0, r4 + mov r1, #0x19 + bl FUN_0209DF70 + mov r0, #0x7 + strb r0, [r4, #0x8] + ldmia sp!, {r4,lr} + bx lr +_0209C8C0: + cmp r1, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + mov r0, r4 + mov r1, #0x1a + bl FUN_0209DF84 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_0209C8E0 +FUN_0209C8E0: ; 0x0209C8E0 + ldr r2, _0209C930 ; =0x021D3498 + ldr r2, [r2, #0x4] + ldr r3, [r2, #0xa4] + cmp r3, #0x0 + beq _0209C928 + ldrb r2, [r3, #0x8] + cmp r2, #0x4 + beq _0209C908 + cmp r2, #0xa + bne _0209C928 +_0209C908: + cmp r0, #0x0 + ldrneh r2, [r3, #0x18] + strneh r2, [r0, #0x0] + cmp r1, #0x0 + ldrne r0, [r3, #0x14] + strne r0, [r1, #0x0] + ldr r0, [r3, #0x1c] + bx lr +_0209C928: + mov r0, #0x0 + bx lr + .balign 4 +_0209C930: .word 0x021D3498 + + arm_func_start FUN_0209C934 +FUN_0209C934: ; 0x0209C934 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _0209C98C ; =0x021D3498 + ldr r0, [r0, #0x4] + ldr r0, [r0, #0xa4] + cmp r0, #0x0 + beq _0209C97C + ldrb r1, [r0, #0x9] + cmp r1, #0x0 + beq _0209C96C + bl FUN_020A0874 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_0209C96C: + bl FUN_0209C990 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_0209C97C: + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_0209C98C: .word 0x021D3498 + + arm_func_start FUN_0209C990 +FUN_0209C990: + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r10, r0 + bl FUN_0209CC3C + mov r8, r0 + mov r9, #0x0 + mov r11, r9 + mov r4, #0x1 + mov r6, #0x2 + mov r5, #0x18 +_0209C9B8: + str r8, [r10, #0x28] + strb r6, [r10, #0x8] + bl OS_GetTick + mov r2, r0, lsr #0x10 + orr r2, r2, r1, lsl #0x10 + str r2, [r10, #0x10] + mov r0, r10 + mov r1, r6 + mov r2, r5 + bl FUN_0209DF98 + bl OS_DisableInterrupts + mov r7, r0 + ldr r0, _0209CA50 ; =0x021C8F04 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0209CA04 + mov r0, r11 + str r4, [r10, #0x4] + bl OS_SleepThread +_0209CA04: + mov r0, r7 + bl OS_RestoreInterrupts + ldrb r0, [r10, #0x8] + cmp r0, #0x4 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldr r0, _0209CA50 ; =0x021C8F04 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _0209CA40 + add r9, r9, #0x1 + cmp r9, #0x3 + blo _0209C9B8 +_0209CA40: + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_0209CA50: .word 0x021C8F04 + + arm_func_start FUN_0209CA54 +FUN_0209CA54: ; 0x0209CA54 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _0209CAA4 ; =0x021D3498 + ldr r0, [r0, #0x4] + ldr r0, [r0, #0xa4] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + ldrb r1, [r0, #0x9] + cmp r1, #0x0 + beq _0209CA94 + bl FUN_020A09CC + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_0209CA94: + bl FUN_0209CAC4 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_0209CAA4: .word 0x021D3498 + + arm_func_start FUN_0209CAA8 +FUN_0209CAA8: + ldr r1, _0209CAC0 ; =0x021D3498 + ldr r1, [r1, #0x4] + ldr r1, [r1, #0xa4] + cmp r1, #0x0 + strne r0, [r1, #0x38] + bx lr + .balign 4 +_0209CAC0: .word 0x021D3498 + + arm_func_start FUN_0209CAC4 +FUN_0209CAC4: ; 0x0209CAC4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl FUN_0209CC3C + str r0, [r5, #0x28] + mov r0, #0x1 + strb r0, [r5, #0x8] + bl OS_DisableInterrupts + mov r4, r0 + mov r1, #0x1 + mov r0, #0x0 + str r1, [r5, #0x4] + bl OS_SleepThread + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_0209CB0C +FUN_0209CB0C: ; 0x0209CB0C + ldr r1, _0209CB20 ; =0x021D3498 + ldr r1, [r1, #0x4] + ldr r1, [r1, #0xa4] + str r1, [r0, #0xa4] + bx lr + .balign 4 +_0209CB20: .word 0x021D3498 + + arm_func_start FUN_0209CB24 +FUN_0209CB24: ; 0x0209CB24 + ldr r0, _0209CB40 ; =0x021D3498 + ldr r0, [r0, #0x4] + ldr r1, [r0, #0xa4] + cmp r1, #0x0 + movne r0, #0x0 + strne r0, [r1, #0x0] + bx lr + .balign 4 +_0209CB40: .word 0x021D3498 + + arm_func_start FUN_0209CB44 +FUN_0209CB44: ; 0x0209CB44 + ldr r0, _0209CB74 ; =0x021D3498 + ldr r0, [r0, #0x4] + ldr r1, [r0, #0xa4] + cmp r1, #0x0 + bxeq lr + str r0, [r1, #0x0] + mov r0, #0x0 + strb r0, [r1, #0x8] + str r0, [r1, #0x44] + str r0, [r1, #0x60] + str r0, [r1, #0x38] + bx lr + .balign 4 +_0209CB74: .word 0x021D3498 + + arm_func_start FUN_0209CB78 +FUN_0209CB78: ; 0x0209CB78 + stmdb sp!, {r4,lr} + ldr r3, _0209CBDC ; =0x021D3498 + ldr r3, [r3, #0x4] + ldr r4, [r3, #0xa4] + cmp r4, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r3, _0209CBE0 ; =0x7F000001 + cmp r2, r3 + ldreq r2, _0209CBE4 ; =0x021C8F04 + ldreq r2, [r2, #0x0] + cmp r0, #0x0 + strh r1, [r4, #0x1a] + ldrh r1, [r4, #0x1a] + strh r1, [r4, #0x18] + str r2, [r4, #0x20] + ldr r1, [r4, #0x20] + str r1, [r4, #0x1c] + strneh r0, [r4, #0xa] + ldmneia sp!, {r4,lr} + bxne lr + bl FUN_0209CC8C + strh r0, [r4, #0xa] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_0209CBDC: .word 0x021D3498 +_0209CBE0: .word 0x7F000001 +_0209CBE4: .word 0x021C8F04 + + arm_func_start FUN_0209CBE8 +FUN_0209CBE8: ; 0x0209CBE8 + ldr r0, _0209CC0C ; =0x021D3498 + ldr r0, [r0, #0x4] + ldr r1, [r0, #0xa4] + cmp r1, #0x0 + movne r0, #0xa + strneb r0, [r1, #0x8] + movne r0, #0x0 + strne r0, [r1, #0x44] + bx lr + .balign 4 +_0209CC0C: .word 0x021D3498 + + arm_func_start FUN_0209CC10 +FUN_0209CC10: ; 0x0209CC10 + ldr r0, _0209CC24 ; =0x021D3498 + mov r1, #0x0 + ldr r0, [r0, #0x4] + str r1, [r0, #0xa4] + bx lr + .balign 4 +_0209CC24: .word 0x021D3498 + + arm_func_start FUN_0209CC28 +FUN_0209CC28: ; 0x0209CC28 + ldr r1, _0209CC38 ; =0x021D3498 + ldr r1, [r1, #0x4] + str r0, [r1, #0xa4] + bx lr + .balign 4 +_0209CC38: .word 0x021D3498 + + arm_func_start FUN_0209CC3C +FUN_0209CC3C: ; 0x0209CC3C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _0209CC88 ; =0x021C8F24 + ldr r3, [r1, #0x8] + ldr r2, [r1, #0x0] + ldr r0, [r1, #0x4] + umull lr, r12, r3, r2 + mla r12, r3, r0, r12 + ldr r0, [r1, #0xc] + ldr r3, [r1, #0x10] + mla r12, r0, r2, r12 + adds r2, r3, lr + ldr r0, [r1, #0x14] + str r2, [r1, #0x0] + adc r0, r0, r12 + str r0, [r1, #0x4] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_0209CC88: .word 0x021C8F24 + + arm_func_start FUN_0209CC8C +FUN_0209CC8C: ; 0x0209CC8C + stmdb sp!, {r4-r8,lr} + ldr r0, _0209CD30 ; =0x021D3498 + ldr r6, [r0, #0x8] + ldr r2, _0209CD34 ; =0x021C8EBC + mov r4, #0x400 + mov r3, #0x1 + mov r5, #0x0 + ldr r1, _0209CD38 ; =0x00001388 +_0209CCAC: + ldrh r12, [r2, #0x0] + mov r0, r5 + add r12, r12, #0x1 + strh r12, [r2, #0x0] + ldrh r12, [r2, #0x0] + cmp r12, #0x400 + blo _0209CCD0 + cmp r12, r1 + blo _0209CCD4 +_0209CCD0: + strh r4, [r2, #0x0] +_0209CCD4: + mov r8, r6 + cmp r6, #0x0 + beq _0209CD18 + ldrh r7, [r2, #0x0] +_0209CCE4: + ldr lr, [r8, #0xa4] + cmp lr, #0x0 + beq _0209CD0C + ldr r12, [lr, #0x0] + cmp r12, #0x0 + beq _0209CD0C + ldrh r12, [lr, #0xa] + cmp r12, r7 + moveq r0, r3 + beq _0209CD18 +_0209CD0C: + ldr r8, [r8, #0x68] + cmp r8, #0x0 + bne _0209CCE4 +_0209CD18: + cmp r0, #0x0 + bne _0209CCAC + ldr r0, _0209CD34 ; =0x021C8EBC + ldrh r0, [r0, #0x0] + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_0209CD30: .word 0x021D3498 +_0209CD34: .word 0x021C8EBC +_0209CD38: .word 0x00001388 + + arm_func_start FUN_0209CD3C +FUN_0209CD3C: ; 0x0209CD3C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r5, _0209CDAC ; =0x00000806 + add r4, sp, #0x0 +_0209CD4C: + mov r0, r4 + bl FUN_0209F57C + ldr r3, [sp, #0x0] + cmp r3, #0x22 + bls _0209CDA4 + ldrh r2, [r0, #0xc] + mov r1, r2, asr #0x8 + orr r1, r1, r2, lsl #0x8 + mov r1, r1, lsl #0x10 + mov r1, r1, lsr #0x10 + cmp r1, #0x800 + beq _0209CD88 + cmp r1, r5 + beq _0209CD98 + b _0209CDA4 +_0209CD88: + add r0, r0, #0xe + sub r1, r3, #0xe + bl FUN_0209CDB0 + b _0209CDA4 +_0209CD98: + add r0, r0, #0xe + sub r1, r3, #0xe + bl FUN_0209E614 +_0209CDA4: + bl FUN_0209F51C + b _0209CD4C + .balign 4 +_0209CDAC: .word 0x00000806 + + arm_func_start FUN_0209CDB0 +FUN_0209CDB0: ; 0x0209CDB0 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r4, r0 + ldrh r12, [r4, #0xc] + ldrh r6, [r4, #0x10] + ldrh r2, [r4, #0xe] + ldrh r0, [r4, #0x12] + mov r5, r6, asr #0x8 + mov r3, r12, asr #0x8 + orr r5, r5, r6, lsl #0x8 + orr r12, r3, r12, lsl #0x8 + mov r3, r5, lsl #0x10 + mov r5, r0, asr #0x8 + mov r12, r12, lsl #0x10 + mov lr, r2, asr #0x8 + mov r6, r3, lsr #0x10 + orr r0, r5, r0, lsl #0x8 + mov r3, r12, lsr #0x10 + orr r2, lr, r2, lsl #0x8 + mov r5, r6, lsl #0x10 + mov r0, r0, lsl #0x10 + mov r3, r3, lsl #0x10 + mov r2, r2, lsl #0x10 + orr r0, r5, r0, lsr #0x10 + orr r2, r3, r2, lsr #0x10 + mov r5, r1 + cmp r0, r2 + beq _0209CEF0 + bl FUN_0209F9CC +_0209CE24: ; 0x0209CE24 + cmp r0, #0x0 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldrh r1, [r4, #0x2] + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + mov r0, r0, lsl #0x10 + cmp r5, r0, lsr #0x10 + addcc sp, sp, #0x8 + ldmccia sp!, {r4-r6,lr} + bxcc lr + ldrb r1, [r4, #0x0] + mov r0, r4 + and r1, r1, #0xf + mov r1, r1, lsl #0x2 + bl FUN_0209FB84 + ldr r1, _0209CFA0 ; =0x0000FFFF + cmp r0, r1 + addne sp, sp, #0x8 + ldmneia sp!, {r4-r6,lr} + bxne lr + ldrh r2, [r4, #0x10] + ldrh r12, [r4, #0x12] + ldr r1, _0209CFA4 ; =0x021C8F04 + mov r0, r2, asr #0x8 + orr r0, r0, r2, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r2, r12, asr #0x8 + mov r3, r0, lsr #0x10 + orr r0, r2, r12, lsl #0x8 + mov r2, r3, lsl #0x10 + mov r0, r0, lsl #0x10 + ldr r1, [r1, #0x0] + orr r0, r2, r0, lsr #0x10 + cmp r1, r0 + bne _0209CEF0 + ldrh r2, [r4, #0xc] + ldrh r12, [r4, #0xe] + sub r0, r4, #0x8 + mov r1, r2, asr #0x8 + orr r1, r1, r2, lsl #0x8 + mov r1, r1, lsl #0x10 + mov r2, r12, asr #0x8 + mov r3, r1, lsr #0x10 + orr r1, r2, r12, lsl #0x8 + mov r2, r3, lsl #0x10 + mov r1, r1, lsl #0x10 + orr r1, r2, r1, lsr #0x10 + mov r2, #0x1 + bl FUN_0209F12C +_0209CEF0: + add r1, sp, #0x0 + mov r0, r4 + bl FUN_0209CFAC + movs r4, r0 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldrh r2, [r4, #0x2] + ldrb r3, [r4, #0x0] + ldrb r12, [r4, #0x9] + mov r1, r2, asr #0x8 + orr r1, r1, r2, lsl #0x8 + mov r1, r1, lsl #0x10 + and r3, r3, #0xf + mov r2, r1, lsr #0x10 + cmp r12, #0x11 + add r1, r4, r3, lsl #0x2 + sub r2, r2, r3, lsl #0x2 + bne _0209CF44 + bl FUN_0209D2BC + b _0209CF70 +_0209CF44: + ldr r3, _0209CFA4 ; =0x021C8F04 + ldr r3, [r3, #0x0] + cmp r3, #0x0 + beq _0209CF70 + cmp r12, #0x1 + bne _0209CF64 + bl FUN_0209E2E0 + b _0209CF70 +_0209CF64: + cmp r12, #0x6 + bne _0209CF70 + bl FUN_0209D4D8 +_0209CF70: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r1, _0209CFA8 ; =0x021C8EF4 + sub r0, r4, #0xe + ldr r1, [r1, #0x0] + blx r1 + add sp, sp, #0x8 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_0209CFA0: .word 0x0000FFFF +_0209CFA4: .word 0x021C8F04 +_0209CFA8: .word 0x021C8EF4 + + arm_func_start FUN_0209CFAC +FUN_0209CFAC: ; 0x0209CFAC + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x14 + mov r6, #0x0 + mov r10, r0 + str r6, [r1, #0x0] + ldrh r3, [r10, #0x6] + str r1, [sp, #0x0] + ldr r2, _0209D2A4 ; =0x00003FFF + mov r1, r3, asr #0x8 + orr r1, r1, r3, lsl #0x8 + mov r1, r1, lsl #0x10 + mov r1, r1, lsr #0x10 + str r1, [sp, #0x4] + ands r1, r1, r2 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldrh r1, [r10, #0xc] + ldrh r3, [r10, #0xe] + ldrb r4, [r10, #0x0] + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r1, r3, asr #0x8 + mov r2, r0, lsr #0x10 + orr r0, r1, r3, lsl #0x8 + and r3, r4, #0xf + ldrh r9, [r10, #0x4] + mov r2, r2, lsl #0x10 + mov r1, r0, lsl #0x10 + ldr r5, _0209D2A8 ; =0x021C9520 + mov r0, r6 + mov r7, r3, lsl #0x2 + orr r4, r2, r1, lsr #0x10 +_0209D034: + ldrh r2, [r5, #0x4] + cmp r2, #0x0 + beq _0209D058 + ldr r1, [r5, #0x0] + cmp r1, r4 + bne _0209D058 + ldrh r1, [r5, #0x6] + cmp r1, r9 + beq _0209D078 +_0209D058: + cmp r2, #0x0 + bne _0209D068 + cmp r6, #0x0 + moveq r6, r5 +_0209D068: + add r0, r0, #0x1 + cmp r0, #0x8 + add r5, r5, #0x38 + blo _0209D034 +_0209D078: + ldrh r2, [r10, #0x2] + cmp r0, #0x8 + ldr r1, _0209D2AC ; =0x00001FFF + mov r0, r2, asr #0x8 + orr r0, r0, r2, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r2, r0, lsr #0x10 + ldr r0, [sp, #0x4] + and r8, r0, r1 + sub r0, r2, r7 + str r0, [sp, #0x8] + mov r0, r8, lsl #0x3 + str r0, [sp, #0xc] + ldr r0, [sp, #0x8] + add r11, r0, r8, lsl #0x3 + bne _0209D150 + cmp r6, #0x0 + beq _0209D0C8 + cmp r11, #0x1000 + bls _0209D0D8 +_0209D0C8: + add sp, sp, #0x14 + mov r0, #0x0 + ldmia sp!, {r4-r11,lr} + bx lr +_0209D0D8: + ldr r1, _0209D2B0 ; =0x021C8EC8 + ldr r0, _0209D2B4 ; =0x0000100E + ldr r1, [r1, #0x0] + add r0, r7, r0 + mov r5, r6 + blx r1 + str r0, [r6, #0x34] + ldr r0, [r6, #0x34] + cmp r0, #0x0 + addeq sp, sp, #0x14 + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + str r4, [r6, #0x0] + strh r9, [r6, #0x6] + mov r0, #0x0 + strh r0, [r6, #0x8] + bl OS_GetTick + mov r0, r0, lsr #0x10 + orr r0, r0, r1, lsl #0x10 + str r0, [r6, #0x2c] + ldr r1, [r6, #0x34] + mov r0, r10 + add r1, r1, #0xe + add r1, r1, r7 + str r1, [r6, #0x30] + ldr r1, [r6, #0x34] + mov r2, r7 + add r1, r1, #0xe + bl MI_CpuCopy8 +_0209D150: + ldrh r0, [r5, #0x4] + cmp r0, #0x8 + beq _0209D164 + cmp r11, #0x1000 + bls _0209D18C +_0209D164: + mov r0, #0x0 + strh r0, [r5, #0x4] + ldr r1, _0209D2B8 ; =0x021C8EF4 + ldr r0, [r5, #0x34] + ldr r1, [r1, #0x0] + blx r1 + add sp, sp, #0x14 + mov r0, #0x0 + ldmia sp!, {r4-r11,lr} + bx lr +_0209D18C: + ldr r0, [sp, #0x8] + ldr r2, [sp, #0x8] + add r0, r0, #0x7 + add r1, r8, r0, lsr #0x3 + ldr r0, [sp, #0x4] + ands r0, r0, #0x2000 + streqh r11, [r5, #0xa] + streqh r1, [r5, #0x8] + ldrh r3, [r5, #0x4] + add r0, r10, r7 + add r3, r5, r3, lsl #0x1 + strh r8, [r3, #0xc] + ldrh r3, [r5, #0x4] + add r3, r5, r3, lsl #0x1 + strh r1, [r3, #0x1c] + ldrh r1, [r5, #0x4] + add r1, r1, #0x1 + strh r1, [r5, #0x4] + ldr r3, [r5, #0x30] + ldr r1, [sp, #0xc] + add r1, r3, r1 + bl MI_CpuCopy8 + ldrh r6, [r5, #0x8] + cmp r6, #0x0 + addeq sp, sp, #0x14 + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldrh r7, [r5, #0x4] + mov r3, #0x0 + mov r4, r3 + cmp r7, #0x0 + bls _0209D244 + mov r0, r3 +_0209D214: + add r2, r5, r4, lsl #0x1 + ldrh r1, [r2, #0xc] + cmp r1, r3 + bhi _0209D238 + ldrh r1, [r2, #0x1c] + cmp r3, r1 + movcc r3, r1 + movcc r4, r0 + blo _0209D23C +_0209D238: + add r4, r4, #0x1 +_0209D23C: + cmp r4, r7 + blo _0209D214 +_0209D244: + cmp r3, r6 + addcc sp, sp, #0x14 + movcc r0, #0x0 + ldmccia sp!, {r4-r11,lr} + bxcc lr + ldr r0, [r5, #0x34] + ldrh r3, [r5, #0xa] + ldrb r1, [r0, #0xe] + add r0, r0, #0xe + mov r2, #0x0 + and r1, r1, #0xf + add r1, r3, r1, lsl #0x2 + mov r1, r1, lsl #0x10 + mov r3, r1, lsr #0x10 + mov r1, r3, asr #0x8 + orr r1, r1, r3, lsl #0x8 + strh r1, [r0, #0x2] + strh r2, [r5, #0x4] + ldr r1, [sp, #0x0] + mov r2, #0x1 + str r2, [r1, #0x0] + add sp, sp, #0x14 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_0209D2A4: .word 0x00003FFF +_0209D2A8: .word 0x021C9520 +_0209D2AC: .word 0x00001FFF +_0209D2B0: .word 0x021C8EC8 +_0209D2B4: .word 0x0000100E +_0209D2B8: .word 0x021C8EF4 + + arm_func_start FUN_0209D2BC +FUN_0209D2BC: ; 0x0209D2BC + stmdb sp!, {r4-r8,lr} + mov r6, r1 + ldrh r1, [r6, #0x6] + mov r7, r0 + mov r5, r2 + cmp r1, #0x0 + beq _0209D2F8 + mov r0, r6 + mov r1, r5 + mov r2, r7 + mov r3, #0x11 + bl FUN_0209FB28 +_0209D2EC: ; 0x0209D2EC + cmp r0, #0x0 + ldmneia sp!, {r4-r8,lr} + bxne lr +_0209D2F8: + bl OS_DisableInterrupts + ldr r1, _0209D4D4 ; =0x021D3498 + mov r8, r0 + ldr r2, [r1, #0x8] + cmp r2, #0x0 + beq _0209D4C4 + mvn r12, #0x0 +_0209D314: + ldr r4, [r2, #0xa4] + cmp r4, #0x0 + beq _0209D4B8 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _0209D4B8 + ldrb r0, [r4, #0x8] + cmp r0, #0xa + bne _0209D4B8 + ldrh r3, [r6, #0x2] + ldrh r1, [r4, #0xa] + mov r0, r3, asr #0x8 + orr r0, r0, r3, lsl #0x8 + mov r0, r0, lsl #0x10 + cmp r1, r0, lsr #0x10 + bne _0209D4B8 + ldrh r3, [r4, #0x18] + cmp r3, #0x0 + beq _0209D378 + ldrh r1, [r6, #0x0] + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + mov r0, r0, lsl #0x10 + cmp r3, r0, lsr #0x10 + bne _0209D4B8 +_0209D378: + ldr r1, [r4, #0x1c] + cmp r1, #0x0 + beq _0209D3C0 + cmp r1, r12 + beq _0209D3C0 + ldrh lr, [r7, #0xc] + ldrh r0, [r7, #0xe] + mov r3, lr, asr #0x8 + orr r3, r3, lr, lsl #0x8 + mov r3, r3, lsl #0x10 + mov lr, r0, asr #0x8 + mov r3, r3, lsr #0x10 + orr r0, lr, r0, lsl #0x8 + mov r3, r3, lsl #0x10 + mov r0, r0, lsl #0x10 + orr r0, r3, r0, lsr #0x10 + cmp r1, r0 + bne _0209D4B8 +_0209D3C0: + ldrh r1, [r7, #0x10] + ldrh r3, [r7, #0x12] + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r1, r3, asr #0x8 + mov r2, r0, lsr #0x10 + orr r0, r1, r3, lsl #0x8 + mov r1, r2, lsl #0x10 + mov r0, r0, lsl #0x10 + orr r0, r1, r0, lsr #0x10 + str r0, [r4, #0x14] + ldr r0, [r4, #0x1c] + cmp r0, #0x0 + bne _0209D43C + ldrh r1, [r7, #0xc] + ldrh r3, [r7, #0xe] + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r1, r3, asr #0x8 + mov r2, r0, lsr #0x10 + orr r0, r1, r3, lsl #0x8 + mov r1, r2, lsl #0x10 + mov r0, r0, lsl #0x10 + orr r0, r1, r0, lsr #0x10 + str r0, [r4, #0x1c] + ldrh r1, [r6, #0x0] + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + strh r0, [r4, #0x18] +_0209D43C: + ldr r0, [r4, #0x44] + cmp r0, #0x0 + bne _0209D4C4 + ldr r1, [r4, #0x3c] + sub r0, r5, #0x8 + cmp r0, r1 + strhi r1, [r4, #0x44] + strls r0, [r4, #0x44] + ldr r1, [r4, #0x40] + ldr r2, [r4, #0x44] + add r0, r6, #0x8 + bl MI_CpuCopy8 + ldr r0, [r4, #0x4] + cmp r0, #0x3 + bne _0209D48C + mov r0, #0x0 + str r0, [r4, #0x4] + ldr r0, [r4, #0x0] + bl OS_WakeupThreadDirect + b _0209D4C4 +_0209D48C: + ldr r3, [r4, #0x38] + cmp r3, #0x0 + beq _0209D4C4 + ldr r0, [r4, #0x40] + ldr r1, [r4, #0x44] + mov r2, r4 + blx r3 + cmp r0, #0x0 + movne r0, #0x0 + strne r0, [r4, #0x44] + b _0209D4C4 +_0209D4B8: + ldr r2, [r2, #0x68] + cmp r2, #0x0 + bne _0209D314 +_0209D4C4: + mov r0, r8 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_0209D4D4: .word 0x021D3498 + + arm_func_start FUN_0209D4D8 +FUN_0209D4D8: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + mov r0, r5 + mov r1, r4 + mov r2, r6 + mov r3, #0x6 + bl FUN_0209FB28 +_0209D4FC: ; 0x0209D4FC + cmp r0, #0x0 + ldmneia sp!, {r4-r6,lr} + bxne lr + ldrb r0, [r5, #0xc] + ldrb r2, [r5, #0xd] + and r1, r0, #0xf0 + mov r0, r1, asr #0x1 + add r0, r1, r0, lsr #0x1e + and r1, r2, #0x17 + cmp r1, #0x10 + sub r4, r4, r0, asr #0x2 + bgt _0209D558 + cmp r1, #0x10 + bge _0209D5C4 + cmp r1, #0x2 + bgt _0209D5F4 + cmp r1, #0x1 + blt _0209D5F4 + cmp r1, #0x1 + beq _0209D5DC + cmp r1, #0x2 + beq _0209D57C + b _0209D5F4 +_0209D558: + cmp r1, #0x12 + bgt _0209D5F4 + cmp r1, #0x11 + blt _0209D5F4 + cmp r1, #0x11 + beq _0209D5C4 + cmp r1, #0x12 + beq _0209D5A0 + b _0209D5F4 +_0209D57C: + ands r0, r2, #0x28 + ldmneia sp!, {r4-r6,lr} + bxne lr + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_0209DBB0 + ldmia sp!, {r4-r6,lr} + bx lr +_0209D5A0: + ands r0, r2, #0x28 + ldmneia sp!, {r4-r6,lr} + bxne lr + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_0209DA9C + ldmia sp!, {r4-r6,lr} + bx lr +_0209D5C4: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_0209D774 + ldmia sp!, {r4-r6,lr} + bx lr +_0209D5DC: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_0209D674 + ldmia sp!, {r4-r6,lr} + bx lr +_0209D5F4: + ands r0, r2, #0x4 + beq _0209D610 + mov r0, r6 + mov r1, r5 + bl FUN_0209D62C + ldmia sp!, {r4-r6,lr} + bx lr +_0209D610: + mov r0, r6 + mov r1, r5 + mov r2, r4 + mov r3, #0x0 + bl FUN_0209DE34 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_0209D62C +FUN_0209D62C: ; 0x0209D62C + stmdb sp!, {r4,lr} + bl FUN_0209E0C8 + movs r4, r0 + ldmeqia sp!, {r4,lr} + bxeq lr + bl OS_YieldThread + mov r1, #0x0 + strb r1, [r4, #0x8] + ldr r0, [r4, #0x4] + sub r0, r0, #0x1 + cmp r0, #0x1 + ldmhiia sp!, {r4,lr} + bxhi lr + str r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl OS_WakeupThreadDirect + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_0209D674 +FUN_0209D674: ; 0x0209D674 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl FUN_0209E0C8 + movs r4, r0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + ldrb r1, [r4, #0x8] + cmp r1, #0x4 + beq _0209D72C + cmp r1, #0x7 + beq _0209D6BC + cmp r1, #0x8 + beq _0209D6E4 + b _0209D754 +_0209D6BC: + ldr r2, [r4, #0x24] + mov r1, #0x0 + add r2, r2, #0x1 + str r2, [r4, #0x24] + bl FUN_0209DF84 + mov r0, #0x9 + add sp, sp, #0x4 + strb r0, [r4, #0x8] + ldmia sp!, {r4-r7,lr} + bx lr +_0209D6E4: + ldr r2, [r4, #0x24] + mov r1, #0x0 + add r2, r2, #0x1 + str r2, [r4, #0x24] + bl FUN_0209DF84 + mov r1, #0x0 + strb r1, [r4, #0x8] + ldr r0, [r4, #0x4] + cmp r0, #0x2 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr + str r1, [r4, #0x4] + ldr r0, [r4, #0x0] + bl OS_WakeupThreadDirect + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_0209D72C: + ldr r2, [r4, #0x24] + mov r1, #0x0 + add r2, r2, #0x1 + str r2, [r4, #0x24] + bl FUN_0209DF70 + mov r0, #0x6 + add sp, sp, #0x4 + strb r0, [r4, #0x8] + ldmia sp!, {r4-r7,lr} + bx lr +_0209D754: + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, #0x0 + bl FUN_0209DE34 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_0209D774 +FUN_0209D774: ; 0x0209D774 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r8, r0 + mov r7, r1 + mov r6, r2 + bl FUN_0209E0C8 + movs r5, r0 + bne _0209D7B4 + mov r0, r8 + mov r1, r7 + mov r2, r6 + mov r3, #0x0 + bl FUN_0209DE34 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr +_0209D7B4: + ldrh r3, [r7, #0x8] + ldrh r1, [r7, #0xa] + ldrb r4, [r7, #0xd] + mov r2, r3, asr #0x8 + orr r2, r2, r3, lsl #0x8 + mov r2, r2, lsl #0x10 + mov r3, r1, asr #0x8 + mov r2, r2, lsr #0x10 + orr r1, r3, r1, lsl #0x8 + mov r2, r2, lsl #0x10 + mov r1, r1, lsl #0x10 + orr r1, r2, r1, lsr #0x10 + str r1, [r5, #0x30] + ldrh r9, [r7, #0x4] + ldrh r1, [r7, #0x6] + ldrb r3, [r5, #0x8] + mov r2, r9, asr #0x8 + orr r2, r2, r9, lsl #0x8 + mov r2, r2, lsl #0x10 + mov r9, r1, asr #0x8 + mov r2, r2, lsr #0x10 + orr r1, r9, r1, lsl #0x8 + mov r2, r2, lsl #0x10 + mov r1, r1, lsl #0x10 + cmp r3, #0x4 + orr r2, r2, r1, lsr #0x10 + bne _0209D840 + ldr r1, [r5, #0x24] + cmp r1, r2 + beq _0209D840 + mov r1, #0x0 + bl FUN_0209DF84 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr +_0209D840: + ldrh r1, [r7, #0xe] + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + strh r0, [r5, #0x2c] + ldrb r0, [r5, #0x8] + cmp r0, #0x9 + addls pc, pc, r0, lsl #0x2 + b _0209DA70 +_0209D860: + b _0209D888 +_0209D864: + b _0209DA70 +_0209D868: + b _0209D888 +_0209D86C: + b _0209D8A0 +_0209D870: + b _0209D8CC +_0209D874: + b _0209DA70 +_0209D878: + b _0209DA4C +_0209D87C: + b _0209D9D8 +_0209D880: + b _0209D9D8 +_0209D884: + b _0209DA4C +_0209D888: + mov r0, r8 + mov r1, r7 + mov r2, r6 + mov r3, #0x0 + bl FUN_0209DE34 + b _0209DA8C +_0209D8A0: + mov r0, #0x4 + strb r0, [r5, #0x8] + ldr r0, [r5, #0x4] + cmp r0, #0x1 + bne _0209D8C4 + mov r0, #0x0 + str r0, [r5, #0x4] + ldr r0, [r5, #0x0] + bl OS_WakeupThreadDirect +_0209D8C4: + cmp r6, #0x0 + beq _0209DA8C +_0209D8CC: + ldr r0, [r5, #0x34] + add r0, r0, #0x1 + str r0, [r5, #0x34] + ldr r1, [r5, #0x3c] + ldr r0, [r5, #0x44] + sub r0, r1, r0 + cmp r6, r0 + movhi r9, #0x0 + movhi r6, r0 + movls r9, #0x1 + cmp r6, #0x0 + beq _0209D968 + bl OS_DisableInterrupts + ldrb r1, [r7, #0xc] + ldr r12, [r5, #0x40] + ldr r3, [r5, #0x44] + and r2, r1, #0xf0 + mov r1, r2, asr #0x1 + add r1, r2, r1, lsr #0x1e + mov r8, r0 + mov r2, r6 + add r0, r7, r1, asr #0x2 + add r1, r12, r3 + bl MI_CpuCopy8 + ldr r1, [r5, #0x44] + mov r0, r8 + add r1, r1, r6 + str r1, [r5, #0x44] + ldr r1, [r5, #0x24] + add r1, r1, r6 + str r1, [r5, #0x24] + bl OS_RestoreInterrupts + ldr r0, [r5, #0x4] + cmp r0, #0x2 + bne _0209D968 + mov r0, #0x0 + str r0, [r5, #0x4] + ldr r0, [r5, #0x0] + bl OS_WakeupThreadDirect +_0209D968: + cmp r9, #0x0 + beq _0209D9C0 + ands r0, r4, #0x1 + beq _0209D9C0 + mov r0, #0x6 + strb r0, [r5, #0x8] + ldr r1, [r5, #0x24] + mov r0, r5 + add r2, r1, #0x1 + mov r1, #0x0 + str r2, [r5, #0x24] + bl FUN_0209DF70 +_0209D998: ; 0x0209D998 + cmp r6, #0x0 + bne _0209DA8C + ldr r0, [r5, #0x4] + cmp r0, #0x2 + bne _0209DA8C + mov r0, #0x0 + str r0, [r5, #0x4] + ldr r0, [r5, #0x0] + bl OS_WakeupThreadDirect + b _0209DA8C +_0209D9C0: + cmp r6, #0x0 + beq _0209DA8C + mov r0, r5 + mov r1, #0x0 + bl FUN_0209DF84 + b _0209DA8C +_0209D9D8: + ands r0, r4, #0x1 + beq _0209DA20 + ldr r1, [r5, #0x24] + add r0, r6, #0x1 + add r2, r1, r0 + mov r0, r5 + mov r1, #0x0 + str r2, [r5, #0x24] + bl FUN_0209DF84 + mov r1, #0x0 + strb r1, [r5, #0x8] + ldr r0, [r5, #0x4] + cmp r0, #0x2 + bne _0209DA8C + str r1, [r5, #0x4] + ldr r0, [r5, #0x0] + bl OS_WakeupThreadDirect + b _0209DA8C +_0209DA20: + cmp r6, #0x0 + beq _0209DA40 + ldr r1, [r5, #0x24] + mov r0, r5 + add r2, r1, r6 + mov r1, #0x0 + str r2, [r5, #0x24] + bl FUN_0209DF84 +_0209DA40: + mov r0, #0x8 + strb r0, [r5, #0x8] + b _0209DA8C +_0209DA4C: + mov r1, #0x0 + strb r1, [r5, #0x8] + ldr r0, [r5, #0x4] + cmp r0, #0x2 + bne _0209DA8C + str r1, [r5, #0x4] + ldr r0, [r5, #0x0] + bl OS_WakeupThreadDirect + b _0209DA8C +_0209DA70: + ands r0, r4, #0x1 + ldrne r0, [r5, #0x24] + mov r1, #0x0 + addne r0, r0, #0x1 + strne r0, [r5, #0x24] + mov r0, r5 + bl FUN_0209DF84 +_0209DA8C: + bl OS_YieldThread + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start FUN_0209DA9C +FUN_0209DA9C: ; 0x0209DA9C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r5, r1 + mov r6, r2 + bl FUN_0209E0C8 + movs r4, r0 + beq _0209DAC8 + ldrb r0, [r4, #0x8] + cmp r0, #0x2 + beq _0209DAE8 +_0209DAC8: + mov r0, r7 + mov r1, r5 + mov r2, r6 + mov r3, #0x0 + bl FUN_0209DE34 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_0209DAE8: + bl OS_YieldThread + ldrh r2, [r5, #0x4] + ldrh r12, [r5, #0x6] + mov r0, r5 + mov r1, r2, asr #0x8 + orr r1, r1, r2, lsl #0x8 + mov r1, r1, lsl #0x10 + mov r2, r12, asr #0x8 + mov r3, r1, lsr #0x10 + orr r1, r2, r12, lsl #0x8 + mov r2, r3, lsl #0x10 + mov r1, r1, lsl #0x10 + orr r1, r2, r1, lsr #0x10 + add r1, r1, #0x1 + str r1, [r4, #0x24] + ldrh r3, [r5, #0x8] + ldrh lr, [r5, #0xa] + mov r1, r4 + mov r2, r3, asr #0x8 + orr r2, r2, r3, lsl #0x8 + mov r2, r2, lsl #0x10 + mov r3, lr, asr #0x8 + mov r12, r2, lsr #0x10 + orr r2, r3, lr, lsl #0x8 + mov r3, r12, lsl #0x10 + mov r2, r2, lsl #0x10 + orr r2, r3, r2, lsr #0x10 + str r2, [r4, #0x30] + ldrh r3, [r5, #0xe] + mov r2, r3, asr #0x8 + orr r2, r2, r3, lsl #0x8 + strh r2, [r4, #0x2c] + bl FUN_0209E044 + mov r0, r4 + mov r1, #0x0 + bl FUN_0209DF84 + mov r0, #0x4 + strb r0, [r4, #0x8] + ldr r0, [r4, #0x4] + cmp r0, #0x1 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr + mov r0, #0x0 + str r0, [r4, #0x4] + ldr r0, [r4, #0x0] + bl OS_WakeupThreadDirect + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_0209DBB0 +FUN_0209DBB0: ; 0x0209DBB0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r4, r0 + ldrh r12, [r4, #0x10] + ldrh r7, [r4, #0xc] + ldrh r3, [r4, #0x12] + mov r5, r12, asr #0x8 + mov r6, r7, asr #0x8 + orr r5, r5, r12, lsl #0x8 + orr r6, r6, r7, lsl #0x8 + mov r12, r6, lsl #0x10 + ldrh r0, [r4, #0xe] + mov lr, r5, lsl #0x10 + mov r5, r3, asr #0x8 + mov r6, r0, asr #0x8 + mov r7, r12, lsr #0x10 + orr r0, r6, r0, lsl #0x8 + orr r3, r5, r3, lsl #0x8 + mov r12, lr, lsr #0x10 + mov r6, r7, lsl #0x10 + mov r0, r0, lsl #0x10 + mov r5, r12, lsl #0x10 + mov r3, r3, lsl #0x10 + mov r7, r1 + orr r1, r5, r3, lsr #0x10 + orr r0, r6, r0, lsr #0x10 + mov r5, r2 + bl FUN_0209E3DC +_0209DC20: ; 0x0209DC20 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + mov r0, r4 + mov r1, r7 + mov r2, r5 + bl FUN_0209DCB4 +_0209DC40: ; 0x0209DC40 + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr + mov r0, r4 + mov r1, r7 + bl FUN_0209E200 + movs r2, r0 + beq _0209DC7C + mov r0, r4 + mov r1, r7 + bl FUN_0209DD44 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_0209DC7C: + bl OS_YieldThread + mov r0, r4 + mov r1, r7 + bl FUN_0209E200 + movs r2, r0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + mov r0, r4 + mov r1, r7 + bl FUN_0209DD44 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_0209DCB4 +FUN_0209DCB4: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl FUN_0209E0C8 + movs r2, r0 + beq _0209DD38 + ldrb r0, [r2, #0x8] + cmp r0, #0x1 + bne _0209DCEC + mov r0, r6 + mov r1, r5 + bl FUN_0209DD44 + b _0209DD2C +_0209DCEC: + add r0, r0, #0xfd + and r0, r0, #0xff + cmp r0, #0x1 + bhi _0209DD18 + ldr r1, [r2, #0x28] + mov r0, r6 + sub r3, r1, #0x1 + mov r1, r5 + str r3, [r2, #0x28] + bl FUN_0209DD44 + b _0209DD2C +_0209DD18: + mov r0, r6 + mov r1, r5 + mov r2, r4 + mov r3, #0x0 + bl FUN_0209DE34 +_0209DD2C: + mov r0, #0x1 + ldmia sp!, {r4-r6,lr} + bx lr +_0209DD38: + mov r0, #0x0 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_0209DD44 +FUN_0209DD44: ; 0x0209DD44 + stmdb sp!, {r4-r6,lr} + mov r4, r2 + mov r2, #0x3 + mov r6, r0 + mov r5, r1 + strb r2, [r4, #0x8] + bl OS_GetTick + mov r0, r0, lsr #0x10 + orr r0, r0, r1, lsl #0x10 + str r0, [r4, #0x10] + ldrh r2, [r6, #0x10] + ldrh r3, [r6, #0x12] + mov r0, r5 + mov r1, r2, asr #0x8 + orr r1, r1, r2, lsl #0x8 + mov r1, r1, lsl #0x10 + mov r2, r3, asr #0x8 + orr r2, r2, r3, lsl #0x8 + mov r1, r1, lsr #0x10 + mov r3, r1, lsl #0x10 + mov r1, r2, lsl #0x10 + orr r1, r3, r1, lsr #0x10 + str r1, [r4, #0x14] + ldrh r3, [r5, #0x0] + mov r1, r4 + mov r2, r3, asr #0x8 + orr r2, r2, r3, lsl #0x8 + strh r2, [r4, #0x18] + ldrh r3, [r6, #0xc] + ldrh r6, [r6, #0xe] + mov r2, r3, asr #0x8 + orr r2, r2, r3, lsl #0x8 + mov r2, r2, lsl #0x10 + mov r3, r6, asr #0x8 + orr r3, r3, r6, lsl #0x8 + mov r2, r2, lsr #0x10 + mov r6, r2, lsl #0x10 + mov r2, r3, lsl #0x10 + orr r2, r6, r2, lsr #0x10 + str r2, [r4, #0x1c] + ldrh r3, [r5, #0x4] + ldrh r6, [r5, #0x6] + mov r2, r3, asr #0x8 + orr r2, r2, r3, lsl #0x8 + mov r2, r2, lsl #0x10 + mov r3, r6, asr #0x8 + mov r5, r2, lsr #0x10 + orr r2, r3, r6, lsl #0x8 + mov r3, r5, lsl #0x10 + mov r2, r2, lsl #0x10 + orr r2, r3, r2, lsr #0x10 + add r2, r2, #0x1 + str r2, [r4, #0x24] + bl FUN_0209E044 + mov r0, r4 + mov r1, #0x12 + mov r2, #0x0 + bl FUN_0209DF98 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_0209DE34 +FUN_0209DE34: ; 0x0209DE34 + stmdb sp!, {r4-r8,lr} + ldr r4, _0209DF6C ; =0x021C903C + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r0, r4 + mov r1, #0x0 + mov r2, #0x64 + mov r5, r3 + bl MI_CpuFill8 + ldrh r2, [r7, #0x2] + mov r1, r4 + mov r0, r2, asr #0x8 + orr r0, r0, r2, lsl #0x8 + strh r0, [r1, #0xa] + ldrh r2, [r7, #0x0] + mov r0, r2, asr #0x8 + orr r0, r0, r2, lsl #0x8 + strh r0, [r1, #0x18] + ldrh r2, [r8, #0xc] + ldrh r8, [r8, #0xe] + mov r0, r2, asr #0x8 + orr r0, r0, r2, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r2, r8, asr #0x8 + mov r3, r0, lsr #0x10 + orr r0, r2, r8, lsl #0x8 + mov r2, r3, lsl #0x10 + mov r0, r0, lsl #0x10 + orr r0, r2, r0, lsr #0x10 + str r0, [r1, #0x1c] + ldrb r0, [r7, #0xd] + ands r0, r0, #0x10 + beq _0209DF04 + ldrh r2, [r7, #0x8] + ldrh r6, [r7, #0xa] + mov r0, r4 + mov r1, r2, asr #0x8 + orr r1, r1, r2, lsl #0x8 + mov r1, r1, lsl #0x10 + mov r2, r6, asr #0x8 + mov r3, r1, lsr #0x10 + orr r1, r2, r6, lsl #0x8 + mov r2, r3, lsl #0x10 + mov r1, r1, lsl #0x10 + orr r3, r2, r1, lsr #0x10 + mov r2, r5 + mov r1, #0x4 + str r3, [r4, #0x28] + bl FUN_0209DF98 + ldmia sp!, {r4-r8,lr} + bx lr +_0209DF04: + mov r0, #0x0 + str r0, [r4, #0x28] + ldrh r1, [r7, #0x4] + ldrh r3, [r7, #0x6] + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r1, r3, asr #0x8 + mov r2, r0, lsr #0x10 + orr r0, r1, r3, lsl #0x8 + mov r1, r2, lsl #0x10 + mov r0, r0, lsl #0x10 + orr r0, r1, r0, lsr #0x10 + add r0, r6, r0 + str r0, [r4, #0x24] + ldrb r0, [r7, #0xd] + mov r2, r5 + mov r1, #0x14 + ands r0, r0, #0x3 + ldrne r0, [r4, #0x24] + addne r0, r0, #0x1 + strne r0, [r4, #0x24] + mov r0, r4 + bl FUN_0209DF98 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_0209DF6C: .word 0x021C903C + + arm_func_start FUN_0209DF70 +FUN_0209DF70: + ldr ip, _0209DF80 ; =FUN_0209DF98 + mov r2, r1 + mov r1, #0x11 + bx r12 + .balign 4 +_0209DF80: .word FUN_0209DF98 + + arm_func_start FUN_0209DF84 +FUN_0209DF84: ; 0x0209DF84 + ldr ip, _0209DF94 ; =FUN_0209DF98 + mov r2, r1 + mov r1, #0x10 + bx r12 + .balign 4 +_0209DF94: .word FUN_0209DF98 + + arm_func_start FUN_0209DF98 +FUN_0209DF98: ; 0x0209DF98 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r6, r0 + ldr r0, [r6, #0x1c] + mov r5, r1 + mov r4, r2 + bl FUN_0209E014 +_0209DFB4: ; 0x0209DFB4 + cmp r0, #0x0 + bne _0209DFD0 + ldr r0, _0209E00C ; =0x021D3498 + ldr r1, _0209E010 ; =0x021C9160 + ldr r0, [r0, #0x4] + cmp r0, r1 + beq _0209DFF4 +_0209DFD0: + mov r0, #0x0 + mov r1, r0 + mov r2, r6 + mov r3, r5 + str r4, [sp, #0x0] + bl FUN_0209E878 + add sp, sp, #0x8 + ldmia sp!, {r4-r6,lr} + bx lr +_0209DFF4: + ldr r0, [r6, #0x1c] + bl FUN_0209FAB0 + bl FUN_0209F338 + add sp, sp, #0x8 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_0209E00C: .word 0x021D3498 +_0209E010: .word 0x021C9160 + + arm_func_start FUN_0209E014 +FUN_0209E014: + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_0209FAB0 +_0209E020: ; 0x0209E020 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x1 + ldmeqia sp!, {lr} + bxeq lr + bl FUN_0209F438 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_0209E044 +FUN_0209E044: ; 0x0209E044 + mov r2, #0x218 + strh r2, [r1, #0x2e] + ldrb r2, [r0, #0xc] + add r3, r0, #0x14 + and r2, r2, #0xf0 + mov r0, r2, asr #0x1 + add r0, r2, r0, lsr #0x1e + mov r0, r0, asr #0x2 + subs r0, r0, #0x14 + sub r12, r0, #0x1 + bxeq lr +_0209E070: + ldrb r0, [r3], #0x1 + cmp r0, #0x0 + bxeq lr + cmp r0, #0x1 + beq _0209E0B8 + cmp r0, #0x2 + bne _0209E0A8 + ldrb r2, [r3, #0x1] + ldrb r0, [r3, #0x2] + add r3, r3, #0x3 + sub r12, r12, #0x3 + orr r0, r0, r2, lsl #0x8 + strh r0, [r1, #0x2e] + b _0209E0B8 +_0209E0A8: + ldrb r0, [r3, #0x0] + sub r0, r0, #0x1 + sub r12, r12, r0 + add r3, r3, r0 +_0209E0B8: + cmp r12, #0x0 + sub r12, r12, #0x1 + bne _0209E070 + bx lr + + arm_func_start FUN_0209E0C8 +FUN_0209E0C8: ; 0x0209E0C8 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r2, _0209E140 ; =0x021D3498 + mov r7, r0 + ldr r4, [r2, #0x8] + mov r6, r1 + cmp r4, #0x0 + beq _0209E130 +_0209E0E8: + ldr r5, [r4, #0xa4] + cmp r5, #0x0 + beq _0209E124 + ldr r0, [r5, #0x0] + cmp r0, #0x0 + beq _0209E124 + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl FUN_0209E144 +_0209E110: ; 0x0209E110 + cmp r0, #0x0 + addne sp, sp, #0x4 + movne r0, r5 + ldmneia sp!, {r4-r7,lr} + bxne lr +_0209E124: + ldr r4, [r4, #0x68] + cmp r4, #0x0 + bne _0209E0E8 +_0209E130: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_0209E140: .word 0x021D3498 + + arm_func_start FUN_0209E144 +FUN_0209E144: + stmdb sp!, {r4-r6,lr} + ldrb r4, [r2, #0x8] + mov r12, #0x0 + mov r3, r12 + mov r6, r12 + mov r5, r12 + cmp r4, #0xa + beq _0209E16C + cmp r4, #0xb + movne r5, #0x1 +_0209E16C: + cmp r5, #0x0 + beq _0209E190 + ldrh lr, [r1, #0x2] + ldrh r5, [r2, #0xa] + mov r4, lr, asr #0x8 + orr r4, r4, lr, lsl #0x8 + mov lr, r4, lsl #0x10 + cmp r5, lr, lsr #0x10 + moveq r6, #0x1 +_0209E190: + cmp r6, #0x0 + beq _0209E1B4 + ldrh r4, [r1, #0x0] + ldrh lr, [r2, #0x18] + mov r1, r4, asr #0x8 + orr r1, r1, r4, lsl #0x8 + mov r1, r1, lsl #0x10 + cmp lr, r1, lsr #0x10 + moveq r3, #0x1 +_0209E1B4: + cmp r3, #0x0 + beq _0209E1F4 + ldrh r1, [r0, #0xc] + ldrh lr, [r0, #0xe] + ldr r3, [r2, #0x1c] + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r1, lr, asr #0x8 + mov r2, r0, lsr #0x10 + orr r0, r1, lr, lsl #0x8 + mov r1, r2, lsl #0x10 + mov r0, r0, lsl #0x10 + orr r0, r1, r0, lsr #0x10 + cmp r3, r0 + moveq r12, #0x1 +_0209E1F4: + mov r0, r12 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_0209E200 +FUN_0209E200: ; 0x0209E200 + stmdb sp!, {r4-r6,lr} + ldr r2, _0209E2DC ; =0x021D3498 + ldr r3, [r2, #0x8] + cmp r3, #0x0 + beq _0209E2D0 +_0209E214: + ldr r12, [r3, #0xa4] + cmp r12, #0x0 + beq _0209E2C4 + ldr r2, [r12, #0x0] + cmp r2, #0x0 + beq _0209E2C4 + ldrb r2, [r12, #0x8] + cmp r2, #0x1 + bne _0209E2C4 + ldrh r5, [r1, #0x2] + ldrh r4, [r12, #0xa] + mov r2, r5, asr #0x8 + orr r2, r2, r5, lsl #0x8 + mov r2, r2, lsl #0x10 + cmp r4, r2, lsr #0x10 + bne _0209E2C4 + ldrh r5, [r12, #0x18] + cmp r5, #0x0 + beq _0209E278 + ldrh r4, [r1, #0x0] + mov r2, r4, asr #0x8 + orr r2, r2, r4, lsl #0x8 + mov r2, r2, lsl #0x10 + cmp r5, r2, lsr #0x10 + bne _0209E2C4 +_0209E278: + ldr r2, [r12, #0x1c] + cmp r2, #0x0 + beq _0209E2B8 + ldrh r5, [r0, #0xc] + ldrh r6, [r0, #0xe] + mov r4, r5, asr #0x8 + orr r4, r4, r5, lsl #0x8 + mov lr, r4, lsl #0x10 + mov r4, r6, asr #0x8 + mov lr, lr, lsr #0x10 + orr r4, r4, r6, lsl #0x8 + mov r5, lr, lsl #0x10 + mov lr, r4, lsl #0x10 + orr r4, r5, lr, lsr #0x10 + cmp r2, r4 + bne _0209E2C4 +_0209E2B8: + mov r0, r12 + ldmia sp!, {r4-r6,lr} + bx lr +_0209E2C4: + ldr r3, [r3, #0x68] + cmp r3, #0x0 + bne _0209E214 +_0209E2D0: + mov r0, #0x0 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_0209E2DC: .word 0x021D3498 + + arm_func_start FUN_0209E2E0 +FUN_0209E2E0: ; 0x0209E2E0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r1 + mov r4, r2 + mov r6, r0 + mov r0, r5 + mov r1, r4 + bl FUN_0209FB84 + ldr r1, _0209E3D8 ; =0x0000FFFF + cmp r0, r1 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr + ldrh r12, [r6, #0x10] + ldrh r7, [r6, #0xc] + ldrh r0, [r6, #0xe] + ldrh r1, [r6, #0x12] + mov r3, r7, asr #0x8 + mov lr, r0, asr #0x8 + orr r0, lr, r0, lsl #0x8 + mov r2, r12, asr #0x8 + orr r7, r3, r7, lsl #0x8 + orr r3, r2, r12, lsl #0x8 + mov r2, r7, lsl #0x10 + mov r12, r1, asr #0x8 + orr r1, r12, r1, lsl #0x8 + mov r3, r3, lsl #0x10 + mov r7, r2, lsr #0x10 + mov r2, r3, lsr #0x10 + mov r3, r7, lsl #0x10 + mov r0, r0, lsl #0x10 + mov r2, r2, lsl #0x10 + mov r1, r1, lsl #0x10 + orr r0, r3, r0, lsr #0x10 + orr r1, r2, r1, lsr #0x10 + bl FUN_0209E3DC +_0209E370: ; 0x0209E370 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + ldrb r0, [r5, #0x0] + cmp r0, #0x0 + beq _0209E3A0 + cmp r0, #0x8 + beq _0209E3BC + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_0209E3A0: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_0209E40C + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_0209E3BC: + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_0209E524 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_0209E3D8: .word 0x0000FFFF + + arm_func_start FUN_0209E3DC +FUN_0209E3DC: + cmp r0, #0x0 + beq _0209E404 + mvn r2, #0x0 + cmp r0, r2 + beq _0209E404 + cmp r1, #0x0 + beq _0209E404 + cmp r1, r2 + movne r0, #0x1 + bxne lr +_0209E404: + mov r0, #0x0 + bx lr + + arm_func_start FUN_0209E40C +FUN_0209E40C: ; 0x0209E40C + stmdb sp!, {r4-r8,lr} + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl OS_DisableInterrupts + ldr r1, _0209E520 ; =0x021D3498 + mov r8, r0 + ldr r2, [r1, #0x8] + cmp r2, #0x0 + beq _0209E510 +_0209E434: + ldr r4, [r2, #0xa4] + cmp r4, #0x0 + beq _0209E504 + ldr r3, [r4, #0x0] + cmp r3, #0x0 + beq _0209E504 + ldrb r0, [r4, #0x8] + cmp r0, #0xb + bne _0209E504 + ldrh r1, [r6, #0x4] + mov r0, r3, lsl #0x10 + mov r0, r0, lsr #0x10 + cmp r0, r1 + bne _0209E504 + ldrh r1, [r4, #0xa] + ldrh r0, [r6, #0x6] + cmp r1, r0 + bne _0209E504 + ldr r0, [r4, #0x44] + cmp r0, #0x0 + bne _0209E504 + ldrh r12, [r7, #0xc] + ldrh r1, [r7, #0xe] + ldr r0, [r4, #0x1c] + mov r3, r12, asr #0x8 + orr r3, r3, r12, lsl #0x8 + mov r3, r3, lsl #0x10 + mov r12, r1, asr #0x8 + mov r3, r3, lsr #0x10 + orr r1, r12, r1, lsl #0x8 + mov r3, r3, lsl #0x10 + mov r1, r1, lsl #0x10 + orr r1, r3, r1, lsr #0x10 + cmp r0, r1 + bne _0209E504 + ldr r1, [r4, #0x3c] + sub r0, r5, #0x8 + cmp r0, r1 + strhi r1, [r4, #0x44] + strls r0, [r4, #0x44] + ldr r1, [r4, #0x40] + ldr r2, [r4, #0x44] + add r0, r6, #0x8 + bl MI_CpuCopy8 + ldr r0, [r4, #0x4] + cmp r0, #0x3 + bne _0209E510 + mov r0, #0x0 + str r0, [r4, #0x4] + ldr r0, [r4, #0x0] + bl OS_WakeupThreadDirect + b _0209E510 +_0209E504: + ldr r2, [r2, #0x68] + cmp r2, #0x0 + bne _0209E434 +_0209E510: + mov r0, r8 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_0209E520: .word 0x021D3498 + + arm_func_start FUN_0209E524 +FUN_0209E524: ; 0x0209E524 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0xc + mov r6, r0 + ldrh r3, [r6, #0xc] + ldrh r4, [r6, #0xe] + mov r5, r1 + mov r0, r3, asr #0x8 + orr r0, r0, r3, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r1, r4, asr #0x8 + mov r3, r0, lsr #0x10 + orr r0, r1, r4, lsl #0x8 + mov r1, r3, lsl #0x10 + mov r0, r0, lsl #0x10 + orr r0, r1, r0, lsr #0x10 + mov r4, r2 + bl FUN_0209FAB0 + movs r7, r0 + addeq sp, sp, #0xc + ldmeqia sp!, {r4-r7,lr} + bxeq lr + bl FUN_0209F438 +_0209E57C: ; 0x0209E57C + cmp r0, #0x0 + bne _0209E598 + mov r0, r7 + bl FUN_0209F338 + add sp, sp, #0xc + ldmia sp!, {r4-r7,lr} + bx lr +_0209E598: + mov r2, #0x0 + strb r2, [r5, #0x0] + mov r0, r5 + mov r1, r4 + strh r2, [r5, #0x2] + bl FUN_0209FB84 + mov r1, r0, asr #0x8 + orr r0, r1, r0, lsl #0x8 + strh r0, [r5, #0x2] + ldrh r1, [r6, #0xc] + ldrh r6, [r6, #0xe] + mov r2, #0x0 + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r1, r6, asr #0x8 + mov r3, r0, lsr #0x10 + orr r0, r1, r6, lsl #0x8 + mov r1, r3, lsl #0x10 + mov r0, r0, lsl #0x10 + orr r6, r1, r0, lsr #0x10 + mov r0, r5 + mov r1, r4 + mov r3, r2 + str r6, [sp, #0x0] + mov r4, #0x1 + str r4, [sp, #0x4] + bl FUN_0209ECFC + add sp, sp, #0xc + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_0209E614 +FUN_0209E614: ; 0x0209E614 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + cmp r1, #0x1c + mov r6, r0 + addcc sp, sp, #0x4 + ldmccia sp!, {r4-r7,lr} + bxcc lr + ldr r1, _0209E7BC ; =0x021C8F14 + add r0, r6, #0x8 + bl FUN_0209F9A0 +_0209E63C: ; 0x0209E63C + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + ldr r0, _0209E7C0 ; =0x021C8F04 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + ldrh r0, [r6, #0x0] + cmp r0, #0x100 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr + ldrh r0, [r6, #0x2] + cmp r0, #0x8 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr + ldrh r1, [r6, #0x4] + ldr r0, _0209E7C4 ; =0x00000406 + cmp r1, r0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr + ldrh r1, [r6, #0x6] + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r4, r0, lsr #0x10 + cmp r4, #0x1 + beq _0209E6D0 + cmp r4, #0x2 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr +_0209E6D0: + ldrh r1, [r6, #0xe] + ldrh r5, [r6, #0x10] + ldr r2, _0209E7C0 ; =0x021C8F04 + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r3, r0, lsr #0x10 + mov r1, r5, asr #0x8 + orr r0, r1, r5, lsl #0x8 + mov r1, r0, lsl #0x10 + mov r3, r3, lsl #0x10 + orr r1, r3, r1, lsr #0x10 + ldr r0, [r2, #0x0] + ldrh r3, [r6, #0x18] + ldrh lr, [r6, #0x1a] + cmp r1, r0 + mov r2, r3, asr #0x8 + orr r2, r2, r3, lsl #0x8 + mov r2, r2, lsl #0x10 + moveq r5, #0x1 + mov r3, lr, asr #0x8 + mov r12, r2, lsr #0x10 + orr r2, r3, lr, lsl #0x8 + mov r3, r12, lsl #0x10 + mov r2, r2, lsl #0x10 + orr r2, r3, r2, lsr #0x10 + movne r5, #0x0 + cmp r0, r2 + moveq r7, #0x1 + movne r7, #0x0 + cmp r5, #0x0 + bne _0209E75C + mov r2, r7 + add r0, r6, #0x8 + bl FUN_0209F12C +_0209E75C: + cmp r4, #0x1 + bne _0209E780 + cmp r7, #0x0 + beq _0209E780 + mov r0, r6 + bl FUN_0209E7CC + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_0209E780: + cmp r4, #0x2 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr + cmp r7, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + cmp r5, #0x0 + ldrne r0, _0209E7C8 ; =0x021C8EAC + movne r1, #0x1 + strneb r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_0209E7BC: .word 0x021C8F14 +_0209E7C0: .word 0x021C8F04 +_0209E7C4: .word 0x00000406 +_0209E7C8: .word 0x021C8EAC + + arm_func_start FUN_0209E7CC +FUN_0209E7CC: ; 0x0209E7CC + stmdb sp!, {r4,lr} + mov r4, r0 + mov r3, #0x200 + add r0, r4, #0x8 + add r1, r4, #0x12 + mov r2, #0xa + strh r3, [r4, #0x6] + bl MI_CpuCopy8 + ldr r0, _0209E870 ; =0x021C8F14 + add r1, r4, #0x8 + mov r2, #0x6 + bl MI_CpuCopy8 + ldr r3, _0209E874 ; =0x021C8F04 + add r0, r4, #0x12 + ldr r2, [r3, #0x0] + sub r1, r4, #0xe + mov r2, r2, lsr #0x10 + mov r2, r2, lsl #0x10 + mov r12, r2, lsr #0x10 + mov r2, r12, asr #0x8 + orr r2, r2, r12, lsl #0x8 + strh r2, [r4, #0xe] + ldr r3, [r3, #0x0] + mov r2, #0x6 + mov r3, r3, lsl #0x10 + mov r12, r3, lsr #0x10 + mov r3, r12, asr #0x8 + orr r3, r3, r12, lsl #0x8 + strh r3, [r4, #0x10] + bl MI_CpuCopy8 + ldr r0, _0209E870 ; =0x021C8F14 + sub r1, r4, #0x8 + mov r2, #0x6 + bl MI_CpuCopy8 + sub r0, r4, #0xe + mov r1, #0x2a + mov r2, #0x0 + mov r3, r2 + bl FUN_0209F930 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_0209E870: .word 0x021C8F14 +_0209E874: .word 0x021C8F04 + + arm_func_start FUN_0209E878 +FUN_0209E878: ; 0x0209E878 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0xc + mov r7, r2 + ldrb r2, [r7, #0x8] + mov r9, r0 + mov r8, r1 + cmp r2, #0x0 + mov r6, r3 + addeq sp, sp, #0xc + ldmeqia sp!, {r4-r9,lr} + bxeq lr + ldr r0, _0209EAEC ; =0x021D3498 + ldr r3, _0209EAF0 ; =0x021C8F04 + ldr r1, _0209EAF4 ; =0x021C9160 + ldr r0, [r0, #0x4] + ldr r12, [r3, #0x0] + cmp r0, r1 + ldreq r4, _0209EAF8 ; =0x021C8F5E + ldrne r0, [r7, #0x4c] + addne r4, r0, #0x22 + ands r0, r6, #0x2 + movne r5, #0x18 + moveq r5, #0x14 + add r1, r5, r8 + mov r2, r1, lsl #0x10 + mov r1, r12, lsr #0x10 + mov r1, r1, lsl #0x10 + mov r12, r1, lsr #0x10 + mov r1, r12, asr #0x8 + orr r1, r1, r12, lsl #0x8 + strh r1, [r4, #-0xc] + ldr r1, [r3, #0x0] + mov r12, r2, lsr #0x10 + mov r1, r1, lsl #0x10 + mov r2, r1, lsr #0x10 + mov r1, r2, asr #0x8 + orr r1, r1, r2, lsl #0x8 + strh r1, [r4, #-0xa] + ldr r1, [r7, #0x1c] + mov r3, r12, asr #0x8 + mov r1, r1, lsr #0x10 + mov r1, r1, lsl #0x10 + mov r2, r1, lsr #0x10 + mov r1, r2, asr #0x8 + orr r1, r1, r2, lsl #0x8 + strh r1, [r4, #-0x8] + ldr r1, [r7, #0x1c] + mov r2, r5, lsr #0x2 + mov r1, r1, lsl #0x10 + mov lr, r1, lsr #0x10 + mov r1, lr, asr #0x8 + orr r1, r1, lr, lsl #0x8 + strh r1, [r4, #-0x6] + mov r1, #0x600 + strh r1, [r4, #-0x4] + orr r1, r3, r12, lsl #0x8 + strh r1, [r4, #-0x2] + ldrh r12, [r7, #0xa] + cmp r0, #0x0 + mov r2, r2, lsl #0x4 + mov r3, r12, asr #0x8 + orr r3, r3, r12, lsl #0x8 + strh r3, [r4, #0x0] + ldrh r3, [r7, #0x18] + mov r1, #0x0 + mov r0, r3, asr #0x8 + orr r0, r0, r3, lsl #0x8 + strh r0, [r4, #0x2] + ldr r0, [r7, #0x28] + mov r0, r0, lsr #0x10 + mov r0, r0, lsl #0x10 + mov r3, r0, lsr #0x10 + mov r0, r3, asr #0x8 + orr r0, r0, r3, lsl #0x8 + strh r0, [r4, #0x4] + ldr r0, [r7, #0x28] + mov r0, r0, lsl #0x10 + mov r3, r0, lsr #0x10 + mov r0, r3, asr #0x8 + orr r0, r0, r3, lsl #0x8 + strh r0, [r4, #0x6] + ldr r0, [r7, #0x24] + mov r0, r0, lsr #0x10 + mov r0, r0, lsl #0x10 + mov r3, r0, lsr #0x10 + mov r0, r3, asr #0x8 + orr r0, r0, r3, lsl #0x8 + strh r0, [r4, #0x8] + ldr r0, [r7, #0x24] + mov r0, r0, lsl #0x10 + mov r3, r0, lsr #0x10 + mov r0, r3, asr #0x8 + orr r0, r0, r3, lsl #0x8 + strh r0, [r4, #0xa] + strb r2, [r4, #0xc] + strb r6, [r4, #0xd] + ldr r2, [r7, #0x3c] + ldr r0, [r7, #0x44] + sub r0, r2, r0 + mov r0, r0, lsl #0x10 + mov r2, r0, lsr #0x10 + mov r0, r2, asr #0x8 + orr r0, r0, r2, lsl #0x8 + strh r0, [r4, #0xe] + strh r1, [r4, #0x10] + strh r1, [r4, #0x12] + beq _0209EA64 + ldr r1, _0209EAFC ; =0x021C8EB0 + ldrh r0, [r1, #0x0] + add r0, r0, #0x2040000 + mov r0, r0, lsr #0x10 + mov r0, r0, lsl #0x10 + mov r2, r0, lsr #0x10 + mov r0, r2, asr #0x8 + orr r0, r0, r2, lsl #0x8 + strh r0, [r4, #0x14] + ldrh r0, [r1, #0x0] + add r0, r0, #0x2040000 + mov r0, r0, lsl #0x10 + mov r1, r0, lsr #0x10 + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + strh r0, [r4, #0x16] +_0209EA64: + sub r0, r4, #0xc + add r1, r5, #0xc + mov r2, #0x0 + bl FUN_0209FBC8 + mov r2, r0 + mov r0, r9 + mov r1, r8 + bl FUN_0209FBC8 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bl FUN_0209FBAC + mov r3, r0, asr #0x8 + orr r0, r3, r0, lsl #0x8 + strh r0, [r4, #0x10] + mov r0, r4 + ldr r4, [r7, #0x1c] + mov r3, #0x6 + str r4, [sp, #0x0] + str r3, [sp, #0x4] + mov r1, r5 + mov r2, r9 + mov r3, r8 + bl FUN_0209ECFC + ands r0, r6, #0x3 + ldr r0, [r7, #0x28] + add r1, r7, #0x28 + add r0, r0, r8 + str r0, [r7, #0x28] + ldrne r0, [r1, #0x0] + addne r0, r0, #0x1 + strne r0, [r1, #0x0] + add sp, sp, #0xc + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_0209EAEC: .word 0x021D3498 +_0209EAF0: .word 0x021C8F04 +_0209EAF4: .word 0x021C9160 +_0209EAF8: .word 0x021C8F5E +_0209EAFC: .word 0x021C8EB0 + + arm_func_start FUN_0209EB00 +FUN_0209EB00: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0xc + ldr r7, _0209EC3C ; =0x021C8F04 + mov r5, r2 + ldr r2, [r7, #0x0] + mov r6, r1 + mov r1, r2, lsr #0x10 + mov r1, r1, lsl #0x10 + mov r2, r1, lsr #0x10 + ldr r3, [r5, #0x4c] + mov r1, r2, asr #0x8 + add r4, r3, #0x22 + orr r1, r1, r2, lsl #0x8 + strh r1, [r4, #-0xc] + ldr r1, [r7, #0x0] + add r2, r6, #0x8 + mov r1, r1, lsl #0x10 + mov r7, r1, lsr #0x10 + mov r1, r7, asr #0x8 + orr r1, r1, r7, lsl #0x8 + strh r1, [r4, #-0xa] + ldr r1, [r5, #0x1c] + mov r2, r2, lsl #0x10 + mov r1, r1, lsr #0x10 + mov r1, r1, lsl #0x10 + mov r7, r1, lsr #0x10 + mov r1, r7, asr #0x8 + orr r1, r1, r7, lsl #0x8 + strh r1, [r4, #-0x8] + ldr r1, [r5, #0x1c] + mov r2, r2, lsr #0x10 + mov r1, r1, lsl #0x10 + mov r7, r1, lsr #0x10 + mov r1, r7, asr #0x8 + orr r7, r1, r7, lsl #0x8 + mov r1, r2, asr #0x8 + strh r7, [r4, #-0x6] + mov r7, #0x1100 + strh r7, [r4, #-0x4] + orr r1, r1, r2, lsl #0x8 + strh r1, [r4, #0x4] + ldrh r1, [r4, #0x4] + mov r7, r0 + sub r0, r4, #0xc + strh r1, [r4, #-0x2] + ldrh lr, [r5, #0x18] + mov r2, #0x0 + mov r1, #0x14 + mov r12, lr, asr #0x8 + orr r12, r12, lr, lsl #0x8 + strh r12, [r4, #0x2] + ldrh lr, [r5, #0xa] + mov r12, lr, asr #0x8 + orr r12, r12, lr, lsl #0x8 + strh r12, [r3, #0x22] + strh r2, [r4, #0x6] + bl FUN_0209FBC8 + mov r2, r0 + mov r0, r7 + mov r1, r6 + bl FUN_0209FBC8 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bl FUN_0209FBAC + mov r2, r7 + mov r3, r6 + mov r1, r0, asr #0x8 + orr r0, r1, r0, lsl #0x8 + strh r0, [r4, #0x6] + ldr r1, [r5, #0x1c] + mov r0, r4 + str r1, [sp, #0x0] + mov r1, #0x11 + str r1, [sp, #0x4] + mov r1, #0x8 + bl FUN_0209ECFC + add sp, sp, #0xc + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_0209EC3C: .word 0x021C8F04 + + arm_func_start FUN_0209EC40 +FUN_0209EC40: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0xc + mov r5, r2 + ldr r3, [r5, #0x4c] + mov r6, r1 + mov r1, #0x8 + ldr r2, _0209ECF4 ; =0x021D3498 + strh r1, [r3, #0x22] + ldr r2, [r2, #0x4] + add r4, r3, #0x22 + strh r2, [r4, #0x4] + mov r2, #0x0 + ldr r3, _0209ECF8 ; =0x021C8EB4 + strh r2, [r4, #0x2] + ldrh lr, [r3, #0x0] + mov r7, r0 + mov r0, r4 + strh lr, [r5, #0xa] + ldrh r12, [r3, #0x0] + add r12, r12, #0x1 + strh r12, [r3, #0x0] + strh lr, [r4, #0x6] + bl FUN_0209FBC8 + mov r2, r0 + mov r0, r7 + mov r1, r6 + bl FUN_0209FBC8 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bl FUN_0209FBAC + mov r2, r7 + mov r3, r6 + mov r1, r0, asr #0x8 + orr r0, r1, r0, lsl #0x8 + strh r0, [r4, #0x2] + ldr r1, [r5, #0x1c] + mov r0, r4 + str r1, [sp, #0x0] + mov r1, #0x1 + str r1, [sp, #0x4] + mov r1, #0x8 + bl FUN_0209ECFC + add sp, sp, #0xc + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_0209ECF4: .word 0x021D3498 +_0209ECF8: .word 0x021C8EB4 + + arm_func_start FUN_0209ECFC +FUN_0209ECFC: ; 0x0209ECFC + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r10, r0 + mov r0, #0x45 + strb r0, [r10, #-0x14] + mov r5, #0x0 + ldr r0, _0209EF0C ; =0x021C8EB8 + strb r5, [r10, #-0x13] + ldrh r7, [r0, #0x0] + ldr r6, [sp, #0x30] + ldrb r4, [sp, #0x34] + add r7, r7, #0x1 + strh r7, [r0, #0x0] + ldrh r9, [r0, #0x0] + mov r0, r6, lsr #0x10 + mov r7, #0x80 + mov r8, r9, asr #0x8 + orr r8, r8, r9, lsl #0x8 + strh r8, [r10, #-0x10] + strb r7, [r10, #-0xc] + ldr r7, _0209EF10 ; =0x021C8F04 + strb r4, [r10, #-0xb] + ldr r8, [r7, #0x0] + mov r4, r0, lsl #0x10 + mov r0, r8, lsr #0x10 + mov r0, r0, lsl #0x10 + mov r8, r0, lsr #0x10 + mov r0, r8, asr #0x8 + orr r0, r0, r8, lsl #0x8 + strh r0, [r10, #-0x8] + ldr r0, [r7, #0x0] + mov r8, r4, lsr #0x10 + mov r0, r0, lsl #0x10 + mov r7, r0, lsr #0x10 + mov r4, r7, asr #0x8 + mov r0, r6, lsl #0x10 + orr r9, r4, r7, lsl #0x8 + mov r7, r8, asr #0x8 + mov r4, r0, lsr #0x10 + mov r0, r4, asr #0x8 + strh r9, [r10, #-0x6] + orr r7, r7, r8, lsl #0x8 + ldr fp, _0209EF14 ; =0x000005C8 + mov r9, r1 + strh r7, [r10, #-0x4] + orr r0, r0, r4, lsl #0x8 + mov r8, r2 + mov r7, r3 + strh r0, [r10, #-0x2] + cmp r9, r11 + bls _0209EE74 + mov r4, r10 + cmp r9, r11 + bls _0209EE14 + str r5, [sp, #0x8] +_0209EDD8: + ldr r1, [sp, #0x8] + mov r0, r10 + mov r2, r4 + mov r3, r11 + str r6, [sp, #0x0] + orr r12, r5, #0x2000 + str r12, [sp, #0x4] + bl FUN_0209EF18 + add r0, r5, #0xb9 + sub r9, r9, r11 + mov r0, r0, lsl #0x10 + cmp r9, r11 + add r4, r4, r11 + mov r5, r0, lsr #0x10 + bhi _0209EDD8 +_0209EE14: + cmp r9, #0x0 + beq _0209EE74 + cmp r7, #0x0 + beq _0209EE48 + mov r0, r10 + mov r2, r4 + mov r3, r9 + str r6, [sp, #0x0] + orr r4, r5, #0x2000 + mov r1, #0x0 + str r4, [sp, #0x4] + bl FUN_0209EF18 + b _0209EE64 +_0209EE48: + str r6, [sp, #0x0] + mov r0, r10 + mov r2, r4 + mov r3, r9 + mov r1, #0x0 + str r5, [sp, #0x4] + bl FUN_0209EF18 +_0209EE64: + add r0, r5, r9, lsr #0x3 + mov r0, r0, lsl #0x10 + mov r5, r0, lsr #0x10 + mov r9, #0x0 +_0209EE74: + ldr r0, _0209EF14 ; =0x000005C8 + add r1, r9, r7 + cmp r1, r0 + bls _0209EED4 + mov r11, #0x0 +_0209EE88: + ldr r0, _0209EF14 ; =0x000005C8 + mov r1, r9 + sub r4, r0, r9 + mov r0, r10 + mov r2, r8 + mov r3, r4 + str r6, [sp, #0x0] + orr r9, r5, #0x2000 + str r9, [sp, #0x4] + bl FUN_0209EF18 + add r0, r5, #0xb9 + mov r1, r0, lsl #0x10 + ldr r0, _0209EF14 ; =0x000005C8 + sub r7, r7, r4 + mov r9, r11 + cmp r7, r0 + add r8, r8, r4 + mov r5, r1, lsr #0x10 + bhi _0209EE88 +_0209EED4: + adds r0, r9, r7 + addeq sp, sp, #0xc + ldmeqia sp!, {r4-r11,lr} + bxeq lr + str r6, [sp, #0x0] + mov r0, r10 + mov r1, r9 + mov r2, r8 + mov r3, r7 + str r5, [sp, #0x4] + bl FUN_0209EF18 + add sp, sp, #0xc + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_0209EF0C: .word 0x021C8EB8 +_0209EF10: .word 0x021C8F04 +_0209EF14: .word 0x000005C8 + + arm_func_start FUN_0209EF18 +FUN_0209EF18: ; 0x0209EF18 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + mov r7, r1 + mov r5, r3 + add r1, r7, #0x14 + add r1, r1, r5 + ldr r3, [sp, #0x24] + mov r1, r1, lsl #0x10 + mov r4, r1, lsr #0x10 + mov r1, r3, lsl #0x10 + mov r3, r4, asr #0x8 + mov r1, r1, lsr #0x10 + mov r8, r0 + orr r3, r3, r4, lsl #0x8 + mov r0, r1, asr #0x8 + strh r3, [r8, #-0x12] + orr r0, r0, r1, lsl #0x8 + strh r0, [r8, #-0xe] + mov r3, #0x0 + sub r0, r8, #0x14 + mov r1, #0x14 + mov r6, r2 + strh r3, [r8, #-0xa] + ldr r4, [sp, #0x20] + bl FUN_0209FB84 + mov r2, r0, asr #0x8 + ldr r1, _0209F040 ; =0x7F000001 + orr r0, r2, r0, lsl #0x8 + strh r0, [r8, #-0xa] + cmp r4, r1 + beq _0209EFC4 + ldr r0, _0209F044 ; =0x021C8F04 + ldr r0, [r0, #0x0] + cmp r4, r0 + beq _0209EFC4 + mov r2, r6 + mov r3, r5 + str r4, [sp, #0x0] + mov r12, #0x800 + sub r0, r8, #0x14 + add r1, r7, #0x14 + str r12, [sp, #0x4] + bl FUN_0209F050 +_0209EFC4: + ldr r0, _0209F040 ; =0x7F000001 + cmp r4, r0 + beq _0209EFF8 + ldr r0, _0209F044 ; =0x021C8F04 + ldr r0, [r0, #0x0] + cmp r4, r0 + beq _0209EFF8 + mov r0, r4 + bl FUN_0209FA54 +_0209EFE8: ; 0x0209EFE8 + cmp r0, #0x0 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4-r8,lr} + bxeq lr +_0209EFF8: + ldr r0, _0209F048 ; =0x02106230 + sub r1, r8, #0x1c + mov r2, #0x8 + bl MI_CpuCopy8 + bl OS_DisableInterrupts + mov r4, r0 + ldr r0, _0209F04C ; =0x021C8F14 + str r6, [sp, #0x0] + mov r1, r0 + str r5, [sp, #0x4] + sub r2, r8, #0x1c + add r3, r7, #0x1c + bl FUN_0209F6C0 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x8 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_0209F040: .word 0x7F000001 +_0209F044: .word 0x021C8F04 +_0209F048: .word 0x02106230 +_0209F04C: .word 0x021C8F14 + + arm_func_start FUN_0209F050 +FUN_0209F050: ; 0x0209F050 + stmdb sp!, {r4-r8,lr} + ldrh r5, [sp, #0x1c] + ldr r4, [sp, #0x18] + mov r8, r0 + mov r0, r5, asr #0x8 + orr r12, r0, r5, lsl #0x8 + mov r0, r4 + mov r7, r1 + mov r6, r2 + mov r5, r3 + strh r12, [r8, #-0x2] + bl FUN_0209FA54 +_0209F080: ; 0x0209F080 + cmp r0, #0x0 + bne _0209F0CC + mov r0, r4 + bl FUN_0209FAB0 + movs r4, r0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + bl FUN_0209F438 +_0209F0A0: ; 0x0209F0A0 + cmp r0, #0x0 + bne _0209F0B0 + mov r0, r4 + bl FUN_0209F2AC +_0209F0B0: + cmp r0, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + sub r1, r8, #0xe + mov r2, #0x6 + bl MI_CpuCopy8 + b _0209F0FC +_0209F0CC: + mov r0, #0x1 + strb r0, [r8, #-0xe] + mov r1, #0x0 + mov r0, r4, lsr #0x10 + strb r1, [r8, #-0xd] + mov r1, #0x5e + strb r1, [r8, #-0xc] + and r0, r0, #0x7f + strb r0, [r8, #-0xb] + mov r0, r4, lsr #0x8 + strb r0, [r8, #-0xa] + strb r4, [r8, #-0x9] +_0209F0FC: + ldr r0, _0209F128 ; =0x021C8F14 + sub r1, r8, #0x8 + mov r2, #0x6 + bl MI_CpuCopy8 + mov r2, r6 + mov r3, r5 + sub r0, r8, #0xe + add r1, r7, #0xe + bl FUN_0209F930 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_0209F128: .word 0x021C8F14 + + arm_func_start FUN_0209F12C +FUN_0209F12C: ; 0x0209F12C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r3, _0209F29C ; =0x7F000001 + mov r6, r1 + cmp r6, r3 + mov r7, r0 + mov r4, r2 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + ldr r0, _0209F2A0 ; =0x021C8F04 + ldr r0, [r0, #0x0] + cmp r6, r0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + mov r0, r6 + bl FUN_0209FAD8 +_0209F174: ; 0x0209F174 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + mov r0, r6 + bl FUN_0209FA54 +_0209F18C: ; 0x0209F18C + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr + bl OS_GetTick + mov r0, r0, lsr #0x10 + orr r0, r0, r1, lsl #0x10 + mov r0, r0, lsl #0x10 + ldr r1, _0209F2A4 ; =0x021C8F78 + mov r5, r0, lsr #0x10 + mov r2, #0x0 +_0209F1B8: + ldr r0, [r1, #0x0] + cmp r6, r0 + bne _0209F1F8 + mov r0, #0xc + mul r4, r2, r0 + ldr r0, _0209F2A4 ; =0x021C8F78 + ldr r3, _0209F2A8 ; =0x021C8F82 + add r1, r0, r4 + mov r0, r7 + add r1, r1, #0x4 + mov r2, #0x6 + strh r5, [r3, r4] + bl MI_CpuCopy8 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_0209F1F8: + add r2, r2, #0x1 + cmp r2, #0x8 + add r1, r1, #0xc + blo _0209F1B8 + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + mov r12, #0x0 + ldr r4, _0209F2A4 ; =0x021C8F78 + mov r0, r12 + mov r3, r12 +_0209F228: + ldr r1, [r4, #0x0] + cmp r1, #0x0 + moveq r0, r3 + beq _0209F264 + ldrh r1, [r4, #0xa] + add r4, r4, #0xc + sub r1, r5, r1 + mov r1, r1, lsl #0x10 + mov r2, r1, asr #0x10 + cmp r2, r12 + movgt r0, r3 + add r3, r3, #0x1 + movgt r12, r1, lsr #0x10 + cmp r3, #0x8 + blo _0209F228 +_0209F264: + mov r1, #0xc + mul r4, r0, r1 + ldr r3, _0209F2A4 ; =0x021C8F78 + mov r0, r7 + add r1, r3, r4 + add r1, r1, #0x4 + mov r2, #0x6 + str r6, [r3, r4] + bl MI_CpuCopy8 + ldr r0, _0209F2A8 ; =0x021C8F82 + strh r5, [r0, r4] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_0209F29C: .word 0x7F000001 +_0209F2A0: .word 0x021C8F04 +_0209F2A4: .word 0x021C8F78 +_0209F2A8: .word 0x021C8F82 + + arm_func_start FUN_0209F2AC +FUN_0209F2AC: + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r9, r0 + mov r8, #0x0 + ldr r4, _0209F334 ; =0x021C8F04 + mov r6, r8 + mov r5, #0x64 +_0209F2C8: + mov r0, r9 + bl FUN_0209F338 + mov r7, r6 +_0209F2D4: + ldr r0, [r4, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + mov r0, r5 + bl OS_Sleep + mov r0, r9 + bl FUN_0209F438 +_0209F2FC: ; 0x0209F2FC + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r9,lr} + bxne lr + add r7, r7, #0x1 + cmp r7, #0x14 + blo _0209F2D4 + add r8, r8, #0x1 + cmp r8, #0x8 + blo _0209F2C8 + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_0209F334: .word 0x021C8F04 + + arm_func_start FUN_0209F338 +FUN_0209F338: ; 0x0209F338 + stmdb sp!, {r4,lr} + sub sp, sp, #0x30 + mov r4, r0 + add r0, sp, #0x0 + mov r1, #0x0 + mov r2, #0x2a + bl MI_CpuFill8 +_0209F354: ; 0x0209F354 + add r0, sp, #0x0 + mov r1, #0xff + mov r2, #0x6 + bl MI_CpuFill8 + ldr r0, _0209F428 ; =0x021C8F14 + add r1, sp, #0x6 + mov r2, #0x6 + bl MI_CpuCopy8 + mov r0, #0x1 + ldr r1, _0209F42C ; =0x00000608 + strb r0, [sp, #0xf] + strh r1, [sp, #0xc] + strb r0, [sp, #0x15] + mov r0, #0x8 + ldr r1, _0209F430 ; =0x00000406 + strb r0, [sp, #0x10] + strh r1, [sp, #0x12] + ldr r0, _0209F428 ; =0x021C8F14 + add r1, sp, #0x16 + mov r2, #0x6 + bl MI_CpuCopy8 + ldr r0, _0209F434 ; =0x021C8F04 + mov r1, r4, lsr #0x10 + ldr r3, [r0, #0x0] + mov r0, r1, lsl #0x10 + mov r2, r0, lsr #0x10 + mov r0, r4, lsl #0x10 + mov r1, r0, lsr #0x10 + mov r0, r3, lsr #0x10 + mov r0, r0, lsl #0x10 + mov r4, r0, lsr #0x10 + mov r0, r3, lsl #0x10 + mov r3, r0, lsr #0x10 + mov r0, r4, asr #0x8 + orr r0, r0, r4, lsl #0x8 + strh r0, [sp, #0x1c] + mov r0, r3, asr #0x8 + orr r0, r0, r3, lsl #0x8 + strh r0, [sp, #0x1e] + mov r0, r2, asr #0x8 + orr r0, r0, r2, lsl #0x8 + strh r0, [sp, #0x26] + mov r0, r1, asr #0x8 + orr r0, r0, r1, lsl #0x8 + mov r2, #0x0 + strh r0, [sp, #0x28] + add r0, sp, #0x0 + mov r1, #0x2a + mov r3, r2 + bl FUN_0209F930 + add sp, sp, #0x30 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_0209F428: .word 0x021C8F14 +_0209F42C: .word 0x00000608 +_0209F430: .word 0x00000406 +_0209F434: .word 0x021C8F04 + + arm_func_start FUN_0209F438 +FUN_0209F438: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + bl OS_DisableInterrupts + ldr r1, _0209F504 ; =0x7F000001 + mov r4, r0 + cmp r7, r1 + mov r5, #0x0 + beq _0209F46C + ldr r0, _0209F508 ; =0x021C8F04 + ldr r0, [r0, #0x0] + cmp r7, r0 + bne _0209F474 +_0209F46C: + ldr r5, _0209F50C ; =0x021C8F14 + b _0209F4EC +_0209F474: + mov r0, r7 + bl FUN_0209FA68 +_0209F47C: ; 0x0209F47C + cmp r0, #0x0 + bne _0209F494 + mov r0, r7 + bl FUN_0209FA54 +_0209F48C: ; 0x0209F48C + cmp r0, #0x0 + beq _0209F49C +_0209F494: + ldr r5, _0209F510 ; =0x0210621C + b _0209F4EC +_0209F49C: + ldr r1, _0209F514 ; =0x021C8F78 + mov r6, r5 +_0209F4A4: + ldr r0, [r1, #0x0] + cmp r7, r0 + bne _0209F4DC + bl OS_GetTick + mov r2, #0xc + mul r3, r6, r2 + ldr r2, _0209F514 ; =0x021C8F78 + mov r5, r0, lsr #0x10 + add r0, r2, r3 + ldr r2, _0209F518 ; =0x021C8F82 + orr r5, r5, r1, lsl #0x10 + strh r5, [r2, r3] + add r5, r0, #0x4 + b _0209F4EC +_0209F4DC: + add r6, r6, #0x1 + cmp r6, #0x8 + add r1, r1, #0xc + blo _0209F4A4 +_0209F4EC: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, r5 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_0209F504: .word 0x7F000001 +_0209F508: .word 0x021C8F04 +_0209F50C: .word 0x021C8F14 +_0209F510: .word 0x0210621C +_0209F514: .word 0x021C8F78 +_0209F518: .word 0x021C8F82 + + arm_func_start FUN_0209F51C +FUN_0209F51C: ; 0x0209F51C + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl OS_DisableInterrupts + ldr r2, _0209F570 ; =0x021C8EE4 + ldr r1, _0209F574 ; =0x021C8F0C + ldr lr, [r2, #0x0] + ldr r12, [r1, #0x0] + ldr r3, [r2, #0x0] + ldr r1, _0209F578 ; =0x021C8F10 + ldrh r3, [r12, r3] + add r3, lr, r3 + str r3, [r2, #0x0] + ldr r3, [r2, #0x0] + ldr r1, [r1, #0x0] + cmp r3, r1 + movcs r1, #0x0 + strcs r1, [r2, #0x0] + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_0209F570: .word 0x021C8EE4 +_0209F574: .word 0x021C8F0C +_0209F578: .word 0x021C8F10 + + arm_func_start FUN_0209F57C +FUN_0209F57C: ; 0x0209F57C + stmdb sp!, {r4-r10,lr} + mov r6, r0 + bl OS_DisableInterrupts + ldr sl, _0209F644 ; =0x021C8EE4 + ldr sb, _0209F648 ; =0x021C8EDC + ldr r2, [r10, #0x0] + ldr r1, [r9, #0x0] + mov r5, r0 + cmp r2, r1 + bne _0209F5D4 + ldr r8, _0209F64C ; =0x021D3498 + ldr r7, _0209F650 ; =0x021C8F08 + mov r4, #0x0 +_0209F5B0: + ldr r1, [r8, #0x4] + mov r0, r4 + str r1, [r7, #0x0] + bl OS_SleepThread + str r4, [r7, #0x0] + ldr r1, [r10, #0x0] + ldr r0, [r9, #0x0] + cmp r1, r0 + beq _0209F5B0 +_0209F5D4: + mov r0, r5 + bl OS_RestoreInterrupts + ldr r0, _0209F654 ; =0x021C8F0C + ldr r5, [r0, #0x0] + ldr r0, _0209F644 ; =0x021C8EE4 + ldr r1, _0209F658 ; =0x021C8F10 + mov r3, #0x0 +_0209F5F0: + ldr r4, [r1, #0x0] + ldr r2, [r0, #0x0] + sub r2, r4, r2 + cmp r2, #0x2 + strcc r3, [r0, #0x0] + ldr r2, [r0, #0x0] + ldrh r2, [r5, r2] + cmp r2, #0x0 + streq r3, [r0, #0x0] + cmp r2, #0x0 + beq _0209F5F0 + sub r0, r2, #0x2 + ldr r1, _0209F654 ; =0x021C8F0C + str r0, [r6, #0x0] + ldr r0, _0209F644 ; =0x021C8EE4 + ldr r1, [r1, #0x0] + ldr r0, [r0, #0x0] + add r0, r1, r0 + add r0, r0, #0x2 + ldmia sp!, {r4-r10,lr} + bx lr + .balign 4 +_0209F644: .word 0x021C8EE4 +_0209F648: .word 0x021C8EDC +_0209F64C: .word 0x021D3498 +_0209F650: .word 0x021C8F08 +_0209F654: .word 0x021C8F0C +_0209F658: .word 0x021C8F10 + + arm_func_start FUN_0209F65C +FUN_0209F65C: ; 0x0209F65C + stmdb sp!, {lr} + sub sp, sp, #0xc + mov r12, #0x0 + str r12, [sp, #0x0] + str r12, [sp, #0x4] + bl FUN_0209F6C0 + ldr r0, _0209F6BC ; =0x021C8F08 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + addeq sp, sp, #0xc + ldmeqia sp!, {lr} + bxeq lr + ldr r0, [r0, #0x0] + bl OS_IsThreadTerminated +_0209F694: ; 0x0209F694 + cmp r0, #0x0 + addne sp, sp, #0xc + ldmneia sp!, {lr} + bxne lr + ldr r0, _0209F6BC ; =0x021C8F08 + ldr r0, [r0, #0x0] + bl OS_WakeupThreadDirect + add sp, sp, #0xc + ldmia sp!, {lr} + bx lr + .balign 4 +_0209F6BC: .word 0x021C8F08 + + arm_func_start FUN_0209F6C0 +FUN_0209F6C0: ; 0x0209F6C0 + stmdb sp!, {r4-r8,lr} + ldr r4, _0209F918 ; =0x021C8F0C + mov r7, r0 + ldr r0, [r4, #0x0] + mov r6, r2 + mov r5, r3 + cmp r0, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r2, _0209F91C ; =0x021C8F10 + ldr r2, [r2, #0x0] + cmp r2, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r2, [sp, #0x1c] + add r2, r5, r2 + cmp r2, #0x8 + ldmccia sp!, {r4-r8,lr} + bxcc lr + ldr r3, _0209F920 ; =0x000005E4 + cmp r2, r3 + ldmhiia sp!, {r4-r8,lr} + bxhi lr + ldr r3, _0209F924 ; =0x02106230 + ldrb r8, [r6, #0x0] + ldrb r4, [r3, #0x0] + cmp r8, r4 + ldmneia sp!, {r4-r8,lr} + bxne lr + ldrb r8, [r6, #0x1] + ldrb r4, [r3, #0x1] + cmp r8, r4 + ldmneia sp!, {r4-r8,lr} + bxne lr + ldrb r4, [r6, #0x2] + ldrb r3, [r3, #0x2] + cmp r4, r3 + ldmneia sp!, {r4-r8,lr} + bxne lr + ldrb r3, [r6, #0x6] + cmp r3, #0x8 + ldmneia sp!, {r4-r8,lr} + bxne lr + ldrb r3, [r6, #0x7] + cmp r3, #0x0 + beq _0209F784 + cmp r3, #0x6 + ldmneia sp!, {r4-r8,lr} + bxne lr +_0209F784: + ldr r4, _0209F928 ; =0x021C8EDC + add r2, r2, #0x9 + bic r2, r2, #0x1 + ldr lr, [r4, #0x0] + mov r3, r2, lsl #0x10 + ldr ip, _0209F92C ; =0x021C8EE4 + ldr r8, [r4, #0x0] + ldr r4, [r12, #0x0] + mov r2, r3, lsr #0x10 + cmp r8, r4 + add r4, lr, r3, lsr #0x10 + bhs _0209F7C4 + ldr r3, [r12, #0x0] + cmp r3, r4 + ldmlsia sp!, {r4-r8,lr} + bxls lr +_0209F7C4: + ldr r3, _0209F91C ; =0x021C8F10 + ldr r8, [r3, #0x0] + cmp r4, r8 + bne _0209F7F0 + ldr r3, _0209F92C ; =0x021C8EE4 + mov r4, #0x0 + ldr r3, [r3, #0x0] + cmp r3, #0x0 + bne _0209F814 + ldmia sp!, {r4-r8,lr} + bx lr +_0209F7F0: + ldr r3, [r3, #0x0] + cmp r4, r3 + bls _0209F814 + ldr r3, _0209F92C ; =0x021C8EE4 + mov r4, r2 + ldr r3, [r3, #0x0] + cmp r3, r2 + ldmlsia sp!, {r4-r8,lr} + bxls lr +_0209F814: + ldr ip, _0209F928 ; =0x021C8EDC + ldr r3, _0209F91C ; =0x021C8F10 + ldr lr, [r12, #0x0] + ldr r8, [r3, #0x0] + add lr, lr, r2 + cmp lr, r8 + bls _0209F858 + ldr r8, [r3, #0x0] + ldr r3, [r12, #0x0] + sub r3, r8, r3 + cmp r3, #0x2 + ldrcs r3, [r12, #0x0] + movcs r8, #0x0 + strcsh r8, [r0, r3] + ldr r0, _0209F928 ; =0x021C8EDC + mov r3, #0x0 + str r3, [r0, #0x0] +_0209F858: + ldr ip, _0209F918 ; =0x021C8F0C + ldr r3, _0209F928 ; =0x021C8EDC + ldr r8, [r12, #0x0] + ldr lr, [r3, #0x0] + mov r0, r1 + strh r2, [r8, lr] + ldr r12, [r12, #0x0] + ldr r1, [r3, #0x0] + mov r2, #0x6 + add r1, r12, r1 + add r1, r1, #0x2 + bl MI_CpuCopy8 + ldr r1, _0209F918 ; =0x021C8F0C + ldr r0, _0209F928 ; =0x021C8EDC + ldr r2, [r1, #0x0] + ldr r1, [r0, #0x0] + mov r0, r7 + add r1, r2, r1 + add r1, r1, #0x8 + mov r2, #0x6 + bl MI_CpuCopy8 + ldr r1, _0209F918 ; =0x021C8F0C + ldr r0, _0209F928 ; =0x021C8EDC + ldr r2, [r1, #0x0] + ldr r1, [r0, #0x0] + add r0, r6, #0x6 + add r1, r2, r1 + add r1, r1, #0xe + sub r2, r5, #0x6 + bl MI_CpuCopy8 + ldr r0, [sp, #0x18] + cmp r0, #0x0 + beq _0209F908 + ldr r2, [sp, #0x1c] + cmp r2, #0x0 + beq _0209F908 + ldr r3, _0209F918 ; =0x021C8F0C + ldr r1, _0209F928 ; =0x021C8EDC + ldr r3, [r3, #0x0] + ldr r1, [r1, #0x0] + add r1, r3, r1 + add r1, r1, #0x8 + add r1, r1, r5 + bl MI_CpuCopy8 +_0209F908: + ldr r0, _0209F928 ; =0x021C8EDC + str r4, [r0, #0x0] + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_0209F918: .word 0x021C8F0C +_0209F91C: .word 0x021C8F10 +_0209F920: .word 0x000005E4 +_0209F924: .word 0x02106230 +_0209F928: .word 0x021C8EDC +_0209F92C: .word 0x021C8EE4 + + arm_func_start FUN_0209F930 +FUN_0209F930: ; 0x0209F930 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + add r1, r6, r5 + mov r4, r3 + cmp r1, r2 + beq _0209F958 + mov r0, r2 + mov r2, r4 + bl MI_CpuCopy8 +_0209F958: + ldr r0, _0209F998 ; =0x02106230 + add r1, r6, #0x6 + mov r2, #0x6 + bl MI_CpuCopy8 + add r2, r5, r4 + mov r0, r6 + add r1, r6, #0x6 + sub r2, r2, #0x6 + bl FUN_020A8644 +_0209F97C: ; 0x0209F97C + cmp r0, #0x0 + movlt r1, #0x1 + ldr r0, _0209F99C ; =0x021C8EA8 + movge r1, #0x0 + strb r1, [r0, #0x0] + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_0209F998: .word 0x02106230 +_0209F99C: .word 0x021C8EA8 + + arm_func_start FUN_0209F9A0 +FUN_0209F9A0: + mov r12, #0x0 +_0209F9A4: + ldrh r3, [r0], #0x2 + ldrh r2, [r1], #0x2 + cmp r3, r2 + movne r0, #0x1 + bxne lr + add r12, r12, #0x1 + cmp r12, #0x3 + blt _0209F9A4 + mov r0, #0x0 + bx lr + + arm_func_start FUN_0209F9CC +FUN_0209F9CC: + stmdb sp!, {r4-r6,lr} + ldr r1, _0209FA4C ; =0x021C8F04 + mov r5, #0x1 + ldr r1, [r1, #0x0] + mov r6, r0 + mov r4, r5 + mov r2, r5 + mov r0, r5 + cmp r1, #0x0 + beq _0209F9FC + cmp r6, r1 + movne r0, #0x0 +_0209F9FC: + cmp r0, #0x0 + bne _0209FA10 + ldr r0, _0209FA50 ; =0x7F000001 + cmp r6, r0 + movne r2, #0x0 +_0209FA10: + cmp r2, #0x0 + bne _0209FA28 + mov r0, r6 + bl FUN_0209FA68 +_0209FA20: ; 0x0209FA20 + cmp r0, #0x0 + moveq r4, #0x0 +_0209FA28: + cmp r4, #0x0 + bne _0209FA40 + mov r0, r6 + bl FUN_0209FA54 +_0209FA38: ; 0x0209FA38 + cmp r0, #0x0 + moveq r5, #0x0 +_0209FA40: + mov r0, r5 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_0209FA4C: .word 0x021C8F04 +_0209FA50: .word 0x7F000001 + + arm_func_start FUN_0209FA54 +FUN_0209FA54: + and r0, r0, #0xf0000000 + cmp r0, #0xe0000000 + moveq r0, #0x1 + movne r0, #0x0 + bx lr + + arm_func_start FUN_0209FA68 +FUN_0209FA68: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, #0x0 + bl FUN_0209FAD8 +_0209FA7C: ; 0x0209FA7C + cmp r0, #0x0 + beq _0209FA9C + ldr r0, _0209FAAC ; =0x021C8ED0 + ldr r0, [r0, #0x0] + mvn r1, r0 + and r0, r1, r5 + cmp r1, r0 + moveq r4, #0x1 +_0209FA9C: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_0209FAAC: .word 0x021C8ED0 + + arm_func_start FUN_0209FAB0 +FUN_0209FAB0: + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_0209FAD8 +_0209FABC: ; 0x0209FABC + cmp r0, #0x0 + ldreq r0, _0209FAD4 ; =0x021C8EE0 + ldreq r4, [r0, #0x0] + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_0209FAD4: .word 0x021C8EE0 + + arm_func_start FUN_0209FAD8 +FUN_0209FAD8: + mvn r1, #0x0 + cmp r0, r1 + mov r12, #0x1 + beq _0209FB14 + ldr r1, _0209FB1C ; =0x7F000001 + cmp r0, r1 + beq _0209FB14 + ldr r2, _0209FB20 ; =0x021C8ED0 + ldr r1, _0209FB24 ; =0x021C8F04 + ldr r3, [r2, #0x0] + ldr r1, [r1, #0x0] + and r2, r0, r3 + and r0, r1, r3 + cmp r2, r0 + movne r12, #0x0 +_0209FB14: + mov r0, r12 + bx lr + .balign 4 +_0209FB1C: .word 0x7F000001 +_0209FB20: .word 0x021C8ED0 +_0209FB24: .word 0x021C8F04 + + arm_func_start FUN_0209FB28 +FUN_0209FB28: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r2 + mov r2, r3 + mov r5, r1 + bl FUN_0209FBC8 + mov r2, r0 + add r0, r4, #0xc + mov r1, #0x8 + bl FUN_0209FBC8 + add r1, r0, r5 + ands r0, r1, #0x10000 + ldrne r0, _0209FB80 ; =0x0000FFFF + addne r1, r1, #0x1 + andne r1, r1, r0 + ldr r0, _0209FB80 ; =0x0000FFFF + cmp r1, r0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_0209FB80: .word 0x0000FFFF + + arm_func_start FUN_0209FB84 +FUN_0209FB84: ; 0x0209FB84 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, #0x0 + bl FUN_0209FBC8 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bl FUN_0209FBAC + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_0209FBAC +FUN_0209FBAC: ; 0x0209FBAC + ldr r1, _0209FBC4 ; =0x0000FFFF + eor r0, r0, r1 + mov r0, r0, lsl #0x10 + movs r0, r0, lsr #0x10 + moveq r0, r1 + bx lr + .balign 4 +_0209FBC4: .word 0x0000FFFF + + arm_func_start FUN_0209FBC8 +FUN_0209FBC8: ; 0x0209FBC8 + ands r3, r0, #0x1 + beq _0209FC00 + cmp r1, #0x1 + bls _0209FC54 +_0209FBD8: + ldrb r12, [r0, #0x0] + ldrb r3, [r0, #0x1] + sub r1, r1, #0x2 + cmp r1, #0x1 + orr r3, r3, r12, lsl #0x8 + mov r3, r3, lsl #0x10 + add r2, r2, r3, lsr #0x10 + add r0, r0, #0x2 + bhi _0209FBD8 + b _0209FC54 +_0209FC00: + mov r2, r2, lsl #0x10 + mov r3, r2, lsr #0x10 + mov r2, r3, asr #0x8 + orr r2, r2, r3, lsl #0x8 + mov r2, r2, lsl #0x10 + cmp r1, #0x1 + mov r2, r2, lsr #0x10 + bls _0209FC38 +_0209FC20: + ldrh r3, [r0, #0x0] + sub r1, r1, #0x2 + cmp r1, #0x1 + add r2, r2, r3 + add r0, r0, #0x2 + bhi _0209FC20 +_0209FC38: + ldr r3, _0209FC7C ; =0x00FF00FF + ldr ip, _0209FC80 ; =0xFF00FF00 + and r3, r3, r2, lsr #0x8 + and r2, r12, r2, lsl #0x8 + orr r3, r3, r2 + mov r2, r3, lsr #0x10 + orr r2, r2, r3, lsl #0x10 +_0209FC54: + cmp r1, #0x0 + ldrneb r0, [r0, #0x0] + addne r2, r2, r0, lsl #0x8 + ldr r0, _0209FC84 ; =0x0000FFFF + and r0, r2, r0 + add r0, r0, r2, lsr #0x10 + add r0, r0, r0, lsr #0x10 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bx lr + .balign 4 +_0209FC7C: .word 0x00FF00FF +_0209FC80: .word 0xFF00FF00 +_0209FC84: .word 0x0000FFFF + + arm_func_start FUN_0209FC88 +FUN_0209FC88: ; 0x0209FC88 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r2, _0209FCB8 ; =0x02106218 + ldr r0, _0209FCBC ; =0x021C9160 + mov r1, r4 + str r4, [r2, #0x0] + bl OS_SetThreadPriority + ldr r0, _0209FCC0 ; =0x021C90A0 + mov r1, r4 + bl OS_SetThreadPriority + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_0209FCB8: .word 0x02106218 +_0209FCBC: .word 0x021C9160 +_0209FCC0: .word 0x021C90A0 + + arm_func_start FUN_0209FCC4 +FUN_0209FCC4: + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_0209FD34 + ldr r0, _0209FD10 ; =0x021C90A0 + bl OS_JoinThread + ldr r0, _0209FD14 ; =0x021C9160 + bl OS_DestroyThread + ldr r1, _0209FD18 ; =0x021C8F08 + mov r0, #0x0 + str r0, [r1, #0x0] + bl FUN_020A0098 + ldr r1, _0209FD1C ; =0x021C8F0C + mov r2, #0x0 + ldr r0, _0209FD20 ; =0x021C8F10 + str r2, [r1, #0x0] + str r2, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_0209FD10: .word 0x021C90A0 +_0209FD14: .word 0x021C9160 +_0209FD18: .word 0x021C8F08 +_0209FD1C: .word 0x021C8F0C +_0209FD20: .word 0x021C8F10 + + arm_func_start FUN_0209FD24 +FUN_0209FD24: ; 0x0209FD24 + ldr r1, _0209FD30 ; =0x021C8EF0 + str r0, [r1, #0x0] + bx lr + .balign 4 +_0209FD30: .word 0x021C8EF0 + + arm_func_start FUN_0209FD34 +FUN_0209FD34: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + bl OS_DisableInterrupts + mov r5, r0 + ldr r0, _0209FD8C ; =0x021C90A0 + bl OS_IsThreadTerminated + movs r4, r0 + bne _0209FD74 + ldr r1, _0209FD90 ; =0x021C8EF8 + ldr r0, [r1, #0x0] + cmp r0, #0x0 + bne _0209FD74 + ldr r0, _0209FD8C ; =0x021C90A0 + mov r2, #0x1 + str r2, [r1, #0x0] + bl OS_WakeupThreadDirect +_0209FD74: + mov r0, r5 + bl OS_RestoreInterrupts + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_0209FD8C: .word 0x021C90A0 +_0209FD90: .word 0x021C8EF8 + + arm_func_start FUN_0209FD94 +FUN_0209FD94: ; 0x0209FD94 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r4, r0 + ldr r0, _0209FFD4 ; =0x02000BEC + bl OSi_ReferSymbol + ldr r12, [r4, #0x14] + ldr r6, [r4, #0x18] + mov r1, #0x0 + cmp r6, r1 + cmpeq r12, r1 + beq _0209FDEC + ldr r0, _0209FFD8 ; =0x021C8F24 + ldr r5, _0209FFDC ; =0x6C078965 + ldr r3, _0209FFE0 ; =0x5D588B65 + ldr r2, _0209FFE4 ; =0x00269EC3 + str r12, [r0, #0x0] + str r6, [r0, #0x4] + str r5, [r0, #0x8] + str r3, [r0, #0xc] + str r2, [r0, #0x10] + str r1, [r0, #0x14] + b _0209FE1C +_0209FDEC: + bl OS_GetTick + ldr r2, _0209FFD8 ; =0x021C8F24 + ldr ip, _0209FFDC ; =0x6C078965 + ldr r6, _0209FFE0 ; =0x5D588B65 + ldr r5, _0209FFE4 ; =0x00269EC3 + mov r3, #0x0 + str r0, [r2, #0x0] + str r1, [r2, #0x4] + str r12, [r2, #0x8] + str r6, [r2, #0xc] + str r5, [r2, #0x10] + str r3, [r2, #0x14] +_0209FE1C: + ldr r2, [r4, #0x4] + cmp r2, #0x0 + beq _0209FE4C + ldr r0, [r4, #0x8] + cmp r0, #0x0 + beq _0209FE4C + ldr r1, _0209FFE8 ; =0x021C8EC8 + ldr r0, _0209FFEC ; =0x021C8EF4 + str r2, [r1, #0x0] + ldr r1, [r4, #0x8] + str r1, [r0, #0x0] + b _0209FE60 +_0209FE4C: + ldr r2, _0209FFF0 ; =FUN_020A0058 + ldr r1, _0209FFE8 ; =0x021C8EC8 + ldr r0, _0209FFEC ; =0x021C8EF4 + str r2, [r1, #0x0] + str r2, [r0, #0x0] +_0209FE60: + ldr r1, [r4, #0x0] + ldr r0, _0209FFF4 ; =0x021C8EC4 + ldr ip, _0209FFD8 ; =0x021C8F24 + str r1, [r0, #0x0] + ldr r1, [r4, #0x24] + ldr r3, [r12, #0x8] + cmp r1, #0x0 + ldrne r0, _0209FFF8 ; =0x021C8EB0 + strneh r1, [r0, #0x0] + ldreq r1, _0209FFFC ; =0x000005B4 + ldreq r0, _0209FFF8 ; =0x021C8EB0 + streqh r1, [r0, #0x0] + ldr r2, [r4, #0x28] + ldr r1, _020A0000 ; =0x021C8EE8 + ldr r0, _020A0004 ; =0x021C8ED8 + str r2, [r1, #0x0] + ldr r1, [r4, #0x2c] + ldr r2, [r12, #0x0] + str r1, [r0, #0x0] + ldr r1, [r4, #0xc] + umull lr, r5, r3, r2 + cmp r1, #0x0 + ldrne r0, _020A0008 ; =0x021C8ECC + strne r1, [r0, #0x0] + ldreq r1, _0209FFF0 ; =FUN_020A0058 + ldreq r0, _020A0008 ; =0x021C8ECC + streq r1, [r0, #0x0] + ldr r1, [r4, #0x10] + cmp r1, #0x0 + ldrne r0, _020A000C ; =0x021C8EFC + strne r1, [r0, #0x0] + ldreq r1, _020A0010 ; =FUN_020A0050 + ldreq r0, _020A000C ; =0x021C8EFC + streq r1, [r0, #0x0] + ldr r1, [r12, #0x4] + ldr r0, _020A0014 ; =0x00000F88 + mla r5, r3, r1, r5 + ldr r1, [r12, #0xc] + ldr r3, [r12, #0x10] + mla r5, r1, r2, r5 + adds r2, r3, lr + ldr r1, [r12, #0x14] + mov r3, #0x0 + adc r1, r1, r5 + umull lr, r5, r1, r0 + mla r5, r1, r3, r5 + mla r5, r3, r0, r5 + ldr r6, [r4, #0x1c] + ldr r0, _020A0018 ; =0x021C8F0C + ldr lr, _020A001C ; =0x021C8F10 + str r6, [r0, #0x0] + ldr r4, [r4, #0x20] + ldr r0, _020A0020 ; =0x021C8EE4 + str r4, [lr, #0x0] + str r3, [r0, #0x0] + ldr lr, _020A0024 ; =0x021C8EDC + ldr r4, _020A0028 ; =0x021C8EBC + add r5, r5, #0x400 + ldr r0, _020A002C ; =0x021C8F14 + str r3, [lr, #0x0] + str r2, [r12, #0x0] + str r1, [r12, #0x4] + strh r5, [r4, #0x0] + bl OS_GetMacAddress + ldr r0, _020A0030 ; =0x021C8EAC + mov r2, #0x0 + strb r2, [r0, #0x0] + mov r1, #0x800 + str r1, [sp, #0x0] + ldr r0, _020A0034 ; =0x02106218 + ldr r1, _020A0038 ; =FUN_0209CD3C + ldr r4, [r0, #0x0] + ldr r0, _020A003C ; =0x021C9160 + ldr r3, _020A0040 ; =0x021CA6E0 + str r4, [sp, #0x4] + bl OS_CreateThread + mov r1, #0x800 + ldr r0, _020A0034 ; =0x02106218 + str r1, [sp, #0x0] + ldr r1, [r0, #0x0] + ldr r0, _020A0044 ; =0x021C90A0 + str r1, [sp, #0x4] + ldr r1, _020A0048 ; =FUN_0209BA80 + ldr r3, _020A004C ; =0x021C9EE0 + mov r2, #0x0 + bl OS_CreateThread + ldr r0, _020A003C ; =0x021C9160 + bl OS_WakeupThreadDirect + ldr r0, _020A0044 ; =0x021C90A0 + bl OS_WakeupThreadDirect + add sp, sp, #0x8 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_0209FFD4: .word 0x02000BEC +_0209FFD8: .word 0x021C8F24 +_0209FFDC: .word 0x6C078965 +_0209FFE0: .word 0x5D588B65 +_0209FFE4: .word 0x00269EC3 +_0209FFE8: .word 0x021C8EC8 +_0209FFEC: .word 0x021C8EF4 +_0209FFF0: .word FUN_020A0058 +_0209FFF4: .word 0x021C8EC4 +_0209FFF8: .word 0x021C8EB0 +_0209FFFC: .word 0x000005B4 +_020A0000: .word 0x021C8EE8 +_020A0004: .word 0x021C8ED8 +_020A0008: .word 0x021C8ECC +_020A000C: .word 0x021C8EFC +_020A0010: .word FUN_020A0050 +_020A0014: .word 0x00000F88 +_020A0018: .word 0x021C8F0C +_020A001C: .word 0x021C8F10 +_020A0020: .word 0x021C8EE4 +_020A0024: .word 0x021C8EDC +_020A0028: .word 0x021C8EBC +_020A002C: .word 0x021C8F14 +_020A0030: .word 0x021C8EAC +_020A0034: .word 0x02106218 +_020A0038: .word FUN_0209CD3C +_020A003C: .word 0x021C9160 +_020A0040: .word 0x021CA6E0 +_020A0044: .word 0x021C90A0 +_020A0048: .word FUN_0209BA80 +_020A004C: .word 0x021C9EE0 + + arm_func_start FUN_020A0050 +FUN_020A0050: ; 0x020A0050 + mov r0, #0x1 + bx lr + + arm_func_start FUN_020A0058 +FUN_020A0058: ; 0x020A0058 + bx lr + + arm_func_start FUN_020A005C +FUN_020A005C: + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020A0094 ; =0x021C8ED8 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020A0084 + bl OS_YieldThread + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A0084: + bl OS_Sleep + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A0094: .word 0x021C8ED8 + + arm_func_start FUN_020A0098 +FUN_020A0098: ; 0x020A0098 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r1, _020A01B8 ; =0x021C8F04 + ldr r5, _020A01BC ; =0x021C8EC0 + ldr r1, [r1, #0x0] + ldr r3, _020A01C0 ; =0x021C8F1C + cmp r1, #0x0 + mov r1, #0x0 + movne r6, #0x1 + ldr ip, _020A01C4 ; =0x021C8ED0 + ldr r2, _020A01C8 ; =0x021C8ED4 + moveq r6, #0x0 + ldr lr, _020A01B8 ; =0x021C8F04 + ldr r4, _020A01CC ; =0x021C8EE0 + cmp r6, #0x0 + str r1, [r12, #0x0] + str r1, [r3, #0x0] + str r1, [r3, #0x4] + str r1, [r2, #0x0] + addeq sp, sp, #0x4 + str r0, [r5, #0x0] + str r1, [lr, #0x0] + str r1, [r4, #0x0] + ldmeqia sp!, {r4-r7,lr} + bxeq lr + ldr r0, _020A01D0 ; =0x021C8F78 + mov r2, #0x60 + bl MI_CpuFill8 + ldr r0, _020A01D4 ; =0x021D3498 + ldr r5, [r0, #0x8] + cmp r5, #0x0 + beq _020A016C + mov r4, #0x0 +_020A011C: + ldr r1, [r5, #0xa4] + cmp r1, #0x0 + beq _020A0160 + ldr r0, [r1, #0x0] + cmp r0, #0x0 + beq _020A0160 + ldrb r0, [r1, #0x8] + cmp r0, #0xa + beq _020A0148 + cmp r0, #0xb + strneb r4, [r1, #0x8] +_020A0148: + ldr r0, [r1, #0x4] + cmp r0, #0x0 + beq _020A0160 + str r4, [r1, #0x4] + ldr r0, [r1, #0x0] + bl OS_WakeupThreadDirect +_020A0160: + ldr r5, [r5, #0x68] + cmp r5, #0x0 + bne _020A011C +_020A016C: + ldr r6, _020A01D8 ; =0x021C9520 + mov r7, #0x0 + ldr r4, _020A01DC ; =0x021C8EF4 + mov r5, r7 +_020A017C: + ldrh r0, [r6, #0x4] + cmp r0, #0x0 + beq _020A0198 + ldr r0, [r6, #0x34] + ldr r1, [r4, #0x0] + blx r1 + strh r5, [r6, #0x4] +_020A0198: + add r7, r7, #0x1 + cmp r7, #0x8 + add r6, r6, #0x38 + blt _020A017C + bl FUN_020A01E0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020A01B8: .word 0x021C8F04 +_020A01BC: .word 0x021C8EC0 +_020A01C0: .word 0x021C8F1C +_020A01C4: .word 0x021C8ED0 +_020A01C8: .word 0x021C8ED4 +_020A01CC: .word 0x021C8EE0 +_020A01D0: .word 0x021C8F78 +_020A01D4: .word 0x021D3498 +_020A01D8: .word 0x021C9520 +_020A01DC: .word 0x021C8EF4 + + arm_func_start FUN_020A01E0 +FUN_020A01E0: ; 0x020A01E0 + ldr ip, _020A01F4 ; =MI_CpuFill8 + ldr r0, _020A01F8 ; =0x021CA6FC + mov r1, #0x0 + mov r2, #0x170 + bx r12 + .balign 4 +_020A01F4: .word MI_CpuFill8 +_020A01F8: .word 0x021CA6FC + + arm_func_start FUN_020A01FC +FUN_020A01FC: ; 0x020A01FC + stmdb sp!, {r4-r6,lr} + mov r5, r0 + bl OS_DisableInterrupts + ldr r4, _020A02E0 ; =0x021CA6FC + mov r6, #0x0 + mov r2, r6 + ldr r1, _020A02E4 ; =0x000003BD +_020A0218: + ldrb r3, [r4, #0x5a] + cmp r3, #0x0 + beq _020A0234 + ldr r3, [r4, #0x50] + sub r3, r5, r3 + cmp r3, r1 + strgtb r2, [r4, #0x5a] +_020A0234: + add r6, r6, #0x1 + cmp r6, #0x4 + add r4, r4, #0x5c + blt _020A0218 + bl OS_RestoreInterrupts + ldr r0, _020A02E8 ; =0x021D3498 + ldr r4, [r0, #0x8] + cmp r4, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + mov r6, #0x0 +_020A0260: + ldr r1, [r4, #0xa4] + cmp r1, #0x0 + beq _020A02CC + ldr r0, [r1, #0x0] + cmp r0, #0x0 + beq _020A02CC + ldrb r0, [r1, #0x9] + cmp r0, #0x0 + beq _020A02CC + ldrb r0, [r1, #0x8] + cmp r0, #0x4 + bne _020A02CC + ldr r0, [r1, #0xc] + ldrb r0, [r0, #0x455] + cmp r0, #0x8 + bhs _020A02CC + ldr r0, [r1, #0x10] + sub r0, r5, r0 + cmp r0, #0xef + ble _020A02CC + ldr r0, [r1, #0x4] + cmp r0, #0x2 + bne _020A02CC + strb r6, [r1, #0x8] + str r6, [r1, #0x4] + ldr r0, [r1, #0x0] + bl OS_WakeupThreadDirect +_020A02CC: + ldr r4, [r4, #0x68] + cmp r4, #0x0 + bne _020A0260 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A02E0: .word 0x021CA6FC +_020A02E4: .word 0x000003BD +_020A02E8: .word 0x021D3498 + + arm_func_start FUN_020A02EC +FUN_020A02EC: + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, _020A0318 ; =0x02000C04 + bl OSi_ReferSymbol + ldr r0, _020A031C ; =0x021D3498 + ldr r0, [r0, #0x4] + ldr r0, [r0, #0xa4] + cmp r0, #0x0 + strneb r4, [r0, #0x9] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A0318: .word 0x02000C04 +_020A031C: .word 0x021D3498 + + arm_func_start FUN_020A0320 +FUN_020A0320: ; 0x020A0320 + stmdb sp!, {r4,lr} + ldr r4, [r0, #0xc] + mov r0, #0x0 + strb r0, [r4, #0x455] + ldr r0, [r4, #0x824] + cmp r0, #0x0 + beq _020A0348 + ldr r1, _020A0358 ; =0x021C8EF4 + ldr r1, [r1, #0x0] + blx r1 +_020A0348: + mov r0, #0x0 + str r0, [r4, #0x824] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A0358: .word 0x021C8EF4 + + arm_func_start FUN_020A035C +FUN_020A035C: ; 0x020A035C + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x20 + mov r5, r0 + ldr r4, [r5, #0xc] + ldrb r0, [r4, #0x455] + cmp r0, #0x8 + bne _020A03CC + mov r12, #0x0 + mov r6, #0x15 + mov lr, #0x3 + mov r3, #0x2 + mov r2, #0x1 + add r1, sp, #0x4 + mov r0, r4 + strb r6, [sp, #0x4] + strb lr, [sp, #0x5] + strb r12, [sp, #0x6] + strb r12, [sp, #0x7] + strb r3, [sp, #0x8] + strb r2, [sp, #0x9] + strb r12, [sp, #0xa] + bl FUN_020A19F4 + mov r2, #0x0 + mov r1, r0 + add r0, sp, #0x4 + mov r3, r2 + str r5, [sp, #0x0] + bl FUN_0209C1D4 +_020A03CC: + mov r0, #0x0 + strb r0, [r4, #0x455] + add sp, sp, #0x20 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_020A03E0 +FUN_020A03E0: ; 0x020A03E0 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x24 + ldr r4, [sp, #0x48] + mov r9, r1 + mov r1, r4 + mov r10, r0 + mov r0, #0x0 + ldr r1, [r1, #0xc] + str r0, [sp, #0x8] + str r0, [sp, #0x1c] + str r0, [sp, #0x14] + str r0, [sp, #0x18] + mov r0, #0x17 + str r0, [sp, #0xc] + mov r0, #0x3 + str r4, [sp, #0x48] + str r1, [sp, #0x4] + mov r8, r2 + add r6, r9, r3 + str r0, [sp, #0x10] +_020A0430: + ldr r0, _020A052C ; =0x00000B4F + ldr r1, _020A0530 ; =0x021C8EC8 + cmp r6, r0 + movgt r5, r0 + movle r5, r6 + ldr r1, [r1, #0x0] + add r0, r5, #0x19 + blx r1 + movs r7, r0 + beq _020A051C + cmp r9, r5 + movcs r4, r5 + movcc r4, r9 + mov r0, r10 + add r1, r7, #0x5 + mov r2, r4 + sub r11, r5, r4 + bl MI_CpuCopy8 + add r1, r7, #0x5 + mov r0, r8 + add r1, r1, r4 + mov r2, r11 + add r10, r10, r4 + sub r9, r9, r4 + bl MI_CpuCopy8 + ldr r0, [sp, #0xc] + mov r1, r7 + strb r0, [r7, #0x0] + ldr r0, [sp, #0x10] + add r8, r8, r11 + strb r0, [r7, #0x1] + ldr r0, [sp, #0x14] + strb r0, [r7, #0x2] + mov r0, r5, asr #0x8 + strb r0, [r7, #0x3] + ldr r0, [sp, #0x4] + strb r5, [r7, #0x4] + bl FUN_020A19F4 + ldr r1, [sp, #0x48] + ldr r2, [sp, #0x18] + mov r4, r0 + str r1, [sp, #0x0] + mov r0, r7 + mov r1, r4 + mov r3, r2 + bl FUN_0209C1D4 + cmp r0, r4 + ldr r1, _020A0534 ; =0x021C8EF4 + mov r0, r7 + ldr r1, [r1, #0x0] + ldrcc r5, [sp, #0x1c] + blx r1 + ldr r0, [sp, #0x8] + subs r6, r6, r5 + add r0, r0, r5 + str r0, [sp, #0x8] + beq _020A051C + cmp r5, #0x0 + bne _020A0430 +_020A051C: + ldr r0, [sp, #0x8] + add sp, sp, #0x24 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020A052C: .word 0x00000B4F +_020A0530: .word 0x021C8EC8 +_020A0534: .word 0x021C8EF4 + + arm_func_start FUN_020A0538 +FUN_020A0538: ; 0x020A0538 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r4, [r5, #0xc] + ldr r0, [r4, #0x824] + cmp r0, #0x0 + beq _020A0560 + ldrb r0, [r4, #0x456] + cmp r0, #0x0 + bne _020A0568 +_020A0560: + mov r0, r5 + bl FUN_020A05D4 +_020A0568: + ldr r1, [r4, #0x824] + cmp r1, #0x0 + beq _020A0594 + ldrb r0, [r4, #0x456] + cmp r0, #0x0 + ldrne r1, [r4, #0x828] + ldrne r0, [r4, #0x82c] + addne sp, sp, #0x4 + subne r0, r1, r0 + ldmneia sp!, {r4-r5,lr} + bxne lr +_020A0594: + cmp r1, #0x0 + bne _020A05C4 + ldrb r0, [r5, #0x8] + cmp r0, #0x4 + bne _020A05B4 + ldrb r0, [r4, #0x455] + cmp r0, #0x9 + bne _020A05C4 +_020A05B4: + add sp, sp, #0x4 + mvn r0, #0x0 + ldmia sp!, {r4-r5,lr} + bx lr +_020A05C4: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020A05D4 +FUN_020A05D4: ; 0x020A05D4 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r5, r0 + ldr r4, [r5, #0xc] + ldr r0, [r4, #0x824] + cmp r0, #0x0 + bne _020A0684 + ldr r0, [r5, #0x44] + cmp r0, #0x5 + addcc sp, sp, #0x8 + ldmccia sp!, {r4-r6,lr} + bxcc lr + add r0, sp, #0x0 + mov r1, r5 + bl FUN_0209C6C0 + ldrb r2, [r0, #0x3] + ldrb r0, [r0, #0x4] + ldr r1, _020A0730 ; =0x00004805 + add r0, r0, r2, lsl #0x8 + add r0, r0, #0x5 + str r0, [sp, #0x0] + cmp r0, r1 + movhi r0, #0x9 + addhi sp, sp, #0x8 + strhib r0, [r4, #0x455] + ldmhiia sp!, {r4-r6,lr} + bxhi lr + ldr r1, _020A0734 ; =0x021C8EC8 + ldr r1, [r1, #0x0] + blx r1 + str r0, [r4, #0x824] + ldr r0, [r4, #0x824] + cmp r0, #0x0 + moveq r0, #0x9 + addeq sp, sp, #0x8 + streqb r0, [r4, #0x455] + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r1, [sp, #0x0] + mov r0, #0x0 + str r1, [r4, #0x828] + str r0, [r4, #0x82c] + strb r0, [r4, #0x456] + b _020A0698 +_020A0684: + ldr r0, [r5, #0x44] + cmp r0, #0x0 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4-r6,lr} + bxeq lr +_020A0698: + add r0, sp, #0x0 + mov r1, r5 + bl FUN_0209C6C0 + ldr r3, [r4, #0x828] + ldr r2, [r4, #0x82c] + ldr r1, [sp, #0x0] + sub r2, r3, r2 + cmp r1, r2 + strcs r2, [sp, #0x0] + movcs r6, #0x1 + ldr r3, [r4, #0x824] + ldr r1, [r4, #0x82c] + ldr r2, [sp, #0x0] + add r1, r3, r1 + movcc r6, #0x0 + bl MI_CpuCopy8 +_020A06D8: ; 0x020A06D8 + ldr r0, [sp, #0x0] + mov r1, r5 + bl FUN_0209C580 +_020A06E4: ; 0x020A06E4 + cmp r6, #0x0 + beq _020A0714 + ldr r1, [r4, #0x824] + mov r0, r4 + bl FUN_020A16E8 + ldrb r0, [r4, #0x456] + add sp, sp, #0x8 + cmp r0, #0x0 + moveq r0, #0x0 + streq r0, [r4, #0x824] + ldmia sp!, {r4-r6,lr} + bx lr +_020A0714: + ldr r1, [r4, #0x82c] + ldr r0, [sp, #0x0] + add r0, r1, r0 + str r0, [r4, #0x82c] + add sp, sp, #0x8 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A0730: .word 0x00004805 +_020A0734: .word 0x021C8EC8 + + arm_func_start FUN_020A0738 +FUN_020A0738: ; 0x020A0738 + stmdb sp!, {r4,lr} + ldr r4, [r1, #0xc] + ldr r2, [r4, #0x828] + ldr r1, [r4, #0x82c] + sub r2, r2, r1 + cmp r0, r2 + blo _020A077C + ldr r0, [r4, #0x824] + cmp r0, #0x0 + beq _020A076C + ldr r1, _020A078C ; =0x021C8EF4 + ldr r1, [r1, #0x0] + blx r1 +_020A076C: + mov r0, #0x0 + str r0, [r4, #0x824] + ldmia sp!, {r4,lr} + bx lr +_020A077C: + add r0, r1, r0 + str r0, [r4, #0x82c] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A078C: .word 0x021C8EF4 + + arm_func_start FUN_020A0790 +FUN_020A0790: ; 0x020A0790 + stmdb sp!, {r4-r6,lr} + mov r5, r1 + ldr r4, [r5, #0xc] + mov r6, r0 + ldr r12, [r4, #0x824] + cmp r12, #0x0 + beq _020A0818 + ldrb r0, [r4, #0x456] + cmp r0, #0x0 + bne _020A0818 + ldr r3, [r4, #0x82c] + ldr r1, [r4, #0x828] + mov r2, r5 + add r0, r12, r3 + sub r1, r1, r3 + bl FUN_020A1974 +_020A07D0: ; 0x020A07D0 + cmp r0, #0x0 + beq _020A07FC + ldr r1, _020A0870 ; =0x021C8EF4 + ldr r0, [r4, #0x824] + ldr r1, [r1, #0x0] + blx r1 + mov r0, #0x0 + str r0, [r4, #0x824] + str r0, [r6, #0x0] + ldmia sp!, {r4-r6,lr} + bx lr +_020A07FC: + ldr r1, [r4, #0x824] + mov r0, r4 + bl FUN_020A16E8 + ldrb r0, [r4, #0x456] + cmp r0, #0x0 + moveq r0, #0x0 + streq r0, [r4, #0x824] +_020A0818: + ldr r0, [r4, #0x824] + cmp r0, #0x0 + bne _020A084C +_020A0824: + mov r0, r5 + bl FUN_020A1528 + cmp r0, #0x9 + moveq r0, #0x0 + streq r0, [r6, #0x0] + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r0, [r4, #0x824] + cmp r0, #0x0 + beq _020A0824 +_020A084C: + ldr r1, [r4, #0x828] + ldr r0, [r4, #0x82c] + sub r0, r1, r0 + str r0, [r6, #0x0] + ldr r1, [r4, #0x824] + ldr r0, [r4, #0x82c] + add r0, r1, r0 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A0870: .word 0x021C8EF4 + + arm_func_start FUN_020A0874 +FUN_020A0874: ; 0x020A0874 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldrb r1, [r5, #0x8] + ldr r4, [r5, #0xc] + cmp r1, #0x4 + beq _020A08A8 + bl FUN_0209C990 +_020A0894: ; 0x020A0894 + cmp r0, #0x0 + addne sp, sp, #0x4 + movne r0, #0x1 + ldmneia sp!, {r4-r5,lr} + bxne lr +_020A08A8: + mov r1, #0x0 + strb r1, [r4, #0x455] + str r1, [r4, #0x1d4] + add r0, r4, #0x2ec + strb r1, [r4, #0x454] + bl FUN_020A41CC + add r0, r4, #0x3a4 + bl FUN_020A3B8C + mov r0, r5 + bl FUN_020A08DC + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020A08DC +FUN_020A08DC: ; 0x020A08DC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r4, [r5, #0xc] + bl FUN_020A0DE4 +_020A08F0: + mov r0, r5 + bl FUN_020A1528 + cmp r0, #0x9 + addeq sp, sp, #0x4 + moveq r0, #0x1 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + cmp r0, #0x4 + beq _020A0920 + ldrb r0, [r4, #0x31] + cmp r0, #0x0 + beq _020A08F0 +_020A0920: + ldrb r0, [r4, #0x31] + cmp r0, #0x0 + beq _020A095C + mov r0, r4 + bl FUN_020A215C + mov r0, r5 + bl FUN_020A0AF4 +_020A093C: ; 0x020A093C + cmp r0, #0x0 + addne sp, sp, #0x4 + movne r0, #0x1 + ldmneia sp!, {r4-r5,lr} + bxne lr + mov r0, r5 + bl FUN_020A0F94 + b _020A09B4 +_020A095C: + mov r0, r5 + bl FUN_020A0B2C + mov r0, r4 + bl FUN_020A2364 + ldrb r0, [r4, #0x30] + cmp r0, #0x0 + beq _020A0988 + ldrh r2, [r5, #0x18] + ldr r1, [r5, #0x1c] + mov r0, r4 + bl FUN_020A3808 +_020A0988: + mov r0, r4 + bl FUN_020A215C + mov r0, r5 + bl FUN_020A0F94 + mov r0, r5 + bl FUN_020A0AF4 +_020A09A0: ; 0x020A09A0 + cmp r0, #0x0 + addne sp, sp, #0x4 + movne r0, #0x1 + ldmneia sp!, {r4-r5,lr} + bxne lr +_020A09B4: + mov r0, #0x8 + strb r0, [r4, #0x455] + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020A09CC +FUN_020A09CC: ; 0x020A09CC + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r9, r0 + ldr r8, [r9, #0xc] + add r5, r8, #0x2ec + add r4, r8, #0x3a4 + mov r7, #0x0 + mov r6, #0x1 +_020A09EC: + mov r0, r9 + bl FUN_0209CAC4 + strb r7, [r8, #0x455] + str r7, [r8, #0x1d4] + mov r0, r5 + strb r6, [r8, #0x454] + bl FUN_020A41CC + mov r0, r4 + bl FUN_020A3B8C + mov r0, r9 + bl FUN_020A0A58 +_020A0A18: ; 0x020A0A18 + cmp r0, #0x0 + moveq r0, #0x8 + addeq sp, sp, #0x4 + streqb r0, [r8, #0x455] + ldmeqia sp!, {r4-r9,lr} + bxeq lr + mov r0, r9 + bl FUN_0209C884 + ldrh r0, [r9, #0x1a] + strh r0, [r9, #0x18] + ldr r0, [r9, #0x20] + str r0, [r9, #0x1c] + b _020A09EC +_020A0A4C: ; 0x020A0A4C + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start FUN_020A0A58 +FUN_020A0A58: + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020A1528 + cmp r0, #0x1 + movne r0, #0x1 + ldmneia sp!, {r4,lr} + bxne lr + mov r0, r4 + bl FUN_020A10F4 +_020A0A7C: ; 0x020A0A7C + cmp r0, #0x0 + beq _020A0AB0 + ldr r0, [r4, #0xc] + bl FUN_020A215C + mov r0, r4 + bl FUN_020A0F94 + mov r0, r4 + bl FUN_020A0AF4 +_020A0A9C: ; 0x020A0A9C + cmp r0, #0x0 + beq _020A0AE8 + mov r0, #0x1 + ldmia sp!, {r4,lr} + bx lr +_020A0AB0: + mov r0, r4 + bl FUN_020A1528 + cmp r0, #0x5 + movne r0, #0x1 + ldmneia sp!, {r4,lr} + bxne lr + mov r0, r4 + bl FUN_020A0AF4 +_020A0AD0: ; 0x020A0AD0 + cmp r0, #0x0 + movne r0, #0x1 + ldmneia sp!, {r4,lr} + bxne lr + mov r0, r4 + bl FUN_020A0F94 +_020A0AE8: + mov r0, #0x0 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020A0AF4 +FUN_020A0AF4: + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020A1528 + cmp r0, #0x7 + movne r0, #0x1 + ldmneia sp!, {r4,lr} + bxne lr + mov r0, r4 + bl FUN_020A1528 + cmp r0, #0x6 + movne r0, #0x1 + moveq r0, #0x0 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020A0B2C +FUN_020A0B2C: ; 0x020A0B2C + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r11, r0 + ldr r10, [r11, #0xc] + mov r0, #0x3 + strb r0, [r10, #0x0] + mov r0, #0x0 + strb r0, [r10, #0x1] + add r0, r10, #0x2 + mov r1, #0x2e + bl FUN_020A13E0 + ldr r4, [r10, #0x594] + ldr r0, _020A0DD4 ; =0x021C8EC8 + mov r1, r4, lsl #0x1 + ldr r2, [r0, #0x0] + add r1, r1, r1, lsr #0x1f + mov r0, r4 + mov r6, r1, asr #0x1 + blx r2 + movs r5, r0 + moveq r0, #0x9 + addeq sp, sp, #0xc + streqb r0, [r10, #0x455] + ldmeqia sp!, {r4-r11,lr} + bxeq lr + mov r0, #0x0 + strb r0, [r5, #0x0] + mov r2, #0x2 + add r0, r5, #0x2 + sub r1, r4, #0x33 + strb r2, [r5, #0x1] + bl FUN_020A13E0 + add r1, r5, r4 + mov r0, r10 + sub r3, r4, #0x31 + mov r7, #0x0 + sub r1, r1, #0x30 + mov r2, #0x30 + strb r7, [r5, r3] + bl MI_CpuCopy8 + ldr r1, _020A0DD4 ; =0x021C8EC8 + mov r0, r6, lsl #0x3 + ldr r1, [r1, #0x0] + blx r1 + movs r9, r0 + bne _020A0C08 + ldr r1, _020A0DD8 ; =0x021C8EF4 + mov r0, r5 + ldr r1, [r1, #0x0] + blx r1 + mov r0, #0x9 + add sp, sp, #0xc + strb r0, [r10, #0x455] + ldmia sp!, {r4-r11,lr} + bx lr +_020A0C08: + add r0, r9, r6, lsl #0x1 + add r8, r0, r6, lsl #0x1 + mov r1, r5 + mov r2, r4 + mov r3, r6 + str r0, [sp, #0x4] + add r7, r8, r6, lsl #0x1 + bl FUN_020A4B50 + ldr r1, _020A0DDC ; =0x00000598 + ldr r2, [r10, #0x5a0] + mov r0, r8 + add r1, r10, r1 + mov r3, r6 + bl FUN_020A4B50 + ldr r1, _020A0DE0 ; =0x00000494 + mov r0, r7 + mov r2, r4 + add r1, r10, r1 + mov r3, r6 + bl FUN_020A4B50 + bl FUN_020A36EC + mov r3, r6 + mov r6, r0 + ldr r1, [sp, #0x4] + mov r2, r8 + mov r0, r9 + str r7, [sp, #0x0] + bl FUN_020A507C + mov r0, r6 + bl FUN_020A36B4 + ldr r1, _020A0DD4 ; =0x021C8EC8 + add r0, r4, #0x49 + ldr r1, [r1, #0x0] + blx r1 + movs r6, r0 + bne _020A0CCC + ldr r1, _020A0DD8 ; =0x021C8EF4 + mov r0, r5 + ldr r1, [r1, #0x0] + blx r1 + ldr r1, _020A0DD8 ; =0x021C8EF4 + mov r0, r9 + ldr r1, [r1, #0x0] + blx r1 + mov r0, #0x9 + add sp, sp, #0xc + strb r0, [r10, #0x455] + ldmia sp!, {r4-r11,lr} + bx lr +_020A0CCC: + mov r0, #0x16 + strb r0, [r6, #0x0] + mov r1, #0x3 + add r0, r4, #0x4 + strb r1, [r6, #0x1] + mov r1, #0x0 + strb r1, [r6, #0x2] + mov r1, r0, asr #0x8 + strb r1, [r6, #0x3] + add r2, r6, #0x9 + strb r0, [r6, #0x4] + mov r0, #0x10 + strb r0, [r6, #0x5] + mov r0, r4, asr #0x10 + strb r0, [r6, #0x6] + mov r0, r4, asr #0x8 + strb r0, [r6, #0x7] + mov r0, r2 + strb r4, [r6, #0x8] + ands r1, r4, #0x1 + beq _020A0D38 + add r0, r4, r4, lsr #0x1f + mov r0, r0, asr #0x1 + mov r0, r0, lsl #0x1 + ldrh r1, [r9, r0] + add r0, r2, #0x1 + strb r1, [r2, #0x0] +_020A0D38: + add r1, r4, r4, lsr #0x1f + mov r1, r1, asr #0x1 + subs r7, r1, #0x1 + bmi _020A0D70 +_020A0D48: + mov r3, r7, lsl #0x1 + ldrh r1, [r9, r3] + add r2, r0, #0x1 + subs r7, r7, #0x1 + mov r1, r1, asr #0x8 + strb r1, [r0, #0x0] + ldrh r1, [r9, r3] + add r0, r0, #0x2 + strb r1, [r2, #0x0] + bpl _020A0D48 +_020A0D70: + mov r2, #0x0 + mov r0, r6 + mov r3, r2 + add r1, r4, #0x9 + str r11, [sp, #0x0] + bl FUN_0209C1D4 + mov r0, r10 + add r1, r6, #0x5 + add r2, r4, #0x4 + bl FUN_020A1944 + ldr r1, _020A0DD8 ; =0x021C8EF4 + mov r0, r6 + ldr r1, [r1, #0x0] + blx r1 + ldr r1, _020A0DD8 ; =0x021C8EF4 + mov r0, r9 + ldr r1, [r1, #0x0] + blx r1 + ldr r1, _020A0DD8 ; =0x021C8EF4 + mov r0, r5 + ldr r1, [r1, #0x0] + blx r1 + add sp, sp, #0xc + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020A0DD4: .word 0x021C8EC8 +_020A0DD8: .word 0x021C8EF4 +_020A0DDC: .word 0x00000598 +_020A0DE0: .word 0x00000494 + + arm_func_start FUN_020A0DE4 +FUN_020A0DE4: ; 0x020A0DE4 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + ldr r1, _020A0F88 ; =0x021C8EC8 + mov r8, r0 + ldr r1, [r1, #0x0] + mov r0, #0x98 + ldr r7, [r8, #0xc] + blx r1 + movs r6, r0 + moveq r0, #0x9 + addeq sp, sp, #0x8 + streqb r0, [r7, #0x455] + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r0, #0x3 + strb r0, [r6, #0x9] + add r5, r6, #0x9 + mov r0, #0x0 + strb r0, [r5, #0x1] + bl FUN_020A375C + mov r1, r0, lsr #0x18 + strb r1, [r7, #0x34] + mov r1, r0, lsr #0x10 + strb r1, [r7, #0x35] + mov r1, r0, lsr #0x8 + strb r1, [r7, #0x36] + strb r0, [r7, #0x37] + add r0, r7, #0x38 + mov r1, #0x1c + bl FUN_020A13E0 + add r0, r7, #0x34 + add r1, r5, #0x2 + mov r2, #0x20 + bl MI_CpuCopy8 + ldrh r2, [r8, #0x18] + ldr r1, [r8, #0x1c] + mov r0, r7 + bl FUN_020A3908 + ldrb r0, [r7, #0x30] + cmp r0, #0x0 + moveq r0, #0x0 + streqb r0, [r5, #0x22] + addeq r5, r5, #0x23 + beq _020A0EAC + mov r2, #0x20 + add r0, r7, #0x74 + add r1, r5, #0x23 + strb r2, [r5, #0x22] + bl MI_CpuCopy8 + add r5, r5, #0x43 +_020A0EAC: + mov r4, #0x0 + strb r4, [r5, #0x0] + mov r0, #0x4 + strb r0, [r5, #0x1] + ldr r2, _020A0F8C ; =0x0210623C + add r5, r5, #0x2 +_020A0EC4: + mov r3, r4, lsl #0x1 + ldrh r0, [r2, r3] + add r4, r4, #0x1 + add r1, r5, #0x1 + mov r0, r0, asr #0x8 + strb r0, [r5, #0x0] + ldrh r0, [r2, r3] + cmp r4, #0x2 + add r5, r5, #0x2 + strb r0, [r1, #0x0] + blo _020A0EC4 + mov r3, #0x1 + mov r2, #0x0 + strb r3, [r5, #0x0] + add r0, r5, #0x2 + sub r0, r0, r6 + sub r4, r0, #0x5 + strb r2, [r5, #0x1] + sub r1, r4, #0x4 + mov r0, #0x16 + strb r0, [r6, #0x0] + mov r0, #0x3 + strb r0, [r6, #0x1] + strb r2, [r6, #0x2] + mov r0, r4, asr #0x8 + strb r0, [r6, #0x3] + strb r4, [r6, #0x4] + strb r3, [r6, #0x5] + mov r0, r1, asr #0x10 + strb r0, [r6, #0x6] + mov r0, r1, asr #0x8 + strb r0, [r6, #0x7] + strb r1, [r6, #0x8] + mov r0, r6 + mov r3, r2 + add r1, r4, #0x5 + str r8, [sp, #0x0] + bl FUN_0209C1D4 + mov r0, r7 + mov r2, r4 + add r1, r6, #0x5 + bl FUN_020A1944 + ldr r1, _020A0F90 ; =0x021C8EF4 + mov r0, r6 + ldr r1, [r1, #0x0] + blx r1 + add sp, sp, #0x8 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020A0F88: .word 0x021C8EC8 +_020A0F8C: .word 0x0210623C +_020A0F90: .word 0x021C8EF4 + + arm_func_start FUN_020A0F94 +FUN_020A0F94: + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + ldr r1, _020A10EC ; =0x021C8EC8 + mov r6, r0 + ldr r1, [r1, #0x0] + mov r0, #0x83 + ldr r5, [r6, #0xc] + blx r1 + movs r4, r0 + moveq r0, #0x9 + addeq sp, sp, #0x8 + streqb r0, [r5, #0x455] + ldmeqia sp!, {r4-r6,lr} + bxeq lr + mov r0, #0x14 + strb r0, [r4, #0x0] + mov r0, #0x3 + strb r0, [r4, #0x1] + mov r1, #0x0 + strb r1, [r4, #0x2] + strb r1, [r4, #0x3] + mov r3, #0x1 + strb r3, [r4, #0x4] + add r0, r5, #0x1cc + mov r2, #0x8 + strb r3, [r4, #0x5] + bl MI_CpuFill8 + mov r0, #0x16 + strb r0, [r4, #0x6] + mov r0, #0x3 + strb r0, [r4, #0x7] + mov r1, #0x0 + strb r1, [r4, #0x8] + strb r1, [r4, #0x9] + mov r0, #0x28 + strb r0, [r4, #0xa] + mov r0, #0x14 + strb r0, [r4, #0xb] + strb r1, [r4, #0xc] + strb r1, [r4, #0xd] + mov r3, #0x24 + add r0, r5, #0x3a4 + add r1, r5, #0x3fc + mov r2, #0x58 + strb r3, [r4, #0xe] + bl MI_CpuCopy8 + mov r0, r5 + add r1, r4, #0xf + mov r2, #0x0 + bl FUN_020A2034 + add r0, r5, #0x3fc + add r1, r5, #0x3a4 + mov r2, #0x58 + bl MI_CpuCopy8 + add r0, r5, #0x2ec + add r1, r5, #0x348 + mov r2, #0x5c + bl MI_CpuCopy8 + mov r0, r5 + add r1, r4, #0x1f + mov r2, #0x0 + bl FUN_020A1F4C + add r0, r5, #0x348 + add r1, r5, #0x2ec + mov r2, #0x5c + bl MI_CpuCopy8 + mov r0, r5 + add r1, r4, #0xb + mov r2, #0x28 + bl FUN_020A1944 + mov r0, r5 + add r1, r4, #0x6 + bl FUN_020A19F4 + mov r2, #0x0 + add r1, r0, #0x6 + mov r0, r4 + mov r3, r2 + str r6, [sp, #0x0] + bl FUN_0209C1D4 + ldr r1, _020A10F0 ; =0x021C8EF4 + mov r0, r4 + ldr r1, [r1, #0x0] + blx r1 + add sp, sp, #0x8 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A10EC: .word 0x021C8EC8 +_020A10F0: .word 0x021C8EF4 + + arm_func_start FUN_020A10F4 +FUN_020A10F4: + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r9, r0 + ldr r7, [r9, #0xc] + ldr r4, [r7, #0x820] + cmp r4, #0x0 + ldrne r8, [r4, #0x0] + moveq r8, #0x0 + bl FUN_020A375C + mov r1, r0, lsr #0x18 + strb r1, [r7, #0x54] + mov r1, r0, lsr #0x10 + strb r1, [r7, #0x55] + mov r1, r0, lsr #0x8 + strb r1, [r7, #0x56] + strb r0, [r7, #0x57] + add r0, r7, #0x58 + mov r1, #0x1c + bl FUN_020A13E0 + ldr r1, _020A1360 ; =0x021C8EC8 + add r0, r8, #0x9d + ldr r1, [r1, #0x0] + blx r1 + movs r6, r0 + moveq r0, #0x9 + streqb r0, [r7, #0x455] + addeq sp, sp, #0x4 + moveq r0, #0x1 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + mov r0, #0x2 + add r5, r6, #0x5 + strb r0, [r6, #0x5] + mov r3, #0x0 + strb r3, [r5, #0x1] + strb r3, [r5, #0x2] + mov r0, #0x46 + strb r0, [r5, #0x3] + mov r0, #0x3 + strb r0, [r5, #0x4] + add r0, r7, #0x54 + add r1, r5, #0x6 + mov r2, #0x20 + strb r3, [r5, #0x5] + bl MI_CpuCopy8 + mov r2, #0x20 + strb r2, [r5, #0x26] + ldrb r0, [r7, #0x30] + cmp r0, #0x0 + beq _020A11D8 + add r0, r7, #0x74 + add r1, r5, #0x27 + bl MI_CpuCopy8 + mov r0, #0x1 + strb r0, [r7, #0x31] + add r5, r5, #0x47 + b _020A1238 +_020A11D8: + add r0, r5, #0x27 + mov r1, #0x1c + bl FUN_020A13E0 + ldr r0, _020A1364 ; =0x021CA6E4 + add r2, r5, #0x46 + ldr r3, [r0, #0x0] + add r1, r7, #0x74 + mov r0, r3, lsr #0x18 + strb r0, [r5, #0x43] + mov r0, r3, lsr #0x10 + strb r0, [r5, #0x44] + mov r0, r3, lsr #0x8 + strb r0, [r5, #0x45] + add r5, r5, #0x47 + sub r0, r5, #0x20 + strb r3, [r2, #0x0] + mov r2, #0x20 + bl MI_CpuCopy8 + ldr r0, _020A1364 ; =0x021CA6E4 + mov r1, #0x0 + ldr r2, [r0, #0x0] + add r2, r2, #0x1 + str r2, [r0, #0x0] + strb r1, [r7, #0x31] +_020A1238: + ldrh r2, [r7, #0x32] + mov r0, #0x0 + mov r2, r2, asr #0x8 + strb r2, [r5, #0x0] + ldrh r2, [r7, #0x32] + strb r2, [r5, #0x1] + strb r0, [r5, #0x2] + ldrb r0, [r7, #0x31] + add r5, r5, #0x3 + cmp r0, #0x0 + bne _020A12EC + cmp r8, #0x0 + beq _020A12D0 + mov r0, #0xb + add r2, r8, #0x6 + strb r0, [r5, #0x0] + mov r0, r2, asr #0x10 + strb r0, [r5, #0x1] + mov r0, r2, asr #0x8 + strb r0, [r5, #0x2] + add r1, r8, #0x3 + strb r2, [r5, #0x3] + mov r0, r1, asr #0x10 + strb r0, [r5, #0x4] + mov r0, r1, asr #0x8 + strb r0, [r5, #0x5] + strb r1, [r5, #0x6] + mov r0, r8, asr #0x10 + strb r0, [r5, #0x7] + mov r0, r8, asr #0x8 + strb r0, [r5, #0x8] + strb r8, [r5, #0x9] + add r5, r5, #0xa + ldr r0, [r4, #0x4] + mov r1, r5 + mov r2, r8 + bl MI_CpuCopy8 + add r5, r5, r8 +_020A12D0: + mov r0, #0xe + strb r0, [r5, #0x0] + mov r1, #0x0 + strb r1, [r5, #0x1] + strb r1, [r5, #0x2] + strb r1, [r5, #0x3] + add r5, r5, #0x4 +_020A12EC: + mov r0, #0x16 + sub r1, r5, r6 + sub r4, r1, #0x5 + strb r0, [r6, #0x0] + mov r0, #0x3 + strb r0, [r6, #0x1] + mov r0, #0x0 + strb r0, [r6, #0x2] + mov r0, r4, asr #0x8 + strb r0, [r6, #0x3] + mov r0, r7 + mov r2, r4 + add r1, r6, #0x5 + strb r4, [r6, #0x4] + bl FUN_020A1944 + mov r2, #0x0 + mov r0, r6 + mov r3, r2 + add r1, r4, #0x5 + str r9, [sp, #0x0] + bl FUN_0209C1D4 + ldr r1, _020A1368 ; =0x021C8EF4 + mov r0, r6 + ldr r1, [r1, #0x0] + blx r1 + ldrb r0, [r7, #0x31] + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_020A1360: .word 0x021C8EC8 +_020A1364: .word 0x021CA6E4 +_020A1368: .word 0x021C8EF4 + + arm_func_start FUN_020A136C +FUN_020A136C: + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x60 + mov r6, r0 + add r0, sp, #0x0 + mov r5, r1 + bl FUN_020A41CC + bl OS_DisableInterrupts + mov r4, r0 + ldr r1, _020A13D8 ; =0x021CA6E8 + add r0, sp, #0x0 + mov r2, #0x14 + bl FUN_020A410C + mov r1, r6 + mov r2, r5 + add r0, sp, #0x0 + bl FUN_020A410C + ldr r1, _020A13D8 ; =0x021CA6E8 + add r0, sp, #0x0 + bl FUN_020A4098 + mov r0, r4 + bl OS_RestoreInterrupts + ldr r0, _020A13DC ; =0x021CA6E0 + mov r1, #0x1 + strb r1, [r0, #0x0] + add sp, sp, #0x60 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A13D8: .word 0x021CA6E8 +_020A13DC: .word 0x021CA6E0 + + arm_func_start FUN_020A13E0 +FUN_020A13E0: ; 0x020A13E0 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x7c + ldr r2, _020A1518 ; =0x021CA6E0 + mov r10, r0 + ldrb r0, [r2, #0x0] + mov r9, r1 + cmp r0, #0x0 + bne _020A1448 + ldr r2, _020A151C ; =0x021C8F24 + add r0, sp, #0x4 + ldr r4, [r2, #0x8] + ldr r3, [r2, #0x0] + ldr r1, [r2, #0x4] + umull r6, r5, r4, r3 + mla r5, r4, r1, r5 + ldr r1, [r2, #0xc] + ldr r4, [r2, #0x10] + mla r5, r1, r3, r5 + adds r4, r4, r6 + ldr r3, [r2, #0x14] + mov r1, #0x4 + adc r3, r3, r5 + str r4, [r2, #0x0] + str r3, [r2, #0x4] + str r3, [sp, #0x4] + bl FUN_020A136C +_020A1448: + cmp r9, #0x0 + mov r7, #0x0 + addle sp, sp, #0x7c + mov r1, #0x14 + ldmleia sp!, {r4-r11,lr} + bxle lr + add r6, sp, #0x1c + mov r11, r1 + str r7, [sp, #0x0] + mov r5, #0x1 + mov r4, #0x13 +_020A1474: + cmp r1, #0x14 + bne _020A14EC + mov r0, r6 + bl FUN_020A41CC + bl OS_DisableInterrupts + mov r8, r0 + ldr r1, _020A1520 ; =0x021CA6E8 + mov r0, r6 + mov r2, r11 + bl FUN_020A410C + mov r0, r6 + add r1, sp, #0x8 + bl FUN_020A405C + ldr r2, _020A1524 ; =0x021CA6FB + mov r12, r5 + mov lr, r4 + add r3, sp, #0x1b +_020A14B8: + ldrb r1, [r2, #0x0] + ldrb r0, [r3], #-0x1 + subs lr, lr, #0x1 + add r0, r1, r0 + add r0, r12, r0 + strb r0, [r2, #0x0] + mov r12, r0, lsr #0x8 + sub r2, r2, #0x1 + bpl _020A14B8 + str r0, [sp, #0x4] + mov r0, r8 + bl OS_RestoreInterrupts + ldr r1, [sp, #0x0] +_020A14EC: + add r0, sp, #0x8 + ldrb r0, [r0, r1] + add r1, r1, #0x1 + cmp r0, #0x0 + strneb r0, [r10, r7] + addne r7, r7, #0x1 + cmp r7, r9 + blt _020A1474 + add sp, sp, #0x7c + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020A1518: .word 0x021CA6E0 +_020A151C: .word 0x021C8F24 +_020A1520: .word 0x021CA6E8 +_020A1524: .word 0x021CA6FB + + arm_func_start FUN_020A1528 +FUN_020A1528: ; 0x020A1528 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r5, r0 + ldr r4, [r5, #0xc] + add r6, sp, #0x0 +_020A153C: + mov r0, r6 + mov r1, r5 + bl FUN_0209C6C0 + ldr r1, [sp, #0x0] + cmp r1, #0x0 + moveq r0, #0x9 + addeq sp, sp, #0x8 + streqb r0, [r4, #0x455] + ldmeqia sp!, {r4-r6,lr} + bxeq lr + cmp r1, #0x5 + blo _020A153C + ldrb r1, [r0, #0x0] + cmp r1, #0x80 + bne _020A1634 + ldrb r1, [r4, #0x454] + cmp r1, #0x0 + beq _020A1628 + ldrb r1, [r4, #0x455] + cmp r1, #0x0 + bne _020A1628 + ldrb r2, [r0, #0x1] + mov r1, r5 + mov r0, #0x2 + str r2, [sp, #0x0] + bl FUN_0209C580 + ldr r1, _020A16DC ; =0x021C8EC8 + ldr r0, [sp, #0x0] + ldr r1, [r1, #0x0] + blx r1 + movs r6, r0 + moveq r0, #0x9 + addeq sp, sp, #0x8 + streqb r0, [r4, #0x455] + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r1, [sp, #0x0] + mov r2, r5 + bl FUN_020A1974 +_020A15D8: ; 0x020A15D8 + cmp r0, #0x0 + bne _020A15FC + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + bne _020A15FC + mov r0, r4 + add r1, r6, #0x1 + bl FUN_020A2774 + b _020A1604 +_020A15FC: + mov r0, #0x9 + strb r0, [r4, #0x455] +_020A1604: + ldr r2, [sp, #0x0] + mov r0, r4 + mov r1, r6 + bl FUN_020A1944 + ldr r1, _020A16E0 ; =0x021C8EF4 + mov r0, r6 + ldr r1, [r1, #0x0] + blx r1 + b _020A16CC +_020A1628: + mov r0, #0x9 + strb r0, [r4, #0x455] + b _020A16CC +_020A1634: + ldrb r2, [r0, #0x3] + ldrb r0, [r0, #0x4] + ldr r1, _020A16E4 ; =0x00004805 + add r0, r0, r2, lsl #0x8 + add r0, r0, #0x5 + str r0, [sp, #0x0] + cmp r0, r1 + movhi r0, #0x9 + addhi sp, sp, #0x8 + strhib r0, [r4, #0x455] + ldmhiia sp!, {r4-r6,lr} + bxhi lr + ldr r1, _020A16DC ; =0x021C8EC8 + ldr r1, [r1, #0x0] + blx r1 + movs r6, r0 + moveq r0, #0x9 + addeq sp, sp, #0x8 + streqb r0, [r4, #0x455] + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r1, [sp, #0x0] + mov r2, r5 + bl FUN_020A1974 +_020A1694: ; 0x020A1694 + cmp r0, #0x0 + beq _020A16C0 + ldr r1, _020A16E0 ; =0x021C8EF4 + mov r0, r6 + ldr r1, [r1, #0x0] + blx r1 + mov r0, #0x9 + add sp, sp, #0x8 + strb r0, [r4, #0x455] + ldmia sp!, {r4-r6,lr} + bx lr +_020A16C0: + mov r0, r4 + mov r1, r6 + bl FUN_020A16E8 +_020A16CC: + ldrb r0, [r4, #0x455] + add sp, sp, #0x8 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A16DC: .word 0x021C8EC8 +_020A16E0: .word 0x021C8EF4 +_020A16E4: .word 0x00004805 + + arm_func_start FUN_020A16E8 +FUN_020A16E8: ; 0x020A16E8 + stmdb sp!, {r4-r8,lr} + mov r8, r0 + ldrb r0, [r8, #0x455] + mov r7, r1 + cmp r0, #0x9 + bne _020A1718 + ldr r1, _020A1940 ; =0x021C8EF4 + mov r0, r7 + ldr r1, [r1, #0x0] + blx r1 + ldmia sp!, {r4-r8,lr} + bx lr +_020A1718: + ldrb r2, [r7, #0x3] + ldrb r1, [r7, #0x4] + add r0, r0, #0xf9 + and r0, r0, #0xff + add r1, r1, r2, lsl #0x8 + cmp r0, #0x1 + add r5, r1, #0x5 + ldrb r4, [r7, #0x0] + bhi _020A1744 + cmp r4, #0x15 + bne _020A1754 +_020A1744: + cmp r4, #0x15 + bne _020A1764 + cmp r5, #0x7 + bls _020A1764 +_020A1754: + mov r0, r8 + mov r1, r7 + bl FUN_020A1C08 + mov r5, r0 +_020A1764: + sub r0, r4, #0x14 + cmp r0, #0x3 + add r6, r7, #0x5 + sub r5, r5, #0x5 + addls pc, pc, r0, lsl #0x2 + b _020A1920 +_020A177C: ; 0x020A177C + b _020A178C +_020A1780: ; 0x020A1780 + b _020A17BC +_020A1784: ; 0x020A1784 + b _020A17D0 +_020A1788: ; 0x020A1788 + b _020A18FC +_020A178C: + ldr r0, [r8, #0x1d4] + cmp r0, #0x0 + moveq r0, #0x9 + streqb r0, [r8, #0x455] + beq _020A1928 + add r0, r8, #0x2e4 + mov r1, #0x0 + mov r2, #0x8 + bl MI_CpuFill8 + mov r0, #0x7 + strb r0, [r8, #0x455] + b _020A1928 +_020A17BC: + ldrb r0, [r6, #0x0] + cmp r0, #0x2 + moveq r0, #0x9 + streqb r0, [r8, #0x455] + b _020A1928 +_020A17D0: + ldrb r1, [r6, #0x1] + ldrb r0, [r6, #0x2] + ldrb r3, [r6, #0x0] + ldrb r2, [r6, #0x3] + mov r1, r1, lsl #0x10 + add r0, r1, r0, lsl #0x8 + cmp r3, #0xb + add r4, r2, r0 + add r6, r6, #0x4 + bgt _020A1824 + cmp r3, #0xb + bge _020A1898 + cmp r3, #0x2 + bgt _020A18C4 + cmp r3, #0x1 + blt _020A18C4 + cmp r3, #0x1 + beq _020A1850 + cmp r3, #0x2 + beq _020A1888 + b _020A18C4 +_020A1824: + cmp r3, #0x14 + bgt _020A18C4 + cmp r3, #0xe + blt _020A18C4 + cmp r3, #0xe + beq _020A18A8 + cmp r3, #0x10 + beq _020A1878 + cmp r3, #0x14 + beq _020A18B4 + b _020A18C4 +_020A1850: + ldrb r0, [r8, #0x454] + cmp r0, #0x0 + beq _020A18CC + ldrb r0, [r8, #0x455] + cmp r0, #0x0 + bne _020A18CC + mov r0, r8 + mov r1, r6 + bl FUN_020A26D0 + b _020A18CC +_020A1878: + mov r0, r8 + mov r1, r6 + bl FUN_020A211C + b _020A18CC +_020A1888: + mov r0, r8 + mov r1, r6 + bl FUN_020A2914 + b _020A18CC +_020A1898: + mov r0, r8 + mov r1, r6 + bl FUN_020A29DC + b _020A18CC +_020A18A8: + mov r0, #0x4 + strb r0, [r8, #0x455] + b _020A18CC +_020A18B4: + mov r0, r8 + mov r1, r6 + bl FUN_020A1E84 + b _020A18CC +_020A18C4: + mov r0, #0x9 + strb r0, [r8, #0x455] +_020A18CC: + mov r0, r8 + sub r1, r6, #0x4 + add r2, r4, #0x4 + bl FUN_020A1944 + add r0, r4, #0x4 + add r6, r6, r4 + subs r5, r5, r0 + beq _020A1928 + ldrb r0, [r8, #0x455] + cmp r0, #0x9 + bne _020A17D0 + b _020A1928 +_020A18FC: + str r7, [r8, #0x824] + mov r0, #0x5 + str r0, [r8, #0x82c] + add r0, r5, #0x5 + str r0, [r8, #0x828] + mov r0, #0x1 + strb r0, [r8, #0x456] + ldmia sp!, {r4-r8,lr} + bx lr +_020A1920: + mov r0, #0x9 + strb r0, [r8, #0x455] +_020A1928: + ldr r1, _020A1940 ; =0x021C8EF4 + mov r0, r7 + ldr r1, [r1, #0x0] + blx r1 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020A1940: .word 0x021C8EF4 + + arm_func_start FUN_020A1944 +FUN_020A1944: ; 0x020A1944 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + add r0, r6, #0x2ec + bl FUN_020A410C + mov r1, r5 + mov r2, r4 + add r0, r6, #0x3a4 + bl FUN_020A3ACC + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_020A1974 +FUN_020A1974: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + add r4, sp, #0x0 +_020A198C: + mov r0, r4 + mov r1, r5 + bl FUN_0209C6C0 + ldr r1, [sp, #0x0] + cmp r1, #0x0 + addeq sp, sp, #0x4 + mvneq r0, #0x0 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + cmp r1, r6 + strhi r6, [sp, #0x0] + ldr r2, [sp, #0x0] + mov r1, r7 + bl MI_CpuCopy8 +_020A19C4: ; 0x020A19C4 + ldr r0, [sp, #0x0] + mov r1, r5 + bl FUN_0209C580 +_020A19D0: ; 0x020A19D0 + ldr r0, [sp, #0x0] + sub r6, r6, r0 + cmp r6, #0x0 + add r7, r7, r0 + bgt _020A198C + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_020A19F4 +FUN_020A19F4: ; 0x020A19F4 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x30 + mov r5, r1 + mov r6, r0 + ldrh r0, [r6, #0x32] + ldrb r3, [r5, #0x3] + ldrb r2, [r5, #0x4] + add r1, r5, #0x5 + cmp r0, #0x4 + add r4, r2, r3, lsl #0x8 + add r8, r1, r4 + beq _020A1A30 + cmp r0, #0x5 + beq _020A1B04 + b _020A1BD4 +_020A1A30: + add r7, r6, #0x3fc + mov r0, r7 + bl FUN_020A3B8C + ldr r1, [r6, #0xbc] + mov r0, r7 + mov r2, #0x10 + bl FUN_020A3ACC +_020A1A4C: ; 0x020A1A4C + add r0, sp, #0x0 + mov r1, #0x36 + mov r2, #0x30 + bl MI_CpuFill8 + mov r0, r7 + add r1, sp, #0x0 + mov r2, #0x30 + bl FUN_020A3ACC + mov r0, r7 + add r1, r6, #0x1cc + mov r2, #0x8 + bl FUN_020A3ACC + mov r0, r7 + mov r1, r5 + mov r2, #0x1 + bl FUN_020A3ACC + mov r0, r7 + add r1, r5, #0x3 + add r2, r4, #0x2 + bl FUN_020A3ACC + mov r0, r7 + mov r1, r8 + bl FUN_020A3A58 + mov r0, r7 + bl FUN_020A3B8C + ldr r1, [r6, #0xbc] + mov r0, r7 + mov r2, #0x10 + bl FUN_020A3ACC +_020A1AC0: ; 0x020A1AC0 + add r0, sp, #0x0 + mov r1, #0x5c + mov r2, #0x30 + bl MI_CpuFill8 + mov r0, r7 + add r1, sp, #0x0 + mov r2, #0x30 + bl FUN_020A3ACC + mov r0, r7 + mov r1, r8 + mov r2, #0x10 + bl FUN_020A3ACC + mov r0, r7 + mov r1, r8 + bl FUN_020A3A58 + add r4, r4, #0x10 + b _020A1BD4 +_020A1B04: + add r7, r6, #0x348 + mov r0, r7 + bl FUN_020A41CC + ldr r1, [r6, #0xbc] + mov r0, r7 + mov r2, #0x14 + bl FUN_020A410C +_020A1B20: ; 0x020A1B20 + add r0, sp, #0x0 + mov r1, #0x36 + mov r2, #0x28 + bl MI_CpuFill8 + mov r0, r7 + add r1, sp, #0x0 + mov r2, #0x28 + bl FUN_020A410C + mov r0, r7 + add r1, r6, #0x1cc + mov r2, #0x8 + bl FUN_020A410C + mov r0, r7 + mov r1, r5 + mov r2, #0x1 + bl FUN_020A410C + mov r0, r7 + add r1, r5, #0x3 + add r2, r4, #0x2 + bl FUN_020A410C + mov r0, r7 + mov r1, r8 + bl FUN_020A4098 + mov r0, r7 + bl FUN_020A41CC + ldr r1, [r6, #0xbc] + mov r0, r7 + mov r2, #0x14 + bl FUN_020A410C +_020A1B94: ; 0x020A1B94 + add r0, sp, #0x0 + mov r1, #0x5c + mov r2, #0x28 + bl MI_CpuFill8 + mov r0, r7 + add r1, sp, #0x0 + mov r2, #0x28 + bl FUN_020A410C + mov r0, r7 + mov r1, r8 + mov r2, #0x14 + bl FUN_020A410C + mov r0, r7 + mov r1, r8 + bl FUN_020A4098 + add r4, r4, #0x14 +_020A1BD4: + mov r0, r4, asr #0x8 + strb r0, [r5, #0x3] + mov r2, r4 + add r0, r6, #0xc8 + add r1, r5, #0x5 + strb r4, [r5, #0x4] + bl FUN_020A49CC + add r0, r6, #0x1d4 + bl FUN_020A1E60 + add r0, r4, #0x5 + add sp, sp, #0x30 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_020A1C08 +FUN_020A1C08: ; 0x020A1C08 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x44 + mov r6, r1 + ldrb r3, [r6, #0x3] + ldrb r2, [r6, #0x4] + mov r7, r0 + add r1, r6, #0x5 + add r2, r2, r3, lsl #0x8 + bl FUN_020A1E44 + ldrh r1, [r7, #0x32] + mov r5, r0 + cmp r1, #0x4 + beq _020A1C48 + cmp r1, #0x5 + beq _020A1D2C + b _020A1E0C +_020A1C48: + sub r5, r5, #0x10 + mov r0, r5, asr #0x8 + strb r0, [r6, #0x3] + add r4, r7, #0x3fc + mov r0, r4 + strb r5, [r6, #0x4] + bl FUN_020A3B8C + ldr r1, [r7, #0x1d4] + mov r0, r4 + mov r2, #0x10 + bl FUN_020A3ACC + add r0, sp, #0x14 + mov r1, #0x36 + mov r2, #0x30 + bl MI_CpuFill8 + mov r0, r4 + add r1, sp, #0x14 + mov r2, #0x30 + bl FUN_020A3ACC + mov r0, r4 + add r1, r7, #0x2e4 + mov r2, #0x8 + bl FUN_020A3ACC + mov r0, r4 + mov r1, r6 + mov r2, #0x1 + bl FUN_020A3ACC + mov r0, r4 + add r1, r6, #0x3 + add r2, r5, #0x2 + bl FUN_020A3ACC + mov r0, r4 + add r1, sp, #0x0 + bl FUN_020A3A58 + mov r0, r4 + bl FUN_020A3B8C + ldr r1, [r7, #0x1d4] + mov r0, r4 + mov r2, #0x10 + bl FUN_020A3ACC + add r0, sp, #0x14 + mov r1, #0x5c + mov r2, #0x30 + bl MI_CpuFill8 + mov r0, r4 + add r1, sp, #0x14 + mov r2, #0x30 + bl FUN_020A3ACC + mov r0, r4 + add r1, sp, #0x0 + mov r2, #0x10 + bl FUN_020A3ACC + mov r0, r4 + add r1, sp, #0x0 + bl FUN_020A3A58 + mov r4, #0x10 + b _020A1E0C +_020A1D2C: + sub r5, r5, #0x14 + mov r0, r5, asr #0x8 + strb r0, [r6, #0x3] + add r4, r7, #0x348 + mov r0, r4 + strb r5, [r6, #0x4] + bl FUN_020A41CC + ldr r1, [r7, #0x1d4] + mov r0, r4 + mov r2, #0x14 + bl FUN_020A410C + add r0, sp, #0x14 + mov r1, #0x36 + mov r2, #0x28 + bl MI_CpuFill8 + mov r0, r4 + add r1, sp, #0x14 + mov r2, #0x28 + bl FUN_020A410C + mov r0, r4 + add r1, r7, #0x2e4 + mov r2, #0x8 + bl FUN_020A410C + mov r0, r4 + mov r1, r6 + mov r2, #0x1 + bl FUN_020A410C + mov r0, r4 + add r1, r6, #0x3 + add r2, r5, #0x2 + bl FUN_020A410C + mov r0, r4 + add r1, sp, #0x0 + bl FUN_020A4098 + mov r0, r4 + bl FUN_020A41CC + ldr r1, [r7, #0x1d4] + mov r0, r4 + mov r2, #0x14 + bl FUN_020A410C + add r0, sp, #0x14 + mov r1, #0x5c + mov r2, #0x28 + bl MI_CpuFill8 + mov r0, r4 + add r1, sp, #0x14 + mov r2, #0x28 + bl FUN_020A410C + mov r0, r4 + add r1, sp, #0x0 + mov r2, #0x14 + bl FUN_020A410C + mov r0, r4 + add r1, sp, #0x0 + bl FUN_020A4098 + mov r4, #0x14 +_020A1E0C: + add r0, r6, #0x5 + add r1, sp, #0x0 + mov r2, r4 + add r0, r0, r5 + bl memcmp +_020A1E20: ; 0x020A1E20 + cmp r0, #0x0 + movne r0, #0x9 + strneb r0, [r7, #0x455] + add r0, r7, #0x2ec + bl FUN_020A1E60 + add r0, r5, #0x5 + add sp, sp, #0x44 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_020A1E44 +FUN_020A1E44: ; 0x020A1E44 + stmdb sp!, {r4,lr} + add r0, r0, #0x1e0 + mov r4, r2 + bl FUN_020A49CC + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020A1E60 +FUN_020A1E60: ; 0x020A1E60 + mov r2, #0x8 +_020A1E64: + ldrb r1, [r0, #-0x1]! + add r1, r1, #0x1 + ands r1, r1, #0xff + strb r1, [r0, #0x0] + bxne lr + subs r2, r2, #0x1 + bne _020A1E64 + bx lr + + arm_func_start FUN_020A1E84 +FUN_020A1E84: ; 0x020A1E84 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x14 + mov r5, r0 + mov r4, r1 + add r0, r5, #0x3a4 + add r1, r5, #0x3fc + mov r2, #0x58 + bl MI_CpuCopy8 + add r1, sp, #0x0 + mov r0, r5 + mov r2, #0x1 + bl FUN_020A2034 + add r0, r5, #0x3fc + add r1, r5, #0x3a4 + mov r2, #0x58 + bl MI_CpuCopy8 + add r1, sp, #0x0 + mov r0, r4 + mov r2, #0x10 + bl memcmp +_020A1ED4: ; 0x020A1ED4 + cmp r0, #0x0 + movne r0, #0x9 + addne sp, sp, #0x14 + strneb r0, [r5, #0x455] + ldmneia sp!, {r4-r5,lr} + bxne lr + add r0, r5, #0x2ec + add r1, r5, #0x348 + mov r2, #0x5c + bl MI_CpuCopy8 + add r1, sp, #0x0 + mov r0, r5 + mov r2, #0x1 + bl FUN_020A1F4C + add r0, r5, #0x348 + add r1, r5, #0x2ec + mov r2, #0x5c + bl MI_CpuCopy8 + add r1, sp, #0x0 + add r0, r4, #0x10 + mov r2, #0x14 + bl memcmp +_020A1F2C: ; 0x020A1F2C + cmp r0, #0x0 + movne r0, #0x9 + strneb r0, [r5, #0x455] + moveq r0, #0x6 + streqb r0, [r5, #0x455] + add sp, sp, #0x14 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020A1F4C +FUN_020A1F4C: ; 0x020A1F4C + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x28 + mov r6, r0 + ldrb r0, [r6, #0x454] + mov r5, r1 + add r4, r6, #0x2ec + eors r0, r0, r2 + beq _020A1F80 + ldr r1, _020A202C ; =0x02106290 + mov r0, r4 + mov r2, #0x4 + bl FUN_020A410C + b _020A1F90 +_020A1F80: + ldr r1, _020A2030 ; =0x02106298 + mov r0, r4 + mov r2, #0x4 + bl FUN_020A410C +_020A1F90: + mov r0, r4 + mov r1, r6 + mov r2, #0x30 + bl FUN_020A410C +_020A1FA0: ; 0x020A1FA0 + add r0, sp, #0x0 + mov r1, #0x36 + mov r2, #0x28 + bl MI_CpuFill8 + add r1, sp, #0x0 + mov r0, r4 + mov r2, #0x28 + bl FUN_020A410C + mov r0, r4 + mov r1, r5 + bl FUN_020A4098 + mov r0, r4 + bl FUN_020A41CC + mov r1, r6 + mov r0, r4 + mov r2, #0x30 + bl FUN_020A410C +_020A1FE4: ; 0x020A1FE4 + add r0, sp, #0x0 + mov r1, #0x5c + mov r2, #0x28 + bl MI_CpuFill8 + mov r0, r4 + add r1, sp, #0x0 + mov r2, #0x28 + bl FUN_020A410C + mov r0, r4 + mov r1, r5 + mov r2, #0x14 + bl FUN_020A410C + mov r0, r4 + mov r1, r5 + bl FUN_020A4098 + add sp, sp, #0x28 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A202C: .word 0x02106290 +_020A2030: .word 0x02106298 + + arm_func_start FUN_020A2034 +FUN_020A2034: ; 0x020A2034 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x30 + mov r6, r0 + ldrb r0, [r6, #0x454] + mov r5, r1 + add r4, r6, #0x3a4 + eors r0, r0, r2 + beq _020A2068 + ldr r1, _020A2114 ; =0x02106290 + mov r0, r4 + mov r2, #0x4 + bl FUN_020A3ACC + b _020A2078 +_020A2068: + ldr r1, _020A2118 ; =0x02106298 + mov r0, r4 + mov r2, #0x4 + bl FUN_020A3ACC +_020A2078: + mov r0, r4 + mov r1, r6 + mov r2, #0x30 + bl FUN_020A3ACC +_020A2088: ; 0x020A2088 + add r0, sp, #0x0 + mov r1, #0x36 + mov r2, #0x30 + bl MI_CpuFill8 + add r1, sp, #0x0 + mov r0, r4 + mov r2, #0x30 + bl FUN_020A3ACC + mov r0, r4 + mov r1, r5 + bl FUN_020A3A58 + mov r0, r4 + bl FUN_020A3B8C + mov r1, r6 + mov r0, r4 + mov r2, #0x30 + bl FUN_020A3ACC +_020A20CC: ; 0x020A20CC + add r0, sp, #0x0 + mov r1, #0x5c + mov r2, #0x30 + bl MI_CpuFill8 + mov r0, r4 + add r1, sp, #0x0 + mov r2, #0x30 + bl FUN_020A3ACC + mov r0, r4 + mov r1, r5 + mov r2, #0x10 + bl FUN_020A3ACC + mov r0, r4 + mov r1, r5 + bl FUN_020A3A58 + add sp, sp, #0x30 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A2114: .word 0x02106290 +_020A2118: .word 0x02106298 + + arm_func_start FUN_020A211C +FUN_020A211C: ; 0x020A211C + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r2, [r4, #0x81c] + bl FUN_020A2470 + mov r0, r4 + bl FUN_020A2364 + mov r1, #0x0 + mov r0, r4 + mov r2, r1 + bl FUN_020A3808 + mov r0, r4 + bl FUN_020A215C + mov r0, #0x5 + strb r0, [r4, #0x455] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020A215C +FUN_020A215C: ; 0x020A215C + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x34 + mov r10, r0 + ldrh r0, [r10, #0x32] + cmp r0, #0x4 + beq _020A2190 + cmp r0, #0x5 + moveq r0, #0x14 + streq r0, [sp, #0x0] + moveq r0, #0x10 + streq r0, [sp, #0x4] + moveq r2, #0x0 + b _020A21A0 +_020A2190: + mov r0, #0x10 + str r0, [sp, #0x0] + str r0, [sp, #0x4] + mov r2, #0x0 +_020A21A0: + ldr r1, [sp, #0x0] + ldr r0, [sp, #0x4] + mov r9, #0x0 + add r0, r1, r0 + add r0, r2, r0 + mov r0, r0, lsl #0x1 + str r0, [sp, #0x8] + cmp r0, #0x0 + ble _020A22B8 + mov r0, #0x20 + str r0, [sp, #0x10] + mov r0, #0x14 + mov r6, r9 + add r5, sp, #0x18 + str r9, [sp, #0xc] + mov r4, #0x1 + mov r11, #0x30 + str r0, [sp, #0x14] +_020A21E8: + add r7, r10, #0x348 + mov r0, r7 + bl FUN_020A41CC + add r0, r9, #0x41 + strb r0, [sp, #0x18] + add r0, r9, #0x1 + ldr r8, [sp, #0xc] + cmp r0, #0x0 + ble _020A222C +_020A220C: + mov r0, r7 + mov r1, r5 + mov r2, r4 + bl FUN_020A410C + add r8, r8, #0x1 + add r0, r9, #0x1 + cmp r8, r0 + blt _020A220C +_020A222C: + mov r0, r7 + mov r1, r10 + mov r2, r11 + bl FUN_020A410C + ldr r2, [sp, #0x10] + mov r0, r7 + add r1, r10, #0x54 + bl FUN_020A410C + ldr r2, [sp, #0x10] + mov r0, r7 + add r1, r10, #0x34 + bl FUN_020A410C + mov r0, r7 + add r1, sp, #0x19 + bl FUN_020A4098 + add r7, r10, #0x3fc + mov r0, r7 + bl FUN_020A3B8C + mov r0, r7 + mov r1, r10 + mov r2, r11 + bl FUN_020A3ACC + ldr r2, [sp, #0x14] + mov r0, r7 + add r1, sp, #0x19 + bl FUN_020A3ACC + add r1, r10, #0x74 + mov r0, r7 + add r1, r1, r6 + bl FUN_020A3A58 + ldr r0, [sp, #0x8] + add r6, r6, #0x10 + cmp r6, r0 + add r9, r9, #0x1 + blt _020A21E8 +_020A22B8: + ldrb r0, [r10, #0x454] + cmp r0, #0x0 + beq _020A2300 + add r1, r10, #0x74 + str r1, [r10, #0x1d4] + ldr r0, [sp, #0x0] + ldr r2, [r10, #0x1d4] + add r1, r1, r0 + add r0, r2, r0, lsl #0x1 + str r0, [r10, #0x1d8] + str r1, [r10, #0xbc] + ldr r1, [r10, #0xbc] + ldr r0, [sp, #0x0] + add r1, r1, r0 + ldr r0, [sp, #0x4] + add r0, r1, r0 + str r0, [r10, #0xc0] + b _020A2338 +_020A2300: + add r1, r10, #0x74 + str r1, [r10, #0xbc] + ldr r0, [sp, #0x0] + ldr r2, [r10, #0xbc] + add r1, r1, r0 + add r0, r2, r0, lsl #0x1 + str r0, [r10, #0xc0] + str r1, [r10, #0x1d4] + ldr r1, [r10, #0x1d4] + ldr r0, [sp, #0x0] + add r1, r1, r0 + ldr r0, [sp, #0x4] + add r0, r1, r0 + str r0, [r10, #0x1d8] +_020A2338: + ldr r1, [r10, #0x1d8] + add r0, r10, #0x1e0 + mov r2, #0x10 + bl FUN_020A4A3C + ldr r1, [r10, #0xc0] + add r0, r10, #0xc8 + mov r2, #0x10 + bl FUN_020A4A3C + add sp, sp, #0x34 + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_020A2364 +FUN_020A2364: ; 0x020A2364 + stmdb sp!, {r4,lr} + sub sp, sp, #0x30 + mov r4, r0 + ldr r1, _020A23BC ; =0x021062A0 + add r0, sp, #0x0 + mov r2, r4 + bl FUN_020A23C8 + ldr r1, _020A23C0 ; =0x021062A4 + add r0, sp, #0x10 + mov r2, r4 + bl FUN_020A23C8 + ldr r1, _020A23C4 ; =0x021062A8 + add r0, sp, #0x20 + mov r2, r4 + bl FUN_020A23C8 +_020A23A0: ; 0x020A23A0 + add r0, sp, #0x0 + mov r1, r4 + mov r2, #0x30 + bl MI_CpuCopy8 + add sp, sp, #0x30 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A23BC: .word 0x021062A0 +_020A23C0: .word 0x021062A4 +_020A23C4: .word 0x021062A8 + + arm_func_start FUN_020A23C8 +FUN_020A23C8: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x14 + mov r5, r2 + add r4, r5, #0x348 + mov r7, r0 + mov r6, r1 + mov r0, r4 + bl FUN_020A41CC + mov r0, r6 + bl strlen + mov r2, r0 + mov r1, r6 + mov r0, r4 + bl FUN_020A410C + mov r0, r4 + mov r1, r5 + mov r2, #0x30 + bl FUN_020A410C + mov r0, r4 + add r1, r5, #0x34 + mov r2, #0x40 + bl FUN_020A410C + mov r0, r4 + add r1, sp, #0x0 + bl FUN_020A4098 + add r4, r5, #0x3fc + mov r0, r4 + bl FUN_020A3B8C + mov r1, r5 + mov r0, r4 + mov r2, #0x30 + bl FUN_020A3ACC + mov r0, r4 + add r1, sp, #0x0 + mov r2, #0x14 + bl FUN_020A3ACC + mov r0, r4 + mov r1, r7 + bl FUN_020A3A58 + add sp, sp, #0x14 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_020A2470 +FUN_020A2470: ; 0x020A2470 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x1c + movs r10, r2 + str r0, [sp, #0x8] + mov r11, r1 + addeq sp, sp, #0x1c + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldr r0, [r10, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x1c + ldmeqia sp!, {r4-r11,lr} + bxeq lr + mov r0, r0, lsl #0x1 + add r0, r0, r0, lsr #0x1f + mov r0, r0, asr #0x1 + add r9, r0, #0x1 + mov r0, #0x14 + mul r0, r9, r0 + ldr r1, _020A26C8 ; =0x021C8EC8 + ldr r1, [r1, #0x0] + blx r1 + movs r8, r0 + addeq sp, sp, #0x1c + ldmeqia sp!, {r4-r11,lr} + bxeq lr + add r7, r8, r9, lsl #0x1 + add r6, r7, r9, lsl #0x1 + add r1, r6, r9, lsl #0x1 + str r1, [sp, #0xc] + add r1, r1, r9, lsl #0x1 + add r5, r1, r9, lsl #0x1 + str r1, [sp, #0x10] + ldr r2, [r10, #0x0] + add r4, r5, r9, lsl #0x1 + mov r1, r11 + mov r3, r9 + add r11, r4, r9, lsl #0x1 + bl FUN_020A4B50 + ldr r1, [r10, #0x1c] + ldr r2, [r10, #0x18] + mov r0, r7 + mov r3, r9 + bl FUN_020A4B50 + ldr r1, [r10, #0xc] + ldr r2, [r10, #0x8] + mov r0, r5 + mov r3, r9 + bl FUN_020A4B50 + bl FUN_020A36EC + str r0, [sp, #0x14] + ldr r0, [sp, #0xc] + str r5, [sp, #0x0] + mov r1, r8 + mov r2, r7 + mov r3, r9 + bl FUN_020A4BB0 + ldr r1, [r10, #0x24] + ldr r2, [r10, #0x20] + mov r0, r7 + mov r3, r9 + bl FUN_020A4B50 + ldr r1, [r10, #0x14] + ldr r2, [r10, #0x10] + mov r0, r5 + mov r3, r9 + bl FUN_020A4B50 + ldr r0, [sp, #0x10] + mov r1, r8 + mov r2, r7 + mov r3, r9 + str r5, [sp, #0x0] + bl FUN_020A4BB0 + ldr r0, [sp, #0x14] + bl FUN_020A36B4 + ldr r1, [sp, #0xc] + ldr r2, [sp, #0x10] + mov r0, r8 + mov r3, r9 + bl FUN_020A57BC + ldr r1, [r10, #0x2c] + ldr r2, [r10, #0x28] + mov r0, r7 + mov r3, r9 + bl FUN_020A4B50 + mov r0, r6 + mov r1, r8 + mov r2, r7 + mov r3, r9 + bl FUN_020A5608 + ldr r1, [r10, #0x14] + ldr r2, [r10, #0x10] + mov r0, r7 + mov r3, r9 + bl FUN_020A4B50 + mov r0, r8 + mov r1, r6 + mov r2, r7 + mov r3, r9 + bl FUN_020A5608 + ldr r2, [sp, #0x10] + mov r0, r6 + mov r1, r8 + mov r3, r9 + bl FUN_020A5930 + ldr r1, [r10, #0x4] + ldr r2, [r10, #0x0] + mov r0, r7 + mov r3, r9 + bl FUN_020A4B50 + mov r0, r6 + mov r1, r9 + bl FUN_020A59DC +_020A2634: ; 0x020A2634 + cmp r0, #0x0 + bge _020A267C + mov r0, r6 + mov r1, r9 + bl FUN_020A5874 + str r9, [sp, #0x0] + mov r1, r6 + mov r2, r7 + mov r3, r4 + mov r0, #0x0 + str r11, [sp, #0x4] + bl FUN_020A5240 + mov r0, r4 + mov r1, r7 + mov r2, r4 + mov r3, r9 + bl FUN_020A57BC + b _020A2698 +_020A267C: + str r9, [sp, #0x0] + mov r1, r6 + mov r2, r7 + mov r3, r4 + mov r0, #0x0 + str r11, [sp, #0x4] + bl FUN_020A5240 +_020A2698: + ldr r0, [sp, #0x8] + mov r1, r4 + mov r3, r9 + mov r2, #0x30 + bl FUN_020A4B08 + ldr r1, _020A26CC ; =0x021C8EF4 + mov r0, r8 + ldr r1, [r1, #0x0] + blx r1 + add sp, sp, #0x1c + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020A26C8: .word 0x021C8EC8 +_020A26CC: .word 0x021C8EF4 + + arm_func_start FUN_020A26D0 +FUN_020A26D0: ; 0x020A26D0 + stmdb sp!, {r4-r6,lr} + mov r6, r1 + mov r4, r0 + ldrb r0, [r6, #0x0] + ldrb r1, [r6, #0x1] + bl FUN_020A284C +_020A26E8: ; 0x020A26E8 + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + add r0, r6, #0x2 + add r1, r4, #0x34 + mov r2, #0x20 + bl MI_CpuCopy8 + ldrb r5, [r6, #0x22] + add r6, r6, #0x23 + cmp r5, #0x20 + movne r0, #0x0 + strneb r0, [r4, #0x30] + bne _020A2734 + mov r0, r6 + add r1, r4, #0x74 + mov r2, #0x20 + bl MI_CpuCopy8 + mov r0, r4 + bl FUN_020A39B0 +_020A2734: + add r0, r6, r5 + ldrb r1, [r0, #0x1] + ldrb r3, [r6, r5] + add r0, r0, #0x2 + mov r2, #0x2 + add r1, r1, r3, lsl #0x8 + add r1, r1, r1, lsr #0x1f + mov r1, r1, asr #0x1 + bl FUN_020A285C + mov r0, r0, lsl #0x10 + movs r0, r0, lsr #0x10 + strh r0, [r4, #0x32] + movne r0, #0x1 + strneb r0, [r4, #0x455] + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_020A2774 +FUN_020A2774: ; 0x020A2774 + stmdb sp!, {r4-r6,lr} + mov r5, r1 + mov r6, r0 + ldrb r0, [r5, #0x0] + ldrb r1, [r5, #0x1] + bl FUN_020A284C +_020A278C: ; 0x020A278C + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldrb r2, [r5, #0x2] + ldrb r1, [r5, #0x3] + ldr r3, _020A2848 ; =0x55555556 + add r0, r5, #0x8 + add r4, r1, r2, lsl #0x8 + smull r2, r1, r3, r4 + add r1, r1, r4, lsr #0x1f + mov r2, #0x3 + bl FUN_020A285C + mov r0, r0, lsl #0x10 + movs r0, r0, lsr #0x10 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + strh r0, [r6, #0x32] + ldrb r12, [r5, #0x4] + ldrb r0, [r5, #0x5] + ldrb r3, [r5, #0x6] + ldrb r2, [r5, #0x7] + mov r1, #0x0 + add r12, r0, r12, lsl #0x8 + add r0, r4, #0x8 + add r4, r2, r3, lsl #0x8 + add r0, r0, r12 + strb r1, [r6, #0x30] + cmp r4, #0x20 + add r5, r5, r0 + blt _020A2818 + mov r0, r5 + add r1, r6, #0x34 + mov r2, #0x20 + bl MI_CpuCopy8 + b _020A2838 +_020A2818: + add r0, r6, #0x34 + rsb r2, r4, #0x20 + bl MI_CpuFill8 + add r1, r6, #0x54 + mov r0, r5 + mov r2, r4 + sub r1, r1, r4 + bl MI_CpuCopy8 +_020A2838: + mov r0, #0x1 + strb r0, [r6, #0x455] + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A2848: .word 0x55555556 + + arm_func_start FUN_020A284C +FUN_020A284C: + cmp r0, #0x3 + moveq r0, #0x1 + movne r0, #0x0 + bx lr + + arm_func_start FUN_020A285C +FUN_020A285C: ; 0x020A285C + stmdb sp!, {r4-r8,lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, #0x0 + ldr r4, _020A28BC ; =0x0210623C +_020A2874: + mov r0, r5, lsl #0x1 + ldrh r3, [r4, r0] + mov r0, r8 + mov r1, r7 + mov r2, r6 + bl FUN_020A28C0 +_020A288C: ; 0x020A288C + cmp r0, #0x0 + ldrne r0, _020A28BC ; =0x0210623C + movne r1, r5, lsl #0x1 + ldrneh r0, [r0, r1] + ldmneia sp!, {r4-r8,lr} + bxne lr + add r5, r5, #0x1 + cmp r5, #0x2 + blo _020A2874 + mov r0, #0x0 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020A28BC: .word 0x0210623C + + arm_func_start FUN_020A28C0 +FUN_020A28C0: + stmdb sp!, {r4,lr} + cmp r1, #0x0 + mov r4, #0x0 + ble _020A2908 +_020A28D0: + ldrb lr, [r0, #0x0] + ldrb r12, [r0, #0x1] + cmp r2, #0x3 + add lr, r12, lr, lsl #0x8 + ldreqb r12, [r0, #0x2] + addeq lr, r12, lr, lsl #0x8 + cmp lr, r3 + moveq r0, #0x1 + ldmeqia sp!, {r4,lr} + bxeq lr + add r4, r4, #0x1 + cmp r4, r1 + add r0, r0, r2 + blt _020A28D0 +_020A2908: + mov r0, #0x0 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020A2914 +FUN_020A2914: ; 0x020A2914 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r5, r1 + add r0, r5, #0x2 + add r1, r6, #0x54 + mov r2, #0x20 + bl MI_CpuCopy8 + add r0, r5, #0x22 + ldrb r7, [r6, #0x30] + add r5, r5, #0x23 + ldrb r4, [r0, #0x0] + cmp r7, #0x0 + beq _020A2974 + cmp r4, #0x20 + bne _020A2974 + mov r1, r5 + add r0, r6, #0x74 + mov r2, #0x20 + bl memcmp +_020A2964: ; 0x020A2964 + cmp r0, #0x0 + moveq r0, #0x1 + streqb r0, [r6, #0x31] + beq _020A29B4 +_020A2974: + cmp r7, #0x0 + beq _020A2984 + mov r0, r6 + bl FUN_020A3798 +_020A2984: + cmp r4, #0x0 + moveq r0, #0x0 + streqb r0, [r6, #0x30] + beq _020A29AC + mov r0, r5 + add r1, r6, #0x74 + mov r2, #0x20 + bl MI_CpuCopy8 + mov r0, #0x1 + strb r0, [r6, #0x30] +_020A29AC: + mov r0, #0x0 + strb r0, [r6, #0x31] +_020A29B4: + add r0, r5, r4 + ldrb r2, [r5, r4] + ldrb r1, [r0, #0x1] + mov r0, #0x2 + add r1, r1, r2, lsl #0x8 + strh r1, [r6, #0x32] + strb r0, [r6, #0x455] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_020A29DC +FUN_020A29DC: ; 0x020A29DC + stmdb sp!, {r0-r3} + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x24 + ldr r1, [sp, #0x4c] + mov r10, r0 + ldrb r4, [r1, #0x2] + ldrb r3, [r1, #0x0] + ldrb r2, [r1, #0x1] + add r0, r1, #0x3 + mvn r1, #0x0 + str r0, [sp, #0x4c] + add r2, r2, r3, lsl #0x8 + add r0, sp, #0x14 + str r1, [r10, #0x45c] + add r7, r4, r2, lsl #0x8 + bl RTC_GetDate + mov r8, #0x0 + ldr r0, [sp, #0x14] + ldr r2, [sp, #0x1c] + add r1, r0, #0x7d0 + ldr r0, [sp, #0x18] + mov r1, r1, lsl #0x10 + add r0, r1, r0, lsl #0x8 + add r0, r2, r0 + str r0, [r10, #0x80c] + strb r8, [r10, #0x6b0] + str r8, [r10, #0x5a0] + ldr r0, [r10, #0x5a0] + mov r6, r8 + str r0, [r10, #0x594] + add r0, r10, #0x7b0 + str r0, [sp, #0x4] + mov r0, #0x1 + str r8, [sp, #0x8] + mov r4, r8 + mov r11, #0x2 + str r0, [sp, #0xc] + mvn r5, #0x0 +_020A2A74: + ldr r1, [sp, #0x4c] + mov r0, r10 + ldrb r2, [r1, #0x2] + ldrb r12, [r1, #0x0] + ldrb r3, [r1, #0x1] + add r9, r1, #0x3 + add r1, sp, #0x4c + str r9, [sp, #0x4c] + str r5, [r10, #0x458] + strb r4, [r10, #0x5ad] + strb r4, [r10, #0x5ac] + strb r4, [r10, #0x5af] + strb r4, [r10, #0x6b0] + strb r4, [r10, #0x5b0] + strb r4, [r10, #0x7b0] + add r3, r3, r12, lsl #0x8 + ldr r9, [sp, #0x4c] + add r3, r2, r3, lsl #0x8 + add r2, r3, #0x3 + str r9, [r10, #0x804] + str r3, [r10, #0x808] + sub r7, r7, r2 + mov r2, r4 + mov r3, r4 + str r8, [sp, #0x0] + bl FUN_020A2F98 +_020A2ADC: ; 0x020A2ADC + cmp r0, #0x0 + bne _020A2AFC + ldr r0, [r10, #0x594] + cmp r0, #0x33 + blo _020A2AFC + ldr r0, [r10, #0x5a0] + cmp r0, #0x0 + bne _020A2B14 +_020A2AFC: + mov r0, #0x9 + add sp, sp, #0x24 + strb r0, [r10, #0x455] + ldmia sp!, {r4-r11,lr} + add sp, sp, #0x10 + bx lr +_020A2B14: + mov r0, r10 + bl FUN_020A2CBC + mov r8, r0 + cmp r6, #0x0 + bne _020A2B44 + ldr r0, [r10, #0x800] + cmp r0, #0x0 + beq _020A2B44 + ldr r1, [sp, #0x4] + bl FUN_020A2C18 +_020A2B3C: ; 0x020A2B3C + cmp r0, #0x0 + orrne r8, r8, #0x4000 +_020A2B44: + and r9, r8, #0xff + cmp r9, #0x1 + bne _020A2BB4 + cmp r7, #0x0 + beq _020A2BB4 + ldr r1, [sp, #0x4c] + ldr r2, [sp, #0x8] + add r1, r1, #0x3 + str r1, [sp, #0x10] + ldr r1, [sp, #0x8] + mov r0, r10 + strb r1, [r10, #0x5ad] + add r1, sp, #0x10 + mov r3, r2 + str r11, [sp, #0x0] + bl FUN_020A2F98 +_020A2B84: ; 0x020A2B84 + cmp r0, #0x0 + movne r0, #0x9 + addne sp, sp, #0x24 + strneb r0, [r10, #0x455] + ldmneia sp!, {r4-r11,lr} + addne sp, sp, #0x10 + bxne lr + mov r0, r10 + add r1, r10, #0x480 + bl FUN_020A2DBC + bic r1, r8, #0xff + orr r8, r1, r0 +_020A2BB4: + ldr r3, [r10, #0x810] + cmp r3, #0x0 + beq _020A2BD4 + mov r0, r8 + mov r1, r10 + mov r2, r6 + blx r3 + mov r8, r0 +_020A2BD4: + cmp r9, #0x0 + add r6, r6, #0x1 + beq _020A2BF4 + cmp r8, #0x0 + bne _020A2BF4 + cmp r7, #0x0 + ldrne r8, [sp, #0xc] + bne _020A2A74 +_020A2BF4: + cmp r8, #0x0 + moveq r0, #0x3 + streqb r0, [r10, #0x455] + movne r0, #0x9 + strneb r0, [r10, #0x455] + add sp, sp, #0x24 + ldmia sp!, {r4-r11,lr} + add sp, sp, #0x10 + bx lr + + arm_func_start FUN_020A2C18 +FUN_020A2C18: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + b _020A2C38 +_020A2C28: + cmp r1, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr +_020A2C38: + ldrsb r0, [r5], #0x1 + ldrsb r1, [r6], #0x1 + cmp r1, r0 + beq _020A2C28 + cmp r0, #0x2a + movne r0, #0x1 + ldmneia sp!, {r4-r6,lr} + bxne lr + sub r6, r6, #0x1 + mov r0, r6 + bl FUN_020A2C94 + mov r4, r0 + mov r0, r5 + bl FUN_020A2C94 + cmp r0, r4 + movgt r0, #0x1 + ldmgtia sp!, {r4-r6,lr} + bxgt lr + sub r0, r4, r0 + add r6, r6, r0 + b _020A2C38 +_020A2C8C: ; 0x020A2C8C + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_020A2C94 +FUN_020A2C94: ; 0x020A2C94 + mov r2, r0 + b _020A2CA0 +_020A2C9C: + add r0, r0, #0x1 +_020A2CA0: + ldrsb r1, [r0, #0x0] + cmp r1, #0x2e + beq _020A2CB4 + cmp r1, #0x0 + bne _020A2C9C +_020A2CB4: + sub r0, r0, r2 + bx lr + + arm_func_start FUN_020A2CBC +FUN_020A2CBC: ; 0x020A2CBC + stmdb sp!, {r4-r6,lr} + mov r5, r0 + ldrb r0, [r5, #0x5af] + ldr r1, [r5, #0x45c] + cmp r0, #0x0 + movne r4, #0x0 + moveq r4, #0x8000 + mvn r0, #0x0 + cmp r1, r0 + orreq r0, r4, #0x4 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r0, [r5, #0x458] + cmp r0, #0x3 + beq _020A2D04 + cmp r0, #0x4 + beq _020A2D40 + b _020A2D7C +_020A2D04: + add r6, r5, #0x3fc + mov r0, r6 + bl FUN_020A3B8C + ldr r1, [r5, #0x460] + ldr r2, [r5, #0x464] + mov r0, r6 + sub r2, r2, r1 + bl FUN_020A3ACC + ldr r1, _020A2DB8 ; =0x00000468 + mov r0, r6 + add r1, r5, r1 + bl FUN_020A3A58 + mov r0, #0x10 + str r0, [r5, #0x47c] + b _020A2D88 +_020A2D40: + add r6, r5, #0x348 + mov r0, r6 + bl FUN_020A41CC + ldr r1, [r5, #0x460] + ldr r2, [r5, #0x464] + mov r0, r6 + sub r2, r2, r1 + bl FUN_020A410C + ldr r1, _020A2DB8 ; =0x00000468 + mov r0, r6 + add r1, r5, r1 + bl FUN_020A4098 + mov r0, #0x14 + str r0, [r5, #0x47c] + b _020A2D88 +_020A2D7C: + orr r0, r4, #0x3 + ldmia sp!, {r4-r6,lr} + bx lr +_020A2D88: + mov r0, r5 + add r1, r5, #0x5b0 + bl FUN_020A3628 + movs r1, r0 + orreq r0, r4, #0x1 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + mov r0, r5 + bl FUN_020A2DBC +_020A2DAC: ; 0x020A2DAC + orr r0, r4, r0 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A2DB8: .word 0x00000468 + + arm_func_start FUN_020A2DBC +FUN_020A2DBC: + stmdb sp!, {r4-r10,lr} + sub sp, sp, #0x8 + mov r8, r0 + ldr r0, [r8, #0x5a4] + mov r7, r1 + cmp r0, #0x0 + beq _020A2E14 + ldr r0, [r8, #0x5a8] + cmp r0, #0x0 + beq _020A2E14 + ldr r0, [r7, #0x10] + cmp r0, #0x0 + beq _020A2E14 + ldr r0, [r7, #0xc] + cmp r0, #0x0 + beq _020A2E14 + ldr r0, [r7, #0x8] + cmp r0, #0x0 + beq _020A2E14 + ldr r0, [r7, #0x4] + cmp r0, #0x0 + bne _020A2E24 +_020A2E14: + add sp, sp, #0x8 + mov r0, #0x2 + ldmia sp!, {r4-r10,lr} + bx lr +_020A2E24: + mov r0, r0, lsl #0x1 + ldr r1, _020A2F8C ; =0x021C8EC8 + add r0, r0, r0, lsr #0x1f + mov r4, r0, asr #0x1 + ldr r1, [r1, #0x0] + mov r0, r4, lsl #0x3 + blx r1 + movs r6, r0 + addeq sp, sp, #0x8 + moveq r0, #0x2 + ldmeqia sp!, {r4-r10,lr} + bxeq lr + add r5, r6, r4, lsl #0x1 + add r10, r5, r4, lsl #0x1 + ldr r1, [r8, #0x5a4] + ldr r2, [r8, #0x5a8] + mov r0, r5 + mov r3, r4 + add r9, r10, r4, lsl #0x1 + bl FUN_020A4B50 + ldr r1, [r7, #0x10] + ldr r2, [r7, #0xc] + mov r0, r10 + mov r3, r4 + bl FUN_020A4B50 + mov r0, r9 + ldr r1, [r7, #0x8] + ldr r2, [r7, #0x4] + mov r3, r4 + bl FUN_020A4B50 + bl FUN_020A36EC + str r9, [sp, #0x0] + mov r2, r10 + mov r9, r0 + mov r0, r6 + mov r1, r5 + mov r3, r4 + bl FUN_020A507C + mov r0, r9 + bl FUN_020A36B4 + mov r0, r5 + mov r1, r6 + ldr r2, [r7, #0x4] + mov r3, r4 + bl FUN_020A4B08 + ldrb r0, [r6, r4, lsl #0x1] + mov r4, #0x0 + cmp r0, #0x0 + bne _020A2EF4 + ldrb r0, [r5, #0x1] + cmp r0, #0x1 + beq _020A2EFC +_020A2EF4: + mov r4, #0x2 + b _020A2F6C +_020A2EFC: + ldr r3, [r7, #0x4] + mov r2, #0x2 + cmp r3, #0x2 + ble _020A2F24 +_020A2F0C: + ldrb r0, [r5, r2] + cmp r0, #0xff + bne _020A2F24 + add r2, r2, #0x1 + cmp r2, r3 + blt _020A2F0C +_020A2F24: + add r1, r2, #0x1 + cmp r1, r3 + bge _020A2F68 + ldrb r0, [r5, r2] + cmp r0, #0x0 + bne _020A2F68 + ldrb r0, [r5, r1] + cmp r0, #0x30 + bne _020A2F68 + ldr r0, _020A2F90 ; =0x00000468 + ldr r2, [r8, #0x47c] + add r1, r5, r3 + add r0, r8, r0 + sub r1, r1, r2 + bl memcmp +_020A2F60: ; 0x020A2F60 + cmp r0, #0x0 + beq _020A2F6C +_020A2F68: + mov r4, #0x2 +_020A2F6C: + ldr r1, _020A2F94 ; =0x021C8EF4 + mov r0, r6 + ldr r1, [r1, #0x0] + blx r1 + mov r0, r4 + add sp, sp, #0x8 + ldmia sp!, {r4-r10,lr} + bx lr + .balign 4 +_020A2F8C: .word 0x021C8EC8 +_020A2F90: .word 0x00000468 +_020A2F94: .word 0x021C8EF4 + + arm_func_start FUN_020A2F98 +FUN_020A2F98: + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + str r1, [sp, #0x4] + ldr r1, [r1, #0x0] + mov r9, r0 + str r1, [sp, #0x8] + add r0, r1, #0x1 + str r0, [sp, #0x8] + add r0, sp, #0x8 + mov r5, r2 + mov r4, r3 + ldr r8, [sp, #0x30] + ldrb r6, [r1, #0x0] + bl FUN_020A35D8 + movs r7, r0 + bmi _020A2FE0 + cmp r7, #0x7d0 + ble _020A2FF0 +_020A2FE0: + add sp, sp, #0xc + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020A2FF0: + and r1, r6, #0x1f + cmp r1, #0x18 + addls pc, pc, r1, lsl #0x2 + b _020A3430 +_020A3000: + b _020A3430 +_020A3004: + b _020A3430 +_020A3008: + b _020A3064 +_020A300C: + b _020A315C +_020A3010: + b _020A3430 +_020A3014: + b _020A3430 +_020A3018: + b _020A31DC +_020A301C: + b _020A3430 +_020A3020: + b _020A3430 +_020A3024: + b _020A3430 +_020A3028: + b _020A3430 +_020A302C: + b _020A3430 +_020A3030: + b _020A3274 +_020A3034: + b _020A3430 +_020A3038: + b _020A3430 +_020A303C: + b _020A3430 +_020A3040: + b _020A3348 +_020A3044: + b _020A33D8 +_020A3048: + b _020A3430 +_020A304C: + b _020A3274 +_020A3050: + b _020A3274 +_020A3054: + b _020A3430 +_020A3058: + b _020A3274 +_020A305C: + b _020A32F4 +_020A3060: + b _020A32F4 +_020A3064: + ldrb r0, [r9, #0x5ad] + cmp r0, #0x0 + beq _020A314C + cmp r4, #0x0 + bne _020A30E0 + ldr r0, [sp, #0x8] + ldrb r1, [r0, #0x0] + cmp r1, #0x0 + bne _020A30A4 +_020A3088: + ldr r1, [sp, #0x8] + sub r7, r7, #0x1 + add r0, r1, #0x1 + str r0, [sp, #0x8] + ldrb r1, [r1, #0x1] + cmp r1, #0x0 + beq _020A3088 +_020A30A4: + cmp r8, #0x0 + beq _020A30C0 + cmp r8, #0x2 + streq r7, [r9, #0x484] + ldreq r0, [sp, #0x8] + streq r0, [r9, #0x488] + b _020A314C +_020A30C0: + cmp r7, #0x100 + bgt _020A314C + ldr r1, _020A34B8 ; =0x00000494 + mov r2, r7 + add r1, r9, r1 + bl MI_CpuCopy8 + str r7, [r9, #0x594] + b _020A314C +_020A30E0: + cmp r4, #0x1 + bne _020A314C + ldr r0, [sp, #0x8] + ldrb r1, [r0, #0x0] + cmp r1, #0x0 + bne _020A3114 +_020A30F8: + ldr r1, [sp, #0x8] + sub r7, r7, #0x1 + add r0, r1, #0x1 + str r0, [sp, #0x8] + ldrb r1, [r1, #0x1] + cmp r1, #0x0 + beq _020A30F8 +_020A3114: + cmp r8, #0x0 + beq _020A3130 + cmp r8, #0x2 + streq r7, [r9, #0x48c] + ldreq r0, [sp, #0x8] + streq r0, [r9, #0x490] + b _020A314C +_020A3130: + cmp r7, #0x8 + bgt _020A314C + ldr r1, _020A34BC ; =0x00000598 + mov r2, r7 + add r1, r9, r1 + bl MI_CpuCopy8 + str r7, [r9, #0x5a0] +_020A314C: + ldr r0, [sp, #0x8] + add r0, r0, r7 + str r0, [sp, #0x8] + b _020A349C +_020A315C: + cmp r5, #0x1 + bne _020A317C + cmp r8, #0x2 + ldrne r1, [sp, #0x8] + subne r0, r7, #0x1 + addne r1, r1, #0x1 + strne r1, [r9, #0x5a4] + strne r0, [r9, #0x5a8] +_020A317C: + ldrb r0, [r9, #0x5ad] + cmp r0, #0x0 + beq _020A31CC + ldr r0, [sp, #0x8] + add r1, sp, #0x8 + add r0, r0, #0x1 + str r0, [sp, #0x8] + mov r0, r9 + mov r2, r5 + mov r3, #0x0 + str r8, [sp, #0x0] + bl FUN_020A2F98 +_020A31AC: ; 0x020A31AC + cmp r0, #0x0 + addne sp, sp, #0xc + movne r0, #0x1 + ldmneia sp!, {r4-r11,lr} + bxne lr + mov r0, #0x0 + strb r0, [r9, #0x5ad] + b _020A349C +_020A31CC: + ldr r0, [sp, #0x8] + add r0, r0, r7 + str r0, [sp, #0x8] + b _020A349C +_020A31DC: + ldr r5, [sp, #0x8] + mov r6, #0x0 + ldr sl, _020A34C0 ; =0x02106278 +_020A31E8: + ldr r4, [r10, r6, lsl #0x2] + mov r0, r4 + bl strlen + mov r2, r0 + mov r0, r5 + mov r1, r4 + bl memcmp +_020A3204: ; 0x020A3204 + cmp r0, #0x0 + bne _020A3258 + cmp r6, #0x5 + addls pc, pc, r6, lsl #0x2 + b _020A3264 +_020A3218: ; 0x020A3218 + b _020A3264 +_020A321C: ; 0x020A321C + b _020A3230 +_020A3220: ; 0x020A3220 + b _020A3230 +_020A3224: ; 0x020A3224 + b _020A3240 +_020A3228: ; 0x020A3228 + b _020A3240 +_020A322C: ; 0x020A322C + b _020A324C +_020A3230: + cmp r8, #0x0 + streq r6, [r9, #0x45c] + strb r6, [r9, #0x5ad] + b _020A3264 +_020A3240: + cmp r8, #0x2 + strne r6, [r9, #0x458] + b _020A3264 +_020A324C: + cmp r8, #0x2 + strneb r6, [r9, #0x5ae] + b _020A3264 +_020A3258: + add r6, r6, #0x1 + cmp r6, #0x6 + blt _020A31E8 +_020A3264: + ldr r0, [sp, #0x8] + add r0, r0, r7 + str r0, [sp, #0x8] + b _020A349C +_020A3274: + cmp r8, #0x2 + beq _020A32DC + ldrb r0, [r9, #0x5ac] + cmp r0, #0x0 + beq _020A32CC + ldr r1, [sp, #0x8] + mov r2, r7 + add r0, r9, #0x6b0 + bl FUN_020A3554 + ldrb r0, [r9, #0x5ae] + cmp r0, #0x5 + bne _020A32DC + cmp r7, #0x4f + bgt _020A32DC + ldr r0, [sp, #0x8] + mov r2, r7 + add r1, r9, #0x7b0 + bl MI_CpuCopy8 + add r0, r9, r7 + mov r1, #0x0 + strb r1, [r0, #0x7b0] + b _020A32DC +_020A32CC: + ldr r1, [sp, #0x8] + mov r2, r7 + add r0, r9, #0x5b0 + bl FUN_020A3554 +_020A32DC: + mov r0, #0x0 + strb r0, [r9, #0x5ae] + ldr r0, [sp, #0x8] + add r0, r0, r7 + str r0, [sp, #0x8] + b _020A349C +_020A32F4: + cmp r8, #0x2 + beq _020A3330 + ldr r0, [sp, #0x8] + bl FUN_020A34C4 +_020A3304: ; 0x020A3304 + cmp r4, #0x0 + bne _020A3320 + ldr r1, [r9, #0x80c] + cmp r1, r0 + movcs r0, #0x1 + strcsb r0, [r9, #0x5af] + b _020A3330 +_020A3320: + ldr r1, [r9, #0x80c] + cmp r1, r0 + movhi r0, #0x0 + strhib r0, [r9, #0x5af] +_020A3330: + ldr r1, [sp, #0x8] + mov r0, #0x1 + add r1, r1, r7 + str r1, [sp, #0x8] + strb r0, [r9, #0x5ac] + b _020A349C +_020A3348: + cmp r5, #0x0 + bne _020A3364 + cmp r4, #0x0 + bne _020A3364 + cmp r8, #0x2 + ldrne r0, [sp, #0x8] + strne r0, [r9, #0x460] +_020A3364: + ldr r0, [sp, #0x8] + mov r10, #0x0 + add r7, r0, r7 + cmp r0, r7 + bhs _020A33BC + add r11, sp, #0x8 + add r6, r5, #0x1 +_020A3380: + mov r0, r9 + mov r1, r11 + mov r2, r6 + mov r3, r10 + str r8, [sp, #0x0] + bl FUN_020A2F98 +_020A3398: ; 0x020A3398 + cmp r0, #0x0 + add r10, r10, #0x1 + addne sp, sp, #0xc + movne r0, #0x1 + ldmneia sp!, {r4-r11,lr} + bxne lr + ldr r0, [sp, #0x8] + cmp r0, r7 + blo _020A3380 +_020A33BC: + cmp r5, #0x1 + bne _020A349C + cmp r4, #0x0 + bne _020A349C + cmp r8, #0x2 + strne r0, [r9, #0x464] + b _020A349C +_020A33D8: + ldr r0, [sp, #0x8] + add r6, r0, r7 + cmp r0, r6 + bhs _020A349C + add r7, r5, #0x1 + add r4, sp, #0x8 + mov r5, #0x0 +_020A33F4: + mov r0, r9 + mov r1, r4 + mov r2, r7 + mov r3, r5 + str r8, [sp, #0x0] + bl FUN_020A2F98 +_020A340C: ; 0x020A340C + cmp r0, #0x0 + addne sp, sp, #0xc + movne r0, #0x1 + ldmneia sp!, {r4-r11,lr} + bxne lr + ldr r0, [sp, #0x8] + cmp r0, r6 + blo _020A33F4 + b _020A349C +_020A3430: + cmp r6, #0xa0 + bne _020A3490 + ldr r0, [sp, #0x8] + add r6, r0, r7 + cmp r0, r6 + bhs _020A349C + add r7, r5, #0x1 + add r4, sp, #0x8 + mov r5, #0x0 +_020A3454: + mov r0, r9 + mov r1, r4 + mov r2, r7 + mov r3, r5 + str r8, [sp, #0x0] + bl FUN_020A2F98 +_020A346C: ; 0x020A346C + cmp r0, #0x0 + addne sp, sp, #0xc + movne r0, #0x1 + ldmneia sp!, {r4-r11,lr} + bxne lr + ldr r0, [sp, #0x8] + cmp r0, r6 + blo _020A3454 + b _020A349C +_020A3490: + ldr r0, [sp, #0x8] + add r0, r0, r7 + str r0, [sp, #0x8] +_020A349C: + ldr r2, [sp, #0x8] + ldr r1, [sp, #0x4] + mov r0, #0x0 + str r2, [r1, #0x0] + add sp, sp, #0xc + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020A34B8: .word 0x00000494 +_020A34BC: .word 0x00000598 +_020A34C0: .word 0x02106278 + + arm_func_start FUN_020A34C4 +FUN_020A34C4: + stmdb sp!, {r4,lr} + ldrb r12, [r0, #0x1] + ldrb r3, [r0, #0x0] + mov r2, #0xa + cmp r1, #0x17 + mla r1, r3, r2, r12 + sub lr, r1, #0x210 + add r0, r0, #0x2 + bne _020A34FC + cmp lr, #0x32 + ldrhs r1, _020A3550 ; =0x0000076C + addcc r4, lr, #0x7d0 + addcs r4, lr, r1 + b _020A3518 +_020A34FC: + ldrb r12, [r0, #0x1] + ldrb r3, [r0, #0x0] + mov r1, #0x64 + add r0, r0, #0x2 + mla r2, r3, r2, r12 + sub r2, r2, #0x210 + mla r4, lr, r1, r2 +_020A3518: + ldrb r12, [r0, #0x1] + ldrb r3, [r0, #0x0] + mov r1, #0xa + ldrb r2, [r0, #0x3] + ldrb r0, [r0, #0x2] + mla r12, r3, r1, r12 + mla r1, r0, r1, r2 + mov r2, r4, lsl #0x10 + sub r0, r12, #0x210 + add r2, r2, r0, lsl #0x8 + sub r0, r1, #0x210 + add r0, r2, r0 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A3550: .word 0x0000076C + + arm_func_start FUN_020A3554 +FUN_020A3554: + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrsb r3, [r0, #0x0] + mov lr, r0 + cmp r3, #0x0 + beq _020A35AC +_020A356C: + ldrsb r3, [r0, #0x1]! + cmp r3, #0x0 + bne _020A356C + sub r3, r0, lr + cmp r3, #0xff + addge sp, sp, #0x4 + ldmgeia sp!, {lr} + bxge lr + mov r3, #0x2c + strb r3, [r0, #0x0] + mov r3, #0x20 + strb r3, [r0, #0x1] + add r0, r0, #0x2 + b _020A35AC +_020A35A4: + ldrsb r3, [r1], #0x1 + strb r3, [r0], #0x1 +_020A35AC: + cmp r2, #0x0 + sub r2, r2, #0x1 + beq _020A35C4 + sub r3, r0, lr + cmp r3, #0xff + blt _020A35A4 +_020A35C4: + mov r1, #0x0 + strb r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_020A35D8 +FUN_020A35D8: ; 0x020A35D8 + ldr r1, [r0, #0x0] + ldrb r3, [r1, #0x0] + add r12, r1, #0x1 + ands r1, r3, #0x80 + beq _020A361C + ands r1, r3, #0x7f + sub r2, r1, #0x1 + mov r3, #0x0 + beq _020A361C +_020A35FC: + ands r1, r3, #0xff000000 + mvnne r0, #0x0 + bxne lr + ldrb r1, [r12], #0x1 + cmp r2, #0x0 + sub r2, r2, #0x1 + add r3, r1, r3, lsl #0x8 + bne _020A35FC +_020A361C: + str r12, [r0, #0x0] + mov r0, r3 + bx lr + + arm_func_start FUN_020A3628 +FUN_020A3628: ; 0x020A3628 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r4, [r0, #0x818] + mov r7, r1 + cmp r4, #0x0 + mov r6, #0x0 + ble _020A3678 + ldr r5, [r0, #0x814] +_020A3648: + ldr r0, [r5, r6, lsl #0x2] + mov r1, r7 + ldr r0, [r0, #0x0] + bl strcmp +_020A3658: ; 0x020A3658 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldreq r0, [r5, r6, lsl #0x2] + ldmeqia sp!, {r4-r7,lr} + bxeq lr + add r6, r6, #0x1 + cmp r6, r4 + blt _020A3648 +_020A3678: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_020A3688 +FUN_020A3688: ; 0x020A3688 + ldr r2, _020A36B0 ; =0x021D3498 + ldr r2, [r2, #0x4] + ldr r2, [r2, #0xa4] + cmp r2, #0x0 + bxeq lr + ldr r2, [r2, #0xc] + cmp r2, #0x0 + strne r0, [r2, #0x814] + strne r1, [r2, #0x818] + bx lr + .balign 4 +_020A36B0: .word 0x021D3498 + + arm_func_start FUN_020A36B4 +FUN_020A36B4: ; 0x020A36B4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r1, r0 + cmp r1, #0x20 + addcs sp, sp, #0x4 + ldmcsia sp!, {lr} + bxcs lr + ldr r0, _020A36E8 ; =0x021D3498 + ldr r0, [r0, #0x4] + bl OS_SetThreadPriority + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A36E8: .word 0x021D3498 + + arm_func_start FUN_020A36EC +FUN_020A36EC: ; 0x020A36EC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, _020A3744 ; =0x02106244 + ldr r0, [r0, #0x0] + cmp r0, #0x20 + addcs sp, sp, #0x4 + mvncs r0, #0x0 + ldmcsia sp!, {r4-r5,lr} + bxcs lr + ldr r0, _020A3748 ; =0x021D3498 + ldr r5, [r0, #0x4] + mov r0, r5 + bl OS_GetThreadPriority + ldr r1, _020A3744 ; =0x02106244 + mov r4, r0 + ldr r1, [r1, #0x0] + mov r0, r5 + bl OS_SetThreadPriority + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020A3744: .word 0x02106244 +_020A3748: .word 0x021D3498 + + arm_func_start FUN_020A374C +FUN_020A374C: ; 0x020A374C + ldr r1, _020A3758 ; =0x02106244 + str r0, [r1, #0x0] + bx lr + .balign 4 +_020A3758: .word 0x02106244 + + arm_func_start FUN_020A375C +FUN_020A375C: ; 0x020A375C + stmdb sp!, {lr} + sub sp, sp, #0x1c + add r0, sp, #0x0 + bl RTC_GetDate + add r0, sp, #0x10 + bl RTC_GetTime +_020A3774: ; 0x020A3774 + add r0, sp, #0x0 + add r1, sp, #0x10 + bl RTC_ConvertDateTimeToSecond + ldr r1, _020A3794 ; =0x386D4380 + add r0, r0, r1 + add sp, sp, #0x1c + ldmia sp!, {lr} + bx lr + .balign 4 +_020A3794: .word 0x386D4380 + + arm_func_start FUN_020A3798 +FUN_020A3798: + stmdb sp!, {r4-r8,lr} + mov r4, r0 + bl OS_DisableInterrupts + ldr r6, _020A3804 ; =0x021CA6FC + mov r7, r0 + mov r8, #0x0 + add r5, r4, #0x74 + mov r4, #0x20 +_020A37B8: + ldrb r0, [r6, #0x5a] + cmp r0, #0x0 + beq _020A37E4 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl memcmp +_020A37D4: ; 0x020A37D4 + cmp r0, #0x0 + moveq r0, #0x0 + streqb r0, [r6, #0x5a] + beq _020A37F4 +_020A37E4: + add r8, r8, #0x1 + cmp r8, #0x4 + add r6, r6, #0x5c + blt _020A37B8 +_020A37F4: + mov r0, r7 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020A3804: .word 0x021CA6FC + + arm_func_start FUN_020A3808 +FUN_020A3808: ; 0x020A3808 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r9, r0 + mov r8, r1 + mov r7, r2 + bl OS_DisableInterrupts + mov r5, r0 + bl OS_GetTick + ldr r6, _020A3904 ; =0x021CA6FC + mov r4, r0, lsr #0x10 + mov r3, #0x0 + mov r12, r3 + mov r2, r6 + orr r4, r4, r1, lsl #0x10 + mvn r0, #0x0 +_020A3844: + ldrb r1, [r2, #0x5a] + cmp r1, #0x0 + beq _020A387C + cmp r8, #0x0 + beq _020A387C + ldr lr, [r2, #0x54] + cmp r8, lr + bne _020A387C + cmp r7, #0x0 + beq _020A387C + ldrh lr, [r2, #0x58] + cmp r7, lr + moveq r6, r2 + beq _020A38BC +_020A387C: + mvn lr, #0x0 + cmp r3, lr + beq _020A38AC + cmp r1, #0x0 + moveq r3, r0 + moveq r6, r2 + beq _020A38AC + ldr r1, [r2, #0x50] + sub r1, r4, r1 + cmp r1, r3 + movhi r3, r1 + movhi r6, r2 +_020A38AC: + add r12, r12, #0x1 + cmp r12, #0x4 + add r2, r2, #0x5c + blt _020A3844 +_020A38BC: + mov r1, r6 + add r0, r9, #0x74 + mov r2, #0x20 + bl MI_CpuCopy8 + mov r0, r9 + add r1, r6, #0x20 + mov r2, #0x30 + bl MI_CpuCopy8 + str r4, [r6, #0x50] + mov r0, #0x1 + strb r0, [r6, #0x5a] + str r8, [r6, #0x54] + mov r0, r5 + strh r7, [r6, #0x58] + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_020A3904: .word 0x021CA6FC + + arm_func_start FUN_020A3908 +FUN_020A3908: ; 0x020A3908 + stmdb sp!, {r4-r8,lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + bl OS_DisableInterrupts + mov r1, #0x0 + ldr r4, _020A39AC ; =0x021CA6FC + mov r5, r0 + strb r1, [r8, #0x30] +_020A392C: + ldrb r0, [r4, #0x5a] + cmp r0, #0x0 + beq _020A398C + ldr r0, [r4, #0x54] + cmp r0, r7 + bne _020A398C + ldrh r0, [r4, #0x58] + cmp r0, r6 + bne _020A398C + mov r0, r4 + add r1, r8, #0x74 + mov r2, #0x20 + bl MI_CpuCopy8 + mov r1, r8 + add r0, r4, #0x20 + mov r2, #0x30 + bl MI_CpuCopy8 + bl OS_GetTick + mov r0, r0, lsr #0x10 + orr r0, r0, r1, lsl #0x10 + str r0, [r4, #0x50] + mov r0, #0x1 + strb r0, [r8, #0x30] + b _020A399C +_020A398C: + add r1, r1, #0x1 + cmp r1, #0x4 + add r4, r4, #0x5c + blt _020A392C +_020A399C: + mov r0, r5 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020A39AC: .word 0x021CA6FC + + arm_func_start FUN_020A39B0 +FUN_020A39B0: ; 0x020A39B0 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r7, r0 + bl OS_DisableInterrupts + mov r6, #0x0 + ldr r4, _020A3A54 ; =0x021CA6FC + mov r5, r0 + strb r6, [r7, #0x30] + add r9, r7, #0x74 + mov r8, #0x20 +_020A39D8: + ldrb r0, [r4, #0x5a] + cmp r0, #0x0 + beq _020A3A30 + ldr r0, [r4, #0x54] + cmp r0, #0x0 + bne _020A3A30 + ldrh r0, [r4, #0x58] + cmp r0, #0x0 + bne _020A3A30 + mov r0, r4 + mov r1, r9 + mov r2, r8 + bl memcmp +_020A3A0C: ; 0x020A3A0C + cmp r0, #0x0 + bne _020A3A30 + mov r1, r7 + add r0, r4, #0x20 + mov r2, #0x30 + bl MI_CpuCopy8 + mov r0, #0x1 + strb r0, [r7, #0x30] + b _020A3A40 +_020A3A30: + add r6, r6, #0x1 + cmp r6, #0x4 + add r4, r4, #0x5c + blt _020A39D8 +_020A3A40: + mov r0, r5 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_020A3A54: .word 0x021CA6FC + + arm_func_start FUN_020A3A58 +FUN_020A3A58: ; 0x020A3A58 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + mov r0, r4 + add r1, r5, #0x10 + mov r2, #0x8 + bl FUN_020A4044 + ldr r0, [r5, #0x10] + ldr r1, _020A3AC8 ; =0x021062EC + mov r0, r0, lsr #0x3 + and r0, r0, #0x3f + cmp r0, #0x38 + rsblt r2, r0, #0x38 + rsbge r2, r0, #0x78 + mov r0, r5 + bl FUN_020A3ACC + mov r0, r5 + mov r1, r4 + mov r2, #0x8 + bl FUN_020A3ACC + mov r0, r4 + mov r1, r5 + mov r2, #0x10 + bl FUN_020A4044 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020A3AC8: .word 0x021062EC + + arm_func_start FUN_020A3ACC +FUN_020A3ACC: + stmdb sp!, {r4-r8,lr} + mov r8, r0 + ldr r3, [r8, #0x10] + mov r6, r2 + add r0, r3, r6, lsl #0x3 + str r0, [r8, #0x10] + ldr r0, [r8, #0x10] + mov r2, r3, lsr #0x3 + cmp r0, r6, lsl #0x3 + ldrcc r0, [r8, #0x14] + and r4, r2, #0x3f + addcc r0, r0, #0x1 + strcc r0, [r8, #0x14] + ldr r0, [r8, #0x14] + rsb r5, r4, #0x40 + add r0, r0, r6, lsr #0x1d + mov r7, r1 + str r0, [r8, #0x14] + cmp r6, r5 + blo _020A3B6C + add r1, r8, #0x18 + mov r0, r7 + mov r2, r5 + add r1, r1, r4 + bl MI_CpuCopy8 + mov r0, r8 + add r1, r8, #0x18 + mov r4, #0x0 + bl FUN_020A3BD8 + add r0, r5, #0x3f + cmp r0, r6 + bhs _020A3B70 +_020A3B4C: + mov r0, r8 + add r1, r7, r5 + bl FUN_020A3BD8 + add r5, r5, #0x40 + add r0, r5, #0x3f + cmp r0, r6 + blo _020A3B4C + b _020A3B70 +_020A3B6C: + mov r5, #0x0 +_020A3B70: + add r1, r8, #0x18 + add r0, r7, r5 + add r1, r1, r4 + sub r2, r6, r5 + bl MI_CpuCopy8 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_020A3B8C +FUN_020A3B8C: ; 0x020A3B8C + stmdb sp!, {r4,lr} + mov r1, #0x0 + mov r2, #0x58 + mov r4, r0 + bl MI_CpuFill8 + ldr r1, _020A3BC8 ; =0x67452301 + ldr r0, _020A3BCC ; =0xEFCDAB89 + str r1, [r4, #0x0] + ldr r1, _020A3BD0 ; =0x98BADCFE + str r0, [r4, #0x4] + ldr r0, _020A3BD4 ; =0x10325476 + str r1, [r4, #0x8] + str r0, [r4, #0xc] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A3BC8: .word 0x67452301 +_020A3BCC: .word 0xEFCDAB89 +_020A3BD0: .word 0x98BADCFE +_020A3BD4: .word 0x10325476 + + arm_func_start FUN_020A3BD8 +FUN_020A3BD8: ; 0x020A3BD8 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x44 + str r0, [sp, #0x0] + ldr r3, [sp, #0x0] + add r0, sp, #0x4 + mov r2, #0x40 + ldr r7, [r3, #0x0] + ldr r6, [r3, #0x4] + ldr r5, [r3, #0x8] + ldr r4, [r3, #0xc] + bl FUN_020A402C + ldr r2, _020A4024 ; =0x021062AC + mov r3, #0x0 + ldr r1, _020A4028 ; =0x0210632C + mov r11, r3 + add r0, sp, #0x4 + mov r10, r2 +_020A3C1C: + ldrb r9, [r2, #0x0] + add r8, r3, #0x1 + eor r12, r5, r4 + and r12, r6, r12 + eor r12, r4, r12 + ldr r9, [r0, r9, lsl #0x2] + ldr lr, [r1, r3, lsl #0x2] + add r9, r12, r9 + add r9, lr, r9 + add r9, r7, r9 + mov r7, r9, lsl #0x7 + orr r7, r7, r9, lsr #0x19 + ldrb r9, [r10, r8] + add r7, r6, r7 + ldr r8, [r1, r8, lsl #0x2] + ldr r9, [r0, r9, lsl #0x2] + eor r12, r6, r5 + and r12, r7, r12 + eor r12, r5, r12 + add r9, r12, r9 + add r9, r8, r9 + add r8, r3, #0x2 + add r9, r4, r9 + mov r4, r9, lsl #0xc + orr r4, r4, r9, lsr #0x14 + add r4, r7, r4 + ldr r9, [r1, r8, lsl #0x2] + ldrb r12, [r10, r8] + eor r8, r7, r6 + and r8, r4, r8 + eor r8, r6, r8 + ldr lr, [r0, r12, lsl #0x2] + add r12, r3, #0x3 + add r8, r8, lr + add r8, r9, r8 + add r8, r5, r8 + mov r5, r8, lsl #0x11 + orr r5, r5, r8, lsr #0xf + add r5, r4, r5 + ldr r9, [r1, r12, lsl #0x2] + ldrb r12, [r10, r12] + eor r8, r4, r7 + and r8, r5, r8 + eor r8, r7, r8 + ldr r12, [r0, r12, lsl #0x2] + add r2, r2, #0x4 + add r8, r8, r12 + add r8, r9, r8 + add r8, r6, r8 + mov r6, r8, lsl #0x16 + orr r6, r6, r8, lsr #0xa + add r6, r5, r6 + add r3, r3, #0x4 + add r11, r11, #0x1 + cmp r11, #0x4 + blt _020A3C1C + add r8, r10, r3 + mov r2, #0x0 + ldr r1, _020A4028 ; =0x0210632C + add r0, sp, #0x4 + ldr lr, _020A4024 ; =0x021062AC +_020A3D10: + ldrb r10, [r8, #0x0] + add r9, r3, #0x1 + eor r11, r6, r5 + and r11, r4, r11 + eor r11, r5, r11 + ldr r10, [r0, r10, lsl #0x2] + ldr r12, [r1, r3, lsl #0x2] + add r10, r11, r10 + add r10, r12, r10 + add r10, r7, r10 + mov r7, r10, lsl #0x5 + orr r7, r7, r10, lsr #0x1b + ldrb r10, [lr, r9] + add r7, r6, r7 + ldr r9, [r1, r9, lsl #0x2] + ldr r10, [r0, r10, lsl #0x2] + eor r11, r7, r6 + and r11, r5, r11 + eor r11, r6, r11 + add r10, r11, r10 + add r10, r9, r10 + add r9, r3, #0x2 + add r10, r4, r10 + mov r4, r10, lsl #0x9 + orr r4, r4, r10, lsr #0x17 + add r4, r7, r4 + ldr r12, [r1, r9, lsl #0x2] + ldrb r9, [lr, r9] + eor r10, r4, r7 + and r10, r6, r10 + eor r11, r7, r10 + ldr r10, [r0, r9, lsl #0x2] + add r9, r3, #0x3 + add r10, r11, r10 + add r10, r12, r10 + add r10, r5, r10 + mov r5, r10, lsl #0xe + orr r5, r5, r10, lsr #0x12 + add r5, r4, r5 + ldr r10, [r1, r9, lsl #0x2] + ldrb r11, [lr, r9] + eor r9, r5, r4 + and r9, r7, r9 + eor r9, r4, r9 + ldr r11, [r0, r11, lsl #0x2] + add r8, r8, #0x4 + add r9, r9, r11 + add r9, r10, r9 + add r9, r6, r9 + mov r6, r9, lsl #0x14 + orr r6, r6, r9, lsr #0xc + add r6, r5, r6 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r2, #0x4 + blt _020A3D10 + add r8, lr, r3 + mov lr, #0x0 + ldr r2, _020A4028 ; =0x0210632C + add r0, sp, #0x4 +_020A3E00: + ldrb r1, [r8, #0x0] + eor r12, r6, r5 + add lr, lr, #0x1 + ldr r11, [r0, r1, lsl #0x2] + eor r12, r4, r12 + ldr r1, [r2, r3, lsl #0x2] + add r11, r12, r11 + add r1, r1, r11 + add r7, r7, r1 + mov r1, r7, lsl #0x4 + orr r1, r1, r7, lsr #0x1c + add r7, r6, r1 + add r10, r3, #0x1 + ldr r1, _020A4024 ; =0x021062AC + ldr r12, [r2, r10, lsl #0x2] + ldrb r1, [r1, r10] + eor r10, r7, r6 + eor r11, r5, r10 + ldr r10, [r0, r1, lsl #0x2] + add r9, r3, #0x2 + add r10, r11, r10 + add r10, r12, r10 + add r4, r4, r10 + ldr sl, _020A4024 ; =0x021062AC + ldr r1, [r2, r9, lsl #0x2] + ldrb r9, [r10, r9] + mov r10, r4, lsl #0xb + orr r4, r10, r4, lsr #0x15 + add r4, r7, r4 + eor r10, r4, r7 + ldr r9, [r0, r9, lsl #0x2] + eor r10, r6, r10 + add r9, r10, r9 + add r1, r1, r9 + add r5, r5, r1 + add r10, r3, #0x3 + ldr sb, _020A4024 ; =0x021062AC + mov r1, r5, lsl #0x10 + ldrb r9, [r9, r10] + orr r1, r1, r5, lsr #0x10 + add r5, r4, r1 + ldr r1, [r2, r10, lsl #0x2] + eor r10, r5, r4 + ldr r9, [r0, r9, lsl #0x2] + eor r10, r7, r10 + add r9, r10, r9 + add r1, r1, r9 + add r6, r6, r1 + mov r1, r6, lsl #0x17 + orr r1, r1, r6, lsr #0x9 + add r8, r8, #0x4 + add r6, r5, r1 + add r3, r3, #0x4 + cmp lr, #0x4 + blt _020A3E00 + ldr r0, _020A4024 ; =0x021062AC + ldr r1, _020A4028 ; =0x0210632C + add r8, r0, r3 + ldr lr, _020A4024 ; =0x021062AC + mov r2, #0x0 + add r0, sp, #0x4 +_020A3EF4: + ldrb r10, [r8, #0x0] + add r9, r3, #0x1 + mvn r11, r4 + orr r11, r6, r11 + eor r11, r5, r11 + ldr r10, [r0, r10, lsl #0x2] + ldr r12, [r1, r3, lsl #0x2] + add r10, r11, r10 + add r10, r12, r10 + add r10, r7, r10 + mov r7, r10, lsl #0x6 + orr r7, r7, r10, lsr #0x1a + ldrb r10, [lr, r9] + add r7, r6, r7 + ldr r9, [r1, r9, lsl #0x2] + ldr r10, [r0, r10, lsl #0x2] + mvn r11, r5 + orr r11, r7, r11 + eor r11, r6, r11 + add r10, r11, r10 + add r10, r9, r10 + add r9, r3, #0x2 + add r10, r4, r10 + mov r4, r10, lsl #0xa + orr r4, r4, r10, lsr #0x16 + add r4, r7, r4 + ldr r12, [r1, r9, lsl #0x2] + ldrb r9, [lr, r9] + mvn r10, r6 + orr r10, r4, r10 + eor r11, r7, r10 + ldr r10, [r0, r9, lsl #0x2] + add r9, r3, #0x3 + add r10, r11, r10 + add r10, r12, r10 + add r10, r5, r10 + mov r5, r10, lsl #0xf + orr r5, r5, r10, lsr #0x11 + add r5, r4, r5 + ldr r10, [r1, r9, lsl #0x2] + ldrb r11, [lr, r9] + mvn r9, r7 + orr r9, r5, r9 + eor r9, r4, r9 + ldr r11, [r0, r11, lsl #0x2] + add r8, r8, #0x4 + add r9, r9, r11 + add r9, r10, r9 + add r9, r6, r9 + mov r6, r9, lsl #0x15 + orr r6, r6, r9, lsr #0xb + add r6, r5, r6 + add r3, r3, #0x4 + add r2, r2, #0x1 + cmp r2, #0x4 + blt _020A3EF4 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x0] + add r1, r0, r7 + ldr r0, [sp, #0x0] + str r1, [r0, #0x0] + ldr r0, [r0, #0x4] + add r1, r0, r6 + ldr r0, [sp, #0x0] + str r1, [r0, #0x4] + ldr r0, [r0, #0x8] + add r1, r0, r5 + ldr r0, [sp, #0x0] + str r1, [r0, #0x8] + ldr r0, [r0, #0xc] + add r1, r0, r4 + ldr r0, [sp, #0x0] + str r1, [r0, #0xc] + add sp, sp, #0x44 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020A4024: .word 0x021062AC +_020A4028: .word 0x0210632C + + arm_func_start FUN_020A402C +FUN_020A402C: ; 0x020A402C + ldr ip, _020A4040 ; =MI_CpuCopy8 + mov r3, r0 + mov r0, r1 + mov r1, r3 + bx r12 + .balign 4 +_020A4040: .word MI_CpuCopy8 + + arm_func_start FUN_020A4044 +FUN_020A4044: ; 0x020A4044 + ldr ip, _020A4058 ; =MI_CpuCopy8 + mov r3, r0 + mov r0, r1 + mov r1, r3 + bx r12 + .balign 4 +_020A4058: .word MI_CpuCopy8 + + arm_func_start FUN_020A405C +FUN_020A405C: ; 0x020A405C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + ldr r1, _020A4094 ; =0x0210642D + mov r5, r0 + mov r2, #0x2c + bl FUN_020A410C + mov r0, r4 + mov r1, r5 + mov r2, #0x14 + bl FUN_020A4930 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020A4094: .word 0x0210642D + + arm_func_start FUN_020A4098 +FUN_020A4098: ; 0x020A4098 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + mov r0, r4 + add r1, r5, #0x14 + mov r2, #0x8 + bl FUN_020A4930 + ldr r0, [r5, #0x18] + ldr r1, _020A4108 ; =0x0210642C + mov r0, r0, lsr #0x3 + and r0, r0, #0x3f + cmp r0, #0x38 + rsblt r2, r0, #0x38 + rsbge r2, r0, #0x78 + mov r0, r5 + bl FUN_020A410C + mov r0, r5 + mov r1, r4 + mov r2, #0x8 + bl FUN_020A410C + mov r0, r4 + mov r1, r5 + mov r2, #0x14 + bl FUN_020A4930 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020A4108: .word 0x0210642C + + arm_func_start FUN_020A410C +FUN_020A410C: + stmdb sp!, {r4-r8,lr} + mov r8, r0 + ldr r3, [r8, #0x18] + mov r6, r2 + add r0, r3, r6, lsl #0x3 + str r0, [r8, #0x18] + ldr r0, [r8, #0x18] + mov r2, r3, lsr #0x3 + cmp r0, r6, lsl #0x3 + ldrcc r0, [r8, #0x14] + and r4, r2, #0x3f + addcc r0, r0, #0x1 + strcc r0, [r8, #0x14] + ldr r0, [r8, #0x14] + rsb r5, r4, #0x40 + add r0, r0, r6, lsr #0x1d + mov r7, r1 + str r0, [r8, #0x14] + cmp r6, r5 + blo _020A41AC + add r1, r8, #0x1c + mov r0, r7 + mov r2, r5 + add r1, r1, r4 + bl MI_CpuCopy8 + mov r0, r8 + add r1, r8, #0x1c + mov r4, #0x0 + bl FUN_020A4224 + add r0, r5, #0x3f + cmp r0, r6 + bhs _020A41B0 +_020A418C: + mov r0, r8 + add r1, r7, r5 + bl FUN_020A4224 + add r5, r5, #0x40 + add r0, r5, #0x3f + cmp r0, r6 + blo _020A418C + b _020A41B0 +_020A41AC: + mov r5, #0x0 +_020A41B0: + add r1, r8, #0x1c + add r0, r7, r5 + add r1, r1, r4 + sub r2, r6, r5 + bl MI_CpuCopy8 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_020A41CC +FUN_020A41CC: ; 0x020A41CC + stmdb sp!, {r4,lr} + mov r1, #0x0 + mov r2, #0x5c + mov r4, r0 + bl MI_CpuFill8 + ldr r0, _020A4210 ; =0x67452301 + ldr r1, _020A4214 ; =0xEFCDAB89 + str r0, [r4, #0x0] + ldr r0, _020A4218 ; =0x98BADCFE + str r1, [r4, #0x4] + ldr r1, _020A421C ; =0x10325476 + str r0, [r4, #0x8] + ldr r0, _020A4220 ; =0xC3D2E1F0 + str r1, [r4, #0xc] + str r0, [r4, #0x10] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A4210: .word 0x67452301 +_020A4214: .word 0xEFCDAB89 +_020A4218: .word 0x98BADCFE +_020A421C: .word 0x10325476 +_020A4220: .word 0xC3D2E1F0 + + arm_func_start FUN_020A4224 +FUN_020A4224: ; 0x020A4224 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x54 + str r0, [sp, #0x0] + ldr r3, [sp, #0x0] + add r0, sp, #0x10 + mov r2, #0x40 + ldr r6, [r3, #0x0] + ldr r7, [r3, #0x4] + ldr r8, [r3, #0x8] + ldr r5, [r3, #0xc] + ldr r4, [r3, #0x10] + bl FUN_020A48CC + mov r2, #0x0 + ldr r3, _020A48BC ; =0x5A827999 + mov r0, r2 + add r1, sp, #0x10 +_020A4264: + eor r9, r8, r5 + mov r10, r6, lsl #0x5 + and r9, r7, r9 + orr r10, r10, r6, lsr #0x1b + eor r9, r5, r9 + mov r11, r7, lsl #0x1e + orr r7, r11, r7, lsr #0x2 + eor r11, r7, r8 + add r9, r10, r9 + ldr r12, [r1, r2, lsl #0x2] + and r10, r6, r11 + add r9, r12, r9 + add r9, r9, r3 + add r4, r4, r9 + add r9, r2, #0x1 + ldr r9, [r1, r9, lsl #0x2] + eor r10, r8, r10 + mov r11, r4, lsl #0x5 + orr r11, r11, r4, lsr #0x1b + add r10, r11, r10 + add r10, r9, r10 + mov r9, r6, lsl #0x1e + add r10, r10, r3 + add r5, r5, r10 + orr r6, r9, r6, lsr #0x2 + add r9, r2, #0x2 + ldr r10, [r1, r9, lsl #0x2] + mov r9, r5, lsl #0x5 + orr r9, r9, r5, lsr #0x1b + eor r11, r6, r7 + and r11, r4, r11 + eor r11, r7, r11 + add r9, r9, r11 + add r9, r10, r9 + add r9, r9, r3 + add r8, r8, r9 + mov r9, r4, lsl #0x1e + orr r4, r9, r4, lsr #0x2 + add r9, r2, #0x3 + ldr r10, [r1, r9, lsl #0x2] + mov r9, r8, lsl #0x5 + orr r9, r9, r8, lsr #0x1b + eor r11, r4, r6 + and r11, r5, r11 + eor r11, r6, r11 + add r9, r9, r11 + add r9, r10, r9 + add r9, r9, r3 + add r7, r7, r9 + mov r9, r5, lsl #0x1e + orr r5, r9, r5, lsr #0x2 + add r9, r2, #0x4 + ldr r10, [r1, r9, lsl #0x2] + mov r9, r7, lsl #0x5 + orr r9, r9, r7, lsr #0x1b + eor r11, r5, r4 + and r11, r8, r11 + eor r11, r4, r11 + add r9, r9, r11 + add r9, r10, r9 + add r9, r9, r3 + add r6, r6, r9 + mov r9, r8, lsl #0x1e + orr r8, r9, r8, lsr #0x2 + add r2, r2, #0x5 + add r0, r0, #0x1 + cmp r0, #0x3 + blt _020A4264 + eor r0, r8, r5 + mov r2, r6, lsl #0x5 + and r0, r7, r0 + orr r3, r2, r6, lsr #0x1b + eor r0, r5, r0 + add r3, r3, r0 + ldr r9, [sp, #0x4c] + ldr r0, _020A48BC ; =0x5A827999 + add r3, r9, r3 + add r3, r3, r0 + mov r2, r7, lsl #0x1e + orr r9, r2, r7, lsr #0x2 + mov r0, #0x0 + add r4, r4, r3 + bl FUN_020A4988 + eor r1, r9, r8 + mov r3, r4, lsl #0x5 + and r1, r6, r1 + mov r2, r6, lsl #0x1e + orr r3, r3, r4, lsr #0x1b + eor r1, r8, r1 + add r1, r3, r1 + add r3, r1, r0 + ldr r0, _020A48BC ; =0x5A827999 + add r1, sp, #0x10 + add r3, r3, r0 + orr r10, r2, r6, lsr #0x2 + mov r0, #0x1 + add r5, r5, r3 + bl FUN_020A4988 + eor r1, r10, r9 + mov r2, r5, lsl #0x5 + and r1, r4, r1 + orr r2, r2, r5, lsr #0x1b + eor r1, r9, r1 + add r1, r2, r1 + add r2, r1, r0 + ldr r0, _020A48BC ; =0x5A827999 + mov r1, r4, lsl #0x1e + add r0, r2, r0 + orr r6, r1, r4, lsr #0x2 + add r8, r8, r0 + add r1, sp, #0x10 + mov r0, #0x2 + bl FUN_020A4988 + mov r1, r8, lsl #0x5 + orr r2, r1, r8, lsr #0x1b + eor r1, r6, r10 + and r1, r5, r1 + eor r1, r10, r1 + add r1, r2, r1 + add r2, r1, r0 + ldr r0, _020A48BC ; =0x5A827999 + mov r1, r5, lsl #0x1e + add r0, r2, r0 + orr r7, r1, r5, lsr #0x2 + add r9, r9, r0 + mov r0, #0x3 + add r1, sp, #0x10 + bl FUN_020A4988 + mov r1, r9, lsl #0x5 + orr r2, r1, r9, lsr #0x1b + eor r1, r7, r6 + and r1, r8, r1 + eor r1, r6, r1 + add r1, r2, r1 + add r2, r1, r0 + ldr r0, _020A48BC ; =0x5A827999 + mov r1, r8, lsl #0x1e + add r0, r2, r0 + add r10, r10, r0 + mov r0, #0x0 + ldr r4, _020A48C0 ; =0x6ED9EBA1 + orr r8, r1, r8, lsr #0x2 + mov r5, #0x4 + str r0, [sp, #0xc] + add r11, sp, #0x10 +_020A44A8: + mov r0, r5 + mov r1, r11 + bl FUN_020A4988 + mov r2, r10, lsl #0x5 + eor r1, r9, r8 + orr r2, r2, r10, lsr #0x1b + eor r1, r7, r1 + add r1, r2, r1 + add r0, r1, r0 + add r1, r0, r4 + mov r0, r9, lsl #0x1e + add r6, r6, r1 + orr r9, r0, r9, lsr #0x2 + add r0, r5, #0x1 + mov r1, r11 + bl FUN_020A4988 + mov r1, r6, lsl #0x5 + orr r2, r1, r6, lsr #0x1b + eor r1, r10, r9 + eor r1, r8, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r7, r7, r0 + mov r0, r10, lsl #0x1e + orr r10, r0, r10, lsr #0x2 + add r0, r5, #0x2 + and r5, r0, #0xf + mov r0, r5 + mov r1, r11 + bl FUN_020A4988 + mov r1, r7, lsl #0x5 + orr r2, r1, r7, lsr #0x1b + eor r1, r6, r10 + eor r1, r9, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r8, r8, r0 + mov r0, r6, lsl #0x1e + orr r6, r0, r6, lsr #0x2 + add r0, r5, #0x1 + mov r1, r11 + bl FUN_020A4988 + mov r1, r8, lsl #0x5 + orr r2, r1, r8, lsr #0x1b + eor r1, r7, r6 + eor r1, r10, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r9, r9, r0 + mov r0, r7, lsl #0x1e + orr r7, r0, r7, lsr #0x2 + add r0, r5, #0x2 + mov r1, r11 + bl FUN_020A4988 + mov r1, r9, lsl #0x5 + orr r2, r1, r9, lsr #0x1b + eor r1, r8, r7 + eor r1, r6, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r10, r10, r0 + mov r0, r8, lsl #0x1e + orr r8, r0, r8, lsr #0x2 + ldr r0, [sp, #0xc] + add r5, r5, #0x3 + add r0, r0, #0x1 + str r0, [sp, #0xc] + cmp r0, #0x4 + blt _020A44A8 + mov r0, #0x0 + ldr r4, _020A48C4 ; =0x8F1BBCDC + str r0, [sp, #0x8] + add r11, sp, #0x10 +_020A45DC: + mov r0, r5 + mov r1, r11 + bl FUN_020A4988 + orr r2, r8, r7 + mov r1, r10, lsl #0x5 + and r3, r9, r2 + and r2, r8, r7 + orr r1, r1, r10, lsr #0x1b + orr r2, r3, r2 + add r1, r1, r2 + add r1, r1, r0 + mov r0, r9, lsl #0x1e + add r1, r1, r4 + add r6, r6, r1 + orr r9, r0, r9, lsr #0x2 + add r0, r5, #0x1 + mov r1, r11 + bl FUN_020A4988 + orr r2, r9, r8 + mov r1, r6, lsl #0x5 + and r3, r10, r2 + and r2, r9, r8 + orr r1, r1, r6, lsr #0x1b + orr r2, r3, r2 + add r1, r1, r2 + add r0, r1, r0 + add r0, r0, r4 + add r7, r7, r0 + mov r0, r10, lsl #0x1e + orr r10, r0, r10, lsr #0x2 + add r0, r5, #0x2 + mov r1, r11 + bl FUN_020A4988 + orr r2, r10, r9 + mov r1, r7, lsl #0x5 + and r3, r6, r2 + and r2, r10, r9 + orr r1, r1, r7, lsr #0x1b + orr r2, r3, r2 + add r1, r1, r2 + add r0, r1, r0 + add r0, r0, r4 + add r8, r8, r0 + mov r0, r6, lsl #0x1e + orr r6, r0, r6, lsr #0x2 + add r0, r5, #0x3 + and r5, r0, #0xf + mov r0, r5 + mov r1, r11 + bl FUN_020A4988 + orr r2, r6, r10 + mov r1, r8, lsl #0x5 + and r3, r7, r2 + and r2, r6, r10 + orr r1, r1, r8, lsr #0x1b + orr r2, r3, r2 + add r1, r1, r2 + add r0, r1, r0 + add r0, r0, r4 + add r9, r9, r0 + mov r0, r7, lsl #0x1e + orr r7, r0, r7, lsr #0x2 + add r0, r5, #0x1 + mov r1, r11 + bl FUN_020A4988 + orr r2, r7, r6 + mov r1, r9, lsl #0x5 + and r3, r8, r2 + and r2, r7, r6 + orr r1, r1, r9, lsr #0x1b + orr r2, r3, r2 + add r1, r1, r2 + add r0, r1, r0 + add r0, r0, r4 + add r10, r10, r0 + mov r0, r8, lsl #0x1e + orr r8, r0, r8, lsr #0x2 + ldr r0, [sp, #0x8] + add r5, r5, #0x2 + add r0, r0, #0x1 + str r0, [sp, #0x8] + cmp r0, #0x4 + blt _020A45DC + mov r0, #0x0 + ldr r4, _020A48C8 ; =0xCA62C1D6 + str r0, [sp, #0x4] + add r11, sp, #0x10 +_020A4738: + mov r0, r5 + mov r1, r11 + bl FUN_020A4988 + mov r2, r10, lsl #0x5 + eor r1, r9, r8 + orr r2, r2, r10, lsr #0x1b + eor r1, r7, r1 + add r1, r2, r1 + add r0, r1, r0 + add r1, r0, r4 + mov r0, r9, lsl #0x1e + add r6, r6, r1 + orr r9, r0, r9, lsr #0x2 + add r0, r5, #0x1 + mov r1, r11 + bl FUN_020A4988 + mov r1, r6, lsl #0x5 + orr r2, r1, r6, lsr #0x1b + eor r1, r10, r9 + eor r1, r8, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r7, r7, r0 + mov r0, r10, lsl #0x1e + orr r10, r0, r10, lsr #0x2 + add r0, r5, #0x2 + mov r1, r11 + bl FUN_020A4988 + mov r1, r7, lsl #0x5 + orr r2, r1, r7, lsr #0x1b + eor r1, r6, r10 + eor r1, r9, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r8, r8, r0 + mov r0, r6, lsl #0x1e + orr r6, r0, r6, lsr #0x2 + add r0, r5, #0x3 + mov r1, r11 + bl FUN_020A4988 + mov r1, r8, lsl #0x5 + orr r2, r1, r8, lsr #0x1b + eor r1, r7, r6 + eor r1, r10, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r9, r9, r0 + mov r0, r7, lsl #0x1e + orr r7, r0, r7, lsr #0x2 + add r0, r5, #0x4 + and r5, r0, #0xf + mov r0, r5 + mov r1, r11 + bl FUN_020A4988 + mov r1, r9, lsl #0x5 + orr r2, r1, r9, lsr #0x1b + eor r1, r8, r7 + eor r1, r6, r1 + add r1, r2, r1 + add r0, r1, r0 + add r0, r0, r4 + add r10, r10, r0 + mov r0, r8, lsl #0x1e + orr r8, r0, r8, lsr #0x2 + ldr r0, [sp, #0x4] + add r5, r5, #0x1 + add r0, r0, #0x1 + str r0, [sp, #0x4] + cmp r0, #0x4 + blt _020A4738 + ldr r0, [sp, #0x0] + ldr r0, [r0, #0x0] + add r1, r0, r10 + ldr r0, [sp, #0x0] + str r1, [r0, #0x0] + ldr r0, [r0, #0x4] + add r1, r0, r9 + ldr r0, [sp, #0x0] + str r1, [r0, #0x4] + ldr r0, [r0, #0x8] + add r1, r0, r8 + ldr r0, [sp, #0x0] + str r1, [r0, #0x8] + ldr r0, [r0, #0xc] + add r1, r0, r7 + ldr r0, [sp, #0x0] + str r1, [r0, #0xc] + ldr r0, [r0, #0x10] + add r1, r0, r6 + ldr r0, [sp, #0x0] + str r1, [r0, #0x10] + add sp, sp, #0x54 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020A48BC: .word 0x5A827999 +_020A48C0: .word 0x6ED9EBA1 +_020A48C4: .word 0x8F1BBCDC +_020A48C8: .word 0xCA62C1D6 + + arm_func_start FUN_020A48CC +FUN_020A48CC: ; 0x020A48CC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + cmp r2, #0x0 + addls sp, sp, #0x4 + mov r3, #0x0 + ldmlsia sp!, {r4-r5,lr} + bxls lr +_020A48E8: + add r12, r3, #0x1 + ldrb lr, [r1, r3] + add r4, r3, #0x2 + add r5, r3, #0x3 + ldrb r12, [r1, r12] + mov lr, lr, lsl #0x18 + add r3, r3, #0x4 + ldrb r4, [r1, r4] + orr r12, lr, r12, lsl #0x10 + ldrb lr, [r1, r5] + orr r4, r12, r4, lsl #0x8 + cmp r3, r2 + orr r4, lr, r4 + str r4, [r0], #0x4 + blo _020A48E8 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020A4930 +FUN_020A4930: ; 0x020A4930 + stmdb sp!, {lr} + sub sp, sp, #0x4 + movs r12, r2, lsr #0x2 + mov lr, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr +_020A494C: + ldr r3, [r1], #0x4 + add lr, lr, #0x1 + mov r2, r3, lsr #0x18 + strb r2, [r0, #0x0] + mov r2, r3, lsr #0x10 + strb r2, [r0, #0x1] + mov r2, r3, lsr #0x8 + strb r2, [r0, #0x2] + strb r3, [r0, #0x3] + cmp lr, r12 + add r0, r0, #0x4 + blo _020A494C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_020A4988 +FUN_020A4988: ; 0x020A4988 + add r2, r0, #0xd + add r12, r0, #0x2 + and r3, r2, #0xf + eor r2, r0, #0x8 + and r12, r12, #0xf + ldr r3, [r1, r3, lsl #0x2] + ldr r2, [r1, r2, lsl #0x2] + ldr r12, [r1, r12, lsl #0x2] + eor r2, r3, r2 + ldr r3, [r1, r0, lsl #0x2] + eor r2, r12, r2 + eor r3, r3, r2 + mov r2, r3, lsl #0x1 + orr r2, r2, r3, lsr #0x1f + str r2, [r1, r0, lsl #0x2] + ldr r0, [r1, r0, lsl #0x2] + bx lr + + arm_func_start FUN_020A49CC +FUN_020A49CC: ; 0x020A49CC + stmdb sp!, {r4-r6,lr} + cmp r2, #0x0 + add r3, r0, #0x2 + ldrb lr, [r0, #0x0] + ldrb r12, [r0, #0x1] + mov r4, #0x0 + ble _020A4A2C +_020A49E8: + add r5, lr, #0x1 + and lr, r5, #0xff + ldrb r6, [r3, lr] + add r5, r12, r6 + and r12, r5, #0xff + ldrb r5, [r3, r12] + strb r5, [r3, lr] + add r5, r6, r5 + strb r6, [r3, r12] + and r5, r5, #0xff + ldrb r6, [r1, r4] + ldrb r5, [r3, r5] + eor r5, r6, r5 + strb r5, [r1, r4] + add r4, r4, #0x1 + cmp r4, r2 + blt _020A49E8 +_020A4A2C: + strb lr, [r0, #0x0] + strb r12, [r0, #0x1] + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_020A4A3C +FUN_020A4A3C: ; 0x020A4A3C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r3, #0x0 + strb r3, [r0, #0x0] + strb r3, [r0, #0x1] + add r7, r0, #0x2 +_020A4A54: + strb r3, [r7, r3] + add r3, r3, #0x1 + cmp r3, #0x100 + blt _020A4A54 + mov r5, #0x0 + mov r6, r5 + mov r4, r5 + mov r0, r5 +_020A4A74: + ldrb lr, [r7, r4] + ldrb r12, [r1, r5] + add r3, r5, #0x1 + and r5, r3, #0xff + add r3, lr, r12 + add r3, r6, r3 + and r6, r3, #0xff + ldrb r3, [r7, r6] + cmp r5, r2 + movge r5, r0 + strb r3, [r7, r4] + add r4, r4, #0x1 + strb lr, [r7, r6] + cmp r4, #0x100 + blt _020A4A74 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_020A4ABC +FUN_020A4ABC: ; 0x020A4ABC + ldrh r1, [r0, #0x0] + mov r0, #0x0 + bx lr + + arm_func_start FUN_020A4AC8 +FUN_020A4AC8: ; 0x020A4AC8 + ldrh r1, [r0, #0x0] + ldrh r0, [r0, #-0x2] + mov r0, r0, lsl #0x10 + bx lr + + arm_func_start FUN_020A4AD8 +FUN_020A4AD8: ; 0x020A4AD8 + ldrh r1, [r0, #0x0] + ldrh r2, [r0, #-0x2] + ldrh r3, [r0, #-0x4] + orr r0, r3, r2, lsl #0x10 + bx lr + + arm_func_start FUN_020A4AEC +FUN_020A4AEC: ; 0x020A4AEC + ldrh r2, [r0, #0x0] + ldrh r3, [r0, #-0x2] + orr r1, r3, r2, lsl #0x10 + ldrh r2, [r0, #-0x4] + ldrh r3, [r0, #-0x6] + orr r0, r3, r2, lsl #0x10 + bx lr + + arm_func_start FUN_020A4B08 +FUN_020A4B08: ; 0x020A4B08 + sub r3, r2, #0x1 + cmp r2, #0x1 + add r0, r0, r3 + ble _020A4B40 +_020A4B18: + ldrh r3, [r1, #0x0] + sub r2, r2, #0x2 + sub r12, r0, #0x1 + strb r3, [r0, #0x0] + ldrh r3, [r1], #0x2 + cmp r2, #0x1 + sub r0, r0, #0x2 + mov r3, r3, asr #0x8 + strb r3, [r12, #0x0] + bgt _020A4B18 +_020A4B40: + cmp r2, #0x0 + ldrgth r1, [r1, #0x0] + strgtb r1, [r0, #0x0] + bx lr + + arm_func_start FUN_020A4B50 +FUN_020A4B50: ; 0x020A4B50 + stmdb sp!, {r4-r6,lr} + mov r6, r1 + mov r5, r2 + mov r2, r3, lsl #0x1 + mov r1, #0x0 + mov r4, r0 + bl MI_CpuFill8 + sub r0, r5, #0x1 + cmp r5, #0x1 + add r6, r6, r0 + ble _020A4B9C +_020A4B7C: + ldrb r1, [r6, #0x0] + ldrb r0, [r6, #-0x1] + sub r5, r5, #0x2 + cmp r5, #0x1 + add r0, r1, r0, lsl #0x8 + strh r0, [r4], #0x2 + sub r6, r6, #0x2 + bgt _020A4B7C +_020A4B9C: + cmp r5, #0x0 + ldrgtb r0, [r6, #0x0] + strgth r0, [r4, #0x0] + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FUN_020A4BB0 +FUN_020A4BB0: ; 0x020A4BB0 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x34 + mov r10, r3 + mov r3, #0x16 + mul r4, r10, r3 + ldr r3, _020A4DE0 ; =0x021C8EC8 + mov r11, r0 + ldr r3, [r3, #0x0] + mov r0, r4 + ldr r9, [sp, #0x58] + str r1, [sp, #0x14] + str r2, [sp, #0x18] + blx r3 + str r0, [sp, #0x1c] + cmp r0, #0x0 + addeq sp, sp, #0x34 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + mov r2, r4 + mov r1, #0x0 + bl MI_CpuFill8 + ldr r0, [sp, #0x1c] + mov r1, r10 + add r6, r0, r10, lsl #0x1 + add r0, r6, r10, lsl #0x1 + add r5, r0, r10, lsl #0x1 + add r4, r5, r10, lsl #0x1 + str r0, [sp, #0x20] + add r0, r4, r10, lsl #0x1 + str r0, [sp, #0x24] + add r7, r0, r10, lsl #0x1 + mov r0, r9 + bl thunk_FUN_020a5a28 + mov r8, r0 + ldr r0, [sp, #0x1c] + mov r2, #0x1 + mov r1, r8, lsl #0x1 + strh r2, [r0, r1] + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x1c] + str r0, [sp, #0x0] + mov r0, r6 + mov r2, r9 + mov r3, r10 + bl FUN_020A4F2C + ldr r1, [sp, #0x1c] + mov r0, r5 + mov r2, r6 + mov r3, r10 + bl FUN_020A5608 + mov r0, r6 + mov r1, r5 + mov r2, #0x1 + mov r3, r10 + bl FUN_020A5748 + str r10, [sp, #0x0] + mov r0, r6 + mov r1, r6 + mov r2, r9 + mov r3, #0x0 + str r7, [sp, #0x4] + bl FUN_020A5240 + ldr r1, [sp, #0x14] + ldr r0, [sp, #0x20] + ldr r2, [sp, #0x1c] + mov r3, r10 + bl FUN_020A5608 + ldr r1, [sp, #0x20] + str r10, [sp, #0x0] + mov r0, #0x0 + mov r2, r9 + mov r3, r1 + str r7, [sp, #0x4] + bl FUN_020A5240 + str r10, [sp, #0x0] + ldr r1, [sp, #0x1c] + mov r0, #0x0 + mov r2, r9 + mov r3, r11 + str r7, [sp, #0x4] + bl FUN_020A5240 + movs r0, r8, lsl #0x4 + mov r7, #0x0 + str r0, [sp, #0x28] + beq _020A4D9C + mov r0, #0x1 + str r0, [sp, #0x2c] + mov r0, #0x8000 + str r0, [sp, #0x30] +_020A4D14: + str r8, [sp, #0x0] + str r9, [sp, #0x4] + str r6, [sp, #0x8] + str r5, [sp, #0xc] + ldr r1, [sp, #0x24] + ldr r2, [sp, #0x2c] + mov r0, r11 + mov r3, r10 + str r4, [sp, #0x10] + bl FUN_020A4DE8 + ldr r0, [sp, #0x30] + and r1, r7, #0xf + mov r0, r0, lsr r1 + sub r1, r8, r7, asr #0x4 + sub r1, r1, #0x1 + mov r2, r1, lsl #0x1 + ldr r1, [sp, #0x18] + ldrh r1, [r1, r2] + ands r0, r0, r1 + beq _020A4D8C + str r8, [sp, #0x0] + str r9, [sp, #0x4] + str r6, [sp, #0x8] + str r5, [sp, #0xc] + ldr r1, [sp, #0x24] + ldr r2, [sp, #0x20] + mov r0, r11 + mov r3, r10 + str r4, [sp, #0x10] + bl FUN_020A4DE8 +_020A4D8C: + ldr r0, [sp, #0x28] + add r7, r7, #0x1 + cmp r7, r0 + blo _020A4D14 +_020A4D9C: + str r8, [sp, #0x0] + str r9, [sp, #0x4] + str r6, [sp, #0x8] + str r5, [sp, #0xc] + ldr r1, [sp, #0x24] + mov r0, r11 + mov r3, r10 + mov r2, #0x0 + str r4, [sp, #0x10] + bl FUN_020A4DE8 + ldr r1, _020A4DE4 ; =0x021C8EF4 + ldr r0, [sp, #0x1c] + ldr r1, [r1, #0x0] + blx r1 + add sp, sp, #0x34 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020A4DE0: .word 0x021C8EC8 +_020A4DE4: .word 0x021C8EF4 + + arm_func_start FUN_020A4DE8 +FUN_020A4DE8: ; 0x020A4DE8 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r5, r3 + mov r7, r5, lsl #0x1 + mov r8, r2 + mov r2, r7 + mov r6, r0 + mov r9, r1 + ldr r4, [sp, #0x20] + bl MI_CpuCopy8 + cmp r8, #0x1 + bne _020A4E2C + mov r0, r6 + mov r1, r9 + mov r2, r5 + bl FUN_020A5438 + b _020A4E48 +_020A4E2C: + cmp r8, #0x0 + beq _020A4E48 + mov r0, r6 + mov r1, r9 + mov r2, r8 + mov r3, r5 + bl FUN_020A5608 +_020A4E48: + ldr r0, [sp, #0x2c] + ldr r2, [sp, #0x28] + mov r1, r6 + mov r3, r4 + bl FUN_020A5608 + sub r1, r5, r4 + ldr r0, [sp, #0x2c] + mov r8, r1, lsl #0x1 + mov r2, r8 + add r0, r0, r4, lsl #0x1 + mov r1, #0x0 + bl MI_CpuFill8 + ldr r0, [sp, #0x30] + ldr r1, [sp, #0x2c] + ldr r2, [sp, #0x24] + mov r3, r5 + bl FUN_020A5608 + mov r0, r6 + mov r1, r6 + ldr r2, [sp, #0x30] + mov r3, r5 + bl FUN_020A5930 + mov r2, r8 + mov r0, r6 + add r1, r6, r4, lsl #0x1 + bl memmove + add r0, r6, r5, lsl #0x1 + sub r0, r0, r4, lsl #0x1 + mov r2, r4, lsl #0x1 + mov r1, #0x0 + bl MI_CpuFill8 + mov r0, r6 + ldr r1, [sp, #0x24] + mov r2, r5 + bl FUN_020A570C +_020A4ED4: ; 0x020A4ED4 + cmp r0, #0x0 + beq _020A4EF0 + cmp r0, #0x1 + beq _020A4F0C + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr +_020A4EF0: + mov r0, r6 + mov r2, r7 + mov r1, #0x0 + bl MI_CpuFill8 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr +_020A4F0C: + ldr r2, [sp, #0x24] + mov r0, r6 + mov r1, r6 + mov r3, r5 + bl FUN_020A57BC + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start FUN_020A4F2C +FUN_020A4F2C: ; 0x020A4F2C + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x14 + ldr r9, [sp, #0x38] + mov r10, r3 + add r11, r9, r10, lsl #0x1 + add r8, r11, r10, lsl #0x1 + add r7, r8, r10, lsl #0x1 + add r6, r7, r10, lsl #0x1 + add r5, r6, r10, lsl #0x1 + str r0, [sp, #0x8] + mov r0, r1 + add r1, r5, r10, lsl #0x1 + str r1, [sp, #0x10] + mov r4, r10, lsl #0x1 + str r2, [sp, #0xc] + mov r1, r9 + mov r2, r4 + bl MI_CpuCopy8 + ldr r0, [sp, #0xc] + mov r1, r8 + mov r2, r4 + bl MI_CpuCopy8 + mov r0, #0x1 + strh r0, [r8, r4] + mov r0, r9 + mov r1, r10 + bl FUN_020A59DC +_020A4F98: ; 0x020A4F98 + cmp r0, #0x0 + ble _020A503C +_020A4FA0: + ldr r3, [sp, #0x10] + str r10, [sp, #0x0] + str r3, [sp, #0x4] + mov r0, r11 + mov r1, r8 + mov r2, r9 + mov r3, r5 + bl FUN_020A5240 + mov r0, r9 + mov r1, r8 + mov r2, r4 + bl MI_CpuCopy8 + mov r0, r5 + mov r1, r9 + mov r2, r4 + bl MI_CpuCopy8 + mov r0, r5 + mov r1, r11 + mov r2, r7 + mov r3, r10 + bl FUN_020A5608 + mov r0, r5 + mov r1, r6 + mov r2, r5 + mov r3, r10 + bl FUN_020A57BC + mov r0, r7 + mov r1, r6 + mov r2, r4 + bl MI_CpuCopy8 + mov r0, r5 + mov r1, r7 + mov r2, r4 + bl MI_CpuCopy8 + mov r0, r9 + mov r1, r10 + bl FUN_020A59DC +_020A5034: ; 0x020A5034 + cmp r0, #0x0 + bgt _020A4FA0 +_020A503C: + ldr r2, [sp, #0xc] + mov r0, r6 + mov r1, r6 + mov r3, r10 + bl FUN_020A5930 + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x8] + ldr r4, [sp, #0x10] + str r10, [sp, #0x0] + mov r1, r6 + mov r0, #0x0 + str r4, [sp, #0x4] + bl FUN_020A5240 + add sp, sp, #0x14 + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_020A507C +FUN_020A507C: ; 0x020A507C + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x1c + ldr r4, _020A5238 ; =0x021C8EC8 + mov r8, r3 + ldr r3, [r4, #0x0] + mov r10, r0 + mov r0, r8, lsl #0x3 + ldr r7, [sp, #0x40] + str r1, [sp, #0x8] + mov r9, r2 + blx r3 + movs r6, r0 + addeq sp, sp, #0x1c + ldmeqia sp!, {r4-r11,lr} + bxeq lr + sub r1, r8, #0x1 + add r0, r10, #0x2 + mov r2, r1, lsl #0x1 + mov r1, #0x0 + add r11, r6, r8, lsl #0x1 + bl MI_CpuFill8 + mov r2, #0x1 + mov r0, r9 + mov r1, r8 + strh r2, [r10, #0x0] + bl thunk_FUN_020a5a28 +_020A50E4: ; 0x020A50E4 + sub r0, r8, r0 + mov r5, r0, lsl #0x4 + mov r4, r8, lsl #0x4 + cmp r5, r4 + bhs _020A5140 + mov r0, #0x8000 +_020A50FC: + sub r1, r8, r5, asr #0x4 + sub r1, r1, #0x1 + mov r1, r1, lsl #0x1 + and r2, r5, #0xf + ldrh r1, [r9, r1] + mov r2, r0, lsr r2 + ands r1, r2, r1 + beq _020A5134 + ldr r0, [sp, #0x8] + mov r1, r10 + mov r2, r8, lsl #0x1 + bl MI_CpuCopy8 + add r5, r5, #0x1 + b _020A5140 +_020A5134: + add r5, r5, #0x1 + cmp r5, r4 + blo _020A50FC +_020A5140: + cmp r5, r4 + bhs _020A521C + mov r0, r8, lsl #0x1 + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + mov r0, #0x8000 + str r0, [sp, #0x14] +_020A5160: + mov r0, r6 + mov r1, r10 + mov r2, r8 + bl FUN_020A5438 + ldr r2, [sp, #0xc] + mov r0, r6 + mov r1, r10 + bl MI_CpuCopy8 +_020A5180: ; 0x020A5180 + cmp r7, #0x0 + beq _020A51A4 + ldr r0, [sp, #0x10] + str r8, [sp, #0x0] + mov r1, r10 + mov r2, r7 + mov r3, r10 + str r11, [sp, #0x4] + bl FUN_020A5240 +_020A51A4: + sub r0, r8, r5, asr #0x4 + sub r0, r0, #0x1 + mov r1, r0, lsl #0x1 + ldr r0, [sp, #0x14] + and r2, r5, #0xf + mov r2, r0, lsr r2 + ldrh r0, [r9, r1] + ands r0, r2, r0 + beq _020A5210 + ldr r2, [sp, #0x8] + mov r0, r6 + mov r1, r10 + mov r3, r8 + bl FUN_020A5608 + ldr r2, [sp, #0xc] + mov r0, r6 + mov r1, r10 + bl MI_CpuCopy8 +_020A51EC: ; 0x020A51EC + cmp r7, #0x0 + beq _020A5210 + ldr r0, [sp, #0x10] + str r8, [sp, #0x0] + mov r1, r10 + mov r2, r7 + mov r3, r10 + str r11, [sp, #0x4] + bl FUN_020A5240 +_020A5210: + add r5, r5, #0x1 + cmp r5, r4 + blo _020A5160 +_020A521C: + ldr r1, _020A523C ; =0x021C8EF4 + mov r0, r6 + ldr r1, [r1, #0x0] + blx r1 + add sp, sp, #0x1c + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020A5238: .word 0x021C8EC8 +_020A523C: .word 0x021C8EF4 + + arm_func_start FUN_020A5240 +FUN_020A5240: ; 0x020A5240 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x24 + ldr r9, [sp, #0x48] + ldr r6, [sp, #0x4c] + str r1, [sp, #0x4] + add r5, r6, r9, lsl #0x1 + str r0, [sp, #0x0] + mov r10, r2 + mov r0, r5 + mov r2, r9, lsl #0x2 + mov r1, #0x0 + str r3, [sp, #0x8] + add r4, r5, r9, lsl #0x1 + bl MI_CpuFill8 + ldr r0, [sp, #0x4] + mov r1, r9 + bl thunk_FUN_020a5a28 + mov r11, r0 + mov r0, r10 + mov r1, r9 + bl thunk_FUN_020a5a28 + mov r7, r0 + cmp r11, #0x0 + ble _020A53E8 + cmp r7, #0x0 + ble _020A53E8 + sub r0, r9, r11 + add r0, r7, r0 + sub r8, r0, #0x1 + cmp r8, r9 + blt _020A52D0 + ldr r0, [sp, #0x4] + mov r1, r4 + mov r2, r9, lsl #0x1 + bl MI_CpuCopy8 + b _020A53E8 +_020A52D0: + ldr r0, [sp, #0x4] + add r1, r5, r8, lsl #0x1 + mov r2, r11, lsl #0x1 + bl MI_CpuCopy8 + cmp r7, #0x2 + ble _020A5304 + add r0, r10, r7, lsl #0x1 + sub r0, r0, #0x2 + mov r7, r7, lsl #0x1 + bl FUN_020A4AD8 + str r0, [sp, #0x14] + str r1, [sp, #0x10] + b _020A5340 +_020A5304: + cmp r7, #0x1 + ble _020A5328 + add r0, r10, r7, lsl #0x1 + sub r0, r0, #0x2 + mov r7, r7, lsl #0x1 + bl FUN_020A4AC8 + str r0, [sp, #0x14] + str r1, [sp, #0x10] + b _020A5340 +_020A5328: + add r0, r10, r7, lsl #0x1 + sub r0, r0, #0x2 + mov r7, r7, lsl #0x1 + bl FUN_020A4ABC + str r0, [sp, #0x14] + str r1, [sp, #0x10] +_020A5340: + cmp r8, r9 + bge _020A53E8 + mov r0, r9, lsl #0x1 + sub r0, r0, #0x1 + mov r11, r0, lsl #0x1 + add r0, r4, r7 + str r0, [sp, #0x1c] +_020A535C: + mov r1, r5 + add r0, r5, #0x2 + mov r2, r11 + bl memmove + ldr r0, [sp, #0x1c] + bl FUN_020A4AEC + ldr r2, [sp, #0x14] + ldr r3, [sp, #0x10] + bl _ll_udiv + mov r7, r0 + ldr r0, _020A5434 ; =0x0000FFFF + cmp r7, r0 + movhi r7, r0 +_020A5390: + mov r2, r7, lsl #0x10 + mov r0, r6 + mov r1, r10 + mov r2, r2, lsr #0x10 + mov r3, r9 + bl FUN_020A5584 + mov r0, r4 + mov r1, r6 + mov r2, r9 + bl FUN_020A570C +_020A53B8: ; 0x020A53B8 + cmp r0, #0x0 + sublt r7, r7, #0x1 + blt _020A5390 + mov r0, r4 + mov r1, r4 + mov r2, r6 + mov r3, r9 + bl FUN_020A57BC + strh r7, [r5, #0x0] + add r8, r8, #0x1 + cmp r8, r9 + blt _020A535C +_020A53E8: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _020A5404 + ldr r1, [sp, #0x0] + mov r0, r5 + mov r2, r9, lsl #0x1 + bl MI_CpuCopy8 +_020A5404: + ldr r0, [sp, #0x8] + cmp r0, #0x0 + addeq sp, sp, #0x24 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldr r1, [sp, #0x8] + mov r0, r4 + mov r2, r9, lsl #0x1 + bl MI_CpuCopy8 + add sp, sp, #0x24 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020A5434: .word 0x0000FFFF + + arm_func_start FUN_020A5438 +FUN_020A5438: ; 0x020A5438 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r9, r1 + mov r8, r2 + mov r10, r0 + mov r0, r9 + mov r1, r8 + bl thunk_FUN_020a5a28 + mov r11, r0 + mov r0, r11, lsl #0x1 + cmp r0, r8 + bge _020A547C + sub r1, r8, r0 + add r0, r10, r0, lsl #0x1 + mov r2, r1, lsl #0x1 + mov r1, #0x0 + bl MI_CpuFill8 +_020A547C: + cmp r11, #0x0 + mov r1, #0x0 + ble _020A54D4 + mov r0, r1 + sub r4, r8, #0x1 +_020A5490: + cmp r0, r8 + bge _020A54D4 + mov r2, r1, lsl #0x1 + ldrh r5, [r9, r2] + mov r2, r0, lsl #0x1 + cmp r0, r4 + mul r3, r5, r5 + strh r3, [r10, r2] + beq _020A54D4 + add r2, r0, #0x1 + add r1, r1, #0x1 + mov r3, r3, lsr #0x10 + mov r2, r2, lsl #0x1 + strh r3, [r10, r2] + cmp r1, r11 + add r0, r0, #0x2 + blt _020A5490 +_020A54D4: + cmp r11, #0x0 + mov r6, #0x0 + addle sp, sp, #0x4 + ldmleia sp!, {r4-r11,lr} + bxle lr +_020A54E8: + add r7, r6, #0x1 + b _020A5554 +_020A54F0: + mov r1, r7, lsl #0x1 + mov r0, r6, lsl #0x1 + ldrh r1, [r9, r1] + ldrh r0, [r9, r0] + mul r4, r1, r0 + ldr r0, _020A5580 ; =0x7FFF8000 + cmp r4, r0 + bhi _020A5528 + mov r0, r10 + mov r2, r5 + mov r3, r8 + mov r1, r4, lsl #0x1 + bl FUN_020A56C4 + b _020A5550 +_020A5528: + mov r0, r10 + mov r1, r4 + mov r2, r5 + mov r3, r8 + bl FUN_020A56C4 + mov r0, r10 + mov r1, r4 + mov r2, r5 + mov r3, r8 + bl FUN_020A56C4 +_020A5550: + add r7, r7, #0x1 +_020A5554: + cmp r7, r11 + bge _020A5568 + add r5, r6, r7 + cmp r5, r8 + blt _020A54F0 +_020A5568: + add r6, r6, #0x1 + cmp r6, r11 + blt _020A54E8 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020A5580: .word 0x7FFF8000 + + arm_func_start FUN_020A5584 +FUN_020A5584: ; 0x020A5584 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r1 + mov r4, r3 + mov r7, r0 + mov r0, r6 + mov r1, r4 + mov r5, r2 + bl thunk_FUN_020a5a28 + mov r3, #0x0 + mov r12, r3 + cmp r0, #0x0 + ble _020A55D8 +_020A55B8: + mov r2, r12, lsl #0x1 + ldrh r1, [r6, r2] + add r12, r12, #0x1 + cmp r12, r0 + mla r1, r5, r1, r3 + strh r1, [r7, r2] + mov r3, r1, lsr #0x10 + blt _020A55B8 +_020A55D8: + cmp r12, r4 + movlt r0, r12, lsl #0x1 + addlt r12, r12, #0x1 + sub r1, r4, r12 + strlth r3, [r7, r0] + mov r2, r1, lsl #0x1 + add r0, r7, r12, lsl #0x1 + mov r1, #0x0 + bl MI_CpuFill8 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_020A5608 +FUN_020A5608: ; 0x020A5608 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + mov r8, r3 + mov r10, r1 + mov r9, r2 + mov r2, r8, lsl #0x1 + mov r1, #0x0 + mov r11, r0 + bl MI_CpuFill8 + mov r0, r10 + mov r1, r8 + bl thunk_FUN_020a5a28 + mov r5, r0 + mov r0, r9 + mov r1, r8 + bl thunk_FUN_020a5a28 +_020A5648: ; 0x020A5648 + str r0, [sp, #0x0] + cmp r0, #0x0 + mov r7, #0x0 + addle sp, sp, #0xc + ldmleia sp!, {r4-r11,lr} + bxle lr + str r7, [sp, #0x4] +_020A5664: + ldr r6, [sp, #0x4] + sub r4, r8, r7 + b _020A5698 +_020A5670: + mov r1, r6, lsl #0x1 + mov r0, r7, lsl #0x1 + ldrh r2, [r10, r1] + ldrh r1, [r9, r0] + mov r0, r11 + mov r3, r8 + mul r1, r2, r1 + add r2, r7, r6 + bl FUN_020A56C4 + add r6, r6, #0x1 +_020A5698: + cmp r6, r5 + bge _020A56A8 + cmp r6, r4 + blt _020A5670 +_020A56A8: + ldr r0, [sp, #0x0] + add r7, r7, #0x1 + cmp r7, r0 + blt _020A5664 + add sp, sp, #0xc + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FUN_020A56C4 +FUN_020A56C4: ; 0x020A56C4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + b _020A56E8 +_020A56D0: + mov lr, r2, lsl #0x1 + ldrh r12, [r0, lr] + add r2, r2, #0x1 + add r1, r1, r12 + strh r1, [r0, lr] + mov r1, r1, lsr #0x10 +_020A56E8: + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + cmp r2, r3 + blt _020A56D0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_020A570C +FUN_020A570C: + subs r12, r2, #0x1 + bmi _020A5740 +_020A5714: + mov r2, r12, lsl #0x1 + ldrh r3, [r1, r2] + ldrh r2, [r0, r2] + cmp r2, r3 + movhi r0, #0x1 + bxhi lr + cmp r2, r3 + mvncc r0, #0x0 + bxcc lr + subs r12, r12, #0x1 + bpl _020A5714 +_020A5740: + mov r0, #0x0 + bx lr + + arm_func_start FUN_020A5748 +FUN_020A5748: ; 0x020A5748 + stmdb sp!, {r4,lr} + cmp r3, #0x0 + mov r4, #0x0 + ble _020A5780 +_020A5758: + mov lr, r4, lsl #0x1 + ldrh r12, [r1, lr] + sub r12, r12, r2 + mov r2, r12, lsr #0x10 + strh r12, [r0, lr] + ands r2, r2, #0x1 + beq _020A5780 + add r4, r4, #0x1 + cmp r4, r3 + blt _020A5758 +_020A5780: + cmp r0, r1 + ldmeqia sp!, {r4,lr} + bxeq lr + add r4, r4, #0x1 + cmp r4, r3 + ldmgeia sp!, {r4,lr} + bxge lr +_020A579C: + mov r12, r4, lsl #0x1 + ldrh r2, [r1, r12] + add r4, r4, #0x1 + cmp r4, r3 + strh r2, [r0, r12] + blt _020A579C + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020A57BC +FUN_020A57BC: ; 0x020A57BC + stmdb sp!, {r4-r8,lr} + mov r7, r1 + mov r5, r3 + mov r8, r0 + mov r6, r2 + mov r0, r7 + mov r1, r5 + bl thunk_FUN_020a5a28 + mov r4, r0 + mov r0, r6 + mov r1, r5 + bl thunk_FUN_020a5a28 +_020A57EC: ; 0x020A57EC + cmp r4, r0 + movlt r4, r0 + mov r3, #0x0 + cmp r4, r5 + addne r4, r4, #0x1 + mov r12, r3 + b _020A5828 +_020A5808: + mov r2, r12, lsl #0x1 + ldrh r1, [r7, r2] + ldrh r0, [r6, r2] + add r12, r12, #0x1 + sub r0, r1, r0 + add r0, r3, r0 + strh r0, [r8, r2] + mov r3, r0, asr #0x10 +_020A5828: + cmp r12, r4 + blt _020A5808 + cmp r12, r5 + bge _020A5840 + cmp r3, #0x0 + bne _020A5808 +_020A5840: + cmp r8, r7 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + cmp r8, r6 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + sub r1, r5, r12 + add r0, r8, r12, lsl #0x1 + mov r2, r1, lsl #0x1 + mov r1, #0x0 + bl MI_CpuFill8 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_020A5874 +FUN_020A5874: ; 0x020A5874 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r3, r1 + cmp r3, #0x0 + mov r12, #0x0 + ble _020A58A8 +_020A588C: + mov r2, r12, lsl #0x1 + ldrh r1, [r0, r2] + add r12, r12, #0x1 + cmp r12, r3 + mvn r1, r1 + strh r1, [r0, r2] + blt _020A588C +_020A58A8: + mov r1, r0 + mov r2, #0x1 + bl FUN_020A58C0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_020A58C0 +FUN_020A58C0: ; 0x020A58C0 + stmdb sp!, {r4,lr} + cmp r3, #0x0 + mov r4, #0x0 + ble _020A58F4 +_020A58D0: + mov lr, r4, lsl #0x1 + ldrh r12, [r1, lr] + add r2, r2, r12 + strh r2, [r0, lr] + movs r2, r2, lsr #0x10 + beq _020A58F4 + add r4, r4, #0x1 + cmp r4, r3 + blt _020A58D0 +_020A58F4: + cmp r0, r1 + ldmeqia sp!, {r4,lr} + bxeq lr + add r4, r4, #0x1 + cmp r4, r3 + ldmgeia sp!, {r4,lr} + bxge lr +_020A5910: + mov r12, r4, lsl #0x1 + ldrh r2, [r1, r12] + add r4, r4, #0x1 + cmp r4, r3 + strh r2, [r0, r12] + blt _020A5910 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020A5930 +FUN_020A5930: ; 0x020A5930 + stmdb sp!, {r4-r8,lr} + mov r7, r1 + mov r5, r3 + mov r8, r0 + mov r6, r2 + mov r0, r7 + mov r1, r5 + bl thunk_FUN_020a5a28 + mov r4, r0 + mov r0, r6 + mov r1, r5 + bl thunk_FUN_020a5a28 +_020A5960: ; 0x020A5960 + cmp r4, r0 + movlt r4, r0 + cmp r4, r5 + addne r4, r4, #0x1 + mov r3, #0x0 + mov r12, r3 + cmp r4, #0x0 + ble _020A59A8 +_020A5980: + mov r2, r12, lsl #0x1 + ldrh r1, [r7, r2] + ldrh r0, [r6, r2] + add r12, r12, #0x1 + cmp r12, r4 + add r0, r1, r0 + add r0, r3, r0 + strh r0, [r8, r2] + mov r3, r0, lsr #0x10 + blt _020A5980 +_020A59A8: + cmp r8, r7 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + cmp r8, r6 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + sub r1, r5, r12 + add r0, r8, r12, lsl #0x1 + mov r2, r1, lsl #0x1 + mov r1, #0x0 + bl MI_CpuFill8 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FUN_020A59DC +FUN_020A59DC: + stmdb sp!, {lr} + sub sp, sp, #0x4 + sub r2, r1, #0x1 + mov r2, r2, lsl #0x1 + ldrh r2, [r0, r2] + ands r2, r2, #0x8000 + addne sp, sp, #0x4 + mvnne r0, #0x0 + ldmneia sp!, {lr} + bxne lr + bl thunk_FUN_020a5a28 +_020A5A08: ; 0x020A5A08 + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start thunk_FUN_020a5a28 +thunk_FUN_020a5a28: + b _020A5A28 +_020A5A24: + sub r1, r1, #0x1 +_020A5A28: + cmp r1, #0x0 + beq _020A5A44 + sub r2, r1, #0x1 + mov r2, r2, lsl #0x1 + ldrh r2, [r0, r2] + cmp r2, #0x0 + beq _020A5A24 +_020A5A44: + mov r0, r1 + bx lr + + arm_func_start FUN_020A5A4C +FUN_020A5A4C: ; 0x020A5A4C + mov r1, r0 + mov r0, #0x0 + mov r3, #0x1 +_020A5A58: + clz r2, r1 + rsbs r2, r2, #0x1f + bxcc lr + bic r1, r1, r3, lsl r2 + add r0, r0, #0x1 + b _020A5A58 + + arm_func_start FUN_020A5A70 +FUN_020A5A70: ; 0x020A5A70 + clz r0, r0 + bx lr + + arm_func_start FUN_020A5A78 +FUN_020A5A78: ; 0x020A5A78 + stmdb sp!, {r4,lr} + sub sp, sp, #0x8 + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + bne _020A5D80 + ldr r2, _020A5DA8 ; =0x021CA86C + mov r0, #0x0 + ldr r1, [r2, #0x0] + add r1, r1, #0x2000 + strb r0, [r1, #0x26b] + ldr r1, [r2, #0x0] + add r1, r1, #0x2200 + strh r0, [r1, #0x82] + ldr r3, [r2, #0x0] + add r1, r3, #0x2000 + ldr r1, [r1, #0x260] + cmp r1, #0xd + addls pc, pc, r1, lsl #0x2 + b _020A5D4C +_020A5AC4: + b _020A5D4C +_020A5AC8: + b _020A5D4C +_020A5ACC: + b _020A5D4C +_020A5AD0: + b _020A5D4C +_020A5AD4: + b _020A5D4C +_020A5AD8: + b _020A5AFC +_020A5ADC: + b _020A5AFC +_020A5AE0: + b _020A5B24 +_020A5AE4: + b _020A5B4C +_020A5AE8: + b _020A5C74 +_020A5AEC: + b _020A5CA4 +_020A5AF0: + b _020A5D4C +_020A5AF4: + b _020A5C74 +_020A5AF8: + b _020A5CD4 +_020A5AFC: + mov r0, #0x3 + bl FUN_020A6C38 + mov r1, #0x0 + ldr r3, _020A5DAC ; =0x000008F5 + mov r2, r1 + mov r0, #0x1 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020A5B24: + mov r0, #0x3 + bl FUN_020A6C38 +_020A5B2C: ; 0x020A5B2C + mov r0, #0x0 + ldr r3, _020A5DB0 ; =0x000008FB + mov r1, r0 + mov r2, r0 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020A5B4C: + add r1, r3, #0x2200 + ldrh r4, [r1, #0xf8] + strh r0, [r1, #0xf8] + cmp r4, #0x12 + bne _020A5C44 + ldr r1, [r2, #0x0] + add r1, r1, #0x2100 + ldrh r3, [r1, #0x70] + and r12, r3, #0x24 + cmp r12, #0x24 + beq _020A5C44 + orr r3, r3, #0x24 + strh r3, [r1, #0x70] + ldr r2, [r2, #0x0] + add r1, r2, #0x2000 + ldr r3, [r1, #0x264] + and r1, r3, #0xc0000 + cmp r1, #0xc0000 + moveq r0, #0x1 + mov r0, r0, lsl #0x10 + mov r12, r0, lsr #0x10 + and r1, r3, #0x30000 + cmp r1, #0x30000 + movne r3, #0x1 + add r1, r2, #0x2140 + ldr r0, _020A5DB4 ; =FUN_020A6144 + moveq r3, #0x0 + mov r2, #0x0 + str r12, [sp, #0x0] + bl WM_StartConnectEx + cmp r0, #0x2 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4,lr} + bxeq lr + cmp r0, #0x3 + beq _020A5C14 + cmp r0, #0x8 + bne _020A5C14 + mov r0, #0xc + bl FUN_020A6C38 + ldr r0, _020A5DA8 ; =0x021CA86C + ldr r3, _020A5DB8 ; =0x0000091C + ldr r0, [r0, #0x0] + mov r2, r4 + add r1, r0, #0x2140 + mov r0, #0x1 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020A5C14: + mov r0, #0xb + bl FUN_020A6C38 + ldr r0, _020A5DA8 ; =0x021CA86C + ldr r3, _020A5DBC ; =0x00000925 + ldr r0, [r0, #0x0] + mov r2, r4 + add r1, r0, #0x2140 + mov r0, #0x7 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020A5C44: + mov r0, #0x3 + bl FUN_020A6C38 + ldr r0, _020A5DA8 ; =0x021CA86C + ldr r3, _020A5DC0 ; =0x0000092D + ldr r0, [r0, #0x0] + mov r2, r4 + add r1, r0, #0x2140 + mov r0, #0x1 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020A5C74: + mov r0, #0x3 + bl FUN_020A6C38 + ldr r0, _020A5DA8 ; =0x021CA86C + ldr r3, _020A5DC4 ; =0x00000935 + ldr r1, [r0, #0x0] + mov r0, #0x0 + add r1, r1, #0x2140 + mov r2, #0x1 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020A5CA4: + mov r0, #0x3 + bl FUN_020A6C38 + ldr r1, _020A5DA8 ; =0x021CA86C + mov r0, #0x0 + ldr r1, [r1, #0x0] + ldr r3, _020A5DC8 ; =0x0000093C + mov r2, r0 + add r1, r1, #0x2140 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020A5CD4: + ldr r0, _020A5DCC ; =FUN_020A6768 + bl WM_PowerOff + cmp r0, #0x2 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4,lr} + bxeq lr + cmp r0, #0x3 + beq _020A5D24 + cmp r0, #0x8 + bne _020A5D24 + mov r0, #0xc + bl FUN_020A6C38 + mov r1, #0x0 + ldr r3, _020A5DD0 ; =0x0000094A + mov r2, r1 + mov r0, #0x1 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020A5D24: + mov r0, #0xb + bl FUN_020A6C38 + mov r1, #0x0 + ldr r3, _020A5DD4 ; =0x00000953 + mov r2, r1 + mov r0, #0x7 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020A5D4C: + mov r0, #0xb + bl FUN_020A6C38 + ldr r0, _020A5DA8 ; =0x021CA86C + ldr r3, _020A5DD8 ; =0x00000959 + ldr r1, [r0, #0x0] + mov r0, #0x7 + add r1, r1, #0x2000 + ldr r2, [r1, #0x260] + mov r1, #0x0 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020A5D80: + mov r0, #0xb + bl FUN_020A6C38 + mov r1, #0x0 + mov r2, r1 + mov r0, #0x7 + mov r3, #0x960 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A5DA8: .word 0x021CA86C +_020A5DAC: .word 0x000008F5 +_020A5DB0: .word 0x000008FB +_020A5DB4: .word FUN_020A6144 +_020A5DB8: .word 0x0000091C +_020A5DBC: .word 0x00000925 +_020A5DC0: .word 0x0000092D +_020A5DC4: .word 0x00000935 +_020A5DC8: .word 0x0000093C +_020A5DCC: .word FUN_020A6768 +_020A5DD0: .word 0x0000094A +_020A5DD4: .word 0x00000953 +_020A5DD8: .word 0x00000959 + + arm_func_start FUN_020A5DDC +FUN_020A5DDC: ; 0x020A5DDC + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrh r0, [r0, #0x2] + cmp r0, #0x4 + addls pc, pc, r0, lsl #0x2 + b _020A5EF4 +_020A5DF4: + b _020A5E08 +_020A5DF8: + b _020A5EDC +_020A5DFC: + b _020A5EF4 +_020A5E00: + b _020A5EDC +_020A5E04: + b _020A5EF4 +_020A5E08: + ldr r0, _020A5F24 ; =0x021CA86C + ldr r0, [r0, #0x0] + add r0, r0, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #0xc + bne _020A5E38 + mov r0, #0xa + bl FUN_020A6C38 + bl FUN_020A6B28 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A5E38: + ldr r0, _020A5F28 ; =FUN_020A6058 + mov r1, #0x0 + bl WM_Disconnect + cmp r0, #0x2 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + cmp r0, #0x3 + beq _020A5E94 + cmp r0, #0x8 + bne _020A5EAC + mov r0, #0xc + bl FUN_020A6C38 + ldr r0, _020A5F24 ; =0x021CA86C + ldr r3, _020A5F2C ; =0x000008B4 + ldr r1, [r0, #0x0] + mov r0, #0x1 + add r1, r1, #0x2140 + mov r2, #0x0 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A5E94: + mov r0, #0xa + bl FUN_020A6C38 + bl FUN_020A6B28 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A5EAC: + mov r0, #0xb + bl FUN_020A6C38 + ldr r1, _020A5F24 ; =0x021CA86C + mov r0, #0x7 + ldr r1, [r1, #0x0] + mov r2, #0x0 + add r1, r1, #0x2140 + mov r3, #0x8c0 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A5EDC: + mov r0, #0xa + bl FUN_020A6C38 + bl FUN_020A6B28 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A5EF4: + mov r0, #0xb + bl FUN_020A6C38 + ldr r0, _020A5F24 ; =0x021CA86C + ldr r3, _020A5F30 ; =0x000008D3 + ldr r1, [r0, #0x0] + mov r0, #0x7 + add r1, r1, #0x2140 + mov r2, #0x0 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A5F24: .word 0x021CA86C +_020A5F28: .word FUN_020A6058 +_020A5F2C: .word 0x000008B4 +_020A5F30: .word 0x000008D3 + + arm_func_start FUN_020A5F34 +FUN_020A5F34: ; 0x020A5F34 + stmdb sp!, {r4,lr} + mov r4, r0 + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + beq _020A5F50 + cmp r0, #0x4 + b _020A601C +_020A5F50: + ldrh r0, [r4, #0x4] + cmp r0, #0xe + beq _020A5F68 + cmp r0, #0xf + beq _020A5FC0 + b _020A5FF0 +_020A5F68: + ldr r0, _020A6048 ; =0x021CA86C + ldr r0, [r0, #0x0] + add r0, r0, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #0xc + bne _020A5F94 + mov r0, #0x8 + bl FUN_020A6C38 + bl FUN_020A6B28 + ldmia sp!, {r4,lr} + bx lr +_020A5F94: + mov r0, #0x9 + bl FUN_020A6C38 + ldr r1, _020A6048 ; =0x021CA86C + mov r0, #0x0 + ldr r1, [r1, #0x0] + ldr r3, _020A604C ; =0x00000872 + mov r2, r0 + add r1, r1, #0x2140 + bl FUN_020A6D3C + ldmia sp!, {r4,lr} + bx lr +_020A5FC0: + ldr r0, [r4, #0x8] + ldrh r0, [r0, #0xe] + mov r0, r0, asr #0x8 + and r0, r0, #0xff + bl FUN_020A89D0 + ldr r0, [r4, #0x8] + mov r1, #0x620 + bl DC_InvalidateRange + ldr r0, [r4, #0x8] + bl FUN_020A8934 + ldmia sp!, {r4,lr} + bx lr +_020A5FF0: + mov r0, #0xb + bl FUN_020A6C38 + ldr r0, _020A6048 ; =0x021CA86C + ldrh r2, [r4, #0x4] + ldr r0, [r0, #0x0] + ldr r3, _020A6050 ; =0x00000881 + add r1, r0, #0x2140 + mov r0, #0x7 + bl FUN_020A6D3C + ldmia sp!, {r4,lr} + bx lr +_020A601C: + mov r0, #0xb + bl FUN_020A6C38 + ldr r0, _020A6048 ; =0x021CA86C + ldr r3, _020A6054 ; =0x0000088C + ldr r1, [r0, #0x0] + mov r0, #0x7 + add r1, r1, #0x2140 + mov r2, #0x0 + bl FUN_020A6D3C + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A6048: .word 0x021CA86C +_020A604C: .word 0x00000872 +_020A6050: .word 0x00000881 +_020A6054: .word 0x0000088C + + arm_func_start FUN_020A6058 +FUN_020A6058: ; 0x020A6058 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrh r0, [r0, #0x2] + cmp r0, #0x4 + addls pc, pc, r0, lsl #0x2 + b _020A6108 +_020A6070: + b _020A6084 +_020A6074: + b _020A60F0 +_020A6078: + b _020A6108 +_020A607C: + b _020A60F0 +_020A6080: + b _020A6108 +_020A6084: + ldr r0, _020A6138 ; =0x021CA86C + ldr r1, [r0, #0x0] + add r0, r1, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #0xc + bne _020A60B4 + mov r0, #0xa + bl FUN_020A6C38 + bl FUN_020A6B28 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A60B4: + add r1, r1, #0x2200 + mov r2, #0x0 + mov r0, #0x3 + strh r2, [r1, #0x82] + bl FUN_020A6C38 + ldr r1, _020A6138 ; =0x021CA86C + mov r0, #0x0 + ldr r1, [r1, #0x0] + ldr r3, _020A613C ; =0x0000083D + mov r2, r0 + add r1, r1, #0x2140 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A60F0: + mov r0, #0xa + bl FUN_020A6C38 + bl FUN_020A6B28 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A6108: + mov r0, #0xb + bl FUN_020A6C38 + ldr r0, _020A6138 ; =0x021CA86C + ldr r3, _020A6140 ; =0x0000084F + ldr r1, [r0, #0x0] + mov r0, #0x7 + add r1, r1, #0x2140 + mov r2, #0x0 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A6138: .word 0x021CA86C +_020A613C: .word 0x0000083D +_020A6140: .word 0x0000084F + + arm_func_start FUN_020A6144 +FUN_020A6144: ; 0x020A6144 + stmdb sp!, {r4,lr} + mov r4, r0 + ldrh r0, [r4, #0x2] + cmp r0, #0xc + addls pc, pc, r0, lsl #0x2 + b _020A638C +_020A615C: + b _020A6190 +_020A6160: + b _020A6364 +_020A6164: + b _020A638C +_020A6168: + b _020A638C +_020A616C: + b _020A638C +_020A6170: + b _020A638C +_020A6174: + b _020A6378 +_020A6178: + b _020A638C +_020A617C: + b _020A638C +_020A6180: + b _020A638C +_020A6184: + b _020A638C +_020A6188: + b _020A6378 +_020A618C: + b _020A6378 +_020A6190: + ldrh r0, [r4, #0x8] + cmp r0, #0x9 + bgt _020A61D0 + cmp r0, #0x0 + addge pc, pc, r0, lsl #0x2 + b _020A6338 +_020A61A8: ; 0x020A61A8 + b _020A6338 +_020A61AC: ; 0x020A61AC + b _020A6338 +_020A61B0: ; 0x020A61B0 + b _020A6338 +_020A61B4: ; 0x020A61B4 + b _020A6338 +_020A61B8: ; 0x020A61B8 + b _020A6338 +_020A61BC: ; 0x020A61BC + b _020A6338 +_020A61C0: ; 0x020A61C0 + b _020A63B0 +_020A61C4: ; 0x020A61C4 + b _020A6258 +_020A61C8: ; 0x020A61C8 + b _020A61E0 +_020A61CC: ; 0x020A61CC + b _020A61E0 +_020A61D0: + cmp r0, #0x1a + ldmeqia sp!, {r4,lr} + bxeq lr + b _020A6338 +_020A61E0: + ldr r1, _020A63B8 ; =0x021CA86C + ldr r2, [r1, #0x0] + add r0, r2, #0x2000 + ldr r0, [r0, #0x260] + sub r0, r0, #0x8 + cmp r0, #0x4 + addls pc, pc, r0, lsl #0x2 + b _020A63B0 +_020A6200: + b _020A6220 +_020A6204: + b _020A6230 +_020A6208: + b _020A6214 +_020A620C: + b _020A63B0 +_020A6210: + b _020A624C +_020A6214: + add r0, r2, #0x2200 + mov r1, #0x0 + strh r1, [r0, #0x82] +_020A6220: + mov r0, #0xc + bl FUN_020A6C38 + ldmia sp!, {r4,lr} + bx lr +_020A6230: + add r0, r2, #0x2200 + mov r2, #0x0 + strh r2, [r0, #0x82] + ldr r0, [r1, #0x0] + mov r1, #0x6 + add r0, r0, #0x2200 + strh r1, [r0, #0x80] +_020A624C: + bl FUN_020A6B28 + ldmia sp!, {r4,lr} + bx lr +_020A6258: + ldr r1, _020A63B8 ; =0x021CA86C + ldr r3, [r1, #0x0] + add r0, r3, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #0xc + bne _020A6284 + mov r0, #0x8 + bl FUN_020A6C38 + bl FUN_020A6B28 + ldmia sp!, {r4,lr} + bx lr +_020A6284: + ldrh r2, [r4, #0xa] + cmp r2, #0x1 + blo _020A632C + ldr r0, _020A63BC ; =0x000007D7 + cmp r2, r0 + bhi _020A632C + add r0, r3, #0x2200 + strh r2, [r0, #0x82] + ldr r1, [r1, #0x0] + ldr r0, _020A63C0 ; =FUN_020A5F34 + add r1, r1, #0x1500 + mov r2, #0x620 + bl WM_StartDCF + cmp r0, #0x2 + ldmeqia sp!, {r4,lr} + bxeq lr + cmp r0, #0x3 + beq _020A6300 + cmp r0, #0x8 + bne _020A6300 + mov r0, #0xc + bl FUN_020A6C38 + ldr r0, _020A63B8 ; =0x021CA86C + ldr r3, _020A63C4 ; =0x000007ED + ldr r1, [r0, #0x0] + mov r0, #0x1 + add r1, r1, #0x2140 + mov r2, #0x0 + bl FUN_020A6D3C + ldmia sp!, {r4,lr} + bx lr +_020A6300: + mov r0, #0xb + bl FUN_020A6C38 + ldr r0, _020A63B8 ; =0x021CA86C + ldr r3, _020A63C8 ; =0x000007F6 + ldr r1, [r0, #0x0] + mov r0, #0x7 + add r1, r1, #0x2140 + mov r2, #0x0 + bl FUN_020A6D3C + ldmia sp!, {r4,lr} + bx lr +_020A632C: + bl FUN_020A6B28 + ldmia sp!, {r4,lr} + bx lr +_020A6338: + mov r0, #0xb + bl FUN_020A6C38 + ldr r0, _020A63B8 ; =0x021CA86C + ldrh r2, [r4, #0x8] + ldr r0, [r0, #0x0] + ldr r3, _020A63CC ; =0x00000804 + add r1, r0, #0x2140 + mov r0, #0x7 + bl FUN_020A6D3C + ldmia sp!, {r4,lr} + bx lr +_020A6364: + ldr r0, _020A63B8 ; =0x021CA86C + ldrh r1, [r4, #0xe] + ldr r0, [r0, #0x0] + add r0, r0, #0x2200 + strh r1, [r0, #0xf8] +_020A6378: + mov r0, #0x8 + bl FUN_020A6C38 + bl FUN_020A6B28 + ldmia sp!, {r4,lr} + bx lr +_020A638C: + mov r0, #0xb + bl FUN_020A6C38 + ldr r0, _020A63B8 ; =0x021CA86C + ldr r3, _020A63D0 ; =0x0000081B + ldr r1, [r0, #0x0] + mov r0, #0x7 + add r1, r1, #0x2140 + mov r2, #0x0 + bl FUN_020A6D3C +_020A63B0: + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A63B8: .word 0x021CA86C +_020A63BC: .word 0x000007D7 +_020A63C0: .word FUN_020A5F34 +_020A63C4: .word 0x000007ED +_020A63C8: .word 0x000007F6 +_020A63CC: .word 0x00000804 +_020A63D0: .word 0x0000081B + + arm_func_start FUN_020A63D4 +FUN_020A63D4: ; 0x020A63D4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrh r0, [r0, #0x2] + cmp r0, #0x4 + addls pc, pc, r0, lsl #0x2 + b _020A6438 +_020A63EC: + b _020A6400 +_020A63F0: + b _020A6428 +_020A63F4: + b _020A6438 +_020A63F8: + b _020A6438 +_020A63FC: + b _020A6438 +_020A6400: + mov r0, #0x3 + bl FUN_020A6C38 +_020A6408: ; 0x020A6408 + mov r0, #0x0 + ldr r3, _020A6460 ; =0x00000783 + mov r1, r0 + mov r2, r0 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A6428: + bl FUN_020A6B28 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A6438: + mov r0, #0xb + bl FUN_020A6C38 + mov r1, #0x0 + ldr r3, _020A6464 ; =0x00000793 + mov r2, r1 + mov r0, #0x7 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A6460: .word 0x00000783 +_020A6464: .word 0x00000793 + + arm_func_start FUN_020A6468 +FUN_020A6468: ; 0x020A6468 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + mov r5, r0 + ldrh r0, [r5, #0x2] + mov r4, #0x14 + cmp r0, #0x4 + addls pc, pc, r0, lsl #0x2 + b _020A6714 +_020A6488: + b _020A649C +_020A648C: + b _020A6704 +_020A6490: + b _020A6714 +_020A6494: + b _020A6714 +_020A6498: + b _020A6714 +_020A649C: + ldr r0, _020A673C ; =0x021CA86C + ldr r0, [r0, #0x0] + add r0, r0, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #0x5 + bne _020A64D0 + mov r0, #0x6 + bl FUN_020A6C38 +_020A64BC: ; 0x020A64BC + mov r0, #0x0 + ldr r3, _020A6740 ; =0x00000704 + mov r1, r0 + mov r2, r0 + bl FUN_020A6D3C +_020A64D0: + ldr r1, _020A673C ; =0x021CA86C + ldr r2, [r1, #0x0] + add r0, r2, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #0x6 + beq _020A64FC + cmp r0, #0x7 + beq _020A6674 + cmp r0, #0xd + beq _020A6684 + b _020A6694 +_020A64FC: + add r0, r2, #0x2200 + mov r2, #0x7 + strh r2, [r0, #0x80] + ldrh r0, [r5, #0x8] + cmp r0, #0x5 + bne _020A6588 + ldr r0, [r1, #0x0] + add r1, r0, #0x2200 + add r0, r0, #0x2000 + ldrh r1, [r1, #0x8c] + ldr r0, [r0, #0x288] + bl DC_InvalidateRange + ldrh r0, [r5, #0xe] + mov r4, #0x0 + cmp r0, #0x0 + ble _020A6588 + ldr r8, _020A6744 ; =0x0000071A + mov r6, r4 + mov r7, #0x7 +_020A6548: + add r0, r5, r4, lsl #0x1 + add r2, r5, r4, lsl #0x2 + ldrh r1, [r0, #0x50] + ldr r0, [r2, #0x10] + bl FUN_020A8298 + str r8, [sp, #0x0] + add r0, r5, r4, lsl #0x2 + ldr r2, [r0, #0x10] + mov r0, r7 + mov r1, r6 + mov r3, r5 + bl FUN_020A6CE0 + ldrh r0, [r5, #0xe] + add r4, r4, #0x1 + cmp r4, r0 + blt _020A6548 +_020A6588: + ldr r0, _020A673C ; =0x021CA86C + ldr r0, [r0, #0x0] + add r0, r0, #0x2000 + ldr r1, [r0, #0x264] + and r0, r1, #0xc00000 + cmp r0, #0xc00000 + bne _020A65F4 + ldr r0, _020A6748 ; =0x00003FFE + and r0, r1, r0 + bl FUN_020A5A4C + movs r1, r0 + beq _020A65F4 + ldr r0, _020A673C ; =0x021CA86C + ldr r0, [r0, #0x0] + add r0, r0, #0x2000 + ldr r6, [r0, #0x284] + mov r0, r6 + bl _u32_div_f +_020A65D0: ; 0x020A65D0 + cmp r1, #0x0 + bne _020A65F4 + ldr r4, _020A674C ; =0x00000728 + mov r1, #0x0 + mov r2, r6 + mov r3, r1 + mov r0, #0x8 + str r4, [sp, #0x0] + bl FUN_020A6CE0 +_020A65F4: + ldrh r0, [r5, #0xa] + bl FUN_020A5A70 + rsb r0, r0, #0x20 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bl FUN_020A6D8C + ldr r1, _020A673C ; =0x021CA86C + mov r2, #0x1 + mov r2, r2, lsl r0 + ldr r0, [r1, #0x0] + mov r2, r2, asr #0x1 + add r0, r0, #0x2200 + strh r2, [r0, #0x8e] + ldr r0, [r1, #0x0] + add r1, r0, #0x2200 + add r0, r0, #0x2000 + ldrh r1, [r1, #0x8c] + ldr r0, [r0, #0x288] + bl DC_InvalidateRange + ldr r3, _020A673C ; =0x021CA86C + ldr r2, _020A6750 ; =0x00002288 + ldr r1, [r3, #0x0] + ldr r0, _020A6754 ; =FUN_020A6468 + add r1, r1, #0x2000 + ldr r4, [r1, #0x284] + add r4, r4, #0x1 + str r4, [r1, #0x284] + ldr r1, [r3, #0x0] + add r1, r1, r2 + bl WM_StartScanEx + mov r4, r0 + b _020A6694 +_020A6674: + ldr r0, _020A6758 ; =FUN_020A63D4 + bl WM_EndScan + mov r4, r0 + b _020A6694 +_020A6684: + bl FUN_020A6B28 + add sp, sp, #0x8 + ldmia sp!, {r4-r8,lr} + bx lr +_020A6694: + cmp r4, #0x2 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + cmp r4, #0x3 + beq _020A66DC + cmp r4, #0x8 + bne _020A66DC + mov r0, #0xc + bl FUN_020A6C38 + mov r1, #0x0 + ldr r3, _020A675C ; =0x00000753 + mov r2, r1 + mov r0, #0x1 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4-r8,lr} + bx lr +_020A66DC: + mov r0, #0xb + bl FUN_020A6C38 + mov r1, #0x0 + ldr r3, _020A6760 ; =0x0000075C + mov r2, r1 + mov r0, #0x7 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4-r8,lr} + bx lr +_020A6704: + bl FUN_020A6B28 + add sp, sp, #0x8 + ldmia sp!, {r4-r8,lr} + bx lr +_020A6714: + mov r0, #0xb + bl FUN_020A6C38 + mov r1, #0x0 + ldr r3, _020A6764 ; =0x0000076D + mov r2, r1 + mov r0, #0x7 + bl FUN_020A6D3C + add sp, sp, #0x8 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020A673C: .word 0x021CA86C +_020A6740: .word 0x00000704 +_020A6744: .word 0x0000071A +_020A6748: .word 0x00003FFE +_020A674C: .word 0x00000728 +_020A6750: .word 0x00002288 +_020A6754: .word FUN_020A6468 +_020A6758: .word FUN_020A63D4 +_020A675C: .word 0x00000753 +_020A6760: .word 0x0000075C +_020A6764: .word 0x0000076D + + arm_func_start FUN_020A6768 +FUN_020A6768: ; 0x020A6768 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrh r1, [r0, #0x2] + mov r2, #0x14 + cmp r1, #0x4 + addls pc, pc, r1, lsl #0x2 + b _020A6A0C +_020A6784: + b _020A6798 +_020A6788: + b _020A69CC +_020A678C: + b _020A6A0C +_020A6790: + b _020A6A0C +_020A6794: + b _020A6A0C +_020A6798: + ldrh r0, [r0, #0x0] + cmp r0, #0x19 + bgt _020A67D4 + cmp r0, #0x19 + bge _020A68B4 + cmp r0, #0x6 + addls pc, pc, r0, lsl #0x2 + b _020A692C +_020A67B8: + b _020A692C +_020A67BC: + b _020A692C +_020A67C0: + b _020A692C +_020A67C4: + b _020A67F4 +_020A67C8: + b _020A6804 +_020A67CC: + b _020A6868 +_020A67D0: + b _020A6890 +_020A67D4: + cmp r0, #0x1d + bgt _020A67E8 + cmp r0, #0x1d + beq _020A68A0 + b _020A692C +_020A67E8: + cmp r0, #0x27 + beq _020A68DC + b _020A692C +_020A67F4: + ldr r0, _020A6A4C ; =FUN_020A6768 + bl WM_PowerOn + mov r2, r0 + b _020A692C +_020A6804: + bl WM_Finish +_020A6808: ; 0x020A6808 + cmp r0, #0x0 + beq _020A6818 + cmp r0, #0x4 + b _020A6840 +_020A6818: + mov r0, #0x1 + bl FUN_020A6C38 +_020A6820: ; 0x020A6820 + mov r0, #0x0 + ldr r3, _020A6A50 ; =0x00000663 + mov r1, r0 + mov r2, r0 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A6840: + mov r0, #0xb + bl FUN_020A6C38 + mov r1, #0x0 + ldr r3, _020A6A54 ; =0x0000066C + mov r2, r1 + mov r0, #0x7 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A6868: + mov r0, #0x3 + bl FUN_020A6C38 +_020A6870: ; 0x020A6870 + mov r0, #0x0 + ldr r3, _020A6A58 ; =0x00000673 + mov r1, r0 + mov r2, r0 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A6890: + ldr r0, _020A6A4C ; =FUN_020A6768 + bl WM_Disable + mov r2, r0 + b _020A692C +_020A68A0: + ldr r0, _020A6A4C ; =FUN_020A6768 + mov r1, #0x0 + bl WM_SetBeaconIndication + mov r2, r0 + b _020A692C +_020A68B4: + ldr r1, _020A6A5C ; =0x021CA86C + ldr r0, _020A6A4C ; =FUN_020A6768 + ldr r3, [r1, #0x0] + add r2, r3, #0x2000 + ldrb r1, [r2, #0x250] + ldrb r2, [r2, #0x251] + add r3, r3, #0x2200 + bl WM_SetWEPKeyEx + mov r2, r0 + b _020A692C +_020A68DC: + ldr r0, _020A6A5C ; =0x021CA86C + ldr r2, [r0, #0x0] + add r0, r2, #0x2000 + ldr r1, [r0, #0x264] + and r0, r1, #0xc0000 + cmp r0, #0xc0000 + moveq r0, #0x1 + movne r0, #0x0 + mov r0, r0, lsl #0x10 + mov r12, r0, lsr #0x10 + and r1, r1, #0x30000 + cmp r1, #0x30000 + movne r3, #0x1 + add r1, r2, #0x2140 + ldr r0, _020A6A60 ; =FUN_020A6144 + moveq r3, #0x0 + mov r2, #0x0 + str r12, [sp, #0x0] + bl WM_StartConnectEx + mov r2, r0 +_020A692C: + cmp r2, #0x2 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + cmp r2, #0x3 + beq _020A698C + cmp r2, #0x8 + bne _020A698C + mov r0, #0xc + bl FUN_020A6C38 + ldr r0, _020A6A5C ; =0x021CA86C + ldr r3, _020A6A64 ; =0x000006AF + ldr r1, [r0, #0x0] + mov r2, #0x0 + add r0, r1, #0x2200 + ldrsh r0, [r0, #0x80] + cmp r0, #0x5 + addeq r1, r1, #0x2140 + movne r1, #0x0 + mov r0, #0x1 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A698C: + mov r0, #0xb + bl FUN_020A6C38 + ldr r0, _020A6A5C ; =0x021CA86C + ldr r3, _020A6A68 ; =0x000006B8 + ldr r1, [r0, #0x0] + mov r2, #0x0 + add r0, r1, #0x2200 + ldrsh r0, [r0, #0x80] + cmp r0, #0x5 + addeq r1, r1, #0x2140 + movne r1, #0x0 + mov r0, #0x7 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A69CC: + mov r0, #0xc + bl FUN_020A6C38 + ldr r0, _020A6A5C ; =0x021CA86C + ldr r3, _020A6A6C ; =0x000006DE + ldr r1, [r0, #0x0] + mov r2, #0x0 + add r0, r1, #0x2200 + ldrsh r0, [r0, #0x80] + cmp r0, #0x5 + addeq r1, r1, #0x2140 + movne r1, #0x0 + mov r0, #0x1 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A6A0C: + mov r0, #0xb + bl FUN_020A6C38 + ldr r0, _020A6A5C ; =0x021CA86C + ldr r3, _020A6A70 ; =0x000006E8 + ldr r1, [r0, #0x0] + mov r2, #0x0 + add r0, r1, #0x2200 + ldrsh r0, [r0, #0x80] + cmp r0, #0x5 + addeq r1, r1, #0x2140 + movne r1, #0x0 + mov r0, #0x7 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A6A4C: .word FUN_020A6768 +_020A6A50: .word 0x00000663 +_020A6A54: .word 0x0000066C +_020A6A58: .word 0x00000673 +_020A6A5C: .word 0x021CA86C +_020A6A60: .word FUN_020A6144 +_020A6A64: .word 0x000006AF +_020A6A68: .word 0x000006B8 +_020A6A6C: .word 0x000006DE +_020A6A70: .word 0x000006E8 + + arm_func_start FUN_020A6A74 +FUN_020A6A74: ; 0x020A6A74 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrh r1, [r0, #0x2] + cmp r1, #0x8 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldrh r1, [r0, #0x4] + cmp r1, #0x16 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldrh r0, [r0, #0x6] + cmp r0, #0x25 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldr r0, _020A6B24 ; =0x021CA86C + ldr r0, [r0, #0x0] + add r0, r0, #0x2000 + ldr r0, [r0, #0x260] + sub r0, r0, #0x8 + cmp r0, #0x4 + addls pc, pc, r0, lsl #0x2 + b _020A6B18 +_020A6AD8: + b _020A6AEC +_020A6ADC: + b _020A6B00 +_020A6AE0: + b _020A6B10 +_020A6AE4: + b _020A6B18 +_020A6AE8: + b _020A6B00 +_020A6AEC: + mov r0, #0xc + bl FUN_020A6C38 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A6B00: + bl FUN_020A6B28 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A6B10: + mov r0, #0xc + bl FUN_020A6C38 +_020A6B18: + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A6B24: .word 0x021CA86C + + arm_func_start FUN_020A6B28 +FUN_020A6B28: ; 0x020A6B28 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020A6B98 ; =0x021CA86C + ldr r0, [r0, #0x0] + add r1, r0, #0x2000 + ldrb r0, [r1, #0x26b] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldr r0, _020A6B9C ; =FUN_020A5A78 + mov r2, #0x1 + strb r2, [r1, #0x26b] + bl WM_Reset + cmp r0, #0x2 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + mov r0, #0xb + bl FUN_020A6C38 + mov r1, #0x0 + mov r2, r1 + mov r0, #0x7 + mov r3, #0x610 + bl FUN_020A6D3C + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A6B98: .word 0x021CA86C +_020A6B9C: .word FUN_020A5A78 + + arm_func_start FUN_020A6BA0 +FUN_020A6BA0: ; 0x020A6BA0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_020A88A8 + bl FUN_020A6BBC + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_020A6BBC +FUN_020A6BBC: ; 0x020A6BBC + stmdb sp!, {r4,lr} + sub sp, sp, #0x8 + bl OS_DisableInterrupts + ldr r2, _020A6C28 ; =0x021CA86C + ldr r1, _020A6C2C ; =0x000022CC + ldr r2, [r2, #0x0] + mov r4, r0 + add r0, r2, r1 + bl OS_CancelAlarm + ldr r0, _020A6C28 ; =0x021CA86C + ldr r12, [r0, #0x0] + add r0, r12, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #0x9 + bne _020A6C14 + ldr r0, _020A6C2C ; =0x000022CC + ldr r1, _020A6C30 ; =0x022F5341 + mov r2, #0x0 + ldr r3, _020A6C34 ; =FUN_020A6BA0 + add r0, r12, r0 + str r2, [sp, #0x0] + bl OS_SetAlarm +_020A6C14: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A6C28: .word 0x021CA86C +_020A6C2C: .word 0x000022CC +_020A6C30: .word 0x022F5341 +_020A6C34: .word FUN_020A6BA0 + + arm_func_start FUN_020A6C38 +FUN_020A6C38: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020A6CD0 ; =0x021CA86C + mov r4, r0 + ldr r1, [r1, #0x0] + add r0, r1, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #0x9 + bne _020A6C78 + cmp r5, #0x9 + beq _020A6C78 + ldr r0, _020A6CD4 ; =0x000022CC + add r0, r1, r0 + bl OS_CancelAlarm +_020A6C78: + ldr r0, _020A6CD0 ; =0x021CA86C + ldr r0, [r0, #0x0] + add r0, r0, #0x2000 + ldr r1, [r0, #0x260] + cmp r1, #0xb + strne r5, [r0, #0x260] + cmp r5, #0x9 + bne _020A6CBC + mov r2, #0x0 + ldr r0, _020A6CD0 ; =0x021CA86C + str r2, [sp, #0x0] + ldr r5, [r0, #0x0] + ldr r0, _020A6CD4 ; =0x000022CC + ldr r1, _020A6CD8 ; =0x022F5341 + ldr r3, _020A6CDC ; =FUN_020A6BA0 + add r0, r5, r0 + bl OS_SetAlarm +_020A6CBC: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020A6CD0: .word 0x021CA86C +_020A6CD4: .word 0x000022CC +_020A6CD8: .word 0x022F5341 +_020A6CDC: .word FUN_020A6BA0 + + arm_func_start FUN_020A6CE0 +FUN_020A6CE0: ; 0x020A6CE0 + stmdb sp!, {lr} + sub sp, sp, #0x14 + ldr ip, _020A6D38 ; =0x021CA86C + ldr r12, [r12, #0x0] + add r12, r12, #0x2000 + ldr lr, [r12, #0x27c] + cmp lr, #0x0 + addeq sp, sp, #0x14 + ldmeqia sp!, {lr} + bxeq lr + ldr lr, [sp, #0x18] + strh r0, [sp, #0x0] + str r2, [sp, #0x4] + str r3, [sp, #0x8] + str lr, [sp, #0xc] + strh r1, [sp, #0x2] + ldr r1, [r12, #0x27c] + add r0, sp, #0x0 + blx r1 + add sp, sp, #0x14 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A6D38: .word 0x021CA86C + + arm_func_start FUN_020A6D3C +FUN_020A6D3C: ; 0x020A6D3C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr ip, _020A6D88 ; =0x021CA86C + mov r5, r0 + ldr r0, [r12, #0x0] + mov r4, r1 + add r1, r0, #0x2200 + ldrsh r0, [r1, #0x80] + mov r12, #0x0 + mov lr, r2 + strh r12, [r1, #0x80] + str r3, [sp, #0x0] + mov r1, r5 + mov r2, r4 + mov r3, lr + bl FUN_020A6CE0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020A6D88: .word 0x021CA86C + + arm_func_start FUN_020A6D8C +FUN_020A6D8C: ; 0x020A6D8C + stmdb sp!, {r4-r6,lr} + ldr r1, _020A6E24 ; =0x021CA86C + mov r2, r0 + ldr r1, [r1, #0x0] + mov r3, #0x0 + add r1, r1, #0x2000 + ldr r1, [r1, #0x264] + mov r6, #0x1 + ldr r5, _020A6E28 ; =0x4EC4EC4F + ldr r4, _020A6E2C ; =0x0000000D +_020A6DB4: + smull r12, lr, r5, r2 + mov lr, lr, asr #0x2 + mov r12, r2, lsr #0x1f + add lr, r12, lr + smull r12, lr, r4, lr + sub lr, r2, r12 + add r12, lr, #0x1 + mov r12, r6, lsl r12 + ands r12, r1, r12 + bne _020A6DEC + add r3, r3, #0x1 + cmp r3, #0xd + add r2, r2, #0x1 + blt _020A6DB4 +_020A6DEC: + ldr r1, _020A6E28 ; =0x4EC4EC4F + add r3, r0, r3 + smull r0, r4, r1, r3 + mov r4, r4, asr #0x2 + mov r0, r3, lsr #0x1f + ldr r2, _020A6E2C ; =0x0000000D + add r4, r0, r4 + smull r0, r1, r2, r4 + sub r4, r3, r0 + add r0, r4, #0x1 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A6E24: .word 0x021CA86C +_020A6E28: .word 0x4EC4EC4F +_020A6E2C: .word 0x0000000D + + arm_func_start FUN_020A6E30 +FUN_020A6E30: ; 0x020A6E30 + ldr r0, _020A6E48 ; =0x021CA86C + ldr r1, _020A6E4C ; =0x00AAA082 + ldr r0, [r0, #0x0] + add r0, r0, #0x2000 + str r1, [r0, #0x264] + bx lr + .balign 4 +_020A6E48: .word 0x021CA86C +_020A6E4C: .word 0x00AAA082 + + arm_func_start FUN_020A6E50 +FUN_020A6E50: ; 0x020A6E50 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r0, r2 + mov r4, r1 + bl FUN_020A7148 + ldr r2, _020A6FF4 ; =0x021CA86C + mov r3, #0x400 + ldr r1, [r2, #0x0] + mov r0, #0x0 + add r12, r1, #0x1500 + add r1, r1, #0x2000 + str r12, [r1, #0x288] + ldr r1, [r2, #0x0] + add r1, r1, #0x2200 + strh r3, [r1, #0x8c] + bl FUN_020A6D8C + ldr r1, _020A6FF4 ; =0x021CA86C + mov r2, #0x1 + mov r2, r2, lsl r0 + ldr r0, [r1, #0x0] + mov r2, r2, asr #0x1 + add r0, r0, #0x2200 + strh r2, [r0, #0x8e] + ldr r0, [r1, #0x0] + add r0, r0, #0x2200 + ldrh r0, [r0, #0x68] + cmp r0, #0x0 + bne _020A6EC8 + bl WM_GetDispersionScanPeriod +_020A6EC8: + ldr r2, _020A6FF4 ; =0x021CA86C + ldr r1, [r2, #0x0] + add r1, r1, #0x2200 + strh r0, [r1, #0x90] + ldr r1, [r2, #0x0] + add r0, r1, #0x2000 + ldr r0, [r0, #0x264] + and r0, r0, #0x300000 + cmp r0, #0x300000 + movne r2, #0x1 + moveq r2, #0x0 + add r0, r1, #0x2200 + strh r2, [r0, #0x98] + cmp r5, #0x0 + bne _020A6F24 + ldr r0, _020A6FF4 ; =0x021CA86C + ldr r1, _020A6FF8 ; =0x00002292 + ldr r2, [r0, #0x0] + ldr r0, _020A6FFC ; =0x020FF590 + add r1, r2, r1 + mov r2, #0x6 + bl MI_CpuCopy8 + b _020A6F40 +_020A6F24: + ldr r0, _020A6FF4 ; =0x021CA86C + ldr r1, _020A6FF8 ; =0x00002292 + ldr r2, [r0, #0x0] + mov r0, r5 + add r1, r2, r1 + mov r2, #0x6 + bl MI_CpuCopy8 +_020A6F40: + cmp r4, #0x0 + beq _020A6F54 + ldr r0, _020A7000 ; =0x020FF598 + cmp r4, r0 + bne _020A6F88 +_020A6F54: + ldr r0, _020A6FF4 ; =0x021CA86C + ldr r1, _020A7004 ; =0x0000229C + ldr r2, [r0, #0x0] + ldr r0, _020A7000 ; =0x020FF598 + add r1, r2, r1 + mov r2, #0x20 + bl MI_CpuCopy8 + ldr r0, _020A6FF4 ; =0x021CA86C + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, #0x2200 + strh r1, [r0, #0x9a] + b _020A6FD4 +_020A6F88: + ldr r0, _020A6FF4 ; =0x021CA86C + ldr r1, _020A7004 ; =0x0000229C + ldr r2, [r0, #0x0] + mov r0, r4 + add r1, r2, r1 + mov r2, #0x20 + bl MI_CpuCopy8 + mov r1, #0x0 +_020A6FA8: + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + beq _020A6FC4 + add r1, r1, #0x1 + cmp r1, #0x20 + add r4, r4, #0x1 + blt _020A6FA8 +_020A6FC4: + ldr r0, _020A6FF4 ; =0x021CA86C + ldr r0, [r0, #0x0] + add r0, r0, #0x2200 + strh r1, [r0, #0x9a] +_020A6FD4: + ldr r0, _020A6FF4 ; =0x021CA86C + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, #0x2000 + str r1, [r0, #0x284] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020A6FF4: .word 0x021CA86C +_020A6FF8: .word 0x00002292 +_020A6FFC: .word 0x020FF590 +_020A7000: .word 0x020FF598 +_020A7004: .word 0x0000229C + + arm_func_start FUN_020A7008 +FUN_020A7008: ; 0x020A7008 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + movs r5, r0 + mov r4, r1 + bne _020A705C + ldr r1, _020A7134 ; =0x021CA86C + mov r3, #0x3 + ldr r0, [r1, #0x0] + mov r2, #0x0 + add r0, r0, #0x2000 + str r3, [r0, #0x26c] + ldr r0, [r1, #0x0] + add r0, r0, #0x2000 + str r2, [r0, #0x270] + ldr r0, [r1, #0x0] + add r0, r0, #0x2000 + str r2, [r0, #0x274] + ldr r0, [r1, #0x0] + add r0, r0, #0x2000 + str r2, [r0, #0x278] + b _020A7118 +_020A705C: + ldr r1, _020A7134 ; =0x021CA86C + ldr r2, [r5, #0x0] + ldr r0, [r1, #0x0] + and r2, r2, #0x3 + add r0, r0, #0x2000 + str r2, [r0, #0x26c] + ldr r3, [r5, #0x4] + ldr r0, [r5, #0x8] + and r2, r3, #0x3 + rsb r2, r2, #0x4 + and r2, r2, #0x3 + add r2, r2, #0xc + cmp r2, r0 + bls _020A70B4 + ldr r0, [r1, #0x0] + mov r2, #0x0 + add r0, r0, #0x2000 + str r2, [r0, #0x270] + ldr r0, [r1, #0x0] + add r0, r0, #0x2000 + str r2, [r0, #0x274] + b _020A7104 +_020A70B4: + ldr r0, [r1, #0x0] + add r2, r3, #0x3 + bic r2, r2, #0x3 + add r0, r0, #0x2000 + str r2, [r0, #0x270] + ldr r2, [r5, #0x4] + ldr r0, [r1, #0x0] + and r2, r2, #0x3 + rsb r2, r2, #0x4 + ldr r3, [r5, #0x8] + and r2, r2, #0x3 + sub r2, r3, r2 + add r0, r0, #0x2000 + str r2, [r0, #0x274] + ldr r0, [r1, #0x0] + mov r1, #0x0 + add r2, r0, #0x2000 + ldr r0, [r2, #0x270] + ldr r2, [r2, #0x274] + bl MI_CpuFill8 +_020A7104: + ldr r0, _020A7134 ; =0x021CA86C + ldr r1, [r5, #0xc] + ldr r0, [r0, #0x0] + add r0, r0, #0x2000 + str r1, [r0, #0x278] +_020A7118: + ldr r0, _020A7134 ; =0x021CA86C + ldr r0, [r0, #0x0] + add r0, r0, #0x2000 + str r4, [r0, #0x27c] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020A7134: .word 0x021CA86C + + arm_func_start FUN_020A7138 +FUN_020A7138: + ldr r0, _020A7144 ; =0x021CA86C + ldr r0, [r0, #0x0] + bx lr + .balign 4 +_020A7144: .word 0x021CA86C + + arm_func_start FUN_020A7148 +FUN_020A7148: ; 0x020A7148 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020A71EC ; =0x021CA86C + mov r2, #0x0 + ldr r1, [r1, #0x0] + add r3, r1, #0x2000 + cmp r1, #0x0 + ldr r4, [r3, #0x264] + bne _020A7188 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r5,lr} + bx lr +_020A7188: + ands r3, r5, #0x8000 + beq _020A71A4 + ldr r3, _020A71F0 ; =0x00003FFE + orr r2, r2, r3 + ands r3, r5, r3 + ldreq r3, _020A71F4 ; =0x0000A082 + orreq r5, r5, r3 +_020A71A4: + ands r3, r5, #0x20000 + orrne r2, r2, #0x10000 + ands r3, r5, #0x80000 + orrne r2, r2, #0x40000 + ands r3, r5, #0x200000 + orrne r2, r2, #0x100000 + ands r3, r5, #0x800000 + orrne r2, r2, #0x400000 + mvn r2, r2 + and r2, r4, r2 + orr r2, r5, r2 + add r1, r1, #0x2000 + str r2, [r1, #0x264] + bl OS_RestoreInterrupts + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020A71EC: .word 0x021CA86C +_020A71F0: .word 0x00003FFE +_020A71F4: .word 0x0000A082 + + arm_func_start FUN_020A71F8 +FUN_020A71F8: ; 0x020A71F8 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020A7228 ; =0x021CA86C + mov r4, #0x0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + addne r1, r1, #0x2000 + ldrne r4, [r1, #0x260] + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A7228: .word 0x021CA86C + + arm_func_start FUN_020A722C +FUN_020A722C: ; 0x020A722C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + bl OS_DisableInterrupts + ldr r1, _020A747C ; =0x021CA86C + mov r4, r0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _020A7260 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r5,lr} + bx lr +_020A7260: + add r1, r1, #0x2000 + ldr r2, [r1, #0x260] + cmp r2, #0xd + addls pc, pc, r2, lsl #0x2 + b _020A7308 +_020A7274: + b _020A7308 +_020A7278: + b _020A72C0 +_020A727C: + b _020A7308 +_020A7280: + b _020A7320 +_020A7284: + b _020A7308 +_020A7288: + b _020A7308 +_020A728C: + b _020A72D4 +_020A7290: + b _020A7308 +_020A7294: + b _020A7308 +_020A7298: + b _020A7320 +_020A729C: + b _020A7308 +_020A72A0: + b _020A7308 +_020A72A4: + b _020A7320 +_020A72A8: + b _020A72AC +_020A72AC: + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x2 + ldmia sp!, {r4-r5,lr} + bx lr +_020A72C0: + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r5,lr} + bx lr +_020A72D4: + mov r0, #0xd + bl FUN_020A6C38 + ldr r1, _020A747C ; =0x021CA86C + mov r0, r4 + ldr r1, [r1, #0x0] + mov r2, #0x9 + add r1, r1, #0x2200 + strh r2, [r1, #0x80] + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x3 + ldmia sp!, {r4-r5,lr} + bx lr +_020A7308: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r5,lr} + bx lr +_020A7320: + ldrb r0, [r1, #0x26b] + cmp r0, #0x1 + bne _020A734C + mov r0, #0xd + bl FUN_020A6C38 + ldr r0, _020A747C ; =0x021CA86C + mov r1, #0x9 + ldr r0, [r0, #0x0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _020A7464 +_020A734C: + bl WMi_GetStatusAddress + mov r5, r0 + mov r1, #0x2 + bl DC_InvalidateRange + ldrh r0, [r5, #0x0] + cmp r0, #0x0 + beq _020A737C + cmp r0, #0x1 + beq _020A73BC + cmp r0, #0x2 + beq _020A73C8 + b _020A73D4 +_020A737C: + bl WM_Finish +_020A7380: ; 0x020A7380 + cmp r0, #0x0 + bne _020A73F0 + mov r0, #0x1 + bl FUN_020A6C38 + ldr r1, _020A747C ; =0x021CA86C + mov r0, r4 + ldr r1, [r1, #0x0] + mov r2, #0x0 + add r1, r1, #0x2200 + strh r2, [r1, #0x80] + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r5,lr} + bx lr +_020A73BC: + ldr r0, _020A7480 ; =FUN_020A6768 + bl WM_Disable + b _020A73F0 +_020A73C8: + ldr r0, _020A7480 ; =FUN_020A6768 + bl WM_PowerOff + b _020A73F0 +_020A73D4: + ldr r1, _020A747C ; =0x021CA86C + ldr r0, _020A7484 ; =FUN_020A5A78 + ldr r1, [r1, #0x0] + mov r2, #0x1 + add r1, r1, #0x2000 + strb r2, [r1, #0x26b] + bl WM_Reset +_020A73F0: + cmp r0, #0x2 + beq _020A740C + cmp r0, #0x3 + beq _020A7444 + cmp r0, #0x8 + beq _020A742C + b _020A7444 +_020A740C: + mov r0, #0xd + bl FUN_020A6C38 + ldr r0, _020A747C ; =0x021CA86C + mov r1, #0x9 + ldr r0, [r0, #0x0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _020A7464 +_020A742C: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020A7444: + mov r0, #0xb + bl FUN_020A6C38 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x7 + ldmia sp!, {r4-r5,lr} + bx lr +_020A7464: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x3 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020A747C: .word 0x021CA86C +_020A7480: .word FUN_020A6768 +_020A7484: .word FUN_020A5A78 + + arm_func_start FUN_020A7488 +FUN_020A7488: ; 0x020A7488 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020A75B8 ; =0x021CA86C + mov r4, r0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _020A74B4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4,lr} + bx lr +_020A74B4: + add r1, r1, #0x2000 + ldr r2, [r1, #0x260] + cmp r2, #0x3 + beq _020A74E4 + cmp r2, #0x9 + beq _020A7504 + cmp r2, #0xa + bne _020A74F4 + bl OS_RestoreInterrupts + mov r0, #0x2 + ldmia sp!, {r4,lr} + bx lr +_020A74E4: + bl OS_RestoreInterrupts +_020A74E8: ; 0x020A74E8 + mov r0, #0x0 + ldmia sp!, {r4,lr} + bx lr +_020A74F4: + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4,lr} + bx lr +_020A7504: + ldrb r0, [r1, #0x26b] + cmp r0, #0x1 + bne _020A7530 + mov r0, #0xa + bl FUN_020A6C38 + ldr r0, _020A75B8 ; =0x021CA86C + mov r1, #0x6 + ldr r0, [r0, #0x0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _020A75A4 +_020A7530: + ldr r0, _020A75BC ; =FUN_020A5DDC + bl WM_EndDCF + cmp r0, #0x2 + beq _020A7554 + cmp r0, #0x3 + beq _020A7588 + cmp r0, #0x8 + beq _020A7574 + b _020A7588 +_020A7554: + mov r0, #0xa + bl FUN_020A6C38 + ldr r0, _020A75B8 ; =0x021CA86C + mov r1, #0x6 + ldr r0, [r0, #0x0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _020A75A4 +_020A7574: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x4 + ldmia sp!, {r4,lr} + bx lr +_020A7588: + mov r0, #0xb + bl FUN_020A6C38 + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x7 + ldmia sp!, {r4,lr} + bx lr +_020A75A4: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x3 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A75B8: .word 0x021CA86C +_020A75BC: .word FUN_020A5DDC + + arm_func_start FUN_020A75C0 +FUN_020A75C0: ; 0x020A75C0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl OS_DisableInterrupts + ldr r2, _020A7814 ; =0x021CA86C + mov r4, r0 + ldr r12, [r2, #0x0] + cmp r12, #0x0 + bne _020A7600 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020A7600: + add r1, r12, #0x2000 + ldr r3, [r1, #0x260] + cmp r3, #0x3 + beq _020A7624 + cmp r3, #0x8 + beq _020A7734 + cmp r3, #0x9 + beq _020A7748 + b _020A775C +_020A7624: + cmp r7, #0x0 + bne _020A7640 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020A7640: + ldrh r3, [r7, #0x3c] + cmp r3, #0x0 + beq _020A7660 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020A7660: + cmp r6, #0x0 + beq _020A76E8 + ldrb r3, [r6, #0x0] + cmp r3, #0x4 + bhs _020A7680 + ldrb r0, [r6, #0x1] + cmp r0, #0x4 + blo _020A7698 +_020A7680: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020A7698: + strb r3, [r1, #0x250] + ldr r0, [r2, #0x0] + ldrb r1, [r6, #0x1] + add r0, r0, #0x2000 + strb r1, [r0, #0x251] + ldr r1, [r2, #0x0] + add r0, r1, #0x2000 + ldrb r0, [r0, #0x250] + cmp r0, #0x0 + bne _020A76D4 + add r0, r1, #0x2200 + mov r1, #0x0 + mov r2, #0x50 + bl MI_CpuFill8 + b _020A76F8 +_020A76D4: + add r0, r6, #0x2 + add r1, r1, #0x2200 + mov r2, #0x50 + bl MI_CpuCopy8 + b _020A76F8 +_020A76E8: + add r0, r12, #0x2200 + mov r1, #0x0 + mov r2, #0x52 + bl MI_CpuFill8 +_020A76F8: + ldr r1, _020A7814 ; =0x021CA86C + mov r0, r7 + ldr r1, [r1, #0x0] + mov r2, #0xc0 + add r1, r1, #0x2140 + bl MI_CpuCopy8 + ldr r1, _020A7814 ; =0x021CA86C + mov r0, r5 + ldr r1, [r1, #0x0] + add r1, r1, #0x2100 + ldrh r2, [r1, #0x6e] + orr r2, r2, #0x3 + strh r2, [r1, #0x70] + bl FUN_020A7148 + b _020A7770 +_020A7734: + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x2 + ldmia sp!, {r4-r7,lr} + bx lr +_020A7748: + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,lr} + bx lr +_020A775C: + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020A7770: + ldr r1, _020A7818 ; =0x0000FFFF + ldr r0, _020A781C ; =FUN_020A6768 + mov r3, r1 + mov r2, #0x50 + str r1, [sp, #0x0] + bl WM_SetLifeTime + cmp r0, #0x2 + beq _020A77A4 + cmp r0, #0x3 + beq _020A77DC + cmp r0, #0x8 + beq _020A77C4 + b _020A77DC +_020A77A4: + mov r0, #0x8 + bl FUN_020A6C38 + ldr r0, _020A7814 ; =0x021CA86C + mov r1, #0x5 + ldr r0, [r0, #0x0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _020A77FC +_020A77C4: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_020A77DC: + mov r0, #0xb + bl FUN_020A6C38 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x7 + ldmia sp!, {r4-r7,lr} + bx lr +_020A77FC: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x3 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020A7814: .word 0x021CA86C +_020A7818: .word 0x0000FFFF +_020A781C: .word FUN_020A6768 + + arm_func_start FUN_020A7820 +FUN_020A7820: ; 0x020A7820 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020A78D4 ; =0x021CA86C + mov r4, r0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _020A784C + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4,lr} + bx lr +_020A784C: + add r1, r1, #0x2000 + ldr r1, [r1, #0x260] + cmp r1, #0x3 + beq _020A78A0 + cmp r1, #0x6 + beq _020A7870 + cmp r1, #0x7 + beq _020A7890 + b _020A78B0 +_020A7870: + mov r0, #0x7 + bl FUN_020A6C38 + ldr r0, _020A78D4 ; =0x021CA86C + mov r1, #0x4 + ldr r0, [r0, #0x0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _020A78C0 +_020A7890: + bl OS_RestoreInterrupts + mov r0, #0x2 + ldmia sp!, {r4,lr} + bx lr +_020A78A0: + bl OS_RestoreInterrupts +_020A78A4: ; 0x020A78A4 + mov r0, #0x0 + ldmia sp!, {r4,lr} + bx lr +_020A78B0: + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4,lr} + bx lr +_020A78C0: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x3 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A78D4: .word 0x021CA86C + + arm_func_start FUN_020A78D8 +FUN_020A78D8: ; 0x020A78D8 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl OS_DisableInterrupts + ldr r1, _020A7A84 ; =0x021CA86C + mov r4, r0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _020A7918 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020A7918: + add r1, r1, #0x2000 + ldr r1, [r1, #0x260] + cmp r1, #0x3 + beq _020A79A0 + cmp r1, #0x5 + beq _020A793C + cmp r1, #0x6 + beq _020A7964 + b _020A798C +_020A793C: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl FUN_020A6E50 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x2 + ldmia sp!, {r4-r7,lr} + bx lr +_020A7964: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl FUN_020A6E50 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,lr} + bx lr +_020A798C: + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020A79A0: + mov r0, r7 + mov r1, r6 + mov r2, r5 + bl FUN_020A6E50 + ldr r0, _020A7A84 ; =0x021CA86C + ldr r0, [r0, #0x0] + add r1, r0, #0x2200 + add r0, r0, #0x2000 + ldrh r1, [r1, #0x8c] + ldr r0, [r0, #0x288] + bl DC_InvalidateRange + ldr r3, _020A7A84 ; =0x021CA86C + ldr r2, _020A7A88 ; =0x00002288 + ldr r1, [r3, #0x0] + ldr r0, _020A7A8C ; =FUN_020A6468 + add r1, r1, #0x2000 + ldr r5, [r1, #0x284] + add r5, r5, #0x1 + str r5, [r1, #0x284] + ldr r1, [r3, #0x0] + add r1, r1, r2 + bl WM_StartScanEx + cmp r0, #0x2 + beq _020A7A14 + cmp r0, #0x3 + beq _020A7A4C + cmp r0, #0x8 + beq _020A7A34 + b _020A7A4C +_020A7A14: + mov r0, #0x5 + bl FUN_020A6C38 + ldr r0, _020A7A84 ; =0x021CA86C + mov r1, #0x3 + ldr r0, [r0, #0x0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _020A7A6C +_020A7A34: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_020A7A4C: + mov r0, #0xb + bl FUN_020A6C38 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x7 + ldmia sp!, {r4-r7,lr} + bx lr +_020A7A6C: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x3 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020A7A84: .word 0x021CA86C +_020A7A88: .word 0x00002288 +_020A7A8C: .word FUN_020A6468 + + arm_func_start FUN_020A7A90 +FUN_020A7A90: ; 0x020A7A90 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r0, #0x0 + beq _020A7AA8 + cmp r1, #0x0 + bne _020A7AB8 +_020A7AA8: + bl FUN_020A7820 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020A7AB8: + bl FUN_020A78D8 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_020A7AC8 +FUN_020A7AC8: ; 0x020A7AC8 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020A7BCC ; =0x021CA86C + mov r4, r0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _020A7AF4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4,lr} + bx lr +_020A7AF4: + add r1, r1, #0x2000 + ldr r1, [r1, #0x260] + cmp r1, #0x1 + beq _020A7B24 + cmp r1, #0x3 + beq _020A7B44 + cmp r1, #0x4 + bne _020A7B34 + bl OS_RestoreInterrupts + mov r0, #0x2 + ldmia sp!, {r4,lr} + bx lr +_020A7B24: + bl OS_RestoreInterrupts +_020A7B28: ; 0x020A7B28 + mov r0, #0x0 + ldmia sp!, {r4,lr} + bx lr +_020A7B34: + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4,lr} + bx lr +_020A7B44: + ldr r0, _020A7BD0 ; =FUN_020A6768 + bl WM_PowerOff + cmp r0, #0x2 + beq _020A7B68 + cmp r0, #0x3 + beq _020A7B9C + cmp r0, #0x8 + beq _020A7B88 + b _020A7B9C +_020A7B68: + mov r0, #0x4 + bl FUN_020A6C38 + ldr r0, _020A7BCC ; =0x021CA86C + mov r1, #0x2 + ldr r0, [r0, #0x0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _020A7BB8 +_020A7B88: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x4 + ldmia sp!, {r4,lr} + bx lr +_020A7B9C: + mov r0, #0xb + bl FUN_020A6C38 + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x7 + ldmia sp!, {r4,lr} + bx lr +_020A7BB8: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x3 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A7BCC: .word 0x021CA86C +_020A7BD0: .word FUN_020A6768 + + arm_func_start FUN_020A7BD4 +FUN_020A7BD4: ; 0x020A7BD4 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + bl OS_DisableInterrupts + ldr r1, _020A7E00 ; =0x021CA86C + mov r4, r0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _020A7C08 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7C08: + add r1, r1, #0x2000 + ldr r1, [r1, #0x260] + cmp r1, #0x1 + beq _020A7C2C + cmp r1, #0x2 + beq _020A7C3C + cmp r1, #0x3 + beq _020A7C4C + b _020A7C5C +_020A7C2C: + mov r0, r6 + mov r1, r5 + bl FUN_020A7008 + b _020A7C6C +_020A7C3C: + bl OS_RestoreInterrupts + mov r0, #0x2 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7C4C: + bl OS_RestoreInterrupts +_020A7C50: ; 0x020A7C50 + mov r0, #0x0 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7C5C: + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7C6C: + ldr r0, _020A7E00 ; =0x021CA86C + ldr r0, [r0, #0x0] + add r1, r0, #0x2000 + ldr r1, [r1, #0x26c] + mov r1, r1, lsl #0x10 + mov r1, r1, lsr #0x10 + bl WM_Init + cmp r0, #0x6 + addls pc, pc, r0, lsl #0x2 + b _020A7CE0 +_020A7C94: + b _020A7CFC +_020A7C98: + b _020A7CE0 +_020A7C9C: + b _020A7CE0 +_020A7CA0: + b _020A7CB0 +_020A7CA4: + b _020A7CCC +_020A7CA8: + b _020A7CE0 +_020A7CAC: + b _020A7CE0 +_020A7CB0: + mov r0, #0xb + bl FUN_020A6C38 + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x7 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7CCC: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x5 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7CE0: + mov r0, #0xb + bl FUN_020A6C38 + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x7 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7CFC: + bl WM_GetAllowedChannel +_020A7D00: ; 0x020A7D00 + cmp r0, #0x0 + bne _020A7D44 + bl WM_Finish +_020A7D0C: ; 0x020A7D0C + cmp r0, #0x0 + beq _020A7D30 + mov r0, #0xb + bl FUN_020A6C38 + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x7 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7D30: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x5 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7D44: + ldr r0, _020A7E04 ; =FUN_020A6A74 + bl WM_SetIndCallback +_020A7D4C: ; 0x020A7D4C + cmp r0, #0x0 + beq _020A7D70 + mov r0, #0xb + bl FUN_020A6C38 + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x7 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7D70: + ldr r0, _020A7E08 ; =FUN_020A6768 + bl WM_Enable + cmp r0, #0x2 + beq _020A7D94 + cmp r0, #0x3 + beq _020A7DD0 + cmp r0, #0x8 + beq _020A7DB4 + b _020A7DD0 +_020A7D94: + mov r0, #0x2 + bl FUN_020A6C38 + ldr r0, _020A7E00 ; =0x021CA86C + mov r1, #0x1 + ldr r0, [r0, #0x0] + add r0, r0, #0x2200 + strh r1, [r0, #0x80] + b _020A7DEC +_020A7DB4: + mov r0, #0xc + bl FUN_020A6C38 + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7DD0: + mov r0, #0xb + bl FUN_020A6C38 + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x7 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7DEC: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x3 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A7E00: .word 0x021CA86C +_020A7E04: .word FUN_020A6A74 +_020A7E08: .word FUN_020A6768 + + arm_func_start FUN_020A7E0C +FUN_020A7E0C: ; 0x020A7E0C + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl OS_DisableInterrupts + ldr r2, _020A7E7C ; =0x021CA86C + ldr r1, [r2, #0x0] + cmp r1, #0x0 + bne _020A7E3C + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {lr} + bx lr +_020A7E3C: + add r1, r1, #0x2000 + ldr r1, [r1, #0x260] + cmp r1, #0x1 + beq _020A7E60 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {lr} + bx lr +_020A7E60: + mov r1, #0x0 + str r1, [r2, #0x0] + bl OS_RestoreInterrupts +_020A7E6C: ; 0x020A7E6C + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A7E7C: .word 0x021CA86C + + arm_func_start FUN_020A7E80 +FUN_020A7E80: ; 0x020A7E80 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + bl OS_DisableInterrupts + ldr r2, _020A7FA8 ; =0x021CA86C + mov r4, r0 + ldr r1, [r2, #0x0] + cmp r1, #0x0 + beq _020A7EB4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7EB4: + cmp r6, #0x0 + bne _020A7ECC + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7ECC: + ands r1, r6, #0x1f + beq _020A7EE4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7EE4: + cmp r5, #0x2300 + bhs _020A7EFC + bl OS_RestoreInterrupts + mov r0, #0x6 + ldmia sp!, {r4-r6,lr} + bx lr +_020A7EFC: + str r6, [r2, #0x0] + add r0, r6, #0x2000 + mov r1, #0x1 + str r1, [r0, #0x260] + ldr r1, [r2, #0x0] + mov r0, #0x0 + add r1, r1, #0x2200 + strh r0, [r1, #0x80] + ldr r1, [r2, #0x0] + add r1, r1, #0x2200 + strh r0, [r1, #0x68] + ldr r1, [r2, #0x0] + add r1, r1, #0x2000 + strb r0, [r1, #0x26a] + ldr r1, [r2, #0x0] + add r1, r1, #0x2000 + strb r0, [r1, #0x26b] + ldr r1, [r2, #0x0] + add r1, r1, #0x2200 + strh r0, [r1, #0x82] + ldr r1, [r2, #0x0] + add r1, r1, #0x2200 + strh r0, [r1, #0xf8] + bl FUN_020A6E30 + bl FUN_020A897C + bl OS_IsTickAvailable +_020A7F64: ; 0x020A7F64 + cmp r0, #0x0 + bne _020A7F70 + bl OS_InitTick +_020A7F70: + bl OS_IsAlarmAvailable +_020A7F74: ; 0x020A7F74 + cmp r0, #0x0 + bne _020A7F80 + bl OS_InitAlarm +_020A7F80: + ldr r1, _020A7FA8 ; =0x021CA86C + ldr r0, _020A7FAC ; =0x000022CC + ldr r1, [r1, #0x0] + add r0, r1, r0 + bl OS_CreateAlarm + mov r0, r4 + bl OS_RestoreInterrupts +_020A7F9C: ; 0x020A7F9C + mov r0, #0x0 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020A7FA8: .word 0x021CA86C +_020A7FAC: .word 0x000022CC + + arm_func_start FUN_020A7FB0 +FUN_020A7FB0: ; 0x020A7FB0 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020A7138 + add r1, r0, #0x2000 + cmp r4, #0x0 + ldr r0, [r1, #0x270] + ldmeqia sp!, {r4,lr} + bxeq lr + cmp r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r1, [r1, #0x274] + cmp r1, #0xc + ldmlsia sp!, {r4,lr} + bxls lr + ldr r3, [r0, #0x4] + cmp r3, #0x0 + beq _020A8040 +_020A7FF8: + cmp r3, r4 + bne _020A8034 + ldr r2, [r3, #0x8] + cmp r2, #0x0 + ldrne r1, [r3, #0xc] + strne r1, [r2, #0xc] + ldreq r1, [r3, #0xc] + streq r1, [r0, #0x4] + ldr r2, [r3, #0xc] + cmp r2, #0x0 + ldrne r1, [r3, #0x8] + strne r1, [r2, #0x8] + ldreq r1, [r3, #0x8] + streq r1, [r0, #0x8] + b _020A8040 +_020A8034: + ldr r3, [r3, #0xc] + cmp r3, #0x0 + bne _020A7FF8 +_020A8040: + mov r1, #0x0 + str r1, [r4, #0xc] + ldr r1, [r0, #0x8] + str r1, [r4, #0x8] + str r4, [r0, #0x8] + ldr r1, [r4, #0x8] + cmp r1, #0x0 + strne r4, [r1, #0xc] + streq r4, [r0, #0x4] + cmp r3, #0x0 + ldreq r1, [r0, #0x0] + streq r1, [r4, #0x4] + ldreq r1, [r0, #0x0] + addeq r1, r1, #0x1 + streq r1, [r0, #0x0] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020A8084 +FUN_020A8084: ; 0x020A8084 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020A7138 + add r1, r0, #0x2000 + ldr r2, [r1, #0x270] + mov r0, #0x0 + cmp r2, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r1, [r1, #0x274] + cmp r1, #0xc + ldmlsia sp!, {r4,lr} + bxls lr + ldr r0, [r2, #0x4] + cmp r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr +_020A80C8: + ldr r1, [r0, #0x4] + cmp r1, r4 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r0, [r0, #0xc] + cmp r0, #0x0 + bne _020A80C8 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020A80EC +FUN_020A80EC: ; 0x020A80EC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl FUN_020A7138 + add r0, r0, #0x2000 + cmp r5, #0x0 + mov r4, #0x0 + ldr r1, [r0, #0x270] + addeq sp, sp, #0x4 + moveq r0, r4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + cmp r1, #0x0 + beq _020A8160 + ldr r0, [r0, #0x274] + cmp r0, #0xc + bls _020A8160 + ldr r4, [r1, #0x4] + cmp r4, #0x0 + beq _020A8160 +_020A813C: + add r0, r4, #0x10 + mov r1, r5 + add r0, r0, #0x4 + bl FUN_020A8B78 +_020A814C: ; 0x020A814C + cmp r0, #0x0 + bne _020A8160 + ldr r4, [r4, #0xc] + cmp r4, #0x0 + bne _020A813C +_020A8160: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020A8170 +FUN_020A8170: ; 0x020A8170 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_020A7138 + add r0, r0, #0x2000 + ldr r1, [r0, #0x270] + cmp r1, #0x0 + beq _020A81A4 + ldr r0, [r0, #0x274] + cmp r0, #0xc + addhi sp, sp, #0x4 + ldrhi r0, [r1, #0x4] + ldmhiia sp!, {lr} + bxhi lr +_020A81A4: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_020A81B4 +FUN_020A81B4: ; 0x020A81B4 + stmdb sp!, {r4,lr} + bl FUN_020A7138 + add r2, r0, #0x2000 + ldr r1, [r2, #0x270] + mov r0, #0x0 + cmp r1, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r3, [r2, #0x274] + cmp r3, #0xc + ldmlsia sp!, {r4,lr} + bxls lr + ldr r2, _020A8294 ; =0x4EC4EC4F + sub r3, r3, #0xc + umull r2, r4, r3, r2 + movs r4, r4, lsr #0x6 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r2, [r1, #0x0] + cmp r4, r2 + ldmlsia sp!, {r4,lr} + bxls lr + mov lr, r0 + cmp r4, #0x0 + bls _020A8240 + add r12, r1, #0xc + mov r2, #0xd0 +_020A8220: + mul r0, lr, r2 + ldrb r3, [r12, r0] + add r0, r12, r0 + cmp r3, #0x0 + beq _020A8240 + add lr, lr, #0x1 + cmp lr, r4 + blo _020A8220 +_020A8240: + cmp lr, r4 + ldmcsia sp!, {r4,lr} + bxcs lr + mov r2, #0x1 + strb r2, [r0, #0x0] + ldr r3, [r1, #0x0] + mov r2, #0x0 + str r3, [r0, #0x4] + str r2, [r0, #0xc] + ldr r2, [r1, #0x8] + str r2, [r0, #0x8] + str r0, [r1, #0x8] + ldr r2, [r0, #0x8] + cmp r2, #0x0 + strne r0, [r2, #0xc] + streq r0, [r1, #0x4] + ldr r2, [r1, #0x0] + add r2, r2, #0x1 + str r2, [r1, #0x0] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A8294: .word 0x4EC4EC4F + + arm_func_start FUN_020A8298 +FUN_020A8298: ; 0x020A8298 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + bl FUN_020A7138 + movs r7, r0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + add r0, r7, #0x2000 + ldrb r0, [r0, #0x26a] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr + ldrh r0, [r5, #0x3c] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r7,lr} + bxne lr + add r0, r5, #0x4 + bl FUN_020A80EC + movs r6, r0 + bne _020A8300 + bl FUN_020A81B4 + mov r6, r0 +_020A8300: + cmp r6, #0x0 + bne _020A8320 + add r0, r7, #0x2000 + ldr r0, [r0, #0x278] + cmp r0, #0x1 + bne _020A8320 + bl FUN_020A8170 + mov r6, r0 +_020A8320: + cmp r6, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + mov r0, r5 + add r1, r6, #0x10 + mov r2, #0xc0 + strh r4, [r6, #0x2] + bl MIi_CpuCopyFast + mov r0, r6 + bl FUN_020A7FB0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FUN_020A8358 +FUN_020A8358: ; 0x020A8358 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + bl OS_DisableInterrupts + mov r5, r0 + bl FUN_020A7138 +_020A8370: ; 0x020A8370 + cmp r0, #0x0 + bne _020A8390 + mov r0, r5 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r5,lr} + bx lr +_020A8390: + mov r0, r4 + bl FUN_020A8084 + movs r4, r0 + bne _020A83B8 + mov r0, r5 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r5,lr} + bx lr +_020A83B8: + mov r0, r5 + bl OS_RestoreInterrupts + add r0, r4, #0x10 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020A83D0 +FUN_020A83D0: ; 0x020A83D0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + mov r4, r0 + bl FUN_020A7138 +_020A83E8: ; 0x020A83E8 + cmp r0, #0x0 + bne _020A8408 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r5,lr} + bx lr +_020A8408: + cmp r5, #0x0 + beq _020A8434 + add r1, r0, #0x2000 + ldrb r1, [r1, #0x26a] + add r0, r0, #0x2000 + cmp r1, #0x0 + movne r5, #0x1 + mov r1, #0x1 + moveq r5, #0x0 + strb r1, [r0, #0x26a] + b _020A8454 +_020A8434: + add r1, r0, #0x2000 + ldrb r1, [r1, #0x26a] + add r0, r0, #0x2000 + cmp r1, #0x0 + movne r5, #0x1 + mov r1, #0x0 + moveq r5, #0x0 + strb r1, [r0, #0x26a] +_020A8454: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, r5 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020A846C +FUN_020A846C: ; 0x020A846C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + bl OS_DisableInterrupts + mov r5, r0 + bl FUN_020A7138 +_020A8480: ; 0x020A8480 + cmp r0, #0x0 + mov r4, #0x0 + bne _020A84A4 + mov r0, r5 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, r4 + ldmia sp!, {r4-r5,lr} + bx lr +_020A84A4: + add r0, r0, #0x2000 + ldr r1, [r0, #0x270] + cmp r1, #0x0 + beq _020A84C0 + ldr r0, [r0, #0x274] + cmp r0, #0xc + ldrhi r4, [r1, #0x0] +_020A84C0: + mov r0, r5 + bl OS_RestoreInterrupts + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020A84D8 +FUN_020A84D8: ; 0x020A84D8 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + mov r4, r0 + bl FUN_020A7138 +_020A84E8: ; 0x020A84E8 + cmp r0, #0x0 + bne _020A8500 + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr +_020A8500: + add r1, r0, #0x2000 + ldr r0, [r1, #0x270] + cmp r0, #0x0 + beq _020A8524 + ldr r2, [r1, #0x274] + cmp r2, #0x0 + ble _020A8524 + mov r1, #0x0 + bl MI_CpuFill8 +_020A8524: + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020A8534 +FUN_020A8534: ; 0x020A8534 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x8] + ldr r1, _020A858C ; =0x01FF8000 + cmp r2, r1 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldr r1, [r0, #0xc] + sub r1, r1, #0x1 + str r1, [r0, #0xc] + ldr r1, [r0, #0xc] + cmp r1, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + mov r1, #0x0 + str r1, [r0, #0x8] + bl OS_WakeupThread + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A858C: .word 0x01FF8000 + + arm_func_start FUN_020A8590 +FUN_020A8590: + ldr r2, [r0, #0x8] + cmp r2, #0x0 + bne _020A85B8 + ldr r1, _020A85D8 ; =0x01FF8000 + str r1, [r0, #0x8] + ldr r1, [r0, #0xc] + add r1, r1, #0x1 + str r1, [r0, #0xc] + mov r0, #0x1 + bx lr +_020A85B8: + ldr r1, _020A85D8 ; =0x01FF8000 + cmp r2, r1 + ldreq r1, [r0, #0xc] + addeq r1, r1, #0x1 + streq r1, [r0, #0xc] + moveq r0, #0x1 + movne r0, #0x0 + bx lr + .balign 4 +_020A85D8: .word 0x01FF8000 + + arm_func_start FUN_020A85DC +FUN_020A85DC: ; 0x020A85DC + ldr ip, _020A85E8 ; =FUN_020A8534 + ldr r0, _020A85EC ; =0x021CA87C + bx r12 + .balign 4 +_020A85E8: .word FUN_020A8534 +_020A85EC: .word 0x021CA87C + + arm_func_start FUN_020A85F0 +FUN_020A85F0: ; 0x020A85F0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrh r1, [r0, #0x0] + cmp r1, #0x12 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldrh r2, [r0, #0x2] + ldr r1, _020A863C ; =0x021CA870 + str r2, [r1, #0x24] + ldrh r0, [r0, #0x2] + cmp r0, #0x0 + bne _020A8628 + bl FUN_020A6BBC +_020A8628: + ldr r0, _020A8640 ; =0x021CA874 + bl OS_WakeupThread + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A863C: .word 0x021CA870 +_020A8640: .word 0x021CA874 + + arm_func_start FUN_020A8644 +FUN_020A8644: + stmdb sp!, {r4-r8,lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + bl OS_DisableInterrupts + mov r5, r0 + bl FUN_020A7138 +_020A8660: ; 0x020A8660 + cmp r0, #0x0 + bne _020A867C + mov r0, r5 + bl OS_RestoreInterrupts +_020A8670: ; 0x020A8670 + mvn r0, #0x0 + ldmia sp!, {r4-r8,lr} + bx lr +_020A867C: + ldr r0, _020A87AC ; =0x021CA87C + bl OS_LockMutex + bl FUN_020A7138 + movs r4, r0 + bne _020A86AC + ldr r0, _020A87AC ; =0x021CA87C + bl OS_UnlockMutex + mov r0, r5 + bl OS_RestoreInterrupts +_020A86A0: ; 0x020A86A0 + mvn r0, #0x0 + ldmia sp!, {r4-r8,lr} + bx lr +_020A86AC: + add r0, r4, #0x2000 + ldr r1, [r0, #0x260] + cmp r1, #0x9 + bne _020A86C8 + ldrb r0, [r0, #0x26b] + cmp r0, #0x1 + bne _020A86E4 +_020A86C8: + ldr r0, _020A87AC ; =0x021CA87C + bl OS_UnlockMutex + mov r0, r5 + bl OS_RestoreInterrupts + mvn r0, #0x3 + ldmia sp!, {r4-r8,lr} + bx lr +_020A86E4: + mov r0, r7 + mov r2, r6 + add r1, r4, #0xf00 + bl MI_CpuCopy8 + mov r3, r6, lsl #0x10 + ldr r0, _020A87B0 ; =FUN_020A85F0 + mov r1, r8 + add r2, r4, #0xf00 + mov r3, r3, lsr #0x10 + bl WM_SetDCFData + cmp r0, #0x8 + addls pc, pc, r0, lsl #0x2 + b _020A873C +_020A8718: + b _020A873C +_020A871C: + b _020A873C +_020A8720: + b _020A8758 +_020A8724: + b _020A873C +_020A8728: + b _020A873C +_020A872C: + b _020A873C +_020A8730: + b _020A873C +_020A8734: + b _020A873C +_020A8738: + b _020A873C +_020A873C: + ldr r0, _020A87AC ; =0x021CA87C + bl OS_UnlockMutex + mov r0, r5 + bl OS_RestoreInterrupts + mvn r0, #0x4 + ldmia sp!, {r4-r8,lr} + bx lr +_020A8758: + ldr r0, _020A87B4 ; =0x021CA874 + bl OS_SleepThread + ldr r0, _020A87B8 ; =0x021CA870 + ldr r0, [r0, #0x24] + cmp r0, #0x0 + beq _020A8790 + cmp r0, #0x1 + ldr r0, _020A87AC ; =0x021CA87C + bl OS_UnlockMutex + mov r0, r5 + bl OS_RestoreInterrupts + mvn r0, #0x4 + ldmia sp!, {r4-r8,lr} + bx lr +_020A8790: + ldr r0, _020A87AC ; =0x021CA87C + bl OS_UnlockMutex + mov r0, r5 + bl OS_RestoreInterrupts + mov r0, r6 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020A87AC: .word 0x021CA87C +_020A87B0: .word FUN_020A85F0 +_020A87B4: .word 0x021CA874 +_020A87B8: .word 0x021CA870 + + arm_func_start FUN_020A87BC +FUN_020A87BC: ; 0x020A87BC + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + ldr r1, _020A87DC ; =0x021CA870 + str r4, [r1, #0x28] + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A87DC: .word 0x021CA870 + + arm_func_start FUN_020A87E0 +FUN_020A87E0: ; 0x020A87E0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, #0x0 + mov r4, r0 + mov r6, r7 + bl FUN_020A7138 + mov r5, r0 + bl OS_DisableInterrupts +_020A8800: ; 0x020A8800 + cmp r5, #0x0 + beq _020A8830 + add r1, r5, #0x2000 + ldr r2, [r1, #0x260] + cmp r2, #0x9 + bne _020A8830 + ldrb r1, [r1, #0x26b] + cmp r1, #0x0 + addeq r2, r5, #0x2100 + ldreq r1, _020A884C ; =0x0000214C + ldreqh r6, [r2, #0x4a] + addeq r7, r5, r1 +_020A8830: + bl OS_RestoreInterrupts +_020A8834: ; 0x020A8834 + cmp r4, #0x0 + strneh r6, [r4, #0x0] + mov r0, r7 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020A884C: .word 0x0000214C + + arm_func_start FUN_020A8850 +FUN_020A8850: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, #0x0 + bl FUN_020A7138 + mov r4, r0 + bl OS_DisableInterrupts +_020A8868: ; 0x020A8868 + cmp r4, #0x0 + beq _020A8890 + add r1, r4, #0x2000 + ldr r2, [r1, #0x260] + cmp r2, #0x9 + bne _020A8890 + ldrb r1, [r1, #0x26b] + cmp r1, #0x0 + ldreq r1, _020A88A4 ; =0x00002144 + addeq r5, r4, r1 +_020A8890: + bl OS_RestoreInterrupts + mov r0, r5 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020A88A4: .word 0x00002144 + + arm_func_start FUN_020A88A8 +FUN_020A88A8: ; 0x020A88A8 + stmdb sp!, {r4,lr} + bl FUN_020A7138 + movs r4, r0 + ldmeqia sp!, {r4,lr} + bxeq lr + add r0, r4, #0x2000 + ldr r1, [r0, #0x260] + cmp r1, #0x9 + ldmneia sp!, {r4,lr} + bxne lr + ldrb r0, [r0, #0x26b] + cmp r0, #0x1 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r0, _020A8928 ; =0x021CA87C + bl FUN_020A8590 +_020A88E8: ; 0x020A88E8 + cmp r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r1, _020A892C ; =0x00002144 + ldr r0, _020A8930 ; =FUN_020A85DC + add r1, r4, r1 + add r2, r4, #0xf00 + mov r3, #0x0 + bl WM_SetDCFData + cmp r0, #0x2 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r0, _020A8928 ; =0x021CA87C + bl FUN_020A8534 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020A8928: .word 0x021CA87C +_020A892C: .word 0x00002144 +_020A8930: .word FUN_020A85DC + + arm_func_start FUN_020A8934 +FUN_020A8934: ; 0x020A8934 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020A8978 ; =0x021CA870 + mov r2, r0 + ldr r12, [r1, #0x28] + cmp r12, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + ldrh r3, [r2, #0x6] + add r0, r2, #0x1e + add r1, r2, #0x18 + add r2, r2, #0x2c + blx r12 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A8978: .word 0x021CA870 + + arm_func_start FUN_020A897C +FUN_020A897C: ; 0x020A897C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020A89C8 ; =0x021CA870 + ldrb r0, [r1, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldr r0, _020A89CC ; =0x021CA87C + mov r2, #0x0 + mov r3, #0x1 + strb r3, [r1, #0x0] + str r2, [r1, #0x24] + str r2, [r1, #0x8] + str r2, [r1, #0x4] + bl OS_InitMutex + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A89C8: .word 0x021CA870 +_020A89CC: .word 0x021CA87C + + arm_func_start FUN_020A89D0 +FUN_020A89D0: ; 0x020A89D0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, _020A8A48 ; =0x021CA89C + ands r1, r0, #0x2 + ldrb r12, [r2, #0x0] + movne r0, r0, asr #0x2 + andne lr, r0, #0xff + moveq r0, r0, asr #0x2 + addeq r0, r0, #0x19 + andeq lr, r0, #0xff + mov r1, r12, lsr #0x1f + rsb r0, r1, r12, lsl #0x1c + cmp r12, #0x10 + ldr r3, _020A8A4C ; =0x021CA8A0 + add r0, r1, r0, ror #0x1c + strb lr, [r3, r0] + addcc r0, r12, #0x1 + strccb r0, [r2, #0x0] + addcc sp, sp, #0x4 + ldmccia sp!, {lr} + bxcc lr + add r0, r12, #0x1 + mov r1, r0, lsr #0x1f + rsb r0, r1, r0, lsl #0x1c + add r0, r1, r0, ror #0x1c + add r0, r0, #0x10 + strb r0, [r2, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A8A48: .word 0x021CA89C +_020A8A4C: .word 0x021CA8A0 + + arm_func_start FUN_020A8A50 +FUN_020A8A50: ; 0x020A8A50 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_020A8A90 + mov r1, #0x0 + cmp r0, #0x1c + movcs r1, #0x3 + bhs _020A8A80 + cmp r0, #0x16 + movcs r1, #0x2 + bhs _020A8A80 + cmp r0, #0x10 + movcs r1, #0x1 +_020A8A80: + mov r0, r1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_020A8A90 +FUN_020A8A90: ; 0x020A8A90 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020A8B20 ; =0x021CA89C + mov r0, #0x0 + ldrb r1, [r1, #0x0] + cmp r1, #0x10 + bls _020A8ADC + ldr r2, _020A8B24 ; =0x021CA8A0 + mov r3, r0 +_020A8AB4: + ldrb r1, [r2, #0x0] + add r3, r3, #0x1 + cmp r3, #0x10 + add r0, r0, r1 + add r2, r2, #0x1 + blt _020A8AB4 + mov r1, r0, asr #0x3 + add r0, r0, r1, lsr #0x1c + mov r0, r0, asr #0x4 + b _020A8B10 +_020A8ADC: + cmp r1, #0x0 + beq _020A8B10 + mov r3, r0 + cmp r1, #0x0 + ble _020A8B0C + ldr ip, _020A8B24 ; =0x021CA8A0 +_020A8AF4: + ldrb r2, [r12, #0x0] + add r3, r3, #0x1 + cmp r3, r1 + add r0, r0, r2 + add r12, r12, #0x1 + blt _020A8AF4 +_020A8B0C: + bl _s32_div_f +_020A8B10: + and r0, r0, #0xff + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020A8B20: .word 0x021CA89C +_020A8B24: .word 0x021CA8A0 + + arm_func_start FUN_020A8B28 +FUN_020A8B28: ; 0x020A8B28 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + bl OS_DisableInterrupts + mov r5, r0 + bl FUN_020A7138 +_020A8B3C: ; 0x020A8B3C + cmp r0, #0x0 + mov r4, #0x0 + beq _020A8B60 + add r0, r0, #0x2000 + ldr r0, [r0, #0x260] + cmp r0, #0x9 + bne _020A8B60 + bl FUN_020A8A50 + mov r4, r0 +_020A8B60: + mov r0, r5 + bl OS_RestoreInterrupts + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020A8B78 +FUN_020A8B78: + mov r12, #0x0 +_020A8B7C: + ldrb r3, [r0, r12] + ldrb r2, [r1, r12] + cmp r3, r2 + movne r0, #0x0 + bxne lr + add r12, r12, #0x1 + cmp r12, #0x6 + blt _020A8B7C + mov r0, #0x1 + bx lr + + arm_func_start FUN_020A8BA4 +FUN_020A8BA4: ; 0x020A8BA4 + ldr ip, _020A8BAC ; =DGT_Hash1GetDigest_R + bx r12 + .balign 4 +_020A8BAC: .word DGT_Hash1GetDigest_R + + arm_func_start FUN_020A8BB0 +FUN_020A8BB0: ; 0x020A8BB0 + ldr ip, _020A8BB8 ; =DGT_Hash1SetSource + bx r12 + .balign 4 +_020A8BB8: .word DGT_Hash1SetSource + + arm_func_start FUN_020A8BBC +FUN_020A8BBC: ; 0x020A8BBC + ldr ip, _020A8BC4 ; =DGT_Hash1Reset + bx r12 + .balign 4 +_020A8BC4: .word DGT_Hash1Reset + + arm_func_start FUN_020A8BC8 +FUN_020A8BC8: ; 0x020A8BC8 + stmdb sp!, {r4,lr} + ldrsh r4, [r3, #0x0] + ldr r12, [sp, #0x8] + mov lr, #0x0 + strh r4, [r0, #0x0] + ldrb r4, [r3, #0x2] + cmp r12, #0x2 + strb r4, [r0, #0x2] + strb lr, [r0, #0x3] + beq _020A8C04 + cmp r12, #0x3 + beq _020A8C10 + cmp r12, #0x4 + beq _020A8C1C + ldmia sp!, {r4,pc} +_020A8C04: + add r0, r0, #0x4 + bl FUN_020A8CA8 + ldmia sp!, {r4,pc} +_020A8C10: + add r0, r0, #0x4 + bl FUN_020A91D8 + ldmia sp!, {r4,pc} +_020A8C1C: + add r0, r0, #0x4 + bl FUN_020A9D18 + ldmia sp!, {r4,pc} + + arm_func_start FUN_020A8C28 +FUN_020A8C28: ; 0x020A8C28 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrsh r12, [r0, #0x0] + cmp r3, #0x2 + strh r12, [sp, #0x0] + ldrb r12, [r0, #0x2] + strb r12, [sp, #0x2] + beq _020A8C60 + cmp r3, #0x3 + beq _020A8C78 + cmp r3, #0x4 + beq _020A8C90 + add sp, sp, #0x4 + ldmia sp!, {pc} +_020A8C60: + add r3, sp, #0x0 + add r0, r0, #0x4 + sub r2, r2, #0x4 + bl FUN_020A8F58 + add sp, sp, #0x4 + ldmia sp!, {pc} +_020A8C78: + add r3, sp, #0x0 + add r0, r0, #0x4 + sub r2, r2, #0x4 + bl FUN_020A97DC + add sp, sp, #0x4 + ldmia sp!, {pc} +_020A8C90: + add r3, sp, #0x0 + add r0, r0, #0x4 + sub r2, r2, #0x4 + bl FUN_020A9F10 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020A8CA8 +FUN_020A8CA8: ; 0x020A8CA8 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x3c + movs r2, r2, lsr #0x2 + str r2, [sp, #0x4] + mov r2, #0x0 + str r2, [sp, #0x0] + addeq sp, sp, #0x3c + ldmeqia sp!, {r4-r11,pc} +_020A8CC8: ; 0x020A8CC8 + mov r5, #0x8000 + ldr fp, _020A8F4C ; =0x020FF5D4 + ldr r4, _020A8F50 ; =0x00007FFF + str r2, [sp, #0x8] + str r2, [sp, #0xc] + str r2, [sp, #0x10] + str r2, [sp, #0x14] + str r2, [sp, #0x18] + rsb r5, r5, #0x0 + mov r6, #0x2 + mov lr, #0x58 + str r2, [sp, #0x1c] + str r2, [sp, #0x20] + str r2, [sp, #0x24] + str r2, [sp, #0x28] + str r2, [sp, #0x2c] + str r2, [sp, #0x30] + str r2, [sp, #0x34] +_020A8D10: + ldrb r9, [r3, #0x2] + ldrsh r2, [r3, #0x0] + ldrsh r7, [r1, #0x0] + mov r10, r9, lsl #0x1 + ldrsh r10, [r11, r10] + subs r8, r7, r2 + movmi r7, r6 + ldrpl r7, [sp, #0x8] + rsbmi r8, r8, #0x0 + cmp r8, r10 + orrge r7, r7, #0x1 + ands r8, r7, #0x1 + ldreq r10, [sp, #0xc] + ands r8, r7, #0x2 + rsbne r10, r10, #0x0 + mov r8, #0x8000 + add r2, r2, r10 + rsb r8, r8, #0x0 + cmp r2, r8 + ldr r8, _020A8F54 ; =0x020FF5B8 + movlt r2, r5 + cmp r2, r4 + ldrsb r8, [r8, r7] + movgt r2, r4 + adds r9, r9, r8 + ldrmi r9, [sp, #0x10] + bmi _020A8D84 + cmp r9, #0x58 + movgt r9, lr +_020A8D84: + strh r2, [r3, #0x0] + strb r9, [r3, #0x2] + ldrb r10, [r3, #0x2] + and r2, r7, #0xff + ldrsh r7, [r3, #0x0] + ldrsh r8, [r1, #0x2] + mov r12, r10, lsl #0x1 + ldrsh r12, [r11, r12] + subs r9, r8, r7 + movmi r8, r6 + ldrpl r8, [sp, #0x14] + rsbmi r9, r9, #0x0 + cmp r9, r12 + orrge r8, r8, #0x1 + ands r9, r8, #0x1 + ldreq r12, [sp, #0x18] + ands r9, r8, #0x2 + rsbne r12, r12, #0x0 + mov r9, #0x8000 + add r7, r7, r12 + rsb r9, r9, #0x0 + cmp r7, r9 + ldr sb, _020A8F54 ; =0x020FF5B8 + movlt r7, r5 + cmp r7, r4 + ldrsb r9, [r9, r8] + movgt r7, r4 + adds r10, r10, r9 + ldrmi r10, [sp, #0x1c] + bmi _020A8E04 + cmp r10, #0x58 + movgt r10, lr +_020A8E04: + strh r7, [r3, #0x0] + strb r10, [r3, #0x2] + and r7, r8, #0xff + orr r2, r2, r7, lsl #0x2 + ldrb r10, [r3, #0x2] + ldrsh r7, [r3, #0x0] + ldrsh r8, [r1, #0x4] + mov r12, r10, lsl #0x1 + ldrsh r12, [r11, r12] + subs r9, r8, r7 + movmi r8, r6 + ldrpl r8, [sp, #0x20] + rsbmi r9, r9, #0x0 + cmp r9, r12 + orrge r8, r8, #0x1 + ands r9, r8, #0x1 + ldreq r12, [sp, #0x24] + ands r9, r8, #0x2 + rsbne r12, r12, #0x0 + mov r9, #0x8000 + add r7, r7, r12 + rsb r9, r9, #0x0 + cmp r7, r9 + ldr sb, _020A8F54 ; =0x020FF5B8 + movlt r7, r5 + cmp r7, r4 + ldrsb r9, [r9, r8] + movgt r7, r4 + and r2, r2, #0xff + adds r10, r10, r9 + ldrmi r10, [sp, #0x28] + bmi _020A8E8C + cmp r10, #0x58 + movgt r10, lr +_020A8E8C: + strh r7, [r3, #0x0] + strb r10, [r3, #0x2] + and r7, r8, #0xff + orr r2, r2, r7, lsl #0x4 + ldrb r10, [r3, #0x2] + ldrsh r8, [r1, #0x6] + ldrsh r7, [r3, #0x0] + mov r12, r10, lsl #0x1 + ldrsh r12, [r11, r12] + subs r9, r8, r7 + movmi r8, r6 + ldrpl r8, [sp, #0x2c] + rsbmi r9, r9, #0x0 + cmp r9, r12 + orrge r8, r8, #0x1 + ands r9, r8, #0x1 + ldreq r12, [sp, #0x30] + ands r9, r8, #0x2 + rsbne r12, r12, #0x0 + mov r9, #0x8000 + add r7, r7, r12 + rsb r9, r9, #0x0 + cmp r7, r9 + ldr sb, _020A8F54 ; =0x020FF5B8 + movlt r7, r5 + cmp r7, r4 + ldrsb r9, [r9, r8] + movgt r7, r4 + and r2, r2, #0xff + adds r10, r10, r9 + add r1, r1, #0x8 + ldrmi r10, [sp, #0x34] + bmi _020A8F18 + cmp r10, #0x58 + movgt r10, lr +_020A8F18: + strh r7, [r3, #0x0] + and r7, r8, #0xff + strb r10, [r3, #0x2] + orr r2, r2, r7, lsl #0x6 + strb r2, [r0], #0x1 + ldr r2, [sp, #0x0] + add r7, r2, #0x1 + ldr r2, [sp, #0x4] + str r7, [sp, #0x0] + cmp r7, r2 + blo _020A8D10 + add sp, sp, #0x3c + ldmia sp!, {r4-r11,pc} + .balign 4 +_020A8F4C: .word 0x020FF5D4 +_020A8F50: .word 0x00007FFF +_020A8F54: .word 0x020FF5B8 + + arm_func_start FUN_020A8F58 +FUN_020A8F58: ; 0x020A8F58 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x34 + cmp r2, #0x0 + addls sp, sp, #0x34 + mov r12, #0x0 + ldmlsia sp!, {r4-r11,pc} +_020A8F70: ; 0x020A8F70 + mov r4, #0x8000 + rsb r6, r4, #0x0 + ldr r5, _020A91CC ; =0x00007FFF + ldr fp, _020A91D0 ; =0x020FF5D4 + str r12, [sp, #0x0] + str r12, [sp, #0x8] + str r12, [sp, #0xc] + str r12, [sp, #0x14] + str r12, [sp, #0x18] + mov r4, #0x58 + str r12, [sp, #0x20] + str r12, [sp, #0x24] + str r12, [sp, #0x2c] +_020A8FA4: + ldrb r7, [r0, #0x0] + ldrb r8, [r3, #0x2] + ldrsh r9, [r3, #0x0] + and r10, r7, #0x3 + ands r7, r10, #0x1 + mov r7, r8, lsl #0x1 + ldrsh r7, [r11, r7] + ldreq r7, [sp, #0x0] + ands lr, r10, #0x2 + str lr, [sp, #0x4] + beq _020A8FE8 + sub r9, r9, r7 + mov r7, #0x8000 + rsb r7, r7, #0x0 + cmp r9, r7 + movlt r9, r6 + b _020A8FF4 +_020A8FE8: + add r9, r9, r7 + cmp r9, r5 + movgt r9, r5 +_020A8FF4: + ldr r7, _020A91D4 ; =0x020FF5B8 + ldrsb r7, [r7, r10] + adds r8, r8, r7 + ldrmi r8, [sp, #0x8] + bmi _020A9010 + cmp r8, #0x58 + movgt r8, r4 +_020A9010: + mov r7, r9, lsl #0x10 + mov r7, r7, asr #0x10 + strh r7, [r3, #0x0] + strb r8, [r3, #0x2] + strh r7, [r1, #0x0] + ldrb r7, [r0, #0x0] + ldrb r8, [r3, #0x2] + ldrsh r9, [r3, #0x0] + mov r7, r7, asr #0x2 + and r10, r7, #0x3 + ands r7, r10, #0x1 + mov r7, r8, lsl #0x1 + ldrsh r7, [r11, r7] + ldreq r7, [sp, #0xc] + ands lr, r10, #0x2 + str lr, [sp, #0x10] + beq _020A906C + sub r9, r9, r7 + mov r7, #0x8000 + rsb r7, r7, #0x0 + cmp r9, r7 + movlt r9, r6 + b _020A9078 +_020A906C: + add r9, r9, r7 + cmp r9, r5 + movgt r9, r5 +_020A9078: + ldr r7, _020A91D4 ; =0x020FF5B8 + ldrsb r7, [r7, r10] + adds r8, r8, r7 + ldrmi r8, [sp, #0x14] + bmi _020A9094 + cmp r8, #0x58 + movgt r8, r4 +_020A9094: + mov r7, r9, lsl #0x10 + mov r7, r7, asr #0x10 + strh r7, [r3, #0x0] + strb r8, [r3, #0x2] + strh r7, [r1, #0x2] + ldrb r7, [r0, #0x0] + ldrb r8, [r3, #0x2] + ldrsh r9, [r3, #0x0] + mov r7, r7, asr #0x4 + and r10, r7, #0x3 + ands r7, r10, #0x1 + mov r7, r8, lsl #0x1 + ldrsh r7, [r11, r7] + ldreq r7, [sp, #0x18] + ands lr, r10, #0x2 + str lr, [sp, #0x1c] + beq _020A90F0 + sub r9, r9, r7 + mov r7, #0x8000 + rsb r7, r7, #0x0 + cmp r9, r7 + movlt r9, r6 + b _020A90FC +_020A90F0: + add r9, r9, r7 + cmp r9, r5 + movgt r9, r5 +_020A90FC: + ldr r7, _020A91D4 ; =0x020FF5B8 + ldrsb r7, [r7, r10] + adds r8, r8, r7 + ldrmi r8, [sp, #0x20] + bmi _020A9118 + cmp r8, #0x58 + movgt r8, r4 +_020A9118: + mov r7, r9, lsl #0x10 + mov r7, r7, asr #0x10 + strh r7, [r3, #0x0] + strb r8, [r3, #0x2] + strh r7, [r1, #0x4] + ldrb r7, [r0, #0x0] + ldrb r8, [r3, #0x2] + ldrsh r9, [r3, #0x0] + mov r7, r7, asr #0x6 + and r10, r7, #0x3 + ands r7, r10, #0x1 + mov r7, r8, lsl #0x1 + ldrsh r7, [r11, r7] + ldreq r7, [sp, #0x24] + ands lr, r10, #0x2 + str lr, [sp, #0x28] + beq _020A9174 + sub r9, r9, r7 + mov r7, #0x8000 + rsb r7, r7, #0x0 + cmp r9, r7 + movlt r9, r6 + b _020A9180 +_020A9174: + add r9, r9, r7 + cmp r9, r5 + movgt r9, r5 +_020A9180: + ldr r7, _020A91D4 ; =0x020FF5B8 + ldrsb r7, [r7, r10] + adds r8, r8, r7 + ldrmi r8, [sp, #0x2c] + bmi _020A919C + cmp r8, #0x58 + movgt r8, r4 +_020A919C: + mov r7, r9, lsl #0x10 + mov r9, r7, asr #0x10 + strh r9, [r3, #0x0] + strb r8, [r3, #0x2] + add r12, r12, #0x1 + strh r9, [r1, #0x6] + add r1, r1, #0x8 + add r0, r0, #0x1 + cmp r12, r2 + blo _020A8FA4 + add sp, sp, #0x34 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020A91CC: .word 0x00007FFF +_020A91D0: .word 0x020FF5D4 +_020A91D4: .word 0x020FF5B8 + + arm_func_start FUN_020A91D8 +FUN_020A91D8: ; 0x020A91D8 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x54 + movs r2, r2, lsr #0x3 + str r2, [sp, #0x4] + mov r2, #0x0 + str r2, [sp, #0x0] + addeq sp, sp, #0x54 + ldmeqia sp!, {r4-r11,pc} +_020A91F8: ; 0x020A91F8 + ldr r5, [sp, #0x0] + mov r4, #0x8000 + rsb lr, r4, #0x0 + ldr ip, _020A97D0 ; =0x00007FFF + str r2, [sp, #0x10] + str r2, [sp, #0x14] + str r2, [sp, #0x18] + str r2, [sp, #0x1c] + str r2, [sp, #0x20] + mov r4, #0x4 + mov r2, #0x58 + str r5, [sp, #0x24] + str r5, [sp, #0x28] + str r5, [sp, #0x2c] + str r5, [sp, #0x30] + str r5, [sp, #0x34] + str r5, [sp, #0x38] + str r5, [sp, #0x3c] + str r5, [sp, #0x40] + str r5, [sp, #0x44] + str r5, [sp, #0x48] + str r5, [sp, #0x4c] +_020A9250: + ldrsh r8, [r3, #0x0] + ldrsh r6, [r1, #0x0] + ldrb r5, [r3, #0x2] + subs r7, r6, r8 + movmi r10, r4 + ldr r6, _020A97D4 ; =0x020FF5D4 + mov r9, r5, lsl #0x1 + ldrsh r6, [r6, r9] + ldrpl r10, [sp, #0x10] + rsbmi r7, r7, #0x0 + cmp r7, r6 + orrge r10, r10, #0x2 + subge r7, r7, r6 + mov r9, r6, asr #0x1 + cmp r7, r9 + orrge r10, r10, #0x1 + ands r7, r10, #0x2 + mov r7, r6, asr #0x2 + addne r7, r7, r6 + ands r6, r10, #0x1 + addne r7, r7, r9 + ands r6, r10, #0x4 + rsbne r7, r7, #0x0 + add r6, r8, r7 + mov r7, #0x8000 + rsb r7, r7, #0x0 + cmp r6, r7 + ldr r7, _020A97D8 ; =0x020FF5BC + movlt r6, lr + cmp r6, r12 + ldrsb r7, [r7, r10] + movgt r6, r12 + adds r5, r5, r7 + ldrmi r5, [sp, #0x14] + bmi _020A92E4 + cmp r5, #0x58 + movgt r5, r2 +_020A92E4: + strh r6, [r3, #0x0] + strb r5, [r3, #0x2] + and r5, r10, #0xff + mov r5, r5, lsl #0x5 + and r10, r5, #0xff + ldrb r8, [r3, #0x2] + ldrsh r11, [r3, #0x0] + ldrsh r5, [r1, #0x2] + mov r9, r8, lsl #0x1 + subs r7, r5, r11 + ldr r5, _020A97D4 ; =0x020FF5D4 + movmi r6, r4 + ldrsh r9, [r5, r9] + ldrpl r6, [sp, #0x18] + rsbmi r7, r7, #0x0 + cmp r7, r9 + orrge r6, r6, #0x2 + subge r7, r7, r9 + mov r5, r9, asr #0x1 + cmp r7, r5 + orrge r6, r6, #0x1 + ands r7, r6, #0x2 + mov r7, r9, asr #0x2 + addne r7, r7, r9 + ands r9, r6, #0x1 + addne r7, r7, r5 + ands r5, r6, #0x4 + rsbne r7, r7, #0x0 + add r5, r11, r7 + mov r7, #0x8000 + rsb r7, r7, #0x0 + cmp r5, r7 + ldr r7, _020A97D8 ; =0x020FF5BC + movlt r5, lr + cmp r5, r12 + ldrsb r7, [r7, r6] + movgt r5, r12 + adds r8, r8, r7 + ldrmi r8, [sp, #0x1c] + bmi _020A938C + cmp r8, #0x58 + movgt r8, r2 +_020A938C: + strh r5, [r3, #0x0] + strb r8, [r3, #0x2] + and r5, r6, #0xff + orr r5, r10, r5, lsl #0x2 + and r10, r5, #0xff + ldrb r8, [r3, #0x2] + ldrsh r11, [r3, #0x0] + ldrsh r5, [r1, #0x4] + mov r9, r8, lsl #0x1 + subs r7, r5, r11 + ldr r5, _020A97D4 ; =0x020FF5D4 + movmi r6, r4 + ldrsh r9, [r5, r9] + ldrpl r6, [sp, #0x20] + rsbmi r7, r7, #0x0 + cmp r7, r9 + orrge r6, r6, #0x2 + subge r7, r7, r9 + mov r5, r9, asr #0x1 + cmp r7, r5 + orrge r6, r6, #0x1 + ands r7, r6, #0x2 + mov r7, r9, asr #0x2 + addne r7, r7, r9 + ands r9, r6, #0x1 + addne r7, r7, r5 + ands r5, r6, #0x4 + rsbne r7, r7, #0x0 + add r5, r11, r7 + mov r7, #0x8000 + rsb r7, r7, #0x0 + cmp r5, r7 + ldr r7, _020A97D8 ; =0x020FF5BC + movlt r5, lr + cmp r5, r12 + ldrsb r7, [r7, r6] + movgt r5, r12 + adds r8, r8, r7 + ldrmi r8, [sp, #0x24] + bmi _020A9434 + cmp r8, #0x58 + movgt r8, r2 +_020A9434: + strh r5, [r3, #0x0] + and r5, r6, #0xff + str r5, [sp, #0x8] + strb r8, [r3, #0x2] + orr r5, r10, r5, asr #0x1 + strb r5, [r0, #0x0] + ldrb r5, [r3, #0x2] + ldrsh r8, [r3, #0x0] + ldrsh r6, [r1, #0x6] + mov r9, r5, lsl #0x1 + subs r7, r6, r8 + ldr r6, _020A97D4 ; =0x020FF5D4 + movmi r10, r4 + ldrsh r6, [r6, r9] + ldrpl r10, [sp, #0x28] + rsbmi r7, r7, #0x0 + cmp r7, r6 + orrge r10, r10, #0x2 + subge r7, r7, r6 + mov r9, r6, asr #0x1 + cmp r7, r9 + orrge r10, r10, #0x1 + ands r7, r10, #0x2 + mov r7, r6, asr #0x2 + addne r7, r7, r6 + ands r6, r10, #0x1 + addne r7, r7, r9 + ands r6, r10, #0x4 + rsbne r7, r7, #0x0 + add r6, r8, r7 + mov r7, #0x8000 + rsb r7, r7, #0x0 + cmp r6, r7 + ldr r7, _020A97D8 ; =0x020FF5BC + movlt r6, lr + cmp r6, r12 + ldrsb r7, [r7, r10] + movgt r6, r12 + adds r5, r5, r7 + ldrmi r5, [sp, #0x2c] + bmi _020A94E0 + cmp r5, #0x58 + movgt r5, r2 +_020A94E0: + strh r6, [r3, #0x0] + strb r5, [r3, #0x2] + ldrsh r11, [r3, #0x0] + ldrsh r6, [r1, #0x8] + ldrb r9, [r3, #0x2] + and r5, r10, #0xff + subs r8, r6, r11 + movmi r7, r4 + ldr r6, _020A97D4 ; =0x020FF5D4 + mov r10, r9, lsl #0x1 + ldrsh r10, [r6, r10] + ldrpl r7, [sp, #0x30] + rsbmi r8, r8, #0x0 + cmp r8, r10 + orrge r7, r7, #0x2 + subge r8, r8, r10 + mov r6, r10, asr #0x1 + cmp r8, r6 + orrge r7, r7, #0x1 + ands r8, r7, #0x2 + mov r8, r10, asr #0x2 + addne r8, r8, r10 + ands r10, r7, #0x1 + addne r8, r8, r6 + ands r6, r7, #0x4 + rsbne r8, r8, #0x0 + add r6, r11, r8 + mov r8, #0x8000 + rsb r8, r8, #0x0 + cmp r6, r8 + ldr r8, _020A97D8 ; =0x020FF5BC + movlt r6, lr + mov r5, r5, lsl #0x4 + cmp r6, r12 + ldrsb r8, [r8, r7] + movgt r6, r12 + and r5, r5, #0xff + adds r9, r9, r8 + ldrmi r9, [sp, #0x34] + bmi _020A9588 + cmp r9, #0x58 + movgt r9, r2 +_020A9588: + strh r6, [r3, #0x0] + strb r9, [r3, #0x2] + and r6, r7, #0xff + orr r5, r5, r6, lsl #0x1 + ldrb r9, [r3, #0x2] + ldrsh r11, [r3, #0x0] + ldrsh r6, [r1, #0xa] + mov r10, r9, lsl #0x1 + and r5, r5, #0xff + subs r8, r6, r11 + ldr r6, _020A97D4 ; =0x020FF5D4 + movmi r7, r4 + ldrsh r10, [r6, r10] + ldrpl r7, [sp, #0x38] + rsbmi r8, r8, #0x0 + cmp r8, r10 + orrge r7, r7, #0x2 + subge r8, r8, r10 + mov r6, r10, asr #0x1 + cmp r8, r6 + orrge r7, r7, #0x1 + ands r8, r7, #0x2 + mov r8, r10, asr #0x2 + addne r8, r8, r10 + ands r10, r7, #0x1 + addne r8, r8, r6 + ands r6, r7, #0x4 + rsbne r8, r8, #0x0 + add r6, r11, r8 + mov r8, #0x8000 + rsb r8, r8, #0x0 + cmp r6, r8 + ldr r8, _020A97D8 ; =0x020FF5BC + movlt r6, lr + cmp r6, r12 + ldrsb r8, [r8, r7] + movgt r6, r12 + adds r9, r9, r8 + ldrmi r9, [sp, #0x3c] + bmi _020A9630 + cmp r9, #0x58 + movgt r9, r2 +_020A9630: + ldr r8, [sp, #0x8] + strh r6, [r3, #0x0] + orr r8, r5, r8, lsl #0x7 + and r5, r7, #0xff + str r5, [sp, #0xc] + strb r9, [r3, #0x2] + orr r5, r8, r5, asr #0x2 + strb r5, [r0, #0x1] + ldrb r5, [r3, #0x2] + ldrsh r8, [r3, #0x0] + ldrsh r6, [r1, #0xc] + mov r9, r5, lsl #0x1 + subs r7, r6, r8 + ldr r6, _020A97D4 ; =0x020FF5D4 + movmi r10, r4 + ldrsh r6, [r6, r9] + ldrpl r10, [sp, #0x40] + rsbmi r7, r7, #0x0 + cmp r7, r6 + orrge r10, r10, #0x2 + subge r7, r7, r6 + mov r9, r6, asr #0x1 + cmp r7, r9 + orrge r10, r10, #0x1 + ands r7, r10, #0x2 + mov r7, r6, asr #0x2 + addne r7, r7, r6 + ands r6, r10, #0x1 + addne r7, r7, r9 + ands r6, r10, #0x4 + rsbne r7, r7, #0x0 + add r6, r8, r7 + mov r7, #0x8000 + rsb r7, r7, #0x0 + cmp r6, r7 + ldr r7, _020A97D8 ; =0x020FF5BC + movlt r6, lr + cmp r6, r12 + ldrsb r7, [r7, r10] + movgt r6, r12 + adds r5, r5, r7 + ldrmi r5, [sp, #0x44] + bmi _020A96E4 + cmp r5, #0x58 + movgt r5, r2 +_020A96E4: + strh r6, [r3, #0x0] + strb r5, [r3, #0x2] + and r5, r10, #0xff + mov r5, r5, lsl #0x3 + and r11, r5, #0xff + ldrsh r6, [r1, #0xe] + ldrsh r5, [r3, #0x0] + ldrb r9, [r3, #0x2] + add r1, r1, #0x10 + subs r8, r6, r5 + movmi r7, r4 + ldr r6, _020A97D4 ; =0x020FF5D4 + mov r10, r9, lsl #0x1 + ldrsh r10, [r6, r10] + ldrpl r7, [sp, #0x48] + rsbmi r8, r8, #0x0 + cmp r8, r10 + orrge r7, r7, #0x2 + subge r8, r8, r10 + mov r6, r10, asr #0x1 + cmp r8, r6 + orrge r7, r7, #0x1 + ands r8, r7, #0x2 + mov r8, r10, asr #0x2 + addne r8, r8, r10 + ands r10, r7, #0x1 + addne r8, r8, r6 + ands r6, r7, #0x4 + rsbne r8, r8, #0x0 + mov r6, #0x8000 + add r5, r5, r8 + rsb r6, r6, #0x0 + cmp r5, r6 + ldr r6, _020A97D8 ; =0x020FF5BC + movlt r5, lr + cmp r5, r12 + ldrsb r6, [r6, r7] + movgt r5, r12 + adds r9, r9, r6 + ldrmi r9, [sp, #0x4c] + bmi _020A9790 + cmp r9, #0x58 + movgt r9, r2 +_020A9790: + strh r5, [r3, #0x0] + and r5, r7, #0xff + orr r6, r11, r5 + ldr r5, [sp, #0xc] + strb r9, [r3, #0x2] + orr r5, r6, r5, lsl #0x6 + strb r5, [r0, #0x2] + ldr r5, [sp, #0x0] + add r0, r0, #0x3 + add r6, r5, #0x1 + ldr r5, [sp, #0x4] + str r6, [sp, #0x0] + cmp r6, r5 + blo _020A9250 + add sp, sp, #0x54 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020A97D0: .word 0x00007FFF +_020A97D4: .word 0x020FF5D4 +_020A97D8: .word 0x020FF5BC + + arm_func_start FUN_020A97DC +FUN_020A97DC: ; 0x020A97DC + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4c + ldr r5, _020A9D08 ; =0xAAAAAAAB + mov r4, #0x0 + str r4, [sp, #0x0] + umull r5, r4, r2, r5 + str r4, [sp, #0xc] + movs r2, r4, lsr #0x1 + str r2, [sp, #0xc] + addeq sp, sp, #0x4c + ldmeqia sp!, {r4-r11,pc} +_020A9808: ; 0x020A9808 + ldr r2, [sp, #0x0] + mov r4, #0x8000 + ldr lr, _020A9D0C ; =0x00007FFF + str r2, [sp, #0x18] + str r2, [sp, #0x24] + str r2, [sp, #0x2c] + str r2, [sp, #0x34] + str r2, [sp, #0x3c] + rsb r4, r4, #0x0 + mov r12, #0x58 + str r2, [sp, #0x40] + str r2, [sp, #0x44] + str r2, [sp, #0x48] +_020A983C: + ldrb r8, [r3, #0x2] + ldr r5, _020A9D10 ; =0x020FF5D4 + ldrb r6, [r0, #0x0] + mov r7, r8, lsl #0x1 + ldrsh r5, [r5, r7] + ldrb r11, [r0, #0x1] + ldrb r2, [r0, #0x2] + str r5, [sp, #0x4] + mov r5, r6, asr #0x5 + ands r7, r5, #0x2 + ldr r7, [sp, #0x4] + ldrne r10, [sp, #0x4] + mov r7, r7, asr #0x2 + addne r7, r7, r10 + ands r10, r5, #0x1 + str r10, [sp, #0x10] + ldrne r10, [sp, #0x4] + ldrsh r9, [r3, #0x0] + addne r7, r7, r10, asr #0x1 + ands r10, r5, #0x4 + str r10, [sp, #0x14] + beq _020A98AC + sub r9, r9, r7 + mov r7, #0x8000 + rsb r7, r7, #0x0 + cmp r9, r7 + movlt r9, r4 + b _020A98B8 +_020A98AC: + add r9, r9, r7 + cmp r9, lr + movgt r9, lr +_020A98B8: + ldr r7, _020A9D14 ; =0x020FF5BC + ldrsb r5, [r7, r5] + adds r8, r8, r5 + ldrmi r8, [sp, #0x18] + bmi _020A98D4 + cmp r8, #0x58 + movgt r8, r12 +_020A98D4: + mov r5, r9, lsl #0x10 + mov r5, r5, asr #0x10 + strh r5, [r3, #0x0] + strb r8, [r3, #0x2] + strh r5, [r1, #0x0] + ldrb r8, [r3, #0x2] + mov r5, r6, asr #0x2 + ands r7, r5, #0x2 + ldr r7, _020A9D10 ; =0x020FF5D4 + mov r10, r8, lsl #0x1 + ldrsh r7, [r7, r10] + ldrsh r9, [r3, #0x0] + str r7, [sp, #0x8] + ldrne r10, [sp, #0x8] + mov r7, r7, asr #0x2 + addne r7, r7, r10 + ands r10, r5, #0x1 + str r10, [sp, #0x1c] + ldrne r10, [sp, #0x8] + addne r7, r7, r10, asr #0x1 + ands r10, r5, #0x4 + str r10, [sp, #0x20] + beq _020A9948 + sub r9, r9, r7 + mov r7, #0x8000 + rsb r7, r7, #0x0 + cmp r9, r7 + movlt r9, r4 + b _020A9954 +_020A9948: + add r9, r9, r7 + cmp r9, lr + movgt r9, lr +_020A9954: + and r7, r5, #0x7 + ldr r5, _020A9D14 ; =0x020FF5BC + ldrsb r5, [r5, r7] + adds r8, r8, r5 + ldrmi r8, [sp, #0x24] + bmi _020A9974 + cmp r8, #0x58 + movgt r8, r12 +_020A9974: + mov r5, r9, lsl #0x10 + mov r5, r5, asr #0x10 + strh r5, [r3, #0x0] + mov r6, r6, lsl #0x1 + strb r8, [r3, #0x2] + strh r5, [r1, #0x2] + and r6, r6, #0x7 + orr r6, r6, r11, asr #0x7 + ldrb r8, [r3, #0x2] + ands r5, r6, #0x2 + ldr r5, _020A9D10 ; =0x020FF5D4 + mov r7, r8, lsl #0x1 + ldrsh r10, [r5, r7] + ldrsh r9, [r3, #0x0] + mov r7, r10, asr #0x2 + addne r7, r7, r10 + ands r5, r6, #0x1 + str r5, [sp, #0x28] + addne r7, r7, r10, asr #0x1 + ands r5, r6, #0x4 + beq _020A99E0 + mov r5, #0x8000 + sub r9, r9, r7 + rsb r5, r5, #0x0 + cmp r9, r5 + movlt r9, r4 + b _020A99EC +_020A99E0: + add r9, r9, r7 + cmp r9, lr + movgt r9, lr +_020A99EC: + ldr r5, _020A9D14 ; =0x020FF5BC + ldrsb r5, [r5, r6] + adds r8, r8, r5 + ldrmi r8, [sp, #0x2c] + bmi _020A9A08 + cmp r8, #0x58 + movgt r8, r12 +_020A9A08: + mov r5, r9, lsl #0x10 + mov r5, r5, asr #0x10 + strh r5, [r3, #0x0] + strb r8, [r3, #0x2] + strh r5, [r1, #0x4] + ldrb r8, [r3, #0x2] + mov r6, r11, asr #0x4 + ands r5, r6, #0x2 + ldr r5, _020A9D10 ; =0x020FF5D4 + mov r7, r8, lsl #0x1 + ldrsh r10, [r5, r7] + ldrsh r9, [r3, #0x0] + mov r7, r10, asr #0x2 + addne r7, r7, r10 + ands r5, r6, #0x1 + str r5, [sp, #0x30] + addne r7, r7, r10, asr #0x1 + ands r5, r6, #0x4 + beq _020A9A6C + mov r5, #0x8000 + sub r9, r9, r7 + rsb r5, r5, #0x0 + cmp r9, r5 + movlt r9, r4 + b _020A9A78 +_020A9A6C: + add r9, r9, r7 + cmp r9, lr + movgt r9, lr +_020A9A78: + ldr r5, _020A9D14 ; =0x020FF5BC + and r6, r6, #0x7 + ldrsb r5, [r5, r6] + adds r8, r8, r5 + ldrmi r8, [sp, #0x34] + bmi _020A9A98 + cmp r8, #0x58 + movgt r8, r12 +_020A9A98: + mov r5, r9, lsl #0x10 + mov r5, r5, asr #0x10 + strh r5, [r3, #0x0] + strb r8, [r3, #0x2] + strh r5, [r1, #0x6] + ldrb r8, [r3, #0x2] + mov r6, r11, asr #0x1 + ands r5, r6, #0x2 + ldr r5, _020A9D10 ; =0x020FF5D4 + mov r7, r8, lsl #0x1 + ldrsh r10, [r5, r7] + ldrsh r9, [r3, #0x0] + mov r7, r10, asr #0x2 + addne r7, r7, r10 + ands r5, r6, #0x1 + str r5, [sp, #0x38] + addne r7, r7, r10, asr #0x1 + ands r5, r6, #0x4 + beq _020A9AFC + mov r5, #0x8000 + sub r9, r9, r7 + rsb r5, r5, #0x0 + cmp r9, r5 + movlt r9, r4 + b _020A9B08 +_020A9AFC: + add r9, r9, r7 + cmp r9, lr + movgt r9, lr +_020A9B08: + ldr r5, _020A9D14 ; =0x020FF5BC + and r6, r6, #0x7 + ldrsb r5, [r5, r6] + adds r8, r8, r5 + ldrmi r8, [sp, #0x3c] + bmi _020A9B28 + cmp r8, #0x58 + movgt r8, r12 +_020A9B28: + mov r5, r9, lsl #0x10 + mov r6, r5, asr #0x10 + mov r5, r11, lsl #0x2 + and r5, r5, #0x7 + strh r6, [r3, #0x0] + strb r8, [r3, #0x2] + strh r6, [r1, #0x8] + orr r5, r5, r2, asr #0x6 + ands r6, r5, #0x2 + ldrb r6, [r3, #0x2] + ldr r8, _020A9D10 ; =0x020FF5D4 + ldrsh r7, [r3, #0x0] + mov r9, r6, lsl #0x1 + ldrsh r10, [r8, r9] + mov r9, r10, asr #0x2 + addne r9, r9, r10 + ands r8, r5, #0x1 + addne r9, r9, r10, asr #0x1 + ands r8, r5, #0x4 + beq _020A9B90 + mov r8, #0x8000 + sub r7, r7, r9 + rsb r8, r8, #0x0 + cmp r7, r8 + movlt r7, r4 + b _020A9B9C +_020A9B90: + add r7, r7, r9 + cmp r7, lr + movgt r7, lr +_020A9B9C: + ldr r8, _020A9D14 ; =0x020FF5BC + ldrsb r5, [r8, r5] + adds r6, r6, r5 + ldrmi r6, [sp, #0x40] + bmi _020A9BB8 + cmp r6, #0x58 + movgt r6, r12 +_020A9BB8: + mov r5, r7, lsl #0x10 + mov r5, r5, asr #0x10 + strh r5, [r3, #0x0] + strb r6, [r3, #0x2] + strh r5, [r1, #0xa] + ldrb r6, [r3, #0x2] + mov r5, r2, asr #0x3 + ands r8, r5, #0x2 + ldr r8, _020A9D10 ; =0x020FF5D4 + mov r9, r6, lsl #0x1 + ldrsh r10, [r8, r9] + ldrsh r7, [r3, #0x0] + mov r9, r10, asr #0x2 + addne r9, r9, r10 + ands r8, r5, #0x1 + addne r9, r9, r10, asr #0x1 + ands r8, r5, #0x4 + beq _020A9C18 + mov r8, #0x8000 + sub r7, r7, r9 + rsb r8, r8, #0x0 + cmp r7, r8 + movlt r7, r4 + b _020A9C24 +_020A9C18: + add r7, r7, r9 + cmp r7, lr + movgt r7, lr +_020A9C24: + and r8, r5, #0x7 + ldr r5, _020A9D14 ; =0x020FF5BC + ldrsb r5, [r5, r8] + adds r6, r6, r5 + ldrmi r6, [sp, #0x44] + bmi _020A9C44 + cmp r6, #0x58 + movgt r6, r12 +_020A9C44: + mov r5, r7, lsl #0x10 + mov r5, r5, asr #0x10 + strh r5, [r3, #0x0] + strb r6, [r3, #0x2] + strh r5, [r1, #0xc] + ands r5, r2, #0x2 + ldrb r5, [r3, #0x2] + ldr r7, _020A9D10 ; =0x020FF5D4 + ldrsh r6, [r3, #0x0] + mov r8, r5, lsl #0x1 + ldrsh r9, [r7, r8] + mov r8, r9, asr #0x2 + addne r8, r8, r9 + ands r7, r2, #0x1 + addne r8, r8, r9, asr #0x1 + ands r7, r2, #0x4 + beq _020A9CA0 + mov r7, #0x8000 + sub r6, r6, r8 + rsb r7, r7, #0x0 + cmp r6, r7 + movlt r6, r4 + b _020A9CAC +_020A9CA0: + add r6, r6, r8 + cmp r6, lr + movgt r6, lr +_020A9CAC: + and r7, r2, #0x7 + ldr r2, _020A9D14 ; =0x020FF5BC + ldrsb r2, [r2, r7] + adds r5, r5, r2 + ldrmi r5, [sp, #0x48] + bmi _020A9CCC + cmp r5, #0x58 + movgt r5, r12 +_020A9CCC: + mov r2, r6, lsl #0x10 + mov r2, r2, asr #0x10 + strh r2, [r3, #0x0] + strb r5, [r3, #0x2] + strh r2, [r1, #0xe] + ldr r2, [sp, #0x0] + add r0, r0, #0x3 + add r5, r2, #0x1 + ldr r2, [sp, #0xc] + add r1, r1, #0x10 + str r5, [sp, #0x0] + cmp r5, r2 + blo _020A983C + add sp, sp, #0x4c + ldmia sp!, {r4-r11,pc} + .balign 4 +_020A9D08: .word 0xAAAAAAAB +_020A9D0C: .word 0x00007FFF +_020A9D10: .word 0x020FF5D4 +_020A9D14: .word 0x020FF5BC + + arm_func_start FUN_020A9D18 +FUN_020A9D18: ; 0x020A9D18 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x1c + movs r2, r2, lsr #0x1 + str r2, [sp, #0x4] + mov r2, #0x0 + str r2, [sp, #0x0] + addeq sp, sp, #0x1c + ldmeqia sp!, {r4-r11,pc} +_020A9D38: ; 0x020A9D38 + mov r4, #0x8000 + rsb r5, r4, #0x0 + ldr fp, _020A9F04 ; =0x00007FFF + str r2, [sp, #0xc] + str r2, [sp, #0x10] + str r2, [sp, #0x14] + str r2, [sp, #0x18] + mov r6, #0x8 + mov r4, #0x58 +_020A9D5C: + ldrb r2, [r3, #0x2] + ldrsh r8, [r3, #0x0] + ldrsh r7, [r1, #0x0] + ldr sb, _020A9F08 ; =0x020FF5D4 + mov r12, r2, lsl #0x1 + subs r7, r7, r8 + ldrsh r12, [r9, r12] + movmi r10, r6 + ldrpl r10, [sp, #0xc] + rsbmi r7, r7, #0x0 + cmp r7, r12 + orrge r10, r10, #0x4 + subge r7, r7, r12 + mov lr, r12, asr #0x1 + cmp r7, lr + orrge r10, r10, #0x2 + subge r7, r7, lr + mov r9, r12, asr #0x2 + cmp r7, r9 + orrge r10, r10, #0x1 + ands r7, r10, #0x4 + mov r7, r12, asr #0x3 + addne r7, r7, r12 + ands r12, r10, #0x2 + addne r7, r7, lr + ands r12, r10, #0x1 + addne r7, r7, r9 + ands r9, r10, #0x8 + rsbne r7, r7, #0x0 + add r7, r8, r7 + mov r8, #0x8000 + rsb r8, r8, #0x0 + cmp r7, r8 + ldr r8, _020A9F0C ; =0x020FF5C4 + movlt r7, r5 + cmp r7, r11 + ldrsb r8, [r8, r10] + movgt r7, r11 + adds r2, r2, r8 + ldrmi r2, [sp, #0x10] + bmi _020A9E08 + cmp r2, #0x58 + movgt r2, r4 +_020A9E08: + strh r7, [r3, #0x0] + strb r2, [r3, #0x2] + ldrsh r2, [r3, #0x0] + ldrsh r8, [r1, #0x2] + and lr, r10, #0xff + str r2, [sp, #0x8] + ldrb r2, [r3, #0x2] + ldr r7, [sp, #0x8] + add r1, r1, #0x4 + subs r7, r8, r7 + movmi r10, r6 + ldr r8, _020A9F08 ; =0x020FF5D4 + mov r9, r2, lsl #0x1 + ldrsh r12, [r8, r9] + ldrpl r10, [sp, #0x14] + rsbmi r7, r7, #0x0 + cmp r7, r12 + orrge r10, r10, #0x4 + subge r7, r7, r12 + mov r9, r12, asr #0x1 + cmp r7, r9 + orrge r10, r10, #0x2 + subge r7, r7, r9 + mov r8, r12, asr #0x2 + cmp r7, r8 + orrge r10, r10, #0x1 + ands r7, r10, #0x4 + mov r7, r12, asr #0x3 + addne r7, r7, r12 + ands r12, r10, #0x2 + addne r7, r7, r9 + ands r9, r10, #0x1 + addne r7, r7, r8 + ands r8, r10, #0x8 + ldr r8, [sp, #0x8] + rsbne r7, r7, #0x0 + add r7, r8, r7 + mov r8, #0x8000 + rsb r8, r8, #0x0 + cmp r7, r8 + ldr r8, _020A9F0C ; =0x020FF5C4 + movlt r7, r5 + cmp r7, r11 + ldrsb r8, [r8, r10] + movgt r7, r11 + adds r2, r2, r8 + ldrmi r2, [sp, #0x18] + bmi _020A9ED0 + cmp r2, #0x58 + movgt r2, r4 +_020A9ED0: + strh r7, [r3, #0x0] + strb r2, [r3, #0x2] + and r2, r10, #0xff + orr r2, lr, r2, lsl #0x4 + strb r2, [r0], #0x1 + ldr r2, [sp, #0x0] + add r7, r2, #0x1 + ldr r2, [sp, #0x4] + str r7, [sp, #0x0] + cmp r7, r2 + blo _020A9D5C + add sp, sp, #0x1c + ldmia sp!, {r4-r11,pc} + .balign 4 +_020A9F04: .word 0x00007FFF +_020A9F08: .word 0x020FF5D4 +_020A9F0C: .word 0x020FF5C4 + + arm_func_start FUN_020A9F10 +FUN_020A9F10: ; 0x020A9F10 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x1c + cmp r2, #0x0 + addls sp, sp, #0x1c + mov r12, #0x0 + ldmlsia sp!, {r4-r11,pc} +_020A9F28: ; 0x020A9F28 + mov r4, #0x8000 + ldr fp, _020AA098 ; =0x00007FFF + str r12, [sp, #0x8] + str r12, [sp, #0x14] + rsb r4, r4, #0x0 + mov lr, #0x58 +_020A9F40: + ldrb r5, [r0, #0x0] + ldrb r6, [r3, #0x2] + ldrsh r7, [r3, #0x0] + and r9, r5, #0xf + ldr r5, _020AA09C ; =0x020FF5D4 + mov r8, r6, lsl #0x1 + ldrsh r8, [r5, r8] + ands r5, r9, #0x4 + mov r5, r8, asr #0x3 + addne r5, r5, r8 + ands r10, r9, #0x2 + str r10, [sp, #0x0] + addne r5, r5, r8, asr #0x1 + ands r10, r9, #0x1 + addne r5, r5, r8, asr #0x2 + str r10, [sp, #0x4] + ands r8, r9, #0x8 + beq _020A9FA0 + sub r7, r7, r5 + mov r5, #0x8000 + rsb r5, r5, #0x0 + cmp r7, r5 + movlt r7, r4 + b _020A9FAC +_020A9FA0: + add r7, r7, r5 + cmp r7, r11 + movgt r7, r11 +_020A9FAC: + ldr r5, _020AA0A0 ; =0x020FF5C4 + ldrsb r5, [r5, r9] + adds r6, r6, r5 + ldrmi r6, [sp, #0x8] + bmi _020A9FC8 + cmp r6, #0x58 + movgt r6, lr +_020A9FC8: + mov r5, r7, lsl #0x10 + mov r5, r5, asr #0x10 + strh r5, [r3, #0x0] + strb r6, [r3, #0x2] + strh r5, [r1, #0x0] + ldrb r5, [r0, #0x0] + ldrb r6, [r3, #0x2] + ldrsh r7, [r3, #0x0] + mov r5, r5, asr #0x4 + and r9, r5, #0xf + ldr r5, _020AA09C ; =0x020FF5D4 + mov r8, r6, lsl #0x1 + ldrsh r8, [r5, r8] + ands r5, r9, #0x4 + mov r5, r8, asr #0x3 + addne r5, r5, r8 + ands r10, r9, #0x2 + str r10, [sp, #0xc] + addne r5, r5, r8, asr #0x1 + ands r10, r9, #0x1 + addne r5, r5, r8, asr #0x2 + str r10, [sp, #0x10] + ands r8, r9, #0x8 + beq _020AA040 + sub r7, r7, r5 + mov r5, #0x8000 + rsb r5, r5, #0x0 + cmp r7, r5 + movlt r7, r4 + b _020AA04C +_020AA040: + add r7, r7, r5 + cmp r7, r11 + movgt r7, r11 +_020AA04C: + ldr r5, _020AA0A0 ; =0x020FF5C4 + ldrsb r5, [r5, r9] + adds r6, r6, r5 + ldrmi r6, [sp, #0x14] + bmi _020AA068 + cmp r6, #0x58 + movgt r6, lr +_020AA068: + mov r5, r7, lsl #0x10 + mov r7, r5, asr #0x10 + strh r7, [r3, #0x0] + strb r6, [r3, #0x2] + add r12, r12, #0x1 + strh r7, [r1, #0x2] + cmp r12, r2 + add r1, r1, #0x4 + add r0, r0, #0x1 + blo _020A9F40 + add sp, sp, #0x1c + ldmia sp!, {r4-r11,pc} + .balign 4 +_020AA098: .word 0x00007FFF +_020AA09C: .word 0x020FF5D4 +_020AA0A0: .word 0x020FF5C4 + + arm_func_start FUN_020AA0A4 +FUN_020AA0A4: + stmdb sp!, {r4-r8,lr} + ldr r0, _020AA1B4 ; =0x021CA8D0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + moveq r0, #0x1 + ldmeqia sp!, {r4-r8,pc} +_020AA0BC: ; 0x020AA0BC + ldr r1, _020AA1B8 ; =0x021CAF00 + ldr r0, [r1, #0x8c8] + cmp r0, #0x0 + bne _020AA0FC + bl FUN_020AA4C0 + ldr r1, _020AA1B8 ; =0x021CAF00 + cmp r0, #0x0 + str r0, [r1, #0x8c8] + beq _020AA0F4 + ldr r0, _020AA1BC ; =0x021CA8C8 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + movne r0, #0x0 + ldmneia sp!, {r4-r8,pc} +_020AA0F4: + mov r0, #0x1 + ldmia sp!, {r4-r8,pc} +_020AA0FC: + ldr r0, _020AA1C0 ; =0x021CCD20 + mov r5, #0x1 + ldr r0, [r0, #0x10] + cmp r0, #0x2 + bne _020AA130 + ldr r3, [r1, #0x8d4] + ldr r2, _020AA1C4 ; =0x020FF694 + mov r0, #0x3 + mla r0, r3, r0, r2 + ldr r3, [r1, #0x8d0] + add r2, r3, #0x1 + ldrb r5, [r3, r0] + str r2, [r1, #0x8d0] +_020AA130: + mov r4, #0x0 + ldr r7, _020AA1B8 ; =0x021CAF00 + mov r8, #0x80000000 + ldr r6, _020AA1C8 ; =0x021CA8BC + b _020AA1A4 +_020AA144: + ldr r1, [r7, #0x8cc] + mov r2, r1 + clz r2, r2 + cmp r2, #0x20 + beq _020AA1AC + mvn r0, r8, lsr r2 + and r3, r1, r0 + rsb r0, r2, #0x1f + ldr r1, [r7, #0x8c8] + ldr r2, [r6, #0x0] + str r3, [r7, #0x8cc] + and r0, r0, #0xff + bl FUN_021EAE90 + ldr r0, [r7, #0x8cc] + cmp r0, #0x0 + bne _020AA1A0 + ldr r1, [r7, #0x8c0] + mov r0, #0x0 + add r1, r1, #0x1 + str r1, [r7, #0x8c0] + str r0, [r7, #0x8c8] + str r0, [r7, #0x8cc] + b _020AA1AC +_020AA1A0: + add r4, r4, #0x1 +_020AA1A4: + cmp r4, r5 + blt _020AA144 +_020AA1AC: + mov r0, #0x1 + ldmia sp!, {r4-r8,pc} + .balign 4 +_020AA1B4: .word 0x021CA8D0 +_020AA1B8: .word 0x021CAF00 +_020AA1BC: .word 0x021CA8C8 +_020AA1C0: .word 0x021CCD20 +_020AA1C4: .word 0x020FF694 +_020AA1C8: .word 0x021CA8BC + + arm_func_start FUN_020AA1CC +FUN_020AA1CC: ; 0x020AA1CC + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + bl FUN_020AB154 +_020AA1D8: ; 0x020AA1D8 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,pc} +_020AA1E8: ; 0x020AA1E8 + ldrb r5, [r0, #0x11] + mov r0, r5 + bl FUN_020AB144 + mov r6, r0 + cmp r6, #0x0 + mov r7, #0x0 + ble _020AA294 +_020AA204: + mov r0, r5 + bl FUN_020AB10C + mov r4, r0 + ldr r3, [r4, #0xc] + cmp r3, #0x2 + blt _020AA230 + ldr r0, [r4, #0x474] + ldr r2, [r4, #0x14] + add r1, r4, #0x1c + bl FUN_020A8C28 + b _020AA25C +_020AA230: + cmp r3, #0x1 + bne _020AA24C + ldr r0, [r4, #0x474] + ldr r2, [r4, #0x14] + add r1, r4, #0x1c + bl FUN_020AB328 + b _020AA25C +_020AA24C: + ldr r0, [r4, #0x474] + ldr r2, [r4, #0x14] + add r1, r4, #0x1c + bl FUN_020AB2C0 +_020AA25C: + add r1, r4, #0x1c + mov r0, r4 + str r1, [r4, #0x474] + bl FUN_020AB088 + ldrb r1, [r4, #0x11] + mov r0, r4 + bl FUN_020AB500 +_020AA278: ; 0x020AA278 + cmp r0, #0x0 + bge _020AA288 + mov r0, r4 + bl FUN_020ACD90 +_020AA288: + add r7, r7, #0x1 + cmp r7, r6 + blt _020AA204 +_020AA294: + mov r0, r6 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + + arm_func_start FUN_020AA2A0 +FUN_020AA2A0: ; 0x020AA2A0 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + ldr r4, _020AA4A8 ; =0x021CA8D0 + mov r10, r0 + ldr r0, [r4, #0x0] + ldr r7, [sp, #0x28] + cmp r0, #0x0 + mov r5, #0x0 + mov r9, r1 + mov r8, r2 + mov r11, r3 + addeq sp, sp, #0x4 + moveq r0, r5 + ldmeqia sp!, {r4-r11,pc} +_020AA2D8: ; 0x020AA2D8 + ldr r1, _020AA4AC ; =0x021CA8E8 + mov r2, r5 +_020AA2E0: + ldr r0, [r1, #0x38] + cmp r10, r0 + ldreq r1, _020AA4AC ; =0x021CA8E8 + moveq r0, #0x94 + mlaeq r5, r2, r0, r1 + beq _020AA308 + add r2, r2, #0x1 + cmp r2, #0x3 + add r1, r1, #0x94 + blo _020AA2E0 +_020AA308: + cmp r5, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,pc} +_020AA318: ; 0x020AA318 + ldrb r0, [r9, #0x4] + cmp r0, #0x41 + bne _020AA344 + ldrh r2, [r9, #0x6] + mov r0, #0x0 + mov r1, #0x1 + str r2, [r5, #0x30] + str r0, [r5, #0x4c] + add sp, sp, #0x4 + str r1, [r5, #0x6c] + ldmia sp!, {r4-r11,pc} +_020AA344: + cmp r0, #0x40 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {r4-r11,pc} +_020AA354: ; 0x020AA354 + ldrb r0, [r9, #0x5] + and r4, r0, #0x7f + cmp r4, #0x5 + addge sp, sp, #0x4 + str r4, [r5, #0x24] + movge r0, #0x0 + ldmgeia sp!, {r4-r11,pc} +_020AA370: ; 0x020AA370 + ldr r1, _020AA4B0 ; =0x020FF689 + ldr r0, _020AA4B4 ; =0x020FF688 + ldrb r2, [r1, r4, lsl #0x1] + ldrb r1, [r0, r4, lsl #0x1] + mov r0, #0x44 + mla r0, r1, r0, r2 + add r0, r0, #0xc + cmp r8, r0 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {r4-r11,pc} +_020AA39C: ; 0x020AA39C + cmp r10, #0x0 + movne r0, #0x1 + movne r1, r0, lsl r10 + ldr r0, _020AA4B8 ; =0x021CA8B4 + moveq r1, #0x1 + ldr r0, [r0, #0x0] + ands r0, r0, r1 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,pc} +_020AA3C4: ; 0x020AA3C4 + bl FUN_020ACDC8 + movs r6, r0 + bne _020AA40C + ldr r0, [r5, #0x34] + bl FUN_020AB6C4 + ldr r0, [r5, #0x34] + bl FUN_020AB234 + bl FUN_020ACDC8 + movs r6, r0 + bne _020AA3FC + bl FUN_020AB630 + bl FUN_020AB1E4 + bl FUN_020ACDC8 + mov r6, r0 +_020AA3FC: + cmp r6, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,pc} +_020AA40C: + ldr r0, _020AA4BC ; =0x0000045C + sub r2, r8, #0xc + add r0, r6, r0 + sub r1, r0, r2 + add r0, r9, #0xc + str r1, [sp, #0x0] + bl MI_CpuCopy8 + ldr r0, [r5, #0x34] + sub r1, r8, #0xc + strb r0, [r6, #0x11] + ldr r0, [sp, #0x0] + str r4, [r6, #0xc] + str r0, [r6, #0x474] + str r1, [r6, #0x14] + str r11, [r6, #0x464] + str r7, [r6, #0x468] + strb r10, [r6, #0x10] + ldrb r2, [r9, #0x5] + mov r0, r5 + mov r1, r6 + and r2, r2, #0x80 + str r2, [r6, #0x45c] + ldr r2, [r9, #0x8] + str r2, [r6, #0x460] + ldrh r2, [r9, #0x6] + str r2, [r6, #0x18] + bl FUN_020AB760 +_020AA478: ; 0x020AA478 + cmp r0, #0x0 + bne _020AA494 + mov r0, r6 + bl FUN_020ACD90 + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r11,pc} +_020AA494: + mov r0, r6 + bl FUN_020AB164 + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020AA4A8: .word 0x021CA8D0 +_020AA4AC: .word 0x021CA8E8 +_020AA4B0: .word 0x020FF689 +_020AA4B4: .word 0x020FF688 +_020AA4B8: .word 0x021CA8B4 +_020AA4BC: .word 0x0000045C + + arm_func_start FUN_020AA4C0 +FUN_020AA4C0: ; 0x020AA4C0 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x8 + ldr r0, _020AA728 ; =0x021CAF00 + ldr r1, _020AA72C ; =0x021CA8CC + ldr r3, [r0, #0x8c4] + ldr r2, [r0, #0x8c0] + ldr r5, [r1, #0x0] + sub r1, r3, r2 + cmp r1, #0x1 + subhi r1, r3, #0x1 + strhi r1, [r0, #0x8c0] + movhi r1, #0x1 + cmp r1, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,pc} +_020AA500: ; 0x020AA500 + ldr r0, _020AA728 ; =0x021CAF00 + ldr r0, [r0, #0x8c0] + ands r0, r0, #0x1 + movne r1, #0x0 + moveq r1, #0x460 + ldr r0, _020AA728 ; =0x021CAF00 + cmp r5, #0x2 + add r8, r0, r1 + ldr r1, _020AA730 ; =0x021CA8D4 + add r7, r8, #0xc + addge r7, r7, #0x4 + ldr r1, [r1, #0x0] + mov r0, r7 + bl FUN_020AD500 + ldr r2, _020AA734 ; =0x040002B0 + mov r3, #0x0 + ldr r1, _020AA738 ; =0x040002B8 + mov r6, r0 + strh r3, [r2, #0x0] + str r6, [r1, #0x0] +_020AA550: + ldrh r0, [r2, #0x0] + ands r0, r0, #0x8000 + bne _020AA550 + ldr r0, _020AA73C ; =0x021CA8C8 + ldr r1, _020AA740 ; =0x040002B4 + ldr r0, [r0, #0x0] + ldr r4, [r1, #0x0] + cmp r0, #0x0 + beq _020AA588 + ldr r1, _020AA730 ; =0x021CA8D4 + mov r0, r7 + ldr r1, [r1, #0x0] + mov r2, r4 + bl FUN_020AD1CC +_020AA588: + ldr r0, _020AA744 ; =0x0210646C + strb r5, [r8, #0x5] + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020AA5FC + mov r0, r6 + mov r1, r4 + mov r2, #0x0 + bl FUN_020ACF38 + ldr r1, _020AA748 ; =0x021CA8D8 + cmp r0, #0x0 + str r0, [r1, #0x0] + beq _020AA5D4 + cmp r0, #0x1 + beq _020AA5F0 + cmp r0, #0x3 + moveq r0, #0x41 + streqb r0, [r8, #0x4] + b _020AA5FC +_020AA5D4: + ldr r1, _020AA728 ; =0x021CAF00 + add sp, sp, #0x8 + ldr r2, [r1, #0x8c0] + mov r0, #0x0 + add r2, r2, #0x1 + str r2, [r1, #0x8c0] + ldmia sp!, {r4-r8,pc} +_020AA5F0: + ldrb r0, [r8, #0x5] + orr r0, r0, #0x80 + strb r0, [r8, #0x5] +_020AA5FC: + ldr r0, _020AA744 ; =0x0210646C + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020AA62C + ldr r0, _020AA74C ; =0x021CA8B8 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + ldrneb r2, [r8, #0x5] + movne r1, #0x0 + orrne r2, r2, #0x80 + strneb r2, [r8, #0x5] + strne r1, [r0, #0x0] +_020AA62C: + ldr r0, _020AA750 ; =0x021CA8C4 + ldr r1, [r0, #0x0] + cmp r1, #0x0 + ldrneb r2, [r8, #0x5] + movne r1, #0x0 + orrne r2, r2, #0x80 + strneb r2, [r8, #0x5] + strne r1, [r0, #0x0] + cmp r5, #0x2 + blt _020AA690 + ldrb r0, [r8, #0x5] + ldr r3, _020AA754 ; =0x021CA8C0 + ands r0, r0, #0x80 + ldrne r0, _020AA754 ; =0x021CA8C0 + movne r1, #0x0 + strneh r1, [r0, #0x0] + strneb r1, [r0, #0x2] + ldr r0, _020AA730 ; =0x021CA8D4 + str r5, [sp, #0x0] + ldr r2, [r0, #0x0] + mov r1, r7 + sub r0, r7, #0x4 + mov r2, r2, lsr #0x1 + bl FUN_020A8BC8 + b _020AA6D4 +_020AA690: + cmp r5, #0x1 + bne _020AA6B4 + ldr r1, _020AA730 ; =0x021CA8D4 + mov r0, r7 + ldr r2, [r1, #0x0] + mov r1, r7 + mov r2, r2, lsr #0x1 + bl FUN_020AB37C + b _020AA6D4 +_020AA6B4: + cmp r5, #0x0 + bne _020AA6D4 + ldr r1, _020AA730 ; =0x021CA8D4 + mov r0, r7 + ldr r2, [r1, #0x0] + mov r1, r7 + mov r2, r2, lsr #0x1 + bl FUN_020AB2FC +_020AA6D4: + ldr r0, _020AA758 ; =0x021CCD20 + ldr r1, _020AA75C ; =0x021CA8B4 + ldrb r0, [r0, #0x0] + mov r2, #0x1 + ldr r3, [r1, #0x0] + mvn r0, r2, lsl r0 + ldr r1, _020AA728 ; =0x021CAF00 + and r0, r3, r0 + str r3, [r1, #0x8cc] + str r0, [r1, #0x8cc] + bl MATH_CountPopulation + sub r0, r0, #0x1 + ldr r1, _020AA728 ; =0x021CAF00 + cmp r0, #0x7 + str r0, [r1, #0x8d4] + movgt r0, #0x0 + movle r2, #0x0 + movle r0, r8 + strle r2, [r1, #0x8d0] + add sp, sp, #0x8 + ldmia sp!, {r4-r8,pc} + .balign 4 +_020AA728: .word 0x021CAF00 +_020AA72C: .word 0x021CA8CC +_020AA730: .word 0x021CA8D4 +_020AA734: .word 0x040002B0 +_020AA738: .word 0x040002B8 +_020AA73C: .word 0x021CA8C8 +_020AA740: .word 0x040002B4 +_020AA744: .word 0x0210646C +_020AA748: .word 0x021CA8D8 +_020AA74C: .word 0x021CA8B8 +_020AA750: .word 0x021CA8C4 +_020AA754: .word 0x021CA8C0 +_020AA758: .word 0x021CCD20 +_020AA75C: .word 0x021CA8B4 + + arm_func_start FUN_020AA760 +FUN_020AA760: ; 0x020AA760 + ldr r1, _020AA76C ; =0x021CA8C8 + str r0, [r1, #0x0] + bx lr + .balign 4 +_020AA76C: .word 0x021CA8C8 + + arm_func_start FUN_020AA770 +FUN_020AA770: ; 0x020AA770 + stmdb sp!, {r4,lr} + ldr r1, _020AA798 ; =0x0210646C + mov r4, r0 + str r4, [r1, #0x0] + bl FUN_020AD170 +_020AA784: ; 0x020AA784 + cmp r4, #0x0 + ldreq r0, _020AA79C ; =0x021CA8B8 + moveq r1, #0x1 + streq r1, [r0, #0x0] + ldmia sp!, {r4,pc} + .balign 4 +_020AA798: .word 0x0210646C +_020AA79C: .word 0x021CA8B8 + + arm_func_start FUN_020AA7A0 +FUN_020AA7A0: ; 0x020AA7A0 + cmp r0, #0x5 + movge r0, #0x0 + bxge lr + ldr r1, _020AA80C ; =0x021CCD20 + ldr r1, [r1, #0x10] + cmp r1, #0x1 + beq _020AA7C8 + cmp r0, #0x1 + movls r0, #0x0 + bxls lr +_020AA7C8: + ldr r2, _020AA810 ; =0x020FF689 + ldr r1, _020AA814 ; =0x020FF688 + ldrb r12, [r2, r0, lsl #0x1] + ldrb r3, [r1, r0, lsl #0x1] + mov r1, #0x44 + ldr r2, _020AA818 ; =0x021CA8CC + mla r12, r3, r1, r12 + str r0, [r2, #0x0] + ldr r1, _020AA81C ; =0x021CA8BC + add r3, r12, #0xc + ldr r0, _020AA820 ; =0x021CA8C0 + mov r2, #0x0 + str r3, [r1, #0x0] + strh r2, [r0, #0x0] + strb r2, [r0, #0x2] + mov r0, #0x1 + bx lr + .balign 4 +_020AA80C: .word 0x021CCD20 +_020AA810: .word 0x020FF689 +_020AA814: .word 0x020FF688 +_020AA818: .word 0x021CA8CC +_020AA81C: .word 0x021CA8BC +_020AA820: .word 0x021CA8C0 + + arm_func_start FUN_020AA824 +FUN_020AA824: ; 0x020AA824 + stmdb sp!, {r4-r10,lr} + movs r5, r2 + mov r7, r0 + movne r0, #0x0 + strne r0, [r5, #0x0] + ldr r0, _020AA958 ; =0x021CA8D4 + mov r6, r1 + ldr r0, [r0, #0x0] + mov r4, #0x0 + cmp r6, r0 + bne _020AA920 + ldr r8, _020AA95C ; =0x021CA8D0 + ldr r0, [r8, #0x0] + cmp r0, #0x0 + beq _020AA920 + mov r9, r4 + cmp r0, #0x0 + bls _020AA89C +_020AA86C: + mov r0, r7 + mov r1, r6 + mov r2, r9 + mov r3, r5 + bl FUN_020AA968 + cmp r0, #0x1 + moveq r4, #0x1 + beq _020AA89C + ldr r0, [r8, #0x0] + add r9, r9, #0x1 + cmp r9, r0 + blo _020AA86C +_020AA89C: + cmp r4, #0x0 + beq _020AA90C + ldr r8, _020AA95C ; =0x021CA8D0 + add r10, r9, #0x1 + ldr r0, [r8, #0x0] + cmp r10, r0 + moveq r4, #0x1 + beq _020AA934 + cmp r10, r0 + bhs _020AA934 + ldr sb, _020AA960 ; =0x021CAAA4 +_020AA8C8: + mov r0, r9 + mov r1, r6 + mov r2, r10 + mov r3, r5 + bl FUN_020AA968 + cmp r0, #0x1 + bne _020AA8F8 + mov r0, r7 + mov r1, r9 + mov r2, r7 + mov r3, r6 + bl FUN_020AD61C +_020AA8F8: + ldr r0, [r8, #0x0] + add r10, r10, #0x1 + cmp r10, r0 + blo _020AA8C8 + b _020AA934 +_020AA90C: + mov r1, r7 + mov r2, r6 + mov r0, #0x0 + bl MIi_CpuClearFast + b _020AA934 +_020AA920: + mov r1, r7 + mov r2, r6 + mov r0, #0x0 + bl MIi_CpuClearFast + mov r4, #0x0 +_020AA934: + ldr r0, _020AA964 ; =0x021CA8C8 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020AA950 + mov r0, r7 + mov r1, r6 + bl FUN_020AD45C +_020AA950: + mov r0, r4 + ldmia sp!, {r4-r10,pc} + .balign 4 +_020AA958: .word 0x021CA8D4 +_020AA95C: .word 0x021CA8D0 +_020AA960: .word 0x021CAAA4 +_020AA964: .word 0x021CA8C8 + + arm_func_start FUN_020AA968 +FUN_020AA968: ; 0x020AA968 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xc + ldr r4, _020AABD4 ; =0x021CA8E8 + mov r10, r2 + mov r2, #0x94 + mla r6, r10, r2, r4 + str r0, [sp, #0x0] + mov r0, r10 + str r1, [sp, #0x4] + str r3, [sp, #0x8] + mov r5, #0x1 + bl FUN_020AB434 + movs r8, r0 + beq _020AABB0 + mov r11, #0x0 +_020AA9A4: + bl OS_GetTick + mov r4, r0 + mov r0, r10 + mov r9, r1 + bl FUN_020AB4B8 + movs r7, r0 + beq _020AAB98 + mov r0, #0x34 + adds r2, r4, r0 + ldr r8, [r7, #0x46c] + ldr r3, [r7, #0x470] + mov r1, #0x0 + adc r0, r9, #0x0 + cmp r3, r0 + cmpeq r8, r2 + bls _020AAA68 + ldr r0, [r7, #0x45c] + cmp r0, #0x0 + bne _020AAA5C + ldr r0, [r6, #0x3c] + cmp r0, #0x0 + beq _020AAA5C + ldr r0, [r6, #0x20] + ldr r1, [sp, #0x0] + add r0, r0, #0x1 + str r0, [r6, #0x20] + ldr r0, [r6, #0x3c] + ldr r2, [sp, #0x4] + ldr r0, [r0, #0x474] + bl MIi_CpuCopyFast + ldr r0, [r6, #0x3c] + bl FUN_020ACD90 +_020AAA24: ; 0x020AAA24 + mov r0, #0x0 + str r0, [r6, #0x3c] + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _020AAA50 + ldrb r1, [r7, #0x10] + ldr r2, [r0, #0x0] + mov r0, #0x1 + orr r1, r2, r0, lsl r1 + ldr r0, [sp, #0x8] + str r1, [r0, #0x0] +_020AAA50: + add sp, sp, #0xc + mov r0, #0x1 + ldmia sp!, {r4-r11,pc} +_020AAA5C: + add sp, sp, #0xc + mov r0, #0x0 + ldmia sp!, {r4-r11,pc} +_020AAA68: + ldr r0, _020AABD8 ; =0x00008B4C + adds r2, r8, r0 + adc r0, r3, r1 + cmp r9, r0 + cmpeq r4, r2 + bls _020AAAA8 + ldr r2, [r7, #0x18] + mov r0, r6 + mov r1, r7 + str r2, [r6, #0x58] + bl FUN_020ABC0C + mov r8, r0 + mov r0, r10 + bl FUN_020AB4B8 + mov r5, r11 + b _020AABA8 +_020AAAA8: + ldr r1, [r6, #0x58] + ldr r2, [r7, #0x18] + add r0, r1, #0x1 + cmp r0, r2 + beq _020AAAE0 + cmp r1, #0x0 + beq _020AAAE0 + cmp r1, r2 + bhi _020AAAE0 + ldr r0, [r7, #0x45c] + cmp r0, #0x0 + ldreq r0, [r6, #0x14] + addeq r0, r0, #0x1 + streq r0, [r6, #0x14] +_020AAAE0: + ldr r0, [r7, #0x18] + cmp r5, #0x0 + str r0, [r6, #0x58] + beq _020AAB24 + ldr r0, [r6, #0x70] + cmp r0, #0x0 + beq _020AAB24 + mov r0, r6 + mov r1, r7 + bl FUN_020ABC0C + mov r8, r0 + mov r0, r10 + bl FUN_020AB4B8 + ldr r0, [r6, #0x70] + sub r0, r0, #0x1 + str r0, [r6, #0x70] + b _020AABA8 +_020AAB24: + ldr r1, [r7, #0x464] + ldr r0, [r6, #0x28] + subs r2, r4, r1 + str r2, [r6, #0x28] + ldr r1, [r6, #0x28] + sub r0, r2, r0 + sub r0, r0, r1 + add r0, r1, r0, lsr #0x4 + str r0, [r6, #0x2c] + str r0, [r6, #0x0] + ldr r0, [r7, #0x474] + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x4] + bl MIi_CpuCopyFast + mov r0, r6 + mov r1, r7 + bl FUN_020ABC0C + ldr r0, [sp, #0x8] + cmp r0, #0x0 + beq _020AAB8C + ldrb r1, [r7, #0x10] + ldr r2, [r0, #0x0] + mov r0, #0x1 + orr r1, r2, r0, lsl r1 + ldr r0, [sp, #0x8] + str r1, [r0, #0x0] +_020AAB8C: + add sp, sp, #0xc + mov r0, #0x1 + ldmia sp!, {r4-r11,pc} +_020AAB98: + add sp, sp, #0xc + str r8, [r6, #0x8] + mov r0, #0x0 + ldmia sp!, {r4-r11,pc} +_020AABA8: + cmp r8, #0x0 + bne _020AA9A4 +_020AABB0: + ldr r0, [r6, #0x3c] + cmp r0, #0x0 + beq _020AABC8 + bl FUN_020ACD90 +_020AABC0: ; 0x020AABC0 + mov r0, #0x0 + str r0, [r6, #0x3c] +_020AABC8: + mov r0, #0x0 + add sp, sp, #0xc + ldmia sp!, {r4-r11,pc} + .balign 4 +_020AABD4: .word 0x021CA8E8 +_020AABD8: .word 0x00008B4C + + arm_func_start FUN_020AABDC +FUN_020AABDC: ; 0x020AABDC + stmdb sp!, {r4,lr} + ldr r3, _020AACE0 ; =0x021CA8D4 + mov r2, r1 + ldr r1, [r3, #0x0] + mov r12, #0x0 + cmp r2, r1 + movne r0, r12 + ldmneia sp!, {r4,pc} +_020AABFC: ; 0x020AABFC + ldr r1, _020AACE4 ; =0x021CA8D0 + ldr r4, [r1, #0x0] + cmp r4, #0x0 + moveq r0, r12 + ldmeqia sp!, {r4,pc} +_020AAC10: ; 0x020AAC10 + mov lr, r12 + cmp r4, #0x0 + bls _020AAC48 + ldr r3, _020AACE8 ; =0x021CA8DC +_020AAC20: + ldr r1, [r3, lr, lsl #0x2] + cmp r1, #0x0 + beq _020AAC3C + ldr r1, [r1, #0xc] + cmp r1, #0x2 + moveq r12, #0x1 + beq _020AAC48 +_020AAC3C: + add lr, lr, #0x1 + cmp lr, r4 + blo _020AAC20 +_020AAC48: + cmp r12, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} +_020AAC54: ; 0x020AAC54 + ldr r1, _020AACEC ; =0x021CAF00 + ldr r4, _020AACEC ; =0x021CAF00 + ldr r1, [r1, #0x8c4] + ldr r3, _020AACF0 ; =0x5F564354 + ands r1, r1, #0x1 + movne r12, #0x0 + moveq r12, #0x460 + str r3, [r4, r12] + ldr r1, _020AACF4 ; =0x021CA8CC + add r4, r4, r12 + ldr r1, [r1, #0x0] + cmp r1, #0x2 + blt _020AAC94 + add r1, r4, #0x10 + bl MIi_CpuCopyFast + b _020AAC9C +_020AAC94: + add r1, r4, #0xc + bl MIi_CpuCopyFast +_020AAC9C: + mov r1, #0x40 + ldr r0, _020AACF8 ; =0x021CA8B0 + strb r1, [r4, #0x4] + ldrh r2, [r0, #0x0] + add r1, r2, #0x1 + strh r1, [r0, #0x0] + strh r2, [r4, #0x6] + bl OS_GetTick + mov r0, r0, lsr #0x6 + orr r0, r0, r1, lsl #0x1a + ldr r1, _020AACEC ; =0x021CAF00 + str r0, [r4, #0x8] + ldr r2, [r1, #0x8c4] + mov r0, #0x1 + add r2, r2, #0x1 + str r2, [r1, #0x8c4] + ldmia sp!, {r4,pc} + .balign 4 +_020AACE0: .word 0x021CA8D4 +_020AACE4: .word 0x021CA8D0 +_020AACE8: .word 0x021CA8DC +_020AACEC: .word 0x021CAF00 +_020AACF0: .word 0x5F564354 +_020AACF4: .word 0x021CA8CC +_020AACF8: .word 0x021CA8B0 + + arm_func_start FUN_020AACFC +FUN_020AACFC: ; 0x020AACFC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, #0x0 + ldr ip, _020AADB8 ; =0x021CA8DC +_020AAD10: + ldr r0, [r12, r4, lsl #0x2] + mov lr, r4, lsl #0x2 + cmp r0, r5 + bne _020AAD74 + ldr r1, _020AADBC ; =0x021CA8E8 + mov r0, #0x94 + mla r0, r4, r0, r1 + ldr r1, _020AADC0 ; =0x021CA8D0 + mov r3, #0x0 + ldr r2, [r1, #0x0] + str r3, [r12, lr] + sub r2, r2, #0x1 + str r2, [r1, #0x0] + bl FUN_020ABC40 + mov r0, r4 + bl FUN_020AB6C4 + mov r0, r4 + bl FUN_020AB234 + ldr r0, _020AADC4 ; =0x021CA8B4 + ldr r1, [r5, #0x8] + ldr r2, [r0, #0x0] + mvn r1, r1 + and r1, r2, r1 + str r1, [r0, #0x0] + b _020AAD80 +_020AAD74: + add r4, r4, #0x1 + cmp r4, #0x3 + blo _020AAD10 +_020AAD80: + ldr r0, _020AADC0 ; =0x021CA8D0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,pc} +_020AAD94: ; 0x020AAD94 + ldr r0, _020AADC8 ; =0x021CA8C4 + mov r1, #0x1 + str r1, [r0, #0x0] + bl FUN_020AD170 + ldr r0, _020AADC4 ; =0x021CA8B4 + mov r1, #0x0 + str r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AADB8: .word 0x021CA8DC +_020AADBC: .word 0x021CA8E8 +_020AADC0: .word 0x021CA8D0 +_020AADC4: .word 0x021CA8B4 +_020AADC8: .word 0x021CA8C4 + + arm_func_start FUN_020AADCC +FUN_020AADCC: ; 0x020AADCC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + movs r5, r0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,pc} +_020AADE4: ; 0x020AADE4 + ldr r0, _020AAF24 ; =0x021CA8D0 + ldr r0, [r0, #0x0] + cmp r0, #0x3 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,pc} +_020AADFC: ; 0x020AADFC + ldr r0, [r5, #0xc] + cmp r0, #0x2 + beq _020AAE18 + cmp r0, #0x3 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {r4-r5,pc} +_020AAE18: + ldr r1, _020AAF28 ; =0x021CA8DC + mov r2, #0x0 +_020AAE20: + ldr r0, [r1, r2, lsl #0x2] + cmp r0, r5 + addeq sp, sp, #0x4 + moveq r0, #0x1 + ldmeqia sp!, {r4-r5,pc} +_020AAE34: ; 0x020AAE34 + add r2, r2, #0x1 + cmp r2, #0x3 + blo _020AAE20 + ldr r1, _020AAF28 ; =0x021CA8DC + mov r4, #0x0 +_020AAE48: + ldr r0, [r1, r4, lsl #0x2] + mov r2, r4, lsl #0x2 + cmp r0, #0x0 + streq r5, [r1, r2] + beq _020AAE68 + add r4, r4, #0x1 + cmp r4, #0x3 + blo _020AAE48 +_020AAE68: + ldr r0, _020AAF24 ; =0x021CA8D0 + ldr r1, _020AAF2C ; =0x021CA8B4 + ldr r3, [r0, #0x0] + ldr r2, _020AAF30 ; =0x021CA8E8 + add r3, r3, #0x1 + str r3, [r0, #0x0] + mov r0, #0x94 + ldr r12, [r1, #0x0] + ldr r3, [r5, #0x8] + mla r0, r4, r0, r2 + orr r2, r12, r3 + str r2, [r1, #0x0] + ldrb r2, [r5, #0x5] + mov r1, r4 + bl FUN_020ABC6C + mov r0, r4 + bl FUN_020AB714 + ldr r0, [r5, #0xc] + cmp r0, #0x2 + addne sp, sp, #0x4 + movne r0, #0x1 + ldmneia sp!, {r4-r5,pc} +_020AAEC0: ; 0x020AAEC0 + ldr r0, _020AAF24 ; =0x021CA8D0 + ldr r0, [r0, #0x0] + cmp r0, #0x1 + bne _020AAF18 + bl FUN_020AD170 + bl OS_GetTickLo + ldr r4, _020AAF34 ; =0x021CA8B0 + ldr r3, _020AAF38 ; =0x021CA8C0 + mov r12, #0x0 + ldr r1, _020AAF3C ; =0x021CAF00 + ldr r2, _020AAF40 ; =0x021CA8C4 + mov r5, #0x1 + strh r0, [r4, #0x0] + strh r12, [r3, #0x0] + strb r12, [r3, #0x2] + str r5, [r2, #0x0] + str r12, [r1, #0x8c0] + str r12, [r1, #0x8c4] + str r12, [r1, #0x8cc] + str r12, [r1, #0x8c8] + str r12, [r1, #0x8d0] + str r12, [r1, #0x8d4] +_020AAF18: + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AAF24: .word 0x021CA8D0 +_020AAF28: .word 0x021CA8DC +_020AAF2C: .word 0x021CA8B4 +_020AAF30: .word 0x021CA8E8 +_020AAF34: .word 0x021CA8B0 +_020AAF38: .word 0x021CA8C0 +_020AAF3C: .word 0x021CAF00 +_020AAF40: .word 0x021CA8C4 + + arm_func_start FUN_020AAF44 +FUN_020AAF44: ; 0x020AAF44 + ldr r0, _020AAF54 ; =0x021CA8D0 + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 +_020AAF54: .word 0x021CA8D0 + + arm_func_start FUN_020AAF58 +FUN_020AAF58: + stmdb sp!, {r4-r8,lr} + bl OS_GetTickLo + ldr r1, _020AB054 ; =0x021CCD20 + ldr ip, _020AB058 ; =0x021CA8B0 + ldr r4, [r1, #0x10] + strh r0, [r12, #0x0] + cmp r4, #0x1 + ldreq r0, _020AB05C ; =0x021CA8CC + mov r5, #0x0 + ldr r1, _020AB060 ; =0x021CA8B4 + streq r5, [r0, #0x0] + str r5, [r1, #0x0] + ldr r2, _020AB064 ; =0x021CA8D0 + ldrne r0, _020AB05C ; =0x021CA8CC + movne r1, #0x4 + strne r1, [r0, #0x0] + str r5, [r2, #0x0] + ldr r0, _020AB05C ; =0x021CA8CC + ldr r3, _020AB068 ; =0x0210646C + ldr r2, [r0, #0x0] + mov r6, #0x1 + ldr r1, _020AB06C ; =0x020FF689 + str r6, [r3, #0x0] + ldr r0, _020AB070 ; =0x020FF688 + ldrb r3, [r1, r2, lsl #0x1] + ldrb r1, [r0, r2, lsl #0x1] + mov r0, #0x44 + ldr r2, _020AB074 ; =0x021CA8D4 + mla r0, r1, r0, r3 + add r4, r0, #0xc + ldr r1, _020AB078 ; =0x021CA8BC + mov r5, #0x440 + ldr r0, _020AB07C ; =0x021CAF00 + mov r3, #0x0 + str r5, [r2, #0x0] + str r4, [r1, #0x0] + str r3, [r0, #0x8c0] + str r3, [r0, #0x8c4] + str r3, [r0, #0x8cc] + str r3, [r0, #0x8c8] + str r3, [r0, #0x8d0] + str r3, [r0, #0x8d4] + bl FUN_020ACF10 + mov r8, #0x0 + ldr r7, _020AB080 ; =0x021CA8E8 + ldr r5, _020AB084 ; =0x021CA8DC + mov r6, r8 + mvn r4, #0x0 +_020AB018: + mov r0, r8 + str r6, [r5, r8, lsl #0x2] + bl FUN_020AB714 + mov r0, r7 + mov r1, r8 + mov r2, r4 + bl FUN_020ABC6C + add r8, r8, #0x1 + cmp r8, #0x3 + add r7, r7, #0x94 + blo _020AB018 + bl FUN_020AB284 + bl FUN_020AD474 + mov r0, #0x1 + ldmia sp!, {r4-r8,pc} + .balign 4 +_020AB054: .word 0x021CCD20 +_020AB058: .word 0x021CA8B0 +_020AB05C: .word 0x021CA8CC +_020AB060: .word 0x021CA8B4 +_020AB064: .word 0x021CA8D0 +_020AB068: .word 0x0210646C +_020AB06C: .word 0x020FF689 +_020AB070: .word 0x020FF688 +_020AB074: .word 0x021CA8D4 +_020AB078: .word 0x021CA8BC +_020AB07C: .word 0x021CAF00 +_020AB080: .word 0x021CA8E8 +_020AB084: .word 0x021CA8DC + + arm_func_start FUN_020AB088 +FUN_020AB088: ; 0x020AB088 + ldr r2, [r0, #0x4] + cmp r2, #0x0 + ldrne r1, [r0, #0x8] + strne r1, [r2, #0x8] + bne _020AB0B4 + ldr r2, [r0, #0x8] + ldr r1, _020AB100 ; =0x021CB7D8 + cmp r2, #0x0 + str r2, [r1, #0x0] + movne r1, #0x0 + strne r1, [r2, #0x4] +_020AB0B4: + ldr r2, [r0, #0x8] + cmp r2, #0x0 + ldrne r1, [r0, #0x4] + strne r1, [r2, #0x4] + bne _020AB0E0 + ldr r2, [r0, #0x4] + ldr r1, _020AB104 ; =0x021CB7DC + cmp r2, #0x0 + str r2, [r1, #0x0] + movne r1, #0x0 + strne r1, [r2, #0x8] +_020AB0E0: + ldrb r2, [r0, #0x11] + ldr r3, _020AB108 ; =0x021CB7E0 + ldr r1, [r3, r2, lsl #0x2] + sub r1, r1, #0x1 + str r1, [r3, r2, lsl #0x2] + ldrb r0, [r0, #0x11] + ldr r0, [r3, r0, lsl #0x2] + bx lr + .balign 4 +_020AB100: .word 0x021CB7D8 +_020AB104: .word 0x021CB7DC +_020AB108: .word 0x021CB7E0 + + arm_func_start FUN_020AB10C +FUN_020AB10C: ; 0x020AB10C + ldr r1, _020AB140 ; =0x021CB7D8 + ldr r2, [r1, #0x0] + cmp r2, #0x0 + beq _020AB138 +_020AB11C: + ldrb r1, [r2, #0x11] + cmp r1, r0 + moveq r0, r2 + bxeq lr + ldr r2, [r2, #0x8] + cmp r2, #0x0 + bne _020AB11C +_020AB138: + mov r0, #0x0 + bx lr + .balign 4 +_020AB140: .word 0x021CB7D8 + + arm_func_start FUN_020AB144 +FUN_020AB144: ; 0x020AB144 + ldr r1, _020AB150 ; =0x021CB7E0 + ldr r0, [r1, r0, lsl #0x2] + bx lr + .balign 4 +_020AB150: .word 0x021CB7E0 + + arm_func_start FUN_020AB154 +FUN_020AB154: + ldr r0, _020AB160 ; =0x021CB7D8 + ldr r0, [r0, #0x0] + bx lr + .balign 4 +_020AB160: .word 0x021CB7D8 + + arm_func_start FUN_020AB164 +FUN_020AB164: ; 0x020AB164 + ldr r2, _020AB1D8 ; =0x021CB7D8 + ldr r1, [r2, #0x0] + cmp r1, #0x0 + bne _020AB198 + str r0, [r2, #0x0] + mov r12, #0x0 + str r12, [r0, #0x4] + ldr r3, [r2, #0x0] + ldr r1, _020AB1DC ; =0x021CB7DC + str r12, [r3, #0x8] + ldr r2, [r2, #0x0] + str r2, [r1, #0x0] + b _020AB1B8 +_020AB198: + ldr r1, _020AB1DC ; =0x021CB7DC + mov r2, #0x0 + ldr r3, [r1, #0x0] + str r3, [r0, #0x4] + str r2, [r0, #0x8] + ldr r2, [r1, #0x0] + str r0, [r2, #0x8] + str r0, [r1, #0x0] +_020AB1B8: + ldrb r2, [r0, #0x11] + ldr r3, _020AB1E0 ; =0x021CB7E0 + ldr r1, [r3, r2, lsl #0x2] + add r1, r1, #0x1 + str r1, [r3, r2, lsl #0x2] + ldrb r0, [r0, #0x11] + ldr r0, [r3, r0, lsl #0x2] + bx lr + .balign 4 +_020AB1D8: .word 0x021CB7D8 +_020AB1DC: .word 0x021CB7DC +_020AB1E0: .word 0x021CB7E0 + + arm_func_start FUN_020AB1E4 +FUN_020AB1E4: ; 0x020AB1E4 + stmdb sp!, {r4,lr} + ldr r0, _020AB22C ; =0x021CB7D8 + ldr r4, [r0, #0x0] + cmp r4, #0x0 + beq _020AB20C +_020AB1F8: + mov r0, r4 + ldr r4, [r4, #0x8] + bl FUN_020ACD90 +_020AB204: ; 0x020AB204 + cmp r4, #0x0 + bne _020AB1F8 +_020AB20C: + mov r2, #0x0 + ldr r0, _020AB230 ; =0x021CB7E0 + mov r1, r2 +_020AB218: + str r1, [r0, r2, lsl #0x2] + add r2, r2, #0x1 + cmp r2, #0x3 + blt _020AB218 + ldmia sp!, {r4,pc} + .balign 4 +_020AB22C: .word 0x021CB7D8 +_020AB230: .word 0x021CB7E0 + + arm_func_start FUN_020AB234 +FUN_020AB234: ; 0x020AB234 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl FUN_020AB10C + movs r4, r0 + beq _020AB26C +_020AB24C: + mov r0, r4 + bl FUN_020AB088 + mov r0, r4 + bl FUN_020ACD90 + mov r0, r5 + bl FUN_020AB10C + movs r4, r0 + bne _020AB24C +_020AB26C: + ldr r0, _020AB280 ; =0x021CB7E0 + mov r1, #0x0 + str r1, [r0, r5, lsl #0x2] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AB280: .word 0x021CB7E0 + + arm_func_start FUN_020AB284 +FUN_020AB284: ; 0x020AB284 + ldr r1, _020AB2B4 ; =0x021CB7DC + mov r2, #0x0 + ldr r0, _020AB2B8 ; =0x021CB7D8 + str r2, [r1, #0x0] + str r2, [r0, #0x0] + ldr r0, _020AB2BC ; =0x021CB7E0 + mov r1, r2 +_020AB2A0: + str r1, [r0, r2, lsl #0x2] + add r2, r2, #0x1 + cmp r2, #0x3 + blt _020AB2A0 + bx lr + .balign 4 +_020AB2B4: .word 0x021CB7DC +_020AB2B8: .word 0x021CB7D8 +_020AB2BC: .word 0x021CB7E0 + + arm_func_start FUN_020AB2C0 +FUN_020AB2C0: ; 0x020AB2C0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r2, #0x0 + addls sp, sp, #0x4 + mov lr, #0x0 + ldmlsia sp!, {pc} +_020AB2D8: + ldrsb r12, [r0, lr] + mov r3, lr, lsl #0x1 + add lr, lr, #0x1 + mov r12, r12, lsl #0x8 + strh r12, [r1, r3] + cmp lr, r2 + blo _020AB2D8 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020AB2FC +FUN_020AB2FC: ; 0x020AB2FC + cmp r2, #0x0 + mov r12, #0x0 + bxls lr +_020AB308: + mov r3, r12, lsl #0x1 + ldrsh r3, [r1, r3] + mov r3, r3, asr #0x8 + strb r3, [r0, r12] + add r12, r12, #0x1 + cmp r12, r2 + blo _020AB308 + bx lr + + arm_func_start FUN_020AB328 +FUN_020AB328: ; 0x020AB328 + stmdb sp!, {r4,lr} + mov r4, #0x0 + cmp r2, #0x0 + ldmlsia sp!, {r4,pc} +_020AB338: + ldrb r3, [r0, r4] + mvn lr, r3 + and r3, lr, #0xf + mov r12, r3, lsl #0x3 + and r3, lr, #0x70 + add r12, r12, #0x84 + mov r3, r3, asr #0x4 + mov r12, r12, lsl r3 + ands r3, lr, #0x80 + rsbne r12, r12, #0x84 + mov r3, r4, lsl #0x1 + subeq r12, r12, #0x84 + add r4, r4, #0x1 + strh r12, [r1, r3] + cmp r4, r2 + blo _020AB338 + ldmia sp!, {r4,pc} + + arm_func_start FUN_020AB37C +FUN_020AB37C: ; 0x020AB37C + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + cmp r2, #0x0 + mov r8, #0x0 + addls sp, sp, #0x4 + ldmlsia sp!, {r4-r11,pc} +_020AB394: ; 0x020AB394 + mov r12, r8 + mov lr, #0xff + mov r4, #0x7f + mov r3, #0x8 +_020AB3A4: + mov r5, r8, lsl #0x1 + ldrsh r5, [r1, r5] + ldr fp, _020AB42C ; =0x02106470 + movs r7, r5, asr #0x2 + movmi r6, r4 + ldr r5, _020AB430 ; =0x00001FDF + rsbmi r7, r7, #0x0 + movpl r6, lr + cmp r7, r5 + movgt r7, r5 + mov r5, r12 + add r10, r7, #0x21 +_020AB3D4: + ldr r9, [r11], #0x4 + cmp r10, r9 + ble _020AB3F0 + add r5, r5, #0x1 + cmp r5, #0x8 + blt _020AB3D4 + mov r5, r3 +_020AB3F0: + cmp r5, #0x8 + eorge r5, r6, #0x7f + bge _020AB414 + add r9, r7, #0x21 + add r7, r5, #0x1 + mov r7, r9, asr r7 + and r7, r7, #0xf + orr r5, r7, r5, lsl #0x4 + eor r5, r5, r6 +_020AB414: + strb r5, [r0, r8] + add r8, r8, #0x1 + cmp r8, r2 + blo _020AB3A4 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020AB42C: .word 0x02106470 +_020AB430: .word 0x00001FDF + + arm_func_start FUN_020AB434 +FUN_020AB434: ; 0x020AB434 + ldr r1, _020AB440 ; =0x021CB7FC + ldr r0, [r1, r0, lsl #0x2] + bx lr + .balign 4 +_020AB440: .word 0x021CB7FC + + arm_func_start FUN_020AB444 +FUN_020AB444: ; 0x020AB444 + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + ldr r3, _020AB4AC ; =0x021CB7F0 + ldr r1, _020AB4B0 ; =0x021CB7EC + ldr r2, [r3, r4, lsl #0x2] + str r0, [r1, #0x0] + cmp r2, #0x0 + mov r12, r4, lsl #0x2 + beq _020AB494 + ldr r1, _020AB4B4 ; =0x021CB7FC + ldr r2, [r2, #0x8] + ldr r0, [r1, r12] + sub r0, r0, #0x1 + str r0, [r1, r12] + str r2, [r3, r12] + ldr r1, [r3, r12] + cmp r1, #0x0 + movne r0, #0x0 + strne r0, [r1, #0x4] +_020AB494: + ldr r0, _020AB4B0 ; =0x021CB7EC + ldr r0, [r0, #0x0] + bl OS_RestoreInterrupts + ldr r0, _020AB4B4 ; =0x021CB7FC + ldr r0, [r0, r4, lsl #0x2] + ldmia sp!, {r4,pc} + .balign 4 +_020AB4AC: .word 0x021CB7F0 +_020AB4B0: .word 0x021CB7EC +_020AB4B4: .word 0x021CB7FC + + arm_func_start FUN_020AB4B8 +FUN_020AB4B8: ; 0x020AB4B8 + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + ldr r2, _020AB4F8 ; =0x021CB7F0 + ldr r1, _020AB4FC ; =0x021CB7EC + ldr r2, [r2, r4, lsl #0x2] + str r0, [r1, #0x0] + cmp r2, #0x0 + beq _020AB4EC + bl OS_RestoreInterrupts + ldr r0, _020AB4F8 ; =0x021CB7F0 + ldr r0, [r0, r4, lsl #0x2] + ldmia sp!, {r4,pc} +_020AB4EC: + bl OS_RestoreInterrupts +_020AB4F0: ; 0x020AB4F0 + mov r0, #0x0 + ldmia sp!, {r4,pc} + .balign 4 +_020AB4F8: .word 0x021CB7F0 +_020AB4FC: .word 0x021CB7EC + + arm_func_start FUN_020AB500 +FUN_020AB500: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + movs r5, r0 + mov r4, r1 + addeq sp, sp, #0x4 + mvneq r0, #0x0 + ldmeqia sp!, {r4-r5,pc} +_020AB51C: ; 0x020AB51C + cmp r4, #0x3 + addcs sp, sp, #0x4 + mvncs r0, #0x0 + ldmcsia sp!, {r4-r5,pc} +_020AB52C: ; 0x020AB52C + bl OS_DisableInterrupts + ldr r3, _020AB620 ; =0x021CB7F0 + ldr r1, _020AB624 ; =0x021CB7EC + ldr r2, [r3, r4, lsl #0x2] + str r0, [r1, #0x0] + cmp r2, #0x0 + mov r12, r4, lsl #0x2 + bne _020AB574 + str r5, [r3, r12] + ldr r0, [r3, r12] + mov r2, #0x0 + str r2, [r0, #0x4] + ldr r1, [r3, r12] + ldr r0, _020AB628 ; =0x021CB808 + str r2, [r1, #0x8] + ldr r1, [r3, r12] + str r1, [r0, r12] + b _020AB5F4 +_020AB574: + ldr r0, _020AB628 ; =0x021CB808 + ldr r3, [r0, r12] + cmp r3, #0x0 + beq _020AB5D4 + ldr r1, [r5, #0x18] +_020AB588: + ldr r0, [r3, #0x18] + cmp r0, r1 + bhs _020AB5C8 + str r3, [r5, #0x4] + ldr r0, [r3, #0x8] + ldr r1, _020AB628 ; =0x021CB808 + str r0, [r5, #0x8] + str r5, [r3, #0x8] + ldr r0, [r5, #0x8] + mov r2, r4, lsl #0x2 + cmp r0, #0x0 + strne r5, [r0, #0x4] + ldr r0, [r1, r4, lsl #0x2] + cmp r3, r0 + streq r5, [r1, r2] + b _020AB5F4 +_020AB5C8: + ldr r3, [r3, #0x4] + cmp r3, #0x0 + bne _020AB588 +_020AB5D4: + mov r0, #0x0 + ldr r1, _020AB620 ; =0x021CB7F0 + str r0, [r5, #0x4] + ldr r0, [r1, r4, lsl #0x2] + str r0, [r5, #0x8] + ldr r0, [r1, r4, lsl #0x2] + str r5, [r0, #0x4] + str r5, [r1, r4, lsl #0x2] +_020AB5F4: + ldr r2, _020AB62C ; =0x021CB7FC + ldr r0, _020AB624 ; =0x021CB7EC + ldr r1, [r2, r4, lsl #0x2] + add r1, r1, #0x1 + str r1, [r2, r4, lsl #0x2] + ldr r0, [r0, #0x0] + bl OS_RestoreInterrupts + ldr r0, _020AB62C ; =0x021CB7FC + ldr r0, [r0, r4, lsl #0x2] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AB620: .word 0x021CB7F0 +_020AB624: .word 0x021CB7EC +_020AB628: .word 0x021CB808 +_020AB62C: .word 0x021CB7FC + + arm_func_start FUN_020AB630 +FUN_020AB630: ; 0x020AB630 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + bl OS_DisableInterrupts + mov r7, #0x0 + ldr r1, _020AB6B8 ; =0x021CB7EC + mov r4, r7 + mov r9, r7 + str r0, [r1, #0x0] + ldr r5, _020AB6BC ; =0x021CB7F0 + ldr r8, _020AB6C0 ; =0x021CB7FC + b _020AB69C +_020AB65C: + ldr r0, [r5, r7, lsl #0x2] + mov r6, r7, lsl #0x2 + cmp r0, #0x0 + beq _020AB694 +_020AB66C: + ldr r0, [r5, r6] + ldr r1, [r0, #0x8] + str r1, [r5, r6] + ldr r1, [r5, r6] + cmp r1, #0x0 + strne r4, [r1, #0x4] + bl FUN_020ACD90 + ldr r0, [r5, r6] + cmp r0, #0x0 + bne _020AB66C +_020AB694: + str r9, [r8, r7, lsl #0x2] + add r7, r7, #0x1 +_020AB69C: + cmp r7, #0x3 + blt _020AB65C + ldr r0, _020AB6B8 ; =0x021CB7EC + ldr r0, [r0, #0x0] + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + .balign 4 +_020AB6B8: .word 0x021CB7EC +_020AB6BC: .word 0x021CB7F0 +_020AB6C0: .word 0x021CB7FC + + arm_func_start FUN_020AB6C4 +FUN_020AB6C4: ; 0x020AB6C4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl FUN_020AB4B8 + movs r4, r0 + beq _020AB6FC +_020AB6DC: + mov r0, r5 + bl FUN_020AB444 + mov r0, r4 + bl FUN_020ACD90 + mov r0, r5 + bl FUN_020AB4B8 + movs r4, r0 + bne _020AB6DC +_020AB6FC: + ldr r0, _020AB710 ; =0x021CB7FC + mov r1, #0x0 + str r1, [r0, r5, lsl #0x2] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AB710: .word 0x021CB7FC + + arm_func_start FUN_020AB714 +FUN_020AB714: ; 0x020AB714 + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + ldr r1, _020AB750 ; =0x021CB7EC + ldr r3, _020AB754 ; =0x021CB808 + mov lr, #0x0 + str lr, [r3, r4, lsl #0x2] + ldr r2, _020AB758 ; =0x021CB7FC + ldr r12, [r3, r4, lsl #0x2] + ldr r3, _020AB75C ; =0x021CB7F0 + str r0, [r1, #0x0] + str r12, [r3, r4, lsl #0x2] + str lr, [r2, r4, lsl #0x2] + bl OS_RestoreInterrupts + ldmia sp!, {r4,pc} + .balign 4 +_020AB750: .word 0x021CB7EC +_020AB754: .word 0x021CB808 +_020AB758: .word 0x021CB7FC +_020AB75C: .word 0x021CB7F0 + + arm_func_start FUN_020AB760 +FUN_020AB760: + stmdb sp!, {r4-r8,lr} + mov r7, r0 + ldr r2, [r7, #0x5c] + mov r6, r1 + cmp r2, #0x0 + mov r4, #0x0 + beq _020AB790 + ldr r1, [r6, #0x18] + mov r1, r1, lsl #0x10 + mov r1, r1, lsr #0x10 + bl FUN_020ABBEC + b _020AB820 +_020AB790: + ldr r2, [r6, #0x18] + mov r2, r2, lsl #0x10 + mov r2, r2, lsr #0x10 + bl FUN_020ABB1C +_020AB7A0: ; 0x020AB7A0 + cmp r0, #0x0 + ldreq r1, [r7, #0x14] + moveq r0, r4 + addeq r1, r1, #0x1 + streq r1, [r7, #0x14] + ldmeqia sp!, {r4-r8,pc} +_020AB7B8: ; 0x020AB7B8 + ldr r0, [r6, #0x18] + str r0, [r7, #0x10] + ldr r2, [r6, #0x18] + ldr r1, [r7, #0x54] + cmp r1, r2 + ldreq r1, [r7, #0x14] + moveq r0, r4 + addeq r1, r1, #0x1 + streq r1, [r7, #0x14] + ldmeqia sp!, {r4-r8,pc} +_020AB7E0: ; 0x020AB7E0 + add r0, r1, #0x1 + cmp r0, r2 + beq _020AB820 + ldr r0, [r6, #0x45c] + cmp r0, #0x0 + bne _020AB820 + subs r0, r2, r1 + rsbmi r0, r0, #0x0 + cmp r0, #0x64 + strgt r2, [r7, #0x54] + movgt r0, #0x0 + ldmgtia sp!, {r4-r8,pc} +_020AB810: ; 0x020AB810 + cmp r1, r2 + ldrhi r0, [r7, #0x1c] + addhi r0, r0, #0x1 + strhi r0, [r7, #0x1c] +_020AB820: + ldr r0, [r6, #0x18] + str r0, [r7, #0x54] + ldr r0, [r7, #0x4c] + cmp r0, #0x0 + bne _020AB858 + ldr r1, [r6, #0x460] + ldr r0, _020ABAF4 ; =0x00000464 + str r1, [r7, #0x4c] + add r1, r6, r0 + add r0, r7, #0x44 + ldmia r1, {r2-r3} + stmia r0, {r2-r3} + mov r0, #0x0 + str r0, [r7, #0x6c] +_020AB858: + ldr r3, [r6, #0x460] + ldr r1, [r7, #0x4c] + ldr r2, [r6, #0x464] + ldr r0, [r7, #0x44] + sub r1, r3, r1 + ldr r3, [r7, #0x80] + mov r1, r1, lsl #0x6 + subs r0, r2, r0 + subs r5, r1, r0 + cmp r3, #0x0 + mov r0, #0x0 + beq _020AB894 + ldr r2, [r6, #0x45c] + cmp r2, #0x0 + beq _020AB89C +_020AB894: + str r5, [r7, #0x80] + b _020AB918 +_020AB89C: + str r5, [r7, #0x80] + subs r2, r5, r3 + ldr r8, [r7, #0x7c] + ldr r3, _020ABAF8 ; =0x00008B18 + ldr ip, _020ABAFC ; =0x0000CC8D + add r3, r8, r3 + mov r8, r3, lsl #0x1 + rsbmi r2, r2, #0x0 + mov r3, r8, asr #0x1f + adds r8, r8, r12 + mov r12, r2, asr #0x1f + adc r3, r3, #0x0 + cmp r12, r3 + cmpeq r2, r8 + bls _020AB8F4 + ldr lr, _020ABB00 ; =0x75CA82CB + mov r3, r2, lsr #0x1f + smull r12, r8, lr, r2 + mov r8, r8, asr #0xe + add r8, r3, r8 + add r3, r8, #0x2 + str r3, [r7, #0x84] +_020AB8F4: + ldr r3, [r7, #0x84] + cmp r3, #0x0 + bgt _020AB918 + ldr r3, [r7, #0x7c] + sub r2, r2, r3 + add r2, r3, r2, asr #0x4 + str r2, [r7, #0x7c] + ldr r2, [r7, #0x7c] + str r2, [r7, #0x18] +_020AB918: + ldr r3, [r7, #0x44] + ldr r12, [r7, #0x4] + ldr r2, [r7, #0x48] + adds r1, r1, r3 + adc r0, r0, r2 + adds r1, r12, r1 + str r1, [r6, #0x46c] + adc r0, r0, #0x0 + str r0, [r6, #0x470] + bl OS_GetTick + ldr r12, [r6, #0x46c] + ldr r2, _020ABAF8 ; =0x00008B18 + ldr lr, [r6, #0x470] + adds r6, r12, r2 + adc r3, lr, #0x0 + cmp r3, r1 + mov r3, #0x0 + cmpeq r6, r0 + movcc r0, r3 + ldmccia sp!, {r4-r8,pc} +_020AB968: ; 0x020AB968 + ldr r6, _020ABB04 ; =0x0007FD88 + adds r6, r0, r6 + adc r0, r1, r3 + cmp lr, r0 + cmpeq r12, r6 + movhi r0, r3 + ldmhiia sp!, {r4-r8,pc} +_020AB984: ; 0x020AB984 + ldr r0, [r7, #0x84] + cmp r0, #0x0 + bgt _020ABAE0 + ldr r1, [r7, #0x7c] + mov r0, #0x3 + mul lr, r1, r0 + ldr r6, _020ABB00 ; =0x75CA82CB + ldr r12, [r7, #0x8c] + smull r1, r0, r6, lr + mov r0, r0, asr #0xe + mov r1, lr, lsr #0x1f + cmp lr, r12 + add r0, r1, r0 + bls _020AB9EC + ldr r1, _020ABB08 ; =0x000134DF + add r6, r0, #0x1 + mla r12, r6, r2, r1 + str r12, [r7, #0x8c] + mla r1, r0, r2, r1 + ldr r2, [r7, #0x8c] + ldr r0, _020ABB0C ; =0xFFFF2F5C + add r0, r2, r0 + str r0, [r7, #0x88] + str r1, [r7, #0x4] + str r3, [r7, #0x90] + b _020ABA50 +_020AB9EC: + ldr r1, [r7, #0x88] + cmp lr, r1 + bge _020ABA50 + ldr r1, [r7, #0x90] + add r1, r1, #0x1 + str r1, [r7, #0x90] + ldr r1, [r7, #0x90] + cmp r1, #0x46 + bls _020ABA50 + ldr r1, _020ABB08 ; =0x000134DF + add r12, r0, #0x1 + mla lr, r12, r2, r1 + ldr r6, _020ABB10 ; =0xFFFFBA74 + str lr, [r7, #0x8c] + mla r1, r0, r2, r6 + str r1, [r7, #0x88] + ldr r1, [r7, #0x88] + ldr r2, _020ABB08 ; =0x000134DF + cmp r1, #0x0 + ldr r1, _020ABAF8 ; =0x00008B18 + strlt r3, [r7, #0x88] + mla r1, r0, r1, r2 + mov r3, #0x0 + str r1, [r7, #0x4] + str r3, [r7, #0x90] +_020ABA50: + ldr r1, [r7, #0x4] + ldr r0, _020ABB14 ; =0x00068520 + cmp r1, r0 + strhi r0, [r7, #0x4] + ldr r0, [r7, #0x6c] + cmp r0, #0x10 + addcc r0, r0, #0x1 + strcc r0, [r7, #0x6c] + strcc r5, [r7, #0x74] + strcc r5, [r7, #0x78] + blo _020ABA98 + ldr r1, [r7, #0x74] + mov r0, #0x1f + mla r2, r1, r0, r5 + mov r0, r2, asr #0x4 + add r0, r2, r0, lsr #0x1b + mov r0, r0, asr #0x5 + str r0, [r7, #0x74] +_020ABA98: + ldr r2, [r7, #0x78] + ldr r1, [r7, #0x74] + ldr r0, _020ABB18 ; =0x00008701 + sub r1, r2, r1 + str r1, [r7, #0xc] + ldr r1, [r7, #0xc] + cmp r1, r0 + mvn r0, #0x8700 + movgt r4, #0x1 + cmp r1, r0 + ldrlt r0, [r7, #0x70] + mvnlt r4, #0x0 + addlt r0, r0, #0x1 + strlt r0, [r7, #0x70] + cmp r4, #0x0 + movne r0, #0x0 + strne r0, [r7, #0x6c] + strne r0, [r7, #0x4c] +_020ABAE0: + ldr r1, [r7, #0x84] + mov r0, #0x1 + sub r1, r1, #0x1 + str r1, [r7, #0x84] + ldmia sp!, {r4-r8,pc} + .balign 4 +_020ABAF4: .word 0x00000464 +_020ABAF8: .word 0x00008B18 +_020ABAFC: .word 0x0000CC8D +_020ABB00: .word 0x75CA82CB +_020ABB04: .word 0x0007FD88 +_020ABB08: .word 0x000134DF +_020ABB0C: .word 0xFFFF2F5C +_020ABB10: .word 0xFFFFBA74 +_020ABB14: .word 0x00068520 +_020ABB18: .word 0x00008701 + + arm_func_start FUN_020ABB1C +FUN_020ABB1C: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldrh r12, [r6, #0x68] + mov r4, r2 + ldr r3, _020ABBE4 ; =0x00000BB8 + sub r2, r4, r12 + mov r2, r2, lsl #0x10 + mov r2, r2, lsr #0x10 + mov r5, r1 + cmp r2, r3 + bhs _020ABB60 + cmp r4, r12 + ldrcc r0, [r6, #0x60] + addcc r0, r0, #0x10000 + strcc r0, [r6, #0x60] + strh r4, [r6, #0x68] + b _020ABBD0 +_020ABB60: + ldr r1, _020ABBE8 ; =0x0000FF9C + cmp r2, r1 + bhi _020ABBAC + ldr r1, [r6, #0x64] + cmp r4, r1 + bne _020ABB94 + mov r1, r4 + bl FUN_020ABBEC + sub r0, r4, #0x1 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + str r0, [r6, #0x54] + b _020ABBD0 +_020ABB94: + add r0, r4, #0x1 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + str r0, [r6, #0x64] + mov r0, #0x0 + ldmia sp!, {r4-r6,pc} +_020ABBAC: + ldr r2, [r6, #0x60] + ldr r0, [r6, #0x54] + add r2, r4, r2 + add r0, r0, r1 + cmp r2, r0 + subhi r0, r2, #0x10000 + strhi r0, [r5, #0x18] + movhi r0, #0x1 + ldmhiia sp!, {r4-r6,pc} +_020ABBD0: + ldr r1, [r6, #0x60] + mov r0, #0x1 + add r1, r4, r1 + str r1, [r5, #0x18] + ldmia sp!, {r4-r6,pc} + .balign 4 +_020ABBE4: .word 0x00000BB8 +_020ABBE8: .word 0x0000FF9C + + arm_func_start FUN_020ABBEC +FUN_020ABBEC: ; 0x020ABBEC + ldr r2, _020ABC08 ; =0x00010001 + strh r1, [r0, #0x68] + str r2, [r0, #0x64] + mov r1, #0x0 + str r1, [r0, #0x60] + str r1, [r0, #0x5c] + bx lr + .balign 4 +_020ABC08: .word 0x00010001 + + arm_func_start FUN_020ABC0C +FUN_020ABC0C: ; 0x020ABC0C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r0, [r5, #0x3c] + mov r4, r1 + cmp r0, #0x0 + beq _020ABC2C + bl FUN_020ACD90 +_020ABC2C: + str r4, [r5, #0x3c] + ldr r0, [r5, #0x34] + bl FUN_020AB444 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_020ABC40 +FUN_020ABC40: ; 0x020ABC40 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, [r4, #0x3c] + cmp r0, #0x0 + beq _020ABC60 + bl FUN_020ACD90 +_020ABC58: ; 0x020ABC58 + mov r0, #0x0 + str r0, [r4, #0x3c] +_020ABC60: + mvn r0, #0x0 + str r0, [r4, #0x38] + ldmia sp!, {r4,pc} + + arm_func_start FUN_020ABC6C +FUN_020ABC6C: ; 0x020ABC6C + stmdb sp!, {r4-r6,lr} + mov r5, r1 + mov r4, r2 + mov r1, #0x0 + mov r2, #0x28 + mov r6, r0 + bl MI_CpuFill8 + ldr r0, _020ABCF4 ; =0x000134DF + mov r1, #0x0 + str r0, [r6, #0x4] + str r1, [r6, #0x28] + str r1, [r6, #0x2c] + str r5, [r6, #0x34] + str r4, [r6, #0x38] + str r1, [r6, #0x7c] + str r1, [r6, #0x80] + str r1, [r6, #0x84] + str r1, [r6, #0x88] + str r0, [r6, #0x8c] + str r1, [r6, #0x90] + str r1, [r6, #0x4c] + str r1, [r6, #0x44] + str r1, [r6, #0x48] + str r1, [r6, #0x6c] + str r1, [r6, #0x70] + str r1, [r6, #0x50] + str r1, [r6, #0x54] + str r1, [r6, #0x58] + mov r0, #0x1 + str r0, [r6, #0x5c] + str r1, [r6, #0x3c] + str r1, [r6, #0x40] + str r1, [r6, #0x30] + ldmia sp!, {r4-r6,pc} + .balign 4 +_020ABCF4: .word 0x000134DF + + arm_func_start FUN_020ABCF8 +FUN_020ABCF8: ; 0x020ABCF8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, _020ABE34 ; =0x021CCD20 + ldr r2, [r3, #0x10] + cmp r2, #0x2 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {pc} + ldrb r12, [r3, #0x1] + ldrb r2, [r0, #0x8] + cmp r12, r2 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {pc} + ldrb r2, [r0, #0xa] + cmp r2, #0x0 + beq _020ABD48 + cmp r2, #0x1 + beq _020ABDA4 + b _020ABE1C +_020ABD48: + ldr r0, _020ABE38 ; =0x021CB824 + ldr r2, [r0, #0x2c] + cmp r2, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {pc} + ldr r0, [r0, #0x38] + cmp r0, #0x5 + beq _020ABD74 + cmp r0, #0x2 + bne _020ABD80 +_020ABD74: + mov r0, #0x9 + str r0, [r1, #0x0] + b _020ABD88 +_020ABD80: + mov r0, #0x5 + str r0, [r1, #0x0] +_020ABD88: + ldr r0, _020ABE38 ; =0x021CB824 + mov r3, #0x0 + ldr r2, _020ABE3C ; =0x021CB850 + str r3, [r0, #0x2c] + str r3, [r0, #0x38] + str r2, [r1, #0x4] + b _020ABE28 +_020ABDA4: + ldr r2, _020ABE38 ; =0x021CB824 + mov lr, #0x2 + str lr, [r2, #0x2c] + ldrb r12, [r0, #0xb] + ldrb r3, [r3, #0x0] + cmp r12, r3 + bne _020ABDD8 + str lr, [r2, #0x38] + mov r3, #0x7 + str r3, [r1, #0x0] + ldr r3, [r0, #0xc] + str r3, [r2, #0x34] + b _020ABE04 +_020ABDD8: + mov r3, #0x3 + str r3, [r2, #0x38] + mov r2, #0x6 + str r2, [r1, #0x0] + ldrb r3, [r0, #0xb] + cmp r3, #0x0 + movne r2, #0x1 + movne r3, r2, lsl r3 + ldr r2, _020ABE38 ; =0x021CB824 + moveq r3, #0x1 + str r3, [r2, #0x34] +_020ABE04: + ldrb r3, [r0, #0xb] + ldr r0, _020ABE38 ; =0x021CB824 + ldr r2, _020ABE3C ; =0x021CB850 + strb r3, [r0, #0x31] + str r2, [r1, #0x4] + b _020ABE28 +_020ABE1C: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {pc} +_020ABE28: + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020ABE34: .word 0x021CCD20 +_020ABE38: .word 0x021CB824 +_020ABE3C: .word 0x021CB850 + + arm_func_start FUN_020ABE40 +FUN_020ABE40: ; 0x020ABE40 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldrb r0, [r5, #0x4] + mov r4, r1 + cmp r0, #0xff + bne _020ABE70 + ldrb r0, [r5, #0x6] + cmp r0, #0x4 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,pc} +_020ABE70: + ldrb r0, [r5, #0x8] + bl FUN_020AC1E8 +_020ABE78: ; 0x020ABE78 + cmp r0, #0x0 + beq _020ABEA4 + mov r1, #0x2 + str r1, [r4, #0x0] + str r0, [r4, #0x4] + mov r2, #0x0 + str r2, [r0, #0x0] + bl FUN_020AC708 + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r5,pc} +_020ABEA4: + ldrb r1, [r5, #0x8] + ldr r0, _020ABEC8 ; =0x021CB838 + bl FUN_020AC5A4 + ldr r0, _020ABEC8 ; =0x021CB838 + mov r1, #0x2 + bl FUN_020AC708 +_020ABEBC: ; 0x020ABEBC + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020ABEC8: .word 0x021CB838 + + arm_func_start FUN_020ABECC +FUN_020ABECC: ; 0x020ABECC + stmdb sp!, {r4-r6,lr} + ldr r2, _020AC070 ; =0x021CB824 + mov r6, r0 + ldr r0, [r2, #0x2c] + mov r5, r1 + cmp r0, #0x2 + bne _020ABF84 + ldrb r1, [r2, #0x30] + ldrb r0, [r6, #0x8] + cmp r1, r0 + bne _020ABF74 + ldr r0, _020AC074 ; =0x021CB850 + mov r1, r6 + bl FUN_020AC350 + mov r4, r0 + mvn r0, #0x2 + cmp r4, r0 + beq _020ABF48 + mvn r0, #0x1 + cmp r4, r0 + beq _020ABF30 + mvn r0, #0x0 + cmp r4, r0 + beq _020ABF48 + b _020ABF50 +_020ABF30: + mov r0, #0xc + str r0, [r5, #0x0] + mov r0, #0x0 + str r0, [r5, #0x4] + mov r0, #0x1 + ldmia sp!, {r4-r6,pc} +_020ABF48: + mov r0, #0x0 + ldmia sp!, {r4-r6,pc} +_020ABF50: + ldr r1, _020AC074 ; =0x021CB850 + mov r0, r6 + bl FUN_020AC4A0 + ldr r1, _020AC074 ; =0x021CB850 + str r0, [r5, #0x0] + str r1, [r5, #0x4] + ldr r0, [r5, #0x4] + str r4, [r0, #0xc] + b _020AC028 +_020ABF74: + mov r0, #0x1 + bl FUN_020AC5E8 +_020ABF7C: ; 0x020ABF7C + mov r0, #0x0 + ldmia sp!, {r4-r6,pc} +_020ABF84: + ldrb r12, [r6, #0x8] + cmp r12, #0x0 + movne r0, #0x1 + movne r1, r0, lsl r12 + ldr r0, _020AC078 ; =0x021CB818 + moveq r1, #0x1 + ldr r0, [r0, #0x0] + ands r0, r0, r1 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} +_020ABFAC: ; 0x020ABFAC + ldr r2, _020AC070 ; =0x021CB824 + mov r4, #0x2 + mov r3, #0x0 + ldr r0, _020AC074 ; =0x021CB850 + mov r1, r6 + strb r12, [r2, #0x30] + str r4, [r2, #0x2c] + str r3, [r2, #0x38] + bl FUN_020AC350 + mov r4, r0 + mvn r0, #0x2 + cmp r4, r0 + beq _020ABFF8 + mvn r0, #0x1 + cmp r4, r0 + beq _020ABFF8 + mvn r0, #0x0 + cmp r4, r0 + bne _020AC008 +_020ABFF8: + ldr r1, _020AC070 ; =0x021CB824 + mov r0, #0x0 + str r0, [r1, #0x2c] + ldmia sp!, {r4-r6,pc} +_020AC008: + ldr r1, _020AC074 ; =0x021CB850 + mov r0, r6 + bl FUN_020AC4A0 + ldr r1, _020AC074 ; =0x021CB850 + str r0, [r5, #0x0] + str r1, [r5, #0x4] + ldr r0, [r5, #0x4] + str r4, [r0, #0xc] +_020AC028: + ldr r0, [r5, #0x0] + cmp r0, #0xa + bne _020AC050 + mov r0, #0x1 + bl FUN_020AC5E8 + bl OS_GetTick + ldr r2, _020AC07C ; =0x021CB81C + str r0, [r2, #0x0] + str r1, [r2, #0x4] + b _020AC068 +_020AC050: + mov r0, #0x0 + bl FUN_020AC5E8 + ldr r0, _020AC07C ; =0x021CB81C + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x4] +_020AC068: + mov r0, #0x1 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020AC070: .word 0x021CB824 +_020AC074: .word 0x021CB850 +_020AC078: .word 0x021CB818 +_020AC07C: .word 0x021CB81C + + arm_func_start FUN_020AC080 +FUN_020AC080: ; 0x020AC080 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + ldrb r2, [r6, #0x4] + mov r5, r1 + cmp r2, #0xff + bne _020AC0C4 + ldrb r2, [r6, #0x6] + cmp r2, #0x4 + bne _020AC0B4 + bl FUN_020ABCF8 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} +_020AC0B4: + cmp r2, #0x3 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,pc} +_020AC0C4: + ldrb r0, [r6, #0x8] + bl FUN_020AC1E8 + movs r4, r0 + beq _020AC154 + mov r1, r6 + bl FUN_020AC350 + mov r7, r0 + mvn r0, #0x1 + cmp r7, r0 + beq _020AC104 + mvn r0, #0x0 + cmp r7, r0 + bne _020AC124 + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,pc} +_020AC104: + mov r0, #0xc + str r0, [r5, #0x0] + mov r0, #0x0 + str r0, [r4, #0x0] + add sp, sp, #0x4 + str r4, [r5, #0x4] + mov r0, #0x1 + ldmia sp!, {r4-r7,pc} +_020AC124: + mov r0, r6 + mov r1, r4 + bl FUN_020AC4A0 +_020AC130: ; 0x020AC130 + str r0, [r5, #0x0] + str r4, [r5, #0x4] + str r7, [r4, #0xc] + ldr r0, [r5, #0x0] + add sp, sp, #0x4 + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + ldmia sp!, {r4-r7,pc} +_020AC154: + ldrb r0, [r6, #0x8] + bl FUN_020AC790 + movs r7, r0 + bne _020AC188 + ldrb r1, [r6, #0x8] + ldr r0, _020AC1E4 ; =0x021CB838 + bl FUN_020AC5A4 + ldr r0, _020AC1E4 ; =0x021CB838 + mov r1, #0x3 + bl FUN_020AC708 + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,pc} +_020AC188: + mov r1, r6 + bl FUN_020AC350 + mov r4, r0 + add r0, r4, #0x2 + cmp r0, #0x1 + bhi _020AC1B4 + mov r0, r7 + bl FUN_020ACC84 + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,pc} +_020AC1B4: + mov r0, r6 + mov r1, r7 + bl FUN_020AC4A0 +_020AC1C0: ; 0x020AC1C0 + str r0, [r5, #0x0] + str r7, [r5, #0x4] + str r4, [r7, #0xc] + ldr r0, [r5, #0x0] + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020AC1E4: .word 0x021CB838 + + arm_func_start FUN_020AC1E8 +FUN_020AC1E8: + ldr r1, _020AC25C ; =0x021CCD20 + ldr r2, _020AC260 ; =0x021CB824 + ldr r1, [r1, #0x10] + ldr r3, [r2, #0x4] + cmp r1, #0x2 + bne _020AC224 + ldr r1, [r2, #0x2c] + cmp r1, #0x0 + beq _020AC21C + ldrb r1, [r2, #0x30] + cmp r1, r0 + ldreq r0, _020AC264 ; =0x021CB850 + bxeq lr +_020AC21C: + mov r0, #0x0 + bx lr +_020AC224: + cmp r3, #0x0 + beq _020AC254 +_020AC22C: + ldr r1, [r3, #0x0] + cmp r1, #0x0 + beq _020AC248 + ldrb r1, [r3, #0x4] + cmp r1, r0 + moveq r0, r3 + bxeq lr +_020AC248: + ldr r3, [r3, #0x14] + cmp r3, #0x0 + bne _020AC22C +_020AC254: + mov r0, #0x0 + bx lr + .balign 4 +_020AC25C: .word 0x021CCD20 +_020AC260: .word 0x021CB824 +_020AC264: .word 0x021CB850 + + arm_func_start FUN_020AC268 +FUN_020AC268: + ldrb r2, [r1, #0x4] + ldrb r12, [r1, #0x6] + cmp r2, #0x0 + addeq r12, r12, #0x5 + cmp r12, #0x0 + blt _020AC288 + cmp r12, #0xb + blt _020AC28C +_020AC288: + mvn r12, #0x0 +_020AC28C: + cmp r12, #0x0 + mvnlt r0, #0x0 + bxlt lr + ldr r1, _020AC2F8 ; =0x021CCD20 + ldr r1, [r1, #0x10] + cmp r1, #0x1 + ldrne r3, [r0, #0xc] + ldrne r2, _020AC2FC ; =0x020FF788 + movne r1, #0xb + mlane r1, r3, r1, r2 + ldrnesb r2, [r12, r1] + bne _020AC2D0 + ldr r3, [r0, #0xc] + ldr r2, _020AC300 ; =0x020FF744 + mov r1, #0xb + mla r1, r3, r1, r2 + ldrsb r2, [r12, r1] +_020AC2D0: + mvn r1, #0x0 + cmp r2, r1 + moveq r0, #0x1 + bxeq lr + mvn r1, #0x1 + cmp r2, r1 + moveq r0, #0x0 + strne r2, [r0, #0xc] + movne r0, #0x1 + bx lr + .balign 4 +_020AC2F8: .word 0x021CCD20 +_020AC2FC: .word 0x020FF788 +_020AC300: .word 0x020FF744 + + arm_func_start FUN_020AC304 +FUN_020AC304: + ldr r1, _020AC34C ; =0x021CB824 + ldr r2, [r1, #0x4] + cmp r2, #0x0 + beq _020AC344 +_020AC314: + ldr r1, [r2, #0x0] + cmp r1, #0x0 + beq _020AC338 + ldr r1, [r2, #0xc] + cmp r1, #0x2 + bne _020AC338 + cmp r0, r2 + movne r0, #0x0 + bxne lr +_020AC338: + ldr r2, [r2, #0x14] + cmp r2, #0x0 + bne _020AC314 +_020AC344: + mov r0, #0x1 + bx lr + .balign 4 +_020AC34C: .word 0x021CB824 + + arm_func_start FUN_020AC350 +FUN_020AC350: ; 0x020AC350 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldrb r2, [r1, #0x4] + ldrb r3, [r1, #0x6] + mov r4, r0 + cmp r2, #0x0 + addeq r3, r3, #0x5 + cmp r3, #0x0 + blt _020AC37C + cmp r3, #0xb + blt _020AC380 +_020AC37C: + mvn r3, #0x0 +_020AC380: + cmp r3, #0x0 + addlt sp, sp, #0x4 + mvnlt r0, #0x0 + ldmltia sp!, {r4-r5,pc} +_020AC390: ; 0x020AC390 + ldr r0, _020AC44C ; =0x021CCD20 + ldr r0, [r0, #0x10] + cmp r0, #0x1 + ldrne r2, [r4, #0xc] + ldrne r1, _020AC450 ; =0x020FF700 + movne r0, #0xb + mlane r0, r2, r0, r1 + ldrnesb r5, [r3, r0] + bne _020AC3C8 + ldr r2, [r4, #0xc] + ldr r1, _020AC454 ; =0x020FF6BC + mov r0, #0xb + mla r0, r2, r0, r1 + ldrsb r5, [r3, r0] +_020AC3C8: + mvn r0, #0x2 + cmp r5, r0 + beq _020AC41C + mvn r0, #0x1 + cmp r5, r0 + beq _020AC3F8 + mvn r0, #0x0 + cmp r5, r0 + bne _020AC440 + add sp, sp, #0x4 + mov r0, r5 + ldmia sp!, {r4-r5,pc} +_020AC3F8: + mov r0, r4 + mov r1, #0x1 + bl FUN_020AC708 + mov r1, #0x0 + str r1, [r4, #0xc] + add sp, sp, #0x4 + mov r0, r5 + str r1, [r4, #0x0] + ldmia sp!, {r4-r5,pc} +_020AC41C: + mov r0, r4 + mov r1, #0x3 + bl FUN_020AC708 + mov r1, #0x0 + str r1, [r4, #0xc] + add sp, sp, #0x4 + mov r0, r5 + str r1, [r4, #0x0] + ldmia sp!, {r4-r5,pc} +_020AC440: + mov r0, r5 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AC44C: .word 0x021CCD20 +_020AC450: .word 0x020FF700 +_020AC454: .word 0x020FF6BC + + arm_func_start FUN_020AC458 +FUN_020AC458: + ldr ip, _020AC498 ; =0x5F564354 + mov r3, #0x10 + str r12, [r1, #0x0] + strb r3, [r1, #0x5] + ldr r3, _020AC49C ; =0x021CCD20 + strb r2, [r1, #0x6] + ldrb r2, [r3, #0x0] + strb r2, [r1, #0x8] + ldrb r2, [r0, #0x4] + mov r0, #0x0 + strb r2, [r1, #0x9] + strb r0, [r1, #0xa] + ldrb r2, [r3, #0x0] + strb r2, [r1, #0xb] + str r0, [r1, #0xc] + bx lr + .balign 4 +_020AC498: .word 0x5F564354 +_020AC49C: .word 0x021CCD20 + + arm_func_start FUN_020AC4A0 +FUN_020AC4A0: + ldrb r2, [r0, #0xb] + strb r2, [r1, #0x5] + ldrb r2, [r0, #0x4] + cmp r2, #0xff + bne _020AC4E8 + ldrb r2, [r0, #0x6] + cmp r2, #0x0 + bne _020AC4D8 + ldrb r3, [r1, #0x4] + cmp r3, #0x0 + movne r2, #0x1 + movne r2, r2, lsl r3 + moveq r2, #0x1 + str r2, [r1, #0x8] +_020AC4D8: + ldrb r1, [r0, #0x6] + ldr r0, _020AC54C ; =0x020FF6AC + ldrb r0, [r0, r1] + bx lr +_020AC4E8: + cmp r2, #0x0 + bne _020AC544 + ldrb r2, [r0, #0x6] + cmp r2, #0x0 + bne _020AC538 + ldr r0, [r1, #0xc] + cmp r0, #0x1 + bne _020AC528 + ldrb r2, [r1, #0x4] + cmp r2, #0x0 + movne r0, #0x1 + movne r0, r0, lsl r2 + moveq r0, #0x1 + str r0, [r1, #0x8] + mov r0, #0x7 + bx lr +_020AC528: + cmp r0, #0x5 + moveq r0, #0x9 + movne r0, #0xc + bx lr +_020AC538: + ldr r0, _020AC550 ; =0x020FF6B4 + ldrb r0, [r0, r2] + bx lr +_020AC544: + mov r0, #0xc + bx lr + .balign 4 +_020AC54C: .word 0x020FF6AC +_020AC550: .word 0x020FF6B4 + + arm_func_start FUN_020AC554 +FUN_020AC554: + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrb r2, [r1, #0x4] + cmp r2, #0xff + bne _020AC57C + ldrb r2, [r1, #0x6] + cmp r2, #0x4 + bne _020AC57C + bl FUN_020AC628 + b _020AC598 +_020AC57C: + ldrb r0, [r0, #0x4] + mov r2, #0x10 + bl FUN_021EB044 +_020AC588: ; 0x020AC588 + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {pc} +_020AC598: + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020AC5A4 +FUN_020AC5A4: ; 0x020AC5A4 + mov r12, r0 + mov r3, #0x6 + mov r2, #0x0 +_020AC5B0: + strb r2, [r12], #0x1 + strb r2, [r12], #0x1 + strb r2, [r12], #0x1 + strb r2, [r12], #0x1 + subs r3, r3, #0x1 + bne _020AC5B0 + ldr r2, _020AC5E4 ; =0x021CCD20 + mov r3, #0x0 + ldr r2, [r2, #0x10] + str r2, [r0, #0x0] + str r3, [r0, #0xc] + strb r1, [r0, #0x4] + bx lr + .balign 4 +_020AC5E4: .word 0x021CCD20 + + arm_func_start FUN_020AC5E8 +FUN_020AC5E8: + stmdb sp!, {r4,lr} + sub sp, sp, #0x10 + mov r4, r0 + mov r3, #0xff + ldr r0, _020AC624 ; =0x021CB850 + add r1, sp, #0x0 + mov r2, #0x4 + strb r3, [sp, #0x4] + bl FUN_020AC458 + ldr r0, _020AC624 ; =0x021CB850 + add r1, sp, #0x0 + strb r4, [sp, #0xa] + bl FUN_020AC628 + add sp, sp, #0x10 + ldmia sp!, {r4,pc} + .balign 4 +_020AC624: .word 0x021CB850 + + arm_func_start FUN_020AC628 +FUN_020AC628: ; 0x020AC628 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r11, r0 + mov r10, r1 + mov r9, #0x0 + bl FUN_020AC6E4 + ldr r4, _020AC6DC ; =0x021CCD20 + ldr r5, _020AC6E0 ; =0x021CB818 + mov r8, r9 + mov r7, #0x1 + mov r6, #0x10 +_020AC654: + cmp r8, #0x0 + movne r1, r7, lsl r8 + ldr r0, [r5, #0x0] + moveq r1, r7 + ands r0, r0, r1 + beq _020AC694 + ldrb r0, [r4, #0x0] + cmp r8, r0 + beq _020AC694 + mov r0, r8 + mov r1, r10 + mov r2, r6 + strb r8, [r10, #0x9] + bl FUN_021EB044 +_020AC68C: ; 0x020AC68C + cmp r0, #0x0 + addne r9, r9, #0x1 +_020AC694: + add r0, r8, #0x1 + and r8, r0, #0xff + cmp r8, #0x20 + blo _020AC654 + ldrb r0, [r10, #0xa] + cmp r0, #0x1 + ldreq r0, _020AC6E0 ; =0x021CB818 + ldreq r0, [r0, #0x0] + streq r0, [r11, #0x8] + beq _020AC6C8 + cmp r0, #0x0 + moveq r0, #0x0 + streq r0, [r11, #0x8] +_020AC6C8: + cmp r9, #0x0 + mvneq r0, #0x3 + movne r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020AC6DC: .word 0x021CCD20 +_020AC6E0: .word 0x021CB818 + + arm_func_start FUN_020AC6E4 +FUN_020AC6E4: ; 0x020AC6E4 + ldrb r2, [r1, #0xa] + cmp r2, #0x1 + ldreqb r2, [r0, #0x4] + ldreq r0, _020AC704 ; =0x021CB818 + streqb r2, [r1, #0xb] + ldreq r0, [r0, #0x0] + streq r0, [r1, #0xc] + bx lr + .balign 4 +_020AC704: .word 0x021CB818 + + arm_func_start FUN_020AC708 +FUN_020AC708: + stmdb sp!, {r4,lr} + sub sp, sp, #0x10 + add r2, sp, #0x0 + mov r3, #0x10 + mov r4, r0 + bl FUN_020ACAE0 +_020AC720: ; 0x020AC720 + cmp r0, #0x0 + addne sp, sp, #0x10 + ldmneia sp!, {r4,pc} +_020AC72C: ; 0x020AC72C + add r1, sp, #0x0 + mov r0, r4 + bl FUN_020AC554 +_020AC738: ; 0x020AC738 + cmp r0, #0x0 + movne r0, #0x0 + mvneq r0, #0x3 + add sp, sp, #0x10 + ldmia sp!, {r4,pc} + + arm_func_start FUN_020AC74C +FUN_020AC74C: ; 0x020AC74C + stmdb sp!, {r4,lr} + sub sp, sp, #0x10 + add r2, sp, #0x0 + mov r3, #0x10 + mov r4, r0 + bl FUN_020ACBD0 +_020AC764: ; 0x020AC764 + cmp r0, #0x0 + addne sp, sp, #0x10 + ldmneia sp!, {r4,pc} +_020AC770: ; 0x020AC770 + add r1, sp, #0x0 + mov r0, r4 + bl FUN_020AC554 +_020AC77C: ; 0x020AC77C + cmp r0, #0x0 + movne r0, #0x0 + mvneq r0, #0x3 + add sp, sp, #0x10 + ldmia sp!, {r4,pc} + + arm_func_start FUN_020AC790 +FUN_020AC790: ; 0x020AC790 + stmdb sp!, {r4,lr} + mov r1, r0 + cmp r1, #0x20 + movcs r0, #0x0 + ldmcsia sp!, {r4,pc} +_020AC7A4: ; 0x020AC7A4 + ldr r0, _020AC7F4 ; =0x021CCD20 + ldrb r0, [r0, #0x0] + cmp r1, r0 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} +_020AC7B8: ; 0x020AC7B8 + ldr r2, _020AC7F8 ; =0x021CB824 + ldr r4, [r2, #0x0] + cmp r4, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} +_020AC7CC: ; 0x020AC7CC + ldr r3, [r4, #0x14] + mov r0, r4 + str r3, [r2, #0x0] + bl FUN_020AC5A4 + ldr r1, _020AC7F8 ; =0x021CB824 + mov r0, r4 + ldr r2, [r1, #0x4] + str r2, [r4, #0x14] + str r4, [r1, #0x4] + ldmia sp!, {r4,pc} + .balign 4 +_020AC7F4: .word 0x021CCD20 +_020AC7F8: .word 0x021CB824 + + arm_func_start FUN_020AC7FC +FUN_020AC7FC: + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r2, #0x10 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {pc} + ldrb r2, [r1, #0x8] + cmp r2, r0 + bne _020AC834 + ldr r0, _020AC894 ; =0x021CCD20 + ldrb r12, [r1, #0x9] + ldrb r2, [r0, #0x0] + cmp r12, r2 + beq _020AC840 +_020AC834: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {pc} +_020AC840: + ldrb r2, [r1, #0x5] + cmp r2, #0x10 + beq _020AC860 + mov r0, r1 + mov r1, r3 + bl FUN_020ABE40 + add sp, sp, #0x4 + ldmia sp!, {pc} +_020AC860: + ldr r0, [r0, #0xc] + cmp r0, #0x0 + bne _020AC880 + mov r0, r1 + mov r1, r3 + bl FUN_020AC080 + add sp, sp, #0x4 + ldmia sp!, {pc} +_020AC880: + mov r0, r1 + mov r1, r3 + bl FUN_020ABECC + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AC894: .word 0x021CCD20 + + arm_func_start FUN_020AC898 +FUN_020AC898: ; 0x020AC898 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + bl OS_GetTick + ldr r2, _020AC950 ; =0x021CCD20 + ldr r3, [r2, #0x10] + cmp r3, #0x2 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,pc} +_020AC8B8: ; 0x020AC8B8 + ldr r2, [r2, #0xc] + cmp r2, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} +_020AC8C8: ; 0x020AC8C8 + ldr r3, _020AC954 ; =0x021CB81C + mov r12, #0x0 + ldr r5, [r3, #0x4] + ldr r4, [r3, #0x0] + cmp r5, r12 + cmpeq r4, r12 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} +_020AC8E8: ; 0x020AC8E8 + ldr r2, _020AC958 ; =0x02106490 + subs r4, r0, r4 + ldr lr, [r2, #0x0] + ldr r0, [r2, #0x4] + sbc r1, r1, r5 + cmp r1, r0 + cmpeq r4, lr + addls sp, sp, #0x4 + ldmlsia sp!, {r4-r5,pc} +_020AC90C: ; 0x020AC90C + ldr r1, _020AC95C ; =0x021CB824 + mov r0, r12 + str r12, [r3, #0x0] + str r12, [r3, #0x4] + str r12, [r1, #0x2c] + str r12, [r1, #0x38] + bl FUN_020AC5E8 + ldr r1, _020AC950 ; =0x021CCD20 + ldr r0, _020AC95C ; =0x021CB824 + ldr r3, [r1, #0x8] + ldrb r0, [r0, #0x30] + ldr r12, [r1, #0x4] + ldr r2, _020AC960 ; =0x021CB850 + mov r1, #0x9 + blx r12 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AC950: .word 0x021CCD20 +_020AC954: .word 0x021CB81C +_020AC958: .word 0x02106490 +_020AC95C: .word 0x021CB824 +_020AC960: .word 0x021CB850 + + arm_func_start FUN_020AC964 +FUN_020AC964: ; 0x020AC964 + ldr r0, _020AC978 ; =0x021CB824 + mov r1, #0x0 + str r1, [r0, #0x4] + str r1, [r0, #0x0] + bx lr + .balign 4 +_020AC978: .word 0x021CB824 + + arm_func_start FUN_020AC97C +FUN_020AC97C: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _020AC9A8 + ldr r1, [r4, #0x4] + cmp r1, #0x0 + beq _020AC9A8 + cmp r1, #0x8 + bls _020AC9B4 +_020AC9A8: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r5,pc} +_020AC9B4: + ldr r1, _020ACA8C ; =0x021CB824 + mov r2, #0x18 + str r0, [r1, #0x0] + ldr r3, [r4, #0x4] + mov r1, #0x0 + mul r2, r3, r2 + bl MI_CpuFill8 + ldr r0, _020ACA90 ; =0x021CB850 + mov r1, #0x0 + mov r2, #0x18 + bl MI_CpuFill8 + ldr r0, _020ACA94 ; =0x021CB838 + mov r1, #0x0 + mov r2, #0x18 + bl MI_CpuFill8 + ldr r12, [r4, #0x4] + mov lr, #0x0 + subs r0, r12, #0x1 + beq _020ACA34 + ldr r1, _020ACA8C ; =0x021CB824 + mov r5, lr + mov r0, #0x18 +_020ACA0C: + ldr r2, [r1, #0x0] + add lr, lr, #0x1 + mla r3, lr, r0, r2 + add r2, r2, r5 + str r3, [r2, #0x14] + ldr r12, [r4, #0x4] + add r5, r5, #0x18 + sub r2, r12, #0x1 + cmp lr, r2 + blo _020ACA0C +_020ACA34: + ldr r3, _020ACA8C ; =0x021CB824 + mov r0, #0x18 + ldr r1, [r3, #0x0] + mov r5, #0x0 + mla r0, r12, r0, r1 + str r5, [r0, #-0x4] + ldr r2, _020ACA98 ; =0x021CB818 + ldr r1, _020ACA9C ; =0x021CB814 + ldr r0, _020ACAA0 ; =0x021CCD20 + ldr lr, _020ACAA4 ; =OS_GetTick + ldr ip, _020ACAA8 ; =0x5D588B65 + ldr r4, _020ACAAC ; =0x00269EC3 + str r5, [r3, #0x4] + str r5, [r2, #0x0] + str r5, [r1, #0x0] + str r5, [r0, #0x14] + str lr, [r3, #0x8] + str r12, [r3, #0xc] + str r4, [r3, #0x10] + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020ACA8C: .word 0x021CB824 +_020ACA90: .word 0x021CB850 +_020ACA94: .word 0x021CB838 +_020ACA98: .word 0x021CB818 +_020ACA9C: .word 0x021CB814 +_020ACAA0: .word 0x021CCD20 +_020ACAA4: .word OS_GetTick +_020ACAA8: .word 0x5D588B65 +_020ACAAC: .word 0x00269EC3 + + arm_func_start FUN_020ACAB0 +FUN_020ACAB0: ; 0x020ACAB0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, _020ACADC ; =0x021CCD20 + ldr r2, [r2, #0x10] + cmp r2, #0x2 + addeq sp, sp, #0x4 + mvneq r0, #0x2 + ldmeqia sp!, {pc} + bl FUN_020AC708 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020ACADC: .word 0x021CCD20 + + arm_func_start FUN_020ACAE0 +FUN_020ACAE0: + stmdb sp!, {r4-r6,lr} + movs r5, r0 + mov r6, r1 + mov r4, r2 + mvneq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} +_020ACAF8: ; 0x020ACAF8 + cmp r3, #0x10 + mvncc r0, #0x0 + ldmccia sp!, {r4-r6,pc} +_020ACB04: ; 0x020ACB04 + cmp r6, #0x0 + blt _020ACB14 + cmp r6, #0x6 + blt _020ACB1C +_020ACB14: + mvn r0, #0x2 + ldmia sp!, {r4-r6,pc} +_020ACB1C: + mov r3, #0x0 + mov r1, r4 + and r2, r6, #0xff + strb r3, [r4, #0x4] + bl FUN_020AC458 +_020ACB30: ; 0x020ACB30 + cmp r6, #0x0 + bne _020ACB80 + ldr r0, _020ACB9C ; =0x021CCD20 + ldr r0, [r0, #0x10] + cmp r0, #0x1 + bne _020ACB68 + ldr r0, [r5, #0xc] + cmp r0, #0x4 + bne _020ACB68 + mov r0, r5 + bl FUN_020AC304 +_020ACB5C: ; 0x020ACB5C + cmp r0, #0x0 + mvneq r0, #0x2 + ldmeqia sp!, {r4-r6,pc} +_020ACB68: + ldrb r1, [r5, #0x4] + cmp r1, #0x0 + movne r0, #0x1 + movne r0, r0, lsl r1 + moveq r0, #0x1 + str r0, [r5, #0x8] +_020ACB80: + mov r0, r5 + mov r1, r4 + bl FUN_020AC268 +_020ACB8C: ; 0x020ACB8C + cmp r0, #0x0 + mvneq r0, #0x2 + movne r0, #0x0 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020ACB9C: .word 0x021CCD20 + + arm_func_start FUN_020ACBA0 +FUN_020ACBA0: ; 0x020ACBA0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, _020ACBCC ; =0x021CCD20 + ldr r2, [r2, #0x10] + cmp r2, #0x2 + addeq sp, sp, #0x4 + mvneq r0, #0x2 + ldmeqia sp!, {pc} + bl FUN_020AC74C + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020ACBCC: .word 0x021CCD20 + + arm_func_start FUN_020ACBD0 +FUN_020ACBD0: + stmdb sp!, {r4-r6,lr} + movs r5, r0 + mov r4, r1 + mov r6, r2 + mvneq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} +_020ACBE8: ; 0x020ACBE8 + cmp r3, #0x10 + mvncc r0, #0x0 + ldmccia sp!, {r4-r6,pc} +_020ACBF4: ; 0x020ACBF4 + ldr r1, _020ACC80 ; =0x021CCD20 + ldr r1, [r1, #0xc] + cmp r1, #0x1 + mvneq r0, #0x2 + ldmeqia sp!, {r4-r6,pc} +_020ACC08: ; 0x020ACC08 + cmp r4, #0x0 + blt _020ACC18 + cmp r4, #0x5 + blt _020ACC20 +_020ACC18: + mvn r0, #0x2 + ldmia sp!, {r4-r6,pc} +_020ACC20: + mov r3, #0xff + mov r1, r6 + and r2, r4, #0xff + strb r3, [r6, #0x4] + bl FUN_020AC458 + mov r0, r5 + mov r1, r6 + bl FUN_020AC268 +_020ACC40: ; 0x020ACC40 + cmp r0, #0x0 + mvneq r0, #0x2 + ldmeqia sp!, {r4-r6,pc} +_020ACC4C: ; 0x020ACC4C + ldr r0, _020ACC80 ; =0x021CCD20 + ldr r0, [r0, #0x10] + cmp r0, #0x1 + bne _020ACC78 + cmp r4, #0x0 + bne _020ACC78 + mov r0, r5 + bl FUN_020AC304 +_020ACC6C: ; 0x020ACC6C + cmp r0, #0x0 + mvneq r0, #0x2 + ldmeqia sp!, {r4-r6,pc} +_020ACC78: + mov r0, #0x0 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020ACC80: .word 0x021CCD20 + + arm_func_start FUN_020ACC84 +FUN_020ACC84: ; 0x020ACC84 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, _020ACD48 ; =0x021CB824 + cmp r0, #0x0 + mov lr, #0x0 + addeq sp, sp, #0x4 + ldr r12, [r2, #0x4] + moveq r0, lr + ldmeqia sp!, {pc} + ldr r1, _020ACD4C ; =0x021CCD20 + ldr r1, [r1, #0x10] + cmp r1, #0x2 + bne _020ACCD0 + ldr r1, _020ACD50 ; =0x021CB850 + add sp, sp, #0x4 + cmp r0, r1 + streq lr, [r2, #0x2c] + mov r0, #0x1 + ldmia sp!, {pc} +_020ACCD0: + cmp r12, #0x0 + beq _020ACD3C +_020ACCD8: + cmp r12, r0 + bne _020ACD2C + mov r3, #0x0 + str r3, [r0, #0x0] + cmp lr, #0x0 + ldrne r1, [r0, #0x14] + strne r1, [lr, #0x14] + bne _020ACD10 + ldr r2, [r12, #0x14] + cmp r2, #0x0 + ldrne r1, _020ACD48 ; =0x021CB824 + strne r2, [r1, #0x4] + ldreq r1, _020ACD48 ; =0x021CB824 + streq r3, [r1, #0x4] +_020ACD10: + ldr r1, _020ACD48 ; =0x021CB824 + add sp, sp, #0x4 + ldr r2, [r1, #0x0] + str r2, [r0, #0x14] + str r0, [r1, #0x0] + mov r0, #0x1 + ldmia sp!, {pc} +_020ACD2C: + mov lr, r12 + ldr r12, [r12, #0x14] + cmp r12, #0x0 + bne _020ACCD8 +_020ACD3C: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020ACD48: .word 0x021CB824 +_020ACD4C: .word 0x021CCD20 +_020ACD50: .word 0x021CB850 + + arm_func_start FUN_020ACD54 +FUN_020ACD54: ; 0x020ACD54 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020ACD8C ; =0x021CCD20 + ldr r1, [r1, #0x10] + cmp r1, #0x0 + beq _020ACD74 + cmp r1, #0x2 + bne _020ACD80 +_020ACD74: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {pc} +_020ACD80: + bl FUN_020AC790 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020ACD8C: .word 0x021CCD20 + + arm_func_start FUN_020ACD90 +FUN_020ACD90: + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + ldr r1, _020ACDC0 ; =0x021CB86C + ldr r2, _020ACDC4 ; =0x021CB868 + ldr r3, [r1, #0x0] + str r0, [r2, #0x0] + str r3, [r4, #0x0] + ldr r0, [r2, #0x0] + str r4, [r1, #0x0] + bl OS_RestoreInterrupts + ldmia sp!, {r4,pc} + .balign 4 +_020ACDC0: .word 0x021CB86C +_020ACDC4: .word 0x021CB868 + + arm_func_start FUN_020ACDC8 +FUN_020ACDC8: ; 0x020ACDC8 + stmdb sp!, {r4,lr} + mov r4, #0x0 + bl OS_DisableInterrupts + ldr r1, _020ACE08 ; =0x021CB86C + ldr r2, _020ACE0C ; =0x021CB868 + ldr r3, [r1, #0x0] + str r0, [r2, #0x0] + cmp r3, #0x0 + ldrne r0, [r3, #0x0] + movne r4, r3 + strne r0, [r1, #0x0] + ldr r0, _020ACE0C ; =0x021CB868 + ldr r0, [r0, #0x0] + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,pc} + .balign 4 +_020ACE08: .word 0x021CB86C +_020ACE0C: .word 0x021CB868 + + arm_func_start FUN_020ACE10 +FUN_020ACE10: + ldr r1, _020ACE28 ; =0x021CB86C + mov r2, #0x0 + ldr r0, _020ACE2C ; =0x021CB870 + str r2, [r1, #0x0] + str r2, [r0, #0x0] + bx lr + .balign 4 +_020ACE28: .word 0x021CB86C +_020ACE2C: .word 0x021CB870 + + arm_func_start FUN_020ACE30 +FUN_020ACE30: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r3, _020ACF00 ; =0xE525982B + mov r2, r1 + umull r1, r4, r2, r3 + ldr r1, _020ACF04 ; =0x021CB870 + mov r4, r4, lsr #0xa + str r0, [r1, #0x0] + cmp r4, #0x4 + blo _020ACE60 + cmp r4, #0x48 + bls _020ACE6C +_020ACE60: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r5,pc} +_020ACE6C: + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,pc} +_020ACE7C: ; 0x020ACE7C + ands r3, r0, #0x1f + movne r0, #0x0 + strne r0, [r1, #0x0] + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,pc} +_020ACE90: ; 0x020ACE90 + mov r1, r0 + mov r0, #0x0 + bl MIi_CpuClearFast + subs r12, r4, #0x1 + mov r5, #0x0 + beq _020ACED0 + ldr r1, _020ACF04 ; =0x021CB870 + ldr r0, _020ACF08 ; =0x00000478 + mov lr, r5 +_020ACEB4: + ldr r3, [r1, #0x0] + add r5, r5, #0x1 + mla r2, r5, r0, r3 + str r2, [r3, lr] + cmp r5, r12 + add lr, lr, r0 + blo _020ACEB4 +_020ACED0: + ldr r1, _020ACF04 ; =0x021CB870 + ldr r0, _020ACF08 ; =0x00000478 + ldr r2, [r1, #0x0] + mov r3, #0x0 + mla r0, r4, r0, r2 + str r3, [r0, #-0x478] + ldr r2, [r1, #0x0] + ldr r1, _020ACF0C ; =0x021CB86C + mov r0, #0x1 + str r2, [r1, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020ACF00: .word 0xE525982B +_020ACF04: .word 0x021CB870 +_020ACF08: .word 0x00000478 +_020ACF0C: .word 0x021CB86C + + arm_func_start FUN_020ACF10 +FUN_020ACF10: ; 0x020ACF10 + mov r2, #0xf + mov r0, #0x44 + mul r1, r2, r0 + ldr r0, _020ACF30 ; =0x02106498 + ldr ip, _020ACF34 ; =FUN_020AD170 + str r2, [r0, #0x8] + str r1, [r0, #0xc] + bx r12 + .balign 4 +_020ACF30: .word 0x02106498 +_020ACF34: .word FUN_020AD170 + + arm_func_start FUN_020ACF38 +FUN_020ACF38: ; 0x020ACF38 + stmdb sp!, {r4,lr} + ldr r3, _020AD124 ; =0x02106498 + mov r12, r1, lsr #0x8 + str r12, [r3, #0x4] + cmp r2, #0x0 + strneb r12, [r2, #0x0] + ldr r2, _020AD124 ; =0x02106498 + ldr r2, [r2, #0x0] + cmp r2, #0x0 + bne _020AD05C + mov r4, #0x0 + mov r12, r4 + ldr r3, _020AD128 ; =0x021CB880 +_020ACF6C: + ldr r2, [r3, r12, lsl #0x2] + add r12, r12, #0x1 + cmp r12, #0x4 + add r4, r4, r2 + blt _020ACF6C + ldr ip, _020AD12C ; =0x040002B0 + mov r3, #0x0 + ldr r2, _020AD130 ; =0x040002B8 + strh r3, [r12, #0x0] + mov r3, r4, lsr #0x2 + str r3, [r2, #0x0] +_020ACF98: + ldrh r2, [r12, #0x0] + ands r2, r2, #0x8000 + bne _020ACF98 + ldr r2, _020AD134 ; =0x040002B4 + cmp r1, #0x0 + ldr r2, [r2, #0x0] + beq _020AD038 + cmp r1, r2, lsl #0x1 + blo _020AD038 + mov r4, #0x0 + mov r3, r4 + ldr r2, _020AD128 ; =0x021CB880 +_020ACFC8: + ldr r1, [r2, r3, lsl #0x2] + add r3, r3, #0x1 + cmp r3, #0x4 + add r4, r4, r1 + blo _020ACFC8 + ldr r3, _020AD12C ; =0x040002B0 + mov r2, #0x0 + ldr r1, _020AD130 ; =0x040002B8 + strh r2, [r3, #0x0] + mov r2, r4, lsr #0x2 + str r2, [r1, #0x0] +_020ACFF4: + ldrh r1, [r3, #0x0] + ands r1, r1, #0x8000 + bne _020ACFF4 + ldr r2, _020AD134 ; =0x040002B4 + mov r1, #0x3 + ldr r2, [r2, #0x0] + ldr r3, _020AD138 ; =0x021CB874 + mul r1, r2, r1 + mov lr, r1, lsr #0x1 + ldr r2, _020AD13C ; =0x021CB878 + mov r12, #0x0 + ldr r1, _020AD124 ; =0x02106498 + mov r4, #0x1 + str lr, [r3, #0x0] + str r12, [r2, #0x0] + str r4, [r1, #0x0] + b _020AD03C +_020AD038: + mov r4, #0x0 +_020AD03C: + ldr r1, _020AD13C ; =0x021CB878 + ldr r3, _020AD128 ; =0x021CB880 + ldr r12, [r1, #0x0] + add r2, r12, #0x1 + and r2, r2, #0x3 + str r0, [r3, r12, lsl #0x2] + str r2, [r1, #0x0] + b _020AD11C +_020AD05C: + ldr r1, _020AD13C ; =0x021CB878 + mov lr, #0x0 + ldr r12, [r1, #0x0] + ldr r3, _020AD128 ; =0x021CB880 + add r2, r12, #0x1 + and r2, r2, #0x3 + mov r4, lr + str r0, [r3, r12, lsl #0x2] + str r2, [r1, #0x0] +_020AD080: + ldr r0, [r3, r4, lsl #0x2] + add r4, r4, #0x1 + cmp r4, #0x4 + add lr, lr, r0 + blt _020AD080 + ldr r2, _020AD12C ; =0x040002B0 + mov r1, #0x0 + ldr r0, _020AD130 ; =0x040002B8 + strh r1, [r2, #0x0] + mov r1, lr, lsr #0x2 + str r1, [r0, #0x0] +_020AD0AC: + ldrh r0, [r2, #0x0] + ands r0, r0, #0x8000 + bne _020AD0AC + ldr r1, _020AD134 ; =0x040002B4 + ldr r0, _020AD138 ; =0x021CB874 + ldr r1, [r1, #0x0] + ldr r0, [r0, #0x0] + cmp r1, r0 + bhi _020AD10C + ldr r2, _020AD140 ; =0x021CB87C + ldr r1, _020AD124 ; =0x02106498 + ldr r3, [r2, #0x0] + ldr r0, [r1, #0x8] + add r3, r3, #0x1 + str r3, [r2, #0x0] + cmp r3, r0 + ble _020AD118 + ldr r0, _020AD13C ; =0x021CB878 + mov r3, #0x0 + str r3, [r0, #0x0] + str r3, [r1, #0x0] + str r3, [r2, #0x0] + mov r0, #0x3 + ldmia sp!, {r4,pc} +_020AD10C: + ldr r0, _020AD140 ; =0x021CB87C + mov r1, #0x0 + str r1, [r0, #0x0] +_020AD118: + mov r4, #0x2 +_020AD11C: + mov r0, r4 + ldmia sp!, {r4,pc} + .balign 4 +_020AD124: .word 0x02106498 +_020AD128: .word 0x021CB880 +_020AD12C: .word 0x040002B0 +_020AD130: .word 0x040002B8 +_020AD134: .word 0x040002B4 +_020AD138: .word 0x021CB874 +_020AD13C: .word 0x021CB878 +_020AD140: .word 0x021CB87C + + arm_func_start FUN_020AD144 +FUN_020AD144: ; 0x020AD144 + stmdb sp!, {lr} + sub sp, sp, #0x4 + movs r1, r0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldr r0, _020AD16C ; =0x02106498 + mov r2, #0x10 + bl MI_CpuCopy8 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AD16C: .word 0x02106498 + + arm_func_start FUN_020AD170 +FUN_020AD170: + ldr r0, _020AD1B8 ; =0x021CB880 + mov r2, #0x0 + mov r1, #0x1000000 +_020AD17C: + str r1, [r0, r2, lsl #0x2] + add r2, r2, #0x1 + cmp r2, #0x4 + blt _020AD17C + ldr r3, _020AD1BC ; =0x021CB878 + mov r12, #0x0 + ldr r1, _020AD1C0 ; =0x02106498 + ldr r2, _020AD1C4 ; =0x021CB874 + ldr r0, _020AD1C8 ; =0x021CB87C + str r12, [r3, #0x0] + str r12, [r2, #0x0] + str r12, [r1, #0x0] + str r12, [r1, #0x4] + str r12, [r0, #0x0] + bx lr + .balign 4 +_020AD1B8: .word 0x021CB880 +_020AD1BC: .word 0x021CB878 +_020AD1C0: .word 0x02106498 +_020AD1C4: .word 0x021CB874 +_020AD1C8: .word 0x021CB87C + + arm_func_start FUN_020AD1CC +FUN_020AD1CC: ; 0x020AD1CC + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r12, r1 + mov r3, r2 + ldr r1, _020AD1F0 ; =0x021CB8D4 + mov r2, r12 + bl FUN_020AD1F4 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AD1F0: .word 0x021CB8D4 + + arm_func_start FUN_020AD1F4 +FUN_020AD1F4: ; 0x020AD1F4 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x14 + mov r4, #0x0 + str r4, [sp, #0x0] + str r4, [sp, #0x4] + mov r9, r4 + movs r8, r2, lsr #0x1 + beq _020AD330 + mov r4, #0xc0000000 + ldr ip, _020AD420 ; =0x021CB8BC + ldr r2, _020AD424 ; =0x021CB8A4 + str r4, [sp, #0xc] +_020AD224: + ldr r4, _020AD428 ; =0x021CB894 + ldr lr, [r2, #0x10] + ldr r7, [r4, #0x0] + mov r4, r9, lsl #0x1 + ldrsh r10, [r1, r4] + ldr r4, _020AD42C ; =0x021CB898 + mov r5, r7, lsl #0x1 + ldr r6, [r4, #0x0] + ldr r4, _020AD430 ; =0x021CBD14 + ldr r11, [r2, #0x14] + strh r10, [r4, r5] + ldr r10, [r12, #0x10] + mov r5, r6, lsl #0x1 + ldrsh r5, [r4, r5] + ldr r4, [r12, #0x14] + mul lr, r10, lr + str r10, [sp, #0x8] + str r10, [r12, #0x14] + mla r10, r4, r11, lr + ldr r4, [r12, #0xc] + ldr r11, [r2, #0xc] + str r4, [r12, #0x10] + mla r10, r4, r11, r10 + ldr r4, [r12, #0x8] + ldr r11, [r2, #0x8] + str r4, [r12, #0xc] + mla r10, r4, r11, r10 + ldr r4, [r12, #0x4] + ldr r11, [r2, #0x4] + str r4, [r12, #0x8] + mla r10, r4, r11, r10 + ldr r4, [r2, #0x0] + str r5, [r12, #0x0] + mla r4, r5, r4, r10 + str r5, [r12, #0x4] + ldr r5, _020AD434 ; =0x3FFF8000 + cmp r4, r5 + movgt r4, r5 + bgt _020AD2C8 + cmp r4, #0xc0000000 + ldrlt r4, [sp, #0xc] +_020AD2C8: + ldr r5, _020AD438 ; =0x000007FF + add r7, r7, #0x1 + and r7, r7, r5 + ldr r5, _020AD428 ; =0x021CB894 + add r6, r6, #0x1 + str r7, [r5, #0x0] + ldr r5, _020AD438 ; =0x000007FF + mov r7, r9, lsl #0x1 + and r6, r6, r5 + ldr r5, _020AD42C ; =0x021CB898 + mov r4, r4, asr #0xf + str r6, [r5, #0x0] + strh r4, [r1, r7] + ldrsh r6, [r1, r7] + ldrsh r4, [r0, r7] + add r9, r9, #0x1 + mul r5, r6, r6 + strh r4, [r1, r7] + ldr r4, [sp, #0x0] + adds r4, r4, r5 + str r4, [sp, #0x0] + ldr r4, [sp, #0x4] + adc r4, r4, r5, asr #0x1f + str r4, [sp, #0x4] + cmp r9, r8 + blo _020AD224 +_020AD330: + ldr r5, _020AD43C ; =0x04000280 + mov r1, #0x1 + strh r1, [r5, #0x0] + ldr r4, _020AD440 ; =0x04000290 + ldr r1, [sp, #0x0] + ldr r2, _020AD444 ; =0x04000298 + str r1, [r4, #0x0] + ldr r1, [sp, #0x4] + str r1, [r4, #0x4] + str r8, [r2, #0x0] + mov r1, #0x0 + str r1, [r2, #0x4] +_020AD360: + ldrh r1, [r5, #0x0] + ands r1, r1, #0x8000 + bne _020AD360 + ldr r1, _020AD448 ; =0x040002A0 + ldr r2, _020AD44C ; =0x040002B0 + ldr r5, [r1, #0x0] + mov r4, #0x0 + ldr r1, _020AD450 ; =0x040002B8 + strh r4, [r2, #0x0] + str r5, [r1, #0x0] +_020AD388: + ldrh r1, [r2, #0x0] + ands r1, r1, #0x8000 + bne _020AD388 + ldr r2, _020AD454 ; =0x040002B4 + mov r1, #0x3 + ldr r4, [r2, #0x0] + mov r2, r3, lsl #0x1 + mul r1, r4, r1 + cmp r2, r1 + ldrhi r0, _020AD458 ; =0x021CB890 + movhi r1, #0x0 + strhih r1, [r0, #0x0] + addhi sp, sp, #0x14 + ldmhiia sp!, {r4-r11,pc} +_020AD3C0: ; 0x020AD3C0 + cmp r3, r4 + ldrlo r1, _020AD458 ; =0x021CB890 + movcc r2, #0x4 + strcch r2, [r1, #0x0] + ldr r1, _020AD458 ; =0x021CB890 + mov r3, #0x0 + ldrsh r2, [r1, #0x0] + cmp r2, #0x4 + addlt r2, r2, #0x1 + strlth r2, [r1, #0x0] + cmp r8, #0x0 + addls sp, sp, #0x14 + ldmlsia sp!, {r4-r11,pc} +_020AD3F4: ; 0x020AD3F4 + ldr r1, _020AD458 ; =0x021CB890 + ldrsh r4, [r1, #0x0] +_020AD3FC: + mov r2, r3, lsl #0x1 + ldrsh r1, [r0, r2] + add r3, r3, #0x1 + cmp r3, r8 + mov r1, r1, asr r4 + strh r1, [r0, r2] + blo _020AD3FC + add sp, sp, #0x14 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020AD420: .word 0x021CB8BC +_020AD424: .word 0x021CB8A4 +_020AD428: .word 0x021CB894 +_020AD42C: .word 0x021CB898 +_020AD430: .word 0x021CBD14 +_020AD434: .word 0x3FFF8000 +_020AD438: .word 0x000007FF +_020AD43C: .word 0x04000280 +_020AD440: .word 0x04000290 +_020AD444: .word 0x04000298 +_020AD448: .word 0x040002A0 +_020AD44C: .word 0x040002B0 +_020AD450: .word 0x040002B8 +_020AD454: .word 0x040002B4 +_020AD458: .word 0x021CB890 + + arm_func_start FUN_020AD45C +FUN_020AD45C: ; 0x020AD45C + ldr ip, _020AD46C ; =MIi_CpuCopyFast + mov r2, r1 + ldr r1, _020AD470 ; =0x021CB8D4 + bx r12 + .balign 4 +_020AD46C: .word MIi_CpuCopyFast +_020AD470: .word 0x021CB8D4 + + arm_func_start FUN_020AD474 +FUN_020AD474: ; 0x020AD474 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020AD4E4 ; =0x021CB894 + mov r3, #0x0 + ldr r2, _020AD4E8 ; =0x0000019D + ldr r0, _020AD4EC ; =0x021CB898 + ldr lr, _020AD4F0 ; =0x021064A8 + str r3, [r1, #0x0] + str r2, [r0, #0x0] + ldr r0, _020AD4F4 ; =0x021CBD14 + mov r12, r3 +_020AD4A0: + mov r1, r3, lsl #0x1 + add r3, r3, #0x1 + strh r12, [r0, r1] + cmp r3, #0x800 + blt _020AD4A0 + ldr r2, _020AD4F8 ; =0x021CB8BC + ldr r0, _020AD4FC ; =0x021CB8A4 + mov r3, #0x0 +_020AD4C0: + str r3, [r2, r12, lsl #0x2] + mov r1, r12, lsl #0x1 + ldrsh r1, [lr, r1] + str r1, [r0, r12, lsl #0x2] + add r12, r12, #0x1 + cmp r12, #0x6 + blt _020AD4C0 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AD4E4: .word 0x021CB894 +_020AD4E8: .word 0x0000019D +_020AD4EC: .word 0x021CB898 +_020AD4F0: .word 0x021064A8 +_020AD4F4: .word 0x021CBD14 +_020AD4F8: .word 0x021CB8BC +_020AD4FC: .word 0x021CB8A4 + + arm_func_start FUN_020AD500 +FUN_020AD500: ; 0x020AD500 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + ldrsh r2, [r0, #0x0] + ldr r6, _020AD5FC ; =0x00000E9F + ldr sb, _020AD600 ; =0x021CB89C + ldr r8, _020AD604 ; =0x021CB8A0 + smulbb r10, r2, r6 + ldr r3, [r9, #0x0] + ldr r2, [r8, #0x0] + ldr r7, _020AD608 ; =0x00000D3E + add r3, r10, r3 + mla r5, r2, r7, r3 + mov r3, r5, asr #0xc + mul r4, r3, r3 + str r5, [r8, #0x0] + rsb r2, r10, #0x0 + mov r12, r1, lsr #0x1 + str r3, [r8, #0x0] + str r2, [r9, #0x0] + cmp r12, #0x1 + mov lr, r4, asr #0x1f + mov r5, #0x1 + bls _020AD5AC +_020AD55C: + mov r2, r5, lsl #0x1 + ldrsh r10, [r0, r2] + ldr r3, [r8, #0x0] + add r2, r0, r5, lsl #0x1 + strh r3, [r2, #-0x2] + smulbb r11, r10, r6 + ldr r2, [r9, #0x0] + rsb r10, r11, #0x0 + add r2, r11, r2 + mla r2, r3, r7, r2 + mov r3, r2, asr #0xc + mul r11, r3, r3 + str r2, [r8, #0x0] + adds r4, r4, r11 + str r10, [r9, #0x0] + add r5, r5, #0x1 + adc lr, lr, r11, asr #0x1f + str r3, [r8, #0x0] + cmp r5, r12 + blo _020AD55C +_020AD5AC: + bic r1, r1, #0x1 + add r0, r0, r1 + ldr r2, _020AD60C ; =0x04000280 + strh r3, [r0, #-0x2] + mov r0, #0x1 + ldr r1, _020AD610 ; =0x04000290 + strh r0, [r2, #0x0] + str r4, [r1, #0x0] + ldr r0, _020AD614 ; =0x04000298 + str lr, [r1, #0x4] + str r12, [r0, #0x0] + mov r1, #0x0 + str r1, [r0, #0x4] +_020AD5E0: + ldrh r0, [r2, #0x0] + ands r0, r0, #0x8000 + bne _020AD5E0 + ldr r0, _020AD618 ; =0x040002A0 + ldr r0, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r11,pc} + .balign 4 +_020AD5FC: .word 0x00000E9F +_020AD600: .word 0x021CB89C +_020AD604: .word 0x021CB8A0 +_020AD608: .word 0x00000D3E +_020AD60C: .word 0x04000280 +_020AD610: .word 0x04000290 +_020AD614: .word 0x04000298 +_020AD618: .word 0x040002A0 + + arm_func_start FUN_020AD61C +FUN_020AD61C: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + movs lr, r3, lsr #0x1 + mov r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,pc} +_020AD634: ; 0x020AD634 + mov r3, #0x8000 + ldr ip, _020AD720 ; =0x00007FFF + rsb r3, r3, #0x0 +_020AD640: + mov r5, r4, lsl #0x1 + ldrsh r6, [r0, r5] + ldrsh r5, [r1, r5] + add r6, r6, r5 + cmp r6, r12 + movgt r6, r12 + bgt _020AD664 + cmp r6, r3 + movlt r6, r3 +_020AD664: + mov r5, r4, lsl #0x1 + add r7, r4, #0x1 + strh r6, [r2, r5] + mov r5, r7, lsl #0x1 + ldrsh r6, [r0, r5] + ldrsh r5, [r1, r5] + add r6, r6, r5 + cmp r6, r12 + movgt r6, r12 + bgt _020AD694 + cmp r6, r3 + movlt r6, r3 +_020AD694: + mov r5, r7, lsl #0x1 + add r7, r4, #0x2 + strh r6, [r2, r5] + mov r5, r7, lsl #0x1 + ldrsh r6, [r0, r5] + ldrsh r5, [r1, r5] + add r6, r6, r5 + cmp r6, r12 + movgt r6, r12 + bgt _020AD6CC + mov r5, #0x8000 + rsb r5, r5, #0x0 + cmp r6, r5 + movlt r6, r3 +_020AD6CC: + mov r5, r7, lsl #0x1 + add r7, r4, #0x3 + strh r6, [r2, r5] + mov r5, r7, lsl #0x1 + ldrsh r6, [r0, r5] + ldrsh r5, [r1, r5] + add r6, r6, r5 + cmp r6, r12 + movgt r6, r12 + bgt _020AD704 + mov r5, #0x8000 + rsb r5, r5, #0x0 + cmp r6, r5 + movlt r6, r3 +_020AD704: + mov r5, r7, lsl #0x1 + add r4, r4, #0x4 + strh r6, [r2, r5] + cmp r4, lr + blo _020AD640 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020AD720: .word 0x00007FFF + + arm_func_start FUN_020AD724 +FUN_020AD724: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + movs r6, r1 + mov r7, r0 + mov r5, r2 + mov r4, r3 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7,pc} +_020AD748: ; 0x020AD748 + ldr r1, [r6, #0x0] + ldr r0, _020AD824 ; =0x5F564354 + cmp r1, r0 + addne sp, sp, #0x4 + movne r0, #0x2 + ldmneia sp!, {r4-r7,pc} +_020AD760: ; 0x020AD760 + ldr r0, _020AD828 ; =0x021CCD20 + ldr r0, [r0, #0x10] + cmp r0, #0x0 + beq _020AD780 + ldr r0, _020AD82C ; =0x021CCD1C + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020AD78C +_020AD780: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,pc} +_020AD78C: + mov r0, #0x0 + str r0, [r4, #0x0] + str r0, [r4, #0x4] + bl OS_GetTick + ldrb r3, [r6, #0x4] + and r2, r3, #0xf0 + cmp r2, #0x40 + bne _020AD7E0 + ldr r2, _020AD830 ; =0x021CCD18 + mov r3, r0 + ldr r4, [r2, #0x0] + mov r0, r7 + add r4, r4, #0x1 + str r4, [r2, #0x0] + str r1, [sp, #0x0] + mov r1, r6 + mov r2, r5 + bl FUN_020AA2A0 + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,pc} +_020AD7E0: + cmp r3, #0x0 + beq _020AD7F0 + cmp r3, #0xff + bne _020AD818 +_020AD7F0: + mov r0, r7 + mov r1, r6 + mov r2, r5 + mov r3, r4 + bl FUN_020AC7FC +_020AD804: ; 0x020AD804 + cmp r0, #0x0 + movne r0, #0x1 + add sp, sp, #0x4 + moveq r0, #0x0 + ldmia sp!, {r4-r7,pc} +_020AD818: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020AD824: .word 0x5F564354 +_020AD828: .word 0x021CCD20 +_020AD82C: .word 0x021CCD1C +_020AD830: .word 0x021CCD18 + + arm_func_start FUN_020AD834 +FUN_020AD834: ; 0x020AD834 + stmdb sp!, {r4,lr} + sub sp, sp, #0x8 + add r3, sp, #0x0 + mov r4, r0 + bl FUN_020AD724 +_020AD848: ; 0x020AD848 + cmp r0, #0x0 + beq _020AD898 + cmp r0, #0x1 + beq _020AD864 + cmp r0, #0x2 + beq _020AD88C + b _020AD898 +_020AD864: + ldr r0, _020AD8A4 ; =0x021CCD20 + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x4] + ldr r3, [r0, #0x8] + ldr r12, [r0, #0x4] + mov r0, r4 + blx r12 + add sp, sp, #0x8 + mov r0, #0x1 + ldmia sp!, {r4,pc} +_020AD88C: + add sp, sp, #0x8 + mov r0, #0x0 + ldmia sp!, {r4,pc} +_020AD898: + mov r0, #0x1 + add sp, sp, #0x8 + ldmia sp!, {r4,pc} + .balign 4 +_020AD8A4: .word 0x021CCD20 + + arm_func_start FUN_020AD8A8 +FUN_020AD8A8: ; 0x020AD8A8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020AD8FC ; =0x021CCD1C + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + ldr r0, _020AD900 ; =0x021CCD14 + ldr r1, [r0, #0x0] + add r1, r1, #0x1 + str r1, [r0, #0x0] + ands r0, r1, #0xf + bne _020AD8E0 + bl FUN_020AC898 +_020AD8E0: + bl FUN_020AA0A4 +_020AD8E4: ; 0x020AD8E4 + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {pc} + bl FUN_020AA1CC + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AD8FC: .word 0x021CCD1C +_020AD900: .word 0x021CCD14 + + arm_func_start FUN_020AD904 +FUN_020AD904: ; 0x020AD904 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FUN_020AAF44 + bl FUN_020AC964 + bl FUN_020ACE10 + ldr r1, _020AD934 ; =0x021CCD20 + mov r2, #0x0 + ldr r0, _020AD938 ; =0x021CCD1C + str r2, [r1, #0x10] + str r2, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AD934: .word 0x021CCD20 +_020AD938: .word 0x021CCD1C + + arm_func_start FUN_020AD93C +FUN_020AD93C: ; 0x020AD93C + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, _020ADA78 ; =0x02000C1C + bl OSi_ReferSymbol +_020AD94C: ; 0x020AD94C + cmp r4, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} +_020AD958: ; 0x020AD958 + ldr r0, _020ADA7C ; =0x021CCD1C + ldr r0, [r0, #0x0] + cmp r0, #0x0 + movne r0, #0x1 + ldmneia sp!, {r4,pc} +_020AD96C: ; 0x020AD96C + ldr r0, [r4, #0x8] + cmp r0, #0x1 + beq _020AD98C + cmp r0, #0x2 + beq _020AD98C + cmp r0, #0x3 + movne r0, #0x0 + ldmneia sp!, {r4,pc} +_020AD98C: + ldr r0, [r4, #0x18] + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,pc} +_020AD99C: ; 0x020AD99C + ldr r2, [r4, #0x10] + cmp r2, #0x0 + beq _020AD9B4 + ldr r0, [r4, #0x14] + cmp r0, #0x0 + bne _020AD9BC +_020AD9B4: + mov r0, #0x0 + ldmia sp!, {r4,pc} +_020AD9BC: + mov r1, r2, lsr #0x1f + rsb r0, r1, r2, lsl #0x1b + adds r0, r1, r0, ror #0x1b + movne r0, #0x0 + ldmneia sp!, {r4,pc} +_020AD9D0: ; 0x020AD9D0 + ldr r0, _020ADA80 ; =0x021CCD20 + mov r1, #0x0 + mov r2, #0x18 + bl MI_CpuFill8 + ldr r2, [r4, #0x18] + ldr r1, _020ADA80 ; =0x021CCD20 + mov r0, #0x0 + str r2, [r1, #0x4] + ldr r2, [r4, #0x1c] + str r2, [r1, #0x8] + ldr r2, [r4, #0x8] + str r0, [r1, #0xc] + str r2, [r1, #0x10] + ldrb r2, [r4, #0xc] + cmp r2, #0x20 + ldmcsia sp!, {r4,pc} +_020ADA10: ; 0x020ADA10 + strb r2, [r1, #0x0] + ldr r0, [r4, #0x10] + ldr r1, [r4, #0x14] + bl FUN_020ACE30 +_020ADA20: ; 0x020ADA20 + cmp r0, #0x0 + bne _020ADA34 + bl FUN_020ACE10 +_020ADA2C: ; 0x020ADA2C + mov r0, #0x0 + ldmia sp!, {r4,pc} +_020ADA34: + mov r0, r4 + bl FUN_020AC97C +_020ADA3C: ; 0x020ADA3C + cmp r0, #0x0 + bne _020ADA50 + bl FUN_020ACE10 +_020ADA48: ; 0x020ADA48 + mov r0, #0x0 + ldmia sp!, {r4,pc} +_020ADA50: + bl FUN_020AAF58 +_020ADA54: ; 0x020ADA54 + cmp r0, #0x0 + ldrne r1, _020ADA7C ; =0x021CCD1C + movne r0, #0x1 + strne r0, [r1, #0x0] + ldmneia sp!, {r4,pc} +_020ADA68: ; 0x020ADA68 + bl FUN_020AC964 + bl FUN_020ACE10 +_020ADA70: ; 0x020ADA70 + mov r0, #0x0 + ldmia sp!, {r4,pc} + .balign 4 +_020ADA78: .word 0x02000C1C +_020ADA7C: .word 0x021CCD1C +_020ADA80: .word 0x021CCD20 + + arm_func_start FUN_020ADA84 +FUN_020ADA84: ; 0x020ADA84 + cmp r1, #0x0 + ldreq r0, [r0, #0x4] + ldrneh r0, [r0, #0xa] + ldrne r0, [r1, r0] + bx lr + + arm_func_start FUN_020ADA98 +FUN_020ADA98: ; 0x020ADA98 + cmp r1, #0x0 + ldreq r0, [r0, #0x0] + ldrneh r0, [r0, #0xa] + addne r0, r1, r0 + ldrne r0, [r0, #0x4] + bx lr + + arm_func_start FUN_020ADAB0 +FUN_020ADAB0: ; 0x020ADAB0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldrh r12, [r0, #0xa] + ldr r3, [r1, r12] + add lr, r1, r12 + cmp r3, #0x0 + ldreq r1, [lr, #0x4] + streq r1, [r0, #0x0] + ldrne r2, [lr, #0x4] + addne r1, r3, r12 + strne r2, [r1, #0x4] + ldr r3, [lr, #0x4] + cmp r3, #0x0 + ldreq r1, [lr, #0x0] + streq r1, [r0, #0x4] + ldrneh r1, [r0, #0xa] + ldrne r2, [lr, #0x0] + strne r2, [r3, r1] + mov r1, #0x0 + str r1, [lr, #0x0] + str r1, [lr, #0x4] + ldrh r1, [r0, #0x8] + sub r1, r1, #0x1 + strh r1, [r0, #0x8] + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020ADB18 +FUN_020ADB18: ; 0x020ADB18 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0x0 + bne _020ADB38 + mov r1, r2 + bl FUN_020ADBE8 + add sp, sp, #0x4 + ldmia sp!, {pc} +_020ADB38: + ldr r3, [r0, #0x0] + cmp r1, r3 + bne _020ADB54 + mov r1, r2 + bl FUN_020ADB8C + add sp, sp, #0x4 + ldmia sp!, {pc} +_020ADB54: + ldrh lr, [r0, #0xa] + ldr r3, [r1, lr] + add r12, r2, lr + str r3, [r2, lr] + str r1, [r12, #0x4] + add r3, r3, lr + str r2, [r3, #0x4] + ldrh r3, [r0, #0xa] + str r2, [r1, r3] + ldrh r1, [r0, #0x8] + add r1, r1, #0x1 + strh r1, [r0, #0x8] + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020ADB8C +FUN_020ADB8C: ; 0x020ADB8C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + bne _020ADBAC + bl FUN_020ADC48 + add sp, sp, #0x4 + ldmia sp!, {pc} +_020ADBAC: + ldrh r3, [r0, #0xa] + mov r2, #0x0 + str r2, [r1, r3] + ldr r2, [r0, #0x0] + add r3, r1, r3 + str r2, [r3, #0x4] + ldrh r2, [r0, #0xa] + ldr r3, [r0, #0x0] + str r1, [r3, r2] + str r1, [r0, #0x0] + ldrh r1, [r0, #0x8] + add r1, r1, #0x1 + strh r1, [r0, #0x8] + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020ADBE8 +FUN_020ADBE8: ; 0x020ADBE8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + bne _020ADC08 + bl FUN_020ADC48 + add sp, sp, #0x4 + ldmia sp!, {pc} +_020ADC08: + ldrh r12, [r0, #0xa] + ldr r3, [r0, #0x4] + mov r2, #0x0 + str r3, [r1, r12] + add r3, r1, r12 + str r2, [r3, #0x4] + ldrh r2, [r0, #0xa] + ldr r3, [r0, #0x4] + add r2, r3, r2 + str r1, [r2, #0x4] + str r1, [r0, #0x4] + ldrh r1, [r0, #0x8] + add r1, r1, #0x1 + strh r1, [r0, #0x8] + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020ADC48 +FUN_020ADC48: ; 0x020ADC48 + ldrh r3, [r0, #0xa] + mov r2, #0x0 + add r12, r1, r3 + str r2, [r12, #0x4] + str r2, [r1, r3] + str r1, [r0, #0x0] + str r1, [r0, #0x4] + ldrh r1, [r0, #0x8] + add r1, r1, #0x1 + strh r1, [r0, #0x8] + bx lr + + arm_func_start FUN_020ADC74 +FUN_020ADC74: ; 0x020ADC74 + mov r2, #0x0 + str r2, [r0, #0x0] + str r2, [r0, #0x4] + strh r2, [r0, #0x8] + strh r1, [r0, #0xa] + bx lr + + arm_func_start FUN_020ADC8C +FUN_020ADC8C: ; 0x020ADC8C + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020ADD30 + mov r1, r4 + bl FUN_020ADAB0 + ldmia sp!, {r4,pc} + + arm_func_start FUN_020ADCA4 +FUN_020ADCA4: + stmdb sp!, {r4,lr} + mov r4, r0 + str r1, [r4, #0x0] + str r2, [r4, #0x18] + str r3, [r4, #0x1c] + mov r0, #0x0 + str r0, [r4, #0x20] + ldr r1, [r4, #0x20] + ldrh r0, [sp, #0x8] + bic r1, r1, #0xff + str r1, [r4, #0x20] + ldr r1, [r4, #0x20] + and r0, r0, #0xff + orr r2, r1, r0 + add r0, r4, #0xc + mov r1, #0x4 + str r2, [r4, #0x20] + bl FUN_020ADC74 + ldr r0, _020ADD28 ; =0x021CCD38 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020ADD14 + ldr r0, _020ADD2C ; =0x021CCD3C + mov r1, #0x4 + bl FUN_020ADC74 + ldr r0, _020ADD28 ; =0x021CCD38 + mov r1, #0x1 + str r1, [r0, #0x0] +_020ADD14: + mov r0, r4 + bl FUN_020ADD30 + mov r1, r4 + bl FUN_020ADBE8 + ldmia sp!, {r4,pc} + .balign 4 +_020ADD28: .word 0x021CCD38 +_020ADD2C: .word 0x021CCD3C + + arm_func_start FUN_020ADD30 +FUN_020ADD30: ; 0x020ADD30 + stmdb sp!, {r4,lr} + ldr r4, _020ADD54 ; =0x021CCD3C + mov r1, r0 + mov r0, r4 + bl FUN_020ADD58 +_020ADD44: ; 0x020ADD44 + cmp r0, #0x0 + addne r4, r0, #0xc + mov r0, r4 + ldmia sp!, {r4,pc} + .balign 4 +_020ADD54: .word 0x021CCD3C + + arm_func_start FUN_020ADD58 +FUN_020ADD58: + stmdb sp!, {r4-r6,lr} + mov r5, r1 + mov r1, #0x0 + mov r6, r0 + bl FUN_020ADA98 + movs r4, r0 + beq _020ADDB8 +_020ADD74: + ldr r0, [r4, #0x18] + cmp r0, r5 + bhi _020ADDA4 + ldr r0, [r4, #0x1c] + cmp r5, r0 + bhs _020ADDA4 + mov r1, r5 + add r0, r4, #0xc + bl FUN_020ADD58 +_020ADD98: ; 0x020ADD98 + cmp r0, #0x0 + moveq r0, r4 + ldmia sp!, {r4-r6,pc} +_020ADDA4: + mov r0, r6 + mov r1, r4 + bl FUN_020ADA98 + movs r4, r0 + bne _020ADD74 +_020ADDB8: + mov r0, #0x0 + ldmia sp!, {r4-r6,pc} + + arm_func_start FUN_020ADDC0 +FUN_020ADDC0: ; 0x020ADDC0 + ldr r0, [r0, #-0xc] + bx lr + + arm_func_start FUN_020ADDC8 +FUN_020ADDC8: ; 0x020ADDC8 + ldr r2, [r0, #0x24] + mov r0, #0x0 + cmp r2, #0x0 + bxeq lr +_020ADDD8: + ldr r1, [r2, #0x4] + ldr r2, [r2, #0xc] + add r0, r0, r1 + cmp r2, #0x0 + bne _020ADDD8 + bx lr + + arm_func_start FUN_020ADDF0 +FUN_020ADDF0: ; 0x020ADDF0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0xc + sub r4, r1, #0x10 + add r5, r0, #0x24 + add r0, sp, #0x0 + mov r1, r4 + bl FUN_020AE528 + mov r1, r4 + add r0, r5, #0x8 + bl FUN_020AE500 + add r1, sp, #0x0 + mov r0, r5 + bl FUN_020AE02C + add sp, sp, #0xc + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_020ADE2C +FUN_020ADE2C: ; 0x020ADE2C + stmdb sp!, {r4-r10,lr} + sub sp, sp, #0x10 + mov r4, r1 + mov r10, r2 + sub r6, r4, #0x10 + add r1, r10, #0x3 + mov r5, r0 + ldr r8, [r6, #0x4] + bic r10, r1, #0x3 + cmp r10, r8 + add r7, r5, #0x24 + addeq sp, sp, #0x10 + moveq r0, r10 + ldmeqia sp!, {r4-r10,pc} +_020ADE64: ; 0x020ADE64 + cmp r10, r8 + bls _020ADF60 + ldr r9, [r7, #0x0] + add r0, r6, #0x10 + cmp r9, #0x0 + add r0, r8, r0 + beq _020ADE94 +_020ADE80: + cmp r9, r0 + beq _020ADE94 + ldr r9, [r9, #0xc] + cmp r9, #0x0 + bne _020ADE80 +_020ADE94: + cmp r9, #0x0 + beq _020ADEB0 + ldr r0, [r9, #0x4] + add r1, r8, #0x10 + add r0, r1, r0 + cmp r10, r0 + bls _020ADEBC +_020ADEB0: + add sp, sp, #0x10 + mov r0, #0x0 + ldmia sp!, {r4-r10,pc} +_020ADEBC: + add r0, sp, #0x0 + mov r1, r9 + bl FUN_020AE528 + mov r0, r7 + mov r1, r9 + bl FUN_020AE500 + ldr r2, [sp, #0x4] + add r3, r10, r4 + ldr r9, [sp, #0x0] + sub r1, r2, r3 + str r3, [sp, #0x0] + cmp r1, #0x10 + strcc r2, [sp, #0x0] + mov r8, r0 + ldr r0, [sp, #0x0] + sub r0, r0, r4 + str r0, [r6, #0x4] + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x0] + sub r0, r1, r0 + cmp r0, #0x10 + blo _020ADF30 + ldr r1, _020ADF9C ; =0x00004652 + add r0, sp, #0x0 + bl FUN_020AE4A0 + mov r1, r0 + mov r0, r7 + mov r2, r8 + bl FUN_020AE4D0 +_020ADF30: + ldr r0, [r5, #0x20] + ldr r1, [sp, #0x0] + and r0, r0, #0xff + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + sub r2, r1, r9 + ands r0, r0, #0x1 + beq _020ADF90 + mov r1, r9 + mov r0, #0x0 + bl MIi_CpuClear32 + b _020ADF90 +_020ADF60: + add r0, r10, r4 + str r0, [sp, #0x8] + ldr r1, [r6, #0x4] + add r0, r6, #0x10 + add r0, r1, r0 + str r0, [sp, #0xc] + add r1, sp, #0x8 + mov r0, r7 + str r10, [r6, #0x4] + bl FUN_020AE02C +_020ADF88: ; 0x020ADF88 + cmp r0, #0x0 + streq r8, [r6, #0x4] +_020ADF90: + ldr r0, [r6, #0x4] + add sp, sp, #0x10 + ldmia sp!, {r4-r10,pc} + .balign 4 +_020ADF9C: .word 0x00004652 + + arm_func_start tempName_NNS_FndAllocFromExpHeapEx +tempName_NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0x0 + moveq r1, #0x1 + add r1, r1, #0x3 + cmp r2, #0x0 + bic r1, r1, #0x3 + blt _020ADFCC + bl FUN_020AE1D8 + add sp, sp, #0x4 + ldmia sp!, {pc} +_020ADFCC: + rsb r2, r2, #0x0 + bl FUN_020AE11C + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start thunk_FUN_020adc8c +thunk_FUN_020adc8c: ; 0x020ADFDC + ldr ip, _020ADFE4 ; =FUN_020ADC8C + bx r12 + .balign 4 +_020ADFE4: .word FUN_020ADC8C + + arm_func_start tempName_NNS_FndCreateExpHeapEx +tempName_NNS_FndCreateExpHeapEx: ; 0x020ADFE8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + add r1, r1, r0 + add r0, r0, #0x3 + bic r1, r1, #0x3 + bic r0, r0, #0x3 + cmp r0, r1 + bhi _020AE014 + sub r3, r1, r0 + cmp r3, #0x4c + bhs _020AE020 +_020AE014: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {pc} +_020AE020: + bl FUN_020AE420 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020AE02C +FUN_020AE02C: + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r5, r1 + ldr r2, [r5, #0x0] + ldr r1, [r5, #0x4] + mov r6, r0 + str r2, [sp, #0x0] + str r1, [sp, #0x4] + ldr r1, [r6, #0x0] + mov r4, #0x0 + cmp r1, #0x0 + beq _020AE0A0 + ldr r0, [r5, #0x0] +_020AE060: + cmp r1, r0 + movcc r4, r1 + blo _020AE094 + ldr r0, [r5, #0x4] + cmp r1, r0 + bne _020AE0A0 + ldr r2, [r1, #0x4] + add r0, r1, #0x10 + add r2, r2, r0 + mov r0, r6 + str r2, [sp, #0x4] + bl FUN_020AE500 + b _020AE0A0 +_020AE094: + ldr r1, [r1, #0xc] + cmp r1, #0x0 + bne _020AE060 +_020AE0A0: + cmp r4, #0x0 + beq _020AE0D4 + ldr r2, [r4, #0x4] + add r1, r4, #0x10 + ldr r0, [r5, #0x0] + add r1, r2, r1 + cmp r1, r0 + bne _020AE0D4 + mov r0, r6 + mov r1, r4 + str r4, [sp, #0x0] + bl FUN_020AE500 + mov r4, r0 +_020AE0D4: + ldr r1, [sp, #0x4] + ldr r0, [sp, #0x0] + sub r0, r1, r0 + cmp r0, #0x10 + addcc sp, sp, #0x8 + movcc r0, #0x0 + ldmccia sp!, {r4-r6,pc} +_020AE0F0: ; 0x020AE0F0 + ldr r1, _020AE118 ; =0x00004652 + add r0, sp, #0x0 + bl FUN_020AE4A0 + mov r1, r0 + mov r0, r6 + mov r2, r4 + bl FUN_020AE4D0 + mov r0, #0x1 + add sp, sp, #0x8 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020AE118: .word 0x00004652 + + arm_func_start FUN_020AE11C +FUN_020AE11C: ; 0x020AE11C + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + add r0, r0, #0x24 + ldrh r4, [r0, #0x12] + mov r3, r1 + mvn lr, #0x0 + and r1, r4, #0x1 + mov r1, r1, lsl #0x10 + movs r1, r1, lsr #0x10 + moveq r5, #0x1 + mov r1, #0x0 + ldr r4, [r0, #0x4] + movne r5, #0x0 + mov r12, r1 + cmp r4, #0x0 + beq _020AE1B0 + sub r2, r2, #0x1 + mvn r2, r2 +_020AE164: + ldr r8, [r4, #0x4] + add r9, r4, #0x10 + add r6, r8, r9 + sub r6, r6, r3 + and r7, r2, r6 + subs r6, r7, r9 + bmi _020AE1A4 + cmp lr, r8 + bls _020AE1A4 + mov r1, r4 + mov lr, r8 + mov r12, r7 + cmp r5, #0x0 + bne _020AE1B0 + cmp r8, r3 + beq _020AE1B0 +_020AE1A4: + ldr r4, [r4, #0x8] + cmp r4, #0x0 + bne _020AE164 +_020AE1B0: + cmp r1, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,pc} +_020AE1C0: ; 0x020AE1C0 + mov r4, #0x1 + mov r2, r12 + str r4, [sp, #0x0] + bl FUN_020AE298 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + + arm_func_start FUN_020AE1D8 +FUN_020AE1D8: ; 0x020AE1D8 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + add r0, r0, #0x24 + ldrh r4, [r0, #0x12] + mov r3, r1 + ldr r5, [r0, #0x0] + and r1, r4, #0x1 + mov r1, r1, lsl #0x10 + movs r1, r1, lsr #0x10 + moveq r6, #0x1 + mov r1, #0x0 + movne r6, #0x0 + mov lr, r1 + cmp r5, #0x0 + mvn r4, #0x0 + beq _020AE270 + sub r12, r2, #0x1 + mvn r2, r12 +_020AE220: + add r8, r5, #0x10 + add r7, r12, r8 + and r9, r2, r7 + sub r7, r9, r8 + ldr r8, [r5, #0x4] + add r7, r3, r7 + cmp r8, r7 + blo _020AE264 + cmp r4, r8 + bls _020AE264 + mov r1, r5 + mov r4, r8 + mov lr, r9 + cmp r6, #0x0 + bne _020AE270 + cmp r8, r3 + beq _020AE270 +_020AE264: + ldr r5, [r5, #0xc] + cmp r5, #0x0 + bne _020AE220 +_020AE270: + cmp r1, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9,pc} +_020AE280: ; 0x020AE280 + mov r4, #0x0 + mov r2, lr + str r4, [sp, #0x0] + bl FUN_020AE298 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + + arm_func_start FUN_020AE298 +FUN_020AE298: ; 0x020AE298 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x18 + mov r7, r0 + add r0, sp, #0x0 + mov r8, r1 + mov r6, r2 + mov r5, r3 + bl FUN_020AE528 + ldr r3, [sp, #0x4] + sub r4, r6, #0x10 + add r2, r5, r6 + mov r0, r7 + mov r1, r8 + str r4, [sp, #0x4] + str r3, [sp, #0xc] + str r2, [sp, #0x8] + bl FUN_020AE500 + ldr r2, [sp, #0x0] + ldr r1, [sp, #0x4] + mov r5, r0 + sub r0, r1, r2 + cmp r0, #0x10 + strcc r2, [sp, #0x4] + blo _020AE318 + ldr r1, _020AE418 ; =0x00004652 + add r0, sp, #0x0 + bl FUN_020AE4A0 + mov r1, r0 + mov r0, r7 + mov r2, r5 + bl FUN_020AE4D0 + mov r5, r0 +_020AE318: + ldr r1, [sp, #0xc] + ldr r0, [sp, #0x8] + sub r0, r1, r0 + cmp r0, #0x10 + strcc r1, [sp, #0x8] + blo _020AE34C + ldr r1, _020AE418 ; =0x00004652 + add r0, sp, #0x8 + bl FUN_020AE4A0 + mov r1, r0 + mov r0, r7 + mov r2, r5 + bl FUN_020AE4D0 +_020AE34C: + ldr r0, [r7, #-0x4] + ldr r1, [sp, #0x4] + and r0, r0, #0xff + mov r0, r0, lsl #0x10 + ldr r2, [sp, #0x8] + mov r0, r0, lsr #0x10 + sub r2, r2, r1 + ands r0, r0, #0x1 + beq _020AE378 + mov r0, #0x0 + bl MIi_CpuClear32 +_020AE378: + ldr r2, [sp, #0x8] + ldr r1, _020AE41C ; =0x00005544 + add r0, sp, #0x10 + str r4, [sp, #0x10] + str r2, [sp, #0x14] + bl FUN_020AE4A0 + mov r1, r0 + ldrh r3, [r1, #0x2] + ldrh r2, [sp, #0x30] + add r0, r7, #0x8 + bic r3, r3, #0x8000 + strh r3, [r1, #0x2] + ldrh r3, [r1, #0x2] + and r2, r2, #0x1 + orr r2, r3, r2, lsl #0xf + strh r2, [r1, #0x2] + ldrh r2, [r1, #0x2] + ldr r3, [sp, #0x4] + bic r2, r2, #0x7f00 + strh r2, [r1, #0x2] + sub r2, r1, r3 + mov r2, r2, lsl #0x10 + mov r2, r2, lsr #0x10 + ldrh r3, [r1, #0x2] + and r2, r2, #0x7f + orr r2, r3, r2, lsl #0x8 + strh r2, [r1, #0x2] + ldrh r2, [r1, #0x2] + ldrh r3, [r7, #0x10] + bic r2, r2, #0xff + strh r2, [r1, #0x2] + ldrh r2, [r1, #0x2] + and r3, r3, #0xff + orr r2, r2, r3 + strh r2, [r1, #0x2] + ldr r2, [r7, #0xc] + bl FUN_020AE4D0 + mov r0, r6 + add sp, sp, #0x18 + ldmia sp!, {r4-r8,pc} + .balign 4 +_020AE418: .word 0x00004652 +_020AE41C: .word 0x00005544 + + arm_func_start FUN_020AE420 +FUN_020AE420: ; 0x020AE420 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0xc + mov r5, r0 + mov r3, r1 + add r4, r5, #0x24 + str r2, [sp, #0x0] + ldr r1, _020AE498 ; =0x45585048 + add r2, r4, #0x14 + bl FUN_020ADCA4 +_020AE444: ; 0x020AE444 + mov r0, #0x0 + strh r0, [r4, #0x10] + strh r0, [r4, #0x12] + ldrh r2, [r4, #0x12] + ldr r1, _020AE49C ; =0x00004652 + add r0, sp, #0x4 + bic r2, r2, #0x1 + strh r2, [r4, #0x12] + ldr r2, [r5, #0x18] + str r2, [sp, #0x4] + ldr r2, [r5, #0x1c] + str r2, [sp, #0x8] + bl FUN_020AE4A0 + str r0, [r5, #0x24] + str r0, [r4, #0x4] + mov r1, #0x0 + str r1, [r4, #0x8] + mov r0, r5 + str r1, [r4, #0xc] + add sp, sp, #0xc + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AE498: .word 0x45585048 +_020AE49C: .word 0x00004652 + + arm_func_start FUN_020AE4A0 +FUN_020AE4A0: ; 0x020AE4A0 + ldr r3, [r0, #0x0] + mov r2, #0x0 + strh r1, [r3, #0x0] + strh r2, [r3, #0x2] + ldr r1, [r0, #0x4] + add r0, r3, #0x10 + sub r0, r1, r0 + str r0, [r3, #0x4] + str r2, [r3, #0x8] + mov r0, r3 + str r2, [r3, #0xc] + bx lr + + arm_func_start FUN_020AE4D0 +FUN_020AE4D0: ; 0x020AE4D0 + str r2, [r1, #0x8] + cmp r2, #0x0 + ldrne r3, [r2, #0xc] + strne r1, [r2, #0xc] + ldreq r3, [r0, #0x0] + streq r1, [r0, #0x0] + str r3, [r1, #0xc] + cmp r3, #0x0 + strne r1, [r3, #0x8] + streq r1, [r0, #0x4] + mov r0, r1 + bx lr + + arm_func_start FUN_020AE500 +FUN_020AE500: ; 0x020AE500 + ldr r2, [r1, #0x8] + ldr r1, [r1, #0xc] + cmp r2, #0x0 + strne r1, [r2, #0xc] + streq r1, [r0, #0x0] + cmp r1, #0x0 + strne r2, [r1, #0x8] + streq r2, [r0, #0x4] + mov r0, r2 + bx lr + + arm_func_start FUN_020AE528 +FUN_020AE528: ; 0x020AE528 + ldrh r2, [r1, #0x2] + add r3, r1, #0x10 + mov r2, r2, asr #0x8 + and r2, r2, #0x7f + mov r2, r2, lsl #0x10 + sub r2, r1, r2, lsr #0x10 + str r2, [r0, #0x0] + ldr r1, [r1, #0x4] + add r1, r1, r3 + str r1, [r0, #0x4] + bx lr + + arm_func_start FUN_020AE554 +FUN_020AE554: ; 0x020AE554 + add r2, r0, #0x24 + cmp r1, #0x0 + ldr r3, [r2, #0x8] + beq _020AE584 + cmp r3, #0x0 + beq _020AE584 +_020AE56C: + ldr r0, [r3, #0x0] + cmp r0, r1 + beq _020AE584 + ldr r3, [r3, #0xc] + cmp r3, #0x0 + bne _020AE56C +_020AE584: + cmp r3, #0x0 + moveq r0, #0x0 + bxeq lr + ldr r1, [r3, #0x4] + mov r0, #0x1 + str r1, [r2, #0x0] + ldr r1, [r3, #0x8] + str r1, [r2, #0x4] + ldr r1, [r3, #0xc] + str r1, [r2, #0x8] + bx lr + + arm_func_start FUN_020AE5B0 +FUN_020AE5B0: ; 0x020AE5B0 + stmdb sp!, {r4-r6,lr} + add r4, r0, #0x24 + ldr r5, [r0, #0x24] + mov r6, r1 + mov r0, r4 + mov r1, #0x10 + mov r2, #0x4 + bl FUN_020AE77C +_020AE5D0: ; 0x020AE5D0 + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,pc} +_020AE5DC: ; 0x020AE5DC + str r6, [r0, #0x0] + str r5, [r0, #0x4] + ldr r1, [r4, #0x4] + str r1, [r0, #0x8] + ldr r1, [r4, #0x8] + str r1, [r0, #0xc] + str r0, [r4, #0x8] + mov r0, #0x1 + ldmia sp!, {r4-r6,pc} + + arm_func_start FUN_020AE600 +FUN_020AE600: ; 0x020AE600 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r5, r0 + ands r1, r4, #0x1 + beq _020AE61C + bl FUN_020AE6F8 +_020AE61C: + ands r0, r4, #0x2 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} +_020AE628: ; 0x020AE628 + mov r0, r5 + bl FUN_020AE6C8 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_020AE638 +FUN_020AE638: ; 0x020AE638 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0x0 + moveq r1, #0x1 + add r1, r1, #0x3 + add r0, r0, #0x24 + cmp r2, #0x0 + bic r1, r1, #0x3 + blt _020AE668 + bl FUN_020AE77C + add sp, sp, #0x4 + ldmia sp!, {pc} +_020AE668: + rsb r2, r2, #0x0 + bl FUN_020AE710 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start thunk_FUN_020adc8c_2 +thunk_FUN_020adc8c_2: ; 0x020AE678 + ldr ip, _020AE680 ; =FUN_020ADC8C + bx r12 + .balign 4 +_020AE680: .word FUN_020ADC8C + + arm_func_start FUN_020AE684 +FUN_020AE684: ; 0x020AE684 + stmdb sp!, {lr} + sub sp, sp, #0x4 + add r1, r1, r0 + add r0, r0, #0x3 + bic r1, r1, #0x3 + bic r0, r0, #0x3 + cmp r0, r1 + bhi _020AE6B0 + sub r3, r1, r0 + cmp r3, #0x30 + bhs _020AE6BC +_020AE6B0: + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {pc} +_020AE6BC: + bl FUN_020AE7E0 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020AE6C8 +FUN_020AE6C8: ; 0x020AE6C8 + add r2, r0, #0x24 + ldr r3, [r2, #0x8] + cmp r3, #0x0 + beq _020AE6EC +_020AE6D8: + ldr r1, [r0, #0x1c] + str r1, [r3, #0x8] + ldr r3, [r3, #0xc] + cmp r3, #0x0 + bne _020AE6D8 +_020AE6EC: + ldr r0, [r0, #0x1c] + str r0, [r2, #0x4] + bx lr + + arm_func_start FUN_020AE6F8 +FUN_020AE6F8: ; 0x020AE6F8 + ldr r1, [r0, #0x18] + add r2, r0, #0x24 + str r1, [r0, #0x24] + mov r0, #0x0 + str r0, [r2, #0x8] + bx lr + + arm_func_start FUN_020AE710 +FUN_020AE710: ; 0x020AE710 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r3, [r5, #0x4] + sub r0, r2, #0x1 + mvn r2, r0 + sub r1, r3, r1 + ldr r0, [r5, #0x0] + and r4, r2, r1 + cmp r4, r0 + addcc sp, sp, #0x4 + movcc r0, #0x0 + ldmccia sp!, {r4-r5,pc} +_020AE744: ; 0x020AE744 + ldr r0, [r5, #-0x4] + sub r2, r3, r4 + and r0, r0, #0xff + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + ands r0, r0, #0x1 + beq _020AE76C + mov r1, r4 + mov r0, #0x0 + bl MIi_CpuClear32 +_020AE76C: + mov r0, r4 + str r4, [r5, #0x4] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + + arm_func_start FUN_020AE77C +FUN_020AE77C: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldr r0, [r6, #0x0] + sub r2, r2, #0x1 + mvn r3, r2 + add r2, r2, r0 + and r5, r3, r2 + ldr r2, [r6, #0x4] + add r4, r1, r5 + cmp r4, r2 + movhi r0, #0x0 + ldmhiia sp!, {r4-r6,pc} +_020AE7AC: ; 0x020AE7AC + ldr r1, [r6, #-0x4] + sub r2, r4, r0 + and r1, r1, #0xff + mov r1, r1, lsl #0x10 + mov r1, r1, lsr #0x10 + ands r1, r1, #0x1 + beq _020AE7D4 + mov r1, r0 + mov r0, #0x0 + bl MIi_CpuClear32 +_020AE7D4: + mov r0, r5 + str r4, [r6, #0x0] + ldmia sp!, {r4-r6,pc} + + arm_func_start FUN_020AE7E0 +FUN_020AE7E0: ; 0x020AE7E0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r3, r1 + add r4, r5, #0x24 + str r2, [sp, #0x0] + ldr r1, _020AE828 ; =0x46524D48 + add r2, r4, #0xc + bl FUN_020ADCA4 + ldr r0, [r5, #0x18] + mov r1, #0x0 + str r0, [r5, #0x24] + ldr r2, [r5, #0x1c] + mov r0, r5 + str r2, [r4, #0x4] + str r1, [r4, #0x8] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AE828: .word 0x46524D48 + + arm_func_start FUN_020AE82C +FUN_020AE82C: ; 0x020AE82C + ldr ip, _020AE848 ; =0x020FF7CC + mov r3, #0x0 + str r12, [r0, #0x0] + str r1, [r0, #0x4] + str r2, [r0, #0x8] + str r3, [r0, #0xc] + bx lr + .balign 4 +_020AE848: .word 0x020FF7CC + + arm_func_start FUN_020AE84C +FUN_020AE84C: ; 0x020AE84C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x0] + ldr r2, [r2, #0x4] + blx r2 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020AE868 +FUN_020AE868: ; 0x020AE868 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x0] + ldr r2, [r2, #0x0] + blx r2 + add sp, sp, #0x4 + ldmia sp!, {pc} + + arm_func_start FUN_020AE884 +FUN_020AE884: ; 0x020AE884 + ldr ip, _020AE890 ; =FUN_020ADDF0 + ldr r0, [r0, #0x4] + bx r12 + .balign 4 +_020AE890: .word FUN_020ADDF0 + + arm_func_start FUN_020AE894 +FUN_020AE894: ; 0x020AE894 + ldr ip, _020AE8A8 ; =tempName_NNS_FndAllocFromExpHeapEx + mov r2, r0 + ldr r0, [r2, #0x4] + ldr r2, [r2, #0x8] + bx r12 + .balign 4 +_020AE8A8: .word tempName_NNS_FndAllocFromExpHeapEx + + arm_func_start FUN_020AE8AC +FUN_020AE8AC: ; 0x020AE8AC + mvn r0, #0x0 + bx lr + + arm_func_start FUN_020AE8B4 +FUN_020AE8B4: ; 0x020AE8B4 + mov r0, #0x0 + bx lr + + arm_func_start FUN_020AE8BC +FUN_020AE8BC: ; 0x020AE8BC + mvn r0, #0x0 + bx lr + + arm_func_start FUN_020AE8C4 +FUN_020AE8C4: ; 0x020AE8C4 + mov r0, #0x0 + bx lr + + arm_func_start FUN_020AE8CC +FUN_020AE8CC: ; 0x020AE8CC + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, #0x0 + ldr r3, _020AE914 ; =0x021064E4 + mov r12, lr + mov r2, #0x1 +_020AE8E4: + ldr r1, [r0, r12, lsl #0x2] + add lr, lr, #0x1 + str r1, [r3, #0x0] + ldr r1, [r0, r2, lsl #0x2] + cmp lr, #0x5 + str r1, [r3, #0x4] + add r12, r12, #0x2 + add r3, r3, #0x18 + add r2, r2, #0x2 + blt _020AE8E4 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AE914: .word 0x021064E4 + + arm_func_start FUN_020AE918 +FUN_020AE918: ; 0x020AE918 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, #0x0 + ldr ip, _020AE960 ; =0x021064E4 + mov r3, lr + mov r2, #0x1 +_020AE930: + ldr r1, [r12, #0x0] + add lr, lr, #0x1 + str r1, [r0, r3, lsl #0x2] + ldr r1, [r12, #0x4] + cmp lr, #0x5 + str r1, [r0, r2, lsl #0x2] + add r12, r12, #0x18 + add r3, r3, #0x2 + add r2, r2, #0x2 + blt _020AE930 + add sp, sp, #0x4 + ldmia sp!, {pc} + .balign 4 +_020AE960: .word 0x021064E4 + + arm_func_start FUN_020AE964 +FUN_020AE964: ; 0x020AE964 + mov r0, #0x0 + bx lr + + arm_func_start FUN_020AE96C +FUN_020AE96C: ; 0x020AE96C + stmdb sp!, {r4-r10,lr} + cmp r0, #0x0 + moveq r7, #0x10 + addne r0, r0, #0xf + bicne r7, r0, #0xf + ldr r0, _020AEADC ; =0x0007FFF0 + cmp r7, r0 + movcs r0, #0x0 + ldmcsia sp!, {r4-r10,pc} +_020AE990: ; 0x020AE990 + cmp r1, #0x0 + beq _020AEA5C + mov lr, r7, lsr #0x1 + mov r6, #0x0 + ldr r2, _020AEAE0 ; =0x02106514 + ldr r3, _020AEAE4 ; =0x021064FC + ldr ip, _020AEAE8 ; =0x021064C8 + mov r0, r6 +_020AE9B0: + ldr r5, [r12, r6, lsl #0x2] + ldr r4, [r5, #0x8] + cmp r4, #0x0 + beq _020AEA48 + ldr r9, [r5, #0x4] + ldr r4, [r5, #0x0] + sub r4, r9, r4 + cmp r4, r7 + blo _020AEA48 + ldrh r4, [r5, #0x10] + cmp r4, #0x0 + beq _020AE9EC + cmp r4, #0x3 + beq _020AE9F4 + b _020AE9FC +_020AE9EC: + mov r4, r3 + b _020AEA00 +_020AE9F4: + mov r4, r2 + b _020AEA00 +_020AE9FC: + mov r4, r0 +_020AEA00: + ldr r9, [r4, #0x8] + cmp r9, #0x0 + beq _020AEA48 + ldr r10, [r4, #0x4] + ldr r9, [r4, #0x0] + sub r9, r10, r9 + cmp r9, lr + blo _020AEA48 + ldr r3, [r5, #0x0] + mov r0, #0x1 + add r2, r3, r7 + str r2, [r5, #0x0] + ldr r2, [r4, #0x0] + add r2, r2, lr + str r2, [r4, #0x0] + ldr r2, [r5, #0x14] + add r8, r3, r2 + b _020AEAB8 +_020AEA48: + add r6, r6, #0x1 + cmp r6, #0x2 + blt _020AE9B0 + mov r0, #0x0 + b _020AEAB8 +_020AEA5C: + ldr r3, _020AEAEC ; =0x021064D0 + mov r5, #0x0 +_020AEA64: + ldr r4, [r3, r5, lsl #0x2] + ldr r0, [r4, #0x8] + cmp r0, #0x0 + beq _020AEAA8 + ldr r2, [r4, #0x4] + ldr r0, [r4, #0x0] + sub r0, r2, r0 + cmp r0, r7 + blo _020AEAA8 + ldr r2, [r4, #0x4] + mov r0, #0x1 + sub r2, r2, r7 + str r2, [r4, #0x4] + ldr r3, [r4, #0x4] + ldr r2, [r4, #0x14] + add r8, r3, r2 + b _020AEAB8 +_020AEAA8: + add r5, r5, #0x1 + cmp r5, #0x5 + blt _020AEA64 + mov r0, #0x0 +_020AEAB8: + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r10,pc} +_020AEAC4: ; 0x020AEAC4 + ldr r0, _020AEAF0 ; =0x0000FFFF + mov r2, r7, lsr #0x4 + and r0, r0, r8, lsr #0x3 + orr r0, r0, r2, lsl #0x10 + orr r0, r0, r1, lsl #0x1f + ldmia sp!, {r4-r10,pc} + .balign 4 +_020AEADC: .word 0x0007FFF0 +_020AEAE0: .word 0x02106514 +_020AEAE4: .word 0x021064FC +_020AEAE8: .word 0x021064C8 +_020AEAEC: .word 0x021064D0 +_020AEAF0: .word 0x0000FFFF + + arm_func_start FUN_020AEAF4 +FUN_020AEAF4: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r0, _020AEB68 ; =0x021CCD48 + mov r6, #0x0 + ldrh r7, [r0, #0x0] + ldr r5, _020AEB6C ; =0x021064E4 + mov lr, r6 + cmp r7, #0x1 + addhi r7, r7, #0x1 + mov r1, r6 + mov r3, r6 + mov r4, #0x1 + mov r0, #0x20000 + mov r2, #0x10000 +_020AEB2C: + cmp r6, r7 + strlt r4, [r5, #0x8] + strge lr, [r5, #0x8] + ldr r12, [r5, #0xc] + add r6, r6, #0x1 + cmp r12, #0x0 + strne r3, [r5, #0x0] + strne r2, [r5, #0x4] + streq r1, [r5, #0x0] + streq r0, [r5, #0x4] + cmp r6, #0x5 + add r5, r5, #0x18 + blt _020AEB2C + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020AEB68: .word 0x021CCD48 +_020AEB6C: .word 0x021064E4 + + arm_func_start FUN_020AEB70 +FUN_020AEB70: ; 0x020AEB70 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + cmp r5, #0x2 + bhi _020AEBA8 + mov r12, #0x1 + mov r0, #0x4 + mov r1, #0x3 + mov r2, #0x2 + mov r3, #0x0 + str r12, [sp, #0x0] + bl FUN_020AEC10 + b _020AEBC4 +_020AEBA8: + mov r12, #0x1 + mov r0, #0x4 + mov r1, #0x3 + mov r2, #0x0 + mov r3, #0x2 + str r12, [sp, #0x0] + bl FUN_020AEC10 +_020AEBC4: + ldr r0, _020AEBFC ; =0x021CCD48 + strh r5, [r0, #0x0] + bl FUN_020AEAF4 +_020AEBD0: ; 0x020AEBD0 + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,pc} +_020AEBDC: ; 0x020AEBDC + ldr r3, _020AEC00 ; =FUN_020AE96C + ldr r1, _020AEC04 ; =0x021064B8 + ldr r2, _020AEC08 ; =FUN_020AE964 + ldr r0, _020AEC0C ; =0x021064BC + str r3, [r1, #0x0] + str r2, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AEBFC: .word 0x021CCD48 +_020AEC00: .word FUN_020AE96C +_020AEC04: .word 0x021064B8 +_020AEC08: .word FUN_020AE964 +_020AEC0C: .word 0x021064BC + + arm_func_start FUN_020AEC10 +FUN_020AEC10: ; 0x020AEC10 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr lr, [sp, #0x18] + ldr r6, _020AEC58 ; =0x021064E4 + mov r12, #0x18 + mla r7, r0, r12, r6 + ldr r0, _020AEC5C ; =0x021064D0 + mla r5, r1, r12, r6 + mla r4, r2, r12, r6 + mla r2, r3, r12, r6 + mla r1, lr, r12, r6 + str r7, [r0, #0x0] + str r5, [r0, #0x4] + str r4, [r0, #0x8] + str r2, [r0, #0xc] + str r1, [r0, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,pc} + .balign 4 +_020AEC58: .word 0x021064E4 +_020AEC5C: .word 0x021064D0 + + arm_func_start FUN_020AEC60 +FUN_020AEC60: + ldr r0, _020AEC78 ; =0x021CCD4C + mov r2, #0x0 + ldr r1, [r0, #0x8] + str r2, [r0, #0x0] + str r1, [r0, #0x4] + bx lr + .balign 4 +_020AEC78: .word 0x021CCD4C + + arm_func_start FUN_020AEC7C +FUN_020AEC7C: ; 0x020AEC7C + ldr r2, [r0, #0x0] + ldr r1, _020AEC94 ; =0x021CCD4C + str r2, [r1, #0x0] + ldr r0, [r0, #0x4] + str r0, [r1, #0x4] + bx lr + .balign 4 +_020AEC94: .word 0x021CCD4C + + arm_func_start FUN_020AEC98 +FUN_020AEC98: ; 0x020AEC98 + ldr r1, _020AECB0 ; =0x021CCD4C + ldr r2, [r1, #0x0] + str r2, [r0, #0x0] + ldr r1, [r1, #0x4] + str r1, [r0, #0x4] + bx lr + .balign 4 +_020AECB0: .word 0x021CCD4C + + arm_func_start FUN_020AECB4 +FUN_020AECB4: ; 0x020AECB4 + mov r0, #0x0 + bx lr + + arm_func_start FUN_020AECBC +FUN_020AECBC: ; 0x020AECBC + stmdb sp!, {r4,lr} + cmp r0, #0x0 + moveq r0, #0x8 + addne r0, r0, #0x7 + ldr ip, _020AEDE8 ; =0x0007FFF8 + bicne r0, r0, #0x7 + cmp r0, r12 + mov r3, #0x0 + movcs r0, #0x0 + ldmcsia sp!, {r4,pc} +_020AECE4: ; 0x020AECE4 + cmp r2, #0x1 + bne _020AED64 + ldr r2, _020AEDEC ; =0x021CCD4C + cmp r1, #0x0 + ldr r12, [r2, #0x0] + andne r2, r12, #0x7 + rsbne r2, r2, #0x8 + andne r4, r2, #0x7 + andeq r2, r12, #0xf + rsbeq r2, r2, #0x10 + andeq r4, r2, #0xf + ldr r2, _020AEDEC ; =0x021CCD4C + add lr, r0, r4 + ldr r2, [r2, #0x4] + sub r2, r2, r12 + cmp r2, lr + blo _020AED5C + cmp r1, #0x0 + add r1, r12, lr + beq _020AED40 + cmp r1, #0x10000 + movhi r12, #0x0 + bhi _020AEDCC +_020AED40: + ldr r1, _020AEDEC ; =0x021CCD4C + add r3, r12, r4 + ldr r2, [r1, #0x0] + mov r12, #0x1 + add r2, r2, lr + str r2, [r1, #0x0] + b _020AEDCC +_020AED5C: + mov r12, #0x0 + b _020AEDCC +_020AED64: + ldr r2, _020AEDEC ; =0x021CCD4C + ldr r12, [r2, #0x4] + cmp r12, r0 + blo _020AEDC8 + sub r2, r12, r0 + cmp r1, #0x0 + andne r4, r2, #0x7 + andeq r4, r2, #0xf + ldr r2, _020AEDEC ; =0x021CCD4C + add lr, r0, r4 + ldr r2, [r2, #0x0] + sub r2, r12, r2 + cmp r2, lr + blo _020AEDC8 + cmp r1, #0x0 + beq _020AEDB0 + cmp r12, #0x10000 + movhi r12, #0x0 + bhi _020AEDCC +_020AEDB0: + ldr r1, _020AEDEC ; =0x021CCD4C + mov r12, #0x1 + ldr r2, [r1, #0x4] + sub r3, r2, lr + str r3, [r1, #0x4] + b _020AEDCC +_020AEDC8: + mov r12, #0x0 +_020AEDCC: + cmp r12, #0x0 + ldrne r1, _020AEDF0 ; =0x0000FFFF + movne r2, r0, lsr #0x3 + andne r0, r1, r3, lsr #0x3 + orrne r0, r0, r2, lsl #0x10 + moveq r0, #0x0 + ldmia sp!, {r4,pc} + .balign 4 +_020AEDE8: .word 0x0007FFF8 +_020AEDEC: .word 0x021CCD4C +_020AEDF0: .word 0x0000FFFF + + arm_func_start FUN_020AEDF4 +FUN_020AEDF4: ; 0x020AEDF4 + stmdb sp!, {r4,lr} + ldr r2, _020AEE2C ; =0x021CCD4C + mov r4, r1 + str r0, [r2, #0x8] + bl FUN_020AEC60 +_020AEE08: ; 0x020AEE08 + cmp r4, #0x0 + ldmeqia sp!, {r4,pc} +_020AEE10: ; 0x020AEE10 + ldr r3, _020AEE30 ; =FUN_020AECBC + ldr r1, _020AEE34 ; =0x021064C0 + ldr r2, _020AEE38 ; =FUN_020AECB4 + ldr r0, _020AEE3C ; =0x021064C4 + str r3, [r1, #0x0] + str r2, [r0, #0x0] + ldmia sp!, {r4,pc} + .balign 4 +_020AEE2C: .word 0x021CCD4C +_020AEE30: .word FUN_020AECBC +_020AEE34: .word 0x021064C0 +_020AEE38: .word FUN_020AECB4 +_020AEE3C: .word 0x021064C4 + + arm_func_start FUN_020AEE40 +FUN_020AEE40: ; 0x020AEE40 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + ldr r5, _020AEEB4 ; =0x021CCD58 + mov r9, r0 + mov r0, r5 + mov r8, r1 + mov r7, r2 + mov r6, r3 + bl FUN_020AF2F4 +_020AEE64: ; 0x020AEE64 + cmp r0, #0x0 + addne sp, sp, #0x4 + movne r0, #0x0 + ldmneia sp!, {r4-r9,pc} +_020AEE74: ; 0x020AEE74 + mov r0, r5 + bl FUN_020AEF78 + mov r4, r0 + str r9, [r4, #0x0] + str r7, [r4, #0x4] + str r8, [r4, #0x8] + mov r0, r5 + str r6, [r4, #0xc] + bl FUN_020AEF98 + ldr r2, [r5, #0x10] + ldr r1, [r4, #0xc] + mov r0, #0x1 + add r1, r2, r1 + str r1, [r5, #0x10] + add sp, sp, #0x4 + ldmia sp!, {r4-r9,pc} + .balign 4 +_020AEEB4: .word 0x021CCD58 + + arm_func_start FUN_020AEEB8 +FUN_020AEEB8: ; 0x020AEEB8 + stmdb sp!, {r4-r6,lr} + ldr r6, _020AEF18 ; =0x021CCD58 + mov r0, r6 + bl FUN_020AEF88 + mov r5, r0 + mov r0, r6 + bl FUN_020AEF3C +_020AEED4: ; 0x020AEED4 + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,pc} +_020AEEDC: ; 0x020AEEDC + add r4, r6, #0x10 +_020AEEE0: + mov r0, r5 + bl FUN_020AEFF0 + ldr r2, [r4, #0x0] + ldr r1, [r5, #0xc] + mov r0, r6 + sub r1, r2, r1 + str r1, [r4, #0x0] + bl FUN_020AEF88 + mov r5, r0 + mov r0, r6 + bl FUN_020AEF3C +_020AEF0C: ; 0x020AEF0C + cmp r0, #0x0 + bne _020AEEE0 + ldmia sp!, {r4-r6,pc} + .balign 4 +_020AEF18: .word 0x021CCD58 + + arm_func_start FUN_020AEF1C +FUN_020AEF1C: ; 0x020AEF1C + ldr r2, _020AEF34 ; =0x021CCD58 + ldr ip, _020AEF38 ; =FUN_020AEFD4 + str r0, [r2, #0x0] + mov r0, r2 + str r1, [r2, #0x4] + bx r12 + .balign 4 +_020AEF34: .word 0x021CCD58 +_020AEF38: .word FUN_020AEFD4 + + arm_func_start FUN_020AEF3C +FUN_020AEF3C: + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020AF2E0 +_020AEF48: ; 0x020AEF48 + cmp r0, #0x0 + movne r0, #0x0 + ldmneia sp!, {r4,pc} +_020AEF54: ; 0x020AEF54 + ldrh r1, [r4, #0x8] + mov r0, r4 + bl FUN_020AF30C + strh r0, [r4, #0x8] + ldrh r1, [r4, #0xc] + mov r0, #0x1 + sub r1, r1, #0x1 + strh r1, [r4, #0xc] + ldmia sp!, {r4,pc} + + arm_func_start FUN_020AEF78 +FUN_020AEF78: ; 0x020AEF78 + ldrh r1, [r0, #0xa] + ldr r0, [r0, #0x0] + add r0, r0, r1, lsl #0x4 + bx lr + + arm_func_start FUN_020AEF88 +FUN_020AEF88: ; 0x020AEF88 + ldrh r1, [r0, #0x8] + ldr r0, [r0, #0x0] + add r0, r0, r1, lsl #0x4 + bx lr + + arm_func_start FUN_020AEF98 +FUN_020AEF98: ; 0x020AEF98 + stmdb sp!, {r4,lr} + mov r4, r0 + bl FUN_020AF2F4 +_020AEFA4: ; 0x020AEFA4 + cmp r0, #0x0 + movne r0, #0x0 + ldmneia sp!, {r4,pc} +_020AEFB0: ; 0x020AEFB0 + ldrh r1, [r4, #0xa] + mov r0, r4 + bl FUN_020AF30C + strh r0, [r4, #0xa] + ldrh r1, [r4, #0xc] + mov r0, #0x1 + add r1, r1, #0x1 + strh r1, [r4, #0xc] + ldmia sp!, {r4,pc} + + arm_func_start FUN_020AEFD4 +FUN_020AEFD4: ; 0x020AEFD4 + mov r2, #0x0 + strh r2, [r0, #0xa] + ldrh r1, [r0, #0xa] + strh r1, [r0, #0x8] + strh r2, [r0, #0xc] + str r2, [r0, #0x10] + bx lr + + arm_func_start FUN_020AEFF0 +FUN_020AEFF0: ; 0x020AEFF0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r3, [r5, #0x0] + ldr r2, _020AF02C ; =0x020FF7D4 + ldr r0, [r5, #0x4] + ldr r1, [r5, #0xc] + ldr r4, [r2, r3, lsl #0x2] + bl DC_FlushRange + ldr r0, [r5, #0x4] + ldr r1, [r5, #0x8] + ldr r2, [r5, #0xc] + blx r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,pc} + .balign 4 +_020AF02C: .word 0x020FF7D4 diff --git a/arm9/global.inc b/arm9/global.inc index 3fe0bd01..1c690d04 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -3802,3 +3802,6 @@ .extern thunk_FUN_020afda0_2
.extern thunk_FUN_020b5040
.extern wcslen
+
+.extern FUN_0209105C
+.extern FUN_020910A4
diff --git a/arm9/lib/src/OS_arena.c b/arm9/lib/src/OS_arena.c index b4bcbc1c..58b338f1 100644 --- a/arm9/lib/src/OS_arena.c +++ b/arm9/lib/src/OS_arena.c @@ -1,7 +1,7 @@ //
// Created by red031000 on 2020-04-27.
//
-
+#include "function_target.h"
#include "consts.h"
#include "os_arena.h"
#include "os_protectionRegion.h"
@@ -16,7 +16,7 @@ extern void SDK_SECTION_ARENA_DTCM_START(); // TODO: technically this should be extern void SDK_IRQ_STACKSIZE(); // TODO: technically this should be defined in the lcf
extern void SDK_SYS_STACKSIZE(); // TODO: technically this should be defined in the lcf
-void OS_InitArena() {
+ARM_FUNC void OS_InitArena() {
if (OSi_Initialized) {
return;
}
@@ -41,7 +41,7 @@ void OS_InitArena() { OS_SetArenaLo(OS_ARENA_WRAM_MAIN, OS_GetInitArenaLo(OS_ARENA_WRAM_MAIN));
}
-void OS_InitArenaEx() {
+ARM_FUNC void OS_InitArenaEx() {
OS_SetArenaHi(2, OS_GetInitArenaHi(OS_ARENA_MAINEX));
OS_SetArenaLo(2, OS_GetInitArenaLo(OS_ARENA_MAINEX));
@@ -51,15 +51,15 @@ void OS_InitArenaEx() { }
}
-void* OS_GetArenaHi(OSArenaId id) {
+ARM_FUNC void* OS_GetArenaHi(OSArenaId id) {
return OSi_GetArenaInfo().hi[id];
}
-void* OS_GetArenaLo(OSArenaId id) {
+ARM_FUNC void* OS_GetArenaLo(OSArenaId id) {
return OSi_GetArenaInfo().lo[id];
}
-void* OS_GetInitArenaHi(OSArenaId id) {
+ARM_FUNC void* OS_GetInitArenaHi(OSArenaId id) {
switch (id) {
case OS_ARENA_MAIN:
return (void *)OSi_MAIN_ARENA_HI_DEFAULT;
@@ -97,7 +97,7 @@ void* OS_GetInitArenaHi(OSArenaId id) { }
}
-void* OS_GetInitArenaLo(OSArenaId id) {
+ARM_FUNC void* OS_GetInitArenaLo(OSArenaId id) {
switch (id) {
case OS_ARENA_MAIN:
return (void *)SDK_MAIN_ARENA_LO;
@@ -120,15 +120,15 @@ void* OS_GetInitArenaLo(OSArenaId id) { }
}
-void OS_SetArenaHi(OSArenaId id, void* newHi) {
+ARM_FUNC void OS_SetArenaHi(OSArenaId id, void* newHi) {
OSi_GetArenaInfo().hi[id] = newHi;
}
-void OS_SetArenaLo(OSArenaId id, void* newLo) {
+ARM_FUNC void OS_SetArenaLo(OSArenaId id, void* newLo) {
OSi_GetArenaInfo().lo[id] = newLo;
}
-void* OS_AllocFromArenaLo(OSArenaId id, u32 size, u32 align) {
+ARM_FUNC void* OS_AllocFromArenaLo(OSArenaId id, u32 size, u32 align) {
void* ptr;
u8* arenaLo;
ptr = OS_GetArenaLo(id);
@@ -146,7 +146,7 @@ void* OS_AllocFromArenaLo(OSArenaId id, u32 size, u32 align) { return ptr;
}
-void* OS_AllocFromArenaHi(OSArenaId id, u32 size, u32 align) {
+ARM_FUNC void* OS_AllocFromArenaHi(OSArenaId id, u32 size, u32 align) {
void* ptr;
u8* arenaHi;
diff --git a/arm9/modules/01/src/module_01.c b/arm9/modules/01/src/module_01.c index 86e50785..ae2e9d1f 100644 --- a/arm9/modules/01/src/module_01.c +++ b/arm9/modules/01/src/module_01.c @@ -2,11 +2,11 @@ u32 UNK_021D7500[8]; -void MOD01_021D74E0(void) +THUMB_FUNC void MOD01_021D74E0(void) { UNK_021D7500[1]++; } -void (*UNK_021D74F0[4])(void) = { +THUMB_FUNC void (*UNK_021D74F0[4])(void) = { MOD01_021D74E0 }; diff --git a/arm9/src/FUN_02000DF4.c b/arm9/src/FUN_02000DF4.c index 0099480c..80e80b30 100644 --- a/arm9/src/FUN_02000DF4.c +++ b/arm9/src/FUN_02000DF4.c @@ -3,7 +3,7 @@ extern struct Unk2106FA0 gBacklightTop; -void FUN_02000DF4(void) +THUMB_FUNC void FUN_02000DF4(void) { gBacklightTop.unk8 = -1; gBacklightTop.unkC = 0; diff --git a/arm9/src/FUN_020910A4.c b/arm9/src/FUN_020910A4.c new file mode 100644 index 00000000..850486d4 --- /dev/null +++ b/arm9/src/FUN_020910A4.c @@ -0,0 +1,10 @@ +#include "global.h" + +void * (* gUnk021C8C70)(u32); + +ARM_FUNC void* FUN_020910A4(u32 size) +{ + if (gUnk021C8C70 != NULL) + return gUnk021C8C70(size); + return OS_AllocFromHeap(OS_ARENA_MAIN, -1, size); +} diff --git a/arm9/src/main.c b/arm9/src/main.c index bfd6c82e..73b63332 100644 --- a/arm9/src/main.c +++ b/arm9/src/main.c @@ -3,7 +3,6 @@ extern struct Unk2106FA0 gBacklightTop; extern struct Unk2106FA0 gBacklightTop_2; // same as the first one, it's referenced twice in the constant pool... -extern struct Unk2106FA0 gUnknown2106FB8; extern struct Unk21C48B8 gUnknown21C48B8; extern s32 gUnk027FFC20; @@ -24,7 +23,7 @@ extern struct Unk21DBE18 gUnk021DBE18; extern struct Unk21DBE18 gUnk021D76C8; -void NitroMain(void) +THUMB_FUNC void NitroMain(void) { InitSystemForTheGame(); InitGraphicMemory(); diff --git a/arm9/src/script.c b/arm9/src/script.c index 7a7ae894..cb218b1a 100644 --- a/arm9/src/script.c +++ b/arm9/src/script.c @@ -3,7 +3,7 @@ u16 ScriptReadHalfword(struct ScriptContext *ctx);
-void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd)
+THUMB_FUNC void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd)
{
u32 i;
@@ -23,33 +23,33 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable ctx->unk74 = 0;
}
-u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr)
+THUMB_FUNC u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr)
{
ctx->scriptPtr = ptr;
ctx->mode = 1;
return 1;
}
-void SetupNativeScript(struct ScriptContext *ctx, u8 (*ptr)(struct ScriptContext *))
+THUMB_FUNC void SetupNativeScript(struct ScriptContext *ctx, u8 (*ptr)(struct ScriptContext *))
{
ctx->mode = 2;
ctx->nativePtr = ptr;
}
-void StopScript(struct ScriptContext *ctx)
+THUMB_FUNC void StopScript(struct ScriptContext *ctx)
{
ctx->mode = 0;
ctx->scriptPtr = 0;
}
-void FUN_02038B6C(struct ScriptContext *ctx, int r1)
+THUMB_FUNC void FUN_02038B6C(struct ScriptContext *ctx, int r1)
{
ctx->unk74 = r1;
}
extern void ErrorHandling(void);
-u8 RunScriptCommand(struct ScriptContext *ctx)
+THUMB_FUNC u8 RunScriptCommand(struct ScriptContext *ctx)
{
if (ctx->mode == 0)
return FALSE;
@@ -97,7 +97,7 @@ u8 RunScriptCommand(struct ScriptContext *ctx) return TRUE;
}
-u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr)
+THUMB_FUNC u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr)
{
if (ctx->stackDepth + 1 >= 20)
{
@@ -111,7 +111,7 @@ u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr) }
}
-const u8 *ScriptPop(struct ScriptContext *ctx)
+THUMB_FUNC const u8 *ScriptPop(struct ScriptContext *ctx)
{
if (ctx->stackDepth == 0)
return NULL;
@@ -120,31 +120,31 @@ const u8 *ScriptPop(struct ScriptContext *ctx) return ctx->stack[ctx->stackDepth];
}
-void ScriptJump(struct ScriptContext *ctx, const u8 *ptr)
+THUMB_FUNC void ScriptJump(struct ScriptContext *ctx, const u8 *ptr)
{
ctx->scriptPtr = ptr;
}
-u8 ScriptCall(struct ScriptContext *ctx, const u8 *ptr)
+THUMB_FUNC u8 ScriptCall(struct ScriptContext *ctx, const u8 *ptr)
{
u8 ret = ScriptPush(ctx, ctx->scriptPtr);
ctx->scriptPtr = ptr;
return ret;
}
-void ScriptReturn(struct ScriptContext *ctx)
+THUMB_FUNC void ScriptReturn(struct ScriptContext *ctx)
{
ctx->scriptPtr = ScriptPop(ctx);
}
-u16 ScriptReadHalfword(struct ScriptContext *ctx)
+THUMB_FUNC u16 ScriptReadHalfword(struct ScriptContext *ctx)
{
u16 value = *(ctx->scriptPtr++);
value += *(ctx->scriptPtr++) << 8;
return value;
}
-u32 ScriptReadWord(struct ScriptContext *ctx)
+THUMB_FUNC u32 ScriptReadWord(struct ScriptContext *ctx)
{
u32 value0 = *(ctx->scriptPtr++);
u32 value1 = *(ctx->scriptPtr++);
diff --git a/arm9/src/string_util.c b/arm9/src/string_util.c index 8f9c96ff..6c949e88 100644 --- a/arm9/src/string_util.c +++ b/arm9/src/string_util.c @@ -34,7 +34,7 @@ s32 gPowersOfTen[] = { static const u16 EOS = 0xFFFF;
-void StringCopy(u16 *dest, const u16 *src)
+THUMB_FUNC void StringCopy(u16 *dest, const u16 *src)
{
u16 c = *src;
while (c != EOS) {
@@ -46,7 +46,7 @@ void StringCopy(u16 *dest, const u16 *src) *dest = EOS;
}
-u16 *StringCopyN(u16 *dest, const u16 *src, u32 num)
+THUMB_FUNC u16 *StringCopyN(u16 *dest, const u16 *src, u32 num)
{
u32 copied = 0;
if (num > copied) {
@@ -62,7 +62,7 @@ u16 *StringCopyN(u16 *dest, const u16 *src, u32 num) return dest + num;
}
-u32 StringLength(const u16 *s)
+THUMB_FUNC u32 StringLength(const u16 *s)
{
u16 c = *s;
u32 len = 0;
@@ -74,7 +74,7 @@ u32 StringLength(const u16 *s) return len;
}
-BOOL StringNotEqual(const u16 *s1, const u16 *s2)
+THUMB_FUNC BOOL StringNotEqual(const u16 *s1, const u16 *s2)
{
for (; *s1 == *s2; s1++, s2++) {
if (*s1 == EOS)
@@ -83,7 +83,7 @@ BOOL StringNotEqual(const u16 *s1, const u16 *s2) return TRUE;
}
-BOOL StringNotEqualN(const u16 *s1, const u16 *s2, u32 num)
+THUMB_FUNC BOOL StringNotEqualN(const u16 *s1, const u16 *s2, u32 num)
{
u16 c1, c2;
c2 = *s2;
@@ -104,7 +104,7 @@ BOOL StringNotEqualN(const u16 *s1, const u16 *s2, u32 num) return TRUE;
}
-u16 *StringFill(u16 *dest, u16 value, u32 num)
+THUMB_FUNC u16 *StringFill(u16 *dest, u16 value, u32 num)
{
u32 copied = 0;
if (num > copied) {
@@ -118,7 +118,7 @@ u16 *StringFill(u16 *dest, u16 value, u32 num) return dest + copied;
}
-u16 *StringFillEOS(u16 *dest, u32 num)
+THUMB_FUNC u16 *StringFillEOS(u16 *dest, u32 num)
{
return StringFill(dest, EOS, num);
}
@@ -131,7 +131,7 @@ enum PrintingMode { const u16 NON_DIGIT = 0xE2;
-u16 *ConvertUIntToDecimalString(u16 *dest, u32 value, enum PrintingMode mode, u32 n)
+THUMB_FUNC u16 *ConvertUIntToDecimalString(u16 *dest, u32 value, enum PrintingMode mode, u32 n)
{
for (u32 x = gPowersOfTen[n - 1]; x != 0; x = x / 10) {
u16 res = value / x;
diff --git a/arm9/undefined_syms.txt b/arm9/undefined_syms.txt index 9cf93c34..8abcab21 100644 --- a/arm9/undefined_syms.txt +++ b/arm9/undefined_syms.txt @@ -18,9 +18,9 @@ Unk_02106A04 = 0x02106A04; // .bss gBacklightTop = 0x02106FA0; gBacklightTop_2 = 0x02106FA0; -gUnknown2106FB8 = 0x02106FB8; gUnknown21C48B8 = 0x021C48B8; gUnk021C4918 = 0x021C4918; +gUnk021C8C70 = 0x021C8C70; OSi_IrqCallbackInfo = 0x021D341C; isInitialized = 0x021D347C; OSi_StackForDestructor = 0x021D3480; diff --git a/include-mw/function_target.h b/include-mw/function_target.h new file mode 100644 index 00000000..2aaee87e --- /dev/null +++ b/include-mw/function_target.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FUNCTION_TARGET_H +#define GUARD_FUNCTION_TARGET_H + +#define ARM_FUNC _Pragma("thumb off") +#define THUMB_FUNC _Pragma("thumb on") + +#endif //GUARD_FUNCTION_TARGET_H
\ No newline at end of file diff --git a/include/global.h b/include/global.h index 33880ca1..ba6a7337 100644 --- a/include/global.h +++ b/include/global.h @@ -1,6 +1,7 @@ #ifndef GUARD_GLOBAL_H #define GUARD_GLOBAL_H +#include "function_target.h" #include "nitro/nitro.h" #endif //GUARD_GLOBAL_H diff --git a/undefined_syms.txt b/undefined_syms.txt index 075d22a9..d3891d10 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -16,7 +16,6 @@ Unk_02106A04 = 0x02106A04; // .bss gBacklightTop = 0x02106FA0; gBacklightTop_2 = 0x02106FA0; -gUnknown2106FB8 = 0x02106FB8; gUnknown21C48B8 = 0x021C48B8; gUnk021C4918 = 0x021C4918; OSi_IrqCallbackInfo = 0x021D341C; |