diff options
-rw-r--r-- | arm9/Makefile | 4 | ||||
-rw-r--r-- | arm9/arm9.lcf | 7 | ||||
-rw-r--r-- | arm9/asm/unk_020023C0.s | 6686 | ||||
-rw-r--r-- | arm9/asm/unk_02002C14.s | 405 | ||||
-rw-r--r-- | arm9/asm/unk_02002F08.s | 285 | ||||
-rw-r--r-- | arm9/asm/unk_020030E8.s | 1424 | ||||
-rw-r--r-- | arm9/asm/unk_02003B98.s | 705 | ||||
-rw-r--r-- | arm9/asm/unk_020040F4.s | 2273 | ||||
-rw-r--r-- | arm9/asm/unk_020051F4.s | 1319 | ||||
-rw-r--r-- | arm9/asm/unk_02005CFC.s | 303 | ||||
-rw-r--r-- | arm9/global.inc | 5238 |
11 files changed, 9358 insertions, 9291 deletions
diff --git a/arm9/Makefile b/arm9/Makefile index 3cd779fe..00773ab1 100644 --- a/arm9/Makefile +++ b/arm9/Makefile @@ -171,7 +171,7 @@ MWCCARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwccarm.exe # only dependency should be MWCCARM. MWLDARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwldarm.exe MWASMARM = $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwasmarm.exe -MAKELSF := $(WINE) $(TOOLS_DIR)/bin/makelcf.exe +MAKELCF := $(WINE) $(TOOLS_DIR)/bin/makelcf.exe AS = $(WINE) $(MWASMARM) CC = $(WINE) $(MWCCARM) @@ -267,7 +267,7 @@ $(S_OBJS): $(BUILD_DIR)/%.o: %.s $$(dep) $(AS) $(ASFLAGS) -o $@ $< # $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SPEC) $(LD_TEMPLATE) - # $(MAKELSF) $(MAKELSF_FLAGS) $^ $@ +# $(MAKELCF) $(MAKELCF_FLAGS) $^ $@ $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $< diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf index c2d8dd2d..a212da31 100644 --- a/arm9/arm9.lcf +++ b/arm9/arm9.lcf @@ -127,6 +127,13 @@ SECTIONS { unk_02001B80.o (.text) string_util.o (.text) unk_020023C0.o (.text) + unk_02002C14.o (.text) + unk_02002F08.o (.text) + unk_020030E8.o (.text) + unk_02003B98.o (.text) + unk_020040F4.o (.text) + unk_020051F4.o (.text) + unk_02005CFC.o (.text) poke_overlay.o (.text) unk_020061E8.o (.text) filesystem.o (.text) diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s index 3295bcc9..2f1cbf0f 100644 --- a/arm9/asm/unk_020023C0.s +++ b/arm9/asm/unk_020023C0.s @@ -1106,6689 +1106,3 @@ FUN_02002C04: ; 0x02002C04 bx lr .balign 4 _02002C10: .word 0x02106FC4 - - thumb_func_start FUN_02002C14 -FUN_02002C14: ; 0x02002C14 - push {r4, lr} - ldr r0, _02002C44 ; =0x02106FCC - ldr r4, _02002C48 ; =0x02106FC8 - mov r1, #0x0 - str r0, [r4, #0x0] - add r2, r1, #0x0 - add r0, r1, #0x0 -_02002C22: - ldr r3, [r4, #0x0] - add r1, r1, #0x1 - add r3, r3, r2 - add r3, #0x84 - str r0, [r3, #0x0] - ldr r3, [r4, #0x0] - add r3, r3, r2 - add r3, #0x94 - add r2, r2, #0x4 - str r0, [r3, #0x0] - cmp r1, #0x4 - blo _02002C22 - ldr r0, _02002C4C ; =0x020ECB64 - bl FUN_0201BCBC - pop {r4, pc} - nop -_02002C44: .word 0x02106FCC -_02002C48: .word 0x02106FC8 -_02002C4C: .word 0x020ECB64 - - thumb_func_start FUN_02002C50 -FUN_02002C50: ; 0x02002C50 - push {r3-r4, lr} - sub sp, #0x4 - str r1, [sp, #0x0] - lsl r4, r0, #0x2 - ldr r1, _02002C78 ; =0x020ECB54 - ldr r3, _02002C7C ; =0x020ECB56 - ldrh r1, [r1, r4] - ldrh r3, [r3, r4] - mov r0, #0xe - mov r2, #0x1 - bl FUN_02021590 - ldr r1, _02002C80 ; =0x02106FC8 - ldr r1, [r1, #0x0] - add r1, r1, r4 - add r1, #0x94 - str r0, [r1, #0x0] - add sp, #0x4 - pop {r3-r4, pc} - nop -_02002C78: .word 0x020ECB54 -_02002C7C: .word 0x020ECB56 -_02002C80: .word 0x02106FC8 - - thumb_func_start FUN_02002C84 -FUN_02002C84: ; 0x02002C84 - push {r3-r5, lr} - add r4, r0, #0x0 - add r5, r1, #0x0 - cmp r4, #0x4 - blt _02002C92 - bl ErrorHandling -_02002C92: - ldr r0, _02002CBC ; =0x02106FC8 - lsl r4, r4, #0x2 - ldr r0, [r0, #0x0] - add r0, r0, r4 - add r0, #0x94 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02002CA6 - bl ErrorHandling -_02002CA6: - ldr r0, _02002CBC ; =0x02106FC8 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r2, r5, #0x0 - add r0, r0, r4 - add r0, #0x94 - ldr r0, [r0, #0x0] - bl FUN_020215E0 - pop {r3-r5, pc} - nop -_02002CBC: .word 0x02106FC8 - - thumb_func_start FUN_02002CC0 -FUN_02002CC0: ; 0x02002CC0 - push {r4, lr} - add r4, r0, #0x0 - cmp r4, #0x4 - blt _02002CCC - bl ErrorHandling -_02002CCC: - ldr r0, _02002CF4 ; =0x02106FC8 - lsl r4, r4, #0x2 - ldr r0, [r0, #0x0] - add r0, r0, r4 - add r0, #0x94 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02002CE0 - bl ErrorHandling -_02002CE0: - ldr r0, _02002CF4 ; =0x02106FC8 - mov r1, #0x1 - ldr r0, [r0, #0x0] - mov r2, #0x0 - add r0, r0, r4 - add r0, #0x94 - ldr r0, [r0, #0x0] - bl FUN_020215E0 - pop {r4, pc} - .balign 4 -_02002CF4: .word 0x02106FC8 - - thumb_func_start FUN_02002CF8 -FUN_02002CF8: ; 0x02002CF8 - push {r3-r7, lr} - add r4, r0, #0x0 - cmp r4, #0x4 - blt _02002D04 - bl ErrorHandling -_02002D04: - ldr r0, _02002D8C ; =0x02106FC8 - lsl r6, r4, #0x2 - ldr r7, [r0, #0x0] - add r0, r7, r6 - add r0, #0x84 - ldr r0, [r0, #0x0] - mov r12, r0 - cmp r0, #0x0 - beq _02002D68 - ldr r2, _02002D90 ; =0x020ECB54 - mov r1, #0x0 - ldrh r0, [r2, r6] - add r3, r7, #0x0 -_02002D1E: - cmp r1, r4 - beq _02002D3E - ldrh r5, [r2, #0x0] - cmp r5, r0 - bne _02002D3E - add r5, r3, #0x0 - add r5, #0x94 - ldr r5, [r5, #0x0] - cmp r5, #0x0 - beq _02002D3E - lsl r0, r1, #0x2 - add r2, r7, r0 - add r2, #0x84 - mov r0, r12 - str r0, [r2, #0x0] - b _02002D48 -_02002D3E: - add r1, r1, #0x1 - add r2, r2, #0x4 - add r3, r3, #0x4 - cmp r1, #0x4 - blo _02002D1E -_02002D48: - cmp r1, #0x4 - bne _02002D68 - ldr r0, _02002D8C ; =0x02106FC8 - lsl r5, r4, #0x2 - ldr r0, [r0, #0x0] - add r0, r0, r5 - add r0, #0x84 - ldr r0, [r0, #0x0] - bl FUN_02016A18 - ldr r0, _02002D8C ; =0x02106FC8 - mov r1, #0x0 - ldr r0, [r0, #0x0] - add r0, r0, r5 - add r0, #0x84 - str r1, [r0, #0x0] -_02002D68: - ldr r0, _02002D8C ; =0x02106FC8 - ldr r0, [r0, #0x0] - add r0, r0, r6 - add r0, #0x94 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - beq _02002D88 - bl FUN_020215C8 - ldr r0, _02002D8C ; =0x02106FC8 - mov r2, #0x0 - ldr r1, [r0, #0x0] - lsl r0, r4, #0x2 - add r0, r1, r0 - add r0, #0x94 - str r2, [r0, #0x0] -_02002D88: - pop {r3-r7, pc} - nop -_02002D8C: .word 0x02106FC8 -_02002D90: .word 0x020ECB54 - - thumb_func_start FUN_02002D94 -FUN_02002D94: ; 0x02002D94 - push {r3, lr} - ldr r2, _02002DAC ; =0x02106FC8 - lsl r0, r0, #0x2 - ldr r2, [r2, #0x0] - add r0, r2, r0 - add r0, #0x94 - ldr r0, [r0, #0x0] - bl FUN_02021750 - ldr r0, _02002DAC ; =0x02106FC8 - ldr r0, [r0, #0x0] - pop {r3, pc} - .balign 4 -_02002DAC: .word 0x02106FC8 - - thumb_func_start FUN_02002DB0 -FUN_02002DB0: ; 0x02002DB0 - push {r4, lr} - add r3, r1, #0x0 - add r3, #0x1c - ldrb r2, [r3, #0x1] - lsl r2, r2, #0x18 - lsr r2, r2, #0x1f - bne _02002DD8 - ldrb r2, [r3, #0x0] - mov r4, #0xf - lsl r0, r0, #0x18 - bic r2, r4 - lsr r4, r0, #0x18 - mov r0, #0xf - and r0, r4 - orr r0, r2 - strb r0, [r3, #0x0] - ldrb r2, [r3, #0x1] - mov r0, #0x80 - orr r0, r2 - strb r0, [r3, #0x1] -_02002DD8: - add r0, r1, #0x0 - bl FUN_020023C0 - pop {r4, pc} - - thumb_func_start FUN_02002DE0 -FUN_02002DE0: ; 0x02002DE0 - push {r4-r6, lr} - lsl r4, r0, #0x2 - ldr r0, _02002E10 ; =0x02106FC8 - add r5, r1, #0x0 - ldr r0, [r0, #0x0] - add r6, r2, #0x0 - add r0, r0, r4 - add r0, #0x94 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02002DFA - bl ErrorHandling -_02002DFA: - ldr r0, _02002E10 ; =0x02106FC8 - add r1, r5, #0x0 - ldr r0, [r0, #0x0] - add r2, r6, #0x0 - add r0, r0, r4 - add r0, #0x94 - ldr r0, [r0, #0x0] - bl FUN_020218D8 - pop {r4-r6, pc} - nop -_02002E10: .word 0x02106FC8 - - thumb_func_start FUN_02002E14 -FUN_02002E14: ; 0x02002E14 - push {r4-r6, lr} - lsl r4, r0, #0x2 - ldr r0, _02002E48 ; =0x02106FC8 - add r5, r1, #0x0 - ldr r0, [r0, #0x0] - add r6, r2, #0x0 - add r0, r0, r4 - add r0, #0x94 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02002E2E - bl ErrorHandling -_02002E2E: - add r0, r5, #0x0 - bl FUN_02021F2C - add r1, r0, #0x0 - ldr r0, _02002E48 ; =0x02106FC8 - add r2, r6, #0x0 - ldr r0, [r0, #0x0] - add r0, r0, r4 - add r0, #0x94 - ldr r0, [r0, #0x0] - bl FUN_020218D8 - pop {r4-r6, pc} - .balign 4 -_02002E48: .word 0x02106FC8 - - thumb_func_start FUN_02002E4C -FUN_02002E4C: ; 0x02002E4C - mov r2, #0x0 - cmp r1, #0x7 - bhi _02002EAC - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02002E5E: ; jump table (using 16-bit offset) - .short _02002E6E - _02002E5E - 2; case 0 - .short _02002E76 - _02002E5E - 2; case 1 - .short _02002E7E - _02002E5E - 2; case 2 - .short _02002E86 - _02002E5E - 2; case 3 - .short _02002E8E - _02002E5E - 2; case 4 - .short _02002E96 - _02002E5E - 2; case 5 - .short _02002E9E - _02002E5E - 2; case 6 - .short _02002EA6 - _02002E5E - 2; case 7 -_02002E6E: - lsl r1, r0, #0x3 - ldr r0, _02002EB0 ; =0x020ECB64 - ldrb r2, [r0, r1] - b _02002EAC -_02002E76: - lsl r1, r0, #0x3 - ldr r0, _02002EB4 ; =0x020ECB65 - ldrb r2, [r0, r1] - b _02002EAC -_02002E7E: - lsl r1, r0, #0x3 - ldr r0, _02002EB8 ; =0x020ECB66 - ldrb r2, [r0, r1] - b _02002EAC -_02002E86: - lsl r1, r0, #0x3 - ldr r0, _02002EBC ; =0x020ECB67 - ldrb r2, [r0, r1] - b _02002EAC -_02002E8E: - lsl r1, r0, #0x3 - ldr r0, _02002EC0 ; =0x020ECB68 - ldrb r2, [r0, r1] - b _02002EAC -_02002E96: - lsl r1, r0, #0x3 - ldr r0, _02002EC4 ; =0x020ECB69 - ldrb r2, [r0, r1] - b _02002EAC -_02002E9E: - lsl r1, r0, #0x3 - ldr r0, _02002EC8 ; =0x020ECB6A - ldrb r2, [r0, r1] - b _02002EAC -_02002EA6: - lsl r1, r0, #0x3 - ldr r0, _02002ECC ; =0x020ECB6B - ldrb r2, [r0, r1] -_02002EAC: - add r0, r2, #0x0 - bx lr - .balign 4 -_02002EB0: .word 0x020ECB64 -_02002EB4: .word 0x020ECB65 -_02002EB8: .word 0x020ECB66 -_02002EBC: .word 0x020ECB67 -_02002EC0: .word 0x020ECB68 -_02002EC4: .word 0x020ECB69 -_02002EC8: .word 0x020ECB6A -_02002ECC: .word 0x020ECB6B - - thumb_func_start FUN_02002ED0 -FUN_02002ED0: ; 0x02002ED0 - push {r4, lr} - sub sp, #0x8 - add r4, r0, #0x0 - mov r0, #0x20 - str r0, [sp, #0x0] - add r3, r1, #0x0 - str r2, [sp, #0x4] - mov r0, #0xe - mov r1, #0x6 - add r2, r4, #0x0 - bl FUN_02006930 - add sp, #0x8 - pop {r4, pc} - - thumb_func_start FUN_02002EEC -FUN_02002EEC: ; 0x02002EEC - push {r4, lr} - sub sp, #0x8 - add r4, r0, #0x0 - mov r0, #0x20 - str r0, [sp, #0x0] - add r3, r1, #0x0 - str r2, [sp, #0x4] - mov r0, #0xe - mov r1, #0x7 - add r2, r4, #0x0 - bl FUN_02006930 - add sp, #0x8 - pop {r4, pc} - - thumb_func_start FUN_02002F08 -FUN_02002F08: ; 0x02002F08 - push {r4-r6, lr} - lsl r4, r0, #0x2 - ldr r0, _02002F3C ; =0x02106FC8 - add r5, r1, #0x0 - ldr r0, [r0, #0x0] - add r6, r2, #0x0 - add r0, r0, r4 - add r0, #0x94 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02002F22 - bl ErrorHandling -_02002F22: - add r0, r5, #0x0 - bl FUN_02021F2C - add r1, r0, #0x0 - ldr r0, _02002F3C ; =0x02106FC8 - add r2, r6, #0x0 - ldr r0, [r0, #0x0] - add r0, r0, r4 - add r0, #0x94 - ldr r0, [r0, #0x0] - bl FUN_02021934 - pop {r4-r6, pc} - .balign 4 -_02002F3C: .word 0x02106FC8 - - thumb_func_start FUN_02002F40 -FUN_02002F40: ; 0x02002F40 - push {r4, lr} - add r4, r3, #0x0 - bl FUN_02002E14 - cmp r0, r4 - bhs _02002F52 - sub r0, r4, r0 - lsr r0, r0, #0x1 - pop {r4, pc} -_02002F52: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02002F58 -FUN_02002F58: ; 0x02002F58 - push {r3-r7, lr} - ldrh r2, [r0, #0x0] - ldr r1, _02002F8C ; =0x0000FFFF - mov r5, #0x1 - cmp r2, r1 - beq _02002F88 - mov r6, #0xe - lsl r6, r6, #0xc - add r7, r1, #0x0 - sub r4, r1, #0x1 -_02002F6C: - cmp r2, r4 - bne _02002F76 - bl FUN_0201B8B8 - b _02002F82 -_02002F76: - cmp r2, r6 - bne _02002F80 - add r5, r5, #0x1 - add r0, r0, #0x2 - b _02002F82 -_02002F80: - add r0, r0, #0x2 -_02002F82: - ldrh r2, [r0, #0x0] - cmp r2, r7 - bne _02002F6C -_02002F88: - add r0, r5, #0x0 - pop {r3-r7, pc} - .balign 4 -_02002F8C: .word 0x0000FFFF - - thumb_func_start FUN_02002F90 -FUN_02002F90: ; 0x02002F90 - push {r3, lr} - bl FUN_02021F2C - bl FUN_02002F58 - pop {r3, pc} - - thumb_func_start FUN_02002F9C -FUN_02002F9C: ; 0x02002F9C - push {r3-r5, lr} - lsl r4, r0, #0x2 - ldr r0, _02002FCC ; =0x02106FC8 - add r5, r1, #0x0 - ldr r0, [r0, #0x0] - add r0, r0, r4 - add r0, #0x94 - ldr r0, [r0, #0x0] - cmp r0, #0x0 - bne _02002FB4 - bl ErrorHandling -_02002FB4: - add r0, r5, #0x0 - bl FUN_02021F2C - add r1, r0, #0x0 - ldr r0, _02002FCC ; =0x02106FC8 - ldr r0, [r0, #0x0] - add r0, r0, r4 - add r0, #0x94 - ldr r0, [r0, #0x0] - bl FUN_0202199C - pop {r3-r5, pc} - .balign 4 -_02002FCC: .word 0x02106FC8 - - thumb_func_start FUN_02002FD0 -FUN_02002FD0: ; 0x02002FD0 - push {r4, lr} - mov r1, #0x12 - lsl r1, r1, #0x4 - bl FUN_02016998 - mov r2, #0x12 - mov r1, #0x0 - lsl r2, r2, #0x4 - add r4, r0, #0x0 - bl MI_CpuFill8 - add r0, r4, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02002FEC -FUN_02002FEC: ; 0x02002FEC - ldr r3, _02002FF0 ; =FUN_02016A18 - bx r3 - .balign 4 -_02002FF0: .word FUN_02016A18 - - thumb_func_start FUN_02002FF4 -FUN_02002FF4: ; 0x02002FF4 - push {r3-r4} - mov r4, #0x14 - mul r4, r1 - str r2, [r0, r4] - add r1, r0, r4 - ldr r0, [sp, #0x8] - str r3, [r1, #0x4] - str r0, [r1, #0x8] - pop {r3-r4} - bx lr - - thumb_func_start FUN_02003008 -FUN_02003008: ; 0x02003008 - push {r3-r7, lr} - sub sp, #0x8 - add r4, r2, #0x0 - add r5, r0, #0x0 - add r6, r1, #0x0 - str r3, [sp, #0x4] - add r0, r3, #0x0 - add r1, r4, #0x0 - bl FUN_02016998 - add r7, r0, #0x0 - ldr r0, [sp, #0x4] - add r1, r4, #0x0 - bl FUN_02016998 - add r3, r0, #0x0 - add r0, r5, #0x0 - add r1, r6, #0x0 - add r2, r7, #0x0 - str r4, [sp, #0x0] - bl FUN_02002FF4 - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02003038 -FUN_02003038: ; 0x02003038 - push {r3-r5, lr} - add r4, r0, #0x0 - mov r0, #0x14 - add r5, r1, #0x0 - mul r5, r0 - ldr r0, [r4, r5] - bl FUN_02016A18 - add r0, r4, r5 - ldr r0, [r0, #0x4] - bl FUN_02016A18 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02003054 -FUN_02003054: ; 0x02003054 - push {r3-r7, lr} - add r5, r0, #0x0 - add r0, sp, #0x8 - ldrh r7, [r0, #0x10] - add r6, r2, #0x0 - mov r0, #0x14 - mul r6, r0 - str r1, [sp, #0x0] - add r0, r1, #0x0 - ldr r1, [r5, r6] - lsl r4, r3, #0x1 - add r1, r1, r4 - add r2, r7, #0x0 - bl MIi_CpuCopy16 - add r1, r5, r6 - ldr r1, [r1, #0x4] - ldr r0, [sp, #0x0] - add r1, r1, r4 - add r2, r7, #0x0 - bl MIi_CpuCopy16 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02003084 -FUN_02003084: ; 0x02003084 - push {r4-r6, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - add r2, sp, #0x4 - ldr r4, [sp, #0x1c] - bl FUN_02006C08 - add r6, r0, #0x0 - bne _0200309E - bl ErrorHandling -_0200309E: - cmp r4, #0x0 - bne _020030A6 - ldr r0, [sp, #0x4] - ldr r4, [r0, #0x8] -_020030A6: - add r0, sp, #0x8 - ldrh r0, [r0, #0x18] - ldr r2, [sp, #0x18] - mov r1, #0x14 - mul r1, r2 - add r1, r5, r1 - lsl r0, r0, #0x1 - ldr r1, [r1, #0x8] - add r0, r4, r0 - cmp r0, r1 - bls _020030C0 - bl ErrorHandling -_020030C0: - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x0] - ldr r1, [sp, #0x4] - add r3, sp, #0x8 - ldr r2, [r1, #0xc] - ldrh r1, [r3, #0x1c] - ldrh r3, [r3, #0x18] - add r0, r5, #0x0 - lsl r1, r1, #0x1 - add r1, r2, r1 - ldr r2, [sp, #0x18] - bl FUN_02003054 - add r0, r6, #0x0 - bl FUN_02016A18 - add sp, #0x8 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020030E8 -FUN_020030E8: ; 0x020030E8 - push {r4, lr} - sub sp, #0x10 - ldr r4, [sp, #0x18] - str r4, [sp, #0x0] - ldr r4, [sp, #0x1c] - str r4, [sp, #0x4] - add r4, sp, #0x8 - ldrh r4, [r4, #0x18] - str r4, [sp, #0x8] - mov r4, #0x0 - str r4, [sp, #0xc] - bl FUN_02003084 - add sp, #0x10 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02003108 -FUN_02003108: ; 0x02003108 - push {r3-r7, lr} - add r4, r1, #0x0 - mov r1, #0x14 - add r6, r0, #0x0 - mul r1, r4 - add r5, r2, #0x0 - add r1, r6, r1 - add r7, r3, #0x0 - lsl r0, r5, #0x1 - ldr r1, [r1, #0x8] - add r0, r7, r0 - cmp r0, r1 - bls _02003126 - bl ErrorHandling -_02003126: - cmp r4, #0x3 - bhi _0200315E - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02003136: ; jump table (using 16-bit offset) - .short _0200313E - _02003136 - 2; case 0 - .short _02003146 - _02003136 - 2; case 1 - .short _0200314E - _02003136 - 2; case 2 - .short _02003156 - _02003136 - 2; case 3 -_0200313E: - bl FUN_020222E8 - add r1, r0, #0x0 - b _02003164 -_02003146: - bl FUN_020222F8 - add r1, r0, #0x0 - b _02003164 -_0200314E: - bl FUN_02022308 - add r1, r0, #0x0 - b _02003164 -_02003156: - bl FUN_02022310 - add r1, r0, #0x0 - b _02003164 -_0200315E: - bl ErrorHandling - pop {r3-r7, pc} -_02003164: - lsl r0, r7, #0x10 - lsr r0, r0, #0x10 - lsl r2, r5, #0x1 - str r0, [sp, #0x0] - add r1, r1, r2 - add r0, r6, #0x0 - add r2, r4, #0x0 - add r3, r5, #0x0 - bl FUN_02003054 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_0200317C -FUN_0200317C: ; 0x0200317C - push {r3-r5, lr} - add r4, r2, #0x0 - add r5, r3, #0x0 - add r2, sp, #0x0 - add r3, r4, #0x0 - bl FUN_02006C08 - add r4, r0, #0x0 - bne _02003192 - bl ErrorHandling -_02003192: - cmp r5, #0x0 - bne _0200319A - ldr r0, [sp, #0x0] - ldr r5, [r0, #0x8] -_0200319A: - ldr r0, [sp, #0x0] - add r2, r5, #0x0 - ldr r1, [r0, #0xc] - add r0, sp, #0x0 - ldrh r0, [r0, #0x10] - lsl r0, r0, #0x1 - add r0, r1, r0 - ldr r1, [sp, #0x14] - bl MIi_CpuCopy16 - add r0, r4, #0x0 - bl FUN_02016A18 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020031B8 -FUN_020031B8: ; 0x020031B8 - push {r3-r7, lr} - sub sp, #0x8 - add r4, sp, #0x10 - add r5, r0, #0x0 - add r0, r1, #0x0 - ldrh r1, [r4, #0x14] - add r6, r3, #0x0 - str r1, [sp, #0x0] - ldrh r1, [r4, #0x10] - lsl r4, r2, #0x1 - ldr r2, [sp, #0x0] - lsl r7, r1, #0x1 - mov r1, #0x14 - mul r6, r1 - mul r1, r0 - ldr r0, [r5, r1] - str r1, [sp, #0x4] - ldr r1, [r5, r6] - add r0, r0, r4 - add r1, r1, r7 - bl MIi_CpuCopy16 - ldr r0, [sp, #0x4] - add r1, r5, r6 - ldr r0, [r5, r0] - ldr r1, [r1, #0x4] - ldr r2, [sp, #0x0] - add r0, r0, r4 - add r1, r1, r7 - bl MIi_CpuCopy16 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020031FC -FUN_020031FC: ; 0x020031FC - mov r2, #0x14 - mul r2, r1 - ldr r0, [r0, r2] - bx lr - - thumb_func_start FUN_02003204 -FUN_02003204: ; 0x02003204 - mov r2, #0x14 - mul r2, r1 - add r0, r0, r2 - ldr r0, [r0, #0x4] - bx lr - .balign 4 - - thumb_func_start FUN_02003210 -FUN_02003210: ; 0x02003210 - push {r0-r3} - push {r3-r7, lr} - sub sp, #0x10 - str r3, [sp, #0x8] - add r5, r0, #0x0 - ldr r0, [sp, #0x38] - mov r6, #0x0 - str r0, [sp, #0x38] - ldr r0, [sp, #0x3c] - add r7, r1, #0x0 - str r0, [sp, #0x3c] - ldr r0, [sp, #0x40] - add r4, r6, #0x0 - str r0, [sp, #0x40] - add r0, sp, #0x28 - ldrh r0, [r0, #0x8] - str r0, [sp, #0xc] -_02003232: - add r0, r7, #0x0 - add r1, r4, #0x0 - bl FUN_02003314 - cmp r0, #0x1 - bne _020032A6 - mov r0, #0x46 - lsl r0, r0, #0x2 - ldrh r0, [r5, r0] - add r1, r4, #0x0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x12 - bl FUN_02003314 - cmp r0, #0x0 - bne _020032A6 - mov r0, #0x14 - add r6, r4, #0x0 - mul r6, r0 - add r0, r4, #0x0 - add r1, r5, r6 - add r2, sp, #0x30 - bl FUN_02003368 - ldr r0, [sp, #0x3c] - add r1, sp, #0x28 - str r0, [sp, #0x0] - ldr r0, [sp, #0x40] - str r0, [sp, #0x4] - add r0, r5, r6 - ldrh r1, [r1, #0x8] - ldr r2, [sp, #0x8] - ldr r3, [sp, #0x38] - add r0, #0xc - bl FUN_020033A4 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02003328 - cmp r4, #0x4 - blo _02003294 - mov r2, #0x1 - add r0, r5, #0x0 - add r1, r4, #0x0 - lsl r2, r2, #0x8 - bl FUN_0200359C - b _0200329E -_02003294: - add r0, r5, #0x0 - add r1, r4, #0x0 - mov r2, #0x10 - bl FUN_0200359C -_0200329E: - ldr r1, [sp, #0xc] - add r0, sp, #0x28 - strh r1, [r0, #0x8] - mov r6, #0x1 -_020032A6: - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0xe - blo _02003232 - cmp r6, #0x1 - bne _02003300 - mov r0, #0x46 - lsl r0, r0, #0x2 - ldrh r2, [r5, r0] - ldr r1, _0200330C ; =0xFFFF0003 - and r1, r2 - lsl r2, r2, #0x10 - lsr r2, r2, #0x12 - orr r2, r7 - lsl r2, r2, #0x12 - lsr r2, r2, #0x10 - orr r1, r2 - strh r1, [r5, r0] - add r1, r0, #0x2 - ldrh r1, [r5, r1] - lsl r1, r1, #0x11 - lsr r1, r1, #0x1f - bne _02003300 - add r1, r0, #0x2 - ldrh r2, [r5, r1] - mov r1, #0x1 - lsl r1, r1, #0xe - orr r2, r1 - add r1, r0, #0x2 - strh r2, [r5, r1] - ldrh r2, [r5, r0] - mov r1, #0x3 - bic r2, r1 - mov r1, #0x1 - orr r1, r2 - strh r1, [r5, r0] - mov r2, #0x0 - add r0, r0, #0x4 - strb r2, [r5, r0] - ldr r0, _02003310 ; =FUN_02003464 - add r1, r5, #0x0 - sub r2, r2, #0x2 - bl FUN_0200CA44 -_02003300: - add r0, r6, #0x0 - add sp, #0x10 - pop {r3-r7} - pop {r3} - add sp, #0x10 - bx r3 - .balign 4 -_0200330C: .word 0xFFFF0003 -_02003310: .word FUN_02003464 - - thumb_func_start FUN_02003314 -FUN_02003314: ; 0x02003314 - mov r3, #0x1 - add r2, r3, #0x0 - lsl r2, r1 - tst r0, r2 - bne _02003320 - mov r3, #0x0 -_02003320: - lsl r0, r3, #0x18 - lsr r0, r0, #0x18 - bx lr - .balign 4 - - thumb_func_start FUN_02003328 -FUN_02003328: ; 0x02003328 - push {r4-r6, lr} - add r5, r0, #0x0 - ldr r0, _02003360 ; =0x0000011A - add r4, r1, #0x0 - ldrh r0, [r5, r0] - lsl r0, r0, #0x12 - lsr r0, r0, #0x12 - bl FUN_02003314 - cmp r0, #0x1 - beq _0200335E - ldr r3, _02003360 ; =0x0000011A - ldr r1, _02003364 ; =0xFFFFC000 - ldrh r2, [r5, r3] - add r0, r2, #0x0 - lsl r2, r2, #0x12 - lsr r6, r2, #0x12 - mov r2, #0x1 - lsl r2, r4 - orr r2, r6 - lsl r2, r2, #0x10 - and r0, r1 - lsr r2, r2, #0x10 - lsr r1, r1, #0x12 - and r1, r2 - orr r0, r1 - strh r0, [r5, r3] -_0200335E: - pop {r4-r6, pc} - .balign 4 -_02003360: .word 0x0000011A -_02003364: .word 0xFFFFC000 - - thumb_func_start FUN_02003368 -FUN_02003368: ; 0x02003368 - push {r4-r5} - cmp r0, #0x4 - ldr r0, [r1, #0x8] - bge _02003374 - lsl r0, r0, #0x13 - b _02003378 -_02003374: - lsr r0, r0, #0x9 - lsl r0, r0, #0x18 -_02003378: - mov r4, #0x0 - lsr r0, r0, #0x18 - add r5, r4, #0x0 - cmp r0, #0x0 - bls _02003398 - mov r3, #0x1 -_02003384: - add r1, r3, #0x0 - lsl r1, r5 - add r1, r4, r1 - lsl r1, r1, #0x10 - lsr r4, r1, #0x10 - add r1, r5, #0x1 - lsl r1, r1, #0x18 - lsr r5, r1, #0x18 - cmp r5, r0 - blo _02003384 -_02003398: - ldrh r0, [r2, #0x0] - and r0, r4 - strh r0, [r2, #0x0] - pop {r4-r5} - bx lr - .balign 4 - - thumb_func_start FUN_020033A4 -FUN_020033A4: ; 0x020033A4 - push {r4-r6, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - add r4, r3, #0x0 - cmp r2, #0x0 - bge _020033D4 - add r0, r2, #0x0 - bl abs - add r0, r0, #0x2 - ldrh r1, [r5, #0x6] - mov r2, #0xf - lsl r0, r0, #0x10 - bic r1, r2 - lsr r2, r0, #0x10 - mov r0, #0xf - and r0, r2 - orr r0, r1 - strh r0, [r5, #0x6] - ldrh r1, [r5, #0x2] - mov r0, #0x3f - bic r1, r0 - strh r1, [r5, #0x2] - b _020033F2 -_020033D4: - ldrh r1, [r5, #0x6] - mov r0, #0xf - bic r1, r0 - mov r0, #0x2 - orr r0, r1 - strh r0, [r5, #0x6] - ldrh r0, [r5, #0x2] - mov r1, #0x3f - bic r0, r1 - lsl r1, r2, #0x10 - lsr r2, r1, #0x10 - mov r1, #0x3f - and r1, r2 - orr r0, r1 - strh r0, [r5, #0x2] -_020033F2: - strh r6, [r5, #0x0] - ldrh r1, [r5, #0x2] - ldr r0, _02003454 ; =0xFFFFF83F - add r3, sp, #0x0 - and r1, r0 - lsl r0, r4, #0x1b - lsr r0, r0, #0x15 - orr r0, r1 - strh r0, [r5, #0x2] - ldrh r1, [r5, #0x2] - ldr r0, _02003458 ; =0xFFFF07FF - add r2, r1, #0x0 - ldrb r1, [r3, #0x10] - and r2, r0 - lsl r0, r1, #0x1b - lsr r0, r0, #0x10 - orr r0, r2 - strh r0, [r5, #0x2] - ldrh r0, [r5, #0x4] - ldr r2, _0200345C ; =0xFFFF8000 - ldrh r6, [r3, #0x14] - lsr r3, r2, #0x11 - and r0, r2 - and r3, r6 - orr r0, r3 - strh r0, [r5, #0x4] - ldrh r3, [r5, #0x6] - ldr r0, _02003460 ; =0xFFFFFC0F - and r0, r3 - ldrh r3, [r5, #0x2] - lsl r3, r3, #0x1a - lsr r3, r3, #0x1a - lsl r3, r3, #0x1a - lsr r3, r3, #0x16 - orr r0, r3 - strh r0, [r5, #0x6] - cmp r4, r1 - ldrh r1, [r5, #0x4] - bhs _02003448 - sub r0, r2, #0x1 - and r0, r1 - strh r0, [r5, #0x4] - pop {r4-r6, pc} -_02003448: - mov r0, #0x2 - lsl r0, r0, #0xe - orr r0, r1 - strh r0, [r5, #0x4] - pop {r4-r6, pc} - nop -_02003454: .word 0xFFFFF83F -_02003458: .word 0xFFFF07FF -_0200345C: .word 0xFFFF8000 -_02003460: .word 0xFFFFFC0F - - thumb_func_start FUN_02003464 -FUN_02003464: ; 0x02003464 - push {r4-r6, lr} - add r4, r1, #0x0 - mov r1, #0x47 - lsl r1, r1, #0x2 - ldrb r2, [r4, r1] - add r5, r0, #0x0 - cmp r2, #0x1 - bne _020034A4 - mov r2, #0x0 - strb r2, [r4, r1] - sub r2, r1, #0x2 - ldrh r3, [r4, r2] - ldr r2, _020034F4 ; =0xFFFFC000 - add r5, r3, #0x0 - and r5, r2 - sub r3, r1, #0x2 - strh r5, [r4, r3] - sub r3, r1, #0x4 - ldrh r5, [r4, r3] - ldr r3, _020034F8 ; =0xFFFF0003 - sub r2, r2, #0x1 - and r5, r3 - sub r3, r1, #0x4 - strh r5, [r4, r3] - sub r3, r1, #0x2 - ldrh r3, [r4, r3] - sub r1, r1, #0x2 - and r2, r3 - strh r2, [r4, r1] - bl FUN_0200CAB4 - pop {r4-r6, pc} -_020034A4: - sub r0, r1, #0x4 - ldrh r2, [r4, r0] - lsl r0, r2, #0x1e - lsr r0, r0, #0x1e - cmp r0, #0x1 - bne _020034F0 - sub r0, r1, #0x2 - ldrh r0, [r4, r0] - ldr r3, _020034F4 ; =0xFFFFC000 - lsl r2, r2, #0x10 - lsr r6, r2, #0x12 - lsr r2, r3, #0x12 - and r0, r3 - and r2, r6 - orr r2, r0 - sub r0, r1, #0x2 - strh r2, [r4, r0] - add r0, r4, #0x0 - bl FUN_02003500 - add r0, r4, #0x0 - bl FUN_02003520 - mov r1, #0x46 - lsl r1, r1, #0x2 - ldrh r0, [r4, r1] - lsl r0, r0, #0x10 - lsr r0, r0, #0x12 - bne _020034F0 - add r0, r1, #0x2 - ldrh r2, [r4, r0] - ldr r0, _020034FC ; =0xFFFFBFFF - and r2, r0 - add r0, r1, #0x2 - strh r2, [r4, r0] - add r0, r5, #0x0 - bl FUN_0200CAB4 -_020034F0: - pop {r4-r6, pc} - nop -_020034F4: .word 0xFFFFC000 -_020034F8: .word 0xFFFF0003 -_020034FC: .word 0xFFFFBFFF - - thumb_func_start FUN_02003500 -FUN_02003500: ; 0x02003500 - push {r4-r6, lr} - add r5, r0, #0x0 - mov r4, #0x0 - mov r6, #0x10 -_02003508: - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02003540 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0x4 - blo _02003508 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02003520 -FUN_02003520: ; 0x02003520 - push {r4-r6, lr} - mov r4, #0x4 - add r6, r4, #0x0 - add r5, r0, #0x0 - add r6, #0xfc -_0200352A: - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02003540 - add r0, r4, #0x1 - lsl r0, r0, #0x18 - lsr r4, r0, #0x18 - cmp r4, #0xe - blo _0200352A - pop {r4-r6, pc} - - thumb_func_start FUN_02003540 -FUN_02003540: ; 0x02003540 - push {r4-r6, lr} - add r5, r0, #0x0 - mov r0, #0x46 - lsl r0, r0, #0x2 - ldrh r0, [r5, r0] - add r4, r1, #0x0 - add r6, r2, #0x0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x12 - bl FUN_02003314 - cmp r0, #0x0 - beq _02003594 - mov r0, #0x14 - mul r0, r4 - add r2, r5, r0 - ldrh r0, [r2, #0x12] - ldrh r3, [r2, #0xe] - lsl r1, r0, #0x16 - lsl r3, r3, #0x1a - lsr r1, r1, #0x1a - lsr r3, r3, #0x1a - cmp r1, r3 - bhs _02003584 - ldr r3, _02003598 ; =0xFFFFFC0F - and r3, r0 - add r0, r1, #0x1 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1a - lsr r0, r0, #0x16 - orr r0, r3 - strh r0, [r2, #0x12] - pop {r4-r6, pc} -_02003584: - ldr r1, _02003598 ; =0xFFFFFC0F - and r0, r1 - strh r0, [r2, #0x12] - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_0200359C -_02003594: - pop {r4-r6, pc} - nop -_02003598: .word 0xFFFFFC0F - - thumb_func_start FUN_0200359C -FUN_0200359C: ; 0x0200359C - push {r4-r7, lr} - sub sp, #0xc - str r1, [sp, #0x4] - str r0, [sp, #0x0] - ldr r0, [sp, #0x4] - mov r1, #0x14 - mul r1, r0 - ldr r0, [sp, #0x0] - mov r6, #0x0 - add r5, r0, r1 - add r0, r5, #0x0 - str r0, [sp, #0x8] - add r0, #0xc - add r7, r2, #0x0 - add r4, r6, #0x0 - str r0, [sp, #0x8] -_020035BC: - ldrh r0, [r5, #0xc] - lsl r1, r6, #0x10 - lsr r1, r1, #0x10 - bl FUN_02003314 - cmp r0, #0x0 - beq _020035DC - ldr r0, [r5, #0x0] - lsl r1, r4, #0x1 - ldr r2, [r5, #0x4] - add r0, r0, r1 - add r1, r2, r1 - ldr r2, [sp, #0x8] - add r3, r7, #0x0 - bl FUN_020035F8 -_020035DC: - add r6, r6, #0x1 - add r4, r4, r7 - cmp r6, #0x10 - blo _020035BC - ldr r1, [sp, #0x4] - add r5, #0xc - lsl r1, r1, #0x18 - ldr r0, [sp, #0x0] - lsr r1, r1, #0x18 - add r2, r5, #0x0 - bl FUN_02003684 - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_020035F8 -FUN_020035F8: ; 0x020035F8 - push {r3-r7, lr} - sub sp, #0x8 - str r0, [sp, #0x4] - mov r0, #0x0 - add r6, r1, #0x0 - mov r12, r0 - str r2, [sp, #0x0] - mov lr, r3 - add r0, r3, #0x0 - beq _02003680 -_0200360C: - ldr r0, [sp, #0x4] - mov r1, #0x1f - ldrh r0, [r0, #0x0] - asr r2, r0, #0x5 - add r5, r2, #0x0 - and r5, r1 - ldr r1, [sp, #0x0] - asr r4, r0, #0xa - ldrh r1, [r1, #0x4] - lsl r1, r1, #0x11 - lsr r3, r1, #0x11 - ldr r1, [sp, #0x0] - ldrh r1, [r1, #0x2] - lsl r1, r1, #0x15 - lsr r2, r1, #0x1b - mov r1, #0x1f - and r1, r4 - mov r4, #0x1f - and r0, r4 - and r4, r3 - sub r4, r4, r0 - mul r4, r2 - asr r4, r4, #0x4 - add r0, r0, r4 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - asr r4, r3, #0xa - mov r0, #0x1f - and r0, r4 - sub r0, r0, r1 - mul r0, r2 - asr r0, r0, #0x4 - add r0, r1, r0 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - asr r3, r3, #0x5 - mov r1, #0x1f - and r1, r3 - sub r1, r1, r5 - mul r1, r2 - asr r1, r1, #0x4 - add r1, r5, r1 - lsl r1, r1, #0x18 - lsl r0, r0, #0xa - lsr r1, r1, #0x13 - orr r0, r1 - orr r0, r7 - strh r0, [r6, #0x0] - ldr r0, [sp, #0x4] - add r6, r6, #0x2 - add r0, r0, #0x2 - str r0, [sp, #0x4] - mov r0, r12 - add r1, r0, #0x1 - mov r0, lr - mov r12, r1 - cmp r1, r0 - blo _0200360C -_02003680: - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02003684 -FUN_02003684: ; 0x02003684 - push {r4-r5} - ldrh r4, [r2, #0x2] - lsl r3, r4, #0x10 - lsl r4, r4, #0x15 - lsr r3, r3, #0x1b - lsr r4, r4, #0x1b - cmp r4, r3 - bne _020036BE - mov r3, #0x46 - lsl r3, r3, #0x2 - ldrh r4, [r0, r3] - mov r2, #0x1 - lsl r2, r1 - lsl r1, r4, #0x10 - lsr r5, r1, #0x12 - add r1, r5, #0x0 - tst r1, r2 - beq _0200371E - eor r2, r5 - lsl r2, r2, #0x10 - ldr r1, _02003724 ; =0xFFFF0003 - lsr r2, r2, #0x10 - lsl r2, r2, #0x12 - and r1, r4 - lsr r2, r2, #0x10 - orr r1, r2 - strh r1, [r0, r3] - pop {r4-r5} - bx lr -_020036BE: - ldrh r0, [r2, #0x4] - lsl r0, r0, #0x10 - lsr r0, r0, #0x1f - bne _020036F4 - lsl r0, r4, #0x10 - asr r1, r0, #0x10 - ldrh r0, [r2, #0x6] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - add r0, r1, r0 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - cmp r4, r3 - ble _020036DE - lsl r0, r3, #0x10 - asr r4, r0, #0x10 -_020036DE: - ldrh r1, [r2, #0x2] - ldr r0, _02003728 ; =0xFFFFF83F - and r1, r0 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1b - lsr r0, r0, #0x15 - orr r0, r1 - strh r0, [r2, #0x2] - pop {r4-r5} - bx lr -_020036F4: - lsl r0, r4, #0x10 - asr r1, r0, #0x10 - ldrh r0, [r2, #0x6] - lsl r0, r0, #0x1c - lsr r0, r0, #0x1c - sub r0, r1, r0 - lsl r0, r0, #0x10 - asr r4, r0, #0x10 - cmp r4, r3 - bge _0200370C - lsl r0, r3, #0x10 - asr r4, r0, #0x10 -_0200370C: - ldrh r1, [r2, #0x2] - ldr r0, _02003728 ; =0xFFFFF83F - and r1, r0 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - lsl r0, r0, #0x1b - lsr r0, r0, #0x15 - orr r0, r1 - strh r0, [r2, #0x2] -_0200371E: - pop {r4-r5} - bx lr - nop -_02003724: .word 0xFFFF0003 -_02003728: .word 0xFFFFF83F - - thumb_func_start FUN_0200372C -FUN_0200372C: ; 0x0200372C - push {r3-r7, lr} - add r6, r0, #0x0 - ldr r0, _020038DC ; =0x0000011A - ldrh r1, [r6, r0] - lsl r1, r1, #0x10 - lsr r1, r1, #0x1f - bne _02003748 - sub r0, r0, #0x2 - ldrh r0, [r6, r0] - lsl r0, r0, #0x1e - lsr r0, r0, #0x1e - cmp r0, #0x1 - beq _02003748 - b _020038DA -_02003748: - mov r7, #0x2 - mov r5, #0x0 - add r4, r6, #0x0 - lsl r7, r7, #0xc -_02003750: - ldr r0, _020038DC ; =0x0000011A - ldrh r1, [r6, r0] - lsl r0, r1, #0x10 - lsr r0, r0, #0x1f - bne _02003770 - ldr r0, [r4, #0x4] - cmp r0, #0x0 - beq _0200377C - lsl r0, r1, #0x12 - lsl r1, r5, #0x10 - lsr r0, r0, #0x12 - lsr r1, r1, #0x10 - bl FUN_02003314 - cmp r0, #0x0 - beq _0200377C -_02003770: - ldr r0, [r4, #0x4] - ldr r1, [r4, #0x8] - bl DC_FlushRange - cmp r5, #0xd - bls _0200377E -_0200377C: - b _020038A4 -_0200377E: - add r0, r5, r5 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0200378A: ; jump table (using 16-bit offset) - .short _020037A6 - _0200378A - 2; case 0 - .short _020037B2 - _0200378A - 2; case 1 - .short _020037BE - _0200378A - 2; case 2 - .short _020037CA - _0200378A - 2; case 3 - .short _020037D6 - _0200378A - 2; case 4 - .short _020037EA - _0200378A - 2; case 5 - .short _020037FE - _0200378A - 2; case 6 - .short _02003814 - _0200378A - 2; case 7 - .short _0200382A - _0200378A - 2; case 8 - .short _0200383E - _0200378A - 2; case 9 - .short _02003852 - _0200378A - 2; case 10 - .short _02003868 - _0200378A - 2; case 11 - .short _0200387E - _0200378A - 2; case 12 - .short _02003892 - _0200378A - 2; case 13 -_020037A6: - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GX_LoadBGPltt - b _020038A4 -_020037B2: - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GXS_LoadBGPltt - b _020038A4 -_020037BE: - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GX_LoadOBJPltt - b _020038A4 -_020037CA: - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GXS_LoadOBJPltt - b _020038A4 -_020037D6: - bl GX_BeginLoadBGExtPltt - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GX_LoadBGExtPltt - bl GX_EndLoadBGExtPltt - b _020038A4 -_020037EA: - bl GX_BeginLoadBGExtPltt - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - add r1, r7, #0x0 - bl GX_LoadBGExtPltt - bl GX_EndLoadBGExtPltt - b _020038A4 -_020037FE: - bl GX_BeginLoadBGExtPltt - mov r1, #0x1 - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - lsl r1, r1, #0xe - bl GX_LoadBGExtPltt - bl GX_EndLoadBGExtPltt - b _020038A4 -_02003814: - bl GX_BeginLoadBGExtPltt - mov r1, #0x6 - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - lsl r1, r1, #0xc - bl GX_LoadBGExtPltt - bl GX_EndLoadBGExtPltt - b _020038A4 -_0200382A: - bl GXS_BeginLoadBGExtPltt - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GXS_LoadBGExtPltt - bl GXS_EndLoadBGExtPltt - b _020038A4 -_0200383E: - bl GXS_BeginLoadBGExtPltt - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - add r1, r7, #0x0 - bl GXS_LoadBGExtPltt - bl GXS_EndLoadBGExtPltt - b _020038A4 -_02003852: - bl GXS_BeginLoadBGExtPltt - mov r1, #0x1 - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - lsl r1, r1, #0xe - bl GXS_LoadBGExtPltt - bl GXS_EndLoadBGExtPltt - b _020038A4 -_02003868: - bl GXS_BeginLoadBGExtPltt - mov r1, #0x6 - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - lsl r1, r1, #0xc - bl GXS_LoadBGExtPltt - bl GXS_EndLoadBGExtPltt - b _020038A4 -_0200387E: - bl GX_BeginLoadOBJExtPltt - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GX_LoadOBJExtPltt - bl GX_EndLoadOBJExtPltt - b _020038A4 -_02003892: - bl GXS_BeginLoadOBJExtPltt - ldr r0, [r4, #0x4] - ldr r2, [r4, #0x8] - mov r1, #0x0 - bl GXS_LoadOBJExtPltt - bl GXS_EndLoadOBJExtPltt -_020038A4: - add r5, r5, #0x1 - add r4, #0x14 - cmp r5, #0xe - bge _020038AE - b _02003750 -_020038AE: - ldr r3, _020038DC ; =0x0000011A - ldr r1, _020038E0 ; =0xFFFFC000 - sub r2, r3, #0x2 - ldrh r2, [r6, r2] - ldrh r0, [r6, r3] - lsl r2, r2, #0x10 - and r0, r1 - lsr r2, r2, #0x12 - lsr r1, r1, #0x12 - and r1, r2 - orr r0, r1 - strh r0, [r6, r3] - ldrh r0, [r6, r3] - lsl r0, r0, #0x12 - lsr r0, r0, #0x12 - bne _020038DA - sub r0, r3, #0x2 - ldrh r1, [r6, r0] - mov r0, #0x3 - bic r1, r0 - sub r0, r3, #0x2 - strh r1, [r6, r0] -_020038DA: - pop {r3-r7, pc} - .balign 4 -_020038DC: .word 0x0000011A -_020038E0: .word 0xFFFFC000 - - thumb_func_start FUN_020038E4 -FUN_020038E4: ; 0x020038E4 - mov r1, #0x46 - lsl r1, r1, #0x2 - ldrh r0, [r0, r1] - lsl r0, r0, #0x10 - lsr r0, r0, #0x12 - bx lr - - thumb_func_start FUN_020038F0 -FUN_020038F0: ; 0x020038F0 - push {r3-r4} - ldr r3, _0200390C ; =0x0000011A - lsl r1, r1, #0x10 - ldrh r4, [r0, r3] - ldr r2, _02003910 ; =0xFFFF7FFF - lsr r1, r1, #0x10 - lsl r1, r1, #0x1f - and r2, r4 - lsr r1, r1, #0x10 - orr r1, r2 - strh r1, [r0, r3] - pop {r3-r4} - bx lr - nop -_0200390C: .word 0x0000011A -_02003910: .word 0xFFFF7FFF - - thumb_func_start FUN_02003914 -FUN_02003914: ; 0x02003914 - push {r3-r7, lr} - sub sp, #0x8 - add r6, r0, #0x0 - str r3, [sp, #0x0] - mov r0, #0x14 - add r4, r1, #0x0 - mul r4, r0 - add r0, sp, #0x10 - ldrh r0, [r0, #0x14] - add r7, r2, #0x0 - ldr r5, [sp, #0x20] - str r0, [sp, #0x4] - lsl r1, r0, #0x1 - add r0, r6, r4 - ldr r0, [r0, #0x8] - cmp r1, r0 - bls _0200393A - bl ErrorHandling -_0200393A: - sub r0, r7, #0x1 - cmp r0, #0x1 - bhi _02003952 - ldr r2, [r6, r4] - lsl r1, r5, #0x1 - add r1, r2, r1 - ldr r2, [sp, #0x4] - ldr r0, [sp, #0x0] - sub r2, r2, r5 - lsl r2, r2, #0x1 - bl MIi_CpuClear16 -_02003952: - cmp r7, #0x0 - beq _0200395A - cmp r7, #0x2 - bne _0200396E -_0200395A: - add r1, r6, r4 - ldr r2, [r1, #0x4] - lsl r1, r5, #0x1 - add r1, r2, r1 - ldr r2, [sp, #0x4] - ldr r0, [sp, #0x0] - sub r2, r2, r5 - lsl r2, r2, #0x1 - bl MIi_CpuClear16 -_0200396E: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02003974 -FUN_02003974: ; 0x02003974 - push {r4-r7, lr} - sub sp, #0xc - str r0, [sp, #0x0] - add r0, sp, #0x10 - ldrh r0, [r0, #0x10] - str r1, [sp, #0x4] - add r7, r2, #0x0 - lsl r1, r0, #0x1b - lsr r1, r1, #0x1b - mov r12, r1 - lsl r1, r0, #0x16 - lsl r0, r0, #0x11 - lsr r1, r1, #0x1b - lsr r0, r0, #0x1b - mov r2, #0x0 - mov lr, r1 - str r0, [sp, #0x8] - cmp r7, #0x0 - bls _020039E2 -_0200399A: - ldr r0, [sp, #0x0] - lsl r6, r2, #0x1 - ldrh r4, [r0, r6] - lsl r0, r4, #0x1b - lsr r1, r0, #0x1b - lsl r0, r4, #0x16 - lsl r4, r4, #0x11 - lsr r5, r4, #0x1b - ldr r4, [sp, #0x8] - lsr r0, r0, #0x1b - sub r4, r4, r5 - mul r4, r3 - asr r4, r4, #0x4 - add r4, r5, r4 - lsl r5, r4, #0xa - mov r4, r12 - sub r4, r4, r1 - mul r4, r3 - asr r4, r4, #0x4 - add r1, r1, r4 - mov r4, lr - sub r4, r4, r0 - mul r4, r3 - asr r4, r4, #0x4 - add r0, r0, r4 - lsl r0, r0, #0x5 - orr r0, r1 - add r1, r5, #0x0 - orr r1, r0 - ldr r0, [sp, #0x4] - strh r1, [r0, r6] - add r0, r2, #0x1 - lsl r0, r0, #0x10 - lsr r2, r0, #0x10 - cmp r2, r7 - blo _0200399A -_020039E2: - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_020039E8 -FUN_020039E8: ; 0x020039E8 - push {r3-r7, lr} - sub sp, #0x8 - add r7, r2, #0x0 - add r5, r0, #0x0 - mov r2, #0x14 - add r6, r1, #0x0 - mul r6, r2 - str r3, [sp, #0x4] - ldr r1, [r5, r6] - mov r0, #0x0 - add r4, r5, r6 - cmp r1, #0x0 - beq _02003A0A - ldr r1, [r4, #0x4] - cmp r1, #0x0 - beq _02003A0A - mov r0, #0x1 -_02003A0A: - cmp r0, #0x0 - bne _02003A12 - bl ErrorHandling -_02003A12: - add r3, sp, #0x10 - ldrh r0, [r3, #0x14] - add r2, r5, r6 - lsl r1, r7, #0x1 - str r0, [sp, #0x0] - ldr r0, [r4, #0x0] - ldr r2, [r2, #0x4] - add r0, r0, r1 - add r1, r2, r1 - ldrb r3, [r3, #0x10] - ldr r2, [sp, #0x4] - bl FUN_02003974 - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02003A30 -FUN_02003A30: ; 0x02003A30 - push {r3-r7, lr} - sub sp, #0x8 - str r3, [sp, #0x4] - add r5, r0, #0x0 - add r6, r1, #0x0 - add r4, r2, #0x0 - ldr r7, [sp, #0x20] - beq _02003A60 -_02003A40: - mov r0, #0x1 - tst r0, r4 - beq _02003A54 - str r7, [sp, #0x0] - ldr r3, [sp, #0x4] - add r0, r5, #0x0 - add r1, r6, #0x0 - mov r2, #0x10 - bl FUN_02003974 -_02003A54: - lsl r0, r4, #0xf - lsr r4, r0, #0x10 - add r6, #0x20 - add r5, #0x20 - cmp r4, #0x0 - bne _02003A40 -_02003A60: - add sp, #0x8 - pop {r3-r7, pc} - - thumb_func_start FUN_02003A64 -FUN_02003A64: ; 0x02003A64 - push {r4-r7, lr} - sub sp, #0xc - str r3, [sp, #0x8] - add r6, r0, #0x0 - add r7, r1, #0x0 - ldr r0, [sp, #0x20] - add r5, r2, #0x0 - mov r1, #0x14 - add r2, r7, #0x0 - str r0, [sp, #0x20] - mul r2, r1 - mov r4, #0x0 - ldr r1, [r6, r2] - add r0, r4, #0x0 - cmp r1, #0x0 - beq _02003A8E - add r1, r6, r2 - ldr r1, [r1, #0x4] - cmp r1, #0x0 - beq _02003A8E - mov r0, #0x1 -_02003A8E: - cmp r0, #0x0 - bne _02003A96 - bl ErrorHandling -_02003A96: - cmp r5, #0x0 - beq _02003AC0 -_02003A9A: - mov r0, #0x1 - tst r0, r5 - beq _02003AB6 - ldr r0, [sp, #0x8] - lsl r2, r4, #0x10 - str r0, [sp, #0x0] - ldr r0, [sp, #0x20] - add r1, r7, #0x0 - str r0, [sp, #0x4] - add r0, r6, #0x0 - lsr r2, r2, #0x10 - mov r3, #0x10 - bl FUN_020039E8 -_02003AB6: - lsl r0, r5, #0xf - lsr r5, r0, #0x10 - add r4, #0x10 - cmp r5, #0x0 - bne _02003A9A -_02003AC0: - add sp, #0xc - pop {r4-r7, pc} - - thumb_func_start FUN_02003AC4 -FUN_02003AC4: ; 0x02003AC4 - push {r3-r7, lr} - mov lr, r1 - mov r12, r2 - add r7, r3, #0x0 - mov r4, #0x0 - cmp r1, #0x0 - ble _02003B3C - ldr r6, [sp, #0x18] -_02003AD4: - ldrh r3, [r0, #0x0] - mov r1, #0x1f - add r2, r3, #0x0 - asr r5, r3, #0xa - and r2, r1 - and r5, r1 - mov r1, #0x1d - mul r1, r5 - mov r5, #0x4c - mul r5, r2 - asr r3, r3, #0x5 - mov r2, #0x1f - and r3, r2 - mov r2, #0x97 - mul r2, r3 - add r2, r5, r2 - add r1, r1, r2 - asr r3, r1, #0x8 - mov r1, r12 - add r2, r1, #0x0 - mul r2, r3 - lsl r1, r2, #0x10 - lsr r1, r1, #0x10 - asr r2, r1, #0x8 - add r1, r7, #0x0 - mul r1, r3 - mul r3, r6 - lsl r1, r1, #0x10 - lsl r3, r3, #0x10 - lsr r1, r1, #0x10 - lsr r3, r3, #0x10 - asr r1, r1, #0x8 - asr r3, r3, #0x8 - cmp r2, #0x1f - ble _02003B1C - mov r2, #0x1f -_02003B1C: - cmp r1, #0x1f - ble _02003B22 - mov r1, #0x1f -_02003B22: - cmp r3, #0x1f - ble _02003B28 - mov r3, #0x1f -_02003B28: - lsl r3, r3, #0xa - lsl r1, r1, #0x5 - orr r1, r3 - orr r1, r2 - strh r1, [r0, #0x0] - add r4, r4, #0x1 - mov r1, lr - add r0, r0, #0x2 - cmp r4, r1 - blt _02003AD4 -_02003B3C: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02003B40 -FUN_02003B40: ; 0x02003B40 - push {r3-r5, lr} - sub sp, #0x8 - add r5, r0, #0x0 - add r0, r1, #0x0 - add r1, r2, #0x0 - add r2, sp, #0x4 - bl FUN_02006C08 - add r4, r0, #0x0 - bne _02003B58 - bl ErrorHandling -_02003B58: - ldr r0, [sp, #0x1c] - cmp r0, #0x0 - bne _02003B64 - ldr r0, [sp, #0x4] - ldr r0, [r0, #0x8] - str r0, [sp, #0x1c] -_02003B64: - ldr r0, [sp, #0x2c] - ldr r2, [sp, #0x24] - str r0, [sp, #0x0] - ldr r0, [sp, #0x4] - ldr r3, [sp, #0x28] - ldr r0, [r0, #0xc] - mov r1, #0x10 - bl FUN_02003AC4 - ldr r0, [sp, #0x1c] - add r3, sp, #0x8 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - str r0, [sp, #0x0] - ldr r1, [sp, #0x4] - ldrh r3, [r3, #0x18] - ldr r1, [r1, #0xc] - ldr r2, [sp, #0x18] - add r0, r5, #0x0 - bl FUN_02003054 - add r0, r4, #0x0 - bl FUN_02016A18 - add sp, #0x8 - pop {r3-r5, pc} - - thumb_func_start FUN_02003B98 -FUN_02003B98: ; 0x02003B98 - push {r4-r6, lr} - add r5, r0, #0x0 - add r6, r1, #0x0 - bl FUN_02003D30 - add r4, r0, #0x0 - bl FUN_020C01D0 - bl FUN_020040C8 - add r0, r4, #0x0 - bl FUN_02004064 - add r0, r4, #0x0 - ldr r1, _02003C00 ; =0x000BBC00 - add r0, #0x94 - bl FUN_020C2A94 - add r1, r4, #0x0 - add r1, #0x90 - str r0, [r1, #0x0] - add r2, r4, #0x0 - add r2, #0x90 - ldr r1, _02003C04 ; =0x02104780 - ldr r2, [r2, #0x0] - add r0, r4, #0x0 - mov r3, #0x0 - bl FUN_020C26F8 - add r0, r4, #0x0 - add r0, #0x90 - ldr r0, [r0, #0x0] - bl FUN_020C39CC - add r0, r4, #0x0 - bl FUN_02004088 - add r0, r4, #0x0 - bl FUN_020040A4 - ldr r0, _02003C08 ; =0x02107070 - mov r1, #0x0 - str r1, [r0, #0x4] - ldr r0, _02003C0C ; =0x000BCD4C - str r5, [r4, r0] - ldrh r0, [r6, #0x0] - lsl r0, r0, #0x1a - lsr r0, r0, #0x1e - bl FUN_02004D60 - pop {r4-r6, pc} - nop -_02003C00: .word 0x000BBC00 -_02003C04: .word 0x02104780 -_02003C08: .word 0x02107070 -_02003C0C: .word 0x000BCD4C - - thumb_func_start FUN_02003C10 -FUN_02003C10: ; 0x02003C10 - push {r4, lr} - bl FUN_02003D30 - add r4, r0, #0x0 - bl FUN_02003D04 - cmp r0, #0x0 - bne _02003C30 - ldr r0, _02003C3C ; =0x000BCD00 - ldr r1, [r4, r0] - cmp r1, #0x0 - ble _02003C2C - sub r1, r1, #0x1 - str r1, [r4, r0] -_02003C2C: - bl FUN_02003C40 -_02003C30: - bl FUN_02005CFC - bl FUN_020C01A0 - pop {r4, pc} - nop -_02003C3C: .word 0x000BCD00 - - thumb_func_start FUN_02003C40 -FUN_02003C40: ; 0x02003C40 - push {r4, lr} - bl FUN_02003D30 - add r4, r0, #0x0 - ldr r0, _02003CDC ; =0x02107070 - ldr r0, [r0, #0x0] - cmp r0, #0x6 - bhi _02003CD8 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02003C5C: ; jump table (using 16-bit offset) - .short _02003CD8 - _02003C5C - 2; case 0 - .short _02003C6A - _02003C5C - 2; case 1 - .short _02003CD8 - _02003C5C - 2; case 2 - .short _02003C72 - _02003C5C - 2; case 3 - .short _02003C82 - _02003C5C - 2; case 4 - .short _02003C92 - _02003C5C - 2; case 5 - .short _02003CB0 - _02003C5C - 2; case 6 -_02003C6A: - mov r0, #0x2 - bl FUN_02003CE8 - pop {r4, pc} -_02003C72: - bl FUN_02005404 - cmp r0, #0x0 - bne _02003CD8 - mov r0, #0x2 - bl FUN_02003CE8 - pop {r4, pc} -_02003C82: - bl FUN_02005404 - cmp r0, #0x0 - bne _02003CD8 - mov r0, #0x2 - bl FUN_02003CE8 - pop {r4, pc} -_02003C92: - bl FUN_02005404 - cmp r0, #0x0 - bne _02003CD8 - bl FUN_02004D94 - cmp r0, #0x0 - bne _02003CD8 - bl FUN_020040DC - ldr r0, _02003CE0 ; =0x000BCD0E - ldrh r0, [r4, r0] - bl FUN_0200521C - pop {r4, pc} -_02003CB0: - bl FUN_02005404 - cmp r0, #0x0 - bne _02003CD8 - bl FUN_02004D94 - cmp r0, #0x0 - bne _02003CD8 - bl FUN_020040DC - ldr r0, _02003CE0 ; =0x000BCD0E - ldrh r0, [r4, r0] - bl FUN_0200521C - ldr r1, _02003CE4 ; =0x000BCD08 - mov r0, #0x7f - ldr r1, [r4, r1] - mov r2, #0x0 - bl FUN_0200538C -_02003CD8: - pop {r4, pc} - nop -_02003CDC: .word 0x02107070 -_02003CE0: .word 0x000BCD0E -_02003CE4: .word 0x000BCD08 - - thumb_func_start FUN_02003CE8 -FUN_02003CE8: ; 0x02003CE8 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02003D30 - ldr r1, _02003CFC ; =0x000BCCFC - mov r2, #0x0 - strh r2, [r0, r1] - ldr r0, _02003D00 ; =0x02107070 - str r4, [r0, #0x0] - pop {r4, pc} - .balign 4 -_02003CFC: .word 0x000BCCFC -_02003D00: .word 0x02107070 - - thumb_func_start FUN_02003D04 -FUN_02003D04: ; 0x02003D04 - push {r4, lr} - bl FUN_02003D30 - add r4, r0, #0x0 - mov r0, #0x2 - bl FUN_020048BC - cmp r0, #0x0 - beq _02003D1A - mov r0, #0x1 - pop {r4, pc} -_02003D1A: - ldr r0, _02003D2C ; =0x000BCD12 - ldrh r0, [r4, r0] - cmp r0, #0x0 - beq _02003D26 - mov r0, #0x1 - pop {r4, pc} -_02003D26: - mov r0, #0x0 - pop {r4, pc} - nop -_02003D2C: .word 0x000BCD12 - - thumb_func_start FUN_02003D30 -FUN_02003D30: ; 0x02003D30 - ldr r0, _02003D34 ; =0x02107078 - bx lr - .balign 4 -_02003D34: .word 0x02107078 - - thumb_func_start FUN_02003D38 -FUN_02003D38: ; 0x02003D38 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02003D30 - cmp r4, #0x27 - bls _02003D46 - b _02003E92 -_02003D46: - add r1, r4, r4 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02003D52: ; jump table (using 16-bit offset) - .short _02003DA8 - _02003D52 - 2; case 0 - .short _02003DAE - _02003D52 - 2; case 1 - .short _02003DB4 - _02003D52 - 2; case 2 - .short _02003DBA - _02003D52 - 2; case 3 - .short _02003DC0 - _02003D52 - 2; case 4 - .short _02003DA2 - _02003D52 - 2; case 5 - .short _02003DC6 - _02003D52 - 2; case 6 - .short _02003DCC - _02003D52 - 2; case 7 - .short _02003DD2 - _02003D52 - 2; case 8 - .short _02003DD8 - _02003D52 - 2; case 9 - .short _02003DDE - _02003D52 - 2; case 10 - .short _02003DE4 - _02003D52 - 2; case 11 - .short _02003DEA - _02003D52 - 2; case 12 - .short _02003DF0 - _02003D52 - 2; case 13 - .short _02003DF6 - _02003D52 - 2; case 14 - .short _02003DFC - _02003D52 - 2; case 15 - .short _02003E02 - _02003D52 - 2; case 16 - .short _02003E08 - _02003D52 - 2; case 17 - .short _02003E0E - _02003D52 - 2; case 18 - .short _02003E14 - _02003D52 - 2; case 19 - .short _02003E1A - _02003D52 - 2; case 20 - .short _02003E20 - _02003D52 - 2; case 21 - .short _02003E26 - _02003D52 - 2; case 22 - .short _02003E2C - _02003D52 - 2; case 23 - .short _02003E32 - _02003D52 - 2; case 24 - .short _02003E38 - _02003D52 - 2; case 25 - .short _02003E3E - _02003D52 - 2; case 26 - .short _02003E44 - _02003D52 - 2; case 27 - .short _02003E4A - _02003D52 - 2; case 28 - .short _02003E50 - _02003D52 - 2; case 29 - .short _02003E56 - _02003D52 - 2; case 30 - .short _02003E5C - _02003D52 - 2; case 31 - .short _02003E62 - _02003D52 - 2; case 32 - .short _02003E68 - _02003D52 - 2; case 33 - .short _02003E6E - _02003D52 - 2; case 34 - .short _02003E74 - _02003D52 - 2; case 35 - .short _02003E7A - _02003D52 - 2; case 36 - .short _02003E80 - _02003D52 - 2; case 37 - .short _02003E86 - _02003D52 - 2; case 38 - .short _02003E8C - _02003D52 - 2; case 39 -_02003DA2: - ldr r1, _02003E9C ; =0x000BCCFE - add r0, r0, r1 - pop {r4, pc} -_02003DA8: - ldr r1, _02003EA0 ; =0x000BBCB8 - add r0, r0, r1 - pop {r4, pc} -_02003DAE: - ldr r1, _02003EA4 ; =0x000BBCBC - add r0, r0, r1 - pop {r4, pc} -_02003DB4: - ldr r1, _02003EA8 ; =0x000BBCC0 - add r0, r0, r1 - pop {r4, pc} -_02003DBA: - ldr r1, _02003EAC ; =0x000BBCE0 - add r0, r0, r1 - pop {r4, pc} -_02003DC0: - ldr r1, _02003EB0 ; =0x000BCCE0 - add r0, r0, r1 - pop {r4, pc} -_02003DC6: - ldr r1, _02003EB4 ; =0x000BCD00 - add r0, r0, r1 - pop {r4, pc} -_02003DCC: - ldr r1, _02003EB8 ; =0x000BCD04 - add r0, r0, r1 - pop {r4, pc} -_02003DD2: - ldr r1, _02003EBC ; =0x000BCD08 - add r0, r0, r1 - pop {r4, pc} -_02003DD8: - ldr r1, _02003EC0 ; =0x000BCD0C - add r0, r0, r1 - pop {r4, pc} -_02003DDE: - ldr r1, _02003EC4 ; =0x000BCD0E - add r0, r0, r1 - pop {r4, pc} -_02003DE4: - ldr r1, _02003EC8 ; =0x000BCD10 - add r0, r0, r1 - pop {r4, pc} -_02003DEA: - ldr r1, _02003ECC ; =0x000BCD11 - add r0, r0, r1 - pop {r4, pc} -_02003DF0: - ldr r1, _02003ED0 ; =0x000BCD12 - add r0, r0, r1 - pop {r4, pc} -_02003DF6: - ldr r1, _02003ED4 ; =0x000BCD14 - add r0, r0, r1 - pop {r4, pc} -_02003DFC: - ldr r1, _02003ED8 ; =0x000BCD15 - add r0, r0, r1 - pop {r4, pc} -_02003E02: - ldr r1, _02003EDC ; =0x000BCD16 - add r0, r0, r1 - pop {r4, pc} -_02003E08: - ldr r1, _02003EE0 ; =0x000BCD17 - add r0, r0, r1 - pop {r4, pc} -_02003E0E: - ldr r1, _02003EE4 ; =0x000BCD18 - add r0, r0, r1 - pop {r4, pc} -_02003E14: - ldr r1, _02003EE8 ; =0x000BCD19 - add r0, r0, r1 - pop {r4, pc} -_02003E1A: - ldr r1, _02003EEC ; =0x000BCD1A - add r0, r0, r1 - pop {r4, pc} -_02003E20: - ldr r1, _02003EF0 ; =0x000BCD1B - add r0, r0, r1 - pop {r4, pc} -_02003E26: - ldr r1, _02003EF4 ; =0x000BCD1C - add r0, r0, r1 - pop {r4, pc} -_02003E2C: - ldr r1, _02003EF8 ; =0x000BCD20 - add r0, r0, r1 - pop {r4, pc} -_02003E32: - ldr r1, _02003EFC ; =0x000BCD24 - add r0, r0, r1 - pop {r4, pc} -_02003E38: - ldr r1, _02003F00 ; =0x000BCD28 - add r0, r0, r1 - pop {r4, pc} -_02003E3E: - ldr r1, _02003F04 ; =0x000BCD2C - add r0, r0, r1 - pop {r4, pc} -_02003E44: - ldr r1, _02003F08 ; =0x000BCD30 - add r0, r0, r1 - pop {r4, pc} -_02003E4A: - ldr r1, _02003F0C ; =0x000BCD34 - add r0, r0, r1 - pop {r4, pc} -_02003E50: - ldr r1, _02003F10 ; =0x000BCD38 - add r0, r0, r1 - pop {r4, pc} -_02003E56: - ldr r1, _02003F14 ; =0x000BCD39 - add r0, r0, r1 - pop {r4, pc} -_02003E5C: - ldr r1, _02003F18 ; =0x000BCD3A - add r0, r0, r1 - pop {r4, pc} -_02003E62: - ldr r1, _02003F1C ; =0x000BCD3C - add r0, r0, r1 - pop {r4, pc} -_02003E68: - ldr r1, _02003F20 ; =0x000BCD40 - add r0, r0, r1 - pop {r4, pc} -_02003E6E: - ldr r1, _02003F24 ; =0x000BCD48 - add r0, r0, r1 - pop {r4, pc} -_02003E74: - ldr r1, _02003F28 ; =0x000BCD4C - add r0, r0, r1 - pop {r4, pc} -_02003E7A: - ldr r1, _02003F2C ; =0x000BCD50 - add r0, r0, r1 - pop {r4, pc} -_02003E80: - ldr r1, _02003F30 ; =0x000BCD54 - add r0, r0, r1 - pop {r4, pc} -_02003E86: - ldr r1, _02003F34 ; =0x000BCD58 - add r0, r0, r1 - pop {r4, pc} -_02003E8C: - ldr r1, _02003F38 ; =0x000BCD5C - add r0, r0, r1 - pop {r4, pc} -_02003E92: - bl ErrorHandling - mov r0, #0x0 - pop {r4, pc} - nop -_02003E9C: .word 0x000BCCFE -_02003EA0: .word 0x000BBCB8 -_02003EA4: .word 0x000BBCBC -_02003EA8: .word 0x000BBCC0 -_02003EAC: .word 0x000BBCE0 -_02003EB0: .word 0x000BCCE0 -_02003EB4: .word 0x000BCD00 -_02003EB8: .word 0x000BCD04 -_02003EBC: .word 0x000BCD08 -_02003EC0: .word 0x000BCD0C -_02003EC4: .word 0x000BCD0E -_02003EC8: .word 0x000BCD10 -_02003ECC: .word 0x000BCD11 -_02003ED0: .word 0x000BCD12 -_02003ED4: .word 0x000BCD14 -_02003ED8: .word 0x000BCD15 -_02003EDC: .word 0x000BCD16 -_02003EE0: .word 0x000BCD17 -_02003EE4: .word 0x000BCD18 -_02003EE8: .word 0x000BCD19 -_02003EEC: .word 0x000BCD1A -_02003EF0: .word 0x000BCD1B -_02003EF4: .word 0x000BCD1C -_02003EF8: .word 0x000BCD20 -_02003EFC: .word 0x000BCD24 -_02003F00: .word 0x000BCD28 -_02003F04: .word 0x000BCD2C -_02003F08: .word 0x000BCD30 -_02003F0C: .word 0x000BCD34 -_02003F10: .word 0x000BCD38 -_02003F14: .word 0x000BCD39 -_02003F18: .word 0x000BCD3A -_02003F1C: .word 0x000BCD3C -_02003F20: .word 0x000BCD40 -_02003F24: .word 0x000BCD48 -_02003F28: .word 0x000BCD4C -_02003F2C: .word 0x000BCD50 -_02003F30: .word 0x000BCD54 -_02003F34: .word 0x000BCD58 -_02003F38: .word 0x000BCD5C - - thumb_func_start FUN_02003F3C -FUN_02003F3C: ; 0x02003F3C - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02003D30 - add r0, #0x90 - ldr r0, [r0, #0x0] - bl FUN_020C290C - add r4, r0, #0x0 - mov r0, #0x0 - mvn r0, r0 - cmp r4, r0 - bne _02003F5A - bl ErrorHandling -_02003F5A: - cmp r5, #0x0 - beq _02003F60 - str r4, [r5, #0x0] -_02003F60: - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02003F64 -FUN_02003F64: ; 0x02003F64 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02003D30 - add r0, #0x90 - ldr r0, [r0, #0x0] - add r1, r4, #0x0 - bl FUN_020C2828 - pop {r4, pc} - - thumb_func_start FUN_02003F78 -FUN_02003F78: ; 0x02003F78 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02003D30 - add r1, r0, #0x0 - add r1, #0x90 - ldr r1, [r1, #0x0] - add r0, r4, #0x0 - bl FUN_020C36A8 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02003F90 -FUN_02003F90: ; 0x02003F90 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02003D30 - add r1, r0, #0x0 - add r1, #0x90 - ldr r1, [r1, #0x0] - add r0, r4, #0x0 - bl FUN_020C3674 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02003FA8 -FUN_02003FA8: ; 0x02003FA8 - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02003D30 - add r2, r0, #0x0 - add r2, #0x90 - ldr r2, [r2, #0x0] - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_020C35E0 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02003FC4 -FUN_02003FC4: ; 0x02003FC4 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02003D30 - add r1, r0, #0x0 - add r1, #0x90 - ldr r1, [r1, #0x0] - add r0, r4, #0x0 - bl FUN_020C360C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02003FDC -FUN_02003FDC: ; 0x02003FDC - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02003D30 - add r1, r0, #0x0 - add r1, #0x90 - ldr r1, [r1, #0x0] - add r0, r4, #0x0 - bl FUN_020C3640 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02003FF4 -FUN_02003FF4: ; 0x02003FF4 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_02003D30 - add r4, r0, #0x0 - cmp r5, #0x9 - blt _02004008 - bl ErrorHandling - mov r5, #0x0 -_02004008: - ldr r0, _02004014 ; =0x000BBC94 - add r1, r4, r0 - lsl r0, r5, #0x2 - add r0, r1, r0 - pop {r3-r5, pc} - nop -_02004014: .word 0x000BBC94 - - thumb_func_start FUN_02004018 -FUN_02004018: ; 0x02004018 - push {r3, lr} - cmp r0, #0x7 - bhi _0200405A - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0200402A: ; jump table (using 16-bit offset) - .short _0200403E - _0200402A - 2; case 0 - .short _0200403A - _0200402A - 2; case 1 - .short _02004042 - _0200402A - 2; case 2 - .short _02004046 - _0200402A - 2; case 3 - .short _0200404A - _0200402A - 2; case 4 - .short _0200404E - _0200402A - 2; case 5 - .short _02004052 - _0200402A - 2; case 6 - .short _02004056 - _0200402A - 2; case 7 -_0200403A: - mov r0, #0x0 - pop {r3, pc} -_0200403E: - mov r0, #0x1 - pop {r3, pc} -_02004042: - mov r0, #0x2 - pop {r3, pc} -_02004046: - mov r0, #0x3 - pop {r3, pc} -_0200404A: - mov r0, #0x4 - pop {r3, pc} -_0200404E: - mov r0, #0x5 - pop {r3, pc} -_02004052: - mov r0, #0x6 - pop {r3, pc} -_02004056: - mov r0, #0x7 - pop {r3, pc} -_0200405A: - bl ErrorHandling - mov r0, #0x3 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02004064 -FUN_02004064: ; 0x02004064 - push {r4, lr} - ldr r2, _02004080 ; =0x000BCD60 - mov r1, #0x0 - add r4, r0, #0x0 - bl Call_FillMemWithValue - ldr r0, _02004084 ; =0x000BCD1C - mov r1, #0x0 -_02004074: - add r1, r1, #0x1 - str r1, [r4, r0] - add r4, r4, #0x4 - cmp r1, #0x7 - blt _02004074 - pop {r4, pc} - .balign 4 -_02004080: .word 0x000BCD60 -_02004084: .word 0x000BCD1C - - thumb_func_start FUN_02004088 -FUN_02004088: ; 0x02004088 - push {r3-r5, lr} - ldr r1, _020040A0 ; =0x000BBC94 - mov r4, #0x0 - add r5, r0, r1 -_02004090: - add r0, r5, #0x0 - bl FUN_020C0F80 - add r4, r4, #0x1 - add r5, r5, #0x4 - cmp r4, #0x9 - blt _02004090 - pop {r3-r5, pc} - .balign 4 -_020040A0: .word 0x000BBC94 - - thumb_func_start FUN_020040A4 -FUN_020040A4: ; 0x020040A4 - push {r4, lr} - add r4, r0, #0x0 - ldr r0, _020040C0 ; =0x000BCD1C - add r0, r4, r0 - bl FUN_02003F3C - mov r0, #0x0 - bl FUN_02003F78 - ldr r0, _020040C4 ; =0x000BCD20 - add r0, r4, r0 - bl FUN_02003F3C - pop {r4, pc} - .balign 4 -_020040C0: .word 0x000BCD1C -_020040C4: .word 0x000BCD20 - - thumb_func_start FUN_020040C8 -FUN_020040C8: ; 0x020040C8 - push {r3, lr} - bl MIC_Init - mov r0, #0x1 - bl PM_SetAmp - mov r0, #0x2 - bl PM_SetAmpGain - pop {r3, pc} - - thumb_func_start FUN_020040DC -FUN_020040DC: ; 0x020040DC - push {r3, lr} - mov r0, #0x7 - mov r1, #0x0 - bl FUN_020C1040 - mov r0, #0x7 - bl FUN_02003FF4 - bl FUN_020C0F68 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020040F4 -FUN_020040F4: ; 0x020040F4 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x5 - bl FUN_02003D38 - strb r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004104 -FUN_02004104: ; 0x02004104 - push {r3, lr} - mov r0, #0x5 - bl FUN_02003D38 - ldrb r0, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02004110 -FUN_02004110: ; 0x02004110 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x9 - bl FUN_02003D38 - strh r4, [r0, #0x0] - mov r0, #0x0 - bl FUN_02004130 - pop {r4, pc} - - thumb_func_start FUN_02004124 -FUN_02004124: ; 0x02004124 - push {r3, lr} - mov r0, #0x9 - bl FUN_02003D38 - ldrh r0, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02004130 -FUN_02004130: ; 0x02004130 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0xa - bl FUN_02003D38 - strh r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004140 -FUN_02004140: ; 0x02004140 - push {r3, lr} - mov r0, #0xa - bl FUN_02003D38 - ldrh r0, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_0200414C -FUN_0200414C: ; 0x0200414C - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x1f - bl FUN_02003D38 - strh r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_0200415C -FUN_0200415C: ; 0x0200415C - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x14 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x15 - bl FUN_02003D38 - cmp r5, #0x33 - bhs _0200417A - strb r5, [r4, #0x0] - mov r1, #0x0 - strb r1, [r0, #0x0] - pop {r3-r5, pc} -_0200417A: - strb r5, [r0, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02004180 -FUN_02004180: ; 0x02004180 - push {r3, lr} - cmp r0, #0x39 - bgt _020041DE - blt _0200418A - b _020042C8 -_0200418A: - cmp r0, #0x35 - bgt _020041CC - blt _02004192 - b _0200429A -_02004192: - cmp r0, #0x33 - bgt _020041C6 - bge _0200427C - cmp r0, #0xe - bhi _020041CA - add r2, r0, r0 - add r2, pc - ldrh r2, [r2, #0x6] - lsl r2, r2, #0x10 - asr r2, r2, #0x10 - add pc, r2 -_020041A8: ; jump table (using 16-bit offset) - .short _0200432C - _020041A8 - 2; case 0 - .short _02004222 - _020041A8 - 2; case 1 - .short _0200422C - _020041A8 - 2; case 2 - .short _02004236 - _020041A8 - 2; case 3 - .short _02004240 - _020041A8 - 2; case 4 - .short _0200424A - _020041A8 - 2; case 5 - .short _0200425E - _020041A8 - 2; case 6 - .short _0200429A - _020041A8 - 2; case 7 - .short _02004268 - _020041A8 - 2; case 8 - .short _02004222 - _020041A8 - 2; case 9 - .short _02004222 - _020041A8 - 2; case 10 - .short _02004254 - _020041A8 - 2; case 11 - .short _02004272 - _020041A8 - 2; case 12 - .short _0200422C - _020041A8 - 2; case 13 - .short _02004222 - _020041A8 - 2; case 14 -_020041C6: - cmp r0, #0x34 - beq _02004290 -_020041CA: - b _0200432C -_020041CC: - cmp r0, #0x37 - bgt _020041D8 - bge _020042AE - cmp r0, #0x36 - beq _020042A4 - b _0200432C -_020041D8: - cmp r0, #0x38 - beq _020042BE - b _0200432C -_020041DE: - cmp r0, #0x3d - bgt _020041F8 - blt _020041E6 - b _020042F0 -_020041E6: - cmp r0, #0x3b - bgt _020041F2 - bge _020042DC - cmp r0, #0x3a - beq _020042D2 - b _0200432C -_020041F2: - cmp r0, #0x3c - beq _020042E6 - b _0200432C -_020041F8: - cmp r0, #0x3f - bgt _02004206 - blt _02004200 - b _02004304 -_02004200: - cmp r0, #0x3e - beq _020042FA - b _0200432C -_02004206: - sub r0, #0x40 - cmp r0, #0x3 - bls _0200420E - b _0200432C -_0200420E: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_0200421A: ; jump table (using 16-bit offset) - .short _0200430E - _0200421A - 2; case 0 - .short _0200431E - _0200421A - 2; case 1 - .short _02004286 - _0200421A - 2; case 2 - .short _020042AE - _0200421A - 2; case 3 -_02004222: - mov r0, #0x1 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_0200422C: - mov r0, #0x2 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_02004236: - mov r0, #0xd - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_02004240: - mov r0, #0x1 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_0200424A: - mov r0, #0x2 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_02004254: - mov r0, #0x1 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_0200425E: - mov r0, #0xb - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_02004268: - mov r0, #0x1 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_02004272: - mov r0, #0xe - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_0200427C: - mov r0, #0x3 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_02004286: - mov r0, #0x6 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_02004290: - mov r0, #0x5 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_0200429A: - mov r0, #0x9 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_020042A4: - mov r0, #0xa - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_020042AE: - ldr r0, _02004330 ; =0x000005E5 - bl FUN_02003FDC - ldr r0, _02004330 ; =0x000005E5 - bl FUN_02003FC4 - add r1, r0, #0x0 - b _0200432C -_020042BE: - mov r0, #0xc - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_020042C8: - mov r0, #0x7 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_020042D2: - mov r0, #0x8 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_020042DC: - mov r0, #0xf - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_020042E6: - mov r0, #0x3 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_020042F0: - mov r0, #0x5 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_020042FA: - mov r0, #0xf - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_02004304: - mov r0, #0x4 - bl FUN_02003F78 - add r1, r0, #0x0 - b _0200432C -_0200430E: - ldr r0, _02004334 ; =0x000005ED - bl FUN_02003FDC - ldr r0, _02004334 ; =0x000005ED - bl FUN_02003FC4 - add r1, r0, #0x0 - b _0200432C -_0200431E: - ldr r0, _02004338 ; =0x000005EC - bl FUN_02003FDC - ldr r0, _02004338 ; =0x000005EC - bl FUN_02003FC4 - add r1, r0, #0x0 -_0200432C: - add r0, r1, #0x0 - pop {r3, pc} - .balign 4 -_02004330: .word 0x000005E5 -_02004334: .word 0x000005ED -_02004338: .word 0x000005EC - - thumb_func_start FUN_0200433C -FUN_0200433C: ; 0x0200433C - push {r3-r7, lr} - sub sp, #0x8 - add r4, r0, #0x0 - mov r0, #0x14 - add r5, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02003D38 - str r0, [sp, #0x0] - mov r0, #0x15 - bl FUN_02003D38 - str r0, [sp, #0x4] - mov r0, #0xd - bl FUN_02003D38 - add r7, r0, #0x0 - cmp r4, #0x33 - bhs _02004370 - ldr r0, [sp, #0x0] - ldrb r0, [r0, #0x0] - cmp r0, r4 - bne _0200437E - add sp, #0x8 - mov r0, #0x0 - pop {r3-r7, pc} -_02004370: - ldr r0, [sp, #0x4] - ldrb r0, [r0, #0x0] - cmp r0, r4 - bne _0200437E - add sp, #0x8 - mov r0, #0x0 - pop {r3-r7, pc} -_0200437E: - add r0, r4, #0x0 - bl FUN_0200415C - cmp r4, #0x39 - bgt _020043DC - bge _02004458 - cmp r4, #0x35 - bgt _020043CA - bge _02004458 - cmp r4, #0x33 - bgt _020043C4 - bge _02004458 - cmp r4, #0xe - bhi _020043C8 - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020043A6: ; jump table (using 16-bit offset) - .short _020044A0 - _020043A6 - 2; case 0 - .short _02004460 - _020043A6 - 2; case 1 - .short _02004484 - _020043A6 - 2; case 2 - .short _02004496 - _020043A6 - 2; case 3 - .short _0200441C - _020043A6 - 2; case 4 - .short _02004430 - _020043A6 - 2; case 5 - .short _02004444 - _020043A6 - 2; case 6 - .short _0200444E - _020043A6 - 2; case 7 - .short _02004496 - _020043A6 - 2; case 8 - .short _02004496 - _020043A6 - 2; case 9 - .short _02004496 - _020043A6 - 2; case 10 - .short _0200443A - _020043A6 - 2; case 11 - .short _02004496 - _020043A6 - 2; case 12 - .short _02004496 - _020043A6 - 2; case 13 - .short _02004472 - _020043A6 - 2; case 14 -_020043C4: - cmp r4, #0x34 - beq _02004458 -_020043C8: - b _020044A0 -_020043CA: - cmp r4, #0x37 - bgt _020043D6 - bge _02004458 - cmp r4, #0x36 - beq _02004458 - b _020044A0 -_020043D6: - cmp r4, #0x38 - beq _02004458 - b _020044A0 -_020043DC: - cmp r4, #0x3d - bgt _020043F4 - bge _02004458 - cmp r4, #0x3b - bgt _020043EE - bge _02004458 - cmp r4, #0x3a - beq _02004458 - b _020044A0 -_020043EE: - cmp r4, #0x3c - beq _02004458 - b _020044A0 -_020043F4: - cmp r4, #0x3f - bgt _02004400 - bge _02004458 - cmp r4, #0x3e - beq _02004458 - b _020044A0 -_02004400: - add r0, r4, #0x0 - sub r0, #0x40 - cmp r0, #0x3 - bhi _020044A0 - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02004414: ; jump table (using 16-bit offset) - .short _02004458 - _02004414 - 2; case 0 - .short _02004458 - _02004414 - 2; case 1 - .short _02004458 - _02004414 - 2; case 2 - .short _02004458 - _02004414 - 2; case 3 -_0200441C: - mov r0, #0x0 - bl FUN_0200516C - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_020044D4 - mov r0, #0x0 - strh r0, [r7, #0x0] - b _020044A0 -_02004430: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02004648 - b _020044A0 -_0200443A: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_02004680 - b _020044A0 -_02004444: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_020046A0 - b _020044A0 -_0200444E: - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_020046C4 - b _020044A0 -_02004458: - add r0, r4, #0x0 - bl FUN_020046E8 - b _020044A0 -_02004460: - mov r0, #0x1 - bl FUN_0200516C - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl FUN_02004704 - b _020044A0 -_02004472: - mov r0, #0x2 - bl FUN_0200516C - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl FUN_02004704 - b _020044A0 -_02004484: - mov r0, #0x0 - bl FUN_0200516C - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl FUN_02004704 - b _020044A0 -_02004496: - add r0, r4, #0x0 - add r1, r5, #0x0 - add r2, r6, #0x0 - bl FUN_02004704 -_020044A0: - mov r0, #0x1 - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020044A8 -FUN_020044A8: ; 0x020044A8 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x17 - bl FUN_02003D38 - ldr r0, [r0, #0x0] - bl FUN_02003F64 - mov r0, #0x18 - bl FUN_02003D38 - bl FUN_02003F3C - add r0, r4, #0x0 - bl FUN_02004180 - mov r0, #0x19 - bl FUN_02003D38 - bl FUN_02003F3C - pop {r4, pc} - - thumb_func_start FUN_020044D4 -FUN_020044D4: ; 0x020044D4 - push {r4-r6, lr} - add r5, r0, #0x0 - mov r0, #0xb - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x17 - bl FUN_02003D38 - mov r0, #0x1f - bl FUN_02003D38 - mov r0, #0x0 - bl FUN_02003FF4 - bl FUN_020048EC - add r4, r0, #0x0 - ldrb r0, [r6, #0x0] - cmp r0, #0x0 - bne _0200450E - cmp r4, r5 - bne _0200450E - bl FUN_02004140 - mov r1, #0x12 - lsl r1, r1, #0x6 - cmp r0, r1 - bne _02004566 -_0200450E: - mov r0, #0x1 - bl FUN_02004DBC - bl FUN_02005454 - cmp r4, r5 - beq _02004528 - mov r0, #0x1 - mov r1, #0x0 - bl FUN_020047C8 - bl FUN_0200541C -_02004528: - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - bne _02004560 - mov r0, #0x2 - bl FUN_02004748 - bl FUN_02003F64 - mov r0, #0x4 - bl FUN_02004180 - mov r0, #0x19 - bl FUN_02003D38 - bl FUN_02003F3C - cmp r4, r5 - beq _02004554 - mov r0, #0x1 - mov r1, #0x0 - bl FUN_020047C8 -_02004554: - lsl r1, r4, #0x10 - add r0, r5, #0x0 - lsr r1, r1, #0x10 - bl FUN_02004568 - pop {r4-r6, pc} -_02004560: - add r0, r5, #0x0 - bl FUN_0200521C -_02004566: - pop {r4-r6, pc} - - thumb_func_start FUN_02004568 -FUN_02004568: ; 0x02004568 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x1f - bl FUN_02003D38 - add r4, r0, #0x0 - ldrh r0, [r4, #0x0] - bl FUN_02004900 - ldr r1, _020045C0 ; =0x000003E9 - cmp r0, r1 - beq _02004594 - add r1, r1, #0x2 - cmp r0, r1 - beq _02004594 - add r0, r5, #0x0 - mov r1, #0x4 - bl FUN_02003FA8 - bl ErrorHandling - b _0200459C -_02004594: - ldrh r0, [r4, #0x0] - mov r1, #0x6 - bl FUN_02003FA8 -_0200459C: - mov r0, #0x1a - bl FUN_02003D38 - bl FUN_02003F3C - mov r0, #0x1 - mov r1, #0x0 - bl FUN_020047C8 - mov r0, #0x7f - mov r1, #0x28 - mov r2, #0x0 - bl FUN_0200538C - mov r0, #0x0 - bl FUN_02004DBC - pop {r3-r5, pc} - .balign 4 -_020045C0: .word 0x000003E9 - - thumb_func_start FUN_020045C4 -FUN_020045C4: ; 0x020045C4 - push {r3-r7, lr} - add r7, r0, #0x0 - mov r0, #0x12 - add r5, r1, #0x0 - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x1f - bl FUN_02003D38 - add r4, r0, #0x0 - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - beq _020045E4 - cmp r5, #0x0 - bne _02004642 -_020045E4: - mov r0, #0x1 - bl FUN_02004748 - bl FUN_02003F64 - ldrh r0, [r4, #0x0] - mov r1, #0x2 - bl FUN_02003FA8 - mov r0, #0x18 - bl FUN_02003D38 - bl FUN_02003F3C - mov r0, #0x4 - bl FUN_02004180 - mov r0, #0x19 - bl FUN_02003D38 - bl FUN_02003F3C - ldrh r0, [r4, #0x0] - bl FUN_02004900 - ldr r1, _02004644 ; =0x000003E9 - cmp r0, r1 - beq _02004630 - add r1, r1, #0x2 - cmp r0, r1 - beq _02004630 - add r0, r7, #0x0 - mov r1, #0x4 - bl FUN_02003FA8 - bl ErrorHandling - b _02004638 -_02004630: - ldrh r0, [r4, #0x0] - mov r1, #0x4 - bl FUN_02003FA8 -_02004638: - mov r0, #0x1a - bl FUN_02003D38 - bl FUN_02003F3C -_02004642: - pop {r3-r7, pc} - .balign 4 -_02004644: .word 0x000003E9 - - thumb_func_start FUN_02004648 -FUN_02004648: ; 0x02004648 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x17 - bl FUN_02003D38 - bl FUN_020051AC - mov r0, #0x2 - bl FUN_02004748 - bl FUN_02003F64 - mov r0, #0x5 - bl FUN_02004180 - mov r0, #0x19 - bl FUN_02003D38 - bl FUN_02003F3C - mov r0, #0x1 - bl FUN_02004DBC - add r0, r4, #0x0 - bl FUN_0200521C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004680 -FUN_02004680: ; 0x02004680 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x17 - bl FUN_02003D38 - bl FUN_0200541C - bl FUN_02004810 - mov r0, #0x4 - bl FUN_020044A8 - add r0, r4, #0x0 - bl FUN_0200521C - pop {r4, pc} - - thumb_func_start FUN_020046A0 -FUN_020046A0: ; 0x020046A0 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x17 - bl FUN_02003D38 - bl FUN_0200541C - mov r0, #0x6 - bl FUN_020044A8 - mov r0, #0x1 - bl FUN_02004DBC - add r0, r4, #0x0 - bl FUN_0200521C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020046C4 -FUN_020046C4: ; 0x020046C4 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x17 - bl FUN_02003D38 - bl FUN_0200541C - mov r0, #0x7 - bl FUN_020044A8 - mov r0, #0x1 - bl FUN_02004DBC - add r0, r4, #0x0 - bl FUN_0200521C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020046E8 -FUN_020046E8: ; 0x020046E8 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02004738 - add r0, r4, #0x0 - bl FUN_02004180 - mov r0, #0x1b - bl FUN_02003D38 - bl FUN_02003F3C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004704 -FUN_02004704: ; 0x02004704 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x17 - add r4, r1, #0x0 - bl FUN_02003D38 - bl FUN_0200541C - add r0, r5, #0x0 - bl FUN_020044A8 - add r0, r4, #0x0 - bl FUN_0200521C - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02004724 -FUN_02004724: ; 0x02004724 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02003D30 - bl FUN_020051AC - add r0, r4, #0x0 - bl FUN_0200521C - pop {r4, pc} - - thumb_func_start FUN_02004738 -FUN_02004738: ; 0x02004738 - push {r3, lr} - mov r0, #0x4 - bl FUN_02004748 - bl FUN_02003F64 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02004748 -FUN_02004748: ; 0x02004748 - push {r3-r5, lr} - add r4, r0, #0x0 - bl FUN_02003D30 - cmp r4, #0x7 - blt _02004762 - bl ErrorHandling - mov r0, #0x1a - bl FUN_02003D38 - ldr r0, [r0, #0x0] - pop {r3-r5, pc} -_02004762: - cmp r4, #0x6 - bhi _020047C4 - add r0, r4, r4 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02004772: ; jump table (using 16-bit offset) - .short _02004780 - _02004772 - 2; case 0 - .short _0200478A - _02004772 - 2; case 1 - .short _02004794 - _02004772 - 2; case 2 - .short _0200479E - _02004772 - 2; case 3 - .short _020047A8 - _02004772 - 2; case 4 - .short _020047B2 - _02004772 - 2; case 5 - .short _020047BC - _02004772 - 2; case 6 -_02004780: - mov r0, #0x16 - bl FUN_02003D38 - add r5, r0, #0x0 - b _020047C4 -_0200478A: - mov r0, #0x17 - bl FUN_02003D38 - add r5, r0, #0x0 - b _020047C4 -_02004794: - mov r0, #0x18 - bl FUN_02003D38 - add r5, r0, #0x0 - b _020047C4 -_0200479E: - mov r0, #0x19 - bl FUN_02003D38 - add r5, r0, #0x0 - b _020047C4 -_020047A8: - mov r0, #0x1a - bl FUN_02003D38 - add r5, r0, #0x0 - b _020047C4 -_020047B2: - mov r0, #0x1b - bl FUN_02003D38 - add r5, r0, #0x0 - b _020047C4 -_020047BC: - mov r0, #0x1c - bl FUN_02003D38 - add r5, r0, #0x0 -_020047C4: - ldr r0, [r5, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_020047C8 -FUN_020047C8: ; 0x020047C8 - push {r4-r6, lr} - add r5, r1, #0x0 - cmp r0, #0x1 - bne _020047DC - mov r0, #0xb - bl FUN_02003D38 - add r6, r0, #0x0 - mov r4, #0x0 - b _020047EA -_020047DC: - cmp r0, #0x7 - bne _0200480E - mov r0, #0xc - bl FUN_02003D38 - add r6, r0, #0x0 - mov r4, #0x7 -_020047EA: - cmp r5, #0x0 - bne _02004800 - add r0, r4, #0x0 - bl FUN_02003FF4 - bl FUN_020048EC - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - bl FUN_02004110 -_02004800: - add r0, r4, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl FUN_020C0F8C - strb r5, [r6, #0x0] -_0200480E: - pop {r4-r6, pc} - - thumb_func_start FUN_02004810 -FUN_02004810: ; 0x02004810 - push {r4, lr} - mov r0, #0xb - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0xc - bl FUN_02003D38 - mov r1, #0x0 - strb r1, [r4, #0x0] - strb r1, [r0, #0x0] - pop {r4, pc} - - thumb_func_start FUN_02004828 -FUN_02004828: ; 0x02004828 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020C0EF4 - pop {r3-r5, pc} - - thumb_func_start FUN_0200483C -FUN_0200483C: ; 0x0200483C - push {r4, lr} - add r4, r1, #0x0 - bpl _02004844 - mov r4, #0x0 -_02004844: - cmp r4, #0x7f - ble _0200484A - mov r4, #0x7f -_0200484A: - bl FUN_02003FF4 - add r1, r4, #0x0 - bl FUN_020C0F30 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004858 -FUN_02004858: ; 0x02004858 - push {r3-r5, lr} - add r5, r1, #0x0 - bl FUN_020C23FC - cmp r5, #0x1 - beq _02004868 - cmp r5, #0x8 - bne _0200486C -_02004868: - mov r4, #0x7f - b _02004872 -_0200486C: - cmp r0, #0x0 - beq _0200488A - ldrb r4, [r0, #0x2] -_02004872: - bl FUN_020313EC - cmp r0, #0x1 - bne _0200488A - add r0, r4, #0x0 - mov r1, #0x5 - bl _s32_div_f - add r1, r0, #0x0 - add r0, r5, #0x0 - bl FUN_0200483C -_0200488A: - pop {r3-r5, pc} - - thumb_func_start FUN_0200488C -FUN_0200488C: ; 0x0200488C - push {r4, lr} - add r4, r1, #0x0 - bl FUN_020048D0 - bl FUN_02004018 - add r1, r4, #0x0 - bl FUN_0200483C - pop {r4, pc} - - thumb_func_start FUN_020048A0 -FUN_020048A0: ; 0x020048A0 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_02003FF4 - mov r2, #0x0 - mvn r2, r2 - add r1, r5, #0x0 - add r3, r2, #0x0 - str r4, [sp, #0x0] - bl FUN_020C3910 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020048BC -FUN_020048BC: ; 0x020048BC - push {r4, lr} - add r4, r0, #0x0 - bpl _020048C6 - bl ErrorHandling -_020048C6: - add r0, r4, #0x0 - bl FUN_020C0F50 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_020048D0 -FUN_020048D0: ; 0x020048D0 - push {r3, lr} - cmp r0, #0x0 - bne _020048DA - mov r0, #0xff - pop {r3, pc} -_020048DA: - bl FUN_020C23FC - cmp r0, #0x0 - bne _020048E6 - mov r0, #0xff - pop {r3, pc} -_020048E6: - ldrb r0, [r0, #0x5] - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_020048EC -FUN_020048EC: ; 0x020048EC - ldr r3, _020048F0 ; =FUN_020C0E14 - bx r3 - .balign 4 -_020048F0: .word FUN_020C0E14 - - thumb_func_start FUN_020048F4 -FUN_020048F4: ; 0x020048F4 - push {r3, lr} - bl FUN_02004900 - bl FUN_020C22D0 - pop {r3, pc} - - thumb_func_start FUN_02004900 -FUN_02004900: ; 0x02004900 - push {r3, lr} - bl FUN_020C23FC - cmp r0, #0x0 - bne _0200490E - mov r0, #0x0 - pop {r3, pc} -_0200490E: - ldrh r0, [r0, #0x0] - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02004914 -FUN_02004914: ; 0x02004914 - ldr r3, _02004918 ; =MIC_StartAutoSampling - bx r3 - .balign 4 -_02004918: .word MIC_StartAutoSampling - - thumb_func_start FUN_0200491C -FUN_0200491C: ; 0x0200491C - push {r3, lr} - bl FUN_02003D30 - bl MIC_StopAutoSampling - pop {r3, pc} - - thumb_func_start FUN_02004928 -FUN_02004928: ; 0x02004928 - push {r3, lr} - bl MIC_DoSamplingAsync - pop {r3, pc} - - thumb_func_start FUN_02004930 -FUN_02004930: ; 0x02004930 - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_02003D30 - mov r0, #0xf - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r4, r0, #0x0 - cmp r5, #0xe - beq _02004954 - cmp r5, #0xf - beq _02004954 - bl ErrorHandling -_02004954: - cmp r5, #0xe - bne _02004962 - ldrb r0, [r6, #0x0] - cmp r0, #0x0 - bne _02004962 - bl ErrorHandling -_02004962: - cmp r5, #0xf - bne _02004970 - ldrb r0, [r4, #0x0] - cmp r0, #0x0 - bne _02004970 - bl ErrorHandling -_02004970: - cmp r5, #0xe - bne _0200497C - mov r0, #0x0 - bl FUN_02003D38 - pop {r4-r6, pc} -_0200497C: - mov r0, #0x1 - bl FUN_02003D38 - pop {r4-r6, pc} - - thumb_func_start FUN_02004984 -FUN_02004984: ; 0x02004984 - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_02003D30 - mov r0, #0xf - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r4, r0, #0x0 - cmp r5, #0xe - beq _020049A8 - cmp r5, #0xf - beq _020049A8 - bl ErrorHandling -_020049A8: - cmp r5, #0xe - bne _020049D6 - ldrb r0, [r6, #0x0] - cmp r0, #0x0 - bne _020049D0 - mov r0, #0x0 - bl FUN_02003D38 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020C0688 - str r0, [r4, #0x0] - cmp r0, #0x0 - bne _020049CA - mov r0, #0x0 - pop {r4-r6, pc} -_020049CA: - mov r0, #0x1 - strb r0, [r6, #0x0] - b _020049FE -_020049D0: - bl ErrorHandling - b _020049FE -_020049D6: - ldrb r0, [r4, #0x0] - cmp r0, #0x0 - bne _020049FA - mov r0, #0x1 - bl FUN_02003D38 - add r6, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020C0688 - str r0, [r6, #0x0] - cmp r0, #0x0 - bne _020049F4 - mov r0, #0x0 - pop {r4-r6, pc} -_020049F4: - mov r0, #0x1 - strb r0, [r4, #0x0] - b _020049FE -_020049FA: - bl ErrorHandling -_020049FE: - mov r0, #0x1 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02004A04 -FUN_02004A04: ; 0x02004A04 - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_02003D30 - mov r0, #0xf - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r4, r0, #0x0 - cmp r5, #0xe - beq _02004A2A - cmp r5, #0xf - beq _02004A2A - bl ErrorHandling - pop {r4-r6, pc} -_02004A2A: - cmp r5, #0xe - bne _02004A4C - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - bne _02004A46 - add r0, r5, #0x0 - bl FUN_02004930 - ldr r0, [r0, #0x0] - bl FUN_020C0670 - mov r0, #0x0 - strb r0, [r6, #0x0] - pop {r4-r6, pc} -_02004A46: - bl ErrorHandling - pop {r4-r6, pc} -_02004A4C: - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - bne _02004A64 - add r0, r5, #0x0 - bl FUN_02004930 - ldr r0, [r0, #0x0] - bl FUN_020C0670 - mov r0, #0x0 - strb r0, [r4, #0x0] - pop {r4-r6, pc} -_02004A64: - bl ErrorHandling - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_02004A6C -FUN_02004A6C: ; 0x02004A6C - push {r3-r5, lr} - sub sp, #0x18 - add r3, r0, #0x0 - ldr r0, [r3, #0x10] - add r4, r1, #0x0 - str r0, [sp, #0x0] - ldr r0, [r3, #0x14] - str r0, [sp, #0x4] - ldr r0, [r3, #0x18] - str r0, [sp, #0x8] - ldr r0, [r3, #0x1c] - str r0, [sp, #0xc] - ldr r0, [r3, #0x20] - str r0, [sp, #0x10] - ldr r0, [r3, #0x24] - str r0, [sp, #0x14] - ldr r0, [r3, #0x0] - ldr r1, [r3, #0x4] - ldr r2, [r3, #0x8] - ldr r0, [r0, #0x0] - ldr r3, [r3, #0xc] - bl FUN_020C054C - add r5, r0, #0x0 - bne _02004AA4 - add r0, r4, #0x0 - bl FUN_02004A04 -_02004AA4: - add r0, r5, #0x0 - add sp, #0x18 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02004AAC -FUN_02004AAC: ; 0x02004AAC - push {r3, lr} - bl FUN_02004930 - ldr r0, [r0, #0x0] - bl FUN_020C0510 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02004ABC -FUN_02004ABC: ; 0x02004ABC - push {r3, lr} - bl FUN_02004930 - ldr r0, [r0, #0x0] - bl FUN_020C03B8 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02004ACC -FUN_02004ACC: ; 0x02004ACC - push {r4, lr} - add r4, r1, #0x0 - cmp r4, #0x7f - bls _02004AD6 - mov r4, #0x7f -_02004AD6: - bl FUN_02004930 - ldr r0, [r0, #0x0] - add r1, r4, #0x0 - bl FUN_020C041C - pop {r4, pc} - - thumb_func_start FUN_02004AE4 -FUN_02004AE4: ; 0x02004AE4 - push {r4, lr} - add r4, r1, #0x0 - bl FUN_02004930 - ldr r0, [r0, #0x0] - add r1, r4, #0x0 - bl FUN_020C044C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004AF8 -FUN_02004AF8: ; 0x02004AF8 - push {r3-r5, lr} - add r4, r0, #0x0 - add r5, r1, #0x0 - bl FUN_020313EC - cmp r0, #0x1 - bne _02004B20 - add r0, r4, #0x0 - bl FUN_02004930 - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x5 - bl _s32_div_f - add r1, r0, #0x0 - ldr r0, [r4, #0x0] - bl FUN_020C04DC - pop {r3-r5, pc} -_02004B20: - add r0, r4, #0x0 - bl FUN_02004930 - ldr r0, [r0, #0x0] - add r1, r5, #0x0 - bl FUN_020C04DC - pop {r3-r5, pc} - - thumb_func_start FUN_02004B30 -FUN_02004B30: ; 0x02004B30 - push {r3-r7, lr} - sub sp, #0x30 - add r6, r0, #0x0 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - add r5, r3, #0x0 - bl FUN_02003D30 - mov r0, #0x21 - bl FUN_02003D38 - add r4, r0, #0x0 - cmp r5, #0xe - beq _02004B54 - cmp r5, #0xf - beq _02004B54 - bl ErrorHandling -_02004B54: - add r0, r6, #0x0 - bl FUN_020C226C - add r7, r0, #0x0 - bne _02004B68 - bl ErrorHandling - add sp, #0x30 - mov r0, #0x0 - pop {r3-r7, pc} -_02004B68: - ldr r0, [r7, #0x0] - lsl r0, r0, #0x8 - lsr r0, r0, #0x8 - bl FUN_020C217C - add r6, r0, #0x0 - bne _02004B80 - bl ErrorHandling - add sp, #0x30 - mov r0, #0x0 - pop {r3-r7, pc} -_02004B80: - cmp r5, #0xe - bne _02004BCE - ldr r0, [sp, #0x48] - add r1, r6, #0x0 - bl FUN_02016998 - str r0, [r4, #0x0] - cmp r0, #0x0 - bne _02004B9C - bl ErrorHandling - add sp, #0x30 - mov r0, #0x0 - pop {r3-r7, pc} -_02004B9C: - mov r1, #0x0 - add r2, r6, #0x0 - bl Call_FillMemWithValue - ldr r0, [r7, #0x0] - ldr r1, [r4, #0x0] - lsl r0, r0, #0x8 - lsr r0, r0, #0x8 - add r2, r6, #0x0 - mov r3, #0x0 - bl FUN_020C2104 - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - bne _02004BC6 - bl ErrorHandling - add sp, #0x30 - mov r0, #0x0 - pop {r3-r7, pc} -_02004BC6: - ldr r0, [r4, #0x0] - add r1, r6, #0x0 - bl FUN_02004C1C -_02004BCE: - add r0, r5, #0x0 - bl FUN_02004930 - mov r1, #0x0 - str r1, [sp, #0xc] - str r0, [sp, #0x8] - ldr r0, [r4, #0x0] - str r0, [sp, #0x10] - ldr r0, _02004C18 ; =0x00003443 - str r1, [sp, #0x14] - str r0, [sp, #0x20] - ldr r0, [sp, #0x0] - str r1, [sp, #0x18] - str r0, [sp, #0x24] - mov r0, #0x6 - lsl r0, r0, #0xc - str r0, [sp, #0x28] - ldr r0, [sp, #0x4] - add r1, r5, #0x0 - str r0, [sp, #0x2c] - add r0, sp, #0x8 - str r6, [sp, #0x1c] - bl FUN_02004A6C - add r4, r0, #0x0 - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - bl FUN_02004AF8 - mov r0, #0xe - bl FUN_02003D38 - mov r1, #0x1 - strb r1, [r0, #0x0] - add r0, r4, #0x0 - add sp, #0x30 - pop {r3-r7, pc} - .balign 4 -_02004C18: .word 0x00003443 - - thumb_func_start FUN_02004C1C -FUN_02004C1C: ; 0x02004C1C - push {r3-r6} - mov r5, #0x0 - lsr r6, r1, #0x1 - beq _02004C36 - sub r2, r1, #0x1 -_02004C26: - sub r3, r2, r5 - ldrb r4, [r0, r5] - ldrb r1, [r0, r3] - strb r1, [r0, r5] - add r5, r5, #0x1 - strb r4, [r0, r3] - cmp r5, r6 - blo _02004C26 -_02004C36: - pop {r3-r6} - bx lr - .balign 4 - - thumb_func_start FUN_02004C3C -FUN_02004C3C: ; 0x02004C3C - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_02003D30 - mov r0, #0xe - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x21 - bl FUN_02003D38 - add r6, r0, #0x0 - cmp r5, #0xe - beq _02004C60 - cmp r5, #0xf - beq _02004C60 - bl ErrorHandling -_02004C60: - add r0, r5, #0x0 - bl FUN_02004AAC - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - bne _02004C76 - mov r0, #0x0 - strb r0, [r4, #0x0] - ldr r0, [r6, #0x0] - bl FUN_02016A18 -_02004C76: - pop {r4-r6, pc} - - thumb_func_start FUN_02004C78 -FUN_02004C78: ; 0x02004C78 - ldr r3, _02004C7C ; =FUN_020C1E58 - bx r3 - .balign 4 -_02004C7C: .word FUN_020C1E58 - - thumb_func_start FUN_02004C80 -FUN_02004C80: ; 0x02004C80 - push {r3-r4, lr} - sub sp, #0x4 - add r4, r0, #0x0 - bl FUN_02003D30 - mov r0, #0x3 - bl FUN_02003D38 - mov r1, #0x1 - mov r3, #0xfa - lsl r1, r1, #0xc - mov r2, #0x0 - lsl r3, r3, #0x6 - str r4, [sp, #0x0] - bl FUN_020C1FF0 - add sp, #0x4 - pop {r3-r4, pc} - - thumb_func_start FUN_02004CA4 -FUN_02004CA4: ; 0x02004CA4 - ldr r3, _02004CA8 ; =FUN_020C1F54 - bx r3 - .balign 4 -_02004CA8: .word FUN_020C1F54 - - thumb_func_start FUN_02004CAC -FUN_02004CAC: ; 0x02004CAC - ldr r3, _02004CB0 ; =FUN_020C1FA4 - bx r3 - .balign 4 -_02004CB0: .word FUN_020C1FA4 - - thumb_func_start FUN_02004CB4 -FUN_02004CB4: ; 0x02004CB4 - push {r3-r4, lr} - sub sp, #0xc - bl FUN_02003D30 - mov r0, #0x4 - bl FUN_02003D38 - mov r1, #0x0 - mov r2, #0x1c - bl MI_CpuFill8 - mov r0, #0x3 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x4 - bl FUN_02003D38 - mov r2, #0x2 - ldr r1, _02004CF4 ; =FUN_02005068 - str r2, [sp, #0x0] - str r1, [sp, #0x4] - str r0, [sp, #0x8] - lsl r1, r2, #0xb - ldr r3, _02004CF8 ; =0x000055F0 - add r0, r4, #0x0 - mov r2, #0x0 - bl FUN_020C1EA4 - add sp, #0xc - pop {r3-r4, pc} - nop -_02004CF4: .word FUN_02005068 -_02004CF8: .word 0x000055F0 - - thumb_func_start FUN_02004CFC -FUN_02004CFC: ; 0x02004CFC - ldr r3, _02004D00 ; =FUN_020C1E68 - bx r3 - .balign 4 -_02004D00: .word FUN_020C1E68 - - thumb_func_start FUN_02004D04 -FUN_02004D04: ; 0x02004D04 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x13 - bl FUN_02003D38 - cmp r4, #0x8 - ble _02004D16 - mov r4, #0x8 - b _02004D1C -_02004D16: - cmp r4, #0x0 - bge _02004D1C - mov r4, #0x0 -_02004D1C: - strb r4, [r0, #0x0] - pop {r4, pc} - - thumb_func_start FUN_02004D20 -FUN_02004D20: ; 0x02004D20 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020C0EA4 - pop {r3-r5, pc} - - thumb_func_start FUN_02004D34 -FUN_02004D34: ; 0x02004D34 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_020048D0 - bl FUN_02004018 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_02004D20 - pop {r3-r5, pc} - - thumb_func_start FUN_02004D4C -FUN_02004D4C: ; 0x02004D4C - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020C0E7C - pop {r3-r5, pc} - - thumb_func_start FUN_02004D60 -FUN_02004D60: ; 0x02004D60 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_020C0174 - ldr r0, _02004D70 ; =0x021C3DD8 - str r4, [r0, #0x0] - pop {r4, pc} - nop -_02004D70: .word 0x021C3DD8 - - thumb_func_start FUN_02004D74 -FUN_02004D74: ; 0x02004D74 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x6 - bl FUN_02003D38 - str r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004D84 -FUN_02004D84: ; 0x02004D84 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x7 - bl FUN_02003D38 - str r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004D94 -FUN_02004D94: ; 0x02004D94 - push {r3, lr} - mov r0, #0x7 - bl FUN_02003D38 - ldrh r1, [r0, #0x0] - cmp r1, #0x0 - bne _02004DAA - mov r1, #0x0 - strh r1, [r0, #0x0] - add r0, r1, #0x0 - pop {r3, pc} -_02004DAA: - sub r1, r1, #0x1 - strh r1, [r0, #0x0] - ldrh r0, [r0, #0x0] - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02004DB4 -FUN_02004DB4: ; 0x02004DB4 - ldr r0, _02004DB8 ; =0x021C3DE0 - bx lr - .balign 4 -_02004DB8: .word 0x021C3DE0 - - thumb_func_start FUN_02004DBC -FUN_02004DBC: ; 0x02004DBC - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x12 - bl FUN_02003D38 - strb r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02004DCC -FUN_02004DCC: ; 0x02004DCC - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - mov r0, #0x15 - add r6, r1, #0x0 - add r7, r2, #0x0 - str r3, [sp, #0x8] - bl FUN_02003D38 - add r4, r0, #0x0 - add r0, sp, #0x10 - ldrb r0, [r0, #0x10] - ldr r3, [sp, #0x8] - add r1, r6, #0x0 - str r0, [sp, #0x0] - ldr r0, [sp, #0x24] - add r2, r7, #0x0 - str r0, [sp, #0x4] - add r0, r5, #0x0 - bl FUN_02004E44 - mov r0, #0x0 - strb r0, [r4, #0x0] - mov r0, #0x5 - bl FUN_02003CE8 - mov r0, #0x1 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02004E08 -FUN_02004E08: ; 0x02004E08 - push {r4-r7, lr} - sub sp, #0xc - add r5, r0, #0x0 - mov r0, #0x8 - add r6, r1, #0x0 - add r7, r2, #0x0 - str r3, [sp, #0x8] - bl FUN_02003D38 - add r4, r0, #0x0 - add r0, sp, #0x10 - ldrb r0, [r0, #0x14] - ldr r3, [sp, #0x8] - add r1, r6, #0x0 - str r0, [sp, #0x0] - ldr r0, [sp, #0x28] - add r2, r7, #0x0 - str r0, [sp, #0x4] - add r0, r5, #0x0 - bl FUN_02004E44 - ldr r0, [sp, #0x20] - str r0, [r4, #0x0] - mov r0, #0x6 - bl FUN_02003CE8 - mov r0, #0x1 - add sp, #0xc - pop {r4-r7, pc} - .balign 4 - - thumb_func_start FUN_02004E44 -FUN_02004E44: ; 0x02004E44 - push {r3-r7, lr} - add r6, r2, #0x0 - mov r0, #0x2 - add r5, r1, #0x0 - add r7, r3, #0x0 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x0 - add r1, r6, #0x0 - bl FUN_020053CC - mov r0, #0x0 - bl FUN_02004110 - add r0, r5, #0x0 - bl FUN_02004130 - add r0, r7, #0x0 - bl FUN_02004D84 - add r0, r5, #0x0 - bl FUN_020048F4 - str r0, [r4, #0x0] - add r0, sp, #0x8 - ldrb r0, [r0, #0x10] - bl FUN_02004DBC - pop {r3-r7, pc} - - thumb_func_start FUN_02004E80 -FUN_02004E80: ; 0x02004E80 - cmp r0, #0x0 - bne _02004E88 - mov r0, #0x0 - bx lr -_02004E88: - add r0, #0xc - bx lr - - thumb_func_start FUN_02004E8C -FUN_02004E8C: ; 0x02004E8C - cmp r0, #0x0 - bne _02004E94 - mov r0, #0x0 - bx lr -_02004E94: - ldr r0, [r0, #0x8] - bx lr - - thumb_func_start FUN_02004E98 -FUN_02004E98: ; 0x02004E98 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x5 - bl FUN_02004748 - bl FUN_02003F64 - lsl r0, r5, #0x10 - lsr r4, r0, #0x10 - ldr r0, _02004ECC ; =0x000001B9 - cmp r4, r0 - beq _02004EBC - add r0, #0x36 - cmp r5, r0 - bgt _02004EBA - cmp r5, #0x0 - bne _02004EBC -_02004EBA: - mov r4, #0x1 -_02004EBC: - add r0, r4, #0x0 - bl FUN_02003FC4 - add r0, r4, #0x0 - bl FUN_02004ED0 - pop {r3-r5, pc} - nop -_02004ECC: .word 0x000001B9 - - thumb_func_start FUN_02004ED0 -FUN_02004ED0: ; 0x02004ED0 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x20 - bl FUN_02003D38 - add r4, r0, #0x0 - lsl r0, r5, #0x10 - ldr r1, _02004F24 ; =0x000001B9 - lsr r0, r0, #0x10 - cmp r0, r1 - beq _02004EF2 - add r1, #0x36 - cmp r5, r1 - bgt _02004EF0 - cmp r5, #0x0 - bne _02004EF2 -_02004EF0: - mov r0, #0x1 -_02004EF2: - bl FUN_020C226C - cmp r0, #0x0 - bne _02004F02 - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} -_02004F02: - ldr r0, [r0, #0x0] - lsl r0, r0, #0x8 - lsr r0, r0, #0x8 - bl FUN_020C20DC - cmp r0, #0x0 - bne _02004F18 - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} -_02004F18: - mov r1, #0x0 - bl SND_GetWaveDataAddress - str r0, [r4, #0x0] - pop {r3-r5, pc} - nop -_02004F24: .word 0x000001B9 - - thumb_func_start FUN_02004F28 -FUN_02004F28: ; 0x02004F28 - push {r4-r6, lr} - mov r0, #0x1 - add r5, r1, #0x0 - add r6, r2, #0x0 - bl FUN_02004F64 - mov r1, #0x3 - add r4, r0, #0x0 - add r0, r6, #0x0 - lsl r1, r1, #0x8 - ldr r5, [r5, #0x8] - bl _s32_div_f - lsl r1, r0, #0x1 - bpl _02004F50 - mov r0, #0x20 - bl _s32_div_f - neg r0, r0 - b _02004F5A -_02004F50: - cmp r1, #0x0 - bne _02004F58 - mov r0, #0x20 - b _02004F5A -_02004F58: - lsl r0, r1, #0x5 -_02004F5A: - mul r0, r4 - cmp r0, r5 - blo _02004F62 - mov r0, #0x0 -_02004F62: - pop {r4-r6, pc} - - thumb_func_start FUN_02004F64 -FUN_02004F64: ; 0x02004F64 - push {r3, lr} - bl FUN_02003FF4 - bl FUN_020C0DD4 - pop {r3, pc} - - thumb_func_start FUN_02004F70 -FUN_02004F70: ; 0x02004F70 - push {r3-r7, lr} - sub sp, #0x8 - str r0, [sp, #0x0] - add r4, r1, #0x0 - add r6, r2, #0x0 - ldr r1, [sp, #0x0] - mov r0, #0x1 - add r2, r3, #0x0 - bl FUN_02004F28 - add r1, r0, #0x0 - mov r12, r0 - sub r1, #0x64 - bpl _02004F8E - mov r1, #0x0 -_02004F8E: - ldr r0, [sp, #0x0] - mov r3, #0x0 - add r0, r0, r1 - ldrb r0, [r0, #0xc] - add r7, r3, #0x0 - cmp r0, #0x80 - bhs _02004FA0 - mov r0, #0x1 - b _02004FA2 -_02004FA0: - sub r0, r3, #0x1 -_02004FA2: - lsl r0, r0, #0x18 - asr r5, r0, #0x18 - mov r0, r12 - cmp r1, r0 - bhs _02005022 -_02004FAC: - mov r0, #0x0 - cmp r5, #0x0 - ble _02004FC6 - ldr r2, [sp, #0x0] - add r2, r2, r1 - str r2, [sp, #0x4] - ldrb r2, [r2, #0xc] - cmp r2, #0x80 - bls _02004FC2 - mov r0, #0x1 - b _02004FD8 -_02004FC2: - add r3, r3, #0x1 - b _02004FD8 -_02004FC6: - ldr r2, [sp, #0x0] - add r2, r2, r1 - str r2, [sp, #0x4] - ldrb r2, [r2, #0xc] - cmp r2, #0x80 - bhs _02004FD6 - mov r0, #0x1 - b _02004FD8 -_02004FD6: - add r3, r3, #0x1 -_02004FD8: - cmp r0, #0x1 - bne _0200501A - ldr r5, _02005064 ; =0x020ECB8C - mov r2, #0x0 -_02004FE0: - ldrb r0, [r5, #0x0] - cmp r3, r0 - bge _02004FEA - add r7, r2, #0x0 - b _02004FF2 -_02004FEA: - add r2, r2, #0x1 - add r5, r5, #0x1 - cmp r2, #0x9 - blt _02004FE0 -_02004FF2: - cmp r7, r6 - blt _02004FF8 - sub r7, r6, #0x1 -_02004FF8: - cmp r3, #0x0 - beq _02005006 - sub r0, r6, #0x1 - sub r0, r0, r7 - ldrb r2, [r4, r0] - add r2, r2, #0x1 - strb r2, [r4, r0] -_02005006: - ldr r0, [sp, #0x4] - mov r3, #0x0 - ldrb r0, [r0, #0xc] - cmp r0, #0x80 - bhs _02005014 - mov r0, #0x1 - b _02005016 -_02005014: - sub r0, r3, #0x1 -_02005016: - lsl r0, r0, #0x18 - asr r5, r0, #0x18 -_0200501A: - add r1, r1, #0x2 - mov r0, r12 - cmp r1, r0 - blo _02004FAC -_02005022: - mov r2, #0x0 - cmp r6, #0x0 - ble _02005038 - mov r0, #0x9 -_0200502A: - ldrb r1, [r4, r2] - cmp r1, #0xa - blo _02005032 - strb r0, [r4, r2] -_02005032: - add r2, r2, #0x1 - cmp r2, r6 - blt _0200502A -_02005038: - sub r2, r6, #0x1 - mov r3, #0x0 - cmp r2, #0x0 - ble _02005060 -_02005040: - ldrb r0, [r4, r3] - add r1, r4, r3 - cmp r0, #0x0 - bne _0200505A - ldrb r0, [r1, #0x1] - cmp r0, #0x0 - beq _0200505A - add r0, r3, #0x1 - ldrb r0, [r4, r0] - add sp, #0x8 - lsr r0, r0, #0x1 - strb r0, [r1, #0x0] - pop {r3-r7, pc} -_0200505A: - add r3, r3, #0x1 - cmp r3, r2 - blt _02005040 -_02005060: - add sp, #0x8 - pop {r3-r7, pc} - .balign 4 -_02005064: .word 0x020ECB8C - - thumb_func_start FUN_02005068 -FUN_02005068: ; 0x02005068 - push {r3-r7, lr} - sub sp, #0x30 - add r5, r0, #0x0 - ldr r0, [sp, #0x48] - add r6, r1, #0x0 - str r0, [sp, #0xc] - mov r0, #0x13 - str r2, [sp, #0x0] - add r4, r3, #0x0 - bl FUN_02003D38 - add r7, r0, #0x0 - cmp r4, #0x1 - beq _0200508A - ldr r0, [sp, #0x0] - lsr r0, r0, #0x1 - str r0, [sp, #0x0] -_0200508A: - ldrb r2, [r7, #0x0] - cmp r2, #0x0 - beq _0200515A - mov r0, #0x0 - cmp r2, #0x0 - ble _020050BC - add r1, sp, #0x10 -_02005098: - ldr r3, [sp, #0x0] - sub r2, r3, r2 - add r2, r0, r2 - lsl r2, r2, #0x1 - ldrsh r2, [r5, r2] - strh r2, [r1, #0x0] - ldrb r3, [r7, #0x0] - ldr r2, [sp, #0x0] - sub r2, r2, r3 - add r2, r0, r2 - lsl r2, r2, #0x1 - ldrsh r2, [r6, r2] - add r0, r0, #0x1 - strh r2, [r1, #0x2] - ldrb r2, [r7, #0x0] - add r1, r1, #0x4 - cmp r0, r2 - blt _02005098 -_020050BC: - ldr r0, [sp, #0x0] - sub r4, r0, #0x1 - sub r0, r2, #0x1 - cmp r4, r0 - blt _02005126 - lsl r1, r4, #0x1 - add r0, r5, r1 - str r0, [sp, #0x8] - add r0, r6, r1 - str r0, [sp, #0x4] -_020050D0: - mov r0, #0x0 - add r1, r0, #0x0 - cmp r2, #0x0 - ble _020050E6 -_020050D8: - sub r3, r4, r1 - lsl r3, r3, #0x1 - ldrsh r3, [r5, r3] - add r1, r1, #0x1 - add r0, r0, r3 - cmp r1, r2 - blt _020050D8 -_020050E6: - add r1, r2, #0x0 - bl _s32_div_f - ldr r1, [sp, #0x8] - strh r0, [r1, #0x0] - mov r0, #0x0 - ldrb r1, [r7, #0x0] - add r2, r0, #0x0 - cmp r1, #0x0 - ble _02005108 -_020050FA: - sub r3, r4, r2 - lsl r3, r3, #0x1 - ldrsh r3, [r6, r3] - add r2, r2, #0x1 - add r0, r0, r3 - cmp r2, r1 - blt _020050FA -_02005108: - bl _s32_div_f - ldr r1, [sp, #0x4] - sub r4, r4, #0x1 - strh r0, [r1, #0x0] - ldr r0, [sp, #0x8] - ldrb r2, [r7, #0x0] - sub r0, r0, #0x2 - str r0, [sp, #0x8] - add r0, r1, #0x0 - sub r0, r0, #0x2 - str r0, [sp, #0x4] - sub r0, r2, #0x1 - cmp r4, r0 - bge _020050D0 -_02005126: - mov r1, #0x0 - cmp r2, #0x0 - ble _0200514A - add r0, sp, #0x10 - mov r4, #0x2 -_02005130: - mov r2, #0x0 - ldrsh r3, [r0, r2] - ldr r2, [sp, #0xc] - add r1, r1, #0x1 - strh r3, [r2, #0x0] - ldrsh r3, [r0, r4] - add r0, r0, #0x4 - strh r3, [r2, #0x2] - add r2, r2, #0x4 - str r2, [sp, #0xc] - ldrb r2, [r7, #0x0] - cmp r1, r2 - blt _02005130 -_0200514A: - ldr r1, [sp, #0x0] - add r0, r5, #0x0 - bl DC_FlushRange - ldr r1, [sp, #0x0] - add r0, r6, #0x0 - bl DC_FlushRange -_0200515A: - add sp, #0x30 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02005160 -FUN_02005160: ; 0x02005160 - ldr r3, _02005168 ; =FUN_020C1148 - add r1, r0, #0x0 - mov r0, #0x7 - bx r3 - .balign 4 -_02005168: .word FUN_020C1148 - - thumb_func_start FUN_0200516C -FUN_0200516C: ; 0x0200516C - push {r3, lr} - cmp r0, #0x0 - bne _02005180 - ldr r0, _020051A4 ; =0x000007FF - bl FUN_02005160 - mov r0, #0x0 - bl FUN_02004CA4 - b _0200519C -_02005180: - cmp r0, #0x1 - ldr r0, _020051A8 ; =0x00007FFF - bne _02005192 - bl FUN_02005160 - mov r0, #0x1e - bl FUN_02004C80 - b _0200519C -_02005192: - bl FUN_02005160 - mov r0, #0xf - bl FUN_02004C80 -_0200519C: - bl FUN_02004C78 - pop {r3, pc} - nop -_020051A4: .word 0x000007FF -_020051A8: .word 0x00007FFF - - thumb_func_start FUN_020051AC -FUN_020051AC: ; 0x020051AC - push {r3, lr} - bl FUN_02005404 - cmp r0, #0x0 - bne _020051E0 - mov r0, #0x0 - bl FUN_02003FF4 - bl FUN_020048EC - mov r1, #0x0 - mvn r1, r1 - cmp r0, r1 - beq _020051E0 - bl FUN_02004124 - ldr r1, _020051E8 ; =0x0000047E - cmp r0, r1 - beq _020051E0 - bl FUN_02005454 - mov r0, #0x1 - add r1, r0, #0x0 - bl FUN_020047C8 - pop {r3, pc} -_020051E0: - bl FUN_0200541C - pop {r3, pc} - nop -_020051E8: .word 0x0000047E - - thumb_func_start FUN_020051EC -FUN_020051EC: ; 0x020051EC - ldr r3, _020051F0 ; =FUN_020C1180 - bx r3 - .balign 4 -_020051F0: .word FUN_020C1180 - - thumb_func_start FUN_020051F4 -FUN_020051F4: ; 0x020051F4 - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_020048D0 - bl FUN_02004018 - add r4, r0, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl FUN_020C3980 - add r6, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_0200526C - add r0, r6, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0200521C -FUN_0200521C: ; 0x0200521C - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_020048D0 - add r4, r0, #0x0 - bl FUN_02004018 - add r6, r0, #0x0 - cmp r4, #0x7 - bne _0200523E - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_02005288 - add r4, r0, #0x0 - b _02005258 -_0200523E: - cmp r4, #0x1 - bne _02005250 - add r0, r5, #0x0 - add r1, r4, #0x0 - add r2, r6, #0x0 - bl FUN_020052B8 - add r4, r0, #0x0 - b _02005258 -_02005250: - bl ErrorHandling - mov r0, #0x0 - pop {r4-r6, pc} -_02005258: - mov r0, #0x0 - bl FUN_02004DBC - add r0, r5, #0x0 - add r1, r6, #0x0 - bl FUN_0200526C - add r0, r4, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_0200526C -FUN_0200526C: ; 0x0200526C - push {r3-r5, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02004110 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02004858 - mov r0, #0x1 - bl FUN_02003CE8 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02005288 -FUN_02005288: ; 0x02005288 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x3 - add r4, r2, #0x0 - bl FUN_02004748 - bl FUN_02003F64 - add r0, r5, #0x0 - bl FUN_02003F90 - mov r0, #0x1a - bl FUN_02003D38 - bl FUN_02003F3C - add r0, r4, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl FUN_020C3980 - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_020052B8 -FUN_020052B8: ; 0x020052B8 - push {r3-r6, lr} - sub sp, #0x4 - add r5, r0, #0x0 - mov r0, #0x12 - add r6, r2, #0x0 - bl FUN_02003D38 - mov r0, #0x1f - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x0 - bl FUN_02003FF4 - bl FUN_020048EC - bl FUN_02004900 - add r1, r0, #0x0 - add r0, r5, #0x0 - bl FUN_020045C4 - add r0, r6, #0x0 - bl FUN_02003FF4 - add r6, r0, #0x0 - ldrh r0, [r4, #0x0] - bl FUN_02004900 - mov r1, #0x0 - mvn r1, r1 - add r2, r0, #0x0 - add r0, r6, #0x0 - add r3, r1, #0x0 - str r5, [sp, #0x0] - bl FUN_020C3910 - add sp, #0x4 - pop {r3-r6, pc} - .balign 4 - - thumb_func_start FUN_02005308 -FUN_02005308: ; 0x02005308 - push {r3-r5, lr} - add r5, r1, #0x0 - cmp r0, #0x4 - beq _02005318 - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} -_02005318: - add r0, r5, #0x0 - bl FUN_020048D0 - cmp r0, #0x7 - beq _0200532A - bl ErrorHandling - mov r0, #0x0 - pop {r3-r5, pc} -_0200532A: - add r0, r5, #0x0 - mov r1, #0x1 - bl FUN_02003FA8 - mov r0, #0x7 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl FUN_020C3980 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02004110 - mov r0, #0x1 - bl FUN_02003CE8 - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02005350 -FUN_02005350: ; 0x02005350 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_020C0FDC - add r0, r4, #0x0 - bl FUN_020048D0 - cmp r0, #0xff - beq _0200536E - bl FUN_02004018 - bl FUN_02003FF4 - bl FUN_020C0F68 -_0200536E: - bl FUN_02005374 - pop {r4, pc} - - thumb_func_start FUN_02005374 -FUN_02005374: ; 0x02005374 - push {r3, lr} - mov r0, #0x0 - bl FUN_02004110 - mov r0, #0x0 - bl FUN_02004130 - mov r0, #0x0 - bl FUN_02003CE8 - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_0200538C -FUN_0200538C: ; 0x0200538C - push {r3-r7, lr} - add r6, r0, #0x0 - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_02004124 - bl FUN_020048D0 - cmp r0, #0xff - beq _020053C8 - bl FUN_02004018 - add r7, r0, #0x0 - cmp r4, #0x0 - bne _020053B2 - mov r1, #0x0 - add r2, r1, #0x0 - bl FUN_02004828 -_020053B2: - add r0, r7, #0x0 - add r1, r6, #0x0 - add r2, r5, #0x0 - bl FUN_02004828 - add r0, r5, #0x0 - bl FUN_02004D74 - mov r0, #0x3 - bl FUN_02003CE8 -_020053C8: - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_020053CC -FUN_020053CC: ; 0x020053CC - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_02004124 - bl FUN_020048D0 - add r6, r0, #0x0 - cmp r6, #0xff - beq _02005402 - bl FUN_02005404 - cmp r0, #0x0 - bne _020053FC - add r0, r6, #0x0 - bl FUN_02004018 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_02004828 - add r0, r4, #0x0 - bl FUN_02004D74 -_020053FC: - mov r0, #0x4 - bl FUN_02003CE8 -_02005402: - pop {r4-r6, pc} - - thumb_func_start FUN_02005404 -FUN_02005404: ; 0x02005404 - push {r3, lr} - mov r0, #0x6 - bl FUN_02003D38 - ldrh r0, [r0, #0x0] - pop {r3, pc} - - thumb_func_start FUN_02005410 -FUN_02005410: ; 0x02005410 - push {r3, lr} - bl FUN_020048D0 - bl FUN_020048BC - pop {r3, pc} - - thumb_func_start FUN_0200541C -FUN_0200541C: ; 0x0200541C - push {r3-r5, lr} - mov r0, #0xf - bl FUN_02003D38 - add r5, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x0 - bl FUN_020C0F9C - ldrb r0, [r5, #0x0] - cmp r0, #0x1 - bne _02005440 - mov r0, #0xe - bl FUN_02004AAC -_02005440: - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - bne _0200544C - mov r0, #0xf - bl FUN_02004AAC -_0200544C: - mov r0, #0x0 - bl FUN_02003CE8 - pop {r3-r5, pc} - - thumb_func_start FUN_02005454 -FUN_02005454: ; 0x02005454 - push {r3-r7, lr} - mov r0, #0xf - bl FUN_02003D38 - add r7, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x7 - bl FUN_02003FF4 - mov r1, #0x0 - bl FUN_020C10A4 - bl FUN_02005374 - mov r5, #0x0 - add r4, r5, #0x0 -_0200547A: - add r0, r5, #0x3 - add r1, r4, #0x0 - bl FUN_020054F8 - add r5, r5, #0x1 - cmp r5, #0x4 - blt _0200547A - mov r0, #0x0 - bl FUN_02005614 - ldrb r0, [r7, #0x0] - cmp r0, #0x1 - bne _0200549A - mov r0, #0xe - bl FUN_02004AAC -_0200549A: - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - bne _020054A6 - mov r0, #0xf - bl FUN_02004AAC -_020054A6: - pop {r3-r7, pc} - - thumb_func_start FUN_020054A8 -FUN_020054A8: ; 0x020054A8 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - bl FUN_020054C8 - add r6, r0, #0x0 - ldr r1, _020054C4 ; =0x0000FFFF - add r0, r5, #0x0 - add r2, r4, #0x0 - bl FUN_02005530 - add r0, r6, #0x0 - pop {r4-r6, pc} - nop -_020054C4: .word 0x0000FFFF - - thumb_func_start FUN_020054C8 -FUN_020054C8: ; 0x020054C8 - push {r4-r6, lr} - add r5, r0, #0x0 - bl FUN_020048D0 - bl FUN_02004018 - add r4, r0, #0x0 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl FUN_020C3980 - add r6, r0, #0x0 - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02004858 - add r0, r6, #0x0 - pop {r4-r6, pc} - .balign 4 - - thumb_func_start FUN_020054F0 -FUN_020054F0: ; 0x020054F0 - ldr r3, _020054F4 ; =FUN_020C0FDC - bx r3 - .balign 4 -_020054F4: .word FUN_020C0FDC - - thumb_func_start FUN_020054F8 -FUN_020054F8: ; 0x020054F8 - push {r4, lr} - add r4, r1, #0x0 - bl FUN_02003FF4 - add r1, r4, #0x0 - bl FUN_020C10A4 - pop {r4, pc} - - thumb_func_start FUN_02005508 -FUN_02005508: ; 0x02005508 - push {r3, lr} - bl FUN_020048D0 - bl FUN_020048BC - pop {r3, pc} - - thumb_func_start FUN_02005514 -FUN_02005514: ; 0x02005514 - push {r4, lr} - mov r4, #0x0 -_02005518: - add r0, r4, #0x3 - bl FUN_020048BC - cmp r0, #0x1 - bne _02005526 - mov r0, #0x1 - pop {r4, pc} -_02005526: - add r4, r4, #0x1 - cmp r4, #0x4 - blt _02005518 - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start FUN_02005530 -FUN_02005530: ; 0x02005530 - push {r3-r5, lr} - add r5, r1, #0x0 - add r4, r2, #0x0 - bl FUN_020048D0 - bl FUN_02004018 - bl FUN_02003FF4 - add r1, r5, #0x0 - add r2, r4, #0x0 - bl FUN_020C0E7C - pop {r3-r5, pc} - - thumb_func_start FUN_0200554C -FUN_0200554C: ; 0x0200554C - push {r3-r7, lr} - add r6, r0, #0x0 - mov r0, #0x3 - bl FUN_02004018 - ldr r7, _02005574 ; =0x0000FFFF - add r4, r0, #0x0 - mov r5, #0x0 -_0200555C: - add r0, r4, r5 - bl FUN_02003FF4 - add r1, r7, #0x0 - add r2, r6, #0x0 - bl FUN_020C0E7C - add r5, r5, #0x1 - cmp r5, #0x4 - blt _0200555C - pop {r3-r7, pc} - nop -_02005574: .word 0x0000FFFF - - thumb_func_start FUN_02005578 -FUN_02005578: ; 0x02005578 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x11 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x23 - bl FUN_02003D38 - ldr r1, _02005610 ; =0x000001B9 - cmp r5, r1 - beq _0200559C - add r1, #0x36 - cmp r5, r1 - bhi _0200559A - cmp r5, #0x0 - bne _0200559C -_0200559A: - mov r5, #0x1 -_0200559C: - ldr r1, _02005610 ; =0x000001B9 - cmp r5, r1 - bne _020055BC - mov r1, #0x0 - ldr r0, [r0, #0x0] - mov r2, #0x7f - add r3, r1, #0x0 - bl FUN_02005D48 - cmp r0, #0x1 - bne _020055BC - mov r0, #0x0 - bl FUN_02005E80 - mov r0, #0x1 - pop {r3-r5, pc} -_020055BC: - ldrb r0, [r4, #0x0] - cmp r0, #0x0 - bne _020055E8 - mov r0, #0x0 - bl FUN_02005614 - mov r0, #0x1 - bl FUN_02003FF4 - mov r1, #0x2 - str r1, [sp, #0x0] - sub r1, r1, #0x3 - add r2, r5, #0x0 - add r3, r1, #0x0 - bl FUN_020C3910 - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x1 - bl FUN_02004858 - b _02005606 -_020055E8: - mov r0, #0x8 - bl FUN_02003FF4 - mov r1, #0x2 - str r1, [sp, #0x0] - sub r1, r1, #0x3 - add r2, r5, #0x0 - add r3, r1, #0x0 - bl FUN_020C3910 - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x8 - bl FUN_02004858 -_02005606: - mov r0, #0x0 - bl FUN_02005E80 - add r0, r4, #0x0 - pop {r3-r5, pc} - .balign 4 -_02005610: .word 0x000001B9 - - thumb_func_start FUN_02005614 -FUN_02005614: ; 0x02005614 - push {r4-r6, lr} - add r5, r0, #0x0 - mov r0, #0xf - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0xe - bl FUN_02003D38 - mov r0, #0x1 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl FUN_020C10A4 - mov r0, #0x8 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl FUN_020C10A4 - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - bne _02005658 - mov r0, #0xe - bl FUN_02004C3C - mov r0, #0xe - bl FUN_02004A04 -_02005658: - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - bne _0200566A - mov r0, #0xf - bl FUN_02004C3C - mov r0, #0xf - bl FUN_02004A04 -_0200566A: - bl FUN_02005DFC - pop {r4-r6, pc} - - thumb_func_start FUN_02005670 -FUN_02005670: ; 0x02005670 - push {r3-r5, lr} - mov r0, #0xf - bl FUN_02003D38 - add r5, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0xe - bl FUN_02003D38 - ldrb r0, [r5, #0x0] - cmp r0, #0x1 - bne _02005696 - mov r0, #0xe - bl FUN_02004ABC - pop {r3-r5, pc} -_02005696: - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - bne _020056A4 - mov r0, #0xf - bl FUN_02004ABC - pop {r3-r5, pc} -_020056A4: - mov r0, #0x0 - bl FUN_020048BC - pop {r3-r5, pc} - - thumb_func_start FUN_020056AC -FUN_020056AC: ; 0x020056AC - push {r3-r7, lr} - sub sp, #0x20 - str r0, [sp, #0x4] - mov r0, #0xf - str r1, [sp, #0x8] - add r5, r2, #0x0 - add r6, r3, #0x0 - ldr r7, [sp, #0x38] - bl FUN_02003D38 - str r0, [sp, #0x14] - mov r0, #0x10 - bl FUN_02003D38 - str r0, [sp, #0x10] - mov r0, #0x11 - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x1d - bl FUN_02003D38 - str r0, [sp, #0xc] - mov r0, #0x23 - bl FUN_02003D38 - lsr r0, r5, #0x1f - add r0, r5, r0 - asr r0, r0, #0x1 - str r0, [sp, #0x1c] - add r0, #0x40 - str r0, [sp, #0x1c] - add r0, r6, #0x0 - str r0, [sp, #0x18] - sub r0, #0x1e - str r0, [sp, #0x18] - cmp r0, #0x0 - bgt _020056FC - mov r0, #0x1 - str r0, [sp, #0x18] -_020056FC: - mov r0, #0x0 - strb r0, [r4, #0x0] - ldr r0, [sp, #0x14] - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _02005714 - mov r0, #0xe - bl FUN_02004C3C - mov r0, #0xe - bl FUN_02004A04 -_02005714: - ldr r0, [sp, #0x10] - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _02005728 - mov r0, #0xf - bl FUN_02004C3C - mov r0, #0xf - bl FUN_02004A04 -_02005728: - ldr r4, [sp, #0x8] - ldr r0, _02005AB4 ; =0x000001B9 - add r1, r4, #0x0 - cmp r1, r0 - beq _0200573E - add r0, #0x36 - cmp r1, r0 - bhi _0200573C - add r0, r4, #0x0 - bne _0200573E -_0200573C: - mov r4, #0x1 -_0200573E: - ldr r0, _02005AB4 ; =0x000001B9 - ldr r1, [sp, #0x8] - cmp r1, r0 - bne _020057B4 - ldr r1, [sp, #0x4] - cmp r1, #0xc - bhi _020057AE - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #0x6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02005758: ; jump table (using 16-bit offset) - .short _02005772 - _02005758 - 2; case 0 - .short _02005772 - _02005758 - 2; case 1 - .short _02005772 - _02005758 - 2; case 2 - .short _020057AE - _02005758 - 2; case 3 - .short _020057AE - _02005758 - 2; case 4 - .short _02005772 - _02005758 - 2; case 5 - .short _020057AE - _02005758 - 2; case 6 - .short _020057AE - _02005758 - 2; case 7 - .short _020057AE - _02005758 - 2; case 8 - .short _020057AE - _02005758 - 2; case 9 - .short _020057AE - _02005758 - 2; case 10 - .short _02005772 - _02005758 - 2; case 11 - .short _02005772 - _02005758 - 2; case 12 -_02005772: - bl FUN_02005578 - ldr r0, [sp, #0xc] - ldrb r0, [r0, #0x0] - cmp r0, #0x0 - bne _02005794 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - b _020057A8 -_02005794: - ldr r1, [sp, #0x1c] - mov r0, #0xe - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl FUN_02004ACC - mov r0, #0xe - add r1, r6, #0x0 - bl FUN_02004AF8 -_020057A8: - add sp, #0x20 - mov r0, #0x1 - pop {r3-r7, pc} -_020057AE: - mov r0, #0x1 - bl FUN_02005E80 -_020057B4: - ldr r0, [sp, #0x4] - cmp r0, #0xe - bls _020057BC - b _02005AC2 -_020057BC: - add r0, r0, r0 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_020057C8: ; jump table (using 16-bit offset) - .short _020057E6 - _020057C8 - 2; case 0 - .short _02005802 - _020057C8 - 2; case 1 - .short _02005826 - _020057C8 - 2; case 2 - .short _02005868 - _020057C8 - 2; case 3 - .short _020058B2 - _020057C8 - 2; case 4 - .short _02005900 - _020057C8 - 2; case 5 - .short _02005928 - _020057C8 - 2; case 6 - .short _0200596C - _020057C8 - 2; case 7 - .short _0200599C - _020057C8 - 2; case 8 - .short _020059CA - _020057C8 - 2; case 9 - .short _020059FE - _020057C8 - 2; case 10 - .short _02005A2E - _020057C8 - 2; case 11 - .short _02005A56 - _020057C8 - 2; case 12 - .short _02005A86 - _020057C8 - 2; case 13 - .short _02005ABC - _020057C8 - 2; case 14 -_020057E6: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - b _02005AC2 -_02005802: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x14 - add r1, r7, #0x0 - bl FUN_02005AE0 - b _02005AC2 -_02005826: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - mov r2, #0x40 - bl FUN_02004D20 - add r0, r4, #0x0 - mov r1, #0x14 - bl FUN_02005BC8 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x8 - add r2, r5, #0x0 - bl FUN_02004D4C - ldr r2, [sp, #0x18] - add r0, r4, #0x0 - mov r1, #0x8 - bl FUN_02005AC8 - b _02005AC2 -_02005868: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x1e - add r1, r7, #0x0 - bl FUN_02005AE0 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - mov r2, #0xc0 - bl FUN_02004D20 - add r0, r4, #0x0 - mov r1, #0x10 - bl FUN_02005BC8 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x8 - add r2, r5, #0x0 - bl FUN_02004D4C - ldr r2, [sp, #0x18] - add r0, r4, #0x0 - mov r1, #0x8 - bl FUN_02005AC8 - b _02005AC2 -_020058B2: - mov r0, #0xe - bl FUN_02004984 - ldr r2, [sp, #0x1c] - add r0, r4, #0x0 - add r1, r6, #0x0 - mov r3, #0xe - str r7, [sp, #0x0] - bl FUN_02004B30 - ldr r1, [sp, #0x1c] - mov r0, #0xe - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl FUN_02004ACC - mov r0, #0xf - add r1, r7, #0x0 - bl FUN_02005AE0 - mov r1, #0x86 - mov r0, #0xe - lsl r1, r1, #0x8 - bl FUN_02004AE4 - mov r1, #0x3f - ldr r2, [sp, #0x18] - ldr r3, [sp, #0x1c] - add r0, r4, #0x0 - mvn r1, r1 - str r7, [sp, #0x0] - bl FUN_02005BF8 - mov r1, #0x86 - mov r0, #0xf - lsl r1, r1, #0x8 - bl FUN_02004AE4 - b _02005AC2 -_02005900: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x1 - add r2, r0, #0x0 - ldr r1, _02005AB8 ; =0x0000FFFF - sub r2, #0xe1 - bl FUN_02004D20 - b _02005AC2 -_02005928: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - mov r2, #0x2c - bl FUN_02004D20 - mov r1, #0x3f - add r0, r4, #0x0 - mvn r1, r1 - bl FUN_02005BC8 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x8 - add r2, r5, #0x0 - bl FUN_02004D4C - ldr r2, [sp, #0x18] - add r0, r4, #0x0 - mov r1, #0x8 - bl FUN_02005AC8 - b _02005AC2 -_0200596C: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0xb - add r1, r7, #0x0 - bl FUN_02005AE0 - mov r0, #0x1 - add r2, r0, #0x0 - ldr r1, _02005AB8 ; =0x0000FFFF - sub r2, #0x81 - bl FUN_02004D20 - b _02005AC2 -_0200599C: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x3c - add r1, r7, #0x0 - bl FUN_02005AE0 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - mov r2, #0x3c - bl FUN_02004D20 - b _02005AC2 -_020059CA: - mov r0, #0xe - bl FUN_02004984 - ldr r2, [sp, #0x1c] - add r0, r4, #0x0 - add r1, r6, #0x0 - mov r3, #0xe - str r7, [sp, #0x0] - bl FUN_02004B30 - ldr r1, [sp, #0x1c] - mov r0, #0xe - lsl r1, r1, #0x18 - lsr r1, r1, #0x18 - bl FUN_02004ACC - mov r0, #0xd - add r1, r7, #0x0 - bl FUN_02005AE0 - mov r1, #0x1a - mov r0, #0xe - lsl r1, r1, #0xa - bl FUN_02004AE4 - b _02005AC2 -_020059FE: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x64 - add r1, r7, #0x0 - bl FUN_02005AE0 - mov r0, #0x1 - add r2, r0, #0x0 - ldr r1, _02005AB8 ; =0x0000FFFF - sub r2, #0x2d - bl FUN_02004D20 - b _02005AC2 -_02005A2E: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x1 - add r2, r0, #0x0 - ldr r1, _02005AB8 ; =0x0000FFFF - sub r2, #0x61 - bl FUN_02004D20 - b _02005AC2 -_02005A56: - add r0, r4, #0x0 - bl FUN_02005578 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x1 - add r2, r5, #0x0 - bl FUN_02004D4C - add r0, r4, #0x0 - mov r1, #0x1 - add r2, r6, #0x0 - bl FUN_02005AC8 - mov r0, #0x14 - add r1, r7, #0x0 - bl FUN_02005AE0 - mov r0, #0x1 - add r2, r0, #0x0 - ldr r1, _02005AB8 ; =0x0000FFFF - sub r2, #0x61 - bl FUN_02004D20 - b _02005AC2 -_02005A86: - add r0, r4, #0x0 - bl FUN_02005578 - add r0, r4, #0x0 - mov r1, #0x1 - mov r2, #0x7f - bl FUN_02005AC8 - add r0, r4, #0x0 - mov r1, #0x14 - bl FUN_02005BC8 - ldr r1, _02005AB8 ; =0x0000FFFF - mov r0, #0x8 - add r2, r5, #0x0 - bl FUN_02004D4C - mov r0, #0x8 - add r1, r6, #0x0 - mov r2, #0x0 - bl FUN_02004828 - b _02005AC2 - .balign 4 -_02005AB4: .word 0x000001B9 -_02005AB8: .word 0x0000FFFF -_02005ABC: - add r0, r4, #0x0 - bl FUN_02005578 -_02005AC2: - mov r0, #0x1 - add sp, #0x20 - pop {r3-r7, pc} - - thumb_func_start FUN_02005AC8 -FUN_02005AC8: ; 0x02005AC8 - push {r3-r5, lr} - add r4, r1, #0x0 - add r5, r0, #0x0 - add r0, r4, #0x0 - add r1, r2, #0x0 - bl FUN_0200483C - add r0, r5, #0x0 - add r1, r4, #0x0 - bl FUN_02004858 - pop {r3-r5, pc} - - thumb_func_start FUN_02005AE0 -FUN_02005AE0: ; 0x02005AE0 - push {r4-r6, lr} - add r5, r0, #0x0 - add r4, r1, #0x0 - mov r0, #0x22 - bl FUN_02003D38 - add r6, r0, #0x0 - bl FUN_02005BA0 - add r0, r4, #0x0 - mov r1, #0x8 - bl FUN_02016998 - add r4, r0, #0x0 - bne _02005B04 - bl ErrorHandling - pop {r4-r6, pc} -_02005B04: - mov r2, #0x0 - strb r2, [r4, #0x0] - strb r2, [r4, #0x1] - strb r2, [r4, #0x2] - strb r2, [r4, #0x3] - strb r2, [r4, #0x4] - strb r2, [r4, #0x5] - strb r2, [r4, #0x6] - strb r2, [r4, #0x7] - ldr r0, _02005B28 ; =FUN_02005B2C - add r1, r4, #0x0 - str r5, [r4, #0x0] - bl FUN_0200CA44 - str r0, [r4, #0x4] - str r0, [r6, #0x0] - pop {r4-r6, pc} - nop -_02005B28: .word FUN_02005B2C - - thumb_func_start FUN_02005B2C -FUN_02005B2C: ; 0x02005B2C - push {r4-r6, lr} - mov r0, #0xf - add r5, r1, #0x0 - bl FUN_02003D38 - add r6, r0, #0x0 - mov r0, #0x10 - bl FUN_02003D38 - ldr r2, [r5, #0x0] - add r4, r0, #0x0 - cmp r2, #0xa - bne _02005B58 - mov r0, #0x1 - mov r1, #0x0 - bl FUN_02004828 - ldr r2, [r5, #0x0] - mov r0, #0x8 - mov r1, #0x0 - bl FUN_02004828 -_02005B58: - ldr r0, [r5, #0x0] - sub r0, r0, #0x1 - str r0, [r5, #0x0] - bl FUN_02005670 - cmp r0, #0x0 - bne _02005B6A - mov r0, #0x0 - str r0, [r5, #0x0] -_02005B6A: - ldr r0, [r5, #0x0] - cmp r0, #0x0 - bgt _02005B9E - mov r0, #0x0 - bl FUN_02005614 - ldrb r0, [r6, #0x0] - cmp r0, #0x1 - bne _02005B88 - mov r0, #0xe - bl FUN_02004C3C - mov r0, #0xe - bl FUN_02004A04 -_02005B88: - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - bne _02005B9A - mov r0, #0xf - bl FUN_02004C3C - mov r0, #0xf - bl FUN_02004A04 -_02005B9A: - bl FUN_02005BA0 -_02005B9E: - pop {r4-r6, pc} - - thumb_func_start FUN_02005BA0 -FUN_02005BA0: ; 0x02005BA0 - push {r3-r5, lr} - mov r0, #0x22 - bl FUN_02003D38 - add r4, r0, #0x0 - ldr r0, [r4, #0x0] - cmp r0, #0x0 - beq _02005BC2 - bl FUN_0201B6C8 - add r5, r0, #0x0 - ldr r0, [r4, #0x0] - bl FUN_0200CAB4 - add r0, r5, #0x0 - bl FUN_02016A18 -_02005BC2: - mov r0, #0x0 - str r0, [r4, #0x0] - pop {r3-r5, pc} - - thumb_func_start FUN_02005BC8 -FUN_02005BC8: ; 0x02005BC8 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x11 - add r4, r1, #0x0 - bl FUN_02003D38 - mov r1, #0x1 - strb r1, [r0, #0x0] - add r0, r1, #0x0 - bl FUN_02005E80 - add r0, r5, #0x0 - bl FUN_02005578 - add r5, r0, #0x0 - ldr r1, _02005BF4 ; =0x0000FFFF - mov r0, #0x8 - add r2, r4, #0x0 - bl FUN_02004D20 - add r0, r5, #0x0 - pop {r3-r5, pc} - .balign 4 -_02005BF4: .word 0x0000FFFF - - thumb_func_start FUN_02005BF8 -FUN_02005BF8: ; 0x02005BF8 - push {r3-r6, lr} - sub sp, #0x4 - add r5, r0, #0x0 - mov r0, #0x11 - add r4, r2, #0x0 - add r6, r3, #0x0 - bl FUN_02003D38 - mov r1, #0x1 - strb r1, [r0, #0x0] - mov r0, #0xf - bl FUN_02004984 - ldr r0, [sp, #0x18] - add r1, r4, #0x0 - str r0, [sp, #0x0] - add r0, r5, #0x0 - add r2, r6, #0x0 - mov r3, #0xf - bl FUN_02004B30 - add sp, #0x4 - pop {r3-r6, pc} - .balign 4 - - thumb_func_start FUN_02005C28 -FUN_02005C28: ; 0x02005C28 - push {r3-r5, lr} - add r5, r0, #0x0 - bl FUN_020048F4 - add r0, r5, #0x0 - bl FUN_02005CEC - bl FUN_02004124 - bl FUN_020048D0 - cmp r0, #0xff - beq _02005C48 - mov r1, #0x1 - bl FUN_020047C8 -_02005C48: - mov r0, #0x1c - bl FUN_02003D38 - bl FUN_02003F3C - add r0, r5, #0x0 - mov r1, #0x3 - bl FUN_02003FA8 - mov r0, #0x2 - bl FUN_02003FF4 - add r1, r5, #0x0 - bl FUN_020C3980 - add r4, r0, #0x0 - add r0, r5, #0x0 - mov r1, #0x2 - bl FUN_02004858 - add r0, r4, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02005C74 -FUN_02005C74: ; 0x02005C74 - push {r4, lr} - mov r0, #0xd - bl FUN_02003D38 - add r4, r0, #0x0 - mov r0, #0x2 - bl FUN_020048BC - cmp r0, #0x0 - beq _02005C8C - mov r0, #0x1 - pop {r4, pc} -_02005C8C: - ldrh r0, [r4, #0x0] - cmp r0, #0x0 - beq _02005C9A - sub r0, r0, #0x1 - strh r0, [r4, #0x0] - mov r0, #0x1 - pop {r4, pc} -_02005C9A: - mov r0, #0x0 - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02005CA0 -FUN_02005CA0: ; 0x02005CA0 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x2 - bl FUN_02003FF4 - add r1, r4, #0x0 - bl FUN_020C10A4 - mov r0, #0x6 - bl FUN_02004748 - bl FUN_02003F64 - pop {r4, pc} - - thumb_func_start FUN_02005CBC -FUN_02005CBC: ; 0x02005CBC - push {r3, lr} - mov r0, #0xd - bl FUN_02003D38 - bl FUN_02005C74 - cmp r0, #0x1 - bne _02005CD0 - mov r0, #0x1 - pop {r3, pc} -_02005CD0: - mov r0, #0x0 - bl FUN_02005CA0 - bl FUN_02004124 - bl FUN_020048D0 - cmp r0, #0xff - beq _02005CE8 - mov r1, #0x0 - bl FUN_020047C8 -_02005CE8: - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02005CEC -FUN_02005CEC: ; 0x02005CEC - push {r3, lr} - mov r0, #0xd - bl FUN_02003D38 - mov r1, #0xf - strh r1, [r0, #0x0] - pop {r3, pc} - .balign 4 - - thumb_func_start FUN_02005CFC -FUN_02005CFC: ; 0x02005CFC - push {r3, lr} - mov r0, #0x1d - bl FUN_02003D38 - ldrb r0, [r0, #0x0] - cmp r0, #0x1 - bne _02005D1C - mov r0, #0xe - bl FUN_02004ABC - cmp r0, #0x0 - bne _02005D1C - bl FUN_02005DFC - mov r0, #0x1 - pop {r3, pc} -_02005D1C: - mov r0, #0x0 - pop {r3, pc} - - thumb_func_start FUN_02005D20 -FUN_02005D20: ; 0x02005D20 - push {r3-r5, lr} - add r5, r0, #0x0 - mov r0, #0x1e - bl FUN_02003D38 - add r4, r0, #0x0 - add r0, r5, #0x0 - bl FUN_02029F04 - cmp r0, #0x0 - bne _02005D3A - mov r0, #0x0 - pop {r3-r5, pc} -_02005D3A: - ldrb r0, [r4, #0x0] - cmp r0, #0x1 - beq _02005D44 - mov r0, #0x1 - pop {r3-r5, pc} -_02005D44: - mov r0, #0x0 - pop {r3-r5, pc} - - thumb_func_start FUN_02005D48 -FUN_02005D48: ; 0x02005D48 - push {r3-r7, lr} - sub sp, #0x30 - add r6, r0, #0x0 - add r5, r2, #0x0 - add r7, r3, #0x0 - bl FUN_02004DB4 - str r0, [sp, #0x0] - mov r0, #0x1d - bl FUN_02003D38 - str r0, [sp, #0x4] - add r0, r6, #0x0 - bl FUN_02005D20 - cmp r0, #0x0 - bne _02005D70 - add sp, #0x30 - mov r0, #0x0 - pop {r3-r7, pc} -_02005D70: - mov r0, #0x0 - bl FUN_02005614 - bl FUN_02005DFC - mov r0, #0xe - bl FUN_02004984 - bl FUN_0201B9EC - lsr r2, r0, #0x1f - lsl r1, r0, #0x13 - sub r1, r1, r2 - mov r0, #0x13 - ror r1, r0 - add r0, r2, r1 - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r6, #0x0 - bl FUN_02029F10 - add r1, r0, #0x0 - ldr r0, [sp, #0x0] - bl FUN_02029F14 - mov r0, #0xe - bl FUN_02004930 - str r0, [sp, #0x8] - mov r0, #0x0 - str r0, [sp, #0xc] - bl FUN_02004DB4 - str r0, [sp, #0x10] - mov r0, #0x0 - str r0, [sp, #0x14] - str r0, [sp, #0x18] - mov r0, #0x7d - lsl r0, r0, #0x4 - str r0, [sp, #0x1c] - str r0, [sp, #0x20] - mov r0, #0x2 - lsl r0, r0, #0xe - add r0, r4, r0 - str r0, [sp, #0x28] - lsr r0, r7, #0x1f - add r0, r7, r0 - asr r0, r0, #0x1 - add r0, #0x40 - str r0, [sp, #0x2c] - add r0, sp, #0x8 - mov r1, #0xe - str r5, [sp, #0x24] - bl FUN_02004A6C - add r4, r0, #0x0 - mov r0, #0xe - add r1, r5, #0x0 - bl FUN_02004AF8 - ldr r0, [sp, #0x4] - mov r1, #0x1 - strb r1, [r0, #0x0] - mov r0, #0x0 - bl FUN_02005E80 - add r0, r4, #0x0 - add sp, #0x30 - pop {r3-r7, pc} - .balign 4 - - thumb_func_start FUN_02005DFC -FUN_02005DFC: ; 0x02005DFC - push {r3-r5, lr} - mov r0, #0xf - bl FUN_02003D38 - add r5, r0, #0x0 - mov r0, #0x1d - bl FUN_02003D38 - add r4, r0, #0x0 - ldrb r0, [r5, #0x0] - cmp r0, #0x1 - bne _02005E20 - mov r0, #0xe - bl FUN_02004C3C - mov r0, #0xe - bl FUN_02004A04 -_02005E20: - mov r0, #0x0 - strb r0, [r4, #0x0] - pop {r3-r5, pc} - .balign 4 - - thumb_func_start FUN_02005E28 -FUN_02005E28: ; 0x02005E28 - push {lr} - sub sp, #0x1c - mov r0, #0x2 - str r0, [sp, #0x0] - bl FUN_02004DB4 - mov r1, #0x7d - str r0, [sp, #0x4] - lsl r1, r1, #0x4 - mov r0, #0x1f - str r1, [sp, #0x8] - tst r0, r1 - beq _02005E48 - mov r0, #0x1f - bic r1, r0 - str r1, [sp, #0x8] -_02005E48: - ldr r0, _02005E60 ; =0x00004174 - str r0, [sp, #0xc] - mov r0, #0x0 - str r0, [sp, #0x10] - str r0, [sp, #0x14] - str r0, [sp, #0x18] - add r0, sp, #0x0 - bl FUN_02004914 - add sp, #0x1c - pop {pc} - nop -_02005E60: .word 0x00004174 - - thumb_func_start FUN_02005E64 -FUN_02005E64: ; 0x02005E64 - ldr r3, _02005E68 ; =FUN_0200491C - bx r3 - .balign 4 -_02005E68: .word FUN_0200491C - - thumb_func_start FUN_02005E6C -FUN_02005E6C: ; 0x02005E6C - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02004DB4 - add r1, r0, #0x0 - add r0, r4, #0x0 - bl FUN_02029F4C - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02005E80 -FUN_02005E80: ; 0x02005E80 - push {r4, lr} - add r4, r0, #0x0 - mov r0, #0x1e - bl FUN_02003D38 - strb r4, [r0, #0x0] - pop {r4, pc} - .balign 4 - - thumb_func_start FUN_02005E90 -FUN_02005E90: ; 0x02005E90 - push {r3-r7, lr} - add r5, r0, #0x0 - mov r0, #0x23 - add r7, r1, #0x0 - add r4, r2, #0x0 - add r6, r3, #0x0 - bl FUN_02003D38 - cmp r5, #0x0 - bne _02005EB2 - ldr r0, [r0, #0x0] - add r1, r7, #0x0 - add r2, r4, #0x0 - add r3, r6, #0x0 - bl FUN_02005D48 - b _02005EBE -_02005EB2: - add r0, r5, #0x0 - add r1, r7, #0x0 - add r2, r4, #0x0 - add r3, r6, #0x0 - bl FUN_02005D48 -_02005EBE: - cmp r0, #0x0 - bne _02005ED8 - mov r0, #0x1 - bl FUN_02005E80 - mov r0, #0xb - str r0, [sp, #0x0] - ldr r1, _02005EDC ; =0x000001B9 - mov r0, #0x0 - add r2, r6, #0x0 - add r3, r4, #0x0 - bl FUN_020056AC -_02005ED8: - pop {r3-r7, pc} - nop -_02005EDC: .word 0x000001B9 - - thumb_func_start FUN_02005EE0 -FUN_02005EE0: ; 0x02005EE0 - push {r4, lr} - add r4, r0, #0x0 - bl FUN_02029F04 - cmp r0, #0x0 - bne _02005EF0 - mov r0, #0x0 - pop {r4, pc} -_02005EF0: - add r0, r4, #0x0 - bl FUN_02029F10 - mov r1, #0xf - ldrsb r0, [r0, r1] - sub r1, #0x2d - cmp r0, r1 - bge _02005F04 - mov r0, #0x1 - pop {r4, pc} -_02005F04: - cmp r0, #0x1e - blt _02005F10 - cmp r0, #0x80 - bge _02005F10 - mov r0, #0x2 - pop {r4, pc} -_02005F10: - mov r0, #0x0 - pop {r4, pc} - - thumb_func_start FUN_02005F14 -FUN_02005F14: ; 0x02005F14 - cmp r0, #0xb - bgt _02005F2E - bge _02005F32 - cmp r0, #0x5 - bgt _02005F36 - cmp r0, #0x0 - blt _02005F36 - beq _02005F32 - cmp r0, #0x1 - beq _02005F32 - cmp r0, #0x5 - beq _02005F32 - b _02005F36 -_02005F2E: - cmp r0, #0xc - bne _02005F36 -_02005F32: - mov r0, #0x1 - bx lr -_02005F36: - mov r0, #0x0 - bx lr - .balign 4 diff --git a/arm9/asm/unk_02002C14.s b/arm9/asm/unk_02002C14.s new file mode 100644 index 00000000..de526a06 --- /dev/null +++ b/arm9/asm/unk_02002C14.s @@ -0,0 +1,405 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + thumb_func_start FUN_02002C14 +FUN_02002C14: ; 0x02002C14 + push {r4, lr} + ldr r0, _02002C44 ; =0x02106FCC + ldr r4, _02002C48 ; =0x02106FC8 + mov r1, #0x0 + str r0, [r4, #0x0] + add r2, r1, #0x0 + add r0, r1, #0x0 +_02002C22: + ldr r3, [r4, #0x0] + add r1, r1, #0x1 + add r3, r3, r2 + add r3, #0x84 + str r0, [r3, #0x0] + ldr r3, [r4, #0x0] + add r3, r3, r2 + add r3, #0x94 + add r2, r2, #0x4 + str r0, [r3, #0x0] + cmp r1, #0x4 + blo _02002C22 + ldr r0, _02002C4C ; =0x020ECB64 + bl FUN_0201BCBC + pop {r4, pc} + nop +_02002C44: .word 0x02106FCC +_02002C48: .word 0x02106FC8 +_02002C4C: .word 0x020ECB64 + + thumb_func_start FUN_02002C50 +FUN_02002C50: ; 0x02002C50 + push {r3-r4, lr} + sub sp, #0x4 + str r1, [sp, #0x0] + lsl r4, r0, #0x2 + ldr r1, _02002C78 ; =0x020ECB54 + ldr r3, _02002C7C ; =0x020ECB56 + ldrh r1, [r1, r4] + ldrh r3, [r3, r4] + mov r0, #0xe + mov r2, #0x1 + bl FUN_02021590 + ldr r1, _02002C80 ; =0x02106FC8 + ldr r1, [r1, #0x0] + add r1, r1, r4 + add r1, #0x94 + str r0, [r1, #0x0] + add sp, #0x4 + pop {r3-r4, pc} + nop +_02002C78: .word 0x020ECB54 +_02002C7C: .word 0x020ECB56 +_02002C80: .word 0x02106FC8 + + thumb_func_start FUN_02002C84 +FUN_02002C84: ; 0x02002C84 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + cmp r4, #0x4 + blt _02002C92 + bl ErrorHandling +_02002C92: + ldr r0, _02002CBC ; =0x02106FC8 + lsl r4, r4, #0x2 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02002CA6 + bl ErrorHandling +_02002CA6: + ldr r0, _02002CBC ; =0x02106FC8 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r2, r5, #0x0 + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl FUN_020215E0 + pop {r3-r5, pc} + nop +_02002CBC: .word 0x02106FC8 + + thumb_func_start FUN_02002CC0 +FUN_02002CC0: ; 0x02002CC0 + push {r4, lr} + add r4, r0, #0x0 + cmp r4, #0x4 + blt _02002CCC + bl ErrorHandling +_02002CCC: + ldr r0, _02002CF4 ; =0x02106FC8 + lsl r4, r4, #0x2 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02002CE0 + bl ErrorHandling +_02002CE0: + ldr r0, _02002CF4 ; =0x02106FC8 + mov r1, #0x1 + ldr r0, [r0, #0x0] + mov r2, #0x0 + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl FUN_020215E0 + pop {r4, pc} + .balign 4 +_02002CF4: .word 0x02106FC8 + + thumb_func_start FUN_02002CF8 +FUN_02002CF8: ; 0x02002CF8 + push {r3-r7, lr} + add r4, r0, #0x0 + cmp r4, #0x4 + blt _02002D04 + bl ErrorHandling +_02002D04: + ldr r0, _02002D8C ; =0x02106FC8 + lsl r6, r4, #0x2 + ldr r7, [r0, #0x0] + add r0, r7, r6 + add r0, #0x84 + ldr r0, [r0, #0x0] + mov r12, r0 + cmp r0, #0x0 + beq _02002D68 + ldr r2, _02002D90 ; =0x020ECB54 + mov r1, #0x0 + ldrh r0, [r2, r6] + add r3, r7, #0x0 +_02002D1E: + cmp r1, r4 + beq _02002D3E + ldrh r5, [r2, #0x0] + cmp r5, r0 + bne _02002D3E + add r5, r3, #0x0 + add r5, #0x94 + ldr r5, [r5, #0x0] + cmp r5, #0x0 + beq _02002D3E + lsl r0, r1, #0x2 + add r2, r7, r0 + add r2, #0x84 + mov r0, r12 + str r0, [r2, #0x0] + b _02002D48 +_02002D3E: + add r1, r1, #0x1 + add r2, r2, #0x4 + add r3, r3, #0x4 + cmp r1, #0x4 + blo _02002D1E +_02002D48: + cmp r1, #0x4 + bne _02002D68 + ldr r0, _02002D8C ; =0x02106FC8 + lsl r5, r4, #0x2 + ldr r0, [r0, #0x0] + add r0, r0, r5 + add r0, #0x84 + ldr r0, [r0, #0x0] + bl FUN_02016A18 + ldr r0, _02002D8C ; =0x02106FC8 + mov r1, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r5 + add r0, #0x84 + str r1, [r0, #0x0] +_02002D68: + ldr r0, _02002D8C ; =0x02106FC8 + ldr r0, [r0, #0x0] + add r0, r0, r6 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + beq _02002D88 + bl FUN_020215C8 + ldr r0, _02002D8C ; =0x02106FC8 + mov r2, #0x0 + ldr r1, [r0, #0x0] + lsl r0, r4, #0x2 + add r0, r1, r0 + add r0, #0x94 + str r2, [r0, #0x0] +_02002D88: + pop {r3-r7, pc} + nop +_02002D8C: .word 0x02106FC8 +_02002D90: .word 0x020ECB54 + + thumb_func_start FUN_02002D94 +FUN_02002D94: ; 0x02002D94 + push {r3, lr} + ldr r2, _02002DAC ; =0x02106FC8 + lsl r0, r0, #0x2 + ldr r2, [r2, #0x0] + add r0, r2, r0 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl FUN_02021750 + ldr r0, _02002DAC ; =0x02106FC8 + ldr r0, [r0, #0x0] + pop {r3, pc} + .balign 4 +_02002DAC: .word 0x02106FC8 + + thumb_func_start FUN_02002DB0 +FUN_02002DB0: ; 0x02002DB0 + push {r4, lr} + add r3, r1, #0x0 + add r3, #0x1c + ldrb r2, [r3, #0x1] + lsl r2, r2, #0x18 + lsr r2, r2, #0x1f + bne _02002DD8 + ldrb r2, [r3, #0x0] + mov r4, #0xf + lsl r0, r0, #0x18 + bic r2, r4 + lsr r4, r0, #0x18 + mov r0, #0xf + and r0, r4 + orr r0, r2 + strb r0, [r3, #0x0] + ldrb r2, [r3, #0x1] + mov r0, #0x80 + orr r0, r2 + strb r0, [r3, #0x1] +_02002DD8: + add r0, r1, #0x0 + bl FUN_020023C0 + pop {r4, pc} + + thumb_func_start FUN_02002DE0 +FUN_02002DE0: ; 0x02002DE0 + push {r4-r6, lr} + lsl r4, r0, #0x2 + ldr r0, _02002E10 ; =0x02106FC8 + add r5, r1, #0x0 + ldr r0, [r0, #0x0] + add r6, r2, #0x0 + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02002DFA + bl ErrorHandling +_02002DFA: + ldr r0, _02002E10 ; =0x02106FC8 + add r1, r5, #0x0 + ldr r0, [r0, #0x0] + add r2, r6, #0x0 + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl FUN_020218D8 + pop {r4-r6, pc} + nop +_02002E10: .word 0x02106FC8 + + thumb_func_start FUN_02002E14 +FUN_02002E14: ; 0x02002E14 + push {r4-r6, lr} + lsl r4, r0, #0x2 + ldr r0, _02002E48 ; =0x02106FC8 + add r5, r1, #0x0 + ldr r0, [r0, #0x0] + add r6, r2, #0x0 + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02002E2E + bl ErrorHandling +_02002E2E: + add r0, r5, #0x0 + bl FUN_02021F2C + add r1, r0, #0x0 + ldr r0, _02002E48 ; =0x02106FC8 + add r2, r6, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl FUN_020218D8 + pop {r4-r6, pc} + .balign 4 +_02002E48: .word 0x02106FC8 + + thumb_func_start FUN_02002E4C +FUN_02002E4C: ; 0x02002E4C + mov r2, #0x0 + cmp r1, #0x7 + bhi _02002EAC + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02002E5E: ; jump table (using 16-bit offset) + .short _02002E6E - _02002E5E - 2; case 0 + .short _02002E76 - _02002E5E - 2; case 1 + .short _02002E7E - _02002E5E - 2; case 2 + .short _02002E86 - _02002E5E - 2; case 3 + .short _02002E8E - _02002E5E - 2; case 4 + .short _02002E96 - _02002E5E - 2; case 5 + .short _02002E9E - _02002E5E - 2; case 6 + .short _02002EA6 - _02002E5E - 2; case 7 +_02002E6E: + lsl r1, r0, #0x3 + ldr r0, _02002EB0 ; =0x020ECB64 + ldrb r2, [r0, r1] + b _02002EAC +_02002E76: + lsl r1, r0, #0x3 + ldr r0, _02002EB4 ; =0x020ECB65 + ldrb r2, [r0, r1] + b _02002EAC +_02002E7E: + lsl r1, r0, #0x3 + ldr r0, _02002EB8 ; =0x020ECB66 + ldrb r2, [r0, r1] + b _02002EAC +_02002E86: + lsl r1, r0, #0x3 + ldr r0, _02002EBC ; =0x020ECB67 + ldrb r2, [r0, r1] + b _02002EAC +_02002E8E: + lsl r1, r0, #0x3 + ldr r0, _02002EC0 ; =0x020ECB68 + ldrb r2, [r0, r1] + b _02002EAC +_02002E96: + lsl r1, r0, #0x3 + ldr r0, _02002EC4 ; =0x020ECB69 + ldrb r2, [r0, r1] + b _02002EAC +_02002E9E: + lsl r1, r0, #0x3 + ldr r0, _02002EC8 ; =0x020ECB6A + ldrb r2, [r0, r1] + b _02002EAC +_02002EA6: + lsl r1, r0, #0x3 + ldr r0, _02002ECC ; =0x020ECB6B + ldrb r2, [r0, r1] +_02002EAC: + add r0, r2, #0x0 + bx lr + .balign 4 +_02002EB0: .word 0x020ECB64 +_02002EB4: .word 0x020ECB65 +_02002EB8: .word 0x020ECB66 +_02002EBC: .word 0x020ECB67 +_02002EC0: .word 0x020ECB68 +_02002EC4: .word 0x020ECB69 +_02002EC8: .word 0x020ECB6A +_02002ECC: .word 0x020ECB6B + + thumb_func_start FUN_02002ED0 +FUN_02002ED0: ; 0x02002ED0 + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + mov r0, #0x20 + str r0, [sp, #0x0] + add r3, r1, #0x0 + str r2, [sp, #0x4] + mov r0, #0xe + mov r1, #0x6 + add r2, r4, #0x0 + bl FUN_02006930 + add sp, #0x8 + pop {r4, pc} + + thumb_func_start FUN_02002EEC +FUN_02002EEC: ; 0x02002EEC + push {r4, lr} + sub sp, #0x8 + add r4, r0, #0x0 + mov r0, #0x20 + str r0, [sp, #0x0] + add r3, r1, #0x0 + str r2, [sp, #0x4] + mov r0, #0xe + mov r1, #0x7 + add r2, r4, #0x0 + bl FUN_02006930 + add sp, #0x8 + pop {r4, pc} diff --git a/arm9/asm/unk_02002F08.s b/arm9/asm/unk_02002F08.s new file mode 100644 index 00000000..f5e76505 --- /dev/null +++ b/arm9/asm/unk_02002F08.s @@ -0,0 +1,285 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + thumb_func_start FUN_02002F08 +FUN_02002F08: ; 0x02002F08 + push {r4-r6, lr} + lsl r4, r0, #0x2 + ldr r0, _02002F3C ; =0x02106FC8 + add r5, r1, #0x0 + ldr r0, [r0, #0x0] + add r6, r2, #0x0 + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02002F22 + bl ErrorHandling +_02002F22: + add r0, r5, #0x0 + bl FUN_02021F2C + add r1, r0, #0x0 + ldr r0, _02002F3C ; =0x02106FC8 + add r2, r6, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl FUN_02021934 + pop {r4-r6, pc} + .balign 4 +_02002F3C: .word 0x02106FC8 + + thumb_func_start FUN_02002F40 +FUN_02002F40: ; 0x02002F40 + push {r4, lr} + add r4, r3, #0x0 + bl FUN_02002E14 + cmp r0, r4 + bhs _02002F52 + sub r0, r4, r0 + lsr r0, r0, #0x1 + pop {r4, pc} +_02002F52: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02002F58 +FUN_02002F58: ; 0x02002F58 + push {r3-r7, lr} + ldrh r2, [r0, #0x0] + ldr r1, _02002F8C ; =0x0000FFFF + mov r5, #0x1 + cmp r2, r1 + beq _02002F88 + mov r6, #0xe + lsl r6, r6, #0xc + add r7, r1, #0x0 + sub r4, r1, #0x1 +_02002F6C: + cmp r2, r4 + bne _02002F76 + bl FUN_0201B8B8 + b _02002F82 +_02002F76: + cmp r2, r6 + bne _02002F80 + add r5, r5, #0x1 + add r0, r0, #0x2 + b _02002F82 +_02002F80: + add r0, r0, #0x2 +_02002F82: + ldrh r2, [r0, #0x0] + cmp r2, r7 + bne _02002F6C +_02002F88: + add r0, r5, #0x0 + pop {r3-r7, pc} + .balign 4 +_02002F8C: .word 0x0000FFFF + + thumb_func_start FUN_02002F90 +FUN_02002F90: ; 0x02002F90 + push {r3, lr} + bl FUN_02021F2C + bl FUN_02002F58 + pop {r3, pc} + + thumb_func_start FUN_02002F9C +FUN_02002F9C: ; 0x02002F9C + push {r3-r5, lr} + lsl r4, r0, #0x2 + ldr r0, _02002FCC ; =0x02106FC8 + add r5, r1, #0x0 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + cmp r0, #0x0 + bne _02002FB4 + bl ErrorHandling +_02002FB4: + add r0, r5, #0x0 + bl FUN_02021F2C + add r1, r0, #0x0 + ldr r0, _02002FCC ; =0x02106FC8 + ldr r0, [r0, #0x0] + add r0, r0, r4 + add r0, #0x94 + ldr r0, [r0, #0x0] + bl FUN_0202199C + pop {r3-r5, pc} + .balign 4 +_02002FCC: .word 0x02106FC8 + + thumb_func_start FUN_02002FD0 +FUN_02002FD0: ; 0x02002FD0 + push {r4, lr} + mov r1, #0x12 + lsl r1, r1, #0x4 + bl FUN_02016998 + mov r2, #0x12 + mov r1, #0x0 + lsl r2, r2, #0x4 + add r4, r0, #0x0 + bl MI_CpuFill8 + add r0, r4, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02002FEC +FUN_02002FEC: ; 0x02002FEC + ldr r3, _02002FF0 ; =FUN_02016A18 + bx r3 + .balign 4 +_02002FF0: .word FUN_02016A18 + + thumb_func_start FUN_02002FF4 +FUN_02002FF4: ; 0x02002FF4 + push {r3-r4} + mov r4, #0x14 + mul r4, r1 + str r2, [r0, r4] + add r1, r0, r4 + ldr r0, [sp, #0x8] + str r3, [r1, #0x4] + str r0, [r1, #0x8] + pop {r3-r4} + bx lr + + thumb_func_start FUN_02003008 +FUN_02003008: ; 0x02003008 + push {r3-r7, lr} + sub sp, #0x8 + add r4, r2, #0x0 + add r5, r0, #0x0 + add r6, r1, #0x0 + str r3, [sp, #0x4] + add r0, r3, #0x0 + add r1, r4, #0x0 + bl FUN_02016998 + add r7, r0, #0x0 + ldr r0, [sp, #0x4] + add r1, r4, #0x0 + bl FUN_02016998 + add r3, r0, #0x0 + add r0, r5, #0x0 + add r1, r6, #0x0 + add r2, r7, #0x0 + str r4, [sp, #0x0] + bl FUN_02002FF4 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start FUN_02003038 +FUN_02003038: ; 0x02003038 + push {r3-r5, lr} + add r4, r0, #0x0 + mov r0, #0x14 + add r5, r1, #0x0 + mul r5, r0 + ldr r0, [r4, r5] + bl FUN_02016A18 + add r0, r4, r5 + ldr r0, [r0, #0x4] + bl FUN_02016A18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02003054 +FUN_02003054: ; 0x02003054 + push {r3-r7, lr} + add r5, r0, #0x0 + add r0, sp, #0x8 + ldrh r7, [r0, #0x10] + add r6, r2, #0x0 + mov r0, #0x14 + mul r6, r0 + str r1, [sp, #0x0] + add r0, r1, #0x0 + ldr r1, [r5, r6] + lsl r4, r3, #0x1 + add r1, r1, r4 + add r2, r7, #0x0 + bl MIi_CpuCopy16 + add r1, r5, r6 + ldr r1, [r1, #0x4] + ldr r0, [sp, #0x0] + add r1, r1, r4 + add r2, r7, #0x0 + bl MIi_CpuCopy16 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02003084 +FUN_02003084: ; 0x02003084 + push {r4-r6, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + add r2, sp, #0x4 + ldr r4, [sp, #0x1c] + bl FUN_02006C08 + add r6, r0, #0x0 + bne _0200309E + bl ErrorHandling +_0200309E: + cmp r4, #0x0 + bne _020030A6 + ldr r0, [sp, #0x4] + ldr r4, [r0, #0x8] +_020030A6: + add r0, sp, #0x8 + ldrh r0, [r0, #0x18] + ldr r2, [sp, #0x18] + mov r1, #0x14 + mul r1, r2 + add r1, r5, r1 + lsl r0, r0, #0x1 + ldr r1, [r1, #0x8] + add r0, r4, r0 + cmp r0, r1 + bls _020030C0 + bl ErrorHandling +_020030C0: + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + ldr r1, [sp, #0x4] + add r3, sp, #0x8 + ldr r2, [r1, #0xc] + ldrh r1, [r3, #0x1c] + ldrh r3, [r3, #0x18] + add r0, r5, #0x0 + lsl r1, r1, #0x1 + add r1, r2, r1 + ldr r2, [sp, #0x18] + bl FUN_02003054 + add r0, r6, #0x0 + bl FUN_02016A18 + add sp, #0x8 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_020030E8 +FUN_020030E8: ; 0x020030E8 + push {r4, lr} + sub sp, #0x10 + ldr r4, [sp, #0x18] + str r4, [sp, #0x0] + ldr r4, [sp, #0x1c] + str r4, [sp, #0x4] + add r4, sp, #0x8 + ldrh r4, [r4, #0x18] + str r4, [sp, #0x8] + mov r4, #0x0 + str r4, [sp, #0xc] + bl FUN_02003084 + add sp, #0x10 + pop {r4, pc} + .balign 4 diff --git a/arm9/asm/unk_020030E8.s b/arm9/asm/unk_020030E8.s new file mode 100644 index 00000000..a7b9cfc0 --- /dev/null +++ b/arm9/asm/unk_020030E8.s @@ -0,0 +1,1424 @@ + .include "asm/macros.inc" + .include "global.inc" + + .section .text + + thumb_func_start FUN_02003108 +FUN_02003108: ; 0x02003108 + push {r3-r7, lr} + add r4, r1, #0x0 + mov r1, #0x14 + add r6, r0, #0x0 + mul r1, r4 + add r5, r2, #0x0 + add r1, r6, r1 + add r7, r3, #0x0 + lsl r0, r5, #0x1 + ldr r1, [r1, #0x8] + add r0, r7, r0 + cmp r0, r1 + bls _02003126 + bl ErrorHandling +_02003126: + cmp r4, #0x3 + bhi _0200315E + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02003136: ; jump table (using 16-bit offset) + .short _0200313E - _02003136 - 2; case 0 + .short _02003146 - _02003136 - 2; case 1 + .short _0200314E - _02003136 - 2; case 2 + .short _02003156 - _02003136 - 2; case 3 +_0200313E: + bl FUN_020222E8 + add r1, r0, #0x0 + b _02003164 +_02003146: + bl FUN_020222F8 + add r1, r0, #0x0 + b _02003164 +_0200314E: + bl FUN_02022308 + add r1, r0, #0x0 + b _02003164 +_02003156: + bl FUN_02022310 + add r1, r0, #0x0 + b _02003164 +_0200315E: + bl ErrorHandling + pop {r3-r7, pc} +_02003164: + lsl r0, r7, #0x10 + lsr r0, r0, #0x10 + lsl r2, r5, #0x1 + str r0, [sp, #0x0] + add r1, r1, r2 + add r0, r6, #0x0 + add r2, r4, #0x0 + add r3, r5, #0x0 + bl FUN_02003054 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_0200317C +FUN_0200317C: ; 0x0200317C + push {r3-r5, lr} + add r4, r2, #0x0 + add r5, r3, #0x0 + add r2, sp, #0x0 + add r3, r4, #0x0 + bl FUN_02006C08 + add r4, r0, #0x0 + bne _02003192 + bl ErrorHandling +_02003192: + cmp r5, #0x0 + bne _0200319A + ldr r0, [sp, #0x0] + ldr r5, [r0, #0x8] +_0200319A: + ldr r0, [sp, #0x0] + add r2, r5, #0x0 + ldr r1, [r0, #0xc] + add r0, sp, #0x0 + ldrh r0, [r0, #0x10] + lsl r0, r0, #0x1 + add r0, r1, r0 + ldr r1, [sp, #0x14] + bl MIi_CpuCopy16 + add r0, r4, #0x0 + bl FUN_02016A18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020031B8 +FUN_020031B8: ; 0x020031B8 + push {r3-r7, lr} + sub sp, #0x8 + add r4, sp, #0x10 + add r5, r0, #0x0 + add r0, r1, #0x0 + ldrh r1, [r4, #0x14] + add r6, r3, #0x0 + str r1, [sp, #0x0] + ldrh r1, [r4, #0x10] + lsl r4, r2, #0x1 + ldr r2, [sp, #0x0] + lsl r7, r1, #0x1 + mov r1, #0x14 + mul r6, r1 + mul r1, r0 + ldr r0, [r5, r1] + str r1, [sp, #0x4] + ldr r1, [r5, r6] + add r0, r0, r4 + add r1, r1, r7 + bl MIi_CpuCopy16 + ldr r0, [sp, #0x4] + add r1, r5, r6 + ldr r0, [r5, r0] + ldr r1, [r1, #0x4] + ldr r2, [sp, #0x0] + add r0, r0, r4 + add r1, r1, r7 + bl MIi_CpuCopy16 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_020031FC +FUN_020031FC: ; 0x020031FC + mov r2, #0x14 + mul r2, r1 + ldr r0, [r0, r2] + bx lr + + thumb_func_start FUN_02003204 +FUN_02003204: ; 0x02003204 + mov r2, #0x14 + mul r2, r1 + add r0, r0, r2 + ldr r0, [r0, #0x4] + bx lr + .balign 4 + + thumb_func_start FUN_02003210 +FUN_02003210: ; 0x02003210 + push {r0-r3} + push {r3-r7, lr} + sub sp, #0x10 + str r3, [sp, #0x8] + add r5, r0, #0x0 + ldr r0, [sp, #0x38] + mov r6, #0x0 + str r0, [sp, #0x38] + ldr r0, [sp, #0x3c] + add r7, r1, #0x0 + str r0, [sp, #0x3c] + ldr r0, [sp, #0x40] + add r4, r6, #0x0 + str r0, [sp, #0x40] + add r0, sp, #0x28 + ldrh r0, [r0, #0x8] + str r0, [sp, #0xc] +_02003232: + add r0, r7, #0x0 + add r1, r4, #0x0 + bl FUN_02003314 + cmp r0, #0x1 + bne _020032A6 + mov r0, #0x46 + lsl r0, r0, #0x2 + ldrh r0, [r5, r0] + add r1, r4, #0x0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x12 + bl FUN_02003314 + cmp r0, #0x0 + bne _020032A6 + mov r0, #0x14 + add r6, r4, #0x0 + mul r6, r0 + add r0, r4, #0x0 + add r1, r5, r6 + add r2, sp, #0x30 + bl FUN_02003368 + ldr r0, [sp, #0x3c] + add r1, sp, #0x28 + str r0, [sp, #0x0] + ldr r0, [sp, #0x40] + str r0, [sp, #0x4] + add r0, r5, r6 + ldrh r1, [r1, #0x8] + ldr r2, [sp, #0x8] + ldr r3, [sp, #0x38] + add r0, #0xc + bl FUN_020033A4 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02003328 + cmp r4, #0x4 + blo _02003294 + mov r2, #0x1 + add r0, r5, #0x0 + add r1, r4, #0x0 + lsl r2, r2, #0x8 + bl FUN_0200359C + b _0200329E +_02003294: + add r0, r5, #0x0 + add r1, r4, #0x0 + mov r2, #0x10 + bl FUN_0200359C +_0200329E: + ldr r1, [sp, #0xc] + add r0, sp, #0x28 + strh r1, [r0, #0x8] + mov r6, #0x1 +_020032A6: + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xe + blo _02003232 + cmp r6, #0x1 + bne _02003300 + mov r0, #0x46 + lsl r0, r0, #0x2 + ldrh r2, [r5, r0] + ldr r1, _0200330C ; =0xFFFF0003 + and r1, r2 + lsl r2, r2, #0x10 + lsr r2, r2, #0x12 + orr r2, r7 + lsl r2, r2, #0x12 + lsr r2, r2, #0x10 + orr r1, r2 + strh r1, [r5, r0] + add r1, r0, #0x2 + ldrh r1, [r5, r1] + lsl r1, r1, #0x11 + lsr r1, r1, #0x1f + bne _02003300 + add r1, r0, #0x2 + ldrh r2, [r5, r1] + mov r1, #0x1 + lsl r1, r1, #0xe + orr r2, r1 + add r1, r0, #0x2 + strh r2, [r5, r1] + ldrh r2, [r5, r0] + mov r1, #0x3 + bic r2, r1 + mov r1, #0x1 + orr r1, r2 + strh r1, [r5, r0] + mov r2, #0x0 + add r0, r0, #0x4 + strb r2, [r5, r0] + ldr r0, _02003310 ; =FUN_02003464 + add r1, r5, #0x0 + sub r2, r2, #0x2 + bl FUN_0200CA44 +_02003300: + add r0, r6, #0x0 + add sp, #0x10 + pop {r3-r7} + pop {r3} + add sp, #0x10 + bx r3 + .balign 4 +_0200330C: .word 0xFFFF0003 +_02003310: .word FUN_02003464 + + thumb_func_start FUN_02003314 +FUN_02003314: ; 0x02003314 + mov r3, #0x1 + add r2, r3, #0x0 + lsl r2, r1 + tst r0, r2 + bne _02003320 + mov r3, #0x0 +_02003320: + lsl r0, r3, #0x18 + lsr r0, r0, #0x18 + bx lr + .balign 4 + + thumb_func_start FUN_02003328 +FUN_02003328: ; 0x02003328 + push {r4-r6, lr} + add r5, r0, #0x0 + ldr r0, _02003360 ; =0x0000011A + add r4, r1, #0x0 + ldrh r0, [r5, r0] + lsl r0, r0, #0x12 + lsr r0, r0, #0x12 + bl FUN_02003314 + cmp r0, #0x1 + beq _0200335E + ldr r3, _02003360 ; =0x0000011A + ldr r1, _02003364 ; =0xFFFFC000 + ldrh r2, [r5, r3] + add r0, r2, #0x0 + lsl r2, r2, #0x12 + lsr r6, r2, #0x12 + mov r2, #0x1 + lsl r2, r4 + orr r2, r6 + lsl r2, r2, #0x10 + and r0, r1 + lsr r2, r2, #0x10 + lsr r1, r1, #0x12 + and r1, r2 + orr r0, r1 + strh r0, [r5, r3] +_0200335E: + pop {r4-r6, pc} + .balign 4 +_02003360: .word 0x0000011A +_02003364: .word 0xFFFFC000 + + thumb_func_start FUN_02003368 +FUN_02003368: ; 0x02003368 + push {r4-r5} + cmp r0, #0x4 + ldr r0, [r1, #0x8] + bge _02003374 + lsl r0, r0, #0x13 + b _02003378 +_02003374: + lsr r0, r0, #0x9 + lsl r0, r0, #0x18 +_02003378: + mov r4, #0x0 + lsr r0, r0, #0x18 + add r5, r4, #0x0 + cmp r0, #0x0 + bls _02003398 + mov r3, #0x1 +_02003384: + add r1, r3, #0x0 + lsl r1, r5 + add r1, r4, r1 + lsl r1, r1, #0x10 + lsr r4, r1, #0x10 + add r1, r5, #0x1 + lsl r1, r1, #0x18 + lsr r5, r1, #0x18 + cmp r5, r0 + blo _02003384 +_02003398: + ldrh r0, [r2, #0x0] + and r0, r4 + strh r0, [r2, #0x0] + pop {r4-r5} + bx lr + .balign 4 + + thumb_func_start FUN_020033A4 +FUN_020033A4: ; 0x020033A4 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r3, #0x0 + cmp r2, #0x0 + bge _020033D4 + add r0, r2, #0x0 + bl abs + add r0, r0, #0x2 + ldrh r1, [r5, #0x6] + mov r2, #0xf + lsl r0, r0, #0x10 + bic r1, r2 + lsr r2, r0, #0x10 + mov r0, #0xf + and r0, r2 + orr r0, r1 + strh r0, [r5, #0x6] + ldrh r1, [r5, #0x2] + mov r0, #0x3f + bic r1, r0 + strh r1, [r5, #0x2] + b _020033F2 +_020033D4: + ldrh r1, [r5, #0x6] + mov r0, #0xf + bic r1, r0 + mov r0, #0x2 + orr r0, r1 + strh r0, [r5, #0x6] + ldrh r0, [r5, #0x2] + mov r1, #0x3f + bic r0, r1 + lsl r1, r2, #0x10 + lsr r2, r1, #0x10 + mov r1, #0x3f + and r1, r2 + orr r0, r1 + strh r0, [r5, #0x2] +_020033F2: + strh r6, [r5, #0x0] + ldrh r1, [r5, #0x2] + ldr r0, _02003454 ; =0xFFFFF83F + add r3, sp, #0x0 + and r1, r0 + lsl r0, r4, #0x1b + lsr r0, r0, #0x15 + orr r0, r1 + strh r0, [r5, #0x2] + ldrh r1, [r5, #0x2] + ldr r0, _02003458 ; =0xFFFF07FF + add r2, r1, #0x0 + ldrb r1, [r3, #0x10] + and r2, r0 + lsl r0, r1, #0x1b + lsr r0, r0, #0x10 + orr r0, r2 + strh r0, [r5, #0x2] + ldrh r0, [r5, #0x4] + ldr r2, _0200345C ; =0xFFFF8000 + ldrh r6, [r3, #0x14] + lsr r3, r2, #0x11 + and r0, r2 + and r3, r6 + orr r0, r3 + strh r0, [r5, #0x4] + ldrh r3, [r5, #0x6] + ldr r0, _02003460 ; =0xFFFFFC0F + and r0, r3 + ldrh r3, [r5, #0x2] + lsl r3, r3, #0x1a + lsr r3, r3, #0x1a + lsl r3, r3, #0x1a + lsr r3, r3, #0x16 + orr r0, r3 + strh r0, [r5, #0x6] + cmp r4, r1 + ldrh r1, [r5, #0x4] + bhs _02003448 + sub r0, r2, #0x1 + and r0, r1 + strh r0, [r5, #0x4] + pop {r4-r6, pc} +_02003448: + mov r0, #0x2 + lsl r0, r0, #0xe + orr r0, r1 + strh r0, [r5, #0x4] + pop {r4-r6, pc} + nop +_02003454: .word 0xFFFFF83F +_02003458: .word 0xFFFF07FF +_0200345C: .word 0xFFFF8000 +_02003460: .word 0xFFFFFC0F + + thumb_func_start FUN_02003464 +FUN_02003464: ; 0x02003464 + push {r4-r6, lr} + add r4, r1, #0x0 + mov r1, #0x47 + lsl r1, r1, #0x2 + ldrb r2, [r4, r1] + add r5, r0, #0x0 + cmp r2, #0x1 + bne _020034A4 + mov r2, #0x0 + strb r2, [r4, r1] + sub r2, r1, #0x2 + ldrh r3, [r4, r2] + ldr r2, _020034F4 ; =0xFFFFC000 + add r5, r3, #0x0 + and r5, r2 + sub r3, r1, #0x2 + strh r5, [r4, r3] + sub r3, r1, #0x4 + ldrh r5, [r4, r3] + ldr r3, _020034F8 ; =0xFFFF0003 + sub r2, r2, #0x1 + and r5, r3 + sub r3, r1, #0x4 + strh r5, [r4, r3] + sub r3, r1, #0x2 + ldrh r3, [r4, r3] + sub r1, r1, #0x2 + and r2, r3 + strh r2, [r4, r1] + bl FUN_0200CAB4 + pop {r4-r6, pc} +_020034A4: + sub r0, r1, #0x4 + ldrh r2, [r4, r0] + lsl r0, r2, #0x1e + lsr r0, r0, #0x1e + cmp r0, #0x1 + bne _020034F0 + sub r0, r1, #0x2 + ldrh r0, [r4, r0] + ldr r3, _020034F4 ; =0xFFFFC000 + lsl r2, r2, #0x10 + lsr r6, r2, #0x12 + lsr r2, r3, #0x12 + and r0, r3 + and r2, r6 + orr r2, r0 + sub r0, r1, #0x2 + strh r2, [r4, r0] + add r0, r4, #0x0 + bl FUN_02003500 + add r0, r4, #0x0 + bl FUN_02003520 + mov r1, #0x46 + lsl r1, r1, #0x2 + ldrh r0, [r4, r1] + lsl r0, r0, #0x10 + lsr r0, r0, #0x12 + bne _020034F0 + add r0, r1, #0x2 + ldrh r2, [r4, r0] + ldr r0, _020034FC ; =0xFFFFBFFF + and r2, r0 + add r0, r1, #0x2 + strh r2, [r4, r0] + add r0, r5, #0x0 + bl FUN_0200CAB4 +_020034F0: + pop {r4-r6, pc} + nop +_020034F4: .word 0xFFFFC000 +_020034F8: .word 0xFFFF0003 +_020034FC: .word 0xFFFFBFFF + + thumb_func_start FUN_02003500 +FUN_02003500: ; 0x02003500 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r4, #0x0 + mov r6, #0x10 +_02003508: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_02003540 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0x4 + blo _02003508 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02003520 +FUN_02003520: ; 0x02003520 + push {r4-r6, lr} + mov r4, #0x4 + add r6, r4, #0x0 + add r5, r0, #0x0 + add r6, #0xfc +_0200352A: + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_02003540 + add r0, r4, #0x1 + lsl r0, r0, #0x18 + lsr r4, r0, #0x18 + cmp r4, #0xe + blo _0200352A + pop {r4-r6, pc} + + thumb_func_start FUN_02003540 +FUN_02003540: ; 0x02003540 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0x46 + lsl r0, r0, #0x2 + ldrh r0, [r5, r0] + add r4, r1, #0x0 + add r6, r2, #0x0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x12 + bl FUN_02003314 + cmp r0, #0x0 + beq _02003594 + mov r0, #0x14 + mul r0, r4 + add r2, r5, r0 + ldrh r0, [r2, #0x12] + ldrh r3, [r2, #0xe] + lsl r1, r0, #0x16 + lsl r3, r3, #0x1a + lsr r1, r1, #0x1a + lsr r3, r3, #0x1a + cmp r1, r3 + bhs _02003584 + ldr r3, _02003598 ; =0xFFFFFC0F + and r3, r0 + add r0, r1, #0x1 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1a + lsr r0, r0, #0x16 + orr r0, r3 + strh r0, [r2, #0x12] + pop {r4-r6, pc} +_02003584: + ldr r1, _02003598 ; =0xFFFFFC0F + and r0, r1 + strh r0, [r2, #0x12] + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_0200359C +_02003594: + pop {r4-r6, pc} + nop +_02003598: .word 0xFFFFFC0F + + thumb_func_start FUN_0200359C +FUN_0200359C: ; 0x0200359C + push {r4-r7, lr} + sub sp, #0xc + str r1, [sp, #0x4] + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + mov r1, #0x14 + mul r1, r0 + ldr r0, [sp, #0x0] + mov r6, #0x0 + add r5, r0, r1 + add r0, r5, #0x0 + str r0, [sp, #0x8] + add r0, #0xc + add r7, r2, #0x0 + add r4, r6, #0x0 + str r0, [sp, #0x8] +_020035BC: + ldrh r0, [r5, #0xc] + lsl r1, r6, #0x10 + lsr r1, r1, #0x10 + bl FUN_02003314 + cmp r0, #0x0 + beq _020035DC + ldr r0, [r5, #0x0] + lsl r1, r4, #0x1 + ldr r2, [r5, #0x4] + add r0, r0, r1 + add r1, r2, r1 + ldr r2, [sp, #0x8] + add r3, r7, #0x0 + bl FUN_020035F8 +_020035DC: + add r6, r6, #0x1 + add r4, r4, r7 + cmp r6, #0x10 + blo _020035BC + ldr r1, [sp, #0x4] + add r5, #0xc + lsl r1, r1, #0x18 + ldr r0, [sp, #0x0] + lsr r1, r1, #0x18 + add r2, r5, #0x0 + bl FUN_02003684 + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start FUN_020035F8 +FUN_020035F8: ; 0x020035F8 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x4] + mov r0, #0x0 + add r6, r1, #0x0 + mov r12, r0 + str r2, [sp, #0x0] + mov lr, r3 + add r0, r3, #0x0 + beq _02003680 +_0200360C: + ldr r0, [sp, #0x4] + mov r1, #0x1f + ldrh r0, [r0, #0x0] + asr r2, r0, #0x5 + add r5, r2, #0x0 + and r5, r1 + ldr r1, [sp, #0x0] + asr r4, r0, #0xa + ldrh r1, [r1, #0x4] + lsl r1, r1, #0x11 + lsr r3, r1, #0x11 + ldr r1, [sp, #0x0] + ldrh r1, [r1, #0x2] + lsl r1, r1, #0x15 + lsr r2, r1, #0x1b + mov r1, #0x1f + and r1, r4 + mov r4, #0x1f + and r0, r4 + and r4, r3 + sub r4, r4, r0 + mul r4, r2 + asr r4, r4, #0x4 + add r0, r0, r4 + lsl r0, r0, #0x18 + lsr r7, r0, #0x18 + asr r4, r3, #0xa + mov r0, #0x1f + and r0, r4 + sub r0, r0, r1 + mul r0, r2 + asr r0, r0, #0x4 + add r0, r1, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + asr r3, r3, #0x5 + mov r1, #0x1f + and r1, r3 + sub r1, r1, r5 + mul r1, r2 + asr r1, r1, #0x4 + add r1, r5, r1 + lsl r1, r1, #0x18 + lsl r0, r0, #0xa + lsr r1, r1, #0x13 + orr r0, r1 + orr r0, r7 + strh r0, [r6, #0x0] + ldr r0, [sp, #0x4] + add r6, r6, #0x2 + add r0, r0, #0x2 + str r0, [sp, #0x4] + mov r0, r12 + add r1, r0, #0x1 + mov r0, lr + mov r12, r1 + cmp r1, r0 + blo _0200360C +_02003680: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start FUN_02003684 +FUN_02003684: ; 0x02003684 + push {r4-r5} + ldrh r4, [r2, #0x2] + lsl r3, r4, #0x10 + lsl r4, r4, #0x15 + lsr r3, r3, #0x1b + lsr r4, r4, #0x1b + cmp r4, r3 + bne _020036BE + mov r3, #0x46 + lsl r3, r3, #0x2 + ldrh r4, [r0, r3] + mov r2, #0x1 + lsl r2, r1 + lsl r1, r4, #0x10 + lsr r5, r1, #0x12 + add r1, r5, #0x0 + tst r1, r2 + beq _0200371E + eor r2, r5 + lsl r2, r2, #0x10 + ldr r1, _02003724 ; =0xFFFF0003 + lsr r2, r2, #0x10 + lsl r2, r2, #0x12 + and r1, r4 + lsr r2, r2, #0x10 + orr r1, r2 + strh r1, [r0, r3] + pop {r4-r5} + bx lr +_020036BE: + ldrh r0, [r2, #0x4] + lsl r0, r0, #0x10 + lsr r0, r0, #0x1f + bne _020036F4 + lsl r0, r4, #0x10 + asr r1, r0, #0x10 + ldrh r0, [r2, #0x6] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + add r0, r1, r0 + lsl r0, r0, #0x10 + asr r4, r0, #0x10 + cmp r4, r3 + ble _020036DE + lsl r0, r3, #0x10 + asr r4, r0, #0x10 +_020036DE: + ldrh r1, [r2, #0x2] + ldr r0, _02003728 ; =0xFFFFF83F + and r1, r0 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1b + lsr r0, r0, #0x15 + orr r0, r1 + strh r0, [r2, #0x2] + pop {r4-r5} + bx lr +_020036F4: + lsl r0, r4, #0x10 + asr r1, r0, #0x10 + ldrh r0, [r2, #0x6] + lsl r0, r0, #0x1c + lsr r0, r0, #0x1c + sub r0, r1, r0 + lsl r0, r0, #0x10 + asr r4, r0, #0x10 + cmp r4, r3 + bge _0200370C + lsl r0, r3, #0x10 + asr r4, r0, #0x10 +_0200370C: + ldrh r1, [r2, #0x2] + ldr r0, _02003728 ; =0xFFFFF83F + and r1, r0 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + lsl r0, r0, #0x1b + lsr r0, r0, #0x15 + orr r0, r1 + strh r0, [r2, #0x2] +_0200371E: + pop {r4-r5} + bx lr + nop +_02003724: .word 0xFFFF0003 +_02003728: .word 0xFFFFF83F + + thumb_func_start FUN_0200372C +FUN_0200372C: ; 0x0200372C + push {r3-r7, lr} + add r6, r0, #0x0 + ldr r0, _020038DC ; =0x0000011A + ldrh r1, [r6, r0] + lsl r1, r1, #0x10 + lsr r1, r1, #0x1f + bne _02003748 + sub r0, r0, #0x2 + ldrh r0, [r6, r0] + lsl r0, r0, #0x1e + lsr r0, r0, #0x1e + cmp r0, #0x1 + beq _02003748 + b _020038DA +_02003748: + mov r7, #0x2 + mov r5, #0x0 + add r4, r6, #0x0 + lsl r7, r7, #0xc +_02003750: + ldr r0, _020038DC ; =0x0000011A + ldrh r1, [r6, r0] + lsl r0, r1, #0x10 + lsr r0, r0, #0x1f + bne _02003770 + ldr r0, [r4, #0x4] + cmp r0, #0x0 + beq _0200377C + lsl r0, r1, #0x12 + lsl r1, r5, #0x10 + lsr r0, r0, #0x12 + lsr r1, r1, #0x10 + bl FUN_02003314 + cmp r0, #0x0 + beq _0200377C +_02003770: + ldr r0, [r4, #0x4] + ldr r1, [r4, #0x8] + bl DC_FlushRange + cmp r5, #0xd + bls _0200377E +_0200377C: + b _020038A4 +_0200377E: + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0200378A: ; jump table (using 16-bit offset) + .short _020037A6 - _0200378A - 2; case 0 + .short _020037B2 - _0200378A - 2; case 1 + .short _020037BE - _0200378A - 2; case 2 + .short _020037CA - _0200378A - 2; case 3 + .short _020037D6 - _0200378A - 2; case 4 + .short _020037EA - _0200378A - 2; case 5 + .short _020037FE - _0200378A - 2; case 6 + .short _02003814 - _0200378A - 2; case 7 + .short _0200382A - _0200378A - 2; case 8 + .short _0200383E - _0200378A - 2; case 9 + .short _02003852 - _0200378A - 2; case 10 + .short _02003868 - _0200378A - 2; case 11 + .short _0200387E - _0200378A - 2; case 12 + .short _02003892 - _0200378A - 2; case 13 +_020037A6: + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + mov r1, #0x0 + bl GX_LoadBGPltt + b _020038A4 +_020037B2: + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + mov r1, #0x0 + bl GXS_LoadBGPltt + b _020038A4 +_020037BE: + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + mov r1, #0x0 + bl GX_LoadOBJPltt + b _020038A4 +_020037CA: + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + mov r1, #0x0 + bl GXS_LoadOBJPltt + b _020038A4 +_020037D6: + bl GX_BeginLoadBGExtPltt + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + mov r1, #0x0 + bl GX_LoadBGExtPltt + bl GX_EndLoadBGExtPltt + b _020038A4 +_020037EA: + bl GX_BeginLoadBGExtPltt + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + add r1, r7, #0x0 + bl GX_LoadBGExtPltt + bl GX_EndLoadBGExtPltt + b _020038A4 +_020037FE: + bl GX_BeginLoadBGExtPltt + mov r1, #0x1 + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + lsl r1, r1, #0xe + bl GX_LoadBGExtPltt + bl GX_EndLoadBGExtPltt + b _020038A4 +_02003814: + bl GX_BeginLoadBGExtPltt + mov r1, #0x6 + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + lsl r1, r1, #0xc + bl GX_LoadBGExtPltt + bl GX_EndLoadBGExtPltt + b _020038A4 +_0200382A: + bl GXS_BeginLoadBGExtPltt + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + mov r1, #0x0 + bl GXS_LoadBGExtPltt + bl GXS_EndLoadBGExtPltt + b _020038A4 +_0200383E: + bl GXS_BeginLoadBGExtPltt + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + add r1, r7, #0x0 + bl GXS_LoadBGExtPltt + bl GXS_EndLoadBGExtPltt + b _020038A4 +_02003852: + bl GXS_BeginLoadBGExtPltt + mov r1, #0x1 + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + lsl r1, r1, #0xe + bl GXS_LoadBGExtPltt + bl GXS_EndLoadBGExtPltt + b _020038A4 +_02003868: + bl GXS_BeginLoadBGExtPltt + mov r1, #0x6 + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + lsl r1, r1, #0xc + bl GXS_LoadBGExtPltt + bl GXS_EndLoadBGExtPltt + b _020038A4 +_0200387E: + bl GX_BeginLoadOBJExtPltt + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + mov r1, #0x0 + bl GX_LoadOBJExtPltt + bl GX_EndLoadOBJExtPltt + b _020038A4 +_02003892: + bl GXS_BeginLoadOBJExtPltt + ldr r0, [r4, #0x4] + ldr r2, [r4, #0x8] + mov r1, #0x0 + bl GXS_LoadOBJExtPltt + bl GXS_EndLoadOBJExtPltt +_020038A4: + add r5, r5, #0x1 + add r4, #0x14 + cmp r5, #0xe + bge _020038AE + b _02003750 +_020038AE: + ldr r3, _020038DC ; =0x0000011A + ldr r1, _020038E0 ; =0xFFFFC000 + sub r2, r3, #0x2 + ldrh r2, [r6, r2] + ldrh r0, [r6, r3] + lsl r2, r2, #0x10 + and r0, r1 + lsr r2, r2, #0x12 + lsr r1, r1, #0x12 + and r1, r2 + orr r0, r1 + strh r0, [r6, r3] + ldrh r0, [r6, r3] + lsl r0, r0, #0x12 + lsr r0, r0, #0x12 + bne _020038DA + sub r0, r3, #0x2 + ldrh r1, [r6, r0] + mov r0, #0x3 + bic r1, r0 + sub r0, r3, #0x2 + strh r1, [r6, r0] +_020038DA: + pop {r3-r7, pc} + .balign 4 +_020038DC: .word 0x0000011A +_020038E0: .word 0xFFFFC000 + + thumb_func_start FUN_020038E4 +FUN_020038E4: ; 0x020038E4 + mov r1, #0x46 + lsl r1, r1, #0x2 + ldrh r0, [r0, r1] + lsl r0, r0, #0x10 + lsr r0, r0, #0x12 + bx lr + + thumb_func_start FUN_020038F0 +FUN_020038F0: ; 0x020038F0 + push {r3-r4} + ldr r3, _0200390C ; =0x0000011A + lsl r1, r1, #0x10 + ldrh r4, [r0, r3] + ldr r2, _02003910 ; =0xFFFF7FFF + lsr r1, r1, #0x10 + lsl r1, r1, #0x1f + and r2, r4 + lsr r1, r1, #0x10 + orr r1, r2 + strh r1, [r0, r3] + pop {r3-r4} + bx lr + nop +_0200390C: .word 0x0000011A +_02003910: .word 0xFFFF7FFF + + thumb_func_start FUN_02003914 +FUN_02003914: ; 0x02003914 + push {r3-r7, lr} + sub sp, #0x8 + add r6, r0, #0x0 + str r3, [sp, #0x0] + mov r0, #0x14 + add r4, r1, #0x0 + mul r4, r0 + add r0, sp, #0x10 + ldrh r0, [r0, #0x14] + add r7, r2, #0x0 + ldr r5, [sp, #0x20] + str r0, [sp, #0x4] + lsl r1, r0, #0x1 + add r0, r6, r4 + ldr r0, [r0, #0x8] + cmp r1, r0 + bls _0200393A + bl ErrorHandling +_0200393A: + sub r0, r7, #0x1 + cmp r0, #0x1 + bhi _02003952 + ldr r2, [r6, r4] + lsl r1, r5, #0x1 + add r1, r2, r1 + ldr r2, [sp, #0x4] + ldr r0, [sp, #0x0] + sub r2, r2, r5 + lsl r2, r2, #0x1 + bl MIi_CpuClear16 +_02003952: + cmp r7, #0x0 + beq _0200395A + cmp r7, #0x2 + bne _0200396E +_0200395A: + add r1, r6, r4 + ldr r2, [r1, #0x4] + lsl r1, r5, #0x1 + add r1, r2, r1 + ldr r2, [sp, #0x4] + ldr r0, [sp, #0x0] + sub r2, r2, r5 + lsl r2, r2, #0x1 + bl MIi_CpuClear16 +_0200396E: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02003974 +FUN_02003974: ; 0x02003974 + push {r4-r7, lr} + sub sp, #0xc + str r0, [sp, #0x0] + add r0, sp, #0x10 + ldrh r0, [r0, #0x10] + str r1, [sp, #0x4] + add r7, r2, #0x0 + lsl r1, r0, #0x1b + lsr r1, r1, #0x1b + mov r12, r1 + lsl r1, r0, #0x16 + lsl r0, r0, #0x11 + lsr r1, r1, #0x1b + lsr r0, r0, #0x1b + mov r2, #0x0 + mov lr, r1 + str r0, [sp, #0x8] + cmp r7, #0x0 + bls _020039E2 +_0200399A: + ldr r0, [sp, #0x0] + lsl r6, r2, #0x1 + ldrh r4, [r0, r6] + lsl r0, r4, #0x1b + lsr r1, r0, #0x1b + lsl r0, r4, #0x16 + lsl r4, r4, #0x11 + lsr r5, r4, #0x1b + ldr r4, [sp, #0x8] + lsr r0, r0, #0x1b + sub r4, r4, r5 + mul r4, r3 + asr r4, r4, #0x4 + add r4, r5, r4 + lsl r5, r4, #0xa + mov r4, r12 + sub r4, r4, r1 + mul r4, r3 + asr r4, r4, #0x4 + add r1, r1, r4 + mov r4, lr + sub r4, r4, r0 + mul r4, r3 + asr r4, r4, #0x4 + add r0, r0, r4 + lsl r0, r0, #0x5 + orr r0, r1 + add r1, r5, #0x0 + orr r1, r0 + ldr r0, [sp, #0x4] + strh r1, [r0, r6] + add r0, r2, #0x1 + lsl r0, r0, #0x10 + lsr r2, r0, #0x10 + cmp r2, r7 + blo _0200399A +_020039E2: + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_020039E8 +FUN_020039E8: ; 0x020039E8 + push {r3-r7, lr} + sub sp, #0x8 + add r7, r2, #0x0 + add r5, r0, #0x0 + mov r2, #0x14 + add r6, r1, #0x0 + mul r6, r2 + str r3, [sp, #0x4] + ldr r1, [r5, r6] + mov r0, #0x0 + add r4, r5, r6 + cmp r1, #0x0 + beq _02003A0A + ldr r1, [r4, #0x4] + cmp r1, #0x0 + beq _02003A0A + mov r0, #0x1 +_02003A0A: + cmp r0, #0x0 + bne _02003A12 + bl ErrorHandling +_02003A12: + add r3, sp, #0x10 + ldrh r0, [r3, #0x14] + add r2, r5, r6 + lsl r1, r7, #0x1 + str r0, [sp, #0x0] + ldr r0, [r4, #0x0] + ldr r2, [r2, #0x4] + add r0, r0, r1 + add r1, r2, r1 + ldrb r3, [r3, #0x10] + ldr r2, [sp, #0x4] + bl FUN_02003974 + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start FUN_02003A30 +FUN_02003A30: ; 0x02003A30 + push {r3-r7, lr} + sub sp, #0x8 + str r3, [sp, #0x4] + add r5, r0, #0x0 + add r6, r1, #0x0 + add r4, r2, #0x0 + ldr r7, [sp, #0x20] + beq _02003A60 +_02003A40: + mov r0, #0x1 + tst r0, r4 + beq _02003A54 + str r7, [sp, #0x0] + ldr r3, [sp, #0x4] + add r0, r5, #0x0 + add r1, r6, #0x0 + mov r2, #0x10 + bl FUN_02003974 +_02003A54: + lsl r0, r4, #0xf + lsr r4, r0, #0x10 + add r6, #0x20 + add r5, #0x20 + cmp r4, #0x0 + bne _02003A40 +_02003A60: + add sp, #0x8 + pop {r3-r7, pc} + + thumb_func_start FUN_02003A64 +FUN_02003A64: ; 0x02003A64 + push {r4-r7, lr} + sub sp, #0xc + str r3, [sp, #0x8] + add r6, r0, #0x0 + add r7, r1, #0x0 + ldr r0, [sp, #0x20] + add r5, r2, #0x0 + mov r1, #0x14 + add r2, r7, #0x0 + str r0, [sp, #0x20] + mul r2, r1 + mov r4, #0x0 + ldr r1, [r6, r2] + add r0, r4, #0x0 + cmp r1, #0x0 + beq _02003A8E + add r1, r6, r2 + ldr r1, [r1, #0x4] + cmp r1, #0x0 + beq _02003A8E + mov r0, #0x1 +_02003A8E: + cmp r0, #0x0 + bne _02003A96 + bl ErrorHandling +_02003A96: + cmp r5, #0x0 + beq _02003AC0 +_02003A9A: + mov r0, #0x1 + tst r0, r5 + beq _02003AB6 + ldr r0, [sp, #0x8] + lsl r2, r4, #0x10 + str r0, [sp, #0x0] + ldr r0, [sp, #0x20] + add r1, r7, #0x0 + str r0, [sp, #0x4] + add r0, r6, #0x0 + lsr r2, r2, #0x10 + mov r3, #0x10 + bl FUN_020039E8 +_02003AB6: + lsl r0, r5, #0xf + lsr r5, r0, #0x10 + add r4, #0x10 + cmp r5, #0x0 + bne _02003A9A +_02003AC0: + add sp, #0xc + pop {r4-r7, pc} + + thumb_func_start FUN_02003AC4 +FUN_02003AC4: ; 0x02003AC4 + push {r3-r7, lr} + mov lr, r1 + mov r12, r2 + add r7, r3, #0x0 + mov r4, #0x0 + cmp r1, #0x0 + ble _02003B3C + ldr r6, [sp, #0x18] +_02003AD4: + ldrh r3, [r0, #0x0] + mov r1, #0x1f + add r2, r3, #0x0 + asr r5, r3, #0xa + and r2, r1 + and r5, r1 + mov r1, #0x1d + mul r1, r5 + mov r5, #0x4c + mul r5, r2 + asr r3, r3, #0x5 + mov r2, #0x1f + and r3, r2 + mov r2, #0x97 + mul r2, r3 + add r2, r5, r2 + add r1, r1, r2 + asr r3, r1, #0x8 + mov r1, r12 + add r2, r1, #0x0 + mul r2, r3 + lsl r1, r2, #0x10 + lsr r1, r1, #0x10 + asr r2, r1, #0x8 + add r1, r7, #0x0 + mul r1, r3 + mul r3, r6 + lsl r1, r1, #0x10 + lsl r3, r3, #0x10 + lsr r1, r1, #0x10 + lsr r3, r3, #0x10 + asr r1, r1, #0x8 + asr r3, r3, #0x8 + cmp r2, #0x1f + ble _02003B1C + mov r2, #0x1f +_02003B1C: + cmp r1, #0x1f + ble _02003B22 + mov r1, #0x1f +_02003B22: + cmp r3, #0x1f + ble _02003B28 + mov r3, #0x1f +_02003B28: + lsl r3, r3, #0xa + lsl r1, r1, #0x5 + orr r1, r3 + orr r1, r2 + strh r1, [r0, #0x0] + add r4, r4, #0x1 + mov r1, lr + add r0, r0, #0x2 + cmp r4, r1 + blt _02003AD4 +_02003B3C: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02003B40 +FUN_02003B40: ; 0x02003B40 + push {r3-r5, lr} + sub sp, #0x8 + add r5, r0, #0x0 + add r0, r1, #0x0 + add r1, r2, #0x0 + add r2, sp, #0x4 + bl FUN_02006C08 + add r4, r0, #0x0 + bne _02003B58 + bl ErrorHandling +_02003B58: + ldr r0, [sp, #0x1c] + cmp r0, #0x0 + bne _02003B64 + ldr r0, [sp, #0x4] + ldr r0, [r0, #0x8] + str r0, [sp, #0x1c] +_02003B64: + ldr r0, [sp, #0x2c] + ldr r2, [sp, #0x24] + str r0, [sp, #0x0] + ldr r0, [sp, #0x4] + ldr r3, [sp, #0x28] + ldr r0, [r0, #0xc] + mov r1, #0x10 + bl FUN_02003AC4 + ldr r0, [sp, #0x1c] + add r3, sp, #0x8 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + str r0, [sp, #0x0] + ldr r1, [sp, #0x4] + ldrh r3, [r3, #0x18] + ldr r1, [r1, #0xc] + ldr r2, [sp, #0x18] + add r0, r5, #0x0 + bl FUN_02003054 + add r0, r4, #0x0 + bl FUN_02016A18 + add sp, #0x8 + pop {r3-r5, pc} diff --git a/arm9/asm/unk_02003B98.s b/arm9/asm/unk_02003B98.s new file mode 100644 index 00000000..ff9003d1 --- /dev/null +++ b/arm9/asm/unk_02003B98.s @@ -0,0 +1,705 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + thumb_func_start FUN_02003B98 +FUN_02003B98: ; 0x02003B98 + push {r4-r6, lr} + add r5, r0, #0x0 + add r6, r1, #0x0 + bl FUN_02003D30 + add r4, r0, #0x0 + bl FUN_020C01D0 + bl FUN_020040C8 + add r0, r4, #0x0 + bl FUN_02004064 + add r0, r4, #0x0 + ldr r1, _02003C00 ; =0x000BBC00 + add r0, #0x94 + bl FUN_020C2A94 + add r1, r4, #0x0 + add r1, #0x90 + str r0, [r1, #0x0] + add r2, r4, #0x0 + add r2, #0x90 + ldr r1, _02003C04 ; =0x02104780 + ldr r2, [r2, #0x0] + add r0, r4, #0x0 + mov r3, #0x0 + bl FUN_020C26F8 + add r0, r4, #0x0 + add r0, #0x90 + ldr r0, [r0, #0x0] + bl FUN_020C39CC + add r0, r4, #0x0 + bl FUN_02004088 + add r0, r4, #0x0 + bl FUN_020040A4 + ldr r0, _02003C08 ; =0x02107070 + mov r1, #0x0 + str r1, [r0, #0x4] + ldr r0, _02003C0C ; =0x000BCD4C + str r5, [r4, r0] + ldrh r0, [r6, #0x0] + lsl r0, r0, #0x1a + lsr r0, r0, #0x1e + bl FUN_02004D60 + pop {r4-r6, pc} + nop +_02003C00: .word 0x000BBC00 +_02003C04: .word 0x02104780 +_02003C08: .word 0x02107070 +_02003C0C: .word 0x000BCD4C + + thumb_func_start FUN_02003C10 +FUN_02003C10: ; 0x02003C10 + push {r4, lr} + bl FUN_02003D30 + add r4, r0, #0x0 + bl FUN_02003D04 + cmp r0, #0x0 + bne _02003C30 + ldr r0, _02003C3C ; =0x000BCD00 + ldr r1, [r4, r0] + cmp r1, #0x0 + ble _02003C2C + sub r1, r1, #0x1 + str r1, [r4, r0] +_02003C2C: + bl FUN_02003C40 +_02003C30: + bl FUN_02005CFC + bl FUN_020C01A0 + pop {r4, pc} + nop +_02003C3C: .word 0x000BCD00 + + thumb_func_start FUN_02003C40 +FUN_02003C40: ; 0x02003C40 + push {r4, lr} + bl FUN_02003D30 + add r4, r0, #0x0 + ldr r0, _02003CDC ; =0x02107070 + ldr r0, [r0, #0x0] + cmp r0, #0x6 + bhi _02003CD8 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02003C5C: ; jump table (using 16-bit offset) + .short _02003CD8 - _02003C5C - 2; case 0 + .short _02003C6A - _02003C5C - 2; case 1 + .short _02003CD8 - _02003C5C - 2; case 2 + .short _02003C72 - _02003C5C - 2; case 3 + .short _02003C82 - _02003C5C - 2; case 4 + .short _02003C92 - _02003C5C - 2; case 5 + .short _02003CB0 - _02003C5C - 2; case 6 +_02003C6A: + mov r0, #0x2 + bl FUN_02003CE8 + pop {r4, pc} +_02003C72: + bl FUN_02005404 + cmp r0, #0x0 + bne _02003CD8 + mov r0, #0x2 + bl FUN_02003CE8 + pop {r4, pc} +_02003C82: + bl FUN_02005404 + cmp r0, #0x0 + bne _02003CD8 + mov r0, #0x2 + bl FUN_02003CE8 + pop {r4, pc} +_02003C92: + bl FUN_02005404 + cmp r0, #0x0 + bne _02003CD8 + bl FUN_02004D94 + cmp r0, #0x0 + bne _02003CD8 + bl FUN_020040DC + ldr r0, _02003CE0 ; =0x000BCD0E + ldrh r0, [r4, r0] + bl FUN_0200521C + pop {r4, pc} +_02003CB0: + bl FUN_02005404 + cmp r0, #0x0 + bne _02003CD8 + bl FUN_02004D94 + cmp r0, #0x0 + bne _02003CD8 + bl FUN_020040DC + ldr r0, _02003CE0 ; =0x000BCD0E + ldrh r0, [r4, r0] + bl FUN_0200521C + ldr r1, _02003CE4 ; =0x000BCD08 + mov r0, #0x7f + ldr r1, [r4, r1] + mov r2, #0x0 + bl FUN_0200538C +_02003CD8: + pop {r4, pc} + nop +_02003CDC: .word 0x02107070 +_02003CE0: .word 0x000BCD0E +_02003CE4: .word 0x000BCD08 + + thumb_func_start FUN_02003CE8 +FUN_02003CE8: ; 0x02003CE8 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02003D30 + ldr r1, _02003CFC ; =0x000BCCFC + mov r2, #0x0 + strh r2, [r0, r1] + ldr r0, _02003D00 ; =0x02107070 + str r4, [r0, #0x0] + pop {r4, pc} + .balign 4 +_02003CFC: .word 0x000BCCFC +_02003D00: .word 0x02107070 + + thumb_func_start FUN_02003D04 +FUN_02003D04: ; 0x02003D04 + push {r4, lr} + bl FUN_02003D30 + add r4, r0, #0x0 + mov r0, #0x2 + bl FUN_020048BC + cmp r0, #0x0 + beq _02003D1A + mov r0, #0x1 + pop {r4, pc} +_02003D1A: + ldr r0, _02003D2C ; =0x000BCD12 + ldrh r0, [r4, r0] + cmp r0, #0x0 + beq _02003D26 + mov r0, #0x1 + pop {r4, pc} +_02003D26: + mov r0, #0x0 + pop {r4, pc} + nop +_02003D2C: .word 0x000BCD12 + + thumb_func_start FUN_02003D30 +FUN_02003D30: ; 0x02003D30 + ldr r0, _02003D34 ; =0x02107078 + bx lr + .balign 4 +_02003D34: .word 0x02107078 + + thumb_func_start FUN_02003D38 +FUN_02003D38: ; 0x02003D38 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02003D30 + cmp r4, #0x27 + bls _02003D46 + b _02003E92 +_02003D46: + add r1, r4, r4 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02003D52: ; jump table (using 16-bit offset) + .short _02003DA8 - _02003D52 - 2; case 0 + .short _02003DAE - _02003D52 - 2; case 1 + .short _02003DB4 - _02003D52 - 2; case 2 + .short _02003DBA - _02003D52 - 2; case 3 + .short _02003DC0 - _02003D52 - 2; case 4 + .short _02003DA2 - _02003D52 - 2; case 5 + .short _02003DC6 - _02003D52 - 2; case 6 + .short _02003DCC - _02003D52 - 2; case 7 + .short _02003DD2 - _02003D52 - 2; case 8 + .short _02003DD8 - _02003D52 - 2; case 9 + .short _02003DDE - _02003D52 - 2; case 10 + .short _02003DE4 - _02003D52 - 2; case 11 + .short _02003DEA - _02003D52 - 2; case 12 + .short _02003DF0 - _02003D52 - 2; case 13 + .short _02003DF6 - _02003D52 - 2; case 14 + .short _02003DFC - _02003D52 - 2; case 15 + .short _02003E02 - _02003D52 - 2; case 16 + .short _02003E08 - _02003D52 - 2; case 17 + .short _02003E0E - _02003D52 - 2; case 18 + .short _02003E14 - _02003D52 - 2; case 19 + .short _02003E1A - _02003D52 - 2; case 20 + .short _02003E20 - _02003D52 - 2; case 21 + .short _02003E26 - _02003D52 - 2; case 22 + .short _02003E2C - _02003D52 - 2; case 23 + .short _02003E32 - _02003D52 - 2; case 24 + .short _02003E38 - _02003D52 - 2; case 25 + .short _02003E3E - _02003D52 - 2; case 26 + .short _02003E44 - _02003D52 - 2; case 27 + .short _02003E4A - _02003D52 - 2; case 28 + .short _02003E50 - _02003D52 - 2; case 29 + .short _02003E56 - _02003D52 - 2; case 30 + .short _02003E5C - _02003D52 - 2; case 31 + .short _02003E62 - _02003D52 - 2; case 32 + .short _02003E68 - _02003D52 - 2; case 33 + .short _02003E6E - _02003D52 - 2; case 34 + .short _02003E74 - _02003D52 - 2; case 35 + .short _02003E7A - _02003D52 - 2; case 36 + .short _02003E80 - _02003D52 - 2; case 37 + .short _02003E86 - _02003D52 - 2; case 38 + .short _02003E8C - _02003D52 - 2; case 39 +_02003DA2: + ldr r1, _02003E9C ; =0x000BCCFE + add r0, r0, r1 + pop {r4, pc} +_02003DA8: + ldr r1, _02003EA0 ; =0x000BBCB8 + add r0, r0, r1 + pop {r4, pc} +_02003DAE: + ldr r1, _02003EA4 ; =0x000BBCBC + add r0, r0, r1 + pop {r4, pc} +_02003DB4: + ldr r1, _02003EA8 ; =0x000BBCC0 + add r0, r0, r1 + pop {r4, pc} +_02003DBA: + ldr r1, _02003EAC ; =0x000BBCE0 + add r0, r0, r1 + pop {r4, pc} +_02003DC0: + ldr r1, _02003EB0 ; =0x000BCCE0 + add r0, r0, r1 + pop {r4, pc} +_02003DC6: + ldr r1, _02003EB4 ; =0x000BCD00 + add r0, r0, r1 + pop {r4, pc} +_02003DCC: + ldr r1, _02003EB8 ; =0x000BCD04 + add r0, r0, r1 + pop {r4, pc} +_02003DD2: + ldr r1, _02003EBC ; =0x000BCD08 + add r0, r0, r1 + pop {r4, pc} +_02003DD8: + ldr r1, _02003EC0 ; =0x000BCD0C + add r0, r0, r1 + pop {r4, pc} +_02003DDE: + ldr r1, _02003EC4 ; =0x000BCD0E + add r0, r0, r1 + pop {r4, pc} +_02003DE4: + ldr r1, _02003EC8 ; =0x000BCD10 + add r0, r0, r1 + pop {r4, pc} +_02003DEA: + ldr r1, _02003ECC ; =0x000BCD11 + add r0, r0, r1 + pop {r4, pc} +_02003DF0: + ldr r1, _02003ED0 ; =0x000BCD12 + add r0, r0, r1 + pop {r4, pc} +_02003DF6: + ldr r1, _02003ED4 ; =0x000BCD14 + add r0, r0, r1 + pop {r4, pc} +_02003DFC: + ldr r1, _02003ED8 ; =0x000BCD15 + add r0, r0, r1 + pop {r4, pc} +_02003E02: + ldr r1, _02003EDC ; =0x000BCD16 + add r0, r0, r1 + pop {r4, pc} +_02003E08: + ldr r1, _02003EE0 ; =0x000BCD17 + add r0, r0, r1 + pop {r4, pc} +_02003E0E: + ldr r1, _02003EE4 ; =0x000BCD18 + add r0, r0, r1 + pop {r4, pc} +_02003E14: + ldr r1, _02003EE8 ; =0x000BCD19 + add r0, r0, r1 + pop {r4, pc} +_02003E1A: + ldr r1, _02003EEC ; =0x000BCD1A + add r0, r0, r1 + pop {r4, pc} +_02003E20: + ldr r1, _02003EF0 ; =0x000BCD1B + add r0, r0, r1 + pop {r4, pc} +_02003E26: + ldr r1, _02003EF4 ; =0x000BCD1C + add r0, r0, r1 + pop {r4, pc} +_02003E2C: + ldr r1, _02003EF8 ; =0x000BCD20 + add r0, r0, r1 + pop {r4, pc} +_02003E32: + ldr r1, _02003EFC ; =0x000BCD24 + add r0, r0, r1 + pop {r4, pc} +_02003E38: + ldr r1, _02003F00 ; =0x000BCD28 + add r0, r0, r1 + pop {r4, pc} +_02003E3E: + ldr r1, _02003F04 ; =0x000BCD2C + add r0, r0, r1 + pop {r4, pc} +_02003E44: + ldr r1, _02003F08 ; =0x000BCD30 + add r0, r0, r1 + pop {r4, pc} +_02003E4A: + ldr r1, _02003F0C ; =0x000BCD34 + add r0, r0, r1 + pop {r4, pc} +_02003E50: + ldr r1, _02003F10 ; =0x000BCD38 + add r0, r0, r1 + pop {r4, pc} +_02003E56: + ldr r1, _02003F14 ; =0x000BCD39 + add r0, r0, r1 + pop {r4, pc} +_02003E5C: + ldr r1, _02003F18 ; =0x000BCD3A + add r0, r0, r1 + pop {r4, pc} +_02003E62: + ldr r1, _02003F1C ; =0x000BCD3C + add r0, r0, r1 + pop {r4, pc} +_02003E68: + ldr r1, _02003F20 ; =0x000BCD40 + add r0, r0, r1 + pop {r4, pc} +_02003E6E: + ldr r1, _02003F24 ; =0x000BCD48 + add r0, r0, r1 + pop {r4, pc} +_02003E74: + ldr r1, _02003F28 ; =0x000BCD4C + add r0, r0, r1 + pop {r4, pc} +_02003E7A: + ldr r1, _02003F2C ; =0x000BCD50 + add r0, r0, r1 + pop {r4, pc} +_02003E80: + ldr r1, _02003F30 ; =0x000BCD54 + add r0, r0, r1 + pop {r4, pc} +_02003E86: + ldr r1, _02003F34 ; =0x000BCD58 + add r0, r0, r1 + pop {r4, pc} +_02003E8C: + ldr r1, _02003F38 ; =0x000BCD5C + add r0, r0, r1 + pop {r4, pc} +_02003E92: + bl ErrorHandling + mov r0, #0x0 + pop {r4, pc} + nop +_02003E9C: .word 0x000BCCFE +_02003EA0: .word 0x000BBCB8 +_02003EA4: .word 0x000BBCBC +_02003EA8: .word 0x000BBCC0 +_02003EAC: .word 0x000BBCE0 +_02003EB0: .word 0x000BCCE0 +_02003EB4: .word 0x000BCD00 +_02003EB8: .word 0x000BCD04 +_02003EBC: .word 0x000BCD08 +_02003EC0: .word 0x000BCD0C +_02003EC4: .word 0x000BCD0E +_02003EC8: .word 0x000BCD10 +_02003ECC: .word 0x000BCD11 +_02003ED0: .word 0x000BCD12 +_02003ED4: .word 0x000BCD14 +_02003ED8: .word 0x000BCD15 +_02003EDC: .word 0x000BCD16 +_02003EE0: .word 0x000BCD17 +_02003EE4: .word 0x000BCD18 +_02003EE8: .word 0x000BCD19 +_02003EEC: .word 0x000BCD1A +_02003EF0: .word 0x000BCD1B +_02003EF4: .word 0x000BCD1C +_02003EF8: .word 0x000BCD20 +_02003EFC: .word 0x000BCD24 +_02003F00: .word 0x000BCD28 +_02003F04: .word 0x000BCD2C +_02003F08: .word 0x000BCD30 +_02003F0C: .word 0x000BCD34 +_02003F10: .word 0x000BCD38 +_02003F14: .word 0x000BCD39 +_02003F18: .word 0x000BCD3A +_02003F1C: .word 0x000BCD3C +_02003F20: .word 0x000BCD40 +_02003F24: .word 0x000BCD48 +_02003F28: .word 0x000BCD4C +_02003F2C: .word 0x000BCD50 +_02003F30: .word 0x000BCD54 +_02003F34: .word 0x000BCD58 +_02003F38: .word 0x000BCD5C + + thumb_func_start FUN_02003F3C +FUN_02003F3C: ; 0x02003F3C + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_02003D30 + add r0, #0x90 + ldr r0, [r0, #0x0] + bl FUN_020C290C + add r4, r0, #0x0 + mov r0, #0x0 + mvn r0, r0 + cmp r4, r0 + bne _02003F5A + bl ErrorHandling +_02003F5A: + cmp r5, #0x0 + beq _02003F60 + str r4, [r5, #0x0] +_02003F60: + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02003F64 +FUN_02003F64: ; 0x02003F64 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02003D30 + add r0, #0x90 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + bl FUN_020C2828 + pop {r4, pc} + + thumb_func_start FUN_02003F78 +FUN_02003F78: ; 0x02003F78 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02003D30 + add r1, r0, #0x0 + add r1, #0x90 + ldr r1, [r1, #0x0] + add r0, r4, #0x0 + bl FUN_020C36A8 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02003F90 +FUN_02003F90: ; 0x02003F90 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02003D30 + add r1, r0, #0x0 + add r1, #0x90 + ldr r1, [r1, #0x0] + add r0, r4, #0x0 + bl FUN_020C3674 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02003FA8 +FUN_02003FA8: ; 0x02003FA8 + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_02003D30 + add r2, r0, #0x0 + add r2, #0x90 + ldr r2, [r2, #0x0] + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_020C35E0 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02003FC4 +FUN_02003FC4: ; 0x02003FC4 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02003D30 + add r1, r0, #0x0 + add r1, #0x90 + ldr r1, [r1, #0x0] + add r0, r4, #0x0 + bl FUN_020C360C + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02003FDC +FUN_02003FDC: ; 0x02003FDC + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02003D30 + add r1, r0, #0x0 + add r1, #0x90 + ldr r1, [r1, #0x0] + add r0, r4, #0x0 + bl FUN_020C3640 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02003FF4 +FUN_02003FF4: ; 0x02003FF4 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_02003D30 + add r4, r0, #0x0 + cmp r5, #0x9 + blt _02004008 + bl ErrorHandling + mov r5, #0x0 +_02004008: + ldr r0, _02004014 ; =0x000BBC94 + add r1, r4, r0 + lsl r0, r5, #0x2 + add r0, r1, r0 + pop {r3-r5, pc} + nop +_02004014: .word 0x000BBC94 + + thumb_func_start FUN_02004018 +FUN_02004018: ; 0x02004018 + push {r3, lr} + cmp r0, #0x7 + bhi _0200405A + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0200402A: ; jump table (using 16-bit offset) + .short _0200403E - _0200402A - 2; case 0 + .short _0200403A - _0200402A - 2; case 1 + .short _02004042 - _0200402A - 2; case 2 + .short _02004046 - _0200402A - 2; case 3 + .short _0200404A - _0200402A - 2; case 4 + .short _0200404E - _0200402A - 2; case 5 + .short _02004052 - _0200402A - 2; case 6 + .short _02004056 - _0200402A - 2; case 7 +_0200403A: + mov r0, #0x0 + pop {r3, pc} +_0200403E: + mov r0, #0x1 + pop {r3, pc} +_02004042: + mov r0, #0x2 + pop {r3, pc} +_02004046: + mov r0, #0x3 + pop {r3, pc} +_0200404A: + mov r0, #0x4 + pop {r3, pc} +_0200404E: + mov r0, #0x5 + pop {r3, pc} +_02004052: + mov r0, #0x6 + pop {r3, pc} +_02004056: + mov r0, #0x7 + pop {r3, pc} +_0200405A: + bl ErrorHandling + mov r0, #0x3 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02004064 +FUN_02004064: ; 0x02004064 + push {r4, lr} + ldr r2, _02004080 ; =0x000BCD60 + mov r1, #0x0 + add r4, r0, #0x0 + bl Call_FillMemWithValue + ldr r0, _02004084 ; =0x000BCD1C + mov r1, #0x0 +_02004074: + add r1, r1, #0x1 + str r1, [r4, r0] + add r4, r4, #0x4 + cmp r1, #0x7 + blt _02004074 + pop {r4, pc} + .balign 4 +_02004080: .word 0x000BCD60 +_02004084: .word 0x000BCD1C + + thumb_func_start FUN_02004088 +FUN_02004088: ; 0x02004088 + push {r3-r5, lr} + ldr r1, _020040A0 ; =0x000BBC94 + mov r4, #0x0 + add r5, r0, r1 +_02004090: + add r0, r5, #0x0 + bl FUN_020C0F80 + add r4, r4, #0x1 + add r5, r5, #0x4 + cmp r4, #0x9 + blt _02004090 + pop {r3-r5, pc} + .balign 4 +_020040A0: .word 0x000BBC94 + + thumb_func_start FUN_020040A4 +FUN_020040A4: ; 0x020040A4 + push {r4, lr} + add r4, r0, #0x0 + ldr r0, _020040C0 ; =0x000BCD1C + add r0, r4, r0 + bl FUN_02003F3C + mov r0, #0x0 + bl FUN_02003F78 + ldr r0, _020040C4 ; =0x000BCD20 + add r0, r4, r0 + bl FUN_02003F3C + pop {r4, pc} + .balign 4 +_020040C0: .word 0x000BCD1C +_020040C4: .word 0x000BCD20 + + thumb_func_start FUN_020040C8 +FUN_020040C8: ; 0x020040C8 + push {r3, lr} + bl MIC_Init + mov r0, #0x1 + bl PM_SetAmp + mov r0, #0x2 + bl PM_SetAmpGain + pop {r3, pc} + + thumb_func_start FUN_020040DC +FUN_020040DC: ; 0x020040DC + push {r3, lr} + mov r0, #0x7 + mov r1, #0x0 + bl FUN_020C1040 + mov r0, #0x7 + bl FUN_02003FF4 + bl FUN_020C0F68 + pop {r3, pc} + .balign 4 diff --git a/arm9/asm/unk_020040F4.s b/arm9/asm/unk_020040F4.s new file mode 100644 index 00000000..92efef87 --- /dev/null +++ b/arm9/asm/unk_020040F4.s @@ -0,0 +1,2273 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + thumb_func_start FUN_020040F4 +FUN_020040F4: ; 0x020040F4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x5 + bl FUN_02003D38 + strb r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02004104 +FUN_02004104: ; 0x02004104 + push {r3, lr} + mov r0, #0x5 + bl FUN_02003D38 + ldrb r0, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02004110 +FUN_02004110: ; 0x02004110 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x9 + bl FUN_02003D38 + strh r4, [r0, #0x0] + mov r0, #0x0 + bl FUN_02004130 + pop {r4, pc} + + thumb_func_start FUN_02004124 +FUN_02004124: ; 0x02004124 + push {r3, lr} + mov r0, #0x9 + bl FUN_02003D38 + ldrh r0, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02004130 +FUN_02004130: ; 0x02004130 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0xa + bl FUN_02003D38 + strh r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02004140 +FUN_02004140: ; 0x02004140 + push {r3, lr} + mov r0, #0xa + bl FUN_02003D38 + ldrh r0, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_0200414C +FUN_0200414C: ; 0x0200414C + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x1f + bl FUN_02003D38 + strh r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_0200415C +FUN_0200415C: ; 0x0200415C + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x14 + bl FUN_02003D38 + add r4, r0, #0x0 + mov r0, #0x15 + bl FUN_02003D38 + cmp r5, #0x33 + bhs _0200417A + strb r5, [r4, #0x0] + mov r1, #0x0 + strb r1, [r0, #0x0] + pop {r3-r5, pc} +_0200417A: + strb r5, [r0, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02004180 +FUN_02004180: ; 0x02004180 + push {r3, lr} + cmp r0, #0x39 + bgt _020041DE + blt _0200418A + b _020042C8 +_0200418A: + cmp r0, #0x35 + bgt _020041CC + blt _02004192 + b _0200429A +_02004192: + cmp r0, #0x33 + bgt _020041C6 + bge _0200427C + cmp r0, #0xe + bhi _020041CA + add r2, r0, r0 + add r2, pc + ldrh r2, [r2, #0x6] + lsl r2, r2, #0x10 + asr r2, r2, #0x10 + add pc, r2 +_020041A8: ; jump table (using 16-bit offset) + .short _0200432C - _020041A8 - 2; case 0 + .short _02004222 - _020041A8 - 2; case 1 + .short _0200422C - _020041A8 - 2; case 2 + .short _02004236 - _020041A8 - 2; case 3 + .short _02004240 - _020041A8 - 2; case 4 + .short _0200424A - _020041A8 - 2; case 5 + .short _0200425E - _020041A8 - 2; case 6 + .short _0200429A - _020041A8 - 2; case 7 + .short _02004268 - _020041A8 - 2; case 8 + .short _02004222 - _020041A8 - 2; case 9 + .short _02004222 - _020041A8 - 2; case 10 + .short _02004254 - _020041A8 - 2; case 11 + .short _02004272 - _020041A8 - 2; case 12 + .short _0200422C - _020041A8 - 2; case 13 + .short _02004222 - _020041A8 - 2; case 14 +_020041C6: + cmp r0, #0x34 + beq _02004290 +_020041CA: + b _0200432C +_020041CC: + cmp r0, #0x37 + bgt _020041D8 + bge _020042AE + cmp r0, #0x36 + beq _020042A4 + b _0200432C +_020041D8: + cmp r0, #0x38 + beq _020042BE + b _0200432C +_020041DE: + cmp r0, #0x3d + bgt _020041F8 + blt _020041E6 + b _020042F0 +_020041E6: + cmp r0, #0x3b + bgt _020041F2 + bge _020042DC + cmp r0, #0x3a + beq _020042D2 + b _0200432C +_020041F2: + cmp r0, #0x3c + beq _020042E6 + b _0200432C +_020041F8: + cmp r0, #0x3f + bgt _02004206 + blt _02004200 + b _02004304 +_02004200: + cmp r0, #0x3e + beq _020042FA + b _0200432C +_02004206: + sub r0, #0x40 + cmp r0, #0x3 + bls _0200420E + b _0200432C +_0200420E: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_0200421A: ; jump table (using 16-bit offset) + .short _0200430E - _0200421A - 2; case 0 + .short _0200431E - _0200421A - 2; case 1 + .short _02004286 - _0200421A - 2; case 2 + .short _020042AE - _0200421A - 2; case 3 +_02004222: + mov r0, #0x1 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_0200422C: + mov r0, #0x2 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_02004236: + mov r0, #0xd + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_02004240: + mov r0, #0x1 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_0200424A: + mov r0, #0x2 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_02004254: + mov r0, #0x1 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_0200425E: + mov r0, #0xb + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_02004268: + mov r0, #0x1 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_02004272: + mov r0, #0xe + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_0200427C: + mov r0, #0x3 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_02004286: + mov r0, #0x6 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_02004290: + mov r0, #0x5 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_0200429A: + mov r0, #0x9 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042A4: + mov r0, #0xa + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042AE: + ldr r0, _02004330 ; =0x000005E5 + bl FUN_02003FDC + ldr r0, _02004330 ; =0x000005E5 + bl FUN_02003FC4 + add r1, r0, #0x0 + b _0200432C +_020042BE: + mov r0, #0xc + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042C8: + mov r0, #0x7 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042D2: + mov r0, #0x8 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042DC: + mov r0, #0xf + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042E6: + mov r0, #0x3 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042F0: + mov r0, #0x5 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_020042FA: + mov r0, #0xf + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_02004304: + mov r0, #0x4 + bl FUN_02003F78 + add r1, r0, #0x0 + b _0200432C +_0200430E: + ldr r0, _02004334 ; =0x000005ED + bl FUN_02003FDC + ldr r0, _02004334 ; =0x000005ED + bl FUN_02003FC4 + add r1, r0, #0x0 + b _0200432C +_0200431E: + ldr r0, _02004338 ; =0x000005EC + bl FUN_02003FDC + ldr r0, _02004338 ; =0x000005EC + bl FUN_02003FC4 + add r1, r0, #0x0 +_0200432C: + add r0, r1, #0x0 + pop {r3, pc} + .balign 4 +_02004330: .word 0x000005E5 +_02004334: .word 0x000005ED +_02004338: .word 0x000005EC + + thumb_func_start FUN_0200433C +FUN_0200433C: ; 0x0200433C + push {r3-r7, lr} + sub sp, #0x8 + add r4, r0, #0x0 + mov r0, #0x14 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl FUN_02003D38 + str r0, [sp, #0x0] + mov r0, #0x15 + bl FUN_02003D38 + str r0, [sp, #0x4] + mov r0, #0xd + bl FUN_02003D38 + add r7, r0, #0x0 + cmp r4, #0x33 + bhs _02004370 + ldr r0, [sp, #0x0] + ldrb r0, [r0, #0x0] + cmp r0, r4 + bne _0200437E + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_02004370: + ldr r0, [sp, #0x4] + ldrb r0, [r0, #0x0] + cmp r0, r4 + bne _0200437E + add sp, #0x8 + mov r0, #0x0 + pop {r3-r7, pc} +_0200437E: + add r0, r4, #0x0 + bl FUN_0200415C + cmp r4, #0x39 + bgt _020043DC + bge _02004458 + cmp r4, #0x35 + bgt _020043CA + bge _02004458 + cmp r4, #0x33 + bgt _020043C4 + bge _02004458 + cmp r4, #0xe + bhi _020043C8 + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020043A6: ; jump table (using 16-bit offset) + .short _020044A0 - _020043A6 - 2; case 0 + .short _02004460 - _020043A6 - 2; case 1 + .short _02004484 - _020043A6 - 2; case 2 + .short _02004496 - _020043A6 - 2; case 3 + .short _0200441C - _020043A6 - 2; case 4 + .short _02004430 - _020043A6 - 2; case 5 + .short _02004444 - _020043A6 - 2; case 6 + .short _0200444E - _020043A6 - 2; case 7 + .short _02004496 - _020043A6 - 2; case 8 + .short _02004496 - _020043A6 - 2; case 9 + .short _02004496 - _020043A6 - 2; case 10 + .short _0200443A - _020043A6 - 2; case 11 + .short _02004496 - _020043A6 - 2; case 12 + .short _02004496 - _020043A6 - 2; case 13 + .short _02004472 - _020043A6 - 2; case 14 +_020043C4: + cmp r4, #0x34 + beq _02004458 +_020043C8: + b _020044A0 +_020043CA: + cmp r4, #0x37 + bgt _020043D6 + bge _02004458 + cmp r4, #0x36 + beq _02004458 + b _020044A0 +_020043D6: + cmp r4, #0x38 + beq _02004458 + b _020044A0 +_020043DC: + cmp r4, #0x3d + bgt _020043F4 + bge _02004458 + cmp r4, #0x3b + bgt _020043EE + bge _02004458 + cmp r4, #0x3a + beq _02004458 + b _020044A0 +_020043EE: + cmp r4, #0x3c + beq _02004458 + b _020044A0 +_020043F4: + cmp r4, #0x3f + bgt _02004400 + bge _02004458 + cmp r4, #0x3e + beq _02004458 + b _020044A0 +_02004400: + add r0, r4, #0x0 + sub r0, #0x40 + cmp r0, #0x3 + bhi _020044A0 + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02004414: ; jump table (using 16-bit offset) + .short _02004458 - _02004414 - 2; case 0 + .short _02004458 - _02004414 - 2; case 1 + .short _02004458 - _02004414 - 2; case 2 + .short _02004458 - _02004414 - 2; case 3 +_0200441C: + mov r0, #0x0 + bl FUN_0200516C + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_020044D4 + mov r0, #0x0 + strh r0, [r7, #0x0] + b _020044A0 +_02004430: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02004648 + b _020044A0 +_0200443A: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_02004680 + b _020044A0 +_02004444: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_020046A0 + b _020044A0 +_0200444E: + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_020046C4 + b _020044A0 +_02004458: + add r0, r4, #0x0 + bl FUN_020046E8 + b _020044A0 +_02004460: + mov r0, #0x1 + bl FUN_0200516C + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl FUN_02004704 + b _020044A0 +_02004472: + mov r0, #0x2 + bl FUN_0200516C + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl FUN_02004704 + b _020044A0 +_02004484: + mov r0, #0x0 + bl FUN_0200516C + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl FUN_02004704 + b _020044A0 +_02004496: + add r0, r4, #0x0 + add r1, r5, #0x0 + add r2, r6, #0x0 + bl FUN_02004704 +_020044A0: + mov r0, #0x1 + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_020044A8 +FUN_020044A8: ; 0x020044A8 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x17 + bl FUN_02003D38 + ldr r0, [r0, #0x0] + bl FUN_02003F64 + mov r0, #0x18 + bl FUN_02003D38 + bl FUN_02003F3C + add r0, r4, #0x0 + bl FUN_02004180 + mov r0, #0x19 + bl FUN_02003D38 + bl FUN_02003F3C + pop {r4, pc} + + thumb_func_start FUN_020044D4 +FUN_020044D4: ; 0x020044D4 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0xb + bl FUN_02003D38 + add r6, r0, #0x0 + mov r0, #0x17 + bl FUN_02003D38 + mov r0, #0x1f + bl FUN_02003D38 + mov r0, #0x0 + bl FUN_02003FF4 + bl FUN_020048EC + add r4, r0, #0x0 + ldrb r0, [r6, #0x0] + cmp r0, #0x0 + bne _0200450E + cmp r4, r5 + bne _0200450E + bl FUN_02004140 + mov r1, #0x12 + lsl r1, r1, #0x6 + cmp r0, r1 + bne _02004566 +_0200450E: + mov r0, #0x1 + bl FUN_02004DBC + bl FUN_02005454 + cmp r4, r5 + beq _02004528 + mov r0, #0x1 + mov r1, #0x0 + bl FUN_020047C8 + bl FUN_0200541C +_02004528: + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + bne _02004560 + mov r0, #0x2 + bl FUN_02004748 + bl FUN_02003F64 + mov r0, #0x4 + bl FUN_02004180 + mov r0, #0x19 + bl FUN_02003D38 + bl FUN_02003F3C + cmp r4, r5 + beq _02004554 + mov r0, #0x1 + mov r1, #0x0 + bl FUN_020047C8 +_02004554: + lsl r1, r4, #0x10 + add r0, r5, #0x0 + lsr r1, r1, #0x10 + bl FUN_02004568 + pop {r4-r6, pc} +_02004560: + add r0, r5, #0x0 + bl FUN_0200521C +_02004566: + pop {r4-r6, pc} + + thumb_func_start FUN_02004568 +FUN_02004568: ; 0x02004568 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x1f + bl FUN_02003D38 + add r4, r0, #0x0 + ldrh r0, [r4, #0x0] + bl FUN_02004900 + ldr r1, _020045C0 ; =0x000003E9 + cmp r0, r1 + beq _02004594 + add r1, r1, #0x2 + cmp r0, r1 + beq _02004594 + add r0, r5, #0x0 + mov r1, #0x4 + bl FUN_02003FA8 + bl ErrorHandling + b _0200459C +_02004594: + ldrh r0, [r4, #0x0] + mov r1, #0x6 + bl FUN_02003FA8 +_0200459C: + mov r0, #0x1a + bl FUN_02003D38 + bl FUN_02003F3C + mov r0, #0x1 + mov r1, #0x0 + bl FUN_020047C8 + mov r0, #0x7f + mov r1, #0x28 + mov r2, #0x0 + bl FUN_0200538C + mov r0, #0x0 + bl FUN_02004DBC + pop {r3-r5, pc} + .balign 4 +_020045C0: .word 0x000003E9 + + thumb_func_start FUN_020045C4 +FUN_020045C4: ; 0x020045C4 + push {r3-r7, lr} + add r7, r0, #0x0 + mov r0, #0x12 + add r5, r1, #0x0 + bl FUN_02003D38 + add r6, r0, #0x0 + mov r0, #0x1f + bl FUN_02003D38 + add r4, r0, #0x0 + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + beq _020045E4 + cmp r5, #0x0 + bne _02004642 +_020045E4: + mov r0, #0x1 + bl FUN_02004748 + bl FUN_02003F64 + ldrh r0, [r4, #0x0] + mov r1, #0x2 + bl FUN_02003FA8 + mov r0, #0x18 + bl FUN_02003D38 + bl FUN_02003F3C + mov r0, #0x4 + bl FUN_02004180 + mov r0, #0x19 + bl FUN_02003D38 + bl FUN_02003F3C + ldrh r0, [r4, #0x0] + bl FUN_02004900 + ldr r1, _02004644 ; =0x000003E9 + cmp r0, r1 + beq _02004630 + add r1, r1, #0x2 + cmp r0, r1 + beq _02004630 + add r0, r7, #0x0 + mov r1, #0x4 + bl FUN_02003FA8 + bl ErrorHandling + b _02004638 +_02004630: + ldrh r0, [r4, #0x0] + mov r1, #0x4 + bl FUN_02003FA8 +_02004638: + mov r0, #0x1a + bl FUN_02003D38 + bl FUN_02003F3C +_02004642: + pop {r3-r7, pc} + .balign 4 +_02004644: .word 0x000003E9 + + thumb_func_start FUN_02004648 +FUN_02004648: ; 0x02004648 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x17 + bl FUN_02003D38 + bl FUN_020051AC + mov r0, #0x2 + bl FUN_02004748 + bl FUN_02003F64 + mov r0, #0x5 + bl FUN_02004180 + mov r0, #0x19 + bl FUN_02003D38 + bl FUN_02003F3C + mov r0, #0x1 + bl FUN_02004DBC + add r0, r4, #0x0 + bl FUN_0200521C + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02004680 +FUN_02004680: ; 0x02004680 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x17 + bl FUN_02003D38 + bl FUN_0200541C + bl FUN_02004810 + mov r0, #0x4 + bl FUN_020044A8 + add r0, r4, #0x0 + bl FUN_0200521C + pop {r4, pc} + + thumb_func_start FUN_020046A0 +FUN_020046A0: ; 0x020046A0 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x17 + bl FUN_02003D38 + bl FUN_0200541C + mov r0, #0x6 + bl FUN_020044A8 + mov r0, #0x1 + bl FUN_02004DBC + add r0, r4, #0x0 + bl FUN_0200521C + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020046C4 +FUN_020046C4: ; 0x020046C4 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x17 + bl FUN_02003D38 + bl FUN_0200541C + mov r0, #0x7 + bl FUN_020044A8 + mov r0, #0x1 + bl FUN_02004DBC + add r0, r4, #0x0 + bl FUN_0200521C + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020046E8 +FUN_020046E8: ; 0x020046E8 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02004738 + add r0, r4, #0x0 + bl FUN_02004180 + mov r0, #0x1b + bl FUN_02003D38 + bl FUN_02003F3C + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02004704 +FUN_02004704: ; 0x02004704 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x17 + add r4, r1, #0x0 + bl FUN_02003D38 + bl FUN_0200541C + add r0, r5, #0x0 + bl FUN_020044A8 + add r0, r4, #0x0 + bl FUN_0200521C + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02004724 +FUN_02004724: ; 0x02004724 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02003D30 + bl FUN_020051AC + add r0, r4, #0x0 + bl FUN_0200521C + pop {r4, pc} + + thumb_func_start FUN_02004738 +FUN_02004738: ; 0x02004738 + push {r3, lr} + mov r0, #0x4 + bl FUN_02004748 + bl FUN_02003F64 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02004748 +FUN_02004748: ; 0x02004748 + push {r3-r5, lr} + add r4, r0, #0x0 + bl FUN_02003D30 + cmp r4, #0x7 + blt _02004762 + bl ErrorHandling + mov r0, #0x1a + bl FUN_02003D38 + ldr r0, [r0, #0x0] + pop {r3-r5, pc} +_02004762: + cmp r4, #0x6 + bhi _020047C4 + add r0, r4, r4 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_02004772: ; jump table (using 16-bit offset) + .short _02004780 - _02004772 - 2; case 0 + .short _0200478A - _02004772 - 2; case 1 + .short _02004794 - _02004772 - 2; case 2 + .short _0200479E - _02004772 - 2; case 3 + .short _020047A8 - _02004772 - 2; case 4 + .short _020047B2 - _02004772 - 2; case 5 + .short _020047BC - _02004772 - 2; case 6 +_02004780: + mov r0, #0x16 + bl FUN_02003D38 + add r5, r0, #0x0 + b _020047C4 +_0200478A: + mov r0, #0x17 + bl FUN_02003D38 + add r5, r0, #0x0 + b _020047C4 +_02004794: + mov r0, #0x18 + bl FUN_02003D38 + add r5, r0, #0x0 + b _020047C4 +_0200479E: + mov r0, #0x19 + bl FUN_02003D38 + add r5, r0, #0x0 + b _020047C4 +_020047A8: + mov r0, #0x1a + bl FUN_02003D38 + add r5, r0, #0x0 + b _020047C4 +_020047B2: + mov r0, #0x1b + bl FUN_02003D38 + add r5, r0, #0x0 + b _020047C4 +_020047BC: + mov r0, #0x1c + bl FUN_02003D38 + add r5, r0, #0x0 +_020047C4: + ldr r0, [r5, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_020047C8 +FUN_020047C8: ; 0x020047C8 + push {r4-r6, lr} + add r5, r1, #0x0 + cmp r0, #0x1 + bne _020047DC + mov r0, #0xb + bl FUN_02003D38 + add r6, r0, #0x0 + mov r4, #0x0 + b _020047EA +_020047DC: + cmp r0, #0x7 + bne _0200480E + mov r0, #0xc + bl FUN_02003D38 + add r6, r0, #0x0 + mov r4, #0x7 +_020047EA: + cmp r5, #0x0 + bne _02004800 + add r0, r4, #0x0 + bl FUN_02003FF4 + bl FUN_020048EC + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + bl FUN_02004110 +_02004800: + add r0, r4, #0x0 + bl FUN_02003FF4 + add r1, r5, #0x0 + bl FUN_020C0F8C + strb r5, [r6, #0x0] +_0200480E: + pop {r4-r6, pc} + + thumb_func_start FUN_02004810 +FUN_02004810: ; 0x02004810 + push {r4, lr} + mov r0, #0xb + bl FUN_02003D38 + add r4, r0, #0x0 + mov r0, #0xc + bl FUN_02003D38 + mov r1, #0x0 + strb r1, [r4, #0x0] + strb r1, [r0, #0x0] + pop {r4, pc} + + thumb_func_start FUN_02004828 +FUN_02004828: ; 0x02004828 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl FUN_02003FF4 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020C0EF4 + pop {r3-r5, pc} + + thumb_func_start FUN_0200483C +FUN_0200483C: ; 0x0200483C + push {r4, lr} + add r4, r1, #0x0 + bpl _02004844 + mov r4, #0x0 +_02004844: + cmp r4, #0x7f + ble _0200484A + mov r4, #0x7f +_0200484A: + bl FUN_02003FF4 + add r1, r4, #0x0 + bl FUN_020C0F30 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02004858 +FUN_02004858: ; 0x02004858 + push {r3-r5, lr} + add r5, r1, #0x0 + bl FUN_020C23FC + cmp r5, #0x1 + beq _02004868 + cmp r5, #0x8 + bne _0200486C +_02004868: + mov r4, #0x7f + b _02004872 +_0200486C: + cmp r0, #0x0 + beq _0200488A + ldrb r4, [r0, #0x2] +_02004872: + bl FUN_020313EC + cmp r0, #0x1 + bne _0200488A + add r0, r4, #0x0 + mov r1, #0x5 + bl _s32_div_f + add r1, r0, #0x0 + add r0, r5, #0x0 + bl FUN_0200483C +_0200488A: + pop {r3-r5, pc} + + thumb_func_start FUN_0200488C +FUN_0200488C: ; 0x0200488C + push {r4, lr} + add r4, r1, #0x0 + bl FUN_020048D0 + bl FUN_02004018 + add r1, r4, #0x0 + bl FUN_0200483C + pop {r4, pc} + + thumb_func_start FUN_020048A0 +FUN_020048A0: ; 0x020048A0 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl FUN_02003FF4 + mov r2, #0x0 + mvn r2, r2 + add r1, r5, #0x0 + add r3, r2, #0x0 + str r4, [sp, #0x0] + bl FUN_020C3910 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020048BC +FUN_020048BC: ; 0x020048BC + push {r4, lr} + add r4, r0, #0x0 + bpl _020048C6 + bl ErrorHandling +_020048C6: + add r0, r4, #0x0 + bl FUN_020C0F50 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_020048D0 +FUN_020048D0: ; 0x020048D0 + push {r3, lr} + cmp r0, #0x0 + bne _020048DA + mov r0, #0xff + pop {r3, pc} +_020048DA: + bl FUN_020C23FC + cmp r0, #0x0 + bne _020048E6 + mov r0, #0xff + pop {r3, pc} +_020048E6: + ldrb r0, [r0, #0x5] + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_020048EC +FUN_020048EC: ; 0x020048EC + ldr r3, _020048F0 ; =FUN_020C0E14 + bx r3 + .balign 4 +_020048F0: .word FUN_020C0E14 + + thumb_func_start FUN_020048F4 +FUN_020048F4: ; 0x020048F4 + push {r3, lr} + bl FUN_02004900 + bl FUN_020C22D0 + pop {r3, pc} + + thumb_func_start FUN_02004900 +FUN_02004900: ; 0x02004900 + push {r3, lr} + bl FUN_020C23FC + cmp r0, #0x0 + bne _0200490E + mov r0, #0x0 + pop {r3, pc} +_0200490E: + ldrh r0, [r0, #0x0] + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02004914 +FUN_02004914: ; 0x02004914 + ldr r3, _02004918 ; =MIC_StartAutoSampling + bx r3 + .balign 4 +_02004918: .word MIC_StartAutoSampling + + thumb_func_start FUN_0200491C +FUN_0200491C: ; 0x0200491C + push {r3, lr} + bl FUN_02003D30 + bl MIC_StopAutoSampling + pop {r3, pc} + + thumb_func_start FUN_02004928 +FUN_02004928: ; 0x02004928 + push {r3, lr} + bl MIC_DoSamplingAsync + pop {r3, pc} + + thumb_func_start FUN_02004930 +FUN_02004930: ; 0x02004930 + push {r4-r6, lr} + add r5, r0, #0x0 + bl FUN_02003D30 + mov r0, #0xf + bl FUN_02003D38 + add r6, r0, #0x0 + mov r0, #0x10 + bl FUN_02003D38 + add r4, r0, #0x0 + cmp r5, #0xe + beq _02004954 + cmp r5, #0xf + beq _02004954 + bl ErrorHandling +_02004954: + cmp r5, #0xe + bne _02004962 + ldrb r0, [r6, #0x0] + cmp r0, #0x0 + bne _02004962 + bl ErrorHandling +_02004962: + cmp r5, #0xf + bne _02004970 + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _02004970 + bl ErrorHandling +_02004970: + cmp r5, #0xe + bne _0200497C + mov r0, #0x0 + bl FUN_02003D38 + pop {r4-r6, pc} +_0200497C: + mov r0, #0x1 + bl FUN_02003D38 + pop {r4-r6, pc} + + thumb_func_start FUN_02004984 +FUN_02004984: ; 0x02004984 + push {r4-r6, lr} + add r5, r0, #0x0 + bl FUN_02003D30 + mov r0, #0xf + bl FUN_02003D38 + add r6, r0, #0x0 + mov r0, #0x10 + bl FUN_02003D38 + add r4, r0, #0x0 + cmp r5, #0xe + beq _020049A8 + cmp r5, #0xf + beq _020049A8 + bl ErrorHandling +_020049A8: + cmp r5, #0xe + bne _020049D6 + ldrb r0, [r6, #0x0] + cmp r0, #0x0 + bne _020049D0 + mov r0, #0x0 + bl FUN_02003D38 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020C0688 + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _020049CA + mov r0, #0x0 + pop {r4-r6, pc} +_020049CA: + mov r0, #0x1 + strb r0, [r6, #0x0] + b _020049FE +_020049D0: + bl ErrorHandling + b _020049FE +_020049D6: + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _020049FA + mov r0, #0x1 + bl FUN_02003D38 + add r6, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020C0688 + str r0, [r6, #0x0] + cmp r0, #0x0 + bne _020049F4 + mov r0, #0x0 + pop {r4-r6, pc} +_020049F4: + mov r0, #0x1 + strb r0, [r4, #0x0] + b _020049FE +_020049FA: + bl ErrorHandling +_020049FE: + mov r0, #0x1 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02004A04 +FUN_02004A04: ; 0x02004A04 + push {r4-r6, lr} + add r5, r0, #0x0 + bl FUN_02003D30 + mov r0, #0xf + bl FUN_02003D38 + add r6, r0, #0x0 + mov r0, #0x10 + bl FUN_02003D38 + add r4, r0, #0x0 + cmp r5, #0xe + beq _02004A2A + cmp r5, #0xf + beq _02004A2A + bl ErrorHandling + pop {r4-r6, pc} +_02004A2A: + cmp r5, #0xe + bne _02004A4C + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + bne _02004A46 + add r0, r5, #0x0 + bl FUN_02004930 + ldr r0, [r0, #0x0] + bl FUN_020C0670 + mov r0, #0x0 + strb r0, [r6, #0x0] + pop {r4-r6, pc} +_02004A46: + bl ErrorHandling + pop {r4-r6, pc} +_02004A4C: + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _02004A64 + add r0, r5, #0x0 + bl FUN_02004930 + ldr r0, [r0, #0x0] + bl FUN_020C0670 + mov r0, #0x0 + strb r0, [r4, #0x0] + pop {r4-r6, pc} +_02004A64: + bl ErrorHandling + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_02004A6C +FUN_02004A6C: ; 0x02004A6C + push {r3-r5, lr} + sub sp, #0x18 + add r3, r0, #0x0 + ldr r0, [r3, #0x10] + add r4, r1, #0x0 + str r0, [sp, #0x0] + ldr r0, [r3, #0x14] + str r0, [sp, #0x4] + ldr r0, [r3, #0x18] + str r0, [sp, #0x8] + ldr r0, [r3, #0x1c] + str r0, [sp, #0xc] + ldr r0, [r3, #0x20] + str r0, [sp, #0x10] + ldr r0, [r3, #0x24] + str r0, [sp, #0x14] + ldr r0, [r3, #0x0] + ldr r1, [r3, #0x4] + ldr r2, [r3, #0x8] + ldr r0, [r0, #0x0] + ldr r3, [r3, #0xc] + bl FUN_020C054C + add r5, r0, #0x0 + bne _02004AA4 + add r0, r4, #0x0 + bl FUN_02004A04 +_02004AA4: + add r0, r5, #0x0 + add sp, #0x18 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02004AAC +FUN_02004AAC: ; 0x02004AAC + push {r3, lr} + bl FUN_02004930 + ldr r0, [r0, #0x0] + bl FUN_020C0510 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02004ABC +FUN_02004ABC: ; 0x02004ABC + push {r3, lr} + bl FUN_02004930 + ldr r0, [r0, #0x0] + bl FUN_020C03B8 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02004ACC +FUN_02004ACC: ; 0x02004ACC + push {r4, lr} + add r4, r1, #0x0 + cmp r4, #0x7f + bls _02004AD6 + mov r4, #0x7f +_02004AD6: + bl FUN_02004930 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + bl FUN_020C041C + pop {r4, pc} + + thumb_func_start FUN_02004AE4 +FUN_02004AE4: ; 0x02004AE4 + push {r4, lr} + add r4, r1, #0x0 + bl FUN_02004930 + ldr r0, [r0, #0x0] + add r1, r4, #0x0 + bl FUN_020C044C + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02004AF8 +FUN_02004AF8: ; 0x02004AF8 + push {r3-r5, lr} + add r4, r0, #0x0 + add r5, r1, #0x0 + bl FUN_020313EC + cmp r0, #0x1 + bne _02004B20 + add r0, r4, #0x0 + bl FUN_02004930 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x5 + bl _s32_div_f + add r1, r0, #0x0 + ldr r0, [r4, #0x0] + bl FUN_020C04DC + pop {r3-r5, pc} +_02004B20: + add r0, r4, #0x0 + bl FUN_02004930 + ldr r0, [r0, #0x0] + add r1, r5, #0x0 + bl FUN_020C04DC + pop {r3-r5, pc} + + thumb_func_start FUN_02004B30 +FUN_02004B30: ; 0x02004B30 + push {r3-r7, lr} + sub sp, #0x30 + add r6, r0, #0x0 + str r1, [sp, #0x0] + str r2, [sp, #0x4] + add r5, r3, #0x0 + bl FUN_02003D30 + mov r0, #0x21 + bl FUN_02003D38 + add r4, r0, #0x0 + cmp r5, #0xe + beq _02004B54 + cmp r5, #0xf + beq _02004B54 + bl ErrorHandling +_02004B54: + add r0, r6, #0x0 + bl FUN_020C226C + add r7, r0, #0x0 + bne _02004B68 + bl ErrorHandling + add sp, #0x30 + mov r0, #0x0 + pop {r3-r7, pc} +_02004B68: + ldr r0, [r7, #0x0] + lsl r0, r0, #0x8 + lsr r0, r0, #0x8 + bl FUN_020C217C + add r6, r0, #0x0 + bne _02004B80 + bl ErrorHandling + add sp, #0x30 + mov r0, #0x0 + pop {r3-r7, pc} +_02004B80: + cmp r5, #0xe + bne _02004BCE + ldr r0, [sp, #0x48] + add r1, r6, #0x0 + bl FUN_02016998 + str r0, [r4, #0x0] + cmp r0, #0x0 + bne _02004B9C + bl ErrorHandling + add sp, #0x30 + mov r0, #0x0 + pop {r3-r7, pc} +_02004B9C: + mov r1, #0x0 + add r2, r6, #0x0 + bl Call_FillMemWithValue + ldr r0, [r7, #0x0] + ldr r1, [r4, #0x0] + lsl r0, r0, #0x8 + lsr r0, r0, #0x8 + add r2, r6, #0x0 + mov r3, #0x0 + bl FUN_020C2104 + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + bne _02004BC6 + bl ErrorHandling + add sp, #0x30 + mov r0, #0x0 + pop {r3-r7, pc} +_02004BC6: + ldr r0, [r4, #0x0] + add r1, r6, #0x0 + bl FUN_02004C1C +_02004BCE: + add r0, r5, #0x0 + bl FUN_02004930 + mov r1, #0x0 + str r1, [sp, #0xc] + str r0, [sp, #0x8] + ldr r0, [r4, #0x0] + str r0, [sp, #0x10] + ldr r0, _02004C18 ; =0x00003443 + str r1, [sp, #0x14] + str r0, [sp, #0x20] + ldr r0, [sp, #0x0] + str r1, [sp, #0x18] + str r0, [sp, #0x24] + mov r0, #0x6 + lsl r0, r0, #0xc + str r0, [sp, #0x28] + ldr r0, [sp, #0x4] + add r1, r5, #0x0 + str r0, [sp, #0x2c] + add r0, sp, #0x8 + str r6, [sp, #0x1c] + bl FUN_02004A6C + add r4, r0, #0x0 + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + bl FUN_02004AF8 + mov r0, #0xe + bl FUN_02003D38 + mov r1, #0x1 + strb r1, [r0, #0x0] + add r0, r4, #0x0 + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 +_02004C18: .word 0x00003443 + + thumb_func_start FUN_02004C1C +FUN_02004C1C: ; 0x02004C1C + push {r3-r6} + mov r5, #0x0 + lsr r6, r1, #0x1 + beq _02004C36 + sub r2, r1, #0x1 +_02004C26: + sub r3, r2, r5 + ldrb r4, [r0, r5] + ldrb r1, [r0, r3] + strb r1, [r0, r5] + add r5, r5, #0x1 + strb r4, [r0, r3] + cmp r5, r6 + blo _02004C26 +_02004C36: + pop {r3-r6} + bx lr + .balign 4 + + thumb_func_start FUN_02004C3C +FUN_02004C3C: ; 0x02004C3C + push {r4-r6, lr} + add r5, r0, #0x0 + bl FUN_02003D30 + mov r0, #0xe + bl FUN_02003D38 + add r4, r0, #0x0 + mov r0, #0x21 + bl FUN_02003D38 + add r6, r0, #0x0 + cmp r5, #0xe + beq _02004C60 + cmp r5, #0xf + beq _02004C60 + bl ErrorHandling +_02004C60: + add r0, r5, #0x0 + bl FUN_02004AAC + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _02004C76 + mov r0, #0x0 + strb r0, [r4, #0x0] + ldr r0, [r6, #0x0] + bl FUN_02016A18 +_02004C76: + pop {r4-r6, pc} + + thumb_func_start FUN_02004C78 +FUN_02004C78: ; 0x02004C78 + ldr r3, _02004C7C ; =FUN_020C1E58 + bx r3 + .balign 4 +_02004C7C: .word FUN_020C1E58 + + thumb_func_start FUN_02004C80 +FUN_02004C80: ; 0x02004C80 + push {r3-r4, lr} + sub sp, #0x4 + add r4, r0, #0x0 + bl FUN_02003D30 + mov r0, #0x3 + bl FUN_02003D38 + mov r1, #0x1 + mov r3, #0xfa + lsl r1, r1, #0xc + mov r2, #0x0 + lsl r3, r3, #0x6 + str r4, [sp, #0x0] + bl FUN_020C1FF0 + add sp, #0x4 + pop {r3-r4, pc} + + thumb_func_start FUN_02004CA4 +FUN_02004CA4: ; 0x02004CA4 + ldr r3, _02004CA8 ; =FUN_020C1F54 + bx r3 + .balign 4 +_02004CA8: .word FUN_020C1F54 + + thumb_func_start FUN_02004CAC +FUN_02004CAC: ; 0x02004CAC + ldr r3, _02004CB0 ; =FUN_020C1FA4 + bx r3 + .balign 4 +_02004CB0: .word FUN_020C1FA4 + + thumb_func_start FUN_02004CB4 +FUN_02004CB4: ; 0x02004CB4 + push {r3-r4, lr} + sub sp, #0xc + bl FUN_02003D30 + mov r0, #0x4 + bl FUN_02003D38 + mov r1, #0x0 + mov r2, #0x1c + bl MI_CpuFill8 + mov r0, #0x3 + bl FUN_02003D38 + add r4, r0, #0x0 + mov r0, #0x4 + bl FUN_02003D38 + mov r2, #0x2 + ldr r1, _02004CF4 ; =FUN_02005068 + str r2, [sp, #0x0] + str r1, [sp, #0x4] + str r0, [sp, #0x8] + lsl r1, r2, #0xb + ldr r3, _02004CF8 ; =0x000055F0 + add r0, r4, #0x0 + mov r2, #0x0 + bl FUN_020C1EA4 + add sp, #0xc + pop {r3-r4, pc} + nop +_02004CF4: .word FUN_02005068 +_02004CF8: .word 0x000055F0 + + thumb_func_start FUN_02004CFC +FUN_02004CFC: ; 0x02004CFC + ldr r3, _02004D00 ; =FUN_020C1E68 + bx r3 + .balign 4 +_02004D00: .word FUN_020C1E68 + + thumb_func_start FUN_02004D04 +FUN_02004D04: ; 0x02004D04 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x13 + bl FUN_02003D38 + cmp r4, #0x8 + ble _02004D16 + mov r4, #0x8 + b _02004D1C +_02004D16: + cmp r4, #0x0 + bge _02004D1C + mov r4, #0x0 +_02004D1C: + strb r4, [r0, #0x0] + pop {r4, pc} + + thumb_func_start FUN_02004D20 +FUN_02004D20: ; 0x02004D20 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl FUN_02003FF4 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020C0EA4 + pop {r3-r5, pc} + + thumb_func_start FUN_02004D34 +FUN_02004D34: ; 0x02004D34 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl FUN_020048D0 + bl FUN_02004018 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_02004D20 + pop {r3-r5, pc} + + thumb_func_start FUN_02004D4C +FUN_02004D4C: ; 0x02004D4C + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl FUN_02003FF4 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020C0E7C + pop {r3-r5, pc} + + thumb_func_start FUN_02004D60 +FUN_02004D60: ; 0x02004D60 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_020C0174 + ldr r0, _02004D70 ; =0x021C3DD8 + str r4, [r0, #0x0] + pop {r4, pc} + nop +_02004D70: .word 0x021C3DD8 + + thumb_func_start FUN_02004D74 +FUN_02004D74: ; 0x02004D74 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x6 + bl FUN_02003D38 + str r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02004D84 +FUN_02004D84: ; 0x02004D84 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x7 + bl FUN_02003D38 + str r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02004D94 +FUN_02004D94: ; 0x02004D94 + push {r3, lr} + mov r0, #0x7 + bl FUN_02003D38 + ldrh r1, [r0, #0x0] + cmp r1, #0x0 + bne _02004DAA + mov r1, #0x0 + strh r1, [r0, #0x0] + add r0, r1, #0x0 + pop {r3, pc} +_02004DAA: + sub r1, r1, #0x1 + strh r1, [r0, #0x0] + ldrh r0, [r0, #0x0] + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_02004DB4 +FUN_02004DB4: ; 0x02004DB4 + ldr r0, _02004DB8 ; =0x021C3DE0 + bx lr + .balign 4 +_02004DB8: .word 0x021C3DE0 + + thumb_func_start FUN_02004DBC +FUN_02004DBC: ; 0x02004DBC + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x12 + bl FUN_02003D38 + strb r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02004DCC +FUN_02004DCC: ; 0x02004DCC + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r0, #0x15 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x8] + bl FUN_02003D38 + add r4, r0, #0x0 + add r0, sp, #0x10 + ldrb r0, [r0, #0x10] + ldr r3, [sp, #0x8] + add r1, r6, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x24] + add r2, r7, #0x0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl FUN_02004E44 + mov r0, #0x0 + strb r0, [r4, #0x0] + mov r0, #0x5 + bl FUN_02003CE8 + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_02004E08 +FUN_02004E08: ; 0x02004E08 + push {r4-r7, lr} + sub sp, #0xc + add r5, r0, #0x0 + mov r0, #0x8 + add r6, r1, #0x0 + add r7, r2, #0x0 + str r3, [sp, #0x8] + bl FUN_02003D38 + add r4, r0, #0x0 + add r0, sp, #0x10 + ldrb r0, [r0, #0x14] + ldr r3, [sp, #0x8] + add r1, r6, #0x0 + str r0, [sp, #0x0] + ldr r0, [sp, #0x28] + add r2, r7, #0x0 + str r0, [sp, #0x4] + add r0, r5, #0x0 + bl FUN_02004E44 + ldr r0, [sp, #0x20] + str r0, [r4, #0x0] + mov r0, #0x6 + bl FUN_02003CE8 + mov r0, #0x1 + add sp, #0xc + pop {r4-r7, pc} + .balign 4 + + thumb_func_start FUN_02004E44 +FUN_02004E44: ; 0x02004E44 + push {r3-r7, lr} + add r6, r2, #0x0 + mov r0, #0x2 + add r5, r1, #0x0 + add r7, r3, #0x0 + bl FUN_02003D38 + add r4, r0, #0x0 + mov r0, #0x0 + add r1, r6, #0x0 + bl FUN_020053CC + mov r0, #0x0 + bl FUN_02004110 + add r0, r5, #0x0 + bl FUN_02004130 + add r0, r7, #0x0 + bl FUN_02004D84 + add r0, r5, #0x0 + bl FUN_020048F4 + str r0, [r4, #0x0] + add r0, sp, #0x8 + ldrb r0, [r0, #0x10] + bl FUN_02004DBC + pop {r3-r7, pc} + + thumb_func_start FUN_02004E80 +FUN_02004E80: ; 0x02004E80 + cmp r0, #0x0 + bne _02004E88 + mov r0, #0x0 + bx lr +_02004E88: + add r0, #0xc + bx lr + + thumb_func_start FUN_02004E8C +FUN_02004E8C: ; 0x02004E8C + cmp r0, #0x0 + bne _02004E94 + mov r0, #0x0 + bx lr +_02004E94: + ldr r0, [r0, #0x8] + bx lr + + thumb_func_start FUN_02004E98 +FUN_02004E98: ; 0x02004E98 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x5 + bl FUN_02004748 + bl FUN_02003F64 + lsl r0, r5, #0x10 + lsr r4, r0, #0x10 + ldr r0, _02004ECC ; =0x000001B9 + cmp r4, r0 + beq _02004EBC + add r0, #0x36 + cmp r5, r0 + bgt _02004EBA + cmp r5, #0x0 + bne _02004EBC +_02004EBA: + mov r4, #0x1 +_02004EBC: + add r0, r4, #0x0 + bl FUN_02003FC4 + add r0, r4, #0x0 + bl FUN_02004ED0 + pop {r3-r5, pc} + nop +_02004ECC: .word 0x000001B9 + + thumb_func_start FUN_02004ED0 +FUN_02004ED0: ; 0x02004ED0 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x20 + bl FUN_02003D38 + add r4, r0, #0x0 + lsl r0, r5, #0x10 + ldr r1, _02004F24 ; =0x000001B9 + lsr r0, r0, #0x10 + cmp r0, r1 + beq _02004EF2 + add r1, #0x36 + cmp r5, r1 + bgt _02004EF0 + cmp r5, #0x0 + bne _02004EF2 +_02004EF0: + mov r0, #0x1 +_02004EF2: + bl FUN_020C226C + cmp r0, #0x0 + bne _02004F02 + bl ErrorHandling + mov r0, #0x0 + pop {r3-r5, pc} +_02004F02: + ldr r0, [r0, #0x0] + lsl r0, r0, #0x8 + lsr r0, r0, #0x8 + bl FUN_020C20DC + cmp r0, #0x0 + bne _02004F18 + bl ErrorHandling + mov r0, #0x0 + pop {r3-r5, pc} +_02004F18: + mov r1, #0x0 + bl SND_GetWaveDataAddress + str r0, [r4, #0x0] + pop {r3-r5, pc} + nop +_02004F24: .word 0x000001B9 + + thumb_func_start FUN_02004F28 +FUN_02004F28: ; 0x02004F28 + push {r4-r6, lr} + mov r0, #0x1 + add r5, r1, #0x0 + add r6, r2, #0x0 + bl FUN_02004F64 + mov r1, #0x3 + add r4, r0, #0x0 + add r0, r6, #0x0 + lsl r1, r1, #0x8 + ldr r5, [r5, #0x8] + bl _s32_div_f + lsl r1, r0, #0x1 + bpl _02004F50 + mov r0, #0x20 + bl _s32_div_f + neg r0, r0 + b _02004F5A +_02004F50: + cmp r1, #0x0 + bne _02004F58 + mov r0, #0x20 + b _02004F5A +_02004F58: + lsl r0, r1, #0x5 +_02004F5A: + mul r0, r4 + cmp r0, r5 + blo _02004F62 + mov r0, #0x0 +_02004F62: + pop {r4-r6, pc} + + thumb_func_start FUN_02004F64 +FUN_02004F64: ; 0x02004F64 + push {r3, lr} + bl FUN_02003FF4 + bl FUN_020C0DD4 + pop {r3, pc} + + thumb_func_start FUN_02004F70 +FUN_02004F70: ; 0x02004F70 + push {r3-r7, lr} + sub sp, #0x8 + str r0, [sp, #0x0] + add r4, r1, #0x0 + add r6, r2, #0x0 + ldr r1, [sp, #0x0] + mov r0, #0x1 + add r2, r3, #0x0 + bl FUN_02004F28 + add r1, r0, #0x0 + mov r12, r0 + sub r1, #0x64 + bpl _02004F8E + mov r1, #0x0 +_02004F8E: + ldr r0, [sp, #0x0] + mov r3, #0x0 + add r0, r0, r1 + ldrb r0, [r0, #0xc] + add r7, r3, #0x0 + cmp r0, #0x80 + bhs _02004FA0 + mov r0, #0x1 + b _02004FA2 +_02004FA0: + sub r0, r3, #0x1 +_02004FA2: + lsl r0, r0, #0x18 + asr r5, r0, #0x18 + mov r0, r12 + cmp r1, r0 + bhs _02005022 +_02004FAC: + mov r0, #0x0 + cmp r5, #0x0 + ble _02004FC6 + ldr r2, [sp, #0x0] + add r2, r2, r1 + str r2, [sp, #0x4] + ldrb r2, [r2, #0xc] + cmp r2, #0x80 + bls _02004FC2 + mov r0, #0x1 + b _02004FD8 +_02004FC2: + add r3, r3, #0x1 + b _02004FD8 +_02004FC6: + ldr r2, [sp, #0x0] + add r2, r2, r1 + str r2, [sp, #0x4] + ldrb r2, [r2, #0xc] + cmp r2, #0x80 + bhs _02004FD6 + mov r0, #0x1 + b _02004FD8 +_02004FD6: + add r3, r3, #0x1 +_02004FD8: + cmp r0, #0x1 + bne _0200501A + ldr r5, _02005064 ; =0x020ECB8C + mov r2, #0x0 +_02004FE0: + ldrb r0, [r5, #0x0] + cmp r3, r0 + bge _02004FEA + add r7, r2, #0x0 + b _02004FF2 +_02004FEA: + add r2, r2, #0x1 + add r5, r5, #0x1 + cmp r2, #0x9 + blt _02004FE0 +_02004FF2: + cmp r7, r6 + blt _02004FF8 + sub r7, r6, #0x1 +_02004FF8: + cmp r3, #0x0 + beq _02005006 + sub r0, r6, #0x1 + sub r0, r0, r7 + ldrb r2, [r4, r0] + add r2, r2, #0x1 + strb r2, [r4, r0] +_02005006: + ldr r0, [sp, #0x4] + mov r3, #0x0 + ldrb r0, [r0, #0xc] + cmp r0, #0x80 + bhs _02005014 + mov r0, #0x1 + b _02005016 +_02005014: + sub r0, r3, #0x1 +_02005016: + lsl r0, r0, #0x18 + asr r5, r0, #0x18 +_0200501A: + add r1, r1, #0x2 + mov r0, r12 + cmp r1, r0 + blo _02004FAC +_02005022: + mov r2, #0x0 + cmp r6, #0x0 + ble _02005038 + mov r0, #0x9 +_0200502A: + ldrb r1, [r4, r2] + cmp r1, #0xa + blo _02005032 + strb r0, [r4, r2] +_02005032: + add r2, r2, #0x1 + cmp r2, r6 + blt _0200502A +_02005038: + sub r2, r6, #0x1 + mov r3, #0x0 + cmp r2, #0x0 + ble _02005060 +_02005040: + ldrb r0, [r4, r3] + add r1, r4, r3 + cmp r0, #0x0 + bne _0200505A + ldrb r0, [r1, #0x1] + cmp r0, #0x0 + beq _0200505A + add r0, r3, #0x1 + ldrb r0, [r4, r0] + add sp, #0x8 + lsr r0, r0, #0x1 + strb r0, [r1, #0x0] + pop {r3-r7, pc} +_0200505A: + add r3, r3, #0x1 + cmp r3, r2 + blt _02005040 +_02005060: + add sp, #0x8 + pop {r3-r7, pc} + .balign 4 +_02005064: .word 0x020ECB8C + + thumb_func_start FUN_02005068 +FUN_02005068: ; 0x02005068 + push {r3-r7, lr} + sub sp, #0x30 + add r5, r0, #0x0 + ldr r0, [sp, #0x48] + add r6, r1, #0x0 + str r0, [sp, #0xc] + mov r0, #0x13 + str r2, [sp, #0x0] + add r4, r3, #0x0 + bl FUN_02003D38 + add r7, r0, #0x0 + cmp r4, #0x1 + beq _0200508A + ldr r0, [sp, #0x0] + lsr r0, r0, #0x1 + str r0, [sp, #0x0] +_0200508A: + ldrb r2, [r7, #0x0] + cmp r2, #0x0 + beq _0200515A + mov r0, #0x0 + cmp r2, #0x0 + ble _020050BC + add r1, sp, #0x10 +_02005098: + ldr r3, [sp, #0x0] + sub r2, r3, r2 + add r2, r0, r2 + lsl r2, r2, #0x1 + ldrsh r2, [r5, r2] + strh r2, [r1, #0x0] + ldrb r3, [r7, #0x0] + ldr r2, [sp, #0x0] + sub r2, r2, r3 + add r2, r0, r2 + lsl r2, r2, #0x1 + ldrsh r2, [r6, r2] + add r0, r0, #0x1 + strh r2, [r1, #0x2] + ldrb r2, [r7, #0x0] + add r1, r1, #0x4 + cmp r0, r2 + blt _02005098 +_020050BC: + ldr r0, [sp, #0x0] + sub r4, r0, #0x1 + sub r0, r2, #0x1 + cmp r4, r0 + blt _02005126 + lsl r1, r4, #0x1 + add r0, r5, r1 + str r0, [sp, #0x8] + add r0, r6, r1 + str r0, [sp, #0x4] +_020050D0: + mov r0, #0x0 + add r1, r0, #0x0 + cmp r2, #0x0 + ble _020050E6 +_020050D8: + sub r3, r4, r1 + lsl r3, r3, #0x1 + ldrsh r3, [r5, r3] + add r1, r1, #0x1 + add r0, r0, r3 + cmp r1, r2 + blt _020050D8 +_020050E6: + add r1, r2, #0x0 + bl _s32_div_f + ldr r1, [sp, #0x8] + strh r0, [r1, #0x0] + mov r0, #0x0 + ldrb r1, [r7, #0x0] + add r2, r0, #0x0 + cmp r1, #0x0 + ble _02005108 +_020050FA: + sub r3, r4, r2 + lsl r3, r3, #0x1 + ldrsh r3, [r6, r3] + add r2, r2, #0x1 + add r0, r0, r3 + cmp r2, r1 + blt _020050FA +_02005108: + bl _s32_div_f + ldr r1, [sp, #0x4] + sub r4, r4, #0x1 + strh r0, [r1, #0x0] + ldr r0, [sp, #0x8] + ldrb r2, [r7, #0x0] + sub r0, r0, #0x2 + str r0, [sp, #0x8] + add r0, r1, #0x0 + sub r0, r0, #0x2 + str r0, [sp, #0x4] + sub r0, r2, #0x1 + cmp r4, r0 + bge _020050D0 +_02005126: + mov r1, #0x0 + cmp r2, #0x0 + ble _0200514A + add r0, sp, #0x10 + mov r4, #0x2 +_02005130: + mov r2, #0x0 + ldrsh r3, [r0, r2] + ldr r2, [sp, #0xc] + add r1, r1, #0x1 + strh r3, [r2, #0x0] + ldrsh r3, [r0, r4] + add r0, r0, #0x4 + strh r3, [r2, #0x2] + add r2, r2, #0x4 + str r2, [sp, #0xc] + ldrb r2, [r7, #0x0] + cmp r1, r2 + blt _02005130 +_0200514A: + ldr r1, [sp, #0x0] + add r0, r5, #0x0 + bl DC_FlushRange + ldr r1, [sp, #0x0] + add r0, r6, #0x0 + bl DC_FlushRange +_0200515A: + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02005160 +FUN_02005160: ; 0x02005160 + ldr r3, _02005168 ; =FUN_020C1148 + add r1, r0, #0x0 + mov r0, #0x7 + bx r3 + .balign 4 +_02005168: .word FUN_020C1148 + + thumb_func_start FUN_0200516C +FUN_0200516C: ; 0x0200516C + push {r3, lr} + cmp r0, #0x0 + bne _02005180 + ldr r0, _020051A4 ; =0x000007FF + bl FUN_02005160 + mov r0, #0x0 + bl FUN_02004CA4 + b _0200519C +_02005180: + cmp r0, #0x1 + ldr r0, _020051A8 ; =0x00007FFF + bne _02005192 + bl FUN_02005160 + mov r0, #0x1e + bl FUN_02004C80 + b _0200519C +_02005192: + bl FUN_02005160 + mov r0, #0xf + bl FUN_02004C80 +_0200519C: + bl FUN_02004C78 + pop {r3, pc} + nop +_020051A4: .word 0x000007FF +_020051A8: .word 0x00007FFF + + thumb_func_start FUN_020051AC +FUN_020051AC: ; 0x020051AC + push {r3, lr} + bl FUN_02005404 + cmp r0, #0x0 + bne _020051E0 + mov r0, #0x0 + bl FUN_02003FF4 + bl FUN_020048EC + mov r1, #0x0 + mvn r1, r1 + cmp r0, r1 + beq _020051E0 + bl FUN_02004124 + ldr r1, _020051E8 ; =0x0000047E + cmp r0, r1 + beq _020051E0 + bl FUN_02005454 + mov r0, #0x1 + add r1, r0, #0x0 + bl FUN_020047C8 + pop {r3, pc} +_020051E0: + bl FUN_0200541C + pop {r3, pc} + nop +_020051E8: .word 0x0000047E + + thumb_func_start FUN_020051EC +FUN_020051EC: ; 0x020051EC + ldr r3, _020051F0 ; =FUN_020C1180 + bx r3 + .balign 4 +_020051F0: .word FUN_020C1180 diff --git a/arm9/asm/unk_020051F4.s b/arm9/asm/unk_020051F4.s new file mode 100644 index 00000000..91832cb0 --- /dev/null +++ b/arm9/asm/unk_020051F4.s @@ -0,0 +1,1319 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + thumb_func_start FUN_020051F4 +FUN_020051F4: ; 0x020051F4 + push {r4-r6, lr} + add r5, r0, #0x0 + bl FUN_020048D0 + bl FUN_02004018 + add r4, r0, #0x0 + bl FUN_02003FF4 + add r1, r5, #0x0 + bl FUN_020C3980 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_0200526C + add r0, r6, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0200521C +FUN_0200521C: ; 0x0200521C + push {r4-r6, lr} + add r5, r0, #0x0 + bl FUN_020048D0 + add r4, r0, #0x0 + bl FUN_02004018 + add r6, r0, #0x0 + cmp r4, #0x7 + bne _0200523E + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_02005288 + add r4, r0, #0x0 + b _02005258 +_0200523E: + cmp r4, #0x1 + bne _02005250 + add r0, r5, #0x0 + add r1, r4, #0x0 + add r2, r6, #0x0 + bl FUN_020052B8 + add r4, r0, #0x0 + b _02005258 +_02005250: + bl ErrorHandling + mov r0, #0x0 + pop {r4-r6, pc} +_02005258: + mov r0, #0x0 + bl FUN_02004DBC + add r0, r5, #0x0 + add r1, r6, #0x0 + bl FUN_0200526C + add r0, r4, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_0200526C +FUN_0200526C: ; 0x0200526C + push {r3-r5, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_02004110 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02004858 + mov r0, #0x1 + bl FUN_02003CE8 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02005288 +FUN_02005288: ; 0x02005288 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x3 + add r4, r2, #0x0 + bl FUN_02004748 + bl FUN_02003F64 + add r0, r5, #0x0 + bl FUN_02003F90 + mov r0, #0x1a + bl FUN_02003D38 + bl FUN_02003F3C + add r0, r4, #0x0 + bl FUN_02003FF4 + add r1, r5, #0x0 + bl FUN_020C3980 + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_020052B8 +FUN_020052B8: ; 0x020052B8 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + mov r0, #0x12 + add r6, r2, #0x0 + bl FUN_02003D38 + mov r0, #0x1f + bl FUN_02003D38 + add r4, r0, #0x0 + mov r0, #0x0 + bl FUN_02003FF4 + bl FUN_020048EC + bl FUN_02004900 + add r1, r0, #0x0 + add r0, r5, #0x0 + bl FUN_020045C4 + add r0, r6, #0x0 + bl FUN_02003FF4 + add r6, r0, #0x0 + ldrh r0, [r4, #0x0] + bl FUN_02004900 + mov r1, #0x0 + mvn r1, r1 + add r2, r0, #0x0 + add r0, r6, #0x0 + add r3, r1, #0x0 + str r5, [sp, #0x0] + bl FUN_020C3910 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start FUN_02005308 +FUN_02005308: ; 0x02005308 + push {r3-r5, lr} + add r5, r1, #0x0 + cmp r0, #0x4 + beq _02005318 + bl ErrorHandling + mov r0, #0x0 + pop {r3-r5, pc} +_02005318: + add r0, r5, #0x0 + bl FUN_020048D0 + cmp r0, #0x7 + beq _0200532A + bl ErrorHandling + mov r0, #0x0 + pop {r3-r5, pc} +_0200532A: + add r0, r5, #0x0 + mov r1, #0x1 + bl FUN_02003FA8 + mov r0, #0x7 + bl FUN_02003FF4 + add r1, r5, #0x0 + bl FUN_020C3980 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_02004110 + mov r0, #0x1 + bl FUN_02003CE8 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02005350 +FUN_02005350: ; 0x02005350 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_020C0FDC + add r0, r4, #0x0 + bl FUN_020048D0 + cmp r0, #0xff + beq _0200536E + bl FUN_02004018 + bl FUN_02003FF4 + bl FUN_020C0F68 +_0200536E: + bl FUN_02005374 + pop {r4, pc} + + thumb_func_start FUN_02005374 +FUN_02005374: ; 0x02005374 + push {r3, lr} + mov r0, #0x0 + bl FUN_02004110 + mov r0, #0x0 + bl FUN_02004130 + mov r0, #0x0 + bl FUN_02003CE8 + pop {r3, pc} + .balign 4 + + thumb_func_start FUN_0200538C +FUN_0200538C: ; 0x0200538C + push {r3-r7, lr} + add r6, r0, #0x0 + add r5, r1, #0x0 + add r4, r2, #0x0 + bl FUN_02004124 + bl FUN_020048D0 + cmp r0, #0xff + beq _020053C8 + bl FUN_02004018 + add r7, r0, #0x0 + cmp r4, #0x0 + bne _020053B2 + mov r1, #0x0 + add r2, r1, #0x0 + bl FUN_02004828 +_020053B2: + add r0, r7, #0x0 + add r1, r6, #0x0 + add r2, r5, #0x0 + bl FUN_02004828 + add r0, r5, #0x0 + bl FUN_02004D74 + mov r0, #0x3 + bl FUN_02003CE8 +_020053C8: + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_020053CC +FUN_020053CC: ; 0x020053CC + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_02004124 + bl FUN_020048D0 + add r6, r0, #0x0 + cmp r6, #0xff + beq _02005402 + bl FUN_02005404 + cmp r0, #0x0 + bne _020053FC + add r0, r6, #0x0 + bl FUN_02004018 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_02004828 + add r0, r4, #0x0 + bl FUN_02004D74 +_020053FC: + mov r0, #0x4 + bl FUN_02003CE8 +_02005402: + pop {r4-r6, pc} + + thumb_func_start FUN_02005404 +FUN_02005404: ; 0x02005404 + push {r3, lr} + mov r0, #0x6 + bl FUN_02003D38 + ldrh r0, [r0, #0x0] + pop {r3, pc} + + thumb_func_start FUN_02005410 +FUN_02005410: ; 0x02005410 + push {r3, lr} + bl FUN_020048D0 + bl FUN_020048BC + pop {r3, pc} + + thumb_func_start FUN_0200541C +FUN_0200541C: ; 0x0200541C + push {r3-r5, lr} + mov r0, #0xf + bl FUN_02003D38 + add r5, r0, #0x0 + mov r0, #0x10 + bl FUN_02003D38 + add r4, r0, #0x0 + mov r0, #0x0 + bl FUN_020C0F9C + ldrb r0, [r5, #0x0] + cmp r0, #0x1 + bne _02005440 + mov r0, #0xe + bl FUN_02004AAC +_02005440: + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _0200544C + mov r0, #0xf + bl FUN_02004AAC +_0200544C: + mov r0, #0x0 + bl FUN_02003CE8 + pop {r3-r5, pc} + + thumb_func_start FUN_02005454 +FUN_02005454: ; 0x02005454 + push {r3-r7, lr} + mov r0, #0xf + bl FUN_02003D38 + add r7, r0, #0x0 + mov r0, #0x10 + bl FUN_02003D38 + add r6, r0, #0x0 + mov r0, #0x7 + bl FUN_02003FF4 + mov r1, #0x0 + bl FUN_020C10A4 + bl FUN_02005374 + mov r5, #0x0 + add r4, r5, #0x0 +_0200547A: + add r0, r5, #0x3 + add r1, r4, #0x0 + bl FUN_020054F8 + add r5, r5, #0x1 + cmp r5, #0x4 + blt _0200547A + mov r0, #0x0 + bl FUN_02005614 + ldrb r0, [r7, #0x0] + cmp r0, #0x1 + bne _0200549A + mov r0, #0xe + bl FUN_02004AAC +_0200549A: + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + bne _020054A6 + mov r0, #0xf + bl FUN_02004AAC +_020054A6: + pop {r3-r7, pc} + + thumb_func_start FUN_020054A8 +FUN_020054A8: ; 0x020054A8 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + bl FUN_020054C8 + add r6, r0, #0x0 + ldr r1, _020054C4 ; =0x0000FFFF + add r0, r5, #0x0 + add r2, r4, #0x0 + bl FUN_02005530 + add r0, r6, #0x0 + pop {r4-r6, pc} + nop +_020054C4: .word 0x0000FFFF + + thumb_func_start FUN_020054C8 +FUN_020054C8: ; 0x020054C8 + push {r4-r6, lr} + add r5, r0, #0x0 + bl FUN_020048D0 + bl FUN_02004018 + add r4, r0, #0x0 + bl FUN_02003FF4 + add r1, r5, #0x0 + bl FUN_020C3980 + add r6, r0, #0x0 + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02004858 + add r0, r6, #0x0 + pop {r4-r6, pc} + .balign 4 + + thumb_func_start FUN_020054F0 +FUN_020054F0: ; 0x020054F0 + ldr r3, _020054F4 ; =FUN_020C0FDC + bx r3 + .balign 4 +_020054F4: .word FUN_020C0FDC + + thumb_func_start FUN_020054F8 +FUN_020054F8: ; 0x020054F8 + push {r4, lr} + add r4, r1, #0x0 + bl FUN_02003FF4 + add r1, r4, #0x0 + bl FUN_020C10A4 + pop {r4, pc} + + thumb_func_start FUN_02005508 +FUN_02005508: ; 0x02005508 + push {r3, lr} + bl FUN_020048D0 + bl FUN_020048BC + pop {r3, pc} + + thumb_func_start FUN_02005514 +FUN_02005514: ; 0x02005514 + push {r4, lr} + mov r4, #0x0 +_02005518: + add r0, r4, #0x3 + bl FUN_020048BC + cmp r0, #0x1 + bne _02005526 + mov r0, #0x1 + pop {r4, pc} +_02005526: + add r4, r4, #0x1 + cmp r4, #0x4 + blt _02005518 + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start FUN_02005530 +FUN_02005530: ; 0x02005530 + push {r3-r5, lr} + add r5, r1, #0x0 + add r4, r2, #0x0 + bl FUN_020048D0 + bl FUN_02004018 + bl FUN_02003FF4 + add r1, r5, #0x0 + add r2, r4, #0x0 + bl FUN_020C0E7C + pop {r3-r5, pc} + + thumb_func_start FUN_0200554C +FUN_0200554C: ; 0x0200554C + push {r3-r7, lr} + add r6, r0, #0x0 + mov r0, #0x3 + bl FUN_02004018 + ldr r7, _02005574 ; =0x0000FFFF + add r4, r0, #0x0 + mov r5, #0x0 +_0200555C: + add r0, r4, r5 + bl FUN_02003FF4 + add r1, r7, #0x0 + add r2, r6, #0x0 + bl FUN_020C0E7C + add r5, r5, #0x1 + cmp r5, #0x4 + blt _0200555C + pop {r3-r7, pc} + nop +_02005574: .word 0x0000FFFF + + thumb_func_start FUN_02005578 +FUN_02005578: ; 0x02005578 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x11 + bl FUN_02003D38 + add r4, r0, #0x0 + mov r0, #0x23 + bl FUN_02003D38 + ldr r1, _02005610 ; =0x000001B9 + cmp r5, r1 + beq _0200559C + add r1, #0x36 + cmp r5, r1 + bhi _0200559A + cmp r5, #0x0 + bne _0200559C +_0200559A: + mov r5, #0x1 +_0200559C: + ldr r1, _02005610 ; =0x000001B9 + cmp r5, r1 + bne _020055BC + mov r1, #0x0 + ldr r0, [r0, #0x0] + mov r2, #0x7f + add r3, r1, #0x0 + bl FUN_02005D48 + cmp r0, #0x1 + bne _020055BC + mov r0, #0x0 + bl FUN_02005E80 + mov r0, #0x1 + pop {r3-r5, pc} +_020055BC: + ldrb r0, [r4, #0x0] + cmp r0, #0x0 + bne _020055E8 + mov r0, #0x0 + bl FUN_02005614 + mov r0, #0x1 + bl FUN_02003FF4 + mov r1, #0x2 + str r1, [sp, #0x0] + sub r1, r1, #0x3 + add r2, r5, #0x0 + add r3, r1, #0x0 + bl FUN_020C3910 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x1 + bl FUN_02004858 + b _02005606 +_020055E8: + mov r0, #0x8 + bl FUN_02003FF4 + mov r1, #0x2 + str r1, [sp, #0x0] + sub r1, r1, #0x3 + add r2, r5, #0x0 + add r3, r1, #0x0 + bl FUN_020C3910 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x8 + bl FUN_02004858 +_02005606: + mov r0, #0x0 + bl FUN_02005E80 + add r0, r4, #0x0 + pop {r3-r5, pc} + .balign 4 +_02005610: .word 0x000001B9 + + thumb_func_start FUN_02005614 +FUN_02005614: ; 0x02005614 + push {r4-r6, lr} + add r5, r0, #0x0 + mov r0, #0xf + bl FUN_02003D38 + add r6, r0, #0x0 + mov r0, #0x10 + bl FUN_02003D38 + add r4, r0, #0x0 + mov r0, #0xe + bl FUN_02003D38 + mov r0, #0x1 + bl FUN_02003FF4 + add r1, r5, #0x0 + bl FUN_020C10A4 + mov r0, #0x8 + bl FUN_02003FF4 + add r1, r5, #0x0 + bl FUN_020C10A4 + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + bne _02005658 + mov r0, #0xe + bl FUN_02004C3C + mov r0, #0xe + bl FUN_02004A04 +_02005658: + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _0200566A + mov r0, #0xf + bl FUN_02004C3C + mov r0, #0xf + bl FUN_02004A04 +_0200566A: + bl FUN_02005DFC + pop {r4-r6, pc} + + thumb_func_start FUN_02005670 +FUN_02005670: ; 0x02005670 + push {r3-r5, lr} + mov r0, #0xf + bl FUN_02003D38 + add r5, r0, #0x0 + mov r0, #0x10 + bl FUN_02003D38 + add r4, r0, #0x0 + mov r0, #0xe + bl FUN_02003D38 + ldrb r0, [r5, #0x0] + cmp r0, #0x1 + bne _02005696 + mov r0, #0xe + bl FUN_02004ABC + pop {r3-r5, pc} +_02005696: + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _020056A4 + mov r0, #0xf + bl FUN_02004ABC + pop {r3-r5, pc} +_020056A4: + mov r0, #0x0 + bl FUN_020048BC + pop {r3-r5, pc} + + thumb_func_start FUN_020056AC +FUN_020056AC: ; 0x020056AC + push {r3-r7, lr} + sub sp, #0x20 + str r0, [sp, #0x4] + mov r0, #0xf + str r1, [sp, #0x8] + add r5, r2, #0x0 + add r6, r3, #0x0 + ldr r7, [sp, #0x38] + bl FUN_02003D38 + str r0, [sp, #0x14] + mov r0, #0x10 + bl FUN_02003D38 + str r0, [sp, #0x10] + mov r0, #0x11 + bl FUN_02003D38 + add r4, r0, #0x0 + mov r0, #0x1d + bl FUN_02003D38 + str r0, [sp, #0xc] + mov r0, #0x23 + bl FUN_02003D38 + lsr r0, r5, #0x1f + add r0, r5, r0 + asr r0, r0, #0x1 + str r0, [sp, #0x1c] + add r0, #0x40 + str r0, [sp, #0x1c] + add r0, r6, #0x0 + str r0, [sp, #0x18] + sub r0, #0x1e + str r0, [sp, #0x18] + cmp r0, #0x0 + bgt _020056FC + mov r0, #0x1 + str r0, [sp, #0x18] +_020056FC: + mov r0, #0x0 + strb r0, [r4, #0x0] + ldr r0, [sp, #0x14] + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _02005714 + mov r0, #0xe + bl FUN_02004C3C + mov r0, #0xe + bl FUN_02004A04 +_02005714: + ldr r0, [sp, #0x10] + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _02005728 + mov r0, #0xf + bl FUN_02004C3C + mov r0, #0xf + bl FUN_02004A04 +_02005728: + ldr r4, [sp, #0x8] + ldr r0, _02005AB4 ; =0x000001B9 + add r1, r4, #0x0 + cmp r1, r0 + beq _0200573E + add r0, #0x36 + cmp r1, r0 + bhi _0200573C + add r0, r4, #0x0 + bne _0200573E +_0200573C: + mov r4, #0x1 +_0200573E: + ldr r0, _02005AB4 ; =0x000001B9 + ldr r1, [sp, #0x8] + cmp r1, r0 + bne _020057B4 + ldr r1, [sp, #0x4] + cmp r1, #0xc + bhi _020057AE + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #0x6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02005758: ; jump table (using 16-bit offset) + .short _02005772 - _02005758 - 2; case 0 + .short _02005772 - _02005758 - 2; case 1 + .short _02005772 - _02005758 - 2; case 2 + .short _020057AE - _02005758 - 2; case 3 + .short _020057AE - _02005758 - 2; case 4 + .short _02005772 - _02005758 - 2; case 5 + .short _020057AE - _02005758 - 2; case 6 + .short _020057AE - _02005758 - 2; case 7 + .short _020057AE - _02005758 - 2; case 8 + .short _020057AE - _02005758 - 2; case 9 + .short _020057AE - _02005758 - 2; case 10 + .short _02005772 - _02005758 - 2; case 11 + .short _02005772 - _02005758 - 2; case 12 +_02005772: + bl FUN_02005578 + ldr r0, [sp, #0xc] + ldrb r0, [r0, #0x0] + cmp r0, #0x0 + bne _02005794 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl FUN_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl FUN_02005AC8 + b _020057A8 +_02005794: + ldr r1, [sp, #0x1c] + mov r0, #0xe + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_02004ACC + mov r0, #0xe + add r1, r6, #0x0 + bl FUN_02004AF8 +_020057A8: + add sp, #0x20 + mov r0, #0x1 + pop {r3-r7, pc} +_020057AE: + mov r0, #0x1 + bl FUN_02005E80 +_020057B4: + ldr r0, [sp, #0x4] + cmp r0, #0xe + bls _020057BC + b _02005AC2 +_020057BC: + add r0, r0, r0 + add r0, pc + ldrh r0, [r0, #0x6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_020057C8: ; jump table (using 16-bit offset) + .short _020057E6 - _020057C8 - 2; case 0 + .short _02005802 - _020057C8 - 2; case 1 + .short _02005826 - _020057C8 - 2; case 2 + .short _02005868 - _020057C8 - 2; case 3 + .short _020058B2 - _020057C8 - 2; case 4 + .short _02005900 - _020057C8 - 2; case 5 + .short _02005928 - _020057C8 - 2; case 6 + .short _0200596C - _020057C8 - 2; case 7 + .short _0200599C - _020057C8 - 2; case 8 + .short _020059CA - _020057C8 - 2; case 9 + .short _020059FE - _020057C8 - 2; case 10 + .short _02005A2E - _020057C8 - 2; case 11 + .short _02005A56 - _020057C8 - 2; case 12 + .short _02005A86 - _020057C8 - 2; case 13 + .short _02005ABC - _020057C8 - 2; case 14 +_020057E6: + add r0, r4, #0x0 + bl FUN_02005578 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl FUN_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl FUN_02005AC8 + b _02005AC2 +_02005802: + add r0, r4, #0x0 + bl FUN_02005578 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl FUN_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl FUN_02005AC8 + mov r0, #0x14 + add r1, r7, #0x0 + bl FUN_02005AE0 + b _02005AC2 +_02005826: + add r0, r4, #0x0 + bl FUN_02005578 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl FUN_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl FUN_02005AC8 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + mov r2, #0x40 + bl FUN_02004D20 + add r0, r4, #0x0 + mov r1, #0x14 + bl FUN_02005BC8 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x8 + add r2, r5, #0x0 + bl FUN_02004D4C + ldr r2, [sp, #0x18] + add r0, r4, #0x0 + mov r1, #0x8 + bl FUN_02005AC8 + b _02005AC2 +_02005868: + add r0, r4, #0x0 + bl FUN_02005578 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl FUN_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl FUN_02005AC8 + mov r0, #0x1e + add r1, r7, #0x0 + bl FUN_02005AE0 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + mov r2, #0xc0 + bl FUN_02004D20 + add r0, r4, #0x0 + mov r1, #0x10 + bl FUN_02005BC8 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x8 + add r2, r5, #0x0 + bl FUN_02004D4C + ldr r2, [sp, #0x18] + add r0, r4, #0x0 + mov r1, #0x8 + bl FUN_02005AC8 + b _02005AC2 +_020058B2: + mov r0, #0xe + bl FUN_02004984 + ldr r2, [sp, #0x1c] + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r3, #0xe + str r7, [sp, #0x0] + bl FUN_02004B30 + ldr r1, [sp, #0x1c] + mov r0, #0xe + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_02004ACC + mov r0, #0xf + add r1, r7, #0x0 + bl FUN_02005AE0 + mov r1, #0x86 + mov r0, #0xe + lsl r1, r1, #0x8 + bl FUN_02004AE4 + mov r1, #0x3f + ldr r2, [sp, #0x18] + ldr r3, [sp, #0x1c] + add r0, r4, #0x0 + mvn r1, r1 + str r7, [sp, #0x0] + bl FUN_02005BF8 + mov r1, #0x86 + mov r0, #0xf + lsl r1, r1, #0x8 + bl FUN_02004AE4 + b _02005AC2 +_02005900: + add r0, r4, #0x0 + bl FUN_02005578 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl FUN_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl FUN_02005AC8 + mov r0, #0x1 + add r2, r0, #0x0 + ldr r1, _02005AB8 ; =0x0000FFFF + sub r2, #0xe1 + bl FUN_02004D20 + b _02005AC2 +_02005928: + add r0, r4, #0x0 + bl FUN_02005578 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl FUN_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl FUN_02005AC8 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + mov r2, #0x2c + bl FUN_02004D20 + mov r1, #0x3f + add r0, r4, #0x0 + mvn r1, r1 + bl FUN_02005BC8 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x8 + add r2, r5, #0x0 + bl FUN_02004D4C + ldr r2, [sp, #0x18] + add r0, r4, #0x0 + mov r1, #0x8 + bl FUN_02005AC8 + b _02005AC2 +_0200596C: + add r0, r4, #0x0 + bl FUN_02005578 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl FUN_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl FUN_02005AC8 + mov r0, #0xb + add r1, r7, #0x0 + bl FUN_02005AE0 + mov r0, #0x1 + add r2, r0, #0x0 + ldr r1, _02005AB8 ; =0x0000FFFF + sub r2, #0x81 + bl FUN_02004D20 + b _02005AC2 +_0200599C: + add r0, r4, #0x0 + bl FUN_02005578 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl FUN_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl FUN_02005AC8 + mov r0, #0x3c + add r1, r7, #0x0 + bl FUN_02005AE0 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + mov r2, #0x3c + bl FUN_02004D20 + b _02005AC2 +_020059CA: + mov r0, #0xe + bl FUN_02004984 + ldr r2, [sp, #0x1c] + add r0, r4, #0x0 + add r1, r6, #0x0 + mov r3, #0xe + str r7, [sp, #0x0] + bl FUN_02004B30 + ldr r1, [sp, #0x1c] + mov r0, #0xe + lsl r1, r1, #0x18 + lsr r1, r1, #0x18 + bl FUN_02004ACC + mov r0, #0xd + add r1, r7, #0x0 + bl FUN_02005AE0 + mov r1, #0x1a + mov r0, #0xe + lsl r1, r1, #0xa + bl FUN_02004AE4 + b _02005AC2 +_020059FE: + add r0, r4, #0x0 + bl FUN_02005578 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl FUN_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl FUN_02005AC8 + mov r0, #0x64 + add r1, r7, #0x0 + bl FUN_02005AE0 + mov r0, #0x1 + add r2, r0, #0x0 + ldr r1, _02005AB8 ; =0x0000FFFF + sub r2, #0x2d + bl FUN_02004D20 + b _02005AC2 +_02005A2E: + add r0, r4, #0x0 + bl FUN_02005578 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl FUN_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl FUN_02005AC8 + mov r0, #0x1 + add r2, r0, #0x0 + ldr r1, _02005AB8 ; =0x0000FFFF + sub r2, #0x61 + bl FUN_02004D20 + b _02005AC2 +_02005A56: + add r0, r4, #0x0 + bl FUN_02005578 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x1 + add r2, r5, #0x0 + bl FUN_02004D4C + add r0, r4, #0x0 + mov r1, #0x1 + add r2, r6, #0x0 + bl FUN_02005AC8 + mov r0, #0x14 + add r1, r7, #0x0 + bl FUN_02005AE0 + mov r0, #0x1 + add r2, r0, #0x0 + ldr r1, _02005AB8 ; =0x0000FFFF + sub r2, #0x61 + bl FUN_02004D20 + b _02005AC2 +_02005A86: + add r0, r4, #0x0 + bl FUN_02005578 + add r0, r4, #0x0 + mov r1, #0x1 + mov r2, #0x7f + bl FUN_02005AC8 + add r0, r4, #0x0 + mov r1, #0x14 + bl FUN_02005BC8 + ldr r1, _02005AB8 ; =0x0000FFFF + mov r0, #0x8 + add r2, r5, #0x0 + bl FUN_02004D4C + mov r0, #0x8 + add r1, r6, #0x0 + mov r2, #0x0 + bl FUN_02004828 + b _02005AC2 + .balign 4 +_02005AB4: .word 0x000001B9 +_02005AB8: .word 0x0000FFFF +_02005ABC: + add r0, r4, #0x0 + bl FUN_02005578 +_02005AC2: + mov r0, #0x1 + add sp, #0x20 + pop {r3-r7, pc} + + thumb_func_start FUN_02005AC8 +FUN_02005AC8: ; 0x02005AC8 + push {r3-r5, lr} + add r4, r1, #0x0 + add r5, r0, #0x0 + add r0, r4, #0x0 + add r1, r2, #0x0 + bl FUN_0200483C + add r0, r5, #0x0 + add r1, r4, #0x0 + bl FUN_02004858 + pop {r3-r5, pc} + + thumb_func_start FUN_02005AE0 +FUN_02005AE0: ; 0x02005AE0 + push {r4-r6, lr} + add r5, r0, #0x0 + add r4, r1, #0x0 + mov r0, #0x22 + bl FUN_02003D38 + add r6, r0, #0x0 + bl FUN_02005BA0 + add r0, r4, #0x0 + mov r1, #0x8 + bl FUN_02016998 + add r4, r0, #0x0 + bne _02005B04 + bl ErrorHandling + pop {r4-r6, pc} +_02005B04: + mov r2, #0x0 + strb r2, [r4, #0x0] + strb r2, [r4, #0x1] + strb r2, [r4, #0x2] + strb r2, [r4, #0x3] + strb r2, [r4, #0x4] + strb r2, [r4, #0x5] + strb r2, [r4, #0x6] + strb r2, [r4, #0x7] + ldr r0, _02005B28 ; =FUN_02005B2C + add r1, r4, #0x0 + str r5, [r4, #0x0] + bl FUN_0200CA44 + str r0, [r4, #0x4] + str r0, [r6, #0x0] + pop {r4-r6, pc} + nop +_02005B28: .word FUN_02005B2C + + thumb_func_start FUN_02005B2C +FUN_02005B2C: ; 0x02005B2C + push {r4-r6, lr} + mov r0, #0xf + add r5, r1, #0x0 + bl FUN_02003D38 + add r6, r0, #0x0 + mov r0, #0x10 + bl FUN_02003D38 + ldr r2, [r5, #0x0] + add r4, r0, #0x0 + cmp r2, #0xa + bne _02005B58 + mov r0, #0x1 + mov r1, #0x0 + bl FUN_02004828 + ldr r2, [r5, #0x0] + mov r0, #0x8 + mov r1, #0x0 + bl FUN_02004828 +_02005B58: + ldr r0, [r5, #0x0] + sub r0, r0, #0x1 + str r0, [r5, #0x0] + bl FUN_02005670 + cmp r0, #0x0 + bne _02005B6A + mov r0, #0x0 + str r0, [r5, #0x0] +_02005B6A: + ldr r0, [r5, #0x0] + cmp r0, #0x0 + bgt _02005B9E + mov r0, #0x0 + bl FUN_02005614 + ldrb r0, [r6, #0x0] + cmp r0, #0x1 + bne _02005B88 + mov r0, #0xe + bl FUN_02004C3C + mov r0, #0xe + bl FUN_02004A04 +_02005B88: + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + bne _02005B9A + mov r0, #0xf + bl FUN_02004C3C + mov r0, #0xf + bl FUN_02004A04 +_02005B9A: + bl FUN_02005BA0 +_02005B9E: + pop {r4-r6, pc} + + thumb_func_start FUN_02005BA0 +FUN_02005BA0: ; 0x02005BA0 + push {r3-r5, lr} + mov r0, #0x22 + bl FUN_02003D38 + add r4, r0, #0x0 + ldr r0, [r4, #0x0] + cmp r0, #0x0 + beq _02005BC2 + bl FUN_0201B6C8 + add r5, r0, #0x0 + ldr r0, [r4, #0x0] + bl FUN_0200CAB4 + add r0, r5, #0x0 + bl FUN_02016A18 +_02005BC2: + mov r0, #0x0 + str r0, [r4, #0x0] + pop {r3-r5, pc} + + thumb_func_start FUN_02005BC8 +FUN_02005BC8: ; 0x02005BC8 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x11 + add r4, r1, #0x0 + bl FUN_02003D38 + mov r1, #0x1 + strb r1, [r0, #0x0] + add r0, r1, #0x0 + bl FUN_02005E80 + add r0, r5, #0x0 + bl FUN_02005578 + add r5, r0, #0x0 + ldr r1, _02005BF4 ; =0x0000FFFF + mov r0, #0x8 + add r2, r4, #0x0 + bl FUN_02004D20 + add r0, r5, #0x0 + pop {r3-r5, pc} + .balign 4 +_02005BF4: .word 0x0000FFFF + + thumb_func_start FUN_02005BF8 +FUN_02005BF8: ; 0x02005BF8 + push {r3-r6, lr} + sub sp, #0x4 + add r5, r0, #0x0 + mov r0, #0x11 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl FUN_02003D38 + mov r1, #0x1 + strb r1, [r0, #0x0] + mov r0, #0xf + bl FUN_02004984 + ldr r0, [sp, #0x18] + add r1, r4, #0x0 + str r0, [sp, #0x0] + add r0, r5, #0x0 + add r2, r6, #0x0 + mov r3, #0xf + bl FUN_02004B30 + add sp, #0x4 + pop {r3-r6, pc} + .balign 4 + + thumb_func_start FUN_02005C28 +FUN_02005C28: ; 0x02005C28 + push {r3-r5, lr} + add r5, r0, #0x0 + bl FUN_020048F4 + add r0, r5, #0x0 + bl FUN_02005CEC + bl FUN_02004124 + bl FUN_020048D0 + cmp r0, #0xff + beq _02005C48 + mov r1, #0x1 + bl FUN_020047C8 +_02005C48: + mov r0, #0x1c + bl FUN_02003D38 + bl FUN_02003F3C + add r0, r5, #0x0 + mov r1, #0x3 + bl FUN_02003FA8 + mov r0, #0x2 + bl FUN_02003FF4 + add r1, r5, #0x0 + bl FUN_020C3980 + add r4, r0, #0x0 + add r0, r5, #0x0 + mov r1, #0x2 + bl FUN_02004858 + add r0, r4, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02005C74 +FUN_02005C74: ; 0x02005C74 + push {r4, lr} + mov r0, #0xd + bl FUN_02003D38 + add r4, r0, #0x0 + mov r0, #0x2 + bl FUN_020048BC + cmp r0, #0x0 + beq _02005C8C + mov r0, #0x1 + pop {r4, pc} +_02005C8C: + ldrh r0, [r4, #0x0] + cmp r0, #0x0 + beq _02005C9A + sub r0, r0, #0x1 + strh r0, [r4, #0x0] + mov r0, #0x1 + pop {r4, pc} +_02005C9A: + mov r0, #0x0 + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02005CA0 +FUN_02005CA0: ; 0x02005CA0 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x2 + bl FUN_02003FF4 + add r1, r4, #0x0 + bl FUN_020C10A4 + mov r0, #0x6 + bl FUN_02004748 + bl FUN_02003F64 + pop {r4, pc} + + thumb_func_start FUN_02005CBC +FUN_02005CBC: ; 0x02005CBC + push {r3, lr} + mov r0, #0xd + bl FUN_02003D38 + bl FUN_02005C74 + cmp r0, #0x1 + bne _02005CD0 + mov r0, #0x1 + pop {r3, pc} +_02005CD0: + mov r0, #0x0 + bl FUN_02005CA0 + bl FUN_02004124 + bl FUN_020048D0 + cmp r0, #0xff + beq _02005CE8 + mov r1, #0x0 + bl FUN_020047C8 +_02005CE8: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start FUN_02005CEC +FUN_02005CEC: ; 0x02005CEC + push {r3, lr} + mov r0, #0xd + bl FUN_02003D38 + mov r1, #0xf + strh r1, [r0, #0x0] + pop {r3, pc} + .balign 4 diff --git a/arm9/asm/unk_02005CFC.s b/arm9/asm/unk_02005CFC.s new file mode 100644 index 00000000..0dc1c0e6 --- /dev/null +++ b/arm9/asm/unk_02005CFC.s @@ -0,0 +1,303 @@ + .include "asm/macros.inc" + .include "global.inc" + + .text + + thumb_func_start FUN_02005CFC +FUN_02005CFC: ; 0x02005CFC + push {r3, lr} + mov r0, #0x1d + bl FUN_02003D38 + ldrb r0, [r0, #0x0] + cmp r0, #0x1 + bne _02005D1C + mov r0, #0xe + bl FUN_02004ABC + cmp r0, #0x0 + bne _02005D1C + bl FUN_02005DFC + mov r0, #0x1 + pop {r3, pc} +_02005D1C: + mov r0, #0x0 + pop {r3, pc} + + thumb_func_start FUN_02005D20 +FUN_02005D20: ; 0x02005D20 + push {r3-r5, lr} + add r5, r0, #0x0 + mov r0, #0x1e + bl FUN_02003D38 + add r4, r0, #0x0 + add r0, r5, #0x0 + bl FUN_02029F04 + cmp r0, #0x0 + bne _02005D3A + mov r0, #0x0 + pop {r3-r5, pc} +_02005D3A: + ldrb r0, [r4, #0x0] + cmp r0, #0x1 + beq _02005D44 + mov r0, #0x1 + pop {r3-r5, pc} +_02005D44: + mov r0, #0x0 + pop {r3-r5, pc} + + thumb_func_start FUN_02005D48 +FUN_02005D48: ; 0x02005D48 + push {r3-r7, lr} + sub sp, #0x30 + add r6, r0, #0x0 + add r5, r2, #0x0 + add r7, r3, #0x0 + bl FUN_02004DB4 + str r0, [sp, #0x0] + mov r0, #0x1d + bl FUN_02003D38 + str r0, [sp, #0x4] + add r0, r6, #0x0 + bl FUN_02005D20 + cmp r0, #0x0 + bne _02005D70 + add sp, #0x30 + mov r0, #0x0 + pop {r3-r7, pc} +_02005D70: + mov r0, #0x0 + bl FUN_02005614 + bl FUN_02005DFC + mov r0, #0xe + bl FUN_02004984 + bl FUN_0201B9EC + lsr r2, r0, #0x1f + lsl r1, r0, #0x13 + sub r1, r1, r2 + mov r0, #0x13 + ror r1, r0 + add r0, r2, r1 + lsl r0, r0, #0x10 + lsr r4, r0, #0x10 + add r0, r6, #0x0 + bl FUN_02029F10 + add r1, r0, #0x0 + ldr r0, [sp, #0x0] + bl FUN_02029F14 + mov r0, #0xe + bl FUN_02004930 + str r0, [sp, #0x8] + mov r0, #0x0 + str r0, [sp, #0xc] + bl FUN_02004DB4 + str r0, [sp, #0x10] + mov r0, #0x0 + str r0, [sp, #0x14] + str r0, [sp, #0x18] + mov r0, #0x7d + lsl r0, r0, #0x4 + str r0, [sp, #0x1c] + str r0, [sp, #0x20] + mov r0, #0x2 + lsl r0, r0, #0xe + add r0, r4, r0 + str r0, [sp, #0x28] + lsr r0, r7, #0x1f + add r0, r7, r0 + asr r0, r0, #0x1 + add r0, #0x40 + str r0, [sp, #0x2c] + add r0, sp, #0x8 + mov r1, #0xe + str r5, [sp, #0x24] + bl FUN_02004A6C + add r4, r0, #0x0 + mov r0, #0xe + add r1, r5, #0x0 + bl FUN_02004AF8 + ldr r0, [sp, #0x4] + mov r1, #0x1 + strb r1, [r0, #0x0] + mov r0, #0x0 + bl FUN_02005E80 + add r0, r4, #0x0 + add sp, #0x30 + pop {r3-r7, pc} + .balign 4 + + thumb_func_start FUN_02005DFC +FUN_02005DFC: ; 0x02005DFC + push {r3-r5, lr} + mov r0, #0xf + bl FUN_02003D38 + add r5, r0, #0x0 + mov r0, #0x1d + bl FUN_02003D38 + add r4, r0, #0x0 + ldrb r0, [r5, #0x0] + cmp r0, #0x1 + bne _02005E20 + mov r0, #0xe + bl FUN_02004C3C + mov r0, #0xe + bl FUN_02004A04 +_02005E20: + mov r0, #0x0 + strb r0, [r4, #0x0] + pop {r3-r5, pc} + .balign 4 + + thumb_func_start FUN_02005E28 +FUN_02005E28: ; 0x02005E28 + push {lr} + sub sp, #0x1c + mov r0, #0x2 + str r0, [sp, #0x0] + bl FUN_02004DB4 + mov r1, #0x7d + str r0, [sp, #0x4] + lsl r1, r1, #0x4 + mov r0, #0x1f + str r1, [sp, #0x8] + tst r0, r1 + beq _02005E48 + mov r0, #0x1f + bic r1, r0 + str r1, [sp, #0x8] +_02005E48: + ldr r0, _02005E60 ; =0x00004174 + str r0, [sp, #0xc] + mov r0, #0x0 + str r0, [sp, #0x10] + str r0, [sp, #0x14] + str r0, [sp, #0x18] + add r0, sp, #0x0 + bl FUN_02004914 + add sp, #0x1c + pop {pc} + nop +_02005E60: .word 0x00004174 + + thumb_func_start FUN_02005E64 +FUN_02005E64: ; 0x02005E64 + ldr r3, _02005E68 ; =FUN_0200491C + bx r3 + .balign 4 +_02005E68: .word FUN_0200491C + + thumb_func_start FUN_02005E6C +FUN_02005E6C: ; 0x02005E6C + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02004DB4 + add r1, r0, #0x0 + add r0, r4, #0x0 + bl FUN_02029F4C + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02005E80 +FUN_02005E80: ; 0x02005E80 + push {r4, lr} + add r4, r0, #0x0 + mov r0, #0x1e + bl FUN_02003D38 + strb r4, [r0, #0x0] + pop {r4, pc} + .balign 4 + + thumb_func_start FUN_02005E90 +FUN_02005E90: ; 0x02005E90 + push {r3-r7, lr} + add r5, r0, #0x0 + mov r0, #0x23 + add r7, r1, #0x0 + add r4, r2, #0x0 + add r6, r3, #0x0 + bl FUN_02003D38 + cmp r5, #0x0 + bne _02005EB2 + ldr r0, [r0, #0x0] + add r1, r7, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl FUN_02005D48 + b _02005EBE +_02005EB2: + add r0, r5, #0x0 + add r1, r7, #0x0 + add r2, r4, #0x0 + add r3, r6, #0x0 + bl FUN_02005D48 +_02005EBE: + cmp r0, #0x0 + bne _02005ED8 + mov r0, #0x1 + bl FUN_02005E80 + mov r0, #0xb + str r0, [sp, #0x0] + ldr r1, _02005EDC ; =0x000001B9 + mov r0, #0x0 + add r2, r6, #0x0 + add r3, r4, #0x0 + bl FUN_020056AC +_02005ED8: + pop {r3-r7, pc} + nop +_02005EDC: .word 0x000001B9 + + thumb_func_start FUN_02005EE0 +FUN_02005EE0: ; 0x02005EE0 + push {r4, lr} + add r4, r0, #0x0 + bl FUN_02029F04 + cmp r0, #0x0 + bne _02005EF0 + mov r0, #0x0 + pop {r4, pc} +_02005EF0: + add r0, r4, #0x0 + bl FUN_02029F10 + mov r1, #0xf + ldrsb r0, [r0, r1] + sub r1, #0x2d + cmp r0, r1 + bge _02005F04 + mov r0, #0x1 + pop {r4, pc} +_02005F04: + cmp r0, #0x1e + blt _02005F10 + cmp r0, #0x80 + bge _02005F10 + mov r0, #0x2 + pop {r4, pc} +_02005F10: + mov r0, #0x0 + pop {r4, pc} + + thumb_func_start FUN_02005F14 +FUN_02005F14: ; 0x02005F14 + cmp r0, #0xb + bgt _02005F2E + bge _02005F32 + cmp r0, #0x5 + bgt _02005F36 + cmp r0, #0x0 + blt _02005F36 + beq _02005F32 + cmp r0, #0x1 + beq _02005F32 + cmp r0, #0x5 + beq _02005F32 + b _02005F36 +_02005F2E: + cmp r0, #0xc + bne _02005F36 +_02005F32: + mov r0, #0x1 + bx lr +_02005F36: + mov r0, #0x0 + bx lr + .balign 4 diff --git a/arm9/global.inc b/arm9/global.inc index e418ef78..da116874 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -13,9 +13,21 @@ .extern CARDi_RequestStreamCommand
.extern CP_RestoreContext
.extern CP_SaveContext
+.extern CTRDG_CpuCopy16
+.extern CTRDG_CpuCopy32
+.extern CTRDG_CpuCopy8
+.extern CTRDG_Enable
+.extern CTRDG_GetAgbGameCode
+.extern CTRDG_GetAgbMakerCode
+.extern CTRDG_IdentifyAgbBackup
.extern CTRDG_Init
+.extern CTRDG_IsAgbCartridge
.extern CTRDG_IsExisting
.extern CTRDG_IsPulledOut
+.extern CTRDG_Read32
+.extern CTRDG_ReadAgbFlash
+.extern CTRDG_TerminateForPulledOut
+.extern CTRDG_WriteAndVerifyAgbFlashAsync
.extern Call_FillMemWithValue
.extern ConvertUIntToDecimalString
.extern DC_FlushAll
@@ -28,30 +40,51 @@ .extern DGT_Hash1GetDigest_R
.extern DGT_Hash1Reset
.extern DGT_Hash1SetSource
+.extern DGT_Hash2CalcHmac
.extern DGT_Hash2GetDigest
.extern DGT_Hash2Reset
.extern DGT_Hash2SetSource
+.extern DGTi_Hash2CalcHmac
.extern DGTi_hash2_arm4_small
.extern ErrorHandling
+.extern FS_ChangeDir
.extern FS_CloseFile
.extern FS_ConvertPathToFileID
.extern FS_FindArchive
.extern FS_Init
+.extern FS_InitArchive
.extern FS_InitFile
.extern FS_IsAvailable
+.extern FS_LoadArchive
+.extern FS_LoadArchiveTables
.extern FS_LoadOverlay
.extern FS_LoadOverlayImage
.extern FS_LoadOverlayImageAsync
.extern FS_LoadOverlayInfo
+.extern FS_NotifyArchiveAsyncEnd
.extern FS_OpenFile
+.extern FS_OpenFileDirect
.extern FS_OpenFileFast
.extern FS_ReadFile
+.extern FS_ReadFileAsync
+.extern FS_RegisterArchiveName
+.extern FS_ReleaseArchiveName
+.extern FS_ResumeArchive
.extern FS_SeekFile
+.extern FS_SetArchiveProc
.extern FS_SetDefaultDMA
.extern FS_StartOverlay
+.extern FS_SuspendArchive
.extern FS_TryLoadTable
+.extern FS_UnloadArchive
+.extern FS_UnloadArchiveTables
.extern FS_UnloadOverlay
.extern FS_WaitAsync
+.extern FSi_ExecuteSyncCommand
+.extern FSi_InitRom
+.extern FSi_ReleaseCommand
+.extern FSi_SendCommand
+.extern FSi_TranslateCommand
.extern FUNRTC_Init
.extern FUN_020002FE
.extern FUN_02000DF4
@@ -63,27 +96,48 @@ .extern FUN_020010A8
.extern FUN_02001204
.extern FUN_02001300
+.extern FUN_02001328
+.extern FUN_02001354
+.extern FUN_020013C8
.extern FUN_020013E8
+.extern FUN_0200143C
.extern FUN_02001448
+.extern FUN_0200145C
+.extern FUN_02001464
.extern FUN_02001470
+.extern FUN_02001538
+.extern FUN_02001658
+.extern FUN_02001B80
.extern FUN_02001B8C
.extern FUN_02001C14
+.extern FUN_02001C34
.extern FUN_02001C5C
.extern FUN_02001C78
.extern FUN_02001D2C
+.extern FUN_02001DDC
.extern FUN_02001E5C
+.extern FUN_02001E60
.extern FUN_020020EC
.extern FUN_02002198
.extern FUN_020021AC
+.extern FUN_020021CC
+.extern FUN_020021EC
+.extern FUN_02002218
+.extern FUN_020023C0
.extern FUN_02002840
.extern FUN_02002B60
.extern FUN_02002B7C
.extern FUN_02002BB8
+.extern FUN_02002BD4
+.extern FUN_02002BE4
+.extern FUN_02002BF4
+.extern FUN_02002C04
.extern FUN_02002C14
.extern FUN_02002C50
.extern FUN_02002C84
.extern FUN_02002CC0
.extern FUN_02002CF8
+.extern FUN_02002D94
.extern FUN_02002DB0
.extern FUN_02002DE0
.extern FUN_02002E14
@@ -91,21 +145,45 @@ .extern FUN_02002ED0
.extern FUN_02002EEC
.extern FUN_02002F08
+.extern FUN_02002F40
+.extern FUN_02002F90
+.extern FUN_02002F9C
.extern FUN_02002FD0
.extern FUN_02002FEC
.extern FUN_02003008
.extern FUN_02003038
.extern FUN_02003054
+.extern FUN_02003084
.extern FUN_020030E8
.extern FUN_02003108
+.extern FUN_0200317C
+.extern FUN_020031B8
.extern FUN_020031FC
+.extern FUN_02003204
.extern FUN_02003210
.extern FUN_0200372C
.extern FUN_020038E4
.extern FUN_020038F0
+.extern FUN_02003914
.extern FUN_02003974
+.extern FUN_020039E8
+.extern FUN_02003A30
+.extern FUN_02003A64
+.extern FUN_02003B40
.extern FUN_02003B98
.extern FUN_02003C10
+.extern FUN_02003CE8
+.extern FUN_02003D30
+.extern FUN_02003D38
+.extern FUN_02003F3C
+.extern FUN_02003F64
+.extern FUN_02003F78
+.extern FUN_02003F90
+.extern FUN_02003FA8
+.extern FUN_02003FC4
+.extern FUN_02003FDC
+.extern FUN_02003FF4
+.extern FUN_02004018
.extern FUN_020040F4
.extern FUN_02004104
.extern FUN_02004124
@@ -115,10 +193,32 @@ .extern FUN_02004724
.extern FUN_020047C8
.extern FUN_02004810
+.extern FUN_02004828
.extern FUN_0200488C
+.extern FUN_020048A0
+.extern FUN_020048BC
+.extern FUN_02004928
+.extern FUN_02004C80
+.extern FUN_02004CA4
+.extern FUN_02004CAC
+.extern FUN_02004CB4
+.extern FUN_02004CFC
+.extern FUN_02004D04
+.extern FUN_02004D20
+.extern FUN_02004D34
+.extern FUN_02004D4C
+.extern FUN_02004D60
+.extern FUN_02004D94
.extern FUN_02004DCC
.extern FUN_02004E08
+.extern FUN_02004E80
+.extern FUN_02004E8C
+.extern FUN_02004E98
+.extern FUN_02004F28
+.extern FUN_02004F64
+.extern FUN_02004F70
.extern FUN_0200516C
+.extern FUN_020051EC
.extern FUN_020051F4
.extern FUN_0200521C
.extern FUN_02005308
@@ -128,24 +228,29 @@ .extern FUN_02005404
.extern FUN_02005410
.extern FUN_0200541C
+.extern FUN_02005454
+.extern FUN_020054A8
.extern FUN_020054C8
.extern FUN_020054F0
.extern FUN_02005508
.extern FUN_02005514
+.extern FUN_02005530
+.extern FUN_0200554C
.extern FUN_02005578
+.extern FUN_02005614
.extern FUN_02005670
.extern FUN_020056AC
.extern FUN_02005C28
.extern FUN_02005CBC
+.extern FUN_02005CFC
.extern FUN_02005D20
.extern FUN_02005E28
.extern FUN_02005E64
.extern FUN_02005E6C
.extern FUN_02005E80
.extern FUN_02005E90
+.extern FUN_02005EE0
.extern FUN_02005F14
-.extern UnloadOverlayByID
-.extern HandleLoadOverlay
.extern FUN_020061E8
.extern FUN_0200621C
.extern FUN_02006234
@@ -158,19 +263,31 @@ .extern FUN_02006528
.extern FUN_02006548
.extern FUN_02006564
+.extern FUN_02006584
.extern FUN_02006670
.extern FUN_020066F4
.extern FUN_02006704
.extern FUN_02006774
+.extern FUN_020067D0
.extern FUN_02006814
+.extern FUN_02006864
+.extern FUN_02006874
.extern FUN_0200687C
.extern FUN_020068C8
.extern FUN_02006930
+.extern FUN_02006948
+.extern FUN_02006A34
+.extern FUN_02006A8C
+.extern FUN_02006AE4
+.extern FUN_02006B38
.extern FUN_02006BB0
+.extern FUN_02006BDC
.extern FUN_02006C08
.extern FUN_02006C30
.extern FUN_02006C5C
+.extern FUN_02006C88
.extern FUN_02006C98
+.extern FUN_02006D18
.extern FUN_02006D98
.extern FUN_02006ED4
.extern FUN_020072E8
@@ -178,51 +295,99 @@ .extern FUN_0200737C
.extern FUN_02007390
.extern FUN_020073A0
+.extern FUN_020073E8
.extern FUN_02007534
+.extern FUN_02007540
.extern FUN_02007558
.extern FUN_0200782C
.extern FUN_020079E0
+.extern FUN_02007E40
.extern FUN_02007E68
.extern FUN_02007E98
+.extern FUN_02007EEC
.extern FUN_02007F20
+.extern FUN_02007F34
.extern FUN_02008010
.extern FUN_02008030
.extern FUN_020080D0
+.extern FUN_020080E0
+.extern FUN_0200813C
+.extern FUN_020081A8
+.extern FUN_020081B4
+.extern FUN_020081C0
.extern FUN_020081C4
+.extern FUN_0200825C
+.extern FUN_02008268
+.extern FUN_02008284
+.extern FUN_02008290
+.extern FUN_02008A74
.extern FUN_02008AA4
.extern FUN_02008BE0
.extern FUN_02008C80
.extern FUN_02008C9C
+.extern FUN_02008D04
.extern FUN_02008D24
+.extern FUN_02008D44
+.extern FUN_02008DDC
.extern FUN_02008DEC
.extern FUN_02008E2C
.extern FUN_02008F34
+.extern FUN_02008F90
.extern FUN_02008FEC
+.extern FUN_0200904C
.extern FUN_020090AC
+.extern FUN_020090FC
.extern FUN_02009168
+.extern FUN_020091E0
+.extern FUN_0200923C
+.extern FUN_02009298
+.extern FUN_020092F8
+.extern FUN_02009358
.extern FUN_020093A8
.extern FUN_02009424
.extern FUN_02009448
+.extern FUN_0200945C
+.extern FUN_02009474
+.extern FUN_02009490
+.extern FUN_020094F0
+.extern FUN_02009530
+.extern FUN_0200955C
.extern FUN_02009630
.extern FUN_0200965C
+.extern FUN_02009660
.extern FUN_02009668
.extern FUN_020096B4
.extern FUN_020096CC
+.extern FUN_020096DC
+.extern FUN_02009710
+.extern FUN_0200973C
+.extern FUN_02009768
+.extern FUN_0200979C
.extern FUN_02009A50
.extern FUN_02009B04
.extern FUN_02009B44
.extern FUN_02009B78
+.extern FUN_02009BB8
+.extern FUN_02009BE8
.extern FUN_02009C0C
.extern FUN_02009C30
+.extern FUN_02009C5C
+.extern FUN_02009CDC
.extern FUN_02009CF0
+.extern FUN_02009D68
.extern FUN_02009DAC
.extern FUN_02009DE0
.extern FUN_02009E04
.extern FUN_02009E28
+.extern FUN_02009E54
.extern FUN_02009E88
.extern FUN_02009EAC
.extern FUN_02009F80
.extern FUN_02009FA0
+.extern FUN_02009FD8
+.extern FUN_0200A03C
+.extern FUN_0200A064
+.extern FUN_0200A06C
.extern FUN_0200A208
.extern FUN_0200A274
.extern FUN_0200A2AC
@@ -237,6 +402,7 @@ .extern FUN_0200A968
.extern FUN_0200A99C
.extern FUN_0200A9C4
+.extern FUN_0200AA14
.extern FUN_0200AA50
.extern FUN_0200AA80
.extern FUN_0200AA90
@@ -261,10 +427,15 @@ .extern FUN_0200AEE0
.extern FUN_0200AF18
.extern FUN_0200AF50
+.extern FUN_0200AF88
+.extern FUN_0200AFBC
.extern FUN_0200AFF4
.extern FUN_0200B02C
.extern FUN_0200B064
.extern FUN_0200B09C
+.extern FUN_0200B0D4
+.extern FUN_0200B10C
+.extern FUN_0200B144
.extern FUN_0200B164
.extern FUN_0200B19C
.extern FUN_0200B1D4
@@ -272,9 +443,14 @@ .extern FUN_0200B244
.extern FUN_0200B278
.extern FUN_0200B2AC
+.extern FUN_0200B2E0
+.extern FUN_0200B318
.extern FUN_0200B350
.extern FUN_0200B388
+.extern FUN_0200B3C0
.extern FUN_0200B410
+.extern FUN_0200B430
+.extern FUN_0200B468
.extern FUN_0200B4A0
.extern FUN_0200B4D8
.extern FUN_0200B518
@@ -289,18 +465,22 @@ .extern FUN_0200B764
.extern FUN_0200B7A8
.extern FUN_0200B7B8
+.extern FUN_0200B84C
.extern FUN_0200B870
.extern FUN_0200B990
.extern FUN_0200B9A8
.extern FUN_0200B9EC
.extern FUN_0200BA78
+.extern FUN_0200BAAC
.extern FUN_0200BB14
.extern FUN_0200BB34
.extern FUN_0200BB68
.extern FUN_0200BB6C
.extern FUN_0200BBF0
+.extern FUN_0200BC14
.extern FUN_0200BC1C
.extern FUN_0200BC30
+.extern FUN_0200BC38
.extern FUN_0200BCE0
.extern FUN_0200BD04
.extern FUN_0200BD20
@@ -312,98 +492,205 @@ .extern FUN_0200C124
.extern FUN_0200C13C
.extern FUN_0200C154
+.extern FUN_0200C334
+.extern FUN_0200C344
.extern FUN_0200C358
.extern FUN_0200C368
.extern FUN_0200C378
.extern FUN_0200C388
.extern FUN_0200C398
.extern FUN_0200C3DC
+.extern FUN_0200C59C
.extern FUN_0200C5A8
+.extern FUN_0200C5B4
+.extern FUN_0200C5C0
+.extern FUN_0200C5CC
+.extern FUN_0200C5E0
+.extern FUN_0200C5F4
+.extern FUN_0200C608
.extern FUN_0200C61C
+.extern FUN_0200C630
.extern FUN_0200C63C
.extern FUN_0200C644
+.extern FUN_0200C650
+.extern FUN_0200C658
.extern FUN_0200C664
.extern FUN_0200C66C
+.extern FUN_0200C680
+.extern FUN_0200C68C
+.extern FUN_0200C6A4
+.extern FUN_0200C6B0
+.extern FUN_0200C6C4
+.extern FUN_0200C6D8
.extern FUN_0200C6E4
.extern FUN_0200C714
+.extern FUN_0200C720
+.extern FUN_0200C750
.extern FUN_0200C75C
.extern FUN_0200C7A0
+.extern FUN_0200C7F0
+.extern FUN_0200C7FC
.extern FUN_0200C82C
.extern FUN_0200C840
.extern FUN_0200C884
+.extern FUN_0200C898
+.extern FUN_0200C8BC
+.extern FUN_0200C8D0
+.extern FUN_0200C8DC
+.extern FUN_0200C8F8
+.extern FUN_0200C90C
+.extern FUN_0200C918
+.extern FUN_0200C978
.extern FUN_0200C9D8
.extern FUN_0200CA0C
+.extern FUN_0200CA40
.extern FUN_0200CA44
+.extern FUN_0200CA60
+.extern FUN_0200CA7C
+.extern FUN_0200CA98
.extern FUN_0200CAB4
.extern FUN_0200CABC
.extern FUN_0200CAFC
.extern FUN_0200CB00
.extern FUN_0200CCA4
.extern FUN_0200CCF8
+.extern FUN_0200CD60
.extern FUN_0200CD64
.extern FUN_0200CD68
+.extern FUN_0200D06C
.extern FUN_0200D0BC
.extern FUN_0200D0E0
.extern FUN_0200D274
.extern FUN_0200D300
.extern FUN_0200D6F8
+.extern FUN_0200D7A0
.extern FUN_0200D858
.extern FUN_0200DBFC
+.extern FUN_0200DC24
.extern FUN_0200DC4C
.extern FUN_0200DCA4
.extern FUN_0200E1D0
.extern FUN_0200E2D8
.extern FUN_0200E308
+.extern FUN_0200E31C
.extern FUN_0200E388
.extern FUN_0200E394
.extern FUN_0200E3A0
.extern FUN_0200E3BC
+.extern FUN_02011744
+.extern FUN_020117BC
+.extern FUN_020117E8
+.extern FUN_02011870
+.extern FUN_02011898
+.extern FUN_020118C4
+.extern FUN_02011938
+.extern FUN_020119A4
+.extern FUN_020119D0
+.extern FUN_02011A00
+.extern FUN_02011A30
+.extern FUN_02011A60
+.extern FUN_02011A90
+.extern FUN_02011AC0
+.extern FUN_02011AF0
.extern FUN_02011B20
.extern FUN_02012400
.extern FUN_02012420
+.extern FUN_0201244C
+.extern FUN_02012470
+.extern FUN_020124B4
.extern FUN_02012530
+.extern FUN_02012560
.extern FUN_0201259C
.extern FUN_020125D4
.extern FUN_0201265C
+.extern FUN_02012690
.extern FUN_020126B4
.extern FUN_020126D8
.extern FUN_020126FC
.extern FUN_0201277C
+.extern FUN_02012794
.extern FUN_020127A8
.extern FUN_020127C0
.extern FUN_02012838
.extern FUN_02012870
.extern FUN_02012880
.extern FUN_020128A0
+.extern FUN_020128C4
+.extern FUN_0201291C
+.extern FUN_02012944
+.extern FUN_02012974
+.extern FUN_02012988
+.extern FUN_0201299C
+.extern FUN_020129B4
+.extern FUN_020129C8
+.extern FUN_020129D8
+.extern FUN_02012A00
+.extern FUN_02012A30
+.extern FUN_02012AC4
+.extern FUN_02012B00
+.extern FUN_02012B20
+.extern FUN_02012B30
+.extern FUN_02012B68
.extern FUN_02012CC8
.extern FUN_02012CDC
.extern FUN_02012DE4
+.extern FUN_02012EAC
.extern FUN_0201318C
.extern FUN_02013194
.extern FUN_0201327C
.extern FUN_020132BC
+.extern FUN_02013348
.extern FUN_02013364
.extern FUN_02013388
.extern FUN_020133AC
.extern FUN_020133C8
+.extern FUN_020133DC
.extern FUN_020133E8
+.extern FUN_020133EC
+.extern FUN_020133FC
+.extern FUN_0201341C
+.extern FUN_02013428
.extern FUN_0201343C
.extern FUN_02013440
+.extern FUN_02013448
+.extern FUN_02013450
+.extern FUN_02013514
+.extern FUN_02013530
+.extern FUN_02013548
+.extern FUN_0201357C
+.extern FUN_02013594
+.extern FUN_020135B0
+.extern FUN_020135C4
+.extern FUN_020135E0
+.extern FUN_020135F4
+.extern FUN_02013610
+.extern FUN_02013628
+.extern FUN_0201365C
+.extern FUN_02013674
.extern FUN_02013690
.extern FUN_020136C0
.extern FUN_020136E0
.extern FUN_020136F8
+.extern FUN_02013724
.extern FUN_0201373C
.extern FUN_02013754
+.extern FUN_020137D4
+.extern FUN_02013840
.extern FUN_0201385C
+.extern FUN_02013870
.extern FUN_02013918
.extern FUN_02013920
.extern FUN_02013924
.extern FUN_02013928
.extern FUN_02013960
+.extern FUN_02013974
+.extern FUN_02013980
+.extern FUN_02013998
+.extern FUN_020139B0
.extern FUN_020139D8
.extern FUN_02013A10
.extern FUN_02013A30
+.extern FUN_02013A58
.extern FUN_02013A9C
.extern FUN_02013B5C
.extern FUN_02013B68
@@ -412,9 +699,42 @@ .extern FUN_02013BE4
.extern FUN_02013C0C
.extern FUN_02013C18
+.extern FUN_02013C28
+.extern FUN_02013C6C
+.extern FUN_02013CD4
+.extern FUN_02013D18
+.extern FUN_02013D5C
+.extern FUN_02013D98
+.extern FUN_02013DD4
+.extern FUN_02013DEC
+.extern FUN_02013E14
+.extern FUN_02013E44
+.extern FUN_02013E5C
+.extern FUN_02013E84
+.extern FUN_02013EA8
+.extern FUN_02013EB0
+.extern FUN_02013EC4
+.extern FUN_02013ECC
+.extern FUN_02013ED8
+.extern FUN_02013EE0
+.extern FUN_02013EF0
+.extern FUN_02013EFC
+.extern FUN_02013F00
+.extern FUN_02013F04
+.extern FUN_02013F0C
+.extern FUN_02013F2C
.extern FUN_020142EC
.extern FUN_020143A8
.extern FUN_020143D0
+.extern FUN_02014518
+.extern FUN_02014564
+.extern FUN_02014588
+.extern FUN_02014590
+.extern FUN_020145A8
+.extern FUN_020145C8
+.extern FUN_02014630
+.extern FUN_0201466C
+.extern FUN_020146C4
.extern FUN_02014BF4
.extern FUN_02014C28
.extern FUN_02014C3C
@@ -422,17 +742,25 @@ .extern FUN_02014D7C
.extern FUN_02014D9C
.extern FUN_02015CF8
+.extern FUN_02015D88
.extern FUN_02015E30
+.extern FUN_02015E3C
.extern FUN_02015E60
.extern FUN_02015EF4
.extern FUN_02015F10
.extern FUN_02015F1C
.extern FUN_02015F34
.extern FUN_020161A4
+.extern FUN_020162FC
+.extern FUN_02016324
.extern FUN_020163BC
.extern FUN_02016438
+.extern FUN_02016444
+.extern FUN_02016454
.extern FUN_02016464
.extern FUN_0201669C
+.extern FUN_020166A8
+.extern FUN_020166B8
.extern FUN_020166C8
.extern FUN_0201681C
.extern FUN_02016828
@@ -442,44 +770,62 @@ .extern FUN_02016A18
.extern FUN_02016A8C
.extern FUN_02016AF8
+.extern FUN_02016B20
+.extern FUN_02016B44
+.extern FUN_02016B90
.extern FUN_02016B94
.extern FUN_02016BBC
+.extern FUN_02016BF4
.extern FUN_02016C18
+.extern FUN_020170F4
.extern FUN_020178A0
.extern FUN_020178BC
.extern FUN_0201797C
.extern FUN_020179E0
.extern FUN_02017B48
.extern FUN_02017B54
+.extern FUN_02017B60
+.extern FUN_02017BD0
.extern FUN_02017CD0
.extern FUN_02017CE8
.extern FUN_02017DFC
.extern FUN_02017E14
.extern FUN_02017F18
+.extern FUN_02017F48
.extern FUN_02017FB4
.extern FUN_02017FE4
.extern FUN_02018148
.extern FUN_02018170
+.extern FUN_020181EC
.extern FUN_02018540
.extern FUN_020186B4
.extern FUN_02018744
+.extern FUN_02018768
+.extern FUN_0201878C
+.extern FUN_020187B0
.extern FUN_0201886C
+.extern FUN_02018878
.extern FUN_02018884
+.extern FUN_02018F4C
.extern FUN_02018FF4
.extern FUN_0201901C
.extern FUN_02019048
.extern FUN_02019064
+.extern FUN_020190EC
.extern FUN_02019150
.extern FUN_02019178
.extern FUN_020191A4
.extern FUN_020191D0
.extern FUN_02019220
.extern FUN_02019270
+.extern FUN_0201928C
+.extern FUN_020192B8
.extern FUN_02019548
.extern FUN_02019570
.extern FUN_0201958C
.extern FUN_02019620
.extern FUN_02019658
+.extern FUN_02019684
.extern FUN_020196F4
.extern FUN_0201974C
.extern FUN_0201A8C8
@@ -488,14 +834,33 @@ .extern FUN_0201AB10
.extern FUN_0201AB14
.extern FUN_0201AB18
+.extern FUN_0201AB1C
+.extern FUN_0201AB20
+.extern FUN_0201AB24
+.extern FUN_0201AB28
+.extern FUN_0201AB44
.extern FUN_0201AB60
.extern FUN_0201AC68
.extern FUN_0201AEE4
+.extern FUN_0201AF08
+.extern FUN_0201AF50
.extern FUN_0201AFBC
+.extern FUN_0201B21C
.extern FUN_0201B234
+.extern FUN_0201B254
+.extern FUN_0201B26C
+.extern FUN_0201B2A8
+.extern FUN_0201B2EC
+.extern FUN_0201B398
+.extern FUN_0201B3A8
+.extern FUN_0201B3C4
+.extern FUN_0201B578
+.extern FUN_0201B580
.extern FUN_0201B5CC
+.extern FUN_0201B60C
.extern FUN_0201B6C4
.extern FUN_0201B6C8
+.extern FUN_0201B6CC
.extern FUN_0201B6D0
.extern FUN_0201B76C
.extern FUN_0201B7DC
@@ -503,13 +868,19 @@ .extern FUN_0201B8E0
.extern FUN_0201B914
.extern FUN_0201B93C
+.extern FUN_0201B954
.extern FUN_0201B970
+.extern FUN_0201B988
+.extern FUN_0201B9A0
+.extern FUN_0201B9B8
.extern FUN_0201B9D4
.extern FUN_0201B9E0
.extern FUN_0201B9EC
.extern FUN_0201BA10
.extern FUN_0201BA1C
.extern FUN_0201BA60
+.extern FUN_0201BBD0
+.extern FUN_0201BC84
.extern FUN_0201BCBC
.extern FUN_0201BD5C
.extern FUN_0201BD70
@@ -521,68 +892,189 @@ .extern FUN_0201C1EC
.extern FUN_0201C24C
.extern FUN_0201C29C
+.extern FUN_0201C2C8
.extern FUN_0201C30C
+.extern FUN_0201C328
+.extern FUN_0201C348
+.extern FUN_0201C350
+.extern FUN_0201C50C
+.extern FUN_0201C578
+.extern FUN_0201C5FC
.extern FUN_0201C620
+.extern FUN_0201C62C
.extern FUN_0201C638
+.extern FUN_0201C6C8
+.extern FUN_0201C70C
+.extern FUN_0201C78C
+.extern FUN_0201C7A0
+.extern FUN_0201C7A8
+.extern FUN_0201C878
+.extern FUN_0201CAA8
+.extern FUN_0201CB20
+.extern FUN_0201CB7C
+.extern FUN_0201CBEC
.extern FUN_0201CC08
.extern FUN_0201CC24
.extern FUN_0201CD04
+.extern FUN_0201CD38
.extern FUN_0201CDD0
.extern FUN_0201CE04
.extern FUN_0201D040
+.extern FUN_0201D060
.extern FUN_0201D12C
.extern FUN_0201D168
+.extern FUN_0201D2AC
+.extern FUN_0201D324
+.extern FUN_0201D568
+.extern FUN_0201D5E8
+.extern FUN_0201D658
+.extern FUN_0201D674
.extern FUN_0201E00C
.extern FUN_0201E08C
.extern FUN_0201E0BC
+.extern FUN_0201E1B4
+.extern FUN_0201E1C8
.extern FUN_0201E28C
.extern FUN_0201E66C
.extern FUN_0201E6D8
.extern FUN_0201E6E4
+.extern FUN_0201E720
.extern FUN_0201E740
.extern FUN_0201E74C
.extern FUN_0201E788
.extern FUN_0201E7A0
+.extern FUN_0201E7CC
+.extern FUN_0201EABC
+.extern FUN_0201EB48
.extern FUN_0201EB64
.extern FUN_0201EB70
+.extern FUN_0201EB78
.extern FUN_0201EB8C
+.extern FUN_0201EB98
.extern FUN_0201EBA4
.extern FUN_0201EC58
.extern FUN_0201EC68
.extern FUN_0201EC88
.extern FUN_0201EC94
+.extern FUN_0201ECA8
.extern FUN_0201ED10
+.extern FUN_0201ED5C
+.extern FUN_0201EE2C
.extern FUN_0201EEF0
+.extern FUN_0201EF2C
.extern FUN_0201EF70
.extern FUN_0201EF90
+.extern FUN_0201EFB4
.extern FUN_0201EFE0
.extern FUN_0201EFEC
+.extern FUN_0201F008
+.extern FUN_0201F010
+.extern FUN_0201F014
+.extern FUN_0201F02C
+.extern FUN_0201F03C
.extern FUN_0201F04C
+.extern FUN_0201F05C
+.extern FUN_0201F100
+.extern FUN_0201F140
+.extern FUN_0201F178
+.extern FUN_0201F1B4
+.extern FUN_0201F23C
+.extern FUN_0201F2C0
+.extern FUN_0201F2D8
+.extern FUN_0201F6E8
+.extern FUN_0201F744
+.extern FUN_0201F7A4
+.extern FUN_0201F7C8
+.extern FUN_0201F7E0
+.extern FUN_0201F7F0
+.extern FUN_0201F80C
+.extern FUN_0201F820
+.extern FUN_0201F830
+.extern FUN_0201F844
.extern FUN_0201F854
+.extern FUN_0201F86C
+.extern FUN_0201F880
+.extern FUN_0201F890
+.extern FUN_0201F8C0
+.extern FUN_0201F8E0
+.extern FUN_0201F8F0
+.extern FUN_0201FCB0
.extern FUN_0201FD58
+.extern FUN_0201FD98
+.extern FUN_0201FDB4
.extern FUN_0201FDEC
.extern FUN_0201FE94
+.extern FUN_0201FF84
.extern FUN_0201FFC8
.extern FUN_02020044
+.extern FUN_02020054
+.extern FUN_02020064
+.extern FUN_02020074
+.extern FUN_02020088
+.extern FUN_0202008C
.extern FUN_020200A0
.extern FUN_020200BC
+.extern FUN_020200D8
+.extern FUN_020200EC
.extern FUN_02020100
.extern FUN_0202011C
+.extern FUN_02020120
.extern FUN_02020128
.extern FUN_02020130
+.extern FUN_02020184
+.extern FUN_02020198
.extern FUN_020201DC
.extern FUN_020201E4
.extern FUN_02020208
.extern FUN_0202022C
+.extern FUN_02020238
+.extern FUN_02020240
.extern FUN_02020248
+.extern FUN_0202027C
+.extern FUN_020202A0
+.extern FUN_020202A8
+.extern FUN_020202DC
+.extern FUN_02020300
.extern FUN_02020310
+.extern FUN_0202032C
.extern FUN_02020334
+.extern FUN_02020350
.extern FUN_02020354
.extern FUN_02020388
.extern FUN_02020398
+.extern FUN_020203CC
.extern FUN_02020968
.extern FUN_02020988
+.extern FUN_020209A8
+.extern FUN_020209F4
+.extern FUN_02020A40
+.extern FUN_02020A6C
+.extern FUN_02020A98
+.extern FUN_02020AA4
+.extern FUN_02020AB0
+.extern FUN_02020ACC
+.extern FUN_02020AE8
.extern FUN_02020AFC
+.extern FUN_02020BF4
+.extern FUN_02020BFC
+.extern FUN_02020C14
+.extern FUN_02020C44
+.extern FUN_02020C90
+.extern FUN_02020CB0
+.extern FUN_02020CD4
+.extern FUN_02020E90
+.extern FUN_02020ED4
+.extern FUN_02020EF8
+.extern FUN_02020F54
+.extern FUN_02020FF0
+.extern FUN_02021050
+.extern FUN_020210AC
+.extern FUN_020210F0
+.extern FUN_02021158
+.extern FUN_020211AC
+.extern FUN_020211BC
+.extern FUN_020211CC
+.extern FUN_0202134C
.extern FUN_02021590
.extern FUN_020215C8
.extern FUN_020215E0
@@ -594,14 +1086,21 @@ .extern FUN_02021A20
.extern FUN_02021A4C
.extern FUN_02021A74
+.extern FUN_02021ACC
+.extern FUN_02021B04
+.extern FUN_02021C38
.extern FUN_02021CE0
.extern FUN_02021D3C
.extern FUN_02021D5C
.extern FUN_02021D9C
.extern FUN_02021E28
+.extern FUN_02021E8C
.extern FUN_02021EF0
.extern FUN_02021F2C
+.extern FUN_020220C4
.extern FUN_0202212C
+.extern FUN_02022144
+.extern FUN_0202227C
.extern FUN_02022294
.extern FUN_020222AC
.extern FUN_020222B4
@@ -614,8 +1113,10 @@ .extern FUN_02022310
.extern FUN_02022318
.extern FUN_020223BC
+.extern FUN_020224D8
.extern FUN_02022504
.extern FUN_02022510
+.extern FUN_0202251C
.extern FUN_02022528
.extern FUN_02022534
.extern FUN_02022540
@@ -623,46 +1124,64 @@ .extern FUN_020225F8
.extern FUN_02022610
.extern FUN_0202263C
+.extern FUN_020226FC
.extern FUN_02022720
.extern FUN_020227A0
+.extern FUN_020227DC
.extern FUN_020227FC
.extern FUN_02022800
.extern FUN_02022804
.extern FUN_0202280C
.extern FUN_0202282C
.extern FUN_02022830
+.extern FUN_02022840
+.extern FUN_02022854
.extern FUN_0202287C
.extern FUN_02023788
.extern FUN_02023794
+.extern FUN_020237A0
+.extern FUN_020237CC
+.extern FUN_020237FC
.extern FUN_02023818
.extern FUN_0202381C
+.extern FUN_02023820
.extern FUN_02023828
+.extern FUN_02023830
+.extern FUN_02023834
+.extern FUN_02023840
.extern FUN_02023874
.extern FUN_02023884
+.extern FUN_020238A4
.extern FUN_020238F4
.extern FUN_0202390C
.extern FUN_02023918
.extern FUN_02023924
.extern FUN_02023928
.extern FUN_0202393C
+.extern FUN_02023948
.extern FUN_0202395C
.extern FUN_0202397C
.extern FUN_0202398C
.extern FUN_02023990
.extern FUN_020239A0
+.extern FUN_020239B8
.extern FUN_020239BC
.extern FUN_020239C0
.extern FUN_020239C8
.extern FUN_020239CC
.extern FUN_020239D0
.extern FUN_020239E4
+.extern FUN_020239F4
.extern FUN_02023A10
+.extern FUN_02023A14
.extern FUN_02023A28
.extern FUN_02023A2C
.extern FUN_02023A30
.extern FUN_02023A54
.extern FUN_02023A68
+.extern FUN_02023A6C
.extern FUN_02023A70
+.extern FUN_02023A74
.extern FUN_02023A78
.extern FUN_02023A88
.extern FUN_02023A90
@@ -670,8 +1189,24 @@ .extern FUN_02023AA4
.extern FUN_02023AF4
.extern FUN_02023B0C
+.extern FUN_02023BA4
.extern FUN_02023BD4
+.extern FUN_02023BE8
+.extern FUN_02023C04
+.extern FUN_02023C74
+.extern FUN_02023C7C
+.extern FUN_02023C80
+.extern FUN_02023C84
+.extern FUN_02023C8C
.extern FUN_02023C90
+.extern FUN_02023C98
+.extern FUN_02023CA0
+.extern FUN_02023CA8
+.extern FUN_02023CB8
+.extern FUN_02023CC0
+.extern FUN_02023CC8
+.extern FUN_02023CF0
+.extern FUN_02023D3C
.extern FUN_02023D58
.extern FUN_02023D6C
.extern FUN_02023D80
@@ -684,27 +1219,59 @@ .extern FUN_02024504
.extern FUN_02024518
.extern FUN_02024550
+.extern FUN_02024594
.extern FUN_020245F0
+.extern FUN_02024648
+.extern FUN_02024674
+.extern FUN_020246DC
.extern FUN_0202471C
+.extern FUN_02024748
+.extern FUN_020247A4
+.extern FUN_020247C8
+.extern FUN_02024828
+.extern FUN_0202484C
+.extern FUN_0202489C
+.extern FUN_020248BC
+.extern FUN_0202490C
+.extern FUN_02024930
+.extern FUN_02024970
.extern FUN_0202498C
.extern FUN_02024AF0
.extern FUN_02024C84
.extern FUN_02024CA4
+.extern FUN_02024CC4
.extern FUN_02024CE0
+.extern FUN_02024D00
.extern FUN_02024D4C
+.extern FUN_02024D58
.extern FUN_02024D64
.extern FUN_02024D80
.extern FUN_02024DA0
+.extern FUN_02024DAC
.extern FUN_02024EB4
.extern FUN_02024EC0
.extern FUN_02024ECC
.extern FUN_02024ED8
.extern FUN_02024EE8
+.extern FUN_02024EF4
.extern FUN_02024F0C
.extern FUN_02024F30
.extern FUN_02024F44
+.extern FUN_02024F9C
+.extern FUN_02024FD8
+.extern FUN_02024FE0
.extern FUN_02024FF4
+.extern FUN_02025010
+.extern FUN_02025018
+.extern FUN_0202502C
+.extern FUN_02025034
+.extern FUN_02025048
+.extern FUN_02025050
+.extern FUN_02025064
+.extern FUN_0202506C
.extern FUN_02025084
+.extern FUN_0202508C
+.extern FUN_020250C4
.extern FUN_02025128
.extern FUN_02025238
.extern FUN_02025244
@@ -712,6 +1279,7 @@ .extern FUN_02025268
.extern FUN_02025274
.extern FUN_020252AC
+.extern FUN_020252B8
.extern FUN_020252C4
.extern FUN_020252D0
.extern FUN_020252DC
@@ -723,6 +1291,8 @@ .extern FUN_020254A0
.extern FUN_020254B4
.extern FUN_020254C0
+.extern FUN_020254F0
+.extern FUN_020254F8
.extern FUN_02025520
.extern FUN_02025614
.extern FUN_02025658
@@ -747,29 +1317,116 @@ .extern FUN_0202589C
.extern FUN_020258B0
.extern FUN_020258D4
+.extern FUN_0202595C
+.extern FUN_02025960
+.extern FUN_02025964
.extern FUN_02025A60
.extern FUN_02025B60
.extern FUN_02025B94
.extern FUN_02025BE8
+.extern FUN_02025C00
+.extern FUN_02025C18
.extern FUN_02025C30
+.extern FUN_02025C38
.extern FUN_02025C40
+.extern FUN_02025CD8
+.extern FUN_02025D40
+.extern FUN_02025D48
.extern FUN_02025D6C
.extern FUN_02025D94
.extern FUN_02025DB0
+.extern FUN_02025DC8
+.extern FUN_02025DD4
+.extern FUN_02025E20
+.extern FUN_02025EDC
+.extern FUN_02025F0C
+.extern FUN_02025F30
+.extern FUN_02025F44
+.extern FUN_02025F80
+.extern FUN_02025F98
+.extern FUN_02025FA4
+.extern FUN_02025FD8
+.extern FUN_02025FFC
+.extern FUN_02026050
+.extern FUN_02026068
+.extern FUN_02026074
+.extern FUN_02026080
.extern FUN_020260C4
+.extern FUN_020260EC
+.extern FUN_0202616C
+.extern FUN_02026188
+.extern FUN_02026194
+.extern FUN_020261C8
+.extern FUN_0202623C
+.extern FUN_02026258
+.extern FUN_02026264
.extern FUN_02026298
+.extern FUN_0202630C
+.extern FUN_02026354
+.extern FUN_02026370
+.extern FUN_0202639C
+.extern FUN_020263C8
+.extern FUN_020263F4
+.extern FUN_02026444
+.extern FUN_02026450
+.extern FUN_02026470
+.extern FUN_02026490
+.extern FUN_0202649C
+.extern FUN_020264F0
+.extern FUN_020264FC
+.extern FUN_0202651C
+.extern FUN_0202653C
+.extern FUN_02026548
+.extern FUN_02026554
+.extern FUN_020265B8
+.extern FUN_020265E0
+.extern FUN_02026600
+.extern FUN_02026620
+.extern FUN_02026634
+.extern FUN_02026648
+.extern FUN_02026654
+.extern FUN_02026664
+.extern FUN_02026688
.extern FUN_020266B0
.extern FUN_020266C8
+.extern FUN_020266D4
+.extern FUN_020266E0
+.extern FUN_02026714
+.extern FUN_0202671C
+.extern FUN_02026778
+.extern FUN_020267C4
+.extern FUN_02026810
+.extern FUN_02026840
+.extern FUN_02026874
+.extern FUN_020268A0
.extern FUN_020268D4
+.extern FUN_020268E8
.extern FUN_02026908
+.extern FUN_02026940
.extern FUN_02026970
.extern FUN_020269A0
.extern FUN_020269CC
.extern FUN_020269D4
+.extern FUN_02026A0C
+.extern FUN_02026A58
+.extern FUN_02026A9C
+.extern FUN_02026AE8
+.extern FUN_02026B20
+.extern FUN_02026B58
+.extern FUN_02026B90
.extern FUN_02026BC8
.extern FUN_02026C00
+.extern FUN_02026C38
+.extern FUN_02026C68
+.extern FUN_02026C88
+.extern FUN_02026C90
+.extern FUN_02026C98
+.extern FUN_02026CA0
+.extern FUN_02026CA8
.extern FUN_02026CB4
+.extern FUN_02026CC0
.extern FUN_02026CC4
+.extern FUN_02026FE0
.extern FUN_02026FE4
.extern FUN_02026FE8
.extern FUN_02027008
@@ -780,27 +1437,61 @@ .extern FUN_020270D8
.extern FUN_02027100
.extern FUN_02027114
+.extern FUN_0202714C
.extern FUN_02027168
.extern FUN_02027184
.extern FUN_020271A4
.extern FUN_02027210
.extern FUN_02027264
+.extern FUN_020272D4
+.extern FUN_02027310
+.extern FUN_02027348
+.extern FUN_02027380
+.extern FUN_02027448
.extern FUN_02027478
+.extern FUN_020274F0
+.extern FUN_02027528
+.extern FUN_02027564
+.extern FUN_02027590
.extern FUN_020275D8
.extern FUN_02027608
.extern FUN_0202763C
+.extern FUN_0202766C
.extern FUN_0202769C
.extern FUN_020276A8
.extern FUN_02027710
.extern FUN_02027740
+.extern FUN_02027778
+.extern FUN_020277B4
.extern FUN_0202787C
.extern FUN_020278AC
.extern FUN_020278DC
.extern FUN_02027914
.extern FUN_02027964
+.extern FUN_02027A14
+.extern FUN_02027A58
+.extern FUN_02027A94
+.extern FUN_02027AC4
+.extern FUN_02027B0C
+.extern FUN_02027B44
+.extern FUN_02027B78
+.extern FUN_02027BDC
+.extern FUN_02027C28
+.extern FUN_02027C58
+.extern FUN_02027CA0
+.extern FUN_02027CA8
+.extern FUN_02027CB0
+.extern FUN_02027CB8
+.extern FUN_02027CF8
+.extern FUN_02027CFC
+.extern FUN_02027D00
+.extern FUN_02027D04
+.extern FUN_02027D7C
.extern FUN_02027E24
+.extern FUN_02027E30
.extern FUN_02027E34
.extern FUN_02027E5C
+.extern FUN_02027E94
.extern FUN_02027F04
.extern FUN_02027FBC
.extern FUN_02027FDC
@@ -812,9 +1503,19 @@ .extern FUN_02028174
.extern FUN_02028190
.extern FUN_020281B8
+.extern FUN_020281E8
.extern FUN_02028228
+.extern FUN_0202822C
+.extern FUN_020282E8
.extern FUN_0202838C
+.extern FUN_020283A4
+.extern FUN_020283C0
+.extern FUN_020283E8
+.extern FUN_0202842C
.extern FUN_02028448
+.extern FUN_02028468
+.extern FUN_0202858C
+.extern FUN_020285D0
.extern FUN_02028664
.extern FUN_020286EC
.extern FUN_02028700
@@ -828,6 +1529,8 @@ .extern FUN_0202881C
.extern FUN_02028828
.extern FUN_02028840
+.extern FUN_0202888C
+.extern FUN_020288AC
.extern FUN_02028930
.extern FUN_02028934
.extern FUN_02028954
@@ -838,15 +1541,35 @@ .extern FUN_02028AD4
.extern FUN_02028FA4
.extern FUN_02029048
+.extern FUN_02029054
+.extern FUN_02029060
+.extern FUN_0202906C
+.extern FUN_02029078
+.extern FUN_02029084
.extern FUN_02029120
.extern FUN_0202912C
.extern FUN_02029138
.extern FUN_0202914C
+.extern FUN_02029160
+.extern FUN_0202916C
.extern FUN_0202918C
.extern FUN_0202920C
+.extern FUN_0202930C
+.extern FUN_0202934C
+.extern FUN_0202938C
+.extern FUN_020293EC
.extern FUN_0202942C
+.extern FUN_0202945C
+.extern FUN_020294A8
+.extern FUN_020294B4
+.extern FUN_020294F4
.extern FUN_02029500
+.extern FUN_02029520
+.extern FUN_0202952C
+.extern FUN_02029578
+.extern FUN_02029584
.extern FUN_02029880
+.extern FUN_02029960
.extern FUN_020299C0
.extern FUN_020299DC
.extern FUN_02029ABC
@@ -855,16 +1578,26 @@ .extern FUN_02029AD0
.extern FUN_02029AD8
.extern FUN_02029AFC
+.extern FUN_02029B08
.extern FUN_02029B38
.extern FUN_02029B3C
+.extern FUN_02029B40
+.extern FUN_02029C00
.extern FUN_02029C08
.extern FUN_02029C74
.extern FUN_02029C80
.extern FUN_02029C8C
+.extern FUN_02029CA4
.extern FUN_02029CC8
.extern FUN_02029CE0
+.extern FUN_02029CE4
+.extern FUN_02029CE8
.extern FUN_02029CEC
+.extern FUN_02029CF4
+.extern FUN_02029CF8
+.extern FUN_02029D40
.extern FUN_02029D44
+.extern FUN_02029D84
.extern FUN_02029DD4
.extern FUN_02029E0C
.extern FUN_02029E2C
@@ -874,6 +1607,7 @@ .extern FUN_02029EE4
.extern FUN_02029EF8
.extern FUN_02029F04
+.extern FUN_02029F08
.extern FUN_02029F10
.extern FUN_02029F14
.extern FUN_02029F4C
@@ -886,19 +1620,36 @@ .extern FUN_0202A150
.extern FUN_0202A170
.extern FUN_0202A1B8
+.extern FUN_0202A1E4
.extern FUN_0202A240
.extern FUN_0202A2C4
+.extern FUN_0202A36C
+.extern FUN_0202A398
+.extern FUN_0202A3A0
.extern FUN_0202A3B4
+.extern FUN_0202A40C
+.extern FUN_0202A444
+.extern FUN_0202A474
.extern FUN_0202A498
+.extern FUN_0202A4B8
.extern FUN_0202A520
+.extern FUN_0202A524
.extern FUN_0202A538
.extern FUN_0202A578
.extern FUN_0202A5CC
.extern FUN_0202A5D0
.extern FUN_0202A5D4
.extern FUN_0202A5F4
+.extern FUN_0202A60C
+.extern FUN_0202A6B4
+.extern FUN_0202A744
.extern FUN_0202A74C
+.extern FUN_0202A754
+.extern FUN_0202A784
+.extern FUN_0202A798
+.extern FUN_0202A838
.extern FUN_0202A864
+.extern FUN_0202A878
.extern FUN_0202A8CC
.extern FUN_0202A8D8
.extern FUN_0202A8E4
@@ -907,6 +1658,10 @@ .extern FUN_0202A990
.extern FUN_0202A9AC
.extern FUN_0202A9B0
+.extern FUN_0202A9BC
+.extern FUN_0202A9C0
+.extern FUN_0202A9C4
+.extern FUN_0202A9C8
.extern FUN_0202A9D0
.extern FUN_0202AA00
.extern FUN_0202AA14
@@ -915,10 +1670,38 @@ .extern FUN_0202AA40
.extern FUN_0202AA58
.extern FUN_0202AA74
+.extern FUN_0202AA90
.extern FUN_0202AAA0
+.extern FUN_0202AAB8
.extern FUN_0202AAFC
.extern FUN_0202AB40
+.extern FUN_0202AB4C
+.extern FUN_0202AB54
.extern FUN_0202AB68
+.extern FUN_0202AB80
+.extern FUN_0202AB8C
+.extern FUN_0202ABA0
+.extern FUN_0202ABDC
+.extern FUN_0202ABE4
+.extern FUN_0202ABEC
+.extern FUN_0202ABF8
+.extern FUN_0202AC08
+.extern FUN_0202AC10
+.extern FUN_0202AC18
+.extern FUN_0202AC28
+.extern FUN_0202AC64
+.extern FUN_0202AC98
+.extern FUN_0202AD08
+.extern FUN_0202ADC8
+.extern FUN_0202ADF0
+.extern FUN_0202AE0C
+.extern FUN_0202AE4C
+.extern FUN_0202AE70
+.extern FUN_0202AE90
+.extern FUN_0202AEF4
+.extern FUN_0202AF24
+.extern FUN_0202AF50
+.extern FUN_0202AF60
.extern FUN_0202AF70
.extern FUN_0202AF88
.extern FUN_0202AF9C
@@ -927,10 +1710,33 @@ .extern FUN_0202B020
.extern FUN_0202B03C
.extern FUN_0202B050
+.extern FUN_0202B1F0
.extern FUN_0202B21C
+.extern FUN_0202B250
+.extern FUN_0202B29C
+.extern FUN_0202B31C
+.extern FUN_0202B390
.extern FUN_0202B3C4
+.extern FUN_0202B3F8
+.extern FUN_0202B40C
+.extern FUN_0202B410
+.extern FUN_0202B414
+.extern FUN_0202B440
+.extern FUN_0202B458
.extern FUN_0202B4B0
+.extern FUN_0202B534
+.extern FUN_0202B538
+.extern FUN_0202B53C
+.extern FUN_0202B540
+.extern FUN_0202B544
+.extern FUN_0202B5C8
+.extern FUN_0202B5CC
+.extern FUN_0202B5D8
+.extern FUN_0202B678
.extern FUN_0202B710
+.extern FUN_0202B7C8
+.extern FUN_0202B7F4
+.extern FUN_0202B820
.extern FUN_0202B838
.extern FUN_0202B844
.extern FUN_0202B850
@@ -940,40 +1746,80 @@ .extern FUN_0202B87C
.extern FUN_0202B8E4
.extern FUN_0202B8F0
+.extern FUN_0202B9EC
+.extern FUN_0202BCF4
.extern FUN_0202BD6C
.extern FUN_0202BDF0
.extern FUN_0202BE6C
.extern FUN_0202BEDC
+.extern FUN_0202BF7C
+.extern FUN_0202BF90
.extern FUN_0202BFD8
.extern FUN_0202C000
+.extern FUN_0202C028
+.extern FUN_0202C060
+.extern FUN_0202C094
+.extern FUN_0202C0B8
.extern FUN_0202C108
+.extern FUN_0202C12C
.extern FUN_0202C144
.extern FUN_0202CB8C
+.extern FUN_0202D31C
+.extern FUN_0202D344
+.extern FUN_0202D380
.extern FUN_0202D8B0
.extern FUN_0202D8D0
+.extern FUN_0202DB14
+.extern FUN_0202DBA4
.extern FUN_0202DBE0
.extern FUN_0202DCF8
.extern FUN_0202DDE8
.extern FUN_0202DE78
+.extern FUN_0202DEA4
+.extern FUN_0202DEC0
+.extern FUN_0202DEE0
+.extern FUN_0202DEF4
+.extern FUN_0202DF08
+.extern FUN_0202DF28
.extern FUN_0202DFA4
.extern FUN_0202E020
.extern FUN_0202E044
+.extern FUN_0202E068
+.extern FUN_0202E08C
.extern FUN_0202E25C
+.extern FUN_0202E288
+.extern FUN_0202E49C
.extern FUN_0202E4C8
+.extern FUN_0202E4F0
+.extern FUN_0202E810
+.extern FUN_0202E844
+.extern FUN_0202E878
+.extern FUN_0202E88C
+.extern FUN_0202E9AC
.extern FUN_0202EDD8
.extern FUN_0202EDF8
.extern FUN_0202EE0C
.extern FUN_0202EE24
.extern FUN_0202EE44
+.extern FUN_0202EE84
+.extern FUN_0202EEB0
.extern FUN_0202EF18
+.extern FUN_0202EF70
.extern FUN_0202EF84
.extern FUN_0202F078
.extern FUN_0202F094
.extern FUN_0202F0B8
+.extern FUN_0202F0DC
+.extern FUN_0202F10C
+.extern FUN_0202F124
.extern FUN_0202FA10
.extern FUN_0202FA1C
.extern FUN_0202FA48
.extern FUN_0202FB80
+.extern FUN_020307A8
+.extern FUN_020307BC
+.extern FUN_020307D0
+.extern FUN_0203086C
.extern FUN_02030A78
.extern FUN_02030ADC
.extern FUN_02030B3C
@@ -989,21 +1835,32 @@ .extern FUN_02030FA8
.extern FUN_02030FC8
.extern FUN_02030FE0
+.extern FUN_02031000
+.extern FUN_0203105C
.extern FUN_02031190
.extern FUN_020311D0
.extern FUN_020311DC
.extern FUN_020311E8
.extern FUN_020311F0
.extern FUN_02031248
+.extern FUN_02031258
.extern FUN_02031280
.extern FUN_020312BC
+.extern FUN_02031354
+.extern FUN_02031370
+.extern FUN_02031388
.extern FUN_020313B4
+.extern FUN_020313CC
.extern FUN_020313EC
.extern FUN_02031400
.extern FUN_02031438
+.extern FUN_020314E8
.extern FUN_02031588
.extern FUN_020315D8
.extern FUN_020315FC
+.extern FUN_0203162C
+.extern FUN_02031640
+.extern FUN_02031668
.extern FUN_0203168C
.extern FUN_020316AC
.extern FUN_020316E0
@@ -1011,6 +1868,7 @@ .extern FUN_02031824
.extern FUN_02031860
.extern FUN_02031880
+.extern FUN_020318A4
.extern FUN_020318B4
.extern FUN_020318C4
.extern FUN_02031914
@@ -1021,6 +1879,7 @@ .extern FUN_020319D8
.extern FUN_020319F4
.extern FUN_02031A08
+.extern FUN_02031A24
.extern FUN_02031A2C
.extern FUN_02031A7C
.extern FUN_02031AC8
@@ -1029,26 +1888,65 @@ .extern FUN_02031B50
.extern FUN_02031BD0
.extern FUN_02031BF4
+.extern FUN_02031C10
.extern FUN_02031C2C
.extern FUN_02031C54
.extern FUN_02031C64
+.extern FUN_02031C74
+.extern FUN_02031CA8
.extern FUN_02032888
.extern FUN_020328C0
+.extern FUN_020328E4
.extern FUN_020328F4
.extern FUN_02032B6C
+.extern FUN_02032BD0
+.extern FUN_02032C0C
+.extern FUN_02032C28
+.extern FUN_02032D44
+.extern FUN_02032D80
+.extern FUN_02032D9C
.extern FUN_02032DAC
+.extern FUN_02032FDC
+.extern FUN_0203300C
+.extern FUN_02033128
+.extern FUN_02033138
+.extern FUN_02033154
+.extern FUN_02033180
+.extern FUN_020331C4
+.extern FUN_020331E8
+.extern FUN_02033208
+.extern FUN_0203323C
+.extern FUN_02033250
+.extern FUN_02033288
+.extern FUN_020332DC
+.extern FUN_02033310
+.extern FUN_02033364
+.extern FUN_0203346C
+.extern FUN_020334DC
.extern FUN_020334E8
.extern FUN_02033534
.extern FUN_02033564
.extern FUN_02033578
+.extern FUN_02033590
+.extern FUN_020335A4
.extern FUN_020335B8
+.extern FUN_020335E0
.extern FUN_020335F0
.extern FUN_02033678
.extern FUN_020336A0
+.extern FUN_020336C0
+.extern FUN_020336C8
+.extern FUN_02033778
+.extern FUN_020337C8
.extern FUN_020337E8
.extern FUN_0203384C
+.extern FUN_02033918
+.extern FUN_020339B4
+.extern FUN_02033A70
.extern FUN_02033E74
.extern FUN_02033ED0
+.extern FUN_02033EEC
+.extern FUN_02033F04
.extern FUN_02033F20
.extern FUN_02033F70
.extern FUN_02034188
@@ -1057,12 +1955,23 @@ .extern FUN_020344FC
.extern FUN_0203450C
.extern FUN_0203451C
+.extern FUN_02034554
+.extern FUN_02034574
+.extern FUN_02034578
+.extern FUN_020345A8
+.extern FUN_020345DC
+.extern FUN_020345F0
+.extern FUN_020345FC
+.extern FUN_02034660
.extern FUN_02034678
.extern FUN_020346CC
+.extern FUN_02034724
+.extern FUN_02034738
.extern FUN_02034774
.extern FUN_02034788
.extern FUN_020347B0
.extern FUN_020347C4
+.extern FUN_020347D8
.extern FUN_02034824
.extern FUN_0203484C
.extern FUN_02034860
@@ -1074,7 +1983,10 @@ .extern FUN_02034930
.extern FUN_02034944
.extern FUN_02034964
+.extern FUN_02034984
.extern FUN_02034998
+.extern FUN_020349AC
+.extern FUN_020349B8
.extern FUN_020349D8
.extern FUN_020349E4
.extern FUN_02034A04
@@ -1083,6 +1995,9 @@ .extern FUN_02034AF0
.extern FUN_02034AF8
.extern FUN_02034B00
+.extern FUN_02034B18
+.extern FUN_02034B54
+.extern FUN_02034B5C
.extern FUN_02034B64
.extern FUN_02034B6C
.extern FUN_02034B74
@@ -1091,8 +2006,11 @@ .extern FUN_02034C0C
.extern FUN_02034C24
.extern FUN_02034C34
+.extern FUN_02034CB4
+.extern FUN_02034CE0
.extern FUN_02034D2C
.extern FUN_02034D44
+.extern FUN_02034DC0
.extern FUN_02034DC4
.extern FUN_02034DC8
.extern FUN_02034DCC
@@ -1109,6 +2027,7 @@ .extern FUN_02034E20
.extern FUN_02034E24
.extern FUN_02034E28
+.extern FUN_02034E2C
.extern FUN_02034E30
.extern FUN_02034E48
.extern FUN_02034E60
@@ -1122,6 +2041,9 @@ .extern FUN_02034FC0
.extern FUN_02034FE4
.extern FUN_02035068
+.extern FUN_02035080
+.extern FUN_02035118
+.extern FUN_0203515C
.extern FUN_020351A0
.extern FUN_02035D04
.extern FUN_02035E50
@@ -1133,7 +2055,11 @@ .extern FUN_02036D94
.extern FUN_02036DD4
.extern FUN_02037024
-.extern LoadOverlay_MODULE_05
+.extern FUN_02037090
+.extern FUN_020370BC
+.extern FUN_020371D0
+.extern FUN_02037230
+.extern FUN_02037264
.extern FUN_02037394
.extern FUN_0203739C
.extern FUN_020373AC
@@ -1141,11 +2067,14 @@ .extern FUN_020373D4
.extern FUN_02037760
.extern FUN_02037778
+.extern FUN_02037790
.extern FUN_020377A8
.extern FUN_020377AC
.extern FUN_020377B0
.extern FUN_020377C8
+.extern FUN_020377E0
.extern FUN_0203780C
+.extern FUN_0203781C
.extern FUN_0203789C
.extern FUN_020378FC
.extern FUN_02037944
@@ -1215,6 +2144,7 @@ .extern FUN_0203965C
.extern FUN_02039678
.extern FUN_02039694
+.extern FUN_02039754
.extern FUN_02039874
.extern FUN_0203989C
.extern FUN_020399A0
@@ -1958,33 +2888,62 @@ .extern FUN_0204652C
.extern FUN_02046530
.extern FUN_02046534
+.extern FUN_02046948
+.extern FUN_020469B8
+.extern FUN_02046A20
.extern FUN_02046DB4
.extern FUN_02046E18
+.extern FUN_02046F70
.extern FUN_02046FA0
.extern FUN_020470AC
.extern FUN_020470E8
.extern FUN_02047174
+.extern FUN_020476CC
+.extern FUN_020477EC
+.extern FUN_02047964
+.extern FUN_020479FC
+.extern FUN_02047A78
+.extern FUN_02047BB0
+.extern FUN_020480AC
.extern FUN_020480B8
.extern FUN_020480C8
.extern FUN_020480D8
+.extern FUN_020480E4
.extern FUN_02048498
.extern FUN_02048694
+.extern FUN_020489DC
+.extern FUN_020489FC
.extern FUN_02048C58
.extern FUN_02048D90
.extern FUN_02048EC8
.extern FUN_02048FC8
.extern FUN_02049240
.extern FUN_02049274
+.extern FUN_02049494
+.extern FUN_02049718
+.extern FUN_02049824
+.extern FUN_02049CB0
+.extern FUN_02049D9C
.extern FUN_02049EA4
.extern FUN_02049F98
.extern FUN_02049FFC
.extern FUN_0204A048
.extern FUN_0204A0C8
.extern FUN_0204A120
+.extern FUN_0204A138
+.extern FUN_0204A1D8
.extern FUN_0204A20C
.extern FUN_0204A248
+.extern FUN_0204A29C
.extern FUN_0204A32C
+.extern FUN_0204A6B4
.extern FUN_0204A6E0
+.extern FUN_0204A840
+.extern FUN_0204A8C4
+.extern FUN_0204A94C
+.extern FUN_0204A9F0
+.extern FUN_0204AA5C
+.extern FUN_0204AAD4
.extern FUN_0204AB20
.extern FUN_0204AB58
.extern FUN_0204ABA8
@@ -1992,13 +2951,20 @@ .extern FUN_0204AD0C
.extern FUN_0204ADBC
.extern FUN_0204ADE0
+.extern FUN_0204AE5C
.extern FUN_0204AF3C
.extern FUN_0204AF84
+.extern FUN_0204B0F8
.extern FUN_0204B2A4
.extern FUN_0204B2B4
.extern FUN_0204B2C0
+.extern FUN_0204B2CC
.extern FUN_0204B2D8
+.extern FUN_0204B2E4
.extern FUN_0204B33C
+.extern FUN_0204B388
+.extern FUN_0204B3B8
+.extern FUN_0204B490
.extern FUN_0204B4FC
.extern FUN_0204B57C
.extern FUN_0204B5A8
@@ -2011,21 +2977,135 @@ .extern FUN_0204B9CC
.extern FUN_0204B9EC
.extern FUN_0204BA1C
+.extern FUN_0204BA68
+.extern FUN_0204BA90
.extern FUN_0204BAB0
.extern FUN_0204BAC4
.extern FUN_0204BAD4
.extern FUN_0204BAE4
+.extern FUN_0204BEB8
.extern FUN_0204BEC8
.extern FUN_0204BED0
.extern FUN_0204BED8
+.extern FUN_0204BF14
+.extern FUN_0204BF1C
+.extern FUN_0204BF44
+.extern FUN_0204BF58
+.extern FUN_0204BF84
+.extern FUN_0204BF88
+.extern FUN_0204BF94
+.extern FUN_0204BF9C
+.extern FUN_0204BFB0
+.extern FUN_0204BFF0
+.extern FUN_0204C02C
+.extern FUN_0204C064
+.extern FUN_0204C080
+.extern FUN_0204C0A4
+.extern FUN_0204C0CC
+.extern FUN_0204C0D4
+.extern FUN_0204C0E8
.extern FUN_0204C104
+.extern FUN_0204C158
+.extern FUN_0204C174
.extern FUN_0204C1A8
+.extern FUN_0204C1B4
+.extern FUN_0204C260
+.extern FUN_0204C29C
+.extern FUN_0204CA80
+.extern FUN_0204CA90
+.extern FUN_0204CAA0
+.extern FUN_0204CAB0
+.extern FUN_0204CAC0
+.extern FUN_0204CAD0
+.extern FUN_0204CAE0
+.extern FUN_0204CAF0
+.extern FUN_0204CB00
+.extern FUN_0204CB10
+.extern FUN_0204CB20
+.extern FUN_0204CC48
+.extern FUN_0204CC9C
+.extern FUN_0204CCE0
+.extern FUN_0204CDB4
+.extern FUN_0204CF60
+.extern FUN_0204D118
+.extern FUN_0204D168
+.extern FUN_0204D320
+.extern FUN_0204D610
.extern FUN_0204D6C0
+.extern FUN_0204D76C
+.extern FUN_0204D830
+.extern FUN_0204E178
+.extern FUN_0204E1E8
+.extern FUN_0204E200
+.extern FUN_0204E214
+.extern FUN_0204E254
.extern FUN_0204E2FC
+.extern FUN_0204E34C
+.extern FUN_0204E35C
+.extern FUN_0204E3A4
+.extern FUN_0204E3EC
+.extern FUN_0204E440
+.extern FUN_0204E494
+.extern FUN_0204E4B4
+.extern FUN_0204E4D4
+.extern FUN_0204E50C
+.extern FUN_0204E544
+.extern FUN_0204E598
+.extern FUN_0204E5EC
+.extern FUN_0204E60C
+.extern FUN_0204E62C
+.extern FUN_0204E664
+.extern FUN_0204E69C
+.extern FUN_0204E6CC
+.extern FUN_0204E6FC
+.extern FUN_0204E758
+.extern FUN_0204E778
+.extern FUN_0204E794
+.extern FUN_0204E7CC
+.extern FUN_0204E8B0
+.extern FUN_0204EAD8
+.extern FUN_0204EB14
+.extern FUN_0204EE9C
+.extern FUN_0204EEBC
+.extern FUN_0204F074
+.extern FUN_0204F08C
+.extern FUN_0204F0A8
+.extern FUN_0204F0C8
+.extern FUN_0204F1B0
+.extern FUN_0204F210
+.extern FUN_0204F610
+.extern FUN_0204F63C
+.extern FUN_0204F660
+.extern FUN_0204F678
+.extern FUN_0204F69C
+.extern FUN_0204F6B4
+.extern FUN_0204F6C8
.extern FUN_0204F6DC
+.extern FUN_0204F70C
+.extern FUN_0204F72C
+.extern FUN_0204F74C
+.extern FUN_0204F774
+.extern FUN_0204F7D4
+.extern FUN_0204F7E4
+.extern FUN_0204F7FC
+.extern FUN_0204F88C
+.extern FUN_0204FB14
+.extern FUN_0204FCF4
+.extern FUN_0204FD24
+.extern FUN_0204FD38
+.extern FUN_0204FDE4
+.extern FUN_0204FEB0
+.extern FUN_0204FEF0
+.extern FUN_0204FF30
+.extern FUN_0204FF4C
.extern FUN_0204FF5C
.extern FUN_02050024
.extern FUN_02050048
+.extern FUN_02050A68
+.extern FUN_02050DF0
+.extern FUN_02050E10
+.extern FUN_02050E2C
+.extern FUN_02052044
.extern FUN_020524CC
.extern FUN_02052544
.extern FUN_02052604
@@ -2041,19 +3121,75 @@ .extern FUN_02052B74
.extern FUN_02052C0C
.extern FUN_02052CD8
+.extern FUN_02052CF0
.extern FUN_02052D08
.extern FUN_02052DE8
.extern FUN_02052E10
.extern FUN_02052F74
+.extern FUN_02052F8C
.extern FUN_020534DC
.extern FUN_0205363C
.extern FUN_02053678
+.extern FUN_020536C8
.extern FUN_020536D0
+.extern FUN_02053708
+.extern FUN_02054590
.extern FUN_020545B8
.extern FUN_02054608
+.extern FUN_0205464C
.extern FUN_02054658
+.extern FUN_02054690
.extern FUN_020546C8
+.extern FUN_020546E0
+.extern FUN_02054744
+.extern FUN_0205478C
+.extern FUN_02054798
.extern FUN_020547A4
+.extern FUN_020547B0
+.extern FUN_020547BC
+.extern FUN_020547C8
+.extern FUN_020547D4
+.extern FUN_020547E0
+.extern FUN_020547EC
+.extern FUN_020547F8
+.extern FUN_02054804
+.extern FUN_02054810
+.extern FUN_0205481C
+.extern FUN_02054878
+.extern FUN_02054884
+.extern FUN_02054890
+.extern FUN_0205489C
+.extern FUN_020548A8
+.extern FUN_020548C0
+.extern FUN_020548CC
+.extern FUN_020548D8
+.extern FUN_020548E4
+.extern FUN_020548FC
+.extern FUN_02054908
+.extern FUN_02054914
+.extern FUN_02054920
+.extern FUN_0205492C
+.extern FUN_02054938
+.extern FUN_02054944
+.extern FUN_02054950
+.extern FUN_0205495C
+.extern FUN_02054968
+.extern FUN_02054984
+.extern FUN_020549A0
+.extern FUN_02054A0C
+.extern FUN_02054A18
+.extern FUN_02054A48
+.extern FUN_02054A54
+.extern FUN_02054AF0
+.extern FUN_02054AFC
+.extern FUN_02054B14
+.extern FUN_02054B30
+.extern FUN_02054B3C
+.extern FUN_02054B48
+.extern FUN_02054B54
+.extern FUN_02054B60
+.extern FUN_02054B6C
+.extern FUN_02054B78
.extern FUN_02054C14
.extern FUN_02054CB0
.extern FUN_02054CC8
@@ -2062,72 +3198,207 @@ .extern FUN_02054E30
.extern FUN_02054F50
.extern FUN_0205502C
+.extern FUN_02055108
.extern FUN_020552F8
.extern FUN_02055304
+.extern FUN_02055314
.extern FUN_02055320
.extern FUN_0205532C
+.extern FUN_02055350
+.extern FUN_02055360
+.extern FUN_02055370
+.extern FUN_02055378
+.extern FUN_0205537C
.extern FUN_020553A0
+.extern FUN_020553A8
.extern FUN_020553C4
.extern FUN_020553D4
+.extern FUN_020553DC
+.extern FUN_020553E0
.extern FUN_020553E8
+.extern FUN_02055408
+.extern FUN_02055410
+.extern FUN_02055450
+.extern FUN_02055454
.extern FUN_02055468
.extern FUN_02055474
.extern FUN_02055488
+.extern FUN_02055540
.extern FUN_02055560
+.extern FUN_0205557C
+.extern FUN_020555A0
+.extern FUN_02055648
+.extern FUN_020556B4
+.extern FUN_020556C8
.extern FUN_02055720
+.extern FUN_0205574C
+.extern FUN_02055764
.extern FUN_020557F4
+.extern FUN_02055898
.extern FUN_02055A38
.extern FUN_02055B14
.extern FUN_02055B30
.extern FUN_02055B8C
+.extern FUN_02056B74
+.extern FUN_02057020
+.extern FUN_020570C4
+.extern FUN_0205714C
+.extern FUN_02057254
+.extern FUN_02057260
+.extern FUN_02057278
+.extern FUN_020572B8
+.extern FUN_020573C8
.extern FUN_0205753C
.extern FUN_020575D4
+.extern FUN_02057614
.extern FUN_02057654
.extern FUN_02057688
+.extern FUN_020576A8
+.extern FUN_02057750
+.extern FUN_020577A8
.extern FUN_02057800
.extern FUN_0205785C
.extern FUN_02057BAC
.extern FUN_02058060
.extern FUN_020580B4
+.extern FUN_020580F4
+.extern FUN_0205829C
+.extern FUN_020582A8
+.extern FUN_020582F8
+.extern FUN_02058368
+.extern FUN_0205837C
+.extern FUN_02058384
+.extern FUN_02058390
+.extern FUN_0205839C
+.extern FUN_020583A0
+.extern FUN_020583A4
+.extern FUN_020583AC
+.extern FUN_020583BC
+.extern FUN_020583D4
+.extern FUN_020583F0
+.extern FUN_020583F4
+.extern FUN_02058410
+.extern FUN_02058418
+.extern FUN_02058424
+.extern FUN_0205842C
.extern FUN_02058448
+.extern FUN_02058450
.extern FUN_02058458
+.extern FUN_0205845C
.extern FUN_02058480
.extern FUN_02058488
+.extern FUN_02058498
+.extern FUN_020584AC
+.extern FUN_020584C4
+.extern FUN_020584C8
+.extern FUN_020584D4
.extern FUN_02058510
+.extern FUN_02058544
+.extern FUN_0205854C
+.extern FUN_02058578
+.extern FUN_02058604
+.extern FUN_02058628
+.extern FUN_020586A0
+.extern FUN_020586DC
+.extern FUN_02058720
.extern FUN_02058738
+.extern FUN_02058744
+.extern FUN_02058750
+.extern FUN_02058768
+.extern FUN_02058774
.extern FUN_02058780
.extern FUN_020587B0
+.extern FUN_020587E0
+.extern FUN_020587F4
+.extern FUN_02058804
+.extern FUN_02058830
.extern FUN_02058854
+.extern FUN_02058884
+.extern FUN_02058890
.extern FUN_0205889C
.extern FUN_020588B8
.extern FUN_020588D4
.extern FUN_02058908
.extern FUN_02058914
+.extern FUN_02058920
+.extern FUN_02058934
.extern FUN_02058994
+.extern FUN_020589CC
+.extern FUN_02058A00
+.extern FUN_02058A18
+.extern FUN_02058A68
+.extern FUN_02058A9C
+.extern FUN_02058AB4
+.extern FUN_02058B14
+.extern FUN_02058B1C
+.extern FUN_02058B24
.extern FUN_02058B2C
+.extern FUN_02058B30
+.extern FUN_02058B3C
+.extern FUN_02058B40
.extern FUN_02058B4C
+.extern FUN_02058B50
+.extern FUN_02058B5C
+.extern FUN_02058B6C
.extern FUN_02058B7C
+.extern FUN_02058B80
+.extern FUN_02058B84
+.extern FUN_02058B94
+.extern FUN_02058BA4
.extern FUN_02058BB4
+.extern FUN_02058BC4
.extern FUN_02058BE4
.extern FUN_02058D74
.extern FUN_02058E28
.extern FUN_02058E90
.extern FUN_02058EB0
+.extern FUN_02059918
+.extern FUN_02059BF4
+.extern FUN_02059C00
+.extern FUN_02059C60
+.extern FUN_02059C90
.extern FUN_02059D1C
+.extern FUN_02059E60
.extern FUN_02059E74
+.extern FUN_02059E9C
+.extern FUN_0205AD98
+.extern FUN_0205ADDC
.extern FUN_0205AE28
+.extern FUN_0205AE50
.extern FUN_0205AEA4
.extern FUN_0205AEF0
.extern FUN_0205AEFC
+.extern FUN_0205AFDC
+.extern FUN_0205C334
+.extern FUN_0205C340
+.extern FUN_0205C598
.extern FUN_0205CA4C
.extern FUN_0205CA64
.extern FUN_0205CA78
+.extern FUN_0205CDB4
+.extern FUN_0205CDD8
.extern FUN_0205CE48
.extern FUN_0205CE80
+.extern FUN_0205D51C
+.extern FUN_0205DB44
.extern FUN_0205DD18
.extern FUN_0205DD38
.extern FUN_0205DD40
+.extern FUN_0205DD80
+.extern FUN_0205DFE8
+.extern FUN_0205E080
+.extern FUN_0205E098
+.extern FUN_0205E0A8
+.extern FUN_0205E480
+.extern FUN_0205E49C
+.extern FUN_0205E4A4
.extern FUN_0205E7C4
+.extern FUN_0205EB14
+.extern FUN_0205EB38
+.extern FUN_0205EBEC
+.extern FUN_0205EC18
+.extern FUN_0205EC48
+.extern FUN_0205EC6C
.extern FUN_0205ECD4
.extern FUN_0205ECE0
.extern FUN_0205ECFC
@@ -2138,8 +3409,20 @@ .extern FUN_0205ED4C
.extern FUN_0205ED5C
.extern FUN_0205ED6C
+.extern FUN_0205ED7C
+.extern FUN_0205ED9C
+.extern FUN_0205EDAC
+.extern FUN_0205EDBC
+.extern FUN_0205EDCC
+.extern FUN_0205EDD8
+.extern FUN_0205EDE8
+.extern FUN_0205EEB8
+.extern FUN_0205F154
+.extern FUN_0205F164
+.extern FUN_0205F1A4
.extern FUN_0205F1C4
.extern FUN_0205F1D4
+.extern FUN_0205F1E4
.extern FUN_0205F1F4
.extern FUN_0205F204
.extern FUN_0205F214
@@ -2160,7 +3443,13 @@ .extern FUN_0205F388
.extern FUN_0205F398
.extern FUN_0205F3C0
+.extern FUN_0205F3E8
.extern FUN_0205F3F8
+.extern FUN_0205F408
+.extern FUN_0205F41C
+.extern FUN_0205F42C
+.extern FUN_0205F43C
+.extern FUN_0205F44C
.extern FUN_0205F478
.extern FUN_0205F4A0
.extern FUN_0205F4E4
@@ -2168,6 +3457,7 @@ .extern FUN_0205F524
.extern FUN_0205F54C
.extern FUN_0205F55C
+.extern FUN_0205F56C
.extern FUN_0205F594
.extern FUN_0205F5A4
.extern FUN_0205F5D8
@@ -2179,37 +3469,71 @@ .extern FUN_0205F6A8
.extern FUN_0205F6C8
.extern FUN_0205F6D8
+.extern FUN_0205F6E8
.extern FUN_0205F710
.extern FUN_0205F720
+.extern FUN_0205F730
.extern FUN_0205F740
+.extern FUN_0205F750
.extern FUN_0205F760
+.extern FUN_0205F770
+.extern FUN_0205F780
+.extern FUN_0205F790
.extern FUN_0205F7A0
+.extern FUN_0205FC50
.extern FUN_0205FD38
.extern FUN_0205FDDC
.extern FUN_0205FE10
.extern FUN_0205FF5C
+.extern FUN_02060064
+.extern FUN_0206007C
+.extern FUN_020600A0
+.extern FUN_020600DC
.extern FUN_02060144
.extern FUN_0206015C
+.extern FUN_020603B0
+.extern FUN_0206043C
.extern FUN_02060490
.extern FUN_02060790
.extern FUN_020607D4
+.extern FUN_02060D1C
+.extern FUN_02060D48
.extern FUN_02060F3C
.extern FUN_02060F88
.extern FUN_02060F9C
+.extern FUN_02060FAC
+.extern FUN_02060FBC
.extern FUN_02060FD0
+.extern FUN_02061028
+.extern FUN_02061208
.extern FUN_020612EC
.extern FUN_020612F8
.extern FUN_02061374
.extern FUN_020613CC
.extern FUN_02061460
+.extern FUN_0206151C
.extern FUN_02061574
+.extern FUN_02061904
+.extern FUN_020619C0
.extern FUN_02061A8C
+.extern FUN_02061B0C
.extern FUN_02063650
.extern FUN_0206367C
.extern FUN_02063888
.extern FUN_020638BC
.extern FUN_02063948
.extern FUN_02063964
+.extern FUN_020643C0
+.extern FUN_020643F0
+.extern FUN_020644E4
+.extern FUN_02064520
+.extern FUN_02064584
+.extern FUN_020646DC
+.extern FUN_02064738
+.extern FUN_02064754
+.extern FUN_0206475C
+.extern FUN_0206476C
+.extern FUN_0206477C
.extern FUN_0206486C
.extern FUN_020649B0
.extern FUN_020649D4
@@ -2219,6 +3543,7 @@ .extern FUN_02064D4C
.extern FUN_02064D88
.extern FUN_02064E20
+.extern FUN_02064E4C
.extern FUN_02064E60
.extern FUN_02064E90
.extern FUN_02065054
@@ -2227,53 +3552,197 @@ .extern FUN_02065314
.extern FUN_02065344
.extern FUN_02066818
+.extern FUN_02066840
.extern FUN_02066978
.extern FUN_020669A0
+.extern FUN_020669BC
.extern FUN_020669C0
.extern FUN_020669D4
.extern FUN_02066A20
+.extern FUN_02066A6C
+.extern FUN_02066A94
.extern FUN_02066ACC
+.extern FUN_02066D90
+.extern FUN_02066DD4
+.extern FUN_02066EA4
.extern FUN_02066ED8
+.extern FUN_02066F04
.extern FUN_020671BC
.extern FUN_020672BC
.extern FUN_02067830
+.extern FUN_02067960
+.extern FUN_02068018
+.extern FUN_0206851C
+.extern FUN_02068538
+.extern FUN_02068640
+.extern FUN_02068654
.extern FUN_02068678
+.extern FUN_02068698
+.extern FUN_02068734
+.extern FUN_02068758
.extern FUN_020687C0
+.extern FUN_020687C8
+.extern FUN_02068800
+.extern FUN_02068824
.extern FUN_02068854
+.extern FUN_0206885C
+.extern FUN_02068884
+.extern FUN_020688E8
.extern FUN_020689E0
+.extern FUN_020689E8
+.extern FUN_02068A20
+.extern FUN_02068A44
+.extern FUN_02068A80
.extern FUN_02068AAC
+.extern FUN_02068AD8
.extern FUN_02068B68
+.extern FUN_02068B70
.extern FUN_02068C00
.extern FUN_02068E14
+.extern FUN_02068E1C
+.extern FUN_02068E88
+.extern FUN_02068FE0
+.extern FUN_02069010
+.extern FUN_02069038
+.extern FUN_020690AC
.extern FUN_020690C4
+.extern FUN_020690C8
.extern FUN_020690CC
.extern FUN_020690E4
+.extern FUN_020690E8
.extern FUN_02069168
+.extern FUN_02069558
+.extern FUN_02069698
+.extern FUN_02069708
+.extern FUN_020697CC
+.extern FUN_02069818
.extern FUN_020699A4
.extern FUN_02069A64
+.extern FUN_02069AEC
.extern FUN_02069B40
+.extern FUN_02069B60
.extern FUN_02069B88
+.extern FUN_02069BA0
+.extern FUN_02069BB4
+.extern FUN_02069BE4
+.extern FUN_02069BFC
+.extern FUN_02069C4C
+.extern FUN_02069CF4
+.extern FUN_02069DC8
+.extern FUN_02069ECC
+.extern FUN_02069F24
+.extern FUN_02069FB0
+.extern FUN_0206A014
+.extern FUN_0206A094
+.extern FUN_0206A16C
.extern FUN_0206A23C
+.extern FUN_0206A92C
+.extern FUN_0206A94C
+.extern FUN_0206A964
+.extern FUN_0206A984
+.extern FUN_0206AA30
+.extern FUN_0206AA84
+.extern FUN_0206AB04
+.extern FUN_0206AB18
+.extern FUN_0206AB30
+.extern FUN_0206AB58
+.extern FUN_0206ABC4
.extern FUN_0206AC74
+.extern FUN_0206ACD4
.extern FUN_0206AD4C
+.extern FUN_0206ADE0
+.extern FUN_0206ADF0
+.extern FUN_0206AE00
.extern FUN_0206B20C
+.extern FUN_0206B244
+.extern FUN_0206B2B0
+.extern FUN_0206B2FC
+.extern FUN_0206B330
+.extern FUN_0206B334
+.extern FUN_0206B384
.extern FUN_0206B3E4
+.extern FUN_0206B428
+.extern FUN_0206B43C
+.extern FUN_0206B458
.extern FUN_0206B484
+.extern FUN_0206B4B4
+.extern FUN_0206B4E4
.extern FUN_0206B57C
+.extern FUN_0206B598
.extern FUN_0206B5E4
.extern FUN_0206B620
.extern FUN_0206B644
+.extern FUN_0206B668
+.extern FUN_0206B688
.extern FUN_0206B6C8
+.extern FUN_0206B6D4
.extern FUN_0206B7BC
+.extern FUN_0206B87C
+.extern FUN_0206B888
+.extern FUN_0206B88C
+.extern FUN_0206B890
+.extern FUN_0206B894
+.extern FUN_0206B898
+.extern FUN_0206B89C
+.extern FUN_0206B8A0
+.extern FUN_0206B8A4
+.extern FUN_0206B8AC
+.extern FUN_0206B8CC
.extern FUN_0206B900
+.extern FUN_0206B938
.extern FUN_0206B9AC
.extern FUN_0206B9B0
+.extern FUN_0206B9DC
+.extern FUN_0206BAD0
.extern FUN_0206BAE4
.extern FUN_0206BB1C
.extern FUN_0206BB28
+.extern FUN_0206BB34
+.extern FUN_0206BB48
+.extern FUN_0206BB5C
+.extern FUN_0206BB74
+.extern FUN_0206BE48
+.extern FUN_0206BF90
+.extern FUN_0206BFF0
+.extern FUN_0206C0C8
+.extern FUN_0206C1A0
+.extern FUN_0206C1FC
+.extern FUN_0206C224
+.extern FUN_0206C268
+.extern FUN_0206C294
+.extern FUN_0206C2D4
+.extern FUN_0206C2F8
+.extern FUN_0206C33C
+.extern FUN_0206C364
+.extern FUN_0206C398
+.extern FUN_0206C3F4
+.extern FUN_0206C438
+.extern FUN_0206C46C
+.extern FUN_0206C4C4
+.extern FUN_0206C4F0
.extern FUN_0206C700
.extern FUN_0206C91C
.extern FUN_0206C92C
+.extern FUN_0206E0F0
+.extern FUN_0206E108
+.extern FUN_0206E10C
+.extern FUN_0206E114
+.extern FUN_0206E12C
+.extern FUN_0206E130
+.extern FUN_0206E164
+.extern FUN_0206E198
+.extern FUN_0206E1D4
+.extern FUN_0206E21C
+.extern FUN_0206E224
+.extern FUN_0206E22C
+.extern FUN_0206E240
+.extern FUN_0206E270
+.extern FUN_0206E278
+.extern FUN_0206E290
+.extern FUN_0206E2A8
+.extern FUN_0206E2AC
+.extern FUN_0206E2E0
+.extern FUN_0206E2E8
.extern FUN_0206E2F0
.extern FUN_0206E308
.extern FUN_0206E314
@@ -2284,29 +3753,81 @@ .extern FUN_0206E37C
.extern FUN_0206E384
.extern FUN_0206E38C
+.extern FUN_0206E3F8
+.extern FUN_0206E51C
+.extern FUN_0206E5B4
+.extern FUN_0206E640
+.extern FUN_0206E6D8
+.extern FUN_0206E708
+.extern FUN_0206E70C
+.extern FUN_0206E710
+.extern FUN_0206E768
+.extern FUN_0206E790
.extern FUN_0206E7B8
+.extern FUN_0206E7DC
.extern FUN_0206EA30
+.extern FUN_0206EA54
.extern FUN_0206EA98
.extern FUN_0206EAB8
+.extern FUN_0206EAEC
+.extern FUN_0206EB0C
.extern FUN_0206EB1C
+.extern FUN_0206EB50
+.extern FUN_0206EB78
+.extern FUN_0206EB88
+.extern FUN_0206EBB4
+.extern FUN_0206EBC4
+.extern FUN_0206EBCC
.extern FUN_0206ED24
.extern FUN_0206ED38
.extern FUN_0206EDD4
+.extern FUN_0206EE20
.extern FUN_0206EE50
.extern FUN_0206EE64
.extern FUN_0206EEF8
+.extern FUN_0206EF10
.extern FUN_0206EFEC
+.extern FUN_0206F0D8
.extern FUN_0206F158
.extern FUN_0206F164
.extern FUN_0206F17C
+.extern FUN_0206F18C
.extern FUN_0206F190
+.extern FUN_0206F19C
+.extern FUN_0206F1A0
+.extern FUN_0206F1AC
+.extern FUN_0206F1B0
+.extern FUN_0206F1B4
+.extern FUN_0206F1B8
+.extern FUN_0206F1C0
+.extern FUN_0206F1E4
+.extern FUN_0206F1EC
.extern FUN_0206F3B8
.extern FUN_0206F3D8
+.extern FUN_020724C4
+.extern FUN_020724C8
+.extern FUN_020724CC
+.extern FUN_020724D0
+.extern FUN_020724D4
.extern FUN_02077A84
.extern FUN_02077AC4
+.extern FUN_020799E8
+.extern FUN_020799F4
+.extern FUN_02079A0C
+.extern FUN_02079A24
+.extern FUN_02079A54
+.extern FUN_02079A70
+.extern FUN_02079AAC
+.extern FUN_02079B60
+.extern FUN_02079C40
.extern FUN_02079C70
.extern FUN_0207B000
.extern FUN_0207C2A4
+.extern FUN_0207C2C4
+.extern FUN_0207C2C8
+.extern FUN_0207C2CC
+.extern FUN_0207C2D0
+.extern FUN_0207C2D4
.extern FUN_0207FC5C
.extern FUN_0207FCE0
.extern FUN_0208089C
@@ -2342,16 +3863,46 @@ .extern FUN_02082508
.extern FUN_020825A0
.extern FUN_02082630
+.extern FUN_02082878
+.extern FUN_02082880
+.extern FUN_020828BC
+.extern FUN_02082E64
+.extern FUN_02083114
+.extern FUN_02083130
+.extern FUN_0208315C
+.extern FUN_02083170
+.extern FUN_02083228
+.extern FUN_02083268
+.extern FUN_02083298
+.extern FUN_020832A4
+.extern FUN_020832DC
+.extern FUN_020832EC
+.extern FUN_02083308
+.extern FUN_0208336C
+.extern FUN_020833D4
+.extern FUN_02083404
+.extern FUN_02083A34
+.extern FUN_02083A7C
+.extern FUN_02083B84
+.extern FUN_02083D10
+.extern FUN_02083D48
+.extern FUN_02084098
+.extern FUN_020842D0
+.extern FUN_020842D8
.extern FUN_02085140
.extern FUN_020851B8
.extern FUN_020851DC
.extern FUN_020851F8
+.extern FUN_02085224
.extern FUN_0208524C
.extern FUN_02085258
.extern FUN_02085264
.extern FUN_0208526C
+.extern FUN_02085274
+.extern FUN_02085284
.extern FUN_02085290
.extern FUN_020852E8
+.extern FUN_02085310
.extern FUN_02085338
.extern FUN_020853A8
.extern FUN_020853B0
@@ -2362,6 +3913,13 @@ .extern FUN_020853EC
.extern FUN_020853F0
.extern FUN_020853FC
+.extern FUN_0208540C
+.extern FUN_02085410
+.extern FUN_02085414
+.extern FUN_02085424
+.extern FUN_02085428
+.extern FUN_0208545C
+.extern FUN_020854A0
.extern FUN_020854E0
.extern FUN_02085538
.extern FUN_02085578
@@ -2369,23 +3927,79 @@ .extern FUN_020855E4
.extern FUN_0208560C
.extern FUN_0208562C
+.extern FUN_02085D9C
.extern FUN_02085F48
+.extern FUN_02085FAC
+.extern FUN_02085FD0
+.extern FUN_02085FF4
+.extern FUN_02086018
+.extern FUN_0208603C
+.extern FUN_02086060
.extern FUN_020863DC
.extern FUN_02087A1C
+.extern FUN_02087A38
.extern FUN_02087A50
+.extern FUN_02087A6C
+.extern FUN_02087A84
+.extern FUN_02087A98
+.extern FUN_02087B0C
+.extern FUN_02087B58
+.extern FUN_02087B78
+.extern FUN_02087B98
+.extern FUN_02087BB8
+.extern FUN_02087BD8
+.extern FUN_02087BF8
.extern FUN_02087D00
.extern FUN_02087E14
+.extern FUN_020881D0
+.extern FUN_02088320
+.extern FUN_02088360
+.extern FUN_02088484
+.extern FUN_02088490
+.extern FUN_02088660
+.extern FUN_02088694
.extern FUN_0208881C
+.extern FUN_02088858
+.extern FUN_02088868
+.extern FUN_020888BC
+.extern FUN_020888CC
.extern FUN_02088960
+.extern FUN_02088D1C
+.extern FUN_02088D20
.extern FUN_02088D40
+.extern FUN_02088D4C
+.extern FUN_02088D68
+.extern FUN_02088D84
+.extern FUN_02088DA0
+.extern FUN_02088DBC
.extern FUN_02088DD8
.extern FUN_02088DF0
.extern FUN_02088DF8
.extern FUN_02088EF8
+.extern FUN_02088F0C
+.extern FUN_02088F4C
+.extern FUN_020892C4
+.extern FUN_020892CC
+.extern FUN_020892EC
+.extern FUN_02089300
+.extern FUN_02089310
+.extern FUN_02089338
+.extern FUN_02089368
+.extern FUN_02089394
+.extern FUN_020893E0
+.extern FUN_020893F0
+.extern FUN_02089418
+.extern FUN_02089444
+.extern FUN_0208946C
.extern FUN_02089D90
+.extern FUN_02089F24
.extern FUN_0208A0B8
.extern FUN_0208A300
.extern FUN_0208A320
+.extern FUN_0208A328
+.extern FUN_0208A32C
+.extern FUN_0208A330
+.extern FUN_0208A334
.extern FUN_0208A338
.extern FUN_0208A9B8
.extern FUN_0208ACEC
@@ -2398,18 +4012,35 @@ .extern FUN_0208B4A0
.extern FUN_02090CC8
.extern FUN_02090DB8
+.extern FUN_0209105C
+.extern FUN_020910A4
+.extern FUN_020910EC
+.extern FUN_0209521C
+.extern FUN_020952AC
+.extern FUN_02095324
+.extern FUN_02095330
+.extern FUN_02095AE0
+.extern FUN_02095B0C
+.extern FUN_02095BB0
+.extern FUN_02095BE0
+.extern FUN_02095CDC
+.extern FUN_02095D68
.extern FUN_02095EC8
.extern FUN_02095FA8
+.extern FUN_02096190
.extern FUN_02096570
.extern FUN_02096710
.extern FUN_02096760
+.extern FUN_020967A4
.extern FUN_02096B14
.extern FUN_02096B78
.extern FUN_02096C78
.extern FUN_02096C90
.extern FUN_02096CCC
.extern FUN_02096D2C
+.extern FUN_02096D68
.extern FUN_02096DA0
+.extern FUN_02096E24
.extern FUN_02096EB4
.extern FUN_02096EC0
.extern FUN_02096F18
@@ -2477,6 +4108,10 @@ .extern FUN_020A7BD4
.extern FUN_020A7E0C
.extern FUN_020A7E80
+.extern FUN_020A8358
+.extern FUN_020A83D0
+.extern FUN_020A846C
+.extern FUN_020A84D8
.extern FUN_020A87E0
.extern FUN_020A8850
.extern FUN_020A8BA4
@@ -2518,7 +4153,9 @@ .extern FUN_020AE868
.extern FUN_020AE8CC
.extern FUN_020AE918
+.extern FUN_020AEAF4
.extern FUN_020AEB70
+.extern FUN_020AEC60
.extern FUN_020AEC7C
.extern FUN_020AEC98
.extern FUN_020AEDF4
@@ -2528,9 +4165,11 @@ .extern FUN_020AF2E0
.extern FUN_020AF2F4
.extern FUN_020AF30C
+.extern FUN_020AF6A4
.extern FUN_020AF894
.extern FUN_020AF9C4
.extern FUN_020AFA28
+.extern FUN_020AFA30
.extern FUN_020AFA80
.extern FUN_020AFBA8
.extern FUN_020AFBFC
@@ -2545,9 +4184,12 @@ .extern FUN_020B0250
.extern FUN_020B02C8
.extern FUN_020B0448
+.extern FUN_020B0830
.extern FUN_020B0870
+.extern FUN_020B0888
.extern FUN_020B0BB0
.extern FUN_020B0C7C
+.extern FUN_020B0D58
.extern FUN_020B0E34
.extern FUN_020B0FC0
.extern FUN_020B10E8
@@ -2560,6 +4202,7 @@ .extern FUN_020B1A14
.extern FUN_020B1A1C
.extern FUN_020B1A24
+.extern FUN_020B1AF8
.extern FUN_020B1EA4
.extern FUN_020B1EC4
.extern FUN_020B1EE4
@@ -2588,6 +4231,17 @@ .extern FUN_020B4568
.extern FUN_020B4F38
.extern FUN_020B502C
+.extern FUN_020B5C88
+.extern FUN_020B5CE4
+.extern FUN_020B5D3C
+.extern FUN_020B5E50
+.extern FUN_020B6180
+.extern FUN_020B6240
+.extern FUN_020B62F8
+.extern FUN_020B6388
+.extern FUN_020B63CC
+.extern FUN_020B7168
+.extern FUN_020B7218
.extern FUN_020B772C
.extern FUN_020B7790
.extern FUN_020B7C58
@@ -2599,7 +4253,16 @@ .extern FUN_020B7DFC
.extern FUN_020B7E10
.extern FUN_020B7E1C
+.extern FUN_020B7E28
+.extern FUN_020B7EFC
.extern FUN_020B80B4
+.extern FUN_020B8110
+.extern FUN_020B8344
+.extern FUN_020B8390
+.extern FUN_020B83BC
+.extern FUN_020B83E0
+.extern FUN_020B8404
+.extern FUN_020B8418
.extern FUN_020B844C
.extern FUN_020B8474
.extern FUN_020B849C
@@ -2607,11 +4270,30 @@ .extern FUN_020BAFB8
.extern FUN_020BB1C0
.extern FUN_020BB394
+.extern FUN_020BB408
.extern FUN_020BB59C
.extern FUN_020BB7F4
+.extern FUN_020BB8D0
+.extern FUN_020BB8F4
+.extern FUN_020BB934
+.extern FUN_020BB974
+.extern FUN_020BB9B4
+.extern FUN_020BB9F4
+.extern FUN_020BBA34
+.extern FUN_020BBA74
+.extern FUN_020BBAB4
+.extern FUN_020BBAF4
+.extern FUN_020BBB34
+.extern FUN_020BBB74
+.extern FUN_020BBBB4
+.extern FUN_020BBBF4
+.extern FUN_020BBC34
+.extern FUN_020BC02C
+.extern FUN_020BC094
.extern FUN_020BC0FC
.extern FUN_020BC13C
.extern FUN_020BC2A0
+.extern FUN_020BC4C8
.extern FUN_020C0174
.extern FUN_020C01A0
.extern FUN_020C01D0
@@ -2651,45 +4333,13 @@ .extern FUN_020C1F54
.extern FUN_020C1FA4
.extern FUN_020C1FF0
-.extern FUN_02013EA8
-.extern FUN_02013EC4
-.extern FUN_0200A06C
-.extern FUN_0200BC14
-.extern FUN_02014518
-.extern FUN_0200D7A0
-.extern FUN_0202008C
-.extern FUN_0200B10C
-.extern FUN_0200B430
-.extern FUN_0200B468
-.extern FUN_02029584
-.extern FUN_02029960
-.extern FUN_02085224
-.extern FUN_02085274
-.extern FUN_02085310
-.extern FUN_020345A8
-.extern FUN_020345DC
-.extern FUN_020345F0
-.extern FUN_02079C40
-.extern FUN_02014564
-.extern FUN_02014588
-.extern FUN_02020198
-.extern FUN_02079B60
-.extern FUN_020881D0
-.extern FUN_02088320
-.extern FUN_02088360
-.extern FUN_02088484
-.extern FUN_02088490
-.extern FUN_02088660
-.extern FUN_02088694
-.extern FUN_02013ED8
-.extern FUN_02013EE0
-.extern FUN_0201EC58
.extern FUN_020C20DC
.extern FUN_020C2104
.extern FUN_020C217C
.extern FUN_020C226C
.extern FUN_020C22D0
.extern FUN_020C23FC
+.extern FUN_020C2444
.extern FUN_020C26F8
.extern FUN_020C2828
.extern FUN_020C290C
@@ -2700,47 +4350,251 @@ .extern FUN_020C3674
.extern FUN_020C36A8
.extern FUN_020C3910
-.extern FUN_02020C14
.extern FUN_020C3980
.extern FUN_020C39CC
+.extern FUN_020C5D8C
+.extern FUN_020C5E04
.extern FUN_020C6034
.extern FUN_020C605C
-.extern FUN_02037790
-.extern FUN_0204BF94
-.extern FUN_0204BF9C
-.extern FUN_0204BFB0
-.extern FUN_0204C080
-.extern FUN_0204C0A4
-.extern FUN_020252B8
-.extern FUN_0204BF58
-.extern FUN_0204BFF0
-.extern FUN_0204C02C
-.extern FUN_0204C064
-.extern FUN_0202F0DC
-.extern FUN_02032BD0
-.extern FUN_02032C0C
-.extern FUN_02032C28
-.extern FUN_02034984
-.extern FUN_0204C158
-.extern FUN_0204C174
-.extern MOD06_022457A8
-.extern MOD06_022457CC
-.extern MOD06_022457F8
-.extern MOD06_02245824
-.extern MOD06_0224582C
-.extern MOD20_02253F6C
-.extern MOD20_02254420
-.extern MOD20_02254460
-.extern MOD20_02254488
-.extern MOD20_022542C0
-.extern MOD05_021EC464
-.extern MOD05_021ED9B4
-.extern MOD05_021EC7B4
-.extern MOD20_02253A04
-.extern MOD20_02253FAC
-.extern MOD20_02253FB4
-.extern MOD20_02252BB8
-.extern MOD05_021D74E0
+.extern FUN_020D9564
+.extern FX_Atan
+.extern FX_Atan2
+.extern FX_AtanTable_
+.extern FX_Div
+.extern FX_DivAsync
+.extern FX_DivS32
+.extern FX_GetDivResult
+.extern FX_GetDivResultFx64c
+.extern FX_Init
+.extern FX_Inv
+.extern FX_InvAsync
+.extern FX_ModS32
+.extern FX_Modf
+.extern FX_Sqrt
+.extern G2S_GetBG0CharPtr
+.extern G2S_GetBG0ScrPtr
+.extern G2S_GetBG1CharPtr
+.extern G2S_GetBG1ScrPtr
+.extern G2S_GetBG2CharPtr
+.extern G2S_GetBG2ScrPtr
+.extern G2S_GetBG3CharPtr
+.extern G2S_GetBG3ScrPtr
+.extern G2_GetBG0CharPtr
+.extern G2_GetBG0ScrPtr
+.extern G2_GetBG1CharPtr
+.extern G2_GetBG1ScrPtr
+.extern G2_GetBG2CharPtr
+.extern G2_GetBG2ScrPtr
+.extern G2_GetBG3CharPtr
+.extern G2_GetBG3ScrPtr
+.extern G2x_ChangeBlendBrightness_
+.extern G2x_SetBGyAffine_
+.extern G2x_SetBlendAlpha_
+.extern G2x_SetBlendBrightnessExt_
+.extern G2x_SetBlendBrightness_
+.extern G3B_Begin
+.extern G3B_Color
+.extern G3B_End
+.extern G3B_LightColor
+.extern G3B_LightVector
+.extern G3B_LoadMtx44
+.extern G3B_MaterialColorDiffAmb
+.extern G3B_MaterialColorSpecEmi
+.extern G3B_Normal
+.extern G3B_PolygonAttr
+.extern G3B_PopMtx
+.extern G3B_PushMtx
+.extern G3B_Vtx
+.extern G3X_GetBoxTestResult
+.extern G3X_GetClipMtx
+.extern G3X_GetVectorMtx
+.extern G3X_Init
+.extern G3X_InitMtxStack
+.extern G3X_ResetMtxStack
+.extern G3X_ResetMtxStack_2
+.extern G3X_SetClearColor
+.extern G3X_SetEdgeColorTable
+.extern G3X_SetFog
+.extern G3X_SetFogTable
+.extern G3X_SetHOffset
+.extern G3_BeginMakeDL
+.extern G3_EndMakeDL
+.extern G3_LoadMtx43
+.extern G3_MultMtx33
+.extern G3_MultMtx43
+.extern G3_RotX
+.extern G3_RotY
+.extern G3_RotZ
+.extern G3i_LookAt_
+.extern G3i_OrthoW_
+.extern G3i_PerspectiveW_
+.extern GXS_BeginLoadBGExtPltt
+.extern GXS_BeginLoadOBJExtPltt
+.extern GXS_EndLoadBGExtPltt
+.extern GXS_EndLoadOBJExtPltt
+.extern GXS_LoadBG0Char
+.extern GXS_LoadBG0Scr
+.extern GXS_LoadBG1Char
+.extern GXS_LoadBG1Scr
+.extern GXS_LoadBG2Char
+.extern GXS_LoadBG2Scr
+.extern GXS_LoadBG3Char
+.extern GXS_LoadBG3Scr
+.extern GXS_LoadBGExtPltt
+.extern GXS_LoadBGPltt
+.extern GXS_LoadOAM
+.extern GXS_LoadOBJ
+.extern GXS_LoadOBJExtPltt
+.extern GXS_LoadOBJPltt
+.extern GXS_SetGraphicsMode
+.extern GX_BeginLoadBGExtPltt
+.extern GX_BeginLoadClearImage
+.extern GX_BeginLoadOBJExtPltt
+.extern GX_BeginLoadTex
+.extern GX_BeginLoadTexPltt
+.extern GX_DisableBankForARM7
+.extern GX_DisableBankForBGExtPltt
+.extern GX_DisableBankForClearImage
+.extern GX_DisableBankForLCDC
+.extern GX_DisableBankForOBJExtPltt
+.extern GX_DisableBankForOBJExtPltt_2
+.extern GX_DisableBankForSubBGExtPltt
+.extern GX_DisableBankForSubOBJExtPltt
+.extern GX_DisableBankForSubOBJExtPltt_2
+.extern GX_DisableBankForTexPltt
+.extern GX_DisableBankForTexPltt_2
+.extern GX_DispOff
+.extern GX_DispOn
+.extern GX_EndLoadBGExtPltt
+.extern GX_EndLoadClearImage
+.extern GX_EndLoadOBJExtPltt
+.extern GX_EndLoadTex
+.extern GX_EndLoadTexPltt
+.extern GX_GetBankForBGExtPltt
+.extern GX_GetBankForBGExtPltt_2
+.extern GX_GetBankForLCDC
+.extern GX_GetBankForOBJ
+.extern GX_GetBankForOBJExtPltt
+.extern GX_GetBankForSubBGExtPltt
+.extern GX_GetBankForSubBGExtPltt_2
+.extern GX_GetBankForSubOBJ
+.extern GX_GetBankForSubOBJExtPltt
+.extern GX_GetBankForTexPltt
+.extern GX_HBlankIntr
+.extern GX_Init
+.extern GX_InitGXState
+.extern GX_LoadBG0Char
+.extern GX_LoadBG0Scr
+.extern GX_LoadBG1Char
+.extern GX_LoadBG1Scr
+.extern GX_LoadBG2Char
+.extern GX_LoadBG2Scr
+.extern GX_LoadBG3Char
+.extern GX_LoadBG3Scr
+.extern GX_LoadBGExtPltt
+.extern GX_LoadBGPltt
+.extern GX_LoadClearImageColor
+.extern GX_LoadClearImageDepth
+.extern GX_LoadOAM
+.extern GX_LoadOBJ
+.extern GX_LoadOBJExtPltt
+.extern GX_LoadOBJPltt
+.extern GX_LoadTex
+.extern GX_LoadTexPltt
+.extern GX_ResetBankForBG
+.extern GX_ResetBankForBGExtPltt
+.extern GX_ResetBankForClearImage
+.extern GX_ResetBankForOBJ
+.extern GX_ResetBankForOBJExtPltt
+.extern GX_ResetBankForSubBG
+.extern GX_ResetBankForSubOBJ
+.extern GX_ResetBankForTex
+.extern GX_ResetBankForTexPltt
+.extern GX_SendFifo48B
+.extern GX_SetBankForARM7
+.extern GX_SetBankForBG
+.extern GX_SetBankForBGExtPltt
+.extern GX_SetBankForClearImage
+.extern GX_SetBankForLCDC
+.extern GX_SetBankForOBJ
+.extern GX_SetBankForOBJExtPltt
+.extern GX_SetBankForSubBG
+.extern GX_SetBankForSubBGExtPltt
+.extern GX_SetBankForSubOBJ
+.extern GX_SetBankForSubOBJExtPltt
+.extern GX_SetBankForTex
+.extern GX_SetBankForTexPltt
+.extern GX_SetGraphicsMode
+.extern GX_VBlankIntr
+.extern GXx_SetMasterBrightness_
+.extern HandleLoadOverlay
+.extern IC_InvalidateAll
+.extern IC_InvalidateRange
+.extern InitGraphicMemory
+.extern InitScriptContext
+.extern InitSystemForTheGame
+.extern LoadFromNARC
+.extern LoadFromNARC_7
+.extern LoadFromNarc_2
+.extern LoadOverlay_MODULE_05
+.extern LoadPlayerDataAddress
+.extern MATH_CalcCRC16
+.extern MATH_CalcCRC16CCITT
+.extern MATH_CalcCRC32
+.extern MATH_CalcCRC8
+.extern MATH_CalcMD5
+.extern MATH_CalcSHA1
+.extern MATH_CountPopulation
+.extern MATH_MD5GetHash
+.extern MATH_MD5Init
+.extern MATH_MD5Update
+.extern MATHi_CRC16InitTable
+.extern MATHi_CRC16InitTableRev
+.extern MATHi_CRC32InitTableRev
+.extern MATHi_CRC8InitTable
+.extern MIC_DoSamplingAsync
+.extern MIC_GetLastSamplingAddress
+.extern MIC_Init
+.extern MIC_StartAutoSampling
+.extern MIC_StartAutoSamplingAsync
+.extern MIC_StopAutoSampling
+.extern MI_Copy36B
+.extern MI_Copy48B
+.extern MI_Copy64B
+.extern MI_CpuCopy8
+.extern MI_CpuFill8
+.extern MI_DmaCopy16
+.extern MI_DmaCopy32
+.extern MI_DmaCopy32Async
+.extern MI_DmaFill32
+.extern MI_DmaFill32Async
+.extern MI_HBlankDmaCopy16
+.extern MI_HBlankDmaCopy32
+.extern MI_Init
+.extern MI_SendGXCommand
+.extern MI_SendGXCommandAsync
+.extern MI_SendGXCommandAsyncFast
+.extern MI_SetWramBank
+.extern MI_StopDma
+.extern MI_SwapWord
+.extern MI_UncompressLZ8
+.extern MI_WaitDma
+.extern MI_Zero36B
+.extern MIi_CardDmaCopy32
+.extern MIi_CheckAnotherAutoDMA
+.extern MIi_CheckDma0SourceAddress
+.extern MIi_CpuClear16
+.extern MIi_CpuClear32
+.extern MIi_CpuClearFast
+.extern MIi_CpuCopy16
+.extern MIi_CpuCopy32
+.extern MIi_CpuCopyFast
+.extern MIi_CpuSend32
+.extern MIi_DmaSetParams
+.extern MIi_DmaSetParams_noInt
+.extern MIi_DmaSetParams_wait
+.extern MIi_DmaSetParams_wait_noInt
+.extern MIi_UncompressBackward
.extern MOD04_021D7660
.extern MOD04_021D76AC
.extern MOD04_021D77C4
@@ -2757,7 +4611,6 @@ .extern MOD04_021D7BC0
.extern MOD04_021D7C30
.extern MOD04_021D7C4C
-.extern MOD05_021D7CA4
.extern MOD04_021D7D68
.extern MOD04_021D7DA8
.extern MOD04_021D7DEC
@@ -2767,86 +4620,65 @@ .extern MOD04_021D8018
.extern MOD04_021D8044
.extern MOD04_021D8058
-.extern MOD05_021D8164
+.extern MOD04_021D80E0
.extern MOD04_021D82BC
-.extern MOD05_021D8320
.extern MOD04_021D836C
.extern MOD04_021D83A8
.extern MOD04_021D83C0
+.extern MOD04_021D83D4
.extern MOD04_021D83F0
-.extern MOD54_021D844C
+.extern MOD04_021D8478
+.extern MOD04_021D8480
.extern MOD04_021D8494
+.extern MOD04_021D853C
.extern MOD04_021D8558
.extern MOD04_021D8590
.extern MOD04_021D85A0
.extern MOD04_021D85B4
-.extern MOD05_021D85FC
+.extern MOD04_021D861C
.extern MOD04_021D8624
+.extern MOD04_021D8640
.extern MOD04_021D865C
+.extern MOD04_021D8678
.extern MOD04_021D868C
.extern MOD04_021D872C
.extern MOD04_021D8730
-.extern MOD05_021D8758
.extern MOD04_021D87D0
.extern MOD04_021D8818
-.extern MOD05_021D8820
.extern MOD04_021D8860
-.extern MOD54_021D88E4
.extern MOD04_021D8910
.extern MOD04_021D8944
-.extern MOD54_021D89CC
.extern MOD04_021D8A54
.extern MOD04_021D8A7C
-.extern MOD53_021D8B64
.extern MOD04_021D8BF0
.extern MOD04_021D8C08
-.extern MOD54_021D8C24
.extern MOD04_021D8C58
.extern MOD04_021D8C6C
.extern MOD04_021D8CC8
.extern MOD04_021D8CF0
.extern MOD04_021D8D04
.extern MOD04_021D8F08
-.extern MOD53_021D917C
-.extern MOD05_021D959C
-.extern MOD05_021D967C
-.extern MOD05_021D96F4
-.extern MOD05_021D9708
-.extern MOD05_021D971C
-.extern MOD05_021D9820
-.extern MOD05_021D99F8
.extern MOD04_021D9C2C
.extern MOD04_021D9F78
.extern MOD04_021DA2F4
.extern MOD04_021DA334
.extern MOD04_021DA388
.extern MOD04_021DA3DC
-.extern MOD05_021DA464
-.extern MOD05_021DA4EC
-.extern MOD05_021DA54C
-.extern MOD05_021DA58C
-.extern MOD05_021DA5B8
-.extern MOD05_021DA5C8
-.extern MOD05_021DA5D0
-.extern MOD05_021DA5D8
-.extern MOD05_021DA7B4
-.extern MOD05_021DAAA4
.extern MOD04_021DAB68
-.extern MOD05_021DAC70
-.extern MOD05_021DAE40
-.extern MOD05_021DAED4
-.extern MOD05_021DAF28
-.extern MOD05_021DAF78
-.extern MOD05_021DAF98
-.extern MOD05_021DB030
-.extern MOD17_021DB7E8
-.extern MOD17_021DB858
-.extern MOD05_021DC174
.extern MOD04_021DCA84
.extern MOD04_021DD6F0
.extern MOD04_021DD718
+.extern MOD04_021DD808
+.extern MOD04_021DD82C
+.extern MOD04_021DD844
+.extern MOD04_021DD860
+.extern MOD04_021DD904
+.extern MOD04_021DD944
.extern MOD04_021DD968
+.extern MOD04_021DD984
+.extern MOD04_021DD9DC
.extern MOD04_021DDB08
+.extern MOD04_021DDB40
.extern MOD04_021DDBBC
.extern MOD04_021DDC1C
.extern MOD04_021DDCE8
@@ -2854,6 +4686,18 @@ .extern MOD04_021DDDCC
.extern MOD04_021DDE7C
.extern MOD04_021DDEE0
+.extern MOD04_021DDF40
+.extern MOD04_021DDF4C
+.extern MOD04_021DE05C
+.extern MOD04_021DE1F8
+.extern MOD04_021DE2D0
+.extern MOD04_021DE308
+.extern MOD04_021DE330
+.extern MOD04_021DE364
+.extern MOD04_021DE3AC
+.extern MOD04_021DE3D0
+.extern MOD04_021DE404
+.extern MOD04_021DE45C
.extern MOD04_021DF95C
.extern MOD04_021DF978
.extern MOD04_021DFA40
@@ -2865,6 +4709,108 @@ .extern MOD04_021DFF74
.extern MOD04_021E0200
.extern MOD04_021E0374
+.extern MOD04_021E242C
+.extern MOD04_021E2454
+.extern MOD04_021E2578
+.extern MOD04_021EA530
+.extern MOD04_021EACF8
+.extern MOD04_021EADD8
+.extern MOD04_021EADF8
+.extern MOD04_021EAE18
+.extern MOD04_021EAE38
+.extern MOD04_021EAE90
+.extern MOD04_021EB044
+.extern MOD04_021EB0FC
+.extern MOD04_021EB3B8
+.extern MOD04_021EB524
+.extern MOD04_021EB550
+.extern MOD04_021EB59C
+.extern MOD04_021EB9A4
+.extern MOD04_021EB9D8
+.extern MOD04_021EBAE8
+.extern MOD04_021EBB80
+.extern MOD04_021EBC60
+.extern MOD04_021EEFA8
+.extern MOD04_021EEFFC
+.extern MOD04_021EF06C
+.extern MOD04_021EF074
+.extern MOD04_021EF0E4
+.extern MOD04_021EF820
+.extern MOD04_021EFB28
+.extern MOD04_021EFB38
+.extern MOD04_021EFC24
+.extern MOD04_021EFC78
+.extern MOD04_021EFCE4
+.extern MOD04_021EFD80
+.extern MOD04_021EFD9C
+.extern MOD04_021EFDB8
+.extern MOD04_021EFF5C
+.extern MOD04_021F0130
+.extern MOD04_021F017C
+.extern MOD04_021F0208
+.extern MOD04_021F024C
+.extern MOD04_021F0250
+.extern MOD04_021F025C
+.extern MOD05_021D74E0
+.extern MOD05_021D7A20
+.extern MOD05_021D7A28
+.extern MOD05_021D7CA4
+.extern MOD05_021D8024
+.extern MOD05_021D80A4
+.extern MOD05_021D80E4
+.extern MOD05_021D8164
+.extern MOD05_021D8320
+.extern MOD05_021D85FC
+.extern MOD05_021D8758
+.extern MOD05_021D8820
+.extern MOD05_021D9320
+.extern MOD05_021D94B4
+.extern MOD05_021D9510
+.extern MOD05_021D959C
+.extern MOD05_021D967C
+.extern MOD05_021D96F4
+.extern MOD05_021D9708
+.extern MOD05_021D971C
+.extern MOD05_021D9820
+.extern MOD05_021D99F8
+.extern MOD05_021DA03C
+.extern MOD05_021DA080
+.extern MOD05_021DA0DC
+.extern MOD05_021DA0E0
+.extern MOD05_021DA0E8
+.extern MOD05_021DA118
+.extern MOD05_021DA138
+.extern MOD05_021DA1A0
+.extern MOD05_021DA1A4
+.extern MOD05_021DA1A8
+.extern MOD05_021DA20C
+.extern MOD05_021DA464
+.extern MOD05_021DA4BC
+.extern MOD05_021DA4EC
+.extern MOD05_021DA54C
+.extern MOD05_021DA58C
+.extern MOD05_021DA5B8
+.extern MOD05_021DA5C8
+.extern MOD05_021DA5D0
+.extern MOD05_021DA5D8
+.extern MOD05_021DA7B4
+.extern MOD05_021DAAA4
+.extern MOD05_021DAC70
+.extern MOD05_021DAE40
+.extern MOD05_021DAED4
+.extern MOD05_021DAF28
+.extern MOD05_021DAF78
+.extern MOD05_021DAF98
+.extern MOD05_021DB030
+.extern MOD05_021DB44C
+.extern MOD05_021DB4B0
+.extern MOD05_021DB52C
+.extern MOD05_021DB53C
+.extern MOD05_021DBA40
+.extern MOD05_021DBA78
+.extern MOD05_021DBAA0
+.extern MOD05_021DC174
+.extern MOD05_021DD60C
.extern MOD05_021E1374
.extern MOD05_021E1858
.extern MOD05_021E1994
@@ -2875,10 +4821,7 @@ .extern MOD05_021E1F34
.extern MOD05_021E1F58
.extern MOD05_021E1F60
-.extern MOD04_021E242C
-.extern MOD04_021E2454
.extern MOD05_021E2464
-.extern MOD04_021E2578
.extern MOD05_021E2608
.extern MOD05_021E26CC
.extern MOD05_021E27E8
@@ -2901,13 +4844,40 @@ .extern MOD05_021E3424
.extern MOD05_021E3444
.extern MOD05_021E495C
+.extern MOD05_021E4BE8
+.extern MOD05_021E4C00
+.extern MOD05_021E4C08
+.extern MOD05_021E4C20
+.extern MOD05_021E4C24
.extern MOD05_021E4C54
.extern MOD05_021E4C60
+.extern MOD05_021E4C6C
+.extern MOD05_021E4DC4
.extern MOD05_021E4DE4
+.extern MOD05_021E4E90
+.extern MOD05_021E4EE4
+.extern MOD05_021E4EFC
+.extern MOD05_021E506C
+.extern MOD05_021E5078
+.extern MOD05_021E5094
+.extern MOD05_021E50A0
+.extern MOD05_021E50AC
+.extern MOD05_021E50C8
+.extern MOD05_021E50D4
+.extern MOD05_021E5114
+.extern MOD05_021E5198
+.extern MOD05_021E51EC
+.extern MOD05_021E5224
+.extern MOD05_021E5260
+.extern MOD05_021E5294
+.extern MOD05_021E53B4
+.extern MOD05_021E5420
.extern MOD05_021E5614
.extern MOD05_021E57D4
.extern MOD05_021E5970
.extern MOD05_021E5B30
+.extern MOD05_021E5D0C
+.extern MOD05_021E5E8C
.extern MOD05_021E5FD8
.extern MOD05_021E5FE0
.extern MOD05_021E6410
@@ -2923,12 +4893,18 @@ .extern MOD05_021E7750
.extern MOD05_021E799C
.extern MOD05_021E7AC0
+.extern MOD05_021E7C1C
+.extern MOD05_021E7C80
+.extern MOD05_021E7E9C
.extern MOD05_021E7EA0
.extern MOD05_021E7EB0
+.extern MOD05_021E7EC0
.extern MOD05_021E7EC4
.extern MOD05_021E7EC8
+.extern MOD05_021E7ECC
.extern MOD05_021E7ED0
.extern MOD05_021E7ED8
+.extern MOD05_021E7EEC
.extern MOD05_021E7FBC
.extern MOD05_021E8128
.extern MOD05_021E8130
@@ -2942,17 +4918,12 @@ .extern MOD05_021E8588
.extern MOD05_021E85E4
.extern MOD05_021E85FC
-.extern MOD04_021EA530
-.extern MOD04_021EACF8
-.extern MOD04_021EADD8
-.extern MOD04_021EADF8
-.extern MOD04_021EAE18
-.extern MOD04_021EAE38
-.extern MOD04_021EAE90
-.extern MOD04_021EB044
-.extern MOD04_021EB0FC
+.extern MOD05_021E8648
+.extern MOD05_021E8698
+.extern MOD05_021EC464
.extern MOD05_021EC57C
.extern MOD05_021EC71C
+.extern MOD05_021EC7B4
.extern MOD05_021EC854
.extern MOD05_021EC864
.extern MOD05_021ECD64
@@ -2965,8 +4936,12 @@ .extern MOD05_021ED5EC
.extern MOD05_021ED644
.extern MOD05_021ED940
+.extern MOD05_021ED9B4
.extern MOD05_021EDA48
.extern MOD05_021EDBC8
+.extern MOD05_021EEF68
+.extern MOD05_021EEF9C
+.extern MOD05_021EF4F8
.extern MOD05_021EF5E0
.extern MOD05_021EF604
.extern MOD05_021EF620
@@ -2977,14 +4952,22 @@ .extern MOD05_021EF8DC
.extern MOD05_021EFA9C
.extern MOD05_021F02C4
+.extern MOD05_021F0318
+.extern MOD05_021F043C
+.extern MOD05_021F04F8
+.extern MOD05_021F0514
+.extern MOD05_021F1C1C
+.extern MOD05_021F1C30
.extern MOD05_021F1D8C
.extern MOD05_021F1DC8
.extern MOD05_021F1DFC
+.extern MOD05_021F1E64
.extern MOD05_021F1EC0
.extern MOD05_021F1F78
.extern MOD05_021F2094
.extern MOD05_021F20D8
.extern MOD05_021F20F8
+.extern MOD05_021F220C
.extern MOD05_021F2AF4
.extern MOD05_021F2E0C
.extern MOD05_021F2E28
@@ -3003,90 +4986,57 @@ .extern MOD05_021F4608
.extern MOD05_021F4BD0
.extern MOD05_021F4C88
+.extern MOD05_021F4CD4
.extern MOD05_021F4D80
.extern MOD05_021F4DC8
.extern MOD05_021F4E7C
+.extern MOD05_021F51D0
+.extern MOD05_021F522C
+.extern MOD05_021F5268
+.extern MOD05_021F52C8
+.extern MOD05_021F531C
+.extern MOD05_021F5348
+.extern MOD05_021F5358
+.extern MOD05_021F5384
+.extern MOD05_021F53BC
+.extern MOD05_021F53F8
+.extern MOD05_021F5400
+.extern MOD05_021F5424
+.extern MOD05_021F5430
+.extern MOD05_021F54CC
+.extern MOD05_021F54D0
+.extern MOD05_021F54D8
+.extern MOD05_021F54E0
.extern MOD05_021F57EC
.extern MOD05_021F5C44
.extern MOD05_021F61DC
.extern MOD05_021F61E8
-.extern MOD07_02211E60
-.extern MOD79_02213B08
-.extern MOD79_02213D80
-.extern MOD79_02213DBC
-.extern MOD79_02213E24
-.extern MOD11_0222D5C0
-.extern MOD62_0222DAEC
-.extern MOD62_0222DD1C
-.extern MOD62_0222DD38
-.extern MOD62_0222E2BC
-.extern MOD62_0222E360
-.extern MOD62_0222E3A0
-.extern MOD62_0222E7E8
-.extern MOD62_0222E874
-.extern MOD69_0222EC60
-.extern MOD62_0222ED34
-.extern MOD62_0222EDBC
-.extern MOD70_0222F440
-.extern MOD70_0222F480
-.extern MOD62_0222F7E0
-.extern MOD12_0222F990
-.extern MOD11_022300D4
-.extern MOD11_022300DC
-.extern MOD62_022300E4
-.extern MOD11_022300E8
-.extern MOD11_022300F4
-.extern MOD11_02230100
-.extern MOD11_0223010C
-.extern MOD11_02230118
-.extern MOD11_02230124
-.extern MOD62_02230F3C
-.extern MOD62_02230F70
-.extern MOD62_02230F80
-.extern MOD11_02231344
-.extern MOD11_02231350
-.extern MOD11_0223135C
-.extern MOD11_02231368
-.extern MOD11_02231374
+.extern MOD05_021F61F4
+.extern MOD05_021F6234
+.extern MOD05_021F6240
+.extern MOD05_021F6254
.extern MOD06_02239944
.extern MOD06_02239AAC
-.extern MOD18_0223CACC
-.extern MOD18_0223CB08
+.extern MOD06_0223BA04
+.extern MOD06_0223BD14
+.extern MOD06_0223BE70
+.extern MOD06_0223C08C
.extern MOD06_0223CCDC
.extern MOD06_0223CD7C
+.extern MOD06_0223CDB8
.extern MOD06_0223D3D0
-.extern MOD18_0223D638
-.extern MOD18_0223D648
.extern MOD06_0223DFB4
-.extern MOD18_0223E060
-.extern MOD18_0223E118
-.extern MOD18_0223E154
-.extern MOD18_0223E1A4
-.extern MOD18_0223E1E0
-.extern MOD18_0223E2AC
-.extern MOD18_0223E4A8
-.extern MOD18_0223E4D4
-.extern MOD18_0223E554
-.extern MOD18_0223E6B8
-.extern MOD12_0223E734
-.extern MOD18_0223E7FC
-.extern MOD18_0223EB8C
-.extern MOD18_0223EF7C
-.extern MOD18_0223F4D8
-.extern MOD18_0223F4F4
-.extern MOD18_0223F8D8
-.extern MOD18_0223FCE8
.extern MOD06_02240790
.extern MOD06_022407CC
.extern MOD06_022407DC
.extern MOD06_022407F8
.extern MOD06_02240834
.extern MOD06_02240844
-.extern MOD18_0224089C
-.extern MOD18_022408FC
.extern MOD06_022411F4
.extern MOD06_02241230
.extern MOD06_02241914
+.extern MOD06_02242404
+.extern MOD06_022426AC
.extern MOD06_02242A38
.extern MOD06_02242BE0
.extern MOD06_0224312C
@@ -3136,15 +5086,6 @@ .extern MOD06_022446FC
.extern MOD06_02244758
.extern MOD06_02244770
-.extern MOD18_02244824
-.extern MOD18_0224484C
-.extern MOD18_02244D1C
-.extern MOD18_02244D20
-.extern MOD18_02244D3C
-.extern MOD18_02244D40
-.extern MOD18_02244D58
-.extern MOD18_02244D98
-.extern MOD18_02244DA0
.extern MOD06_02244DB0
.extern MOD06_02244DBC
.extern MOD06_02244DC4
@@ -3158,31 +5099,21 @@ .extern MOD06_02245198
.extern MOD06_022451F0
.extern MOD06_0224525C
-.extern MOD18_022452A4
-.extern MOD18_02245324
.extern MOD06_02245340
-.extern MOD18_02245358
-.extern MOD18_0224566C
.extern MOD06_022456E8
+.extern MOD06_022457A8
+.extern MOD06_022457CC
+.extern MOD06_022457F8
+.extern MOD06_02245824
+.extern MOD06_0224582C
.extern MOD06_02245844
.extern MOD06_02245910
-.extern MOD18_02245F1C
-.extern MOD18_02245F4C
.extern MOD06_02245FA0
-.extern MOD18_022461A4
-.extern MOD18_022461B8
.extern MOD06_0224666C
.extern MOD06_022466A0
.extern MOD06_022466AC
-.extern MOD18_02246F1C
-.extern MOD18_02247294
-.extern MOD18_022472AC
.extern MOD06_02247544
-.extern MOD18_02247614
-.extern MOD18_02247728
.extern MOD06_02247808
-.extern MOD18_02247970
-.extern MOD18_02247A34
.extern MOD06_022483BC
.extern MOD06_022483E0
.extern MOD06_022483EC
@@ -3200,24 +5131,31 @@ .extern MOD06_02248B6C
.extern MOD06_02248CC0
.extern MOD06_02248CD0
-.extern MOD18_02248DF8
.extern MOD06_02248F70
.extern MOD06_02248FE0
.extern MOD06_02249038
.extern MOD06_022490A0
.extern MOD06_022491FC
-.extern MOD18_022494C8
.extern MOD06_02249508
.extern MOD06_02249668
.extern MOD06_022497E8
+.extern MOD06_02249B7C
.extern MOD06_02249E6C
.extern MOD06_02249E78
.extern MOD06_02249E84
.extern MOD06_02249E90
+.extern MOD06_0224A130
.extern MOD06_0224A310
.extern MOD06_0224A528
+.extern MOD06_0224A6B8
+.extern MOD06_0224A6FC
.extern MOD06_0224A7C8
+.extern MOD06_0224A8D4
+.extern MOD06_0224AA40
.extern MOD06_0224ABAC
+.extern MOD06_0224ADF8
+.extern MOD06_0224AEE8
+.extern MOD06_0224AF68
.extern MOD06_0224B124
.extern MOD06_0224B2C4
.extern MOD06_0224B568
@@ -3227,6 +5165,7 @@ .extern MOD06_0224BBEC
.extern MOD06_0224BD90
.extern MOD06_0224C038
+.extern MOD06_0224C24C
.extern MOD06_0224C27C
.extern MOD06_0224C520
.extern MOD06_0224C678
@@ -3234,13 +5173,8 @@ .extern MOD06_0224C6F4
.extern MOD06_0224C700
.extern MOD06_0224C8C8
-.extern MOD18_0224CA2C
-.extern MOD18_0224CA54
.extern MOD06_0224CA58
.extern MOD06_0224CA88
-.extern MOD11_0224CA94
-.extern MOD18_0224CAA0
-.extern MOD18_0224CAB4
.extern MOD06_0224CB30
.extern MOD06_0224CBB0
.extern MOD06_0224CC24
@@ -3251,232 +5185,355 @@ .extern MOD06_0224D70C
.extern MOD06_0224D76C
.extern MOD06_0224D79C
-.extern MOD18_0224DCB8
-.extern MOD18_0224DD94
-.extern MOD18_0224DDB8
.extern MOD06_0224E554
.extern MOD06_0224E764
.extern MOD06_0224E7C4
+.extern MOD06_0224ED94
+.extern MOD06_0224EDA8
+.extern MOD06_0224F0BC
+.extern MOD06_0224F0D0
.extern MOD06_0224F12C
+.extern MOD07_02211E60
+.extern MOD08_02211E7C
+.extern MOD08_02211F5C
+.extern MOD08_02211FF0
+.extern MOD08_02212024
+.extern MOD08_02212048
+.extern MOD08_02212384
+.extern MOD08_022123A0
+.extern MOD08_022123B0
+.extern MOD08_022156C0
+.extern MOD08_0221590C
+.extern MOD08_02215918
+.extern MOD08_0221594C
+.extern MOD08_02215988
+.extern MOD08_02215A44
+.extern MOD08_02217E80
+.extern MOD08_02217ECC
+.extern MOD08_02217F08
+.extern MOD08_02228218
+.extern MOD08_02228524
+.extern MOD08_02228570
+.extern MOD08_02228574
+.extern MOD08_022285A4
+.extern MOD08_022285B4
+.extern MOD08_02228618
+.extern MOD08_02228AB8
+.extern MOD08_02228AC0
+.extern MOD08_02229918
+.extern MOD08_022299E8
+.extern MOD08_02229A00
+.extern MOD08_02229A2C
+.extern MOD08_02229A5C
+.extern MOD08_02229A80
+.extern MOD08_02229FE4
+.extern MOD08_02229FF0
+.extern MOD08_0222A008
+.extern MOD08_0222A00C
+.extern MOD08_0222A018
+.extern MOD08_0222A024
+.extern MOD08_0222A02C
+.extern MOD08_0222A0D4
+.extern MOD08_0222A110
+.extern MOD08_0222A14C
+.extern MOD08_0222A170
+.extern MOD08_0222A1DC
+.extern MOD08_0222A204
+.extern MOD08_0222A494
+.extern MOD08_0222A568
+.extern MOD08_0222A6A4
+.extern MOD08_0222A6C8
+.extern MOD09_022186F0
+.extern MOD11_0222D5C0
+.extern MOD11_0222FF68
+.extern MOD11_0222FF74
+.extern MOD11_0222FF78
+.extern MOD11_0222FF84
+.extern MOD11_0222FF88
+.extern MOD11_0222FFC8
+.extern MOD11_02230014
+.extern MOD11_02230078
+.extern MOD11_02230080
+.extern MOD11_022300CC
+.extern MOD11_022300D4
+.extern MOD11_022300DC
+.extern MOD11_022300E8
+.extern MOD11_022300F4
+.extern MOD11_02230100
+.extern MOD11_0223010C
+.extern MOD11_02230118
+.extern MOD11_02230124
+.extern MOD11_02230188
+.extern MOD11_02230214
+.extern MOD11_02230218
+.extern MOD11_0223022C
+.extern MOD11_02230260
+.extern MOD11_02230270
+.extern MOD11_02230290
+.extern MOD11_022302BC
+.extern MOD11_02230370
+.extern MOD11_02230E44
+.extern MOD11_02230E54
+.extern MOD11_02231238
+.extern MOD11_022312D0
+.extern MOD11_02231344
+.extern MOD11_02231350
+.extern MOD11_0223135C
+.extern MOD11_02231368
+.extern MOD11_02231374
+.extern MOD11_02231504
+.extern MOD11_02231534
+.extern MOD11_02231678
+.extern MOD11_02243420
+.extern MOD11_02244248
+.extern MOD11_02245D38
+.extern MOD11_02246274
+.extern MOD11_022465A0
+.extern MOD11_02246870
+.extern MOD11_02246B9C
+.extern MOD11_02246D1C
+.extern MOD11_022473F8
+.extern MOD11_022476C0
+.extern MOD11_022482A4
+.extern MOD11_02249D90
+.extern MOD11_02249E04
+.extern MOD11_02249E58
+.extern MOD11_0224B310
+.extern MOD11_0224C12C
+.extern MOD11_0224C474
+.extern MOD11_0224CA94
+.extern MOD11_02252DB4
+.extern MOD11_022567E0
+.extern MOD11_0225D3EC
+.extern MOD11_0225D45C
+.extern MOD11_0225D484
+.extern MOD11_0225D508
+.extern MOD11_0225D5DC
+.extern MOD11_0225D648
+.extern MOD11_0225D6A4
+.extern MOD11_0225D714
+.extern MOD11_0225D73C
+.extern MOD11_0225D7B8
+.extern MOD11_0225D800
+.extern MOD11_0225D80C
+.extern MOD11_0225D820
+.extern MOD11_0225D824
+.extern MOD12_0222F990
+.extern MOD12_02233560
+.extern MOD12_0223D1CC
+.extern MOD12_0223E734
+.extern MOD13_02213174
+.extern MOD13_02213270
+.extern MOD13_022132CC
+.extern MOD13_02213368
+.extern MOD13_02213944
+.extern MOD13_02213CB0
+.extern MOD13_0221411C
+.extern MOD13_02214D6C
+.extern MOD13_02214F18
+.extern MOD13_02215028
+.extern MOD13_02215360
+.extern MOD13_02215474
+.extern MOD13_02219798
+.extern MOD13_02219C9C
+.extern MOD13_02219D58
+.extern MOD13_0221A794
+.extern MOD13_0221A7EC
+.extern MOD13_0221A8A4
+.extern MOD13_02223494
+.extern MOD16_021EEF0C
+.extern MOD16_021EEF84
+.extern MOD16_021EEF98
+.extern MOD16_021EFBF4
+.extern MOD16_021EFD8C
+.extern MOD16_021F45A4
+.extern MOD16_021F4698
+.extern MOD16_021F4A30
+.extern MOD17_021DB7E8
+.extern MOD17_021DB858
+.extern MOD17_021DD4F4
+.extern MOD17_021DD518
+.extern MOD17_021DD540
+.extern MOD17_021DD58C
+.extern MOD17_021DD594
+.extern MOD17_021DD59C
+.extern MOD17_021DD604
+.extern MOD17_021DD620
+.extern MOD17_021DD678
+.extern MOD17_021DD6B8
+.extern MOD17_021DD6CC
+.extern MOD18_0223CACC
+.extern MOD18_0223CB08
+.extern MOD18_0223D638
+.extern MOD18_0223D648
+.extern MOD18_0223D8F4
+.extern MOD18_0223DC98
+.extern MOD18_0223DCB4
+.extern MOD18_0223DCD0
+.extern MOD18_0223E060
+.extern MOD18_0223E118
+.extern MOD18_0223E154
+.extern MOD18_0223E1A4
+.extern MOD18_0223E1E0
+.extern MOD18_0223E2AC
+.extern MOD18_0223E2C4
+.extern MOD18_0223E2DC
+.extern MOD18_0223E4A8
+.extern MOD18_0223E4BC
+.extern MOD18_0223E4D4
+.extern MOD18_0223E554
+.extern MOD18_0223E6B8
+.extern MOD18_0223E7FC
+.extern MOD18_0223EB8C
+.extern MOD18_0223EF7C
+.extern MOD18_0223F4D8
+.extern MOD18_0223F4F4
+.extern MOD18_0223F8D8
+.extern MOD18_0223FCE8
+.extern MOD18_0224089C
+.extern MOD18_022408FC
+.extern MOD18_02244824
+.extern MOD18_0224484C
+.extern MOD18_02244D1C
+.extern MOD18_02244D20
+.extern MOD18_02244D3C
+.extern MOD18_02244D40
+.extern MOD18_02244D58
+.extern MOD18_02244D98
+.extern MOD18_02244DA0
+.extern MOD18_022452A4
+.extern MOD18_02245324
+.extern MOD18_02245358
+.extern MOD18_0224566C
+.extern MOD18_02245F1C
+.extern MOD18_02245F4C
+.extern MOD18_022461A4
+.extern MOD18_022461B8
+.extern MOD18_02246F1C
+.extern MOD18_02247294
+.extern MOD18_022472AC
+.extern MOD18_02247614
+.extern MOD18_02247728
+.extern MOD18_02247830
+.extern MOD18_02247970
+.extern MOD18_02247A34
+.extern MOD18_02248DF8
+.extern MOD18_022494C8
+.extern MOD18_0224CA2C
+.extern MOD18_0224CA54
+.extern MOD18_0224CAA0
+.extern MOD18_0224CAB4
+.extern MOD18_0224DCB8
+.extern MOD18_0224DD94
+.extern MOD18_0224DDB8
+.extern MOD19_02252440
+.extern MOD19_022524F4
+.extern MOD19_02252504
+.extern MOD20_02252448
+.extern MOD20_022524BC
+.extern MOD20_022524D0
+.extern MOD20_022524DC
.extern MOD20_02252534
.extern MOD20_02252538
-.extern MOD11_022567E0
-.extern FX_Atan2
-.extern FX_AtanTable_
-.extern FX_Div
-.extern FX_DivAsync
-.extern FX_GetDivResult
-.extern FX_GetDivResultFx64c
-.extern FX_Init
-.extern FX_Inv
-.extern FX_InvAsync
-.extern FX_Sqrt
-.extern G2S_GetBG0CharPtr
-.extern G2S_GetBG0ScrPtr
-.extern G2S_GetBG1CharPtr
-.extern G2S_GetBG1ScrPtr
-.extern G2S_GetBG2CharPtr
-.extern G2S_GetBG2ScrPtr
-.extern G2S_GetBG3CharPtr
-.extern G2S_GetBG3ScrPtr
-.extern G2_GetBG0CharPtr
-.extern G2_GetBG0ScrPtr
-.extern G2_GetBG1CharPtr
-.extern G2_GetBG1ScrPtr
-.extern G2_GetBG2CharPtr
-.extern G2_GetBG2ScrPtr
-.extern G2_GetBG3CharPtr
-.extern G2_GetBG3ScrPtr
-.extern G2x_SetBGyAffine_
-.extern G2x_SetBlendAlpha_
-.extern G2x_SetBlendBrightness_
-.extern G3B_Begin
-.extern G3B_Color
-.extern G3B_End
-.extern G3B_LightColor
-.extern G3B_LightVector
-.extern G3B_LoadMtx44
-.extern G3B_MaterialColorDiffAmb
-.extern G3B_MaterialColorSpecEmi
-.extern G3B_Normal
-.extern G3B_PolygonAttr
-.extern G3B_PopMtx
-.extern G3B_PushMtx
-.extern G3B_Vtx
-.extern G3X_GetBoxTestResult
-.extern G3X_GetClipMtx
-.extern G3X_GetVectorMtx
-.extern G3X_Init
-.extern G3X_InitMtxStack
-.extern G3X_ResetMtxStack
-.extern G3X_SetClearColor
-.extern G3X_SetFog
-.extern G3_BeginMakeDL
-.extern G3_EndMakeDL
-.extern G3_LoadMtx43
-.extern G3_MultMtx33
-.extern G3_MultMtx43
-.extern G3_RotX
-.extern G3_RotY
-.extern G3_RotZ
-.extern G3i_LookAt_
-.extern G3i_OrthoW_
-.extern G3i_PerspectiveW_
-.extern GXS_BeginLoadBGExtPltt
-.extern GXS_BeginLoadOBJExtPltt
-.extern GXS_EndLoadBGExtPltt
-.extern GXS_EndLoadOBJExtPltt
-.extern GXS_LoadBG0Char
-.extern GXS_LoadBG0Scr
-.extern GXS_LoadBG1Char
-.extern GXS_LoadBG1Scr
-.extern GXS_LoadBG2Char
-.extern GXS_LoadBG2Scr
-.extern GXS_LoadBG3Char
-.extern GXS_LoadBG3Scr
-.extern GXS_LoadBGExtPltt
-.extern GXS_LoadBGPltt
-.extern GXS_LoadOAM
-.extern GXS_LoadOBJ
-.extern GXS_LoadOBJExtPltt
-.extern GXS_LoadOBJPltt
-.extern GXS_SetGraphicsMode
-.extern GX_BeginLoadBGExtPltt
-.extern GX_BeginLoadClearImage
-.extern GX_BeginLoadOBJExtPltt
-.extern GX_BeginLoadTex
-.extern GX_BeginLoadTexPltt
-.extern GX_DisableBankForLCDC
-.extern GX_DispOff
-.extern GX_DispOn
-.extern GX_EndLoadBGExtPltt
-.extern GX_EndLoadClearImage
-.extern GX_EndLoadOBJExtPltt
-.extern GX_EndLoadTex
-.extern GX_EndLoadTexPltt
-.extern GX_GetBankForOBJ
-.extern GX_GetBankForOBJExtPltt
-.extern GX_GetBankForSubOBJ
-.extern GX_GetBankForSubOBJExtPltt
-.extern GX_HBlankIntr
-.extern GX_Init
-.extern GX_InitGXState
-.extern GX_LoadBG0Char
-.extern GX_LoadBG0Scr
-.extern GX_LoadBG1Char
-.extern GX_LoadBG1Scr
-.extern GX_LoadBG2Char
-.extern GX_LoadBG2Scr
-.extern GX_LoadBG3Char
-.extern GX_LoadBG3Scr
-.extern GX_LoadBGExtPltt
-.extern GX_LoadBGPltt
-.extern GX_LoadClearImageColor
-.extern GX_LoadClearImageDepth
-.extern GX_LoadOAM
-.extern GX_LoadOBJ
-.extern GX_LoadOBJExtPltt
-.extern GX_LoadOBJPltt
-.extern GX_LoadTex
-.extern GX_LoadTexPltt
-.extern GX_ResetBankForBG
-.extern GX_ResetBankForBGExtPltt
-.extern GX_ResetBankForClearImage
-.extern GX_ResetBankForOBJ
-.extern GX_ResetBankForOBJExtPltt
-.extern GX_ResetBankForSubBG
-.extern GX_ResetBankForSubOBJ
-.extern GX_ResetBankForTex
-.extern GX_ResetBankForTexPltt
-.extern GX_SendFifo48B
-.extern GX_SetBankForBG
-.extern GX_SetBankForBGExtPltt
-.extern GX_SetBankForClearImage
-.extern GX_SetBankForLCDC
-.extern GX_SetBankForOBJ
-.extern GX_SetBankForOBJExtPltt
-.extern GX_SetBankForSubBG
-.extern GX_SetBankForSubBGExtPltt
-.extern GX_SetBankForSubOBJ
-.extern GX_SetBankForSubOBJExtPltt
-.extern GX_SetBankForTex
-.extern GX_SetBankForTexPltt
-.extern GX_SetGraphicsMode
-.extern GX_VBlankIntr
-.extern GXx_SetMasterBrightness_
-.extern IC_InvalidateAll
-.extern IC_InvalidateRange
-.extern InitGraphicMemory
-.extern InitScriptContext
-.extern InitSystemForTheGame
-.extern LoadFromNARC
-.extern LoadFromNARC_7
-.extern LoadFromNarc_2
-.extern LoadPlayerDataAddress
-.extern MATH_CalcCRC16
-.extern MATH_CalcCRC16CCITT
-.extern MATH_CalcCRC32
-.extern MATH_CalcCRC8
-.extern DGT_Hash2CalcHmac
-.extern MATH_CalcMD5
-.extern MATH_CalcSHA1
-.extern MATH_CountPopulation
-.extern MATH_MD5GetHash
-.extern MATH_MD5Init
-.extern MATH_MD5Update
-.extern MATHi_CRC16InitTable
-.extern MATHi_CRC16InitTableRev
-.extern MATHi_CRC32InitTableRev
-.extern MATHi_CRC8InitTable
-.extern DGTi_Hash2CalcHmac
-.extern MIC_DoSamplingAsync
-.extern MIC_GetLastSamplingAddress
-.extern MIC_Init
-.extern MIC_StartAutoSampling
-.extern MIC_StartAutoSamplingAsync
-.extern MIC_StopAutoSampling
-.extern MI_Copy36B
-.extern MI_Copy48B
-.extern MI_Copy64B
-.extern MI_CpuCopy8
-.extern MI_CpuFill8
-.extern MI_DmaCopy16
-.extern MI_DmaCopy32
-.extern MI_DmaCopy32Async
-.extern MI_DmaFill32
-.extern MI_DmaFill32Async
-.extern MI_HBlankDmaCopy16
-.extern MI_HBlankDmaCopy32
-.extern MI_Init
-.extern MI_SendGXCommand
-.extern MI_SendGXCommandAsync
-.extern MI_SendGXCommandAsyncFast
-.extern MI_SetWramBank
-.extern MI_StopDma
-.extern MI_SwapWord
-.extern MI_UncompressLZ8
-.extern MI_WaitDma
-.extern MI_Zero36B
-.extern MIi_CardDmaCopy32
-.extern MIi_CheckAnotherAutoDMA
-.extern MIi_CheckDma0SourceAddress
-.extern MIi_CpuClear16
-.extern MIi_CpuClear32
-.extern MIi_CpuClearFast
-.extern MIi_CpuCopy16
-.extern MIi_CpuCopy32
-.extern MIi_CpuCopyFast
-.extern MIi_CpuSend32
-.extern MIi_DmaSetParams
-.extern MIi_DmaSetParams_noInt
-.extern MIi_DmaSetParams_wait
-.extern MIi_DmaSetParams_wait_noInt
-.extern MIi_UncompressBackward
+.extern MOD20_02252978
+.extern MOD20_0225298C
+.extern MOD20_022529A0
+.extern MOD20_022529B4
+.extern MOD20_02252B28
+.extern MOD20_02252B48
+.extern MOD20_02252B68
+.extern MOD20_02252BB8
+.extern MOD20_02252C08
+.extern MOD20_02252C14
+.extern MOD20_02252C30
+.extern MOD20_02252C34
+.extern MOD20_02252C38
+.extern MOD20_02252C3C
+.extern MOD20_02252C40
+.extern MOD20_02252D24
+.extern MOD20_02252D34
+.extern MOD20_02252D7C
+.extern MOD20_02252DB4
+.extern MOD20_02252DEC
+.extern MOD20_022536F4
+.extern MOD20_02253794
+.extern MOD20_022537B8
+.extern MOD20_022537E0
+.extern MOD20_02253888
+.extern MOD20_022538A0
+.extern MOD20_022538A4
+.extern MOD20_022538A8
+.extern MOD20_022538AC
+.extern MOD20_022538B0
+.extern MOD20_022538B8
+.extern MOD20_022538BC
+.extern MOD20_0225396C
+.extern MOD20_022539C4
+.extern MOD20_02253A04
+.extern MOD20_02253AA4
+.extern MOD20_02253E74
+.extern MOD20_02253F14
+.extern MOD20_02253F28
+.extern MOD20_02253F44
+.extern MOD20_02253F64
+.extern MOD20_02253F6C
+.extern MOD20_02253F78
+.extern MOD20_02253F80
+.extern MOD20_02253F9C
+.extern MOD20_02253FA4
+.extern MOD20_02253FAC
+.extern MOD20_02253FB4
+.extern MOD20_02253FBC
+.extern MOD20_02254014
+.extern MOD20_02254130
+.extern MOD20_02254198
+.extern MOD20_022542AC
+.extern MOD20_022542C0
+.extern MOD20_02254420
+.extern MOD20_02254460
+.extern MOD20_02254488
+.extern MOD51_02254A68
+.extern MOD51_02254AB8
+.extern MOD53_021D8B64
+.extern MOD53_021D917C
+.extern MOD54_021D844C
+.extern MOD54_021D88E4
+.extern MOD54_021D89CC
+.extern MOD54_021D8C24
+.extern MOD56_0221244C
+.extern MOD62_0222DAEC
+.extern MOD62_0222DD1C
+.extern MOD62_0222DD38
+.extern MOD62_0222E2BC
+.extern MOD62_0222E360
+.extern MOD62_0222E3A0
+.extern MOD62_0222E7E8
+.extern MOD62_0222E874
+.extern MOD62_0222ED34
+.extern MOD62_0222EDBC
+.extern MOD62_0222F7E0
+.extern MOD62_022300E4
+.extern MOD62_02230F3C
+.extern MOD62_02230F70
+.extern MOD62_02230F80
+.extern MOD69_0222EC60
+.extern MOD70_0222F440
+.extern MOD70_0222F480
+.extern MOD79_022122E4
+.extern MOD79_02212308
+.extern MOD79_022123A8
+.extern MOD79_02212474
+.extern MOD79_02212480
+.extern MOD79_02213B08
+.extern MOD79_02213D80
+.extern MOD79_02213DBC
+.extern MOD79_02213E24
.extern MTX_Concat33
.extern MTX_Concat43
.extern MTX_Concat44
.extern MTX_Copy43To44_
.extern MTX_Copy44To43_
+.extern MTX_Identity22_
.extern MTX_Identity33_
.extern MTX_Identity43_
.extern MTX_Identity44_
@@ -3485,8 +5542,10 @@ .extern MTX_MultVec43
.extern MTX_Rot22_
.extern MTX_RotX33_
+.extern MTX_RotX43_
.extern MTX_RotX44_
.extern MTX_RotY33_
+.extern MTX_RotY43_
.extern MTX_RotY44_
.extern MTX_RotZ33_
.extern MTX_RotZ44_
@@ -3592,6 +5651,7 @@ .extern OS_UnlockCartridge2
.extern OS_UnlockMutex
.extern OS_WaitIrq
+.extern OS_WaitVBlankIntr
.extern OS_WakeupThread
.extern OS_WakeupThreadDirect
.extern OS_YieldThread
@@ -3653,6 +5713,7 @@ .extern PM_ForceToPowerOff
.extern PM_GetBackLight
.extern PM_GetLCDPower
+.extern PM_GetLEDPattern
.extern PM_GoSleepMode
.extern PM_Init
.extern PM_PrependPreSleepCallback
@@ -3662,6 +5723,7 @@ .extern PM_SetLCDPower
.extern PMi_Lock
.extern PMi_ReadRegister
+.extern PMi_SendLEDPatternCommand
.extern PMi_SendPxiData
.extern PMi_SendSleepStart
.extern PMi_SetLED
@@ -3676,6 +5738,7 @@ .extern ProcessBlock
.extern RTC_ConvertDateTimeToSecond
.extern RTC_ConvertDateToDay
+.extern RTC_ConvertDayToDate
.extern RTC_ConvertSecondToDateTime
.extern RTC_GetDate
.extern RTC_GetDateTimeAsync
@@ -3691,6 +5754,93 @@ .extern SDK_AUTOLOAD_START
.extern SDK_IRQ_STACKSIZE
.extern SDK_MAIN_ARENA_LO
+.extern SDK_OVERLAY_MODULE_00_ID
+.extern SDK_OVERLAY_MODULE_01_ID
+.extern SDK_OVERLAY_MODULE_02_ID
+.extern SDK_OVERLAY_MODULE_03_ID
+.extern SDK_OVERLAY_MODULE_04_ID
+.extern SDK_OVERLAY_MODULE_05_ID
+.extern SDK_OVERLAY_MODULE_06_ID
+.extern SDK_OVERLAY_MODULE_07_ID
+.extern SDK_OVERLAY_MODULE_08_ID
+.extern SDK_OVERLAY_MODULE_09_ID
+.extern SDK_OVERLAY_MODULE_10_ID
+.extern SDK_OVERLAY_MODULE_11_ID
+.extern SDK_OVERLAY_MODULE_12_ID
+.extern SDK_OVERLAY_MODULE_13_ID
+.extern SDK_OVERLAY_MODULE_14_ID
+.extern SDK_OVERLAY_MODULE_15_ID
+.extern SDK_OVERLAY_MODULE_16_ID
+.extern SDK_OVERLAY_MODULE_17_ID
+.extern SDK_OVERLAY_MODULE_18_ID
+.extern SDK_OVERLAY_MODULE_19_ID
+.extern SDK_OVERLAY_MODULE_20_ID
+.extern SDK_OVERLAY_MODULE_21_ID
+.extern SDK_OVERLAY_MODULE_22_ID
+.extern SDK_OVERLAY_MODULE_23_ID
+.extern SDK_OVERLAY_MODULE_24_ID
+.extern SDK_OVERLAY_MODULE_25_ID
+.extern SDK_OVERLAY_MODULE_26_ID
+.extern SDK_OVERLAY_MODULE_27_ID
+.extern SDK_OVERLAY_MODULE_28_ID
+.extern SDK_OVERLAY_MODULE_29_ID
+.extern SDK_OVERLAY_MODULE_30_ID
+.extern SDK_OVERLAY_MODULE_31_ID
+.extern SDK_OVERLAY_MODULE_32_ID
+.extern SDK_OVERLAY_MODULE_33_ID
+.extern SDK_OVERLAY_MODULE_34_ID
+.extern SDK_OVERLAY_MODULE_35_ID
+.extern SDK_OVERLAY_MODULE_36_ID
+.extern SDK_OVERLAY_MODULE_37_ID
+.extern SDK_OVERLAY_MODULE_38_ID
+.extern SDK_OVERLAY_MODULE_39_ID
+.extern SDK_OVERLAY_MODULE_40_ID
+.extern SDK_OVERLAY_MODULE_41_ID
+.extern SDK_OVERLAY_MODULE_42_ID
+.extern SDK_OVERLAY_MODULE_43_ID
+.extern SDK_OVERLAY_MODULE_44_ID
+.extern SDK_OVERLAY_MODULE_45_ID
+.extern SDK_OVERLAY_MODULE_46_ID
+.extern SDK_OVERLAY_MODULE_47_ID
+.extern SDK_OVERLAY_MODULE_48_ID
+.extern SDK_OVERLAY_MODULE_49_ID
+.extern SDK_OVERLAY_MODULE_50_ID
+.extern SDK_OVERLAY_MODULE_51_ID
+.extern SDK_OVERLAY_MODULE_52_ID
+.extern SDK_OVERLAY_MODULE_53_ID
+.extern SDK_OVERLAY_MODULE_54_ID
+.extern SDK_OVERLAY_MODULE_55_ID
+.extern SDK_OVERLAY_MODULE_56_ID
+.extern SDK_OVERLAY_MODULE_57_ID
+.extern SDK_OVERLAY_MODULE_58_ID
+.extern SDK_OVERLAY_MODULE_59_ID
+.extern SDK_OVERLAY_MODULE_60_ID
+.extern SDK_OVERLAY_MODULE_61_ID
+.extern SDK_OVERLAY_MODULE_62_ID
+.extern SDK_OVERLAY_MODULE_63_ID
+.extern SDK_OVERLAY_MODULE_64_ID
+.extern SDK_OVERLAY_MODULE_65_ID
+.extern SDK_OVERLAY_MODULE_66_ID
+.extern SDK_OVERLAY_MODULE_67_ID
+.extern SDK_OVERLAY_MODULE_68_ID
+.extern SDK_OVERLAY_MODULE_69_ID
+.extern SDK_OVERLAY_MODULE_70_ID
+.extern SDK_OVERLAY_MODULE_71_ID
+.extern SDK_OVERLAY_MODULE_72_ID
+.extern SDK_OVERLAY_MODULE_73_ID
+.extern SDK_OVERLAY_MODULE_74_ID
+.extern SDK_OVERLAY_MODULE_75_ID
+.extern SDK_OVERLAY_MODULE_76_ID
+.extern SDK_OVERLAY_MODULE_77_ID
+.extern SDK_OVERLAY_MODULE_78_ID
+.extern SDK_OVERLAY_MODULE_79_ID
+.extern SDK_OVERLAY_MODULE_80_ID
+.extern SDK_OVERLAY_MODULE_81_ID
+.extern SDK_OVERLAY_MODULE_82_ID
+.extern SDK_OVERLAY_MODULE_83_ID
+.extern SDK_OVERLAY_MODULE_84_ID
+.extern SDK_OVERLAY_MODULE_85_ID
+.extern SDK_OVERLAY_MODULE_86_ID
.extern SDK_SECTION_ARENA_DTCM_START
.extern SDK_SECTION_ARENA_EX_START
.extern SDK_SECTION_ARENA_ITCM_START
@@ -3752,6 +5902,7 @@ .extern SNDi_SetAlarmHandler
.extern SNDi_UnlockMutex
.extern STD_CopyLString
+.extern SVC_GetCRC16
.extern SVC_Sqrt
.extern SVC_WaitByLoop
.extern ScriptCall
@@ -3759,6 +5910,7 @@ .extern ScriptReadHalfword
.extern ScriptReadWord
.extern ScriptReturn
+.extern SetCustomAllocator
.extern SetupBytecodeScript
.extern SetupNativeScript
.extern StopScript
@@ -3786,6 +5938,7 @@ .extern Unk_02106900
.extern Unk_02106A00
.extern Unk_02106A04
+.extern UnloadOverlayByID
.extern VEC_Add
.extern VEC_CrossProduct
.extern VEC_DotProduct
@@ -3794,6 +5947,7 @@ .extern VEC_Fx16DotProduct
.extern VEC_Fx16Normalize
.extern VEC_Mag
+.extern VEC_MultAdd
.extern VEC_Normalize
.extern VEC_Subtract
.extern WM_Disable
@@ -3801,6 +5955,7 @@ .extern WM_Enable
.extern WM_End
.extern WM_EndDCF
+.extern WM_EndKeySharing
.extern WM_EndMP
.extern WM_EndParent
.extern WM_EndScan
@@ -3809,11 +5964,15 @@ .extern WM_GetDispersionBeaconPeriod
.extern WM_GetDispersionScanPeriod
.extern WM_GetLinkLevel
+.extern WM_GetNextTgid
+.extern WM_GetOtherElements
.extern WM_Init
.extern WM_Initialize
.extern WM_MeasureChannel
.extern WM_PowerOff
.extern WM_PowerOn
+.extern WM_ReadMPData
+.extern WM_ReadStatus
.extern WM_Reset
.extern WM_SetBeaconIndication
.extern WM_SetDCFData
@@ -3825,17 +5984,23 @@ .extern WM_SetParentParameter
.extern WM_SetPortCallback
.extern WM_SetWEPKeyEx
+.extern WM_SetWEPKeyEx2
.extern WM_StartConnectEx
.extern WM_StartDCF
+.extern WM_StartDataSharing
+.extern WM_StartKeySharing
.extern WM_StartMP
+.extern WM_StartMPEx
.extern WM_StartParent
.extern WM_StartScan
.extern WM_StartScanEx
+.extern WM_StepDataSharing
.extern WMi_GetStatusAddress
.extern _ExitProcess
.extern __call_static_initializers
.extern __close_console
.extern __destroy_global_chain
+.extern __global_destructor_chain
.extern __msl_assertion_failed
.extern __read_console
.extern __write_console
@@ -3886,11 +6051,17 @@ .extern atod
.extern atol
.extern cardi_common
+.extern disableBankForX_
+.extern fclose
+.extern fread
+.extern fseek
+.extern ftell
.extern gScriptCmdTable
.extern memcmp
.extern memcpy
.extern memmove
.extern rand
+.extern rewind
.extern snprintf
.extern sprintf
.extern srand
@@ -3900,2195 +6071,56 @@ .extern strcmp
.extern strcpy
.extern strlen
+.extern strncat
.extern strncmp
.extern strncpy
.extern strnicmp
+.extern strspn
.extern strstr
.extern strtold2
.extern strtoul
+.extern swprintf
.extern sys_exit
.extern sys_readc
.extern sys_writec
.extern tempName_NNS_FndAllocFromExpHeapEx
.extern tempName_NNS_FndCreateExpHeapEx
-.extern __global_destructor_chain
.extern thunk_FUN_02096e4c
.extern thunk_FUN_02097190
.extern thunk_FUN_020995dc
.extern thunk_FUN_0209996c
.extern thunk_FUN_020adc8c
.extern thunk_FUN_020adc8c_2
+.extern thunk_FUN_020ae84c
.extern thunk_FUN_020afda0
.extern thunk_FUN_020afda0_2
.extern thunk_FUN_020b5040
.extern wcslen
-.extern FUN_0200CA98
-.extern FUN_020C5D8C
-.extern MOD05_021D7A20
-.extern MOD05_021D7A28
-.extern MOD05_021E8648
-.extern GX_GetBankForBGExtPltt
-.extern GX_GetBankForBGExtPltt_2
-.extern GX_GetBankForSubOBJ
-.extern GX_GetBankForSubBGExtPltt
-.extern GX_GetBankForSubBGExtPltt_2
-.extern GX_GetBankForTexPltt
-.extern FUN_0209105C
-.extern FUN_020910A4
-.extern FUN_0200143C
-.extern FUN_02001C34
-.extern FUN_02002F9C
-.extern FUN_02006584
-.extern FUN_020067D0
-.extern FUN_02006864
-.extern FUN_02008A74
-.extern FUN_02008F90
-.extern FUN_0200923C
-.extern FUN_020092F8
-.extern FUN_02009358
-.extern FUN_0200945C
-.extern FUN_02009474
-.extern FUN_02009490
-.extern FUN_02009530
-.extern FUN_02009660
-.extern FUN_020096DC
-.extern FUN_02009710
-.extern FUN_0200973C
-.extern FUN_02009768
-.extern FUN_0200979C
-.extern FUN_02009D68
-.extern FUN_02009FD8
-.extern FUN_0200A03C
-.extern FUN_0200B3C0
-.extern FUN_0200CA60
-.extern FUN_02012944
-.extern FUN_02012974
-.extern FUN_02012988
-.extern FUN_0201299C
-.extern FUN_020129B4
-.extern FUN_02012A00
-.extern FUN_02012A30
-.extern FUN_02012AC4
-.extern FUN_02012B00
-.extern FUN_02012B20
-.extern FUN_02012B30
-.extern FUN_02012B68
-.extern FUN_02013724
-.extern FUN_020137D4
-.extern FUN_02013980
-.extern FUN_02013998
-.extern FUN_020162FC
-.extern FUN_02016324
-.extern FUN_02016B20
-.extern FUN_02017B60
-.extern FUN_02017F48
-.extern FUN_02018768
-.extern FUN_0201AB28
-.extern FUN_0201AB44
-.extern FUN_0201B254
-.extern FUN_0201B26C
-.extern FUN_0201B2A8
-.extern FUN_0201B2EC
-.extern FUN_0201B398
-.extern FUN_0201B3A8
-.extern FUN_0201B3C4
-.extern FUN_0201B578
-.extern FUN_0201B580
-.extern FUN_0201B60C
-.extern FUN_0201C2C8
-.extern FUN_0201C50C
-.extern FUN_0201C578
-.extern FUN_0201C5FC
-.extern FUN_0201C6C8
-.extern FUN_0201C70C
-.extern FUN_0201C7A0
-.extern FUN_0201C7A8
-.extern FUN_0201C878
-.extern FUN_0201CAA8
-.extern FUN_0201CB20
-.extern FUN_0201CB7C
-.extern FUN_0201D060
-.extern FUN_0201EABC
-.extern FUN_0201EB48
-.extern FUN_0201EB98
-.extern FUN_0201ECA8
-.extern FUN_0201EF2C
-.extern FUN_0201F008
-.extern FUN_0201F010
-.extern FUN_0201F014
-.extern FUN_0201F02C
-.extern FUN_0201F03C
-.extern FUN_0201F100
-.extern FUN_0201F140
-.extern FUN_0201F178
-.extern FUN_0201F1B4
-.extern FUN_0201F23C
-.extern FUN_0201F2C0
-.extern FUN_0201F2D8
-.extern FUN_0201F6E8
-.extern FUN_0201F744
-.extern FUN_0201F7A4
-.extern FUN_0201F7C8
-.extern FUN_0201F7E0
-.extern FUN_0201F80C
-.extern FUN_0201F820
-.extern FUN_0201F830
-.extern FUN_0201F844
-.extern FUN_0201F86C
-.extern FUN_0201F880
-.extern FUN_0201F890
-.extern FUN_0201F8C0
-.extern FUN_0201F8E0
-.extern FUN_0201F8F0
-.extern FUN_0201FCB0
-.extern FUN_0201FF84
-.extern FUN_02020064
-.extern FUN_02020074
-.extern FUN_02020088
-.extern FUN_020200D8
-.extern FUN_020200EC
-.extern FUN_02020238
-.extern FUN_0202027C
-.extern FUN_020202A0
-.extern FUN_02020350
-.extern FUN_02020E90
-.extern FUN_02020ED4
-.extern FUN_02020EF8
-.extern FUN_02020F54
-.extern FUN_02020FF0
-.extern FUN_02021050
-.extern FUN_020210AC
-.extern FUN_020210F0
-.extern FUN_02021158
-.extern FUN_020211AC
-.extern FUN_020211BC
-.extern FUN_020211CC
-.extern FUN_0202134C
-.extern FUN_0202227C
-.extern FUN_020239F4
-.extern FUN_02023C74
-.extern FUN_02023C7C
-.extern FUN_02023C80
-.extern FUN_02023C84
-.extern FUN_02023C8C
-.extern FUN_02023C98
-.extern FUN_02023CA0
-.extern FUN_02023CA8
-.extern FUN_02023CB8
-.extern FUN_02023CC0
-.extern FUN_02023CC8
-.extern FUN_02023CF0
-.extern FUN_02023D3C
-.extern FUN_020267C4
-.extern FUN_02026810
-.extern FUN_02026840
-.extern FUN_020283A4
-.extern FUN_0202842C
-.extern FUN_02028468
-.extern FUN_02029F08
-.extern FUN_0202A9BC
-.extern FUN_0202A9C0
-.extern FUN_0202A9C4
-.extern FUN_0202A9C8
-.extern FUN_02031C10
-.extern FUN_020339B4
-.extern FUN_02033A70
-.extern FUN_02034554
-.extern FUN_02034574
-.extern FUN_02034578
-.extern FUN_02034660
-.extern FUN_02034724
-.extern FUN_02034738
-.extern FUN_020347D8
-.extern FUN_02034B18
-.extern FUN_02034B54
-.extern FUN_02034B5C
-.extern FUN_02034DC0
-.extern FUN_02034E2C
-.extern FUN_02035080
-.extern FUN_02035118
-.extern FUN_0203515C
-.extern FUN_02037090
-.extern FUN_020370BC
-.extern FUN_020371D0
-.extern FUN_02037230
-.extern FUN_02037264
-.extern FUN_02046A20
-.extern FUN_02046F70
-.extern FUN_020489DC
-.extern FUN_020489FC
-.extern FUN_02049718
-.extern FUN_02049D9C
-.extern FUN_0204A138
-.extern FUN_0204A1D8
-.extern FUN_0204A29C
-.extern FUN_0204A6B4
-.extern FUN_0204A840
-.extern FUN_0204A8C4
-.extern FUN_0204A94C
-.extern FUN_0204AE5C
-.extern FUN_0204B0F8
-.extern FUN_0204B388
-.extern FUN_0204B3B8
-.extern FUN_0204B490
-.extern FUN_0204BA68
-.extern FUN_0204BA90
-.extern FUN_0204BEB8
-.extern FUN_0204C1B4
-.extern FUN_0204C260
-.extern FUN_0204C29C
-.extern FUN_0204CA80
-.extern FUN_0204CA90
-.extern FUN_0204F6B4
-.extern FUN_0204F88C
-.extern FUN_02050A68
-.extern FUN_02050DF0
-.extern FUN_02052044
-.extern FUN_02054590
-.extern FUN_02054690
-.extern FUN_020546E0
-.extern FUN_02054744
-.extern FUN_0205478C
-.extern FUN_020547B0
-.extern FUN_020547BC
-.extern FUN_020547C8
-.extern FUN_020547D4
-.extern FUN_020547E0
-.extern FUN_020547EC
-.extern FUN_020547F8
-.extern FUN_02054804
-.extern FUN_02054810
-.extern FUN_0205481C
-.extern FUN_02054878
-.extern FUN_02054884
-.extern FUN_020548C0
-.extern FUN_020548CC
-.extern FUN_020548D8
-.extern FUN_020548E4
-.extern FUN_020548FC
-.extern FUN_02054908
-.extern FUN_02054914
-.extern FUN_02054920
-.extern FUN_0205492C
-.extern FUN_02054938
-.extern FUN_02054944
-.extern FUN_02054950
-.extern FUN_0205495C
-.extern FUN_02054968
-.extern FUN_02054984
-.extern FUN_020549A0
-.extern FUN_02054A0C
-.extern FUN_02054A18
-.extern FUN_02054A48
-.extern FUN_02054A54
-.extern FUN_02054AF0
-.extern FUN_02054B14
-.extern FUN_02054B30
-.extern FUN_02054B3C
-.extern FUN_02054B48
-.extern FUN_02054B54
-.extern FUN_02054B60
-.extern FUN_02054B6C
-.extern FUN_02054B78
-.extern FUN_02055108
-.extern FUN_02055314
-.extern FUN_02055360
-.extern FUN_02055370
-.extern FUN_02055378
-.extern FUN_020553A8
-.extern FUN_020553DC
-.extern FUN_020553E0
-.extern FUN_02055408
-.extern FUN_02055410
-.extern FUN_02055450
-.extern FUN_02055454
-.extern FUN_020555A0
-.extern FUN_020556B4
-.extern FUN_0205574C
-.extern FUN_02055764
-.extern FUN_02055898
-.extern FUN_02056B74
-.extern FUN_02057020
-.extern FUN_020570C4
-.extern FUN_0205714C
-.extern FUN_02057254
-.extern FUN_02057260
-.extern FUN_02057278
-.extern FUN_020573C8
-.extern FUN_02057614
-.extern FUN_020576A8
-.extern FUN_02057750
-.extern FUN_020577A8
-.extern FUN_020580F4
-.extern FUN_0205829C
-.extern FUN_020582A8
-.extern FUN_02058368
-.extern FUN_0205837C
-.extern FUN_02058384
-.extern FUN_02058390
-.extern FUN_0205839C
-.extern FUN_020583A0
-.extern FUN_020583A4
-.extern FUN_020583AC
-.extern FUN_020583BC
-.extern FUN_020583D4
-.extern FUN_020583F0
-.extern FUN_020583F4
-.extern FUN_02058410
-.extern FUN_02058418
-.extern FUN_02058424
-.extern FUN_0205842C
-.extern FUN_02058450
-.extern FUN_02058498
-.extern FUN_020584AC
-.extern FUN_020584C4
-.extern FUN_020584D4
-.extern FUN_0205854C
-.extern FUN_02058578
-.extern FUN_02058604
-.extern FUN_02058628
-.extern FUN_020586A0
-.extern FUN_020586DC
-.extern FUN_02058720
-.extern FUN_02058744
-.extern FUN_02058768
-.extern FUN_02058774
-.extern FUN_020587E0
-.extern FUN_02058804
-.extern FUN_02058830
-.extern FUN_02058884
-.extern FUN_02058920
-.extern FUN_02058934
-.extern FUN_02058A18
-.extern FUN_02058A68
-.extern FUN_02058A9C
-.extern FUN_02058AB4
-.extern FUN_02058B30
-.extern FUN_02058B40
-.extern FUN_02058B50
-.extern FUN_02058B5C
-.extern FUN_02058B6C
-.extern FUN_02058B84
-.extern FUN_02058B94
-.extern FUN_02058BA4
-.extern FUN_02058BC4
-.extern FUN_02059918
-.extern FUN_02059BF4
-.extern FUN_02059C00
-.extern FUN_02059C60
-.extern FUN_02059C90
-.extern FUN_02059E60
-.extern FUN_02059E9C
-.extern FUN_0205AD98
-.extern FUN_0205ADDC
-.extern FUN_0205AE50
-.extern FUN_0205AFDC
-.extern FUN_0205C334
-.extern FUN_0205C340
-.extern FUN_0205C598
-.extern FUN_0205CDB4
-.extern FUN_0205CDD8
-.extern FUN_0205DB44
-.extern FUN_0205E0A8
-.extern FUN_0205E4A4
-.extern FUN_0205ED7C
-.extern FUN_0205ED9C
-.extern FUN_0205EEB8
-.extern FUN_0205F1E4
-.extern FUN_0205F3E8
-.extern FUN_0205F408
-.extern FUN_0205F41C
-.extern FUN_0205F42C
-.extern FUN_0205F43C
-.extern FUN_0205F44C
-.extern FUN_0205F56C
-.extern FUN_0205F780
-.extern FUN_0205F790
-.extern FUN_020619C0
-.extern FUN_020643C0
-.extern FUN_020643F0
-.extern FUN_020644E4
-.extern FUN_02064520
-.extern FUN_02064584
-.extern FUN_02064738
-.extern FUN_02064754
-.extern FUN_0206475C
-.extern FUN_0206476C
-.extern FUN_0206477C
-.extern FUN_02064E4C
-.extern FUN_02067960
-.extern FUN_020687C8
-.extern FUN_02068884
-.extern FUN_020688E8
-.extern FUN_020689E8
-.extern FUN_02068A20
-.extern FUN_020690AC
-.extern FUN_020690E8
-.extern FUN_02069558
-.extern FUN_02069698
-.extern FUN_02069708
-.extern FUN_02069818
-.extern FUN_02069BA0
-.extern FUN_02069BB4
-.extern FUN_02069BFC
-.extern FUN_0206A16C
-.extern FUN_0206B938
-.extern FUN_02087A6C
-.extern FUN_02087A84
-.extern FUN_02087A98
-.extern FUN_02087B0C
-.extern FUN_02087B58
-.extern FUN_020AF6A4
-.extern FUN_020AFA30
-.extern FUN_020B7E28
-.extern FUN_020B7EFC
-.extern FUN_020B8110
-.extern FUN_020B8344
-.extern FUN_020B8390
-.extern FUN_020B83BC
-.extern FUN_020B83E0
-.extern FUN_020B8404
-.extern FUN_020B8418
-.extern FUN_020BB8D0
-.extern FUN_020BB8F4
-.extern FUN_020BB934
-.extern FUN_020BB974
-.extern FUN_020BB9B4
-.extern FUN_020BB9F4
-.extern FUN_020BBA34
-.extern FUN_020BBA74
-.extern FUN_020BBAB4
-.extern FUN_020BBAF4
-.extern FUN_020BBB34
-.extern FUN_020BBB74
-.extern FUN_020BBBB4
-.extern FUN_020BBBF4
-.extern FUN_020BBC34
-.extern FUN_020BC094
-.extern FUN_020BC4C8
-.extern MOD06_0223BA04
-.extern MOD06_0223BE70
-.extern MOD06_0223C08C
-.extern MOD06_0223CDB8
-.extern MOD18_0223D8F4
-.extern MOD18_0223DC98
-.extern MOD18_0223DCB4
-.extern MOD18_0223DCD0
-.extern MOD18_0223E2C4
-.extern MOD18_0223E2DC
-.extern MOD06_02242404
-.extern MOD06_022426AC
-.extern MOD06_02249B7C
-.extern MOD06_0224A130
-.extern MOD06_0224A6B8
-.extern MOD06_0224A6FC
-.extern MOD06_0224A8D4
-.extern MOD06_0224AA40
-.extern MOD06_0224ADF8
-.extern MOD06_0224AEE8
-.extern MOD06_0224AF68
-.extern MOD06_0224ED94
-.extern MOD06_0224EDA8
-.extern MOD06_0224F0BC
-.extern MOD06_0224F0D0
-.extern MOD19_02252440
-.extern MOD20_02252448
-.extern MOD20_022524BC
-.extern MOD20_022524D0
-.extern MOD20_022524DC
-.extern MOD19_022524F4
-.extern MOD19_02252504
-.extern MOD51_02254A68
-.extern MOD51_02254AB8
-.extern FX_Atan
-.extern G3X_SetEdgeColorTable
-.extern G3X_SetFogTable
-.extern G3X_SetHOffset
-.extern GX_GetBankForLCDC
-.extern MTX_Identity22_
-.extern MTX_RotX43_
-.extern MTX_RotY43_
-.extern thunk_FUN_020ae84c
-.extern VEC_MultAdd
-.extern FUN_0200C334
-.extern FUN_0200C5C0
-.extern FUN_0200CA40
-.extern FUN_02011744
-.extern FUN_020117BC
-.extern FUN_020117E8
-.extern FUN_02011870
-.extern FUN_020118C4
-.extern FUN_020119D0
-.extern FUN_02011A60
-.extern FUN_020190EC
-.extern FUN_0202930C
-.extern FUN_0202934C
-.extern FUN_0202938C
-.extern FUN_020293EC
-.extern FUN_020294B4
-.extern FUN_020313CC
-.extern FUN_0206AE00
-.extern FUN_0206B6D4
-.extern FUN_0206B888
-.extern FUN_0206B890
-.extern FUN_0206B89C
-.extern FUN_020724D4
-.extern FUN_02079A0C
-.extern FUN_02079A54
-.extern FUN_02079A70
-.extern FUN_0207C2D4
-.extern FUN_02047964
-.extern FUN_02055648
-.extern FUN_02058544
-.extern FUN_02061208
-.extern MOD06_0223BD14
-.extern FUN_02001328
-.extern FUN_020021EC
-.extern FUN_020090FC
-.extern FUN_020091E0
-.extern FUN_02009298
-.extern FUN_020094F0
-.extern FUN_02009BE8
-.extern FUN_02009C5C
-.extern FUN_02009E54
-.extern FUN_0201244C
-.extern FUN_02012470
-.extern FUN_02012560
-.extern FUN_02012794
-.extern FUN_02013C28
-.extern FUN_02013C6C
-.extern FUN_02016B90
-.extern FUN_0201B988
-.extern FUN_0201B9A0
-.extern FUN_0201E720
-.extern FUN_0201E7CC
-.extern FUN_0201EB78
-.extern FUN_0201F7F0
-.extern FUN_0201FDB4
-.extern FUN_02020054
-.extern FUN_02020120
-.extern FUN_02021ACC
-.extern FUN_02023948
-.extern FUN_02023BA4
-.extern FUN_02023BE8
-.extern FUN_02023C04
-.extern FUN_02029054
-.extern FUN_02029060
-.extern FUN_0202906C
-.extern FUN_02029078
-.extern FUN_02029084
-.extern FUN_02029578
-.extern FUN_0202A1E4
-.extern FUN_0202A36C
-.extern FUN_0202A3A0
-.extern FUN_0202A40C
-.extern FUN_0202A444
-.extern FUN_0202A474
-.extern FUN_0202A4B8
-.extern FUN_0202A744
-.extern FUN_0202A798
-.extern FUN_0202AA90
-.extern FUN_0202AAB8
-.extern FUN_0202AB4C
-.extern FUN_0202AB54
-.extern FUN_0202AB80
-.extern FUN_0202AB8C
-.extern FUN_0202ABA0
-.extern FUN_0202B40C
-.extern FUN_0202B410
-.extern FUN_0202B414
-.extern FUN_0202B440
-.extern FUN_0202B458
-.extern FUN_0202B534
-.extern FUN_0202B538
-.extern FUN_0202B53C
-.extern FUN_0202B540
-.extern FUN_0202B544
-.extern FUN_0202B5C8
-.extern FUN_0202B5CC
-.extern FUN_0202B678
-.extern FUN_0202B7C8
-.extern FUN_0202B7F4
-.extern FUN_0202B820
-.extern FUN_0202C12C
-.extern FUN_0202DEA4
-.extern FUN_0202DEE0
-.extern FUN_0202DF08
-.extern FUN_0202DF28
-.extern FUN_0202E08C
-.extern FUN_0202E810
-.extern FUN_0202E844
-.extern FUN_0202E878
-.extern FUN_0202E88C
-.extern FUN_0202E9AC
-.extern FUN_0202EE84
-.extern FUN_020314E8
-.extern FUN_0203162C
-.extern FUN_02031640
-.extern FUN_02031668
-.extern FUN_02031A24
-.extern FUN_020345FC
-.extern FUN_020349AC
-.extern FUN_020349B8
-.extern FUN_02034CB4
-.extern FUN_02034CE0
-.extern FUN_0203781C
-.extern FUN_020469B8
-.extern FUN_020476CC
-.extern FUN_020477EC
-.extern FUN_020479FC
-.extern FUN_02047A78
-.extern FUN_02047BB0
-.extern FUN_020480AC
-.extern FUN_020480E4
-.extern FUN_02049494
-.extern FUN_0204A9F0
-.extern FUN_0204AA5C
-.extern FUN_0204AAD4
-.extern FUN_0204B2CC
-.extern FUN_0204B2E4
-.extern FUN_0204CAE0
-.extern FUN_0204FEB0
-.extern FUN_0204FEF0
-.extern FUN_0204FF30
-.extern FUN_0204FF4C
-.extern FUN_0205464C
-.extern FUN_02054798
-.extern FUN_02054890
-.extern FUN_0205489C
-.extern FUN_020548A8
-.extern FUN_02054AFC
-.extern FUN_02055350
-.extern FUN_02055540
-.extern FUN_0205557C
-.extern FUN_020572B8
-.extern FUN_020582F8
-.extern FUN_0205845C
-.extern FUN_020584C8
-.extern FUN_02058750
-.extern FUN_020587F4
-.extern FUN_02058890
-.extern FUN_020589CC
-.extern FUN_02058A00
-.extern FUN_02058B14
-.extern FUN_02058B1C
-.extern FUN_02058B24
-.extern FUN_02058B3C
-.extern FUN_02058B80
-.extern FUN_0205DD80
-.extern FUN_0205DFE8
-.extern FUN_0205E080
-.extern FUN_0205E098
-.extern FUN_0205E480
-.extern FUN_0205EB14
-.extern FUN_0205F154
-.extern FUN_0205F164
-.extern FUN_0205F1A4
-.extern FUN_0205F6E8
-.extern FUN_0205FC50
-.extern FUN_02060064
-.extern FUN_020600A0
-.extern FUN_020600DC
-.extern FUN_020603B0
-.extern FUN_0206043C
-.extern FUN_02060D1C
-.extern FUN_02060D48
-.extern FUN_02060FBC
-.extern FUN_02061904
-.extern FUN_020646DC
-.extern FUN_02066D90
-.extern FUN_02066DD4
-.extern FUN_02066EA4
-.extern FUN_02068758
-.extern FUN_02068A80
-.extern FUN_02068AD8
-.extern FUN_0206A094
-.extern FUN_0206A92C
-.extern FUN_0206A964
-.extern FUN_0206A984
-.extern FUN_0206ABC4
-.extern FUN_0206B8CC
-.extern FUN_0206B9DC
-.extern FUN_0206BB5C
-.extern FUN_0206BB74
-.extern FUN_0206BE48
-.extern FUN_0206E640
-.extern FUN_0206E790
-.extern FUN_02079AAC
-.extern FUN_02085FD0
-.extern FUN_0208603C
-.extern FUN_02086060
-.extern FUN_02089368
-.extern FUN_02089394
-.extern FUN_020BC02C
-.extern MOD05_021D80E4
-.extern MOD05_021D9320
-.extern MOD05_021D94B4
-.extern MOD05_021D9510
-.extern MOD05_021DA03C
-.extern MOD05_021DA080
-.extern MOD05_021DA0DC
-.extern MOD05_021DA0E0
-.extern MOD05_021DA0E8
-.extern MOD05_021DA118
-.extern MOD05_021DA138
-.extern MOD05_021DA1A0
-.extern MOD05_021DA1A4
-.extern MOD05_021DA1A8
-.extern MOD05_021DA20C
-.extern MOD05_021DA4BC
-.extern MOD05_021DB44C
-.extern MOD05_021DB4B0
-.extern MOD05_021DB52C
-.extern MOD05_021DB53C
-.extern MOD05_021DBA40
-.extern MOD05_021DBA78
-.extern MOD05_021DBAA0
-.extern MOD05_021E4BE8
-.extern MOD05_021E4C00
-.extern MOD05_021E4C08
-.extern MOD05_021E4C20
-.extern MOD05_021E4C24
-.extern MOD05_021E4C6C
-.extern MOD05_021E4DC4
-.extern MOD05_021E4E90
-.extern MOD05_021E4EE4
-.extern MOD05_021E4EFC
-.extern MOD05_021E506C
-.extern MOD05_021E5078
-.extern MOD05_021E5094
-.extern MOD05_021E50A0
-.extern MOD05_021E50AC
-.extern MOD05_021E50C8
-.extern MOD05_021E50D4
-.extern MOD05_021E5114
-.extern MOD05_021E5198
-.extern MOD05_021E51EC
-.extern MOD05_021E5224
-.extern MOD05_021E5260
-.extern MOD05_021E5294
-.extern MOD05_021E7C80
-.extern MOD05_021E7E9C
-.extern MOD05_021E7EC0
-.extern MOD05_021E7ECC
-.extern MOD05_021E7EEC
-.extern MOD05_021E8698
-.extern MOD05_021F0514
-.extern MOD05_021F1C1C
-.extern MOD05_021F1C30
-.extern MOD05_021F1E64
-.extern MOD05_021F220C
-.extern MOD05_021F51D0
-.extern MOD05_021F522C
-.extern MOD05_021F5268
-.extern MOD05_021F52C8
-.extern MOD05_021F531C
-.extern MOD05_021F5348
-.extern MOD05_021F5358
-.extern MOD05_021F5384
-.extern MOD05_021F53BC
-.extern MOD05_021F53F8
-.extern MOD05_021F5400
-.extern MOD05_021F5424
-.extern MOD05_021F5430
-.extern MOD05_021F54CC
-.extern MOD05_021F54D0
-.extern MOD05_021F54D8
-.extern MOD05_021F61F4
-.extern MOD05_021F6234
-.extern MOD05_021F6240
-.extern MOD05_021F6254
-.extern FUN_020031B8
-.extern FUN_02003204
-.extern FUN_020039E8
-.extern FUN_02003A64
-.extern FUN_02003B40
-.extern FUN_020054A8
-.extern FUN_02005530
-.extern FUN_0200554C
-.extern FUN_02005614
-.extern FUN_02007E40
-.extern FUN_020080E0
-.extern FUN_0200813C
-.extern FUN_020081C0
-.extern FUN_02008268
-.extern FUN_0200C59C
-.extern FUN_0200C5B4
-.extern FUN_0200C5E0
-.extern FUN_0200C5F4
-.extern FUN_0200C608
-.extern FUN_0200C630
-.extern FUN_0200C658
-.extern FUN_0200C680
-.extern FUN_0200C68C
-.extern FUN_0200C6A4
-.extern FUN_0200C6B0
-.extern FUN_0200C6C4
-.extern FUN_0200C7FC
-.extern FUN_0200C898
-.extern FUN_0200C8BC
-.extern FUN_0200C8D0
-.extern FUN_0200C8DC
-.extern FUN_0200C8F8
-.extern FUN_0200C90C
-.extern FUN_020129C8
-.extern FUN_020129D8
-.extern FUN_02013348
-.extern FUN_020133DC
-.extern FUN_020133EC
-.extern FUN_020133FC
-.extern FUN_0201341C
-.extern FUN_02013428
-.extern FUN_02013448
-.extern FUN_02013514
-.extern FUN_02013530
-.extern FUN_02013548
-.extern FUN_0201357C
-.extern FUN_02013594
-.extern FUN_020135B0
-.extern FUN_020135C4
-.extern FUN_020135E0
-.extern FUN_020135F4
-.extern FUN_02013610
-.extern FUN_02013628
-.extern FUN_0201365C
-.extern FUN_02013674
-.extern FUN_020170F4
-.extern FUN_020187B0
-.extern FUN_0201B6CC
-.extern FUN_02029CE4
-.extern FUN_02029CE8
-.extern FUN_02068E88
-.extern FUN_02069FB0
-.extern FUN_02085FF4
-.extern FUN_02086018
-.extern MOD11_02230078
-.extern MOD11_02230080
-.extern MOD11_022300CC
-.extern MOD11_022312D0
-.extern MOD11_02231504
-.extern MOD11_02231534
-.extern MOD11_02231678
-.extern MOD12_02233560
-.extern FX_Modf
-.extern FUN_02002F40
-.extern FUN_0200B144
-.extern FUN_0200C5CC
-.extern FUN_0200CD60
-.extern FUN_02016BF4
-.extern FUN_0201878C
-.extern FUN_0201C62C
-.extern FUN_02020AA4
-.extern FUN_0206AB18
-.extern FUN_0206AB30
-.extern FUN_0206B334
-.extern FUN_0206E0F0
-.extern FUN_0206E114
-.extern FUN_0206E12C
-.extern FUN_0206E130
-.extern FUN_0206E198
-.extern FUN_0206E1D4
-.extern FUN_0206E278
-.extern FUN_0206E290
-.extern FUN_0206E2A8
-.extern FUN_0206E2AC
-.extern FUN_0206E708
-.extern FUN_0206E70C
-.extern FUN_0206E710
-.extern FUN_0206E7DC
-.extern FUN_0206F0D8
-.extern FUN_0206F1A0
-.extern FUN_0206F1AC
-.extern FUN_0206F1B0
-.extern FUN_0206F1B4
-.extern FUN_0206F1B8
-.extern FUN_0206F1E4
-.extern FUN_0206F1EC
-.extern FUN_020724C4
-.extern FUN_020724C8
-.extern FUN_020724CC
-.extern FUN_020724D0
-.extern FUN_0207C2C4
-.extern FUN_0207C2C8
-.extern FUN_0207C2CC
-.extern FUN_0207C2D0
-.extern FUN_02083114
-.extern FUN_0208315C
-.extern MOD11_0222FF68
-.extern MOD11_0222FF74
-.extern MOD11_0222FF78
-.extern MOD11_0222FF88
-.extern MOD11_02230014
-.extern MOD11_02230188
-.extern MOD11_02230214
-.extern MOD11_02230218
-.extern MOD11_02230260
-.extern MOD11_02230290
-.extern MOD11_022302BC
-.extern MOD11_02230370
-.extern MOD11_02230E44
-.extern MOD11_02230E54
-.extern MOD11_02231238
-.extern MOD11_0224C474
-.extern MOD11_0225D3EC
-.extern MOD11_0225D45C
-.extern MOD11_0225D484
-.extern MOD11_0225D508
-.extern MOD11_0225D5DC
-.extern MOD11_0225D648
-.extern MOD11_0225D6A4
-.extern MOD11_0225D714
-.extern MOD11_0225D73C
-.extern MOD11_0225D7B8
-.extern MOD11_0225D800
-.extern MOD11_0225D80C
-.extern MOD11_0225D820
-.extern MOD11_0225D824
-.extern FUN_02002BD4
-.extern FUN_02002BE4
-.extern FUN_02002BF4
-.extern FUN_02002C04
-.extern FUN_02003914
-.extern FUN_02005EE0
-.extern FUN_02006BDC
-.extern FUN_020073E8
-.extern FUN_02007540
-.extern FUN_02007F34
-.extern FUN_020081B4
-.extern FUN_02008284
-.extern FUN_02008290
-.extern FUN_02008D44
-.extern FUN_02008DDC
-.extern FUN_0200AA14
-.extern FUN_0200B0D4
-.extern FUN_0200BAAC
-.extern FUN_0200BC38
-.extern FUN_0200C344
-.extern FUN_0200C650
-.extern FUN_0200C720
-.extern FUN_0200C750
-.extern FUN_0200C978
-.extern FUN_02011898
-.extern FUN_020119A4
-.extern FUN_02011AC0
-.extern FUN_02012EAC
-.extern FUN_0201C328
-.extern FUN_0201C350
-.extern FUN_0201D568
-.extern FUN_0201D5E8
-.extern FUN_0201D658
-.extern FUN_0201D674
-.extern FUN_020202DC
-.extern FUN_0202502C
-.extern FUN_02033590
-.extern FUN_02033778
-.extern FUN_02061028
-.extern FUN_02066F04
-.extern FUN_02068018
-.extern FUN_0206851C
-.extern FUN_02068538
-.extern FUN_02068640
-.extern FUN_02068654
-.extern FUN_02068698
-.extern FUN_02068734
-.extern FUN_02068FE0
-.extern FUN_02069010
-.extern FUN_02069038
-.extern FUN_020697CC
-.extern FUN_02069AEC
-.extern FUN_02069BE4
-.extern FUN_02069C4C
-.extern FUN_02069CF4
-.extern FUN_02069DC8
-.extern FUN_02069F24
-.extern FUN_0206A014
-.extern FUN_0206A94C
-.extern FUN_0206AA30
-.extern FUN_0206AB04
-.extern FUN_0206AB58
-.extern FUN_0206ACD4
-.extern FUN_0206ADE0
-.extern FUN_0206ADF0
-.extern FUN_0206B244
-.extern FUN_0206B330
-.extern FUN_0206B428
-.extern FUN_0206B87C
-.extern FUN_0206B894
-.extern FUN_0206B8A0
-.extern FUN_0206B8AC
-.extern FUN_0206BAD0
-.extern FUN_0206BB34
-.extern FUN_0206BF90
-.extern FUN_0206BFF0
-.extern FUN_0206C0C8
-.extern FUN_0206C1A0
-.extern FUN_0206C1FC
-.extern FUN_0206C224
-.extern FUN_0206C268
-.extern FUN_0206C294
-.extern FUN_0206C2D4
-.extern FUN_0206C2F8
-.extern FUN_0206C33C
-.extern FUN_0206C364
-.extern FUN_0206C398
-.extern FUN_0206C3F4
-.extern FUN_0206C438
-.extern FUN_0206C46C
-.extern FUN_0206C4C4
-.extern FUN_0206C4F0
-.extern FUN_0206E21C
-.extern FUN_0206E224
-.extern FUN_0206E22C
-.extern FUN_0206E240
-.extern FUN_0206E270
-.extern FUN_0206E2E0
-.extern FUN_0206E2E8
-.extern FUN_0206EAEC
-.extern FUN_0206EB50
-.extern FUN_0206EB78
-.extern FUN_0206EB88
-.extern FUN_0206EBB4
-.extern FUN_0206F1C0
-.extern FUN_020799E8
-.extern FUN_02079A24
-.extern FUN_02087B78
-.extern MOD16_021EEF0C
-.extern MOD05_021EEF68
-.extern MOD16_021EEF84
-.extern MOD16_021EEF98
-.extern MOD05_021EEF9C
-.extern MOD16_021EFBF4
-.extern MOD16_021EFD8C
-.extern MOD16_021F45A4
-.extern MOD16_021F4698
-.extern MOD16_021F4A30
-.extern MOD08_02211E7C
-.extern MOD08_02211F5C
-.extern MOD08_02212024
-.extern MOD08_02212048
-.extern MOD08_02212384
-.extern MOD08_022123A0
-.extern MOD08_022123B0
-.extern MOD08_022156C0
-.extern MOD08_0221590C
-.extern MOD08_02215918
-.extern MOD08_0221594C
-.extern MOD08_02215988
-.extern MOD08_02215A44
-.extern MOD09_022186F0
-.extern FX_ModS32
-.extern MOD08_02228218
-.extern MOD08_02228524
-.extern MOD08_02228570
-.extern MOD08_022285A4
-.extern MOD08_022285B4
-.extern MOD08_02228618
-.extern MOD08_02228AB8
-.extern MOD08_02228AC0
-.extern MOD08_02229918
-.extern MOD08_022299E8
-.extern MOD08_02229A00
-.extern MOD08_02229A2C
-.extern MOD08_02229A5C
-.extern MOD08_02229A80
-.extern MOD08_02229FE4
-.extern MOD08_02229FF0
-.extern MOD08_0222A008
-.extern MOD08_0222A00C
-.extern MOD08_0222A018
-.extern MOD08_0222A024
-.extern MOD08_0222A0D4
-.extern MOD08_0222A110
-.extern MOD08_0222A14C
-.extern MOD08_0222A170
-.extern MOD08_0222A1DC
-.extern MOD08_0222A204
-.extern MOD08_0222A494
-.extern MOD08_0222A568
-.extern MOD08_0222A6A4
-.extern FUN_02003084
-.extern FUN_0200317C
-.extern FUN_02003A30
-.extern FUN_02004D34
-.extern FUN_02004F64
-.extern FUN_0200C7F0
-.extern FUN_02011A90
-.extern FUN_02011AF0
-.extern FUN_02013450
-.extern FUN_0201B954
-.extern FUN_0201B9B8
-.extern FUN_02027A14
-.extern FUN_02027BDC
-.extern FUN_020799F4
-.extern FUN_02082878
-.extern FUN_02082880
-.extern FUN_020828BC
-.extern FUN_02082E64
-.extern FUN_02083130
-.extern FUN_02083170
-.extern FUN_02083228
-.extern FUN_020832A4
-.extern FUN_020832DC
-.extern FUN_020832EC
-.extern FUN_02083308
-.extern FUN_0208336C
-.extern FUN_020833D4
-.extern FUN_02083404
-.extern MOD17_021DD4F4
-.extern MOD17_021DD518
-.extern MOD17_021DD540
-.extern MOD17_021DD58C
-.extern MOD17_021DD594
-.extern MOD17_021DD59C
-.extern MOD17_021DD604
-.extern MOD05_021DD60C
-.extern MOD17_021DD620
-.extern MOD17_021DD678
-.extern MOD17_021DD6B8
-.extern MOD17_021DD6CC
-.extern MOD08_02211FF0
-.extern FUN_0202E49C
-.extern MOD08_02228574
-.extern MOD08_0222A6C8
-.extern MOD13_02223494
-.extern MOD13_02213174
-.extern MOD13_02213270
-.extern MOD13_022132CC
-.extern MOD13_02213368
-.extern MOD13_02213944
-.extern MOD13_02213CB0
-.extern MOD13_0221411C
-.extern MOD13_02214D6C
-.extern MOD13_02214F18
-.extern MOD13_02215028
-.extern MOD13_02215360
-.extern MOD13_02215474
-.extern MOD13_02219798
-.extern MOD13_02219C9C
-.extern MOD13_02219D58
-.extern MOD13_0221A794
-.extern MOD13_0221A7EC
-.extern MOD13_0221A8A4
-.extern FS_OpenFileDirect
-.extern FUN_020D9564
-.extern WM_GetNextTgid
-.extern WM_ReadMPData
-.extern WM_StartMPEx
-.extern FUN_020A8358
-.extern FUN_020A83D0
-.extern FUN_020A846C
-.extern FUN_020A84D8
-.extern disableBankForX_
-.extern FS_ChangeDir
-.extern FS_InitArchive
-.extern FS_LoadArchive
-.extern FS_RegisterArchiveName
-.extern FS_SetArchiveProc
-.extern FS_UnloadArchiveTables
-.extern FUN_0200D06C
-.extern FUN_02013870
-.extern FUN_02013974
-.extern FUN_020139B0
-.extern FUN_02013A58
-.extern FUN_02021E8C
-.extern FUN_0208540C
-.extern FUN_02085424
-.extern FUN_02085428
-.extern FUN_0208545C
-.extern FUN_020854A0
-.extern FUN_02088F0C
-.extern FUN_02088F4C
-.extern FUN_020892C4
-.extern FUN_020892CC
-.extern FUN_020892EC
-.extern FUN_02089300
-.extern FUN_02089310
-.extern FUN_02089338
-.extern FUN_02095324
-.extern FUN_02095330
-.extern FUN_02095AE0
-.extern FUN_02095B0C
-.extern FUN_02095BB0
-.extern FUN_02095BE0
-.extern FUN_02095CDC
-.extern FUN_02095D68
-.extern FUN_02096190
-.extern FUN_020967A4
-.extern FUN_020B5C88
-.extern FUN_020B5CE4
-.extern FUN_020B5D3C
-.extern FUN_020B5E50
-.extern FUN_020B6180
-.extern FUN_020B6240
-.extern FUN_020B62F8
-.extern FUN_020B6388
-.extern FUN_020B63CC
-.extern FUN_020B7168
-.extern FUN_020B7218
-.extern FUN_020C2444
-.extern FUN_020C5E04
-.extern FS_LoadArchiveTables
-.extern FS_UnloadArchive
-.extern FS_ReleaseArchiveName
-.extern MOD04_021EB9A4
-.extern MOD04_021EB9D8
-.extern MOD04_021EBAE8
-.extern MOD04_021EBB80
-.extern MOD04_021EBC60
-.extern FUN_020051EC
-.extern FUN_02006D18
-.extern FUN_020081A8
-.extern FUN_02011938
-.extern FUN_02011A00
-.extern FUN_02013CD4
-.extern FUN_02013D18
-.extern FUN_02013D5C
-.extern FUN_02024594
-.extern FUN_020246DC
-.extern FUN_02024748
-.extern FUN_020247C8
-.extern FUN_0202484C
-.extern FUN_020248BC
-.extern FUN_02024D00
-.extern FUN_02024D58
-.extern FUN_0208A328
-.extern FUN_0208A32C
-.extern FUN_0208A330
-.extern FUN_0208A334
-.extern FUN_020AEAF4
-.extern FUN_020AEC60
-.extern FUN_020AEDF4
-.extern G2x_SetBlendBrightnessExt_
-.extern FUN_02002F90
-.extern FUN_02004C80
-.extern FUN_02004CA4
-.extern FUN_02004CAC
-.extern FUN_02004CB4
-.extern FUN_02004CFC
-.extern FUN_02004D04
-.extern FUN_02004D20
-.extern FUN_02004D4C
-.extern FUN_02004E80
-.extern FUN_02004E8C
-.extern FUN_02004E98
-.extern FUN_02004F28
-.extern FUN_02004F70
-.extern FUN_02007EEC
-.extern FUN_0200955C
-.extern FUN_02011A30
-.extern FUN_02013D98
-.extern FUN_02013DD4
-.extern FUN_02013E14
-.extern FUN_02013E44
-.extern FUN_02013E84
-.extern FUN_02013EB0
-.extern FUN_02013F2C
-.extern FUN_0201AB24
-.extern FUN_0201AF08
-.extern FUN_0201AF50
-.extern FUN_0201BBD0
-.extern FUN_0201BC84
-.extern FUN_020202A8
-.extern FUN_02020300
-.extern FUN_020203CC
-.extern FUN_0206B88C
-.extern FUN_0206B898
-.extern FUN_02087B98
-.extern FUN_02087BB8
-.extern FUN_02087BD8
-.extern FUN_02087BF8
-.extern MOD11_0222FF84
-.extern MOD11_0222FFC8
-.extern MOD11_0223022C
-.extern MOD11_02230270
-.extern MOD11_02243420
-.extern MOD11_02244248
-.extern MOD11_02245D38
-.extern MOD11_02246274
-.extern MOD11_022465A0
-.extern MOD11_02246870
-.extern MOD11_02246B9C
-.extern MOD11_02246D1C
-.extern MOD11_022473F8
-.extern MOD11_022476C0
-.extern MOD11_022482A4
-.extern MOD11_02249D90
-.extern MOD11_02249E04
-.extern MOD11_02249E58
-.extern MOD11_0224B310
-.extern MOD11_0224C12C
-.extern FSi_ExecuteSyncCommand
-.extern FSi_InitRom
-.extern FSi_SendCommand
-.extern FSi_TranslateCommand
-.extern FS_NotifyArchiveAsyncEnd
-.extern FS_ResumeArchive
-.extern FS_SuspendArchive
-.extern FS_ReadFileAsync
-.extern FSi_ReleaseCommand
-.extern FX_DivS32
-.extern G2x_ChangeBlendBrightness_
-.extern GX_DisableBankForARM7
-.extern GX_DisableBankForBGExtPltt
-.extern GX_DisableBankForClearImage
-.extern GX_DisableBankForOBJExtPltt
-.extern GX_DisableBankForOBJExtPltt_2
-.extern GX_DisableBankForSubBGExtPltt
-.extern GX_DisableBankForSubOBJExtPltt
-.extern GX_DisableBankForSubOBJExtPltt_2
-.extern GX_DisableBankForTexPltt
-.extern GX_DisableBankForTexPltt_2
-.extern GX_SetBankForARM7
-.extern OS_WaitVBlankIntr
-.extern PM_GetLEDPattern
-.extern PMi_SendLEDPatternCommand
-.extern swprintf
-.extern WM_EndKeySharing
-.extern WM_GetOtherElements
-.extern WM_ReadStatus
-.extern WM_SetWEPKeyEx2
-.extern WM_StartDataSharing
-.extern WM_StartKeySharing
-.extern WM_StepDataSharing
-.extern FUN_02002218
-.extern FUN_02006A34
-.extern FUN_02006A8C
-.extern FUN_02006AE4
-.extern FUN_02006B38
-.extern FUN_02006C30
-.extern FUN_02006C5C
-.extern FUN_02018F4C
-.extern FUN_02019270
-.extern FUN_0201928C
-.extern FUN_020192B8
-.extern FUN_02019684
-.extern FUN_02020240
-.extern FUN_0202032C
-.extern FUN_02020334
-.extern FUN_02020A40
-.extern FUN_02020AB0
-.extern FUN_02021B04
-.extern FUN_020220C4
-.extern FUN_02022144
-.extern FUN_020669BC
-.extern FUN_02066A6C
-.extern FUN_02066A94
-.extern FUN_02068824
-.extern FUN_0206885C
-.extern FUN_02068A44
-.extern FUN_02068B70
-.extern FUN_020690C8
-.extern FUN_02069ECC
-.extern FUN_0206B2B0
-.extern FUN_0206B2FC
-.extern FUN_0206B43C
-.extern FUN_0206B458
-.extern FUN_0206B4B4
-.extern FUN_0206B4E4
-.extern FUN_0206B598
-.extern FUN_0206B668
-.extern FUN_0206B688
-.extern FUN_0206BB48
-.extern FUN_0206E108
-.extern FUN_0206E10C
-.extern FUN_0206E768
-.extern FUN_020B1A1C
-.extern G3X_ResetMtxStack_2
-.extern FUN_0200825C
-.extern FUN_02013DEC
-.extern FUN_02001658
-.extern FUN_02001B80
-.extern FUN_02004928
-.extern FUN_02009BB8
-.extern FUN_0200B2E0
-.extern FUN_0200B318
-.extern FUN_0200E31C
-.extern FUN_020128C4
-.extern FUN_0201B21C
-.extern FUN_0201D2AC
-.extern FUN_0201E1B4
-.extern FUN_02020184
-.extern FUN_0202595C
-.extern FUN_02025960
-.extern FUN_02025964
-.extern FUN_02025C00
-.extern FUN_02025C18
-.extern FUN_02025C38
-.extern FUN_02025CD8
-.extern FUN_02025D40
-.extern FUN_02025D48
-.extern FUN_02025DC8
-.extern FUN_02025DD4
-.extern FUN_02025EDC
-.extern FUN_02025F0C
-.extern FUN_02025F30
-.extern FUN_02025F44
-.extern FUN_02025F80
-.extern FUN_02025F98
-.extern FUN_02025FA4
-.extern FUN_02025FD8
-.extern FUN_02026050
-.extern FUN_02026068
-.extern FUN_02026074
-.extern FUN_02026080
-.extern FUN_0202616C
-.extern FUN_02026188
-.extern FUN_02026194
-.extern FUN_020261C8
-.extern FUN_0202623C
-.extern FUN_02026258
-.extern FUN_02026264
-.extern FUN_0202630C
-.extern FUN_02026354
-.extern FUN_02026370
-.extern FUN_0202639C
-.extern FUN_020263C8
-.extern FUN_020263F4
-.extern FUN_02026444
-.extern FUN_02026450
-.extern FUN_02026470
-.extern FUN_02026490
-.extern FUN_0202649C
-.extern FUN_020264F0
-.extern FUN_020264FC
-.extern FUN_0202651C
-.extern FUN_0202653C
-.extern FUN_02026548
-.extern FUN_02026554
-.extern FUN_020265B8
-.extern FUN_020265E0
-.extern FUN_02026600
-.extern FUN_02026620
-.extern FUN_02026634
-.extern FUN_02026648
-.extern FUN_02026654
-.extern FUN_02026664
-.extern FUN_02026688
-.extern FUN_020266D4
-.extern FUN_020266E0
-.extern FUN_02026714
-.extern FUN_0202671C
-.extern FUN_02026778
-.extern FUN_02026874
-.extern FUN_020268A0
-.extern FUN_020268E8
-.extern FUN_02026940
-.extern FUN_02026A0C
-.extern FUN_02026A58
-.extern FUN_02026A9C
-.extern FUN_02026AE8
-.extern FUN_02026B20
-.extern FUN_02026B58
-.extern FUN_02026B90
-.extern FUN_02026C38
-.extern FUN_02026C68
-.extern FUN_02026C88
-.extern FUN_02026C90
-.extern FUN_02026C98
-.extern FUN_02026CA0
-.extern FUN_02026CA8
-.extern FUN_02026CC0
-.extern FUN_02029160
-.extern FUN_0202916C
-.extern FUN_0202D31C
-.extern FUN_0202D344
-.extern FUN_0202D380
-.extern FUN_0202DEC0
-.extern FUN_0202DEF4
-.extern FUN_0202E068
-.extern FUN_020307A8
-.extern FUN_020307BC
-.extern FUN_020307D0
-.extern FUN_0203086C
-.extern FUN_02031000
-.extern FUN_0203105C
-.extern FUN_02031354
-.extern FUN_020318A4
-.extern FUN_020335A4
-.extern FUN_02049824
-.extern FUN_02049CB0
-.extern FUN_0204CAA0
-.extern FUN_0204CAB0
-.extern FUN_0204CAC0
-.extern FUN_0204CAD0
-.extern FUN_0204CAF0
-.extern FUN_0204CB00
-.extern FUN_0204CB10
-.extern FUN_0204CB20
-.extern FUN_0204CC48
-.extern FUN_0204CC9C
-.extern FUN_0204CCE0
-.extern FUN_0204CDB4
-.extern FUN_0204CF60
-.extern FUN_0204D118
-.extern FUN_0204D168
-.extern FUN_0204D320
-.extern FUN_0204D610
-.extern FUN_0204D76C
-.extern FUN_0204D830
-.extern FUN_0204E1E8
-.extern FUN_0204E200
-.extern FUN_0204E214
-.extern FUN_0204E254
-.extern FUN_0204E34C
-.extern FUN_0204E35C
-.extern FUN_0204E3A4
-.extern FUN_0204E3EC
-.extern FUN_0204E440
-.extern FUN_0204E494
-.extern FUN_0204E4B4
-.extern FUN_0204E4D4
-.extern FUN_0204E50C
-.extern FUN_0204E544
-.extern FUN_0204E598
-.extern FUN_0204E5EC
-.extern FUN_0204E60C
-.extern FUN_0204E62C
-.extern FUN_0204E664
-.extern FUN_0204E69C
-.extern FUN_0204E6CC
-.extern FUN_0204E6FC
-.extern FUN_0204E758
-.extern FUN_0204E778
-.extern FUN_0204E794
-.extern FUN_0204E7CC
-.extern FUN_0204E8B0
-.extern FUN_0204EAD8
-.extern FUN_0204EB14
-.extern FUN_0204EE9C
-.extern FUN_0204EEBC
-.extern FUN_0204F074
-.extern FUN_0204F08C
-.extern FUN_0204F0A8
-.extern FUN_0204F0C8
-.extern FUN_0204F1B0
-.extern FUN_0204F210
-.extern FUN_0204F610
-.extern FUN_0204F63C
-.extern FUN_0204F660
-.extern FUN_0204F678
-.extern FUN_0204F69C
-.extern FUN_0204F6C8
-.extern FUN_0204F70C
-.extern FUN_0204F72C
-.extern FUN_0204F74C
-.extern FUN_0204F774
-.extern FUN_0204F7D4
-.extern FUN_0204F7E4
-.extern FUN_0204F7FC
-.extern FUN_0204FB14
-.extern FUN_0204FCF4
-.extern FUN_0204FD24
-.extern FUN_0204FD38
-.extern FUN_0204FDE4
-.extern FUN_0205537C
-.extern FUN_0205EB38
-.extern FUN_0205EBEC
-.extern FUN_0205EC18
-.extern FUN_0205EC48
-.extern FUN_0205EC6C
-.extern FUN_0205EDAC
-.extern FUN_0205EDBC
-.extern FUN_0205EDCC
-.extern FUN_0205EDD8
-.extern FUN_0205EDE8
-.extern FUN_0205F730
-.extern FUN_0205F750
-.extern FUN_0205F770
-.extern FUN_0206151C
-.extern FUN_02061B0C
-.extern FUN_020BB408
-.extern MOD05_021D8024
-.extern MOD05_021D80A4
-.extern MOD05_021E53B4
-.extern MOD05_021E5420
-.extern MOD05_021E5D0C
-.extern MOD05_021E5E8C
-.extern MOD05_021E7C1C
-.extern MOD05_021EF4F8
-.extern MOD05_021F0318
-.extern MOD05_021F043C
-.extern MOD05_021F04F8
-.extern MOD05_021F4CD4
-.extern FUN_02006948
-.extern FUN_02006C88
-.extern FUN_02020A6C
-.extern FUN_02012690
-.extern FUN_02020BF4
-.extern FUN_02020BFC
-.extern FUN_020893F0
-.extern FUN_02089418
-.extern FUN_02069B60
-.extern FUN_02089444
-.extern FUN_0208946C
-.extern MOD20_02252978
-.extern MOD20_02253AA4
-.extern MOD20_02252B68
-.extern MOD20_02252C08
-.extern MOD20_02253794
-.extern MOD20_022537B8
-.extern MOD20_02252B48
-.extern MOD20_02252C40
-.extern MOD20_022538BC
-.extern MOD20_02252B28
-.extern MOD20_02252D24
-.extern MOD20_022538A4
-.extern MOD20_022538A8
-.extern MOD20_022538AC
-.extern MOD20_022538B0
-.extern MOD20_02253E74
-.extern MOD20_02253F14
-.extern MOD20_02253F28
-.extern MOD20_02253F78
-.extern MOD20_02253FBC
-.extern MOD20_02254014
-.extern MOD20_022542AC
-.extern MOD20_0225298C
-.extern MOD20_022529A0
-.extern MOD20_02252C14
-.extern MOD20_02252D34
-.extern MOD20_02252D7C
-.extern MOD20_022536F4
-.extern MOD20_022537E0
-.extern MOD20_02253888
-.extern MOD20_022538A0
-.extern MOD20_02254130
-.extern MOD20_02254198
-.extern MOD20_02252DB4
-.extern MOD11_02252DB4
-.extern FUN_02039754
-.extern MOD20_02252C30
-.extern MOD20_02252C38
-.extern MOD20_02252DEC
-.extern MOD20_022538B8
-.extern MOD20_02253F44
-.extern MOD20_02252C34
-.extern FUN_0204C0CC
-.extern FUN_0204C0D4
-.extern FUN_0204C0E8
-.extern MOD20_022529B4
-.extern MOD20_02252C3C
-.extern MOD20_0225396C
-.extern MOD20_02253F80
-.extern MOD20_022539C4
-.extern MOD20_02253F64
-.extern MOD20_02253F9C
-.extern MOD20_02253FA4
-.extern FUN_02020A98
-.extern FUN_02020ACC
-.extern FUN_0204BF14
-.extern FUN_0204BF1C
-.extern FUN_0204BF44
-.extern FUN_0204BF84
-.extern FUN_0204BF88
-.extern FUN_020893E0
-.extern FUN_020B0830
-.extern FUN_020B0888
-.extern FUN_020B0D58
-.extern FUN_020B1AF8
-.extern FUN_02013E5C
-.extern FUN_02013ECC
-.extern FUN_02013EF0
-.extern FUN_02013F0C
-.extern FUN_02014590
-.extern FUN_020145A8
-.extern FUN_020145C8
-.extern FUN_0201466C
-.extern FUN_020146C4
-.extern FUN_0201D324
-.extern FUN_0201E1C8
-.extern FUN_0201FD98
-.extern FUN_02020AE8
-.extern FUN_02020C44
-.extern FUN_02020C90
-.extern FUN_02020CB0
-.extern FUN_02020CD4
-.extern FUN_0202714C
-.extern FUN_020272D4
-.extern FUN_02027310
-.extern FUN_02027348
-.extern FUN_02027380
-.extern FUN_02027448
-.extern FUN_020274F0
-.extern FUN_02027528
-.extern FUN_02027564
-.extern FUN_02027590
-.extern FUN_0202766C
-.extern FUN_02027778
-.extern FUN_020277B4
-.extern FUN_02027A58
-.extern FUN_02027A94
-.extern FUN_02027AC4
-.extern FUN_02027B0C
-.extern FUN_02027B44
-.extern FUN_02027B78
-.extern FUN_02027C28
-.extern FUN_02027C58
-.extern FUN_02027CA0
-.extern FUN_02027CA8
-.extern FUN_02027CB0
-.extern FUN_02027CB8
-.extern FUN_02027CF8
-.extern FUN_02027CFC
-.extern FUN_02027D00
-.extern FUN_02027D04
-.extern FUN_02083268
-.extern FUN_02083298
-.extern FUN_02083A34
-.extern FUN_02083A7C
-.extern FUN_020254F0
-.extern FUN_020254F8
-.extern FUN_0202EF70
-.extern FUN_02052CF0
-.extern FUN_02015E3C
-.extern FUN_020226FC
-.extern FUN_020227DC
-.extern FUN_020237A0
-.extern FUN_020237CC
-.extern FUN_020237FC
-.extern FUN_02023840
-.extern FUN_020238A4
-.extern FUN_020239B8
-.extern FUN_02023A14
-.extern FUN_02024F9C
-.extern FUN_020250C4
-.extern FUN_020377E0
-.extern FUN_0206007C
-.extern FUN_0201CD38
-.extern FUN_020294A8
-.extern FUN_0202EEB0
-.extern MOD08_02217E80
-.extern MOD08_02217ECC
-.extern MOD08_02217F08
-.extern MOD08_0222A02C
-.extern FUN_0200C6D8
-.extern FUN_02029CA4
-.extern FUN_02029CF4
-.extern FUN_02029CF8
-.extern FUN_02029D40
-.extern FUN_02029D84
-.extern FUN_02085D9C
-.extern FUN_02085FAC
-.extern FUN_02031370
-.extern FUN_02016B44
-.extern FUN_02017BD0
-.extern FUN_0201ED5C
-.extern FUN_0201EE2C
-.extern FUN_0201EFB4
-.extern FUN_0201F05C
-.extern FUN_0200A064
-.extern FUN_0200C918
-.extern FUN_02031388
-.extern FUN_02052F8C
-.extern FUN_02083D48
-.extern FUN_02026FE0
-.extern FUN_02027D7C
-.extern FUN_0202888C
-.extern FUN_020288AC
-.extern FUN_020013C8
-.extern FUN_02001538
-.extern FUN_02004828
-.extern FUN_0200DC24
-.extern FUN_0201291C
-.extern FUN_020281E8
-.extern FUN_0202858C
-.extern FUN_020285D0
-.extern FUN_0202DB14
-.extern FUN_0202DBA4
-.extern FUN_02032FDC
-.extern FUN_0203300C
-.extern FUN_02033128
-.extern FUN_02033138
-.extern FUN_02033154
-.extern FUN_02033180
-.extern FUN_020331C4
-.extern FUN_020331E8
-.extern FUN_02033208
-.extern FUN_0203323C
-.extern FUN_02033250
-.extern FUN_0203346C
-.extern FUN_020334DC
-.extern FUN_02088858
-.extern FUN_02088868
-.extern FUN_02006874
-.extern FUN_0200AF88
-.extern FUN_0200AFBC
-.extern FUN_02013840
-.extern FUN_02013EFC
-.extern FUN_02013F00
-.extern FUN_0201C78C
-.extern FUN_02024648
-.extern FUN_02024674
-.extern FUN_020247A4
-.extern FUN_02024828
-.extern FUN_0202489C
-.extern FUN_0202490C
-.extern FUN_02024930
-.extern FUN_02024970
-.extern FUN_02024CC4
-.extern FUN_02025E20
-.extern FUN_02025FFC
-.extern FUN_020260EC
-.extern FUN_0202A398
-.extern FUN_0202B5D8
-.extern FUN_0202B9EC
-.extern FUN_02031258
-.extern FUN_02046948
-.extern FUN_0204E178
-.extern FUN_02050E10
-.extern FUN_02050E2C
-.extern FUN_020556C8
-.extern FUN_0205E49C
-.extern FUN_0206EA54
-.extern FUN_02085410
-.extern FUN_02085414
-.extern FUN_02087A38
-.extern FUN_0202B1F0
-.extern FUN_0202B250
-.extern FUN_0202B29C
-.extern FUN_0202B31C
-.extern FUN_020124B4
-.extern FUN_020166A8
-.extern FUN_020166B8
-.extern FUN_0202945C
-.extern FUN_0202E288
-.extern FUN_0206AA84
-.extern FUN_0206B8A4
-.extern FUN_02083B84
-.extern FUN_02083D10
-.extern FUN_0200904C
-.extern FUN_02013F04
-.extern FUN_0201CBEC
-.extern FUN_02027E30
-.extern FUN_02027E94
-.extern FUN_02029520
-.extern FUN_0202A878
-.extern FUN_02060FAC
-.extern FUN_020842D0
-.extern FUN_020842D8
-.extern FUN_02001354
-.extern FUN_0200145C
-.extern FUN_02001464
-.extern FUN_02001DDC
-.extern FUN_02001E60
-.extern FUN_020021CC
-.extern FUN_02018878
-.extern FUN_020209A8
-.extern FUN_020209F4
-.extern FUN_0205D51C
-.extern FUN_0206E164
-.extern FUN_0206E3F8
-.extern FUN_0206E51C
-.extern FUN_0206E5B4
-.extern FUN_0206EB0C
-.extern FUN_0206EBC4
-.extern FUN_0206EBCC
-.extern FUN_0206EE20
-.extern FUN_0206EF10
-.extern FUN_0206F18C
-.extern FUN_0206F19C
-.extern FUN_02085284
-.extern MOD05_021F54E0
-.extern MOD06_0224C24C
-.extern MOD12_0223D1CC
-.extern MOD18_0223E4BC
-.extern MOD18_02247830
-.extern MOD04_021D80E0
-.extern MOD04_021D83D4
-.extern MOD04_021D8478
-.extern MOD04_021D8480
-.extern MOD04_021D853C
-.extern MOD04_021D861C
-.extern MOD04_021D8640
-.extern MOD04_021D8678
-.extern FUN_02029B08
-.extern MOD04_021EB550
-.extern MOD04_021DD904
-.extern MOD04_021DD944
-.extern MOD04_021EB3B8
-.extern MOD04_021EB524
-.extern MOD04_021EB59C
-.extern MOD04_021EF820
-.extern strncat
-.extern fclose
-.extern fread
-.extern fseek
-.extern ftell
-.extern MOD04_021DD82C
-.extern MOD04_021DD844
-.extern MOD04_021DD860
-.extern MOD04_021EEFA8
-.extern MOD04_021EEFFC
-.extern MOD04_021EF06C
-.extern MOD04_021EF074
-.extern MOD04_021EF0E4
-.extern MOD04_021EFB28
-.extern MOD04_021EFB38
-.extern MOD04_021EFC24
-.extern MOD04_021EFC78
-.extern MOD04_021EFCE4
-.extern MOD04_021EFD80
-.extern MOD04_021EFD9C
-.extern MOD04_021EFDB8
-.extern MOD04_021EFF5C
-.extern MOD04_021F0130
-.extern MOD04_021F017C
-.extern MOD04_021F0208
-.extern MOD04_021F024C
-.extern MOD04_021F0250
-.extern MOD04_021F025C
-.extern rewind
-.extern strspn
-.extern FUN_0200B84C
-.extern FUN_02022840
-.extern FUN_02022854
-.extern FUN_02023830
-.extern FUN_02023834
-.extern FUN_02023A6C
-.extern FUN_02023A74
-.extern FUN_0202952C
-.extern FUN_0202ABDC
-.extern FUN_0202ABE4
-.extern FUN_0202ABEC
-.extern FUN_0202ABF8
-.extern FUN_0202AC08
-.extern FUN_0202AC10
-.extern FUN_0202AC18
-.extern FUN_0202E4F0
-.extern FUN_02033288
-.extern FUN_020332DC
-.extern FUN_020335E0
-.extern FUN_020337C8
-.extern FUN_02033EEC
-.extern FUN_0206B384
-.extern FUN_020888BC
-.extern FUN_020888CC
-.extern FUN_0200CA7C
-.extern FUN_02033F04
-.extern FUN_02068E1C
-.extern FUN_0202A524
-.extern FUN_0202A60C
-.extern FUN_0202A6B4
-.extern FUN_0202A754
-.extern FUN_0202A784
-.extern FUN_0202A838
-.extern MOD79_022122E4
-.extern MOD79_02212308
-.extern MOD79_022123A8
-.extern MOD79_02212474
-.extern MOD79_02212480
-.extern FUN_02015D88
-.extern FUN_02016444
-.extern FUN_02016454
-.extern FUN_0201AB1C
-.extern FUN_0201AB20
-.extern FUN_020224D8
-.extern FUN_0202251C
-.extern FUN_02023820
-.extern FUN_0202AC28
-.extern FUN_0202AC64
-.extern FUN_0202AC98
-.extern FUN_0202AD08
-.extern FUN_0202ADC8
-.extern FUN_0202ADF0
-.extern FUN_0202AE0C
-.extern FUN_0202AE4C
-.extern FUN_0202AE70
-.extern FUN_0202AE90
-.extern FUN_0202AEF4
-.extern FUN_0202AF24
-.extern FUN_0202AF50
-.extern FUN_0202AF60
-.extern FUN_0202BF7C
-.extern FUN_0202BF90
-.extern FUN_0202C028
-.extern FUN_0202C060
-.extern FUN_0202C094
-.extern FUN_0202C0B8
-.extern FUN_0202F10C
-.extern FUN_0202F124
-.extern FUN_02031C74
-.extern FUN_02031CA8
-.extern FUN_02032D44
-.extern FUN_02032D80
-.extern FUN_02032D9C
-.extern FUN_02033310
-.extern FUN_02033364
-.extern FUN_02068800
-.extern FUN_0206E6D8
-.extern FUN_02089F24
-.extern SetCustomAllocator
-.extern FUN_02008D04
-.extern FUN_02024DAC
-.extern FUN_020910EC
-.extern FUN_0209521C
-.extern FUN_020952AC
-.extern FUN_02009CDC
-.extern FUN_0201C348
-.extern CTRDG_CpuCopy16
-.extern CTRDG_CpuCopy32
-.extern CTRDG_CpuCopy8
-.extern CTRDG_Enable
-.extern CTRDG_GetAgbGameCode
-.extern CTRDG_GetAgbMakerCode
-.extern CTRDG_IdentifyAgbBackup
-.extern CTRDG_IsAgbCartridge
-.extern CTRDG_Read32
-.extern CTRDG_ReadAgbFlash
-.extern CTRDG_TerminateForPulledOut
-.extern CTRDG_WriteAndVerifyAgbFlashAsync
-.extern SVC_GetCRC16
-.extern MOD04_021DE330
-.extern MOD04_021DDB40
-.extern MOD04_021DDF40
-.extern MOD04_021DE2D0
-.extern MOD04_021DE308
-.extern MOD04_021DE364
-.extern MOD04_021DE3AC
-.extern MOD04_021DE3D0
-.extern MOD04_021DE404
-.extern MOD04_021DE45C
-.extern RTC_ConvertDayToDate
-.extern MOD04_021DD808
-.extern MOD04_021DD984
-.extern MOD04_021DD9DC
-.extern MOD04_021DDF4C
-.extern MOD04_021DE05C
-.extern MOD04_021DE1F8
-.extern MOD56_0221244C
-.extern MOD79_022122E4
-.extern MOD79_02212308
-.extern MOD79_022123A8
-.extern MOD79_02212474
-.extern MOD79_02212480
-.extern FUN_02029B40
-.extern FUN_02029C00
-.extern FUN_02088D1C
-.extern FUN_02088D20
-.extern FUN_02088D4C
-.extern FUN_02088D68
-.extern FUN_02088D84
-.extern FUN_02088DA0
-.extern FUN_02088DBC
-.extern FUN_020294F4
-.extern FUN_02021C38
-.extern FUN_0202822C
-.extern FUN_020282E8
-.extern FUN_020283C0
-.extern FUN_020283E8
-.extern FUN_02033918
-.extern FUN_02096D68
-.extern FUN_02096E24
-.extern FUN_0202B390
-.extern FUN_0202B3F8
-.extern FUN_0202BCF4
-.extern FUN_020328E4
-.extern FUN_020336C0
-.extern FUN_020336C8
-.extern FUN_020536C8
-.extern FUN_02053708
-.extern FUN_02066840
-.extern FUN_02084098
-.extern FUN_020048A0
-.extern FUN_020048BC
-.extern FUN_02014630
-.extern FUN_02024EF4
-.extern FUN_02004D60
-.extern FUN_020181EC
-.extern FUN_02024FD8
-.extern FUN_02024FE0
-.extern FUN_02025010
-.extern FUN_02025018
-.extern FUN_02025034
-.extern FUN_02025048
-.extern FUN_02025050
-.extern FUN_02025064
-.extern FUN_0202506C
-.extern FUN_0202508C
-.extern SDK_OVERLAY_MODULE_00_ID
-.extern SDK_OVERLAY_MODULE_01_ID
-.extern SDK_OVERLAY_MODULE_02_ID
-.extern SDK_OVERLAY_MODULE_03_ID
-.extern SDK_OVERLAY_MODULE_04_ID
-.extern SDK_OVERLAY_MODULE_05_ID
-.extern SDK_OVERLAY_MODULE_06_ID
-.extern SDK_OVERLAY_MODULE_07_ID
-.extern SDK_OVERLAY_MODULE_08_ID
-.extern SDK_OVERLAY_MODULE_09_ID
-.extern SDK_OVERLAY_MODULE_10_ID
-.extern SDK_OVERLAY_MODULE_11_ID
-.extern SDK_OVERLAY_MODULE_12_ID
-.extern SDK_OVERLAY_MODULE_13_ID
-.extern SDK_OVERLAY_MODULE_14_ID
-.extern SDK_OVERLAY_MODULE_15_ID
-.extern SDK_OVERLAY_MODULE_16_ID
-.extern SDK_OVERLAY_MODULE_17_ID
-.extern SDK_OVERLAY_MODULE_18_ID
-.extern SDK_OVERLAY_MODULE_19_ID
-.extern SDK_OVERLAY_MODULE_20_ID
-.extern SDK_OVERLAY_MODULE_21_ID
-.extern SDK_OVERLAY_MODULE_22_ID
-.extern SDK_OVERLAY_MODULE_23_ID
-.extern SDK_OVERLAY_MODULE_24_ID
-.extern SDK_OVERLAY_MODULE_25_ID
-.extern SDK_OVERLAY_MODULE_26_ID
-.extern SDK_OVERLAY_MODULE_27_ID
-.extern SDK_OVERLAY_MODULE_28_ID
-.extern SDK_OVERLAY_MODULE_29_ID
-.extern SDK_OVERLAY_MODULE_30_ID
-.extern SDK_OVERLAY_MODULE_31_ID
-.extern SDK_OVERLAY_MODULE_32_ID
-.extern SDK_OVERLAY_MODULE_33_ID
-.extern SDK_OVERLAY_MODULE_34_ID
-.extern SDK_OVERLAY_MODULE_35_ID
-.extern SDK_OVERLAY_MODULE_36_ID
-.extern SDK_OVERLAY_MODULE_37_ID
-.extern SDK_OVERLAY_MODULE_38_ID
-.extern SDK_OVERLAY_MODULE_39_ID
-.extern SDK_OVERLAY_MODULE_40_ID
-.extern SDK_OVERLAY_MODULE_41_ID
-.extern SDK_OVERLAY_MODULE_42_ID
-.extern SDK_OVERLAY_MODULE_43_ID
-.extern SDK_OVERLAY_MODULE_44_ID
-.extern SDK_OVERLAY_MODULE_45_ID
-.extern SDK_OVERLAY_MODULE_46_ID
-.extern SDK_OVERLAY_MODULE_47_ID
-.extern SDK_OVERLAY_MODULE_48_ID
-.extern SDK_OVERLAY_MODULE_49_ID
-.extern SDK_OVERLAY_MODULE_50_ID
-.extern SDK_OVERLAY_MODULE_51_ID
-.extern SDK_OVERLAY_MODULE_52_ID
-.extern SDK_OVERLAY_MODULE_53_ID
-.extern SDK_OVERLAY_MODULE_54_ID
-.extern SDK_OVERLAY_MODULE_55_ID
-.extern SDK_OVERLAY_MODULE_56_ID
-.extern SDK_OVERLAY_MODULE_57_ID
-.extern SDK_OVERLAY_MODULE_58_ID
-.extern SDK_OVERLAY_MODULE_59_ID
-.extern SDK_OVERLAY_MODULE_60_ID
-.extern SDK_OVERLAY_MODULE_61_ID
-.extern SDK_OVERLAY_MODULE_62_ID
-.extern SDK_OVERLAY_MODULE_63_ID
-.extern SDK_OVERLAY_MODULE_64_ID
-.extern SDK_OVERLAY_MODULE_65_ID
-.extern SDK_OVERLAY_MODULE_66_ID
-.extern SDK_OVERLAY_MODULE_67_ID
-.extern SDK_OVERLAY_MODULE_68_ID
-.extern SDK_OVERLAY_MODULE_69_ID
-.extern SDK_OVERLAY_MODULE_70_ID
-.extern SDK_OVERLAY_MODULE_71_ID
-.extern SDK_OVERLAY_MODULE_72_ID
-.extern SDK_OVERLAY_MODULE_73_ID
-.extern SDK_OVERLAY_MODULE_74_ID
-.extern SDK_OVERLAY_MODULE_75_ID
-.extern SDK_OVERLAY_MODULE_76_ID
-.extern SDK_OVERLAY_MODULE_77_ID
-.extern SDK_OVERLAY_MODULE_78_ID
-.extern SDK_OVERLAY_MODULE_79_ID
-.extern SDK_OVERLAY_MODULE_80_ID
-.extern SDK_OVERLAY_MODULE_81_ID
-.extern SDK_OVERLAY_MODULE_82_ID
-.extern SDK_OVERLAY_MODULE_83_ID
-.extern SDK_OVERLAY_MODULE_84_ID
-.extern SDK_OVERLAY_MODULE_85_ID
-.extern SDK_OVERLAY_MODULE_86_ID
+.extern FUN_02004110
+.extern FUN_02004130
+.extern FUN_020045C4
+.extern FUN_02004748
+.extern FUN_0200483C
+.extern FUN_02004858
+.extern FUN_020048D0
+.extern FUN_020048EC
+.extern FUN_020048F4
+.extern FUN_02004900
+.extern FUN_02004914
+.extern FUN_0200491C
+.extern FUN_02004930
+.extern FUN_02004984
+.extern FUN_02004A04
+.extern FUN_02004A6C
+.extern FUN_02004AAC
+.extern FUN_02004ABC
+.extern FUN_02004ACC
+.extern FUN_02004AE4
+.extern FUN_02004AF8
+.extern FUN_02004B30
+.extern FUN_02004C3C
+.extern FUN_02004D74
+.extern FUN_02004DB4
+.extern FUN_02004DBC
+.extern FUN_02005D48
+.extern FUN_02005DFC
|