diff options
author | PikalaxALT <PikalaxALT@gmail.com> | 2020-04-19 17:14:41 -0400 |
---|---|---|
committer | PikalaxALT <PikalaxALT@gmail.com> | 2020-04-19 17:14:41 -0400 |
commit | 84053dd3ef9f6d0b720abdbaa7d7b72d73403b01 (patch) | |
tree | d38271dbec7f1ee3f5a40814ad10c70245e89f72 | |
parent | b0db4cab2ec010386a5619687944bdf7a5321ed4 (diff) | |
parent | a2617364ed8c55a276e0ad626895294aed306a4b (diff) |
Merge branch 'master' of https://github.com/martmists/pokediamond into finish_header
-rw-r--r-- | INSTALL.md | 4 | ||||
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | asm/FUN_020C9C0C.s | 13766 | ||||
-rw-r--r-- | asm/arm9_thumb.s | 6746 | ||||
-rw-r--r-- | asm/entry.s | 2 | ||||
-rw-r--r-- | asm/main.s | 172 | ||||
-rw-r--r-- | asm/rom1.5.s | 5 | ||||
-rw-r--r-- | asm/rom2.s | 3 | ||||
-rw-r--r-- | asm/secure.s | 10 | ||||
-rw-r--r-- | global.inc | 193 | ||||
-rw-r--r-- | pokediamond.lcf | 2 | ||||
-rw-r--r-- | src/FUN_02000DF4.c | 10 | ||||
-rw-r--r-- | src/main.c | 151 | ||||
-rw-r--r-- | undefined_syms.txt | 119 |
14 files changed, 17463 insertions, 3728 deletions
@@ -47,3 +47,7 @@ Install them using either the Cygwin package manager or using pacman on Msys2. ### 4. Build ROM Run `make` to build the ROM. + +Windows Users: + +If you get an error in saving configuration settings when specifying the license file, you need to add a system environment variable called LM_LICENSE_FILE and point it to the license.dat file. @@ -1,6 +1,6 @@ # Makefile to build Pokemon Diamond image -.PHONY: clean tidy all default +.PHONY: clean tidy all default patch_mwasmarm # Try to include devkitarm if installed TOOLCHAIN := $(DEVKITARM) @@ -79,8 +79,8 @@ 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 c -Cpp_exceptions off -interworking -i nitro -LDFLAGS = -nodead -w off -proc v5te -map -symtab -m Entry +CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c -Cpp_exceptions off -i nitro +LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m Entry ####################### Other Tools ######################### @@ -138,7 +138,7 @@ $(BUILD_DIR)/%.o: %.c $(BUILD_DIR)/%.o: %.s $(AS) $(ASFLAGS) $< -o $@ -$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) +$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) undefined_syms.txt $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $< $(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) diff --git a/asm/FUN_020C9C0C.s b/asm/FUN_020C9C0C.s new file mode 100644 index 00000000..b103a702 --- /dev/null +++ b/asm/FUN_020C9C0C.s @@ -0,0 +1,13766 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + + + arm_func_start OS_WaitIrq +OS_WaitIrq: + stmdb sp!, {r4-r6,lr} + mov r5, r0 + mov r4, r1 + bl OS_DisableInterrupts + cmp r5, #0x0 + beq _020C9C3C + ldr r1, _020C9C80 ; =0x027E0000 + mvn r2, r4 + add r1, r1, #0x3000 + ldr r3, [r1, #0xff8] + and r2, r3, r2 + str r2, [r1, #0xff8] +_020C9C3C: + bl OS_RestoreInterrupts + ldr r1, _020C9C80 ; =0x027E0000 + add r0, r1, #0x3000 + ldr r0, [r0, #0xff8] + ands r0, r4, r0 + ldmneia sp!, {r4-r6,lr} + bxne lr + ldr r0, _020C9C84 ; =0x00003FF8 + add r6, r1, r0 + ldr r5, _020C9C88 ; =0x027E0060 +_020C9C64: + mov r0, r5 + bl OS_SleepThread + ldr r0, [r6, #0x0] + ands r0, r4, r0 + beq _020C9C64 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020C9C80: .word 0x027E0000 +_020C9C84: .word 0x00003FF8 +_020C9C88: .word 0x027E0060 + + arm_func_start OSi_IrqTimer3 +OSi_IrqTimer3: ; 0x020C9C8C + ldr ip, _020C9C98 ; =OSi_IrqCallback + mov r0, #0x7 + bx r12 + .balign 4 +_020C9C98: .word OSi_IrqCallback + + arm_func_start OSi_IrqTimer2 +OSi_IrqTimer2: ; 0x020C9C9C + ldr ip, _020C9CA8 ; =OSi_IrqCallback + mov r0, #0x6 + bx r12 + .balign 4 +_020C9CA8: .word OSi_IrqCallback + + arm_func_start OSi_IrqTimer1 +OSi_IrqTimer1: ; 0x020C9CAC + ldr ip, _020C9CB8 ; =OSi_IrqCallback + mov r0, #0x5 + bx r12 + .balign 4 +_020C9CB8: .word OSi_IrqCallback + + arm_func_start OSi_IrqTimer0 +OSi_IrqTimer0: ; 0x020C9CBC + ldr ip, _020C9CC8 ; =OSi_IrqCallback + mov r0, #0x4 + bx r12 + .balign 4 +_020C9CC8: .word OSi_IrqCallback + + arm_func_start OSi_IrqDma3 +OSi_IrqDma3: ; 0x020C9CCC + ldr ip, _020C9CD8 ; =OSi_IrqCallback + mov r0, #0x3 + bx r12 + .balign 4 +_020C9CD8: .word OSi_IrqCallback + + arm_func_start OSi_IrqDma2 +OSi_IrqDma2: ; 0x020C9CDC + ldr ip, _020C9CE8 ; =OSi_IrqCallback + mov r0, #0x2 + bx r12 + .balign 4 +_020C9CE8: .word OSi_IrqCallback + + arm_func_start OSi_IrqDma1 +OSi_IrqDma1: ; 0x020C9CEC + ldr ip, _020C9CF8 ; =OSi_IrqCallback + mov r0, #0x1 + bx r12 + .balign 4 +_020C9CF8: .word OSi_IrqCallback + + arm_func_start OSi_IrqDma0 +OSi_IrqDma0: ; 0x020C9CFC + ldr ip, _020C9D08 ; =OSi_IrqCallback + mov r0, #0x0 + bx r12 + .balign 4 +_020C9D08: .word OSi_IrqCallback + + arm_func_start OSi_IrqCallback +OSi_IrqCallback: ; 0x020C9D0C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r1, #0xc + mul r4, r0, r1 + ldr r2, _020C9D94 ; =0x021D341C + ldr r3, _020C9D98 ; =0x02106818 + mov r0, r0, lsl #0x1 + ldr r1, [r2, r4] + ldrh r3, [r3, r0] + mov r5, #0x1 + mov r0, #0x0 + str r0, [r2, r4] + cmp r1, #0x0 + mov r5, r5, lsl r3 + beq _020C9D54 + ldr r0, _020C9D9C ; =0x021D3424 + ldr r0, [r0, r4] + blx r1 +_020C9D54: + ldr r0, _020C9DA0 ; =0x027E0000 + ldr r1, _020C9DA4 ; =0x021D3420 + add r0, r0, #0x3000 + ldr r2, [r0, #0xff8] + orr r2, r2, r5 + str r2, [r0, #0xff8] + ldr r0, [r1, r4] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,lr} + bxne lr + mov r0, r5 + bl OS_DisableIrqMask + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020C9D94: .word 0x021D341C +_020C9D98: .word 0x02106818 +_020C9D9C: .word 0x021D3424 +_020C9DA0: .word 0x027E0000 +_020C9DA4: .word 0x021D3420 + + arm_func_start OS_IrqDummy +OS_IrqDummy: ; 0x020C9DA8 + bx lr + + arm_func_start OS_SetIrqStackChecker +OS_SetIrqStackChecker: ; 0x020C9DAC + ldr ip, _020C9DD0 ; =0x027E0000 + ldr r3, _020C9DD4 ; =0xFDDB597D + add r0, r12, #0x3000 + ldr r2, _020C9DD8 ; =0x7BF9DD5B + ldr r1, _020C9DDC ; =0x00000400 + str r3, [r0, #0xf7c] + add r0, r12, #0x3f80 + str r2, [r0, -r1] + bx lr + .balign 4 +_020C9DD0: .word 0x027E0000 +_020C9DD4: .word 0xFDDB597D +_020C9DD8: .word 0x7BF9DD5B +_020C9DDC: .word 0x00000400 + + arm_func_start OS_ResetRequestIrqMask +OS_ResetRequestIrqMask: ; 0x020C9DE0 + ldr ip, _020C9E0C ; =0x04000208 + mov r1, #0x0 + ldrh r3, [r12, #0x0] + ldr r2, _020C9E10 ; =0x04000214 + strh r1, [r12, #0x0] + ldr r1, [r2, #0x0] + str r0, [r2, #0x0] + ldrh r0, [r12, #0x0] + mov r0, r1 + strh r3, [r12, #0x0] + bx lr + .balign 4 +_020C9E0C: .word 0x04000208 +_020C9E10: .word 0x04000214 + + arm_func_start OS_DisableIrqMask +OS_DisableIrqMask: ; 0x020C9E14 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr lr, _020C9E54 ; =0x04000208 + mov r3, #0x0 + ldrh r12, [lr, #0x0] + ldr r2, _020C9E58 ; =0x04000210 + mvn r1, r0 + strh r3, [lr, #0x0] + ldr r0, [r2, #0x0] + and r1, r0, r1 + str r1, [r2, #0x0] + ldrh r1, [lr, #0x0] + strh r12, [lr, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020C9E54: .word 0x04000208 +_020C9E58: .word 0x04000210 + + arm_func_start OS_EnableIrqMask +OS_EnableIrqMask: ; 0x020C9E5C + ldr ip, _020C9E8C ; =0x04000208 + mov r1, #0x0 + ldrh r3, [r12, #0x0] + ldr r2, _020C9E90 ; =0x04000210 + strh r1, [r12, #0x0] + ldr r1, [r2, #0x0] + orr r0, r1, r0 + str r0, [r2, #0x0] + ldrh r0, [r12, #0x0] + mov r0, r1 + strh r3, [r12, #0x0] + bx lr + .balign 4 +_020C9E8C: .word 0x04000208 +_020C9E90: .word 0x04000210 + + arm_func_start OS_SetIrqMask +OS_SetIrqMask: ; 0x020C9E94 + ldr ip, _020C9EC0 ; =0x04000208 + mov r1, #0x0 + ldrh r3, [r12, #0x0] + ldr r2, _020C9EC4 ; =0x04000210 + strh r1, [r12, #0x0] + ldr r1, [r2, #0x0] + str r0, [r2, #0x0] + ldrh r0, [r12, #0x0] + mov r0, r1 + strh r3, [r12, #0x0] + bx lr + .balign 4 +_020C9EC0: .word 0x04000208 +_020C9EC4: .word 0x04000210 + + arm_func_start OSi_EnterTimerCallback +OSi_EnterTimerCallback: ; 0x020C9EC8 + stmdb sp!, {r4,lr} + mov r3, #0xc + mul r4, r0, r3 + ldr ip, _020C9F08 ; =0x021D344C + add r0, r0, #0x3 + mov r3, #0x1 + mov r0, r3, lsl r0 + ldr r3, _020C9F0C ; =0x021D3454 + str r1, [r12, r4] + str r2, [r3, r4] + bl OS_EnableIrqMask + ldr r0, _020C9F10 ; =0x021D3450 + mov r1, #0x1 + str r1, [r0, r4] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020C9F08: .word 0x021D344C +_020C9F0C: .word 0x021D3454 +_020C9F10: .word 0x021D3450 + + arm_func_start OSi_EnterDmaCallback +OSi_EnterDmaCallback: ; 0x020C9F14 + stmdb sp!, {r4-r6,lr} + mov r3, #0xc + mul r6, r0, r3 + ldr ip, _020C9F54 ; =0x021D341C + add r4, r0, #0x8 + mov r5, #0x1 + mov r0, r5, lsl r4 + ldr r3, _020C9F58 ; =0x021D3424 + str r1, [r12, r6] + str r2, [r3, r6] + bl OS_EnableIrqMask + and r1, r0, r5, lsl r4 + ldr r0, _020C9F5C ; =0x021D3420 + str r1, [r0, r6] + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020C9F54: .word 0x021D341C +_020C9F58: .word 0x021D3424 +_020C9F5C: .word 0x021D3420 + + arm_func_start OS_GetIrqFunction +OS_GetIrqFunction: ; 0x020C9F60 + ldr r2, _020C9FE4 ; =0x027E0000 + mov r3, #0x0 +_020C9F68: + ands r1, r0, #0x1 + beq _020C9FC8 + cmp r3, #0x8 + blt _020C9F98 + cmp r3, #0xb + bgt _020C9F98 + sub r1, r3, #0x8 + mov r0, #0xc + mul r2, r1, r0 + ldr r0, _020C9FE8 ; =0x021D341C + ldr r0, [r0, r2] + bx lr +_020C9F98: + cmp r3, #0x3 + blt _020C9FC0 + cmp r3, #0x6 + bgt _020C9FC0 + add r1, r3, #0x1 + mov r0, #0xc + mul r2, r1, r0 + ldr r0, _020C9FE8 ; =0x021D341C + ldr r0, [r0, r2] + bx lr +_020C9FC0: + ldr r0, [r2, #0x0] + bx lr +_020C9FC8: + add r3, r3, #0x1 + cmp r3, #0x16 + mov r0, r0, lsr #0x1 + add r2, r2, #0x4 + blt _020C9F68 + mov r0, #0x0 + bx lr + .balign 4 +_020C9FE4: .word 0x027E0000 +_020C9FE8: .word 0x021D341C + + arm_func_start OS_SetIrqFunction +OS_SetIrqFunction: ; 0x020C9FEC + stmdb sp!, {r4-r8,lr} + mov r8, #0x0 + ldr lr, _020CA074 ; =0x027E0000 + ldr r5, _020CA078 ; =0x021D341C + mov r6, r8 + mov r12, r8 + mov r3, #0x1 + mov r2, #0xc +_020CA00C: + ands r4, r0, #0x1 + beq _020CA05C + mov r7, r6 + cmp r8, #0x8 + blt _020CA030 + cmp r8, #0xb + suble r4, r8, #0x8 + mlale r7, r4, r2, r5 + ble _020CA04C +_020CA030: + cmp r8, #0x3 + blt _020CA048 + cmp r8, #0x6 + addle r4, r8, #0x1 + mlale r7, r4, r2, r5 + ble _020CA04C +_020CA048: + str r1, [lr, r8, lsl #0x2] +_020CA04C: + cmp r7, #0x0 + strne r1, [r7, #0x0] + strne r12, [r7, #0x8] + strne r3, [r7, #0x4] +_020CA05C: + add r8, r8, #0x1 + cmp r8, #0x16 + mov r0, r0, lsr #0x1 + blt _020CA00C + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020CA074: .word 0x027E0000 +_020CA078: .word 0x021D341C + + arm_func_start OS_InitIrqTable +OS_InitIrqTable: ; 0x020CA07C + ldr r0, _020CA090 ; =0x027E0060 + mov r1, #0x0 + str r1, [r0, #0x4] + str r1, [r0, #0x0] + bx lr + .balign 4 +_020CA090: .word 0x027E0060 + + arm_func_start OS_UnlockCartridge +OS_UnlockCartridge: ; 0x020CA094 + ldr r1, _020CA09C ; =OS_UnlockCartridge2 + bx r1 + .balign 4 +_020CA09C: .word OS_UnlockCartridge2 + + arm_func_start OS_GetLockID +OS_GetLockID: ; 0x020CA0A0 + ldr r3, _020CA0F0 ; =0x027FFFB0 + ldr r1, [r3, #0x0] + clz r2, r1 + cmp r2, #0x20 + movne r0, #0x40 + bne _020CA0D4 + add r3, r3, #0x4 + ldr r1, [r3, #0x0] + clz r2, r1 + cmp r2, #0x20 + ldr r0, _020CA0F4 ; =0xFFFFFFFD + bxeq lr + mov r0, #0x60 +_020CA0D4: + add r0, r0, r2 + mov r1, #0x80000000 + mov r1, r1, lsr r2 + ldr r2, [r3, #0x0] + bic r2, r2, r1 + str r2, [r3, #0x0] + bx lr + .balign 4 +_020CA0F0: .word 0x027FFFB0 +_020CA0F4: .word 0xFFFFFFFD + + arm_func_start OS_ReleaseLockID +OS_ReleaseLockID: ; 0x020CA0F8 + ldr r3, _020CA124 ; =0x027FFFB0 + cmp r0, #0x60 + addpl r3, r3, #0x4 + subpl r0, r0, #0x60 + submi r0, r0, #0x40 + mov r1, #0x80000000 + mov r1, r1, lsr r0 + ldr r2, [r3, #0x0] + orr r2, r2, r1 + str r2, [r3, #0x0] + bx lr + .balign 4 +_020CA124: .word 0x027FFFB0 + + arm_func_start OS_ReadOwnerOfLockWord +OS_ReadOwnerOfLockWord: ; 0x020CA128 + ldrh r0, [r0, #0x4] + bx lr + + arm_func_start OSi_FreeCardBus +OSi_FreeCardBus: ; 0x020CA130 + ldr r1, _020CA144 ; =0x04000204 + ldrh r0, [r1, #0x0] + orr r0, r0, #0x800 + strh r0, [r1, #0x0] + bx lr + .balign 4 +_020CA144: .word 0x04000204 + + arm_func_start OSi_AllocateCardBus +OSi_AllocateCardBus: ; 0x020CA148 + ldr r1, _020CA15C ; =0x04000204 + ldrh r0, [r1, #0x0] + bic r0, r0, #0x800 + strh r0, [r1, #0x0] + bx lr + .balign 4 +_020CA15C: .word 0x04000204 + + arm_func_start OS_UnlockCard +OS_UnlockCard: ; 0x020CA160 + ldr ip, _020CA170 ; =OS_UnlockByWord + ldr r1, _020CA174 ; =0x027FFFE0 + ldr r2, _020CA178 ; =OSi_FreeCardBus + bx r12 + .balign 4 +_020CA170: .word OS_UnlockByWord +_020CA174: .word 0x027FFFE0 +_020CA178: .word OSi_FreeCardBus + + arm_func_start OS_TryLockCard +OS_TryLockCard: ; 0x020CA17C + ldr ip, _020CA18C ; =OS_TryLockByWord + ldr r1, _020CA190 ; =0x027FFFE0 + ldr r2, _020CA194 ; =OSi_AllocateCardBus + bx r12 + .balign 4 +_020CA18C: .word OS_TryLockByWord +_020CA190: .word 0x027FFFE0 +_020CA194: .word OSi_AllocateCardBus + + arm_func_start OSi_FreeCartridgeBus +OSi_FreeCartridgeBus: ; 0x020CA198 + ldr r1, _020CA1AC ; =0x04000204 + ldrh r0, [r1, #0x0] + orr r0, r0, #0x80 + strh r0, [r1, #0x0] + bx lr + .balign 4 +_020CA1AC: .word 0x04000204 + + arm_func_start OSi_AllocateCartridgeBus +OSi_AllocateCartridgeBus: ; 0x020CA1B0 + ldr r1, _020CA1C4 ; =0x04000204 + ldrh r0, [r1, #0x0] + bic r0, r0, #0x80 + strh r0, [r1, #0x0] + bx lr + .balign 4 +_020CA1C4: .word 0x04000204 + + arm_func_start OS_TryLockCartridge +OS_TryLockCartridge: ; 0x020CA1C8 + ldr ip, _020CA1DC ; =OSi_DoTryLockByWord + ldr r1, _020CA1E0 ; =0x027FFFE8 + ldr r2, _020CA1E4 ; =OSi_AllocateCartridgeBus + mov r3, #0x1 + bx r12 + .balign 4 +_020CA1DC: .word OSi_DoTryLockByWord +_020CA1E0: .word 0x027FFFE8 +_020CA1E4: .word OSi_AllocateCartridgeBus + + arm_func_start OS_UnlockCartridge2 +OS_UnlockCartridge2: ; 0x020CA1E8 + ldr ip, _020CA1FC ; =FUN_020CA2B8 + ldr r1, _020CA200 ; =0x027FFFE8 + ldr r2, _020CA204 ; =OSi_FreeCartridgeBus + mov r3, #0x1 + bx r12 + .balign 4 +_020CA1FC: .word FUN_020CA2B8 +_020CA200: .word 0x027FFFE8 +_020CA204: .word OSi_FreeCartridgeBus + + arm_func_start OS_LockCartridge +OS_LockCartridge: ; 0x020CA208 + ldr ip, _020CA21C ; =FUN_020CA358 + ldr r1, _020CA220 ; =0x027FFFE8 + ldr r2, _020CA224 ; =OSi_AllocateCartridgeBus + mov r3, #0x1 + bx r12 + .balign 4 +_020CA21C: .word FUN_020CA358 +_020CA220: .word 0x027FFFE8 +_020CA224: .word OSi_AllocateCartridgeBus + + arm_func_start OSi_DoTryLockByWord +OSi_DoTryLockByWord: + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + movs r6, r3 + mov r9, r0 + mov r8, r1 + mov r7, r2 + beq _020CA250 + bl OS_DisableInterrupts_IrqAndFiq + mov r5, r0 + b _020CA258 +_020CA250: + bl OS_DisableInterrupts + mov r5, r0 +_020CA258: + mov r0, r9 + mov r1, r8 + bl MI_SwapWord + movs r4, r0 + bne _020CA27C + cmp r7, #0x0 + beq _020CA278 + blx r7 +_020CA278: + strh r9, [r8, #0x4] +_020CA27C: + cmp r6, #0x0 + beq _020CA290 + mov r0, r5 + bl OS_RestoreInterrupts_IrqAndFiq + b _020CA298 +_020CA290: + mov r0, r5 + bl OS_RestoreInterrupts +_020CA298: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start OS_UnlockByWord +OS_UnlockByWord: ; 0x020CA2A8 + ldr ip, _020CA2B4 ; =FUN_020CA2B8 + mov r3, #0x0 + bx r12 + .balign 4 +_020CA2B4: .word FUN_020CA2B8 + + arm_func_start FUN_020CA2B8 +FUN_020CA2B8: ; 0x020CA2B8 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r1 + ldrh r1, [r7, #0x4] + mov r6, r2 + mov r5, r3 + cmp r0, r1 + addne sp, sp, #0x4 + mvnne r0, #0x1 + ldmneia sp!, {r4-r7,lr} + bxne lr + cmp r5, #0x0 + beq _020CA2F8 + bl OS_DisableInterrupts_IrqAndFiq + mov r4, r0 + b _020CA300 +_020CA2F8: + bl OS_DisableInterrupts + mov r4, r0 +_020CA300: + mov r0, #0x0 + strh r0, [r7, #0x4] + cmp r6, #0x0 + beq _020CA314 + blx r6 +_020CA314: + mov r0, #0x0 + str r0, [r7, #0x0] + cmp r5, #0x0 + beq _020CA330 + mov r0, r4 + bl OS_RestoreInterrupts_IrqAndFiq + b _020CA338 +_020CA330: + mov r0, r4 + bl OS_RestoreInterrupts +_020CA338: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start OS_TryLockByWord +OS_TryLockByWord: ; 0x020CA348 + ldr ip, _020CA354 ; =FUN_020CA358 + mov r3, #0x0 + bx r12 + .balign 4 +_020CA354: .word FUN_020CA358 + + arm_func_start FUN_020CA358 +FUN_020CA358: ; 0x020CA358 + stmdb sp!, {r4-r8,lr} + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + bl OSi_DoTryLockByWord + cmp r0, #0x0 + ldmleia sp!, {r4-r8,lr} + bxle lr + mov r4, #0x400 +_020CA380: + mov r0, r4 + blx FUN_020005F2 + mov r0, r8 + mov r1, r7 + mov r2, r6 + mov r3, r5 + bl OSi_DoTryLockByWord + cmp r0, #0x0 + bgt _020CA380 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start OS_InitLock +OS_InitLock: ; 0x020CA3AC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, _020CA484 ; =0x021D347C + ldr r1, [r0, #0x0] + cmp r1, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,lr} + bxne lr + mov r2, #0x1 + ldr r1, _020CA488 ; =0x027FFFF0 + str r2, [r0, #0x0] + mov r2, #0x0 + mov r0, #0x7e + str r2, [r1, #0x0] + bl OS_TryLockByWord + ldr r5, _020CA488 ; =0x027FFFF0 + ldrh r0, [r5, #0x6] + cmp r0, #0x0 + beq _020CA410 + mov r4, #0x400 +_020CA3FC: + mov r0, r4 + blx FUN_020005F2 + ldrh r0, [r5, #0x6] + cmp r0, #0x0 + bne _020CA3FC +_020CA410: + ldr r2, _020CA48C ; =0x027FFFB0 + mvn r12, #0x0 + mov r0, #0x10000 + ldr r3, _020CA490 ; =0x027FFFB4 + ldr r1, _020CA494 ; =0x027FFFC0 + str r12, [r2, #0x0] + rsb r12, r0, #0x0 + mov r0, #0x0 + mov r2, #0x28 + str r12, [r3, #0x0] + bl MIi_CpuClear32 + ldr ip, _020CA498 ; =0x04000204 + ldr r1, _020CA488 ; =0x027FFFF0 + ldrh r3, [r12, #0x0] + mov r0, #0x7e + mov r2, #0x0 + orr r3, r3, #0x800 + strh r3, [r12, #0x0] + ldrh r3, [r12, #0x0] + orr r3, r3, #0x80 + strh r3, [r12, #0x0] + bl OS_UnlockByWord + ldr r1, _020CA488 ; =0x027FFFF0 + mov r0, #0x7f + mov r2, #0x0 + bl OS_TryLockByWord + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CA484: .word 0x021D347C +_020CA488: .word 0x027FFFF0 +_020CA48C: .word 0x027FFFB0 +_020CA490: .word 0x027FFFB4 +_020CA494: .word 0x027FFFC0 +_020CA498: .word 0x04000204 + + arm_func_start OS_VSNPrintf +OS_VSNPrintf: ; 0x020CA49C + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x64 + mov r9, r2 + str r1, [sp, #0x54] + str r0, [sp, #0x5c] + str r0, [sp, #0x58] + ldrsb r0, [r9, #0x0] + str r1, [sp, #0x0] + mov r11, r3 + cmp r0, #0x0 + beq _020CAD18 + mov r0, #0xa + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x4] + mov r0, #0x20 + str r0, [sp, #0x1c] + mov r0, #0x30 + str r0, [sp, #0x20] + mvn r0, #0x0 + str r0, [sp, #0x8] + mov r0, #0x57 + str r0, [sp, #0x10] + mov r0, #0x8 + str r0, [sp, #0x14] + mov r0, #0x37 + str r0, [sp, #0x18] + mov r0, #0x10 + str r0, [sp, #0x24] + mov r0, #0x1 + str r0, [sp, #0x28] + mov r0, #0x2b + str r0, [sp, #0x34] + mov r0, #0x2d + str r0, [sp, #0x30] + mov r0, #0x2 + str r0, [sp, #0x2c] +_020CA530: + ldrsb r1, [r9, #0x0] + and r0, r1, #0xff + eor r0, r0, #0x20 + sub r0, r0, #0xa1 + cmp r0, #0x3c + bhs _020CA56C + add r0, sp, #0x54 + bl string_put_char + ldrsb r1, [r9, #0x1]! + cmp r1, #0x0 + beq _020CAD0C + add r0, sp, #0x54 + add r9, r9, #0x1 + bl string_put_char + b _020CAD0C +_020CA56C: + cmp r1, #0x25 + beq _020CA584 + add r0, sp, #0x54 + add r9, r9, #0x1 + bl string_put_char + b _020CAD0C +_020CA584: + ldr r6, [sp, #0x4] + ldr r5, [sp, #0x8] + ldr r2, [sp, #0xc] + ldr r0, [sp, #0x10] + mov r10, r6 + mov r3, r9 +_020CA59C: + ldrsb r4, [r9, #0x1]! + cmp r4, #0x20 + bgt _020CA5B4 + cmp r4, #0x20 + beq _020CA5F4 + b _020CA60C +_020CA5B4: + cmp r4, #0x30 + bgt _020CA60C + cmp r4, #0x2b + blt _020CA60C + cmp r4, #0x2b + beq _020CA5E0 + cmp r4, #0x2d + beq _020CA5FC + cmp r4, #0x30 + beq _020CA604 + b _020CA60C +_020CA5E0: + ldrsb r1, [r9, #-0x1] + cmp r1, #0x20 + bne _020CA60C + orr r6, r6, #0x2 + b _020CA59C +_020CA5F4: + orr r6, r6, #0x1 + b _020CA59C +_020CA5FC: + orr r6, r6, #0x8 + b _020CA59C +_020CA604: + orr r6, r6, #0x10 + b _020CA59C +_020CA60C: + cmp r4, #0x2a + bne _020CA640 + add r11, r11, #0x4 + ldr r10, [r11, #-0x4] + add r9, r9, #0x1 + cmp r10, #0x0 + rsblt r10, r10, #0x0 + orrlt r6, r6, #0x8 + b _020CA654 +_020CA630: + ldrsb r4, [r9], #0x1 + mov r1, #0xa + mla r1, r10, r1, r4 + sub r10, r1, #0x30 +_020CA640: + ldrsb r1, [r9, #0x0] + cmp r1, #0x30 + blt _020CA654 + cmp r1, #0x39 + ble _020CA630 +_020CA654: + ldrsb r1, [r9, #0x0] + cmp r1, #0x2e + bne _020CA6AC + ldrsb r1, [r9, #0x1]! + ldr r5, [sp, #0x4] + cmp r1, #0x2a + bne _020CA698 + add r11, r11, #0x4 + ldr r5, [r11, #-0x4] + add r9, r9, #0x1 + cmp r5, #0x0 + ldrlt r5, [sp, #0x8] + b _020CA6AC +_020CA688: + ldrsb r4, [r9], #0x1 + mov r1, #0xa + mla r1, r5, r1, r4 + sub r5, r1, #0x30 +_020CA698: + ldrsb r1, [r9, #0x0] + cmp r1, #0x30 + blt _020CA6AC + cmp r1, #0x39 + ble _020CA688 +_020CA6AC: + ldrsb r1, [r9, #0x0] + cmp r1, #0x68 + beq _020CA6C4 + cmp r1, #0x6c + beq _020CA6DC + b _020CA6F0 +_020CA6C4: + ldrsb r1, [r9, #0x1]! + cmp r1, #0x68 + orrne r6, r6, #0x40 + addeq r9, r9, #0x1 + orreq r6, r6, #0x100 + b _020CA6F0 +_020CA6DC: + ldrsb r1, [r9, #0x1]! + cmp r1, #0x6c + orrne r6, r6, #0x20 + addeq r9, r9, #0x1 + orreq r6, r6, #0x80 +_020CA6F0: + ldrsb r1, [r9, #0x0] + cmp r1, #0x69 + bgt _020CA740 + cmp r1, #0x63 + blt _020CA720 + cmp r1, #0x63 + beq _020CA7B4 + cmp r1, #0x64 + beq _020CA96C + cmp r1, #0x69 + beq _020CA96C + b _020CA950 +_020CA720: + cmp r1, #0x25 + bgt _020CA734 + cmp r1, #0x25 + beq _020CA934 + b _020CA950 +_020CA734: + cmp r1, #0x58 + beq _020CA7A0 + b _020CA950 +_020CA740: + cmp r1, #0x6e + bgt _020CA754 + cmp r1, #0x6e + beq _020CA8DC + b _020CA950 +_020CA754: + sub r1, r1, #0x6f + cmp r1, #0x9 + addls pc, pc, r1, lsl #0x2 + b _020CA950 +_020CA764: + b _020CA78C + b _020CA7A8 + b _020CA950 + b _020CA950 + b _020CA828 + b _020CA950 + b _020CA798 + b _020CA950 + b _020CA950 + b _020CA964 +_020CA78C: + ldr r2, [sp, #0x14] + orr r6, r6, #0x1000 + b _020CA96C +_020CA798: + orr r6, r6, #0x1000 + b _020CA96C +_020CA7A0: + ldr r0, [sp, #0x18] + b _020CA964 +_020CA7A8: + orr r6, r6, #0x4 + ldr r5, [sp, #0x14] + b _020CA964 +_020CA7B4: + cmp r5, #0x0 + bge _020CA950 + ands r0, r6, #0x8 + add r11, r11, #0x4 + ldr r4, [r11, #-0x4] + beq _020CA7F0 + mov r0, r4, lsl #0x18 + mov r1, r0, asr #0x18 + add r0, sp, #0x54 + bl string_put_char + ldr r1, [sp, #0x1c] + sub r2, r10, #0x1 + add r0, sp, #0x54 + bl string_fill_char + b _020CA820 +_020CA7F0: + ands r0, r6, #0x10 + ldrne r0, [sp, #0x20] + sub r2, r10, #0x1 + ldreq r0, [sp, #0x1c] + mov r0, r0, lsl #0x18 + mov r1, r0, asr #0x18 + add r0, sp, #0x54 + bl string_fill_char + mov r0, r4, lsl #0x18 + mov r1, r0, asr #0x18 + add r0, sp, #0x54 + bl string_put_char +_020CA820: + add r9, r9, #0x1 + b _020CAD0C +_020CA828: + add fp, fp, #0x4 + cmp r5, #0x0 + ldr r7, [sp, #0x4] + ldr r4, [fp, #-0x4] + bge _020CA860 + ldrsb r0, [r4] + cmp r0, #0x0 + beq _020CA874 +_020CA848: + add r7, r7, #0x1 + ldrsb r0, [r4, r7] + cmp r0, #0x0 + bne _020CA848 + b _020CA874 +_020CA85C: + add r7, r7, #0x1 +_020CA860: + cmp r7, r5 + bge _020CA874 + ldrsb r0, [r4, r7] + cmp r0, #0x0 + bne _020CA85C +_020CA874: + ands r0, r6, #0x8 + sub sl, sl, r7 + beq _020CA8A4 + mov r1, r4 + mov r2, r7 + add r0, sp, #0x54 + bl string_put_string + ldr r1, [sp, #0x1C] + mov r2, sl + add r0, sp, #0x54 + bl string_fill_char + b _020CA8D4 +_020CA8A4: + ands r0, r6, #0x10 + ldrne r0, [sp, #0x20] + mov r2, sl + ldreq r0, [sp, #0x1C] + mov r0, r0, lsl #0x18 + mov r1, r0, asr #0x18 + add r0, sp, #0x54 + bl string_fill_char + mov r1, r4 + mov r2, r7 + add r0, sp, #0x54 + bl string_put_string +_020CA8D4: + add r9, r9, #0x1 + b _020CAD0C +_020CA8DC: + ands r0, r6, #0x100 + ldr r1, [sp, #0x58] + ldr r0, [sp, #0x5c] + sub r2, r1, r0 + bne _020CA92C + ands r0, r6, #0x40 + addne r11, r11, #0x4 + ldrne r0, [r11, #-0x4] + strneh r2, [r0, #0x0] + bne _020CA92C + ands r0, r6, #0x80 + addeq r11, r11, #0x4 + ldreq r0, [r11, #-0x4] + streq r2, [r0, #0x0] + beq _020CA92C + add r11, r11, #0x4 + ldr r0, [r11, #-0x4] + mov r1, r2, asr #0x1f + str r2, [r0, #0x0] + str r1, [r0, #0x4] +_020CA92C: + add r9, r9, #0x1 + b _020CAD0C +_020CA934: + add r0, r3, #0x1 + cmp r0, r9 + bne _020CA950 + add r0, sp, #0x54 + add r9, r9, #0x1 + bl string_put_char + b _020CAD0C +_020CA950: + add r0, sp, #0x54 + mov r1, r3 + sub r2, r9, r3 + bl string_put_string + b _020CAD0C +_020CA964: + ldr r2, [sp, #0x24] + orr r6, r6, #0x1000 +_020CA96C: + ands r1, r6, #0x8 + bicne r6, r6, #0x10 + cmp r5, #0x0 + bicge r6, r6, #0x10 + ldrlt r5, [sp, #0x28] + ldr r7, [sp, #0x4] + ands r1, r6, #0x1000 + beq _020CAA20 + ands r1, r6, #0x100 + addne r11, r11, #0x4 + ldrneb r4, [r11, #-0x4] + movne r1, #0x0 + bne _020CA9D0 + ands r1, r6, #0x40 + addne r11, r11, #0x4 + ldrneh r4, [r11, #-0x4] + movne r1, #0x0 + bne _020CA9D0 + ands r1, r6, #0x80 + addne r11, r11, #0x8 + ldrne r1, [r11, #-0x4] + ldrne r4, [r11, #-0x8] + addeq r11, r11, #0x4 + ldreq r4, [r11, #-0x4] + moveq r1, #0x0 +_020CA9D0: + bic r6, r6, #0x3 + ands r3, r6, #0x4 + beq _020CAAD8 + cmp r2, #0x10 + bne _020CAA0C + mov r3, #0x0 + cmp r1, r3 + cmpeq r4, r3 + beq _020CAAD8 + ldr r3, [sp, #0x20] + ldr r7, [sp, #0x2c] + strb r3, [sp, #0x39] + add r3, r0, #0x21 + strb r3, [sp, #0x38] + b _020CAAD8 +_020CAA0C: + cmp r2, #0x8 + ldreq r3, [sp, #0x20] + ldreq r7, [sp, #0x28] + streqb r3, [sp, #0x38] + b _020CAAD8 +_020CAA20: + ands r1, r6, #0x100 + addne r11, r11, #0x4 + ldrnesb r4, [r11, #-0x4] + movne r1, r4, asr #0x1f + bne _020CAA64 + ands r1, r6, #0x40 + addne r11, r11, #0x4 + ldrnesh r4, [r11, #-0x4] + movne r1, r4, asr #0x1f + bne _020CAA64 + ands r1, r6, #0x80 + addne r11, r11, #0x8 + ldrne r4, [r11, #-0x8] + ldrne r1, [r11, #-0x4] + addeq r11, r11, #0x4 + ldreq r4, [r11, #-0x4] + moveq r1, r4, asr #0x1f +_020CAA64: + mov r3, #0x0 + and r8, r3, #0x0 + cmp r8, r3 + and r8, r1, #0x80000000 + cmpeq r8, r3 + beq _020CAAA0 + ldr r7, [sp, #0x30] + mvn r4, r4 + strb r7, [sp, #0x38] + mvn r7, r1 + mov r1, #0x1 + adds r4, r4, r1 + adc r1, r7, r3 + ldr r7, [sp, #0x28] + b _020CAAD8 +_020CAAA0: + cmp r1, r3 + cmpeq r4, r3 + bne _020CAAB4 + cmp r5, #0x0 + beq _020CAAD8 +_020CAAB4: + ands r3, r6, #0x2 + ldrne r3, [sp, #0x34] + ldrne r7, [sp, #0x28] + strneb r3, [sp, #0x38] + bne _020CAAD8 + ands r3, r6, #0x1 + ldrne r3, [sp, #0x1c] + ldrne r7, [sp, #0x28] + strneb r3, [sp, #0x38] +_020CAAD8: + cmp r2, #0x8 + ldr r8, [sp, #0x4] + beq _020CAAF8 + cmp r2, #0xa + beq _020CAB40 + cmp r2, #0x10 + beq _020CABDC + b _020CAC28 +_020CAAF8: + mov r0, #0x0 + cmp r1, r0 + cmpeq r4, r0 + beq _020CAC28 +_020CAB08: + and r0, r4, #0x7 + add r3, r0, #0x30 + add r0, sp, #0x3a + strb r3, [r0, r8] + mov r4, r4, lsr #0x3 + mov r2, #0x0 + mov r0, r1, lsr #0x3 + orr r4, r4, r1, lsl #0x1d + cmp r0, r2 + cmpeq r4, r2 + mov r1, r0 + add r8, r8, #0x1 + bne _020CAB08 + b _020CAC28 +_020CAB40: + mov r0, #0x0 + cmp r0, r0 + cmpeq r1, r0 + bne _020CAB8C + cmp r4, #0x0 + beq _020CAC28 +_020CAB58: + ldr r0, _020CAD60 ; =0xCCCCCCCD + umull r1, r0, r4, r0 + movs r0, r0, lsr #0x3 + mov r1, #0xa + mul r1, r0, r1 + sub r1, r4, r1 + mov r4, r0 + add r1, r1, #0x30 + add r0, sp, #0x3a + strb r1, [r0, r8] + add r8, r8, #0x1 + bne _020CAB58 + b _020CAC28 +_020CAB8C: + cmp r1, r0 + cmpeq r4, r0 + beq _020CAC28 +_020CAB98: + ldr r2, [sp, #0xc] + ldr r3, [sp, #0x4] + mov r0, r4 + bl _ll_udiv + mov r3, #0xa + umull r3, r12, r0, r3 + subs r3, r4, r3 + mov r2, #0x0 + add r4, r3, #0x30 + add r3, sp, #0x3a + strb r4, [r3, r8] + cmp r1, r2 + cmpeq r0, r2 + mov r4, r0 + add r8, r8, #0x1 + bne _020CAB98 + b _020CAC28 +_020CABDC: + mov r2, #0x0 + cmp r1, r2 + cmpeq r4, r2 + beq _020CAC28 +_020CABEC: + and r3, r4, #0xf + cmp r3, #0xa + mov r4, r4, lsr #0x4 + addlt r3, r3, #0x30 + mov r2, r1, lsr #0x4 + orr r4, r4, r1, lsl #0x1c + mov r1, r2 + addge r3, r3, r0 + add r2, sp, #0x3a + strb r3, [r2, r8] + mov r2, #0x0 + cmp r1, r2 + add r8, r8, #0x1 + cmpeq r4, r2 + bne _020CABEC +_020CAC28: + cmp r7, #0x0 + ble _020CAC4C + ldrsb r0, [sp, #0x38] + cmp r0, #0x30 + ldreq r1, [sp, #0x20] + addeq r0, sp, #0x3a + streqb r1, [r0, r8] + ldreq r7, [sp, #0x4] + addeq r8, r8, #0x1 +_020CAC4C: + sub r5, r5, r8 + ands r0, r6, #0x10 + beq _020CAC68 + sub r0, r10, r8 + sub r0, r0, r7 + cmp r5, r0 + movlt r5, r0 +_020CAC68: + cmp r5, #0x0 + subgt r10, r10, r5 + add r0, r7, r8 + ands r6, r6, #0x8 + sub r10, r10, r0 + bne _020CAC90 + ldr r1, [sp, #0x1c] + add r0, sp, #0x54 + mov r2, r10 + bl string_fill_char +_020CAC90: + cmp r7, #0x0 + ble _020CACB8 + add r0, sp, #0x38 + add r4, r0, r7 +_020CACA0: + ldrsb r1, [r4, #-0x1]! + sub r7, r7, #0x1 + add r0, sp, #0x54 + bl string_put_char +_020CACB0: + cmp r7, #0x0 + bgt _020CACA0 +_020CACB8: + ldr r1, [sp, #0x20] + mov r2, r5 + add r0, sp, #0x54 + bl string_fill_char +_020CACC8: + cmp r8, #0x0 + ble _020CACF0 + add r0, sp, #0x3A + add r4, r0, r8 +_020CACD8: + ldrsb r1, [r4, #-0x1]! + sub r8, r8, #0x1 + add r0, sp, #0x54 + bl string_put_char + cmp r8, #0x0 + bgt _020CACD8 +_020CACF0: + cmp r6, #0x0 + beq _020CAD08 + ldr r1, [sp, #0x1C] + mov r2, sl + add r0, sp, #0x54 + bl string_fill_char +_020CAD08: + add r9, r9, #0x1 +_020CAD0C: + ldrsb r0, [r9, #0x0] + cmp r0, #0x0 + bne _020CA530 +_020CAD18: + ldr r0, [sp, #0x54] + cmp r0, #0x0 + ldrne r0, [sp, #0x58] + movne r1, #0x0 + strneb r1, [r0, #0x0] + bne _020CAD48 + ldr r0, [sp, #0x0] + cmp r0, #0x0 + ldrne r1, [sp, #0x5c] + movne r2, #0x0 + addne r0, r1, r0 + strneb r2, [r0, #-0x1] +_020CAD48: + ldr r1, [sp, #0x58] + ldr r0, [sp, #0x5c] + sub r0, r1, r0 + add sp, sp, #0x64 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020CAD60: .word 0xCCCCCCCD + + arm_func_start OS_SNPrintf +OS_SNPrintf: ; 0x020CAD64 + stmdb sp!, {r0-r3} + stmdb sp!, {lr} + sub sp, sp, #0x4 + add r3, sp, #0x10 + bic r3, r3, #0x3 + ldr r2, [sp, #0x10] + add r3, r3, #0x4 + bl OS_VSNPrintf + add sp, sp, #0x4 + ldmia sp!, {lr} + add sp, sp, #0x10 + bx lr + + arm_func_start OS_VSPrintf +OS_VSPrintf: ; 0x020CAD94 + ldr ip, _020CADA8 ; =OS_VSNPrintf + mov r3, r2 + mov r2, r1 + mvn r1, #0x80000000 + bx r12 + .balign 4 +_020CADA8: .word OS_VSNPrintf + + arm_func_start OS_SPrintf +OS_SPrintf: ; 0x020CADAC + stmdb sp!, {r0-r3} + stmdb sp!, {lr} + sub sp, sp, #0x4 + add r2, sp, #0xc + bic r2, r2, #0x3 + ldr r1, [sp, #0xc] + add r2, r2, #0x4 + bl OS_VSPrintf + add sp, sp, #0x4 + ldmia sp!, {lr} + add sp, sp, #0x10 + bx lr + + arm_func_start string_put_string +string_put_string: ; 0x020CADDC + stmdb sp!, {r4,lr} + cmp r2, #0x0 + ldmleia sp!, {r4,lr} + bxle lr + ldr lr, [r0, #0x0] + mov r4, #0x0 + cmp lr, r2 + movhi lr, r2 + cmp lr, #0x0 + bls _020CAE1C +_020CAE04: + ldrsb r12, [r1, r4] + ldr r3, [r0, #0x4] + strb r12, [r3, r4] + add r4, r4, #0x1 + cmp r4, lr + blo _020CAE04 +_020CAE1C: + ldr r1, [r0, #0x0] + sub r1, r1, lr + str r1, [r0, #0x0] + ldr r1, [r0, #0x4] + add r1, r1, r2 + str r1, [r0, #0x4] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start string_fill_char +string_fill_char: + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r2, #0x0 + addle sp, sp, #0x4 + ldmleia sp!, {lr} + bxle lr + ldr r12, [r0, #0x0] + mov lr, #0x0 + cmp r12, r2 + movhi r12, r2 + cmp r12, #0x0 + bls _020CAE80 +_020CAE6C: + ldr r3, [r0, #0x4] + strb r1, [r3, lr] + add lr, lr, #0x1 + cmp lr, r12 + blo _020CAE6C +_020CAE80: + ldr r1, [r0, #0x0] + sub r1, r1, r12 + str r1, [r0, #0x0] + ldr r1, [r0, #0x4] + add r1, r1, r2 + str r1, [r0, #0x4] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start string_put_char +string_put_char: + ldr r2, [r0, #0x0] + cmp r2, #0x0 + ldrne r2, [r0, #0x4] + strneb r1, [r2, #0x0] + ldrne r1, [r0, #0x0] + subne r1, r1, #0x1 + strne r1, [r0, #0x0] + ldr r1, [r0, #0x4] + add r1, r1, #0x1 + str r1, [r0, #0x4] + bx lr + + arm_func_start FUN_020CAED0 +FUN_020CAED0: ; 0x020CAED0 + ldr r0, _020CAEDC ; =0x021D3494 + ldr r0, [r0, #0x0] + bx lr + .balign 4 +_020CAEDC: .word 0x021D3494 + + arm_func_start OS_SetThreadDestructor +OS_SetThreadDestructor: + str r1, [r0, #0xb4] + bx lr + + arm_func_start OS_EnableScheduler +OS_EnableScheduler: ; 0x020CAEE8 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020CAF1C ; =0x021D3484 + mov r4, #0x0 + ldr r3, [r1, #0x0] + cmp r3, #0x0 + subne r2, r3, #0x1 + movne r4, r3 + strne r2, [r1, #0x0] + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CAF1C: .word 0x021D3484 + + arm_func_start OS_DisableScheduler +OS_DisableScheduler: ; 0x020CAF20 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r2, _020CAF54 ; =0x021D3484 + mvn r1, #0x0 + ldr r3, [r2, #0x0] + cmp r3, r1 + addcc r1, r3, #0x1 + movcc r4, r3 + strcc r1, [r2, #0x0] + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CAF54: .word 0x021D3484 + + arm_func_start OSi_IdleThreadProc +OSi_IdleThreadProc: ; 0x020CAF58 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl OS_EnableInterrupts +_020CAF64: + bl OS_Halt + b _020CAF64 + + arm_func_start OS_SetSwitchThreadCallback +OS_SetSwitchThreadCallback: ; 0x020CAF6C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020CAF9C ; =0x021D3498 + ldr r4, [r1, #0xc] + str r5, [r1, #0xc] + bl OS_RestoreInterrupts + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CAF9C: .word 0x021D3498 + + arm_func_start OSi_SleepAlarmCallback +OSi_SleepAlarmCallback: ; 0x020CAFA0 + ldr r2, [r0, #0x0] + mov r1, #0x0 + str r1, [r0, #0x0] + ldr ip, _020CAFBC ; =OS_WakeupThreadDirect + mov r0, r2 + str r1, [r2, #0xb0] + bx r12 + .balign 4 +_020CAFBC: .word OS_WakeupThreadDirect + + arm_func_start OS_Sleep +OS_Sleep: ; 0x020CAFC0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x34 + mov r4, r0 + add r0, sp, #0x8 + bl OS_CreateAlarm + ldr r0, _020CB060 ; =0x021D3490 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + str r0, [sp, #0x4] + bl OS_DisableInterrupts + ldr r1, _020CB064 ; =0x000082EA + mov r2, #0x0 + umull r5, r3, r4, r1 + mla r3, r4, r2, r3 + mla r3, r2, r1, r3 + mov r1, r5, lsr #0x6 + mov r4, r0 + ldr r5, [sp, #0x4] + add r0, sp, #0x8 + add r2, sp, #0x4 + str r0, [r5, #0xb0] + str r2, [sp, #0x0] + mov r2, r3, lsr #0x6 + orr r1, r1, r3, lsl #0x1a + ldr r3, _020CB068 ; =OSi_SleepAlarmCallback + bl OS_SetAlarm + ldr r0, [sp, #0x4] + cmp r0, #0x0 + beq _020CB04C + mov r5, #0x0 +_020CB038: + mov r0, r5 + bl OS_SleepThread + ldr r0, [sp, #0x4] + cmp r0, #0x0 + bne _020CB038 +_020CB04C: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x34 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CB060: .word 0x021D3490 +_020CB064: .word 0x000082EA +_020CB068: .word OSi_SleepAlarmCallback + + arm_func_start OS_GetThreadPriority +OS_GetThreadPriority: ; 0x020CB06C + ldr r0, [r0, #0x70] + bx lr + + arm_func_start OS_SetThreadPriority +OS_SetThreadPriority: ; 0x020CB074 + stmdb sp!, {r4-r8,lr} + ldr r2, _020CB120 ; =0x021D3498 + mov r6, r0 + mov r5, r1 + ldr r8, [r2, #0x8] + mov r7, #0x0 + bl OS_DisableInterrupts + mov r4, r0 + b _020CB0A0 +_020CB098: + mov r7, r8 + ldr r8, [r8, #0x68] +_020CB0A0: + cmp r8, #0x0 + beq _020CB0B0 + cmp r8, r6 + bne _020CB098 +_020CB0B0: + cmp r8, #0x0 + beq _020CB0C4 + ldr r0, _020CB124 ; =0x021D34A8 + cmp r8, r0 + bne _020CB0D8 +_020CB0C4: + mov r0, r4 + bl OS_RestoreInterrupts +_020CB0CC: + mov r0, #0x0 + ldmia sp!, {r4-r8,lr} + bx lr +_020CB0D8: + ldr r0, [r8, #0x70] + cmp r0, r5 + beq _020CB10C + cmp r7, #0x0 + ldreq r1, [r6, #0x68] + ldreq r0, _020CB120 ; =0x021D3498 + streq r1, [r0, #0x8] + ldrne r0, [r6, #0x68] + strne r0, [r7, #0x68] + mov r0, r6 + str r5, [r6, #0x70] + bl OSi_InsertThreadToList + bl OSi_RescheduleThread +_020CB10C: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020CB120: .word 0x021D3498 +_020CB124: .word 0x021D34A8 + + arm_func_start OS_YieldThread +OS_YieldThread: ; 0x020CB128 + stmdb sp!, {r4-r8,lr} + ldr r0, _020CB1E0 ; =0x021D3498 + mov r7, #0x0 + mov r6, r7 + mov r5, r7 + ldr r8, [r0, #0x4] + bl OS_DisableInterrupts + ldr r1, _020CB1E0 ; =0x021D3498 + mov r4, r0 + ldr r2, [r1, #0x8] + mov r0, r7 + cmp r2, #0x0 + beq _020CB188 + ldr r1, [r8, #0x70] +_020CB160: + cmp r2, r8 + moveq r7, r0 + ldr r0, [r2, #0x70] + cmp r1, r0 + moveq r6, r2 + mov r0, r2 + ldr r2, [r2, #0x68] + addeq r5, r5, #0x1 + cmp r2, #0x0 + bne _020CB160 +_020CB188: + cmp r5, #0x1 + ble _020CB198 + cmp r6, r8 + bne _020CB1A8 +_020CB198: + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr +_020CB1A8: + cmp r7, #0x0 + ldreq r1, [r8, #0x68] + ldreq r0, _020CB1E0 ; =0x021D3498 + streq r1, [r0, #0x8] + ldrne r0, [r8, #0x68] + strne r0, [r7, #0x68] + ldr r0, [r6, #0x68] + str r0, [r8, #0x68] + str r8, [r6, #0x68] + bl OSi_RescheduleThread + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020CB1E0: .word 0x021D3498 + + arm_func_start OS_RescheduleThread +OS_RescheduleThread: ; 0x020CB1E4 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + mov r4, r0 + bl OSi_RescheduleThread + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr + + arm_func_start OS_SelectThread +OS_SelectThread: ; 0x020CB204 + ldr r0, _020CB22C ; =0x021D3498 + ldr r0, [r0, #0x8] + b _020CB214 +_020CB210: + ldr r0, [r0, #0x68] +_020CB214: + cmp r0, #0x0 + bxeq lr + ldr r1, [r0, #0x64] + cmp r1, #0x1 + bne _020CB210 + bx lr + .balign 4 +_020CB22C: .word 0x021D3498 + + arm_func_start OS_WakeupThreadDirect +OS_WakeupThreadDirect: ; 0x020CB230 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + mov r1, #0x1 + mov r4, r0 + str r1, [r5, #0x64] + bl OSi_RescheduleThread + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start OS_WakeupThread +OS_WakeupThread: ; 0x020CB264 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, [r5, #0x0] + mov r4, r0 + cmp r1, #0x0 + beq _020CB2D0 + cmp r1, #0x0 + beq _020CB2BC + mov r7, #0x1 + mov r6, #0x0 +_020CB294: + mov r0, r5 + bl OSi_RemoveLinkFromQueue + str r7, [r0, #0x64] + str r6, [r0, #0x78] + str r6, [r0, #0x80] + ldr r1, [r0, #0x80] + str r1, [r0, #0x7c] + ldr r0, [r5, #0x0] + cmp r0, #0x0 + bne _020CB294 +_020CB2BC: + mov r0, #0x0 + str r0, [r5, #0x4] + ldr r0, [r5, #0x4] + str r0, [r5, #0x0] + bl OSi_RescheduleThread +_020CB2D0: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start OS_SleepThread +OS_SleepThread: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + bl OS_DisableInterrupts + ldr r1, _020CB334 ; =0x021D3490 + mov r5, r0 + ldr r0, [r1, #0x0] + cmp r6, #0x0 + ldr r4, [r0, #0x0] + beq _020CB318 + mov r0, r6 + mov r1, r4 + str r6, [r4, #0x78] + bl OSi_InsertLinkToQueue +_020CB318: + mov r0, #0x0 + str r0, [r4, #0x64] + bl OSi_RescheduleThread + mov r0, r5 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020CB334: .word 0x021D3490 + + arm_func_start OS_IsThreadTerminated +OS_IsThreadTerminated: ; 0x020CB338 + ldr r0, [r0, #0x64] + cmp r0, #0x2 + moveq r0, #0x1 + movne r0, #0x0 + bx lr + + arm_func_start OS_JoinThread +OS_JoinThread: ; 0x020CB34C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, [r5, #0x64] + mov r4, r0 + cmp r1, #0x2 + beq _020CB374 + add r0, r5, #0x9c + bl OS_SleepThread +_020CB374: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start OSi_CancelThreadAlarmForSleep +OSi_CancelThreadAlarmForSleep: ; 0x020CB388 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, [r0, #0xb0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + bl OS_CancelAlarm + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start OS_DestroyThread +OS_DestroyThread: ; 0x020CB3B4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020CB438 ; =0x021D3498 + mov r4, r0 + ldr r0, [r1, #0x4] + cmp r0, r5 + bne _020CB3DC + bl OSi_ExitThread_Destroy +_020CB3DC: + bl OS_DisableScheduler + mov r0, r5 + bl OSi_UnlockAllMutex + mov r0, r5 + bl OSi_CancelThreadAlarmForSleep + ldr r0, [r5, #0x78] + cmp r0, #0x0 + beq _020CB404 + mov r1, r5 + bl OSi_RemoveSpecifiedLinkFromQueue +_020CB404: + mov r0, r5 + bl OSi_RemoveThreadFromList + mov r1, #0x2 + add r0, r5, #0x9c + str r1, [r5, #0x64] + bl OS_WakeupThread + bl OS_EnableScheduler + mov r0, r4 + bl OS_RestoreInterrupts + bl OS_RescheduleThread + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CB438: .word 0x021D3498 + + arm_func_start OSi_ExitThread_Destroy +OSi_ExitThread_Destroy: ; 0x020CB43C + stmdb sp!, {r4,lr} + ldr r0, _020CB498 ; =0x021D3490 + ldr r0, [r0, #0x0] + ldr r4, [r0, #0x0] + bl OS_DisableScheduler + mov r0, r4 + bl OSi_UnlockAllMutex + ldr r0, [r4, #0x78] + cmp r0, #0x0 + beq _020CB46C + mov r1, r4 + bl OSi_RemoveSpecifiedLinkFromQueue +_020CB46C: + mov r0, r4 + bl OSi_RemoveThreadFromList + mov r1, #0x2 + add r0, r4, #0x9c + str r1, [r4, #0x64] + bl OS_WakeupThread + bl OS_EnableScheduler + bl OS_RescheduleThread + bl OS_Terminate + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CB498: .word 0x021D3490 + + arm_func_start OSi_ExitThread_Destroy2 +OSi_ExitThread_Destroy2: ; 0x020CB49C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020CB4DC ; =0x021D3490 + ldr r1, [r1, #0x0] + ldr r3, [r1, #0x0] + ldr r2, [r3, #0xb4] + cmp r2, #0x0 + beq _020CB4CC + mov r1, #0x0 + str r1, [r3, #0xb4] + blx r2 + bl OS_DisableInterrupts +_020CB4CC: + bl OSi_ExitThread_Destroy + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CB4DC: .word 0x021D3490 + + arm_func_start OSi_ExitThread_ArgSpecified +OSi_ExitThread_ArgSpecified: ; 0x020CB4E0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r2, _020CB548 ; =0x021D3480 + mov r5, r0 + ldr r2, [r2, #0x0] + mov r4, r1 + cmp r2, #0x0 + beq _020CB534 + ldr r1, _020CB54C ; =OSi_ExitThread_Destroy2 + bl OS_InitContext + str r4, [r5, #0x4] + ldr r1, [r5, #0x0] + mov r0, r5 + orr r1, r1, #0x80 + str r1, [r5, #0x0] + mov r1, #0x1 + str r1, [r5, #0x64] + bl OS_LoadContext + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020CB534: + mov r0, r4 + bl OSi_ExitThread_Destroy2 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CB548: .word 0x021D3480 +_020CB54C: .word OSi_ExitThread_Destroy2 + + arm_func_start OS_ExitThread +OS_ExitThread: ; 0x020CB550 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl OS_DisableInterrupts + ldr r0, _020CB578 ; =0x021D3498 + mov r1, #0x0 + ldr r0, [r0, #0x4] + bl OSi_ExitThread_ArgSpecified + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CB578: .word 0x021D3498 + + arm_func_start OS_CreateThread +OS_CreateThread: ; 0x020CB57C + stmdb sp!, {r4-r8,lr} + mov r8, r0 + mov r5, r1 + mov r7, r2 + mov r6, r3 + bl OS_DisableInterrupts + mov r4, r0 + bl OSi_GetUnusedThreadId + ldr r2, [sp, #0x1c] + mov r1, #0x0 + str r2, [r8, #0x70] + str r0, [r8, #0x6c] + str r1, [r8, #0x64] + str r1, [r8, #0x74] + mov r0, r8 + bl OSi_InsertThreadToList + mov r1, r5 + str r6, [r8, #0x94] + ldr r0, [sp, #0x18] + mov r12, #0x0 + sub r5, r6, r0 + sub r2, r6, #0x4 + str r5, [r8, #0x90] + str r12, [r8, #0x98] + ldr r3, _020CB678 ; =0xFDDB597D + ldr r0, [r8, #0x94] + ldr r6, _020CB67C ; =0x7BF9DD5B + str r3, [r0, #-0x4] + ldr r3, [r8, #0x90] + mov r0, r8 + str r6, [r3, #0x0] + str r12, [r8, #0xa0] + ldr r3, [r8, #0xa0] + str r3, [r8, #0x9c] + bl OS_InitContext + str r7, [r8, #0x4] + add r1, r5, #0x4 + ldr r2, _020CB680 ; =OS_ExitThread + mov r0, #0x0 + str r2, [r8, #0x3c] + ldr r2, [sp, #0x18] + sub r2, r2, #0x8 + bl MIi_CpuClear32 + mov r1, #0x0 + str r1, [r8, #0x84] + str r1, [r8, #0x88] + str r1, [r8, #0x8c] + mov r0, r8 + bl OS_SetThreadDestructor +_020CB640: + mov r0, #0x0 + str r0, [r8, #0x78] + str r0, [r8, #0x80] + ldr r2, [r8, #0x80] + add r1, r8, #0xA4 + str r2, [r8, #0x7C] + mov r2, #0xC + bl MIi_CpuClear32 + mov r0, r4 + mov r1, #0x0 + str r1, [r8, #0xB0] + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8, lr} + bx lr +_020CB678: .word 0xFDDB597D +_020CB67C: .word 0x7BF9DD5B +_020CB680: .word OS_ExitThread + + arm_func_start OS_InitThread +OS_InitThread: ; 0x020CB684 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + ldr r3, _020CB7A4 ; =0x021D3494 + ldr r0, [r3, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x8 + ldmneia sp!, {r4-r6,lr} + bxne lr + ldr ip, _020CB7A8 ; =0x00000000 + ldr r1, _020CB7AC ; =0x021D3568 + mov lr, #0x0 + ldr r0, _020CB7B0 ; =0x021D3498 + mov r6, #0x1 + mov r4, #0x10 + str r1, [r0, #0x8] + str r1, [r0, #0x4] + cmp r12, #0x0 + ldrle r0, _020CB7B4 ; =0x027E0080 + str r4, [r1, #0x70] + suble r4, r0, r12 + str lr, [r1, #0x6c] + str r6, [r1, #0x64] + str lr, [r1, #0x68] + str lr, [r1, #0x74] + ldrgt r1, _020CB7B8 ; =0x027E0000 + ldrgt r0, _020CB7BC ; =0x00000400 + addgt r1, r1, #0x3f80 + subgt r0, r1, r0 + subgt r4, r0, r12 + ldr r1, _020CB7B8 ; =0x027E0000 + ldr r5, _020CB7C0 ; =0x021D349C + ldr r2, _020CB7C4 ; =0x021D3490 + ldr r0, _020CB7BC ; =0x00000400 + str r5, [r2, #0x0] + ldr r2, _020CB7AC ; =0x021D3568 + add r1, r1, #0x3f80 + str r6, [r3, #0x0] + sub r3, r1, r0 + mov r0, #0x0 + ldr r1, _020CB7C8 ; =0xFDDB597D + str r3, [r2, #0x94] + str r4, [r2, #0x90] + str r0, [r2, #0x98] + str r1, [r3, #-0x4] + ldr r3, [r2, #0x90] + ldr ip, _020CB7CC ; =0x7BF9DD5B + ldr r1, _020CB7B0 ; =0x021D3498 + str r12, [r3, #0x0] + ldr r3, _020CB7D0 ; =0x027FFFA0 + str r0, [r2, #0xa0] + str r0, [r2, #0x9c] + strh r0, [r1, #0x0] + strh r0, [r1, #0x2] + str r1, [r3, #0x0] + bl OS_SetSwitchThreadCallback + mov r2, #0xc8 + str r2, [sp, #0x0] + mov r12, #0x1f + ldr r0, _020CB7D4 ; =0x021D34A8 + ldr r1, _020CB7D8 ; =OSi_IdleThreadProc + ldr r3, _020CB7DC ; =0x021D36F0 + mov r2, #0x0 + str r12, [sp, #0x4] + bl OS_CreateThread + ldr r0, _020CB7D4 ; =0x021D34A8 + mov r2, #0x20 + mov r1, #0x1 + str r2, [r0, #0x70] + str r1, [r0, #0x64] + add sp, sp, #0x8 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020CB7A4: .word 0x021D3494 +_020CB7A8: .word 0x00000000 +_020CB7AC: .word 0x021D3568 +_020CB7B0: .word 0x021D3498 +_020CB7B4: .word 0x027E0080 +_020CB7B8: .word 0x027E0000 +_020CB7BC: .word 0x00000400 +_020CB7C0: .word 0x021D349C +_020CB7C4: .word 0x021D3490 +_020CB7C8: .word 0xFDDB597D +_020CB7CC: .word 0x7BF9DD5B +_020CB7D0: .word 0x027FFFA0 +_020CB7D4: .word 0x021D34A8 +_020CB7D8: .word OSi_IdleThreadProc +_020CB7DC: .word 0x021D36F0 + + arm_func_start OSi_RescheduleThread +OSi_RescheduleThread: ; 0x020CB7E0 + stmdb sp!, {r4-r6,lr} + ldr r0, _020CB8BC ; =0x021D3484 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + ldmneia sp!, {r4-r6,lr} + bxne lr + ldr r4, _020CB8C0 ; =0x021D3498 + ldrh r0, [r4, #0x2] + cmp r0, #0x0 + bne _020CB814 + bl OS_GetProcMode + cmp r0, #0x12 + bne _020CB824 +_020CB814: + mov r0, #0x1 + strh r0, [r4, #0x0] + ldmia sp!, {r4-r6,lr} + bx lr +_020CB824: + ldr r0, _020CB8C4 ; =0x021D3490 + ldr r0, [r0, #0x0] + ldr r6, [r0, #0x0] + bl OS_SelectThread + mov r5, r0 + cmp r6, r5 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + cmp r5, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r0, [r6, #0x64] + cmp r0, #0x2 + beq _020CB870 + mov r0, r6 + bl OS_SaveContext +_020CB864: + cmp r0, #0x0 + ldmneia sp!, {r4-r6,lr} + bxne lr +_020CB870: + ldr r0, _020CB8C8 ; =0x021D348C + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _020CB88C + mov r0, r6 + mov r1, r5 + blx r2 +_020CB88C: + ldr r2, [r4, #0xc] + cmp r2, #0x0 + beq _020CB8A4 + mov r0, r6 + mov r1, r5 + blx r2 +_020CB8A4: + ldr r1, _020CB8C0 ; =0x021D3498 + mov r0, r5 + str r5, [r1, #0x4] + bl OS_LoadContext + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020CB8BC: .word 0x021D3484 +_020CB8C0: .word 0x021D3498 +_020CB8C4: .word 0x021D3490 +_020CB8C8: .word 0x021D348C + + arm_func_start OSi_RemoveThreadFromList +OSi_RemoveThreadFromList: ; 0x020CB8CC + ldr r1, _020CB910 ; =0x021D3498 + mov r2, #0x0 + ldr r1, [r1, #0x8] + b _020CB8E4 +_020CB8DC: + mov r2, r1 + ldr r1, [r1, #0x68] +_020CB8E4: + cmp r1, #0x0 + beq _020CB8F4 + cmp r1, r0 + bne _020CB8DC +_020CB8F4: + cmp r2, #0x0 + ldreq r1, [r0, #0x68] + ldreq r0, _020CB910 ; =0x021D3498 + streq r1, [r0, #0x8] + ldrne r0, [r0, #0x68] + strne r0, [r2, #0x68] + bx lr + .balign 4 +_020CB910: .word 0x021D3498 + + arm_func_start OSi_InsertThreadToList +OSi_InsertThreadToList: ; 0x020CB914 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020CB978 ; =0x021D3498 + mov r12, #0x0 + ldr r3, [r1, #0x8] + mov lr, r3 + b _020CB938 +_020CB930: + mov r12, lr + ldr lr, [lr, #0x68] +_020CB938: + cmp lr, #0x0 + beq _020CB950 + ldr r2, [lr, #0x70] + ldr r1, [r0, #0x70] + cmp r2, r1 + blo _020CB930 +_020CB950: + cmp r12, #0x0 + ldreq r1, _020CB978 ; =0x021D3498 + streq r3, [r0, #0x68] + streq r0, [r1, #0x8] + ldrne r1, [r12, #0x68] + strne r1, [r0, #0x68] + strne r0, [r12, #0x68] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CB978: .word 0x021D3498 + + arm_func_start OSi_RemoveMutexLinkFromQueue +OSi_RemoveMutexLinkFromQueue: ; 0x020CB97C + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _020CB9A4 + ldr r1, [r2, #0x10] + str r1, [r0, #0x0] + cmp r1, #0x0 + movne r0, #0x0 + strne r0, [r1, #0x14] + moveq r1, #0x0 + streq r1, [r0, #0x4] +_020CB9A4: + mov r0, r2 + bx lr + + arm_func_start OSi_RemoveSpecifiedLinkFromQueue +OSi_RemoveSpecifiedLinkFromQueue: ; 0x020CB9AC + ldr r2, [r0, #0x0] + mov r12, r2 + cmp r2, #0x0 + beq _020CB9F8 +_020CB9BC: + cmp r12, r1 + ldr r3, [r12, #0x80] + bne _020CB9EC + cmp r2, r12 + ldr r2, [r12, #0x7c] + streq r3, [r0, #0x0] + strne r3, [r2, #0x80] + ldr r1, [r0, #0x4] + cmp r1, r12 + streq r2, [r0, #0x4] + strne r2, [r3, #0x7c] + b _020CB9F8 +_020CB9EC: + mov r12, r3 + cmp r3, #0x0 + bne _020CB9BC +_020CB9F8: + mov r0, r12 + bx lr + + arm_func_start OSi_RemoveLinkFromQueue +OSi_RemoveLinkFromQueue: ; 0x020CBA00 + ldr r2, [r0, #0x0] + cmp r2, #0x0 + beq _020CBA2C + ldr r1, [r2, #0x80] + str r1, [r0, #0x0] + cmp r1, #0x0 + movne r0, #0x0 + strne r0, [r1, #0x7c] + moveq r1, #0x0 + streq r1, [r0, #0x4] + streq r1, [r2, #0x78] +_020CBA2C: + mov r0, r2 + bx lr + + arm_func_start OSi_InsertLinkToQueue +OSi_InsertLinkToQueue: + ldr r12, [r0, #0x0] + b _020CBA48 +_020CBA3C: + cmp r12, r1 + bxeq lr + ldr r12, [r12, #0x80] +_020CBA48: + cmp r12, #0x0 + beq _020CBA60 + ldr r3, [r12, #0x70] + ldr r2, [r1, #0x70] + cmp r3, r2 + bls _020CBA3C +_020CBA60: + cmp r12, #0x0 + bne _020CBA8C + ldr r2, [r0, #0x4] + cmp r2, #0x0 + streq r1, [r0, #0x0] + strne r1, [r2, #0x80] + str r2, [r1, #0x7c] + mov r2, #0x0 + str r2, [r1, #0x80] + str r1, [r0, #0x4] + bx lr +_020CBA8C: + ldr r2, [r12, #0x7c] + cmp r2, #0x0 + streq r1, [r0, #0x0] + strne r1, [r2, #0x80] + str r2, [r1, #0x7c] + str r12, [r1, #0x80] + str r1, [r12, #0x7c] + bx lr + + arm_func_start OSi_GetUnusedThreadId +OSi_GetUnusedThreadId: ; 0x020CBAAC + ldr r1, _020CBAC0 ; =0x021D3488 + ldr r0, [r1, #0x0] + add r0, r0, #0x1 + str r0, [r1, #0x0] + bx lr + .balign 4 +_020CBAC0: .word 0x021D3488 + + arm_func_start OS_InitContext +OS_InitContext: ; 0x020CBAC4 + add r1, r1, #0x4 + str r1, [r0, #0x40] + str r2, [r0, #0x44] + sub r2, r2, #0x40 + tst r2, #0x4 + subne r2, r2, #0x4 + str r2, [r0, #0x38] + ands r1, r1, #0x1 + movne r1, #0x3f + moveq r1, #0x1f + str r1, [r0, #0x0] + mov r1, #0x0 + str r1, [r0, #0x4] + str r1, [r0, #0x8] + str r1, [r0, #0xc] + str r1, [r0, #0x10] + str r1, [r0, #0x14] + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + str r1, [r0, #0x20] + str r1, [r0, #0x24] + str r1, [r0, #0x28] + str r1, [r0, #0x2c] + str r1, [r0, #0x30] + str r1, [r0, #0x34] + str r1, [r0, #0x3c] + bx lr + + arm_func_start OS_SaveContext +OS_SaveContext: + stmdb sp!, {r0,lr} + add r0, r0, #0x48 + ldr r1, _020CBB78 ; =CP_SaveContext + blx r1 + ldmia sp!, {r0,lr} + add r1, r0, #0x0 + mrs r2, cpsr + str r2, [r1], #0x4 + mov r0, #0xd3 + msr cpsr_c, r0 + str sp, [r1, #0x40] + msr cpsr_c, r2 + mov r0, #0x1 + stmia r1, {r0-lr} + add r0, pc, #0x8 ; =_020CBB78 + str r0, [r1, #0x3c] + mov r0, #0x0 + bx lr + .balign 4 +_020CBB78: .word CP_SaveContext + + arm_func_start OS_LoadContext +OS_LoadContext: ; 0x020CBB7C + stmdb sp!, {r0,lr} + add r0, r0, #0x48 + ldr r1, _020CBBBC ; =CP_RestoreContext + blx r1 + ldmia sp!, {r0,lr} + mrs r1, cpsr + bic r1, r1, #0x1f + orr r1, r1, #0xd3 + msr cpsr_c, r1 + ldr r1, [r0], #0x4 + msr spsr_fsxc, r1 + ldr sp, [r0, #0x40] + ldr lr, [r0, #0x3c] + ldmia r0, {r0-lr}^ + mov r0, r0 + subs pc, lr, #0x4 + .balign 4 +_020CBBBC: .word CP_RestoreContext + + arm_func_start OS_GetConsoleType +OS_GetConsoleType: ; 0x020CBBC0 + ldr r0, _020CBBD0 ; =0x82000001 + ldr r1, _020CBBD4 ; =0x02106828 + str r0, [r1, #0x0] + bx lr + .balign 4 +_020CBBD0: .word 0x82000001 +_020CBBD4: .word 0x02106828 + + arm_func_start OS_IsRunOnEmulator +OS_IsRunOnEmulator: + mov r0, #0x0 + bx lr + + arm_func_start OS_ReadMessage +OS_ReadMessage: ; 0x020CBBE0 + stmdb sp!, {r4-r8,lr} + mov r6, r0 + mov r5, r1 + mov r7, r2 + bl OS_DisableInterrupts + ldr r1, [r6, #0x1c] + mov r4, r0 + cmp r1, #0x0 + bne _020CBC3C + and r8, r7, #0x1 + add r7, r6, #0x8 +_020CBC0C: + cmp r8, #0x0 + bne _020CBC28 + mov r0, r4 + bl OS_RestoreInterrupts +_020CBC1C: + mov r0, #0x0 + ldmia sp!, {r4-r8,lr} + bx lr +_020CBC28: + mov r0, r7 + bl OS_SleepThread + ldr r0, [r6, #0x1c] + cmp r0, #0x0 + beq _020CBC0C +_020CBC3C: + cmp r5, #0x0 + ldrne r1, [r6, #0x10] + ldrne r0, [r6, #0x18] + ldrne r0, [r1, r0, lsl #0x2] + strne r0, [r5, #0x0] + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start OS_JamMessage +OS_JamMessage: ; 0x020CBC64 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r5, r1 + mov r7, r2 + bl OS_DisableInterrupts + ldr r1, [r6, #0x14] + ldr r2, [r6, #0x1c] + mov r4, r0 + cmp r1, r2 + bgt _020CBCCC + and r7, r7, #0x1 +_020CBC94: + cmp r7, #0x0 + bne _020CBCB4 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,lr} + bx lr +_020CBCB4: + mov r0, r6 + bl OS_SleepThread + ldr r1, [r6, #0x14] + ldr r0, [r6, #0x1c] + cmp r1, r0 + ble _020CBC94 +_020CBCCC: + ldr r0, [r6, #0x18] + add r0, r0, r1 + sub r0, r0, #0x1 + bl _s32_div_f + str r1, [r6, #0x18] + ldr r2, [r6, #0x10] + ldr r1, [r6, #0x18] + add r0, r6, #0x8 + str r5, [r2, r1, lsl #0x2] + ldr r1, [r6, #0x1c] + add r1, r1, #0x1 + str r1, [r6, #0x1c] + bl OS_WakeupThread + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start OS_ReceiveMessage +OS_ReceiveMessage: ; 0x020CBD18 + stmdb sp!, {r4-r8,lr} + mov r6, r0 + mov r5, r1 + mov r7, r2 + bl OS_DisableInterrupts + ldr r1, [r6, #0x1c] + mov r4, r0 + cmp r1, #0x0 + bne _020CBD74 + and r8, r7, #0x1 + add r7, r6, #0x8 +_020CBD44: + cmp r8, #0x0 + bne _020CBD60 + mov r0, r4 + bl OS_RestoreInterrupts +_020CBD54: + mov r0, #0x0 + ldmia sp!, {r4-r8,lr} + bx lr +_020CBD60: + mov r0, r7 + bl OS_SleepThread + ldr r0, [r6, #0x1c] + cmp r0, #0x0 + beq _020CBD44 +_020CBD74: + cmp r5, #0x0 + ldrne r1, [r6, #0x10] + ldrne r0, [r6, #0x18] + ldrne r0, [r1, r0, lsl #0x2] + strne r0, [r5, #0x0] + ldr r0, [r6, #0x18] + ldr r1, [r6, #0x14] + add r0, r0, #0x1 + bl _s32_div_f + str r1, [r6, #0x18] + ldr r1, [r6, #0x1c] + mov r0, r6 + sub r1, r1, #0x1 + str r1, [r6, #0x1c] + bl OS_WakeupThread + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start OS_SendMessage +OS_SendMessage: ; 0x020CBDC4 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r5, r1 + mov r7, r2 + bl OS_DisableInterrupts + ldr r2, [r6, #0x1c] + ldr r1, [r6, #0x14] + mov r4, r0 + cmp r1, r2 + bgt _020CBE2C + and r7, r7, #0x1 +_020CBDF4: + cmp r7, #0x0 + bne _020CBE14 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,lr} + bx lr +_020CBE14: + mov r0, r6 + bl OS_SleepThread + ldr r2, [r6, #0x1c] + ldr r1, [r6, #0x14] + cmp r1, r2 + ble _020CBDF4 +_020CBE2C: + ldr r0, [r6, #0x18] + add r0, r0, r2 + bl _s32_div_f + ldr r2, [r6, #0x10] + add r0, r6, #0x8 + str r5, [r2, r1, lsl #0x2] + ldr r1, [r6, #0x1c] + add r1, r1, #0x1 + str r1, [r6, #0x1c] + bl OS_WakeupThread + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start OS_InitMessageQueue +OS_InitMessageQueue: ; 0x020CBE6C + mov r12, #0x0 + str r12, [r0, #0x4] + ldr r3, [r0, #0x4] + str r3, [r0, #0x0] + str r12, [r0, #0xc] + ldr r3, [r0, #0xc] + str r3, [r0, #0x8] + str r1, [r0, #0x10] + str r2, [r0, #0x14] + str r12, [r0, #0x18] + str r12, [r0, #0x1c] + bx lr + + arm_func_start OSi_DequeueItem +OSi_DequeueItem: ; 0x020CBE9C + ldr r2, [r1, #0x10] + ldr r1, [r1, #0x14] + cmp r2, #0x0 + streq r1, [r0, #0x8c] + strne r1, [r2, #0x14] + cmp r1, #0x0 + streq r2, [r0, #0x88] + strne r2, [r1, #0x10] + bx lr + + arm_func_start OSi_EnqueueTail +OSi_EnqueueTail: ; 0x020CBEC0 + ldr r2, [r0, #0x8c] + cmp r2, #0x0 + streq r1, [r0, #0x88] + strne r1, [r2, #0x10] + str r2, [r1, #0x14] + mov r2, #0x0 + str r2, [r1, #0x10] + str r1, [r0, #0x8c] + bx lr + + arm_func_start OS_TryLockMutex +OS_TryLockMutex: ; 0x020CBEE4 + stmdb sp!, {r4-r6,lr} + mov r5, r0 + bl OS_DisableInterrupts + ldr r2, [r5, #0x8] + ldr r1, _020CBF54 ; =0x021D3498 + mov r4, r0 + cmp r2, #0x0 + ldr r0, [r1, #0x4] + bne _020CBF28 + str r0, [r5, #0x8] + ldr r2, [r5, #0xc] + mov r1, r5 + add r2, r2, #0x1 + str r2, [r5, #0xc] + bl OSi_EnqueueTail + mov r6, #0x1 + b _020CBF40 +_020CBF28: + cmp r2, r0 + ldreq r0, [r5, #0xc] + moveq r6, #0x1 + addeq r0, r0, #0x1 + streq r0, [r5, #0xc] + movne r6, #0x0 +_020CBF40: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, r6 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020CBF54: .word 0x021D3498 + + arm_func_start OSi_UnlockAllMutex +OSi_UnlockAllMutex: ; 0x020CBF58 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + ldr r0, [r6, #0x88] + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + add r5, r6, #0x88 + mov r4, #0x0 +_020CBF78: + mov r0, r5 + bl OSi_RemoveMutexLinkFromQueue + str r4, [r0, #0xc] + str r4, [r0, #0x8] + bl OS_WakeupThread + ldr r0, [r6, #0x88] + cmp r0, #0x0 + bne _020CBF78 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start OS_UnlockMutex +OS_UnlockMutex: ; 0x020CBFA0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020CC00C ; =0x021D3498 + mov r4, r0 + ldr r0, [r1, #0x4] + ldr r1, [r5, #0x8] + cmp r1, r0 + bne _020CBFF8 + ldr r1, [r5, #0xc] + sub r1, r1, #0x1 + str r1, [r5, #0xc] + ldr r1, [r5, #0xc] + cmp r1, #0x0 + bne _020CBFF8 + mov r1, r5 + bl OSi_DequeueItem + mov r1, #0x0 + mov r0, r5 + str r1, [r5, #0x8] + bl OS_WakeupThread +_020CBFF8: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CC00C: .word 0x021D3498 + + arm_func_start OS_LockMutex +OS_LockMutex: ; 0x020CC010 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020CC098 ; =0x021D3498 + mov r4, r0 + ldr r7, [r1, #0x4] + mov r6, #0x0 +_020CC030: + ldr r0, [r5, #0x8] + cmp r0, #0x0 + bne _020CC05C + str r7, [r5, #0x8] + ldr r1, [r5, #0xc] + mov r0, r7 + add r2, r1, #0x1 + mov r1, r5 + str r2, [r5, #0xc] + bl OSi_EnqueueTail + b _020CC084 +_020CC05C: + cmp r0, r7 + ldreq r0, [r5, #0xc] + addeq r0, r0, #0x1 + streq r0, [r5, #0xc] + beq _020CC084 + mov r0, r5 + str r5, [r7, #0x84] + bl OS_SleepThread + str r6, [r7, #0x84] + b _020CC030 +_020CC084: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020CC098: .word 0x021D3498 + + arm_func_start OS_InitMutex +OS_InitMutex: ; 0x020CC09C + mov r2, #0x0 + str r2, [r0, #0x4] + ldr r1, [r0, #0x4] + str r1, [r0, #0x0] + str r2, [r0, #0x8] + str r2, [r0, #0xc] + bx lr + + arm_func_start DC_InvalidateAll +DC_InvalidateAll: ; 0x020CC0B8 + mov r0, #0x0 + mcr p15, 0x0, r0, c7, c6, 0x0 + bx lr + + arm_func_start DC_StoreAll +DC_StoreAll: ; 0x020CC0C4 + mov r1, #0x0 +_020CC0C8: + mov r0, #0x0 +_020CC0CC: + orr r2, r1, r0 + mcr p15, 0x0, r2, c7, c10, 0x2 + add r0, r0, #0x20 + cmp r0, #0x400 + blt _020CC0CC + add r1, r1, #0x40000000 + cmp r1, #0x0 + bne _020CC0C8 + bx lr + + arm_func_start DC_FlushAll +DC_FlushAll: ; 0x020CC0F0 + mov r12, #0x0 + mov r1, #0x0 +_020CC0F8: + mov r0, #0x0 +_020CC0FC: + orr r2, r1, r0 + mcr p15, 0x0, r12, c7, c10, 0x4 + mcr p15, 0x0, r2, c7, c14, 0x2 + add r0, r0, #0x20 + cmp r0, #0x400 + blt _020CC0FC + add r1, r1, #0x40000000 + cmp r1, #0x0 + bne _020CC0F8 + bx lr + + arm_func_start DC_InvalidateRange +DC_InvalidateRange: ; 0x020CC124 + add r1, r1, r0 + bic r0, r0, #0x1f +_020CC12C: + mcr p15, 0x0, r0, c7, c6, 0x1 + add r0, r0, #0x20 + cmp r0, r1 + blt _020CC12C + bx lr + + arm_func_start DC_StoreRange +DC_StoreRange: ; 0x020CC140 + add r1, r1, r0 + bic r0, r0, #0x1f +_020CC148: + mcr p15, 0x0, r0, c7, c10, 0x1 + add r0, r0, #0x20 + cmp r0, r1 + blt _020CC148 + bx lr + + arm_func_start DC_FlushRange +DC_FlushRange: ; 0x020CC15C + mov r12, #0x0 + add r1, r1, r0 + bic r0, r0, #0x1f +_020CC168: + mcr p15, 0x0, r12, c7, c10, 0x4 + mcr p15, 0x0, r0, c7, c14, 0x1 + add r0, r0, #0x20 + cmp r0, r1 + blt _020CC168 + bx lr + + arm_func_start DC_WaitWriteBufferEmpty +DC_WaitWriteBufferEmpty: ; 0x020CC180 + mov r0, #0x0 + mcr p15, 0x0, r0, c7, c10, 0x4 + bx lr + + arm_func_start IC_InvalidateAll +IC_InvalidateAll: ; 0x020CC18C + mov r0, #0x0 + mcr p15, 0x0, r0, c7, c5, 0x0 + bx lr + + arm_func_start IC_InvalidateRange +IC_InvalidateRange: + add r1, r1, r0 + bic r0, r0, #0x1f +_020CC1A0: + mcr p15, 0x0, r0, c7, c5, 0x1 + add r0, r0, #0x20 + cmp r0, r1 + blt _020CC1A0 + bx lr + + arm_func_start OS_Init +OS_Init: ; 0x020CC1B4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl OS_InitArena + bl PXI_Init + bl OS_InitLock + bl OS_InitArenaEx + bl OS_InitIrqTable + bl OS_SetIrqStackChecker + bl OS_InitException + bl MI_Init + bl OS_InitVAlarm + bl OSi_InitVramExclusive + bl OS_InitThread + bl OS_InitReset + bl CTRDG_Init + bl CARD_Init + bl PM_Init + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start OS_AllocFromArenaHi +OS_AllocFromArenaHi: ; 0x020CC204 + stmdb sp!, {r4-r6,lr} + mov r4, r0 + mov r6, r1 + mov r5, r2 + bl OS_GetArenaHi +_020CC218: + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + sub r1, r5, #0x1 + mvn r2, r1 + and r0, r0, r2 + sub r1, r0, r6 + mov r0, r4 + and r5, r1, r2 + bl OS_GetArenaLo + cmp r5, r0 + movcc r0, #0x0 + ldmccia sp!, {r4-r6, lr} + bxcc lr + mov r0, r4 + mov r1, r5 + bl OS_SetArenaHi + mov r0, r5 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start OS_AllocFromArenaLo +OS_AllocFromArenaLo: ; 0x020CC26C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r6, r1 + mov r5, r2 + bl OS_GetArenaLo +_020CC284: + cmp r0, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r7, lr} + bxeq lr + add r0, r0, r5 + sub r1, r5, #0x1 + mvn r2, r1 + sub r0, r0, #0x1 + and r4, r2, r0 + add r0, r4, r6 + add r0, r0, r5 + sub r1, r0, #0x1 + mov r0, r7 + and r5, r2, r1 + bl OS_GetArenaHi + cmp r5, r0 + addhi sp, sp, #0x4 + movhi r0, #0x0 + ldmhiia sp!, {r4-r7, lr} + bxhi lr + mov r0, r7 + mov r1, r5 + bl OS_SetArenaLo + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r7, lr} + bx lr + + arm_func_start OS_SetArenaLo +OS_SetArenaLo: ; 0x020CC2F4 + mov r0, r0, lsl #0x2 + add r0, r0, #0x2700000 + add r0, r0, #0xff000 + str r1, [r0, #0xda0] + bx lr + + arm_func_start OS_SetArenaHi +OS_SetArenaHi: + mov r0, r0, lsl #0x2 + add r0, r0, #0x2700000 + add r0, r0, #0xff000 + str r1, [r0, #0xdc4] + bx lr + + arm_func_start OS_GetInitArenaLo +OS_GetInitArenaLo: ; 0x020CC31C + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r0, #0x6 + addls pc, pc, r0, lsl #0x2 + b _020CC3DC +_020CC330: + b _020CC34C + b _020CC3DC + b _020CC35C + b _020CC39C + b _020CC3AC + b _020CC3BC + b _020CC3CC +_020CC34C: + add sp, sp, #0x4 + ldr r0, _020CC3EC ; =0x0225FFA0 + ldmfd sp!, {lr} + bx lr +_020CC35C: + ldr r0, _020CC3F0 ; =0x021D36F4 + ldr r0, [r0] + cmp r0, #0x0 + beq _020CC37C + bl OS_GetConsoleType + and r0, r0, #0x3 + cmp r0, #0x1 + bne _020CC38C +_020CC37C: + add sp, sp, #0x4 + mov r0, #0x0 + ldmfd sp!, {lr} + bx lr +_020CC38C: + add sp, sp, #0x4 + ldr r0, _020CC3F4 ; =0x023E0000 + ldmfd sp!, {lr} + bx lr +_020CC39C: + add sp, sp, #0x4 + ldr r0, _020CC3F8 ; =0x01FF8720 + ldmfd sp!, {lr} + bx lr +_020CC3AC: + add sp, sp, #0x4 + ldr r0, _020CC3FC ; =0x027E0080 + ldmfd sp!, {lr} + bx lr +_020CC3BC: + add sp, sp, #0x4 + ldr r0, _020CC400 ; =0x027FF000 + ldmfd sp!, {lr} + bx lr +_020CC3CC: + add sp, sp, #0x4 + ldr r0, _020CC404 ; =0x037F8000 + ldmfd sp!, {lr} + bx lr +_020CC3DC: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020CC3EC: .word 0x0225FFA0 +_020CC3F0: .word 0x021D36F4 +_020CC3F4: .word 0x023E0000 +_020CC3F8: .word 0x01FF8720 +_020CC3FC: .word 0x027E0080 +_020CC400: .word 0x027FF000 +_020CC404: .word 0x037F8000 + + arm_func_start OS_GetInitArenaHi +OS_GetInitArenaHi: ; 0x020CC408 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r0, #0x6 + addls pc, pc, r0, lsl #0x2 + b _020CC508 +_020CC41C: + b _020CC438 + b _020CC508 + b _020CC448 + b _020CC488 + b _020CC498 + b _020CC4E8 + b _020CC4F8 +_020CC438: + add sp, sp, #0x4 + ldr r0, _020CC518 ; =0x023E0000 + ldmfd sp!, {lr} + bx lr +_020CC448: + ldr r0, _020CC51C ; =0x021D36F4 + ldr r0, [r0] + cmp r0, #0x0 + beq _020CC468 + bl OS_GetConsoleType + and r0, r0, #0x3 + cmp r0, #0x1 + bne _020CC478 +_020CC468: + add sp, sp, #0x4 + mov r0, #0x0 + ldmfd sp!, {lr} + bx lr +_020CC478: + add sp, sp, #0x4 + mov r0, #0x2700000 + ldmfd sp!, {lr} + bx lr +_020CC488: + add sp, sp, #0x4 + mov r0, #0x2000000 + ldmfd sp!, {lr} + bx lr +_020CC498: + ldr r0, _020CC520 ; =0x027E0000 + ldr r1, _020CC524 ; =0x00000000 + ldr r2, _020CC528 ; =0x00000400 + add r3, r0, #0x3f80 + cmp r1, #0x0 + sub r2, r3, r2 + bne _020CC4CC + ldr r1, _020CC52C ; =0x027E0080 + add sp, sp, #0x4 + cmp r0, r1 + movcc r0, r1 + ldmfd sp!, {lr} + bx lr +_020CC4CC: + cmp r1, #0x0 + ldrlt r0, _020CC52C ; =0x027E0080 + add sp, sp, #0x4 + sublt r0, r0, r1 + subge r0, r2, r1 + ldmfd sp!, {lr} + bx lr +_020CC4E8: + add sp, sp, #0x4 + ldr r0, _020CC530 ; =0x027FF680 + ldmfd sp!, {lr} + bx lr +_020CC4F8: + add sp, sp, #0x4 + ldr r0, _020CC534 ; =0x037F8000 + ldmfd sp!, {lr} + bx lr +_020CC508: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr +_020CC518: .word 0x023E0000 +_020CC51C: .word 0x021D36F4 +_020CC520: .word 0x027E0000 +_020CC524: .word 0x00000000 +_020CC528: .word 0x00000400 +_020CC52C: .word 0x027E0080 +_020CC530: .word 0x027FF680 +_020CC534: .word 0x037F8000 + + arm_func_start OS_GetArenaLo +OS_GetArenaLo: + mov r0, r0, lsl #0x2 + add r0, r0, #0x2700000 + add r0, r0, #0xff000 + ldr r0, [r0, #0xda0] + bx lr + + arm_func_start OS_GetArenaHi +OS_GetArenaHi: + mov r0, r0, lsl #0x2 + add r0, r0, #0x2700000 + add r0, r0, #0xff000 + ldr r0, [r0, #0xdc4] + bx lr + + arm_func_start OS_InitArenaEx +OS_InitArenaEx: ; 0x020CC560 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, #0x2 + bl OS_GetInitArenaHi + mov r1, r0 + mov r0, #0x2 + bl OS_SetArenaHi + mov r0, #0x2 + bl OS_GetInitArenaLo + mov r1, r0 + mov r0, #0x2 + bl OS_SetArenaLo + ldr r0, _020CC5D4 ; =0x021D36F4 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _020CC5B8 + bl OS_GetConsoleType + and r0, r0, #0x3 + cmp r0, #0x1 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr +_020CC5B8: + ldr r0, _020CC5D8 ; =0x0200002B + bl OS_SetProtectionRegion1 + ldr r0, _020CC5DC ; =0x023E0021 + bl OS_SetProtectionRegion2 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CC5D4: .word 0x021D36F4 +_020CC5D8: .word 0x0200002B +_020CC5DC: .word 0x023E0021 + + arm_func_start OS_InitArena +OS_InitArena: ; 0x020CC5E0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020CC6F4 ; =0x021D36F0 + ldr r0, [r1, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + mov r2, #0x1 + mov r0, #0x0 + str r2, [r1, #0x0] + bl OS_GetInitArenaHi + mov r1, r0 + mov r0, #0x0 + bl OS_SetArenaHi +_020CC61C: + mov r0, #0x0 + bl OS_GetInitArenaLo + mov r1, r0 + mov r0, #0x0 + bl OS_SetArenaLo + mov r0, #0x2 + mov r1, #0x0 + bl OS_SetArenaLo + mov r0, #0x2 + mov r1, #0x0 + bl OS_SetArenaHi + mov r0, #0x3 + bl OS_GetInitArenaHi + mov r1, r0 + mov r0, #0x3 + bl OS_SetArenaHi + mov r0, #0x3 + bl OS_GetInitArenaLo + mov r1, r0 + mov r0, #0x3 + bl OS_SetArenaLo + mov r0, #0x4 + bl OS_GetInitArenaHi + mov r1, r0 + mov r0, #0x4 + bl OS_SetArenaHi + mov r0, #0x4 + bl OS_GetInitArenaLo + mov r1, r0 + mov r0, #0x4 + bl OS_SetArenaLo + mov r0, #0x5 + bl OS_GetInitArenaHi + mov r1, r0 + mov r0, #0x5 + bl OS_SetArenaHi + mov r0, #0x5 + bl OS_GetInitArenaLo + mov r1, r0 + mov r0, #0x5 + bl OS_SetArenaLo + mov r0, #0x6 + bl OS_GetInitArenaHi + mov r1, r0 + mov r0, #0x6 + bl OS_SetArenaHi + mov r0, #0x6 + bl OS_GetInitArenaLo + mov r1, r0 + mov r0, #0x6 + bl OS_SetArenaLo + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr +_020CC6F4: .word 0x021D36F0 + + arm_func_start OS_FreeToHeap +OS_FreeToHeap: ; 0x020CC6F8 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r5, r1 + mov r4, r2 + bl OS_DisableInterrupts + ldr r1, _020CC768 ; =0x021D36F8 + mov r6, r0 + ldr r0, [r1, r7, lsl #0x2] + cmp r5, #0x0 + ldrlt r5, [r0, #0x0] + ldr r1, [r0, #0x10] + mov r0, #0xc + mla r7, r5, r0, r1 + sub r4, r4, #0x20 + ldr r0, [r7, #0x8] + mov r1, r4 + bl DLExtract + str r0, [r7, #0x8] + ldr r0, [r7, #0x4] + mov r1, r4 + bl DLInsert + str r0, [r7, #0x4] + mov r0, r6 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020CC768: .word 0x021D36F8 + + arm_func_start OS_AllocFromHeap +OS_AllocFromHeap: ; 0x020CC76C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r5, r1 + mov r7, r2 + bl OS_DisableInterrupts + ldr r1, _020CC894 ; =0x021D36F8 + mov r4, r0 + ldr r1, [r1, r6, lsl #0x2] + cmp r1, #0x0 + bne _020CC7AC + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,lr} + bx lr +_020CC7AC: + cmp r5, #0x0 + ldrlt r5, [r1, #0x0] + ldr r1, [r1, #0x10] + mov r0, #0xc + mla r6, r5, r0, r1 + ldr r0, [r6, #0x4] + add r1, r7, #0x20 + add r1, r1, #0x1f + mov r5, r0 + cmp r0, #0x0 + bic r7, r1, #0x1f + beq _020CC7F4 +_020CC7DC: + ldr r1, [r5, #0x8] + cmp r7, r1 + ble _020CC7F4 + ldr r5, [r5, #0x4] + cmp r5, #0x0 + bne _020CC7DC +_020CC7F4: + cmp r5, #0x0 + bne _020CC814 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,lr} + bx lr +_020CC814: + ldr r1, [r5, #0x8] + sub r1, r1, r7 + cmp r1, #0x40 + bhs _020CC834 + mov r1, r5 + bl DLExtract + str r0, [r6, #0x4] + b _020CC86C +_020CC834: + str r7, [r5, #0x8] + add r2, r5, r7 + str r1, [r2, #0x8] + ldr r0, [r5, #0x0] + str r0, [r5, r7] + ldr r0, [r5, #0x4] + str r0, [r2, #0x4] + ldr r0, [r2, #0x4] + cmp r0, #0x0 + strne r2, [r0, #0x0] + ldr r0, [r2, #0x0] + cmp r0, #0x0 + strne r2, [r0, #0x4] + streq r2, [r6, #0x4] +_020CC86C: + ldr r0, [r6, #0x8] + mov r1, r5 + bl DLAddFront + str r0, [r6, #0x8] + mov r0, r4 + bl OS_RestoreInterrupts + add r0, r5, #0x20 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020CC894: .word 0x021D36F8 + + arm_func_start DLInsert +DLInsert: ; 0x020CC898 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r12, r0 + cmp r0, #0x0 + mov lr, #0x0 + beq _020CC8C8 +_020CC8B0: + cmp r1, r12 + bls _020CC8C8 + mov lr, r12 + ldr r12, [r12, #0x4] + cmp r12, #0x0 + bne _020CC8B0 +_020CC8C8: + str r12, [r1, #0x4] + str lr, [r1, #0x0] + cmp r12, #0x0 + beq _020CC908 + str r1, [r12, #0x0] + ldr r3, [r1, #0x8] + add r2, r1, r3 + cmp r2, r12 + bne _020CC908 + ldr r2, [r12, #0x8] + add r2, r3, r2 + str r2, [r1, #0x8] + ldr r12, [r12, #0x4] + str r12, [r1, #0x4] + cmp r12, #0x0 + strne r1, [r12, #0x0] +_020CC908: + cmp lr, #0x0 + beq _020CC950 + str r1, [lr, #0x4] + ldr r2, [lr, #0x8] + add r3, lr, r2 + cmp r3, r1 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldr r1, [r1, #0x8] + add sp, sp, #0x4 + add r1, r2, r1 + str r1, [lr, #0x8] + str r12, [lr, #0x4] + cmp r12, #0x0 + strne lr, [r12, #0x0] + ldmia sp!, {lr} + bx lr +_020CC950: + mov r0, r1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start DLExtract +DLExtract: ; 0x020CC960 + ldr r3, [r1, #0x4] + cmp r3, #0x0 + ldrne r2, [r1, #0x0] + strne r2, [r3, #0x0] + ldr r2, [r1, #0x0] + cmp r2, #0x0 + ldreq r0, [r1, #0x4] + ldrne r1, [r1, #0x4] + strne r1, [r2, #0x4] + bx lr + + arm_func_start DLAddFront +DLAddFront: ; 0x020CC988 + str r0, [r1, #0x4] + mov r2, #0x0 + str r2, [r1, #0x0] + cmp r0, #0x0 + strne r1, [r0, #0x0] + mov r0, r1 + bx lr + + arm_func_start OS_GetDTCMAddress +OS_GetDTCMAddress: ; 0x020CC9A4 + mrc p15, 0x0, r0, c9, c1, 0x0 + ldr r1, _020CC9B4 ; =0xFFFFF000 + and r0, r0, r1 + bx lr + .balign 4 +_020CC9B4: .word 0xFFFFF000 + + arm_func_start OS_EnableProtectionUnit +OS_EnableProtectionUnit: ; 0x020CC9B8 + mrc p15, 0x0, r0, c1, c0, 0x0 + orr r0, r0, #0x1 + mcr p15, 0x0, r0, c1, c0, 0x0 + bx lr + + arm_func_start OS_DisableProtectionUnit +OS_DisableProtectionUnit: ; 0x020CC9C8 + mrc p15, 0x0, r0, c1, c0, 0x0 + bic r0, r0, #0x1 + mcr p15, 0x0, r0, c1, c0, 0x0 + bx lr + + arm_func_start OS_SetDPermissionsForProtectionRegion +OS_SetDPermissionsForProtectionRegion: ; 0x020CC9D8 + mrc p15, 0x0, r2, c5, c0, 0x2 + bic r2, r2, r0 + orr r2, r2, r1 + mcr p15, 0x0, r2, c5, c0, 0x2 + bx lr + + arm_func_start OS_SetProtectionRegion1 +OS_SetProtectionRegion1: ; 0x020CC9EC + mcr p15, 0x0, r0, c6, c1, 0x0 + bx lr + + arm_func_start OS_SetProtectionRegion2 +OS_SetProtectionRegion2: ; 0x020CC9F4 + mcr p15, 0x0, r0, c6, c2, 0x0 + bx lr + + arm_func_start OSi_ExceptionHandler +OSi_ExceptionHandler: ; 0x020CC9FC + ldr ip, _020CCA68 ; =0x021D3724 + ldr r12, [r12, #0x0] + cmp r12, #0x0 + movne lr, pc + bxne r12 + ldr ip, _020CCA6C ; =0x02000000 + stmdb r12!, {r0-r3,sp-lr} + and r0, sp, #0x1 + mov sp, r12 + mrs r1, cpsr + and r1, r1, #0x1f + teq r1, #0x17 + bne _020CCA38 + bl OSi_GetAndDisplayContext + b _020CCA44 +_020CCA38: + teq r1, #0x1b + bne _020CCA44 + bl OSi_GetAndDisplayContext +_020CCA44: + ldr ip, _020CCA68 ; =0x021D3724 + ldr r12, [r12, #0x0] + cmp r12, #0x0 +_020CCA50: + beq _020CCA50 +_020CCA54: + mov r0, r0 + b _020CCA54 +_020CCA5C: + ldmia sp!, {r0-r3,ip,lr} + mov sp, ip + bx lr +_020CCA68: .word 0x021D3724 +_020CCA6C: .word 0x02000000 + + arm_func_start OSi_GetAndDisplayContext +OSi_GetAndDisplayContext: ; 0x020CCA70 + stmdb sp!, {r0,lr} + bl OSi_SetExContext + bl OSi_DisplayExContext + ldmia sp!, {r0,lr} + bx lr + + arm_func_start OSi_SetExContext +OSi_SetExContext: ; 0x020CCA84 + ldr r1, _020CCB10 ; =0x021D3728 + mrs r2, cpsr + str r2, [r1, #0x74] + str r0, [r1, #0x6c] + ldr r0, [r12, #0x0] + str r0, [r1, #0x4] + ldr r0, [r12, #0x4] + str r0, [r1, #0x8] + ldr r0, [r12, #0x8] + str r0, [r1, #0xc] + ldr r0, [r12, #0xc] + str r0, [r1, #0x10] + ldr r2, [r12, #0x10] + bic r2, r2, #0x1 + add r0, r1, #0x14 + stmia r0, {r4-r11} + str r12, [r1, #0x70] + ldr r0, [r2, #0x0] + str r0, [r1, #0x64] + ldr r3, [r2, #0x4] + str r3, [r1, #0x0] + ldr r0, [r2, #0x8] + str r0, [r1, #0x34] + ldr r0, [r2, #0xc] + str r0, [r1, #0x40] + mrs r0, cpsr + orr r3, r3, #0x80 + bic r3, r3, #0x20 + msr cpsr_fsxc, r3 + str sp, [r1, #0x38] + str lr, [r1, #0x3c] + mrs r2, spsr + str r2, [r1, #0x7c] + msr cpsr_fsxc, r0 + bx lr + .balign 4 +_020CCB10: .word 0x021D3728 + + arm_func_start OSi_DisplayExContext +OSi_DisplayExContext: ; 0x020CCB14 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020CCB70 ; =0x021D371C + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + mov r0, sp + ldr r1, _020CCB74 ; =0x0000009F + msr cpsr_fsxc, r1 + mov sp, r0 + bl OS_EnableProtectionUnit + ldr r1, _020CCB78 ; =0x021D3720 + ldr r0, _020CCB70 ; =0x021D371C + ldr r1, [r1, #0x0] + ldr r2, [r0, #0x0] + ldr r0, _020CCB7C ; =0x021D3728 + blx r2 + bl OS_DisableProtectionUnit + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CCB70: .word 0x021D371C +_020CCB74: .word 0x0000009F +_020CCB78: .word 0x021D3720 +_020CCB7C: .word 0x021D3728 + + arm_func_start OS_InitException +OS_InitException: ; 0x020CCB80 + ldr r0, _020CCBDC ; =0x027FFD9C + ldr r1, [r0, #0x0] + cmp r1, #0x2600000 + blo _020CCBA0 + cmp r1, #0x2800000 + ldrlo r0, _020CCBE0 ; =0x021D3724 + strcc r1, [r0, #0x0] + blo _020CCBAC +_020CCBA0: + ldr r0, _020CCBE0 ; =0x021D3724 + mov r1, #0x0 + str r1, [r0, #0x0] +_020CCBAC: + ldr r0, _020CCBE0 ; =0x021D3724 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + ldreq r2, _020CCBE4 ; =OSi_ExceptionHandler + ldreq r1, _020CCBDC ; =0x027FFD9C + ldreq r0, _020CCBE8 ; =0x027E3000 + streq r2, [r1, #0x0] + streq r2, [r0, #0xfdc] + ldr r0, _020CCBEC ; =0x021D371C + mov r1, #0x0 + str r1, [r0, #0x0] + bx lr + .balign 4 +_020CCBDC: .word 0x027FFD9C +_020CCBE0: .word 0x021D3724 +_020CCBE4: .word OSi_ExceptionHandler +_020CCBE8: .word 0x027E3000 +_020CCBEC: .word 0x021D371C + + arm_func_start OSi_SetTimerReserved +OSi_SetTimerReserved: ; 0x020CCBF0 + ldr r1, _020CCC08 ; =0x021D37A8 + mov r2, #0x1 + ldrh r3, [r1, #0x0] + orr r0, r3, r2, lsl r0 + strh r0, [r1, #0x0] + bx lr + .balign 4 +_020CCC08: .word 0x021D37A8 + + arm_func_start OS_GetTickLo +OS_GetTickLo: ; 0x020CCC0C + ldr r0, _020CCC18 ; =0x04000100 + ldrh r0, [r0, #0x0] + bx lr + .balign 4 +_020CCC18: .word 0x04000100 + + arm_func_start OS_GetTick +OS_GetTick: ; 0x020CCC1C + stmdb sp!, {lr} + sub sp, sp, #0xc + bl OS_DisableInterrupts + ldr r1, _020CCCBC ; =0x04000100 + ldr r3, _020CCCC0 ; =0x021D37B4 + ldrh r12, [r1, #0x0] + ldr r2, _020CCCC4 ; =0x0000FFFF + mvn r1, #0x0 + strh r12, [sp, #0x0] + ldr r12, [r3, #0x0] + ldr r3, [r3, #0x4] + and r1, r12, r1 + and r2, r3, r2 + str r1, [sp, #0x4] + ldr r1, _020CCCC8 ; =0x04000214 + str r2, [sp, #0x8] + ldr r1, [r1, #0x0] + ands r1, r1, #0x8 + beq _020CCC90 + ldrh r1, [sp, #0x0] + ands r1, r1, #0x8000 + bne _020CCC90 + ldr r3, [sp, #0x4] + mov r1, #0x1 + ldr r2, [sp, #0x8] + adds r3, r3, r1 + adc r1, r2, #0x0 + str r3, [sp, #0x4] + str r1, [sp, #0x8] +_020CCC90: + bl OS_RestoreInterrupts + ldr r2, [sp, #0x4] + ldr r1, [sp, #0x8] + ldrh r0, [sp, #0x0] + mov r1, r1, lsl #0x10 + orr r1, r1, r2, lsr #0x10 + orr r1, r1, r0, asr #0x1f + orr r0, r0, r2, lsl #0x10 + add sp, sp, #0xc + ldmia sp!, {lr} + bx lr + .balign 4 +_020CCCBC: .word 0x04000100 +_020CCCC0: .word 0x021D37B4 +_020CCCC4: .word 0x0000FFFF +_020CCCC8: .word 0x04000214 + + arm_func_start OSi_CountUpTick +OSi_CountUpTick: ; 0x020CCCCC + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, _020CCD40 ; =0x021D37B4 + ldr r1, _020CCD44 ; =0x021D37B0 + ldr r12, [r2, #0x0] + mov r0, #0x1 + ldr r3, [r2, #0x4] + adds r12, r12, r0 + ldr r0, [r1, #0x0] + adc r3, r3, #0x0 + str r12, [r2, #0x0] + str r3, [r2, #0x4] + cmp r0, #0x0 + mov r3, #0x0 + beq _020CCD24 + ldr r2, _020CCD48 ; =0x04000102 + ldr r0, _020CCD4C ; =0x04000100 + strh r3, [r2, #0x0] + strh r3, [r0, #0x0] + mov r0, #0xc1 + strh r0, [r2, #0x0] + str r3, [r1, #0x0] +_020CCD24: + mov r0, #0x0 + ldr r1, _020CCD50 ; =OSi_CountUpTick + mov r2, r0 + bl OSi_EnterTimerCallback + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CCD40: .word 0x021D37B4 +_020CCD44: .word 0x021D37B0 +_020CCD48: .word 0x04000102 +_020CCD4C: .word 0x04000100 +_020CCD50: .word OSi_CountUpTick + + arm_func_start OS_IsTickAvailable +OS_IsTickAvailable: ; 0x020CCD54 + ldr r0, _020CCD60 ; =0x021D37AC + ldrh r0, [r0, #0x0] + bx lr + .balign 4 +_020CCD60: .word 0x021D37AC + + arm_func_start OS_InitTick +OS_InitTick: ; 0x020CCD64 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020CCDE8 ; =0x021D37AC + ldrh r0, [r1, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + mov r2, #0x1 + mov r0, #0x0 + strh r2, [r1, #0x0] + bl OSi_SetTimerReserved + ldr r0, _020CCDEC ; =0x021D37B4 + mov r2, #0x0 + str r2, [r0, #0x0] + ldr r3, _020CCDF0 ; =0x04000102 + str r2, [r0, #0x4] + ldr r0, _020CCDF4 ; =0x04000100 + strh r2, [r3, #0x0] + ldr r1, _020CCDF8 ; =OSi_CountUpTick + strh r2, [r0, #0x0] + mov r2, #0xc1 + mov r0, #0x8 + strh r2, [r3, #0x0] + bl OS_SetIrqFunction + mov r0, #0x8 + bl OS_EnableIrqMask + ldr r0, _020CCDFC ; =0x021D37B0 + mov r1, #0x0 + str r1, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CCDE8: .word 0x021D37AC +_020CCDEC: .word 0x021D37B4 +_020CCDF0: .word 0x04000102 +_020CCDF4: .word 0x04000100 +_020CCDF8: .word OSi_CountUpTick +_020CCDFC: .word 0x021D37B0 + + arm_func_start OSi_AlarmHandler +OSi_AlarmHandler: ; 0x020CCE00 + stmdb sp!, {r0,lr} + bl OSi_ArrangeTimer + ldmia sp!, {r0,lr} + bx lr + + arm_func_start OSi_ArrangeTimer +OSi_ArrangeTimer: ; 0x020CCE10 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r1, _020CCF1C ; =0x04000106 + mov r2, #0x0 + mov r0, #0x10 + strh r2, [r1, #0x0] + bl OS_DisableIrqMask + ldr r0, _020CCF20 ; =0x027E0000 + add r0, r0, #0x3000 + ldr r1, [r0, #0xff8] + orr r1, r1, #0x10 + str r1, [r0, #0xff8] + bl OS_GetTick + ldr r2, _020CCF24 ; =0x021D37C0 + ldr r4, [r2, #0x0] + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r3, [r4, #0x10] + ldr r12, [r4, #0xc] + cmp r1, r3 + cmpeq r0, r12 + bhs _020CCE84 + mov r0, r4 + bl OSi_SetTimer + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020CCE84: + ldr r1, [r4, #0x18] + cmp r1, #0x0 + moveq r0, #0x0 + streq r0, [r2, #0x4] + str r1, [r2, #0x0] + movne r0, #0x0 + strne r0, [r1, #0x14] + ldr r2, [r4, #0x1c] + ldr r1, [r4, #0x20] + mov r0, #0x0 + cmp r1, r0 + ldr r5, [r4, #0x0] + cmpeq r2, r0 + streq r0, [r4, #0x0] + cmp r5, #0x0 + beq _020CCECC + ldr r0, [r4, #0x4] + blx r5 +_020CCECC: + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0x20] + mov r1, #0x0 + cmp r0, r1 + cmpeq r2, r1 + beq _020CCEF4 + mov r0, r4 + mov r2, r1 + str r5, [r4, #0x0] + bl OSi_InsertAlarm +_020CCEF4: + ldr r0, _020CCF24 ; =0x021D37C0 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + bl OSi_SetTimer + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CCF1C: .word 0x04000106 +_020CCF20: .word 0x027E0000 +_020CCF24: .word 0x021D37C0 + + arm_func_start OS_CancelAlarm +OS_CancelAlarm: ; 0x020CCF28 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, [r5, #0x0] + mov r4, r0 + cmp r1, #0x0 + bne _020CCF58 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020CCF58: + ldr r0, [r5, #0x18] + cmp r0, #0x0 + ldreq r2, [r5, #0x14] + ldreq r1, _020CCFBC ; =0x021D37C0 + streq r2, [r1, #0x4] + ldrne r1, [r5, #0x14] + strne r1, [r0, #0x14] + ldr r1, [r5, #0x14] + cmp r1, #0x0 + strne r0, [r1, #0x18] + bne _020CCF98 + ldr r1, _020CCFBC ; =0x021D37C0 + cmp r0, #0x0 + str r0, [r1, #0x0] + beq _020CCF98 + bl OSi_SetTimer +_020CCF98: + mov r1, #0x0 + str r1, [r5, #0x0] + str r1, [r5, #0x1c] + mov r0, r4 + str r1, [r5, #0x20] + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CCFBC: .word 0x021D37C0 + + arm_func_start OS_SetAlarm +OS_SetAlarm: ; 0x020CCFC0 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + movs r6, r0 + mov r5, r1 + mov r4, r2 + mov r7, r3 + beq _020CCFE8 + ldr r0, [r6, #0x0] + cmp r0, #0x0 + beq _020CCFEC +_020CCFE8: + bl OS_Terminate +_020CCFEC: + bl OS_DisableInterrupts + mov r1, #0x0 + str r1, [r6, #0x1c] + str r1, [r6, #0x20] + str r7, [r6, #0x0] + ldr r1, [sp, #0x18] + mov r7, r0 + str r1, [r6, #0x4] + bl OS_GetTick + adds r3, r5, r0 + adc r2, r4, r1 + mov r0, r6 + mov r1, r3 + bl OSi_InsertAlarm + mov r0, r7 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start OSi_InsertAlarm +OSi_InsertAlarm: ; 0x020CD038 + stmdb sp!, {r4-r8,lr} + mov r8, r0 + ldr r4, [r8, #0x1c] + ldr r3, [r8, #0x20] + mov r0, #0x0 + cmp r3, r0 + mov r7, r1 + mov r6, r2 + cmpeq r4, r0 + beq _020CD0B4 + bl OS_GetTick + ldr r6, [r8, #0x28] + ldr r7, [r8, #0x24] + cmp r6, r1 + cmpeq r7, r0 + bhs _020CD0B4 + ldr r5, [r8, #0x1c] + ldr r4, [r8, #0x20] + subs r0, r0, r7 + mov r2, r5 + mov r3, r4 + sbc r1, r1, r6 + bl _ll_udiv + mov r2, #0x1 + adds r2, r0, r2 + adc r0, r1, #0x0 + umull r3, r1, r5, r2 + mla r1, r5, r0, r1 + mla r1, r4, r2, r1 + adds r7, r7, r3 + adc r6, r6, r1 +_020CD0B4: + str r7, [r8, #0xc] + ldr r0, _020CD174 ; =0x021D37C0 + str r6, [r8, #0x10] + ldr r4, [r0, #0x0] + cmp r4, #0x0 + beq _020CD134 + mov r1, #0x0 +_020CD0D0: + ldr r2, [r4, #0xc] + ldr r0, [r4, #0x10] + subs r3, r7, r2 + sbc r2, r6, r0 + subs r0, r3, r1 + sbcs r0, r2, r1 + bge _020CD128 + ldr r0, [r4, #0x14] + str r0, [r8, #0x14] + str r8, [r4, #0x14] + str r4, [r8, #0x18] + ldr r0, [r8, #0x14] + cmp r0, #0x0 + strne r8, [r0, #0x18] + ldmneia sp!, {r4-r8,lr} + bxne lr + ldr r1, _020CD174 ; =0x021D37C0 + mov r0, r8 + str r8, [r1, #0x0] + bl OSi_SetTimer + ldmia sp!, {r4-r8,lr} + bx lr +_020CD128: + ldr r4, [r4, #0x18] + cmp r4, #0x0 + bne _020CD0D0 +_020CD134: + ldr r1, _020CD174 ; =0x021D37C0 + mov r0, #0x0 + str r0, [r8, #0x18] + ldr r0, [r1, #0x4] + str r8, [r1, #0x4] + str r0, [r8, #0x14] + cmp r0, #0x0 + strne r8, [r0, #0x18] + ldmneia sp!, {r4-r8,lr} + bxne lr + mov r0, r8 + str r8, [r1, #0x4] + str r8, [r1, #0x0] + bl OSi_SetTimer + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020CD174: .word 0x021D37C0 + + arm_func_start OS_CreateAlarm +OS_CreateAlarm: ; 0x020CD178 + mov r1, #0x0 + str r1, [r0, #0x0] + str r1, [r0, #0x8] + bx lr + + arm_func_start OS_IsAlarmAvailable +OS_IsAlarmAvailable: ; 0x020CD188 + ldr r0, _020CD194 ; =0x021D37BC + ldrh r0, [r0, #0x0] + bx lr + .balign 4 +_020CD194: .word 0x021D37BC + + arm_func_start OS_InitAlarm +OS_InitAlarm: ; 0x020CD198 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020CD1E8 ; =0x021D37BC + ldrh r0, [r1, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + mov r0, #0x1 + strh r0, [r1, #0x0] + bl OSi_SetTimerReserved + ldr r1, _020CD1EC ; =0x021D37C0 + mov r2, #0x0 + mov r0, #0x10 + str r2, [r1, #0x0] + str r2, [r1, #0x4] + bl OS_DisableIrqMask + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CD1E8: .word 0x021D37BC +_020CD1EC: .word 0x021D37C0 + + arm_func_start OSi_SetTimer +OSi_SetTimer: ; 0x020CD1F0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + bl OS_GetTick + ldr r3, _020CD27C ; =0x04000106 + mov r2, #0x0 + strh r2, [r3, #0x0] + ldr r12, [r4, #0xc] + ldr r3, [r4, #0x10] + subs r5, r12, r0 + sbc r4, r3, r1 + ldr r1, _020CD280 ; =OSi_AlarmHandler + mov r0, #0x1 + bl OSi_EnterTimerCallback + mov r2, #0x0 + subs r0, r5, r2 + sbcs r0, r4, r2 + ldrlt r2, _020CD284 ; =0x0000FFFE + blt _020CD254 + mov r0, #0x10000 + subs r0, r5, r0 + sbcs r0, r4, r2 + mvnlt r0, r5 + movlt r0, r0, lsl #0x10 + movlt r2, r0, lsr #0x10 +_020CD254: + ldr r0, _020CD288 ; =0x04000104 + ldr r1, _020CD27C ; =0x04000106 + strh r2, [r0, #0x0] + mov r2, #0xc1 + mov r0, #0x10 + strh r2, [r1, #0x0] + bl OS_EnableIrqMask + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CD27C: .word 0x04000106 +_020CD280: .word OSi_AlarmHandler +_020CD284: .word 0x0000FFFE +_020CD288: .word 0x04000104 + + arm_func_start OS_InitVAlarm +OS_InitVAlarm: ; 0x020CD28C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, _020CD2EC ; =0x021D37C8 + ldrh r0, [r2, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldr r1, _020CD2F0 ; =0x021D37D4 + mov r3, #0x0 + mov r12, #0x1 + mov r0, #0x4 + strh r12, [r2, #0x0] + str r3, [r1, #0x0] + str r3, [r1, #0x4] + bl OS_DisableIrqMask + ldr r1, _020CD2F4 ; =0x021D37D0 + mov r2, #0x0 + ldr r0, _020CD2F8 ; =0x021D37CC + str r2, [r1, #0x0] + str r2, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CD2EC: .word 0x021D37C8 +_020CD2F0: .word 0x021D37D4 +_020CD2F4: .word 0x021D37D0 +_020CD2F8: .word 0x021D37CC + + arm_func_start OS_EnableInterrupts +OS_EnableInterrupts: ; 0x020CD2FC + mrs r0, cpsr + bic r1, r0, #0x80 + msr cpsr_c, r1 + and r0, r0, #0x80 + bx lr + + arm_func_start OS_DisableInterrupts +OS_DisableInterrupts: + mrs r0, cpsr + orr r1, r0, #0x80 + msr cpsr_c, r1 + and r0, r0, #0x80 + bx lr + + arm_func_start OS_RestoreInterrupts +OS_RestoreInterrupts: + mrs r1, cpsr + bic r2, r1, #0x80 + orr r2, r2, r0 + msr cpsr_c, r2 + and r0, r1, #0x80 + bx lr + + arm_func_start OS_DisableInterrupts_IrqAndFiq +OS_DisableInterrupts_IrqAndFiq: ; 0x020CD33C + mrs r0, cpsr + orr r1, r0, #0xc0 + msr cpsr_c, r1 + and r0, r0, #0xc0 + bx lr + + arm_func_start OS_RestoreInterrupts_IrqAndFiq +OS_RestoreInterrupts_IrqAndFiq: ; 0x020CD350 + mrs r1, cpsr + bic r2, r1, #0xc0 + orr r2, r2, r0 + msr cpsr_c, r2 + and r0, r1, #0xc0 + bx lr + + arm_func_start OS_GetCpsrIrq +OS_GetCpsrIrq: ; 0x020CD368 + mrs r0, cpsr + and r0, r0, #0x80 + bx lr + + arm_func_start OS_GetProcMode +OS_GetProcMode: ; 0x020CD374 + mrs r0, cpsr + and r0, r0, #0x1f + bx lr +_020CD380: + subs r0, r0, #0x4 + bhs _020CD380 + bx lr + + arm_func_start OS_WaitVBlankIntr +OS_WaitVBlankIntr: ; 0x020CD38C + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, #0x1 + blx FUN_020005F2 + mov r0, #0x1 + mov r1, r0 + bl OS_WaitIrq + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start OS_ResetSystem +OS_ResetSystem: ; 0x020CD3B4 + stmdb sp!, {r4,lr} + ldr r1, _020CD42C ; =0x027FFC40 + mov r4, r0 + ldrh r0, [r1, #0x0] + cmp r0, #0x2 + bne _020CD3D0 + bl OS_Terminate +_020CD3D0: + bl OS_GetLockID + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bl CARD_LockRom +_020CD3E0: + mov r0, #0x0 + bl MI_StopDma + mov r0, #0x1 + bl MI_StopDma + mov r0, #0x2 + bl MI_StopDma + mov r0, #0x3 + bl MI_StopDma + mov r0, #0x40000 + bl OS_SetIrqMask + mvn r0, #0x0 + bl OS_ResetRequestIrqMask + ldr r1, _020CD430 + mov r0, #0x10 + str r4, [r1] + bl OSi_SendToPxi + bl FUN_01FF84A4 + ldmia sp!, {r4, lr} + bx lr +_020CD42C: .word 0x027FFC40 +_020CD430: .word 0x027FFC20 + + arm_func_start OSi_SendToPxi +OSi_SendToPxi: ; 0x020CD434 + stmdb sp!, {r4-r6,lr} + mov r6, r0, lsl #0x8 + mov r5, #0xc + mov r4, #0x0 +_020CD444: + mov r0, r5 + mov r1, r6 + mov r2, r4 + bl PXI_SendWordByFifo +_020CD454: + cmp r0, #0x0 + bne _020CD444 + ldmia sp!, {r4-r6, lr} + bx lr + + arm_func_start OSi_CommonCallback +OSi_CommonCallback: ; 0x020CD464 + stmdb sp!, {lr} + sub sp, sp, #0x4 + and r0, r1, #0x7f00 + mov r0, r0, lsl #0x8 + mov r0, r0, lsr #0x10 + cmp r0, #0x10 + ldreq r0, _020CD4A4 ; =0x021D37E0 + moveq r1, #0x1 + streqh r1, [r0, #0x0] + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + bl OS_Terminate + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CD4A4: .word 0x021D37E0 + + arm_func_start OS_InitReset +OS_InitReset: ; 0x020CD4A8 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, _020CD508 ; =0x021D37DC + ldrh r1, [r0, #0x0] + cmp r1, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,lr} + bxne lr + mov r1, #0x1 + strh r1, [r0, #0x0] + bl PXI_Init + mov r5, #0xc + mov r4, #0x1 +_020CD4DC: + mov r0, r5 + mov r1, r4 + bl PXI_IsCallbackReady +_020CD4E8: + cmp r0, #0x0 + beq _020CD4DC + ldr r1, _020CD50C + mov r0, #0xC + bl PXI_SetFifoRecvCallback + add sp, sp, #0x4 + ldmia sp!, {r4-r5, lr} + bx lr +_020CD508: .word 0x021D37DC +_020CD50C: .word 0x020CD464 + + arm_func_start OS_GetOwnerRtcOffset +OS_GetOwnerRtcOffset: ; 0x020CD510 + ldr r1, _020CD520 ; =0x027FFC80 + ldr r0, [r1, #0x68] + ldr r1, [r1, #0x6c] + bx lr + .balign 4 +_020CD520: .word 0x027FFC80 + + arm_func_start OS_GetOwnerInfo +OS_GetOwnerInfo: ; 0x020CD524 + stmdb sp!, {r4,lr} + ldr ip, _020CD59C ; =0x027FFC80 + mov r4, r0 + ldrh r2, [r12, #0x64] + add r0, r12, #0x6 + add r1, r4, #0x4 + mov r2, r2, lsl #0x1d + mov r2, r2, lsr #0x1d + strb r2, [r4, #0x0] + ldrb r3, [r12, #0x2] + mov r2, #0x14 + mov r3, r3, lsl #0x1c + mov r3, r3, lsr #0x1c + strb r3, [r4, #0x1] + ldrb r3, [r12, #0x3] + strb r3, [r4, #0x2] + ldrb r3, [r12, #0x4] + strb r3, [r4, #0x3] + ldrb r3, [r12, #0x1a] + strh r3, [r4, #0x18] + ldrb r3, [r12, #0x50] + strh r3, [r4, #0x4e] + bl MIi_CpuCopy16 + ldr r0, _020CD59C ; =0x027FFC80 + add r1, r4, #0x1a + add r0, r0, #0x1c + mov r2, #0x34 + bl MIi_CpuCopy16 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CD59C: .word 0x027FFC80 + + arm_func_start OS_GetMacAddress +OS_GetMacAddress: ; 0x020CD5A0 + ldr ip, _020CD5B4 ; =MI_CpuCopy8 + mov r1, r0 + ldr r0, _020CD5B8 ; =0x027FFCF4 + mov r2, #0x6 + bx r12 + .balign 4 +_020CD5B4: .word MI_CpuCopy8 +_020CD5B8: .word 0x027FFCF4 + + arm_func_start OsCountZeroBits +OsCountZeroBits: ; 0x020CD5BC + clz r0, r0 + bx lr + + arm_func_start OSi_UnlockVram +OSi_UnlockVram: ; 0x020CD5C4 + stmdb sp!, {r4-r10,lr} + mov r5, r0 + mov r10, r1 + bl OS_DisableInterrupts + ldr r4, _020CD640 ; =0x021D37E4 + ldr r1, _020CD644 ; =0x000001FF + ldr r2, [r4, #0x0] + mov r8, r0 + and r0, r5, r2 + and r9, r0, r1 + ldr r6, _020CD648 ; =0x021D37E8 + mov r7, #0x1 + mov r5, #0x0 +_020CD5F8: + mov r0, r9 + bl OsCountZeroBits + rsbs r2, r0, #0x1f + bmi _020CD630 + mov r1, r2, lsl #0x1 + ldrh r0, [r6, r1] + mvn r2, r7, lsl r2 + cmp r10, r0 + ldreq r0, [r4, #0x0] + and r9, r9, r2 + andeq r0, r0, r2 + streqh r5, [r6, r1] + streq r0, [r4, #0x0] + b _020CD5F8 +_020CD630: + mov r0, r8 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r10,lr} + bx lr + .balign 4 +_020CD640: .word 0x021D37E4 +_020CD644: .word 0x000001FF +_020CD648: .word 0x021D37E8 + + arm_func_start OSi_TryLockVram +OSi_TryLockVram: ; 0x020CD64C + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r8, r1 + bl OS_DisableInterrupts + ldr r1, _020CD714 ; =0x021D37E4 + mov r7, r0 + ldr r0, [r1, #0x0] + and r5, r6, r0 + ldr sb, _020CD718 ; =0x021D37E8 + mov r4, #0x1 +_020CD678: + mov r0, r5 + bl OsCountZeroBits + rsbs r1, r0, #0x1f + bmi _020CD6B8 + mov r0, r1, lsl #0x1 + ldrh r0, [r9, r0] + mvn r1, r4, lsl r1 + cmp r8, r0 + and r5, r5, r1 + beq _020CD678 + mov r0, r7 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r9,lr} + bx lr +_020CD6B8: + ldr r0, _020CD71C ; =0x000001FF + and r6, r6, r0 + ldr r4, _020CD718 ; =0x021D37E8 + ldr sb, _020CD714 ; =0x021D37E4 + mov r5, #0x1 +_020CD6CC: + mov r0, r6 + bl OsCountZeroBits + rsbs r1, r0, #0x1f + bmi _020CD6FC + ldr r0, [r9, #0x0] + mvn r2, r5, lsl r1 + orr r0, r0, r5, lsl r1 + mov r1, r1, lsl #0x1 + strh r8, [r4, r1] + str r0, [r9, #0x0] + and r6, r6, r2 + b _020CD6CC +_020CD6FC: + mov r0, r7 + bl OS_RestoreInterrupts + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_020CD714: .word 0x021D37E4 +_020CD718: .word 0x021D37E8 +_020CD71C: .word 0x000001FF + + arm_func_start OSi_InitVramExclusive +OSi_InitVramExclusive: ; 0x020CD720 + ldr r0, _020CD74C ; =0x021D37E4 + mov r3, #0x0 + str r3, [r0, #0x0] + ldr r0, _020CD750 ; =0x021D37E8 + mov r2, r3 +_020CD734: + mov r1, r3, lsl #0x1 + add r3, r3, #0x1 + strh r2, [r0, r1] + cmp r3, #0x9 + blt _020CD734 + bx lr + .balign 4 +_020CD74C: .word 0x021D37E4 +_020CD750: .word 0x021D37E8 + + arm_func_start OS_GetLowEntropyData +OS_GetLowEntropyData: ; 0x020CD754 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r1, _020CD82C ; =0x04000006 + ldr r2, _020CD830 ; =0x027FFC00 + ldrh r7, [r1, #0x0] + add r4, r2, #0x80 + mov r6, r0 + add r5, r4, #0x74 + bl OS_GetTickLo + orr r0, r0, r7, lsl #0x10 + str r0, [r6, #0x0] + ldr r1, _020CD834 ; =0x021D37B4 + ldr r0, _020CD830 ; =0x027FFC00 + ldr r3, [r1, #0x0] + ldrh r5, [r5, #0x4] + ldr r2, [r1, #0x4] + ldr r2, _020CD838 ; =0x04000600 + eor r3, r3, r5, lsl #0x10 + str r3, [r6, #0x4] + ldr r3, [r1, #0x0] + ldr r3, [r1, #0x4] + ldr r1, [r4, #0x74] + ldr r4, [r0, #0x3c] + eor r1, r3, r1 + eor r1, r4, r1 + str r1, [r6, #0x8] + ldr r3, [r6, #0x8] + ldr r2, [r2, #0x0] + add r1, r0, #0x300 + eor r2, r3, r2 + str r2, [r6, #0x8] + ldr r2, [r0, #0x1e8] + ldr r3, _020CD83C ; =0x04000130 + str r2, [r6, #0xc] + ldr r4, [r0, #0x1ec] + ldr r2, _020CD840 ; =0x027FFFA8 + str r4, [r6, #0x10] + ldrh r4, [r1, #0x94] + ldr r0, [r0, #0x390] + eor r0, r0, r4, lsl #0x10 + str r0, [r6, #0x14] + ldrh r4, [r1, #0xaa] + ldrh r0, [r1, #0xac] + orr r0, r0, r4, lsl #0x10 + str r0, [r6, #0x18] + ldrh r3, [r3, #0x0] + ldrh r0, [r2, #0x0] + ldrh r1, [r1, #0x98] + orr r0, r3, r0 + orr r0, r0, r1, lsl #0x10 + str r0, [r6, #0x1c] + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020CD82C: .word 0x04000006 +_020CD830: .word 0x027FFC00 +_020CD834: .word 0x021D37B4 +_020CD838: .word 0x04000600 +_020CD83C: .word 0x04000130 +_020CD840: .word 0x027FFFA8 + + arm_func_start OS_Halt +OS_Halt: ; 0x020CD844 + mov r0, #0x0 + mcr p15, 0x0, r0, c7, c0, 0x4 + bx lr + + arm_func_start OS_Terminate +OS_Terminate: ; 0x020CD850 + stmdb sp!, {lr} + sub sp, sp, #0x4 +_020CD858: + bl OS_DisableInterrupts + bl OS_Halt + b _020CD858 + + arm_func_start MI_SetWramBank +MI_SetWramBank: + ldr r1, _020CD870 ; =0x04000247 + strb r0, [r1, #0x0] + bx lr + .balign 4 +_020CD870: .word 0x04000247 + + arm_func_start MIi_CheckDma0SourceAddress +MIi_CheckDma0SourceAddress: + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + cmp r3, #0x0 + and r0, r1, #0xff000000 + beq _020CD8A4 + cmp r3, #0x800000 + subeq r1, r1, r2 + b _020CD8A8 +_020CD8A4: + add r1, r1, r2 +_020CD8A8: + cmp r0, #0x4000000 + beq _020CD8D4 + cmp r0, #0x8000000 + bhs _020CD8D4 + and r0, r1, #0xff000000 + cmp r0, #0x4000000 + beq _020CD8D4 + cmp r0, #0x8000000 + addcc sp, sp, #0x4 + ldmccia sp!, {lr} + bxcc lr +_020CD8D4: + bl OS_Terminate + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start MIi_CheckAnotherAutoDMA +MIi_CheckAnotherAutoDMA: ; 0x020CD8E4 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + ldr r4, _020CD994 ; =0x040000B8 + mov r7, r0 + mov r6, r1 + mov r5, #0x0 +_020CD8FC: + cmp r5, r7 + beq _020CD978 + ldr r1, [r4, #0x0] + ands r0, r1, #0x80000000 + beq _020CD978 + and r0, r1, #0x38000000 + cmp r0, r6 + beq _020CD978 + cmp r0, #0x8000000 + bne _020CD92C + cmp r6, #0x10000000 + beq _020CD978 +_020CD92C: + cmp r0, #0x10000000 + bne _020CD93C + cmp r6, #0x8000000 + beq _020CD978 +_020CD93C: + cmp r0, #0x18000000 + beq _020CD974 + cmp r0, #0x20000000 + beq _020CD974 + cmp r0, #0x28000000 + beq _020CD974 + cmp r0, #0x30000000 + beq _020CD974 + cmp r0, #0x38000000 + beq _020CD974 + cmp r0, #0x8000000 + beq _020CD974 + cmp r0, #0x10000000 + bne _020CD978 +_020CD974: + bl OS_Terminate +_020CD978: + add r5, r5, #0x1 + cmp r5, #0x3 + add r4, r4, #0xc + blt _020CD8FC + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020CD994: .word 0x040000B8 + + arm_func_start MI_StopDma +MI_StopDma: ; 0x020CD998 + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + mov r1, #0x6 + mul r1, r4, r1 + add r1, r1, #0x5 + mov r1, r1, lsl #0x1 + add r1, r1, #0x4000000 + ldrh r2, [r1, #0xb0] + cmp r4, #0x0 + bic r2, r2, #0x3a00 + strh r2, [r1, #0xb0] + ldrh r2, [r1, #0xb0] + bic r2, r2, #0x8000 + strh r2, [r1, #0xb0] + ldrh r2, [r1, #0xb0] + ldrh r1, [r1, #0xb0] + bne _020CDA08 + mov r1, #0xc + mul r12, r4, r1 + ldr r1, _020CDA14 ; =0x040000B0 + add r2, r12, #0x4000000 + mov r3, #0x0 + str r3, [r2, #0xb0] + add r2, r12, r1 + ldr r1, _020CDA18 ; =0x81400001 + str r3, [r2, #0x4] + str r1, [r2, #0x8] +_020CDA08: + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CDA14: .word 0x040000B0 +_020CDA18: .word 0x81400001 + + arm_func_start MI_WaitDma +MI_WaitDma: + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + mov r1, #0x3 + mul r2, r4, r1 + ldr r1, _020CDA84 ; =0x040000B0 + add r2, r2, #0x2 + add r2, r1, r2, lsl #0x2 +_020CDA3C: + ldr r1, [r2, #0x0] + ands r1, r1, #0x80000000 + bne _020CDA3C + cmp r4, #0x0 + bne _020CDA78 + mov r1, #0xc + mul r12, r4, r1 + ldr r1, _020CDA84 ; =0x040000B0 + add r2, r12, #0x4000000 + mov r3, #0x0 + str r3, [r2, #0xb0] + add r2, r12, r1 + ldr r1, _020CDA88 ; =0x81400001 + str r3, [r2, #0x4] + str r1, [r2, #0x8] +_020CDA78: + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CDA84: .word 0x040000B0 +_020CDA88: .word 0x81400001 + + arm_func_start MI_DmaCopy32Async +MI_DmaCopy32Async: ; 0x020CDA8C + stmdb sp!, {r4-r8,lr} + mov r5, r3 + mov r6, r2 + mov r2, r5 + mov r3, #0x0 + mov r8, r0 + mov r7, r1 + ldr r4, [sp, #0x18] + bl MIi_CheckDma0SourceAddress +_020CDAB0: + cmp r5, #0x0 + bne _020CDAD4 + cmp r4, #0x0 + ldmeqia sp!, {r4-r8, lr} + bxeq lr + ldr r0, [sp, #0x1C] + blx r4 + ldmia sp!, {r4-r8, lr} + bx lr +_020CDAD4: + mov r0, r8 + bl MI_WaitDma + cmp r4, #0x0 + beq _020CDB14 + ldr r2, [sp, #0x1C] + mov r0, r8 + mov r1, r4 + bl OSi_EnterDmaCallback + mov r3, r5, lsr #0x2 + mov r0, r8 + mov r1, r7 + mov r2, r6 + orr r3, r3, #0xc4000000 + bl FUN_01FF85F0 + ldmia sp!, {r4-r8, lr} + bx lr +_020CDB14: + mov r3, r5, lsr #0x2 + mov r0, r8 + mov r1, r7 + mov r2, r6 + orr r3, r3, #0x84000000 + bl FUN_01FF85F0 + ldmia sp!, {r4-r8, lr} + bx lr + + arm_func_start MI_DmaFill32Async +MI_DmaFill32Async: ; 0x020CDB34 + stmdb sp!, {r4-r8,lr} + movs r4, r3 + mov r7, r0 + mov r6, r1 + mov r5, r2 + ldr r8, [sp, #0x18] + bne _020CDB6C + cmp r8, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r0, [sp, #0x1c] + blx r8 + ldmia sp!, {r4-r8,lr} + bx lr +_020CDB6C: + bl MI_WaitDma +_020CDB70: + cmp r8, #0x0 + beq _020CDBC8 + ldr r2, [sp, #0x1C] + mov r0, r7 + mov r1, r8 + bl OSi_EnterDmaCallback + bl OS_DisableInterrupts + mov r3, r4, lsr #2 + ldr r1, _20CDC08 + mov r2, r7, lsl #2 + add r2, r2, #0x4000000 + str r5, [r2, #0xE0] + mov r4, r0 + add r1, r1, r7, lsl #0x2 + mov r0, r7 + mov r2, r6 + orr r3, r3, #0xc5000000 + bl FUN_01FF8544 + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr +_020CDBC8: + bl OS_DisableInterrupts + ldr r1, _20CDC08 + mov r2, r7, lsl #0x2 + mov r3, r4, lsr #0x2 + mov r4, r0 + add ip, r2, #0x4000000 + mov r0, r7 + mov r2, r6 + add r1, r1, r7, lsl #0x2 + orr r3, r3, #0x85000000 + str r5, [ip, #0xE0] + bl FUN_01FF8544 + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr +_20CDC08: .word 0x040000E0 + + arm_func_start MI_DmaCopy16 +MI_DmaCopy16: ; 0x020CDC0C + stmdb sp!, {r4-r8,lr} + movs r5, r3 + mov r8, r0 + mov r7, r1 + mov r6, r2 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r2, r5 + mov r3, #0x0 + bl MIi_CheckDma0SourceAddress + mov r0, #0x3 + mul r1, r8, r0 + ldr r0, _020CDC80 ; =0x040000B0 + add r1, r1, #0x2 + add r4, r0, r1, lsl #0x2 +_020CDC48: + ldr r0, [r4, #0x0] + ands r0, r0, #0x80000000 + bne _020CDC48 + mov r3, r5, lsr #0x1 + mov r0, r8 + mov r1, r7 + mov r2, r6 + orr r3, r3, #0x80000000 + bl FUN_01FF857C +_020CDC6C: + ldr r0, [r4] + ands r0, r0, #0x80000000 + bne _020CDC6C + ldmia sp!, {r4-r8,lr} + bx lr +_020CDC80: .word 0x040000B0 + + arm_func_start MI_DmaCopy32 +MI_DmaCopy32: ; 0x020CDC84 + stmdb sp!, {r4-r8,lr} + mov r5, r3 + mov r6, r2 + mov r2, r5 + mov r3, #0x0 + mov r8, r0 + mov r7, r1 + bl MIi_CheckDma0SourceAddress +_020CDCA4: + cmp r5, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r0, #0x3 + mul r1, r8, r0 + ldr r0, _020CDCFC + add r1, r1, #0x2 + add r4, r0, r1, lsl #0x2 +_020CDCC4: + ldr r0, [r4] + ands r0, r0, #0x80000000 + bne _020CDCC4 + mov r3, r5, lsr #0x2 + mov r0, r8 + mov r1, r7 + mov r2, r6 + orr r3, r3, #0x84000000 + bl FUN_01FF857C +_020CDCE8: + ldr r0, [r4] + ands r0, r0, #0x80000000 + bne _020CDCE8 + ldmia sp!, {r4-r8,lr} + bx lr +_020CDCFC: .word 0x040000B0 + + arm_func_start MI_DmaFill32 +MI_DmaFill32: ; 0x020CDD00 + stmdb sp!, {r4-r8,lr} + movs r4, r3 + mov r8, r0 + mov r7, r1 + mov r6, r2 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r0, #0x3 + mul r1, r8, r0 + ldr r0, _020CDD88 ; =0x040000B0 + add r1, r1, #0x2 + add r5, r0, r1, lsl #0x2 +_020CDD30: + ldr r0, [r5, #0x0] + ands r0, r0, #0x80000000 + bne _020CDD30 + bl OS_DisableInterrupts + ldr r1, _020CDD8C ; =0x040000E0 + mov r2, r8, lsl #0x2 + mov r3, r4, lsr #0x2 + mov r4, r0 + add r12, r2, #0x4000000 + mov r0, r8 + mov r2, r7 + add r1, r1, r8, lsl #0x2 + orr r3, r3, #0x85000000 + str r6, [r12, #0xe0] + bl FUN_01FF84E4 + mov r0, r4 + bl OS_RestoreInterrupts +_020CDD74: + ldr r0, [r5] + ands r0, r0, #0x80000000 + bne _020CDD74 + ldmia sp!, {r4-r8,lr} + bx lr +_020CDD88: .word 0x040000B0 +_020CDD8C: .word 0x040000E0 + + arm_func_start MI_HBlankDmaCopy16 +MI_HBlankDmaCopy16: ; 0x020CDD90 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r1 + mov r7, r0 + mov r4, r3 + mov r1, #0x10000000 + mov r5, r2 + bl MIi_CheckAnotherAutoDMA + mov r0, r7 + mov r1, r6 + mov r2, r4 + mov r3, #0x0 + bl MIi_CheckDma0SourceAddress +_020CDDC4: + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7, lr} + bxeq lr + mov r0, r7 + bl MI_WaitDma + ldr r3, _020CDE00 + mov r0, r7 + mov r1, r6 + mov r2, r5 + orr r3, r3, r4, lsr #0x1 + bl FUN_01FF85F0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_020CDE00: .word 0x92600000 + + arm_func_start MI_HBlankDmaCopy32 +MI_HBlankDmaCopy32: ; 0x020CDE04 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r1 + mov r7, r0 + mov r4, r3 + mov r1, #0x10000000 + mov r5, r2 + bl MIi_CheckAnotherAutoDMA + mov r0, r7 + mov r1, r6 + mov r2, r4 + mov r3, #0x0 + bl MIi_CheckDma0SourceAddress +_020CDE38: + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + mov r0, r7 + bl MI_WaitDma + ldr r3, _020CDE74 + mov r0, r7 + mov r1, r6 + mov r2, r5 + orr r3, r3, r4, lsr #0x2 + bl FUN_01FF85F0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_020CDE74: .word 0x96600000 + + arm_func_start MIi_DMAFastCallback +MIi_DMAFastCallback: ; 0x020CDE78 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020CDEB4 ; =0x021D37FC + mov r2, #0x0 + ldr r1, [r0, #0x10] + str r2, [r0, #0x0] + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldr r0, [r0, #0x14] + ldmeqia sp!, {lr} + bxeq lr + blx r1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CDEB4: .word 0x021D37FC + + arm_func_start MI_SendGXCommandAsyncFast +MI_SendGXCommandAsyncFast: ; 0x020CDEB8 + stmdb sp!, {r4-r6,lr} + movs r4, r2 + mov r6, r0 + mov r5, r1 + bne _020CDEE8 + cmp r3, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r0, [sp, #0x10] + blx r3 + ldmia sp!, {r4-r6,lr} + bx lr +_020CDEE8: + ldr r2, _020CDF6C ; =0x021D37FC + ldr r0, [r2, #0x0] + cmp r0, #0x0 + bne _020CDEE8 + ldr r12, [sp, #0x10] + mov lr, #0x1 + mov r0, r6 + mov r1, #0x38000000 + str lr, [r2, #0x0] + str r6, [r2, #0x4] + str r3, [r2, #0x10] + str r12, [r2, #0x14] + bl MIi_CheckAnotherAutoDMA + mov r0, r6 + mov r1, r5 + mov r2, r4 + mov r3, #0x0 + bl MIi_CheckDma0SourceAddress + mov r0, r6 + bl MI_WaitDma + mov r0, r6 + ldr r1, _020CDF70 ; =MIi_DMAFastCallback + mov r2, #0x0 + bl OSi_EnterDmaCallback + mov r0, r6 + mov r1, r5 + ldr r2, _020CDF74 ; =0x04000400 + mov r3, #0x3c00000 + rsb r3, r3, #0x0 + orr r3, r3, r4, lsr #0x2 + bl FUN_01FF85F0 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020CDF6C: .word 0x021D37FC +_020CDF70: .word MIi_DMAFastCallback +_020CDF74: .word 0x04000400 + + arm_func_start MIi_DMACallback +MIi_DMACallback: ; 0x020CDF78 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, #0x200000 + bl OS_DisableIrqMask + ldr r2, _020CDFE4 ; =0x04000600 + ldr r0, _020CDFE8 ; =0x021D37FC + ldr r1, [r2, #0x0] + ldr r3, [r0, #0x18] + bic r1, r1, #0xc0000000 + orr r1, r1, r3, lsl #0x1e + str r1, [r2, #0x0] + ldr r1, [r0, #0x1c] + mov r0, #0x200000 + bl OS_SetIrqFunction + ldr r0, _020CDFE8 ; =0x021D37FC + mov r2, #0x0 + ldr r1, [r0, #0x10] + str r2, [r0, #0x0] + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldr r0, [r0, #0x14] + ldmeqia sp!, {lr} + bxeq lr + blx r1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CDFE4: .word 0x04000600 +_020CDFE8: .word 0x021D37FC + + arm_func_start MIi_FIFOCallback +MIi_FIFOCallback: ; 0x020CDFEC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, _020CE0A4 ; =0x021D37FC + ldr r4, [r0, #0xc] + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r0, _020CE0A4 ; =0x021D37FC + cmp r4, #0x1d8 + ldr r5, [r0, #0x8] + movcs r4, #0x1d8 + ldr r2, [r0, #0xc] + add r1, r5, r4 + subs r2, r2, r4 + str r2, [r0, #0xc] + str r1, [r0, #0x8] + bne _020CE078 + ldr r0, [r0, #0x4] + ldr r1, _020CE0A8 ; =MIi_DMACallback + mov r2, #0x0 + bl OSi_EnterDmaCallback + mov r0, #0x3bc00000 + rsb r3, r0, #0x0 + ldr r1, _020CE0A4 ; =0x021D37FC + ldr r2, _020CE0AC ; =0x04000400 + ldr r0, [r1, #0x4] + mov r1, r5 + orr r3, r3, r4, lsr #0x2 + bl FUN_01FF85F0 + mov r0, #0x200000 + bl OS_ResetRequestIrqMask + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020CE078: + ldr r3, _020CE0B0 ; =0x84400000 + ldr r0, [r0, #0x4] + ldr r2, _020CE0AC ; =0x04000400 + mov r1, r5 + orr r3, r3, r4, lsr #0x2 + bl FUN_01FF85F0 + mov r0, #0x200000 + bl OS_ResetRequestIrqMask + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CE0A4: .word 0x021D37FC +_020CE0A8: .word MIi_DMACallback +_020CE0AC: .word 0x04000400 +_020CE0B0: .word 0x84400000 + + arm_func_start MI_SendGXCommandAsync +MI_SendGXCommandAsync: ; 0x020CE0B4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + cmp r2, #0x0 + bne _020CE0EC + cmp r3, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r0, [sp, #0x10] + blx r3 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020CE0EC: + ldr r0, _020CE1BC ; =0x021D37FC + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _020CE0EC + ldr r5, _020CE1C0 ; =0x04000600 +_020CE100: + ldr r0, [r5, #0x0] + and r0, r0, #0x7000000 + mov r0, r0, lsr #0x18 + ands r0, r0, #0x2 + beq _020CE100 + ldr ip, _020CE1BC ; =0x021D37FC + ldr lr, [sp, #0x10] + str r3, [r12, #0x10] + mov r5, #0x1 + mov r0, r4 + mov r3, #0x0 + str r5, [r12, #0x0] + str r4, [r12, #0x4] + str r1, [r12, #0x8] + str r2, [r12, #0xc] + str lr, [r12, #0x14] + bl MIi_CheckDma0SourceAddress + mov r0, r4 + bl MI_WaitDma + bl OS_DisableInterrupts + ldr r1, _020CE1C0 ; =0x04000600 + mov r4, r0 + ldr r0, [r1, #0x0] + ldr r1, _020CE1BC ; =0x021D37FC + and r0, r0, #0xc0000000 + mov r2, r0, lsr #0x1e + mov r0, #0x200000 + str r2, [r1, #0x18] + bl OS_GetIrqFunction + ldr r1, _020CE1BC ; =0x021D37FC + ldr r2, _020CE1C0 ; =0x04000600 + str r0, [r1, #0x1c] + ldr r0, [r2, #0x0] + ldr r1, _020CE1C4 ; =MIi_FIFOCallback + bic r0, r0, #0xc0000000 + orr r3, r0, #0x40000000 + mov r0, #0x200000 + str r3, [r2, #0x0] + bl OS_SetIrqFunction + mov r0, #0x200000 + bl OS_EnableIrqMask + bl MIi_FIFOCallback + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CE1BC: .word 0x021D37FC +_020CE1C0: .word 0x04000600 +_020CE1C4: .word MIi_FIFOCallback + + arm_func_start MIi_CpuClear16 +MIi_CpuClear16: ; 0x020CE1C8 + mov r3, #0x0 +_020CE1CC: + cmp r3, r2 + strlth r0, [r1, r3] + addlt r3, r3, #0x2 + blt _020CE1CC + bx lr + + arm_func_start MIi_CpuCopy16 +MIi_CpuCopy16: ; 0x020CE1E0 + mov r12, #0x0 +_020CE1E4: + cmp r12, r2 + ldrlth r3, [r0, r12] + strlth r3, [r1, r12] + addlt r12, r12, #0x2 + blt _020CE1E4 + bx lr + + arm_func_start MIi_CpuClear32 +MIi_CpuClear32: ; 0x020CE1FC + add r12, r1, r2 +_020CE200: + cmp r1, r12 + stmltia r1!, {r0} + blt _020CE200 + bx lr + + arm_func_start MIi_CpuCopy32 +MIi_CpuCopy32: ; 0x020CE210 + add r12, r1, r2 +_020CE214: + cmp r1, r12 + ldmltia r0!, {r2} + stmltia r1!, {r2} + blt _020CE214 + bx lr + + arm_func_start MIi_CpuSend32 +MIi_CpuSend32: ; 0x020CE228 + add r12, r0, r2 +_020CE22C: + cmp r0, r12 + ldmltia r0!, {r2} + strlt r2, [r1, #0x0] + blt _020CE22C + bx lr + + arm_func_start MIi_CpuClearFast +MIi_CpuClearFast: ; 0x020CE240 + stmdb sp!, {r4-r9} + add r9, r1, r2 + mov r12, r2, lsr #0x5 + add r12, r1, r12, lsl #0x5 + mov r2, r0 + mov r3, r2 + mov r4, r2 + mov r5, r2 + mov r6, r2 + mov r7, r2 + mov r8, r2 +_020CE26C: + cmp r1, r12 + stmltia r1!, {r0,r2-r8} + blt _020CE26C +_020CE278: + cmp r1, r9 + stmltia r1!, {r0} + blt _020CE278 + ldmia sp!, {r4-r9} + bx lr + + arm_func_start MIi_CpuCopyFast +MIi_CpuCopyFast: ; 0x020CE28C + stmdb sp!, {r4-r10} + add r10, r1, r2 + mov r12, r2, lsr #0x5 + add r12, r1, r12, lsl #0x5 +_020CE29C: + cmp r1, r12 + ldmltia r0!, {r2-r9} + stmltia r1!, {r2-r9} + blt _020CE29C +_020CE2AC: + cmp r1, r10 + ldmltia r0!, {r2} + stmltia r1!, {r2} + blt _020CE2AC + ldmia sp!, {r4-r10} + bx lr + + arm_func_start FUN_020CE2C4 +FUN_020CE2C4: + ldmia r0!, {r2, r3, ip} + stmia r1!, {r2, r3, ip} + ldmia r0!, {r2, r3, ip} + stmia r1!, {r2, r3, ip} + ldmia r0!, {r2, r3} + stmia r1!, {r2, r3} + bx lr + + arm_func_start MI_Copy36B +MI_Copy36B: ; 0x020CE2E0 + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + bx lr + + arm_func_start MI_Copy48B +MI_Copy48B: ; 0x020CE2FC + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + bx lr + + arm_func_start MI_Copy64B +MI_Copy64B: ; 0x020CE320 + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0!, {r2-r3,r12} + stmia r1!, {r2-r3,r12} + ldmia r0, {r0,r2-r3,r12} + stmia r1!, {r0,r2-r3,r12} + bx lr + + arm_func_start MI_CpuFill8 +MI_CpuFill8: ; 0x020CE34C + cmp r2, #0x0 + bxeq lr + tst r0, #0x1 + beq _020CE378 + ldrh r12, [r0, #-0x1] + and r12, r12, #0xff + orr r3, r12, r1, lsl #0x8 + strh r3, [r0, #-0x1] + add r0, r0, #0x1 + subs r2, r2, #0x1 + bxeq lr +_020CE378: + cmp r2, #0x2 + blo _020CE3C0 + orr r1, r1, r1, lsl #0x8 + tst r0, #0x2 + beq _020CE398 + strh r1, [r0], #0x2 + subs r2, r2, #0x2 + bxeq lr +_020CE398: + orr r1, r1, r1, lsl #0x10 + bics r3, r2, #0x3 + beq _020CE3B8 + sub r2, r2, r3 + add r12, r3, r0 +_020CE3AC: + str r1, [r0], #0x4 + cmp r0, r12 + blo _020CE3AC +_020CE3B8: + tst r2, #0x2 + strneh r1, [r0], #0x2 +_020CE3C0: + tst r2, #0x1 + bxeq lr + ldrh r3, [r0, #0x0] + and r3, r3, #0xff00 + and r1, r1, #0xff + orr r1, r1, r3 + strh r1, [r0, #0x0] + bx lr + + arm_func_start MI_CpuCopy8 +MI_CpuCopy8: + cmp r2, #0x0 + bxeq lr + tst r1, #0x1 + beq _020CE420 + ldrh r12, [r1, #-0x1] + and r12, r12, #0xff + tst r0, #0x1 + ldrneh r3, [r0, #-0x1] + movne r3, r3, lsr #0x8 + ldreqh r3, [r0, #0x0] + orr r3, r12, r3, lsl #0x8 + strh r3, [r1, #-0x1] + add r0, r0, #0x1 + add r1, r1, #0x1 + subs r2, r2, #0x1 + bxeq lr +_020CE420: + eor r12, r1, r0 + tst r12, #0x1 + beq _020CE474 + bic r0, r0, #0x1 + ldrh r12, [r0], #0x2 + mov r3, r12, lsr #0x8 + subs r2, r2, #0x2 + blo _020CE458 +_020CE440: + ldrh r12, [r0], #0x2 + orr r12, r3, r12, lsl #0x8 + strh r12, [r1], #0x2 + mov r3, r12, lsr #0x10 + subs r2, r2, #0x2 + bhs _020CE440 +_020CE458: + tst r2, #0x1 + bxeq lr + ldrh r12, [r1, #0x0] + and r12, r12, #0xff00 + orr r12, r12, r3 + strh r12, [r1, #0x0] + bx lr +_020CE474: + tst r12, #0x2 + beq _020CE4A0 + bics r3, r2, #0x1 + beq _020CE4EC + sub r2, r2, r3 + add r12, r3, r1 +_020CE48C: + ldrh r3, [r0], #0x2 + strh r3, [r1], #0x2 + cmp r1, r12 + blo _020CE48C + b _020CE4EC +_020CE4A0: + cmp r2, #0x2 + blo _020CE4EC + tst r1, #0x2 + beq _020CE4C0 + ldrh r3, [r0], #0x2 + strh r3, [r1], #0x2 + subs r2, r2, #0x2 + bxeq lr +_020CE4C0: + bics r3, r2, #0x3 + beq _020CE4E0 + sub r2, r2, r3 + add r12, r3, r1 +_020CE4D0: + ldr r3, [r0], #0x4 + str r3, [r1], #0x4 + cmp r1, r12 + blo _020CE4D0 +_020CE4E0: + tst r2, #0x2 + ldrneh r3, [r0], #0x2 + strneh r3, [r1], #0x2 +_020CE4EC: + tst r2, #0x1 + bxeq lr + ldrh r2, [r1, #0x0] + ldrh r0, [r0, #0x0] + and r2, r2, #0xff00 + and r0, r0, #0xff + orr r0, r2, r0 + strh r0, [r1, #0x0] + bx lr + + thumb_func_start MI_Zero36B +MI_Zero36B: ; 0x020CE510 + mov r1, #0x0 + mov r2, #0x0 + mov r3, #0x0 + stmia r0!, {r1-r3} + stmia r0!, {r1-r3} + stmia r0!, {r1-r3} + bx lr + + arm_func_start MI_SwapWord +MI_SwapWord: ; 0x020CE520 + swp r0, r0, [r1] + bx lr + + arm_func_start MI_UncompressLZ8 +MI_UncompressLZ8: ; 0x020CE528 + stmdb sp!, {r4-r6,lr} + ldr r5, [r0], #0x4 + mov r2, r5, lsr #0x8 +_020CE534: + cmp r2, #0x0 + ble _020CE5B4 + ldrb lr, [r0], #0x1 + mov r4, #0x8 +_020CE544: + subs r4, r4, #0x1 + blt _020CE534 + tst lr, #0x80 + bne _020CE568 + ldrb r6, [r0], #0x1 + .word 0xE1416096 + add r1, r1, #0x1 + sub r2, r2, #0x1 + b _020CE5A4 +_020CE568: + ldrb r5, [r0, #0x0] + mov r6, #0x3 + add r3, r6, r5, asr #0x4 + ldrb r6, [r0], #0x1 + and r5, r6, #0xf + mov r12, r5, lsl #0x8 + ldrb r6, [r0], #0x1 + orr r5, r6, r12 + add r12, r5, #0x1 + sub r2, r2, r3 +_020CE590: + ldrb r5, [r1, -r12] + .word 0xE1415095 + add r1, r1, #0x1 + subs r3, r3, #0x1 + bgt _020CE590 +_020CE5A4: + cmp r2, #0x0 + movgt lr, lr, lsl #0x1 + bgt _020CE544 + b _020CE534 +_020CE5B4: + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start MIi_CardDmaCopy32 +MIi_CardDmaCopy32: ; 0x020CE5BC + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r5, r1 + mov r6, r0 + mov r7, r3 + mvn r1, #0x0 + mov r4, r2 + bl MIi_CheckAnotherAutoDMA + mov r0, r6 + mov r1, r5 + mov r2, r7 + mov r3, #0x1000000 + bl MIi_CheckDma0SourceAddress +_020CE5F0: + cmp r7, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7, lr} + bxeq lr + mov r0, #0x3 + mul r1, r6, r0 + ldr r0, _020CE640 + add r1, r1, #0x2 + add r1, r0, r1, lsl #0x2 +_020CE614: + ldr r0, [r1] + ands r0, r0, #0x80000000 + bne _020CE614 + ldr r3, _020CE644 + mov r0, r6 + mov r1, r5 + mov r2, r4 + bl FUN_01FF85F0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7, lr} + bx lr +_020CE640: .word 0x040000B0 +_020CE644: .word 0xAf000001 + + arm_func_start MI_Init +MI_Init: ; 0x020CE648 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, #0x3 + bl MI_SetWramBank + mov r0, #0x0 + bl MI_StopDma + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr + + arm_func_start PushCommand_impl +PushCommand_impl: ; 0x020CE66C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + mov r0, #0x1 + mov r6, r1 + mov r5, r2 + mov r4, r3 + bl SND_AllocCommand +_020CE68C: + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r7, lr} + bxeq lr + str r7, [r0, #0x4] + str r6, [r0, #0x8] + str r5, [r0, #0xc] + ldr r1, [sp, #0x18] + str r4, [r0, #0x10] + str r1, [r0, #0x14] + bl SND_PushCommand + add sp, sp, #0x4 + ldmia sp!, {r4-r7, lr} + bx lr + + arm_func_start SNDi_SetTrackParam +SNDi_SetTrackParam: ; 0x020CE6C4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r12, [sp, #0x8] + mov lr, r2 + str r3, [sp, #0x0] + mov r2, r1 + orr r1, r0, r12, lsl #0x18 + mov r3, lr + mov r0, #0x7 + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FUN_020CE6F8 +FUN_020CE6F8: ; 0x020CE6F8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r12, r2 + str r3, [sp, #0x0] + mov r1, r0 + mov r2, lr + mov r3, r12 + mov r0, #0x6 + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_ResetMasterPan +SND_ResetMasterPan: ; 0x020CE72C + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, #0x0 + mov r3, r2 + mov r0, #0x18 + mvn r1, #0x0 + str r2, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetMasterPan +SND_SetMasterPan: ; 0x020CE758 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, #0x0 + mov r1, r0 + mov r3, r2 + mov r0, #0x18 + str r2, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetOutputSelector +SND_SetOutputSelector: ; 0x020CE784 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r12, r2 + str r3, [sp, #0x0] + mov r1, r0 + mov r2, lr + mov r3, r12 + mov r0, #0x19 + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_InvalidateWaveData +SND_InvalidateWaveData: ; 0x020CE7B8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x20 + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_InvalidateBankData +SND_InvalidateBankData: ; 0x020CE7E4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x1f + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_InvalidateSeqData +SND_InvalidateSeqData: ; 0x020CE810 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x1e + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetupChannelPcm +SND_SetupChannelPcm: ; 0x020CE83C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r12, [sp, #0x18] + mov r3, r3, lsl #0x1a + orr r4, r3, r1, lsl #0x18 + ldr r5, [sp, #0x24] + mov r3, r12, lsl #0x18 + ldr r1, [sp, #0x1c] + ldr r12, [sp, #0x10] + orr r4, r4, r5, lsl #0x10 + orr r4, r12, r4 + ldr lr, [sp, #0x20] + orr r3, r3, r1, lsl #0x16 + ldr r12, [sp, #0x14] + orr r1, r0, lr, lsl #0x10 + orr r3, r12, r3 + mov r0, #0xe + str r4, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start SND_SetChannelPan +SND_SetChannelPan: ; 0x020CE894 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x15 + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetChannelVolume +SND_SetChannelVolume: ; 0x020CE8C0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r3, r2 + mov r12, #0x0 + mov r1, r0 + mov r2, lr + mov r0, #0x14 + str r12, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetChannelTimer +SND_SetChannelTimer: ; 0x020CE8F4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x13 + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_UnlockChannel +SND_UnlockChannel: ; 0x020CE920 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x1b + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_LockChannel +SND_LockChannel: ; 0x020CE94C + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x1a + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetupAlarm +SND_SetupAlarm: ; 0x020CE978 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r4, r2 + mov r5, r1 + ldr r2, [sp, #0x18] + mov r6, r0 + mov r1, r3 + bl SNDi_SetAlarmHandler +_020CE998: + str r0, [sp] + mov r1, r6 + mov r2, r5 + mov r3, r4 + mov r0, #0x12 + bl PushCommand_impl + add sp, sp, #0x8 + ldmia sp!, {r4-r6, lr} + bx lr + + arm_func_start SND_SetupCapture +SND_SetupCapture: ; 0x020CE9BC + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, r0, lsl #0x1f + orr r0, r0, r1, lsl #0x1e + ldr r12, [sp, #0x8] + mov r1, r2 + orr r0, r0, r12, lsl #0x1d + ldr r2, [sp, #0xc] + mov lr, #0x0 + orr r0, r0, r2, lsl #0x1c + ldr r12, [sp, #0x10] + mov r2, r3 + orr r3, r0, r12, lsl #0x1b + mov r0, #0x11 + str lr, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_StopTimer +SND_StopTimer: ; 0x020CEA08 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r7, r2 + mov r9, r0 + mov r8, r1 + mov r6, r3 + mov r4, r7 + mov r5, #0x0 + b _020CEA44 +_020CEA2C: + ands r0, r4, #0x1 + beq _020CEA3C + mov r0, r5 + bl SNDi_IncAlarmId +_020CEA3C: + add r5, r5, #0x1 + mov r4, r4, lsr #0x1 +_020CEA44: + cmp r5, #0x8 + bge _020CEA54 + cmp r4, #0x0 + bne _020CEA2C +_020CEA54: + mov r1, r9 + mov r2, r8 + mov r3, r7 + mov r0, #0xd + str r6, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start SND_StartTimer +SND_StartTimer: ; 0x020CEA78 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r12, r2 + str r3, [sp, #0x0] + mov r1, r0 + mov r2, lr + mov r3, r12 + mov r0, #0xc + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetTrackAllocatableChannel +SND_SetTrackAllocatableChannel: ; 0x020CEAAC + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r3, r2 + mov r12, #0x0 + mov r1, r0 + mov r2, lr + mov r0, #0x9 + str r12, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetTrackPan +SND_SetTrackPan: ; 0x020CEAE0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r3, r2 + mov r12, #0x1 + mov r2, #0x9 + str r12, [sp, #0x0] + bl SNDi_SetTrackParam + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetTrackPitch +SND_SetTrackPitch: ; 0x020CEB08 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r3, r2 + mov r12, #0x2 + mov r2, #0xc + str r12, [sp, #0x0] + bl SNDi_SetTrackParam + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_SetPlayerChannelPriority +SND_SetPlayerChannelPriority: ; 0x020CEB30 + ldr ip, _020CEB44 ; =FUN_020CE6F8 + mov r2, r1 + mov r1, #0x4 + mov r3, #0x1 + bx r12 + .balign 4 +_020CEB44: .word FUN_020CE6F8 + + arm_func_start SND_SetPlayerVolume +SND_SetPlayerVolume: ; 0x020CEB48 + ldr ip, _020CEB5C ; =FUN_020CE6F8 + mov r2, r1 + mov r1, #0x6 + mov r3, #0x2 + bx r12 + .balign 4 +_020CEB5C: .word FUN_020CE6F8 + + arm_func_start SND_PauseSeq +SND_PauseSeq: ; 0x020CEB60 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, r1 + mov r3, #0x0 + mov r1, r0 + mov r0, #0x4 + str r3, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_StartPreparedSeq +SND_StartPreparedSeq: ; 0x020CEB8C + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, #0x0 + mov r1, r0 + mov r3, r2 + mov r0, #0x3 + str r2, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_PrepareSeq +SND_PrepareSeq: ; 0x020CEBB8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov lr, r1 + mov r12, r2 + str r3, [sp, #0x0] + mov r1, r0 + mov r2, lr + mov r3, r12 + mov r0, #0x2 + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SND_StopSeq +SND_StopSeq: ; 0x020CEBEC + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r2, #0x0 + mov r1, r0 + mov r3, r2 + mov r0, #0x1 + str r2, [sp, #0x0] + bl PushCommand_impl + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start SNDi_UnlockMutex +SNDi_UnlockMutex: ; 0x020CEC18 + ldr ip, _020CEC24 ; =OS_UnlockMutex + ldr r0, _020CEC28 ; =0x021D3820 + bx r12 + .balign 4 +_020CEC24: .word OS_UnlockMutex +_020CEC28: .word 0x021D3820 + + arm_func_start SNDi_LockMutex +SNDi_LockMutex: ; 0x020CEC2C + ldr ip, _020CEC38 ; =OS_LockMutex + ldr r0, _020CEC3C ; =0x021D3820 + bx r12 + .balign 4 +_020CEC38: .word OS_LockMutex +_020CEC3C: .word 0x021D3820 + + arm_func_start SND_Init +SND_Init: ; 0x020CEC40 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020CEC84 ; =0x021D381C + ldr r0, [r1, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldr r0, _020CEC88 ; =0x021D3820 + mov r2, #0x1 + str r2, [r1, #0x0] + bl OS_InitMutex + bl SND_CommandInit + bl SND_AlarmInit + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CEC84: .word 0x021D381C +_020CEC88: .word 0x021D3820 + + arm_func_start IsCommandAvailable +IsCommandAvailable: + stmdb sp!, {r4,lr} + bl OS_IsRunOnEmulator +_020CEC94: + cmp r0, #0x0 + moveq r0, #0x1 + ldmeqia sp!, {r4, lr} + bxeq lr + bl OS_DisableInterrupts + ldr r1, _020CECD0 + mov r2, #0x10 + str r2, [r1] + ldr r4, [r1] + bl OS_RestoreInterrupts + cmp r4, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + ldmia sp!, {r4, lr} + bx lr +_020CECD0: .word 0x04FFF200 + + arm_func_start AllocCommand +AllocCommand: ; 0x020CECD4 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020CED24 ; =0x021D3838 + ldr r4, [r1, #0x0] + cmp r4, #0x0 + bne _020CECFC + bl OS_RestoreInterrupts +_020CECF0: + mov r0, #0x0 + ldmia sp!, {r4, lr} + bx lr +_020CECFC: + ldr r2, [r4, #0x0] + str r2, [r1, #0x0] + cmp r2, #0x0 + ldreq r1, _020CED28 ; =0x021D3848 + moveq r2, #0x0 + streq r2, [r1, #0x0] + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CED24: .word 0x021D3838 +_020CED28: .word 0x021D3848 + + arm_func_start RequestCommandProc +RequestCommandProc: ; 0x020CED2C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, #0x7 + mov r4, #0x0 +_020CED3C: + mov r0, r5 + mov r1, r4 + mov r2, r4 + bl PXI_SendWordByFifo +_020CED4C: + cmp r0, #0 + blt _020CED3C + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start InitPXI +InitPXI: ; 0x020CED60 + stmdb sp!, {r4-r6,lr} + ldr r1, _020CEDC8 ; =PxiFifoCallback + mov r0, #0x7 + bl PXI_SetFifoRecvCallback + bl IsCommandAvailable +_020CED74: + cmp r0, #0x0 + ldmeqia sp!, {r4-r6, lr} + bxeq lr + mov r0, #0x7 + mov r1, #0x1 + bl PXI_IsCallbackReady + cmp r0, #0x0 + ldmneia sp!, {r4-r6, lr} + bxne lr + mov r6, #0x64 + mov r5, #0x7 + mov r4, #0x1 +_020CEDA4: + mov r0, r6 + bl OS_SpinWait + mov r0, r5 + mov r1, r4 + bl PXI_IsCallbackReady + cmp r0, #0x0 + beq _020CEDA4 + ldmia sp!, {r4-r6, lr} + bx lr +_020CEDC8: .word PxiFifoCallback + + arm_func_start PxiFifoCallback +PxiFifoCallback: ; 0x020CEDCC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r1 + bl OS_DisableInterrupts + mov r4, r0 + mov r0, r5 + bl SNDi_CallAlarmHandler + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start SND_CountWaitingCommand +SND_CountWaitingCommand: ; 0x020CEDFC + stmdb sp!, {r4,lr} + bl SND_CountFreeCommand + mov r4, r0 + bl SND_CountReservedCommand + rsb r1, r4, #0x100 + sub r0, r1, r0 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start SND_CountReservedCommand +SND_CountReservedCommand: ; 0x020CEE1C + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020CEE58 ; =0x021D3840 + mov r4, #0x0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _020CEE48 +_020CEE38: + ldr r1, [r1, #0x0] + add r4, r4, #0x1 + cmp r1, #0x0 + bne _020CEE38 +_020CEE48: + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CEE58: .word 0x021D3840 + + arm_func_start SND_CountFreeCommand +SND_CountFreeCommand: ; 0x020CEE5C + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020CEE98 ; =0x021D3838 + mov r4, #0x0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + beq _020CEE88 +_020CEE78: + ldr r1, [r1, #0x0] + add r4, r4, #0x1 + cmp r1, #0x0 + bne _020CEE78 +_020CEE88: + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CEE98: .word 0x021D3838 + + arm_func_start SND_IsFinishedCommandTag +SND_IsFinishedCommandTag: + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + ldr r1, _020CEEEC ; =0x021D383C + ldr r1, [r1, #0x0] + cmp r4, r1 + bls _020CEECC + sub r1, r4, r1 + cmp r1, #0x80000000 + movcc r4, #0x0 + movcs r4, #0x1 + b _020CEEDC +_020CEECC: + sub r1, r1, r4 + cmp r1, #0x80000000 + movcc r4, #0x1 + movcs r4, #0x0 +_020CEEDC: + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CEEEC: .word 0x021D383C + + arm_func_start SND_GetCurrentCommandTag +SND_GetCurrentCommandTag: ; 0x020CEEF0 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + ldr r1, _020CEF24 ; =0x021D3840 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + ldreq r1, _020CEF28 ; =0x021D383C + ldreq r4, [r1, #0x0] + ldrne r1, _020CEF2C ; =0x021D3858 + ldrne r4, [r1, #0x0] + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CEF24: .word 0x021D3840 +_020CEF28: .word 0x021D383C +_020CEF2C: .word 0x021D3858 + + arm_func_start SND_WaitForCommandProc +SND_WaitForCommandProc: ; 0x020CEF30 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl SND_IsFinishedCommandTag +_020CEF40: + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5, lr} + bxne lr + mov r4, #0x0 +_020CEF54: + mov r0, r4 + bl SND_RecvCommandReply + cmp r0, #0x0 + bne _020CEF54 + mov r0, r5 + bl SND_IsFinishedCommandTag + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5, lr} + bxne lr + bl RequestCommandProc + mov r0, r5 + bl SND_IsFinishedCommandTag + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5, lr} + bxne lr + mov r4, #0x1 +_020CEF9C: + mov r0, r4 + bl SND_RecvCommandReply + mov r0, r5 + bl SND_IsFinishedCommandTag + cmp r0, #0x0 + beq _020CEF9C + add sp, sp, #0x4 + ldmia sp!, {r4-r5, lr} + bx lr + + arm_func_start SND_FlushCommand +SND_FlushCommand: ; 0x020CEFC0 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020CF164 ; =0x021D3840 + mov r4, r0 + ldr r1, [r1, #0x0] + cmp r1, #0x0 + bne _020CEFF8 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r9,lr} + bx lr +_020CEFF8: + ldr r1, _020CF168 ; =0x021D3854 + ldr r1, [r1, #0x0] + cmp r1, #0x8 + blt _020CF03C + ands r1, r5, #0x1 + bne _020CF024 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r9,lr} + bx lr +_020CF024: + mov r0, #0x1 + bl SND_RecvCommandReply + ldr r0, _020CF168 ; =0x021D3854 + ldr r0, [r0, #0x0] + cmp r0, #0x8 + bge _020CF024 +_020CF03C: + ldr r0, _020CF16C ; =0x021D3B00 + mov r1, #0x1800 + bl DC_FlushRange + ldr r1, _020CF164 ; =0x021D3840 + mov r0, #0x7 + ldr r1, [r1, #0x0] + mov r2, #0x0 + bl PXI_SendWordByFifo +_020CF05C: + cmp r0, #0x0 + bge _020CF0E0 + ands r0, r5, #0x1 + bne _020CF084 + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r9, lr} + bx lr +_020CF084: + ldr r1, _020CF164 + mov r0, #0x7 + ldr r1, [r1] + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + bge _020CF0E0 + ldr r6, _020CF164 + mov r9, #0x64 + mov r8, #0x7 + mov r7, #0x0 +_020CF0B0: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, r9 + bl OS_SpinWait + bl OS_DisableInterrupts + mov r4, r0 + mov r0, r8 + ldr r1, [r6] + mov r2, r7 + bl PXI_SendWordByFifo + cmp r0, #0x0 + blt _020CF0B0 +_020CF0E0: + ands r0, r5, #0x2 + beq _020CF0EC + bl RequestCommandProc +_020CF0EC: + ldr r0, _020CF170 + ldr r1, _020CF164 + ldr r3, [r0] + ldr r5, [r1] + add r1, r3, #0x1 + ldr r2, _020CF174 + str r1, [r0] + str r5, [r2, r3, lsl #2] + cmp r1, #0x8 + movgt r1, #0x0 + ldr r2, _020CF168 + strgt r1, [r0] + ldr r1, _020CF178 + ldr r3, [r2] + ldr r0, [r1] + add ip, r3, #0x1 + add r6, r0, #0x1 + ldr r5, _020CF164 + mov lr, #0x0 + ldr r3, _020CF17C + mov r0, r4 + str lr, [r5] + str lr, [r3] + str ip, [r2] + str r6, [r1] + bl OS_RestoreInterrupts + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {r4-r9, lr} + bx lr +_020CF164: .word 0x021D3840 +_020CF168: .word 0x021D3854 +_020CF16C: .word 0x021D3B00 +_020CF170: .word 0x021D3850 +_020CF174: .word 0x021D385C +_020CF178: .word 0x021D3858 +_020CF17C: .word 0x021D3844 + + arm_func_start SND_PushCommand +SND_PushCommand: ; 0x020CF180 + stmdb sp!, {r4,lr} + mov r4, r0 + bl OS_DisableInterrupts + ldr r2, _020CF1C0 ; =0x021D3844 + ldr r1, [r2, #0x0] + cmp r1, #0x0 + ldreq r1, _020CF1C4 ; =0x021D3840 + streq r4, [r2, #0x0] + streq r4, [r1, #0x0] + strne r4, [r1, #0x0] + strne r4, [r2, #0x0] + mov r1, #0x0 + str r1, [r4, #0x0] + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CF1C0: .word 0x021D3844 +_020CF1C4: .word 0x021D3840 + + arm_func_start SND_AllocCommand +SND_AllocCommand: + stmdb sp!, {r4,lr} + mov r4, r0 + bl IsCommandAvailable +_020CF1D4: + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + bl AllocCommand + cmp r0, #0x0 + ldmneia sp!, {r4,lr} + bxne lr + ands r0, r4, #0x1 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + bl SND_CountWaitingCommand + cmp r0, #0x0 + ble _020CF238 + mov r4, #0x0 +_020CF214: + mov r0, r4 + bl SND_RecvCommandReply + cmp r0, #0x0 + bne _020CF214 + bl AllocCommand + cmp r0, #0x0 + beq _020CF240 + ldmia sp!, {r4,lr} + bx lr +_020CF238: + mov r0, #0x1 + bl SND_FlushCommand +_020CF240: + bl RequestCommandProc + mov r4, #0x1 +_020CF248: + mov r0, r4 + bl SND_RecvCommandReply + bl AllocCommand + cmp r0, #0x0 + beq _020CF248 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start SND_RecvCommandReply +SND_RecvCommandReply: ; 0x020CF264 + stmdb sp!, {r4-r6,lr} + mov r4, r0 + bl OS_DisableInterrupts + mov r5, r0 + ands r0, r4, #0x1 + beq _020CF2C0 + bl SNDi_GetFinishedCommandTag + ldr r4, _020CF380 ; =0x021D383C + ldr r1, [r4, #0x0] + cmp r1, r0 + bne _020CF2E8 + mov r6, #0x64 +_020CF294: + mov r0, r5 + bl OS_RestoreInterrupts + mov r0, r6 + bl OS_SpinWait + bl OS_DisableInterrupts + mov r5, r0 + bl SNDi_GetFinishedCommandTag + ldr r1, [r4, #0x0] + cmp r1, r0 + beq _020CF294 + b _020CF2E8 +_020CF2C0: + bl SNDi_GetFinishedCommandTag + ldr r1, _020CF380 ; =0x021D383C + ldr r1, [r1, #0x0] + cmp r1, r0 + bne _020CF2E8 + mov r0, r5 + bl OS_RestoreInterrupts +_020CF2DC: + mov r0, #0x0 + ldmia sp!, {r4-r6, lr} + bx lr +_020CF2E8: + ldr r0, _020CF384 ; =0x021D384C + ldr r2, _020CF388 ; =0x021D385C + ldr r3, [r0, #0x0] + add r1, r3, #0x1 + ldr r4, [r2, r3, lsl #0x2] + str r1, [r0, #0x0] + cmp r1, #0x8 + movgt r1, #0x0 + strgt r1, [r0, #0x0] + ldr r0, [r4, #0x0] + mov r1, r4 + cmp r0, #0x0 + beq _020CF32C +_020CF31C: + ldr r1, [r1, #0x0] + ldr r0, [r1, #0x0] + cmp r0, #0x0 + bne _020CF31C +_020CF32C: + ldr r0, _020CF38C ; =0x021D3848 + ldr r3, _020CF390 ; =0x021D3854 + ldr r0, [r0, #0x0] + ldr r2, _020CF380 ; =0x021D383C + cmp r0, #0x0 + strne r4, [r0, #0x0] + ldreq r0, _020CF394 ; =0x021D3838 + ldr lr, [r3, #0x0] + streq r4, [r0, #0x0] + ldr ip, _020CF38C ; =0x021D3848 + sub r6, lr, #0x1 + ldr r0, [r2, #0x0] + str r1, [r12, #0x0] + add lr, r0, #0x1 + mov r0, r5 + str r6, [r3, #0x0] + str lr, [r2, #0x0] + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020CF380: .word 0x021D383C +_020CF384: .word 0x021D384C +_020CF388: .word 0x021D385C +_020CF38C: .word 0x021D3848 +_020CF390: .word 0x021D3854 +_020CF394: .word 0x021D3838 + + arm_func_start SND_CommandInit +SND_CommandInit: ; 0x020CF398 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + bl InitPXI + ldr r3, _020CF478 ; =0x021D3B00 + ldr r0, _020CF47C ; =0x021D3838 + mov r4, #0x0 + str r3, [r0, #0x0] + mov r1, r3 + mov r0, #0x18 +_020CF3BC: + add r4, r4, #0x1 + mla r2, r4, r0, r1 + cmp r4, #0xff + str r2, [r3], #0x18 + blt _020CF3BC + ldr r7, _020CF480 ; =0x021D4B00 + mov r10, #0x0 + ldr r5, _020CF484 ; =0x021D3840 + ldr r4, _020CF488 ; =0x021D3844 + ldr lr, _020CF48C ; =0x021D3854 + ldr ip, _020CF490 ; =0x021D384C + ldr r3, _020CF494 ; =0x021D3850 + ldr r1, _020CF498 ; =0x021D383C + ldr sb, _020CF49C ; =0x021D52E8 + ldr r6, _020CF4A0 ; =0x021D3848 + ldr r2, _020CF4A4 ; =0x021D3858 + mov r8, #0x1 + ldr r0, _020CF4A8 ; =0x021D3880 + ldr fp, _020CF4AC ; =0x021D5360 + str r9, [r6, #0x0] + str r10, [r7, #0x7e8] + str r10, [r5, #0x0] + str r10, [r4, #0x0] + str r10, [lr, #0x0] + str r10, [r12, #0x0] + str r10, [r3, #0x0] + str r8, [r2, #0x0] + str r10, [r1, #0x0] + str r0, [r11, #0x0] + bl SNDi_InitSharedWork + mov r0, r8 + bl SND_AllocCommand +_020CF43C: + cmp r0, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r11, lr} + bxeq lr + mov r2, #0x1D + mov r1, fp + str r2, [r0, #0x4] + ldr r1, [r1] + str r1, [r0, #0x8] + bl SND_PushCommand + mov r0, r8 + bl SND_FlushCommand + add sp, sp, #0x4 + ldmia sp!, {r4-r11, lr} + bx lr +_020CF478: .word 0x021D3B00 +_020CF47C: .word 0x021D3838 +_020CF480: .word 0x021D4B00 +_020CF484: .word 0x021D3840 +_020CF488: .word 0x021D3844 +_020CF48C: .word 0x021D3854 +_020CF490: .word 0x021D384C +_020CF494: .word 0x021D3850 +_020CF498: .word 0x021D383C +_020CF49C: .word 0x021D52E8 +_020CF4A0: .word 0x021D3848 +_020CF4A4: .word 0x021D3858 +_020CF4A8: .word 0x021D3880 +_020CF4AC: .word 0x021D5360 + + arm_func_start SNDi_CallAlarmHandler +SNDi_CallAlarmHandler: ; 0x020CF4B0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, _020CF50C ; =0x021D5300 + and r2, r0, #0xff + mov r1, #0xc + mla r3, r2, r1, r3 + mov r1, r0, asr #0x8 + ldrb r0, [r3, #0x8] + and r1, r1, #0xff + cmp r1, r0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + ldr r1, [r3, #0x0] + cmp r1, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {lr} + bxeq lr + ldr r0, [r3, #0x4] + blx r1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CF50C: .word 0x021D5300 + + arm_func_start SNDi_SetAlarmHandler +SNDi_SetAlarmHandler: + mov r3, #0xc + mul r3, r0, r3 + ldr r0, _020CF53C ; =0x021D5300 + str r1, [r0, r3] + add r1, r0, r3 + str r2, [r1, #0x4] + ldrb r0, [r1, #0x8] + add r0, r0, #0x1 + strb r0, [r1, #0x8] + ldrb r0, [r1, #0x8] + bx lr + .balign 4 +_020CF53C: .word 0x021D5300 + + arm_func_start SNDi_IncAlarmId +SNDi_IncAlarmId: ; 0x020CF540 + ldr r2, _020CF55C ; =0x021D5300 + mov r1, #0xc + mla r1, r0, r1, r2 + ldrb r0, [r1, #0x8] + add r0, r0, #0x1 + strb r0, [r1, #0x8] + bx lr + .balign 4 +_020CF55C: .word 0x021D5300 + + arm_func_start SND_AlarmInit +SND_AlarmInit: ; 0x020CF560 + ldr r1, _020CF58C ; =0x021D5300 + mov r2, #0x0 + mov r0, r2 +_020CF56C: + str r0, [r1, #0x0] + str r0, [r1, #0x4] + add r2, r2, #0x1 + strb r0, [r1, #0x8] + cmp r2, #0x8 + add r1, r1, #0xc + blt _020CF56C + bx lr + .balign 4 +_020CF58C: .word 0x021D5300 + + arm_func_start SNDi_InitSharedWork +SNDi_InitSharedWork: ; 0x020CF590 + stmdb sp!, {r4,lr} + mov r4, #0x0 + str r4, [r0, #0x4] + strh r4, [r0, #0x8] + strh r4, [r0, #0xa] + mov r12, r0 + str r4, [r0, #0x0] + mov r3, r4 + mvn r2, #0x0 +_020CF5B4: + mov lr, r3 + str r3, [r12, #0x40] +_020CF5BC: + add r1, r12, lr, lsl #0x1 + add lr, lr, #0x1 + strh r2, [r1, #0x20] + cmp lr, #0x10 + blt _020CF5BC + add r4, r4, #0x1 + cmp r4, #0x10 + add r12, r12, #0x24 + blt _020CF5B4 + mov r3, #0x0 + mvn r2, #0x0 +_020CF5E8: + add r1, r0, r3, lsl #0x1 + add r1, r1, #0x200 + add r3, r3, #0x1 + strh r2, [r1, #0x60] + cmp r3, #0x10 + blt _020CF5E8 + mov r1, #0x280 + bl DC_FlushRange + ldmia sp!, {r4,lr} + bx lr + + arm_func_start SNDi_GetFinishedCommandTag +SNDi_GetFinishedCommandTag: ; 0x020CF610 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020CF640 ; =0x021D5360 + mov r1, #0x4 + ldr r0, [r0, #0x0] + bl DC_InvalidateRange + ldr r0, _020CF640 ; =0x021D5360 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x0] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CF640: .word 0x021D5360 + + arm_func_start SND_GetPlayerTickCounter +SND_GetPlayerTickCounter: ; 0x020CF644 + stmdb sp!, {r4,lr} + mov r1, #0x24 + mul r4, r0, r1 + ldr r0, _020CF680 ; =0x021D5360 + mov r1, #0x4 + ldr r0, [r0, #0x0] + add r0, r0, #0x40 + add r0, r0, r4 + bl DC_InvalidateRange + ldr r0, _020CF680 ; =0x021D5360 + ldr r0, [r0, #0x0] + add r0, r0, r4 + ldr r0, [r0, #0x40] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020CF680: .word 0x021D5360 + + arm_func_start SND_GetChannelStatus +SND_GetChannelStatus: ; 0x020CF684 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020CF6B8 ; =0x021D5360 + mov r1, #0x2 + ldr r0, [r0, #0x0] + add r0, r0, #0x8 + bl DC_InvalidateRange + ldr r0, _020CF6B8 ; =0x021D5360 + ldr r0, [r0, #0x0] + ldrh r0, [r0, #0x8] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CF6B8: .word 0x021D5360 + + arm_func_start SND_GetPlayerStatus +SND_GetPlayerStatus: ; 0x020CF6BC + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020CF6F0 ; =0x021D5360 + mov r1, #0x4 + ldr r0, [r0, #0x0] + add r0, r0, #0x4 + bl DC_InvalidateRange + ldr r0, _020CF6F0 ; =0x021D5360 + ldr r0, [r0, #0x0] + ldr r0, [r0, #0x4] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020CF6F0: .word 0x021D5360 + + arm_func_start SND_CalcChannelVolume +SND_CalcChannelVolume: ; 0x020CF6F4 + ldr r1, _020CF75C ; =0xFFFFFD2D + cmp r0, r1 + movlt r0, r1 + blt _020CF70C + cmp r0, #0x0 + movgt r0, #0x0 +_020CF70C: + ldr r1, _020CF760 ; =0x000002D3 + ldr r2, _020CF764 ; =0x02103CAC + add r3, r0, r1 + mvn r1, #0xef + cmp r0, r1 + ldrb r2, [r2, r3] + movlt r0, #0x3 + blt _020CF74C + mvn r1, #0x77 + cmp r0, r1 + movlt r0, #0x2 + blt _020CF74C + mvn r1, #0x3b + cmp r0, r1 + movlt r0, #0x1 + movge r0, #0x0 +_020CF74C: + orr r0, r2, r0, lsl #0x8 + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bx lr + .balign 4 +_020CF75C: .word 0xFFFFFD2D +_020CF760: .word 0x000002D3 +_020CF764: .word 0x02103CAC + + arm_func_start SND_GetWaveDataAddress +SND_GetWaveDataAddress: ; 0x020CF768 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + bl SNDi_LockMutex + add r0, r5, r4, lsl #0x2 + ldr r4, [r0, #0x3c] + cmp r4, #0x0 + beq _020CF798 + cmp r4, #0x2000000 + addcc r4, r5, r4 + b _020CF79C +_020CF798: + mov r4, #0x0 +_020CF79C: + bl SNDi_UnlockMutex + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start SND_SetWaveDataAddress +SND_SetWaveDataAddress: ; 0x020CF7B0 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl SNDi_LockMutex + add r0, r6, #0x3c + add r2, r6, r5, lsl #0x2 + add r0, r0, r5, lsl #0x2 + mov r1, #0x4 + str r4, [r2, #0x3c] + bl DC_StoreRange + bl SNDi_UnlockMutex + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start SND_GetWaveDataCount +SND_GetWaveDataCount: ; 0x020CF7E8 + ldr r0, [r0, #0x38] + bx lr + + arm_func_start SND_GetNextInstData +SND_GetNextInstData: ; 0x020CF7F0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r4, [r2, #0x0] + ldr r3, [r0, #0x38] + cmp r4, r3 + bhs _020CF9B8 + mov r12, #0x0 +_020CF80C: + add r3, r0, r4, lsl #0x2 + ldr r4, [r3, #0x3c] + strb r4, [r1, #0x0] + ldrb r3, [r1, #0x0] + cmp r3, #0x10 + bgt _020CF850 + cmp r3, #0x10 + bge _020CF8A8 + cmp r3, #0x5 + addls pc, pc, r3, lsl #0x2 + b _020CF998 +_020CF838: + b _020CF998 + b _020CF85C + b _020CF85C + b _020CF85C + b _020CF85C + b _020CF85C +_020CF850: + cmp r3, #0x11 + beq _020CF924 + b _020CF998 +_020CF85C: + mov r3, r4, lsr #0x8 + add r5, r0, r4, lsr #0x8 + ldrh r4, [r0, r3] + ldrh r3, [r5, #0x2] + add sp, sp, #0x4 + mov r0, #0x1 + strh r4, [r1, #0x2] + strh r3, [r1, #0x4] + ldrh r4, [r5, #0x4] + ldrh r3, [r5, #0x6] + strh r4, [r1, #0x6] + strh r3, [r1, #0x8] + ldrh r3, [r5, #0x8] + strh r3, [r1, #0xA] + ldr r1, [r2] + add r1, r1, #0x1 + str r1, [r2] + ldmia sp!, {r4-r5,lr} + bx lr +_020CF8A8: + add r5, r0, r4, lsr #0x8 + b _020CF904 +_020CF8B0: + mov r0, #0xc + mla r12, lr, r0, r5 + ldrh r4, [r12, #0x2] + ldrh r3, [r12, #0x4] + add sp, sp, #0x4 + mov r0, #0x1 + strh r4, [r1, #0x0] + strh r3, [r1, #0x2] + ldrh r4, [r12, #0x6] + ldrh r3, [r12, #0x8] + strh r4, [r1, #0x4] + strh r3, [r1, #0x6] + ldrh r4, [r12, #0xa] + ldrh r3, [r12, #0xc] + strh r4, [r1, #0x8] + strh r3, [r1, #0xa] + ldr r1, [r2, #0x4] + add r1, r1, #0x1 + str r1, [r2, #0x4] + ldmia sp!, {r4-r5,lr} + bx lr +_020CF904: + ldrb r4, [r5, #0x1] + ldrb r3, [r5, #0x0] + ldr lr, [r2, #0x4] + sub r3, r4, r3 + add r3, r3, #0x1 + cmp lr, r3 + blo _020CF8B0 + b _020CF998 +_020CF924: + add r4, r0, r4, lsr #0x8 + b _020CF98C +_020CF92C: + ldrb lr, [r4, r3] + cmp lr, #0x0 + beq _020CF998 + mov r0, #0xc + mla lr, r3, r0, r4 + ldrh r12, [lr, #0x8] + ldrh r3, [lr, #0xa] + add sp, sp, #0x4 + mov r0, #0x1 + strh r12, [r1, #0x0] + strh r3, [r1, #0x2] + ldrh r12, [lr, #0xc] + ldrh r3, [lr, #0xe] + strh r12, [r1, #0x4] + strh r3, [r1, #0x6] + ldrh r12, [lr, #0x10] + ldrh r3, [lr, #0x12] + strh r12, [r1, #0x8] + strh r3, [r1, #0xa] + ldr r1, [r2, #0x4] + add r1, r1, #0x1 + str r1, [r2, #0x4] + ldmia sp!, {r4-r5,lr} + bx lr +_020CF98C: + ldr r3, [r2, #0x4] + cmp r3, #0x8 + blo _020CF92C +_020CF998: + ldr r3, [r2, #0x0] + add r3, r3, #0x1 + str r3, [r2, #0x0] + str r12, [r2, #0x4] + ldr r4, [r2, #0x0] + ldr r3, [r0, #0x38] + cmp r4, r3 + blo _020CF80C +_020CF9B8: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start SND_GetFirstInstDataPos +SND_GetFirstInstDataPos: ; 0x020CF9C8 + sub sp, sp, #0x8 + mov r1, #0x0 + str r1, [sp, #0x0] + str r1, [sp, #0x4] + str r1, [r0, #0x0] + str r1, [r0, #0x4] + add sp, sp, #0x8 + bx lr + + arm_func_start SND_DestroyWaveArc +SND_DestroyWaveArc: ; 0x020CF9E8 + stmdb sp!, {r4-r6,lr} + mov r4, r0 + bl SNDi_LockMutex + ldr r0, [r4, #0x18] + cmp r0, #0x0 + beq _020CFA28 + mov r5, #0x0 + mov r4, #0x8 +_020CFA08: + ldr r6, [r0, #0x4] + mov r1, r4 + str r5, [r0, #0x0] + str r5, [r0, #0x4] + bl DC_StoreRange + mov r0, r6 + cmp r6, #0x0 + bne _020CFA08 +_020CFA28: + bl SNDi_UnlockMutex + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start SND_DestroyBank +SND_DestroyBank: ; 0x020CFA34 + stmdb sp!, {r4-r8,lr} + mov r7, r0 + bl SNDi_LockMutex + add r5, r7, #0x18 + mov r6, #0x0 + mov r8, #0x8 + mov r4, #0x3c +_020CFA50: + add r1, r7, r6, lsl #0x3 + ldr r0, [r1, #0x18] + cmp r0, #0x0 + beq _020CFAB8 + ldr r3, [r0, #0x18] + cmp r5, r3 + bne _020CFA80 + ldr r2, [r1, #0x1c] + mov r1, r4 + str r2, [r0, #0x18] + bl DC_StoreRange + b _020CFAB8 +_020CFA80: + cmp r3, #0x0 + beq _020CFAA0 +_020CFA88: + ldr r0, [r3, #0x4] + cmp r5, r0 + beq _020CFAA0 + mov r3, r0 + cmp r0, #0x0 + bne _020CFA88 +_020CFAA0: + add r0, r7, r6, lsl #0x3 + ldr r2, [r0, #0x1c] + mov r0, r3 + mov r1, r8 + str r2, [r3, #0x4] + bl DC_StoreRange +_020CFAB8: + add r6, r6, #0x1 + cmp r6, #0x4 + add r5, r5, #0x8 + blt _020CFA50 + bl SNDi_UnlockMutex + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start SND_AssignWaveArc +SND_AssignWaveArc: ; 0x020CFAD4 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl SNDi_LockMutex + add r3, r6, r5, lsl #0x3 + ldr r2, [r3, #0x18] + mov r12, r5, lsl #0x3 + cmp r2, #0x0 + beq _020CFB70 + cmp r4, r2 + bne _020CFB10 + bl SNDi_UnlockMutex + ldmia sp!, {r4-r6,lr} + bx lr +_020CFB10: + add r1, r6, #0x18 + ldr r0, [r2, #0x18] + add r12, r1, r12 + cmp r12, r0 + bne _020CFB3C + ldr r0, [r3, #0x1c] + mov r1, #0x3c + str r0, [r2, #0x18] + ldr r0, [r3, #0x18] + bl DC_StoreRange + b _020CFB70 +_020CFB3C: + cmp r0, #0x0 + beq _020CFB5C +_020CFB44: + ldr r1, [r0, #0x4] + cmp r12, r1 + beq _020CFB5C + mov r0, r1 + cmp r1, #0x0 + bne _020CFB44 +_020CFB5C: + add r1, r6, r5, lsl #0x3 + ldr r2, [r1, #0x1c] + mov r1, #0x8 + str r2, [r0, #0x4] + bl DC_StoreRange +_020CFB70: + add r0, r6, #0x18 + ldr r1, [r4, #0x18] + add r0, r0, r5, lsl #0x3 + str r0, [r4, #0x18] + add r0, r6, r5, lsl #0x3 + str r1, [r0, #0x1c] + str r4, [r0, #0x18] + bl SNDi_UnlockMutex + mov r0, r6 + mov r1, #0x3c + bl DC_StoreRange + mov r0, r4 + mov r1, #0x3c + bl DC_StoreRange + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start PXI_Init +PXI_Init: ; 0x020CFBB0 + ldr ip, _020CFBB8 ; =PXI_InitFifo + bx r12 + .balign 4 +_020CFBB8: .word PXI_InitFifo + + arm_func_start PXIi_HandlerRecvFifoNotEmpty +PXIi_HandlerRecvFifoNotEmpty: ; 0x020CFBBC + stmdb sp!, {r4-r10,lr} + sub sp, sp, #0x8 + ldr sl, _020CFCD4 ; =0x04000184 + ldr r5, _020CFCD8 ; =0x021D5368 + ldr r4, _020CFCDC ; =0x04000188 + mov r7, #0x4100000 + mov r6, #0x0 + mvn r8, #0x3 + mvn r9, #0x2 +_020CFBE0: + ldrh r0, [r10, #0x0] + ands r0, r0, #0x4000 + ldrneh r0, [r10, #0x0] + movne r1, r9 + orrne r0, r0, #0xc000 + strneh r0, [r10, #0x0] + bne _020CFC28 + bl OS_DisableInterrupts + ldrh r1, [r10, #0x0] + ands r1, r1, #0x100 + beq _020CFC18 + bl OS_RestoreInterrupts + mov r1, r8 + b _020CFC28 +_020CFC18: + ldr r1, [r7, #0x0] + str r1, [sp, #0x0] + bl OS_RestoreInterrupts + mov r1, r6 +_020CFC28: + cmp r1, r8 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4-r10,lr} + bxeq lr + mvn r0, #0x2 + cmp r1, r0 + beq _020CFBE0 + ldr r1, [sp, #0x0] + mov r0, r1, lsl #0x1b + movs r0, r0, lsr #0x1b + beq _020CFBE0 + ldr r3, [r5, r0, lsl #0x2] + cmp r3, #0x0 + beq _020CFC74 + mov r2, r1, lsl #0x1a + mov r1, r1, lsr #0x6 + mov r2, r2, lsr #0x1f + blx r3 + b _020CFBE0 +_020CFC74: + mov r0, r1, lsl #0x1a + movs r0, r0, lsr #0x1f + bne _020CFBE0 + orr r0, r1, #0x20 + str r0, [sp, #0x0] + ldrh r0, [r10, #0x0] + ands r0, r0, #0x4000 + ldrneh r0, [r10, #0x0] + orrne r0, r0, #0xc000 + strneh r0, [r10, #0x0] + bne _020CFBE0 + bl OS_DisableInterrupts + ldrh r1, [r10, #0x0] + ands r1, r1, #0x2 + beq _020CFCB8 + bl OS_RestoreInterrupts + b _020CFBE0 +_020CFCB8: + ldr r1, [sp, #0x0] + str r1, [r4, #0x0] + bl OS_RestoreInterrupts + b _020CFBE0 +_020CFCC8: + add sp, sp, #0x8 + ldmia sp!, {r4-r10, lr} + bx lr +_020CFCD4: .word 0x04000184 +_020CFCD8: .word 0x021D5368 +_020CFCDC: .word 0x04000188 + + arm_func_start PXI_SendWordByFifo +PXI_SendWordByFifo: + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r3, [sp, #0x0] + and r0, r0, #0x1f + bic r3, r3, #0x1f + orr r12, r3, r0 + bic r3, r12, #0x20 + and r0, r2, #0x1 + orr r3, r3, r0, lsl #0x5 + str r12, [sp, #0x0] + and r2, r3, #0x3f + bic r0, r1, #0xfc000000 + orr r0, r2, r0, lsl #0x6 + str r3, [sp, #0x0] + ldr r2, _020CFD8C ; =0x04000184 + str r0, [sp, #0x0] + ldrh r0, [r2, #0x0] + ands r0, r0, #0x4000 + ldrneh r1, [r2, #0x0] + addne sp, sp, #0x4 + mvnne r0, #0x0 + orrne r1, r1, #0xc000 + strneh r1, [r2, #0x0] + ldmneia sp!, {lr} + bxne lr + bl OS_DisableInterrupts + ldr r1, _020CFD8C ; =0x04000184 + ldrh r1, [r1, #0x0] + ands r1, r1, #0x2 + beq _020CFD6C + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mvn r0, #0x1 + ldmia sp!, {lr} + bx lr +_020CFD6C: + ldr r2, [sp, #0x0] + ldr r1, _020CFD90 ; =0x04000188 + str r2, [r1, #0x0] + bl OS_RestoreInterrupts +_020CFD7C: + mov r0, #0x0 + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr +_020CFD8C: .word 0x04000184 +_020CFD90: .word 0x04000188 + + arm_func_start PXI_IsCallbackReady +PXI_IsCallbackReady: + ldr r2, _020CFDB8 ; =0x027FFC00 + mov r3, #0x1 + add r1, r2, r1, lsl #0x2 + mov r2, r3, lsl r0 + ldr r0, [r1, #0x388] + ands r0, r2, r0 + moveq r3, #0x0 + mov r0, r3 + bx lr + .balign 4 +_020CFDB8: .word 0x027FFC00 + + arm_func_start PXI_SetFifoRecvCallback +PXI_SetFifoRecvCallback: ; 0x020CFDBC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r0 + mov r5, r1 + bl OS_DisableInterrupts + ldr r1, _020CFE20 ; =0x021D5368 + cmp r5, #0x0 + str r5, [r1, r4, lsl #0x2] + beq _020CFDF8 + ldr r3, _020CFE24 ; =0x027FFC00 + mov r1, #0x1 + ldr r2, [r3, #0x388] + orr r1, r2, r1, lsl r4 + str r1, [r3, #0x388] + b _020CFE10 +_020CFDF8: + ldr r3, _020CFE24 ; =0x027FFC00 + mov r1, #0x1 + mvn r1, r1, lsl r4 + ldr r2, [r3, #0x388] + and r1, r2, r1 + str r1, [r3, #0x388] +_020CFE10: + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CFE20: .word 0x021D5368 +_020CFE24: .word 0x027FFC00 + + arm_func_start PXI_InitFifo +PXI_InitFifo: ; 0x020CFE28 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + bl OS_DisableInterrupts + ldr r1, _020CFF18 ; =0x021D5364 + mov r4, r0 + ldrh r0, [r1, #0x0] + cmp r0, #0x0 + bne _020CFF04 + mov r2, #0x1 + ldr r0, _020CFF1C ; =0x027FFC00 + strh r2, [r1, #0x0] + mov r2, #0x0 + str r2, [r0, #0x388] + ldr r0, _020CFF20 ; =0x021D5368 + mov r1, r2 +_020CFE64: + str r1, [r0, r2, lsl #0x2] + add r2, r2, #0x1 + cmp r2, #0x20 + blt _020CFE64 + ldr r2, _020CFF24 ; =0x0000C408 + ldr r1, _020CFF28 ; =0x04000184 + mov r0, #0x40000 + strh r2, [r1, #0x0] + bl OS_ResetRequestIrqMask + ldr r1, _020CFF2C ; =PXIi_HandlerRecvFifoNotEmpty + mov r0, #0x40000 + bl OS_SetIrqFunction + mov r0, #0x40000 + bl OS_EnableIrqMask + mov r12, #0x0 + ldr r3, _020CFF30 ; =0x04000180 + mov r1, r12 + mov r2, #0x3e8 +_020CFEAC: + ldrh r0, [r3, #0x0] + ands lr, r0, #0xf + mov r0, lr, lsl #0x8 + strh r0, [r3, #0x0] + bne _020CFEC8 + cmp r12, #0x4 + bgt _020CFF04 +_020CFEC8: + ldrh r0, [r3, #0x0] + mov r5, r2 + and r0, r0, #0xf + cmp r0, lr + bne _020CFEFC +_020CFEDC: + cmp r5, #0x0 + movle r12, r1 + ble _020CFEFC + ldrh r0, [r3, #0x0] + sub r5, r5, #0x1 + and r0, r0, #0xf + cmp r0, lr + beq _020CFEDC +_020CFEFC: + add r12, r12, #0x1 + b _020CFEAC +_020CFF04: + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020CFF18: .word 0x021D5364 +_020CFF1C: .word 0x027FFC00 +_020CFF20: .word 0x021D5368 +_020CFF24: .word 0x0000C408 +_020CFF28: .word 0x04000184 +_020CFF2C: .word PXIi_HandlerRecvFifoNotEmpty +_020CFF30: .word 0x04000180 + + arm_func_start FSi_TranslateCommand +FSi_TranslateCommand: + stmdb sp!, {r4-r8,lr} + mov r8, r0 + ldr r0, [r8, #0xc] + mov r7, r1 + mov r1, #0x1 + ldr r5, [r8, #0x8] + mov r4, r1, lsl r7 + ands r0, r0, #0x4 + moveq r1, #0x0 + cmp r1, #0x0 + ldrne r0, [r5, #0x1c] + orrne r0, r0, #0x200 + strne r0, [r5, #0x1c] + ldreq r0, [r5, #0x1c] + orreq r0, r0, #0x100 + streq r0, [r5, #0x1c] + ldr r0, [r5, #0x58] + ands r0, r0, r4 + beq _020CFFE4 + ldr r2, [r5, #0x54] + mov r0, r8 + mov r1, r7 + blx r2 + mov r6, r0 + cmp r6, #0x8 + addls pc, pc, r6, lsl #0x2 + b _020CFFE8 +_020CFFA0: + b _020CFFC4 + b _020CFFC4 + b _020CFFE8 + b _020CFFE8 + b _020CFFC4 + b _020CFFE8 + b _020CFFE8 + b _020CFFE8 + b _020CFFCC +_020CFFC4: + str r6, [r8, #0x14] + b _020CFFE8 +_020CFFCC: + ldr r1, [r5, #0x58] + mvn r0, r4 + and r0, r1, r0 + str r0, [r5, #0x58] + mov r6, #0x7 + b _020CFFE8 +_020CFFE4: + mov r6, #0x7 +_020CFFE8: + cmp r6, #0x7 + bne _020D0004 + ldr r1, _020D00AC ; =0x02103F80 + mov r0, r8 + ldr r1, [r1, r7, lsl #0x2] + blx r1 + mov r6, r0 +_020D0004: + cmp r6, #0x6 + bne _020D0060 + ldr r0, [r8, #0xc] + ands r0, r0, #0x4 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + beq _020D00A0 + bl OS_DisableInterrupts + ldr r1, [r5, #0x1c] + mov r4, r0 + ands r0, r1, #0x200 + beq _020D0050 + add r6, r5, #0xc +_020D003C: + mov r0, r6 + bl OS_SleepThread + ldr r0, [r5, #0x1c] + ands r0, r0, #0x200 + bne _020D003C +_020D0050: + mov r0, r4 + ldr r6, [r8, #0x14] + bl OS_RestoreInterrupts + b _020D00A0 +_020D0060: + ldr r0, [r8, #0xc] + ands r0, r0, #0x4 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + ldrne r0, [r5, #0x1c] + bicne r0, r0, #0x200 + strne r0, [r5, #0x1c] + strne r6, [r8, #0x14] + bne _020D00A0 + ldr r1, [r5, #0x1c] + mov r0, r8 + bic r2, r1, #0x100 + mov r1, r6 + str r2, [r5, #0x1c] + bl FSi_ReleaseCommand +_020D00A0: + mov r0, r6 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020D00AC: .word 0x02103F80 + + arm_func_start FSi_ReleaseCommand +FSi_ReleaseCommand: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + bl OS_DisableInterrupts + ldr r1, [r6, #0x0] + mov r4, r0 + ldr r0, [r6, #0x4] + cmp r1, #0x0 + strne r0, [r1, #0x4] + cmp r0, #0x0 + strne r1, [r0, #0x0] + mov r0, #0x0 + str r0, [r6, #0x0] + ldr r1, [r6, #0x0] + add r0, r6, #0x18 + str r1, [r6, #0x4] + ldr r1, [r6, #0xc] + bic r1, r1, #0x4f + str r1, [r6, #0xc] + str r5, [r6, #0x14] + bl OS_WakeupThread + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FSi_CloseFileCommand +FSi_CloseFileCommand: ; 0x020D0114 + mov r0, #0x0 + bx lr + + arm_func_start FSi_OpenFileDirectCommand +FSi_OpenFileDirectCommand: ; 0x020D011C + ldr r1, [r0, #0x30] + str r1, [r0, #0x24] + ldr r1, [r0, #0x30] + str r1, [r0, #0x2c] + ldr r1, [r0, #0x34] + str r1, [r0, #0x28] + ldr r1, [r0, #0x38] + str r1, [r0, #0x20] + mov r0, #0x0 + bx lr + + arm_func_start FSi_OpenFileFastCommand +FSi_OpenFileFastCommand: ; 0x020D0144 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x14 + mov r5, r0 + ldr r1, [r5, #0x8] + ldr r4, [r5, #0x34] + ldr r0, [r1, #0x30] + mov r2, r4, lsl #0x3 + cmp r2, r0 + addcs sp, sp, #0x14 + movcs r0, #0x1 + ldmcsia sp!, {r4-r5,lr} + bxcs lr + str r1, [sp, #0x8] + ldr r1, [r1, #0x2c] + add r0, sp, #0x8 + add r3, r1, r2 + add r1, sp, #0x0 + mov r2, #0x8 + str r3, [sp, #0xc] + bl FSi_ReadTable +_020D0194: + cmp r0, #0 + addne sp, sp, #0x14 + ldmneia sp!, {r4-r5,lr} + bxne lr + ldr r1, [sp] + mov r0, r5 + str r1, [r5, #0x30] + ldr r2, [sp, #0x4] + mov r1, #7 + str r2, [r5, #0x34] + str r4, [r5, #0x38] + bl FSi_TranslateCommand + add sp, sp, #0x14 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FSi_GetPathCommand +FSi_GetPathCommand: ; 0x020D01D0 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0xe4 + mov r4, r0 + ldr r1, [r4, #0x8] + add r0, sp, #0x98 + add r11, r4, #0x30 + str r1, [sp, #0x0] + bl FS_InitFile + ldr r0, [r4, #0x8] + str r0, [sp, #0xa0] + ldr r0, [r4, #0xc] + ands r0, r0, #0x20 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + ldrneh r5, [r4, #0x24] + movne r4, #0x10000 + bne _020D02BC + ldrh r0, [r11, #0x8] + ldr r4, [r4, #0x20] + cmp r0, #0x0 + ldrneh r5, [r11, #0xa] + bne _020D02BC + mov r10, #0x0 + mov r9, r10 + mov r5, #0x10000 + add r8, sp, #0x98 + mov r6, #0x3 + mov r7, #0x1 +_020D0244: + mov r0, r8 + mov r1, r10 + bl FSi_SeekDirDirect + add r2, sp, #0x4 + cmp r10, #0x0 + mov r0, r8 + mov r1, r6 + ldreq r9, [sp, #0xc4] + str r2, [sp, #0xc8] + str r7, [sp, #0xcc] + bl FSi_TranslateCommand +_020D0270: + cmp r0, #0x0 + bne _020D02A8 +_020D0278: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + bne _020D0294 + ldr r0, [sp, #0x8] + cmp r0, r4 + ldreqh r5, [sp, #0xbc] + beq _020D02A8 +_020D0294: + mov r0, r8 + mov r1, r6 + bl FSi_TranslateCommand + cmp r0, #0x0 + beq _020D0278 +_020D02A8: + cmp r5, #0x10000 + bne _020D02BC + add sl, sl, #0x1 + cmp sl, r9 + bcc _020D0244 +_020D02BC: + cmp r5, #0x10000 + moveq r0, #0x0 + streqh r0, [r11, #0x8] + addeq sp, sp, #0xe4 + moveq r0, #0x1 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldrh r0, [r11, #0x8] + cmp r0, #0x0 + bne _020D03B8 + ldr r0, [sp, #0x0] + mov r1, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0xff + addls r9, r1, #0x1 + bls _020D0308 + cmp r0, #0xff00 + addls r9, r1, #0x2 + addhi r9, r1, #0x3 +_020D0308: + cmp r4, #0x10000 + ldrne r0, [sp, #0x14] + add r9, r9, #0x2 + addne r9, r9, r0 + mov r10, r5 + cmp r5, #0x0 + beq _020D03AC + add r0, sp, #0x98 + mov r1, r5 + bl FSi_SeekDirDirect + add r8, sp, #0x98 + mov r6, #0x3 + mov r7, #0x1 +_020D033C: + ldr r1, [sp, #0xc4] + mov r0, r8 + bl FSi_SeekDirDirect + add r2, sp, #0x4 + mov r0, r8 + mov r1, r6 + str r2, [sp, #0xc8] + str r7, [sp, #0xcc] + bl FSi_TranslateCommand +_020D0360: + cmp r0, #0x0 + bne _020D03A0 +_020D0368: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + beq _020D038C + ldrh r0, [sp, #0x8] + cmp r0, sl + ldreq r0, [sp, #0x14] + addeq r0, r0, #0x1 + addeq r9, r9, r0 + beq _020D03A0 +_020D038C: + mov r0, r8 + mov r1, r6 + bl FSi_TranslateCommand + cmp r0, #0x0 + beq _020D0368 +_020D03A0: + ldrh sl, [sp, #0xbc] + cmp sl, #0x0 + bne _020D033C +_020D03AC: + add r0, r9, #0x1 + strh r0, [r11, #0x8] + strh r5, [r11, #0xa] +_020D03B8: + ldr r7, [r11, #0x0] + cmp r7, #0x0 + addeq sp, sp, #0xe4 + moveq r0, #0x0 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + ldrh r6, [r11, #0x8] + ldr r0, [r11, #0x4] + cmp r0, r6 + addcc sp, sp, #0xe4 + movcc r0, #0x1 + ldmccia sp!, {r4-r11,lr} + bxcc lr + ldr r0, [sp, #0x0] + mov r9, #0x0 + ldr r0, [r0, #0x0] + cmp r0, #0xff + movls r8, #0x1 + bls _020D0410 + cmp r0, #0xff00 + movls r8, #0x2 + movhi r8, #0x3 +_020D0410: + ldr r0, [sp, #0x0] + mov r1, r7 + mov r2, r8 + bl MI_CpuCopy8 + add r1, r9, r8 + ldr r0, _020D058C ; =0x0210682C + add r1, r7, r1 + mov r2, #0x2 + bl MI_CpuCopy8 + add r0, sp, #0x98 + mov r1, r5 + bl FSi_SeekDirDirect + cmp r4, #0x10000 + beq _020D04C4 + add r3, sp, #0x4 + mov r2, #0x0 + add r0, sp, #0x98 + mov r1, #0x3 + str r3, [sp, #0xc8] + str r2, [sp, #0xcc] + bl FSi_TranslateCommand +_020D0464: + cmp r0, #0x0 + bne _020D04A0 + add r9, sp, #0x98 + mov r8, #0x3 +_020D0474: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + bne _020D048C + ldr r0, [sp, #0x8] + cmp r0, r4 + beq _020D04A0 +_020D048C: + mov r0, r9 + mov r1, r8 + bl FSi_TranslateCommand + cmp r0, #0x0 + beq _020D0474 +_020D04A0: + ldr r0, [sp, #0x14] + add r1, r7, r6 + add r4, r0, #0x1 + add r0, sp, #0x18 + mov r2, r4 + sub r1, r1, r4 + bl MI_CpuCopy8 + sub r6, r6, r4 + b _020D04D4 +_020D04C4: + add r0, r7, r6 + mov r1, #0x0 + strb r1, [r0, #-0x1] + sub r6, r6, #0x1 +_020D04D4: + cmp r5, #0x0 + beq _020D057C + add r10, sp, #0x98 + add r11, sp, #0x4 + mov r4, #0x3 + mov r9, #0x0 + mov r8, #0x2f +_020D04F0: + ldr r1, [sp, #0xc4] + mov r0, r10 + bl FSi_SeekDirDirect + add r2, r7, r6 + mov r0, r10 + mov r1, r4 + str r11, [sp, #0xc8] + str r9, [sp, #0xcc] + strb r8, [r2, #-0x1] + sub r6, r6, #0x1 + bl FSi_TranslateCommand +_020D051C: + cmp r0, #0x0 + bne _020D0570 +_020D0524: + ldr r0, [sp, #0x10] + cmp r0, #0x0 + beq _020D055C + ldrh r0, [sp, #0x8] + cmp r0, r5 + bne _020D055C + ldr r5, [sp, #0x14] + add r1, r7, r6 + add r0, sp, #0x18 + mov r2, r5 + sub r1, r1, r5 + bl MI_CpuCopy8 + sub r6, r6, r5 + b _020D0570 +_020D055C: + mov r0, sl + mov r1, r4 + bl FSi_TranslateCommand + cmp r0, #0x0 + beq _020D0524 +_020D0570: + ldrh r5, [sp, #0xbc] + cmp r5, #0x0 + bne _020D04F0 +_020D057C: + mov r0, #0x0 + add sp, sp, #0xe4 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020D058C: .word 0x0210682C + + arm_func_start FSi_FindPathCommand +FSi_FindPathCommand: ; 0x020D0590 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x9c + mov r10, r0 + ldr r2, [r10, #0x40] + ldr r9, [r10, #0x3c] + mov r1, #0x2 + str r2, [sp, #0x0] + bl FSi_TranslateCommand + ldrb r1, [r9, #0x0] + cmp r1, #0x0 + beq _020D0780 + mov r0, #0x2 + add r11, sp, #0x1c + mov r4, #0x3 + mov r5, #0x1 + mov r6, #0x0 + str r0, [sp, #0x4] +_020D05D4: + mov r7, r6 + b _020D05E0 +_020D05DC: + add r7, r7, #0x1 +_020D05E0: + ldrb r8, [r9, r7] + mov r0, r6 + cmp r8, #0x0 + beq _020D0600 + cmp r8, #0x2f + beq _020D0600 + cmp r8, #0x5c + movne r0, r5 +_020D0600: + cmp r0, #0x0 + bne _020D05DC + cmp r8, #0x0 + bne _020D061C + ldr r0, [sp, #0x0] + cmp r0, #0x0 + beq _020D0620 +_020D061C: + mov r8, r5 +_020D0620: + cmp r7, #0x0 + addeq sp, sp, #0x9c + moveq r0, #0x1 + ldmeqia sp!, {r4-r11,lr} + bxeq lr + cmp r1, #0x2e + bne _020D068C + cmp r7, #0x1 + addeq r9, r9, #0x1 + beq _020D0764 + ldrb r0, [r9, #0x1] + cmp r7, #0x2 + moveq r1, r5 + movne r1, r6 + cmp r0, #0x2e + moveq r0, r5 + movne r0, r6 + ands r0, r1, r0 + beq _020D068C + ldrh r0, [r10, #0x24] + cmp r0, #0x0 + beq _020D0684 + ldr r1, [r10, #0x2c] + mov r0, r10 + bl FSi_SeekDirDirect +_020D0684: + add r9, r9, #0x2 + b _020D0764 +_020D068C: + cmp r7, #0x7f + addgt sp, sp, #0x9c + movgt r0, #0x1 + ldmgtia sp!, {r4-r11,lr} + bxgt lr + add r0, sp, #0x8 + str r0, [r10, #0x30] + str r6, [r10, #0x34] +_020D06AC: + mov r0, r10 + mov r1, r4 + bl FSi_TranslateCommand +_020D06B8: + cmp r0, #0x0 + addne sp, sp, #0x9c + movne r0, #0x1 + ldmneia sp!, {r4-r11,lr} + bxne lr + ldr r0, [sp, #0x14] + cmp r8, r0 + bne _020D06AC + ldr r0, [sp, #0x18] + cmp r7, r0 + bne _020D06AC + mov r0, r9 + mov r1, fp + mov r2, r7 + bl FSi_StrNICmp + cmp r0, #0x0 + bne _020D06AC + cmp r8, #0x0 + beq _020D0728 + add r0, sp, #0x8 + add r3, sl, #0x30 + ldmia r0, {r0, r1, r2} + stmia r3, {r0, r1, r2} + ldr r1, [sp, #0x4] + mov r0, sl + add r9, r9, r7 + bl FSi_TranslateCommand + b _020D0764 +_020D0728: + ldr r0, [sp] + cmp r0, #0x0 + addne sp, sp, #0x9c + movne r0, #0x1 + ldmneia sp!, {r4-r11,lr} + bxne lr + ldr r3, [sl, #0x44] + ldr r2, [sp, #0x8] + ldr r1, [sp, #0xC] + add sp, sp, #0x9c + str r2, [r3] + str r1, [r3, #0x4] + mov r0, #0x0 + ldmia sp!, {r4-r11,lr} + bx lr +_020D0764: + ldrb r0, [r9, #0x0] + cmp r0, #0x0 + movne r0, r5 + moveq r0, r6 + ldrb r1, [r9, r0]! + cmp r1, #0x0 + bne _020D05D4 +_020D0780: + ldr r0, [sp, #0x0] + cmp r0, #0x0 + moveq r0, #0x1 + addne r0, r10, #0x20 + ldrne r3, [r10, #0x44] + ldmneia r0, {r0-r2} + stmneia r3, {r0-r2} + movne r0, #0x0 + add sp, sp, #0x9c + ldmia sp!, {r4-r11,lr} + bx lr + + arm_func_start FSi_ReadDirCommand +FSi_ReadDirCommand: ; 0x020D07AC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0xc + mov r5, r0 + ldr r4, [r5, #0x30] + ldr r1, [r5, #0x8] + add r0, sp, #0x4 + str r1, [sp, #0x4] + ldr r3, [r5, #0x28] + add r1, sp, #0x0 + mov r2, #0x1 + str r3, [sp, #0x8] + bl FSi_ReadTable +_020D07DC: + cmp r0, #0x0 + addne sp, sp, #0xC + ldmneia sp!, {r4-r5,lr} + bxne lr + ldrb r1, [sp] + and r2, r1, #0x7F + mov r1, r1, asr #0x7 + str r2, [r4, #0x10] + and r1, r1, #0x1 + str r1, [r4, #0xC] + ldr r2, [r4, #0x10] + cmp r2, #0x0 + addeq sp, sp, #0xC + moveq r0, #0x1 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r1, [r5, #0x34] + cmp r1, #0x0 + bne _020D0858 + add r0, sp, #0x4 + add r1, r4, #0x14 + bl FSi_ReadTable + cmp r0, #0x0 + addne sp, sp, #0xC + ldmneia sp!, {r4-r5,lr} + bxne lr + ldr r1, [r4, #0x10] + mov r2, #0x0 + add r1, r4, r1 + strb r2, [r1, #0x14] + b _020D0864 +_020D0858: + ldr r1, [sp, #0x8] + add r1, r1, r2 + str r1, [sp, #0x8] +_020D0864: + ldr r1, [r4, #0xC] + cmp r1, #0x0 + beq _020D08B8 + add r0, sp, #0x4 + add r1, sp, #0x2 + mov r2, #0x2 + bl FSi_ReadTable + cmp r0, #0x0 + addne sp, sp, #0xC + ldmneia sp!, {r4-r5,lr} + bxne lr + ldr r2, [r5, #0x8] + ldr r1, _020D08E8 + str r2, [r4] + ldrh r3, [sp, #0x2] + mov r2, #0x0 + and r1, r3, r1 + strh r1, [r4, #0x4] + strh r2, [r4, #0x6] + str r2, [r4, #0x8] + b _020D08D4 +_020D08B8: + ldr r1, [r5, #0x8] + str r1, [r4] + ldrh r1, [r5, #0x26] + str r1, [r4, #0x4] + ldrh r1, [r5, #0x26] + add r1, r1, #0x1 + strh r1, [r5, #0x26] +_020D08D4: + ldr r1, [sp, #0x8] + str r1, [r5, #0x28] + add sp, sp, #0xC + ldmia sp!, {r4-r5,lr} + bx lr +_020D08E8: .word 0x00000FFF + + arm_func_start FSi_SeekDirCommand +FSi_SeekDirCommand: ; 0x020D08EC + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x10 + mov r6, r0 + ldr r5, [r6, #0x8] + add r4, r6, #0x30 + str r5, [sp, #0x8] + ldrh r1, [r4, #0x4] + ldr r2, [r5, #0x34] + add r0, sp, #0x8 + add r3, r2, r1, lsl #0x3 + add r1, sp, #0x0 + mov r2, #0x8 + str r3, [sp, #0xc] + bl FSi_ReadTable + movs r3, r0 + bne _020D0978 + add r12, r6, #0x20 + ldmia r4, {r0-r2} + stmia r12, {r0-r2} + ldrh r0, [r4, #0x6] + cmp r0, #0x0 + bne _020D0968 + ldr r0, [r4, #0x8] + cmp r0, #0x0 + bne _020D0968 + ldrh r0, [sp, #0x4] + strh r0, [r6, #0x26] + ldr r1, [r5, #0x34] + ldr r0, [sp, #0x0] + add r0, r1, r0 + str r0, [r6, #0x28] +_020D0968: + ldrh r1, [sp, #0x6] + ldr r0, _020D0988 ; =0x00000FFF + and r0, r1, r0 + str r0, [r6, #0x2c] +_020D0978: + mov r0, r3 + add sp, sp, #0x10 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020D0988: .word 0x00000FFF + + arm_func_start FSi_WriteFileCommand +FSi_WriteFileCommand: ; 0x020D098C + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x2c] + ldr r3, [r0, #0x38] + ldr lr, [r0, #0x8] + ldr r1, [r0, #0x30] + add r12, r2, r3 + str r12, [r0, #0x2c] + ldr r12, [lr, #0x4c] + mov r0, lr + blx r12 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FSi_ReadFileCommand +FSi_ReadFileCommand: ; 0x020D09C4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r2, [r0, #0x2c] + ldr r3, [r0, #0x38] + ldr lr, [r0, #0x8] + ldr r1, [r0, #0x30] + add r12, r2, r3 + str r12, [r0, #0x2c] + ldr r12, [lr, #0x48] + mov r0, lr + blx r12 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FSi_SeekDirDirect +FSi_SeekDirDirect: ; 0x020D09FC + ldr r3, [r0, #0xc] + mov r2, #0x0 + orr r3, r3, #0x4 + str r3, [r0, #0xc] + ldr r3, [r0, #0x8] + ldr ip, _020D0A2C ; =FSi_TranslateCommand + str r3, [r0, #0x30] + str r2, [r0, #0x38] + strh r2, [r0, #0x36] + strh r1, [r0, #0x34] + mov r1, #0x2 + bx r12 + .balign 4 +_020D0A2C: .word FSi_TranslateCommand + + arm_func_start FSi_ReadTable +FSi_ReadTable: + stmdb sp!, {r4-r8,lr} + mov r7, r0 + ldr r5, [r7, #0x0] + mov r6, r2 + ldr r2, [r5, #0x1c] + mov r0, r5 + orr r2, r2, #0x200 + str r2, [r5, #0x1c] + ldr r2, [r7, #0x4] + ldr r4, [r5, #0x50] + mov r3, r6 + blx r4 + cmp r0, #0x0 + beq _020D0A7C + cmp r0, #0x1 + beq _020D0A7C + cmp r0, #0x6 + beq _020D0A8C + b _020D0AC8 +_020D0A7C: + ldr r1, [r5, #0x1c] + bic r1, r1, #0x200 + str r1, [r5, #0x1c] + b _020D0AC8 +_020D0A8C: + bl OS_DisableInterrupts + ldr r1, [r5, #0x1c] + mov r4, r0 + ands r0, r1, #0x200 + beq _020D0AB8 + add r8, r5, #0xc +_020D0AA4: + mov r0, r8 + bl OS_SleepThread + ldr r0, [r5, #0x1c] + ands r0, r0, #0x200 + bne _020D0AA4 +_020D0AB8: + mov r0, r4 + bl OS_RestoreInterrupts + ldr r0, [r5, #0x24] + ldr r0, [r0, #0x14] +_020D0AC8: + ldr r1, [r7, #0x4] + add r1, r1, r6 + str r1, [r7, #0x4] + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FSi_StrNICmp +FSi_StrNICmp: ; 0x020D0ADC + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r2, #0x0 + mov lr, #0x0 + bls _020D0B30 +_020D0AF0: + ldrb r12, [r0, lr] + ldrb r3, [r1, lr] + sub r12, r12, #0x41 + cmp r12, #0x19 + sub r3, r3, #0x41 + addls r12, r12, #0x20 + cmp r3, #0x19 + addls r3, r3, #0x20 + cmp r12, r3 + addne sp, sp, #0x4 + subne r0, r12, r3 + ldmneia sp!, {lr} + bxne lr + add lr, lr, #0x1 + cmp lr, r2 + blo _020D0AF0 +_020D0B30: + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FS_NotifyArchiveAsyncEnd +FS_NotifyArchiveAsyncEnd: ; 0x020D0B40 + stmdb sp!, {r4-r6,lr} + mov r4, r0 + ldr r0, [r4, #0x1c] + mov r6, r1 + ands r0, r0, #0x100 + beq _020D0B8C + ldr r2, [r4, #0x1c] + ldr r0, [r4, #0x24] + bic r2, r2, #0x100 + str r2, [r4, #0x1c] + bl FSi_ReleaseCommand + mov r0, r4 + bl FSi_NextCommand +_020D0B74: + cmp r0, #0x0 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + bl FSi_ExecuteAsyncCommand + ldmia sp!, {r4-r6,lr} + bx lr +_020D0B8C: + ldr r5, [r4, #0x24] + bl OS_DisableInterrupts + str r6, [r5, #0x14] + ldr r1, [r4, #0x1c] + mov r5, r0 + bic r1, r1, #0x200 + add r0, r4, #0xc + str r1, [r4, #0x1c] + bl OS_WakeupThread + mov r0, r5 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FS_SetArchiveProc +FS_SetArchiveProc: ; 0x020D0BC0 + cmp r2, #0x0 + moveq r1, #0x0 + beq _020D0BD4 + cmp r1, #0x0 + moveq r2, #0x0 +_020D0BD4: + str r1, [r0, #0x54] + str r2, [r0, #0x58] + bx lr + + arm_func_start FS_ResumeArchive +FS_ResumeArchive: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r4, r0 + mov r6, #0x0 + bl OS_DisableInterrupts + ldr r1, [r4, #0x1c] + mov r5, r0 + ands r0, r1, #0x8 + movne r0, #0x1 + moveq r0, r6 + cmp r0, #0x0 + moveq r7, #0x1 + movne r7, #0x0 + cmp r7, #0x0 + bne _020D0C34 + ldr r1, [r4, #0x1c] + mov r0, r4 + bic r1, r1, #0x8 + str r1, [r4, #0x1c] + bl FSi_NextCommand + mov r6, r0 +_020D0C34: + mov r0, r5 + bl OS_RestoreInterrupts +_020D0C3C: + cmp r6, #0x0 + beq _020D0C4C + mov r0, r6 + bl FSi_ExecuteAsyncCommand +_020D0C4C: + mov r0, r7 + add sp, sp, #0x4 + ldmia sp!, {r4-r7, lr} + bx lr + + arm_func_start FS_SuspendArchive +FS_SuspendArchive: ; 0x020D0C5C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + bl OS_DisableInterrupts + ldr r1, [r6, #0x1c] + mov r4, r0 + ands r0, r1, #0x8 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + moveq r5, #0x1 + movne r5, #0x0 + cmp r5, #0x0 + beq _020D0CD4 + ldr r0, [r6, #0x1c] + ands r0, r0, #0x10 + beq _020D0CC8 + ldr r0, [r6, #0x1c] + orr r0, r0, #0x40 + str r0, [r6, #0x1c] + add r7, r6, #0x14 +_020D0CB0: + mov r0, r7 + bl OS_SleepThread + ldr r0, [r6, #0x1c] + ands r0, r0, #0x40 + bne _020D0CB0 + b _020D0CD4 +_020D0CC8: + ldr r0, [r6, #0x1c] + orr r0, r0, #0x8 + str r0, [r6, #0x1c] +_020D0CD4: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, r5 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FS_UnloadArchiveTables +FS_UnloadArchiveTables: ; 0x020D0CEC + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + ldr r0, [r5, #0x1c] + mov r4, #0x0 + ands r0, r0, #0x2 + movne r0, #0x1 + moveq r0, r4 + cmp r0, #0x0 + beq _020D0D74 + mov r0, r5 + bl FS_SuspendArchive + ldr r1, [r5, #0x1c] + ands r1, r1, #0x4 + movne r1, #0x1 + moveq r1, #0x0 + cmp r1, #0x0 + beq _020D0D64 + ldr r2, [r5, #0x1c] + mov r1, #0x0 + bic r2, r2, #0x4 + str r2, [r5, #0x1c] + ldr r4, [r5, #0x44] + str r1, [r5, #0x44] + ldr r1, [r5, #0x3c] + str r1, [r5, #0x2c] + ldr r1, [r5, #0x40] + str r1, [r5, #0x34] + ldr r1, [r5, #0x48] + str r1, [r5, #0x50] +_020D0D64: + cmp r0, #0x0 + beq _020D0D74 + mov r0, r5 + bl FS_ResumeArchive +_020D0D74: + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + + arm_func_start FUN_020D0D84 +FUN_020D0D84: ; 0x020D0D84 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4c + mov r7, r0 + ldr r3, [r7, #0x30] + ldr r0, [r7, #0x38] + mov r6, r1 + add r0, r3, r0 + add r0, r0, #0x20 + add r0, r0, #0x1f + bic r5, r0, #0x1f + cmp r5, r2 + bhi _020D0E9C + add r1, r6, #0x1f + add r0, sp, #0x4 + bic r4, r1, #0x1f + bl FS_InitFile + ldr r2, [r7, #0x2c] + mvn r0, #0x0 + str r0, [sp, #0x0] + ldr r3, [r7, #0x30] + add r0, sp, #0x4 + mov r1, r7 + add r3, r2, r3 + bl FS_OpenFileDirect +_020D0DE4: + cmp r0, #0x0 + beq _020D0E1C + ldr r2, [r7, #0x30] + add r0, sp, #0x4 + mov r1, r4 + bl FS_ReadFile + cmp r0, #0x0 + bge _020D0E14 + ldr r2, [r7, #0x30] + mov r0, r4 + mov r1, #0x0 + bl MI_CpuFill8 +_020D0E14: + add r0, sp, #0x4 + bl FS_CloseFile +_020D0E1C: + str r4, [r7, #0x2C] + ldr ip, [r7, #0x30] + ldr r2, [r7, #0x34] + mvn r0, #0x0 + str r0, [sp] + ldr r3, [r7, #0x38] + add r0, sp, #0x4 + mov r1, r7 + add r3, r2, r3 + add r4, r4, ip + bl FS_OpenFileDirect + cmp r0, #0x0 + beq _020D0E80 + ldr r2, [r7, #0x38] + add r0, sp, #0x4 + mov r1, r4 + bl FS_ReadFile + cmp r0, #0x0 + bge _020D0E78 + ldr r2, [r7, #0x38] + mov r0, r4 + mov r1, #0x0 + bl MI_CpuFill8 +_020D0E78: + add r0, sp, #0x4 + bl FS_CloseFile +_020D0E80: + str r4, [r7, #0x34] + ldr r0, _020D0EAC + str r6, [r7, #0x44] + str r0, [r7, #0x50] + ldr r0, [r7, #0x1C] + orr r0, r0, #0x4 + str r0, [r7, #0x1C] +_020D0E9C: + mov r0, r5 + add sp, sp, #0x4C + ldmia sp!, {r4-r7,lr} + bx lr +_020D0EAC: + .word FSi_ReadMemoryCore + + arm_func_start FUN_020D0EB0 +FUN_020D0EB0: ; 0x020D0EB0 + stmdb sp!, {r4-r8,lr} + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, [r5, #0x1c] + mov r4, r0 + ands r0, r1, #0x2 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + beq _020D0F64 + mov r0, r5 + ldr r1, [r5, #0x1c] + bl FS_SuspendArchive + ldr r1, [r5, #0x1c] + mov r7, r0 + orr r0, r1, #0x80 + str r0, [r5, #0x1c] + ldr r0, [r5, #0x24] + cmp r0, #0x0 + beq _020D0F1C + mov r6, #0x3 +_020D0F04: + ldr r8, [r0, #0x4] + mov r1, r6 + bl FSi_ReleaseCommand + mov r0, r8 + cmp r8, #0x0 + bne _020D0F04 +_020D0F1C: + mov r0, #0x0 + str r0, [r5, #0x24] + cmp r7, #0x0 + beq _020D0F34 + mov r0, r5 + bl FS_ResumeArchive +_020D0F34: + mov r0, #0x0 + str r0, [r5, #0x28] + str r0, [r5, #0x2c] + str r0, [r5, #0x30] + str r0, [r5, #0x34] + str r0, [r5, #0x38] + str r0, [r5, #0x40] + ldr r0, [r5, #0x40] + str r0, [r5, #0x3c] + ldr r0, [r5, #0x1c] + bic r0, r0, #0xa2 + str r0, [r5, #0x1c] +_020D0F64: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, #0x1 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FS_LoadArchive +FS_LoadArchive: ; 0x020D0F78 + str r1, [r0, #0x28] + str r3, [r0, #0x30] + str r2, [r0, #0x3c] + ldr r1, [r0, #0x3c] + ldr r2, [sp, #0x4] + str r1, [r0, #0x2c] + str r2, [r0, #0x38] + ldr r1, [sp, #0x0] + ldr r2, [sp, #0x8] + str r1, [r0, #0x40] + ldr r1, [r0, #0x40] + cmp r2, #0x0 + str r1, [r0, #0x34] + ldreq r2, _020D0FE8 ; =FSi_ReadMemCallback + ldr r1, [sp, #0xc] + str r2, [r0, #0x48] + cmp r1, #0x0 + ldreq r1, _020D0FEC ; =FSi_WriteMemCallback + str r1, [r0, #0x4c] + ldr r2, [r0, #0x48] + mov r1, #0x0 + str r2, [r0, #0x50] + str r1, [r0, #0x44] + ldr r1, [r0, #0x1c] + orr r1, r1, #0x2 + str r1, [r0, #0x1c] + mov r0, #0x1 + bx lr + .balign 4 +_020D0FE8: .word FSi_ReadMemCallback +_020D0FEC: .word FSi_WriteMemCallback + + arm_func_start FUN_020D0FF0 +FUN_020D0FF0: ; 0x020D0FF0 + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + bl OS_DisableInterrupts + ldr r2, [r4, #0x4] + mov r3, #0x0 + cmp r2, #0x0 + ldrne r1, [r4, #0x8] + strne r1, [r2, #0x8] + ldr r2, [r4, #0x8] + cmp r2, #0x0 + ldrne r1, [r4, #0x4] + strne r1, [r2, #0x4] + str r3, [r4, #0x0] + str r3, [r4, #0x8] + ldr r1, [r4, #0x8] + ldr r2, _020D1080 ; =0x021D53EC + str r1, [r4, #0x4] + ldr r1, [r4, #0x1c] + bic r1, r1, #0x1 + str r1, [r4, #0x1c] + ldr r1, [r2, #0x0] + cmp r1, r4 + bne _020D1074 + ldr r1, _020D1084 ; =0x021D53E8 + str r3, [r2, #0x8] + ldr r1, [r1, #0x0] + strh r3, [r2, #0x6] + str r1, [r2, #0x0] + strh r3, [r2, #0x4] +_020D1074: + bl OS_RestoreInterrupts + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020D1080: .word 0x021D53EC +_020D1084: .word 0x021D53E8 + + arm_func_start FS_RegisterArchiveName +FS_RegisterArchiveName: ; 0x020D1088 + stmdb sp!, {r4-r8,lr} + mov r6, r1 + mov r5, r2 + mov r7, r0 + mov r8, #0x0 + bl OS_DisableInterrupts + mov r4, r0 + mov r0, r6 + mov r1, r5 + bl FS_FindArchive +_020D10B0: + cmp r0, #0x0 + bne _020D112C + ldr r1, _020D1140 + ldr r2, [r1] + cmp r2, #0x0 + bne _020D10E8 + ldr r0, _020D1144 + mov r2, r8 + str r7, [r1] + str r7, [r0] + str r2, [r0, #0x8] + strh r2, [r0, #0x6] + strh r2, [r0, #0x4] + b _020D110C +_020D10E8: + ldr r0, [r2, #0x4] + cmp r0, #0x0 + beq _020D1104 +_020D10F4: + mov r2, r0 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + bne _020D10F4 +_020D1104: + str r7, [r2, #0x4] + str r2, [r7, #0x8] +_020D110C: + mov r0, r6 + mov r1, r5 + bl FSi_GetPackedName + str r0, [r7] + ldr r0, [r7, #0x1C] + mov r8, #0x1 + orr r0, r0, #0x1 + str r0, [r7, #0x1C] +_020D112C: + mov r0, r4 + bl OS_RestoreInterrupts + mov r0, r8 + ldmia sp!, {r4-r8,lr} + bx lr +_020D1140: .word 0x021D53E8 +_020D1144: .word 0x021D53EC + + arm_func_start FS_FindArchive +FS_FindArchive: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + bl FSi_GetPackedName + mov r5, r0 + bl OS_DisableInterrupts + ldr r1, _020D1194 ; =0x021D53E8 + ldr r4, [r1, #0x0] + b _020D116C +_020D1168: + ldr r4, [r4, #0x4] +_020D116C: + cmp r4, #0x0 + beq _020D1180 + ldr r1, [r4, #0x0] + cmp r1, r5 + bne _020D1168 +_020D1180: + bl OS_RestoreInterrupts + mov r0, r4 + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020D1194: .word 0x021D53E8 + + arm_func_start FS_InitArchive +FS_InitArchive: ; 0x020D1198 + stmdb sp!, {r4,lr} + mov r1, #0x0 + mov r2, #0x5c + mov r4, r0 + bl MI_CpuFill8 + mov r1, #0x0 + str r1, [r4, #0x10] + ldr r0, [r4, #0x10] + str r0, [r4, #0xc] + str r1, [r4, #0x18] + ldr r0, [r4, #0x18] + str r0, [r4, #0x14] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FSi_SendCommand +FSi_SendCommand: + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + ldr r6, [r7, #0x8] + mov r2, #0x1 + str r1, [r7, #0x10] + mov r0, #0x2 + str r0, [r7, #0x14] + ldr r0, [r7, #0xc] + mov r5, r2, lsl r1 + orr r0, r0, #0x1 + str r0, [r7, #0xc] + bl OS_DisableInterrupts + ldr r1, [r6, #0x1c] + mov r4, r0 + ands r0, r1, #0x80 + beq _020D1238 + mov r0, r7 + mov r1, #0x3 + bl FSi_ReleaseCommand + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {r4-r7,lr} + bx lr +_020D1238: + ands r0, r5, #0x1fc + ldrne r0, [r7, #0xc] + add r2, r6, #0x20 + orrne r0, r0, #0x4 + strne r0, [r7, #0xc] + ldr r1, [r7, #0x0] + ldr r0, [r7, #0x4] + cmp r1, #0x0 + strne r0, [r1, #0x4] + cmp r0, #0x0 + strne r1, [r0, #0x0] + ldr r0, [r2, #0x4] + cmp r0, #0x0 + beq _020D1280 +_020D1270: + mov r2, r0 + ldr r0, [r0, #0x4] + cmp r0, #0x0 + bne _020D1270 +_020D1280: + str r7, [r2, #0x4] + str r2, [r7, #0x0] + mov r1, #0x0 + str r1, [r7, #0x4] + ldr r0, [r6, #0x1c] + ands r0, r0, #0x8 + movne r1, #0x1 + cmp r1, #0x0 + bne _020D132C + ldr r0, [r6, #0x1c] + ands r0, r0, #0x10 + bne _020D132C + ldr r1, [r6, #0x1c] + mov r0, r4 + orr r1, r1, #0x10 + str r1, [r6, #0x1c] + bl OS_RestoreInterrupts + ldr r0, [r6, #0x58] + ands r0, r0, #0x200 + beq _020D12E0 + ldr r2, [r6, #0x54] + mov r0, r7 + mov r1, #0x9 + blx r2 +_020D12E0: + bl OS_DisableInterrupts + ldr r1, [r7, #0xc] + orr r1, r1, #0x40 + str r1, [r7, #0xc] + ldr r1, [r7, #0xc] + ands r1, r1, #0x4 + movne r1, #0x1 + moveq r1, #0x0 + cmp r1, #0x0 + bne _020D1324 + bl OS_RestoreInterrupts + mov r0, r7 + bl FSi_ExecuteAsyncCommand + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020D1324: + bl OS_RestoreInterrupts + b _020D1378 +_020D132C: + ldr r0, [r7, #0xc] + ands r0, r0, #0x4 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + bne _020D135C + mov r0, r4 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020D135C: + add r0, r7, #0x18 + bl OS_SleepThread + ldr r0, [r7, #0xc] + ands r0, r0, #0x40 + beq _020D135C + mov r0, r4 + bl OS_RestoreInterrupts +_020D1378: + mov r0, r7 + bl FSi_ExecuteSyncCommand + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FSi_ExecuteSyncCommand +FSi_ExecuteSyncCommand: ; 0x020D138C + stmdb sp!, {r4,lr} + mov r4, r0 + ldr r1, [r4, #0x10] + bl FSi_TranslateCommand + mov r1, r0 + mov r0, r4 + bl FSi_ReleaseCommand + ldr r0, [r4, #0x8] + bl FSi_NextCommand +_020D13B0: + cmp r0, #0x0 + beq _020D13BC + bl FSi_ExecuteAsyncCommand +_020D13BC: + ldr r0, [r4, #0x14] + cmp r0, #0x0 + moveq r0, #0x1 + movne r0, #0x0 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FSi_ExecuteAsyncCommand +FSi_ExecuteAsyncCommand: ; 0x020D13D4 + stmdb sp!, {r4-r8,lr} + movs r6, r0 + ldr r5, [r6, #0x8] + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r7, #0x0 + mov r8, #0x1 +_020D13F0: + bl OS_DisableInterrupts + ldr r1, [r6, #0xc] + mov r4, r0 + orr r0, r1, #0x40 + str r0, [r6, #0xc] + ldr r0, [r6, #0xc] + ands r0, r0, #0x4 + movne r0, r8 + moveq r0, r7 + cmp r0, #0x0 + beq _020D1434 + add r0, r6, #0x18 + bl OS_WakeupThread + mov r0, r4 + bl OS_RestoreInterrupts + ldmia sp!, {r4-r8,lr} + bx lr +_020D1434: + ldr r1, [r6, #0xc] + mov r0, r4 + orr r1, r1, #0x8 + str r1, [r6, #0xc] + bl OS_RestoreInterrupts + ldr r1, [r6, #0x10] + mov r0, r6 + bl FSi_TranslateCommand + cmp r0, #0x6 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r0, r5 + bl FSi_NextCommand + movs r6, r0 + bne _020D13F0 + ldmia sp!, {r4-r8,lr} + bx lr + + arm_func_start FSi_NextCommand +FSi_NextCommand: + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4c + mov r6, r0 + bl OS_DisableInterrupts + ldr r1, [r6, #0x1c] + mov r5, r0 + ands r0, r1, #0x20 + beq _020D1500 + ldr r0, [r6, #0x1c] + bic r0, r0, #0x20 + str r0, [r6, #0x1c] + ldr r0, [r6, #0x24] + cmp r0, #0x0 + beq _020D1500 + mov r8, #0x0 + mov r9, #0x1 + mov r7, #0x3 +_020D14BC: + ldr r1, [r0, #0xc] + ldr r4, [r0, #0x4] + ands r1, r1, #0x2 + movne r1, r9 + moveq r1, r8 + cmp r1, #0x0 + beq _020D14F4 + ldr r1, [r6, #0x24] + cmp r1, r0 + mov r1, r7 + streq r4, [r6, #0x24] + bl FSi_ReleaseCommand +_020D14EC: + cmp r4, #0x0 + ldreq r4, [r6, #0x24] +_020D14F4: + mov r0, r4 + cmp r4, #0x0 + bne _020D14BC +_020D1500: + ldr r0, [r6, #0x1c] + ands r0, r0, #0x40 + bne _020D15EC + ldr r0, [r6, #0x1c] + ands r0, r0, #0x8 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + bne _020D15EC + ldr r4, [r6, #0x24] + cmp r4, #0x0 + beq _020D15EC + ldr r0, [r6, #0x1c] + ands r0, r0, #0x10 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + moveq r7, #0x1 + movne r7, #0x0 + cmp r7, #0x0 + ldrne r0, [r6, #0x1c] + orrne r0, r0, #0x10 + strne r0, [r6, #0x1c] + mov r0, r5 + bl OS_RestoreInterrupts +_020D1564: + cmp r7, #0x0 + beq _020D1588 + ldr r0, [r6, #0x58] + ands r0, r0, #0x200 + beq _020D1588 + ldr r2, [r6, #0x54] + mov r0, r4 + mov r1, #0x9 + blx r2 +_020D1588: + bl OS_DisableInterrupts + ldr r1, [r4, #0xC] + mov r5, r0 + orr r0, r1, #0x40 + str r0, [r4, #0xC] + ldr r0, [r4, #0xC] + ands r0, r0, #0x4 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + beq _020D15D4 + add r0, r4, #0x18 + bl OS_WakeupThread + mov r0, r5 + bl OS_RestoreInterrupts + add sp, sp, #0x4c + mov r0, #0x0 + ldmia sp!, {r4-r9, lr} + bx lr +_020D15D4: + mov r0, r5 + bl OS_RestoreInterrupts + add sp, sp, #0x4c + mov r0, r4 + ldmia sp!, {r4-r9, lr} + bx lr +_020D15EC: + ldr r0, [r6, #0x1c] + ands r0, r0, #0x10 + beq _020D162C + ldr r0, [r6, #0x1c] + bic r0, r0, #0x10 + str r0, [r6, #0x1c] + ldr r0, [r6, #0x58] + ands r0, r0, #0x400 + beq _020D162C + add r0, sp, #0x0 + bl FS_InitFile + str r6, [sp, #0x8] + ldr r2, [r6, #0x54] + add r0, sp, #0x0 + mov r1, #0xa + blx r2 +_020D162C: + ldr r0, [r6, #0x1c] + ands r0, r0, #0x40 + beq _020D1658 + ldr r1, [r6, #0x1c] + add r0, r6, #0x14 + bic r1, r1, #0x40 + str r1, [r6, #0x1c] + ldr r1, [r6, #0x1c] + orr r1, r1, #0x8 + str r1, [r6, #0x1c] + bl OS_WakeupThread +_020D1658: + mov r0, r5 + bl OS_RestoreInterrupts +_020D1660: + mov r0, #0x0 + add sp, sp, #0x4c + ldmia sp!, {r4-r9, lr} + bx lr + + arm_func_start FSi_ReadMemoryCore +FSi_ReadMemoryCore: ; 0x020D1670 + stmdb sp!, {lr} + sub sp, sp, #0x4 + mov r0, r2 + mov r2, r3 + bl MI_CpuCopy8 +_020D1684: + mov r0, #0x0 + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FSi_WriteMemCallback +FSi_WriteMemCallback: ; 0x020D1694 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r12, [r0, #0x28] + mov r0, r1 + add r1, r12, r2 + mov r2, r3 + bl MI_CpuCopy8 +_020D16B0: + mov r0, #0x0 + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FSi_ReadMemCallback +FSi_ReadMemCallback: ; 0x020D16C0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, [r0, #0x28] + add r0, r0, r2 + mov r2, r3 + bl MI_CpuCopy8 +_020D16D8: + mov r0, #0x0 + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr + + arm_func_start FSi_GetPackedName +FSi_GetPackedName: ; 0x020D16E8 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0x3 + mov lr, #0x0 + bgt _020D173C + mov r12, lr + cmp r1, #0x0 + ble _020D173C + mov r3, lr +_020D170C: + ldrb r2, [r0, r12] + cmp r2, #0x0 + beq _020D173C + sub r2, r2, #0x41 + cmp r2, #0x19 + addls r2, r2, #0x61 + addhi r2, r2, #0x41 + add r12, r12, #0x1 + orr lr, lr, r2, lsl r3 + cmp r12, r1 + add r3, r3, #0x8 + blt _020D170C +_020D173C: + mov r0, lr + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FS_ChangeDir +FS_ChangeDir: ; 0x020D174C + stmdb sp!, {r4,lr} + sub sp, sp, #0x58 + mov r4, r0 + add r0, sp, #0xc + bl FS_InitFile + add r0, sp, #0xc + add r3, sp, #0x0 + mov r1, r4 + mov r2, #0x0 + bl FSi_FindPath +_020D1774: + cmp r0, #0x0 + moveq r0, #0x0 + addne r0, sp, #0x0 + ldrne r3, _020D179C + ldmneia r0, {r0, r1, r2} + stmneia r3, {r0, r1, r2} + movne r0, #0x1 + add sp, sp, #0x58 + ldmia sp!, {r4, lr} + bx lr +_020D179C: .word 0x021D53EC + + arm_func_start FS_SeekFile +FS_SeekFile: ; 0x020D17A0 + cmp r2, #0x0 + beq _020D17BC + cmp r2, #0x1 + beq _020D17C8 + cmp r2, #0x2 + beq _020D17D4 + b _020D17E0 +_020D17BC: + ldr r2, [r0, #0x24] + add r1, r1, r2 + b _020D17E8 +_020D17C8: + ldr r2, [r0, #0x2c] + add r1, r1, r2 + b _020D17E8 +_020D17D4: + ldr r2, [r0, #0x28] + add r1, r1, r2 + b _020D17E8 +_020D17E0: + mov r0, #0x0 + bx lr +_020D17E8: + ldr r2, [r0, #0x24] + cmp r1, r2 + movlt r1, r2 + ldr r2, [r0, #0x28] + cmp r1, r2 + movgt r1, r2 + str r1, [r0, #0x2c] + mov r0, #0x1 + bx lr + + arm_func_start FS_ReadFile +FS_ReadFile: ; 0x020D180C + ldr ip, _020D1818 ; =FUN_020D1AAC + mov r3, #0x0 + bx r12 + .balign 4 +_020D1818: .word FUN_020D1AAC + + arm_func_start FS_ReadFileAsync +FS_ReadFileAsync: ; 0x020D181C + ldr ip, _020D1828 ; =FUN_020D1AAC + mov r3, #0x1 + bx r12 + .balign 4 +_020D1828: .word FUN_020D1AAC + + arm_func_start FS_WaitAsync +FS_WaitAsync: ; 0x020D182C + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r0 + mov r5, #0x0 + bl OS_DisableInterrupts + ldr r1, [r6, #0xc] + mov r4, r0 + ands r0, r1, #0x1 + movne r0, #0x1 + moveq r0, r5 + cmp r0, #0x0 + beq _020D18BC + ldr r0, [r6, #0xc] + ands r0, r0, #0x44 + moveq r5, #0x1 + movne r5, #0x0 + cmp r5, #0x0 + beq _020D189C + ldr r0, [r6, #0xc] + orr r0, r0, #0x4 + str r0, [r6, #0xc] + add r7, r6, #0x18 +_020D1884: + mov r0, r7 + bl OS_SleepThread + ldr r0, [r6, #0xc] + ands r0, r0, #0x40 + beq _020D1884 + b _020D18BC +_020D189C: + add r0, r6, #0x18 + bl OS_SleepThread + ldr r0, [r6, #0xc] + ands r0, r0, #0x1 + movne r0, #0x1 + moveq r0, #0x0 + cmp r0, #0x0 + bne _020D189C +_020D18BC: + mov r0, r4 + bl OS_RestoreInterrupts +_020D18C4: + cmp r5, #0x0 + beq _020D18E0 + mov r0, r6 + bl FSi_ExecuteSyncCommand + add sp, sp, #4 + ldmia sp!, {r4-r7,lr} + bx lr +_020D18E0: + ldr r0, [r6, #0x14] + cmp r0, #0x0 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + + arm_func_start FS_CloseFile +FS_CloseFile: ; 0x020D18FC + stmdb sp!, {r4,lr} + mov r1, #0x8 + mov r4, r0 + bl FSi_SendCommand +_020D190C: + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + mov r0, #0x0 + str r0, [r4, #0x8] + mov r0, #0xE + str r0, [r4, #0x10] + ldr r1, [r4, #0xC] + mov r0, #0x1 + bic r1, r1, #0x30 + str r1, [r4, #0xC] + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FS_OpenFile +FS_OpenFile: ; 0x020D1944 + stmdb sp!, {r4,lr} + sub sp, sp, #0x8 + mov r4, r0 + add r0, sp, #0x0 + bl FS_ConvertPathToFileID +_020D1958: + cmp r0, #0x0 + beq _020D1984 + add r1, sp, #0x0 + mov r0, r4 + ldmia r1, {r1, r2} + bl FS_OpenFileFast + cmp r0, #0x0 + addne sp, sp, #0x8 + movne r0, #0x1 + ldmneia sp!, {r4, lr} + bxne lr +_020D1984: + mov r0, #0x0 + add sp, sp, #0x8 + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FS_OpenFileFast +FS_OpenFileFast: + stmdb sp!, {r0-r3} + stmdb sp!, {r4,lr} + ldr r1, [sp, #0xc] + mov r4, r0 + cmp r1, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4,lr} + addeq sp, sp, #0x10 + bxeq lr + str r1, [r4, #0x8] + ldr r3, [sp, #0xc] + ldr r2, [sp, #0x10] + mov r1, #0x6 + str r3, [r4, #0x30] + str r2, [r4, #0x34] + bl FSi_SendCommand +_020D19D4: + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4, lr} + addeq sp, sp, #0x10 + bxeq lr + ldr r1, [r4, #0xC] + mov r0, #0x1 + orr r1, r1, #0x10 + str r1, [r4, #0xC] + ldr r1, [r4, #0xC] + bic r1, r1, #0x20 + str r1, [r4, #0xC] + ldmia sp!, {r4, lr} + add sp, sp, #0x10 + bx lr + + arm_func_start FS_OpenFileDirect +FS_OpenFileDirect: + stmdb sp!, {r4,lr} + mov r4, r0 + str r1, [r4, #0x8] + ldr r12, [sp, #0x8] + mov r1, #0x7 + str r12, [r4, #0x38] + str r2, [r4, #0x30] + str r3, [r4, #0x34] + bl FSi_SendCommand +_020D1A34: + cmp r0, #0x0 + moveq r0, #0x0 + ldmeqia sp!, {r4, lr} + bxeq lr + ldr r1, [r4, #0xC] + mov r0, #0x1 + orr r1, r1, #0x10 + str r1, [r4, #0xC] + ldr r1, [r4, #0xC] + bic r1, r1, #0x20 + str r1, [r4, #0xC] + ldmia sp!, {r4, lr} + bx lr + + arm_func_start FS_ConvertPathToFileID +FS_ConvertPathToFileID: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4c + mov r5, r0 + add r0, sp, #0x0 + mov r4, r1 + bl FS_InitFile +_020D1A80: + add r0, sp, #0x0 + mov r1, r4 + mov r2, r5 + mov r3, #0x0 + bl FSi_FindPath + cmp r0, #0x0 + movne r0, #0x1 + moveq r0, #0x0 + add sp, sp, #0x4C + ldmia sp!, {r4-r5, lr} + bx lr + + arm_func_start FUN_020D1AAC +FUN_020D1AAC: ; 0x020D1AAC + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + ldr r4, [r7, #0x2c] + ldr r0, [r7, #0x28] + mov r6, r2 + str r1, [r7, #0x30] + sub r0, r0, r4 + cmp r6, r0 + movgt r6, r0 + cmp r6, #0x0 + movlt r6, #0x0 + str r2, [r7, #0x34] + mov r5, r3 + str r6, [r7, #0x38] + cmp r5, #0x0 + ldreq r0, [r7, #0xc] + mov r1, #0x0 + orreq r0, r0, #0x4 + streq r0, [r7, #0xc] + mov r0, r7 + bl FSi_SendCommand +_020D1B04: + cmp r5, #0x0 + bne _020D1B24 + mov r0, r7 + bl FS_WaitAsync + cmp r0, #0x0 + ldrne r0, [r7, #0x2C] + subne r6, r0, r4 + mvneq r6, #0x0 +_020D1B24: + mov r0, r6 + add sp, sp, #0x4 + ldmia sp!, {r4-r7, lr} + bx lr + + arm_func_start FSi_FindPath +FSi_FindPath: + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0x10 + mov r7, r1 + ldrb r1, [r7, #0x0] + mov r8, r0 + mov r6, r2 + mov r5, r3 + cmp r1, #0x2f + beq _020D1B60 + cmp r1, #0x5c + bne _020D1B84 +_020D1B60: + ldr r0, _020D1C90 ; =0x021D53EC + mov r1, #0x0 + ldr r0, [r0, #0x0] + strh r1, [sp, #0x4] + str r0, [sp, #0x0] + str r1, [sp, #0x8] + strh r1, [sp, #0x6] + add r7, r7, #0x1 + b _020D1C40 +_020D1B84: + ldr r0, _020D1C90 ; =0x021D53EC + add r3, sp, #0x0 + ldmia r0, {r0-r2} + stmia r3, {r0-r2} + mov r4, #0x0 +_020D1B98: + ldrb r0, [r7, r4] + cmp r0, #0x0 + beq _020D1C40 + cmp r0, #0x2f + beq _020D1C40 + cmp r0, #0x5c + beq _020D1C40 + cmp r0, #0x3a + bne _020D1C34 + mov r0, r7 + mov r1, r4 + bl FS_FindArchive +_020D1BC8: + cmp r0, #0x0 + addeq sp, sp, #0x10 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r1, [r0, #0x1C] + ands r1, r1, #0x2 + movne r1, #0x1 + moveq r1, #0x0 + cmp r1, #0x0 + addeq sp, sp, #0x10 + moveq r0, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r1, #0x0 + str r0, [sp] + str r1, [sp, #0x8] + strh r1, [sp, #0x6] + strh r1, [sp, #0x4] + add r0, r4, #0x1 + ldrb r0, [r7, r0]! + cmp r0, #0x2f + beq _020D1C2C + cmp r0, #0x5c + bne _020D1C40 +_020D1C2C: + add r7, r7, #0x1 + b _020D1C40 +_020D1C34: + add r4, r4, #0x1 + cmp r4, #0x3 + ble _020D1B98 +_020D1C40: + ldr r1, [sp, #0x0] + add r0, sp, #0x0 + str r1, [r8, #0x8] + str r7, [r8, #0x3c] + add r3, r8, #0x30 + ldmia r0, {r0-r2} + stmia r3, {r0-r2} + cmp r5, #0x0 + movne r0, #0x1 + strne r0, [r8, #0x40] + strne r5, [r8, #0x44] + moveq r0, #0x0 + streq r0, [r8, #0x40] + mov r0, r8 + mov r1, #0x4 + streq r6, [r8, #0x44] + bl FSi_SendCommand + add sp, sp, #0x10 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020D1C90: .word 0x021D53EC + + arm_func_start FS_InitFile +FS_InitFile: + mov r3, #0x0 + str r3, [r0, #0x0] + ldr r2, [r0, #0x0] + mov r1, #0xe + str r2, [r0, #0x4] + str r3, [r0, #0x1c] + ldr r2, [r0, #0x1c] + str r2, [r0, #0x18] + str r3, [r0, #0x8] + str r1, [r0, #0x10] + str r3, [r0, #0xc] + bx lr + + arm_func_start FS_IsAvailable +FS_IsAvailable: ; 0x020D1CC4 + ldr r0, _020D1CD0 ; =0x021D53F8 + ldr r0, [r0, #0x0] + bx lr + .balign 4 +_020D1CD0: .word 0x021D53F8 + + arm_func_start FS_Init +FS_Init: ; 0x020D1CD4 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020D1D0C ; =0x021D53F8 + ldr r2, [r1, #0x0] + cmp r2, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {lr} + bxne lr + mov r2, #0x1 + str r2, [r1, #0x0] + bl FSi_InitRom + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020D1D0C: .word 0x021D53F8 + + arm_func_start FS_TryLoadTable +FS_TryLoadTable: ; 0x020D1D10 + ldr ip, _020D1D28 ; =FUN_020D0D84 + mov r3, r0 + mov r2, r1 + ldr r0, _020D1D2C ; =0x021D5414 + mov r1, r3 + bx r12 + .balign 4 +_020D1D28: .word FUN_020D0D84 +_020D1D2C: .word 0x021D5414 + + arm_func_start FS_SetDefaultDMA +FS_SetDefaultDMA: ; 0x020D1D30 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + bl OS_DisableInterrupts + mov r5, r0 + ldr r1, _020D1D7C ; =0x021D5400 + ldr r0, _020D1D80 ; =0x021D5414 + ldr r4, [r1, #0x0] + bl FS_SuspendArchive + ldr r1, _020D1D7C ; =0x021D5400 + cmp r0, #0x0 + str r6, [r1, #0x0] + beq _020D1D68 + ldr r0, _020D1D80 ; =0x021D5414 + bl FS_ResumeArchive +_020D1D68: + mov r0, r5 + bl OS_RestoreInterrupts + mov r0, r4 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020D1D7C: .word 0x021D5400 +_020D1D80: .word 0x021D5414 + + arm_func_start FSi_InitRom +FSi_InitRom: ; 0x020D1D84 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x14 + ldr r1, _020D1EE8 ; =0x021D5400 + str r0, [r1, #0x0] + bl OS_GetLockID + ldr r3, _020D1EEC ; =0x021D53FC + ldr r2, _020D1EF0 ; =0x021D5404 + mov r12, #0x0 + ldr r1, _020D1EF4 ; =0x021D540C + str r0, [r3, #0x0] + str r12, [r2, #0x0] + str r12, [r2, #0x4] + str r12, [r1, #0x0] + str r12, [r1, #0x4] + bl CARD_Init + ldr r0, _020D1EF8 ; =0x021D5414 + bl FS_InitArchive + ldr r0, _020D1EF8 ; =0x021D5414 + ldr r1, _020D1EFC ; =0x02106830 + mov r2, #0x3 + bl FS_RegisterArchiveName + ldr r0, _020D1F00 ; =0x027FFC40 + ldrh r0, [r0, #0x0] + cmp r0, #0x2 + bne _020D1E4C + ldr ip, _020D1EF0 ; =0x021D5404 + mvn r2, #0x0 + ldr r3, _020D1EF4 ; =0x021D540C + mov lr, #0x0 + ldr r0, _020D1EF8 ; =0x021D5414 + ldr r1, _020D1F04 ; =FSi_EmptyArchiveProc + str r2, [r12, #0x0] + str lr, [r12, #0x4] + str r2, [r3, #0x0] + str lr, [r3, #0x4] + bl FS_SetArchiveProc + mov r1, #0x0 + str r1, [sp, #0x0] + ldr r0, _020D1F08 ; =FSi_ReadDummyCallback + str r1, [sp, #0x4] + str r0, [sp, #0x8] + ldr ip, _020D1F0C ; =FSi_WriteDummyCallback + ldr r0, _020D1EF8 ; =0x021D5414 + mov r2, r1 + mov r3, r1 + str r12, [sp, #0xc] + bl FS_LoadArchive + add sp, sp, #0x14 + ldmia sp!, {r4-r5,lr} + bx lr +_020D1E4C: + ldr r5, _020D1F10 ; =0x027FFE40 + ldr r0, _020D1EF8 ; =0x021D5414 + ldr r1, _020D1F14 ; =FSi_RomArchiveProc + ldr r2, _020D1F18 ; =0x00000602 + ldr r4, _020D1F1C ; =0x027FFE48 + bl FS_SetArchiveProc + ldr r1, [r5, #0x0] + mvn r0, #0x0 + cmp r1, r0 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + cmp r1, #0x0 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r2, [r4, #0x0] + cmp r2, r0 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + cmp r2, #0x0 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + str r1, [sp, #0x0] + ldr r0, [r5, #0x4] + ldr r1, _020D1F20 ; =FSi_ReadRomCallback + str r0, [sp, #0x4] + ldr r0, _020D1F0C ; =FSi_WriteDummyCallback + str r1, [sp, #0x8] + str r0, [sp, #0xc] + ldr r3, [r4, #0x4] + ldr r0, _020D1EF8 ; =0x021D5414 + mov r1, #0x0 + bl FS_LoadArchive + add sp, sp, #0x14 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020D1EE8: .word 0x021D5400 +_020D1EEC: .word 0x021D53FC +_020D1EF0: .word 0x021D5404 +_020D1EF4: .word 0x021D540C +_020D1EF8: .word 0x021D5414 +_020D1EFC: .word 0x02106830 +_020D1F00: .word 0x027FFC40 +_020D1F04: .word FSi_EmptyArchiveProc +_020D1F08: .word FSi_ReadDummyCallback +_020D1F0C: .word FSi_WriteDummyCallback +_020D1F10: .word 0x027FFE40 +_020D1F14: .word FSi_RomArchiveProc +_020D1F18: .word 0x00000602 +_020D1F1C: .word 0x027FFE48 +_020D1F20: .word FSi_ReadRomCallback + + arm_func_start FSi_EmptyArchiveProc +FSi_EmptyArchiveProc: ; 0x020D1F24 + mov r0, #0x4 + bx lr + + arm_func_start FSi_ReadDummyCallback +FSi_ReadDummyCallback: ; 0x020D1F2C + mov r0, #0x1 + bx lr + + arm_func_start FSi_RomArchiveProc +FSi_RomArchiveProc: ; 0x020D1F34 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r1, #0x1 + beq _020D1FA0 + cmp r1, #0x9 + beq _020D1F58 + cmp r1, #0xa + beq _020D1F7C + b _020D1FB0 +_020D1F58: + ldr r0, _020D1FC0 ; =0x021D53FC + ldr r0, [r0, #0x0] + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bl CARD_LockRom + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {lr} + bx lr +_020D1F7C: + ldr r0, _020D1FC0 ; =0x021D53FC + ldr r0, [r0, #0x0] + mov r0, r0, lsl #0x10 + mov r0, r0, lsr #0x10 + bl CARD_UnlockRom + add sp, sp, #0x4 + mov r0, #0x0 + ldmia sp!, {lr} + bx lr +_020D1FA0: + add sp, sp, #0x4 + mov r0, #0x4 + ldmia sp!, {lr} + bx lr +_020D1FB0: + mov r0, #0x8 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020D1FC0: .word 0x021D53FC + + arm_func_start FSi_WriteDummyCallback +FSi_WriteDummyCallback: ; 0x020D1FC4 + mov r0, #0x1 + bx lr + + arm_func_start FSi_ReadRomCallback +FSi_ReadRomCallback: ; 0x020D1FCC + stmdb sp!, {lr} + sub sp, sp, #0xc + ldr ip, _020D2010 ; =FSi_OnRomReadDone + mov lr, r1 + str r12, [sp, #0x0] + str r0, [sp, #0x4] + mov r1, #0x1 + ldr r0, _020D2014 ; =0x021D5400 + str r1, [sp, #0x8] + mov r1, r2 + ldr r0, [r0, #0x0] + mov r2, lr + bl CARDi_ReadRom + mov r0, #0x6 + add sp, sp, #0xc + ldmia sp!, {lr} + bx lr + .balign 4 +_020D2010: .word FSi_OnRomReadDone +_020D2014: .word 0x021D5400 + + arm_func_start FSi_OnRomReadDone +FSi_OnRomReadDone: ; 0x020D2018 + stmdb sp!, {r4,lr} + mov r4, r0 + bl CARD_IsPulledOut +_020D2024: + cmp r0, #0x0 + movne r1, #0x5 + moveq r1, #0x0 + mov r0, r4 + bl FS_NotifyArchiveAsyncEnd + ldmia sp!, {r4,lr} + bx lr + + + arm_func_start FS_UnloadOverlay +FS_UnloadOverlay: ; 0x020D2040 + stmdb sp!, {lr} + sub sp, sp, #0x2c + mov r3, r0 + mov r2, r1 + add r0, sp, #0x0 + mov r1, r3 + bl FS_LoadOverlayInfo +_020D205C: + cmp r0, #0x0 + beq _020D2074 + add r0, sp, #0x0 + bl FS_UnloadOverlayImage + cmp r0, #0x0 + bne _020D2084 +_020D2074: + add sp, sp, #0x2c + mov r0, #0x0 + ldmfd sp!, {lr} + bx lr +_020D2084: + mov r0, #0x1 + add sp, sp, #0x2c + ldmfd sp!, {lr} + bx lr + + arm_func_start FS_LoadOverlay +FS_LoadOverlay: ; 0x020D2094 + stmdb sp!, {lr} + sub sp, sp, #0x2c + mov r3, r0 + mov r2, r1 + add r0, sp, #0x0 + mov r1, r3 + bl FS_LoadOverlayInfo +_020D20B0: + cmp r0, #0x0 + beq _020D20C8 + add r0, sp, #0x0 + bl FS_LoadOverlayImage + cmp r0, #0x0 + bne _020D20D8 +_020D20C8: + add sp, sp, #0x2c + mov r0, #0x0 + ldmfd sp!, {lr} + bx lr +_020D20D8: + add r0, sp, #0x0 + bl FS_StartOverlay + mov r0, #0x1 + add sp, sp, #0x2c + ldmfd sp!, {lr} + bx lr + + arm_func_start FS_UnloadOverlayImage +FS_UnloadOverlayImage: ; 0x020D20F0 + stmdb sp!, {lr} + sub sp, sp, #0x4 + bl FS_EndOverlay + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + + arm_func_start FS_EndOverlay +FS_EndOverlay: ; 0x020D210C + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + ldr r8, _020D220C ; =0x021D74C8 + mov r11, r0 + mov r9, #0x0 +_020D2120: + ldr r1, [r11, #0x8] + ldr r0, [r11, #0xc] + ldr r5, [r11, #0x4] + add r0, r1, r0 + mov r7, r9 + mov r6, r9 + add r4, r5, r0 + bl OS_DisableInterrupts + ldr lr, [r8, #0x0] + mov r10, r9 + mov r12, lr + cmp lr, #0x0 + beq _020D21C4 +_020D2154: + ldr r2, [r12, #0x8] + ldr r3, [r12, #0x0] + cmp r2, #0x0 + ldr r1, [r12, #0x4] + bne _020D2178 + cmp r1, r5 + blo _020D2178 + cmp r1, r4 + blo _020D2188 +_020D2178: + cmp r2, r5 + blo _020D21B4 + cmp r2, r4 + bhs _020D21B4 +_020D2188: + cmp r6, #0x0 + strne r12, [r6, #0x0] + moveq r7, r12 + cmp lr, r12 + streq r3, [r8, #0x0] + moveq lr, r3 + str r9, [r12, #0x0] + cmp r10, #0x0 + mov r6, r12 + strne r3, [r10, #0x0] + b _020D21B8 +_020D21B4: + mov r10, r12 +_020D21B8: + mov r12, r3 + cmp r3, #0x0 + bne _020D2154 +_020D21C4: + bl OS_RestoreInterrupts +_020D21C8: + cmp r7, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r11, lr} + bxeq lr +_020D21D8: + ldr r1, [r7, #0x4] + ldr r4, [r7] + cmp r1, #0x0 + beq _020D21F0 + ldr r0, [r7, #0x8] + blx r1 +_020D21F0: + mov r7, r4 + cmp r4, #0x0 + bne _020D21D8 + b _020D2120 + add sp, sp, #0x4 + ldmia sp!, {r4-r11, lr} + bx lr +_020D220C: .word 0x021D74C8 + + arm_func_start FS_StartOverlay +FS_StartOverlay: ; 0x020D2210 + stmdb sp!, {r4-r6,lr} + mov r5, r0 + bl FSi_GetOverlayBinarySize + ldr r1, _020D2300 ; =0x027FFC40 + mov r4, r0 + ldrh r0, [r1, #0x0] + cmp r0, #0x2 + bne _020D22A4 + ldrb r1, [r5, #0x1f] + mov r0, #0x0 + ands r1, r1, #0x2 + beq _020D2280 + ldr r1, _020D2304 ; =0x02106F84 + ldr r3, _020D2308 ; =0x02106F84 + ldr r2, _020D230C ; =0x66666667 + sub r12, r1, r3 + smull r1, lr, r2, r12 + mov lr, lr, asr #0x3 + mov r1, r12, lsr #0x1f + ldr r2, [r5, #0x0] + add lr, r1, lr + cmp r2, lr + bhs _020D2280 + mov r0, #0x14 + mla r0, r2, r0, r3 + ldr r1, [r5, #0x4] + mov r2, r4 + bl FSi_CompareDigest +_020D2280: + cmp r0, #0x0 + bne _020D22A4 + ldr r0, [r5, #0x4] + mov r2, r4 + mov r1, #0x0 + bl MI_CpuFill8 + bl OS_Terminate + ldmia sp!, {r4-r6,lr} + bx lr +_020D22A4: + ldrb r0, [r5, #0x1f] + ands r0, r0, #0x1 + beq _020D22BC + ldr r0, [r5, #0x4] + add r0, r0, r4 + bl MIi_UncompressBackward +_020D22BC: + ldr r0, [r5, #0x4] + ldr r1, [r5, #0x8] + bl DC_FlushRange + ldr r6, [r5, #0x10] + ldr r4, [r5, #0x14] + cmp r6, r4 + ldmcsia sp!, {r4-r6,lr} + bxcs lr +_020D22DC: + ldr r0, [r6, #0x0] + cmp r0, #0x0 + beq _020D22EC + blx r0 +_020D22EC: + add r6, r6, #0x4 + cmp r6, r4 + blo _020D22DC + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020D2300: .word 0x027FFC40 +_020D2304: .word 0x02106F84 +_020D2308: .word 0x02106F84 +_020D230C: .word 0x66666667 + + arm_func_start FSi_CompareDigest +FSi_CompareDigest: + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x58 + mov r4, r0 + mov r6, r1 + mov r5, r2 + add r0, sp, #0x4 + mov r1, #0x0 + mov r2, #0x14 + bl MI_CpuFill8 + ldr r0, _020D23AC ; =0x02106834 + ldr r1, _020D23B0 ; =0x02106838 + ldr r0, [r0, #0x0] + ldr r2, [r1, #0x0] + add r1, sp, #0x18 + bl MI_CpuCopy8 + ldr r3, _020D23B0 ; =0x02106838 + mov r1, r6 + ldr r12, [r3, #0x0] + mov r2, r5 + add r0, sp, #0x4 + add r3, sp, #0x18 + str r12, [sp, #0x0] + bl MATH_CalcHMACSHA1 + add r2, sp, #0x4 + mov r3, #0x0 +_020D2374: + ldr r1, [r2, #0x0] + ldr r0, [r4, r3] + cmp r1, r0 + bne _020D2394 + add r3, r3, #0x4 + cmp r3, #0x14 + add r2, r2, #0x4 + blo _020D2374 +_020D2394: + cmp r3, #0x14 + moveq r0, #0x1 + movne r0, #0x0 + add sp, sp, #0x58 + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020D23AC: .word 0x02106834 +_020D23B0: .word 0x02106838 + + arm_func_start FS_LoadOverlayImage +FS_LoadOverlayImage: ; 0x020D23B4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x54 + mov r5, r0 + add r0, sp, #0x8 + bl FS_InitFile +_020D23C8: + add r0, sp, #0x0 + mov r1, r5 + bl FS_GetOverlayFileID + add r1, sp, #0x0 + add r0, sp, #0x8 + ldmia r1, {r1, r2} + bl FS_OpenFileFast + cmp r0, #0x0 + addeq sp, sp, #0x54 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5, lr} + bxeq lr + mov r0, r5 + bl FSi_GetOverlayBinarySize + mov r4, r0 + mov r0, r5 + bl FS_ClearOverlayImage + ldr r1, [r5, #0x4] + add r0, sp, #0x8 + mov r2, r4 + bl FS_ReadFile + cmp r4, r0 + beq _020D243C + add r0, sp, #0x8 + bl FS_CloseFile + add sp, sp, #0x54 + mov r0, #0x0 + ldmia sp!, {r4-r5, lr} + bx lr +_020D243C: + add r0, sp, #0x8 + bl FS_CloseFile + mov r0, #0x1 + add sp, sp, #0x54 + ldmia sp!, {r4-r5, lr} + bx lr + + arm_func_start FS_LoadOverlayImageAsync +FS_LoadOverlayImageAsync: ; 0x020D2454 + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x8 + mov r5, r1 + mov r6, r0 + mov r0, r5 + bl FS_InitFile +_020D246C: + add r0, sp, #0x0 + mov r1, r6 + bl FS_GetOverlayFileID + add r1, sp, #0x0 + mov r0, r5 + ldmia r1, {r1, r2} + bl FS_OpenFileFast + cmp r0, #0x0 + addeq sp, sp, #0x8 + moveq r0, #0x0 + ldmeqia sp!, {r4-r6, lr} + bxeq lr + mov r0, r6 + bl FSi_GetOverlayBinarySize + mov r4, r0 + mov r0, r6 + bl FS_ClearOverlayImage + ldr r1, [r6, #0x4] + mov r0, r5 + mov r2, r4 + bl FS_ReadFileAsync + cmp r4, r0 + addeq sp, sp, #0x8 + moveq r0, #0x1 + ldmeqia sp!, {r4-r6, lr} + bxeq lr + mov r0, r5 + bl FS_CloseFile + mov r0, #0x0 + add sp, sp, #0x8 + ldmia sp!, {r4-r6, lr} + bx lr + + arm_func_start FS_LoadOverlayInfo +FS_LoadOverlayInfo: + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x64 + movs r4, r1 + mov r5, r0 + ldreq r0, _020D25EC ; =0x021D5404 + ldrne r0, _020D25F0 ; =0x021D540C + ldr r3, [r0, #0x0] + cmp r3, #0x0 + beq _020D25A8 + ldr r0, [r0, #0x4] + mov r2, r2, lsl #0x5 + cmp r2, r0 + addcs sp, sp, #0x64 + movcs r0, #0x0 + ldmcsia sp!, {r4-r5,lr} + bxcs lr + add r0, r3, r2 + mov r1, r5 + mov r2, #0x20 + bl MI_CpuCopy8 + add r0, sp, #0x18 + str r4, [r5, #0x20] + bl FS_InitFile + add r0, sp, #0x10 + mov r1, r5 + bl FS_GetOverlayFileID + add r1, sp, #0x10 + add r0, sp, #0x18 + ldmia r1, {r1-r2} + bl FS_OpenFileFast +_020D2564: + cmp r0, #0x0 + addeq sp, sp, #0x64 + moveq r0, #0x0 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldr r1, [sp, #0x3c] + add r0, sp, #0x18 + str r1, [r5, #0x24] + ldr r2, [sp, #0x40] + ldr r1, [sp, #0x3c] + sub r1, r2, r1 + str r1, [r5, #0x28] + bl FS_CloseFile + add sp, sp, #0x64 + mov r0, #0x1 + ldmia sp!, {r4-r5,lr} + bx lr +_020D25A8: + ldr r1, _020D25F4 ; =0x027FFE50 + ldr ip, _020D25F8 ; =0x027FFE58 + ldr r0, [r1, #0x0] + ldr r3, _020D25FC ; =0x021D5414 + str r0, [sp, #0x0] + ldr r1, [r1, #0x4] + mov r0, r5 + str r1, [sp, #0x4] + ldr r5, [r12, #0x0] + mov r1, r4 + str r5, [sp, #0x8] + ldr r4, [r12, #0x4] + str r4, [sp, #0xc] + bl FSi_LoadOverlayInfoCore + add sp, sp, #0x64 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020D25EC: .word 0x021D5404 +_020D25F0: .word 0x021D540C +_020D25F4: .word 0x027FFE50 +_020D25F8: .word 0x027FFE58 +_020D25FC: .word 0x021D5414 + + arm_func_start FSi_LoadOverlayInfoCore +FSi_LoadOverlayInfoCore: ; 0x020D2600 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x54 + movs r9, r1 + ldreq r5, [sp, #0x74] + ldreq r6, [sp, #0x70] + ldrne r5, [sp, #0x7c] + ldrne r6, [sp, #0x78] + mov r7, r2, lsl #0x5 + cmp r7, r5 + mov r4, r0 + mov r8, r3 + addcs sp, sp, #0x54 + movcs r0, #0x0 + ldmcsia sp!, {r4-r9,lr} + bxcs lr + add r0, sp, #0xc + bl FS_InitFile + mvn r12, #0x0 + add r0, sp, #0xc + mov r1, r8 + add r2, r6, r7 + add r3, r6, r5 + str r12, [sp, #0x0] + bl FS_OpenFileDirect +_020D2660: + cmp r0, #0 + addeq sp, sp, #0x54 + moveq r0, #0 + ldmeqia sp!, {r4-r9, lr} + bxeq lr + add r0, sp, #12 + mov r1, r4 + mov r2, #32 + bl FS_ReadFile + cmp r0, #32 + beq _020D26A4 + add r0, sp, #12 + bl FS_CloseFile + add sp, sp, #0x54 + mov r0, #0x0 + ldmia sp!, {r4-r9, lr} + bx lr +_020D26A4: + add r0, sp, #0xC + bl FS_CloseFile + add r0, sp, #0x4 + mov r1, r4 + str r9, [r4, #0x20] + bl FS_GetOverlayFileID + add r1, sp, #0x4 + add r0, sp, #0xC + ldmia r1, {r1, r2} + bl FS_OpenFileFast + cmp r0, #0x0 + addeq sp, sp, #0x54 + moveq r0, #0x0 + ldmeqia sp!, {r4-r9, lr} + bxeq lr + ldr r1, [sp, #0x30] + add r0, sp, #0xC + str r1, [r4, #0x24] + ldr r2, [sp, #0x34] + ldr r1, [sp, #0x30] + sub r1, r2, r1 + str r1, [r4, #0x28] + bl FS_CloseFile + mov r0, #0x1 + add sp, sp, #0x54 + ldmia sp!, {r4-r9, lr} + bx lr + + arm_func_start FS_GetOverlayFileID +FS_GetOverlayFileID: ; 0x020D2710 + sub sp, sp, #0x8 + ldr r2, _020D2734 ; =0x021D5414 + str r2, [sp, #0x0] + ldr r1, [r1, #0x18] + str r1, [sp, #0x4] + str r2, [r0, #0x0] + str r1, [r0, #0x4] + add sp, sp, #0x8 + bx lr + .balign 4 +_020D2734: .word 0x021D5414 + + arm_func_start FS_ClearOverlayImage +FS_ClearOverlayImage: ; 0x020D2738 + stmdb sp!, {r4-r6,lr} + ldr r5, [r0, #0x8] + ldr r1, [r0, #0xc] + ldr r6, [r0, #0x4] + add r4, r5, r1 + mov r0, r6 + mov r1, r4 + bl IC_InvalidateRange + mov r0, r6 + mov r1, r4 + bl DC_InvalidateRange + add r0, r6, r5 + sub r2, r4, r5 + mov r1, #0x0 + bl MI_CpuFill8 + ldmia sp!, {r4-r6,lr} + bx lr + + arm_func_start FSi_GetOverlayBinarySize +FSi_GetOverlayBinarySize: ; 0x020D277C + ldrb r1, [r0, #0x1f] + ands r1, r1, #0x1 + ldrne r0, [r0, #0x1c] + movne r0, r0, lsl #0x8 + movne r0, r0, lsr #0x8 + ldreq r0, [r0, #0x8] + bx lr + + arm_func_start ProcessBlock +ProcessBlock: ; 0x020D2798 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + add r3, r0, #0x18 + ldr r5, [r0, #0x0] + ldr r4, [r0, #0x4] + ldr lr, [r0, #0x8] + ldr r12, [r0, #0xc] + ldr r2, _020D2B78 ; =0x02106900 + mov r8, r3 + mov r7, #0x0 +_020D27C0: + mvn r1, r4 + and r6, r4, lr + and r1, r1, r12 + orr r1, r6, r1 + ldr r6, [r8, #0x0] + add r1, r5, r1 + ldr r5, [r2, #0x0] + add r1, r6, r1 + add r5, r5, r1 + mov r1, r5, lsl #0x7 + orr r1, r1, r5, lsr #0x19 + add r5, r4, r1 + mvn r1, r5 + and r6, r5, r4 + and r1, r1, lr + orr r1, r6, r1 + ldr r6, [r8, #0x4] + add r1, r12, r1 + ldr r9, [r2, #0x4] + add r1, r6, r1 + add r6, r9, r1 + mov r1, r6, lsl #0xc + orr r1, r1, r6, lsr #0x14 + add r12, r5, r1 + mvn r1, r12 + and r6, r12, r5 + and r1, r1, r4 + orr r6, r6, r1 + add r1, r8, #0xc + ldr r9, [r8, #0x8] + add r6, lr, r6 + add r6, r9, r6 + ldr r9, [r2, #0x8] + ldr r1, [r1, #0x0] + add r10, r9, r6 + add r6, r2, #0xc + ldr r6, [r6, #0x0] + mov r9, r10, lsl #0x11 + orr r9, r9, r10, lsr #0xf + add lr, r12, r9 + add r2, r2, #0x10 + add r8, r8, #0x10 + and r10, lr, r12 + mvn r9, lr + and r9, r9, r5 + orr r9, r10, r9 + add r4, r4, r9 + add r1, r1, r4 + add r4, r6, r1 + mov r1, r4, lsl #0x16 + orr r1, r1, r4, lsr #0xa + add r4, lr, r1 + add r7, r7, #0x1 + cmp r7, #0x4 + blt _020D27C0 + ldr r6, _020D2B7C ; =0x02106840 + mov r1, #0x0 +_020D28A4: + mvn r7, r12 + ldr r9, [r6, #0x0] + and r8, r4, r12 + and r7, lr, r7 + orr r7, r8, r7 + ldr r8, [r3, r9, lsl #0x2] + add r5, r5, r7 + ldr r7, [r2, #0x0] + add r5, r8, r5 + add r7, r7, r5 + mov r5, r7, lsl #0x5 + orr r5, r5, r7, lsr #0x1b + add r5, r4, r5 + mvn r8, lr + ldr r7, [r6, #0x4] + and r9, r5, lr + and r8, r4, r8 + orr r10, r9, r8 + mvn r8, r4 + ldr r9, [r6, #0x8] + ldr r11, [r3, r7, lsl #0x2] + add r7, r12, r10 + add r10, r11, r7 + add r7, r6, #0xc + ldr r9, [r3, r9, lsl #0x2] + and r8, r5, r8 + ldr r7, [r7, #0x0] + ldr r11, [r2, #0x4] + ldr r7, [r3, r7, lsl #0x2] + add r11, r11, r10 + mov r10, r11, lsl #0x9 + orr r10, r10, r11, lsr #0x17 + add r12, r5, r10 + ldr r10, [r2, #0x8] + and r11, r12, r4 + orr r8, r11, r8 + add r8, lr, r8 + add r8, r9, r8 + add r10, r10, r8 + add r8, r2, #0xc + ldr r8, [r8, #0x0] + mov r9, r10, lsl #0xe + orr r9, r9, r10, lsr #0x12 + add lr, r12, r9 + add r2, r2, #0x10 + add r6, r6, #0x10 + and r10, lr, r5 + mvn r9, r5 + and r9, r12, r9 + orr r9, r10, r9 + add r4, r4, r9 + add r4, r7, r4 + add r7, r8, r4 + mov r4, r7, lsl #0x14 + orr r4, r4, r7, lsr #0xc + add r4, lr, r4 + add r1, r1, #0x1 + cmp r1, #0x4 + blt _020D28A4 + mov r7, #0x0 +_020D2994: + ldr r8, [r6, #0x0] + eor r1, r4, lr + eor r1, r12, r1 + add r1, r5, r1 + ldr r8, [r3, r8, lsl #0x2] + ldr r5, [r2, #0x0] + add r1, r8, r1 + add r5, r5, r1 + mov r1, r5, lsl #0x4 + orr r1, r1, r5, lsr #0x1c + add r5, r4, r1 + ldr r8, [r6, #0x4] + eor r1, r5, r4 + eor r1, lr, r1 + ldr r8, [r3, r8, lsl #0x2] + add r1, r12, r1 + ldr r9, [r6, #0x8] + ldr r10, [r2, #0x4] + add r1, r8, r1 + add r8, r10, r1 + mov r1, r8, lsl #0xb + orr r1, r1, r8, lsr #0x15 + add r12, r5, r1 + eor r8, r12, r5 + eor r8, r4, r8 + ldr r9, [r3, r9, lsl #0x2] + add r8, lr, r8 + add r9, r9, r8 + ldr r10, [r2, #0x8] + add r1, r2, #0xc + ldr r8, [r6, #0xc] + add r10, r10, r9 + ldr r9, [r3, r8, lsl #0x2] + mov r8, r10, lsl #0x10 + orr r8, r8, r10, lsr #0x10 + add lr, r12, r8 + eor r8, lr, r12 + eor r8, r5, r8 + add r4, r4, r8 + add r7, r7, #0x1 + ldr r1, [r1, #0x0] + add r4, r9, r4 + add r4, r1, r4 + mov r1, r4, lsl #0x17 + orr r1, r1, r4, lsr #0x9 + add r2, r2, #0x10 + add r6, r6, #0x10 + add r4, lr, r1 + cmp r7, #0x4 + blt _020D2994 + mov r10, #0x0 +_020D2A60: + mvn r1, r12 + ldr r7, [r6, #0x0] + orr r1, r4, r1 + eor r1, lr, r1 + ldr r7, [r3, r7, lsl #0x2] + add r1, r5, r1 + ldr r5, [r2, #0x0] + add r1, r7, r1 + add r5, r5, r1 + mov r1, r5, lsl #0x6 + orr r1, r1, r5, lsr #0x1a + add r5, r4, r1 + mvn r1, lr + ldr r7, [r6, #0x4] + orr r1, r5, r1 + eor r1, r4, r1 + ldr r8, [r6, #0x8] + ldr r7, [r3, r7, lsl #0x2] + add r1, r12, r1 + ldr r9, [r2, #0x4] + add r1, r7, r1 + add r9, r9, r1 + mov r7, r9, lsl #0xa + add r1, r6, #0xc + orr r9, r7, r9, lsr #0x16 + ldr r1, [r1, #0x0] + add r7, r2, #0xc + add r12, r5, r9 + ldr r8, [r3, r8, lsl #0x2] + ldr r7, [r7, #0x0] + ldr r1, [r3, r1, lsl #0x2] + ldr r9, [r2, #0x8] + mvn r11, r4 + orr r11, r12, r11 + eor r11, r5, r11 + add r11, lr, r11 + add r8, r8, r11 + add r9, r9, r8 + mov r8, r9, lsl #0xf + orr r8, r8, r9, lsr #0x11 + add lr, r12, r8 + add r2, r2, #0x10 + add r6, r6, #0x10 + mvn r8, r5 + orr r8, lr, r8 + eor r8, r12, r8 + add r4, r4, r8 + add r1, r1, r4 + add r4, r7, r1 + mov r1, r4, lsl #0x15 + orr r1, r1, r4, lsr #0xb + add r4, lr, r1 + add r10, r10, #0x1 + cmp r10, #0x4 + blt _020D2A60 + ldr r1, [r0, #0x0] + add r1, r1, r5 + str r1, [r0, #0x0] + ldr r1, [r0, #0x4] + add r1, r1, r4 + str r1, [r0, #0x4] + ldr r1, [r0, #0x8] + add r1, r1, lr + str r1, [r0, #0x8] + ldr r1, [r0, #0xc] + add r1, r1, r12 + str r1, [r0, #0xc] + add sp, sp, #0x4 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020D2B78: .word 0x02106900 +_020D2B7C: .word 0x02106840 + + arm_func_start MATH_MD5GetHash +MATH_MD5GetHash: ; 0x020D2B80 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r6, r1 + ldr r1, [r6, #0x14] + ldr r3, [r6, #0x10] + mov r7, r0 + mov r4, r1, lsl #0x3 + ldr r1, _020D2C40 ; =0x0210683C + mov r0, r6 + mov r2, #0x1 + orr r4, r4, r3, lsr #0x1d + mov r5, r3, lsl #0x3 + bl MATH_MD5Update + ldr r0, [r6, #0x10] + mov r1, #0x0 + and r3, r0, #0x3f + rsb r2, r3, #0x40 + cmp r2, #0x8 + bhs _020D2BE8 + add r0, r6, #0x18 + add r0, r0, r3 + bl MI_CpuFill8 + mov r0, r6 + bl ProcessBlock + mov r3, #0x0 + mov r2, #0x40 +_020D2BE8: + cmp r2, #0x8 + bls _020D2C04 + add r0, r6, #0x18 + add r0, r0, r3 + sub r2, r2, #0x8 + mov r1, #0x0 + bl MI_CpuFill8 +_020D2C04: + str r5, [r6, #0x50] + mov r0, r6 + str r4, [r6, #0x54] + bl ProcessBlock + mov r0, r6 + mov r1, r7 + mov r2, #0x10 + bl MI_CpuCopy8 + mov r0, r6 + mov r1, #0x0 + mov r2, #0x58 + bl MI_CpuFill8 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr + .balign 4 +_020D2C40: .word 0x0210683C + + arm_func_start MATH_MD5Update +MATH_MD5Update: ; 0x020D2C44 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0x4 + mov r8, r0 + add r12, r8, #0x10 + ldr r4, [r8, #0x10] + mov r6, r2 + and r3, r4, #0x3f + ldr r0, [r12, #0x4] + adds r4, r4, r6 + str r4, [r8, #0x10] + adc r0, r0, #0x0 + rsb r5, r3, #0x40 + mov r7, r1 + str r0, [r12, #0x4] + cmp r5, r6 + bls _020D2CB0 + cmp r6, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + add r1, r8, #0x18 + mov r0, r7 + add r1, r1, r3 + bl MI_CpuCopy8 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr +_020D2CB0: + add r1, r8, #0x18 + mov r0, r7 + mov r2, r5 + add r1, r1, r3 + bl MI_CpuCopy8 + mov r0, r8 + bl ProcessBlock + sub r6, r6, r5 + mov r4, r6, lsr #0x6 + cmp r4, #0x0 + add r9, r7, r5 + ble _020D2D10 + add r7, r8, #0x18 + mov r5, #0x40 +_020D2CE8: + mov r0, r9 + mov r1, r7 + mov r2, r5 + bl MI_CpuCopy8 + mov r0, r8 + add r9, r9, #0x40 + bl ProcessBlock + sub r4, r4, #0x1 + cmp r4, #0x0 + bgt _020D2CE8 +_020D2D10: + ands r2, r6, #0x3f + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + mov r0, r9 + add r1, r8, #0x18 + bl MI_CpuCopy8 + add sp, sp, #0x4 + ldmia sp!, {r4-r9,lr} + bx lr + + arm_func_start MATH_MD5Init +MATH_MD5Init: ; 0x020D2D38 + ldr r2, _020D2D68 ; =0x67452301 + ldr r1, _020D2D6C ; =0xEFCDAB89 + str r2, [r0, #0x0] + ldr r2, _020D2D70 ; =0x98BADCFE + str r1, [r0, #0x4] + ldr r1, _020D2D74 ; =0x10325476 + str r2, [r0, #0x8] + str r1, [r0, #0xc] + mov r1, #0x0 + str r1, [r0, #0x10] + str r1, [r0, #0x14] + bx lr + .balign 4 +_020D2D68: .word 0x67452301 +_020D2D6C: .word 0xEFCDAB89 +_020D2D70: .word 0x98BADCFE +_020D2D74: .word 0x10325476 + + arm_func_start MATH_CalcHMACSHA1 +MATH_CalcHMACSHA1: ; 0x020D2D78 + stmdb sp!, {r4-r8,lr} + sub sp, sp, #0xa0 + ldr lr, _020D2E00 ; =0x02106A04 + add r12, sp, #0x1c + mov r8, r0 + mov r7, r1 + mov r6, r2 + mov r5, r3 + mov r4, r12 + ldmia lr!, {r0-r3} + stmia r12!, {r0-r3} + ldmia lr, {r0-r2} + stmia r12, {r0-r2} + add lr, sp, #0x38 + add r12, sp, #0x8 + str lr, [sp, #0x24] + ldr lr, _020D2E04 ; =MATH_SHA1Init + str r12, [sp, #0x28] + ldr ip, _020D2E08 ; =MATH_SHA1Update + str lr, [sp, #0x2c] + ldr lr, _020D2E0C ; =MATH_SHA1GetHash + str r12, [sp, #0x30] + ldr r12, [sp, #0xb8] + str lr, [sp, #0x34] + str r12, [sp, #0x0] + mov r3, r5 + mov r0, r8 + mov r1, r7 + mov r2, r6 + str r4, [sp, #0x4] + bl MATHi_CalcHMAC + add sp, sp, #0xa0 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020D2E00: .word 0x02106A04 +_020D2E04: .word MATH_SHA1Init +_020D2E08: .word MATH_SHA1Update +_020D2E0C: .word MATH_SHA1GetHash + + arm_func_start MATH_SHA1GetHash +MATH_SHA1GetHash: ; 0x020D2E10 + stmdb sp!, {r0-r3} + stmdb sp!, {r4-r6,lr} + ldr r0, [sp, #0x10] + mov r6, r1 + ldr r3, [r0, #0x1c] + add r5, r0, #0x20 + ands r1, r3, #0x3 + mov r0, r3, asr #0x2 + moveq r1, #0x0 + streq r1, [r5, r0, lsl #0x2] + ldr r2, [sp, #0x10] + mov r1, #0x80 + add r4, r2, #0x20 + strb r1, [r4, r3] + add r3, r3, #0x1 + ands r1, r3, #0x3 + beq _020D2E68 + mov r2, #0x0 +_020D2E58: + strb r2, [r4, r3] + add r3, r3, #0x1 + ands r1, r3, #0x3 + bne _020D2E58 +_020D2E68: + ldr r1, [sp, #0x10] + add r0, r0, #0x1 + ldr r1, [r1, #0x1c] + cmp r1, #0x38 + blt _020D2EB4 + cmp r0, #0x10 + bge _020D2E98 + mov r1, #0x0 +_020D2E88: + str r1, [r5, r0, lsl #0x2] + add r0, r0, #0x1 + cmp r0, #0x10 + blt _020D2E88 +_020D2E98: + ldr r1, _020D3008 ; =0x02106A00 + ldr r0, [sp, #0x10] + ldr r3, [r1, #0x0] + mov r1, r5 + mov r2, #0x40 + blx r3 + mov r0, #0x0 +_020D2EB4: + cmp r0, #0xe + bge _020D2ED0 + mov r1, #0x0 +_020D2EC0: + str r1, [r5, r0, lsl #0x2] + add r0, r0, #0x1 + cmp r0, #0xe + blt _020D2EC0 +_020D2ED0: + ldr r0, [sp, #0x10] + mov r1, r5 + ldr r2, [r0, #0x14] + ldr r3, _020D3008 ; =0x02106A00 + strb r2, [r4, #0x3f] + mov r0, r2, lsr #0x8 + strb r0, [r4, #0x3e] + mov r0, r2, lsr #0x10 + strb r0, [r4, #0x3d] + mov r0, r2, lsr #0x18 + strb r0, [r4, #0x3c] + ldr r0, [sp, #0x10] + mov r2, #0x40 + ldr r5, [r0, #0x18] + strb r5, [r4, #0x3b] + mov r0, r5, lsr #0x8 + strb r0, [r4, #0x3a] + mov r0, r5, lsr #0x10 + strb r0, [r4, #0x39] + mov r0, r5, lsr #0x18 + strb r0, [r4, #0x38] + ldr r0, [sp, #0x10] + ldr r3, [r3, #0x0] + blx r3 + ldr r0, [sp, #0x10] + add r1, sp, #0x10 + ldr r3, [r0, #0x0] + mov r0, #0x0 + mov r2, r3, lsr #0x18 + strb r2, [r6, #0x0] + mov r2, r3, lsr #0x10 + strb r2, [r6, #0x1] + mov r2, r3, lsr #0x8 + strb r2, [r6, #0x2] + strb r3, [r6, #0x3] + ldr r3, [sp, #0x10] + mov r2, #0x4 + ldr r4, [r3, #0x4] + mov r3, r4, lsr #0x18 + strb r3, [r6, #0x4] + mov r3, r4, lsr #0x10 + strb r3, [r6, #0x5] + mov r3, r4, lsr #0x8 + strb r3, [r6, #0x6] + strb r4, [r6, #0x7] + ldr r3, [sp, #0x10] + ldr r4, [r3, #0x8] + mov r3, r4, lsr #0x18 + strb r3, [r6, #0x8] + mov r3, r4, lsr #0x10 + strb r3, [r6, #0x9] + mov r3, r4, lsr #0x8 + strb r3, [r6, #0xa] + strb r4, [r6, #0xb] + ldr r3, [sp, #0x10] + ldr r4, [r3, #0xc] + mov r3, r4, lsr #0x18 + strb r3, [r6, #0xc] + mov r3, r4, lsr #0x10 + strb r3, [r6, #0xd] + mov r3, r4, lsr #0x8 + strb r3, [r6, #0xe] + strb r4, [r6, #0xf] + ldr r3, [sp, #0x10] + ldr r4, [r3, #0x10] + mov r3, r4, lsr #0x18 + strb r3, [r6, #0x10] + mov r3, r4, lsr #0x10 + strb r3, [r6, #0x11] + mov r3, r4, lsr #0x8 + strb r3, [r6, #0x12] + strb r4, [r6, #0x13] + ldr r3, [sp, #0x10] + str r0, [r3, #0x1c] + bl MIi_CpuClear32 + ldmia sp!, {r4-r6,lr} + add sp, sp, #0x10 + bx lr + .balign 4 +_020D3008: .word 0x02106A00 + + arm_func_start MATH_SHA1Update +MATH_SHA1Update: ; 0x020D300C + stmdb sp!, {r4-r8,lr} + mov r8, r0 + movs r6, r2 + mov r7, r1 + add r5, r8, #0x20 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + ldr r0, [r8, #0x14] + add r1, r0, r6, lsl #0x3 + cmp r1, r0 + ldrcc r0, [r8, #0x18] + addcc r0, r0, #0x1 + strcc r0, [r8, #0x18] + ldr r0, [r8, #0x18] + add r0, r0, r6, lsr #0x1d + str r0, [r8, #0x18] + str r1, [r8, #0x14] + ldr r1, [r8, #0x1c] + cmp r1, #0x0 + beq _020D30CC + add r0, r1, r6 + cmp r0, #0x40 + blo _020D30A8 + rsb r4, r1, #0x40 + mov r0, r7 + mov r2, r4 + add r1, r5, r1 + bl MI_CpuCopy8 + ldr r1, _020D3164 ; =0x02106A00 + mov r0, r8 + ldr r3, [r1, #0x0] + mov r1, r5 + mov r2, #0x40 + sub r6, r6, r4 + add r7, r7, r4 + blx r3 + mov r0, #0x0 + str r0, [r8, #0x1c] + b _020D30CC +_020D30A8: + mov r0, r7 + mov r2, r6 + add r1, r5, r1 + bl MI_CpuCopy8 + ldr r0, [r8, #0x1c] + add r0, r0, r6 + str r0, [r8, #0x1c] + ldmia sp!, {r4-r8,lr} + bx lr +_020D30CC: + cmp r6, #0x40 + blo _020D313C + bic r4, r6, #0x3f + sub r6, r6, r4 + ands r0, r7, #0x3 + bne _020D3104 + ldr r1, _020D3164 ; =0x02106A00 + mov r0, r8 + ldr r3, [r1, #0x0] + mov r1, r7 + mov r2, r4 + blx r3 + add r7, r7, r4 + b _020D313C +_020D3104: + mov r0, r7 + mov r1, r5 + mov r2, #0x40 + bl MI_CpuCopy8 + ldr r1, _020D3164 ; =0x02106A00 + mov r0, r8 + ldr r3, [r1, #0x0] + mov r1, r5 + mov r2, #0x40 + add r7, r7, #0x40 + blx r3 + sub r4, r4, #0x40 + cmp r4, #0x0 + bgt _020D3104 +_020D313C: + str r6, [r8, #0x1c] + cmp r6, #0x0 + ldmeqia sp!, {r4-r8,lr} + bxeq lr + mov r0, r7 + mov r1, r5 + mov r2, r6 + bl MI_CpuCopy8 + ldmia sp!, {r4-r8,lr} + bx lr + .balign 4 +_020D3164: .word 0x02106A00 + + arm_func_start MATH_SHA1Init +MATH_SHA1Init: ; 0x020D3168 + ldr r1, _020D31A4 ; =0x67452301 + ldr r2, _020D31A8 ; =0xEFCDAB89 + str r1, [r0, #0x0] + ldr r1, _020D31AC ; =0x98BADCFE + str r2, [r0, #0x4] + ldr r2, _020D31B0 ; =0x10325476 + str r1, [r0, #0x8] + ldr r1, _020D31B4 ; =0xC3D2E1F0 + str r2, [r0, #0xc] + str r1, [r0, #0x10] + mov r1, #0x0 + str r1, [r0, #0x14] + str r1, [r0, #0x18] + str r1, [r0, #0x1c] + bx lr + .balign 4 +_020D31A4: .word 0x67452301 +_020D31A8: .word 0xEFCDAB89 +_020D31AC: .word 0x98BADCFE +_020D31B0: .word 0x10325476 +_020D31B4: .word 0xC3D2E1F0 + + arm_func_start MATHi_CalcHMAC +MATHi_CalcHMAC: ; 0x020D31B8 + stmdb sp!, {r4-r9,lr} + sub sp, sp, #0xc4 + ldr r5, [sp, #0xe0] + ldr r4, [sp, #0xe4] + movs r9, r0 + mov r8, r1 + mov r7, r2 + mov r6, r3 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r8, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r7, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r6, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r5, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + cmp r4, #0x0 + addeq sp, sp, #0xc4 + ldmeqia sp!, {r4-r9,lr} + bxeq lr + ldr r0, [r4, #0x4] + cmp r5, r0 + ble _020D3278 + ldr r0, [r4, #0x8] + ldr r1, [r4, #0x10] + blx r1 + ldr r0, [r4, #0x8] + ldr r3, [r4, #0x14] + mov r1, r6 + mov r2, r5 + blx r3 + ldr r0, [r4, #0x8] + ldr r2, [r4, #0x18] + add r1, sp, #0x0 + blx r2 + ldr r5, [r4, #0x0] + add r6, sp, #0x0 +_020D3278: + cmp r5, #0x0 + mov r0, #0x0 + ble _020D32A0 + add r2, sp, #0x40 +_020D3288: + ldrb r1, [r6, r0] + add r0, r0, #0x1 + cmp r0, r5 + eor r1, r1, #0x36 + strb r1, [r2], #0x1 + blt _020D3288 +_020D32A0: + ldr r1, [r4, #0x4] + cmp r0, r1 + bge _020D32CC + add r1, sp, #0x40 + add r3, r1, r0 + mov r2, #0x36 +_020D32B8: + strb r2, [r3], #0x1 + ldr r1, [r4, #0x4] + add r0, r0, #0x1 + cmp r0, r1 + blt _020D32B8 +_020D32CC: + ldr r0, [r4, #0x8] + ldr r1, [r4, #0x10] + blx r1 + ldr r0, [r4, #0x8] + ldr r2, [r4, #0x4] + ldr r3, [r4, #0x14] + add r1, sp, #0x40 + blx r3 + ldr r0, [r4, #0x8] + ldr r3, [r4, #0x14] + mov r1, r8 + mov r2, r7 + blx r3 + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r4, #0x18] + blx r2 + cmp r5, #0x0 + mov r2, #0x0 + ble _020D3338 + add r1, sp, #0x80 +_020D3320: + ldrb r0, [r6, r2] + add r2, r2, #0x1 + cmp r2, r5 + eor r0, r0, #0x5c + strb r0, [r1], #0x1 + blt _020D3320 +_020D3338: + ldr r0, [r4, #0x4] + cmp r2, r0 + bge _020D3364 + add r0, sp, #0x80 + add r3, r0, r2 + mov r1, #0x5c +_020D3350: + strb r1, [r3], #0x1 + ldr r0, [r4, #0x4] + add r2, r2, #0x1 + cmp r2, r0 + blt _020D3350 +_020D3364: + ldr r0, [r4, #0x8] + ldr r1, [r4, #0x10] + blx r1 + ldr r0, [r4, #0x8] + ldr r2, [r4, #0x4] + ldr r3, [r4, #0x14] + add r1, sp, #0x80 + blx r3 + ldr r0, [r4, #0x8] + ldr r1, [r4, #0xc] + ldr r2, [r4, #0x0] + ldr r3, [r4, #0x14] + blx r3 + ldr r0, [r4, #0x8] + ldr r2, [r4, #0x18] + mov r1, r9 + blx r2 + add sp, sp, #0xc4 + ldmia sp!, {r4-r9,lr} + bx lr + .balign 4 +_020D33B4: .word 0x00FF00FF +_020D33B8: .word 0x5A827999 +_020D33BC: .word 0x6ED9EBA1 +_020D33C0: .word 0x8F1BBCDC +_020D33C4: .word 0xCA62C1D6 + + arm_func_start MATHi_SHA1ProcessBlock +MATHi_SHA1ProcessBlock: ; 0x020D33C8 + stmdb sp!, {r4-r12,lr} + ldmia r0, {r3,r9-r12} + sub sp, sp, #0x84 + str r2, [sp, #0x80] +_020D33D8: + ldr r8, _020D33B8 ; =0x5A827999 + ldr r7, _020D33B4 ; =0x00FF00FF + mov r6, sp + mov r5, #0x0 +_020D33E8: + ldr r4, [r1], #0x4 + add r2, r8, r12 + add r2, r2, r3, ror #0x1B + and lr, r4, r7 + and r4, r7, r4, ror #0x18 + orr r4, r4, lr, ror #0x8 + str r4, [r6, #0x40] + str r4, [r6], #0x4 + add r2, r2, r4 + eor r4, r10, r11 + and r4, r4, r9 + eor r4, r4, r11 + add r2, r2, r4 + mov r9, r9, ror #0x2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r5, r5, #0x4 + cmp r5, #0x40 + blt _020D33E8 + mov r7, #0x0 + mov r6, sp +_020D3448: + ldr r2, [r6, #0x0] + ldr r5, [r6, #0x8] + ldr r4, [r6, #0x20] + ldr lr, [r6, #0x34] + eor r2, r2, r5 + eor r4, r4, lr + eor r2, r2, r4 + mov r2, r2, ror #0x1F + str r2, [r6, #0x40] + str r2, [r6], #0x4 + add r2, r2, r12 + add r2, r2, r8 + add r2, r2, r3, ror #0x1B + eor r4, r10, r11 + and r4, r4, r9 + eor r4, r4, r11 + add r2, r2, r4 + mov r9, r9, ror #0x2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r7, r7, #0x4 + cmp r7, #0x10 + blt _020D3448 + ldr r8, _020D33BC ; =0x6ED9EBA1 + mov r7, #0x0 +_020D34B8: + ldr r2, [r6, #0x0] + ldr r4, [r6, #0x8] + ldr lr, [r6, #0x20] + ldr r5, [r6, #0x34] + eor r2, r2, r4 + eor lr, lr, r5 + eor r2, r2, lr + mov r2, r2, ror #0x1F + str r2, [r6, #0x40] + str r2, [r6], #0x4 + add r2, r2, r12 + add r2, r2, r8 + add r2, r2, r3, ror #0x1B + eor lr, r9, r10 + eor lr, lr, r11 + add r2, r2, lr + mov r9, r9, ror #0x2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r7, r7, #0x1 + cmp r7, #0xc + moveq r6, sp + cmp r7, #0x14 + blt _020D34B8 + ldr r8, _020D33C0 ; =0x8F1BBCDC + mov r7, #0x0 +_020D352C: + ldr r2, [r6, #0x0] + ldr lr, [r6, #0x8] + ldr r5, [r6, #0x20] + ldr r4, [r6, #0x34] + eor r2, r2, lr + eor r5, r5, r4 + eor r2, r2, r5 + mov r2, r2, ror #0x1F + str r2, [r6, #0x40] + str r2, [r6], #0x4 + add r2, r2, r12 + add r2, r2, r8 + add r2, r2, r3, ror #0x1B + orr r5, r9, r10 + and r5, r5, r11 + and r4, r9, r10 + orr r5, r5, r4 + add r2, r2, r5 + mov r9, r9, ror #0x2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r7, r7, #0x1 + cmp r7, #0x8 + moveq r6, sp + cmp r7, #0x14 + blt _020D352C + ldr r8, _020D33C4 ; =0xCA62C1D6 + mov r7, #0x0 +_020D35A8: + ldr r2, [r6, #0x0] + ldr r5, [r6, #0x8] + ldr r4, [r6, #0x20] + ldr lr, [r6, #0x34] + eor r2, r2, r5 + eor r4, r4, lr + eor r2, r2, r4 + mov r2, r2, ror #0x1F + str r2, [r6, #0x40] + str r2, [r6], #0x4 + add r2, r2, r12 + add r2, r2, r8 + add r2, r2, r3, ror #0x1B + eor r4, r9, r10 + eor r4, r4, r11 + add r2, r2, r4 + mov r9, r9, ror #0x2 + mov r12, r11 + mov r11, r10 + mov r10, r9 + mov r9, r3 + mov r3, r2 + add r7, r7, #0x1 + cmp r7, #0x4 + moveq r6, sp + cmp r7, #0x14 + blt _020D35A8 + ldmia r0, {r2,r4,r6-r7,lr} + add r3, r3, r2 + add r9, r9, r4 + add r10, r10, r6 + add r11, r11, r7 + add r12, r12, lr + stmia r0, {r3,r9-r12} + ldr lr, [sp, #0x80] + subs lr, lr, #0x40 + str lr, [sp, #0x80] + bgt _020D33D8 + add sp, sp, #0x84 + ldmia sp!, {r4-r12,pc} + + arm_func_start CP_SaveContext +CP_SaveContext: ; 0x020D3648 + ldr r1, _020D3684 ; =0x04000290 + stmdb sp!, {r4} + ldmia r1, {r2-r4,r12} + stmia r0!, {r2-r4,r12} + ldrh r12, [r1, #-0x10] + add r1, r1, #0x28 + ldmia r1, {r2-r3} + stmia r0!, {r2-r3} + and r12, r12, #0x3 + ldrh r2, [r1, #-0x8] + strh r12, [r0, #0x0] + and r2, r2, #0x1 + strh r2, [r0, #0x2] + ldmia sp!, {r4} + bx lr + .balign 4 +_020D3684: .word 0x04000290 + + arm_func_start CP_RestoreContext +CP_RestoreContext: ; 0x020D3688 + stmdb sp!, {r4} + ldr r1, _020D36C0 ; =0x04000290 + ldmia r0, {r2-r4,r12} + stmia r1, {r2-r4,r12} + ldrh r2, [r0, #0x18] + ldrh r3, [r0, #0x1a] + strh r2, [r1, #-0x10] + strh r3, [r1, #0x20] + add r0, r0, #0x10 + add r1, r1, #0x28 + ldmia r0, {r2-r3} + stmia r1, {r2-r3} + ldmia sp!, {r4} + bx lr + .balign 4 +_020D36C0: .word 0x04000290 + + arm_func_start TP_CheckError +TP_CheckError: ; 0x020D36C4 + ldr r1, _020D36D4 ; =0x021D5474 + ldrh r1, [r1, #0x34] + and r0, r1, r0 + bx lr + .balign 4 +_020D36D4: .word 0x021D5474 + + arm_func_start TP_WaitBusy +TP_WaitBusy: ; 0x020D36D8 + ldr r1, _020D36EC ; =0x021D5474 +_020D36DC: + ldrh r2, [r1, #0x36] + ands r2, r2, r0 + bne _020D36DC + bx lr + .balign 4 +_020D36EC: .word 0x021D5474 + + arm_func_start TP_GetCalibratedPoint +TP_GetCalibratedPoint: ; 0x020D36F0 + stmdb sp!, {r4-r6,lr} + ldr r2, _020D3818 ; =0x021D5474 + ldrh r2, [r2, #0x30] + cmp r2, #0x0 + bne _020D372C + ldrh r3, [r1, #0x0] + ldrh r2, [r1, #0x2] + strh r3, [r0, #0x0] + strh r2, [r0, #0x2] + ldrh r2, [r1, #0x4] + ldrh r1, [r1, #0x6] + strh r2, [r0, #0x4] + strh r1, [r0, #0x6] + ldmia sp!, {r4-r6,lr} + bx lr +_020D372C: + ldrh r3, [r1, #0x4] + ldr r2, _020D381C ; =0x021D548C + strh r3, [r0, #0x4] + ldrh r3, [r1, #0x6] + strh r3, [r0, #0x6] + ldrh r3, [r1, #0x4] + cmp r3, #0x0 + moveq r1, #0x0 + streqh r1, [r0, #0x0] + streqh r1, [r0, #0x2] + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldrh r4, [r1, #0x0] + ldr r3, [r2, #0x0] + ldr lr, [r2, #0x8] + mov r12, r4, lsl #0x2 + mov r4, r12, asr #0x1f + subs r12, r12, r3 + sbc r3, r4, r3, asr #0x1f + umull r6, r5, lr, r12 + mla r5, lr, r3, r5 + mov r3, lr, asr #0x1f + mla r5, r3, r12, r5 + mov r3, r6, lsr #0x16 + orr r3, r3, r5, lsl #0xa + strh r3, [r0, #0x0] + ldrsh r3, [r0, #0x0] + cmp r3, #0x0 + movlt r3, #0x0 + strlth r3, [r0, #0x0] + blt _020D37B4 + cmp r3, #0xff + movgt r3, #0xff + strgth r3, [r0, #0x0] +_020D37B4: + ldrh r3, [r1, #0x2] + ldr r1, [r2, #0xc] + ldr r12, [r2, #0x14] + mov r3, r3, lsl #0x2 + mov r2, r3, asr #0x1f + subs r3, r3, r1 + sbc r1, r2, r1, asr #0x1f + umull r4, lr, r12, r3 + mla lr, r12, r1, lr + mov r1, r12, asr #0x1f + mla lr, r1, r3, lr + mov r1, r4, lsr #0x16 + orr r1, r1, lr, lsl #0xa + strh r1, [r0, #0x2] + ldrsh r1, [r0, #0x2] + cmp r1, #0x0 + movlt r1, #0x0 + strlth r1, [r0, #0x2] + ldmltia sp!, {r4-r6,lr} + bxlt lr + cmp r1, #0xbf + movgt r1, #0xbf + strgth r1, [r0, #0x2] + ldmia sp!, {r4-r6,lr} + bx lr + .balign 4 +_020D3818: .word 0x021D5474 +_020D381C: .word 0x021D548C + + arm_func_start TP_CalcCalibrateParam +TP_CalcCalibrateParam: + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x4 + mov r6, r1 + mov r7, r0 + mov r5, r2 + mov r4, r3 + cmp r6, #0x1000 + bhs _020D3860 + cmp r5, #0x1000 + bhs _020D3860 + ldrh r8, [sp, #0x2c] + cmp r8, #0x1000 + bhs _020D3860 + ldrh r3, [sp, #0x30] + cmp r3, #0x1000 + blo _020D3870 +_020D3860: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D3870: + cmp r4, #0x100 + bhs _020D389C + ldrh r2, [sp, #0x34] + cmp r2, #0x100 + bhs _020D389C + ldrh r1, [sp, #0x28] + cmp r1, #0xc0 + bhs _020D389C + ldrh r0, [sp, #0x38] + cmp r0, #0xc0 + blo _020D38AC +_020D389C: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D38AC: + cmp r4, r2 + beq _020D38CC + cmp r1, r0 + beq _020D38CC + cmp r6, r8 + beq _020D38CC + cmp r5, r3 + bne _020D38DC +_020D38CC: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D38DC: + bl OS_DisableInterrupts + ldrh r1, [sp, #0x2c] + ldr r3, _020D3A80 ; =0x04000280 + ldr fp, _020D3A84 ; =0x04000290 + str r1, [sp, #0x0] + ldr r2, [sp, #0x0] + ldrh r1, [sp, #0x34] + sub r9, r6, r2 + mov r2, #0x0 + mov r12, r9, lsl #0x8 + strh r2, [r3, #0x0] + str r12, [r11, #0x0] + ldrh r8, [sp, #0x30] + ldrh r10, [sp, #0x38] + ldrh r9, [sp, #0x28] + ldr fp, _020D3A88 ; =0x04000298 + sub r12, r4, r1 + str r12, [r11, #0x0] + str r2, [r11, #0x4] + sub r11, r5, r8 + sub r2, r9, r10 +_020D3930: + ldrh r12, [r3, #0x0] + ands r12, r12, #0x8000 + bne _020D3930 + ldr ip, _020D3A8C ; =0x040002A0 + mov r11, r11, lsl #0x8 + ldr lr, [r12, #0x0] + mov r12, #0x0 + strh r12, [r3, #0x0] + ldr r3, _020D3A84 ; =0x04000290 + cmp lr, #0x8000 + str r11, [r3, #0x0] + ldr r3, _020D3A88 ; =0x04000298 + str r2, [r3, #0x0] + mov r2, r3 + str r12, [r2, #0x4] + bge _020D3980 + mov r2, #0x8000 + rsb r2, r2, #0x0 + cmp lr, r2 + bge _020D3994 +_020D3980: + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D3994: + strh lr, [r7, #0x4] + ldrsh r11, [r7, #0x4] + add r3, r4, r1 + ldr r1, [sp, #0x0] + add r4, r6, r1 + mul r1, r11, r3 + mov r3, r4, lsl #0x8 + sub r1, r3, r1 + mov r1, r1, lsl #0x9 + mov r1, r1, asr #0x10 + cmp r1, #0x8000 + bge _020D39CC + cmp r1, r2 + bge _020D39E0 +_020D39CC: + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D39E0: + ldr r2, _020D3A80 ; =0x04000280 + strh r1, [r7, #0x0] +_020D39E8: + ldrh r1, [r2, #0x0] + ands r1, r1, #0x8000 + bne _020D39E8 + ldr r1, _020D3A8C ; =0x040002A0 + ldr r4, [r1, #0x0] + bl OS_RestoreInterrupts + cmp r4, #0x8000 + bge _020D3A18 + mov r0, #0x8000 + rsb r1, r0, #0x0 + cmp r4, r1 + bge _020D3A28 +_020D3A18: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D3A28: + strh r4, [r7, #0x6] + ldrsh r2, [r7, #0x6] + add r0, r9, r10 + add r3, r5, r8 + mul r0, r2, r0 + mov r2, r3, lsl #0x8 + sub r0, r2, r0 + mov r0, r0, lsl #0x9 + mov r0, r0, asr #0x10 + cmp r0, #0x8000 + bge _020D3A5C + cmp r0, r1 + bge _020D3A6C +_020D3A5C: + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r11,lr} + bx lr +_020D3A6C: + strh r0, [r7, #0x2] + mov r0, #0x0 + add sp, sp, #0x4 + ldmia sp!, {r4-r11,lr} + bx lr + .balign 4 +_020D3A80: .word 0x04000280 +_020D3A84: .word 0x04000290 +_020D3A88: .word 0x04000298 +_020D3A8C: .word 0x040002A0 + + arm_func_start TP_GetLatestIndexInAuto +TP_GetLatestIndexInAuto: ; 0x020D3A90 + ldr r0, _020D3A9C ; =0x021D5474 + ldrh r0, [r0, #0xc] + bx lr + .balign 4 +_020D3A9C: .word 0x021D5474 + + arm_func_start TP_GetLatestRawPointInAuto +TP_GetLatestRawPointInAuto: ; 0x020D3AA0 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r1, #0x3 + ldr lr, _020D3C10 ; =0x021D5474 + strh r1, [r0, #0x6] + ldrh r1, [lr, #0xe] + ldrh r3, [lr, #0xc] + cmp r1, #0x1 + beq _020D3AD0 + ldrh r1, [lr, #0x14] + cmp r1, #0x1 + bne _020D3B0C +_020D3AD0: + ldr r1, _020D3C10 ; =0x021D5474 + mov r2, r3, lsl #0x3 + ldr r1, [r1, #0x10] + add sp, sp, #0x4 + add r3, r1, r3, lsl #0x3 + ldrh r2, [r1, r2] + ldrh r1, [r3, #0x2] + strh r2, [r0, #0x0] + strh r1, [r0, #0x2] + ldrh r2, [r3, #0x4] + ldrh r1, [r3, #0x6] + strh r2, [r0, #0x4] + strh r1, [r0, #0x6] + ldmia sp!, {r4-r5,lr} + bx lr +_020D3B0C: + add r1, r0, #0x6 + mov r12, #0x0 + b _020D3BE0 +_020D3B18: + subs r5, r3, r12 + ldr r2, [lr, #0x10] + addmi r5, r5, r4 + add r2, r2, r5, lsl #0x3 + ldrh r4, [r2, #0x4] + cmp r4, #0x0 + bne _020D3B60 + ldrh r3, [r2, #0x0] + ldrh r1, [r2, #0x2] + add sp, sp, #0x4 + strh r3, [r0, #0x0] + strh r1, [r0, #0x2] + ldrh r3, [r2, #0x4] + ldrh r1, [r2, #0x6] + strh r3, [r0, #0x4] + strh r1, [r0, #0x6] + ldmia sp!, {r4-r5,lr} + bx lr +_020D3B60: + ldrh r4, [r0, #0x6] + ands r4, r4, #0x1 + beq _020D3B90 + ldrh r4, [r2, #0x6] + ands r4, r4, #0x1 + bne _020D3B90 + ldrh r4, [r2, #0x0] + cmp r12, #0x0 + strh r4, [r0, #0x0] + ldrneh r4, [r1, #0x0] + bicne r4, r4, #0x1 + strneh r4, [r1, #0x0] +_020D3B90: + ldrh r4, [r0, #0x6] + ands r4, r4, #0x2 + beq _020D3BC0 + ldrh r4, [r2, #0x6] + ands r4, r4, #0x2 + bne _020D3BC0 + ldrh r2, [r2, #0x2] + cmp r12, #0x0 + strh r2, [r0, #0x2] + ldrneh r2, [r1, #0x0] + bicne r2, r2, #0x2 + strneh r2, [r1, #0x0] +_020D3BC0: + ldrh r2, [r0, #0x6] + cmp r2, #0x0 + moveq r1, #0x1 + streqh r1, [r0, #0x4] + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + add r12, r12, #0x1 +_020D3BE0: + ldrh r2, [lr, #0xe] + cmp r12, r2 + bge _020D3BFC + ldrh r4, [lr, #0x14] + sub r2, r4, #0x1 + cmp r12, r2 + blt _020D3B18 +_020D3BFC: + mov r1, #0x1 + strh r1, [r0, #0x4] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020D3C10: .word 0x021D5474 + + arm_func_start TP_RequestAutoSamplingStopAsync +TP_RequestAutoSamplingStopAsync: ; 0x020D3C14 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + mov r4, r0 + ldr r1, _020D3CB0 ; =0x03000200 + mov r0, #0x6 + mov r2, #0x0 + bl PXI_SendWordByFifo +_020D3C30: + cmp r0, #0x0 + movge r0, #0x1 + movlt r0, #0x0 + cmp r0, #0x0 + bne _020D3C84 + mov r0, r4 + bl OS_RestoreInterrupts + ldr r0, _020D3CB4 + ldrh r1, [r0, #0x34] + ldr r3, [r0] + orr r1, r1, #0x4 + strh r1, [r0, #0x34] + cmp r3, #0x0 + ldmeqia sp!, {r4, lr} + bxeq lr + mov r0, #0x2 + mov r1, #0x4 + mov r2, #0x0 + blx r3 + ldmia sp!, {r4, lr} + bx lr +_020D3C84: + ldr r1, _020D3CB4 + mov r0, r4 + ldrh r2, [r1, #0x36] + orr r2, r2, #0x4 + strh r2, [r1, #0x36] + ldrh r2, [r1, #0x34] + bic r2, r2, #0x4 + strh r2, [r1, #0x34] + bl OS_RestoreInterrupts + ldmia sp!, {r4, lr} + bx lr +_020D3CB0: .word 0x03000200 +_020D3CB4: .word 0x021D5474 + + arm_func_start TP_RequestAutoSamplingStartAsync +TP_RequestAutoSamplingStartAsync: ; 0x020D3CB8 + stmdb sp!, {r4-r6,lr} + ldr r4, _020D3DC0 ; =0x021D5474 + mov r5, r1 + mov r12, #0x0 + mov r6, r0 + str r2, [r4, #0x10] + strh r12, [r4, #0xc] + strh r5, [r4, #0xe] + strh r3, [r4, #0x14] + cmp r3, #0x0 + bls _020D3D00 + mov r1, r12 +_020D3CE8: + ldr r0, [r4, #0x10] + add r0, r0, r12, lsl #0x3 + add r12, r12, #0x1 + strh r1, [r0, #0x4] + cmp r12, r3 + blo _020D3CE8 +_020D3D00: + bl OS_DisableInterrupts + mov r4, r0 + ldr r0, _020D3DC4 ; =0x02000100 + and r1, r5, #0xff + orr r1, r1, r0 + mov r0, #0x6 + mov r2, #0x0 + bl PXI_SendWordByFifo +_020D3D20: + cmp r0, #0x0 + movlt r0, #0x0 + blt _020D3D4C + ldr r1, _020D3DC8 + mov r0, #0x6 + orr r1, r6, r1 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movlt r0, #0x0 + movge r0, #0x1 +_020D3D4C: + ands r0, r0, #0xFF + bne _020D3D94 + mov r0, r4 + bl OS_RestoreInterrupts + ldr r0, _020D3DC0 + ldrh r1, [r0, #0x34] + ldr r3, [r0] + orr r1, r1, #0x2 + strh r1, [r0, #0x34] + cmp r3, #0x0 + ldmeqia sp!, {r4-r6, lr} + bxeq lr + mov r0, #0x1 + mov r1, #0x4 + mov r2, #0x0 + blx r3 + ldmia sp!, {r4-r6, lr} + bx lr +_020D3D94: + ldr r1, _020D3DC0 + mov r0, r4 + ldrh r2, [r1, #0x36] + orr r2, r2, #0x2 + strh r2, [r1, #0x36] + ldrh r2, [r1, #0x34] + bic r2, r2, #0x2 + strh r2, [r1, #0x34] + bl OS_RestoreInterrupts + ldmia sp!, {r4-r6, lr} + bx lr +_020D3DC0: .word 0x021D5474 +_020D3DC4: .word 0x02000100 +_020D3DC8: .word 0x01010000 + + arm_func_start TP_WaitRawResult +TP_WaitRawResult: ; 0x020D3DCC + stmdb sp!, {r4,lr} + mov r4, r0 + mov r0, #0x1 + bl TP_WaitBusy + ldr r1, _020D3E20 ; =0x021D5474 + ldrh r0, [r1, #0x34] + ands r0, r0, #0x1 + movne r0, #0x1 + ldmneia sp!, {r4,lr} + bxne lr + ldrh r3, [r1, #0x4] + ldrh r2, [r1, #0x6] + mov r0, #0x0 + strh r3, [r4, #0x0] + strh r2, [r4, #0x2] + ldrh r2, [r1, #0x8] + ldrh r1, [r1, #0xa] + strh r2, [r4, #0x4] + strh r1, [r4, #0x6] + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020D3E20: .word 0x021D5474 + + arm_func_start TP_RequestSamplingAsync +TP_RequestSamplingAsync: ; 0x020D3E24 + stmdb sp!, {r4,lr} + bl OS_DisableInterrupts + mov r4, r0 + mov r0, #0x6 + mov r1, #0x3000000 + mov r2, #0x0 + bl PXI_SendWordByFifo +_020D3E40: + cmp r0, #0x0 + movge r0, #0x1 + movlt r0, #0x0 + cmp r0, #0x0 + bne _020D3E94 + mov r0, r4 + bl OS_RestoreInterrupts + ldr r0, _20D3EC0 + ldrh r1, [r0, #0x34] + ldr r3, [r0] + orr r1, r1, #0x1 + strh r1, [r0, #0x34] + cmp r3, #0x0 + ldmeqia sp!, {r4, lr} + bxeq lr + mov r0, #0x0 + mov r2, r0 + mov r1, #0x4 + blx r3 + ldmia sp!, {r4, lr} + bx lr +_020D3E94: + ldr r1, _20D3EC0 + mov r0, r4 + ldrh r2, [r1, #0x36] + orr r2, r2, #0x1 + strh r2, [r1, #0x36] + ldrh r2, [r1, #0x34] + bic r2, r2, #0x1 + strh r2, [r1, #0x34] + bl OS_RestoreInterrupts + ldmia sp!, {r4, lr} + bx lr +_20D3EC0: .word 0x021D5474 + + arm_func_start TP_SetCalibrateParam +TP_SetCalibrateParam: ; 0x020D3EC4 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + movs r4, r0 + ldreq r0, _020D3FF8 ; =0x021D5474 + moveq r1, #0x0 + streqh r1, [r0, #0x30] + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + bl OS_DisableInterrupts + ldrsh lr, [r4, #0x4] + cmp lr, #0x0 + beq _020D3F50 + ldr r5, _020D3FFC ; =0x04000280 + mov r12, #0x0 + ldr r2, _020D4000 ; =0x04000290 + strh r12, [r5, #0x0] + mov r3, #0x10000000 + ldr r1, _020D4004 ; =0x04000298 + str r3, [r2, #0x0] + str lr, [r1, #0x0] + str r12, [r1, #0x4] + ldrsh r2, [r4, #0x0] + ldr r1, _020D3FF8 ; =0x021D5474 + str r2, [r1, #0x18] + ldrsh r2, [r4, #0x4] + str r2, [r1, #0x1c] +_020D3F30: + ldrh r1, [r5, #0x0] + ands r1, r1, #0x8000 + bne _020D3F30 + ldr r2, _020D4008 ; =0x040002A0 + ldr r1, _020D3FF8 ; =0x021D5474 + ldr r2, [r2, #0x0] + str r2, [r1, #0x20] + b _020D3F64 +_020D3F50: + ldr r1, _020D3FF8 ; =0x021D5474 + mov r2, #0x0 + str r2, [r1, #0x18] + str r2, [r1, #0x1c] + str r2, [r1, #0x20] +_020D3F64: + ldrsh r5, [r4, #0x6] + cmp r5, #0x0 + beq _020D3FC8 + ldr ip, _020D3FFC ; =0x04000280 + mov lr, #0x0 + ldr r2, _020D4000 ; =0x04000290 + strh lr, [r12, #0x0] + mov r3, #0x10000000 + ldr r1, _020D4004 ; =0x04000298 + str r3, [r2, #0x0] + str r5, [r1, #0x0] + str lr, [r1, #0x4] + ldrsh r2, [r4, #0x2] + ldr r1, _020D3FF8 ; =0x021D5474 + str r2, [r1, #0x24] + ldrsh r2, [r4, #0x6] + str r2, [r1, #0x28] +_020D3FA8: + ldrh r1, [r12, #0x0] + ands r1, r1, #0x8000 + bne _020D3FA8 + ldr r2, _020D4008 ; =0x040002A0 + ldr r1, _020D3FF8 ; =0x021D5474 + ldr r2, [r2, #0x0] + str r2, [r1, #0x2c] + b _020D3FDC +_020D3FC8: + ldr r1, _020D3FF8 ; =0x021D5474 + mov r2, #0x0 + str r2, [r1, #0x24] + str r2, [r1, #0x28] + str r2, [r1, #0x2c] +_020D3FDC: + bl OS_RestoreInterrupts + ldr r0, _020D3FF8 ; =0x021D5474 + mov r1, #0x1 + strh r1, [r0, #0x30] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr + .balign 4 +_020D3FF8: .word 0x021D5474 +_020D3FFC: .word 0x04000280 +_020D4000: .word 0x04000290 +_020D4004: .word 0x04000298 +_020D4008: .word 0x040002A0 + + arm_func_start TP_GetUserInfo +TP_GetUserInfo: ; 0x020D400C + stmdb sp!, {r4-r6,lr} + sub sp, sp, #0x18 + ldr ip, _020D40B4 ; =0x027FFC80 + mov r4, r0 + ldrh r1, [r12, #0x58] + ldrh r2, [r12, #0x5a] + ldrb r3, [r12, #0x5c] + cmp r1, #0x0 + ldrb lr, [r12, #0x5d] + ldrh r6, [r12, #0x5e] + ldrh r5, [r12, #0x60] + ldrb r0, [r12, #0x62] + ldrb r12, [r12, #0x63] + bne _020D405C + cmp r6, #0x0 + bne _020D405C + cmp r2, #0x0 + bne _020D405C + cmp r5, #0x0 + beq _020D4080 +_020D405C: + str lr, [sp, #0x0] + str r6, [sp, #0x4] + str r5, [sp, #0x8] + str r0, [sp, #0xc] + mov r0, r4 + str r12, [sp, #0x10] + bl TP_CalcCalibrateParam +_020D4078: + cmp r0, #0 + beq _020D40A4 +_020D4080: + mov r0, #0x0 + strh r0, [r4, #0x0] + strh r0, [r4, #0x2] + strh r0, [r4, #0x4] + strh r0, [r4, #0x6] + add sp, sp, #0x18 + mov r0, #0x1 + ldmia sp!, {r4-r6,lr} + bx lr +_020D40A4: + mov r0, #0x1 + add sp, sp, #0x18 + ldmia sp!, {r4-r6,lr} + bx lr +_020D40B4: .word 0x027FFC80 + + arm_func_start TP_Init +TP_Init: ; 0x020D40B8 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r0, _020D413C ; =0x021D5470 + ldrh r1, [r0, #0x0] + cmp r1, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,lr} + bxne lr + mov r1, #0x1 + strh r1, [r0, #0x0] + bl PXI_Init + ldr r0, _020D4140 ; =0x021D5474 + mov r1, #0x0 + strh r1, [r0, #0x32] + strh r1, [r0, #0x36] + strh r1, [r0, #0xc] + str r1, [r0, #0x0] + str r1, [r0, #0x10] + strh r1, [r0, #0x30] + strh r1, [r0, #0x34] + mov r5, #0x6 + mov r4, #0x1 +_020D4110: + mov r0, r5 + mov r1, r4 + bl PXI_IsCallbackReady +_020D411C: + cmp r0, #0x0 + beq _020D4110 + ldr r1, _020D4144 + mov r0, #0x6 + bl PXI_SetFifoRecvCallback + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr +_020D413C: .word 0x021D5470 +_020D4140: .word 0x021D5474 +_020D4144: .word FUN_020D4148 + + arm_func_start FUN_020D4148 +FUN_020D4148: ; 0x020D4148 + stmdb sp!, {r4,lr} + sub sp, sp, #0x8 + mov r0, r1, lsl #0x10 + mov r3, r0, lsr #0x10 + and r0, r3, #0x7f00 + mov r0, r0, lsl #0x8 + cmp r2, #0x0 + mov r0, r0, lsr #0x10 + beq _020D41AC + ldr r1, _020D43FC ; =0x021D5474 + mov r2, #0x1 + ldrh r4, [r1, #0x34] + ldr r3, [r1, #0x0] + orr r2, r4, r2, lsl r0 + cmp r3, #0x0 + strh r2, [r1, #0x34] + addeq sp, sp, #0x8 + ldmeqia sp!, {r4,lr} + bxeq lr + mov r1, #0x4 + mov r2, #0x0 + blx r3 + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020D41AC: + cmp r0, #0x10 + bne _020D427C + ldr r1, _020D43FC ; =0x021D5474 + ldrh r3, [r1, #0xc] + ldrh r2, [r1, #0x14] + add r3, r3, #0x1 + strh r3, [r1, #0xc] + ldrh r3, [r1, #0xc] + cmp r3, r2 + movcs r2, #0x0 + strcsh r2, [r1, #0xc] + ldr r1, _020D4400 ; =0x027FFFAA + ldr r2, _020D43FC ; =0x021D5474 + ldrh r3, [r1, #0x0] + ldr r1, _020D4404 ; =0x027FFFAC + ldrh r12, [r2, #0xc] + strh r3, [sp, #0x0] + ldrh r1, [r1, #0x0] + ldr r4, [r2, #0x10] + mov lr, r12, lsl #0x3 + strh r1, [sp, #0x2] + ldr r3, [sp, #0x0] + add r1, r4, r12, lsl #0x3 + mov r3, r3, lsl #0x14 + mov r3, r3, lsr #0x14 + strh r3, [r4, lr] + ldr r3, [sp, #0x0] + mov r3, r3, lsl #0x8 + mov r3, r3, lsr #0x14 + strh r3, [r1, #0x2] + ldr r3, [sp, #0x0] + mov r3, r3, lsl #0x7 + mov r3, r3, lsr #0x1f + and r3, r3, #0xff + strh r3, [r1, #0x4] + ldr r3, [sp, #0x0] + mov r3, r3, lsl #0x5 + mov r3, r3, lsr #0x1e + and r3, r3, #0xff + strh r3, [r1, #0x6] + ldr r3, [r2, #0x0] + cmp r3, #0x0 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4,lr} + bxeq lr + ldrh r2, [r2, #0xc] + mov r1, #0x0 + and r2, r2, #0xff + blx r3 + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr +_020D427C: + ands r1, r1, #0x1000000 + addeq sp, sp, #0x8 + ldmeqia sp!, {r4,lr} + bxeq lr + and r1, r3, #0xff + cmp r1, #0x4 + addls pc, pc, r1, lsl #0x2 + b _020D43EC +_020D429C: + b _020D42B0 + b _020D43EC + b _020D4390 + b _020D4398 + b _020D4388 +_020D42B0: + cmp r0, #0x0 + beq _020D42D4 + cmp r0, #0x1 + beq _020D4338 + cmp r0, #0x2 + ldreq r1, _020D43FC + moveq r2, #0x0 + streqh r2, [r1, #0x32] + b _020D4344 +_020D42D4: + ldr r1, _020D4400 + ldr r3, _020D4404 + ldrh ip, [r1] + ldr r1, _020D43FC + mov r2, #0x0 + strh ip, [sp, #0x4] + ldrh r3, [r3] + strh r3, [sp, #0x6] + ldr ip, [sp, #0x4] + strh r2, [r1, #0x32] + mov r3, ip, lsl #0x7 + mov r2, ip, lsl #0x5 + mov lr, ip, lsl #0x14 + mov ip, ip, lsl #0x8 + mov r3, r3, lsr #0x1F + mov r2, r2, lsr #0x1E + mov lr, lr, lsr #0x14 + mov ip, ip, lsr #0x14 + and r3, r3, #0xFF + and r2, r2, #0xFF + strh lr, [r1, #0x4] + strh ip, [r1, #0x6] + strh r3, [r1, #0x8] + strh r2, [r1, #0xA] + b _020D4344 +_020D4338: + ldr r1, _020D43FC + mov r2, #0x2 + strh r2, [r1, #0x32] +_020D4344: + ldr r1, _020D43FC + mov r2, #0x1 + ldrh ip, [r1, #0x36] + mvn r2, r2, lsl r0 + ldr r3, [r1] + and r2, ip, r2 + cmp r3, #0x0 + strh r2, [r1, #0x36] + addeq sp, sp, #0x8 + ldmeqia sp!, {r4, lr} + bxeq lr + mov r1, #0x0 + mov r2, r1 + blx r3 + add sp, sp, #0x8 + ldmia sp!, {r4, lr} + bx lr +_020D4388: + mov r4, #0x3 + b _020D439C +_020D4390: + mov r4, #0x1 + b _020D439C +_020D4398: + mov r4, #0x2 +_020D439C: + ldr r1, _020D43FC + mov lr, #0x1 + ldrh ip, [r1, #0x34] + ldr r3, [r1] + mvn r2, lr, lsl r0 + orr ip, ip, lr, lsl r0 + strh ip, [r1, #0x34] + ldrh ip, [r1, #0x36] + cmp r3, #0x0 + addeq sp, sp, #0x8 + and r2, ip, r2 + strh r2, [r1, #0x36] + ldmeqia sp!, {r4, lr} + bxeq lr + and r1, r4, #0xff + mov r2, #0x0 + blx r3 + add sp, sp, #0x8 + ldmia sp!, {r4, lr} + bx lr +_020D43EC: + bl OS_Terminate + add sp, sp, #0x8 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020D43FC: .word 0x021D5474 +_020D4400: .word 0x027FFFAA +_020D4404: .word 0x027FFFAC + + arm_func_start MicWaitBusy +MicWaitBusy: ; 0x020D4408 + ldr ip, _020D441C ; =0x021D54B0 +_020D440C: + ldr r0, [r12, #0x0] + cmp r0, #0x1 + beq _020D440C + bx lr + .balign 4 +_020D441C: .word 0x021D54B0 + + arm_func_start MicGetResultCallback +MicGetResultCallback: ; 0x020D4420 + ldr r1, _020D442C ; =0x021D54B0 + str r0, [r1, #0xc] + bx lr + .balign 4 +_020D442C: .word 0x021D54B0 + + arm_func_start MicStopAutoSampling +MicStopAutoSampling: + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020D4460 ; =0x03004200 + mov r0, #0x9 + mov r2, #0x0 + bl PXI_SendWordByFifo +_020D4448: + cmp r0, #0x0 + movge r0, #0x1 + movlt r0, #0x0 + add sp, sp, #4 + ldmfd sp!, {lr} + bx lr +_020D4460: .word 0x03004200 + + arm_func_start MicStartAutoSampling +MicStartAutoSampling: ; 0x020D4464 + stmdb sp!, {r4-r6,lr} + ldr ip, _020D4584 ; =0x02004100 + mov r6, r0 + mov r5, r1 + mov r4, r2 + orr r1, r3, r12 + mov r0, #0x9 + mov r2, #0x0 + bl PXI_SendWordByFifo +_020D4488: + cmp r0, #0x0 + movlt r0, #0x0 + ldmltia sp!, {r4-r6, lr} + bxlt lr + mov r0, r6, lsr #0x10 + orr r1, r0, #0x10000 + mov r0, #0x9 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movlt r0, #0x0 + ldmltia sp!, {r4-r6, lr} + bxlt lr + ldr r1, _020D4588 + mov r0, #0x9 + and r1, r6, r1 + orr r1, r1, #0x20000 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movlt r0, #0x0 + ldmltia sp!, {r4-r6, lr} + bxlt lr + mov r0, r5, lsr #0x10 + orr r1, r0, #0x30000 + mov r0, #0x9 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movlt r0, #0x0 + ldmltia sp!, {r4-r6, lr} + bxlt lr + ldr r1, _020D4588 + mov r0, #0x9 + and r1, r5, r1 + orr r1, r1, #0x40000 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movlt r0, #0x0 + ldmltia sp!, {r4-r6, lr} + bxlt lr + mov r0, r4, lsr #0x10 + orr r1, r0, #0x50000 + mov r0, #0x9 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movlt r0, #0x0 + ldmltia sp!, {r4-r6, lr} + bxlt lr + ldr r0, _020D4588 + ldr r1, _020D458C + and r0, r4, r0 + orr r1, r0, r1 + mov r0, #0x9 + mov r2, #0x0 + bl PXI_SendWordByFifo + cmp r0, #0x0 + movge r0, #0x1 + movlt r0, #0x0 + ldmia sp!, {r4-r6, lr} + bx lr +_020D4584: .word 0x02004100 +_020D4588: .word 0x0000FFFF +_020D458C: .word 0x01060000 + + arm_func_start MicDoSampling +MicDoSampling: ; 0x020D4590 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020D45C4 ; =0x03004000 + mov r2, #0x0 + orr r1, r0, r1 + mov r0, #0x9 + bl PXI_SendWordByFifo +_020D45AC: + cmp r0, #0x0 + movge r0, #0x1 + movlt r0, #0x0 + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr +_020D45C4: .word 0x03004000 + + arm_func_start MicCommonCallback +MicCommonCallback: ; 0x020D45C8 + stmdb sp!, {r4,lr} + mov r4, r1 + cmp r2, #0x0 + beq _020D4610 + ldr r0, _020D4700 ; =0x021D54B0 + ldr r2, _020D4700 ; =0x021D54B0 + ldr r1, [r0, #0x0] + ldr r12, [r2, #0x4] + cmp r1, #0x0 + movne r1, #0x0 + strne r1, [r0, #0x0] + cmp r12, #0x0 + beq _020D4610 + ldr r1, [r2, #0x8] + mov r3, #0x0 + mov r0, #0x6 + str r3, [r2, #0x4] + blx r12 +_020D4610: + and r0, r4, #0xff + mov r1, r0, lsl #0x10 + and r2, r4, #0x7f00 + mov r0, r2, lsl #0x8 + mov r1, r1, lsr #0x10 + cmp r1, #0x4 + mov r2, r0, lsr #0x10 + addls pc, pc, r1, lsl #0x2 + b _020D4670 +_020D4634: + b _020D4648 + b _020D4650 + b _020D4658 + b _020D4660 + b _020D4668 +_020D4648: + mov r0, #0x0 + b _020D4674 +_020D4650: + mov r0, #0x4 + b _020D4674 +_020D4658: + mov r0, #0x2 + b _020D4674 +_020D4660: + mov r0, #0x5 + b _020D4674 +_020D4668: + mov r0, #0x1 + b _020D4674 +_020D4670: + mov r0, #0x6 +_020D4674: + cmp r2, #0x51 + bne _020D46A0 + ldr r1, _020D4700 ; =0x021D54B0 + ldr r2, [r1, #0x10] + cmp r2, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r1, [r1, #0x14] + blx r2 + ldmia sp!, {r4,lr} + bx lr +_020D46A0: + cmp r2, #0x40 + bne _020D46C0 + ldr r1, _020D4700 ; =0x021D54B0 + ldr r2, [r1, #0x18] + cmp r2, #0x0 + ldrne r1, _020D4704 ; =0x027FFF94 + ldrneh r1, [r1, #0x0] + strneh r1, [r2, #0x0] +_020D46C0: + ldr r1, _020D4700 ; =0x021D54B0 + ldr r2, [r1, #0x0] + cmp r2, #0x0 + movne r2, #0x0 + strne r2, [r1, #0x0] + ldr r2, _020D4700 ; =0x021D54B0 + ldr r4, [r2, #0x4] + cmp r4, #0x0 + ldmeqia sp!, {r4,lr} + bxeq lr + ldr r1, [r2, #0x8] + mov r3, #0x0 + str r3, [r2, #0x4] + blx r4 + ldmia sp!, {r4,lr} + bx lr + .balign 4 +_020D4700: .word 0x021D54B0 +_020D4704: .word 0x027FFF94 + + arm_func_start MIC_GetLastSamplingAddress +MIC_GetLastSamplingAddress: ; 0x020D4708 + ldr r0, _020D4714 ; =0x027FFF90 + ldr r0, [r0, #0x0] + bx lr + .balign 4 +_020D4714: .word 0x027FFF90 + + arm_func_start MIC_StopAutoSampling +MIC_StopAutoSampling: ; 0x020D4718 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r0, _020D4754 ; =MicGetResultCallback + mov r1, #0x0 + bl MIC_StopAutoSamplingAsync + ldr r1, _020D4758 ; =0x021D54B0 + cmp r0, #0x0 + str r0, [r1, #0xc] + bne _020D4740 + bl MicWaitBusy +_020D4740: + ldr r0, _020D4758 ; =0x021D54B0 + ldr r0, [r0, #0xc] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020D4754: .word MicGetResultCallback +_020D4758: .word 0x021D54B0 + + arm_func_start MIC_StopAutoSamplingAsync +MIC_StopAutoSamplingAsync: ; 0x020D475C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r5, r0 + mov r4, r1 + bl OS_DisableInterrupts + ldr r1, _020D47C8 ; =0x021D54B0 + ldr r2, [r1, #0x0] + cmp r2, #0x0 + beq _020D4794 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r5,lr} + bx lr +_020D4794: + mov r2, #0x1 + str r2, [r1, #0x0] + bl OS_RestoreInterrupts + ldr r0, _020D47C8 ; =0x021D54B0 + str r5, [r0, #0x4] + str r4, [r0, #0x8] + bl MicStopAutoSampling +_020D47B0: + cmp r0, #0x0 + movne r0, #0x0 + moveq r0, #0x3 + add sp, sp, #0x4 + ldmia sp!, {r4-r5, lr} + bx lr +_020D47C8: .word 0x021D54B0 + + arm_func_start MIC_StartAutoSampling +MIC_StartAutoSampling: ; 0x020D47CC + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020D4808 ; =MicGetResultCallback + mov r2, #0x0 + bl MIC_StartAutoSamplingAsync + ldr r1, _020D480C ; =0x021D54B0 + cmp r0, #0x0 + str r0, [r1, #0xc] + bne _020D47F4 + bl MicWaitBusy +_020D47F4: + ldr r0, _020D480C ; =0x021D54B0 + ldr r0, [r0, #0xc] + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020D4808: .word MicGetResultCallback +_020D480C: .word 0x021D54B0 + + arm_func_start MIC_StartAutoSamplingAsync +MIC_StartAutoSamplingAsync: ; 0x020D4810 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + mov r7, r0 + ldr r0, [r7, #0x4] + mov r6, r1 + ands r0, r0, #0x1f + mov r5, r2 + addne sp, sp, #0x4 + movne r0, #0x2 + ldmneia sp!, {r4-r7,lr} + bxne lr + ldr r1, [r7, #0x8] + ands r0, r1, #0x1f + addne sp, sp, #0x4 + movne r0, #0x2 + ldmneia sp!, {r4-r7,lr} + bxne lr + cmp r1, #0x0 + addeq sp, sp, #0x4 + moveq r0, #0x2 + ldmeqia sp!, {r4-r7,lr} + bxeq lr + ldr r0, [r7, #0xc] + cmp r0, #0x400 + addcc sp, sp, #0x4 + movcc r0, #0x2 + ldmccia sp!, {r4-r7,lr} + bxcc lr + ldr r0, [r7, #0x0] + cmp r0, #0x5 + addls pc, pc, r0, lsl #0x2 + b _020D48D8 +_020D4890: + b _020D48A8 + b _020D48B0 + b _020D48B8 + b _020D48C0 + b _020D48C8 + b _020D48D0 +_020D48A8: + mov r1, #0x0 + b _020D48E8 +_020D48B0: + mov r1, #0x1 + b _020D48E8 +_020D48B8: + mov r1, #0x2 + b _020D48E8 +_020D48C0: + mov r1, #0x3 + b _020D48E8 +_020D48C8: + mov r1, #0x5 + b _020D48E8 +_020D48D0: + mov r1, #0x7 + b _020D48E8 +_020D48D8: + add sp, sp, #0x4 + mov r0, #0x2 + ldmia sp!, {r4-r7,lr} + bx lr +_020D48E8: + ldr r0, [r7, #0x10] + cmp r0, #0x0 + orrne r0, r1, #0x10 + andne r0, r0, #0xff + andeq r0, r1, #0xff + and r4, r0, #0xff + bl OS_DisableInterrupts + ldr r1, _020D497C + ldr r2, [r1] + cmp r2, #0x0 + beq _020D4928 + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020D4928: + mov r2, #0x1 + str r2, [r1] + bl OS_RestoreInterrupts + ldr r0, _020D497C + mov r3, r4 + str r6, [r0, #0x4] + str r5, [r0, #0x8] + ldr r1, [r7, #0x14] + str r1, [r0, #0x10] + ldr r1, [r7, #0x18] + str r1, [r0, #0x14] + ldr r0, [r7, #0x4] + ldr r1, [r7, #0x8] + ldr r2, [r7, #0xC] + bl MicStartAutoSampling + cmp r0, #0x0 + movne r0, #0x0 + moveq r0, #0x3 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_020D497C: .word 0x021D54B0 + + arm_func_start MIC_DoSamplingAsync +MIC_DoSamplingAsync: ; 0x020D4980 + stmdb sp!, {r4-r7,lr} + sub sp, sp, #0x4 + cmp r0, #0x6 + mov r7, r1 + mov r6, r2 + mov r5, r3 + addge sp, sp, #0x4 + movge r0, #0x2 + ldmgeia sp!, {r4-r7,lr} + bxge lr + cmp r0, #0x3 + addls pc, pc, r0, lsl #0x2 + b _020D49E4 +_020D49B4: + b _020D49C4 + b _020D49CC + b _020D49D4 + b _020D49DC +_020D49C4: + mov r4, #0x0 + b _020D49F4 +_020D49CC: + mov r4, #0x1 + b _020D49F4 +_020D49D4: + mov r4, #0x2 + b _020D49F4 +_020D49DC: + mov r4, #0x3 + b _020D49F4 +_020D49E4: + add sp, sp, #0x4 + mov r0, #0x2 + ldmia sp!, {r4-r7,lr} + bx lr +_020D49F4: + bl OS_DisableInterrupts + ldr r1, _020D4A58 + ldr r2, [r1] + cmp r2, #0x0 + beq _020D4A1C + bl OS_RestoreInterrupts + add sp, sp, #0x4 + mov r0, #0x1 + ldmia sp!, {r4-r7,lr} + bx lr +_020D4A1C: + mov r2, #0x1 + str r2, [r1] + bl OS_RestoreInterrupts + ldr r1, _020D4A58 + mov r0, r4 + str r6, [r1, #0x4] + str r5, [r1, #0x8] + str r7, [r1, #0x18] + bl MicDoSampling + cmp r0, #0x0 + movne r0, #0x0 + moveq r0, #0x3 + add sp, sp, #0x4 + ldmia sp!, {r4-r7,lr} + bx lr +_020D4A58: .word 0x021D54B0 + + arm_func_start MIC_Init +MIC_Init: ; 0x020D4A5C + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + ldr r1, _020D4AD8 ; =0x021D54AC + ldrh r0, [r1, #0x0] + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,lr} + bxne lr + ldr r0, _020D4ADC ; =0x021D54B0 + mov r2, #0x0 + mov r3, #0x1 + strh r3, [r1, #0x0] + str r2, [r0, #0x0] + str r2, [r0, #0x4] + bl PXI_Init + mov r5, #0x9 + mov r4, #0x1 +_020D4AA0: + mov r0, r5 + mov r1, r4 + bl PXI_IsCallbackReady +_020D4AAC: + cmp r0, #0x0 + beq _020D4AA0 + ldr r2, _020D4AE0 + mov r3, #0x0 + ldr r1, _020D4AE4 + mov r0, #0x9 + str r3, [r2] + bl PXI_SetFifoRecvCallback + add sp, sp, #0x4 + ldmia sp!, {r4-r5, lr} + bx lr +_020D4AD8: .word 0x021D54AC +_020D4ADC: .word 0x021D54B0 +_020D4AE0: .word 0x027FFF90 +_020D4AE4: .word MicCommonCallback + + arm_func_start PM_DeletePostSleepCallback +PM_DeletePostSleepCallback: ; 0x020D4AE8 + ldr ip, _020D4AF8 ; =0x020D4B78 + mov r1, r0 + ldr r0, _020D4AFC ; =0x021D54E0 + bx r12 + .balign 4 +_020D4AF8: .word 0x020D4B78 +_020D4AFC: .word 0x021D54E0 + + arm_func_start PM_DeletePreSleepCallback +PM_DeletePreSleepCallback: ; 0x020D4B00 + ldr ip, _020D4B10 ; =0x020D4B78 + mov r1, r0 + ldr r0, _020D4B14 ; =0x021D54D8 + bx r12 + .balign 4 +_020D4B10: .word 0x020D4B78 +_020D4B14: .word 0x021D54D8 + + arm_func_start PM_AppendPostSleepCallback +PM_AppendPostSleepCallback: ; 0x020D4B18 + ldr ip, _020D4B28 ; =FUN_020D4BC4 + mov r1, r0 + ldr r0, _020D4B2C ; =0x021D54E0 + bx r12 + .balign 4 +_020D4B28: .word FUN_020D4BC4 +_020D4B2C: .word 0x021D54E0 + + arm_func_start PM_PrependPreSleepCallback +PM_PrependPreSleepCallback: ; 0x020D4B30 + ldr ip, _020D4B40 ; =FUN_020D4C0C + mov r1, r0 + ldr r0, _020D4B44 ; =0x021D54D8 + bx r12 + .balign 4 +_020D4B40: .word FUN_020D4C0C +_020D4B44: .word 0x021D54D8 + + arm_func_start PMi_ExecuteList +PMi_ExecuteList: ; 0x020D4B48 + stmdb sp!, {r4,lr} + movs r4, r0 + ldmeqia sp!, {r4,lr} + bxeq lr +_020D4B58: + ldr r0, [r4, #0x4] + ldr r1, [r4, #0x0] + blx r1 + ldr r4, [r4, #0x8] + cmp r4, #0x0 + bne _020D4B58 + ldmia sp!, {r4,lr} + bx lr + + arm_func_start FUN_020D4B78 +FUN_020D4B78: + cmp r0, #0x0 + bxeq lr + ldr r3, [r0] + mov r2, r3 + cmp r3, #0x0 + bxeq lr +_020D4B90: + cmp r3, r1 + bne _020D4BB0 + cmp r3, r2 + ldreq r1, [r3, #0x8] + streq r1, [r0] + ldrne r0, [r3, #0x8] + strne r0, [r2, #0x8] + bx lr +_020D4BB0: + mov r2, r3 + ldr r3, [r3, #0x8] + cmp r3, #0x0 + bne _020D4B90 + bx lr + + arm_func_start FUN_020D4BC4 +FUN_020D4BC4: ; 0x020D4BC4 + cmp r0, #0x0 + bxeq lr + ldr r2, [r0, #0x0] + cmp r2, #0x0 + moveq r2, #0x0 + streq r2, [r1, #0x8] + streq r1, [r0, #0x0] + bxeq lr + ldr r0, [r2, #0x8] + cmp r0, #0x0 + beq _020D4C00 +_020D4BF0: + mov r2, r0 + ldr r0, [r0, #0x8] + cmp r0, #0x0 + bne _020D4BF0 +_020D4C00: + str r0, [r1, #0x8] + str r1, [r2, #0x8] + bx lr + + arm_func_start FUN_020D4C0C +FUN_020D4C0C: ; 0x020D4C0C + cmp r0, #0x0 + ldrne r2, [r0, #0x0] + strne r2, [r1, #0x8] + strne r1, [r0, #0x0] + bx lr + + arm_func_start PM_GetLEDPattern +PM_GetLEDPattern: ; 0x020D4C20 + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020D4C58 ; =0x020D587C + add r2, sp, #0x0 + bl PM_GetLEDPatternAsync +_020D4C34: + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmnefd sp!, {lr} + bxne lr + bl PMi_WaitBusy + ldr r0, [sp] + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr +_020D4C58: .word 0x020D587C + + arm_func_start PM_GetLEDPatternAsync +PM_GetLEDPatternAsync: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl PMi_Lock +_020D4C70: + cmp r0, #0x0 + moveq r0, #0x1 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r1, _020D4CA4 + ldr r0, _020D4CA8 + str r5, [r1, #0x4] + str r4, [r1, #0x8] + str r6, [r1, #0xC] + bl PMi_SendPxiData + mov r0, #0x0 + ldmia sp!, {r4-r6,lr} + bx lr +_020D4CA4: .word 0x021D54E4 +_020D4CA8: .word 0x03006700 + + arm_func_start PMi_SendLEDPatternCommand +PMi_SendLEDPatternCommand: ; 0x020D4CAC + stmdb sp!, {lr} + sub sp, sp, #0x4 + ldr r1, _020D4CE4 ; =0x020D587C + add r2, sp, #0x0 + bl PMi_SendLEDPatternCommandAsync +_020D4CC0: + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmnefd sp!, {lr} + bxne lr + bl PMi_WaitBusy + ldr r0, [sp] + add sp, sp, #0x4 + ldmfd sp!, {lr} + bx lr +_020D4CE4: .word 0x020D587C + + arm_func_start PMi_SendLEDPatternCommandAsync +PMi_SendLEDPatternCommandAsync: + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, r1 + mov r4, r2 + bl PMi_Lock +_020D4CFC: + cmp r0, #0x0 + moveq r0, #0x1 + ldmeqia sp!, {r4-r6,lr} + bxeq lr + ldr r0, _020D4D34 + ldr r1, _020D4D38 + and r2, r6, #0xff + orr r0, r2, r0 + str r5, [r1, #0x4] + str r4, [r1, #0x8] + bl PMi_SendPxiData + mov r0, #0x0 + ldmia sp!, {r4-r6,lr} + bx lr +_020D4D34: .word 0x03006600 +_020D4D38: .word 0x021D54E4 + + arm_func_start PM_GetLCDPower +PM_GetLCDPower: ; 0x020D4D3C + ldr r0, _020D4D54 ; =0x04000304 + ldrh r0, [r0, #0x0] + ands r0, r0, #0x1 + movne r0, #0x1 + moveq r0, #0x0 + bx lr + .balign 4 +_020D4D54: .word 0x04000304 + + arm_func_start PM_SetLCDPower +PM_SetLCDPower: ; 0x020D4D58 + ldr ip, _020D4D74 ; =PMi_SetLCDPower + mov r1, #0x0 + cmp r0, #0x1 + movne r0, #0x0 + mov r2, r1 + mov r3, #0x1 + bx r12 + .balign 4 +_020D4D74: .word PMi_SetLCDPower + + arm_func_start PMi_SetLCDPower +PMi_SetLCDPower: ; 0x020D4D78 + stmdb sp!, {lr} + sub sp, sp, #0x4 + cmp r0, #0x0 + beq _020D4E00 + cmp r0, #0x1 + bne _020D4E4C + cmp r2, #0x0 + bne _020D4DC0 + ldr r2, _020D4E5C ; =0x027FFC3C + ldr r0, _020D4E60 ; =0x021D54DC + ldr r2, [r2, #0x0] + ldr r0, [r0, #0x0] + sub r0, r2, r0 + cmp r0, #0x7 + addls sp, sp, #0x4 + movls r0, #0x0 + ldmlsia sp!, {lr} + bxls lr +_020D4DC0: + cmp r1, #0x0 + beq _020D4DEC + cmp r3, #0x0 + beq _020D4DDC + mov r0, r1 + bl PMi_SetLED + b _020D4DEC +_020D4DDC: + mov r0, r1 + mov r1, #0x0 + mov r2, r1 + bl PMi_SetLEDAsync +_020D4DEC: + ldr r1, _020D4E64 ; =0x04000304 + ldrh r0, [r1, #0x0] + orr r0, r0, #0x1 + strh r0, [r1, #0x0] + b _020D4E4C +_020D4E00: + ldr lr, _020D4E64 ; =0x04000304 + ldr r2, _020D4E5C ; =0x027FFC3C + ldrh r12, [lr, #0x0] + ldr r0, _020D4E60 ; =0x021D54DC + cmp r1, #0x0 + bic r12, r12, #0x1 + strh r12, [lr, #0x0] + ldr r2, [r2, #0x0] + str r2, [r0, #0x0] + beq _020D4E4C + cmp r3, #0x0 + beq _020D4E3C + mov r0, r1 + bl PMi_SetLED + b _020D4E4C +_020D4E3C: + mov r0, r1 + mov r1, #0x0 + mov r2, r1 + bl PMi_SetLEDAsync +_020D4E4C: + mov r0, #0x1 + add sp, sp, #0x4 + ldmia sp!, {lr} + bx lr + .balign 4 +_020D4E5C: .word 0x027FFC3C +_020D4E60: .word 0x021D54DC +_020D4E64: .word 0x04000304 + + arm_func_start PM_GoSleepMode +PM_GoSleepMode: ; 0x020D4E68 + stmdb sp!, {r4-r11,lr} + sub sp, sp, #0x1c + ldr r3, _020D5084 ; =0x021D54D8 + mov r10, r0 + ldr r0, [r3, #0x0] + mov r9, r1 + mov r11, r2 + mov r8, #0x0 + bl PMi_ExecuteList + ldr r1, _020D5088 ; =0x04000208 + mov r0, r8 + ldrh r4, [r1, #0x0] + strh r0, [r1, #0x0] + bl OS_DisableInterrupts +_020D4EA0: + str r0, [sp] + ldr r0, _020D508C + bl OS_DisableIrqMask + str r0, [sp, #0x4] + mov r0, #0x40000 + bl OS_SetIrqMask + ldr r0, [sp] + bl OS_RestoreInterrupts + ldr r2, _020D5088 + mov r1, #0x1 + ldrh r0, [r2] + ands r0, sl, #0x8 + strh r1, [r2] + beq _020D4EE8 + ldr r0, _020D5090 + ldrh r0, [r0] + cmp r0, #0x2 + biceq sl, sl, #0x8 +_020D4EE8: + ands r0, sl, #0x10 + beq _020D4EFC + bl CTRDG_IsExisting + cmp r0, #0x0 + biceq sl, sl, #0x10 +_020D4EFC: + ldr r0, _020D5094 + mov r1, #0x4000000 + ldr r7, [r1] + ldr r6, [r0] + bl PM_GetLCDPower + str r0, [sp, #0x8] + add r0, sp, #0xC + add r1, sp, #0x10 + bl PM_GetBackLight + mov r0, #0x2 + mov r1, #0x0 + bl FUN_020D526C + ldr r2, _020D5098 + ldr r0, [r2] + str r0, [sp, #0x14] +_020D4F38: + ldr r1, [r2] + ldr r0, [sp, #0x14] + cmp r0, r1 + beq _020D4F38 + ldr r0, [r2] + mov r2, #0x4000000 + str r0, [sp, #0x14] + ldr r0, [r2] + ldr r1, _020D5094 + bic r0, r0, #0x30000 + str r0, [r2] + ldr r0, [r1] + bic r0, r0, #0x10000 + str r0, [r1] + ldr r2, _020D5098 +_020D4F74: + ldr r1, [r2] + ldr r0, [sp, #0x14] + cmp r0, r1 + beq _020D4F74 + ldr r0, [r2] + str r0, [sp, #0x14] + ldr r2, _020D5098 +_020D4F90: + ldr r1, [r2] + ldr r0, [sp, #0x14] + cmp r0, r1 + beq _020D4F90 + ldr r0, [sp, #0xC] + ldr r1, [sp, #0x10] + orr r0, sl, r0, lsl #0x5 + orr r0, r0, r1, lsl #0x6 + mov r0, r0, lsl #0x10 + mov r5, r0, lsr #0x10 + orr r0, r9, fp + mov r0, r0, lsl #0x10 + mov r9, r0, lsr #0x10 +_020D4FC4: + mov r0, r5 + mov r1, r9 + bl PMi_SendSleepStart + cmp r0, #0x0 + bne _020D4FC4 + bl OS_Halt + ldr r0, _020D509C + bl OS_SpinWait + ands r0, sl, #0x8 + beq _020D4FFC + ldr r0, _020D50A0 + ldr r0, [r0] + ands r0, r0, #0x100000 + movne r8, #0x1 +_020D4FFC: + cmp r8, #0x0 + bne _020D5040 + ldr r0, [sp, #0x8] + cmp r0, #0x1 + bne _020D5028 + mov r0, #0x1 + mov r1, r0 + mov r2, r0 + mov r3, #0x0 + bl PMi_SetLCDPower + b _020D5030 +_020D5028: + mov r0, #0x1 + bl PMi_SetLED +_020D5030: + mov r1, #0x4000000 + ldr r0, _020D5094 + str r7, [r1] + str r6, [r0] +_020D5040: + bl OS_DisableInterrupts + ldr r0, [sp, #0x4] + bl OS_SetIrqMask + ldr r0, [sp] + bl OS_RestoreInterrupts + ldr r1, _020D5088 + cmp r8, #0x0 + ldrh r0, [r1] + strh r4, [r1] + beq _020D506C + bl FUN_020D5180 +_020D506C: + ldr r0, _020D50A4 + ldr r0, [r0] + bl PMi_ExecuteList + add sp, sp, #0x1C + ldmia sp!, {r4-r11, lr} + bx lr +_020D5084: .word 0x021D54D8 +_020D5088: .word 0x04000208 +_020D508C: .word 0x003FFFFF +_020D5090: .word 0x027FFC40 +_020D5094: .word 0x04001000 +_020D5098: .word 0x027FFC3C +_020D509C: .word 0x00996A00 +_020D50A0: .word 0x04000214 +_020D50A4: .word 0x021D54E0 + + + arm_func_start PMi_SendPxiData +PMi_SendPxiData: ; 0x020D50A8 + stmdb sp!, {r4-r6,lr} + mov r6, r0 + mov r5, #0x8 + mov r4, #0x0 +_020D50B8: + mov r0, r5 + mov r1, r6 + mov r2, r4 + bl PXI_SendWordByFifo +_020D50C8: + cmp r0, #0 + bne _020D50B8 + ldmia sp!, {r4-r6, lr} + bx lr + + arm_func_start PM_GetBackLight +PM_GetBackLight: ; 0x020D50D8 + stmdb sp!, {r4-r5,lr} + sub sp, sp, #0x4 + mov r4, r1 + mov r5, r0 + add r1, sp, #0x0 + mov r0, #0x0 + bl PMi_ReadRegister +_020D50F4: + cmp r0, #0x0 + addne sp, sp, #0x4 + ldmneia sp!, {r4-r5,lr} + bxne lr + cmp r5, #0x0 + beq _020D5120 + ldrh r1, [sp] + ands r1, r1, #0x8 + movne r1, #0x1 + moveq r1, #0x0 + str r1, [r5] +_020D5120: + cmp r4, #0x0 + addeq sp, sp, #0x4 + ldmeqia sp!, {r4-r5,lr} + bxeq lr + ldrh r1, [sp] + ands r1, r1, #0x4 + movne r1, #0x1 + moveq r1, #0x0 + str r1, [r4] + add sp, sp, #0x4 + ldmia sp!, {r4-r5,lr} + bx lr diff --git a/asm/arm9_thumb.s b/asm/arm9_thumb.s index 82e25175..8e3a5b8e 100644 --- a/asm/arm9_thumb.s +++ b/asm/arm9_thumb.s @@ -67,7 +67,7 @@ FUN_02000E7C: ; 0x02000E7C ldr r0, [r0, #0x14] cmp r0, #0x0 beq _02000E8E - bl FUN_02020C2C + bl ErrorHandling _02000E8E: ldr r0, _02000E98 ; =0x02106FA0 str r5, [r0, #0x10] @@ -82,7 +82,7 @@ FUN_02000E9C: ; 0x02000E9C bl FUN_0202FB80 mov r0, #0x1 add r1, r0, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq ldr r0, _02000EC4 ; =0x021C48B8 ldr r1, [r0, #0x2c] add r1, r1, #0x1 @@ -110,7 +110,7 @@ FUN_02000EC8: ; 0x02000EC8 cmp r0, #0x1 bne _02000EE2 add r0, r4, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem _02000EE2: bl FUN_02000E9C pop {r4, pc} @@ -282,8 +282,8 @@ _02001024: _02001032: mov r1, #0x0 add r2, r1, #0x0 - blx FUN_020D4E68 - blx FUN_020D7D18 + blx PM_GoSleepMode + blx CARD_IsPulledOut cmp r0, #0x0 beq _02001048 blx FUN_020D5180 @@ -306,7 +306,7 @@ _0200105C: _02001064: add r0, sp, #0x4 add r1, sp, #0x0 - blx FUN_020D50D8 + blx PM_GetBackLight ldr r0, [sp, #0x4] cmp r0, #0x1 bne _02001096 @@ -318,7 +318,7 @@ _02001064: _0200107E: add r0, sp, #0x4 add r1, sp, #0x0 - blx FUN_020D50D8 + blx PM_GetBackLight ldr r0, [sp, #0x4] cmp r0, #0x0 bne _02001096 @@ -1848,7 +1848,7 @@ FUN_02001B80: ; 0x02001B80 ldr r0, [r0, #0xc] bx r3 nop -_02001B88: .word FUN_020191D0 + 1 +_02001B88: .word FUN_020191D0 thumb_func_start FUN_02001B8C FUN_02001B8C: ; 0x02001B8C @@ -2291,7 +2291,7 @@ _02001ECE: ldrb r4, [r5, #0x15] add r1, r6, #0x0 add r0, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f cmp r1, #0x0 bne _02001EF2 ldrb r0, [r5, #0xb] @@ -2323,7 +2323,7 @@ _02001F08: ldrb r6, [r5, #0x15] sub r4, r1, #0x1 add r0, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f cmp r4, r1 bne _02001F2A ldrb r0, [r5, #0xb] @@ -2393,7 +2393,7 @@ _02001F72: mov r0, #0x0 pop {r4-r6, pc} _02001F8A: - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x18 asr r2, r0, #0x18 b _02001F9A @@ -2563,7 +2563,7 @@ FUN_020020B0: ; 0x020020B0 ldrb r1, [r5, #0xa] add r0, r7, #0x0 add r6, r2, #0x0 - blx FUN_020EBC80 + blx _s32_div_f ldrb r2, [r5, #0x19] ldrb r1, [r5, #0x16] lsl r2, r2, #0x1 @@ -2572,7 +2572,7 @@ FUN_020020B0: ; 0x020020B0 strb r1, [r4, #0x0] ldrb r1, [r5, #0xa] add r0, r7, #0x0 - blx FUN_020EBC80 + blx _s32_div_f ldrb r2, [r5, #0xb] ldrb r3, [r5, #0x1a] ldrb r0, [r5, #0x18] @@ -2909,7 +2909,7 @@ FUN_0200232C: ; 0x0200232C ldr r1, _02002338 ; =0x0000FFFF bx r3 .balign 4 -_02002334: .word FUN_02002310 + 1 +_02002334: .word FUN_02002310 _02002338: .word 0x0000FFFF thumb_func_start FUN_0200233C @@ -3116,7 +3116,7 @@ _0200248C: lsl r0, r0, #0x8 cmp r5, r0 bne _020024B0 - bl FUN_02020C2C + bl ErrorHandling _020024B0: ldr r0, _02002664 ; =0x0000F0FD cmp r5, r0 @@ -4153,7 +4153,7 @@ FUN_02002C84: ; 0x02002C84 add r5, r1, #0x0 cmp r4, #0x4 blt _02002C92 - bl FUN_02020C2C + bl ErrorHandling _02002C92: ldr r0, _02002CBC ; =0x02106FC8 lsl r4, r4, #0x2 @@ -4163,7 +4163,7 @@ _02002C92: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002CA6 - bl FUN_02020C2C + bl ErrorHandling _02002CA6: ldr r0, _02002CBC ; =0x02106FC8 mov r1, #0x0 @@ -4183,7 +4183,7 @@ FUN_02002CC0: ; 0x02002CC0 add r4, r0, #0x0 cmp r4, #0x4 blt _02002CCC - bl FUN_02020C2C + bl ErrorHandling _02002CCC: ldr r0, _02002CF4 ; =0x02106FC8 lsl r4, r4, #0x2 @@ -4193,7 +4193,7 @@ _02002CCC: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002CE0 - bl FUN_02020C2C + bl ErrorHandling _02002CE0: ldr r0, _02002CF4 ; =0x02106FC8 mov r1, #0x1 @@ -4213,7 +4213,7 @@ FUN_02002CF8: ; 0x02002CF8 add r4, r0, #0x0 cmp r4, #0x4 blt _02002D04 - bl FUN_02020C2C + bl ErrorHandling _02002D04: ldr r0, _02002D8C ; =0x02106FC8 lsl r6, r4, #0x2 @@ -4345,7 +4345,7 @@ FUN_02002DE0: ; 0x02002DE0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002DFA - bl FUN_02020C2C + bl ErrorHandling _02002DFA: ldr r0, _02002E10 ; =0x02106FC8 add r1, r5, #0x0 @@ -4372,7 +4372,7 @@ FUN_02002E14: ; 0x02002E14 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002E2E - bl FUN_02020C2C + bl ErrorHandling _02002E2E: add r0, r5, #0x0 bl FUN_02021F2C @@ -4505,7 +4505,7 @@ FUN_02002F08: ; 0x02002F08 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002F22 - bl FUN_02020C2C + bl ErrorHandling _02002F22: add r0, r5, #0x0 bl FUN_02021F2C @@ -4590,7 +4590,7 @@ FUN_02002F9C: ; 0x02002F9C ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02002FB4 - bl FUN_02020C2C + bl ErrorHandling _02002FB4: add r0, r5, #0x0 bl FUN_02021F2C @@ -4615,7 +4615,7 @@ FUN_02002FD0: ; 0x02002FD0 mov r1, #0x0 lsl r2, r2, #0x4 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 pop {r4, pc} .balign 4 @@ -4625,7 +4625,7 @@ FUN_02002FEC: ; 0x02002FEC ldr r3, _02002FF0 ; =FUN_02016A18 bx r3 .balign 4 -_02002FF0: .word FUN_02016A18 + 1 +_02002FF0: .word FUN_02016A18 thumb_func_start FUN_02002FF4 FUN_02002FF4: ; 0x02002FF4 @@ -4694,13 +4694,13 @@ FUN_02003054: ; 0x02003054 lsl r4, r3, #0x1 add r1, r1, r4 add r2, r7, #0x0 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 add r1, r5, r6 ldr r1, [r1, #0x4] ldr r0, [sp, #0x0] add r1, r1, r4 add r2, r7, #0x0 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 pop {r3-r7, pc} .balign 4 @@ -4716,7 +4716,7 @@ FUN_02003084: ; 0x02003084 bl FUN_02006C08 add r6, r0, #0x0 bne _0200309E - bl FUN_02020C2C + bl ErrorHandling _0200309E: cmp r4, #0x0 bne _020030A6 @@ -4734,7 +4734,7 @@ _020030A6: add r0, r4, r0 cmp r0, r1 bls _020030C0 - bl FUN_02020C2C + bl ErrorHandling _020030C0: lsl r0, r4, #0x10 lsr r0, r0, #0x10 @@ -4788,7 +4788,7 @@ FUN_02003108: ; 0x02003108 add r0, r7, r0 cmp r0, r1 bls _02003126 - bl FUN_02020C2C + bl ErrorHandling _02003126: cmp r4, #0x3 bhi _0200315E @@ -4820,7 +4820,7 @@ _02003156: add r1, r0, #0x0 b _02003164 _0200315E: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _02003164: lsl r0, r7, #0x10 @@ -4845,7 +4845,7 @@ FUN_0200317C: ; 0x0200317C bl FUN_02006C08 add r4, r0, #0x0 bne _02003192 - bl FUN_02020C2C + bl ErrorHandling _02003192: cmp r5, #0x0 bne _0200319A @@ -4860,7 +4860,7 @@ _0200319A: lsl r0, r0, #0x1 add r0, r1, r0 ldr r1, [sp, #0x14] - blx FUN_020CE1E0 + blx MIi_CpuCopy16 add r0, r4, #0x0 bl FUN_02016A18 pop {r3-r5, pc} @@ -4888,7 +4888,7 @@ FUN_020031B8: ; 0x020031B8 ldr r1, [r5, r6] add r0, r0, r4 add r1, r1, r7 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 ldr r0, [sp, #0x4] add r1, r5, r6 ldr r0, [r5, r0] @@ -4896,7 +4896,7 @@ FUN_020031B8: ; 0x020031B8 ldr r2, [sp, #0x0] add r0, r0, r4 add r1, r1, r7 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 add sp, #0x8 pop {r3-r7, pc} .balign 4 @@ -5044,7 +5044,7 @@ _02003300: bx r3 .balign 4 _0200330C: .word 0xFFFF0003 -_02003310: .word FUN_02003464 + 1 +_02003310: .word FUN_02003464 thumb_func_start FUN_02003314 FUN_02003314: ; 0x02003314 @@ -5643,7 +5643,7 @@ _02003750: _02003770: ldr r0, [r4, #0x4] ldr r1, [r4, #0x8] - blx FUN_020CC15C + blx DC_FlushRange cmp r5, #0xd bls _0200377E _0200377C: @@ -5859,7 +5859,7 @@ FUN_02003914: ; 0x02003914 ldr r0, [r0, #0x8] cmp r1, r0 bls _0200393A - bl FUN_02020C2C + bl ErrorHandling _0200393A: sub r0, r7, #0x1 cmp r0, #0x1 @@ -5871,7 +5871,7 @@ _0200393A: ldr r0, [sp, #0x0] sub r2, r2, r5 lsl r2, r2, #0x1 - blx FUN_020CE1C8 + blx MIi_CpuClear16 _02003952: cmp r7, #0x0 beq _0200395A @@ -5886,7 +5886,7 @@ _0200395A: ldr r0, [sp, #0x0] sub r2, r2, r5 lsl r2, r2, #0x1 - blx FUN_020CE1C8 + blx MIi_CpuClear16 _0200396E: add sp, #0x8 pop {r3-r7, pc} @@ -5977,7 +5977,7 @@ FUN_020039E8: ; 0x020039E8 _02003A0A: cmp r0, #0x0 bne _02003A12 - bl FUN_02020C2C + bl ErrorHandling _02003A12: add r3, sp, #0x10 ldrh r0, [r3, #0x14] @@ -6051,7 +6051,7 @@ FUN_02003A64: ; 0x02003A64 _02003A8E: cmp r0, #0x0 bne _02003A96 - bl FUN_02020C2C + bl ErrorHandling _02003A96: cmp r5, #0x0 beq _02003AC0 @@ -6160,7 +6160,7 @@ FUN_02003B40: ; 0x02003B40 bl FUN_02006C08 add r4, r0, #0x0 bne _02003B58 - bl FUN_02020C2C + bl ErrorHandling _02003B58: ldr r0, [sp, #0x1c] cmp r0, #0x0 @@ -6604,7 +6604,7 @@ _02003E8C: add r0, r0, r1 pop {r4, pc} _02003E92: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4, pc} nop @@ -6662,7 +6662,7 @@ FUN_02003F3C: ; 0x02003F3C mvn r0, r0 cmp r4, r0 bne _02003F5A - bl FUN_02020C2C + bl ErrorHandling _02003F5A: cmp r5, #0x0 beq _02003F60 @@ -6757,7 +6757,7 @@ FUN_02003FF4: ; 0x02003FF4 add r4, r0, #0x0 cmp r5, #0x9 blt _02004008 - bl FUN_02020C2C + bl ErrorHandling mov r5, #0x0 _02004008: ldr r0, _02004014 ; =0x000BBC94 @@ -6813,7 +6813,7 @@ _02004056: mov r0, #0x7 pop {r3, pc} _0200405A: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x3 pop {r3, pc} .balign 4 @@ -6875,7 +6875,7 @@ _020040C4: .word 0x000BCD20 thumb_func_start FUN_020040C8 FUN_020040C8: ; 0x020040C8 push {r3, lr} - blx FUN_020D4A5C + blx MIC_Init mov r0, #0x1 blx FUN_020D5168 mov r0, #0x2 @@ -7505,7 +7505,7 @@ FUN_02004568: ; 0x02004568 add r0, r5, #0x0 mov r1, #0x4 bl FUN_02003FA8 - bl FUN_02020C2C + bl ErrorHandling b _0200459C _02004594: ldrh r0, [r4, #0x0] @@ -7570,7 +7570,7 @@ _020045E4: add r0, r7, #0x0 mov r1, #0x4 bl FUN_02003FA8 - bl FUN_02020C2C + bl ErrorHandling b _02004638 _02004630: ldrh r0, [r4, #0x0] @@ -7707,7 +7707,7 @@ FUN_02004748: ; 0x02004748 bl FUN_02003D30 cmp r4, #0x7 blt _02004762 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1a bl FUN_02003D38 ldr r0, [r0, #0x0] @@ -7866,7 +7866,7 @@ _02004872: bne _0200488A add r0, r4, #0x0 mov r1, #0x5 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_0200483C @@ -7903,7 +7903,7 @@ FUN_020048BC: ; 0x020048BC push {r4, lr} add r4, r0, #0x0 bpl _020048C6 - bl FUN_02020C2C + bl ErrorHandling _020048C6: add r0, r4, #0x0 blx FUN_020C0F50 @@ -7957,22 +7957,22 @@ _0200490E: thumb_func_start FUN_02004914 FUN_02004914: ; 0x02004914 - ldr r3, _02004918 ; =FUN_020D47CC + ldr r3, _02004918 ; =MIC_StartAutoSampling bx r3 .balign 4 -_02004918: .word FUN_020D47CC +_02004918: .word MIC_StartAutoSampling thumb_func_start FUN_0200491C FUN_0200491C: ; 0x0200491C push {r3, lr} bl FUN_02003D30 - blx FUN_020D4718 + blx MIC_StopAutoSampling pop {r3, pc} thumb_func_start FUN_02004928 FUN_02004928: ; 0x02004928 push {r3, lr} - blx FUN_020D4980 + blx MIC_DoSamplingAsync pop {r3, pc} thumb_func_start FUN_02004930 @@ -7990,21 +7990,21 @@ FUN_02004930: ; 0x02004930 beq _02004954 cmp r5, #0xf beq _02004954 - bl FUN_02020C2C + bl ErrorHandling _02004954: cmp r5, #0xe bne _02004962 ldrb r0, [r6, #0x0] cmp r0, #0x0 bne _02004962 - bl FUN_02020C2C + bl ErrorHandling _02004962: cmp r5, #0xf bne _02004970 ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _02004970 - bl FUN_02020C2C + bl ErrorHandling _02004970: cmp r5, #0xe bne _0200497C @@ -8031,7 +8031,7 @@ FUN_02004984: ; 0x02004984 beq _020049A8 cmp r5, #0xf beq _020049A8 - bl FUN_02020C2C + bl ErrorHandling _020049A8: cmp r5, #0xe bne _020049D6 @@ -8053,7 +8053,7 @@ _020049CA: strb r0, [r6, #0x0] b _020049FE _020049D0: - bl FUN_02020C2C + bl ErrorHandling b _020049FE _020049D6: ldrb r0, [r4, #0x0] @@ -8074,7 +8074,7 @@ _020049F4: strb r0, [r4, #0x0] b _020049FE _020049FA: - bl FUN_02020C2C + bl ErrorHandling _020049FE: mov r0, #0x1 pop {r4-r6, pc} @@ -8095,7 +8095,7 @@ FUN_02004A04: ; 0x02004A04 beq _02004A2A cmp r5, #0xf beq _02004A2A - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} _02004A2A: cmp r5, #0xe @@ -8111,7 +8111,7 @@ _02004A2A: strb r0, [r6, #0x0] pop {r4-r6, pc} _02004A46: - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} _02004A4C: ldrb r0, [r4, #0x0] @@ -8125,7 +8125,7 @@ _02004A4C: strb r0, [r4, #0x0] pop {r4-r6, pc} _02004A64: - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} .balign 4 @@ -8219,7 +8219,7 @@ FUN_02004AF8: ; 0x02004AF8 add r4, r0, #0x0 add r0, r5, #0x0 mov r1, #0x5 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 ldr r0, [r4, #0x0] blx FUN_020C04DC @@ -8248,13 +8248,13 @@ FUN_02004B30: ; 0x02004B30 beq _02004B54 cmp r5, #0xf beq _02004B54 - bl FUN_02020C2C + bl ErrorHandling _02004B54: add r0, r6, #0x0 blx FUN_020C226C add r7, r0, #0x0 bne _02004B68 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} @@ -8265,7 +8265,7 @@ _02004B68: blx FUN_020C217C add r6, r0, #0x0 bne _02004B80 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} @@ -8278,7 +8278,7 @@ _02004B80: str r0, [r4, #0x0] cmp r0, #0x0 bne _02004B9C - bl FUN_02020C2C + bl ErrorHandling add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} @@ -8297,7 +8297,7 @@ _02004B9C: mvn r1, r1 cmp r0, r1 bne _02004BC6 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x30 mov r0, #0x0 pop {r3-r7, pc} @@ -8378,7 +8378,7 @@ FUN_02004C3C: ; 0x02004C3C beq _02004C60 cmp r5, #0xf beq _02004C60 - bl FUN_02020C2C + bl ErrorHandling _02004C60: add r0, r5, #0x0 bl FUN_02004AAC @@ -8440,7 +8440,7 @@ FUN_02004CB4: ; 0x02004CB4 bl FUN_02003D38 mov r1, #0x0 mov r2, #0x1c - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x3 bl FUN_02003D38 add r4, r0, #0x0 @@ -8459,7 +8459,7 @@ FUN_02004CB4: ; 0x02004CB4 add sp, #0xc pop {r3-r4, pc} nop -_02004CF4: .word FUN_02005068 + 1 +_02004CF4: .word FUN_02005068 _02004CF8: .word 0x000055F0 thumb_func_start FUN_02004CFC @@ -8745,7 +8745,7 @@ _02004EF2: blx FUN_020C226C cmp r0, #0x0 bne _02004F02 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _02004F02: @@ -8755,12 +8755,12 @@ _02004F02: blx FUN_020C20DC cmp r0, #0x0 bne _02004F18 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _02004F18: mov r1, #0x0 - blx FUN_020CF768 + blx SND_GetWaveDataAddress str r0, [r4, #0x0] pop {r3-r5, pc} nop @@ -8778,11 +8778,11 @@ FUN_02004F28: ; 0x02004F28 add r0, r6, #0x0 lsl r1, r1, #0x8 ldr r5, [r5, #0x8] - blx FUN_020EBC80 + blx _s32_div_f lsl r1, r0, #0x1 bpl _02004F50 mov r0, #0x20 - blx FUN_020EBC80 + blx _s32_div_f neg r0, r0 b _02004F5A _02004F50: @@ -9027,7 +9027,7 @@ _020050D8: blt _020050D8 _020050E6: add r1, r2, #0x0 - blx FUN_020EBC80 + blx _s32_div_f ldr r1, [sp, #0x8] strh r0, [r1, #0x0] mov r0, #0x0 @@ -9044,7 +9044,7 @@ _020050FA: cmp r2, r1 blt _020050FA _02005108: - blx FUN_020EBC80 + blx _s32_div_f ldr r1, [sp, #0x4] sub r4, r4, #0x1 strh r0, [r1, #0x0] @@ -9081,10 +9081,10 @@ _02005130: _0200514A: ldr r1, [sp, #0x0] add r0, r5, #0x0 - blx FUN_020CC15C + blx DC_FlushRange ldr r1, [sp, #0x0] add r0, r6, #0x0 - blx FUN_020CC15C + blx DC_FlushRange _0200515A: add sp, #0x30 pop {r3-r7, pc} @@ -9207,7 +9207,7 @@ _0200523E: add r4, r0, #0x0 b _02005258 _02005250: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} _02005258: @@ -9294,7 +9294,7 @@ FUN_02005308: ; 0x02005308 add r5, r1, #0x0 cmp r0, #0x4 beq _02005318 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _02005318: @@ -9302,7 +9302,7 @@ _02005318: bl FUN_020048D0 cmp r0, #0x7 beq _0200532A - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0200532A: @@ -10232,7 +10232,7 @@ FUN_02005AE0: ; 0x02005AE0 bl FUN_02016998 add r4, r0, #0x0 bne _02005B04 - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} _02005B04: mov r2, #0x0 @@ -10252,7 +10252,7 @@ _02005B04: str r0, [r6, #0x0] pop {r4-r6, pc} nop -_02005B28: .word FUN_02005B2C + 1 +_02005B28: .word FUN_02005B2C thumb_func_start FUN_02005B2C FUN_02005B2C: ; 0x02005B2C @@ -10658,7 +10658,7 @@ FUN_02005E64: ; 0x02005E64 ldr r3, _02005E68 ; =FUN_0200491C bx r3 .balign 4 -_02005E68: .word FUN_0200491C + 1 +_02005E68: .word FUN_0200491C thumb_func_start FUN_02005E6C FUN_02005E6C: ; 0x02005E6C @@ -10784,14 +10784,14 @@ FUN_02005F3C: ; 0x02005F3C ldr r0, [r4, #0x4] cmp r0, #0x1 beq _02005F4A - bl FUN_02020C2C + bl ErrorHandling _02005F4A: ldr r1, [r4, #0x0] mov r0, #0x0 - blx FUN_020D2040 + blx FS_UnloadOverlay cmp r0, #0x1 beq _02005F5A - bl FUN_02020C2C + bl ErrorHandling _02005F5A: mov r0, #0x0 str r0, [r4, #0x4] @@ -10830,10 +10830,10 @@ FUN_02005F90: ; 0x02005F90 add r2, r0, #0x0 add r0, sp, #0x0 mov r1, #0x0 - blx FUN_020D24EC + blx FS_LoadOverlayInfo cmp r0, #0x1 beq _02005FA6 - bl FUN_02020C2C + bl ErrorHandling _02005FA6: mov r0, #0x2 ldr r2, [sp, #0x4] @@ -10904,7 +10904,7 @@ _02006018: _02006020: cmp r6, #0x8 blt _0200602C - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0200602C: @@ -10913,7 +10913,7 @@ _0200602C: bhi _0200603C mov r0, #0x0 mvn r0, r0 - blx FUN_020D1D30 + blx FS_SetDefaultDMA str r0, [sp, #0x0] _0200603C: cmp r4, #0x0 @@ -10942,18 +10942,18 @@ _02006062: add r4, r0, #0x0 b _02006076 _0200606E: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _02006076: cmp r6, #0x1 bhi _02006080 ldr r0, [sp, #0x0] - blx FUN_020D1D30 + blx FS_SetDefaultDMA _02006080: cmp r4, #0x0 bne _0200608C - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0200608C: @@ -11012,7 +11012,7 @@ _020060E8: cmp r3, r0 blo _020060FC _020060F2: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x10 mov r0, #0x0 pop {r3-r7, pc} @@ -11058,10 +11058,10 @@ FUN_02006130: ; 0x02006130 add r0, sp, #0x0 mov r1, #0x0 add r2, r3, #0x0 - blx FUN_020D24EC + blx FS_LoadOverlayInfo cmp r0, #0x0 bne _02006152 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x2c mov r0, #0x0 pop {r4-r5, pc} @@ -11080,10 +11080,10 @@ _02006152: thumb_func_start FUN_02006168 FUN_02006168: ; 0x02006168 - ldr r3, _0200616C ; =FUN_020D2094 + ldr r3, _0200616C ; =FS_LoadOverlay bx r3 .balign 4 -_0200616C: .word FUN_020D2094 +_0200616C: .word FS_LoadOverlay thumb_func_start FUN_02006170 FUN_02006170: ; 0x02006170 @@ -11093,7 +11093,7 @@ FUN_02006170: ; 0x02006170 add r2, r1, #0x0 add r0, sp, #0x0 add r1, r3, #0x0 - blx FUN_020D24EC + blx FS_LoadOverlayInfo cmp r0, #0x0 bne _0200618A add sp, #0x2c @@ -11101,7 +11101,7 @@ FUN_02006170: ; 0x02006170 pop {pc} _0200618A: add r0, sp, #0x0 - blx FUN_020D23B4 + blx FS_LoadOverlayImage cmp r0, #0x0 bne _0200619A add sp, #0x2c @@ -11109,7 +11109,7 @@ _0200618A: pop {pc} _0200619A: add r0, sp, #0x0 - blx FUN_020D2210 + blx FS_StartOverlay mov r0, #0x1 add sp, #0x2c pop {pc} @@ -11123,7 +11123,7 @@ FUN_020061A8: ; 0x020061A8 add r2, r1, #0x0 add r0, sp, #0x0 add r1, r3, #0x0 - blx FUN_020D24EC + blx FS_LoadOverlayInfo cmp r0, #0x0 bne _020061C2 add sp, #0x74 @@ -11131,16 +11131,16 @@ FUN_020061A8: ; 0x020061A8 pop {pc} _020061C2: add r0, sp, #0x2c - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x0 add r1, sp, #0x2c - blx FUN_020D2454 + blx FS_LoadOverlayImageAsync add r0, sp, #0x2c - blx FUN_020D182C + blx FS_WaitAsync add r0, sp, #0x2c - blx FUN_020D18FC + blx FS_CloseFile add r0, sp, #0x0 - blx FUN_020D2210 + blx FS_StartOverlay mov r0, #0x1 add sp, #0x74 pop {pc} @@ -11216,7 +11216,7 @@ FUN_02006260: ; 0x02006260 ldr r3, _02006264 ; =FUN_02016A18 bx r3 .balign 4 -_02006264: .word FUN_02016A18 + 1 +_02006264: .word FUN_02016A18 thumb_func_start FUN_02006268 FUN_02006268: ; 0x02006268 @@ -11338,62 +11338,62 @@ FUN_02006314: ; 0x02006314 add r0, sp, #0x18 add r5, r2, #0x0 str r3, [sp, #0x4] - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x18 add r1, r4, #0x0 - blx FUN_020D1944 + blx FS_OpenFile add r0, sp, #0x18 mov r1, #0xc mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile ldr r4, [sp, #0x14] add r0, sp, #0x18 add r1, r4, #0x4 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x18 add r1, sp, #0x8 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x8 ldrh r0, [r0, #0x0] cmp r0, r5 bgt _0200637A - bl FUN_02020C2C + bl ErrorHandling _0200637A: ldr r0, [sp, #0x14] mov r2, #0x0 add r6, r4, r0 add r0, sp, #0x18 add r1, r6, #0x4 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r4, #0xc lsl r1, r5, #0x3 add r0, sp, #0x18 add r1, r4, r1 mov r2, #0x0 ldr r7, [sp, #0x14] - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x10 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x18 add r1, sp, #0xc mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r2, r6, r7 ldr r1, [sp, #0x10] add r2, #0x8 @@ -11402,7 +11402,7 @@ _0200637A: add r0, sp, #0x18 add r1, r1, r2 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile ldr r0, [sp, #0x78] cmp r0, #0x0 bne _020063D6 @@ -11413,14 +11413,14 @@ _020063D6: str r0, [sp, #0x14] cmp r0, #0x0 bne _020063E0 - bl FUN_02020C2C + bl ErrorHandling _020063E0: ldr r1, [sp, #0x0] ldr r2, [sp, #0x14] add r0, sp, #0x18 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x18 - blx FUN_020D18FC + blx FS_CloseFile add sp, #0x60 pop {r3-r7, pc} @@ -11439,62 +11439,62 @@ FUN_020063F4: ; 0x020063F4 add r0, sp, #0x18 str r2, [sp, #0x0] str r3, [sp, #0x4] - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x18 add r1, r4, #0x0 - blx FUN_020D1944 + blx FS_OpenFile add r0, sp, #0x18 mov r1, #0xc mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile ldr r4, [sp, #0x14] add r0, sp, #0x18 add r1, r4, #0x4 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x18 add r1, sp, #0x8 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x8 ldrh r0, [r0, #0x0] cmp r0, r5 bgt _0200645A - bl FUN_02020C2C + bl ErrorHandling _0200645A: ldr r0, [sp, #0x14] mov r2, #0x0 add r6, r4, r0 add r0, sp, #0x18 add r1, r6, #0x4 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x14 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r4, #0xc lsl r1, r5, #0x3 add r0, sp, #0x18 add r1, r4, r1 mov r2, #0x0 ldr r7, [sp, #0x14] - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x18 add r1, sp, #0x10 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x18 add r1, sp, #0xc mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r2, r6, r7 ldr r1, [sp, #0x10] add r2, #0x8 @@ -11503,7 +11503,7 @@ _0200645A: add r0, sp, #0x18 add r1, r1, r2 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile ldr r0, [sp, #0x78] cmp r0, #0x0 bne _020064B6 @@ -11514,7 +11514,7 @@ _020064B6: str r0, [sp, #0x14] cmp r0, #0x0 bne _020064C0 - bl FUN_02020C2C + bl ErrorHandling _020064C0: ldr r0, [sp, #0x7c] cmp r0, #0x0 @@ -11532,9 +11532,9 @@ _020064D8: ldr r2, [sp, #0x14] add r0, sp, #0x18 add r1, r4, #0x0 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x18 - blx FUN_020D18FC + blx FS_CloseFile add r0, r4, #0x0 add sp, #0x60 pop {r3-r7, pc} @@ -11649,77 +11649,77 @@ FUN_020065A4: ; 0x020065A4 add r0, sp, #0x0 strh r1, [r0, #0x0] add r0, sp, #0x10 - blx FUN_020D1C94 + blx FS_InitFile ldr r1, _0200666C ; =0x021058A0 lsl r2, r4, #0x2 ldr r1, [r1, r2] add r0, sp, #0x10 - blx FUN_020D1944 + blx FS_OpenFile add r0, sp, #0x10 mov r1, #0xc mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x10 add r1, sp, #0xc mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile ldr r4, [sp, #0xc] add r0, sp, #0x10 add r1, r4, #0x4 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x10 add r1, sp, #0xc mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x10 add r1, sp, #0x0 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x0 ldrh r0, [r0, #0x0] cmp r0, r5 bgt _0200660A - bl FUN_02020C2C + bl ErrorHandling _0200660A: ldr r0, [sp, #0xc] mov r2, #0x0 add r6, r4, r0 add r0, sp, #0x10 add r1, r6, #0x4 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x10 add r1, sp, #0xc mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r4, #0xc lsl r1, r5, #0x3 add r0, sp, #0x10 add r1, r4, r1 mov r2, #0x0 ldr r7, [sp, #0xc] - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x10 add r1, sp, #0x8 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x10 add r1, sp, #0x4 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r2, r6, r7 ldr r1, [sp, #0x8] add r2, #0x8 add r1, r2, r1 add r0, sp, #0x10 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] sub r0, r1, r0 str r0, [sp, #0xc] bne _02006664 - bl FUN_02020C2C + bl ErrorHandling _02006664: ldr r0, [sp, #0xc] add sp, #0x58 @@ -11738,46 +11738,46 @@ FUN_02006670: ; 0x02006670 beq _020066EC mov r1, #0x0 str r1, [r4, #0x48] - blx FUN_020D1C94 + blx FS_InitFile ldr r1, _020066F0 ; =0x021058A0 lsl r2, r5, #0x2 ldr r1, [r1, r2] add r0, r4, #0x0 - blx FUN_020D1944 + blx FS_OpenFile add r0, r4, #0x0 mov r1, #0xc mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r1, r4, #0x0 add r0, r4, #0x0 add r1, #0x48 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile ldr r1, [r4, #0x48] add r0, r4, #0x0 add r1, r1, #0x4 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, r4, #0x0 add r1, sp, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r1, r4, #0x0 add r0, r4, #0x0 add r1, #0x50 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile ldr r1, [r4, #0x48] ldr r0, [sp, #0x0] mov r2, #0x0 add r5, r1, r0 add r0, r4, #0x0 add r1, r5, #0x4 - blx FUN_020D17A0 + blx FS_SeekFile add r0, r4, #0x0 add r1, sp, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile ldr r0, [sp, #0x0] add r0, r5, r0 str r0, [r4, #0x4c] @@ -11791,7 +11791,7 @@ _020066F0: .word 0x021058A0 FUN_020066F4: ; 0x020066F4 push {r4, lr} add r4, r0, #0x0 - blx FUN_020D18FC + blx FS_CloseFile add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} @@ -11807,7 +11807,7 @@ FUN_02006704: ; 0x02006704 add r6, r2, #0x0 cmp r0, r4 bhi _0200671A - bl FUN_02020C2C + bl ErrorHandling _0200671A: ldr r2, [r5, #0x48] lsl r1, r4, #0x3 @@ -11815,22 +11815,22 @@ _0200671A: add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, r5, #0x0 add r1, sp, #0x4 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, r5, #0x0 add r1, sp, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile ldr r2, [r5, #0x4c] ldr r1, [sp, #0x4] add r2, #0x8 add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile ldr r2, [sp, #0x0] ldr r1, [sp, #0x4] add r0, r6, #0x0 @@ -11843,7 +11843,7 @@ _0200671A: add r0, r5, #0x0 add r1, r4, #0x0 sub r2, r3, r2 - blx FUN_020D180C + blx FS_ReadFile _0200676C: add r0, r4, #0x0 add sp, #0x8 @@ -11861,7 +11861,7 @@ FUN_02006774: ; 0x02006774 add r6, r2, #0x0 cmp r0, r4 bhi _0200678A - bl FUN_02020C2C + bl ErrorHandling _0200678A: ldr r2, [r5, #0x48] lsl r1, r4, #0x3 @@ -11869,28 +11869,28 @@ _0200678A: add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, r5, #0x0 add r1, sp, #0x4 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, r5, #0x0 add r1, sp, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile ldr r2, [r5, #0x4c] ldr r1, [sp, #0x4] add r2, #0x8 add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile ldr r3, [sp, #0x0] ldr r2, [sp, #0x4] add r0, r5, #0x0 add r1, r6, #0x0 sub r2, r3, r2 - blx FUN_020D180C + blx FS_ReadFile add sp, #0x8 pop {r4-r6, pc} @@ -11904,7 +11904,7 @@ FUN_020067D0: ; 0x020067D0 add r4, r1, #0x0 cmp r0, r4 bhi _020067E4 - bl FUN_02020C2C + bl ErrorHandling _020067E4: ldr r2, [r5, #0x48] lsl r1, r4, #0x3 @@ -11912,15 +11912,15 @@ _020067E4: add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, r5, #0x0 add r1, sp, #0x4 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile add r0, r5, #0x0 add r1, sp, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile ldr r1, [sp, #0x0] ldr r0, [sp, #0x4] sub r0, r1, r0 @@ -11939,7 +11939,7 @@ FUN_02006814: ; 0x02006814 add r7, r3, #0x0 cmp r0, r4 bhi _0200682A - bl FUN_02020C2C + bl ErrorHandling _0200682A: ldr r2, [r5, #0x48] lsl r1, r4, #0x3 @@ -11947,11 +11947,11 @@ _0200682A: add r1, r2, r1 add r0, r5, #0x0 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, r5, #0x0 add r1, sp, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile ldr r2, [r5, #0x4c] ldr r1, [sp, #0x0] add r2, #0x8 @@ -11959,11 +11959,11 @@ _0200682A: add r0, r5, #0x0 add r1, r6, r1 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile ldr r1, [sp, #0x18] add r0, r5, #0x0 add r2, r7, #0x0 - blx FUN_020D180C + blx FS_ReadFile pop {r3-r7, pc} .balign 4 @@ -12124,7 +12124,7 @@ _02006982: ldr r0, [sp, #0x8] add r1, r5, #0x0 ldr r0, [r0, #0xc] - blx FUN_020CC15C + blx DC_FlushRange cmp r4, #0x7 bhi _02006A14 add r0, r4, r4 @@ -12234,7 +12234,7 @@ _02006A60: ldr r0, [sp, #0x4] add r1, r4, #0x0 ldr r0, [r0, #0x14] - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [sp, #0x4] ldr r3, _02006A88 ; =0x020ECBA0 lsl r5, r5, #0x2 @@ -12581,7 +12581,7 @@ _02006CFC: beq _02006D10 add r0, r4, #0x0 add r1, r5, #0x0 - blx FUN_020CE528 + blx MI_UncompressLZ8 add r0, r4, #0x0 bl FUN_02016A18 _02006D10: @@ -12647,7 +12647,7 @@ _02006D7C: beq _02006D90 add r0, r4, #0x0 add r1, r5, #0x0 - blx FUN_020CE528 + blx MI_UncompressLZ8 add r0, r4, #0x0 bl FUN_02016A18 _02006D90: @@ -12700,7 +12700,7 @@ FUN_02006D98: ; 0x02006D98 ldr r1, [r4, r1] mov r0, #0x0 mov r2, #0x4 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r5, #0x0 mov r1, #0xc0 bl FUN_02016998 @@ -12710,7 +12710,7 @@ FUN_02006D98: ; 0x02006D98 ldr r1, [r4, r1] mov r0, #0x0 mov r2, #0x4 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r6, #0x0 add r5, r4, #0x0 add r7, r6, #0x0 @@ -12718,7 +12718,7 @@ _02006E12: add r0, r7, #0x0 add r1, r5, #0x0 mov r2, #0x98 - blx FUN_020CE240 + blx MIi_CpuClearFast add r6, r6, #0x1 add r5, #0x98 cmp r6, #0x4 @@ -12759,7 +12759,7 @@ _02006E12: ldrb r1, [r1, #0x0] ldr r0, [r4, r0] lsl r2, r2, #0xe - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 mov r7, #0xab ldr r6, _02006ECC ; =0x00005050 @@ -13410,14 +13410,14 @@ _0200734A: thumb_func_start FUN_0200737C FUN_0200737C: ; 0x0200737C add r2, r0, #0x0 - ldr r3, _0200738C ; =FUN_020CE3E0 + ldr r3, _0200738C ; =MI_CpuCopy8 add r2, #0x84 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0x14 bx r3 nop -_0200738C: .word FUN_020CE3E0 +_0200738C: .word MI_CpuCopy8 thumb_func_start FUN_02007390 FUN_02007390: ; 0x02007390 @@ -13452,7 +13452,7 @@ _020073AE: _020073BE: cmp r4, #0x4 bne _020073C6 - bl FUN_02020C2C + bl ErrorHandling _020073C6: ldr r0, [sp, #0x30] ldr r3, [sp, #0x14] @@ -13487,13 +13487,13 @@ FUN_020073E8: ; 0x020073E8 str r3, [sp, #0x4] lsr r0, r0, #0x1f beq _02007408 - bl FUN_02020C2C + bl ErrorHandling _02007408: add r5, r4, r6 mov r0, #0x0 add r1, r5, #0x0 mov r2, #0x98 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r1, [r4, r6] mov r0, #0x1 bic r1, r0 @@ -13622,7 +13622,7 @@ _02007408: add r1, r4, r6 add r1, #0x84 mov r2, #0x14 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _02007518: add r0, r4, r6 add sp, #0xc @@ -14326,7 +14326,7 @@ _020079CC: lsr r0, r0, #0x1e pop {r3, pc} _020079D6: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -15540,7 +15540,7 @@ FUN_02008268: ; 0x02008268 push {r4, lr} add r4, r0, #0x0 bne _02008272 - bl FUN_02020C2C + bl ErrorHandling _02008272: ldr r0, [r4, #0x0] lsl r0, r0, #0x1f @@ -16659,33 +16659,33 @@ FUN_02008AA4: ; 0x02008AA4 str r4, [sp, #0xc] cmp r0, #0x0 bne _02008AC2 - bl FUN_02020C2C + bl ErrorHandling _02008AC2: ldr r0, [sp, #0x48] cmp r0, #0x0 bne _02008ACC - bl FUN_02020C2C + bl ErrorHandling _02008ACC: ldr r0, [sp, #0x50] cmp r0, #0x0 bne _02008AD6 - bl FUN_02020C2C + bl ErrorHandling _02008AD6: ldr r0, [sp, #0x4c] cmp r0, #0x0 bne _02008AE0 - bl FUN_02020C2C + bl ErrorHandling _02008AE0: cmp r5, #0x0 bne _02008AE8 - bl FUN_02020C2C + bl ErrorHandling _02008AE8: ldr r0, [sp, #0x44] add r1, r6, #0x0 bl FUN_020094F0 add r7, r0, #0x0 bne _02008AF8 - bl FUN_02020C2C + bl ErrorHandling _02008AF8: ldr r0, [sp, #0x48] ldr r1, [sp, #0x0] @@ -16693,7 +16693,7 @@ _02008AF8: str r0, [sp, #0x14] cmp r0, #0x0 bne _02008B0A - bl FUN_02020C2C + bl ErrorHandling _02008B0A: ldr r0, [sp, #0x4c] ldr r1, [sp, #0x4] @@ -16701,7 +16701,7 @@ _02008B0A: str r0, [sp, #0x10] cmp r0, #0x0 bne _02008B1C - bl FUN_02020C2C + bl ErrorHandling _02008B1C: ldr r0, [sp, #0x50] cmp r0, #0x0 @@ -16715,7 +16715,7 @@ _02008B1C: str r0, [sp, #0xc] cmp r0, #0x0 bne _02008B3A - bl FUN_02020C2C + bl ErrorHandling _02008B3A: ldr r0, [sp, #0x54] cmp r0, #0x0 @@ -16745,7 +16745,7 @@ _02008B62: bl FUN_02009C80 add r6, r0, #0x0 bne _02008B78 - bl FUN_02020C2C + bl ErrorHandling _02008B78: add r0, r7, #0x0 bl FUN_02009544 @@ -16756,7 +16756,7 @@ _02008B82: bl FUN_02009C5C add r6, r0, #0x0 bne _02008B90 - bl FUN_02020C2C + bl ErrorHandling _02008B90: mov r0, #0x0 str r0, [r5, #0x4] @@ -16888,7 +16888,7 @@ FUN_02008C80: ; 0x02008C80 push {r4, lr} add r4, r0, #0x0 bne _02008C8A - bl FUN_02020C2C + bl ErrorHandling _02008C8A: ldr r0, [r4, #0x0] cmp r0, #0x0 @@ -17050,7 +17050,7 @@ _02008DB6: bl FUN_0201D194 pop {r4, pc} _02008DC4: - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} nop _02008DCC: .word 0x00100010 @@ -17104,17 +17104,17 @@ FUN_02008E2C: ; 0x02008E2C push {r4, lr} add r4, r0, #0x0 bne _02008E36 - bl FUN_02020C2C + bl ErrorHandling _02008E36: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02008E40 - bl FUN_02020C2C + bl ErrorHandling _02008E40: ldr r0, [r4, #0x4] cmp r0, #0x0 bne _02008E4A - bl FUN_02020C2C + bl ErrorHandling _02008E4A: add r0, r4, #0x0 bl FUN_020094C4 @@ -17140,29 +17140,29 @@ FUN_02008E6C: ; 0x02008E6C add r7, r3, #0x0 cmp r5, #0x0 bne _02008E80 - bl FUN_02020C2C + bl ErrorHandling _02008E80: cmp r4, #0x0 bne _02008E88 - bl FUN_02020C2C + bl ErrorHandling _02008E88: ldr r0, [r4, #0x4] cmp r0, r6 bgt _02008E92 - bl FUN_02020C2C + bl ErrorHandling _02008E92: ldr r1, [r5, #0x10] ldr r0, [r4, #0x8] cmp r1, r0 beq _02008E9E - bl FUN_02020C2C + bl ErrorHandling _02008E9E: add r0, r5, #0x0 bl FUN_020097D0 str r0, [sp, #0x1c] cmp r0, #0x0 bne _02008EAE - bl FUN_02020C2C + bl ErrorHandling _02008EAE: ldrb r0, [r4, #0xc] cmp r0, #0x0 @@ -17177,7 +17177,7 @@ _02008EAE: bl FUN_0200945C cmp r0, #0x1 beq _02008ECE - bl FUN_02020C2C + bl ErrorHandling _02008ECE: ldr r0, [r6, #0x44] ldr r1, [sp, #0x1c] @@ -17202,7 +17202,7 @@ _02008EEA: bl FUN_0200945C cmp r0, #0x1 beq _02008F02 - bl FUN_02020C2C + bl ErrorHandling _02008F02: ldr r0, [r6, #0x8] ldr r1, [sp, #0x1c] @@ -17240,18 +17240,18 @@ FUN_02008F34: ; 0x02008F34 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02008F48 - bl FUN_02020C2C + bl ErrorHandling _02008F48: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02008F52 - bl FUN_02020C2C + bl ErrorHandling _02008F52: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02008F60 - bl FUN_02020C2C + bl ErrorHandling _02008F60: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17287,18 +17287,18 @@ FUN_02008F90: ; 0x02008F90 str r2, [sp, #0x1c] cmp r5, #0x0 bne _02008FA4 - bl FUN_02020C2C + bl ErrorHandling _02008FA4: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _02008FAE - bl FUN_02020C2C + bl ErrorHandling _02008FAE: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02008FBC - bl FUN_02020C2C + bl ErrorHandling _02008FBC: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17334,18 +17334,18 @@ FUN_02008FEC: ; 0x02008FEC str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009000 - bl FUN_02020C2C + bl ErrorHandling _02009000: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _0200900A - bl FUN_02020C2C + bl ErrorHandling _0200900A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009018 - bl FUN_02020C2C + bl ErrorHandling _02009018: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17383,18 +17383,18 @@ FUN_0200904C: ; 0x0200904C str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009060 - bl FUN_02020C2C + bl ErrorHandling _02009060: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _0200906A - bl FUN_02020C2C + bl ErrorHandling _0200906A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009078 - bl FUN_02020C2C + bl ErrorHandling _02009078: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17432,13 +17432,13 @@ FUN_020090AC: ; 0x020090AC str r2, [sp, #0x1c] cmp r5, #0x0 bne _020090C0 - bl FUN_02020C2C + bl ErrorHandling _020090C0: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _020090CE - bl FUN_02020C2C + bl ErrorHandling _020090CE: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17473,21 +17473,21 @@ FUN_020090FC: ; 0x020090FC str r3, [sp, #0x20] cmp r5, #0x0 bne _02009110 - bl FUN_02020C2C + bl ErrorHandling _02009110: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _0200911A - bl FUN_02020C2C + bl ErrorHandling _0200911A: cmp r4, #0x0 bne _02009122 - bl FUN_02020C2C + bl ErrorHandling _02009122: ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0200912C - bl FUN_02020C2C + bl ErrorHandling _0200912C: add r0, r4, #0x0 bl FUN_02009530 @@ -17526,21 +17526,21 @@ FUN_02009168: ; 0x02009168 str r3, [sp, #0x20] cmp r5, #0x0 bne _0200917C - bl FUN_02020C2C + bl ErrorHandling _0200917C: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _02009186 - bl FUN_02020C2C + bl ErrorHandling _02009186: cmp r4, #0x0 bne _0200918E - bl FUN_02020C2C + bl ErrorHandling _0200918E: ldr r0, [r4, #0x4] cmp r0, #0x1 beq _02009198 - bl FUN_02020C2C + bl ErrorHandling _02009198: add r0, r4, #0x0 bl FUN_02009530 @@ -17584,18 +17584,18 @@ FUN_020091E0: ; 0x020091E0 str r2, [sp, #0x1c] cmp r5, #0x0 bne _020091F4 - bl FUN_02020C2C + bl ErrorHandling _020091F4: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _020091FE - bl FUN_02020C2C + bl ErrorHandling _020091FE: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _0200920C - bl FUN_02020C2C + bl ErrorHandling _0200920C: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17631,18 +17631,18 @@ FUN_0200923C: ; 0x0200923C str r2, [sp, #0x1c] cmp r5, #0x0 bne _02009250 - bl FUN_02020C2C + bl ErrorHandling _02009250: ldr r0, [r5, #0x10] cmp r0, #0x0 beq _0200925A - bl FUN_02020C2C + bl ErrorHandling _0200925A: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009268 - bl FUN_02020C2C + bl ErrorHandling _02009268: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17678,18 +17678,18 @@ FUN_02009298: ; 0x02009298 str r2, [sp, #0x1c] cmp r5, #0x0 bne _020092AC - bl FUN_02020C2C + bl ErrorHandling _020092AC: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _020092B6 - bl FUN_02020C2C + bl ErrorHandling _020092B6: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _020092C4 - bl FUN_02020C2C + bl ErrorHandling _020092C4: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17727,18 +17727,18 @@ FUN_020092F8: ; 0x020092F8 str r2, [sp, #0x1c] cmp r5, #0x0 bne _0200930C - bl FUN_02020C2C + bl ErrorHandling _0200930C: ldr r0, [r5, #0x10] cmp r0, #0x1 beq _02009316 - bl FUN_02020C2C + bl ErrorHandling _02009316: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _02009324 - bl FUN_02020C2C + bl ErrorHandling _02009324: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17776,13 +17776,13 @@ FUN_02009358: ; 0x02009358 str r2, [sp, #0x1c] cmp r5, #0x0 bne _0200936C - bl FUN_02020C2C + bl ErrorHandling _0200936C: add r0, r5, #0x0 bl FUN_020097D0 add r6, r0, #0x0 bne _0200937A - bl FUN_02020C2C + bl ErrorHandling _0200937A: ldr r0, [sp, #0x38] str r4, [sp, #0x0] @@ -17817,11 +17817,11 @@ FUN_020093A8: ; 0x020093A8 add r7, r3, #0x0 cmp r5, #0x0 bne _020093BC - bl FUN_02020C2C + bl ErrorHandling _020093BC: cmp r4, #0x0 bne _020093C4 - bl FUN_02020C2C + bl ErrorHandling _020093C4: str r6, [sp, #0x0] str r7, [sp, #0x4] @@ -17913,7 +17913,7 @@ FUN_0200945C: ; 0x0200945C add r4, r1, #0x0 cmp r5, #0x0 bne _0200946A - bl FUN_02020C2C + bl ErrorHandling _0200946A: ldr r0, [r5, #0x0] add r1, r4, #0x0 @@ -17925,7 +17925,7 @@ FUN_02009474: ; 0x02009474 push {r4, lr} add r4, r0, #0x0 bne _0200947E - bl FUN_02020C2C + bl ErrorHandling _0200947E: add r0, r4, #0x0 bl FUN_02009920 @@ -17942,12 +17942,12 @@ FUN_02009490: ; 0x02009490 add r4, r1, #0x0 cmp r5, #0x0 bne _0200949E - bl FUN_02020C2C + bl ErrorHandling _0200949E: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _020094A8 - bl FUN_02020C2C + bl ErrorHandling _020094A8: add r0, r4, #0x0 bl FUN_02009920 @@ -17996,7 +17996,7 @@ FUN_020094F0: ; 0x020094F0 add r7, r1, #0x0 cmp r5, #0x0 bne _020094FE - bl FUN_02020C2C + bl ErrorHandling _020094FE: ldr r0, [r5, #0x8] mov r6, #0x0 @@ -18031,7 +18031,7 @@ FUN_02009530: ; 0x02009530 push {r4, lr} add r4, r0, #0x0 bne _0200953A - bl FUN_02020C2C + bl ErrorHandling _0200953A: ldr r0, [r4, #0x0] bl FUN_02020E38 @@ -18045,7 +18045,7 @@ FUN_02009544: ; 0x02009544 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _02009552 - bl FUN_02020C2C + bl ErrorHandling _02009552: add r0, r4, #0x0 bl FUN_02009934 @@ -18059,7 +18059,7 @@ FUN_0200955C: ; 0x0200955C ldr r0, [r4, #0x4] cmp r0, #0x1 beq _0200956A - bl FUN_02020C2C + bl ErrorHandling _0200956A: add r0, r4, #0x0 bl FUN_02009934 @@ -18073,7 +18073,7 @@ FUN_02009574: ; 0x02009574 ldr r0, [r4, #0x4] cmp r0, #0x2 beq _02009582 - bl FUN_02020C2C + bl ErrorHandling _02009582: add r0, r4, #0x0 bl FUN_02009934 @@ -18087,7 +18087,7 @@ FUN_0200958C: ; 0x0200958C ldr r0, [r4, #0x4] cmp r0, #0x3 beq _0200959A - bl FUN_02020C2C + bl ErrorHandling _0200959A: add r0, r4, #0x0 bl FUN_02009934 @@ -18101,7 +18101,7 @@ FUN_020095A4: ; 0x020095A4 ldr r0, [r4, #0x4] cmp r0, #0x4 beq _020095B2 - bl FUN_02020C2C + bl ErrorHandling _020095B2: add r0, r4, #0x0 bl FUN_02009934 @@ -18115,7 +18115,7 @@ FUN_020095BC: ; 0x020095BC ldr r0, [r4, #0x4] cmp r0, #0x5 beq _020095CA - bl FUN_02020C2C + bl ErrorHandling _020095CA: add r0, r4, #0x0 bl FUN_02009934 @@ -18127,7 +18127,7 @@ FUN_020095D4: ; 0x020095D4 push {r4, lr} add r4, r0, #0x0 bne _020095DE - bl FUN_02020C2C + bl ErrorHandling _020095DE: ldr r0, [r4, #0x4] pop {r4, pc} @@ -18138,7 +18138,7 @@ FUN_020095E4: ; 0x020095E4 push {r4, lr} add r4, r0, #0x0 bne _020095EE - bl FUN_02020C2C + bl ErrorHandling _020095EE: ldr r0, [r4, #0x4] cmp r0, #0x0 @@ -18163,7 +18163,7 @@ FUN_02009610: ; 0x02009610 push {r4, lr} add r4, r0, #0x0 bne _0200961A - bl FUN_02020C2C + bl ErrorHandling _0200961A: ldr r0, [r4, #0x4] cmp r0, #0x1 @@ -18184,7 +18184,7 @@ FUN_02009630: ; 0x02009630 add r4, r1, #0x0 cmp r5, #0x0 bne _0200963E - bl FUN_02020C2C + bl ErrorHandling _0200963E: ldr r0, [r5, #0x4] cmp r0, #0x0 @@ -18222,7 +18222,7 @@ FUN_02009668: ; 0x02009668 add r6, r2, #0x0 cmp r4, #0x0 bne _02009678 - bl FUN_02020C2C + bl ErrorHandling _02009678: ldr r0, [r5, #0x0] str r0, [r4, #0x8] @@ -18275,7 +18275,7 @@ FUN_020096CC: ; 0x020096CC push {r4, lr} add r4, r0, #0x0 bne _020096D6 - bl FUN_02020C2C + bl ErrorHandling _020096D6: ldr r0, [r4, #0x4] pop {r4, pc} @@ -18288,12 +18288,12 @@ FUN_020096DC: ; 0x020096DC add r4, r1, #0x0 cmp r5, #0x0 bne _020096EA - bl FUN_02020C2C + bl ErrorHandling _020096EA: ldr r0, [r5, #0x4] cmp r0, r4 bgt _020096F4 - bl FUN_02020C2C + bl ErrorHandling _020096F4: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] @@ -18318,12 +18318,12 @@ FUN_02009710: ; 0x02009710 add r4, r1, #0x0 cmp r5, #0x0 bne _0200971E - bl FUN_02020C2C + bl ErrorHandling _0200971E: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009728 - bl FUN_02020C2C + bl ErrorHandling _02009728: ldrb r0, [r5, #0xc] cmp r0, #0x1 @@ -18344,12 +18344,12 @@ FUN_0200973C: ; 0x0200973C add r4, r1, #0x0 cmp r5, #0x0 bne _0200974A - bl FUN_02020C2C + bl ErrorHandling _0200974A: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009754 - bl FUN_02020C2C + bl ErrorHandling _02009754: ldrb r0, [r5, #0xc] cmp r0, #0x1 @@ -18370,12 +18370,12 @@ FUN_02009768: ; 0x02009768 add r4, r1, #0x0 cmp r5, #0x0 bne _02009776 - bl FUN_02020C2C + bl ErrorHandling _02009776: ldr r0, [r5, #0x4] cmp r0, r4 bgt _02009780 - bl FUN_02020C2C + bl ErrorHandling _02009780: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] @@ -18400,12 +18400,12 @@ FUN_0200979C: ; 0x0200979C add r4, r1, #0x0 cmp r5, #0x0 bne _020097AA - bl FUN_02020C2C + bl ErrorHandling _020097AA: ldr r0, [r5, #0x4] cmp r0, r4 bgt _020097B4 - bl FUN_02020C2C + bl ErrorHandling _020097B4: ldrb r0, [r5, #0xc] ldr r1, [r5, #0x0] @@ -18625,12 +18625,12 @@ FUN_02009934: ; 0x02009934 push {r4, lr} add r4, r0, #0x0 bne _0200993E - bl FUN_02020C2C + bl ErrorHandling _0200993E: ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02009948 - bl FUN_02020C2C + bl ErrorHandling _02009948: ldr r0, [r4, #0x8] pop {r4, pc} @@ -18763,7 +18763,7 @@ _02009A34: beq _02009A48 add r0, r4, #0x0 add r1, r5, #0x0 - blx FUN_020CE528 + blx MI_UncompressLZ8 add r0, r4, #0x0 bl FUN_02016A18 _02009A48: @@ -18779,13 +18779,13 @@ FUN_02009A50: ; 0x02009A50 sub sp, #0x10 add r4, r0, #0x0 bne _02009A5C - bl FUN_02020C2C + bl ErrorHandling _02009A5C: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009A6A - bl FUN_02020C2C + bl ErrorHandling _02009A6A: add r0, r4, #0x0 bl FUN_02009544 @@ -18808,7 +18808,7 @@ FUN_02009A90: ; 0x02009A90 push {r4-r6, lr} add r5, r0, #0x0 bne _02009A9A - bl FUN_02020C2C + bl ErrorHandling _02009A9A: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -18823,7 +18823,7 @@ _02009AA4: bl FUN_02009A50 cmp r0, #0x0 bne _02009AB8 - bl FUN_02020C2C + bl ErrorHandling _02009AB8: ldr r0, [r5, #0x4] add r6, r6, #0x1 @@ -18839,13 +18839,13 @@ FUN_02009AC4: ; 0x02009AC4 sub sp, #0x10 add r4, r0, #0x0 bne _02009AD0 - bl FUN_02020C2C + bl ErrorHandling _02009AD0: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009ADE - bl FUN_02020C2C + bl ErrorHandling _02009ADE: add r0, r4, #0x0 bl FUN_02009544 @@ -18869,13 +18869,13 @@ FUN_02009B04: ; 0x02009B04 sub sp, #0x10 add r4, r0, #0x0 bne _02009B10 - bl FUN_02020C2C + bl ErrorHandling _02009B10: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009B1E - bl FUN_02020C2C + bl ErrorHandling _02009B1E: add r0, r4, #0x0 bl FUN_02009544 @@ -18898,7 +18898,7 @@ FUN_02009B44: ; 0x02009B44 push {r4-r6, lr} add r5, r0, #0x0 bne _02009B4E - bl FUN_02020C2C + bl ErrorHandling _02009B4E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -18913,7 +18913,7 @@ _02009B58: bl FUN_02009B04 cmp r0, #0x0 bne _02009B6C - bl FUN_02020C2C + bl ErrorHandling _02009B6C: ldr r0, [r5, #0x4] add r6, r6, #0x1 @@ -18929,13 +18929,13 @@ FUN_02009B78: ; 0x02009B78 sub sp, #0x10 add r4, r0, #0x0 bne _02009B84 - bl FUN_02020C2C + bl ErrorHandling _02009B84: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009B92 - bl FUN_02020C2C + bl ErrorHandling _02009B92: add r0, r4, #0x0 bl FUN_02009544 @@ -18960,11 +18960,11 @@ FUN_02009BB8: ; 0x02009BB8 add r5, r1, #0x0 cmp r4, #0x0 bne _02009BC6 - bl FUN_02020C2C + bl ErrorHandling _02009BC6: cmp r5, #0x0 bne _02009BCE - bl FUN_02020C2C + bl ErrorHandling _02009BCE: add r0, r4, #0x0 bl FUN_02009530 @@ -18982,7 +18982,7 @@ FUN_02009BE8: ; 0x02009BE8 push {r3-r5, lr} add r5, r0, #0x0 bne _02009BF2 - bl FUN_02020C2C + bl ErrorHandling _02009BF2: add r0, r5, #0x0 bl FUN_02009530 @@ -19000,13 +19000,13 @@ FUN_02009C0C: ; 0x02009C0C push {r4, lr} add r4, r0, #0x0 bne _02009C16 - bl FUN_02020C2C + bl ErrorHandling _02009C16: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C24 - bl FUN_02020C2C + bl ErrorHandling _02009C24: add r0, r4, #0x0 bl FUN_02009530 @@ -19018,7 +19018,7 @@ FUN_02009C30: ; 0x02009C30 push {r4-r6, lr} add r5, r0, #0x0 bne _02009C3A - bl FUN_02020C2C + bl ErrorHandling _02009C3A: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -19045,13 +19045,13 @@ FUN_02009C5C: ; 0x02009C5C push {r4, lr} add r4, r0, #0x0 bne _02009C66 - bl FUN_02020C2C + bl ErrorHandling _02009C66: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C74 - bl FUN_02020C2C + bl ErrorHandling _02009C74: add r0, r4, #0x0 bl FUN_02009530 @@ -19065,23 +19065,23 @@ FUN_02009C80: ; 0x02009C80 add r5, r1, #0x0 cmp r4, #0x0 bne _02009C8E - bl FUN_02020C2C + bl ErrorHandling _02009C8E: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x0 beq _02009C9C - bl FUN_02020C2C + bl ErrorHandling _02009C9C: cmp r5, #0x0 bne _02009CA4 - bl FUN_02020C2C + bl ErrorHandling _02009CA4: add r0, r5, #0x0 bl FUN_020095D4 cmp r0, #0x2 beq _02009CB2 - bl FUN_02020C2C + bl ErrorHandling _02009CB2: add r0, r4, #0x0 bl FUN_02009530 @@ -19106,7 +19106,7 @@ FUN_02009CDC: ; 0x02009CDC push {r4, lr} add r4, r0, #0x0 bne _02009CE6 - bl FUN_02020C2C + bl ErrorHandling _02009CE6: add r0, r4, #0x0 bl FUN_0201D4F0 @@ -19119,13 +19119,13 @@ FUN_02009CF0: ; 0x02009CF0 sub sp, #0x10 add r4, r0, #0x0 bne _02009CFC - bl FUN_02020C2C + bl ErrorHandling _02009CFC: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009D0A - bl FUN_02020C2C + bl ErrorHandling _02009D0A: add r0, r4, #0x0 bl FUN_0200955C @@ -19149,7 +19149,7 @@ FUN_02009D34: ; 0x02009D34 push {r4-r6, lr} add r5, r0, #0x0 bne _02009D3E - bl FUN_02020C2C + bl ErrorHandling _02009D3E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -19164,7 +19164,7 @@ _02009D48: bl FUN_02009CF0 cmp r0, #0x0 bne _02009D5C - bl FUN_02020C2C + bl ErrorHandling _02009D5C: ldr r0, [r5, #0x4] add r6, r6, #0x1 @@ -19180,13 +19180,13 @@ FUN_02009D68: ; 0x02009D68 sub sp, #0x10 add r4, r0, #0x0 bne _02009D74 - bl FUN_02020C2C + bl ErrorHandling _02009D74: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009D82 - bl FUN_02020C2C + bl ErrorHandling _02009D82: add r0, r4, #0x0 bl FUN_0200955C @@ -19210,7 +19210,7 @@ FUN_02009DAC: ; 0x02009DAC push {r4-r6, lr} add r5, r0, #0x0 bne _02009DB6 - bl FUN_02020C2C + bl ErrorHandling _02009DB6: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -19225,7 +19225,7 @@ _02009DC0: bl FUN_02009D68 cmp r0, #0x0 bne _02009DD4 - bl FUN_02020C2C + bl ErrorHandling _02009DD4: ldr r0, [r5, #0x4] add r6, r6, #0x1 @@ -19240,7 +19240,7 @@ FUN_02009DE0: ; 0x02009DE0 push {r3-r5, lr} add r5, r0, #0x0 bne _02009DEA - bl FUN_02020C2C + bl ErrorHandling _02009DEA: add r0, r5, #0x0 bl FUN_02009530 @@ -19258,13 +19258,13 @@ FUN_02009E04: ; 0x02009E04 push {r4, lr} add r4, r0, #0x0 bne _02009E0E - bl FUN_02020C2C + bl ErrorHandling _02009E0E: add r0, r4, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009E1C - bl FUN_02020C2C + bl ErrorHandling _02009E1C: add r0, r4, #0x0 bl FUN_02009530 @@ -19276,7 +19276,7 @@ FUN_02009E28: ; 0x02009E28 push {r4-r6, lr} add r5, r0, #0x0 bne _02009E32 - bl FUN_02020C2C + bl ErrorHandling _02009E32: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -19305,13 +19305,13 @@ FUN_02009E54: ; 0x02009E54 add r4, r1, #0x0 cmp r5, #0x0 bne _02009E62 - bl FUN_02020C2C + bl ErrorHandling _02009E62: add r0, r5, #0x0 bl FUN_020095D4 cmp r0, #0x1 beq _02009E70 - bl FUN_02020C2C + bl ErrorHandling _02009E70: add r0, r5, #0x0 bl FUN_02009530 @@ -19395,7 +19395,7 @@ FUN_02009EF0: ; 0x02009EF0 add r7, r3, #0x0 cmp r0, #0x0 beq _02009F08 - bl FUN_02020C2C + bl ErrorHandling _02009F08: ldr r0, [sp, #0x30] mov r1, #0x3c @@ -19404,7 +19404,7 @@ _02009F08: cmp r0, #0x0 str r0, [r1, #0x0] bne _02009F1C - bl FUN_02020C2C + bl ErrorHandling _02009F1C: ldr r1, _02009F7C ; =0x021C4670 lsl r3, r6, #0x10 @@ -19425,7 +19425,7 @@ _02009F1C: blx FUN_020B0E34 cmp r0, #0x0 bne _02009F48 - bl FUN_02020C2C + bl ErrorHandling _02009F48: ldr r0, [sp, #0x2c] ldr r1, [sp, #0x20] @@ -19448,7 +19448,7 @@ _02009F48: blx FUN_020B0E34 cmp r0, #0x0 bne _02009F78 - bl FUN_02020C2C + bl ErrorHandling _02009F78: add sp, #0x8 pop {r3-r7, pc} @@ -19479,7 +19479,7 @@ FUN_02009FA0: ; 0x02009FA0 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02009FAE - bl FUN_02020C2C + bl ErrorHandling _02009FAE: ldr r0, _02009FD4 ; =0x021C4670 ldr r0, [r0, #0x0] @@ -19511,7 +19511,7 @@ FUN_02009FD8: ; 0x02009FD8 add r4, r3, #0x0 cmp r0, #0x0 bne _02009FF0 - bl FUN_02020C2C + bl ErrorHandling _02009FF0: cmp r5, #0x1 bne _0200A00C @@ -19540,11 +19540,11 @@ _0200A00C: pop {r4-r7, pc} .balign 4 _0200A024: .word 0x021C4670 -_0200A028: .word FUN_020213A0 + 1 -_0200A02C: .word FUN_0200A074 + 1 -_0200A030: .word FUN_0200A0B8 + 1 -_0200A034: .word FUN_0200A094 + 1 -_0200A038: .word FUN_0200A0DC + 1 +_0200A028: .word FUN_020213A0 +_0200A02C: .word FUN_0200A074 +_0200A030: .word FUN_0200A0B8 +_0200A034: .word FUN_0200A094 +_0200A038: .word FUN_0200A0DC thumb_func_start FUN_0200A03C FUN_0200A03C: ; 0x0200A03C @@ -19554,7 +19554,7 @@ FUN_0200A03C: ; 0x0200A03C ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0200A04C - bl FUN_02020C2C + bl ErrorHandling _0200A04C: cmp r4, #0x0 bne _0200A056 @@ -19574,14 +19574,14 @@ FUN_0200A064: ; 0x0200A064 ldr r3, _0200A068 ; =FUN_020203CC bx r3 .balign 4 -_0200A068: .word FUN_020203CC + 1 +_0200A068: .word FUN_020203CC thumb_func_start FUN_0200A06C FUN_0200A06C: ; 0x0200A06C ldr r3, _0200A070 ; =FUN_02020404 bx r3 .balign 4 -_0200A070: .word FUN_02020404 + 1 +_0200A070: .word FUN_02020404 thumb_func_start FUN_0200A074 FUN_0200A074: ; 0x0200A074 @@ -19594,7 +19594,7 @@ FUN_0200A074: ; 0x0200A074 blx FUN_020B0C7C add r4, r0, #0x0 bne _0200A08C - bl FUN_02020C2C + bl ErrorHandling _0200A08C: add r0, r4, #0x0 pop {r4, pc} @@ -19613,7 +19613,7 @@ FUN_0200A094: ; 0x0200A094 blx FUN_020B0C7C add r4, r0, #0x0 bne _0200A0AE - bl FUN_02020C2C + bl ErrorHandling _0200A0AE: add r0, r4, #0x0 pop {r4, pc} @@ -19631,7 +19631,7 @@ FUN_0200A0B8: ; 0x0200A0B8 ldr r0, _0200A0D8 ; =0x0000FFFE cmp r4, r0 bne _0200A0D0 - bl FUN_02020C2C + bl ErrorHandling _0200A0D0: add r0, r4, #0x0 pop {r4, pc} @@ -19651,7 +19651,7 @@ FUN_0200A0DC: ; 0x0200A0DC ldr r0, _0200A100 ; =0x0000FFFE cmp r4, r0 bne _0200A0F6 - bl FUN_02020C2C + bl ErrorHandling _0200A0F6: add r0, r4, #0x0 pop {r4, pc} @@ -19753,7 +19753,7 @@ FUN_0200A1A0: ; 0x0200A1A0 add r7, r3, #0x0 cmp r0, #0x0 beq _0200A1B4 - bl FUN_02020C2C + bl ErrorHandling _0200A1B4: ldr r1, [sp, #0x18] mov r0, #0x1 @@ -19787,12 +19787,12 @@ _0200A1EA: mov r0, #0x12 ldrsh r0, [r5, r0] add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f strh r0, [r5, #0x14] mov r0, #0x12 ldrsh r0, [r5, r0] add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f strh r1, [r5, #0x16] mov r0, #0x0 strh r0, [r5, #0x18] @@ -19883,11 +19883,11 @@ FUN_0200A2AC: ; 0x0200A2AC ldr r0, _0200A2CC ; =0x021C4694 mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0200A2D0 ; =0x021C4674 mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0200A2D4 ; =0x021C4674 mov r1, #0x0 str r1, [r0, #0x3c] @@ -19908,7 +19908,7 @@ FUN_0200A2D8: ; 0x0200A2D8 ldr r0, _0200A30C ; =0x021C4694 mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0200A310 ; =0x021C4674 mov r1, #0x0 str r1, [r0, #0x3c] @@ -19919,7 +19919,7 @@ _0200A2F2: ldr r0, _0200A314 ; =0x021C4674 mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0200A310 ; =0x021C4674 mov r1, #0x0 str r1, [r0, #0x1c] @@ -19995,14 +19995,14 @@ FUN_0200A384: ; 0x0200A384 ldr r3, _0200A388 ; =FUN_0200650C bx r3 .balign 4 -_0200A388: .word FUN_0200650C + 1 +_0200A388: .word FUN_0200650C thumb_func_start FUN_0200A38C FUN_0200A38C: ; 0x0200A38C ldr r3, _0200A390 ; =FUN_02016A18 bx r3 .balign 4 -_0200A390: .word FUN_02016A18 + 1 +_0200A390: .word FUN_02016A18 thumb_func_start FUN_0200A394 FUN_0200A394: ; 0x0200A394 @@ -20063,7 +20063,7 @@ _0200A3EA: add sp, #0x8 pop {r3-r7, pc} _0200A404: - bl FUN_02020C2C + bl ErrorHandling _0200A408: add sp, #0x8 pop {r3-r7, pc} @@ -20160,11 +20160,11 @@ FUN_0200A4C0: ; 0x0200A4C0 add r0, r1, #0x0 add r1, r3, #0x0 ldr r2, [r2, #0x4] - ldr r3, _0200A4D0 ; =FUN_020CE1E0 + ldr r3, _0200A4D0 ; =MIi_CpuCopy16 lsl r2, r2, #0x1 bx r3 nop -_0200A4D0: .word FUN_020CE1E0 +_0200A4D0: .word MIi_CpuCopy16 thumb_func_start FUN_0200A4D4 FUN_0200A4D4: ; 0x0200A4D4 @@ -20209,7 +20209,7 @@ FUN_0200A4D4: ; 0x0200A4D4 ldr r2, [sp, #0x4] add r0, r5, r0 add r1, r7, #0x0 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 ldr r1, _0200A57C ; =0x00091BD3 add r2, r4, #0x1 mul r1, r2 @@ -20242,7 +20242,7 @@ _0200A556: add sp, #0x10 pop {r3-r7, pc} _0200A56A: - bl FUN_02020C2C + bl ErrorHandling ldr r0, [sp, #0x0] bl FUN_02021A4C _0200A574: @@ -20296,7 +20296,7 @@ FUN_0200A584: ; 0x0200A584 ldr r2, [sp, #0x4] add r0, r5, r0 add r1, r7, #0x0 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 ldr r1, _0200A640 ; =0x00091BD3 add r2, r4, #0x1 mul r1, r2 @@ -20339,7 +20339,7 @@ _0200A626: mov r0, #0x0 pop {r3-r7, pc} _0200A62C: - bl FUN_02020C2C + bl ErrorHandling ldr r1, [sp, #0x0] mov r0, #0x4 bl FUN_020219F4 @@ -20457,7 +20457,7 @@ _0200A70A: add sp, #0x14 pop {r4-r7, pc} _0200A71E: - bl FUN_02020C2C + bl ErrorHandling ldr r0, [sp, #0x28] bl FUN_02021A4C _0200A728: @@ -20589,7 +20589,7 @@ _0200A824: add sp, #0x18 pop {r3-r7, pc} _0200A82A: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x4 add r1, r5, #0x0 bl FUN_020219F4 @@ -20917,7 +20917,7 @@ FUN_0200AA80: ; 0x0200AA80 mov r1, #0x20 bx r3 nop -_0200AA8C: .word FUN_0200AA90 + 1 +_0200AA8C: .word FUN_0200AA90 thumb_func_start FUN_0200AA90 FUN_0200AA90: ; 0x0200AA90 @@ -20927,12 +20927,12 @@ FUN_0200AA90: ; 0x0200AA90 str r1, [sp, #0x0] str r2, [sp, #0x4] bne _0200AAA0 - bl FUN_02020C2C + bl ErrorHandling _0200AAA0: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _0200AAAA - bl FUN_02020C2C + bl ErrorHandling _0200AAAA: ldr r0, [sp, #0x4] mov r1, #0x10 @@ -20995,7 +20995,7 @@ FUN_0200AB18: ; 0x0200AB18 ldr r0, [r5, #0x0] cmp r0, #0x0 bne _0200AB26 - bl FUN_02020C2C + bl ErrorHandling _0200AB26: ldr r0, [r5, #0x8] cmp r0, #0x0 @@ -21048,7 +21048,7 @@ FUN_0200AB70: ; 0x0200AB70 add r4, r3, #0x0 cmp r6, r0 blo _0200AB84 - bl FUN_02020C2C + bl ErrorHandling _0200AB84: ldr r0, [r5, #0x0] cmp r6, r0 @@ -22604,7 +22604,7 @@ FUN_0200B7A8: ; 0x0200B7A8 ldr r0, [r0, #0x4] bx r3 .balign 4 -_0200B7B4: .word FUN_02021FF8 + 1 +_0200B7B4: .word FUN_02021FF8 thumb_func_start FUN_0200B7B8 FUN_0200B7B8: ; 0x0200B7B8 @@ -22635,7 +22635,7 @@ _0200B7D4: ldr r0, [r7, #0x0] cmp r4, r0 blo _0200B7F8 - bl FUN_02020C2C + bl ErrorHandling _0200B7F8: ldr r2, [r7, #0x8] lsl r1, r4, #0x3 @@ -23047,13 +23047,13 @@ _0200BAD8: add r0, r1, r0 add r1, r6, r5 mov r2, #0x20 - blx FUN_020CE210 + blx MIi_CpuCopy32 b _0200BB00 _0200BAF6: ldr r1, [sp, #0x0] add r0, r6, r5 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 _0200BB00: add r4, r4, #0x2 ldrh r1, [r4, #0x8] @@ -23090,7 +23090,7 @@ FUN_0200BB34: ; 0x0200BB34 push {r4, lr} add r4, r0, #0x0 bne _0200BB3E - bl FUN_02020C2C + bl ErrorHandling _0200BB3E: ldr r0, [r4, #0x0] mov r1, #0x58 @@ -23130,7 +23130,7 @@ FUN_0200BB6C: ; 0x0200BB6C add r7, r3, #0x0 cmp r5, #0x0 bne _0200BB80 - bl FUN_02020C2C + bl ErrorHandling _0200BB80: cmp r5, #0x0 bne _0200BB8A @@ -23211,14 +23211,14 @@ FUN_0200BC14: ; 0x0200BC14 ldr r3, _0200BC18 ; =FUN_0201FFC8 bx r3 .balign 4 -_0200BC18: .word FUN_0201FFC8 + 1 +_0200BC18: .word FUN_0201FFC8 thumb_func_start FUN_0200BC1C FUN_0200BC1C: ; 0x0200BC1C push {r4, lr} add r4, r0, #0x0 bne _0200BC26 - bl FUN_02020C2C + bl ErrorHandling _0200BC26: ldr r0, [r4, #0x0] bl FUN_0201FDEC @@ -23230,14 +23230,14 @@ FUN_0200BC30: ; 0x0200BC30 ldr r3, _0200BC34 ; =FUN_02009F80 bx r3 .balign 4 -_0200BC34: .word FUN_02009F80 + 1 +_0200BC34: .word FUN_02009F80 thumb_func_start FUN_0200BC38 FUN_0200BC38: ; 0x0200BC38 ldr r3, _0200BC3C ; =FUN_0201C348 bx r3 .balign 4 -_0200BC3C: .word FUN_0201C348 + 1 +_0200BC3C: .word FUN_0201C348 thumb_func_start FUN_0200BC40 FUN_0200BC40: ; 0x0200BC40 @@ -23245,7 +23245,7 @@ FUN_0200BC40: ; 0x0200BC40 ldr r0, [r0, #0x0] bx r3 nop -_0200BC48: .word FUN_0201FD58 + 1 +_0200BC48: .word FUN_0201FD58 thumb_func_start FUN_0200BC4C FUN_0200BC4C: ; 0x0200BC4C @@ -23325,7 +23325,7 @@ FUN_0200BCD0: ; 0x0200BCD0 add r0, r1, #0x0 bx r3 .balign 4 -_0200BCDC: .word FUN_02016A18 + 1 +_0200BCDC: .word FUN_02016A18 thumb_func_start FUN_0200BCE0 FUN_0200BCE0: ; 0x0200BCE0 @@ -23351,7 +23351,7 @@ FUN_0200BD04: ; 0x0200BD04 ldr r0, [r4, #0x4] cmp r0, #0x0 beq _0200BD12 - bl FUN_02020C2C + bl ErrorHandling _0200BD12: add r0, r4, #0x0 bl FUN_0200BCB0 @@ -23771,7 +23771,7 @@ _0200C02A: mov r0, #0x1 pop {r4-r7, pc} _0200C058: - bl FUN_02020C2C + bl ErrorHandling cmp r5, #0x0 beq _0200C066 add sp, #0xc @@ -23818,7 +23818,7 @@ _0200C08C: bl FUN_02009D68 cmp r0, #0x1 beq _0200C0B8 - bl FUN_02020C2C + bl ErrorHandling _0200C0B8: ldr r0, [r4, #0x28] add r1, r5, #0x0 @@ -23831,7 +23831,7 @@ _0200C0B8: asr r0, r0, #0x18 pop {r3-r7, pc} _0200C0D0: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 mvn r0, r0 add sp, #0x10 @@ -24130,7 +24130,7 @@ _0200C2E0: bl FUN_02020248 b _0200C32C _0200C328: - bl FUN_02020C2C + bl ErrorHandling _0200C32C: add r0, r4, #0x0 add sp, #0x74 @@ -24166,7 +24166,7 @@ FUN_0200C358: ; 0x0200C358 ldr r3, _0200C364 ; =FUN_0200C4F4 bx r3 .balign 4 -_0200C364: .word FUN_0200C4F4 + 1 +_0200C364: .word FUN_0200C4F4 thumb_func_start FUN_0200C368 FUN_0200C368: ; 0x0200C368 @@ -24177,7 +24177,7 @@ FUN_0200C368: ; 0x0200C368 ldr r3, _0200C374 ; =FUN_0200C548 bx r3 .balign 4 -_0200C374: .word FUN_0200C548 + 1 +_0200C374: .word FUN_0200C548 thumb_func_start FUN_0200C378 FUN_0200C378: ; 0x0200C378 @@ -24188,7 +24188,7 @@ FUN_0200C378: ; 0x0200C378 ldr r3, _0200C384 ; =FUN_0200C4A8 bx r3 .balign 4 -_0200C384: .word FUN_0200C4A8 + 1 +_0200C384: .word FUN_0200C4A8 thumb_func_start FUN_0200C388 FUN_0200C388: ; 0x0200C388 @@ -24199,7 +24199,7 @@ FUN_0200C388: ; 0x0200C388 ldr r3, _0200C394 ; =FUN_0200C4A8 bx r3 .balign 4 -_0200C394: .word FUN_0200C4A8 + 1 +_0200C394: .word FUN_0200C4A8 thumb_func_start FUN_0200C398 FUN_0200C398: ; 0x0200C398 @@ -24295,13 +24295,13 @@ _0200C42A: add r4, r0, #0x0 cmp r4, #0x1 beq _0200C45A - bl FUN_02020C2C + bl ErrorHandling _0200C45A: add sp, #0x14 add r0, r4, #0x0 pop {r4-r7, pc} _0200C460: - bl FUN_02020C2C + bl ErrorHandling cmp r5, #0x0 beq _0200C46E add sp, #0x14 @@ -24483,7 +24483,7 @@ FUN_0200C59C: ; 0x0200C59C lsl r1, r1, #0xc bx r3 .balign 4 -_0200C5A4: .word FUN_020201E4 + 1 +_0200C5A4: .word FUN_020201E4 thumb_func_start FUN_0200C5A8 FUN_0200C5A8: ; 0x0200C5A8 @@ -24499,7 +24499,7 @@ FUN_0200C5B4: ; 0x0200C5B4 ldr r0, [r0, #0x0] bx r3 nop -_0200C5BC: .word FUN_020201E4 + 1 +_0200C5BC: .word FUN_020201E4 thumb_func_start FUN_0200C5C0 FUN_0200C5C0: ; 0x0200C5C0 @@ -24507,7 +24507,7 @@ FUN_0200C5C0: ; 0x0200C5C0 ldr r0, [r0, #0x0] bx r3 nop -_0200C5C8: .word FUN_02020130 + 1 +_0200C5C8: .word FUN_02020130 thumb_func_start FUN_0200C5CC FUN_0200C5CC: ; 0x0200C5CC @@ -24515,14 +24515,14 @@ FUN_0200C5CC: ; 0x0200C5CC ldr r0, [r0, #0x0] bx r3 nop -_0200C5D4: .word FUN_020201DC + 1 +_0200C5D4: .word FUN_020201DC thumb_func_start FUN_0200C5D8 FUN_0200C5D8: ; 0x0200C5D8 ldr r3, _0200C5DC ; =FUN_020200BC bx r3 .balign 4 -_0200C5DC: .word FUN_020200BC + 1 +_0200C5DC: .word FUN_020200BC thumb_func_start FUN_0200C5E0 FUN_0200C5E0: ; 0x0200C5E0 @@ -24530,14 +24530,14 @@ FUN_0200C5E0: ; 0x0200C5E0 ldr r0, [r0, #0x0] bx r3 nop -_0200C5E8: .word FUN_0200C5D8 + 1 +_0200C5E8: .word FUN_0200C5D8 thumb_func_start FUN_0200C5EC FUN_0200C5EC: ; 0x0200C5EC ldr r3, _0200C5F0 ; =FUN_020200D8 bx r3 .balign 4 -_0200C5F0: .word FUN_020200D8 + 1 +_0200C5F0: .word FUN_020200D8 thumb_func_start FUN_0200C5F4 FUN_0200C5F4: ; 0x0200C5F4 @@ -24545,14 +24545,14 @@ FUN_0200C5F4: ; 0x0200C5F4 ldr r0, [r0, #0x0] bx r3 nop -_0200C5FC: .word FUN_0200C5EC + 1 +_0200C5FC: .word FUN_0200C5EC thumb_func_start FUN_0200C600 FUN_0200C600: ; 0x0200C600 ldr r3, _0200C604 ; =FUN_02020388 bx r3 .balign 4 -_0200C604: .word FUN_02020388 + 1 +_0200C604: .word FUN_02020388 thumb_func_start FUN_0200C608 FUN_0200C608: ; 0x0200C608 @@ -24560,14 +24560,14 @@ FUN_0200C608: ; 0x0200C608 ldr r0, [r0, #0x0] bx r3 nop -_0200C610: .word FUN_0200C600 + 1 +_0200C610: .word FUN_0200C600 thumb_func_start FUN_0200C614 FUN_0200C614: ; 0x0200C614 ldr r3, _0200C618 ; =FUN_02020208 bx r3 .balign 4 -_0200C618: .word FUN_02020208 + 1 +_0200C618: .word FUN_02020208 thumb_func_start FUN_0200C61C FUN_0200C61C: ; 0x0200C61C @@ -24582,7 +24582,7 @@ FUN_0200C628: ; 0x0200C628 ldr r3, _0200C62C ; =FUN_0202022C bx r3 .balign 4 -_0200C62C: .word FUN_0202022C + 1 +_0200C62C: .word FUN_0202022C thumb_func_start FUN_0200C630 FUN_0200C630: ; 0x0200C630 @@ -24590,14 +24590,14 @@ FUN_0200C630: ; 0x0200C630 ldr r0, [r0, #0x0] bx r3 nop -_0200C638: .word FUN_0200C628 + 1 +_0200C638: .word FUN_0200C628 thumb_func_start FUN_0200C63C FUN_0200C63C: ; 0x0200C63C ldr r3, _0200C640 ; =FUN_020200A0 bx r3 .balign 4 -_0200C640: .word FUN_020200A0 + 1 +_0200C640: .word FUN_020200A0 thumb_func_start FUN_0200C644 FUN_0200C644: ; 0x0200C644 @@ -24605,14 +24605,14 @@ FUN_0200C644: ; 0x0200C644 ldr r0, [r0, #0x0] bx r3 nop -_0200C64C: .word FUN_0200C63C + 1 +_0200C64C: .word FUN_0200C63C thumb_func_start FUN_0200C650 FUN_0200C650: ; 0x0200C650 ldr r3, _0200C654 ; =FUN_02020128 bx r3 .balign 4 -_0200C654: .word FUN_02020128 + 1 +_0200C654: .word FUN_02020128 thumb_func_start FUN_0200C658 FUN_0200C658: ; 0x0200C658 @@ -24620,14 +24620,14 @@ FUN_0200C658: ; 0x0200C658 ldr r0, [r0, #0x0] bx r3 nop -_0200C660: .word FUN_0200C650 + 1 +_0200C660: .word FUN_0200C650 thumb_func_start FUN_0200C664 FUN_0200C664: ; 0x0200C664 ldr r3, _0200C668 ; =FUN_02020248 bx r3 .balign 4 -_0200C668: .word FUN_02020248 + 1 +_0200C668: .word FUN_02020248 thumb_func_start FUN_0200C66C FUN_0200C66C: ; 0x0200C66C @@ -24635,14 +24635,14 @@ FUN_0200C66C: ; 0x0200C66C ldr r0, [r0, #0x0] bx r3 nop -_0200C674: .word FUN_0200C664 + 1 +_0200C674: .word FUN_0200C664 thumb_func_start FUN_0200C678 FUN_0200C678: ; 0x0200C678 ldr r3, _0200C67C ; =FUN_020202A8 bx r3 .balign 4 -_0200C67C: .word FUN_020202A8 + 1 +_0200C67C: .word FUN_020202A8 thumb_func_start FUN_0200C680 FUN_0200C680: ; 0x0200C680 @@ -24650,7 +24650,7 @@ FUN_0200C680: ; 0x0200C680 ldr r0, [r0, #0x0] bx r3 nop -_0200C688: .word FUN_0200C678 + 1 +_0200C688: .word FUN_0200C678 thumb_func_start FUN_0200C68C FUN_0200C68C: ; 0x0200C68C @@ -24658,7 +24658,7 @@ FUN_0200C68C: ; 0x0200C68C ldr r0, [r0, #0x0] bx r3 nop -_0200C694: .word FUN_02020300 + 1 +_0200C694: .word FUN_02020300 thumb_func_start FUN_0200C698 FUN_0200C698: ; 0x0200C698 @@ -24667,7 +24667,7 @@ FUN_0200C698: ; 0x0200C698 lsr r1, r1, #0x18 bx r3 .balign 4 -_0200C6A0: .word FUN_02020238 + 1 +_0200C6A0: .word FUN_02020238 thumb_func_start FUN_0200C6A4 FUN_0200C6A4: ; 0x0200C6A4 @@ -24683,14 +24683,14 @@ FUN_0200C6B0: ; 0x0200C6B0 ldr r0, [r0, #0x0] bx r3 nop -_0200C6B8: .word FUN_0200C698 + 1 +_0200C6B8: .word FUN_0200C698 thumb_func_start FUN_0200C6BC FUN_0200C6BC: ; 0x0200C6BC ldr r3, _0200C6C0 ; =FUN_02020310 bx r3 .balign 4 -_0200C6C0: .word FUN_02020310 + 1 +_0200C6C0: .word FUN_02020310 thumb_func_start FUN_0200C6C4 FUN_0200C6C4: ; 0x0200C6C4 @@ -24698,14 +24698,14 @@ FUN_0200C6C4: ; 0x0200C6C4 ldr r0, [r0, #0x0] bx r3 nop -_0200C6CC: .word FUN_0200C6BC + 1 +_0200C6CC: .word FUN_0200C6BC thumb_func_start FUN_0200C6D0 FUN_0200C6D0: ; 0x0200C6D0 ldr r3, _0200C6D4 ; =FUN_0202032C bx r3 .balign 4 -_0200C6D4: .word FUN_0202032C + 1 +_0200C6D4: .word FUN_0202032C thumb_func_start FUN_0200C6D8 FUN_0200C6D8: ; 0x0200C6D8 @@ -24713,7 +24713,7 @@ FUN_0200C6D8: ; 0x0200C6D8 ldr r0, [r0, #0x0] bx r3 nop -_0200C6E0: .word FUN_0200C6D0 + 1 +_0200C6E0: .word FUN_0200C6D0 thumb_func_start FUN_0200C6E4 FUN_0200C6E4: ; 0x0200C6E4 @@ -24747,7 +24747,7 @@ FUN_0200C714: ; 0x0200C714 ldr r0, [r0, #0x0] bx r3 nop -_0200C71C: .word FUN_0200C6E4 + 1 +_0200C71C: .word FUN_0200C6E4 thumb_func_start FUN_0200C720 FUN_0200C720: ; 0x0200C720 @@ -24825,7 +24825,7 @@ FUN_0200C7A0: ; 0x0200C7A0 ldr r0, [r0, #0x0] bx r3 nop -_0200C7A8: .word FUN_0200C75C + 1 +_0200C7A8: .word FUN_0200C75C thumb_func_start FUN_0200C7AC FUN_0200C7AC: ; 0x0200C7AC @@ -24902,14 +24902,14 @@ FUN_0200C82C: ; 0x0200C82C ldr r0, [r0, #0x0] bx r3 nop -_0200C834: .word FUN_0200C7FC + 1 +_0200C834: .word FUN_0200C7FC thumb_func_start FUN_0200C838 FUN_0200C838: ; 0x0200C838 ldr r3, _0200C83C ; =FUN_020200EC bx r3 .balign 4 -_0200C83C: .word FUN_020200EC + 1 +_0200C83C: .word FUN_020200EC thumb_func_start FUN_0200C840 FUN_0200C840: ; 0x0200C840 @@ -24950,14 +24950,14 @@ FUN_0200C884: ; 0x0200C884 ldr r0, [r0, #0x0] bx r3 nop -_0200C88C: .word FUN_0200C84C + 1 +_0200C88C: .word FUN_0200C84C thumb_func_start FUN_0200C890 FUN_0200C890: ; 0x0200C890 ldr r3, _0200C894 ; =FUN_02020088 bx r3 .balign 4 -_0200C894: .word FUN_02020088 + 1 +_0200C894: .word FUN_02020088 thumb_func_start FUN_0200C898 FUN_0200C898: ; 0x0200C898 @@ -24965,7 +24965,7 @@ FUN_0200C898: ; 0x0200C898 ldr r0, [r0, #0x0] bx r3 nop -_0200C8A0: .word FUN_0200C890 + 1 +_0200C8A0: .word FUN_0200C890 thumb_func_start FUN_0200C8A4 FUN_0200C8A4: ; 0x0200C8A4 @@ -24986,14 +24986,14 @@ FUN_0200C8BC: ; 0x0200C8BC ldr r0, [r0, #0x0] bx r3 nop -_0200C8C4: .word FUN_0200C8A4 + 1 +_0200C8C4: .word FUN_0200C8A4 thumb_func_start FUN_0200C8C8 FUN_0200C8C8: ; 0x0200C8C8 ldr r3, _0200C8CC ; =FUN_02020100 bx r3 .balign 4 -_0200C8CC: .word FUN_02020100 + 1 +_0200C8CC: .word FUN_02020100 thumb_func_start FUN_0200C8D0 FUN_0200C8D0: ; 0x0200C8D0 @@ -25001,7 +25001,7 @@ FUN_0200C8D0: ; 0x0200C8D0 ldr r0, [r0, #0x0] bx r3 nop -_0200C8D8: .word FUN_0200C8C8 + 1 +_0200C8D8: .word FUN_0200C8C8 thumb_func_start FUN_0200C8DC FUN_0200C8DC: ; 0x0200C8DC @@ -25032,7 +25032,7 @@ FUN_0200C904: ; 0x0200C904 ldr r3, _0200C908 ; =FUN_02020398 bx r3 .balign 4 -_0200C908: .word FUN_02020398 + 1 +_0200C908: .word FUN_02020398 thumb_func_start FUN_0200C90C FUN_0200C90C: ; 0x0200C90C @@ -25040,7 +25040,7 @@ FUN_0200C90C: ; 0x0200C90C ldr r0, [r0, #0x0] bx r3 nop -_0200C914: .word FUN_0200C904 + 1 +_0200C914: .word FUN_0200C904 thumb_func_start FUN_0200C918 FUN_0200C918: ; 0x0200C918 @@ -25080,7 +25080,7 @@ _0200C936: mov r0, #0x1 pop {r4-r7, pc} _0200C964: - bl FUN_02020C2C + bl ErrorHandling cmp r5, #0x0 beq _0200C972 add sp, #0xc @@ -25129,7 +25129,7 @@ _0200C996: mov r0, #0x1 pop {r4-r7, pc} _0200C9C4: - bl FUN_02020C2C + bl ErrorHandling cmp r5, #0x0 beq _0200C9D2 add sp, #0xc @@ -25262,7 +25262,7 @@ FUN_0200CAB4: ; 0x0200CAB4 ldr r3, _0200CAB8 ; =FUN_0201B6A0 bx r3 .balign 4 -_0200CAB8: .word FUN_0201B6A0 + 1 +_0200CAB8: .word FUN_0201B6A0 thumb_func_start FUN_0200CABC FUN_0200CABC: ; 0x0200CABC @@ -27084,7 +27084,7 @@ _0200D8DA: _0200D970: .word 0x0000048C _0200D974: .word 0x00000404 _0200D978: .word 0x00000484 -_0200D97C: .word FUN_0200DB7C + 1 +_0200D97C: .word FUN_0200DB7C thumb_func_start FUN_0200D980 FUN_0200D980: ; 0x0200D980 @@ -27412,7 +27412,7 @@ FUN_0200DBFC: ; 0x0200DBFC strb r0, [r4, r1] pop {r4, pc} nop -_0200DC1C: .word FUN_0200DBE8 + 1 +_0200DC1C: .word FUN_0200DBE8 _0200DC20: .word 0x00000488 thumb_func_start FUN_0200DC24 @@ -27432,7 +27432,7 @@ FUN_0200DC24: ; 0x0200DC24 strb r0, [r4, r1] pop {r4, pc} nop -_0200DC44: .word FUN_0200DBE8 + 1 +_0200DC44: .word FUN_0200DBE8 _0200DC48: .word 0x00000488 thumb_func_start FUN_0200DC4C @@ -27599,7 +27599,7 @@ FUN_0200DD70: ; 0x0200DD70 strb r7, [r0, r1] pop {r3-r7, pc} .balign 4 -_0200DDA4: .word FUN_0200DCF8 + 1 +_0200DDA4: .word FUN_0200DCF8 _0200DDA8: .word 0x0000016F thumb_func_start FUN_0200DDAC @@ -27818,7 +27818,7 @@ FUN_0200DEF4: ; 0x0200DEF4 add r7, r0, #0x0 add r0, r4, #0x0 lsl r1, r1, #0x8 - blx FUN_020CC15C + blx DC_FlushRange mov r2, #0x19 add r0, r4, #0x0 add r1, r7, #0x0 @@ -27844,7 +27844,7 @@ FUN_0200DEF4: ; 0x0200DEF4 add r5, r0, #0x0 add r0, r4, #0x0 mov r1, #0x20 - blx FUN_020CC15C + blx DC_FlushRange add r0, r4, #0x0 add r1, r5, #0x0 mov r2, #0x20 @@ -28115,18 +28115,18 @@ FUN_0200E1D0: ; 0x0200E1D0 add r6, r3, #0x0 cmp r0, #0x0 bne _0200E1E6 - bl FUN_02020C2C + bl ErrorHandling _0200E1E6: ldr r0, [sp, #0x34] cmp r0, #0x0 bne _0200E1F0 - bl FUN_02020C2C + bl ErrorHandling _0200E1F0: ldr r0, _0200E2AC ; =0x021C47F4 ldrh r0, [r0, #0xc] cmp r0, #0x0 beq _0200E1FC - bl FUN_02020C2C + bl ErrorHandling _0200E1FC: ldr r0, _0200E2B0 ; =0x021C46B4 bl FUN_0200E808 @@ -28312,7 +28312,7 @@ FUN_0200E388: ; 0x0200E388 mov r0, #0x0 bx r3 .balign 4 -_0200E390: .word FUN_02011480 + 1 +_0200E390: .word FUN_02011480 thumb_func_start FUN_0200E394 FUN_0200E394: ; 0x0200E394 @@ -28320,7 +28320,7 @@ FUN_0200E394: ; 0x0200E394 mov r1, #0x0 bx r3 nop -_0200E39C: .word FUN_0200E440 + 1 +_0200E39C: .word FUN_0200E440 thumb_func_start FUN_0200E3A0 FUN_0200E3A0: ; 0x0200E3A0 @@ -28337,7 +28337,7 @@ _0200E3AE: bx r3 nop _0200E3B4: .word 0x00007FFF -_0200E3B8: .word FUN_0200E440 + 1 +_0200E3B8: .word FUN_0200E440 thumb_func_start FUN_0200E3BC FUN_0200E3BC: ; 0x0200E3BC @@ -28657,7 +28657,7 @@ _0200E5FA: blt _0200E5FA bx lr nop -_0200E60C: .word FUN_0200E758 + 1 +_0200E60C: .word FUN_0200E758 thumb_func_start FUN_0200E610 FUN_0200E610: ; 0x0200E610 @@ -28692,14 +28692,14 @@ FUN_0200E628: ; 0x0200E628 str r1, [sp, #0x0] cmp r0, #0x0 beq _0200E64A - bl FUN_02020C2C + bl ErrorHandling _0200E64A: add r6, r5, #0x0 add r6, #0x8 ldr r0, [r6, r4] cmp r0, #0x0 bne _0200E658 - bl FUN_02020C2C + bl ErrorHandling _0200E658: ldr r0, [r5, #0x10] cmp r0, #0x0 @@ -28717,7 +28717,7 @@ _0200E672: ldr r0, [sp, #0x4] cmp r0, #0x1 beq _0200E67C - bl FUN_02020C2C + bl ErrorHandling _0200E67C: ldr r0, [sp, #0x0] cmp r7, #0x0 @@ -28735,8 +28735,8 @@ _0200E68C: add sp, #0xc pop {r4-r7, pc} nop -_0200E698: .word FUN_0200E610 + 1 -_0200E69C: .word FUN_0200E758 + 1 +_0200E698: .word FUN_0200E610 +_0200E69C: .word FUN_0200E758 thumb_func_start FUN_0200E6A0 FUN_0200E6A0: ; 0x0200E6A0 @@ -28761,7 +28761,7 @@ _0200E6BC: str r0, [r5, r4] pop {r3-r5, pc} .balign 4 -_0200E6C8: .word FUN_0200E758 + 1 +_0200E6C8: .word FUN_0200E758 thumb_func_start FUN_0200E6CC FUN_0200E6CC: ; 0x0200E6CC @@ -28784,7 +28784,7 @@ FUN_0200E6CC: ; 0x0200E6CC bl FUN_0200CA98 pop {r3-r7, pc} .balign 4 -_0200E6F4: .word FUN_0200E71C + 1 +_0200E6F4: .word FUN_0200E71C thumb_func_start FUN_0200E6F8 FUN_0200E6F8: ; 0x0200E6F8 @@ -28803,7 +28803,7 @@ FUN_0200E6F8: ; 0x0200E6F8 bl FUN_0200CA98 pop {r3-r5, pc} .balign 4 -_0200E718: .word FUN_0200E73C + 1 +_0200E718: .word FUN_0200E73C thumb_func_start FUN_0200E71C FUN_0200E71C: ; 0x0200E71C @@ -28914,7 +28914,7 @@ _0200E7CE: pop {r3, pc} .balign 4 _0200E7D0: .word 0x00007FFF -_0200E7D4: .word FUN_0200E794 + 1 +_0200E7D4: .word FUN_0200E794 thumb_func_start FUN_0200E7D8 FUN_0200E7D8: ; 0x0200E7D8 @@ -30147,13 +30147,13 @@ FUN_0200F14C: ; 0x0200F14C thumb_func_start FUN_0200F164 FUN_0200F164: ; 0x0200F164 - ldr r3, _0200F170 ; =FUN_020EBC80 + ldr r3, _0200F170 ; =_s32_div_f sub r0, r1, r0 lsl r0, r0, #0x7 add r1, r2, #0x0 bx r3 nop -_0200F170: .word FUN_020EBC80 +_0200F170: .word _s32_div_f thumb_func_start FUN_0200F174 FUN_0200F174: ; 0x0200F174 @@ -30275,7 +30275,7 @@ _0200F248: mov r7, #0xf mvn r7, r7 mov r6, #0x0 - bl FUN_02020C2C + bl ErrorHandling b _0200F274 _0200F254: cmp r1, r0 @@ -30294,7 +30294,7 @@ _0200F26A: mov r7, #0x0 add r6, r7, #0x0 sub r6, #0x10 - bl FUN_02020C2C + bl ErrorHandling _0200F274: ldr r0, [r5, #0x10] add r1, r7, #0x0 @@ -30404,7 +30404,7 @@ FUN_0200F330: ; 0x0200F330 push {r4-r6, lr} add r4, r0, #0x0 bne _0200F33A - bl FUN_02020C2C + bl ErrorHandling _0200F33A: ldr r0, _0200F54C ; =0x04000006 ldrh r0, [r0, #0x0] @@ -30745,7 +30745,7 @@ FUN_0200F5C0: ; 0x0200F5C0 ldr r3, _0200F5C4 ; =FUN_0200F5C8 bx r3 .balign 4 -_0200F5C4: .word FUN_0200F5C8 + 1 +_0200F5C4: .word FUN_0200F5C8 thumb_func_start FUN_0200F5C8 FUN_0200F5C8: ; 0x0200F5C8 @@ -30765,7 +30765,7 @@ FUN_0200F5D8: ; 0x0200F5D8 add r4, r1, #0x0 cmp r0, r4 bgt _0200F5E8 - bl FUN_02020C2C + bl ErrorHandling _0200F5E8: ldr r0, _0200F5F4 ; =0x00000604 ldr r1, [r5, #0x0] @@ -30951,8 +30951,8 @@ FUN_0200F740: ; 0x0200F740 ldr r2, _0200F754 ; =0x000003FF bx r3 nop -_0200F74C: .word FUN_0200CA98 + 1 -_0200F750: .word FUN_0200F780 + 1 +_0200F74C: .word FUN_0200CA98 +_0200F750: .word FUN_0200F780 _0200F754: .word 0x000003FF thumb_func_start FUN_0200F758 @@ -30966,7 +30966,7 @@ FUN_0200F758: ; 0x0200F758 pop {r3, pc} .balign 4 _0200F768: .word 0x00000309 -_0200F76C: .word FUN_0200F7AC + 1 +_0200F76C: .word FUN_0200F7AC thumb_func_start FUN_0200F770 FUN_0200F770: ; 0x0200F770 @@ -30976,7 +30976,7 @@ FUN_0200F770: ; 0x0200F770 bx r3 .balign 4 _0200F778: .word 0x00000309 -_0200F77C: .word FUN_0200E6F8 + 1 +_0200F77C: .word FUN_0200E6F8 thumb_func_start FUN_0200F780 FUN_0200F780: ; 0x0200F780 @@ -31007,7 +31007,7 @@ FUN_0200F7AC: ; 0x0200F7AC push {r3-r5, lr} add r4, r0, #0x0 bne _0200F7B6 - bl FUN_02020C2C + bl ErrorHandling _0200F7B6: ldr r0, _0200FAC0 ; =0x04000006 ldrh r0, [r0, #0x0] @@ -32074,7 +32074,7 @@ _0200FF9E: mov r6, #0x1 b _0200FFA6 _0200FFA2: - bl FUN_02020C2C + bl ErrorHandling _0200FFA6: add r0, r6, #0x0 pop {r4-r6, pc} @@ -32178,9 +32178,9 @@ _02010064: add sp, #0x24 pop {r4-r7, pc} .balign 4 -_02010078: .word FUN_0200F5F8 + 1 +_02010078: .word FUN_0200F5F8 _0201007C: .word 0x000003FF -_02010080: .word FUN_0200F330 + 1 +_02010080: .word FUN_0200F330 thumb_func_start FUN_02010084 FUN_02010084: ; 0x02010084 @@ -32220,7 +32220,7 @@ _020100C8: mov r0, #0x0 pop {r4, pc} .balign 4 -_020100CC: .word FUN_0200F5F8 + 1 +_020100CC: .word FUN_0200F5F8 _020100D0: .word 0x000003FF thumb_func_start FUN_020100D4 @@ -32443,7 +32443,7 @@ _02010272: mov r6, #0x1 b _0201027A _02010276: - bl FUN_02020C2C + bl ErrorHandling _0201027A: add r0, r6, #0x0 pop {r4-r6, pc} @@ -32539,9 +32539,9 @@ _02010328: add sp, #0x20 pop {r3-r7, pc} .balign 4 -_0201033C: .word FUN_0200F5F8 + 1 +_0201033C: .word FUN_0200F5F8 _02010340: .word 0x000003FF -_02010344: .word FUN_0200F330 + 1 +_02010344: .word FUN_0200F330 thumb_func_start FUN_02010348 FUN_02010348: ; 0x02010348 @@ -32581,7 +32581,7 @@ _0201038C: mov r0, #0x0 pop {r4, pc} .balign 4 -_02010390: .word FUN_0200F5F8 + 1 +_02010390: .word FUN_0200F5F8 _02010394: .word 0x000003FF thumb_func_start FUN_02010398 @@ -32716,7 +32716,7 @@ FUN_0201047C: ; 0x0201047C str r3, [sp, #0x1c] ldr r6, [sp, #0x38] ldr r7, [sp, #0x3c] - blx FUN_020EBC80 + blx _s32_div_f str r0, [sp, #0x20] ldrb r1, [r4, #0x8] ldr r3, [sp, #0x44] @@ -32798,9 +32798,9 @@ _02010530: add sp, #0x24 pop {r4-r7, pc} .balign 4 -_02010544: .word FUN_0200F5F8 + 1 +_02010544: .word FUN_0200F5F8 _02010548: .word 0x000003FF -_0201054C: .word FUN_0200F330 + 1 +_0201054C: .word FUN_0200F330 thumb_func_start FUN_02010550 FUN_02010550: ; 0x02010550 @@ -32840,7 +32840,7 @@ _02010594: mov r0, #0x0 pop {r4, pc} .balign 4 -_02010598: .word FUN_0200F5F8 + 1 +_02010598: .word FUN_0200F5F8 _0201059C: .word 0x000003FF thumb_func_start FUN_020105A0 @@ -32872,7 +32872,7 @@ FUN_020105A0: ; 0x020105A0 asr r7, r1, #0xc lsl r0, r7, #0x1 mov r1, #0x15 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, #0x1 lsl r0, r0, #0x1 mov r1, #0xb4 @@ -32880,7 +32880,7 @@ FUN_020105A0: ; 0x020105A0 ldr r0, _02010684 ; =0x0000FFFF add r1, #0xb4 mul r0, r2 - blx FUN_020EBC80 + blx _s32_div_f lsr r1, r0, #0x1f add r1, r0, r1 asr r4, r1, #0x1 @@ -32892,7 +32892,7 @@ FUN_020105A0: ; 0x020105A0 str r0, [sp, #0x4] cmp r0, #0xc0 blt _0201060C - bl FUN_02020C2C + bl ErrorHandling _0201060C: ldr r2, [sp, #0x4] add r0, r4, #0x0 @@ -33029,7 +33029,7 @@ _02010714: mov r6, #0x1 b _0201071C _02010718: - bl FUN_02020C2C + bl ErrorHandling _0201071C: add r0, r6, #0x0 pop {r4-r6, pc} @@ -33053,7 +33053,7 @@ FUN_02010720: ; 0x02010720 str r0, [r7, #0xc] cmp r0, #0x0 bne _02010748 - bl FUN_02020C2C + bl ErrorHandling _02010748: ldrb r0, [r5, #0x8] str r0, [r7, #0x10] @@ -33162,9 +33162,9 @@ _02010812: add sp, #0x24 pop {r4-r7, pc} nop -_02010828: .word FUN_0200F5F8 + 1 +_02010828: .word FUN_0200F5F8 _0201082C: .word 0x000003FF -_02010830: .word FUN_0200F330 + 1 +_02010830: .word FUN_0200F330 thumb_func_start FUN_02010834 FUN_02010834: ; 0x02010834 @@ -33202,7 +33202,7 @@ _02010876: mov r0, #0x0 pop {r4, pc} nop -_0201087C: .word FUN_0200F5F8 + 1 +_0201087C: .word FUN_0200F5F8 _02010880: .word 0x000003FF thumb_func_start FUN_02010884 @@ -33392,7 +33392,7 @@ _020109DC: mov r6, #0x1 b _020109E4 _020109E0: - bl FUN_02020C2C + bl ErrorHandling _020109E4: add r0, r6, #0x0 pop {r4-r6, pc} @@ -33510,9 +33510,9 @@ FUN_020109E8: ; 0x020109E8 add sp, #0x28 pop {r3-r7, pc} .balign 4 -_02010AD8: .word FUN_0200F5F8 + 1 +_02010AD8: .word FUN_0200F5F8 _02010ADC: .word 0x000003FF -_02010AE0: .word FUN_0200F330 + 1 +_02010AE0: .word FUN_0200F330 thumb_func_start FUN_02010AE4 FUN_02010AE4: ; 0x02010AE4 @@ -33554,7 +33554,7 @@ _02010B2E: mov r0, #0x0 pop {r4, pc} nop -_02010B34: .word FUN_0200F5F8 + 1 +_02010B34: .word FUN_0200F5F8 _02010B38: .word 0x000003FF thumb_func_start FUN_02010B3C @@ -33569,7 +33569,7 @@ FUN_02010B40: ; 0x02010B40 str r0, [sp, #0x0] ldr r0, [r0, #0xc] ldr r1, _02010C60 ; =0x00003FFF - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x4] @@ -33722,7 +33722,7 @@ FUN_02010C64: ; 0x02010C64 add r0, r3, #0x0 mul r0, r1 add r1, r2, #0x0 - blx FUN_020EBC80 + blx _s32_div_f ldr r1, [r4, #0x4] add r0, r0, r1 str r0, [r4, #0x0] @@ -33805,7 +33805,7 @@ _02010D10: mov r6, #0x1 b _02010D18 _02010D14: - bl FUN_02020C2C + bl ErrorHandling _02010D18: add r0, r6, #0x0 pop {r4-r6, pc} @@ -33902,9 +33902,9 @@ FUN_02010D1C: ; 0x02010D1C add sp, #0x20 pop {r3-r7, pc} .balign 4 -_02010DE0: .word FUN_0200F5F8 + 1 +_02010DE0: .word FUN_0200F5F8 _02010DE4: .word 0x000003FF -_02010DE8: .word FUN_0200F330 + 1 +_02010DE8: .word FUN_0200F330 thumb_func_start FUN_02010DEC FUN_02010DEC: ; 0x02010DEC @@ -33946,7 +33946,7 @@ _02010E36: mov r0, #0x0 pop {r4, pc} nop -_02010E3C: .word FUN_0200F5F8 + 1 +_02010E3C: .word FUN_0200F5F8 _02010E40: .word 0x000003FF thumb_func_start FUN_02010E44 @@ -34065,7 +34065,7 @@ FUN_02010F14: ; 0x02010F14 add r0, r3, #0x0 mul r0, r1 add r1, r2, #0x0 - blx FUN_020EBC80 + blx _s32_div_f ldr r1, [r4, #0x4] add r0, r0, r1 str r0, [r4, #0x0] @@ -34151,7 +34151,7 @@ _02010FC4: mov r6, #0x1 b _02010FCC _02010FC8: - bl FUN_02020C2C + bl ErrorHandling _02010FCC: add r0, r6, #0x0 pop {r4-r6, pc} @@ -34371,7 +34371,7 @@ FUN_0201115C: ; 0x0201115C add r1, r3, #0x0 sub r0, r4, r6 mul r0, r2 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, r6 cmp r6, r4 bhi _0201117C @@ -34512,7 +34512,7 @@ _0201126A: mov r4, #0x1 b _02011272 _0201126E: - bl FUN_02020C2C + bl ErrorHandling _02011272: add r0, r4, #0x0 pop {r3-r5, pc} @@ -35035,7 +35035,7 @@ FUN_02011634: ; 0x02011634 bl FUN_0200CA98 pop {r4, pc} nop -_0201164C: .word FUN_020116CC + 1 +_0201164C: .word FUN_020116CC thumb_func_start FUN_02011650 FUN_02011650: ; 0x02011650 @@ -35056,7 +35056,7 @@ FUN_02011650: ; 0x02011650 bl FUN_0200CA98 pop {r4-r6, pc} nop -_02011674: .word FUN_020116E0 + 1 +_02011674: .word FUN_020116E0 thumb_func_start FUN_02011678 FUN_02011678: ; 0x02011678 @@ -35074,7 +35074,7 @@ FUN_02011678: ; 0x02011678 bl FUN_0200CA98 pop {r3-r5, pc} .balign 4 -_02011694: .word FUN_020116FC + 1 +_02011694: .word FUN_020116FC thumb_func_start FUN_02011698 FUN_02011698: ; 0x02011698 @@ -35101,7 +35101,7 @@ FUN_02011698: ; 0x02011698 bl FUN_0200CA98 pop {r3-r7, pc} nop -_020116C8: .word FUN_02011714 + 1 +_020116C8: .word FUN_02011714 thumb_func_start FUN_020116CC FUN_020116CC: ; 0x020116CC @@ -35179,7 +35179,7 @@ FUN_02011744: ; 0x02011744 str r0, [sp, #0x8] cmp r0, #0x0 bne _0201175E - bl FUN_02020C2C + bl ErrorHandling _0201175E: ldr r4, [sp, #0x8] ldr r5, [sp, #0x8] @@ -35195,7 +35195,7 @@ _02011766: str r0, [r5, #0x0] cmp r0, #0x0 bne _0201177E - bl FUN_02020C2C + bl ErrorHandling _0201177E: add r6, r6, #0x1 add r4, r4, #0x4 @@ -35213,7 +35213,7 @@ _0201177E: cmp r0, #0x0 str r0, [r1, #0x60] bne _020117A4 - bl FUN_02020C2C + bl ErrorHandling _020117A4: ldr r1, [sp, #0x4] ldr r0, [sp, #0x8] @@ -35232,7 +35232,7 @@ FUN_020117BC: ; 0x020117BC push {r4-r6, lr} add r6, r0, #0x0 bne _020117C6 - bl FUN_02020C2C + bl ErrorHandling _020117C6: mov r4, #0x0 add r5, r6, #0x0 @@ -35256,13 +35256,13 @@ FUN_020117E8: ; 0x020117E8 sub sp, #0x1c add r5, r0, #0x0 bne _020117F4 - bl FUN_02020C2C + bl ErrorHandling _020117F4: ldr r0, [r5, #0x0] bl FUN_02011BA0 add r4, r0, #0x0 bne _02011802 - bl FUN_02020C2C + bl ErrorHandling _02011802: ldr r0, [r5, #0x10] add r3, sp, #0x8 @@ -35318,12 +35318,12 @@ FUN_02011870: ; 0x02011870 push {r4, lr} add r4, r0, #0x0 bne _0201187A - bl FUN_02020C2C + bl ErrorHandling _0201187A: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02011884 - bl FUN_02020C2C + bl ErrorHandling _02011884: add r0, r4, #0x0 bl FUN_02011F00 @@ -35364,7 +35364,7 @@ FUN_020118C4: ; 0x020118C4 str r1, [sp, #0x0] cmp r5, #0x0 bne _020118D6 - bl FUN_02020C2C + bl ErrorHandling _020118D6: ldr r0, [sp, #0x0] str r0, [r5, #0xc] @@ -35423,7 +35423,7 @@ FUN_02011938: ; 0x02011938 sub sp, #0x10 add r5, r0, #0x0 bne _02011944 - bl FUN_02020C2C + bl ErrorHandling _02011944: ldr r0, [r5, #0x8] cmp r0, #0x0 @@ -35482,15 +35482,15 @@ FUN_020119A4: ; 0x020119A4 add r6, r2, #0x0 cmp r5, #0x0 bne _020119B4 - bl FUN_02020C2C + bl ErrorHandling _020119B4: cmp r4, #0x0 bne _020119BC - bl FUN_02020C2C + bl ErrorHandling _020119BC: cmp r6, #0x0 bne _020119C4 - bl FUN_02020C2C + bl ErrorHandling _020119C4: ldr r0, [r5, #0xc] str r0, [r4, #0x0] @@ -35506,7 +35506,7 @@ FUN_020119D0: ; 0x020119D0 add r7, r1, #0x0 cmp r5, #0x0 bne _020119DE - bl FUN_02020C2C + bl ErrorHandling _020119DE: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35534,7 +35534,7 @@ FUN_02011A00: ; 0x02011A00 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A0E - bl FUN_02020C2C + bl ErrorHandling _02011A0E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35562,7 +35562,7 @@ FUN_02011A30: ; 0x02011A30 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A3E - bl FUN_02020C2C + bl ErrorHandling _02011A3E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35590,7 +35590,7 @@ FUN_02011A60: ; 0x02011A60 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A6E - bl FUN_02020C2C + bl ErrorHandling _02011A6E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35618,7 +35618,7 @@ FUN_02011A90: ; 0x02011A90 add r7, r1, #0x0 cmp r5, #0x0 bne _02011A9E - bl FUN_02020C2C + bl ErrorHandling _02011A9E: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35646,7 +35646,7 @@ FUN_02011AC0: ; 0x02011AC0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011ACE - bl FUN_02020C2C + bl ErrorHandling _02011ACE: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35674,7 +35674,7 @@ FUN_02011AF0: ; 0x02011AF0 add r7, r1, #0x0 cmp r5, #0x0 bne _02011AFE - bl FUN_02020C2C + bl ErrorHandling _02011AFE: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -35712,7 +35712,7 @@ FUN_02011B20: ; 0x02011B20 str r3, [sp, #0x4] cmp r1, r0 bge _02011B42 - bl FUN_02020C2C + bl ErrorHandling _02011B42: ldrb r2, [r6, #0x8] ldr r1, [sp, #0x0] @@ -35720,7 +35720,7 @@ _02011B42: add r0, r1, r0 cmp r2, r0 bge _02011B52 - bl FUN_02020C2C + bl ErrorHandling _02011B52: ldr r0, [sp, #0x0] mov r4, #0x0 @@ -35864,7 +35864,7 @@ FUN_02011BF4: ; 0x02011BF4 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _02011C54 - bl FUN_02020C2C + bl ErrorHandling _02011C54: add r0, r5, #0x0 mov r1, #0x1 @@ -35919,12 +35919,12 @@ FUN_02011CA4: ; 0x02011CA4 add r6, r3, #0x0 cmp r7, #0x0 bne _02011CB8 - bl FUN_02020C2C + bl ErrorHandling _02011CB8: ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02011CC2 - bl FUN_02020C2C + bl ErrorHandling _02011CC2: ldr r0, [sp, #0x0] mov r4, #0x0 @@ -36077,7 +36077,7 @@ _02011DC6: bl FUN_02011B20 add r0, r7, #0x0 add r1, r4, #0x0 - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [sp, #0x30] cmp r0, #0x1 bne _02011E08 @@ -36198,7 +36198,7 @@ _02011EC2: ldr r0, [r0, r5] cmp r0, #0x0 bne _02011EDC - bl FUN_02020C2C + bl ErrorHandling _02011EDC: ldr r0, [r4, #0x0] add r7, #0x24 @@ -36319,7 +36319,7 @@ FUN_02011FAC: ; 0x02011FAC bl FUN_020169D8 add r4, r0, #0x0 bne _02011FBC - bl FUN_02020C2C + bl ErrorHandling _02011FBC: mov r0, #0x0 str r0, [r4, #0xc] @@ -36333,7 +36333,7 @@ FUN_02011FC8: ; 0x02011FC8 push {r4, lr} add r4, r0, #0x0 bne _02011FD2 - bl FUN_02020C2C + bl ErrorHandling _02011FD2: add r0, r4, #0x0 bl FUN_02016A18 @@ -36409,7 +36409,7 @@ FUN_02012044: ; 0x02012044 bl FUN_0200650C add r4, r0, #0x0 bne _02012054 - bl FUN_02020C2C + bl ErrorHandling _02012054: add r0, r4, #0x0 add r1, r5, #0x0 @@ -36417,11 +36417,11 @@ _02012054: add r6, r0, #0x0 cmp r5, #0x0 bne _02012066 - bl FUN_02020C2C + bl ErrorHandling _02012066: cmp r6, #0x0 bne _0201206E - bl FUN_02020C2C + bl ErrorHandling _0201206E: add r0, r4, #0x0 bl FUN_02016A18 @@ -36440,7 +36440,7 @@ FUN_02012078: ; 0x02012078 add r5, r3, #0x0 cmp r0, r6 bge _02012090 - bl FUN_02020C2C + bl ErrorHandling _02012090: ldr r0, [sp, #0xc] ldrh r1, [r4, #0x0] @@ -36448,7 +36448,7 @@ _02012090: str r0, [sp, #0x14] cmp r1, r0 bge _020120A0 - bl FUN_02020C2C + bl ErrorHandling _020120A0: ldr r0, [r4, #0x14] str r0, [sp, #0x20] @@ -36636,14 +36636,14 @@ FUN_020121E8: ; 0x020121E8 str r0, [sp, #0x20] cmp r0, #0x0 bne _02012204 - bl FUN_02020C2C + bl ErrorHandling _02012204: ldr r0, [sp, #0x20] add r1, sp, #0x2c blx FUN_020B0088 cmp r0, #0x0 bne _02012214 - bl FUN_02020C2C + bl ErrorHandling _02012214: ldr r1, [sp, #0x4c] ldr r0, [sp, #0x8] @@ -36652,7 +36652,7 @@ _02012214: ldrh r0, [r0, #0x2] cmp r0, r6 bge _02012226 - bl FUN_02020C2C + bl ErrorHandling _02012226: ldr r1, [sp, #0x50] ldr r0, [sp, #0x48] @@ -36663,7 +36663,7 @@ _02012226: ldr r0, [sp, #0x10] cmp r1, r0 bge _0201223C - bl FUN_02020C2C + bl ErrorHandling _0201223C: ldr r0, [sp, #0x2c] ldr r0, [r0, #0x14] @@ -36983,13 +36983,13 @@ FUN_02012470: ; 0x02012470 blx FUN_020B0138 cmp r0, #0x1 beq _0201249C - bl FUN_02020C2C + bl ErrorHandling _0201249C: ldr r0, [sp, #0x0] add r1, r4, #0x0 ldr r0, [r0, #0xc] mov r2, #0x20 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 add r0, r5, #0x0 bl FUN_02016A18 add r0, r4, #0x0 @@ -37174,7 +37174,7 @@ FUN_020125FC: ; 0x020125FC str r0, [r4, #0xc] cmp r0, #0x0 beq _0201260A - bl FUN_02020C2C + bl ErrorHandling _0201260A: add r3, r4, #0x0 mov r0, #0x1 @@ -37214,11 +37214,11 @@ FUN_02012634: ; 0x02012634 str r0, [r4, #0xc] cmp r0, #0x0 beq _02012656 - bl FUN_02020C2C + bl ErrorHandling _02012656: pop {r4, pc} .balign 4 -_02012658: .word FUN_020125FC + 1 +_02012658: .word FUN_020125FC thumb_func_start FUN_0201265C FUN_0201265C: ; 0x0201265C @@ -37229,7 +37229,7 @@ FUN_0201265C: ; 0x0201265C ldr r0, [r0, #0x0] cmp r0, #0x1 beq _0201266E - bl FUN_02020C2C + bl ErrorHandling _0201266E: ldr r2, _02012688 ; =0x021C4818 ldmia r2!, {r0-r1} @@ -37255,7 +37255,7 @@ FUN_02012690: ; 0x02012690 ldr r0, [r0, #0x0] cmp r0, #0x1 beq _020126A0 - bl FUN_02020C2C + bl ErrorHandling _020126A0: ldr r2, _020126B0 ; =0x021C4828 ldmia r2!, {r0-r1} @@ -37275,7 +37275,7 @@ FUN_020126B4: ; 0x020126B4 ldr r0, [r0, #0x0] cmp r0, #0x1 beq _020126C4 - bl FUN_02020C2C + bl ErrorHandling _020126C4: ldr r2, _020126D4 ; =0x021C4818 ldmia r2!, {r0-r1} @@ -37341,14 +37341,14 @@ FUN_02012710: ; 0x02012710 bne _02012742 add r0, r6, #0x0 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f cmp r1, #0x0 bne _02012750 _02012742: mov r1, #0x19 add r0, r6, #0x0 lsl r1, r1, #0x4 - blx FUN_020EBC80 + blx _s32_div_f cmp r1, #0x0 bne _02012752 _02012750: @@ -37409,7 +37409,7 @@ FUN_020127A8: ; 0x020127A8 cmp r4, #0x18 blt _020127B6 _020127B2: - bl FUN_02020C2C + bl ErrorHandling _020127B6: ldr r0, _020127BC ; =0x020ED4CC ldrb r0, [r0, r4] @@ -37450,7 +37450,7 @@ FUN_020127C0: ; 0x020127C0 eor r0, r3 orr r0, r1 beq _02012804 - bl FUN_02020C2C + bl ErrorHandling _02012804: sub r0, r4, r5 mov r12, r7 @@ -37585,7 +37585,7 @@ FUN_020128E0: ; 0x020128E0 _020128EC: cmp r3, r2 bne _020128F8 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4, pc} _020128F8: @@ -37666,7 +37666,7 @@ FUN_02012974: ; 0x02012974 push {r4, lr} add r4, r0, #0x0 bne _0201297E - bl FUN_02020C2C + bl ErrorHandling _0201297E: add r0, r4, #0x0 bl FUN_02016A18 @@ -37678,7 +37678,7 @@ FUN_02012988: ; 0x02012988 push {r4, lr} add r4, r0, #0x0 bne _02012992 - bl FUN_02020C2C + bl ErrorHandling _02012992: ldrb r0, [r4, #0x8] lsl r0, r0, #0x2 @@ -37691,7 +37691,7 @@ FUN_0201299C: ; 0x0201299C push {r4, lr} add r4, r0, #0x0 bne _020129A6 - bl FUN_02020C2C + bl ErrorHandling _020129A6: ldrb r1, [r4, #0x8] mov r0, #0x1 @@ -37719,9 +37719,9 @@ _020129C6: FUN_020129C8: ; 0x020129C8 push {r3, lr} mov r0, #0x0 - blx FUN_020CD998 + blx MI_StopDma mov r0, #0x0 - blx FUN_020CDA1C + blx MI_WaitDma pop {r3, pc} thumb_func_start FUN_020129D8 @@ -37736,14 +37736,14 @@ FUN_020129D8: ; 0x020129D8 add r1, r6, #0x0 add r2, r5, #0x0 add r3, r4, #0x0 - blx FUN_020CDE04 + blx MI_HBlankDmaCopy32 pop {r4-r6, pc} _020129F2: mov r0, #0x0 add r1, r6, #0x0 add r2, r5, #0x0 add r3, r4, #0x0 - blx FUN_020CDD90 + blx MI_HBlankDmaCopy16 pop {r4-r6, pc} thumb_func_start FUN_02012A00 @@ -37779,13 +37779,13 @@ FUN_02012A30: ; 0x02012A30 add r7, r3, #0x0 cmp r5, #0x0 bne _02012A42 - bl FUN_02020C2C + bl ErrorHandling _02012A42: ldr r0, _02012AB0 ; =0x00000604 ldr r0, [r5, r0] cmp r0, #0x0 beq _02012A4E - bl FUN_02020C2C + bl ErrorHandling _02012A4E: ldr r0, _02012AB4 ; =0x0000078C mov r2, #0x0 @@ -37824,19 +37824,19 @@ _02012A4E: add r1, r5, #0x0 ldr r0, [r5, r0] lsl r2, r2, #0x8 - blx FUN_020CE1FC + blx MIi_CpuClear32 ldr r0, _02012AC0 ; =0x00000794 mov r2, #0x3 lsl r2, r2, #0x8 ldr r0, [r5, r0] add r1, r5, r2 - blx FUN_020CE1FC + blx MIi_CpuClear32 pop {r3-r7, pc} .balign 4 _02012AB0: .word 0x00000604 _02012AB4: .word 0x0000078C _02012AB8: .word 0x0000060C -_02012ABC: .word FUN_02012BE4 + 1 +_02012ABC: .word FUN_02012BE4 _02012AC0: .word 0x00000794 thumb_func_start FUN_02012AC4 @@ -37844,7 +37844,7 @@ FUN_02012AC4: ; 0x02012AC4 push {r4, lr} add r4, r0, #0x0 bne _02012ACE - bl FUN_02020C2C + bl ErrorHandling _02012ACE: ldr r0, _02012AF8 ; =0x00000604 ldr r0, [r4, r0] @@ -37891,7 +37891,7 @@ FUN_02012B20: ; 0x02012B20 ldr r0, [r0, r1] bx r3 nop -_02012B2C: .word FUN_02012988 + 1 +_02012B2C: .word FUN_02012988 thumb_func_start FUN_02012B30 FUN_02012B30: ; 0x02012B30 @@ -37914,7 +37914,7 @@ FUN_02012B30: ; 0x02012B30 mov r2, #0x3 ldr r0, [r4, r0] lsl r2, r2, #0x8 - blx FUN_020CE1FC + blx MIi_CpuClear32 _02012B5E: pop {r4, pc} .balign 4 @@ -37998,7 +37998,7 @@ FUN_02012BE4: ; 0x02012BE4 ldr r0, _02012C80 ; =0x00000798 mov r1, #0x64 ldrsh r0, [r6, r0] - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 lsr r3, r0, #0x18 ldr r0, _02012C84 ; =0x0000078C @@ -38030,7 +38030,7 @@ _02012C12: stmia r5!, {r0} add r0, r3, #0x1 mov r1, #0xc0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x18 lsr r3, r0, #0x18 ldr r0, _02012C8C ; =0x0000078D @@ -38053,7 +38053,7 @@ _02012C4C: blt _02012C70 mov r0, #0x0 ldrsh r0, [r4, r0] - blx FUN_020EBC80 + blx _s32_div_f strh r1, [r4, #0x0] pop {r3-r7, pc} _02012C70: @@ -38076,14 +38076,14 @@ FUN_02012C90: ; 0x02012C90 ldr r3, _02012C94 ; =FUN_020129C8 bx r3 .balign 4 -_02012C94: .word FUN_020129C8 + 1 +_02012C94: .word FUN_020129C8 thumb_func_start FUN_02012C98 FUN_02012C98: ; 0x02012C98 push {r3-r5, lr} add r4, r0, #0x0 bne _02012CA2 - bl FUN_02020C2C + bl ErrorHandling _02012CA2: mov r0, #0x6 lsl r0, r0, #0x8 @@ -38092,7 +38092,7 @@ _02012CA2: mov r1, #0x3 lsl r1, r1, #0x8 add r5, r0, #0x0 - blx FUN_020CC15C + blx DC_FlushRange mov r1, #0x79 lsl r1, r1, #0x4 ldr r1, [r4, r1] @@ -38146,7 +38146,7 @@ _02012D04: bl FUN_02016998 add r4, r0, #0x0 bne _02012D14 - bl FUN_02020C2C + bl ErrorHandling _02012D14: add r0, r4, #0x0 mov r1, #0x0 @@ -38387,7 +38387,7 @@ _02012EE4: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012EF0 - bl FUN_02020C2C + bl ErrorHandling _02012EF0: add r0, r4, #0x0 pop {r4, pc} @@ -38413,7 +38413,7 @@ _02012F10: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F1C - bl FUN_02020C2C + bl ErrorHandling _02012F1C: add r0, r4, #0x0 pop {r4, pc} @@ -38439,7 +38439,7 @@ _02012F3C: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F48 - bl FUN_02020C2C + bl ErrorHandling _02012F48: add r0, r4, #0x0 pop {r4, pc} @@ -38465,7 +38465,7 @@ _02012F68: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012F74 - bl FUN_02020C2C + bl ErrorHandling _02012F74: add r0, r4, #0x0 pop {r4, pc} @@ -38491,7 +38491,7 @@ _02012F94: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FA0 - bl FUN_02020C2C + bl ErrorHandling _02012FA0: add r0, r4, #0x0 pop {r4, pc} @@ -38517,7 +38517,7 @@ _02012FC0: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FCC - bl FUN_02020C2C + bl ErrorHandling _02012FCC: add r0, r4, #0x0 pop {r4, pc} @@ -38543,7 +38543,7 @@ _02012FEC: ldr r1, [r1, #0x14] cmp r0, r1 blo _02012FF8 - bl FUN_02020C2C + bl ErrorHandling _02012FF8: add r0, r4, #0x0 pop {r4, pc} @@ -38569,7 +38569,7 @@ _02013018: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013024 - bl FUN_02020C2C + bl ErrorHandling _02013024: add r0, r4, #0x0 pop {r4, pc} @@ -38595,7 +38595,7 @@ _02013044: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013050 - bl FUN_02020C2C + bl ErrorHandling _02013050: add r0, r4, #0x0 pop {r4, pc} @@ -38621,7 +38621,7 @@ _02013070: ldr r1, [r1, #0x14] cmp r0, r1 blo _0201307C - bl FUN_02020C2C + bl ErrorHandling _0201307C: add r0, r4, #0x0 pop {r4, pc} @@ -38647,7 +38647,7 @@ _0201309C: ldr r1, [r1, #0x14] cmp r0, r1 blo _020130A8 - bl FUN_02020C2C + bl ErrorHandling _020130A8: add r0, r4, #0x0 pop {r4, pc} @@ -38673,7 +38673,7 @@ _020130C8: ldr r1, [r1, #0x14] cmp r0, r1 blo _020130D4 - bl FUN_02020C2C + bl ErrorHandling _020130D4: add r0, r4, #0x0 pop {r4, pc} @@ -38699,7 +38699,7 @@ _020130F4: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013100 - bl FUN_02020C2C + bl ErrorHandling _02013100: add r0, r4, #0x0 pop {r4, pc} @@ -38725,7 +38725,7 @@ _02013120: ldr r1, [r1, #0x14] cmp r0, r1 blo _0201312C - bl FUN_02020C2C + bl ErrorHandling _0201312C: add r0, r4, #0x0 pop {r4, pc} @@ -38751,7 +38751,7 @@ _0201314C: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013158 - bl FUN_02020C2C + bl ErrorHandling _02013158: add r0, r4, #0x0 pop {r4, pc} @@ -38777,7 +38777,7 @@ _02013178: ldr r1, [r1, #0x14] cmp r0, r1 blo _02013184 - bl FUN_02020C2C + bl ErrorHandling _02013184: add r0, r4, #0x0 pop {r4, pc} @@ -38789,7 +38789,7 @@ FUN_0201318C: ; 0x0201318C ldr r3, _02013190 ; =FUN_0200650C bx r3 .balign 4 -_02013190: .word FUN_0200650C + 1 +_02013190: .word FUN_0200650C thumb_func_start FUN_02013194 FUN_02013194: ; 0x02013194 @@ -38801,12 +38801,12 @@ FUN_02013194: ; 0x02013194 add r7, r3, #0x0 cmp r0, #0x0 bne _020131A8 - bl FUN_02020C2C + bl ErrorHandling _020131A8: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _020131B2 - bl FUN_02020C2C + bl ErrorHandling _020131B2: add r0, r5, #0x0 add r0, #0xd8 @@ -38868,7 +38868,7 @@ _02013216: bl FUN_0200CA98 pop {r3-r7, pc} nop -_02013224: .word FUN_02013268 + 1 +_02013224: .word FUN_02013268 thumb_func_start FUN_02013228 FUN_02013228: ; 0x02013228 @@ -38920,13 +38920,13 @@ FUN_0201327C: ; 0x0201327C push {r4, lr} add r4, r0, #0x0 bne _02013286 - bl FUN_02020C2C + bl ErrorHandling _02013286: ldr r0, _020132B8 ; =0x021C4850 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02013292 - bl FUN_02020C2C + bl ErrorHandling _02013292: ldr r0, _020132B8 ; =0x021C4850 mov r1, #0x0 @@ -38945,7 +38945,7 @@ _020132A8: add r2, r2, #0x4 cmp r1, #0x10 blt _0201329A - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} nop _020132B8: .word 0x021C4850 @@ -38955,13 +38955,13 @@ FUN_020132BC: ; 0x020132BC push {r4, lr} add r4, r0, #0x0 bne _020132C6 - bl FUN_02020C2C + bl ErrorHandling _020132C6: ldr r0, _020132FC ; =0x021C4850 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _020132D2 - bl FUN_02020C2C + bl ErrorHandling _020132D2: ldr r0, _020132FC ; =0x021C4850 mov r1, #0x0 @@ -38983,7 +38983,7 @@ _020132EE: add r2, r2, #0x4 cmp r1, #0x10 blt _020132DA - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} .balign 4 _020132FC: .word 0x021C4850 @@ -39566,7 +39566,7 @@ FUN_020136C0: ; 0x020136C0 push {r4, lr} add r4, r0, #0x0 bne _020136CA - bl FUN_02020C2C + bl ErrorHandling _020136CA: cmp r4, #0x0 beq _020136DE @@ -39587,7 +39587,7 @@ FUN_020136E0: ; 0x020136E0 add r4, r1, #0x0 cmp r5, #0x0 bne _020136EE - bl FUN_02020C2C + bl ErrorHandling _020136EE: cmp r5, #0x0 beq _020136F4 @@ -39667,7 +39667,7 @@ FUN_02013764: ; 0x02013764 add r5, r0, #0x0 cmp r6, #0x4 blo _02013772 - bl FUN_02020C2C + bl ErrorHandling _02013772: cmp r6, #0x4 bhs _020137B8 @@ -39829,13 +39829,13 @@ FUN_020138A0: ; 0x020138A0 add r4, r1, #0x0 cmp r5, #0x5 blo _020138AE - bl FUN_02020C2C + bl ErrorHandling _020138AE: add r0, r5, #0x0 bl FUN_02013974 cmp r4, r0 blo _020138BC - bl FUN_02020C2C + bl ErrorHandling _020138BC: ldr r1, _02013910 ; =0x020ED54C lsl r2, r5, #0x1 @@ -39965,7 +39965,7 @@ FUN_02013980: ; 0x02013980 add r6, r2, #0x0 cmp r4, #0x5 blo _02013990 - bl FUN_02020C2C + bl ErrorHandling _02013990: strh r4, [r5, #0x0] strh r6, [r5, #0x2] @@ -39980,7 +39980,7 @@ FUN_02013998: ; 0x02013998 add r6, r2, #0x0 cmp r4, #0x2 blo _020139A8 - bl FUN_02020C2C + bl ErrorHandling _020139A8: lsl r0, r4, #0x1 add r0, r5, r0 @@ -40225,7 +40225,7 @@ FUN_02013B5C: ; 0x02013B5C mov r1, #0x22 bx r3 nop -_02013B64: .word FUN_02022610 + 1 +_02013B64: .word FUN_02022610 thumb_func_start FUN_02013B68 FUN_02013B68: ; 0x02013B68 @@ -40425,7 +40425,7 @@ _02013CA4: cmp r2, #0x0 bne _02013C96 _02013CAC: - bl FUN_02020C2C + bl ErrorHandling ldr r0, _02013CD0 ; =0x0000FFFF pop {r3-r7, pc} _02013CB4: @@ -40453,7 +40453,7 @@ FUN_02013CD4: ; 0x02013CD4 bl FUN_02016998 add r4, r0, #0x0 bne _02013CE8 - bl FUN_02020C2C + bl ErrorHandling _02013CE8: ldr r0, [r5, #0x0] ldr r1, [r5, #0xc] @@ -40482,22 +40482,22 @@ FUN_02013D18: ; 0x02013D18 push {r4, lr} add r4, r0, #0x0 bne _02013D22 - bl FUN_02020C2C + bl ErrorHandling _02013D22: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02013D2C - bl FUN_02020C2C + bl ErrorHandling _02013D2C: ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02013D36 - bl FUN_02020C2C + bl ErrorHandling _02013D36: ldr r0, [r4, #0x10] cmp r0, #0x0 bne _02013D40 - bl FUN_02020C2C + bl ErrorHandling _02013D40: ldr r0, [r4, #0x0] bl FUN_02016A18 @@ -40551,20 +40551,20 @@ FUN_02013D98: ; 0x02013D98 bl FUN_02014024 add r4, r0, #0x0 bne _02013DAA - bl FUN_02020C2C + bl ErrorHandling _02013DAA: ldr r0, [r5, #0x4] ldr r0, [r0, #0x8] cmp r0, #0x0 beq _02013DB6 - bl FUN_02020C2C + bl ErrorHandling _02013DB6: ldr r0, [r5, #0x4] bl FUN_0201407C str r0, [r4, #0x0] cmp r0, #0x0 bne _02013DC6 - bl FUN_02020C2C + bl ErrorHandling _02013DC6: ldr r0, [r5, #0x4] ldr r1, [r4, #0x0] @@ -40620,14 +40620,14 @@ FUN_02013E14: ; 0x02013E14 bl FUN_02014050 add r4, r0, #0x0 bne _02013E26 - bl FUN_02020C2C + bl ErrorHandling _02013E26: ldr r0, [r5, #0x8] bl FUN_02014090 str r0, [r4, #0x0] cmp r0, #0x0 bne _02013E36 - bl FUN_02020C2C + bl ErrorHandling _02013E36: ldr r0, [r5, #0x4] ldr r1, [r4, #0x0] @@ -40683,7 +40683,7 @@ FUN_02013E84: ; 0x02013E84 bl FUN_02013FF8 add r4, r0, #0x0 bne _02013E96 - bl FUN_02020C2C + bl ErrorHandling _02013E96: add r0, r4, #0x0 add r1, r5, #0x0 @@ -40699,7 +40699,7 @@ FUN_02013EA8: ; 0x02013EA8 ldr r3, _02013EAC ; =FUN_02013F30 bx r3 .balign 4 -_02013EAC: .word FUN_02013F30 + 1 +_02013EAC: .word FUN_02013F30 thumb_func_start FUN_02013EB0 FUN_02013EB0: ; 0x02013EB0 @@ -40708,7 +40708,7 @@ FUN_02013EB0: ; 0x02013EB0 add r4, r1, #0x0 cmp r5, #0x0 bne _02013EBE - bl FUN_02020C2C + bl ErrorHandling _02013EBE: str r4, [r5, #0x20] pop {r3-r5, pc} @@ -40861,7 +40861,7 @@ FUN_02013F68: ; 0x02013F68 bl FUN_02016998 add r7, r0, #0x0 bne _02013F7C - bl FUN_02020C2C + bl ErrorHandling _02013F7C: mov r4, #0x0 cmp r6, #0x0 @@ -40889,7 +40889,7 @@ FUN_02013F98: ; 0x02013F98 bl FUN_02016998 add r7, r0, #0x0 bne _02013FAE - bl FUN_02020C2C + bl ErrorHandling _02013FAE: mov r4, #0x0 cmp r6, #0x0 @@ -40916,7 +40916,7 @@ FUN_02013FC8: ; 0x02013FC8 bl FUN_02016998 add r7, r0, #0x0 bne _02013FDE - bl FUN_02020C2C + bl ErrorHandling _02013FDE: mov r4, #0x0 cmp r6, #0x0 @@ -41385,14 +41385,14 @@ _0201434A: add r1, r4, #0x0 add r1, #0xc mov r2, #0x20 - blx FUN_020CE1E0 + blx MIi_CpuCopy16 ldr r1, [sp, #0x0] ldr r0, [sp, #0x8] mov r2, #0x20 add r0, r1, r0 add r1, r4, #0x0 add r1, #0x2c - blx FUN_020CE1E0 + blx MIi_CpuCopy16 ldr r0, [sp, #0x4] mov r1, #0x1 str r0, [r4, #0x0] @@ -41414,11 +41414,11 @@ _0201434A: add sp, #0xc pop {r4-r7, pc} .balign 4 -_02014394: .word FUN_020143DC + 1 -_02014398: .word FUN_020144E0 + 1 -_0201439C: .word FUN_020144FC + 1 -_020143A0: .word FUN_020144B0 + 1 -_020143A4: .word FUN_020144C8 + 1 +_02014394: .word FUN_020143DC +_02014398: .word FUN_020144E0 +_0201439C: .word FUN_020144FC +_020143A0: .word FUN_020144B0 +_020143A4: .word FUN_020144C8 thumb_func_start FUN_020143A8 FUN_020143A8: ; 0x020143A8 @@ -41452,7 +41452,7 @@ FUN_020143D0: ; 0x020143D0 ldr r0, [r0, #0x0] bx r3 nop -_020143D8: .word FUN_0200621C + 1 +_020143D8: .word FUN_0200621C thumb_func_start FUN_020143DC FUN_020143DC: ; 0x020143DC @@ -41645,7 +41645,7 @@ FUN_02014518: ; 0x02014518 mov r1, #0x0 mov r2, #0x78 add r6, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r2, _02014560 ; =0x0000019E mov r0, #0x0 mov r1, #0x1a @@ -41824,7 +41824,7 @@ FUN_0201466C: ; 0x0201466C lsr r0, r0, #0x1c cmp r0, #0x1 beq _02014680 - bl FUN_02020C2C + bl ErrorHandling _02014680: add r0, r4, #0x0 add r0, #0x9a @@ -42096,7 +42096,7 @@ _02014820: add sp, #0x4 pop {r3-r4, pc} .balign 4 -_02014874: .word FUN_02014878 + 1 +_02014874: .word FUN_02014878 thumb_func_start FUN_02014878 FUN_02014878: ; 0x02014878 @@ -42380,7 +42380,7 @@ _02014A58: add sp, #0x8 pop {r3-r7, pc} .balign 4 -_02014A88: .word FUN_02014AD4 + 1 +_02014A88: .word FUN_02014AD4 thumb_func_start FUN_02014A8C FUN_02014A8C: ; 0x02014A8C @@ -42417,7 +42417,7 @@ _02014AA6: bl FUN_0200CA98 pop {r3-r7, pc} .balign 4 -_02014AD0: .word FUN_02014B10 + 1 +_02014AD0: .word FUN_02014B10 thumb_func_start FUN_02014AD4 FUN_02014AD4: ; 0x02014AD4 @@ -42427,7 +42427,7 @@ FUN_02014AD4: ; 0x02014AD4 add r5, r0, #0x0 ldr r0, [r1, #0x14] ldr r1, [r1, #0x10] - blx FUN_020CC15C + blx DC_FlushRange ldr r3, [r4, #0x4] ldr r0, [r4, #0x10] str r0, [sp, #0x0] @@ -42455,7 +42455,7 @@ FUN_02014B10: ; 0x02014B10 ldr r0, [r4, #0x0] ldr r1, [r4, #0x10] ldr r0, [r0, #0xc] - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [r4, #0x8] cmp r0, #0x0 bne _02014B34 @@ -42592,7 +42592,7 @@ FUN_02014BF4: ; 0x02014BF4 mov r1, #0x0 add r2, r6, #0x0 str r0, [r4, #0x0] - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 pop {r3-r7, pc} @@ -42613,7 +42613,7 @@ FUN_02014C3C: ; 0x02014C3C add r4, r0, #0x0 cmp r4, #0x19 blo _02014C48 - bl FUN_02020C2C + bl ErrorHandling _02014C48: ldr r0, _02014C50 ; =0x020ED64C ldrb r0, [r0, r4] @@ -42637,7 +42637,7 @@ FUN_02014C54: ; 0x02014C54 str r2, [sp, #0x0] cmp r0, r1 blo _02014C74 - bl FUN_02020C2C + bl ErrorHandling _02014C74: ldr r0, [sp, #0x4] mov r1, #0x1d @@ -42649,14 +42649,14 @@ _02014C74: ldr r0, [r0, #0x10] cmp r0, #0x0 beq _02014C8C - bl FUN_02020C2C + bl ErrorHandling _02014C8C: ldr r0, [r5, #0x0] mov r2, #0x1d add r0, r0, r4 mov r1, #0x0 lsl r2, r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [r5, #0x0] mov r1, #0x1 add r0, r0, r4 @@ -42767,7 +42767,7 @@ _02014CC2: pop {r4-r7, pc} .balign 4 _02014D74: .word 0x000001CD -_02014D78: .word FUN_02014DD8 + 1 +_02014D78: .word FUN_02014DD8 thumb_func_start FUN_02014D7C FUN_02014D7C: ; 0x02014D7C @@ -42777,7 +42777,7 @@ FUN_02014D7C: ; 0x02014D7C add r4, r1, #0x0 cmp r4, r0 blo _02014D8C - bl FUN_02020C2C + bl ErrorHandling _02014D8C: mov r0, #0x1d lsl r0, r0, #0x4 @@ -42937,7 +42937,7 @@ _02014EA0: ldr r0, [r0, #0x0] cmp r0, #0x22 blo _02014EB2 - bl FUN_02020C2C + bl ErrorHandling _02014EB2: ldr r1, [r5, #0xc] add r0, r5, #0x0 @@ -42969,7 +42969,7 @@ _02014EE6: lsl r0, r0, #0x8 cmp r1, r0 blt _02014EA0 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 str r0, [r5, #0x1c] _02014EF8: @@ -42986,7 +42986,7 @@ FUN_02014F08: ; 0x02014F08 ldr r4, [r0, r1] cmp r2, #0x1 beq _02014F16 - bl FUN_02020C2C + bl ErrorHandling _02014F16: add r0, r4, #0x0 pop {r4, pc} @@ -42999,7 +42999,7 @@ FUN_02014F1C: ; 0x02014F1C mov r1, #0x0 bx r3 .balign 4 -_02014F24: .word FUN_02014F08 + 1 +_02014F24: .word FUN_02014F08 thumb_func_start FUN_02014F28 FUN_02014F28: ; 0x02014F28 @@ -43026,7 +43026,7 @@ _02014F3E: add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x54 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x1 str r0, [r4, #0x0] mov r0, #0xc @@ -43043,7 +43043,7 @@ _02014F68: lsr r3, r1, #0x18 cmp r3, #0x4 blo _02014F3E - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} nop @@ -43086,7 +43086,7 @@ FUN_02014FA8: ; 0x02014FA8 ldrb r0, [r4, #0x0] cmp r0, #0x8 blo _02014FC4 - bl FUN_02020C2C + bl ErrorHandling _02014FC4: pop {r4, pc} .balign 4 @@ -43155,7 +43155,7 @@ _0201501C: str r0, [r6, #0x0] pop {r3-r6, pc} _02015048: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x4 pop {r3-r6, pc} @@ -43197,7 +43197,7 @@ _02015082: str r0, [r4, #0x0] b _020150A2 _0201509E: - bl FUN_02020C2C + bl ErrorHandling _020150A2: add r0, sp, #0x0 ldrb r0, [r0, #0x0] @@ -43224,7 +43224,7 @@ _020150B6: str r0, [r6, #0x0] pop {r3-r6, pc} _020150D4: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x4 pop {r3-r6, pc} @@ -43269,7 +43269,7 @@ _02015112: str r0, [r6, #0x0] b _02015132 _0201512E: - bl FUN_02020C2C + bl ErrorHandling _02015132: add r0, r5, #0x0 add r1, sp, #0x0 @@ -43297,7 +43297,7 @@ _0201514C: str r0, [sp, #0x4] b _0201516C _02015168: - bl FUN_02020C2C + bl ErrorHandling _0201516C: ldr r0, [sp, #0x4] add r0, r7, r0 @@ -43343,7 +43343,7 @@ FUN_0201519C: ; 0x0201519C asr r2, r2, #0x3 bx r3 nop -_020151B4: .word FUN_020079E0 + 1 +_020151B4: .word FUN_020079E0 thumb_func_start FUN_020151B8 FUN_020151B8: ; 0x020151B8 @@ -43490,7 +43490,7 @@ FUN_020152B0: ; 0x020152B0 bl FUN_02015050 ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] - blx FUN_020EBC80 + blx _s32_div_f add r1, sp, #0x0 ldrb r1, [r1, #0x0] lsl r1, r1, #0x2 @@ -43511,7 +43511,7 @@ FUN_020152D8: ; 0x020152D8 bl FUN_02015050 ldr r0, [sp, #0x8] ldr r1, [sp, #0x4] - blx FUN_020EBC80 + blx _s32_div_f add r0, sp, #0x0 ldrb r0, [r0, #0x0] lsl r0, r0, #0x2 @@ -43568,7 +43568,7 @@ _02015334: str r0, [sp, #0x8] b _02015362 _0201535E: - bl FUN_02020C2C + bl ErrorHandling _02015362: add r1, sp, #0x0 add r0, r5, #0x0 @@ -43578,7 +43578,7 @@ _02015362: ldrb r0, [r0, #0x1] cmp r0, #0x11 bls _02015378 - bl FUN_02020C2C + bl ErrorHandling _02015378: add r0, sp, #0xc add r1, sp, #0x8 @@ -43616,7 +43616,7 @@ _020153A6: str r0, [sp, #0x4] b _020153CA _020153C6: - bl FUN_02020C2C + bl ErrorHandling _020153CA: add r0, sp, #0x0 ldrb r1, [r0, #0x1] @@ -43657,7 +43657,7 @@ FUN_02015404: ; 0x02015404 ldr r0, [r4, #0x50] cmp r0, #0x0 beq _02015412 - bl FUN_02020C2C + bl ErrorHandling _02015412: ldr r0, [r4, #0xc] add r0, r0, #0x4 @@ -43766,7 +43766,7 @@ _020154C4: str r0, [sp, #0x4] b _020154E4 _020154E0: - bl FUN_02020C2C + bl ErrorHandling _020154E4: add r0, r4, #0x0 add r1, sp, #0x0 @@ -43791,7 +43791,7 @@ _02015502: add sp, #0xc pop {r3-r4, pc} _02015514: - bl FUN_02020C2C + bl ErrorHandling add sp, #0xc pop {r3-r4, pc} @@ -43884,7 +43884,7 @@ _020155B4: str r0, [r4, #0x64] pop {r3-r4, pc} _020155C6: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x4 pop {r3-r4, pc} .balign 4 @@ -43926,7 +43926,7 @@ _02015600: str r0, [r4, #0x64] pop {r3-r4, pc} _02015616: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x4 pop {r3-r4, pc} .balign 4 @@ -43983,7 +43983,7 @@ _0201566E: add r4, #0x78 b _0201567C _02015678: - bl FUN_02020C2C + bl ErrorHandling _0201567C: add r1, sp, #0x0 add r0, r5, #0x0 @@ -44012,7 +44012,7 @@ _02015698: str r0, [sp, #0x4] b _020156B8 _020156B4: - bl FUN_02020C2C + bl ErrorHandling _020156B8: add r0, r5, #0x0 add r1, sp, #0x0 @@ -44035,7 +44035,7 @@ _020156D0: str r0, [r4, #0x0] pop {r3-r5, pc} _020156E0: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x8 pop {r3-r5, pc} @@ -44123,7 +44123,7 @@ _02015778: _0201578A: cmp r0, #0x1c beq _02015792 - bl FUN_02020C2C + bl ErrorHandling _02015792: pop {r4, pc} .balign 4 @@ -44170,7 +44170,7 @@ _020157D2: str r0, [r4, #0x6c] pop {r3-r4, pc} _020157E2: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x4 pop {r3-r4, pc} .balign 4 @@ -44268,7 +44268,7 @@ _02015886: _02015890: cmp r1, #0x0 bne _02015898 - bl FUN_02020C2C + bl ErrorHandling _02015898: pop {r4, pc} nop @@ -44280,7 +44280,7 @@ FUN_020158A0: ; 0x020158A0 mov r1, #0x0 bx r3 nop -_020158A8: .word FUN_0201598C + 1 +_020158A8: .word FUN_0201598C thumb_func_start FUN_020158AC FUN_020158AC: ; 0x020158AC @@ -44288,7 +44288,7 @@ FUN_020158AC: ; 0x020158AC mov r1, #0x1 bx r3 nop -_020158B4: .word FUN_0201598C + 1 +_020158B4: .word FUN_0201598C thumb_func_start FUN_020158B8 FUN_020158B8: ; 0x020158B8 @@ -44296,7 +44296,7 @@ FUN_020158B8: ; 0x020158B8 mov r1, #0x2 bx r3 nop -_020158C0: .word FUN_0201598C + 1 +_020158C0: .word FUN_0201598C thumb_func_start FUN_020158C4 FUN_020158C4: ; 0x020158C4 @@ -44304,7 +44304,7 @@ FUN_020158C4: ; 0x020158C4 mov r1, #0x3 bx r3 nop -_020158CC: .word FUN_0201598C + 1 +_020158CC: .word FUN_0201598C thumb_func_start FUN_020158D0 FUN_020158D0: ; 0x020158D0 @@ -44312,7 +44312,7 @@ FUN_020158D0: ; 0x020158D0 mov r1, #0x4 bx r3 nop -_020158D8: .word FUN_0201598C + 1 +_020158D8: .word FUN_0201598C thumb_func_start FUN_020158DC FUN_020158DC: ; 0x020158DC @@ -44339,7 +44339,7 @@ _020158F6: str r0, [r3, #0x0] pop {r3, pc} _02015904: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} .balign 4 @@ -44412,7 +44412,7 @@ _02015972: str r0, [r1, #0x30] pop {r3, pc} _02015984: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} .balign 4 @@ -44577,7 +44577,7 @@ _02015AA6: str r1, [r0, #0x0] b _02015AC4 _02015AC0: - bl FUN_02020C2C + bl ErrorHandling _02015AC4: add r0, r4, #0x0 add r0, #0x2c @@ -44609,7 +44609,7 @@ FUN_02015AEC: ; 0x02015AEC add r0, r0, #0x1 mul r0, r1 ldr r1, [r4, #0x18] - blx FUN_020EBC80 + blx _s32_div_f ldr r1, [r4, #0x14] add r0, r1, r0 lsl r0, r0, #0x10 @@ -44680,7 +44680,7 @@ _02015B64: str r1, [r0, #0x0] b _02015B82 _02015B7E: - bl FUN_02020C2C + bl ErrorHandling _02015B82: add r0, r4, #0x0 add r0, #0x2c @@ -44745,7 +44745,7 @@ FUN_02015BE8: ; 0x02015BE8 ldr r0, [r4, #0x8] mul r0, r1 ldr r1, [r4, #0xc] - blx FUN_020EBC80 + blx _s32_div_f ldr r1, [r4, #0x24] str r0, [r1, #0x0] add r0, r4, #0x0 @@ -44837,7 +44837,7 @@ _02015C90: str r0, [r4, #0x0] b _02015CA4 _02015CA0: - bl FUN_02020C2C + bl ErrorHandling _02015CA4: add r0, r4, #0x0 add r0, #0x2c @@ -44893,7 +44893,7 @@ FUN_02015CF8: ; 0x02015CF8 add r4, r1, #0x0 cmp r5, #0x3 blt _02015D06 - bl FUN_02020C2C + bl ErrorHandling _02015D06: ldr r0, _02015D10 ; =0x020ED72C lsl r1, r5, #0x1 @@ -45142,7 +45142,7 @@ FUN_02015EA0: ; 0x02015EA0 orr r0, r2 str r0, [r3, r1] mov r0, #0x3 - blx FUN_020CDA1C + blx MI_WaitDma ldr r0, _02015ED0 ; =0x021C48B8 ldr r0, [r0, #0x1c] bl FUN_0201B5CC @@ -45164,27 +45164,27 @@ FUN_02015ED4: ; 0x02015ED4 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] - ldr r3, _02015EF0 ; =FUN_020CDA1C + ldr r3, _02015EF0 ; =MI_WaitDma mov r0, #0x3 bx r3 nop _02015EE8: .word 0x027E0000 _02015EEC: .word 0x00003FF8 -_02015EF0: .word FUN_020CDA1C +_02015EF0: .word MI_WaitDma thumb_func_start FUN_02015EF4 FUN_02015EF4: ; 0x02015EF4 push {r3, lr} mov r0, #0x1 - blx FUN_020C9E14 + blx OS_DisableIrqMask ldr r1, _02015F0C ; =FUN_02015ED4 mov r0, #0x1 - blx FUN_020C9FEC + blx OS_SetIrqFunction mov r0, #0x1 - blx FUN_020C9E5C + blx OS_EnableIrqMask pop {r3, pc} .balign 4 -_02015F0C: .word FUN_02015ED4 + 1 +_02015F0C: .word FUN_02015ED4 thumb_func_start FUN_02015F10 FUN_02015F10: ; 0x02015F10 @@ -45263,7 +45263,7 @@ FUN_02015F80: ; 0x02015F80 bne _02015F9E ldr r0, [r2, #0x8] mov r0, #0x2 - blx FUN_020C9E14 + blx OS_DisableIrqMask mov r0, #0x0 blx FUN_020C5AF8 b _02015FB4 @@ -45271,9 +45271,9 @@ _02015F9E: ldr r0, [r2, #0x8] ldr r1, _02015FC4 ; =FUN_02015F6C mov r0, #0x2 - blx FUN_020C9FEC + blx OS_SetIrqFunction mov r0, #0x2 - blx FUN_020C9E5C + blx OS_EnableIrqMask mov r0, #0x1 blx FUN_020C5AF8 _02015FB4: @@ -45284,14 +45284,14 @@ _02015FB4: pop {r3, pc} nop _02015FC0: .word 0x04000208 -_02015FC4: .word FUN_02015F6C + 1 +_02015FC4: .word FUN_02015F6C thumb_func_start FUN_02015FC8 FUN_02015FC8: ; 0x02015FC8 push {r3, lr} sub sp, #0x30 add r0, sp, #0x10 - blx FUN_020CD754 + blx OS_GetLowEntropyData add r0, sp, #0x0 add r1, sp, #0x10 mov r2, #0x20 @@ -45327,10 +45327,10 @@ _02016002: .balign 4 _02016010: .word 0x020EDB10 - thumb_func_start FUN_02016014 -FUN_02016014: ; 0x02016014 + thumb_func_start InitSystemForTheGame +InitSystemForTheGame: ; 0x02016014 push {r3-r5, lr} - blx FUN_020CC1B4 + blx OS_Init blx FUN_020C5974 ldr r2, _02016124 ; =0x04000304 ldr r0, _02016128 ; =0xFFFFFDF1 @@ -45340,14 +45340,14 @@ FUN_02016014: ; 0x02016014 orr r0, r1 strh r0, [r2, #0x0] blx FUN_020C5B28 - blx FUN_020CCD64 + blx OS_InitTick bl FUN_02015FC8 mov r0, #0xa0 bl FUN_0201B578 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0xa0 bl FUN_0201B580 @@ -45358,7 +45358,7 @@ FUN_02016014: ; 0x02016014 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0x10 bl FUN_0201B580 @@ -45369,7 +45369,7 @@ FUN_02016014: ; 0x02016014 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0x20 bl FUN_0201B580 @@ -45380,7 +45380,7 @@ FUN_02016014: ; 0x02016014 add r1, r0, #0x0 mov r0, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo add r1, r0, #0x0 mov r0, #0x4 bl FUN_0201B580 @@ -45399,35 +45399,35 @@ FUN_02016014: ; 0x02016014 strh r0, [r2, #0x0] ldr r1, _0201613C ; =FUN_02015EA0 mov r0, #0x1 - blx FUN_020C9FEC + blx OS_SetIrqFunction mov r0, #0x1 - blx FUN_020C9E5C + blx OS_EnableIrqMask mov r0, #0x1 lsl r0, r0, #0x12 - blx FUN_020C9E5C + blx OS_EnableIrqMask ldr r1, _02016140 ; =0x04000208 ldrh r0, [r1, #0x0] mov r0, #0x1 strh r0, [r1, #0x0] blx FUN_020C5AC8 mov r0, #0x1 - blx FUN_020D1CD4 + blx FS_Init bl FUN_02022450 mov r0, #0x0 add r1, r0, #0x0 - blx FUN_020D1D10 + blx FS_TryLoadTable add r4, r0, #0x0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo add r5, r0, #0x0 bne _02016108 - bl FUN_02020C2C + bl ErrorHandling _02016108: add r0, r5, #0x0 add r1, r4, #0x0 - blx FUN_020D1D10 + blx FS_TryLoadTable ldr r0, _02016130 ; =0x021C48B8 mov r1, #0x0 str r1, [r0, #0x0] @@ -45445,12 +45445,12 @@ _0201612C: .word 0x0000020E _02016130: .word 0x021C48B8 _02016134: .word 0x04001000 _02016138: .word 0xFFFEFFFF -_0201613C: .word FUN_02015EA0 + 1 +_0201613C: .word FUN_02015EA0 _02016140: .word 0x04000208 _02016144: .word 0x021C4918 - thumb_func_start FUN_02016148 -FUN_02016148: ; 0x02016148 + thumb_func_start InitGraphicMemory +InitGraphicMemory: ; 0x02016148 push {r3, lr} ldr r0, _02016198 ; =0x000001FF blx FUN_020C63A8 @@ -45459,30 +45459,30 @@ FUN_02016148: ; 0x02016148 mov r0, #0x0 lsl r1, r1, #0x16 lsl r2, r2, #0xe - blx FUN_020CE240 + blx MIi_CpuClearFast blx FUN_020C5E54 mov r1, #0x7 mov r2, #0x1 mov r0, #0xc0 lsl r1, r1, #0x18 lsl r2, r2, #0xa - blx FUN_020CE240 + blx MIi_CpuClearFast mov r2, #0x1 ldr r1, _0201619C ; =0x07000400 mov r0, #0xc0 lsl r2, r2, #0xa - blx FUN_020CE240 + blx MIi_CpuClearFast mov r1, #0x5 mov r2, #0x1 mov r0, #0x0 lsl r1, r1, #0x18 lsl r2, r2, #0xa - blx FUN_020CE240 + blx MIi_CpuClearFast mov r2, #0x1 ldr r1, _020161A0 ; =0x05000400 mov r0, #0x0 lsl r2, r2, #0xa - blx FUN_020CE240 + blx MIi_CpuClearFast pop {r3, pc} .balign 4 _02016198: .word 0x000001FF @@ -45496,10 +45496,10 @@ FUN_020161A4: ; 0x020161A4 add r6, r0, #0x0 add r4, r1, #0x0 add r0, sp, #0x0 - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x0 add r1, r4, #0x0 - blx FUN_020D1944 + blx FS_OpenFile cmp r0, #0x0 beq _020161F0 ldr r1, [sp, #0x28] @@ -45513,7 +45513,7 @@ FUN_020161A4: ; 0x020161A4 add r0, sp, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 - blx FUN_020D180C + blx FS_ReadFile cmp r5, r0 beq _020161E8 add r0, r6, #0x0 @@ -45522,7 +45522,7 @@ FUN_020161A4: ; 0x020161A4 mov r4, #0x0 _020161E8: add r0, sp, #0x0 - blx FUN_020D18FC + blx FS_CloseFile b _020161F2 _020161F0: mov r4, #0x0 @@ -45538,10 +45538,10 @@ FUN_020161F8: ; 0x020161F8 add r5, r0, #0x0 add r0, sp, #0x0 add r4, r1, #0x0 - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x0 add r1, r5, #0x0 - blx FUN_020D1944 + blx FS_OpenFile cmp r0, #0x0 beq _0201622A ldr r1, [sp, #0x28] @@ -45551,10 +45551,10 @@ FUN_020161F8: ; 0x020161F8 cmp r1, #0x0 beq _02016224 add r0, sp, #0x0 - blx FUN_020D180C + blx FS_ReadFile _02016224: add r0, sp, #0x0 - blx FUN_020D18FC + blx FS_CloseFile _0201622A: add sp, #0x48 pop {r3-r5, pc} @@ -45734,10 +45734,10 @@ _02016346: b _020163B2 _02016362: add r0, sp, #0x20 - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x20 add r1, sp, #0x0 - blx FUN_020D1944 + blx FS_OpenFile cmp r0, #0x0 beq _020163B0 ldr r1, [sp, #0x48] @@ -45751,7 +45751,7 @@ _02016362: add r0, sp, #0x20 add r1, r4, #0x0 add r2, r6, #0x0 - blx FUN_020D180C + blx FS_ReadFile cmp r6, r0 beq _0201639C add r0, r4, #0x0 @@ -45759,7 +45759,7 @@ _02016362: mov r4, #0x0 _0201639C: add r0, sp, #0x20 - blx FUN_020D18FC + blx FS_CloseFile cmp r5, #0x0 bne _020163B2 add r0, r4, #0x0 @@ -45800,13 +45800,13 @@ FUN_020163BC: ; 0x020163BC strh r2, [r0, #0x22] ldr r0, _02016424 ; =0x021C4918 strb r2, [r0, #0x4] - blx FUN_020D40B8 + blx TP_Init add r0, sp, #0x0 - blx FUN_020D400C + blx TP_GetUserInfo cmp r0, #0x1 add r0, sp, #0x0 bne _02016402 - blx FUN_020D3EC4 + blx TP_SetCalibrateParam add sp, #0x8 pop {r3, pc} _02016402: @@ -45819,7 +45819,7 @@ _02016402: ldr r1, _02016434 ; =0x00001208 strh r1, [r0, #0x6] add r0, sp, #0x0 - blx FUN_020D3EC4 + blx TP_SetCalibrateParam add sp, #0x8 pop {r3, pc} .balign 4 @@ -45929,19 +45929,19 @@ _020164C8: bne _020164F4 add r4, sp, #0x8 _020164E4: - blx FUN_020D3E24 + blx TP_RequestSamplingAsync add r0, r4, #0x0 - blx FUN_020D3DCC + blx TP_WaitRawResult cmp r0, #0x0 bne _020164E4 b _020164FA _020164F4: add r0, sp, #0x8 - blx FUN_020D3AA0 + blx TP_GetLatestRawPointInAuto _020164FA: add r0, sp, #0x0 add r1, sp, #0x8 - blx FUN_020D36F0 + blx TP_GetCalibratedPoint add r1, sp, #0x0 ldrh r3, [r1, #0x6] cmp r3, #0x0 @@ -46224,7 +46224,7 @@ _020166F4: mov r0, #0x0 add r1, r3, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo _020166FE: ldr r1, [sp, #0x4] lsl r7, r6, #0x1 @@ -46236,7 +46236,7 @@ _020166FE: mov r0, #0x0 add r1, r6, r1 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo ldr r1, _020167F0 ; =0x021C4D28 str r0, [r1, #0x0] ldr r1, [sp, #0x4] @@ -46277,13 +46277,13 @@ _0201675C: ldr r1, [r5, #0x0] mov r0, #0x0 mov r2, #0x4 - blx FUN_020CC26C + blx OS_AllocFromArenaLo b _02016772 _02016768: ldr r1, [r5, #0x0] mov r0, #0x2 mov r2, #0x4 - blx FUN_020CC204 + blx OS_AllocFromArenaHi _02016772: cmp r0, #0x0 beq _0201678E @@ -46299,7 +46299,7 @@ _02016772: strb r7, [r0, r7] b _02016792 _0201678E: - bl FUN_02020C2C + bl ErrorHandling _02016792: ldr r0, [sp, #0x0] add r7, r7, #0x1 @@ -46407,10 +46407,10 @@ FUN_02016834: ; 0x02016834 add r5, r1, #0x0 str r2, [sp, #0x0] add r7, r3, #0x0 - blx FUN_020CD374 + blx OS_GetProcMode cmp r0, #0x12 bne _0201684C - bl FUN_02020C2C + bl ErrorHandling _0201684C: ldr r1, _020168CC ; =0x021C4D28 ldr r0, [r1, #0x10] @@ -46457,19 +46457,19 @@ _0201684C: mov r0, #0x1 pop {r3-r7, pc} _020168AA: - bl FUN_02020C2C + bl ErrorHandling b _020168C6 _020168B0: - bl FUN_02020C2C + bl ErrorHandling b _020168C6 _020168B6: - bl FUN_02020C2C + bl ErrorHandling b _020168C6 _020168BC: - bl FUN_02020C2C + bl ErrorHandling b _020168C6 _020168C2: - bl FUN_02020C2C + bl ErrorHandling _020168C6: mov r0, #0x0 add sp, #0x8 @@ -46481,10 +46481,10 @@ _020168CC: .word 0x021C4D28 FUN_020168D0: ; 0x020168D0 push {r4, lr} add r4, r0, #0x0 - blx FUN_020CD374 + blx OS_GetProcMode cmp r0, #0x12 bne _020168E0 - bl FUN_02020C2C + bl ErrorHandling _020168E0: ldr r0, _02016940 ; =0x021C4D28 ldr r1, [r0, #0x0] @@ -46510,7 +46510,7 @@ _020168E0: blx FUN_020ADDF0 b _02016916 _02016912: - bl FUN_02020C2C + bl ErrorHandling _02016916: ldr r1, _02016940 ; =0x021C4D28 mov r0, #0x0 @@ -46546,9 +46546,9 @@ FUN_02016944: ; 0x02016944 add r6, r3, #0x0 cmp r5, #0x0 bne _02016956 - bl FUN_02020C2C + bl ErrorHandling _02016956: - blx FUN_020CD310 + blx OS_DisableInterrupts add r4, #0x10 str r0, [sp, #0x0] add r0, r5, #0x0 @@ -46557,7 +46557,7 @@ _02016956: blx FUN_020ADFA0 add r4, r0, #0x0 ldr r0, [sp, #0x0] - blx FUN_020CD324 + blx OS_RestoreInterrupts cmp r4, #0x0 beq _02016984 ldr r1, [r4, #0xc] @@ -46673,7 +46673,7 @@ FUN_02016A18: ; 0x02016A18 ldr r7, [r1, r0] cmp r7, #0x0 bne _02016A3E - bl FUN_02020C2C + bl ErrorHandling _02016A3E: ldr r0, _02016A88 ; =0x021C4D28 lsl r5, r4, #0x1 @@ -46689,24 +46689,24 @@ _02016A50: ldrh r0, [r0, r5] cmp r0, #0x0 bne _02016A5E - bl FUN_02020C2C + bl ErrorHandling _02016A5E: ldr r0, _02016A88 ; =0x021C4D28 ldr r1, [r0, #0xc] ldrh r0, [r1, r5] sub r0, r0, #0x1 strh r0, [r1, r5] - blx FUN_020CD310 + blx OS_DisableInterrupts sub r6, #0x10 add r4, r0, #0x0 add r0, r7, #0x0 add r1, r6, #0x0 blx FUN_020ADDF0 add r0, r4, #0x0 - blx FUN_020CD324 + blx OS_RestoreInterrupts pop {r3-r7, pc} _02016A80: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} nop _02016A88: .word 0x021C4D28 @@ -46716,10 +46716,10 @@ FUN_02016A8C: ; 0x02016A8C push {r4-r6, lr} add r5, r0, #0x0 add r4, r1, #0x0 - blx FUN_020CD374 + blx OS_GetProcMode cmp r0, #0x12 bne _02016A9E - bl FUN_02020C2C + bl ErrorHandling _02016A9E: ldr r0, _02016AF4 ; =0x021C4D28 ldrh r1, [r0, #0x14] @@ -46732,7 +46732,7 @@ _02016A9E: ldr r6, [r1, r0] cmp r6, #0x0 bne _02016AB8 - bl FUN_02020C2C + bl ErrorHandling _02016AB8: sub r0, r4, #0x4 ldr r0, [r0, #0x0] @@ -46740,7 +46740,7 @@ _02016AB8: lsr r0, r0, #0x18 cmp r0, r5 beq _02016AC8 - bl FUN_02020C2C + bl ErrorHandling _02016AC8: sub r4, #0x10 add r0, r6, #0x0 @@ -46752,7 +46752,7 @@ _02016AC8: ldrh r0, [r0, r4] cmp r0, #0x0 bne _02016AE2 - bl FUN_02020C2C + bl ErrorHandling _02016AE2: ldr r0, _02016AF4 ; =0x021C4D28 ldr r1, [r0, #0xc] @@ -46761,7 +46761,7 @@ _02016AE2: strh r0, [r1, r4] pop {r4-r6, pc} _02016AEE: - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} .balign 4 _02016AF4: .word 0x021C4D28 @@ -46781,7 +46781,7 @@ FUN_02016AF8: ; 0x02016AF8 blx FUN_020ADDC8 pop {r3, pc} _02016B12: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop @@ -46802,7 +46802,7 @@ FUN_02016B20: ; 0x02016B20 blx FUN_020AE82C pop {r4, pc} _02016B3A: - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} .balign 4 _02016B40: .word 0x021C4D28 @@ -46812,10 +46812,10 @@ FUN_02016B44: ; 0x02016B44 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 - blx FUN_020CD374 + blx OS_GetProcMode cmp r0, #0x12 bne _02016B56 - bl FUN_02020C2C + bl ErrorHandling _02016B56: add r0, r5, #0x0 sub r0, #0x10 @@ -46839,7 +46839,7 @@ _02016B56: blx FUN_020ADE2C pop {r3-r5, pc} _02016B84: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} nop _02016B8C: .word 0x021C4D28 @@ -47510,7 +47510,7 @@ _0201705A: ldr r1, [r6, r5] ldr r2, [r4, #0x8] mov r0, #0x0 - blx FUN_020CE1C8 + blx MIi_CpuClear16 ldr r0, [sp, #0x0] ldr r2, [r4, #0x8] add r1, r0, r5 @@ -49172,7 +49172,7 @@ FUN_02017C98: ; 0x02017C98 push {r3-r5, lr} cmp r2, #0x0 bne _02017CA4 - blx FUN_020CE528 + blx MI_UncompressLZ8 pop {r3-r5, pc} _02017CA4: mov r4, #0x3 @@ -49191,10 +49191,10 @@ _02017CA4: ror r5, r3 add r3, r4, r5 bne _02017CCA - blx FUN_020CE210 + blx MIi_CpuCopy32 pop {r3-r5, pc} _02017CCA: - blx FUN_020CE1E0 + blx MIi_CpuCopy16 pop {r3-r5, pc} thumb_func_start FUN_02017CD0 @@ -49282,7 +49282,7 @@ FUN_02017D68: ; 0x02017D68 add r0, r4, #0x0 add r1, r6, #0x0 add r5, r2, #0x0 - blx FUN_020CC15C + blx DC_FlushRange cmp r7, #0x7 bhi _02017DF8 add r0, r7, r7 @@ -49431,7 +49431,7 @@ FUN_02017E84: ; 0x02017E84 add r0, r4, #0x0 add r1, r6, #0x0 add r5, r2, #0x0 - blx FUN_020CC15C + blx DC_FlushRange cmp r7, #0x7 bhi _02017F14 add r0, r7, r7 @@ -49564,7 +49564,7 @@ _02017F8C: ldr r1, [sp, #0x4] ldr r2, [sp, #0x0] add r0, r5, #0x0 - blx FUN_020CE240 + blx MIi_CpuClearFast lsl r0, r7, #0x18 ldrb r2, [r4, r6] ldr r3, [sp, #0x20] @@ -49587,7 +49587,7 @@ FUN_02017FB4: ; 0x02017FB4 add r0, r5, #0x0 add r1, r4, #0x0 add r7, r3, #0x0 - blx FUN_020CC15C + blx DC_FlushRange cmp r6, #0x4 bhs _02017FD6 add r0, r5, #0x0 @@ -50632,7 +50632,7 @@ FUN_02018744: ; 0x02018744 beq _02018766 ldr r2, [r2, #0xc] mov r0, #0x0 - blx FUN_020CE1C8 + blx MIi_CpuClear16 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02017CD0 @@ -50652,7 +50652,7 @@ FUN_02018768: ; 0x02018768 beq _0201878A add r0, r2, #0x0 ldr r2, [r3, #0xc] - blx FUN_020CE1C8 + blx MIi_CpuClear16 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_02017CD0 @@ -50672,7 +50672,7 @@ FUN_0201878C: ; 0x0201878C beq _020187AE add r0, r2, #0x0 ldr r2, [r3, #0xc] - blx FUN_020CE1C8 + blx MIi_CpuClear16 add r0, r5, #0x0 add r1, r4, #0x0 bl FUN_0201AC68 @@ -52092,17 +52092,17 @@ FUN_020191D0: ; 0x020191D0 push {r4, lr} add r4, r0, #0x0 bne _020191DA - bl FUN_02020C2C + bl ErrorHandling _020191DA: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _020191E4 - bl FUN_02020C2C + bl ErrorHandling _020191E4: ldrb r0, [r4, #0x4] cmp r0, #0x8 blo _020191EE - bl FUN_02020C2C + bl ErrorHandling _020191EE: ldrb r1, [r4, #0x4] mov r0, #0x2c @@ -52112,7 +52112,7 @@ _020191EE: ldrb r0, [r0, #0x1c] cmp r0, #0x3 blo _02019202 - bl FUN_02020C2C + bl ErrorHandling _02019202: ldrb r2, [r4, #0x4] mov r1, #0x2c @@ -52134,17 +52134,17 @@ FUN_02019220: ; 0x02019220 push {r4, lr} add r4, r0, #0x0 bne _0201922A - bl FUN_02020C2C + bl ErrorHandling _0201922A: ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02019234 - bl FUN_02020C2C + bl ErrorHandling _02019234: ldrb r0, [r4, #0x4] cmp r0, #0x8 blo _0201923E - bl FUN_02020C2C + bl ErrorHandling _0201923E: ldrb r1, [r4, #0x4] mov r0, #0x2c @@ -52154,7 +52154,7 @@ _0201923E: ldrb r0, [r0, #0x1c] cmp r0, #0x3 blo _02019252 - bl FUN_02020C2C + bl ErrorHandling _02019252: ldrb r2, [r4, #0x4] mov r1, #0x2c @@ -52718,7 +52718,7 @@ _0201963C: ldrb r4, [r4, #0x7] mul r2, r4 mul r2, r3 - blx FUN_020CE240 + blx MIi_CpuClearFast pop {r3-r5, pc} thumb_func_start FUN_02019658 @@ -56471,7 +56471,7 @@ FUN_0201B1A8: ; 0x0201B1A8 bne _0201B1D2 ldr r0, [r5, #0x0] ldr r1, [r0, #0x8] - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [r5, #0x0] blx FUN_020BB59C _0201B1D2: @@ -56498,7 +56498,7 @@ FUN_0201B1E4: ; 0x0201B1E4 bne _0201B20A ldr r0, [r5, #0x0] ldr r1, [r0, #0x8] - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [r5, #0x0] blx FUN_020BB59C _0201B20A: @@ -56534,7 +56534,7 @@ FUN_0201B234: ; 0x0201B234 bl FUN_0201B1E4 cmp r4, #0x0 bne _0201B24A - bl FUN_02020C2C + bl ErrorHandling _0201B24A: ldr r1, [r4, #0x0] add r0, r5, #0x0 @@ -56568,7 +56568,7 @@ FUN_0201B26C: ; 0x0201B26C blx FUN_020B8474 ldr r1, _0201B2A0 ; =0x021CEDD4 add r0, r4, #0x0 - blx FUN_020CE2E0 + blx MI_Copy36B ldr r1, _0201B2A4 ; =0x021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] @@ -56594,7 +56594,7 @@ FUN_0201B2A8: ; 0x0201B2A8 blx FUN_020B8474 ldr r1, _0201B2E4 ; =0x021CEDD4 add r0, r4, #0x0 - blx FUN_020CE2E0 + blx MI_Copy36B ldr r1, _0201B2E8 ; =0x021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] @@ -56631,7 +56631,7 @@ FUN_0201B2EC: ; 0x0201B2EC add sp, #0x8 pop {r3, pc} nop -_0201B30C: .word FUN_0201B314 + 1 +_0201B30C: .word FUN_0201B314 _0201B310: .word 0x021C4D44 thumb_func_start FUN_0201B314 @@ -56703,7 +56703,7 @@ FUN_0201B398: ; 0x0201B398 bx r3 .balign 4 _0201B3A0: .word 0x021C4D44 -_0201B3A4: .word FUN_020223BC + 1 +_0201B3A4: .word FUN_020223BC thumb_func_start FUN_0201B3A8 FUN_0201B3A8: ; 0x0201B3A8 @@ -56807,7 +56807,7 @@ _0201B452: blx r1 cmp r0, #0x0 beq _0201B468 - bl FUN_02020C2C + bl ErrorHandling _0201B468: add sp, #0x10 mov r0, #0x0 @@ -56822,7 +56822,7 @@ _0201B46E: blx r1 cmp r0, #0x0 beq _0201B484 - bl FUN_02020C2C + bl ErrorHandling _0201B484: add sp, #0x10 mov r0, #0x0 @@ -56837,7 +56837,7 @@ _0201B48A: blx r1 cmp r0, #0x0 beq _0201B4A0 - bl FUN_02020C2C + bl ErrorHandling _0201B4A0: add sp, #0x10 mov r0, #0x0 @@ -56852,7 +56852,7 @@ _0201B4A6: blx FUN_020B7CDC ldr r1, [r5, #0x4] add r0, r5, #0x0 - blx FUN_020CC15C + blx DC_FlushRange add r0, r5, #0x0 mov r1, #0x1 blx FUN_020B7D28 @@ -56969,7 +56969,7 @@ FUN_0201B580: ; 0x0201B580 add r5, r0, #0x0 add r4, r1, #0x0 bne _0201B58C - bl FUN_02020C2C + bl ErrorHandling _0201B58C: add r1, r4, #0x0 add r1, #0x34 @@ -57204,7 +57204,7 @@ FUN_0201B6D0: ; 0x0201B6D0 blx FUN_020B8474 ldr r1, _0201B764 ; =0x021CEDD4 add r0, r5, #0x0 - blx FUN_020CE2E0 + blx MI_Copy36B ldr r1, _0201B768 ; =0x021CED98 mov r0, #0xa4 ldr r2, [r1, #0x7c] @@ -57416,7 +57416,7 @@ FUN_0201B8B8: ; 0x0201B8B8 ldr r0, _0201B8DC ; =0x0000FFFE cmp r1, r0 beq _0201B8C8 - bl FUN_02020C2C + bl ErrorHandling _0201B8C8: ldrh r1, [r4, #0x0] ldr r0, _0201B8DC ; =0x0000FFFE @@ -57440,7 +57440,7 @@ FUN_0201B8E0: ; 0x0201B8E0 ldr r0, _0201B8F4 ; =0x0000FFFE cmp r1, r0 beq _0201B8F0 - bl FUN_02020C2C + bl ErrorHandling _0201B8F0: ldrh r0, [r4, #0x2] pop {r4, pc} @@ -57473,12 +57473,12 @@ FUN_0201B914: ; 0x0201B914 ldr r0, _0201B938 ; =0x0000FFFE cmp r1, r0 beq _0201B926 - bl FUN_02020C2C + bl ErrorHandling _0201B926: ldrh r0, [r5, #0x4] cmp r4, r0 blo _0201B930 - bl FUN_02020C2C + bl ErrorHandling _0201B930: lsl r0, r4, #0x1 add r0, r5, r0 @@ -57525,7 +57525,7 @@ FUN_0201B970: ; 0x0201B970 push {r3, lr} mov r1, #0x5a lsl r1, r1, #0x2 - blx FUN_020EBC80 + blx _s32_div_f ldr r0, _0201B984 ; =0x020EDF50 lsl r1, r1, #0x2 ldr r0, [r0, r1] @@ -57538,7 +57538,7 @@ FUN_0201B988: ; 0x0201B988 push {r3, lr} mov r1, #0x5a lsl r1, r1, #0x2 - blx FUN_020EBC80 + blx _s32_div_f add r1, #0x5a ldr r0, _0201B99C ; =0x020EDF50 lsl r1, r1, #0x2 @@ -57552,7 +57552,7 @@ FUN_0201B9A0: ; 0x0201B9A0 push {r3, lr} mov r1, #0x5a lsl r1, r1, #0x2 - blx FUN_020EBC80 + blx _s32_div_f ldr r0, _0201B9B4 ; =0x020EDC7E lsl r1, r1, #0x1 ldrh r0, [r0, r1] @@ -57567,7 +57567,7 @@ FUN_0201B9B8: ; 0x0201B9B8 mov r1, #0x5a lsr r0, r0, #0x10 lsl r1, r1, #0x2 - blx FUN_020EBC80 + blx _s32_div_f ldr r0, _0201B9D0 ; =0x020EDF50 lsl r1, r1, #0x2 ldr r0, [r0, r1] @@ -57944,7 +57944,7 @@ FUN_0201BC84: ; 0x0201BC84 lsr r2, r2, #0xc orr r2, r1 asr r1, r2, #0xc - blx FUN_020EBC80 + blx _s32_div_f pop {r3-r5, pc} nop _0201BCB4: .word 0x0000323D @@ -57994,14 +57994,14 @@ FUN_0201BCFC: ; 0x0201BCFC add r5, r0, #0x0 cmp r5, #0x8 blo _0201BD08 - bl FUN_02020C2C + bl ErrorHandling _0201BD08: ldr r6, _0201BD40 ; =0x021C5714 lsl r4, r5, #0x2 ldr r0, [r6, r4] cmp r0, #0x0 bne _0201BD16 - bl FUN_02020C2C + bl ErrorHandling _0201BD16: cmp r5, #0x8 bhs _0201BD3C @@ -58066,7 +58066,7 @@ FUN_0201BD7C: ; 0x0201BD7C ldr r3, _0201BD80 ; =FUN_0201BCFC bx r3 .balign 4 -_0201BD80: .word FUN_0201BCFC + 1 +_0201BD80: .word FUN_0201BCFC thumb_func_start FUN_0201BD84 FUN_0201BD84: ; 0x0201BD84 @@ -58366,7 +58366,7 @@ _0201BFBE: nop _0201BFD0: .word 0x02105BB4 _0201BFD4: .word 0x021C570C -_0201BFD8: .word FUN_0201BFDC + 1 +_0201BFD8: .word FUN_0201BFDC thumb_func_start FUN_0201BFDC FUN_0201BFDC: ; 0x0201BFDC @@ -58642,7 +58642,7 @@ FUN_0201C1B0: ; 0x0201C1B0 ldr r0, [r0, #0x14] add r1, r5, #0x0 lsl r2, r2, #0x8 - blx FUN_020CE210 + blx MIi_CpuCopy32 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 @@ -58711,7 +58711,7 @@ FUN_0201C24C: ; 0x0201C24C ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201C25E - bl FUN_02020C2C + bl ErrorHandling _0201C25E: add r0, r4, #0x0 mov r1, #0xc @@ -58720,7 +58720,7 @@ _0201C25E: cmp r0, #0x0 str r0, [r1, #0x0] bne _0201C272 - bl FUN_02020C2C + bl ErrorHandling _0201C272: add r0, r4, #0x0 lsl r1, r5, #0x4 @@ -58748,7 +58748,7 @@ FUN_0201C29C: ; 0x0201C29C ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0201C2AA - bl FUN_02020C2C + bl ErrorHandling _0201C2AA: ldr r0, _0201C2C4 ; =0x021C5934 ldr r0, [r0, #0x0] @@ -58775,7 +58775,7 @@ FUN_0201C2C8: ; 0x0201C2C8 add r7, r3, #0x0 cmp r0, #0x0 bne _0201C2DE - bl FUN_02020C2C + bl ErrorHandling _0201C2DE: ldr r1, _0201C308 ; =0x021C5934 ldr r0, [r1, #0x0] @@ -58787,7 +58787,7 @@ _0201C2DE: ldr r0, [r0, #0x0] cmp r1, r0 blo _0201C2FA - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201C2FA: @@ -58832,7 +58832,7 @@ FUN_0201C328: ; 0x0201C328 add r0, r5, #0x0 pop {r3-r5, pc} .balign 4 -_0201C344: .word FUN_0201C358 + 1 +_0201C344: .word FUN_0201C358 thumb_func_start FUN_0201C348 FUN_0201C348: ; 0x0201C348 @@ -58846,7 +58846,7 @@ FUN_0201C350: ; 0x0201C350 ldr r3, _0201C354 ; =FUN_02016A18 bx r3 .balign 4 -_0201C354: .word FUN_02016A18 + 1 +_0201C354: .word FUN_02016A18 thumb_func_start FUN_0201C358 FUN_0201C358: ; 0x0201C358 @@ -58953,7 +58953,7 @@ FUN_0201C40C: ; 0x0201C40C ldr r3, _0201C410 ; =FUN_0201C444 bx r3 .balign 4 -_0201C410: .word FUN_0201C444 + 1 +_0201C410: .word FUN_0201C444 thumb_func_start FUN_0201C414 FUN_0201C414: ; 0x0201C414 @@ -58984,7 +58984,7 @@ FUN_0201C438: ; 0x0201C438 lsr r1, r1, #0x10 bx r3 .balign 4 -_0201C440: .word FUN_0201C454 + 1 +_0201C440: .word FUN_0201C454 thumb_func_start FUN_0201C444 FUN_0201C444: ; 0x0201C444 @@ -60061,7 +60061,7 @@ FUN_0201CC08: ; 0x0201CC08 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CC16 - bl FUN_02020C2C + bl ErrorHandling _0201CC16: ldr r0, _0201CC20 ; =0x021C5978 mov r1, #0x0 @@ -60080,7 +60080,7 @@ FUN_0201CC24: ; 0x0201CC24 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CC36 - bl FUN_02020C2C + bl ErrorHandling _0201CC36: cmp r4, #0x5 bhs _0201CC3E @@ -60171,11 +60171,11 @@ _0201CCD0: mov r4, #0x4 add r6, r4, #0x0 _0201CCD4: - blx FUN_020D3C14 + blx TP_RequestAutoSamplingStopAsync add r0, r4, #0x0 - blx FUN_020D36D8 + blx TP_WaitBusy add r0, r6, #0x0 - blx FUN_020D36C4 + blx TP_CheckError cmp r0, #0x0 beq _0201CCEA add r5, r5, #0x1 @@ -60203,7 +60203,7 @@ FUN_0201CD04: ; 0x0201CD04 ldrh r0, [r0, #0x1a] cmp r0, #0x0 beq _0201CD14 - bl FUN_02020C2C + bl ErrorHandling _0201CD14: bl FUN_0201CCC0 add r4, r0, #0x0 @@ -60234,13 +60234,13 @@ FUN_0201CD38: ; 0x0201CD38 mov r5, #0x3 cmp r0, #0x0 beq _0201CD4E - bl FUN_02020C2C + bl ErrorHandling _0201CD4E: ldr r0, _0201CD8C ; =0x021C5978 ldrh r0, [r0, #0x18] cmp r0, #0x0 beq _0201CD88 - blx FUN_020D3A90 + blx TP_GetLatestIndexInAuto add r5, r0, #0x0 ldr r0, _0201CD90 ; =0x021C5944 mov r1, #0x9 @@ -60284,7 +60284,7 @@ FUN_0201CD94: ; 0x0201CD94 _0201CDA6: add r0, sp, #0x4 add r1, r5, #0x0 - blx FUN_020D36F0 + blx TP_GetCalibratedPoint ldrh r0, [r6, #0x0] add r7, r7, #0x1 add r5, #0x8 @@ -60320,7 +60320,7 @@ FUN_0201CDD0: ; 0x0201CDD0 bl FUN_0201CE2C cmp r0, #0x1 beq _0201CDF2 - bl FUN_02020C2C + bl ErrorHandling _0201CDF2: ldr r0, _0201CDFC ; =0x021C5978 mov r1, #0x0 @@ -60344,7 +60344,7 @@ FUN_0201CE04: ; 0x0201CE04 bl FUN_0201CCC0 cmp r0, #0x1 beq _0201CE20 - bl FUN_02020C2C + bl ErrorHandling _0201CE20: ldr r0, _0201CE28 ; =0x021C5978 mov r1, #0x1 @@ -60367,11 +60367,11 @@ _0201CE38: add r1, r4, #0x0 add r2, r7, #0x0 mov r3, #0x9 - blx FUN_020D3CB8 + blx TP_RequestAutoSamplingStartAsync mov r0, #0x2 - blx FUN_020D36D8 + blx TP_WaitBusy mov r0, #0x2 - blx FUN_020D36C4 + blx TP_CheckError cmp r0, #0x0 beq _0201CE56 add r5, r5, #0x1 @@ -60664,7 +60664,7 @@ FUN_0201D040: ; 0x0201D040 nop _0201D054: .word 0x04001000 _0201D058: .word 0x00300010 -_0201D05C: .word FUN_0201D060 + 1 +_0201D05C: .word FUN_0201D060 thumb_func_start FUN_0201D060 FUN_0201D060: ; 0x0201D060 @@ -60685,7 +60685,7 @@ FUN_0201D060: ; 0x0201D060 mov r2, #0x3c str r1, [r0, #0x0] mov r0, #0x0 - blx FUN_020CE1FC + blx MIi_CpuClear32 ldr r1, _0201D120 ; =0x021C5994 ldr r2, [r5, #0x0] ldr r0, [r1, #0x0] @@ -60871,12 +60871,12 @@ FUN_0201D1F8: ; 0x0201D1F8 bl FUN_0201D2AC cmp r0, #0x1 bne _0201D20A - bl FUN_02020C2C + bl ErrorHandling _0201D20A: bl FUN_0201DAAC add r4, r0, #0x0 bne _0201D21A - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201D21A: @@ -60915,12 +60915,12 @@ FUN_0201D250: ; 0x0201D250 bl FUN_0201D2AC cmp r0, #0x1 bne _0201D262 - bl FUN_02020C2C + bl ErrorHandling _0201D262: bl FUN_0201DAAC add r4, r0, #0x0 bne _0201D272 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201D272: @@ -60989,13 +60989,13 @@ FUN_0201D2DC: ; 0x0201D2DC add r4, r0, #0x0 add r5, r1, #0x0 bne _0201D2E8 - bl FUN_02020C2C + bl ErrorHandling _0201D2E8: add r0, r4, #0x0 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D2F6 - bl FUN_02020C2C + bl ErrorHandling _0201D2F6: str r5, [r4, #0x0] ldr r1, [r4, #0x4] @@ -61032,7 +61032,7 @@ _0201D32C: bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D33A - bl FUN_02020C2C + bl ErrorHandling _0201D33A: add r0, r4, #0x0 add r0, #0x3c @@ -61106,7 +61106,7 @@ FUN_0201D3B0: ; 0x0201D3B0 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D3BE - bl FUN_02020C2C + bl ErrorHandling _0201D3BE: add r0, r4, #0x0 add r0, #0x3c @@ -61129,7 +61129,7 @@ FUN_0201D3D4: ; 0x0201D3D4 bl FUN_0201D7F8 add r4, r0, #0x0 bne _0201D3E6 - bl FUN_02020C2C + bl ErrorHandling _0201D3E6: add r0, r4, #0x0 add r0, #0x3c @@ -61194,12 +61194,12 @@ FUN_0201D458: ; 0x0201D458 bl FUN_0201D6D8 add r4, r0, #0x0 bne _0201D468 - bl FUN_02020C2C + bl ErrorHandling _0201D468: bl FUN_0201DAAC add r5, r0, #0x0 bne _0201D474 - bl FUN_02020C2C + bl ErrorHandling _0201D474: add r0, r4, #0x0 add r0, #0x3c @@ -61459,7 +61459,7 @@ FUN_0201D658: ; 0x0201D658 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0201D666 - bl FUN_02020C2C + bl ErrorHandling _0201D666: ldr r1, _0201D670 ; =0x021C5994 mov r2, #0x0 @@ -61477,7 +61477,7 @@ FUN_0201D674: ; 0x0201D674 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201D684 - bl FUN_02020C2C + bl ErrorHandling _0201D684: ldr r0, _0201D68C ; =0x021C5994 str r4, [r0, #0x0] @@ -61786,7 +61786,7 @@ FUN_0201D86C: ; 0x0201D86C str r0, [r4, #0x0] cmp r0, r1 bne _0201D8B8 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201D8B8: @@ -61820,7 +61820,7 @@ _0201D8C4: str r0, [r6, #0x0] cmp r0, r1 bne _0201D902 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201D902: @@ -62254,7 +62254,7 @@ _0201DBD6: _0201DC12: cmp r2, #0x0 bne _0201DC1A - bl FUN_02020C2C + bl ErrorHandling _0201DC1A: ldr r0, _0201DC38 ; =0x021C5994 mov r2, #0x0 @@ -62269,7 +62269,7 @@ _0201DC1A: _0201DC2E: cmp r2, #0x0 bne _0201DC36 - bl FUN_02020C2C + bl ErrorHandling _0201DC36: pop {r3, pc} .balign 4 @@ -62424,7 +62424,7 @@ _0201DD32: ldrb r1, [r4, r1] tst r0, r1 beq _0201DD54 - bl FUN_02020C2C + bl ErrorHandling _0201DD54: add r2, sp, #0x0 ldrb r3, [r2, #0x0] @@ -62542,7 +62542,7 @@ _0201DE0E: ldrb r1, [r4, r1] tst r0, r1 bne _0201DE2A - bl FUN_02020C2C + bl ErrorHandling _0201DE2A: ldrb r0, [r7, #0x0] mov r1, #0x1 @@ -62671,7 +62671,7 @@ FUN_0201DF10: ; 0x0201DF10 add r5, r0, #0x0 add r4, r1, #0x0 add r6, r2, #0x0 - blx FUN_020EBC80 + blx _s32_div_f cmp r1, #0x0 beq _0201DF28 sub r5, r5, r1 @@ -62687,11 +62687,11 @@ FUN_0201DF2C: ; 0x0201DF2C asr r2, r0, #0x4 lsr r2, r2, #0x1b add r2, r0, r2 - ldr r3, _0201DF38 ; =FUN_020EBC80 + ldr r3, _0201DF38 ; =_s32_div_f asr r0, r2, #0x5 bx r3 .balign 4 -_0201DF38: .word FUN_020EBC80 +_0201DF38: .word _s32_div_f thumb_func_start FUN_0201DF3C FUN_0201DF3C: ; 0x0201DF3C @@ -62718,7 +62718,7 @@ FUN_0201DF44: ; 0x0201DF44 add r3, r6, r5 cmp r3, r2 bls _0201DF6C - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 b _0201DF6E _0201DF6C: @@ -62734,7 +62734,7 @@ _0201DF6E: add r2, r3, r5 cmp r2, r1 bls _0201DF8A - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _0201DF8A: @@ -62831,7 +62831,7 @@ FUN_0201E00C: ; 0x0201E00C mov r2, #0x28 str r1, [r0, #0x0] mov r0, #0x0 - blx FUN_020CE1FC + blx MIi_CpuClear32 ldr r0, _0201E064 ; =0x021C5998 mov r1, #0x30 ldr r0, [r0, #0x0] @@ -62939,7 +62939,7 @@ FUN_0201E0E4: ; 0x0201E0E4 bl FUN_0201E428 add r4, r0, #0x0 bne _0201E0F8 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201E0F8: @@ -62973,7 +62973,7 @@ FUN_0201E128: ; 0x0201E128 bl FUN_0201E428 add r4, r0, #0x0 bne _0201E13C - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201E13C: @@ -63005,13 +63005,13 @@ FUN_0201E168: ; 0x0201E168 add r4, r0, #0x0 add r5, r1, #0x0 bne _0201E174 - bl FUN_02020C2C + bl ErrorHandling _0201E174: add r0, r4, #0x0 bl FUN_0201E3F0 add r4, r0, #0x0 bne _0201E182 - bl FUN_02020C2C + bl ErrorHandling _0201E182: str r5, [r4, #0x0] ldr r1, [r4, #0x4] @@ -63058,7 +63058,7 @@ FUN_0201E1C8: ; 0x0201E1C8 bl FUN_0201E3F0 add r4, r0, #0x0 bne _0201E1D6 - bl FUN_02020C2C + bl ErrorHandling _0201E1D6: add r0, r4, #0x0 add r0, #0x2c @@ -63115,7 +63115,7 @@ FUN_0201E230: ; 0x0201E230 cmp r0, #0x0 bne _0201E244 bne _0201E240 - bl FUN_02020C2C + bl ErrorHandling _0201E240: mov r0, #0x0 pop {r3, pc} @@ -63140,7 +63140,7 @@ FUN_0201E258: ; 0x0201E258 cmp r0, #0x0 bne _0201E26E bne _0201E26A - bl FUN_02020C2C + bl ErrorHandling _0201E26A: mov r0, #0x0 pop {r4, pc} @@ -63197,7 +63197,7 @@ FUN_0201E2BC: ; 0x0201E2BC ldr r3, _0201E2C0 ; =FUN_0201E2F8 bx r3 .balign 4 -_0201E2C0: .word FUN_0201E2F8 + 1 +_0201E2C0: .word FUN_0201E2F8 thumb_func_start FUN_0201E2C4 FUN_0201E2C4: ; 0x0201E2C4 @@ -63210,7 +63210,7 @@ FUN_0201E2C4: ; 0x0201E2C4 bl FUN_0201E1B4 cmp r0, #0x1 bne _0201E2E0 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201E2E0: @@ -63295,7 +63295,7 @@ FUN_0201E36C: ; 0x0201E36C ldr r0, [r0, #0x4] cmp r0, #0x0 beq _0201E37C - bl FUN_02020C2C + bl ErrorHandling _0201E37C: ldr r1, [r5, #0x4] mov r0, #0x1 @@ -63473,7 +63473,7 @@ FUN_0201E4AC: ; 0x0201E4AC str r2, [r1, #0x8] bx r3 .balign 4 -_0201E4B8: .word FUN_0201E4BC + 1 +_0201E4B8: .word FUN_0201E4BC thumb_func_start FUN_0201E4BC FUN_0201E4BC: ; 0x0201E4BC @@ -63673,7 +63673,7 @@ FUN_0201E5F4: ; 0x0201E5F4 add r2, r1, r2 cmp r2, r3 bls _0201E618 - bl FUN_02020C2C + bl ErrorHandling bl FUN_0201E0B8 mov r0, #0x0 b _0201E61A @@ -63690,7 +63690,7 @@ _0201E61A: ldr r1, [sp, #0x10] cmp r2, r1 bls _0201E63A - bl FUN_02020C2C + bl ErrorHandling bl FUN_0201E0B8 mov r0, #0x0 pop {r3-r5, pc} @@ -64243,7 +64243,7 @@ _0201EA5C: ldr r0, [r7, #0x4] ldr r1, [r1, #0x0] add r0, r0, #0x1 - blx FUN_020EBC80 + blx _s32_div_f str r1, [r7, #0x4] ldr r1, [sp, #0x0] ldr r0, [r5, #0x64] @@ -64262,7 +64262,7 @@ _0201EA5C: ldr r0, [r0, #0x0] ldr r1, [r1, #0x0] add r0, r0, #0x1 - blx FUN_020EBC80 + blx _s32_div_f ldr r0, [sp, #0x0] str r1, [r0, #0x0] ldr r0, [r5, #0x64] @@ -64304,7 +64304,7 @@ FUN_0201EABC: ; 0x0201EABC add r0, r7, #0x1 cmp r0, r5 ble _0201EADA - bl FUN_02020C2C + bl ErrorHandling _0201EADA: ldr r0, [sp, #0x0] mov r1, #0x24 @@ -64388,14 +64388,14 @@ FUN_0201EB64: ; 0x0201EB64 mov r1, #0x68 bx r3 nop -_0201EB6C: .word FUN_02016998 + 1 +_0201EB6C: .word FUN_02016998 thumb_func_start FUN_0201EB70 FUN_0201EB70: ; 0x0201EB70 ldr r3, _0201EB74 ; =FUN_02016A18 bx r3 .balign 4 -_0201EB74: .word FUN_02016A18 + 1 +_0201EB74: .word FUN_02016A18 thumb_func_start FUN_0201EB78 FUN_0201EB78: ; 0x0201EB78 @@ -64562,7 +64562,7 @@ FUN_0201EC94: ; 0x0201EC94 add r1, r2, #0x0 bx r3 .balign 4 -_0201ECA4: .word FUN_0201EE2C + 1 +_0201ECA4: .word FUN_0201EE2C thumb_func_start FUN_0201ECA8 FUN_0201ECA8: ; 0x0201ECA8 @@ -64879,7 +64879,7 @@ FUN_0201EEF0: ; 0x0201EEF0 ldrb r0, [r0, #0x0] bx r3 nop -_0201EF24: .word FUN_0201EE2C + 1 +_0201EF24: .word FUN_0201EE2C _0201EF28: .word 0x020FFA38 thumb_func_start FUN_0201EF2C @@ -64914,7 +64914,7 @@ FUN_0201EF2C: ; 0x0201EF2C ldrb r0, [r0, #0x0] bx r3 nop -_0201EF68: .word FUN_0201EE2C + 1 +_0201EF68: .word FUN_0201EE2C _0201EF6C: .word 0x020FFA38 thumb_func_start FUN_0201EF70 @@ -64952,7 +64952,7 @@ FUN_0201EF90: ; 0x0201EF90 add r0, r1, #0x0 bx r3 nop -_0201EFB0: .word FUN_0201E7D8 + 1 +_0201EFB0: .word FUN_0201E7D8 thumb_func_start FUN_0201EFB4 FUN_0201EFB4: ; 0x0201EFB4 @@ -64976,7 +64976,7 @@ FUN_0201EFB4: ; 0x0201EFB4 add r0, r1, #0x0 bx r3 nop -_0201EFDC: .word FUN_0201E8B8 + 1 +_0201EFDC: .word FUN_0201E8B8 thumb_func_start FUN_0201EFE0 FUN_0201EFE0: ; 0x0201EFE0 @@ -64985,7 +64985,7 @@ FUN_0201EFE0: ; 0x0201EFE0 add r0, r1, #0x0 bx r3 .balign 4 -_0201EFE8: .word FUN_0201E7D8 + 1 +_0201EFE8: .word FUN_0201E7D8 thumb_func_start FUN_0201EFEC FUN_0201EFEC: ; 0x0201EFEC @@ -65164,7 +65164,7 @@ FUN_0201F100: ; 0x0201F100 ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0201F112 - bl FUN_02020C2C + bl ErrorHandling _0201F112: mov r1, #0xd4 add r0, r4, #0x0 @@ -65262,7 +65262,7 @@ FUN_0201F1B4: ; 0x0201F1B4 bl FUN_0201F2E4 add r4, r0, #0x0 bne _0201F1C8 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0201F1C8: @@ -65323,7 +65323,7 @@ FUN_0201F23C: ; 0x0201F23C push {r4, lr} add r4, r0, #0x0 bne _0201F24A - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4, pc} _0201F24A: @@ -65358,7 +65358,7 @@ FUN_0201F284: ; 0x0201F284 cmp r0, #0x0 bne _0201F294 bne _0201F290 - bl FUN_02020C2C + bl ErrorHandling _0201F290: mov r0, #0x0 pop {r3-r5, pc} @@ -65392,7 +65392,7 @@ FUN_0201F2C0: ; 0x0201F2C0 push {r4, lr} add r4, r0, #0x0 bne _0201F2CA - bl FUN_02020C2C + bl ErrorHandling _0201F2CA: ldrb r0, [r4, #0x3] cmp r0, #0x0 @@ -65450,7 +65450,7 @@ FUN_0201F318: ; 0x0201F318 sub sp, #0x24 add r5, r0, #0x0 bne _0201F324 - bl FUN_02020C2C + bl ErrorHandling _0201F324: add r0, sp, #0x0 blx FUN_020C3F14 @@ -65631,7 +65631,7 @@ FUN_0201F454: ; 0x0201F454 str r0, [r4, #0x0] cmp r0, #0x0 bne _0201F496 - bl FUN_02020C2C + bl ErrorHandling b _0201F496 _0201F492: mov r0, #0x0 @@ -65648,7 +65648,7 @@ _0201F496: str r0, [r6, #0x0] cmp r0, #0x0 bne _0201F4B6 - bl FUN_02020C2C + bl ErrorHandling b _0201F4B6 _0201F4B2: mov r0, #0x0 @@ -65668,7 +65668,7 @@ _0201F4B6: str r0, [r7, #0x0] cmp r0, #0x0 bne _0201F4DE - bl FUN_02020C2C + bl ErrorHandling add sp, #0xc pop {r4-r7, pc} _0201F4DA: @@ -66005,14 +66005,14 @@ FUN_0201F744: ; 0x0201F744 push {r3-r5, lr} add r5, r0, #0x0 bne _0201F74E - bl FUN_02020C2C + bl ErrorHandling _0201F74E: add r0, r5, #0x0 add r0, #0xa8 ldrb r0, [r0, #0x0] cmp r0, #0x1 bne _0201F75C - bl FUN_02020C2C + bl ErrorHandling _0201F75C: add r0, r5, #0x0 add r0, #0xa8 @@ -66077,7 +66077,7 @@ FUN_0201F7C8: ; 0x0201F7C8 add r5, r1, #0x0 cmp r4, #0x0 bne _0201F7D6 - bl FUN_02020C2C + bl ErrorHandling _0201F7D6: ldmia r5!, {r0-r1} stmia r4!, {r0-r1} @@ -66090,7 +66090,7 @@ FUN_0201F7E0: ; 0x0201F7E0 push {r4, lr} add r4, r0, #0x0 bne _0201F7EA - bl FUN_02020C2C + bl ErrorHandling _0201F7EA: add r0, r4, #0x0 pop {r4, pc} @@ -66103,7 +66103,7 @@ FUN_0201F7F0: ; 0x0201F7F0 add r5, r1, #0x0 cmp r4, #0x0 bne _0201F7FE - bl FUN_02020C2C + bl ErrorHandling _0201F7FE: ldmia r5!, {r0-r1} add r4, #0xc @@ -66120,7 +66120,7 @@ FUN_0201F80C: ; 0x0201F80C add r4, r1, #0x0 cmp r5, #0x0 bne _0201F81A - bl FUN_02020C2C + bl ErrorHandling _0201F81A: strb r4, [r5, #0x18] pop {r3-r5, pc} @@ -66131,7 +66131,7 @@ FUN_0201F820: ; 0x0201F820 push {r4, lr} add r4, r0, #0x0 bne _0201F82A - bl FUN_02020C2C + bl ErrorHandling _0201F82A: ldrb r0, [r4, #0x18] pop {r4, pc} @@ -66144,7 +66144,7 @@ FUN_0201F830: ; 0x0201F830 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F83E - bl FUN_02020C2C + bl ErrorHandling _0201F83E: add r5, #0xaa strh r4, [r5, #0x0] @@ -66155,7 +66155,7 @@ FUN_0201F844: ; 0x0201F844 push {r4, lr} add r4, r0, #0x0 bne _0201F84E - bl FUN_02020C2C + bl ErrorHandling _0201F84E: add r4, #0xaa ldrh r0, [r4, #0x0] @@ -66168,7 +66168,7 @@ FUN_0201F854: ; 0x0201F854 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F862 - bl FUN_02020C2C + bl ErrorHandling _0201F862: add r0, r5, #0x0 add r1, r4, #0x0 @@ -66182,7 +66182,7 @@ FUN_0201F86C: ; 0x0201F86C add r4, r1, #0x0 cmp r5, #0x0 bne _0201F87A - bl FUN_02020C2C + bl ErrorHandling _0201F87A: add r5, #0xac str r4, [r5, #0x0] @@ -66193,7 +66193,7 @@ FUN_0201F880: ; 0x0201F880 push {r4, lr} add r4, r0, #0x0 bne _0201F88A - bl FUN_02020C2C + bl ErrorHandling _0201F88A: add r4, #0xac ldr r0, [r4, #0x0] @@ -66206,7 +66206,7 @@ FUN_0201F890: ; 0x0201F890 add r4, r1, #0x0 cmp r5, #0x0 bne _0201F89E - bl FUN_02020C2C + bl ErrorHandling _0201F89E: add r1, r5, #0x0 add r1, #0xaa @@ -66230,7 +66230,7 @@ FUN_0201F8C0: ; 0x0201F8C0 push {r4, lr} add r4, r0, #0x0 bne _0201F8CA - bl FUN_02020C2C + bl ErrorHandling _0201F8CA: add r1, r4, #0x0 add r1, #0xaa @@ -66248,7 +66248,7 @@ FUN_0201F8E0: ; 0x0201F8E0 push {r4, lr} add r4, r0, #0x0 bne _0201F8EA - bl FUN_02020C2C + bl ErrorHandling _0201F8EA: ldr r0, [r4, #0x7c] pop {r4, pc} @@ -66389,7 +66389,7 @@ _0201F9C4: ldr r0, _0201FA00 ; =0x0000FFFF cmp r1, r0 bls _0201F9EC - bl FUN_02020C2C + bl ErrorHandling _0201F9EC: ldr r0, [r5, #0x14] add r4, r4, #0x1 @@ -66492,7 +66492,7 @@ _0201FA7C: ldr r0, _0201FAB8 ; =0x00001FFF cmp r1, r0 bls _0201FAA4 - bl FUN_02020C2C + bl ErrorHandling _0201FAA4: ldrh r0, [r5, #0x1c] add r4, r4, #0x1 @@ -66668,7 +66668,7 @@ FUN_0201FBCC: ; 0x0201FBCC mov r1, #0x1 bx r3 nop -_0201FBD4: .word FUN_0201FC90 + 1 +_0201FBD4: .word FUN_0201FC90 thumb_func_start FUN_0201FBD8 FUN_0201FBD8: ; 0x0201FBD8 @@ -66808,12 +66808,12 @@ FUN_0201FCB0: ; 0x0201FCB0 push {r3-r5, lr} add r5, r0, #0x0 bne _0201FCBA - bl FUN_02020C2C + bl ErrorHandling _0201FCBA: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _0201FCC4 - bl FUN_02020C2C + bl ErrorHandling _0201FCC4: mov r1, #0x49 ldr r0, [r5, #0x8] @@ -66821,7 +66821,7 @@ _0201FCC4: bl FUN_02016998 add r4, r0, #0x0 bne _0201FCD6 - bl FUN_02020C2C + bl ErrorHandling _0201FCD6: add r0, r4, #0x0 bl FUN_0201FE44 @@ -66834,7 +66834,7 @@ _0201FCD6: str r0, [r4, #0x0] cmp r0, #0x0 bne _0201FCF4 - bl FUN_02020C2C + bl ErrorHandling _0201FCF4: ldr r0, [r5, #0x0] str r0, [r4, #0x4] @@ -66845,7 +66845,7 @@ _0201FCF4: str r0, [r4, #0x8] cmp r0, #0x0 bne _0201FD0C - bl FUN_02020C2C + bl ErrorHandling _0201FD0C: add r0, r4, #0x0 bl FUN_0202083C @@ -66970,7 +66970,7 @@ FUN_0201FDEC: ; 0x0201FDEC push {r3-r7, lr} add r5, r0, #0x0 bne _0201FDF6 - bl FUN_02020C2C + bl ErrorHandling _0201FDF6: mov r0, #0x12 lsl r0, r0, #0x4 @@ -67339,11 +67339,11 @@ FUN_020200A0: ; 0x020200A0 add r4, r1, #0x0 cmp r5, #0x0 bne _020200AE - bl FUN_02020C2C + bl ErrorHandling _020200AE: cmp r4, #0x2 blt _020200B6 - bl FUN_02020C2C + bl ErrorHandling _020200B6: add r5, #0x34 strb r4, [r5, #0x0] @@ -67356,11 +67356,11 @@ FUN_020200BC: ; 0x020200BC add r4, r1, #0x0 cmp r5, #0x0 bne _020200CA - bl FUN_02020C2C + bl ErrorHandling _020200CA: cmp r4, #0x2 blt _020200D2 - bl FUN_02020C2C + bl ErrorHandling _020200D2: add r5, #0x35 strb r4, [r5, #0x0] @@ -67373,7 +67373,7 @@ FUN_020200D8: ; 0x020200D8 add r4, r1, #0x0 cmp r5, #0x0 bne _020200E6 - bl FUN_02020C2C + bl ErrorHandling _020200E6: str r4, [r5, #0x38] pop {r3-r5, pc} @@ -67386,7 +67386,7 @@ FUN_020200EC: ; 0x020200EC add r4, r1, #0x0 cmp r5, #0x0 bne _020200FA - bl FUN_02020C2C + bl ErrorHandling _020200FA: add r5, #0x26 strb r4, [r5, #0x0] @@ -67399,7 +67399,7 @@ FUN_02020100: ; 0x02020100 add r4, r1, #0x0 cmp r5, #0x0 bne _0202010E - bl FUN_02020C2C + bl ErrorHandling _0202010E: add r0, r5, #0x0 add r0, #0x27 @@ -67601,7 +67601,7 @@ FUN_02020248: ; 0x02020248 add r4, r1, #0x0 cmp r5, #0x0 bne _02020256 - bl FUN_02020C2C + bl ErrorHandling _02020256: add r0, r5, #0x0 add r0, #0x29 @@ -67656,7 +67656,7 @@ FUN_020202A8: ; 0x020202A8 add r4, r1, #0x0 cmp r5, #0x0 bne _020202B6 - bl FUN_02020C2C + bl ErrorHandling _020202B6: add r0, r5, #0x0 add r0, #0x2a @@ -67702,7 +67702,7 @@ FUN_02020300: ; 0x02020300 push {r4, lr} add r4, r0, #0x0 bne _0202030A - bl FUN_02020C2C + bl ErrorHandling _0202030A: add r4, #0x2a ldrb r0, [r4, #0x0] @@ -67794,7 +67794,7 @@ FUN_02020388: ; 0x02020388 push {r4, lr} add r4, r0, #0x0 bne _02020392 - bl FUN_02020C2C + bl ErrorHandling _02020392: ldr r0, [r4, #0x50] pop {r4, pc} @@ -67807,7 +67807,7 @@ FUN_02020398: ; 0x02020398 add r5, r1, #0x0 cmp r4, #0x0 bne _020203A6 - bl FUN_02020C2C + bl ErrorHandling _020203A6: str r5, [r4, #0x30] cmp r5, #0x0 @@ -67842,11 +67842,11 @@ FUN_020203CC: ; 0x020203CC lsl r0, r0, #0x6 add r1, r4, #0x0 lsl r2, r2, #0xa - blx FUN_020CE1C8 + blx MIi_CpuClear16 mov r1, #0x1 add r0, r4, #0x0 lsl r1, r1, #0xa - blx FUN_020CC15C + blx DC_FlushRange mov r2, #0x1 add r0, r4, #0x0 mov r1, #0x0 @@ -67868,7 +67868,7 @@ FUN_02020404: ; 0x02020404 lsl r0, r0, #0x6 add r1, r4, #0x0 lsl r2, r2, #0xa - blx FUN_020CE1C8 + blx MIi_CpuClear16 mov r2, #0x1 add r0, r4, #0x0 mov r1, #0x0 @@ -68318,7 +68318,7 @@ FUN_02020778: ; 0x02020778 ldr r1, [r0, #0x38] bx r3 nop -_02020780: .word FUN_020201E4 + 1 +_02020780: .word FUN_020201E4 thumb_func_start FUN_02020784 FUN_02020784: ; 0x02020784 @@ -68859,14 +68859,14 @@ FUN_02020AFC: ; 0x02020AFC strh r0, [r1, #0x0] ldr r1, _02020B2C ; =FUN_02020B30 mov r0, #0x40 - blx FUN_020C9FEC + blx OS_SetIrqFunction mov r0, #0x40 - blx FUN_020C9E5C + blx OS_EnableIrqMask pop {r3, pc} .balign 4 _02020B24: .word 0x021C59B0 _02020B28: .word 0x0400010E -_02020B2C: .word FUN_02020B30 + 1 +_02020B2C: .word FUN_02020B30 thumb_func_start FUN_02020B30 FUN_02020B30: ; 0x02020B30 @@ -68895,7 +68895,7 @@ _02020B54: ldr r2, [r3, r1] orr r2, r0 str r2, [r3, r1] - ldr r3, _02020B78 ; =FUN_020C9FEC + ldr r3, _02020B78 ; =OS_SetIrqFunction ldr r1, _02020B7C ; =FUN_02020B30 bx r3 nop @@ -68903,14 +68903,14 @@ _02020B68: .word 0x021C59B0 _02020B6C: .word 0x0400010E _02020B70: .word 0x027E0000 _02020B74: .word 0x00003FF8 -_02020B78: .word FUN_020C9FEC -_02020B7C: .word FUN_02020B30 + 1 +_02020B78: .word OS_SetIrqFunction +_02020B7C: .word FUN_02020B30 thumb_func_start FUN_02020B80 FUN_02020B80: ; 0x02020B80 push {r4-r5, lr} sub sp, #0xc - blx FUN_020CD310 + blx OS_DisableInterrupts ldr r1, _02020BE4 ; =0x0400010C add r3, sp, #0x0 ldrh r1, [r1, #0x0] @@ -68942,7 +68942,7 @@ FUN_02020B80: ; 0x02020B80 str r2, [sp, #0x4] str r3, [sp, #0x8] _02020BC4: - blx FUN_020CD324 + blx OS_RestoreInterrupts ldr r2, [sp, #0x4] ldr r1, [sp, #0x8] lsr r0, r2, #0x10 @@ -68968,7 +68968,7 @@ FUN_02020BF4: ; 0x02020BF4 ldr r3, _02020BF8 ; =FUN_02020B80 bx r3 .balign 4 -_02020BF8: .word FUN_02020B80 + 1 +_02020BF8: .word FUN_02020B80 thumb_func_start FUN_02020BFC FUN_02020BFC: ; 0x02020BFC @@ -68979,7 +68979,7 @@ FUN_02020BFC: ; 0x02020BFC ldr r2, _02020C10 ; =0x000082EA lsl r0, r0, #0x6 mov r3, #0x0 - blx FUN_020EBBE8 + blx _ll_udiv pop {r3, pc} .balign 4 _02020C10: .word 0x000082EA @@ -68993,18 +68993,18 @@ FUN_02020C14: ; 0x02020C14 ldr r2, _02020C28 ; =0x01FF6210 lsl r0, r0, #0x6 mov r3, #0x0 - blx FUN_020EBBE8 + blx _ll_udiv pop {r3, pc} .balign 4 _02020C28: .word 0x01FF6210 - thumb_func_start FUN_02020C2C -FUN_02020C2C: ; 0x02020C2C + thumb_func_start ErrorHandling +ErrorHandling: ; 0x02020C2C push {r3, lr} bl FUN_02031810 cmp r0, #0x0 beq _02020C42 - blx FUN_020CD374 + blx OS_GetProcMode cmp r0, #0x12 beq _02020C42 bl FUN_0208A9B8 @@ -69021,7 +69021,7 @@ FUN_02020C44: ; 0x02020C44 bl FUN_02016998 add r6, r0, #0x0 bne _02020C5A - bl FUN_02020C2C + bl ErrorHandling _02020C5A: add r0, r4, #0x0 lsl r1, r7, #0x3 @@ -69029,7 +69029,7 @@ _02020C5A: str r0, [r6, #0x0] cmp r0, #0x0 bne _02020C6C - bl FUN_02020C2C + bl ErrorHandling _02020C6C: mov r4, #0x0 cmp r7, #0x0 @@ -69056,7 +69056,7 @@ FUN_02020C90: ; 0x02020C90 push {r4, lr} add r4, r0, #0x0 bne _02020C9A - bl FUN_02020C2C + bl ErrorHandling _02020C9A: add r0, r4, #0x0 bl FUN_02020D9C @@ -69074,7 +69074,7 @@ FUN_02020CB0: ; 0x02020CB0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020CBE - bl FUN_02020C2C + bl ErrorHandling _02020CBE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -69096,20 +69096,20 @@ FUN_02020CD4: ; 0x02020CD4 add r6, r2, #0x0 cmp r5, #0x0 bne _02020CE4 - bl FUN_02020C2C + bl ErrorHandling _02020CE4: add r0, r5, #0x0 bl FUN_02020E48 add r4, r0, #0x0 bne _02020CF2 - bl FUN_02020C2C + bl ErrorHandling _02020CF2: add r0, r5, #0x0 add r1, r6, #0x0 bl FUN_02020CB0 cmp r0, #0x1 beq _02020D02 - bl FUN_02020C2C + bl ErrorHandling _02020D02: str r7, [r4, #0x4] str r6, [r4, #0x0] @@ -69128,24 +69128,24 @@ FUN_02020D10: ; 0x02020D10 str r3, [sp, #0x0] cmp r5, #0x0 bne _02020D22 - bl FUN_02020C2C + bl ErrorHandling _02020D22: cmp r6, #0x0 bne _02020D2A - bl FUN_02020C2C + bl ErrorHandling _02020D2A: add r0, r5, #0x0 bl FUN_02020E48 add r4, r0, #0x0 bne _02020D38 - bl FUN_02020C2C + bl ErrorHandling _02020D38: add r0, r5, #0x0 add r1, r7, #0x0 bl FUN_02020CB0 cmp r0, #0x1 beq _02020D48 - bl FUN_02020C2C + bl ErrorHandling _02020D48: ldr r0, [sp, #0x0] add r1, r6, #0x0 @@ -69153,7 +69153,7 @@ _02020D48: str r0, [r4, #0x4] cmp r0, #0x0 bne _02020D5A - bl FUN_02020C2C + bl ErrorHandling _02020D5A: str r7, [r4, #0x0] ldr r0, [r5, #0x8] @@ -69170,11 +69170,11 @@ FUN_02020D68: ; 0x02020D68 add r4, r1, #0x0 cmp r5, #0x0 bne _02020D76 - bl FUN_02020C2C + bl ErrorHandling _02020D76: cmp r4, #0x0 bne _02020D7E - bl FUN_02020C2C + bl ErrorHandling _02020D7E: ldr r0, [r4, #0x4] cmp r0, #0x0 @@ -69197,12 +69197,12 @@ FUN_02020D9C: ; 0x02020D9C push {r3-r7, lr} add r5, r0, #0x0 bne _02020DA6 - bl FUN_02020C2C + bl ErrorHandling _02020DA6: ldr r0, [r5, #0x0] cmp r0, #0x0 bne _02020DB0 - bl FUN_02020C2C + bl ErrorHandling _02020DB0: ldr r0, [r5, #0x4] mov r6, #0x0 @@ -69234,7 +69234,7 @@ FUN_02020DD8: ; 0x02020DD8 add r4, r1, #0x0 cmp r5, #0x0 bne _02020DE6 - bl FUN_02020C2C + bl ErrorHandling _02020DE6: ldr r6, [r5, #0x4] mov r1, #0x0 @@ -69264,7 +69264,7 @@ FUN_02020E0C: ; 0x02020E0C push {r4, lr} add r4, r0, #0x0 bne _02020E16 - bl FUN_02020C2C + bl ErrorHandling _02020E16: ldr r0, [r4, #0x4] pop {r4, pc} @@ -69277,7 +69277,7 @@ FUN_02020E1C: ; 0x02020E1C add r4, r1, #0x0 cmp r5, #0x0 bne _02020E2A - bl FUN_02020C2C + bl ErrorHandling _02020E2A: ldr r0, [r5, #0x4] cmp r0, #0x0 @@ -69292,7 +69292,7 @@ FUN_02020E38: ; 0x02020E38 push {r4, lr} add r4, r0, #0x0 bne _02020E42 - bl FUN_02020C2C + bl ErrorHandling _02020E42: ldr r0, [r4, #0x0] pop {r4, pc} @@ -69303,7 +69303,7 @@ FUN_02020E48: ; 0x02020E48 push {r3-r5, lr} add r4, r0, #0x0 bne _02020E52 - bl FUN_02020C2C + bl ErrorHandling _02020E52: ldr r5, [r4, #0x4] mov r2, #0x0 @@ -69333,7 +69333,7 @@ FUN_02020E78: ; 0x02020E78 push {r4, lr} add r4, r0, #0x0 bne _02020E82 - bl FUN_02020C2C + bl ErrorHandling _02020E82: mov r0, #0x0 mvn r0, r0 @@ -69383,7 +69383,7 @@ FUN_02020ED4: ; 0x02020ED4 push {r4, lr} add r4, r0, #0x0 bne _02020EDE - bl FUN_02020C2C + bl ErrorHandling _02020EDE: add r0, r4, #0x0 bl FUN_02021010 @@ -69402,7 +69402,7 @@ FUN_02020EF8: ; 0x02020EF8 add r4, r1, #0x0 cmp r5, #0x0 bne _02020F06 - bl FUN_02020C2C + bl ErrorHandling _02020F06: ldr r0, [r5, #0x0] add r1, r4, #0x0 @@ -69418,7 +69418,7 @@ FUN_02020F10: ; 0x02020F10 str r2, [sp, #0x0] cmp r5, #0x0 bne _02020F22 - bl FUN_02020C2C + bl ErrorHandling _02020F22: add r0, r5, #0x0 bl FUN_020211DC @@ -69465,11 +69465,11 @@ FUN_02020F6C: ; 0x02020F6C add r4, r1, #0x0 cmp r5, #0x0 bne _02020F7A - bl FUN_02020C2C + bl ErrorHandling _02020F7A: cmp r4, #0x0 bne _02020F82 - bl FUN_02020C2C + bl ErrorHandling _02020F82: ldrh r0, [r4, #0x16] cmp r0, #0x1 @@ -69496,7 +69496,7 @@ _02020FA4: blx r1 cmp r0, #0x0 beq _02020FB8 - bl FUN_02020C2C + bl ErrorHandling _02020FB8: ldr r0, [r4, #0x8] cmp r0, #0x0 @@ -69506,7 +69506,7 @@ _02020FB8: blx r1 cmp r0, #0x0 beq _02020FCC - bl FUN_02020C2C + bl ErrorHandling _02020FCC: ldr r0, [r4, #0xc] cmp r0, #0x0 @@ -69516,7 +69516,7 @@ _02020FCC: blx r1 cmp r0, #0x0 beq _02020FE0 - bl FUN_02020C2C + bl ErrorHandling _02020FE0: add r0, r4, #0x0 bl FUN_0202120C @@ -69532,7 +69532,7 @@ FUN_02020FF0: ; 0x02020FF0 add r4, r1, #0x0 cmp r5, #0x0 bne _02020FFE - bl FUN_02020C2C + bl ErrorHandling _02020FFE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -69547,12 +69547,12 @@ FUN_02021010: ; 0x02021010 push {r4-r6, lr} add r5, r0, #0x0 bne _0202101A - bl FUN_02020C2C + bl ErrorHandling _0202101A: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02021024 - bl FUN_02020C2C + bl ErrorHandling _02021024: ldr r0, [r5, #0x0] mov r6, #0x0 @@ -69586,7 +69586,7 @@ FUN_02021050: ; 0x02021050 add r7, r1, #0x0 cmp r6, #0x0 bne _0202105E - bl FUN_02020C2C + bl ErrorHandling _0202105E: ldr r0, [r6, #0x0] mov r4, #0x0 @@ -69625,7 +69625,7 @@ FUN_02021098: ; 0x02021098 push {r4, lr} add r4, r0, #0x0 bne _020210A2 - bl FUN_02020C2C + bl ErrorHandling _020210A2: ldr r0, [r4, #0x0] bl FUN_02020E38 @@ -69637,7 +69637,7 @@ FUN_020210AC: ; 0x020210AC push {r4, lr} add r4, r0, #0x0 bne _020210B6 - bl FUN_02020C2C + bl ErrorHandling _020210B6: add r0, r4, #0x0 bl FUN_02021220 @@ -69649,17 +69649,17 @@ FUN_020210C0: ; 0x020210C0 push {r4, lr} add r4, r0, #0x0 bne _020210CA - bl FUN_02020C2C + bl ErrorHandling _020210CA: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _020210D4 - bl FUN_02020C2C + bl ErrorHandling _020210D4: ldr r0, [r4, #0xc] cmp r0, #0x0 bne _020210E0 - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} _020210E0: add r0, r4, #0x0 @@ -69676,7 +69676,7 @@ FUN_020210F0: ; 0x020210F0 add r4, r1, #0x0 cmp r5, #0x0 bne _020210FE - bl FUN_02020C2C + bl ErrorHandling _020210FE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -69689,18 +69689,18 @@ FUN_0202110C: ; 0x0202110C push {r4, lr} add r4, r0, #0x0 bne _02021116 - bl FUN_02020C2C + bl ErrorHandling _02021116: ldrh r0, [r4, #0x16] cmp r0, #0x0 bne _02021122 - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} _02021122: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _0202112E - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} _0202112E: add r0, r4, #0x0 @@ -69727,7 +69727,7 @@ FUN_02021158: ; 0x02021158 add r4, r1, #0x0 cmp r5, #0x0 bne _02021166 - bl FUN_02020C2C + bl ErrorHandling _02021166: add r0, r5, #0x0 add r1, r4, #0x0 @@ -69740,17 +69740,17 @@ FUN_02021174: ; 0x02021174 push {r4, lr} add r4, r0, #0x0 bne _0202117E - bl FUN_02020C2C + bl ErrorHandling _0202117E: ldrh r0, [r4, #0x14] cmp r0, #0x0 beq _02021188 - bl FUN_02020C2C + bl ErrorHandling _02021188: ldr r0, [r4, #0xc] cmp r0, #0x0 beq _02021194 - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} _02021194: add r0, r4, #0x0 @@ -69769,7 +69769,7 @@ FUN_020211AC: ; 0x020211AC push {r4, lr} add r4, r0, #0x0 bne _020211B6 - bl FUN_02020C2C + bl ErrorHandling _020211B6: ldr r0, [r4, #0x4] pop {r4, pc} @@ -69780,7 +69780,7 @@ FUN_020211BC: ; 0x020211BC push {r4, lr} add r4, r0, #0x0 bne _020211C6 - bl FUN_02020C2C + bl ErrorHandling _020211C6: ldr r0, [r4, #0x8] pop {r4, pc} @@ -69791,7 +69791,7 @@ FUN_020211CC: ; 0x020211CC push {r4, lr} add r4, r0, #0x0 bne _020211D6 - bl FUN_02020C2C + bl ErrorHandling _020211D6: ldr r0, [r4, #0xc] pop {r4, pc} @@ -69933,7 +69933,7 @@ FUN_020212B8: ; 0x020212B8 bl FUN_020212E4 ldr r1, [r4, #0x4] add r0, r4, #0x0 - blx FUN_020CC15C + blx DC_FlushRange add r0, r4, #0x0 mov r1, #0x1 blx FUN_020B7D28 @@ -69992,7 +69992,7 @@ FUN_02021334: ; 0x02021334 blx FUN_020BC0FC add r4, r0, #0x0 bne _02021344 - bl FUN_02020C2C + bl ErrorHandling _02021344: ldr r0, [r4, #0x14] add r0, r4, r0 @@ -70387,7 +70387,7 @@ _02021638: ldr r0, [r5, #0x60] cmp r0, #0x0 bne _02021642 - bl FUN_02020C2C + bl ErrorHandling _02021642: ldr r0, [sp, #0x18] ldr r1, [r5, #0x64] @@ -70414,7 +70414,7 @@ _02021660: cmp r0, #0x2 bls _02021678 _02021674: - bl FUN_02020C2C + bl ErrorHandling _02021678: add r0, r5, #0x0 add r0, #0x6a @@ -70443,8 +70443,8 @@ _020216A6: add sp, #0x4 pop {r3-r6, pc} nop -_020216AC: .word FUN_0202192C + 1 -_020216B0: .word FUN_02021924 + 1 +_020216AC: .word FUN_0202192C +_020216B0: .word FUN_02021924 _020216B4: .word 0x020EE668 thumb_func_start FUN_020216B8 @@ -70501,7 +70501,7 @@ FUN_020216EC: ; 0x020216EC bl FUN_02006814 pop {r3-r5, pc} .balign 4 -_02021718: .word FUN_02021774 + 1 +_02021718: .word FUN_02021774 thumb_func_start FUN_0202171C FUN_0202171C: ; 0x0202171C @@ -70509,7 +70509,7 @@ FUN_0202171C: ; 0x0202171C str r1, [r0, #0x4] bx lr nop -_02021724: .word FUN_0202181C + 1 +_02021724: .word FUN_0202181C thumb_func_start FUN_02021728 FUN_02021728: ; 0x02021728 @@ -70928,13 +70928,13 @@ FUN_02021A20: ; 0x02021A20 push {r4, lr} add r4, r0, #0x0 bne _02021A2A - bl FUN_02020C2C + bl ErrorHandling _02021A2A: ldr r1, [r4, #0x4] ldr r0, _02021A44 ; =0xB6F8D2EC cmp r1, r0 beq _02021A36 - bl FUN_02020C2C + bl ErrorHandling _02021A36: ldr r0, _02021A48 ; =0xB6F8D2ED str r0, [r4, #0x4] @@ -70950,13 +70950,13 @@ FUN_02021A4C: ; 0x02021A4C push {r4, lr} add r4, r0, #0x0 bne _02021A56 - bl FUN_02020C2C + bl ErrorHandling _02021A56: ldr r1, [r4, #0x4] ldr r0, _02021A6C ; =0xB6F8D2EC cmp r1, r0 beq _02021A62 - bl FUN_02020C2C + bl ErrorHandling _02021A62: mov r0, #0x0 strh r0, [r4, #0x2] @@ -70974,23 +70974,23 @@ FUN_02021A74: ; 0x02021A74 add r4, r1, #0x0 cmp r5, #0x0 bne _02021A82 - bl FUN_02020C2C + bl ErrorHandling _02021A82: ldr r1, [r5, #0x4] ldr r0, _02021AC8 ; =0xB6F8D2EC cmp r1, r0 beq _02021A8E - bl FUN_02020C2C + bl ErrorHandling _02021A8E: cmp r4, #0x0 bne _02021A96 - bl FUN_02020C2C + bl ErrorHandling _02021A96: ldr r1, [r4, #0x4] ldr r0, _02021AC8 ; =0xB6F8D2EC cmp r1, r0 beq _02021AA2 - bl FUN_02020C2C + bl ErrorHandling _02021AA2: ldrh r2, [r4, #0x2] ldrh r0, [r5, #0x0] @@ -71007,7 +71007,7 @@ _02021AA2: strh r0, [r5, #0x2] pop {r3-r5, pc} _02021AC0: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} nop _02021AC8: .word 0xB6F8D2EC @@ -71019,13 +71019,13 @@ FUN_02021ACC: ; 0x02021ACC add r4, r1, #0x0 cmp r5, #0x0 bne _02021ADA - bl FUN_02020C2C + bl ErrorHandling _02021ADA: ldr r1, [r5, #0x4] ldr r0, _02021B00 ; =0xB6F8D2EC cmp r1, r0 beq _02021AE6 - bl FUN_02020C2C + bl ErrorHandling _02021AE6: ldrh r0, [r5, #0x2] add r1, r4, #0x0 @@ -71053,13 +71053,13 @@ FUN_02021B04: ; 0x02021B04 str r0, [sp, #0x20] cmp r5, #0x0 bne _02021B1C - bl FUN_02020C2C + bl ErrorHandling _02021B1C: ldr r1, [r5, #0x4] ldr r0, _02021C1C ; =0xB6F8D2EC cmp r1, r0 beq _02021B28 - bl FUN_02020C2C + bl ErrorHandling _02021B28: cmp r6, #0x0 bge _02021B30 @@ -71196,7 +71196,7 @@ _02021C06: strh r1, [r0, #0x8] pop {r3-r7, pc} _02021C14: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x8 pop {r3-r7, pc} .balign 4 @@ -71303,23 +71303,23 @@ FUN_02021CE0: ; 0x02021CE0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021CEE - bl FUN_02020C2C + bl ErrorHandling _02021CEE: ldr r1, [r5, #0x4] ldr r0, _02021D34 ; =0xB6F8D2EC cmp r1, r0 beq _02021CFA - bl FUN_02020C2C + bl ErrorHandling _02021CFA: cmp r4, #0x0 bne _02021D02 - bl FUN_02020C2C + bl ErrorHandling _02021D02: ldr r1, [r4, #0x4] ldr r0, _02021D34 ; =0xB6F8D2EC cmp r1, r0 beq _02021D0E - bl FUN_02020C2C + bl ErrorHandling _02021D0E: ldrh r1, [r5, #0x8] ldrh r0, [r4, #0x8] @@ -71351,13 +71351,13 @@ FUN_02021D3C: ; 0x02021D3C push {r4, lr} add r4, r0, #0x0 bne _02021D46 - bl FUN_02020C2C + bl ErrorHandling _02021D46: ldr r1, [r4, #0x4] ldr r0, _02021D58 ; =0xB6F8D2EC cmp r1, r0 beq _02021D52 - bl FUN_02020C2C + bl ErrorHandling _02021D52: ldrh r0, [r4, #0x2] pop {r4, pc} @@ -71369,13 +71369,13 @@ FUN_02021D5C: ; 0x02021D5C push {r3-r5, lr} add r4, r0, #0x0 bne _02021D66 - bl FUN_02020C2C + bl ErrorHandling _02021D66: ldr r1, [r4, #0x4] ldr r0, _02021D98 ; =0xB6F8D2EC cmp r1, r0 beq _02021D72 - bl FUN_02020C2C + bl ErrorHandling _02021D72: ldrh r1, [r4, #0x2] mov r3, #0x0 @@ -71409,23 +71409,23 @@ FUN_02021D9C: ; 0x02021D9C add r6, r2, #0x0 cmp r5, #0x0 bne _02021DAC - bl FUN_02020C2C + bl ErrorHandling _02021DAC: ldr r1, [r5, #0x4] ldr r0, _02021E24 ; =0xB6F8D2EC cmp r1, r0 beq _02021DB8 - bl FUN_02020C2C + bl ErrorHandling _02021DB8: cmp r7, #0x0 bne _02021DC0 - bl FUN_02020C2C + bl ErrorHandling _02021DC0: ldr r1, [r7, #0x4] ldr r0, _02021E24 ; =0xB6F8D2EC cmp r1, r0 beq _02021DCC - bl FUN_02020C2C + bl ErrorHandling _02021DCC: mov r4, #0x0 cmp r6, #0x0 @@ -71483,13 +71483,13 @@ FUN_02021E28: ; 0x02021E28 add r4, r1, #0x0 cmp r5, #0x0 bne _02021E36 - bl FUN_02020C2C + bl ErrorHandling _02021E36: ldr r1, [r5, #0x4] ldr r0, _02021E84 ; =0xB6F8D2EC cmp r1, r0 beq _02021E42 - bl FUN_02020C2C + bl ErrorHandling _02021E42: mov r0, #0x0 strh r0, [r5, #0x2] @@ -71504,7 +71504,7 @@ _02021E50: sub r2, r2, #0x1 cmp r0, r2 blt _02021E60 - bl FUN_02020C2C + bl ErrorHandling b _02021E76 _02021E60: add r2, r0, #0x0 @@ -71537,13 +71537,13 @@ FUN_02021E8C: ; 0x02021E8C add r4, r2, #0x0 cmp r5, #0x0 bne _02021E9C - bl FUN_02020C2C + bl ErrorHandling _02021E9C: ldr r1, [r5, #0x4] ldr r0, _02021EE8 ; =0xB6F8D2EC cmp r1, r0 beq _02021EA8 - bl FUN_02020C2C + bl ErrorHandling _02021EA8: ldrh r0, [r5, #0x0] cmp r4, r0 @@ -71576,7 +71576,7 @@ _02021ED4: strh r1, [r0, #0x6] pop {r3-r7, pc} _02021EE2: - bl FUN_02020C2C + bl ErrorHandling _02021EE6: pop {r3-r7, pc} .balign 4 @@ -71591,13 +71591,13 @@ FUN_02021EF0: ; 0x02021EF0 add r4, r2, #0x0 cmp r5, #0x0 bne _02021F00 - bl FUN_02020C2C + bl ErrorHandling _02021F00: ldr r1, [r5, #0x4] ldr r0, _02021F28 ; =0xB6F8D2EC cmp r1, r0 beq _02021F0C - bl FUN_02020C2C + bl ErrorHandling _02021F0C: ldrh r0, [r5, #0x2] add r2, r0, #0x1 @@ -71610,7 +71610,7 @@ _02021F0C: blx FUN_020DF438 pop {r4-r6, pc} _02021F22: - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} .balign 4 _02021F28: .word 0xB6F8D2EC @@ -71620,13 +71620,13 @@ FUN_02021F2C: ; 0x02021F2C push {r4, lr} add r4, r0, #0x0 bne _02021F36 - bl FUN_02020C2C + bl ErrorHandling _02021F36: ldr r1, [r4, #0x4] ldr r0, _02021F48 ; =0xB6F8D2EC cmp r1, r0 beq _02021F42 - bl FUN_02020C2C + bl ErrorHandling _02021F42: add r4, #0x8 add r0, r4, #0x0 @@ -71641,23 +71641,23 @@ FUN_02021F4C: ; 0x02021F4C add r4, r1, #0x0 cmp r5, #0x0 bne _02021F5A - bl FUN_02020C2C + bl ErrorHandling _02021F5A: ldr r1, [r5, #0x4] ldr r0, _02021FAC ; =0xB6F8D2EC cmp r1, r0 beq _02021F66 - bl FUN_02020C2C + bl ErrorHandling _02021F66: cmp r4, #0x0 bne _02021F6E - bl FUN_02020C2C + bl ErrorHandling _02021F6E: ldr r1, [r4, #0x4] ldr r0, _02021FAC ; =0xB6F8D2EC cmp r1, r0 beq _02021F7A - bl FUN_02020C2C + bl ErrorHandling _02021F7A: ldrh r2, [r4, #0x2] ldrh r0, [r5, #0x2] @@ -71681,7 +71681,7 @@ _02021F7A: strh r0, [r5, #0x2] pop {r3-r5, pc} _02021FA6: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} .balign 4 _02021FAC: .word 0xB6F8D2EC @@ -71693,13 +71693,13 @@ FUN_02021FB0: ; 0x02021FB0 add r4, r1, #0x0 cmp r5, #0x0 bne _02021FBE - bl FUN_02020C2C + bl ErrorHandling _02021FBE: ldr r1, [r5, #0x4] ldr r0, _02021FF0 ; =0xB6F8D2EC cmp r1, r0 beq _02021FCA - bl FUN_02020C2C + bl ErrorHandling _02021FCA: ldrh r2, [r5, #0x2] ldrh r0, [r5, #0x0] @@ -71717,7 +71717,7 @@ _02021FCA: strh r1, [r0, #0x8] pop {r3-r5, pc} _02021FE8: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} nop _02021FF0: .word 0xB6F8D2EC @@ -71728,13 +71728,13 @@ FUN_02021FF8: ; 0x02021FF8 push {r4, lr} add r4, r0, #0x0 bne _02022002 - bl FUN_02020C2C + bl ErrorHandling _02022002: ldr r1, [r4, #0x4] ldr r0, _02022028 ; =0xB6F8D2EC cmp r1, r0 beq _0202200E - bl FUN_02020C2C + bl ErrorHandling _0202200E: ldrh r0, [r4, #0x2] cmp r0, #0x0 @@ -71845,7 +71845,7 @@ FUN_020220C4: ; 0x020220C4 str r3, [sp, #0x0] cmp r7, #0x0 bne _020220D6 - bl FUN_02020C2C + bl ErrorHandling _020220D6: ldr r0, [sp, #0x18] mov r1, #0x14 @@ -71898,7 +71898,7 @@ FUN_0202212C: ; 0x0202212C push {r4, lr} add r4, r0, #0x0 bne _02022136 - bl FUN_02020C2C + bl ErrorHandling _02022136: ldr r0, [r4, #0x10] bl FUN_02016A18 @@ -72345,34 +72345,34 @@ _0202244C: .word 0x04000580 thumb_func_start FUN_02022450 FUN_02022450: ; 0x02022450 push {r3, lr} - blx FUN_020D1CC4 + blx FS_IsAvailable cmp r0, #0x0 bne _02022460 - blx FUN_020CD850 + blx OS_Terminate pop {r3, pc} _02022460: ldr r0, _020224BC ; =0x027FF00C ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202248A - blx FUN_020D7228 + blx CARD_Init mov r2, #0x16 ldr r0, _020224C0 ; =0x027FFE00 ldr r1, _020224C4 ; =0x027FF000 lsl r2, r2, #0x4 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r2, #0x16 ldr r0, _020224C0 ; =0x027FFE00 ldr r1, _020224C8 ; =0x027FFA80 lsl r2, r2, #0x4 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r1, _020224CC ; =0x4A414441 ldr r0, _020224BC ; =0x027FF00C str r1, [r0, #0x0] _0202248A: ldr r0, _020224D0 ; =0x020EE6D4 mov r1, #0x3 - blx FUN_020D1148 + blx FS_FindArchive ldr r1, _020224C4 ; =0x027FF000 ldr r2, [r1, #0x48] str r2, [r0, #0x2c] @@ -72391,7 +72391,7 @@ _0202248A: cmp r1, r0 beq _020224B8 _020224B4: - blx FUN_020CD850 + blx OS_Terminate _020224B8: pop {r3, pc} nop @@ -72409,17 +72409,17 @@ FUN_020224D8: ; 0x020224D8 sub sp, #0x48 add r4, r0, #0x0 add r0, sp, #0x0 - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x0 add r1, r4, #0x0 - blx FUN_020D1944 + blx FS_OpenFile cmp r0, #0x0 beq _020224FC ldr r1, [sp, #0x24] ldr r0, _02022500 ; =0x027FFC2C str r1, [r0, #0x0] mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem _020224FC: add sp, #0x48 pop {r4, pc} @@ -72432,7 +72432,7 @@ FUN_02022504: ; 0x02022504 mov r1, #0x1b bx r3 nop -_0202250C: .word FUN_02022610 + 1 +_0202250C: .word FUN_02022610 thumb_func_start FUN_02022510 FUN_02022510: ; 0x02022510 @@ -72440,7 +72440,7 @@ FUN_02022510: ; 0x02022510 mov r1, #0x23 bx r3 nop -_02022518: .word FUN_02022610 + 1 +_02022518: .word FUN_02022610 thumb_func_start FUN_0202251C FUN_0202251C: ; 0x0202251C @@ -72448,7 +72448,7 @@ FUN_0202251C: ; 0x0202251C mov r1, #0x1f bx r3 nop -_02022524: .word FUN_02022610 + 1 +_02022524: .word FUN_02022610 thumb_func_start FUN_02022528 FUN_02022528: ; 0x02022528 @@ -72456,7 +72456,7 @@ FUN_02022528: ; 0x02022528 mov r1, #0x20 bx r3 nop -_02022530: .word FUN_02022610 + 1 +_02022530: .word FUN_02022610 thumb_func_start FUN_02022534 FUN_02022534: ; 0x02022534 @@ -72473,7 +72473,7 @@ FUN_02022540: ; 0x02022540 mov r1, #0x0 bx r3 .balign 4 -_02022548: .word FUN_020232BC + 1 +_02022548: .word FUN_020232BC thumb_func_start FUN_0202254C FUN_0202254C: ; 0x0202254C @@ -72485,7 +72485,7 @@ FUN_0202254C: ; 0x0202254C ldr r2, _020225E0 ; =0x000204A8 mov r0, #0x0 add r1, r4, #0x0 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r0, _020225E4 ; =0x021C59C8 str r4, [r0, #0x0] bl FUN_02023570 @@ -72511,7 +72511,7 @@ FUN_0202254C: ; 0x0202254C mov r0, #0x0 add r1, r4, r1 mov r2, #0x8 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_02022AD8 str r0, [r4, #0x10] @@ -72560,7 +72560,7 @@ FUN_020225F8: ; 0x020225F8 ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02022606 - bl FUN_02020C2C + bl ErrorHandling _02022606: ldr r0, _0202260C ; =0x021C59C8 ldr r0, [r0, #0x0] @@ -72575,7 +72575,7 @@ FUN_02022610: ; 0x02022610 add r5, r0, #0x0 cmp r4, #0x24 blt _0202261E - bl FUN_02020C2C + bl ErrorHandling _0202261E: mov r0, #0x85 lsl r0, r0, #0x2 @@ -72594,7 +72594,7 @@ FUN_02022634: ; 0x02022634 ldr r3, _02022638 ; =FUN_02022610 bx r3 .balign 4 -_02022638: .word FUN_02022610 + 1 +_02022638: .word FUN_02022610 thumb_func_start FUN_0202263C FUN_0202263C: ; 0x0202263C @@ -72650,7 +72650,7 @@ _0202267A: mvn r0, r0 add r1, r6, #0x0 lsl r2, r2, #0xc - blx FUN_020CE240 + blx MIi_CpuClearFast mov r4, #0x0 mov r7, #0x1 add r5, r4, #0x0 @@ -72782,17 +72782,17 @@ FUN_020227A0: ; 0x020227A0 add r5, r0, #0x0 cmp r4, #0x2 blt _020227AE - bl FUN_02020C2C + bl ErrorHandling _020227AE: ldr r0, [r5, #0x8] cmp r0, #0x0 beq _020227B8 - bl FUN_02020C2C + bl ErrorHandling _020227B8: ldr r0, [r5, #0x4] cmp r0, #0x1 beq _020227C2 - bl FUN_02020C2C + bl ErrorHandling _020227C2: add r0, r5, #0x0 add r1, r4, #0x0 @@ -72822,7 +72822,7 @@ FUN_020227DC: ; 0x020227DC bx r3 nop _020227F4: .word 0x00020224 -_020227F8: .word FUN_020231F4 + 1 +_020227F8: .word FUN_020231F4 thumb_func_start FUN_020227FC FUN_020227FC: ; 0x020227FC @@ -72886,7 +72886,7 @@ FUN_02022840: ; 0x02022840 bx r3 nop _0202284C: .word 0x0002047C -_02022850: .word FUN_02022DFC + 1 +_02022850: .word FUN_02022DFC thumb_func_start FUN_02022854 FUN_02022854: ; 0x02022854 @@ -72918,7 +72918,7 @@ FUN_0202287C: ; 0x0202287C bx r3 .balign 4 _02022884: .word 0x0002047C -_02022888: .word FUN_02022FF0 + 1 +_02022888: .word FUN_02022FF0 thumb_func_start FUN_0202288C FUN_0202288C: ; 0x0202288C @@ -72966,7 +72966,7 @@ FUN_020228B8: ; 0x020228B8 ldr r0, [r5, #0x8] cmp r0, #0x0 bne _020228D2 - bl FUN_02020C2C + bl ErrorHandling _020228D2: ldr r0, [r5, #0x8] add r0, r4, r0 @@ -73148,7 +73148,7 @@ FUN_020229F0: ; 0x020229F0 ble _02022A30 cmp r0, #0x0 bgt _02022A26 - bl FUN_02020C2C + bl ErrorHandling _02022A26: mov r0, #0x0 str r0, [r5, #0x0] @@ -73159,7 +73159,7 @@ _02022A30: bge _02022A44 cmp r0, #0x0 blt _02022A3A - bl FUN_02020C2C + bl ErrorHandling _02022A3A: mov r0, #0x1 str r0, [r5, #0x0] @@ -73473,7 +73473,7 @@ _02022C7E: ldr r0, [r0, r1] cmp r2, r0 beq _02022CA6 - bl FUN_02020C2C + bl ErrorHandling _02022CA6: ldr r0, [sp, #0xc] add r1, sp, #0x2c @@ -73499,7 +73499,7 @@ _02022CBC: ldr r0, [r0, r2] cmp r3, r0 beq _02022CDA - bl FUN_02020C2C + bl ErrorHandling _02022CDA: ldr r0, [sp, #0xc] add r1, sp, #0x2c @@ -73959,7 +73959,7 @@ _02023006: ldr r0, [r4, #0x10] lsl r0, r0, #0x10 lsr r0, r0, #0x10 - blx FUN_020CA0F8 + blx OS_ReleaseLockID _02023034: mov r0, #0x1 bl FUN_02016454 @@ -74006,7 +74006,7 @@ FUN_02023074: ; 0x02023074 add r0, sp, #0x0 mov r1, #0xff mov r2, #0x14 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020228A4 @@ -74030,7 +74030,7 @@ FUN_020230AC: ; 0x020230AC ldr r0, [r0, #0x0] cmp r5, r0 blt _020230BE - bl FUN_02020C2C + bl ErrorHandling _020230BE: lsl r0, r5, #0x4 add r0, r4, r0 @@ -74062,7 +74062,7 @@ FUN_020230E4: ; 0x020230E4 str r0, [sp, #0x0] cmp r0, #0x24 beq _020230FC - bl FUN_02020C2C + bl ErrorHandling _020230FC: ldr r0, [sp, #0x0] mov r6, #0x0 @@ -74074,7 +74074,7 @@ _02023108: ldr r0, [r4, #0x0] cmp r6, r0 beq _02023112 - bl FUN_02020C2C + bl ErrorHandling _02023112: ldr r0, [r4, #0x0] str r0, [r5, #0x0] @@ -74109,7 +74109,7 @@ _02023148: lsl r0, r0, #0x10 cmp r7, r0 ble _02023154 - bl FUN_02020C2C + bl ErrorHandling _02023154: add sp, #0x8 pop {r3-r7, pc} @@ -74183,12 +74183,12 @@ _0202319A: ldr r0, [sp, #0x4] cmp r0, r1 beq _020231DC - bl FUN_02020C2C + bl ErrorHandling _020231DC: ldr r0, [sp, #0x4] cmp r0, #0x20 ble _020231E6 - bl FUN_02020C2C + bl ErrorHandling _020231E6: add sp, #0x8 pop {r3-r7, pc} @@ -74207,7 +74207,7 @@ FUN_020231F4: ; 0x020231F4 add r1, r6, #0x0 lsl r2, r2, #0x10 ldr r4, _02023240 ; =0x020EE700 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r0, _02023244 ; =0x020EE6DC mov r7, #0x0 ldr r0, [r0, #0x0] @@ -74221,7 +74221,7 @@ _02023216: ldr r1, [sp, #0x4] mov r0, #0x0 add r1, r6, r1 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r0, [sp, #0x4] ldr r1, [r4, #0xc] add r0, r6, r0 @@ -74319,7 +74319,7 @@ FUN_020232BC: ; 0x020232BC ldr r0, [r0, #0x0] cmp r5, r0 blt _020232D8 - bl FUN_02020C2C + bl ErrorHandling _020232D8: ldr r1, _02023400 ; =0x020EE6E0 lsl r0, r5, #0x4 @@ -74327,7 +74327,7 @@ _020232D8: ldr r0, [r1, r0] cmp r0, r5 beq _020232E8 - bl FUN_02020C2C + bl ErrorHandling _020232E8: ldr r0, [r4, #0x8] blx r0 @@ -74360,7 +74360,7 @@ _020232E8: bl FUN_02023274 cmp r0, #0x1 beq _02023330 - bl FUN_02020C2C + bl ErrorHandling _02023330: ldr r0, [r4, #0x8] blx r0 @@ -74387,7 +74387,7 @@ _02023330: bl FUN_02023274 cmp r0, #0x1 beq _020233DE - bl FUN_02020C2C + bl ErrorHandling b _020233DE _0202336E: blx r0 @@ -74412,7 +74412,7 @@ _0202336E: bl FUN_02023274 cmp r0, #0x1 beq _020233A4 - bl FUN_02020C2C + bl ErrorHandling _020233A4: ldr r0, [r4, #0x8] blx r0 @@ -74438,7 +74438,7 @@ _020233A4: bl FUN_02023274 cmp r0, #0x1 beq _020233DE - bl FUN_02020C2C + bl ErrorHandling _020233DE: ldr r0, [sp, #0x0] cmp r0, #0x1 @@ -74471,7 +74471,7 @@ FUN_02023408: ; 0x02023408 str r3, [sp, #0x0] cmp r7, r0 blt _02023420 - bl FUN_02020C2C + bl ErrorHandling _02023420: ldr r1, _02023568 ; =0x020EE6E0 lsl r0, r7, #0x4 @@ -74479,7 +74479,7 @@ _02023420: ldr r0, [r1, r0] cmp r0, r7 beq _02023430 - bl FUN_02020C2C + bl ErrorHandling _02023430: ldr r0, [r4, #0x8] blx r0 @@ -74634,13 +74634,13 @@ _0202356C: .word 0x000204A0 thumb_func_start FUN_02023570 FUN_02023570: ; 0x02023570 push {r3-r5, lr} - blx FUN_020CA0A0 + blx OS_GetLockID add r4, r0, #0x0 mov r0, #0x2 mvn r0, r0 cmp r4, r0 bne _02023584 - bl FUN_02020C2C + bl ErrorHandling _02023584: lsl r0, r4, #0x10 lsr r0, r0, #0x10 @@ -74666,7 +74666,7 @@ _020235AA: blx FUN_020D66A0 lsl r0, r4, #0x10 lsr r0, r0, #0x10 - blx FUN_020CA0F8 + blx OS_ReleaseLockID cmp r5, #0x0 beq _020235C2 mov r0, #0x1 @@ -74701,13 +74701,13 @@ FUN_020235EC: ; 0x020235EC add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 - blx FUN_020CA0A0 + blx OS_GetLockID add r4, r0, #0x0 mov r0, #0x2 mvn r0, r0 cmp r4, r0 bne _02023608 - bl FUN_02020C2C + bl ErrorHandling _02023608: lsl r0, r4, #0x10 lsr r0, r0, #0x10 @@ -74731,7 +74731,7 @@ _02023608: blx FUN_020D66A0 lsl r0, r4, #0x10 lsr r0, r0, #0x10 - blx FUN_020CA0F8 + blx OS_ReleaseLockID cmp r5, #0x0 bne _02023652 ldr r0, _02023658 ; =0x021C59C8 @@ -74762,13 +74762,13 @@ FUN_02023668: ; 0x02023668 add r5, r0, #0x0 add r6, r1, #0x0 add r7, r2, #0x0 - blx FUN_020CA0A0 + blx OS_GetLockID add r4, r0, #0x0 mov r0, #0x2 mvn r0, r0 cmp r4, r0 bne _02023684 - bl FUN_02020C2C + bl ErrorHandling _02023684: lsl r0, r4, #0x10 lsr r0, r0, #0x10 @@ -74813,7 +74813,7 @@ _020236B2: pop {r3-r7, pc} .balign 4 _020236DC: .word 0x021C59C8 -_020236E0: .word FUN_0202365C + 1 +_020236E0: .word FUN_0202365C thumb_func_start FUN_020236E4 FUN_020236E4: ; 0x020236E4 @@ -74829,7 +74829,7 @@ FUN_020236E4: ; 0x020236E4 blx FUN_020D66A0 lsl r0, r5, #0x10 lsr r0, r0, #0x10 - blx FUN_020CA0F8 + blx OS_ReleaseLockID blx FUN_020D6700 cmp r0, #0x0 beq _02023714 @@ -74843,7 +74843,7 @@ _02023714: str r0, [r4, #0x0] b _02023734 _0202371A: - bl FUN_02020C2C + bl ErrorHandling _0202371E: mov r1, #0x0 add r0, r5, #0x0 @@ -74874,7 +74874,7 @@ FUN_02023740: ; 0x02023740 blx FUN_020D66A0 lsl r0, r5, #0x10 lsr r0, r0, #0x10 - blx FUN_020CA0F8 + blx OS_ReleaseLockID ldr r0, _02023768 ; =0x021C59C8 ldr r0, [r0, #0x0] bl FUN_02016A18 @@ -74897,7 +74897,7 @@ FUN_02023770: ; 0x02023770 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x5c - blx FUN_020CE240 + blx MIi_CpuClearFast add r4, #0x10 add r0, r4, #0x0 bl FUN_02023840 @@ -74909,7 +74909,7 @@ FUN_02023788: ; 0x02023788 mov r1, #0x0 bx r3 nop -_02023790: .word FUN_02022610 + 1 +_02023790: .word FUN_02022610 thumb_func_start FUN_02023794 FUN_02023794: ; 0x02023794 @@ -74924,14 +74924,14 @@ FUN_020237A0: ; 0x020237A0 push {r4, lr} sub sp, #0x50 add r4, r0, #0x0 - blx FUN_020CD510 + blx OS_GetOwnerRtcOffset str r0, [r4, #0x0] add r0, r4, #0x0 add r0, #0x8 str r1, [r4, #0x4] - blx FUN_020CD5A0 + blx OS_GetMacAddress add r0, sp, #0x0 - blx FUN_020CD524 + blx OS_GetOwnerInfo add r0, sp, #0x0 ldrb r1, [r0, #0x2] strb r1, [r4, #0xe] @@ -74947,7 +74947,7 @@ FUN_020237CC: ; 0x020237CC sub sp, #0x8 add r4, r0, #0x0 add r0, sp, #0x0 - blx FUN_020CD5A0 + blx OS_GetMacAddress mov r2, #0x0 add r3, sp, #0x0 _020237DC: @@ -74973,7 +74973,7 @@ _020237EC: FUN_020237FC: ; 0x020237FC push {r4, lr} add r4, r0, #0x0 - blx FUN_020CD510 + blx OS_GetOwnerRtcOffset ldr r3, [r4, #0x0] ldr r2, [r4, #0x4] eor r0, r3 @@ -75113,7 +75113,7 @@ FUN_020238C8: ; 0x020238C8 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x2c - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_02024F50 add r0, r4, #0x4 @@ -75134,13 +75134,13 @@ FUN_020238F4: ; 0x020238F4 add r0, r0, #0x4 pop {r3, pc} - thumb_func_start FUN_02023900 -FUN_02023900: ; 0x02023900 + thumb_func_start LoadPlayerDataAddress +LoadPlayerDataAddress: ; 0x02023900 ldr r3, _02023908 ; =FUN_02022610 mov r1, #0x1 bx r3 nop -_02023908: .word FUN_02022610 + 1 +_02023908: .word FUN_02022610 thumb_func_start FUN_0202390C FUN_0202390C: ; 0x0202390C @@ -75176,11 +75176,11 @@ FUN_02023928: ; 0x02023928 thumb_func_start FUN_0202393C FUN_0202393C: ; 0x0202393C - ldr r3, _02023944 ; =FUN_020CE3E0 + ldr r3, _02023944 ; =MI_CpuCopy8 mov r2, #0x20 bx r3 nop -_02023944: .word FUN_020CE3E0 +_02023944: .word MI_CpuCopy8 thumb_func_start FUN_02023948 FUN_02023948: ; 0x02023948 @@ -75203,7 +75203,7 @@ FUN_0202395C: ; 0x0202395C bl FUN_02002288 cmp r0, #0x8 blt _02023970 - bl FUN_02020C2C + bl ErrorHandling _02023970: add r0, r5, #0x0 add r1, r4, #0x0 @@ -75220,7 +75220,7 @@ FUN_0202397C: ; 0x0202397C mov r2, #0x8 bx r3 .balign 4 -_02023988: .word FUN_02021EF0 + 1 +_02023988: .word FUN_02021EF0 thumb_func_start FUN_0202398C FUN_0202398C: ; 0x0202398C @@ -75235,7 +75235,7 @@ FUN_02023990: ; 0x02023990 add r1, r2, #0x0 bx r3 nop -_0202399C: .word FUN_02021E28 + 1 +_0202399C: .word FUN_02021E28 thumb_func_start FUN_020239A0 FUN_020239A0: ; 0x020239A0 @@ -75473,11 +75473,11 @@ FUN_02023AC8: ; 0x02023AC8 thumb_func_start FUN_02023ACC FUN_02023ACC: ; 0x02023ACC - ldr r3, _02023AD4 ; =FUN_020CE3E0 + ldr r3, _02023AD4 ; =MI_CpuCopy8 mov r2, #0x20 bx r3 nop -_02023AD4: .word FUN_020CE3E0 +_02023AD4: .word MI_CpuCopy8 thumb_func_start FUN_02023AD8 FUN_02023AD8: ; 0x02023AD8 @@ -75497,7 +75497,7 @@ FUN_02023AE4: ; 0x02023AE4 mov r2, #0xc bx r3 .balign 4 -_02023AF0: .word FUN_02021E8C + 1 +_02023AF0: .word FUN_02021E8C thumb_func_start FUN_02023AF4 FUN_02023AF4: ; 0x02023AF4 @@ -75614,7 +75614,7 @@ FUN_02023BA4: ; 0x02023BA4 add r4, r0, #0x0 cmp r5, #0x1 blt _02023BB2 - bl FUN_02020C2C + bl ErrorHandling _02023BB2: add r0, r4, #0x0 mov r1, #0xd @@ -75882,7 +75882,7 @@ FUN_02023D58: ; 0x02023D58 mov r1, #0x8 bx r3 nop -_02023D60: .word FUN_02022610 + 1 +_02023D60: .word FUN_02022610 thumb_func_start FUN_02023D64 FUN_02023D64: ; 0x02023D64 @@ -75904,12 +75904,12 @@ FUN_02023D6C: ; 0x02023D6C thumb_func_start FUN_02023D80 FUN_02023D80: ; 0x02023D80 - ldr r3, _02023D88 ; =FUN_020CE3E0 + ldr r3, _02023D88 ; =MI_CpuCopy8 mov r2, #0x4f lsl r2, r2, #0x2 bx r3 .balign 4 -_02023D88: .word FUN_020CE3E0 +_02023D88: .word MI_CpuCopy8 thumb_func_start FUN_02023D8C FUN_02023D8C: ; 0x02023D8C @@ -75922,7 +75922,7 @@ FUN_02023D8C: ; 0x02023D8C add r0, r0, #0x1 cmp r4, r0 beq _02023DA2 - bl FUN_02020C2C + bl ErrorHandling _02023DA2: lsl r1, r4, #0x10 add r0, r5, #0x0 @@ -75979,7 +75979,7 @@ FUN_02023DEC: ; 0x02023DEC add r0, r0, #0x1 cmp r6, r0 beq _02023E04 - bl FUN_02020C2C + bl ErrorHandling _02023E04: lsl r1, r6, #0x10 add r0, r7, #0x0 @@ -76053,7 +76053,7 @@ FUN_02023E70: ; 0x02023E70 add r0, r0, #0x1 cmp r5, r0 beq _02023E88 - bl FUN_02020C2C + bl ErrorHandling _02023E88: lsl r2, r7, #0x18 add r0, r6, #0x0 @@ -76084,7 +76084,7 @@ _02023EA4: lsr r0, r0, #0x18 cmp r0, #0x2 blo _02023EC6 - bl FUN_02020C2C + bl ErrorHandling _02023EC6: sub r0, r6, #0x1 lsl r0, r0, #0x10 @@ -76113,7 +76113,7 @@ _02023EC6: lsr r5, r0, #0x10 cmp r6, #0x2 blo _02023F00 - bl FUN_02020C2C + bl ErrorHandling _02023F00: sub r0, r5, #0x1 lsl r0, r0, #0x10 @@ -76151,7 +76151,7 @@ FUN_02023F2C: ; 0x02023F2C add r0, r0, #0x1 cmp r4, r0 beq _02023F44 - bl FUN_02020C2C + bl ErrorHandling _02023F44: lsl r1, r4, #0x10 add r0, r5, #0x0 @@ -76205,7 +76205,7 @@ FUN_02023F88: ; 0x02023F88 add r0, r0, #0x1 cmp r5, r0 beq _02023FA2 - bl FUN_02020C2C + bl ErrorHandling _02023FA2: lsl r1, r5, #0x10 add r0, r6, #0x0 @@ -76262,7 +76262,7 @@ FUN_02023FEC: ; 0x02023FEC add r0, r0, #0x1 cmp r5, r0 beq _02024006 - bl FUN_02020C2C + bl ErrorHandling _02024006: lsl r2, r7, #0x18 add r0, r6, #0x0 @@ -76291,7 +76291,7 @@ _02024024: lsr r0, r0, #0x18 cmp r0, #0x4 blo _02024040 - bl FUN_02020C2C + bl ErrorHandling _02024040: lsl r0, r5, #0x10 lsr r2, r0, #0x10 @@ -76323,11 +76323,11 @@ FUN_02024068: ; 0x02024068 add r4, r1, #0x0 cmp r6, #0x4 blo _02024078 - bl FUN_02020C2C + bl ErrorHandling _02024078: cmp r4, #0xf bls _02024080 - bl FUN_02020C2C + bl ErrorHandling _02024080: cmp r6, #0x2 bhs _0202409E @@ -76795,7 +76795,7 @@ FUN_020243C8: ; 0x020243C8 ldr r0, _020243FC ; =0xBEEFCAFE cmp r1, r0 beq _020243D8 - bl FUN_02020C2C + bl ErrorHandling _020243D8: ldr r7, _02024400 ; =0x000001ED mov r5, #0x0 @@ -76827,7 +76827,7 @@ FUN_02024404: ; 0x02024404 ldr r0, _02024438 ; =0xBEEFCAFE cmp r1, r0 beq _02024414 - bl FUN_02020C2C + bl ErrorHandling _02024414: ldr r7, _0202443C ; =0x000001ED mov r5, #0x0 @@ -76874,7 +76874,7 @@ FUN_0202445C: ; 0x0202445C ldr r0, _0202449C ; =0xBEEFCAFE cmp r1, r0 beq _0202446C - bl FUN_02020C2C + bl ErrorHandling _0202446C: ldr r7, _020244A0 ; =0x000001ED mov r5, #0x0 @@ -76911,7 +76911,7 @@ FUN_020244A4: ; 0x020244A4 ldr r0, _020244E4 ; =0xBEEFCAFE cmp r1, r0 beq _020244B4 - bl FUN_02020C2C + bl ErrorHandling _020244B4: ldr r7, _020244E8 ; =0x000001ED mov r5, #0x0 @@ -77044,7 +77044,7 @@ FUN_02024594: ; 0x02024594 ldr r0, _020245E8 ; =0xBEEFCAFE cmp r1, r0 beq _020245A6 - bl FUN_02020C2C + bl ErrorHandling _020245A6: cmp r4, #0x0 beq _020245B0 @@ -77052,7 +77052,7 @@ _020245A6: cmp r4, r0 bls _020245B8 _020245B0: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 b _020245BA _020245B8: @@ -77097,7 +77097,7 @@ FUN_020245F0: ; 0x020245F0 ldr r0, _02024640 ; =0xBEEFCAFE cmp r1, r0 beq _02024602 - bl FUN_02020C2C + bl ErrorHandling _02024602: cmp r4, #0x0 beq _0202460C @@ -77105,7 +77105,7 @@ _02024602: cmp r4, r0 bls _02024614 _0202460C: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 b _02024616 _02024614: @@ -77146,7 +77146,7 @@ FUN_02024648: ; 0x02024648 ldr r0, _02024670 ; =0xBEEFCAFE cmp r1, r0 beq _0202465A - bl FUN_02020C2C + bl ErrorHandling _0202465A: cmp r4, #0x0 bne _02024666 @@ -77155,7 +77155,7 @@ _0202465A: ldr r6, [r5, r0] b _0202466A _02024666: - bl FUN_02020C2C + bl ErrorHandling _0202466A: add r0, r6, #0x0 pop {r4-r6, pc} @@ -77172,7 +77172,7 @@ FUN_02024674: ; 0x02024674 add r6, r2, #0x0 cmp r1, r0 beq _02024688 - bl FUN_02020C2C + bl ErrorHandling _02024688: cmp r4, #0x0 beq _02024692 @@ -77180,7 +77180,7 @@ _02024688: cmp r4, r0 bls _0202469A _02024692: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 b _0202469C _0202469A: @@ -77227,7 +77227,7 @@ FUN_020246DC: ; 0x020246DC ldr r0, _02024718 ; =0xBEEFCAFE cmp r1, r0 beq _020246EE - bl FUN_02020C2C + bl ErrorHandling _020246EE: mov r0, #0x43 mov r2, #0x0 @@ -77263,7 +77263,7 @@ FUN_0202471C: ; 0x0202471C ldr r0, _02024744 ; =0xBEEFCAFE cmp r1, r0 beq _0202472C - bl FUN_02020C2C + bl ErrorHandling _0202472C: mov r1, #0x43 mov r0, #0x0 @@ -77290,7 +77290,7 @@ FUN_02024748: ; 0x02024748 ldr r0, _0202479C ; =0xBEEFCAFE cmp r1, r0 beq _0202475A - bl FUN_02020C2C + bl ErrorHandling _0202475A: ldr r1, _020247A0 ; =0x000001A6 add r0, r5, #0x0 @@ -77303,7 +77303,7 @@ _0202475A: _0202476C: cmp r4, #0x2 blt _02024774 - bl FUN_02020C2C + bl ErrorHandling _02024774: add r0, r4, #0x1 lsl r0, r0, #0x10 @@ -77338,7 +77338,7 @@ FUN_020247A4: ; 0x020247A4 ldr r0, _020247C0 ; =0xBEEFCAFE cmp r1, r0 beq _020247B4 - bl FUN_02020C2C + bl ErrorHandling _020247B4: ldr r1, _020247C4 ; =0x000001A6 add r0, r4, #0x0 @@ -77357,7 +77357,7 @@ FUN_020247C8: ; 0x020247C8 ldr r0, _0202481C ; =0xBEEFCAFE cmp r1, r0 beq _020247DA - bl FUN_02020C2C + bl ErrorHandling _020247DA: ldr r1, _02024820 ; =0x000001A7 add r0, r5, #0x0 @@ -77370,7 +77370,7 @@ _020247DA: _020247EC: cmp r4, #0x2 blt _020247F4 - bl FUN_02020C2C + bl ErrorHandling _020247F4: add r0, r4, #0x1 lsl r0, r0, #0x10 @@ -77405,7 +77405,7 @@ FUN_02024828: ; 0x02024828 ldr r0, _02024844 ; =0xBEEFCAFE cmp r1, r0 beq _02024838 - bl FUN_02020C2C + bl ErrorHandling _02024838: ldr r1, _02024848 ; =0x000001A7 add r0, r4, #0x0 @@ -77424,7 +77424,7 @@ FUN_0202484C: ; 0x0202484C ldr r0, _02024894 ; =0xBEEFCAFE cmp r1, r0 beq _0202485E - bl FUN_02020C2C + bl ErrorHandling _0202485E: mov r1, #0x67 add r0, r5, #0x0 @@ -77438,7 +77438,7 @@ _0202485E: _02024872: cmp r4, #0x3 blt _0202487A - bl FUN_02020C2C + bl ErrorHandling _0202487A: lsl r0, r4, #0x10 lsr r2, r0, #0x10 @@ -77464,7 +77464,7 @@ FUN_0202489C: ; 0x0202489C ldr r0, _020248B8 ; =0xBEEFCAFE cmp r1, r0 beq _020248AC - bl FUN_02020C2C + bl ErrorHandling _020248AC: mov r1, #0x67 add r0, r4, #0x0 @@ -77483,7 +77483,7 @@ FUN_020248BC: ; 0x020248BC ldr r0, _02024900 ; =0xBEEFCAFE cmp r1, r0 beq _020248CE - bl FUN_02020C2C + bl ErrorHandling _020248CE: ldr r1, _02024904 ; =0x0000019D add r0, r5, #0x0 @@ -77496,7 +77496,7 @@ _020248CE: _020248E0: cmp r4, #0x3 blt _020248E8 - bl FUN_02020C2C + bl ErrorHandling _020248E8: lsl r0, r4, #0x10 lsr r2, r0, #0x10 @@ -77523,7 +77523,7 @@ FUN_0202490C: ; 0x0202490C ldr r0, _02024928 ; =0xBEEFCAFE cmp r1, r0 beq _0202491C - bl FUN_02020C2C + bl ErrorHandling _0202491C: ldr r1, _0202492C ; =0x0000019D add r0, r4, #0x0 @@ -77542,7 +77542,7 @@ FUN_02024930: ; 0x02024930 ldr r0, _0202496C ; =0xBEEFCAFE cmp r1, r0 beq _02024942 - bl FUN_02020C2C + bl ErrorHandling _02024942: lsl r0, r4, #0x18 lsr r0, r0, #0x18 @@ -77577,7 +77577,7 @@ FUN_02024970: ; 0x02024970 ldr r0, _02024988 ; =0xBEEFCAFE cmp r1, r0 beq _02024980 - bl FUN_02020C2C + bl ErrorHandling _02024980: add r0, r4, #0x0 bl FUN_020240D0 @@ -77610,7 +77610,7 @@ FUN_0202498C: ; 0x0202498C ldr r0, _02024AE4 ; =0xBEEFCAFE cmp r1, r0 beq _020249C4 - bl FUN_02020C2C + bl ErrorHandling _020249C4: ldr r0, [sp, #0x4] cmp r0, #0x0 @@ -77619,7 +77619,7 @@ _020249C4: cmp r0, r1 bls _020249D8 _020249D0: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 b _020249DA _020249D8: @@ -77653,7 +77653,7 @@ _02024A08: lsr r6, r0, #0x18 cmp r6, #0x2 bls _02024A14 - bl FUN_02020C2C + bl ErrorHandling _02024A14: cmp r6, #0x2 bne _02024A1A @@ -77661,7 +77661,7 @@ _02024A14: _02024A1A: cmp r6, #0x2 blo _02024A22 - bl FUN_02020C2C + bl ErrorHandling _02024A22: add r2, r5, #0x0 mov r0, #0x7 @@ -77682,7 +77682,7 @@ _02024A22: strb r0, [r2, r1] cmp r6, #0x2 blo _02024A4C - bl FUN_02020C2C + bl ErrorHandling _02024A4C: add r1, r5, #0x0 mov r0, #0x7 @@ -77718,7 +77718,7 @@ _02024A7C: lsr r6, r0, #0x18 cmp r6, #0x2 bls _02024A90 - bl FUN_02020C2C + bl ErrorHandling _02024A90: cmp r6, #0x2 bne _02024A96 @@ -77726,7 +77726,7 @@ _02024A90: _02024A96: cmp r6, #0x2 blo _02024A9E - bl FUN_02020C2C + bl ErrorHandling _02024A9E: add r1, r5, #0x0 mov r0, #0x7 @@ -77797,7 +77797,7 @@ FUN_02024AF0: ; 0x02024AF0 ldr r0, _02024C78 ; =0xBEEFCAFE cmp r1, r0 beq _02024B32 - bl FUN_02020C2C + bl ErrorHandling _02024B32: cmp r6, #0x0 beq _02024B3C @@ -77805,7 +77805,7 @@ _02024B32: cmp r6, r0 bls _02024B44 _02024B3C: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 b _02024B46 _02024B44: @@ -77840,7 +77840,7 @@ _02024B74: lsr r7, r0, #0x18 cmp r7, #0x2 bls _02024B80 - bl FUN_02020C2C + bl ErrorHandling _02024B80: cmp r7, #0x2 bne _02024B86 @@ -77848,7 +77848,7 @@ _02024B80: _02024B86: cmp r7, #0x2 blo _02024B8E - bl FUN_02020C2C + bl ErrorHandling _02024B8E: mov r0, #0x7 and r0, r5 @@ -77875,7 +77875,7 @@ _02024B8E: strb r1, [r0, r3] cmp r7, #0x2 blo _02024BC4 - bl FUN_02020C2C + bl ErrorHandling _02024BC4: add r1, r4, #0x0 mov r0, #0x7 @@ -77912,7 +77912,7 @@ _02024BF6: lsr r7, r0, #0x18 cmp r7, #0x2 bls _02024C0A - bl FUN_02020C2C + bl ErrorHandling _02024C0A: cmp r7, #0x2 bne _02024C10 @@ -77920,7 +77920,7 @@ _02024C0A: _02024C10: cmp r7, #0x2 blo _02024C18 - bl FUN_02020C2C + bl ErrorHandling _02024C18: add r1, r4, #0x0 mov r0, #0x7 @@ -77982,7 +77982,7 @@ FUN_02024C84: ; 0x02024C84 ldr r0, _02024C9C ; =0xBEEFCAFE cmp r1, r0 beq _02024C94 - bl FUN_02020C2C + bl ErrorHandling _02024C94: ldr r0, _02024CA0 ; =0x00000139 mov r1, #0x1 @@ -78000,7 +78000,7 @@ FUN_02024CA4: ; 0x02024CA4 ldr r0, _02024CBC ; =0xBEEFCAFE cmp r1, r0 beq _02024CB4 - bl FUN_02020C2C + bl ErrorHandling _02024CB4: ldr r0, _02024CC0 ; =0x00000139 ldrb r0, [r4, r0] @@ -78017,7 +78017,7 @@ FUN_02024CC4: ; 0x02024CC4 ldr r0, _02024CDC ; =0xBEEFCAFE cmp r1, r0 beq _02024CD4 - bl FUN_02020C2C + bl ErrorHandling _02024CD4: mov r0, #0x4a lsl r0, r0, #0x2 @@ -78034,7 +78034,7 @@ FUN_02024CE0: ; 0x02024CE0 ldr r0, _02024CFC ; =0xBEEFCAFE cmp r1, r0 beq _02024CF0 - bl FUN_02020C2C + bl ErrorHandling _02024CF0: mov r0, #0x4a mov r1, #0x1 @@ -78052,13 +78052,13 @@ FUN_02024D00: ; 0x02024D00 add r5, r1, #0x0 cmp r6, #0x8 blo _02024D10 - bl FUN_02020C2C + bl ErrorHandling _02024D10: ldr r1, [r4, #0x0] ldr r0, _02024D44 ; =0xBEEFCAFE cmp r1, r0 beq _02024D1C - bl FUN_02020C2C + bl ErrorHandling _02024D1C: add r0, r5, #0x0 bl FUN_02087A50 @@ -78107,7 +78107,7 @@ FUN_02024D64: ; 0x02024D64 ldr r0, _02024D7C ; =0xBEEFCAFE cmp r1, r0 beq _02024D74 - bl FUN_02020C2C + bl ErrorHandling _02024D74: mov r0, #0x4e lsl r0, r0, #0x2 @@ -78124,7 +78124,7 @@ FUN_02024D80: ; 0x02024D80 ldr r0, _02024D9C ; =0xBEEFCAFE cmp r1, r0 beq _02024D90 - bl FUN_02020C2C + bl ErrorHandling _02024D90: mov r0, #0x4e mov r1, #0x1 @@ -78140,7 +78140,7 @@ FUN_02024DA0: ; 0x02024DA0 mov r1, #0x7 bx r3 nop -_02024DA8: .word FUN_02022610 + 1 +_02024DA8: .word FUN_02022610 thumb_func_start FUN_02024DAC FUN_02024DAC: ; 0x02024DAC @@ -78249,7 +78249,7 @@ FUN_02024E6C: ; 0x02024E6C ldr r2, _02024EA4 ; =0x0000074C mov r0, #0x0 add r1, r4, #0x0 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_020250A4 mov r0, #0x7 @@ -78260,12 +78260,12 @@ FUN_02024E6C: ; 0x02024E6C ldr r0, _02024EAC ; =0x0000FFFF add r1, r4, r1 mov r2, #0x8 - blx FUN_020CE1C8 + blx MIi_CpuClear16 ldr r1, _02024EB0 ; =0x00000734 ldr r0, _02024EAC ; =0x0000FFFF add r1, r4, r1 mov r2, #0xb - blx FUN_020CE1C8 + blx MIi_CpuClear16 pop {r4, pc} .balign 4 _02024EA4: .word 0x0000074C @@ -78279,7 +78279,7 @@ FUN_02024EB4: ; 0x02024EB4 mov r1, #0xa bx r3 nop -_02024EBC: .word FUN_02022610 + 1 +_02024EBC: .word FUN_02022610 thumb_func_start FUN_02024EC0 FUN_02024EC0: ; 0x02024EC0 @@ -78295,7 +78295,7 @@ FUN_02024ECC: ; 0x02024ECC mov r1, #0xa bx r3 nop -_02024ED4: .word FUN_02022610 + 1 +_02024ED4: .word FUN_02022610 thumb_func_start FUN_02024ED8 FUN_02024ED8: ; 0x02024ED8 @@ -78326,7 +78326,7 @@ FUN_02024EF4: ; 0x02024EF4 bx r3 nop _02024F04: .word 0x00000724 -_02024F08: .word FUN_02021EF0 + 1 +_02024F08: .word FUN_02021EF0 thumb_func_start FUN_02024F0C FUN_02024F0C: ; 0x02024F0C @@ -78347,7 +78347,7 @@ FUN_02024F18: ; 0x02024F18 bx r3 nop _02024F28: .word 0x00000734 -_02024F2C: .word FUN_02021EF0 + 1 +_02024F2C: .word FUN_02021EF0 thumb_func_start FUN_02024F30 FUN_02024F30: ; 0x02024F30 @@ -78362,11 +78362,11 @@ FUN_02024F30: ; 0x02024F30 thumb_func_start FUN_02024F44 FUN_02024F44: ; 0x02024F44 - ldr r3, _02024F4C ; =FUN_020CE3E0 + ldr r3, _02024F4C ; =MI_CpuCopy8 mov r2, #0x2 bx r3 nop -_02024F4C: .word FUN_020CE3E0 +_02024F4C: .word MI_CpuCopy8 thumb_func_start FUN_02024F50 FUN_02024F50: ; 0x02024F50 @@ -78374,7 +78374,7 @@ FUN_02024F50: ; 0x02024F50 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 ldrh r1, [r4, #0x0] mov r0, #0xf bic r1, r0 @@ -78411,7 +78411,7 @@ FUN_02024F9C: ; 0x02024F9C push {r3, lr} cmp r0, #0x0 beq _02024FAC - bl FUN_02023900 + bl LoadPlayerDataAddress bl FUN_02025064 add r1, r0, #0x0 _02024FAC: @@ -78589,7 +78589,7 @@ FUN_020250A4: ; 0x020250A4 mov r1, #0x0 lsl r2, r2, #0x8 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r1, #0x0 add r0, r1, #0x0 _020250B6: @@ -78970,7 +78970,7 @@ _0202531E: ; jump table (using 16-bit offset) .short _02025336 - _0202531E - 2; case 4 .short _0202534E - _0202531E - 2; case 5 _0202532A: - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} _02025330: add r0, r2, #0x1 @@ -79026,12 +79026,12 @@ FUN_02025374: ; 0x02025374 mov r1, #0x3c str r0, [sp, #0x0] add r0, r7, r0 - blx FUN_020EBC80 + blx _s32_div_f add r4, r0, #0x0 ldr r0, [sp, #0x0] mov r1, #0x3c add r0, r7, r0 - blx FUN_020EBC80 + blx _s32_div_f strh r1, [r5, #0x4] cmp r4, #0x0 beq _020253DE @@ -79049,7 +79049,7 @@ _020253BA: sub r0, r6, #0x1 add r0, r1, r0 add r1, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f sub r4, r4, r0 mov r0, #0x0 strb r0, [r5, #0xa] @@ -79151,12 +79151,12 @@ _02025474: thumb_func_start FUN_02025484 FUN_02025484: ; 0x02025484 - ldr r3, _0202548C ; =FUN_020CE34C + ldr r3, _0202548C ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0x24 bx r3 .balign 4 -_0202548C: .word FUN_020CE34C +_0202548C: .word MI_CpuFill8 thumb_func_start FUN_02025490 FUN_02025490: ; 0x02025490 @@ -79175,7 +79175,7 @@ FUN_020254A0: ; 0x020254A0 ldr r0, [r4, #0x0] cmp r0, r1 beq _020254AE - bl FUN_02020C2C + bl ErrorHandling _020254AE: add r0, r4, #0x4 pop {r4, pc} @@ -79199,7 +79199,7 @@ FUN_020254C0: ; 0x020254C0 mov r1, #0x9 bx r3 nop -_020254C8: .word FUN_02022610 + 1 +_020254C8: .word FUN_02022610 thumb_func_start FUN_020254CC FUN_020254CC: ; 0x020254CC @@ -79496,11 +79496,11 @@ FUN_020256BC: ; 0x020256BC thumb_func_start FUN_020256D0 FUN_020256D0: ; 0x020256D0 - ldr r3, _020256D8 ; =FUN_020CE3E0 + ldr r3, _020256D8 ; =MI_CpuCopy8 mov r2, #0x38 bx r3 nop -_020256D8: .word FUN_020CE3E0 +_020256D8: .word MI_CpuCopy8 thumb_func_start FUN_020256DC FUN_020256DC: ; 0x020256DC @@ -79705,7 +79705,7 @@ FUN_02025838: ; 0x02025838 mov r1, #0xf bx r3 nop -_02025840: .word FUN_02022610 + 1 +_02025840: .word FUN_02022610 thumb_func_start FUN_02025844 FUN_02025844: ; 0x02025844 @@ -79900,7 +79900,7 @@ FUN_02025964: ; 0x02025964 mov r1, #0x0 mov r2, #0x3c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 pop {r4, pc} .balign 4 @@ -79936,7 +79936,7 @@ FUN_0202597C: ; 0x0202597C ldr r2, _020259DC ; =0x000009B4 add r0, r4, #0x0 add r1, r7, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 add r0, #0x94 mov r1, #0x9b @@ -80334,7 +80334,7 @@ _02025C50: ldr r0, [sp, #0x0] cmp r0, #0x5 blt _02025C72 - bl FUN_02020C2C + bl ErrorHandling _02025C72: add r0, r6, #0x0 bl FUN_0202398C @@ -80344,7 +80344,7 @@ _02025C72: lsl r1, r1, #0x4 add r1, r2, r1 mov r2, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r6, #0x0 bl FUN_020239BC ldr r1, [sp, #0x0] @@ -80445,11 +80445,11 @@ FUN_02025D48: ; 0x02025D48 add r4, r0, #0x0 cmp r4, #0xb bge _02025D54 - bl FUN_02020C2C + bl ErrorHandling _02025D54: cmp r4, #0x3c blt _02025D5C - bl FUN_02020C2C + bl ErrorHandling _02025D5C: sub r4, #0xb ldr r0, _02025D68 ; =0x02105C74 @@ -80537,7 +80537,7 @@ FUN_02025DD4: ; 0x02025DD4 bl FUN_02025F0C cmp r0, #0x0 beq _02025DE6 - bl FUN_02020C2C + bl ErrorHandling _02025DE6: mov r0, #0x81 add r1, r5, r4 @@ -80584,7 +80584,7 @@ FUN_02025E20: ; 0x02025E20 add r0, r5, r0 add r1, sp, #0xc mov r2, #0xc8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r2, [sp, #0x8] add r1, sp, #0xc add r0, r4, #0x0 @@ -80679,11 +80679,11 @@ FUN_02025EDC: ; 0x02025EDC add r4, r1, #0x0 cmp r6, #0x1 bge _02025EEC - bl FUN_02020C2C + bl ErrorHandling _02025EEC: cmp r6, #0xf ble _02025EF4 - bl FUN_02020C2C + bl ErrorHandling _02025EF4: sub r0, r6, #0x1 add r1, r5, r0 @@ -80740,12 +80740,12 @@ FUN_02025F44: ; 0x02025F44 mov r1, #0x9a lsl r1, r1, #0x4 add r0, r0, r1 - ldr r3, _02025F54 ; =FUN_020CE34C + ldr r3, _02025F54 ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0xf bx r3 nop -_02025F54: .word FUN_020CE34C +_02025F54: .word MI_CpuFill8 thumb_func_start FUN_02025F58 FUN_02025F58: ; 0x02025F58 @@ -80861,7 +80861,7 @@ FUN_02025FFC: ; 0x02025FFC add r1, sp, #0x8 mov r2, #0x28 mov r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r2, [sp, #0x4] add r1, sp, #0x8 add r0, r4, #0x0 @@ -81003,12 +81003,12 @@ FUN_020260EC: ; 0x020260EC add r1, sp, #0x34 mov r2, #0x28 mov r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _02026168 ; =0x00000978 add r1, sp, #0xc add r0, r7, r0 mov r2, #0x28 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r3, [sp, #0x0] add r1, sp, #0x34 add r3, r1, r3 @@ -81146,7 +81146,7 @@ FUN_020261EC: ; 0x020261EC add r1, sp, #0x8 mov r2, #0x28 mov r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r2, [sp, #0x4] add r1, sp, #0x8 add r0, r4, #0x0 @@ -81268,7 +81268,7 @@ FUN_020262BC: ; 0x020262BC add r1, sp, #0x8 mov r2, #0x28 mov r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r2, [sp, #0x4] add r1, sp, #0x8 add r0, r4, #0x0 @@ -81310,7 +81310,7 @@ FUN_0202630C: ; 0x0202630C add r6, r3, #0x0 cmp r4, #0x40 blt _0202631E - bl FUN_02020C2C + bl ErrorHandling _0202631E: ldr r0, _02026350 ; =0x0000010F add r1, r5, r4 @@ -81346,7 +81346,7 @@ FUN_02026354: ; 0x02026354 add r5, r0, #0x0 cmp r4, #0x40 blt _02026362 - bl FUN_02020C2C + bl ErrorHandling _02026362: ldr r0, _0202636C ; =0x0000010F add r1, r5, r4 @@ -81362,7 +81362,7 @@ FUN_02026370: ; 0x02026370 add r5, r0, #0x0 cmp r4, #0x40 blt _0202637E - bl FUN_02020C2C + bl ErrorHandling _0202637E: lsl r0, r4, #0x1 add r0, r4, r0 @@ -81387,7 +81387,7 @@ FUN_0202639C: ; 0x0202639C add r5, r0, #0x0 cmp r4, #0x40 blt _020263AA - bl FUN_02020C2C + bl ErrorHandling _020263AA: lsl r0, r4, #0x1 add r0, r4, r0 @@ -81412,7 +81412,7 @@ FUN_020263C8: ; 0x020263C8 add r5, r0, #0x0 cmp r4, #0x40 blt _020263D6 - bl FUN_02020C2C + bl ErrorHandling _020263D6: ldr r0, _020263F0 ; =0x0000010F mov r1, #0x0 @@ -81424,7 +81424,7 @@ _020263D6: add r0, r4, r0 add r0, r2, r0 mov r2, #0x3 - blx FUN_020CE34C + blx MI_CpuFill8 pop {r3-r5, pc} .balign 4 _020263F0: .word 0x0000010F @@ -81438,7 +81438,7 @@ FUN_020263F4: ; 0x020263F4 add r6, r3, #0x0 cmp r4, #0x10 blt _02026406 - bl FUN_02020C2C + bl ErrorHandling _02026406: lsl r2, r4, #0x1 ldr r1, _02026440 ; =0x0000050C @@ -81534,7 +81534,7 @@ FUN_0202649C: ; 0x0202649C add r7, r3, #0x0 cmp r4, #0x64 blt _020264AE - bl FUN_02020C2C + bl ErrorHandling _020264AE: ldr r1, _020264E8 ; =0x0000055C add r0, r5, r4 @@ -81692,7 +81692,7 @@ FUN_020265B8: ; 0x020265B8 add r5, r0, #0x0 cmp r4, #0xff blt _020265C6 - bl FUN_02020C2C + bl ErrorHandling _020265C6: ldr r0, _020265DC ; =0x0000020F mov r2, #0x3 @@ -81701,7 +81701,7 @@ _020265C6: add r0, r4, r0 add r0, r1, r0 mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 pop {r3-r5, pc} nop _020265DC: .word 0x0000020F @@ -81861,12 +81861,12 @@ _020266D0: .word 0x000009AF thumb_func_start FUN_020266D4 FUN_020266D4: ; 0x020266D4 - ldr r3, _020266DC ; =FUN_020CE34C + ldr r3, _020266DC ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0x94 bx r3 .balign 4 -_020266DC: .word FUN_020CE34C +_020266DC: .word MI_CpuFill8 thumb_func_start FUN_020266E0 FUN_020266E0: ; 0x020266E0 @@ -81874,12 +81874,12 @@ FUN_020266E0: ; 0x020266E0 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x2d - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 add r0, #0x2d mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 mov r1, #0x0 add r0, #0x8c @@ -81911,20 +81911,20 @@ FUN_0202671C: ; 0x0202671C add r6, r3, #0x0 cmp r4, #0x20 blt _0202672E - bl FUN_02020C2C + bl ErrorHandling _0202672E: cmp r6, #0x20 blt _02026736 - bl FUN_02020C2C + bl ErrorHandling _02026736: ldr r0, [sp, #0x18] cmp r0, #0x20 blt _02026740 - bl FUN_02020C2C + bl ErrorHandling _02026740: cmp r5, #0x0 bne _02026748 - bl FUN_02020C2C + bl ErrorHandling _02026748: cmp r4, #0x0 beq _02026774 @@ -82006,7 +82006,7 @@ FUN_020267C4: ; 0x020267C4 add r4, r0, #0x0 cmp r5, #0x20 blt _020267D2 - bl FUN_02020C2C + bl ErrorHandling _020267D2: cmp r5, #0x0 bne _020267DE @@ -82049,7 +82049,7 @@ FUN_02026810: ; 0x02026810 add r4, r0, #0x0 cmp r5, #0x20 blt _0202681E - bl FUN_02020C2C + bl ErrorHandling _0202681E: cmp r5, #0x0 bne _02026826 @@ -82078,7 +82078,7 @@ FUN_02026840: ; 0x02026840 add r4, r0, #0x0 cmp r5, #0x20 blt _0202684E - bl FUN_02020C2C + bl ErrorHandling _0202684E: cmp r5, #0x0 bne _02026856 @@ -82743,7 +82743,7 @@ FUN_02026CA8: ; 0x02026CA8 mov r1, #0xc bx r3 nop -_02026CB0: .word FUN_02022610 + 1 +_02026CB0: .word FUN_02022610 thumb_func_start FUN_02026CB4 FUN_02026CB4: ; 0x02026CB4 @@ -82764,7 +82764,7 @@ FUN_02026CC4: ; 0x02026CC4 mov r1, #0xc bx r3 nop -_02026CCC: .word FUN_02022610 + 1 +_02026CCC: .word FUN_02022610 thumb_func_start FUN_02026CD0 FUN_02026CD0: ; 0x02026CD0 @@ -82833,20 +82833,20 @@ FUN_02026D34: ; 0x02026D34 lsl r0, r0, #0x8 cmp r1, r0 blt _02026D5E - bl FUN_02020C2C + bl ErrorHandling _02026D5E: mov r0, #0x1 ldr r1, [sp, #0x8] lsl r0, r0, #0x8 cmp r1, r0 blt _02026D6C - bl FUN_02020C2C + bl ErrorHandling _02026D6C: mov r0, #0x7f mvn r0, r0 cmp r4, r0 bgt _02026D78 - bl FUN_02020C2C + bl ErrorHandling _02026D78: lsl r0, r4, #0x18 asr r0, r0, #0x18 @@ -82899,7 +82899,7 @@ FUN_02026DC4: ; 0x02026DC4 add r6, r1, #0x0 cmp r4, #0x3d blo _02026DD4 - bl FUN_02020C2C + bl ErrorHandling _02026DD4: lsr r2, r4, #0x1f lsl r1, r4, #0x1d @@ -82935,7 +82935,7 @@ FUN_02026E08: ; 0x02026E08 add r5, r0, #0x0 cmp r4, #0x3d blo _02026E16 - bl FUN_02020C2C + bl ErrorHandling _02026E16: lsr r3, r4, #0x1f lsl r2, r4, #0x1d @@ -82972,7 +82972,7 @@ FUN_02026E48: ; 0x02026E48 add r6, r2, #0x0 cmp r4, #0x2 blo _02026E58 - bl FUN_02020C2C + bl ErrorHandling _02026E58: lsr r2, r6, #0x1f lsl r1, r6, #0x1b @@ -83030,7 +83030,7 @@ FUN_02026EB0: ; 0x02026EB0 add r6, r2, #0x0 cmp r4, #0x12 bls _02026EC0 - bl FUN_02020C2C + bl ErrorHandling _02026EC0: lsr r2, r6, #0x1f lsl r1, r6, #0x1e @@ -83220,7 +83220,7 @@ FUN_02027008: ; 0x02027008 add r5, r0, #0x0 cmp r6, #0xb blt _02027016 - bl FUN_02020C2C + bl ErrorHandling _02027016: mov r0, #0x74 add r4, r6, #0x0 @@ -83240,7 +83240,7 @@ _0202702E: _02027030: cmp r0, #0x0 bne _02027038 - bl FUN_02020C2C + bl ErrorHandling _02027038: add r0, r5, r4 pop {r4-r6, pc} @@ -83255,7 +83255,7 @@ FUN_02027044: ; 0x02027044 add r5, r0, #0x0 cmp r6, #0x5 blt _02027052 - bl FUN_02020C2C + bl ErrorHandling _02027052: mov r0, #0x98 add r4, r6, #0x0 @@ -83277,7 +83277,7 @@ _0202706E: _02027070: cmp r0, #0x0 bne _02027078 - bl FUN_02020C2C + bl ErrorHandling _02027078: ldr r0, _02027080 ; =0x000004FC add r0, r5, r0 @@ -83303,7 +83303,7 @@ FUN_02027098: ; 0x02027098 add r5, r0, #0x0 cmp r4, #0xb blt _020270A6 - bl FUN_02020C2C + bl ErrorHandling _020270A6: mov r0, #0x74 mul r0, r4 @@ -83319,7 +83319,7 @@ FUN_020270B4: ; 0x020270B4 add r5, r0, #0x0 cmp r4, #0x5 blt _020270C2 - bl FUN_02020C2C + bl ErrorHandling _020270C2: ldr r0, _020270D4 ; =0x000004FC add r1, r5, r0 @@ -83375,7 +83375,7 @@ FUN_02027114: ; 0x02027114 add r4, r0, #0x0 cmp r5, #0x64 blo _02027122 - bl FUN_02020C2C + bl ErrorHandling _02027122: cmp r5, #0x3d bhs _02027132 @@ -83386,7 +83386,7 @@ _02027122: pop {r3-r5, pc} _02027132: bhs _02027138 - bl FUN_02020C2C + bl ErrorHandling _02027138: sub r5, #0x3d lsl r0, r5, #0x18 @@ -83405,7 +83405,7 @@ FUN_0202714C: ; 0x0202714C add r5, r0, #0x0 cmp r4, #0x12 blo _0202715A - bl FUN_02020C2C + bl ErrorHandling _0202715A: add r5, #0x28 lsl r1, r4, #0x18 @@ -83459,7 +83459,7 @@ FUN_020271A4: ; 0x020271A4 add r6, r2, #0x0 cmp r4, #0x64 blo _020271B4 - bl FUN_02020C2C + bl ErrorHandling _020271B4: cmp r4, #0x3d bhs _020271DA @@ -83494,7 +83494,7 @@ _020271DA: _020271F2: cmp r4, #0x3d bhs _020271FA - bl FUN_02020C2C + bl ErrorHandling _020271FA: sub r4, #0x3d lsl r0, r4, #0x18 @@ -83515,7 +83515,7 @@ FUN_02027210: ; 0x02027210 add r6, r2, #0x0 cmp r4, #0x64 blo _02027220 - bl FUN_02020C2C + bl ErrorHandling _02027220: cmp r4, #0x3d bhs _02027248 @@ -83539,7 +83539,7 @@ _0202723C: pop {r4-r6, pc} _02027248: bhs _0202724E - bl FUN_02020C2C + bl ErrorHandling _0202724E: sub r4, #0x3d lsl r0, r4, #0x18 @@ -83559,7 +83559,7 @@ FUN_02027264: ; 0x02027264 add r5, r0, #0x0 cmp r4, #0x12 blo _02027272 - bl FUN_02020C2C + bl ErrorHandling _02027272: add r0, r5, #0x0 lsl r1, r4, #0x18 @@ -83600,7 +83600,7 @@ _020272B2: _020272B4: cmp r0, #0x0 bne _020272BC - bl FUN_02020C2C + bl ErrorHandling _020272BC: ldr r1, [r4, #0x0] ldr r0, _020272D0 ; =0x00002345 @@ -83634,7 +83634,7 @@ _020272EA: _020272EC: cmp r0, #0x0 bne _020272F4 - bl FUN_02020C2C + bl ErrorHandling _020272F4: ldr r0, _02027308 ; =0x00002345 str r0, [r4, #0x0] @@ -83667,7 +83667,7 @@ _02027326: _02027328: cmp r0, #0x0 bne _02027330 - bl FUN_02020C2C + bl ErrorHandling _02027330: add r0, r4, #0x0 mov r1, #0x0 @@ -83701,7 +83701,7 @@ _02027362: _02027364: cmp r0, #0x0 bne _0202736C - bl FUN_02020C2C + bl ErrorHandling _0202736C: add r0, r5, #0x4 add r1, r4, #0x0 @@ -83734,7 +83734,7 @@ FUN_02027380: ; 0x02027380 str r0, [sp, #0x8] cmp r6, #0xa blt _020273B0 - bl FUN_02020C2C + bl ErrorHandling _020273B0: add r1, sp, #0xc mov r0, #0x4 @@ -83742,7 +83742,7 @@ _020273B0: add r0, #0xfc cmp r1, r0 blt _020273C0 - bl FUN_02020C2C + bl ErrorHandling _020273C0: add r1, sp, #0xc mov r0, #0x6 @@ -83750,14 +83750,14 @@ _020273C0: add r0, #0xfa cmp r7, r0 blt _020273D0 - bl FUN_02020C2C + bl ErrorHandling _020273D0: mov r1, #0x7f ldr r0, [sp, #0x8] mvn r1, r1 cmp r0, r1 bgt _020273DE - bl FUN_02020C2C + bl ErrorHandling _020273DE: mov r0, #0x1 lsl r0, r6 @@ -83765,7 +83765,7 @@ _020273DE: str r0, [sp, #0x4] tst r0, r1 beq _020273EE - bl FUN_02020C2C + bl ErrorHandling _020273EE: ldr r1, [r5, #0x0] ldr r0, _02027440 ; =0x00001234 @@ -83782,7 +83782,7 @@ _02027400: _02027402: cmp r0, #0x0 bne _0202740A - bl FUN_02020C2C + bl ErrorHandling _0202740A: ldr r0, [sp, #0x8] add r1, r5, #0x0 @@ -83833,7 +83833,7 @@ _02027460: _02027462: cmp r0, #0x0 bne _0202746A - bl FUN_02020C2C + bl ErrorHandling _0202746A: add r5, #0x70 strb r4, [r5, #0x0] @@ -83862,7 +83862,7 @@ _02027490: _02027492: cmp r0, #0x0 bne _0202749A - bl FUN_02020C2C + bl ErrorHandling _0202749A: add r0, r5, #0x0 add r0, #0x40 @@ -83897,7 +83897,7 @@ _020274D0: _020274D2: cmp r0, #0x0 bne _020274DA - bl FUN_02020C2C + bl ErrorHandling _020274DA: add r0, r5, #0x0 add r1, r4, #0x0 @@ -83929,7 +83929,7 @@ _0202750A: _0202750C: cmp r0, #0x0 bne _02027514 - bl FUN_02020C2C + bl ErrorHandling _02027514: add r0, r5, #0x4 add r1, r4, #0x0 @@ -83947,7 +83947,7 @@ FUN_02027528: ; 0x02027528 add r5, r0, #0x0 cmp r4, #0xa blt _02027536 - bl FUN_02020C2C + bl ErrorHandling _02027536: ldr r1, [r5, #0x0] ldr r0, _0202755C ; =0x00001234 @@ -83964,7 +83964,7 @@ _02027548: _0202754A: cmp r0, #0x0 bne _02027552 - bl FUN_02020C2C + bl ErrorHandling _02027552: mov r0, #0x1 ldr r1, [r5, #0x3c] @@ -83994,7 +83994,7 @@ _0202757A: _0202757C: cmp r0, #0x0 bne _02027584 - bl FUN_02020C2C + bl ErrorHandling _02027584: add r0, r4, #0x4 pop {r4, pc} @@ -84009,14 +84009,14 @@ FUN_02027590: ; 0x02027590 add r5, r0, #0x0 cmp r4, #0xa blt _0202759E - bl FUN_02020C2C + bl ErrorHandling _0202759E: mov r0, #0x1 ldr r1, [r5, #0x3c] lsl r0, r4 tst r0, r1 bne _020275AC - bl FUN_02020C2C + bl ErrorHandling _020275AC: ldr r1, [r5, #0x0] ldr r0, _020275D0 ; =0x00001234 @@ -84033,7 +84033,7 @@ _020275BE: _020275C0: cmp r0, #0x0 bne _020275C8 - bl FUN_02020C2C + bl ErrorHandling _020275C8: add r5, #0x48 lsl r0, r4, #0x2 @@ -84062,7 +84062,7 @@ _020275EE: _020275F0: cmp r0, #0x0 bne _020275F8 - bl FUN_02020C2C + bl ErrorHandling _020275F8: add r0, r4, #0x4 bl FUN_02027C84 @@ -84091,7 +84091,7 @@ _02027620: _02027622: cmp r0, #0x0 bne _0202762A - bl FUN_02020C2C + bl ErrorHandling _0202762A: add r0, r5, #0x4 add r1, r4, #0x0 @@ -84120,7 +84120,7 @@ _02027652: _02027654: cmp r0, #0x0 bne _0202765C - bl FUN_02020C2C + bl ErrorHandling _0202765C: add r0, r4, #0x4 bl FUN_02027C98 @@ -84148,7 +84148,7 @@ _02027682: _02027684: cmp r0, #0x0 bne _0202768C - bl FUN_02020C2C + bl ErrorHandling _0202768C: add r4, #0x70 ldrb r0, [r4, #0x0] @@ -84164,7 +84164,7 @@ FUN_0202769C: ; 0x0202769C mov r1, #0x0 bx r3 .balign 4 -_020276A4: .word FUN_02013918 + 1 +_020276A4: .word FUN_02013918 thumb_func_start FUN_020276A8 FUN_020276A8: ; 0x020276A8 @@ -84185,7 +84185,7 @@ _020276BE: _020276C0: cmp r0, #0x0 bne _020276C8 - bl FUN_02020C2C + bl ErrorHandling _020276C8: add r4, #0x71 ldrb r0, [r4, #0x0] @@ -84213,7 +84213,7 @@ _020276EE: _020276F0: cmp r0, #0x0 bne _020276F8 - bl FUN_02020C2C + bl ErrorHandling _020276F8: ldr r1, [r4, #0x0] ldr r0, _0202770C ; =0x00002345 @@ -84247,7 +84247,7 @@ _02027726: _02027728: cmp r0, #0x0 bne _02027730 - bl FUN_02020C2C + bl ErrorHandling _02027730: ldr r0, _0202773C ; =0x00002345 str r0, [r4, #0x0] @@ -84275,7 +84275,7 @@ _02027756: _02027758: cmp r0, #0x0 bne _02027760 - bl FUN_02020C2C + bl ErrorHandling _02027760: add r0, r4, #0x0 mov r1, #0x0 @@ -84309,7 +84309,7 @@ _02027792: _02027794: cmp r0, #0x0 bne _0202779C - bl FUN_02020C2C + bl ErrorHandling _0202779C: add r5, #0x8 add r0, r5, #0x0 @@ -84343,7 +84343,7 @@ FUN_020277B4: ; 0x020277B4 str r0, [sp, #0x8] cmp r6, #0x14 blt _020277E4 - bl FUN_02020C2C + bl ErrorHandling _020277E4: add r1, sp, #0xc mov r0, #0x4 @@ -84351,7 +84351,7 @@ _020277E4: add r0, #0xfc cmp r1, r0 blt _020277F4 - bl FUN_02020C2C + bl ErrorHandling _020277F4: add r1, sp, #0xc mov r0, #0x6 @@ -84359,14 +84359,14 @@ _020277F4: add r0, #0xfa cmp r7, r0 blt _02027804 - bl FUN_02020C2C + bl ErrorHandling _02027804: mov r1, #0x7f ldr r0, [sp, #0x8] mvn r1, r1 cmp r0, r1 bgt _02027812 - bl FUN_02020C2C + bl ErrorHandling _02027812: mov r0, #0x1 lsl r0, r6 @@ -84374,7 +84374,7 @@ _02027812: str r0, [sp, #0x4] tst r0, r1 beq _02027822 - bl FUN_02020C2C + bl ErrorHandling _02027822: ldr r1, [r5, #0x0] ldr r0, _02027874 ; =0x00001234 @@ -84391,7 +84391,7 @@ _02027834: _02027836: cmp r0, #0x0 bne _0202783E - bl FUN_02020C2C + bl ErrorHandling _0202783E: ldr r0, [sp, #0x8] add r1, r5, #0x0 @@ -84442,7 +84442,7 @@ _02027894: _02027896: cmp r0, #0x0 bne _0202789E - bl FUN_02020C2C + bl ErrorHandling _0202789E: add r5, #0x94 strb r4, [r5, #0x0] @@ -84471,7 +84471,7 @@ _020278C4: _020278C6: cmp r0, #0x0 bne _020278CE - bl FUN_02020C2C + bl ErrorHandling _020278CE: str r4, [r5, #0x4] pop {r3-r5, pc} @@ -84499,7 +84499,7 @@ _020278F4: _020278F6: cmp r0, #0x0 bne _020278FE - bl FUN_02020C2C + bl ErrorHandling _020278FE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -84532,7 +84532,7 @@ _02027930: _02027932: cmp r0, #0x0 bne _0202793A - bl FUN_02020C2C + bl ErrorHandling _0202793A: add r1, sp, #0x4 add r0, r4, #0x0 @@ -84564,18 +84564,18 @@ FUN_02027964: ; 0x02027964 ldr r4, [sp, #0x24] cmp r6, #0x14 blo _0202797A - bl FUN_02020C2C + bl ErrorHandling _0202797A: cmp r7, #0x64 blo _02027982 - bl FUN_02020C2C + bl ErrorHandling _02027982: mov r1, #0x1 ldr r0, [sp, #0x4] lsl r1, r1, #0x8 cmp r0, r1 blt _02027990 - bl FUN_02020C2C + bl ErrorHandling _02027990: add r0, sp, #0x10 ldrb r1, [r0, #0x10] @@ -84583,13 +84583,13 @@ _02027990: lsl r0, r0, #0x8 cmp r1, r0 blt _020279A0 - bl FUN_02020C2C + bl ErrorHandling _020279A0: mov r0, #0x7f mvn r0, r0 cmp r4, r0 bgt _020279AC - bl FUN_02020C2C + bl ErrorHandling _020279AC: mov r0, #0x1 lsl r0, r6 @@ -84597,7 +84597,7 @@ _020279AC: str r0, [sp, #0x8] tst r0, r1 beq _020279BC - bl FUN_02020C2C + bl ErrorHandling _020279BC: ldr r1, [r5, #0x0] ldr r0, _02027A0C ; =0x00001234 @@ -84614,7 +84614,7 @@ _020279CE: _020279D0: cmp r0, #0x0 bne _020279D8 - bl FUN_02020C2C + bl ErrorHandling _020279D8: mov r0, #0x38 ldrsb r0, [r5, r0] @@ -84653,7 +84653,7 @@ FUN_02027A14: ; 0x02027A14 add r5, r0, #0x0 cmp r4, #0x14 blt _02027A22 - bl FUN_02020C2C + bl ErrorHandling _02027A22: ldr r1, [r5, #0x0] ldr r0, _02027A50 ; =0x00001234 @@ -84670,7 +84670,7 @@ _02027A34: _02027A36: cmp r0, #0x0 bne _02027A3E - bl FUN_02020C2C + bl ErrorHandling _02027A3E: mov r0, #0x1 add r1, r0, #0x0 @@ -84706,7 +84706,7 @@ _02027A72: _02027A74: cmp r0, #0x0 bne _02027A7C - bl FUN_02020C2C + bl ErrorHandling _02027A7C: add r5, #0x8 add r0, r5, #0x0 @@ -84737,7 +84737,7 @@ _02027AAA: _02027AAC: cmp r0, #0x0 bne _02027AB4 - bl FUN_02020C2C + bl ErrorHandling _02027AB4: add r4, #0x8 add r0, r4, #0x0 @@ -84753,14 +84753,14 @@ FUN_02027AC4: ; 0x02027AC4 add r5, r0, #0x0 cmp r4, #0x14 blt _02027AD2 - bl FUN_02020C2C + bl ErrorHandling _02027AD2: mov r0, #0x1 ldr r1, [r5, #0x40] lsl r0, r4 tst r0, r1 bne _02027AE0 - bl FUN_02020C2C + bl ErrorHandling _02027AE0: ldr r1, [r5, #0x0] ldr r0, _02027B04 ; =0x00001234 @@ -84777,7 +84777,7 @@ _02027AF2: _02027AF4: cmp r0, #0x0 bne _02027AFC - bl FUN_02020C2C + bl ErrorHandling _02027AFC: add r5, #0x44 lsl r0, r4, #0x2 @@ -84807,7 +84807,7 @@ _02027B24: _02027B26: cmp r0, #0x0 bne _02027B2E - bl FUN_02020C2C + bl ErrorHandling _02027B2E: add r5, #0x8 add r0, r5, #0x0 @@ -84837,7 +84837,7 @@ _02027B5A: _02027B5C: cmp r0, #0x0 bne _02027B64 - bl FUN_02020C2C + bl ErrorHandling _02027B64: add r4, #0x8 add r0, r4, #0x0 @@ -84868,7 +84868,7 @@ _02027B92: _02027B94: cmp r0, #0x0 bne _02027B9C - bl FUN_02020C2C + bl ErrorHandling _02027B9C: mov r1, #0x1 str r1, [sp, #0x0] @@ -84905,14 +84905,14 @@ FUN_02027BDC: ; 0x02027BDC add r5, r0, #0x0 cmp r4, #0x14 blt _02027BEA - bl FUN_02020C2C + bl ErrorHandling _02027BEA: mov r0, #0x1 ldr r1, [r5, #0x40] lsl r0, r4 tst r0, r1 bne _02027BF8 - bl FUN_02020C2C + bl ErrorHandling _02027BF8: ldr r1, [r5, #0x0] ldr r0, _02027C20 ; =0x00001234 @@ -84929,7 +84929,7 @@ _02027C0A: _02027C0C: cmp r0, #0x0 bne _02027C14 - bl FUN_02020C2C + bl ErrorHandling _02027C14: add r5, #0x44 lsl r0, r4, #0x2 @@ -84959,7 +84959,7 @@ _02027C3E: _02027C40: cmp r0, #0x0 bne _02027C48 - bl FUN_02020C2C + bl ErrorHandling _02027C48: add r4, #0x94 ldrb r0, [r4, #0x0] @@ -84987,7 +84987,7 @@ _02027C6E: _02027C70: cmp r0, #0x0 bne _02027C78 - bl FUN_02020C2C + bl ErrorHandling _02027C78: ldr r0, [r4, #0x4] pop {r4, pc} @@ -85009,7 +85009,7 @@ FUN_02027C88: ; 0x02027C88 add r1, r2, #0x0 bx r3 .balign 4 -_02027C94: .word FUN_02021E28 + 1 +_02027C94: .word FUN_02021E28 thumb_func_start FUN_02027C98 FUN_02027C98: ; 0x02027C98 @@ -85244,7 +85244,7 @@ FUN_02027E24: ; 0x02027E24 mov r1, #0xe bx r3 nop -_02027E2C: .word FUN_02022610 + 1 +_02027E2C: .word FUN_02022610 thumb_func_start FUN_02027E30 FUN_02027E30: ; 0x02027E30 @@ -85362,7 +85362,7 @@ FUN_02027ED0: ; 0x02027ED0 _02027EDC: bl FUN_0201B9EC add r1, r7, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x18 lsr r0, r0, #0x18 add r1, r5, r0 @@ -85512,7 +85512,7 @@ FUN_02027FDC: ; 0x02027FDC add r4, r0, #0x0 ldrb r0, [r4, #0x0] mov r1, #0x5 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x5 @@ -85580,7 +85580,7 @@ FUN_02028048: ; 0x02028048 mov r1, #0x10 bx r3 nop -_02028050: .word FUN_02022610 + 1 +_02028050: .word FUN_02022610 thumb_func_start FUN_02028054 FUN_02028054: ; 0x02028054 @@ -85827,7 +85827,7 @@ FUN_020281E8: ; 0x020281E8 mov r0, #0x0 add r1, r7, #0x0 lsl r2, r2, #0x6 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r0, #0x1d lsl r0, r0, #0x4 add r1, r0, #0x0 @@ -85865,7 +85865,7 @@ FUN_0202822C: ; 0x0202822C add r7, r2, #0x0 cmp r4, #0x20 blt _0202823C - bl FUN_02020C2C + bl ErrorHandling _0202823C: cmp r7, #0x8 bhi _020282D0 @@ -85970,7 +85970,7 @@ FUN_020282E8: ; 0x020282E8 add r6, r3, #0x0 cmp r4, #0x20 blt _020282FA - bl FUN_02020C2C + bl ErrorHandling _020282FA: cmp r7, #0x8 bhi _02028378 @@ -85999,13 +85999,13 @@ _0202831C: str r6, [r1, r0] pop {r3-r7, pc} _0202832A: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _02028330: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _02028336: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _0202833C: mov r0, #0x30 @@ -86057,7 +86057,7 @@ FUN_0202838C: ; 0x0202838C add r5, r0, #0x0 cmp r4, #0x20 blt _0202839A - bl FUN_02020C2C + bl ErrorHandling _0202839A: mov r0, #0xc add r5, #0x40 @@ -86072,7 +86072,7 @@ FUN_020283A4: ; 0x020283A4 add r5, r0, #0x0 cmp r4, #0x20 blt _020283B2 - bl FUN_02020C2C + bl ErrorHandling _020283B2: mov r0, #0x1d lsl r0, r0, #0x4 @@ -86090,7 +86090,7 @@ FUN_020283C0: ; 0x020283C0 add r6, r2, #0x0 cmp r4, #0x20 blt _020283D0 - bl FUN_02020C2C + bl ErrorHandling _020283D0: mov r1, #0x1d lsl r1, r1, #0x4 @@ -86111,7 +86111,7 @@ FUN_020283E8: ; 0x020283E8 add r5, r0, #0x0 cmp r4, #0x20 blt _020283F6 - bl FUN_02020C2C + bl ErrorHandling _020283F6: mov r0, #0x7 lsl r0, r0, #0x6 @@ -86129,7 +86129,7 @@ FUN_02028404: ; 0x02028404 add r6, r2, #0x0 cmp r4, #0x20 blt _02028414 - bl FUN_02020C2C + bl ErrorHandling _02028414: mov r1, #0x7 lsl r1, r1, #0x6 @@ -86150,7 +86150,7 @@ FUN_0202842C: ; 0x0202842C add r5, r0, #0x0 cmp r4, #0x20 blt _0202843A - bl FUN_02020C2C + bl ErrorHandling _0202843A: mov r0, #0xc add r5, #0x40 @@ -86187,7 +86187,7 @@ FUN_02028468: ; 0x02028468 str r0, [sp, #0x0] cmp r5, #0x20 blt _02028478 - bl FUN_02020C2C + bl ErrorHandling _02028478: cmp r5, #0x1f bge _020284D2 @@ -86219,7 +86219,7 @@ _020284A2: mov r2, #0x30 add r0, r0, r1 add r1, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0xc add r1, r7, #0x0 mul r1, r0 @@ -86227,7 +86227,7 @@ _020284A2: mov r2, #0xc add r0, r0, r1 add r1, r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r5, r5, #0x1 add r6, #0x30 add r4, #0xc @@ -86243,7 +86243,7 @@ _020284D2: add r1, r2, r1 mov r0, #0x0 mov r2, #0x30 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r2, [sp, #0x0] mov r1, #0x5d add r2, #0x40 @@ -86251,7 +86251,7 @@ _020284D2: add r1, r2, r1 mov r0, #0x0 mov r2, #0xc - blx FUN_020CE240 + blx MIi_CpuClearFast mov r2, #0x7a lsl r2, r2, #0x4 add r1, r2, #0x0 @@ -86286,7 +86286,7 @@ FUN_02028518: ; 0x02028518 str r1, [sp, #0x0] add r0, r4, r5 add r1, r4, r3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, [sp, #0x4] add r6, r7, #0x0 mov r3, #0xc @@ -86300,16 +86300,16 @@ FUN_02028518: ; 0x02028518 mul r2, r3 add r1, r6, r2 add r2, r3, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x0 add r1, r4, r5 mov r2, #0x30 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r1, [sp, #0x8] mov r0, #0x0 add r1, r6, r1 mov r2, #0xc - blx FUN_020CE240 + blx MIi_CpuClearFast mov r0, #0x1d ldr r1, _02028588 ; =0x0000FFFF add r2, r7, r5 @@ -86495,7 +86495,7 @@ _020286BC: mov r0, #0x0 add r1, r6, r4 mov r2, #0x30 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r0, #0x1d ldr r1, _020286E8 ; =0x0000FFFF add r2, r5, r4 @@ -86517,7 +86517,7 @@ FUN_020286EC: ; 0x020286EC mov r1, #0x1d bx r3 nop -_020286F4: .word FUN_02022610 + 1 +_020286F4: .word FUN_02022610 thumb_func_start FUN_020286F8 FUN_020286F8: ; 0x020286F8 @@ -86556,7 +86556,7 @@ FUN_02028724: ; 0x02028724 mov r0, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r0, _0202874C ; =0x0000FFFF mov r1, #0x0 add r2, r4, #0x0 @@ -86711,7 +86711,7 @@ FUN_0202881C: ; 0x0202881C mov r1, #0x11 bx r3 nop -_02028824: .word FUN_02022610 + 1 +_02028824: .word FUN_02022610 thumb_func_start FUN_02028828 FUN_02028828: ; 0x02028828 @@ -86738,7 +86738,7 @@ FUN_02028840: ; 0x02028840 add r0, #0x2c bx r3 nop -_02028850: .word FUN_020288AC + 1 +_02028850: .word FUN_020288AC thumb_func_start FUN_02028854 FUN_02028854: ; 0x02028854 @@ -86864,7 +86864,7 @@ FUN_02028918: ; 0x02028918 add r4, r1, #0x0 cmp r4, r0 bls _02028928 - bl FUN_02020C2C + bl ErrorHandling _02028928: strh r4, [r5, #0x0] pop {r3-r5, pc} @@ -86958,7 +86958,7 @@ FUN_020289A4: ; 0x020289A4 mov r1, #0x12 bx r3 nop -_020289AC: .word FUN_02022610 + 1 +_020289AC: .word FUN_02022610 thumb_func_start FUN_020289B0 FUN_020289B0: ; 0x020289B0 @@ -87749,7 +87749,7 @@ FUN_02028F10: ; 0x02028F10 mov r2, #0x8 bx r3 .balign 4 -_02028F28: .word FUN_020292D4 + 1 +_02028F28: .word FUN_020292D4 thumb_func_start FUN_02028F2C FUN_02028F2C: ; 0x02028F2C @@ -88139,7 +88139,7 @@ FUN_0202918C: ; 0x0202918C ldr r0, [sp, #0x0] bl FUN_02029EC0 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 beq _020291DA @@ -88208,7 +88208,7 @@ FUN_0202920C: ; 0x0202920C ldr r0, [sp, #0x0] bl FUN_02029EC0 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 cmp r0, #0x1 @@ -89015,7 +89015,7 @@ FUN_020297E4: ; 0x020297E4 mov r2, #0x8 bx r3 nop -_02029804: .word FUN_020292D4 + 1 +_02029804: .word FUN_020292D4 thumb_func_start FUN_02029808 FUN_02029808: ; 0x02029808 @@ -89384,7 +89384,7 @@ FUN_02029ABC: ; 0x02029ABC mov r1, #0x13 bx r3 nop -_02029AC4: .word FUN_02022610 + 1 +_02029AC4: .word FUN_02022610 thumb_func_start FUN_02029AC8 FUN_02029AC8: ; 0x02029AC8 @@ -89419,13 +89419,13 @@ _02029AE4: .word 0x00000FF8 thumb_func_start FUN_02029AE8 FUN_02029AE8: ; 0x02029AE8 - ldr r3, _02029AF4 ; =FUN_020CE1FC + ldr r3, _02029AF4 ; =MIi_CpuClear32 add r1, r0, #0x0 mov r0, #0x0 ldr r2, _02029AF8 ; =0x00000FF8 bx r3 nop -_02029AF4: .word FUN_020CE1FC +_02029AF4: .word MIi_CpuClear32 _02029AF8: .word 0x00000FF8 thumb_func_start FUN_02029AFC @@ -89434,7 +89434,7 @@ FUN_02029AFC: ; 0x02029AFC mov r1, #0x1e bx r3 nop -_02029B04: .word FUN_02022610 + 1 +_02029B04: .word FUN_02022610 thumb_func_start FUN_02029B08 FUN_02029B08: ; 0x02029B08 @@ -89446,11 +89446,11 @@ FUN_02029B08: ; 0x02029B08 add r4, r2, #0x0 cmp r5, r0 blt _02029B1C - bl FUN_02020C2C + bl ErrorHandling _02029B1C: cmp r4, #0x40 blt _02029B24 - bl FUN_02020C2C + bl ErrorHandling _02029B24: strb r5, [r6, #0x5] add r0, r6, #0x0 @@ -89482,11 +89482,11 @@ FUN_02029B40: ; 0x02029B40 add r4, r2, #0x0 cmp r5, r0 blt _02029B54 - bl FUN_02020C2C + bl ErrorHandling _02029B54: cmp r4, #0x40 blt _02029B5C - bl FUN_02020C2C + bl ErrorHandling _02029B5C: cmp r5, #0x0 bne _02029B64 @@ -89525,17 +89525,17 @@ FUN_02029B90: ; 0x02029B90 str r3, [sp, #0x0] cmp r3, #0x4 blt _02029BA2 - bl FUN_02020C2C + bl ErrorHandling _02029BA2: mov r0, #0x1 lsl r0, r0, #0x8 cmp r5, r0 blt _02029BAE - bl FUN_02020C2C + bl ErrorHandling _02029BAE: cmp r4, #0x40 blt _02029BB6 - bl FUN_02020C2C + bl ErrorHandling _02029BB6: cmp r5, #0x0 beq _02029BFE @@ -89646,16 +89646,16 @@ FUN_02029C60: ; 0x02029C60 add r2, r0, #0x0 add r0, r4, #0x0 mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 pop {r4, pc} thumb_func_start FUN_02029C74 FUN_02029C74: ; 0x02029C74 - ldr r3, _02029C7C ; =FUN_020CE3E0 + ldr r3, _02029C7C ; =MI_CpuCopy8 mov r2, #0x18 bx r3 nop -_02029C7C: .word FUN_020CE3E0 +_02029C7C: .word MI_CpuCopy8 thumb_func_start FUN_02029C80 FUN_02029C80: ; 0x02029C80 @@ -89663,7 +89663,7 @@ FUN_02029C80: ; 0x02029C80 mov r1, #0x15 bx r3 nop -_02029C88: .word FUN_02022610 + 1 +_02029C88: .word FUN_02022610 thumb_func_start FUN_02029C8C FUN_02029C8C: ; 0x02029C8C @@ -89672,7 +89672,7 @@ FUN_02029C8C: ; 0x02029C8C add r5, r0, #0x0 cmp r4, #0xc blt _02029C9A - bl FUN_02020C2C + bl ErrorHandling _02029C9A: mov r0, #0x18 mul r0, r4 @@ -89688,7 +89688,7 @@ FUN_02029CA4: ; 0x02029CA4 add r4, r1, #0x0 cmp r6, #0xc blt _02029CB4 - bl FUN_02020C2C + bl ErrorHandling _02029CB4: add r0, r5, #0x0 add r1, r6, #0x0 @@ -89706,7 +89706,7 @@ FUN_02029CC8: ; 0x02029CC8 add r5, r0, #0x0 cmp r4, #0x8 blt _02029CD6 - bl FUN_02020C2C + bl ErrorHandling _02029CD6: lsl r0, r4, #0x1 add r0, r4, r0 @@ -90033,7 +90033,7 @@ FUN_02029ECC: ; 0x02029ECC mov r0, #0x0 add r1, r4, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r0, #0x0 str r0, [r4, #0x0] pop {r4, pc} @@ -90056,7 +90056,7 @@ FUN_02029EF8: ; 0x02029EF8 mov r1, #0x16 bx r3 nop -_02029F00: .word FUN_02022610 + 1 +_02029F00: .word FUN_02022610 thumb_func_start FUN_02029F04 FUN_02029F04: ; 0x02029F04 @@ -90157,11 +90157,11 @@ FUN_02029F9C: ; 0x02029F9C add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0xfb - ldr r3, _02029FAC ; =FUN_020CE28C + ldr r3, _02029FAC ; =MIi_CpuCopyFast lsl r2, r2, #0x2 bx r3 nop -_02029FAC: .word FUN_020CE28C +_02029FAC: .word MIi_CpuCopyFast thumb_func_start FUN_02029FB0 FUN_02029FB0: ; 0x02029FB0 @@ -90172,14 +90172,14 @@ FUN_02029FB0: ; 0x02029FB0 thumb_func_start FUN_02029FB8 FUN_02029FB8: ; 0x02029FB8 - ldr r3, _02029FC4 ; =FUN_020CE1FC + ldr r3, _02029FC4 ; =MIi_CpuClear32 mov r2, #0x53 add r1, r0, #0x0 mov r0, #0x0 lsl r2, r2, #0x2 bx r3 .balign 4 -_02029FC4: .word FUN_020CE1FC +_02029FC4: .word MIi_CpuClear32 thumb_func_start FUN_02029FC8 FUN_02029FC8: ; 0x02029FC8 @@ -90187,7 +90187,7 @@ FUN_02029FC8: ; 0x02029FC8 mov r1, #0x14 bx r3 nop -_02029FD0: .word FUN_02022610 + 1 +_02029FD0: .word FUN_02022610 thumb_func_start FUN_02029FD4 FUN_02029FD4: ; 0x02029FD4 @@ -90207,7 +90207,7 @@ _02029FE0: ldrh r0, [r0, #0x0] pop {r3, pc} _02029FF0: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} @@ -90232,7 +90232,7 @@ _0202A008: strh r2, [r0, #0x0] b _0202A01E _0202A01A: - bl FUN_02020C2C + bl ErrorHandling _0202A01E: add r0, r5, #0x0 add r1, r4, #0x0 @@ -90266,7 +90266,7 @@ _0202A04E: ldr r0, _0202A06C ; =0x0000270F pop {r3, pc} _0202A052: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop @@ -90419,7 +90419,7 @@ FUN_0202A170: ; 0x0202A170 add r5, r0, #0x0 cmp r4, #0x26 blt _0202A17E - bl FUN_02020C2C + bl ErrorHandling _0202A17E: add r0, r5, #0x0 mov r1, #0x0 @@ -90452,7 +90452,7 @@ FUN_0202A1B8: ; 0x0202A1B8 mov r1, #0x0 bx r3 nop -_0202A1C0: .word FUN_0202A150 + 1 +_0202A1C0: .word FUN_0202A150 thumb_func_start FUN_0202A1C4 FUN_0202A1C4: ; 0x0202A1C4 @@ -90477,12 +90477,12 @@ FUN_0202A1E0: ; 0x0202A1E0 thumb_func_start FUN_0202A1E4 FUN_0202A1E4: ; 0x0202A1E4 - ldr r3, _0202A1EC ; =FUN_020CE34C + ldr r3, _0202A1EC ; =MI_CpuFill8 mov r1, #0x0 mov r2, #0x3c bx r3 .balign 4 -_0202A1EC: .word FUN_020CE34C +_0202A1EC: .word MI_CpuFill8 thumb_func_start FUN_0202A1F0 FUN_0202A1F0: ; 0x0202A1F0 @@ -90491,7 +90491,7 @@ FUN_0202A1F0: ; 0x0202A1F0 mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x1 strb r0, [r4, #0x3] pop {r4, pc} @@ -90519,12 +90519,12 @@ FUN_0202A204: ; 0x0202A204 thumb_func_start FUN_0202A230 FUN_0202A230: ; 0x0202A230 - ldr r3, _0202A238 ; =FUN_020CE34C + ldr r3, _0202A238 ; =MI_CpuFill8 mov r1, #0x0 ldr r2, _0202A23C ; =0x00000B3C bx r3 .balign 4 -_0202A238: .word FUN_020CE34C +_0202A238: .word MI_CpuFill8 _0202A23C: .word 0x00000B3C thumb_func_start FUN_0202A240 @@ -90571,14 +90571,14 @@ _0202A280: add r1, r2, #0x0 add r0, #0x8 mov r2, #0x4 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x0 pop {r3, pc} _0202A28E: add r1, r2, #0x0 add r0, #0x2c mov r2, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x0 pop {r3, pc} _0202A29C: @@ -90590,7 +90590,7 @@ _0202A2A4: add r1, r2, #0x0 add r0, #0xc mov r2, #0x1c - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x0 pop {r3, pc} _0202A2B2: @@ -90661,14 +90661,14 @@ _0202A318: add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0x4 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r4, pc} _0202A326: add r3, #0x2c add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r4, pc} _0202A334: ldrb r4, [r3, #0x0] @@ -90685,7 +90685,7 @@ _0202A346: add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0x1c - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r4, pc} _0202A354: ldr r0, [r2, #0x0] @@ -90881,14 +90881,14 @@ FUN_0202A474: ; 0x0202A474 add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0xa8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3, pc} _0202A48A: add r3, #0x18 add r0, r2, #0x0 add r1, r3, #0x0 mov r2, #0xa8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3, pc} thumb_func_start FUN_0202A498 @@ -90899,13 +90899,13 @@ FUN_0202A498: ; 0x0202A498 add r1, r2, #0x0 add r0, #0xc0 mov r2, #0xa8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3, pc} _0202A4AA: add r1, r2, #0x0 add r0, #0x18 mov r2, #0xa8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3, pc} .balign 4 @@ -90954,7 +90954,7 @@ _0202A502: add r0, #0x1e sub r0, r0, r1 mov r1, #0x1e - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 _0202A510: @@ -90978,7 +90978,7 @@ FUN_0202A524: ; 0x0202A524 ldrh r0, [r0, #0x16] mov r1, #0xfa lsl r1, r1, #0x2 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 pop {r3, pc} @@ -91175,11 +91175,11 @@ FUN_0202A670: ; 0x0202A670 add r0, r4, #0x4 mov r1, #0x0 mov r2, #0xfa - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 pop {r4, pc} .balign 4 @@ -91311,7 +91311,7 @@ FUN_0202A754: ; 0x0202A754 ldr r2, _0202A77C ; =0x0000063C add r1, r5, r1 add r6, r3, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _0202A780 ; =0x00000101 strb r4, [r5, r0] sub r0, r0, #0x1 @@ -91384,30 +91384,30 @@ _0202A7EE: add r0, #0xa8 add r1, #0x8 mov r2, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _0202A7FC: add r0, r5, r4 add r1, r6, #0x0 add r0, #0xca add r1, #0x18 mov r2, #0x8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r5, r4 add r1, r6, #0x0 add r0, #0xd2 add r1, #0x20 mov r2, #0x8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r5, r4 add r6, #0x28 add r0, #0xda add r1, r6, #0x0 mov r2, #0x8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r5, r4 add r1, r7, #0x0 mov r2, #0xa8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3-r7, pc} nop _0202A834: .word 0x00002710 @@ -91424,7 +91424,7 @@ FUN_0202A838: ; 0x0202A838 add r1, r5, r1 lsl r2, r2, #0x2 add r6, r3, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _0202A860 ; =0x00000103 strb r4, [r5, r0] sub r0, r0, #0x1 @@ -91463,7 +91463,7 @@ FUN_0202A878: ; 0x0202A878 add r0, r5, r0 add r1, r4, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r4, #0x0 pop {r3-r5, pc} @@ -91499,7 +91499,7 @@ FUN_0202A8CC: ; 0x0202A8CC mov r1, #0x17 bx r3 nop -_0202A8D4: .word FUN_02022610 + 1 +_0202A8D4: .word FUN_02022610 thumb_func_start FUN_0202A8D8 FUN_0202A8D8: ; 0x0202A8D8 @@ -91549,7 +91549,7 @@ FUN_0202A918: ; 0x0202A918 mov r1, #0x18 bx r3 nop -_0202A920: .word FUN_02022610 + 1 +_0202A920: .word FUN_02022610 thumb_func_start FUN_0202A924 FUN_0202A924: ; 0x0202A924 @@ -91625,7 +91625,7 @@ _0202A9A0: ldr r0, [r0, #0x4] pop {r3, pc} _0202A9A4: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} @@ -91640,7 +91640,7 @@ FUN_0202A9B0: ; 0x0202A9B0 mov r1, #0x19 bx r3 nop -_0202A9B8: .word FUN_02022610 + 1 +_0202A9B8: .word FUN_02022610 thumb_func_start FUN_0202A9BC FUN_0202A9BC: ; 0x0202A9BC @@ -91740,7 +91740,7 @@ FUN_0202AA40: ; 0x0202AA40 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AA4E - bl FUN_02020C2C + bl ErrorHandling _0202AA4E: mov r0, #0x43 add r1, r5, r4 @@ -91756,7 +91756,7 @@ FUN_0202AA58: ; 0x0202AA58 add r6, r2, #0x0 cmp r4, #0x3 blo _0202AA68 - bl FUN_02020C2C + bl ErrorHandling _0202AA68: mov r0, #0x43 add r1, r5, r4 @@ -91772,7 +91772,7 @@ FUN_0202AA74: ; 0x0202AA74 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AA82 - bl FUN_02020C2C + bl ErrorHandling _0202AA82: mov r0, #0x14 mul r0, r4 @@ -91801,7 +91801,7 @@ FUN_0202AAA0: ; 0x0202AAA0 add r5, r0, #0x0 cmp r4, #0x3 blo _0202AAAE - bl FUN_02020C2C + bl ErrorHandling _0202AAAE: mov r0, #0x14 add r5, #0xd0 @@ -91939,7 +91939,7 @@ FUN_0202AB68: ; 0x0202AB68 add r5, r0, #0x0 cmp r4, #0x2 bls _0202AB76 - bl FUN_02020C2C + bl ErrorHandling _0202AB76: ldr r0, _0202AB7C ; =0x00000112 strb r4, [r5, r0] @@ -91975,7 +91975,7 @@ FUN_0202ABA0: ; 0x0202ABA0 add r4, r0, #0x0 cmp r5, #0x10 blo _0202ABB2 - bl FUN_02020C2C + bl ErrorHandling _0202ABB2: ldrh r0, [r4, #0xc] strh r0, [r4, #0xe] @@ -91989,7 +91989,7 @@ FUN_0202ABBC: ; 0x0202ABBC mov r1, #0x1a bx r3 nop -_0202ABC4: .word FUN_02022610 + 1 +_0202ABC4: .word FUN_02022610 thumb_func_start FUN_0202ABC8 FUN_0202ABC8: ; 0x0202ABC8 @@ -91998,13 +91998,13 @@ FUN_0202ABC8: ; 0x0202ABC8 thumb_func_start FUN_0202ABCC FUN_0202ABCC: ; 0x0202ABCC - ldr r3, _0202ABD8 ; =FUN_020CE240 + ldr r3, _0202ABD8 ; =MIi_CpuClearFast add r1, r0, #0x0 mov r0, #0x0 mov r2, #0xf4 bx r3 nop -_0202ABD8: .word FUN_020CE240 +_0202ABD8: .word MIi_CpuClearFast thumb_func_start FUN_0202ABDC FUN_0202ABDC: ; 0x0202ABDC @@ -92022,22 +92022,22 @@ FUN_0202ABE4: ; 0x0202ABE4 thumb_func_start FUN_0202ABEC FUN_0202ABEC: ; 0x0202ABEC - ldr r3, _0202ABF4 ; =FUN_020CE28C + ldr r3, _0202ABF4 ; =MIi_CpuCopyFast mov r2, #0xec bx r3 nop -_0202ABF4: .word FUN_020CE28C +_0202ABF4: .word MIi_CpuCopyFast thumb_func_start FUN_0202ABF8 FUN_0202ABF8: ; 0x0202ABF8 - ldr r3, _0202AC04 ; =FUN_020CE28C + ldr r3, _0202AC04 ; =MIi_CpuCopyFast add r2, r0, #0x0 add r0, r1, #0x0 add r1, r2, #0x0 mov r2, #0xec bx r3 .balign 4 -_0202AC04: .word FUN_020CE28C +_0202AC04: .word MIi_CpuCopyFast thumb_func_start FUN_0202AC08 FUN_0202AC08: ; 0x0202AC08 @@ -92079,7 +92079,7 @@ FUN_0202AC2C: ; 0x0202AC2C add r5, r0, #0x0 cmp r4, #0x8 blt _0202AC3A - bl FUN_02020C2C + bl ErrorHandling _0202AC3A: mov r0, #0x1 lsl r0, r0, #0x8 @@ -92110,7 +92110,7 @@ FUN_0202AC64: ; 0x0202AC64 add r5, r0, #0x0 cmp r4, #0x3 blt _0202AC72 - bl FUN_02020C2C + bl ErrorHandling _0202AC72: lsl r0, r4, #0x2 add r1, r5, r0 @@ -92161,7 +92161,7 @@ _0202ACB4: ldr r0, [sp, #0x0] add r1, r1, r6 sub r2, #0x28 - blx FUN_020CE3E0 + blx MI_CpuCopy8 lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x1 @@ -92231,7 +92231,7 @@ _0202AD3C: mul r1, r2 add r0, r6, #0x0 add r1, r3, r1 - blx FUN_020CE3E0 + blx MI_CpuCopy8 lsl r0, r4, #0x2 add r1, r5, r0 mov r0, #0x12 @@ -92271,7 +92271,7 @@ FUN_0202AD94: ; 0x0202AD94 sub r0, r4, #0x1 cmp r0, #0x8 blt _0202ADA4 - bl FUN_02020C2C + bl ErrorHandling _0202ADA4: sub r4, r4, #0x1 lsl r0, r4, #0x2 @@ -92299,7 +92299,7 @@ FUN_0202ADC8: ; 0x0202ADC8 add r5, r0, #0x0 cmp r4, #0x3 blt _0202ADD6 - bl FUN_02020C2C + bl ErrorHandling _0202ADD6: lsl r0, r4, #0x2 add r1, r5, r0 @@ -92359,7 +92359,7 @@ FUN_0202AE28: ; 0x0202AE28 add r4, r0, #0x0 cmp r5, #0x8 blt _0202AE36 - bl FUN_02020C2C + bl ErrorHandling _0202AE36: lsl r0, r5, #0x2 add r1, r4, r0 @@ -92381,7 +92381,7 @@ FUN_0202AE4C: ; 0x0202AE4C add r4, r0, #0x0 cmp r5, #0x3 blt _0202AE5A - bl FUN_02020C2C + bl ErrorHandling _0202AE5A: lsl r0, r5, #0x2 add r1, r4, r0 @@ -92485,7 +92485,7 @@ FUN_0202AEF4: ; 0x0202AEF4 lsl r0, r0, #0xa cmp r4, r0 blt _0202AF06 - bl FUN_02020C2C + bl ErrorHandling _0202AF06: mov r0, #0x1 mov r1, #0x7 @@ -92513,7 +92513,7 @@ FUN_0202AF24: ; 0x0202AF24 lsl r0, r0, #0xa cmp r4, r0 blt _0202AF36 - bl FUN_02020C2C + bl ErrorHandling _0202AF36: asr r0, r4, #0x2 lsr r0, r0, #0x1d @@ -92535,7 +92535,7 @@ FUN_0202AF50: ; 0x0202AF50 ldr r1, _0202AF5C ; =0x000007FF bx r3 nop -_0202AF58: .word FUN_0202AEF4 + 1 +_0202AF58: .word FUN_0202AEF4 _0202AF5C: .word 0x000007FF thumb_func_start FUN_0202AF60 @@ -92544,7 +92544,7 @@ FUN_0202AF60: ; 0x0202AF60 ldr r1, _0202AF6C ; =0x000007FF bx r3 nop -_0202AF68: .word FUN_0202AF24 + 1 +_0202AF68: .word FUN_0202AF24 _0202AF6C: .word 0x000007FF thumb_func_start FUN_0202AF70 @@ -92608,7 +92608,7 @@ _0202AFCA: sub r0, r4, #0x1 cmp r0, #0x8 blt _0202AFD4 - bl FUN_02020C2C + bl ErrorHandling _0202AFD4: ldr r0, _0202AFF8 ; =0x021C59D4 sub r1, r4, #0x1 @@ -92660,7 +92660,7 @@ FUN_0202B020: ; 0x0202B020 bx r3 nop _0202B02C: .word 0x021C59D4 -_0202B030: .word FUN_0202AD94 + 1 +_0202B030: .word FUN_0202AD94 thumb_func_start FUN_0202B034 FUN_0202B034: ; 0x0202B034 @@ -92671,13 +92671,13 @@ _0202B038: .word 0x00002AB0 thumb_func_start FUN_0202B03C FUN_0202B03C: ; 0x0202B03C - ldr r3, _0202B048 ; =FUN_020CE1FC + ldr r3, _0202B048 ; =MIi_CpuClear32 add r1, r0, #0x0 mov r0, #0x0 ldr r2, _0202B04C ; =0x00002AB0 bx r3 nop -_0202B048: .word FUN_020CE1FC +_0202B048: .word MIi_CpuClear32 _0202B04C: .word 0x00002AB0 thumb_func_start FUN_0202B050 @@ -92689,14 +92689,14 @@ FUN_0202B050: ; 0x0202B050 str r2, [sp, #0x8] cmp r0, #0x0 bne _0202B062 - bl FUN_02020C2C + bl ErrorHandling _0202B062: ldr r1, _0202B1E0 ; =0x00002AA8 ldr r0, [sp, #0x0] ldr r0, [r0, r1] cmp r0, #0x1e blo _0202B070 - bl FUN_02020C2C + bl ErrorHandling _0202B070: ldr r1, _0202B1E4 ; =0x00002AAC ldr r0, [sp, #0x0] @@ -92727,7 +92727,7 @@ _0202B07E: ldr r1, [sp, #0x14] mov r0, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE1C8 + blx MIi_CpuClear16 ldr r0, [sp, #0x10] mov r7, #0x0 cmp r0, #0x0 @@ -92880,13 +92880,13 @@ FUN_0202B1F0: ; 0x0202B1F0 push {r4, lr} add r4, r0, #0x0 bne _0202B1FA - bl FUN_02020C2C + bl ErrorHandling _0202B1FA: ldr r0, _0202B214 ; =0x00002AA8 ldr r0, [r4, r0] cmp r0, #0x1e blo _0202B206 - bl FUN_02020C2C + bl ErrorHandling _0202B206: ldr r0, _0202B218 ; =0x00002AAC ldr r0, [r4, r0] @@ -92906,17 +92906,17 @@ FUN_0202B21C: ; 0x0202B21C add r4, r1, #0x0 cmp r5, #0x0 bne _0202B22A - bl FUN_02020C2C + bl ErrorHandling _0202B22A: ldr r0, _0202B248 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B236 - bl FUN_02020C2C + bl ErrorHandling _0202B236: cmp r4, #0x1e blt _0202B23E - bl FUN_02020C2C + bl ErrorHandling _0202B23E: ldr r0, _0202B24C ; =0x00002AAC ldr r0, [r5, r0] @@ -92933,17 +92933,17 @@ FUN_0202B250: ; 0x0202B250 add r4, r1, #0x0 cmp r5, #0x0 bne _0202B25E - bl FUN_02020C2C + bl ErrorHandling _0202B25E: ldr r0, _0202B298 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B26A - bl FUN_02020C2C + bl ErrorHandling _0202B26A: cmp r4, #0x1e blt _0202B272 - bl FUN_02020C2C + bl ErrorHandling _0202B272: ldr r0, _0202B298 ; =0x00002AA8 ldr r0, [r5, r0] @@ -92979,17 +92979,17 @@ FUN_0202B29C: ; 0x0202B29C add r4, r3, #0x0 cmp r5, #0x0 bne _0202B2AE - bl FUN_02020C2C + bl ErrorHandling _0202B2AE: ldr r0, _0202B318 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B2BA - bl FUN_02020C2C + bl ErrorHandling _0202B2BA: cmp r6, #0x1e blt _0202B2C2 - bl FUN_02020C2C + bl ErrorHandling _0202B2C2: ldr r0, _0202B318 ; =0x00002AA8 ldr r0, [r5, r0] @@ -93044,17 +93044,17 @@ FUN_0202B31C: ; 0x0202B31C add r4, r2, #0x0 cmp r5, #0x0 bne _0202B32C - bl FUN_02020C2C + bl ErrorHandling _0202B32C: ldr r0, _0202B370 ; =0x00002AA8 ldr r0, [r5, r0] cmp r0, #0x1e blo _0202B338 - bl FUN_02020C2C + bl ErrorHandling _0202B338: cmp r6, #0x1e blt _0202B340 - bl FUN_02020C2C + bl ErrorHandling _0202B340: ldr r0, _0202B370 ; =0x00002AA8 ldr r0, [r5, r0] @@ -93092,13 +93092,13 @@ _0202B378: .word 0x00000B88 thumb_func_start FUN_0202B37C FUN_0202B37C: ; 0x0202B37C - ldr r3, _0202B388 ; =FUN_020CE240 + ldr r3, _0202B388 ; =MIi_CpuClearFast add r1, r0, #0x0 mov r0, #0x0 ldr r2, _0202B38C ; =0x00000B88 bx r3 nop -_0202B388: .word FUN_020CE240 +_0202B388: .word MIi_CpuClearFast _0202B38C: .word 0x00000B88 thumb_func_start FUN_0202B390 @@ -93109,18 +93109,18 @@ FUN_0202B390: ; 0x0202B390 mov r0, #0x0 add r1, #0xc mov r2, #0xc0 - blx FUN_020CE240 + blx MIi_CpuClearFast add r1, r4, #0x0 mov r0, #0x0 add r1, #0xcc mov r2, #0xc0 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r1, #0x63 lsl r1, r1, #0x2 mov r0, #0x0 add r1, r4, r1 mov r2, #0xc0 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 bl FUN_0202B3F8 pop {r4, pc} @@ -93139,7 +93139,7 @@ FUN_0202B3C4: ; 0x0202B3C4 _0202B3D4: add r0, r2, #0x0 mov r1, #0xf - blx FUN_020EBC80 + blx _s32_div_f mov r0, #0xf sub r1, r0, r1 str r1, [r4, #0x4] @@ -93192,7 +93192,7 @@ _0202B422: add r3, r3, #0x1 cmp r3, #0x4 blt _0202B418 - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} .balign 4 @@ -93271,7 +93271,7 @@ FUN_0202B470: ; 0x0202B470 add r0, r6, #0x0 add r1, r5, #0x0 mov r2, #0x28 - blx FUN_020CE28C + blx MIi_CpuCopyFast add sp, #0x10 pop {r4-r6, pc} @@ -93404,7 +93404,7 @@ _0202B574: add r4, #0xcc b _0202B57E _0202B57A: - bl FUN_02020C2C + bl ErrorHandling _0202B57E: add r0, r4, #0x0 pop {r4, pc} @@ -93442,7 +93442,7 @@ _0202B5B0: add r4, r0, r1 b _0202B5BA _0202B5B6: - bl FUN_02020C2C + bl ErrorHandling _0202B5BA: add r0, r4, #0x0 pop {r4, pc} @@ -93650,7 +93650,7 @@ FUN_0202B710: ; 0x0202B710 add r0, sp, #0x8 mov r1, #0x0 mov r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 str r0, [sp, #0x0] add r0, sp, #0x8 @@ -93752,7 +93752,7 @@ FUN_0202B7C8: ; 0x0202B7C8 bl FUN_0202B820 cmp r0, #0x1 beq _0202B7DE - bl FUN_02020C2C + bl ErrorHandling _0202B7DE: add r0, r5, #0x0 add r1, r6, #0x0 @@ -93775,7 +93775,7 @@ FUN_0202B7F4: ; 0x0202B7F4 bl FUN_0202B820 cmp r0, #0x0 beq _0202B80A - bl FUN_02020C2C + bl ErrorHandling _0202B80A: add r0, r5, #0x0 add r1, r6, #0x0 @@ -93874,7 +93874,7 @@ FUN_0202B888: ; 0x0202B888 mov r1, #0x8 bx r3 nop -_0202B898: .word FUN_0200232C + 1 +_0202B898: .word FUN_0200232C thumb_func_start FUN_0202B89C FUN_0202B89C: ; 0x0202B89C @@ -93903,7 +93903,7 @@ FUN_0202B8B8: ; 0x0202B8B8 mov r1, #0x0 lsl r2, r2, #0x4 add r6, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r7, #0x0 _0202B8C8: mov r4, #0x0 @@ -93927,7 +93927,7 @@ FUN_0202B8E4: ; 0x0202B8E4 mov r1, #0x1c bx r3 nop -_0202B8EC: .word FUN_02022610 + 1 +_0202B8EC: .word FUN_02022610 thumb_func_start FUN_0202B8F0 FUN_0202B8F0: ; 0x0202B8F0 @@ -93935,7 +93935,7 @@ FUN_0202B8F0: ; 0x0202B8F0 cmp r2, #0x6 blo _0202B8FE blo _0202B930 - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} _0202B8FE: mov r3, #0x90 @@ -94079,7 +94079,7 @@ FUN_0202B9EC: ; 0x0202B9EC mov r1, #0x0 lsl r2, r2, #0x2 str r0, [sp, #0x4] - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_0202881C mov r1, #0x1 @@ -94196,7 +94196,7 @@ FUN_0202BAD4: ; 0x0202BAD4 mov r1, #0x0 mov r2, #0xe0 add r4, r3, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, sp, #0x10 ldrb r0, [r0, #0x10] cmp r0, #0x0 @@ -94208,7 +94208,7 @@ FUN_0202BAD4: ; 0x0202BAD4 add r0, r5, r0 add r1, #0x50 str r0, [sp, #0x8] - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r1, sp, #0x10 ldrb r3, [r1, #0x18] mov r0, #0x0 @@ -94269,7 +94269,7 @@ _0202BB64: add r1, r6, #0x0 add r1, #0x50 str r0, [sp, #0x8] - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, sp, #0x10 ldrb r2, [r0, #0x18] mov r3, #0x0 @@ -94552,7 +94552,7 @@ FUN_0202BD6C: ; 0x0202BD6C mov r1, #0x0 mov r2, #0x4c add r7, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_0202881C mov r1, #0x1 @@ -94610,7 +94610,7 @@ FUN_0202BDF0: ; 0x0202BDF0 mov r1, #0x0 mov r2, #0x4c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [sp, #0x0] mov r1, #0x90 mul r1, r0 @@ -94679,7 +94679,7 @@ _0202BE7E: add r0, r6, #0x0 mov r1, #0x0 mov r2, #0x4c - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r6, #0x0 bl FUN_02016A18 pop {r4-r6, pc} @@ -94698,7 +94698,7 @@ FUN_0202BEA0: ; 0x0202BEA0 ldr r2, _0202BED8 ; =0x00000688 mov r0, #0x0 add r1, r5, #0x0 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r4, #0x0 mov r6, #0xab add r7, r4, #0x0 @@ -94711,7 +94711,7 @@ _0202BEB4: bl FUN_020671BC cmp r0, #0x0 beq _0202BECC - bl FUN_02020C2C + bl ErrorHandling _0202BECC: add r4, r4, #0x1 add r5, #0xec @@ -94728,7 +94728,7 @@ FUN_0202BEDC: ; 0x0202BEDC ldr r2, _0202BF14 ; =0x00000588 mov r0, #0x0 add r1, r5, #0x0 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r4, #0x0 mov r6, #0xab add r7, r4, #0x0 @@ -94741,7 +94741,7 @@ _0202BEF0: bl FUN_020671BC cmp r0, #0x0 beq _0202BF08 - bl FUN_02020C2C + bl ErrorHandling _0202BF08: add r4, r4, #0x1 add r5, #0xec @@ -94817,7 +94817,7 @@ FUN_0202BF7C: ; 0x0202BF7C ldr r3, _0202BF8C ; =FUN_02069A64 bx r3 nop -_0202BF8C: .word FUN_02069A64 + 1 +_0202BF8C: .word FUN_02069A64 thumb_func_start FUN_0202BF90 FUN_0202BF90: ; 0x0202BF90 @@ -94837,14 +94837,14 @@ FUN_0202BF90: ; 0x0202BF90 str r0, [r3, r2] add r0, r2, #0x4 str r1, [r3, r0] - blx FUN_020CD510 + blx OS_GetOwnerRtcOffset ldr r2, _0202BFD4 ; =0x00000678 str r0, [r5, r2] add r0, r2, #0x4 add r2, #0x8 str r1, [r5, r0] add r0, r5, r2 - blx FUN_020CD5A0 + blx OS_GetMacAddress pop {r4-r6, pc} nop _0202BFCC: .word 0x00000588 @@ -94859,7 +94859,7 @@ FUN_0202BFD8: ; 0x0202BFD8 add r4, r2, #0x0 cmp r5, #0x6 blt _0202BFE8 - bl FUN_02020C2C + bl ErrorHandling _0202BFE8: mov r0, #0xec mul r0, r5 @@ -94935,7 +94935,7 @@ FUN_0202C060: ; 0x0202C060 sub sp, #0x8 add r4, r0, #0x0 add r0, sp, #0x0 - blx FUN_020CD5A0 + blx OS_GetMacAddress mov r0, #0x1a mov r3, #0x0 add r5, sp, #0x0 @@ -94963,7 +94963,7 @@ _0202C084: FUN_0202C094: ; 0x0202C094 push {r4, lr} add r4, r0, #0x0 - blx FUN_020CD510 + blx OS_GetOwnerRtcOffset ldr r2, _0202C0B4 ; =0x00000678 ldr r3, [r4, r2] add r2, r2, #0x4 @@ -95155,7 +95155,7 @@ _0202C1EC: pop {r3, pc} .balign 4 _0202C1F0: .word 0x021C59D8 -_0202C1F4: .word FUN_0202C1F8 + 1 +_0202C1F4: .word FUN_0202C1F8 thumb_func_start FUN_0202C1F8 FUN_0202C1F8: ; 0x0202C1F8 @@ -95195,14 +95195,14 @@ _0202C230: lsl r0, r0, #0x2 add r0, r4, r0 mov r1, #0x4 - blx FUN_020CC124 + blx DC_InvalidateRange mov r0, #0x66 mov r1, #0x0 lsl r0, r0, #0x2 str r1, [r4, r0] add r0, r4, r0 mov r1, #0x4 - blx FUN_020CC15C + blx DC_FlushRange ldr r0, _0202C280 ; =FUN_0202C288 blx FUN_020D9554 cmp r0, #0x2 @@ -95224,7 +95224,7 @@ _0202C264: .balign 4 _0202C278: .word 0x021C59D8 _0202C27C: .word 0x00001310 -_0202C280: .word FUN_0202C288 + 1 +_0202C280: .word FUN_0202C288 _0202C284: .word 0x0000132C thumb_func_start FUN_0202C288 @@ -95409,7 +95409,7 @@ _0202C3F0: .word 0x021C59D8 _0202C3F4: .word 0x00001310 _0202C3F8: .word 0x00001304 _0202C3FC: .word 0x00001020 -_0202C400: .word FUN_0202C404 + 1 +_0202C400: .word FUN_0202C404 thumb_func_start FUN_0202C404 FUN_0202C404: ; 0x0202C404 @@ -95476,7 +95476,7 @@ _0202C47A: mov r0, #0x1 pop {r3, pc} nop -_0202C480: .word FUN_0202C484 + 1 +_0202C480: .word FUN_0202C484 thumb_func_start FUN_0202C484 FUN_0202C484: ; 0x0202C484 @@ -95509,7 +95509,7 @@ _0202C4B8: mov r0, #0x1 pop {r3, pc} .balign 4 -_0202C4BC: .word FUN_0202C4C0 + 1 +_0202C4BC: .word FUN_0202C4C0 thumb_func_start FUN_0202C4C0 FUN_0202C4C0: ; 0x0202C4C0 @@ -95744,7 +95744,7 @@ _0202C684: .word 0x021C59D8 _0202C688: .word 0x0000130C _0202C68C: .word 0x000012E4 _0202C690: .word 0x000012E6 -_0202C694: .word FUN_0202C698 + 1 +_0202C694: .word FUN_0202C698 thumb_func_start FUN_0202C698 FUN_0202C698: ; 0x0202C698 @@ -95784,7 +95784,7 @@ _0202C6D0: sub r0, #0xf0 add r0, r2, r0 mov r1, #0xc0 - blx FUN_020CC124 + blx DC_InvalidateRange ldr r0, _0202C760 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202C768 ; =0x00001320 @@ -95884,7 +95884,7 @@ _0202C7A8: mov r0, #0x1 pop {r3, pc} .balign 4 -_0202C7AC: .word FUN_0202C7B0 + 1 +_0202C7AC: .word FUN_0202C7B0 thumb_func_start FUN_0202C7B0 FUN_0202C7B0: ; 0x0202C7B0 @@ -95935,7 +95935,7 @@ _0202C800: ldr r0, _0202C84C ; =0x02105D54 add r1, #0x1 mov r2, #0x3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 bl FUN_02033534 add r1, sp, #0x4 strb r0, [r1, #0x0] @@ -95963,7 +95963,7 @@ _0202C83E: _0202C844: .word 0x021C59D8 _0202C848: .word 0x00001310 _0202C84C: .word 0x02105D54 -_0202C850: .word FUN_0202C858 + 1 +_0202C850: .word FUN_0202C858 _0202C854: .word 0x00001220 thumb_func_start FUN_0202C858 @@ -96088,7 +96088,7 @@ _0202C942: _0202C948: .word 0x021C59D8 _0202C94C: .word 0x00001304 _0202C950: .word 0x00001020 -_0202C954: .word FUN_0202C958 + 1 +_0202C954: .word FUN_0202C958 thumb_func_start FUN_0202C958 FUN_0202C958: ; 0x0202C958 @@ -96159,7 +96159,7 @@ _0202C9D6: mov r0, #0x1 pop {r3, pc} nop -_0202C9DC: .word FUN_0202C9E0 + 1 +_0202C9DC: .word FUN_0202C9E0 thumb_func_start FUN_0202C9E0 FUN_0202C9E0: ; 0x0202C9E0 @@ -96198,7 +96198,7 @@ _0202CA24: mov r0, #0x1 pop {r3, pc} .balign 4 -_0202CA28: .word FUN_0202CA2C + 1 +_0202CA28: .word FUN_0202CA2C thumb_func_start FUN_0202CA2C FUN_0202CA2C: ; 0x0202CA2C @@ -96230,7 +96230,7 @@ _0202CA5E: mov r0, #0x1 pop {r3, pc} nop -_0202CA64: .word FUN_0202CA68 + 1 +_0202CA64: .word FUN_0202CA68 thumb_func_start FUN_0202CA68 FUN_0202CA68: ; 0x0202CA68 @@ -96264,7 +96264,7 @@ FUN_0202CA88: ; 0x0202CA88 add r0, r1, r0 ldr r1, [r1, r2] add r7, r3, #0x0 - blx FUN_020CC15C + blx DC_FlushRange ldr r0, _0202CAD8 ; =0x0000FFFF add r1, r7, #0x0 str r0, [sp, #0x0] @@ -96290,7 +96290,7 @@ _0202CACA: _0202CAD0: .word 0x021C59D8 _0202CAD4: .word 0x00001304 _0202CAD8: .word 0x0000FFFF -_0202CADC: .word FUN_0202CAE0 + 1 +_0202CADC: .word FUN_0202CAE0 thumb_func_start FUN_0202CAE0 FUN_0202CAE0: ; 0x0202CAE0 @@ -96461,7 +96461,7 @@ FUN_0202CBFC: ; 0x0202CBFC push {r3-r5, lr} sub sp, #0x8 add r0, sp, #0x0 - blx FUN_020CD5A0 + blx OS_GetMacAddress ldr r0, _0202CC84 ; =0x027FFC3C ldr r3, [r0, #0x0] add r0, sp, #0x0 @@ -96585,7 +96585,7 @@ _0202CD00: lsr r0, r0, #0x10 pop {r4, pc} nop -_0202CD10: .word FUN_0202CD14 + 1 +_0202CD10: .word FUN_0202CD14 thumb_func_start FUN_0202CD14 FUN_0202CD14: ; 0x0202CD14 @@ -96877,7 +96877,7 @@ _0202CF34: pop {r3, pc} .balign 4 _0202CF38: .word 0x021C59D8 -_0202CF3C: .word FUN_0202CF40 + 1 +_0202CF3C: .word FUN_0202CF40 thumb_func_start FUN_0202CF40 FUN_0202CF40: ; 0x0202CF40 @@ -96907,7 +96907,7 @@ _0202CF76: bl FUN_0202C198 pop {r3, pc} nop -_0202CF80: .word FUN_0202CEF4 + 1 +_0202CF80: .word FUN_0202CEF4 thumb_func_start FUN_0202CF84 FUN_0202CF84: ; 0x0202CF84 @@ -97037,14 +97037,14 @@ _0202D066: ldr r1, _0202D09C ; =0x00001220 add r1, r2, r1 mov r2, #0xc0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _0202D094 ; =0x021C59D8 ldr r1, [r0, #0x4] ldr r0, _0202D09C ; =0x00001220 add r0, r1, r0 mov r1, #0xc0 - blx FUN_020CC15C - blx FUN_020CC180 + blx DC_FlushRange + blx DC_WaitWriteBufferEmpty bl FUN_0202C7E8 pop {r4-r6, pc} _0202D08E: @@ -97078,7 +97078,7 @@ _0202D0C2: .balign 4 _0202D0C4: .word 0x021C59D8 _0202D0C8: .word 0x00001318 -_0202D0CC: .word FUN_0202CB08 + 1 +_0202D0CC: .word FUN_0202CB08 thumb_func_start FUN_0202D0D0 FUN_0202D0D0: ; 0x0202D0D0 @@ -97185,7 +97185,7 @@ _0202D194: mov r0, #0x1 pop {r3, pc} .balign 4 -_0202D198: .word FUN_0202CB50 + 1 +_0202D198: .word FUN_0202CB50 thumb_func_start FUN_0202D19C FUN_0202D19C: ; 0x0202D19C @@ -97358,7 +97358,7 @@ _0202D2BE: nop _0202D2C4: .word 0x021C59D8 _0202D2C8: .word 0x00001344 -_0202D2CC: .word FUN_0202D27C + 1 +_0202D2CC: .word FUN_0202D27C thumb_func_start FUN_0202D2D0 FUN_0202D2D0: ; 0x0202D2D0 @@ -97506,7 +97506,7 @@ _0202D3BC: _0202D3CC: cmp r7, #0x0 bne _0202D3D4 - bl FUN_02020C2C + bl ErrorHandling _0202D3D4: add r0, r5, #0x0 add r1, r4, #0x0 @@ -97634,7 +97634,7 @@ FUN_0202D4A8: ; 0x0202D4A8 add r0, r1, #0x0 mov r1, #0xa ldrsh r1, [r2, r1] - blx FUN_020EBC80 + blx _s32_div_f add r0, r1, #0x0 pop {r3, pc} .balign 4 @@ -97886,7 +97886,7 @@ _0202D660: ldr r0, [r5, #0x0] ldr r1, [r4, #0x0] add r2, r3, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _0202D66A: ldrh r0, [r5, #0xc] ldr r1, [r4, #0x0] @@ -97919,7 +97919,7 @@ _0202D69E: ldr r0, _0202D710 ; =0x0000FFFE cmp r7, r0 blt _0202D6A8 - bl FUN_02020C2C + bl ErrorHandling _0202D6A8: ldr r0, [sp, #0x0] bl FUN_0202D9A0 @@ -98060,7 +98060,7 @@ _0202D7A4: add r0, r6, #0x0 mov r1, #0x0 mov r2, #0x10 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [r4, #0x4] ldr r7, [sp, #0x0] cmp r0, #0x0 @@ -98094,7 +98094,7 @@ FUN_0202D7D8: ; 0x0202D7D8 mov r1, #0x0 mov r2, #0x20 add r5, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 lsl r7, r4, #0x4 mov r0, #0xf add r1, r7, #0x0 @@ -98102,7 +98102,7 @@ FUN_0202D7D8: ; 0x0202D7D8 mov r1, #0x0 add r2, r7, #0x0 str r0, [r5, #0x18] - blx FUN_020CE34C + blx MI_CpuFill8 str r4, [r5, #0x1c] str r6, [r5, #0x14] pop {r3-r7, pc} @@ -98116,7 +98116,7 @@ FUN_0202D804: ; 0x0202D804 ldr r0, [r4, #0x18] mov r1, #0x0 lsl r2, r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 str r0, [r4, #0x0] str r0, [r4, #0x4] @@ -98132,7 +98132,7 @@ FUN_0202D824: ; 0x0202D824 ldr r0, [r0, #0x18] bx r3 nop -_0202D82C: .word FUN_02016A18 + 1 +_0202D82C: .word FUN_02016A18 thumb_func_start FUN_0202D830 FUN_0202D830: ; 0x0202D830 @@ -98177,7 +98177,7 @@ _0202D864: bne _0202D864 cmp r4, #0x1a blo _0202D878 - bl FUN_02020C2C + bl ErrorHandling _0202D878: add r0, sp, #0x0 ldrb r0, [r0, r4] @@ -98203,7 +98203,7 @@ _0202D890: bne _0202D890 cmp r4, #0x1a blo _0202D8A4 - bl FUN_02020C2C + bl ErrorHandling _0202D8A4: add r0, sp, #0x0 ldrb r0, [r0, r4] @@ -98308,7 +98308,7 @@ _0202D94C: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202D958 - bl FUN_02020C2C + bl ErrorHandling _0202D958: ldr r0, _0202D99C ; =0x021C59E0 ldr r1, [r0, #0x0] @@ -98367,7 +98367,7 @@ _0202D9B6: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _0202D9C2 - bl FUN_02020C2C + bl ErrorHandling _0202D9C2: ldr r0, _0202DA00 ; =0x021C59E0 ldr r1, [r0, #0x0] @@ -98547,7 +98547,7 @@ FUN_0202DAD0: ; 0x0202DAD0 bx r3 nop _0202DAF0: .word 0x021C59E0 -_0202DAF4: .word FUN_020311D0 + 1 +_0202DAF4: .word FUN_020311D0 thumb_func_start FUN_0202DAF8 FUN_0202DAF8: ; 0x0202DAF8 @@ -98587,7 +98587,7 @@ FUN_0202DB14: ; 0x0202DB14 str r0, [r1, #0x0] mov r1, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 mov r6, #0x0 ldr r7, _0202DBA0 ; =0x021C59E4 add r4, r6, #0x0 @@ -98710,7 +98710,7 @@ FUN_0202DBE0: ; 0x0202DBE0 ldr r0, [r0, #0x0] add r0, #0x64 add r0, r0, r5 - blx FUN_020CD5A0 + blx OS_GetMacAddress add r0, r7, #0x0 mov r1, #0x1 mov r2, #0x0 @@ -98720,7 +98720,7 @@ FUN_0202DBE0: ; 0x0202DBE0 ldr r1, [r1, #0x0] add r1, #0x54 add r1, r1, r5 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r6, #0x0 bl FUN_02029B38 ldr r1, _0202DCD8 ; =0x021C59E4 @@ -98762,7 +98762,7 @@ FUN_0202DBE0: ; 0x0202DBE0 mov r2, #0x20 add r0, #0x8 add r0, r0, r5 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202DCD8 ; =0x021C59E4 ldr r1, [r0, #0x0] ldr r0, [r1, #0x0] @@ -98838,7 +98838,7 @@ FUN_0202DD08: ; 0x0202DD08 add r3, r1, #0x0 mul r3, r2 add r1, r5, r3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r4, #0x62 ldr r2, _0202DD78 ; =0x021C59E4 ldrb r3, [r4, #0x0] @@ -98888,7 +98888,7 @@ FUN_0202DD80: ; 0x0202DD80 add r1, #0x8 add r1, r1, r4 add r2, r3, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _0202DDE0 ; =0x021C59E4 add r1, r5, #0x0 ldr r0, [r0, #0x0] @@ -98966,7 +98966,7 @@ _0202DE0A: ldr r0, [r1, r0] add r6, #0x28 add r1, r6, r5 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r1, _0202DE70 ; =0x021C59E4 mov r0, #0x4 ldr r1, [r1, #0x0] @@ -99499,7 +99499,7 @@ _0202E1EE: ldr r0, [sp, #0x8] cmp r0, #0x0 bge _0202E1F8 - bl FUN_02020C2C + bl ErrorHandling _0202E1F8: ldr r0, _0202E254 ; =0x021C59E4 mov r2, #0xda @@ -99603,7 +99603,7 @@ FUN_0202E29C: ; 0x0202E29C str r0, [r1, #0x8] mov r1, #0x0 lsl r2, r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 bl FUN_0202CEEC add r1, r0, #0x0 mov r0, #0xf @@ -99619,7 +99619,7 @@ FUN_0202E29C: ; 0x0202E29C ldr r0, _0202E338 ; =0x00000CA4 ldr r0, [r1, r0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 bl FUN_02023AC4 add r1, r0, #0x0 mov r0, #0xf @@ -99635,7 +99635,7 @@ FUN_0202E29C: ; 0x0202E29C ldr r0, _0202E33C ; =0x00000CBC ldr r0, [r1, r0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r2, _0202E334 ; =0x021C59E8 mov r1, #0x33 ldr r3, _0202E340 ; =0x00000333 @@ -99771,7 +99771,7 @@ _0202E3D2: mul r1, r2 add r0, r7, #0x0 add r1, r3, r1 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3-r7, pc} _0202E412: add r6, r6, #0x1 @@ -99808,7 +99808,7 @@ _0202E434: mul r3, r2 add r0, r7, #0x0 add r1, r4, r3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _0202E464 ; =0x021C59E8 mov r2, #0x1 ldr r1, [r0, #0x8] @@ -99826,7 +99826,7 @@ FUN_0202E470: ; 0x0202E470 push {r3, lr} cmp r1, #0x0 beq _0202E47A - blx FUN_020CD850 + blx OS_Terminate _0202E47A: ldr r0, _0202E484 ; =0x021C59E8 mov r1, #0x2 @@ -99845,7 +99845,7 @@ FUN_0202E488: ; 0x0202E488 bx r3 .balign 4 _0202E494: .word 0x021C59E8 -_0202E498: .word FUN_02016454 + 1 +_0202E498: .word FUN_02016454 thumb_func_start FUN_0202E49C FUN_0202E49C: ; 0x0202E49C @@ -99861,12 +99861,12 @@ FUN_0202E49C: ; 0x0202E49C blx FUN_02090DB8 cmp r0, #0x1 beq _0202E4BC - blx FUN_020CD850 + blx OS_Terminate _0202E4BC: pop {r3, pc} nop _0202E4C0: .word 0x021C59E8 -_0202E4C4: .word FUN_0202E470 + 1 +_0202E4C4: .word FUN_0202E470 thumb_func_start FUN_0202E4C8 FUN_0202E4C8: ; 0x0202E4C8 @@ -99904,7 +99904,7 @@ FUN_0202E4F0: ; 0x0202E4F0 bx r3 .balign 4 _0202E4F8: .word FUN_02090CC8 -_0202E4FC: .word FUN_0202E488 + 1 +_0202E4FC: .word FUN_0202E488 thumb_func_start FUN_0202E500 FUN_0202E500: ; 0x0202E500 @@ -99956,7 +99956,7 @@ _0202E544: ldr r0, [r0, #0x8] lsl r2, r2, #0xa add r0, #0x54 - blx FUN_020CE34C + blx MI_CpuFill8 pop {r3-r5, pc} nop _0202E564: .word 0x021C59E8 @@ -100085,7 +100085,7 @@ _0202E656: nop _0202E65C: .word 0x021C59E8 _0202E660: .word 0x00000DAB -_0202E664: .word FUN_020303BC + 1 +_0202E664: .word FUN_020303BC _0202E668: .word 0x00000DAD thumb_func_start FUN_0202E66C @@ -100146,9 +100146,9 @@ _0202E6D4: nop _0202E6DC: .word 0x021C59E8 _0202E6E0: .word 0x00000DAB -_0202E6E4: .word FUN_02030238 + 1 +_0202E6E4: .word FUN_02030238 _0202E6E8: .word 0x020EEC40 -_0202E6EC: .word FUN_0202E380 + 1 +_0202E6EC: .word FUN_0202E380 thumb_func_start FUN_0202E6F0 FUN_0202E6F0: ; 0x0202E6F0 @@ -100347,7 +100347,7 @@ _0202E860: add r5, r5, #0x2 cmp r3, #0x10 blt _0202E850 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} .balign 4 @@ -100661,19 +100661,19 @@ FUN_0202EA9C: ; 0x0202EA9C bl FUN_02023AC4 cmp r0, #0x20 ble _0202EAC2 - bl FUN_02020C2C + bl ErrorHandling _0202EAC2: bl FUN_02023924 cmp r0, #0x20 beq _0202EACE - bl FUN_02020C2C + bl ErrorHandling _0202EACE: bl FUN_02023924 add r1, r5, #0x0 add r2, r0, #0x0 add r0, r4, #0x0 add r1, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 bl FUN_02023AC4 add r2, r0, #0x0 ldr r0, _0202EB6C ; =0x021C59E8 @@ -100682,7 +100682,7 @@ _0202EACE: ldr r0, [r1, r0] add r1, r5, #0x0 add r1, #0x30 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r4, #0x0 bl FUN_020239BC str r0, [r5, #0x0] @@ -100697,7 +100697,7 @@ _0202EACE: add r0, r1, r0 add r1, r5, #0x0 add r1, #0x8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 bl FUN_0202D358 add r5, #0x54 strb r0, [r5, #0x0] @@ -100719,14 +100719,14 @@ _0202EB24: ldr r0, [r0, #0x8] add r1, r5, #0x0 mov r2, #0x54 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _0202EB4E: ldr r0, _0202EB6C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EB70 ; =0x00000CC4 add r0, r1, r0 mov r1, #0x5c - blx FUN_020CC15C + blx DC_FlushRange ldr r0, _0202EB6C ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EB70 ; =0x00000CC4 @@ -100758,7 +100758,7 @@ FUN_0202EB7C: ; 0x0202EB7C ldr r0, _0202EBCC ; =0x00000CC4 add r0, r1, r0 mov r1, #0x5c - blx FUN_020CC15C + blx DC_FlushRange ldr r0, _0202EBC8 ; =0x021C59E8 ldr r1, [r0, #0x8] ldr r0, _0202EBCC ; =0x00000CC4 @@ -101208,7 +101208,7 @@ FUN_0202EEE8: ; 0x0202EEE8 add r4, r0, #0x0 cmp r5, #0x1a blo _0202EEFA - bl FUN_02020C2C + bl ErrorHandling _0202EEFA: cmp r5, #0xa bne _0202EF04 @@ -101322,7 +101322,7 @@ FUN_0202EFAC: ; 0x0202EFAC beq _0202EFD8 cmp r4, #0x8 blt _0202EFC2 - bl FUN_02020C2C + bl ErrorHandling _0202EFC2: ldr r1, _0202EFDC ; =0x021C59E8 add r0, r5, #0x0 @@ -101333,7 +101333,7 @@ _0202EFC2: add r1, r4, #0x0 mul r1, r2 add r1, r3, r1 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _0202EFD8: pop {r3-r5, pc} nop @@ -101426,7 +101426,7 @@ _0202F074: .word 0x00000DAD thumb_func_start FUN_0202F078 FUN_0202F078: ; 0x0202F078 ldr r1, _0202F088 ; =0x021C59E8 - ldr r3, _0202F08C ; =FUN_020CE3E0 + ldr r3, _0202F08C ; =MI_CpuCopy8 ldr r2, [r1, #0x8] ldr r1, _0202F090 ; =0x00000CA8 add r1, r2, r1 @@ -101434,7 +101434,7 @@ FUN_0202F078: ; 0x0202F078 bx r3 nop _0202F088: .word 0x021C59E8 -_0202F08C: .word FUN_020CE3E0 +_0202F08C: .word MI_CpuCopy8 _0202F090: .word 0x00000CA8 thumb_func_start FUN_0202F094 @@ -101448,7 +101448,7 @@ FUN_0202F094: ; 0x0202F094 ldr r1, _0202F0B4 ; =0x00000CBC add r0, r4, #0x0 ldr r1, [r3, r1] - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r4, pc} nop _0202F0B0: .word 0x021C59E8 @@ -101501,7 +101501,7 @@ FUN_0202F104: ; 0x0202F104 ldr r3, _0202F108 ; =FUN_0202D2D0 bx r3 .balign 4 -_0202F108: .word FUN_0202D2D0 + 1 +_0202F108: .word FUN_0202D2D0 thumb_func_start FUN_0202F10C FUN_0202F10C: ; 0x0202F10C @@ -101509,7 +101509,7 @@ FUN_0202F10C: ; 0x0202F10C ldr r1, _0202F120 ; =0x021C59E8 mov r2, #0x54 ldr r1, [r1, #0x8] - blx FUN_020CE3E0 + blx MI_CpuCopy8 bl FUN_0202F0B8 pop {r3, pc} nop @@ -101570,7 +101570,7 @@ _0202F178: ldr r2, _0202F2C0 ; =0x0000068C str r0, [r1, #0x4] add r1, r4, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r2, _0202F2BC ; =0x021C59F4 ldr r1, _0202F2C4 ; =0x00000658 ldr r0, [r2, #0x4] @@ -101669,7 +101669,7 @@ _0202F25C: mov r4, #0x1 cmp r0, #0x0 bne _0202F268 - bl FUN_02020C2C + bl ErrorHandling _0202F268: ldr r2, _0202F2BC ; =0x021C59F4 ldr r1, _0202F2DC ; =0x0000065C @@ -101723,7 +101723,7 @@ _0202F2D4: .word 0x0000054C _0202F2D8: .word 0x0000056C _0202F2DC: .word 0x0000065C _0202F2E0: .word 0x000005F8 -_0202F2E4: .word FUN_0202FB20 + 1 +_0202F2E4: .word FUN_0202FB20 _0202F2E8: .word 0x00000548 _0202F2EC: .word 0x00000687 @@ -101759,7 +101759,7 @@ FUN_0202F2F0: ; 0x0202F2F0 ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 - blx FUN_020CE34C + blx MI_CpuFill8 mov r4, #0x0 cmp r6, #0x0 ble _0202F360 @@ -101792,7 +101792,7 @@ _0202F360: ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 - blx FUN_020CE34C + blx MI_CpuFill8 mov r5, #0x0 cmp r6, #0x0 ble _0202F3A2 @@ -101824,7 +101824,7 @@ _0202F3A2: add r0, r1, r0 mov r1, #0x0 lsl r2, r2, #0x6 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202F54C ; =0x021C59F4 mov r1, #0xb5 ldr r2, [r0, #0x4] @@ -101858,7 +101858,7 @@ _0202F3DA: mov r1, #0x0 add r0, #0x4c lsl r2, r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202F54C ; =0x021C59F4 mov r2, #0x42 ldr r1, [r0, #0x4] @@ -101894,7 +101894,7 @@ _0202F420: ldr r0, [r3, r0] mov r1, #0x0 lsl r2, r2, #0x1 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202F54C ; =0x021C59F4 mov r1, #0x47 ldr r3, [r0, #0x4] @@ -102073,7 +102073,7 @@ FUN_0202F5A4: ; 0x0202F5A4 ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 - blx FUN_020CE34C + blx MI_CpuFill8 mov r4, #0x0 cmp r6, #0x0 ble _0202F606 @@ -102106,7 +102106,7 @@ _0202F606: ldr r3, [r3, r2] add r2, r3, #0x0 mul r2, r6 - blx FUN_020CE34C + blx MI_CpuFill8 mov r5, #0x0 cmp r6, #0x0 ble _0202F648 @@ -102138,7 +102138,7 @@ _0202F648: add r0, r1, r0 mov r1, #0x0 lsl r2, r2, #0x6 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202F7D4 ; =0x021C59F4 mov r1, #0xb5 ldr r2, [r0, #0x4] @@ -102172,7 +102172,7 @@ _0202F680: mov r1, #0x0 add r0, #0x4c lsl r2, r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202F7D4 ; =0x021C59F4 mov r2, #0x42 ldr r1, [r0, #0x4] @@ -102208,7 +102208,7 @@ _0202F6C6: ldr r0, [r3, r0] mov r1, #0x0 lsl r2, r2, #0x1 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0202F7D4 ; =0x021C59F4 mov r1, #0x47 ldr r3, [r0, #0x4] @@ -102465,7 +102465,7 @@ FUN_0202F910: ; 0x0202F910 ldr r3, _0202F914 ; =FUN_0202F820 bx r3 .balign 4 -_0202F914: .word FUN_0202F820 + 1 +_0202F914: .word FUN_0202F820 thumb_func_start FUN_0202F918 FUN_0202F918: ; 0x0202F918 @@ -102492,7 +102492,7 @@ _0202F93E: add r0, r4, #0x0 pop {r3-r7, pc} nop -_0202F94C: .word FUN_0202F910 + 1 +_0202F94C: .word FUN_0202F910 thumb_func_start FUN_0202F950 FUN_0202F950: ; 0x0202F950 @@ -102602,7 +102602,7 @@ FUN_0202FA10: ; 0x0202FA10 mov r0, #0x1 bx r3 nop -_0202FA18: .word FUN_0202F9E0 + 1 +_0202FA18: .word FUN_0202F9E0 thumb_func_start FUN_0202FA1C FUN_0202FA1C: ; 0x0202FA1C @@ -102610,7 +102610,7 @@ FUN_0202FA1C: ; 0x0202FA1C mov r0, #0x0 bx r3 nop -_0202FA24: .word FUN_0202F9E0 + 1 +_0202FA24: .word FUN_0202F9E0 thumb_func_start FUN_0202FA28 FUN_0202FA28: ; 0x0202FA28 @@ -102732,7 +102732,7 @@ FUN_0202FB18: ; 0x0202FB18 ldr r3, _0202FB1C ; =FUN_0202E9E8 bx r3 .balign 4 -_0202FB1C: .word FUN_0202E9E8 + 1 +_0202FB1C: .word FUN_0202E9E8 thumb_func_start FUN_0202FB20 FUN_0202FB20: ; 0x0202FB20 @@ -103397,7 +103397,7 @@ _02030062: .balign 4 _02030064: .word 0x021C59F4 _02030068: .word 0x02105D58 -_0203006C: .word FUN_020304F0 + 1 +_0203006C: .word FUN_020304F0 _02030070: .word 0x00000638 thumb_func_start FUN_02030074 @@ -103961,7 +103961,7 @@ FUN_020304D4: ; 0x020304D4 strb r1, [r0, #0x0] pop {r3, pc} _020304E4: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} nop _020304EC: .word 0x02105D58 @@ -103977,7 +103977,7 @@ FUN_020304F0: ; 0x020304F0 strb r1, [r0, #0x1] pop {r3, pc} _02030500: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} nop _02030508: .word 0x02105D58 @@ -104150,7 +104150,7 @@ _0203065E: _02030660: .word 0x021C59F4 _02030664: .word 0x02105D58 _02030668: .word 0x0000067F -_0203066C: .word FUN_020304D4 + 1 +_0203066C: .word FUN_020304D4 _02030670: .word 0x0000FFFE thumb_func_start FUN_02030674 @@ -104802,7 +104802,7 @@ FUN_02030B3C: ; 0x02030B3C bl FUN_02031190 cmp r0, #0x0 beq _02030B58 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x8 mov r0, #0x0 pop {r4-r6, pc} @@ -104929,7 +104929,7 @@ FUN_02030C4C: ; 0x02030C4C mov r2, #0x0 bx r3 nop -_02030C54: .word FUN_02030BC4 + 1 +_02030C54: .word FUN_02030BC4 thumb_func_start FUN_02030C58 FUN_02030C58: ; 0x02030C58 @@ -104941,7 +104941,7 @@ FUN_02030C58: ; 0x02030C58 bx r3 .balign 4 _02030C64: .word 0x021C59F4 -_02030C68: .word FUN_0202D498 + 1 +_02030C68: .word FUN_0202D498 _02030C6C: .word 0x00000464 thumb_func_start FUN_02030C70 @@ -105048,7 +105048,7 @@ _02030D22: ldr r0, [sp, #0x8] add r1, r2, r1 ldr r2, [sp, #0xc] - blx FUN_020CE3E0 + blx MI_CpuCopy8 _02030D42: ldr r1, [r5, #0x0] ldr r0, [sp, #0xc] @@ -105662,7 +105662,7 @@ FUN_020311D0: ; 0x020311D0 mov r2, #0x0 bx r3 nop -_020311D8: .word FUN_02030ADC + 1 +_020311D8: .word FUN_02030ADC thumb_func_start FUN_020311DC FUN_020311DC: ; 0x020311DC @@ -105671,14 +105671,14 @@ FUN_020311DC: ; 0x020311DC add r2, r1, #0x0 bx r3 .balign 4 -_020311E4: .word FUN_02030ADC + 1 +_020311E4: .word FUN_02030ADC thumb_func_start FUN_020311E8 FUN_020311E8: ; 0x020311E8 ldr r3, _020311EC ; =FUN_0202EE24 bx r3 .balign 4 -_020311EC: .word FUN_0202EE24 + 1 +_020311EC: .word FUN_0202EE24 thumb_func_start FUN_020311F0 FUN_020311F0: ; 0x020311F0 @@ -105879,7 +105879,7 @@ FUN_02031354: ; 0x02031354 bx r3 nop _02031364: .word 0x021C59F4 -_02031368: .word FUN_0202D830 + 1 +_02031368: .word FUN_0202D830 _0203136C: .word 0x0000056C thumb_func_start FUN_02031370 @@ -105892,7 +105892,7 @@ FUN_02031370: ; 0x02031370 bx r3 .balign 4 _0203137C: .word 0x021C59F4 -_02031380: .word FUN_0202D4E4 + 1 +_02031380: .word FUN_0202D4E4 _02031384: .word 0x0000056C thumb_func_start FUN_02031388 @@ -105905,7 +105905,7 @@ FUN_02031388: ; 0x02031388 bx r3 .balign 4 _02031394: .word 0x021C59F4 -_02031398: .word FUN_0202D4E4 + 1 +_02031398: .word FUN_0202D4E4 _0203139C: .word 0x0000054C thumb_func_start FUN_020313A0 @@ -106051,7 +106051,7 @@ FUN_02031480: ; 0x02031480 ldr r2, _020314CC ; =0x00000253 str r0, [r1, #0x0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 _0203149C: ldr r1, _020314C8 ; =0x021C59FC mov r3, #0x0 @@ -106327,7 +106327,7 @@ _02031672: add r1, r7, #0x0 add r0, r0, r5 mov r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 add r4, r4, #0x1 add r5, r5, #0x2 cmp r4, #0x8 @@ -106369,7 +106369,7 @@ FUN_020316AC: ; 0x020316AC add r3, #0x18 add r0, r1, #0x0 add r1, r3, r4 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r1, _020316DC ; =0x021C59FC mov r0, #0x14 ldr r1, [r1, #0x0] @@ -106423,7 +106423,7 @@ FUN_02031704: ; 0x02031704 add r4, #0x18 mul r3, r2 add r1, r4, r3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3-r5, pc} nop _0203172C: .word 0x021C59FC @@ -106450,7 +106450,7 @@ FUN_02031734: ; 0x02031734 mov r2, #0x50 str r0, [r1, #0x0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _020317BC ; =0x021C5A00 mov r2, #0x32 ldr r1, [r0, #0x0] @@ -106580,7 +106580,7 @@ _02031856: pop {r4, pc} .balign 4 _02031858: .word 0x021C5A00 -_0203185C: .word FUN_02031D30 + 1 +_0203185C: .word FUN_02031D30 thumb_func_start FUN_02031860 FUN_02031860: ; 0x02031860 @@ -106597,7 +106597,7 @@ _02031876: pop {r3, pc} .balign 4 _02031878: .word 0x021C5A00 -_0203187C: .word FUN_020323CC + 1 +_0203187C: .word FUN_020323CC thumb_func_start FUN_02031880 FUN_02031880: ; 0x02031880 @@ -106613,7 +106613,7 @@ FUN_02031880: ; 0x02031880 pop {r3, pc} nop _0203189C: .word 0x021C5A00 -_020318A0: .word FUN_020321B8 + 1 +_020318A0: .word FUN_020321B8 thumb_func_start FUN_020318A4 FUN_020318A4: ; 0x020318A4 @@ -106632,8 +106632,8 @@ FUN_020318B4: ; 0x020318B4 mov r1, #0x0 bx r3 .balign 4 -_020318BC: .word FUN_02031D20 + 1 -_020318C0: .word FUN_02032028 + 1 +_020318BC: .word FUN_02031D20 +_020318C0: .word FUN_02032028 thumb_func_start FUN_020318C4 FUN_020318C4: ; 0x020318C4 @@ -106688,8 +106688,8 @@ FUN_02031914: ; 0x02031914 mov r1, #0x0 bx r3 .balign 4 -_0203191C: .word FUN_02031D20 + 1 -_02031920: .word FUN_02032178 + 1 +_0203191C: .word FUN_02031D20 +_02031920: .word FUN_02032178 thumb_func_start FUN_02031924 FUN_02031924: ; 0x02031924 @@ -106711,7 +106711,7 @@ FUN_02031934: ; 0x02031934 bl FUN_02031D20 pop {r3, pc} .balign 4 -_02031944: .word FUN_02032194 + 1 +_02031944: .word FUN_02032194 thumb_func_start FUN_02031948 FUN_02031948: ; 0x02031948 @@ -106744,7 +106744,7 @@ _02031980: nop _02031984: .word 0x00007080 _02031988: .word 0x021C5A00 -_0203198C: .word FUN_020321D0 + 1 +_0203198C: .word FUN_020321D0 thumb_func_start FUN_02031990 FUN_02031990: ; 0x02031990 @@ -106777,7 +106777,7 @@ _020319C8: nop _020319CC: .word 0x00007080 _020319D0: .word 0x021C5A00 -_020319D4: .word FUN_0203224C + 1 +_020319D4: .word FUN_0203224C thumb_func_start FUN_020319D8 FUN_020319D8: ; 0x020319D8 @@ -106791,8 +106791,8 @@ FUN_020319D8: ; 0x020319D8 bx r3 .balign 4 _020319E8: .word 0x021C5A00 -_020319EC: .word FUN_02031D20 + 1 -_020319F0: .word FUN_02032298 + 1 +_020319EC: .word FUN_02031D20 +_020319F0: .word FUN_02032298 thumb_func_start FUN_020319F4 FUN_020319F4: ; 0x020319F4 @@ -106803,7 +106803,7 @@ FUN_020319F4: ; 0x020319F4 bl FUN_02031D20 pop {r3, pc} .balign 4 -_02031A04: .word FUN_02032364 + 1 +_02031A04: .word FUN_02032364 thumb_func_start FUN_02031A08 FUN_02031A08: ; 0x02031A08 @@ -106819,14 +106819,14 @@ _02031A1A: pop {r3, pc} .balign 4 _02031A1C: .word 0x021C5A00 -_02031A20: .word FUN_02032440 + 1 +_02031A20: .word FUN_02032440 thumb_func_start FUN_02031A24 FUN_02031A24: ; 0x02031A24 ldr r3, _02031A28 ; =FUN_0202D298 bx r3 .balign 4 -_02031A28: .word FUN_0202D298 + 1 +_02031A28: .word FUN_0202D298 thumb_func_start FUN_02031A2C FUN_02031A2C: ; 0x02031A2C @@ -106909,7 +106909,7 @@ _02031ABA: .balign 4 _02031ABC: .word 0x021C5A00 _02031AC0: .word 0x00007080 -_02031AC4: .word FUN_02032478 + 1 +_02031AC4: .word FUN_02032478 thumb_func_start FUN_02031AC8 FUN_02031AC8: ; 0x02031AC8 @@ -106930,7 +106930,7 @@ FUN_02031AC8: ; 0x02031AC8 pop {r3, pc} .balign 4 _02031AEC: .word 0x021C5A00 -_02031AF0: .word FUN_02032628 + 1 +_02031AF0: .word FUN_02032628 thumb_func_start FUN_02031AF4 FUN_02031AF4: ; 0x02031AF4 @@ -106961,8 +106961,8 @@ _02031B1A: bx lr nop _02031B20: .word 0x021C5A00 -_02031B24: .word FUN_0203279C + 1 -_02031B28: .word FUN_020327B4 + 1 +_02031B24: .word FUN_0203279C +_02031B28: .word FUN_020327B4 thumb_func_start FUN_02031B2C FUN_02031B2C: ; 0x02031B2C @@ -106984,7 +106984,7 @@ _02031B44: bx lr .balign 4 _02031B48: .word 0x021C5A00 -_02031B4C: .word FUN_020327FC + 1 +_02031B4C: .word FUN_020327FC thumb_func_start FUN_02031B50 FUN_02031B50: ; 0x02031B50 @@ -107042,8 +107042,8 @@ _02031BB8: pop {r3, pc} nop _02031BC4: .word 0x021C5A00 -_02031BC8: .word FUN_020323DC + 1 -_02031BCC: .word FUN_02032424 + 1 +_02031BC8: .word FUN_020323DC +_02031BCC: .word FUN_02032424 thumb_func_start FUN_02031BD0 FUN_02031BD0: ; 0x02031BD0 @@ -107065,7 +107065,7 @@ _02031BE8: bx lr .balign 4 _02031BEC: .word 0x021C5A00 -_02031BF0: .word FUN_020324F8 + 1 +_02031BF0: .word FUN_020324F8 thumb_func_start FUN_02031BF4 FUN_02031BF4: ; 0x02031BF4 @@ -107081,7 +107081,7 @@ _02031C06: pop {r3, pc} .balign 4 _02031C08: .word 0x021C5A00 -_02031C0C: .word FUN_02032440 + 1 +_02031C0C: .word FUN_02032440 thumb_func_start FUN_02031C10 FUN_02031C10: ; 0x02031C10 @@ -107117,7 +107117,7 @@ _02031C48: pop {r3, pc} nop _02031C4C: .word 0x021C5A00 -_02031C50: .word FUN_02032850 + 1 +_02031C50: .word FUN_02032850 thumb_func_start FUN_02031C54 FUN_02031C54: ; 0x02031C54 @@ -107163,7 +107163,7 @@ _02031C9C: pop {r3-r5, pc} nop _02031CA0: .word 0x00007080 -_02031CA4: .word FUN_02032E00 + 1 +_02031CA4: .word FUN_02032E00 thumb_func_start FUN_02031CA8 FUN_02031CA8: ; 0x02031CA8 @@ -107187,7 +107187,7 @@ _02031CD0: pop {r3-r5, pc} nop _02031CD4: .word 0x00007080 -_02031CD8: .word FUN_02032E48 + 1 +_02031CD8: .word FUN_02032E48 thumb_func_start FUN_02031CDC FUN_02031CDC: ; 0x02031CDC @@ -107329,9 +107329,9 @@ _02031DF6: pop {r3-r5, pc} .balign 4 _02031DF8: .word 0x021C5A00 -_02031DFC: .word FUN_020320C4 + 1 -_02031E00: .word FUN_020323B8 + 1 -_02031E04: .word FUN_02031EE0 + 1 +_02031DFC: .word FUN_020320C4 +_02031E00: .word FUN_020323B8 +_02031E04: .word FUN_02031EE0 thumb_func_start FUN_02031E08 FUN_02031E08: ; 0x02031E08 @@ -107392,8 +107392,8 @@ _02031E7C: pop {r3-r5, pc} nop _02031E80: .word 0x021C5A00 -_02031E84: .word FUN_02032058 + 1 -_02031E88: .word FUN_02031EE0 + 1 +_02031E84: .word FUN_02032058 +_02031E88: .word FUN_02031EE0 thumb_func_start FUN_02031E8C FUN_02031E8C: ; 0x02031E8C @@ -107434,7 +107434,7 @@ _02031ED6: pop {r3-r5, pc} .balign 4 _02031ED8: .word 0x021C5A00 -_02031EDC: .word FUN_02031EE0 + 1 +_02031EDC: .word FUN_02031EE0 thumb_func_start FUN_02031EE0 FUN_02031EE0: ; 0x02031EE0 @@ -107495,8 +107495,8 @@ _02031F50: pop {r3, pc} nop _02031F54: .word 0x021C5A00 -_02031F58: .word FUN_02031F60 + 1 -_02031F5C: .word FUN_02032028 + 1 +_02031F58: .word FUN_02031F60 +_02031F5C: .word FUN_02032028 thumb_func_start FUN_02031F60 FUN_02031F60: ; 0x02031F60 @@ -107544,8 +107544,8 @@ _02031FB2: pop {r3, pc} .balign 4 _02031FBC: .word 0x021C5A00 -_02031FC0: .word FUN_02031FC8 + 1 -_02031FC4: .word FUN_02032028 + 1 +_02031FC0: .word FUN_02031FC8 +_02031FC4: .word FUN_02032028 thumb_func_start FUN_02031FC8 FUN_02031FC8: ; 0x02031FC8 @@ -107585,8 +107585,8 @@ _02032010: bl FUN_02031D20 pop {r3, pc} nop -_0203201C: .word FUN_0203213C + 1 -_02032020: .word FUN_02032028 + 1 +_0203201C: .word FUN_0203213C +_02032020: .word FUN_02032028 _02032024: .word 0x021C5A00 thumb_func_start FUN_02032028 @@ -107601,7 +107601,7 @@ FUN_02032028: ; 0x02032028 _0203203A: pop {r3, pc} .balign 4 -_0203203C: .word FUN_02032058 + 1 +_0203203C: .word FUN_02032058 thumb_func_start FUN_02032040 FUN_02032040: ; 0x02032040 @@ -107615,7 +107615,7 @@ FUN_02032040: ; 0x02032040 _02032052: pop {r3, pc} .balign 4 -_02032054: .word FUN_02031E8C + 1 +_02032054: .word FUN_02031E8C thumb_func_start FUN_02032058 FUN_02032058: ; 0x02032058 @@ -107666,7 +107666,7 @@ _020320BA: pop {r3-r5, pc} .balign 4 _020320BC: .word 0x021C5A00 -_020320C0: .word FUN_020320C4 + 1 +_020320C0: .word FUN_020320C4 thumb_func_start FUN_020320C4 FUN_020320C4: ; 0x020320C4 @@ -107707,8 +107707,8 @@ _0203210A: pop {r3, pc} .balign 4 _0203210C: .word 0x021C5A00 -_02032110: .word FUN_02032118 + 1 -_02032114: .word FUN_02032040 + 1 +_02032110: .word FUN_02032118 +_02032114: .word FUN_02032040 thumb_func_start FUN_02032118 FUN_02032118: ; 0x02032118 @@ -107723,7 +107723,7 @@ FUN_02032118: ; 0x02032118 bl FUN_02031D20 pop {r3, pc} .balign 4 -_02032134: .word FUN_02032138 + 1 +_02032134: .word FUN_02032138 thumb_func_start FUN_02032138 FUN_02032138: ; 0x02032138 @@ -107760,7 +107760,7 @@ _0203216E: pop {r3, pc} .balign 4 _02032170: .word 0x021C5A00 -_02032174: .word FUN_020323B8 + 1 +_02032174: .word FUN_020323B8 thumb_func_start FUN_02032178 FUN_02032178: ; 0x02032178 @@ -107775,7 +107775,7 @@ FUN_02032178: ; 0x02032178 _0203218E: pop {r3, pc} .balign 4 -_02032190: .word FUN_02032140 + 1 +_02032190: .word FUN_02032140 thumb_func_start FUN_02032194 FUN_02032194: ; 0x02032194 @@ -107792,7 +107792,7 @@ FUN_02032194: ; 0x02032194 _020321B0: pop {r3, pc} nop -_020321B4: .word FUN_02031E08 + 1 +_020321B4: .word FUN_02031E08 thumb_func_start FUN_020321B8 FUN_020321B8: ; 0x020321B8 @@ -107806,7 +107806,7 @@ FUN_020321B8: ; 0x020321B8 _020321CA: pop {r3, pc} .balign 4 -_020321CC: .word FUN_02031E08 + 1 +_020321CC: .word FUN_02031E08 thumb_func_start FUN_020321D0 FUN_020321D0: ; 0x020321D0 @@ -107838,7 +107838,7 @@ _0203220C: pop {r3, pc} nop _02032210: .word 0x021C5A00 -_02032214: .word FUN_02032218 + 1 +_02032214: .word FUN_02032218 thumb_func_start FUN_02032218 FUN_02032218: ; 0x02032218 @@ -107853,7 +107853,7 @@ FUN_02032218: ; 0x02032218 _0203222E: pop {r3, pc} .balign 4 -_02032230: .word FUN_02032234 + 1 +_02032230: .word FUN_02032234 thumb_func_start FUN_02032234 FUN_02032234: ; 0x02032234 @@ -107867,7 +107867,7 @@ FUN_02032234: ; 0x02032234 _02032246: pop {r3, pc} .balign 4 -_02032248: .word FUN_020323BC + 1 +_02032248: .word FUN_020323BC thumb_func_start FUN_0203224C FUN_0203224C: ; 0x0203224C @@ -107898,14 +107898,14 @@ _02032286: pop {r3, pc} .balign 4 _02032288: .word 0x021C5A00 -_0203228C: .word FUN_02032290 + 1 +_0203228C: .word FUN_02032290 thumb_func_start FUN_02032290 FUN_02032290: ; 0x02032290 ldr r3, _02032294 ; =FUN_0202EA54 bx r3 .balign 4 -_02032294: .word FUN_0202EA54 + 1 +_02032294: .word FUN_0202EA54 thumb_func_start FUN_02032298 FUN_02032298: ; 0x02032298 @@ -107925,7 +107925,7 @@ _020322B6: pop {r3, pc} .balign 4 _020322B8: .word 0x021C5A00 -_020322BC: .word FUN_020322C0 + 1 +_020322BC: .word FUN_020322C0 thumb_func_start FUN_020322C0 FUN_020322C0: ; 0x020322C0 @@ -107950,8 +107950,8 @@ _020322D2: _020322EE: pop {r3, pc} .balign 4 -_020322F0: .word FUN_020322F8 + 1 -_020322F4: .word FUN_0203234C + 1 +_020322F0: .word FUN_020322F8 +_020322F4: .word FUN_0203234C thumb_func_start FUN_020322F8 FUN_020322F8: ; 0x020322F8 @@ -107962,7 +107962,7 @@ FUN_020322F8: ; 0x020322F8 bl FUN_02031D20 pop {r3, pc} .balign 4 -_02032308: .word FUN_0203230C + 1 +_02032308: .word FUN_0203230C thumb_func_start FUN_0203230C FUN_0203230C: ; 0x0203230C @@ -107993,7 +107993,7 @@ _02032340: pop {r3, pc} nop _02032344: .word 0x021C5A00 -_02032348: .word FUN_02032298 + 1 +_02032348: .word FUN_02032298 thumb_func_start FUN_0203234C FUN_0203234C: ; 0x0203234C @@ -108007,7 +108007,7 @@ FUN_0203234C: ; 0x0203234C _0203235E: pop {r3, pc} .balign 4 -_02032360: .word FUN_020323BC + 1 +_02032360: .word FUN_020323BC thumb_func_start FUN_02032364 FUN_02032364: ; 0x02032364 @@ -108018,7 +108018,7 @@ FUN_02032364: ; 0x02032364 bl FUN_02031D20 pop {r3, pc} .balign 4 -_02032374: .word FUN_02032378 + 1 +_02032374: .word FUN_02032378 thumb_func_start FUN_02032378 FUN_02032378: ; 0x02032378 @@ -108049,7 +108049,7 @@ _020323AC: pop {r3, pc} nop _020323B0: .word 0x021C5A00 -_020323B4: .word FUN_02032290 + 1 +_020323B4: .word FUN_02032290 thumb_func_start FUN_020323B8 FUN_020323B8: ; 0x020323B8 @@ -108073,8 +108073,8 @@ FUN_020323CC: ; 0x020323CC mov r1, #0x5 bx r3 .balign 4 -_020323D4: .word FUN_02031D20 + 1 -_020323D8: .word FUN_02032440 + 1 +_020323D4: .word FUN_02031D20 +_020323D8: .word FUN_02032440 thumb_func_start FUN_020323DC FUN_020323DC: ; 0x020323DC @@ -108106,7 +108106,7 @@ _02032408: bl FUN_02031D20 pop {r3, pc} .balign 4 -_0203241C: .word FUN_020324F8 + 1 +_0203241C: .word FUN_020324F8 _02032420: .word 0x021C5A00 thumb_func_start FUN_02032424 @@ -108122,7 +108122,7 @@ FUN_02032424: ; 0x02032424 _0203243A: pop {r3, pc} .balign 4 -_0203243C: .word FUN_020324F8 + 1 +_0203243C: .word FUN_020324F8 thumb_func_start FUN_02032440 FUN_02032440: ; 0x02032440 @@ -108151,7 +108151,7 @@ _0203246E: pop {r3, pc} .balign 4 _02032470: .word 0x021C5A00 -_02032474: .word FUN_020323BC + 1 +_02032474: .word FUN_020323BC thumb_func_start FUN_02032478 FUN_02032478: ; 0x02032478 @@ -108187,7 +108187,7 @@ _020324BE: pop {r3, pc} .balign 4 _020324C0: .word 0x021C5A00 -_020324C4: .word FUN_020324C8 + 1 +_020324C4: .word FUN_020324C8 thumb_func_start FUN_020324C8 FUN_020324C8: ; 0x020324C8 @@ -108212,7 +108212,7 @@ _020324EE: pop {r3, pc} .balign 4 _020324F0: .word 0x021C5A00 -_020324F4: .word FUN_02032510 + 1 +_020324F4: .word FUN_02032510 thumb_func_start FUN_020324F8 FUN_020324F8: ; 0x020324F8 @@ -108226,7 +108226,7 @@ FUN_020324F8: ; 0x020324F8 _0203250A: pop {r3, pc} .balign 4 -_0203250C: .word FUN_02032510 + 1 +_0203250C: .word FUN_02032510 thumb_func_start FUN_02032510 FUN_02032510: ; 0x02032510 @@ -108273,7 +108273,7 @@ _02032568: pop {r3-r5, pc} nop _0203256C: .word 0x021C5A00 -_02032570: .word FUN_02032578 + 1 +_02032570: .word FUN_02032578 _02032574: .word 0x00002710 thumb_func_start FUN_02032578 @@ -108315,8 +108315,8 @@ _020325C2: pop {r3, pc} .balign 4 _020325C4: .word 0x021C5A00 -_020325C8: .word FUN_020327FC + 1 -_020325CC: .word FUN_020325D0 + 1 +_020325C8: .word FUN_020327FC +_020325CC: .word FUN_020325D0 thumb_func_start FUN_020325D0 FUN_020325D0: ; 0x020325D0 @@ -108357,7 +108357,7 @@ _0203261C: pop {r3-r5, pc} nop _02032620: .word 0x021C5A00 -_02032624: .word FUN_020324C8 + 1 +_02032624: .word FUN_020324C8 thumb_func_start FUN_02032628 FUN_02032628: ; 0x02032628 @@ -108371,7 +108371,7 @@ FUN_02032628: ; 0x02032628 _0203263A: pop {r3, pc} .balign 4 -_0203263C: .word FUN_02032640 + 1 +_0203263C: .word FUN_02032640 thumb_func_start FUN_02032640 FUN_02032640: ; 0x02032640 @@ -108393,7 +108393,7 @@ FUN_02032640: ; 0x02032640 _02032666: pop {r3, pc} .balign 4 -_02032668: .word FUN_0203266C + 1 +_02032668: .word FUN_0203266C thumb_func_start FUN_0203266C FUN_0203266C: ; 0x0203266C @@ -108440,8 +108440,8 @@ _020326BA: pop {r3, pc} .balign 4 _020326C4: .word 0x021C5A00 -_020326C8: .word FUN_020326D0 + 1 -_020326CC: .word FUN_020327B8 + 1 +_020326C8: .word FUN_020326D0 +_020326CC: .word FUN_020327B8 thumb_func_start FUN_020326D0 FUN_020326D0: ; 0x020326D0 @@ -108485,10 +108485,10 @@ _0203271C: bl FUN_02031D20 pop {r3, pc} nop -_02032728: .word FUN_020327B8 + 1 +_02032728: .word FUN_020327B8 _0203272C: .word 0x021C5A00 _02032730: .word 0x02105D5C -_02032734: .word FUN_02032738 + 1 +_02032734: .word FUN_02032738 thumb_func_start FUN_02032738 FUN_02032738: ; 0x02032738 @@ -108533,10 +108533,10 @@ _02032782: bl FUN_02031D20 pop {r3, pc} .balign 4 -_0203278C: .word FUN_020327B8 + 1 +_0203278C: .word FUN_020327B8 _02032790: .word 0x021C5A00 -_02032794: .word FUN_020327B4 + 1 -_02032798: .word FUN_0203279C + 1 +_02032794: .word FUN_020327B4 +_02032798: .word FUN_0203279C thumb_func_start FUN_0203279C FUN_0203279C: ; 0x0203279C @@ -108550,7 +108550,7 @@ FUN_0203279C: ; 0x0203279C _020327AE: pop {r3, pc} .balign 4 -_020327B0: .word FUN_020327B8 + 1 +_020327B0: .word FUN_020327B8 thumb_func_start FUN_020327B4 FUN_020327B4: ; 0x020327B4 @@ -108587,8 +108587,8 @@ _020327EC: pop {r3, pc} nop _020327F0: .word 0x021C5A00 -_020327F4: .word FUN_02032640 + 1 -_020327F8: .word FUN_020327B4 + 1 +_020327F4: .word FUN_02032640 +_020327F8: .word FUN_020327B4 thumb_func_start FUN_020327FC FUN_020327FC: ; 0x020327FC @@ -108624,8 +108624,8 @@ _0203282C: _02032844: pop {r3, pc} nop -_02032848: .word FUN_020325D0 + 1 -_0203284C: .word FUN_020327B8 + 1 +_02032848: .word FUN_020325D0 +_0203284C: .word FUN_020327B8 thumb_func_start FUN_02032850 FUN_02032850: ; 0x02032850 @@ -108652,7 +108652,7 @@ _0203287E: pop {r3, pc} .balign 4 _02032880: .word 0x021C5A00 -_02032884: .word FUN_020323B8 + 1 +_02032884: .word FUN_020323B8 thumb_func_start FUN_02032888 FUN_02032888: ; 0x02032888 @@ -108698,8 +108698,8 @@ FUN_020328C0: ; 0x020328C0 bx r3 nop _020328D8: .word 0x021C5A00 -_020328DC: .word FUN_02031D20 + 1 -_020328E0: .word FUN_02032924 + 1 +_020328DC: .word FUN_02031D20 +_020328E0: .word FUN_02032924 thumb_func_start FUN_020328E4 FUN_020328E4: ; 0x020328E4 @@ -108733,7 +108733,7 @@ FUN_020328F4: ; 0x020328F4 pop {r3, pc} nop _0203291C: .word 0x021C5A00 -_02032920: .word FUN_02032628 + 1 +_02032920: .word FUN_02032628 thumb_func_start FUN_02032924 FUN_02032924: ; 0x02032924 @@ -108747,7 +108747,7 @@ FUN_02032924: ; 0x02032924 _02032936: pop {r3, pc} .balign 4 -_02032938: .word FUN_0203293C + 1 +_02032938: .word FUN_0203293C thumb_func_start FUN_0203293C FUN_0203293C: ; 0x0203293C @@ -108775,7 +108775,7 @@ _0203296C: pop {r3, pc} nop _02032970: .word 0x021C5A00 -_02032974: .word FUN_02032978 + 1 +_02032974: .word FUN_02032978 thumb_func_start FUN_02032978 FUN_02032978: ; 0x02032978 @@ -108834,9 +108834,9 @@ _020329E2: pop {r3, pc} .balign 4 _020329E4: .word 0x021C5A00 -_020329E8: .word FUN_020329F4 + 1 -_020329EC: .word FUN_020327B4 + 1 -_020329F0: .word FUN_02032924 + 1 +_020329E8: .word FUN_020329F4 +_020329EC: .word FUN_020327B4 +_020329F0: .word FUN_02032924 thumb_func_start FUN_020329F4 FUN_020329F4: ; 0x020329F4 @@ -108908,9 +108908,9 @@ _02032A72: pop {r3, pc} .balign 4 _02032A7C: .word 0x021C5A00 -_02032A80: .word FUN_020327B4 + 1 -_02032A84: .word FUN_02032924 + 1 -_02032A88: .word FUN_0203279C + 1 +_02032A80: .word FUN_020327B4 +_02032A84: .word FUN_02032924 +_02032A88: .word FUN_0203279C thumb_func_start FUN_02032A8C FUN_02032A8C: ; 0x02032A8C @@ -109055,7 +109055,7 @@ FUN_02032B84: ; 0x02032B84 ldr r3, _02032B88 ; =FUN_0202EA54 bx r3 .balign 4 -_02032B88: .word FUN_0202EA54 + 1 +_02032B88: .word FUN_0202EA54 thumb_func_start FUN_02032B8C FUN_02032B8C: ; 0x02032B8C @@ -109086,7 +109086,7 @@ _02032BC6: pop {r3, pc} .balign 4 _02032BC8: .word 0x021C5A00 -_02032BCC: .word FUN_02032B84 + 1 +_02032BCC: .word FUN_02032B84 thumb_func_start FUN_02032BD0 FUN_02032BD0: ; 0x02032BD0 @@ -109114,7 +109114,7 @@ _02032C00: pop {r4, pc} nop _02032C04: .word 0x021C5A00 -_02032C08: .word FUN_02032B8C + 1 +_02032C08: .word FUN_02032B8C thumb_func_start FUN_02032C0C FUN_02032C0C: ; 0x02032C0C @@ -109130,7 +109130,7 @@ _02032C1E: pop {r3, pc} .balign 4 _02032C20: .word 0x021C5A00 -_02032C24: .word FUN_02032440 + 1 +_02032C24: .word FUN_02032440 thumb_func_start FUN_02032C28 FUN_02032C28: ; 0x02032C28 @@ -109277,8 +109277,8 @@ _02032D34: pop {r3, pc} nop _02032D38: .word 0x021C5A00 -_02032D3C: .word FUN_02032C6C + 1 -_02032D40: .word FUN_02032B84 + 1 +_02032D3C: .word FUN_02032C6C +_02032D40: .word FUN_02032B84 thumb_func_start FUN_02032D44 FUN_02032D44: ; 0x02032D44 @@ -109306,7 +109306,7 @@ _02032D74: pop {r4, pc} nop _02032D78: .word 0x021C5A00 -_02032D7C: .word FUN_02032CF4 + 1 +_02032D7C: .word FUN_02032CF4 thumb_func_start FUN_02032D80 FUN_02032D80: ; 0x02032D80 @@ -109322,7 +109322,7 @@ _02032D92: pop {r3, pc} .balign 4 _02032D94: .word 0x021C5A00 -_02032D98: .word FUN_02032440 + 1 +_02032D98: .word FUN_02032440 thumb_func_start FUN_02032D9C FUN_02032D9C: ; 0x02032D9C @@ -109372,8 +109372,8 @@ _02032DEE: pop {r3, pc} nop _02032DF4: .word 0x021C5A00 -_02032DF8: .word FUN_0203318C + 1 -_02032DFC: .word FUN_02032178 + 1 +_02032DF8: .word FUN_0203318C +_02032DFC: .word FUN_02032178 thumb_func_start FUN_02032E00 FUN_02032E00: ; 0x02032E00 @@ -109405,7 +109405,7 @@ _02032E3C: pop {r3, pc} nop _02032E40: .word 0x021C5A00 -_02032E44: .word FUN_02032218 + 1 +_02032E44: .word FUN_02032218 thumb_func_start FUN_02032E48 FUN_02032E48: ; 0x02032E48 @@ -109436,7 +109436,7 @@ _02032E82: pop {r3, pc} .balign 4 _02032E84: .word 0x021C5A00 -_02032E88: .word FUN_02032290 + 1 +_02032E88: .word FUN_02032290 thumb_func_start FUN_02032E8C FUN_02032E8C: ; 0x02032E8C @@ -109455,7 +109455,7 @@ FUN_02032E90: ; 0x02032E90 _02032EA2: pop {r3, pc} .balign 4 -_02032EA4: .word FUN_02032E8C + 1 +_02032EA4: .word FUN_02032E8C thumb_func_start FUN_02032EA8 FUN_02032EA8: ; 0x02032EA8 @@ -109513,11 +109513,11 @@ _02032F00: _02032F08: pop {r3, pc} nop -_02032F0C: .word FUN_02032EAC + 1 -_02032F10: .word FUN_02032E8C + 1 -_02032F14: .word FUN_02032E90 + 1 +_02032F0C: .word FUN_02032EAC +_02032F10: .word FUN_02032E8C +_02032F14: .word FUN_02032E90 _02032F18: .word 0x021C5A00 -_02032F1C: .word FUN_02032EA8 + 1 +_02032F1C: .word FUN_02032EA8 thumb_func_start FUN_02032F20 FUN_02032F20: ; 0x02032F20 @@ -109575,10 +109575,10 @@ _02032F78: _02032F84: pop {r3, pc} nop -_02032F88: .word FUN_02032EAC + 1 -_02032F8C: .word FUN_02032E8C + 1 -_02032F90: .word FUN_02032EB0 + 1 -_02032F94: .word FUN_02032EA8 + 1 +_02032F88: .word FUN_02032EAC +_02032F8C: .word FUN_02032E8C +_02032F90: .word FUN_02032EB0 +_02032F94: .word FUN_02032EA8 thumb_func_start FUN_02032F98 FUN_02032F98: ; 0x02032F98 @@ -109607,9 +109607,9 @@ _02032FB2: _02032FCE: pop {r3, pc} .balign 4 -_02032FD0: .word FUN_02032E8C + 1 +_02032FD0: .word FUN_02032E8C _02032FD4: .word 0x021C5A00 -_02032FD8: .word FUN_02032F34 + 1 +_02032FD8: .word FUN_02032F34 thumb_func_start FUN_02032FDC FUN_02032FDC: ; 0x02032FDC @@ -109628,10 +109628,10 @@ FUN_02032FDC: ; 0x02032FDC mov r0, #0x1 pop {r4, pc} .balign 4 -_02032FFC: .word FUN_020303BC + 1 -_02033000: .word FUN_02030238 + 1 +_02032FFC: .word FUN_020303BC +_02033000: .word FUN_02030238 _02033004: .word 0x021C5A00 -_02033008: .word FUN_02032F98 + 1 +_02033008: .word FUN_02032F98 thumb_func_start FUN_0203300C FUN_0203300C: ; 0x0203300C @@ -109672,11 +109672,11 @@ _02033044: bx lr .balign 4 _02033048: .word 0x021C5A00 -_0203304C: .word FUN_02032F34 + 1 -_02033050: .word FUN_02032EB0 + 1 -_02033054: .word FUN_02032E90 + 1 -_02033058: .word FUN_02032EA8 + 1 -_0203305C: .word FUN_02032EAC + 1 +_0203304C: .word FUN_02032F34 +_02033050: .word FUN_02032EB0 +_02033054: .word FUN_02032E90 +_02033058: .word FUN_02032EA8 +_0203305C: .word FUN_02032EAC thumb_func_start FUN_02033060 FUN_02033060: ; 0x02033060 @@ -109701,10 +109701,10 @@ FUN_02033060: ; 0x02033060 _0203308C: pop {r3, pc} nop -_02033090: .word FUN_020303BC + 1 -_02033094: .word FUN_02030238 + 1 +_02033090: .word FUN_020303BC +_02033094: .word FUN_02030238 _02033098: .word 0x021C5A00 -_0203309C: .word FUN_02032F34 + 1 +_0203309C: .word FUN_02032F34 thumb_func_start FUN_020330A0 FUN_020330A0: ; 0x020330A0 @@ -109734,8 +109734,8 @@ _020330D6: pop {r3, pc} .balign 4 _020330D8: .word 0x021C5A00 -_020330DC: .word FUN_02033060 + 1 -_020330E0: .word FUN_02032E8C + 1 +_020330DC: .word FUN_02033060 +_020330E0: .word FUN_02032E8C thumb_func_start FUN_020330E4 FUN_020330E4: ; 0x020330E4 @@ -109769,7 +109769,7 @@ _02033112: pop {r3, pc} nop _02033120: .word 0x021C5A00 -_02033124: .word FUN_020330A0 + 1 +_02033124: .word FUN_020330A0 thumb_func_start FUN_02033128 FUN_02033128: ; 0x02033128 @@ -109796,7 +109796,7 @@ _02033148: bx lr .balign 4 _0203314C: .word 0x021C5A00 -_02033150: .word FUN_02033060 + 1 +_02033150: .word FUN_02033060 thumb_func_start FUN_02033154 FUN_02033154: ; 0x02033154 @@ -109819,8 +109819,8 @@ _0203316E: bx lr nop _02033174: .word 0x021C5A00 -_02033178: .word FUN_02032F34 + 1 -_0203317C: .word FUN_02033060 + 1 +_02033178: .word FUN_02032F34 +_0203317C: .word FUN_02033060 thumb_func_start FUN_02033180 FUN_02033180: ; 0x02033180 @@ -109854,8 +109854,8 @@ _020331AA: _020331BA: pop {r3, pc} .balign 4 -_020331BC: .word FUN_02032440 + 1 -_020331C0: .word FUN_02032E8C + 1 +_020331BC: .word FUN_02032440 +_020331C0: .word FUN_02032E8C thumb_func_start FUN_020331C4 FUN_020331C4: ; 0x020331C4 @@ -109873,7 +109873,7 @@ _020331DC: pop {r3, pc} nop _020331E0: .word 0x021C5A00 -_020331E4: .word FUN_02032440 + 1 +_020331E4: .word FUN_02032440 thumb_func_start FUN_020331E8 FUN_020331E8: ; 0x020331E8 @@ -109891,7 +109891,7 @@ _020331FE: pop {r3, pc} .balign 4 _02033200: .word 0x021C5A00 -_02033204: .word FUN_020330A0 + 1 +_02033204: .word FUN_020330A0 thumb_func_start FUN_02033208 FUN_02033208: ; 0x02033208 @@ -109920,7 +109920,7 @@ _02033232: pop {r3, pc} .balign 4 _02033234: .word 0x021C5A00 -_02033238: .word FUN_020330A0 + 1 +_02033238: .word FUN_020330A0 thumb_func_start FUN_0203323C FUN_0203323C: ; 0x0203323C @@ -109960,8 +109960,8 @@ _02033276: bx lr nop _0203327C: .word 0x021C5A00 -_02033280: .word FUN_02032E8C + 1 -_02033284: .word FUN_02032E90 + 1 +_02033280: .word FUN_02032E8C +_02033284: .word FUN_02032E90 thumb_func_start FUN_02033288 FUN_02033288: ; 0x02033288 @@ -109983,7 +109983,7 @@ FUN_02033288: ; 0x02033288 mov r2, #0x50 str r0, [r1, #0x0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _020332D8 ; =0x021C5A00 mov r2, #0x18 ldr r1, [r0, #0x0] @@ -110049,7 +110049,7 @@ FUN_02033310: ; 0x02033310 mov r2, #0x50 str r0, [r1, #0x0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _02033360 ; =0x021C5A00 mov r2, #0x19 ldr r1, [r0, #0x0] @@ -110160,8 +110160,8 @@ _02033408: _02033412: pop {r3, pc} .balign 4 -_02033414: .word FUN_02032E8C + 1 -_02033418: .word FUN_02033060 + 1 +_02033414: .word FUN_02032E8C +_02033418: .word FUN_02033060 thumb_func_start FUN_0203341C FUN_0203341C: ; 0x0203341C @@ -110195,8 +110195,8 @@ _0203345E: pop {r3, pc} .balign 4 _02033460: .word 0x021C5A00 -_02033464: .word FUN_020335D0 + 1 -_02033468: .word FUN_020333F0 + 1 +_02033464: .word FUN_020335D0 +_02033468: .word FUN_020333F0 thumb_func_start FUN_0203346C FUN_0203346C: ; 0x0203346C @@ -110229,7 +110229,7 @@ _02033482: mov r1, #0x0 ldr r0, [r0, #0x0] add r2, r4, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _020334D4 ; =0x021C5A00 mov r1, #0x0 ldr r2, [r0, #0x0] @@ -110246,7 +110246,7 @@ _02033482: .balign 4 _020334D0: .word 0x00007080 _020334D4: .word 0x021C5A00 -_020334D8: .word FUN_0203341C + 1 +_020334D8: .word FUN_0203341C thumb_func_start FUN_020334DC FUN_020334DC: ; 0x020334DC @@ -110335,27 +110335,27 @@ _02033560: .word 0x021C5A00 thumb_func_start FUN_02033564 FUN_02033564: ; 0x02033564 ldr r1, _02033570 ; =0x021C5A00 - ldr r3, _02033574 ; =FUN_020CE3E0 + ldr r3, _02033574 ; =MI_CpuCopy8 ldr r1, [r1, #0x0] mov r2, #0x6 add r1, r1, #0x4 bx r3 .balign 4 _02033570: .word 0x021C5A00 -_02033574: .word FUN_020CE3E0 +_02033574: .word MI_CpuCopy8 thumb_func_start FUN_02033578 FUN_02033578: ; 0x02033578 add r1, r0, #0x0 ldr r0, _02033588 ; =0x021C5A00 - ldr r3, _0203358C ; =FUN_020CE3E0 + ldr r3, _0203358C ; =MI_CpuCopy8 ldr r0, [r0, #0x0] mov r2, #0x6 add r0, r0, #0x4 bx r3 nop _02033588: .word 0x021C5A00 -_0203358C: .word FUN_020CE3E0 +_0203358C: .word MI_CpuCopy8 thumb_func_start FUN_02033590 FUN_02033590: ; 0x02033590 @@ -110580,11 +110580,11 @@ _02033714: add r5, r0, #0x0 cmp r5, #0x2 bne _02033722 - bl FUN_02020C2C + bl ErrorHandling _02033722: cmp r5, #0x3 bne _0203372A - bl FUN_02020C2C + bl ErrorHandling _0203372A: cmp r5, #0x1 bne _02033774 @@ -110606,11 +110606,11 @@ _0203374A: add r5, r0, #0x0 cmp r5, #0x3 bne _02033758 - bl FUN_02020C2C + bl ErrorHandling _02033758: cmp r5, #0x1 bne _02033760 - bl FUN_02020C2C + bl ErrorHandling _02033760: cmp r5, #0x2 bne _02033774 @@ -110942,7 +110942,7 @@ _020339D8: str r0, [r6, #0x0] cmp r0, #0x3 bne _020339FE - bl FUN_02020C2C + bl ErrorHandling _020339FE: ldr r0, [r6, #0x0] cmp r0, #0x0 @@ -110978,7 +110978,7 @@ _02033A1C: add r0, r7, #0x0 add r1, r1, r3 mov r2, #0xc - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r5, #0x0 bl FUN_0202E1BC b _02033A5C @@ -111022,7 +111022,7 @@ FUN_02033A70: ; 0x02033A70 bl FUN_0202DFD8 ldr r1, [sp, #0x8] mov r2, #0xc - blx FUN_020CE3E0 + blx MI_CpuCopy8 _02033AA6: ldr r0, [sp, #0x28] cmp r0, #0x0 @@ -111148,7 +111148,7 @@ FUN_02033B68: ; 0x02033B68 add r0, r4, #0x0 pop {r4-r6, pc} nop -_02033BC4: .word FUN_02033BC8 + 1 +_02033BC4: .word FUN_02033BC8 thumb_func_start FUN_02033BC8 FUN_02033BC8: ; 0x02033BC8 @@ -111377,7 +111377,7 @@ FUN_02033D3C: ; 0x02033D3C mov r1, #0x96 ldr r0, [sp, #0x4] lsl r1, r1, #0x2 - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [sp, #0x4] add r1, sp, #0x0 blx FUN_020B0138 @@ -111430,7 +111430,7 @@ _02033DC8: mov r1, #0x96 ldr r0, [sp, #0x4] lsl r1, r1, #0x2 - blx FUN_020CC15C + blx DC_FlushRange ldr r0, [sp, #0x4] add r1, sp, #0x0 blx FUN_020B0088 @@ -111642,13 +111642,13 @@ FUN_02033F50: ; 0x02033F50 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] - ldr r3, _02033F6C ; =FUN_020CDA1C + ldr r3, _02033F6C ; =MI_WaitDma mov r0, #0x3 bx r3 nop _02033F64: .word 0x027E0000 _02033F68: .word 0x00003FF8 -_02033F6C: .word FUN_020CDA1C +_02033F6C: .word MI_WaitDma thumb_func_start FUN_02033F70 FUN_02033F70: ; 0x02033F70 @@ -111692,12 +111692,12 @@ _02033FA4: mov r1, #0x0 bl FUN_0200E3A0 mov r0, #0x1 - blx FUN_020C9E14 + blx OS_DisableIrqMask ldr r1, _02034154 ; =FUN_02033F50 mov r0, #0x1 - blx FUN_020C9FEC + blx OS_SetIrqFunction mov r0, #0x1 - blx FUN_020C9E5C + blx OS_EnableIrqMask mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 @@ -111859,7 +111859,7 @@ _02033FA4: add sp, #0x28 pop {r3-r7, pc} nop -_02034154: .word FUN_02033F50 + 1 +_02034154: .word FUN_02033F50 _02034158: .word 0xFFFFE0FF _0203415C: .word 0x04001000 _02034160: .word 0x021C4918 @@ -112032,7 +112032,7 @@ _020342E4: bne _02034308 mov r0, #0x1 add r1, r0, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq b _020342E4 _02034308: add r0, sp, #0x14 @@ -112138,13 +112138,13 @@ _020343D8: ldrb r7, [r6, #0x4] cmp r7, #0x10 bls _0203440A - bl FUN_02020C2C + bl ErrorHandling _0203440A: ldr r1, _02034490 ; =0x00001196 add r0, r5, #0x0 add r1, r4, r1 add r2, r7, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, [sp, #0x8] add r5, r5, r7 cmp r0, #0x0 @@ -112155,7 +112155,7 @@ _0203440A: add r1, r4, #0x2 mul r2, r3 lsl r2, r2, #0x1 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldrb r1, [r4, #0x1] ldrb r0, [r4, #0x0] mul r0, r1 @@ -112171,7 +112171,7 @@ _0203443A: mul r2, r3 lsr r0, r0, #0x10 lsl r2, r2, #0x1 - blx FUN_020CE1C8 + blx MIi_CpuClear16 _0203444E: ldr r0, [sp, #0x4] cmp r0, #0x0 @@ -112182,7 +112182,7 @@ _0203444E: add r0, r5, #0x0 add r1, r4, r1 mul r2, r3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldrb r1, [r4, #0x1] ldrb r0, [r4, #0x0] mul r0, r1 @@ -112195,7 +112195,7 @@ _0203446C: mul r2, r3 add r1, r4, r1 lsl r2, r2, #0x1 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r6, #0x0 bl FUN_02016A18 add sp, #0xc @@ -112243,7 +112243,7 @@ FUN_020344D0: ; 0x020344D0 ldr r3, _020344D4 ; =FUN_02016A18 bx r3 .balign 4 -_020344D4: .word FUN_02016A18 + 1 +_020344D4: .word FUN_02016A18 thumb_func_start FUN_020344D8 FUN_020344D8: ; 0x020344D8 @@ -112255,7 +112255,7 @@ FUN_020344D8: ; 0x020344D8 mul r0, r1 cmp r5, r0 blt _020344EC - bl FUN_02020C2C + bl ErrorHandling _020344EC: lsl r0, r5, #0x1 add r1, r4, r0 @@ -112270,7 +112270,7 @@ FUN_020344FC: ; 0x020344FC push {r4, lr} add r4, r0, #0x0 bne _02034506 - bl FUN_02020C2C + bl ErrorHandling _02034506: ldrb r0, [r4, #0x0] pop {r4, pc} @@ -112281,7 +112281,7 @@ FUN_0203450C: ; 0x0203450C push {r4, lr} add r4, r0, #0x0 bne _02034516 - bl FUN_02020C2C + bl ErrorHandling _02034516: ldrb r0, [r4, #0x1] pop {r4, pc} @@ -112301,7 +112301,7 @@ FUN_0203451C: ; 0x0203451C cmp r5, r6 blt _02034536 _02034532: - bl FUN_02020C2C + bl ErrorHandling _02034536: cmp r4, #0x0 blt _02034540 @@ -112309,7 +112309,7 @@ _02034536: cmp r4, r0 blt _02034544 _02034540: - bl FUN_02020C2C + bl ErrorHandling _02034544: add r0, r4, #0x0 mul r0, r6 @@ -112333,7 +112333,7 @@ FUN_02034554: ; 0x02034554 cmp r4, r0 blt _0203456C _02034568: - bl FUN_02020C2C + bl ErrorHandling _0203456C: lsl r0, r4, #0x1 add r0, r5, r0 @@ -112354,7 +112354,7 @@ FUN_02034578: ; 0x02034578 add r6, r3, #0x0 cmp r4, r0 blt _0203458A - bl FUN_02020C2C + bl ErrorHandling _0203458A: ldr r0, [sp, #0x10] mul r0, r6 @@ -112363,7 +112363,7 @@ _0203458A: lsl r0, r0, #0x2 cmp r4, r0 blt _0203459C - bl FUN_02020C2C + bl ErrorHandling _0203459C: ldr r0, _020345A4 ; =0x0000070E add r1, r5, r4 @@ -112389,7 +112389,7 @@ FUN_020345A8: ; 0x020345A8 ldr r2, _020345D8 ; =0x00000708 add r0, r0, r1 add r1, r5, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r4, #0x0 bl FUN_02016A18 add r0, r5, #0x0 @@ -112402,7 +112402,7 @@ FUN_020345DC: ; 0x020345DC push {r4, lr} add r4, r0, #0x0 bne _020345E6 - bl FUN_02020C2C + bl ErrorHandling _020345E6: add r0, r4, #0x0 bl FUN_02016A18 @@ -112442,13 +112442,13 @@ FUN_020345FC: ; 0x020345FC ldrb r0, [r0, #0x1] cmp r5, r0 blt _0203462E - bl FUN_02020C2C + bl ErrorHandling _0203462E: add r0, sp, #0x0 ldrb r0, [r0, #0x0] cmp r4, r0 blt _0203463A - bl FUN_02020C2C + bl ErrorHandling _0203463A: add r0, sp, #0x0 ldrb r0, [r0, #0x1] @@ -112476,7 +112476,7 @@ FUN_02034660: ; 0x02034660 add r5, r0, #0x0 add r4, r1, #0x0 bne _0203466C - bl FUN_02020C2C + bl ErrorHandling _0203466C: add r0, r5, #0x0 add r1, r4, #0x0 @@ -112571,7 +112571,7 @@ FUN_02034710: ; 0x02034710 ldr r1, _02034720 ; =0x0000022F cmp r0, r1 blo _0203471E - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x3 _0203471E: pop {r3, pc} @@ -113053,7 +113053,7 @@ FUN_02034A28: ; 0x02034A28 add r4, r1, #0x0 cmp r0, #0x0 beq _02034A38 - bl FUN_02020C2C + bl ErrorHandling _02034A38: ldr r1, _02034A44 ; =0x00000AC8 add r0, r4, #0x0 @@ -113070,7 +113070,7 @@ FUN_02034A48: ; 0x02034A48 ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02034A56 - bl FUN_02020C2C + bl ErrorHandling _02034A56: ldr r0, [r4, #0x14] bl FUN_02016A18 @@ -113085,7 +113085,7 @@ FUN_02034A60: ; 0x02034A60 add r4, r1, #0x0 cmp r0, #0x0 bne _02034A70 - bl FUN_02020C2C + bl ErrorHandling _02034A70: ldr r0, [r5, #0x14] add r1, r4, #0x0 @@ -113118,7 +113118,7 @@ FUN_02034A98: ; 0x02034A98 lsl r1, r1, #0xa cmp r0, r1 blo _02034AB8 - bl FUN_02020C2C + bl ErrorHandling _02034AB8: add r5, #0x20 add r0, r5, #0x0 @@ -113136,7 +113136,7 @@ FUN_02034AC8: ; 0x02034AC8 ldr r4, [r0, #0x4] cmp r0, #0x0 bne _02034AD8 - bl FUN_02020C2C + bl ErrorHandling _02034AD8: cmp r4, #0x0 beq _02034AEC @@ -113274,7 +113274,7 @@ _02034B9C: cmp r2, r5 blo _02034B8A _02034BA4: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} @@ -113303,7 +113303,7 @@ _02034BCC: cmp r3, r5 blo _02034BBC _02034BD4: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} @@ -113332,7 +113332,7 @@ _02034BFC: cmp r3, r5 blo _02034BEC _02034C04: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} @@ -113482,7 +113482,7 @@ FUN_02034CEC: ; 0x02034CEC mov r0, #0x0 add r1, r5, r1 lsl r2, r2, #0x8 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r0, #0xa add r1, r4, #0x0 bl FUN_020065A4 @@ -113490,7 +113490,7 @@ FUN_02034CEC: ; 0x02034CEC lsl r1, r1, #0x8 cmp r0, r1 blo _02034D1C - bl FUN_02020C2C + bl ErrorHandling _02034D1C: mov r0, #0x82 lsl r0, r0, #0x4 @@ -113507,7 +113507,7 @@ FUN_02034D2C: ; 0x02034D2C ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02034D3A - bl FUN_02020C2C + bl ErrorHandling _02034D3A: mov r0, #0x82 ldr r1, [r4, #0x14] @@ -113563,14 +113563,14 @@ FUN_02034D80: ; 0x02034D80 thumb_func_start FUN_02034D88 FUN_02034D88: ; 0x02034D88 - ldr r3, _02034D94 ; =FUN_020CE1FC + ldr r3, _02034D94 ; =MIi_CpuClear32 mov r2, #0x5 add r1, r0, #0x0 mov r0, #0x0 lsl r2, r2, #0xa bx r3 .balign 4 -_02034D94: .word FUN_020CE1FC +_02034D94: .word MIi_CpuClear32 thumb_func_start FUN_02034D98 FUN_02034D98: ; 0x02034D98 @@ -113707,7 +113707,7 @@ FUN_02034E30: ; 0x02034E30 mov r1, #0x6 bx r3 nop -_02034E38: .word FUN_02022610 + 1 +_02034E38: .word FUN_02022610 thumb_func_start FUN_02034E3C FUN_02034E3C: ; 0x02034E3C @@ -113715,7 +113715,7 @@ FUN_02034E3C: ; 0x02034E3C mov r1, #0xb bx r3 nop -_02034E44: .word FUN_02022610 + 1 +_02034E44: .word FUN_02022610 thumb_func_start FUN_02034E48 FUN_02034E48: ; 0x02034E48 @@ -113751,7 +113751,7 @@ FUN_02034E78: ; 0x02034E78 cmp r0, #0x14 bls _02034E88 _02034E82: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 _02034E88: sub r0, r0, #0x1 @@ -113969,7 +113969,7 @@ FUN_02034FE4: ; 0x02034FE4 cmp r5, r0 blt _02035010 _0203500C: - bl FUN_02020C2C + bl ErrorHandling _02035010: ldr r0, [r6, #0x8] cmp r0, #0x2 @@ -114100,7 +114100,7 @@ _02035106: bl FUN_020463CC pop {r3-r5, pc} nop -_02035114: .word FUN_020352E4 + 1 +_02035114: .word FUN_020352E4 thumb_func_start FUN_02035118 FUN_02035118: ; 0x02035118 @@ -114132,7 +114132,7 @@ _0203514C: bl FUN_020463CC pop {r3-r5, pc} .balign 4 -_02035158: .word FUN_020352E4 + 1 +_02035158: .word FUN_020352E4 thumb_func_start FUN_0203515C FUN_0203515C: ; 0x0203515C @@ -114164,7 +114164,7 @@ _02035190: bl FUN_020463CC pop {r3-r5, pc} .balign 4 -_0203519C: .word FUN_020352E4 + 1 +_0203519C: .word FUN_020352E4 thumb_func_start FUN_020351A0 FUN_020351A0: ; 0x020351A0 @@ -114248,7 +114248,7 @@ _02035240: pop {r3-r5, pc} .balign 4 _0203524C: .word 0x000005FD -_02035250: .word FUN_020352E4 + 1 +_02035250: .word FUN_020352E4 thumb_func_start FUN_02035254 FUN_02035254: ; 0x02035254 @@ -115603,7 +115603,7 @@ FUN_02035D10: ; 0x02035D10 mov r0, #0x1 pop {r4, pc} nop -_02035D30: .word FUN_02035D34 + 1 +_02035D30: .word FUN_02035D34 thumb_func_start FUN_02035D34 FUN_02035D34: ; 0x02035D34 @@ -115668,7 +115668,7 @@ FUN_02035D34: ; 0x02035D34 add sp, #0x8 pop {r3-r7, pc} .balign 4 -_02035DC4: .word FUN_02035DC8 + 1 +_02035DC4: .word FUN_02035DC8 thumb_func_start FUN_02035DC8 FUN_02035DC8: ; 0x02035DC8 @@ -115710,7 +115710,7 @@ FUN_02035DF8: ; 0x02035DF8 mov r0, #0x1 pop {r4, pc} nop -_02035E18: .word FUN_02035E1C + 1 +_02035E18: .word FUN_02035E1C thumb_func_start FUN_02035E1C FUN_02035E1C: ; 0x02035E1C @@ -115736,7 +115736,7 @@ FUN_02035E1C: ; 0x02035E1C mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_02035E4C: .word FUN_02035E50 + 1 +_02035E4C: .word FUN_02035E50 thumb_func_start FUN_02035E50 FUN_02035E50: ; 0x02035E50 @@ -115808,7 +115808,7 @@ _02035ECC: bl FUN_0206BB1C str r0, [r7, #0x0] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r7, #0x4] mov r0, #0x1 strb r0, [r7, #0x11] @@ -115860,7 +115860,7 @@ _02035F4A: bl FUN_0206BB1C str r0, [r7, #0x0] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r7, #0x4] mov r1, #0x1 add r0, r6, #0x0 @@ -115917,7 +115917,7 @@ _02035FD0: bl FUN_0206BB1C str r0, [r7, #0x0] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r7, #0x4] mov r1, #0x1 add r0, r6, #0x0 @@ -116218,11 +116218,11 @@ _0203625E: pop {r4-r7, pc} nop _0203626C: .word 0x020F2A9C -_02036270: .word FUN_0203684C + 1 +_02036270: .word FUN_0203684C _02036274: .word 0x020F2A8C -_02036278: .word FUN_02036BDC + 1 +_02036278: .word FUN_02036BDC _0203627C: .word 0x020F2A90 -_02036280: .word FUN_020362E4 + 1 +_02036280: .word FUN_020362E4 thumb_func_start FUN_02036284 FUN_02036284: ; 0x02036284 @@ -116240,7 +116240,7 @@ FUN_02036284: ; 0x02036284 mov r0, #0x1 pop {r4, pc} nop -_020362A4: .word FUN_020362A8 + 1 +_020362A4: .word FUN_020362A8 thumb_func_start FUN_020362A8 FUN_020362A8: ; 0x020362A8 @@ -116269,7 +116269,7 @@ FUN_020362A8: ; 0x020362A8 mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_020362E0: .word FUN_020362E4 + 1 +_020362E0: .word FUN_020362E4 thumb_func_start FUN_020362E4 FUN_020362E4: ; 0x020362E4 @@ -116365,7 +116365,7 @@ _0203638A: bl FUN_02025838 str r0, [r5, #0x8] ldr r0, [r6, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r5, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 @@ -116464,7 +116464,7 @@ _02036474: bl FUN_02025838 str r0, [r5, #0x8] ldr r0, [r6, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r5, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 @@ -116516,8 +116516,8 @@ _020364F8: pop {r3-r7, pc} .balign 4 _02036504: .word 0x020F96DC -_02036508: .word FUN_02035E50 + 1 -_0203650C: .word FUN_02036BDC + 1 +_02036508: .word FUN_02035E50 +_0203650C: .word FUN_02036BDC thumb_func_start FUN_02036510 FUN_02036510: ; 0x02036510 @@ -116535,7 +116535,7 @@ FUN_02036510: ; 0x02036510 mov r0, #0x1 pop {r4, pc} nop -_02036530: .word FUN_02036534 + 1 +_02036530: .word FUN_02036534 thumb_func_start FUN_02036534 FUN_02036534: ; 0x02036534 @@ -116573,7 +116573,7 @@ FUN_02036534: ; 0x02036534 add sp, #0x8 pop {r3-r5, pc} .balign 4 -_02036580: .word FUN_02036584 + 1 +_02036580: .word FUN_02036584 thumb_func_start FUN_02036584 FUN_02036584: ; 0x02036584 @@ -116714,7 +116714,7 @@ FUN_02036684: ; 0x02036684 mov r0, #0x1 pop {r4, pc} nop -_020366A4: .word FUN_020366A8 + 1 +_020366A4: .word FUN_020366A8 thumb_func_start FUN_020366A8 FUN_020366A8: ; 0x020366A8 @@ -116736,7 +116736,7 @@ FUN_020366A8: ; 0x020366A8 mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_020366D0: .word FUN_020366D4 + 1 +_020366D0: .word FUN_020366D4 thumb_func_start FUN_020366D4 FUN_020366D4: ; 0x020366D4 @@ -116775,7 +116775,7 @@ FUN_02036700: ; 0x02036700 mov r0, #0x1 pop {r4, pc} nop -_02036720: .word FUN_02036724 + 1 +_02036720: .word FUN_02036724 thumb_func_start FUN_02036724 FUN_02036724: ; 0x02036724 @@ -116816,7 +116816,7 @@ FUN_02036724: ; 0x02036724 add sp, #0x8 pop {r3-r5, pc} .balign 4 -_02036778: .word FUN_0203677C + 1 +_02036778: .word FUN_0203677C thumb_func_start FUN_0203677C FUN_0203677C: ; 0x0203677C @@ -116957,7 +116957,7 @@ FUN_0203684C: ; 0x0203684C bl FUN_02025838 str r0, [r5, #0x8] ldr r0, [r6, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r5, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 @@ -117034,7 +117034,7 @@ _0203694A: pop {r3-r7, pc} .balign 4 _02036954: .word 0x020F96DC -_02036958: .word FUN_02035E50 + 1 +_02036958: .word FUN_02035E50 thumb_func_start FUN_0203695C FUN_0203695C: ; 0x0203695C @@ -117119,7 +117119,7 @@ _020369C6: add sp, #0xc pop {r4-r7, pc} .balign 4 -_02036A10: .word FUN_02036A14 + 1 +_02036A10: .word FUN_02036A14 thumb_func_start FUN_02036A14 FUN_02036A14: ; 0x02036A14 @@ -117164,7 +117164,7 @@ FUN_02036A14: ; 0x02036A14 mov r0, #0x0 pop {r3-r5, pc} nop -_02036A74: .word FUN_020362E4 + 1 +_02036A74: .word FUN_020362E4 thumb_func_start FUN_02036A78 FUN_02036A78: ; 0x02036A78 @@ -117194,7 +117194,7 @@ FUN_02036A78: ; 0x02036A78 mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_02036AB4: .word FUN_020362E4 + 1 +_02036AB4: .word FUN_020362E4 thumb_func_start FUN_02036AB8 FUN_02036AB8: ; 0x02036AB8 @@ -117292,8 +117292,8 @@ _02036B82: add sp, #0x8 pop {r3-r7, pc} .balign 4 -_02036B88: .word FUN_02035E50 + 1 -_02036B8C: .word FUN_020638BC + 1 +_02036B88: .word FUN_02035E50 +_02036B8C: .word FUN_020638BC thumb_func_start FUN_02036B90 FUN_02036B90: ; 0x02036B90 @@ -117318,7 +117318,7 @@ FUN_02036B90: ; 0x02036B90 mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_02036BC0: .word FUN_020362E4 + 1 +_02036BC0: .word FUN_020362E4 thumb_func_start FUN_02036BC4 FUN_02036BC4: ; 0x02036BC4 @@ -117457,8 +117457,8 @@ _02036CD4: mov r0, #0x0 pop {r4-r6, pc} nop -_02036CE4: .word FUN_020362E4 + 1 -_02036CE8: .word FUN_02035E50 + 1 +_02036CE4: .word FUN_020362E4 +_02036CE8: .word FUN_02035E50 thumb_func_start FUN_02036CEC FUN_02036CEC: ; 0x02036CEC @@ -117486,7 +117486,7 @@ FUN_02036CEC: ; 0x02036CEC bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 @@ -117532,7 +117532,7 @@ FUN_02036CEC: ; 0x02036CEC pop {r3-r7, pc} nop _02036D8C: .word 0x020F96DC -_02036D90: .word FUN_02035E50 + 1 +_02036D90: .word FUN_02035E50 thumb_func_start FUN_02036D94 FUN_02036D94: ; 0x02036D94 @@ -117561,7 +117561,7 @@ FUN_02036D94: ; 0x02036D94 mov r0, #0x0 pop {r3-r5, pc} nop -_02036DD0: .word FUN_020362E4 + 1 +_02036DD0: .word FUN_020362E4 thumb_func_start FUN_02036DD4 FUN_02036DD4: ; 0x02036DD4 @@ -117586,7 +117586,7 @@ FUN_02036DD4: ; 0x02036DD4 mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_02036E04: .word FUN_020362E4 + 1 +_02036E04: .word FUN_020362E4 thumb_func_start FUN_02036E08 FUN_02036E08: ; 0x02036E08 @@ -117616,7 +117616,7 @@ FUN_02036E08: ; 0x02036E08 cmp r0, #0x0 ldr r0, [r4, #0xc] bne _02036E9E - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x28] ldr r0, [r4, #0xc] bl FUN_02079C70 @@ -117653,7 +117653,7 @@ FUN_02036E08: ; 0x02036E08 bl FUN_0206C700 b _02036EF2 _02036E9E: - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x38] ldr r0, [r4, #0xc] bl FUN_02079C70 @@ -117765,7 +117765,7 @@ _02036F98: pop {r3-r5, pc} nop _02036F9C: .word 0x00000475 -_02036FA0: .word FUN_020362E4 + 1 +_02036FA0: .word FUN_020362E4 thumb_func_start FUN_02036FA4 FUN_02036FA4: ; 0x02036FA4 @@ -118289,13 +118289,13 @@ FUN_02037350: ; 0x02037350 ldr r0, [r0, #0x4] cmp r0, #0x0 beq _02037360 - bl FUN_02020C2C + bl ErrorHandling _02037360: ldr r0, [r4, #0x0] ldr r0, [r0, #0x0] cmp r0, #0x0 beq _0203736C - bl FUN_02020C2C + bl ErrorHandling _0203736C: ldr r0, _0203738C ; =0x00000005 mov r1, #0x2 @@ -118372,7 +118372,7 @@ FUN_020373D4: ; 0x020373D4 add r6, r2, #0x0 cmp r0, #0x0 beq _020373E8 - bl FUN_02020C2C + bl ErrorHandling _020373E8: add r0, r5, #0x0 bl FUN_02037394 @@ -118410,7 +118410,7 @@ FUN_02037400: ; 0x02037400 mov r1, #0x0 mov r2, #0xb8 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0xb mov r1, #0x10 bl FUN_02016998 @@ -118803,7 +118803,7 @@ FUN_02037760: ; 0x02037760 bx r3 nop _02037770: .word 0x021C5A08 -_02037774: .word FUN_02030FC8 + 1 +_02037774: .word FUN_02030FC8 thumb_func_start FUN_02037778 FUN_02037778: ; 0x02037778 @@ -118816,7 +118816,7 @@ FUN_02037778: ; 0x02037778 bx r3 nop _02037788: .word 0x021C5A08 -_0203778C: .word FUN_02030FA8 + 1 +_0203778C: .word FUN_02030FA8 thumb_func_start FUN_02037790 FUN_02037790: ; 0x02037790 @@ -118909,7 +118909,7 @@ FUN_0203780C: ; 0x0203780C ldr r1, _02037818 ; =0x020F2D94 bx r3 .balign 4 -_02037814: .word FUN_020373D4 + 1 +_02037814: .word FUN_020373D4 _02037818: .word 0x020F2D94 thumb_func_start FUN_0203781C @@ -118997,7 +118997,7 @@ _020378BC: str r1, [r0, #0x0] b _020378C8 _020378C4: - bl FUN_02020C2C + bl ErrorHandling _020378C8: ldr r1, _020378F4 ; =0x02105DB8 add r0, r6, #0x0 @@ -119032,7 +119032,7 @@ FUN_020378FC: ; 0x020378FC bl FUN_0206E384 cmp r0, #0x5 bne _02037916 - bl FUN_02020C2C + bl ErrorHandling _02037916: add r0, r4, #0x0 pop {r3-r5, pc} @@ -119087,7 +119087,7 @@ FUN_0203796C: ; 0x0203796C ldr r1, _02037978 ; =0x020FA6E8 bx r3 .balign 4 -_02037974: .word FUN_020373D4 + 1 +_02037974: .word FUN_020373D4 _02037978: .word 0x020FA6E8 thumb_func_start FUN_0203797C @@ -119102,7 +119102,7 @@ FUN_0203797C: ; 0x0203797C mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x40 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r0, [r5, #0xc] bl FUN_0206BB1C str r0, [r4, #0x0] @@ -119113,7 +119113,7 @@ FUN_0203797C: ; 0x0203797C bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] add r0, r4, #0x0 add r0, #0x21 @@ -119375,7 +119375,7 @@ FUN_02037B44: ; 0x02037B44 add r0, r5, #0x0 pop {r3-r7, pc} .balign 4 -_02037BAC: .word FUN_02037A7C + 1 +_02037BAC: .word FUN_02037A7C thumb_func_start FUN_02037BB0 FUN_02037BB0: ; 0x02037BB0 @@ -119433,7 +119433,7 @@ FUN_02037C00: ; 0x02037C00 bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x4] mov r0, #0x1 strb r0, [r4, #0x11] @@ -119484,9 +119484,9 @@ FUN_02037C7C: ; 0x02037C7C mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_0206BB1C @@ -119538,7 +119538,7 @@ FUN_02037CF0: ; 0x02037CF0 bl FUN_0206BB1C str r0, [r4, #0x0] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x4] mov r0, #0x1 strb r0, [r4, #0x11] @@ -119582,7 +119582,7 @@ FUN_02037D60: ; 0x02037D60 ldr r1, _02037D6C ; =0x020F2CF4 bx r3 .balign 4 -_02037D68: .word FUN_020373D4 + 1 +_02037D68: .word FUN_020373D4 _02037D6C: .word 0x020F2CF4 thumb_func_start FUN_02037D70 @@ -119716,7 +119716,7 @@ _02037E6C: add sp, #0x8 pop {r3-r7, pc} nop -_02037E7C: .word FUN_02037D70 + 1 +_02037E7C: .word FUN_02037D70 thumb_func_start FUN_02037E80 FUN_02037E80: ; 0x02037E80 @@ -119725,7 +119725,7 @@ FUN_02037E80: ; 0x02037E80 ldr r1, _02037E8C ; =0x020F2CE4 bx r3 .balign 4 -_02037E88: .word FUN_020373D4 + 1 +_02037E88: .word FUN_020373D4 _02037E8C: .word 0x020F2CE4 thumb_func_start FUN_02037E90 @@ -119778,7 +119778,7 @@ FUN_02037EE8: ; 0x02037EE8 ldr r1, _02037EF4 ; =0x020F2CC4 bx r3 .balign 4 -_02037EF0: .word FUN_020373D4 + 1 +_02037EF0: .word FUN_020373D4 _02037EF4: .word 0x020F2CC4 thumb_func_start FUN_02037EF8 @@ -119791,7 +119791,7 @@ FUN_02037EF8: ; 0x02037EF8 add r4, r0, #0x0 add r0, r5, #0x0 bl FUN_020377AC - bl FUN_02023900 + bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r5, #0x0 bl FUN_02037EE8 @@ -119805,7 +119805,7 @@ FUN_02037F1C: ; 0x02037F1C ldr r1, _02037F28 ; =0x020FCAC8 bx r3 .balign 4 -_02037F24: .word FUN_020373D4 + 1 +_02037F24: .word FUN_020373D4 _02037F28: .word 0x020FCAC8 thumb_func_start FUN_02037F2C @@ -119883,7 +119883,7 @@ FUN_02037FB4: ; 0x02037FB4 ldr r1, _02037FC0 ; =0x020FD1B0 bx r3 .balign 4 -_02037FBC: .word FUN_020373D4 + 1 +_02037FBC: .word FUN_020373D4 _02037FC0: .word 0x020FD1B0 thumb_func_start FUN_02037FC4 @@ -119951,7 +119951,7 @@ FUN_0203800C: ; 0x0203800C str r7, [r4, #0x4] str r0, [r4, #0x8] add r0, r5, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] add r0, r5, #0x0 bl FUN_02029FC8 @@ -120052,7 +120052,7 @@ _020380E8: add sp, #0x8 pop {r3-r7, pc} nop -_02038118: .word FUN_02038070 + 1 +_02038118: .word FUN_02038070 thumb_func_start FUN_0203811C FUN_0203811C: ; 0x0203811C @@ -120095,7 +120095,7 @@ FUN_02038144: ; 0x02038144 bl FUN_02029AFC str r0, [r5, #0x14] ldr r0, [r4, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r5, #0x18] ldr r0, [r4, #0xc] bl FUN_02024DA0 @@ -120242,7 +120242,7 @@ _02038288: bl FUN_020690E4 str r0, [r4, #0x4c] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x5c] mov r0, #0x1 str r0, [r4, #0x58] @@ -120310,7 +120310,7 @@ _020382F6: lsl r2, r0, #0x10 bl FUN_0201681C ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x24] ldr r0, [r5, #0xc] bl FUN_02079C70 @@ -120403,7 +120403,7 @@ FUN_020383D8: ; 0x020383D8 bl FUN_0204640C pop {r4, pc} .balign 4 -_020383F4: .word FUN_020381FC + 1 +_020383F4: .word FUN_020381FC thumb_func_start FUN_020383F8 FUN_020383F8: ; 0x020383F8 @@ -120420,7 +120420,7 @@ FUN_020383F8: ; 0x020383F8 ldr r0, [r0, #0x0] str r0, [r4, #0x4] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x8] ldr r1, _02038428 ; =0x020F2C94 add r0, r5, #0x0 @@ -120443,7 +120443,7 @@ FUN_0203842C: ; 0x0203842C ldr r0, [r5, #0x7c] str r0, [r4, #0x4] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x8] ldr r0, [r5, #0xc] bl FUN_02029FC8 @@ -120468,7 +120468,7 @@ FUN_0203846C: ; 0x0203846C ldr r1, _02038478 ; =0x020F2D54 bx r3 .balign 4 -_02038474: .word FUN_020373D4 + 1 +_02038474: .word FUN_020373D4 _02038478: .word 0x020F2D54 thumb_func_start FUN_0203847C @@ -120659,7 +120659,7 @@ FUN_020385CC: ; 0x020385CC ldr r0, [sp, #0x30] str r0, [r4, #0x8] ldr r0, [r7, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x0] ldr r2, [sp, #0x8] ldr r3, [sp, #0xc] @@ -120719,7 +120719,7 @@ _0203866E: add sp, #0x10 pop {r3-r7, pc} .balign 4 -_0203867C: .word FUN_0203847C + 1 +_0203867C: .word FUN_0203847C thumb_func_start FUN_02038680 FUN_02038680: ; 0x02038680 @@ -120728,7 +120728,7 @@ FUN_02038680: ; 0x02038680 ldr r1, _0203868C ; =0x020F2C54 bx r3 .balign 4 -_02038688: .word FUN_020373D4 + 1 +_02038688: .word FUN_020373D4 _0203868C: .word 0x020F2C54 thumb_func_start FUN_02038690 @@ -120749,7 +120749,7 @@ FUN_020386A4: ; 0x020386A4 ldr r1, _020386B0 ; =0x020F2C34 bx r3 .balign 4 -_020386AC: .word FUN_020373D4 + 1 +_020386AC: .word FUN_020373D4 _020386B0: .word 0x020F2C34 thumb_func_start FUN_020386B4 @@ -120817,7 +120817,7 @@ FUN_020386E0: ; 0x020386E0 bl FUN_020238F4 str r0, [r4, #0x1c] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x24] ldr r0, [r5, #0xc] bl FUN_02029FC8 @@ -120877,7 +120877,7 @@ FUN_02038790: ; 0x02038790 bl FUN_02023788 str r0, [r4, #0x8] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x10] ldr r0, [r5, #0xc] bl FUN_020286EC @@ -120908,7 +120908,7 @@ FUN_02038804: ; 0x02038804 ldr r2, [r0, #0xc] bx r3 .balign 4 -_0203880C: .word FUN_020373D4 + 1 +_0203880C: .word FUN_020373D4 _02038810: .word 0x020F2D14 thumb_func_start FUN_02038814 @@ -120918,7 +120918,7 @@ FUN_02038814: ; 0x02038814 ldr r1, _02038820 ; =0x020F2D64 bx r3 .balign 4 -_0203881C: .word FUN_020373D4 + 1 +_0203881C: .word FUN_020373D4 _02038820: .word 0x020F2D64 thumb_func_start FUN_02038824 @@ -120953,7 +120953,7 @@ FUN_02038854: ; 0x02038854 ldr r1, _02038860 ; =0x020F2C04 bx r3 .balign 4 -_0203885C: .word FUN_020373D4 + 1 +_0203885C: .word FUN_020373D4 _02038860: .word 0x020F2C04 thumb_func_start FUN_02038864 @@ -121008,14 +121008,14 @@ FUN_020388B4: ; 0x020388B4 bl FUN_021ED49C add r5, r0, #0x0 bne _020388CC - bl FUN_02020C2C + bl ErrorHandling _020388CC: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_020613CC str r5, [sp, #0x0] ldr r0, [r4, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x4] ldr r0, [r4, #0xc] bl FUN_020238F4 @@ -121133,7 +121133,7 @@ FUN_020389CC: ; 0x020389CC bl FUN_02046528 add r5, r0, #0x0 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x0] mov r0, #0x20 add r1, r0, #0x0 @@ -121170,7 +121170,7 @@ FUN_020389CC: ; 0x020389CC bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_02038A38: .word FUN_02038914 + 1 +_02038A38: .word FUN_02038914 thumb_func_start FUN_02038A3C FUN_02038A3C: ; 0x02038A3C @@ -121187,7 +121187,7 @@ FUN_02038A3C: ; 0x02038A3C ldr r0, _02038AAC ; =0x020F2BE8 add r1, sp, #0x8 mov r2, #0xc - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r4, #0x0 mov r7, #0xc add r6, sp, #0x8 @@ -121200,7 +121200,7 @@ _02038A68: _02038A72: bl FUN_0201B9EC add r1, r7, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x18 lsr r2, r0, #0x18 ldrb r1, [r6, r4] @@ -121261,7 +121261,7 @@ FUN_02038AD0: ; 0x02038AD0 bl FUN_0204640C pop {r4, pc} .balign 4 -_02038AF0: .word FUN_02038AB0 + 1 +_02038AF0: .word FUN_02038AB0 thumb_func_start FUN_02038AF4 FUN_02038AF4: ; 0x02038AF4 @@ -121391,7 +121391,7 @@ _02038BB2: ldr r0, [r4, #0x60] cmp r1, r0 blo _02038BCA - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 strb r0, [r4, #0x1] pop {r4, pc} @@ -121527,7 +121527,7 @@ FUN_02038C78: ; 0x02038C78 bl FUN_020463CC pop {r3-r7, pc} nop -_02038CA4: .word FUN_02038D48 + 1 +_02038CA4: .word FUN_02038D48 thumb_func_start FUN_02038CA8 FUN_02038CA8: ; 0x02038CA8 @@ -121580,7 +121580,7 @@ FUN_02038CD8: ; 0x02038CD8 add sp, #0xc pop {r4-r7, pc} .balign 4 -_02038D0C: .word FUN_02038D48 + 1 +_02038D0C: .word FUN_02038D48 thumb_func_start FUN_02038D10 FUN_02038D10: ; 0x02038D10 @@ -121607,7 +121607,7 @@ FUN_02038D10: ; 0x02038D10 add sp, #0x8 pop {r3-r7, pc} .balign 4 -_02038D44: .word FUN_02038D48 + 1 +_02038D44: .word FUN_02038D48 thumb_func_start FUN_02038D48 FUN_02038D48: ; 0x02038D48 @@ -121668,7 +121668,7 @@ _02038DA8: ldrb r0, [r4, #0x9] cmp r0, #0x0 bne _02038DC8 - bl FUN_02020C2C + bl ErrorHandling _02038DC8: mov r0, #0x0 str r0, [r5, #0x38] @@ -121722,7 +121722,7 @@ FUN_02038E20: ; 0x02038E20 bl FUN_02016998 add r4, r0, #0x0 bne _02038E32 - bl FUN_02020C2C + bl ErrorHandling _02038E32: add r0, r4, #0x0 mov r1, #0x0 @@ -121797,7 +121797,7 @@ FUN_02038EB0: ; 0x02038EB0 bl FUN_02016998 add r4, r0, #0x0 bne _02038EC6 - bl FUN_02020C2C + bl ErrorHandling _02038EC6: ldr r2, _02038EE4 ; =0x020F34DC ldr r1, _02038EE8 ; =0x020F355C @@ -122498,7 +122498,7 @@ _02039426: add r0, r0, r1 pop {r3, pc} _02039430: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} @@ -122513,7 +122513,7 @@ FUN_02039438: ; 0x02039438 ldr r0, _0203945C ; =0x0003643F cmp r1, r0 beq _02039450 - bl FUN_02020C2C + bl ErrorHandling _02039450: add r0, r4, #0x0 add r1, r5, #0x0 @@ -122539,7 +122539,7 @@ FUN_02039460: ; 0x02039460 _0203947C: pop {r3-r5, pc} nop -_02039480: .word FUN_020351A0 + 1 +_02039480: .word FUN_020351A0 thumb_func_start FUN_02039484 FUN_02039484: ; 0x02039484 @@ -122571,7 +122571,7 @@ FUN_020394B0: ; 0x020394B0 ldr r3, _020394B4 ; =FUN_02034774 bx r3 .balign 4 -_020394B4: .word FUN_02034774 + 1 +_020394B4: .word FUN_02034774 thumb_func_start FUN_020394B8 FUN_020394B8: ; 0x020394B8 @@ -122622,7 +122622,7 @@ FUN_02039504: ; 0x02039504 add r5, r0, #0x0 cmp r4, #0x10 blo _02039512 - bl FUN_02020C2C + bl ErrorHandling _02039512: ldr r1, _02039524 ; =0x00004020 add r0, r5, #0x0 @@ -122869,7 +122869,7 @@ _020396C0: _020396CE: cmp r1, #0xe5 blo _020396DA - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4, pc} _020396DA: @@ -122913,7 +122913,7 @@ _02039718: _02039726: cmp r1, #0xe5 blo _02039732 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} _02039732: @@ -123083,7 +123083,7 @@ FUN_02039874: ; 0x02039874 lsl r1, r1, #0x6 bx r3 .balign 4 -_0203987C: .word FUN_02039880 + 1 +_0203987C: .word FUN_02039880 thumb_func_start FUN_02039880 FUN_02039880: ; 0x02039880 @@ -123292,7 +123292,7 @@ FUN_020399B4: ; 0x020399B4 mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_020399E4: .word FUN_020399E8 + 1 +_020399E4: .word FUN_020399E8 thumb_func_start FUN_020399E8 FUN_020399E8: ; 0x020399E8 @@ -123684,7 +123684,7 @@ FUN_02039C78: ; 0x02039C78 mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_02039CC4: .word FUN_02039CC8 + 1 +_02039CC4: .word FUN_02039CC8 thumb_func_start FUN_02039CC8 FUN_02039CC8: ; 0x02039CC8 @@ -124226,7 +124226,7 @@ FUN_0203A098: ; 0x0203A098 add sp, #0x4 pop {r3-r6, pc} nop -_0203A0F8: .word FUN_0203A2F0 + 1 +_0203A0F8: .word FUN_0203A2F0 thumb_func_start FUN_0203A0FC FUN_0203A0FC: ; 0x0203A0FC @@ -124290,7 +124290,7 @@ FUN_0203A13C: ; 0x0203A13C add sp, #0x8 pop {r3-r7, pc} nop -_0203A184: .word FUN_0203A2F0 + 1 +_0203A184: .word FUN_0203A2F0 thumb_func_start FUN_0203A188 FUN_0203A188: ; 0x0203A188 @@ -124356,7 +124356,7 @@ _0203A1F4: nop _0203A204: .word 0x0000FFFF _0203A208: .word 0x0000022B -_0203A20C: .word FUN_0203A2F0 + 1 +_0203A20C: .word FUN_0203A2F0 thumb_func_start FUN_0203A210 FUN_0203A210: ; 0x0203A210 @@ -124411,7 +124411,7 @@ FUN_0203A210: ; 0x0203A210 add sp, #0x8 pop {r3-r7, pc} nop -_0203A284: .word FUN_0203A2F0 + 1 +_0203A284: .word FUN_0203A2F0 thumb_func_start FUN_0203A288 FUN_0203A288: ; 0x0203A288 @@ -124440,7 +124440,7 @@ FUN_0203A288: ; 0x0203A288 add sp, #0x8 pop {r3-r5, pc} .balign 4 -_0203A2C0: .word FUN_0203A2F0 + 1 +_0203A2C0: .word FUN_0203A2F0 thumb_func_start FUN_0203A2C4 FUN_0203A2C4: ; 0x0203A2C4 @@ -124463,7 +124463,7 @@ FUN_0203A2C4: ; 0x0203A2C4 add sp, #0x4 pop {r3-r4, pc} .balign 4 -_0203A2EC: .word FUN_0203A2F0 + 1 +_0203A2EC: .word FUN_0203A2F0 thumb_func_start FUN_0203A2F0 FUN_0203A2F0: ; 0x0203A2F0 @@ -124503,7 +124503,7 @@ FUN_0203A304: ; 0x0203A304 add sp, #0x4 pop {r3-r4, pc} .balign 4 -_0203A33C: .word FUN_0203A2F0 + 1 +_0203A33C: .word FUN_0203A2F0 thumb_func_start FUN_0203A340 FUN_0203A340: ; 0x0203A340 @@ -124537,7 +124537,7 @@ FUN_0203A340: ; 0x0203A340 add sp, #0x8 pop {r3-r5, pc} .balign 4 -_0203A384: .word FUN_0203A2F0 + 1 +_0203A384: .word FUN_0203A2F0 thumb_func_start FUN_0203A388 FUN_0203A388: ; 0x0203A388 @@ -124565,7 +124565,7 @@ FUN_0203A388: ; 0x0203A388 add sp, #0x4 pop {r3-r4, pc} nop -_0203A3C0: .word FUN_0203A2F0 + 1 +_0203A3C0: .word FUN_0203A2F0 thumb_func_start FUN_0203A3C4 FUN_0203A3C4: ; 0x0203A3C4 @@ -124593,7 +124593,7 @@ FUN_0203A3C4: ; 0x0203A3C4 add sp, #0x4 pop {r3-r4, pc} nop -_0203A3FC: .word FUN_0203A2F0 + 1 +_0203A3FC: .word FUN_0203A2F0 thumb_func_start FUN_0203A400 FUN_0203A400: ; 0x0203A400 @@ -124638,7 +124638,7 @@ _0203A448: add sp, #0x8 pop {r3-r5, pc} nop -_0203A458: .word FUN_0203A2F0 + 1 +_0203A458: .word FUN_0203A2F0 thumb_func_start FUN_0203A45C FUN_0203A45C: ; 0x0203A45C @@ -124648,7 +124648,7 @@ FUN_0203A45C: ; 0x0203A45C mov r0, #0x1 pop {r3, pc} .balign 4 -_0203A468: .word FUN_0203A46C + 1 +_0203A468: .word FUN_0203A46C thumb_func_start FUN_0203A46C FUN_0203A46C: ; 0x0203A46C @@ -124682,7 +124682,7 @@ FUN_0203A484: ; 0x0203A484 mov r0, #0x1 pop {r4, pc} nop -_0203A4A8: .word FUN_0203A4AC + 1 +_0203A4A8: .word FUN_0203A4AC thumb_func_start FUN_0203A4AC FUN_0203A4AC: ; 0x0203A4AC @@ -124714,7 +124714,7 @@ FUN_0203A4D0: ; 0x0203A4D0 mov r0, #0x1 pop {r3, pc} .balign 4 -_0203A4DC: .word FUN_0203A4E0 + 1 +_0203A4DC: .word FUN_0203A4E0 thumb_func_start FUN_0203A4E0 FUN_0203A4E0: ; 0x0203A4E0 @@ -124792,7 +124792,7 @@ FUN_0203A560: ; 0x0203A560 mov r0, #0x1 pop {r3, pc} .balign 4 -_0203A56C: .word FUN_0203A570 + 1 +_0203A56C: .word FUN_0203A570 thumb_func_start FUN_0203A570 FUN_0203A570: ; 0x0203A570 @@ -124839,7 +124839,7 @@ FUN_0203A590: ; 0x0203A590 add r4, r0, #0x0 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02054608 @@ -124961,7 +124961,7 @@ FUN_0203A630: ; 0x0203A630 add sp, #0xc pop {r4-r7, pc} .balign 4 -_0203A6C4: .word FUN_0203A6C8 + 1 +_0203A6C4: .word FUN_0203A6C8 thumb_func_start FUN_0203A6C8 FUN_0203A6C8: ; 0x0203A6C8 @@ -125190,7 +125190,7 @@ _0203A88E: mov r0, #0x1 pop {r4, pc} nop -_0203A89C: .word FUN_0203A8A0 + 1 +_0203A89C: .word FUN_0203A8A0 thumb_func_start FUN_0203A8A0 FUN_0203A8A0: ; 0x0203A8A0 @@ -125254,7 +125254,7 @@ FUN_0203A8B8: ; 0x0203A8B8 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 ldr r1, [r7, #0x0] add r0, r4, #0x0 @@ -125271,7 +125271,7 @@ FUN_0203A8B8: ; 0x0203A8B8 add sp, #0x10 pop {r3-r7, pc} .balign 4 -_0203A948: .word FUN_0203A94C + 1 +_0203A948: .word FUN_0203A94C thumb_func_start FUN_0203A94C FUN_0203A94C: ; 0x0203A94C @@ -125369,7 +125369,7 @@ FUN_0203A9F0: ; 0x0203A9F0 mov r0, #0x1 pop {r4, pc} nop -_0203AA08: .word FUN_0203AA0C + 1 +_0203AA08: .word FUN_0203AA0C thumb_func_start FUN_0203AA0C FUN_0203AA0C: ; 0x0203AA0C @@ -125494,7 +125494,7 @@ FUN_0203AAA0: ; 0x0203AAA0 nop _0203AAF4: .word 0x000003D9 _0203AAF8: .word 0x020F34E0 -_0203AAFC: .word FUN_0203AB00 + 1 +_0203AAFC: .word FUN_0203AB00 thumb_func_start FUN_0203AB00 FUN_0203AB00: ; 0x0203AB00 @@ -125767,7 +125767,7 @@ FUN_0203AD08: ; 0x0203AD08 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203AD28: .word FUN_0203AD2C + 1 +_0203AD28: .word FUN_0203AD2C thumb_func_start FUN_0203AD2C FUN_0203AD2C: ; 0x0203AD2C @@ -125807,7 +125807,7 @@ FUN_0203AD54: ; 0x0203AD54 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203AD74: .word FUN_0203AD78 + 1 +_0203AD74: .word FUN_0203AD78 thumb_func_start FUN_0203AD78 FUN_0203AD78: ; 0x0203AD78 @@ -126037,7 +126037,7 @@ FUN_0203AF34: ; 0x0203AF34 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203AF54: .word FUN_0203AD2C + 1 +_0203AF54: .word FUN_0203AD2C thumb_func_start FUN_0203AF58 FUN_0203AF58: ; 0x0203AF58 @@ -126059,7 +126059,7 @@ FUN_0203AF58: ; 0x0203AF58 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203AF80: .word FUN_0203AD2C + 1 +_0203AF80: .word FUN_0203AD2C thumb_func_start FUN_0203AF84 FUN_0203AF84: ; 0x0203AF84 @@ -126116,7 +126116,7 @@ FUN_0203AFC4: ; 0x0203AFC4 bl FUN_0203B120 add r6, r0, #0x0 bne _0203AFF6 - bl FUN_02020C2C + bl ErrorHandling _0203AFF6: ldr r1, [r5, #0x8] add r0, r6, #0x0 @@ -126175,7 +126175,7 @@ FUN_0203B024: ; 0x0203B024 str r0, [sp, #0x4] cmp r0, #0x0 bne _0203B07A - bl FUN_02020C2C + bl ErrorHandling _0203B07A: mov r0, #0x4 add r1, r0, #0x0 @@ -126289,7 +126289,7 @@ FUN_0203B148: ; 0x0203B148 mov r0, #0x1 pop {r3, pc} .balign 4 -_0203B154: .word FUN_0203B158 + 1 +_0203B154: .word FUN_0203B158 thumb_func_start FUN_0203B158 FUN_0203B158: ; 0x0203B158 @@ -126319,7 +126319,7 @@ FUN_0203B174: ; 0x0203B174 bl FUN_02016998 add r4, r0, #0x0 bne _0203B18E - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _0203B18E: str r5, [r4, #0xc] @@ -126332,7 +126332,7 @@ _0203B18E: str r0, [r4, #0x0] pop {r3-r7, pc} nop -_0203B1A4: .word FUN_0203B1A8 + 1 +_0203B1A4: .word FUN_0203B1A8 thumb_func_start FUN_0203B1A8 FUN_0203B1A8: ; 0x0203B1A8 @@ -126360,7 +126360,7 @@ _0203B1D6: ldrb r0, [r4, #0x0] cmp r0, #0x0 bne _0203B1E8 - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} _0203B1E8: sub r0, r0, #0x1 @@ -126578,7 +126578,7 @@ _0203B398: pop {r3-r7, pc} nop _0203B3A8: .word 0x021C5A0C -_0203B3AC: .word FUN_0203B218 + 1 +_0203B3AC: .word FUN_0203B218 thumb_func_start FUN_0203B3B0 FUN_0203B3B0: ; 0x0203B3B0 @@ -126646,7 +126646,7 @@ FUN_0203B3F8: ; 0x0203B3F8 bl FUN_020575D4 cmp r0, #0x0 bne _0203B43A - bl FUN_02020C2C + bl ErrorHandling _0203B43A: mov r0, #0x0 add sp, #0x4 @@ -127215,7 +127215,7 @@ FUN_0203B8E4: ; 0x0203B8E4 mov r0, #0x1 pop {r3-r5, pc} nop -_0203B910: .word FUN_0203BC04 + 1 +_0203B910: .word FUN_0203BC04 thumb_func_start FUN_0203B914 FUN_0203B914: ; 0x0203B914 @@ -127238,7 +127238,7 @@ FUN_0203B914: ; 0x0203B914 mov r0, #0x1 pop {r3-r5, pc} nop -_0203B940: .word FUN_0203BC04 + 1 +_0203B940: .word FUN_0203BC04 thumb_func_start FUN_0203B944 FUN_0203B944: ; 0x0203B944 @@ -127278,7 +127278,7 @@ FUN_0203B968: ; 0x0203B968 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203B994 - bl FUN_02020C2C + bl ErrorHandling _0203B994: ldr r0, [r4, #0x0] bl FUN_02037A40 @@ -127354,7 +127354,7 @@ FUN_0203B9B4: ; 0x0203B9B4 add sp, #0xc pop {r4-r7, pc} .balign 4 -_0203BA38: .word FUN_0203BC04 + 1 +_0203BA38: .word FUN_0203BC04 thumb_func_start FUN_0203BA3C FUN_0203BA3C: ; 0x0203BA3C @@ -127383,7 +127383,7 @@ FUN_0203BA3C: ; 0x0203BA3C ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203BA7C - bl FUN_02020C2C + bl ErrorHandling _0203BA7C: ldr r0, [r4, #0x0] bl FUN_02037A40 @@ -127441,7 +127441,7 @@ FUN_0203BAB0: ; 0x0203BAB0 mov r0, #0x1 pop {r3-r5, pc} nop -_0203BAF0: .word FUN_0203BC04 + 1 +_0203BAF0: .word FUN_0203BC04 thumb_func_start FUN_0203BAF4 FUN_0203BAF4: ; 0x0203BAF4 @@ -127462,7 +127462,7 @@ FUN_0203BAF4: ; 0x0203BAF4 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203BB20 - bl FUN_02020C2C + bl ErrorHandling _0203BB20: ldr r0, [r4, #0x0] bl FUN_02037A78 @@ -127923,7 +127923,7 @@ FUN_0203BE80: ; 0x0203BE80 mov r0, #0x1 pop {r4, pc} nop -_0203BE98: .word FUN_0203BE9C + 1 +_0203BE98: .word FUN_0203BE9C thumb_func_start FUN_0203BE9C FUN_0203BE9C: ; 0x0203BE9C @@ -128089,7 +128089,7 @@ _0203BFCC: mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_0203BFE8: .word FUN_0203BB90 + 1 +_0203BFE8: .word FUN_0203BB90 thumb_func_start FUN_0203BFEC FUN_0203BFEC: ; 0x0203BFEC @@ -128138,7 +128138,7 @@ _0203C034: mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_0203C050: .word FUN_0203BB90 + 1 +_0203C050: .word FUN_0203BB90 thumb_func_start FUN_0203C054 FUN_0203C054: ; 0x0203C054 @@ -128235,7 +128235,7 @@ FUN_0203C0FC: ; 0x0203C0FC mov r0, #0x1 pop {r4, pc} .balign 4 -_0203C114: .word FUN_0203BC04 + 1 +_0203C114: .word FUN_0203BC04 thumb_func_start FUN_0203C118 FUN_0203C118: ; 0x0203C118 @@ -128280,7 +128280,7 @@ FUN_0203C12C: ; 0x0203C12C mov r0, #0x1 pop {r3-r5, pc} nop -_0203C170: .word FUN_0203BB90 + 1 +_0203C170: .word FUN_0203BB90 thumb_func_start FUN_0203C174 FUN_0203C174: ; 0x0203C174 @@ -128307,7 +128307,7 @@ FUN_0203C174: ; 0x0203C174 mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_0203C1A8: .word FUN_0203BB90 + 1 +_0203C1A8: .word FUN_0203BB90 thumb_func_start FUN_0203C1AC FUN_0203C1AC: ; 0x0203C1AC @@ -128382,7 +128382,7 @@ FUN_0203C200: ; 0x0203C200 mov r2, #0x8 str r0, [r6, #0x0] add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [sp, #0x0] strh r7, [r4, #0x4] strh r0, [r4, #0x6] @@ -128402,7 +128402,7 @@ FUN_0203C200: ; 0x0203C200 mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_0203C274: .word FUN_0203BB90 + 1 +_0203C274: .word FUN_0203BB90 thumb_func_start FUN_0203C278 FUN_0203C278: ; 0x0203C278 @@ -128438,7 +128438,7 @@ FUN_0203C278: ; 0x0203C278 mov r0, #0x1 pop {r3-r5, pc} nop -_0203C2C0: .word FUN_0203BBBC + 1 +_0203C2C0: .word FUN_0203BBBC thumb_func_start FUN_0203C2C4 FUN_0203C2C4: ; 0x0203C2C4 @@ -128453,7 +128453,7 @@ FUN_0203C2C4: ; 0x0203C2C4 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203C2DC: .word FUN_0203BC04 + 1 +_0203C2DC: .word FUN_0203BC04 thumb_func_start FUN_0203C2E0 FUN_0203C2E0: ; 0x0203C2E0 @@ -128495,7 +128495,7 @@ FUN_0203C300: ; 0x0203C300 mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_0203C328: .word FUN_0203BB90 + 1 +_0203C328: .word FUN_0203BB90 thumb_func_start FUN_0203C32C FUN_0203C32C: ; 0x0203C32C @@ -128527,7 +128527,7 @@ FUN_0203C33C: ; 0x0203C33C mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_0203C364: .word FUN_0203BB90 + 1 +_0203C364: .word FUN_0203BB90 thumb_func_start FUN_0203C368 FUN_0203C368: ; 0x0203C368 @@ -128573,7 +128573,7 @@ _0203C3C0: mov r0, #0x1 pop {r4-r6, pc} .balign 4 -_0203C3C4: .word FUN_0203BC04 + 1 +_0203C3C4: .word FUN_0203BC04 thumb_func_start FUN_0203C3C8 FUN_0203C3C8: ; 0x0203C3C8 @@ -128609,7 +128609,7 @@ FUN_0203C3E8: ; 0x0203C3E8 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r6, #0x4] add r0, r5, #0x0 add r0, #0x80 @@ -128622,7 +128622,7 @@ FUN_0203C3E8: ; 0x0203C3E8 mov r0, #0x1 pop {r4-r6, pc} nop -_0203C42C: .word FUN_0203BC04 + 1 +_0203C42C: .word FUN_0203BC04 thumb_func_start FUN_0203C430 FUN_0203C430: ; 0x0203C430 @@ -128673,7 +128673,7 @@ _0203C476: ldr r0, [r6, #0x0] cmp r0, #0x0 beq _0203C492 - bl FUN_02020C2C + bl ErrorHandling _0203C492: add r0, r5, #0x0 add r0, #0x80 @@ -128687,7 +128687,7 @@ _0203C492: mov r0, #0x1 pop {r4-r6, pc} .balign 4 -_0203C4AC: .word FUN_0203BC04 + 1 +_0203C4AC: .word FUN_0203BC04 thumb_func_start FUN_0203C4B0 FUN_0203C4B0: ; 0x0203C4B0 @@ -128708,7 +128708,7 @@ FUN_0203C4B0: ; 0x0203C4B0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203C4DC - bl FUN_02020C2C + bl ErrorHandling _0203C4DC: ldr r0, [r4, #0x0] bl FUN_020378FC @@ -128973,7 +128973,7 @@ FUN_0203C70C: ; 0x0203C70C mov r0, #0x1 pop {r3, pc} .balign 4 -_0203C718: .word FUN_0203C71C + 1 +_0203C718: .word FUN_0203C71C thumb_func_start FUN_0203C71C FUN_0203C71C: ; 0x0203C71C @@ -129319,7 +129319,7 @@ FUN_0203C990: ; 0x0203C990 mov r0, #0x1 pop {r4-r6, pc} nop -_0203C9F4: .word FUN_0203C9F8 + 1 +_0203C9F4: .word FUN_0203C9F8 thumb_func_start FUN_0203C9F8 FUN_0203C9F8: ; 0x0203C9F8 @@ -129624,7 +129624,7 @@ FUN_0203CBE8: ; 0x0203CBE8 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 ldr r1, [r6, #0x0] add r0, r4, #0x0 @@ -129637,7 +129637,7 @@ FUN_0203CBE8: ; 0x0203CBE8 mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_0203CC84: .word FUN_0203A2F0 + 1 +_0203CC84: .word FUN_0203A2F0 thumb_func_start FUN_0203CC88 FUN_0203CC88: ; 0x0203CC88 @@ -129686,7 +129686,7 @@ FUN_0203CC88: ; 0x0203CC88 add sp, #0x8 pop {r3-r7, pc} nop -_0203CCF4: .word FUN_0203CCF8 + 1 +_0203CCF4: .word FUN_0203CCF8 thumb_func_start FUN_0203CCF8 FUN_0203CCF8: ; 0x0203CCF8 @@ -129757,7 +129757,7 @@ FUN_0203CD20: ; 0x0203CD20 add sp, #0x8 pop {r3-r7, pc} nop -_0203CD8C: .word FUN_0203CD90 + 1 +_0203CD8C: .word FUN_0203CD90 thumb_func_start FUN_0203CD90 FUN_0203CD90: ; 0x0203CD90 @@ -130282,7 +130282,7 @@ FUN_0203D1A4: ; 0x0203D1A4 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203D1BC: .word FUN_0203BC04 + 1 +_0203D1BC: .word FUN_0203BC04 thumb_func_start FUN_0203D1C0 FUN_0203D1C0: ; 0x0203D1C0 @@ -130449,7 +130449,7 @@ FUN_0203D2E4: ; 0x0203D2E4 mov r0, #0x1 pop {r4, pc} nop -_0203D310: .word FUN_0203D314 + 1 +_0203D310: .word FUN_0203D314 thumb_func_start FUN_0203D314 FUN_0203D314: ; 0x0203D314 @@ -130630,7 +130630,7 @@ FUN_0203D458: ; 0x0203D458 mov r0, #0x1 pop {r4, pc} nop -_0203D478: .word FUN_0203D47C + 1 +_0203D478: .word FUN_0203D47C thumb_func_start FUN_0203D47C FUN_0203D47C: ; 0x0203D47C @@ -130790,7 +130790,7 @@ FUN_0203D5B0: ; 0x0203D5B0 mov r0, #0x1 pop {r4, pc} nop -_0203D5C8: .word FUN_0203D5CC + 1 +_0203D5C8: .word FUN_0203D5CC thumb_func_start FUN_0203D5CC FUN_0203D5CC: ; 0x0203D5CC @@ -130887,7 +130887,7 @@ FUN_0203D66C: ; 0x0203D66C mov r0, #0x1 pop {r4, pc} nop -_0203D684: .word FUN_0203D688 + 1 +_0203D684: .word FUN_0203D688 thumb_func_start FUN_0203D688 FUN_0203D688: ; 0x0203D688 @@ -130932,7 +130932,7 @@ FUN_0203D6C4: ; 0x0203D6C4 mov r0, #0x1 pop {r4, pc} nop -_0203D6DC: .word FUN_0203D6E0 + 1 +_0203D6DC: .word FUN_0203D6E0 thumb_func_start FUN_0203D6E0 FUN_0203D6E0: ; 0x0203D6E0 @@ -131194,7 +131194,7 @@ FUN_0203D8EC: ; 0x0203D8EC mov r0, #0x1 pop {r4, pc} .balign 4 -_0203D900: .word FUN_0203D904 + 1 +_0203D900: .word FUN_0203D904 thumb_func_start FUN_0203D904 FUN_0203D904: ; 0x0203D904 @@ -131223,7 +131223,7 @@ FUN_0203D920: ; 0x0203D920 mov r0, #0x1 pop {r4, pc} .balign 4 -_0203D934: .word FUN_0203D904 + 1 +_0203D934: .word FUN_0203D904 thumb_func_start FUN_0203D938 FUN_0203D938: ; 0x0203D938 @@ -131521,7 +131521,7 @@ FUN_0203DB88: ; 0x0203DB88 bl FUN_02058060 add r5, r0, #0x0 bne _0203DBC6 - bl FUN_02020C2C + bl ErrorHandling _0203DBC6: add r0, r5, #0x0 add r1, r4, #0x0 @@ -131792,7 +131792,7 @@ FUN_0203DD60: ; 0x0203DD60 mov r0, #0x1 pop {r3-r7, pc} .balign 4 -_0203DDBC: .word FUN_0203DDC0 + 1 +_0203DDBC: .word FUN_0203DDC0 thumb_func_start FUN_0203DDC0 FUN_0203DDC0: ; 0x0203DDC0 @@ -131850,7 +131850,7 @@ FUN_0203DE00: ; 0x0203DE00 mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_0203DE34: .word FUN_0203DE38 + 1 +_0203DE34: .word FUN_0203DE38 thumb_func_start FUN_0203DE38 FUN_0203DE38: ; 0x0203DE38 @@ -131944,7 +131944,7 @@ FUN_0203DEC4: ; 0x0203DEC4 bl FUN_02058060 add r4, r0, #0x0 bne _0203DEEC - bl FUN_02020C2C + bl ErrorHandling _0203DEEC: add r0, r4, #0x0 mov r1, #0x0 @@ -131969,7 +131969,7 @@ FUN_0203DEF8: ; 0x0203DEF8 bl FUN_02058060 add r4, r0, #0x0 bne _0203DF20 - bl FUN_02020C2C + bl ErrorHandling _0203DF20: add r0, r4, #0x0 mov r1, #0x1 @@ -132060,7 +132060,7 @@ FUN_0203DFA8: ; 0x0203DFA8 add r5, r0, #0x0 bl FUN_0201B9EC add r1, r5, #0x0 - blx FUN_020EBC80 + blx _s32_div_f strh r1, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} @@ -132085,7 +132085,7 @@ FUN_0203DFE0: ; 0x0203DFE0 add r5, r0, #0x0 bl FUN_0201B9EC add r1, r5, #0x0 - blx FUN_020EBC80 + blx _s32_div_f strh r1, [r4, #0x0] mov r0, #0x1 pop {r3-r5, pc} @@ -132610,7 +132610,7 @@ FUN_0203E440: ; 0x0203E440 mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_0203E46C: .word FUN_0203BB90 + 1 +_0203E46C: .word FUN_0203BB90 thumb_func_start FUN_0203E470 FUN_0203E470: ; 0x0203E470 @@ -132634,7 +132634,7 @@ FUN_0203E470: ; 0x0203E470 mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_0203E49C: .word FUN_0203BB90 + 1 +_0203E49C: .word FUN_0203BB90 thumb_func_start FUN_0203E4A0 FUN_0203E4A0: ; 0x0203E4A0 @@ -133013,7 +133013,7 @@ FUN_0203E774: ; 0x0203E774 add r4, r0, #0x0 bl FUN_0201B9EC add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r6, r0, #0x10 ldr r0, [sp, #0x0] @@ -133286,7 +133286,7 @@ _0203E9AE: strh r0, [r6, #0x0] b _0203E9C8 _0203E9C4: - bl FUN_02020C2C + bl ErrorHandling _0203E9C8: mov r0, #0x0 pop {r4-r6, pc} @@ -134181,7 +134181,7 @@ FUN_0203F07C: ; 0x0203F07C bl FUN_02058060 add r7, r0, #0x0 bne _0203F0FA - bl FUN_02020C2C + bl ErrorHandling _0203F0FA: str r6, [sp, #0x0] str r4, [sp, #0x4] @@ -134229,7 +134229,7 @@ FUN_0203F110: ; 0x0203F110 bl FUN_02058060 add r5, r0, #0x0 bne _0203F164 - bl FUN_02020C2C + bl ErrorHandling _0203F164: ldr r0, [r4, #0x74] add r1, r5, #0x0 @@ -134307,7 +134307,7 @@ _0203F1E0: _0203F1F8: bl FUN_0201B9EC add r1, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f mov r4, #0x0 add r2, sp, #0x4 _0203F206: @@ -134325,7 +134325,7 @@ _0203F212: _0203F21A: cmp r4, #0x10 blt _0203F222 - bl FUN_02020C2C + bl ErrorHandling _0203F222: ldr r0, [sp, #0x0] add r4, #0x22 @@ -134733,7 +134733,7 @@ _0203F54C: _0203F556: bl FUN_0201B9EC mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f cmp r1, #0x19 bge _0203F568 ldr r7, _0203F5CC ; =0x0000010D @@ -134741,7 +134741,7 @@ _0203F556: _0203F568: bl FUN_0201B9EC mov r1, #0x6 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r1, r0, #0x10 mov r0, #0x6 @@ -134980,7 +134980,7 @@ FUN_0203F720: ; 0x0203F720 add r5, r0, #0x0 cmp r4, #0x3 bls _0203F752 - bl FUN_02020C2C + bl ErrorHandling _0203F752: add r0, r5, #0x0 add r1, r4, #0x0 @@ -135070,7 +135070,7 @@ FUN_0203F7C8: ; 0x0203F7C8 mov r0, #0x1 pop {r4-r6, pc} .balign 4 -_0203F808: .word FUN_0203BC04 + 1 +_0203F808: .word FUN_0203BC04 thumb_func_start FUN_0203F80C FUN_0203F80C: ; 0x0203F80C @@ -135099,7 +135099,7 @@ FUN_0203F80C: ; 0x0203F80C ldr r0, [r4, #0x0] cmp r0, #0x0 bne _0203F84C - bl FUN_02020C2C + bl ErrorHandling _0203F84C: ldr r0, [r4, #0x0] bl FUN_02037A40 @@ -135148,7 +135148,7 @@ FUN_0203F880: ; 0x0203F880 _0203F8A2: bl FUN_0201B9EC mov r1, #0x65 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 cmp r0, r4 @@ -135206,7 +135206,7 @@ _0203F910: bl FUN_0224F12C b _0203F91E _0203F91A: - bl FUN_02020C2C + bl ErrorHandling _0203F91E: mov r0, #0x1 pop {r3-r5, pc} @@ -135593,7 +135593,7 @@ FUN_0203FC1C: ; 0x0203FC1C bl FUN_02058060 add r5, r0, #0x0 bne _0203FC4C - bl FUN_02020C2C + bl ErrorHandling _0203FC4C: add r0, r5, #0x0 add r1, r4, #0x0 @@ -135947,7 +135947,7 @@ FUN_0203FEC0: ; 0x0203FEC0 mov r0, #0x1 pop {r4, pc} nop -_0203FEF0: .word FUN_0203FEF4 + 1 +_0203FEF0: .word FUN_0203FEF4 thumb_func_start FUN_0203FEF4 FUN_0203FEF4: ; 0x0203FEF4 @@ -136062,7 +136062,7 @@ FUN_0203FF10: ; 0x0203FF10 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x2c] add r0, r5, #0x0 add r0, #0x80 @@ -136291,7 +136291,7 @@ FUN_020401CC: ; 0x020401CC mov r0, #0x1 pop {r4, pc} .balign 4 -_020401EC: .word FUN_020401F0 + 1 +_020401EC: .word FUN_020401F0 thumb_func_start FUN_020401F0 FUN_020401F0: ; 0x020401F0 @@ -136796,7 +136796,7 @@ FUN_020405F8: ; 0x020405F8 mov r0, #0x1 pop {r4, pc} nop -_02040614: .word FUN_02040618 + 1 +_02040614: .word FUN_02040618 thumb_func_start FUN_02040618 FUN_02040618: ; 0x02040618 @@ -137242,11 +137242,11 @@ FUN_02040964: ; 0x02040964 bl FUN_020394F0 add r5, r0, #0x0 mov r1, #0x1e - blx FUN_020EBC80 + blx _s32_div_f add r7, r0, #0x0 add r0, r5, #0x0 mov r1, #0x1e - blx FUN_020EBC80 + blx _s32_div_f add r2, r1, #0x0 ldr r0, [sp, #0x0] add r1, r7, #0x0 @@ -138431,14 +138431,14 @@ FUN_02041354: ; 0x02041354 _02041360: add r0, r5, #0x0 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r1, [sp, #0x0] str r0, [sp, #0x4] add r0, r4, #0x0 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 str r0, [sp, #0x8] @@ -138447,12 +138447,12 @@ _02041360: bne _020413AC add r0, r5, #0x0 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 add r0, r4, #0x0 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 add r0, r6, #0x1 @@ -138556,7 +138556,7 @@ FUN_0204143C: ; 0x0204143C mov r0, #0x1 pop {r3-r5, pc} .balign 4 -_02041460: .word FUN_02041464 + 1 +_02041460: .word FUN_02041464 thumb_func_start FUN_02041464 FUN_02041464: ; 0x02041464 @@ -138586,7 +138586,7 @@ FUN_02041478: ; 0x02041478 mov r0, #0x1 pop {r4, pc} nop -_02041498: .word FUN_02041464 + 1 +_02041498: .word FUN_02041464 thumb_func_start FUN_0204149C FUN_0204149C: ; 0x0204149C @@ -138672,7 +138672,7 @@ FUN_02041518: ; 0x02041518 mov r0, #0x1 pop {r4, pc} nop -_0204153C: .word FUN_02041540 + 1 +_0204153C: .word FUN_02041540 thumb_func_start FUN_02041540 FUN_02041540: ; 0x02041540 @@ -138719,7 +138719,7 @@ FUN_02041588: ; 0x02041588 mov r0, #0x1 pop {r3, pc} .balign 4 -_02041594: .word FUN_02041598 + 1 +_02041594: .word FUN_02041598 thumb_func_start FUN_02041598 FUN_02041598: ; 0x02041598 @@ -138751,7 +138751,7 @@ FUN_020415BC: ; 0x020415BC mov r0, #0x1 pop {r3, pc} .balign 4 -_020415C8: .word FUN_020415CC + 1 +_020415C8: .word FUN_020415CC thumb_func_start FUN_020415CC FUN_020415CC: ; 0x020415CC @@ -140989,7 +140989,7 @@ FUN_020427D0: ; 0x020427D0 ldr r0, _0204285C ; =0x00000884 mov r2, #0x46 add r0, r6, r0 - blx FUN_020CE34C + blx MI_CpuFill8 cmp r4, #0x0 beq _0204281E cmp r4, #0x1 @@ -141573,7 +141573,7 @@ _02042CA8: bl FUN_0204B9CC b _02042CB6 _02042CB2: - bl FUN_02020C2C + bl ErrorHandling _02042CB6: mov r0, #0x1 pop {r4, pc} @@ -141946,7 +141946,7 @@ FUN_02042F6C: ; 0x02042F6C add r2, r7, #0x0 bl FUN_020671BC add r6, r0, #0x0 - blx FUN_020CCC1C + blx OS_GetTick bl FUN_0201BA10 add r1, r0, #0x0 ldr r0, [sp, #0x14] @@ -142303,7 +142303,7 @@ FUN_020432C0: ; 0x020432C0 ldr r3, _020432C4 ; =FUN_02042F6C bx r3 .balign 4 -_020432C4: .word FUN_02042F6C + 1 +_020432C4: .word FUN_02042F6C thumb_func_start FUN_020432C8 FUN_020432C8: ; 0x020432C8 @@ -143067,7 +143067,7 @@ _020438B2: bl FUN_0204BA1C b _020438CA _020438C6: - bl FUN_02020C2C + bl ErrorHandling _020438CA: mov r0, #0x0 pop {r3-r5, pc} @@ -143158,7 +143158,7 @@ _0204395C: bl FUN_0206B20C cmp r0, #0x0 bne _0204398C - bl FUN_02020C2C + bl ErrorHandling _0204398C: add r0, r6, #0x0 add r0, #0x80 @@ -144162,7 +144162,7 @@ FUN_02044198: ; 0x02044198 add r5, r0, #0x0 bl FUN_0201B9EC mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r0, r0, #0x10 cmp r0, #0xf @@ -145072,7 +145072,7 @@ FUN_020448D4: ; 0x020448D4 mov r0, #0x96 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 _0204495A: @@ -146455,7 +146455,7 @@ FUN_02045484: ; 0x02045484 add r6, r0, #0x0 cmp r4, #0x8 blo _020454B6 - bl FUN_02020C2C + bl ErrorHandling _020454B6: add r5, #0x80 ldr r0, [r5, #0x0] @@ -146480,7 +146480,7 @@ FUN_020454CC: ; 0x020454CC add r4, r0, #0x0 cmp r4, #0x8 blo _020454EA - bl FUN_02020C2C + bl ErrorHandling _020454EA: add r5, #0x80 ldr r0, [r5, #0x0] @@ -146724,7 +146724,7 @@ _020456AE: strh r0, [r5, #0x0] b _020456D0 _020456CC: - bl FUN_02020C2C + bl ErrorHandling _020456D0: mov r0, #0x0 pop {r3-r5, pc} @@ -146768,7 +146768,7 @@ _02045706: strh r0, [r5, #0x0] b _02045726 _02045722: - bl FUN_02020C2C + bl ErrorHandling _02045726: mov r0, #0x0 pop {r3-r5, pc} @@ -146813,7 +146813,7 @@ _0204575E: strh r0, [r5, #0x0] b _0204577E _0204577A: - bl FUN_02020C2C + bl ErrorHandling _0204577E: mov r0, #0x0 pop {r3-r5, pc} @@ -147545,7 +147545,7 @@ FUN_02045D88: ; 0x02045D88 mov r0, #0x1 pop {r4-r6, pc} nop -_02045DCC: .word FUN_0203BC04 + 1 +_02045DCC: .word FUN_0203BC04 thumb_func_start FUN_02045DD0 FUN_02045DD0: ; 0x02045DD0 @@ -147566,7 +147566,7 @@ FUN_02045DD0: ; 0x02045DD0 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02045DFC - bl FUN_02020C2C + bl ErrorHandling _02045DFC: ldr r0, [r4, #0x0] bl FUN_02037D5C @@ -147655,7 +147655,7 @@ FUN_02045E74: ; 0x02045E74 add r0, #0x80 ldr r0, [r0, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x8] str r6, [r4, #0xc] add r0, r5, #0x0 @@ -147672,7 +147672,7 @@ FUN_02045E74: ; 0x02045E74 add sp, #0x8 pop {r3-r7, pc} .balign 4 -_02045EDC: .word FUN_0203BC04 + 1 +_02045EDC: .word FUN_0203BC04 thumb_func_start FUN_02045EE0 FUN_02045EE0: ; 0x02045EE0 @@ -147774,7 +147774,7 @@ FUN_02045F88: ; 0x02045F88 ldr r4, [r0, #0x0] cmp r4, #0x0 bne _02045FB2 - bl FUN_02020C2C + bl ErrorHandling _02045FB2: ldrb r0, [r4, #0x16] cmp r0, #0x0 @@ -147809,7 +147809,7 @@ FUN_02045FCC: ; 0x02045FCC ldr r4, [r0, #0x0] cmp r4, #0x0 bne _02045FF6 - bl FUN_02020C2C + bl ErrorHandling _02045FF6: ldrb r0, [r4, #0x16] cmp r0, #0x0 @@ -147829,7 +147829,7 @@ _02046002: thumb_func_start FUN_02046010 FUN_02046010: ; 0x02046010 push {r3, lr} - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -147837,7 +147837,7 @@ FUN_02046010: ; 0x02046010 thumb_func_start FUN_0204601C FUN_0204601C: ; 0x0204601C push {r3, lr} - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -147878,7 +147878,7 @@ FUN_02046030: ; 0x02046030 bl FUN_0204640C pop {r4, pc} nop -_02046064: .word FUN_02046068 + 1 +_02046064: .word FUN_02046068 thumb_func_start FUN_02046068 FUN_02046068: ; 0x02046068 @@ -148161,7 +148161,7 @@ FUN_020462AC: ; 0x020462AC mov r1, #0x4 bx r3 nop -_020462B4: .word FUN_02022610 + 1 +_020462B4: .word FUN_02022610 thumb_func_start FUN_020462B8 FUN_020462B8: ; 0x020462B8 @@ -148255,7 +148255,7 @@ _02046344: lsl r0, r0, #0x2 cmp r4, r0 blt _0204635A - bl FUN_02020C2C + bl ErrorHandling _0204635A: mov r0, #0x9 lsl r0, r0, #0x6 @@ -148270,7 +148270,7 @@ _02046364: asr r4, r0, #0x3 cmp r4, #0x8 blt _02046376 - bl FUN_02020C2C + bl ErrorHandling _02046376: ldr r0, _0204637C ; =0x021C5A14 add r0, r0, r4 @@ -148289,7 +148289,7 @@ FUN_02046380: ; 0x02046380 lsl r0, r0, #0x4 cmp r4, r0 blt _02046396 - bl FUN_02020C2C + bl ErrorHandling _02046396: lsl r0, r4, #0x1 add r0, r5, r0 @@ -148329,7 +148329,7 @@ FUN_020463CC: ; 0x020463CC add r6, r2, #0x0 cmp r0, #0x0 beq _020463DE - bl FUN_02020C2C + bl ErrorHandling _020463DE: add r0, r5, #0x0 add r1, r4, #0x0 @@ -148449,7 +148449,7 @@ FUN_0204649C: ; 0x0204649C ldr r3, _020464A0 ; =FUN_02037350 bx r3 .balign 4 -_020464A0: .word FUN_02037350 + 1 +_020464A0: .word FUN_02037350 thumb_func_start FUN_020464A4 FUN_020464A4: ; 0x020464A4 @@ -148520,7 +148520,7 @@ FUN_02046500: ; 0x02046500 bl FUN_0204640C pop {r4-r6, pc} .balign 4 -_02046524: .word FUN_020464B8 + 1 +_02046524: .word FUN_020464B8 thumb_func_start FUN_02046528 FUN_02046528: ; 0x02046528 @@ -148588,8 +148588,8 @@ FUN_02046584: ; 0x02046584 ldr r1, _02046590 ; =FUN_0204653C bx r3 .balign 4 -_0204658C: .word FUN_0204640C + 1 -_02046590: .word FUN_0204653C + 1 +_0204658C: .word FUN_0204640C +_02046590: .word FUN_0204653C thumb_func_start FUN_02046594 FUN_02046594: ; 0x02046594 @@ -148637,7 +148637,7 @@ _020465D8: ldr r0, [r0, #0x14] bx r3 .balign 4 -_020465E0: .word FUN_020480B8 + 1 +_020465E0: .word FUN_020480B8 thumb_func_start FUN_020465E4 FUN_020465E4: ; 0x020465E4 @@ -148791,7 +148791,7 @@ FUN_020466FC: ; 0x020466FC bl FUN_0204640C pop {r4, pc} .balign 4 -_02046718: .word FUN_020465F8 + 1 +_02046718: .word FUN_020465F8 thumb_func_start FUN_0204671C FUN_0204671C: ; 0x0204671C @@ -149069,7 +149069,7 @@ FUN_02046928: ; 0x02046928 bl FUN_0204640C pop {r4, pc} .balign 4 -_02046944: .word FUN_02046878 + 1 +_02046944: .word FUN_02046878 thumb_func_start FUN_02046948 FUN_02046948: ; 0x02046948 @@ -149171,8 +149171,8 @@ _020469F2: bl FUN_020463CC pop {r4-r6, pc} .balign 4 -_02046A18: .word FUN_02046C1C + 1 -_02046A1C: .word FUN_02046A88 + 1 +_02046A18: .word FUN_02046C1C +_02046A1C: .word FUN_02046A88 thumb_func_start FUN_02046A20 FUN_02046A20: ; 0x02046A20 @@ -149216,8 +149216,8 @@ _02046A5A: bl FUN_020463EC pop {r4-r6, pc} .balign 4 -_02046A80: .word FUN_02046C1C + 1 -_02046A84: .word FUN_02046A88 + 1 +_02046A80: .word FUN_02046C1C +_02046A84: .word FUN_02046A88 thumb_func_start FUN_02046A88 FUN_02046A88: ; 0x02046A88 @@ -149403,7 +149403,7 @@ _02046C12: mov r0, #0x0 pop {r4-r6, pc} nop -_02046C18: .word FUN_0204837C + 1 +_02046C18: .word FUN_0204837C thumb_func_start FUN_02046C1C FUN_02046C1C: ; 0x02046C1C @@ -149819,7 +149819,7 @@ FUN_02046F70: ; 0x02046F70 bl FUN_020463CC pop {r4-r6, pc} .balign 4 -_02046F9C: .word FUN_02046E8C + 1 +_02046F9C: .word FUN_02046E8C thumb_func_start FUN_02046FA0 FUN_02046FA0: ; 0x02046FA0 @@ -149974,7 +149974,7 @@ FUN_020470AC: ; 0x020470AC bl FUN_0204640C pop {r4-r6, pc} nop -_020470E4: .word FUN_02047004 + 1 +_020470E4: .word FUN_02047004 thumb_func_start FUN_020470E8 FUN_020470E8: ; 0x020470E8 @@ -150074,7 +150074,7 @@ FUN_02047174: ; 0x02047174 bl FUN_0204640C pop {r3-r7, pc} nop -_020471BC: .word FUN_02046758 + 1 +_020471BC: .word FUN_02046758 thumb_func_start FUN_020471C0 FUN_020471C0: ; 0x020471C0 @@ -150118,7 +150118,7 @@ _020471E6: bl FUN_0204640C pop {r3-r7, pc} nop -_0204721C: .word FUN_020467FC + 1 +_0204721C: .word FUN_020467FC thumb_func_start FUN_02047220 FUN_02047220: ; 0x02047220 @@ -150156,7 +150156,7 @@ _02047262: mov r0, #0x0 pop {r3-r7, pc} nop -_02047268: .word FUN_02046758 + 1 +_02047268: .word FUN_02046758 thumb_func_start FUN_0204726C FUN_0204726C: ; 0x0204726C @@ -150186,7 +150186,7 @@ FUN_0204726C: ; 0x0204726C bl FUN_020463CC pop {r4-r6, pc} nop -_020472AC: .word FUN_02047220 + 1 +_020472AC: .word FUN_02047220 thumb_func_start FUN_020472B0 FUN_020472B0: ; 0x020472B0 @@ -150217,7 +150217,7 @@ FUN_020472B0: ; 0x020472B0 bl FUN_020463CC pop {r4-r6, pc} .balign 4 -_020472F0: .word FUN_02047220 + 1 +_020472F0: .word FUN_02047220 thumb_func_start FUN_020472F4 FUN_020472F4: ; 0x020472F4 @@ -150531,7 +150531,7 @@ FUN_0204755C: ; 0x0204755C add r4, r1, #0x0 cmp r5, #0x1f blo _0204756A - bl FUN_02020C2C + bl ErrorHandling _0204756A: ldr r0, _02047580 ; =0x020F457C lsl r1, r5, #0x2 @@ -150553,7 +150553,7 @@ FUN_02047588: ; 0x02047588 add r4, r0, #0x0 cmp r4, #0x1f blo _02047594 - bl FUN_02020C2C + bl ErrorHandling _02047594: ldr r0, _0204759C ; =0x020F457E lsl r1, r4, #0x2 @@ -150759,7 +150759,7 @@ FUN_020476CC: ; 0x020476CC mov r1, #0x0 lsl r2, r2, #0x2 add r7, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r1, #0x63 str r4, [r7, #0x0] mov r0, #0x0 @@ -150775,7 +150775,7 @@ _020476FA: add r1, r4, #0x0 mov r2, #0x34 str r0, [r6, #0x18] - blx FUN_020CE1FC + blx MIi_CpuClear32 ldr r0, [sp, #0x0] add r6, r6, #0x4 add r0, r0, #0x1 @@ -150883,7 +150883,7 @@ _02047774: add r0, r2, #0x4 add r0, r7, r0 mov r2, #0xc - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r7, #0x0 pop {r3-r7, pc} @@ -150921,7 +150921,7 @@ FUN_02047814: ; 0x02047814 bl FUN_020238F4 str r0, [sp, #0x10] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress mov r1, #0x1 str r0, [sp, #0x14] add r0, r6, #0x0 @@ -151063,7 +151063,7 @@ _0204796C: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02047976 - bl FUN_02020C2C + bl ErrorHandling _02047976: ldr r0, [r5, #0x4] bl FUN_02016A18 @@ -151079,7 +151079,7 @@ _02047988: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02047996 - bl FUN_02020C2C + bl ErrorHandling _02047996: add r0, r4, #0x0 add r0, #0xf8 @@ -151097,7 +151097,7 @@ _020479B0: ldr r0, [r4, r6] cmp r0, #0x0 bne _020479BA - bl FUN_02020C2C + bl ErrorHandling _020479BA: mov r0, #0x46 lsl r0, r0, #0x2 @@ -151135,7 +151135,7 @@ FUN_020479FC: ; 0x020479FC add r6, r1, #0x0 cmp r4, #0x4 blt _02047A0C - bl FUN_02020C2C + bl ErrorHandling _02047A0C: lsl r0, r4, #0x2 add r0, r5, r0 @@ -151144,7 +151144,7 @@ _02047A0C: bl FUN_0206B900 cmp r0, #0x0 bne _02047A20 - bl FUN_02020C2C + bl ErrorHandling _02047A20: pop {r4-r6, pc} .balign 4 @@ -151157,7 +151157,7 @@ FUN_02047A24: ; 0x02047A24 add r6, r1, #0x0 cmp r4, #0x4 blt _02047A34 - bl FUN_02020C2C + bl ErrorHandling _02047A34: lsl r1, r4, #0x2 add r1, r5, r1 @@ -151175,7 +151175,7 @@ FUN_02047A44: ; 0x02047A44 add r6, r1, #0x0 cmp r4, #0x4 blt _02047A54 - bl FUN_02020C2C + bl ErrorHandling _02047A54: lsl r1, r4, #0x2 add r1, r5, r1 @@ -151195,7 +151195,7 @@ FUN_02047A64: ; 0x02047A64 ldr r0, [r2, r0] bx r3 nop -_02047A74: .word FUN_02029F9C + 1 +_02047A74: .word FUN_02029F9C thumb_func_start FUN_02047A78 FUN_02047A78: ; 0x02047A78 @@ -151219,7 +151219,7 @@ FUN_02047A78: ; 0x02047A78 bl FUN_02029EF8 str r0, [sp, #0x8] ldr r0, [r4, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0xc] ldr r0, [r4, #0xc] bl FUN_02034E30 @@ -151368,7 +151368,7 @@ FUN_02047BC0: ; 0x02047BC0 str r0, [sp, #0x8] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x4] mov r0, #0x15 mov r1, #0x6 @@ -151535,7 +151535,7 @@ FUN_02047D48: ; 0x02047D48 str r0, [sp, #0x14] ldr r0, [sp, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x10] ldr r0, [sp, #0x0] mov r1, #0x6 @@ -151880,7 +151880,7 @@ _02048054: ldr r0, [r0, r1] pop {r3-r5, pc} _02048060: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0xc pop {r3-r5, pc} .balign 4 @@ -152035,7 +152035,7 @@ FUN_02048164: ; 0x02048164 bl FUN_02016998 add r4, r0, #0x0 bne _0204817A - bl FUN_02020C2C + bl ErrorHandling _0204817A: add r0, r4, #0x0 mov r1, #0x0 @@ -152099,7 +152099,7 @@ _020481F2: nop _02048208: .word 0x020F4628 _0204820C: .word 0x0000019E -_02048210: .word FUN_02048214 + 1 +_02048210: .word FUN_02048214 thumb_func_start FUN_02048214 FUN_02048214: ; 0x02048214 @@ -152412,8 +152412,8 @@ FUN_02048498: ; 0x02048498 mov r2, #0x0 bx r3 .balign 4 -_020484A0: .word FUN_0204640C + 1 -_020484A4: .word FUN_0204837C + 1 +_020484A0: .word FUN_0204640C +_020484A4: .word FUN_0204837C thumb_func_start FUN_020484A8 FUN_020484A8: ; 0x020484A8 @@ -152637,7 +152637,7 @@ _02048666: mov r0, #0x4 bl FUN_020168D0 mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem add sp, #0xc mov r0, #0x1 pop {r4-r7, pc} @@ -152726,7 +152726,7 @@ _0204871E: add sp, #0xc pop {r4-r7, pc} .balign 4 -_02048760: .word FUN_020484F8 + 1 +_02048760: .word FUN_020484F8 thumb_func_start FUN_02048764 FUN_02048764: ; 0x02048764 @@ -152789,7 +152789,7 @@ FUN_020487E4: ; 0x020487E4 add r5, r0, #0x0 ldr r0, [r5, #0xc] add r4, r1, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress add r6, r0, #0x0 mov r0, #0x1a mov r1, #0xc7 @@ -152830,7 +152830,7 @@ FUN_02048838: ; 0x02048838 lsr r0, r0, #0x18 bx r3 nop -_02048844: .word FUN_020546C8 + 1 +_02048844: .word FUN_020546C8 thumb_func_start FUN_02048848 FUN_02048848: ; 0x02048848 @@ -152886,7 +152886,7 @@ _020488B4: add r0, r7, #0x0 bl FUN_0200A8B8 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 add r0, r4, #0x0 ldr r1, [r4, #0x2c] @@ -153045,7 +153045,7 @@ FUN_020489DC: ; 0x020489DC ldr r0, [r4, #0x6c] cmp r0, #0x5 blt _020489EA - bl FUN_02020C2C + bl ErrorHandling _020489EA: ldr r0, [r4, #0x70] ldr r0, [r0, #0x0] @@ -153131,7 +153131,7 @@ _02048A82: bl FUN_0203484C cmp r6, r0 beq _02048AB4 - bl FUN_02020C2C + bl ErrorHandling b _02048AB4 _02048AA6: add r0, r7, #0x0 @@ -153246,7 +153246,7 @@ FUN_02048B90: ; 0x02048B90 ldr r0, [r4, #0x58] cmp r0, #0x0 beq _02048BA2 - bl FUN_02020C2C + bl ErrorHandling _02048BA2: ldr r0, [r4, #0x1c] ldr r1, [r4, #0x28] @@ -153273,7 +153273,7 @@ _02048BD8: ldr r0, [r4, #0x6c] cmp r0, #0x5 blt _02048BE2 - bl FUN_02020C2C + bl ErrorHandling _02048BE2: ldr r0, [r4, #0x6c] ldr r1, _02048C28 ; =0x020F46E0 @@ -153318,7 +153318,7 @@ FUN_02048C2C: ; 0x02048C2C ldr r0, [r4, #0x58] cmp r0, #0x0 bne _02048C3A - bl FUN_02020C2C + bl ErrorHandling _02048C3A: mov r0, #0x0 str r0, [r4, #0x58] @@ -153511,7 +153511,7 @@ FUN_02048D90: ; 0x02048D90 bl FUN_020463CC pop {r4, pc} .balign 4 -_02048DA8: .word FUN_02048D34 + 1 +_02048DA8: .word FUN_02048D34 thumb_func_start FUN_02048DAC FUN_02048DAC: ; 0x02048DAC @@ -153647,8 +153647,8 @@ FUN_02048EC8: ; 0x02048EC8 ldr r1, _02048ED8 ; =FUN_02048DAC bx r3 nop -_02048ED4: .word FUN_020463CC + 1 -_02048ED8: .word FUN_02048DAC + 1 +_02048ED4: .word FUN_020463CC +_02048ED8: .word FUN_02048DAC thumb_func_start FUN_02048EDC FUN_02048EDC: ; 0x02048EDC @@ -153808,7 +153808,7 @@ _02049000: pop {r3-r5, pc} nop _02049030: .word 0x000001D2 -_02049034: .word FUN_02048EDC + 1 +_02049034: .word FUN_02048EDC thumb_func_start FUN_02049038 FUN_02049038: ; 0x02049038 @@ -153899,7 +153899,7 @@ FUN_020490C0: ; 0x020490C0 bl FUN_0204640C pop {r3-r5, pc} .balign 4 -_020490EC: .word FUN_02049038 + 1 +_020490EC: .word FUN_02049038 thumb_func_start FUN_020490F0 FUN_020490F0: ; 0x020490F0 @@ -153969,7 +153969,7 @@ FUN_02049160: ; 0x02049160 bl FUN_0203739C cmp r0, #0x0 beq _02049186 - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _02049186: mov r0, #0x0 @@ -153987,7 +153987,7 @@ _02049186: bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_020491A4: .word FUN_020490F0 + 1 +_020491A4: .word FUN_020490F0 thumb_func_start FUN_020491A8 FUN_020491A8: ; 0x020491A8 @@ -154092,7 +154092,7 @@ FUN_02049240: ; 0x02049240 bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_02049270: .word FUN_020491C4 + 1 +_02049270: .word FUN_020491C4 thumb_func_start FUN_02049274 FUN_02049274: ; 0x02049274 @@ -154128,7 +154128,7 @@ FUN_02049274: ; 0x02049274 add sp, #0x14 pop {r4-r5, pc} nop -_020492B8: .word FUN_02049304 + 1 +_020492B8: .word FUN_02049304 thumb_func_start FUN_020492BC FUN_020492BC: ; 0x020492BC @@ -154164,7 +154164,7 @@ FUN_020492BC: ; 0x020492BC add sp, #0x14 pop {r4-r5, pc} nop -_02049300: .word FUN_02049304 + 1 +_02049300: .word FUN_02049304 thumb_func_start FUN_02049304 FUN_02049304: ; 0x02049304 @@ -154243,8 +154243,8 @@ FUN_02049394: ; 0x02049394 mov r2, #0x0 bx r3 .balign 4 -_0204939C: .word FUN_0204640C + 1 -_020493A0: .word FUN_020493A4 + 1 +_0204939C: .word FUN_0204640C +_020493A0: .word FUN_020493A4 thumb_func_start FUN_020493A4 FUN_020493A4: ; 0x020493A4 @@ -154283,7 +154283,7 @@ FUN_020493D0: ; 0x020493D0 bl FUN_0204640C pop {r4, pc} .balign 4 -_020493E4: .word FUN_020493E8 + 1 +_020493E4: .word FUN_020493E8 thumb_func_start FUN_020493E8 FUN_020493E8: ; 0x020493E8 @@ -154336,7 +154336,7 @@ FUN_02049430: ; 0x02049430 bl FUN_0203739C cmp r0, #0x0 bne _02049452 - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} _02049452: ldr r0, [r5, #0x38] @@ -154351,7 +154351,7 @@ _02049452: bl FUN_0204640C pop {r4-r6, pc} nop -_02049470: .word FUN_02049474 + 1 +_02049470: .word FUN_02049474 thumb_func_start FUN_02049474 FUN_02049474: ; 0x02049474 @@ -154397,7 +154397,7 @@ FUN_02049494: ; 0x02049494 bl FUN_020463EC pop {r4-r6, pc} .balign 4 -_020494C8: .word FUN_020494CC + 1 +_020494C8: .word FUN_020494CC thumb_func_start FUN_020494CC FUN_020494CC: ; 0x020494CC @@ -154466,7 +154466,7 @@ _0204954A: bl FUN_020637E0 b _0204955A _02049556: - bl FUN_02020C2C + bl ErrorHandling _0204955A: add r0, r7, #0x0 bl FUN_020495B0 @@ -154489,8 +154489,8 @@ FUN_02049574: ; 0x02049574 mov r2, #0x0 bx r3 .balign 4 -_0204957C: .word FUN_0204640C + 1 -_02049580: .word FUN_02049584 + 1 +_0204957C: .word FUN_0204640C +_02049580: .word FUN_02049584 thumb_func_start FUN_02049584 FUN_02049584: ; 0x02049584 @@ -154529,7 +154529,7 @@ FUN_020495B0: ; 0x020495B0 bl FUN_0204640C pop {r4, pc} .balign 4 -_020495C4: .word FUN_020495C8 + 1 +_020495C4: .word FUN_020495C8 thumb_func_start FUN_020495C8 FUN_020495C8: ; 0x020495C8 @@ -154587,7 +154587,7 @@ FUN_0204961C: ; 0x0204961C bl FUN_0203739C cmp r0, #0x0 bne _0204963E - bl FUN_02020C2C + bl ErrorHandling pop {r4-r6, pc} _0204963E: ldr r2, [r6, #0x4] @@ -154712,7 +154712,7 @@ FUN_02049718: ; 0x02049718 mov r1, #0x0 mov r2, #0x1c add r7, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [r5, #0x38] bl FUN_020552F8 mov r1, #0x0 @@ -154737,7 +154737,7 @@ FUN_02049718: ; 0x02049718 add sp, #0x14 pop {r4-r7, pc} nop -_02049768: .word FUN_02049658 + 1 +_02049768: .word FUN_02049658 thumb_func_start FUN_0204976C FUN_0204976C: ; 0x0204976C @@ -154788,11 +154788,11 @@ _020497A4: sub r4, r0, #0x6 cmp r6, #0x0 bge _020497D4 - bl FUN_02020C2C + bl ErrorHandling _020497D4: cmp r4, #0x0 bge _020497DC - bl FUN_02020C2C + bl ErrorHandling _020497DC: lsr r2, r6, #0x1f lsl r1, r6, #0x1f @@ -154904,13 +154904,13 @@ _02049884: mov r2, #0x3 bl FUN_020545B8 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x24 bl FUN_02054608 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 add r0, r4, #0x0 ldr r1, [r4, #0x34] @@ -155300,12 +155300,12 @@ _02049BF4: ldr r0, _02049C08 ; =FUN_02049ACC pop {r3, pc} _02049BFC: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 -_02049C04: .word FUN_02049844 + 1 -_02049C08: .word FUN_02049ACC + 1 +_02049C04: .word FUN_02049844 +_02049C08: .word FUN_02049ACC thumb_func_start FUN_02049C0C FUN_02049C0C: ; 0x02049C0C @@ -155407,7 +155407,7 @@ FUN_02049CB0: ; 0x02049CB0 bl FUN_0203739C cmp r0, #0x0 beq _02049CD6 - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _02049CD6: mov r0, #0x0 @@ -155425,7 +155425,7 @@ _02049CD6: bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_02049CF4: .word FUN_02049C54 + 1 +_02049CF4: .word FUN_02049C54 thumb_func_start FUN_02049CF8 FUN_02049CF8: ; 0x02049CF8 @@ -155524,7 +155524,7 @@ FUN_02049D9C: ; 0x02049D9C add r6, r0, #0x0 mov r1, #0x0 mov r2, #0x1c - blx FUN_020CE34C + blx MI_CpuFill8 add r2, r6, #0x0 ldmia r4!, {r0-r1} add r2, #0x8 @@ -155547,7 +155547,7 @@ FUN_02049D9C: ; 0x02049D9C str r0, [r5, #0x78] pop {r4-r6, pc} nop -_02049DF0: .word FUN_02049CF8 + 1 +_02049DF0: .word FUN_02049CF8 thumb_func_start FUN_02049DF4 FUN_02049DF4: ; 0x02049DF4 @@ -155655,7 +155655,7 @@ FUN_02049EA4: ; 0x02049EA4 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r7, #0x0 add r1, r5, #0x0 bl FUN_02048CB0 @@ -155684,7 +155684,7 @@ FUN_02049EA4: ; 0x02049EA4 pop {r3-r7, pc} .balign 4 _02049F08: .word 0x000001D2 -_02049F0C: .word FUN_02049DF4 + 1 +_02049F0C: .word FUN_02049DF4 thumb_func_start FUN_02049F10 FUN_02049F10: ; 0x02049F10 @@ -155796,7 +155796,7 @@ FUN_02049F98: ; 0x02049F98 add sp, #0x18 pop {r3-r7, pc} nop -_02049FF8: .word FUN_02049F10 + 1 +_02049FF8: .word FUN_02049F10 thumb_func_start FUN_02049FFC FUN_02049FFC: ; 0x02049FFC @@ -156055,7 +156055,7 @@ _0204A1FE: cmp r4, r5 blt _0204A1E8 _0204A204: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} @@ -156402,7 +156402,7 @@ _0204A478: _0204A482: cmp r4, #0x10 blo _0204A48A - bl FUN_02020C2C + bl ErrorHandling _0204A48A: lsl r0, r4, #0x1 strh r5, [r6, r0] @@ -156694,7 +156694,7 @@ _0204A69C: str r1, [r0, #0x0] pop {r3, pc} _0204A6A6: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} .balign 4 _0204A6AC: .word 0x020F4708 @@ -156803,7 +156803,7 @@ _0204A754: blt _0204A768 cmp r4, #0x0 bne _0204A76A - bl FUN_02020C2C + bl ErrorHandling b _0204A76A _0204A768: mov r4, #0x0 @@ -156941,7 +156941,7 @@ FUN_0204A840: ; 0x0204A840 cmp r7, #0x0 bge _0204A868 _0204A864: - bl FUN_02020C2C + bl ErrorHandling _0204A868: lsl r0, r6, #0x10 str r0, [r5, #0x0] @@ -157281,7 +157281,7 @@ FUN_0204AAD4: ; 0x0204AAD4 add r5, r0, #0x0 add r6, r1, #0x0 str r2, [r4, #0x8] - blx FUN_020EBC80 + blx _s32_div_f lsl r1, r1, #0x10 lsr r1, r1, #0x10 ldr r0, [r4, #0x0] @@ -157290,7 +157290,7 @@ FUN_0204AAD4: ; 0x0204AAD4 str r0, [r4, #0x0] add r0, r5, #0x0 add r1, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r0, r0, #0x10 ldr r1, [r4, #0x8] @@ -157739,7 +157739,7 @@ _0204AE28: ldr r0, [r4, #0x0] mov r1, #0x6 add r0, r0, #0x1 - blx FUN_020EBC80 + blx _s32_div_f str r1, [r4, #0x0] _0204AE58: pop {r4, pc} @@ -157782,7 +157782,7 @@ _0204AE74: ldr r0, [r4, #0x0] mov r1, #0x6 add r0, r0, #0x1 - blx FUN_020EBC80 + blx _s32_div_f str r1, [r4, #0x0] _0204AEA6: pop {r4, pc} @@ -157848,7 +157848,7 @@ FUN_0204AEF8: ; 0x0204AEF8 bl FUN_0204640C pop {r4-r6, pc} nop -_0204AF20: .word FUN_0204AEA8 + 1 +_0204AF20: .word FUN_0204AEA8 thumb_func_start FUN_0204AF24 FUN_0204AF24: ; 0x0204AF24 @@ -157873,7 +157873,7 @@ FUN_0204AF3C: ; 0x0204AF3C bl FUN_0203739C cmp r0, #0x0 bne _0204AF54 - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} _0204AF54: add r0, r4, #0x0 @@ -157884,7 +157884,7 @@ _0204AF54: bl FUN_0204640C pop {r3-r5, pc} nop -_0204AF68: .word FUN_0204AF24 + 1 +_0204AF68: .word FUN_0204AF24 thumb_func_start FUN_0204AF6C FUN_0204AF6C: ; 0x0204AF6C @@ -157909,7 +157909,7 @@ FUN_0204AF84: ; 0x0204AF84 bl FUN_0203739C cmp r0, #0x0 beq _0204AF9C - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} _0204AF9C: add r0, r4, #0x0 @@ -157920,7 +157920,7 @@ _0204AF9C: bl FUN_0204640C pop {r3-r5, pc} nop -_0204AFB0: .word FUN_0204AF6C + 1 +_0204AFB0: .word FUN_0204AF6C thumb_func_start FUN_0204AFB4 FUN_0204AFB4: ; 0x0204AFB4 @@ -157944,7 +157944,7 @@ FUN_0204AFC8: ; 0x0204AFC8 bl FUN_0203739C cmp r0, #0x0 bne _0204AFE2 - bl FUN_02020C2C + bl ErrorHandling add sp, #0xc pop {r3-r4, pc} _0204AFE2: @@ -157966,7 +157966,7 @@ _0204AFE2: add sp, #0xc pop {r3-r4, pc} .balign 4 -_0204B008: .word FUN_0204AFB4 + 1 +_0204B008: .word FUN_0204AFB4 thumb_func_start FUN_0204B00C FUN_0204B00C: ; 0x0204B00C @@ -157977,7 +157977,7 @@ FUN_0204B00C: ; 0x0204B00C bl FUN_0203739C cmp r0, #0x0 bne _0204B026 - bl FUN_02020C2C + bl ErrorHandling add sp, #0xc pop {r3-r4, pc} _0204B026: @@ -157998,7 +157998,7 @@ _0204B026: add sp, #0xc pop {r3-r4, pc} nop -_0204B04C: .word FUN_0204AFB4 + 1 +_0204B04C: .word FUN_0204AFB4 thumb_func_start FUN_0204B050 FUN_0204B050: ; 0x0204B050 @@ -158043,8 +158043,8 @@ FUN_0204B090: ; 0x0204B090 mov r2, #0x0 bx r3 .balign 4 -_0204B098: .word FUN_0204640C + 1 -_0204B09C: .word FUN_0204B050 + 1 +_0204B098: .word FUN_0204640C +_0204B09C: .word FUN_0204B050 thumb_func_start FUN_0204B0A0 FUN_0204B0A0: ; 0x0204B0A0 @@ -158091,8 +158091,8 @@ FUN_0204B0E8: ; 0x0204B0E8 mov r2, #0x0 bx r3 .balign 4 -_0204B0F0: .word FUN_0204640C + 1 -_0204B0F4: .word FUN_0204B0A0 + 1 +_0204B0F0: .word FUN_0204640C +_0204B0F4: .word FUN_0204B0A0 thumb_func_start FUN_0204B0F8 FUN_0204B0F8: ; 0x0204B0F8 @@ -158449,7 +158449,7 @@ FUN_0204B388: ; 0x0204B388 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x64 - blx FUN_020CE34C + blx MI_CpuFill8 str r6, [r4, #0x0] add r0, r6, #0x0 bl FUN_02025128 @@ -158905,7 +158905,7 @@ _0204B73A: add r4, r4, #0x1 b _0204B746 _0204B742: - bl FUN_02020C2C + bl ErrorHandling _0204B746: add r0, r7, #0x0 add r1, r6, #0x0 @@ -158977,7 +158977,7 @@ _0204B7C0: add r4, r4, #0x1 b _0204B7CC _0204B7C8: - bl FUN_02020C2C + bl ErrorHandling _0204B7CC: ldr r0, [r5, #0x34] add r1, r7, #0x0 @@ -159230,7 +159230,7 @@ FUN_0204B9A0: ; 0x0204B9A0 bl FUN_0204640C pop {r3-r5, pc} .balign 4 -_0204B9C8: .word FUN_0204B818 + 1 +_0204B9C8: .word FUN_0204B818 thumb_func_start FUN_0204B9CC FUN_0204B9CC: ; 0x0204B9CC @@ -159254,7 +159254,7 @@ FUN_0204B9EC: ; 0x0204B9EC add r4, r0, #0x0 mov r0, #0x0 mov r2, #0x4c - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r1, _0204BA14 ; =0x021C5A1C add r0, r4, #0x0 bl FUN_0204BB20 @@ -159334,7 +159334,7 @@ FUN_0204BA90: ; 0x0204BA90 ldr r1, _0204BA9C ; =0x021C5A1C bx r3 nop -_0204BA98: .word FUN_0204BD40 + 1 +_0204BA98: .word FUN_0204BD40 _0204BA9C: .word 0x021C5A1C thumb_func_start FUN_0204BAA0 @@ -159343,7 +159343,7 @@ FUN_0204BAA0: ; 0x0204BAA0 ldr r2, _0204BAAC ; =0x021C5A1C bx r3 nop -_0204BAA8: .word FUN_0204BD18 + 1 +_0204BAA8: .word FUN_0204BD18 _0204BAAC: .word 0x021C5A1C thumb_func_start FUN_0204BAB0 @@ -159363,7 +159363,7 @@ FUN_0204BAC4: ; 0x0204BAC4 ldr r0, _0204BAD0 ; =0x021C5A1C bx r3 nop -_0204BACC: .word FUN_0204BD8C + 1 +_0204BACC: .word FUN_0204BD8C _0204BAD0: .word 0x021C5A1C thumb_func_start FUN_0204BAD4 @@ -159381,7 +159381,7 @@ FUN_0204BAE4: ; 0x0204BAE4 ldr r0, _0204BAF0 ; =0x021C5A1C bx r3 nop -_0204BAEC: .word FUN_0204BDA0 + 1 +_0204BAEC: .word FUN_0204BDA0 _0204BAF0: .word 0x021C5A1C thumb_func_start FUN_0204BAF4 @@ -159395,7 +159395,7 @@ FUN_0204BAF4: ; 0x0204BAF4 cmp r5, r0 bls _0204BB08 _0204BB04: - bl FUN_02020C2C + bl ErrorHandling _0204BB08: mov r3, #0x6 add r0, r4, #0x0 @@ -159500,12 +159500,12 @@ FUN_0204BBC4: ; 0x0204BBC4 add r4, r0, #0x0 bl FUN_0201B9EC ldr r1, _0204BBE4 ; =0x0000199A - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0xa blo _0204BBDE - bl FUN_02020C2C + bl ErrorHandling _0204BBDE: add r0, r5, #0x5 str r0, [r4, #0x38] @@ -159611,7 +159611,7 @@ _0204BC86: lsl r0, r0, #0x10 lsr r0, r0, #0x10 bne _0204BC94 - bl FUN_02020C2C + bl ErrorHandling _0204BC94: add r0, r6, #0x0 add r0, #0x14 @@ -159629,13 +159629,13 @@ _0204BCA4: lsl r1, r1, #0x10 ldr r0, _0204BD14 ; =0x0000FFFF lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r4, #0x0 lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 add r6, #0x14 lsr r4, r0, #0x10 @@ -159643,7 +159643,7 @@ _0204BCA4: lsr r0, r0, #0x10 cmp r4, r0 blo _0204BCD8 - bl FUN_02020C2C + bl ErrorHandling _0204BCD8: cmp r4, #0x14 bge _0204BCE0 @@ -159675,7 +159675,7 @@ _0204BD04: add r0, #0x8 cmp r1, #0x6 blt _0204BCE6 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} .balign 4 @@ -159701,7 +159701,7 @@ _0204BD28: strb r1, [r0, #0x0] pop {r4, pc} _0204BD3A: - bl FUN_02020C2C + bl ErrorHandling _0204BD3E: pop {r4, pc} @@ -159947,7 +159947,7 @@ FUN_0204BED8: ; 0x0204BED8 cmp r4, #0x19 blt _0204BEE8 _0204BEE4: - bl FUN_02020C2C + bl ErrorHandling _0204BEE8: mov r0, #0x1 ldrsb r1, [r5, r0] @@ -160012,7 +160012,7 @@ FUN_0204BF44: ; 0x0204BF44 push {r4, lr} add r4, r0, #0x0 bne _0204BF4E - bl FUN_02020C2C + bl ErrorHandling _0204BF4E: ldrb r0, [r4, #0x0] lsl r0, r0, #0x1a @@ -160027,11 +160027,11 @@ FUN_0204BF58: ; 0x0204BF58 add r4, r1, #0x0 cmp r5, #0x0 bne _0204BF66 - bl FUN_02020C2C + bl ErrorHandling _0204BF66: cmp r4, #0x8 blo _0204BF6E - bl FUN_02020C2C + bl ErrorHandling _0204BF6E: ldrb r1, [r5, #0x0] mov r0, #0x38 @@ -160208,7 +160208,7 @@ FUN_0204C080: ; 0x0204C080 add r7, r3, #0x0 cmp r4, #0x6 blt _0204C092 - bl FUN_02020C2C + bl ErrorHandling _0204C092: lsl r1, r4, #0x1 add r0, r5, r1 @@ -160229,7 +160229,7 @@ FUN_0204C0A4: ; 0x0204C0A4 add r7, r3, #0x0 cmp r4, #0x6 blt _0204C0B6 - bl FUN_02020C2C + bl ErrorHandling _0204C0B6: lsl r1, r4, #0x1 add r0, r5, r1 @@ -160259,7 +160259,7 @@ FUN_0204C0D4: ; 0x0204C0D4 beq _0204C0E6 add r0, #0x2a mov r2, #0x78 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _0204C0E6: pop {r3, pc} @@ -160271,7 +160271,7 @@ FUN_0204C0E8: ; 0x0204C0E8 add r1, r4, #0x0 add r1, #0x2a mov r2, #0x78 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldrb r1, [r4, #0x0] mov r0, #0x4 orr r0, r1 @@ -160351,7 +160351,7 @@ FUN_0204C174: ; 0x0204C174 str r3, [sp, #0x0] cmp r4, #0xc blt _0204C186 - bl FUN_02020C2C + bl ErrorHandling _0204C186: add r6, r5, #0x0 lsl r4, r4, #0x2 @@ -160359,7 +160359,7 @@ _0204C186: ldrh r0, [r6, r4] cmp r0, #0x0 bne _0204C196 - bl FUN_02020C2C + bl ErrorHandling _0204C196: ldrh r0, [r6, r4] str r0, [r7, #0x0] @@ -160377,7 +160377,7 @@ FUN_0204C1A8: ; 0x0204C1A8 mov r1, #0x5 bx r3 nop -_0204C1B0: .word FUN_02022610 + 1 +_0204C1B0: .word FUN_02022610 thumb_func_start FUN_0204C1B4 FUN_0204C1B4: ; 0x0204C1B4 @@ -160409,7 +160409,7 @@ FUN_0204C1B4: ; 0x0204C1B4 bl FUN_0204640C pop {r3-r7, pc} nop -_0204C1F0: .word FUN_0204C1F4 + 1 +_0204C1F0: .word FUN_0204C1F4 thumb_func_start FUN_0204C1F4 FUN_0204C1F4: ; 0x0204C1F4 @@ -160492,7 +160492,7 @@ FUN_0204C260: ; 0x0204C260 bl FUN_020463CC pop {r3-r7, pc} nop -_0204C298: .word FUN_0204C380 + 1 +_0204C298: .word FUN_0204C380 thumb_func_start FUN_0204C29C FUN_0204C29C: ; 0x0204C29C @@ -160545,7 +160545,7 @@ _0204C2F4: mov r4, #0x6 b _0204C36A _0204C302: - bl FUN_02020C2C + bl ErrorHandling b _0204C36A _0204C308: ldr r0, [sp, #0x8] @@ -160566,7 +160566,7 @@ _0204C320: mov r4, #0x6 b _0204C36A _0204C32E: - bl FUN_02020C2C + bl ErrorHandling b _0204C36A _0204C334: ldr r0, [sp, #0x8] @@ -160588,10 +160588,10 @@ _0204C356: bl FUN_02034930 cmp r0, #0x0 bne _0204C36A - bl FUN_02020C2C + bl ErrorHandling b _0204C36A _0204C366: - bl FUN_02020C2C + bl ErrorHandling _0204C36A: ldr r1, _0204C37C ; =FUN_0204C380 add r0, r7, #0x0 @@ -160601,7 +160601,7 @@ _0204C36A: add sp, #0xc pop {r4-r7, pc} nop -_0204C37C: .word FUN_0204C380 + 1 +_0204C37C: .word FUN_0204C380 thumb_func_start FUN_0204C380 FUN_0204C380: ; 0x0204C380 @@ -160915,7 +160915,7 @@ _0204C5E6: bl FUN_0205ADDC b _0204C5F6 _0204C5F2: - bl FUN_02020C2C + bl ErrorHandling _0204C5F6: ldr r0, [r4, #0x4] add r0, r0, #0x1 @@ -161179,7 +161179,7 @@ _0204C818: mov r0, #0x0 pop {r3-r7, pc} .balign 4 -_0204C81C: .word FUN_0204C6D4 + 1 +_0204C81C: .word FUN_0204C6D4 _0204C820: .word 0x021DB381 thumb_func_start FUN_0204C824 @@ -161285,7 +161285,7 @@ _0204C8EA: bl FUN_0205ADDC b _0204C8FC _0204C8F8: - bl FUN_02020C2C + bl ErrorHandling _0204C8FC: ldr r0, [r4, #0x4] add r0, r0, #0x1 @@ -161589,7 +161589,7 @@ _0204CB32: str r0, [r1, #0x0] mov r1, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 _0204CB40: ldr r1, _0204CC34 ; =0x021C5A68 ldr r0, _0204CC38 ; =0x000002BE @@ -161714,7 +161714,7 @@ _0204CC34: .word 0x021C5A68 _0204CC38: .word 0x000002BE _0204CC3C: .word 0x0000FFFF _0204CC40: .word 0x00000102 -_0204CC44: .word FUN_0204D4F0 + 1 +_0204CC44: .word FUN_0204D4F0 thumb_func_start FUN_0204CC48 FUN_0204CC48: ; 0x0204CC48 @@ -161892,7 +161892,7 @@ FUN_0204CD78: ; 0x0204CD78 bl FUN_02064520 b _0204CDA2 _0204CD9E: - bl FUN_02020C2C + bl ErrorHandling _0204CDA2: ldr r0, _0204CDB0 ; =0x021C5A68 mov r1, #0x0 @@ -162057,7 +162057,7 @@ _0204CEE4: .word 0x0000010A _0204CEE8: .word 0x0000013A _0204CEEC: .word 0x00000142 _0204CEF0: .word 0x000002BF -_0204CEF4: .word FUN_0204D4F0 + 1 +_0204CEF4: .word FUN_0204D4F0 thumb_func_start FUN_0204CEF8 FUN_0204CEF8: ; 0x0204CEF8 @@ -162661,7 +162661,7 @@ _0204D37C: bl FUN_02055068 add r7, r0, #0x0 bne _0204D3B2 - bl FUN_02020C2C + bl ErrorHandling _0204D3B2: ldr r0, _0204D430 ; =0x021C5A68 ldr r0, [r0, #0x0] @@ -162743,7 +162743,7 @@ FUN_0204D43C: ; 0x0204D43C add r0, #0x5a mov r1, #0x0 mov r2, #0x8 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_0204CD78 ldr r0, _0204D4CC ; =0x021C5A68 @@ -162822,7 +162822,7 @@ _0204D4E4: bx r3 .balign 4 _0204D4E8: .word 0x021C48B8 -_0204D4EC: .word FUN_02030F60 + 1 +_0204D4EC: .word FUN_02030F60 thumb_func_start FUN_0204D4F0 FUN_0204D4F0: ; 0x0204D4F0 @@ -163035,11 +163035,11 @@ FUN_0204D67C: ; 0x0204D67C beq _0204D6B8 cmp r1, #0x1 beq _0204D692 - bl FUN_02020C2C + bl ErrorHandling _0204D692: cmp r5, #0x8 blt _0204D69A - bl FUN_02020C2C + bl ErrorHandling _0204D69A: ldrb r0, [r4, #0x0] mov r1, #0x1 @@ -163051,7 +163051,7 @@ _0204D69A: _0204D6A8: cmp r1, #0x0 bne _0204D6B0 - bl FUN_02020C2C + bl ErrorHandling _0204D6B0: ldrb r1, [r4, #0x0] add r0, r5, #0x0 @@ -163305,7 +163305,7 @@ FUN_0204D870: ; 0x0204D870 cmp r4, #0x5 str r0, [r2, #0x0] blt _0204D88E - bl FUN_02020C2C + bl ErrorHandling _0204D88E: lsl r1, r4, #0x2 add r0, sp, #0x0 @@ -163712,7 +163712,7 @@ _0204DB5A: bl FUN_0204A6B4 cmp r0, #0x0 beq _0204DBBC - bl FUN_02020C2C + bl ErrorHandling _0204DBBC: pop {r3-r7, pc} nop @@ -164617,14 +164617,14 @@ FUN_0204E2AC: ; 0x0204E2AC ldr r3, _0204E2B0 ; =FUN_0204F7FC bx r3 .balign 4 -_0204E2B0: .word FUN_0204F7FC + 1 +_0204E2B0: .word FUN_0204F7FC thumb_func_start FUN_0204E2B4 FUN_0204E2B4: ; 0x0204E2B4 ldr r3, _0204E2B8 ; =FUN_0204F7FC bx r3 .balign 4 -_0204E2B8: .word FUN_0204F7FC + 1 +_0204E2B8: .word FUN_0204F7FC thumb_func_start FUN_0204E2BC FUN_0204E2BC: ; 0x0204E2BC @@ -164632,7 +164632,7 @@ FUN_0204E2BC: ; 0x0204E2BC mov r0, #0x2 bx r3 nop -_0204E2C4: .word FUN_0204F774 + 1 +_0204E2C4: .word FUN_0204F774 thumb_func_start FUN_0204E2C8 FUN_0204E2C8: ; 0x0204E2C8 @@ -164640,7 +164640,7 @@ FUN_0204E2C8: ; 0x0204E2C8 mov r0, #0x20 bx r3 nop -_0204E2D0: .word FUN_0204F774 + 1 +_0204E2D0: .word FUN_0204F774 thumb_func_start FUN_0204E2D4 FUN_0204E2D4: ; 0x0204E2D4 @@ -164648,7 +164648,7 @@ FUN_0204E2D4: ; 0x0204E2D4 mov r0, #0x1 bx r3 nop -_0204E2DC: .word FUN_0204F774 + 1 +_0204E2DC: .word FUN_0204F774 thumb_func_start FUN_0204E2E0 FUN_0204E2E0: ; 0x0204E2E0 @@ -165540,7 +165540,7 @@ _0204E962: pop {r4, pc} .balign 4 _0204E964: .word 0x021C5A68 -_0204E968: .word FUN_0204D308 + 1 +_0204E968: .word FUN_0204D308 thumb_func_start FUN_0204E96C FUN_0204E96C: ; 0x0204E96C @@ -165555,7 +165555,7 @@ FUN_0204E96C: ; 0x0204E96C ldrb r0, [r5, #0x1] cmp r0, #0x8 blo _0204E988 - bl FUN_02020C2C + bl ErrorHandling _0204E988: ldrb r0, [r5, #0x0] cmp r0, #0x4 @@ -165706,8 +165706,8 @@ _0204EACA: pop {r4-r6, pc} .balign 4 _0204EACC: .word 0x021C5A68 -_0204EAD0: .word FUN_0204E2AC + 1 -_0204EAD4: .word FUN_0204D308 + 1 +_0204EAD0: .word FUN_0204E2AC +_0204EAD4: .word FUN_0204D308 thumb_func_start FUN_0204EAD8 FUN_0204EAD8: ; 0x0204EAD8 @@ -166475,7 +166475,7 @@ _0204F09C: bx r3 .balign 4 _0204F0A0: .word 0x021C5A68 -_0204F0A4: .word FUN_0204CD78 + 1 +_0204F0A4: .word FUN_0204CD78 thumb_func_start FUN_0204F0A8 FUN_0204F0A8: ; 0x0204F0A8 @@ -166492,7 +166492,7 @@ _0204F0B8: bx r3 .balign 4 _0204F0BC: .word 0x021C5A68 -_0204F0C0: .word FUN_0204CD78 + 1 +_0204F0C0: .word FUN_0204CD78 thumb_func_start FUN_0204F0C4 FUN_0204F0C4: ; 0x0204F0C4 @@ -166613,7 +166613,7 @@ FUN_0204F178: ; 0x0204F178 pop {r4, pc} .balign 4 _0204F1A8: .word 0x021C5A68 -_0204F1AC: .word FUN_0204F124 + 1 +_0204F1AC: .word FUN_0204F124 thumb_func_start FUN_0204F1B0 FUN_0204F1B0: ; 0x0204F1B0 @@ -166749,7 +166749,7 @@ _0204F2AA: pop {r4-r6, pc} nop _0204F2C8: .word 0x021C5A68 -_0204F2CC: .word FUN_0204F108 + 1 +_0204F2CC: .word FUN_0204F108 _0204F2D0: .word 0x00000424 _0204F2D4: .word 0x000005F6 @@ -167102,14 +167102,14 @@ _0204F5DA: pop {r4-r5, pc} nop _0204F5E0: .word 0x021C5A68 -_0204F5E4: .word FUN_0204E2B4 + 1 +_0204F5E4: .word FUN_0204E2B4 _0204F5E8: .word 0x00000424 -_0204F5EC: .word FUN_0204E2AC + 1 +_0204F5EC: .word FUN_0204E2AC _0204F5F0: .word 0x00000625 -_0204F5F4: .word FUN_0204E2D4 + 1 +_0204F5F4: .word FUN_0204E2D4 _0204F5F8: .word 0x00000425 -_0204F5FC: .word FUN_0204E2BC + 1 -_0204F600: .word FUN_0204E2C8 + 1 +_0204F5FC: .word FUN_0204E2BC +_0204F600: .word FUN_0204E2C8 _0204F604: .word 0x0000FFFF _0204F608: .word 0x000002B2 _0204F60C: .word 0x0000062B @@ -167137,7 +167137,7 @@ _0204F62A: mov r0, #0x2 pop {r3, pc} _0204F632: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x2 pop {r3, pc} .balign 4 @@ -167584,11 +167584,11 @@ _0204F96E: add r5, r0, #0x0 cmp r4, #0x0 bne _0204F988 - bl FUN_02020C2C + bl ErrorHandling _0204F988: cmp r5, #0x0 bne _0204F990 - bl FUN_02020C2C + bl ErrorHandling _0204F990: add r0, r4, #0x0 add r1, r5, #0x0 @@ -167682,7 +167682,7 @@ _0204FA26: strb r2, [r1, r0] pop {r3-r7, pc} _0204FA4C: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x8 pop {r3-r7, pc} .balign 4 @@ -167889,7 +167889,7 @@ FUN_0204FBB0: ; 0x0204FBB0 mov r2, #0x48 str r0, [r1, #0x0] mov r1, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _0204FC08 ; =0x021C5A6C mov r1, #0x32 ldr r0, [r0, #0x0] @@ -167915,7 +167915,7 @@ _0204FC04: pop {r4, pc} nop _0204FC08: .word 0x021C5A6C -_0204FC0C: .word FUN_0205006C + 1 +_0204FC0C: .word FUN_0205006C thumb_func_start FUN_0204FC10 FUN_0204FC10: ; 0x0204FC10 @@ -168013,7 +168013,7 @@ FUN_0204FCA0: ; 0x0204FCA0 pop {r3, pc} .balign 4 _0204FCD0: .word 0x021C5A6C -_0204FCD4: .word FUN_020500A4 + 1 +_0204FCD4: .word FUN_020500A4 thumb_func_start FUN_0204FCD8 FUN_0204FCD8: ; 0x0204FCD8 @@ -168029,7 +168029,7 @@ _0204FCEA: pop {r3, pc} .balign 4 _0204FCEC: .word 0x021C5A6C -_0204FCF0: .word FUN_02050D54 + 1 +_0204FCF0: .word FUN_02050D54 thumb_func_start FUN_0204FCF4 FUN_0204FCF4: ; 0x0204FCF4 @@ -168040,7 +168040,7 @@ FUN_0204FCF4: ; 0x0204FCF4 bl FUN_02050094 pop {r3, pc} .balign 4 -_0204FD04: .word FUN_020504D8 + 1 +_0204FD04: .word FUN_020504D8 thumb_func_start FUN_0204FD08 FUN_0204FD08: ; 0x0204FD08 @@ -168055,7 +168055,7 @@ FUN_0204FD08: ; 0x0204FD08 _0204FD1E: pop {r3, pc} .balign 4 -_0204FD20: .word FUN_020500A4 + 1 +_0204FD20: .word FUN_020500A4 thumb_func_start FUN_0204FD24 FUN_0204FD24: ; 0x0204FD24 @@ -168066,7 +168066,7 @@ FUN_0204FD24: ; 0x0204FD24 bl FUN_02050094 pop {r3, pc} .balign 4 -_0204FD34: .word FUN_0204FD08 + 1 +_0204FD34: .word FUN_0204FD08 thumb_func_start FUN_0204FD38 FUN_0204FD38: ; 0x0204FD38 @@ -168141,14 +168141,14 @@ _0204FDAE: .balign 4 _0204FDBC: .word 0x021C5A6C _0204FDC0: .word 0x020F5838 -_0204FDC4: .word FUN_020502AC + 1 -_0204FDC8: .word FUN_02050548 + 1 -_0204FDCC: .word FUN_02050168 + 1 -_0204FDD0: .word FUN_0205031C + 1 -_0204FDD4: .word FUN_02050578 + 1 -_0204FDD8: .word FUN_020505E0 + 1 -_0204FDDC: .word FUN_020504D0 + 1 -_0204FDE0: .word FUN_02050610 + 1 +_0204FDC4: .word FUN_020502AC +_0204FDC8: .word FUN_02050548 +_0204FDCC: .word FUN_02050168 +_0204FDD0: .word FUN_0205031C +_0204FDD4: .word FUN_02050578 +_0204FDD8: .word FUN_020505E0 +_0204FDDC: .word FUN_020504D0 +_0204FDE0: .word FUN_02050610 thumb_func_start FUN_0204FDE4 FUN_0204FDE4: ; 0x0204FDE4 @@ -168196,14 +168196,14 @@ _0204FE34: pop {r4, pc} .balign 4 _0204FE38: .word 0x021C5A6C -_0204FE3C: .word FUN_0205058C + 1 -_0204FE40: .word FUN_020505F4 + 1 -_0204FE44: .word FUN_02050330 + 1 -_0204FE48: .word FUN_02050624 + 1 -_0204FE4C: .word FUN_02050338 + 1 -_0204FE50: .word FUN_02050594 + 1 -_0204FE54: .word FUN_020505F8 + 1 -_0204FE58: .word FUN_02050628 + 1 +_0204FE3C: .word FUN_0205058C +_0204FE40: .word FUN_020505F4 +_0204FE44: .word FUN_02050330 +_0204FE48: .word FUN_02050624 +_0204FE4C: .word FUN_02050338 +_0204FE50: .word FUN_02050594 +_0204FE54: .word FUN_020505F8 +_0204FE58: .word FUN_02050628 thumb_func_start FUN_0204FE5C FUN_0204FE5C: ; 0x0204FE5C @@ -168282,7 +168282,7 @@ _0204FEE8: add sp, #0x4 pop {r3-r6, pc} .balign 4 -_0204FEEC: .word FUN_02050640 + 1 +_0204FEEC: .word FUN_02050640 thumb_func_start FUN_0204FEF0 FUN_0204FEF0: ; 0x0204FEF0 @@ -168313,7 +168313,7 @@ _0204FF28: add sp, #0x4 pop {r3-r6, pc} .balign 4 -_0204FF2C: .word FUN_02050668 + 1 +_0204FF2C: .word FUN_02050668 thumb_func_start FUN_0204FF30 FUN_0204FF30: ; 0x0204FF30 @@ -168327,8 +168327,8 @@ FUN_0204FF30: ; 0x0204FF30 bx r3 .balign 4 _0204FF40: .word 0x021C5A6C -_0204FF44: .word FUN_02050094 + 1 -_0204FF48: .word FUN_02050688 + 1 +_0204FF44: .word FUN_02050094 +_0204FF48: .word FUN_02050688 thumb_func_start FUN_0204FF4C FUN_0204FF4C: ; 0x0204FF4C @@ -168337,8 +168337,8 @@ FUN_0204FF4C: ; 0x0204FF4C mov r1, #0x0 bx r3 .balign 4 -_0204FF54: .word FUN_02050094 + 1 -_0204FF58: .word FUN_02050BBC + 1 +_0204FF54: .word FUN_02050094 +_0204FF58: .word FUN_02050BBC thumb_func_start FUN_0204FF5C FUN_0204FF5C: ; 0x0204FF5C @@ -168431,7 +168431,7 @@ _02050014: .balign 4 _02050018: .word 0x021C5A6C _0205001C: .word 0x0000066C -_02050020: .word FUN_02050C14 + 1 +_02050020: .word FUN_02050C14 thumb_func_start FUN_02050024 FUN_02050024: ; 0x02050024 @@ -168450,7 +168450,7 @@ _0205003E: pop {r3, pc} .balign 4 _02050040: .word 0x021C5A6C -_02050044: .word FUN_02050DB0 + 1 +_02050044: .word FUN_02050DB0 thumb_func_start FUN_02050048 FUN_02050048: ; 0x02050048 @@ -168468,7 +168468,7 @@ _02050060: pop {r3, pc} nop _02050064: .word 0x021C5A6C -_02050068: .word FUN_02050D88 + 1 +_02050068: .word FUN_02050D88 thumb_func_start FUN_0205006C FUN_0205006C: ; 0x0205006C @@ -168549,8 +168549,8 @@ _02050104: pop {r3, pc} nop _02050108: .word 0x021C5A6C -_0205010C: .word FUN_02050114 + 1 -_02050110: .word FUN_02050144 + 1 +_0205010C: .word FUN_02050114 +_02050110: .word FUN_02050144 thumb_func_start FUN_02050114 FUN_02050114: ; 0x02050114 @@ -168572,7 +168572,7 @@ _0205013A: pop {r3, pc} .balign 4 _0205013C: .word 0x021C5A6C -_02050140: .word FUN_02050168 + 1 +_02050140: .word FUN_02050168 thumb_func_start FUN_02050144 FUN_02050144: ; 0x02050144 @@ -168592,7 +168592,7 @@ _02050156: pop {r3, pc} .balign 4 _02050160: .word 0x021C5A6C -_02050164: .word FUN_02050168 + 1 +_02050164: .word FUN_02050168 thumb_func_start FUN_02050168 FUN_02050168: ; 0x02050168 @@ -168617,8 +168617,8 @@ _02050190: _02050198: pop {r3, pc} nop -_0205019C: .word FUN_0205024C + 1 -_020501A0: .word FUN_020501A4 + 1 +_0205019C: .word FUN_0205024C +_020501A0: .word FUN_020501A4 thumb_func_start FUN_020501A4 FUN_020501A4: ; 0x020501A4 @@ -168691,8 +168691,8 @@ _0205023C: pop {r3, pc} nop _02050240: .word 0x021C5A6C -_02050244: .word FUN_020504A4 + 1 -_02050248: .word FUN_02050350 + 1 +_02050244: .word FUN_020504A4 +_02050248: .word FUN_02050350 thumb_func_start FUN_0205024C FUN_0205024C: ; 0x0205024C @@ -168735,7 +168735,7 @@ _0205029E: .balign 4 _020502A0: .word 0x021C5A6C _020502A4: .word 0x02105E74 -_020502A8: .word FUN_020502AC + 1 +_020502A8: .word FUN_020502AC thumb_func_start FUN_020502AC FUN_020502AC: ; 0x020502AC @@ -168779,7 +168779,7 @@ _02050310: pop {r3, pc} nop _02050314: .word 0x021C5A6C -_02050318: .word FUN_02050458 + 1 +_02050318: .word FUN_02050458 thumb_func_start FUN_0205031C FUN_0205031C: ; 0x0205031C @@ -168790,7 +168790,7 @@ FUN_0205031C: ; 0x0205031C bl FUN_02050094 pop {r3, pc} .balign 4 -_0205032C: .word FUN_02050330 + 1 +_0205032C: .word FUN_02050330 thumb_func_start FUN_02050330 FUN_02050330: ; 0x02050330 @@ -168809,7 +168809,7 @@ FUN_02050338: ; 0x02050338 bl FUN_02050094 pop {r3, pc} .balign 4 -_0205034C: .word FUN_020502AC + 1 +_0205034C: .word FUN_020502AC thumb_func_start FUN_02050350 FUN_02050350: ; 0x02050350 @@ -168855,7 +168855,7 @@ _020503A0: nop _020503A8: .word 0x021C5A6C _020503AC: .word 0x02105E80 -_020503B0: .word FUN_020503B4 + 1 +_020503B0: .word FUN_020503B4 thumb_func_start FUN_020503B4 FUN_020503B4: ; 0x020503B4 @@ -168882,7 +168882,7 @@ _020503E0: bl FUN_02050510 pop {r3, pc} nop -_020503E8: .word FUN_020503F0 + 1 +_020503E8: .word FUN_020503F0 _020503EC: .word 0x021C5A6C thumb_func_start FUN_020503F0 @@ -168904,7 +168904,7 @@ _02050412: pop {r3, pc} .balign 4 _02050418: .word 0x02105E94 -_0205041C: .word FUN_02050420 + 1 +_0205041C: .word FUN_02050420 thumb_func_start FUN_02050420 FUN_02050420: ; 0x02050420 @@ -168928,7 +168928,7 @@ _0205044A: pop {r3, pc} .balign 4 _02050450: .word 0x02105EB0 -_02050454: .word FUN_02050548 + 1 +_02050454: .word FUN_02050548 thumb_func_start FUN_02050458 FUN_02050458: ; 0x02050458 @@ -168945,7 +168945,7 @@ FUN_02050458: ; 0x02050458 _02050472: pop {r3, pc} .balign 4 -_02050474: .word FUN_02050478 + 1 +_02050474: .word FUN_02050478 thumb_func_start FUN_02050478 FUN_02050478: ; 0x02050478 @@ -168969,7 +168969,7 @@ _0205049A: pop {r3, pc} .balign 4 _0205049C: .word 0x021C5A6C -_020504A0: .word FUN_020500A4 + 1 +_020504A0: .word FUN_020500A4 thumb_func_start FUN_020504A4 FUN_020504A4: ; 0x020504A4 @@ -168993,7 +168993,7 @@ _020504C6: pop {r3, pc} .balign 4 _020504C8: .word 0x021C5A6C -_020504CC: .word FUN_020500A4 + 1 +_020504CC: .word FUN_020500A4 thumb_func_start FUN_020504D0 FUN_020504D0: ; 0x020504D0 @@ -169024,7 +169024,7 @@ _02050506: pop {r3, pc} .balign 4 _02050508: .word 0x021C5A6C -_0205050C: .word FUN_020504D0 + 1 +_0205050C: .word FUN_020504D0 thumb_func_start FUN_02050510 FUN_02050510: ; 0x02050510 @@ -169045,7 +169045,7 @@ FUN_02050510: ; 0x02050510 bl FUN_02050094 pop {r3, pc} .balign 4 -_02050544: .word FUN_020504A4 + 1 +_02050544: .word FUN_020504A4 thumb_func_start FUN_02050548 FUN_02050548: ; 0x02050548 @@ -169080,7 +169080,7 @@ FUN_02050578: ; 0x02050578 bl FUN_02050094 pop {r3, pc} .balign 4 -_02050588: .word FUN_0205058C + 1 +_02050588: .word FUN_0205058C thumb_func_start FUN_0205058C FUN_0205058C: ; 0x0205058C @@ -169116,8 +169116,8 @@ _020505CC: bl FUN_02050094 pop {r3, pc} nop -_020505D8: .word FUN_020504A4 + 1 -_020505DC: .word FUN_02050548 + 1 +_020505D8: .word FUN_020504A4 +_020505DC: .word FUN_02050548 thumb_func_start FUN_020505E0 FUN_020505E0: ; 0x020505E0 @@ -169128,7 +169128,7 @@ FUN_020505E0: ; 0x020505E0 bl FUN_02050094 pop {r3, pc} .balign 4 -_020505F0: .word FUN_020505F4 + 1 +_020505F0: .word FUN_020505F4 thumb_func_start FUN_020505F4 FUN_020505F4: ; 0x020505F4 @@ -169145,7 +169145,7 @@ FUN_020505F8: ; 0x020505F8 bl FUN_02050094 pop {r3, pc} .balign 4 -_0205060C: .word FUN_02050168 + 1 +_0205060C: .word FUN_02050168 thumb_func_start FUN_02050610 FUN_02050610: ; 0x02050610 @@ -169156,7 +169156,7 @@ FUN_02050610: ; 0x02050610 bl FUN_02050094 pop {r3, pc} .balign 4 -_02050620: .word FUN_02050624 + 1 +_02050620: .word FUN_02050624 thumb_func_start FUN_02050624 FUN_02050624: ; 0x02050624 @@ -169173,7 +169173,7 @@ FUN_02050628: ; 0x02050628 bl FUN_02050094 pop {r3, pc} .balign 4 -_0205063C: .word FUN_020504D0 + 1 +_0205063C: .word FUN_020504D0 thumb_func_start FUN_02050640 FUN_02050640: ; 0x02050640 @@ -169190,7 +169190,7 @@ FUN_02050640: ; 0x02050640 _0205065E: pop {r3, pc} .balign 4 -_02050660: .word FUN_02050664 + 1 +_02050660: .word FUN_02050664 thumb_func_start FUN_02050664 FUN_02050664: ; 0x02050664 @@ -169210,7 +169210,7 @@ FUN_02050668: ; 0x02050668 _0205067E: pop {r3, pc} .balign 4 -_02050680: .word FUN_02050684 + 1 +_02050680: .word FUN_02050684 thumb_func_start FUN_02050684 FUN_02050684: ; 0x02050684 @@ -169231,7 +169231,7 @@ FUN_02050688: ; 0x02050688 pop {r3, pc} .balign 4 _020506A0: .word 0x021C5A6C -_020506A4: .word FUN_020506A8 + 1 +_020506A4: .word FUN_020506A8 thumb_func_start FUN_020506A8 FUN_020506A8: ; 0x020506A8 @@ -169246,7 +169246,7 @@ FUN_020506A8: ; 0x020506A8 _020506BE: pop {r3, pc} .balign 4 -_020506C0: .word FUN_020506C4 + 1 +_020506C0: .word FUN_020506C4 thumb_func_start FUN_020506C4 FUN_020506C4: ; 0x020506C4 @@ -169294,7 +169294,7 @@ _02050714: pop {r3, pc} .balign 4 _02050720: .word 0x021C5A6C -_02050724: .word FUN_02050728 + 1 +_02050724: .word FUN_02050728 thumb_func_start FUN_02050728 FUN_02050728: ; 0x02050728 @@ -169333,7 +169333,7 @@ _02050776: add sp, #0xc pop {pc} nop -_0205077C: .word FUN_020507B4 + 1 +_0205077C: .word FUN_020507B4 thumb_func_start FUN_02050780 FUN_02050780: ; 0x02050780 @@ -169359,7 +169359,7 @@ _020507A8: pop {r3, pc} nop _020507AC: .word 0x021C5A6C -_020507B0: .word FUN_02050930 + 1 +_020507B0: .word FUN_02050930 thumb_func_start FUN_020507B4 FUN_020507B4: ; 0x020507B4 @@ -169393,7 +169393,7 @@ _020507EC: pop {r3, pc} nop _020507F0: .word 0x021C5A6C -_020507F4: .word FUN_02050780 + 1 +_020507F4: .word FUN_02050780 thumb_func_start FUN_020507F8 FUN_020507F8: ; 0x020507F8 @@ -169435,7 +169435,7 @@ _02050840: pop {r3, pc} .balign 4 _0205084C: .word 0x021C5A6C -_02050850: .word FUN_02050854 + 1 +_02050850: .word FUN_02050854 thumb_func_start FUN_02050854 FUN_02050854: ; 0x02050854 @@ -169480,7 +169480,7 @@ _020508B0: add sp, #0x10 pop {r3, pc} .balign 4 -_020508B4: .word FUN_02050A14 + 1 +_020508B4: .word FUN_02050A14 thumb_func_start FUN_020508B8 FUN_020508B8: ; 0x020508B8 @@ -169566,7 +169566,7 @@ _0205095A: pop {r3, pc} .balign 4 _02050960: .word 0x021C5A6C -_02050964: .word FUN_02050A14 + 1 +_02050964: .word FUN_02050A14 thumb_func_start FUN_02050968 FUN_02050968: ; 0x02050968 @@ -169603,8 +169603,8 @@ _02050994: pop {r3-r5, pc} .balign 4 _020509AC: .word 0x021C5A6C -_020509B0: .word FUN_02050B8C + 1 -_020509B4: .word FUN_02050930 + 1 +_020509B0: .word FUN_02050B8C +_020509B4: .word FUN_02050930 thumb_func_start FUN_020509B8 FUN_020509B8: ; 0x020509B8 @@ -169613,8 +169613,8 @@ FUN_020509B8: ; 0x020509B8 mov r1, #0x0 bx r3 .balign 4 -_020509C0: .word FUN_02050094 + 1 -_020509C4: .word FUN_02050930 + 1 +_020509C0: .word FUN_02050094 +_020509C4: .word FUN_02050930 thumb_func_start FUN_020509C8 FUN_020509C8: ; 0x020509C8 @@ -169648,8 +169648,8 @@ _02050A06: pop {r3, pc} .balign 4 _02050A08: .word 0x021C5A6C -_02050A0C: .word FUN_02050968 + 1 -_02050A10: .word FUN_020509B8 + 1 +_02050A0C: .word FUN_02050968 +_02050A10: .word FUN_020509B8 thumb_func_start FUN_02050A14 FUN_02050A14: ; 0x02050A14 @@ -169674,7 +169674,7 @@ _02050A38: pop {r3, pc} nop _02050A40: .word 0x021C5A6C -_02050A44: .word FUN_020509C8 + 1 +_02050A44: .word FUN_020509C8 thumb_func_start FUN_02050A48 FUN_02050A48: ; 0x02050A48 @@ -169715,8 +169715,8 @@ _02050A82: bx lr nop _02050A88: .word 0x021C5A6C -_02050A8C: .word FUN_02050A14 + 1 -_02050A90: .word FUN_02050930 + 1 +_02050A8C: .word FUN_02050A14 +_02050A90: .word FUN_02050930 thumb_func_start FUN_02050A94 FUN_02050A94: ; 0x02050A94 @@ -169809,7 +169809,7 @@ _02050B3E: pop {r3, pc} .balign 4 _02050B40: .word 0x021C5A6C -_02050B44: .word FUN_02050A94 + 1 +_02050B44: .word FUN_02050A94 thumb_func_start FUN_02050B48 FUN_02050B48: ; 0x02050B48 @@ -169830,7 +169830,7 @@ _02050B5A: pop {r3, pc} .balign 4 _02050B68: .word 0x021C5A6C -_02050B6C: .word FUN_02050B04 + 1 +_02050B6C: .word FUN_02050B04 thumb_func_start FUN_02050B70 FUN_02050B70: ; 0x02050B70 @@ -169845,7 +169845,7 @@ FUN_02050B70: ; 0x02050B70 _02050B84: pop {r3, pc} nop -_02050B88: .word FUN_02050B48 + 1 +_02050B88: .word FUN_02050B48 thumb_func_start FUN_02050B8C FUN_02050B8C: ; 0x02050B8C @@ -169869,7 +169869,7 @@ _02050B9E: pop {r3, pc} .balign 4 _02050BB4: .word 0x021C5A6C -_02050BB8: .word FUN_02050B70 + 1 +_02050BB8: .word FUN_02050B70 thumb_func_start FUN_02050BBC FUN_02050BBC: ; 0x02050BBC @@ -169880,7 +169880,7 @@ FUN_02050BBC: ; 0x02050BBC bl FUN_02050094 pop {r3, pc} .balign 4 -_02050BCC: .word FUN_02050BD0 + 1 +_02050BCC: .word FUN_02050BD0 thumb_func_start FUN_02050BD0 FUN_02050BD0: ; 0x02050BD0 @@ -169894,7 +169894,7 @@ FUN_02050BD0: ; 0x02050BD0 _02050BE2: pop {r3, pc} .balign 4 -_02050BE4: .word FUN_020506A8 + 1 +_02050BE4: .word FUN_020506A8 thumb_func_start FUN_02050BE8 FUN_02050BE8: ; 0x02050BE8 @@ -169913,7 +169913,7 @@ FUN_02050BF8: ; 0x02050BF8 add r4, r0, #0x0 cmp r4, #0x4 blt _02050C04 - bl FUN_02020C2C + bl ErrorHandling _02050C04: ldr r0, _02050C10 ; =0x021C5A6C ldr r1, [r0, #0x0] @@ -169947,7 +169947,7 @@ _02050C3E: .balign 4 _02050C40: .word 0x021C5A6C _02050C44: .word 0x0000066C -_02050C48: .word FUN_02050C4C + 1 +_02050C48: .word FUN_02050C4C thumb_func_start FUN_02050C4C FUN_02050C4C: ; 0x02050C4C @@ -169977,7 +169977,7 @@ _02050C7C: pop {r3-r5, pc} nop _02050C80: .word 0x021C5A6C -_02050C84: .word FUN_02050CF4 + 1 +_02050C84: .word FUN_02050CF4 thumb_func_start FUN_02050C88 FUN_02050C88: ; 0x02050C88 @@ -170012,7 +170012,7 @@ _02050CC2: pop {r3, pc} .balign 4 _02050CC4: .word 0x021C5A6C -_02050CC8: .word FUN_02050D10 + 1 +_02050CC8: .word FUN_02050D10 thumb_func_start FUN_02050CCC FUN_02050CCC: ; 0x02050CCC @@ -170033,7 +170033,7 @@ _02050CDE: pop {r3, pc} .balign 4 _02050CEC: .word 0x021C5A6C -_02050CF0: .word FUN_02050C88 + 1 +_02050CF0: .word FUN_02050C88 thumb_func_start FUN_02050CF4 FUN_02050CF4: ; 0x02050CF4 @@ -170048,7 +170048,7 @@ FUN_02050CF4: ; 0x02050CF4 _02050D08: pop {r3, pc} nop -_02050D0C: .word FUN_02050CCC + 1 +_02050D0C: .word FUN_02050CCC thumb_func_start FUN_02050D10 FUN_02050D10: ; 0x02050D10 @@ -170081,8 +170081,8 @@ _02050D3E: pop {r3, pc} .balign 4 _02050D48: .word 0x021C5A6C -_02050D4C: .word FUN_020506C8 + 1 -_02050D50: .word FUN_020507F8 + 1 +_02050D4C: .word FUN_020506C8 +_02050D50: .word FUN_020507F8 thumb_func_start FUN_02050D54 FUN_02050D54: ; 0x02050D54 @@ -170128,7 +170128,7 @@ FUN_02050D88: ; 0x02050D88 _02050DAA: pop {r3, pc} .balign 4 -_02050DAC: .word FUN_02050DC8 + 1 +_02050DAC: .word FUN_02050DC8 thumb_func_start FUN_02050DB0 FUN_02050DB0: ; 0x02050DB0 @@ -170140,7 +170140,7 @@ FUN_02050DB0: ; 0x02050DB0 bl FUN_02050094 pop {r3, pc} nop -_02050DC4: .word FUN_02050DC8 + 1 +_02050DC4: .word FUN_02050DC8 thumb_func_start FUN_02050DC8 FUN_02050DC8: ; 0x02050DC8 @@ -170161,7 +170161,7 @@ _02050DDA: pop {r3, pc} .balign 4 _02050DE8: .word 0x021C5A6C -_02050DEC: .word FUN_0204FC10 + 1 +_02050DEC: .word FUN_0204FC10 thumb_func_start FUN_02050DF0 FUN_02050DF0: ; 0x02050DF0 @@ -170232,7 +170232,7 @@ FUN_02050E48: ; 0x02050E48 mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [r5, #0xc] bl FUN_020238F4 add r1, r0, #0x0 @@ -170245,7 +170245,7 @@ FUN_02050E48: ; 0x02050E48 bl FUN_02079C70 str r0, [r4, #0x2c] add r0, r6, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x4] ldr r0, [sp, #0x0] str r0, [r4, #0x0] @@ -170287,10 +170287,10 @@ FUN_02050ED4: ; 0x02050ED4 mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] ldr r0, [r5, #0x24] add r0, #0xac @@ -170413,7 +170413,7 @@ _02050FDA: add r0, #0x2c add r1, #0x3d mov r2, #0x6 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, [r4, #0x4] add r0, #0x22 ldrb r0, [r0, #0x0] @@ -171415,7 +171415,7 @@ FUN_020517C0: ; 0x020517C0 bl FUN_020545B8 ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02054608 @@ -171426,7 +171426,7 @@ _020517F2: _020517F8: ldr r0, [r5, #0x24] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 add r0, r4, #0x0 add r1, r6, #0x0 @@ -171503,7 +171503,7 @@ _0205188E: add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x8c - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 mov r1, #0x5 add r0, #0x43 @@ -171616,7 +171616,7 @@ _02051988: _02051992: pop {r4-r6, pc} .balign 4 -_02051994: .word FUN_02051094 + 1 +_02051994: .word FUN_02051094 thumb_func_start FUN_02051998 FUN_02051998: ; 0x02051998 @@ -171659,7 +171659,7 @@ FUN_020519E4: ; 0x020519E4 ldr r0, [r0, #0x10] bx r3 nop -_020519EC: .word FUN_0204652C + 1 +_020519EC: .word FUN_0204652C thumb_func_start FUN_020519F0 FUN_020519F0: ; 0x020519F0 @@ -171689,7 +171689,7 @@ _02051A16: bl FUN_0206B9B0 add r1, r4, #0x0 add r2, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r5, r5, #0x1 add r4, r4, r6 cmp r5, #0x3 @@ -171851,7 +171851,7 @@ FUN_02051B1C: ; 0x02051B1C mul r2, r4 add r1, r3, r2 add r2, r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, [r6, #0x50] mov r1, #0x3 bl FUN_0206B8CC @@ -172215,7 +172215,7 @@ FUN_02051E24: ; 0x02051E24 mov r1, #0x1 bx r3 .balign 4 -_02051E2C: .word FUN_0200CCF8 + 1 +_02051E2C: .word FUN_0200CCF8 thumb_func_start FUN_02051E30 FUN_02051E30: ; 0x02051E30 @@ -172365,13 +172365,13 @@ _02051EF2: mov r2, #0x3 bl FUN_020545B8 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 add r0, #0x8 bl FUN_02054608 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 add r0, r4, #0x0 ldr r1, [r4, #0x4] @@ -172521,14 +172521,14 @@ _0205209C: _020520A6: pop {r3-r7, pc} .balign 4 -_020520A8: .word FUN_02051EB0 + 1 +_020520A8: .word FUN_02051EB0 thumb_func_start FUN_020520AC FUN_020520AC: ; 0x020520AC push {r3-r5, lr} add r4, r0, #0x0 bne _020520B6 - bl FUN_02020C2C + bl ErrorHandling _020520B6: ldr r0, [r4, #0x78] cmp r0, #0x0 @@ -172558,7 +172558,7 @@ _020520D8: add r0, r5, #0x0 pop {r3-r5, pc} nop -_020520F4: .word FUN_02052178 + 1 +_020520F4: .word FUN_02052178 thumb_func_start FUN_020520F8 FUN_020520F8: ; 0x020520F8 @@ -172572,7 +172572,7 @@ FUN_020520F8: ; 0x020520F8 _02052108: pop {r3, pc} nop -_0205210C: .word FUN_02052348 + 1 +_0205210C: .word FUN_02052348 thumb_func_start FUN_02052110 FUN_02052110: ; 0x02052110 @@ -172595,7 +172595,7 @@ _0205211E: mov r1, #0x0 lsl r2, r2, #0x4 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 str r0, [r4, #0x10] mov r0, #0x28 @@ -172619,7 +172619,7 @@ _0205211E: add r0, r4, #0x0 pop {r4-r6, pc} nop -_02052174: .word FUN_02052308 + 1 +_02052174: .word FUN_02052308 thumb_func_start FUN_02052178 FUN_02052178: ; 0x02052178 @@ -172644,7 +172644,7 @@ _020521A4: add sp, #0x8 pop {r4, pc} .balign 4 -_020521A8: .word FUN_020521AC + 1 +_020521A8: .word FUN_020521AC thumb_func_start FUN_020521AC FUN_020521AC: ; 0x020521AC @@ -172694,8 +172694,8 @@ _02052206: pop {r4, pc} .balign 4 _02052208: .word 0x021C5A70 -_0205220C: .word FUN_0205225C + 1 -_02052210: .word FUN_02052380 + 1 +_0205220C: .word FUN_0205225C +_02052210: .word FUN_02052380 thumb_func_start FUN_02052214 FUN_02052214: ; 0x02052214 @@ -172713,7 +172713,7 @@ FUN_02052214: ; 0x02052214 _02052230: pop {r4, pc} nop -_02052234: .word FUN_020521AC + 1 +_02052234: .word FUN_020521AC thumb_func_start FUN_02052238 FUN_02052238: ; 0x02052238 @@ -172786,8 +172786,8 @@ _020522C2: pop {r4, pc} .balign 4 _020522C4: .word 0x021C5A70 -_020522C8: .word FUN_020522D0 + 1 -_020522CC: .word FUN_02052214 + 1 +_020522C8: .word FUN_020522D0 +_020522CC: .word FUN_02052214 thumb_func_start FUN_020522D0 FUN_020522D0: ; 0x020522D0 @@ -172809,7 +172809,7 @@ FUN_020522D0: ; 0x020522D0 _020522FA: pop {r4, pc} .balign 4 -_020522FC: .word FUN_02052214 + 1 +_020522FC: .word FUN_02052214 thumb_func_start FUN_02052300 FUN_02052300: ; 0x02052300 @@ -172872,7 +172872,7 @@ _02052358: bl FUN_02052300 pop {r4, pc} .balign 4 -_02052368: .word FUN_0205236C + 1 +_02052368: .word FUN_0205236C thumb_func_start FUN_0205236C FUN_0205236C: ; 0x0205236C @@ -172927,9 +172927,9 @@ _020523B4: _020523D2: pop {r4, pc} .balign 4 -_020523D4: .word FUN_02052410 + 1 -_020523D8: .word FUN_0205225C + 1 -_020523DC: .word FUN_020523E0 + 1 +_020523D4: .word FUN_02052410 +_020523D8: .word FUN_0205225C +_020523DC: .word FUN_020523E0 thumb_func_start FUN_020523E0 FUN_020523E0: ; 0x020523E0 @@ -172951,7 +172951,7 @@ FUN_020523E0: ; 0x020523E0 _02052408: pop {r4, pc} nop -_0205240C: .word FUN_02052214 + 1 +_0205240C: .word FUN_02052214 thumb_func_start FUN_02052410 FUN_02052410: ; 0x02052410 @@ -172996,8 +172996,8 @@ _02052444: _0205246C: pop {r4, pc} nop -_02052470: .word FUN_02052478 + 1 -_02052474: .word FUN_02052214 + 1 +_02052470: .word FUN_02052478 +_02052474: .word FUN_02052214 thumb_func_start FUN_02052478 FUN_02052478: ; 0x02052478 @@ -173016,7 +173016,7 @@ FUN_02052478: ; 0x02052478 _02052498: pop {r4, pc} nop -_0205249C: .word FUN_02052214 + 1 +_0205249C: .word FUN_02052214 thumb_func_start FUN_020524A0 FUN_020524A0: ; 0x020524A0 @@ -173217,7 +173217,7 @@ _020525F4: mov r0, #0x5 pop {r4-r6, pc} _020525F8: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r4-r6, pc} .balign 4 @@ -173346,7 +173346,7 @@ FUN_020526BC: ; 0x020526BC bl FUN_02052E1C pop {r4, pc} nop -_020526D4: .word FUN_020521AC + 1 +_020526D4: .word FUN_020521AC thumb_func_start FUN_020526D8 FUN_020526D8: ; 0x020526D8 @@ -173547,7 +173547,7 @@ FUN_02052814: ; 0x02052814 mvn r0, r0 cmp r4, r0 bne _02052836 - bl FUN_02020C2C + bl ErrorHandling b _02052836 _02052834: add r5, r4, #0x0 @@ -173919,7 +173919,7 @@ _02052AF2: ldr r0, [r0, r1] pop {r4-r6, pc} _02052AFA: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x28 pop {r4-r6, pc} nop @@ -173980,7 +173980,7 @@ FUN_02052B74: ; 0x02052B74 add r0, sp, #0x0 mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 cmp r4, #0xb bhi _02052BFA add r0, r4, r4 @@ -174428,7 +174428,7 @@ FUN_02052ED0: ; 0x02052ED0 ldr r2, _02052EE4 ; =0x0000066C bx r3 .balign 4 -_02052EE0: .word FUN_02030A78 + 1 +_02052EE0: .word FUN_02030A78 _02052EE4: .word 0x0000066C thumb_func_start FUN_02052EE8 @@ -174442,7 +174442,7 @@ FUN_02052EE8: ; 0x02052EE8 ldr r2, _02052F58 ; =0x000004E8 mov r0, #0x0 add r1, r4, #0x0 - blx FUN_020CE240 + blx MIi_CpuClearFast mov r0, #0x4e str r5, [r4, #0x0] mov r1, #0x1 @@ -174483,7 +174483,7 @@ FUN_02052EE8: ; 0x02052EE8 pop {r3-r5, pc} .balign 4 _02052F58: .word 0x000004E8 -_02052F5C: .word FUN_02052FC8 + 1 +_02052F5C: .word FUN_02052FC8 _02052F60: .word 0x000004D4 _02052F64: .word 0x000004D8 _02052F68: .word 0x00002710 @@ -174720,7 +174720,7 @@ FUN_02053104: ; 0x02053104 ldr r0, [r0, r5] cmp r3, r0 beq _02053120 - bl FUN_02020C2C + bl ErrorHandling _02053120: pop {r4-r6, pc} nop @@ -174846,7 +174846,7 @@ _02053206: bl FUN_02058060 add r5, r0, #0x0 bne _02053216 - bl FUN_02020C2C + bl ErrorHandling _02053216: ldrb r0, [r4, #0xd] cmp r0, #0x4 @@ -175181,7 +175181,7 @@ _020534AC: bl FUN_02058060 add r4, r0, #0x0 bne _020534BC - bl FUN_02020C2C + bl ErrorHandling _020534BC: add r0, r4, #0x0 mov r1, #0x1 @@ -175207,7 +175207,7 @@ FUN_020534DC: ; 0x020534DC bl FUN_02058060 add r4, r0, #0x0 bne _020534F0 - bl FUN_02020C2C + bl ErrorHandling _020534F0: add r0, r4, #0x0 bl FUN_0205AD98 @@ -175231,7 +175231,7 @@ _0205350E: bl FUN_02058060 add r4, r0, #0x0 bne _02053524 - bl FUN_02020C2C + bl ErrorHandling _02053524: ldrb r1, [r5, #0x8] add r0, r4, #0x0 @@ -175465,7 +175465,7 @@ FUN_020536C8: ; 0x020536C8 ldr r3, _020536CC ; =FUN_0205369C bx r3 .balign 4 -_020536CC: .word FUN_0205369C + 1 +_020536CC: .word FUN_0205369C thumb_func_start FUN_020536D0 FUN_020536D0: ; 0x020536D0 @@ -175490,7 +175490,7 @@ _020536EE: ldr r0, [r0, r1] pop {r4, pc} _020536F8: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 _020536FE: pop {r4, pc} @@ -176282,10 +176282,10 @@ _02053CEE: pop {r3-r5, pc} .balign 4 _02053CF8: .word 0x020F5C04 -_02053CFC: .word FUN_02053750 + 1 -_02053D00: .word FUN_020538B8 + 1 -_02053D04: .word FUN_020539F8 + 1 -_02053D08: .word FUN_02053B38 + 1 +_02053CFC: .word FUN_02053750 +_02053D00: .word FUN_020538B8 +_02053D04: .word FUN_020539F8 +_02053D08: .word FUN_02053B38 thumb_func_start FUN_02053D0C FUN_02053D0C: ; 0x02053D0C @@ -176338,7 +176338,7 @@ FUN_02053D68: ; 0x02053D68 ldr r3, _02053D6C ; =FUN_02053EF0 bx r3 .balign 4 -_02053D6C: .word FUN_02053EF0 + 1 +_02053D6C: .word FUN_02053EF0 thumb_func_start FUN_02053D70 FUN_02053D70: ; 0x02053D70 @@ -176632,24 +176632,24 @@ _02053FB6: blx r2 pop {r3-r5, pc} nop -_02053FC0: .word FUN_02054088 + 1 -_02053FC4: .word FUN_020540C8 + 1 -_02053FC8: .word FUN_020540E8 + 1 -_02053FCC: .word FUN_02054168 + 1 -_02053FD0: .word FUN_020541A4 + 1 -_02053FD4: .word FUN_020541C4 + 1 -_02053FD8: .word FUN_020541E8 + 1 -_02053FDC: .word FUN_02054228 + 1 -_02053FE0: .word FUN_02054248 + 1 -_02053FE4: .word FUN_020542A4 + 1 -_02053FE8: .word FUN_020542E8 + 1 -_02053FEC: .word FUN_02054308 + 1 -_02053FF0: .word FUN_020543D8 + 1 -_02053FF4: .word FUN_0205442C + 1 -_02053FF8: .word FUN_0205444C + 1 -_02053FFC: .word FUN_02054508 + 1 -_02054000: .word FUN_0205454C + 1 -_02054004: .word FUN_0205456C + 1 +_02053FC0: .word FUN_02054088 +_02053FC4: .word FUN_020540C8 +_02053FC8: .word FUN_020540E8 +_02053FCC: .word FUN_02054168 +_02053FD0: .word FUN_020541A4 +_02053FD4: .word FUN_020541C4 +_02053FD8: .word FUN_020541E8 +_02053FDC: .word FUN_02054228 +_02053FE0: .word FUN_02054248 +_02053FE4: .word FUN_020542A4 +_02053FE8: .word FUN_020542E8 +_02053FEC: .word FUN_02054308 +_02053FF0: .word FUN_020543D8 +_02053FF4: .word FUN_0205442C +_02053FF8: .word FUN_0205444C +_02053FFC: .word FUN_02054508 +_02054000: .word FUN_0205454C +_02054004: .word FUN_0205456C thumb_func_start FUN_02054008 FUN_02054008: ; 0x02054008 @@ -176696,7 +176696,7 @@ FUN_02054008: ; 0x02054008 bl FUN_0201FE94 add r4, r0, #0x0 bne _02054064 - bl FUN_02020C2C + bl ErrorHandling _02054064: add r0, r4, #0x0 add sp, #0x30 @@ -177502,7 +177502,7 @@ FUN_0205464C: ; 0x0205464C mov r1, #0xf bx r3 nop -_02054654: .word FUN_02019620 + 1 +_02054654: .word FUN_02019620 thumb_func_start FUN_02054658 FUN_02054658: ; 0x02054658 @@ -179020,7 +179020,7 @@ FUN_02054F50: ; 0x02054F50 mov r1, #0x0 mov r2, #0x14 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, sp, #0x8 ldrh r0, [r0, #0x10] cmp r0, #0x0 @@ -179071,7 +179071,7 @@ _02054FC6: bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_02054FE0: .word FUN_02054EA0 + 1 +_02054FE0: .word FUN_02054EA0 thumb_func_start FUN_02054FE4 FUN_02054FE4: ; 0x02054FE4 @@ -179123,7 +179123,7 @@ FUN_0205502C: ; 0x0205502C add r4, r0, #0x0 mov r1, #0x0 mov r2, #0xc - blx FUN_020CE34C + blx MI_CpuFill8 strh r6, [r4, #0x4] strh r7, [r4, #0x6] str r5, [r4, #0x0] @@ -179136,7 +179136,7 @@ FUN_0205502C: ; 0x0205502C bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_02055064: .word FUN_02054FE4 + 1 +_02055064: .word FUN_02054FE4 thumb_func_start FUN_02055068 FUN_02055068: ; 0x02055068 @@ -179217,7 +179217,7 @@ FUN_02055108: ; 0x02055108 bl FUN_020553A0 add r4, r0, #0x0 bne _02055118 - bl FUN_02020C2C + bl ErrorHandling _02055118: add r0, r4, #0x0 bl FUN_02058578 @@ -179254,7 +179254,7 @@ FUN_02055160: ; 0x02055160 ldr r3, _02055164 ; =FUN_02016A18 bx r3 .balign 4 -_02055164: .word FUN_02016A18 + 1 +_02055164: .word FUN_02016A18 thumb_func_start FUN_02055168 FUN_02055168: ; 0x02055168 @@ -179274,7 +179274,7 @@ FUN_0205517C: ; 0x0205517C bl FUN_02016998 add r4, r0, #0x0 bne _0205518E - bl FUN_02020C2C + bl ErrorHandling _0205518E: add r0, r4, #0x0 mov r1, #0x0 @@ -179343,7 +179343,7 @@ FUN_02055208: ; 0x02055208 bl FUN_0205753C add r5, r0, #0x0 bne _02055228 - bl FUN_02020C2C + bl ErrorHandling _02055228: add r0, r5, #0x0 mov r1, #0xff @@ -179435,7 +179435,7 @@ FUN_020552E4: ; 0x020552E4 bl FUN_020552A4 add r4, r0, #0x0 bne _020552F2 - bl FUN_02020C2C + bl ErrorHandling _020552F2: add r0, r4, #0x0 pop {r4, pc} @@ -179567,7 +179567,7 @@ FUN_020553A8: ; 0x020553A8 add r5, r0, #0x0 cmp r4, #0x3 blt _020553B6 - bl FUN_02020C2C + bl ErrorHandling _020553B6: add r0, r5, #0x0 add r1, r4, #0x0 @@ -179581,7 +179581,7 @@ FUN_020553C4: ; 0x020553C4 push {r4, lr} add r4, r0, #0x0 bne _020553CE - bl FUN_02020C2C + bl ErrorHandling _020553CE: ldr r0, [r4, #0x18] pop {r4, pc} @@ -179654,7 +179654,7 @@ FUN_02055410: ; 0x02055410 str r1, [r0, #0x20] bx r3 .balign 4 -_02055418: .word FUN_020556F4 + 1 +_02055418: .word FUN_020556F4 thumb_func_start FUN_0205541C FUN_0205541C: ; 0x0205541C @@ -180019,7 +180019,7 @@ _0205563A: mov r0, #0xc9 pop {r3, pc} _0205563E: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -180072,7 +180072,7 @@ _0205568A: lsl r0, r0, #0x8 pop {r3, pc} _02055690: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 pop {r3, pc} @@ -180249,7 +180249,7 @@ FUN_020557A4: ; 0x020557A4 mov r1, #0x40 bx r3 nop -_020557AC: .word FUN_020553EC + 1 +_020557AC: .word FUN_020553EC thumb_func_start FUN_020557B0 FUN_020557B0: ; 0x020557B0 @@ -180257,7 +180257,7 @@ FUN_020557B0: ; 0x020557B0 mov r1, #0x40 bx r3 nop -_020557B8: .word FUN_020553F4 + 1 +_020557B8: .word FUN_020553F4 thumb_func_start FUN_020557BC FUN_020557BC: ; 0x020557BC @@ -180292,7 +180292,7 @@ FUN_020557E8: ; 0x020557E8 mov r1, #0x80 bx r3 nop -_020557F0: .word FUN_02055400 + 1 +_020557F0: .word FUN_02055400 thumb_func_start FUN_020557F4 FUN_020557F4: ; 0x020557F4 @@ -180375,7 +180375,7 @@ FUN_02055898: ; 0x02055898 ldr r3, _0205589C ; =FUN_020558A0 bx r3 .balign 4 -_0205589C: .word FUN_020558A0 + 1 +_0205589C: .word FUN_020558A0 thumb_func_start FUN_020558A0 FUN_020558A0: ; 0x020558A0 @@ -181431,7 +181431,7 @@ _0205614C: add sp, #0xc pop {r4-r7, pc} _02056162: - bl FUN_02020C2C + bl ErrorHandling add sp, #0xc pop {r4-r7, pc} .balign 4 @@ -181522,7 +181522,7 @@ _02056204: mov r0, #0x2 pop {r3, pc} _02056208: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} @@ -181983,7 +181983,7 @@ _0205657E: mov r0, #0x1 pop {r3, pc} _02056582: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -182370,7 +182370,7 @@ _0205689A: mov r0, #0x1 pop {r3, pc} _0205689E: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -183292,7 +183292,7 @@ FUN_02057020: ; 0x02057020 ldr r3, _02057024 ; =FUN_02057060 bx r3 .balign 4 -_02057024: .word FUN_02057060 + 1 +_02057024: .word FUN_02057060 thumb_func_start FUN_02057028 FUN_02057028: ; 0x02057028 @@ -183501,7 +183501,7 @@ _02057172: b _0205718E _02057188: mov r4, #0x0 - bl FUN_02020C2C + bl ErrorHandling _0205718E: add r0, r4, #0x0 pop {r3-r5, pc} @@ -183873,7 +183873,7 @@ FUN_02057444: ; 0x02057444 bl FUN_02016998 add r5, r0, #0x0 bne _0205745A - bl FUN_02020C2C + bl ErrorHandling _0205745A: mov r2, #0x4b add r0, r5, #0x0 @@ -183889,7 +183889,7 @@ _0205745A: bl FUN_02016998 add r4, r0, #0x0 bne _0205747E - bl FUN_02020C2C + bl ErrorHandling _0205747E: add r0, r4, #0x0 mov r1, #0x0 @@ -184179,10 +184179,10 @@ _020576D6: pop {r4, pc} .balign 4 _02057708: .word 0x0000FFFF -_0205770C: .word FUN_02058ED8 + 1 -_02057710: .word FUN_02058EDC + 1 -_02057714: .word FUN_02058EE0 + 1 -_02057718: .word FUN_02058EE4 + 1 +_0205770C: .word FUN_02058ED8 +_02057710: .word FUN_02058EDC +_02057714: .word FUN_02058EE0 +_02057718: .word FUN_02058EE4 thumb_func_start FUN_0205771C FUN_0205771C: ; 0x0205771C @@ -184218,7 +184218,7 @@ FUN_02057750: ; 0x02057750 bl FUN_020587E0 cmp r0, #0x1 beq _02057760 - bl FUN_02020C2C + bl ErrorHandling _02057760: add r0, r5, #0x0 mov r4, #0x0 @@ -184260,7 +184260,7 @@ FUN_020577A8: ; 0x020577A8 bl FUN_020587E0 cmp r0, #0x1 beq _020577B8 - bl FUN_02020C2C + bl ErrorHandling _020577B8: add r0, r5, #0x0 mov r4, #0x0 @@ -184322,7 +184322,7 @@ _02057820: add r5, #0x50 cmp r4, #0x0 bgt _02057836 - bl FUN_02020C2C + bl ErrorHandling _02057836: add r0, r6, #0x0 add r1, sp, #0x0 @@ -184360,7 +184360,7 @@ _02057866: bl FUN_02057C64 add r4, r0, #0x0 bne _0205787C - bl FUN_02020C2C + bl ErrorHandling _0205787C: add r0, r4, #0x0 add r1, r5, #0x0 @@ -184724,7 +184724,7 @@ FUN_02057BAC: ; 0x02057BAC str r1, [sp, #0x0] cmp r5, #0x0 bne _02057BC0 - bl FUN_02020C2C + bl ErrorHandling _02057BC0: lsl r0, r5, #0x5 str r0, [sp, #0x4] @@ -184733,7 +184733,7 @@ _02057BC0: bl FUN_020169D8 add r6, r0, #0x0 bne _02057BD4 - bl FUN_02020C2C + bl ErrorHandling _02057BD4: ldr r2, [sp, #0x4] add r0, r6, #0x0 @@ -184744,7 +184744,7 @@ _02057BD4: bl FUN_020169D8 add r4, r0, #0x0 bne _02057BEE - bl FUN_02020C2C + bl ErrorHandling _02057BEE: ldr r0, [sp, #0x0] str r0, [r4, #0x0] @@ -184786,7 +184786,7 @@ _02057C30: bl FUN_02057494 cmp r0, #0x0 bne _02057C42 - bl FUN_02020C2C + bl ErrorHandling _02057C42: ldr r0, [r6, #0x0] add r4, #0x20 @@ -184898,14 +184898,14 @@ _02057D0A: bl FUN_0200CA44 add r5, r0, #0x0 bne _02057D1C - bl FUN_02020C2C + bl ErrorHandling _02057D1C: add r0, r4, #0x0 add r1, r5, #0x0 bl FUN_02058554 pop {r3-r5, pc} nop -_02057D28: .word FUN_0205832C + 1 +_02057D28: .word FUN_0205832C thumb_func_start FUN_02057D2C FUN_02057D2C: ; 0x02057D2C @@ -185275,7 +185275,7 @@ FUN_02058060: ; 0x02058060 add r6, r1, #0x0 cmp r5, #0x0 bne _0205806E - bl FUN_02020C2C + bl ErrorHandling _0205806E: add r0, r5, #0x0 bl FUN_02058368 @@ -185405,7 +185405,7 @@ FUN_0205815C: ; 0x0205815C ldr r1, _02058168 ; =0x05108000 bx r3 nop -_02058164: .word FUN_02058418 + 1 +_02058164: .word FUN_02058418 _02058168: .word 0x05108000 thumb_func_start FUN_0205816C @@ -185508,7 +185508,7 @@ FUN_02058214: ; 0x02058214 bl FUN_020589CC cmp r0, #0x1 beq _02058228 - bl FUN_02020C2C + bl ErrorHandling _02058228: add r0, r5, #0x0 mov r1, #0x0 @@ -185539,7 +185539,7 @@ FUN_02058258: ; 0x02058258 bl FUN_02058CE0 cmp r0, #0x1 beq _0205826E - bl FUN_02020C2C + bl ErrorHandling _0205826E: add r0, r5, #0x0 mov r1, #0x1 @@ -185809,7 +185809,7 @@ FUN_020583F4: ; 0x020583F4 ldr r0, [r4, #0x14] cmp r0, #0x0 bne _02058402 - bl FUN_02020C2C + bl ErrorHandling _02058402: ldr r0, [r4, #0x14] pop {r4, pc} @@ -186042,7 +186042,7 @@ _02058504: str r1, [r0, #0x40] pop {r3, pc} _02058508: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} .balign 4 @@ -186066,7 +186066,7 @@ _02058528: ldr r0, [r0, #0x40] pop {r3, pc} _0205852C: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} @@ -186146,7 +186146,7 @@ FUN_02058580: ; 0x02058580 ldr r0, [r0, #0x0] bx r3 .balign 4 -_02058588: .word FUN_02058360 + 1 +_02058588: .word FUN_02058360 thumb_func_start FUN_0205858C FUN_0205858C: ; 0x0205858C @@ -186155,7 +186155,7 @@ FUN_0205858C: ; 0x0205858C add r4, r0, #0x0 cmp r5, #0x10 ble _0205859A - bl FUN_02020C2C + bl ErrorHandling _0205859A: add r0, r4, #0x0 bl FUN_020585B0 @@ -186179,7 +186179,7 @@ FUN_020585B4: ; 0x020585B4 add r4, r0, #0x0 cmp r5, #0x10 ble _020585C2 - bl FUN_02020C2C + bl ErrorHandling _020585C2: add r0, r4, #0x0 bl FUN_020585D8 @@ -186203,7 +186203,7 @@ FUN_020585DC: ; 0x020585DC add r4, r0, #0x0 cmp r5, #0x10 ble _020585EA - bl FUN_02020C2C + bl ErrorHandling _020585EA: add r0, r4, #0x0 bl FUN_02058600 @@ -186227,7 +186227,7 @@ FUN_02058604: ; 0x02058604 add r4, r0, #0x0 cmp r5, #0x20 ble _02058612 - bl FUN_02020C2C + bl ErrorHandling _02058612: add r0, r4, #0x0 bl FUN_02058628 @@ -186475,7 +186475,7 @@ FUN_02058750: ; 0x02058750 bl FUN_020589CC cmp r0, #0x1 beq _02058760 - bl FUN_02020C2C + bl ErrorHandling _02058760: add r0, r4, #0x0 bl FUN_02058490 @@ -186487,7 +186487,7 @@ FUN_02058768: ; 0x02058768 mov r1, #0x6 bx r3 nop -_02058770: .word FUN_0205837C + 1 +_02058770: .word FUN_0205837C thumb_func_start FUN_02058774 FUN_02058774: ; 0x02058774 @@ -186495,7 +186495,7 @@ FUN_02058774: ; 0x02058774 mov r1, #0x6 bx r3 nop -_0205877C: .word FUN_02058384 + 1 +_0205877C: .word FUN_02058384 thumb_func_start FUN_02058780 FUN_02058780: ; 0x02058780 @@ -186602,7 +186602,7 @@ FUN_02058830: ; 0x02058830 mov r1, #0x1 bx r3 nop -_02058838: .word FUN_0205842C + 1 +_02058838: .word FUN_0205842C thumb_func_start FUN_0205883C FUN_0205883C: ; 0x0205883C @@ -186610,7 +186610,7 @@ FUN_0205883C: ; 0x0205883C mov r1, #0x2 bx r3 nop -_02058844: .word FUN_02058410 + 1 +_02058844: .word FUN_02058410 thumb_func_start FUN_02058848 FUN_02058848: ; 0x02058848 @@ -186618,7 +186618,7 @@ FUN_02058848: ; 0x02058848 mov r1, #0x2 bx r3 nop -_02058850: .word FUN_02058418 + 1 +_02058850: .word FUN_02058418 thumb_func_start FUN_02058854 FUN_02058854: ; 0x02058854 @@ -186626,7 +186626,7 @@ FUN_02058854: ; 0x02058854 mov r1, #0x2 bx r3 nop -_0205885C: .word FUN_0205842C + 1 +_0205885C: .word FUN_0205842C thumb_func_start FUN_02058860 FUN_02058860: ; 0x02058860 @@ -186634,7 +186634,7 @@ FUN_02058860: ; 0x02058860 mov r1, #0x4 bx r3 nop -_02058868: .word FUN_02058410 + 1 +_02058868: .word FUN_02058410 thumb_func_start FUN_0205886C FUN_0205886C: ; 0x0205886C @@ -186642,7 +186642,7 @@ FUN_0205886C: ; 0x0205886C mov r1, #0x8 bx r3 nop -_02058874: .word FUN_02058418 + 1 +_02058874: .word FUN_02058418 thumb_func_start FUN_02058878 FUN_02058878: ; 0x02058878 @@ -186651,7 +186651,7 @@ FUN_02058878: ; 0x02058878 lsl r1, r1, #0xe bx r3 .balign 4 -_02058880: .word FUN_02058410 + 1 +_02058880: .word FUN_02058410 thumb_func_start FUN_02058884 FUN_02058884: ; 0x02058884 @@ -186660,7 +186660,7 @@ FUN_02058884: ; 0x02058884 lsl r1, r1, #0xe bx r3 .balign 4 -_0205888C: .word FUN_0205842C + 1 +_0205888C: .word FUN_0205842C thumb_func_start FUN_02058890 FUN_02058890: ; 0x02058890 @@ -186669,7 +186669,7 @@ FUN_02058890: ; 0x02058890 lsl r1, r1, #0x8 bx r3 .balign 4 -_02058898: .word FUN_0205842C + 1 +_02058898: .word FUN_0205842C thumb_func_start FUN_0205889C FUN_0205889C: ; 0x0205889C @@ -186740,7 +186740,7 @@ FUN_02058908: ; 0x02058908 mov r1, #0x40 bx r3 nop -_02058910: .word FUN_02058410 + 1 +_02058910: .word FUN_02058410 thumb_func_start FUN_02058914 FUN_02058914: ; 0x02058914 @@ -186748,7 +186748,7 @@ FUN_02058914: ; 0x02058914 mov r1, #0x40 bx r3 nop -_0205891C: .word FUN_02058418 + 1 +_0205891C: .word FUN_02058418 thumb_func_start FUN_02058920 FUN_02058920: ; 0x02058920 @@ -187346,7 +187346,7 @@ _02058C4C: strh r1, [r0, #0x12] pop {r3, pc} _02058C50: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} .balign 4 @@ -187370,7 +187370,7 @@ _02058C70: ldrh r0, [r0, #0x12] pop {r3, pc} _02058C74: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} @@ -187481,7 +187481,7 @@ FUN_02058CFC: ; 0x02058CFC bl FUN_02058CE0 cmp r0, #0x1 beq _02058D0C - bl FUN_02020C2C + bl ErrorHandling _02058D0C: add r0, r4, #0x0 bl FUN_02058C1C @@ -187493,7 +187493,7 @@ FUN_02058D14: ; 0x02058D14 add r4, r0, #0x0 cmp r4, #0x37 blo _02058D20 - bl FUN_02020C2C + bl ErrorHandling _02058D20: ldr r0, _02058D28 ; =0x020F6364 lsl r1, r4, #0x2 @@ -187558,7 +187558,7 @@ _02058D5C: ldr r2, [r3, #0x0] cmp r2, r1 bne _02058D52 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} .balign 4 @@ -188495,7 +188495,7 @@ FUN_020594F4: ; 0x020594F4 mov r1, #0x0 bx r3 nop -_020594FC: .word FUN_020589E4 + 1 +_020594FC: .word FUN_020589E4 thumb_func_start FUN_02059500 FUN_02059500: ; 0x02059500 @@ -189196,11 +189196,11 @@ FUN_02059A60: ; 0x02059A60 mvn r0, r0 cmp r5, r0 bne _02059A92 - bl FUN_02020C2C + bl ErrorHandling _02059A92: cmp r5, #0x4 blt _02059A9A - bl FUN_02020C2C + bl ErrorHandling _02059A9A: ldr r1, _02059ABC ; =0x020F6630 lsl r5, r5, #0x2 @@ -189825,7 +189825,7 @@ FUN_02059F34: ; 0x02059F34 mov r1, #0x0 bx r3 nop -_02059F3C: .word FUN_02059F04 + 1 +_02059F3C: .word FUN_02059F04 thumb_func_start FUN_02059F40 FUN_02059F40: ; 0x02059F40 @@ -189833,7 +189833,7 @@ FUN_02059F40: ; 0x02059F40 mov r1, #0x1 bx r3 nop -_02059F48: .word FUN_02059F04 + 1 +_02059F48: .word FUN_02059F04 thumb_func_start FUN_02059F4C FUN_02059F4C: ; 0x02059F4C @@ -189841,7 +189841,7 @@ FUN_02059F4C: ; 0x02059F4C mov r1, #0x2 bx r3 nop -_02059F54: .word FUN_02059F04 + 1 +_02059F54: .word FUN_02059F04 thumb_func_start FUN_02059F58 FUN_02059F58: ; 0x02059F58 @@ -189849,7 +189849,7 @@ FUN_02059F58: ; 0x02059F58 mov r1, #0x3 bx r3 nop -_02059F60: .word FUN_02059F04 + 1 +_02059F60: .word FUN_02059F04 thumb_func_start FUN_02059F64 FUN_02059F64: ; 0x02059F64 @@ -189857,7 +189857,7 @@ FUN_02059F64: ; 0x02059F64 mov r1, #0x4 bx r3 nop -_02059F6C: .word FUN_02059F04 + 1 +_02059F6C: .word FUN_02059F04 thumb_func_start FUN_02059F70 FUN_02059F70: ; 0x02059F70 @@ -189865,7 +189865,7 @@ FUN_02059F70: ; 0x02059F70 mov r1, #0x5 bx r3 nop -_02059F78: .word FUN_02059F04 + 1 +_02059F78: .word FUN_02059F04 thumb_func_start FUN_02059F7C FUN_02059F7C: ; 0x02059F7C @@ -189873,7 +189873,7 @@ FUN_02059F7C: ; 0x02059F7C mov r1, #0x6 bx r3 nop -_02059F84: .word FUN_02059F04 + 1 +_02059F84: .word FUN_02059F04 thumb_func_start FUN_02059F88 FUN_02059F88: ; 0x02059F88 @@ -189881,7 +189881,7 @@ FUN_02059F88: ; 0x02059F88 mov r1, #0x7 bx r3 nop -_02059F90: .word FUN_02059F04 + 1 +_02059F90: .word FUN_02059F04 thumb_func_start FUN_02059F94 FUN_02059F94: ; 0x02059F94 @@ -189889,7 +189889,7 @@ FUN_02059F94: ; 0x02059F94 mov r1, #0x8 bx r3 nop -_02059F9C: .word FUN_02059F04 + 1 +_02059F9C: .word FUN_02059F04 thumb_func_start FUN_02059FA0 FUN_02059FA0: ; 0x02059FA0 @@ -189897,7 +189897,7 @@ FUN_02059FA0: ; 0x02059FA0 mov r1, #0x9 bx r3 nop -_02059FA8: .word FUN_02059F04 + 1 +_02059FA8: .word FUN_02059F04 thumb_func_start FUN_02059FAC FUN_02059FAC: ; 0x02059FAC @@ -189905,7 +189905,7 @@ FUN_02059FAC: ; 0x02059FAC mov r1, #0xa bx r3 nop -_02059FB4: .word FUN_02059F04 + 1 +_02059FB4: .word FUN_02059F04 thumb_func_start FUN_02059FB8 FUN_02059FB8: ; 0x02059FB8 @@ -190260,7 +190260,7 @@ _0205A254: str r0, [r4, #0xc] pop {r3-r7, pc} _0205A268: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x8 pop {r3-r7, pc} @@ -190353,7 +190353,7 @@ FUN_0205A310: ; 0x0205A310 mov r1, #0x0 bx r3 nop -_0205A318: .word FUN_0205A2C8 + 1 +_0205A318: .word FUN_0205A2C8 thumb_func_start FUN_0205A31C FUN_0205A31C: ; 0x0205A31C @@ -190361,7 +190361,7 @@ FUN_0205A31C: ; 0x0205A31C mov r1, #0x1 bx r3 nop -_0205A324: .word FUN_0205A2C8 + 1 +_0205A324: .word FUN_0205A2C8 thumb_func_start FUN_0205A328 FUN_0205A328: ; 0x0205A328 @@ -190369,7 +190369,7 @@ FUN_0205A328: ; 0x0205A328 mov r1, #0x2 bx r3 nop -_0205A330: .word FUN_0205A2C8 + 1 +_0205A330: .word FUN_0205A2C8 thumb_func_start FUN_0205A334 FUN_0205A334: ; 0x0205A334 @@ -190377,7 +190377,7 @@ FUN_0205A334: ; 0x0205A334 mov r1, #0x3 bx r3 nop -_0205A33C: .word FUN_0205A2C8 + 1 +_0205A33C: .word FUN_0205A2C8 thumb_func_start FUN_0205A340 FUN_0205A340: ; 0x0205A340 @@ -190402,7 +190402,7 @@ FUN_0205A364: ; 0x0205A364 mov r1, #0x2 bx r3 nop -_0205A36C: .word FUN_0205A340 + 1 +_0205A36C: .word FUN_0205A340 thumb_func_start FUN_0205A370 FUN_0205A370: ; 0x0205A370 @@ -190410,7 +190410,7 @@ FUN_0205A370: ; 0x0205A370 mov r1, #0x3 bx r3 nop -_0205A378: .word FUN_0205A340 + 1 +_0205A378: .word FUN_0205A340 thumb_func_start FUN_0205A37C FUN_0205A37C: ; 0x0205A37C @@ -190565,7 +190565,7 @@ _0205A486: mvn r0, r0 cmp r1, r0 bne _0205A496 - bl FUN_02020C2C + bl ErrorHandling _0205A496: add r4, r4, #0x1 lsl r0, r4, #0x2 @@ -190595,7 +190595,7 @@ FUN_0205A4C4: ; 0x0205A4C4 mov r1, #0x3 bx r3 nop -_0205A4CC: .word FUN_0205A340 + 1 +_0205A4CC: .word FUN_0205A340 thumb_func_start FUN_0205A4D0 FUN_0205A4D0: ; 0x0205A4D0 @@ -190722,7 +190722,7 @@ _0205A5A2: mvn r0, r0 cmp r1, r0 bne _0205A5B2 - bl FUN_02020C2C + bl ErrorHandling _0205A5B2: add r4, r4, #0x1 lsl r0, r4, #0x2 @@ -191397,7 +191397,7 @@ _0205AA9A: _0205AAA4: cmp r4, #0x0 bne _0205AAAC - bl FUN_02020C2C + bl ErrorHandling _0205AAAC: add r0, r4, #0x0 pop {r4, pc} @@ -191414,7 +191414,7 @@ FUN_0205AAB0: ; 0x0205AAB0 bl FUN_0205AA90 add r1, r0, #0x0 add r0, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x2 ldr r0, [r5, r0] pop {r4-r6, pc} @@ -191433,7 +191433,7 @@ FUN_0205AAD4: ; 0x0205AAD4 bl FUN_0205AA90 add r1, r0, #0x0 add r0, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x2 ldr r0, [r4, r0] pop {r4-r6, pc} @@ -191454,7 +191454,7 @@ _0205AB0A: ldr r2, [r1, #0x0] cmp r2, #0x27 bne _0205AB02 - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop @@ -191745,7 +191745,7 @@ _0205AD26: _0205AD36: cmp r4, #0x4 blt _0205AD3E - bl FUN_02020C2C + bl ErrorHandling _0205AD3E: add r0, r4, #0x1 lsr r2, r0, #0x1f @@ -191837,7 +191837,7 @@ FUN_0205ADDC: ; 0x0205ADDC add r5, r0, #0x0 cmp r4, #0x69 blt _0205ADEA - bl FUN_02020C2C + bl ErrorHandling _0205ADEA: add r0, r5, #0x0 add r1, r4, #0x0 @@ -191943,7 +191943,7 @@ FUN_0205AEA4: ; 0x0205AEA4 bl FUN_020169D8 add r4, r0, #0x0 bne _0205AEBA - bl FUN_02020C2C + bl ErrorHandling _0205AEBA: add r2, r4, #0x0 mov r1, #0x14 @@ -191962,14 +191962,14 @@ _0205AEC0: bl FUN_0200CA44 add r7, r0, #0x0 bne _0205AEE4 - bl FUN_02020C2C + bl ErrorHandling _0205AEE4: str r5, [r4, #0xc] str r6, [r4, #0x10] add r0, r7, #0x0 pop {r3-r7, pc} .balign 4 -_0205AEEC: .word FUN_0205AF2C + 1 +_0205AEEC: .word FUN_0205AF2C thumb_func_start FUN_0205AEF0 FUN_0205AEF0: ; 0x0205AEF0 @@ -191989,7 +191989,7 @@ FUN_0205AEFC: ; 0x0205AEFC bl FUN_0205AE28 cmp r0, #0x1 beq _0205AF14 - bl FUN_02020C2C + bl ErrorHandling _0205AF14: ldr r0, [r4, #0xc] bl FUN_0205AE50 @@ -192118,7 +192118,7 @@ FUN_0205AFDC: ; 0x0205AFDC add r4, r1, #0x0 cmp r7, #0x4 blt _0205AFEA - bl FUN_02020C2C + bl ErrorHandling _0205AFEA: ldr r3, _0205B01C ; =0x020F6308 ldr r6, [r3, #0x0] @@ -192145,7 +192145,7 @@ _0205B004: cmp r6, #0x0 bne _0205AFF4 _0205B014: - bl FUN_02020C2C + bl ErrorHandling add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 @@ -194237,7 +194237,7 @@ FUN_0205BEF8: ; 0x0205BEF8 ldr r3, _0205BEFC ; =FUN_0205BF24 bx r3 .balign 4 -_0205BEFC: .word FUN_0205BF24 + 1 +_0205BEFC: .word FUN_0205BF24 thumb_func_start FUN_0205BF00 FUN_0205BF00: ; 0x0205BF00 @@ -194726,7 +194726,7 @@ _0205C266: _0205C276: cmp r5, #0x4 blt _0205C27E - bl FUN_02020C2C + bl ErrorHandling _0205C27E: add r0, r5, #0x1 lsr r2, r0, #0x1f @@ -195136,7 +195136,7 @@ _0205C584: ldr r0, [r2, #0x8] pop {r3, pc} _0205C588: - bl FUN_02020C2C + bl ErrorHandling ldr r0, _0205C590 ; =0x0000FFFF pop {r3, pc} .balign 4 @@ -195279,7 +195279,7 @@ _0205C650: mov r0, #0x1 pop {r3-r7, pc} _0205C6AE: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 add sp, #0x58 pop {r3-r7, pc} @@ -195710,7 +195710,7 @@ FUN_0205C9E8: ; 0x0205C9E8 ldr r3, _0205C9EC ; =FUN_0205C9D8 bx r3 .balign 4 -_0205C9EC: .word FUN_0205C9D8 + 1 +_0205C9EC: .word FUN_0205C9D8 thumb_func_start FUN_0205C9F0 FUN_0205C9F0: ; 0x0205C9F0 @@ -195753,7 +195753,7 @@ _0205CA30: cmp r0, #0x0 bne _0205CA10 _0205CA40: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 add sp, #0x8 pop {r3-r7, pc} @@ -195778,7 +195778,7 @@ FUN_0205CA64: ; 0x0205CA64 push {r4, lr} add r4, r0, #0x0 bne _0205CA6E - bl FUN_02020C2C + bl ErrorHandling _0205CA6E: add r0, r4, #0x0 bl FUN_0205CAD4 @@ -195790,7 +195790,7 @@ FUN_0205CA78: ; 0x0205CA78 ldr r3, _0205CA7C ; =FUN_0205CAE0 bx r3 .balign 4 -_0205CA7C: .word FUN_0205CAE0 + 1 +_0205CA7C: .word FUN_0205CAE0 thumb_func_start FUN_0205CA80 FUN_0205CA80: ; 0x0205CA80 @@ -195804,7 +195804,7 @@ FUN_0205CA80: ; 0x0205CA80 bl FUN_020169D8 add r4, r0, #0x0 bne _0205CA9A - bl FUN_02020C2C + bl ErrorHandling _0205CA9A: add r0, r4, #0x0 mov r1, #0x0 @@ -195827,12 +195827,12 @@ _0205CA9A: bl FUN_0200CA44 add r4, r0, #0x0 bne _0205CACC - bl FUN_02020C2C + bl ErrorHandling _0205CACC: add r0, r4, #0x0 pop {r3-r7, pc} .balign 4 -_0205CAD0: .word FUN_0205CAF8 + 1 +_0205CAD0: .word FUN_0205CAF8 thumb_func_start FUN_0205CAD4 FUN_0205CAD4: ; 0x0205CAD4 @@ -195966,7 +195966,7 @@ _0205CBB6: mvn r0, r0 cmp r1, r0 bne _0205CBC4 - bl FUN_02020C2C + bl ErrorHandling _0205CBC4: ldr r0, [r4, #0x8] mov r1, #0x0 @@ -196473,7 +196473,7 @@ FUN_0205CF34: ; 0x0205CF34 strh r0, [r4, #0x2a] pop {r3-r7, pc} nop -_0205CF74: .word FUN_0205CFA0 + 1 +_0205CF74: .word FUN_0205CFA0 thumb_func_start FUN_0205CF78 FUN_0205CF78: ; 0x0205CF78 @@ -196493,7 +196493,7 @@ FUN_0205CF78: ; 0x0205CF78 add sp, #0x4 pop {r3-r4, pc} nop -_0205CF9C: .word FUN_0205CFA0 + 1 +_0205CF9C: .word FUN_0205CFA0 thumb_func_start FUN_0205CFA0 FUN_0205CFA0: ; 0x0205CFA0 @@ -196584,7 +196584,7 @@ FUN_0205D024: ; 0x0205D024 bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] ldr r0, [r5, #0xc] bl FUN_02022504 @@ -196621,7 +196621,7 @@ FUN_0205D024: ; 0x0205D024 pop {r3-r7, pc} nop _0205D0B4: .word 0x020F96DC -_0205D0B8: .word FUN_02035E50 + 1 +_0205D0B8: .word FUN_02035E50 thumb_func_start FUN_0205D0BC FUN_0205D0BC: ; 0x0205D0BC @@ -196643,7 +196643,7 @@ FUN_0205D0BC: ; 0x0205D0BC bl FUN_02035D04 pop {r3-r5, pc} nop -_0205D0E8: .word FUN_02036A78 + 1 +_0205D0E8: .word FUN_02036A78 thumb_func_start FUN_0205D0EC FUN_0205D0EC: ; 0x0205D0EC @@ -196653,14 +196653,14 @@ FUN_0205D0EC: ; 0x0205D0EC mov r0, #0x1 pop {r3, pc} .balign 4 -_0205D0F8: .word FUN_0205D0FC + 1 +_0205D0F8: .word FUN_0205D0FC thumb_func_start FUN_0205D0FC FUN_0205D0FC: ; 0x0205D0FC ldr r3, _0205D100 ; =FUN_02037EB8 bx r3 .balign 4 -_0205D100: .word FUN_02037EB8 + 1 +_0205D100: .word FUN_02037EB8 thumb_func_start FUN_0205D104 FUN_0205D104: ; 0x0205D104 @@ -196690,7 +196690,7 @@ FUN_0205D104: ; 0x0205D104 str r0, [r5, #0x0] pop {r3-r5, pc} nop -_0205D140: .word FUN_02049844 + 1 +_0205D140: .word FUN_02049844 thumb_func_start FUN_0205D144 FUN_0205D144: ; 0x0205D144 @@ -196712,7 +196712,7 @@ FUN_0205D144: ; 0x0205D144 str r0, [r1, #0x0] pop {r3-r5, pc} .balign 4 -_0205D16C: .word FUN_02049844 + 1 +_0205D16C: .word FUN_02049844 thumb_func_start FUN_0205D170 FUN_0205D170: ; 0x0205D170 @@ -196822,7 +196822,7 @@ FUN_0205D21C: ; 0x0205D21C strh r0, [r4, #0x2a] pop {r3-r5, pc} nop -_0205D24C: .word FUN_0205D264 + 1 +_0205D24C: .word FUN_0205D264 thumb_func_start FUN_0205D250 FUN_0205D250: ; 0x0205D250 @@ -196834,7 +196834,7 @@ FUN_0205D250: ; 0x0205D250 mov r0, #0x0 pop {r3, pc} .balign 4 -_0205D260: .word FUN_0205D264 + 1 +_0205D260: .word FUN_0205D264 thumb_func_start FUN_0205D264 FUN_0205D264: ; 0x0205D264 @@ -197020,7 +197020,7 @@ FUN_0205D3B8: ; 0x0205D3B8 bl FUN_02035D04 pop {r3-r5, pc} nop -_0205D3E0: .word FUN_02036B90 + 1 +_0205D3E0: .word FUN_02036B90 thumb_func_start FUN_0205D3E4 FUN_0205D3E4: ; 0x0205D3E4 @@ -197030,7 +197030,7 @@ FUN_0205D3E4: ; 0x0205D3E4 mov r0, #0x1 pop {r3, pc} .balign 4 -_0205D3F0: .word FUN_0205D3F4 + 1 +_0205D3F0: .word FUN_0205D3F4 thumb_func_start FUN_0205D3F4 FUN_0205D3F4: ; 0x0205D3F4 @@ -197067,7 +197067,7 @@ FUN_0205D400: ; 0x0205D400 bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] mov r0, #0x7a lsl r0, r0, #0x2 @@ -197104,7 +197104,7 @@ FUN_0205D400: ; 0x0205D400 pop {r3-r7, pc} nop _0205D490: .word 0x020F96DC -_0205D494: .word FUN_02035E50 + 1 +_0205D494: .word FUN_02035E50 thumb_func_start FUN_0205D498 FUN_0205D498: ; 0x0205D498 @@ -197138,7 +197138,7 @@ FUN_0205D498: ; 0x0205D498 bl FUN_02035D04 pop {r4-r6, pc} nop -_0205D4E0: .word FUN_02036BDC + 1 +_0205D4E0: .word FUN_02036BDC thumb_func_start FUN_0205D4E4 FUN_0205D4E4: ; 0x0205D4E4 @@ -197202,7 +197202,7 @@ FUN_0205D528: ; 0x0205D528 bl FUN_02035D04 pop {r3-r5, pc} .balign 4 -_0205D554: .word FUN_02036D94 + 1 +_0205D554: .word FUN_02036D94 thumb_func_start FUN_0205D558 FUN_0205D558: ; 0x0205D558 @@ -197212,7 +197212,7 @@ FUN_0205D558: ; 0x0205D558 mov r0, #0x1 pop {r3, pc} .balign 4 -_0205D564: .word FUN_0205D568 + 1 +_0205D564: .word FUN_0205D568 thumb_func_start FUN_0205D568 FUN_0205D568: ; 0x0205D568 @@ -197220,7 +197220,7 @@ FUN_0205D568: ; 0x0205D568 mov r1, #0xb bx r3 nop -_0205D570: .word FUN_02037FC4 + 1 +_0205D570: .word FUN_02037FC4 thumb_func_start FUN_0205D574 FUN_0205D574: ; 0x0205D574 @@ -197244,7 +197244,7 @@ FUN_0205D574: ; 0x0205D574 bl FUN_02035D04 pop {r3-r5, pc} nop -_0205D5A4: .word FUN_02036DD4 + 1 +_0205D5A4: .word FUN_02036DD4 thumb_func_start FUN_0205D5A8 FUN_0205D5A8: ; 0x0205D5A8 @@ -197254,7 +197254,7 @@ FUN_0205D5A8: ; 0x0205D5A8 mov r0, #0x1 pop {r3, pc} .balign 4 -_0205D5B4: .word FUN_0205D5B8 + 1 +_0205D5B4: .word FUN_0205D5B8 thumb_func_start FUN_0205D5B8 FUN_0205D5B8: ; 0x0205D5B8 @@ -197292,7 +197292,7 @@ FUN_0205D5C4: ; 0x0205D5C4 strh r0, [r5, #0x2a] pop {r4-r6, pc} nop -_0205D600: .word FUN_0205E30C + 1 +_0205D600: .word FUN_0205E30C thumb_func_start FUN_0205D604 FUN_0205D604: ; 0x0205D604 @@ -197310,7 +197310,7 @@ FUN_0205D604: ; 0x0205D604 mov r0, #0x0 pop {r4, pc} nop -_0205D624: .word FUN_0205E30C + 1 +_0205D624: .word FUN_0205E30C thumb_func_start FUN_0205D628 FUN_0205D628: ; 0x0205D628 @@ -197350,7 +197350,7 @@ FUN_0205D660: ; 0x0205D660 ldr r2, _0205D66C ; =0x00000AF2 bx r3 nop -_0205D668: .word FUN_0205CF34 + 1 +_0205D668: .word FUN_0205CF34 _0205D66C: .word 0x00000AF2 thumb_func_start FUN_0205D670 @@ -197388,7 +197388,7 @@ FUN_0205D69C: ; 0x0205D69C ldr r2, _0205D6A8 ; =0x00000AF3 bx r3 nop -_0205D6A4: .word FUN_0205CF34 + 1 +_0205D6A4: .word FUN_0205CF34 _0205D6A8: .word 0x00000AF3 thumb_func_start FUN_0205D6AC @@ -197448,7 +197448,7 @@ FUN_0205D714: ; 0x0205D714 ldr r2, _0205D720 ; =0x000022F6 bx r3 nop -_0205D71C: .word FUN_0205CF34 + 1 +_0205D71C: .word FUN_0205CF34 _0205D720: .word 0x000022F6 thumb_func_start FUN_0205D724 @@ -197693,7 +197693,7 @@ FUN_0205D8B8: ; 0x0205D8B8 mov r0, #0x0 pop {r3-r5, pc} .balign 4 -_0205D900: .word FUN_0205D904 + 1 +_0205D900: .word FUN_0205D904 thumb_func_start FUN_0205D904 FUN_0205D904: ; 0x0205D904 @@ -197720,7 +197720,7 @@ _0205D926: mov r2, #0x3 bl FUN_020545B8 ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r5, r0, #0x0 add r0, r4, #0x0 add r1, r5, #0x0 @@ -197798,7 +197798,7 @@ FUN_0205D9A8: ; 0x0205D9A8 bl FUN_02025838 str r0, [r4, #0x8] ldr r0, [r5, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] ldr r0, [r5, #0xc] bl FUN_02022504 @@ -197834,7 +197834,7 @@ FUN_0205D9A8: ; 0x0205D9A8 pop {r3-r7, pc} .balign 4 _0205DA34: .word 0x020F96DC -_0205DA38: .word FUN_02035E50 + 1 +_0205DA38: .word FUN_02035E50 thumb_func_start FUN_0205DA3C FUN_0205DA3C: ; 0x0205DA3C @@ -197865,7 +197865,7 @@ FUN_0205DA3C: ; 0x0205DA3C bl FUN_0206EDD4 pop {r4-r6, pc} nop -_0205DA7C: .word FUN_0205DAAC + 1 +_0205DA7C: .word FUN_0205DAAC thumb_func_start FUN_0205DA80 FUN_0205DA80: ; 0x0205DA80 @@ -197914,7 +197914,7 @@ FUN_0205DACC: ; 0x0205DACC ldr r2, _0205DAD8 ; =0x000007F7 bx r3 nop -_0205DAD4: .word FUN_0205CF34 + 1 +_0205DAD4: .word FUN_0205CF34 _0205DAD8: .word 0x000007F7 thumb_func_start FUN_0205DADC @@ -198087,7 +198087,7 @@ FUN_0205DBF0: ; 0x0205DBF0 add sp, #0x4 pop {r3-r6, pc} .balign 4 -_0205DC34: .word FUN_0205D904 + 1 +_0205DC34: .word FUN_0205D904 thumb_func_start FUN_0205DC38 FUN_0205DC38: ; 0x0205DC38 @@ -198185,7 +198185,7 @@ _0205DCFA: mov r0, #0x0 pop {r3-r5, pc} nop -_0205DD00: .word FUN_0205D568 + 1 +_0205DD00: .word FUN_0205D568 thumb_func_start FUN_0205DD04 FUN_0205DD04: ; 0x0205DD04 @@ -198196,8 +198196,8 @@ FUN_0205DD04: ; 0x0205DD04 ldr r1, _0205DD14 ; =FUN_0205DC38 bx r3 .balign 4 -_0205DD10: .word FUN_020463CC + 1 -_0205DD14: .word FUN_0205DC38 + 1 +_0205DD10: .word FUN_020463CC +_0205DD14: .word FUN_0205DC38 thumb_func_start FUN_0205DD18 FUN_0205DD18: ; 0x0205DD18 @@ -198221,7 +198221,7 @@ FUN_0205DD38: ; 0x0205DD38 ldr r3, _0205DD3C ; =FUN_02016A18 bx r3 .balign 4 -_0205DD3C: .word FUN_02016A18 + 1 +_0205DD3C: .word FUN_02016A18 thumb_func_start FUN_0205DD40 FUN_0205DD40: ; 0x0205DD40 @@ -198241,7 +198241,7 @@ FUN_0205DD40: ; 0x0205DD40 add r0, #0x1c mov r2, #0xa0 str r1, [r4, #0x18] - blx FUN_020CE34C + blx MI_CpuFill8 mov r3, #0x0 add r2, r3, #0x0 mov r0, #0x28 @@ -198291,7 +198291,7 @@ _0205DDB6: ldrb r4, [r0, r5] cmp r4, #0x0 bne _0205DDC2 - bl FUN_02020C2C + bl ErrorHandling _0205DDC2: cmp r4, #0x1 bhi _0205DDCA @@ -198302,18 +198302,18 @@ _0205DDCA: add r6, r0, #0x0 ldr r0, _0205DED0 ; =0x0000FFFF add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r6, r4 blo _0205DDF2 - bl FUN_02020C2C + bl ErrorHandling _0205DDF2: lsl r1, r5, #0x1 mov r0, #0x9 @@ -198324,13 +198324,13 @@ _0205DDF2: lsr r6, r0, #0x18 add r0, r6, #0x0 add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 lsr r0, r0, #0x18 bne _0205DE1C add r0, r6, #0x0 add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r1, r5, r1 add r0, r5, #0x0 b _0205DE5C @@ -198339,7 +198339,7 @@ _0205DE1C: bne _0205DE30 add r0, r6, #0x0 add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r0, r5, r4 add r1, r5, r1 sub r0, r0, #0x1 @@ -198348,7 +198348,7 @@ _0205DE30: lsl r7, r4, #0x1 cmp r6, r7 bge _0205DE3A - bl FUN_02020C2C + bl ErrorHandling _0205DE3A: sub r0, r6, r7 lsl r0, r0, #0x18 @@ -198452,12 +198452,12 @@ _0205DEE0: bl FUN_0201B9EC mov r1, #0x29 lsl r1, r1, #0x4 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r7, r0, #0x10 cmp r7, #0x64 blo _0205DF12 - bl FUN_02020C2C + bl ErrorHandling _0205DF12: cmp r7, #0x32 bhs _0205DF1A @@ -198667,7 +198667,7 @@ FUN_0205E080: ; 0x0205E080 add r6, r2, #0x0 cmp r4, #0x0 bne _0205E090 - bl FUN_02020C2C + bl ErrorHandling _0205E090: str r4, [r5, #0x8] str r6, [r5, #0xc] @@ -198916,7 +198916,7 @@ _0205E24C: add r1, r1, #0x1 cmp r1, #0x3 blt _0205E23A - bl FUN_02020C2C + bl ErrorHandling _0205E256: pop {r4-r6, pc} @@ -198999,12 +198999,12 @@ _0205E2DC: bl FUN_0201B9EC mov r1, #0x29 lsl r1, r1, #0x4 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x64 blo _0205E2F4 - bl FUN_02020C2C + bl ErrorHandling _0205E2F4: ldrb r0, [r6, r5] cmp r4, r0 @@ -199160,7 +199160,7 @@ _0205E426: lsl r0, r5, #0x10 lsr r0, r0, #0x10 bne _0205E430 - bl FUN_02020C2C + bl ErrorHandling _0205E430: lsl r0, r5, #0x10 lsr r0, r0, #0x10 @@ -199174,20 +199174,20 @@ _0205E43C: lsl r1, r5, #0x10 ldr r0, _0205E47C ; =0x0000FFFF lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r4, #0x0 lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 lsl r0, r5, #0x10 lsr r0, r0, #0x10 cmp r4, r0 blo _0205E46A - bl FUN_02020C2C + bl ErrorHandling _0205E46A: cmp r4, #0x0 bne _0205E472 @@ -199928,7 +199928,7 @@ FUN_0205EA10: ; 0x0205EA10 mov r1, #0x0 bx r3 nop -_0205EA18: .word FUN_0205E9C8 + 1 +_0205EA18: .word FUN_0205E9C8 thumb_func_start FUN_0205EA1C FUN_0205EA1C: ; 0x0205EA1C @@ -199936,7 +199936,7 @@ FUN_0205EA1C: ; 0x0205EA1C mov r1, #0x1 bx r3 nop -_0205EA24: .word FUN_0205E9C8 + 1 +_0205EA24: .word FUN_0205E9C8 thumb_func_start FUN_0205EA28 FUN_0205EA28: ; 0x0205EA28 @@ -199944,7 +199944,7 @@ FUN_0205EA28: ; 0x0205EA28 mov r1, #0x2 bx r3 nop -_0205EA30: .word FUN_0205E9C8 + 1 +_0205EA30: .word FUN_0205E9C8 thumb_func_start FUN_0205EA34 FUN_0205EA34: ; 0x0205EA34 @@ -199952,7 +199952,7 @@ FUN_0205EA34: ; 0x0205EA34 mov r1, #0x3 bx r3 nop -_0205EA3C: .word FUN_0205E9C8 + 1 +_0205EA3C: .word FUN_0205E9C8 thumb_func_start FUN_0205EA40 FUN_0205EA40: ; 0x0205EA40 @@ -200109,7 +200109,7 @@ FUN_0205EB38: ; 0x0205EB38 add r7, r0, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r7, #0x0 add r1, sp, #0xc mov r2, #0x2 @@ -200261,21 +200261,21 @@ FUN_0205EC84: ; 0x0205EC84 ldr r3, _0205EC88 ; =FUN_020462E4 bx r3 .balign 4 -_0205EC88: .word FUN_020462E4 + 1 +_0205EC88: .word FUN_020462E4 thumb_func_start FUN_0205EC8C FUN_0205EC8C: ; 0x0205EC8C ldr r3, _0205EC90 ; =FUN_0204630C bx r3 .balign 4 -_0205EC90: .word FUN_0204630C + 1 +_0205EC90: .word FUN_0204630C thumb_func_start FUN_0205EC94 FUN_0205EC94: ; 0x0205EC94 ldr r3, _0205EC98 ; =FUN_020462B8 bx r3 .balign 4 -_0205EC98: .word FUN_020462B8 + 1 +_0205EC98: .word FUN_020462B8 thumb_func_start FUN_0205EC9C FUN_0205EC9C: ; 0x0205EC9C @@ -200303,7 +200303,7 @@ _0205ECC0: bl FUN_0205EC94 pop {r3, pc} _0205ECCA: - bl FUN_02020C2C + bl ErrorHandling _0205ECCE: mov r0, #0x0 pop {r3, pc} @@ -200316,7 +200316,7 @@ FUN_0205ECD4: ; 0x0205ECD4 lsl r1, r1, #0x4 bx r3 .balign 4 -_0205ECDC: .word FUN_0205EC84 + 1 +_0205ECDC: .word FUN_0205EC84 thumb_func_start FUN_0205ECE0 FUN_0205ECE0: ; 0x0205ECE0 @@ -200325,7 +200325,7 @@ FUN_0205ECE0: ; 0x0205ECE0 lsl r1, r1, #0x4 bx r3 .balign 4 -_0205ECE8: .word FUN_0205EC94 + 1 +_0205ECE8: .word FUN_0205EC94 thumb_func_start FUN_0205ECEC FUN_0205ECEC: ; 0x0205ECEC @@ -200333,7 +200333,7 @@ FUN_0205ECEC: ; 0x0205ECEC ldr r1, _0205ECF8 ; =0x0000098D bx r3 nop -_0205ECF4: .word FUN_0205EC94 + 1 +_0205ECF4: .word FUN_0205EC94 _0205ECF8: .word 0x0000098D thumb_func_start FUN_0205ECFC @@ -200342,7 +200342,7 @@ FUN_0205ECFC: ; 0x0205ECFC ldr r1, _0205ED08 ; =0x00000964 bx r3 nop -_0205ED04: .word FUN_0205EC84 + 1 +_0205ED04: .word FUN_0205EC84 _0205ED08: .word 0x00000964 thumb_func_start FUN_0205ED0C @@ -200351,7 +200351,7 @@ FUN_0205ED0C: ; 0x0205ED0C ldr r1, _0205ED18 ; =0x00000964 bx r3 nop -_0205ED14: .word FUN_0205EC94 + 1 +_0205ED14: .word FUN_0205EC94 _0205ED18: .word 0x00000964 thumb_func_start FUN_0205ED1C @@ -200360,7 +200360,7 @@ FUN_0205ED1C: ; 0x0205ED1C ldr r1, _0205ED28 ; =0x00000961 bx r3 nop -_0205ED24: .word FUN_0205EC84 + 1 +_0205ED24: .word FUN_0205EC84 _0205ED28: .word 0x00000961 thumb_func_start FUN_0205ED2C @@ -200369,7 +200369,7 @@ FUN_0205ED2C: ; 0x0205ED2C ldr r1, _0205ED38 ; =0x00000961 bx r3 nop -_0205ED34: .word FUN_0205EC8C + 1 +_0205ED34: .word FUN_0205EC8C _0205ED38: .word 0x00000961 thumb_func_start FUN_0205ED3C @@ -200378,7 +200378,7 @@ FUN_0205ED3C: ; 0x0205ED3C ldr r1, _0205ED48 ; =0x00000961 bx r3 nop -_0205ED44: .word FUN_0205EC94 + 1 +_0205ED44: .word FUN_0205EC94 _0205ED48: .word 0x00000961 thumb_func_start FUN_0205ED4C @@ -200387,7 +200387,7 @@ FUN_0205ED4C: ; 0x0205ED4C ldr r1, _0205ED58 ; =0x00000965 bx r3 nop -_0205ED54: .word FUN_0205EC84 + 1 +_0205ED54: .word FUN_0205EC84 _0205ED58: .word 0x00000965 thumb_func_start FUN_0205ED5C @@ -200396,7 +200396,7 @@ FUN_0205ED5C: ; 0x0205ED5C ldr r1, _0205ED68 ; =0x00000965 bx r3 nop -_0205ED64: .word FUN_0205EC8C + 1 +_0205ED64: .word FUN_0205EC8C _0205ED68: .word 0x00000965 thumb_func_start FUN_0205ED6C @@ -200405,7 +200405,7 @@ FUN_0205ED6C: ; 0x0205ED6C ldr r1, _0205ED78 ; =0x00000965 bx r3 nop -_0205ED74: .word FUN_0205EC94 + 1 +_0205ED74: .word FUN_0205EC94 _0205ED78: .word 0x00000965 thumb_func_start FUN_0205ED7C @@ -200414,7 +200414,7 @@ FUN_0205ED7C: ; 0x0205ED7C ldr r1, _0205ED88 ; =0x0000096D bx r3 nop -_0205ED84: .word FUN_0205EC84 + 1 +_0205ED84: .word FUN_0205EC84 _0205ED88: .word 0x0000096D thumb_func_start FUN_0205ED8C @@ -200423,7 +200423,7 @@ FUN_0205ED8C: ; 0x0205ED8C ldr r1, _0205ED98 ; =0x0000096D bx r3 nop -_0205ED94: .word FUN_0205EC8C + 1 +_0205ED94: .word FUN_0205EC8C _0205ED98: .word 0x0000096D thumb_func_start FUN_0205ED9C @@ -200432,7 +200432,7 @@ FUN_0205ED9C: ; 0x0205ED9C ldr r1, _0205EDA8 ; =0x0000096D bx r3 nop -_0205EDA4: .word FUN_0205EC94 + 1 +_0205EDA4: .word FUN_0205EC94 _0205EDA8: .word 0x0000096D thumb_func_start FUN_0205EDAC @@ -200441,7 +200441,7 @@ FUN_0205EDAC: ; 0x0205EDAC ldr r1, _0205EDB8 ; =0x0000096E bx r3 nop -_0205EDB4: .word FUN_0205EC84 + 1 +_0205EDB4: .word FUN_0205EC84 _0205EDB8: .word 0x0000096E thumb_func_start FUN_0205EDBC @@ -200450,7 +200450,7 @@ FUN_0205EDBC: ; 0x0205EDBC ldr r1, _0205EDC8 ; =0x0000096F bx r3 nop -_0205EDC4: .word FUN_0205EC84 + 1 +_0205EDC4: .word FUN_0205EC84 _0205EDC8: .word 0x0000096F thumb_func_start FUN_0205EDCC @@ -200460,7 +200460,7 @@ FUN_0205EDCC: ; 0x0205EDCC lsl r1, r1, #0x4 bx r3 .balign 4 -_0205EDD4: .word FUN_0205EC84 + 1 +_0205EDD4: .word FUN_0205EC84 thumb_func_start FUN_0205EDD8 FUN_0205EDD8: ; 0x0205EDD8 @@ -200468,7 +200468,7 @@ FUN_0205EDD8: ; 0x0205EDD8 ldr r1, _0205EDE4 ; =0x00000971 bx r3 nop -_0205EDE0: .word FUN_0205EC84 + 1 +_0205EDE0: .word FUN_0205EC84 _0205EDE4: .word 0x00000971 thumb_func_start FUN_0205EDE8 @@ -200477,7 +200477,7 @@ FUN_0205EDE8: ; 0x0205EDE8 ldr r1, _0205EDF4 ; =0x00000972 bx r3 nop -_0205EDF0: .word FUN_0205EC84 + 1 +_0205EDF0: .word FUN_0205EC84 _0205EDF4: .word 0x00000972 thumb_func_start FUN_0205EDF8 @@ -200486,7 +200486,7 @@ FUN_0205EDF8: ; 0x0205EDF8 ldr r1, _0205EE04 ; =0x00000973 bx r3 nop -_0205EE00: .word FUN_0205EC84 + 1 +_0205EE00: .word FUN_0205EC84 _0205EE04: .word 0x00000973 thumb_func_start FUN_0205EE08 @@ -200912,7 +200912,7 @@ FUN_0205F154: ; 0x0205F154 ldr r1, _0205F160 ; =0x00000966 bx r3 nop -_0205F15C: .word FUN_0205EC84 + 1 +_0205F15C: .word FUN_0205EC84 _0205F160: .word 0x00000966 thumb_func_start FUN_0205F164 @@ -200921,7 +200921,7 @@ FUN_0205F164: ; 0x0205F164 ldr r1, _0205F170 ; =0x00000966 bx r3 nop -_0205F16C: .word FUN_0205EC8C + 1 +_0205F16C: .word FUN_0205EC8C _0205F170: .word 0x00000966 thumb_func_start FUN_0205F174 @@ -200930,7 +200930,7 @@ FUN_0205F174: ; 0x0205F174 ldr r1, _0205F180 ; =0x00000966 bx r3 nop -_0205F17C: .word FUN_0205EC94 + 1 +_0205F17C: .word FUN_0205EC94 _0205F180: .word 0x00000966 thumb_func_start FUN_0205F184 @@ -200939,7 +200939,7 @@ FUN_0205F184: ; 0x0205F184 ldr r1, _0205F190 ; =0x00000978 bx r3 nop -_0205F18C: .word FUN_0205EC94 + 1 +_0205F18C: .word FUN_0205EC94 _0205F190: .word 0x00000978 thumb_func_start FUN_0205F194 @@ -200948,7 +200948,7 @@ FUN_0205F194: ; 0x0205F194 ldr r1, _0205F1A0 ; =0x00000992 bx r3 nop -_0205F19C: .word FUN_0205EC94 + 1 +_0205F19C: .word FUN_0205EC94 _0205F1A0: .word 0x00000992 thumb_func_start FUN_0205F1A4 @@ -200957,7 +200957,7 @@ FUN_0205F1A4: ; 0x0205F1A4 ldr r1, _0205F1B0 ; =0x0000097D bx r3 nop -_0205F1AC: .word FUN_0205EC94 + 1 +_0205F1AC: .word FUN_0205EC94 _0205F1B0: .word 0x0000097D thumb_func_start FUN_0205F1B4 @@ -200966,7 +200966,7 @@ FUN_0205F1B4: ; 0x0205F1B4 ldr r1, _0205F1C0 ; =0x0000097E bx r3 nop -_0205F1BC: .word FUN_0205EC94 + 1 +_0205F1BC: .word FUN_0205EC94 _0205F1C0: .word 0x0000097E thumb_func_start FUN_0205F1C4 @@ -200975,7 +200975,7 @@ FUN_0205F1C4: ; 0x0205F1C4 ldr r1, _0205F1D0 ; =0x0000097C bx r3 nop -_0205F1CC: .word FUN_0205EC84 + 1 +_0205F1CC: .word FUN_0205EC84 _0205F1D0: .word 0x0000097C thumb_func_start FUN_0205F1D4 @@ -200984,7 +200984,7 @@ FUN_0205F1D4: ; 0x0205F1D4 ldr r1, _0205F1E0 ; =0x0000097C bx r3 nop -_0205F1DC: .word FUN_0205EC8C + 1 +_0205F1DC: .word FUN_0205EC8C _0205F1E0: .word 0x0000097C thumb_func_start FUN_0205F1E4 @@ -200993,7 +200993,7 @@ FUN_0205F1E4: ; 0x0205F1E4 ldr r1, _0205F1F0 ; =0x0000097C bx r3 nop -_0205F1EC: .word FUN_0205EC94 + 1 +_0205F1EC: .word FUN_0205EC94 _0205F1F0: .word 0x0000097C thumb_func_start FUN_0205F1F4 @@ -201002,7 +201002,7 @@ FUN_0205F1F4: ; 0x0205F1F4 ldr r1, _0205F200 ; =0x00000967 bx r3 nop -_0205F1FC: .word FUN_0205EC84 + 1 +_0205F1FC: .word FUN_0205EC84 _0205F200: .word 0x00000967 thumb_func_start FUN_0205F204 @@ -201011,7 +201011,7 @@ FUN_0205F204: ; 0x0205F204 ldr r1, _0205F210 ; =0x00000967 bx r3 nop -_0205F20C: .word FUN_0205EC8C + 1 +_0205F20C: .word FUN_0205EC8C _0205F210: .word 0x00000967 thumb_func_start FUN_0205F214 @@ -201020,7 +201020,7 @@ FUN_0205F214: ; 0x0205F214 ldr r1, _0205F220 ; =0x00000967 bx r3 nop -_0205F21C: .word FUN_0205EC94 + 1 +_0205F21C: .word FUN_0205EC94 _0205F220: .word 0x00000967 thumb_func_start FUN_0205F224 @@ -201029,7 +201029,7 @@ FUN_0205F224: ; 0x0205F224 ldr r1, _0205F230 ; =0x00000979 bx r3 nop -_0205F22C: .word FUN_0205EC84 + 1 +_0205F22C: .word FUN_0205EC84 _0205F230: .word 0x00000979 thumb_func_start FUN_0205F234 @@ -201038,7 +201038,7 @@ FUN_0205F234: ; 0x0205F234 ldr r1, _0205F240 ; =0x00000979 bx r3 nop -_0205F23C: .word FUN_0205EC8C + 1 +_0205F23C: .word FUN_0205EC8C _0205F240: .word 0x00000979 thumb_func_start FUN_0205F244 @@ -201047,7 +201047,7 @@ FUN_0205F244: ; 0x0205F244 ldr r1, _0205F250 ; =0x00000979 bx r3 nop -_0205F24C: .word FUN_0205EC94 + 1 +_0205F24C: .word FUN_0205EC94 _0205F250: .word 0x00000979 thumb_func_start FUN_0205F254 @@ -201056,7 +201056,7 @@ FUN_0205F254: ; 0x0205F254 ldr r1, _0205F260 ; =0x00000994 bx r3 nop -_0205F25C: .word FUN_0205EC8C + 1 +_0205F25C: .word FUN_0205EC8C _0205F260: .word 0x00000994 thumb_func_start FUN_0205F264 @@ -201065,7 +201065,7 @@ FUN_0205F264: ; 0x0205F264 ldr r2, _0205F270 ; =0x00000962 bx r3 nop -_0205F26C: .word FUN_0205EC9C + 1 +_0205F26C: .word FUN_0205EC9C _0205F270: .word 0x00000962 thumb_func_start FUN_0205F274 @@ -201074,7 +201074,7 @@ FUN_0205F274: ; 0x0205F274 ldr r1, _0205F280 ; =0x0000097A bx r3 nop -_0205F27C: .word FUN_0205EC84 + 1 +_0205F27C: .word FUN_0205EC84 _0205F280: .word 0x0000097A thumb_func_start FUN_0205F284 @@ -201083,7 +201083,7 @@ FUN_0205F284: ; 0x0205F284 ldr r1, _0205F290 ; =0x0000097A bx r3 nop -_0205F28C: .word FUN_0205EC8C + 1 +_0205F28C: .word FUN_0205EC8C _0205F290: .word 0x0000097A thumb_func_start FUN_0205F294 @@ -201092,7 +201092,7 @@ FUN_0205F294: ; 0x0205F294 ldr r1, _0205F2A0 ; =0x0000097A bx r3 nop -_0205F29C: .word FUN_0205EC94 + 1 +_0205F29C: .word FUN_0205EC94 _0205F2A0: .word 0x0000097A thumb_func_start FUN_0205F2A4 @@ -201101,7 +201101,7 @@ FUN_0205F2A4: ; 0x0205F2A4 ldr r1, _0205F2B0 ; =0x0000097B bx r3 nop -_0205F2AC: .word FUN_0205EC84 + 1 +_0205F2AC: .word FUN_0205EC84 _0205F2B0: .word 0x0000097B thumb_func_start FUN_0205F2B4 @@ -201110,7 +201110,7 @@ FUN_0205F2B4: ; 0x0205F2B4 ldr r1, _0205F2C0 ; =0x0000097B bx r3 nop -_0205F2BC: .word FUN_0205EC8C + 1 +_0205F2BC: .word FUN_0205EC8C _0205F2C0: .word 0x0000097B thumb_func_start FUN_0205F2C4 @@ -201119,7 +201119,7 @@ FUN_0205F2C4: ; 0x0205F2C4 ldr r1, _0205F2D0 ; =0x0000097B bx r3 nop -_0205F2CC: .word FUN_0205EC94 + 1 +_0205F2CC: .word FUN_0205EC94 _0205F2D0: .word 0x0000097B thumb_func_start FUN_0205F2D4 @@ -201128,7 +201128,7 @@ FUN_0205F2D4: ; 0x0205F2D4 ldr r2, _0205F2E0 ; =0x00000963 bx r3 nop -_0205F2DC: .word FUN_0205EC9C + 1 +_0205F2DC: .word FUN_0205EC9C _0205F2E0: .word 0x00000963 thumb_func_start FUN_0205F2E4 @@ -201139,7 +201139,7 @@ FUN_0205F2E4: ; 0x0205F2E4 add r6, r1, #0x0 cmp r4, #0x45 blo _0205F2F4 - bl FUN_02020C2C + bl ErrorHandling _0205F2F4: mov r2, #0x9b lsl r2, r2, #0x4 @@ -201155,7 +201155,7 @@ FUN_0205F304: ; 0x0205F304 ldr r1, _0205F310 ; =0x0000098C bx r3 nop -_0205F30C: .word FUN_0205EC84 + 1 +_0205F30C: .word FUN_0205EC84 _0205F310: .word 0x0000098C thumb_func_start FUN_0205F314 @@ -201172,7 +201172,7 @@ FUN_0205F314: ; 0x0205F314 cmp r5, r1 bls _0205F334 _0205F32C: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r5, pc} _0205F334: @@ -201206,7 +201206,7 @@ FUN_0205F358: ; 0x0205F358 ldr r1, _0205F364 ; =0x0000403F bx r3 .balign 4 -_0205F360: .word FUN_0205F314 + 1 +_0205F360: .word FUN_0205F314 _0205F364: .word 0x0000403F thumb_func_start FUN_0205F368 @@ -201215,7 +201215,7 @@ FUN_0205F368: ; 0x0205F368 ldr r1, _0205F374 ; =0x0000403F bx r3 nop -_0205F370: .word FUN_0205F344 + 1 +_0205F370: .word FUN_0205F344 _0205F374: .word 0x0000403F thumb_func_start FUN_0205F378 @@ -201225,7 +201225,7 @@ FUN_0205F378: ; 0x0205F378 ldr r1, _0205F384 ; =0x00004030 bx r3 .balign 4 -_0205F380: .word FUN_0205F314 + 1 +_0205F380: .word FUN_0205F314 _0205F384: .word 0x00004030 thumb_func_start FUN_0205F388 @@ -201234,7 +201234,7 @@ FUN_0205F388: ; 0x0205F388 ldr r1, _0205F394 ; =0x00004030 bx r3 nop -_0205F390: .word FUN_0205F344 + 1 +_0205F390: .word FUN_0205F344 _0205F394: .word 0x00004030 thumb_func_start FUN_0205F398 @@ -201287,7 +201287,7 @@ FUN_0205F3E8: ; 0x0205F3E8 ldr r1, _0205F3F4 ; =0x00004035 bx r3 nop -_0205F3F0: .word FUN_0205F344 + 1 +_0205F3F0: .word FUN_0205F344 _0205F3F4: .word 0x00004035 thumb_func_start FUN_0205F3F8 @@ -201297,7 +201297,7 @@ FUN_0205F3F8: ; 0x0205F3F8 ldr r1, _0205F404 ; =0x00004035 bx r3 .balign 4 -_0205F400: .word FUN_0205F314 + 1 +_0205F400: .word FUN_0205F314 _0205F404: .word 0x00004035 thumb_func_start FUN_0205F408 @@ -201317,7 +201317,7 @@ FUN_0205F41C: ; 0x0205F41C ldr r1, _0205F428 ; =0x00004033 bx r3 nop -_0205F424: .word FUN_0205F344 + 1 +_0205F424: .word FUN_0205F344 _0205F428: .word 0x00004033 thumb_func_start FUN_0205F42C @@ -201327,7 +201327,7 @@ FUN_0205F42C: ; 0x0205F42C ldr r1, _0205F438 ; =0x00004033 bx r3 .balign 4 -_0205F434: .word FUN_0205F314 + 1 +_0205F434: .word FUN_0205F314 _0205F438: .word 0x00004033 thumb_func_start FUN_0205F43C @@ -201336,7 +201336,7 @@ FUN_0205F43C: ; 0x0205F43C ldr r1, _0205F448 ; =0x00004034 bx r3 nop -_0205F444: .word FUN_0205F344 + 1 +_0205F444: .word FUN_0205F344 _0205F448: .word 0x00004034 thumb_func_start FUN_0205F44C @@ -201346,7 +201346,7 @@ FUN_0205F44C: ; 0x0205F44C ldr r1, _0205F458 ; =0x00004034 bx r3 .balign 4 -_0205F454: .word FUN_0205F314 + 1 +_0205F454: .word FUN_0205F314 _0205F458: .word 0x00004034 thumb_func_start FUN_0205F45C @@ -201357,7 +201357,7 @@ FUN_0205F45C: ; 0x0205F45C cmp r4, #0x3 blo _0205F46A _0205F466: - bl FUN_02020C2C + bl ErrorHandling _0205F46A: ldr r0, _0205F474 ; =0x020F7430 lsl r1, r4, #0x1 @@ -201416,7 +201416,7 @@ FUN_0205F4C8: ; 0x0205F4C8 cmp r4, #0x4 blt _0205F4D6 _0205F4D2: - bl FUN_02020C2C + bl ErrorHandling _0205F4D6: ldr r0, _0205F4E0 ; =0x020F7436 lsl r1, r4, #0x1 @@ -201456,7 +201456,7 @@ FUN_0205F50C: ; 0x0205F50C bx r3 nop _0205F51C: .word 0x00004036 -_0205F520: .word FUN_0205F314 + 1 +_0205F520: .word FUN_0205F314 thumb_func_start FUN_0205F524 FUN_0205F524: ; 0x0205F524 @@ -201487,7 +201487,7 @@ FUN_0205F54C: ; 0x0205F54C mov r2, #0x0 bx r3 .balign 4 -_0205F554: .word FUN_0205F314 + 1 +_0205F554: .word FUN_0205F314 _0205F558: .word 0x0000403A thumb_func_start FUN_0205F55C @@ -201496,7 +201496,7 @@ FUN_0205F55C: ; 0x0205F55C ldr r1, _0205F568 ; =0x0000403A bx r3 nop -_0205F564: .word FUN_0205F344 + 1 +_0205F564: .word FUN_0205F344 _0205F568: .word 0x0000403A thumb_func_start FUN_0205F56C @@ -201526,7 +201526,7 @@ FUN_0205F594: ; 0x0205F594 ldr r1, _0205F5A0 ; =0x0000403B bx r3 nop -_0205F59C: .word FUN_0205F344 + 1 +_0205F59C: .word FUN_0205F344 _0205F5A0: .word 0x0000403B thumb_func_start FUN_0205F5A4 @@ -201536,7 +201536,7 @@ FUN_0205F5A4: ; 0x0205F5A4 ldr r1, _0205F5B0 ; =0x0000403B bx r3 .balign 4 -_0205F5AC: .word FUN_0205F314 + 1 +_0205F5AC: .word FUN_0205F314 _0205F5B0: .word 0x0000403B thumb_func_start FUN_0205F5B4 @@ -201616,7 +201616,7 @@ FUN_0205F648: ; 0x0205F648 ldr r1, _0205F654 ; =0x00004041 bx r3 nop -_0205F650: .word FUN_0205F344 + 1 +_0205F650: .word FUN_0205F344 _0205F654: .word 0x00004041 thumb_func_start FUN_0205F658 @@ -201626,7 +201626,7 @@ FUN_0205F658: ; 0x0205F658 ldr r1, _0205F664 ; =0x00004041 bx r3 .balign 4 -_0205F660: .word FUN_0205F314 + 1 +_0205F660: .word FUN_0205F314 _0205F664: .word 0x00004041 thumb_func_start FUN_0205F668 @@ -201636,7 +201636,7 @@ FUN_0205F668: ; 0x0205F668 add r4, r0, #0x0 bl FUN_0201B9EC mov r1, #0x62 - blx FUN_020EBC80 + blx _s32_div_f add r1, r1, #0x2 lsl r1, r1, #0x10 add r0, r4, #0x0 @@ -201650,7 +201650,7 @@ FUN_0205F688: ; 0x0205F688 ldr r1, _0205F694 ; =0x0000403E bx r3 nop -_0205F690: .word FUN_0205F344 + 1 +_0205F690: .word FUN_0205F344 _0205F694: .word 0x0000403E thumb_func_start FUN_0205F698 @@ -201660,7 +201660,7 @@ FUN_0205F698: ; 0x0205F698 ldr r1, _0205F6A4 ; =0x0000403E bx r3 .balign 4 -_0205F6A0: .word FUN_0205F314 + 1 +_0205F6A0: .word FUN_0205F314 _0205F6A4: .word 0x0000403E thumb_func_start FUN_0205F6A8 @@ -201669,7 +201669,7 @@ FUN_0205F6A8: ; 0x0205F6A8 ldr r1, _0205F6B4 ; =0x00004049 bx r3 nop -_0205F6B0: .word FUN_0205F344 + 1 +_0205F6B0: .word FUN_0205F344 _0205F6B4: .word 0x00004049 thumb_func_start FUN_0205F6B8 @@ -201679,7 +201679,7 @@ FUN_0205F6B8: ; 0x0205F6B8 ldr r1, _0205F6C4 ; =0x00004049 bx r3 .balign 4 -_0205F6C0: .word FUN_0205F314 + 1 +_0205F6C0: .word FUN_0205F314 _0205F6C4: .word 0x00004049 thumb_func_start FUN_0205F6C8 @@ -201688,7 +201688,7 @@ FUN_0205F6C8: ; 0x0205F6C8 ldr r1, _0205F6D4 ; =0x00004040 bx r3 nop -_0205F6D0: .word FUN_0205F344 + 1 +_0205F6D0: .word FUN_0205F344 _0205F6D4: .word 0x00004040 thumb_func_start FUN_0205F6D8 @@ -201698,7 +201698,7 @@ FUN_0205F6D8: ; 0x0205F6D8 ldr r1, _0205F6E4 ; =0x00004040 bx r3 .balign 4 -_0205F6E0: .word FUN_0205F314 + 1 +_0205F6E0: .word FUN_0205F314 _0205F6E4: .word 0x00004040 thumb_func_start FUN_0205F6E8 @@ -201728,7 +201728,7 @@ FUN_0205F710: ; 0x0205F710 ldr r1, _0205F71C ; =0x00004042 bx r3 nop -_0205F718: .word FUN_0205F344 + 1 +_0205F718: .word FUN_0205F344 _0205F71C: .word 0x00004042 thumb_func_start FUN_0205F720 @@ -201737,7 +201737,7 @@ FUN_0205F720: ; 0x0205F720 ldr r1, _0205F72C ; =0x00004046 bx r3 nop -_0205F728: .word FUN_0205F344 + 1 +_0205F728: .word FUN_0205F344 _0205F72C: .word 0x00004046 thumb_func_start FUN_0205F730 @@ -201747,7 +201747,7 @@ FUN_0205F730: ; 0x0205F730 ldr r1, _0205F73C ; =0x00004046 bx r3 .balign 4 -_0205F738: .word FUN_0205F314 + 1 +_0205F738: .word FUN_0205F314 _0205F73C: .word 0x00004046 thumb_func_start FUN_0205F740 @@ -201756,7 +201756,7 @@ FUN_0205F740: ; 0x0205F740 ldr r1, _0205F74C ; =0x00004047 bx r3 nop -_0205F748: .word FUN_0205F344 + 1 +_0205F748: .word FUN_0205F344 _0205F74C: .word 0x00004047 thumb_func_start FUN_0205F750 @@ -201766,7 +201766,7 @@ FUN_0205F750: ; 0x0205F750 ldr r1, _0205F75C ; =0x00004047 bx r3 .balign 4 -_0205F758: .word FUN_0205F314 + 1 +_0205F758: .word FUN_0205F314 _0205F75C: .word 0x00004047 thumb_func_start FUN_0205F760 @@ -201775,7 +201775,7 @@ FUN_0205F760: ; 0x0205F760 ldr r1, _0205F76C ; =0x00004048 bx r3 nop -_0205F768: .word FUN_0205F344 + 1 +_0205F768: .word FUN_0205F344 _0205F76C: .word 0x00004048 thumb_func_start FUN_0205F770 @@ -201785,7 +201785,7 @@ FUN_0205F770: ; 0x0205F770 ldr r1, _0205F77C ; =0x00004048 bx r3 .balign 4 -_0205F778: .word FUN_0205F314 + 1 +_0205F778: .word FUN_0205F314 _0205F77C: .word 0x00004048 thumb_func_start FUN_0205F780 @@ -201794,7 +201794,7 @@ FUN_0205F780: ; 0x0205F780 ldr r1, _0205F78C ; =0x0000404A bx r3 nop -_0205F788: .word FUN_0205F344 + 1 +_0205F788: .word FUN_0205F344 _0205F78C: .word 0x0000404A thumb_func_start FUN_0205F790 @@ -201804,7 +201804,7 @@ FUN_0205F790: ; 0x0205F790 ldr r1, _0205F79C ; =0x0000404A bx r3 .balign 4 -_0205F798: .word FUN_0205F314 + 1 +_0205F798: .word FUN_0205F314 _0205F79C: .word 0x0000404A thumb_func_start FUN_0205F7A0 @@ -201873,7 +201873,7 @@ _0205F812: ldr r0, [r0, #0x0] mov r1, #0x6 add r0, r0, #0x4 - blx FUN_020EBC80 + blx _s32_div_f mov r6, #0x0 add r4, r5, #0x0 _0205F83E: @@ -201895,7 +201895,7 @@ _0205F85A: strh r0, [r4, #0x28] add r0, r1, #0x5 mov r1, #0x6 - blx FUN_020EBC80 + blx _s32_div_f add r6, r6, #0x1 add r4, #0xc cmp r6, #0x5 @@ -201958,23 +201958,23 @@ FUN_0205F8CC: ; 0x0205F8CC bl FUN_020462AC str r0, [sp, #0x0] add r0, sp, #0x28 - blx FUN_020D1C94 + blx FS_InitFile add r0, sp, #0x28 add r1, r4, #0x0 - blx FUN_020D1944 + blx FS_OpenFile cmp r0, #0x0 bne _0205F8F8 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x70 pop {r3-r7, pc} _0205F8F8: add r0, sp, #0x28 add r1, sp, #0x24 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile cmp r0, #0x0 bge _0205F90A - bl FUN_02020C2C + bl ErrorHandling _0205F90A: mov r0, #0xb mov r1, #0x4 @@ -201982,7 +201982,7 @@ _0205F90A: mov r1, #0x0 mov r2, #0x4 add r6, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r1, [sp, #0x24] ldr r0, _0205FA28 ; =0x0000013A mov r4, #0x0 @@ -202011,7 +202011,7 @@ _0205F94C: add r0, sp, #0x28 add r1, r6, #0x0 mov r2, #0x4 - blx FUN_020D180C + blx FS_ReadFile ldrb r0, [r6, #0x0] cmp r0, #0x1 beq _0205F962 @@ -202112,7 +202112,7 @@ _0205FA0E: blt _0205F94C _0205FA16: add r0, sp, #0x28 - blx FUN_020D18FC + blx FS_CloseFile add r0, r6, #0x0 bl FUN_02016A18 add sp, #0x70 @@ -202132,9 +202132,9 @@ FUN_0205FA2C: ; 0x0205FA2C mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r6, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] add r0, r6, #0x0 bl FUN_0206BB1C @@ -202239,7 +202239,7 @@ _0205FB0C: add r0, #0x2c add r1, #0xe mov r2, #0x6 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r4, #0x0 add r0, #0x22 ldrb r0, [r0, #0x0] @@ -202265,9 +202265,9 @@ FUN_0205FB34: ; 0x0205FB34 mov r1, #0x0 mov r2, #0x30 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x4] add r0, r5, #0x0 bl FUN_0206BB1C @@ -202403,7 +202403,7 @@ FUN_0205FC50: ; 0x0205FC50 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x18 - blx FUN_020CE34C + blx MI_CpuFill8 strb r6, [r4, #0x8] strb r7, [r4, #0x9] add r0, sp, #0x8 @@ -202423,7 +202423,7 @@ FUN_0205FC50: ; 0x0205FC50 bl FUN_0204640C pop {r3-r7, pc} nop -_0205FC98: .word FUN_0205FBE8 + 1 +_0205FC98: .word FUN_0205FBE8 thumb_func_start FUN_0205FC9C FUN_0205FC9C: ; 0x0205FC9C @@ -202522,7 +202522,7 @@ FUN_0205FD38: ; 0x0205FD38 add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x18 - blx FUN_020CE34C + blx MI_CpuFill8 strh r5, [r4, #0x12] strh r7, [r4, #0x14] ldr r0, [sp, #0x0] @@ -202533,7 +202533,7 @@ FUN_0205FD38: ; 0x0205FD38 bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_0205FD6C: .word FUN_0205FCE8 + 1 +_0205FD6C: .word FUN_0205FCE8 thumb_func_start FUN_0205FD70 FUN_0205FD70: ; 0x0205FD70 @@ -202601,7 +202601,7 @@ FUN_0205FDDC: ; 0x0205FDDC add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 strh r5, [r4, #0x0] strh r6, [r4, #0x2] ldr r0, [r7, #0x10] @@ -202610,7 +202610,7 @@ FUN_0205FDDC: ; 0x0205FDDC bl FUN_0204640C pop {r3-r7, pc} nop -_0205FE0C: .word FUN_0205FD70 + 1 +_0205FE0C: .word FUN_0205FD70 thumb_func_start FUN_0205FE10 FUN_0205FE10: ; 0x0205FE10 @@ -203061,7 +203061,7 @@ FUN_0206015C: ; 0x0206015C bl FUN_0204640C pop {r3-r5, pc} nop -_02060190: .word FUN_02060194 + 1 +_02060190: .word FUN_02060194 thumb_func_start FUN_02060194 FUN_02060194: ; 0x02060194 @@ -203301,7 +203301,7 @@ _0206036A: _0206038C: cmp r1, #0xc8 blt _02060394 - bl FUN_02020C2C + bl ErrorHandling _02060394: mov r1, #0x0 _02060396: @@ -203373,7 +203373,7 @@ _020603F6: lsr r6, r0, #0x10 cmp r6, #0x10 blo _02060412 - bl FUN_02020C2C + bl ErrorHandling _02060412: cmp r6, #0x0 bne _02060420 @@ -203402,7 +203402,7 @@ FUN_0206043C: ; 0x0206043C add r4, r0, #0x0 cmp r4, #0x1d blo _02060448 - bl FUN_02020C2C + bl ErrorHandling _02060448: ldr r0, _02060450 ; =0x020F7460 lsl r1, r4, #0x2 @@ -203479,7 +203479,7 @@ _020604C2: mov r6, #0x28 b _020604D0 _020604C8: - bl FUN_02020C2C + bl ErrorHandling add sp, #0x20 pop {r3-r7, pc} _020604D0: @@ -203571,12 +203571,12 @@ FUN_02060588: ; 0x02060588 _0206059C: bl FUN_0201B9EC ldr r1, _020605D4 ; =0x000008D4 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x1d blo _020605B2 - bl FUN_02020C2C + bl ErrorHandling _020605B2: lsl r0, r5, #0x18 lsr r2, r0, #0x18 @@ -203634,7 +203634,7 @@ _0206061E: ldrh r5, [r4, #0x0] cmp r5, #0x0 bne _02060628 - bl FUN_02020C2C + bl ErrorHandling _02060628: cmp r5, #0x1 bhi _02060630 @@ -203645,18 +203645,18 @@ _02060630: add r6, r0, #0x0 ldr r0, _02060684 ; =0x0000FFFF add r1, r5, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r6, #0x0 lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r6, r0, #0x10 cmp r6, r5 blo _02060658 - bl FUN_02020C2C + bl ErrorHandling _02060658: lsl r0, r6, #0x18 lsr r0, r0, #0x17 @@ -203841,7 +203841,7 @@ FUN_02060790: ; 0x02060790 bl FUN_0204640C pop {r3-r7, pc} .balign 4 -_020607D0: .word FUN_020606D0 + 1 +_020607D0: .word FUN_020606D0 thumb_func_start FUN_020607D4 FUN_020607D4: ; 0x020607D4 @@ -203983,7 +203983,7 @@ _020608F0: bl FUN_020054C8 b _0206090A _020608F8: - bl FUN_02020C2C + bl ErrorHandling add r0, r4, #0x0 bl FUN_02016A18 add sp, #0x28 @@ -204001,7 +204001,7 @@ _0206090A: .balign 4 _02060918: .word 0x000001C1 _0206091C: .word 0x000006DD -_02060920: .word FUN_020609A0 + 1 +_02060920: .word FUN_020609A0 thumb_func_start FUN_02060924 FUN_02060924: ; 0x02060924 @@ -204020,7 +204020,7 @@ FUN_02060924: ; 0x02060924 bl FUN_0204640C pop {r4-r6, pc} .balign 4 -_02060944: .word FUN_02060948 + 1 +_02060944: .word FUN_02060948 thumb_func_start FUN_02060948 FUN_02060948: ; 0x02060948 @@ -204306,7 +204306,7 @@ _02060B6A: str r0, [r4, #0x24] b _02060B86 _02060B7C: - bl FUN_02020C2C + bl ErrorHandling add sp, #0xc mov r0, #0x1 pop {r3-r4, pc} @@ -204403,7 +204403,7 @@ _02060BF6: bl FUN_0204A9F0 cmp r0, #0x0 bne _02060C38 - bl FUN_02020C2C + bl ErrorHandling _02060C38: ldr r0, [sp, #0x20] bl FUN_021E7EC8 @@ -204428,7 +204428,7 @@ _02060C38: bl FUN_021DA464 b _02060C6E _02060C6A: - bl FUN_02020C2C + bl ErrorHandling _02060C6E: add r0, r6, #0x1 lsl r0, r0, #0x18 @@ -204478,7 +204478,7 @@ _02060CA8: str r1, [r0, #0x8] pop {r3, pc} _02060CC4: - bl FUN_02020C2C + bl ErrorHandling _02060CC8: pop {r3, pc} .balign 4 @@ -204492,7 +204492,7 @@ FUN_02060CCC: ; 0x02060CCC cmp r5, #0x5 blt _02060CDC _02060CD8: - bl FUN_02020C2C + bl ErrorHandling _02060CDC: sub r1, r5, #0x1 ldr r6, _02060CF4 ; =0x020F767C @@ -204502,7 +204502,7 @@ _02060CDC: ldr r0, [r6, r4] cmp r0, r5 beq _02060CF0 - bl FUN_02020C2C + bl ErrorHandling _02060CF0: add r0, r6, r4 pop {r4-r6, pc} @@ -204522,7 +204522,7 @@ FUN_02060CF8: ; 0x02060CF8 cmp r4, r0 blt _02060D12 _02060D0E: - bl FUN_02020C2C + bl ErrorHandling _02060D12: sub r0, r4, #0x1 ldr r1, [r5, #0x8] @@ -204545,7 +204545,7 @@ FUN_02060D1C: ; 0x02060D1C ldr r4, [r0, #0x0] cmp r4, #0x0 bne _02060D3E - bl FUN_02020C2C + bl ErrorHandling _02060D3E: add r0, r6, #0x0 add r1, r7, #0x0 @@ -204926,7 +204926,7 @@ FUN_02061008: ; 0x02061008 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x24 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 pop {r4, pc} @@ -204935,7 +204935,7 @@ FUN_02061020: ; 0x02061020 ldr r3, _02061024 ; =FUN_02016A18 bx r3 .balign 4 -_02061024: .word FUN_02016A18 + 1 +_02061024: .word FUN_02016A18 thumb_func_start FUN_02061028 FUN_02061028: ; 0x02061028 @@ -204947,7 +204947,7 @@ FUN_02061028: ; 0x02061028 add r1, r5, #0x0 mov r2, #0x24 add r7, r3, #0x0 - blx FUN_020CE1FC + blx MIi_CpuClear32 str r6, [r5, #0x0] add r0, r5, #0x0 add r2, r5, #0x0 @@ -204968,7 +204968,7 @@ FUN_02061028: ; 0x02061028 ldrh r0, [r5, #0x22] cmp r0, #0x0 bne _0206106C - bl FUN_02020C2C + bl ErrorHandling _0206106C: add r2, r5, #0x0 add r5, #0xc @@ -205275,7 +205275,7 @@ FUN_020612AC: ; 0x020612AC mov r0, #0x0 add r1, sp, #0x0 mov r2, #0x28 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r6, #0x0 mov r1, #0x1 mov r2, #0x0 @@ -205299,7 +205299,7 @@ FUN_020612EC: ; 0x020612EC mov r1, #0x14 bx r3 nop -_020612F4: .word FUN_020612AC + 1 +_020612F4: .word FUN_020612AC thumb_func_start FUN_020612F8 FUN_020612F8: ; 0x020612F8 @@ -205307,7 +205307,7 @@ FUN_020612F8: ; 0x020612F8 mov r1, #0x4 bx r3 nop -_02061300: .word FUN_020612AC + 1 +_02061300: .word FUN_020612AC thumb_func_start FUN_02061304 FUN_02061304: ; 0x02061304 @@ -205541,12 +205541,12 @@ FUN_02061498: ; 0x02061498 bl FUN_02060D90 bl FUN_0201B9EC ldr r1, _020614F8 ; =0x00003334 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x5 blo _020614F0 - bl FUN_02020C2C + bl ErrorHandling _020614F0: add r4, #0x11 add r0, r4, #0x0 @@ -205949,12 +205949,12 @@ FUN_020617D8: ; 0x020617D8 bl FUN_02060E70 bl FUN_0201B9EC ldr r1, _02061830 ; =0x00005556 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x3 blo _02061826 - bl FUN_02020C2C + bl ErrorHandling _02061826: add r4, #0x21 add r0, r4, #0x0 @@ -206002,7 +206002,7 @@ FUN_02061868: ; 0x02061868 ldr r1, [r4, #0x0] cmp r1, r0 beq _02061884 - bl FUN_02020C2C + bl ErrorHandling _02061884: add r0, r5, #0x0 mov r1, #0x0 @@ -207063,7 +207063,7 @@ FUN_020620A0: ; 0x020620A0 add r4, r0, #0x0 cmp r4, #0x0 bgt _020620BE - bl FUN_02020C2C + bl ErrorHandling _020620BE: cmp r4, #0x1 ble _020620D0 @@ -207099,17 +207099,17 @@ _020620F0: _020620F8: cmp r5, #0x0 beq _02062100 - bl FUN_02020C2C + bl ErrorHandling _02062100: bl FUN_0201B9EC mov r1, #0xf1 lsl r1, r1, #0x4 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x11 blo _02062118 - bl FUN_02020C2C + bl ErrorHandling _02062118: cmp r4, #0x9 blt _0206211E @@ -207162,12 +207162,12 @@ FUN_02062170: ; 0x02062170 add r7, r1, #0x0 bl FUN_0201B9EC ldr r1, _02062234 ; =0x00003334 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x5 blo _0206218C - bl FUN_02020C2C + bl ErrorHandling _0206218C: ldr r0, _02062238 ; =0x02105FBC lsl r1, r4, #0x1 @@ -207209,7 +207209,7 @@ _020621D4: lsr r4, r0, #0x10 cmp r4, #0x4 blo _020621E4 - bl FUN_02020C2C + bl ErrorHandling _020621E4: cmp r4, #0x3 bhi _0206220C @@ -207261,7 +207261,7 @@ _02062228: mov r0, #0xc pop {r3-r7, pc} _0206222C: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x1 pop {r3-r7, pc} .balign 4 @@ -207348,12 +207348,12 @@ FUN_020622C4: ; 0x020622C4 bl FUN_0201B9EC mov r1, #0xf1 lsl r1, r1, #0x4 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, #0x11 blo _020622E0 - bl FUN_02020C2C + bl ErrorHandling _020622E0: cmp r5, #0x9 blt _020622E6 @@ -207362,12 +207362,12 @@ _020622E6: bl FUN_0201B9EC mov r1, #0xf1 lsl r1, r1, #0x4 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r4, r0, #0x10 cmp r4, #0x11 blo _020622FE - bl FUN_02020C2C + bl ErrorHandling _020622FE: cmp r4, #0x9 blt _02062304 @@ -207460,7 +207460,7 @@ _02062392: lsl r0, r4, #0x10 lsr r0, r0, #0x10 bne _020623A4 - bl FUN_02020C2C + bl ErrorHandling _020623A4: lsl r0, r4, #0x10 lsr r0, r0, #0x10 @@ -207474,20 +207474,20 @@ _020623B0: lsl r1, r4, #0x10 ldr r0, _020623F0 ; =0x0000FFFF lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 lsl r0, r4, #0x10 lsr r0, r0, #0x10 cmp r5, r0 blo _020623DE - bl FUN_02020C2C + bl ErrorHandling _020623DE: add r0, sp, #0x10 add r0, #0x2 @@ -207583,7 +207583,7 @@ FUN_02062474: ; 0x02062474 lsl r0, r0, #0x10 lsr r4, r0, #0x10 bne _02062496 - bl FUN_02020C2C + bl ErrorHandling _02062496: cmp r4, #0x1 bhi _0206249E @@ -207594,18 +207594,18 @@ _0206249E: add r5, r0, #0x0 ldr r0, _02062504 ; =0x0000FFFF add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x0 add r1, r1, #0x1 lsl r1, r1, #0x10 add r0, r5, #0x0 lsr r1, r1, #0x10 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r5, r0, #0x10 cmp r5, r4 blo _020624C6 - bl FUN_02020C2C + bl ErrorHandling _020624C6: lsl r4, r5, #0x2 add r0, sp, #0x4 @@ -207702,7 +207702,7 @@ _0206256C: _02062572: cmp r4, #0xb blt _0206257A - bl FUN_02020C2C + bl ErrorHandling _0206257A: ldr r1, [sp, #0x8] add r0, r6, #0x0 @@ -207774,16 +207774,16 @@ FUN_020625EC: ; 0x020625EC mov r1, #0x0 lsl r2, r2, #0x4 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x50 str r0, [r4, #0x0] ldr r0, [sp, #0x0] mov r1, #0x3 - blx FUN_020EBC80 + blx _s32_div_f strb r1, [r4, #0x16] ldr r0, [sp, #0x0] mov r1, #0x3 - blx FUN_020EBC80 + blx _s32_div_f strb r0, [r4, #0x17] ldrb r0, [r4, #0x16] bl FUN_0202B870 @@ -207804,11 +207804,11 @@ FUN_020625EC: ; 0x020625EC lsl r1, r1, #0x4 str r0, [r4, r1] add r0, r6, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress bl FUN_02024FF4 strh r0, [r4, #0x1a] add r0, r6, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress bl FUN_02025084 strh r0, [r4, #0x1c] str r4, [r7, #0x8] @@ -207896,7 +207896,7 @@ _020626FE: add r0, r4, #0x0 mov r1, #0x0 lsl r2, r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_020168D0 mov r0, #0xc @@ -208360,7 +208360,7 @@ FUN_02062A70: ; 0x02062A70 mov r2, #0x3c mov r1, #0x0 mul r2, r3 - blx FUN_020CE34C + blx MI_CpuFill8 ldrb r1, [r4, #0x16] ldr r2, [r4, #0x0] add r0, r5, #0x0 @@ -209118,7 +209118,7 @@ _02063094: ldr r0, _02063164 ; =0x020F7C2C add r1, #0xa0 mov r2, #0x20 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r1, r5, #0x0 add r0, r5, #0x0 add r1, #0xd4 @@ -209204,7 +209204,7 @@ _02063094: .balign 4 _02063160: .word 0x0000FFFF _02063164: .word 0x020F7C2C -_02063168: .word FUN_020631C8 + 1 +_02063168: .word FUN_020631C8 _0206316C: .word 0x000003D9 _02063170: .word 0x000003E2 _02063174: .word 0x0001020F @@ -209827,7 +209827,7 @@ FUN_02063650: ; 0x02063650 bl FUN_0204640C pop {r3-r5, pc} nop -_02063678: .word FUN_02063524 + 1 +_02063678: .word FUN_02063524 thumb_func_start FUN_0206367C FUN_0206367C: ; 0x0206367C @@ -210148,7 +210148,7 @@ _020638F8: lsl r0, r0, #0x10 lsr r6, r0, #0x10 bne _02063920 - bl FUN_02020C2C + bl ErrorHandling _02063920: add r0, r6, #0x0 add r1, sp, #0x8 @@ -210337,7 +210337,7 @@ FUN_02063A80: ; 0x02063A80 ldr r0, _02063A98 ; =0x19740205 cmp r1, r0 beq _02063A90 - bl FUN_02020C2C + bl ErrorHandling _02063A90: add r0, r4, #0x0 bl FUN_02016A18 @@ -210399,7 +210399,7 @@ FUN_02063AD0: ; 0x02063AD0 strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063B00: .word FUN_02063B04 + 1 +_02063B00: .word FUN_02063B04 thumb_func_start FUN_02063B04 FUN_02063B04: ; 0x02063B04 @@ -210531,7 +210531,7 @@ FUN_02063BBC: ; 0x02063BBC bl FUN_02035D04 pop {r4-r6, pc} .balign 4 -_02063C10: .word FUN_02036AB8 + 1 +_02063C10: .word FUN_02036AB8 thumb_func_start FUN_02063C14 FUN_02063C14: ; 0x02063C14 @@ -210606,7 +210606,7 @@ FUN_02063C70: ; 0x02063C70 strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063CA0: .word FUN_02063CA4 + 1 +_02063CA0: .word FUN_02063CA4 thumb_func_start FUN_02063CA4 FUN_02063CA4: ; 0x02063CA4 @@ -210692,7 +210692,7 @@ FUN_02063D18: ; 0x02063D18 strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063D48: .word FUN_02063D4C + 1 +_02063D48: .word FUN_02063D4C thumb_func_start FUN_02063D4C FUN_02063D4C: ; 0x02063D4C @@ -210778,7 +210778,7 @@ FUN_02063DC0: ; 0x02063DC0 strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063DF0: .word FUN_02063DF4 + 1 +_02063DF0: .word FUN_02063DF4 thumb_func_start FUN_02063DF4 FUN_02063DF4: ; 0x02063DF4 @@ -210864,7 +210864,7 @@ FUN_02063E68: ; 0x02063E68 strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063E98: .word FUN_02063E9C + 1 +_02063E98: .word FUN_02063E9C thumb_func_start FUN_02063E9C FUN_02063E9C: ; 0x02063E9C @@ -210950,7 +210950,7 @@ FUN_02063F10: ; 0x02063F10 strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063F40: .word FUN_02063F44 + 1 +_02063F40: .word FUN_02063F44 thumb_func_start FUN_02063F44 FUN_02063F44: ; 0x02063F44 @@ -211045,7 +211045,7 @@ FUN_02063FCC: ; 0x02063FCC strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_02063FFC: .word FUN_02064000 + 1 +_02063FFC: .word FUN_02064000 thumb_func_start FUN_02064000 FUN_02064000: ; 0x02064000 @@ -211120,7 +211120,7 @@ FUN_0206405C: ; 0x0206405C strh r0, [r4, #0x2a] pop {r4-r6, pc} .balign 4 -_0206408C: .word FUN_02064090 + 1 +_0206408C: .word FUN_02064090 thumb_func_start FUN_02064090 FUN_02064090: ; 0x02064090 @@ -211233,7 +211233,7 @@ FUN_02064134: ; 0x02064134 strh r0, [r4, #0x2a] pop {r4-r6, pc} nop -_02064170: .word FUN_02064174 + 1 +_02064170: .word FUN_02064174 thumb_func_start FUN_02064174 FUN_02064174: ; 0x02064174 @@ -211325,7 +211325,7 @@ FUN_020641F0: ; 0x020641F0 strh r0, [r4, #0x2a] pop {r4-r6, pc} nop -_0206422C: .word FUN_02064230 + 1 +_0206422C: .word FUN_02064230 thumb_func_start FUN_02064230 FUN_02064230: ; 0x02064230 @@ -211477,7 +211477,7 @@ FUN_02064324: ; 0x02064324 strh r0, [r4, #0x2a] pop {r3-r7, pc} .balign 4 -_0206435C: .word FUN_02064360 + 1 +_0206435C: .word FUN_02064360 thumb_func_start FUN_02064360 FUN_02064360: ; 0x02064360 @@ -211689,15 +211689,15 @@ FUN_020644E4: ; 0x020644E4 add sp, #0x24 pop {r4-r7, pc} .balign 4 -_02064518: .word FUN_0206479C + 1 -_0206451C: .word FUN_020647A0 + 1 +_02064518: .word FUN_0206479C +_0206451C: .word FUN_020647A0 thumb_func_start FUN_02064520 FUN_02064520: ; 0x02064520 push {r4, lr} add r4, r0, #0x0 bne _0206452A - bl FUN_02020C2C + bl ErrorHandling _0206452A: add r0, r4, #0x0 bl FUN_020646A0 @@ -211776,12 +211776,12 @@ FUN_020645B0: ; 0x020645B0 bl FUN_0200CA44 add r4, r0, #0x0 bne _020645C6 - bl FUN_02020C2C + bl ErrorHandling _020645C6: add r0, r4, #0x0 pop {r4, pc} nop -_020645CC: .word FUN_020645D0 + 1 +_020645CC: .word FUN_020645D0 thumb_func_start FUN_020645D0 FUN_020645D0: ; 0x020645D0 @@ -211789,7 +211789,7 @@ FUN_020645D0: ; 0x020645D0 add r0, r1, #0x0 bx r3 nop -_020645D8: .word FUN_020646DC + 1 +_020645D8: .word FUN_020646DC thumb_func_start FUN_020645DC FUN_020645DC: ; 0x020645DC @@ -211798,7 +211798,7 @@ FUN_020645DC: ; 0x020645DC bl FUN_02016998 add r4, r0, #0x0 bne _020645EC - bl FUN_02020C2C + bl ErrorHandling _020645EC: add r2, r4, #0x0 mov r1, #0x10 @@ -211819,7 +211819,7 @@ FUN_02064600: ; 0x02064600 ldr r0, [r1, #0x8] bx r3 .balign 4 -_02064608: .word FUN_02016A8C + 1 +_02064608: .word FUN_02016A8C thumb_func_start FUN_0206460C FUN_0206460C: ; 0x0206460C @@ -211831,7 +211831,7 @@ FUN_0206460C: ; 0x0206460C bl FUN_02016998 add r4, r0, #0x0 bne _02064622 - bl FUN_02020C2C + bl ErrorHandling _02064622: add r0, r4, #0x0 mov r1, #0x0 @@ -211848,7 +211848,7 @@ FUN_02064630: ; 0x02064630 ldr r1, [r1, #0xc] bx r3 nop -_0206463C: .word FUN_02016A8C + 1 +_0206463C: .word FUN_02016A8C thumb_func_start FUN_02064640 FUN_02064640: ; 0x02064640 @@ -211877,12 +211877,12 @@ FUN_02064640: ; 0x02064640 bl FUN_02064730 pop {r4, pc} nop -_02064680: .word FUN_0206478C + 1 -_02064684: .word FUN_02064798 + 1 -_02064688: .word FUN_02064790 + 1 -_0206468C: .word FUN_02064794 + 1 -_02064690: .word FUN_0206479C + 1 -_02064694: .word FUN_020647A0 + 1 +_02064680: .word FUN_0206478C +_02064684: .word FUN_02064798 +_02064688: .word FUN_02064790 +_0206468C: .word FUN_02064794 +_02064690: .word FUN_0206479C +_02064694: .word FUN_020647A0 thumb_func_start FUN_02064698 FUN_02064698: ; 0x02064698 @@ -212169,7 +212169,7 @@ _0206480A: bl FUN_0204AA5C cmp r0, #0x0 bne _0206482C - bl FUN_02020C2C + bl ErrorHandling _0206482C: ldr r1, [sp, #0x14] add r0, sp, #0x18 @@ -212380,7 +212380,7 @@ _02064996: str r1, [r0, #0x8] pop {r3-r5, pc} _020649A0: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} nop _020649A8: .word 0x00000123 @@ -212474,9 +212474,9 @@ _02064A54: _02064A58: .word 0x020F7D80 _02064A5C: .word 0x020F7D84 _02064A60: .word 0x020F7D74 -_02064A64: .word FUN_02064A70 + 1 +_02064A64: .word FUN_02064A70 _02064A68: .word 0x020F7D70 -_02064A6C: .word FUN_02064B70 + 1 +_02064A6C: .word FUN_02064B70 thumb_func_start FUN_02064A70 FUN_02064A70: ; 0x02064A70 @@ -212538,7 +212538,7 @@ _02064ACA: bl FUN_0204AA5C cmp r0, #0x0 bne _02064AEC - bl FUN_02020C2C + bl ErrorHandling _02064AEC: ldr r1, [sp, #0xc] add r0, sp, #0x10 @@ -212662,7 +212662,7 @@ _02064BCA: bl FUN_0204AA5C cmp r0, #0x0 bne _02064BEC - bl FUN_02020C2C + bl ErrorHandling _02064BEC: ldr r1, [sp, #0xc] add r0, sp, #0x10 @@ -212866,7 +212866,7 @@ FUN_02064D88: ; 0x02064D88 add r7, r0, #0x0 cmp r5, #0x3 blo _02064D96 - bl FUN_02020C2C + bl ErrorHandling _02064D96: add r0, r7, #0x0 bl FUN_020377AC @@ -212902,7 +212902,7 @@ _02064DD2: mov r6, #0x19 b _02064DDE _02064DDA: - bl FUN_02020C2C + bl ErrorHandling _02064DDE: ldr r0, [r7, #0x1c] ldr r0, [r0, #0xc] @@ -212921,7 +212921,7 @@ FUN_02064DEC: ; 0x02064DEC add r6, r2, #0x0 cmp r4, #0x1 bls _02064DFC - bl FUN_02020C2C + bl ErrorHandling _02064DFC: mov r0, #0x0 mvn r0, r0 @@ -213207,7 +213207,7 @@ FUN_02065070: ; 0x02065070 ldr r3, _02065074 ; =FUN_02016A18 bx r3 .balign 4 -_02065074: .word FUN_02016A18 + 1 +_02065074: .word FUN_02016A18 thumb_func_start FUN_02065078 FUN_02065078: ; 0x02065078 @@ -213489,7 +213489,7 @@ _02065290: ldr r0, [sp, #0x10] add r1, r4, #0x0 lsl r2, r2, #0x8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r3-r5, pc} .balign 4 _020652A0: .word 0x000F423F @@ -213594,7 +213594,7 @@ FUN_02065344: ; 0x02065344 bl FUN_0204640C pop {r3-r5, pc} nop -_0206536C: .word FUN_02065370 + 1 +_0206536C: .word FUN_02065370 thumb_func_start FUN_02065370 FUN_02065370: ; 0x02065370 @@ -213677,7 +213677,7 @@ FUN_020653EC: ; 0x020653EC mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 str r6, [r4, #0x4] bl FUN_020377AC @@ -213691,11 +213691,11 @@ FUN_020653EC: ; 0x020653EC mov r1, #0xff add r6, r0, #0x0 strb r1, [r4, #0x1a] - bl FUN_02023900 + bl LoadPlayerDataAddress bl FUN_02024FF4 strb r0, [r4, #0x16] add r0, r6, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress bl FUN_02025084 strh r0, [r4, #0x14] add r0, r4, #0x0 @@ -213716,7 +213716,7 @@ FUN_020653EC: ; 0x020653EC str r0, [r4, #0x8] pop {r4-r6, pc} .balign 4 -_02065470: .word FUN_020654B0 + 1 +_02065470: .word FUN_020654B0 thumb_func_start FUN_02065474 FUN_02065474: ; 0x02065474 @@ -213746,7 +213746,7 @@ FUN_020654A4: ; 0x020654A4 add r0, r1, #0x0 bx r3 nop -_020654AC: .word FUN_02065474 + 1 +_020654AC: .word FUN_02065474 thumb_func_start FUN_020654B0 FUN_020654B0: ; 0x020654B0 @@ -213762,7 +213762,7 @@ FUN_020654B0: ; 0x020654B0 bl FUN_0201B6C4 pop {r3-r5, pc} .balign 4 -_020654CC: .word FUN_020654D0 + 1 +_020654CC: .word FUN_020654D0 thumb_func_start FUN_020654D0 FUN_020654D0: ; 0x020654D0 @@ -213824,10 +213824,10 @@ _02065542: pop {r3-r5, pc} .balign 4 _02065544: .word 0x021C48B8 -_02065548: .word FUN_02065658 + 1 -_0206554C: .word FUN_020654A4 + 1 +_02065548: .word FUN_02065658 +_0206554C: .word FUN_020654A4 _02065550: .word 0x000005DC -_02065554: .word FUN_02065558 + 1 +_02065554: .word FUN_02065558 thumb_func_start FUN_02065558 FUN_02065558: ; 0x02065558 @@ -213871,7 +213871,7 @@ _02065592: _020655A8: pop {r3-r5, pc} nop -_020655AC: .word FUN_020655B0 + 1 +_020655AC: .word FUN_020655B0 thumb_func_start FUN_020655B0 FUN_020655B0: ; 0x020655B0 @@ -213943,13 +213943,13 @@ _02065634: pop {r4-r6, pc} nop _02065638: .word 0x021C48B8 -_0206563C: .word FUN_02065674 + 1 -_02065640: .word FUN_020654B0 + 1 +_0206563C: .word FUN_02065674 +_02065640: .word FUN_020654B0 _02065644: .word 0x000005DC -_02065648: .word FUN_02065710 + 1 -_0206564C: .word FUN_02065894 + 1 -_02065650: .word FUN_02065938 + 1 -_02065654: .word FUN_02065690 + 1 +_02065648: .word FUN_02065710 +_0206564C: .word FUN_02065894 +_02065650: .word FUN_02065938 +_02065654: .word FUN_02065690 thumb_func_start FUN_02065658 FUN_02065658: ; 0x02065658 @@ -214043,7 +214043,7 @@ _02065704: _0206570A: pop {r3-r5, pc} .balign 4 -_0206570C: .word FUN_020654D0 + 1 +_0206570C: .word FUN_020654D0 thumb_func_start FUN_02065710 FUN_02065710: ; 0x02065710 @@ -214153,10 +214153,10 @@ _020657E0: add sp, #0x4 pop {r3-r4, pc} .balign 4 -_020657E4: .word FUN_02065674 + 1 -_020657E8: .word FUN_020654B0 + 1 -_020657EC: .word FUN_020659B8 + 1 -_020657F0: .word FUN_020657F4 + 1 +_020657E4: .word FUN_02065674 +_020657E8: .word FUN_020654B0 +_020657EC: .word FUN_020659B8 +_020657F0: .word FUN_020657F4 thumb_func_start FUN_020657F4 FUN_020657F4: ; 0x020657F4 @@ -214235,8 +214235,8 @@ _02065884: pop {r3-r4, pc} .balign 4 _02065888: .word 0x021C48B8 -_0206588C: .word FUN_02065674 + 1 -_02065890: .word FUN_020654B0 + 1 +_0206588C: .word FUN_02065674 +_02065890: .word FUN_020654B0 thumb_func_start FUN_02065894 FUN_02065894: ; 0x02065894 @@ -214320,7 +214320,7 @@ _0206592C: _02065932: pop {r3-r5, pc} .balign 4 -_02065934: .word FUN_020654B0 + 1 +_02065934: .word FUN_020654B0 thumb_func_start FUN_02065938 FUN_02065938: ; 0x02065938 @@ -214382,8 +214382,8 @@ _020659A6: pop {r3-r4, pc} nop _020659AC: .word 0x021C48B8 -_020659B0: .word FUN_02065674 + 1 -_020659B4: .word FUN_020654B0 + 1 +_020659B0: .word FUN_02065674 +_020659B4: .word FUN_020654B0 thumb_func_start FUN_020659B8 FUN_020659B8: ; 0x020659B8 @@ -214543,8 +214543,8 @@ _02065AE6: pop {r4-r6, pc} .balign 4 _02065AE8: .word 0x0000013B -_02065AEC: .word FUN_020657F4 + 1 -_02065AF0: .word FUN_020654B0 + 1 +_02065AEC: .word FUN_020657F4 +_02065AF0: .word FUN_020654B0 thumb_func_start FUN_02065AF4 FUN_02065AF4: ; 0x02065AF4 @@ -214645,7 +214645,7 @@ _02065B9E: ldr r0, _02065CE4 ; =0x020F7E8C add r1, r5, r1 mov r2, #0x20 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r1, #0x5d lsl r1, r1, #0x2 add r0, r1, #0x0 @@ -214782,8 +214782,8 @@ _02065CD8: .word 0x020F7E7C _02065CDC: .word 0x020F7E84 _02065CE0: .word 0x0000FFFF _02065CE4: .word 0x020F7E8C -_02065CE8: .word FUN_02065D4C + 1 -_02065CEC: .word FUN_02065CFC + 1 +_02065CE8: .word FUN_02065D4C +_02065CEC: .word FUN_02065CFC _02065CF0: .word 0x0000013B _02065CF4: .word 0x000003D9 _02065CF8: .word 0x0001020F @@ -214945,7 +214945,7 @@ _02065E14: ldr r0, _02065ED0 ; =0x020F7E8C add r1, r5, r1 mov r2, #0x20 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x5d lsl r0, r0, #0x2 add r1, r0, #0x0 @@ -215016,7 +215016,7 @@ _02065EC8: .word 0x020F7E74 _02065ECC: .word 0x020F7EAC _02065ED0: .word 0x020F7E8C _02065ED4: .word 0xFFFFFE7F -_02065ED8: .word FUN_02065EE4 + 1 +_02065ED8: .word FUN_02065EE4 _02065EDC: .word 0x000003D9 _02065EE0: .word 0x0000013B @@ -215656,7 +215656,7 @@ FUN_020663D4: ; 0x020663D4 add r0, r4, r0 mov r1, #0x0 mov r2, #0x10 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x17 mov r1, #0x0 lsl r0, r0, #0x4 @@ -215997,7 +215997,7 @@ _02066676: mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x5b lsl r0, r0, #0x2 ldr r0, [r5, r0] @@ -216014,7 +216014,7 @@ _02066676: lsl r0, r0, #0x2 ldr r0, [r5, r0] bl FUN_020377AC - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0xc] mov r0, #0x5b lsl r0, r0, #0x2 @@ -216216,7 +216216,7 @@ FUN_02066818: ; 0x02066818 bl FUN_0204640C pop {r4, pc} nop -_0206683C: .word FUN_020667D4 + 1 +_0206683C: .word FUN_020667D4 thumb_func_start FUN_02066840 FUN_02066840: ; 0x02066840 @@ -216236,13 +216236,13 @@ FUN_02066840: ; 0x02066840 add r0, r7, #0x0 mov r1, #0x0 mov r2, #0xe4 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_0202398C add r1, r7, #0x0 add r1, #0xa8 mov r2, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r4, #0x0 bl FUN_020239BC add r1, r7, #0x0 @@ -216309,7 +216309,7 @@ _020668FC: ldr r1, [sp, #0x8] mov r2, #0x8 add r1, r1, r5 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x3 @@ -216320,7 +216320,7 @@ _020668FC: add r1, r7, #0x0 add r1, #0xc0 mov r2, #0x8 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, [sp, #0x0] cmp r0, #0x0 bne _02066956 @@ -216366,7 +216366,7 @@ FUN_02066978: ; 0x02066978 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0xec - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 ldrh r2, [r4, #0x6] add r0, #0x8 @@ -216386,7 +216386,7 @@ FUN_020669A0: ; 0x020669A0 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x88 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 ldrh r2, [r4, #0x6] add r0, #0x8 @@ -216423,7 +216423,7 @@ FUN_020669D4: ; 0x020669D4 mov r4, #0x1 lsr r0, r0, #0x1f beq _020669EE - bl FUN_02020C2C + bl ErrorHandling _020669EE: ldrh r1, [r5, #0x4] mov r0, #0x1 @@ -216596,7 +216596,7 @@ FUN_02066ACC: ; 0x02066ACC mov r0, #0x0 add r1, sp, #0x14 mov r2, #0x18 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r5, #0x0 mov r1, #0xaa add r2, sp, #0x14 @@ -216986,7 +216986,7 @@ FUN_02066E74: ; 0x02066E74 cmp r5, #0x0 bne _02066EA0 mov r1, #0x19 - blx FUN_020EBC80 + blx _s32_div_f add r1, r0, #0x1 mov r0, #0x19 mul r0, r1 @@ -217161,7 +217161,7 @@ _02066FFC: add r0, r0, r1 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r4, r0 add r0, #0xa _0206701E: @@ -217183,7 +217183,7 @@ _0206701E: add r0, r0, r1 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x4c] add r0, r5, #0x0 @@ -217211,7 +217211,7 @@ _0206701E: add r0, r0, r1 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x48] add r0, r5, #0x0 @@ -217239,7 +217239,7 @@ _0206701E: add r0, r0, r1 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x44] add r0, r5, #0x0 @@ -217267,7 +217267,7 @@ _0206701E: add r0, r0, r1 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x40] add r0, r5, #0x0 @@ -217295,7 +217295,7 @@ _0206701E: add r0, r0, r1 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r0, #0x5 str r0, [sp, #0x3c] add r0, r5, #0x0 @@ -217383,7 +217383,7 @@ FUN_020671BC: ; 0x020671BC beq _02067204 cmp r0, r1 beq _020671FC - bl FUN_02020C2C + bl ErrorHandling _020671FC: ldrh r1, [r5, #0x4] mov r0, #0x4 @@ -217519,7 +217519,7 @@ FUN_020672BC: ; 0x020672BC beq _020672F8 cmp r0, r1 beq _020672F0 - bl FUN_02020C2C + bl ErrorHandling _020672F0: ldrh r1, [r5, #0x4] mov r0, #0x4 @@ -218294,7 +218294,7 @@ FUN_02067830: ; 0x02067830 beq _02067886 cmp r0, r1 beq _02067870 - bl FUN_02020C2C + bl ErrorHandling _02067870: ldrh r1, [r5, #0x4] mov r0, #0x4 @@ -218452,7 +218452,7 @@ FUN_02067960: ; 0x02067960 beq _020679AA cmp r0, r1 beq _02067994 - bl FUN_02020C2C + bl ErrorHandling _02067994: ldrh r1, [r5, #0x4] mov r0, #0x4 @@ -218715,7 +218715,7 @@ _02067B92: str r1, [r0, #0x0] pop {r4-r7, pc} _02067B9C: - bl FUN_02020C2C + bl ErrorHandling ldr r0, [sp, #0x0] ldrb r1, [r4, #0x0] ldrh r2, [r0, #0x4] @@ -218730,7 +218730,7 @@ _02067B9C: strh r1, [r0, #0x4] pop {r4-r7, pc} _02067BBA: - bl FUN_02020C2C + bl ErrorHandling ldr r0, [sp, #0x0] ldrh r1, [r0, #0x4] mov r0, #0x2 @@ -219369,7 +219369,7 @@ FUN_02068018: ; 0x02068018 beq _02068066 cmp r0, r1 beq _02068058 - bl FUN_02020C2C + bl ErrorHandling _02068058: ldrh r2, [r5, #0x6] add r0, r5, #0x0 @@ -219452,7 +219452,7 @@ _020680E4: strh r1, [r0, #0x0] pop {r3, pc} _020680F2: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} _020680F8: bl FUN_02068100 @@ -220006,7 +220006,7 @@ _020684F2: str r0, [r5, #0x10] pop {r4-r7, pc} _02068500: - bl FUN_02020C2C + bl ErrorHandling _02068504: add sp, #0xc pop {r4-r7, pc} @@ -220039,7 +220039,7 @@ FUN_02068538: ; 0x02068538 add r6, r1, #0x0 cmp r4, #0x0 bne _02068546 - bl FUN_02020C2C + bl ErrorHandling _02068546: cmp r6, #0x20 bhi _0206863A @@ -220207,7 +220207,7 @@ FUN_02068640: ; 0x02068640 push {r4, lr} add r4, r0, #0x0 bne _0206864A - bl FUN_02020C2C + bl ErrorHandling _0206864A: add r0, r4, #0x0 bl FUN_02016A18 @@ -220295,7 +220295,7 @@ FUN_020686F8: ; 0x020686F8 ldr r3, _020686FC ; =FUN_02068700 bx r3 .balign 4 -_020686FC: .word FUN_02068700 + 1 +_020686FC: .word FUN_02068700 thumb_func_start FUN_02068700 FUN_02068700: ; 0x02068700 @@ -220358,7 +220358,7 @@ FUN_0206876C: ; 0x0206876C add r4, r1, #0x0 cmp r5, #0x8 blt _0206877A - bl FUN_02020C2C + bl ErrorHandling _0206877A: add r0, r4, #0x0 mov r1, #0x3 @@ -220374,11 +220374,11 @@ FUN_02068788: ; 0x02068788 add r5, r1, #0x0 cmp r6, #0x8 blt _02068796 - bl FUN_02020C2C + bl ErrorHandling _02068796: cmp r5, #0x65 ble _0206879E - bl FUN_02020C2C + bl ErrorHandling _0206879E: mov r1, #0x65 mov r0, #0x0 @@ -220400,7 +220400,7 @@ FUN_020687C0: ; 0x020687C0 ldr r3, _020687C4 ; =FUN_020687C8 bx r3 .balign 4 -_020687C4: .word FUN_020687C8 + 1 +_020687C4: .word FUN_020687C8 thumb_func_start FUN_020687C8 FUN_020687C8: ; 0x020687C8 @@ -220476,7 +220476,7 @@ FUN_02068854: ; 0x02068854 ldr r3, _02068858 ; =FUN_0206885C bx r3 .balign 4 -_02068858: .word FUN_0206885C + 1 +_02068858: .word FUN_0206885C thumb_func_start FUN_0206885C FUN_0206885C: ; 0x0206885C @@ -220535,7 +220535,7 @@ _020688A2: lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 b _020688E0 @@ -220545,7 +220545,7 @@ _020688CE: lsl r0, r0, #0x10 lsr r0, r0, #0x10 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x10 lsr r1, r0, #0x10 _020688E0: @@ -220647,7 +220647,7 @@ _02068994: mov r0, #0x96 mul r0, r4 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 asr r4, r0, #0x18 _020689AA: @@ -220685,7 +220685,7 @@ FUN_020689E0: ; 0x020689E0 ldr r3, _020689E4 ; =FUN_020689E8 bx r3 .balign 4 -_020689E4: .word FUN_020689E8 + 1 +_020689E4: .word FUN_020689E8 thumb_func_start FUN_020689E8 FUN_020689E8: ; 0x020689E8 @@ -220774,7 +220774,7 @@ FUN_02068A80: ; 0x02068A80 ldr r3, _02068A84 ; =FUN_02068A88 bx r3 .balign 4 -_02068A84: .word FUN_02068A88 + 1 +_02068A84: .word FUN_02068A88 thumb_func_start FUN_02068A88 FUN_02068A88: ; 0x02068A88 @@ -220895,7 +220895,7 @@ FUN_02068B68: ; 0x02068B68 ldr r3, _02068B6C ; =FUN_02068B70 bx r3 .balign 4 -_02068B6C: .word FUN_02068B70 + 1 +_02068B6C: .word FUN_02068B70 thumb_func_start FUN_02068B70 FUN_02068B70: ; 0x02068B70 @@ -221273,7 +221273,7 @@ FUN_02068E14: ; 0x02068E14 ldr r3, _02068E18 ; =FUN_02068E1C bx r3 .balign 4 -_02068E18: .word FUN_02068E1C + 1 +_02068E18: .word FUN_02068E1C thumb_func_start FUN_02068E1C FUN_02068E1C: ; 0x02068E1C @@ -221575,7 +221575,7 @@ FUN_02069010: ; 0x02069010 add r0, sp, #0xc add r1, r4, #0x0 mov r2, #0x14 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add sp, #0x20 pop {r3-r5, pc} .balign 4 @@ -221615,7 +221615,7 @@ _0206906C: add r5, r0, #0x0 cmp r5, #0x3 blt _02069080 - bl FUN_02020C2C + bl ErrorHandling _02069080: lsl r2, r5, #0x1 add r0, sp, #0xc @@ -221670,7 +221670,7 @@ FUN_020690CC: ; 0x020690CC ldr r3, _020690D0 ; =FUN_020690D4 bx r3 .balign 4 -_020690D0: .word FUN_020690D4 + 1 +_020690D0: .word FUN_020690D4 thumb_func_start FUN_020690D4 FUN_020690D4: ; 0x020690D4 @@ -221855,7 +221855,7 @@ _02069216: ldr r0, [sp, #0x1c] mov r1, #0xa ldr r4, [sp, #0x18] - blx FUN_020EBC80 + blx _s32_div_f str r1, [sp, #0x8] _02069246: ldrh r0, [r4, #0x0] @@ -222284,23 +222284,23 @@ FUN_02069558: ; 0x02069558 ldr r0, _020695A0 ; =0x000001EE cmp r4, r0 blo _0206956E - bl FUN_02020C2C + bl ErrorHandling _0206956E: add r0, sp, #0x4 - blx FUN_020D1C94 + blx FS_InitFile ldr r1, _020695A4 ; =0x02105FC8 add r0, sp, #0x4 - blx FUN_020D1944 + blx FS_OpenFile add r0, sp, #0x4 lsl r1, r4, #0x1 mov r2, #0x0 - blx FUN_020D17A0 + blx FS_SeekFile add r0, sp, #0x4 add r1, sp, #0x0 mov r2, #0x2 - blx FUN_020D180C + blx FS_ReadFile add r0, sp, #0x4 - blx FUN_020D18FC + blx FS_CloseFile add r0, sp, #0x0 ldrh r0, [r0, #0x0] add sp, #0x4c @@ -222589,7 +222589,7 @@ FUN_020697CC: ; 0x020697CC ldr r3, _020697D0 ; =FUN_020697D4 bx r3 .balign 4 -_020697D0: .word FUN_020697D4 + 1 +_020697D0: .word FUN_020697D4 thumb_func_start FUN_020697D4 FUN_020697D4: ; 0x020697D4 @@ -222727,7 +222727,7 @@ FUN_020698E0: ; 0x020698E0 ldr r3, _020698E4 ; =FUN_020698E8 bx r3 .balign 4 -_020698E4: .word FUN_020698E8 + 1 +_020698E4: .word FUN_020698E8 thumb_func_start FUN_020698E8 FUN_020698E8: ; 0x020698E8 @@ -222964,7 +222964,7 @@ _02069A8E: mov r0, #0x0 add r1, sp, #0x4 mov r2, #0x18 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 mov r1, #0xaa add r2, sp, #0x4 @@ -223107,7 +223107,7 @@ FUN_02069BC8: ; 0x02069BC8 ldr r3, _02069BCC ; =FUN_02069BD0 bx r3 .balign 4 -_02069BCC: .word FUN_02069BD0 + 1 +_02069BCC: .word FUN_02069BD0 thumb_func_start FUN_02069BD0 FUN_02069BD0: ; 0x02069BD0 @@ -223196,7 +223196,7 @@ FUN_02069C4C: ; 0x02069C4C _02069C70: bl FUN_0201B9EC add r1, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r0, r5, #0x0 add r7, r1, #0x0 bl FUN_0206B9B0 @@ -223378,7 +223378,7 @@ FUN_02069DC8: ; 0x02069DC8 add r7, r0, #0x0 bl FUN_0201B9EC mov r1, #0x3 - blx FUN_020EBC80 + blx _s32_div_f cmp r1, #0x0 bne _02069E70 mov r4, #0x0 @@ -223455,7 +223455,7 @@ FUN_02069E74: ; 0x02069E74 ldr r3, _02069E78 ; =FUN_02069E7C bx r3 .balign 4 -_02069E78: .word FUN_02069E7C + 1 +_02069E78: .word FUN_02069E7C thumb_func_start FUN_02069E7C FUN_02069E7C: ; 0x02069E7C @@ -223477,7 +223477,7 @@ FUN_02069E94: ; 0x02069E94 ldr r3, _02069E98 ; =FUN_02069E9C bx r3 .balign 4 -_02069E98: .word FUN_02069E9C + 1 +_02069E98: .word FUN_02069E9C thumb_func_start FUN_02069E9C FUN_02069E9C: ; 0x02069E9C @@ -223508,7 +223508,7 @@ FUN_02069EC4: ; 0x02069EC4 ldr r3, _02069EC8 ; =FUN_02069ECC bx r3 .balign 4 -_02069EC8: .word FUN_02069ECC + 1 +_02069EC8: .word FUN_02069ECC thumb_func_start FUN_02069ECC FUN_02069ECC: ; 0x02069ECC @@ -223766,7 +223766,7 @@ FUN_0206A094: ; 0x0206A094 bne _0206A12E bl FUN_0201B9EC mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r4, r1, #0x0 add r0, r5, #0x0 mov r1, #0x5 @@ -223839,7 +223839,7 @@ FUN_0206A13C: ; 0x0206A13C ldr r3, _0206A140 ; =FUN_0206A144 bx r3 .balign 4 -_0206A140: .word FUN_0206A144 + 1 +_0206A140: .word FUN_0206A144 thumb_func_start FUN_0206A144 FUN_0206A144: ; 0x0206A144 @@ -223918,7 +223918,7 @@ FUN_0206A1C4: ; 0x0206A1C4 ldr r3, _0206A1C8 ; =FUN_0206A1CC bx r3 .balign 4 -_0206A1C8: .word FUN_0206A1CC + 1 +_0206A1C8: .word FUN_0206A1CC thumb_func_start FUN_0206A1CC FUN_0206A1CC: ; 0x0206A1CC @@ -224122,7 +224122,7 @@ FUN_0206A370: ; 0x0206A370 mov r1, #0x2 bx r3 nop -_0206A37C: .word FUN_020064F0 + 1 +_0206A37C: .word FUN_020064F0 thumb_func_start FUN_0206A380 FUN_0206A380: ; 0x0206A380 @@ -224143,7 +224143,7 @@ FUN_0206A394: ; 0x0206A394 mov r1, #0x22 bx r3 nop -_0206A3A0: .word FUN_020064F0 + 1 +_0206A3A0: .word FUN_020064F0 thumb_func_start FUN_0206A3A4 FUN_0206A3A4: ; 0x0206A3A4 @@ -224176,7 +224176,7 @@ FUN_0206A3D0: ; 0x0206A3D0 ldr r3, _0206A3D4 ; =FUN_0206A3A4 bx r3 .balign 4 -_0206A3D4: .word FUN_0206A3A4 + 1 +_0206A3D4: .word FUN_0206A3A4 thumb_func_start FUN_0206A3D8 FUN_0206A3D8: ; 0x0206A3D8 @@ -225036,7 +225036,7 @@ FUN_0206A92C: ; 0x0206A92C mov r4, #0x1 cmp r5, #0x20 blt _0206A93A - bl FUN_02020C2C + bl ErrorHandling _0206A93A: mov r0, #0x0 cmp r5, #0x0 @@ -225234,7 +225234,7 @@ FUN_0206AA84: ; 0x0206AA84 add r1, sp, #0x0 add r1, #0x1 mov r2, #0x18 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r4, #0x0 mov r1, #0xa1 add r2, sp, #0x0 @@ -225328,7 +225328,7 @@ _0206AB3A: mul r0, r4 mul r0, r5 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f add r0, r4, r0 lsl r0, r0, #0x18 lsr r0, r0, #0x18 @@ -225405,7 +225405,7 @@ FUN_0206ABB4: ; 0x0206ABB4 mov r1, #0x9 bx r3 nop -_0206ABC0: .word FUN_020064F0 + 1 +_0206ABC0: .word FUN_020064F0 thumb_func_start FUN_0206ABC4 FUN_0206ABC4: ; 0x0206ABC4 @@ -225693,7 +225693,7 @@ FUN_0206ADE0: ; 0x0206ADE0 mov r1, #0x39 bx r3 nop -_0206ADEC: .word FUN_020064F0 + 1 +_0206ADEC: .word FUN_020064F0 thumb_func_start FUN_0206ADF0 FUN_0206ADF0: ; 0x0206ADF0 @@ -225703,7 +225703,7 @@ FUN_0206ADF0: ; 0x0206ADF0 mov r1, #0x3a bx r3 nop -_0206ADFC: .word FUN_020064F0 + 1 +_0206ADFC: .word FUN_020064F0 thumb_func_start FUN_0206AE00 FUN_0206AE00: ; 0x0206AE00 @@ -225819,7 +225819,7 @@ _0206AECE: mov r0, #0x1f mul r0, r1 mov r1, #0xff - blx FUN_020EBC80 + blx _s32_div_f add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] @@ -225903,7 +225903,7 @@ _0206AF76: mov r0, #0x1f mul r0, r1 mov r1, #0xff - blx FUN_020EBC80 + blx _s32_div_f add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] @@ -225996,7 +225996,7 @@ _0206B030: mov r0, #0x1f mul r0, r1 mov r1, #0xff - blx FUN_020EBC80 + blx _s32_div_f add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] @@ -226080,7 +226080,7 @@ _0206B0DA: mov r0, #0x1f mul r0, r1 mov r1, #0xff - blx FUN_020EBC80 + blx _s32_div_f add r3, r0, #0x0 mov r0, #0x1 str r0, [sp, #0x0] @@ -226353,7 +226353,7 @@ _0206B2E4: mov r0, #0x1 pop {r3-r7, pc} _0206B2F4: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} @@ -226382,7 +226382,7 @@ _0206B308: bl FUN_02022830 pop {r3, pc} _0206B32A: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} thumb_func_start FUN_0206B330 @@ -226540,7 +226540,7 @@ FUN_0206B428: ; 0x0206B428 bl FUN_02022830 pop {r3, pc} _0206B436: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} thumb_func_start FUN_0206B43C @@ -226553,7 +226553,7 @@ FUN_0206B43C: ; 0x0206B43C ldrb r0, [r1, r0] pop {r3, pc} _0206B44A: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3, pc} nop @@ -226578,7 +226578,7 @@ _0206B464: bl FUN_02022830 pop {r3, pc} _0206B478: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} nop _0206B480: .word 0x000121B4 @@ -226604,7 +226604,7 @@ _0206B492: bl FUN_02021E28 pop {r3, pc} _0206B4A8: - bl FUN_02020C2C + bl ErrorHandling pop {r3, pc} nop _0206B4B0: .word 0x00011EE4 @@ -226670,7 +226670,7 @@ _0206B514: add r0, r4, #0x0 pop {r3-r7, pc} _0206B520: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} @@ -226715,7 +226715,7 @@ _0206B566: add r0, r4, #0x0 pop {r3-r7, pc} _0206B572: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x0 pop {r3-r7, pc} .balign 4 @@ -226750,11 +226750,11 @@ FUN_0206B598: ; 0x0206B598 mvn r0, r0 cmp r4, r0 beq _0206B5B2 - bl FUN_02020C2C + bl ErrorHandling _0206B5B2: cmp r6, #0x1e blo _0206B5BA - bl FUN_02020C2C + bl ErrorHandling _0206B5BA: mov r0, #0x0 mvn r0, r0 @@ -226789,11 +226789,11 @@ FUN_0206B5E4: ; 0x0206B5E4 mvn r0, r0 cmp r4, r0 beq _0206B5FC - bl FUN_02020C2C + bl ErrorHandling _0206B5FC: cmp r6, #0x1e blo _0206B604 - bl FUN_02020C2C + bl ErrorHandling _0206B604: mov r0, #0x0 mvn r0, r0 @@ -226818,7 +226818,7 @@ FUN_0206B620: ; 0x0206B620 add r5, r0, #0x0 cmp r4, #0x8 blo _0206B62E - bl FUN_02020C2C + bl ErrorHandling _0206B62E: ldr r0, _0206B640 ; =0x000121C6 mov r1, #0x1 @@ -226838,7 +226838,7 @@ FUN_0206B644: ; 0x0206B644 add r5, r0, #0x0 cmp r4, #0x8 blo _0206B652 - bl FUN_02020C2C + bl ErrorHandling _0206B652: ldr r0, _0206B664 ; =0x000121C6 ldrb r2, [r5, r0] @@ -227211,7 +227211,7 @@ FUN_0206B8C0: ; 0x0206B8C0 mov r1, #0x6 bx r3 nop -_0206B8C8: .word FUN_0206B8CC + 1 +_0206B8C8: .word FUN_0206B8CC thumb_func_start FUN_0206B8CC FUN_0206B8CC: ; 0x0206B8CC @@ -227220,7 +227220,7 @@ FUN_0206B8CC: ; 0x0206B8CC add r5, r0, #0x0 cmp r6, #0x6 ble _0206B8DA - bl FUN_02020C2C + bl ErrorHandling _0206B8DA: mov r2, #0x59 add r0, r5, #0x0 @@ -227280,22 +227280,22 @@ FUN_0206B938: ; 0x0206B938 add r7, r0, #0x0 add r4, r1, #0x0 bpl _0206B944 - bl FUN_02020C2C + bl ErrorHandling _0206B944: ldr r0, [r7, #0x4] cmp r4, r0 blt _0206B94E - bl FUN_02020C2C + bl ErrorHandling _0206B94E: ldr r0, [r7, #0x0] cmp r4, r0 blt _0206B958 - bl FUN_02020C2C + bl ErrorHandling _0206B958: ldr r0, [r7, #0x4] cmp r0, #0x0 bgt _0206B962 - bl FUN_02020C2C + bl ErrorHandling _0206B962: ldr r0, [r7, #0x4] sub r0, r0, #0x1 @@ -227348,17 +227348,17 @@ FUN_0206B9B0: ; 0x0206B9B0 add r5, r0, #0x0 add r4, r1, #0x0 bpl _0206B9BC - bl FUN_02020C2C + bl ErrorHandling _0206B9BC: ldr r0, [r5, #0x4] cmp r4, r0 blt _0206B9C6 - bl FUN_02020C2C + bl ErrorHandling _0206B9C6: ldr r0, [r5, #0x0] cmp r4, r0 blt _0206B9D0 - bl FUN_02020C2C + bl ErrorHandling _0206B9D0: mov r0, #0xec add r5, #0x8 @@ -227375,17 +227375,17 @@ FUN_0206B9DC: ; 0x0206B9DC add r6, r2, #0x0 cmp r4, #0x0 bge _0206B9EC - bl FUN_02020C2C + bl ErrorHandling _0206B9EC: ldr r0, [r5, #0x4] cmp r4, r0 blt _0206B9F6 - bl FUN_02020C2C + bl ErrorHandling _0206B9F6: ldr r0, [r5, #0x0] cmp r4, r0 blt _0206BA00 - bl FUN_02020C2C + bl ErrorHandling _0206BA00: add r1, r5, #0x0 mov r0, #0xec @@ -227423,31 +227423,31 @@ FUN_0206BA38: ; 0x0206BA38 add r6, r2, #0x0 cmp r5, #0x0 bge _0206BA48 - bl FUN_02020C2C + bl ErrorHandling _0206BA48: ldr r0, [r4, #0x4] cmp r5, r0 blt _0206BA52 - bl FUN_02020C2C + bl ErrorHandling _0206BA52: ldr r0, [r4, #0x0] cmp r5, r0 blt _0206BA5C - bl FUN_02020C2C + bl ErrorHandling _0206BA5C: cmp r6, #0x0 bge _0206BA64 - bl FUN_02020C2C + bl ErrorHandling _0206BA64: ldr r0, [r4, #0x4] cmp r6, r0 blt _0206BA6E - bl FUN_02020C2C + bl ErrorHandling _0206BA6E: ldr r0, [r4, #0x0] cmp r6, r0 blt _0206BA78 - bl FUN_02020C2C + bl ErrorHandling _0206BA78: mov r0, #0x0 mov r1, #0xec @@ -227548,7 +227548,7 @@ FUN_0206BB1C: ; 0x0206BB1C mov r1, #0x2 bx r3 nop -_0206BB24: .word FUN_02022610 + 1 +_0206BB24: .word FUN_02022610 thumb_func_start FUN_0206BB28 FUN_0206BB28: ; 0x0206BB28 @@ -227993,7 +227993,7 @@ FUN_0206BE48: ; 0x0206BE48 add r0, sp, #0x30 mov r1, #0x0 mov r2, #0xc - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [sp, #0x20] mov r7, #0x0 cmp r0, #0x0 @@ -228189,8 +228189,8 @@ FUN_0206BF90: ; 0x0206BF90 pop {r4-r6, pc} nop _0206BFE4: .word 0x020F828C -_0206BFE8: .word FUN_0206C550 + 1 -_0206BFEC: .word FUN_0206C5DC + 1 +_0206BFE8: .word FUN_0206C550 +_0206BFEC: .word FUN_0206C5DC thumb_func_start FUN_0206BFF0 FUN_0206BFF0: ; 0x0206BFF0 @@ -228200,7 +228200,7 @@ FUN_0206BFF0: ; 0x0206BFF0 mov r1, #0xc bx r3 nop -_0206BFFC: .word FUN_0202D8D0 + 1 +_0206BFFC: .word FUN_0202D8D0 _0206C000: .word 0x020F828C thumb_func_start FUN_0206C004 @@ -228213,14 +228213,14 @@ FUN_0206C008: ; 0x0206C008 ldr r3, _0206C00C ; =FUN_02023924 bx r3 .balign 4 -_0206C00C: .word FUN_02023924 + 1 +_0206C00C: .word FUN_02023924 thumb_func_start FUN_0206C010 FUN_0206C010: ; 0x0206C010 ldr r3, _0206C014 ; =FUN_0206B8A4 bx r3 .balign 4 -_0206C014: .word FUN_0206B8A4 + 1 +_0206C014: .word FUN_0206B8A4 thumb_func_start FUN_0206C018 FUN_0206C018: ; 0x0206C018 @@ -229211,21 +229211,21 @@ FUN_0206C700: ; 0x0206C700 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x80 - blx FUN_020CE240 + blx MIi_CpuClearFast bl FUN_020222F0 str r0, [sp, #0x1c] bl FUN_020222E8 add r1, r0, #0x0 ldr r2, [sp, #0x1c] mov r0, #0x0 - blx FUN_020CE1C8 + blx MIi_CpuClear16 bl FUN_02022300 str r0, [sp, #0x20] bl FUN_020222F8 add r1, r0, #0x0 ldr r2, [sp, #0x20] mov r0, #0x0 - blx FUN_020CE1C8 + blx MIi_CpuClear16 ldr r0, [sp, #0x14] str r6, [r4, #0x24] mov r1, #0x5 @@ -229346,7 +229346,7 @@ FUN_0206C700: ; 0x0206C700 ldr r1, [r4, #0x3c] mov r0, #0x0 mov r2, #0x30 - blx FUN_020CE240 + blx MIi_CpuClearFast ldr r1, [sp, #0x38] ldr r0, [r4, #0x3c] str r1, [r0, #0x2c] @@ -229400,7 +229400,7 @@ FUN_0206C700: ; 0x0206C700 pop {r4-r7, pc} nop _0206C8E4: .word 0x0000FFFF -_0206C8E8: .word FUN_0206C8EC + 1 +_0206C8E8: .word FUN_0206C8EC thumb_func_start FUN_0206C8EC FUN_0206C8EC: ; 0x0206C8EC @@ -229898,7 +229898,7 @@ _0206CCCE: lsl r1, r1, #0xe cmp r0, r1 bhi _0206CD16 - bl FUN_02020C2C + bl ErrorHandling _0206CD16: ldr r0, _0206CE24 ; =0x000005F9 bl FUN_020054C8 @@ -231339,7 +231339,7 @@ _0206D8EA: mov r0, #0x0 add r1, sp, #0x8 mov r2, #0x18 - blx FUN_020CE240 + blx MIi_CpuClearFast add r0, r5, #0x0 mov r1, #0xaa add r2, sp, #0x8 @@ -231408,25 +231408,25 @@ _0206D9C6: mov r0, #0x0 lsl r1, r1, #0x18 lsl r2, r2, #0x12 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r1, #0x62 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r1, #0x19 mov r2, #0x1 mov r0, #0x0 lsl r1, r1, #0x16 lsl r2, r2, #0x12 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r1, #0x66 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 - blx FUN_020CE1FC + blx MIi_CpuClear32 ldr r6, _0206DC2C ; =0x020F8328 add r3, sp, #0x2c add r2, r3, #0x0 @@ -231679,7 +231679,7 @@ _0206DC34: .word 0x04000008 _0206DC38: .word 0x020F8338 _0206DC3C: .word 0xFFFF1FFF _0206DC40: .word 0x04001000 -_0206DC44: .word FUN_0206DD08 + 1 +_0206DC44: .word FUN_0206DD08 thumb_func_start FUN_0206DC48 FUN_0206DC48: ; 0x0206DC48 @@ -231843,7 +231843,7 @@ FUN_0206DD6C: ; 0x0206DD6C add sp, #0xc pop {r4-r5, pc} .balign 4 -_0206DDB0: .word FUN_0206DDB4 + 1 +_0206DDB0: .word FUN_0206DDB4 thumb_func_start FUN_0206DDB4 FUN_0206DDB4: ; 0x0206DDB4 @@ -231960,7 +231960,7 @@ FUN_0206DE78: ; 0x0206DE78 add sp, #0x8 pop {r3, pc} .balign 4 -_0206DE90: .word FUN_0206DE94 + 1 +_0206DE90: .word FUN_0206DE94 thumb_func_start FUN_0206DE94 FUN_0206DE94: ; 0x0206DE94 @@ -232043,11 +232043,11 @@ FUN_0206DF18: ; 0x0206DF18 add r5, r0, #0x0 cmp r4, #0x0 bne _0206DF40 - bl FUN_02020C2C + bl ErrorHandling _0206DF40: cmp r5, #0x0 bne _0206DF48 - bl FUN_02020C2C + bl ErrorHandling _0206DF48: bl FUN_02012CC8 pop {r3-r5, pc} @@ -232132,8 +232132,8 @@ _0206DFEC: add sp, #0x8 pop {r4, pc} nop -_0206DFF4: .word FUN_0206DF7C + 1 -_0206DFF8: .word FUN_0206DF98 + 1 +_0206DFF4: .word FUN_0206DF7C +_0206DFF8: .word FUN_0206DF98 thumb_func_start FUN_0206DFFC FUN_0206DFFC: ; 0x0206DFFC @@ -232211,7 +232211,7 @@ FUN_0206E07C: ; 0x0206E07C bl FUN_02016998 add r4, r0, #0x0 bne _0206E090 - bl FUN_02020C2C + bl ErrorHandling _0206E090: ldr r0, [r5, #0x0] ldr r2, [r5, #0x4] @@ -232239,7 +232239,7 @@ FUN_0206E0AC: ; 0x0206E0AC bl FUN_02013440 pop {r4, pc} .balign 4 -_0206E0C4: .word FUN_0206E03C + 1 +_0206E0C4: .word FUN_0206E03C thumb_func_start FUN_0206E0C8 FUN_0206E0C8: ; 0x0206E0C8 @@ -232271,7 +232271,7 @@ FUN_0206E0F0: ; 0x0206E0F0 add r4, r0, #0x0 cmp r4, #0x17 blo _0206E0FC - bl FUN_02020C2C + bl ErrorHandling _0206E0FC: ldr r0, _0206E104 ; =0x020F83E0 lsl r1, r4, #0x2 @@ -232301,7 +232301,7 @@ FUN_0206E114: ; 0x0206E114 add r4, r0, #0x0 cmp r4, #0x17 blo _0206E120 - bl FUN_02020C2C + bl ErrorHandling _0206E120: ldr r0, _0206E128 ; =0x020F843C ldrb r0, [r0, r4] @@ -232434,14 +232434,14 @@ FUN_0206E21C: ; 0x0206E21C ldr r3, _0206E220 ; =FUN_0200C358 bx r3 .balign 4 -_0206E220: .word FUN_0200C358 + 1 +_0206E220: .word FUN_0200C358 thumb_func_start FUN_0206E224 FUN_0206E224: ; 0x0206E224 ldr r3, _0206E228 ; =FUN_0200C368 bx r3 .balign 4 -_0206E228: .word FUN_0200C368 + 1 +_0206E228: .word FUN_0200C368 thumb_func_start FUN_0206E22C FUN_0206E22C: ; 0x0206E22C @@ -232485,7 +232485,7 @@ FUN_0206E270: ; 0x0206E270 ldr r3, _0206E274 ; =FUN_0200C3DC bx r3 .balign 4 -_0206E274: .word FUN_0200C3DC + 1 +_0206E274: .word FUN_0200C3DC thumb_func_start FUN_0206E278 FUN_0206E278: ; 0x0206E278 @@ -232493,7 +232493,7 @@ FUN_0206E278: ; 0x0206E278 add r4, r0, #0x0 cmp r4, #0x3 blo _0206E284 - bl FUN_02020C2C + bl ErrorHandling _0206E284: ldr r0, _0206E28C ; =0x020F83D4 lsl r1, r4, #0x2 @@ -232508,7 +232508,7 @@ FUN_0206E290: ; 0x0206E290 add r4, r0, #0x0 cmp r4, #0x3 blo _0206E29C - bl FUN_02020C2C + bl ErrorHandling _0206E29C: ldr r0, _0206E2A4 ; =0x020F83D0 ldrb r0, [r0, r4] @@ -232552,14 +232552,14 @@ FUN_0206E2E0: ; 0x0206E2E0 ldr r3, _0206E2E4 ; =FUN_0200C358 bx r3 .balign 4 -_0206E2E4: .word FUN_0200C358 + 1 +_0206E2E4: .word FUN_0200C358 thumb_func_start FUN_0206E2E8 FUN_0206E2E8: ; 0x0206E2E8 ldr r3, _0206E2EC ; =FUN_0200C3DC bx r3 .balign 4 -_0206E2EC: .word FUN_0200C3DC + 1 +_0206E2EC: .word FUN_0200C3DC thumb_func_start FUN_0206E2F0 FUN_0206E2F0: ; 0x0206E2F0 @@ -233839,22 +233839,22 @@ _0206EB9C: .word 0x00000774 thumb_func_start FUN_0206EBA0 FUN_0206EBA0: ; 0x0206EBA0 - ldr r3, _0206EBAC ; =FUN_020CE1C8 + ldr r3, _0206EBAC ; =MIi_CpuClear16 add r1, r0, #0x0 mov r0, #0x0 ldr r2, _0206EBB0 ; =0x00000774 bx r3 nop -_0206EBAC: .word FUN_020CE1C8 +_0206EBAC: .word MIi_CpuClear16 _0206EBB0: .word 0x00000774 thumb_func_start FUN_0206EBB4 FUN_0206EBB4: ; 0x0206EBB4 - ldr r3, _0206EBBC ; =FUN_020CE3E0 + ldr r3, _0206EBBC ; =MI_CpuCopy8 ldr r2, _0206EBC0 ; =0x00000774 bx r3 nop -_0206EBBC: .word FUN_020CE3E0 +_0206EBBC: .word MI_CpuCopy8 _0206EBC0: .word 0x00000774 thumb_func_start FUN_0206EBC4 @@ -234668,7 +234668,7 @@ FUN_0206F158: ; 0x0206F158 mov r1, #0x3 bx r3 nop -_0206F160: .word FUN_02022610 + 1 +_0206F160: .word FUN_02022610 thumb_func_start FUN_0206F164 FUN_0206F164: ; 0x0206F164 @@ -234679,7 +234679,7 @@ FUN_0206F164: ; 0x0206F164 mov r0, #0x0 add r1, r4, #0x0 mov r2, #0x24 - blx FUN_020CE1C8 + blx MIi_CpuClear16 add r0, r4, #0x0 pop {r4, pc} @@ -234975,7 +234975,7 @@ _0206F34A: mov r0, #0x36 bl FUN_02211E60 mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem b _0206F380 _0206F366: ldr r0, [r4, #0x0] @@ -235006,14 +235006,14 @@ FUN_0206F38C: ; 0x0206F38C mov r1, #0x0 mov r2, #0x10 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0xb mov r1, #0xc bl FUN_020169D8 mov r1, #0x0 mov r2, #0xc str r0, [r4, #0x0] - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 pop {r4, pc} .balign 4 @@ -235032,7 +235032,7 @@ FUN_0206F3B8: ; 0x0206F3B8 bl FUN_0204640C pop {r4, pc} nop -_0206F3D4: .word FUN_0206F1F0 + 1 +_0206F3D4: .word FUN_0206F1F0 thumb_func_start FUN_0206F3D8 FUN_0206F3D8: ; 0x0206F3D8 @@ -235050,7 +235050,7 @@ FUN_0206F3D8: ; 0x0206F3D8 bl FUN_0204640C pop {r3-r5, pc} nop -_0206F3F8: .word FUN_0206F1F0 + 1 +_0206F3F8: .word FUN_0206F1F0 thumb_func_start FUN_0206F3FC FUN_0206F3FC: ; 0x0206F3FC @@ -235241,7 +235241,7 @@ _0206F598: .word 0x04001000 _0206F59C: .word 0x00000B25 _0206F5A0: .word 0x000005A4 _0206F5A4: .word 0x000005C8 -_0206F5A8: .word FUN_0206FB58 + 1 +_0206F5A8: .word FUN_0206FB58 thumb_func_start FUN_0206F5AC FUN_0206F5AC: ; 0x0206F5AC @@ -240428,7 +240428,7 @@ _02071F18: .balign 4 _02071F1C: .word 0x000005A4 _02071F20: .word 0x00000B25 -_02071F24: .word FUN_02075CE4 + 1 +_02071F24: .word FUN_02075CE4 thumb_func_start FUN_02071F28 FUN_02071F28: ; 0x02071F28 @@ -241070,9 +241070,9 @@ _02072470: .word 0x00000B25 _02072474: .word 0x00000712 _02072478: .word 0x000005A4 _0207247C: .word 0x000005C8 -_02072480: .word FUN_02074428 + 1 +_02072480: .word FUN_02074428 _02072484: .word 0x00000B18 -_02072488: .word FUN_02074454 + 1 +_02072488: .word FUN_02074454 thumb_func_start FUN_0207248C FUN_0207248C: ; 0x0207248C @@ -242791,7 +242791,7 @@ FUN_0207322C: ; 0x0207322C pop {r3-r4, pc} nop _0207326C: .word 0x000005A4 -_02073270: .word FUN_0207327C + 1 +_02073270: .word FUN_0207327C _02073274: .word 0x000006A4 _02073278: .word 0x00000B24 @@ -243850,7 +243850,7 @@ FUN_02073B0C: ; 0x02073B0C bx r3 .balign 4 _02073B34: .word 0x0000071E -_02073B38: .word FUN_0200C6E4 + 1 +_02073B38: .word FUN_0200C6E4 thumb_func_start FUN_02073B3C FUN_02073B3C: ; 0x02073B3C @@ -244666,9 +244666,9 @@ FUN_020741A4: ; 0x020741A4 nop _020741EC: .word 0x000006FC _020741F0: .word 0x000006F8 -_020741F4: .word FUN_02074200 + 1 +_020741F4: .word FUN_02074200 _020741F8: .word 0x00000B18 -_020741FC: .word FUN_02074278 + 1 +_020741FC: .word FUN_02074278 thumb_func_start FUN_02074200 FUN_02074200: ; 0x02074200 @@ -244746,9 +244746,9 @@ FUN_02074278: ; 0x02074278 mov r0, #0x14 pop {r4, pc} nop -_0207429C: .word FUN_020742A8 + 1 +_0207429C: .word FUN_020742A8 _020742A0: .word 0x00000B18 -_020742A4: .word FUN_02074340 + 1 +_020742A4: .word FUN_02074340 thumb_func_start FUN_020742A8 FUN_020742A8: ; 0x020742A8 @@ -244925,9 +244925,9 @@ _0207440C: .word 0x00000B25 _02074410: .word 0x00000712 _02074414: .word 0x000006F8 _02074418: .word 0x000005A4 -_0207441C: .word FUN_02074428 + 1 +_0207441C: .word FUN_02074428 _02074420: .word 0x00000B18 -_02074424: .word FUN_02074454 + 1 +_02074424: .word FUN_02074454 thumb_func_start FUN_02074428 FUN_02074428: ; 0x02074428 @@ -246681,7 +246681,7 @@ FUN_02075244: ; 0x02075244 bx r3 nop _02075254: .word 0x000005A4 -_02075258: .word FUN_020751A0 + 1 +_02075258: .word FUN_020751A0 thumb_func_start FUN_0207525C FUN_0207525C: ; 0x0207525C @@ -246694,7 +246694,7 @@ FUN_0207525C: ; 0x0207525C bx r3 nop _0207526C: .word 0x000005A4 -_02075270: .word FUN_020751A0 + 1 +_02075270: .word FUN_020751A0 thumb_func_start FUN_02075274 FUN_02075274: ; 0x02075274 @@ -246707,7 +246707,7 @@ FUN_02075274: ; 0x02075274 bx r3 nop _02075284: .word 0x000005A4 -_02075288: .word FUN_020751A0 + 1 +_02075288: .word FUN_020751A0 thumb_func_start FUN_0207528C FUN_0207528C: ; 0x0207528C @@ -246720,7 +246720,7 @@ FUN_0207528C: ; 0x0207528C bx r3 nop _0207529C: .word 0x000005A4 -_020752A0: .word FUN_020751A0 + 1 +_020752A0: .word FUN_020751A0 thumb_func_start FUN_020752A4 FUN_020752A4: ; 0x020752A4 @@ -246733,7 +246733,7 @@ FUN_020752A4: ; 0x020752A4 bx r3 nop _020752B4: .word 0x000005A4 -_020752B8: .word FUN_020751A0 + 1 +_020752B8: .word FUN_020751A0 thumb_func_start FUN_020752BC FUN_020752BC: ; 0x020752BC @@ -246746,7 +246746,7 @@ FUN_020752BC: ; 0x020752BC bx r3 nop _020752CC: .word 0x000005A4 -_020752D0: .word FUN_020751A0 + 1 +_020752D0: .word FUN_020751A0 thumb_func_start FUN_020752D4 FUN_020752D4: ; 0x020752D4 @@ -246759,7 +246759,7 @@ FUN_020752D4: ; 0x020752D4 bx r3 nop _020752E4: .word 0x000005A4 -_020752E8: .word FUN_020751A0 + 1 +_020752E8: .word FUN_020751A0 thumb_func_start FUN_020752EC FUN_020752EC: ; 0x020752EC @@ -246772,7 +246772,7 @@ FUN_020752EC: ; 0x020752EC bx r3 nop _020752FC: .word 0x000005A4 -_02075300: .word FUN_020751A0 + 1 +_02075300: .word FUN_020751A0 thumb_func_start FUN_02075304 FUN_02075304: ; 0x02075304 @@ -246785,7 +246785,7 @@ FUN_02075304: ; 0x02075304 bx r3 nop _02075314: .word 0x000005A4 -_02075318: .word FUN_020751A0 + 1 +_02075318: .word FUN_020751A0 thumb_func_start FUN_0207531C FUN_0207531C: ; 0x0207531C @@ -246798,7 +246798,7 @@ FUN_0207531C: ; 0x0207531C bx r3 nop _0207532C: .word 0x000005A4 -_02075330: .word FUN_020751A0 + 1 +_02075330: .word FUN_020751A0 thumb_func_start FUN_02075334 FUN_02075334: ; 0x02075334 @@ -246811,7 +246811,7 @@ FUN_02075334: ; 0x02075334 bx r3 nop _02075344: .word 0x000005A4 -_02075348: .word FUN_020751A0 + 1 +_02075348: .word FUN_020751A0 thumb_func_start FUN_0207534C FUN_0207534C: ; 0x0207534C @@ -246824,7 +246824,7 @@ FUN_0207534C: ; 0x0207534C bx r3 nop _0207535C: .word 0x000005A4 -_02075360: .word FUN_020751A0 + 1 +_02075360: .word FUN_020751A0 thumb_func_start FUN_02075364 FUN_02075364: ; 0x02075364 @@ -246837,7 +246837,7 @@ FUN_02075364: ; 0x02075364 bx r3 nop _02075374: .word 0x000005A4 -_02075378: .word FUN_020751A0 + 1 +_02075378: .word FUN_020751A0 thumb_func_start FUN_0207537C FUN_0207537C: ; 0x0207537C @@ -246893,7 +246893,7 @@ FUN_020753B4: ; 0x020753B4 ldr r0, _020754AC ; =0x00000708 ldrh r0, [r1, r0] mov r1, #0x5 - blx FUN_020EBC80 + blx _s32_div_f ldr r1, _020754B0 ; =0x00000B28 strh r0, [r4, r1] sub r0, r1, #0x3 @@ -247949,11 +247949,11 @@ _02075CCA: pop {r4, pc} .balign 4 _02075CCC: .word 0x000005A4 -_02075CD0: .word FUN_0207640C + 1 +_02075CD0: .word FUN_0207640C _02075CD4: .word 0x00000B14 -_02075CD8: .word FUN_02075D20 + 1 -_02075CDC: .word FUN_02075DC0 + 1 -_02075CE0: .word FUN_02075F60 + 1 +_02075CD8: .word FUN_02075D20 +_02075CDC: .word FUN_02075DC0 +_02075CE0: .word FUN_02075F60 thumb_func_start FUN_02075CE4 FUN_02075CE4: ; 0x02075CE4 @@ -248053,7 +248053,7 @@ _02075DA8: .word 0x000005A4 _02075DAC: .word 0x00000B25 _02075DB0: .word 0x0000070E _02075DB4: .word 0x000005EC -_02075DB8: .word FUN_02075CE4 + 1 +_02075DB8: .word FUN_02075CE4 _02075DBC: .word 0x00000B14 thumb_func_start FUN_02075DC0 @@ -248239,7 +248239,7 @@ _02075F34: _02075F4C: .word 0x000005A4 _02075F50: .word 0x00000B25 _02075F54: .word 0x0000070E -_02075F58: .word FUN_02075CE4 + 1 +_02075F58: .word FUN_02075CE4 _02075F5C: .word 0x00000B14 thumb_func_start FUN_02075F60 @@ -248380,7 +248380,7 @@ _02076084: .word 0x00000B25 _02076088: .word 0x00000706 _0207608C: .word 0x0000070E _02076090: .word 0xFFFFF000 -_02076094: .word FUN_020760A0 + 1 +_02076094: .word FUN_020760A0 _02076098: .word 0x00000B14 _0207609C: .word 0x000005EC @@ -248457,7 +248457,7 @@ _0207612C: _02076130: .word 0x000005A4 _02076134: .word 0x00000B25 _02076138: .word 0x00000706 -_0207613C: .word FUN_02075CE4 + 1 +_0207613C: .word FUN_02075CE4 _02076140: .word 0x00000B14 thumb_func_start FUN_02076144 @@ -248783,7 +248783,7 @@ _020763D6: _020763DC: .word 0x00000B22 _020763E0: .word 0x00000B25 _020763E4: .word 0x0000069C -_020763E8: .word FUN_02075CE4 + 1 +_020763E8: .word FUN_02075CE4 _020763EC: .word 0x00000B14 _020763F0: .word 0x000005A4 _020763F4: .word 0x0000070E @@ -248994,9 +248994,9 @@ _020765D0: .word 0x00000706 _020765D4: .word 0x00000708 _020765D8: .word 0x0000070E _020765DC: .word 0xFFFFF000 -_020765E0: .word FUN_020760A0 + 1 +_020765E0: .word FUN_020760A0 _020765E4: .word 0x00000B14 -_020765E8: .word FUN_020765EC + 1 +_020765E8: .word FUN_020765EC thumb_func_start FUN_020765EC FUN_020765EC: ; 0x020765EC @@ -249308,9 +249308,9 @@ _02076874: .word 0x000005DC _02076878: .word 0x000005A4 _0207687C: .word 0x0000FFFE _02076880: .word 0x0000069C -_02076884: .word FUN_02076950 + 1 +_02076884: .word FUN_02076950 _02076888: .word 0x00000B18 -_0207688C: .word FUN_020769A4 + 1 +_0207688C: .word FUN_020769A4 thumb_func_start FUN_02076890 FUN_02076890: ; 0x02076890 @@ -249390,7 +249390,7 @@ _020768E6: mov r0, #0x14 pop {r3-r5, pc} nop -_0207693C: .word FUN_020765EC + 1 +_0207693C: .word FUN_020765EC _02076940: .word 0x00000B14 _02076944: .word 0x000005A4 _02076948: .word 0x0000069C @@ -249470,9 +249470,9 @@ FUN_020769A4: ; 0x020769A4 pop {r3-r5, pc} .balign 4 _020769EC: .word 0x0000069C -_020769F0: .word FUN_020769FC + 1 +_020769F0: .word FUN_020769FC _020769F4: .word 0x00000B18 -_020769F8: .word FUN_02076A48 + 1 +_020769F8: .word FUN_02076A48 thumb_func_start FUN_020769FC FUN_020769FC: ; 0x020769FC @@ -249545,9 +249545,9 @@ FUN_02076A48: ; 0x02076A48 pop {r3-r5, pc} .balign 4 _02076A90: .word 0x0000069C -_02076A94: .word FUN_02076950 + 1 +_02076A94: .word FUN_02076950 _02076A98: .word 0x00000B18 -_02076A9C: .word FUN_020769A4 + 1 +_02076A9C: .word FUN_020769A4 thumb_func_start FUN_02076AA0 FUN_02076AA0: ; 0x02076AA0 @@ -249783,9 +249783,9 @@ _02076C78: .word 0x000005A4 _02076C7C: .word 0x00000B25 _02076C80: .word 0x0000069C _02076C84: .word 0x00000B22 -_02076C88: .word FUN_02076DD4 + 1 +_02076C88: .word FUN_02076DD4 _02076C8C: .word 0x00000B18 -_02076C90: .word FUN_02076E28 + 1 +_02076C90: .word FUN_02076E28 thumb_func_start FUN_02076C94 FUN_02076C94: ; 0x02076C94 @@ -250004,9 +250004,9 @@ FUN_02076E28: ; 0x02076E28 pop {r3-r5, pc} .balign 4 _02076E70: .word 0x0000069C -_02076E74: .word FUN_02076E80 + 1 +_02076E74: .word FUN_02076E80 _02076E78: .word 0x00000B18 -_02076E7C: .word FUN_02076ED4 + 1 +_02076E7C: .word FUN_02076ED4 thumb_func_start FUN_02076E80 FUN_02076E80: ; 0x02076E80 @@ -250082,9 +250082,9 @@ FUN_02076ED4: ; 0x02076ED4 pop {r3-r5, pc} .balign 4 _02076F1C: .word 0x0000069C -_02076F20: .word FUN_02076DD4 + 1 +_02076F20: .word FUN_02076DD4 _02076F24: .word 0x00000B18 -_02076F28: .word FUN_02076E28 + 1 +_02076F28: .word FUN_02076E28 thumb_func_start FUN_02076F2C FUN_02076F2C: ; 0x02076F2C @@ -250722,7 +250722,7 @@ _02077490: nop _02077498: .word 0xFFFFE0FF _0207749C: .word 0x04001000 -_020774A0: .word FUN_02077AE8 + 1 +_020774A0: .word FUN_02077AE8 _020774A4: .word 0x000004C4 _020774A8: .word 0x021C4918 _020774AC: .word 0x000004B8 @@ -251128,7 +251128,7 @@ FUN_020777D4: ; 0x020777D4 bne _020777FE bl FUN_0201B9EC mov r1, #0x12 - blx FUN_020EBC80 + blx _s32_div_f mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r5, r0] @@ -251140,7 +251140,7 @@ _020777FE: bne _0207781A bl FUN_0201B9EC mov r1, #0x12 - blx FUN_020EBC80 + blx _s32_div_f mov r0, #0x17 lsl r0, r0, #0x4 ldr r0, [r5, r0] @@ -251464,11 +251464,11 @@ FUN_02077AC4: ; 0x02077AC4 ldr r0, [r4, #0x18] cmp r0, #0x0 bne _02077AD2 - bl FUN_02020C2C + bl ErrorHandling _02077AD2: cmp r4, #0x0 bne _02077ADA - bl FUN_02020C2C + bl ErrorHandling _02077ADA: ldr r0, [r4, #0x18] bl FUN_02021A20 @@ -251798,7 +251798,7 @@ _02077D88: mov r0, #0x1 add r1, #0xd8 mov r2, #0x40 - blx FUN_020CE1C8 + blx MIi_CpuClear16 ldr r0, [r4, #0x0] cmp r0, #0x1 bne _02077DCE @@ -252365,7 +252365,7 @@ _0207818C: mov r1, #0x2 ldr r0, [r5, r0] lsl r1, r1, #0x8 - blx FUN_020CC15C + blx DC_FlushRange bl FUN_0206B888 add r1, r0, #0x0 mov r0, #0x13 @@ -252378,7 +252378,7 @@ _0207818C: add r0, r1, #0x4 ldr r0, [r5, r0] mov r1, #0x80 - blx FUN_020CC15C + blx DC_FlushRange _02078272: mov r3, #0x1 str r3, [sp, #0x0] @@ -252708,7 +252708,7 @@ _020784FA: pop {r4-r7, pc} nop _02078528: .word 0x020FA1D4 -_0207852C: .word FUN_02078328 + 1 +_0207852C: .word FUN_02078328 thumb_func_start FUN_02078530 FUN_02078530: ; 0x02078530 @@ -253140,7 +253140,7 @@ _0207887E: nop _02078884: .word 0x020F9D2C _02078888: .word 0x000E0F00 -_0207888C: .word FUN_02078628 + 1 +_0207888C: .word FUN_02078628 _02078890: .word 0x0000069B thumb_func_start FUN_02078894 @@ -254046,7 +254046,7 @@ FUN_02078FA0: ; 0x02078FA0 bl FUN_02078F7C mov r1, #0x2 lsl r1, r1, #0xa - blx FUN_020CC15C + blx DC_FlushRange add r7, r6, #0x0 mov r4, #0x0 add r7, #0x30 @@ -254062,7 +254062,7 @@ _02078FD0: mov r1, #0x1 add r0, r5, #0x0 lsl r1, r1, #0x8 - blx FUN_020CC15C + blx DC_FlushRange ldr r1, _02079070 ; =0x020F9D28 mov r2, #0x1 ldrb r1, [r1, r4] @@ -254102,7 +254102,7 @@ _02079012: bl FUN_02078F7C mov r1, #0x80 add r7, r0, #0x0 - blx FUN_020CC15C + blx DC_FlushRange ldr r1, _02079078 ; =0x020F9D40 lsl r2, r5, #0x2 ldr r1, [r1, r2] @@ -255843,7 +255843,7 @@ _02079DA0: .word 0xFFFFE0FF _02079DA4: .word 0x04001000 _02079DA8: .word 0xFFFF1FFF _02079DAC: .word 0x0000069C -_02079DB0: .word FUN_02079F24 + 1 +_02079DB0: .word FUN_02079F24 thumb_func_start FUN_02079DB4 FUN_02079DB4: ; 0x02079DB4 @@ -259829,7 +259829,7 @@ FUN_0207BD84: ; 0x0207BD84 bl FUN_0206AB18 bl FUN_02083114 mov r1, #0xa - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r0, #0x18 asr r6, r0, #0x18 mov r4, #0x0 @@ -261582,7 +261582,7 @@ FUN_0207CBC0: ; 0x0207CBC0 .balign 4 _0207CBDC: .word 0x0000068D _0207CBE0: .word 0x0000042C -_0207CBE4: .word FUN_0200C6E4 + 1 +_0207CBE4: .word FUN_0200C6E4 thumb_func_start FUN_0207CBE8 FUN_0207CBE8: ; 0x0207CBE8 @@ -261769,7 +261769,7 @@ _0207CD3E: mov r1, #0xa ldrb r0, [r4, r0] add r0, r0, #0x1 - blx FUN_020EBC80 + blx _s32_div_f ldr r0, _0207CE44 ; =0x00000693 strb r1, [r4, r0] b _0207CDE8 @@ -262584,7 +262584,7 @@ FUN_0207D3C4: ; 0x0207D3C4 nop _0207D3E8: .word 0x00000697 _0207D3EC: .word 0x00000514 -_0207D3F0: .word FUN_0200C6E4 + 1 +_0207D3F0: .word FUN_0200C6E4 thumb_func_start FUN_0207D3F4 FUN_0207D3F4: ; 0x0207D3F4 @@ -268668,7 +268668,7 @@ _0208064C: add r0, r7, #0x0 _02080654: mov r1, #0x5 - blx FUN_020EBC80 + blx _s32_div_f mov r2, #0xa add r6, r5, #0x0 mul r6, r2 @@ -269399,14 +269399,14 @@ FUN_02080C38: ; 0x02080C38 mov r1, #0x0 mov r2, #0x8 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r1, _02080C5C ; =FUN_02080C60 add r0, r5, #0x0 add r2, r4, #0x0 bl FUN_0204640C pop {r3-r5, pc} nop -_02080C5C: .word FUN_02080C60 + 1 +_02080C5C: .word FUN_02080C60 thumb_func_start FUN_02080C60 FUN_02080C60: ; 0x02080C60 @@ -269479,7 +269479,7 @@ _02080CB4: bl FUN_02027E24 str r0, [sp, #0x18] ldr r0, [r6, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x1c] add r0, sp, #0x4 bl FUN_02081214 @@ -269594,7 +269594,7 @@ _02080DD4: str r0, [r4, #0x4] b _02080DF2 _02080DE2: - bl FUN_02020C2C + bl ErrorHandling _02080DE6: add r0, r4, #0x0 bl FUN_02016A18 @@ -269623,7 +269623,7 @@ FUN_02080E0C: ; 0x02080E0C mov r1, #0x0 mov r2, #0x8 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _02080E50 ; =0x00000121 str r6, [r4, #0x0] ldrb r0, [r6, r0] @@ -269647,8 +269647,8 @@ _02080E42: pop {r4-r6, pc} nop _02080E50: .word 0x00000121 -_02080E54: .word FUN_02080E5C + 1 -_02080E58: .word FUN_02081000 + 1 +_02080E54: .word FUN_02080E5C +_02080E58: .word FUN_02081000 thumb_func_start FUN_02080E5C FUN_02080E5C: ; 0x02080E5C @@ -269845,7 +269845,7 @@ _02080FC0: str r0, [r4, #0x4] b _02080FDC _02080FCE: - bl FUN_02020C2C + bl ErrorHandling _02080FD2: add r0, r4, #0x0 bl FUN_02016A18 @@ -270095,7 +270095,7 @@ _02081196: str r0, [r4, #0x4] b _020811B4 _020811A4: - bl FUN_02020C2C + bl ErrorHandling _020811A8: add r0, r4, #0x0 bl FUN_02016A18 @@ -270124,7 +270124,7 @@ FUN_020811D8: ; 0x020811D8 ldr r2, _02081204 ; =0x000019C4 mov r1, #0x0 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _02081208 ; =0x00000123 mov r1, #0x0 strb r1, [r4, r0] @@ -270145,7 +270145,7 @@ FUN_0208120C: ; 0x0208120C ldr r3, _02081210 ; =FUN_02016A18 bx r3 .balign 4 -_02081210: .word FUN_02016A18 + 1 +_02081210: .word FUN_02016A18 thumb_func_start FUN_02081214 FUN_02081214: ; 0x02081214 @@ -270607,7 +270607,7 @@ _020815A6: add r6, r0, #0x0 b _020815BA _020815B6: - bl FUN_02020C2C + bl ErrorHandling _020815BA: cmp r6, #0x0 beq _020815CA @@ -270639,7 +270639,7 @@ FUN_020815D0: ; 0x020815D0 mov r1, #0x0 mov r2, #0x28 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, _02081658 ; =0x00000123 ldrb r1, [r5, r0] lsl r1, r1, #0x2 @@ -271255,7 +271255,7 @@ _02081A8A: ldr r1, _02081D30 ; =0x00000585 ldr r0, [r4, r0] add r1, r4, r1 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0xc bl FUN_02031588 ldr r0, _02081D2C ; =0x00000584 @@ -271695,7 +271695,7 @@ _02081DEC: bl FUN_0202DFA4 add r7, r0, #0x0 bne _02081DFA - bl FUN_02020C2C + bl ErrorHandling _02081DFA: add r0, r7, #0x0 bl FUN_02023A88 @@ -271722,7 +271722,7 @@ _02081E1E: bl FUN_0202DFA4 add r7, r0, #0x0 bne _02081E2C - bl FUN_02020C2C + bl ErrorHandling _02081E2C: add r0, r7, #0x0 bl FUN_02023A9C @@ -271787,14 +271787,14 @@ _02081EA4: .word 0x00000171 _02081EA8: .word 0x00001999 _02081EAC: .word 0x0000199A _02081EB0: .word 0x00000122 -_02081EB4: .word FUN_02081680 + 1 +_02081EB4: .word FUN_02081680 thumb_func_start FUN_02081EB8 FUN_02081EB8: ; 0x02081EB8 ldr r3, _02081EBC ; =FUN_02081EC0 bx r3 .balign 4 -_02081EBC: .word FUN_02081EC0 + 1 +_02081EBC: .word FUN_02081EC0 thumb_func_start FUN_02081EC0 FUN_02081EC0: ; 0x02081EC0 @@ -271819,7 +271819,7 @@ FUN_02081ED4: ; 0x02081ED4 ldr r0, [r4, r0] cmp r0, #0x0 beq _02081EE6 - bl FUN_02020C2C + bl ErrorHandling _02081EE6: ldr r0, _02081F00 ; =0x00000176 mov r1, #0x0 @@ -271834,7 +271834,7 @@ _02081EE6: pop {r4, pc} nop _02081F00: .word 0x00000176 -_02081F04: .word FUN_02081F08 + 1 +_02081F04: .word FUN_02081F08 thumb_func_start FUN_02081F08 FUN_02081F08: ; 0x02081F08 @@ -272219,7 +272219,7 @@ FUN_020821B4: ; 0x020821B4 bx r3 .balign 4 _020821BC: .word 0x00000123 -_020821C0: .word FUN_020832DC + 1 +_020821C0: .word FUN_020832DC thumb_func_start FUN_020821C4 FUN_020821C4: ; 0x020821C4 @@ -272298,14 +272298,14 @@ FUN_0208223C: ; 0x0208223C bx r3 .balign 4 _02082244: .word 0x00000171 -_02082248: .word FUN_020833D4 + 1 +_02082248: .word FUN_020833D4 thumb_func_start FUN_0208224C FUN_0208224C: ; 0x0208224C ldr r3, _02082250 ; =FUN_02083404 bx r3 .balign 4 -_02082250: .word FUN_02083404 + 1 +_02082250: .word FUN_02083404 thumb_func_start FUN_02082254 FUN_02082254: ; 0x02082254 @@ -272379,7 +272379,7 @@ _020822C8: add r0, #0x31 b _020822D6 _020822D0: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r5, pc} _020822D6: lsl r0, r0, #0x18 @@ -272577,7 +272577,7 @@ _02082412: _02082414: cmp r4, #0x64 bne _0208241C - bl FUN_02020C2C + bl ErrorHandling _0208241C: ldr r0, _02082440 ; =0x0000198C ldr r0, [r5, r0] @@ -272606,7 +272606,7 @@ FUN_02082444: ; 0x02082444 ldr r0, [r5, r0] cmp r0, #0x0 beq _02082456 - bl FUN_02020C2C + bl ErrorHandling _02082456: mov r0, #0x4 mov r1, #0x10 @@ -272614,7 +272614,7 @@ _02082456: mov r1, #0x0 mov r2, #0x10 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r6, #0x0 bl FUN_020832E4 strb r0, [r4, #0xc] @@ -272693,7 +272693,7 @@ _020824F4: .word 0x020FBBAC _020824F8: .word 0x020FBB90 _020824FC: .word 0x020FBB98 _02082500: .word 0x020FBBA0 -_02082504: .word FUN_0208251C + 1 +_02082504: .word FUN_0208251C thumb_func_start FUN_02082508 FUN_02082508: ; 0x02082508 @@ -273128,7 +273128,7 @@ FUN_02082878: ; 0x02082878 ldr r3, _0208287C ; =FUN_0201B9EC bx r3 .balign 4 -_0208287C: .word FUN_0201B9EC + 1 +_0208287C: .word FUN_0201B9EC thumb_func_start FUN_02082880 FUN_02082880: ; 0x02082880 @@ -273370,7 +273370,7 @@ _02082A26: ldr r0, [sp, #0x8] cmp r6, r0 bge _02082A30 - bl FUN_02020C2C + bl ErrorHandling _02082A30: mov r0, #0x0 str r0, [sp, #0x10] @@ -273402,7 +273402,7 @@ _02082A5A: ldr r0, [sp, #0x4] bl FUN_02082878 ldr r1, [sp, #0x10] - blx FUN_020EBC80 + blx _s32_div_f mov r3, #0x0 cmp r6, #0x0 ble _02082AA2 @@ -273446,7 +273446,7 @@ _02082AB0: ldr r0, [sp, #0x4] bl FUN_02082878 add r1, r6, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r2, r0, #0x10 ldrb r3, [r5, r2] @@ -273507,7 +273507,7 @@ _02082B16: ldr r0, [sp, #0x4] bl FUN_02082878 ldr r1, [sp, #0x8] - blx FUN_020EBC80 + blx _s32_div_f add r0, r4, r1 lsl r0, r0, #0x10 lsr r2, r0, #0x10 @@ -273528,7 +273528,7 @@ _02082B44: _02082B4E: cmp r6, #0x4 bhs _02082B56 - bl FUN_02020C2C + bl ErrorHandling _02082B56: mov r6, #0x0 mov r7, #0x30 @@ -273692,7 +273692,7 @@ _02082C66: ldrb r2, [r0, #0x0] b _02082C74 _02082C6E: - bl FUN_02020C2C + bl ErrorHandling mov r2, #0x0 _02082C74: mov r0, #0x54 @@ -273950,7 +273950,7 @@ FUN_02082E64: ; 0x02082E64 ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02082E98 - bl FUN_02020C2C + bl ErrorHandling _02082E98: add r1, sp, #0x14 ldrh r0, [r1, #0x0] @@ -274153,7 +274153,7 @@ _0208300A: strb r1, [r0, r4] cmp r5, #0x2 bhs _0208301A - bl FUN_02020C2C + bl ErrorHandling _0208301A: ldr r2, [sp, #0x4] mov r3, #0x0 @@ -274185,12 +274185,12 @@ _0208301E: blt _0208301E cmp r4, #0x1 bhs _02083058 - bl FUN_02020C2C + bl ErrorHandling _02083058: ldr r0, [sp, #0x4] bl FUN_02082878 add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f lsl r0, r1, #0x10 lsr r1, r0, #0x10 ldr r0, [sp, #0x10] @@ -274283,7 +274283,7 @@ FUN_02083114: ; 0x02083114 add r4, r0, #0x0 cmp r4, #0x18 blo _02083120 - bl FUN_02020C2C + bl ErrorHandling _02083120: mov r0, #0x1a add r1, r4, #0x0 @@ -274302,7 +274302,7 @@ FUN_02083130: ; 0x02083130 add r6, r2, #0x0 cmp r5, #0x18 blo _02083140 - bl FUN_02020C2C + bl ErrorHandling _02083140: mov r0, #0x1a add r1, r5, #0x0 @@ -274324,7 +274324,7 @@ FUN_0208315C: ; 0x0208315C add r4, r0, #0x0 cmp r4, #0x18 blo _02083168 - bl FUN_02020C2C + bl ErrorHandling _02083168: add r4, #0x2d add r0, r4, #0x0 @@ -274340,7 +274340,7 @@ FUN_02083170: ; 0x02083170 add r6, r3, #0x0 cmp r4, #0x18 blo _02083182 - bl FUN_02020C2C + bl ErrorHandling _02083182: cmp r7, #0x4 bhi _0208319C @@ -274505,7 +274505,7 @@ FUN_02083298: ; 0x02083298 mov r1, #0x2 bx r3 nop -_020832A0: .word FUN_020832A4 + 1 +_020832A0: .word FUN_020832A4 thumb_func_start FUN_020832A4 FUN_020832A4: ; 0x020832A4 @@ -274761,7 +274761,7 @@ _02083448: add r0, #0x8a pop {r3, pc} _0208344C: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x7a pop {r3, pc} @@ -274778,7 +274778,7 @@ FUN_02083454: ; 0x02083454 _02083464: bl FUN_0201B9EC mov r1, #0xc - blx FUN_020EBC80 + blx _s32_div_f add sp, #0xc add r0, r1, #0x0 pop {r4-r5, pc} @@ -274786,7 +274786,7 @@ _02083474: add r0, sp, #0x0 add r1, r4, #0x0 mov r2, #0xc - blx FUN_020CE34C + blx MI_CpuFill8 mov r1, #0x2 add r0, sp, #0x0 strb r1, [r0, #0x0] @@ -274823,7 +274823,7 @@ _020834A6: _020834BE: bl FUN_0201B9EC add r1, r4, #0x0 - blx FUN_020EBC80 + blx _s32_div_f add r0, sp, #0x0 ldrb r0, [r0, r1] add sp, #0xc @@ -274837,7 +274837,7 @@ FUN_020834D0: ; 0x020834D0 mov r1, #0x10 bx r3 nop -_020834DC: .word FUN_0202D8D0 + 1 +_020834DC: .word FUN_0202D8D0 _020834E0: .word 0x020FBED8 thumb_func_start FUN_020834E4 @@ -274849,7 +274849,7 @@ FUN_020834E4: ; 0x020834E4 add r4, r1, #0x0 cmp r2, r0 blt _020834F6 - bl FUN_02020C2C + bl ErrorHandling _020834F6: ldr r0, _02083500 ; =0x00000985 add r1, r4, r0 @@ -274916,21 +274916,21 @@ _0208354A: add r4, r1, r0 b _0208355E _02083558: - bl FUN_02020C2C + bl ErrorHandling pop {r3-r7, pc} _0208355E: mov r0, #0x2 lsl r0, r0, #0x8 cmp r6, r0 ble _0208356A - bl FUN_02020C2C + bl ErrorHandling _0208356A: ldr r0, _0208359C ; =0x00000A11 add r7, r4, r0 ldrb r0, [r7, r5] cmp r0, #0x0 beq _02083578 - bl FUN_02020C2C + bl ErrorHandling _02083578: mov r1, #0x21 lsl r1, r1, #0x4 @@ -274939,7 +274939,7 @@ _02083578: add r1, r2, r1 ldr r0, [sp, #0x0] add r2, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x1 strb r0, [r7, r5] pop {r3-r7, pc} @@ -274974,7 +274974,7 @@ FUN_020835B0: ; 0x020835B0 lsl r1, r6, #0x8 add r1, r2, r1 add r2, r5, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r2, _02083628 ; =0x00000584 ldrb r0, [r4, r2] add r0, r0, #0x1 @@ -275096,7 +275096,7 @@ FUN_02083694: ; 0x02083694 add r0, r5, #0x0 lsl r1, r1, #0x2 ldr r1, [r4, r1] - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _020836B8 ; =0x00000584 ldrb r1, [r4, r0] add r1, r1, #0x1 @@ -275119,7 +275119,7 @@ FUN_020836BC: ; 0x020836BC add r0, r7, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x1b add r1, r5, #0x0 add r2, r4, #0x1 @@ -275153,7 +275153,7 @@ _02083710: ldr r1, [r4, #0x0] add r0, r0, r5 add r2, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r7, r7, #0x1 add r4, r4, #0x4 add r5, r5, r6 @@ -275190,7 +275190,7 @@ _02083758: ldr r0, [r5, #0x0] add r1, r1, r4 add r2, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r7, r7, #0x1 add r4, r4, r6 add r5, r5, #0x4 @@ -275225,7 +275225,7 @@ FUN_0208378C: ; 0x0208378C add r5, #0x10 mul r3, r2 add r1, r5, r3 - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _020837B0 ; =0x00000584 ldrb r1, [r4, r0] add r1, r1, #0x1 @@ -275246,7 +275246,7 @@ FUN_020837B4: ; 0x020837B4 add r0, r6, #0x0 add r1, r4, #0x0 mov r2, #0x30 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r0, r4, #0x0 add r0, #0x30 strb r5, [r0, #0x0] @@ -275281,7 +275281,7 @@ _02083802: add r0, r6, r0 add r1, r5, #0x0 add r2, r7, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x3 @@ -275316,7 +275316,7 @@ _02083848: add r0, r5, #0x0 add r1, r6, r1 add r2, r7, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r4, r4, #0x1 add r5, #0x8 cmp r4, #0x3 @@ -275381,7 +275381,7 @@ FUN_020838B4: ; 0x020838B4 add r0, sp, #0x0 add r1, r4, #0x4 mov r2, #0x10 - blx FUN_020CE3E0 + blx MI_CpuCopy8 strb r5, [r4, #0x0] mov r0, #0x10 strb r0, [r4, #0x1] @@ -275418,7 +275418,7 @@ FUN_02083904: ; 0x02083904 add r1, r4, r1 add r1, #0xf8 ldr r1, [r1, #0x0] - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _0208392C ; =0x00000584 ldrb r1, [r4, r0] add r1, r1, #0x1 @@ -275441,7 +275441,7 @@ FUN_02083930: ; 0x02083930 add r0, r7, #0x0 add r1, r5, #0x0 add r2, r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x20 add r1, r5, #0x0 add r2, r4, #0x1 @@ -275472,7 +275472,7 @@ FUN_02083970: ; 0x02083970 lsl r0, r0, #0xa cmp r1, r0 blt _0208398C - bl FUN_02020C2C + bl ErrorHandling _0208398C: mov r7, #0x0 ldr r4, [sp, #0x4] @@ -275484,7 +275484,7 @@ _02083992: ldr r1, [r1, #0x0] add r0, r0, r5 add r2, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r7, r7, #0x1 add r4, r4, #0x4 add r5, r5, r6 @@ -275515,7 +275515,7 @@ FUN_020839C0: ; 0x020839C0 str r0, [sp, #0x0] cmp r0, r1 blt _020839DE - bl FUN_02020C2C + bl ErrorHandling _020839DE: ldr r0, _02083A18 ; =0x00000585 mov r7, #0x0 @@ -275527,7 +275527,7 @@ _020839E8: ldr r0, [r5, #0x0] add r1, r1, r4 add r2, r6, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 add r7, r7, #0x1 add r4, r4, r6 add r5, r5, #0x4 @@ -275557,7 +275557,7 @@ FUN_02083A1C: ; 0x02083A1C add r0, r2, #0x0 add r1, r3, r1 add r2, r4, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 pop {r4, pc} nop _02083A30: .word 0x000019A0 @@ -275645,7 +275645,7 @@ FUN_02083AA8: ; 0x02083AA8 mov r1, #0x57 lsl r1, r1, #0x2 ldr r1, [r3, r1] - blx FUN_020CE3E0 + blx MI_CpuCopy8 ldr r0, _02083AD0 ; =0x00000584 ldrb r1, [r4, r0] add r1, r1, #0x1 @@ -275669,7 +275669,7 @@ FUN_02083AD4: ; 0x02083AD4 add r0, r6, #0x0 add r1, r4, #0x0 add r2, r5, #0x0 - blx FUN_020CE3E0 + blx MI_CpuCopy8 _02083AF4: mov r0, #0x24 add r1, r4, #0x0 @@ -275728,7 +275728,7 @@ FUN_02083B48: ; 0x02083B48 add r0, r6, #0x0 add r1, r4, #0x0 mov r2, #0x6 - blx FUN_020CE3E0 + blx MI_CpuCopy8 mov r0, #0x25 add r1, r4, #0x0 mov r2, #0x7 @@ -275755,7 +275755,7 @@ FUN_02083B84: ; 0x02083B84 mov r1, #0xb bx r3 nop -_02083B90: .word FUN_0202D8D0 + 1 +_02083B90: .word FUN_0202D8D0 _02083B94: .word 0x020FBF98 thumb_func_start FUN_02083B98 @@ -275964,7 +275964,7 @@ FUN_02083CD8: ; 0x02083CD8 add r0, r6, #0x0 add r1, r3, r1 sub r2, r2, #0x4 - blx FUN_020CE28C + blx MIi_CpuCopyFast mov r0, #0x4 str r0, [r4, #0x54] mov r0, #0x0 @@ -276027,7 +276027,7 @@ FUN_02083D48: ; 0x02083D48 mov r1, #0x6c bx r3 nop -_02083D54: .word FUN_0202D8D0 + 1 +_02083D54: .word FUN_0202D8D0 _02083D58: .word 0x020FC01C thumb_func_start FUN_02083D5C @@ -276054,14 +276054,14 @@ FUN_02083D5C: ; 0x02083D5C mov r2, #0x19 add r0, r5, #0x0 lsl r2, r2, #0x4 - blx FUN_020CE28C + blx MIi_CpuCopyFast b _02083D9C _02083D90: add r2, r4, r2 add r1, r2, r1 add r0, r5, #0x0 sub r2, r3, #0x4 - blx FUN_020CE28C + blx MIi_CpuCopyFast _02083D9C: mov r1, #0xb5 ldr r0, _02083DE8 ; =0x000043D0 @@ -276070,7 +276070,7 @@ _02083D9C: ldr r1, [r4, r1] add r0, r4, r0 lsl r2, r2, #0x6 - blx FUN_020CE28C + blx MIi_CpuCopyFast mov r0, #0xb2 lsl r0, r0, #0x2 add r0, r4, r0 @@ -276171,7 +276171,7 @@ FUN_02083E4C: ; 0x02083E4C mov r0, #0x0 add r1, r4, r1 lsl r2, r2, #0x6 - blx FUN_020CE240 + blx MIi_CpuClearFast bl FUN_02031190 cmp r0, #0x0 bne _02083E8A @@ -276375,7 +276375,7 @@ FUN_02083FDC: ; 0x02083FDC bl FUN_02031190 cmp r0, #0x0 beq _02083FEE - bl FUN_02020C2C + bl ErrorHandling _02083FEE: bl FUN_02031190 cmp r0, #0x0 @@ -276426,7 +276426,7 @@ FUN_0208402C: ; 0x0208402C add r0, r1, r0 ldr r1, _02084078 ; =0x00007C10 add r1, r5, r1 - blx FUN_020CE28C + blx MIi_CpuCopyFast ldr r0, _02084078 ; =0x00007C10 mov r2, #0x0 add r1, r2, #0x0 @@ -276482,7 +276482,7 @@ FUN_02084098: ; 0x02084098 mov r1, #0x6c bx r3 nop -_020840A4: .word FUN_0202D8D0 + 1 +_020840A4: .word FUN_0202D8D0 _020840A8: .word 0x020FC52C thumb_func_start FUN_020840AC @@ -278531,7 +278531,7 @@ _020850BE: mov r0, #0x96 mul r0, r1 mov r1, #0x64 - blx FUN_020EBC80 + blx _s32_div_f str r0, [sp, #0x18] _020850EC: add r0, r5, #0x0 @@ -278743,21 +278743,21 @@ FUN_02085258: ; 0x02085258 mov r0, #0x44 bx r3 .balign 4 -_02085260: .word FUN_02006670 + 1 +_02085260: .word FUN_02006670 thumb_func_start FUN_02085264 FUN_02085264: ; 0x02085264 ldr r3, _02085268 ; =FUN_02006704 bx r3 .balign 4 -_02085268: .word FUN_02006704 + 1 +_02085268: .word FUN_02006704 thumb_func_start FUN_0208526C FUN_0208526C: ; 0x0208526C ldr r3, _02085270 ; =FUN_020066F4 bx r3 .balign 4 -_02085270: .word FUN_020066F4 + 1 +_02085270: .word FUN_020066F4 thumb_func_start FUN_02085274 FUN_02085274: ; 0x02085274 @@ -278768,7 +278768,7 @@ FUN_02085274: ; 0x02085274 mov r0, #0x44 bx r3 .balign 4 -_02085280: .word FUN_0200650C + 1 +_02085280: .word FUN_0200650C thumb_func_start FUN_02085284 FUN_02085284: ; 0x02085284 @@ -278776,7 +278776,7 @@ FUN_02085284: ; 0x02085284 sub r0, #0x95 bx r3 nop -_0208528C: .word FUN_02085274 + 1 +_0208528C: .word FUN_02085274 thumb_func_start FUN_02085290 FUN_02085290: ; 0x02085290 @@ -278906,7 +278906,7 @@ FUN_02085338: ; 0x02085338 strb r0, [r4, #0x2] add r0, r6, #0x0 strb r1, [r4, #0x3] - bl FUN_02023900 + bl LoadPlayerDataAddress bl FUN_02025084 str r0, [r4, #0x8] cmp r5, #0x2 @@ -278937,7 +278937,7 @@ FUN_020853A8: ; 0x020853A8 ldr r3, _020853AC ; =FUN_02016A18 bx r3 .balign 4 -_020853AC: .word FUN_02016A18 + 1 +_020853AC: .word FUN_02016A18 thumb_func_start FUN_020853B0 FUN_020853B0: ; 0x020853B0 @@ -279013,7 +279013,7 @@ FUN_020853FC: ; 0x020853FC add r1, r2, #0x0 bx r3 .balign 4 -_02085408: .word FUN_02013960 + 1 +_02085408: .word FUN_02013960 thumb_func_start FUN_0208540C FUN_0208540C: ; 0x0208540C @@ -279176,7 +279176,7 @@ FUN_020854E0: ; 0x020854E0 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [sp, #0x0] strb r0, [r4, #0xf] ldr r0, [sp, #0x4] @@ -279214,7 +279214,7 @@ FUN_02085538: ; 0x02085538 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 strh r0, [r4, #0x0] str r5, [r4, #0x8] @@ -279244,7 +279244,7 @@ FUN_02085578: ; 0x02085578 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 strh r0, [r4, #0x0] str r5, [r4, #0x10] @@ -279271,7 +279271,7 @@ FUN_020855B0: ; 0x020855B0 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 strh r0, [r4, #0x0] add r0, r7, #0x0 @@ -279431,7 +279431,7 @@ FUN_020856F0: ; 0x020856F0 mov r1, #0x0 mov r2, #0x34 add r6, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x0 strh r0, [r6, #0x0] add r0, r4, #0x0 @@ -279569,14 +279569,14 @@ FUN_020857F8: ; 0x020857F8 mov r1, #0x0 mov r2, #0x1c add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r1, #0x28 str r1, [r4, #0x0] ldr r0, [r5, #0x14] bl FUN_020856F0 str r0, [r4, #0x10] ldr r0, [r5, #0x10] - bl FUN_02023900 + bl LoadPlayerDataAddress ldr r1, [r4, #0x10] str r0, [r1, #0x4] ldrh r0, [r5, #0x0] @@ -280186,7 +280186,7 @@ FUN_02085D6C: ; 0x02085D6C ldr r0, [r4, #0x0] cmp r0, r1 bge _02085D7C - bl FUN_02020C2C + bl ErrorHandling mov r1, #0x0 _02085D7C: lsl r0, r1, #0x2 @@ -280312,7 +280312,7 @@ _02085E48: beq _02085E5A cmp r0, #0x1 beq _02085E60 - bl FUN_02020C2C + bl ErrorHandling _02085E5A: mov r0, #0x5 str r0, [r6, #0x14] @@ -280447,7 +280447,7 @@ _02085F5E: str r0, [r4, #0x8] blx FUN_020DF4A4 add r0, r5, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress ldr r1, [r4, #0x8] str r0, [r1, #0x24] ldr r0, [r4, #0x8] @@ -280465,7 +280465,7 @@ _02085F5E: bl FUN_0204640C pop {r4-r6, pc} nop -_02085FA8: .word FUN_02085DA4 + 1 +_02085FA8: .word FUN_02085DA4 thumb_func_start FUN_02085FAC FUN_02085FAC: ; 0x02085FAC @@ -280474,7 +280474,7 @@ FUN_02085FAC: ; 0x02085FAC ldr r0, _02085FC8 ; =0x0000032A cmp r4, r0 blo _02085FBA - bl FUN_02020C2C + bl ErrorHandling _02085FBA: mov r0, #0xa add r1, r4, #0x0 @@ -280493,7 +280493,7 @@ FUN_02085FD0: ; 0x02085FD0 ldr r0, _02085FEC ; =0x0000032A cmp r4, r0 blo _02085FDE - bl FUN_02020C2C + bl ErrorHandling _02085FDE: mov r0, #0xa add r1, r4, #0x0 @@ -280512,7 +280512,7 @@ FUN_02085FF4: ; 0x02085FF4 ldr r0, _02086010 ; =0x0000032A cmp r4, r0 blo _02086002 - bl FUN_02020C2C + bl ErrorHandling _02086002: mov r0, #0xa add r1, r4, #0x0 @@ -280531,7 +280531,7 @@ FUN_02086018: ; 0x02086018 ldr r0, _02086034 ; =0x0000032A cmp r4, r0 blo _02086026 - bl FUN_02020C2C + bl ErrorHandling _02086026: mov r0, #0xa add r1, r4, #0x0 @@ -280550,7 +280550,7 @@ FUN_0208603C: ; 0x0208603C ldr r0, _02086058 ; =0x0000032A cmp r4, r0 blo _0208604A - bl FUN_02020C2C + bl ErrorHandling _0208604A: mov r0, #0xa add r1, r4, #0x0 @@ -280569,7 +280569,7 @@ FUN_02086060: ; 0x02086060 ldr r0, _0208607C ; =0x0000032A cmp r4, r0 blo _0208606E - bl FUN_02020C2C + bl ErrorHandling _0208606E: mov r0, #0xa add r1, r4, #0x0 @@ -280669,7 +280669,7 @@ FUN_02086084: ; 0x02086084 mov r0, #0x1 pop {r3-r5, pc} nop -_02086164: .word FUN_02086664 + 1 +_02086164: .word FUN_02086664 thumb_func_start FUN_02086168 FUN_02086168: ; 0x02086168 @@ -280893,7 +280893,7 @@ _0208633A: add r7, r0, #0x0 add r0, r6, #0x0 bl FUN_020377AC - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [sp, #0x0] mov r0, #0xb mov r1, #0x1 @@ -280985,7 +280985,7 @@ _020863F2: bl FUN_0204640C pop {r3-r5, pc} .balign 4 -_02086410: .word FUN_02086280 + 1 +_02086410: .word FUN_02086280 thumb_func_start FUN_02086414 FUN_02086414: ; 0x02086414 @@ -281044,7 +281044,7 @@ FUN_02086468: ; 0x02086468 add sp, #0x8 pop {r3, pc} nop -_02086484: .word FUN_02086488 + 1 +_02086484: .word FUN_02086488 thumb_func_start FUN_02086488 FUN_02086488: ; 0x02086488 @@ -281127,11 +281127,11 @@ FUN_0208650C: ; 0x0208650C add r5, r0, #0x0 cmp r4, #0x0 bne _02086534 - bl FUN_02020C2C + bl ErrorHandling _02086534: cmp r5, #0x0 bne _0208653C - bl FUN_02020C2C + bl ErrorHandling _0208653C: bl FUN_02012CC8 pop {r3-r5, pc} @@ -281160,25 +281160,25 @@ _0208655C: mov r0, #0x0 lsl r1, r1, #0x18 lsl r2, r2, #0x12 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r1, #0x62 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r1, #0x19 mov r2, #0x1 mov r0, #0x0 lsl r1, r1, #0x16 lsl r2, r2, #0x12 - blx FUN_020CE1FC + blx MIi_CpuClear32 mov r1, #0x66 mov r2, #0x2 mov r0, #0x0 lsl r1, r1, #0x14 lsl r2, r2, #0x10 - blx FUN_020CE1FC + blx MIi_CpuClear32 ldr r5, _02086654 ; =0x020FCE24 add r3, sp, #0x1c add r2, r3, #0x0 @@ -281796,8 +281796,8 @@ _02086AB8: add sp, #0x8 pop {r4, pc} nop -_02086AC0: .word FUN_02086A48 + 1 -_02086AC4: .word FUN_02086A64 + 1 +_02086AC0: .word FUN_02086A48 +_02086AC4: .word FUN_02086A64 thumb_func_start FUN_02086AC8 FUN_02086AC8: ; 0x02086AC8 @@ -281871,7 +281871,7 @@ FUN_02086B40: ; 0x02086B40 bl FUN_02016998 add r4, r0, #0x0 bne _02086B54 - bl FUN_02020C2C + bl ErrorHandling _02086B54: ldr r0, [r5, #0x0] ldr r2, [r5, #0x4] @@ -281899,7 +281899,7 @@ FUN_02086B70: ; 0x02086B70 bl FUN_02013440 pop {r4, pc} .balign 4 -_02086B88: .word FUN_02086B08 + 1 +_02086B88: .word FUN_02086B08 thumb_func_start FUN_02086B8C FUN_02086B8C: ; 0x02086B8C @@ -281919,7 +281919,7 @@ FUN_02086BA0: ; 0x02086BA0 ldr r3, _02086BA4 ; =FUN_02016A18 bx r3 .balign 4 -_02086BA4: .word FUN_02016A18 + 1 +_02086BA4: .word FUN_02016A18 thumb_func_start FUN_02086BA8 FUN_02086BA8: ; 0x02086BA8 @@ -282296,7 +282296,7 @@ FUN_02086E48: ; 0x02086E48 bl FUN_0200BBF0 cmp r0, #0x0 bne _02086EB2 - bl FUN_02020C2C + bl ErrorHandling _02086EB2: ldr r0, [r4, #0x4c] ldr r1, [r4, #0x48] @@ -282304,7 +282304,7 @@ _02086EB2: bl FUN_0200BF60 cmp r0, #0x0 bne _02086EC4 - bl FUN_02020C2C + bl ErrorHandling _02086EC4: add sp, #0x4c pop {r3-r6, pc} @@ -282408,7 +282408,7 @@ FUN_02086F8C: ; 0x02086F8C ldr r0, [r0, #0x68] bx r3 nop -_02086F94: .word FUN_02007534 + 1 +_02086F94: .word FUN_02007534 thumb_func_start FUN_02086F98 FUN_02086F98: ; 0x02086F98 @@ -282418,7 +282418,7 @@ FUN_02086F98: ; 0x02086F98 mov r1, #0x6 bx r3 nop -_02086FA4: .word FUN_02007558 + 1 +_02086FA4: .word FUN_02007558 thumb_func_start FUN_02086FA8 FUN_02086FA8: ; 0x02086FA8 @@ -282874,7 +282874,7 @@ _02087322: str r0, [r4, #0x5c] b _02087486 _0208735C: - bl FUN_02020C2C + bl ErrorHandling b _02087486 _02087362: bl FUN_02005670 @@ -283746,7 +283746,7 @@ FUN_02087A38: ; 0x02087A38 add r4, r0, #0x0 cmp r4, #0x6 blt _02087A44 - bl FUN_02020C2C + bl ErrorHandling _02087A44: ldr r0, _02087A4C ; =0x020FD13C ldrb r0, [r0, r4] @@ -283792,7 +283792,7 @@ FUN_02087A84: ; 0x02087A84 push {r4, lr} add r4, r0, #0x0 bne _02087A8E - bl FUN_02020C2C + bl ErrorHandling _02087A8E: add r0, r4, #0x0 bl FUN_02016A18 @@ -283807,17 +283807,17 @@ FUN_02087A98: ; 0x02087A98 add r4, r2, #0x0 cmp r5, #0x0 bne _02087AA8 - bl FUN_02020C2C + bl ErrorHandling _02087AA8: ldr r0, [r5, #0x0] cmp r0, #0x0 beq _02087AB2 - bl FUN_02020C2C + bl ErrorHandling _02087AB2: ldr r0, [r5, #0x4] cmp r0, #0x0 beq _02087ABC - bl FUN_02020C2C + bl ErrorHandling _02087ABC: add r0, r4, #0x0 bl FUN_02087C18 @@ -283862,12 +283862,12 @@ FUN_02087B0C: ; 0x02087B0C ldr r0, [r4, #0x0] cmp r0, #0x0 bne _02087B1A - bl FUN_02020C2C + bl ErrorHandling _02087B1A: ldr r0, [r4, #0x4] cmp r0, #0x0 bne _02087B24 - bl FUN_02020C2C + bl ErrorHandling _02087B24: ldr r0, [r4, #0x0] bl FUN_02016A18 @@ -283897,12 +283897,12 @@ FUN_02087B58: ; 0x02087B58 add r4, r1, #0x0 cmp r5, #0x0 bne _02087B66 - bl FUN_02020C2C + bl ErrorHandling _02087B66: ldr r0, [r5, #0x0] cmp r0, #0x0 bne _02087B70 - bl FUN_02020C2C + bl ErrorHandling _02087B70: ldr r1, [r5, #0x0] lsl r0, r4, #0x2 @@ -283916,12 +283916,12 @@ FUN_02087B78: ; 0x02087B78 add r4, r1, #0x0 cmp r5, #0x0 bne _02087B86 - bl FUN_02020C2C + bl ErrorHandling _02087B86: ldr r0, [r5, #0x4] cmp r0, #0x0 bne _02087B90 - bl FUN_02020C2C + bl ErrorHandling _02087B90: ldr r1, [r5, #0x4] lsl r0, r4, #0x2 @@ -283935,12 +283935,12 @@ FUN_02087B98: ; 0x02087B98 add r4, r1, #0x0 cmp r5, #0x0 bne _02087BA6 - bl FUN_02020C2C + bl ErrorHandling _02087BA6: ldr r0, [r5, #0x8] cmp r0, #0x0 bne _02087BB0 - bl FUN_02020C2C + bl ErrorHandling _02087BB0: ldr r1, [r5, #0x8] lsl r0, r4, #0x1 @@ -283954,12 +283954,12 @@ FUN_02087BB8: ; 0x02087BB8 add r4, r1, #0x0 cmp r5, #0x0 bne _02087BC6 - bl FUN_02020C2C + bl ErrorHandling _02087BC6: ldr r0, [r5, #0xc] cmp r0, #0x0 bne _02087BD0 - bl FUN_02020C2C + bl ErrorHandling _02087BD0: ldr r1, [r5, #0xc] lsl r0, r4, #0x1 @@ -283973,12 +283973,12 @@ FUN_02087BD8: ; 0x02087BD8 add r4, r1, #0x0 cmp r5, #0x0 bne _02087BE6 - bl FUN_02020C2C + bl ErrorHandling _02087BE6: ldr r0, [r5, #0x10] cmp r0, #0x0 bne _02087BF0 - bl FUN_02020C2C + bl ErrorHandling _02087BF0: ldr r1, [r5, #0x10] lsl r0, r4, #0x1 @@ -283992,12 +283992,12 @@ FUN_02087BF8: ; 0x02087BF8 add r4, r1, #0x0 cmp r5, #0x0 bne _02087C06 - bl FUN_02020C2C + bl ErrorHandling _02087C06: ldr r0, [r5, #0x14] cmp r0, #0x0 bne _02087C10 - bl FUN_02020C2C + bl ErrorHandling _02087C10: ldr r1, [r5, #0x14] lsl r0, r4, #0x1 @@ -284144,7 +284144,7 @@ FUN_02087D00: ; 0x02087D00 mov r1, #0x0 lsl r2, r2, #0x2 add r7, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_02028048 str r0, [r7, #0x8] @@ -284158,7 +284158,7 @@ FUN_02087D00: ; 0x02087D00 bl FUN_0206F158 str r0, [r7, #0x14] add r0, r4, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r7, #0x18] add r0, r5, #0x0 bl FUN_02027E5C @@ -284263,7 +284263,7 @@ FUN_02087E14: ; 0x02087E14 ldr r3, _02087E18 ; =FUN_02016A18 bx r3 .balign 4 -_02087E18: .word FUN_02016A18 + 1 +_02087E18: .word FUN_02016A18 thumb_func_start FUN_02087E1C FUN_02087E1C: ; 0x02087E1C @@ -284303,7 +284303,7 @@ FUN_02087E40: ; 0x02087E40 mov r1, #0x0 mov r2, #0x18 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x2c str r0, [r4, #0x0] str r5, [r4, #0xc] @@ -284469,7 +284469,7 @@ _02087F86: mov r1, #0x0 mov r2, #0x40 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r0, [r5, #0xc] mov r1, #0x0 ldr r0, [r0, #0x10] @@ -284610,7 +284610,7 @@ FUN_020880A0: ; 0x020880A0 mov r1, #0x0 mov r2, #0xc add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r1, [r5, #0xc] ldrb r0, [r1, #0x1] lsl r0, r0, #0x3 @@ -284924,7 +284924,7 @@ FUN_02088320: ; 0x02088320 mov r1, #0x0 lsl r2, r2, #0x2 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 str r6, [r4, #0x0] cmp r5, #0x10 bls _0208834A @@ -284953,7 +284953,7 @@ FUN_02088360: ; 0x02088360 add r0, r4, #0x0 mov r1, #0x0 lsl r2, r2, #0x2 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r4, #0x0 bl FUN_02016A18 pop {r4, pc} @@ -285048,7 +285048,7 @@ _02088402: ldr r0, [r0, r2] mov r1, #0x0 mov r2, #0x4 - blx FUN_020CE34C + blx MI_CpuFill8 add sp, #0xc pop {r4-r7, pc} .balign 4 @@ -285094,7 +285094,7 @@ FUN_02088484: ; 0x02088484 ldr r0, [r0, #0x10] bx r3 nop -_0208848C: .word FUN_0201FDEC + 1 +_0208848C: .word FUN_0201FDEC thumb_func_start FUN_02088490 FUN_02088490: ; 0x02088490 @@ -285110,7 +285110,7 @@ FUN_02088490: ; 0x02088490 str r0, [sp, #0x3c] cmp r0, #0x0 bge _020884B4 - bl FUN_02020C2C + bl ErrorHandling add sp, #0x70 mov r0, #0x0 pop {r3-r7, pc} @@ -285121,7 +285121,7 @@ _020884B4: str r0, [sp, #0x38] mov r1, #0x0 mov r2, #0x8 - blx FUN_020CE34C + blx MI_CpuFill8 ldr r1, [sp, #0x3c] ldr r0, [sp, #0x38] strh r1, [r0, #0x0] @@ -285305,7 +285305,7 @@ _02088612: bl FUN_02020248 b _02088656 _02088652: - bl FUN_02020C2C + bl ErrorHandling _02088656: ldr r0, [sp, #0x38] str r4, [r0, #0x4] @@ -285396,7 +285396,7 @@ FUN_020886CC: ; 0x020886CC ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02088704 - bl FUN_02020C2C + bl ErrorHandling _02088704: ldr r0, [r5, #0x4] cmp r0, #0x0 @@ -285447,7 +285447,7 @@ _02088734: ldr r0, [r0, #0x0] cmp r0, #0x0 bne _02088768 - bl FUN_02020C2C + bl ErrorHandling _02088768: add r4, r4, #0x1 add r6, r6, #0x4 @@ -285485,7 +285485,7 @@ _02088780: ldr r0, [r0, r4] cmp r0, #0x0 bne _020887B4 - bl FUN_02020C2C + bl ErrorHandling _020887B4: ldr r0, [r6, #0x0] ldr r0, [r0, r4] @@ -285560,7 +285560,7 @@ FUN_0208881C: ; 0x0208881C mov r1, #0x6c bx r3 nop -_02088828: .word FUN_0202D8D0 + 1 +_02088828: .word FUN_0202D8D0 _0208882C: .word 0x020FD1C4 thumb_func_start FUN_02088830 @@ -285611,7 +285611,7 @@ FUN_02088858: ; 0x02088858 mov r1, #0x2 bx r3 .balign 4 -_02088860: .word FUN_02005FDC + 1 +_02088860: .word FUN_02005FDC _02088864: .word 0x00000004 thumb_func_start FUN_02088868 @@ -285620,7 +285620,7 @@ FUN_02088868: ; 0x02088868 ldr r0, _02088874 ; =0x00000004 bx r3 nop -_02088870: .word FUN_02005F60 + 1 +_02088870: .word FUN_02005F60 _02088874: .word 0x00000004 thumb_func_start FUN_02088878 @@ -285630,7 +285630,7 @@ FUN_02088878: ; 0x02088878 mov r1, #0x2 bx r3 .balign 4 -_02088880: .word FUN_02005FDC + 1 +_02088880: .word FUN_02005FDC _02088884: .word 0x0000000D thumb_func_start FUN_02088888 @@ -285639,7 +285639,7 @@ FUN_02088888: ; 0x02088888 ldr r0, _02088894 ; =0x0000000D bx r3 nop -_02088890: .word FUN_02005F60 + 1 +_02088890: .word FUN_02005F60 _02088894: .word 0x0000000D thumb_func_start FUN_02088898 @@ -285653,7 +285653,7 @@ FUN_02088898: ; 0x02088898 bl FUN_02088888 bl FUN_02088868 mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem pop {r4, pc} .balign 4 @@ -285664,7 +285664,7 @@ FUN_020888BC: ; 0x020888BC mov r1, #0x2 bx r3 .balign 4 -_020888C4: .word FUN_02005FDC + 1 +_020888C4: .word FUN_02005FDC _020888C8: .word 0x0000004F thumb_func_start FUN_020888CC @@ -285673,7 +285673,7 @@ FUN_020888CC: ; 0x020888CC ldr r0, _020888D8 ; =0x0000004F bx r3 nop -_020888D4: .word FUN_02005F60 + 1 +_020888D4: .word FUN_02005F60 _020888D8: .word 0x0000004F thumb_func_start FUN_020888DC @@ -285693,7 +285693,7 @@ FUN_020888DC: ; 0x020888DC mov r0, #0x31 bl FUN_020168D0 mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem mov r0, #0x1 pop {r4, pc} .balign 4 @@ -285710,7 +285710,7 @@ FUN_0208890C: ; 0x0208890C add r4, r0, #0x0 mov r1, #0x0 mov r2, #0x20 - blx FUN_020CE34C + blx MI_CpuFill8 str r5, [r4, #0xc] add r0, r5, #0x0 bl FUN_02028048 @@ -285722,7 +285722,7 @@ FUN_0208890C: ; 0x0208890C bl FUN_0206F158 str r0, [r4, #0x14] add r0, r5, #0x0 - bl FUN_02023900 + bl LoadPlayerDataAddress str r0, [r4, #0x18] str r7, [r4, #0x1c] str r6, [r4, #0x4] @@ -285736,7 +285736,7 @@ FUN_02088950: ; 0x02088950 ldr r1, _0208895C ; =0x020FD6E4 bx r3 .balign 4 -_02088958: .word FUN_020373D4 + 1 +_02088958: .word FUN_020373D4 _0208895C: .word 0x020FD6E4 thumb_func_start FUN_02088960 @@ -285799,7 +285799,7 @@ FUN_020889B0: ; 0x020889B0 mov r1, #0x0 mov r2, #0x24 add r4, r0, #0x0 - blx FUN_020CE34C + blx MI_CpuFill8 mov r0, #0x37 str r0, [r4, #0x0] str r5, [r4, #0x10] @@ -285899,7 +285899,7 @@ FUN_02088A78: ; 0x02088A78 add r0, r4, #0x0 mov r1, #0x0 mov r2, #0x24 - blx FUN_020CE34C + blx MI_CpuFill8 add r0, r5, #0x0 bl FUN_0200627C add r0, r6, #0x0 @@ -286104,7 +286104,7 @@ _02088C12: mov r0, #0x5 pop {r3-r5, pc} _02088C16: - bl FUN_02020C2C + bl ErrorHandling mov r0, #0x95 str r0, [r4, #0x8] _02088C1E: @@ -286118,7 +286118,7 @@ _02088C1E: bl FUN_0206EDD4 cmp r0, #0x0 bne _02088C38 - bl FUN_02020C2C + bl ErrorHandling _02088C38: mov r0, #0x4 pop {r3-r5, pc} @@ -286269,7 +286269,7 @@ FUN_02088D4C: ; 0x02088D4C add r4, r0, #0x0 cmp r4, #0x13 blo _02088D58 - bl FUN_02020C2C + bl ErrorHandling _02088D58: mov r0, #0xc add r1, r4, #0x0 @@ -286286,7 +286286,7 @@ FUN_02088D68: ; 0x02088D68 add r4, r0, #0x0 cmp r4, #0x13 blo _02088D74 - bl FUN_02020C2C + bl ErrorHandling _02088D74: mov r0, #0xc add r1, r4, #0x0 @@ -286303,7 +286303,7 @@ FUN_02088D84: ; 0x02088D84 add r4, r0, #0x0 cmp r4, #0x13 blo _02088D90 - bl FUN_02020C2C + bl ErrorHandling _02088D90: mov r0, #0xc add r1, r4, #0x0 @@ -286320,7 +286320,7 @@ FUN_02088DA0: ; 0x02088DA0 add r4, r0, #0x0 cmp r4, #0x13 blo _02088DAC - bl FUN_02020C2C + bl ErrorHandling _02088DAC: mov r0, #0xc add r1, r4, #0x0 @@ -286337,7 +286337,7 @@ FUN_02088DBC: ; 0x02088DBC add r4, r0, #0x0 cmp r4, #0x13 blo _02088DC8 - bl FUN_02020C2C + bl ErrorHandling _02088DC8: mov r0, #0xc add r1, r4, #0x0 @@ -286368,7 +286368,7 @@ FUN_02088DF0: ; 0x02088DF0 ldr r3, _02088DF4 ; =FUN_02016A18 bx r3 .balign 4 -_02088DF4: .word FUN_02016A18 + 1 +_02088DF4: .word FUN_02016A18 thumb_func_start FUN_02088DF8 FUN_02088DF8: ; 0x02088DF8 @@ -287208,12 +287208,12 @@ FUN_020893F0: ; 0x020893F0 bhs _0208940A add r0, r1, #0x0 ldr r1, _02089410 ; =0x021C5C58 - blx FUN_020CE210 + blx MIi_CpuCopy32 ldr r0, _02089414 ; =0x02106154 str r4, [r0, #0x0] pop {r4, pc} _0208940A: - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} .balign 4 _02089410: .word 0x021C5C58 @@ -287231,11 +287231,11 @@ FUN_02089418: ; 0x02089418 cmp r0, r3 bne _02089438 ldr r0, _02089440 ; =0x021C5C58 - blx FUN_020CE210 + blx MIi_CpuCopy32 mov r0, #0x1 pop {r3, pc} _02089434: - bl FUN_02020C2C + bl ErrorHandling _02089438: mov r0, #0x0 pop {r3, pc} @@ -287253,12 +287253,12 @@ FUN_02089444: ; 0x02089444 bhs _0208945E add r0, r1, #0x0 ldr r1, _02089464 ; =0x021C5C58 - blx FUN_020CE28C + blx MIi_CpuCopyFast ldr r0, _02089468 ; =0x02106154 str r4, [r0, #0x0] pop {r4, pc} _0208945E: - bl FUN_02020C2C + bl ErrorHandling pop {r4, pc} .balign 4 _02089464: .word 0x021C5C58 @@ -287276,11 +287276,11 @@ FUN_0208946C: ; 0x0208946C cmp r0, r3 bne _0208948C ldr r0, _02089494 ; =0x021C5C58 - blx FUN_020CE28C + blx MIi_CpuCopyFast mov r0, #0x1 pop {r3, pc} _02089488: - bl FUN_02020C2C + bl ErrorHandling _0208948C: mov r0, #0x0 pop {r3, pc} @@ -287440,7 +287440,7 @@ _020895DA: _020895E0: .word 0x00000495 _020895E4: .word 0xFFFFE0FF _020895E8: .word 0x04001000 -_020895EC: .word FUN_02089610 + 1 +_020895EC: .word FUN_02089610 thumb_func_start FUN_020895F0 FUN_020895F0: ; 0x020895F0 @@ -287453,7 +287453,7 @@ FUN_020895F0: ; 0x020895F0 add r0, r4, #0x0 bl FUN_020168D0 mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem mov r0, #0x1 pop {r3-r5, pc} @@ -287463,7 +287463,7 @@ FUN_02089610: ; 0x02089610 ldr r0, [r0, #0x14] bx r3 nop -_02089618: .word FUN_0201AB60 + 1 +_02089618: .word FUN_0201AB60 thumb_func_start FUN_0208961C FUN_0208961C: ; 0x0208961C @@ -288516,7 +288516,7 @@ _02089EE4: bl FUN_02000FE8 add r0, r4, #0x0 add r1, r4, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq b _02089EE4 nop _02089EF4: .word 0xFFFFE0FF @@ -288677,7 +288677,7 @@ _0208A078: bl FUN_02000FE8 add r0, r4, #0x0 add r1, r4, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq b _0208A078 nop _0208A088: .word 0xFFFFE0FF @@ -288846,7 +288846,7 @@ _0208A21A: bl FUN_02000FE8 add r0, r4, #0x0 add r1, r4, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq b _0208A21A .balign 4 _0208A228: .word 0xFFFFE0FF @@ -288969,7 +288969,7 @@ FUN_0208A320: ; 0x0208A320 ldr r3, _0208A324 ; =FUN_02016A18 bx r3 .balign 4 -_0208A324: .word FUN_02016A18 + 1 +_0208A324: .word FUN_02016A18 thumb_func_start FUN_0208A328 FUN_0208A328: ; 0x0208A328 @@ -289050,7 +289050,7 @@ FUN_0208A338: ; 0x0208A338 pop {r4-r6, pc} .balign 4 _0208A3C0: .word 0x00000171 -_0208A3C4: .word FUN_0208A458 + 1 +_0208A3C4: .word FUN_0208A458 thumb_func_start FUN_0208A3C8 FUN_0208A3C8: ; 0x0208A3C8 @@ -289451,7 +289451,7 @@ _0208A6FA: bl FUN_020545B8 ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r1, r0, #0x0 add r0, r4, #0x0 bl FUN_02054608 @@ -289467,7 +289467,7 @@ _0208A722: _0208A734: ldr r0, [r5, #0x0] ldr r0, [r0, #0xc] - bl FUN_02023900 + bl LoadPlayerDataAddress add r2, r0, #0x0 ldr r1, [r5, #0x8] add r0, r4, #0x0 @@ -289486,7 +289486,7 @@ FUN_0208A750: ; 0x0208A750 lsr r0, r0, #0x18 bx r3 nop -_0208A75C: .word FUN_020546C8 + 1 +_0208A75C: .word FUN_020546C8 thumb_func_start FUN_0208A760 FUN_0208A760: ; 0x0208A760 @@ -289590,7 +289590,7 @@ FUN_0208A820: ; 0x0208A820 mov r1, #0x1 bx r3 .balign 4 -_0208A828: .word FUN_0200CCF8 + 1 +_0208A828: .word FUN_0200CCF8 thumb_func_start FUN_0208A82C FUN_0208A82C: ; 0x0208A82C @@ -289678,7 +289678,7 @@ FUN_0208A8D0: ; 0x0208A8D0 mov r1, #0x1 bx r3 .balign 4 -_0208A8D8: .word FUN_0200CCF8 + 1 +_0208A8D8: .word FUN_0200CCF8 thumb_func_start FUN_0208A8DC FUN_0208A8DC: ; 0x0208A8DC @@ -289784,13 +289784,13 @@ FUN_0208A998: ; 0x0208A998 ldr r2, [r3, r1] orr r0, r2 str r0, [r3, r1] - ldr r3, _0208A9B4 ; =FUN_020CDA1C + ldr r3, _0208A9B4 ; =MI_WaitDma mov r0, #0x3 bx r3 nop _0208A9AC: .word 0x027E0000 _0208A9B0: .word 0x00003FF8 -_0208A9B4: .word FUN_020CDA1C +_0208A9B4: .word MI_WaitDma thumb_func_start FUN_0208A9B8 FUN_0208A9B8: ; 0x0208A9B8 @@ -289805,15 +289805,15 @@ _0208A9C6: mov r1, #0x1 str r1, [r0, #0x0] mov r0, #0x0 - blx FUN_020CC408 + blx OS_GetInitArenaHi add r1, r0, #0x0 mov r0, #0x0 - blx FUN_020CC308 + blx OS_SetArenaHi mov r0, #0x0 - blx FUN_020CC31C + blx OS_GetInitArenaLo add r1, r0, #0x0 mov r0, #0x0 - blx FUN_020CC2F4 + blx OS_SetArenaLo mov r1, #0x1 ldr r0, _0208ABCC ; =0x020FF4A4 add r2, r1, #0x0 @@ -289826,12 +289826,12 @@ _0208A9C6: mov r1, #0x0 bl FUN_0200E3A0 mov r0, #0x1 - blx FUN_020C9E14 + blx OS_DisableIrqMask ldr r1, _0208ABD0 ; =FUN_0208A998 mov r0, #0x1 - blx FUN_020C9FEC + blx OS_SetIrqFunction mov r0, #0x1 - blx FUN_020C9E5C + blx OS_EnableIrqMask mov r0, #0x0 add r1, r0, #0x0 bl FUN_02015F10 @@ -289971,7 +289971,7 @@ _0208AB58: bne _0208AB72 add r0, r4, #0x0 add r1, r4, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq b _0208AB58 _0208AB72: ldr r5, _0208AC04 ; =0x04000130 @@ -289992,7 +289992,7 @@ _0208AB7A: bne _0208AB9C mov r0, #0x1 add r1, r0, #0x0 - blx FUN_020C9C0C + blx OS_WaitIrq b _0208AB7A _0208AB9C: ldr r1, _0208AC10 ; =0x00007FFF @@ -290008,14 +290008,14 @@ _0208AB9C: ldr r0, [sp, #0x10] bl FUN_02016A18 mov r0, #0x0 - blx FUN_020CD3B4 + blx OS_ResetSystem _0208ABC4: add sp, #0x24 pop {r4-r7, pc} .balign 4 _0208ABC8: .word 0x021C8C58 _0208ABCC: .word 0x020FF4A4 -_0208ABD0: .word FUN_0208A998 + 1 +_0208ABD0: .word FUN_0208A998 _0208ABD4: .word 0xFFFFE0FF _0208ABD8: .word 0x04001000 _0208ABDC: .word 0x021C4918 diff --git a/asm/entry.s b/asm/entry.s index f35a7006..b0f1c340 100644 --- a/asm/entry.s +++ b/asm/entry.s @@ -85,7 +85,7 @@ _02000924: .word 0x07000000 _02000928: .word _02000B68 _0200092C: .word 0x027FFF9C _02000930: .word 0x01FF8000 -_02000934: .word NitroMain+1 +_02000934: .word NitroMain _02000938: .word 0xFFFF0000 arm_func_end Entry diff --git a/asm/main.s b/asm/main.s deleted file mode 100644 index afd4969d..00000000 --- a/asm/main.s +++ /dev/null @@ -1,172 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .section .text - - thumb_func_start NitroMain -NitroMain: ; 0x02000C54 - push {r3-r7, lr} - bl FUN_02016014 - bl FUN_02016148 - bl FUN_020163BC - mov r0, #0x0 - bl FUN_02016438 - ldr r0, _02000DD0 ; =0x02106FA0 - mov r1, #0x0 - blx FUN_020D50D8 - bl FUN_02022294 - bl FUN_0201259C - bl FUN_02000DF4 - bl FUN_02002C14 - mov r0, #0x0 - mov r1, #0x3 - bl FUN_02002C50 - mov r0, #0x1 - mov r1, #0x3 - bl FUN_02002C50 - mov r0, #0x3 - add r1, r0, #0x0 - bl FUN_02002C50 - mov r1, #0x0 - ldr r0, _02000DD4 ; =0x02106FA0 - mvn r1, r1 - str r1, [r0, #0x18] - bl FUN_0202254C - ldr r1, _02000DD4 ; =0x02106FA0 - str r0, [r1, #0x20] - bl FUN_02029EF8 - add r4, r0, #0x0 - ldr r0, _02000DD4 ; =0x02106FA0 - ldr r0, [r0, #0x20] - bl FUN_02023900 - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_02003B98 - bl FUN_02020AFC - mov r0, #0x3 - bl FUN_020337E8 - cmp r0, #0x3 - bne _02000CD4 - mov r0, #0x3 - mov r1, #0x0 - bl FUN_02034188 -_02000CD4: - ldr r0, _02000DD4 ; =0x02106FA0 - ldr r0, [r0, #0x20] - bl FUN_020227FC - cmp r0, #0x0 - bne _02000CE8 - mov r0, #0x0 - bl FUN_02089D90 - b _02000D1A -_02000CE8: - ldr r0, _02000DD8 ; =0x027FFC20 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02000CF6 - cmp r0, #0x1 - beq _02000D06 - b _02000D16 -_02000CF6: - ldr r0, _02000DD4 ; =0x02106FA0 - mov r1, #0x0 - str r1, [r0, #0x1c] - ldr r0, _02000DDC ; =0x0000003F - ldr r1, _02000DE0 ; =0x021DBE18 - bl FUN_02000E7C - b _02000D1A -_02000D06: - ldr r0, _02000DD4 ; =0x02106FA0 - mov r1, #0x1 - str r1, [r0, #0x1c] - ldr r0, _02000DE4 ; =0x00000034 - ldr r1, _02000DE8 ; =0x021D76C8 - bl FUN_02000E7C - b _02000D1A -_02000D16: - bl FUN_02020C2C -_02000D1A: - ldr r0, _02000DEC ; =0x021C48B8 - mov r1, #0x1 - str r1, [r0, #0x6c] - mov r1, #0x0 - str r1, [r0, #0x30] - bl FUN_02000FA4 - bl FUN_0200A2AC - bl FUN_02015E30 - mov r1, #0x0 - ldr r0, _02000DD4 ; =0x02106FA0 - mov r7, #0xc3 - ldr r6, _02000DF0 ; =0x021C4918 - ldr r4, _02000DEC ; =0x021C48B8 - str r1, [r0, #0x4] - add r5, r1, #0x0 - lsl r7, r7, #0x2 -_02000D40: - bl FUN_02000EE8 - bl FUN_02000FE8 - bl FUN_02016464 - mov r0, #0xc3 - ldr r1, [r4, #0x38] - lsl r0, r0, #0x2 - and r0, r1 - cmp r0, r7 - bne _02000D64 - ldrb r0, [r6, #0x8] - cmp r0, #0x0 - bne _02000D64 - mov r0, #0x0 - bl FUN_02000F18 -_02000D64: - bl FUN_0202FB80 - cmp r0, #0x0 - beq _02000D90 - bl FUN_02000E0C - ldr r0, [r4, #0x18] - bl FUN_0201B5CC - ldr r0, [r4, #0x24] - bl FUN_0201B5CC - ldr r0, [r4, #0x30] - cmp r0, #0x0 - bne _02000D90 - mov r0, #0x1 - add r1, r0, #0x0 - blx FUN_020C9C0C - ldr r0, [r4, #0x2c] - add r0, r0, #0x1 - str r0, [r4, #0x2c] -_02000D90: - bl FUN_020125D4 - bl FUN_02015E60 - bl FUN_020222C4 - ldr r0, [r4, #0x24] - bl FUN_0201B5CC - mov r0, #0x1 - add r1, r0, #0x0 - blx FUN_020C9C0C - ldr r0, [r4, #0x2c] - add r0, r0, #0x1 - str r0, [r4, #0x2c] - str r5, [r4, #0x30] - bl FUN_0200A318 - bl FUN_0200E2D8 - ldr r1, [r4, #0x0] - cmp r1, #0x0 - beq _02000DC4 - ldr r0, [r4, #0x4] - blx r1 -_02000DC4: - bl FUN_02003C10 - ldr r0, [r4, #0x20] - bl FUN_0201B5CC - b _02000D40 - .balign 4 -_02000DD0: .word 0x02106FA0 -_02000DD4: .word 0x02106FA0 -_02000DD8: .word 0x027FFC20 -_02000DDC: .word 0x0000003F -_02000DE0: .word 0x021DBE18 -_02000DE4: .word 0x00000034 -_02000DE8: .word 0x021D76C8 -_02000DEC: .word 0x021C48B8 -_02000DF0: .word 0x021C4918 diff --git a/asm/rom1.5.s b/asm/rom1.5.s new file mode 100644 index 00000000..50021ed7 --- /dev/null +++ b/asm/rom1.5.s @@ -0,0 +1,5 @@ +/* rom1.5.s TODO: Disassemble */ + +.section .text + +.incbin "baserom.nds", 0x8EC14, 0x3EFF8 @@ -2,7 +2,8 @@ .section .text -.incbin "baserom.nds", 0x8EC14, 0x619B8 +.incbin "baserom.nds", 0xD9150, 0x1747C + .global FUN_020EC5CC FUN_020EC5CC: diff --git a/asm/secure.s b/asm/secure.s index 7f3a678c..05d39175 100644 --- a/asm/secure.s +++ b/asm/secure.s @@ -1,5 +1,13 @@ /* secure.s TODO: Disassemble */ + .include "asm/macros.inc" .section .text -.incbin "baserom.nds", 0x4000, 0x800 +.incbin "baserom.nds", 0x4000, 0x5F2 + + thumb_func_start FUN_020005F2 +FUN_020005F2: + swi 3 + bx lr + +.incbin "baserom.nds", 0x45F6, 0x20A @@ -17,19 +17,19 @@ .extern FUN_020125D4
.extern FUN_02015E30
.extern FUN_02015E60
-.extern FUN_02016014
-.extern FUN_02016148
+.extern InitSystemForTheGame
+.extern InitGraphicMemory
.extern FUN_020163BC
.extern FUN_02016438
.extern FUN_02016464
.extern FUN_0201B5CC
.extern FUN_02020AFC
-.extern FUN_02020C2C
+.extern ErrorHandling
.extern FUN_02022294
.extern FUN_020222C4
.extern FUN_0202254C
.extern FUN_020227FC
-.extern FUN_02023900
+.extern LoadPlayerDataAddress
.extern FUN_02029EF8
.extern FUN_0202FB80
.extern FUN_020337E8
@@ -319,83 +319,83 @@ .extern FUN_020C9480
.extern FUN_020C94E8
.extern FUN_020C9550
-.extern FUN_020C9C0C
-.extern FUN_020C9E14
-.extern FUN_020C9E5C
-.extern FUN_020C9FEC
-.extern FUN_020CA0A0
-.extern FUN_020CA0F8
-.extern FUN_020CC124
-.extern FUN_020CC15C
-.extern FUN_020CC180
-.extern FUN_020CC1B4
-.extern FUN_020CC204
-.extern FUN_020CC26C
-.extern FUN_020CC2F4
-.extern FUN_020CC308
-.extern FUN_020CC31C
-.extern FUN_020CC408
-.extern FUN_020CCC1C
-.extern FUN_020CCD64
-.extern FUN_020CD310
-.extern FUN_020CD324
-.extern FUN_020CD374
-.extern FUN_020CD3B4
-.extern FUN_020CD510
-.extern FUN_020CD524
-.extern FUN_020CD5A0
-.extern FUN_020CD754
-.extern FUN_020CD850
-.extern FUN_020CD998
-.extern FUN_020CDA1C
-.extern FUN_020CDD90
-.extern FUN_020CDE04
-.extern FUN_020CE1C8
-.extern FUN_020CE1E0
-.extern FUN_020CE1FC
-.extern FUN_020CE210
-.extern FUN_020CE240
-.extern FUN_020CE28C
-.extern FUN_020CE2E0
-.extern FUN_020CE34C
-.extern FUN_020CE3E0
-.extern FUN_020CE528
-.extern FUN_020CF768
-.extern FUN_020D1148
-.extern FUN_020D17A0
-.extern FUN_020D180C
-.extern FUN_020D182C
-.extern FUN_020D18FC
-.extern FUN_020D1944
-.extern FUN_020D1C94
-.extern FUN_020D1CC4
-.extern FUN_020D1CD4
-.extern FUN_020D1D10
-.extern FUN_020D1D30
-.extern FUN_020D2040
-.extern FUN_020D2094
-.extern FUN_020D2210
-.extern FUN_020D23B4
-.extern FUN_020D2454
-.extern FUN_020D24EC
-.extern FUN_020D36C4
-.extern FUN_020D36D8
-.extern FUN_020D36F0
-.extern FUN_020D3A90
-.extern FUN_020D3AA0
-.extern FUN_020D3C14
-.extern FUN_020D3CB8
-.extern FUN_020D3DCC
-.extern FUN_020D3E24
-.extern FUN_020D3EC4
-.extern FUN_020D400C
-.extern FUN_020D40B8
-.extern FUN_020D4718
-.extern FUN_020D47CC
-.extern FUN_020D4980
-.extern FUN_020D4A5C
-.extern FUN_020D4E68
-.extern FUN_020D50D8
+.extern OS_WaitIrq
+.extern OS_DisableIrqMask
+.extern OS_EnableIrqMask
+.extern OS_SetIrqFunction
+.extern OS_GetLockID
+.extern OS_ReleaseLockID
+.extern DC_InvalidateRange
+.extern DC_FlushRange
+.extern DC_WaitWriteBufferEmpty
+.extern OS_Init
+.extern OS_AllocFromArenaHi
+.extern OS_AllocFromArenaLo
+.extern OS_SetArenaLo
+.extern OS_SetArenaHi
+.extern OS_GetInitArenaLo
+.extern OS_GetInitArenaHi
+.extern OS_GetTick
+.extern OS_InitTick
+.extern OS_DisableInterrupts
+.extern OS_RestoreInterrupts
+.extern OS_GetProcMode
+.extern OS_ResetSystem
+.extern OS_GetOwnerRtcOffset
+.extern OS_GetOwnerInfo
+.extern OS_GetMacAddress
+.extern OS_GetLowEntropyData
+.extern OS_Terminate
+.extern MI_StopDma
+.extern MI_WaitDma
+.extern MI_HBlankDmaCopy16
+.extern MI_HBlankDmaCopy32
+.extern MIi_CpuClear16
+.extern MIi_CpuCopy16
+.extern MIi_CpuClear32
+.extern MIi_CpuCopy32
+.extern MIi_CpuClearFast
+.extern MIi_CpuCopyFast
+.extern MI_Copy36B
+.extern MI_CpuFill8
+.extern MI_CpuCopy8
+.extern MI_UncompressLZ8
+.extern SND_GetWaveDataAddress
+.extern FS_FindArchive
+.extern FS_SeekFile
+.extern FS_ReadFile
+.extern FS_WaitAsync
+.extern FS_CloseFile
+.extern FS_OpenFile
+.extern FS_InitFile
+.extern FS_IsAvailable
+.extern FS_Init
+.extern FS_TryLoadTable
+.extern FS_SetDefaultDMA
+.extern FS_UnloadOverlay
+.extern FS_LoadOverlay
+.extern FS_StartOverlay
+.extern FS_LoadOverlayImage
+.extern FS_LoadOverlayImageAsync
+.extern FS_LoadOverlayInfo
+.extern TP_CheckError
+.extern TP_WaitBusy
+.extern TP_GetCalibratedPoint
+.extern TP_GetLatestIndexInAuto
+.extern TP_GetLatestRawPointInAuto
+.extern TP_RequestAutoSamplingStopAsync
+.extern TP_RequestAutoSamplingStartAsync
+.extern TP_WaitRawResult
+.extern TP_RequestSamplingAsync
+.extern TP_SetCalibrateParam
+.extern TP_GetUserInfo
+.extern TP_Init
+.extern MIC_StopAutoSampling
+.extern MIC_StartAutoSampling
+.extern MIC_DoSamplingAsync
+.extern MIC_Init
+.extern PM_GoSleepMode
+.extern PM_GetBackLight
.extern FUN_020D5150
.extern FUN_020D5168
.extern FUN_020D5180
@@ -413,8 +413,8 @@ .extern FUN_020D6DB8
.extern FUN_020D6DC4
.extern FUN_020D6F20
-.extern FUN_020D7228
-.extern FUN_020D7D18
+.extern CARD_Init
+.extern CARD_IsPulledOut
.extern FUN_020D7E9C
.extern FUN_020D8A4C
.extern FUN_020D8AF0
@@ -462,10 +462,10 @@ .extern FUN_020EB5C4
.extern FUN_020EB7B0
.extern FUN_020EBA38
-.extern FUN_020EBBE8
+.extern _ll_udiv
.extern FUN_020EBC30
.extern FUN_020EBC50
-.extern FUN_020EBC80
+.extern _s32_div_f
.extern FUN_020EBE8C
.extern FUN_020EC5CC
.extern FUN_020EC694
@@ -905,4 +905,25 @@ .extern FUN_02252534
.extern FUN_02252538
.extern FUN_022567E0
-.extern NitroMain
\ No newline at end of file +.extern NitroMain
+
+.extern FUN_020005F2
+.extern CTRDG_Init
+.extern PM_Init
+.extern CARD_LockRom
+.extern CARD_UnlockRom
+.extern CARDi_ReadRom
+.extern MIi_UncompressBackward
+.extern PMi_SetLED
+.extern OS_SpinWait
+.extern PMi_Lock
+.extern PMi_SetLEDAsync
+.extern PMi_ReadRegister
+.extern PMi_WaitBusy
+.extern CTRDG_IsExisting
+.extern PMi_SendSleepStart
+.extern FUN_01FF857C
+.extern FUN_01FF84E4
+.extern FUN_01FF85F0
+.extern FUN_01FF84A4
+.extern FUN_01FF8544
diff --git a/pokediamond.lcf b/pokediamond.lcf index 9fe3c3c6..52d06a1a 100644 --- a/pokediamond.lcf +++ b/pokediamond.lcf @@ -379,6 +379,8 @@ SECTIONS { main.o (.text) FUN_02000DF4.o (.text) arm9_thumb.o (.text) + rom1.5.o (.text) + FUN_020C9C0C.o (.text) rom2.o (.text) } > arm9 diff --git a/src/FUN_02000DF4.c b/src/FUN_02000DF4.c index 65bc63da..0cc1c2dd 100644 --- a/src/FUN_02000DF4.c +++ b/src/FUN_02000DF4.c @@ -8,12 +8,12 @@ struct Unk2106FA0 { s32 unk14; }; -extern struct Unk2106FA0 gUnknown2106FA0; +extern struct Unk2106FA0 gBacklightTop; void FUN_02000DF4(void) { - gUnknown2106FA0.unk8 = -1; - gUnknown2106FA0.unkC = 0; - gUnknown2106FA0.unk10 = -1; - gUnknown2106FA0.unk14 = 0; + gBacklightTop.unk8 = -1; + gBacklightTop.unkC = 0; + gBacklightTop.unk10 = -1; + gBacklightTop.unk14 = 0; } diff --git a/src/main.c b/src/main.c new file mode 100644 index 00000000..d703331d --- /dev/null +++ b/src/main.c @@ -0,0 +1,151 @@ + +typedef unsigned char u8; +typedef unsigned short u16; +typedef unsigned long u32; +typedef signed char s8; +typedef signed short s16; +typedef signed long s32; + +struct Unk2106FA0 +{ + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; +}; + +struct Unk21C48B8 +{ + void (*unk0)(s32); + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; + s32 unk24; + s32 unk28; + s32 unk2C; + s32 unk30; + s32 unk34; + s32 unk38; + u8 filler3C[0xC]; + s32 unk48; + u8 filler4C[0x20]; + s32 unk6C; +}; + +extern struct Unk2106FA0 gBacklightTop; +extern struct Unk2106FA0 gBacklightTop_2; // same as the first one, it's referenced twice in the constant pool... +extern struct Unk2106FA0 gUnknown2106FB8; +extern struct Unk21C48B8 gUnknown21C48B8; + +extern s32 gUnk027FFC20; +extern struct { + s32 unk0; + s32 unk4; + u8 unk8; +} gUnk021C4918; + +extern void PM_GetBackLight(); +extern void OS_WaitIrq(); +extern void FUN_02016438(s32); + +extern const s32 CONST_3F; // 0x0000003F +extern const s32 CONST_34; // 0x00000034 + +extern struct Unk21DBE18 gUnk021DBE18; +extern struct Unk21DBE18 gUnk021D76C8; + + +void NitroMain(void) +{ + InitSystemForTheGame(); + InitGraphicMemory(); + FUN_020163BC(); + FUN_02016438(0); + + PM_GetBackLight(&gBacklightTop_2, 0); + + FUN_02022294(); + FUN_0201259C(); + FUN_02000DF4(); + FUN_02002C14(); + FUN_02002C50(0, 3); + FUN_02002C50(1, 3); + FUN_02002C50(3, 3); + gBacklightTop.unk18 = -1; + gBacklightTop.unk20 = FUN_0202254C(); + FUN_02003B98(FUN_02029EF8(gBacklightTop.unk20), LoadPlayerDataAddress(gBacklightTop.unk20)); + FUN_02020AFC(); + if (FUN_020337E8(3) == 3) + FUN_02034188(3, 0); + if (FUN_020227FC(gBacklightTop.unk20) == 0) + { + FUN_02089D90(0); + } + else + { + switch (gUnk027FFC20) + { + case 0: + gBacklightTop.unk1C = 0; + FUN_02000E7C(&CONST_3F, &gUnk021DBE18); + break; + case 1: + gBacklightTop.unk1C = 1; + FUN_02000E7C(&CONST_34, &gUnk021D76C8); + break; + default: + ErrorHandling(); + break; + } + } + gUnknown21C48B8.unk6C = 1; + gUnknown21C48B8.unk30 = 0; + FUN_02000FA4(); + FUN_0200A2AC(); + FUN_02015E30(); + gBacklightTop.unk4 = 0; + for (;;) + { + FUN_02000EE8(); + FUN_02000FE8(); + FUN_02016464(); + if ((gUnknown21C48B8.unk38 & 0x30C) == 0x30C && !gUnk021C4918.unk8) // soft reset? + { + FUN_02000F18(0); // soft reset? + } + if (FUN_0202FB80()) + { + FUN_02000E0C(); + FUN_0201B5CC(gUnknown21C48B8.unk18); + FUN_0201B5CC(gUnknown21C48B8.unk24); + if (!gUnknown21C48B8.unk30) + { + OS_WaitIrq(1, 1); + gUnknown21C48B8.unk2C++; + } + } + FUN_020125D4(); + FUN_02015E60(); + FUN_020222C4(); + FUN_0201B5CC(gUnknown21C48B8.unk24); + OS_WaitIrq(1, 1); + gUnknown21C48B8.unk2C++; + gUnknown21C48B8.unk30 = 0; + FUN_0200A318(); + FUN_0200E2D8(); + if (gUnknown21C48B8.unk0) + gUnknown21C48B8.unk0(gUnknown21C48B8.unk4); + FUN_02003C10(); + FUN_0201B5CC(gUnknown21C48B8.unk20); + } +}
\ No newline at end of file diff --git a/undefined_syms.txt b/undefined_syms.txt index 43538862..6b24590a 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -17,18 +17,15 @@ FUN_0201259C = 0x0201259C; FUN_020125D4 = 0x020125D4; FUN_02015E30 = 0x02015E30; FUN_02015E60 = 0x02015E60; -FUN_02016148 = 0x02016148; FUN_020163BC = 0x020163BC; FUN_02016438 = 0x02016438; FUN_02016464 = 0x02016464; FUN_0201B5CC = 0x0201B5CC; FUN_02020AFC = 0x02020AFC; -FUN_02020C2C = 0x02020C2C; FUN_02022294 = 0x02022294; FUN_020222C4 = 0x020222C4; FUN_0202254C = 0x0202254C; FUN_020227FC = 0x020227FC; -FUN_02023900 = 0x02023900; FUN_02029EF8 = 0x02029EF8; FUN_0202FB80 = 0x0202FB80; FUN_020337E8 = 0x020337E8; @@ -318,83 +315,6 @@ FUN_020C9418 = 0x020C9418; FUN_020C9480 = 0x020C9480; FUN_020C94E8 = 0x020C94E8; FUN_020C9550 = 0x020C9550; -FUN_020C9C0C = 0x020C9C0C; -FUN_020C9E14 = 0x020C9E14; -FUN_020C9E5C = 0x020C9E5C; -FUN_020C9FEC = 0x020C9FEC; -FUN_020CA0A0 = 0x020CA0A0; -FUN_020CA0F8 = 0x020CA0F8; -FUN_020CC124 = 0x020CC124; -FUN_020CC15C = 0x020CC15C; -FUN_020CC180 = 0x020CC180; -FUN_020CC1B4 = 0x020CC1B4; -FUN_020CC204 = 0x020CC204; -FUN_020CC26C = 0x020CC26C; -FUN_020CC2F4 = 0x020CC2F4; -FUN_020CC308 = 0x020CC308; -FUN_020CC31C = 0x020CC31C; -FUN_020CC408 = 0x020CC408; -FUN_020CCC1C = 0x020CCC1C; -FUN_020CCD64 = 0x020CCD64; -FUN_020CD310 = 0x020CD310; -FUN_020CD324 = 0x020CD324; -FUN_020CD374 = 0x020CD374; -FUN_020CD3B4 = 0x020CD3B4; -FUN_020CD510 = 0x020CD510; -FUN_020CD524 = 0x020CD524; -FUN_020CD5A0 = 0x020CD5A0; -FUN_020CD754 = 0x020CD754; -FUN_020CD850 = 0x020CD850; -FUN_020CD998 = 0x020CD998; -FUN_020CDA1C = 0x020CDA1C; -FUN_020CDD90 = 0x020CDD90; -FUN_020CDE04 = 0x020CDE04; -FUN_020CE1C8 = 0x020CE1C8; -FUN_020CE1E0 = 0x020CE1E0; -FUN_020CE1FC = 0x020CE1FC; -FUN_020CE210 = 0x020CE210; -FUN_020CE240 = 0x020CE240; -FUN_020CE28C = 0x020CE28C; -FUN_020CE2E0 = 0x020CE2E0; -FUN_020CE34C = 0x020CE34C; -FUN_020CE3E0 = 0x020CE3E0; -FUN_020CE528 = 0x020CE528; -FUN_020CF768 = 0x020CF768; -FUN_020D1148 = 0x020D1148; -FUN_020D17A0 = 0x020D17A0; -FUN_020D180C = 0x020D180C; -FUN_020D182C = 0x020D182C; -FUN_020D18FC = 0x020D18FC; -FUN_020D1944 = 0x020D1944; -FUN_020D1C94 = 0x020D1C94; -FUN_020D1CC4 = 0x020D1CC4; -FUN_020D1CD4 = 0x020D1CD4; -FUN_020D1D10 = 0x020D1D10; -FUN_020D1D30 = 0x020D1D30; -FUN_020D2040 = 0x020D2040; -FUN_020D2094 = 0x020D2094; -FUN_020D2210 = 0x020D2210; -FUN_020D23B4 = 0x020D23B4; -FUN_020D2454 = 0x020D2454; -FUN_020D24EC = 0x020D24EC; -FUN_020D36C4 = 0x020D36C4; -FUN_020D36D8 = 0x020D36D8; -FUN_020D36F0 = 0x020D36F0; -FUN_020D3A90 = 0x020D3A90; -FUN_020D3AA0 = 0x020D3AA0; -FUN_020D3C14 = 0x020D3C14; -FUN_020D3CB8 = 0x020D3CB8; -FUN_020D3DCC = 0x020D3DCC; -FUN_020D3E24 = 0x020D3E24; -FUN_020D3EC4 = 0x020D3EC4; -FUN_020D400C = 0x020D400C; -FUN_020D40B8 = 0x020D40B8; -FUN_020D4718 = 0x020D4718; -FUN_020D47CC = 0x020D47CC; -FUN_020D4980 = 0x020D4980; -FUN_020D4A5C = 0x020D4A5C; -FUN_020D4E68 = 0x020D4E68; -FUN_020D50D8 = 0x020D50D8; FUN_020D5150 = 0x020D5150; FUN_020D5168 = 0x020D5168; FUN_020D5180 = 0x020D5180; @@ -412,8 +332,8 @@ FUN_020D6DAC = 0x020D6DAC; FUN_020D6DB8 = 0x020D6DB8; FUN_020D6DC4 = 0x020D6DC4; FUN_020D6F20 = 0x020D6F20; -FUN_020D7228 = 0x020D7228; -FUN_020D7D18 = 0x020D7D18; +CARD_Init = 0x020D7228; +CARD_IsPulledOut = 0x020D7D18; FUN_020D7E9C = 0x020D7E9C; FUN_020D8A4C = 0x020D8A4C; FUN_020D8AF0 = 0x020D8AF0; @@ -461,10 +381,10 @@ FUN_020EB57C = 0x020EB57C; FUN_020EB5C4 = 0x020EB5C4; FUN_020EB7B0 = 0x020EB7B0; FUN_020EBA38 = 0x020EBA38; -FUN_020EBBE8 = 0x020EBBE8; +_ll_udiv = 0x020EBBE8; FUN_020EBC30 = 0x020EBC30; FUN_020EBC50 = 0x020EBC50; -FUN_020EBC80 = 0x020EBC80; +_s32_div_f = 0x020EBC80; FUN_020EBE8C = 0x020EBE8C; FUN_021D74E0 = 0x021D74E0; FUN_021D76AC = 0x021D76AC; @@ -902,4 +822,33 @@ FUN_0224F12C = 0x0224F12C; FUN_02252534 = 0x02252534; FUN_02252538 = 0x02252538; FUN_022567E0 = 0x022567E0; -gUnknown2106FA0 = 0x2106FA0;
\ No newline at end of file +FUN_01FF84A4 = 0x01FF84A4; +FUN_01FF84E4 = 0x01FF84E4; +FUN_01FF8544 = 0x01FF8544; +FUN_01FF857C = 0x01FF857C; +FUN_01FF85F0 = 0x01FF85F0; +FUN_020005F2 = 0x020005F2; +PMi_WaitBusy = 0x020D5884; +CTRDG_IsExisting = 0x020DB68C; +PMi_SendSleepStart = 0x020D55C0; +MIi_UncompressBackward = 0x02000950; +OS_SpinWait = 0x020CD380; +PMi_SetLED = 0x020D5338; +PMi_SetLEDAsync = 0x020D5374; +PMi_ReadRegister = 0x020D5498; +PM_Init = 0x020D5764; +PMi_Lock = 0x020D58C4; +CARD_UnlockRom = 0x020D66C0; +CARD_LockRom = 0x020D66E0; +CARDi_ReadRom = 0x020D72AC; +CTRDG_Init = 0x020DBC80; +CONST_3F = 0x0000003F; +CONST_34 = 0x00000034; +gBacklightTop = 0x2106FA0; +gBacklightTop_2 = 0x2106FA0; +gUnknown2106FB8 = 0x2106FB8; +gUnknown21C48B8 = 0x21C48B8; +gUnk021C4918 = 0x21C4918; +gUnk021D76C8 = 0x21D76C8; +gUnk021DBE18 = 0x21DBE18; +gUnk027FFC20 = 0x27FFC20;
\ No newline at end of file |