From 409de04065549094cec4905209aaf90dd7e3060c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 25 Apr 2020 21:07:47 -0400 Subject: Move arm7 build files to subdirectory --- Makefile | 10 +- arm7/Makefile | 24 +- arm7/arm7.lcf | 10 + arm7/asm/arm7_rom.s | 212 +++ arm7/asm/macros.inc | 1 + arm7/asm/macros/function.inc | 24 + arm7/global.inc | 3517 ++++++++++++++++++++++++++++++++++++++++++ arm7/undefined_syms.txt | 506 ++++++ asm/arm7_rom.s | 212 --- pokediamond.lcf | 5 +- 10 files changed, 4292 insertions(+), 229 deletions(-) create mode 100644 arm7/arm7.lcf create mode 100644 arm7/asm/arm7_rom.s create mode 100644 arm7/asm/macros.inc create mode 100644 arm7/asm/macros/function.inc create mode 100644 arm7/global.inc create mode 100644 arm7/undefined_syms.txt delete mode 100644 asm/arm7_rom.s diff --git a/Makefile b/Makefile index d5a3c410..f67c4348 100644 --- a/Makefile +++ b/Makefile @@ -55,6 +55,7 @@ O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \ $(foreach file,$(S_FILES),$(BUILD_DIR)/$(file:.s=.o)) \ ARM9BIN := arm9/build/arm9.bin +ARM7BIN := arm7/build/arm7.bin ##################### Compiler Options ####################### @@ -109,7 +110,7 @@ else NODEP := 1 endif -.PHONY: all clean mostlyclean tidy tools $(TOOLDIRS) patch_mwasmarm $(ARM9BIN) +.PHONY: all clean mostlyclean tidy tools $(TOOLDIRS) patch_mwasmarm $(ARM9BIN) $(ARM7BIN) MAKEFLAGS += --no-print-directory @@ -138,6 +139,9 @@ patch_mwasmarm: $(ARM9BIN): @$(MAKE) -C arm9 +$(ARM7BIN): + @$(MAKE) -C arm7 + ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS)) $(BUILD_DIR)/%.o: %.c @@ -149,8 +153,8 @@ $(BUILD_DIR)/%.o: %.s $(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) undefined_syms.txt $(CPP) $(VERSION_CFLAGS) -MMD -MP -MT $@ -MF $@.d -I include/ -I . -DBUILD_DIR=$(BUILD_DIR) -o $@ $< -$(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(ARM9BIN) - $(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) $(ARM9BIN) +$(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(ARM9BIN) $(ARM7BIN) + $(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) $(ARM9BIN) $(ARM7BIN) $(ROM): $(ELF) $(OBJCOPY) -O binary --gap-fill=0xFF --pad-to=0x04000000 $< $@ diff --git a/arm7/Makefile b/arm7/Makefile index 763dd714..88e81d5d 100644 --- a/arm7/Makefile +++ b/arm7/Makefile @@ -37,11 +37,11 @@ endif BUILD_DIR := build -TARGET := pokediamond.us +TARGET := arm7 -ROM := $(BUILD_DIR)/$(TARGET).nds +ROM := $(BUILD_DIR)/$(TARGET).bin ELF := $(BUILD_DIR)/$(TARGET).elf -LD_SCRIPT := pokediamond.lcf +LD_SCRIPT := arm7.lcf # Directories containing source files SRC_DIRS := src @@ -57,17 +57,18 @@ O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \ ##################### Compiler Options ####################### MWCCVERSION := 2.0/base +TOOLS_DIR = ../tools CROSS := arm-none-eabi- -MWCCARM := tools/mwccarm/$(MWCCVERSION)/mwccarm.exe +MWCCARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwccarm.exe # Argh... due to EABI version shenanigans, we can't use GNU LD to link together # MWCC built objects and GNU built ones. mwldarm, however, doesn't care, so we # have to use mwldarm for now. # TODO: Is there a hack workaround to let us go back to GNU LD? Ideally, the # only dependency should be MWCCARM. -MWLDARM := tools/mwccarm/$(MWCCVERSION)/mwldarm.exe -MWASMARM := tools/mwccarm/$(MWCCVERSION)/mwasmarm.exe +MWLDARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwldarm.exe +MWASMARM := $(TOOLS_DIR)/mwccarm/$(MWCCVERSION)/mwasmarm.exe AS := $(WINE) $(MWASMARM) CC := $(WINE) $(MWCCARM) @@ -77,15 +78,14 @@ AR := $(CROSS)ar OBJDUMP := $(CROSS)objdump OBJCOPY := $(CROSS)objcopy -# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm9_thumb.s -o arm9.o +# ./tools/mwccarm/2.0/base/mwasmarm.exe -proc arm5te asm/arm7_thumb.s -o arm7.o ASFLAGS = -proc arm5te -CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c99 -Cpp_exceptions off -ir include +CFLAGS = -O4,p -proc v5te -thumb -fp soft -lang c99 -Cpp_exceptions off -ir ../include LDFLAGS = -map -nodead -w off -proc v5te -interworking -map -symtab -m _start ####################### Other Tools ######################### # DS TOOLS -TOOLS_DIR = tools SHA1SUM = sha1sum JSONPROC = $(TOOLS_DIR)/jsonproc/jsonproc GFX = $(TOOLS_DIR)/nitrogfx/nitrogfx @@ -112,10 +112,10 @@ endif MAKEFLAGS += --no-print-directory all: $(ROM) - @$(SHA1SUM) -c $(TARGET).sha1 + # @$(SHA1SUM) -c $(TARGET).sha1 clean: mostlyclean - make -C tools/mwasmarm_patcher clean + make -C $(TOOLS_DIR)/mwasmarm_patcher clean mostlyclean: tidy find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' \) -exec $(RM) {} + @@ -148,7 +148,7 @@ $(ELF): $(O_FILES) $(BUILD_DIR)/$(LD_SCRIPT) $(LD) $(LDFLAGS) $(BUILD_DIR)/$(LD_SCRIPT) -o $(ELF) $(O_FILES) $(ROM): $(ELF) - $(OBJCOPY) -O binary --gap-fill=0xFF --pad-to=0x04000000 $< $@ + $(OBJCOPY) -O binary --gap-fill=0xFF $< $@ # Make sure build directory exists before compiling anything DUMMY != mkdir -p $(ALL_DIRS) diff --git a/arm7/arm7.lcf b/arm7/arm7.lcf new file mode 100644 index 00000000..784c4cbb --- /dev/null +++ b/arm7/arm7.lcf @@ -0,0 +1,10 @@ +MEMORY { + .text (RX) : ORIGIN=0x02380000, LENGTH=0 +} + +SECTIONS { +#include "undefined_syms.txt" + .text : AT (0x0) { + arm7_rom.o (.text) + } > .text +} diff --git a/arm7/asm/arm7_rom.s b/arm7/asm/arm7_rom.s new file mode 100644 index 00000000..3366eba4 --- /dev/null +++ b/arm7/asm/arm7_rom.s @@ -0,0 +1,212 @@ +/* arm7_rom.s TODO: Disassemble */ + .include "asm/macros.inc" + .global ARM7AutoLoad + + .section .text + arm_func_start _start + +_start: + mov ip, #67108864 ; 0x4000000 + str ip, [ip, #520] ; 0x208 + ldr r1, _23800cc + mov r0, #58720256 ; 0x3800000 + cmp r0, r1 + movpl r1, r0 + ldr r2, _23800d0 + mov r0, #0 +_02380020: + cmp r1, r2 + stmltia r1!, {r0} + blt _02380020 + mov r0, #19 + msr CPSR_c, r0 + ldr sp, _23800d4 + mov r0, #18 + msr CPSR_c, r0 + ldr r0, _23800d8 + mov sp, r0 + ldr r1, _23800dc + sub r1, r0, r1 + mov r0, #31 + msr CPSR_fsxc, r0 + sub sp, r1, #4 + ldr r0, _23800e0 + ldr r1, _23800e4 + add r2, r1, #352 ; 0x160 +_02380068: + ldr r3, [r0], #4 + str r3, [r1], #4 + cmp r1, r2 + bmi _02380068 + ldr r0, _23800e8 + add r2, r1, #32 +_02380080: + ldr r3, [r0], #4 + str r3, [r1], #4 + cmp r1, r2 + bmi _02380080 + bl FUN_2380100 + ldr r0, _23800ec + ldr r1, [r0, #12] + ldr r2, [r0, #16] + mov r0, #0 +_023800a4: + cmp r1, r2 + strcc r0, [r1], #4 + bcc _023800a4 + bl FUN_238015C + ldr r1, _23800f0 + ldr r0, _23800f4 + str r0, [r1] + ldr r1, _23800f8 + ldr lr, _23800fc + bx r1 +_23800cc: .word FUN_023801B0 +_23800d0: .word 0x0380ff00 +_23800d4: .word 0x0380ffc0 +_23800d8: .word 0x0380ff80 +_23800dc: .word 0x00000400 +_23800e0: .word 0x023fe940 +_23800e4: .word 0x027ffa80 +_23800e8: .word 0x023fe904 +_23800ec: .word _2380198 +_23800f0: .word 0x0380fffc +_23800f4: .word 0x037f853c +_23800f8: .word 0x037f8468 +_23800fc: .word 0xffff0000 + arm_func_end _start + + arm_func_start FUN_2380100 +FUN_2380100: + ldr r0, _2380154 + ldr r1, [r0] + ldr r2, [r0, #4] + ldr r3, [r0, #8] +_02380110: + cmp r1, r2 + beq _02380150 + ldr r4, [r1], #4 + ldr r5, [r1], #4 + add r6, r4, r5 +_02380124: + cmp r4, r6 + ldrmi r7, [r3], #4 + strmi r7, [r4], #4 + bmi _02380124 + ldr r5, [r1], #4 + add r6, r4, r5 + mov r7, #0 +_02380140: + cmp r4, r6 + strcc r7, [r4], #4 + bcc _02380140 + beq _02380110 +_02380150: + b ARM7AutoLoad +_2380154: .word _2380198 +ARM7AutoLoad: + bx lr + arm_func_end FUN_2380100 + + arm_func_start FUN_238015C +FUN_238015C: + mov r0, #1 + mov r1, #0 + ldr r2, _2380194 + sub r3, r2, #4194304 ; 0x400000 +_0238016c: + strh r1, [r2] + ldrh ip, [r3] + cmp r1, ip + movne r0, #2 + bne _0238018c + add r1, r1, #1 + cmp r1, #2 + bne _0238016c +_0238018c: + strh r0, [r2] + bx lr +_2380194: .word 0x027ffffa +_2380198: + .word UNK_23A92F8 + .word UNK_23A931C + .word FUN_023801B0 + .word FUN_023801B0 + .word FUN_023801B0 + .word 0x00000000 + arm_func_end FUN_238015C + + arm_func_start FUN_023801B0 +FUN_023801B0: + .incbin "baserom.nds", 0x30D1B0, 0x91B0 + + thumb_func_start ROM7_SVC_SoftReset +ROM7_SVC_SoftReset: ; 0x02389360 + swi 0 + bx lr + + thumb_func_start ROM7_SVC_WaitByLoop +ROM7_SVC_WaitByLoop: ; 0x02389364 + swi 3 + bx lr + + thumb_func_start ROM7_SVC_WaitIntr +ROM7_SVC_WaitIntr: ; 0x02389368 + ldr r2, =0x04000000 + mov ip, r2 + mov r2, #0x0 + swi 4 + bx lr + .pool + + thumb_func_start ROM7_SVC_WaitVBlankIntr +ROM7_SVC_WaitVBlankIntr: + mov r2, #0x0 + swi 5 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_Halt +ROM7_SVC_Halt: + swi 6 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_Stop +ROM7_SVC_Stop: + swi 7 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_SoundBias +ROM7_SVC_SoundBias: + swi 8 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_SoundBiasSet +ROM7_SVC_SoundBiasSet: + add r1, r0, #0x0 + mov r0, #0x1 + swi 8 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_SoundBiasReset +ROM7_SVC_SoundBiasReset: + add r1, r0, #0x0 + mov r0, #0x0 + swi 8 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_Div +ROM7_SVC_Div: + swi 9 + bx lr + + non_word_aligned_thumb_func_start ROM7_SVC_DivRem +ROM7_SVC_DivRem: + swi 9 + add r0, r1, #0x0 + bx lr + .incbin "baserom.nds", 0x3163a4, 0x1ff54 + +UNK_23A92F8: + .incbin "baserom.nds", 0x3362F8, 0x24 + +UNK_23A931C: diff --git a/arm7/asm/macros.inc b/arm7/asm/macros.inc new file mode 100644 index 00000000..156b2b09 --- /dev/null +++ b/arm7/asm/macros.inc @@ -0,0 +1 @@ + .include "asm/macros/function.inc" diff --git a/arm7/asm/macros/function.inc b/arm7/asm/macros/function.inc new file mode 100644 index 00000000..6b9e5f40 --- /dev/null +++ b/arm7/asm/macros/function.inc @@ -0,0 +1,24 @@ + .macro arm_func_start name + .balign 4, 0 + .global \name + .arm + .endm + + .macro arm_func_end name + .size \name, .-\name + .endm + + .macro thumb_func_start name + .balign 4, 0 + .global \name + .thumb + .endm + + .macro non_word_aligned_thumb_func_start name + .global \name + .thumb + .endm + + .macro thumb_func_end name + .size \name, .-\name + .endm diff --git a/arm7/global.inc b/arm7/global.inc new file mode 100644 index 00000000..478abdaa --- /dev/null +++ b/arm7/global.inc @@ -0,0 +1,3517 @@ +.extern CARD_CancelBackupAsync +.extern CARD_GetResultCode +.extern CARD_IdentifyBackup +.extern CARD_Init +.extern CARD_IsPulledOut +.extern CARD_LockBackup +.extern CARD_LockRom +.extern CARD_TryWaitBackupAsync +.extern CARD_UnlockBackup +.extern CARD_UnlockRom +.extern CARD_WaitBackupAsync +.extern CARDi_ReadRom +.extern CARDi_RequestStreamCommand +.extern CP_RestoreContext +.extern CP_SaveContext +.extern CTRDG_Init +.extern CTRDG_IsExisting +.extern CTRDG_IsPulledOut +.extern Call_FillMemWithValue +.extern ConvertUIntToDecimalString +.extern DC_FlushAll +.extern DC_FlushRange +.extern DC_InvalidateAll +.extern DC_InvalidateRange +.extern DC_StoreAll +.extern DC_StoreRange +.extern DC_WaitWriteBufferEmpty +.extern DGT_Hash1GetDigest_R +.extern DGT_Hash1Reset +.extern DGT_Hash1SetSource +.extern DGTi_hash2_arm4_small +.extern ErrorHandling +.extern FS_CloseFile +.extern FS_ConvertPathToFileID +.extern FS_FindArchive +.extern FS_Init +.extern FS_InitFile +.extern FS_IsAvailable +.extern FS_LoadOverlay +.extern FS_LoadOverlayImage +.extern FS_LoadOverlayImageAsync +.extern FS_LoadOverlayInfo +.extern FS_OpenFile +.extern FS_OpenFileFast +.extern FS_ReadFile +.extern FS_SeekFile +.extern FS_SetDefaultDMA +.extern FS_StartOverlay +.extern FS_TryLoadTable +.extern FS_UnloadOverlay +.extern FS_WaitAsync +.extern FUNRTC_Init +.extern FUN_0200019E +.extern FUN_020002FE +.extern SVC_WaitByLoop +.extern OSi_ReferSymbol +.extern FUN_02000DF4 +.extern FUN_02000E7C +.extern FUN_02000EE8 +.extern FUN_02000F18 +.extern FUN_02000FA4 +.extern FUN_02000FE8 +.extern FUN_020010A8 +.extern FUN_02001204 +.extern FUN_02001300 +.extern FUN_020013E8 +.extern FUN_02001448 +.extern FUN_02001470 +.extern FUN_02001B8C +.extern FUN_02001C14 +.extern FUN_02001C5C +.extern FUN_02001C78 +.extern FUN_02001D2C +.extern FUN_02001E5C +.extern FUN_020020EC +.extern FUN_02002198 +.extern FUN_020021AC +.extern FUN_02002840 +.extern FUN_02002B60 +.extern FUN_02002B7C +.extern FUN_02002BB8 +.extern FUN_02002C14 +.extern FUN_02002C50 +.extern FUN_02002C84 +.extern FUN_02002CC0 +.extern FUN_02002CF8 +.extern FUN_02002DB0 +.extern FUN_02002DE0 +.extern FUN_02002E14 +.extern FUN_02002E4C +.extern FUN_02002ED0 +.extern FUN_02002EEC +.extern FUN_02002F08 +.extern FUN_02002FD0 +.extern FUN_02002FEC +.extern FUN_02003008 +.extern FUN_02003038 +.extern FUN_02003054 +.extern FUN_020030E8 +.extern FUN_02003108 +.extern FUN_020031FC +.extern FUN_02003210 +.extern FUN_0200372C +.extern FUN_020038E4 +.extern FUN_020038F0 +.extern FUN_02003974 +.extern FUN_02003B98 +.extern FUN_02003C10 +.extern FUN_020040F4 +.extern FUN_02004104 +.extern FUN_02004124 +.extern FUN_0200414C +.extern FUN_0200415C +.extern FUN_0200433C +.extern FUN_02004724 +.extern FUN_020047C8 +.extern FUN_02004810 +.extern FUN_0200488C +.extern FUN_02004DCC +.extern FUN_02004E08 +.extern FUN_0200516C +.extern FUN_020051F4 +.extern FUN_0200521C +.extern FUN_02005308 +.extern FUN_02005350 +.extern FUN_0200538C +.extern FUN_020053CC +.extern FUN_02005404 +.extern FUN_02005410 +.extern FUN_0200541C +.extern FUN_020054C8 +.extern FUN_020054F0 +.extern FUN_02005508 +.extern FUN_02005514 +.extern FUN_02005578 +.extern FUN_02005670 +.extern FUN_020056AC +.extern FUN_02005C28 +.extern FUN_02005CBC +.extern FUN_02005D20 +.extern FUN_02005E28 +.extern FUN_02005E64 +.extern FUN_02005E6C +.extern FUN_02005E80 +.extern FUN_02005E90 +.extern FUN_02005F14 +.extern FUN_02005F60 +.extern FUN_02005FDC +.extern FUN_020061E8 +.extern FUN_0200621C +.extern FUN_02006234 +.extern FUN_02006260 +.extern FUN_02006268 +.extern FUN_02006278 +.extern FUN_0200627C +.extern FUN_0200628C +.extern FUN_02006290 +.extern FUN_02006528 +.extern FUN_02006548 +.extern FUN_02006564 +.extern FUN_02006670 +.extern FUN_020066F4 +.extern FUN_02006704 +.extern FUN_02006774 +.extern FUN_02006814 +.extern FUN_0200687C +.extern FUN_020068C8 +.extern FUN_02006930 +.extern FUN_02006BB0 +.extern FUN_02006C08 +.extern FUN_02006C98 +.extern FUN_02006D98 +.extern FUN_02006ED4 +.extern FUN_020072E8 +.extern FUN_02007314 +.extern FUN_0200737C +.extern FUN_02007390 +.extern FUN_020073A0 +.extern FUN_02007534 +.extern FUN_02007558 +.extern FUN_0200782C +.extern FUN_020079E0 +.extern FUN_02007E68 +.extern FUN_02007E98 +.extern FUN_02007F20 +.extern FUN_020080D0 +.extern FUN_020081C4 +.extern FUN_02008AA4 +.extern FUN_02008BE0 +.extern FUN_02008C80 +.extern FUN_02008C9C +.extern FUN_02008D24 +.extern FUN_02008DEC +.extern FUN_02008E2C +.extern FUN_02008F34 +.extern FUN_02008FEC +.extern FUN_020090AC +.extern FUN_02009168 +.extern FUN_020093A8 +.extern FUN_02009424 +.extern FUN_02009448 +.extern FUN_02009630 +.extern FUN_0200965C +.extern FUN_02009668 +.extern FUN_020096B4 +.extern FUN_020096CC +.extern FUN_02009A50 +.extern FUN_02009B04 +.extern FUN_02009B44 +.extern FUN_02009B78 +.extern FUN_02009C0C +.extern FUN_02009C30 +.extern FUN_02009CF0 +.extern FUN_02009DAC +.extern FUN_02009DE0 +.extern FUN_02009E04 +.extern FUN_02009E28 +.extern FUN_02009E88 +.extern FUN_02009EAC +.extern FUN_02009F80 +.extern FUN_02009FA0 +.extern FUN_0200A208 +.extern FUN_0200A274 +.extern FUN_0200A2AC +.extern FUN_0200A318 +.extern FUN_0200A344 +.extern FUN_0200A648 +.extern FUN_0200A738 +.extern FUN_0200A86C +.extern FUN_0200A8B8 +.extern FUN_0200A8E0 +.extern FUN_0200A914 +.extern FUN_0200A968 +.extern FUN_0200A99C +.extern FUN_0200A9C4 +.extern FUN_0200AA50 +.extern FUN_0200AA80 +.extern FUN_0200AA90 +.extern FUN_0200AB18 +.extern FUN_0200ABB4 +.extern FUN_0200ABC0 +.extern FUN_0200ABE4 +.extern FUN_0200AC0C +.extern FUN_0200AC60 +.extern FUN_0200ACA4 +.extern FUN_0200ACC0 +.extern FUN_0200ACF8 +.extern FUN_0200AD18 +.extern FUN_0200AD38 +.extern FUN_0200AD5C +.extern FUN_0200AD94 +.extern FUN_0200ADCC +.extern FUN_0200AE04 +.extern FUN_0200AE38 +.extern FUN_0200AE70 +.extern FUN_0200AEA8 +.extern FUN_0200AEE0 +.extern FUN_0200AF18 +.extern FUN_0200AF50 +.extern FUN_0200AFF4 +.extern FUN_0200B02C +.extern FUN_0200B064 +.extern FUN_0200B09C +.extern FUN_0200B164 +.extern FUN_0200B19C +.extern FUN_0200B1D4 +.extern FUN_0200B20C +.extern FUN_0200B244 +.extern FUN_0200B278 +.extern FUN_0200B2AC +.extern FUN_0200B350 +.extern FUN_0200B388 +.extern FUN_0200B410 +.extern FUN_0200B4A0 +.extern FUN_0200B4D8 +.extern FUN_0200B518 +.extern FUN_0200B534 +.extern FUN_0200B568 +.extern FUN_0200B59C +.extern FUN_0200B628 +.extern FUN_0200B660 +.extern FUN_0200B698 +.extern FUN_0200B6D0 +.extern FUN_0200B708 +.extern FUN_0200B764 +.extern FUN_0200B7A8 +.extern FUN_0200B7B8 +.extern FUN_0200B870 +.extern FUN_0200B990 +.extern FUN_0200B9A8 +.extern FUN_0200B9EC +.extern FUN_0200BA78 +.extern FUN_0200BB14 +.extern FUN_0200BB34 +.extern FUN_0200BB68 +.extern FUN_0200BB6C +.extern FUN_0200BBF0 +.extern FUN_0200BC1C +.extern FUN_0200BC30 +.extern FUN_0200BCE0 +.extern FUN_0200BD04 +.extern FUN_0200BD20 +.extern FUN_0200BE38 +.extern FUN_0200BF60 +.extern FUN_0200C00C +.extern FUN_0200C06C +.extern FUN_0200C0DC +.extern FUN_0200C124 +.extern FUN_0200C13C +.extern FUN_0200C154 +.extern FUN_0200C358 +.extern FUN_0200C368 +.extern FUN_0200C378 +.extern FUN_0200C388 +.extern FUN_0200C398 +.extern FUN_0200C3DC +.extern FUN_0200C5A8 +.extern FUN_0200C61C +.extern FUN_0200C63C +.extern FUN_0200C644 +.extern FUN_0200C664 +.extern FUN_0200C66C +.extern FUN_0200C6E4 +.extern FUN_0200C714 +.extern FUN_0200C75C +.extern FUN_0200C7A0 +.extern FUN_0200C82C +.extern FUN_0200C840 +.extern FUN_0200C884 +.extern FUN_0200C9D8 +.extern FUN_0200CA0C +.extern FUN_0200CA44 +.extern FUN_0200CAB4 +.extern FUN_0200CABC +.extern FUN_0200CAFC +.extern FUN_0200CB00 +.extern FUN_0200CCA4 +.extern FUN_0200CCF8 +.extern FUN_0200CD64 +.extern FUN_0200CD68 +.extern FUN_0200D0BC +.extern FUN_0200D0E0 +.extern FUN_0200D274 +.extern FUN_0200D300 +.extern FUN_0200D6F8 +.extern FUN_0200D858 +.extern FUN_0200DBFC +.extern FUN_0200DC4C +.extern FUN_0200DCA4 +.extern FUN_0200E1D0 +.extern FUN_0200E2D8 +.extern FUN_0200E308 +.extern FUN_0200E388 +.extern FUN_0200E394 +.extern FUN_0200E3A0 +.extern FUN_0200E3BC +.extern FUN_02011B20 +.extern FUN_02012420 +.extern FUN_0201259C +.extern FUN_020125D4 +.extern FUN_0201265C +.extern FUN_020126B4 +.extern FUN_020126D8 +.extern FUN_020126FC +.extern FUN_0201277C +.extern FUN_020127A8 +.extern FUN_020127C0 +.extern FUN_02012838 +.extern FUN_02012870 +.extern FUN_02012880 +.extern FUN_020128A0 +.extern FUN_02012CC8 +.extern FUN_02012CDC +.extern FUN_02012DE4 +.extern FUN_0201318C +.extern FUN_02013194 +.extern FUN_0201327C +.extern FUN_020132BC +.extern FUN_02013364 +.extern FUN_02013388 +.extern FUN_020133AC +.extern FUN_020133C8 +.extern FUN_020133E8 +.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_0201385C +.extern FUN_02013918 +.extern FUN_02013920 +.extern FUN_02013924 +.extern FUN_02013928 +.extern FUN_02013960 +.extern FUN_020139D8 +.extern FUN_02013A10 +.extern FUN_02013A30 +.extern FUN_02013A9C +.extern FUN_02013B5C +.extern FUN_02013B68 +.extern FUN_02013B74 +.extern FUN_02013BC8 +.extern FUN_02013BE4 +.extern FUN_02013C0C +.extern FUN_02013C18 +.extern FUN_020142EC +.extern FUN_020143A8 +.extern FUN_020143D0 +.extern FUN_02014BF4 +.extern FUN_02014C28 +.extern FUN_02014C3C +.extern FUN_02014C54 +.extern FUN_02014D7C +.extern FUN_02014D9C +.extern FUN_02015CF8 +.extern FUN_02015E30 +.extern FUN_02015E60 +.extern FUN_02015EF4 +.extern FUN_02015F10 +.extern FUN_02015F1C +.extern FUN_02015F34 +.extern FUN_020161A4 +.extern FUN_020163BC +.extern FUN_02016438 +.extern FUN_02016464 +.extern FUN_0201669C +.extern FUN_020166C8 +.extern FUN_0201681C +.extern FUN_02016828 +.extern FUN_020168D0 +.extern FUN_02016998 +.extern FUN_020169D8 +.extern FUN_02016A18 +.extern FUN_02016A8C +.extern FUN_02016AF8 +.extern FUN_02016B94 +.extern FUN_02016BBC +.extern FUN_02016C18 +.extern FUN_020178A0 +.extern FUN_020178BC +.extern FUN_0201797C +.extern FUN_020179E0 +.extern FUN_02017B48 +.extern FUN_02017B54 +.extern FUN_02017CD0 +.extern FUN_02017CE8 +.extern FUN_02017DFC +.extern FUN_02017E14 +.extern FUN_02017F18 +.extern FUN_02017FB4 +.extern FUN_02017FE4 +.extern FUN_02018148 +.extern FUN_02018170 +.extern FUN_02018540 +.extern FUN_020186B4 +.extern FUN_02018744 +.extern FUN_0201886C +.extern FUN_02018884 +.extern FUN_02018FF4 +.extern FUN_0201901C +.extern FUN_02019048 +.extern FUN_02019064 +.extern FUN_02019150 +.extern FUN_02019178 +.extern FUN_020191A4 +.extern FUN_020191D0 +.extern FUN_02019220 +.extern FUN_02019548 +.extern FUN_02019570 +.extern FUN_0201958C +.extern FUN_02019620 +.extern FUN_02019658 +.extern FUN_020196F4 +.extern FUN_0201974C +.extern FUN_0201A8C8 +.extern FUN_0201AB08 +.extern FUN_0201AB0C +.extern FUN_0201AB10 +.extern FUN_0201AB14 +.extern FUN_0201AB18 +.extern FUN_0201AB60 +.extern FUN_0201AC68 +.extern FUN_0201AEE4 +.extern FUN_0201AFBC +.extern FUN_0201B234 +.extern FUN_0201B5CC +.extern FUN_0201B6C4 +.extern FUN_0201B6C8 +.extern FUN_0201B6D0 +.extern FUN_0201B76C +.extern FUN_0201B7DC +.extern FUN_0201B8B8 +.extern FUN_0201B8E0 +.extern FUN_0201B914 +.extern FUN_0201B93C +.extern FUN_0201B970 +.extern FUN_0201B9D4 +.extern FUN_0201B9E0 +.extern FUN_0201B9EC +.extern FUN_0201BA10 +.extern FUN_0201BA1C +.extern FUN_0201BA60 +.extern FUN_0201BCBC +.extern FUN_0201BD5C +.extern FUN_0201BD70 +.extern FUN_0201BD7C +.extern FUN_0201BD84 +.extern FUN_0201BDE0 +.extern FUN_0201BE3C +.extern FUN_0201C05C +.extern FUN_0201C1EC +.extern FUN_0201C24C +.extern FUN_0201C29C +.extern FUN_0201C30C +.extern FUN_0201C620 +.extern FUN_0201C638 +.extern FUN_0201CC08 +.extern FUN_0201CC24 +.extern FUN_0201CD04 +.extern FUN_0201CDD0 +.extern FUN_0201CE04 +.extern FUN_0201D040 +.extern FUN_0201D12C +.extern FUN_0201D168 +.extern FUN_0201E00C +.extern FUN_0201E08C +.extern FUN_0201E0BC +.extern FUN_0201E28C +.extern FUN_0201E66C +.extern FUN_0201E6D8 +.extern FUN_0201E6E4 +.extern FUN_0201E740 +.extern FUN_0201E74C +.extern FUN_0201E788 +.extern FUN_0201E7A0 +.extern FUN_0201EB64 +.extern FUN_0201EB70 +.extern FUN_0201EB8C +.extern FUN_0201EBA4 +.extern FUN_0201EC68 +.extern FUN_0201EC88 +.extern FUN_0201EC94 +.extern FUN_0201ED10 +.extern FUN_0201EEF0 +.extern FUN_0201EF70 +.extern FUN_0201EF90 +.extern FUN_0201EFE0 +.extern FUN_0201EFEC +.extern FUN_0201F04C +.extern FUN_0201F854 +.extern FUN_0201FD58 +.extern FUN_0201FDEC +.extern FUN_0201FE94 +.extern FUN_0201FFC8 +.extern FUN_02020044 +.extern FUN_020200A0 +.extern FUN_020200BC +.extern FUN_02020100 +.extern FUN_0202011C +.extern FUN_02020128 +.extern FUN_02020130 +.extern FUN_020201DC +.extern FUN_020201E4 +.extern FUN_02020208 +.extern FUN_0202022C +.extern FUN_02020248 +.extern FUN_02020310 +.extern FUN_02020354 +.extern FUN_02020388 +.extern FUN_02020398 +.extern FUN_02020968 +.extern FUN_02020988 +.extern FUN_02020AFC +.extern FUN_02021590 +.extern FUN_020215C8 +.extern FUN_020215E0 +.extern FUN_02021750 +.extern FUN_020218D8 +.extern FUN_02021934 +.extern FUN_0202199C +.extern FUN_020219F4 +.extern FUN_02021A20 +.extern FUN_02021A4C +.extern FUN_02021A74 +.extern FUN_02021CE0 +.extern FUN_02021D3C +.extern FUN_02021E28 +.extern FUN_02021EF0 +.extern FUN_02021F2C +.extern FUN_0202212C +.extern FUN_02022294 +.extern FUN_020222AC +.extern FUN_020222B4 +.extern FUN_020222C4 +.extern FUN_020222E8 +.extern FUN_020222F0 +.extern FUN_020222F8 +.extern FUN_02022300 +.extern FUN_02022308 +.extern FUN_02022310 +.extern FUN_02022318 +.extern FUN_020223BC +.extern FUN_02022504 +.extern FUN_02022510 +.extern FUN_02022528 +.extern FUN_02022534 +.extern FUN_02022540 +.extern FUN_0202254C +.extern FUN_020225F8 +.extern FUN_02022610 +.extern FUN_0202263C +.extern FUN_02022720 +.extern FUN_020227FC +.extern FUN_02022800 +.extern FUN_02022804 +.extern FUN_0202280C +.extern FUN_0202282C +.extern FUN_02022830 +.extern FUN_0202287C +.extern FUN_02023788 +.extern FUN_02023794 +.extern FUN_02023818 +.extern FUN_0202381C +.extern FUN_02023828 +.extern FUN_02023874 +.extern FUN_02023884 +.extern FUN_020238F4 +.extern FUN_0202390C +.extern FUN_02023918 +.extern FUN_02023924 +.extern FUN_02023928 +.extern FUN_0202393C +.extern FUN_0202395C +.extern FUN_0202397C +.extern FUN_0202398C +.extern FUN_02023990 +.extern FUN_020239A0 +.extern FUN_020239BC +.extern FUN_020239C0 +.extern FUN_020239C8 +.extern FUN_020239CC +.extern FUN_020239D0 +.extern FUN_020239E4 +.extern FUN_02023A10 +.extern FUN_02023A28 +.extern FUN_02023A2C +.extern FUN_02023A30 +.extern FUN_02023A54 +.extern FUN_02023A68 +.extern FUN_02023A70 +.extern FUN_02023A78 +.extern FUN_02023A88 +.extern FUN_02023A90 +.extern FUN_02023A9C +.extern FUN_02023AA4 +.extern FUN_02023AF4 +.extern FUN_02023B0C +.extern FUN_02023BD4 +.extern FUN_02023C90 +.extern FUN_02023D58 +.extern FUN_02023D6C +.extern FUN_02023D80 +.extern FUN_020243C8 +.extern FUN_02024404 +.extern FUN_02024440 +.extern FUN_0202445C +.extern FUN_020244A4 +.extern FUN_020244EC +.extern FUN_02024504 +.extern FUN_02024518 +.extern FUN_02024550 +.extern FUN_020245F0 +.extern FUN_0202471C +.extern FUN_0202498C +.extern FUN_02024AF0 +.extern FUN_02024C84 +.extern FUN_02024CA4 +.extern FUN_02024CE0 +.extern FUN_02024D4C +.extern FUN_02024D64 +.extern FUN_02024D80 +.extern FUN_02024DA0 +.extern FUN_02024EB4 +.extern FUN_02024EC0 +.extern FUN_02024ECC +.extern FUN_02024ED8 +.extern FUN_02024EE8 +.extern FUN_02024F0C +.extern FUN_02024F30 +.extern FUN_02024F44 +.extern FUN_02024FF4 +.extern FUN_02025084 +.extern FUN_02025128 +.extern FUN_02025238 +.extern FUN_02025244 +.extern FUN_0202524C +.extern FUN_02025268 +.extern FUN_02025274 +.extern FUN_020252AC +.extern FUN_020252C4 +.extern FUN_020252D0 +.extern FUN_020252DC +.extern FUN_020252E8 +.extern FUN_020252F4 +.extern FUN_020253E0 +.extern FUN_02025484 +.extern FUN_02025490 +.extern FUN_020254A0 +.extern FUN_020254B4 +.extern FUN_020254C0 +.extern FUN_02025520 +.extern FUN_02025614 +.extern FUN_02025658 +.extern FUN_020256AC +.extern FUN_020256BC +.extern FUN_020256D0 +.extern FUN_020256DC +.extern FUN_020257C0 +.extern FUN_020257C4 +.extern FUN_020257C8 +.extern FUN_020257CC +.extern FUN_020257D0 +.extern FUN_020257D8 +.extern FUN_020257DC +.extern FUN_020257E0 +.extern FUN_02025814 +.extern FUN_02025824 +.extern FUN_02025838 +.extern FUN_02025864 +.extern FUN_02025878 +.extern FUN_02025888 +.extern FUN_0202589C +.extern FUN_020258B0 +.extern FUN_020258D4 +.extern FUN_02025A60 +.extern FUN_02025B60 +.extern FUN_02025B94 +.extern FUN_02025BE8 +.extern FUN_02025C30 +.extern FUN_02025C40 +.extern FUN_02025D6C +.extern FUN_02025D94 +.extern FUN_02025DB0 +.extern FUN_020260C4 +.extern FUN_02026298 +.extern FUN_020266B0 +.extern FUN_020266C8 +.extern FUN_020268D4 +.extern FUN_02026908 +.extern FUN_02026970 +.extern FUN_020269A0 +.extern FUN_020269CC +.extern FUN_020269D4 +.extern FUN_02026BC8 +.extern FUN_02026C00 +.extern FUN_02026CB4 +.extern FUN_02026CC4 +.extern FUN_02026FE4 +.extern FUN_02026FE8 +.extern FUN_02027008 +.extern FUN_02027044 +.extern FUN_0202708C +.extern FUN_02027098 +.extern FUN_020270B4 +.extern FUN_020270D8 +.extern FUN_02027100 +.extern FUN_02027114 +.extern FUN_02027168 +.extern FUN_02027184 +.extern FUN_020271A4 +.extern FUN_02027210 +.extern FUN_02027264 +.extern FUN_02027478 +.extern FUN_020275D8 +.extern FUN_02027608 +.extern FUN_0202763C +.extern FUN_0202769C +.extern FUN_020276A8 +.extern FUN_02027710 +.extern FUN_02027740 +.extern FUN_0202787C +.extern FUN_020278AC +.extern FUN_020278DC +.extern FUN_02027914 +.extern FUN_02027964 +.extern FUN_02027E24 +.extern FUN_02027E34 +.extern FUN_02027E5C +.extern FUN_02027F04 +.extern FUN_02027FBC +.extern FUN_02027FDC +.extern FUN_02028048 +.extern FUN_02028074 +.extern FUN_02028094 +.extern FUN_020280B8 +.extern FUN_020280F4 +.extern FUN_02028174 +.extern FUN_02028190 +.extern FUN_020281B8 +.extern FUN_02028448 +.extern FUN_020286EC +.extern FUN_02028700 +.extern FUN_02028754 +.extern FUN_02028788 +.extern FUN_020287A4 +.extern FUN_020287A8 +.extern FUN_020287C0 +.extern FUN_020287EC +.extern FUN_02028810 +.extern FUN_0202881C +.extern FUN_02028828 +.extern FUN_02028840 +.extern FUN_02028930 +.extern FUN_02028934 +.extern FUN_02028954 +.extern FUN_0202896C +.extern FUN_020289A4 +.extern FUN_020289B0 +.extern FUN_02028A20 +.extern FUN_02028AD4 +.extern FUN_02028FA4 +.extern FUN_02029048 +.extern FUN_02029120 +.extern FUN_0202912C +.extern FUN_02029138 +.extern FUN_0202914C +.extern FUN_0202918C +.extern FUN_0202920C +.extern FUN_0202942C +.extern FUN_02029500 +.extern FUN_02029880 +.extern FUN_020299C0 +.extern FUN_020299DC +.extern FUN_02029ABC +.extern FUN_02029AC8 +.extern FUN_02029ACC +.extern FUN_02029AD0 +.extern FUN_02029AD8 +.extern FUN_02029AFC +.extern FUN_02029B38 +.extern FUN_02029B3C +.extern FUN_02029C08 +.extern FUN_02029C74 +.extern FUN_02029C80 +.extern FUN_02029C8C +.extern FUN_02029CC8 +.extern FUN_02029CE0 +.extern FUN_02029CEC +.extern FUN_02029D44 +.extern FUN_02029DD4 +.extern FUN_02029E0C +.extern FUN_02029E2C +.extern FUN_02029EBC +.extern FUN_02029EC0 +.extern FUN_02029EC4 +.extern FUN_02029EE4 +.extern FUN_02029EF8 +.extern FUN_02029F04 +.extern FUN_02029F10 +.extern FUN_02029F14 +.extern FUN_02029F4C +.extern FUN_02029F9C +.extern FUN_02029FC8 +.extern FUN_0202A07C +.extern FUN_0202A0A8 +.extern FUN_0202A0E8 +.extern FUN_0202A11C +.extern FUN_0202A150 +.extern FUN_0202A170 +.extern FUN_0202A1B8 +.extern FUN_0202A240 +.extern FUN_0202A2C4 +.extern FUN_0202A3B4 +.extern FUN_0202A498 +.extern FUN_0202A520 +.extern FUN_0202A538 +.extern FUN_0202A578 +.extern FUN_0202A5CC +.extern FUN_0202A5D0 +.extern FUN_0202A5D4 +.extern FUN_0202A5F4 +.extern FUN_0202A74C +.extern FUN_0202A864 +.extern FUN_0202A8CC +.extern FUN_0202A8D8 +.extern FUN_0202A8E4 +.extern FUN_0202A918 +.extern FUN_0202A988 +.extern FUN_0202A990 +.extern FUN_0202A9AC +.extern FUN_0202A9B0 +.extern FUN_0202A9D0 +.extern FUN_0202AA00 +.extern FUN_0202AA14 +.extern FUN_0202AA20 +.extern FUN_0202AA38 +.extern FUN_0202AA40 +.extern FUN_0202AA58 +.extern FUN_0202AA74 +.extern FUN_0202AAA0 +.extern FUN_0202AAFC +.extern FUN_0202AB40 +.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_0202B4B0 +.extern FUN_0202B710 +.extern FUN_0202B838 +.extern FUN_0202B844 +.extern FUN_0202B850 +.extern FUN_0202B85C +.extern FUN_0202B868 +.extern FUN_0202B870 +.extern FUN_0202B87C +.extern FUN_0202B8E4 +.extern FUN_0202B8F0 +.extern FUN_0202BD6C +.extern FUN_0202BDF0 +.extern FUN_0202BE6C +.extern FUN_0202BEDC +.extern FUN_0202BFD8 +.extern FUN_0202C000 +.extern FUN_0202C108 +.extern FUN_0202C144 +.extern FUN_0202CB8C +.extern FUN_0202D8B0 +.extern FUN_0202D8D0 +.extern FUN_0202DBE0 +.extern FUN_0202DCF8 +.extern FUN_0202DDE8 +.extern FUN_0202DE78 +.extern FUN_0202DFA4 +.extern FUN_0202E020 +.extern FUN_0202E044 +.extern FUN_0202E25C +.extern FUN_0202E4C8 +.extern FUN_0202EDD8 +.extern FUN_0202EDF8 +.extern FUN_0202EE0C +.extern FUN_0202EE24 +.extern FUN_0202EE44 +.extern FUN_0202EF18 +.extern FUN_0202EF84 +.extern FUN_0202F078 +.extern FUN_0202F094 +.extern FUN_0202F0B8 +.extern FUN_0202FA10 +.extern FUN_0202FA1C +.extern FUN_0202FA48 +.extern FUN_0202FB80 +.extern FUN_02030A78 +.extern FUN_02030ADC +.extern FUN_02030B3C +.extern FUN_02030BC4 +.extern FUN_02030C4C +.extern FUN_02030C58 +.extern FUN_02030E7C +.extern FUN_02030F20 +.extern FUN_02030F40 +.extern FUN_02030F60 +.extern FUN_02030F74 +.extern FUN_02030F88 +.extern FUN_02030FA8 +.extern FUN_02030FC8 +.extern FUN_02030FE0 +.extern FUN_02031190 +.extern FUN_020311D0 +.extern FUN_020311DC +.extern FUN_020311E8 +.extern FUN_020311F0 +.extern FUN_02031248 +.extern FUN_02031280 +.extern FUN_020312BC +.extern FUN_020313B4 +.extern FUN_020313EC +.extern FUN_02031400 +.extern FUN_02031438 +.extern FUN_02031588 +.extern FUN_020315D8 +.extern FUN_020315FC +.extern FUN_0203168C +.extern FUN_020316AC +.extern FUN_020316E0 +.extern FUN_02031810 +.extern FUN_02031824 +.extern FUN_02031860 +.extern FUN_02031880 +.extern FUN_020318B4 +.extern FUN_020318C4 +.extern FUN_02031914 +.extern FUN_02031924 +.extern FUN_02031934 +.extern FUN_02031948 +.extern FUN_02031990 +.extern FUN_020319D8 +.extern FUN_020319F4 +.extern FUN_02031A08 +.extern FUN_02031A2C +.extern FUN_02031A7C +.extern FUN_02031AC8 +.extern FUN_02031AF4 +.extern FUN_02031B2C +.extern FUN_02031B50 +.extern FUN_02031BD0 +.extern FUN_02031BF4 +.extern FUN_02031C2C +.extern FUN_02031C54 +.extern FUN_02031C64 +.extern FUN_02032888 +.extern FUN_020328C0 +.extern FUN_020328F4 +.extern FUN_02032B6C +.extern FUN_02032DAC +.extern FUN_020334E8 +.extern FUN_02033534 +.extern FUN_02033564 +.extern FUN_02033578 +.extern FUN_020335B8 +.extern FUN_020335F0 +.extern FUN_02033678 +.extern FUN_020337E8 +.extern FUN_0203384C +.extern FUN_02033E74 +.extern FUN_02033ED0 +.extern FUN_02033F20 +.extern FUN_02033F70 +.extern FUN_02034188 +.extern FUN_020344AC +.extern FUN_020344D8 +.extern FUN_020344FC +.extern FUN_0203450C +.extern FUN_0203451C +.extern FUN_02034678 +.extern FUN_020346CC +.extern FUN_02034774 +.extern FUN_02034788 +.extern FUN_020347B0 +.extern FUN_020347C4 +.extern FUN_02034824 +.extern FUN_0203484C +.extern FUN_02034860 +.extern FUN_0203487C +.extern FUN_02034898 +.extern FUN_020348B4 +.extern FUN_020348E4 +.extern FUN_02034908 +.extern FUN_02034930 +.extern FUN_02034944 +.extern FUN_02034964 +.extern FUN_02034998 +.extern FUN_020349D8 +.extern FUN_020349E4 +.extern FUN_02034A04 +.extern FUN_02034A60 +.extern FUN_02034AC8 +.extern FUN_02034AF0 +.extern FUN_02034AF8 +.extern FUN_02034B00 +.extern FUN_02034B64 +.extern FUN_02034B6C +.extern FUN_02034B74 +.extern FUN_02034BAC +.extern FUN_02034BDC +.extern FUN_02034C0C +.extern FUN_02034C24 +.extern FUN_02034C34 +.extern FUN_02034D2C +.extern FUN_02034D44 +.extern FUN_02034DC4 +.extern FUN_02034DC8 +.extern FUN_02034DCC +.extern FUN_02034DD0 +.extern FUN_02034DD4 +.extern FUN_02034DE8 +.extern FUN_02034DEC +.extern FUN_02034DF4 +.extern FUN_02034DFC +.extern FUN_02034E04 +.extern FUN_02034E0C +.extern FUN_02034E10 +.extern FUN_02034E18 +.extern FUN_02034E20 +.extern FUN_02034E24 +.extern FUN_02034E28 +.extern FUN_02034E30 +.extern FUN_02034E48 +.extern FUN_02034E60 +.extern FUN_02034E8C +.extern FUN_02034E90 +.extern FUN_02034EC4 +.extern FUN_02034EF8 +.extern FUN_02034F1C +.extern FUN_02034F40 +.extern FUN_02034F88 +.extern FUN_02034FC0 +.extern FUN_02034FE4 +.extern FUN_02035068 +.extern FUN_020351A0 +.extern FUN_02035D04 +.extern FUN_02035E50 +.extern FUN_02036A78 +.extern FUN_02036AB8 +.extern FUN_02036B90 +.extern FUN_02036BC4 +.extern FUN_02036BDC +.extern FUN_02036D94 +.extern FUN_02036DD4 +.extern FUN_02037024 +.extern FUN_02037350 +.extern FUN_02037394 +.extern FUN_0203739C +.extern FUN_020373AC +.extern FUN_020373C4 +.extern FUN_020373D4 +.extern FUN_02037760 +.extern FUN_02037778 +.extern FUN_020377A8 +.extern FUN_020377AC +.extern FUN_020377B0 +.extern FUN_020377C8 +.extern FUN_0203780C +.extern FUN_0203789C +.extern FUN_020378FC +.extern FUN_02037944 +.extern FUN_020379F8 +.extern FUN_02037A1C +.extern FUN_02037A40 +.extern FUN_02037A48 +.extern FUN_02037A70 +.extern FUN_02037A78 +.extern FUN_02037B44 +.extern FUN_02037BB0 +.extern FUN_02037C00 +.extern FUN_02037CF0 +.extern FUN_02037D5C +.extern FUN_02037D60 +.extern FUN_02037E18 +.extern FUN_02037E80 +.extern FUN_02037E90 +.extern FUN_02037EB8 +.extern FUN_02037F2C +.extern FUN_02037F58 +.extern FUN_02037FC4 +.extern FUN_02037FE4 +.extern FUN_020380CC +.extern FUN_02038130 +.extern FUN_020383D8 +.extern FUN_020383F8 +.extern FUN_0203842C +.extern FUN_0203846C +.extern FUN_020385CC +.extern FUN_02038680 +.extern FUN_020386A4 +.extern FUN_020386B4 +.extern FUN_020386E0 +.extern FUN_02038790 +.extern FUN_02038804 +.extern FUN_02038814 +.extern FUN_02038824 +.extern FUN_02038854 +.extern FUN_02038864 +.extern FUN_0203888C +.extern FUN_020388B4 +.extern FUN_020389CC +.extern FUN_02038AD0 +.extern FUN_02038AF4 +.extern FUN_02038B6C +.extern FUN_02038C78 +.extern FUN_02038CA8 +.extern FUN_02038CD8 +.extern FUN_02038D10 +.extern FUN_02038EB0 +.extern FUN_02039438 +.extern FUN_02039460 +.extern FUN_020394B8 +.extern FUN_020394F0 +.extern FUN_02039504 +.extern FUN_02039528 +.extern FUN_0203953C +.extern FUN_02039550 +.extern FUN_02039564 +.extern FUN_0203959C +.extern FUN_020395BC +.extern FUN_020395F4 +.extern FUN_02039618 +.extern FUN_0203962C +.extern FUN_02039640 +.extern FUN_0203965C +.extern FUN_02039678 +.extern FUN_02039694 +.extern FUN_02039874 +.extern FUN_0203989C +.extern FUN_020399A0 +.extern FUN_020399A4 +.extern FUN_020399A8 +.extern FUN_020399B4 +.extern FUN_02039A10 +.extern FUN_02039A28 +.extern FUN_02039A40 +.extern FUN_02039A5C +.extern FUN_02039A78 +.extern FUN_02039A90 +.extern FUN_02039AAC +.extern FUN_02039ACC +.extern FUN_02039AF8 +.extern FUN_02039B28 +.extern FUN_02039B50 +.extern FUN_02039B78 +.extern FUN_02039BA0 +.extern FUN_02039BBC +.extern FUN_02039BDC +.extern FUN_02039C08 +.extern FUN_02039C40 +.extern FUN_02039C78 +.extern FUN_02039CE4 +.extern FUN_02039CF8 +.extern FUN_02039D10 +.extern FUN_02039D48 +.extern FUN_02039D78 +.extern FUN_02039DAC +.extern FUN_02039DC4 +.extern FUN_02039DD0 +.extern FUN_02039E04 +.extern FUN_02039E38 +.extern FUN_02039E50 +.extern FUN_02039E68 +.extern FUN_02039E84 +.extern FUN_02039EC0 +.extern FUN_02039EE8 +.extern FUN_02039F0C +.extern FUN_02039F30 +.extern FUN_02039F58 +.extern FUN_02039F88 +.extern FUN_02039FB8 +.extern FUN_02039FDC +.extern FUN_0203A00C +.extern FUN_0203A038 +.extern FUN_0203A04C +.extern FUN_0203A098 +.extern FUN_0203A0FC +.extern FUN_0203A13C +.extern FUN_0203A188 +.extern FUN_0203A210 +.extern FUN_0203A288 +.extern FUN_0203A2C4 +.extern FUN_0203A304 +.extern FUN_0203A340 +.extern FUN_0203A388 +.extern FUN_0203A3C4 +.extern FUN_0203A400 +.extern FUN_0203A45C +.extern FUN_0203A484 +.extern FUN_0203A4D0 +.extern FUN_0203A560 +.extern FUN_0203A590 +.extern FUN_0203A5D8 +.extern FUN_0203A608 +.extern FUN_0203A630 +.extern FUN_0203A780 +.extern FUN_0203A830 +.extern FUN_0203A85C +.extern FUN_0203A878 +.extern FUN_0203A8B8 +.extern FUN_0203A9F0 +.extern FUN_0203AA90 +.extern FUN_0203AAA0 +.extern FUN_0203AB44 +.extern FUN_0203AB74 +.extern FUN_0203AB8C +.extern FUN_0203AC14 +.extern FUN_0203AC9C +.extern FUN_0203ACC4 +.extern FUN_0203AD08 +.extern FUN_0203AD54 +.extern FUN_0203ADC4 +.extern FUN_0203AE4C +.extern FUN_0203AED4 +.extern FUN_0203AF34 +.extern FUN_0203AF58 +.extern FUN_0203AF84 +.extern FUN_0203AFA4 +.extern FUN_0203AFC4 +.extern FUN_0203B024 +.extern FUN_0203B148 +.extern FUN_0203B1F0 +.extern FUN_0203B2E0 +.extern FUN_0203B3B0 +.extern FUN_0203B3C0 +.extern FUN_0203B3DC +.extern FUN_0203B3F8 +.extern FUN_0203B440 +.extern FUN_0203B468 +.extern FUN_0203B500 +.extern FUN_0203B544 +.extern FUN_0203B574 +.extern FUN_0203B5B8 +.extern FUN_0203B618 +.extern FUN_0203B640 +.extern FUN_0203B724 +.extern FUN_0203B758 +.extern FUN_0203B790 +.extern FUN_0203B7D8 +.extern FUN_0203B7F0 +.extern FUN_0203B81C +.extern FUN_0203B85C +.extern FUN_0203B8A0 +.extern FUN_0203B8E4 +.extern FUN_0203B914 +.extern FUN_0203B944 +.extern FUN_0203B968 +.extern FUN_0203B9B4 +.extern FUN_0203BA3C +.extern FUN_0203BAB0 +.extern FUN_0203BAF4 +.extern FUN_0203BB34 +.extern FUN_0203BB80 +.extern FUN_0203BB84 +.extern FUN_0203BB88 +.extern FUN_0203BB8C +.extern FUN_0203BC1C +.extern FUN_0203BC2C +.extern FUN_0203BCBC +.extern FUN_0203BCCC +.extern FUN_0203BCD8 +.extern FUN_0203BD08 +.extern FUN_0203BD28 +.extern FUN_0203BDB8 +.extern FUN_0203BE50 +.extern FUN_0203BE68 +.extern FUN_0203BE80 +.extern FUN_0203BECC +.extern FUN_0203BF00 +.extern FUN_0203BF20 +.extern FUN_0203BF2C +.extern FUN_0203BF84 +.extern FUN_0203BFEC +.extern FUN_0203C054 +.extern FUN_0203C090 +.extern FUN_0203C0CC +.extern FUN_0203C0FC +.extern FUN_0203C118 +.extern FUN_0203C12C +.extern FUN_0203C174 +.extern FUN_0203C1AC +.extern FUN_0203C200 +.extern FUN_0203C278 +.extern FUN_0203C2C4 +.extern FUN_0203C2E0 +.extern FUN_0203C2F0 +.extern FUN_0203C300 +.extern FUN_0203C32C +.extern FUN_0203C33C +.extern FUN_0203C368 +.extern FUN_0203C3C8 +.extern FUN_0203C3E8 +.extern FUN_0203C430 +.extern FUN_0203C460 +.extern FUN_0203C4B0 +.extern FUN_0203C4F0 +.extern FUN_0203C520 +.extern FUN_0203C58C +.extern FUN_0203C5BC +.extern FUN_0203C614 +.extern FUN_0203C680 +.extern FUN_0203C6C4 +.extern FUN_0203C70C +.extern FUN_0203C730 +.extern FUN_0203C788 +.extern FUN_0203C7E4 +.extern FUN_0203C7F4 +.extern FUN_0203C820 +.extern FUN_0203C844 +.extern FUN_0203C874 +.extern FUN_0203C8B4 +.extern FUN_0203C8E4 +.extern FUN_0203C930 +.extern FUN_0203C960 +.extern FUN_0203C990 +.extern FUN_0203CA20 +.extern FUN_0203CA2C +.extern FUN_0203CA5C +.extern FUN_0203CAE8 +.extern FUN_0203CB08 +.extern FUN_0203CB20 +.extern FUN_0203CB48 +.extern FUN_0203CB60 +.extern FUN_0203CB70 +.extern FUN_0203CBBC +.extern FUN_0203CBE8 +.extern FUN_0203CC88 +.extern FUN_0203CD20 +.extern FUN_0203CDB8 +.extern FUN_0203CDC4 +.extern FUN_0203CDD0 +.extern FUN_0203CE00 +.extern FUN_0203CE0C +.extern FUN_0203CE8C +.extern FUN_0203CEBC +.extern FUN_0203CF04 +.extern FUN_0203CF34 +.extern FUN_0203CF64 +.extern FUN_0203CF94 +.extern FUN_0203CFC4 +.extern FUN_0203CFC8 +.extern FUN_0203D050 +.extern FUN_0203D0A4 +.extern FUN_0203D0F8 +.extern FUN_0203D134 +.extern FUN_0203D140 +.extern FUN_0203D150 +.extern FUN_0203D178 +.extern FUN_0203D194 +.extern FUN_0203D1A4 +.extern FUN_0203D1C0 +.extern FUN_0203D214 +.extern FUN_0203D23C +.extern FUN_0203D248 +.extern FUN_0203D278 +.extern FUN_0203D2A4 +.extern FUN_0203D2E4 +.extern FUN_0203D330 +.extern FUN_0203D33C +.extern FUN_0203D36C +.extern FUN_0203D3A4 +.extern FUN_0203D3DC +.extern FUN_0203D448 +.extern FUN_0203D458 +.extern FUN_0203D490 +.extern FUN_0203D4E8 +.extern FUN_0203D528 +.extern FUN_0203D560 +.extern FUN_0203D5B0 +.extern FUN_0203D5F8 +.extern FUN_0203D60C +.extern FUN_0203D61C +.extern FUN_0203D630 +.extern FUN_0203D66C +.extern FUN_0203D6C4 +.extern FUN_0203D728 +.extern FUN_0203D738 +.extern FUN_0203D774 +.extern FUN_0203D7DC +.extern FUN_0203D834 +.extern FUN_0203D868 +.extern FUN_0203D874 +.extern FUN_0203D8A0 +.extern FUN_0203D8D0 +.extern FUN_0203D8E8 +.extern FUN_0203D8EC +.extern FUN_0203D920 +.extern FUN_0203D938 +.extern FUN_0203D948 +.extern FUN_0203D958 +.extern FUN_0203D998 +.extern FUN_0203D9E8 +.extern FUN_0203DA78 +.extern FUN_0203DAB0 +.extern FUN_0203DAE8 +.extern FUN_0203DB38 +.extern FUN_0203DB88 +.extern FUN_0203DBD4 +.extern FUN_0203DC00 +.extern FUN_0203DC58 +.extern FUN_0203DC70 +.extern FUN_0203DC88 +.extern FUN_0203DCA0 +.extern FUN_0203DCB8 +.extern FUN_0203DCC8 +.extern FUN_0203DCD8 +.extern FUN_0203DCE8 +.extern FUN_0203DCF8 +.extern FUN_0203DD08 +.extern FUN_0203DD18 +.extern FUN_0203DD34 +.extern FUN_0203DD50 +.extern FUN_0203DD60 +.extern FUN_0203DE00 +.extern FUN_0203DE4C +.extern FUN_0203DE58 +.extern FUN_0203DE80 +.extern FUN_0203DEA8 +.extern FUN_0203DEC4 +.extern FUN_0203DEF8 +.extern FUN_0203DF2C +.extern FUN_0203DF38 +.extern FUN_0203DF64 +.extern FUN_0203DF84 +.extern FUN_0203DFA8 +.extern FUN_0203DFE0 +.extern FUN_0203E018 +.extern FUN_0203E054 +.extern FUN_0203E078 +.extern FUN_0203E0CC +.extern FUN_0203E120 +.extern FUN_0203E138 +.extern FUN_0203E168 +.extern FUN_0203E254 +.extern FUN_0203E258 +.extern FUN_0203E29C +.extern FUN_0203E2F8 +.extern FUN_0203E35C +.extern FUN_0203E38C +.extern FUN_0203E3D0 +.extern FUN_0203E408 +.extern FUN_0203E440 +.extern FUN_0203E470 +.extern FUN_0203E4A0 +.extern FUN_0203E4B0 +.extern FUN_0203E4D8 +.extern FUN_0203E4F0 +.extern FUN_0203E510 +.extern FUN_0203E568 +.extern FUN_0203E5DC +.extern FUN_0203E674 +.extern FUN_0203E684 +.extern FUN_0203E6B4 +.extern FUN_0203E6C4 +.extern FUN_0203E6FC +.extern FUN_0203E72C +.extern FUN_0203E744 +.extern FUN_0203E774 +.extern FUN_0203E7F0 +.extern FUN_0203E81C +.extern FUN_0203E848 +.extern FUN_0203E858 +.extern FUN_0203E870 +.extern FUN_0203E894 +.extern FUN_0203E8C4 +.extern FUN_0203E8F4 +.extern FUN_0203E928 +.extern FUN_0203E940 +.extern FUN_0203E954 +.extern FUN_0203E968 +.extern FUN_0203E9CC +.extern FUN_0203EA68 +.extern FUN_0203EA90 +.extern FUN_0203EAB0 +.extern FUN_0203EB20 +.extern FUN_0203EB48 +.extern FUN_0203EB88 +.extern FUN_0203EBC8 +.extern FUN_0203EBE4 +.extern FUN_0203ECAC +.extern FUN_0203ECD8 +.extern FUN_0203ECF4 +.extern FUN_0203ED10 +.extern FUN_0203ED70 +.extern FUN_0203EDA4 +.extern FUN_0203EDC8 +.extern FUN_0203EDE0 +.extern FUN_0203EE08 +.extern FUN_0203EE18 +.extern FUN_0203EE28 +.extern FUN_0203EE58 +.extern FUN_0203EE68 +.extern FUN_0203EE78 +.extern FUN_0203EE98 +.extern FUN_0203EED8 +.extern FUN_0203EF58 +.extern FUN_0203F00C +.extern FUN_0203F020 +.extern FUN_0203F034 +.extern FUN_0203F058 +.extern FUN_0203F07C +.extern FUN_0203F110 +.extern FUN_0203F174 +.extern FUN_0203F19C +.extern FUN_0203F234 +.extern FUN_0203F254 +.extern FUN_0203F26C +.extern FUN_0203F2AC +.extern FUN_0203F2E4 +.extern FUN_0203F31C +.extern FUN_0203F348 +.extern FUN_0203F38C +.extern FUN_0203F39C +.extern FUN_0203F3AC +.extern FUN_0203F418 +.extern FUN_0203F44C +.extern FUN_0203F484 +.extern FUN_0203F4D8 +.extern FUN_0203F508 +.extern FUN_0203F5D4 +.extern FUN_0203F604 +.extern FUN_0203F634 +.extern FUN_0203F664 +.extern FUN_0203F6E4 +.extern FUN_0203F720 +.extern FUN_0203F760 +.extern FUN_0203F7C8 +.extern FUN_0203F80C +.extern FUN_0203F880 +.extern FUN_0203F8C0 +.extern FUN_0203F924 +.extern FUN_0203F954 +.extern FUN_0203F988 +.extern FUN_0203F9B0 +.extern FUN_0203F9DC +.extern FUN_0203FA14 +.extern FUN_0203FA58 +.extern FUN_0203FB4C +.extern FUN_0203FB64 +.extern FUN_0203FB94 +.extern FUN_0203FBA0 +.extern FUN_0203FBAC +.extern FUN_0203FBBC +.extern FUN_0203FC1C +.extern FUN_0203FC58 +.extern FUN_0203FC80 +.extern FUN_0203FCB0 +.extern FUN_0203FCDC +.extern FUN_0203FCF4 +.extern FUN_0203FDBC +.extern FUN_0203FE08 +.extern FUN_0203FE48 +.extern FUN_0203FE80 +.extern FUN_0203FE90 +.extern FUN_0203FEC0 +.extern FUN_0203FF10 +.extern FUN_02040028 +.extern FUN_02040074 +.extern FUN_020400C8 +.extern FUN_0204011C +.extern FUN_02040170 +.extern FUN_020401CC +.extern FUN_02040204 +.extern FUN_02040220 +.extern FUN_0204025C +.extern FUN_02040298 +.extern FUN_020402D4 +.extern FUN_02040304 +.extern FUN_02040340 +.extern FUN_02040370 +.extern FUN_020403A0 +.extern FUN_020403D0 +.extern FUN_02040414 +.extern FUN_02040458 +.extern FUN_02040488 +.extern FUN_020404FC +.extern FUN_0204052C +.extern FUN_0204056C +.extern FUN_0204059C +.extern FUN_020405B4 +.extern FUN_020405CC +.extern FUN_020405F8 +.extern FUN_02040638 +.extern FUN_0204064C +.extern FUN_02040660 +.extern FUN_020406C0 +.extern FUN_020406CC +.extern FUN_02040700 +.extern FUN_02040724 +.extern FUN_02040748 +.extern FUN_02040790 +.extern FUN_020407C8 +.extern FUN_02040800 +.extern FUN_0204083C +.extern FUN_02040874 +.extern FUN_020408BC +.extern FUN_0204091C +.extern FUN_02040964 +.extern FUN_020409C0 +.extern FUN_020409F8 +.extern FUN_02040A30 +.extern FUN_02040A7C +.extern FUN_02040B0C +.extern FUN_02040B5C +.extern FUN_02040BAC +.extern FUN_02040BFC +.extern FUN_02040C34 +.extern FUN_02040C6C +.extern FUN_02040CA4 +.extern FUN_02040D04 +.extern FUN_02040D7C +.extern FUN_02040DB4 +.extern FUN_02040DEC +.extern FUN_02040E4C +.extern FUN_02040EB4 +.extern FUN_02040EF8 +.extern FUN_02040F34 +.extern FUN_02040F6C +.extern FUN_02040FA4 +.extern FUN_02040FDC +.extern FUN_02041014 +.extern FUN_0204104C +.extern FUN_02041094 +.extern FUN_020410C8 +.extern FUN_02041100 +.extern FUN_02041138 +.extern FUN_02041174 +.extern FUN_02041194 +.extern FUN_020411C4 +.extern FUN_02041340 +.extern FUN_020413C0 +.extern FUN_020413E8 +.extern FUN_020413F8 +.extern FUN_0204140C +.extern FUN_02041424 +.extern FUN_0204143C +.extern FUN_02041478 +.extern FUN_0204149C +.extern FUN_020414B8 +.extern FUN_020414CC +.extern FUN_020414E0 +.extern FUN_020414FC +.extern FUN_02041518 +.extern FUN_02041558 +.extern FUN_02041588 +.extern FUN_020415AC +.extern FUN_020415BC +.extern FUN_020415E0 +.extern FUN_02041618 +.extern FUN_02041644 +.extern FUN_02041650 +.extern FUN_02041664 +.extern FUN_02041674 +.extern FUN_020416A8 +.extern FUN_02041770 +.extern FUN_020417E0 +.extern FUN_02041808 +.extern FUN_0204185C +.extern FUN_0204188C +.extern FUN_0204190C +.extern FUN_02041970 +.extern FUN_020419F8 +.extern FUN_02041A80 +.extern FUN_02041AB4 +.extern FUN_02041AD4 +.extern FUN_02041AE0 +.extern FUN_02041B10 +.extern FUN_02041B40 +.extern FUN_02041B70 +.extern FUN_02041B9C +.extern FUN_02041BC4 +.extern FUN_02041BF0 +.extern FUN_02041C38 +.extern FUN_02041E40 +.extern FUN_02041FDC +.extern FUN_02042000 +.extern FUN_02042038 +.extern FUN_02042110 +.extern FUN_0204214C +.extern FUN_02042354 +.extern FUN_02042364 +.extern FUN_02042394 +.extern FUN_020423B0 +.extern FUN_02042700 +.extern FUN_02042780 +.extern FUN_020427A8 +.extern FUN_020427D0 +.extern FUN_02042864 +.extern FUN_02042894 +.extern FUN_020428E0 +.extern FUN_02042950 +.extern FUN_02042980 +.extern FUN_02042998 +.extern FUN_020429B8 +.extern FUN_020429E8 +.extern FUN_02042A18 +.extern FUN_02042A48 +.extern FUN_02042A98 +.extern FUN_02042B0C +.extern FUN_02042B40 +.extern FUN_02042B74 +.extern FUN_02042BA8 +.extern FUN_02042BDC +.extern FUN_02042C10 +.extern FUN_02042C44 +.extern FUN_02042C8C +.extern FUN_02042CBC +.extern FUN_02042D1C +.extern FUN_0204387C +.extern FUN_020438D0 +.extern FUN_02043918 +.extern FUN_020439B4 +.extern FUN_02043A44 +.extern FUN_02043A94 +.extern FUN_02043AAC +.extern FUN_02043ACC +.extern FUN_02043AFC +.extern FUN_02043B28 +.extern FUN_02043B54 +.extern FUN_02043B84 +.extern FUN_02043BD0 +.extern FUN_02043C28 +.extern FUN_02043C6C +.extern FUN_02043C90 +.extern FUN_02043CB4 +.extern FUN_02043CE4 +.extern FUN_02043D28 +.extern FUN_02043D78 +.extern FUN_02043DC8 +.extern FUN_02043DE0 +.extern FUN_02043E00 +.extern FUN_02043E20 +.extern FUN_02043E50 +.extern FUN_02043E68 +.extern FUN_02043E9C +.extern FUN_02043EFC +.extern FUN_02043F50 +.extern FUN_02043FA0 +.extern FUN_02043FF4 +.extern FUN_02044034 +.extern FUN_020440C0 +.extern FUN_020440F0 +.extern FUN_02044120 +.extern FUN_02044138 +.extern FUN_0204413C +.extern FUN_02044140 +.extern FUN_02044158 +.extern FUN_0204416C +.extern FUN_02044198 +.extern FUN_020442BC +.extern FUN_0204434C +.extern FUN_020443A8 +.extern FUN_02044414 +.extern FUN_0204449C +.extern FUN_020444F4 +.extern FUN_02044598 +.extern FUN_02044658 +.extern FUN_0204469C +.extern FUN_02044730 +.extern FUN_0204478C +.extern FUN_02044800 +.extern FUN_0204488C +.extern FUN_020448D4 +.extern FUN_020449A4 +.extern FUN_02044A0C +.extern FUN_02044A6C +.extern FUN_02044A94 +.extern FUN_02044B00 +.extern FUN_02044B2C +.extern FUN_02044B84 +.extern FUN_02044C0C +.extern FUN_02044C88 +.extern FUN_02044CE0 +.extern FUN_02044D44 +.extern FUN_02044D8C +.extern FUN_02044E34 +.extern FUN_02044E78 +.extern FUN_02044ED8 +.extern FUN_02044F20 +.extern FUN_02044F58 +.extern FUN_02044FE8 +.extern FUN_0204505C +.extern FUN_02045104 +.extern FUN_02045170 +.extern FUN_020451D0 +.extern FUN_02045264 +.extern FUN_02045268 +.extern FUN_020452B4 +.extern FUN_02045308 +.extern FUN_02045398 +.extern FUN_0204539C +.extern FUN_020453A0 +.extern FUN_020453F4 +.extern FUN_02045424 +.extern FUN_02045438 +.extern FUN_02045468 +.extern FUN_02045484 +.extern FUN_020454CC +.extern FUN_02045500 +.extern FUN_0204552C +.extern FUN_0204557C +.extern FUN_02045590 +.extern FUN_020455BC +.extern FUN_020455D0 +.extern FUN_020455E4 +.extern FUN_02045610 +.extern FUN_02045624 +.extern FUN_02045638 +.extern FUN_02045664 +.extern FUN_02045678 +.extern FUN_020456D4 +.extern FUN_0204572C +.extern FUN_02045784 +.extern FUN_020457DC +.extern FUN_02045834 +.extern FUN_0204588C +.extern FUN_020458E4 +.extern FUN_02045918 +.extern FUN_02045950 +.extern FUN_02045954 +.extern FUN_02045958 +.extern FUN_020459AC +.extern FUN_020459E8 +.extern FUN_02045A3C +.extern FUN_02045A78 +.extern FUN_02045ACC +.extern FUN_02045B08 +.extern FUN_02045B44 +.extern FUN_02045B80 +.extern FUN_02045BC8 +.extern FUN_02045C04 +.extern FUN_02045C40 +.extern FUN_02045C7C +.extern FUN_02045CD4 +.extern FUN_02045D10 +.extern FUN_02045D4C +.extern FUN_02045D88 +.extern FUN_02045DD0 +.extern FUN_02045E1C +.extern FUN_02045E20 +.extern FUN_02045EE0 +.extern FUN_02045EE4 +.extern FUN_02045F24 +.extern FUN_02045F84 +.extern FUN_02045F88 +.extern FUN_02045FCC +.extern FUN_02046010 +.extern FUN_0204601C +.extern FUN_02046028 +.extern FUN_0204602C +.extern FUN_02046030 +.extern FUN_020462AC +.extern FUN_020462B8 +.extern FUN_020462E4 +.extern FUN_0204630C +.extern FUN_02046338 +.extern FUN_02046380 +.extern FUN_020463CC +.extern FUN_020463EC +.extern FUN_0204640C +.extern FUN_02046420 +.extern FUN_0204646C +.extern FUN_0204647C +.extern FUN_0204649C +.extern FUN_020464A4 +.extern FUN_02046500 +.extern FUN_02046528 +.extern FUN_0204652C +.extern FUN_02046530 +.extern FUN_02046534 +.extern FUN_02046DB4 +.extern FUN_02046E18 +.extern FUN_02046FA0 +.extern FUN_020470AC +.extern FUN_020470E8 +.extern FUN_02047174 +.extern FUN_020480B8 +.extern FUN_020480C8 +.extern FUN_020480D8 +.extern FUN_02048498 +.extern FUN_02048694 +.extern FUN_02048C58 +.extern FUN_02048D90 +.extern FUN_02048EC8 +.extern FUN_02048FC8 +.extern FUN_02049240 +.extern FUN_02049274 +.extern FUN_02049EA4 +.extern FUN_02049F98 +.extern FUN_02049FFC +.extern FUN_0204A048 +.extern FUN_0204A0C8 +.extern FUN_0204A120 +.extern FUN_0204A20C +.extern FUN_0204A248 +.extern FUN_0204A32C +.extern FUN_0204A6E0 +.extern FUN_0204AB20 +.extern FUN_0204AB58 +.extern FUN_0204ABA8 +.extern FUN_0204ABDC +.extern FUN_0204AD0C +.extern FUN_0204ADBC +.extern FUN_0204ADE0 +.extern FUN_0204AF3C +.extern FUN_0204AF84 +.extern FUN_0204B2A4 +.extern FUN_0204B2B4 +.extern FUN_0204B2C0 +.extern FUN_0204B2D8 +.extern FUN_0204B33C +.extern FUN_0204B4FC +.extern FUN_0204B57C +.extern FUN_0204B5A8 +.extern FUN_0204B5FC +.extern FUN_0204B63C +.extern FUN_0204B660 +.extern FUN_0204B684 +.extern FUN_0204B6A4 +.extern FUN_0204B9A0 +.extern FUN_0204B9CC +.extern FUN_0204B9EC +.extern FUN_0204BA1C +.extern FUN_0204BAB0 +.extern FUN_0204BAC4 +.extern FUN_0204BAD4 +.extern FUN_0204BAE4 +.extern FUN_0204BEC8 +.extern FUN_0204BED0 +.extern FUN_0204BED8 +.extern FUN_0204C104 +.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_020527D8 +.extern FUN_0205296C +.extern FUN_02052A10 +.extern FUN_02052B74 +.extern FUN_02052C0C +.extern FUN_02052CD8 +.extern FUN_02052D08 +.extern FUN_02052DE8 +.extern FUN_02052E10 +.extern FUN_02052F74 +.extern FUN_020534DC +.extern FUN_0205363C +.extern FUN_02053678 +.extern FUN_020536D0 +.extern FUN_020545B8 +.extern FUN_02054608 +.extern FUN_02054658 +.extern FUN_020546C8 +.extern FUN_020547A4 +.extern FUN_02054C14 +.extern FUN_02054CB0 +.extern FUN_02054CC8 +.extern FUN_02054D1C +.extern FUN_02054DEC +.extern FUN_02054E30 +.extern FUN_02054F50 +.extern FUN_0205502C +.extern FUN_020552F8 +.extern FUN_02055304 +.extern FUN_02055320 +.extern FUN_0205532C +.extern FUN_020553A0 +.extern FUN_020553C4 +.extern FUN_020553D4 +.extern FUN_020553E8 +.extern FUN_02055468 +.extern FUN_02055474 +.extern FUN_02055488 +.extern FUN_02055560 +.extern FUN_02055720 +.extern FUN_020557F4 +.extern FUN_02055A38 +.extern FUN_02055B14 +.extern FUN_02055B30 +.extern FUN_02055B8C +.extern FUN_0205753C +.extern FUN_020575D4 +.extern FUN_02057654 +.extern FUN_02057688 +.extern FUN_02057800 +.extern FUN_0205785C +.extern FUN_02057BAC +.extern FUN_02058060 +.extern FUN_020580B4 +.extern FUN_02058448 +.extern FUN_02058458 +.extern FUN_02058480 +.extern FUN_02058488 +.extern FUN_02058510 +.extern FUN_02058738 +.extern FUN_02058780 +.extern FUN_020587B0 +.extern FUN_02058854 +.extern FUN_0205889C +.extern FUN_020588B8 +.extern FUN_020588D4 +.extern FUN_02058908 +.extern FUN_02058914 +.extern FUN_02058994 +.extern FUN_02058B2C +.extern FUN_02058B4C +.extern FUN_02058B7C +.extern FUN_02058BB4 +.extern FUN_02058BE4 +.extern FUN_02058D74 +.extern FUN_02058E28 +.extern FUN_02058E90 +.extern FUN_02058EB0 +.extern FUN_02059D1C +.extern FUN_02059E74 +.extern FUN_0205AE28 +.extern FUN_0205AEA4 +.extern FUN_0205AEF0 +.extern FUN_0205AEFC +.extern FUN_0205CA4C +.extern FUN_0205CA64 +.extern FUN_0205CA78 +.extern FUN_0205CE48 +.extern FUN_0205CE80 +.extern FUN_0205DD18 +.extern FUN_0205DD38 +.extern FUN_0205DD40 +.extern FUN_0205E7C4 +.extern FUN_0205ECD4 +.extern FUN_0205ECE0 +.extern FUN_0205ECFC +.extern FUN_0205ED0C +.extern FUN_0205ED1C +.extern FUN_0205ED2C +.extern FUN_0205ED3C +.extern FUN_0205ED4C +.extern FUN_0205ED5C +.extern FUN_0205ED6C +.extern FUN_0205F1C4 +.extern FUN_0205F1D4 +.extern FUN_0205F1F4 +.extern FUN_0205F204 +.extern FUN_0205F214 +.extern FUN_0205F224 +.extern FUN_0205F234 +.extern FUN_0205F244 +.extern FUN_0205F264 +.extern FUN_0205F274 +.extern FUN_0205F284 +.extern FUN_0205F294 +.extern FUN_0205F2A4 +.extern FUN_0205F2B4 +.extern FUN_0205F2C4 +.extern FUN_0205F2D4 +.extern FUN_0205F2E4 +.extern FUN_0205F368 +.extern FUN_0205F378 +.extern FUN_0205F388 +.extern FUN_0205F398 +.extern FUN_0205F3C0 +.extern FUN_0205F3F8 +.extern FUN_0205F478 +.extern FUN_0205F4A0 +.extern FUN_0205F4E4 +.extern FUN_0205F50C +.extern FUN_0205F524 +.extern FUN_0205F54C +.extern FUN_0205F55C +.extern FUN_0205F594 +.extern FUN_0205F5A4 +.extern FUN_0205F5D8 +.extern FUN_0205F5FC +.extern FUN_0205F648 +.extern FUN_0205F668 +.extern FUN_0205F688 +.extern FUN_0205F698 +.extern FUN_0205F6A8 +.extern FUN_0205F6C8 +.extern FUN_0205F6D8 +.extern FUN_0205F710 +.extern FUN_0205F720 +.extern FUN_0205F740 +.extern FUN_0205F760 +.extern FUN_0205F7A0 +.extern FUN_0205FD38 +.extern FUN_0205FDDC +.extern FUN_0205FE10 +.extern FUN_0205FF5C +.extern FUN_02060144 +.extern FUN_0206015C +.extern FUN_02060490 +.extern FUN_02060790 +.extern FUN_020607D4 +.extern FUN_02060F3C +.extern FUN_02060F88 +.extern FUN_02060F9C +.extern FUN_02060FD0 +.extern FUN_020612EC +.extern FUN_020612F8 +.extern FUN_02061374 +.extern FUN_020613CC +.extern FUN_02061460 +.extern FUN_02061574 +.extern FUN_02061A8C +.extern FUN_02063650 +.extern FUN_0206367C +.extern FUN_02063888 +.extern FUN_020638BC +.extern FUN_02063948 +.extern FUN_02063964 +.extern FUN_0206486C +.extern FUN_020649B0 +.extern FUN_020649D4 +.extern FUN_02064CA8 +.extern FUN_02064CC8 +.extern FUN_02064D10 +.extern FUN_02064D4C +.extern FUN_02064D88 +.extern FUN_02064E20 +.extern FUN_02064E60 +.extern FUN_02064E90 +.extern FUN_02065054 +.extern FUN_02065070 +.extern FUN_02065078 +.extern FUN_02065314 +.extern FUN_02065344 +.extern FUN_02066818 +.extern FUN_02066978 +.extern FUN_020669A0 +.extern FUN_020669C0 +.extern FUN_020669D4 +.extern FUN_02066A20 +.extern FUN_02066ACC +.extern FUN_02066ED8 +.extern FUN_020671BC +.extern FUN_020672BC +.extern FUN_02067830 +.extern FUN_02068678 +.extern FUN_02068854 +.extern FUN_020689E0 +.extern FUN_02068AAC +.extern FUN_02068B68 +.extern FUN_02068C00 +.extern FUN_02068E14 +.extern FUN_020690C4 +.extern FUN_020690CC +.extern FUN_020690E4 +.extern FUN_02069168 +.extern FUN_020699A4 +.extern FUN_02069A64 +.extern FUN_02069B40 +.extern FUN_02069B88 +.extern FUN_0206A23C +.extern FUN_0206AC74 +.extern FUN_0206AD4C +.extern FUN_0206B20C +.extern FUN_0206B3E4 +.extern FUN_0206B484 +.extern FUN_0206B57C +.extern FUN_0206B5E4 +.extern FUN_0206B620 +.extern FUN_0206B644 +.extern FUN_0206B6C8 +.extern FUN_0206B7BC +.extern FUN_0206B900 +.extern FUN_0206B9AC +.extern FUN_0206B9B0 +.extern FUN_0206BAE4 +.extern FUN_0206BB1C +.extern FUN_0206BB28 +.extern FUN_0206C700 +.extern FUN_0206C91C +.extern FUN_0206C92C +.extern FUN_0206E2F0 +.extern FUN_0206E308 +.extern FUN_0206E314 +.extern FUN_0206E340 +.extern FUN_0206E354 +.extern FUN_0206E358 +.extern FUN_0206E360 +.extern FUN_0206E37C +.extern FUN_0206E384 +.extern FUN_0206E38C +.extern FUN_0206E7B8 +.extern FUN_0206EA30 +.extern FUN_0206EA98 +.extern FUN_0206EAB8 +.extern FUN_0206EB1C +.extern FUN_0206ED24 +.extern FUN_0206ED38 +.extern FUN_0206EDD4 +.extern FUN_0206EE50 +.extern FUN_0206EE64 +.extern FUN_0206EEF8 +.extern FUN_0206EFEC +.extern FUN_0206F158 +.extern FUN_0206F164 +.extern FUN_0206F17C +.extern FUN_0206F190 +.extern FUN_0206F3B8 +.extern FUN_0206F3D8 +.extern FUN_02077A84 +.extern FUN_02077AC4 +.extern FUN_02079C70 +.extern FUN_0207B000 +.extern FUN_0207C2A4 +.extern FUN_0207FC5C +.extern FUN_0207FCE0 +.extern FUN_0208089C +.extern FUN_02080C38 +.extern FUN_02080E0C +.extern FUN_02081214 +.extern FUN_020814E8 +.extern FUN_02081DC4 +.extern FUN_02081EB8 +.extern FUN_0208201C +.extern FUN_02082034 +.extern FUN_0208206C +.extern FUN_02082090 +.extern FUN_020820B8 +.extern FUN_020820DC +.extern FUN_0208210C +.extern FUN_0208213C +.extern FUN_02082140 +.extern FUN_02082158 +.extern FUN_0208217C +.extern FUN_02082190 +.extern FUN_020821B4 +.extern FUN_020821C4 +.extern FUN_020821DC +.extern FUN_020821F0 +.extern FUN_02082214 +.extern FUN_0208223C +.extern FUN_0208224C +.extern FUN_02082254 +.extern FUN_02082284 +.extern FUN_020822F0 +.extern FUN_02082444 +.extern FUN_02082508 +.extern FUN_020825A0 +.extern FUN_02082630 +.extern FUN_02085140 +.extern FUN_020851B8 +.extern FUN_020851DC +.extern FUN_020851F8 +.extern FUN_0208524C +.extern FUN_02085258 +.extern FUN_02085264 +.extern FUN_0208526C +.extern FUN_02085290 +.extern FUN_020852E8 +.extern FUN_02085338 +.extern FUN_020853A8 +.extern FUN_020853B0 +.extern FUN_020853B4 +.extern FUN_020853BC +.extern FUN_020853E4 +.extern FUN_020853E8 +.extern FUN_020853EC +.extern FUN_020853F0 +.extern FUN_020853FC +.extern FUN_020854E0 +.extern FUN_02085538 +.extern FUN_02085578 +.extern FUN_020855B0 +.extern FUN_020855E4 +.extern FUN_0208560C +.extern FUN_0208562C +.extern FUN_02085F48 +.extern FUN_020863DC +.extern FUN_02087A1C +.extern FUN_02087A50 +.extern FUN_02087D00 +.extern FUN_02087E14 +.extern FUN_0208881C +.extern FUN_02088960 +.extern FUN_02088D40 +.extern FUN_02088DD8 +.extern FUN_02088DF0 +.extern FUN_02088DF8 +.extern FUN_02088EF8 +.extern FUN_02089D90 +.extern FUN_0208A0B8 +.extern FUN_0208A300 +.extern FUN_0208A320 +.extern FUN_0208A338 +.extern FUN_0208A9B8 +.extern FUN_0208ACEC +.extern FUN_0208AD80 +.extern FUN_0208AF80 +.extern FUN_0208AF94 +.extern FUN_0208AFA8 +.extern FUN_0208B05C +.extern FUN_0208B128 +.extern FUN_0208B4A0 +.extern FUN_02090CC8 +.extern FUN_02090DB8 +.extern FUN_02096B14 +.extern FUN_02096B78 +.extern FUN_02096CCC +.extern FUN_02096D2C +.extern FUN_02096DA0 +.extern FUN_02096F18 +.extern FUN_02096F80 +.extern FUN_02096FB0 +.extern FUN_0209700C +.extern FUN_020973B4 +.extern FUN_020ADA84 +.extern FUN_020ADA98 +.extern FUN_020ADAB0 +.extern FUN_020ADB18 +.extern FUN_020ADBE8 +.extern FUN_020ADC74 +.extern FUN_020ADDC0 +.extern FUN_020ADDC8 +.extern FUN_020ADDF0 +.extern FUN_020ADE2C +.extern FUN_020AE554 +.extern FUN_020AE5B0 +.extern FUN_020AE600 +.extern FUN_020AE638 +.extern FUN_020AE684 +.extern FUN_020AE82C +.extern FUN_020AE84C +.extern FUN_020AE868 +.extern FUN_020AE8CC +.extern FUN_020AE918 +.extern FUN_020AEB70 +.extern FUN_020AEC7C +.extern FUN_020AEC98 +.extern FUN_020AEE40 +.extern FUN_020AEEB8 +.extern FUN_020AEF1C +.extern FUN_020AF2E0 +.extern FUN_020AF2F4 +.extern FUN_020AF30C +.extern FUN_020AF894 +.extern FUN_020AF9C4 +.extern FUN_020AFA28 +.extern FUN_020AFA80 +.extern FUN_020AFBA8 +.extern FUN_020AFBFC +.extern FUN_020AFC04 +.extern FUN_020AFEB8 +.extern FUN_020AFFD8 +.extern FUN_020B0030 +.extern FUN_020B0088 +.extern FUN_020B00F0 +.extern FUN_020B0138 +.extern FUN_020B0180 +.extern FUN_020B0250 +.extern FUN_020B02C8 +.extern FUN_020B0448 +.extern FUN_020B0870 +.extern FUN_020B0BB0 +.extern FUN_020B0C7C +.extern FUN_020B0E34 +.extern FUN_020B0FC0 +.extern FUN_020B10E8 +.extern FUN_020B1240 +.extern FUN_020B1340 +.extern FUN_020B1528 +.extern FUN_020B1768 +.extern FUN_020B19C4 +.extern FUN_020B19DC +.extern FUN_020B1A14 +.extern FUN_020B1A24 +.extern FUN_020B1EA4 +.extern FUN_020B1EC4 +.extern FUN_020B1EE4 +.extern FUN_020B1EFC +.extern FUN_020B1F80 +.extern FUN_020B20C8 +.extern FUN_020B2194 +.extern FUN_020B224C +.extern FUN_020B23D8 +.extern FUN_020B242C +.extern FUN_020B2794 +.extern FUN_020B28B4 +.extern FUN_020B2A08 +.extern FUN_020B2B08 +.extern FUN_020B2B58 +.extern FUN_020B2D9C +.extern FUN_020B317C +.extern FUN_020B31F0 +.extern FUN_020B326C +.extern FUN_020B3334 +.extern FUN_020B3390 +.extern FUN_020B33A0 +.extern FUN_020B4358 +.extern FUN_020B43A4 +.extern FUN_020B442C +.extern FUN_020B4568 +.extern FUN_020B4F38 +.extern FUN_020B502C +.extern FUN_020B772C +.extern FUN_020B7790 +.extern FUN_020B7C58 +.extern FUN_020B7C78 +.extern FUN_020B7CDC +.extern FUN_020B7CE4 +.extern FUN_020B7CF0 +.extern FUN_020B7D28 +.extern FUN_020B7DFC +.extern FUN_020B7E10 +.extern FUN_020B7E1C +.extern FUN_020B80B4 +.extern FUN_020B844C +.extern FUN_020B8474 +.extern FUN_020B849C +.extern FUN_020BAC98 +.extern FUN_020BAFB8 +.extern FUN_020BB1C0 +.extern FUN_020BB394 +.extern FUN_020BB59C +.extern FUN_020BB7F4 +.extern FUN_020BC0FC +.extern FUN_020BC13C +.extern FUN_020BC2A0 +.extern FUN_020C0174 +.extern FUN_020C01A0 +.extern FUN_020C01D0 +.extern FUN_020C03B8 +.extern FUN_020C041C +.extern FUN_020C044C +.extern FUN_020C04DC +.extern FUN_020C0510 +.extern FUN_020C054C +.extern FUN_020C0670 +.extern FUN_020C0688 +.extern FUN_020C0DD4 +.extern FUN_020C0E14 +.extern FUN_020C0E7C +.extern FUN_020C0EA4 +.extern FUN_020C0EF4 +.extern FUN_020C0F30 +.extern FUN_020C0F50 +.extern FUN_020C0F68 +.extern FUN_020C0F80 +.extern FUN_020C0F8C +.extern FUN_020C0F9C +.extern FUN_020C0FDC +.extern FUN_020C1040 +.extern FUN_020C10A4 +.extern FUN_020C1148 +.extern FUN_020C1180 +.extern FUN_020C1E58 +.extern FUN_020C1E68 +.extern FUN_020C1EA4 +.extern FUN_020C1F54 +.extern FUN_020C1FA4 +.extern FUN_020C1FF0 +.extern FUN_020C20DC +.extern FUN_020C2104 +.extern FUN_020C217C +.extern FUN_020C226C +.extern FUN_020C22D0 +.extern FUN_020C23FC +.extern FUN_020C26F8 +.extern FUN_020C2828 +.extern FUN_020C290C +.extern FUN_020C2A94 +.extern FUN_020C35E0 +.extern FUN_020C360C +.extern FUN_020C3640 +.extern FUN_020C3674 +.extern FUN_020C36A8 +.extern FUN_020C3910 +.extern FUN_020C3980 +.extern FUN_020C39CC +.extern FUN_020C3EA4 +.extern FUN_020C3EB0 +.extern FUN_020C6034 +.extern FUN_020C605C +.extern FUN_021D74E0 +.extern FUN_021D76AC +.extern FUN_021D77C4 +.extern FUN_021D7800 +.extern FUN_021D78FC +.extern FUN_021D79B4 +.extern FUN_021D7CA4 +.extern FUN_021D7F8C +.extern FUN_021D8018 +.extern FUN_021D8164 +.extern FUN_021D82BC +.extern FUN_021D8320 +.extern FUN_021D836C +.extern FUN_021D83A8 +.extern FUN_021D83C0 +.extern FUN_021D844C +.extern FUN_021D8494 +.extern FUN_021D85FC +.extern FUN_021D8624 +.extern FUN_021D865C +.extern FUN_021D8758 +.extern FUN_021D8820 +.extern FUN_021D88E4 +.extern FUN_021D89CC +.extern FUN_021D8B64 +.extern FUN_021D8C24 +.extern FUN_021D917C +.extern FUN_021D959C +.extern FUN_021D967C +.extern FUN_021D96F4 +.extern FUN_021D9708 +.extern FUN_021D971C +.extern FUN_021D9820 +.extern FUN_021D99F8 +.extern FUN_021DA464 +.extern FUN_021DA4EC +.extern FUN_021DA54C +.extern FUN_021DA58C +.extern FUN_021DA5B8 +.extern FUN_021DA5C8 +.extern FUN_021DA5D0 +.extern FUN_021DA5D8 +.extern FUN_021DA7B4 +.extern FUN_021DAAA4 +.extern FUN_021DAC70 +.extern FUN_021DAE40 +.extern FUN_021DAED4 +.extern FUN_021DAF28 +.extern FUN_021DAF78 +.extern FUN_021DAF98 +.extern FUN_021DB030 +.extern FUN_021DB7E8 +.extern FUN_021DB858 +.extern FUN_021DC174 +.extern FUN_021DD6F0 +.extern FUN_021DD718 +.extern FUN_021DDB08 +.extern FUN_021E1374 +.extern FUN_021E1858 +.extern FUN_021E1994 +.extern FUN_021E1BF8 +.extern FUN_021E1C4C +.extern FUN_021E1C54 +.extern FUN_021E1ECC +.extern FUN_021E1F34 +.extern FUN_021E1F58 +.extern FUN_021E1F60 +.extern FUN_021E2464 +.extern FUN_021E2608 +.extern FUN_021E26CC +.extern FUN_021E27E8 +.extern FUN_021E288C +.extern FUN_021E28A0 +.extern FUN_021E2950 +.extern FUN_021E29B4 +.extern FUN_021E29C8 +.extern FUN_021E2A70 +.extern FUN_021E2AD4 +.extern FUN_021E2B80 +.extern FUN_021E2B9C +.extern FUN_021E2BB8 +.extern FUN_021E2BD0 +.extern FUN_021E2C24 +.extern FUN_021E2C58 +.extern FUN_021E2CBC +.extern FUN_021E32F0 +.extern FUN_021E331C +.extern FUN_021E3424 +.extern FUN_021E3444 +.extern FUN_021E495C +.extern FUN_021E4C54 +.extern FUN_021E4C60 +.extern FUN_021E4DE4 +.extern FUN_021E5614 +.extern FUN_021E57D4 +.extern FUN_021E5970 +.extern FUN_021E5B30 +.extern FUN_021E5FD8 +.extern FUN_021E5FE0 +.extern FUN_021E6410 +.extern FUN_021E643C +.extern FUN_021E6990 +.extern FUN_021E69BC +.extern FUN_021E6BF4 +.extern FUN_021E7030 +.extern FUN_021E70F0 +.extern FUN_021E7138 +.extern FUN_021E7184 +.extern FUN_021E71E8 +.extern FUN_021E7750 +.extern FUN_021E799C +.extern FUN_021E7AC0 +.extern FUN_021E7EA0 +.extern FUN_021E7EB0 +.extern FUN_021E7EC4 +.extern FUN_021E7EC8 +.extern FUN_021E7ED0 +.extern FUN_021E7ED8 +.extern FUN_021E7FBC +.extern FUN_021E8128 +.extern FUN_021E8130 +.extern FUN_021E8140 +.extern FUN_021E8144 +.extern FUN_021E8148 +.extern FUN_021E8158 +.extern FUN_021E81BC +.extern FUN_021E84F4 +.extern FUN_021E856C +.extern FUN_021E8588 +.extern FUN_021E85E4 +.extern FUN_021E85FC +.extern FUN_021EAE90 +.extern FUN_021EB044 +.extern FUN_021EC57C +.extern FUN_021EC71C +.extern FUN_021EC854 +.extern FUN_021EC864 +.extern FUN_021ECD64 +.extern FUN_021ECF14 +.extern FUN_021ED0CC +.extern FUN_021ED49C +.extern FUN_021ED4E0 +.extern FUN_021ED52C +.extern FUN_021ED5C4 +.extern FUN_021ED5EC +.extern FUN_021ED644 +.extern FUN_021ED940 +.extern FUN_021EDA48 +.extern FUN_021EDBC8 +.extern FUN_021EF5E0 +.extern FUN_021EF604 +.extern FUN_021EF620 +.extern FUN_021EF654 +.extern FUN_021EF824 +.extern FUN_021EF844 +.extern FUN_021EF8C8 +.extern FUN_021EF8DC +.extern FUN_021EFA9C +.extern FUN_021F02C4 +.extern FUN_021F1D8C +.extern FUN_021F1DC8 +.extern FUN_021F1DFC +.extern FUN_021F1EC0 +.extern FUN_021F1F78 +.extern FUN_021F2094 +.extern FUN_021F20D8 +.extern FUN_021F20F8 +.extern FUN_021F2AF4 +.extern FUN_021F2E0C +.extern FUN_021F2E28 +.extern FUN_021F2F48 +.extern FUN_021F2F6C +.extern FUN_021F3A18 +.extern FUN_021F3AB4 +.extern FUN_021F3B4C +.extern FUN_021F3B7C +.extern FUN_021F3DA4 +.extern FUN_021F44D8 +.extern FUN_021F4520 +.extern FUN_021F4568 +.extern FUN_021F4594 +.extern FUN_021F45E8 +.extern FUN_021F4608 +.extern FUN_021F4BD0 +.extern FUN_021F4C88 +.extern FUN_021F4D80 +.extern FUN_021F4DC8 +.extern FUN_021F4E7C +.extern FUN_021F57EC +.extern FUN_021F5C44 +.extern FUN_021F61DC +.extern FUN_021F61E8 +.extern FUN_02211E60 +.extern FUN_0222D5C0 +.extern FUN_0222DAEC +.extern FUN_0222DD1C +.extern FUN_0222DD38 +.extern FUN_0222E2BC +.extern FUN_0222E360 +.extern FUN_0222E3A0 +.extern FUN_0222E7E8 +.extern FUN_0222E874 +.extern FUN_0222ED34 +.extern FUN_0222EDBC +.extern FUN_0222F440 +.extern FUN_0222F480 +.extern FUN_0222F7E0 +.extern FUN_0222F990 +.extern FUN_022300D4 +.extern FUN_022300DC +.extern FUN_022300E4 +.extern FUN_022300E8 +.extern FUN_022300F4 +.extern FUN_02230100 +.extern FUN_0223010C +.extern FUN_02230118 +.extern FUN_02230124 +.extern FUN_02230F3C +.extern FUN_02230F70 +.extern FUN_02230F80 +.extern FUN_02231344 +.extern FUN_02231350 +.extern FUN_0223135C +.extern FUN_02231368 +.extern FUN_02231374 +.extern FUN_02239944 +.extern FUN_02239AAC +.extern FUN_0223CACC +.extern FUN_0223CB08 +.extern FUN_0223CCDC +.extern FUN_0223CD7C +.extern FUN_0223D3D0 +.extern FUN_0223D638 +.extern FUN_0223D648 +.extern FUN_0223DFB4 +.extern FUN_0223E060 +.extern FUN_0223E118 +.extern FUN_0223E154 +.extern FUN_0223E1A4 +.extern FUN_0223E1E0 +.extern FUN_0223E2AC +.extern FUN_0223E4A8 +.extern FUN_0223E4D4 +.extern FUN_0223E554 +.extern FUN_0223E6B8 +.extern FUN_0223E734 +.extern FUN_0223E7FC +.extern FUN_0223EB8C +.extern FUN_0223EF7C +.extern FUN_0223F4D8 +.extern FUN_0223F4F4 +.extern FUN_0223F8D8 +.extern FUN_0223FCE8 +.extern FUN_02240790 +.extern FUN_022407CC +.extern FUN_022407DC +.extern FUN_022407F8 +.extern FUN_02240834 +.extern FUN_02240844 +.extern FUN_0224089C +.extern FUN_022408FC +.extern FUN_022411F4 +.extern FUN_02241230 +.extern FUN_02241914 +.extern FUN_02242A38 +.extern FUN_02242BE0 +.extern FUN_0224312C +.extern FUN_022432E4 +.extern FUN_0224339C +.extern FUN_022433A8 +.extern FUN_022433B0 +.extern FUN_022433B8 +.extern FUN_022433F8 +.extern FUN_02243408 +.extern FUN_02243428 +.extern FUN_02243448 +.extern FUN_0224345C +.extern FUN_022434AC +.extern FUN_022434BC +.extern FUN_022434D0 +.extern FUN_02243694 +.extern FUN_022436C8 +.extern FUN_022436E8 +.extern FUN_02243780 +.extern FUN_02243838 +.extern FUN_022438DC +.extern FUN_022438E0 +.extern FUN_022438FC +.extern FUN_02243920 +.extern FUN_022439F8 +.extern FUN_02243AD8 +.extern FUN_02243BA8 +.extern FUN_02243C5C +.extern FUN_02243D3C +.extern FUN_02243DA0 +.extern FUN_02243DB8 +.extern FUN_02243DC0 +.extern FUN_02243DC4 +.extern FUN_02243DD8 +.extern FUN_02243DE0 +.extern FUN_02243E34 +.extern FUN_02243E74 +.extern FUN_02243F18 +.extern FUN_02243F50 +.extern FUN_02243F9C +.extern FUN_02244210 +.extern FUN_02244558 +.extern FUN_02244660 +.extern FUN_022446BC +.extern FUN_022446E0 +.extern FUN_022446FC +.extern FUN_02244758 +.extern FUN_02244770 +.extern FUN_02244824 +.extern FUN_0224484C +.extern FUN_02244D1C +.extern FUN_02244D20 +.extern FUN_02244D3C +.extern FUN_02244D40 +.extern FUN_02244D58 +.extern FUN_02244D98 +.extern FUN_02244DA0 +.extern FUN_02244DB0 +.extern FUN_02244DBC +.extern FUN_02244DC4 +.extern FUN_02244EF8 +.extern FUN_02244F18 +.extern FUN_02244F24 +.extern FUN_02244F2C +.extern FUN_02245088 +.extern FUN_02245114 +.extern FUN_02245190 +.extern FUN_02245198 +.extern FUN_022451F0 +.extern FUN_0224525C +.extern FUN_022452A4 +.extern FUN_02245324 +.extern FUN_02245340 +.extern FUN_02245358 +.extern FUN_0224566C +.extern FUN_022456E8 +.extern FUN_02245844 +.extern FUN_02245910 +.extern FUN_02245F1C +.extern FUN_02245F4C +.extern FUN_02245FA0 +.extern FUN_022461A4 +.extern FUN_022461B8 +.extern FUN_0224666C +.extern FUN_022466A0 +.extern FUN_022466AC +.extern FUN_02246F1C +.extern FUN_02247294 +.extern FUN_022472AC +.extern FUN_02247544 +.extern FUN_02247614 +.extern FUN_02247728 +.extern FUN_02247808 +.extern FUN_02247970 +.extern FUN_02247A34 +.extern FUN_022483BC +.extern FUN_022483E0 +.extern FUN_022483EC +.extern FUN_02248724 +.extern FUN_0224884C +.extern FUN_022488CC +.extern FUN_022488EC +.extern FUN_022488F4 +.extern FUN_022488FC +.extern FUN_0224891C +.extern FUN_02248B54 +.extern FUN_02248B58 +.extern FUN_02248B5C +.extern FUN_02248B60 +.extern FUN_02248B6C +.extern FUN_02248CC0 +.extern FUN_02248CD0 +.extern FUN_02248DF8 +.extern FUN_02248F70 +.extern FUN_02248FE0 +.extern FUN_02249038 +.extern FUN_022490A0 +.extern FUN_022491FC +.extern FUN_022494C8 +.extern FUN_02249508 +.extern FUN_02249668 +.extern FUN_022497E8 +.extern FUN_02249E6C +.extern FUN_02249E78 +.extern FUN_02249E84 +.extern FUN_02249E90 +.extern FUN_0224A310 +.extern FUN_0224A528 +.extern FUN_0224A7C8 +.extern FUN_0224ABAC +.extern FUN_0224B124 +.extern FUN_0224B2C4 +.extern FUN_0224B568 +.extern FUN_0224B818 +.extern FUN_0224B86C +.extern FUN_0224B9E0 +.extern FUN_0224BBEC +.extern FUN_0224BD90 +.extern FUN_0224C038 +.extern FUN_0224C27C +.extern FUN_0224C520 +.extern FUN_0224C678 +.extern FUN_0224C6E8 +.extern FUN_0224C6F4 +.extern FUN_0224C700 +.extern FUN_0224C8C8 +.extern FUN_0224CA2C +.extern FUN_0224CA54 +.extern FUN_0224CA58 +.extern FUN_0224CA88 +.extern FUN_0224CA94 +.extern FUN_0224CAA0 +.extern FUN_0224CAB4 +.extern FUN_0224CB30 +.extern FUN_0224CBB0 +.extern FUN_0224CC24 +.extern FUN_0224CECC +.extern FUN_0224D14C +.extern FUN_0224D2E0 +.extern FUN_0224D3E8 +.extern FUN_0224D70C +.extern FUN_0224D76C +.extern FUN_0224D79C +.extern FUN_0224DCB8 +.extern FUN_0224DD94 +.extern FUN_0224DDB8 +.extern FUN_0224E554 +.extern FUN_0224E764 +.extern FUN_0224E7C4 +.extern FUN_0224F12C +.extern FUN_02252534 +.extern FUN_02252538 +.extern FUN_022567E0 +.extern FX_Div +.extern FX_GetDivResult +.extern FX_GetDivResultFx64c +.extern FX_Init +.extern FX_InvAsync +.extern FX_Modf +.extern FX_Sqrt +.extern G2S_GetBG0CharPtr +.extern G2S_GetBG1CharPtr +.extern G2S_GetBG2CharPtr +.extern G2S_GetBG3CharPtr +.extern G2_GetBG0CharPtr +.extern G2_GetBG1CharPtr +.extern G2_GetBG2CharPtr +.extern G2_GetBG3CharPtr +.extern G2x_SetBGyAffine_ +.extern G2x_SetBlendAlpha_ +.extern G2x_SetBlendBrightness_ +.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_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_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_ResetBankForOBJ +.extern GX_ResetBankForOBJExtPltt +.extern GX_ResetBankForSubBG +.extern GX_ResetBankForSubOBJ +.extern GX_ResetBankForTex +.extern GX_ResetBankForTexPltt +.extern GX_SetBankForBG +.extern GX_SetBankForBGExtPltt +.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 MATH_CalcHMACSHA1 +.extern MATH_CalcMD5 +.extern MATH_CalcSHA1 +.extern MATH_CountPopulation +.extern MATH_MD5GetHash +.extern MATH_MD5Init +.extern MATH_MD5Update +.extern MATH_SHA1GetHash +.extern MATH_SHA1Init +.extern MATH_SHA1Update +.extern MATHi_CRC16InitTable +.extern MATHi_CRC16InitTableRev +.extern MATHi_CRC32InitTableRev +.extern MATHi_CRC8InitTable +.extern MATHi_CalcHMAC +.extern MIC_DoSamplingAsync +.extern MIC_Init +.extern MIC_StartAutoSampling +.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_SendGXCommandAsync +.extern MI_SendGXCommandAsyncFast +.extern MI_StopDma +.extern MI_SwapWord +.extern MI_UncompressLZ8 +.extern MI_WaitDma +.extern MI_Zero36B +.extern MIi_CardDmaCopy32 +.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_Identity33_ +.extern MTX_Identity43_ +.extern MTX_MultVec33 +.extern MTX_MultVec43 +.extern MTX_RotX33_ +.extern MTX_RotY33_ +.extern MTX_RotZ33_ +.extern MTX_Scale43_ +.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_DisableIrqMask +.extern OS_DisableScheduler +.extern OS_EnableIrqMask +.extern OS_EnableScheduler +.extern OS_ExitThread +.extern OS_FreeToHeap +.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_InitMessageQueue +.extern OS_InitMutex +.extern OS_InitTick +.extern OS_IrqDummy +.extern OS_IrqHandler +.extern OS_IsAlarmAvailable +.extern OS_IsRunOnEmulator +.extern OS_IsThreadTerminated +.extern OS_IsTickAvailable +.extern OS_JamMessage +.extern OS_JoinThread +.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_SNPrintf +.extern OS_SendMessage +.extern OS_SetAlarm +.extern OS_SetArenaHi +.extern OS_SetArenaLo +.extern OS_SetDPermissionsForProtectionRegion +.extern OS_SetIrqFunction +.extern OS_SetIrqMask +.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_DoResetSystem +.extern OSi_EnterDmaCallback +.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_IsResetOccurred +.extern OSi_MainExArenaEnabled +.extern OSi_ThreadInfo +.extern OSi_TryLockVram +.extern OSi_UnlockVram +.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_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_START +.extern SDK_AUTOLOAD_LIST +.extern SDK_AUTOLOAD_LIST_END +.extern SDK_AUTOLOAD_START +.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 SND_AssignWaveArc +.extern SND_CalcChannelVolume +.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_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 STD_CopyLString +.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 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 VEC_Add +.extern VEC_CrossProduct +.extern VEC_DotProduct +.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 __call_static_initializers +.extern __destroy_global_chain +.extern _ddiv +.extern _fadd +.extern _fdiv +.extern _feq +.extern _ffix +.extern _ffixu +.extern _fflt +.extern _ffltu +.extern _fgr +.extern _fmul +.extern _fp_init +.extern _fsub +.extern _ll_mod +.extern _ll_mul +.extern _ll_sdiv +.extern _ll_shl +.extern _ll_udiv +.extern _s32_div_f +.extern _u32_div_f +.extern _u32_div_not_0_f +.extern abs +.extern cardi_common +.extern gScriptCmdTable +.extern memcmp +.extern memcpy +.extern memmove +.extern strcmp +.extern strcpy +.extern strlen +.extern tempName_NNS_FndAllocFromExpHeapEx +.extern tempName_NNS_FndCreateExpHeapEx +.extern thunk_FUN_02096e4c +.extern thunk_FUN_02097190 +.extern thunk_FUN_020adc8c +.extern thunk_FUN_020adc8c_2 +.extern thunk_FUN_020afda0 +.extern thunk_FUN_020afda0_2 +.extern thunk_FUN_020b5040 +.extern Unk_0210683C +.extern Unk_02106840 +.extern Unk_02106900 +.extern Unk_02106A00 +.extern Unk_02106A04 +.extern OSi_IrqCallbackInfo +.extern OSi_IrqCallbackInfoIndex +.extern SDK_SYS_STACKSIZE +.extern SDK_IRQ_STACKSIZE +.extern OSi_IsThreadInitialized +.extern OSi_LauncherThread +.extern OSi_CurrentThreadPtr +.extern OSi_IdleThread +.extern OSi_IdleThreadStack +.extern OSi_RescheduleCount +.extern OSi_SystemCallbackInSwitchThread +.extern OSi_Initialized +.extern OSi_HeapInfo +.extern OSi_DebuggerHandler +.extern OSi_ExContext +.extern OSi_UserExceptionHandler +.extern OSi_UserExceptionHandlerArg +.extern OSi_TimerReserved +.extern OSi_UseTick +.extern OSi_NeedResetTimer +.extern OSi_TickCounter +.extern OSi_UseAlarm +.extern OSi_AlarmQueue +.extern OSi_UseVAlarm +.extern OSi_PreviousVCount +.extern OSi_VFrameCount +.extern OSi_VAlarmQueue +.extern OSi_IsInitReset +.extern OSi_vramExclusive +.extern OSi_vramLockId +.extern OSi_ThreadIdCount +.extern OSi_StackForDestructor diff --git a/arm7/undefined_syms.txt b/arm7/undefined_syms.txt new file mode 100644 index 00000000..075d22a9 --- /dev/null +++ b/arm7/undefined_syms.txt @@ -0,0 +1,506 @@ +SDK_SYS_STACKSIZE = 0x00000000; +CONST_34 = 0x00000034; +CONST_3F = 0x0000003F; +SDK_IRQ_STACKSIZE = 0x00000400; + +// .data +// OS +OSi_IrqCallbackInfoIndex = 0x02106818; +// DGT +Unk_0210683C = 0x0210683C; +Unk_02106840 = 0x02106840; +Unk_02106900 = 0x02106900; +Unk_02106A00 = 0x02106A00; +Unk_02106A04 = 0x02106A04; + +// .bss +gBacklightTop = 0x02106FA0; +gBacklightTop_2 = 0x02106FA0; +gUnknown2106FB8 = 0x02106FB8; +gUnknown21C48B8 = 0x021C48B8; +gUnk021C4918 = 0x021C4918; +OSi_IrqCallbackInfo = 0x021D341C; +isInitialized = 0x021D347C; +OSi_StackForDestructor = 0x021D3480; +OSi_RescheduleCount = 0x021D3484; +OSi_ThreadIdCount = 0x021D3488; +OSi_SystemCallbackInSwitchThread = 0x021D348C; +OSi_CurrentThreadPtr = 0x021D3490; +OSi_IsThreadInitialized = 0x021D3494; +OSi_ThreadInfo = 0x021D3498; +OSi_IdleThread = 0x021D34A8; +OSi_LauncherThread = 0x021D3568; +OSi_IdleThreadStack = 0x021D3628; +OSi_Initialized = 0x021D36F0; +OSi_MainExArenaEnabled = 0x021D36F4; +OSi_HeapInfo = 0x021D36F8; +OSi_UserExceptionHandler = 0x021D371C; +OSi_UserExceptionHandlerArg = 0x21D3720; +OSi_DebuggerHandler = 0x021D3724; +OSi_ExContext = 0x021D3728; +OSi_TimerReserved = 0x021D37A8; +OSi_UseTick = 0x021D37AC; +OSi_NeedResetTimer = 0x021D37B0; +OSi_TickCounter = 0x021D37B4; +OSi_UseAlarm = 0x021D37BC; +OSi_AlarmQueue = 0x021D37C0; +OSi_UseVAlarm = 0x021D37C8; +OSi_PreviousVCount = 0x021D37CC; +OSi_VFrameCount = 0x021D37D0; +OSi_VAlarmQueue = 0x021D37D4; +OSi_IsInitReset = 0x021D37DC; +OSi_IsResetOccurred = 0x021D37E0; +OSi_vramExclusive = 0x021D37E4; +OSi_vramLockId = 0x021D37E8; +cardi_common = 0x021D55C0; + +// Overlay +FUN_021D74E0 = 0x021D74E0; +FUN_021D76AC = 0x021D76AC; +gUnk021D76C8 = 0x021D76C8; +FUN_021D77C4 = 0x021D77C4; +FUN_021D7800 = 0x021D7800; +FUN_021D78FC = 0x021D78FC; +FUN_021D79B4 = 0x021D79B4; +FUN_021D7CA4 = 0x021D7CA4; +FUN_021D7F8C = 0x021D7F8C; +FUN_021D8018 = 0x021D8018; +FUN_021D8164 = 0x021D8164; +FUN_021D82BC = 0x021D82BC; +FUN_021D8320 = 0x021D8320; +FUN_021D836C = 0x021D836C; +FUN_021D83A8 = 0x021D83A8; +FUN_021D83C0 = 0x021D83C0; +FUN_021D844C = 0x021D844C; +FUN_021D8494 = 0x021D8494; +FUN_021D85FC = 0x021D85FC; +FUN_021D8624 = 0x021D8624; +FUN_021D865C = 0x021D865C; +FUN_021D8758 = 0x021D8758; +FUN_021D8820 = 0x021D8820; +FUN_021D88E4 = 0x021D88E4; +FUN_021D89CC = 0x021D89CC; +FUN_021D8B64 = 0x021D8B64; +FUN_021D8C24 = 0x021D8C24; +FUN_021D917C = 0x021D917C; +FUN_021D959C = 0x021D959C; +FUN_021D967C = 0x021D967C; +FUN_021D96F4 = 0x021D96F4; +FUN_021D9708 = 0x021D9708; +FUN_021D971C = 0x021D971C; +FUN_021D9820 = 0x021D9820; +FUN_021D99F8 = 0x021D99F8; +FUN_021DA464 = 0x021DA464; +FUN_021DA4EC = 0x021DA4EC; +FUN_021DA54C = 0x021DA54C; +FUN_021DA58C = 0x021DA58C; +FUN_021DA5B8 = 0x021DA5B8; +FUN_021DA5C8 = 0x021DA5C8; +FUN_021DA5D0 = 0x021DA5D0; +FUN_021DA5D8 = 0x021DA5D8; +FUN_021DA7B4 = 0x021DA7B4; +FUN_021DAAA4 = 0x021DAAA4; +FUN_021DAC70 = 0x021DAC70; +FUN_021DAE40 = 0x021DAE40; +FUN_021DAED4 = 0x021DAED4; +FUN_021DAF28 = 0x021DAF28; +FUN_021DAF78 = 0x021DAF78; +FUN_021DAF98 = 0x021DAF98; +FUN_021DB030 = 0x021DB030; +FUN_021DB7E8 = 0x021DB7E8; +FUN_021DB858 = 0x021DB858; +gUnk021DBE18 = 0x021DBE18; +FUN_021DC174 = 0x021DC174; +FUN_021DD6F0 = 0x021DD6F0; +FUN_021DD718 = 0x021DD718; +FUN_021DDB08 = 0x021DDB08; +FUN_021E1374 = 0x021E1374; +FUN_021E1858 = 0x021E1858; +FUN_021E1994 = 0x021E1994; +FUN_021E1BF8 = 0x021E1BF8; +FUN_021E1C4C = 0x021E1C4C; +FUN_021E1C54 = 0x021E1C54; +FUN_021E1ECC = 0x021E1ECC; +FUN_021E1F34 = 0x021E1F34; +FUN_021E1F58 = 0x021E1F58; +FUN_021E1F60 = 0x021E1F60; +FUN_021E2464 = 0x021E2464; +FUN_021E2608 = 0x021E2608; +FUN_021E26CC = 0x021E26CC; +FUN_021E27E8 = 0x021E27E8; +FUN_021E288C = 0x021E288C; +FUN_021E28A0 = 0x021E28A0; +FUN_021E2950 = 0x021E2950; +FUN_021E29B4 = 0x021E29B4; +FUN_021E29C8 = 0x021E29C8; +FUN_021E2A70 = 0x021E2A70; +FUN_021E2AD4 = 0x021E2AD4; +FUN_021E2B80 = 0x021E2B80; +FUN_021E2B9C = 0x021E2B9C; +FUN_021E2BB8 = 0x021E2BB8; +FUN_021E2BD0 = 0x021E2BD0; +FUN_021E2C24 = 0x021E2C24; +FUN_021E2C58 = 0x021E2C58; +FUN_021E2CBC = 0x021E2CBC; +FUN_021E32F0 = 0x021E32F0; +FUN_021E331C = 0x021E331C; +FUN_021E3424 = 0x021E3424; +FUN_021E3444 = 0x021E3444; +FUN_021E495C = 0x021E495C; +FUN_021E4C54 = 0x021E4C54; +FUN_021E4C60 = 0x021E4C60; +FUN_021E4DE4 = 0x021E4DE4; +FUN_021E5614 = 0x021E5614; +FUN_021E57D4 = 0x021E57D4; +FUN_021E5970 = 0x021E5970; +FUN_021E5B30 = 0x021E5B30; +FUN_021E5FD8 = 0x021E5FD8; +FUN_021E5FE0 = 0x021E5FE0; +FUN_021E6410 = 0x021E6410; +FUN_021E643C = 0x021E643C; +FUN_021E6990 = 0x021E6990; +FUN_021E69BC = 0x021E69BC; +FUN_021E6BF4 = 0x021E6BF4; +FUN_021E7030 = 0x021E7030; +FUN_021E70F0 = 0x021E70F0; +FUN_021E7138 = 0x021E7138; +FUN_021E7184 = 0x021E7184; +FUN_021E71E8 = 0x021E71E8; +FUN_021E7750 = 0x021E7750; +FUN_021E799C = 0x021E799C; +FUN_021E7AC0 = 0x021E7AC0; +FUN_021E7EA0 = 0x021E7EA0; +FUN_021E7EB0 = 0x021E7EB0; +FUN_021E7EC4 = 0x021E7EC4; +FUN_021E7EC8 = 0x021E7EC8; +FUN_021E7ED0 = 0x021E7ED0; +FUN_021E7ED8 = 0x021E7ED8; +FUN_021E7FBC = 0x021E7FBC; +FUN_021E8128 = 0x021E8128; +FUN_021E8130 = 0x021E8130; +FUN_021E8140 = 0x021E8140; +FUN_021E8144 = 0x021E8144; +FUN_021E8148 = 0x021E8148; +FUN_021E8158 = 0x021E8158; +FUN_021E81BC = 0x021E81BC; +FUN_021E84F4 = 0x021E84F4; +FUN_021E856C = 0x021E856C; +FUN_021E8588 = 0x021E8588; +FUN_021E85E4 = 0x021E85E4; +FUN_021E85FC = 0x021E85FC; +FUN_021EAE90 = 0x021EAE90; +FUN_021EB044 = 0x021EB044; +FUN_021EC57C = 0x021EC57C; +FUN_021EC71C = 0x021EC71C; +FUN_021EC854 = 0x021EC854; +FUN_021EC864 = 0x021EC864; +FUN_021ECD64 = 0x021ECD64; +FUN_021ECF14 = 0x021ECF14; +FUN_021ED0CC = 0x021ED0CC; +FUN_021ED49C = 0x021ED49C; +FUN_021ED4E0 = 0x021ED4E0; +FUN_021ED52C = 0x021ED52C; +FUN_021ED5C4 = 0x021ED5C4; +FUN_021ED5EC = 0x021ED5EC; +FUN_021ED644 = 0x021ED644; +FUN_021ED940 = 0x021ED940; +FUN_021EDA48 = 0x021EDA48; +FUN_021EDBC8 = 0x021EDBC8; +FUN_021EF5E0 = 0x021EF5E0; +FUN_021EF604 = 0x021EF604; +FUN_021EF620 = 0x021EF620; +FUN_021EF654 = 0x021EF654; +FUN_021EF824 = 0x021EF824; +FUN_021EF844 = 0x021EF844; +FUN_021EF8C8 = 0x021EF8C8; +FUN_021EF8DC = 0x021EF8DC; +FUN_021EFA9C = 0x021EFA9C; +FUN_021F02C4 = 0x021F02C4; +FUN_021F1D8C = 0x021F1D8C; +FUN_021F1DC8 = 0x021F1DC8; +FUN_021F1DFC = 0x021F1DFC; +FUN_021F1EC0 = 0x021F1EC0; +FUN_021F1F78 = 0x021F1F78; +FUN_021F2094 = 0x021F2094; +FUN_021F20D8 = 0x021F20D8; +FUN_021F20F8 = 0x021F20F8; +FUN_021F2AF4 = 0x021F2AF4; +FUN_021F2E0C = 0x021F2E0C; +FUN_021F2E28 = 0x021F2E28; +FUN_021F2F48 = 0x021F2F48; +FUN_021F2F6C = 0x021F2F6C; +FUN_021F3A18 = 0x021F3A18; +FUN_021F3AB4 = 0x021F3AB4; +FUN_021F3B4C = 0x021F3B4C; +FUN_021F3B7C = 0x021F3B7C; +FUN_021F3DA4 = 0x021F3DA4; +FUN_021F44D8 = 0x021F44D8; +FUN_021F4520 = 0x021F4520; +FUN_021F4568 = 0x021F4568; +FUN_021F4594 = 0x021F4594; +FUN_021F45E8 = 0x021F45E8; +FUN_021F4608 = 0x021F4608; +FUN_021F4BD0 = 0x021F4BD0; +FUN_021F4C88 = 0x021F4C88; +FUN_021F4D80 = 0x021F4D80; +FUN_021F4DC8 = 0x021F4DC8; +FUN_021F4E7C = 0x021F4E7C; +FUN_021F57EC = 0x021F57EC; +FUN_021F5C44 = 0x021F5C44; +FUN_021F61DC = 0x021F61DC; +FUN_021F61E8 = 0x021F61E8; +FUN_02211E60 = 0x02211E60; +FUN_0222D5C0 = 0x0222D5C0; +FUN_0222DAEC = 0x0222DAEC; +FUN_0222DD1C = 0x0222DD1C; +FUN_0222DD38 = 0x0222DD38; +FUN_0222E2BC = 0x0222E2BC; +FUN_0222E360 = 0x0222E360; +FUN_0222E3A0 = 0x0222E3A0; +FUN_0222E7E8 = 0x0222E7E8; +FUN_0222E874 = 0x0222E874; +FUN_0222ED34 = 0x0222ED34; +FUN_0222EDBC = 0x0222EDBC; +FUN_0222F440 = 0x0222F440; +FUN_0222F480 = 0x0222F480; +FUN_0222F7E0 = 0x0222F7E0; +FUN_0222F990 = 0x0222F990; +FUN_022300D4 = 0x022300D4; +FUN_022300DC = 0x022300DC; +FUN_022300E4 = 0x022300E4; +FUN_022300E8 = 0x022300E8; +FUN_022300F4 = 0x022300F4; +FUN_02230100 = 0x02230100; +FUN_0223010C = 0x0223010C; +FUN_02230118 = 0x02230118; +FUN_02230124 = 0x02230124; +FUN_02230F3C = 0x02230F3C; +FUN_02230F70 = 0x02230F70; +FUN_02230F80 = 0x02230F80; +FUN_02231344 = 0x02231344; +FUN_02231350 = 0x02231350; +FUN_0223135C = 0x0223135C; +FUN_02231368 = 0x02231368; +FUN_02231374 = 0x02231374; +FUN_02239944 = 0x02239944; +FUN_02239AAC = 0x02239AAC; +FUN_0223CACC = 0x0223CACC; +FUN_0223CB08 = 0x0223CB08; +FUN_0223CCDC = 0x0223CCDC; +FUN_0223CD7C = 0x0223CD7C; +FUN_0223D3D0 = 0x0223D3D0; +FUN_0223D638 = 0x0223D638; +FUN_0223D648 = 0x0223D648; +FUN_0223DFB4 = 0x0223DFB4; +FUN_0223E060 = 0x0223E060; +FUN_0223E118 = 0x0223E118; +FUN_0223E154 = 0x0223E154; +FUN_0223E1A4 = 0x0223E1A4; +FUN_0223E1E0 = 0x0223E1E0; +FUN_0223E2AC = 0x0223E2AC; +FUN_0223E4A8 = 0x0223E4A8; +FUN_0223E4D4 = 0x0223E4D4; +FUN_0223E554 = 0x0223E554; +FUN_0223E6B8 = 0x0223E6B8; +FUN_0223E734 = 0x0223E734; +FUN_0223E7FC = 0x0223E7FC; +FUN_0223EB8C = 0x0223EB8C; +FUN_0223EF7C = 0x0223EF7C; +FUN_0223F4D8 = 0x0223F4D8; +FUN_0223F4F4 = 0x0223F4F4; +FUN_0223F8D8 = 0x0223F8D8; +FUN_0223FCE8 = 0x0223FCE8; +FUN_02240790 = 0x02240790; +FUN_022407CC = 0x022407CC; +FUN_022407DC = 0x022407DC; +FUN_022407F8 = 0x022407F8; +FUN_02240834 = 0x02240834; +FUN_02240844 = 0x02240844; +FUN_0224089C = 0x0224089C; +FUN_022408FC = 0x022408FC; +FUN_022411F4 = 0x022411F4; +FUN_02241230 = 0x02241230; +FUN_02241914 = 0x02241914; +FUN_02242A38 = 0x02242A38; +FUN_02242BE0 = 0x02242BE0; +FUN_0224312C = 0x0224312C; +FUN_022432E4 = 0x022432E4; +FUN_0224339C = 0x0224339C; +FUN_022433A8 = 0x022433A8; +FUN_022433B0 = 0x022433B0; +FUN_022433B8 = 0x022433B8; +FUN_022433F8 = 0x022433F8; +FUN_02243408 = 0x02243408; +FUN_02243428 = 0x02243428; +FUN_02243448 = 0x02243448; +FUN_0224345C = 0x0224345C; +FUN_022434AC = 0x022434AC; +FUN_022434BC = 0x022434BC; +FUN_022434D0 = 0x022434D0; +FUN_02243694 = 0x02243694; +FUN_022436C8 = 0x022436C8; +FUN_022436E8 = 0x022436E8; +FUN_02243780 = 0x02243780; +FUN_02243838 = 0x02243838; +FUN_022438DC = 0x022438DC; +FUN_022438E0 = 0x022438E0; +FUN_022438FC = 0x022438FC; +FUN_02243920 = 0x02243920; +FUN_022439F8 = 0x022439F8; +FUN_02243AD8 = 0x02243AD8; +FUN_02243BA8 = 0x02243BA8; +FUN_02243C5C = 0x02243C5C; +FUN_02243D3C = 0x02243D3C; +FUN_02243DA0 = 0x02243DA0; +FUN_02243DB8 = 0x02243DB8; +FUN_02243DC0 = 0x02243DC0; +FUN_02243DC4 = 0x02243DC4; +FUN_02243DD8 = 0x02243DD8; +FUN_02243DE0 = 0x02243DE0; +FUN_02243E34 = 0x02243E34; +FUN_02243E74 = 0x02243E74; +FUN_02243F18 = 0x02243F18; +FUN_02243F50 = 0x02243F50; +FUN_02243F9C = 0x02243F9C; +FUN_02244210 = 0x02244210; +FUN_02244558 = 0x02244558; +FUN_02244660 = 0x02244660; +FUN_022446BC = 0x022446BC; +FUN_022446E0 = 0x022446E0; +FUN_022446FC = 0x022446FC; +FUN_02244758 = 0x02244758; +FUN_02244770 = 0x02244770; +FUN_02244824 = 0x02244824; +FUN_0224484C = 0x0224484C; +FUN_02244D1C = 0x02244D1C; +FUN_02244D20 = 0x02244D20; +FUN_02244D3C = 0x02244D3C; +FUN_02244D40 = 0x02244D40; +FUN_02244D58 = 0x02244D58; +FUN_02244D98 = 0x02244D98; +FUN_02244DA0 = 0x02244DA0; +FUN_02244DB0 = 0x02244DB0; +FUN_02244DBC = 0x02244DBC; +FUN_02244DC4 = 0x02244DC4; +FUN_02244EF8 = 0x02244EF8; +FUN_02244F18 = 0x02244F18; +FUN_02244F24 = 0x02244F24; +FUN_02244F2C = 0x02244F2C; +FUN_02245088 = 0x02245088; +FUN_02245114 = 0x02245114; +FUN_02245190 = 0x02245190; +FUN_02245198 = 0x02245198; +FUN_022451F0 = 0x022451F0; +FUN_0224525C = 0x0224525C; +FUN_022452A4 = 0x022452A4; +FUN_02245324 = 0x02245324; +FUN_02245340 = 0x02245340; +FUN_02245358 = 0x02245358; +FUN_0224566C = 0x0224566C; +FUN_022456E8 = 0x022456E8; +FUN_02245844 = 0x02245844; +FUN_02245910 = 0x02245910; +FUN_02245F1C = 0x02245F1C; +FUN_02245F4C = 0x02245F4C; +FUN_02245FA0 = 0x02245FA0; +FUN_022461A4 = 0x022461A4; +FUN_022461B8 = 0x022461B8; +FUN_0224666C = 0x0224666C; +FUN_022466A0 = 0x022466A0; +FUN_022466AC = 0x022466AC; +FUN_02246F1C = 0x02246F1C; +FUN_02247294 = 0x02247294; +FUN_022472AC = 0x022472AC; +FUN_02247544 = 0x02247544; +FUN_02247614 = 0x02247614; +FUN_02247728 = 0x02247728; +FUN_02247808 = 0x02247808; +FUN_02247970 = 0x02247970; +FUN_02247A34 = 0x02247A34; +FUN_022483BC = 0x022483BC; +FUN_022483E0 = 0x022483E0; +FUN_022483EC = 0x022483EC; +FUN_02248724 = 0x02248724; +FUN_0224884C = 0x0224884C; +FUN_022488CC = 0x022488CC; +FUN_022488EC = 0x022488EC; +FUN_022488F4 = 0x022488F4; +FUN_022488FC = 0x022488FC; +FUN_0224891C = 0x0224891C; +FUN_02248B54 = 0x02248B54; +FUN_02248B58 = 0x02248B58; +FUN_02248B5C = 0x02248B5C; +FUN_02248B60 = 0x02248B60; +FUN_02248B6C = 0x02248B6C; +FUN_02248CC0 = 0x02248CC0; +FUN_02248CD0 = 0x02248CD0; +FUN_02248DF8 = 0x02248DF8; +FUN_02248F70 = 0x02248F70; +FUN_02248FE0 = 0x02248FE0; +FUN_02249038 = 0x02249038; +FUN_022490A0 = 0x022490A0; +FUN_022491FC = 0x022491FC; +FUN_022494C8 = 0x022494C8; +FUN_02249508 = 0x02249508; +FUN_02249668 = 0x02249668; +FUN_022497E8 = 0x022497E8; +FUN_02249E6C = 0x02249E6C; +FUN_02249E78 = 0x02249E78; +FUN_02249E84 = 0x02249E84; +FUN_02249E90 = 0x02249E90; +FUN_0224A310 = 0x0224A310; +FUN_0224A528 = 0x0224A528; +FUN_0224A7C8 = 0x0224A7C8; +FUN_0224ABAC = 0x0224ABAC; +FUN_0224B124 = 0x0224B124; +FUN_0224B2C4 = 0x0224B2C4; +FUN_0224B568 = 0x0224B568; +FUN_0224B818 = 0x0224B818; +FUN_0224B86C = 0x0224B86C; +FUN_0224B9E0 = 0x0224B9E0; +FUN_0224BBEC = 0x0224BBEC; +FUN_0224BD90 = 0x0224BD90; +FUN_0224C038 = 0x0224C038; +FUN_0224C27C = 0x0224C27C; +FUN_0224C520 = 0x0224C520; +FUN_0224C678 = 0x0224C678; +FUN_0224C6E8 = 0x0224C6E8; +FUN_0224C6F4 = 0x0224C6F4; +FUN_0224C700 = 0x0224C700; +FUN_0224C8C8 = 0x0224C8C8; +FUN_0224CA2C = 0x0224CA2C; +FUN_0224CA54 = 0x0224CA54; +FUN_0224CA58 = 0x0224CA58; +FUN_0224CA88 = 0x0224CA88; +FUN_0224CA94 = 0x0224CA94; +FUN_0224CAA0 = 0x0224CAA0; +FUN_0224CAB4 = 0x0224CAB4; +FUN_0224CB30 = 0x0224CB30; +FUN_0224CBB0 = 0x0224CBB0; +FUN_0224CC24 = 0x0224CC24; +FUN_0224CECC = 0x0224CECC; +FUN_0224D14C = 0x0224D14C; +FUN_0224D2E0 = 0x0224D2E0; +FUN_0224D3E8 = 0x0224D3E8; +FUN_0224D70C = 0x0224D70C; +FUN_0224D76C = 0x0224D76C; +FUN_0224D79C = 0x0224D79C; +FUN_0224DCB8 = 0x0224DCB8; +FUN_0224DD94 = 0x0224DD94; +FUN_0224DDB8 = 0x0224DDB8; +FUN_0224E554 = 0x0224E554; +FUN_0224E764 = 0x0224E764; +FUN_0224E7C4 = 0x0224E7C4; +FUN_0224F12C = 0x0224F12C; +FUN_02252534 = 0x02252534; +FUN_02252538 = 0x02252538; +FUN_022567E0 = 0x022567E0; + +// ??? +SDK_MAIN_ARENA_LO = 0x0225FFA0; + +// EWRAM +SDK_SECTION_ARENA_EX_START = 0x023E0000; + +// DTCM +gUnk027FFC20 = 0x027FFC20; diff --git a/asm/arm7_rom.s b/asm/arm7_rom.s deleted file mode 100644 index fa248afc..00000000 --- a/asm/arm7_rom.s +++ /dev/null @@ -1,212 +0,0 @@ -/* arm7_rom.s TODO: Disassemble */ - .include "asm/macros.inc" - .global ARM7AutoLoad - - .section .text - arm_func_start Entry_ARM7 - -Entry_ARM7: - mov ip, #67108864 ; 0x4000000 - str ip, [ip, #520] ; 0x208 - ldr r1, _23800cc - mov r0, #58720256 ; 0x3800000 - cmp r0, r1 - movpl r1, r0 - ldr r2, _23800d0 - mov r0, #0 -_02380020: - cmp r1, r2 - stmltia r1!, {r0} - blt _02380020 - mov r0, #19 - msr CPSR_c, r0 - ldr sp, _23800d4 - mov r0, #18 - msr CPSR_c, r0 - ldr r0, _23800d8 - mov sp, r0 - ldr r1, _23800dc - sub r1, r0, r1 - mov r0, #31 - msr CPSR_fsxc, r0 - sub sp, r1, #4 - ldr r0, _23800e0 - ldr r1, _23800e4 - add r2, r1, #352 ; 0x160 -_02380068: - ldr r3, [r0], #4 - str r3, [r1], #4 - cmp r1, r2 - bmi _02380068 - ldr r0, _23800e8 - add r2, r1, #32 -_02380080: - ldr r3, [r0], #4 - str r3, [r1], #4 - cmp r1, r2 - bmi _02380080 - bl FUN_2380100 - ldr r0, _23800ec - ldr r1, [r0, #12] - ldr r2, [r0, #16] - mov r0, #0 -_023800a4: - cmp r1, r2 - strcc r0, [r1], #4 - bcc _023800a4 - bl FUN_238015C - ldr r1, _23800f0 - ldr r0, _23800f4 - str r0, [r1] - ldr r1, _23800f8 - ldr lr, _23800fc - bx r1 -_23800cc: .word FUN_023801B0 -_23800d0: .word 0x0380ff00 -_23800d4: .word 0x0380ffc0 -_23800d8: .word 0x0380ff80 -_23800dc: .word 0x00000400 -_23800e0: .word 0x023fe940 -_23800e4: .word 0x027ffa80 -_23800e8: .word 0x023fe904 -_23800ec: .word _2380198 -_23800f0: .word 0x0380fffc -_23800f4: .word 0x037f853c -_23800f8: .word 0x037f8468 -_23800fc: .word 0xffff0000 - arm_func_end Entry_ARM7 - - arm_func_start FUN_2380100 -FUN_2380100: - ldr r0, _2380154 - ldr r1, [r0] - ldr r2, [r0, #4] - ldr r3, [r0, #8] -_02380110: - cmp r1, r2 - beq _02380150 - ldr r4, [r1], #4 - ldr r5, [r1], #4 - add r6, r4, r5 -_02380124: - cmp r4, r6 - ldrmi r7, [r3], #4 - strmi r7, [r4], #4 - bmi _02380124 - ldr r5, [r1], #4 - add r6, r4, r5 - mov r7, #0 -_02380140: - cmp r4, r6 - strcc r7, [r4], #4 - bcc _02380140 - beq _02380110 -_02380150: - b ARM7AutoLoad -_2380154: .word _2380198 -ARM7AutoLoad: - bx lr - arm_func_end FUN_2380100 - - arm_func_start FUN_238015C -FUN_238015C: - mov r0, #1 - mov r1, #0 - ldr r2, _2380194 - sub r3, r2, #4194304 ; 0x400000 -_0238016c: - strh r1, [r2] - ldrh ip, [r3] - cmp r1, ip - movne r0, #2 - bne _0238018c - add r1, r1, #1 - cmp r1, #2 - bne _0238016c -_0238018c: - strh r0, [r2] - bx lr -_2380194: .word 0x027ffffa -_2380198: - .word UNK_23A92F8 - .word UNK_23A931C - .word FUN_023801B0 - .word FUN_023801B0 - .word FUN_023801B0 - .word 0x00000000 - arm_func_end FUN_238015C - - arm_func_start FUN_023801B0 -FUN_023801B0: - .incbin "baserom.nds", 0x30D1B0, 0x91B0 - - thumb_func_start ROM7_SVC_SoftReset -ROM7_SVC_SoftReset: ; 0x02389360 - swi 0 - bx lr - - thumb_func_start ROM7_SVC_WaitByLoop -ROM7_SVC_WaitByLoop: ; 0x02389364 - swi 3 - bx lr - - thumb_func_start ROM7_SVC_WaitIntr -ROM7_SVC_WaitIntr: ; 0x02389368 - ldr r2, =0x04000000 - mov ip, r2 - mov r2, #0x0 - swi 4 - bx lr - .pool - - thumb_func_start ROM7_SVC_WaitVBlankIntr -ROM7_SVC_WaitVBlankIntr: - mov r2, #0x0 - swi 5 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_Halt -ROM7_SVC_Halt: - swi 6 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_Stop -ROM7_SVC_Stop: - swi 7 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_SoundBias -ROM7_SVC_SoundBias: - swi 8 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_SoundBiasSet -ROM7_SVC_SoundBiasSet: - add r1, r0, #0x0 - mov r0, #0x1 - swi 8 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_SoundBiasReset -ROM7_SVC_SoundBiasReset: - add r1, r0, #0x0 - mov r0, #0x0 - swi 8 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_Div -ROM7_SVC_Div: - swi 9 - bx lr - - non_word_aligned_thumb_func_start ROM7_SVC_DivRem -ROM7_SVC_DivRem: - swi 9 - add r0, r1, #0x0 - bx lr - .incbin "baserom.nds", 0x3163a4, 0x1ff54 - -UNK_23A92F8: - .incbin "baserom.nds", 0x3362F8, 0x24 - -UNK_23A931C: diff --git a/pokediamond.lcf b/pokediamond.lcf index 452afd17..01161a05 100644 --- a/pokediamond.lcf +++ b/pokediamond.lcf @@ -2,7 +2,7 @@ MEMORY { header (RWX) : ORIGIN=0, LENGTH=0 arm9 (RWX) : ORIGIN=0x02000000, LENGTH=0 - arm7 (RWX) : ORIGIN=0x2380000, LENGTH=0 + arm7 (RWX) : ORIGIN=0x02380000, LENGTH=0 filenametable (RWX) : ORIGIN=0, LENGTH=0 fileallocationtable (RWX) : ORIGIN=0, LENGTH=0 icon_title (RWX) : ORIGIN=0, LENGTH=0 @@ -640,7 +640,8 @@ SECTIONS { } > rom3.FILE_30C600 .arm7 : AT(0x30D000) { - arm7_rom.o(.text) + ARM7AutoLoad = 0x02380158; + INCLUDE arm7.bin } > arm7 .filenametable : AT(0x336400) { -- cgit v1.2.3