From bf40984424339b7b38353832e8a3cfdabb7c4196 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 May 2020 15:39:21 -0400 Subject: Split unk_020023C0.s --- arm9/Makefile | 4 +- arm9/arm9.lcf | 7 + arm9/asm/unk_020023C0.s | 6686 ----------------------------------------------- arm9/asm/unk_02002C14.s | 405 +++ arm9/asm/unk_02002F08.s | 285 ++ arm9/asm/unk_020030E8.s | 1424 ++++++++++ arm9/asm/unk_02003B98.s | 705 +++++ arm9/asm/unk_020040F4.s | 2273 ++++++++++++++++ arm9/asm/unk_020051F4.s | 1319 ++++++++++ arm9/asm/unk_02005CFC.s | 303 +++ arm9/global.inc | 6014 +++++++++++++++++++++--------------------- 11 files changed, 9746 insertions(+), 9679 deletions(-) create mode 100644 arm9/asm/unk_02002C14.s create mode 100644 arm9/asm/unk_02002F08.s create mode 100644 arm9/asm/unk_020030E8.s create mode 100644 arm9/asm/unk_02003B98.s create mode 100644 arm9/asm/unk_020040F4.s create mode 100644 arm9/asm/unk_020051F4.s create mode 100644 arm9/asm/unk_02005CFC.s (limited to 'arm9') 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_02013690 -.extern FUN_020136C0 -.extern FUN_020136E0 -.extern FUN_020136F8 -.extern FUN_0201373C -.extern FUN_02013754 +.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,22 +1670,73 @@ .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_0202AF70 -.extern FUN_0202AF88 -.extern FUN_0202AF9C -.extern FUN_0202AFC0 -.extern FUN_0202AFFC -.extern FUN_0202B020 -.extern FUN_0202B03C -.extern FUN_0202B050 -.extern FUN_0202B21C -.extern FUN_0202B3C4 +.extern FUN_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 +.extern FUN_0202AFC0 +.extern FUN_0202AFFC +.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,49 +2977,219 @@ .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_0204D6C0 -.extern FUN_0204E2FC -.extern FUN_0204F6DC -.extern FUN_0204FF5C -.extern FUN_02050024 -.extern FUN_02050048 -.extern FUN_020524CC -.extern FUN_02052544 -.extern FUN_02052604 -.extern FUN_02052608 -.extern FUN_02052648 -.extern FUN_0205265C -.extern FUN_02052714 -.extern FUN_02052718 -.extern FUN_020527A8 +.extern FUN_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 +.extern FUN_02052608 +.extern FUN_02052648 +.extern FUN_0205265C +.extern FUN_02052714 +.extern FUN_02052718 +.extern FUN_020527A8 .extern FUN_020527D8 .extern FUN_0205296C .extern FUN_02052A10 .extern FUN_02052B74 .extern FUN_02052C0C .extern FUN_02052CD8 +.extern FUN_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_02058B4C +.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,2760 +5185,575 @@ .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 MOD20_02252534 -.extern MOD20_02252538 +.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 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 MTX_Concat33 -.extern MTX_Concat43 -.extern MTX_Concat44 -.extern MTX_Copy43To44_ -.extern MTX_Copy44To43_ -.extern MTX_Identity33_ -.extern MTX_Identity43_ -.extern MTX_Identity44_ -.extern MTX_Inverse43 -.extern MTX_MultVec33 -.extern MTX_MultVec43 -.extern MTX_Rot22_ -.extern MTX_RotX33_ -.extern MTX_RotX44_ -.extern MTX_RotY33_ -.extern MTX_RotY44_ -.extern MTX_RotZ33_ -.extern MTX_RotZ44_ -.extern MTX_Scale43_ -.extern MTX_ScaleApply22 -.extern MTX_ScaleApply33 -.extern MTX_ScaleApply43 -.extern MTX_TransApply44 -.extern NitroMain -.extern OS_AllocFromArenaHi -.extern OS_AllocFromArenaLo -.extern OS_AllocFromHeap -.extern OS_CancelAlarm -.extern OS_CreateAlarm -.extern OS_CreateThread -.extern OS_DestroyThread -.extern OS_DisableInterrupts -.extern OS_DisableInterrupts_IrqAndFiq -.extern OS_DisableIrqMask -.extern OS_DisableProtectionUnit -.extern OS_DisableScheduler -.extern OS_EnableInterrupts -.extern OS_EnableIrqMask -.extern OS_EnableProtectionUnit -.extern OS_EnableScheduler -.extern OS_ExitThread -.extern OS_FreeToHeap -.extern OS_GetConsoleType -.extern OS_GetCpsrIrq -.extern OS_GetDTCMAddress -.extern OS_GetInitArenaHi -.extern OS_GetInitArenaLo -.extern OS_GetIrqFunction -.extern OS_GetLockID -.extern OS_GetLowEntropyData -.extern OS_GetMacAddress -.extern OS_GetOwnerInfo -.extern OS_GetOwnerRtcOffset -.extern OS_GetProcMode -.extern OS_GetThreadPriority -.extern OS_GetTick -.extern OS_GetTickLo -.extern OS_Halt -.extern OS_IRQTable -.extern OS_Init -.extern OS_InitAlarm -.extern OS_InitArena -.extern OS_InitArenaEx -.extern OS_InitContext -.extern OS_InitException -.extern OS_InitIrqTable -.extern OS_InitLock -.extern OS_InitMessageQueue -.extern OS_InitMutex -.extern OS_InitReset -.extern OS_InitThread -.extern OS_InitTick -.extern OS_InitVAlarm -.extern OS_IrqDummy -.extern OS_IrqHandler -.extern OS_IsAlarmAvailable -.extern OS_IsRunOnEmulator -.extern OS_IsThreadAvailable -.extern OS_IsThreadTerminated -.extern OS_IsTickAvailable -.extern OS_JamMessage -.extern OS_JoinThread -.extern OS_LoadContext -.extern OS_LockCartridge -.extern OS_LockMutex -.extern OS_ReadMessage -.extern OS_ReadOwnerOfLockWord -.extern OS_ReceiveMessage -.extern OS_ReleaseLockID -.extern OS_RescheduleThread -.extern OS_ResetRequestIrqMask -.extern OS_ResetSystem -.extern OS_RestoreInterrupts -.extern OS_RestoreInterrupts_IrqAndFiq -.extern OS_SNPrintf -.extern OS_SPrintf -.extern OS_SaveContext -.extern OS_SendMessage -.extern OS_SetAlarm -.extern OS_SetArenaHi -.extern OS_SetArenaLo -.extern OS_SetDPermissionsForProtectionRegion -.extern OS_SetIrqFunction -.extern OS_SetIrqMask -.extern OS_SetIrqStackChecker -.extern OS_SetProtectionRegion1 -.extern OS_SetProtectionRegion2 -.extern OS_SetThreadPriority -.extern OS_Sleep -.extern OS_SleepThread -.extern OS_SpinWait -.extern OS_Terminate -.extern OS_TryLockCard -.extern OS_TryLockCartridge -.extern OS_TryLockMutex -.extern OS_UnlockCard -.extern OS_UnlockCartridge -.extern OS_UnlockCartridge2 -.extern OS_UnlockMutex -.extern OS_WaitIrq -.extern OS_WakeupThread -.extern OS_WakeupThreadDirect -.extern OS_YieldThread -.extern OSi_AlarmQueue -.extern OSi_CurrentThreadPtr -.extern OSi_DebuggerHandler -.extern OSi_DoResetSystem -.extern OSi_EnterDmaCallback -.extern OSi_EnterTimerCallback -.extern OSi_ExContext -.extern OSi_HeapInfo -.extern OSi_IdleThread -.extern OSi_IdleThreadStack -.extern OSi_InitVramExclusive -.extern OSi_Initialized -.extern OSi_IrqCallbackInfo -.extern OSi_IrqCallbackInfoIndex -.extern OSi_IrqDma0 -.extern OSi_IrqDma1 -.extern OSi_IrqDma2 -.extern OSi_IrqDma3 -.extern OSi_IrqThreadQueue -.extern OSi_IrqTimer0 -.extern OSi_IrqTimer1 -.extern OSi_IrqTimer2 -.extern OSi_IrqTimer3 -.extern OSi_IsInitReset -.extern OSi_IsResetOccurred -.extern OSi_IsThreadInitialized -.extern OSi_LauncherThread -.extern OSi_MainExArenaEnabled -.extern OSi_NeedResetTimer -.extern OSi_PreviousVCount -.extern OSi_ReferSymbol -.extern OSi_RemoveMutexLinkFromQueue -.extern OSi_RescheduleCount -.extern OSi_SetTimerReserved -.extern OSi_StackForDestructor -.extern OSi_SystemCallbackInSwitchThread -.extern OSi_ThreadIdCount -.extern OSi_ThreadInfo -.extern OSi_TickCounter -.extern OSi_TimerReserved -.extern OSi_TryLockVram -.extern OSi_UnlockAllMutex -.extern OSi_UnlockVram -.extern OSi_UseAlarm -.extern OSi_UseTick -.extern OSi_UseVAlarm -.extern OSi_UserExceptionHandler -.extern OSi_UserExceptionHandlerArg -.extern OSi_VAlarmQueue -.extern OSi_VFrameCount -.extern OSi_vramExclusive -.extern OSi_vramLockId -.extern PM_AppendPostSleepCallback -.extern PM_DeletePostSleepCallback -.extern PM_DeletePreSleepCallback -.extern PM_ForceToPowerOff -.extern PM_GetBackLight -.extern PM_GetLCDPower -.extern PM_GoSleepMode -.extern PM_Init -.extern PM_PrependPreSleepCallback -.extern PM_SetAmp -.extern PM_SetAmpGain -.extern PM_SetBackLight -.extern PM_SetLCDPower -.extern PMi_Lock -.extern PMi_ReadRegister -.extern PMi_SendPxiData -.extern PMi_SendSleepStart -.extern PMi_SetLED -.extern PMi_SetLEDAsync -.extern PMi_WaitBusy -.extern PXI_Init -.extern PXI_InitFifo -.extern PXI_IsCallbackReady -.extern PXI_SendWordByFifo -.extern PXI_SetFifoRecvCallback -.extern PXIi_HandlerRecvFifoNotEmpty -.extern ProcessBlock -.extern RTC_ConvertDateTimeToSecond -.extern RTC_ConvertDateToDay -.extern RTC_ConvertSecondToDateTime -.extern RTC_GetDate -.extern RTC_GetDateTimeAsync -.extern RTC_GetTime -.extern RTC_Init -.extern RunScriptCommand -.extern SDK_AUTOLOAD_DTCM_END -.extern SDK_AUTOLOAD_DTCM_START -.extern SDK_AUTOLOAD_ITCM_END -.extern SDK_AUTOLOAD_ITCM_START -.extern SDK_AUTOLOAD_LIST -.extern SDK_AUTOLOAD_LIST_END -.extern SDK_AUTOLOAD_START -.extern SDK_IRQ_STACKSIZE -.extern SDK_MAIN_ARENA_LO -.extern SDK_SECTION_ARENA_DTCM_START -.extern SDK_SECTION_ARENA_EX_START -.extern SDK_SECTION_ARENA_ITCM_START -.extern SDK_STATIC_BSS_END -.extern SDK_STATIC_BSS_START -.extern SDK_SYS_STACKSIZE -.extern SND_AlarmInit -.extern SND_AllocCommand -.extern SND_AssignWaveArc -.extern SND_CalcChannelVolume -.extern SND_CommandInit -.extern SND_DestroyBank -.extern SND_DestroyWaveArc -.extern SND_FlushCommand -.extern SND_GetChannelStatus -.extern SND_GetCurrentCommandTag -.extern SND_GetFirstInstDataPos -.extern SND_GetNextInstData -.extern SND_GetPlayerStatus -.extern SND_GetPlayerTickCounter -.extern SND_GetWaveDataAddress -.extern SND_GetWaveDataCount -.extern SND_Init -.extern SND_InvalidateBankData -.extern SND_InvalidateSeqData -.extern SND_InvalidateWaveData -.extern SND_IsFinishedCommandTag -.extern SND_LockChannel -.extern SND_PauseSeq -.extern SND_PrepareSeq -.extern SND_PushCommand -.extern SND_RecvCommandReply -.extern SND_ResetMasterPan -.extern SND_SetChannelPan -.extern SND_SetChannelTimer -.extern SND_SetChannelVolume -.extern SND_SetMasterPan -.extern SND_SetOutputSelector -.extern SND_SetPlayerChannelPriority -.extern SND_SetPlayerVolume -.extern SND_SetTrackAllocatableChannel -.extern SND_SetTrackPan -.extern SND_SetTrackPitch -.extern SND_SetWaveDataAddress -.extern SND_SetupAlarm -.extern SND_SetupCapture -.extern SND_SetupChannelPcm -.extern SND_StartPreparedSeq -.extern SND_StartTimer -.extern SND_StopSeq -.extern SND_StopTimer -.extern SND_UnlockChannel -.extern SND_WaitForCommandProc -.extern SNDi_CallAlarmHandler -.extern SNDi_GetFinishedCommandTag -.extern SNDi_IncAlarmId -.extern SNDi_InitSharedWork -.extern SNDi_LockMutex -.extern SNDi_SetAlarmHandler -.extern SNDi_UnlockMutex -.extern STD_CopyLString -.extern SVC_Sqrt -.extern SVC_WaitByLoop -.extern ScriptCall -.extern ScriptJump -.extern ScriptReadHalfword -.extern ScriptReadWord -.extern ScriptReturn -.extern SetupBytecodeScript -.extern SetupNativeScript -.extern StopScript -.extern StringCopy -.extern StringCopyN -.extern StringFillEOS -.extern StringLength -.extern StringNotEqual -.extern StringNotEqualN -.extern THUNK_FUN_02099BC8 -.extern TP_CheckError -.extern TP_GetCalibratedPoint -.extern TP_GetLatestIndexInAuto -.extern TP_GetLatestRawPointInAuto -.extern TP_GetUserInfo -.extern TP_Init -.extern TP_RequestAutoSamplingStartAsync -.extern TP_RequestAutoSamplingStopAsync -.extern TP_RequestSamplingAsync -.extern TP_SetCalibrateParam -.extern TP_WaitBusy -.extern TP_WaitRawResult -.extern Unk_0210683C -.extern Unk_02106840 -.extern Unk_02106900 -.extern Unk_02106A00 -.extern Unk_02106A04 -.extern VEC_Add -.extern VEC_CrossProduct -.extern VEC_DotProduct -.extern VEC_Fx16Add -.extern VEC_Fx16CrossProduct -.extern VEC_Fx16DotProduct -.extern VEC_Fx16Normalize -.extern VEC_Mag -.extern VEC_Normalize -.extern VEC_Subtract -.extern WM_Disable -.extern WM_Disconnect -.extern WM_Enable -.extern WM_End -.extern WM_EndDCF -.extern WM_EndMP -.extern WM_EndParent -.extern WM_EndScan -.extern WM_Finish -.extern WM_GetAllowedChannel -.extern WM_GetDispersionBeaconPeriod -.extern WM_GetDispersionScanPeriod -.extern WM_GetLinkLevel -.extern WM_Init -.extern WM_Initialize -.extern WM_MeasureChannel -.extern WM_PowerOff -.extern WM_PowerOn -.extern WM_Reset -.extern WM_SetBeaconIndication -.extern WM_SetDCFData -.extern WM_SetEntry -.extern WM_SetGameInfo -.extern WM_SetIndCallback -.extern WM_SetLifeTime -.extern WM_SetMPDataToPortEx -.extern WM_SetParentParameter -.extern WM_SetPortCallback -.extern WM_SetWEPKeyEx -.extern WM_StartConnectEx -.extern WM_StartDCF -.extern WM_StartMP -.extern WM_StartParent -.extern WM_StartScan -.extern WM_StartScanEx -.extern WMi_GetStatusAddress -.extern _ExitProcess -.extern __call_static_initializers -.extern __close_console -.extern __destroy_global_chain -.extern __msl_assertion_failed -.extern __read_console -.extern __write_console -.extern _d2f -.extern _dadd -.extern _ddiv -.extern _deq -.extern _dfix -.extern _dflt -.extern _dfltu -.extern _dgr -.extern _dleq -.extern _dls -.extern _dmul -.extern _dneq -.extern _drdiv -.extern _drsb -.extern _dsqrt -.extern _dsub -.extern _f2d -.extern _fadd -.extern _fdiv -.extern _feq -.extern _ffix -.extern _ffixu -.extern _fflt -.extern _ffltu -.extern _fgeq -.extern _fgr -.extern _fleq -.extern _fls -.extern _fmul -.extern _fp_init -.extern _frdiv -.extern _frsb -.extern _fsub -.extern _ll_mod -.extern _ll_mul -.extern _ll_sdiv -.extern _ll_shl -.extern _ll_udiv -.extern _ll_ufrom_d -.extern _s32_div_f -.extern _u32_div_f -.extern _u32_div_not_0_f -.extern _ull_mod -.extern abs -.extern atod -.extern atol -.extern cardi_common -.extern gScriptCmdTable -.extern memcmp -.extern memcpy -.extern memmove -.extern rand -.extern snprintf -.extern sprintf -.extern srand -.extern sscanf -.extern strcat -.extern strchr -.extern strcmp -.extern strcpy -.extern strlen -.extern strncmp -.extern strncpy -.extern strnicmp -.extern strstr -.extern strtold2 -.extern strtoul -.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_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 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 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 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 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 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 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_ +.extern MTX_Inverse43 +.extern MTX_MultVec33 +.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_ +.extern MTX_Scale43_ +.extern MTX_ScaleApply22 +.extern MTX_ScaleApply33 +.extern MTX_ScaleApply43 +.extern MTX_TransApply44 +.extern NitroMain +.extern OS_AllocFromArenaHi +.extern OS_AllocFromArenaLo +.extern OS_AllocFromHeap +.extern OS_CancelAlarm +.extern OS_CreateAlarm +.extern OS_CreateThread +.extern OS_DestroyThread +.extern OS_DisableInterrupts +.extern OS_DisableInterrupts_IrqAndFiq +.extern OS_DisableIrqMask +.extern OS_DisableProtectionUnit +.extern OS_DisableScheduler +.extern OS_EnableInterrupts +.extern OS_EnableIrqMask +.extern OS_EnableProtectionUnit +.extern OS_EnableScheduler +.extern OS_ExitThread +.extern OS_FreeToHeap +.extern OS_GetConsoleType +.extern OS_GetCpsrIrq +.extern OS_GetDTCMAddress +.extern OS_GetInitArenaHi +.extern OS_GetInitArenaLo +.extern OS_GetIrqFunction +.extern OS_GetLockID +.extern OS_GetLowEntropyData +.extern OS_GetMacAddress +.extern OS_GetOwnerInfo +.extern OS_GetOwnerRtcOffset +.extern OS_GetProcMode +.extern OS_GetThreadPriority +.extern OS_GetTick +.extern OS_GetTickLo +.extern OS_Halt +.extern OS_IRQTable +.extern OS_Init +.extern OS_InitAlarm +.extern OS_InitArena +.extern OS_InitArenaEx +.extern OS_InitContext +.extern OS_InitException +.extern OS_InitIrqTable +.extern OS_InitLock +.extern OS_InitMessageQueue +.extern OS_InitMutex +.extern OS_InitReset +.extern OS_InitThread +.extern OS_InitTick +.extern OS_InitVAlarm +.extern OS_IrqDummy +.extern OS_IrqHandler +.extern OS_IsAlarmAvailable +.extern OS_IsRunOnEmulator +.extern OS_IsThreadAvailable +.extern OS_IsThreadTerminated +.extern OS_IsTickAvailable +.extern OS_JamMessage +.extern OS_JoinThread +.extern OS_LoadContext +.extern OS_LockCartridge +.extern OS_LockMutex +.extern OS_ReadMessage +.extern OS_ReadOwnerOfLockWord +.extern OS_ReceiveMessage +.extern OS_ReleaseLockID +.extern OS_RescheduleThread +.extern OS_ResetRequestIrqMask +.extern OS_ResetSystem +.extern OS_RestoreInterrupts +.extern OS_RestoreInterrupts_IrqAndFiq +.extern OS_SNPrintf +.extern OS_SPrintf +.extern OS_SaveContext +.extern OS_SendMessage +.extern OS_SetAlarm +.extern OS_SetArenaHi +.extern OS_SetArenaLo +.extern OS_SetDPermissionsForProtectionRegion +.extern OS_SetIrqFunction +.extern OS_SetIrqMask +.extern OS_SetIrqStackChecker +.extern OS_SetProtectionRegion1 +.extern OS_SetProtectionRegion2 +.extern OS_SetThreadPriority +.extern OS_Sleep +.extern OS_SleepThread +.extern OS_SpinWait +.extern OS_Terminate +.extern OS_TryLockCard +.extern OS_TryLockCartridge +.extern OS_TryLockMutex +.extern OS_UnlockCard +.extern OS_UnlockCartridge +.extern OS_UnlockCartridge2 +.extern OS_UnlockMutex +.extern OS_WaitIrq +.extern OS_WaitVBlankIntr +.extern OS_WakeupThread +.extern OS_WakeupThreadDirect +.extern OS_YieldThread +.extern OSi_AlarmQueue +.extern OSi_CurrentThreadPtr +.extern OSi_DebuggerHandler +.extern OSi_DoResetSystem +.extern OSi_EnterDmaCallback +.extern OSi_EnterTimerCallback +.extern OSi_ExContext +.extern OSi_HeapInfo +.extern OSi_IdleThread +.extern OSi_IdleThreadStack +.extern OSi_InitVramExclusive +.extern OSi_Initialized +.extern OSi_IrqCallbackInfo +.extern OSi_IrqCallbackInfoIndex +.extern OSi_IrqDma0 +.extern OSi_IrqDma1 +.extern OSi_IrqDma2 +.extern OSi_IrqDma3 +.extern OSi_IrqThreadQueue +.extern OSi_IrqTimer0 +.extern OSi_IrqTimer1 +.extern OSi_IrqTimer2 +.extern OSi_IrqTimer3 +.extern OSi_IsInitReset +.extern OSi_IsResetOccurred +.extern OSi_IsThreadInitialized +.extern OSi_LauncherThread +.extern OSi_MainExArenaEnabled +.extern OSi_NeedResetTimer +.extern OSi_PreviousVCount +.extern OSi_ReferSymbol +.extern OSi_RemoveMutexLinkFromQueue +.extern OSi_RescheduleCount +.extern OSi_SetTimerReserved +.extern OSi_StackForDestructor +.extern OSi_SystemCallbackInSwitchThread +.extern OSi_ThreadIdCount +.extern OSi_ThreadInfo +.extern OSi_TickCounter +.extern OSi_TimerReserved +.extern OSi_TryLockVram +.extern OSi_UnlockAllMutex +.extern OSi_UnlockVram +.extern OSi_UseAlarm +.extern OSi_UseTick +.extern OSi_UseVAlarm +.extern OSi_UserExceptionHandler +.extern OSi_UserExceptionHandlerArg +.extern OSi_VAlarmQueue +.extern OSi_VFrameCount +.extern OSi_vramExclusive +.extern OSi_vramLockId +.extern PM_AppendPostSleepCallback +.extern PM_DeletePostSleepCallback +.extern PM_DeletePreSleepCallback +.extern PM_ForceToPowerOff +.extern PM_GetBackLight +.extern PM_GetLCDPower +.extern PM_GetLEDPattern +.extern PM_GoSleepMode +.extern PM_Init +.extern PM_PrependPreSleepCallback +.extern PM_SetAmp +.extern PM_SetAmpGain +.extern PM_SetBackLight +.extern PM_SetLCDPower +.extern PMi_Lock +.extern PMi_ReadRegister +.extern PMi_SendLEDPatternCommand +.extern PMi_SendPxiData +.extern PMi_SendSleepStart +.extern PMi_SetLED +.extern PMi_SetLEDAsync +.extern PMi_WaitBusy +.extern PXI_Init +.extern PXI_InitFifo +.extern PXI_IsCallbackReady +.extern PXI_SendWordByFifo +.extern PXI_SetFifoRecvCallback +.extern PXIi_HandlerRecvFifoNotEmpty +.extern ProcessBlock +.extern RTC_ConvertDateTimeToSecond +.extern RTC_ConvertDateToDay .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 RTC_ConvertSecondToDateTime +.extern RTC_GetDate +.extern RTC_GetDateTimeAsync +.extern RTC_GetTime +.extern RTC_Init +.extern RunScriptCommand +.extern SDK_AUTOLOAD_DTCM_END +.extern SDK_AUTOLOAD_DTCM_START +.extern SDK_AUTOLOAD_ITCM_END +.extern SDK_AUTOLOAD_ITCM_START +.extern SDK_AUTOLOAD_LIST +.extern SDK_AUTOLOAD_LIST_END +.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 @@ -6092,3 +5841,286 @@ .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 +.extern SDK_STATIC_BSS_END +.extern SDK_STATIC_BSS_START +.extern SDK_SYS_STACKSIZE +.extern SND_AlarmInit +.extern SND_AllocCommand +.extern SND_AssignWaveArc +.extern SND_CalcChannelVolume +.extern SND_CommandInit +.extern SND_DestroyBank +.extern SND_DestroyWaveArc +.extern SND_FlushCommand +.extern SND_GetChannelStatus +.extern SND_GetCurrentCommandTag +.extern SND_GetFirstInstDataPos +.extern SND_GetNextInstData +.extern SND_GetPlayerStatus +.extern SND_GetPlayerTickCounter +.extern SND_GetWaveDataAddress +.extern SND_GetWaveDataCount +.extern SND_Init +.extern SND_InvalidateBankData +.extern SND_InvalidateSeqData +.extern SND_InvalidateWaveData +.extern SND_IsFinishedCommandTag +.extern SND_LockChannel +.extern SND_PauseSeq +.extern SND_PrepareSeq +.extern SND_PushCommand +.extern SND_RecvCommandReply +.extern SND_ResetMasterPan +.extern SND_SetChannelPan +.extern SND_SetChannelTimer +.extern SND_SetChannelVolume +.extern SND_SetMasterPan +.extern SND_SetOutputSelector +.extern SND_SetPlayerChannelPriority +.extern SND_SetPlayerVolume +.extern SND_SetTrackAllocatableChannel +.extern SND_SetTrackPan +.extern SND_SetTrackPitch +.extern SND_SetWaveDataAddress +.extern SND_SetupAlarm +.extern SND_SetupCapture +.extern SND_SetupChannelPcm +.extern SND_StartPreparedSeq +.extern SND_StartTimer +.extern SND_StopSeq +.extern SND_StopTimer +.extern SND_UnlockChannel +.extern SND_WaitForCommandProc +.extern SNDi_CallAlarmHandler +.extern SNDi_GetFinishedCommandTag +.extern SNDi_IncAlarmId +.extern SNDi_InitSharedWork +.extern SNDi_LockMutex +.extern SNDi_SetAlarmHandler +.extern SNDi_UnlockMutex +.extern STD_CopyLString +.extern SVC_GetCRC16 +.extern SVC_Sqrt +.extern SVC_WaitByLoop +.extern ScriptCall +.extern ScriptJump +.extern ScriptReadHalfword +.extern ScriptReadWord +.extern ScriptReturn +.extern SetCustomAllocator +.extern SetupBytecodeScript +.extern SetupNativeScript +.extern StopScript +.extern StringCopy +.extern StringCopyN +.extern StringFillEOS +.extern StringLength +.extern StringNotEqual +.extern StringNotEqualN +.extern THUNK_FUN_02099BC8 +.extern TP_CheckError +.extern TP_GetCalibratedPoint +.extern TP_GetLatestIndexInAuto +.extern TP_GetLatestRawPointInAuto +.extern TP_GetUserInfo +.extern TP_Init +.extern TP_RequestAutoSamplingStartAsync +.extern TP_RequestAutoSamplingStopAsync +.extern TP_RequestSamplingAsync +.extern TP_SetCalibrateParam +.extern TP_WaitBusy +.extern TP_WaitRawResult +.extern Unk_0210683C +.extern Unk_02106840 +.extern Unk_02106900 +.extern Unk_02106A00 +.extern Unk_02106A04 +.extern UnloadOverlayByID +.extern VEC_Add +.extern VEC_CrossProduct +.extern VEC_DotProduct +.extern VEC_Fx16Add +.extern VEC_Fx16CrossProduct +.extern VEC_Fx16DotProduct +.extern VEC_Fx16Normalize +.extern VEC_Mag +.extern VEC_MultAdd +.extern VEC_Normalize +.extern VEC_Subtract +.extern WM_Disable +.extern WM_Disconnect +.extern WM_Enable +.extern WM_End +.extern WM_EndDCF +.extern WM_EndKeySharing +.extern WM_EndMP +.extern WM_EndParent +.extern WM_EndScan +.extern WM_Finish +.extern WM_GetAllowedChannel +.extern WM_GetDispersionBeaconPeriod +.extern WM_GetDispersionScanPeriod +.extern WM_GetLinkLevel +.extern WM_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 +.extern WM_SetEntry +.extern WM_SetGameInfo +.extern WM_SetIndCallback +.extern WM_SetLifeTime +.extern WM_SetMPDataToPortEx +.extern WM_SetParentParameter +.extern WM_SetPortCallback +.extern WM_SetWEPKeyEx +.extern WM_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 +.extern _d2f +.extern _dadd +.extern _ddiv +.extern _deq +.extern _dfix +.extern _dflt +.extern _dfltu +.extern _dgr +.extern _dleq +.extern _dls +.extern _dmul +.extern _dneq +.extern _drdiv +.extern _drsb +.extern _dsqrt +.extern _dsub +.extern _f2d +.extern _fadd +.extern _fdiv +.extern _feq +.extern _ffix +.extern _ffixu +.extern _fflt +.extern _ffltu +.extern _fgeq +.extern _fgr +.extern _fleq +.extern _fls +.extern _fmul +.extern _fp_init +.extern _frdiv +.extern _frsb +.extern _fsub +.extern _ll_mod +.extern _ll_mul +.extern _ll_sdiv +.extern _ll_shl +.extern _ll_udiv +.extern _ll_ufrom_d +.extern _s32_div_f +.extern _u32_div_f +.extern _u32_div_not_0_f +.extern _ull_mod +.extern abs +.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 +.extern sscanf +.extern strcat +.extern strchr +.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 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_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 -- cgit v1.2.3